From 3f23c5507726d99678dc8a3d924c38ea68e62f00 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 29 Nov 2021 09:22:21 -0500 Subject: [PATCH 01/54] First linting pass Configured VSCode and Markdownlint settings Added and configured the following linters as strict as I could: pylint, flake8, mypy, bandit, pyright Partially filled in some type stubs: cv2, imagehash, keyboard, pyautogui, pythonwin, win32helper [Breaking change] Using interpolation=cv2.INTER_NEAREST everywhere as it is the fastest interlpolation method Hide generated/compiled files SelectRegionWidget width and height as functions Added validate_images_before_parsing() to validate images both before maxFPS and starting autosplitter --- .flake8 | 14 + .gitignore | 3 + .markdownlint.json | 5 + .mypy.ini | 33 + .pylintrc | 23 + .vscode/settings.json | 62 +- README.md | 4 +- pyrightconfig.json | 19 + res/about.ui | 10 +- res/update_checker.ui | 8 +- scripts/build.bat | 1 + scripts/compile_resources.bat | 8 +- scripts/install.bat | 4 + scripts/lint.ps1 | 8 + scripts/requirements.txt | 7 +- scripts/start.bat | 2 + src/AutoControlledWorker.py | 42 + src/AutoSplit.py | 723 +- src/about.py | 58 - src/capture_windows.py | 69 +- src/compare.py | 148 +- src/design.py | 502 - src/error_messages.py | 19 +- src/gen/about.pyi | 6 + src/gen/design.pyi | 6 + src/gen/update_checker.pyi | 6 + src/hotkeys.py | 265 +- src/menu_bar.py | 23 +- src/resources_rc.py | 2311 - src/screen_region.py | 225 +- src/settings_file.py | 399 +- src/split_parser.py | 142 +- src/update_checker.py | 77 - typings/cv2-stubs/__init__.pyi | 3578 ++ typings/imagehash/__init__.pyi | 275 + typings/keyboard/__init__.pyi | 701 + typings/keyboard/_keyboard_event.pyi | 31 + typings/pyautogui/__init__.pyi | 814 + typings/pythonwin-stubs/win32typing.pyi | 51700 ++++++++++++++++++++++ typings/win32helper/__init__.pyi | 0 typings/win32helper/ntsecuritycon.pyi | 689 + typings/win32helper/sspicon.pyi | 479 + typings/win32helper/win32con.pyi | 5041 +++ typings/win32helper/win32cryptcon.pyi | 1900 + typings/win32helper/win32inetcon.pyi | 1103 + typings/win32helper/win32netcon.pyi | 655 + typings/win32helper/win32typing.pyi | 51700 ++++++++++++++++++++++ typings/win32helper/winioctlcon.pyi | 711 + 48 files changed, 120602 insertions(+), 4007 deletions(-) create mode 100644 .flake8 create mode 100644 .markdownlint.json create mode 100644 .mypy.ini create mode 100644 .pylintrc create mode 100644 pyrightconfig.json create mode 100644 scripts/lint.ps1 create mode 100644 scripts/start.bat create mode 100644 src/AutoControlledWorker.py delete mode 100644 src/about.py delete mode 100644 src/design.py create mode 100644 src/gen/about.pyi create mode 100644 src/gen/design.pyi create mode 100644 src/gen/update_checker.pyi delete mode 100644 src/resources_rc.py delete mode 100644 src/update_checker.py create mode 100644 typings/cv2-stubs/__init__.pyi create mode 100644 typings/imagehash/__init__.pyi create mode 100644 typings/keyboard/__init__.pyi create mode 100644 typings/keyboard/_keyboard_event.pyi create mode 100644 typings/pyautogui/__init__.pyi create mode 100644 typings/pythonwin-stubs/win32typing.pyi create mode 100644 typings/win32helper/__init__.pyi create mode 100644 typings/win32helper/ntsecuritycon.pyi create mode 100644 typings/win32helper/sspicon.pyi create mode 100644 typings/win32helper/win32con.pyi create mode 100644 typings/win32helper/win32cryptcon.pyi create mode 100644 typings/win32helper/win32inetcon.pyi create mode 100644 typings/win32helper/win32netcon.pyi create mode 100644 typings/win32helper/win32typing.pyi create mode 100644 typings/win32helper/winioctlcon.pyi diff --git a/.flake8 b/.flake8 new file mode 100644 index 00000000..a5dfe806 --- /dev/null +++ b/.flake8 @@ -0,0 +1,14 @@ +[flake8] +color=always +max-line-length=120 +; TODO: Bring WAY down +max-complexity=55 +; Auto generated +exclude=src/gen/ +; TODO: We want to configure this +ignore=W503,N801,N802,N803,N806,N815,N816 +per-file-ignores = + ; imported but unused + ; line too long + ; mixed case + __init__.pyi:F401,E501,N816 diff --git a/.gitignore b/.gitignore index 6596996f..76ff082c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ __pycache__/ env/ build/ dist/ +# Generated +**/gen/*.py +!**/gen/*.pyi # PyInstaller # Usually these files are written by a python script from a template diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 00000000..efb4ef2f --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,5 @@ +{ + "default": true, + "MD025": false, + "MD013": false +} diff --git a/.mypy.ini b/.mypy.ini new file mode 100644 index 00000000..6b23dbbd --- /dev/null +++ b/.mypy.ini @@ -0,0 +1,33 @@ +; https://mypy.readthedocs.io/en/stable/command_line.html#disallow-dynamic-typing +[mypy] +show_column_numbers=True +show_error_codes=True +no_color_output=False +color_output=True + +ignore_missing_imports=True +follow_imports=silent + +; Note: exclude is ignored when linting file by file so VSCode will still show errors in typings +; typings are incomplete as we only add types for what we need, cannot disable specific rules per file +; Auto generated +exclude=(typings/|src/gen/) + +; Redundant +disallow_untyped_defs=False +; Doesn't see our cv2 type stubs +warn_return_any=False +; False positives when it's needed for other linting libraries +warn_unused_ignores=False +; Doesn't see imports from src/gen/ +disallow_any_unimported=False +disallow_subclassing_any=False +; False positives with ndarray +disable_error_code=no-untyped-def + +strict=True +; Doesn't see types from some imports +disallow_any_expr=False +disallow_any_decorated=True +disallow_any_explicit=True +warn_unreachable=True diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 00000000..8bd9be7a --- /dev/null +++ b/.pylintrc @@ -0,0 +1,23 @@ +; http://pylint-messages.wikidot.com/all-codes +[MASTER] +max-line-length=120 +ignore-paths= + ; Haven't looked into disabling specific rules per file + ^typings/.*$, + ; Auto generated + ^src/gen/.*$ +disable= + missing-docstring, + ; TODO: We want to configure this + ; https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles + invalid-name, + ; We group imports + wrong-import-position, + ; Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride + unused-argument, + ; Already taken care of by Flake8 + unused-import, +extension-pkg-allow-list=PyQt6,win32ui + +[TYPECHECK] +generated-members=cv2 diff --git a/.vscode/settings.json b/.vscode/settings.json index d8155e25..2f06bd99 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,40 +18,29 @@ 120, ] }, - // Keeping autoformat to false for now to keep minimal changes - "editor.formatOnSave": false, + "editor.formatOnSave": true, "editor.codeActionsOnSave": { - "source.fixAll": false, - }, - "python.linting.enabled": true, - "python.analysis.typeCheckingMode": "basic", - "python.analysis.diagnosticSeverityOverrides": { - // Too many false positives with pywin32 (all functions have 0 arguments in type stub) - "reportGeneralTypeIssues":"none" + "source.fixAll": true, + "source.fixAll.markdownlint": true, }, + // Set to trace when sending error reports to Pylance + // "python.analysis.logLevel": "Trace", // https://code.visualstudio.com/docs/python/linting#_specific-linters - // Maybe consider PyLint once all Flake8 linting is fixed - "python.linting.pylintEnabled": false, + "python.linting.enabled": true, + "python.linting.pylintEnabled": true, + "python.linting.pylintCategorySeverity.convention": "Warning", + "python.linting.pylintCategorySeverity.refactor": "Warning", "python.linting.flake8Enabled": true, + "python.linting.flake8CategorySeverity.E": "Warning", "python.linting.mypyEnabled": true, - // Flake8 is already a pycodestyle wrapper + // Is already wrapped by Flake8, prospector and pylama "python.linting.pycodestyleEnabled": false, - "python.linting.pylintArgs": [ - "--disable=no-member", - "--max-line-length=120" - ], - "python.linting.flake8CategorySeverity.E": "Warning", - "python.linting.flake8Args": [ - "--max-line-length=120" - ], - "python.linting.mypyArgs": [ - "--max-line-length=120" - ], - "python.formatting.autopep8Args": [ - "--max-line-length=120" - ], + // Just another wrapper, use Flake8 OR this + "python.linting.prospectorEnabled": false, + // Just another wrapper, use Flake8 OR this + "python.linting.pylamaEnabled": false, + "python.linting.banditEnabled": true, "files.insertFinalNewline": true, - "trailing-spaces.deleteModifiedLinesOnly": true, "trailing-spaces.includeEmptyLines": true, "trailing-spaces.trimOnSave": true, "trailing-spaces.syntaxIgnore": [ @@ -61,8 +50,21 @@ "*.qrc": "xml", "*.ui": "xml" }, - "markdownlint.config": { - "default": true, - "MD025": false, + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/Thumbs.db": true, + "build": true, + ".mypy_cache": true, + "**/__pycache__": true, }, + "search.exclude": { + "**/node_modules": true, + "**/bower_components": true, + "**/*.code-search": true, + "typings": true, + } } diff --git a/README.md b/README.md index 823d8c03..f11ae3e3 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,8 @@ This program can be used to automatically start, split, and reset your preferred (This is not required for normal use) -- Microsoft Visual C++ 14.0 or greater may be required. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) +- Microsoft Visual C++ 14.0 or greater may be required to build the executable. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) +- Node is optional, but required for complete linting (using Pyright). - Read [requirements.txt](/scripts/requirements.txt) for information on how to install, run and build the python code - Run `.\scripts\install.bat` to install all dependencies - Run the app directly with `py .\src\AutoSplit.py [--auto-controlled]` @@ -195,6 +196,7 @@ The AutoSplit LiveSplit Component will directly connect AutoSplit with LiveSplit ## Resources Still need help? + - [Open an issue](../../issues) - Join the [AutoSplit Discord](https://discord.gg/Qcbxv9y) diff --git a/pyrightconfig.json b/pyrightconfig.json new file mode 100644 index 00000000..5aaa8948 --- /dev/null +++ b/pyrightconfig.json @@ -0,0 +1,19 @@ +{ + "typeCheckingMode": "strict", + // Auto generated + "ignore": [ + // "src/gen/", + "typings/", + ], + "reportMissingTypeStubs": "information", + // False positives with TYPE_CHECKING + "reportImportCycles": "information", + // PyQt .connect + "reportFunctionMemberAccess": "information", + // Extra runtime safety + "reportUnnecessaryComparison": "warning", + // Flake8 does a better job + "reportUnusedImport": "none", + // numpy has way too many complex types that triggers this + "reportUnknownMemberType": "none", +} diff --git a/res/about.ui b/res/about.ui index 1d833949..d963f5e2 100644 --- a/res/about.ui +++ b/res/about.ui @@ -100,7 +100,10 @@ consider donating. Thank you! - <html><head/><body><p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=BYRHQG69YRHBA&amp;item_name=AutoSplit+development&amp;currency_code=USD&amp;source=url"><img src=":/resources/btn_donateCC_LG.png"/></a></p></body></html> + + + + :/resources/btn_donateCC_LG.png Qt::AlignCenter @@ -116,7 +119,10 @@ consider donating. Thank you! - <html><head/><body><p><img src=":/resources/icon.ico"/></p></body></html> + + + + :/resources/icon.ico diff --git a/res/update_checker.ui b/res/update_checker.ui index 844d6d4f..12ffade1 100644 --- a/res/update_checker.ui +++ b/res/update_checker.ui @@ -42,6 +42,10 @@ Update Checker + + + :/resources/icon.ico:/resources/icon.ico + @@ -169,7 +173,9 @@ - + + + pushButtonRight diff --git a/scripts/build.bat b/scripts/build.bat index d7ccc27f..f8a5f6b8 100644 --- a/scripts/build.bat +++ b/scripts/build.bat @@ -1 +1,2 @@ +CALL "%~p0compile_resources.bat" pyinstaller -w -F --icon=res\icon.ico "%~p0..\src\AutoSplit.py" diff --git a/scripts/compile_resources.bat b/scripts/compile_resources.bat index 91f134e4..a6c092aa 100644 --- a/scripts/compile_resources.bat +++ b/scripts/compile_resources.bat @@ -1,5 +1,5 @@ cd "%~dp0.." -pyuic6 ".\res\about.ui" -o ".\src\about.py" -pyuic6 ".\res\design.ui" -o ".\src\design.py" -pyuic6 ".\res\update_checker.ui" -o ".\src\update_checker.py" -pyside6-rcc ".\res\resources.qrc" -o ".\src\resources_rc.py" +pyuic6 ".\res\about.ui" -o ".\src\gen\about.py" +pyuic6 ".\res\design.ui" -o ".\src\gen\design.py" +pyuic6 ".\res\update_checker.ui" -o ".\src\gen\update_checker.py" +pyside6-rcc ".\res\resources.qrc" -o ".\src\gen\resources_rc.py" diff --git a/scripts/install.bat b/scripts/install.bat index 8b34f808..a824c7b4 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -1,2 +1,6 @@ py -3.9 -m pip install wheel py -3.9 -m pip install -r "%~p0requirements.txt" +@REM https://github.com/python/mypy/issues/10600 --non-interactive may still have issues +mypy --install-types --non-interactive +npm install -g pyright +CALL "%~p0compile_resources.bat" diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 new file mode 100644 index 00000000..298956ce --- /dev/null +++ b/scripts/lint.ps1 @@ -0,0 +1,8 @@ +pylint --score=n --output-format=text,colorized $(git ls-files '**/*.py*') +# pylint --reports=y --output-format=text,colorized $(git ls-files '**/*.py*') +mypy . +# mypy --pretty src +pyright +bandit -f custom --silent --severity-level medium -r . +# bandit -n 1 --severity-level medium -r src +flake8 diff --git a/scripts/requirements.txt b/scripts/requirements.txt index fde89aff..71cf1231 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -5,22 +5,25 @@ # Usage: .\scripts\install.bat # # If you're having issues with the libraries, you might want to first run: -# pip3.9 uninstall -r requirements.txt +# pip3.9 uninstall -r .\scripts\requirements.txt # # Creating AutoSplit.exe with PyInstaller: .\scripts\build.bat # # Dependencies: -PyQt6 +numpy>=1.22.0rc1 opencv-python<=4.5.3.56 # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 +PyQt6 Pillow ImageHash pywin32 +pywin32-stubs keyboard packaging pyautogui PySide6 flake8 mypy +pylint requests # # Comment this out if you don't want to build AutoSplit.exe: diff --git a/scripts/start.bat b/scripts/start.bat new file mode 100644 index 00000000..3b428f1d --- /dev/null +++ b/scripts/start.bat @@ -0,0 +1,2 @@ +CALL "%~p0compile_resources.bat" +py -3.9 "%~p0..\src\AutoSplit.py" diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py new file mode 100644 index 00000000..fef30676 --- /dev/null +++ b/src/AutoControlledWorker.py @@ -0,0 +1,42 @@ +from __future__ import annotations +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from AutoSplit import AutoSplit +from PyQt6 import QtCore + +import error_messages + + +class AutoControlledWorker(QtCore.QObject): + def __init__(self, autosplit: AutoSplit): + self.autosplit = autosplit + super().__init__() + + def run(self): + while True: + try: + line = input() + except RuntimeError: + self.autosplit.showErrorSignal.emit(error_messages.stdinLostError) + break + # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. + # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" + # For now this can only used in a Development environment + if line == 'kill': + self.autosplit.closeEvent() + break + elif line == 'start': + self.autosplit.startAutoSplitter() + elif line == 'split' or line == 'skip': + self.autosplit.startSkipSplit() + elif line == 'undo': + self.autosplit.startUndoSplit() + elif line == 'reset': + self.autosplit.startReset() + elif line.startswith('settings'): + # Allow for any split character between "settings" and the path + self.autosplit.load_settings_file_path = line[9:] + self.autosplit.loadSettings(load_settings_from_livesplit=True) + # TODO: Not yet implemented in AutoSplit Integration + # elif line == 'pause': + # self.startPause() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 50dbd5c9..b35b5c2a 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -1,29 +1,39 @@ #!/usr/bin/python3.9 # -*- coding: utf-8 -*- -import traceback + +# Imports grouping: +# - Typings +# - Standards +# - Externals +# - Internals +from __future__ import annotations from types import FunctionType, TracebackType -from typing import Callable, List, Optional, Type +from typing import Callable, List, Literal, Optional, Type, Union, cast -from copy import copy -from PyQt6 import QtCore, QtGui, QtTest, QtWidgets -from win32 import win32gui import sys import os -import cv2 -import ctypes.wintypes import ctypes -import numpy as np import signal -import time +import traceback +from copy import copy +from time import time + +import cv2 +import numpy as np +from PyQt6 import QtCore, QtGui, QtTest +from PyQt6.QtWidgets import QApplication, QFileDialog, QMainWindow, QMessageBox, QWidget +from win32 import win32gui +from win32con import MAXBYTE -from menu_bar import about, VERSION, viewHelp, checkForUpdates -from settings_file import auto_split_directory -from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG -import capture_windows -import compare -import design import error_messages import split_parser +from AutoControlledWorker import AutoControlledWorker +from gen import design +from menu_bar import AboutWidget, VERSION, UpdateCheckerWidget, about, viewHelp, checkForUpdates +from capture_windows import capture_region, Rect +from settings_file import auto_split_directory +from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG +from compare import checkIfImageHasTransparency, compareImage # Resize to these width and height so that FPS performance increases @@ -37,9 +47,12 @@ "Please create a New Issue at " "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" -class AutoSplit(QtWidgets.QMainWindow, design.Ui_MainWindow): + +class AutoSplit(QMainWindow, design.Ui_MainWindow): + # pylint: disable=import-outside-toplevel from hotkeys import send_command - from settings_file import saveSettings, saveSettingsAs, loadSettings, haveSettingsChanged, getSaveSettingsValues + from settings_file import saveSettings, saveSettingsAs, loadSettings, haveSettingsChanged, getSaveSettingsValues, \ + loadPyQtSettings from screen_region import selectRegion, selectWindow, alignRegion, validateBeforeComparison from hotkeys import afterSettingHotkey, beforeSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, \ setUndoSplitHotkey, setPauseHotkey @@ -47,7 +60,10 @@ class AutoSplit(QtWidgets.QMainWindow, design.Ui_MainWindow): myappid = f'Toufool.AutoSplit.v{VERSION}' ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) - # signals + # Parse command line args + is_auto_controlled = '--auto-controlled' in sys.argv + + # Signals updateCurrentSplitImage = QtCore.pyqtSignal(QtGui.QImage) startAutoSplitterSignal = QtCore.pyqtSignal() resetSignal = QtCore.pyqtSignal() @@ -58,17 +74,70 @@ class AutoSplit(QtWidgets.QMainWindow, design.Ui_MainWindow): # Use this signal when trying to show an error from outside the main thread showErrorSignal = QtCore.pyqtSignal(FunctionType) - def __init__(self, parent=None): - super(AutoSplit, self).__init__(parent) + # Timers + timerLiveImage = QtCore.QTimer() + timerStartImage = QtCore.QTimer() + + # Windows + aboutWidget: AboutWidget + updateCheckerWidget: UpdateCheckerWidget + + # Settings + split_image_directory = "" + similarity_threshold: float + comparison_index: int + pause: float + fps_limit: int + split_key = "" + reset_key = "" + skip_split_key = "" + undo_split_key = "" + pause_key = "" + x: int + y: int + width: int + height: int + hwnd_title = '' + group_dummy_splits_undo_skip_setting: Literal[0, 1] + loop_setting: Literal[0, 1] + auto_start_on_reset_setting: Literal[0, 1] + + # Default Settings for the region capture + hwnd = 0 + selection = Rect() + + # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py + # and for type safety in both hotkeys.py and settings_file.py + split_hotkey: Optional[Callable[[], None]] = None + reset_hotkey: Optional[Callable[[], None]] = None + skip_split_hotkey: Optional[Callable[[], None]] = None + undo_split_hotkey: Optional[Callable[[], None]] = None + pause_hotkey: Optional[Callable[[], None]] = None + + # Initialize a few attributes + last_saved_settings: Optional[List[Union[str, float, int]]] = None + save_settings_file_path = "" + load_settings_file_path = "" + live_image_function_on_open = True + split_image_loop_amount: List[int] = [] + split_image_number = 0 + loop_number = 1 + + # Last loaded settings and last successful loaded settings file path to None until we try to load them + last_loaded_settings: Optional[List[Union[str, float, int]]] = None + last_successfully_loaded_settings_file_path: Optional[str] = None + + # Automatic timer start + timerStartImage_is_running = False + start_image = None + highest_similarity = 0.0 + check_start_image_timestamp = 0.0 + + def __init__(self, parent: Optional[QWidget] = None): + super().__init__(parent) self.setupUi(self) - #These are only global settings values. They are not *pkl settings values. - self.getGlobalSettingsValues() - check_for_updates_on_open = self.setting_check_for_updates_on_open.value('check_for_updates_on_open', True, type=bool) - self.actionCheck_for_Updates_on_Open.setChecked(check_for_updates_on_open) - - # Parse command line args - self.is_auto_controlled = ('--auto-controlled' in sys.argv) + self.loadPyQtSettings() # close all processes when closing window self.actionView_Help.triggered.connect(viewHelp) @@ -100,43 +169,9 @@ def __init__(self, parent=None): # Send version and process ID to stdout print(f"{VERSION}\n{os.getpid()}", flush=True) - class Worker(QtCore.QObject): - def __init__(self, autosplit: AutoSplit): - self.autosplit = autosplit - super().__init__() - - def run(self): - while True: - try: - line = input() - except RuntimeError: - self.autosplit.showErrorSignal.emit(error_messages.stdinLostError) - break - # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. - # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" - # For now this can only used in a Development environment - if line == 'kill': - self.autosplit.closeEvent() - break - elif line == 'start': - self.autosplit.startAutoSplitter() - elif line == 'split' or line == 'skip': - self.autosplit.startSkipSplit() - elif line == 'undo': - self.autosplit.startUndoSplit() - elif line == 'reset': - self.autosplit.startReset() - elif line.startswith('settings'): - # Allow for any split character between "settings" and the path - self.autosplit.load_settings_file_path = line[9:] - self.autosplit.loadSettings(load_settings_from_livesplit=True) - # TODO: Not yet implemented in AutoSplit Integration - # elif line == 'pause': - # self.startPause() - # Use and Start the thread that checks for updates from LiveSplit self.update_auto_control = QtCore.QThread() - worker = Worker(self) + worker = AutoControlledWorker(self) worker.moveToThread(self.update_auto_control) self.update_auto_control.started.connect(worker.run) self.update_auto_control.start() @@ -179,41 +214,10 @@ def run(self): # live image checkbox self.liveimageCheckBox.clicked.connect(self.checkLiveImage) - self.timerLiveImage = QtCore.QTimer() self.timerLiveImage.timeout.connect(self.liveImageFunction) - # Initialize a few attributes - self.last_saved_settings = None - self.live_image_function_on_open = True - self.split_image_loop_amount = [] - self.split_image_number = 0 - self.split_image_directory = "" - - # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py - # and for type safety in both hotkeys.py and settings_file.py - self.split_hotkey: Optional[Callable[[], None]] = None - self.reset_hotkey: Optional[Callable[[], None]] = None - self.skip_split_hotkey: Optional[Callable[[], None]] = None - self.undo_split_hotkey: Optional[Callable[[], None]] = None - self.pause_hotkey: Optional[Callable[[], None]] = None - self.split_key = "" - self.reset_key = "" - self.skip_split_key = "" - self.undo_split_key = "" - self.undo_split_key = "" - - # Default Settings for the region capture - self.hwnd = 0 - self.hwnd_title = '' - self.rect = ctypes.wintypes.RECT() - # Automatic timer start - self.timerStartImage = QtCore.QTimer() self.timerStartImage.timeout.connect(self.startImageFunction) - self.timerStartImage_is_running = False - self.start_image = None - self.highest_similarity = 0.0 - self.check_start_image_timestamp = 0.0 # Last loaded settings and last successful loaded settings file path to None until we try to load them self.last_loaded_settings = None @@ -230,10 +234,10 @@ def getGlobalSettingsValues(self): # TODO add checkbox for going back to image 1 when resetting. def browse(self): # User selects the file with the split images in it. - new_split_image_directory = QtWidgets.QFileDialog.getExistingDirectory( - self, - 'Select Split Image Directory', - os.path.join(self.split_image_directory or auto_split_directory, "..")) + new_split_image_directory = QFileDialog.getExistingDirectory( + self, + 'Select Split Image Directory', + os.path.join(self.split_image_directory or auto_split_directory, "..")) # If the user doesn't select a folder, it defaults to "". if new_split_image_directory: @@ -251,7 +255,7 @@ def checkLiveImage(self): def liveImageFunction(self): try: - if win32gui.GetWindowText(self.hwnd) == '': + if not win32gui.GetWindowText(self.hwnd): self.timerLiveImage.stop() if self.live_image_function_on_open: self.live_image_function_on_open = False @@ -260,12 +264,13 @@ def liveImageFunction(self): error_messages.regionError() return - capture = capture_windows.capture_region(self.hwnd, self.rect) - capture = cv2.resize(capture, DISPLAY_RESIZE) + capture = capture_region(self.hwnd, self.selection) + capture = cv2.resize(capture, DISPLAY_RESIZE, interpolation=cv2.INTER_NEAREST) + capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) # Convert to set it on the label - qImage = QtGui.QImage(capture, + qImage = QtGui.QImage(cast(bytes, capture), capture.shape[1], capture.shape[0], capture.shape[1] * 3, @@ -276,11 +281,11 @@ def liveImageFunction(self): except AttributeError: pass - def loadStartImage(self, started_by_button=False, wait_for_delay=True): + def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = True): self.timerStartImage.stop() self.currentsplitimagefileLabel.setText(' ') self.startImageLabel.setText("Start image: not found") - QtWidgets.QApplication.processEvents() + QApplication.processEvents() if not self.validateBeforeComparison(started_by_button): return @@ -314,25 +319,25 @@ def loadStartImage(self, started_by_button=False, wait_for_delay=True): error_messages.imageTypeError(path) return # if image has transparency, create a mask - self.imageHasTransparency = compare.checkIfImageHasTransparency(self.start_image) + self.imageHasTransparency = checkIfImageHasTransparency(self.start_image) if self.imageHasTransparency: self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Create mask based on resized, nearest neighbor interpolated split image lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([255, 255, 255, 255], dtype="uint8") + upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") self.start_image_mask = cv2.inRange(self.start_image, lower, upper) # set split image as BGR self.start_image = cv2.cvtColor(self.start_image, cv2.COLOR_BGRA2BGR) - # otherwise, open image normally. Capture with nearest neighbor interpolation only if the split image has transparency to support older setups. + # otherwise, open image normally. else: self.start_image = cv2.imread(path, cv2.IMREAD_COLOR) - self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE) + self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) start_image_pause = split_parser.pause_from_filename(self.start_image_name) if not wait_for_delay and start_image_pause is not None and start_image_pause > 0: - self.check_start_image_timestamp = time.time() + start_image_pause + self.check_start_image_timestamp = time() + start_image_pause self.startImageLabel.setText("Start image: paused") self.highestsimilarityLabel.setText(' ') self.currentsimilaritythresholdnumberLabel.setText(' ') @@ -345,12 +350,17 @@ def loadStartImage(self, started_by_button=False, wait_for_delay=True): self.start_image_split_below_threshold = False self.timerStartImage.start(int(1000 / self.fpslimitSpinBox.value())) - QtWidgets.QApplication.processEvents() + QApplication.processEvents() def startImageFunction(self): - if time.time() < self.check_start_image_timestamp: - pause_time_left = "{:.1f}".format(self.check_start_image_timestamp - time.time()) - self.currentSplitImage.setText(f'None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining') + + if self.start_image is None \ + or not self.start_image_name \ + or time() < self.check_start_image_timestamp \ + or (not self.splitLineEdit.text() and not self.is_auto_controlled): + pause_time_left = f"{self.check_start_image_timestamp - time():.1f}" + self.currentSplitImage.setText( + f'None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining') return if self.check_start_image_timestamp > 0: @@ -359,10 +369,14 @@ def startImageFunction(self): self.updateSplitImage(self.start_image_name, from_start_image=True) capture = self.getCaptureForComparison() - start_image_similarity = self.compareImage(self.start_image, self.start_image_mask, capture) + start_image_similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.start_image, + capture, + self.start_image_mask) start_image_threshold = split_parser.threshold_from_filename(self.start_image_name) \ or self.similaritythresholdDoubleSpinBox.value() - self.currentsimilaritythresholdnumberLabel.setText("{:.2f}".format(start_image_threshold)) + self.currentsimilaritythresholdnumberLabel.setText(f"{start_image_threshold:.2f}") start_image_flags = split_parser.flags_from_filename(self.start_image_name) start_image_delay = split_parser.delay_from_filename(self.start_image_name) @@ -390,11 +404,11 @@ def startImageFunction(self): if (start_image_flags & BELOW_FLAG == BELOW_FLAG and self.start_image_split_below_threshold and start_image_similarity < start_image_threshold) \ - or (start_image_similarity >= start_image_threshold and start_image_flags & BELOW_FLAG == 0): + or (start_image_similarity >= start_image_threshold and not start_image_flags & BELOW_FLAG): def split(): - self.hasSentStart = False self.send_command("start") - time.sleep(1 / self.fpslimitSpinBox.value()) + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1 / self.fpslimitSpinBox.value()) # type: ignore self.startAutoSplitter() self.timerStartImage.stop() @@ -403,11 +417,12 @@ def split(): # delay start image if needed if start_image_delay > 0: self.startImageLabel.setText("Start image: delaying start...") - delay_start_time = time.time() - while time.time() - delay_start_time < (start_image_delay / 1000): - delay_time_left = round((start_image_delay / 1000) - (time.time() - delay_start_time), 1) + delay_start_time = time() + while time() - delay_start_time < (start_image_delay / 1000): + delay_time_left = round((start_image_delay / 1000) - (time() - delay_start_time), 1) self.currentSplitImage.setText(f'Delayed Before Starting:\n {delay_time_left} sec remaining') - QtTest.QTest.qWait(1) + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore self.startImageLabel.setText("Start image: started") split() @@ -415,26 +430,26 @@ def split(): # update x, y, width, height when spinbox values are changed def updateX(self): try: - self.rect.left = self.xSpinBox.value() - self.rect.right = self.rect.left + self.widthSpinBox.value() + self.selection.left = self.xSpinBox.value() + self.selection.right = self.selection.left + self.widthSpinBox.value() self.checkLiveImage() except AttributeError: pass def updateY(self): try: - self.rect.top = self.ySpinBox.value() - self.rect.bottom = self.rect.top + self.heightSpinBox.value() + self.selection.top = self.ySpinBox.value() + self.selection.bottom = self.selection.top + self.heightSpinBox.value() self.checkLiveImage() except AttributeError: pass def updateWidth(self): - self.rect.right = self.rect.left + self.widthSpinBox.value() + self.selection.right = self.selection.left + self.widthSpinBox.value() self.checkLiveImage() def updateHeight(self): - self.rect.bottom = self.rect.top + self.heightSpinBox.value() + self.selection.bottom = self.selection.top + self.heightSpinBox.value() self.checkLiveImage() # update current split image. needed this to avoid updating it through the hotkey thread. @@ -454,10 +469,10 @@ def takeScreenshot(self): while os.path.exists(os.path.join(self.split_image_directory, f"{take_screenshot_filename}.png")): FileNameNumber = (f"{i:03}") take_screenshot_filename = f"{FileNameNumber}_SplitImage" - i = i + 1 + i += 1 # grab screenshot of capture region - capture = capture_windows.capture_region(self.hwnd, self.rect) + capture = capture_region(self.hwnd, self.selection) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # save and open image @@ -483,53 +498,44 @@ def checkFPS(self): # grab first image in the split image folder split_image = split_images[0] split_image = cv2.cvtColor(split_image, cv2.COLOR_BGR2RGB) - split_image = cv2.resize(split_image, COMPARISON_RESIZE) + split_image = cv2.resize(split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # run 10 iterations of screenshotting capture region + comparison. count = 0 - t0 = time.time() + t0 = time() while count < 10: - - capture = capture_windows.capture_region(self.hwnd, self.rect) - capture = cv2.resize(capture, COMPARISON_RESIZE) + capture = capture_region(self.hwnd, self.selection) + capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) - - if self.comparisonmethodComboBox.currentIndex() == 0: - _ = compare.compare_l2_norm(split_image, capture) - elif self.comparisonmethodComboBox.currentIndex() == 1: - _ = compare.compare_histograms(split_image, capture) - elif self.comparisonmethodComboBox.currentIndex() == 2: - _ = compare.compare_phash(split_image, capture) - - count = count + 1 + compareImage(self.comparisonmethodComboBox.currentIndex(), split_image, capture) + count += 1 # calculate FPS - t1 = time.time() + t1 = time() fps = str(int(10 / (t1 - t0))) self.fpsvalueLabel.setText(fps) def is_current_split_out_of_range(self): - return self.split_image_number < 0 or self.split_image_number > len(self.split_image_filenames_including_loops) - 1 + return self.split_image_number < 0 \ + or self.split_image_number > len(self.split_image_filenames_including_loops) - 1 # undo split button and hotkey connect to here def undoSplit(self): # Can't undo until timer is started # or Undoing past the first image - if self.startautosplitterButton.text() == 'Start Auto Splitter' or ("Delayed Split") in self.currentSplitImage.text(): - return - - if (not self.undosplitButton.isEnabled() and not self.is_auto_controlled) \ + if self.startautosplitterButton.text() == 'Start Auto Splitter' \ + or "Delayed Split" in self.currentSplitImage.text() \ + or (not self.undosplitButton.isEnabled() and not self.is_auto_controlled) \ or self.is_current_split_out_of_range(): return - elif self.groupDummySplitsCheckBox.isChecked(): + if self.groupDummySplitsCheckBox.isChecked(): for i, group in enumerate(self.split_groups): if i > 0 and self.split_image_number in group: self.split_image_number = self.split_groups[i - 1][0] break - else: - self.split_image_number = self.split_image_number - 1 + self.split_image_number -= 1 self.updateSplitImage() @@ -539,10 +545,10 @@ def undoSplit(self): def skipSplit(self): # Can't skip or split until timer is started # or Splitting/skipping when there are no images left - if self.startautosplitterButton.text() == 'Start Auto Splitter' or ("Delayed Split") in self.currentSplitImage.text(): - return - - if (not self.skipsplitButton.isEnabled() and not self.is_auto_controlled) or self.is_current_split_out_of_range(): + if self.startautosplitterButton.text() == 'Start Auto Splitter' \ + or "Delayed Split" in self.currentSplitImage.text() \ + or (not self.skipsplitButton.isEnabled() and not self.is_auto_controlled) \ + or self.is_current_split_out_of_range(): return if self.groupDummySplitsCheckBox.isChecked(): @@ -551,7 +557,7 @@ def skipSplit(self): self.split_image_number = group[-1] + 1 break else: - self.split_image_number = self.split_image_number + 1 + self.split_image_number += 1 self.updateSplitImage() @@ -564,15 +570,12 @@ def reset(self): # When the reset button or hotkey is pressed, it will change this text, # which will trigger in the autoSplitter function, if running, to abort and change GUI. self.startautosplitterButton.setText('Start Auto Splitter') - return # Functions for the hotkeys to return to the main thread from signals and start their corresponding functions def startAutoSplitter(self): - self.hasSentStart = True - # If the auto splitter is already running or the button is disabled, don't emit the signal to start it. - if self.startautosplitterButton.text() == 'Running...' or \ - (not self.startautosplitterButton.isEnabled() and not self.is_auto_controlled): + if self.startautosplitterButton.text() == 'Running...' \ + or (not self.startautosplitterButton.isEnabled() and not self.is_auto_controlled): return if self.startImageLabel.text() == "Start image: ready" or self.startImageLabel.text() == "Start image: paused": @@ -603,102 +606,64 @@ def checkForReset(self): def autoSplitter(self): if not self.validateBeforeComparison(): + self.guiChangesOnReset() return - # get split image filenames - self.split_image_filenames = os.listdir(self.split_image_directory) - - # Make sure that each of the images follows the guidelines for correct format - # according to all of the settings selected by the user. - for image in self.split_image_filenames: - # Test for image without transparency - if (cv2.imread(os.path.join(self.split_image_directory, image), cv2.IMREAD_COLOR) is None - # Test for image with transparency - and cv2.imread(os.path.join(self.split_image_directory, image), cv2.IMREAD_UNCHANGED) is None): - # Opencv couldn't open this file as an image, this isn't a correct - # file format that is supported - self.guiChangesOnReset() - error_messages.imageTypeError(image) - return - - # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. - if (self.pausehotkeyLineEdit.text() == '' - and split_parser.flags_from_filename(image) & PAUSE_FLAG == PAUSE_FLAG - and not self.is_auto_controlled): - self.guiChangesOnReset() - error_messages.pauseHotkeyError() - return - - if self.splitLineEdit.text() == '' and not self.is_auto_controlled: + if not self.splitLineEdit.text() and not self.is_auto_controlled: self.guiChangesOnReset() error_messages.splitHotkeyError() return - # find reset image then remove it from the list - self.findResetImage() - - # find start_auto_splitter_image and then remove it from the list - self.removeStartAutoSplitterImage() - - # Check that there's only one reset image - for image in self.split_image_filenames: + # get split image filenames + self.split_image_filenames = os.listdir(self.split_image_directory) - if split_parser.is_reset_image(image): - self.guiChangesOnReset() - error_messages.multipleKeywordImagesError('reset') - return + split_parser.validate_images_before_parsing(self) - # Check that there's only one auto_start_autosplitter image - for image in self.split_image_filenames: + # find reset image then remove it from the list + self.findResetImage() - if split_parser.is_start_auto_splitter_image(image): - self.guiChangesOnReset() - error_messages.multipleKeywordImagesError('start_auto_splitter') - return + # Find start_auto_splitter_image and then remove it from the list + split_parser.removeStartAutoSplitterImage(self.split_image_filenames) - # If there is no reset hotkey set but a reset image is present, and is not auto controlled, throw an error. - if self.resetLineEdit.text() == '' and self.reset_image is not None and not self.is_auto_controlled: - self.guiChangesOnReset() - error_messages.resetHotkeyError() - return +# region TODO I feel this entire region could be simplified # construct loop amounts for each split image - self.split_image_loop_amount = [] - for i, image in enumerate(self.split_image_filenames): - self.split_image_loop_amount.append(split_parser.loop_from_filename(image)) + split_image_loop_amount = [ + split_parser.loop_from_filename(image) + for image + in self.split_image_filenames] # construct a list of filenames, each filename copied with # of loops it has. self.split_image_filenames_including_loops: List[str] = [] for i, filename in enumerate(self.split_image_filenames): current_loop = 1 - while self.split_image_loop_amount[i] >= current_loop: + while split_image_loop_amount[i] >= current_loop: self.split_image_filenames_including_loops.append(filename) current_loop = current_loop + 1 # construct a list of corresponding loop number to the filenames - self.loop_numbers: List[int] = [] + loop_numbers: List[int] = [] loop_count = 1 for i, filename in enumerate(self.split_image_filenames_including_loops): if i == 0: - self.loop_numbers.append(1) + loop_numbers.append(1) else: - if self.split_image_filenames_including_loops[i] != self.split_image_filenames_including_loops[i-1]: + if self.split_image_filenames_including_loops[i] != self.split_image_filenames_including_loops[i - 1]: loop_count = 1 - self.loop_numbers.append(loop_count) else: - loop_count = loop_count + 1 - self.loop_numbers.append(loop_count) + loop_count += 1 + loop_numbers.append(loop_count) # Merge them self.split_image_filenames_and_loop_number = [ - (filename, self.loop_numbers[i], self.split_image_filenames_including_loops.count(filename)) + (filename, loop_numbers[i], self.split_image_filenames_including_loops.count(filename)) for i, filename in enumerate(self.split_image_filenames_including_loops) ] # construct groups of splits if needed - self.split_groups = [] + self.split_groups: List[List[int]] = [] if self.groupDummySplitsCheckBox.isChecked(): - current_group = [] + current_group: List[int] = [] self.split_groups.append(current_group) for i, image in enumerate(self.split_image_filenames_including_loops): @@ -709,43 +674,41 @@ def autoSplitter(self): current_group = [] self.split_groups.append(current_group) - - # construct dummy splits array - self.dummy_splits_array = [] - for i, image in enumerate(self.split_image_filenames_including_loops): - if split_parser.flags_from_filename(image) & DUMMY_FLAG == DUMMY_FLAG: - self.dummy_splits_array.append(True) - else: - self.dummy_splits_array.append(False) +# endregion self.guiChangesOnStart() # Initialize a few attributes self.split_image_number = 0 - self.number_of_split_images = len(self.split_image_filenames_including_loops) self.waiting_for_split_delay = False self.split_below_threshold = False - - self.run_start_time = time.time() + split_time = 0 + number_of_split_images = len(self.split_image_filenames_including_loops) + dummy_splits_array = [ + split_parser.flags_from_filename(image) & DUMMY_FLAG == DUMMY_FLAG + for image + in self.split_image_filenames_including_loops] + self.run_start_time = time() + windowText = win32gui.GetWindowText(self.hwnd) # First while loop: stays in this loop until all of the split images have been split - while self.split_image_number < self.number_of_split_images: + while self.split_image_number < number_of_split_images: # Check if we are not waiting for the split delay to send the key press - if self.waiting_for_split_delay == True: - time_millis = int(round(time.time() * 1000)) - if time_millis < self.split_time: - QtWidgets.QApplication.processEvents() + if self.waiting_for_split_delay: + time_millis = int(round(time() * 1000)) + if time_millis < split_time: + QApplication.processEvents() continue self.updateSplitImage() # second while loop: stays in this loop until similarity threshold is met # skip loop if we just finished waiting for the split delay and need to press the split key! - start = time.time() + start = time() while True: # reset if the set screen region window was closed - if win32gui.GetWindowText(self.hwnd) == '': + if not windowText: self.reset() if self.checkForReset(): @@ -755,7 +718,11 @@ def autoSplitter(self): capture = self.getCaptureForComparison() if self.shouldCheckResetImage(): - reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) + reset_similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.reset_image, + capture, + self.reset_mask) if reset_similarity >= self.reset_image_threshold: self.send_command("reset") self.reset() @@ -769,7 +736,11 @@ def autoSplitter(self): capture = self.getCaptureForComparison() # calculate similarity for split image - self.similarity = self.compareImage(self.split_image, self.image_mask, capture) + self.similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.split_image, + capture, + self.image_mask) # show live similarity if the checkbox is checked if self.showlivesimilarityCheckBox.isChecked(): @@ -788,17 +759,14 @@ def autoSplitter(self): self.highestsimilarityLabel.setText(' ') if not self.is_auto_controlled: - # if its the last split image or can't skip due to grouped dummy splits, disable the skip split button - if (self.split_image_number == self.number_of_split_images - 1) or (self.groupDummySplitsCheckBox.isChecked() == True and self.dummy_splits_array[self.split_image_number:].count(False) <= 1): - self.skipsplitButton.setEnabled(False) - else: - self.skipsplitButton.setEnabled(True) + # if its the last split image or can't skip due to grouped dummy splits, disable skip split button + is_last = self.split_image_number == number_of_split_images - 1 \ + or (self.groupDummySplitsCheckBox.isChecked() + and dummy_splits_array[self.split_image_number:].count(False) <= 1) + self.skipsplitButton.setEnabled(not is_last) # if its the first split image, disable the undo split button - if self.split_image_number == 0: - self.undosplitButton.setEnabled(False) - else: - self.undosplitButton.setEnabled(True) + self.undosplitButton.setEnabled(self.split_image_number != 0) # if the b flag is set, let similarity go above threshold first, # then split on similarity below threshold. @@ -816,31 +784,33 @@ def autoSplitter(self): break # limit the number of time the comparison runs to reduce cpu usage - fps_limit = self.fpslimitSpinBox.value() - time.sleep((1 / fps_limit) - (time.time() - start) % (1 / fps_limit)) - QtWidgets.QApplication.processEvents() + frame_interval = 1 / self.fpslimitSpinBox.value() + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(frame_interval - (time() - start) % frame_interval) # type: ignore + QApplication.processEvents() # comes here when threshold gets met # We need to make sure that this isn't a dummy split before sending # the key press. - if not (self.flags & DUMMY_FLAG == DUMMY_FLAG): + if self.flags & DUMMY_FLAG != DUMMY_FLAG: # If it's a delayed split, check if the delay has passed # Otherwise calculate the split time for the key press - if self.split_delay > 0 and self.waiting_for_split_delay == False: - self.split_time = int(round(time.time() * 1000)) + self.split_delay + if self.split_delay > 0 and not self.waiting_for_split_delay: + split_time = int(round(time() * 1000) + self.split_delay) self.waiting_for_split_delay = True self.undosplitButton.setEnabled(False) self.skipsplitButton.setEnabled(False) self.currentsplitimagefileLabel.setText(' ') # check for reset while delayed and display a counter of the remaining split delay time - delay_start_time = time.time() - while time.time() - delay_start_time < (self.split_delay / 1000): - delay_time_left = round((self.split_delay / 1000) - (time.time() - delay_start_time), 1) + delay_start_time = time() + split_delay = self.split_delay / 1000 + while time() - delay_start_time < split_delay: + delay_time_left = round(split_delay - (time() - delay_start_time), 1) self.currentSplitImage.setText(f'Delayed Split: {delay_time_left} sec remaining') # check for reset - if win32gui.GetWindowText(self.hwnd) == '': + if not windowText: self.reset() if self.checkForReset(): return @@ -849,86 +819,87 @@ def autoSplitter(self): if self.shouldCheckResetImage(): capture = self.getCaptureForComparison() - reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) + reset_similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.reset_image, + capture, + self.reset_mask) if reset_similarity >= self.reset_image_threshold: self.send_command("reset") self.reset() continue - - QtTest.QTest.qWait(1) + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore self.waiting_for_split_delay = False # if {p} flag hit pause key, otherwise hit split hotkey - if (self.flags & PAUSE_FLAG == PAUSE_FLAG): - self.send_command("pause") - else: - self.send_command("split") + self.send_command("pause" if self.flags & PAUSE_FLAG == PAUSE_FLAG else "split") # if loop check box is checked and its the last split, go to first split. # else go to the next split image. - if self.loopCheckBox.isChecked() and self.split_image_number == self.number_of_split_images - 1: + if self.loopCheckBox.isChecked() and self.split_image_number == number_of_split_images - 1: self.split_image_number = 0 else: - self.split_image_number = self.split_image_number + 1 + self.split_image_number += 1 - # set a "pause" split image number. This is done so that it can detect if user hit split/undo split while paused. + # Set a "pause" split image number. + # This is done so that it can detect if user hit split/undo split while paused. pause_split_image_number = self.split_image_number # if its not the last split image, pause for the amount set by the user - if self.number_of_split_images != self.split_image_number: + if number_of_split_images != self.split_image_number: if not self.is_auto_controlled: - # if its the last split image and last loop number, disable the skip split button - if self.split_image_number == self.number_of_split_images - 1 or (self.groupDummySplitsCheckBox.isChecked() == True and self.dummy_splits_array[self.split_image_number:].count(False) <= 1): - self.skipsplitButton.setEnabled(False) - else: - self.skipsplitButton.setEnabled(True) + # if its the last split image and last loop number, disable skip split button + is_last = self.split_image_number == number_of_split_images - 1 \ + or (self.groupDummySplitsCheckBox.isChecked() + and dummy_splits_array[self.split_image_number:].count(False) <= 1) + self.skipsplitButton.setEnabled(not is_last) # if its the first split image, disable the undo split button - if self.split_image_number == 0: - self.undosplitButton.setEnabled(False) - else: - self.undosplitButton.setEnabled(True) - - QtWidgets.QApplication.processEvents() + self.undosplitButton.setEnabled(self.split_image_number != 0) + QApplication.processEvents() + + # A pause loop to check if the user presses skip split, undo split, or reset here. + # Also updates the current split image text, counting down the time until the next split image + if self.pause > 0: + self.currentsplitimagefileLabel.setText(' ') + self.imageloopLabel.setText('Image Loop: -') + pause_start_time = time() + while time() - pause_start_time < self.pause: + pause_time_left = round(self.pause - (time() - pause_start_time), 1) + self.currentSplitImage.setText(f'None (Paused). {pause_time_left} sec remaining') + + # check for reset + if not windowText: + self.reset() + if self.checkForReset(): + return - # I have a pause loop here so that it can check if the user presses skip split, undo split, or reset here. - # Also updates the current split image text, counting down the time until the next split image - if self.pause > 0: - self.currentsplitimagefileLabel.setText(' ') - self.imageloopLabel.setText('Image Loop: -') - pause_start_time = time.time() - while time.time() - pause_start_time < self.pause: - pause_time_left = round(self.pause - (time.time() - pause_start_time), 1) - self.currentSplitImage.setText(f'None (Paused). {pause_time_left} sec remaining') + # check for skip/undo split: + if self.split_image_number != pause_split_image_number: + break - # check for reset - if win32gui.GetWindowText(self.hwnd) == '': + # calculate similarity for reset image + if self.shouldCheckResetImage(): + capture = self.getCaptureForComparison() + + reset_similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.reset_image, + capture, + self.reset_mask) + if reset_similarity >= self.reset_image_threshold: + self.send_command("reset") self.reset() - if self.checkForReset(): - return - - # check for skip/undo split: - if self.split_image_number != pause_split_image_number: - break - - # calculate similarity for reset image - if self.shouldCheckResetImage(): - capture = self.getCaptureForComparison() - - reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) - if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") - self.reset() - continue - - QtTest.QTest.qWait(1) + continue + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore # loop breaks to here when the last image splits self.guiChangesOnReset() - def guiChangesOnStart(self): self.timerStartImage.stop() self.startautosplitterButton.setText('Running...') @@ -947,8 +918,7 @@ def guiChangesOnStart(self): self.setundosplithotkeyButton.setEnabled(False) self.setpausehotkeyButton.setEnabled(False) - QtWidgets.QApplication.processEvents() - + QApplication.processEvents() def guiChangesOnReset(self): self.startautosplitterButton.setText('Start Auto Splitter') @@ -973,49 +943,25 @@ def guiChangesOnReset(self): self.setundosplithotkeyButton.setEnabled(True) self.setpausehotkeyButton.setEnabled(True) - QtWidgets.QApplication.processEvents() + QApplication.processEvents() self.loadStartImage(False, False) - - def compareImage(self, image, mask, capture): - if image is None or capture is None: - return 0.0 - if mask is None: - if self.comparisonmethodComboBox.currentIndex() == 0: - return compare.compare_l2_norm(image, capture) - elif self.comparisonmethodComboBox.currentIndex() == 1: - return compare.compare_histograms(image, capture) - elif self.comparisonmethodComboBox.currentIndex() == 2: - return compare.compare_phash(image, capture) - else: - if self.comparisonmethodComboBox.currentIndex() == 0: - return compare.compare_l2_norm_masked(image, capture, mask) - elif self.comparisonmethodComboBox.currentIndex() == 1: - return compare.compare_histograms_masked(image, capture, mask) - elif self.comparisonmethodComboBox.currentIndex() == 2: - return compare.compare_phash_masked(image, capture, mask) - return 0.0 - def getCaptureForComparison(self): # grab screenshot of capture region - capture = capture_windows.capture_region(self.hwnd, self.rect) - # Capture with nearest neighbor interpolation only if the split image has transparency to support older setups - if self.imageHasTransparency: - capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - else: - capture = cv2.resize(capture, COMPARISON_RESIZE) + capture = capture_region(self.hwnd, self.selection) + capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # convert to BGR return cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) def shouldCheckResetImage(self): - return self.reset_image is not None and time.time() - self.run_start_time > self.reset_image_pause_time + return self.reset_image is not None and time() - self.run_start_time > self.reset_image_pause_time def findResetImage(self): - self.reset_image = None - self.reset_mask = None + self.reset_image: Optional[cv2.ndarray] = None + self.reset_mask: Optional[cv2.ndarray] = None reset_image_file = None - for i, image in enumerate(self.split_image_filenames): + for image in self.split_image_filenames: if split_parser.is_reset_image(image): reset_image_file = image break @@ -1043,32 +989,20 @@ def findResetImage(self): error_messages.imageTypeError(path) return # if image has transparency, create a mask - if compare.checkIfImageHasTransparency(self.reset_image): + if checkIfImageHasTransparency(self.reset_image): self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Create mask based on resized, nearest neighbor interpolated split image lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([255, 255, 255, 255], dtype="uint8") + upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") self.reset_mask = cv2.inRange(self.reset_image, lower, upper) # set split image as BGR self.reset_image = cv2.cvtColor(self.reset_image, cv2.COLOR_BGRA2BGR) - # otherwise, open image normally. Capture with nearest neighbor interpolation only if the split image has transparency to support older setups + # otherwise, open image normally. else: self.reset_image = cv2.imread(path, cv2.IMREAD_COLOR) - self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE) - - def removeStartAutoSplitterImage(self): - start_auto_splitter_image_file = None - for _, image in enumerate(self.split_image_filenames): - if split_parser.is_start_auto_splitter_image(image): - start_auto_splitter_image_file = image - break - - if start_auto_splitter_image_file is None: - return - - self.split_image_filenames.remove(start_auto_splitter_image_file) + self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = False): # Splitting/skipping when there are no images left or Undoing past the first image @@ -1088,35 +1022,35 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = if self.split_image is None: error_messages.imageTypeError(self.split_image_path) return - self.imageHasTransparency = compare.checkIfImageHasTransparency(self.split_image) + self.imageHasTransparency = checkIfImageHasTransparency(self.split_image) # if image has transparency, create a mask if self.imageHasTransparency: split_image_display = copy(self.split_image) # Transform transparency into UI's gray BG color transparent_mask = split_image_display[:, :, 3] == 0 split_image_display[:, :, 3] == 0 - split_image_display[transparent_mask] = [240, 240, 240, 255] + split_image_display[transparent_mask] = [240, 240, 240, MAXBYTE] split_image_display = cv2.cvtColor(split_image_display, cv2.COLOR_BGRA2RGB) self.split_image = cv2.resize(self.split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Create mask based on resized, nearest neighbor interpolated split image lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([255, 255, 255, 255], dtype="uint8") + upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") self.image_mask = cv2.inRange(self.split_image, lower, upper) # set split image as BGR self.split_image = cv2.cvtColor(self.split_image, cv2.COLOR_BGRA2BGR) - # otherwise, open image normally. don't interpolate nearest neighbor here so setups before 1.2.0 still work. + # otherwise, open image normally. else: self.split_image = cv2.imread(self.split_image_path, cv2.IMREAD_COLOR) split_image_display = cv2.cvtColor(copy(self.split_image), cv2.COLOR_BGR2RGB) - self.split_image = cv2.resize(self.split_image, COMPARISON_RESIZE) + self.split_image = cv2.resize(self.split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) self.image_mask = None split_image_display = cv2.resize(split_image_display, DISPLAY_RESIZE) # Set current split image in UI - qImage = QtGui.QImage(split_image_display, + qImage = QtGui.QImage(cast(bytes, split_image_display), split_image_display.shape[1], split_image_display.shape[0], split_image_display.shape[1] * 3, @@ -1133,7 +1067,7 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = self.similarity_threshold = self.similaritythresholdDoubleSpinBox.value() \ if threshold_from_filename is None \ else threshold_from_filename - self.currentsimilaritythresholdnumberLabel.setText("{:.2f}".format(self.similarity_threshold)) + self.currentsimilaritythresholdnumberLabel.setText(f"{self.similarity_threshold:.2f}") # Get delay for split, if any self.split_delay = split_parser.delay_from_filename(split_image_file) @@ -1152,14 +1086,15 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = self.highest_similarity = 0.001 # exit safely when closing the window - def closeEvent(self, event: QtGui.QCloseEvent = None): - #save global setting values here + + def closeEvent(self, a0: Optional[QtGui.QCloseEvent] = None): + # save global setting values here self.setting_check_for_updates_on_open.setValue('check_for_updates_on_open', self.actionCheck_for_Updates_on_Open.isChecked()) - def exit(): - if event is not None: - event.accept() + def exitProgram(): + if a0 is not None: + a0.accept() if self.is_auto_controlled: self.update_auto_control.terminate() # stop main thread (which is probably blocked reading input) via an interrupt signal @@ -1170,37 +1105,37 @@ def exit(): # Simulates LiveSplit quitting without asking. See "TODO" at update_auto_control Worker # This also more gracefully exits LiveSplit # Users can still manually save their settings - if event is None: - exit() + if a0 is None: + exitProgram() if self.haveSettingsChanged(): - # give a different warning if there was never a settings file that was loaded successfully, and save as instead of save. - msgBox = QtWidgets.QMessageBox + # Give a different warning if there was never a settings file that was loaded successfully, + # and "save as" instead of "save". settings_file_name = "Untitled" \ if self.last_successfully_loaded_settings_file_path is None \ else os.path.basename(self.last_successfully_loaded_settings_file_path) warning_message = f"Do you want to save changes made to settings file {settings_file_name}?" - warning = msgBox.warning( + warning = QMessageBox.warning( self, "AutoSplit", warning_message, - msgBox.StandardButton.Yes | msgBox.StandardButton.No | msgBox.StandardButton.Cancel) + QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No | QMessageBox.StandardButton.Cancel) - if warning == msgBox.StandardButton.Yes: + if warning is QMessageBox.StandardButton.Yes: # TODO: Don't close if user cancelled the save self.saveSettingsAs() - exit() - if warning == msgBox.StandardButton.No: - exit() - if warning == msgBox.StandardButton.Cancel: - event.ignore() + exitProgram() + if warning is QMessageBox.StandardButton.No: + exitProgram() + if warning is QMessageBox.StandardButton.Cancel: + a0.ignore() else: - exit() + exitProgram() def main(): - app = QtWidgets.QApplication(sys.argv) + app = QApplication(sys.argv) try: app.setWindowIcon(QtGui.QIcon(':/resources/icon.ico')) main_window = AutoSplit() @@ -1226,19 +1161,19 @@ def main(): sys.exit(1) # Catch Keyboard Interrupts for a clean close - signal.signal(signal.SIGINT, lambda code, _: sys.exit(code)) + signal.signal(signal.SIGINT, lambda code, _: sys.exit(code)) sys.exit(exit_code) -def excepthook(exceptionType: Type[BaseException], exception: BaseException, traceback: Optional[TracebackType]): +def excepthook(exceptionType: Type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): # Catch Keyboard Interrupts for a clean close if exceptionType is KeyboardInterrupt: sys.exit(0) error_messages.exceptionTraceback( - "AutoSplit encountered an unhandled exception and will try to recover, " - f"however, there is no guarantee everything will work properly. {CREATE_NEW_ISSUE_MESSAGE}", - exception) + "AutoSplit encountered an unhandled exception and will try to recover, " + f"however, there is no guarantee everything will work properly. {CREATE_NEW_ISSUE_MESSAGE}", + exception) if __name__ == '__main__': diff --git a/src/about.py b/src/about.py deleted file mode 100644 index a4303bca..00000000 --- a/src/about.py +++ /dev/null @@ -1,58 +0,0 @@ -# Form implementation generated from reading ui file '.\res\about.ui' -# -# Created by: PyQt6 UI code generator 6.1.0 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt6 import QtCore, QtGui, QtWidgets - - -class Ui_aboutAutoSplitWidget(object): - def setupUi(self, aboutAutoSplitWidget): - aboutAutoSplitWidget.setObjectName("aboutAutoSplitWidget") - aboutAutoSplitWidget.resize(264, 250) - aboutAutoSplitWidget.setMinimumSize(QtCore.QSize(264, 250)) - aboutAutoSplitWidget.setMaximumSize(QtCore.QSize(264, 250)) - font = QtGui.QFont() - font.setPointSize(9) - aboutAutoSplitWidget.setFont(font) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(":/resources/icon.ico"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) - aboutAutoSplitWidget.setWindowIcon(icon) - self.okButton = QtWidgets.QPushButton(aboutAutoSplitWidget) - self.okButton.setGeometry(QtCore.QRect(180, 220, 75, 24)) - self.okButton.setObjectName("okButton") - self.createdbyLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.createdbyLabel.setGeometry(QtCore.QRect(10, 44, 161, 32)) - self.createdbyLabel.setObjectName("createdbyLabel") - self.versionLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.versionLabel.setGeometry(QtCore.QRect(10, 21, 161, 16)) - self.versionLabel.setObjectName("versionLabel") - self.donatetextLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.donatetextLabel.setGeometry(QtCore.QRect(30, 95, 204, 32)) - self.donatetextLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.donatetextLabel.setObjectName("donatetextLabel") - self.donatebuttonLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.donatebuttonLabel.setGeometry(QtCore.QRect(60, 150, 147, 47)) - self.donatebuttonLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.donatebuttonLabel.setObjectName("donatebuttonLabel") - self.iconLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.iconLabel.setGeometry(QtCore.QRect(190, 17, 62, 71)) - self.iconLabel.setObjectName("iconLabel") - - self.retranslateUi(aboutAutoSplitWidget) - self.okButton.clicked.connect(aboutAutoSplitWidget.close) - QtCore.QMetaObject.connectSlotsByName(aboutAutoSplitWidget) - - def retranslateUi(self, aboutAutoSplitWidget): - _translate = QtCore.QCoreApplication.translate - aboutAutoSplitWidget.setWindowTitle(_translate("aboutAutoSplitWidget", "About AutoSplit")) - self.okButton.setText(_translate("aboutAutoSplitWidget", "OK")) - self.createdbyLabel.setText(_translate("aboutAutoSplitWidget", "

Created by Toufool and Faschz
Maintained by Avasam

")) - self.versionLabel.setText(_translate("aboutAutoSplitWidget", "Version: ")) - self.donatetextLabel.setText(_translate("aboutAutoSplitWidget", "If you enjoy using this program, please\n" -"consider donating. Thank you!")) - self.donatebuttonLabel.setText(_translate("aboutAutoSplitWidget", "

")) - self.iconLabel.setText(_translate("aboutAutoSplitWidget", "

")) diff --git a/src/capture_windows.py b/src/capture_windows.py index 15a7dfee..cbcda017 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -1,16 +1,19 @@ from __future__ import annotations -from typing import Dict +from typing import Dict, cast -from ctypes import windll -from ctypes.wintypes import LONG, RECT, HBITMAP -from packaging import version -from win32 import win32gui +import ctypes +import ctypes.wintypes import platform -import pywintypes +from dataclasses import dataclass + +import cv2 import numpy as np -import win32ui import win32con - +import win32ui +import pywintypes +from packaging import version +from win32 import win32gui +from win32typing import PyCBitmap, PyCDC # This is an undocumented nFlag value for PrintWindow PW_RENDERFULLCONTENT = 0x00000002 @@ -18,13 +21,22 @@ is_windows_11 = version.parse(platform.version()) >= version.parse("10.0.22000") -def capture_region(hwnd: int, rect: RECT): +# ctypes.wintypes.RECT has c_long which doesn't have math operators implemented +@dataclass +class Rect(ctypes.wintypes.RECT): + left: int = -1 # type: ignore + top: int = -1 # type: ignore + right: int = -1 # type: ignore + bottom: int = -1 # type: ignore + + +def capture_region(hwnd: int, selection: Rect): """ Captures an image of the region for a window matching the given parameters of the bounding box @param hwnd: Handle to the window being captured - @param rect: The coordinates of the region + @param selection: The coordinates of the region @return: The image of the region in the window in BGRA format """ @@ -35,37 +47,39 @@ def capture_region(hwnd: int, rect: RECT): # The window type is not yet known, let's find out! if is_accelerated_window is None: # We need to get the image at least once to check if it's full black - image = __get_image(hwnd, rect, False) + image = __get_image(hwnd, selection, False) # TODO check for first non-black pixel, no need to iterate through the whole image is_accelerated_window = not np.count_nonzero(image) accelerated_windows[hwnd] = is_accelerated_window - return __get_image(hwnd, rect, True) if is_accelerated_window else image + return __get_image(hwnd, selection, True) if is_accelerated_window else image - return __get_image(hwnd, rect, is_accelerated_window) + return __get_image(hwnd, selection, is_accelerated_window) -def __get_image(hwnd: int, rect: RECT, print_window: bool = False): - width: LONG = rect.right - rect.left - height: LONG = rect.bottom - rect.top +def __get_image(hwnd: int, selection: Rect, print_window: bool = False): + width: int = selection.right - selection.left + height: int = selection.bottom - selection.top # If the window closes while it's being manipulated, it could cause a crash try: windowDC: int = win32gui.GetWindowDC(hwnd) - dcObject = win32ui.CreateDCFromHandle(windowDC) + # https://github.com/kaluluosi/pywin32-stubs/issues/6 + dcObject: PyCDC = win32ui.CreateDCFromHandle(windowDC) # type: ignore # Causes a 10-15x performance drop. But allows recording hardware accelerated windows - if (print_window): - windll.user32.PrintWindow(hwnd, dcObject.GetSafeHdc(), PW_RENDERFULLCONTENT) + if print_window: + ctypes.windll.user32.PrintWindow(hwnd, dcObject.GetSafeHdc(), PW_RENDERFULLCONTENT) - compatibleDC = dcObject.CreateCompatibleDC() - bitmap: HBITMAP = win32ui.CreateBitmap() + compatibleDC = cast(PyCDC, dcObject.CreateCompatibleDC()) + bitmap: PyCBitmap = win32ui.CreateBitmap() bitmap.CreateCompatibleBitmap(dcObject, width, height) compatibleDC.SelectObject(bitmap) - compatibleDC.BitBlt((0, 0), (width, height), dcObject, (rect.left, rect.top), win32con.SRCCOPY) - except (win32ui.error, pywintypes.error): - errorImage = np.array([0, 0, 0, 1], dtype="uint8") - return errorImage + compatibleDC.BitBlt((0, 0), (width, height), dcObject, (selection.left, selection.top), win32con.SRCCOPY) + # https://github.com/kaluluosi/pywin32-stubs/issues/5 + # pylint: disable=no-member + except (win32ui.error, pywintypes.error): # type: ignore + return np.array([0, 0, 0, 1], dtype="uint8") - image: np._BufferType = np.frombuffer(bitmap.GetBitmapBits(True), dtype='uint8') + image: cv2.ndarray = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype='uint8') image.shape = (height, width, 4) try: @@ -73,7 +87,8 @@ def __get_image(hwnd: int, rect: RECT, print_window: bool = False): compatibleDC.DeleteDC() win32gui.ReleaseDC(hwnd, windowDC) win32gui.DeleteObject(bitmap.GetHandle()) - except win32ui.error: + # https://github.com/kaluluosi/pywin32-stubs/issues/5 + except win32ui.error: # type: ignore pass return image diff --git a/src/compare.py b/src/compare.py index a9656c52..c2cd9243 100644 --- a/src/compare.py +++ b/src/compare.py @@ -1,30 +1,32 @@ +from __future__ import annotations +from typing import Optional from PIL import Image +from win32con import MAXBYTE import cv2 -import imagehash +import imagehash # https://github.com/JohannesBuchner/imagehash/issues/151 import numpy as np +MAXRANGE = MAXBYTE + 1 +channels = [0, 1, 2] +histSize = [8, 8, 8] +ranges = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] -def compare_histograms(source, capture) -> float: - """ - Compares two images by calculating their histograms, normalizing them, and - then comparing them using Bhattacharyya distance. - - @param source: 3 color image of any given width and height - @param capture: An image matching the dimensions of the source - @return: The similarity between the histograms as a number 0 to 1. - """ - source_hist = cv2.calcHist([source], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256]) - capture_hist = cv2.calcHist([capture], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256]) +def compareImage(comparisonMethod: int, image: Optional[cv2.ndarray], capture: Optional[cv2.ndarray], mask: Optional[cv2.ndarray] = None): + if image is None or capture is None: + return 0.0 + if comparisonMethod == 0: + return compare_l2_norm(image, capture, mask) + if comparisonMethod == 1: + return compare_histograms(image, capture, mask) + if comparisonMethod == 2: + return compare_phash(image, capture, mask) + return 0.0 - cv2.normalize(source_hist, source_hist) - cv2.normalize(capture_hist, capture_hist) - - return 1 - cv2.compareHist(source_hist, capture_hist, cv2.HISTCMP_BHATTACHARYYA) -def compare_histograms_masked(source, capture, mask) -> float: +def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: """ - Compares two images by calculating their histograms using a mask, normalizing + Compares two images by calculating their histograms, normalizing them, and then comparing them using Bhattacharyya distance. @param source: 3 color image of any given width and height @@ -32,34 +34,19 @@ def compare_histograms_masked(source, capture, mask) -> float: @param mask: An image matching the dimensions of the source, but 1 channel grayscale @return: The similarity between the histograms as a number 0 to 1. """ - source_hist = cv2.calcHist([source], [0, 1, 2], mask, [8, 8, 8], [0, 256, 0, 256, 0, 256]) - capture_hist = cv2.calcHist([capture], [0, 1, 2], mask, [8, 8, 8], [0, 256, 0, 256, 0, 256]) + + source_hist = cv2.calcHist([source], channels, mask, histSize, ranges) + capture_hist = cv2.calcHist([capture], channels, mask, histSize, ranges) cv2.normalize(source_hist, source_hist) cv2.normalize(capture_hist, capture_hist) return 1 - cv2.compareHist(source_hist, capture_hist, cv2.HISTCMP_BHATTACHARYYA) -def compare_l2_norm(source, capture) -> float: - """ - Compares two images by calculating the L2 Error (square-root - of sum of squared error) - @param source: Image of any given shape - @param capture: Image matching the dimensions of the source - @return: The similarity between the images as a number 0 to 1. +def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): """ - error = cv2.norm(source, capture, cv2.NORM_L2) - - # The L2 Error is summed across all pixels, so this normalizes - max_error = (source.size ** 0.5) * 255 - - return 1 - (error / max_error) - -def compare_l2_norm_masked(source, capture, mask) -> float: - """ - Compares two images by calculating the L2 Error (square-root - of sum of squared error) + Compares two images by calculating the L2 Error (square-root of sum of squared error) @param source: Image of any given shape @param capture: Image matching the dimensions of the source @@ -67,75 +54,46 @@ def compare_l2_norm_masked(source, capture, mask) -> float: @return: The similarity between the images as a number 0 to 1. """ - error = cv2.norm(source, capture, cv2.NORM_L2, mask) + # https://github.com/microsoft/pylance-release/issues/2089 + error = cv2.norm(source, capture, cv2.NORM_L2, mask) # type: ignore # The L2 Error is summed across all pixels, so this normalizes - max_error = (3 * np.count_nonzero(mask) * 255 * 255) ** 0.5 + max_error = (source.size ** 0.5) * MAXBYTE \ + if mask is None \ + else (3 * np.count_nonzero(mask) * MAXBYTE * MAXBYTE) ** 0.5 if not max_error: return 0 return 1 - (error / max_error) -def compare_template(source, capture) -> float: + +def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: """ - Checks if the source is located within the capture by using - the sum of square differences. + Checks if the source is located within the capture by using the sum of square differences. + The mask is used to search for non-rectangular images within the capture @param source: The subsection being searched for within the capture @param capture: Capture of an image larger than the source + @param mask: The mask of the source with the same dimensions @return: The best similarity for a region found in the image. This is represented as a number from 0 to 1. """ - result = cv2.matchTemplate(capture, source, cv2.TM_SQDIFF) - min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) + result = cv2.matchTemplate(capture, source, cv2.TM_SQDIFF, mask=mask) + min_val, *_ = cv2.minMaxLoc(result) # matchTemplate returns the sum of square differences, this is the max # that the value can be. Used for normalizing from 0 to 1. - max_error = source.size * 255 * 255 + max_error = source.size * MAXBYTE * MAXBYTE \ + if mask is None \ + else np.count_nonzero(mask) return 1 - (min_val / max_error) -def compare_template_masked(source, capture, mask) -> float: - """ - Checks if the source is located within the capture by using - the sum of square differences. The mask is used to search for - non-rectangular images within the capture - - @param source: The subsection being searched for within the capture - @param capture: Capture of an image larger than the source - @param mask: The mask of the source with the same dimensions - @return: The best similarity for a region found in the image. This is - represented as a number from 0 to 1. - """ - - result = cv2.matchTemplate(capture, source, cv2.TM_SQDIFF, None, mask) - min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) - return 1 - (min_val/np.count_nonzero(mask)) - -def compare_phash(source, capture): +def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: """ - Compares the pHash of the two given images and returns the similarity between - the two. - - @param source: Image of any given shape as a numpy array - @param capture: Image of any given shape as a numpy array - @return: The similarity between the hashes of the image as a number 0 to 1. - """ - - source = Image.fromarray(source) - capture = Image.fromarray(capture) - - source_hash = imagehash.phash(source) - capture_hash = imagehash.phash(capture) - - return 1 - ((source_hash - capture_hash) / 64.0) - -def compare_phash_masked(source, capture, mask): - """ - Compares the pHash of the two given images and returns the similarity between - the two. + Compares the pHash of the two given images and returns the similarity between the two. @param source: Image of any given shape as a numpy array @param capture: Image of any given shape as a numpy array @@ -148,21 +106,19 @@ def compare_phash_masked(source, capture, mask): # each of the images. As a result of this, this function is not going to be very # helpful for large masks as the images when shrinked down to 8x8 will mostly be # the same - source = cv2.bitwise_and(source, source, mask=mask) - capture = cv2.bitwise_and(capture, capture, mask=mask) - - source = Image.fromarray(source) - capture = Image.fromarray(capture) - - source_hash = imagehash.phash(source) - capture_hash = imagehash.phash(capture) - - if not source_hash + capture_hash: + if mask: + source = cv2.bitwise_and(source, source, mask=mask) + capture = cv2.bitwise_and(capture, capture, mask=mask) + + source_hash = imagehash.phash(Image.fromarray(source)) + capture_hash = imagehash.phash(Image.fromarray(capture)) + hash_diff = source_hash - capture_hash + if not hash_diff: return 0 - return 1 - ((source_hash - capture_hash) / 64.0) + return 1 - (hash_diff / 64.0) -def checkIfImageHasTransparency(image): +def checkIfImageHasTransparency(image: cv2.ndarray): # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) if image.shape[2] != 4: return False diff --git a/src/design.py b/src/design.py deleted file mode 100644 index 28f0990c..00000000 --- a/src/design.py +++ /dev/null @@ -1,502 +0,0 @@ -# Form implementation generated from reading ui file '.\res\design.ui' -# -# Created by: PyQt6 UI code generator 6.1.0 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt6 import QtCore, QtGui, QtWidgets - - -class Ui_MainWindow(object): - def setupUi(self, MainWindow): - MainWindow.setObjectName("MainWindow") - MainWindow.resize(632, 490) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) - MainWindow.setSizePolicy(sizePolicy) - MainWindow.setMinimumSize(QtCore.QSize(632, 490)) - MainWindow.setMaximumSize(QtCore.QSize(632, 490)) - font = QtGui.QFont() - font.setPointSize(9) - MainWindow.setFont(font) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(":/resources/icon.ico"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) - MainWindow.setWindowIcon(icon) - MainWindow.setWhatsThis("") - MainWindow.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight) - self.centralwidget = QtWidgets.QWidget(MainWindow) - self.centralwidget.setObjectName("centralwidget") - self.splitimagefolderLabel = QtWidgets.QLabel(self.centralwidget) - self.splitimagefolderLabel.setGeometry(QtCore.QRect(20, 12, 98, 16)) - self.splitimagefolderLabel.setObjectName("splitimagefolderLabel") - self.splitimagefolderLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.splitimagefolderLineEdit.setGeometry(QtCore.QRect(130, 10, 412, 22)) - self.splitimagefolderLineEdit.setReadOnly(True) - self.splitimagefolderLineEdit.setObjectName("splitimagefolderLineEdit") - self.browseButton = QtWidgets.QPushButton(self.centralwidget) - self.browseButton.setGeometry(QtCore.QRect(540, 9, 75, 24)) - self.browseButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.browseButton.setObjectName("browseButton") - self.xLabel = QtWidgets.QLabel(self.centralwidget) - self.xLabel.setGeometry(QtCore.QRect(25, 145, 7, 16)) - self.xLabel.setObjectName("xLabel") - self.liveimageCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.liveimageCheckBox.setEnabled(True) - self.liveimageCheckBox.setGeometry(QtCore.QRect(120, 252, 129, 20)) - self.liveimageCheckBox.setChecked(True) - self.liveimageCheckBox.setTristate(False) - self.liveimageCheckBox.setObjectName("liveimageCheckBox") - self.selectregionButton = QtWidgets.QPushButton(self.centralwidget) - self.selectregionButton.setGeometry(QtCore.QRect(5, 70, 101, 23)) - self.selectregionButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.selectregionButton.setObjectName("selectregionButton") - self.similaritythresholdLabel = QtWidgets.QLabel(self.centralwidget) - self.similaritythresholdLabel.setGeometry(QtCore.QRect(7, 410, 151, 16)) - self.similaritythresholdLabel.setObjectName("similaritythresholdLabel") - self.similaritythresholdDoubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) - self.similaritythresholdDoubleSpinBox.setGeometry(QtCore.QRect(155, 408, 61, 22)) - self.similaritythresholdDoubleSpinBox.setMaximum(1.0) - self.similaritythresholdDoubleSpinBox.setSingleStep(0.01) - self.similaritythresholdDoubleSpinBox.setProperty("value", 0.9) - self.similaritythresholdDoubleSpinBox.setObjectName("similaritythresholdDoubleSpinBox") - self.startautosplitterButton = QtWidgets.QPushButton(self.centralwidget) - self.startautosplitterButton.setGeometry(QtCore.QRect(500, 425, 121, 31)) - self.startautosplitterButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.startautosplitterButton.setObjectName("startautosplitterButton") - self.resetButton = QtWidgets.QPushButton(self.centralwidget) - self.resetButton.setGeometry(QtCore.QRect(500, 390, 121, 31)) - self.resetButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.resetButton.setObjectName("resetButton") - self.undosplitButton = QtWidgets.QPushButton(self.centralwidget) - self.undosplitButton.setGeometry(QtCore.QRect(494, 250, 64, 24)) - self.undosplitButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.undosplitButton.setObjectName("undosplitButton") - self.skipsplitButton = QtWidgets.QPushButton(self.centralwidget) - self.skipsplitButton.setGeometry(QtCore.QRect(560, 250, 61, 24)) - self.skipsplitButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.skipsplitButton.setObjectName("skipsplitButton") - self.pauseLabel = QtWidgets.QLabel(self.centralwidget) - self.pauseLabel.setGeometry(QtCore.QRect(7, 439, 131, 16)) - self.pauseLabel.setObjectName("pauseLabel") - self.checkfpsButton = QtWidgets.QPushButton(self.centralwidget) - self.checkfpsButton.setGeometry(QtCore.QRect(5, 225, 53, 21)) - self.checkfpsButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.checkfpsButton.setObjectName("checkfpsButton") - self.fpsLabel = QtWidgets.QLabel(self.centralwidget) - self.fpsLabel.setGeometry(QtCore.QRect(87, 225, 20, 20)) - self.fpsLabel.setObjectName("fpsLabel") - self.showlivesimilarityCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.showlivesimilarityCheckBox.setEnabled(True) - self.showlivesimilarityCheckBox.setGeometry(QtCore.QRect(7, 323, 124, 20)) - self.showlivesimilarityCheckBox.setChecked(True) - self.showlivesimilarityCheckBox.setTristate(False) - self.showlivesimilarityCheckBox.setObjectName("showlivesimilarityCheckBox") - self.showhighestsimilarityCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.showhighestsimilarityCheckBox.setEnabled(True) - self.showhighestsimilarityCheckBox.setGeometry(QtCore.QRect(7, 350, 145, 20)) - self.showhighestsimilarityCheckBox.setChecked(True) - self.showhighestsimilarityCheckBox.setTristate(False) - self.showhighestsimilarityCheckBox.setObjectName("showhighestsimilarityCheckBox") - self.livesimilarityLabel = QtWidgets.QLabel(self.centralwidget) - self.livesimilarityLabel.setGeometry(QtCore.QRect(171, 326, 46, 16)) - self.livesimilarityLabel.setText("") - self.livesimilarityLabel.setObjectName("livesimilarityLabel") - self.highestsimilarityLabel = QtWidgets.QLabel(self.centralwidget) - self.highestsimilarityLabel.setGeometry(QtCore.QRect(171, 352, 46, 16)) - self.highestsimilarityLabel.setText("") - self.highestsimilarityLabel.setObjectName("highestsimilarityLabel") - self.splitLabel = QtWidgets.QLabel(self.centralwidget) - self.splitLabel.setGeometry(QtCore.QRect(230, 317, 58, 16)) - self.splitLabel.setObjectName("splitLabel") - self.resetLabel = QtWidgets.QLabel(self.centralwidget) - self.resetLabel.setGeometry(QtCore.QRect(230, 341, 28, 16)) - self.resetLabel.setObjectName("resetLabel") - self.skiptsplitLabel = QtWidgets.QLabel(self.centralwidget) - self.skiptsplitLabel.setGeometry(QtCore.QRect(230, 367, 48, 16)) - self.skiptsplitLabel.setObjectName("skiptsplitLabel") - self.undosplitLabel = QtWidgets.QLabel(self.centralwidget) - self.undosplitLabel.setGeometry(QtCore.QRect(230, 393, 55, 16)) - self.undosplitLabel.setObjectName("undosplitLabel") - self.splitLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.splitLineEdit.setGeometry(QtCore.QRect(300, 314, 81, 20)) - self.splitLineEdit.setReadOnly(True) - self.splitLineEdit.setObjectName("splitLineEdit") - self.undosplitLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.undosplitLineEdit.setGeometry(QtCore.QRect(300, 391, 81, 20)) - self.undosplitLineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.undosplitLineEdit.setReadOnly(True) - self.undosplitLineEdit.setObjectName("undosplitLineEdit") - self.skipsplitLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.skipsplitLineEdit.setGeometry(QtCore.QRect(300, 365, 81, 20)) - self.skipsplitLineEdit.setReadOnly(True) - self.skipsplitLineEdit.setObjectName("skipsplitLineEdit") - self.resetLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.resetLineEdit.setGeometry(QtCore.QRect(300, 339, 81, 20)) - self.resetLineEdit.setReadOnly(True) - self.resetLineEdit.setObjectName("resetLineEdit") - self.setsplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setsplithotkeyButton.setGeometry(QtCore.QRect(390, 314, 81, 21)) - self.setsplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setsplithotkeyButton.setObjectName("setsplithotkeyButton") - self.setresethotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setresethotkeyButton.setGeometry(QtCore.QRect(390, 339, 81, 21)) - self.setresethotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setresethotkeyButton.setObjectName("setresethotkeyButton") - self.setskipsplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setskipsplithotkeyButton.setGeometry(QtCore.QRect(390, 365, 81, 21)) - self.setskipsplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setskipsplithotkeyButton.setObjectName("setskipsplithotkeyButton") - self.setundosplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setundosplithotkeyButton.setGeometry(QtCore.QRect(390, 391, 81, 21)) - self.setundosplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setundosplithotkeyButton.setObjectName("setundosplithotkeyButton") - self.line_left = QtWidgets.QFrame(self.centralwidget) - self.line_left.setGeometry(QtCore.QRect(220, 296, 2, 163)) - self.line_left.setFrameShadow(QtWidgets.QFrame.Shadow.Plain) - self.line_left.setLineWidth(1) - self.line_left.setFrameShape(QtWidgets.QFrame.Shape.VLine) - self.line_left.setObjectName("line_left") - self.timerglobalhotkeysLabel = QtWidgets.QLabel(self.centralwidget) - self.timerglobalhotkeysLabel.setGeometry(QtCore.QRect(230, 291, 251, 20)) - self.timerglobalhotkeysLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.timerglobalhotkeysLabel.setObjectName("timerglobalhotkeysLabel") - self.line_right = QtWidgets.QFrame(self.centralwidget) - self.line_right.setGeometry(QtCore.QRect(490, 296, 2, 163)) - self.line_right.setFrameShadow(QtWidgets.QFrame.Shadow.Plain) - self.line_right.setLineWidth(1) - self.line_right.setFrameShape(QtWidgets.QFrame.Shape.VLine) - self.line_right.setObjectName("line_right") - self.liveImage = QtWidgets.QLabel(self.centralwidget) - self.liveImage.setGeometry(QtCore.QRect(120, 70, 240, 180)) - self.liveImage.setFrameShape(QtWidgets.QFrame.Shape.Box) - self.liveImage.setText("") - self.liveImage.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.liveImage.setObjectName("liveImage") - self.currentSplitImage = QtWidgets.QLabel(self.centralwidget) - self.currentSplitImage.setGeometry(QtCore.QRect(380, 70, 240, 180)) - self.currentSplitImage.setFrameShape(QtWidgets.QFrame.Shape.Box) - self.currentSplitImage.setText("") - self.currentSplitImage.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.currentSplitImage.setObjectName("currentSplitImage") - self.currentsplitimageLabel = QtWidgets.QLabel(self.centralwidget) - self.currentsplitimageLabel.setGeometry(QtCore.QRect(450, 50, 102, 16)) - self.currentsplitimageLabel.setObjectName("currentsplitimageLabel") - self.widthLabel = QtWidgets.QLabel(self.centralwidget) - self.widthLabel.setGeometry(QtCore.QRect(12, 185, 33, 16)) - self.widthLabel.setObjectName("widthLabel") - self.heightLabel = QtWidgets.QLabel(self.centralwidget) - self.heightLabel.setGeometry(QtCore.QRect(66, 185, 41, 16)) - self.heightLabel.setObjectName("heightLabel") - self.fpsvalueLabel = QtWidgets.QLabel(self.centralwidget) - self.fpsvalueLabel.setGeometry(QtCore.QRect(58, 225, 26, 20)) - self.fpsvalueLabel.setText("") - self.fpsvalueLabel.setObjectName("fpsvalueLabel") - self.widthSpinBox = QtWidgets.QSpinBox(self.centralwidget) - self.widthSpinBox.setGeometry(QtCore.QRect(6, 200, 44, 22)) - self.widthSpinBox.setMinimum(1) - self.widthSpinBox.setMaximum(10000) - self.widthSpinBox.setProperty("value", 640) - self.widthSpinBox.setObjectName("widthSpinBox") - self.heightSpinBox = QtWidgets.QSpinBox(self.centralwidget) - self.heightSpinBox.setGeometry(QtCore.QRect(62, 200, 44, 22)) - self.heightSpinBox.setMinimum(1) - self.heightSpinBox.setMaximum(10000) - self.heightSpinBox.setProperty("value", 480) - self.heightSpinBox.setObjectName("heightSpinBox") - self.captureregionLabel = QtWidgets.QLabel(self.centralwidget) - self.captureregionLabel.setGeometry(QtCore.QRect(200, 50, 82, 16)) - self.captureregionLabel.setObjectName("captureregionLabel") - self.fpslimitLabel = QtWidgets.QLabel(self.centralwidget) - self.fpslimitLabel.setGeometry(QtCore.QRect(8, 252, 51, 16)) - self.fpslimitLabel.setObjectName("fpslimitLabel") - self.fpslimitSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) - self.fpslimitSpinBox.setGeometry(QtCore.QRect(62, 250, 44, 22)) - self.fpslimitSpinBox.setPrefix("") - self.fpslimitSpinBox.setDecimals(0) - self.fpslimitSpinBox.setMinimum(30.0) - self.fpslimitSpinBox.setMaximum(5000.0) - self.fpslimitSpinBox.setSingleStep(1.0) - self.fpslimitSpinBox.setProperty("value", 60.0) - self.fpslimitSpinBox.setObjectName("fpslimitSpinBox") - self.currentsplitimagefileLabel = QtWidgets.QLabel(self.centralwidget) - self.currentsplitimagefileLabel.setGeometry(QtCore.QRect(380, 270, 241, 20)) - self.currentsplitimagefileLabel.setText("") - self.currentsplitimagefileLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.currentsplitimagefileLabel.setObjectName("currentsplitimagefileLabel") - self.takescreenshotButton = QtWidgets.QPushButton(self.centralwidget) - self.takescreenshotButton.setGeometry(QtCore.QRect(260, 250, 101, 24)) - self.takescreenshotButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.takescreenshotButton.setObjectName("takescreenshotButton") - self.xSpinBox = QtWidgets.QSpinBox(self.centralwidget) - self.xSpinBox.setGeometry(QtCore.QRect(6, 160, 44, 22)) - self.xSpinBox.setReadOnly(False) - self.xSpinBox.setButtonSymbols(QtWidgets.QAbstractSpinBox.ButtonSymbols.UpDownArrows) - self.xSpinBox.setMinimum(0) - self.xSpinBox.setMaximum(999999999) - self.xSpinBox.setSingleStep(1) - self.xSpinBox.setProperty("value", 0) - self.xSpinBox.setObjectName("xSpinBox") - self.ySpinBox = QtWidgets.QSpinBox(self.centralwidget) - self.ySpinBox.setGeometry(QtCore.QRect(62, 160, 44, 22)) - self.ySpinBox.setReadOnly(False) - self.ySpinBox.setButtonSymbols(QtWidgets.QAbstractSpinBox.ButtonSymbols.UpDownArrows) - self.ySpinBox.setMinimum(0) - self.ySpinBox.setMaximum(999999999) - self.ySpinBox.setProperty("value", 0) - self.ySpinBox.setObjectName("ySpinBox") - self.yLabel = QtWidgets.QLabel(self.centralwidget) - self.yLabel.setGeometry(QtCore.QRect(81, 145, 7, 16)) - self.yLabel.setObjectName("yLabel") - self.comparisonmethodComboBox = QtWidgets.QComboBox(self.centralwidget) - self.comparisonmethodComboBox.setGeometry(QtCore.QRect(125, 296, 91, 22)) - self.comparisonmethodComboBox.setObjectName("comparisonmethodComboBox") - self.comparisonmethodComboBox.addItem("") - self.comparisonmethodComboBox.addItem("") - self.comparisonmethodComboBox.addItem("") - self.pauseDoubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) - self.pauseDoubleSpinBox.setGeometry(QtCore.QRect(155, 437, 61, 22)) - self.pauseDoubleSpinBox.setMaximum(999999999.0) - self.pauseDoubleSpinBox.setSingleStep(1.0) - self.pauseDoubleSpinBox.setProperty("value", 10.0) - self.pauseDoubleSpinBox.setObjectName("pauseDoubleSpinBox") - self.comparisonmethodLabel = QtWidgets.QLabel(self.centralwidget) - self.comparisonmethodLabel.setGeometry(QtCore.QRect(7, 298, 110, 16)) - self.comparisonmethodLabel.setObjectName("comparisonmethodLabel") - self.alignregionButton = QtWidgets.QPushButton(self.centralwidget) - self.alignregionButton.setGeometry(QtCore.QRect(5, 95, 101, 23)) - self.alignregionButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.alignregionButton.setObjectName("alignregionButton") - self.groupDummySplitsCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.groupDummySplitsCheckBox.setGeometry(QtCore.QRect(230, 442, 261, 20)) - self.groupDummySplitsCheckBox.setChecked(False) - self.groupDummySplitsCheckBox.setObjectName("groupDummySplitsCheckBox") - self.selectwindowButton = QtWidgets.QPushButton(self.centralwidget) - self.selectwindowButton.setGeometry(QtCore.QRect(5, 120, 101, 23)) - self.selectwindowButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.selectwindowButton.setObjectName("selectwindowButton") - self.imageloopLabel = QtWidgets.QLabel(self.centralwidget) - self.imageloopLabel.setGeometry(QtCore.QRect(379, 252, 113, 20)) - self.imageloopLabel.setObjectName("imageloopLabel") - self.pausehotkeyLabel = QtWidgets.QLabel(self.centralwidget) - self.pausehotkeyLabel.setGeometry(QtCore.QRect(230, 418, 31, 16)) - self.pausehotkeyLabel.setObjectName("pausehotkeyLabel") - self.pausehotkeyLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.pausehotkeyLineEdit.setGeometry(QtCore.QRect(300, 416, 81, 20)) - self.pausehotkeyLineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.pausehotkeyLineEdit.setReadOnly(True) - self.pausehotkeyLineEdit.setObjectName("pausehotkeyLineEdit") - self.setpausehotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setpausehotkeyButton.setGeometry(QtCore.QRect(390, 416, 81, 21)) - self.setpausehotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setpausehotkeyButton.setObjectName("setpausehotkeyButton") - self.loopCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.loopCheckBox.setEnabled(True) - self.loopCheckBox.setGeometry(QtCore.QRect(500, 340, 117, 20)) - self.loopCheckBox.setChecked(False) - self.loopCheckBox.setTristate(False) - self.loopCheckBox.setObjectName("loopCheckBox") - self.autostartonresetCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.autostartonresetCheckBox.setGeometry(QtCore.QRect(500, 360, 126, 20)) - self.autostartonresetCheckBox.setChecked(False) - self.autostartonresetCheckBox.setTristate(False) - self.autostartonresetCheckBox.setObjectName("autostartonresetCheckBox") - self.startImageReloadButton = QtWidgets.QPushButton(self.centralwidget) - self.startImageReloadButton.setGeometry(QtCore.QRect(500, 302, 121, 31)) - self.startImageReloadButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.startImageReloadButton.setObjectName("startImageReloadButton") - self.startImageLabel = QtWidgets.QLabel(self.centralwidget) - self.startImageLabel.setGeometry(QtCore.QRect(120, 270, 241, 16)) - self.startImageLabel.setObjectName("startImageLabel") - self.currentsimilaritythresholdLabel = QtWidgets.QLabel(self.centralwidget) - self.currentsimilaritythresholdLabel.setGeometry(QtCore.QRect(7, 380, 151, 16)) - self.currentsimilaritythresholdLabel.setObjectName("currentsimilaritythresholdLabel") - self.currentsimilaritythresholdnumberLabel = QtWidgets.QLabel(self.centralwidget) - self.currentsimilaritythresholdnumberLabel.setGeometry(QtCore.QRect(171, 380, 46, 16)) - self.currentsimilaritythresholdnumberLabel.setText("") - self.currentsimilaritythresholdnumberLabel.setObjectName("currentsimilaritythresholdnumberLabel") - self.splitimagefolderLabel.raise_() - self.splitimagefolderLineEdit.raise_() - self.browseButton.raise_() - self.xLabel.raise_() - self.liveimageCheckBox.raise_() - self.selectregionButton.raise_() - self.similaritythresholdLabel.raise_() - self.similaritythresholdDoubleSpinBox.raise_() - self.startautosplitterButton.raise_() - self.resetButton.raise_() - self.undosplitButton.raise_() - self.skipsplitButton.raise_() - self.pauseLabel.raise_() - self.checkfpsButton.raise_() - self.fpsLabel.raise_() - self.showlivesimilarityCheckBox.raise_() - self.showhighestsimilarityCheckBox.raise_() - self.livesimilarityLabel.raise_() - self.highestsimilarityLabel.raise_() - self.splitLabel.raise_() - self.resetLabel.raise_() - self.skiptsplitLabel.raise_() - self.undosplitLabel.raise_() - self.splitLineEdit.raise_() - self.undosplitLineEdit.raise_() - self.skipsplitLineEdit.raise_() - self.resetLineEdit.raise_() - self.setsplithotkeyButton.raise_() - self.setresethotkeyButton.raise_() - self.setskipsplithotkeyButton.raise_() - self.setundosplithotkeyButton.raise_() - self.line_left.raise_() - self.timerglobalhotkeysLabel.raise_() - self.line_right.raise_() - self.currentsplitimageLabel.raise_() - self.liveImage.raise_() - self.currentSplitImage.raise_() - self.widthLabel.raise_() - self.heightLabel.raise_() - self.fpsvalueLabel.raise_() - self.widthSpinBox.raise_() - self.heightSpinBox.raise_() - self.captureregionLabel.raise_() - self.fpslimitLabel.raise_() - self.fpslimitSpinBox.raise_() - self.currentsplitimagefileLabel.raise_() - self.takescreenshotButton.raise_() - self.xSpinBox.raise_() - self.ySpinBox.raise_() - self.yLabel.raise_() - self.comparisonmethodComboBox.raise_() - self.pauseDoubleSpinBox.raise_() - self.comparisonmethodLabel.raise_() - self.alignregionButton.raise_() - self.groupDummySplitsCheckBox.raise_() - self.selectwindowButton.raise_() - self.imageloopLabel.raise_() - self.pausehotkeyLabel.raise_() - self.pausehotkeyLineEdit.raise_() - self.setpausehotkeyButton.raise_() - self.loopCheckBox.raise_() - self.autostartonresetCheckBox.raise_() - self.startImageReloadButton.raise_() - self.startImageLabel.raise_() - self.currentsimilaritythresholdLabel.raise_() - self.currentsimilaritythresholdnumberLabel.raise_() - MainWindow.setCentralWidget(self.centralwidget) - self.menuBar = QtWidgets.QMenuBar(MainWindow) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 632, 22)) - self.menuBar.setObjectName("menuBar") - self.menuHelp = QtWidgets.QMenu(self.menuBar) - self.menuHelp.setObjectName("menuHelp") - self.menuFile = QtWidgets.QMenu(self.menuBar) - self.menuFile.setObjectName("menuFile") - MainWindow.setMenuBar(self.menuBar) - self.actionView_Help = QtGui.QAction(MainWindow) - self.actionView_Help.setObjectName("actionView_Help") - self.actionAbout = QtGui.QAction(MainWindow) - self.actionAbout.setObjectName("actionAbout") - self.actionSplit_Settings = QtGui.QAction(MainWindow) - self.actionSplit_Settings.setObjectName("actionSplit_Settings") - self.actionSave_Settings = QtGui.QAction(MainWindow) - self.actionSave_Settings.setObjectName("actionSave_Settings") - self.actionLoad_Settings = QtGui.QAction(MainWindow) - self.actionLoad_Settings.setObjectName("actionLoad_Settings") - self.actionSave_Settings_As = QtGui.QAction(MainWindow) - self.actionSave_Settings_As.setObjectName("actionSave_Settings_As") - self.actionCheck_for_Updates = QtGui.QAction(MainWindow) - self.actionCheck_for_Updates.setObjectName("actionCheck_for_Updates") - self.actionCheck_for_Updates_on_Open = QtGui.QAction(MainWindow) - self.actionCheck_for_Updates_on_Open.setCheckable(True) - self.actionCheck_for_Updates_on_Open.setChecked(True) - self.actionCheck_for_Updates_on_Open.setEnabled(True) - self.actionCheck_for_Updates_on_Open.setObjectName("actionCheck_for_Updates_on_Open") - self.menuHelp.addAction(self.actionView_Help) - self.menuHelp.addAction(self.actionAbout) - self.menuHelp.addAction(self.actionCheck_for_Updates) - self.menuHelp.addAction(self.actionCheck_for_Updates_on_Open) - self.menuFile.addAction(self.actionSave_Settings) - self.menuFile.addAction(self.actionSave_Settings_As) - self.menuFile.addAction(self.actionLoad_Settings) - self.menuBar.addAction(self.menuFile.menuAction()) - self.menuBar.addAction(self.menuHelp.menuAction()) - - self.retranslateUi(MainWindow) - QtCore.QMetaObject.connectSlotsByName(MainWindow) - MainWindow.setTabOrder(self.splitimagefolderLineEdit, self.xSpinBox) - MainWindow.setTabOrder(self.xSpinBox, self.ySpinBox) - MainWindow.setTabOrder(self.ySpinBox, self.widthSpinBox) - MainWindow.setTabOrder(self.widthSpinBox, self.heightSpinBox) - MainWindow.setTabOrder(self.heightSpinBox, self.fpslimitSpinBox) - MainWindow.setTabOrder(self.fpslimitSpinBox, self.liveimageCheckBox) - MainWindow.setTabOrder(self.liveimageCheckBox, self.comparisonmethodComboBox) - MainWindow.setTabOrder(self.comparisonmethodComboBox, self.showlivesimilarityCheckBox) - MainWindow.setTabOrder(self.showlivesimilarityCheckBox, self.showhighestsimilarityCheckBox) - MainWindow.setTabOrder(self.showhighestsimilarityCheckBox, self.similaritythresholdDoubleSpinBox) - MainWindow.setTabOrder(self.similaritythresholdDoubleSpinBox, self.pauseDoubleSpinBox) - MainWindow.setTabOrder(self.pauseDoubleSpinBox, self.splitLineEdit) - MainWindow.setTabOrder(self.splitLineEdit, self.resetLineEdit) - MainWindow.setTabOrder(self.resetLineEdit, self.skipsplitLineEdit) - MainWindow.setTabOrder(self.skipsplitLineEdit, self.undosplitLineEdit) - MainWindow.setTabOrder(self.undosplitLineEdit, self.groupDummySplitsCheckBox) - - def retranslateUi(self, MainWindow): - _translate = QtCore.QCoreApplication.translate - MainWindow.setWindowTitle(_translate("MainWindow", "AutoSplit")) - self.splitimagefolderLabel.setText(_translate("MainWindow", "Split Image Folder:")) - self.browseButton.setText(_translate("MainWindow", "Browse...")) - self.xLabel.setText(_translate("MainWindow", "X")) - self.liveimageCheckBox.setText(_translate("MainWindow", "Live Capture Region")) - self.selectregionButton.setText(_translate("MainWindow", "Select Region")) - self.similaritythresholdLabel.setText(_translate("MainWindow", "Default similarity threshold:")) - self.startautosplitterButton.setText(_translate("MainWindow", "Start Auto Splitter")) - self.resetButton.setText(_translate("MainWindow", "Reset")) - self.undosplitButton.setText(_translate("MainWindow", "Undo Split")) - self.skipsplitButton.setText(_translate("MainWindow", "Skip Split")) - self.pauseLabel.setText(_translate("MainWindow", "Default pause time (sec):")) - self.checkfpsButton.setText(_translate("MainWindow", "Max FPS")) - self.fpsLabel.setText(_translate("MainWindow", "FPS")) - self.showlivesimilarityCheckBox.setText(_translate("MainWindow", "Show live similarity")) - self.showhighestsimilarityCheckBox.setText(_translate("MainWindow", "Show highest similarity")) - self.splitLabel.setText(_translate("MainWindow", "Start / Split")) - self.resetLabel.setText(_translate("MainWindow", "Reset")) - self.skiptsplitLabel.setText(_translate("MainWindow", "Skip Split")) - self.undosplitLabel.setText(_translate("MainWindow", "Undo Split")) - self.setsplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.setresethotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.setskipsplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.setundosplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.timerglobalhotkeysLabel.setText(_translate("MainWindow", "Timer Global Hotkeys")) - self.currentsplitimageLabel.setText(_translate("MainWindow", "Current Split Image")) - self.widthLabel.setText(_translate("MainWindow", "Width")) - self.heightLabel.setText(_translate("MainWindow", "Height")) - self.captureregionLabel.setText(_translate("MainWindow", "Capture Region")) - self.fpslimitLabel.setText(_translate("MainWindow", "FPS Limit:")) - self.takescreenshotButton.setText(_translate("MainWindow", "Take Screenshot")) - self.yLabel.setText(_translate("MainWindow", "Y")) - self.comparisonmethodComboBox.setItemText(0, _translate("MainWindow", "L2 Norm")) - self.comparisonmethodComboBox.setItemText(1, _translate("MainWindow", "Histograms")) - self.comparisonmethodComboBox.setItemText(2, _translate("MainWindow", "pHash")) - self.comparisonmethodLabel.setText(_translate("MainWindow", "Comparison Method")) - self.alignregionButton.setText(_translate("MainWindow", "Align Region")) - self.groupDummySplitsCheckBox.setText(_translate("MainWindow", "Group dummy splits when undoing/skipping")) - self.selectwindowButton.setText(_translate("MainWindow", "Select Window")) - self.imageloopLabel.setText(_translate("MainWindow", "Image Loop:")) - self.pausehotkeyLabel.setText(_translate("MainWindow", "Pause")) - self.setpausehotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.loopCheckBox.setText(_translate("MainWindow", "Loop Split Images")) - self.autostartonresetCheckBox.setText(_translate("MainWindow", "Auto Start On Reset")) - self.startImageReloadButton.setText(_translate("MainWindow", "Reload Start Image")) - self.startImageLabel.setText(_translate("MainWindow", "Start image:")) - self.currentsimilaritythresholdLabel.setText(_translate("MainWindow", "Current similarity threshold:")) - self.menuHelp.setTitle(_translate("MainWindow", "Help")) - self.menuFile.setTitle(_translate("MainWindow", "File")) - self.actionView_Help.setText(_translate("MainWindow", "View Help")) - self.actionAbout.setText(_translate("MainWindow", "About")) - self.actionSplit_Settings.setText(_translate("MainWindow", "Split Image Settings")) - self.actionSave_Settings.setText(_translate("MainWindow", "Save Settings")) - self.actionLoad_Settings.setText(_translate("MainWindow", "Load Settings")) - self.actionSave_Settings_As.setText(_translate("MainWindow", "Save Settings As...")) - self.actionCheck_for_Updates.setText(_translate("MainWindow", "Check for Updates...")) - self.actionCheck_for_Updates_on_Open.setText(_translate("MainWindow", "Check for Updates on Open")) diff --git a/src/error_messages.py b/src/error_messages.py index 2d3b6669..740ee14f 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -30,11 +30,13 @@ def splitImageDirectoryEmpty(): def imageTypeError(image: str): - setTextMessage(f"\"{image}\" is not a valid image file, does not exist, or the full image file path contains a special character.") + setTextMessage(f"\"{image}\" is not a valid image file, does not exist, " + "or the full image file path contains a special character.") def regionError(): - setTextMessage("No region is selected or the Capture Region window is not open. Select a region or load settings while the Capture Region window is open.") + setTextMessage("No region is selected or the Capture Region window is not open. " + "Select a region or load settings while the Capture Region window is open.") def splitHotkeyError(): @@ -42,7 +44,8 @@ def splitHotkeyError(): def pauseHotkeyError(): - setTextMessage("Your split image folder contains an image filename with a pause flag {p}, but no pause hotkey is set.") + setTextMessage("Your split image folder contains an image filename with a pause flag {p}, " + "but no pause hotkey is set.") def alignRegionImageTypeError(): @@ -66,7 +69,8 @@ def resetHotkeyError(): def dummySplitsError(): - setTextMessage("Group dummy splits when undoing/skipping cannot be checked if any split image has a loop parameter greater than 1") + setTextMessage("Group dummy splits when undoing/skipping cannot be checked " + "if any split image has a loop parameter greater than 1") def oldVersionSettingsFileError(): @@ -82,20 +86,23 @@ def noSettingsFileOnOpenError(): def tooManySettingsFilesOnOpenError(): - setTextMessage("Too many settings files found. Only one can be loaded on open if placed in the same folder as AutoSplit.exe") + setTextMessage("Too many settings files found. " + "Only one can be loaded on open if placed in the same folder as AutoSplit.exe") def checkForUpdatesError(): setTextMessage("An error occurred while attempting to check for updates. Please check your connection.") + def loadStartImageError(): setTextMessage("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. Please set these hotkeys, and then click the Reload Start Image button.") + def stdinLostError(): setTextMessage("stdin not supported or lost, external control like LiveSplit integration will not work.") -def exceptionTraceback(message: str, exception: Exception): +def exceptionTraceback(message: str, exception: BaseException): setTextMessage( message, "\n".join(traceback.format_exception(None, exception, exception.__traceback__))) diff --git a/src/gen/about.pyi b/src/gen/about.pyi new file mode 100644 index 00000000..786170bc --- /dev/null +++ b/src/gen/about.pyi @@ -0,0 +1,6 @@ +from PyQt6.QtWidgets import QWidget + + +class Ui_aboutAutoSplitWidget(object): + def setupUi(self, aboutAutoSplitWidget: QWidget) -> None: + ... diff --git a/src/gen/design.pyi b/src/gen/design.pyi new file mode 100644 index 00000000..d999d224 --- /dev/null +++ b/src/gen/design.pyi @@ -0,0 +1,6 @@ +from PyQt6.QtWidgets import QMainWindow + + +class Ui_MainWindow(object): + def setupUi(self, MainWindow: QMainWindow) -> None: + ... diff --git a/src/gen/update_checker.pyi b/src/gen/update_checker.pyi new file mode 100644 index 00000000..c3680370 --- /dev/null +++ b/src/gen/update_checker.pyi @@ -0,0 +1,6 @@ +from PyQt6.QtWidgets import QWidget + + +class Ui_UpdateChecker(object): + def setupUi(self, UpdateChecker: QWidget) -> None: + ... diff --git a/src/hotkeys.py b/src/hotkeys.py index f722ea58..56d773b3 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,103 +1,98 @@ from __future__ import annotations -from typing import Any, Callable, TYPE_CHECKING, Union +from typing import Optional, Callable, TYPE_CHECKING, Union if TYPE_CHECKING: from AutoSplit import AutoSplit -import keyboard -import pyautogui import threading +from keyboard._keyboard_event import KeyboardEvent, KEY_DOWN +import keyboard # https://github.com/boppreh/keyboard/issues/505 +import pyautogui # https://github.com/asweigart/pyautogui/issues/645 # While not usually recommended, we don't manipulate the mouse, and we don't want the extra delay pyautogui.FAILSAFE = False # do all of these after you click "set hotkey" but before you type the hotkey. -def beforeSettingHotkey(self: AutoSplit): - self.startautosplitterButton.setEnabled(False) - self.setsplithotkeyButton.setEnabled(False) - self.setresethotkeyButton.setEnabled(False) - self.setskipsplithotkeyButton.setEnabled(False) - self.setundosplithotkeyButton.setEnabled(False) - self.setpausehotkeyButton.setEnabled(False) +def beforeSettingHotkey(autosplit: AutoSplit): + autosplit.startautosplitterButton.setEnabled(False) + autosplit.setsplithotkeyButton.setEnabled(False) + autosplit.setresethotkeyButton.setEnabled(False) + autosplit.setskipsplithotkeyButton.setEnabled(False) + autosplit.setundosplithotkeyButton.setEnabled(False) + autosplit.setpausehotkeyButton.setEnabled(False) # do all of these things after you set a hotkey. a signal connects to this because # changing GUI stuff in the hotkey thread was causing problems -def afterSettingHotkey(self: AutoSplit): - self.setsplithotkeyButton.setText('Set Hotkey') - self.setresethotkeyButton.setText('Set Hotkey') - self.setskipsplithotkeyButton.setText('Set Hotkey') - self.setundosplithotkeyButton.setText('Set Hotkey') - self.setpausehotkeyButton.setText('Set Hotkey') - self.startautosplitterButton.setEnabled(True) - self.setsplithotkeyButton.setEnabled(True) - self.setresethotkeyButton.setEnabled(True) - self.setskipsplithotkeyButton.setEnabled(True) - self.setundosplithotkeyButton.setEnabled(True) - self.setpausehotkeyButton.setEnabled(True) - - -def is_digit(key: str): +def afterSettingHotkey(autosplit: AutoSplit): + autosplit.setsplithotkeyButton.setText('Set Hotkey') + autosplit.setresethotkeyButton.setText('Set Hotkey') + autosplit.setskipsplithotkeyButton.setText('Set Hotkey') + autosplit.setundosplithotkeyButton.setText('Set Hotkey') + autosplit.setpausehotkeyButton.setText('Set Hotkey') + autosplit.startautosplitterButton.setEnabled(True) + autosplit.setsplithotkeyButton.setEnabled(True) + autosplit.setresethotkeyButton.setEnabled(True) + autosplit.setskipsplithotkeyButton.setEnabled(True) + autosplit.setundosplithotkeyButton.setEnabled(True) + autosplit.setpausehotkeyButton.setEnabled(True) + + +def is_digit(key: Optional[str]): + if key is None: + return False try: - key_as_num = int(key) - return key_as_num >= 0 and key_as_num <= 9 - except Exception: + return 0 <= int(key) <= 9 + except ValueError: return False -def send_command(self: AutoSplit, command: str): - if self.is_auto_controlled: +def send_command(autosplit: AutoSplit, command: str): + if autosplit.is_auto_controlled: print(command, flush=True) else: - if command == "split" or command == "start": - _send_hotkey(self.splitLineEdit.text()) + if command in ("split", "start"): + _send_hotkey(autosplit.splitLineEdit.text()) elif command == "pause": - _send_hotkey(self.pausehotkeyLineEdit.text()) + _send_hotkey(autosplit.pausehotkeyLineEdit.text()) elif command == "reset": - _send_hotkey(self.resetLineEdit.text()) + _send_hotkey(autosplit.resetLineEdit.text()) else: raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") # Supports sending the appropriate scan code for all the special cases -def _send_hotkey(key_or_scan_code: Union[int, str, Any]): +def _send_hotkey(key_or_scan_code: Union[int, str]): if not key_or_scan_code: return - hotkey_type = type(key_or_scan_code) # Deal with regular inputs - if hotkey_type is int: - return keyboard.send(key_or_scan_code) - elif hotkey_type is not str: - raise TypeError(f'key_or_scan_code "{key_or_scan_code}" ({hotkey_type}) should be an int or str') - if (not (key_or_scan_code.startswith('num ') or key_or_scan_code == 'decimal')): - return keyboard.send(key_or_scan_code) + if isinstance(key_or_scan_code, int) \ + or not (key_or_scan_code.startswith('num ') or key_or_scan_code == 'decimal'): + keyboard.send(key_or_scan_code) + keyboard.key_to_scan_codes + return # Deal with problematic keys. Even by sending specific scan code 'keyboard' still sends the default (wrong) key # keyboard.send(keyboard.key_to_scan_codes(key_or_scan_code)[1]) pyautogui.hotkey(key_or_scan_code.replace(' ', '')) -def __validate_keypad(expected_key: str, keyboard_event: keyboard.KeyboardEvent): +def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # Prevent "(keypad)delete", "(keypad)./decimal" and "del" from triggering each other # as well as "." and "(keypad)./decimal" - if keyboard_event.scan_code == 83 or keyboard_event.scan_code == 52: - if expected_key == keyboard_event.name: - return True - else: - # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) - return False + if keyboard_event.scan_code in (83, 52): + # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) + return expected_key == keyboard_event.name # Prevent "action keys" from triggering "keypad keys" - if is_digit(keyboard_event.name[-1]): - # Prevent "regular numbers" from activating "keypad numbers" - if expected_key.startswith("num "): - return keyboard_event.is_keypad - # Prevent "keypad numbers" from activating "regular numbers" - else: - return not keyboard_event.is_keypad - else: - # Prevent "keypad action keys" from triggering "regular numbers" and "keypad numbers" - # Still allow the same key that might be localized differently on keypad vs non-keypad - return not is_digit(expected_key[-1]) + if keyboard_event.name and is_digit(keyboard_event.name[-1]): + # Prevent "regular numbers" and "keypad numbers" from activating each other + return bool(keyboard_event.is_keypad + if expected_key.startswith("num ") + else not keyboard_event.is_keypad) + + # Prevent "keypad action keys" from triggering "regular numbers" and "keypad numbers" + # Still allow the same key that might be localized differently on keypad vs non-keypad + return not is_digit(expected_key[-1]) # NOTE: This is a workaround very specific to numpads. @@ -111,37 +106,37 @@ def __validate_keypad(expected_key: str, keyboard_event: keyboard.KeyboardEvent) # # Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". # We're also trying to achieve the same hotkey behaviour as LiveSplit has. -def _hotkey_action(keyboard_event: keyboard.KeyboardEvent, key_name: str, action: Callable[[]]): - if keyboard_event.event_type == keyboard.KEY_DOWN and __validate_keypad(key_name, keyboard_event): +def _hotkey_action(keyboard_event: KeyboardEvent, key_name: str, action: Callable[[], None]): + if keyboard_event.event_type == KEY_DOWN and __validate_keypad(key_name, keyboard_event): action() -def __get_key_name(keyboard_event: keyboard.KeyboardEvent): +def __get_key_name(keyboard_event: KeyboardEvent): return f"num {keyboard_event.name}" \ if keyboard_event.is_keypad and is_digit(keyboard_event.name) \ else str(keyboard_event.name) -def __is_key_already_set(self: AutoSplit, key_name: str): - return key_name == self.splitLineEdit.text() \ - or key_name == self.resetLineEdit.text() \ - or key_name == self.skipsplitLineEdit.text() \ - or key_name == self.undosplitLineEdit.text() \ - or key_name == self.pausehotkeyLineEdit.text() +def __is_key_already_set(autosplit: AutoSplit, key_name: str): + return key_name in (autosplit.splitLineEdit.text(), + autosplit.resetLineEdit.text(), + autosplit.skipsplitLineEdit.text(), + autosplit.undosplitLineEdit.text(), + autosplit.pausehotkeyLineEdit.text()) # --------------------HOTKEYS-------------------------- # TODO: Refactor to de-duplicate all this code, including settings_file.py # Going to comment on one func, and others will be similar. -def setSplitHotkey(self: AutoSplit): - self.setsplithotkeyButton.setText('Press a key...') +def setSplitHotkey(autosplit: AutoSplit): + autosplit.setsplithotkeyButton.setText('Press a key...') # disable some buttons - self.beforeSettingHotkey() + autosplit.beforeSettingHotkey() # new thread points to callback. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey - def callback(hotkey): + def callback(hotkey: Callable[[], None]): # try to remove the previously set hotkey if there is one. try: keyboard.unhook_key(hotkey) @@ -168,11 +163,11 @@ def callback(hotkey): # hotkey. A try and except is needed if a hotkey hasn't been set yet. I'm not # allowing for these multiple-key hotkeys because it can cause crashes, and # not many people are going to really use or need this. - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return # add the key as the hotkey, set the text into the LineEdit, set it as old_xxx_key, @@ -182,20 +177,22 @@ def callback(hotkey): # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 # The best way to achieve this is make our own hotkey handling on top of hook # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 - self.split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startAutoSplitter)) - self.splitLineEdit.setText(key_name) - self.split_key = key_name - self.afterSettingHotkeySignal.emit() - - t = threading.Thread(target=callback, args=(self.split_hotkey,)) + autosplit.split_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startAutoSplitter)) + autosplit.splitLineEdit.setText(key_name) + autosplit.split_key = key_name + autosplit.afterSettingHotkeySignal.emit() + + t = threading.Thread(target=callback, args=(autosplit.split_hotkey,)) t.start() -def setResetHotkey(self: AutoSplit): - self.setresethotkeyButton.setText('Press a key...') - self.beforeSettingHotkey() +def setResetHotkey(autosplit: AutoSplit): + autosplit.setresethotkeyButton.setText('Press a key...') + autosplit.beforeSettingHotkey() - def callback(hotkey): + def callback(hotkey: Callable[[], None]): try: keyboard.unhook_key(hotkey) except (AttributeError, KeyError): @@ -204,27 +201,29 @@ def callback(hotkey): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return - self.reset_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startReset)) - self.resetLineEdit.setText(key_name) - self.reset_key = key_name - self.afterSettingHotkeySignal.emit() + autosplit.reset_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startReset)) + autosplit.resetLineEdit.setText(key_name) + autosplit.reset_key = key_name + autosplit.afterSettingHotkeySignal.emit() - t = threading.Thread(target=callback, args=(self.reset_hotkey,)) + t = threading.Thread(target=callback, args=(autosplit.reset_hotkey,)) t.start() -def setSkipSplitHotkey(self: AutoSplit): - self.setskipsplithotkeyButton.setText('Press a key...') - self.beforeSettingHotkey() +def setSkipSplitHotkey(autosplit: AutoSplit): + autosplit.setskipsplithotkeyButton.setText('Press a key...') + autosplit.beforeSettingHotkey() - def callback(hotkey): + def callback(hotkey: Callable[[], None]): try: keyboard.unhook_key(hotkey) except (AttributeError, KeyError): @@ -233,27 +232,29 @@ def callback(hotkey): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return - self.skip_split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startSkipSplit)) - self.skipsplitLineEdit.setText(key_name) - self.skip_split_key = key_name - self.afterSettingHotkeySignal.emit() + autosplit.skip_split_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startSkipSplit)) + autosplit.skipsplitLineEdit.setText(key_name) + autosplit.skip_split_key = key_name + autosplit.afterSettingHotkeySignal.emit() - t = threading.Thread(target=callback, args=(self.skip_split_hotkey,)) + t = threading.Thread(target=callback, args=(autosplit.skip_split_hotkey,)) t.start() -def setUndoSplitHotkey(self: AutoSplit): - self.setundosplithotkeyButton.setText('Press a key...') - self.beforeSettingHotkey() +def setUndoSplitHotkey(autosplit: AutoSplit): + autosplit.setundosplithotkeyButton.setText('Press a key...') + autosplit.beforeSettingHotkey() - def callback(hotkey): + def callback(hotkey: Callable[[], None]): try: keyboard.unhook_key(hotkey) except (AttributeError, KeyError): @@ -262,27 +263,29 @@ def callback(hotkey): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return - self.undo_split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startUndoSplit)) - self.undosplitLineEdit.setText(key_name) - self.undo_split_key = key_name - self.afterSettingHotkeySignal.emit() + autosplit.undo_split_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startUndoSplit)) + autosplit.undosplitLineEdit.setText(key_name) + autosplit.undo_split_key = key_name + autosplit.afterSettingHotkeySignal.emit() - t = threading.Thread(target=callback, args=(self.undo_split_hotkey,)) + t = threading.Thread(target=callback, args=(autosplit.undo_split_hotkey,)) t.start() -def setPauseHotkey(self: AutoSplit): - self.setpausehotkeyButton.setText('Press a key...') - self.beforeSettingHotkey() +def setPauseHotkey(autosplit: AutoSplit): + autosplit.setpausehotkeyButton.setText('Press a key...') + autosplit.beforeSettingHotkey() - def callback(hotkey): + def callback(hotkey: Callable[[], None]): try: keyboard.unhook_key(hotkey) except (AttributeError, KeyError): @@ -291,17 +294,19 @@ def callback(hotkey): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return - self.pause_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startPause)) - self.pausehotkeyLineEdit.setText(key_name) - self.pause_key = key_name - self.afterSettingHotkeySignal.emit() + autosplit.pause_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startPause)) + autosplit.pausehotkeyLineEdit.setText(key_name) + autosplit.undo_split_key = key_name + autosplit.afterSettingHotkeySignal.emit() - t = threading.Thread(target=callback, args=(self.pause_hotkey,)) + t = threading.Thread(target=callback, args=(autosplit.pause_hotkey,)) t.start() diff --git a/src/menu_bar.py b/src/menu_bar.py index e1d162eb..7042e290 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -4,21 +4,18 @@ from AutoSplit import AutoSplit import os -from PyQt6 import QtWidgets - import requests +from PyQt6 import QtWidgets from packaging import version -import update_checker +from gen import about as about_, resources_rc, update_checker # noqa: F401 import error_messages -import resources_rc # noqa: F401 -from about import Ui_aboutAutoSplitWidget # AutoSplit Version number VERSION = "1.6.1" # About Window -class AboutWidget(QtWidgets.QWidget, Ui_aboutAutoSplitWidget): +class AboutWidget(QtWidgets.QWidget, about_.Ui_aboutAutoSplitWidget): def __init__(self): super().__init__() self.setupUi(self) @@ -27,6 +24,7 @@ def __init__(self): self.versionLabel.setText(f"Version: {VERSION}") self.show() + class UpdateCheckerWidget(QtWidgets.QWidget, update_checker.Ui_UpdateChecker): def __init__(self, latest_version: str, autosplit: AutoSplit, check_for_updates_on_open: bool = False): super().__init__() @@ -63,20 +61,21 @@ def closeWindow(self): self.autosplit.actionCheck_for_Updates_on_Open.setChecked(False) self.close() + def viewHelp(): os.system("start \"\" https://github.com/Toufool/Auto-Split#tutorial") -def about(self: AutoSplit): - self.AboutWidget = AboutWidget() +def about(autosplit: AutoSplit): + autosplit.aboutWidget = AboutWidget() + def checkForUpdates(autosplit: AutoSplit, check_for_updates_on_open: bool = False): try: response = requests.get("https://api.github.com/repos/Toufool/Auto-Split/releases/latest") latest_version = response.json()["name"].split("v")[1] - autosplit.UpdateCheckerWidget = UpdateCheckerWidget(latest_version, autosplit, check_for_updates_on_open) - except: + except Exception: if not check_for_updates_on_open: error_messages.checkForUpdatesError() - else: - pass + else: + autosplit.updateCheckerWidget = UpdateCheckerWidget(latest_version, autosplit, check_for_updates_on_open) diff --git a/src/resources_rc.py b/src/resources_rc.py deleted file mode 100644 index 4f7f7b54..00000000 --- a/src/resources_rc.py +++ /dev/null @@ -1,2311 +0,0 @@ -# Resource object code (Python 3) -# Created by: object code -# Created by: The Resource Compiler for Qt version 6.2.1 -# WARNING! All changes made in this file will be lost! - -from PySide6 import QtCore - -qt_resource_data = b"\ -\x00\x00\x0a\x8d\ -\x89\ -PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ -\x00\x00\x93\x00\x00\x00/\x08\x03\x00\x00\x00\xd03\x08)\ -\x00\x00\x03\x00PLTE\xff\xff\xff\xfb\xcbX\xff\xca\ -M\xfe\xc6C\xff\xc49\xfe\xc39\xff\xd7y\xff\xdc\x8a\ -\xff\xd2h\xfb\xc8M\xf6\xc0@\xf4\xc1HYC\x13\x00\ -\x00\x00\x05\x04\x04/$\x0akQ\x16\xeb\xb54\xf3\xba\ -7\x10\x08\x06\x1c\x14\x05\xd6\xa4/x[\x1b\x87h\x1e\ -\xfa\xbf7\xe5\xb03E1\x0c\x95r!\xcb\x9c-\xb5\ -\x8b(\xda\xa70\xa3}$\xe1\xac2cK\x16\xa4\xa6\ -\xa9\xbc\xbb\xbb\xb9\xb8\xb8\xb6\xb3\xb3eff\xbd\xbd\xbd\ -\xe8\xe8\xe8\x03\x0b\x0eLNN\x84\xb9\xebI\x99\xe2N\ -\xa3\xe8Y\xae\xec2\x87\xdc*{\xd8 p\xd2\x13b\ -\xcd\x06U\xc8\xe8\xef\xf9\xe3\xe4\xe5\xc2\xc2\xc1\xff\xff\xff\ -\xf8\xf8\xf9m\x01\x0dR\x01\x072\x03\x06vP\x0f\x94\ -\x07\x16\x05*9\x00^\x82\x04n\x9ay\xb6\xeb\x00K\ -\xc4\xea\xeb\xec\xd4\xd4\xd4\xcd\xcd\xcd\xba\xbd\xbd\xbc\xa0\xa5\ -\xa3\xac\xaf\xaf\xb6\xb9\xf6\xf6\xf7\xb2\x04 \xfc\x01\x1c\xf0\ -,\x10\xf6\x9e\x1b\xff\xb3\x1f{N\x0e\x939j(\x8c\ -\xd8\x00\xb3\xf7\x01\xa8\xe9\x00\xa1\xdei\xaf\xe9r\xbb\xef\ -~\xc1\xf1l\xa8\xe6\x5c\xa3\xe6I\x85\xd7B\x7f\xd5:\ -w\xd1\xed\xed\xed\xc4\xc5\xc5\xed\xf0\xf2\xfd\xfd\xfd\xed\x87\ -\x98\xdb$H|Bi5M|'p}5{\x85\ -\xe0\xe6\xeb\xf0\xf2\xf6\xf3\xf5\xf9\xf2\xf4\xf5\xfb\xfc\xfc\xeb\ -\x01\x1b\xfea\x01\xfbx\x08\xff\xaa\x1d\x8db\xa9W\x83\ -\xce\x03\x9b\xd7\x06Zh\x98\xc4\xed\x9d\xcc\xf2\xbc\xdb\xf5\ -\xa8\xd2\xf4\xb3\xd2\xf2\xa8\xcc\xf0\x83\xb4\xe8\x8b\xb1\xe6\x95\ -\xb8\xe8z\xa4\xe1f\x97\xdd\xff\xfa\xf4\xf9\xfb\xfc\xf6\xc7\ -\xcf\xd9\x01&\x0b-a\xd4\xda\xdc\xda\xdc\xe6\x8c\x91\xb5\ -\x84\x8b\xaf\xeb\xec\xf1tz\xa6\xac\xb0\xca\x87\x8e\xb3\xbc\ -\xc0\xd4\xd0\xd4\xdeSf\x92ht\x96\xcf\xd0\xde\xd4\x00\ -\x18\xf9E\x08\xfa\x8c\x12\x99b\x11\x9aN\x8duu\xc4\ -\x00\x84\xb6\xd1\xe2\xed\x90\xbc\xebv\xaa\xe4\xa0\xc5\xedq\ -\x9f\xe0_\x92\xdbX\x8d\xda\xd8\xdb\xdd\x90\x98\x9c\xc3\xc8\ -\xca\xb7\xbb\xbd\xd4\xd7\xd8\x98\xa2\xa7\xd1\xcb\xc6\xfe\xcb\x9f\ -\xfd\xbd\x86\xd3\xc0\xb0\xbe\xc3\xc5\x84\x8f\x95\xf2\xf1\xf1\xf3\ -\xad\xb8\xe6\x0c.i\x13;\x00%WN\x89\x93+6\ -x\xc4\xc9\xd8\x98\x9d\xbe\xa3\xa7\xc5KT\x8b\xe7\xe8\xf0\ -\x03\x15Z\xfa\x81\x0e9\x85\xc7\x00\x92\xcb\x91\xc6\xf0\x8a\ -\xb7\xe9\x85\xac\xe4S`hv\x82\x88\x9f\xaf\xba\xf3\xd9\ -\xc4\xda\x8aE.02\xfe\xf8\xf9\xee\x94\xa6\xf0{\x8f\ -;Y\x83\xa6\xc5\xca\xb3\xb9\xce\x0a\x14\x17h\x9d\xe1\x99\ -\xa8\xb8\xe4\xd2\xc2\xf8\x87)\xf8\xc1\x8a\x94\x9e\xa7?\ -\x22!!\x13T\xc7\xff\xfd\xf9\xfb\xa4Y\xfc\xb5ye\ -\x5c\x81\xae\x9d\x8c\xcd\xbe\xc2C\xef\xaeH\x00\x00\x00\x01\ -tRNS\x00@\xe6\xd8f\x00\x00\x00\x01orN\ -T\x01\xcf\xa2w\x9a\x00\x00\x07.IDATX\xc3\ -\xed\xd6y\x5c\x93u\x1c\x07\xf0g\xf0\x8cB\xf9=\x0f\ -{\x9e\xc91\x10\x01#\xe40\x0e\x93\x89\x08\x9e\x98\xa9\ -A)X\x04*\x88\x22\xd7\x04SP\x04\x86\xc8a\x82\ -\x0a\x1ee9\x0eEM\x93\xd46`h\x0aQR\x1e\ -`\x9a\x09QxT\x06e\x87i\x17\xdd\xf5\xfdmc\ -L}\x00c\xb3\x7f\xf2\xc3^\xbb\x9em\xcf\xfb\xf5\xfd\ -~\x9f\xdf\x0f\x82\xb8\x8b\xf0\x8c\x8cI>\x9f\xe4\x93\xda\ -\xf05\xaf\xf9:\xef\xe3\xe78\xbd~\xce\xd8\x88w7\ -g\xbb\x9b\x18\x19\xf3LL\x1e0@LLx\xc6F\ -\x86\x10\xf1\x8c\x1f4y\x10\xead\x80\x18\x1b\xc1O\x19\ -\xeb_+S\x9e\x89\x91!<\xdd12\xe1\x99\xeaM\ -\xe2\x19R\x84\xc3\xd3\x13\xc535h\x914\xa52\xd5\ -\xab}\x83\xee\x01\x09P\x83\xf4 \x0d6\xbd\x17$\x92\ -4\x1d\xacG\x99\xb8~\xd0\x0c!\x8a6\x17\xf4yR\ -F\xc0\xf4y|\xe0\x85\xe2\xf5bb\x85\x08\x09\x87\xf4\ -uN\x0bd\xd9\xb7i\xc0\x135\xd8\x8a\xdbdIZ\ -\x8b\x90Y\xdf&\x8b>MV\x03n\x1e\xc3\xe7\xfa=\ -l\x22\xad)4\x84\xe4\xdb\xd0\xac\xc8\x96$\x054m\ -I\xb3\xa0`,hJh\xc9'-X$\xa4\x01-\ -0\x13\x0a9q|f\xa0&A\xef&\x92FC\xa1\ -\x1a\x88F\x94-i\x8d\x10K#@\xda\x22\x9a\xa6\x90\ --i)D\xb4\xc8\x82dh$\x12rv\x91/\xb8\ -\x17&\xb8\x17P\x94\x1di\x89D`b\x19\xd5\xdb\x02\ -;\x92\xb4A\xe6\xdd\xbd\xc3O\x19\x8a\xfe\xcfLB4\ -l(\x82\xd3\xd9#\x16LB\x12p\xb8y6\x0eP\ -\x9b\xee\x19w@\x2233\x8a5\xac\xa9\xd7\x19'\xed\ -\x10\xb2\x1d\x8a\xcf.@,\x1f\xea\xa46\xd9\x0b)\x91\ -Y\x8f\x09\x9e:8\x98\x9bs\xcd\xf8\x80M\x04\xd3\x9b\ -\xc9\xca\x0c\xd1|{D1\xe40(\x96\xb6N\xb8e\ -C\xd5&\xdc;\xcb^/\xce\x01\x8f8AXs\x9b\ -\x84\x22\x0a\xb1\xb6\xb87B3\x0af]['\x1b$\ -\xb2\x11a\xd30\xc4\x9a\x8bH\x06F\xdd\x82\xb3N\xd6\ -z\x98\x18N\x13\x5cn\x0e\x98\xcb\x98SH8\x8c\xec\ -\xa9\x93@\x04\x16\x02\x199\xd2\xdd\xc3\xc3\xd3\xd3\xcb\xdb\ -{\x14\xce\xa3\x041\xda\xd1\xe7\xce89\xf6j\x1a.\ -\xbe3c|\xb0\x09\xfeOB\xac\xaf\xaf\xefX?\xd1\ -\xb8q\xe6\xf0\xaf\x10\x04\x9b\xf0#\xf2\xf3\xf5\xf7\xf7\xf5\ -\x0b\x18?a|\x80\x0b~\x8dM\x135&wl\xf2\ -\xf2\x02\xd2$\x08\x98&O\xe18\xc9h\xf8-\x22\xd0\ -i\xeaT\xa7\xc7 \x8e8\xd3p\x1e\xf7!\x9c9>\ ->\xbd\xdb\xc4\xce\x98\x09y\x22(888\xe8IJ\ -\xc7\xe4\xa7:\xf0\xd4\xac\xd9!\xb3C\xc7\xbbt\x9b\xe6\ -<\xfd\xf43\xf07'\xecYw\xf7\xf0\x88\x88\xb9s\ -\xbd\xe6zc\xd3\xf7\xd5\xd7\xf0\x95o>=\x90\xb3Y\xe2\xff\ -\xfa\xe1\x8e3-\x1f\xb6\xb6\xb5u~\xfb21\x5ce\ -\xaa-\xcc\x17Wm\xca\xaf\xa9\xc9\xdf\xb8!>\xe1t\ -\xadv-\xa0|7K$\x9b\xfd\xafC\xeb\xae\xd3\xba\ -\xeb\x13\xab:ph\xc2\xb2e\xa1/\x05t\xafO\xcd\ -\x9e\x9e\x9e\xcd2\x99,Sv-\x13\x0a\x15Q\x9fQ\ -^_&\xbd\xc8\xb1\x16|\xb7\xf7\xc6\xcd\xe3*\xd3\xf7\ -'rrr\x0e\xe5\xe6\xb6\xc4f\xb7\xc5&\xc6\xc9\xe5\ -\x09\x1aS\xaf\xeb\x13ti\xecX?J(\xfaA\xc4\ -\x22\xdd\xf5\x09\x1f\xf0\xf3C.\x01\xb9\x01MHk\xf2\ -\xf2\xf2\x0a\xaf\xab\x93\x95^+\x0do\xc7\xbd\xab\x97\xb6\ -\xb7\x97\xc5\xdfnZ}i\xdf\x8d\xb375\xa6\x1f\xaf\ -\x82\xe9\xa7\xdc\xdc\xe2\x8e\x9f\xe5\x9d\xad\x9d1\x9dQ\xfd\ -\x99\x9a\xba\xba\xba\x1a\xbb\xcew56\xc2C\xa3\xae\xa9\ -\xc9\xd5\xf5\xbc\xabk\x17\xdc~\xd1\x9a\xca\xbc\xd4\xf1\x86\ -]\xe5Wmn]3\x7f\xbbt\xf9w\x00\xdd<\xab\ -1\xad9x\xeb\xeat\x0av\x96\xbe\xf7\x16\x16c\xf0\ -\x0d\x9b~\xd15\xb1\x8d@r\x05\xb2\x8e\xa9\xdc\x1b\x07\ -\xefq\x93t\xd2\xb3\xb7\x80\xe7\x0f\x00%\xdd\xc4IR\ -\x99v]\xb9p\xf5\xea\xe7\x7f\x16\x15)\x8b\xe4\x90\xc5\ -\x9d\xd3am\xefw\x0ff\xf1\x8d\x85\x0d\x97\xbdm\x0f\ -\xc6o\xe2\xf4\xec\xc1\xed\xe18\x11xS\xd1I\x9cv\ -\x0fv\xfe\xe4k\x9d\xfc\x85\xf7\xe0@\xe7\xbf!>\xfb\ -\xbbS\x11\x18\xe83\xff\x1f\x22\xba\xf7\xfb!O\x97\xb9\ -\x00\x00\x00\x00IEND\xaeB`\x82\ -\x00\x00\x82\xd2\ -\x00\ -\x00\x01\x00\x02\x00@@\x00\x00\x01\x00 \x00(B\x00\ -\x00&\x00\x00\x00\x00\x00\x00\x00\x01\x00 \x00\x84@\x00\ -\x00NB\x00\x00(\x00\x00\x00@\x00\x00\x00\x80\x00\x00\ -\x00\x01\x00 \x00\x00\x00\x00\x00\x00@\x00\x00\x12\x0b\x00\ -\x00\x12\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\ -\x01\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x8e\x14\x00\x8d~\x0b\x01\x8d\xad%\ -\x12\x8d\xba-7\x8d\xc01f\x8d\xc53\x94\x8d\xc85\ -\xb9\x8d\xca6\xd5\x8d\xcb7\xe6\x8d\xcb7\xed\x8d\xcb7\ -\xec\x8d\xcb7\xe5\x8d\xca6\xd5\x8d\xc85\xbe\x8d\xc54\ -\x9d\x8d\xc11q\x8d\xbb-@\x8d\xaf&\x16\x8d\x8a\x12\ -\x02\x8d\x9b\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x01\xff\xff\xff\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d^\x0e\x00\x8d\xf8C\ -\x00\x8d\xaa#\x0d\x8d\xbb-@\x8d\xc42\x87\x8d\xc96\ -\xc4\x8d\xcd9\xe8\x8d\xd0:\xfa\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x8d\xd1;\xfc\x8d\xce9\xed\x8d\xca6\xca\x8d\xc43\ -\x8e\x8d\xbc.G\x8d\xae&\x12\x8d\x0b\x00\x00\x8d\x8f\x13\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8df\x0e\x00\x8d\xffI\x00\x8d\xae&\x13\x8d\xbe/\ -\x5c\x8d\xc75\xb8\x8d\xce9\xf0\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x8d\xcf9\xf4\x8d\xc96\xc4\x8d\xc00m\x8d\xb2(\ -\x1c\x8d\x16\x00\x00\x8d\x9a\x19\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x8d\xb7)\ -\x00\x8d\xa8#\x0a\x8d\xbc.U\x8d\xc85\xc0\x8d\xcf:\ -\xf8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc96\ -\xcf\x8d\xbe/f\x8d\xad%\x10\x8d\xc10\x00\x8d\x82\x0b\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x9e\x1c\x00\x8d\x00\x00\x00\x8d\xb6*\ -,\x8d\xc43\xa4\x8d\xce9\xf4\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcf:\xf9\x8d\xc64\xb3\x8d\xb8,9\x8d~\x08\ -\x01\x8d\xa0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaa#\x00\x8d\x9d\x1b\x04\x8d\xbc.U\x8d\xca6\ -\xd7\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd2<\xff\x8d\xcb7\xe2\x8d\xbe/\ -j\x8d\xa7!\x0a\x8d\xb1'\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb0'\ -\x00\x8d\xa5 \x0a\x8d\xbf0v\x8d\xcd8\xee\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8d\xd2:\ -\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3;\xff\x8d\xd2;\xff\x8d\xd2:\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xce9\ -\xf6\x8d\xc22\x91\x8d\xaf&\x13\x8d\xb7*\x00\x8d\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb2(\x00\x8d\xa9\x22\ -\x0c\x8d\xc11\x88\x8d\xcf9\xf7\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x8d\xd3;\xff\x8c\xd6B\xff\x89\xdbN\xff\x86\xe2]\ -\xff\x83\xe8k\xff\x81\xecu\xff\x80\xeey\xff\x80\xedx\ -\xff\x81\xebs\xff\x83\xe7k\xff\x85\xe3`\xff\x89\xdcQ\ -\xff\x8b\xd6C\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd0:\xfc\x8d\xc43\xa2\x8d\xaf'\x16\x8d\xb8+\ -\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xa5!\x0a\x8d\xc11\ -\x8a\x8d\xcf:\xf9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd4>\xff\x89\xdcQ\ -\xff\x82\xe9o\xff}\xf5\x88\xffz\xfb\x97\xffx\xfe\x9e\ -\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa2\xffx\xff\xa2\ -\xffx\xff\xa1\xffx\xff\xa1\xffx\xfe\x9f\xffy\xfc\x99\ -\xff|\xf6\x8b\xff\x82\xebr\xff\x88\xdeU\xff\x8c\xd5@\ -\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd0:\xfd\x8d\xc43\xa1\x8d\xad%\ -\x13\x8d\xb5)\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaa#\x00\x8d\x92\x14\x04\x8d\xbf0x\x8d\xcf9\ -\xf8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x8d\xd3=\xff\x88\xddS\xff\x80\xef{\xffz\xfb\x98\ -\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffx\xff\xa1\xffy\xfc\x9a\xff~\xf2\x82\ -\xff\x87\xe0Y\xff\x8c\xd4?\xff\x8d\xd3;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc22\ -\x91\x8d\xa6!\x0a\x8d\xaf&\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x9e\x1c\ -\x00\x8d\xf0N\x00\x8d\xbc.T\x8d\xcd8\xee\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8b\xd8G\ -\xff\x82\xebr\xffz\xfb\x98\xffx\xff\xa1\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffy\xfd\x9b\xff\x80\xeey\xff\x8a\xdaK\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf9\ -\xf7\x8d\xbf0p\x8de\x00\x01\x8d\xa8#\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d0\x00\x00\x8d\xbc-\ -\x00\x8d\xb5*)\x8d\xc96\xd4\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3;\xff\x88\xddR\xff}\xf4\x88\ -\xffx\xff\xa0\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff|\xf7\x8e\xff\x87\xe0Z\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcc8\xe7\x8d\xb9,B\x8d\xc85\x00\x8d\xa2\x1e\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xae%\x00\x8d\xa3\x1e\ -\x09\x8d\xc43\x9f\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x87\xe0Z\xff{\xf9\x92\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xffz\xfb\x98\ -\xff\x85\xe5d\xff\x8d\xd3=\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd2<\xff\x8d\xc75\xbd\x8d\xae%\x15\x8d\xb4)\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa5 \x00\x8d\xcd9\x00\x8d\xbc.\ -T\x8d\xce9\xf3\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x87\xe0Z\xffz\xfa\x95\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffy\xfc\x9a\xff\x85\xe4c\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc00q\x8d\xffy\ -\x00\x8d\xa4 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xae%\x13\x8d\xc85\ -\xc0\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x88\xddR\ -\xff{\xf9\x93\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffz\xfb\x98\xff\x86\xe1[\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\xd5\x8d\xb3)\ -\x22\x8d\xb7+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xa5 \x00\x8d\xcf9\x00\x8d\xbe/]\x8d\xcf:\ -\xf9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8b\xd7F\xff}\xf4\x87\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff{\xf8\x90\xff\x89\xdbM\ -\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xc11\ -y\x8d\xffm\x00\x8d\xa5 \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaf&\x00\x8d\xa6!\x0b\x8d\xc75\xb5\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3=\xff\x82\xeap\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xf6\x95\xffx\xfb\x9c\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff\x7f\xf0}\ -\xff\x8c\xd5@\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\ -\xcf\x8d\xb1(\x1a\x8d\xb4)\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xbe/\x00\x8d\xba-<\x8d\xce9\xee\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd2;\xff\x88\xddS\xffz\xfb\x97\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa2\xffz\xddx\xffy\xe6\x83\xffx\xff\xa2\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffy\xfd\x9c\ -\xff\x86\xe2]\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\ -\xfa\x8d\xbe/[\x8d\xcb7\x00\x8d\xa3\x1f\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\ -\x00\x8d\xff^\x00\x8d\xc32\x81\x8d\xd1;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd4>\xff\x80\xef{\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa2\xffz\xd9s\xff{\xc5[\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xff~\xf3\x85\xff\x8c\xd6B\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2<\ -\xff\x8d\xc64\xa5\x8d\x91\x14\x05\x8d\xad%\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\ -\x00\x8d\xaa#\x0e\x8d\xc96\xc0\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x89\xdcO\xffz\xfb\x97\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa2\xffz\xe0{\xff}\xa65\xffy\xf5\x95\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffy\xfd\x9c\xff\x87\xe0Z\xff\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcc7\xda\x8d\xb5)\x1f\x8d\xb6*\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbb-\ -\x00\x8d\xb9,/\x8d\xcd8\xe8\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x83\xe8l\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa2\xffy\xe8\x85\xff~\x95 \xffz\xdcu\ -\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xff\x80\xeez\xff\x8d\xd4=\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcf:\xf6\x8d\xbe/I\x8d\xc22\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa0\x1e\x00\x8d\xc96\ -\x00\x8d\xc00Z\x8d\xd0:\xfb\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8c\xd5A\ -\xff}\xf4\x87\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffy\xee\x8c\xff~\x93\x1e\xff|\xb7I\ -\xffx\xfe\x9f\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xff{\xf8\x91\xff\x8b\xd8G\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd1;\xff\x8d\xc32w\x8d\xdeC\x00\x8d\xa7!\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\x00\x8d\xf0N\ -\x00\x8d\xc43\x81\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x89\xdbN\ -\xffz\xfb\x97\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffy\xf3\x92\xff~\x99%\xff~\x97#\ -\xffy\xf0\x8e\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffy\xfd\x9c\xff\x87\xdfW\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xc75\xa0\x8d`\x00\x02\x8d\xac%\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xac$\x00\x8dP\x00\ -\x02\x8d\xc75\x9f\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2:\xff\x86\xe1]\ -\xffx\xfe\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffx\xf7\x97\xff~\xa0.\xff\x7f\x87\x0f\ -\xff{\xd2j\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xff\x84\xe6h\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xca6\xbe\x8d\xa9\x22\x0b\x8d\xb0'\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xaf&\x00\x8d\xa0\x1d\ -\x07\x8d\xc96\xb4\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x84\xe7i\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xfb\x9b\xff}\xa87\xff\x7f\x83\x0b\ -\xff}\xae>\xffx\xfc\x9c\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff\x81\xedv\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xcc8\xd2\x8d\xb3)\x16\x8d\xb4)\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xac$\ -\x0d\x8d\xcb7\xc2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x82\xebr\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xfd\x9e\xff}\xb0@\xff\x7f\x84\x0c\ -\xff~\x92\x1d\xffy\xe9\x86\xffx\xff\xa2\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff\x7f\xf1\x80\xff\x8d\xd4>\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xcd8\xdd\x8d\xb7+\x1f\x8d\xb8+\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xb0'\ -\x10\x8d\xcb7\xc9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x81\xedv\ -\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xff|\xb8J\xff\x7f\x85\x0d\ -\xff\x7f\x87\x0f\xff{\xc8^\xffx\xff\xa2\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff~\xf2\x83\xff\x8c\xd4?\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xce9\xe1\x8d\xb9,#\x8d\xba,\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb3)\x00\x8d\xb1'\ -\x11\x8d\xcc7\xca\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x81\xedw\ -\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffy\xe7\x84\xff{\xcfg\ -\xffy\xef\x8d\xffx\xfe\x9f\xffx\xff\xa2\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa1\xff|\xc0T\xff\x7f\x85\x0d\ -\xff\x7f\x85\x0d\xff}\xa43\xffx\xf8\x98\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff~\xf2\x83\xff\x8c\xd4?\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xce9\xe0\x8d\xb9,\x22\x8d\xba,\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb2(\x00\x8d\xae%\ -\x0e\x8d\xcb7\xc5\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x81\xebs\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xffz\xdbu\xff\x7f\x8b\x14\ -\xff~\x98#\xff|\xbaL\xffz\xe0z\xffx\xf8\x98\ -\xffx\xff\xa2\xffx\xff\xa3\xff{\xc9_\xff\x7f\x86\x0e\ -\xff\x7f\x87\x0e\xff\x7f\x8d\x17\xffz\xe1|\xffx\xff\xa2\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff\x7f\xf0\x7f\xff\x8d\xd4>\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xcd8\xdb\x8d\xb7+\x1e\x8d\xb8+\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb0&\x00\x8d\xa5 \ -\x09\x8d\xca6\xb9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x83\xe7j\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xffz\xe2}\xff\x7f\x8d\x16\ -\xff\x7f\x86\x0d\xff\x7f\x86\x0d\xff\x7f\x8d\x17\xff}\xa64\ -\xff{\xccc\xffy\xf0\x8e\xff{\xd0g\xff\x7f\x88\x10\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff|\xbdQ\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff\x81\xedw\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xcc8\xd1\x8d\xb3)\x15\x8d\xb5)\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xad%\x00\x8dn\x00\ -\x02\x8d\xc85\xa2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2:\xff\x86\xe1]\ -\xffx\xfe\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xffy\xe8\x84\xff~\x90\x1a\ -\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0e\xff\x7f\x85\x0d\ -\xff\x7f\x88\x10\xff~\x99$\xff}\xa20\xff\x7f\x88\x10\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff~\x9c)\xffy\xf3\x92\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff\x83\xe8k\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xca7\xc0\x8d\xaa#\x0c\x8d\xb1'\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\x00\x8d\xf3P\ -\x00\x8d\xc53\x82\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x89\xdbN\ -\xffz\xfb\x98\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffy\xec\x8a\xff~\x93\x1e\ -\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff\x7f\x86\x0e\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x8a\x12\xffz\xd7p\ -\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffy\xfe\x9d\xff\x87\xe0Z\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xc85\xa5\x8d\x81\x0a\x03\x8d\xad%\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa0\x1d\x00\x8d\xc96\ -\x00\x8d\xc01[\x8d\xd0:\xfc\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8c\xd6B\ -\xff}\xf5\x89\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffy\xf0\x8f\xff~\x97\x22\ -\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb3D\ -\xffx\xfd\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xff{\xf9\x92\xff\x8a\xd9I\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd2;\xff\x8d\xc43\x7f\x8d\xeeL\x00\x8d\xa8\x22\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbb.\ -\x00\x8d\xba-2\x8d\xce9\xeb\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x82\xeap\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffy\xf5\x94\xff~\x9c(\ -\xff\x7f\x86\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff~\x95 \ -\xffy\xed\x8a\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xff\x80\xef|\xff\x8d\xd4>\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd0:\xf8\x8d\xbe/O\x8d\xc43\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1(\ -\x00\x8d\xad%\x11\x8d\xca6\xc6\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x88\xddR\xffz\xfc\x99\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffx\xf8\x98\xff}\xa20\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x10\ -\xff{\xcdd\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffy\xfe\x9e\xff\x86\xe2]\xff\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcc8\xdd\x8d\xb6*\x22\x8d\xb7+\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa9#\ -\x00\x8d\xff\xff\x00\x8d\xc43\x8c\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8c\xd4?\xff\x7f\xf0~\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xfb\x9b\xff}\xa87\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x85\x0d\ -\xff}\xa98\xffx\xfa\x9a\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xff}\xf5\x8a\xff\x8b\xd7D\xff\x8d\xd3;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xc64\xa8\x8d\x96\x17\x06\x8d\xad%\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xc01\x00\x8d\xbc.D\x8d\xce9\xf2\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd2;\xff\x88\xdeV\xffy\xfc\x99\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xfd\x9e\xff}\xaf?\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x86\x0e\ -\xff~\x90\x19\xffy\xe5\x81\xffx\xff\xa2\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xfe\x9e\ -\xff\x85\xe4b\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\ -\xfb\x8d\xbf0`\x8d\xce9\x00\x8d\xa4\x1f\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xb1'\x00\x8d\xaa#\x0f\x8d\xc85\xbd\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd4>\xff\x81\xedw\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xff|\xb6H\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x8b\x14\xff\x7f\x88\x10\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x86\x0e\xff|\xc2W\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff\x7f\xf1\x81\ -\xff\x8c\xd5A\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca7\ -\xd6\x8d\xb3)\x1f\x8d\xb6*\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xa7!\x00\x8d\xd4=\x00\x8d\xbf0c\x8d\xd0:\ -\xfb\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8a\xd9J\xff|\xf6\x8c\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff|\xbdP\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff|\xb3E\xff{\xcdd\ -\xff}\xa54\xff\x7f\x8d\x16\xff\x7f\x85\x0d\xff\x7f\x86\x0e\ -\xff\x7f\x85\x0d\xff~\xa0.\xffy\xf5\x95\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff{\xf9\x94\xff\x89\xdcQ\ -\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc22\ -\x86\x8d\x00\x00\x00\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb4)\x00\x8d\xaf&\x17\x8d\xc85\ -\xc6\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x87\xdfW\ -\xffz\xfa\x96\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xc4Y\ -\xff\x7f\x86\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb9L\xffx\xff\xa2\ -\xffx\xf8\x98\xffz\xdex\xff|\xb8K\xff~\x97#\ -\xff\x7f\x87\x0f\xff\x7f\x8a\x12\xffz\xdbu\xffx\xff\xa2\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffy\xfd\x9b\xff\x85\xe4b\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcb7\xde\x8d\xb6*\ -,\x8d\xba-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa6!\x00\x8d\xd5>\x00\x8d\xbe/\ -^\x8d\xcf9\xf7\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x85\xe3`\xffz\xfc\x99\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xccb\ -\xff\x7f\x87\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb2C\xffx\xfe\x9f\ -\xffx\xff\xa1\xffx\xff\xa2\xffx\xfe\x9f\xffy\xee\x8c\ -\xff{\xcdd\xff}\xa53\xff|\xc3W\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffy\xfd\x9d\xff\x83\xe8k\xff\x8d\xd4>\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd0:\xfe\x8d\xc11~\x8d\x08\x00\ -\x01\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xaa#\ -\x0e\x8d\xc54\xae\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x85\xe3a\xffz\xfb\x97\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xd3k\ -\xff\x7f\x88\x10\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff}\xab;\xffx\xfc\x9c\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffx\xff\xa2\xffx\xf8\x98\xffy\xf1\x8f\xffx\xfe\x9f\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xffy\xfc\x9b\ -\xff\x83\xe7j\xff\x8d\xd4>\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xc85\xc5\x8d\xb1'\x1b\x8d\xb6*\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x95\x15\x00\x8d\xc11\ -\x00\x8d\xb7+6\x8d\xcb7\xdf\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x87\xe0Y\xff|\xf7\x8e\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa2\xffz\xd9s\ -\xff\x7f\x8a\x12\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff}\xa53\xffx\xf9\x9a\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff{\xf9\x94\xff\x85\xe3a\ -\xff\x8d\xd4=\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcd8\xec\x8d\xbb-K\x8d\xcc8\x00\x8d\xa6 \ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa6 \ -\x00\x8d\xff\xff\x00\x8d\xbd/c\x8d\xce9\xf3\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8a\xdaK\ -\xff\x80\xeey\xffy\xfd\x9b\xffx\xff\xa3\xffz\xe0{\ -\xff\x7f\x8c\x15\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff~\x9f,\xffx\xf7\x96\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffy\xfe\x9e\xff~\xf2\x81\xff\x89\xdcQ\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\ -\xfb\x8d\xc01\x7f\x8d\x8d\x11\x04\x8d\xaa#\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xad%\x00\x8d\x9f\x1c\x07\x8d\xc11\x85\x8d\xcf:\ -\xfa\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x8c\xd4?\xff\x87\xe1[\xff~\xf4\x86\xffz\xe4}\ -\xff~\x8e\x18\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff~\x9a%\xffy\xf3\x91\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffx\xff\xa1\xffy\xfe\x9d\xff}\xf4\x88\ -\xff\x85\xe3`\xff\x8c\xd5A\xff\x8d\xd3;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc43\ -\xa4\x8d\xab#\x10\x8d\xb3(\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xaa#\x0f\x8d\xc32\ -\x98\x8d\xd0:\xfc\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8c\xd6B\xff\x88\xd6L\ -\xff\x85\xab&\xff\x81\x94\x17\xff\x80\x8a\x11\xff\x7f\x87\x0f\ -\xff\x7f\x86\x0e\xff\x7f\x85\x0d\xff~\x94\x1f\xffy\xee\x8d\ -\xffx\xff\xa3\xffx\xff\xa1\xffx\xff\xa0\xffy\xfd\x9c\ -\xff{\xf9\x92\xff\x80\xef|\xff\x86\xe1\x5c\xff\x8c\xd6C\ -\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc54\xb3\x8d\xb1(\ -\x1c\x8d\xbc-\x00\x8d4\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb5)\x00\x8d\xae%\ -\x13\x8d\xc32\x9b\x8d\xd0:\xfb\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8c\xcc8\xff\x89\xc01\xff\x87\xb3)\ -\xff\x85\xa9#\xff\x84\xa2\x1e\xff\x83\xa6&\xff\x7f\xe4q\ -\xff\x7f\xf1\x7f\xff\x81\xecv\xff\x84\xe6h\xff\x87\xdfX\ -\xff\x8a\xd8H\xff\x8d\xd4>\xff\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd1;\xfe\x8d\xc54\xb1\x8d\xb2( \x8d\xbf0\ -\x00\x8d\x8d\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb4)\ -\x00\x8d\xad%\x11\x8d\xc21\x8c\x8d\xce9\xf5\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd4=\xff\x8d\xd4=\ -\xff\x8d\xd3<\xff\x8d\xd2<\xff\x8d\xd2;\xff\x8d\xd4>\ -\xff\x8d\xd4=\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd2;\ -\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\ -\xfa\x8d\xc33\xa0\x8d\xb0'\x1a\x8d\xbe0\x00\x8d\x85\x0c\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xb0'\x00\x8d\xa5 \x09\x8d\xbe/h\x8d\xcb7\ -\xe2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcd8\xed\x8d\xc01\ -~\x8d\xad$\x0f\x8d\xb4)\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d \x00\ -\x00\x8d\x1e\x00\x00\x8d\x0f\x00\x00\x8d\xff\x9a\x00\x8d\xb5*\ -@\x8d\xbe/\xe5\x8d\xcb7\xff\x8d\xd2;\xff\x8d\xd4<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd0:\xfd\x8d\xc85\xc7\x8d\xbb-M\x8d\x9f\x1c\ -\x04\x8d\xaa#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xad%\x00\x8d\xa2\x1e\ -\x04\x8d\xc00g\x8d\xc74\x9a\x8d\xc43s\x8d\xb9,\ -e\x8d\xad%\xe7\x8d\xae&\xff\x8d\xb8+\xff\x8d\xc53\ -\xff\x8d\xcf:\xff\x8d\xd3<\xff\x8d\xd4<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xcb7\ -\xdc\x8d\xc11{\x8d\xb1'\x1a\x8d\xffS\x00\x8d\x7f\x0f\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb6*\x00\x8d\xb4)\ -\x1d\x8d\xcb7\xd9\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xcf:\ -\xfa\x8d\xca7\xfe\x8d\xc43\xff\x8d\xbd.\xff\x8d\xb8+\ -\xff\x8d\xb9,\xff\x8d\xc00\xff\x8d\xc85\xff\x8d\xce9\ -\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd0:\xfb\x8d\xca7\xd4\x8d\xc21\x80\x8d\xb5*\ -'\x8d\x8b\x10\x02\x8d\x9f\x1c\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf0\x00\x8d\xbc.\ -<\x8d\xcf9\xf1\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd4<\xff\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x8d\xcf9\xff\x8d\xca6\xff\x8d\xc64\xff\x8d\xc43\ -\xff\x8d\xc43\xff\x8d\xc64\xff\x8d\xc85\xff\x8d\xcb7\ -\xff\x8d\xce9\xff\x8d\xd0:\xff\x8d\xd1;\xff\x8d\xd2<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd1;\xff\x8d\xcf:\xf7\x8d\xcc8\xdc\x8d\xc74\ -\xa9\x8d\xbf0_\x8d\xb3(\x1d\x8d\x86\x0d\x01\x8d\x99\x19\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa1\x1e\x00\x8d\xcd8\x00\x8d\xc11\ -d\x8d\xd1;\xfe\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd4<\xff\x8d\xd4<\xff\x8d\xd3<\ -\xff\x8d\xd1;\xff\x8d\xcf9\xff\x8d\xcb7\xff\x8d\xc75\ -\xff\x8d\xc32\xff\x8d\xbf0\xff\x8d\xbd/\xff\x8d\xbc.\ -\xff\x8d\xbb.\xff\x8d\xbc.\xff\x8d\xbd.\xff\x8d\xbc.\ -\xed\x8d\xc01\x81\x8d\xbe/H\x8d\xb5* \x8d\x9f\x1d\ -\x06\x8d\xcb4\x00\x8dc\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xaa#\x00\x8d\xff\x99\x00\x8d\xc54\ -\x8f\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xcf9\xff\x8d\xca6\ -\xff\x8d\xc43\xff\x8d\xbd/\xff\x8d\xb6*\xff\x8d\xb1'\ -\xd7\x8d\xb2(8\x8d\xa9\x22\x0f\x8d\x85\x10\x02\x8d\xa7\x1b\ -\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xae&\x00\x8d\xa3\x1f\x09\x8d\xc96\ -\xb8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xcf:\ -\xfc\x8d\xcd8\xe8\x8d\xca7\xcd\x8d\xc54\xa5\x8d\xbb-\ -;\x8d\xc95\x00\x8d\xa8\x22\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb6*\x00\x8d\xb5*\x1d\x8d\xcc8\ -\xd9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xc43\ -\x8b\x8d\xffe\x00\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xbd/\x00\x8d\xbc.5\x8d\xce9\ -\xef\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc32\ -r\x8d\xd8?\x00\x8d\xa7!\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb8,\x00\x8d\xb7+\x1f\x8d\xc75\ -\xb7\x8d\xce9\xe9\x8d\xd0:\xf9\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\xf6\x8d\xbe/\ -I\x8d\xc32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x8e\x13\x00\x8dZ\x00\x00\x8d\xae&\ -\x10\x8d\xb9,-\x8d\xbf0P\x8d\xc33z\x8d\xc75\ -\xa5\x8d\xcb7\xcb\x8d\xcd9\xe7\x8d\xd0:\xf9\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcd8\xe3\x8d\xb8+\ -'\x8d\xb9,\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8dL\x00\x00\x8d\xda3\x00\x8d\x93\x17\ -\x04\x8d\xaf&\x12\x8d\xb9,,\x8d\xbf0O\x8d\xc32\ -y\x8d\xc75\xa4\x8d\xca7\xc9\x8d\xcd8\xe6\x8d\xd0:\ -\xf8\x8d\xd1;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\xc5\x8d\xac$\ -\x0f\x8d\xb1'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d2\x00\x00\x8d\xd9.\ -\x00\x8d\x90\x16\x03\x8d\xaf&\x11\x8d\xb9,*\x8d\xbf0\ -M\x8d\xc32w\x8d\xc75\xa2\x8d\xca7\xc8\x8d\xcd8\ -\xe5\x8d\xd0:\xf8\x8d\xd1;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xc74\x9f\x8d^\x00\ -\x02\x8d\xac$\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x0d\x00\ -\x00\x8d\xd6)\x00\x8d\x8c\x15\x03\x8d\xae%\x11\x8d\xb9,\ -)\x8d\xbf0K\x8d\xc32u\x8d\xc75\x9f\x8d\xca7\ -\xc5\x8d\xcd8\xe3\x8d\xcf:\xf5\x8d\xd1;\xfe\x8d\xd2<\ -\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc32s\x8d\xd9@\ -\x00\x8d\xa6 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\ -\x01\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\x00\x00\x00\x8d\xce%\x00\x8d\x89\x13\x03\x8d\xad%\ -\x12\x8d\xb8,-\x8d\xbe0T\x8d\xc32\x83\x8d\xc74\ -\xb4\x8d\xca7\xe2\x8d\xc85\xe0\x8d\xba-<\x8d\xbe/\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x01\x7f\xff\xfe\ -\x00\x00\x7f\xff\xfe\xff\xff\xf8\x00\x00\x1f\xff\xff\xff\xff\xe0\ -\x00\x00\x07\xff\xff\xff\xff\x80\x00\x00\x01\xff\xff\xff\xff\x00\ -\x00\x00\x00\x7f\xff\xff\xfc\x00\x00\x00\x00?\xff\xff\xf8\x00\ -\x00\x00\x00\x1f\xff\xff\xf0\x00\x00\x00\x00\x0f\xff\xff\xe0\x00\ -\x00\x00\x00\x07\xff\xff\xc0\x00\x00\x00\x00\x03\xff\xff\xc0\x00\ -\x00\x00\x00\x01\xff\xff\x80\x00\x00\x00\x00\x01\xff\xff\x00\x00\ -\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\ -\x00\x00\x00\x00\x7f\xfe\x00\x00\x00\x00\x00\x00\x7f\xfc\x00\x00\ -\x00\x00\x00\x00?\xfc\x00\x00\x00\x00\x00\x00?\xfc\x00\x00\ -\x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ -\x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ -\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ -\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ -\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ -\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ -\x00\x00\x00\x00\x0f\xf8\x00\x00\x00\x00\x00\x00\x0f\xf8\x00\x00\ -\x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ -\x00\x00\x00\x00\x1f\xfc\x00\x00\x00\x00\x00\x00\x1f\xfc\x00\x00\ -\x00\x00\x00\x00?\xfc\x00\x00\x00\x00\x00\x00?\xfe\x00\x00\ -\x00\x00\x00\x00\x7f\xfe\x00\x00\x00\x00\x00\x00\x7f\xff\x00\x00\ -\x00\x00\x00\x00\x7f\xff\x00\x00\x00\x00\x00\x00\xff\xff\x80\x00\ -\x00\x00\x00\x01\xff\xff\xc0\x00\x00\x00\x00\x01\xff\xff\xc0\x00\ -\x00\x00\x00\x03\xff\xff\xe0\x00\x00\x00\x00\x07\xff\xff\xf0\x00\ -\x00\x00\x00\x0f\xff\xff\xf8\x00\x00\x00\x00\x1f\xff\xff\xfc\x00\ -\x00\x00\x00?\xff\xff\xff\x00\x00\x00\x00\x7f\xff\xff\xf0\x00\ -\x00\x00\x01\xff\xff\xff\xf0\x00\x00\x00\x03\xff\xff\xff\xf0\x00\ -\x00\x00\x0f\xff\xff\xff\xf0\x00\x00\x00\x7f\xff\xff\xff\xf0\x00\ -\x00\x00\xff\xff\xff\xff\xe0\x00\x00\x00\x7f\xff\xff\xff\xe0\x00\ -\x00\x00\x7f\xff\xff\xff\xe0\x00\x00\x00\x7f\xff\xff\xff\xe0\x00\ -\x00\x00\x7f\xff\xff\xff\xf0\x00\x00\x00\x7f\xff\xff\xff\xff\x00\ -\x00\x00\x7f\xff\xff\xff\xff\xf8\x00\x00\x7f\xff\xff\xff\xff\xff\ -\xc0\x00\xff\xff\xff\x7f\xff\xff\xfe\x00\xff\xff\xfe\x89PN\ -G\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\x00\x01\ -\x00\x00\x00\x01\x00\x08\x06\x00\x00\x00\x5cr\xa8f\x00\x00\ -@KIDATx\xda\xed\xbdy\x9c\x1d\xd7]\xe0\ -\xfb=\xe7T\xd5\xdd{Swk\x97%\xb5\xb5x\x89\ -\xb3\x98,$\x84\x90\x0d\xcf\x0c\x90G 1\x84\x10\x18\ -`X'\x0cy\x13\xf6\xc9\x83\x07\x0c[\x86\x1e\x96\xc0\ -\x10\xde0\x90\x04\x02D&\x0b\x09L /\x84\x00!\ -!\x89cg\xb3\xbcE\xb6dY\x96\xb5t\xb7\xba\xfb\ -n\xb5\x9cs\xe6\x8f\xba\xb7\xd5\x92ZRK\xba\xb7\xaa\ -\xee\xed\xfa~>mkiu\x9d[U\xbf\xf5\xfc~\ -\xbf#\xc8\xc9\xb9\x01\xb6\xbc}\x16\xbf\x01#\xd3\x14\xa4\ -b\x02\xc1\x0e!9 %wH\xc5\xcdB1\x82E\ -\xea\x90'\x8d\xe1\xddB\xf01 \ -\xe5\xb2\xb5\xe3\xc6{\x8e\xdb\x11v\x07\x84\xbc\xf1\xeb7\ -\x17`\xe9\x14oQ\x1e\xbf\x1c\xf9y\x18\x906\xce\x8d\ -\xff\x88\x9c\xac\xb2\xe3\x8fg\xb1\x1a\xe1\x96(\x0a\xc1\xb8\ -\x90\xec\x10\x82\xbd\xc5\x1a\xb7I\xc5\x01\xe92\xa3\x1c\xb6\ -9\x1e\xe3\xca\xc3s<\x84t@\xf5H\xd8\xd7By\ - \x14\xb7\xb7\x97\xf0\x9c\x02A\xda\xf7h\xa3\x93+\x80\ -!\xe1\xa6?\x99\xc5Z\x84\x94\x14\x85dBH\xb6\x0b\ -\xc1>\xa18 %\xb7I\x97\xdd\xcaa\x87\xe31\xaa\ -<\x0a\x8e\x07]7\xbe_\xc2\xbe\x16\x8e\x0b\xcaa\xaf\ -\x90\x8c\x02g\xd2\xbeo\x1b\x9d\x5c\x01\x0c \xbb\xde\xd5\ -\x11vEQJ6u\x84}\xbfP\x1c\x90\x8a[\xa4\ -\xc3^\xe5\xb2\xcdq\x19s<<\x95\x92\xb0\xafE\xc7\ -\xc3\xd8)$\xdb\xc9\x15@\xea\xe49\x80\x0c\xa3\xde<\ -\xcb\xee\xe7Cs\x01Q\xa8P\x12\xb1\xb0\xef\x10\x82\x9b\ -\x85\xe2V\xa9\xd8/\x1dnv\x5c\xb6(\xaf#\xecn\ -v\x84\xfdr,\x9d\xa2U\x9f\xe3\xf5B\xf0~\xc8\xf3\ -\x00i\x92{\x00\x19b\xe7;f1\x1a\xe1\x16)\x0b\ -\xc1\x84\x90\xec\x02f*\x9b\xb8M*\xf6\xab8\x1b\xbf\ -Ey\x8c\xaeXv'\xdb\xc2\xbe\x16\x8eGIHn\ -U.\xef\xd7y\x16 Ur\x05\x90\x12\xbb\xdf\x1do\ -\xbdI\x87\xb2\x90l\x12\x82\x9dB\xb2_H\x0eJ\xc5\ --*\x8e\xd9\xb7)\x8f\xda \x0b\xfb%\x888\x11(\ -\x15\xb7\xb4\x97p\xdd\xe2\xf9=\xe9\x9c\xe4\xc9\x15@\x02\ -\xec\xfe\xd3Y\x8cF\x0aEIJ\xa6\x84\x8c\xcbe\x9d\ -B\x1c\xb3+\x87\xdd\xcac\xabr\x19q\x0a\xb8\xca\x1d\ -\x12a_\x0b\xdb\x09Q\x1cn\x96\x8aQ\xe0l\xdaK\ -\xda\xc8\xe4\x0a\xa0\xc7\xeczW,\xec\x8eGYH&\ -\x85`\x97\x90\xecs\xe2}\xf6\xfd*N\xd0mV.\ -\xa3\x8e\x87\xe3xqbl(\x85\xfd2H\xb5\x92\x08\ -\xdcF\xae\x00R%O\x02^'\xd3\xbf=Ku+\ -\x04\x0d\xa4\xe3Q\xed\xb8\xf17\x09\xc9\xcdBr[G\ -\xd8\xf7(\x97\xcd\x8e\xc7\x88\xf2p\x9cNA\x8dt`\ -\xa3\xb7\x5ct\x12\x81\xaf\x13\x82\xbf\x82<\x11\x98\x16\xb9\ -\x07\xb0\x1e\xbes\x96\x99WC\xd8@JEUH\xa6\ -\x84`\xa7\x80\x83\xa5\x11\x0e\x88\xd8\x8d\xdf\xa5\x5c\xb6:\ -\x1e\xd5\x15a\xeff\xe37\xb8\xb0\xaf\x85\xe3Q\x12\x82\ -\xdb\xa4\xe2\xafL^\x88\x9e\x1a\xb9\x02\xb8\x88M\xbf5\ -\xcb\xd4^h\x9eCIEEH\xa6\x85`'\x9a\x83\ -^\x99\x83\xca\xe1\xa0t\xb8\xc9\xf1\x98V.5\xc7\xc3\ -\xe9&\xe8D.\xec\xeb\xe3|\x22\xf0\x80\xdf\xc0q\x8b\ -Di/i\xa3\xb2\xa1\x15\xc0\xb6\xff9\xcb\xe9\xc7a\ -\xeb~\x94rW,\xfb\xee\xb0\xcd>\xaf\xc2mJ\xb1\ -O:\xecq<\xa6:\xc2\xae.\x11v\xc1\xaa\xd6\x8a\ -\x9cuq>\x11x@:\x8c\x91\xe7\x01Rc\xc3(\ -\x80\x89\xdf\x98\xe5\x05?\x00_z\x1fJy\xd4\x84`\ -J\x08\xf6\xdc\xf4,\xf6\xc9NQ\x8dr\xb9I\xb9L\ -+\x8f\xaa\xe3\xa1\xba\xd9\xf8+\x0a{.\xfc\xd7\x85T\ -\xa0\x5c\xb6\x0b\xc1\x16r\x05\x90\x1aC\xaa\x00f\xd9{\ -\x08t\x80#$U!\xd8,\x047=\xfc\xb7\x1c,\ -\xd6:[o.;;\xc2^\xc9\x85=y\xa4\x04\xc7\ -c\x93\x90\xdc\x8c\xe0\xcbi\xafg\xa32\xf0\x0a`\xcf\ -\x9f\xcd\x12E\xa0\x14\x0eP\x15\x92-Bp\x93\x80\x83\ -^\x89\x83\xd2\xe1@'A7\xd5\xb1\xec\xf2\x12a_\ -\x8b\x5c\xd8\xfbK\x9c\x07(\x09\xc1\x01\xa5`\xe6\xd0l\ -\xbe\x13\x90\x02\x03\xad\x00\xf6\xbeg\x16\x01c\xae\xe2e\ -R\xf1\xf5\xcae\x7f\xa7\xa8f\x93\xe3RU\x1e\xd2\xf1\ -:\x99\xf8\xb1\xfb\xdd\xb3s:\ -\xa4%\x1d\xec\xb1\xef\xcc\xc3\x81\xac2\xf0\x11\xf3J\xf7\ -\x98\xe5\x07k\xd3\xfc~ur\xf0?\xd3\x15\xb9\x9ce\ -\xefX\xf5\x0bbv{^H\x858?,U\xc8\xb8\ -\x0bOtN$\xee\xfe^\xae\xfa\xfd\xca\x97\xb8p\xc8\ -\xea\xaa\xcb\x9f\xdf\xef\xb7\x1d\xa5\xd3\xc6F\x01\x8b:\xe2\ -\xb8\xd1g5\xf7\x1b\ -\xc3\xfd\xc01k\x98\x07\xcc\xd1\xbc\x0e 5\x86BT\ -f\x0e\xcdb\x22v\x17G\xf8\xe8\xf8\x0ef\x062\x0f\ -p\x91\x1b\x7f\x89\xb0wcv\x13\x0b\xbb\x10\xe7\x05\xda\ -\xf1\xe2\x11\xdb\xdds\x0b\xa5\xb3\xca\x9a\xafr\xe1\xe3\x1f\ -\x9e\xfcG\xb3fU\xcd@\x9b(\xf49\xab\x03\xbe\xa2\ -C>i\x0c\x9f\xb4\x86\xfb\xb0\x9c\x02\x02\x04<\xfe\xba\ -\x5c!$\xc5\xd0(\x00\x1dR\xf5\xca|`|\x07/\ -w\x8bi\xaf\xe8*\xac\x12v\xa3WU\xd1\x05\xab,\ -{\x10\x0b;6v\xd5UG\xd0\x1d\x0fT\xa1#\xf0\ -\xab\x04}\xe5\xe7B\xe6s \xdd\xcf\x1b\xb6\xb1A\x93\ -F\x14\xf0X\x14p\xaf\xd1\xfc\xffX>m4O\x08\ -\x89\xce\x15A\xff\x19\x1a\x05\xf0\xe3\xaf\x85\xd9\xf7\xf2\xb6\ -\xb1m\xbc\xb18Bv\x84`\xbd\xc2\xae;\x96=\x9e\ -\x90\x83\xe3\x81[\x04\xa7\xd09A\xc7\x89\xddv\x86\xec\ -\xc0\x93\xae\xb7\x13\xb6\xc0o\xd2\x0a\x9b<\xaaC>f\ -4\x1f\xb1\x96\xcf\x0a\xc1\x9c\xb5\xd8\x5c\x19\xf4\x87\xa1P\ -\x00\x007\xdf3\x8b5\xfcHm\x9a\xdf\xabN\xa6\xb4\ -\x88\x8bc\xf6p\x8d\xad\xb7\xe8\xc2\xa2\x1a\x11\xcf\xc4\xc3\ --\x9e\xffR\xdd\xe3\xcc\x86L\xd8\xafFg6\x00A\ -\x0b\x82:\x8ba\x9b\xcf\xeb\x90\xf7[\xcb\x87\x81\xa3@\ -\xf0\xd8\xb7\xe7\x8a\xa0\x97\x0c\x8d\x02\xe8&\x02+\x13|\ -ptK\x02\x89\xc0\xb5b\xf6`\x0da\xefl\xbd\xad\ -\xce\xc6+7\xb6\xec^)\xfeR\x05P\x8a\xa1\xb3\xee\ -7\x82\xd1\x10\xb6\xa1\xbdL\x184y<\x0a\xf8\xa8\xd5\ -\xdc\x03|\x16A\xc3Zx0\xb1\x83\x97;\ -\x85\x1b\xb8\x1bk\x09\xbb\x7f\xbe\x11f\xb5e_\xb3\xa2\ -\xa6SQ\xa7\x5c\xf0\xcaP\xa8v,\xbd\xc3\x10\xdd\xf1\ -\xe4\xd1!\xf8\x0d\xf0\xeb4\xfc&\x9f0\x11\xef\xc4\xf2\ -\x91\xa0\xc5\x9c[\xc8\x15\xc1\xf504\xaf\xe3\xcc\xa1Y\ -\x1as\x88\xea$\xbf3\xb2\x857\x96\xc7Y\xb7+\xbd\ -\xbaz\xce\x9a\x8ee\x0f@\xaf\x8e\xd9-\x5c\xb66~\ -\x15R\xc5\x96\xbeX\x05\xaf\x12\xef\xc3#\xd7\xbf\x96\x9c\ -\xabct\xac\x08\xdaK4\x82&\x9f\xd2\x11\x7f\x8e\xe5\ -\x83Bq\xd6j\xc8\xf3\x04\xebgh\x14\x00t\xf2\x00\ -\x96W\x17*\xbcst\x0b5\xa7\xbb\x1d\xb8J\xf8\xba\ -\xc2\xae\xa3\x95\x0c|;\x0a8\xa7C\x9e\x8c\x02\x0a\xd6\ -r;\x16\xb1f\xc7\xdbZt\xbe\xcf\xf1bK_\xac\ -\xc5.~\xee\xde\xf7\x1f\xa3!hBk\x91v\xd0\xe4\ -\xe3:\xe2\x1dX>\x82`\x01\xe0\xb1o\xcb\x15\xc1\xd5\ -\x18:\x05\x80\xa5\x86\xe0-^\x89\x1f*\x8d1\xe2x\ -\xb1\xf5\xd6!6\x0a\x08t\xc0\xbc\x0eyJG}\xd7\xda\x17\xaa\xb9\xb5\xcf\x12F\ -C{\x09\x9a\x8b\x9c\x09\xdb\xbc\xdf\x1a\xfeP\xc0}\x16\ -t\xae\x08\xd6f\xe8\x14@\x97\xb1\xffw\x16\xab\xc1\x19\ -G\x08\x09\xd2\xc1Z\x0bg~t\xed\x17\xa1\xd3T\xb4\ -\x03\xf8\x1b\xe0\x8e\x8b\xff^\xaa8\xa1W\xac\xc5\xb1\xfd\ -JB/\x8f\xed3\x87\x0e\xa1\xb5\x88m-r4\xf4\ -y;\x96?\x93\x8a\x13\xd6`\x8f\xe4\x8a\xe0\x02\x86V\ -\x01\x5c+\x1d\x05P\x02\xde\x0d\xbc\xba\xfb\xe7\xca\x8b\x13\ -z+\xb1\xbd\x22\x17\xfa\x01!hAs\x81\xc0\xafs\ -\x9f\x8e\xf8\x0db\xe5\x9e\x87\x05\xab\x18\x8ay\x00=$\ -\xc2\xf2\x14\x22.\xd4)\x8d\xc6\x82\xef\xac\xce\x08\xe4\xc2\ -?0x%p\x0bx\xed:/h\xcc\xf3\x07a\x8b\ -C\xd6\xf2;7\xbfw\xf6!\xab\xf3\xb1e\x90{\x00\ -\xcc\xbcg\xb6+\xd3\x93\xc0\xf7;\x1e?T\x1egW\ -i$O\xea\x0d\x13:\x80\xc6\x02\xb6\xb5\xc4\xfd:\xe4\ -\xad\xc0_\x91{\x03\x1b[\x01t\x12\x86\xd2\xc2\x0b\xa5\ -\xe2'\x0a\x15\xfeMe\x02\xcf+\xa7\xbd\xb2\x9c~`\ --\xf8\xcbP\x9fg!l\xf1.k\xf9-,G\x85\ -\xdc\xb8\xde\xc0\x86T\x00\x1d\xc1\xc7B\x0d\xf8v\xc7\xe3\ -\xa7*\xe3\xcc\x94\xc6\xe2d_\xcep\x13\x05\xd0\x98C\ -\xb7\x96\xf8'\xa3\xf9y!\xf8$\x16\xbd\x11\x13\x84\x1b\ -N\x01\xcc\x1c\x9a\xc5\xf1 \xf4\xd9+\x04?\xe5U\xf8\ -\x8e\xea\x04\xd5B5\xed\x95\xe5$\x895\xd0<\x07\x8d\ -\x05\x8ej\x9f\xb7Zx\xa7\x80\xe6FS\x02\x1bJ\x01\ -\xacr\xf9_\xac\x1c~\xa98\xc2\x0b\xab\x9bPy\xac\ -\xbfq\xf1\x1bP?\xcbR\xd0\xe4\x7fY\xcbob9\ -\xbe\x91B\x82\x0d\xa1\x00V%\xfaJ\xc0\x1b\x1c\x8f\x9f\ -\xacL0S\x1e\xcb\x8bxr.\x08\x09\xfe\xceD\xfc\ -\xf4\xb9y\xbe4\xbe\x096\x8270\xf4\x0a\xa0\xd3\x1f\ -\x000)\x04\xff\xb7W\xe2\x8d\xd5)FVU\xff\xe5\ -\xe4`44\xe6\xa1\xb9\xc0}:\xe2\xe7\x84\xe0\xc3\x80\ -\x19vO`\xa8S^3\x87f1\x1a\x84`FH\ -\xdeZ\xac\xf1\x1fF6S\xf6Ji\xaf,'k\x08\ -\x19Wz*\x97\xad\x91\xcf\x8b\x8cfN\xc0\xc3\x13\xaf\ -\xbd+Z\xf8\xcb\x8f\xa4\xbd\xbc\xbe1\xb4\x0a\xa03!\ -\x08!\xb9S*\xdeV\x19\xe3\x1bG\xa6q\xd4\xba\xda\ -|r6\x22B\xac\x8cd\x1b\xd3\x01/1\x1ak\xe1\ -\xbe\x89\xd7\xde\x15\x0e\xab\x12\x18\xca\x10`\xe6\xd0,B\ - \x8c\xe1%\xca\xe1\xd7+\x13<\xaf2\x91\xc7\xfb\x17\ -\xb0z~\xe1e\xfej#\x13\xb6`\xe94\x8d\xa0\xc9\ -\xefZ\xcb\x7f\x03\xe6\x84\x18\xbe\xe4\xe0\xd0=\xeb\x99C\ -\xb3 \x10\xd6\xf0\xf5\x8e\xcb\xefT&\xd9_\x1e\xbb\xf4\ -X\xab\xa1e\xf5\xe9=v\xd5\xff\x0dXk\xe3\x93|\ -:\xbf\x16@\xb9\x08\x9ek\xe3\x11\x08\x16\x0c`\xac\xc0\ -\xd8\xf3\xff\xef\x9e\x02\xd4\xfd\xc1\x1b\xe5VF>,\x9f\ -!h/\xf3.k\xf9\x7f\x04<\xcd\x90)\x81\xa1z\ -\x96\x9d\x86\x1ei-\xafr\x5c~\xbd:\x15\x0b\xff\xb0\ -\xd2Uj\xd6vF\x97\x85\x06\x1dXB\xdf\xa2}K\ -\xd86D\x81E\x87\xb63\x04\xc5b\xb5\x8d\x0f\x171\ -\xa0\xa4\xe5\xdf\xbd8\xe2\x19\xfb\x0c\xc6\x80!\x16\xf8\xc8\ -\x08\x22#\x08\xb4\xa0\x11)\x9a\x91\xa4\x11J\x9a\xa1\xa4\ -\x19I\x02-\x09MG9t\x14\xc3P\xbdH\xab\xd0\ -!,\x9f&j-s\x8f5\xfc\x8c\x80c\xc3\xa4\x04\ -\x86\xe6\xb9] \xfc\x1e\xbfY\x9bfw\xa96L\x9f\ -\x90\x95\xf6\xe3xl\x99!lZ\xfc\xa6\xa1\xbd\xa4\xf1\ -\x1b\x86\xb0i\xd0\xa1EG`\x8d\xbd`f\xa1\xbd\xf4\ -\xc7\xe0:\xf0\x86o\x0a\xb9\xf3\xa0\xc1\x5c\xe1\xb2\x16\xd0\ -V\x10\x1a\x81\x1f\x09Z\x91d)P,\x05\x8a\xf9\xb6\ -\xc3R\xa0h\x84\x92\xa8\xa3\x14\x86M!\x98\x08\x96\xcf\ -\xa0\x9b\x8b\xbc\xdf\x1a~B\xc0\xd1aQ\x02C\xf1\x9c\ -:\xc2/\xac\xe5\x9b\x1d\x8f\xd9\xda4{J#i\xaf\ -\xaa\x07t\x04)\x9e\x97o\x09\x1a\x86\xe69MkQ\ -\xd3^\xd2\x84m\x8b\x89bA_\xf1\xd0\xaf\xe1\x89z\ -.|\xcf7\x87\xdc>se\x05p\xd1\x92V\xb0\xc4\ -\xdeBW!,\xf8\x8a\xb3-\x87\x85\x8eR\x08\x8d\x18\ -\x1a\x0f\xc1hX>\x83m\x9d\xe3C\xc6\xf0&\xe0\xf1\ -a\xc8\x09\x0c\xfasY\x1d\xf3\x7fc\xc7\xf2\xcf\x0c\xba\ -\xf0\x0b\x11\x1f\x0b\x16\xf9\x96\xd69Ms!\xa21\xaf\ -\x09\x1a\x86(\xec\x04\xeapCO\xcf\x02\xe5\x02|\xdf\ -\xb7\x86\x1c\xd8\xb5~\x05\xb0\xe6zW\xfdZ[hE\ -\x92\x85\xb6\xc3\xa9\xa6\xcb\xa9\xa6\xcb\x82\xafhEr\xdd\ -c\x16\xb3JG\x09\xe8\xd69\xfe\xda\x18\xfe\xb3\x80\xc7\ -\x06\xdd\x13\x18\xe4\xe7\xd1=\x0b\x00\xa1x\x99\xe3\xf2\xfb\ -\xb5i\xf6\x97F\xd3^\xd5\xf5\xd1\x15\x8e\xc8\xb7\xb4\x16\ -5\xcb\xa7;B\xdf4\xb1\x95\xb7\xbdMdZ\x0b\xb5\ -\x8a\xe5\x07^\x13\xb1g\xdb\x8d)\x80\x8bY=]=\ -\xd0\x82s\x81\xc3Su\x97\xe3\xcb\x1e\xf3m\x87\xc0\x88\ -\x0b\xbeo\x900\x1a\xeag\xb0\xcds\xbc\xcf\x18\xde$\ -\xe0\xc9AV\x02\x03;\x10de\x9f_\xf1b\xe5\xf0\ -\x9b\xd5\xc9\xc1\x13\xfen\x5c\xeeH\xcbDQc\x96C\ ->w\xbf\xa1q.\x16\xfa\x0b2\xef}\x90\x16\xd7\x81\ -\x82g{>\xe3d\xf5\xcf\xf3\x94es)d\xba\x14\ -r`\xbc\xcd\x99\x96\xc3\xb1\xa5\x02O5\x5c\x96\x035\ -p^\x81TP\x9d\x8a\xc3\xcd\xd6\x22\xba\xe3\x09\x9cH\ -{]\xd7\xcb@\x16\x02\xad\x94\xf7\x0anW\x0eo\xab\ -Nrge\x9c\x81y\x93\xba\x02Rr\x0c;\xaa\x01\ -\xcf\x9cl\xf1\xac\xe9&\x8d\xd3\x11\x9f\xff\x92\x88O\x05\ -\xa6\xff\x9fg\xb4\x06\xcf\xbf\xc3PN\xe84eOZ\ -\xc6\x0a\x9a\x1d\xb5\x90\xed\xd5\x90\xa2c\x09\xb5\xc0\xd7\x12\ -\xd3\xff\x8f\xdb3:U\x83RG\x1c\x8c|j\xd6\xf2\ -\xc9\x89\xd7\xde\xd5\x9a\xb8\xfb.\x16\xee\x19\xac\x82\xa1\x81\ -\xf3\x00:\xa3\xbf\x01f\xa4b\xb6<\xce\x0b\xcac\x0c\ -\xc4\xdb\xd3\x15\xfc\xaak\xd8Y\x0b\x98\x19m3Y\x8a\ -\xf0d\xbc'\xefw,bRkq\xdd\xd8\x0bH\xfa\ -\xf3Ka\xd9T\x8c\x98(F\x1c\x18oql\xa9\xc0\ -\x91\xc5\x02g[.\xda\x0e\xc4\xa3D*\xa8M\xa1\xac\ -\xe1\xdf\xb7\x97Y\xb6\x96_\x10PO{]\xd7\xca@\ -y\x00\x9dl?\x166\x09\xc1\xafT\xc6xum*\ -\x9e\xfa\x9bu,Pv\x0c\xfb\xc7\xda|\xd5\xe6&\x07\ -\xc6[\x8cz\x06\xb9\xeam\x7f\xf0q\xc9\xa3O\xc8D\ -\x04\xc0\x02\xd3\x13\x96\xe7\xde\xa6\x13U\x02\x17SP\x96\ -\xa9r\xc4\xcej@\xcd3\x84F\xd0\x8c\xd4@x\x04\ -R\x81[\xc0\x89|\x9e\xa1C\x96\x84\xe0s\x13\xaf\xbd\ -\xcb\x0c\x92\x170\x00\xa2s\x11\x96\x8a\x10\xfcl\xb1\xc6\ -\xb7W&\xb3/\xfc\x968\x0e\xde?\xd6\xe6e;\x97\ -x\xc1\xd6:\x9b\xcb!R\x5c\x18+\x1b\x0b\xad\xb6H\ -t\xe8h\xc1\x8bO%Ns\xcei\xf7\xda\x15\xd7p\ -\xebD\x8b\x97\xef\x5c\xe2y\x9b\xebL\x16#D\xb2\xb7\ -\xe3\xbap\x0aP\x9b\xa2\xe6\x16\xf9\xa9N\x0d\xca\x8a\xa1\ -\x1a\x042.>\xe7\xe9\xdcTe\xe1\xbb\xbc2\xdf_\ -\x9b\xc6S\x19\x0e`, \x05l\xab\x84|\xcd\xb6e\ -^\xb4\xad\xce\xb6\xca\xa5\x82\xdf\xc5Xh\x07\xc9\xbe\xf0\ -\xc5\x02\xc8\x8c\xbc\x01\xdd\xa3\x17\xcb\x8e\xe1\xf6\xc9\x16\xaf\ -\xbci\x89\xe7L5\x18\xf1t\xe6\x95\x80W\x86\xea$\ -\x9b\x95\xcb/\x85>/\xc4\x0e\x8e\x12\xc8\xc8\xe3\xbf2\ -\xdd\xa4\x9f\xb5|\x93[\xe0-\xb5IjN\x86\xbb\xfa\ -,0\xeai\xbejs\x83\x97\xee\x5cbf\xd4\xc7\x91\ -W\xce\xb6[\x03m?Y\xa7\xb7\xe8\xd9\x0bB\x90,\ -\xd0\xbdG5W\xf3\xac\xa9&/\xdf\xb9\xc4\x81\xf16\ -\x05\xd5\xfb\xdd\x8a^R\xaaAu\x82[\xa4\xe2\xe7\xac\ -e\xc7\xa0(\x81\xcc+\x80UI\xbfg(\x87\x9f\xab\ -N\xb2\xcd\xcb\xe80\x0fK\xbc\xa573\xea\xf3u;\ -\x97\xb8c\xb2I\xc51\xebzq\xb5\x01?Hn\xad\ -\x82ly\x00\x17c\x89\xb7>\xa7J\x11/\xdaZ\xe7\ -\xc5\xdb\x97\x99.E\xd9\xcd\x0b\x08(\x8dAq\x84W\ -\x08\xc9\x7f\xe9\x0c\x9c\xcd<\x19}\xfc\x17ba\xab\x94\ -\xfcRy\x9cg\x173\x5c\xe57V\xd0\x7fK\x83\xdb7\xb5\xf0d\ -\xefc\xceV{U\x17`\x02\xb8\x0e8Nz\x09\xb4\ -^;:\x96\xb8f\xe0k\xb6\xd5\xd93\xe2gfw\ -C\xc8\x95P\xe0u\xc0+\xb3\x16\x0adF\x01\xac\xba\ -)\xaf\xf2\xca|kV:\xfc,q\xf7\xde\xf3\xb7\xd4\ -\xd97\xde\xee[\xd6\xb9\xe5\xc7\xe5\xc0I\xe1\xb9\xf1W\ -\xd2H\x00\x0b\x8dv\xef?\xaf\x05j\x9e\xe6\xab\xb7\xd6\ -90\xde\xceL\x95\xa3\xe3Ae\x82\xa9N(\xb0#\ -\xed\xf5\xac&3\x0a\x00\xc0Zv)\x87\x1f\xac\x8cS\ -\xcd\xc2\x81\x9d\x16\xa8\xb9\x86\xaf\xdeZgf\xb4\x7fV\ -\xc5\x12\x17\x01\xd9\x84\x14\x80%\xde\x01\xf0\x9cd.(\ -\x88_4?\x80G\x8fK>\xf8\x8f\x0e\x9f\xb8O\xf5\ -\xe5~v\xbd\xb5\xe7n\xc9\x96\x12(\xd6\xa0P\xe5\x85\ -B\xf0\xbd\xd6\xe2d\xc5\x0b\xc8D\x14\xd8I\xfc)!\ -\xf9\xfeb\x8d\x17f\xe1\xdc\xbe\xd5/\xd2\xee\x11\xbf\xef\ -\xd7\xf2\x03\xd1\xf3\xb1_W\xc2s\xfb\xdb\x09(:_\ -\xda\xc2\xd9E\xc1\xc3\x8fK\xbe\xf0\x88\xe4\xf8II\xbd\ -\x09/{\xbe\xee\xdbg\x8d\xf35\x96\xe7n\xae\xa3\xa4\ -\xe5\xf0\x5c)Q\xefj\xcd\xfb\x11\x87\x02n\xd8\xe6{\ -\xc2\x16\x7f\x8b\xe03\xe9\xae(&\x13\x0a\xa0\xc33\x1d\ -\x8f\xef(\x8f\xa3\xd2n\xf1\xedn1=\x7fKl\xf9\ -\xfb\x8d1\xd0l_0\x01\xac\xef\x14\xbc\xfe\xf4\x01t\ -\x05\xbf\xe9\xc3\x13OK\xbe\xf4\xa8\xe4\xa1\xc7$g\x17\ -\x04Qg\x97C\x08\x18\xa9X$\xf4t\x16\xe1j,\ -\xf1\xac\x81gO5\xd0F\xf0\xf0B1u%\xe0\x16\ -\xa14\xc2n\x1d\xf0Fc\xf8\x91\x99C\xb3\xf5\xb4g\ -\x09\xa6\xae\x00:\xd6\xbf(\x14?P\x1ca\xaf\x9b\xd0\ -x\xaa\xcb\xd1\xb5\x1e\xcf\x99n\xb2\xb7\xcf\x96\xbf\x8b6\ -\xd0J\xb0\x13P\xd0\xdbN\xc0\xae\xd0G\x06\xe6:\xd6\ -\xfe\x8b\x8fH\x9e8)i\xb6;\xdf#\xce+\x1c\xcf\ -\x85m\xd3\xfd\x97\xc6\xee\xb3\xfc\xaa\xcd\x0d,\xf0\xf0|\ -1\xf5m\xc2\xd2(\xf8\x0d\xbe\xd1o\xf0\x01\xe0}3\ -\x87fS\x1d(\x9a\xaa\x02X\x89\x83\x04/q\x8b|\ -K9\x03C=\x1day\xe6T\x93\x83\xe3\xadD\xdc\ -qA\xec\x01$\xd9\x08\x04P*\xde\xb8\x07\xd0\xbd=\ -\xcd6\x1c;\x19[\xfb\x87\x8fJ\xe6\x16\x04\x91\xe9(\ -\x86\x8b\xee\xa1\xb1\xb0e\xd2\xb2sK2\xd5{\xdd\xed\ -\xdb\xe7L7\xf0\xb5\xe0\xf1\xc5tw\xe2\x94\x0b\xe51\ -\xc6#\x9f7\xea\x90O\x0a\xc9\xd3i\xae'u\x0f\xc0\ -\x1a\xaa\xd2\xe1\xfb\xca\xa3L\xa5}r\xaf\x14pp\xa2\ -\xcd-\x13\xadD\x93G\xc6\x80\x9f`\x1f\x80\x10P*\ -\xda\x95\x13\x82\xae\xe9\xdfr\xde\xda\x9fY\x10<\xf4\xb8\ -\xe4\xcb\x8fJ\x8e?}\x91\xb5\x17\x97\xff\xf7\x07\xf7\x18\ -j\xe5\xe4\xcaw-Pq\x0c\xcf\xdd\xdc\xa0\x1dI\x9e\ -j\xb8\xa9n0\x15k\xd0\xae\xf3\xd5\xadE\xbe\x19\xc1\ -\xdb\xd3\xf4\x02RS\x00\xab\xac\xff\xcb\xdd\x22//d\ -\xa0{z\xcf\x88\xcfs\xa6\x9b}\xd9\xe7\xbf\x12\x91\x16\ -\x04A\x82!@\xa7\x11\xe8Z\x14\x80\xec|o\xbd%\ -8zB\xf0\xe5\xafH\x1e9*\x99_\xecX{q\ -\xf5\x04\xa6\xb5P)Yn\xddk\xaeK\xf9\xdc\x08\xdd\ -!-\xcf\xdbR\xe7\x9f\x9e\xac1\xef;\xa9)\x01!\ -\xa1\ -K\x81\xe2\xbe\xd3\x95\xd4v\x06\x84\x84\xd2(\x9e\xdf\xe0\ -\xf5\x91\xcf\xfb\x80#i\xac#5\x0f\xc0\x1aF\xa5\xe2\ -\xbb\x8b5F\xd3\xec\xf3/(\xcb\xb3\xa6\x9al.\x87\ -\xa9\x08\xbf\x00\xc20\xb6\xb2I\xa1\xe4\xa5\xb3\x00\xba\xd6\ -^kx\xea\x8c\xe0\xa3\x9f\x8e\xad\xfd\xbb\xff\xc6\xe5\xde\ -\x07$\x0bKq\x9d\xc2z\xad\xfd\xc5X\x0bc5\xcb\ -\x81\xdd\xe9X\xff\x0b>\xbf\x80[&Z}\xaf\xef\xb8\ -\x1an\x09\x0a\x15n\x13\x92o\x0d[\x884\xbc\x80\xc4\ -=\x80\xd5\xd6\xdf+\xf1u\xc5\x14[}\x05pp\xbc\ -\xcd\xbe\xb1t_\x84 \x14D:\x99#t\xad\x05\xa5\ -\xecJ'`\xf7\x92\xdd\xd8\xfe\x8b\x8fJ\x1e=\x16\xc7\ -\xf6\xe6\x06\xac\xfdZ\xd7\x9d\xd9i\x98\x1cK\xbfw\xbf\ -\xbb=\xf8\xac\xa9&\x0bm\x87y\xbf?U\x89WC\ -\x08(\x8d\xe2\xf8\x0d^c\x0d\x7f\x0e\x1cOz\x0d\xa9\ -x\x00FS\x92\x8ao/\x8e0&S\x8a\xfd-\xb0\ -\xa5\x12r\xeb\xa6\x16J\xa4\xfbJ\xb6\x83N+pB\ -\xd7s\x9cx\x16@dbk\xff\xb1\xcf(\xfe\xe8\xfd\ -\x0e\xef\xfa\x90\xcb\xa7>\xaf8\xbb\xd0\xfb\xaaD\xcf\x8d\ -\xdd\x7f7#S\x9d,0Q\x8cx\xd6t\xba\x03E\ -\xdc\x22xe\xee@p\x17\x22\xf9F\xa1D\xc5\xaf\xfb\ -\xe1\x84\xe0\xab\x9c\x02/M\xab\xe4\xb7\xdb\xe0s\xe7t\ -\x83\x9a\x9b\xfe \x89\xb6\x9fl'\xa0\x14\xf0\xe81\xc9\ -?\xde+x\xf8\xa8d\xe1\x1a2\xf9\xd7\x83\xb505\ -a\x99\xd9\x91\xbe\xf5\xbf\x98\xdd#\x01\xa7\x1am\x0e\xcf\ -\x97R\xb9\xbe\x90P\xacQ\xf0\xeb\xbcF\x87\xbc_H\ -\xe6\x92\xbc~\xe2\x1e\x80\xd1\xb8R\xf1\xbab\x8d-i\ -5\xfct\x87H\xa4\x15\xf7\xaf\xc6\x92l'\xa0\x10\xb0\ -T\x17|\xf0\xe3\x0e\xffr\x7fl\xed\xaf%\x93\x7f\xbd\ -\x9f\xf1\xc0n\xc3h-{\x0a\xc0\x11\x96\xdb'[\xa9\ -\x0e\x13\xf1\xca\xe0\x95\xf8j\x04_\x0b\xc9z\x01\x89+\ -\x00!\xd8\xaf<\xee*\xa6\x94\xf9\xb7\xc0\xb6J\xc0\xc1\ -\x84\x8b}\xaeD\xdbO\xae\x13\x10\xe2\xd2\xe3 \xec\x9f\ -\xc5_\x8d\x05\xca\x85\xd8\xfd\xcfT\xeb\xe9\xaa\xf5\x8dx\ -\x9a\xdb6\xb5(\xa8tT\x80TP\xa81\x22\x15\xaf\ -2\x9aD\x8b\xe1\x13{&3\x87f\x91\x0a\x84\xe0\xdf\ -\x14*\xecN\xebd\x9f\x82\xb2\xdc\xba\xa9\xb5\xee\x03;\ -\xfa\x8d%\x0e\x01\x92T\x00\x89~>\x03\xdb7\x1bv\ -n\xce\xc6\xfd\xbe\x1c\xbbG|\xf6\x8c\xf8\xa9\xad\xb1P\ -\x01\xc7\xe3eBpK\x92\xd7MT)\xeb\x90-\xd2\ -\xe5\x9b\x0b\xd5\xf4\x8c\xc1\xdeQ\x9f\x1d\xd5\xf4]\xff.\ -\xd6\xc6!@V\xd6\xd3k\xa4\x84[g\x0c\xe5b\xb6\ -?\xa3\xdb\x99\xf5\x98V-\x88r\xa1Pa\xbb\x90|\ -\xfd\xd8\xd6\xe4\xc2\x80D\x04q\xd5\xd6\xdf\xd7xe\x9e\ -\xed\xa5\x90o\xe9N\x8b\xb9e\xbc\x85\x93r\xd6\x7f5\ -q#P\x06\x87\xdb\xf7\x00k\xa1V\xb1\x1c\xdcc\xb2\ -0\xdc\xe9\xcak\x056\x95\x22\xf6\x8f\xa57D\xa4P\ -E)\x87\x7f;\x7f\x82\xc9\xa4\xae\x99\x98%6\x9a\x82\ -T|c\xb1B%\x8d~\x7f\x01\xdc<\xe6\xb3)c\ -\x93c\xb5\x89\xb7\x01\x87\x11ka\xcfv\xcb\xe6M6\ -\xd5\xca\xbf\xf5\x12\xbf#m\xb6\xa4\x94\x1cv\x0a\xe0\x16\ -y\xa6\x80\xe7A2^@b\xa2(\x04{\x1c\x8f\x17\ -\xa5q\xb0g|\x90D\xc4\xcch;S\x96\xa8{&\ -`\xdb'\x13\xf3\x0f{\x8d\xe3\xc4\xc9\xbfB\xea=\xa7\ -\xeb\xa3\xbb=|p\xbc\x85+\x93W\x01R\x81We\ -L*\xee\xd2a2[\xf4}W\x003\x87f\x91\x0e\ -\x08\xc1+\xbd\x12\xbb\xd3(\xfcQ\x02\x0eL\xb4S\x8b\ -\xef\xae\x84\xd6\x02?H\xeeL\xc0\xa4\xb0\x166\x8dZ\ -n\xde\x95\xed\xe4\xdf%\xeb\x06v\xd6\x02\xb6U\xd2\xf1\ -\x02\xbc2(\x8f\x97\x0a\x99\xcc\xf0\xd0D<\x80\xa8M\ -M\xba\xbc\xb2P\xc5I\xfa\x90\x0f\x0b\x8c\x15\xa2\xf8\x04\ -\x9fd/\xbd\xbe{\xa3\xe3s\x01\x87\x0d\x0b\xec\xbb\xc9\ -01\x9a\xbd\xbd\xff\xabQP\x96\xfd\xe3\xedT\xb6\x05\ -\x1d\x0f\xdc\x22{\x85L&\x0c\xe8\xab\x02X\xa9\xfc\x93\ -\xecw<\xeeLc\xdc\x97\x14q\xec_\xcb\xd8\xd1Q\ -]\xc2h8\x15@\xc1\x85\xdbf\x0cN\x16\xb5\xeeU\ -\xb0\xc0\xf6j\xc0\xd6J\x90\xf8;#\x04\x14*T\xa4\ -\xe2\x95:\xa4\xef\xa5r}\xf7\x00\x84\x04!x\xaeW\ -b:i\xf7\xbf\x1b\xfb\xef\xce\xd0A\x11\x17\xdc\x1b\xe2\ -\xf8\x7f\xd8\x14\x80\xb1\xb0u\xca\xb2{\xfb\xe0Y\xff.\ -\x9e\xb4\xdc<\xea\xe3\xa5\x90\x0bp\x8b\xa0\x5c\x9e+$\ -\xdb\xa0\xbf^@\xdf\x15\x80\x0e(I\x87\x97\xba\xa5\xe4\ -;\x0f\x05q\x81G\xd6\x0e\x8e\x5cM;H\xf6P\xd0\ -$\x10\xc0-\x09\x8f\xfd\xea5\x16\xd8Z\x0d\x99,E\ -\x89\x17i\xa98\x0c\xd8'$\xcf\xee\xf7\xb5\xfa\xa6\x00\ -V\xed\xfd\xeft<\x9e\x9d\xb4\xfb\x1fgt5\xbb2\ -\x1a\xfbw\x09\x02V\x86l\x0c\x03\xd6B\xb5l\xb9e\ -&\xfb{\xffW\xa3\xa8\x0c\xbbG|T\xc2\xdb\xd6B\ -\x80W\xa2,%_\xa7C\xfa\xda?\x99D\x08\xf0\x1c\ -\xa7\xc8\xce4\xb2\xff;k\x01\x13=<\xc1\xb7\x1f\x04\ -\x11\x89v\x02\xf6\x1bkagg\xec\xd7\xa0\x7f,\x01\ -\xec\xa8\x06TS\xe8\x18uK\xa0\x5c\x9e'$\x9b\xfa\ -y\x9d\xbe*\x80\x85\xa7\x10R\xf2\x1c\xafH1i\x0b\ -WT\x96=#\x01*\xe3f\xa8\xd5\x16\x89\x9e\x0a\xdc\ -o\x94\x8a\x93\x7f\xa5\x0c\x1c\xedv\xa3t\xabGwT\ -\x93\xf7\x22\x95\x07N\x81\xfdBp+\xf4/\x0f\xd0W\ -\x050:\xcd\x98t\xb8\xd3Ix\x14\xbb\xb50Y\x0a\ -\x99,e\xa7\xe6\x7f\xcdu\xd29\x11(\xcb\x8b\xbc\x96\ -\xcf\x93\xa1\xb1_\xbdB\x89\xd8\x93\xf4\x12\xde\x12\x94\x12\ -\xdc\x12\xe3B\xf2\xdcR\x1f;g\xfb\x1b\x02\x08v9\ -\x1e\xfb\x92\x9e\xf7/e:\x0f\xedZ\xb1\xc4\x1e\xc00\ -)\x80\xbd;m&\xc6~\xf5\x92\xa9r\xc4\xa6b\xf2\ -\xc9@\xb7\x88\x94\x0e/h,\xd0\xb7\xfa\xd9\xbe(\x80\ -\x99C\xb3\xdd\xa3\xa0\x9e\xed\x14\xd8\x9c\xe4\xd0\xcfn\xf2\ -/\x0d\xb7\xed\x9a\xd7:d\x9d\x80\x9e\x0b\xcf\xb8Yg\ -f\xecW/\xe8\x9e,\xb4\xbd\x1a$\x9e\xa8u\xe3\ -\xd0\xf2\xaf/\x07!\x80\x83{\xec@\x8f\xfd\xba^*\ -\x8e\xa1\xa0\x0c\x81Q\xc9X9\x01RQ\x80\xd8\x03\xe8\ -%=W\x00\x02J\xd2a*\xd1\x1d\x00\x11\x0fnP\ -\x03P\xff\xdf\xc5\x00-\xbf\xbf\xafO\xd7\xda\x97K\xb0\ -k\x8b\xe1\x19\xfb\x0c\x07\xf6\x18\xa6\xc7-\x87\x8fH\xcc\ -u& \xe3\xb1_\xb1\xfb/\x18\xee\xe2\x9f\xb5(:\ -\x86\xa2cYN\xb0$@*\x5c)\xe3\xceZ\xdd\xc3\ -\x14D\xef\x15\x80\xa4&%SI\x96\x00K\x015o\ -\xb0^Fc\xa1\xd5\x8e\xd7\xdbK5\xd0\xb5\xf6\x8e\x82\ -\xc9\xb1x8\xc7\xed\xfb\x0c\xbb\xb6\x1a*\x9d\xac\x8c\x00\ -Z\x9dY\x84\xd7u\x0d\x0b\xbb\xb6\x1a\xb6M\x0d\xfe\xd8\ -\xafk\xfe\xec\xc4\x05g\x15\xc7p\xa6\xd7\x0f\xef\x0aH\ -\x85\x14\x92\xe9_{5\xfc\xc4=\xbd\xfb\xb9\xbd\xdf\xbd\ -\x15T\xa5C%\xc9\x12`GX\xaa\x09o\xcd\xdc(\ -\xc6t<\x80\x1e\xbdD]k_,\xc0\xce-\x86;\ -\xf6\x1bn\xd9k\x98\x1c\xb38\xb2\xa3\x18V}\x7f\xb3\ -%\xae;\xff\xd0\x1d\xfbU\xf4\x06G\xe1\xf6\x12%-\ -%7\xc1\xfd\xdb8\x07\x80\x90l\xfa\xe1\xdfGV'\ -{\xa7w{\xa6\x00V\x0e\x01\x11\x8c\x0aI%\xa9\x9b\ -c\x01GZ\xca\xee`\xd9\xa2\xf8T\xe0\x1b\xff\xec\xd6\ -\x82#a\xbc\xb3\x1f\x7f\xc7~\xc3\x9e\xed\x86j\xe9\xfc\ -\xf7\x985\xfe]\xbdu}\xa3\xc8\xac\x85\x89Q\xcb\xfe\ -\xdd\x83u\xbf{\x89\x00*\x8eN.\xcb\xdd\xcd\x13\x09\ -\xc6\xbd\x0a\x0e\xd0\xb3\xe3d\xfb\xe3\x01H\xbc$=\x80\ -\x82\xb2\xa9\x1c\xe0p#X\x0b\xc1u\xc6\x90\x17\xc7\xf6\ -\xb7\xddl8\xb0\xdb05nq\xd5\xa5\xd6~\xad\x7f\ -\xdf\x1dEv\xad\xcf\xc9Z\xd8\xbb\xc309\xbe\xf1\x92\ -\x7f]\x04\xe0)\x9bh\xc8)\x14H\xc9\x88\x94xd\ -U\x01t^\xa6\x11\xa1\xfa\x7f\xa4\xd1\x0a\x16\x0a\xca\x0c\ -\xd4\x0e\x80 \x8e\xbf\x83p\xfde\xc0\xd6v\xbc\x9dN\ -l\x7fpO'\xb6\xdf\x12w\xe1un\xc5\xba|C\ -\xcb\xf9Qd\xd7\xaa\xa7=\x17n\xdfgp\xe5\xfa\xae\ -5\xac\x94\x1c\x83\x14\x16m\x93\xb1tB\xc4\xf95!\ -)\x00\xf5^\xfd\xdc\xdez\x00\xb1J,\x0a\x91|\x17\ -\xe0 \xed\x00@,\xfc~xu\x01\xecZ\xfbJ\xd9\ -\xb2{\x9b\xe5\xf6}\x86\x037\x196\x8dZ\x94\xbc\xba\ -\xb5_\x0b\xa3\xa1}\x1d\xf9\x07\xd3\x1d\xfb5\xc0G~\ -\xf5\x8a\x82\xb2H\x01:\xa1\x1b\xd1\xa9\xb0-Ao\x8d\ -kO\x15\x80T`,U!\xfb{\x9a\xc9\xc5\xb8\xca\ -\x0e\xdc\xc9:~\x10\x9f\x0a\xb4\x16]k\xef\xaaX\xe0\ -n\xd9k\xb8\xfdf\xc3\xce-q\xe2\x0d\xd6o\xed/\ -\xa6\xdb\x85\xd8ls]I\xac\x83{\x86s\xec\xd7\xb5\ -\xe2J\x8b\x92\x96\xd0$\xf4\xe2\xc5\x0a\xa0\x8c\xa0\xa7=\ -\x81\xbd\x0d\x01$ pE\x92CnD\xfc0\xc4\x00\ -\xbd\x92\x02h\x07\xf1H\xb0\xd5t\xad}\xb5\x1c\x1f\xac\ -y\xc7~\xc3\xfe\x9b\x0c\xe3#\x16%b\x81\xef\xc5\xa7\ -\x0c\x22A\xdb\xbf\xf6\x87T.\xc4{\xff\x92\x8d\xed\xfe\ -C\x9cx\x96\xf4~\x1b\xf7r\x08\x01H\x5cAo\x8d\ -ko=\x808.tIx\xca\x95\x12\x83\xe7\x01h\ --V\x1a\x81\x8c\x89\xdbj7OXn\x9d\x89c\xfb\ -\x1d\x9b\x0dE\xf7\xbc\x8b\xdfK\x81\x8b\xa2\xb8\x0c\xf9Z\ -0\x06\xb6o\x1e\xee\xb1_\xd7\x82\x12\x16\x99p\xd8)\ -b\xf7\xbf\xa7\xb3\x01{\xeb\x01(@$\xdf\x1b\x92\xf4\ -\xe1\x8d\xbd\xc0\x98\xce\xd1S\x958\xb6\xbf\xe3@\xc7\xda\ -\xd7\xe2\xd8\xd2\xd0?+\x1bF\x10^\xa3\x02\x902\xde\ -\xfb\x1f\xf6\xb1_\xebE\x88\x1b\xeb\xa5\xb8\xf6\x0b\x82\x90\ -\x08z\x9c_\xeb\xa9\x02(T l\xe1$\xed\x01\x08\ -\x06\xab\xa7\xde\x12+\xadW\xbc \xe2\xe0\x1e\xc3\xd6I\ -K\xa1O\xd6\xfeb\x04q\x01Rx\x0d\xe5\xa4\xd6\xc2\ -h\xd5r`\xcf`U[\xf6\x13)R9\xd1Y\xd1\ -c\x99\xed\xe9\x0f\xeb\xc4\xb0\x89\xdf\x96A\x8a\xff!\x16\ -\xa0\x1d[\x0c\xbb\xb7\xb3\x12\xdb'\x19S7\xdb\x10i\ -\xb1\xee\x17\xd8Z\xd8\xb3cc\x8c\xfdZ?6\xf9\x11\ -\xe8\xa2\xf7\xb6\xae\xa7\x9f\xc1\xc41m\xe2\xd28\x88\xe3\ -(]'\xb6 i\x08T\xab-\xaei\x10\x89\xe3\xc4\ -\xee\xffF\x19\xfb\xb5>R1;\x19W\x00\xb1[\xa9\ -m\xc2\xbbD\xddm\xb3\x9c\xf5\xd1\x1dE\xb6\x1e6\xe2\ -\xd8\xaf\xf5a\xd31;=\xbehO\x15\x80\x8e\xfb\xdb\ -\x13?\x93;\xa9j\xaca`\xa5\x0ap\x9d\xcf\xc8\xda\ -\x8d5\xf6k\xbdX\x9b\xc24'\x8b\xa1\xc7QXo\ -\x15@\xecV\xb6m\xc2\xa1\xa26\xd7\xd7\xd8\xb2\x111\ -@\xa3\xb5\xfe#\xc9\x8b\x85\xd8\xfd\xdfHc\xbf\xd6\xc3\ -\xf5T`\xde\xe8\x05;r\xd5\xd3\xb6\xd7\x9e*\x00\xab\ -\xc1Z|\x924\x16\x16B#\xd2r\xc8\x06\x0ec\xa0\ -\xd9Z\xe7\xf7Z\xd8:i\xb9i\x03\x8e\xfd\xba\x1a\xc6\ -\xa6\xe2yFXz:\x86\xa4\xb7\x0a .UkX\ -\xd3[-u5B3\xd8\xc35\x93\xa4;\x87`=\ -\xb7K\x00\x07\xf7\x9a\x0d9\xf6\xebj\xe8\x84\xdf9k\ -\xc1\x1aB\x0b=\x1dI\xdc[\x05\x10\xff\xc7O4\x04\ -\x10\xb1\x02\xd0f\xf0\x0f\xd9\xec7\xdd.\xc4\xb6\x7f\xf5\ -\xef\x8d\xc7~\xd9\x95\xb1_9\x17\xe2k\x99\xf8;g\ -->d\xd8\x03\xe8\xc4)K\xc6\xf4\xae_y=\x04\ -Z\x10\xe5&j]\x84\xa1\xa0\x1d\x5c\xfd\xb5\x8d\xc7~\ -Y\xb6Nn\xbc\xb1_\xeb\xc1\xd7\x22\xb1N@\x88\xbd\ -kkh`Yg\x00\xb7>\xfaQ\xcb\xd0\xb0\x86 \ -\xc9\xa4\x5cd\x04QR]Y\x03N\x10\xc5\x9d\x88W\ -\xbb[\xdd\xb1_\xa5\xbe\x9cJ?\xf8\xb4\xb4\xc4$\x98\ -\x03\xb0\xb1qm\xda\x1e\x1b\xd7\x9e+\x00k\xa9[C\ -3\xa9\xa0Q\x00\xa1\x91\xb4\xa2\x01l\x08H\x18A\xdc\ -\x82|\xb5Qd\xd6\xc2X-\x1e\xfb\x95;V\x97b\ -\x81F(\x13\xbd7\xd6\x80\xd5\x9c\xb36\xa3\x0a\xe0\xc8\ -\xddo\x8e\x17j\xa9\x9b\x88f\xa2\x1e\x80\x85v\xae\x00\ -\xd6\x85\x1f^\xda\x86|1\xd6\xc2\xcc\xce\x8d=\xf6\xeb\ -J\x18\x0b\xf5@%\xba\xf5\xdc\x09\x01\xceEA\x96s\ -\x00\x00\x86\x86\xb5,\xda\x04\x03Gm\x04\x8d\x5c\x01\xac\ -\x8b\xb6/\x88\xf4\x95\x1bY<\x17\x9e\xd1\x19\xfb\x95s\ -)\xa1\x914B\x99h\xd7\x8b\x89\xc0ZN\x9d\xf8\xbe\ -\x0c\xd7\x01\x00X\xf0\x8df>\xc9#\xafb\x97L\xe5\ -\xd6j\x1d\xb4\xdaW>\x90\xd4Z\x98\x9e\xb0\xec\xc9\xc7\ -~\xad\x89 N\x006\x1368Z\xa3\x8d\xe1\xe4\x81\ -\xf7\xf7\xf6\xe7\xf6\xfcS\x98\x88\xb65\x9c\xb2IV\x02\ -XX\x0ad^\x12\xbc\x0e\x9a\xed\xab\x9f\x07\x90\x8f\xfd\ -\xba2\xcdP\xe2k\x99\xe8\x16\xa0\x89\xf0\xad\xe1\xc9^\ -\x9e\x0a\x04}P\x00\xdbo'4\x9a\x13\xbd^\xe8\x15\ -\x11\xb1\x07\x10\xe8\xbc\x16\xe0JXb\x0f\xe0r\x05,\ -\x16(\x15\xcf\x8f\xfd\xcaY\x9b\xe5P%7\x0b\x90\xd8\ -+\xd3!M,\xa7z\xfd\xb3{\xfa\x9c\x8f\xdc\xfdf\ -\xe6\x9e\x00k8a\xa2d\xab\x01\x1b\xa1\xa4\x19\xe6\xaf\ -\xed\x95\xb0\xc4\x1e\xc0\xe5\x92W\xd6\xc0\x8e\xcd\x86\x1d[\ -\xf2\xec\xff\xe5\xb0\xc0B[%^\x03`\x22\xe6\xac\xc9\ -\xb8\x02\x80x&\x80\xb5\x9c\xd0\x11\xeddnOg{\ -K\x0b\x16\x83D\x87\x11\x0f\x1c\xc6\xc4\xc3@.\xf7\xee\ -J\x09\xb7\xee5\x94\x0by{\xf5\xe5\x88\x8c\xe0\x9c\xef\ -$z\x83\x8c\x06\xa39k-\xe7\xe0\xfc\x8e[/\xe8\ -\xbd\xc9\x8c\xdb\xa4N\x99\x88F\x92;\x01\x91\x15\xcc\xb5\ -\x9d\xfc\xc5\xbd\x02\xda\xc4\xc3@\xd6\xc2\xdax>aw\ -\xecW\xce\xa5\x08\xa0\x19I\xce\xf9*\xf1\x1d\x00\xa39\ -jt\xef\x0e\x04\xe9\xd2\x17\x9f\xd9\x1aN\xe9\x90SI\ -*\x00\x80\xb3-\x07_\xe7\xaf\xefZ\x08\xba\x8d@k\ -\xff}|\xe4W>\xf6\xebj,\x07\x8aV\x94l\x02\ -P\x87`4O|\xe3\x1bz_b\xdf\x1f\x05`9\ -g4'\x13M\x04\x02\x8b\xbeC#T\xb9\x05\xbb\x0c\ -a\xe7<\x80\xb5p\x1c\xb8\xed\xe6|\xec\xd7\xd58\xdb\ -r\x12M\x00\x02\xe8\x80\xd0\x1a\x1e\xfa\xc8{{\xeb\xfe\ -C\x9f\x14\x80\x89h\x98\x88#\xba\xa75KWF\x00\ -\xadH0\xd7\xca\xdf\xe0\xcb\x11\x84\xacy\x1c\x99\xb5\xf1\ -y\x83\xf9\xd8\xaf+\x13Y\xc1|\xdbI\xbc\x020\x0a\ -X\xb2\x86\xc7\xfa\xe1Q\xf7E\x01\x94F\x89\x8c\xe6\xe1\ -(Hv' \xb2\x82\xd3-7\x9f\x0dp\x19\xba\x0a\ -\xe0b,\xb0\xef&\xc3\xc4H\xbe\xf7\x7f9\x04\xf1\xfe\ -\xff\xd9\xb6\x93l\xfc\xafA\x87\ -\xfe\xd7\x11\x8fY\xcb\x5c?~~\x7f6\xce\xe3\xe9%\ -\xc7\x22\x9f\xa7M\x82y\x00\x01,\x05\x8a\xf9v\x1e\x06\ -\xac\x85\x1f\xc4\xe7\x01\xac~\x83W\xc6~m\xcd\xad\xff\ -\x950\xc0\xc9\x86\x9b|\xfc\x1f'\x00\x0f\x1f}\x0f\xcd\ -~\xfc\xfc\xbeU\xceX\xc3\x09\x1d\xf1P\x92y\x00\x80\ -\xc0\x08\x9ejx\xf9\xcb\xbc\x06\xad6q#\xd0\xaa?\ -\xcb\xc7~\xad\x0f?\x92\x9cN!\xbf\x14\xb6\x09\x8c\xe6\ -\xf0\xcdo\xe8\xcf\xcf\xef\x9b\x02\xf0\xeb4u\xc4\xe7C\ -?\xf9\xf7\xea\xe9\x86K3aWm\x10h\xb4.\xec\ -\x038?\xf6K\xe7\xf7\xea\x0a\x08`\xae\xedp\xcew\ -\x92\xad\xff\xd7\x10\x05\xccay\xd0\xda\xde\xef\x00@\x1f\ -\x15@y\x1ck\x0d\x9f\x8b\xda\xc9\xce\x06\x10\xc09_\ -q&\xdf\x0d\xb8\x80\x95>\x80\x8b\x14\xc0\xae\xad\x96m\ -S\xf9\xde\xff\x950\xc0\x93u\x8f \xe1\x1a\x13\x1d\x82\ -\x0ex\xd4Z\x8e\xf6\xeb\x1a}Q\x00+\xc3A\x0c\x87\ -C\x9f\xe3I\xe6\x01 \x0e\x03\x9e\xac{\x89\xd6k\x0f\ -\x02-\xff\xc2>\x00\xa5\xe2\xe4_\xd1M{e\xd9E\ -\x10\x0f\xff8\xbe\x9c|X\x19\xf9\xa0#\xee\xd7!\x0b\ -\xfd\xbaF\x7f\xbbg,'u\xc8\x03\xd1:\xa6\xd0\xf6\ -\x9a\x93\x0d\x8f\xe5 /\x0a\xeab\xec\x85}\x00\xd6\xc2\ -\xf8\x88\xe5\xc0M\xf9\xde\xff\xd5x\xba\xe9\xb2\x1c$\x1f\ -R\x86m|\xa3\xf9\xac[\xea\x9f\x83\xd6W\x05\xe0\x16\ -i\x9a\x88O\x84\xedd\xeb\x01\xba\xbb\x01'\x1a\xf9D\ -\xcb.\xda@\xb3%V4@w\xec\xd7\xa6|\xec\xd7\ -\x15\x09\x8c\xe0\xe8R\x81(\xe1Y\x13FC\xe4s\xd6\ -\x1a\xbeL\x9f\xe2\x7f\xe8\xb3\x02\xd0\x11X\xc3\xbdA\x8b\ -9\x93\xa8\x0a\x00m\xe1\x89%/\xef\x0d\xe8\x10\xe9N\ -\x1f@\xe7vxn\xec\xfe\xe7c\xbf.\x8f\x00N7\ -]\x9en$\x9b\xfc\x83\xd8\xfd\x8f\x02\x1e\xa0\x8f\xf1?\ -\xf4;\x04 \xce\x03D\x01\x0f\xe8DO\x0a\xe8<\xbc\ -\x96\xcb\xa9\xa6\xbb\xe1\xc3\x00\x01h}\xfe<\x80\xee\xd8\ -\xaf\xbd\xf9\xd8\xaf+\xa2-<\xb6X\xa0\xad\x93\xd7\x92\ -A\x0bt\xc8\xa7\x1e\xffE\x16\xfby\x9d\xbe}\xb2\xae\ -\xcb\x12\xfa,\x98\x90\x7f\x0dzz\x9c\xc1\xfa\xf0u:\ -\xee[\x16\x89\xf4\x85\xe7\x01\x1c\xc8\xc7~]\x11\x01,\ -\xf8\x0e'\xea\xc9gH\xad\x81\xb0\xc5\xbc5\xfc\xe3\xcc\ -/\xf6\xf7Z}Wm\x85\x0a\xd6h\xfe1h%;\ -)\xb8\xcb\x93u\x8f\xf9v\x9e\x0c\xf4\x83\xf8L\x80\xee\ -\xd8\xaf\xdb\xf2\xb1_W\xc4\x10[\xffz\x0a\xdd\xa5Q\ -\x00\x91\xcfW\xac\xe50\xf4/\xfe\x87\x04\x14\x00\x80\xb5\ -|!l\xf3`\x94B\x18\xd0\x08%G\x16\x8b\x1bz\ -KP\x10\xc7\xffA\xf6\xebr\ -X\xe0\xf1\xa5\x02K)l#\x1b\x03~\x83ec\xf8\ -\xb8\xd7\xc7\xed\xbf.\x89x\x00n\x11c4\x1f\xf1\x1b\ -\xc9\xef\x06\x08\xa0\x1e*\x1e^(n\xe8\x5c@\x10\xc4\ -y\x80\xd1\x8a\xe5\xc0\xee\xbc\xee\xefr\x08\xe2\xae\xbf#\ -\xe7\xd2\xb1\xfeQ\x1b\xc26\xf7[\xc3\xbfB\x7f\xdd\x7f\ -H@\x01\xac:2\xec\xf3\x91\xcf\x97\xa3\xc4F\x85\x9e\ -\xc7\x02\xc7\x96\x0a\x9cin\x5c/\xa0\x1d\x08\xb4\x86=\ -;,\x9b7\xe5\xc9\xbf\xcb\xa1-<\xbcPL\xc5\xfa\ -\x03\xf8\x0d\xd0!\x7f\xff\xf8\xcf\xf4\xdf\xfd\x87\x84<\x00\ -\x80\x93\x0fpV\x87\xfc\x8d\xdfH\xb6(\x08:\xb9\x80\ -H\xf2\xc0|iC\xd6\x05X\xe2a \xdd\x13\x7f\xf3\ -\xb1_k#\x803-\x97\xa3K\xe9X\x7f\x13A\xd0\ -\xe4\xa45\xfc\xdd\xcc[\xfbo\xfd!!\x05p\xe4\xee\ -7\xb3\xfd\x0e\xb0\x86\xbf\xf7\x9b<\x95t\x8b0\xc4\x0f\ -\xf7\xc9e\x8f'\x96\x0b\x1b\xd2\x0b\x10\x02&\xc7\xf3\xb1\ -_W\x224\x82\x87\xe6\x8b\xd4S\xea$\xf5\x1b\x10\xb6\ -\xf9\x14\xf0@R\xd7Lt'\xc8Z\x0eG>\xff\x90\ -F2\x10\xe2\xb2\xce\x07\xe6J,o\xc0V\xe1\xa2g\ -\xb9e\x8fa|4w\xff\xd7B\x00O,{\x1c]\ -J\xc7@X\x03~\x9d\x86\xd1\x1c\x12\xb2\xf7\xe3\xbf/\ -G\xa2\x0a@*\xdaF\xf3\xa1\xf62\xf54j\x02\x04\ -p\xb6\xed\xf0\xd0|i\xc3m\x0bN\x8e[\x9euP\ -\xe7c\xbf\xd6\xa0\x1b\x22>8_\x22Hx\xe2O\x97\ -\xb0\x0dA\x8b\x07\xb0\xfc3$\xe3\xfeC\x82\x0a`U\ -\x8b\xf0?\x85m\xbe\x10\xa6\x90\x0c\x84\xb8+\xee\xe1\x85\ -\x22'\x1b\xde\x86\xf1\x02,q\xe9\xef\xf6\xe9\xdc\xfa\xaf\ -\x85\xb1\xf0\xd0|)\xbd\xb2q\x0b\xed:F\x87|\xf0\ -5\xdf\xc6SI^:\xf1b\xb0'?\xcfi\x1d\xf2\ -\xc1\xf62Q\x1aoc\xf7t\x97/\x9c)\xd3\xd8@\ -\xc3C\x0b^<\xfb?\xe7B\x04p\xaa\xe9\xf2\xd0B\ -z\xc5b\xa1\x0f\xfe2G\xac\xe1\x83\xef\xbd'\xd9k\ -'\xae\x00v\xdd\x09\xd6\xf0!\xbf\xc1ca\x0as\x02\ - ~\xe8'\x9b.\x0f\xcf\x17\xf3\x11\xe2\x1b\x98\xb8F\ -D\xf2\xf93\xe5\xc4\xa7\xfd\xae\xc6o@\x14\xf0W\xd6\ -\xf4\xbf\xf4\xf7b\x12U\x00\xabj\x02\x1e\x8d|>\xe0\ -\xd7\xd3\xf3H\x8d\x85\xc3\xf3%\x9e\xa8o\x9cP \xe7\ -Bt\xe7\x1d8\x91\xe2;\xa0\x03h/\xf3\xb45|\ -@:\xc9o\x91'\xee\x01\x1c\xb9\xfb\xcdHEd\x0d\ -\xefo/\xf3T\xd2\xfd\x01]V\x87\x02\x8b\xf9\xe4\xa0\ -\x0d\xc9\xd1\xa5B\xec\x05\xa6\xb8\x86v\x1d\xa26\xff\x1b\ -\xf8\x1c$k\xfd!\x05\x05\xb0\x82\xe5\xfe\xc8\xe7\xaf\xdb\ -\xcb\xa9\xad`e\xe0\xc3\x17\xce\x94S\xcb\xfe\xe6$\x8f\ - >\xe3\xef\xbe\xd3\x15Z:=\xd7_\x87\xd0Z\xe2\ -\x94\xd1\xfc\x89\x90\xa4\x92\x16OM\x01\x08\x85o\x0c\xef\ -n/q\x22-/\xa0\xcb\x91\xc5\x02\x0f\xcd\x17\x13=\ -\xf3-'\x1d\xbaq\xff\xe7NWX\xf0\xd3\xf5\xfc\xda\ -\xcb\x10\xb5\xf9\x08\xf0iH\xde\xfaCJ\x0a`\xe5\x83\ -Z>\x13\xfa|\xa0\xbd\x94\xc6*\xce\x13\x1a\xc1\x17\xcf\ -\x96y2\xcf\x07\x0c5\x82\xb8\x18\xec\xfe3\x15\x9e\x5c\ -N\xf7YG\x01\xb4\x169e\x0c\xef\x12\x92\x14\xc6\xe5\ -\xc4\xa4:\x13BH|\xabyWk\x89\xc7\xd3\xaa\x0b\ -\x80\xf3\xf9\x80\xcf\x9e\xaap\xa6\xb5q\x1b\x86\x86\x1dm\ -\x05\x87\xe7J<\xba\x90N\xad\xffj\xda\xcb\x10\xfa|\ - \xe9\xc2\x9f\x8bIM\x01\xac\xfa\xc0\xf7E>\xf7\xb4\ -\x16I\xd5\x05\xef\x9e\xfe\xf2\xd9S\x95\xd4:\xc1r\xfa\ -\xcb\xa3\xe7\x0a|\xe1l9\xf5\xb6\xf0\xc8\x87\xf6\x22'\ -\xac\xe6\x9dB\x92\xd2fxL\xeaS\xa1\x84$\xb2\x86\ -w\xb4\x97\xf9B\x98R\x8f\xc0\xcaZ\x80\x13u\x8f\xcf\ -\x9e\xaa\xe4'\x0c\x0f\x19\xc7\x96<\xee;]\xc1\xd7\x22\ -\xd5\xe7j-4\x17\xb1\xa1\xcf!\xe0^H\xcf\xfaC\ -\xca\x0a`Uy\xf0C:\xe4\x1d\x8d\x05\xfc\xa4\x07\x86\ -\xac\xc5\xe3K\x05\xee\xcd\x95\xc0P\xd0U\xea\xff\xfat\ -5\xb5.\xbf\xd5\x84-h/\xf1\xa05\xfc\xa1\x90\xa4\ -\xd0\x17{!\xa9{\x00G\xee~3\xd2\xc1Z\xc3\xbb\ -\xfd\x06\x1f\xf7\x13\xeb\x83\xba<\xd6\xc2#\x0bE>w\ -\xbaB;e\x8b\x91sc<\xd5p\xf9\xf4\xd3\xd9\x08\ -\xeb\xac\x81\xe69\xb4\x0e\xf9\x93(\xe0AH\xd7\xfaC\ -\x06\x14@\x17!9c4oo,0\x97\xf6\xb6 \ -\xc4\x0d4\x8f,\x14\xf9\xec\xa9*\xad\xdc\x13\x188\xba\ -5\x1e\x9f:Ye.#\xf3 \xdb\xcb\xd0\xae\xf3\xcf\ -\xd6\xf2n\xb7\x88M[\xf8!#\x0a`\xd5\xb6\xe0\xdf\ -\x86m\xfe\xa2y\x0e\x9b\x85=yc\xe1\xe1\xf9b\x9e\ -\x13\x180\xba\xbd\x1e\x9f\xcc\x90\xf0\xeb\x10\x9a\xe7X4\ -\x11o\x13\x82\xe3i\xaf\xa7K&\x14@\x17!i[\ -\xc3\xffh-\xf2\x85\xa0\x91\xf6jb,\xf0\xc8\xb9\x22\ -\x9f:Y\xcd\x0f\x1b\x1d\x10N6\x5c>\xf9T5;\ -[\xba\x16\x9a\xe7 h\xf1>\xe0\xef }\xd7\xbfK\ -f\x14@\xf7\x86\x08\xc1a\x1d\xf2\xb6\xc6\xc2\xc4k\xef\x02x\xccD\xec\x16\x82g\x16\xca\x90\ -\x95'\xb9\x18(\xce\xb6\x1d\xc6\x0a\x9a\x9a\x9b\x8f\xd6\xce\ -\x0a\x828\x5c{\xf4\x5c\x91\xcf<]\xcdTs\x97\x89\ -`\xf9\x0c\xad\xa0\xc5/\x0b\xf8\x1bDv\xac?dL\ -\x01@G\x09\xdc}\x97o-GM\xc8\x8bU\x81)\ -'C\xa7|\xd7C\xc5\xe9\xa6K\xc95\x8cz\x1a\x99\ -\x957m\x83\x22\x80\xb6\x16<0W\xe6\xbe\xd3\x19\xcb\ -\xd5X\xa8\xcfC{\x91\xf7Y\xcb\xaf\x0bA+K\xc2\ -\x0f\x19\x0a\x01.\xa62\xc6\xfdQ\xc8\x7fk\xcc\xb3\x9c\ -\xc6\x14\xe1\xcb\x11\x1f\x1a\xa9\xf8\xe4SU\x0e\xcf\x97\x08\ -M\xbeM\x98\x16\x82\xd8+\xfb\xe4\xc9\x1a\xf7ep\xcb\ -\xb6\xdd\x80\xd69\xbel4\xbf*`>\xed\xf5\xacE\ -\xe6<\x00\x88\xbd\x80\xda\xab\xee\x028bBv`y\ -\x96WF\x88\x8c<]A\xdc@t\xaa\xe9\xd2\x8c\x14\ -\x13\x05MAe`\xdbb\x83 \x88\xf32\xc7\xeb\x1e\ -\x9f~\xba\xca\xf1e\x0fKf\x22E .\xf7]>\ -\xcdR\xe4\xf3\xf3&\xe0o\xa5\x9b-\xd7\xbfK&\x15\ -\x00\xc0\xc4k\xefB\x08\x02kyP\x87\xcdB\xe4\xf33\x02>,2\xb6\xe5\xb7\ -\x16Y\xbd\x97\x970sh\x16k\xd9\xa7\x1c\xdeQ\x9d\ -\xe4\x85\x95\xf1\xec\xae\xde\x02J\xc0t9\xe4\xf6M-\ -vT\x03\x5c\x99\x1f\xcaq\xad\xd4C\xc5#\x0bE\x1e\ -Y\x88\xcf\xeb\xcb2:\x84\xc5\x93\xb4\xfc:\xff\x15\x98\ -E\xe0g]\xf8a\x00<\x80.\x9d\x02\xa1yk8\ -\xa2\x03^\xa4<69\x85\xb4W\xb56\x82X\x09,\ -\x87\x8a\x13u\x8f\xc5@QT\x96\x92k\xf3\xa3\xb9\xae\ -\x82\x00\x02-xl\xa9\xc8g\x9e\xae\xf0\xd8R1\xf5\ -\x1e\xfe\xaba4\xd4\xcf`\xdau\xdem-\xbf$\x04\ -\x8dA\x10~\x18 \x05\xd0)\x10B\x08\x8e\x1b\xcd\xbc\ -\x0ex\xb1S\xa4\x92\xc5\xa4`\x17A<\x86j\xae\xed\ -\xf0d\xdd\xa3\x11JJ\x8e\xa1\xe8\x98\xbc\x80\xe8\x22\x04\ -\x10j\xc1\x93\x0d\x8f{OUyp\xbe\xc4R\xa8V\ -\xfe.\xabX\x0b\x8d9h.\xf0\xd7\xd6\xf0\x93\x02N\ -#\xe2\xf7u\x10\x18\x18\x05\x00+;\x03\x16x\xd0D\ -X\x13\xf1\x22\xb7\x88+3~\xe4U\xb7n\xe0l\xcb\ -\xe5x\xbd\xc0r\xa0(8\x86\xd2\x06W\x04b\xd5\xbd\ -9Q\xf7\xf8\xdc\xe9\x0a_\x9a+3\xd7v2\x9b\xe4\ -\xbb\x80N\x93Oc\x8e\xcf\x19\xcd\x8f\x0ax4k\xa5\ -\xbeWc\xa0\x14\x00\xac$\x05\x8d\x85/\xea\x90\x92\x89\ -\xf8*\xaf\x84#3\xfeI\xba/s\xd0Q\x04O\xd6\ -\x0b,\x05\x0eJ@\xc918\x22\xdb\x96\xae\x1f\xf7\xa2\ -\x19I\x9eX\xf6\xb8\xffL,\xf8g\x07E\xf0;\xb4\ -\x96a\xf9\x0c\x87u\xc4\x9bt\xc0g\xa43X\xc2\x0f\ -\x03\xfc\xceu\x92\x82\x13B\xf2\x1b\xa5\x11\xbe\xab6\x8d\ -R\x19\xf7\x04V\xd3M\x08\x16\x95ek%`\xcf\xa8\ -\xcf\xd6rH\xd95+9\x84a\xa2\xfb\xa2EVp\ -\xceW\x1c_\xf6xb\xd9c\xae\xe5\x10\x0d\x90\xd0w\ -i/\xc3\xf2i\x9e\x0c}\xfe\x13\xf0\xfeA\xc8\xf8\xaf\ -\xc5\x00\x89\xcc\xa5\x888)\xf8\x96\xd6\x22\x8e\x10|G\ -m\x1a\x95uO`\xd5\xda\x01\xf0\xb5\xe0\xf1\xa5\x02\xc7\ -\xeb\x1e\xe3\x05\xcd\x8ej\xc0\xaeZ\xc0D1\xc2\xedl\ -!\x0e\xaa2\xe8~Fm\xa1\x19)N5\x1d\x9eX\ -*p\xaa\xe9P\x0f\xd5J\xf9\xee\xa0\x09\xbf\xdf\x80\xe5\ -\xd3<\x1d\xfa\xfc\x94\x10|\x10\x06S\xf8a\xf0\xee\xfd\ -\x05\xcc\x1c\x9a\x05\x0b\x16vJ\xc9o\x96Fyum\ -\x0a\x99\xf5\x9c\xc0\xe5\xe8\x0aD\xd91L\x96\x22\xb6U\ -\x03\xa6K\x11c\x85\x08O\xd9\x95\x87\x95e\x85\xb0\xda\ -\xd27C\xc9\x99\x96\xc3S\x0d\x8fS\x0d\x87\xa5@\xad\ -\x8c\xe4\x1e\xd4\x17/h\xc2\xd2)\xe6\xc2\x16oA\xf0\ -\x87\x90\xdd2\xdf\xf50\xa8\xcfa\x85N(\x00\xb0K\ -J\xfe{i\x8cW\xd7&\x07W\x09@G\xc0-H\ -\x01\x05\xc70Q\x8c\x98.EL\x97CF\x0b\x9a\x8a\ -cp\xa4\xbd\xe0\xe1\xa5\xa1\x14.\xbe\xbe\xaf\x05\xf5P\ -q\xa6\xe9p\xaa\xe9r\xa6\xe5R\x0f%\xa1\x19l\xa1\ -\xef\xd2\x11\xfe\x85\xa0\xc5\xcf\x09\xf8\xff\x10\x04\x83,\xfc\ -0\xf8\xcf\x04\xb8\xc0\x13\xd8-$o-\x8f\xf2-\xb5\ -)\xd4 +\x81.]\xc1\x16\x80+-E\xc70^\ -\xd0L\x14#6\x95\x22F\xbcX!\xb8\xca\xa2\x84\xbd\ -\xe4\x81\xde\x88b\x10k\xfc\xdev\xbe\x22#\xf0\xb5\xa0\ -\x19I\x16\xda\x0e\x0b\xbe\xc3\xd9Vl\xe5[\x91D\xdb\ -\xb5\x7f\xc6\xa0\xd2\x15\xfe\xb0\xc5/\x02\xbf?(\x85>\ -WcX\x9e\x0f{\xdf3\xdb}AwJ\xc9[\x8b\ -#\xbc\xa66\x85\x93\xe5:\x81\xeb\xa1\xeb\x1d\x08\x01J\ -Z\x8a\xcaRv\x0c5OS\xf34#\x9e\xa6\xea\xc6\ -[\x8cE\x15{\x0aJ\x80\x14\x16q\x85\x9d\x86\xae\xa2\ -\xb06.i66\x9e\xb2\x13\x1aI` \xd0\x92v\ -$\xa9\x87\x92\xe5@\xc5\xff\x0fca\xf7\xf5y\x81\x87\ -!z\xa9:tb\xfe\xf9\xb0\xc5\x7f\xb5\xf0?\xc4\x90\ -\x08?\x0c\xd9\xb3Z\x15\x0el\x15\x82_(\xd6\xf8\xf7\ -\xb5i\xdc,M\x14\xea5v\xf5/D\x5c\x82\xac\x84\ -\xc5S\x96\x822\x14\x94\xc5S\x86\xa2\xb2\xb8\xd2\xe2*\ -\x8b\xc0\x22\xc5\xf9\xa3\xd8\x8c\x15h\x13\xc7\xed\x91\x16\x04\ -F\x10h\x11\x0b\xbf\x16\x84V\x10\x19A\xd4Q\x0ev\ -\xb5[\xc2\x90\xbdD\x17\xe17`\xf9\x14g\x826?\ -'\xe0\x8f\x87\xc5\xf2w\x19\xbag\xb7*\x1c\x98\x12\x82\ -\xb7x\x15\xfe\xc3\xc84\xe5,\xcd\x12H\x02{\xc9/\ -\xb8\xe0i_\xb2\xd5\xb8V\xac \xd6\xfc\xe5\x86\xa1\xb5\ -\x04\xf53<\x19\xfa\xfc\x82\x80w\x22\x08\x87I\xf8a\ -\x88\x9f\xeb\xcc{f\xb1P\x15\xf0&\xaf\xccO\xd6\xa6\ -\xa8y\x95\xb4W\x953\x08X\x0b\xadE\xa8\x9f\xe5\xb1\ -(\xe0\xc7;[}z\xd8\x84\x1f\x06\xb0\x12p\xbd,\ -\xfc\xe5G\x98\xb8\xfb\xae\x00\xb8W\x87\x9c\x0d\xdb\ -\xabC\xfe\xb3\x10|\x180\xc3(\xfc0\xc4\x0a\x00V\ -z\x07B\xe0>\xady\xff\x9d\xd8\xe5_\xda(.\xff\xc5lX\x05\x00\ -\x9d\x90\xc0\x00\x82M\xc0w\xbb\x05\xdeT\x1eggi\ -4\xf7\x06\x86\x91\xa0\x05\x8dy\x02\xbf\xce\xdf\x19\xcd\xaf\ -\x09\xc1\xa7\x19\xd2\xfd\xfd\xf5\xb2\xa1\x15@\x97\x99C\xb3\ -\x00\xcaZ\xbeV*~\xa2P\xe5\xe5\x95q\xbc\xdc\x1b\ -\x18\x0e\x8c\x8e\x0b{\x9a\xe78\x11\xf9\xfc\x9e\xb5\xfc\x11\ -\x96S\x1b!\xcb\x7f5r\x05\xd0a\xe6=\xb3\x98\xb8\ -\xc9fZ\xc0w;\x05~\xa44\xc6\xee\xd2\x08\x0c[\ -C\xd1\x86\xc1\xaeX\xfd\xb6_\xe7\xc3\xc6\xf0;\xc0'\ -\x80h\xa3\xc5\xfa\x97#W\x00\x17\xb1\xf7=\xb17\x00\ -\xa3#\xfe\x02\xcb\xc7\x80\xa7 w\xf5o\x94\ -\x5c\x01\xf4\x90\x8e\x22\x90\xc0v\x04/S\x8a\xff\xcb)\ -\xf2\xb5\xc5\x1a\x9b\xbc28\x85\xdc+X\x0f:\x8a\xdd\ -|\xbfA\x104\xf9\x8a\x0e\xf8\x98\xd1\xfc\x15\xf09`\ -\xc1Zx\xfcu\xb9\xe0\xf7\x82\xfcu\xec\x03{\xfel\ -\x16\xe5\x82\x8e\xa8\x09\xc1\xf3\x84\xe2\xdf:.\xafpK\ -\xec+T(w\xbd\x82\x5c\x19\x9c\xc7h\x88\xda\xe07\ -1A\x93\xa7#\x9f\xcf\x98\x88\xbf\xb1\x96\x8f[\xc3Q\ -!\x88\x16\x16a\xe1\x87r\xc1\xef%\xf9+\xd8g\xf6\ -\xfcy\xbc\x85(\x04\xdb\x11\xbcP*^\xe5\x14x\xae\ -[d\x97W\xc6s\x8bq\xa9\xf1FT\x06&\x82\xd0\ -\x87\xb0\x85\x0e\x9a\xcc\x87>\xf7\x9b\x88\x7f\xb0\x86\xbf\xb7\ -\x96\x07\xdd2\xf5\xe5\x13p\xf2Gr\xa1\xef\x17\x1b\xf0\ -\xb5K\x87\xdd\xef\x9e\xc5-A\xe4S\x02v\x09\xc9\x0b\ -\xa4\xe2\xc5\x8e\xc7W;\x05vy%\xaaN\x11\x1c\xb7\ -\xd3\x898\x84O\xc6\x9a\xd8\xd2\x87m\x08\xdbDA\x8b\ -S\x91\xcf\x97;B\xff/\xd6\xf2\x80\xd1,\x08\x09G\ -\xbf#\x17\xfa$\x106\x1e\x91\xb3r\xee\xa4\xd8\x88\xa6\ -(av\xfe\xd1,\xc5\x09\x08\x9bxB\xb0]H\x9e\ -!%\xcf\x97\x0e\xcfV.\xb7\xba\x056\xbb%\x8a\x8e\ -\xd7\xf1\x0e\xd4`z\x08\xd6\xc6V>\x0a \xf21a\ -\x9bF\xe4sL\x87|\xd1h>a\x0d\xf7Z\xcb\xc3\ -X\x96\x11\xd8<\xaeO\x9e\xae\x02\xe8\xf6\xbb\x85\xb9\x02\ -H\x9e\x9d\xef\x98E\x87\x88B\x85*\x82]B\xf2\x0c\ -\xa9\xb8S*nW.{\x95\xcbf\xb7@Uy(\ -\xc7\x8b=\x84\xac)\x05k\xe2/\x1d\xc5\xa3\xb6\x22\x9f\ -(\x0a\xa8\xeb\x80\x13:\xe4Q\xa3\xb9\xd7\x18\xee\xb7\x86\ -\xc3X\x9e\x1e\xdfE\xfb\xe4\x03p\xf2\x07s\xa1O\x92\ -K\x0c\xbe\xb5\x17\x1e\x09\x93+\x80\xf4\xb9\xe9]\xb3\x04\ -MD\xa1FU\x08\xa6\x84dFH\x0eJ\xc53\xa4\ -\xc3\x8ct\xd8\xa5\x1c\xc6\x94KM\xb9x\xcaAH\xa7\ -\xa3\x18d\xe7\x0b.\x7f\xba'k\xfc9\x5c\xfe$Q\ -\xdb9\x14\xd4\xc4V\xbd\xeb\xca\x9b\x08L\x84\xd5\x11-\ -\x1d\xd0\xd0\x11gu\xc4\x13V\xf3\x15\xa3y\xd8\x1a\xbe\ -l-\x8fY\xc3\x19kh\x02\x1c{C.\xf0i\xd2\ -\x91w\x8f\xf8\x91\x86\xb9\xb4\x0f\x00\x9b\x7fw\x96\xe9\xdb\ -`\xf9\x04.\x82\xb2\x90L\x0a\xc1\xb4\x10\xdc$$;\ -\x84d\xafTl\x93\x8a-R1&\x14\xa3RQ\x90\ -\x0aOH\x1c)QH\xa4\x10H!8\x7f\xa6\xdf\xaa\ -\xf3\x01\xbbB\x8e\xc5X\x83\xb5\xf1\xff\xb55DF\x13\ -ZC\xdbh\xeaF\xb3d5\xf3\xc62g5'\xac\ -\xe1)c8j-'0\x85@`\xe3\x83\x80\x01\ -\x1f\x8b\x01\x9a\xd6\xd2\xc6\xb2d\xa1\x8e\xe1\x9c\xb5\x9c\x03\ -\xceY\xcb\x925,Z\xcb\xb25\xf8: \xd8\xf7\x0a\ -\xcc\xa7\xff'\xb4~9\x17\xf4A\xe4\xff\x00!\xbf\xbf\ -E\xaax=\x13\x00\x00\x00\x00IEND\xaeB`\ -\x82\ -" - -qt_resource_name = b"\ -\x00\x09\ -\x0alxC\ -\x00r\ -\x00e\x00s\x00o\x00u\x00r\x00c\x00e\x00s\ -\x00\x13\ -\x0f\xce\x16\xa7\ -\x00b\ -\x00t\x00n\x00_\x00d\x00o\x00n\x00a\x00t\x00e\x00C\x00C\x00_\x00L\x00G\x00.\x00p\ -\x00n\x00g\ -\x00\x08\ -\x0aaB\x7f\ -\x00i\ -\x00c\x00o\x00n\x00.\x00i\x00c\x00o\ -" - -qt_resource_struct = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ -\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00D\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x91\ -\x00\x00\x01}N\xa9\xa5H\ -\x00\x00\x00\x18\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01}N\xa9\xa5\x04\ -" - -def qInitResources(): - QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) - -def qCleanupResources(): - QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) - -qInitResources() diff --git a/src/screen_region.py b/src/screen_region.py index a43178d0..05fceb50 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -1,144 +1,145 @@ from __future__ import annotations -from typing import Callable, cast, TYPE_CHECKING +from typing import Tuple, cast, TYPE_CHECKING if TYPE_CHECKING: from AutoSplit import AutoSplit -from PyQt6 import QtCore, QtGui, QtTest, QtWidgets -from win32 import win32gui import os import ctypes import ctypes.wintypes import cv2 import numpy as np +from PyQt6 import QtCore, QtGui, QtTest, QtWidgets +from win32 import win32gui +from win32con import GA_ROOT, MAXBYTE, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN, SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN import capture_windows import error_messages +DWMWA_EXTENDED_FRAME_BOUNDS = 9 user32 = ctypes.windll.user32 -def selectRegion(self: AutoSplit): +def selectRegion(autosplit: AutoSplit): # Create a screen selector widget selector = SelectRegionWidget() # Need to wait until the user has selected a region using the widget before moving on with # selecting the window settings - while selector.height <= 0 and selector.width <= 0: - QtTest.QTest.qWait(1) - - # Width and Height of the spinBox - self.widthSpinBox.setValue(selector.width) - self.heightSpinBox.setValue(selector.height) + while True: + width = selector.width() + height = selector.height() + if width > 0 and height > 0: + break + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore # Grab the window handle from the coordinates selected by the widget - self.hwnd = cast(int, win32gui.WindowFromPoint((selector.left, selector.top))) + autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.left, selector.top))) # Want to pull the parent window from the window handle # By using GetAncestor we are able to get the parent window instead # of the owner window. - GetAncestor = cast(Callable[[int, int], int], ctypes.windll.user32.GetAncestor) - GA_ROOT = 2 - - while win32gui.IsChild(win32gui.GetParent(self.hwnd), self.hwnd): - self.hwnd = GetAncestor(self.hwnd, GA_ROOT) + while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): + autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - if self.hwnd != 0 or win32gui.GetWindowText(self.hwnd) != '': - self.hwnd_title = win32gui.GetWindowText(self.hwnd) + windowText = win32gui.GetWindowText(autosplit.hwnd) + if autosplit.hwnd > 0 or windowText: + autosplit.hwnd_title = windowText # Convert the Desktop Coordinates to Window Coordinates - DwmGetWindowAttribute = ctypes.windll.dwmapi.DwmGetWindowAttribute - DWMWA_EXTENDED_FRAME_BOUNDS = 9 - - # Pull the window's coordinates relative to desktop into rect - DwmGetWindowAttribute(self.hwnd, - ctypes.wintypes.DWORD(DWMWA_EXTENDED_FRAME_BOUNDS), - ctypes.byref(self.rect), - ctypes.sizeof(self.rect) - ) + # Pull the window's coordinates relative to desktop into selection + ctypes.windll.dwmapi.DwmGetWindowAttribute( + autosplit.hwnd, + ctypes.wintypes.DWORD(DWMWA_EXTENDED_FRAME_BOUNDS), + ctypes.byref(autosplit.selection), + ctypes.sizeof(autosplit.selection)) # On Windows 10 the windows have offsets due to invisible pixels not accounted for in DwmGetWindowAttribute # TODO: Since this occurs on Windows 10, is DwmGetWindowAttribute even required over GetWindowRect alone? # Research needs to be done to figure out why it was used it over win32gui in the first place... # I have a feeling it was due to a misunderstanding and not getting the correct parent window before. - offset_left = self.rect.left - win32gui.GetWindowRect(self.hwnd)[0] - offset_top = self.rect.top - win32gui.GetWindowRect(self.hwnd)[1] + windowRect = win32gui.GetWindowRect(autosplit.hwnd) + offset_left = autosplit.selection.left - windowRect[0] + offset_top = autosplit.selection.top - windowRect[1] - self.rect.left = selector.left - (self.rect.left - offset_left) - self.rect.top = selector.top - (self.rect.top - offset_top) - self.rect.right = self.rect.left + selector.width - self.rect.bottom = self.rect.top + selector.height + autosplit.selection.left = selector.left - (autosplit.selection.left - offset_left) + autosplit.selection.top = selector.top - (autosplit.selection.top - offset_top) + autosplit.selection.right = autosplit.selection.left + width + autosplit.selection.bottom = autosplit.selection.top + height # Delete that widget since it is no longer used from here on out del selector - self.xSpinBox.setValue(self.rect.left) - self.ySpinBox.setValue(self.rect.top) + autosplit.widthSpinBox.setValue(width) + autosplit.heightSpinBox.setValue(height) + autosplit.xSpinBox.setValue(autosplit.selection.left) + autosplit.ySpinBox.setValue(autosplit.selection.top) # check if live image needs to be turned on or just set a single image - self.checkLiveImage() + autosplit.checkLiveImage() -def selectWindow(self: AutoSplit): +def selectWindow(autosplit: AutoSplit): # Create a screen selector widget selector = SelectWindowWidget() # Need to wait until the user has selected a region using the widget before moving on with # selecting the window settings while selector.x == -1 and selector.y == -1: - QtTest.QTest.qWait(1) + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore # Grab the window handle from the coordinates selected by the widget - self.hwnd = cast(int, win32gui.WindowFromPoint((selector.x, selector.y))) + autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.x, selector.y))) del selector - if self.hwnd == 0: + if autosplit.hwnd <= 0: return # Want to pull the parent window from the window handle # By using GetAncestor we are able to get the parent window instead # of the owner window. - GetAncestor = cast(Callable[[int, int], int], ctypes.windll.user32.GetAncestor) - GA_ROOT = 2 - while win32gui.IsChild(win32gui.GetParent(self.hwnd), self.hwnd): - self.hwnd = GetAncestor(self.hwnd, GA_ROOT) + while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): + autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - if self.hwnd != 0 or win32gui.GetWindowText(self.hwnd) != '': - self.hwnd_title = win32gui.GetWindowText(self.hwnd) + windowText = win32gui.GetWindowText(autosplit.hwnd) + if autosplit.hwnd > 0 or windowText: + autosplit.hwnd_title = windowText # getting window bounds # on windows there are some invisble pixels that are not accounted for # also the top bar with the window name is not accounted for # I hardcoded the x and y coordinates to fix this # This is not an ideal solution because it assumes every window will have a top bar - rect = win32gui.GetClientRect(self.hwnd) - self.rect.left = 8 - self.rect.top = 31 - self.rect.right = 8 + rect[2] - self.rect.bottom = 31 + rect[3] + selection: Tuple[int, int, int, int] = win32gui.GetClientRect(autosplit.hwnd) + autosplit.selection.left = 8 + autosplit.selection.top = 31 + autosplit.selection.right = 8 + selection[2] + autosplit.selection.bottom = 31 + selection[3] - self.widthSpinBox.setValue(rect[2]) - self.heightSpinBox.setValue(rect[3]) - self.xSpinBox.setValue(self.rect.left) - self.ySpinBox.setValue(self.rect.top) + autosplit.widthSpinBox.setValue(selection[2]) + autosplit.heightSpinBox.setValue(selection[3]) + autosplit.xSpinBox.setValue(autosplit.selection.left) + autosplit.ySpinBox.setValue(autosplit.selection.top) - self.checkLiveImage() + autosplit.checkLiveImage() -def alignRegion(self: AutoSplit): +def alignRegion(autosplit: AutoSplit): # check to see if a region has been set - if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': + if autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): error_messages.regionError() return # This is the image used for aligning the capture region # to the best fit for the user. template_filename = QtWidgets.QFileDialog.getOpenFileName( - self, + autosplit, "Select Reference Image", "", "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)")[0] # return if the user presses cancel - if template_filename == '': + if not template_filename: return template = cv2.imread(template_filename, cv2.IMREAD_COLOR) @@ -150,7 +151,7 @@ def alignRegion(self: AutoSplit): # Obtaining the capture of a region which contains the # subregion being searched for to align the image. - capture = capture_windows.capture_region(self.hwnd, self.rect) + capture = capture_windows.capture_region(autosplit.hwnd, autosplit.selection) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # Obtain the best matching point for the template within the @@ -173,14 +174,14 @@ def alignRegion(self: AutoSplit): if width > capture.shape[1] or height > capture.shape[0]: continue - resized = cv2.resize(template, (width, height)) + resized = cv2.resize(template, (width, height), interpolation=cv2.INTER_NEAREST) result = cv2.matchTemplate(capture, resized, cv2.TM_SQDIFF) - min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) + min_val, _, min_loc, *_ = cv2.minMaxLoc(result) # The maximum value for SQ_DIFF is dependent on the size of the template # we need this value to normalize it from 0.0 to 1.0 - max_error = resized.size * 255 * 255 + max_error = resized.size * MAXBYTE * MAXBYTE similarity = 1 - (min_val / max_error) # Check if the similarity was good enough to get alignment @@ -198,26 +199,26 @@ def alignRegion(self: AutoSplit): # The new region can be defined by using the min_loc point and the # height and width of the template. - self.rect.left = self.rect.left + best_loc[0] - self.rect.top = self.rect.top + best_loc[1] - self.rect.right = self.rect.left + best_width - self.rect.bottom = self.rect.top + best_height + autosplit.selection.left = autosplit.selection.left + best_loc[0] + autosplit.selection.top = autosplit.selection.top + best_loc[1] + autosplit.selection.right = autosplit.selection.left + best_width + autosplit.selection.bottom = autosplit.selection.top + best_height - self.xSpinBox.setValue(self.rect.left) - self.ySpinBox.setValue(self.rect.top) - self.widthSpinBox.setValue(best_width) - self.heightSpinBox.setValue(best_height) + autosplit.xSpinBox.setValue(autosplit.selection.left) + autosplit.ySpinBox.setValue(autosplit.selection.top) + autosplit.widthSpinBox.setValue(best_width) + autosplit.heightSpinBox.setValue(best_height) -def validateBeforeComparison(self: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): +def validateBeforeComparison(autosplit: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): error = None - if not self.split_image_directory: + if not autosplit.split_image_directory: error = error_messages.splitImageDirectoryError - elif not os.path.isdir(self.split_image_directory): + elif not os.path.isdir(autosplit.split_image_directory): error = error_messages.splitImageDirectoryNotFoundError - elif check_empty_directory and not os.listdir(self.split_image_directory): + elif check_empty_directory and not os.listdir(autosplit.split_image_directory): error = error_messages.splitImageDirectoryEmpty - elif self.hwnd <= 0 or win32gui.GetWindowText(self.hwnd) == '': + elif autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): error = error_messages.regionError if error and show_error: error() @@ -225,46 +226,36 @@ def validateBeforeComparison(self: AutoSplit, show_error: bool = True, check_emp class BaseSelectWidget(QtWidgets.QWidget): - # We need to pull the monitor information to correctly draw the geometry covering all portions - # of the user's screen. These parameters create the bounding box with left, top, width, and height - SM_XVIRTUALSCREEN: int = user32.GetSystemMetrics(76) - SM_YVIRTUALSCREEN: int = user32.GetSystemMetrics(77) - SM_CXVIRTUALSCREEN: int = user32.GetSystemMetrics(78) - SM_CYVIRTUALSCREEN: int = user32.GetSystemMetrics(79) - def __init__(self): super().__init__() + # We need to pull the monitor information to correctly draw the geometry covering all portions + # of the user's screen. These parameters create the bounding box with left, top, width, and height self.setGeometry( - self.SM_XVIRTUALSCREEN, - self.SM_YVIRTUALSCREEN, - self.SM_CXVIRTUALSCREEN, - self.SM_CYVIRTUALSCREEN) + user32.GetSystemMetrics(SM_XVIRTUALSCREEN), + user32.GetSystemMetrics(SM_YVIRTUALSCREEN), + user32.GetSystemMetrics(SM_CXVIRTUALSCREEN), + user32.GetSystemMetrics(SM_CYVIRTUALSCREEN)) self.setWindowTitle(' ') self.setWindowOpacity(0.5) self.setWindowFlags(QtCore.Qt.WindowType.FramelessWindowHint) self.show() - def keyPressEvent(self, event: QtGui.QKeyEvent): - if event.key() == QtCore.Qt.Key.Key_Escape: + def keyPressEvent(self, a0: QtGui.QKeyEvent): + if a0.key() == QtCore.Qt.Key.Key_Escape: self.close() # Widget to select a window and obtain its bounds class SelectWindowWidget(BaseSelectWidget): - x: int = -1 - y: int = -1 - - def mouseReleaseEvent(self, event: QtGui.QMouseEvent): - self.x = int(event.position().x()) + self.SM_XVIRTUALSCREEN - self.y = int(event.position().y()) + self.SM_YVIRTUALSCREEN + def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): + self.x = lambda: int(a0.position().x()) + self.geometry().x() + self.y = lambda: int(a0.position().y()) + self.geometry().y() self.close() # Widget for dragging screen region # https://github.com/harupy/snipping-tool class SelectRegionWidget(BaseSelectWidget): - height: int = 0 - width: int = 0 left: int = -1 top: int = -1 right: int = -1 @@ -273,38 +264,42 @@ class SelectRegionWidget(BaseSelectWidget): __end = QtCore.QPoint() def __init__(self): - super().__init__() QtWidgets.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CursorShape.CrossCursor)) + super().__init__() + + def height(self): + return self.bottom - self.top - def paintEvent(self, event: QtGui.QPaintEvent): + def width(self): + return self.right - self.left + + def paintEvent(self, a0: QtGui.QPaintEvent): if self.__begin != self.__end: qPainter = QtGui.QPainter(self) qPainter.setPen(QtGui.QPen(QtGui.QColor('red'), 2)) qPainter.setBrush(QtGui.QColor('opaque')) qPainter.drawRect(QtCore.QRect(self.__begin, self.__end)) - def mousePressEvent(self, event: QtGui.QMouseEvent): - self.__begin = event.position().toPoint() + def mousePressEvent(self, a0: QtGui.QMouseEvent): + self.__begin = a0.position().toPoint() self.__end = self.__begin self.update() - def mouseMoveEvent(self, event: QtGui.QMouseEvent): - self.__end = event.position().toPoint() + def mouseMoveEvent(self, a0: QtGui.QMouseEvent): + self.__end = a0.position().toPoint() self.update() - def mouseReleaseEvent(self, event: QtGui.QMouseEvent): - # The coordinates are pulled relative to the top left of the set geometry, - # so the added virtual screen offsets convert them back to the virtual screen coordinates - self.left = min(self.__begin.x(), self.__end.x()) + self.SM_XVIRTUALSCREEN - self.top = min(self.__begin.y(), self.__end.y()) + self.SM_YVIRTUALSCREEN - self.right = max(self.__begin.x(), self.__end.x()) + self.SM_XVIRTUALSCREEN - self.bottom = max(self.__begin.y(), self.__end.y()) + self.SM_YVIRTUALSCREEN - - self.height = self.bottom - self.top - self.width = self.right - self.left + def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): if self.__begin != self.__end: + # The coordinates are pulled relative to the top left of the set geometry, + # so the added virtual screen offsets convert them back to the virtual screen coordinates + self.left = min(self.__begin.x(), self.__end.x()) + self.geometry().x() + self.top = min(self.__begin.y(), self.__end.y()) + self.geometry().y() + self.right = max(self.__begin.x(), self.__end.x()) + self.geometry().x() + self.bottom = max(self.__begin.y(), self.__end.y()) + self.geometry().y() + self.close() def close(self): QtWidgets.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CursorShape.ArrowCursor)) - super().close() + return super().close() diff --git a/src/settings_file.py b/src/settings_file.py index 61c76ccd..0391405e 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,197 +1,198 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Union +from typing import TYPE_CHECKING, Any, List, Literal, cast if TYPE_CHECKING: from AutoSplit import AutoSplit -from win32 import win32gui -from PyQt6 import QtWidgets import os import sys -import keyboard import pickle +import keyboard # https://github.com/boppreh/keyboard/issues/505 +from win32 import win32gui +from PyQt6 import QtWidgets -from hotkeys import _hotkey_action import error_messages +from hotkeys import _hotkey_action # Get the directory of either AutoSplit.exe or AutoSplit.py auto_split_directory = os.path.dirname(sys.executable if getattr(sys, 'frozen', False) else os.path.abspath(__file__)) -def getSaveSettingsValues(self: AutoSplit): - # get values to be able to save settings - self.x = self.xSpinBox.value() - self.y = self.ySpinBox.value() - self.width = self.widthSpinBox.value() - self.height = self.heightSpinBox.value() - self.similarity_threshold = self.similaritythresholdDoubleSpinBox.value() - self.comparison_index = self.comparisonmethodComboBox.currentIndex() - self.pause = self.pauseDoubleSpinBox.value() - self.fps_limit = self.fpslimitSpinBox.value() - self.split_key = self.splitLineEdit.text() - self.reset_key = self.resetLineEdit.text() - self.skip_split_key = self.skipsplitLineEdit.text() - self.undo_split_key = self.undosplitLineEdit.text() - self.pause_key = self.pausehotkeyLineEdit.text() - - if self.groupDummySplitsCheckBox.isChecked(): - self.group_dummy_splits_undo_skip_setting = 1 - else: - self.group_dummy_splits_undo_skip_setting = 0 - - if self.loopCheckBox.isChecked(): - self.loop_setting = 1 - else: - self.loop_setting = 0 - - if self.autostartonresetCheckBox.isChecked(): - self.auto_start_on_reset_setting = 1 - else: - self.auto_start_on_reset_setting = 0 +def loadPyQtSettings(autosplit: AutoSplit): + # These are only global settings values. They are not *pkl settings values. + autosplit.getGlobalSettingsValues() + check_for_updates_on_open = autosplit.setting_check_for_updates_on_open.value( + 'check_for_updates_on_open', + True, + type=bool) + autosplit.actionCheck_for_Updates_on_Open.setChecked(check_for_updates_on_open) -def haveSettingsChanged(self: AutoSplit): - self.getSaveSettingsValues() +def getSaveSettingsValues(autosplit: AutoSplit): + # get values to be able to save settings + autosplit.x = autosplit.xSpinBox.value() + autosplit.y = autosplit.ySpinBox.value() + autosplit.width = autosplit.widthSpinBox.value() + autosplit.height = autosplit.heightSpinBox.value() + autosplit.similarity_threshold = autosplit.similaritythresholdDoubleSpinBox.value() + autosplit.comparison_index = autosplit.comparisonmethodComboBox.currentIndex() + autosplit.pause = autosplit.pauseDoubleSpinBox.value() + autosplit.fps_limit = int(autosplit.fpslimitSpinBox.value()) + autosplit.split_key = autosplit.splitLineEdit.text() + autosplit.reset_key = autosplit.resetLineEdit.text() + autosplit.skip_split_key = autosplit.skipsplitLineEdit.text() + autosplit.undo_split_key = autosplit.undosplitLineEdit.text() + autosplit.pause_key = autosplit.pausehotkeyLineEdit.text() + autosplit.group_dummy_splits_undo_skip_setting = cast( + Literal[0, 1], + int(autosplit.groupDummySplitsCheckBox.isChecked())) + autosplit.loop_setting = cast( + Literal[0, 1], + int(autosplit.loopCheckBox.isChecked())) + autosplit.auto_start_on_reset_setting = cast( + Literal[0, 1], + int(autosplit.autostartonresetCheckBox.isChecked())) + + +def haveSettingsChanged(autosplit: AutoSplit): + autosplit.getSaveSettingsValues() current_save_settings = [ - self.split_image_directory, - self.similarity_threshold, - self.comparison_index, - self.pause, - self.fps_limit, - self.split_key, - self.reset_key, - self.skip_split_key, - self.undo_split_key, - self.pause_key, - self.x, - self.y, - self.width, - self.height, - self.hwnd_title, + autosplit.split_image_directory, + autosplit.similarity_threshold, + autosplit.comparison_index, + autosplit.pause, + autosplit.fps_limit, + autosplit.split_key, + autosplit.reset_key, + autosplit.skip_split_key, + autosplit.undo_split_key, + autosplit.pause_key, + autosplit.x, + autosplit.y, + autosplit.width, + autosplit.height, + autosplit.hwnd_title, 0, 0, - self.group_dummy_splits_undo_skip_setting, - self.loop_setting, - self.auto_start_on_reset_setting] + autosplit.group_dummy_splits_undo_skip_setting, + autosplit.loop_setting, + autosplit.auto_start_on_reset_setting] # One small caveat in this: if you load a settings file from an old version, but dont change settings, # the current save settings and last load settings will have different # of elements and it will ask # the user to save changes upon closing even though there were none - return current_save_settings not in (self.last_loaded_settings, self.last_saved_settings) + return current_save_settings not in (autosplit.last_loaded_settings, autosplit.last_saved_settings) -def saveSettings(self: AutoSplit): - if self.last_successfully_loaded_settings_file_path == None: - self.saveSettingsAs() +def saveSettings(autosplit: AutoSplit): + if not autosplit.last_successfully_loaded_settings_file_path: + autosplit.saveSettingsAs() else: - self.getSaveSettingsValues() - self.last_saved_settings = [ - self.split_image_directory, - self.similarity_threshold, - self.comparison_index, - self.pause, - self.fps_limit, - self.split_key, - self.reset_key, - self.skip_split_key, - self.undo_split_key, - self.pause_key, - self.x, - self.y, - self.width, - self.height, - self.hwnd_title, + autosplit.getSaveSettingsValues() + autosplit.last_saved_settings = [ + autosplit.split_image_directory, + autosplit.similarity_threshold, + autosplit.comparison_index, + autosplit.pause, + autosplit.fps_limit, + autosplit.split_key, + autosplit.reset_key, + autosplit.skip_split_key, + autosplit.undo_split_key, + autosplit.pause_key, + autosplit.x, + autosplit.y, + autosplit.width, + autosplit.height, + autosplit.hwnd_title, 0, 0, - self.group_dummy_splits_undo_skip_setting, - self.loop_setting, - self.auto_start_on_reset_setting] + autosplit.group_dummy_splits_undo_skip_setting, + autosplit.loop_setting, + autosplit.auto_start_on_reset_setting] # save settings to a .pkl file - with open(self.last_successfully_loaded_settings_file_path, 'wb') as f: - pickle.dump(self.last_saved_settings, f) + with open(autosplit.last_successfully_loaded_settings_file_path, 'wb') as f: + pickle.dump(autosplit.last_saved_settings, f) -def saveSettingsAs(self: AutoSplit): +def saveSettingsAs(autosplit: AutoSplit): # User picks save destination - self.save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( - self, + autosplit.save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( + autosplit, "Save Settings As", os.path.join(auto_split_directory, "settings.pkl"), "PKL (*.pkl)")[0] # If user cancels save destination window, don't save settings - if not self.save_settings_file_path: + if not autosplit.save_settings_file_path: return - self.getSaveSettingsValues() - self.last_saved_settings = [ - self.split_image_directory, - self.similarity_threshold, - self.comparison_index, - self.pause, - self.fps_limit, - self.split_key, - self.reset_key, - self.skip_split_key, - self.undo_split_key, - self.pause_key, - self.x, - self.y, - self.width, - self.height, - self.hwnd_title, + autosplit.getSaveSettingsValues() + autosplit.last_saved_settings = [ + autosplit.split_image_directory, + autosplit.similarity_threshold, + autosplit.comparison_index, + autosplit.pause, + autosplit.fps_limit, + autosplit.split_key, + autosplit.reset_key, + autosplit.skip_split_key, + autosplit.undo_split_key, + autosplit.pause_key, + autosplit.x, + autosplit.y, + autosplit.width, + autosplit.height, + autosplit.hwnd_title, 0, 0, - self.group_dummy_splits_undo_skip_setting, - self.loop_setting, - self.auto_start_on_reset_setting] + autosplit.group_dummy_splits_undo_skip_setting, + autosplit.loop_setting, + autosplit.auto_start_on_reset_setting] # save settings to a .pkl file - with open(self.save_settings_file_path, 'wb') as f: - pickle.dump(self.last_saved_settings, f) + with open(autosplit.save_settings_file_path, 'wb') as f: + pickle.dump(autosplit.last_saved_settings, f) - #wording is kinda off here but this needs to be here for an edge case: for when a file has never loaded, but you - #save file as successfully. - self.last_successfully_loaded_settings_file_path = self.save_settings_file_path + # Wording is kinda off here but this needs to be here for an edge case: + # for when a file has never loaded, but you save file as successfully. + autosplit.last_successfully_loaded_settings_file_path = autosplit.save_settings_file_path -def loadSettings(self: AutoSplit, load_settings_on_open: bool = False, load_settings_from_livesplit: bool = False): +def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load_settings_from_livesplit: bool = False): if load_settings_on_open: - settings_files = [ file for file in os.listdir(auto_split_directory) - if file.endswith(".pkl") - ] + if file.endswith(".pkl")] # find all .pkls in AutoSplit folder, error if there is none or more than 1 if len(settings_files) < 1: error_messages.noSettingsFileOnOpenError() - self.last_loaded_settings = None + autosplit.last_loaded_settings = None return - elif len(settings_files) > 1: + if len(settings_files) > 1: error_messages.tooManySettingsFilesOnOpenError() - self.last_loaded_settings = None + autosplit.last_loaded_settings = None return - else: - self.load_settings_file_path = os.path.join(auto_split_directory, settings_files[0]) + autosplit.load_settings_file_path = os.path.join(auto_split_directory, settings_files[0]) elif not load_settings_on_open and not load_settings_from_livesplit: - self.load_settings_file_path = QtWidgets.QFileDialog.getOpenFileName( - self, + autosplit.load_settings_file_path = QtWidgets.QFileDialog.getOpenFileName( + autosplit, "Load Settings", os.path.join(auto_split_directory, "settings.pkl"), "PKL (*.pkl)")[0] - if self.load_settings_file_path == '': + if not autosplit.load_settings_file_path: return try: - with open(self.load_settings_file_path, 'rb') as f: - settings: List[Union[str, int]] = pickle.load(f) + with open(autosplit.load_settings_file_path, 'rb') as f: + settings: List[Any] = pickle.load(f) settings_count = len(settings) if settings_count < 18: - self.showErrorSignal.emit(error_messages.oldVersionSettingsFileError) + autosplit.showErrorSignal.emit(error_messages.oldVersionSettingsFileError) return # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting if settings_count == 18: @@ -199,108 +200,108 @@ def loadSettings(self: AutoSplit, load_settings_on_open: bool = False, load_sett settings.insert(20, 0) # v1.5 settings elif settings_count != 20: - self.showErrorSignal.emit(error_messages.invalidSettingsError) + autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) return - self.last_loaded_settings = [ - self.split_image_directory, - self.similarity_threshold, - self.comparison_index, - self.pause, - self.fps_limit, - self.split_key, - self.reset_key, - self.skip_split_key, - self.undo_split_key, - self.pause_key, - self.x, - self.y, - self.width, - self.height, - self.hwnd_title, + autosplit.last_loaded_settings = [ + autosplit.split_image_directory, + autosplit.similarity_threshold, + autosplit.comparison_index, + autosplit.pause, + autosplit.fps_limit, + autosplit.split_key, + autosplit.reset_key, + autosplit.skip_split_key, + autosplit.undo_split_key, + autosplit.pause_key, + autosplit.x, + autosplit.y, + autosplit.width, + autosplit.height, + autosplit.hwnd_title, _, _, - self.group_dummy_splits_undo_skip_setting, - self.loop_setting, - self.auto_start_on_reset_setting] = settings + autosplit.group_dummy_splits_undo_skip_setting, + autosplit.loop_setting, + autosplit.auto_start_on_reset_setting] = settings except (FileNotFoundError, MemoryError, pickle.UnpicklingError): - self.showErrorSignal.emit(error_messages.invalidSettingsError) + autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) return - self.splitimagefolderLineEdit.setText(self.split_image_directory) - self.similaritythresholdDoubleSpinBox.setValue(self.similarity_threshold) - self.pauseDoubleSpinBox.setValue(self.pause) - self.fpslimitSpinBox.setValue(self.fps_limit) - self.xSpinBox.setValue(self.x) - self.ySpinBox.setValue(self.y) - self.widthSpinBox.setValue(self.width) - self.heightSpinBox.setValue(self.height) - self.comparisonmethodComboBox.setCurrentIndex(self.comparison_index) - self.hwnd = win32gui.FindWindow(None, self.hwnd_title) + autosplit.splitimagefolderLineEdit.setText(autosplit.split_image_directory) + autosplit.similaritythresholdDoubleSpinBox.setValue(autosplit.similarity_threshold) + autosplit.pauseDoubleSpinBox.setValue(autosplit.pause) + autosplit.fpslimitSpinBox.setValue(autosplit.fps_limit) + autosplit.xSpinBox.setValue(autosplit.x) + autosplit.ySpinBox.setValue(autosplit.y) + autosplit.widthSpinBox.setValue(autosplit.width) + autosplit.heightSpinBox.setValue(autosplit.height) + autosplit.comparisonmethodComboBox.setCurrentIndex(autosplit.comparison_index) + # https://github.com/kaluluosi/pywin32-stubs/issues/7 + autosplit.hwnd = win32gui.FindWindow(None, autosplit.hwnd_title) # type: ignore # set custom checkbox's accordingly - self.groupDummySplitsCheckBox.setChecked(self.group_dummy_splits_undo_skip_setting == 1) - self.loopCheckBox.setChecked(self.loop_setting == 1) - self.autostartonresetCheckBox.setChecked(self.auto_start_on_reset_setting == 1) - self.autostartonresetCheckBox.setChecked(self.auto_start_on_reset_setting == 1) + autosplit.groupDummySplitsCheckBox.setChecked(bool(autosplit.group_dummy_splits_undo_skip_setting)) + autosplit.loopCheckBox.setChecked(bool(autosplit.loop_setting)) + autosplit.autostartonresetCheckBox.setChecked(bool(autosplit.auto_start_on_reset_setting)) + autosplit.autostartonresetCheckBox.setChecked(bool(autosplit.auto_start_on_reset_setting)) # TODO: Reuse code from hotkeys rather than duplicating here # try to set hotkeys from when user last closed the window + if autosplit.split_hotkey: + keyboard.unhook_key(autosplit.split_hotkey) try: - keyboard.unhook_key(self.split_hotkey) - # pass if the key is an empty string (hotkey was never set) - except (AttributeError, KeyError): - pass - try: - self.splitLineEdit.setText(self.split_key) - if not self.is_auto_controlled: - self.split_hotkey = keyboard.hook_key(self.split_key, lambda e: _hotkey_action(e, self.split_key, self.startAutoSplitter)) + autosplit.splitLineEdit.setText(autosplit.split_key) + if not autosplit.is_auto_controlled: + autosplit.split_hotkey = keyboard.hook_key( + autosplit.split_key, + lambda e: _hotkey_action(e, autosplit.split_key, autosplit.startAutoSplitter)) except (ValueError, KeyError): pass + if autosplit.reset_hotkey: + keyboard.unhook_key(autosplit.reset_hotkey) try: - keyboard.unhook_key(self.reset_hotkey) - except (AttributeError, KeyError): - pass - try: - self.resetLineEdit.setText(self.reset_key) - if not self.is_auto_controlled: - self.reset_hotkey = keyboard.hook_key(self.reset_key, lambda e: _hotkey_action(e, self.reset_key, self.startReset)) + autosplit.resetLineEdit.setText(autosplit.reset_key) + if not autosplit.is_auto_controlled: + autosplit.reset_hotkey = keyboard.hook_key( + autosplit.reset_key, + lambda e: _hotkey_action(e, autosplit.reset_key, autosplit.startReset)) except (ValueError, KeyError): pass + if autosplit.skip_split_hotkey: + keyboard.unhook_key(autosplit.skip_split_hotkey) try: - keyboard.unhook_key(self.skip_split_hotkey) - except (AttributeError, KeyError): - pass - try: - self.skipsplitLineEdit.setText(self.skip_split_key) - if not self.is_auto_controlled: - self.skip_split_hotkey = keyboard.hook_key(self.skip_split_key, lambda e: _hotkey_action(e, self.skip_split_key, self.startSkipSplit)) + autosplit.skipsplitLineEdit.setText(autosplit.skip_split_key) + if not autosplit.is_auto_controlled: + autosplit.skip_split_hotkey = keyboard.hook_key( + autosplit.skip_split_key, + lambda e: _hotkey_action(e, autosplit.skip_split_key, autosplit.startSkipSplit)) except (ValueError, KeyError): pass + if autosplit.skip_split_hotkey: + keyboard.unhook_key(autosplit.skip_split_hotkey) try: - keyboard.unhook_key(self.undo_split_hotkey) - except (AttributeError, KeyError): - pass - try: - self.undosplitLineEdit.setText(self.undo_split_key) - if not self.is_auto_controlled: - self.undo_split_hotkey = keyboard.hook_key(self.undo_split_key, lambda e: _hotkey_action(e, self.undo_split_key, self.startUndoSplit)) + autosplit.undosplitLineEdit.setText(autosplit.undo_split_key) + if not autosplit.is_auto_controlled: + autosplit.undo_split_hotkey = keyboard.hook_key( + autosplit.undo_split_key, + lambda e: _hotkey_action(e, autosplit.undo_split_key, autosplit.startUndoSplit)) except (ValueError, KeyError): pass + if autosplit.pause_hotkey: + keyboard.unhook_key(autosplit.pause_hotkey) try: - keyboard.unhook_key(self.pause_hotkey) - except (AttributeError, KeyError): - pass - try: - self.pausehotkeyLineEdit.setText(self.pause_key) - if not self.is_auto_controlled: - self.pause_hotkey = keyboard.hook_key(self.pause_key, lambda e: _hotkey_action(e, self.pause_key, self.startPause)) + autosplit.pausehotkeyLineEdit.setText(autosplit.pause_key) + if not autosplit.is_auto_controlled: + autosplit.pause_hotkey = keyboard.hook_key( + autosplit.pause_key, + lambda e: _hotkey_action(e, autosplit.pause_key, autosplit.startPause)) except (ValueError, KeyError): pass - self.last_successfully_loaded_settings_file_path = self.load_settings_file_path - self.checkLiveImage() - self.loadStartImage() + autosplit.last_successfully_loaded_settings_file_path = autosplit.load_settings_file_path + autosplit.checkLiveImage() + autosplit.loadStartImage() diff --git a/src/split_parser.py b/src/split_parser.py index cfcf63fc..1932878c 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -1,4 +1,21 @@ -def threshold_from_filename(filename): +import os +from typing import List + +import cv2 + +from AutoSplit import AutoSplit +import error_messages + + +[DUMMY_FLAG, + # Legacy flag. Allows support for {md}, {mp}, or {mb} flags previously required to detect transparency. + MASK_FLAG, + BELOW_FLAG, + PAUSE_FLAG, + *_] = [1 << i for i in range(31)] + + +def threshold_from_filename(filename: str): """ Retrieve the threshold from the filename, if there is no threshold or the threshold doesn't meet the requirements of being between 0.0 and 1.0, then None is returned. @@ -11,16 +28,14 @@ def threshold_from_filename(filename): # parentheses of the filename try: threshold = float(filename.split('(', 1)[1].split(')')[0]) - except: + except Exception: return None # Check to make sure if it is a valid threshold - if (threshold > 1.0 or threshold < 0.0): - return None - else: - return threshold + return threshold if 0.0 < threshold < 1.0 else None + -def pause_from_filename(filename): +def pause_from_filename(filename: str): """ Retrieve the pause time from the filename, if there is no pause time or the pause time isn't a valid number, then None is returned @@ -33,16 +48,14 @@ def pause_from_filename(filename): # of the filename try: pause = float(filename.split('[', 1)[1].split(']')[0]) - except: + except Exception: return None # Pause times should always be positive or zero - if (pause < 0.0): - return None - else: - return pause + return pause if pause >= 0.0 else None -def delay_from_filename(filename): + +def delay_from_filename(filename: str): """ Retrieve the delay time from the filename, if there is no delay time or the delay time isn't a valid number, then 0 is returned @@ -55,16 +68,14 @@ def delay_from_filename(filename): # of the filename try: delay = float(filename.split('#', 1)[1].split('#')[0]) - except: + except Exception: return 0.0 # Delay times should always be positive or zero - if (delay < 0): - return 0.0 - else: - return delay + return delay if delay >= 0.0 else 0.0 -def loop_from_filename(filename): + +def loop_from_filename(filename: str): """ Retrieve the number of loops from filename, if there is no loop number or the loop number isn't valid, then 1 is returned. @@ -77,31 +88,20 @@ def loop_from_filename(filename): # of the filename try: loop = int(filename.split('@', 1)[1].split('@')[0]) - except: + except Exception: return 1 - # Delay times should always be positive or zero - if (loop < 1): - return 1 - else: - return loop - - -DUMMY_FLAG = 1 << 0 -MASK_FLAG = 1 << 1 #Legacy flag. Allows support for {md}, {mp}, or {mb} flags previously required to detect transparancy. -BELOW_FLAG = 1 << 2 -PAUSE_FLAG = 1 << 3 + # Loop should always be positive + return loop if loop >= 1 else 1 -def flags_from_filename(filename): +def flags_from_filename(filename: str): """ Retrieve the flags from the filename, if there are no flags then 0 is returned @param filename: String containing the file's name @return: The flags as an integer, if invalid flags are found it returns 0 - """ - """ List of flags: 'd' = dummy, do nothing when this split is found 'b' = below threshold, after threshold is met, split when it goes below the threhsold. @@ -112,7 +112,7 @@ def flags_from_filename(filename): # of the filename try: flags_str = filename.split('{', 1)[1].split('}')[0] - except: + except Exception: return 0 flags = 0x00 @@ -138,21 +138,83 @@ def flags_from_filename(filename): return flags -def is_reset_image(filename): + +def is_reset_image(filename: str): """ Checks if the image is used for resetting @param filename: String containing the file's name @return: True if its a reset image """ - return ('RESET' in filename.upper()) + return 'RESET' in filename.upper() -def is_start_auto_splitter_image(filename): + +def is_start_auto_splitter_image(filename: str): """ Checks if the image is used to start AutoSplit @param filename: String containing the file's name @return: True if its a reset image """ - return ('START_AUTO_SPLITTER' in filename.upper()) - + return 'START_AUTO_SPLITTER' in filename.upper() + + +def removeStartAutoSplitterImage(split_image_filenames: List[str]): + start_auto_splitter_image_file = None + for image in split_image_filenames: + if is_start_auto_splitter_image(image): + start_auto_splitter_image_file = image + break + + if start_auto_splitter_image_file is None: + return + + split_image_filenames.remove(start_auto_splitter_image_file) + + +# TODO: When split, reset and start image are all a proper class +# let's also extract reset and start from the list here and return them +def validate_images_before_parsing(autosplit: AutoSplit): + already_found_reset_image = False + already_found_start_image = False + # Make sure that each of the images follows the guidelines for correct format + # according to all of the settings selected by the user. + for image in autosplit.split_image_filenames: + # Test for image without transparency + if (cv2.imread(os.path.join(autosplit.split_image_directory, image), cv2.IMREAD_COLOR) is None + # Test for image with transparency + and cv2.imread(os.path.join(autosplit.split_image_directory, image), cv2.IMREAD_UNCHANGED) is None): + # Opencv couldn't open this file as an image, this isn't a correct + # file format that is supported + autosplit.guiChangesOnReset() + error_messages.imageTypeError(image) + return + + # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. + if (not autosplit.pausehotkeyLineEdit.text() + and flags_from_filename(image) & PAUSE_FLAG == PAUSE_FLAG + and not autosplit.is_auto_controlled): + autosplit.guiChangesOnReset() + error_messages.pauseHotkeyError() + return + + # Check that there's only one reset image + if is_reset_image(image): + # If there is no reset hotkey set but a reset image is present, and is not auto controlled, throw an error. + if not autosplit.resetLineEdit.text() and not autosplit.is_auto_controlled: + autosplit.guiChangesOnReset() + error_messages.resetHotkeyError() + return + if already_found_reset_image: + autosplit.guiChangesOnReset() + error_messages.multipleKeywordImagesError('reset') + return + already_found_reset_image = True + + # Check that there's only one auto_start_autosplitter image + if is_start_auto_splitter_image(image): + if already_found_start_image: + autosplit.guiChangesOnReset() + error_messages.multipleKeywordImagesError('start_auto_splitter') + return + already_found_start_image = True diff --git a/src/update_checker.py b/src/update_checker.py deleted file mode 100644 index 693b769b..00000000 --- a/src/update_checker.py +++ /dev/null @@ -1,77 +0,0 @@ -# Form implementation generated from reading ui file '.\res\update_checker.ui' -# -# Created by: PyQt6 UI code generator 6.1.0 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt6 import QtCore, QtGui, QtWidgets - - -class Ui_UpdateChecker(object): - def setupUi(self, UpdateChecker): - UpdateChecker.setObjectName("UpdateChecker") - UpdateChecker.setEnabled(True) - UpdateChecker.resize(313, 133) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(UpdateChecker.sizePolicy().hasHeightForWidth()) - UpdateChecker.setSizePolicy(sizePolicy) - UpdateChecker.setMinimumSize(QtCore.QSize(313, 133)) - UpdateChecker.setMaximumSize(QtCore.QSize(313, 133)) - font = QtGui.QFont() - font.setPointSize(9) - UpdateChecker.setFont(font) - UpdateChecker.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.labelUpdateStatus = QtWidgets.QLabel(UpdateChecker) - self.labelUpdateStatus.setGeometry(QtCore.QRect(17, 10, 281, 16)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.labelUpdateStatus.sizePolicy().hasHeightForWidth()) - self.labelUpdateStatus.setSizePolicy(sizePolicy) - self.labelUpdateStatus.setText("") - self.labelUpdateStatus.setObjectName("labelUpdateStatus") - self.labelCurrentVersion = QtWidgets.QLabel(UpdateChecker) - self.labelCurrentVersion.setGeometry(QtCore.QRect(17, 30, 91, 16)) - self.labelCurrentVersion.setObjectName("labelCurrentVersion") - self.labelLatestVersion = QtWidgets.QLabel(UpdateChecker) - self.labelLatestVersion.setGeometry(QtCore.QRect(17, 50, 81, 16)) - self.labelLatestVersion.setObjectName("labelLatestVersion") - self.labelGoToDownload = QtWidgets.QLabel(UpdateChecker) - self.labelGoToDownload.setGeometry(QtCore.QRect(17, 76, 241, 16)) - self.labelGoToDownload.setText("") - self.labelGoToDownload.setObjectName("labelGoToDownload") - self.pushButtonLeft = QtWidgets.QPushButton(UpdateChecker) - self.pushButtonLeft.setGeometry(QtCore.QRect(150, 100, 75, 24)) - self.pushButtonLeft.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.pushButtonLeft.setText("") - self.pushButtonLeft.setObjectName("pushButtonLeft") - self.pushButtonRight = QtWidgets.QPushButton(UpdateChecker) - self.pushButtonRight.setGeometry(QtCore.QRect(230, 100, 75, 24)) - self.pushButtonRight.setText("") - self.pushButtonRight.setObjectName("pushButtonRight") - self.labelCurrentVersionNumber = QtWidgets.QLabel(UpdateChecker) - self.labelCurrentVersionNumber.setGeometry(QtCore.QRect(120, 30, 181, 16)) - self.labelCurrentVersionNumber.setText("") - self.labelCurrentVersionNumber.setObjectName("labelCurrentVersionNumber") - self.labelLatestVersionNumber = QtWidgets.QLabel(UpdateChecker) - self.labelLatestVersionNumber.setGeometry(QtCore.QRect(120, 50, 181, 16)) - self.labelLatestVersionNumber.setText("") - self.labelLatestVersionNumber.setObjectName("labelLatestVersionNumber") - self.checkBoxDoNotAskMeAgain = QtWidgets.QCheckBox(UpdateChecker) - self.checkBoxDoNotAskMeAgain.setGeometry(QtCore.QRect(17, 100, 141, 20)) - self.checkBoxDoNotAskMeAgain.setObjectName("checkBoxDoNotAskMeAgain") - - self.retranslateUi(UpdateChecker) - self.pushButtonRight.clicked.connect(UpdateChecker.close) - QtCore.QMetaObject.connectSlotsByName(UpdateChecker) - - def retranslateUi(self, UpdateChecker): - _translate = QtCore.QCoreApplication.translate - UpdateChecker.setWindowTitle(_translate("UpdateChecker", "Update Checker")) - self.labelCurrentVersion.setText(_translate("UpdateChecker", "Current Version:")) - self.labelLatestVersion.setText(_translate("UpdateChecker", "Latest Version:")) - self.checkBoxDoNotAskMeAgain.setText(_translate("UpdateChecker", "Do not ask me again")) diff --git a/typings/cv2-stubs/__init__.pyi b/typings/cv2-stubs/__init__.pyi new file mode 100644 index 00000000..2d471883 --- /dev/null +++ b/typings/cv2-stubs/__init__.pyi @@ -0,0 +1,3578 @@ +# Python: 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] +# Library: cv2, version: 4.4.0 +# Module: cv2.cv2, version: 4.4.0 +# https://github.com/microsoft/python-type-stubs/pull/112 +import typing +import builtins as _mod_builtins +import cv2 as _mod_cv2 +import numpy + +ndarray = numpy.ndarray[int, numpy.dtype[typing.Any]] + +ACCESS_FAST: int +ACCESS_MASK: int +ACCESS_READ: int +ACCESS_RW: int +ACCESS_WRITE: int +ADAPTIVE_THRESH_GAUSSIAN_C: int +ADAPTIVE_THRESH_MEAN_C: int +AGAST_FEATURE_DETECTOR_AGAST_5_8: int +AGAST_FEATURE_DETECTOR_AGAST_7_12D: int +AGAST_FEATURE_DETECTOR_AGAST_7_12S: int +AGAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION: int +AGAST_FEATURE_DETECTOR_OAST_9_16: int +AGAST_FEATURE_DETECTOR_THRESHOLD: int +AKAZE = _mod_cv2.AKAZE +AKAZE_DESCRIPTOR_KAZE: int +AKAZE_DESCRIPTOR_KAZE_UPRIGHT: int +AKAZE_DESCRIPTOR_MLDB: int +AKAZE_DESCRIPTOR_MLDB_UPRIGHT: int + + +def AKAZE_create(descriptor_type=..., descriptor_size=..., descriptor_channels=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: + 'AKAZE_create([, descriptor_type[, descriptor_size[, descriptor_channels[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]]) -> retval\n. @brief The AKAZE constructor\n. \n. @param descriptor_type Type of the extracted descriptor: DESCRIPTOR_KAZE,\n. DESCRIPTOR_KAZE_UPRIGHT, DESCRIPTOR_MLDB or DESCRIPTOR_MLDB_UPRIGHT.\n. @param descriptor_size Size of the descriptor in bits. 0 -\\> Full size\n. @param descriptor_channels Number of channels in the descriptor (1, 2, 3)\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' + ... + + +AgastFeatureDetector = _mod_cv2.AgastFeatureDetector +AgastFeatureDetector_AGAST_5_8: int +AgastFeatureDetector_AGAST_7_12d: int +AgastFeatureDetector_AGAST_7_12s: int +AgastFeatureDetector_NONMAX_SUPPRESSION: int +AgastFeatureDetector_OAST_9_16: int +AgastFeatureDetector_THRESHOLD: int + + +def AgastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...) -> typing.Any: + 'AgastFeatureDetector_create([, threshold[, nonmaxSuppression[, type]]]) -> retval\n.' + ... + + +Algorithm = _mod_cv2.Algorithm +AlignExposures = _mod_cv2.AlignExposures +AlignMTB = _mod_cv2.AlignMTB +AsyncArray = _mod_cv2.AsyncArray +BFMatcher = _mod_cv2.BFMatcher + + +def BFMatcher_create(normType: int = ..., crossCheck=...) -> typing.Any: + "BFMatcher_create([, normType[, crossCheck]]) -> retval\n. @brief Brute-force matcher create method.\n. @param normType One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. L1 and L2 norms are\n. preferable choices for SIFT and SURF descriptors, NORM_HAMMING should be used with ORB, BRISK and\n. BRIEF, NORM_HAMMING2 should be used with ORB when WTA_K==3 or 4 (see ORB::ORB constructor\n. description).\n. @param crossCheck If it is false, this is will be default BFMatcher behaviour when it finds the k\n. nearest neighbors for each query descriptor. If crossCheck==true, then the knnMatch() method with\n. k=1 will only return pairs (i,j) such that for i-th query descriptor the j-th descriptor in the\n. matcher's collection is the nearest and vice versa, i.e. the BFMatcher will only return consistent\n. pairs. Such technique usually produces best results with minimal number of outliers when there are\n. enough matches. This is alternative to the ratio test, used by D. Lowe in SIFT paper." + ... + + +BORDER_CONSTANT: int +BORDER_DEFAULT: int +BORDER_ISOLATED: int +BORDER_REFLECT: int +BORDER_REFLECT101: int +BORDER_REFLECT_101: int +BORDER_REPLICATE: int +BORDER_TRANSPARENT: int +BORDER_WRAP: int +BOWImgDescriptorExtractor = _mod_cv2.BOWImgDescriptorExtractor +BOWKMeansTrainer = _mod_cv2.BOWKMeansTrainer +BOWTrainer = _mod_cv2.BOWTrainer +BRISK = _mod_cv2.BRISK + + +def BRISK_create(thresh=..., octaves=..., patternScale=...) -> typing.Any: + 'BRISK_create([, thresh[, octaves[, patternScale]]]) -> retval\n. @brief The BRISK constructor\n. \n. @param thresh AGAST detection threshold score.\n. @param octaves detection octaves. Use 0 to do single scale.\n. @param patternScale apply this scale to the pattern used for sampling the neighbourhood of a\n. keypoint.\n\n\n\nBRISK_create(radiusList, numberList[, dMax[, dMin[, indexChange]]]) -> retval\n. @brief The BRISK constructor for a custom pattern\n. \n. @param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for\n. keypoint scale 1).\n. @param numberList defines the number of sampling points on the sampling circle. Must be the same\n. size as radiusList..\n. @param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint\n. scale 1).\n. @param dMin threshold for the long pairings used for orientation determination (in pixels for\n. keypoint scale 1).\n. @param indexChange index remapping of the bits.\n\n\n\nBRISK_create(thresh, octaves, radiusList, numberList[, dMax[, dMin[, indexChange]]]) -> retval\n. @brief The BRISK constructor for a custom pattern, detection threshold and octaves\n. \n. @param thresh AGAST detection threshold score.\n. @param octaves detection octaves. Use 0 to do single scale.\n. @param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for\n. keypoint scale 1).\n. @param numberList defines the number of sampling points on the sampling circle. Must be the same\n. size as radiusList..\n. @param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint\n. scale 1).\n. @param dMin threshold for the long pairings used for orientation determination (in pixels for\n. keypoint scale 1).\n. @param indexChange index remapping of the bits.' + ... + + +BackgroundSubtractor = _mod_cv2.BackgroundSubtractor +BackgroundSubtractorKNN = _mod_cv2.BackgroundSubtractorKNN +BackgroundSubtractorMOG2 = _mod_cv2.BackgroundSubtractorMOG2 +BaseCascadeClassifier = _mod_cv2.BaseCascadeClassifier +CALIB_CB_ACCURACY: int +CALIB_CB_ADAPTIVE_THRESH: int +CALIB_CB_ASYMMETRIC_GRID: int +CALIB_CB_CLUSTERING: int +CALIB_CB_EXHAUSTIVE: int +CALIB_CB_FAST_CHECK: int +CALIB_CB_FILTER_QUADS: int +CALIB_CB_LARGER: int +CALIB_CB_MARKER: int +CALIB_CB_NORMALIZE_IMAGE: int +CALIB_CB_SYMMETRIC_GRID: int +CALIB_FIX_ASPECT_RATIO: int +CALIB_FIX_FOCAL_LENGTH: int +CALIB_FIX_INTRINSIC: int +CALIB_FIX_K1: int +CALIB_FIX_K2: int +CALIB_FIX_K3: int +CALIB_FIX_K4: int +CALIB_FIX_K5: int +CALIB_FIX_K6: int +CALIB_FIX_PRINCIPAL_POINT: int +CALIB_FIX_S1_S2_S3_S4: int +CALIB_FIX_TANGENT_DIST: int +CALIB_FIX_TAUX_TAUY: int +CALIB_HAND_EYE_ANDREFF: int +CALIB_HAND_EYE_DANIILIDIS: int +CALIB_HAND_EYE_HORAUD: int +CALIB_HAND_EYE_PARK: int +CALIB_HAND_EYE_TSAI: int +CALIB_NINTRINSIC: int +CALIB_RATIONAL_MODEL: int +CALIB_SAME_FOCAL_LENGTH: int +CALIB_THIN_PRISM_MODEL: int +CALIB_TILTED_MODEL: int +CALIB_USE_EXTRINSIC_GUESS: int +CALIB_USE_INTRINSIC_GUESS: int +CALIB_USE_LU: int +CALIB_USE_QR: int +CALIB_ZERO_DISPARITY: int +CALIB_ZERO_TANGENT_DIST: int +CAP_ANDROID: int +CAP_ANY: int +CAP_ARAVIS: int +CAP_AVFOUNDATION: int +CAP_CMU1394: int +CAP_DC1394: int +CAP_DSHOW: int +CAP_FFMPEG: int +CAP_FIREWARE: int +CAP_FIREWIRE: int +CAP_GIGANETIX: int +CAP_GPHOTO2: int +CAP_GSTREAMER: int +CAP_IEEE1394: int +CAP_IMAGES: int +CAP_INTELPERC: int +CAP_INTELPERC_DEPTH_GENERATOR: int +CAP_INTELPERC_DEPTH_MAP: int +CAP_INTELPERC_GENERATORS_MASK: int +CAP_INTELPERC_IMAGE: int +CAP_INTELPERC_IMAGE_GENERATOR: int +CAP_INTELPERC_IR_GENERATOR: int +CAP_INTELPERC_IR_MAP: int +CAP_INTELPERC_UVDEPTH_MAP: int +CAP_INTEL_MFX: int +CAP_MSMF: int +CAP_OPENCV_MJPEG: int +CAP_OPENNI: int +CAP_OPENNI2: int +CAP_OPENNI2_ASUS: int +CAP_OPENNI_ASUS: int +CAP_OPENNI_BGR_IMAGE: int +CAP_OPENNI_DEPTH_GENERATOR: int +CAP_OPENNI_DEPTH_GENERATOR_BASELINE: int +CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH: int +CAP_OPENNI_DEPTH_GENERATOR_PRESENT: int +CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION: int +CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON: int +CAP_OPENNI_DEPTH_MAP: int +CAP_OPENNI_DISPARITY_MAP: int +CAP_OPENNI_DISPARITY_MAP_32F: int +CAP_OPENNI_GENERATORS_MASK: int +CAP_OPENNI_GRAY_IMAGE: int +CAP_OPENNI_IMAGE_GENERATOR: int +CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE: int +CAP_OPENNI_IMAGE_GENERATOR_PRESENT: int +CAP_OPENNI_IR_GENERATOR: int +CAP_OPENNI_IR_GENERATOR_PRESENT: int +CAP_OPENNI_IR_IMAGE: int +CAP_OPENNI_POINT_CLOUD_MAP: int +CAP_OPENNI_QVGA_30HZ: int +CAP_OPENNI_QVGA_60HZ: int +CAP_OPENNI_SXGA_15HZ: int +CAP_OPENNI_SXGA_30HZ: int +CAP_OPENNI_VALID_DEPTH_MASK: int +CAP_OPENNI_VGA_30HZ: int +CAP_PROP_APERTURE: int +CAP_PROP_ARAVIS_AUTOTRIGGER: int +CAP_PROP_AUTOFOCUS: int +CAP_PROP_AUTO_EXPOSURE: int +CAP_PROP_AUTO_WB: int +CAP_PROP_BACKEND: int +CAP_PROP_BACKLIGHT: int +CAP_PROP_BITRATE: int +CAP_PROP_BRIGHTNESS: int +CAP_PROP_BUFFERSIZE: int +CAP_PROP_CHANNEL: int +CAP_PROP_CODEC_PIXEL_FORMAT: int +CAP_PROP_CONTRAST: int +CAP_PROP_CONVERT_RGB: int +CAP_PROP_DC1394_MAX: int +CAP_PROP_DC1394_MODE_AUTO: int +CAP_PROP_DC1394_MODE_MANUAL: int +CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO: int +CAP_PROP_DC1394_OFF: int +CAP_PROP_EXPOSURE: int +CAP_PROP_EXPOSUREPROGRAM: int +CAP_PROP_FOCUS: int +CAP_PROP_FORMAT: int +CAP_PROP_FOURCC: int +CAP_PROP_FPS: int +CAP_PROP_FRAME_COUNT: int +CAP_PROP_FRAME_HEIGHT: int +CAP_PROP_FRAME_WIDTH: int +CAP_PROP_GAIN: int +CAP_PROP_GAMMA: int +CAP_PROP_GIGA_FRAME_HEIGH_MAX: int +CAP_PROP_GIGA_FRAME_OFFSET_X: int +CAP_PROP_GIGA_FRAME_OFFSET_Y: int +CAP_PROP_GIGA_FRAME_SENS_HEIGH: int +CAP_PROP_GIGA_FRAME_SENS_WIDTH: int +CAP_PROP_GIGA_FRAME_WIDTH_MAX: int +CAP_PROP_GPHOTO2_COLLECT_MSGS: int +CAP_PROP_GPHOTO2_FLUSH_MSGS: int +CAP_PROP_GPHOTO2_PREVIEW: int +CAP_PROP_GPHOTO2_RELOAD_CONFIG: int +CAP_PROP_GPHOTO2_RELOAD_ON_CHANGE: int +CAP_PROP_GPHOTO2_WIDGET_ENUMERATE: int +CAP_PROP_GSTREAMER_QUEUE_LENGTH: int +CAP_PROP_GUID: int +CAP_PROP_HUE: int +CAP_PROP_IMAGES_BASE: int +CAP_PROP_IMAGES_LAST: int +CAP_PROP_INTELPERC_DEPTH_CONFIDENCE_THRESHOLD: int +CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_HORZ: int +CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_VERT: int +CAP_PROP_INTELPERC_DEPTH_LOW_CONFIDENCE_VALUE: int +CAP_PROP_INTELPERC_DEPTH_SATURATION_VALUE: int +CAP_PROP_INTELPERC_PROFILE_COUNT: int +CAP_PROP_INTELPERC_PROFILE_IDX: int +CAP_PROP_IOS_DEVICE_EXPOSURE: int +CAP_PROP_IOS_DEVICE_FLASH: int +CAP_PROP_IOS_DEVICE_FOCUS: int +CAP_PROP_IOS_DEVICE_TORCH: int +CAP_PROP_IOS_DEVICE_WHITEBALANCE: int +CAP_PROP_IRIS: int +CAP_PROP_ISO_SPEED: int +CAP_PROP_MODE: int +CAP_PROP_MONOCHROME: int +CAP_PROP_OPENNI2_MIRROR: int +CAP_PROP_OPENNI2_SYNC: int +CAP_PROP_OPENNI_APPROX_FRAME_SYNC: int +CAP_PROP_OPENNI_BASELINE: int +CAP_PROP_OPENNI_CIRCLE_BUFFER: int +CAP_PROP_OPENNI_FOCAL_LENGTH: int +CAP_PROP_OPENNI_FRAME_MAX_DEPTH: int +CAP_PROP_OPENNI_GENERATOR_PRESENT: int +CAP_PROP_OPENNI_MAX_BUFFER_SIZE: int +CAP_PROP_OPENNI_MAX_TIME_DURATION: int +CAP_PROP_OPENNI_OUTPUT_MODE: int +CAP_PROP_OPENNI_REGISTRATION: int +CAP_PROP_OPENNI_REGISTRATION_ON: int +CAP_PROP_PAN: int +CAP_PROP_POS_AVI_RATIO: int +CAP_PROP_POS_FRAMES: int +CAP_PROP_POS_MSEC: int +CAP_PROP_PVAPI_BINNINGX: int +CAP_PROP_PVAPI_BINNINGY: int +CAP_PROP_PVAPI_DECIMATIONHORIZONTAL: int +CAP_PROP_PVAPI_DECIMATIONVERTICAL: int +CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE: int +CAP_PROP_PVAPI_MULTICASTIP: int +CAP_PROP_PVAPI_PIXELFORMAT: int +CAP_PROP_RECTIFICATION: int +CAP_PROP_ROLL: int +CAP_PROP_SAR_DEN: int +CAP_PROP_SAR_NUM: int +CAP_PROP_SATURATION: int +CAP_PROP_SETTINGS: int +CAP_PROP_SHARPNESS: int +CAP_PROP_SPEED: int +CAP_PROP_TEMPERATURE: int +CAP_PROP_TILT: int +CAP_PROP_TRIGGER: int +CAP_PROP_TRIGGER_DELAY: int +CAP_PROP_VIEWFINDER: int +CAP_PROP_WB_TEMPERATURE: int +CAP_PROP_WHITE_BALANCE_BLUE_U: int +CAP_PROP_WHITE_BALANCE_RED_V: int +CAP_PROP_XI_ACQ_BUFFER_SIZE: int +CAP_PROP_XI_ACQ_BUFFER_SIZE_UNIT: int +CAP_PROP_XI_ACQ_FRAME_BURST_COUNT: int +CAP_PROP_XI_ACQ_TIMING_MODE: int +CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_COMMIT: int +CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_SIZE: int +CAP_PROP_XI_AEAG: int +CAP_PROP_XI_AEAG_LEVEL: int +CAP_PROP_XI_AEAG_ROI_HEIGHT: int +CAP_PROP_XI_AEAG_ROI_OFFSET_X: int +CAP_PROP_XI_AEAG_ROI_OFFSET_Y: int +CAP_PROP_XI_AEAG_ROI_WIDTH: int +CAP_PROP_XI_AE_MAX_LIMIT: int +CAP_PROP_XI_AG_MAX_LIMIT: int +CAP_PROP_XI_APPLY_CMS: int +CAP_PROP_XI_AUTO_BANDWIDTH_CALCULATION: int +CAP_PROP_XI_AUTO_WB: int +CAP_PROP_XI_AVAILABLE_BANDWIDTH: int +CAP_PROP_XI_BINNING_HORIZONTAL: int +CAP_PROP_XI_BINNING_PATTERN: int +CAP_PROP_XI_BINNING_SELECTOR: int +CAP_PROP_XI_BINNING_VERTICAL: int +CAP_PROP_XI_BPC: int +CAP_PROP_XI_BUFFERS_QUEUE_SIZE: int +CAP_PROP_XI_BUFFER_POLICY: int +CAP_PROP_XI_CC_MATRIX_00: int +CAP_PROP_XI_CC_MATRIX_01: int +CAP_PROP_XI_CC_MATRIX_02: int +CAP_PROP_XI_CC_MATRIX_03: int +CAP_PROP_XI_CC_MATRIX_10: int +CAP_PROP_XI_CC_MATRIX_11: int +CAP_PROP_XI_CC_MATRIX_12: int +CAP_PROP_XI_CC_MATRIX_13: int +CAP_PROP_XI_CC_MATRIX_20: int +CAP_PROP_XI_CC_MATRIX_21: int +CAP_PROP_XI_CC_MATRIX_22: int +CAP_PROP_XI_CC_MATRIX_23: int +CAP_PROP_XI_CC_MATRIX_30: int +CAP_PROP_XI_CC_MATRIX_31: int +CAP_PROP_XI_CC_MATRIX_32: int +CAP_PROP_XI_CC_MATRIX_33: int +CAP_PROP_XI_CHIP_TEMP: int +CAP_PROP_XI_CMS: int +CAP_PROP_XI_COLOR_FILTER_ARRAY: int +CAP_PROP_XI_COLUMN_FPN_CORRECTION: int +CAP_PROP_XI_COOLING: int +CAP_PROP_XI_COUNTER_SELECTOR: int +CAP_PROP_XI_COUNTER_VALUE: int +CAP_PROP_XI_DATA_FORMAT: int +CAP_PROP_XI_DEBOUNCE_EN: int +CAP_PROP_XI_DEBOUNCE_POL: int +CAP_PROP_XI_DEBOUNCE_T0: int +CAP_PROP_XI_DEBOUNCE_T1: int +CAP_PROP_XI_DEBUG_LEVEL: int +CAP_PROP_XI_DECIMATION_HORIZONTAL: int +CAP_PROP_XI_DECIMATION_PATTERN: int +CAP_PROP_XI_DECIMATION_SELECTOR: int +CAP_PROP_XI_DECIMATION_VERTICAL: int +CAP_PROP_XI_DEFAULT_CC_MATRIX: int +CAP_PROP_XI_DEVICE_MODEL_ID: int +CAP_PROP_XI_DEVICE_RESET: int +CAP_PROP_XI_DEVICE_SN: int +CAP_PROP_XI_DOWNSAMPLING: int +CAP_PROP_XI_DOWNSAMPLING_TYPE: int +CAP_PROP_XI_EXPOSURE: int +CAP_PROP_XI_EXPOSURE_BURST_COUNT: int +CAP_PROP_XI_EXP_PRIORITY: int +CAP_PROP_XI_FFS_ACCESS_KEY: int +CAP_PROP_XI_FFS_FILE_ID: int +CAP_PROP_XI_FFS_FILE_SIZE: int +CAP_PROP_XI_FRAMERATE: int +CAP_PROP_XI_FREE_FFS_SIZE: int +CAP_PROP_XI_GAIN: int +CAP_PROP_XI_GAIN_SELECTOR: int +CAP_PROP_XI_GAMMAC: int +CAP_PROP_XI_GAMMAY: int +CAP_PROP_XI_GPI_LEVEL: int +CAP_PROP_XI_GPI_MODE: int +CAP_PROP_XI_GPI_SELECTOR: int +CAP_PROP_XI_GPO_MODE: int +CAP_PROP_XI_GPO_SELECTOR: int +CAP_PROP_XI_HDR: int +CAP_PROP_XI_HDR_KNEEPOINT_COUNT: int +CAP_PROP_XI_HDR_T1: int +CAP_PROP_XI_HDR_T2: int +CAP_PROP_XI_HEIGHT: int +CAP_PROP_XI_HOUS_BACK_SIDE_TEMP: int +CAP_PROP_XI_HOUS_TEMP: int +CAP_PROP_XI_HW_REVISION: int +CAP_PROP_XI_IMAGE_BLACK_LEVEL: int +CAP_PROP_XI_IMAGE_DATA_BIT_DEPTH: int +CAP_PROP_XI_IMAGE_DATA_FORMAT: int +CAP_PROP_XI_IMAGE_DATA_FORMAT_RGB32_ALPHA: int +CAP_PROP_XI_IMAGE_IS_COLOR: int +CAP_PROP_XI_IMAGE_PAYLOAD_SIZE: int +CAP_PROP_XI_IS_COOLED: int +CAP_PROP_XI_IS_DEVICE_EXIST: int +CAP_PROP_XI_KNEEPOINT1: int +CAP_PROP_XI_KNEEPOINT2: int +CAP_PROP_XI_LED_MODE: int +CAP_PROP_XI_LED_SELECTOR: int +CAP_PROP_XI_LENS_APERTURE_VALUE: int +CAP_PROP_XI_LENS_FEATURE: int +CAP_PROP_XI_LENS_FEATURE_SELECTOR: int +CAP_PROP_XI_LENS_FOCAL_LENGTH: int +CAP_PROP_XI_LENS_FOCUS_DISTANCE: int +CAP_PROP_XI_LENS_FOCUS_MOVE: int +CAP_PROP_XI_LENS_FOCUS_MOVEMENT_VALUE: int +CAP_PROP_XI_LENS_MODE: int +CAP_PROP_XI_LIMIT_BANDWIDTH: int +CAP_PROP_XI_LUT_EN: int +CAP_PROP_XI_LUT_INDEX: int +CAP_PROP_XI_LUT_VALUE: int +CAP_PROP_XI_MANUAL_WB: int +CAP_PROP_XI_OFFSET_X: int +CAP_PROP_XI_OFFSET_Y: int +CAP_PROP_XI_OUTPUT_DATA_BIT_DEPTH: int +CAP_PROP_XI_OUTPUT_DATA_PACKING: int +CAP_PROP_XI_OUTPUT_DATA_PACKING_TYPE: int +CAP_PROP_XI_RECENT_FRAME: int +CAP_PROP_XI_REGION_MODE: int +CAP_PROP_XI_REGION_SELECTOR: int +CAP_PROP_XI_ROW_FPN_CORRECTION: int +CAP_PROP_XI_SENSOR_BOARD_TEMP: int +CAP_PROP_XI_SENSOR_CLOCK_FREQ_HZ: int +CAP_PROP_XI_SENSOR_CLOCK_FREQ_INDEX: int +CAP_PROP_XI_SENSOR_DATA_BIT_DEPTH: int +CAP_PROP_XI_SENSOR_FEATURE_SELECTOR: int +CAP_PROP_XI_SENSOR_FEATURE_VALUE: int +CAP_PROP_XI_SENSOR_MODE: int +CAP_PROP_XI_SENSOR_OUTPUT_CHANNEL_COUNT: int +CAP_PROP_XI_SENSOR_TAPS: int +CAP_PROP_XI_SHARPNESS: int +CAP_PROP_XI_SHUTTER_TYPE: int +CAP_PROP_XI_TARGET_TEMP: int +CAP_PROP_XI_TEST_PATTERN: int +CAP_PROP_XI_TEST_PATTERN_GENERATOR_SELECTOR: int +CAP_PROP_XI_TIMEOUT: int +CAP_PROP_XI_TRANSPORT_PIXEL_FORMAT: int +CAP_PROP_XI_TRG_DELAY: int +CAP_PROP_XI_TRG_SELECTOR: int +CAP_PROP_XI_TRG_SOFTWARE: int +CAP_PROP_XI_TRG_SOURCE: int +CAP_PROP_XI_TS_RST_MODE: int +CAP_PROP_XI_TS_RST_SOURCE: int +CAP_PROP_XI_USED_FFS_SIZE: int +CAP_PROP_XI_WB_KB: int +CAP_PROP_XI_WB_KG: int +CAP_PROP_XI_WB_KR: int +CAP_PROP_XI_WIDTH: int +CAP_PROP_ZOOM: int +CAP_PVAPI: int +CAP_PVAPI_DECIMATION_2OUTOF16: int +CAP_PVAPI_DECIMATION_2OUTOF4: int +CAP_PVAPI_DECIMATION_2OUTOF8: int +CAP_PVAPI_DECIMATION_OFF: int +CAP_PVAPI_FSTRIGMODE_FIXEDRATE: int +CAP_PVAPI_FSTRIGMODE_FREERUN: int +CAP_PVAPI_FSTRIGMODE_SOFTWARE: int +CAP_PVAPI_FSTRIGMODE_SYNCIN1: int +CAP_PVAPI_FSTRIGMODE_SYNCIN2: int +CAP_PVAPI_PIXELFORMAT_BAYER16: int +CAP_PVAPI_PIXELFORMAT_BAYER8: int +CAP_PVAPI_PIXELFORMAT_BGR24: int +CAP_PVAPI_PIXELFORMAT_BGRA32: int +CAP_PVAPI_PIXELFORMAT_MONO16: int +CAP_PVAPI_PIXELFORMAT_MONO8: int +CAP_PVAPI_PIXELFORMAT_RGB24: int +CAP_PVAPI_PIXELFORMAT_RGBA32: int +CAP_QT: int +CAP_REALSENSE: int +CAP_UNICAP: int +CAP_V4L: int +CAP_V4L2: int +CAP_VFW: int +CAP_WINRT: int +CAP_XIAPI: int +CAP_XINE: int +CASCADE_DO_CANNY_PRUNING: int +CASCADE_DO_ROUGH_SEARCH: int +CASCADE_FIND_BIGGEST_OBJECT: int +CASCADE_SCALE_IMAGE: int +CCL_DEFAULT: int +CCL_GRANA: int +CCL_WU: int +CC_STAT_AREA: int +CC_STAT_HEIGHT: int +CC_STAT_LEFT: int +CC_STAT_MAX: int +CC_STAT_TOP: int +CC_STAT_WIDTH: int +CHAIN_APPROX_NONE: int +CHAIN_APPROX_SIMPLE: int +CHAIN_APPROX_TC89_KCOS: int +CHAIN_APPROX_TC89_L1: int +CIRCLES_GRID_FINDER_PARAMETERS_ASYMMETRIC_GRID: int +CIRCLES_GRID_FINDER_PARAMETERS_SYMMETRIC_GRID: int +CLAHE = _mod_cv2.CLAHE +CMP_EQ: int +CMP_GE: int +CMP_GT: int +CMP_LE: int +CMP_LT: int +CMP_NE: int +COLORMAP_AUTUMN: int +COLORMAP_BONE: int +COLORMAP_CIVIDIS: int +COLORMAP_COOL: int +COLORMAP_DEEPGREEN: int +COLORMAP_HOT: int +COLORMAP_HSV: int +COLORMAP_INFERNO: int +COLORMAP_JET: int +COLORMAP_MAGMA: int +COLORMAP_OCEAN: int +COLORMAP_PARULA: int +COLORMAP_PINK: int +COLORMAP_PLASMA: int +COLORMAP_RAINBOW: int +COLORMAP_SPRING: int +COLORMAP_SUMMER: int +COLORMAP_TURBO: int +COLORMAP_TWILIGHT: int +COLORMAP_TWILIGHT_SHIFTED: int +COLORMAP_VIRIDIS: int +COLORMAP_WINTER: int +COLOR_BAYER_BG2BGR: int +COLOR_BAYER_BG2BGRA: int +COLOR_BAYER_BG2BGR_EA: int +COLOR_BAYER_BG2BGR_VNG: int +COLOR_BAYER_BG2GRAY: int +COLOR_BAYER_BG2RGB: int +COLOR_BAYER_BG2RGBA: int +COLOR_BAYER_BG2RGB_EA: int +COLOR_BAYER_BG2RGB_VNG: int +COLOR_BAYER_GB2BGR: int +COLOR_BAYER_GB2BGRA: int +COLOR_BAYER_GB2BGR_EA: int +COLOR_BAYER_GB2BGR_VNG: int +COLOR_BAYER_GB2GRAY: int +COLOR_BAYER_GB2RGB: int +COLOR_BAYER_GB2RGBA: int +COLOR_BAYER_GB2RGB_EA: int +COLOR_BAYER_GB2RGB_VNG: int +COLOR_BAYER_GR2BGR: int +COLOR_BAYER_GR2BGRA: int +COLOR_BAYER_GR2BGR_EA: int +COLOR_BAYER_GR2BGR_VNG: int +COLOR_BAYER_GR2GRAY: int +COLOR_BAYER_GR2RGB: int +COLOR_BAYER_GR2RGBA: int +COLOR_BAYER_GR2RGB_EA: int +COLOR_BAYER_GR2RGB_VNG: int +COLOR_BAYER_RG2BGR: int +COLOR_BAYER_RG2BGRA: int +COLOR_BAYER_RG2BGR_EA: int +COLOR_BAYER_RG2BGR_VNG: int +COLOR_BAYER_RG2GRAY: int +COLOR_BAYER_RG2RGB: int +COLOR_BAYER_RG2RGBA: int +COLOR_BAYER_RG2RGB_EA: int +COLOR_BAYER_RG2RGB_VNG: int +COLOR_BGR2BGR555: int +COLOR_BGR2BGR565: int +COLOR_BGR2BGRA: int +COLOR_BGR2GRAY: int +COLOR_BGR2HLS: int +COLOR_BGR2HLS_FULL: int +COLOR_BGR2HSV: int +COLOR_BGR2HSV_FULL: int +COLOR_BGR2LAB: int +COLOR_BGR2LUV: int +COLOR_BGR2Lab: int +COLOR_BGR2Luv: int +COLOR_BGR2RGB: int +COLOR_BGR2RGBA: int +COLOR_BGR2XYZ: int +COLOR_BGR2YCR_CB: int +COLOR_BGR2YCrCb: int +COLOR_BGR2YUV: int +COLOR_BGR2YUV_I420: int +COLOR_BGR2YUV_IYUV: int +COLOR_BGR2YUV_YV12: int +COLOR_BGR5552BGR: int +COLOR_BGR5552BGRA: int +COLOR_BGR5552GRAY: int +COLOR_BGR5552RGB: int +COLOR_BGR5552RGBA: int +COLOR_BGR5652BGR: int +COLOR_BGR5652BGRA: int +COLOR_BGR5652GRAY: int +COLOR_BGR5652RGB: int +COLOR_BGR5652RGBA: int +COLOR_BGRA2BGR: int +COLOR_BGRA2BGR555: int +COLOR_BGRA2BGR565: int +COLOR_BGRA2GRAY: int +COLOR_BGRA2RGB: int +COLOR_BGRA2RGBA: int +COLOR_BGRA2YUV_I420: int +COLOR_BGRA2YUV_IYUV: int +COLOR_BGRA2YUV_YV12: int +COLOR_BayerBG2BGR: int +COLOR_BayerBG2BGRA: int +COLOR_BayerBG2BGR_EA: int +COLOR_BayerBG2BGR_VNG: int +COLOR_BayerBG2GRAY: int +COLOR_BayerBG2RGB: int +COLOR_BayerBG2RGBA: int +COLOR_BayerBG2RGB_EA: int +COLOR_BayerBG2RGB_VNG: int +COLOR_BayerGB2BGR: int +COLOR_BayerGB2BGRA: int +COLOR_BayerGB2BGR_EA: int +COLOR_BayerGB2BGR_VNG: int +COLOR_BayerGB2GRAY: int +COLOR_BayerGB2RGB: int +COLOR_BayerGB2RGBA: int +COLOR_BayerGB2RGB_EA: int +COLOR_BayerGB2RGB_VNG: int +COLOR_BayerGR2BGR: int +COLOR_BayerGR2BGRA: int +COLOR_BayerGR2BGR_EA: int +COLOR_BayerGR2BGR_VNG: int +COLOR_BayerGR2GRAY: int +COLOR_BayerGR2RGB: int +COLOR_BayerGR2RGBA: int +COLOR_BayerGR2RGB_EA: int +COLOR_BayerGR2RGB_VNG: int +COLOR_BayerRG2BGR: int +COLOR_BayerRG2BGRA: int +COLOR_BayerRG2BGR_EA: int +COLOR_BayerRG2BGR_VNG: int +COLOR_BayerRG2GRAY: int +COLOR_BayerRG2RGB: int +COLOR_BayerRG2RGBA: int +COLOR_BayerRG2RGB_EA: int +COLOR_BayerRG2RGB_VNG: int +COLOR_COLORCVT_MAX: int +COLOR_GRAY2BGR: int +COLOR_GRAY2BGR555: int +COLOR_GRAY2BGR565: int +COLOR_GRAY2BGRA: int +COLOR_GRAY2RGB: int +COLOR_GRAY2RGBA: int +COLOR_HLS2BGR: int +COLOR_HLS2BGR_FULL: int +COLOR_HLS2RGB: int +COLOR_HLS2RGB_FULL: int +COLOR_HSV2BGR: int +COLOR_HSV2BGR_FULL: int +COLOR_HSV2RGB: int +COLOR_HSV2RGB_FULL: int +COLOR_LAB2BGR: int +COLOR_LAB2LBGR: int +COLOR_LAB2LRGB: int +COLOR_LAB2RGB: int +COLOR_LBGR2LAB: int +COLOR_LBGR2LUV: int +COLOR_LBGR2Lab: int +COLOR_LBGR2Luv: int +COLOR_LRGB2LAB: int +COLOR_LRGB2LUV: int +COLOR_LRGB2Lab: int +COLOR_LRGB2Luv: int +COLOR_LUV2BGR: int +COLOR_LUV2LBGR: int +COLOR_LUV2LRGB: int +COLOR_LUV2RGB: int +COLOR_Lab2BGR: int +COLOR_Lab2LBGR: int +COLOR_Lab2LRGB: int +COLOR_Lab2RGB: int +COLOR_Luv2BGR: int +COLOR_Luv2LBGR: int +COLOR_Luv2LRGB: int +COLOR_Luv2RGB: int +COLOR_M_RGBA2RGBA: int +COLOR_RGB2BGR: int +COLOR_RGB2BGR555: int +COLOR_RGB2BGR565: int +COLOR_RGB2BGRA: int +COLOR_RGB2GRAY: int +COLOR_RGB2HLS: int +COLOR_RGB2HLS_FULL: int +COLOR_RGB2HSV: int +COLOR_RGB2HSV_FULL: int +COLOR_RGB2LAB: int +COLOR_RGB2LUV: int +COLOR_RGB2Lab: int +COLOR_RGB2Luv: int +COLOR_RGB2RGBA: int +COLOR_RGB2XYZ: int +COLOR_RGB2YCR_CB: int +COLOR_RGB2YCrCb: int +COLOR_RGB2YUV: int +COLOR_RGB2YUV_I420: int +COLOR_RGB2YUV_IYUV: int +COLOR_RGB2YUV_YV12: int +COLOR_RGBA2BGR: int +COLOR_RGBA2BGR555: int +COLOR_RGBA2BGR565: int +COLOR_RGBA2BGRA: int +COLOR_RGBA2GRAY: int +COLOR_RGBA2M_RGBA: int +COLOR_RGBA2RGB: int +COLOR_RGBA2YUV_I420: int +COLOR_RGBA2YUV_IYUV: int +COLOR_RGBA2YUV_YV12: int +COLOR_RGBA2mRGBA: int +COLOR_XYZ2BGR: int +COLOR_XYZ2RGB: int +COLOR_YCR_CB2BGR: int +COLOR_YCR_CB2RGB: int +COLOR_YCrCb2BGR: int +COLOR_YCrCb2RGB: int +COLOR_YUV2BGR: int +COLOR_YUV2BGRA_I420: int +COLOR_YUV2BGRA_IYUV: int +COLOR_YUV2BGRA_NV12: int +COLOR_YUV2BGRA_NV21: int +COLOR_YUV2BGRA_UYNV: int +COLOR_YUV2BGRA_UYVY: int +COLOR_YUV2BGRA_Y422: int +COLOR_YUV2BGRA_YUNV: int +COLOR_YUV2BGRA_YUY2: int +COLOR_YUV2BGRA_YUYV: int +COLOR_YUV2BGRA_YV12: int +COLOR_YUV2BGRA_YVYU: int +COLOR_YUV2BGR_I420: int +COLOR_YUV2BGR_IYUV: int +COLOR_YUV2BGR_NV12: int +COLOR_YUV2BGR_NV21: int +COLOR_YUV2BGR_UYNV: int +COLOR_YUV2BGR_UYVY: int +COLOR_YUV2BGR_Y422: int +COLOR_YUV2BGR_YUNV: int +COLOR_YUV2BGR_YUY2: int +COLOR_YUV2BGR_YUYV: int +COLOR_YUV2BGR_YV12: int +COLOR_YUV2BGR_YVYU: int +COLOR_YUV2GRAY_420: int +COLOR_YUV2GRAY_I420: int +COLOR_YUV2GRAY_IYUV: int +COLOR_YUV2GRAY_NV12: int +COLOR_YUV2GRAY_NV21: int +COLOR_YUV2GRAY_UYNV: int +COLOR_YUV2GRAY_UYVY: int +COLOR_YUV2GRAY_Y422: int +COLOR_YUV2GRAY_YUNV: int +COLOR_YUV2GRAY_YUY2: int +COLOR_YUV2GRAY_YUYV: int +COLOR_YUV2GRAY_YV12: int +COLOR_YUV2GRAY_YVYU: int +COLOR_YUV2RGB: int +COLOR_YUV2RGBA_I420: int +COLOR_YUV2RGBA_IYUV: int +COLOR_YUV2RGBA_NV12: int +COLOR_YUV2RGBA_NV21: int +COLOR_YUV2RGBA_UYNV: int +COLOR_YUV2RGBA_UYVY: int +COLOR_YUV2RGBA_Y422: int +COLOR_YUV2RGBA_YUNV: int +COLOR_YUV2RGBA_YUY2: int +COLOR_YUV2RGBA_YUYV: int +COLOR_YUV2RGBA_YV12: int +COLOR_YUV2RGBA_YVYU: int +COLOR_YUV2RGB_I420: int +COLOR_YUV2RGB_IYUV: int +COLOR_YUV2RGB_NV12: int +COLOR_YUV2RGB_NV21: int +COLOR_YUV2RGB_UYNV: int +COLOR_YUV2RGB_UYVY: int +COLOR_YUV2RGB_Y422: int +COLOR_YUV2RGB_YUNV: int +COLOR_YUV2RGB_YUY2: int +COLOR_YUV2RGB_YUYV: int +COLOR_YUV2RGB_YV12: int +COLOR_YUV2RGB_YVYU: int +COLOR_YUV420P2BGR: int +COLOR_YUV420P2BGRA: int +COLOR_YUV420P2GRAY: int +COLOR_YUV420P2RGB: int +COLOR_YUV420P2RGBA: int +COLOR_YUV420SP2BGR: int +COLOR_YUV420SP2BGRA: int +COLOR_YUV420SP2GRAY: int +COLOR_YUV420SP2RGB: int +COLOR_YUV420SP2RGBA: int +COLOR_YUV420p2BGR: int +COLOR_YUV420p2BGRA: int +COLOR_YUV420p2GRAY: int +COLOR_YUV420p2RGB: int +COLOR_YUV420p2RGBA: int +COLOR_YUV420sp2BGR: int +COLOR_YUV420sp2BGRA: int +COLOR_YUV420sp2GRAY: int +COLOR_YUV420sp2RGB: int +COLOR_YUV420sp2RGBA: int +COLOR_mRGBA2RGBA: int +CONTOURS_MATCH_I1: int +CONTOURS_MATCH_I2: int +CONTOURS_MATCH_I3: int +COVAR_COLS: int +COVAR_NORMAL: int +COVAR_ROWS: int +COVAR_SCALE: int +COVAR_SCRAMBLED: int +COVAR_USE_AVG: int +CV_16S: int +CV_16SC1: int +CV_16SC2: int +CV_16SC3: int +CV_16SC4: int +CV_16U: int +CV_16UC1: int +CV_16UC2: int +CV_16UC3: int +CV_16UC4: int +CV_32F: int +CV_32FC1: int +CV_32FC2: int +CV_32FC3: int +CV_32FC4: int +CV_32S: int +CV_32SC1: int +CV_32SC2: int +CV_32SC3: int +CV_32SC4: int +CV_64F: int +CV_64FC1: int +CV_64FC2: int +CV_64FC3: int +CV_64FC4: int +CV_8S: int +CV_8SC1: int +CV_8SC2: int +CV_8SC3: int +CV_8SC4: int +CV_8U: int +CV_8UC1: int +CV_8UC2: int +CV_8UC3: int +CV_8UC4: int +CalibrateCRF = _mod_cv2.CalibrateCRF +CalibrateDebevec = _mod_cv2.CalibrateDebevec +CalibrateRobertson = _mod_cv2.CalibrateRobertson + + +def CamShift(probImage, window, criteria) -> typing.Any: + 'CamShift(probImage, window, criteria) -> retval, window\n. @brief Finds an object center, size, and orientation.\n. \n. @param probImage Back projection of the object histogram. See calcBackProject.\n. @param window Initial search window.\n. @param criteria Stop criteria for the underlying meanShift.\n. returns\n. (in old interfaces) Number of iterations CAMSHIFT took to converge\n. The function implements the CAMSHIFT object tracking algorithm @cite Bradski98 . First, it finds an\n. object center using meanShift and then adjusts the window size and finds the optimal rotation. The\n. function returns the rotated rectangle structure that includes the object position, size, and\n. orientation. The next position of the search window can be obtained with RotatedRect::boundingRect()\n. \n. See the OpenCV sample camshiftdemo.c that tracks colored objects.\n. \n. @note\n. - (Python) A sample explaining the camshift tracking algorithm can be found at\n. opencv_source_code/samples/python/camshift.py' + ... + + +def Canny(image: ndarray, threshold1, threshold2, edges=..., apertureSize=..., L2gradient=...) -> typing.Any: + 'Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]]) -> edges\n. @brief Finds edges in an image using the Canny algorithm @cite Canny86 .\n. \n. The function finds edges in the input image and marks them in the output map edges using the\n. Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The\n. largest value is used to find initial segments of strong edges. See\n. \n. \n. @param image 8-bit input image.\n. @param edges output edge map; single channels 8-bit image, which has the same size as image .\n. @param threshold1 first threshold for the hysteresis procedure.\n. @param threshold2 second threshold for the hysteresis procedure.\n. @param apertureSize aperture size for the Sobel operator.\n. @param L2gradient a flag, indicating whether a more accurate \\f$L_2\\f$ norm\n. \\f$=\\sqrt{(dI/dx)^2 + (dI/dy)^2}\\f$ should be used to calculate the image gradient magnitude (\n. L2gradient=true ), or whether the default \\f$L_1\\f$ norm \\f$=|dI/dx|+|dI/dy|\\f$ is enough (\n. L2gradient=false ).\n\n\n\nCanny(dx, dy, threshold1, threshold2[, edges[, L2gradient]]) -> edges\n. \\overload\n. \n. Finds edges in an image using the Canny algorithm with custom image gradient.\n. \n. @param dx 16-bit x derivative of input image (CV_16SC1 or CV_16SC3).\n. @param dy 16-bit y derivative of input image (same type as dx).\n. @param edges output edge map; single channels 8-bit image, which has the same size as image .\n. @param threshold1 first threshold for the hysteresis procedure.\n. @param threshold2 second threshold for the hysteresis procedure.\n. @param L2gradient a flag, indicating whether a more accurate \\f$L_2\\f$ norm\n. \\f$=\\sqrt{(dI/dx)^2 + (dI/dy)^2}\\f$ should be used to calculate the image gradient magnitude (\n. L2gradient=true ), or whether the default \\f$L_1\\f$ norm \\f$=|dI/dx|+|dI/dy|\\f$ is enough (\n. L2gradient=false ).' + ... + + +CascadeClassifier = _mod_cv2.CascadeClassifier + + +def CascadeClassifier_convert(oldcascade, newcascade) -> typing.Any: + 'CascadeClassifier_convert(oldcascade, newcascade) -> retval\n.' + ... + + +CirclesGridFinderParameters = _mod_cv2.CirclesGridFinderParameters +CirclesGridFinderParameters_ASYMMETRIC_GRID: int +CirclesGridFinderParameters_SYMMETRIC_GRID: int +DCT_INVERSE: int +DCT_ROWS: int +DECOMP_CHOLESKY: int +DECOMP_EIG: int +DECOMP_LU: int +DECOMP_NORMAL: int +DECOMP_QR: int +DECOMP_SVD: int +DESCRIPTOR_MATCHER_BRUTEFORCE: int +DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMING: int +DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMINGLUT: int +DESCRIPTOR_MATCHER_BRUTEFORCE_L1: int +DESCRIPTOR_MATCHER_BRUTEFORCE_SL2: int +DESCRIPTOR_MATCHER_FLANNBASED: int +DFT_COMPLEX_INPUT: int +DFT_COMPLEX_OUTPUT: int +DFT_INVERSE: int +DFT_REAL_OUTPUT: int +DFT_ROWS: int +DFT_SCALE: int +DISOPTICAL_FLOW_PRESET_FAST: int +DISOPTICAL_FLOW_PRESET_MEDIUM: int +DISOPTICAL_FLOW_PRESET_ULTRAFAST: int +DISOpticalFlow = _mod_cv2.DISOpticalFlow +DISOpticalFlow_PRESET_FAST: int +DISOpticalFlow_PRESET_MEDIUM: int +DISOpticalFlow_PRESET_ULTRAFAST: int + + +def DISOpticalFlow_create(preset=...) -> typing.Any: + 'DISOpticalFlow_create([, preset]) -> retval\n. @brief Creates an instance of DISOpticalFlow\n. \n. @param preset one of PRESET_ULTRAFAST, PRESET_FAST and PRESET_MEDIUM' + ... + + +DIST_C: int +DIST_FAIR: int +DIST_HUBER: int +DIST_L1: int +DIST_L12: int +DIST_L2: int +DIST_LABEL_CCOMP: int +DIST_LABEL_PIXEL: int +DIST_MASK_3: int +DIST_MASK_5: int +DIST_MASK_PRECISE: int +DIST_USER: int +DIST_WELSCH: int +DMatch = _mod_cv2.DMatch +DRAW_MATCHES_FLAGS_DEFAULT: int +DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG: int +DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS: int +DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS: int +DenseOpticalFlow = _mod_cv2.DenseOpticalFlow +DescriptorMatcher = _mod_cv2.DescriptorMatcher +DescriptorMatcher_BRUTEFORCE: int +DescriptorMatcher_BRUTEFORCE_HAMMING: int +DescriptorMatcher_BRUTEFORCE_HAMMINGLUT: int +DescriptorMatcher_BRUTEFORCE_L1: int +DescriptorMatcher_BRUTEFORCE_SL2: int +DescriptorMatcher_FLANNBASED: int + + +def DescriptorMatcher_create(descriptorMatcherType) -> typing.Any: + 'DescriptorMatcher_create(descriptorMatcherType) -> retval\n. @brief Creates a descriptor matcher of a given type with the default parameters (using default\n. constructor).\n. \n. @param descriptorMatcherType Descriptor matcher type. Now the following matcher types are\n. supported:\n. - `BruteForce` (it uses L2 )\n. - `BruteForce-L1`\n. - `BruteForce-Hamming`\n. - `BruteForce-Hamming(2)`\n. - `FlannBased`\n\n\n\nDescriptorMatcher_create(matcherType) -> retval\n.' + ... + + +DrawMatchesFlags_DEFAULT: int +DrawMatchesFlags_DRAW_OVER_OUTIMG: int +DrawMatchesFlags_DRAW_RICH_KEYPOINTS: int +DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS: int + + +def EMD(signature1, signature2, distType, cost=..., lowerBound=..., flow=...) -> typing.Any: + 'EMD(signature1, signature2, distType[, cost[, lowerBound[, flow]]]) -> retval, lowerBound, flow\n. @brief Computes the "minimal work" distance between two weighted point configurations.\n. \n. The function computes the earth mover distance and/or a lower boundary of the distance between the\n. two weighted point configurations. One of the applications described in @cite RubnerSept98,\n. @cite Rubner2000 is multi-dimensional histogram comparison for image retrieval. EMD is a transportation\n. problem that is solved using some modification of a simplex algorithm, thus the complexity is\n. exponential in the worst case, though, on average it is much faster. In the case of a real metric\n. the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used\n. to determine roughly whether the two signatures are far enough so that they cannot relate to the\n. same object.\n. \n. @param signature1 First signature, a \\f$\\texttt{size1}\\times \\texttt{dims}+1\\f$ floating-point matrix.\n. Each row stores the point weight followed by the point coordinates. The matrix is allowed to have\n. a single column (weights only) if the user-defined cost matrix is used. The weights must be\n. non-negative and have at least one non-zero value.\n. @param signature2 Second signature of the same format as signature1 , though the number of rows\n. may be different. The total weights may be different. In this case an extra "dummy" point is added\n. to either signature1 or signature2. The weights must be non-negative and have at least one non-zero\n. value.\n. @param distType Used metric. See #DistanceTypes.\n. @param cost User-defined \\f$\\texttt{size1}\\times \\texttt{size2}\\f$ cost matrix. Also, if a cost matrix\n. is used, lower boundary lowerBound cannot be calculated because it needs a metric function.\n. @param lowerBound Optional input/output parameter: lower boundary of a distance between the two\n. signatures that is a distance between mass centers. The lower boundary may not be calculated if\n. the user-defined cost matrix is used, the total weights of point configurations are not equal, or\n. if the signatures consist of weights only (the signature matrices have a single column). You\n. **must** initialize \\*lowerBound . If the calculated distance between mass centers is greater or\n. equal to \\*lowerBound (it means that the signatures are far enough), the function does not\n. calculate EMD. In any case \\*lowerBound is set to the calculated distance between mass centers on\n. return. Thus, if you want to calculate both distance between mass centers and EMD, \\*lowerBound\n. should be set to 0.\n. @param flow Resultant \\f$\\texttt{size1} \\times \\texttt{size2}\\f$ flow matrix: \\f$\\texttt{flow}_{i,j}\\f$ is\n. a flow from \\f$i\\f$ -th point of signature1 to \\f$j\\f$ -th point of signature2 .' + ... + + +EVENT_FLAG_ALTKEY: int +EVENT_FLAG_CTRLKEY: int +EVENT_FLAG_LBUTTON: int +EVENT_FLAG_MBUTTON: int +EVENT_FLAG_RBUTTON: int +EVENT_FLAG_SHIFTKEY: int +EVENT_LBUTTONDBLCLK: int +EVENT_LBUTTONDOWN: int +EVENT_LBUTTONUP: int +EVENT_MBUTTONDBLCLK: int +EVENT_MBUTTONDOWN: int +EVENT_MBUTTONUP: int +EVENT_MOUSEHWHEEL: int +EVENT_MOUSEMOVE: int +EVENT_MOUSEWHEEL: int +EVENT_RBUTTONDBLCLK: int +EVENT_RBUTTONDOWN: int +EVENT_RBUTTONUP: int +FAST_FEATURE_DETECTOR_FAST_N: int +FAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION: int +FAST_FEATURE_DETECTOR_THRESHOLD: int +FAST_FEATURE_DETECTOR_TYPE_5_8: int +FAST_FEATURE_DETECTOR_TYPE_7_12: int +FAST_FEATURE_DETECTOR_TYPE_9_16: int +FILE_NODE_EMPTY: int +FILE_NODE_FLOAT: int +FILE_NODE_FLOW: int +FILE_NODE_INT: int +FILE_NODE_MAP: int +FILE_NODE_NAMED: int +FILE_NODE_NONE: int +FILE_NODE_REAL: int +FILE_NODE_SEQ: int +FILE_NODE_STR: int +FILE_NODE_STRING: int +FILE_NODE_TYPE_MASK: int +FILE_NODE_UNIFORM: int +FILE_STORAGE_APPEND: int +FILE_STORAGE_BASE64: int +FILE_STORAGE_FORMAT_AUTO: int +FILE_STORAGE_FORMAT_JSON: int +FILE_STORAGE_FORMAT_MASK: int +FILE_STORAGE_FORMAT_XML: int +FILE_STORAGE_FORMAT_YAML: int +FILE_STORAGE_INSIDE_MAP: int +FILE_STORAGE_MEMORY: int +FILE_STORAGE_NAME_EXPECTED: int +FILE_STORAGE_READ: int +FILE_STORAGE_UNDEFINED: int +FILE_STORAGE_VALUE_EXPECTED: int +FILE_STORAGE_WRITE: int +FILE_STORAGE_WRITE_BASE64: int +FILLED: int +FILTER_SCHARR: int +FLOODFILL_FIXED_RANGE: int +FLOODFILL_MASK_ONLY: int +FM_7POINT: int +FM_8POINT: int +FM_LMEDS: int +FM_RANSAC: int +FONT_HERSHEY_COMPLEX: int +FONT_HERSHEY_COMPLEX_SMALL: int +FONT_HERSHEY_DUPLEX: int +FONT_HERSHEY_PLAIN: int +FONT_HERSHEY_SCRIPT_COMPLEX: int +FONT_HERSHEY_SCRIPT_SIMPLEX: int +FONT_HERSHEY_SIMPLEX: int +FONT_HERSHEY_TRIPLEX: int +FONT_ITALIC: int +FORMATTER_FMT_C: int +FORMATTER_FMT_CSV: int +FORMATTER_FMT_DEFAULT: int +FORMATTER_FMT_MATLAB: int +FORMATTER_FMT_NUMPY: int +FORMATTER_FMT_PYTHON: int +FarnebackOpticalFlow = _mod_cv2.FarnebackOpticalFlow + + +def FarnebackOpticalFlow_create(numLevels=..., pyrScale=..., fastPyramids=..., winSize=..., numIters=..., polyN=..., polySigma=..., flags: int = ...) -> typing.Any: + 'FarnebackOpticalFlow_create([, numLevels[, pyrScale[, fastPyramids[, winSize[, numIters[, polyN[, polySigma[, flags]]]]]]]]) -> retval\n.' + ... + + +FastFeatureDetector = _mod_cv2.FastFeatureDetector +FastFeatureDetector_FAST_N: int +FastFeatureDetector_NONMAX_SUPPRESSION: int +FastFeatureDetector_THRESHOLD: int +FastFeatureDetector_TYPE_5_8: int +FastFeatureDetector_TYPE_7_12: int +FastFeatureDetector_TYPE_9_16: int + + +def FastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...) -> typing.Any: + 'FastFeatureDetector_create([, threshold[, nonmaxSuppression[, type]]]) -> retval\n.' + ... + + +Feature2D = _mod_cv2.Feature2D +FileNode = _mod_cv2.FileNode +FileNode_EMPTY: int +FileNode_FLOAT: int +FileNode_FLOW: int +FileNode_INT: int +FileNode_MAP: int +FileNode_NAMED: int +FileNode_NONE: int +FileNode_REAL: int +FileNode_SEQ: int +FileNode_STR: int +FileNode_STRING: int +FileNode_TYPE_MASK: int +FileNode_UNIFORM: int +FileStorage = _mod_cv2.FileStorage +FileStorage_APPEND: int +FileStorage_BASE64: int +FileStorage_FORMAT_AUTO: int +FileStorage_FORMAT_JSON: int +FileStorage_FORMAT_MASK: int +FileStorage_FORMAT_XML: int +FileStorage_FORMAT_YAML: int +FileStorage_INSIDE_MAP: int +FileStorage_MEMORY: int +FileStorage_NAME_EXPECTED: int +FileStorage_READ: int +FileStorage_UNDEFINED: int +FileStorage_VALUE_EXPECTED: int +FileStorage_WRITE: int +FileStorage_WRITE_BASE64: int +FlannBasedMatcher = _mod_cv2.FlannBasedMatcher + + +def FlannBasedMatcher_create() -> typing.Any: + 'FlannBasedMatcher_create() -> retval\n.' + ... + + +Formatter_FMT_C: int +Formatter_FMT_CSV: int +Formatter_FMT_DEFAULT: int +Formatter_FMT_MATLAB: int +Formatter_FMT_NUMPY: int +Formatter_FMT_PYTHON: int +GC_BGD: int +GC_EVAL: int +GC_EVAL_FREEZE_MODEL: int +GC_FGD: int +GC_INIT_WITH_MASK: int +GC_INIT_WITH_RECT: int +GC_PR_BGD: int +GC_PR_FGD: int +GEMM_1_T: int +GEMM_2_T: int +GEMM_3_T: int +GFTTDetector = _mod_cv2.GFTTDetector + + +def GFTTDetector_create(maxCorners=..., qualityLevel=..., minDistance=..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: + 'GFTTDetector_create([, maxCorners[, qualityLevel[, minDistance[, blockSize[, useHarrisDetector[, k]]]]]]) -> retval\n. \n\n\n\nGFTTDetector_create(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize[, useHarrisDetector[, k]]) -> retval\n.' + ... + + +def GaussianBlur(src: ndarray, ksize, sigmaX, dts: ndarray = ..., sigmaY=..., borderType=...) -> typing.Any: + "GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]]) -> dst\n. @brief Blurs an image using a Gaussian filter.\n. \n. The function convolves the source image with the specified Gaussian kernel. In-place filtering is\n. supported.\n. \n. @param src input image; the image can have any number of channels, which are processed\n. independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param ksize Gaussian kernel size. ksize.width and ksize.height can differ but they both must be\n. positive and odd. Or, they can be zero's and then they are computed from sigma.\n. @param sigmaX Gaussian kernel standard deviation in X direction.\n. @param sigmaY Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be\n. equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height,\n. respectively (see #getGaussianKernel for details); to fully control the result regardless of\n. possible future modifications of all this semantics, it is recommended to specify all of ksize,\n. sigmaX, and sigmaY.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. \n. @sa sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur" + ... + + +GeneralizedHough = _mod_cv2.GeneralizedHough +GeneralizedHoughBallard = _mod_cv2.GeneralizedHoughBallard +GeneralizedHoughGuil = _mod_cv2.GeneralizedHoughGuil +HISTCMP_BHATTACHARYYA: int +HISTCMP_CHISQR: int +HISTCMP_CHISQR_ALT: int +HISTCMP_CORREL: int +HISTCMP_HELLINGER: int +HISTCMP_INTERSECT: int +HISTCMP_KL_DIV: int +HOGDESCRIPTOR_DEFAULT_NLEVELS: int +HOGDESCRIPTOR_DESCR_FORMAT_COL_BY_COL: int +HOGDESCRIPTOR_DESCR_FORMAT_ROW_BY_ROW: int +HOGDESCRIPTOR_L2HYS: int +HOGDescriptor = _mod_cv2.HOGDescriptor +HOGDescriptor_DEFAULT_NLEVELS: int +HOGDescriptor_DESCR_FORMAT_COL_BY_COL: int +HOGDescriptor_DESCR_FORMAT_ROW_BY_ROW: int +HOGDescriptor_L2Hys: int + + +def HOGDescriptor_getDaimlerPeopleDetector() -> typing.Any: + 'HOGDescriptor_getDaimlerPeopleDetector() -> retval\n. @brief Returns coefficients of the classifier trained for people detection (for 48x96 windows).' + ... + + +def HOGDescriptor_getDefaultPeopleDetector() -> typing.Any: + 'HOGDescriptor_getDefaultPeopleDetector() -> retval\n. @brief Returns coefficients of the classifier trained for people detection (for 64x128 windows).' + ... + + +HOUGH_GRADIENT: int +HOUGH_GRADIENT_ALT: int +HOUGH_MULTI_SCALE: int +HOUGH_PROBABILISTIC: int +HOUGH_STANDARD: int + + +def HoughCircles(image: ndarray, method: int, dp, minDist, circles=..., param1=..., param2=..., minRadius=..., maxRadius=...) -> typing.Any: + 'HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]]) -> circles\n. @brief Finds circles in a grayscale image using the Hough transform.\n. \n. The function finds circles in a grayscale image using a modification of the Hough transform.\n. \n. Example: :\n. @include snippets/imgproc_HoughLinesCircles.cpp\n. \n. @note Usually the function detects the centers of circles well. However, it may fail to find correct\n. radii. You can assist to the function by specifying the radius range ( minRadius and maxRadius ) if\n. you know it. Or, in the case of #HOUGH_GRADIENT method you may set maxRadius to a negative number\n. to return centers only without radius search, and find the correct radius using an additional procedure.\n. \n. It also helps to smooth image a bit unless it\'s already soft. For example,\n. GaussianBlur() with 7x7 kernel and 1.5x1.5 sigma or similar blurring may help.\n. \n. @param image 8-bit, single-channel, grayscale input image.\n. @param circles Output vector of found circles. Each vector is encoded as 3 or 4 element\n. floating-point vector \\f$(x, y, radius)\\f$ or \\f$(x, y, radius, votes)\\f$ .\n. @param method Detection method, see #HoughModes. The available methods are #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT.\n. @param dp Inverse ratio of the accumulator resolution to the image resolution. For example, if\n. dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has\n. half as big width and height. For #HOUGH_GRADIENT_ALT the recommended value is dp=1.5,\n. unless some small very circles need to be detected.\n. @param minDist Minimum distance between the centers of the detected circles. If the parameter is\n. too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is\n. too large, some circles may be missed.\n. @param param1 First method-specific parameter. In case of #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT,\n. it is the higher threshold of the two passed to the Canny edge detector (the lower one is twice smaller).\n. Note that #HOUGH_GRADIENT_ALT uses #Scharr algorithm to compute image derivatives, so the threshold value\n. shough normally be higher, such as 300 or normally exposed and contrasty images.\n. @param param2 Second method-specific parameter. In case of #HOUGH_GRADIENT, it is the\n. accumulator threshold for the circle centers at the detection stage. The smaller it is, the more\n. false circles may be detected. Circles, corresponding to the larger accumulator values, will be\n. returned first. In the case of #HOUGH_GRADIENT_ALT algorithm, this is the circle "perfectness" measure.\n. The closer it to 1, the better shaped circles algorithm selects. In most cases 0.9 should be fine.\n. If you want get better detection of small circles, you may decrease it to 0.85, 0.8 or even less.\n. But then also try to limit the search range [minRadius, maxRadius] to avoid many false circles.\n. @param minRadius Minimum circle radius.\n. @param maxRadius Maximum circle radius. If <= 0, uses the maximum image dimension. If < 0, #HOUGH_GRADIENT returns\n. centers without finding the radius. #HOUGH_GRADIENT_ALT always computes circle radiuses.\n. \n. @sa fitEllipse, minEnclosingCircle' + ... + + +def HoughLines(image: ndarray, rho, theta, threshold, lines=..., srn=..., stn=..., min_theta=..., max_theta=...) -> typing.Any: + 'HoughLines(image, rho, theta, threshold[, lines[, srn[, stn[, min_theta[, max_theta]]]]]) -> lines\n. @brief Finds lines in a binary image using the standard Hough transform.\n. \n. The function implements the standard or standard multi-scale Hough transform algorithm for line\n. detection. See for a good explanation of Hough\n. transform.\n. \n. @param image 8-bit, single-channel binary source image. The image may be modified by the function.\n. @param lines Output vector of lines. Each line is represented by a 2 or 3 element vector\n. \\f$(\\rho, \\theta)\\f$ or \\f$(\\rho, \\theta, \\textrm{votes})\\f$ . \\f$\\rho\\f$ is the distance from the coordinate origin \\f$(0,0)\\f$ (top-left corner of\n. the image). \\f$\\theta\\f$ is the line rotation angle in radians (\n. \\f$0 \\sim \\textrm{vertical line}, \\pi/2 \\sim \\textrm{horizontal line}\\f$ ).\n. \\f$\\textrm{votes}\\f$ is the value of accumulator.\n. @param rho Distance resolution of the accumulator in pixels.\n. @param theta Angle resolution of the accumulator in radians.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ ).\n. @param srn For the multi-scale Hough transform, it is a divisor for the distance resolution rho .\n. The coarse accumulator distance resolution is rho and the accurate accumulator resolution is\n. rho/srn . If both srn=0 and stn=0 , the classical Hough transform is used. Otherwise, both these\n. parameters should be positive.\n. @param stn For the multi-scale Hough transform, it is a divisor for the distance resolution theta.\n. @param min_theta For standard and multi-scale Hough transform, minimum angle to check for lines.\n. Must fall between 0 and max_theta.\n. @param max_theta For standard and multi-scale Hough transform, maximum angle to check for lines.\n. Must fall between min_theta and CV_PI.' + ... + + +def HoughLinesP(image: ndarray, rho, theta, threshold, lines=..., minLineLength=..., maxLineGap=...) -> typing.Any: + 'HoughLinesP(image, rho, theta, threshold[, lines[, minLineLength[, maxLineGap]]]) -> lines\n. @brief Finds line segments in a binary image using the probabilistic Hough transform.\n. \n. The function implements the probabilistic Hough transform algorithm for line detection, described\n. in @cite Matas00\n. \n. See the line detection example below:\n. @include snippets/imgproc_HoughLinesP.cpp\n. This is a sample picture the function parameters have been tuned for:\n. \n. ![image](pics/building.jpg)\n. \n. And this is the output of the above program in case of the probabilistic Hough transform:\n. \n. ![image](pics/houghp.png)\n. \n. @param image 8-bit, single-channel binary source image. The image may be modified by the function.\n. @param lines Output vector of lines. Each line is represented by a 4-element vector\n. \\f$(x_1, y_1, x_2, y_2)\\f$ , where \\f$(x_1,y_1)\\f$ and \\f$(x_2, y_2)\\f$ are the ending points of each detected\n. line segment.\n. @param rho Distance resolution of the accumulator in pixels.\n. @param theta Angle resolution of the accumulator in radians.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ ).\n. @param minLineLength Minimum line length. Line segments shorter than that are rejected.\n. @param maxLineGap Maximum allowed gap between points on the same line to link them.\n. \n. @sa LineSegmentDetector' + ... + + +def HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step, _lines=...) -> typing.Any: + "HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step[, _lines]) -> _lines\n. @brief Finds lines in a set of points using the standard Hough transform.\n. \n. The function finds lines in a set of points using a modification of the Hough transform.\n. @include snippets/imgproc_HoughLinesPointSet.cpp\n. @param _point Input vector of points. Each vector must be encoded as a Point vector \\f$(x,y)\\f$. Type must be CV_32FC2 or CV_32SC2.\n. @param _lines Output vector of found lines. Each vector is encoded as a vector \\f$(votes, rho, theta)\\f$.\n. The larger the value of 'votes', the higher the reliability of the Hough line.\n. @param lines_max Max count of hough lines.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ )\n. @param min_rho Minimum Distance value of the accumulator in pixels.\n. @param max_rho Maximum Distance value of the accumulator in pixels.\n. @param rho_step Distance resolution of the accumulator in pixels.\n. @param min_theta Minimum angle value of the accumulator in radians.\n. @param max_theta Maximum angle value of the accumulator in radians.\n. @param theta_step Angle resolution of the accumulator in radians." + ... + + +def HuMoments(m, hu=...) -> typing.Any: + 'HuMoments(m[, hu]) -> hu\n. @overload' + ... + + +IMREAD_ANYCOLOR: int +IMREAD_ANYDEPTH: int +IMREAD_COLOR: int +IMREAD_GRAYSCALE: int +IMREAD_IGNORE_ORIENTATION: int +IMREAD_LOAD_GDAL: int +IMREAD_REDUCED_COLOR_2: int +IMREAD_REDUCED_COLOR_4: int +IMREAD_REDUCED_COLOR_8: int +IMREAD_REDUCED_GRAYSCALE_2: int +IMREAD_REDUCED_GRAYSCALE_4: int +IMREAD_REDUCED_GRAYSCALE_8: int +IMREAD_UNCHANGED: int +IMWRITE_EXR_TYPE: int +IMWRITE_EXR_TYPE_FLOAT: int +IMWRITE_EXR_TYPE_HALF: int +IMWRITE_JPEG2000_COMPRESSION_X1000: int +IMWRITE_JPEG_CHROMA_QUALITY: int +IMWRITE_JPEG_LUMA_QUALITY: int +IMWRITE_JPEG_OPTIMIZE: int +IMWRITE_JPEG_PROGRESSIVE: int +IMWRITE_JPEG_QUALITY: int +IMWRITE_JPEG_RST_INTERVAL: int +IMWRITE_PAM_FORMAT_BLACKANDWHITE: int +IMWRITE_PAM_FORMAT_GRAYSCALE: int +IMWRITE_PAM_FORMAT_GRAYSCALE_ALPHA: int +IMWRITE_PAM_FORMAT_NULL: int +IMWRITE_PAM_FORMAT_RGB: int +IMWRITE_PAM_FORMAT_RGB_ALPHA: int +IMWRITE_PAM_TUPLETYPE: int +IMWRITE_PNG_BILEVEL: int +IMWRITE_PNG_COMPRESSION: int +IMWRITE_PNG_STRATEGY: int +IMWRITE_PNG_STRATEGY_DEFAULT: int +IMWRITE_PNG_STRATEGY_FILTERED: int +IMWRITE_PNG_STRATEGY_FIXED: int +IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY: int +IMWRITE_PNG_STRATEGY_RLE: int +IMWRITE_PXM_BINARY: int +IMWRITE_TIFF_COMPRESSION: int +IMWRITE_TIFF_RESUNIT: int +IMWRITE_TIFF_XDPI: int +IMWRITE_TIFF_YDPI: int +IMWRITE_WEBP_QUALITY: int +INPAINT_NS: int +INPAINT_TELEA: int +INTERSECT_FULL: int +INTERSECT_NONE: int +INTERSECT_PARTIAL: int +INTER_AREA: int +INTER_BITS: int +INTER_BITS2: int +INTER_CUBIC: int +INTER_LANCZOS4: int +INTER_LINEAR: int +INTER_LINEAR_EXACT: int +INTER_MAX: int +INTER_NEAREST: int +INTER_TAB_SIZE: int +INTER_TAB_SIZE2: int +KAZE = _mod_cv2.KAZE +KAZE_DIFF_CHARBONNIER: int +KAZE_DIFF_PM_G1: int +KAZE_DIFF_PM_G2: int +KAZE_DIFF_WEICKERT: int + + +def KAZE_create(extended=..., upright=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: + 'KAZE_create([, extended[, upright[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]) -> retval\n. @brief The KAZE constructor\n. \n. @param extended Set to enable extraction of extended (128-byte) descriptor.\n. @param upright Set to enable use of upright descriptors (non rotation-invariant).\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' + ... + + +KMEANS_PP_CENTERS: int +KMEANS_RANDOM_CENTERS: int +KMEANS_USE_INITIAL_LABELS: int +KalmanFilter = _mod_cv2.KalmanFilter +KeyPoint = _mod_cv2.KeyPoint + + +def KeyPoint_convert(keypoints, keypointIndexes=...) -> typing.Any: + 'KeyPoint_convert(keypoints[, keypointIndexes]) -> points2f\n. This method converts vector of keypoints to vector of points or the reverse, where each keypoint is\n. assigned the same size and the same orientation.\n. \n. @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB\n. @param points2f Array of (x,y) coordinates of each keypoint\n. @param keypointIndexes Array of indexes of keypoints to be converted to points. (Acts like a mask to\n. convert only specified keypoints)\n\n\n\nKeyPoint_convert(points2f[, size[, response[, octave[, class_id]]]]) -> keypoints\n. @overload\n. @param points2f Array of (x,y) coordinates of each keypoint\n. @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB\n. @param size keypoint diameter\n. @param response keypoint detector response on the keypoint (that is, strength of the keypoint)\n. @param octave pyramid octave in which the keypoint has been detected\n. @param class_id object id' + ... + + +def KeyPoint_overlap(kp1, kp2) -> typing.Any: + "KeyPoint_overlap(kp1, kp2) -> retval\n. This method computes overlap for pair of keypoints. Overlap is the ratio between area of keypoint\n. regions' intersection and area of keypoint regions' union (considering keypoint region as circle).\n. If they don't overlap, we get zero. If they coincide at same location with same size, we get 1.\n. @param kp1 First keypoint\n. @param kp2 Second keypoint" + ... + + +LDR_SIZE: int +LINE_4: int +LINE_8: int +LINE_AA: int +LMEDS: int +LSD_REFINE_ADV: int +LSD_REFINE_NONE: int +LSD_REFINE_STD: int + + +def LUT(src: ndarray, lut, dts: ndarray = ...) -> typing.Any: + 'LUT(src, lut[, dst]) -> dst\n. @brief Performs a look-up table transform of an array.\n. \n. The function LUT fills the output array with values from the look-up table. Indices of the entries\n. are taken from the input array. That is, the function processes each element of src as follows:\n. \\f[\\texttt{dst} (I) \\leftarrow \\texttt{lut(src(I) + d)}\\f]\n. where\n. \\f[d = \\fork{0}{if \\(\\texttt{src}\\) has depth \\(\\texttt{CV_8U}\\)}{128}{if \\(\\texttt{src}\\) has depth \\(\\texttt{CV_8S}\\)}\\f]\n. @param src input array of 8-bit elements.\n. @param lut look-up table of 256 elements; in case of multi-channel input array, the table should\n. either have a single channel (in this case the same table is used for all channels) or the same\n. number of channels as in the input array.\n. @param dst output array of the same size and number of channels as src, and the same depth as lut.\n. @sa convertScaleAbs, Mat::convertTo' + ... + + +def Laplacian(src: ndarray, ddepth, dts: ndarray = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: + 'Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst\n. @brief Calculates the Laplacian of an image.\n. \n. The function calculates the Laplacian of the source image by adding up the second x and y\n. derivatives calculated using the Sobel operator:\n. \n. \\f[\\texttt{dst} = \\Delta \\texttt{src} = \\frac{\\partial^2 \\texttt{src}}{\\partial x^2} + \\frac{\\partial^2 \\texttt{src}}{\\partial y^2}\\f]\n. \n. This is done when `ksize > 1`. When `ksize == 1`, the Laplacian is computed by filtering the image\n. with the following \\f$3 \\times 3\\f$ aperture:\n. \n. \\f[\\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\\f]\n. \n. @param src Source image.\n. @param dst Destination image of the same size and the same number of channels as src .\n. @param ddepth Desired depth of the destination image.\n. @param ksize Aperture size used to compute the second-derivative filters. See #getDerivKernels for\n. details. The size must be positive and odd.\n. @param scale Optional scale factor for the computed Laplacian values. By default, no scaling is\n. applied. See #getDerivKernels for details.\n. @param delta Optional delta value that is added to the results prior to storing them in dst .\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa Sobel, Scharr' + ... + + +LineSegmentDetector = _mod_cv2.LineSegmentDetector +MARKER_CROSS: int +MARKER_DIAMOND: int +MARKER_SQUARE: int +MARKER_STAR: int +MARKER_TILTED_CROSS: int +MARKER_TRIANGLE_DOWN: int +MARKER_TRIANGLE_UP: int +MAT_AUTO_STEP: int +MAT_CONTINUOUS_FLAG: int +MAT_DEPTH_MASK: int +MAT_MAGIC_MASK: int +MAT_MAGIC_VAL: int +MAT_SUBMATRIX_FLAG: int +MAT_TYPE_MASK: int +MIXED_CLONE: int +MONOCHROME_TRANSFER: int +MORPH_BLACKHAT: int +MORPH_CLOSE: int +MORPH_CROSS: int +MORPH_DILATE: int +MORPH_ELLIPSE: int +MORPH_ERODE: int +MORPH_GRADIENT: int +MORPH_HITMISS: int +MORPH_OPEN: int +MORPH_RECT: int +MORPH_TOPHAT: int +MOTION_AFFINE: int +MOTION_EUCLIDEAN: int +MOTION_HOMOGRAPHY: int +MOTION_TRANSLATION: int +MSER = _mod_cv2.MSER + + +def MSER_create(_delta=..., _min_area=..., _max_area=..., _max_variation=..., _min_diversity=..., _max_evolution=..., _area_threshold=..., _min_margin=..., _edge_blur_size=...) -> typing.Any: + 'MSER_create([, _delta[, _min_area[, _max_area[, _max_variation[, _min_diversity[, _max_evolution[, _area_threshold[, _min_margin[, _edge_blur_size]]]]]]]]]) -> retval\n. @brief Full constructor for %MSER detector\n. \n. @param _delta it compares \\f$(size_{i}-size_{i-delta})/size_{i-delta}\\f$\n. @param _min_area prune the area which smaller than minArea\n. @param _max_area prune the area which bigger than maxArea\n. @param _max_variation prune the area have similar size to its children\n. @param _min_diversity for color image, trace back to cut off mser with diversity less than min_diversity\n. @param _max_evolution for color image, the evolution steps\n. @param _area_threshold for color image, the area threshold to cause re-initialize\n. @param _min_margin for color image, ignore too small margin\n. @param _edge_blur_size for color image, the aperture size for edge blur' + ... + + +def Mahalanobis(v1, v2, icovar) -> typing.Any: + 'Mahalanobis(v1, v2, icovar) -> retval\n. @brief Calculates the Mahalanobis distance between two vectors.\n. \n. The function cv::Mahalanobis calculates and returns the weighted distance between two vectors:\n. \\f[d( \\texttt{vec1} , \\texttt{vec2} )= \\sqrt{\\sum_{i,j}{\\texttt{icovar(i,j)}\\cdot(\\texttt{vec1}(I)-\\texttt{vec2}(I))\\cdot(\\texttt{vec1(j)}-\\texttt{vec2(j)})} }\\f]\n. The covariance matrix may be calculated using the #calcCovarMatrix function and then inverted using\n. the invert function (preferably using the #DECOMP_SVD method, as the most accurate).\n. @param v1 first 1D input vector.\n. @param v2 second 1D input vector.\n. @param icovar inverse covariance matrix.' + ... + + +Mat_AUTO_STEP: int +Mat_CONTINUOUS_FLAG: int +Mat_DEPTH_MASK: int +Mat_MAGIC_MASK: int +Mat_MAGIC_VAL: int +Mat_SUBMATRIX_FLAG: int +Mat_TYPE_MASK: int +MergeDebevec = _mod_cv2.MergeDebevec +MergeExposures = _mod_cv2.MergeExposures +MergeMertens = _mod_cv2.MergeMertens +MergeRobertson = _mod_cv2.MergeRobertson +NORMAL_CLONE: int +NORMCONV_FILTER: int +NORM_HAMMING: int +NORM_HAMMING2: int +NORM_INF: int +NORM_L1: int +NORM_L2: int +NORM_L2SQR: int +NORM_MINMAX: int +NORM_RELATIVE: int +NORM_TYPE_MASK: int +OPTFLOW_FARNEBACK_GAUSSIAN: int +OPTFLOW_LK_GET_MIN_EIGENVALS: int +OPTFLOW_USE_INITIAL_FLOW: int +ORB = _mod_cv2.ORB +ORB_FAST_SCORE: int +ORB_HARRIS_SCORE: int + + +def ORB_create(nfeatures=..., scaleFactor=..., nlevels=..., edgeThreshold=..., firstLevel=..., WTA_K=..., scoreType=..., patchSize=..., fastThreshold=...) -> typing.Any: + 'ORB_create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval\n. @brief The ORB constructor\n. \n. @param nfeatures The maximum number of features to retain.\n. @param scaleFactor Pyramid decimation ratio, greater than 1. scaleFactor==2 means the classical\n. pyramid, where each next level has 4x less pixels than the previous, but such a big scale factor\n. will degrade feature matching scores dramatically. On the other hand, too close to 1 scale factor\n. will mean that to cover certain scale range you will need more pyramid levels and so the speed\n. will suffer.\n. @param nlevels The number of pyramid levels. The smallest level will have linear size equal to\n. input_image_linear_size/pow(scaleFactor, nlevels - firstLevel).\n. @param edgeThreshold This is size of the border where the features are not detected. It should\n. roughly match the patchSize parameter.\n. @param firstLevel The level of pyramid to put source image to. Previous layers are filled\n. with upscaled source image.\n. @param WTA_K The number of points that produce each element of the oriented BRIEF descriptor. The\n. default value 2 means the BRIEF where we take a random point pair and compare their brightnesses,\n. so we get 0/1 response. Other possible values are 3 and 4. For example, 3 means that we take 3\n. random points (of course, those point coordinates are random, but they are generated from the\n. pre-defined seed, so each element of BRIEF descriptor is computed deterministically from the pixel\n. rectangle), find point of maximum brightness and output index of the winner (0, 1 or 2). Such\n. output will occupy 2 bits, and therefore it will need a special variant of Hamming distance,\n. denoted as NORM_HAMMING2 (2 bits per bin). When WTA_K=4, we take 4 random points to compute each\n. bin (that will also occupy 2 bits with possible values 0, 1, 2 or 3).\n. @param scoreType The default HARRIS_SCORE means that Harris algorithm is used to rank features\n. (the score is written to KeyPoint::score and is used to retain best nfeatures features);\n. FAST_SCORE is alternative value of the parameter that produces slightly less stable keypoints,\n. but it is a little faster to compute.\n. @param patchSize size of the patch used by the oriented BRIEF descriptor. Of course, on smaller\n. pyramid layers the perceived image area covered by a feature will be larger.\n. @param fastThreshold the fast threshold' + ... + + +PARAM_ALGORITHM: int +PARAM_BOOLEAN: int +PARAM_FLOAT: int +PARAM_INT: int +PARAM_MAT: int +PARAM_MAT_VECTOR: int +PARAM_REAL: int +PARAM_SCALAR: int +PARAM_STRING: int +PARAM_UCHAR: int +PARAM_UINT64: int +PARAM_UNSIGNED_INT: int + + +def PCABackProject(data, mean, eigenvectors, result=...) -> typing.Any: + 'PCABackProject(data, mean, eigenvectors[, result]) -> result\n. wrap PCA::backProject' + ... + + +def PCACompute(data, mean, eigenvectors=..., maxComponents=...) -> typing.Any: + 'PCACompute(data, mean[, eigenvectors[, maxComponents]]) -> mean, eigenvectors\n. wrap PCA::operator()\n\n\n\nPCACompute(data, mean, retainedVariance[, eigenvectors]) -> mean, eigenvectors\n. wrap PCA::operator()' + ... + + +def PCACompute2(data, mean, eigenvectors=..., eigenvalues=..., maxComponents=...) -> typing.Any: + 'PCACompute2(data, mean[, eigenvectors[, eigenvalues[, maxComponents]]]) -> mean, eigenvectors, eigenvalues\n. wrap PCA::operator() and add eigenvalues output parameter\n\n\n\nPCACompute2(data, mean, retainedVariance[, eigenvectors[, eigenvalues]]) -> mean, eigenvectors, eigenvalues\n. wrap PCA::operator() and add eigenvalues output parameter' + ... + + +def PCAProject(data, mean, eigenvectors, result=...) -> typing.Any: + 'PCAProject(data, mean, eigenvectors[, result]) -> result\n. wrap PCA::project' + ... + + +PCA_DATA_AS_COL: int +PCA_DATA_AS_ROW: int +PCA_USE_AVG: int +PROJ_SPHERICAL_EQRECT: int +PROJ_SPHERICAL_ORTHO: int + + +def PSNR(src1: ndarray, src2: ndarray, R=...) -> typing.Any: + 'PSNR(src1, src2[, R]) -> retval\n. @brief Computes the Peak Signal-to-Noise Ratio (PSNR) image quality metric.\n. \n. This function calculates the Peak Signal-to-Noise Ratio (PSNR) image quality metric in decibels (dB),\n. between two input arrays src1 and src2. The arrays must have the same type.\n. \n. The PSNR is calculated as follows:\n. \n. \\f[\n. \\texttt{PSNR} = 10 \\cdot \\log_{10}{\\left( \\frac{R^2}{MSE} \\right) }\n. \\f]\n. \n. where R is the maximum integer value of depth (e.g. 255 in the case of CV_8U data)\n. and MSE is the mean squared error between the two arrays.\n. \n. @param src1 first input array.\n. @param src2 second input array of the same size as src1.\n. @param R the maximum pixel value (255 by default)' + ... + + +Param_ALGORITHM: int +Param_BOOLEAN: int +Param_FLOAT: int +Param_INT: int +Param_MAT: int +Param_MAT_VECTOR: int +Param_REAL: int +Param_SCALAR: int +Param_STRING: int +Param_UCHAR: int +Param_UINT64: int +Param_UNSIGNED_INT: int +PyRotationWarper = _mod_cv2.PyRotationWarper +QRCodeDetector = _mod_cv2.QRCodeDetector +QT_CHECKBOX: int +QT_FONT_BLACK: int +QT_FONT_BOLD: int +QT_FONT_DEMIBOLD: int +QT_FONT_LIGHT: int +QT_FONT_NORMAL: int +QT_NEW_BUTTONBAR: int +QT_PUSH_BUTTON: int +QT_RADIOBOX: int +QT_STYLE_ITALIC: int +QT_STYLE_NORMAL: int +QT_STYLE_OBLIQUE: int +RANSAC: int +RECURS_FILTER: int +REDUCE_AVG: int +REDUCE_MAX: int +REDUCE_MIN: int +REDUCE_SUM: int +RETR_CCOMP: int +RETR_EXTERNAL: int +RETR_FLOODFILL: int +RETR_LIST: int +RETR_TREE: int +RHO: int +RNG_NORMAL: int +RNG_UNIFORM: int +ROTATE_180: int +ROTATE_90_CLOCKWISE: int +ROTATE_90_COUNTERCLOCKWISE: int + + +def RQDecomp3x3(src: ndarray, mtxR=..., mtxQ=..., Qx=..., Qy=..., Qz=...) -> typing.Any: + 'RQDecomp3x3(src[, mtxR[, mtxQ[, Qx[, Qy[, Qz]]]]]) -> retval, mtxR, mtxQ, Qx, Qy, Qz\n. @brief Computes an RQ decomposition of 3x3 matrices.\n. \n. @param src 3x3 input matrix.\n. @param mtxR Output 3x3 upper-triangular matrix.\n. @param mtxQ Output 3x3 orthogonal matrix.\n. @param Qx Optional output 3x3 rotation matrix around x-axis.\n. @param Qy Optional output 3x3 rotation matrix around y-axis.\n. @param Qz Optional output 3x3 rotation matrix around z-axis.\n. \n. The function computes a RQ decomposition using the given rotations. This function is used in\n. decomposeProjectionMatrix to decompose the left 3x3 submatrix of a projection matrix into a camera\n. and a rotation matrix.\n. \n. It optionally returns three rotation matrices, one for each axis, and the three Euler angles in\n. degrees (as the return value) that could be used in OpenGL. Note, there is always more than one\n. sequence of rotations about the three principal axes that results in the same orientation of an\n. object, e.g. see @cite Slabaugh . Returned tree rotation matrices and corresponding three Euler angles\n. are only one of the possible solutions.' + ... + + +def Rodrigues(src: ndarray, dts: ndarray = ..., jacobian=...) -> typing.Any: + 'Rodrigues(src[, dst[, jacobian]]) -> dst, jacobian\n. @brief Converts a rotation matrix to a rotation vector or vice versa.\n. \n. @param src Input rotation vector (3x1 or 1x3) or rotation matrix (3x3).\n. @param dst Output rotation matrix (3x3) or rotation vector (3x1 or 1x3), respectively.\n. @param jacobian Optional output Jacobian matrix, 3x9 or 9x3, which is a matrix of partial\n. derivatives of the output array components with respect to the input array components.\n. \n. \\f[\\begin{array}{l} \\theta \\leftarrow norm(r) \\\\ r \\leftarrow r/ \\theta \\\\ R = \\cos(\\theta) I + (1- \\cos{\\theta} ) r r^T + \\sin(\\theta) \\vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} \\end{array}\\f]\n. \n. Inverse transformation can be also done easily, since\n. \n. \\f[\\sin ( \\theta ) \\vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} = \\frac{R - R^T}{2}\\f]\n. \n. A rotation vector is a convenient and most compact representation of a rotation matrix (since any\n. rotation matrix has just 3 degrees of freedom). The representation is used in the global 3D geometry\n. optimization procedures like @ref calibrateCamera, @ref stereoCalibrate, or @ref solvePnP .\n. \n. @note More information about the computation of the derivative of a 3D rotation matrix with respect to its exponential coordinate\n. can be found in:\n. - A Compact Formula for the Derivative of a 3-D Rotation in Exponential Coordinates, Guillermo Gallego, Anthony J. Yezzi @cite Gallego2014ACF\n. \n. @note Useful information on SE(3) and Lie Groups can be found in:\n. - A tutorial on SE(3) transformation parameterizations and on-manifold optimization, Jose-Luis Blanco @cite blanco2010tutorial\n. - Lie Groups for 2D and 3D Transformation, Ethan Eade @cite Eade17\n. - A micro Lie theory for state estimation in robotics, Joan Solà, Jérémie Deray, Dinesh Atchuthan @cite Sol2018AML' + ... + + +SIFT = _mod_cv2.SIFT + + +def SIFT_create(nfeatures=..., nOctaveLayers=..., contrastThreshold=..., edgeThreshold=..., sigma=...) -> typing.Any: + 'SIFT_create([, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma]]]]]) -> retval\n. @param nfeatures The number of best features to retain. The features are ranked by their scores\n. (measured in SIFT algorithm as the local contrast)\n. \n. @param nOctaveLayers The number of layers in each octave. 3 is the value used in D. Lowe paper. The\n. number of octaves is computed automatically from the image resolution.\n. \n. @param contrastThreshold The contrast threshold used to filter out weak features in semi-uniform\n. (low-contrast) regions. The larger the threshold, the less features are produced by the detector.\n. \n. @note The contrast threshold will be divided by nOctaveLayers when the filtering is applied. When\n. nOctaveLayers is set to default and if you want to use the value used in D. Lowe paper, 0.03, set\n. this argument to 0.09.\n. \n. @param edgeThreshold The threshold used to filter out edge-like features. Note that the its meaning\n. is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are\n. filtered out (more features are retained).\n. \n. @param sigma The sigma of the Gaussian applied to the input image at the octave \\#0. If your image\n. is captured with a weak camera with soft lenses, you might want to reduce the number.' + ... + + +SOLVELP_MULTI: int +SOLVELP_SINGLE: int +SOLVELP_UNBOUNDED: int +SOLVELP_UNFEASIBLE: int +SOLVEPNP_AP3P: int +SOLVEPNP_DLS: int +SOLVEPNP_EPNP: int +SOLVEPNP_IPPE: int +SOLVEPNP_IPPE_SQUARE: int +SOLVEPNP_ITERATIVE: int +SOLVEPNP_MAX_COUNT: int +SOLVEPNP_P3P: int +SOLVEPNP_UPNP: int +SORT_ASCENDING: int +SORT_DESCENDING: int +SORT_EVERY_COLUMN: int +SORT_EVERY_ROW: int +SPARSE_MAT_HASH_BIT: int +SPARSE_MAT_HASH_SCALE: int +SPARSE_MAT_MAGIC_VAL: int +SPARSE_MAT_MAX_DIM: int +STEREO_BM_PREFILTER_NORMALIZED_RESPONSE: int +STEREO_BM_PREFILTER_XSOBEL: int +STEREO_MATCHER_DISP_SCALE: int +STEREO_MATCHER_DISP_SHIFT: int +STEREO_SGBM_MODE_HH: int +STEREO_SGBM_MODE_HH4: int +STEREO_SGBM_MODE_SGBM: int +STEREO_SGBM_MODE_SGBM_3WAY: int +STITCHER_ERR_CAMERA_PARAMS_ADJUST_FAIL: int +STITCHER_ERR_HOMOGRAPHY_EST_FAIL: int +STITCHER_ERR_NEED_MORE_IMGS: int +STITCHER_OK: int +STITCHER_PANORAMA: int +STITCHER_SCANS: int +SUBDIV2D_NEXT_AROUND_DST: int +SUBDIV2D_NEXT_AROUND_LEFT: int +SUBDIV2D_NEXT_AROUND_ORG: int +SUBDIV2D_NEXT_AROUND_RIGHT: int +SUBDIV2D_PREV_AROUND_DST: int +SUBDIV2D_PREV_AROUND_LEFT: int +SUBDIV2D_PREV_AROUND_ORG: int +SUBDIV2D_PREV_AROUND_RIGHT: int +SUBDIV2D_PTLOC_ERROR: int +SUBDIV2D_PTLOC_INSIDE: int +SUBDIV2D_PTLOC_ON_EDGE: int +SUBDIV2D_PTLOC_OUTSIDE_RECT: int +SUBDIV2D_PTLOC_VERTEX: int + + +def SVBackSubst(w, u, vt, rhs, dts: ndarray = ...) -> typing.Any: + 'SVBackSubst(w, u, vt, rhs[, dst]) -> dst\n. wrap SVD::backSubst' + ... + + +SVD_FULL_UV: int +SVD_MODIFY_A: int +SVD_NO_UV: int + + +def SVDecomp(src: ndarray, w=..., u=..., vt=..., flags: int = ...) -> typing.Any: + 'SVDecomp(src[, w[, u[, vt[, flags]]]]) -> w, u, vt\n. wrap SVD::compute' + ... + + +def Scharr(src: ndarray, ddepth, dx, dy, dts: ndarray = ..., scale=..., delta=..., borderType=...) -> typing.Any: + 'Scharr(src, ddepth, dx, dy[, dst[, scale[, delta[, borderType]]]]) -> dst\n. @brief Calculates the first x- or y- image derivative using Scharr operator.\n. \n. The function computes the first x- or y- spatial image derivative using the Scharr operator. The\n. call\n. \n. \\f[\\texttt{Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)}\\f]\n. \n. is equivalent to\n. \n. \\f[\\texttt{Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)} .\\f]\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src.\n. @param ddepth output image depth, see @ref filter_depths "combinations"\n. @param dx order of the derivative x.\n. @param dy order of the derivative y.\n. @param scale optional scale factor for the computed derivative values; by default, no scaling is\n. applied (see #getDerivKernels for details).\n. @param delta optional delta value that is added to the results prior to storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa cartToPolar' + ... + + +SimpleBlobDetector = _mod_cv2.SimpleBlobDetector +SimpleBlobDetector_Params = _mod_cv2.SimpleBlobDetector_Params + + +def SimpleBlobDetector_create(parameters=...) -> typing.Any: + 'SimpleBlobDetector_create([, parameters]) -> retval\n.' + ... + + +def Sobel(src: ndarray, ddepth, dx, dy, dts: ndarray = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: + 'Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst\n. @brief Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator.\n. \n. In all cases except one, the \\f$\\texttt{ksize} \\times \\texttt{ksize}\\f$ separable kernel is used to\n. calculate the derivative. When \\f$\\texttt{ksize = 1}\\f$, the \\f$3 \\times 1\\f$ or \\f$1 \\times 3\\f$\n. kernel is used (that is, no Gaussian smoothing is done). `ksize = 1` can only be used for the first\n. or the second x- or y- derivatives.\n. \n. There is also the special value `ksize = #FILTER_SCHARR (-1)` that corresponds to the \\f$3\\times3\\f$ Scharr\n. filter that may give more accurate results than the \\f$3\\times3\\f$ Sobel. The Scharr aperture is\n. \n. \\f[\\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\\f]\n. \n. for the x-derivative, or transposed for the y-derivative.\n. \n. The function calculates an image derivative by convolving the image with the appropriate kernel:\n. \n. \\f[\\texttt{dst} = \\frac{\\partial^{xorder+yorder} \\texttt{src}}{\\partial x^{xorder} \\partial y^{yorder}}\\f]\n. \n. The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less\n. resistant to the noise. Most often, the function is called with ( xorder = 1, yorder = 0, ksize = 3)\n. or ( xorder = 0, yorder = 1, ksize = 3) to calculate the first x- or y- image derivative. The first\n. case corresponds to a kernel of:\n. \n. \\f[\\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\\f]\n. \n. The second case corresponds to a kernel of:\n. \n. \\f[\\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\\f]\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src .\n. @param ddepth output image depth, see @ref filter_depths "combinations"; in the case of\n. 8-bit input images it will result in truncated derivatives.\n. @param dx order of the derivative x.\n. @param dy order of the derivative y.\n. @param ksize size of the extended Sobel kernel; it must be 1, 3, 5, or 7.\n. @param scale optional scale factor for the computed derivative values; by default, no scaling is\n. applied (see #getDerivKernels for details).\n. @param delta optional delta value that is added to the results prior to storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa Scharr, Laplacian, sepFilter2D, filter2D, GaussianBlur, cartToPolar' + ... + + +SparseMat_HASH_BIT: int +SparseMat_HASH_SCALE: int +SparseMat_MAGIC_VAL: int +SparseMat_MAX_DIM: int +SparseOpticalFlow = _mod_cv2.SparseOpticalFlow +SparsePyrLKOpticalFlow = _mod_cv2.SparsePyrLKOpticalFlow + + +def SparsePyrLKOpticalFlow_create(winSize=..., maxLevel=..., crit=..., flags: int = ..., minEigThreshold=...) -> typing.Any: + 'SparsePyrLKOpticalFlow_create([, winSize[, maxLevel[, crit[, flags[, minEigThreshold]]]]]) -> retval\n.' + ... + + +StereoBM = _mod_cv2.StereoBM +StereoBM_PREFILTER_NORMALIZED_RESPONSE: int +StereoBM_PREFILTER_XSOBEL: int + + +def StereoBM_create(numDisparities=..., blockSize=...) -> typing.Any: + 'StereoBM_create([, numDisparities[, blockSize]]) -> retval\n. @brief Creates StereoBM object\n. \n. @param numDisparities the disparity search range. For each pixel algorithm will find the best\n. disparity from 0 (default minimum disparity) to numDisparities. The search range can then be\n. shifted by changing the minimum disparity.\n. @param blockSize the linear size of the blocks compared by the algorithm. The size should be odd\n. (as the block is centered at the current pixel). Larger block size implies smoother, though less\n. accurate disparity map. Smaller block size gives more detailed disparity map, but there is higher\n. chance for algorithm to find a wrong correspondence.\n. \n. The function create StereoBM object. You can then call StereoBM::compute() to compute disparity for\n. a specific stereo pair.' + ... + + +StereoMatcher = _mod_cv2.StereoMatcher +StereoMatcher_DISP_SCALE: int +StereoMatcher_DISP_SHIFT: int +StereoSGBM = _mod_cv2.StereoSGBM +StereoSGBM_MODE_HH: int +StereoSGBM_MODE_HH4: int +StereoSGBM_MODE_SGBM: int +StereoSGBM_MODE_SGBM_3WAY: int + + +def StereoSGBM_create(minDisparity=..., numDisparities=..., blockSize=..., P1=..., P2=..., disp12MaxDiff=..., preFilterCap=..., uniquenessRatio=..., speckleWindowSize=..., speckleRange=..., mode=...) -> typing.Any: + 'StereoSGBM_create([, minDisparity[, numDisparities[, blockSize[, P1[, P2[, disp12MaxDiff[, preFilterCap[, uniquenessRatio[, speckleWindowSize[, speckleRange[, mode]]]]]]]]]]]) -> retval\n. @brief Creates StereoSGBM object\n. \n. @param minDisparity Minimum possible disparity value. Normally, it is zero but sometimes\n. rectification algorithms can shift images, so this parameter needs to be adjusted accordingly.\n. @param numDisparities Maximum disparity minus minimum disparity. The value is always greater than\n. zero. In the current implementation, this parameter must be divisible by 16.\n. @param blockSize Matched block size. It must be an odd number \\>=1 . Normally, it should be\n. somewhere in the 3..11 range.\n. @param P1 The first parameter controlling the disparity smoothness. See below.\n. @param P2 The second parameter controlling the disparity smoothness. The larger the values are,\n. the smoother the disparity is. P1 is the penalty on the disparity change by plus or minus 1\n. between neighbor pixels. P2 is the penalty on the disparity change by more than 1 between neighbor\n. pixels. The algorithm requires P2 \\> P1 . See stereo_match.cpp sample where some reasonably good\n. P1 and P2 values are shown (like 8\\*number_of_image_channels\\*blockSize\\*blockSize and\n. 32\\*number_of_image_channels\\*blockSize\\*blockSize , respectively).\n. @param disp12MaxDiff Maximum allowed difference (in integer pixel units) in the left-right\n. disparity check. Set it to a non-positive value to disable the check.\n. @param preFilterCap Truncation value for the prefiltered image pixels. The algorithm first\n. computes x-derivative at each pixel and clips its value by [-preFilterCap, preFilterCap] interval.\n. The result values are passed to the Birchfield-Tomasi pixel cost function.\n. @param uniquenessRatio Margin in percentage by which the best (minimum) computed cost function\n. value should "win" the second best value to consider the found match correct. Normally, a value\n. within the 5-15 range is good enough.\n. @param speckleWindowSize Maximum size of smooth disparity regions to consider their noise speckles\n. and invalidate. Set it to 0 to disable speckle filtering. Otherwise, set it somewhere in the\n. 50-200 range.\n. @param speckleRange Maximum disparity variation within each connected component. If you do speckle\n. filtering, set the parameter to a positive value, it will be implicitly multiplied by 16.\n. Normally, 1 or 2 is good enough.\n. @param mode Set it to StereoSGBM::MODE_HH to run the full-scale two-pass dynamic programming\n. algorithm. It will consume O(W\\*H\\*numDisparities) bytes, which is large for 640x480 stereo and\n. huge for HD-size pictures. By default, it is set to false .\n. \n. The first constructor initializes StereoSGBM with all the default parameters. So, you only have to\n. set StereoSGBM::numDisparities at minimum. The second constructor enables you to set each parameter\n. to a custom value.' + ... + + +Stitcher = _mod_cv2.Stitcher +Stitcher_ERR_CAMERA_PARAMS_ADJUST_FAIL: int +Stitcher_ERR_HOMOGRAPHY_EST_FAIL: int +Stitcher_ERR_NEED_MORE_IMGS: int +Stitcher_OK: int +Stitcher_PANORAMA: int +Stitcher_SCANS: int + + +def Stitcher_create(mode=...) -> typing.Any: + 'Stitcher_create([, mode]) -> retval\n. @brief Creates a Stitcher configured in one of the stitching modes.\n. \n. @param mode Scenario for stitcher operation. This is usually determined by source of images\n. to stitch and their transformation. Default parameters will be chosen for operation in given\n. scenario.\n. @return Stitcher class instance.' + ... + + +Subdiv2D = _mod_cv2.Subdiv2D +Subdiv2D_NEXT_AROUND_DST: int +Subdiv2D_NEXT_AROUND_LEFT: int +Subdiv2D_NEXT_AROUND_ORG: int +Subdiv2D_NEXT_AROUND_RIGHT: int +Subdiv2D_PREV_AROUND_DST: int +Subdiv2D_PREV_AROUND_LEFT: int +Subdiv2D_PREV_AROUND_ORG: int +Subdiv2D_PREV_AROUND_RIGHT: int +Subdiv2D_PTLOC_ERROR: int +Subdiv2D_PTLOC_INSIDE: int +Subdiv2D_PTLOC_ON_EDGE: int +Subdiv2D_PTLOC_OUTSIDE_RECT: int +Subdiv2D_PTLOC_VERTEX: int +TERM_CRITERIA_COUNT: int +TERM_CRITERIA_EPS: int +TERM_CRITERIA_MAX_ITER: int +THRESH_BINARY: int +THRESH_BINARY_INV: int +THRESH_MASK: int +THRESH_OTSU: int +THRESH_TOZERO: int +THRESH_TOZERO_INV: int +THRESH_TRIANGLE: int +THRESH_TRUNC: int +TM_CCOEFF: int +TM_CCOEFF_NORMED: int +TM_CCORR: int +TM_CCORR_NORMED: int +TM_SQDIFF: int +TM_SQDIFF_NORMED: int +TermCriteria_COUNT: int +TermCriteria_EPS: int +TermCriteria_MAX_ITER: int +TickMeter = _mod_cv2.TickMeter +Tonemap = _mod_cv2.Tonemap +TonemapDrago = _mod_cv2.TonemapDrago +TonemapMantiuk = _mod_cv2.TonemapMantiuk +TonemapReinhard = _mod_cv2.TonemapReinhard +UMAT_AUTO_STEP: int +UMAT_CONTINUOUS_FLAG: int +UMAT_DATA_ASYNC_CLEANUP: int +UMAT_DATA_COPY_ON_MAP: int +UMAT_DATA_DEVICE_COPY_OBSOLETE: int +UMAT_DATA_DEVICE_MEM_MAPPED: int +UMAT_DATA_HOST_COPY_OBSOLETE: int +UMAT_DATA_TEMP_COPIED_UMAT: int +UMAT_DATA_TEMP_UMAT: int +UMAT_DATA_USER_ALLOCATED: int +UMAT_DEPTH_MASK: int +UMAT_MAGIC_MASK: int +UMAT_MAGIC_VAL: int +UMAT_SUBMATRIX_FLAG: int +UMAT_TYPE_MASK: int +UMat = _mod_cv2.UMat +UMatData_ASYNC_CLEANUP: int +UMatData_COPY_ON_MAP: int +UMatData_DEVICE_COPY_OBSOLETE: int +UMatData_DEVICE_MEM_MAPPED: int +UMatData_HOST_COPY_OBSOLETE: int +UMatData_TEMP_COPIED_UMAT: int +UMatData_TEMP_UMAT: int +UMatData_USER_ALLOCATED: int +UMat_AUTO_STEP: int +UMat_CONTINUOUS_FLAG: int +UMat_DEPTH_MASK: int +UMat_MAGIC_MASK: int +UMat_MAGIC_VAL: int +UMat_SUBMATRIX_FLAG: int +UMat_TYPE_MASK: int + + +def UMat_context() -> typing.Any: + 'UMat_context() -> retval\n.' + ... + + +def UMat_queue() -> typing.Any: + 'UMat_queue() -> retval\n.' + ... + + +USAGE_ALLOCATE_DEVICE_MEMORY: int +USAGE_ALLOCATE_HOST_MEMORY: int +USAGE_ALLOCATE_SHARED_MEMORY: int +USAGE_DEFAULT: int +VIDEOWRITER_PROP_FRAMEBYTES: int +VIDEOWRITER_PROP_IS_COLOR: int +VIDEOWRITER_PROP_NSTRIPES: int +VIDEOWRITER_PROP_QUALITY: int +VariationalRefinement = _mod_cv2.VariationalRefinement + + +def VariationalRefinement_create() -> typing.Any: + 'VariationalRefinement_create() -> retval\n. @brief Creates an instance of VariationalRefinement' + ... + + +VideoCapture = _mod_cv2.VideoCapture +VideoWriter = _mod_cv2.VideoWriter + + +def VideoWriter_fourcc(c1, c2, c3, c4) -> typing.Any: + 'VideoWriter_fourcc(c1, c2, c3, c4) -> retval\n. @brief Concatenates 4 chars to a fourcc code\n. \n. @return a fourcc code\n. \n. This static method constructs the fourcc code of the codec to be used in the constructor\n. VideoWriter::VideoWriter or VideoWriter::open.' + ... + + +WARP_FILL_OUTLIERS: int +WARP_INVERSE_MAP: int +WARP_POLAR_LINEAR: int +WARP_POLAR_LOG: int +WINDOW_AUTOSIZE: int +WINDOW_FREERATIO: int +WINDOW_FULLSCREEN: int +WINDOW_GUI_EXPANDED: int +WINDOW_GUI_NORMAL: int +WINDOW_KEEPRATIO: int +WINDOW_NORMAL: int +WINDOW_OPENGL: int +WND_PROP_ASPECT_RATIO: int +WND_PROP_AUTOSIZE: int +WND_PROP_FULLSCREEN: int +WND_PROP_OPENGL: int +WND_PROP_TOPMOST: int +WND_PROP_VISIBLE: int +WarperCreator = _mod_cv2.WarperCreator +_INPUT_ARRAY_CUDA_GPU_MAT: int +_INPUT_ARRAY_CUDA_HOST_MEM: int +_INPUT_ARRAY_EXPR: int +_INPUT_ARRAY_FIXED_SIZE: int +_INPUT_ARRAY_FIXED_TYPE: int +_INPUT_ARRAY_KIND_MASK: int +_INPUT_ARRAY_KIND_SHIFT: int +_INPUT_ARRAY_MAT: int +_INPUT_ARRAY_MATX: int +_INPUT_ARRAY_NONE: int +_INPUT_ARRAY_OPENGL_BUFFER: int +_INPUT_ARRAY_STD_ARRAY: int +_INPUT_ARRAY_STD_ARRAY_MAT: int +_INPUT_ARRAY_STD_BOOL_VECTOR: int +_INPUT_ARRAY_STD_VECTOR: int +_INPUT_ARRAY_STD_VECTOR_CUDA_GPU_MAT: int +_INPUT_ARRAY_STD_VECTOR_MAT: int +_INPUT_ARRAY_STD_VECTOR_UMAT: int +_INPUT_ARRAY_STD_VECTOR_VECTOR: int +_INPUT_ARRAY_UMAT: int +_InputArray_CUDA_GPU_MAT: int +_InputArray_CUDA_HOST_MEM: int +_InputArray_EXPR: int +_InputArray_FIXED_SIZE: int +_InputArray_FIXED_TYPE: int +_InputArray_KIND_MASK: int +_InputArray_KIND_SHIFT: int +_InputArray_MAT: int +_InputArray_MATX: int +_InputArray_NONE: int +_InputArray_OPENGL_BUFFER: int +_InputArray_STD_ARRAY: int +_InputArray_STD_ARRAY_MAT: int +_InputArray_STD_BOOL_VECTOR: int +_InputArray_STD_VECTOR: int +_InputArray_STD_VECTOR_CUDA_GPU_MAT: int +_InputArray_STD_VECTOR_MAT: int +_InputArray_STD_VECTOR_UMAT: int +_InputArray_STD_VECTOR_VECTOR: int +_InputArray_UMAT: int +_OUTPUT_ARRAY_DEPTH_MASK_16F: int +_OUTPUT_ARRAY_DEPTH_MASK_16S: int +_OUTPUT_ARRAY_DEPTH_MASK_16U: int +_OUTPUT_ARRAY_DEPTH_MASK_32F: int +_OUTPUT_ARRAY_DEPTH_MASK_32S: int +_OUTPUT_ARRAY_DEPTH_MASK_64F: int +_OUTPUT_ARRAY_DEPTH_MASK_8S: int +_OUTPUT_ARRAY_DEPTH_MASK_8U: int +_OUTPUT_ARRAY_DEPTH_MASK_ALL: int +_OUTPUT_ARRAY_DEPTH_MASK_ALL_16F: int +_OUTPUT_ARRAY_DEPTH_MASK_ALL_BUT_8S: int +_OUTPUT_ARRAY_DEPTH_MASK_FLT: int +_OutputArray_DEPTH_MASK_16F: int +_OutputArray_DEPTH_MASK_16S: int +_OutputArray_DEPTH_MASK_16U: int +_OutputArray_DEPTH_MASK_32F: int +_OutputArray_DEPTH_MASK_32S: int +_OutputArray_DEPTH_MASK_64F: int +_OutputArray_DEPTH_MASK_8S: int +_OutputArray_DEPTH_MASK_8U: int +_OutputArray_DEPTH_MASK_ALL: int +_OutputArray_DEPTH_MASK_ALL_16F: int +_OutputArray_DEPTH_MASK_ALL_BUT_8S: int +_OutputArray_DEPTH_MASK_FLT: int +__UMAT_USAGE_FLAGS_32BIT: int +__doc__: str +__file__: str +__name__: str +__package__: str +__version__: str + + +def absdiff(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: + 'absdiff(src1, src2[, dst]) -> dst\n. @brief Calculates the per-element absolute difference between two arrays or between an array and a scalar.\n. \n. The function cv::absdiff calculates:\n. * Absolute difference between two arrays when they have the same\n. size and type:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1}(I) - \\texttt{src2}(I)|)\\f]\n. * Absolute difference between an array and a scalar when the second\n. array is constructed from Scalar or has as many elements as the\n. number of channels in `src1`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1}(I) - \\texttt{src2} |)\\f]\n. * Absolute difference between a scalar and an array when the first\n. array is constructed from Scalar or has as many elements as the\n. number of channels in `src2`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1} - \\texttt{src2}(I) |)\\f]\n. where I is a multi-dimensional index of array elements. In case of\n. multi-channel arrays, each channel is processed independently.\n. @note Saturation is not applied when the arrays have the depth CV_32S.\n. You may even get a negative value in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as input arrays.\n. @sa cv::abs(const Mat&)' + ... + + +def accumulate(src: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: + 'accumulate(src, dst[, mask]) -> dst\n. @brief Adds an image to the accumulator image.\n. \n. The function adds src or some of its elements to dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. The function cv::accumulate can be used, for example, to collect statistics of a scene background\n. viewed by a still camera and for the further foreground-background segmentation.\n. \n. @param src Input image of type CV_8UC(n), CV_16UC(n), CV_32FC(n) or CV_64FC(n), where n is a positive integer.\n. @param dst %Accumulator image with the same number of channels as input image, and a depth of CV_32F or CV_64F.\n. @param mask Optional operation mask.\n. \n. @sa accumulateSquare, accumulateProduct, accumulateWeighted' + ... + + +def accumulateProduct(src1: ndarray, src2: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: + 'accumulateProduct(src1, src2, dst[, mask]) -> dst\n. @brief Adds the per-element product of two input images to the accumulator image.\n. \n. The function adds the product of two images or their selected regions to the accumulator dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src1} (x,y) \\cdot \\texttt{src2} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src1 First input image, 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param src2 Second input image of the same type and the same size as src1 .\n. @param dst %Accumulator image with the same number of channels as input images, 32-bit or 64-bit\n. floating-point.\n. @param mask Optional operation mask.\n. \n. @sa accumulate, accumulateSquare, accumulateWeighted' + ... + + +def accumulateSquare(src: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: + 'accumulateSquare(src, dst[, mask]) -> dst\n. @brief Adds the square of a source image to the accumulator image.\n. \n. The function adds the input image src or its selected region, raised to a power of 2, to the\n. accumulator dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src} (x,y)^2 \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src Input image as 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param dst %Accumulator image with the same number of channels as input image, 32-bit or 64-bit\n. floating-point.\n. @param mask Optional operation mask.\n. \n. @sa accumulateSquare, accumulateProduct, accumulateWeighted' + ... + + +def accumulateWeighted(src: ndarray, dts: ndarray, alpha, mask: ndarray = ...) -> typing.Any: + 'accumulateWeighted(src, dst, alpha[, mask]) -> dst\n. @brief Updates a running average.\n. \n. The function calculates the weighted sum of the input image src and the accumulator dst so that dst\n. becomes a running average of a frame sequence:\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow (1- \\texttt{alpha} ) \\cdot \\texttt{dst} (x,y) + \\texttt{alpha} \\cdot \\texttt{src} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. That is, alpha regulates the update speed (how fast the accumulator "forgets" about earlier images).\n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src Input image as 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param dst %Accumulator image with the same number of channels as input image, 32-bit or 64-bit\n. floating-point.\n. @param alpha Weight of the input image.\n. @param mask Optional operation mask.\n. \n. @sa accumulate, accumulateSquare, accumulateProduct' + ... + + +def adaptiveThreshold(src: ndarray, maxValue, adaptiveMethod, thresholdType, blockSize, C, dts: ndarray = ...) -> typing.Any: + 'adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) -> dst\n. @brief Applies an adaptive threshold to an array.\n. \n. The function transforms a grayscale image to a binary image according to the formulae:\n. - **THRESH_BINARY**\n. \\f[dst(x,y) = \\fork{\\texttt{maxValue}}{if \\(src(x,y) > T(x,y)\\)}{0}{otherwise}\\f]\n. - **THRESH_BINARY_INV**\n. \\f[dst(x,y) = \\fork{0}{if \\(src(x,y) > T(x,y)\\)}{\\texttt{maxValue}}{otherwise}\\f]\n. where \\f$T(x,y)\\f$ is a threshold calculated individually for each pixel (see adaptiveMethod parameter).\n. \n. The function can process the image in-place.\n. \n. @param src Source 8-bit single-channel image.\n. @param dst Destination image of the same size and the same type as src.\n. @param maxValue Non-zero value assigned to the pixels for which the condition is satisfied\n. @param adaptiveMethod Adaptive thresholding algorithm to use, see #AdaptiveThresholdTypes.\n. The #BORDER_REPLICATE | #BORDER_ISOLATED is used to process boundaries.\n. @param thresholdType Thresholding type that must be either #THRESH_BINARY or #THRESH_BINARY_INV,\n. see #ThresholdTypes.\n. @param blockSize Size of a pixel neighborhood that is used to calculate a threshold value for the\n. pixel: 3, 5, 7, and so on.\n. @param C Constant subtracted from the mean or weighted mean (see the details below). Normally, it\n. is positive but may be zero or negative as well.\n. \n. @sa threshold, blur, GaussianBlur' + ... + + +def add(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ..., dtype=...) -> typing.Any: + 'add(src1, src2[, dst[, mask[, dtype]]]) -> dst\n. @brief Calculates the per-element sum of two arrays or an array and a scalar.\n. \n. The function add calculates:\n. - Sum of two arrays when both input arrays have the same size and the same number of channels:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) + \\texttt{src2}(I)) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Sum of an array and a scalar when src2 is constructed from Scalar or has the same number of\n. elements as `src1.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) + \\texttt{src2} ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Sum of a scalar and an array when src1 is constructed from Scalar or has the same number of\n. elements as `src2.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1} + \\texttt{src2}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. where `I` is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. \n. The first function in the list above can be replaced with matrix expressions:\n. @code{.cpp}\n. dst = src1 + src2;\n. dst += src1; // equivalent to add(dst, src1, dst);\n. @endcode\n. The input arrays and the output array can all have the same or different depths. For example, you\n. can add a 16-bit unsigned array to a 8-bit signed array and store the sum as a 32-bit\n. floating-point array. Depth of the output array is determined by the dtype parameter. In the second\n. and third cases above, as well as in the first case, when src1.depth() == src2.depth(), dtype can\n. be set to the default -1. In this case, the output array will have the same depth as the input\n. array, be it src1, src2 or both.\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and number of channels as the input array(s); the\n. depth is defined by dtype or src1/src2.\n. @param mask optional operation mask - 8-bit single channel array, that specifies elements of the\n. output array to be changed.\n. @param dtype optional depth of the output array (see the discussion below).\n. @sa subtract, addWeighted, scaleAdd, Mat::convertTo' + ... + + +def addText(img: ndarray, text, org, nameFont, pointSize=..., color=..., weight=..., style=..., spacing=...) -> typing.Any: + 'addText(img, text, org, nameFont[, pointSize[, color[, weight[, style[, spacing]]]]]) -> None\n. @brief Draws a text on the image.\n. \n. @param img 8-bit 3-channel image where the text should be drawn.\n. @param text Text to write on an image.\n. @param org Point(x,y) where the text should start on an image.\n. @param nameFont Name of the font. The name should match the name of a system font (such as\n. *Times*). If the font is not found, a default one is used.\n. @param pointSize Size of the font. If not specified, equal zero or negative, the point size of the\n. font is set to a system-dependent default value. Generally, this is 12 points.\n. @param color Color of the font in BGRA where A = 255 is fully transparent.\n. @param weight Font weight. Available operation flags are : cv::QtFontWeights You can also specify a positive integer for better control.\n. @param style Font style. Available operation flags are : cv::QtFontStyles\n. @param spacing Spacing between characters. It can be negative or positive.' + ... + + +def addWeighted(src1: ndarray, alpha, src2: ndarray, beta, gamma, dts: ndarray = ..., dtype=...) -> typing.Any: + 'addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) -> dst\n. @brief Calculates the weighted sum of two arrays.\n. \n. The function addWeighted calculates the weighted sum of two arrays as follows:\n. \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{src1} (I)* \\texttt{alpha} + \\texttt{src2} (I)* \\texttt{beta} + \\texttt{gamma} )\\f]\n. where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. The function can be replaced with a matrix expression:\n. @code{.cpp}\n. dst = src1*alpha + src2*beta + gamma;\n. @endcode\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array.\n. @param alpha weight of the first array elements.\n. @param src2 second input array of the same size and channel number as src1.\n. @param beta weight of the second array elements.\n. @param gamma scalar added to each sum.\n. @param dst output array that has the same size and number of channels as the input arrays.\n. @param dtype optional depth of the output array; when both input arrays have the same depth, dtype\n. can be set to -1, which will be equivalent to src1.depth().\n. @sa add, subtract, scaleAdd, Mat::convertTo' + ... + + +def applyColorMap(src: ndarray, colormap, dts: ndarray = ...) -> typing.Any: + 'applyColorMap(src, colormap[, dst]) -> dst\n. @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image.\n. \n. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.\n. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.\n. @param colormap The colormap to apply, see #ColormapTypes\n\n\n\napplyColorMap(src, userColor[, dst]) -> dst\n. @brief Applies a user colormap on a given image.\n. \n. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.\n. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.\n. @param userColor The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256' + ... + + +def approxPolyDP(curve, epsilon, closed, approxCurve=...) -> typing.Any: + 'approxPolyDP(curve, epsilon, closed[, approxCurve]) -> approxCurve\n. @brief Approximates a polygonal curve(s) with the specified precision.\n. \n. The function cv::approxPolyDP approximates a curve or a polygon with another curve/polygon with less\n. vertices so that the distance between them is less or equal to the specified precision. It uses the\n. Douglas-Peucker algorithm \n. \n. @param curve Input vector of a 2D point stored in std::vector or Mat\n. @param approxCurve Result of the approximation. The type should match the type of the input curve.\n. @param epsilon Parameter specifying the approximation accuracy. This is the maximum distance\n. between the original curve and its approximation.\n. @param closed If true, the approximated curve is closed (its first and last vertices are\n. connected). Otherwise, it is not closed.' + ... + + +def arcLength(curve, closed) -> typing.Any: + 'arcLength(curve, closed) -> retval\n. @brief Calculates a contour perimeter or a curve length.\n. \n. The function computes a curve length or a closed contour perimeter.\n. \n. @param curve Input vector of 2D points, stored in std::vector or Mat.\n. @param closed Flag indicating whether the curve is closed or not.' + ... + + +def arrowedLine(img: ndarray, pt1, pt2, color, thickness=..., line_type=..., shift=..., tipLength=...) -> typing.Any: + 'arrowedLine(img, pt1, pt2, color[, thickness[, line_type[, shift[, tipLength]]]]) -> img\n. @brief Draws a arrow segment pointing from the first point to the second one.\n. \n. The function cv::arrowedLine draws an arrow between pt1 and pt2 points in the image. See also #line.\n. \n. @param img Image.\n. @param pt1 The point the arrow starts from.\n. @param pt2 The point the arrow points to.\n. @param color Line color.\n. @param thickness Line thickness.\n. @param line_type Type of the line. See #LineTypes\n. @param shift Number of fractional bits in the point coordinates.\n. @param tipLength The length of the arrow tip in relation to the arrow length' + ... + + +def batchDistance(src1: ndarray, src2: ndarray, dtype, dist=..., nidx=..., normType: int = ..., K=..., mask: ndarray = ..., update=..., crosscheck=...) -> typing.Any: + 'batchDistance(src1, src2, dtype[, dist[, nidx[, normType[, K[, mask[, update[, crosscheck]]]]]]]) -> dist, nidx\n. @brief naive nearest neighbor finder\n. \n. see http://en.wikipedia.org/wiki/Nearest_neighbor_search\n. @todo document' + ... + + +def bilateralFilter(src: ndarray, d, sigmaColor, sigmaSpace, dts: ndarray = ..., borderType=...) -> typing.Any: + 'bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]]) -> dst\n. @brief Applies the bilateral filter to an image.\n. \n. The function applies bilateral filtering to the input image, as described in\n. http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html\n. bilateralFilter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is\n. very slow compared to most filters.\n. \n. _Sigma values_: For simplicity, you can set the 2 sigma values to be the same. If they are small (\\<\n. 10), the filter will not have much effect, whereas if they are large (\\> 150), they will have a very\n. strong effect, making the image look "cartoonish".\n. \n. _Filter size_: Large filters (d \\> 5) are very slow, so it is recommended to use d=5 for real-time\n. applications, and perhaps d=9 for offline applications that need heavy noise filtering.\n. \n. This filter does not work inplace.\n. @param src Source 8-bit or floating-point, 1-channel or 3-channel image.\n. @param dst Destination image of the same size and type as src .\n. @param d Diameter of each pixel neighborhood that is used during filtering. If it is non-positive,\n. it is computed from sigmaSpace.\n. @param sigmaColor Filter sigma in the color space. A larger value of the parameter means that\n. farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting\n. in larger areas of semi-equal color.\n. @param sigmaSpace Filter sigma in the coordinate space. A larger value of the parameter means that\n. farther pixels will influence each other as long as their colors are close enough (see sigmaColor\n. ). When d\\>0, it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is\n. proportional to sigmaSpace.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes' + ... + + +def bitwise_and(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: + 'bitwise_and(src1, src2[, dst[, mask]]) -> dst\n. @brief computes bitwise conjunction of the two arrays (dst = src1 & src2)\n. Calculates the per-element bit-wise conjunction of two arrays or an\n. array and a scalar.\n. \n. The function cv::bitwise_and calculates the per-element bit-wise logical conjunction for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\wedge \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\wedge \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\wedge \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the second and third cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' + ... + + +def bitwise_not(src: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: + 'bitwise_not(src[, dst[, mask]]) -> dst\n. @brief Inverts every bit of an array.\n. \n. The function cv::bitwise_not calculates per-element bit-wise inversion of the input\n. array:\n. \\f[\\texttt{dst} (I) = \\neg \\texttt{src} (I)\\f]\n. In case of a floating-point input array, its machine-specific bit\n. representation (usually IEEE754-compliant) is used for the operation. In\n. case of multi-channel arrays, each channel is processed independently.\n. @param src input array.\n. @param dst output array that has the same size and type as the input\n. array.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' + ... + + +def bitwise_or(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: + 'bitwise_or(src1, src2[, dst[, mask]]) -> dst\n. @brief Calculates the per-element bit-wise disjunction of two arrays or an\n. array and a scalar.\n. \n. The function cv::bitwise_or calculates the per-element bit-wise logical disjunction for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\vee \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\vee \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\vee \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the second and third cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' + ... + + +def bitwise_xor(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: + 'bitwise_xor(src1, src2[, dst[, mask]]) -> dst\n. @brief Calculates the per-element bit-wise "exclusive or" operation on two\n. arrays or an array and a scalar.\n. \n. The function cv::bitwise_xor calculates the per-element bit-wise logical "exclusive-or"\n. operation for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\oplus \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\oplus \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\oplus \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the 2nd and 3rd cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' + ... + + +def blur(src: ndarray, ksize, dts: ndarray = ..., anchor=..., borderType=...) -> typing.Any: + 'blur(src, ksize[, dst[, anchor[, borderType]]]) -> dst\n. @brief Blurs an image using the normalized box filter.\n. \n. The function smooths an image using the kernel:\n. \n. \\f[\\texttt{K} = \\frac{1}{\\texttt{ksize.width*ksize.height}} \\begin{bmatrix} 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\hdotsfor{6} \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\end{bmatrix}\\f]\n. \n. The call `blur(src, dst, ksize, anchor, borderType)` is equivalent to `boxFilter(src, dst, src.type(), ksize,\n. anchor, true, borderType)`.\n. \n. @param src input image; it can have any number of channels, which are processed independently, but\n. the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param ksize blurring kernel size.\n. @param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel\n. center.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa boxFilter, bilateralFilter, GaussianBlur, medianBlur' + ... + + +def borderInterpolate(p, len, borderType) -> typing.Any: + 'borderInterpolate(p, len, borderType) -> retval\n. @brief Computes the source location of an extrapolated pixel.\n. \n. The function computes and returns the coordinate of a donor pixel corresponding to the specified\n. extrapolated pixel when using the specified extrapolation border mode. For example, if you use\n. cv::BORDER_WRAP mode in the horizontal direction, cv::BORDER_REFLECT_101 in the vertical direction and\n. want to compute value of the "virtual" pixel Point(-5, 100) in a floating-point image img , it\n. looks like:\n. @code{.cpp}\n. float val = img.at(borderInterpolate(100, img.rows, cv::BORDER_REFLECT_101),\n. borderInterpolate(-5, img.cols, cv::BORDER_WRAP));\n. @endcode\n. Normally, the function is not called directly. It is used inside filtering functions and also in\n. copyMakeBorder.\n. @param p 0-based coordinate of the extrapolated pixel along one of the axes, likely \\<0 or \\>= len\n. @param len Length of the array along the corresponding axis.\n. @param borderType Border type, one of the #BorderTypes, except for #BORDER_TRANSPARENT and\n. #BORDER_ISOLATED . When borderType==#BORDER_CONSTANT , the function always returns -1, regardless\n. of p and len.\n. \n. @sa copyMakeBorder' + ... + + +def boundingRect(array) -> typing.Any: + 'boundingRect(array) -> retval\n. @brief Calculates the up-right bounding rectangle of a point set or non-zero pixels of gray-scale image.\n. \n. The function calculates and returns the minimal up-right bounding rectangle for the specified point set or\n. non-zero pixels of gray-scale image.\n. \n. @param array Input gray-scale image or 2D point set, stored in std::vector or Mat.' + ... + + +def boxFilter(src: ndarray, ddepth, ksize, dts: ndarray = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: + 'boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst\n. @brief Blurs an image using the box filter.\n. \n. The function smooths an image using the kernel:\n. \n. \\f[\\texttt{K} = \\alpha \\begin{bmatrix} 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\hdotsfor{6} \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[\\alpha = \\begin{cases} \\frac{1}{\\texttt{ksize.width*ksize.height}} & \\texttt{when } \\texttt{normalize=true} \\\\1 & \\texttt{otherwise}\\end{cases}\\f]\n. \n. Unnormalized box filter is useful for computing various integral characteristics over each pixel\n. neighborhood, such as covariance matrices of image derivatives (used in dense optical flow\n. algorithms, and so on). If you need to compute pixel sums over variable-size windows, use #integral.\n. \n. @param src input image.\n. @param dst output image of the same size and type as src.\n. @param ddepth the output image depth (-1 to use src.depth()).\n. @param ksize blurring kernel size.\n. @param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel\n. center.\n. @param normalize flag, specifying whether the kernel is normalized by its area or not.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa blur, bilateralFilter, GaussianBlur, medianBlur, integral' + ... + + +def boxPoints(box, points=...) -> typing.Any: + 'boxPoints(box[, points]) -> points\n. @brief Finds the four vertices of a rotated rect. Useful to draw the rotated rectangle.\n. \n. The function finds the four vertices of a rotated rectangle. This function is useful to draw the\n. rectangle. In C++, instead of using this function, you can directly use RotatedRect::points method. Please\n. visit the @ref tutorial_bounding_rotated_ellipses "tutorial on Creating Bounding rotated boxes and ellipses for contours" for more information.\n. \n. @param box The input rotated rectangle. It may be the output of\n. @param points The output array of four vertices of rectangles.' + ... + + +def buildOpticalFlowPyramid(img: ndarray, winSize, maxLevel, pyramid=..., withDerivatives=..., pyrBorder=..., derivBorder=..., tryReuseInputImage=...) -> typing.Any: + 'buildOpticalFlowPyramid(img, winSize, maxLevel[, pyramid[, withDerivatives[, pyrBorder[, derivBorder[, tryReuseInputImage]]]]]) -> retval, pyramid\n. @brief Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK.\n. \n. @param img 8-bit input image.\n. @param pyramid output pyramid.\n. @param winSize window size of optical flow algorithm. Must be not less than winSize argument of\n. calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels.\n. @param maxLevel 0-based maximal pyramid level number.\n. @param withDerivatives set to precompute gradients for the every pyramid level. If pyramid is\n. constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally.\n. @param pyrBorder the border mode for pyramid layers.\n. @param derivBorder the border mode for gradients.\n. @param tryReuseInputImage put ROI of input image into the pyramid if possible. You can pass false\n. to force data copying.\n. @return number of levels in constructed pyramid. Can be less than maxLevel.' + ... + + +def calcBackProject(images: typing.List[ndarray], channels: typing.List[int], hist, ranges: typing.List[int], scale, dts: ndarray = ...) -> typing.Any: + 'calcBackProject(images, channels, hist, ranges, scale[, dst]) -> dst\n. @overload' + ... + + +def calcCovarMatrix(samples, mean, flags: int, covar=..., ctype=...) -> typing.Any: + "calcCovarMatrix(samples, mean, flags[, covar[, ctype]]) -> covar, mean\n. @overload\n. @note use #COVAR_ROWS or #COVAR_COLS flag\n. @param samples samples stored as rows/columns of a single matrix.\n. @param covar output covariance matrix of the type ctype and square size.\n. @param mean input or output (depending on the flags) array as the average value of the input vectors.\n. @param flags operation flags as a combination of #CovarFlags\n. @param ctype type of the matrixl; it equals 'CV_64F' by default." + ... + + +def calcHist(images: typing.List[ndarray], channels: typing.List[int], mask: typing.Optional[ndarray], histSize: typing.List[int], ranges: typing.List[int], hist=..., accumulate=...) -> ndarray: + 'calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) -> hist\n. @overload' + ... + + +def calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags: int) -> typing.Any: + "calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags) -> flow\n. @brief Computes a dense optical flow using the Gunnar Farneback's algorithm.\n. \n. @param prev first 8-bit single-channel input image.\n. @param next second input image of the same size and the same type as prev.\n. @param flow computed flow image that has the same size as prev and type CV_32FC2.\n. @param pyr_scale parameter, specifying the image scale (\\<1) to build pyramids for each image;\n. pyr_scale=0.5 means a classical pyramid, where each next layer is twice smaller than the previous\n. one.\n. @param levels number of pyramid layers including the initial image; levels=1 means that no extra\n. layers are created and only the original images are used.\n. @param winsize averaging window size; larger values increase the algorithm robustness to image\n. noise and give more chances for fast motion detection, but yield more blurred motion field.\n. @param iterations number of iterations the algorithm does at each pyramid level.\n. @param poly_n size of the pixel neighborhood used to find polynomial expansion in each pixel;\n. larger values mean that the image will be approximated with smoother surfaces, yielding more\n. robust algorithm and more blurred motion field, typically poly_n =5 or 7.\n. @param poly_sigma standard deviation of the Gaussian that is used to smooth derivatives used as a\n. basis for the polynomial expansion; for poly_n=5, you can set poly_sigma=1.1, for poly_n=7, a\n. good value would be poly_sigma=1.5.\n. @param flags operation flags that can be a combination of the following:\n. - **OPTFLOW_USE_INITIAL_FLOW** uses the input flow as an initial flow approximation.\n. - **OPTFLOW_FARNEBACK_GAUSSIAN** uses the Gaussian \\f$\\texttt{winsize}\\times\\texttt{winsize}\\f$\n. filter instead of a box filter of the same size for optical flow estimation; usually, this\n. option gives z more accurate flow than with a box filter, at the cost of lower speed;\n. normally, winsize for a Gaussian window should be set to a larger value to achieve the same\n. level of robustness.\n. \n. The function finds an optical flow for each prev pixel using the @cite Farneback2003 algorithm so that\n. \n. \\f[\\texttt{prev} (y,x) \\sim \\texttt{next} ( y + \\texttt{flow} (y,x)[1], x + \\texttt{flow} (y,x)[0])\\f]\n. \n. @note\n. \n. - An example using the optical flow algorithm described by Gunnar Farneback can be found at\n. opencv_source_code/samples/cpp/fback.cpp\n. - (Python) An example using the optical flow algorithm described by Gunnar Farneback can be\n. found at opencv_source_code/samples/python/opt_flow.py" + ... + + +def calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status=..., err=..., winSize=..., maxLevel=..., criteria=..., flags: int = ..., minEigThreshold=...) -> typing.Any: + "calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts[, status[, err[, winSize[, maxLevel[, criteria[, flags[, minEigThreshold]]]]]]]) -> nextPts, status, err\n. @brief Calculates an optical flow for a sparse feature set using the iterative Lucas-Kanade method with\n. pyramids.\n. \n. @param prevImg first 8-bit input image or pyramid constructed by buildOpticalFlowPyramid.\n. @param nextImg second input image or pyramid of the same size and the same type as prevImg.\n. @param prevPts vector of 2D points for which the flow needs to be found; point coordinates must be\n. single-precision floating-point numbers.\n. @param nextPts output vector of 2D points (with single-precision floating-point coordinates)\n. containing the calculated new positions of input features in the second image; when\n. OPTFLOW_USE_INITIAL_FLOW flag is passed, the vector must have the same size as in the input.\n. @param status output status vector (of unsigned chars); each element of the vector is set to 1 if\n. the flow for the corresponding features has been found, otherwise, it is set to 0.\n. @param err output vector of errors; each element of the vector is set to an error for the\n. corresponding feature, type of the error measure can be set in flags parameter; if the flow wasn't\n. found then the error is not defined (use the status parameter to find such cases).\n. @param winSize size of the search window at each pyramid level.\n. @param maxLevel 0-based maximal pyramid level number; if set to 0, pyramids are not used (single\n. level), if set to 1, two levels are used, and so on; if pyramids are passed to input then\n. algorithm will use as many levels as pyramids have but no more than maxLevel.\n. @param criteria parameter, specifying the termination criteria of the iterative search algorithm\n. (after the specified maximum number of iterations criteria.maxCount or when the search window\n. moves by less than criteria.epsilon.\n. @param flags operation flags:\n. - **OPTFLOW_USE_INITIAL_FLOW** uses initial estimations, stored in nextPts; if the flag is\n. not set, then prevPts is copied to nextPts and is considered the initial estimate.\n. - **OPTFLOW_LK_GET_MIN_EIGENVALS** use minimum eigen values as an error measure (see\n. minEigThreshold description); if the flag is not set, then L1 distance between patches\n. around the original and a moved point, divided by number of pixels in a window, is used as a\n. error measure.\n. @param minEigThreshold the algorithm calculates the minimum eigen value of a 2x2 normal matrix of\n. optical flow equations (this matrix is called a spatial gradient matrix in @cite Bouguet00), divided\n. by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding\n. feature is filtered out and its flow is not processed, so it allows to remove bad points and get a\n. performance boost.\n. \n. The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See\n. @cite Bouguet00 . The function is parallelized with the TBB library.\n. \n. @note\n. \n. - An example using the Lucas-Kanade optical flow algorithm can be found at\n. opencv_source_code/samples/cpp/lkdemo.cpp\n. - (Python) An example using the Lucas-Kanade optical flow algorithm can be found at\n. opencv_source_code/samples/python/lk_track.py\n. - (Python) An example using the Lucas-Kanade tracker for homography matching can be found at\n. opencv_source_code/samples/python/lk_homography.py" + ... + + +def calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., flags: int = ..., criteria=...) -> typing.Any: + 'calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs\n. @overload' + ... + + +def calibrateCameraExtended(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., stdDeviationsIntrinsics=..., stdDeviationsExtrinsics=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: + "calibrateCameraExtended(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors\n. @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration\n. pattern.\n. \n. @param objectPoints In the new interface it is a vector of vectors of calibration pattern points in\n. the calibration pattern coordinate space (e.g. std::vector>). The outer\n. vector contains as many elements as the number of pattern views. If the same calibration pattern\n. is shown in each view and it is fully visible, all the vectors will be the same. Although, it is\n. possible to use partially occluded patterns or even different patterns in different views. Then,\n. the vectors will be different. Although the points are 3D, they all lie in the calibration pattern's\n. XY coordinate plane (thus 0 in the Z-coordinate), if the used calibration pattern is a planar rig.\n. In the old interface all the vectors of object points from different views are concatenated\n. together.\n. @param imagePoints In the new interface it is a vector of vectors of the projections of calibration\n. pattern points (e.g. std::vector>). imagePoints.size() and\n. objectPoints.size(), and imagePoints[i].size() and objectPoints[i].size() for each i, must be equal,\n. respectively. In the old interface all the vectors of object points from different views are\n. concatenated together.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrix.\n. @param cameraMatrix Input/output 3x3 floating-point camera matrix\n. \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ . If CV\\_CALIB\\_USE\\_INTRINSIC\\_GUESS\n. and/or CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be\n. initialized before calling the function.\n. @param distCoeffs Input/output vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements.\n. @param rvecs Output vector of rotation vectors (@ref Rodrigues ) estimated for each pattern view\n. (e.g. std::vector>). That is, each i-th rotation vector together with the corresponding\n. i-th translation vector (see the next output parameter description) brings the calibration pattern\n. from the object coordinate space (in which object points are specified) to the camera coordinate\n. space. In more technical terms, the tuple of the i-th rotation and translation vector performs\n. a change of basis from object coordinate space to camera coordinate space. Due to its duality, this\n. tuple is equivalent to the position of the calibration pattern with respect to the camera coordinate\n. space.\n. @param tvecs Output vector of translation vectors estimated for each pattern view, see parameter\n. describtion above.\n. @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic\n. parameters. Order of deviations values:\n. \\f$(f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3,\n. s_4, \\tau_x, \\tau_y)\\f$ If one of parameters is not estimated, it's deviation is equals to zero.\n. @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic\n. parameters. Order of deviations values: \\f$(R_0, T_0, \\dotsc , R_{M - 1}, T_{M - 1})\\f$ where M is\n. the number of pattern views. \\f$R_i, T_i\\f$ are concatenated 1x3 vectors.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of the following values:\n. - **CALIB_USE_INTRINSIC_GUESS** cameraMatrix contains valid initial values of\n. fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image\n. center ( imageSize is used), and focal distances are computed in a least-squares fashion.\n. Note, that if intrinsic parameters are known, there is no need to use this function just to\n. estimate extrinsic parameters. Use solvePnP instead.\n. - **CALIB_FIX_PRINCIPAL_POINT** The principal point is not changed during the global\n. optimization. It stays at the center or at a different location specified when\n. CALIB_USE_INTRINSIC_GUESS is set too.\n. - **CALIB_FIX_ASPECT_RATIO** The functions consider only fy as a free parameter. The\n. ratio fx/fy stays the same as in the input cameraMatrix . When\n. CALIB_USE_INTRINSIC_GUESS is not set, the actual input values of fx and fy are\n. ignored, only their ratio is computed and used further.\n. - **CALIB_ZERO_TANGENT_DIST** Tangential distortion coefficients \\f$(p_1, p_2)\\f$ are set\n. to zeros and stay zero.\n. - **CALIB_FIX_K1,...,CALIB_FIX_K6** The corresponding radial distortion\n. coefficient is not changed during the optimization. If CALIB_USE_INTRINSIC_GUESS is\n. set, the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_RATIONAL_MODEL** Coefficients k4, k5, and k6 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the rational model and return 8 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the thin prism model and return 12 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the tilted sensor model and return 14 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. @return the overall RMS re-projection error.\n. \n. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the\n. views. The algorithm is based on @cite Zhang2000 and @cite BouguetMCT . The coordinates of 3D object\n. points and their corresponding 2D projections in each view must be specified. That may be achieved\n. by using an object with known geometry and easily detectable feature points. Such an object is\n. called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as\n. a calibration rig (see @ref findChessboardCorners). Currently, initialization of intrinsic\n. parameters (when CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration\n. patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also\n. be used as long as initial cameraMatrix is provided.\n. \n. The algorithm performs the following steps:\n. \n. - Compute the initial intrinsic parameters (the option only available for planar calibration\n. patterns) or read them from the input parameters. The distortion coefficients are all set to\n. zeros initially unless some of CALIB_FIX_K? are specified.\n. \n. - Estimate the initial camera pose as if the intrinsic parameters have been already known. This is\n. done using solvePnP .\n. \n. - Run the global Levenberg-Marquardt optimization algorithm to minimize the reprojection error,\n. that is, the total sum of squared distances between the observed feature points imagePoints and\n. the projected (using the current estimates for camera parameters and the poses) object points\n. objectPoints. See projectPoints for details.\n. \n. @note\n. If you use a non-square (i.e. non-N-by-N) grid and @ref findChessboardCorners for calibration,\n. and @ref calibrateCamera returns bad values (zero distortion coefficients, \\f$c_x\\f$ and\n. \\f$c_y\\f$ very far from the image center, and/or large differences between \\f$f_x\\f$ and\n. \\f$f_y\\f$ (ratios of 10:1 or more)), then you are probably using patternSize=cvSize(rows,cols)\n. instead of using patternSize=cvSize(cols,rows) in @ref findChessboardCorners.\n. \n. @sa\n. calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate,\n. undistort" + ... + + +def calibrateCameraRO(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., newObjPoints=..., flags: int = ..., criteria=...) -> typing.Any: + 'calibrateCameraRO(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs[, rvecs[, tvecs[, newObjPoints[, flags[, criteria]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, newObjPoints\n. @overload' + ... + + +def calibrateCameraROExtended(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., newObjPoints=..., stdDeviationsIntrinsics=..., stdDeviationsExtrinsics=..., stdDeviationsObjPoints=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: + 'calibrateCameraROExtended(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs[, rvecs[, tvecs[, newObjPoints[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, stdDeviationsObjPoints[, perViewErrors[, flags[, criteria]]]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, newObjPoints, stdDeviationsIntrinsics, stdDeviationsExtrinsics, stdDeviationsObjPoints, perViewErrors\n. @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern.\n. \n. This function is an extension of calibrateCamera() with the method of releasing object which was\n. proposed in @cite strobl2011iccv. In many common cases with inaccurate, unmeasured, roughly planar\n. targets (calibration plates), this method can dramatically improve the precision of the estimated\n. camera parameters. Both the object-releasing method and standard method are supported by this\n. function. Use the parameter **iFixedPoint** for method selection. In the internal implementation,\n. calibrateCamera() is a wrapper for this function.\n. \n. @param objectPoints Vector of vectors of calibration pattern points in the calibration pattern\n. coordinate space. See calibrateCamera() for details. If the method of releasing object to be used,\n. the identical calibration board must be used in each view and it must be fully visible, and all\n. objectPoints[i] must be the same and all points should be roughly close to a plane. **The calibration\n. target has to be rigid, or at least static if the camera (rather than the calibration target) is\n. shifted for grabbing images.**\n. @param imagePoints Vector of vectors of the projections of calibration pattern points. See\n. calibrateCamera() for details.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrix.\n. @param iFixedPoint The index of the 3D object point in objectPoints[0] to be fixed. It also acts as\n. a switch for calibration method selection. If object-releasing method to be used, pass in the\n. parameter in the range of [1, objectPoints[0].size()-2], otherwise a value out of this range will\n. make standard calibration method selected. Usually the top-right corner point of the calibration\n. board grid is recommended to be fixed when object-releasing method being utilized. According to\n. \\cite strobl2011iccv, two other points are also fixed. In this implementation, objectPoints[0].front\n. and objectPoints[0].back.z are used. With object-releasing method, accurate rvecs, tvecs and\n. newObjPoints are only possible if coordinates of these three fixed points are accurate enough.\n. @param cameraMatrix Output 3x3 floating-point camera matrix. See calibrateCamera() for details.\n. @param distCoeffs Output vector of distortion coefficients. See calibrateCamera() for details.\n. @param rvecs Output vector of rotation vectors estimated for each pattern view. See calibrateCamera()\n. for details.\n. @param tvecs Output vector of translation vectors estimated for each pattern view.\n. @param newObjPoints The updated output vector of calibration pattern points. The coordinates might\n. be scaled based on three fixed points. The returned coordinates are accurate only if the above\n. mentioned three fixed points are accurate. If not needed, noArray() can be passed in. This parameter\n. is ignored with standard calibration method.\n. @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters.\n. See calibrateCamera() for details.\n. @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters.\n. See calibrateCamera() for details.\n. @param stdDeviationsObjPoints Output vector of standard deviations estimated for refined coordinates\n. of calibration pattern points. It has the same size and order as objectPoints[0] vector. This\n. parameter is ignored with standard calibration method.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of some predefined values. See\n. calibrateCamera() for details. If the method of releasing object is used, the calibration time may\n. be much longer. CALIB_USE_QR or CALIB_USE_LU could be used for faster calibration with potentially\n. less precise and less stable in some rare cases.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. @return the overall RMS re-projection error.\n. \n. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the\n. views. The algorithm is based on @cite Zhang2000, @cite BouguetMCT and @cite strobl2011iccv. See\n. calibrateCamera() for other detailed explanations.\n. @sa\n. calibrateCamera, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort' + ... + + +def calibrateHandEye(R_gripper2base, t_gripper2base, R_target2cam, t_target2cam, R_cam2gripper=..., t_cam2gripper=..., method: int = ...) -> typing.Any: + 'calibrateHandEye(R_gripper2base, t_gripper2base, R_target2cam, t_target2cam[, R_cam2gripper[, t_cam2gripper[, method]]]) -> R_cam2gripper, t_cam2gripper\n. @brief Computes Hand-Eye calibration: \\f$_{}^{g}\\textrm{T}_c\\f$\n. \n. @param[in] R_gripper2base Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the gripper frame to the robot base frame (\\f$_{}^{b}\\textrm{T}_g\\f$).\n. This is a vector (`vector`) that contains the rotation matrices for all the transformations\n. from gripper frame to robot base frame.\n. @param[in] t_gripper2base Translation part extracted from the homogeneous matrix that transforms a point\n. expressed in the gripper frame to the robot base frame (\\f$_{}^{b}\\textrm{T}_g\\f$).\n. This is a vector (`vector`) that contains the translation vectors for all the transformations\n. from gripper frame to robot base frame.\n. @param[in] R_target2cam Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the target frame to the camera frame (\\f$_{}^{c}\\textrm{T}_t\\f$).\n. This is a vector (`vector`) that contains the rotation matrices for all the transformations\n. from calibration target frame to camera frame.\n. @param[in] t_target2cam Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the target frame to the camera frame (\\f$_{}^{c}\\textrm{T}_t\\f$).\n. This is a vector (`vector`) that contains the translation vectors for all the transformations\n. from calibration target frame to camera frame.\n. @param[out] R_cam2gripper Estimated rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the camera frame to the gripper frame (\\f$_{}^{g}\\textrm{T}_c\\f$).\n. @param[out] t_cam2gripper Estimated translation part extracted from the homogeneous matrix that transforms a point\n. expressed in the camera frame to the gripper frame (\\f$_{}^{g}\\textrm{T}_c\\f$).\n. @param[in] method One of the implemented Hand-Eye calibration method, see cv::HandEyeCalibrationMethod\n. \n. The function performs the Hand-Eye calibration using various methods. One approach consists in estimating the\n. rotation then the translation (separable solutions) and the following methods are implemented:\n. - R. Tsai, R. Lenz A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/EyeCalibration \\cite Tsai89\n. - F. Park, B. Martin Robot Sensor Calibration: Solving AX = XB on the Euclidean Group \\cite Park94\n. - R. Horaud, F. Dornaika Hand-Eye Calibration \\cite Horaud95\n. \n. Another approach consists in estimating simultaneously the rotation and the translation (simultaneous solutions),\n. with the following implemented method:\n. - N. Andreff, R. Horaud, B. Espiau On-line Hand-Eye Calibration \\cite Andreff99\n. - K. Daniilidis Hand-Eye Calibration Using Dual Quaternions \\cite Daniilidis98\n. \n. The following picture describes the Hand-Eye calibration problem where the transformation between a camera ("eye")\n. mounted on a robot gripper ("hand") has to be estimated.\n. \n. ![](pics/hand-eye_figure.png)\n. \n. The calibration procedure is the following:\n. - a static calibration pattern is used to estimate the transformation between the target frame\n. and the camera frame\n. - the robot gripper is moved in order to acquire several poses\n. - for each pose, the homogeneous transformation between the gripper frame and the robot base frame is recorded using for\n. instance the robot kinematics\n. \\f[\n. \\begin{bmatrix}\n. X_b\\\\\n. Y_b\\\\\n. Z_b\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{b}\\textrm{R}_g & _{}^{b}\\textrm{t}_g \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_g\\\\\n. Y_g\\\\\n. Z_g\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. - for each pose, the homogeneous transformation between the calibration target frame and the camera frame is recorded using\n. for instance a pose estimation method (PnP) from 2D-3D point correspondences\n. \\f[\n. \\begin{bmatrix}\n. X_c\\\\\n. Y_c\\\\\n. Z_c\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{c}\\textrm{R}_t & _{}^{c}\\textrm{t}_t \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_t\\\\\n. Y_t\\\\\n. Z_t\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. \n. The Hand-Eye calibration procedure returns the following homogeneous transformation\n. \\f[\n. \\begin{bmatrix}\n. X_g\\\\\n. Y_g\\\\\n. Z_g\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{g}\\textrm{R}_c & _{}^{g}\\textrm{t}_c \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_c\\\\\n. Y_c\\\\\n. Z_c\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. \n. This problem is also known as solving the \\f$\\mathbf{A}\\mathbf{X}=\\mathbf{X}\\mathbf{B}\\f$ equation:\n. \\f[\n. \\begin{align*}\n. ^{b}{\\textrm{T}_g}^{(1)} \\hspace{0.2em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(1)} &=\n. \\hspace{0.1em} ^{b}{\\textrm{T}_g}^{(2)} \\hspace{0.2em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(2)} \\\\\n. \n. (^{b}{\\textrm{T}_g}^{(2)})^{-1} \\hspace{0.2em} ^{b}{\\textrm{T}_g}^{(1)} \\hspace{0.2em} ^{g}\\textrm{T}_c &=\n. \\hspace{0.1em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(2)} (^{c}{\\textrm{T}_t}^{(1)})^{-1} \\\\\n. \n. \\textrm{A}_i \\textrm{X} &= \\textrm{X} \\textrm{B}_i \\\\\n. \\end{align*}\n. \\f]\n. \n. \\note\n. Additional information can be found on this [website](http://campar.in.tum.de/Chair/HandEyeCalibration).\n. \\note\n. A minimum of 2 motions with non parallel rotation axes are necessary to determine the hand-eye transformation.\n. So at least 3 different poses are required, but it is strongly recommended to use many more poses.' + ... + + +def calibrationMatrixValues(cameraMatrix, imageSize, apertureWidth, apertureHeight) -> typing.Any: + "calibrationMatrixValues(cameraMatrix, imageSize, apertureWidth, apertureHeight) -> fovx, fovy, focalLength, principalPoint, aspectRatio\n. @brief Computes useful camera characteristics from the camera matrix.\n. \n. @param cameraMatrix Input camera matrix that can be estimated by calibrateCamera or\n. stereoCalibrate .\n. @param imageSize Input image size in pixels.\n. @param apertureWidth Physical width in mm of the sensor.\n. @param apertureHeight Physical height in mm of the sensor.\n. @param fovx Output field of view in degrees along the horizontal sensor axis.\n. @param fovy Output field of view in degrees along the vertical sensor axis.\n. @param focalLength Focal length of the lens in mm.\n. @param principalPoint Principal point in mm.\n. @param aspectRatio \\f$f_y/f_x\\f$\n. \n. The function computes various useful camera characteristics from the previously estimated camera\n. matrix.\n. \n. @note\n. Do keep in mind that the unity measure 'mm' stands for whatever unit of measure one chooses for\n. the chessboard pitch (it can thus be any value)." + ... + + +def cartToPolar(x, y, magnitude=..., angle=..., angleInDegrees=...) -> typing.Any: + 'cartToPolar(x, y[, magnitude[, angle[, angleInDegrees]]]) -> magnitude, angle\n. @brief Calculates the magnitude and angle of 2D vectors.\n. \n. The function cv::cartToPolar calculates either the magnitude, angle, or both\n. for every 2D vector (x(I),y(I)):\n. \\f[\\begin{array}{l} \\texttt{magnitude} (I)= \\sqrt{\\texttt{x}(I)^2+\\texttt{y}(I)^2} , \\\\ \\texttt{angle} (I)= \\texttt{atan2} ( \\texttt{y} (I), \\texttt{x} (I))[ \\cdot180 / \\pi ] \\end{array}\\f]\n. \n. The angles are calculated with accuracy about 0.3 degrees. For the point\n. (0,0), the angle is set to 0.\n. @param x array of x-coordinates; this must be a single-precision or\n. double-precision floating-point array.\n. @param y array of y-coordinates, that must have the same size and same type as x.\n. @param magnitude output array of magnitudes of the same size and type as x.\n. @param angle output array of angles that has the same size and type as\n. x; the angles are measured in radians (from 0 to 2\\*Pi) or in degrees (0 to 360 degrees).\n. @param angleInDegrees a flag, indicating whether the angles are measured\n. in radians (which is by default), or in degrees.\n. @sa Sobel, Scharr' + ... + + +def checkChessboard(img: ndarray, size) -> typing.Any: + 'checkChessboard(img, size) -> retval\n.' + ... + + +def checkHardwareSupport(feature) -> typing.Any: + 'checkHardwareSupport(feature) -> retval\n. @brief Returns true if the specified feature is supported by the host hardware.\n. \n. The function returns true if the host hardware supports the specified feature. When user calls\n. setUseOptimized(false), the subsequent calls to checkHardwareSupport() will return false until\n. setUseOptimized(true) is called. This way user can dynamically switch on and off the optimized code\n. in OpenCV.\n. @param feature The feature of interest, one of cv::CpuFeatures' + ... + + +def checkRange(a, quiet=..., minVal=..., maxVal=...) -> typing.Any: + 'checkRange(a[, quiet[, minVal[, maxVal]]]) -> retval, pos\n. @brief Checks every element of an input array for invalid values.\n. \n. The function cv::checkRange checks that every array element is neither NaN nor infinite. When minVal \\>\n. -DBL_MAX and maxVal \\< DBL_MAX, the function also checks that each value is between minVal and\n. maxVal. In case of multi-channel arrays, each channel is processed independently. If some values\n. are out of range, position of the first outlier is stored in pos (when pos != NULL). Then, the\n. function either returns false (when quiet=true) or throws an exception.\n. @param a input array.\n. @param quiet a flag, indicating whether the functions quietly return false when the array elements\n. are out of range or they throw an exception.\n. @param pos optional output parameter, when not NULL, must be a pointer to array of src.dims\n. elements.\n. @param minVal inclusive lower boundary of valid values range.\n. @param maxVal exclusive upper boundary of valid values range.' + ... + + +def circle(img: ndarray, center, radius, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'circle(img, center, radius, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a circle.\n. \n. The function cv::circle draws a simple or filled circle with a given center and radius.\n. @param img Image where the circle is drawn.\n. @param center Center of the circle.\n. @param radius Radius of the circle.\n. @param color Circle color.\n. @param thickness Thickness of the circle outline, if positive. Negative values, like #FILLED,\n. mean that a filled circle is to be drawn.\n. @param lineType Type of the circle boundary. See #LineTypes\n. @param shift Number of fractional bits in the coordinates of the center and in the radius value.' + ... + + +def clipLine(imgRect, pt1, pt2) -> typing.Any: + 'clipLine(imgRect, pt1, pt2) -> retval, pt1, pt2\n. @overload\n. @param imgRect Image rectangle.\n. @param pt1 First line point.\n. @param pt2 Second line point.' + ... + + +def colorChange(src: ndarray, mask: ndarray, dts: ndarray = ..., red_mul=..., green_mul=..., blue_mul=...) -> typing.Any: + 'colorChange(src, mask[, dst[, red_mul[, green_mul[, blue_mul]]]]) -> dst\n. @brief Given an original color image, two differently colored versions of this image can be mixed\n. seamlessly.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src .\n. @param red_mul R-channel multiply factor.\n. @param green_mul G-channel multiply factor.\n. @param blue_mul B-channel multiply factor.\n. \n. Multiplication factor is between .5 to 2.5.' + ... + + +def compare(src1: ndarray, src2: ndarray, cmpop, dts: ndarray = ...) -> typing.Any: + 'compare(src1, src2, cmpop[, dst]) -> dst\n. @brief Performs the per-element comparison of two arrays or an array and scalar value.\n. \n. The function compares:\n. * Elements of two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\,\\texttt{cmpop}\\, \\texttt{src2} (I)\\f]\n. * Elements of src1 with a scalar src2 when src2 is constructed from\n. Scalar or has a single element:\n. \\f[\\texttt{dst} (I) = \\texttt{src1}(I) \\,\\texttt{cmpop}\\, \\texttt{src2}\\f]\n. * src1 with elements of src2 when src1 is constructed from Scalar or\n. has a single element:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\,\\texttt{cmpop}\\, \\texttt{src2} (I)\\f]\n. When the comparison result is true, the corresponding element of output\n. array is set to 255. The comparison operations can be replaced with the\n. equivalent matrix expressions:\n. @code{.cpp}\n. Mat dst1 = src1 >= src2;\n. Mat dst2 = src1 < 8;\n. ...\n. @endcode\n. @param src1 first input array or a scalar; when it is an array, it must have a single channel.\n. @param src2 second input array or a scalar; when it is an array, it must have a single channel.\n. @param dst output array of type ref CV_8U that has the same size and the same number of channels as\n. the input arrays.\n. @param cmpop a flag, that specifies correspondence between the arrays (cv::CmpTypes)\n. @sa checkRange, min, max, threshold' + ... + + +def compareHist(H1: ndarray, H2: ndarray, method: int) -> float: + 'compareHist(H1, H2, method) -> retval\n. @brief Compares two histograms.\n. \n. The function cv::compareHist compares two dense or two sparse histograms using the specified method.\n. \n. The function returns \\f$d(H_1, H_2)\\f$ .\n. \n. While the function works well with 1-, 2-, 3-dimensional dense histograms, it may not be suitable\n. for high-dimensional sparse histograms. In such histograms, because of aliasing and sampling\n. problems, the coordinates of non-zero histogram bins can slightly shift. To compare such histograms\n. or more general sparse configurations of weighted points, consider using the #EMD function.\n. \n. @param H1 First compared histogram.\n. @param H2 Second compared histogram of the same size as H1 .\n. @param method Comparison method, see #HistCompMethods' + ... + + +def completeSymm(m, lowerToUpper=...) -> typing.Any: + 'completeSymm(m[, lowerToUpper]) -> m\n. @brief Copies the lower or the upper half of a square matrix to its another half.\n. \n. The function cv::completeSymm copies the lower or the upper half of a square matrix to\n. its another half. The matrix diagonal remains unchanged:\n. - \\f$\\texttt{m}_{ij}=\\texttt{m}_{ji}\\f$ for \\f$i > j\\f$ if\n. lowerToUpper=false\n. - \\f$\\texttt{m}_{ij}=\\texttt{m}_{ji}\\f$ for \\f$i < j\\f$ if\n. lowerToUpper=true\n. \n. @param m input-output floating-point square matrix.\n. @param lowerToUpper operation flag; if true, the lower half is copied to\n. the upper half. Otherwise, the upper half is copied to the lower half.\n. @sa flip, transpose' + ... + + +def composeRT(rvec1, tvec1, rvec2, tvec2, rvec3=..., tvec3=..., dr3dr1=..., dr3dt1=..., dr3dr2=..., dr3dt2=..., dt3dr1=..., dt3dt1=..., dt3dr2=..., dt3dt2=...) -> typing.Any: + 'composeRT(rvec1, tvec1, rvec2, tvec2[, rvec3[, tvec3[, dr3dr1[, dr3dt1[, dr3dr2[, dr3dt2[, dt3dr1[, dt3dt1[, dt3dr2[, dt3dt2]]]]]]]]]]) -> rvec3, tvec3, dr3dr1, dr3dt1, dr3dr2, dr3dt2, dt3dr1, dt3dt1, dt3dr2, dt3dt2\n. @brief Combines two rotation-and-shift transformations.\n. \n. @param rvec1 First rotation vector.\n. @param tvec1 First translation vector.\n. @param rvec2 Second rotation vector.\n. @param tvec2 Second translation vector.\n. @param rvec3 Output rotation vector of the superposition.\n. @param tvec3 Output translation vector of the superposition.\n. @param dr3dr1 Optional output derivative of rvec3 with regard to rvec1\n. @param dr3dt1 Optional output derivative of rvec3 with regard to tvec1\n. @param dr3dr2 Optional output derivative of rvec3 with regard to rvec2\n. @param dr3dt2 Optional output derivative of rvec3 with regard to tvec2\n. @param dt3dr1 Optional output derivative of tvec3 with regard to rvec1\n. @param dt3dt1 Optional output derivative of tvec3 with regard to tvec1\n. @param dt3dr2 Optional output derivative of tvec3 with regard to rvec2\n. @param dt3dt2 Optional output derivative of tvec3 with regard to tvec2\n. \n. The functions compute:\n. \n. \\f[\\begin{array}{l} \\texttt{rvec3} = \\mathrm{rodrigues} ^{-1} \\left ( \\mathrm{rodrigues} ( \\texttt{rvec2} ) \\cdot \\mathrm{rodrigues} ( \\texttt{rvec1} ) \\right ) \\\\ \\texttt{tvec3} = \\mathrm{rodrigues} ( \\texttt{rvec2} ) \\cdot \\texttt{tvec1} + \\texttt{tvec2} \\end{array} ,\\f]\n. \n. where \\f$\\mathrm{rodrigues}\\f$ denotes a rotation vector to a rotation matrix transformation, and\n. \\f$\\mathrm{rodrigues}^{-1}\\f$ denotes the inverse transformation. See Rodrigues for details.\n. \n. Also, the functions can compute the derivatives of the output vectors with regards to the input\n. vectors (see matMulDeriv ). The functions are used inside stereoCalibrate but can also be used in\n. your own code where Levenberg-Marquardt or another gradient-based solver is used to optimize a\n. function that contains a matrix multiplication.' + ... + + +def computeCorrespondEpilines(points, whichImage, F, lines=...) -> typing.Any: + 'computeCorrespondEpilines(points, whichImage, F[, lines]) -> lines\n. @brief For points in an image of a stereo pair, computes the corresponding epilines in the other image.\n. \n. @param points Input points. \\f$N \\times 1\\f$ or \\f$1 \\times N\\f$ matrix of type CV_32FC2 or\n. vector\\ .\n. @param whichImage Index of the image (1 or 2) that contains the points .\n. @param F Fundamental matrix that can be estimated using findFundamentalMat or stereoRectify .\n. @param lines Output vector of the epipolar lines corresponding to the points in the other image.\n. Each line \\f$ax + by + c=0\\f$ is encoded by 3 numbers \\f$(a, b, c)\\f$ .\n. \n. For every point in one of the two images of a stereo pair, the function finds the equation of the\n. corresponding epipolar line in the other image.\n. \n. From the fundamental matrix definition (see findFundamentalMat ), line \\f$l^{(2)}_i\\f$ in the second\n. image for the point \\f$p^{(1)}_i\\f$ in the first image (when whichImage=1 ) is computed as:\n. \n. \\f[l^{(2)}_i = F p^{(1)}_i\\f]\n. \n. And vice versa, when whichImage=2, \\f$l^{(1)}_i\\f$ is computed from \\f$p^{(2)}_i\\f$ as:\n. \n. \\f[l^{(1)}_i = F^T p^{(2)}_i\\f]\n. \n. Line coefficients are defined up to a scale. They are normalized so that \\f$a_i^2+b_i^2=1\\f$ .' + ... + + +def computeECC(templateImage, inputImage, inputMask=...) -> typing.Any: + 'computeECC(templateImage, inputImage[, inputMask]) -> retval\n. @brief Computes the Enhanced Correlation Coefficient value between two images @cite EP08 .\n. \n. @param templateImage single-channel template image; CV_8U or CV_32F array.\n. @param inputImage single-channel input image to be warped to provide an image similar to\n. templateImage, same type as templateImage.\n. @param inputMask An optional mask to indicate valid values of inputImage.\n. \n. @sa\n. findTransformECC' + ... + + +def connectedComponents(image: ndarray, labels=..., connectivity=..., ltype=...) -> typing.Any: + 'connectedComponents(image[, labels[, connectivity[, ltype]]]) -> retval, labels\n. @overload\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.' + ... + + +def connectedComponentsWithAlgorithm(image: ndarray, connectivity, ltype, ccltype, labels=...) -> typing.Any: + "connectedComponentsWithAlgorithm(image, connectivity, ltype, ccltype[, labels]) -> retval, labels\n. @brief computes the connected components labeled image of boolean image\n. \n. image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0\n. represents the background label. ltype specifies the output label image type, an important\n. consideration based on the total number of labels or alternatively the total number of pixels in\n. the source image. ccltype specifies the connected components labeling algorithm to use, currently\n. Grana (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes\n. for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.\n. This function uses parallel version of both Grana and Wu's algorithms if at least one allowed\n. parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.\n. @param ccltype connected components algorithm type (see the #ConnectedComponentsAlgorithmsTypes)." + ... + + +def connectedComponentsWithStats(image: ndarray, labels=..., stats=..., centroids=..., connectivity=..., ltype=...) -> typing.Any: + 'connectedComponentsWithStats(image[, labels[, stats[, centroids[, connectivity[, ltype]]]]]) -> retval, labels, stats, centroids\n. @overload\n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param stats statistics output for each label, including the background label.\n. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of\n. #ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.\n. @param centroids centroid output for each label, including the background label. Centroids are\n. accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.' + ... + + +def connectedComponentsWithStatsWithAlgorithm(image: ndarray, connectivity, ltype, ccltype, labels=..., stats=..., centroids=...) -> typing.Any: + "connectedComponentsWithStatsWithAlgorithm(image, connectivity, ltype, ccltype[, labels[, stats[, centroids]]]) -> retval, labels, stats, centroids\n. @brief computes the connected components labeled image of boolean image and also produces a statistics output for each label\n. \n. image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0\n. represents the background label. ltype specifies the output label image type, an important\n. consideration based on the total number of labels or alternatively the total number of pixels in\n. the source image. ccltype specifies the connected components labeling algorithm to use, currently\n. Grana's (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes\n. for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.\n. This function uses parallel version of both Grana and Wu's algorithms (statistics included) if at least one allowed\n. parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param stats statistics output for each label, including the background label.\n. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of\n. #ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.\n. @param centroids centroid output for each label, including the background label. Centroids are\n. accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.\n. @param ccltype connected components algorithm type (see #ConnectedComponentsAlgorithmsTypes)." + ... + + +def contourArea(contour, oriented=...) -> typing.Any: + 'contourArea(contour[, oriented]) -> retval\n. @brief Calculates a contour area.\n. \n. The function computes a contour area. Similarly to moments , the area is computed using the Green\n. formula. Thus, the returned area and the number of non-zero pixels, if you draw the contour using\n. #drawContours or #fillPoly , can be different. Also, the function will most certainly give a wrong\n. results for contours with self-intersections.\n. \n. Example:\n. @code\n. vector contour;\n. contour.push_back(Point2f(0, 0));\n. contour.push_back(Point2f(10, 0));\n. contour.push_back(Point2f(10, 10));\n. contour.push_back(Point2f(5, 4));\n. \n. double area0 = contourArea(contour);\n. vector approx;\n. approxPolyDP(contour, approx, 5, true);\n. double area1 = contourArea(approx);\n. \n. cout << "area0 =" << area0 << endl <<\n. "area1 =" << area1 << endl <<\n. "approx poly vertices" << approx.size() << endl;\n. @endcode\n. @param contour Input vector of 2D points (contour vertices), stored in std::vector or Mat.\n. @param oriented Oriented area flag. If it is true, the function returns a signed area value,\n. depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can\n. determine orientation of a contour by taking the sign of an area. By default, the parameter is\n. false, which means that the absolute value is returned.' + ... + + +def convertFp16(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'convertFp16(src[, dst]) -> dst\n. @brief Converts an array to half precision floating number.\n. \n. This function converts FP32 (single precision floating point) from/to FP16 (half precision floating point). CV_16S format is used to represent FP16 data.\n. There are two use modes (src -> dst): CV_32F -> CV_16S and CV_16S -> CV_32F. The input array has to have type of CV_32F or\n. CV_16S to represent the bit depth. If the input array is neither of them, the function will raise an error.\n. The format of half precision floating point is defined in IEEE 754-2008.\n. \n. @param src input array.\n. @param dst output array.' + ... + + +def convertMaps(map1, map2, dstmap1type, dstmap1=..., dstmap2=..., nninterpolation=...) -> typing.Any: + 'convertMaps(map1, map2, dstmap1type[, dstmap1[, dstmap2[, nninterpolation]]]) -> dstmap1, dstmap2\n. @brief Converts image transformation maps from one representation to another.\n. \n. The function converts a pair of maps for remap from one representation to another. The following\n. options ( (map1.type(), map2.type()) \\f$\\rightarrow\\f$ (dstmap1.type(), dstmap2.type()) ) are\n. supported:\n. \n. - \\f$\\texttt{(CV_32FC1, CV_32FC1)} \\rightarrow \\texttt{(CV_16SC2, CV_16UC1)}\\f$. This is the\n. most frequently used conversion operation, in which the original floating-point maps (see remap )\n. are converted to a more compact and much faster fixed-point representation. The first output array\n. contains the rounded coordinates and the second array (created only when nninterpolation=false )\n. contains indices in the interpolation tables.\n. \n. - \\f$\\texttt{(CV_32FC2)} \\rightarrow \\texttt{(CV_16SC2, CV_16UC1)}\\f$. The same as above but\n. the original maps are stored in one 2-channel matrix.\n. \n. - Reverse conversion. Obviously, the reconstructed floating-point maps will not be exactly the same\n. as the originals.\n. \n. @param map1 The first input map of type CV_16SC2, CV_32FC1, or CV_32FC2 .\n. @param map2 The second input map of type CV_16UC1, CV_32FC1, or none (empty matrix),\n. respectively.\n. @param dstmap1 The first output map that has the type dstmap1type and the same size as src .\n. @param dstmap2 The second output map.\n. @param dstmap1type Type of the first output map that should be CV_16SC2, CV_32FC1, or\n. CV_32FC2 .\n. @param nninterpolation Flag indicating whether the fixed-point maps are used for the\n. nearest-neighbor or for a more complex interpolation.\n. \n. @sa remap, undistort, initUndistortRectifyMap' + ... + + +def convertPointsFromHomogeneous(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'convertPointsFromHomogeneous(src[, dst]) -> dst\n. @brief Converts points from homogeneous to Euclidean space.\n. \n. @param src Input vector of N-dimensional points.\n. @param dst Output vector of N-1-dimensional points.\n. \n. The function converts points homogeneous to Euclidean space using perspective projection. That is,\n. each point (x1, x2, ... x(n-1), xn) is converted to (x1/xn, x2/xn, ..., x(n-1)/xn). When xn=0, the\n. output point coordinates will be (0,0,0,...).' + ... + + +def convertPointsToHomogeneous(src: ndarray, dts: ndarray = ...) -> typing.Any: + "convertPointsToHomogeneous(src[, dst]) -> dst\n. @brief Converts points from Euclidean to homogeneous space.\n. \n. @param src Input vector of N-dimensional points.\n. @param dst Output vector of N+1-dimensional points.\n. \n. The function converts points from Euclidean to homogeneous space by appending 1's to the tuple of\n. point coordinates. That is, each point (x1, x2, ..., xn) is converted to (x1, x2, ..., xn, 1)." + ... + + +def convertScaleAbs(src: ndarray, dts: ndarray = ..., alpha=..., beta=...) -> typing.Any: + 'convertScaleAbs(src[, dst[, alpha[, beta]]]) -> dst\n. @brief Scales, calculates absolute values, and converts the result to 8-bit.\n. \n. On each element of the input array, the function convertScaleAbs\n. performs three operations sequentially: scaling, taking an absolute\n. value, conversion to an unsigned 8-bit type:\n. \\f[\\texttt{dst} (I)= \\texttt{saturate\\_cast} (| \\texttt{src} (I)* \\texttt{alpha} + \\texttt{beta} |)\\f]\n. In case of multi-channel arrays, the function processes each channel\n. independently. When the output is not 8-bit, the operation can be\n. emulated by calling the Mat::convertTo method (or by using matrix\n. expressions) and then by calculating an absolute value of the result.\n. For example:\n. @code{.cpp}\n. Mat_ A(30,30);\n. randu(A, Scalar(-100), Scalar(100));\n. Mat_ B = A*5 + 3;\n. B = abs(B);\n. // Mat_ B = abs(A*5+3) will also do the job,\n. // but it will allocate a temporary matrix\n. @endcode\n. @param src input array.\n. @param dst output array.\n. @param alpha optional scale factor.\n. @param beta optional delta added to the scaled values.\n. @sa Mat::convertTo, cv::abs(const Mat&)' + ... + + +def convexHull(points, hull=..., clockwise=..., returnPoints=...) -> typing.Any: + 'convexHull(points[, hull[, clockwise[, returnPoints]]]) -> hull\n. @brief Finds the convex hull of a point set.\n. \n. The function cv::convexHull finds the convex hull of a 2D point set using the Sklansky\'s algorithm @cite Sklansky82\n. that has *O(N logN)* complexity in the current implementation.\n. \n. @param points Input 2D point set, stored in std::vector or Mat.\n. @param hull Output convex hull. It is either an integer vector of indices or vector of points. In\n. the first case, the hull elements are 0-based indices of the convex hull points in the original\n. array (since the set of convex hull points is a subset of the original point set). In the second\n. case, hull elements are the convex hull points themselves.\n. @param clockwise Orientation flag. If it is true, the output convex hull is oriented clockwise.\n. Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing\n. to the right, and its Y axis pointing upwards.\n. @param returnPoints Operation flag. In case of a matrix, when the flag is true, the function\n. returns convex hull points. Otherwise, it returns indices of the convex hull points. When the\n. output array is std::vector, the flag is ignored, and the output depends on the type of the\n. vector: std::vector\\ implies returnPoints=false, std::vector\\ implies\n. returnPoints=true.\n. \n. @note `points` and `hull` should be different arrays, inplace processing isn\'t supported.\n. \n. Check @ref tutorial_hull "the corresponding tutorial" for more details.\n. \n. useful links:\n. \n. https://www.learnopencv.com/convex-hull-using-opencv-in-python-and-c/' + ... + + +def convexityDefects(contour, convexhull, convexityDefects=...) -> typing.Any: + 'convexityDefects(contour, convexhull[, convexityDefects]) -> convexityDefects\n. @brief Finds the convexity defects of a contour.\n. \n. The figure below displays convexity defects of a hand contour:\n. \n. ![image](pics/defects.png)\n. \n. @param contour Input contour.\n. @param convexhull Convex hull obtained using convexHull that should contain indices of the contour\n. points that make the hull.\n. @param convexityDefects The output vector of convexity defects. In C++ and the new Python/Java\n. interface each convexity defect is represented as 4-element integer vector (a.k.a. #Vec4i):\n. (start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices\n. in the original contour of the convexity defect beginning, end and the farthest point, and\n. fixpt_depth is fixed-point approximation (with 8 fractional bits) of the distance between the\n. farthest contour point and the hull. That is, to get the floating-point value of the depth will be\n. fixpt_depth/256.0.' + ... + + +def copyMakeBorder(src: ndarray, top, bottom, left, right, borderType, dts: ndarray = ..., value=...) -> typing.Any: + 'copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]]) -> dst\n. @brief Forms a border around an image.\n. \n. The function copies the source image into the middle of the destination image. The areas to the\n. left, to the right, above and below the copied source image will be filled with extrapolated\n. pixels. This is not what filtering functions based on it do (they extrapolate pixels on-fly), but\n. what other more complex functions, including your own, may do to simplify image boundary handling.\n. \n. The function supports the mode when src is already in the middle of dst . In this case, the\n. function does not copy src itself but simply constructs the border, for example:\n. \n. @code{.cpp}\n. // let border be the same in all directions\n. int border=2;\n. // constructs a larger image to fit both the image and the border\n. Mat gray_buf(rgb.rows + border*2, rgb.cols + border*2, rgb.depth());\n. // select the middle part of it w/o copying data\n. Mat gray(gray_canvas, Rect(border, border, rgb.cols, rgb.rows));\n. // convert image from RGB to grayscale\n. cvtColor(rgb, gray, COLOR_RGB2GRAY);\n. // form a border in-place\n. copyMakeBorder(gray, gray_buf, border, border,\n. border, border, BORDER_REPLICATE);\n. // now do some custom filtering ...\n. ...\n. @endcode\n. @note When the source image is a part (ROI) of a bigger image, the function will try to use the\n. pixels outside of the ROI to form a border. To disable this feature and always do extrapolation, as\n. if src was not a ROI, use borderType | #BORDER_ISOLATED.\n. \n. @param src Source image.\n. @param dst Destination image of the same type as src and the size Size(src.cols+left+right,\n. src.rows+top+bottom) .\n. @param top the top pixels\n. @param bottom the bottom pixels\n. @param left the left pixels\n. @param right Parameter specifying how many pixels in each direction from the source image rectangle\n. to extrapolate. For example, top=1, bottom=1, left=1, right=1 mean that 1 pixel-wide border needs\n. to be built.\n. @param borderType Border type. See borderInterpolate for details.\n. @param value Border value if borderType==BORDER_CONSTANT .\n. \n. @sa borderInterpolate' + ... + + +def copyTo(src: ndarray, mask: ndarray, dts: ndarray = ...) -> typing.Any: + 'copyTo(src, mask[, dst]) -> dst\n. @brief This is an overloaded member function, provided for convenience (python)\n. Copies the matrix to another one.\n. When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, the newly allocated matrix is initialized with all zeros before copying the data.\n. @param src source matrix.\n. @param dst Destination matrix. If it does not have a proper size or type before the operation, it is\n. reallocated.\n. @param mask Operation mask of the same size as \\*this. Its non-zero elements indicate which matrix\n. elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels.' + ... + + +def cornerEigenValsAndVecs(src: ndarray, blockSize, ksize, dts: ndarray = ..., borderType=...) -> typing.Any: + 'cornerEigenValsAndVecs(src, blockSize, ksize[, dst[, borderType]]) -> dst\n. @brief Calculates eigenvalues and eigenvectors of image blocks for corner detection.\n. \n. For every pixel \\f$p\\f$ , the function cornerEigenValsAndVecs considers a blockSize \\f$\\times\\f$ blockSize\n. neighborhood \\f$S(p)\\f$ . It calculates the covariation matrix of derivatives over the neighborhood as:\n. \n. \\f[M = \\begin{bmatrix} \\sum _{S(p)}(dI/dx)^2 & \\sum _{S(p)}dI/dx dI/dy \\\\ \\sum _{S(p)}dI/dx dI/dy & \\sum _{S(p)}(dI/dy)^2 \\end{bmatrix}\\f]\n. \n. where the derivatives are computed using the Sobel operator.\n. \n. After that, it finds eigenvectors and eigenvalues of \\f$M\\f$ and stores them in the destination image as\n. \\f$(\\lambda_1, \\lambda_2, x_1, y_1, x_2, y_2)\\f$ where\n. \n. - \\f$\\lambda_1, \\lambda_2\\f$ are the non-sorted eigenvalues of \\f$M\\f$\n. - \\f$x_1, y_1\\f$ are the eigenvectors corresponding to \\f$\\lambda_1\\f$\n. - \\f$x_2, y_2\\f$ are the eigenvectors corresponding to \\f$\\lambda_2\\f$\n. \n. The output of the function can be used for robust edge or corner detection.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the results. It has the same size as src and the type CV_32FC(6) .\n. @param blockSize Neighborhood size (see details below).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.\n. \n. @sa cornerMinEigenVal, cornerHarris, preCornerDetect' + ... + + +def cornerHarris(src: ndarray, blockSize, ksize, k, dts: ndarray = ..., borderType=...) -> typing.Any: + 'cornerHarris(src, blockSize, ksize, k[, dst[, borderType]]) -> dst\n. @brief Harris corner detector.\n. \n. The function runs the Harris corner detector on the image. Similarly to cornerMinEigenVal and\n. cornerEigenValsAndVecs , for each pixel \\f$(x, y)\\f$ it calculates a \\f$2\\times2\\f$ gradient covariance\n. matrix \\f$M^{(x,y)}\\f$ over a \\f$\\texttt{blockSize} \\times \\texttt{blockSize}\\f$ neighborhood. Then, it\n. computes the following characteristic:\n. \n. \\f[\\texttt{dst} (x,y) = \\mathrm{det} M^{(x,y)} - k \\cdot \\left ( \\mathrm{tr} M^{(x,y)} \\right )^2\\f]\n. \n. Corners in the image can be found as the local maxima of this response map.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the Harris detector responses. It has the type CV_32FC1 and the same\n. size as src .\n. @param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param k Harris detector free parameter. See the formula above.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' + ... + + +def cornerMinEigenVal(src: ndarray, blockSize, dts: ndarray = ..., ksize=..., borderType=...) -> typing.Any: + 'cornerMinEigenVal(src, blockSize[, dst[, ksize[, borderType]]]) -> dst\n. @brief Calculates the minimal eigenvalue of gradient matrices for corner detection.\n. \n. The function is similar to cornerEigenValsAndVecs but it calculates and stores only the minimal\n. eigenvalue of the covariance matrix of derivatives, that is, \\f$\\min(\\lambda_1, \\lambda_2)\\f$ in terms\n. of the formulae in the cornerEigenValsAndVecs description.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the minimal eigenvalues. It has the type CV_32FC1 and the same size as\n. src .\n. @param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' + ... + + +def cornerSubPix(image: ndarray, corners, winSize, zeroZone, criteria) -> typing.Any: + 'cornerSubPix(image, corners, winSize, zeroZone, criteria) -> corners\n. @brief Refines the corner locations.\n. \n. The function iterates to find the sub-pixel accurate location of corners or radial saddle points, as\n. shown on the figure below.\n. \n. ![image](pics/cornersubpix.png)\n. \n. Sub-pixel accurate corner locator is based on the observation that every vector from the center \\f$q\\f$\n. to a point \\f$p\\f$ located within a neighborhood of \\f$q\\f$ is orthogonal to the image gradient at \\f$p\\f$\n. subject to image and measurement noise. Consider the expression:\n. \n. \\f[\\epsilon _i = {DI_{p_i}}^T \\cdot (q - p_i)\\f]\n. \n. where \\f${DI_{p_i}}\\f$ is an image gradient at one of the points \\f$p_i\\f$ in a neighborhood of \\f$q\\f$ . The\n. value of \\f$q\\f$ is to be found so that \\f$\\epsilon_i\\f$ is minimized. A system of equations may be set up\n. with \\f$\\epsilon_i\\f$ set to zero:\n. \n. \\f[\\sum _i(DI_{p_i} \\cdot {DI_{p_i}}^T) \\cdot q - \\sum _i(DI_{p_i} \\cdot {DI_{p_i}}^T \\cdot p_i)\\f]\n. \n. where the gradients are summed within a neighborhood ("search window") of \\f$q\\f$ . Calling the first\n. gradient term \\f$G\\f$ and the second gradient term \\f$b\\f$ gives:\n. \n. \\f[q = G^{-1} \\cdot b\\f]\n. \n. The algorithm sets the center of the neighborhood window at this new center \\f$q\\f$ and then iterates\n. until the center stays within a set threshold.\n. \n. @param image Input single-channel, 8-bit or float image.\n. @param corners Initial coordinates of the input corners and refined coordinates provided for\n. output.\n. @param winSize Half of the side length of the search window. For example, if winSize=Size(5,5) ,\n. then a \\f$(5*2+1) \\times (5*2+1) = 11 \\times 11\\f$ search window is used.\n. @param zeroZone Half of the size of the dead region in the middle of the search zone over which\n. the summation in the formula below is not done. It is used sometimes to avoid possible\n. singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such\n. a size.\n. @param criteria Criteria for termination of the iterative process of corner refinement. That is,\n. the process of corner position refinement stops either after criteria.maxCount iterations or when\n. the corner position moves by less than criteria.epsilon on some iteration.' + ... + + +def correctMatches(F, points1, points2, newPoints1=..., newPoints2=...) -> typing.Any: + 'correctMatches(F, points1, points2[, newPoints1[, newPoints2]]) -> newPoints1, newPoints2\n. @brief Refines coordinates of corresponding points.\n. \n. @param F 3x3 fundamental matrix.\n. @param points1 1xN array containing the first set of points.\n. @param points2 1xN array containing the second set of points.\n. @param newPoints1 The optimized points1.\n. @param newPoints2 The optimized points2.\n. \n. The function implements the Optimal Triangulation Method (see Multiple View Geometry for details).\n. For each given point correspondence points1[i] \\<-\\> points2[i], and a fundamental matrix F, it\n. computes the corrected correspondences newPoints1[i] \\<-\\> newPoints2[i] that minimize the geometric\n. error \\f$d(points1[i], newPoints1[i])^2 + d(points2[i],newPoints2[i])^2\\f$ (where \\f$d(a,b)\\f$ is the\n. geometric distance between points \\f$a\\f$ and \\f$b\\f$ ) subject to the epipolar constraint\n. \\f$newPoints2^T * F * newPoints1 = 0\\f$ .' + ... + + +def countNonZero(src) -> typing.Any: + 'countNonZero(src) -> retval\n. @brief Counts non-zero array elements.\n. \n. The function returns the number of non-zero elements in src :\n. \\f[\\sum _{I: \\; \\texttt{src} (I) \\ne0 } 1\\f]\n. @param src single-channel array.\n. @sa mean, meanStdDev, norm, minMaxLoc, calcCovarMatrix' + ... + + +def createAlignMTB(max_bits=..., exclude_range=..., cut=...) -> typing.Any: + 'createAlignMTB([, max_bits[, exclude_range[, cut]]]) -> retval\n. @brief Creates AlignMTB object\n. \n. @param max_bits logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are\n. usually good enough (31 and 63 pixels shift respectively).\n. @param exclude_range range for exclusion bitmap that is constructed to suppress noise around the\n. median value.\n. @param cut if true cuts images, otherwise fills the new regions with zeros.' + ... + + +def createBackgroundSubtractorKNN(history=..., dist2Threshold=..., detectShadows=...) -> typing.Any: + 'createBackgroundSubtractorKNN([, history[, dist2Threshold[, detectShadows]]]) -> retval\n. @brief Creates KNN Background Subtractor\n. \n. @param history Length of the history.\n. @param dist2Threshold Threshold on the squared distance between the pixel and the sample to decide\n. whether a pixel is close to that sample. This parameter does not affect the background update.\n. @param detectShadows If true, the algorithm will detect shadows and mark them. It decreases the\n. speed a bit, so if you do not need this feature, set the parameter to false.' + ... + + +def createBackgroundSubtractorMOG2(history=..., varThreshold=..., detectShadows=...) -> typing.Any: + 'createBackgroundSubtractorMOG2([, history[, varThreshold[, detectShadows]]]) -> retval\n. @brief Creates MOG2 Background Subtractor\n. \n. @param history Length of the history.\n. @param varThreshold Threshold on the squared Mahalanobis distance between the pixel and the model\n. to decide whether a pixel is well described by the background model. This parameter does not\n. affect the background update.\n. @param detectShadows If true, the algorithm will detect shadows and mark them. It decreases the\n. speed a bit, so if you do not need this feature, set the parameter to false.' + ... + + +def createButton(buttonName, onChange, userData=..., buttonType=..., initialButtonState=...) -> typing.Any: + 'createButton(buttonName, onChange [, userData, buttonType, initialButtonState]) -> None' + ... + + +def createCLAHE(clipLimit=..., tileGridSize=...) -> typing.Any: + 'createCLAHE([, clipLimit[, tileGridSize]]) -> retval\n. @brief Creates a smart pointer to a cv::CLAHE class and initializes it.\n. \n. @param clipLimit Threshold for contrast limiting.\n. @param tileGridSize Size of grid for histogram equalization. Input image will be divided into\n. equally sized rectangular tiles. tileGridSize defines the number of tiles in row and column.' + ... + + +def createCalibrateDebevec(samples=..., lambda_=..., random=...) -> typing.Any: + 'createCalibrateDebevec([, samples[, lambda[, random]]]) -> retval\n. @brief Creates CalibrateDebevec object\n. \n. @param samples number of pixel locations to use\n. @param lambda smoothness term weight. Greater values produce smoother results, but can alter the\n. response.\n. @param random if true sample pixel locations are chosen at random, otherwise they form a\n. rectangular grid.' + ... + + +def createCalibrateRobertson(max_iter=..., threshold=...) -> typing.Any: + 'createCalibrateRobertson([, max_iter[, threshold]]) -> retval\n. @brief Creates CalibrateRobertson object\n. \n. @param max_iter maximal number of Gauss-Seidel solver iterations.\n. @param threshold target difference between results of two successive steps of the minimization.' + ... + + +def createGeneralizedHoughBallard() -> typing.Any: + 'createGeneralizedHoughBallard() -> retval\n. @brief Creates a smart pointer to a cv::GeneralizedHoughBallard class and initializes it.' + ... + + +def createGeneralizedHoughGuil() -> typing.Any: + 'createGeneralizedHoughGuil() -> retval\n. @brief Creates a smart pointer to a cv::GeneralizedHoughGuil class and initializes it.' + ... + + +def createHanningWindow(winSize, type, dts: ndarray = ...) -> typing.Any: + 'createHanningWindow(winSize, type[, dst]) -> dst\n. @brief This function computes a Hanning window coefficients in two dimensions.\n. \n. See (http://en.wikipedia.org/wiki/Hann_function) and (http://en.wikipedia.org/wiki/Window_function)\n. for more information.\n. \n. An example is shown below:\n. @code\n. // create hanning window of size 100x100 and type CV_32F\n. Mat hann;\n. createHanningWindow(hann, Size(100, 100), CV_32F);\n. @endcode\n. @param dst Destination array to place Hann coefficients in\n. @param winSize The window size specifications (both width and height must be > 1)\n. @param type Created array type' + ... + + +def createLineSegmentDetector(_refine=..., _scale=..., _sigma_scale=..., _quant=..., _ang_th=..., _log_eps=..., _density_th=..., _n_bins=...) -> typing.Any: + 'createLineSegmentDetector([, _refine[, _scale[, _sigma_scale[, _quant[, _ang_th[, _log_eps[, _density_th[, _n_bins]]]]]]]]) -> retval\n. @brief Creates a smart pointer to a LineSegmentDetector object and initializes it.\n. \n. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want\n. to edit those, as to tailor it for their own application.\n. \n. @param _refine The way found lines will be refined, see #LineSegmentDetectorModes\n. @param _scale The scale of the image that will be used to find the lines. Range (0..1].\n. @param _sigma_scale Sigma for Gaussian filter. It is computed as sigma = _sigma_scale/_scale.\n. @param _quant Bound to the quantization error on the gradient norm.\n. @param _ang_th Gradient angle tolerance in degrees.\n. @param _log_eps Detection threshold: -log10(NFA) \\> log_eps. Used only when advance refinement\n. is chosen.\n. @param _density_th Minimal density of aligned region points in the enclosing rectangle.\n. @param _n_bins Number of bins in pseudo-ordering of gradient modulus.\n. \n. @note Implementation has been removed due original code license conflict' + ... + + +def createMergeDebevec() -> typing.Any: + 'createMergeDebevec() -> retval\n. @brief Creates MergeDebevec object' + ... + + +def createMergeMertens(contrast_weight=..., saturation_weight=..., exposure_weight=...) -> typing.Any: + 'createMergeMertens([, contrast_weight[, saturation_weight[, exposure_weight]]]) -> retval\n. @brief Creates MergeMertens object\n. \n. @param contrast_weight contrast measure weight. See MergeMertens.\n. @param saturation_weight saturation measure weight\n. @param exposure_weight well-exposedness measure weight' + ... + + +def createMergeRobertson() -> typing.Any: + 'createMergeRobertson() -> retval\n. @brief Creates MergeRobertson object' + ... + + +def createTonemap(gamma=...) -> typing.Any: + 'createTonemap([, gamma]) -> retval\n. @brief Creates simple linear mapper with gamma correction\n. \n. @param gamma positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma\n. equal to 2.2f is suitable for most displays.\n. Generally gamma \\> 1 brightens the image and gamma \\< 1 darkens it.' + ... + + +def createTonemapDrago(gamma=..., saturation=..., bias=...) -> typing.Any: + 'createTonemapDrago([, gamma[, saturation[, bias]]]) -> retval\n. @brief Creates TonemapDrago object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param saturation positive saturation enhancement value. 1.0 preserves saturation, values greater\n. than 1 increase saturation and values less than 1 decrease it.\n. @param bias value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best\n. results, default value is 0.85.' + ... + + +def createTonemapMantiuk(gamma=..., scale=..., saturation=...) -> typing.Any: + 'createTonemapMantiuk([, gamma[, scale[, saturation]]]) -> retval\n. @brief Creates TonemapMantiuk object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param scale contrast scale factor. HVS response is multiplied by this parameter, thus compressing\n. dynamic range. Values from 0.6 to 0.9 produce best results.\n. @param saturation saturation enhancement value. See createTonemapDrago' + ... + + +def createTonemapReinhard(gamma=..., intensity=..., light_adapt=..., color_adapt=...) -> typing.Any: + "createTonemapReinhard([, gamma[, intensity[, light_adapt[, color_adapt]]]]) -> retval\n. @brief Creates TonemapReinhard object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param intensity result intensity in [-8, 8] range. Greater intensity produces brighter results.\n. @param light_adapt light adaptation in [0, 1] range. If 1 adaptation is based only on pixel\n. value, if 0 it's global, otherwise it's a weighted mean of this two cases.\n. @param color_adapt chromatic adaptation in [0, 1] range. If 1 channels are treated independently,\n. if 0 adaptation level is the same for each channel." + ... + + +def createTrackbar(trackbarName, windowName, value, count, onChange) -> typing.Any: + 'createTrackbar(trackbarName, windowName, value, count, onChange) -> None' + ... + + +def cubeRoot(val) -> typing.Any: + 'cubeRoot(val) -> retval\n. @brief Computes the cube root of an argument.\n. \n. The function cubeRoot computes \\f$\\sqrt[3]{\\texttt{val}}\\f$. Negative arguments are handled correctly.\n. NaN and Inf are not handled. The accuracy approaches the maximum possible accuracy for\n. single-precision data.\n. @param val A function argument.' + ... + + +cuda_BufferPool = _mod_cv2.cuda_BufferPool +cuda_DeviceInfo = _mod_cv2.cuda_DeviceInfo +cuda_Event = _mod_cv2.cuda_Event +cuda_GpuMat = _mod_cv2.cuda_GpuMat +cuda_GpuMat_Allocator = _mod_cv2.cuda_GpuMat_Allocator +cuda_HostMem = _mod_cv2.cuda_HostMem +cuda_Stream = _mod_cv2.cuda_Stream +cuda_TargetArchs = _mod_cv2.cuda_TargetArchs + + +def cvtColor(src: ndarray, code: int, dts: ndarray = ..., dstCn: int = ...) -> ndarray: + 'cvtColor(src, code[, dst[, dstCn]]) -> dst\n. @brief Converts an image from one color space to another.\n. \n. The function converts an input image from one color space to another. In case of a transformation\n. to-from RGB color space, the order of the channels should be specified explicitly (RGB or BGR). Note\n. that the default color format in OpenCV is often referred to as RGB but it is actually BGR (the\n. bytes are reversed). So the first byte in a standard (24-bit) color image will be an 8-bit Blue\n. component, the second byte will be Green, and the third byte will be Red. The fourth, fifth, and\n. sixth bytes would then be the second pixel (Blue, then Green, then Red), and so on.\n. \n. The conventional ranges for R, G, and B channel values are:\n. - 0 to 255 for CV_8U images\n. - 0 to 65535 for CV_16U images\n. - 0 to 1 for CV_32F images\n. \n. In case of linear transformations, the range does not matter. But in case of a non-linear\n. transformation, an input RGB image should be normalized to the proper value range to get the correct\n. results, for example, for RGB \\f$\\rightarrow\\f$ L\\*u\\*v\\* transformation. For example, if you have a\n. 32-bit floating-point image directly converted from an 8-bit image without any scaling, then it will\n. have the 0..255 value range instead of 0..1 assumed by the function. So, before calling #cvtColor ,\n. you need first to scale the image down:\n. @code\n. img *= 1./255;\n. cvtColor(img, img, COLOR_BGR2Luv);\n. @endcode\n. If you use #cvtColor with 8-bit images, the conversion will have some information lost. For many\n. applications, this will not be noticeable but it is recommended to use 32-bit images in applications\n. that need the full range of colors or that convert an image before an operation and then convert\n. back.\n. \n. If conversion adds the alpha channel, its value will set to the maximum of corresponding channel\n. range: 255 for CV_8U, 65535 for CV_16U, 1 for CV_32F.\n. \n. @param src input image: 8-bit unsigned, 16-bit unsigned ( CV_16UC... ), or single-precision\n. floating-point.\n. @param dst output image of the same size and depth as src.\n. @param code color space conversion code (see #ColorConversionCodes).\n. @param dstCn number of channels in the destination image; if the parameter is 0, the number of the\n. channels is derived automatically from src and code.\n. \n. @see @ref imgproc_color_conversions' + ... + + +def cvtColorTwoPlane(src1: ndarray, src2: ndarray, code: int, dts: ndarray = ...) -> typing.Any: + 'cvtColorTwoPlane(src1, src2, code[, dst]) -> dst\n. @brief Converts an image from one color space to another where the source image is\n. stored in two planes.\n. \n. This function only supports YUV420 to RGB conversion as of now.\n. \n. @param src1: 8-bit image (#CV_8U) of the Y plane.\n. @param src2: image containing interleaved U/V plane.\n. @param dst: output image.\n. @param code: Specifies the type of conversion. It can take any of the following values:\n. - #COLOR_YUV2BGR_NV12\n. - #COLOR_YUV2RGB_NV12\n. - #COLOR_YUV2BGRA_NV12\n. - #COLOR_YUV2RGBA_NV12\n. - #COLOR_YUV2BGR_NV21\n. - #COLOR_YUV2RGB_NV21\n. - #COLOR_YUV2BGRA_NV21\n. - #COLOR_YUV2RGBA_NV21' + ... + + +def dct(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'dct(src[, dst[, flags]]) -> dst\n. @brief Performs a forward or inverse discrete Cosine transform of 1D or 2D array.\n. \n. The function cv::dct performs a forward or inverse discrete Cosine transform (DCT) of a 1D or 2D\n. floating-point array:\n. - Forward Cosine transform of a 1D vector of N elements:\n. \\f[Y = C^{(N)} \\cdot X\\f]\n. where\n. \\f[C^{(N)}_{jk}= \\sqrt{\\alpha_j/N} \\cos \\left ( \\frac{\\pi(2k+1)j}{2N} \\right )\\f]\n. and\n. \\f$\\alpha_0=1\\f$, \\f$\\alpha_j=2\\f$ for *j \\> 0*.\n. - Inverse Cosine transform of a 1D vector of N elements:\n. \\f[X = \\left (C^{(N)} \\right )^{-1} \\cdot Y = \\left (C^{(N)} \\right )^T \\cdot Y\\f]\n. (since \\f$C^{(N)}\\f$ is an orthogonal matrix, \\f$C^{(N)} \\cdot \\left(C^{(N)}\\right)^T = I\\f$ )\n. - Forward 2D Cosine transform of M x N matrix:\n. \\f[Y = C^{(N)} \\cdot X \\cdot \\left (C^{(N)} \\right )^T\\f]\n. - Inverse 2D Cosine transform of M x N matrix:\n. \\f[X = \\left (C^{(N)} \\right )^T \\cdot X \\cdot C^{(N)}\\f]\n. \n. The function chooses the mode of operation by looking at the flags and size of the input array:\n. - If (flags & #DCT_INVERSE) == 0 , the function does a forward 1D or 2D transform. Otherwise, it\n. is an inverse 1D or 2D transform.\n. - If (flags & #DCT_ROWS) != 0 , the function performs a 1D transform of each row.\n. - If the array is a single column or a single row, the function performs a 1D transform.\n. - If none of the above is true, the function performs a 2D transform.\n. \n. @note Currently dct supports even-size arrays (2, 4, 6 ...). For data analysis and approximation, you\n. can pad the array when necessary.\n. Also, the function performance depends very much, and not monotonically, on the array size (see\n. getOptimalDFTSize ). In the current implementation DCT of a vector of size N is calculated via DFT\n. of a vector of size N/2 . Thus, the optimal DCT size N1 \\>= N can be calculated as:\n. @code\n. size_t getOptimalDCTSize(size_t N) { return 2*getOptimalDFTSize((N+1)/2); }\n. N1 = getOptimalDCTSize(N);\n. @endcode\n. @param src input floating-point array.\n. @param dst output array of the same size and type as src .\n. @param flags transformation flags as a combination of cv::DftFlags (DCT_*)\n. @sa dft , getOptimalDFTSize , idct' + ... + + +def decolor(src: ndarray, grayscale=..., color_boost=...) -> typing.Any: + 'decolor(src[, grayscale[, color_boost]]) -> grayscale, color_boost\n. @brief Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized\n. black-and-white photograph rendering, and in many single channel image processing applications\n. @cite CL12 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param grayscale Output 8-bit 1-channel image.\n. @param color_boost Output 8-bit 3-channel image.\n. \n. This function is to be applied on color images.' + ... + + +def decomposeEssentialMat(E, R1=..., R2=..., t=...) -> typing.Any: + "decomposeEssentialMat(E[, R1[, R2[, t]]]) -> R1, R2, t\n. @brief Decompose an essential matrix to possible rotations and translation.\n. \n. @param E The input essential matrix.\n. @param R1 One possible rotation matrix.\n. @param R2 Another possible rotation matrix.\n. @param t One possible translation.\n. \n. This function decomposes the essential matrix E using svd decomposition @cite HartleyZ00. In\n. general, four possible poses exist for the decomposition of E. They are \\f$[R_1, t]\\f$,\n. \\f$[R_1, -t]\\f$, \\f$[R_2, t]\\f$, \\f$[R_2, -t]\\f$.\n. \n. If E gives the epipolar constraint \\f$[p_2; 1]^T A^{-T} E A^{-1} [p_1; 1] = 0\\f$ between the image\n. points \\f$p_1\\f$ in the first image and \\f$p_2\\f$ in second image, then any of the tuples\n. \\f$[R_1, t]\\f$, \\f$[R_1, -t]\\f$, \\f$[R_2, t]\\f$, \\f$[R_2, -t]\\f$ is a change of basis from the first\n. camera's coordinate system to the second camera's coordinate system. However, by decomposing E, one\n. can only get the direction of the translation. For this reason, the translation t is returned with\n. unit length." + ... + + +def decomposeHomographyMat(H, K, rotations=..., translations=..., normals=...) -> typing.Any: + "decomposeHomographyMat(H, K[, rotations[, translations[, normals]]]) -> retval, rotations, translations, normals\n. @brief Decompose a homography matrix to rotation(s), translation(s) and plane normal(s).\n. \n. @param H The input homography matrix between two images.\n. @param K The input intrinsic camera calibration matrix.\n. @param rotations Array of rotation matrices.\n. @param translations Array of translation matrices.\n. @param normals Array of plane normal matrices.\n. \n. This function extracts relative camera motion between two views of a planar object and returns up to\n. four mathematical solution tuples of rotation, translation, and plane normal. The decomposition of\n. the homography matrix H is described in detail in @cite Malis.\n. \n. If the homography H, induced by the plane, gives the constraint\n. \\f[s_i \\vecthree{x'_i}{y'_i}{1} \\sim H \\vecthree{x_i}{y_i}{1}\\f] on the source image points\n. \\f$p_i\\f$ and the destination image points \\f$p'_i\\f$, then the tuple of rotations[k] and\n. translations[k] is a change of basis from the source camera's coordinate system to the destination\n. camera's coordinate system. However, by decomposing H, one can only get the translation normalized\n. by the (typically unknown) depth of the scene, i.e. its direction but with normalized length.\n. \n. If point correspondences are available, at least two solutions may further be invalidated, by\n. applying positive depth constraint, i.e. all points must be in front of the camera." + ... + + +def decomposeProjectionMatrix(projMatrix, cameraMatrix=..., rotMatrix=..., transVect=..., rotMatrixX=..., rotMatrixY=..., rotMatrixZ=..., eulerAngles=...) -> typing.Any: + 'decomposeProjectionMatrix(projMatrix[, cameraMatrix[, rotMatrix[, transVect[, rotMatrixX[, rotMatrixY[, rotMatrixZ[, eulerAngles]]]]]]]) -> cameraMatrix, rotMatrix, transVect, rotMatrixX, rotMatrixY, rotMatrixZ, eulerAngles\n. @brief Decomposes a projection matrix into a rotation matrix and a camera matrix.\n. \n. @param projMatrix 3x4 input projection matrix P.\n. @param cameraMatrix Output 3x3 camera matrix K.\n. @param rotMatrix Output 3x3 external rotation matrix R.\n. @param transVect Output 4x1 translation vector T.\n. @param rotMatrixX Optional 3x3 rotation matrix around x-axis.\n. @param rotMatrixY Optional 3x3 rotation matrix around y-axis.\n. @param rotMatrixZ Optional 3x3 rotation matrix around z-axis.\n. @param eulerAngles Optional three-element vector containing three Euler angles of rotation in\n. degrees.\n. \n. The function computes a decomposition of a projection matrix into a calibration and a rotation\n. matrix and the position of a camera.\n. \n. It optionally returns three rotation matrices, one for each axis, and three Euler angles that could\n. be used in OpenGL. Note, there is always more than one sequence of rotations about the three\n. principal axes that results in the same orientation of an object, e.g. see @cite Slabaugh . Returned\n. tree rotation matrices and corresponding three Euler angles are only one of the possible solutions.\n. \n. The function is based on RQDecomp3x3 .' + ... + + +def demosaicing(src: ndarray, code: int, dts: ndarray = ..., dstCn: int = ...) -> typing.Any: + 'demosaicing(src, code[, dst[, dstCn]]) -> dst\n. @brief main function for all demosaicing processes\n. \n. @param src input image: 8-bit unsigned or 16-bit unsigned.\n. @param dst output image of the same size and depth as src.\n. @param code Color space conversion code (see the description below).\n. @param dstCn number of channels in the destination image; if the parameter is 0, the number of the\n. channels is derived automatically from src and code.\n. \n. The function can do the following transformations:\n. \n. - Demosaicing using bilinear interpolation\n. \n. #COLOR_BayerBG2BGR , #COLOR_BayerGB2BGR , #COLOR_BayerRG2BGR , #COLOR_BayerGR2BGR\n. \n. #COLOR_BayerBG2GRAY , #COLOR_BayerGB2GRAY , #COLOR_BayerRG2GRAY , #COLOR_BayerGR2GRAY\n. \n. - Demosaicing using Variable Number of Gradients.\n. \n. #COLOR_BayerBG2BGR_VNG , #COLOR_BayerGB2BGR_VNG , #COLOR_BayerRG2BGR_VNG , #COLOR_BayerGR2BGR_VNG\n. \n. - Edge-Aware Demosaicing.\n. \n. #COLOR_BayerBG2BGR_EA , #COLOR_BayerGB2BGR_EA , #COLOR_BayerRG2BGR_EA , #COLOR_BayerGR2BGR_EA\n. \n. - Demosaicing with alpha channel\n. \n. #COLOR_BayerBG2BGRA , #COLOR_BayerGB2BGRA , #COLOR_BayerRG2BGRA , #COLOR_BayerGR2BGRA\n. \n. @sa cvtColor' + ... + + +def denoise_TVL1(observations, result, lambda_=..., niters=...) -> typing.Any: + "denoise_TVL1(observations, result[, lambda[, niters]]) -> None\n. @brief Primal-dual algorithm is an algorithm for solving special types of variational problems (that is,\n. finding a function to minimize some functional). As the image denoising, in particular, may be seen\n. as the variational problem, primal-dual algorithm then can be used to perform denoising and this is\n. exactly what is implemented.\n. \n. It should be noted, that this implementation was taken from the July 2013 blog entry\n. @cite MA13 , which also contained (slightly more general) ready-to-use source code on Python.\n. Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end\n. of July 2013 and finally it was slightly adapted by later authors.\n. \n. Although the thorough discussion and justification of the algorithm involved may be found in\n. @cite ChambolleEtAl, it might make sense to skim over it here, following @cite MA13 . To begin\n. with, we consider the 1-byte gray-level images as the functions from the rectangular domain of\n. pixels (it may be seen as set\n. \\f$\\left\\{(x,y)\\in\\mathbb{N}\\times\\mathbb{N}\\mid 1\\leq x\\leq n,\\;1\\leq y\\leq m\\right\\}\\f$ for some\n. \\f$m,\\;n\\in\\mathbb{N}\\f$) into \\f$\\{0,1,\\dots,255\\}\\f$. We shall denote the noised images as \\f$f_i\\f$ and with\n. this view, given some image \\f$x\\f$ of the same size, we may measure how bad it is by the formula\n. \n. \\f[\\left\\|\\left\\|\\nabla x\\right\\|\\right\\| + \\lambda\\sum_i\\left\\|\\left\\|x-f_i\\right\\|\\right\\|\\f]\n. \n. \\f$\\|\\|\\cdot\\|\\|\\f$ here denotes \\f$L_2\\f$-norm and as you see, the first addend states that we want our\n. image to be smooth (ideally, having zero gradient, thus being constant) and the second states that\n. we want our result to be close to the observations we've got. If we treat \\f$x\\f$ as a function, this is\n. exactly the functional what we seek to minimize and here the Primal-Dual algorithm comes into play.\n. \n. @param observations This array should contain one or more noised versions of the image that is to\n. be restored.\n. @param result Here the denoised image will be stored. There is no need to do pre-allocation of\n. storage space, as it will be automatically allocated, if necessary.\n. @param lambda Corresponds to \\f$\\lambda\\f$ in the formulas above. As it is enlarged, the smooth\n. (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly\n. speaking, as it becomes smaller, the result will be more blur but more sever outliers will be\n. removed.\n. @param niters Number of iterations that the algorithm will run. Of course, as more iterations as\n. better, but it is hard to quantitatively refine this statement, so just use the default and\n. increase it if the results are poor." + ... + + +def destroyAllWindows() -> typing.Any: + 'destroyAllWindows() -> None\n. @brief Destroys all of the HighGUI windows.\n. \n. The function destroyAllWindows destroys all of the opened HighGUI windows.' + ... + + +def destroyWindow(winname) -> typing.Any: + 'destroyWindow(winname) -> None\n. @brief Destroys the specified window.\n. \n. The function destroyWindow destroys the window with the given name.\n. \n. @param winname Name of the window to be destroyed.' + ... + + +def detailEnhance(src: ndarray, dts: ndarray = ..., sigma_s=..., sigma_r=...) -> typing.Any: + 'detailEnhance(src[, dst[, sigma_s[, sigma_r]]]) -> dst\n. @brief This filter enhances the details of a particular image.\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' + ... + + +detail_AffineBasedEstimator = _mod_cv2.detail_AffineBasedEstimator +detail_AffineBestOf2NearestMatcher = _mod_cv2.detail_AffineBestOf2NearestMatcher +detail_BestOf2NearestMatcher = _mod_cv2.detail_BestOf2NearestMatcher +detail_BestOf2NearestRangeMatcher = _mod_cv2.detail_BestOf2NearestRangeMatcher +detail_Blender = _mod_cv2.detail_Blender +detail_BlocksChannelsCompensator = _mod_cv2.detail_BlocksChannelsCompensator +detail_BlocksCompensator = _mod_cv2.detail_BlocksCompensator +detail_BlocksGainCompensator = _mod_cv2.detail_BlocksGainCompensator +detail_BundleAdjusterAffine = _mod_cv2.detail_BundleAdjusterAffine +detail_BundleAdjusterAffinePartial = _mod_cv2.detail_BundleAdjusterAffinePartial +detail_BundleAdjusterBase = _mod_cv2.detail_BundleAdjusterBase +detail_BundleAdjusterRay = _mod_cv2.detail_BundleAdjusterRay +detail_BundleAdjusterReproj = _mod_cv2.detail_BundleAdjusterReproj +detail_CameraParams = _mod_cv2.detail_CameraParams +detail_ChannelsCompensator = _mod_cv2.detail_ChannelsCompensator +detail_DpSeamFinder = _mod_cv2.detail_DpSeamFinder +detail_Estimator = _mod_cv2.detail_Estimator +detail_ExposureCompensator = _mod_cv2.detail_ExposureCompensator +detail_FeatherBlender = _mod_cv2.detail_FeatherBlender +detail_FeaturesMatcher = _mod_cv2.detail_FeaturesMatcher +detail_GainCompensator = _mod_cv2.detail_GainCompensator +detail_GraphCutSeamFinder = _mod_cv2.detail_GraphCutSeamFinder +detail_HomographyBasedEstimator = _mod_cv2.detail_HomographyBasedEstimator +detail_ImageFeatures = _mod_cv2.detail_ImageFeatures +detail_MatchesInfo = _mod_cv2.detail_MatchesInfo +detail_MultiBandBlender = _mod_cv2.detail_MultiBandBlender +detail_NoBundleAdjuster = _mod_cv2.detail_NoBundleAdjuster +detail_NoExposureCompensator = _mod_cv2.detail_NoExposureCompensator +detail_NoSeamFinder = _mod_cv2.detail_NoSeamFinder +detail_PairwiseSeamFinder = _mod_cv2.detail_PairwiseSeamFinder +detail_ProjectorBase = _mod_cv2.detail_ProjectorBase +detail_SeamFinder = _mod_cv2.detail_SeamFinder +detail_SphericalProjector = _mod_cv2.detail_SphericalProjector +detail_Timelapser = _mod_cv2.detail_Timelapser +detail_TimelapserCrop = _mod_cv2.detail_TimelapserCrop +detail_VoronoiSeamFinder = _mod_cv2.detail_VoronoiSeamFinder + + +def determinant(mtx) -> typing.Any: + 'determinant(mtx) -> retval\n. @brief Returns the determinant of a square floating-point matrix.\n. \n. The function cv::determinant calculates and returns the determinant of the\n. specified matrix. For small matrices ( mtx.cols=mtx.rows\\<=3 ), the\n. direct method is used. For larger matrices, the function uses LU\n. factorization with partial pivoting.\n. \n. For symmetric positively-determined matrices, it is also possible to use\n. eigen decomposition to calculate the determinant.\n. @param mtx input matrix that must have CV_32FC1 or CV_64FC1 type and\n. square size.\n. @sa trace, invert, solve, eigen, @ref MatrixExpressions' + ... + + +def dft(src: ndarray, dts: ndarray = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: + 'dft(src[, dst[, flags[, nonzeroRows]]]) -> dst\n. @brief Performs a forward or inverse Discrete Fourier transform of a 1D or 2D floating-point array.\n. \n. The function cv::dft performs one of the following:\n. - Forward the Fourier transform of a 1D vector of N elements:\n. \\f[Y = F^{(N)} \\cdot X,\\f]\n. where \\f$F^{(N)}_{jk}=\\exp(-2\\pi i j k/N)\\f$ and \\f$i=\\sqrt{-1}\\f$\n. - Inverse the Fourier transform of a 1D vector of N elements:\n. \\f[\\begin{array}{l} X\'= \\left (F^{(N)} \\right )^{-1} \\cdot Y = \\left (F^{(N)} \\right )^* \\cdot y \\\\ X = (1/N) \\cdot X, \\end{array}\\f]\n. where \\f$F^*=\\left(\\textrm{Re}(F^{(N)})-\\textrm{Im}(F^{(N)})\\right)^T\\f$\n. - Forward the 2D Fourier transform of a M x N matrix:\n. \\f[Y = F^{(M)} \\cdot X \\cdot F^{(N)}\\f]\n. - Inverse the 2D Fourier transform of a M x N matrix:\n. \\f[\\begin{array}{l} X\'= \\left (F^{(M)} \\right )^* \\cdot Y \\cdot \\left (F^{(N)} \\right )^* \\\\ X = \\frac{1}{M \\cdot N} \\cdot X\' \\end{array}\\f]\n. \n. In case of real (single-channel) data, the output spectrum of the forward Fourier transform or input\n. spectrum of the inverse Fourier transform can be represented in a packed format called *CCS*\n. (complex-conjugate-symmetrical). It was borrowed from IPL (Intel\\* Image Processing Library). Here\n. is how 2D *CCS* spectrum looks:\n. \\f[\\begin{bmatrix} Re Y_{0,0} & Re Y_{0,1} & Im Y_{0,1} & Re Y_{0,2} & Im Y_{0,2} & \\cdots & Re Y_{0,N/2-1} & Im Y_{0,N/2-1} & Re Y_{0,N/2} \\\\ Re Y_{1,0} & Re Y_{1,1} & Im Y_{1,1} & Re Y_{1,2} & Im Y_{1,2} & \\cdots & Re Y_{1,N/2-1} & Im Y_{1,N/2-1} & Re Y_{1,N/2} \\\\ Im Y_{1,0} & Re Y_{2,1} & Im Y_{2,1} & Re Y_{2,2} & Im Y_{2,2} & \\cdots & Re Y_{2,N/2-1} & Im Y_{2,N/2-1} & Im Y_{1,N/2} \\\\ \\hdotsfor{9} \\\\ Re Y_{M/2-1,0} & Re Y_{M-3,1} & Im Y_{M-3,1} & \\hdotsfor{3} & Re Y_{M-3,N/2-1} & Im Y_{M-3,N/2-1}& Re Y_{M/2-1,N/2} \\\\ Im Y_{M/2-1,0} & Re Y_{M-2,1} & Im Y_{M-2,1} & \\hdotsfor{3} & Re Y_{M-2,N/2-1} & Im Y_{M-2,N/2-1}& Im Y_{M/2-1,N/2} \\\\ Re Y_{M/2,0} & Re Y_{M-1,1} & Im Y_{M-1,1} & \\hdotsfor{3} & Re Y_{M-1,N/2-1} & Im Y_{M-1,N/2-1}& Re Y_{M/2,N/2} \\end{bmatrix}\\f]\n. \n. In case of 1D transform of a real vector, the output looks like the first row of the matrix above.\n. \n. So, the function chooses an operation mode depending on the flags and size of the input array:\n. - If #DFT_ROWS is set or the input array has a single row or single column, the function\n. performs a 1D forward or inverse transform of each row of a matrix when #DFT_ROWS is set.\n. Otherwise, it performs a 2D transform.\n. - If the input array is real and #DFT_INVERSE is not set, the function performs a forward 1D or\n. 2D transform:\n. - When #DFT_COMPLEX_OUTPUT is set, the output is a complex matrix of the same size as\n. input.\n. - When #DFT_COMPLEX_OUTPUT is not set, the output is a real matrix of the same size as\n. input. In case of 2D transform, it uses the packed format as shown above. In case of a\n. single 1D transform, it looks like the first row of the matrix above. In case of\n. multiple 1D transforms (when using the #DFT_ROWS flag), each row of the output matrix\n. looks like the first row of the matrix above.\n. - If the input array is complex and either #DFT_INVERSE or #DFT_REAL_OUTPUT are not set, the\n. output is a complex array of the same size as input. The function performs a forward or\n. inverse 1D or 2D transform of the whole input array or each row of the input array\n. independently, depending on the flags DFT_INVERSE and DFT_ROWS.\n. - When #DFT_INVERSE is set and the input array is real, or it is complex but #DFT_REAL_OUTPUT\n. is set, the output is a real array of the same size as input. The function performs a 1D or 2D\n. inverse transformation of the whole input array or each individual row, depending on the flags\n. #DFT_INVERSE and #DFT_ROWS.\n. \n. If #DFT_SCALE is set, the scaling is done after the transformation.\n. \n. Unlike dct , the function supports arrays of arbitrary size. But only those arrays are processed\n. efficiently, whose sizes can be factorized in a product of small prime numbers (2, 3, and 5 in the\n. current implementation). Such an efficient DFT size can be calculated using the getOptimalDFTSize\n. method.\n. \n. The sample below illustrates how to calculate a DFT-based convolution of two 2D real arrays:\n. @code\n. void convolveDFT(InputArray A, InputArray B, OutputArray C)\n. {\n. // reallocate the output array if needed\n. C.create(abs(A.rows - B.rows)+1, abs(A.cols - B.cols)+1, A.type());\n. Size dftSize;\n. // calculate the size of DFT transform\n. dftSize.width = getOptimalDFTSize(A.cols + B.cols - 1);\n. dftSize.height = getOptimalDFTSize(A.rows + B.rows - 1);\n. \n. // allocate temporary buffers and initialize them with 0\'s\n. Mat tempA(dftSize, A.type(), Scalar::all(0));\n. Mat tempB(dftSize, B.type(), Scalar::all(0));\n. \n. // copy A and B to the top-left corners of tempA and tempB, respectively\n. Mat roiA(tempA, Rect(0,0,A.cols,A.rows));\n. A.copyTo(roiA);\n. Mat roiB(tempB, Rect(0,0,B.cols,B.rows));\n. B.copyTo(roiB);\n. \n. // now transform the padded A & B in-place;\n. // use "nonzeroRows" hint for faster processing\n. dft(tempA, tempA, 0, A.rows);\n. dft(tempB, tempB, 0, B.rows);\n. \n. // multiply the spectrums;\n. // the function handles packed spectrum representations well\n. mulSpectrums(tempA, tempB, tempA);\n. \n. // transform the product back from the frequency domain.\n. // Even though all the result rows will be non-zero,\n. // you need only the first C.rows of them, and thus you\n. // pass nonzeroRows == C.rows\n. dft(tempA, tempA, DFT_INVERSE + DFT_SCALE, C.rows);\n. \n. // now copy the result back to C.\n. tempA(Rect(0, 0, C.cols, C.rows)).copyTo(C);\n. \n. // all the temporary buffers will be deallocated automatically\n. }\n. @endcode\n. To optimize this sample, consider the following approaches:\n. - Since nonzeroRows != 0 is passed to the forward transform calls and since A and B are copied to\n. the top-left corners of tempA and tempB, respectively, it is not necessary to clear the whole\n. tempA and tempB. It is only necessary to clear the tempA.cols - A.cols ( tempB.cols - B.cols)\n. rightmost columns of the matrices.\n. - This DFT-based convolution does not have to be applied to the whole big arrays, especially if B\n. is significantly smaller than A or vice versa. Instead, you can calculate convolution by parts.\n. To do this, you need to split the output array C into multiple tiles. For each tile, estimate\n. which parts of A and B are required to calculate convolution in this tile. If the tiles in C are\n. too small, the speed will decrease a lot because of repeated work. In the ultimate case, when\n. each tile in C is a single pixel, the algorithm becomes equivalent to the naive convolution\n. algorithm. If the tiles are too big, the temporary arrays tempA and tempB become too big and\n. there is also a slowdown because of bad cache locality. So, there is an optimal tile size\n. somewhere in the middle.\n. - If different tiles in C can be calculated in parallel and, thus, the convolution is done by\n. parts, the loop can be threaded.\n. \n. All of the above improvements have been implemented in #matchTemplate and #filter2D . Therefore, by\n. using them, you can get the performance even better than with the above theoretically optimal\n. implementation. Though, those two functions actually calculate cross-correlation, not convolution,\n. so you need to "flip" the second convolution operand B vertically and horizontally using flip .\n. @note\n. - An example using the discrete fourier transform can be found at\n. opencv_source_code/samples/cpp/dft.cpp\n. - (Python) An example using the dft functionality to perform Wiener deconvolution can be found\n. at opencv_source/samples/python/deconvolution.py\n. - (Python) An example rearranging the quadrants of a Fourier image can be found at\n. opencv_source/samples/python/dft.py\n. @param src input array that could be real or complex.\n. @param dst output array whose size and type depends on the flags .\n. @param flags transformation flags, representing a combination of the #DftFlags\n. @param nonzeroRows when the parameter is not zero, the function assumes that only the first\n. nonzeroRows rows of the input array (#DFT_INVERSE is not set) or only the first nonzeroRows of the\n. output array (#DFT_INVERSE is set) contain non-zeros, thus, the function can handle the rest of the\n. rows more efficiently and save some time; this technique is very useful for calculating array\n. cross-correlation or convolution using DFT.\n. @sa dct , getOptimalDFTSize , mulSpectrums, filter2D , matchTemplate , flip , cartToPolar ,\n. magnitude , phase' + ... + + +def dilate(src: ndarray, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: + "dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Dilates an image by using a specific structuring element.\n. \n. The function dilates the source image using the specified structuring element that determines the\n. shape of a pixel neighborhood over which the maximum is taken:\n. \\f[\\texttt{dst} (x,y) = \\max _{(x',y'): \\, \\texttt{element} (x',y') \\ne0 } \\texttt{src} (x+x',y+y')\\f]\n. \n. The function supports the in-place mode. Dilation can be applied several ( iterations ) times. In\n. case of multi-channel images, each channel is processed independently.\n. \n. @param src input image; the number of channels can be arbitrary, but the depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param kernel structuring element used for dilation; if elemenat=Mat(), a 3 x 3 rectangular\n. structuring element is used. Kernel can be created using #getStructuringElement\n. @param anchor position of the anchor within the element; default value (-1, -1) means that the\n. anchor is at the element center.\n. @param iterations number of times dilation is applied.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not suported.\n. @param borderValue border value in case of a constant border\n. @sa erode, morphologyEx, getStructuringElement" + ... + + +def displayOverlay(winname, text, delayms=...) -> typing.Any: + 'displayOverlay(winname, text[, delayms]) -> None\n. @brief Displays a text on a window image as an overlay for a specified duration.\n. \n. The function displayOverlay displays useful information/tips on top of the window for a certain\n. amount of time *delayms*. The function does not modify the image, displayed in the window, that is,\n. after the specified delay the original content of the window is restored.\n. \n. @param winname Name of the window.\n. @param text Overlay text to write on a window image.\n. @param delayms The period (in milliseconds), during which the overlay text is displayed. If this\n. function is called before the previous overlay text timed out, the timer is restarted and the text\n. is updated. If this value is zero, the text never disappears.' + ... + + +def displayStatusBar(winname, text, delayms=...) -> typing.Any: + 'displayStatusBar(winname, text[, delayms]) -> None\n. @brief Displays a text on the window statusbar during the specified period of time.\n. \n. The function displayStatusBar displays useful information/tips on top of the window for a certain\n. amount of time *delayms* . This information is displayed on the window statusbar (the window must be\n. created with the CV_GUI_EXPANDED flags).\n. \n. @param winname Name of the window.\n. @param text Text to write on the window statusbar.\n. @param delayms Duration (in milliseconds) to display the text. If this function is called before\n. the previous text timed out, the timer is restarted and the text is updated. If this value is\n. zero, the text never disappears.' + ... + + +def distanceTransform(src: ndarray, distanceType, maskSize, dts: ndarray = ..., dstType=...) -> typing.Any: + 'distanceTransform(src, distanceType, maskSize[, dst[, dstType]]) -> dst\n. @overload\n. @param src 8-bit, single-channel (binary) source image.\n. @param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point,\n. single-channel image of the same size as src .\n. @param distanceType Type of distance, see #DistanceTypes\n. @param maskSize Size of the distance transform mask, see #DistanceTransformMasks. In case of the\n. #DIST_L1 or #DIST_C distance type, the parameter is forced to 3 because a \\f$3\\times 3\\f$ mask gives\n. the same result as \\f$5\\times 5\\f$ or any larger aperture.\n. @param dstType Type of output image. It can be CV_8U or CV_32F. Type CV_8U can be used only for\n. the first variant of the function and distanceType == #DIST_L1.' + ... + + +def distanceTransformWithLabels(src: ndarray, distanceType, maskSize, dts: ndarray = ..., labels=..., labelType=...) -> typing.Any: + "distanceTransformWithLabels(src, distanceType, maskSize[, dst[, labels[, labelType]]]) -> dst, labels\n. @brief Calculates the distance to the closest zero pixel for each pixel of the source image.\n. \n. The function cv::distanceTransform calculates the approximate or precise distance from every binary\n. image pixel to the nearest zero pixel. For zero image pixels, the distance will obviously be zero.\n. \n. When maskSize == #DIST_MASK_PRECISE and distanceType == #DIST_L2 , the function runs the\n. algorithm described in @cite Felzenszwalb04 . This algorithm is parallelized with the TBB library.\n. \n. In other cases, the algorithm @cite Borgefors86 is used. This means that for a pixel the function\n. finds the shortest path to the nearest zero pixel consisting of basic shifts: horizontal, vertical,\n. diagonal, or knight's move (the latest is available for a \\f$5\\times 5\\f$ mask). The overall\n. distance is calculated as a sum of these basic distances. Since the distance function should be\n. symmetric, all of the horizontal and vertical shifts must have the same cost (denoted as a ), all\n. the diagonal shifts must have the same cost (denoted as `b`), and all knight's moves must have the\n. same cost (denoted as `c`). For the #DIST_C and #DIST_L1 types, the distance is calculated\n. precisely, whereas for #DIST_L2 (Euclidean distance) the distance can be calculated only with a\n. relative error (a \\f$5\\times 5\\f$ mask gives more accurate results). For `a`,`b`, and `c`, OpenCV\n. uses the values suggested in the original paper:\n. - DIST_L1: `a = 1, b = 2`\n. - DIST_L2:\n. - `3 x 3`: `a=0.955, b=1.3693`\n. - `5 x 5`: `a=1, b=1.4, c=2.1969`\n. - DIST_C: `a = 1, b = 1`\n. \n. Typically, for a fast, coarse distance estimation #DIST_L2, a \\f$3\\times 3\\f$ mask is used. For a\n. more accurate distance estimation #DIST_L2, a \\f$5\\times 5\\f$ mask or the precise algorithm is used.\n. Note that both the precise and the approximate algorithms are linear on the number of pixels.\n. \n. This variant of the function does not only compute the minimum distance for each pixel \\f$(x, y)\\f$\n. but also identifies the nearest connected component consisting of zero pixels\n. (labelType==#DIST_LABEL_CCOMP) or the nearest zero pixel (labelType==#DIST_LABEL_PIXEL). Index of the\n. component/pixel is stored in `labels(x, y)`. When labelType==#DIST_LABEL_CCOMP, the function\n. automatically finds connected components of zero pixels in the input image and marks them with\n. distinct labels. When labelType==#DIST_LABEL_CCOMP, the function scans through the input image and\n. marks all the zero pixels with distinct labels.\n. \n. In this mode, the complexity is still linear. That is, the function provides a very fast way to\n. compute the Voronoi diagram for a binary image. Currently, the second variant can use only the\n. approximate distance transform algorithm, i.e. maskSize=#DIST_MASK_PRECISE is not supported\n. yet.\n. \n. @param src 8-bit, single-channel (binary) source image.\n. @param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point,\n. single-channel image of the same size as src.\n. @param labels Output 2D array of labels (the discrete Voronoi diagram). It has the type\n. CV_32SC1 and the same size as src.\n. @param distanceType Type of distance, see #DistanceTypes\n. @param maskSize Size of the distance transform mask, see #DistanceTransformMasks.\n. #DIST_MASK_PRECISE is not supported by this variant. In case of the #DIST_L1 or #DIST_C distance type,\n. the parameter is forced to 3 because a \\f$3\\times 3\\f$ mask gives the same result as \\f$5\\times\n. 5\\f$ or any larger aperture.\n. @param labelType Type of the label array to build, see #DistanceTransformLabelTypes." + ... + + +def divide(src1: ndarray, src2: ndarray, dts: ndarray = ..., scale=..., dtype=...) -> typing.Any: + 'divide(src1, src2[, dst[, scale[, dtype]]]) -> dst\n. @brief Performs per-element division of two arrays or a scalar by an array.\n. \n. The function cv::divide divides one array by another:\n. \\f[\\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\\f]\n. or a scalar by an array when there is no src1 :\n. \\f[\\texttt{dst(I) = saturate(scale/src2(I))}\\f]\n. \n. Different channels of multi-channel arrays are processed independently.\n. \n. For integer types when src2(I) is zero, dst(I) will also be zero.\n. \n. @note In case of floating point data there is no special defined behavior for zero src2(I) values.\n. Regular floating-point division is used.\n. Expect correct IEEE-754 behaviour for floating-point data (with NaN, Inf result values).\n. \n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1.\n. @param scale scalar factor.\n. @param dst output array of the same size and type as src2.\n. @param dtype optional depth of the output array; if -1, dst will have depth src2.depth(), but in\n. case of an array-by-array division, you can only pass -1 when src1.depth()==src2.depth().\n. @sa multiply, add, subtract\n\n\n\ndivide(scale, src2[, dst[, dtype]]) -> dst\n. @overload' + ... + + +dnn_ClassificationModel = _mod_cv2.dnn_ClassificationModel +dnn_DetectionModel = _mod_cv2.dnn_DetectionModel +dnn_DictValue = _mod_cv2.dnn_DictValue +dnn_KeypointsModel = _mod_cv2.dnn_KeypointsModel +dnn_Layer = _mod_cv2.dnn_Layer +dnn_Model = _mod_cv2.dnn_Model +dnn_Net = _mod_cv2.dnn_Net +dnn_SegmentationModel = _mod_cv2.dnn_SegmentationModel + + +def dnn_registerLayer() -> typing.Any: + 'registerLayer(type, class) -> None' + ... + + +def dnn_unregisterLayer() -> typing.Any: + 'unregisterLayer(type) -> None' + ... + + +def drawChessboardCorners(image: ndarray, patternSize, corners, patternWasFound) -> typing.Any: + 'drawChessboardCorners(image, patternSize, corners, patternWasFound) -> image\n. @brief Renders the detected chessboard corners.\n. \n. @param image Destination image. It must be an 8-bit color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. (patternSize = cv::Size(points_per_row,points_per_column)).\n. @param corners Array of detected corners, the output of findChessboardCorners.\n. @param patternWasFound Parameter indicating whether the complete board was found or not. The\n. return value of findChessboardCorners should be passed here.\n. \n. The function draws individual chessboard corners detected either as red circles if the board was not\n. found, or as colored corners connected with lines if the board was found.' + ... + + +def drawContours(image: ndarray, contours, contourIdx, color, thickness=..., lineType=..., hierarchy=..., maxLevel=..., offset=...) -> typing.Any: + 'drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> image\n. @brief Draws contours outlines or filled contours.\n. \n. The function draws contour outlines in the image if \\f$\\texttt{thickness} \\ge 0\\f$ or fills the area\n. bounded by the contours if \\f$\\texttt{thickness}<0\\f$ . The example below shows how to retrieve\n. connected components from the binary image and label them: :\n. @include snippets/imgproc_drawContours.cpp\n. \n. @param image Destination image.\n. @param contours All the input contours. Each contour is stored as a point vector.\n. @param contourIdx Parameter indicating a contour to draw. If it is negative, all the contours are drawn.\n. @param color Color of the contours.\n. @param thickness Thickness of lines the contours are drawn with. If it is negative (for example,\n. thickness=#FILLED ), the contour interiors are drawn.\n. @param lineType Line connectivity. See #LineTypes\n. @param hierarchy Optional information about hierarchy. It is only needed if you want to draw only\n. some of the contours (see maxLevel ).\n. @param maxLevel Maximal level for drawn contours. If it is 0, only the specified contour is drawn.\n. If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function\n. draws the contours, all the nested contours, all the nested-to-nested contours, and so on. This\n. parameter is only taken into account when there is hierarchy available.\n. @param offset Optional contour shift parameter. Shift all the drawn contours by the specified\n. \\f$\\texttt{offset}=(dx,dy)\\f$ .\n. @note When thickness=#FILLED, the function is designed to handle connected components with holes correctly\n. even when no hierarchy date is provided. This is done by analyzing all the outlines together\n. using even-odd rule. This may give incorrect results if you have a joint collection of separately retrieved\n. contours. In order to solve this problem, you need to call #drawContours separately for each sub-group\n. of contours, or iterate over the collection using contourIdx parameter.' + ... + + +def drawFrameAxes(image: ndarray, cameraMatrix, distCoeffs, rvec, tvec, length, thickness=...) -> typing.Any: + 'drawFrameAxes(image, cameraMatrix, distCoeffs, rvec, tvec, length[, thickness]) -> image\n. @brief Draw axes of the world/object coordinate system from pose estimation. @sa solvePnP\n. \n. @param image Input/output image. It must have 1 or 3 channels. The number of channels is not altered.\n. @param cameraMatrix Input 3x3 floating-point matrix of camera intrinsic parameters.\n. \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.\n. @param rvec Rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Translation vector.\n. @param length Length of the painted axes in the same unit than tvec (usually in meters).\n. @param thickness Line thickness of the painted axes.\n. \n. This function draws the axes of the world/object coordinate system w.r.t. to the camera frame.\n. OX is drawn in red, OY in green and OZ in blue.' + ... + + +def drawKeypoints(image: ndarray, keypoints, outImage, color=..., flags: int = ...) -> typing.Any: + 'drawKeypoints(image, keypoints, outImage[, color[, flags]]) -> outImage\n. @brief Draws keypoints.\n. \n. @param image Source image.\n. @param keypoints Keypoints from the source image.\n. @param outImage Output image. Its content depends on the flags value defining what is drawn in the\n. output image. See possible flags bit values below.\n. @param color Color of keypoints.\n. @param flags Flags setting drawing features. Possible flags bit values are defined by\n. DrawMatchesFlags. See details above in drawMatches .\n. \n. @note\n. For Python API, flags are modified as cv.DRAW_MATCHES_FLAGS_DEFAULT,\n. cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG,\n. cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS' + ... + + +def drawMarker(img: ndarray, position, color, markerType=..., markerSize=..., thickness=..., line_type=...) -> typing.Any: + 'drawMarker(img, position, color[, markerType[, markerSize[, thickness[, line_type]]]]) -> img\n. @brief Draws a marker on a predefined position in an image.\n. \n. The function cv::drawMarker draws a marker on a given position in the image. For the moment several\n. marker types are supported, see #MarkerTypes for more information.\n. \n. @param img Image.\n. @param position The point where the crosshair is positioned.\n. @param color Line color.\n. @param markerType The specific type of marker you want to use, see #MarkerTypes\n. @param thickness Line thickness.\n. @param line_type Type of the line, See #LineTypes\n. @param markerSize The length of the marker axis [default = 20 pixels]' + ... + + +def drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor=..., singlePointColor=..., matchesMask=..., flags: int = ...) -> typing.Any: + 'drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg\n. @brief Draws the found matches of keypoints from two images.\n. \n. @param img1 First source image.\n. @param keypoints1 Keypoints from the first source image.\n. @param img2 Second source image.\n. @param keypoints2 Keypoints from the second source image.\n. @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]\n. has a corresponding point in keypoints2[matches[i]] .\n. @param outImg Output image. Its content depends on the flags value defining what is drawn in the\n. output image. See possible flags bit values below.\n. @param matchColor Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1)\n. , the color is generated randomly.\n. @param singlePointColor Color of single keypoints (circles), which means that keypoints do not\n. have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.\n. @param matchesMask Mask determining which matches are drawn. If the mask is empty, all matches are\n. drawn.\n. @param flags Flags setting drawing features. Possible flags bit values are defined by\n. DrawMatchesFlags.\n. \n. This function draws matches of keypoints from two images in the output image. Match is a line\n. connecting two keypoints (circles). See cv::DrawMatchesFlags.' + ... + + +def drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor=..., singlePointColor=..., matchesMask=..., flags: int = ...) -> typing.Any: + 'drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg\n. @overload' + ... + + +def edgePreservingFilter(src: ndarray, dts: ndarray = ..., flags: int = ..., sigma_s=..., sigma_r=...) -> typing.Any: + 'edgePreservingFilter(src[, dst[, flags[, sigma_s[, sigma_r]]]]) -> dst\n. @brief Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing\n. filters are used in many different applications @cite EM11 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output 8-bit 3-channel image.\n. @param flags Edge preserving filters: cv::RECURS_FILTER or cv::NORMCONV_FILTER\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' + ... + + +def eigen(src: ndarray, eigenvalues=..., eigenvectors=...) -> typing.Any: + 'eigen(src[, eigenvalues[, eigenvectors]]) -> retval, eigenvalues, eigenvectors\n. @brief Calculates eigenvalues and eigenvectors of a symmetric matrix.\n. \n. The function cv::eigen calculates just eigenvalues, or eigenvalues and eigenvectors of the symmetric\n. matrix src:\n. @code\n. src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()\n. @endcode\n. \n. @note Use cv::eigenNonSymmetric for calculation of real eigenvalues and eigenvectors of non-symmetric matrix.\n. \n. @param src input matrix that must have CV_32FC1 or CV_64FC1 type, square size and be symmetrical\n. (src ^T^ == src).\n. @param eigenvalues output vector of eigenvalues of the same type as src; the eigenvalues are stored\n. in the descending order.\n. @param eigenvectors output matrix of eigenvectors; it has the same size and type as src; the\n. eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding\n. eigenvalues.\n. @sa eigenNonSymmetric, completeSymm , PCA' + ... + + +def eigenNonSymmetric(src: ndarray, eigenvalues=..., eigenvectors=...) -> typing.Any: + 'eigenNonSymmetric(src[, eigenvalues[, eigenvectors]]) -> eigenvalues, eigenvectors\n. @brief Calculates eigenvalues and eigenvectors of a non-symmetric matrix (real eigenvalues only).\n. \n. @note Assumes real eigenvalues.\n. \n. The function calculates eigenvalues and eigenvectors (optional) of the square matrix src:\n. @code\n. src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()\n. @endcode\n. \n. @param src input matrix (CV_32FC1 or CV_64FC1 type).\n. @param eigenvalues output vector of eigenvalues (type is the same type as src).\n. @param eigenvectors output matrix of eigenvectors (type is the same type as src). The eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding eigenvalues.\n. @sa eigen' + ... + + +def ellipse(img: ndarray, center, axes, angle, startAngle, endAngle, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a simple or thick elliptic arc or fills an ellipse sector.\n. \n. The function cv::ellipse with more parameters draws an ellipse outline, a filled ellipse, an elliptic\n. arc, or a filled ellipse sector. The drawing code uses general parametric form.\n. A piecewise-linear curve is used to approximate the elliptic arc\n. boundary. If you need more control of the ellipse rendering, you can retrieve the curve using\n. #ellipse2Poly and then render it with #polylines or fill it with #fillPoly. If you use the first\n. variant of the function and want to draw the whole ellipse, not an arc, pass `startAngle=0` and\n. `endAngle=360`. If `startAngle` is greater than `endAngle`, they are swapped. The figure below explains\n. the meaning of the parameters to draw the blue arc.\n. \n. ![Parameters of Elliptic Arc](pics/ellipse.svg)\n. \n. @param img Image.\n. @param center Center of the ellipse.\n. @param axes Half of the size of the ellipse main axes.\n. @param angle Ellipse rotation angle in degrees.\n. @param startAngle Starting angle of the elliptic arc in degrees.\n. @param endAngle Ending angle of the elliptic arc in degrees.\n. @param color Ellipse color.\n. @param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that\n. a filled ellipse sector is to be drawn.\n. @param lineType Type of the ellipse boundary. See #LineTypes\n. @param shift Number of fractional bits in the coordinates of the center and values of axes.\n\n\n\nellipse(img, box, color[, thickness[, lineType]]) -> img\n. @overload\n. @param img Image.\n. @param box Alternative ellipse representation via RotatedRect. This means that the function draws\n. an ellipse inscribed in the rotated rectangle.\n. @param color Ellipse color.\n. @param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that\n. a filled ellipse sector is to be drawn.\n. @param lineType Type of the ellipse boundary. See #LineTypes' + ... + + +def ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> typing.Any: + 'ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> pts\n. @brief Approximates an elliptic arc with a polyline.\n. \n. The function ellipse2Poly computes the vertices of a polyline that approximates the specified\n. elliptic arc. It is used by #ellipse. If `arcStart` is greater than `arcEnd`, they are swapped.\n. \n. @param center Center of the arc.\n. @param axes Half of the size of the ellipse main axes. See #ellipse for details.\n. @param angle Rotation angle of the ellipse in degrees. See #ellipse for details.\n. @param arcStart Starting angle of the elliptic arc in degrees.\n. @param arcEnd Ending angle of the elliptic arc in degrees.\n. @param delta Angle between the subsequent polyline vertices. It defines the approximation\n. accuracy.\n. @param pts Output vector of polyline vertices.' + ... + + +def equalizeHist(src: ndarray, dts: ndarray = ...) -> typing.Any: + "equalizeHist(src[, dst]) -> dst\n. @brief Equalizes the histogram of a grayscale image.\n. \n. The function equalizes the histogram of the input image using the following algorithm:\n. \n. - Calculate the histogram \\f$H\\f$ for src .\n. - Normalize the histogram so that the sum of histogram bins is 255.\n. - Compute the integral of the histogram:\n. \\f[H'_i = \\sum _{0 \\le j < i} H(j)\\f]\n. - Transform the image using \\f$H'\\f$ as a look-up table: \\f$\\texttt{dst}(x,y) = H'(\\texttt{src}(x,y))\\f$\n. \n. The algorithm normalizes the brightness and increases the contrast of the image.\n. \n. @param src Source 8-bit single channel image.\n. @param dst Destination image of the same size and type as src ." + ... + + +def erode(src: ndarray, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: + "erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Erodes an image by using a specific structuring element.\n. \n. The function erodes the source image using the specified structuring element that determines the\n. shape of a pixel neighborhood over which the minimum is taken:\n. \n. \\f[\\texttt{dst} (x,y) = \\min _{(x',y'): \\, \\texttt{element} (x',y') \\ne0 } \\texttt{src} (x+x',y+y')\\f]\n. \n. The function supports the in-place mode. Erosion can be applied several ( iterations ) times. In\n. case of multi-channel images, each channel is processed independently.\n. \n. @param src input image; the number of channels can be arbitrary, but the depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param kernel structuring element used for erosion; if `element=Mat()`, a `3 x 3` rectangular\n. structuring element is used. Kernel can be created using #getStructuringElement.\n. @param anchor position of the anchor within the element; default value (-1, -1) means that the\n. anchor is at the element center.\n. @param iterations number of times erosion is applied.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @param borderValue border value in case of a constant border\n. @sa dilate, morphologyEx, getStructuringElement" + ... + + +error = _mod_cv2.error + + +def estimateAffine2D(from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=...) -> typing.Any: + 'estimateAffine2D(from, to[, inliers[, method[, ransacReprojThreshold[, maxIters[, confidence[, refineIters]]]]]]) -> retval, inliers\n. @brief Computes an optimal affine transformation between two 2D point sets.\n. \n. It computes\n. \\f[\n. \\begin{bmatrix}\n. x\\\\\n. y\\\\\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. a_{11} & a_{12}\\\\\n. a_{21} & a_{22}\\\\\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X\\\\\n. Y\\\\\n. \\end{bmatrix}\n. +\n. \\begin{bmatrix}\n. b_1\\\\\n. b_2\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. @param from First input 2D point set containing \\f$(X,Y)\\f$.\n. @param to Second input 2D point set containing \\f$(x,y)\\f$.\n. @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. @param method Robust method used to compute transformation. The following methods are possible:\n. - cv::RANSAC - RANSAC-based robust method\n. - cv::LMEDS - Least-Median robust method\n. RANSAC is the default method.\n. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider\n. a point as an inlier. Applies only to RANSAC.\n. @param maxIters The maximum number of robust method iterations.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. @param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).\n. Passing 0 will disable refining, so the output matrix will be output of robust method.\n. \n. @return Output 2D affine transformation matrix \\f$2 \\times 3\\f$ or empty matrix if transformation\n. could not be estimated. The returned matrix has the following form:\n. \\f[\n. \\begin{bmatrix}\n. a_{11} & a_{12} & b_1\\\\\n. a_{21} & a_{22} & b_2\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. The function estimates an optimal 2D affine transformation between two 2D point sets using the\n. selected robust algorithm.\n. \n. The computed transformation is then refined further (using only inliers) with the\n. Levenberg-Marquardt method to reduce the re-projection error even more.\n. \n. @note\n. The RANSAC method can handle practically any ratio of outliers but needs a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers.\n. \n. @sa estimateAffinePartial2D, getAffineTransform' + ... + + +def estimateAffine3D(src: ndarray, dts: ndarray, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: + 'estimateAffine3D(src, dst[, out[, inliers[, ransacThreshold[, confidence]]]]) -> retval, out, inliers\n. @brief Computes an optimal affine transformation between two 3D point sets.\n. \n. It computes\n. \\f[\n. \\begin{bmatrix}\n. x\\\\\n. y\\\\\n. z\\\\\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. a_{11} & a_{12} & a_{13}\\\\\n. a_{21} & a_{22} & a_{23}\\\\\n. a_{31} & a_{32} & a_{33}\\\\\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X\\\\\n. Y\\\\\n. Z\\\\\n. \\end{bmatrix}\n. +\n. \\begin{bmatrix}\n. b_1\\\\\n. b_2\\\\\n. b_3\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. @param src First input 3D point set containing \\f$(X,Y,Z)\\f$.\n. @param dst Second input 3D point set containing \\f$(x,y,z)\\f$.\n. @param out Output 3D affine transformation matrix \\f$3 \\times 4\\f$ of the form\n. \\f[\n. \\begin{bmatrix}\n. a_{11} & a_{12} & a_{13} & b_1\\\\\n. a_{21} & a_{22} & a_{23} & b_2\\\\\n. a_{31} & a_{32} & a_{33} & b_3\\\\\n. \\end{bmatrix}\n. \\f]\n. @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as\n. an inlier.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. \n. The function estimates an optimal 3D affine transformation between two 3D point sets using the\n. RANSAC algorithm.' + ... + + +def estimateAffinePartial2D(from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=...) -> typing.Any: + 'estimateAffinePartial2D(from, to[, inliers[, method[, ransacReprojThreshold[, maxIters[, confidence[, refineIters]]]]]]) -> retval, inliers\n. @brief Computes an optimal limited affine transformation with 4 degrees of freedom between\n. two 2D point sets.\n. \n. @param from First input 2D point set.\n. @param to Second input 2D point set.\n. @param inliers Output vector indicating which points are inliers.\n. @param method Robust method used to compute transformation. The following methods are possible:\n. - cv::RANSAC - RANSAC-based robust method\n. - cv::LMEDS - Least-Median robust method\n. RANSAC is the default method.\n. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider\n. a point as an inlier. Applies only to RANSAC.\n. @param maxIters The maximum number of robust method iterations.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. @param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).\n. Passing 0 will disable refining, so the output matrix will be output of robust method.\n. \n. @return Output 2D affine transformation (4 degrees of freedom) matrix \\f$2 \\times 3\\f$ or\n. empty matrix if transformation could not be estimated.\n. \n. The function estimates an optimal 2D affine transformation with 4 degrees of freedom limited to\n. combinations of translation, rotation, and uniform scaling. Uses the selected algorithm for robust\n. estimation.\n. \n. The computed transformation is then refined further (using only inliers) with the\n. Levenberg-Marquardt method to reduce the re-projection error even more.\n. \n. Estimated transformation matrix is:\n. \\f[ \\begin{bmatrix} \\cos(\\theta) \\cdot s & -\\sin(\\theta) \\cdot s & t_x \\\\\n. \\sin(\\theta) \\cdot s & \\cos(\\theta) \\cdot s & t_y\n. \\end{bmatrix} \\f]\n. Where \\f$ \\theta \\f$ is the rotation angle, \\f$ s \\f$ the scaling factor and \\f$ t_x, t_y \\f$ are\n. translations in \\f$ x, y \\f$ axes respectively.\n. \n. @note\n. The RANSAC method can handle practically any ratio of outliers but need a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers.\n. \n. @sa estimateAffine2D, getAffineTransform' + ... + + +def estimateChessboardSharpness(image: ndarray, patternSize, corners, rise_distance=..., vertical=..., sharpness=...) -> typing.Any: + 'estimateChessboardSharpness(image, patternSize, corners[, rise_distance[, vertical[, sharpness]]]) -> retval, sharpness\n. @brief Estimates the sharpness of a detected chessboard.\n. \n. Image sharpness, as well as brightness, are a critical parameter for accuracte\n. camera calibration. For accessing these parameters for filtering out\n. problematic calibraiton images, this method calculates edge profiles by traveling from\n. black to white chessboard cell centers. Based on this, the number of pixels is\n. calculated required to transit from black to white. This width of the\n. transition area is a good indication of how sharp the chessboard is imaged\n. and should be below ~3.0 pixels.\n. \n. @param image Gray image used to find chessboard corners\n. @param patternSize Size of a found chessboard pattern\n. @param corners Corners found by findChessboardCorners(SB)\n. @param rise_distance Rise distance 0.8 means 10% ... 90% of the final signal strength\n. @param vertical By default edge responses for horizontal lines are calculated\n. @param sharpness Optional output array with a sharpness value for calculated edge responses (see description)\n. \n. The optional sharpness array is of type CV_32FC1 and has for each calculated\n. profile one row with the following five entries:\n. * 0 = x coordinate of the underlying edge in the image\n. * 1 = y coordinate of the underlying edge in the image\n. * 2 = width of the transition area (sharpness)\n. * 3 = signal strength in the black cell (min brightness)\n. * 4 = signal strength in the white cell (max brightness)\n. \n. @return Scalar(average sharpness, average min brightness, average max brightness,0)' + ... + + +def estimateTranslation3D(src: ndarray, dts: ndarray, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: + 'estimateTranslation3D(src, dst[, out[, inliers[, ransacThreshold[, confidence]]]]) -> retval, out, inliers\n. @brief Computes an optimal translation between two 3D point sets.\n. *\n. * It computes\n. * \\f[\n. * \\begin{bmatrix}\n. * x\\\\\n. * y\\\\\n. * z\\\\\n. * \\end{bmatrix}\n. * =\n. * \\begin{bmatrix}\n. * X\\\\\n. * Y\\\\\n. * Z\\\\\n. * \\end{bmatrix}\n. * +\n. * \\begin{bmatrix}\n. * b_1\\\\\n. * b_2\\\\\n. * b_3\\\\\n. * \\end{bmatrix}\n. * \\f]\n. *\n. * @param src First input 3D point set containing \\f$(X,Y,Z)\\f$.\n. * @param dst Second input 3D point set containing \\f$(x,y,z)\\f$.\n. * @param out Output 3D translation vector \\f$3 \\times 1\\f$ of the form\n. * \\f[\n. * \\begin{bmatrix}\n. * b_1 \\\\\n. * b_2 \\\\\n. * b_3 \\\\\n. * \\end{bmatrix}\n. * \\f]\n. * @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. * @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as\n. * an inlier.\n. * @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. * between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. * significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. *\n. * The function estimates an optimal 3D translation between two 3D point sets using the\n. * RANSAC algorithm.\n. *' + ... + + +def exp(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'exp(src[, dst]) -> dst\n. @brief Calculates the exponent of every array element.\n. \n. The function cv::exp calculates the exponent of every element of the input\n. array:\n. \\f[\\texttt{dst} [I] = e^{ src(I) }\\f]\n. \n. The maximum relative error is about 7e-6 for single-precision input and\n. less than 1e-10 for double-precision input. Currently, the function\n. converts denormalized values to zeros on output. Special values (NaN,\n. Inf) are not handled.\n. @param src input array.\n. @param dst output array of the same size and type as src.\n. @sa log , cartToPolar , polarToCart , phase , pow , sqrt , magnitude' + ... + + +def extractChannel(src: ndarray, coi, dts: ndarray = ...) -> typing.Any: + 'extractChannel(src, coi[, dst]) -> dst\n. @brief Extracts a single channel from src (coi is 0-based index)\n. @param src input array\n. @param dst output array\n. @param coi index of channel to extract\n. @sa mixChannels, split' + ... + + +def fastAtan2(y, x) -> typing.Any: + 'fastAtan2(y, x) -> retval\n. @brief Calculates the angle of a 2D vector in degrees.\n. \n. The function fastAtan2 calculates the full-range angle of an input 2D vector. The angle is measured\n. in degrees and varies from 0 to 360 degrees. The accuracy is about 0.3 degrees.\n. @param x x-coordinate of the vector.\n. @param y y-coordinate of the vector.' + ... + + +def fastNlMeansDenoising(src: ndarray, dts: ndarray = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: + 'fastNlMeansDenoising(src[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst\n. @brief Perform image denoising using Non-local Means Denoising algorithm\n. with several computational\n. optimizations. Noise expected to be a gaussian white noise\n. \n. @param src Input 8-bit 1-channel, 2-channel, 3-channel or 4-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength. Big h value perfectly removes noise but also\n. removes image details, smaller h value preserves details but also preserves some noise\n. \n. This function expected to be applied to grayscale images. For colored images look at\n. fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored\n. image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting\n. image to CIELAB colorspace and then separately denoise L and AB components with different h\n. parameter.\n\n\n\nfastNlMeansDenoising(src, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst\n. @brief Perform image denoising using Non-local Means Denoising algorithm\n. with several computational\n. optimizations. Noise expected to be a gaussian white noise\n. \n. @param src Input 8-bit or 16-bit (only with NORM_L1) 1-channel,\n. 2-channel, 3-channel or 4-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Array of parameters regulating filter strength, either one\n. parameter applied to all channels or one per channel in dst. Big h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n. @param normType Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1\n. \n. This function expected to be applied to grayscale images. For colored images look at\n. fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored\n. image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting\n. image to CIELAB colorspace and then separately denoise L and AB components with different h\n. parameter.' + ... + + +def fastNlMeansDenoisingColored(src: ndarray, dts: ndarray = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: + 'fastNlMeansDenoisingColored(src[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for colored images\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength for luminance component. Bigger h value perfectly\n. removes noise but also removes image details, smaller h value preserves details but also preserves\n. some noise\n. @param hColor The same as h but for color components. For most images value equals 10\n. will be enough to remove colored noise and do not distort colors\n. \n. The function converts image to CIELAB colorspace and then separately denoise L and AB components\n. with given h parameters using fastNlMeansDenoising function.' + ... + + +def fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: ndarray = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: + 'fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst\n. @brief Modification of fastNlMeansDenoisingMulti function for colored images sequences\n. \n. @param srcImgs Input 8-bit 3-channel images sequence. All images should have the same type and\n. size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength for luminance component. Bigger h value perfectly\n. removes noise but also removes image details, smaller h value preserves details but also preserves\n. some noise.\n. @param hColor The same as h but for color components.\n. \n. The function converts images to CIELAB colorspace and then separately denoise L and AB components\n. with given h parameters using fastNlMeansDenoisingMulti function.' + ... + + +def fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: ndarray = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: + 'fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been\n. captured in small period of time. For example video. This version of the function is for grayscale\n. images or for manual manipulation with colorspaces. For more details see\n. \n. \n. @param srcImgs Input 8-bit 1-channel, 2-channel, 3-channel or\n. 4-channel images sequence. All images should have the same type and\n. size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength. Bigger h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n\n\n\nfastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been\n. captured in small period of time. For example video. This version of the function is for grayscale\n. images or for manual manipulation with colorspaces. For more details see\n. \n. \n. @param srcImgs Input 8-bit or 16-bit (only with NORM_L1) 1-channel,\n. 2-channel, 3-channel or 4-channel images sequence. All images should\n. have the same type and size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Array of parameters regulating filter strength, either one\n. parameter applied to all channels or one per channel in dst. Big h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n. @param normType Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1' + ... + + +def fillConvexPoly(img: ndarray, points, color, lineType=..., shift=...) -> typing.Any: + 'fillConvexPoly(img, points, color[, lineType[, shift]]) -> img\n. @brief Fills a convex polygon.\n. \n. The function cv::fillConvexPoly draws a filled convex polygon. This function is much faster than the\n. function #fillPoly . It can fill not only convex polygons but any monotonic polygon without\n. self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line)\n. twice at the most (though, its top-most and/or the bottom edge could be horizontal).\n. \n. @param img Image.\n. @param points Polygon vertices.\n. @param color Polygon color.\n. @param lineType Type of the polygon boundaries. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.' + ... + + +def fillPoly(img: ndarray, pts, color, lineType=..., shift=..., offset=...) -> typing.Any: + 'fillPoly(img, pts, color[, lineType[, shift[, offset]]]) -> img\n. @brief Fills the area bounded by one or more polygons.\n. \n. The function cv::fillPoly fills an area bounded by several polygonal contours. The function can fill\n. complex areas, for example, areas with holes, contours with self-intersections (some of their\n. parts), and so forth.\n. \n. @param img Image.\n. @param pts Array of polygons where each polygon is represented as an array of points.\n. @param color Polygon color.\n. @param lineType Type of the polygon boundaries. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.\n. @param offset Optional offset of all points of the contours.' + ... + + +def filter2D(src: ndarray, ddepth, kernel, dts: ndarray = ..., anchor=..., delta=..., borderType=...) -> typing.Any: + 'filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]]) -> dst\n. @brief Convolves an image with the kernel.\n. \n. The function applies an arbitrary linear filter to an image. In-place operation is supported. When\n. the aperture is partially outside the image, the function interpolates outlier pixel values\n. according to the specified border mode.\n. \n. The function does actually compute correlation, not the convolution:\n. \n. \\f[\\texttt{dst} (x,y) = \\sum _{ \\substack{0\\leq x\' < \\texttt{kernel.cols}\\\\{0\\leq y\' < \\texttt{kernel.rows}}}} \\texttt{kernel} (x\',y\')* \\texttt{src} (x+x\'- \\texttt{anchor.x} ,y+y\'- \\texttt{anchor.y} )\\f]\n. \n. That is, the kernel is not mirrored around the anchor point. If you need a real convolution, flip\n. the kernel using #flip and set the new anchor to `(kernel.cols - anchor.x - 1, kernel.rows -\n. anchor.y - 1)`.\n. \n. The function uses the DFT-based algorithm in case of sufficiently large kernels (~`11 x 11` or\n. larger) and the direct algorithm for small kernels.\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src.\n. @param ddepth desired depth of the destination image, see @ref filter_depths "combinations"\n. @param kernel convolution kernel (or rather a correlation kernel), a single-channel floating point\n. matrix; if you want to apply different kernels to different channels, split the image into\n. separate color planes using split and process them individually.\n. @param anchor anchor of the kernel that indicates the relative position of a filtered point within\n. the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor\n. is at the kernel center.\n. @param delta optional value added to the filtered pixels before storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa sepFilter2D, dft, matchTemplate' + ... + + +def filterHomographyDecompByVisibleRefpoints(rotations, normals, beforePoints, afterPoints, possibleSolutions=..., pointsMask=...) -> typing.Any: + 'filterHomographyDecompByVisibleRefpoints(rotations, normals, beforePoints, afterPoints[, possibleSolutions[, pointsMask]]) -> possibleSolutions\n. @brief Filters homography decompositions based on additional information.\n. \n. @param rotations Vector of rotation matrices.\n. @param normals Vector of plane normal matrices.\n. @param beforePoints Vector of (rectified) visible reference points before the homography is applied\n. @param afterPoints Vector of (rectified) visible reference points after the homography is applied\n. @param possibleSolutions Vector of int indices representing the viable solution set after filtering\n. @param pointsMask optional Mat/Vector of 8u type representing the mask for the inliers as given by the findHomography function\n. \n. This function is intended to filter the output of the decomposeHomographyMat based on additional\n. information as described in @cite Malis . The summary of the method: the decomposeHomographyMat function\n. returns 2 unique solutions and their "opposites" for a total of 4 solutions. If we have access to the\n. sets of points visible in the camera frame before and after the homography transformation is applied,\n. we can determine which are the true potential solutions and which are the opposites by verifying which\n. homographies are consistent with all visible reference points being in front of the camera. The inputs\n. are left unchanged; the filtered solution set is returned as indices into the existing one.' + ... + + +def filterSpeckles(img: ndarray, newVal, maxSpeckleSize, maxDiff, buf=...) -> typing.Any: + 'filterSpeckles(img, newVal, maxSpeckleSize, maxDiff[, buf]) -> img, buf\n. @brief Filters off small noise blobs (speckles) in the disparity map\n. \n. @param img The input 16-bit signed disparity image\n. @param newVal The disparity value used to paint-off the speckles\n. @param maxSpeckleSize The maximum speckle size to consider it a speckle. Larger blobs are not\n. affected by the algorithm\n. @param maxDiff Maximum difference between neighbor disparity pixels to put them into the same\n. blob. Note that since StereoBM, StereoSGBM and may be other algorithms return a fixed-point\n. disparity map, where disparity values are multiplied by 16, this scale factor should be taken into\n. account when specifying this parameter value.\n. @param buf The optional temporary buffer to avoid memory allocation within the function.' + ... + + +def find4QuadCornerSubpix(img: ndarray, corners, region_size) -> typing.Any: + 'find4QuadCornerSubpix(img, corners, region_size) -> retval, corners\n.' + ... + + +def findChessboardCorners(image: ndarray, patternSize, corners=..., flags: int = ...) -> typing.Any: + 'findChessboardCorners(image, patternSize[, corners[, flags]]) -> retval, corners\n. @brief Finds the positions of internal corners of the chessboard.\n. \n. @param image Source chessboard view. It must be an 8-bit grayscale or color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ).\n. @param corners Output array of detected corners.\n. @param flags Various operation flags that can be zero or a combination of the following values:\n. - **CALIB_CB_ADAPTIVE_THRESH** Use adaptive thresholding to convert the image to black\n. and white, rather than a fixed threshold level (computed from the average image brightness).\n. - **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before\n. applying fixed or adaptive thresholding.\n. - **CALIB_CB_FILTER_QUADS** Use additional criteria (like contour area, perimeter,\n. square-like shape) to filter out false quads extracted at the contour retrieval stage.\n. - **CALIB_CB_FAST_CHECK** Run a fast check on the image that looks for chessboard corners,\n. and shortcut the call if none is found. This can drastically speed up the call in the\n. degenerate condition when no chessboard is observed.\n. \n. The function attempts to determine whether the input image is a view of the chessboard pattern and\n. locate the internal chessboard corners. The function returns a non-zero value if all of the corners\n. are found and they are placed in a certain order (row by row, left to right in every row).\n. Otherwise, if the function fails to find all the corners or reorder them, it returns 0. For example,\n. a regular chessboard has 8 x 8 squares and 7 x 7 internal corners, that is, points where the black\n. squares touch each other. The detected coordinates are approximate, and to determine their positions\n. more accurately, the function calls cornerSubPix. You also may use the function cornerSubPix with\n. different parameters if returned coordinates are not accurate enough.\n. \n. Sample usage of detecting and drawing chessboard corners: :\n. @code\n. Size patternsize(8,6); //interior number of corners\n. Mat gray = ....; //source image\n. vector corners; //this will be filled by the detected corners\n. \n. //CALIB_CB_FAST_CHECK saves a lot of time on images\n. //that do not contain any chessboard corners\n. bool patternfound = findChessboardCorners(gray, patternsize, corners,\n. CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE\n. + CALIB_CB_FAST_CHECK);\n. \n. if(patternfound)\n. cornerSubPix(gray, corners, Size(11, 11), Size(-1, -1),\n. TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1));\n. \n. drawChessboardCorners(img, patternsize, Mat(corners), patternfound);\n. @endcode\n. @note The function requires white space (like a square-thick border, the wider the better) around\n. the board to make the detection more robust in various environments. Otherwise, if there is no\n. border and the background is dark, the outer black squares cannot be segmented properly and so the\n. square grouping and ordering algorithm fails.' + ... + + +def findChessboardCornersSB(image: ndarray, patternSize, corners=..., flags: int = ...) -> typing.Any: + 'findChessboardCornersSB(image, patternSize[, corners[, flags]]) -> retval, corners\n. @overload' + ... + + +def findChessboardCornersSBWithMeta(image: ndarray, patternSize, flags: int, corners=..., meta=...) -> typing.Any: + 'findChessboardCornersSBWithMeta(image, patternSize, flags[, corners[, meta]]) -> retval, corners, meta\n. @brief Finds the positions of internal corners of the chessboard using a sector based approach.\n. \n. @param image Source chessboard view. It must be an 8-bit grayscale or color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ).\n. @param corners Output array of detected corners.\n. @param flags Various operation flags that can be zero or a combination of the following values:\n. - **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before detection.\n. - **CALIB_CB_EXHAUSTIVE** Run an exhaustive search to improve detection rate.\n. - **CALIB_CB_ACCURACY** Up sample input image to improve sub-pixel accuracy due to aliasing effects.\n. - **CALIB_CB_LARGER** The detected pattern is allowed to be larger than patternSize (see description).\n. - **CALIB_CB_MARKER** The detected pattern must have a marker (see description).\n. This should be used if an accurate camera calibration is required.\n. @param meta Optional output arrray of detected corners (CV_8UC1 and size = cv::Size(columns,rows)).\n. Each entry stands for one corner of the pattern and can have one of the following values:\n. - 0 = no meta data attached\n. - 1 = left-top corner of a black cell\n. - 2 = left-top corner of a white cell\n. - 3 = left-top corner of a black cell with a white marker dot\n. - 4 = left-top corner of a white cell with a black marker dot (pattern origin in case of markers otherwise first corner)\n. \n. The function is analog to findchessboardCorners but uses a localized radon\n. transformation approximated by box filters being more robust to all sort of\n. noise, faster on larger images and is able to directly return the sub-pixel\n. position of the internal chessboard corners. The Method is based on the paper\n. @cite duda2018 "Accurate Detection and Localization of Checkerboard Corners for\n. Calibration" demonstrating that the returned sub-pixel positions are more\n. accurate than the one returned by cornerSubPix allowing a precise camera\n. calibration for demanding applications.\n. \n. In the case, the flags **CALIB_CB_LARGER** or **CALIB_CB_MARKER** are given,\n. the result can be recovered from the optional meta array. Both flags are\n. helpful to use calibration patterns exceeding the field of view of the camera.\n. These oversized patterns allow more accurate calibrations as corners can be\n. utilized, which are as close as possible to the image borders. For a\n. consistent coordinate system across all images, the optional marker (see image\n. below) can be used to move the origin of the board to the location where the\n. black circle is located.\n. \n. @note The function requires a white boarder with roughly the same width as one\n. of the checkerboard fields around the whole board to improve the detection in\n. various environments. In addition, because of the localized radon\n. transformation it is beneficial to use round corners for the field corners\n. which are located on the outside of the board. The following figure illustrates\n. a sample checkerboard optimized for the detection. However, any other checkerboard\n. can be used as well.\n. ![Checkerboard](pics/checkerboard_radon.png)' + ... + + +def findCirclesGrid(image: ndarray, patternSize, flags: int, blobDetector, parameters, centers=...) -> typing.Any: + 'findCirclesGrid(image, patternSize, flags, blobDetector, parameters[, centers]) -> retval, centers\n. @brief Finds centers in the grid of circles.\n. \n. @param image grid view of input circles; it must be an 8-bit grayscale or color image.\n. @param patternSize number of circles per row and column\n. ( patternSize = Size(points_per_row, points_per_colum) ).\n. @param centers output array of detected centers.\n. @param flags various operation flags that can be one of the following values:\n. - **CALIB_CB_SYMMETRIC_GRID** uses symmetric pattern of circles.\n. - **CALIB_CB_ASYMMETRIC_GRID** uses asymmetric pattern of circles.\n. - **CALIB_CB_CLUSTERING** uses a special algorithm for grid detection. It is more robust to\n. perspective distortions but much more sensitive to background clutter.\n. @param blobDetector feature detector that finds blobs like dark circles on light background.\n. @param parameters struct for finding circles in a grid pattern.\n. \n. The function attempts to determine whether the input image contains a grid of circles. If it is, the\n. function locates centers of the circles. The function returns a non-zero value if all of the centers\n. have been found and they have been placed in a certain order (row by row, left to right in every\n. row). Otherwise, if the function fails to find all the corners or reorder them, it returns 0.\n. \n. Sample usage of detecting and drawing the centers of circles: :\n. @code\n. Size patternsize(7,7); //number of centers\n. Mat gray = ....; //source image\n. vector centers; //this will be filled by the detected centers\n. \n. bool patternfound = findCirclesGrid(gray, patternsize, centers);\n. \n. drawChessboardCorners(img, patternsize, Mat(centers), patternfound);\n. @endcode\n. @note The function requires white space (like a square-thick border, the wider the better) around\n. the board to make the detection more robust in various environments.\n\n\n\nfindCirclesGrid(image, patternSize[, centers[, flags[, blobDetector]]]) -> retval, centers\n. @overload' + ... + + +def findContours(image: ndarray, mode, method: int, contours=..., hierarchy=..., offset=...) -> typing.Any: + "findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours, hierarchy\n. @brief Finds contours in a binary image.\n. \n. The function retrieves contours from the binary image using the algorithm @cite Suzuki85 . The contours\n. are a useful tool for shape analysis and object detection and recognition. See squares.cpp in the\n. OpenCV sample directory.\n. @note Since opencv 3.2 source image is not modified by this function.\n. \n. @param image Source, an 8-bit single-channel image. Non-zero pixels are treated as 1's. Zero\n. pixels remain 0's, so the image is treated as binary . You can use #compare, #inRange, #threshold ,\n. #adaptiveThreshold, #Canny, and others to create a binary image out of a grayscale or color one.\n. If mode equals to #RETR_CCOMP or #RETR_FLOODFILL, the input can also be a 32-bit integer image of labels (CV_32SC1).\n. @param contours Detected contours. Each contour is stored as a vector of points (e.g.\n. std::vector >).\n. @param hierarchy Optional output vector (e.g. std::vector), containing information about the image topology. It has\n. as many elements as the number of contours. For each i-th contour contours[i], the elements\n. hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , and hierarchy[i][3] are set to 0-based indices\n. in contours of the next and previous contours at the same hierarchical level, the first child\n. contour and the parent contour, respectively. If for the contour i there are no next, previous,\n. parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.\n. @param mode Contour retrieval mode, see #RetrievalModes\n. @param method Contour approximation method, see #ContourApproximationModes\n. @param offset Optional offset by which every contour point is shifted. This is useful if the\n. contours are extracted from the image ROI and then they should be analyzed in the whole image\n. context." + ... + + +def findEssentialMat(points1, points2, cameraMatrix, method: int = ..., prob=..., threshold=..., mask: ndarray = ...) -> typing.Any: + 'findEssentialMat(points1, points2, cameraMatrix[, method[, prob[, threshold[, mask]]]]) -> retval, mask\n. @brief Calculates an essential matrix from the corresponding points in two images.\n. \n. @param points1 Array of N (N \\>= 5) 2D points from the first image. The point coordinates should\n. be floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param cameraMatrix Camera matrix \\f$K = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix. If this assumption does not hold for your use case, use\n. `undistortPoints()` with `P = cv::NoArray()` for both cameras to transform image points\n. to normalized image coordinates, which are valid for the identity camera matrix. When\n. passing these coordinates, pass the identity matrix for this parameter.\n. @param method Method for computing an essential matrix.\n. - **RANSAC** for the RANSAC algorithm.\n. - **LMEDS** for the LMedS algorithm.\n. @param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of\n. confidence (probability) that the estimated matrix is correct.\n. @param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1\n. for the other points. The array is computed only in the RANSAC and LMedS methods.\n. \n. This function estimates essential matrix based on the five-point algorithm solver in @cite Nister03 .\n. @cite SteweniusCFS is also a related. The epipolar geometry is described by the following equation:\n. \n. \\f[[p_2; 1]^T K^{-T} E K^{-1} [p_1; 1] = 0\\f]\n. \n. where \\f$E\\f$ is an essential matrix, \\f$p_1\\f$ and \\f$p_2\\f$ are corresponding points in the first and the\n. second images, respectively. The result of this function may be passed further to\n. decomposeEssentialMat or recoverPose to recover the relative pose between cameras.\n\n\n\nfindEssentialMat(points1, points2[, focal[, pp[, method[, prob[, threshold[, mask]]]]]]) -> retval, mask\n. @overload\n. @param points1 Array of N (N \\>= 5) 2D points from the first image. The point coordinates should\n. be floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param focal focal length of the camera. Note that this function assumes that points1 and points2\n. are feature points from cameras with same focal length and principal point.\n. @param pp principal point of the camera.\n. @param method Method for computing a fundamental matrix.\n. - **RANSAC** for the RANSAC algorithm.\n. - **LMEDS** for the LMedS algorithm.\n. @param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of\n. confidence (probability) that the estimated matrix is correct.\n. @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1\n. for the other points. The array is computed only in the RANSAC and LMedS methods.\n. \n. This function differs from the one above that it computes camera matrix from focal length and\n. principal point:\n. \n. \\f[K =\n. \\begin{bmatrix}\n. f & 0 & x_{pp} \\\\\n. 0 & f & y_{pp} \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\\f]' + ... + + +def findFundamentalMat(points1, points2, method: int, ransacReprojThreshold, confidence, maxIters, mask: ndarray = ...) -> typing.Any: + 'findFundamentalMat(points1, points2, method, ransacReprojThreshold, confidence, maxIters[, mask]) -> retval, mask\n. @brief Calculates a fundamental matrix from the corresponding points in two images.\n. \n. @param points1 Array of N points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param method Method for computing a fundamental matrix.\n. - **CV_FM_7POINT** for a 7-point algorithm. \\f$N = 7\\f$\n. - **CV_FM_8POINT** for an 8-point algorithm. \\f$N \\ge 8\\f$\n. - **CV_FM_RANSAC** for the RANSAC algorithm. \\f$N \\ge 8\\f$\n. - **CV_FM_LMEDS** for the LMedS algorithm. \\f$N \\ge 8\\f$\n. @param ransacReprojThreshold Parameter used only for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param confidence Parameter used for the RANSAC and LMedS methods only. It specifies a desirable level\n. of confidence (probability) that the estimated matrix is correct.\n. @param mask\n. @param maxIters The maximum number of robust method iterations.\n. \n. The epipolar geometry is described by the following equation:\n. \n. \\f[[p_2; 1]^T F [p_1; 1] = 0\\f]\n. \n. where \\f$F\\f$ is a fundamental matrix, \\f$p_1\\f$ and \\f$p_2\\f$ are corresponding points in the first and the\n. second images, respectively.\n. \n. The function calculates the fundamental matrix using one of four methods listed above and returns\n. the found fundamental matrix. Normally just one matrix is found. But in case of the 7-point\n. algorithm, the function may return up to 3 solutions ( \\f$9 \\times 3\\f$ matrix that stores all 3\n. matrices sequentially).\n. \n. The calculated fundamental matrix may be passed further to computeCorrespondEpilines that finds the\n. epipolar lines corresponding to the specified points. It can also be passed to\n. stereoRectifyUncalibrated to compute the rectification transformation. :\n. @code\n. // Example. Estimation of fundamental matrix using the RANSAC algorithm\n. int point_count = 100;\n. vector points1(point_count);\n. vector points2(point_count);\n. \n. // initialize the points here ...\n. for( int i = 0; i < point_count; i++ )\n. {\n. points1[i] = ...;\n. points2[i] = ...;\n. }\n. \n. Mat fundamental_matrix =\n. findFundamentalMat(points1, points2, FM_RANSAC, 3, 0.99);\n. @endcode\n\n\n\nfindFundamentalMat(points1, points2[, method[, ransacReprojThreshold[, confidence[, mask]]]]) -> retval, mask\n. @overload' + ... + + +def findHomography(srcPoints, dstPoints, method: int = ..., ransacReprojThreshold=..., mask: ndarray = ..., maxIters=..., confidence=...) -> typing.Any: + "findHomography(srcPoints, dstPoints[, method[, ransacReprojThreshold[, mask[, maxIters[, confidence]]]]]) -> retval, mask\n. @brief Finds a perspective transformation between two planes.\n. \n. @param srcPoints Coordinates of the points in the original plane, a matrix of the type CV_32FC2\n. or vector\\ .\n. @param dstPoints Coordinates of the points in the target plane, a matrix of the type CV_32FC2 or\n. a vector\\ .\n. @param method Method used to compute a homography matrix. The following methods are possible:\n. - **0** - a regular method using all the points, i.e., the least squares method\n. - **RANSAC** - RANSAC-based robust method\n. - **LMEDS** - Least-Median robust method\n. - **RHO** - PROSAC-based robust method\n. @param ransacReprojThreshold Maximum allowed reprojection error to treat a point pair as an inlier\n. (used in the RANSAC and RHO methods only). That is, if\n. \\f[\\| \\texttt{dstPoints} _i - \\texttt{convertPointsHomogeneous} ( \\texttt{H} * \\texttt{srcPoints} _i) \\|_2 > \\texttt{ransacReprojThreshold}\\f]\n. then the point \\f$i\\f$ is considered as an outlier. If srcPoints and dstPoints are measured in pixels,\n. it usually makes sense to set this parameter somewhere in the range of 1 to 10.\n. @param mask Optional output mask set by a robust method ( RANSAC or LMEDS ). Note that the input\n. mask values are ignored.\n. @param maxIters The maximum number of RANSAC iterations.\n. @param confidence Confidence level, between 0 and 1.\n. \n. The function finds and returns the perspective transformation \\f$H\\f$ between the source and the\n. destination planes:\n. \n. \\f[s_i \\vecthree{x'_i}{y'_i}{1} \\sim H \\vecthree{x_i}{y_i}{1}\\f]\n. \n. so that the back-projection error\n. \n. \\f[\\sum _i \\left ( x'_i- \\frac{h_{11} x_i + h_{12} y_i + h_{13}}{h_{31} x_i + h_{32} y_i + h_{33}} \\right )^2+ \\left ( y'_i- \\frac{h_{21} x_i + h_{22} y_i + h_{23}}{h_{31} x_i + h_{32} y_i + h_{33}} \\right )^2\\f]\n. \n. is minimized. If the parameter method is set to the default value 0, the function uses all the point\n. pairs to compute an initial homography estimate with a simple least-squares scheme.\n. \n. However, if not all of the point pairs ( \\f$srcPoints_i\\f$, \\f$dstPoints_i\\f$ ) fit the rigid perspective\n. transformation (that is, there are some outliers), this initial estimate will be poor. In this case,\n. you can use one of the three robust methods. The methods RANSAC, LMeDS and RHO try many different\n. random subsets of the corresponding point pairs (of four pairs each, collinear pairs are discarded), estimate the homography matrix\n. using this subset and a simple least-squares algorithm, and then compute the quality/goodness of the\n. computed homography (which is the number of inliers for RANSAC or the least median re-projection error for\n. LMeDS). The best subset is then used to produce the initial estimate of the homography matrix and\n. the mask of inliers/outliers.\n. \n. Regardless of the method, robust or not, the computed homography matrix is refined further (using\n. inliers only in case of a robust method) with the Levenberg-Marquardt method to reduce the\n. re-projection error even more.\n. \n. The methods RANSAC and RHO can handle practically any ratio of outliers but need a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers. Finally, if there are no outliers and the\n. noise is rather small, use the default method (method=0).\n. \n. The function is used to find initial intrinsic and extrinsic matrices. Homography matrix is\n. determined up to a scale. Thus, it is normalized so that \\f$h_{33}=1\\f$. Note that whenever an \\f$H\\f$ matrix\n. cannot be estimated, an empty one will be returned.\n. \n. @sa\n. getAffineTransform, estimateAffine2D, estimateAffinePartial2D, getPerspectiveTransform, warpPerspective,\n. perspectiveTransform" + ... + + +def findNonZero(src: ndarray, idx=...) -> typing.Any: + 'findNonZero(src[, idx]) -> idx\n. @brief Returns the list of locations of non-zero pixels\n. \n. Given a binary matrix (likely returned from an operation such\n. as threshold(), compare(), >, ==, etc, return all of\n. the non-zero indices as a cv::Mat or std::vector (x,y)\n. For example:\n. @code{.cpp}\n. cv::Mat binaryImage; // input, binary image\n. cv::Mat locations; // output, locations of non-zero pixels\n. cv::findNonZero(binaryImage, locations);\n. \n. // access pixel coordinates\n. Point pnt = locations.at(i);\n. @endcode\n. or\n. @code{.cpp}\n. cv::Mat binaryImage; // input, binary image\n. vector locations; // output, locations of non-zero pixels\n. cv::findNonZero(binaryImage, locations);\n. \n. // access pixel coordinates\n. Point pnt = locations[i];\n. @endcode\n. @param src single-channel array\n. @param idx the output array, type of cv::Mat or std::vector, corresponding to non-zero indices in the input' + ... + + +def findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize) -> typing.Any: + "findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize) -> retval, warpMatrix\n. @brief Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 .\n. \n. @param templateImage single-channel template image; CV_8U or CV_32F array.\n. @param inputImage single-channel input image which should be warped with the final warpMatrix in\n. order to provide an image similar to templateImage, same type as templateImage.\n. @param warpMatrix floating-point \\f$2\\times 3\\f$ or \\f$3\\times 3\\f$ mapping matrix (warp).\n. @param motionType parameter, specifying the type of motion:\n. - **MOTION_TRANSLATION** sets a translational motion model; warpMatrix is \\f$2\\times 3\\f$ with\n. the first \\f$2\\times 2\\f$ part being the unity matrix and the rest two parameters being\n. estimated.\n. - **MOTION_EUCLIDEAN** sets a Euclidean (rigid) transformation as motion model; three\n. parameters are estimated; warpMatrix is \\f$2\\times 3\\f$.\n. - **MOTION_AFFINE** sets an affine motion model (DEFAULT); six parameters are estimated;\n. warpMatrix is \\f$2\\times 3\\f$.\n. - **MOTION_HOMOGRAPHY** sets a homography as a motion model; eight parameters are\n. estimated;\\`warpMatrix\\` is \\f$3\\times 3\\f$.\n. @param criteria parameter, specifying the termination criteria of the ECC algorithm;\n. criteria.epsilon defines the threshold of the increment in the correlation coefficient between two\n. iterations (a negative criteria.epsilon makes criteria.maxcount the only termination criterion).\n. Default values are shown in the declaration above.\n. @param inputMask An optional mask to indicate valid values of inputImage.\n. @param gaussFiltSize An optional value indicating size of gaussian blur filter; (DEFAULT: 5)\n. \n. The function estimates the optimum transformation (warpMatrix) with respect to ECC criterion\n. (@cite EP08), that is\n. \n. \\f[\\texttt{warpMatrix} = \\arg\\max_{W} \\texttt{ECC}(\\texttt{templateImage}(x,y),\\texttt{inputImage}(x',y'))\\f]\n. \n. where\n. \n. \\f[\\begin{bmatrix} x' \\\\ y' \\end{bmatrix} = W \\cdot \\begin{bmatrix} x \\\\ y \\\\ 1 \\end{bmatrix}\\f]\n. \n. (the equation holds with homogeneous coordinates for homography). It returns the final enhanced\n. correlation coefficient, that is the correlation coefficient between the template image and the\n. final warped input image. When a \\f$3\\times 3\\f$ matrix is given with motionType =0, 1 or 2, the third\n. row is ignored.\n. \n. Unlike findHomography and estimateRigidTransform, the function findTransformECC implements an\n. area-based alignment that builds on intensity similarities. In essence, the function updates the\n. initial transformation that roughly aligns the images. If this information is missing, the identity\n. warp (unity matrix) is used as an initialization. Note that if images undergo strong\n. displacements/rotations, an initial transformation that roughly aligns the images is necessary\n. (e.g., a simple euclidean/similarity transform that allows for the images showing the same image\n. content approximately). Use inverse warping in the second image to take an image close to the first\n. one, i.e. use the flag WARP_INVERSE_MAP with warpAffine or warpPerspective. See also the OpenCV\n. sample image_alignment.cpp that demonstrates the use of the function. Note that the function throws\n. an exception if algorithm does not converges.\n. \n. @sa\n. computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography" + ... + + +def fitEllipse(points) -> typing.Any: + 'fitEllipse(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits (in a least-squares sense) a set of 2D points best of\n. all. It returns the rotated rectangle in which the ellipse is inscribed. The first algorithm described by @cite Fitzgibbon95\n. is used. Developer should keep in mind that it is possible that the returned\n. ellipse/rotatedRect data contains negative indices, due to the data points being close to the\n. border of the containing Mat element.\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' + ... + + +def fitEllipseAMS(points) -> typing.Any: + 'fitEllipseAMS(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits a set of 2D points.\n. It returns the rotated rectangle in which the ellipse is inscribed.\n. The Approximate Mean Square (AMS) proposed by @cite Taubin1991 is used.\n. \n. For an ellipse, this basis set is \\f$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) \\f$,\n. which is a set of six free coefficients \\f$ A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} \\f$.\n. However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \\f$ (a,b) \\f$,\n. the position \\f$ (x_0,y_0) \\f$, and the orientation \\f$ \\theta \\f$. This is because the basis set includes lines,\n. quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits.\n. If the fit is found to be a parabolic or hyperbolic function then the standard #fitEllipse method is used.\n. The AMS method restricts the fit to parabolic, hyperbolic and elliptical curves\n. by imposing the condition that \\f$ A^T ( D_x^T D_x + D_y^T D_y) A = 1 \\f$ where\n. the matrices \\f$ Dx \\f$ and \\f$ Dy \\f$ are the partial derivatives of the design matrix \\f$ D \\f$ with\n. respect to x and y. The matrices are formed row by row applying the following to\n. each of the points in the set:\n. \\f{align*}{\n. D(i,:)&=\\left\\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\\right\\} &\n. D_x(i,:)&=\\left\\{2 x_i,y_i,0,1,0,0\\right\\} &\n. D_y(i,:)&=\\left\\{0,x_i,2 y_i,0,1,0\\right\\}\n. \\f}\n. The AMS method minimizes the cost function\n. \\f{equation*}{\n. \\epsilon ^2=\\frac{ A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T }\n. \\f}\n. \n. The minimum cost is found by solving the generalized eigenvalue problem.\n. \n. \\f{equation*}{\n. D^T D A = \\lambda \\left( D_x^T D_x + D_y^T D_y\\right) A\n. \\f}\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' + ... + + +def fitEllipseDirect(points) -> typing.Any: + 'fitEllipseDirect(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits a set of 2D points.\n. It returns the rotated rectangle in which the ellipse is inscribed.\n. The Direct least square (Direct) method by @cite Fitzgibbon1999 is used.\n. \n. For an ellipse, this basis set is \\f$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) \\f$,\n. which is a set of six free coefficients \\f$ A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} \\f$.\n. However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \\f$ (a,b) \\f$,\n. the position \\f$ (x_0,y_0) \\f$, and the orientation \\f$ \\theta \\f$. This is because the basis set includes lines,\n. quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits.\n. The Direct method confines the fit to ellipses by ensuring that \\f$ 4 A_{xx} A_{yy}- A_{xy}^2 > 0 \\f$.\n. The condition imposed is that \\f$ 4 A_{xx} A_{yy}- A_{xy}^2=1 \\f$ which satisfies the inequality\n. and as the coefficients can be arbitrarily scaled is not overly restrictive.\n. \n. \\f{equation*}{\n. \\epsilon ^2= A^T D^T D A \\quad \\text{with} \\quad A^T C A =1 \\quad \\text{and} \\quad C=\\left(\\begin{matrix}\n. 0 & 0 & 2 & 0 & 0 & 0 \\\\\n. 0 & -1 & 0 & 0 & 0 & 0 \\\\\n. 2 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0\n. \\end{matrix} \\right)\n. \\f}\n. \n. The minimum cost is found by solving the generalized eigenvalue problem.\n. \n. \\f{equation*}{\n. D^T D A = \\lambda \\left( C\\right) A\n. \\f}\n. \n. The system produces only one positive eigenvalue \\f$ \\lambda\\f$ which is chosen as the solution\n. with its eigenvector \\f$\\mathbf{u}\\f$. These are used to find the coefficients\n. \n. \\f{equation*}{\n. A = \\sqrt{\\frac{1}{\\mathbf{u}^T C \\mathbf{u}}} \\mathbf{u}\n. \\f}\n. The scaling factor guarantees that \\f$A^T C A =1\\f$.\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' + ... + + +def fitLine(points, distType, param, reps, aeps, line=...) -> typing.Any: + 'fitLine(points, distType, param, reps, aeps[, line]) -> line\n. @brief Fits a line to a 2D or 3D point set.\n. \n. The function fitLine fits a line to a 2D or 3D point set by minimizing \\f$\\sum_i \\rho(r_i)\\f$ where\n. \\f$r_i\\f$ is a distance between the \\f$i^{th}\\f$ point, the line and \\f$\\rho(r)\\f$ is a distance function, one\n. of the following:\n. - DIST_L2\n. \\f[\\rho (r) = r^2/2 \\quad \\text{(the simplest and the fastest least-squares method)}\\f]\n. - DIST_L1\n. \\f[\\rho (r) = r\\f]\n. - DIST_L12\n. \\f[\\rho (r) = 2 \\cdot ( \\sqrt{1 + \\frac{r^2}{2}} - 1)\\f]\n. - DIST_FAIR\n. \\f[\\rho \\left (r \\right ) = C^2 \\cdot \\left ( \\frac{r}{C} - \\log{\\left(1 + \\frac{r}{C}\\right)} \\right ) \\quad \\text{where} \\quad C=1.3998\\f]\n. - DIST_WELSCH\n. \\f[\\rho \\left (r \\right ) = \\frac{C^2}{2} \\cdot \\left ( 1 - \\exp{\\left(-\\left(\\frac{r}{C}\\right)^2\\right)} \\right ) \\quad \\text{where} \\quad C=2.9846\\f]\n. - DIST_HUBER\n. \\f[\\rho (r) = \\fork{r^2/2}{if \\(r < C\\)}{C \\cdot (r-C/2)}{otherwise} \\quad \\text{where} \\quad C=1.345\\f]\n. \n. The algorithm is based on the M-estimator ( ) technique\n. that iteratively fits the line using the weighted least-squares algorithm. After each iteration the\n. weights \\f$w_i\\f$ are adjusted to be inversely proportional to \\f$\\rho(r_i)\\f$ .\n. \n. @param points Input vector of 2D or 3D points, stored in std::vector\\<\\> or Mat.\n. @param line Output line parameters. In case of 2D fitting, it should be a vector of 4 elements\n. (like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line and\n. (x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements (like\n. Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector collinear to the line\n. and (x0, y0, z0) is a point on the line.\n. @param distType Distance used by the M-estimator, see #DistanceTypes\n. @param param Numerical parameter ( C ) for some types of distances. If it is 0, an optimal value\n. is chosen.\n. @param reps Sufficient accuracy for the radius (distance between the coordinate origin and the line).\n. @param aeps Sufficient accuracy for the angle. 0.01 would be a good default value for reps and aeps.' + ... + + +flann_Index = _mod_cv2.flann_Index + + +def flip(src: ndarray, flipCode, dts: ndarray = ...) -> typing.Any: + 'flip(src, flipCode[, dst]) -> dst\n. @brief Flips a 2D array around vertical, horizontal, or both axes.\n. \n. The function cv::flip flips the array in one of three different ways (row\n. and column indices are 0-based):\n. \\f[\\texttt{dst} _{ij} =\n. \\left\\{\n. \\begin{array}{l l}\n. \\texttt{src} _{\\texttt{src.rows}-i-1,j} & if\\; \\texttt{flipCode} = 0 \\\\\n. \\texttt{src} _{i, \\texttt{src.cols} -j-1} & if\\; \\texttt{flipCode} > 0 \\\\\n. \\texttt{src} _{ \\texttt{src.rows} -i-1, \\texttt{src.cols} -j-1} & if\\; \\texttt{flipCode} < 0 \\\\\n. \\end{array}\n. \\right.\\f]\n. The example scenarios of using the function are the following:\n. * Vertical flipping of the image (flipCode == 0) to switch between\n. top-left and bottom-left image origin. This is a typical operation\n. in video processing on Microsoft Windows\\* OS.\n. * Horizontal flipping of the image with the subsequent horizontal\n. shift and absolute difference calculation to check for a\n. vertical-axis symmetry (flipCode \\> 0).\n. * Simultaneous horizontal and vertical flipping of the image with\n. the subsequent shift and absolute difference calculation to check\n. for a central symmetry (flipCode \\< 0).\n. * Reversing the order of point arrays (flipCode \\> 0 or\n. flipCode == 0).\n. @param src input array.\n. @param dst output array of the same size and type as src.\n. @param flipCode a flag to specify how to flip the array; 0 means\n. flipping around the x-axis and positive value (for example, 1) means\n. flipping around y-axis. Negative value (for example, -1) means flipping\n. around both axes.\n. @sa transpose , repeat , completeSymm' + ... + + +def floodFill(image: ndarray, mask: typing.Optional[ndarray], seedPoint, newVal, loDiff=..., upDiff=..., flags: int = ...) -> typing.Any: + "floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]]) -> retval, image, mask, rect\n. @brief Fills a connected component with the given color.\n. \n. The function cv::floodFill fills a connected component starting from the seed point with the specified\n. color. The connectivity is determined by the color/brightness closeness of the neighbor pixels. The\n. pixel at \\f$(x,y)\\f$ is considered to belong to the repainted domain if:\n. \n. - in case of a grayscale image and floating range\n. \\f[\\texttt{src} (x',y')- \\texttt{loDiff} \\leq \\texttt{src} (x,y) \\leq \\texttt{src} (x',y')+ \\texttt{upDiff}\\f]\n. \n. \n. - in case of a grayscale image and fixed range\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)- \\texttt{loDiff} \\leq \\texttt{src} (x,y) \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)+ \\texttt{upDiff}\\f]\n. \n. \n. - in case of a color image and floating range\n. \\f[\\texttt{src} (x',y')_r- \\texttt{loDiff} _r \\leq \\texttt{src} (x,y)_r \\leq \\texttt{src} (x',y')_r+ \\texttt{upDiff} _r,\\f]\n. \\f[\\texttt{src} (x',y')_g- \\texttt{loDiff} _g \\leq \\texttt{src} (x,y)_g \\leq \\texttt{src} (x',y')_g+ \\texttt{upDiff} _g\\f]\n. and\n. \\f[\\texttt{src} (x',y')_b- \\texttt{loDiff} _b \\leq \\texttt{src} (x,y)_b \\leq \\texttt{src} (x',y')_b+ \\texttt{upDiff} _b\\f]\n. \n. \n. - in case of a color image and fixed range\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_r- \\texttt{loDiff} _r \\leq \\texttt{src} (x,y)_r \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_r+ \\texttt{upDiff} _r,\\f]\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_g- \\texttt{loDiff} _g \\leq \\texttt{src} (x,y)_g \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_g+ \\texttt{upDiff} _g\\f]\n. and\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_b- \\texttt{loDiff} _b \\leq \\texttt{src} (x,y)_b \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_b+ \\texttt{upDiff} _b\\f]\n. \n. \n. where \\f$src(x',y')\\f$ is the value of one of pixel neighbors that is already known to belong to the\n. component. That is, to be added to the connected component, a color/brightness of the pixel should\n. be close enough to:\n. - Color/brightness of one of its neighbors that already belong to the connected component in case\n. of a floating range.\n. - Color/brightness of the seed point in case of a fixed range.\n. \n. Use these functions to either mark a connected component with the specified color in-place, or build\n. a mask and then extract the contour, or copy the region to another image, and so on.\n. \n. @param image Input/output 1- or 3-channel, 8-bit, or floating-point image. It is modified by the\n. function unless the #FLOODFILL_MASK_ONLY flag is set in the second variant of the function. See\n. the details below.\n. @param mask Operation mask that should be a single-channel 8-bit image, 2 pixels wider and 2 pixels\n. taller than image. Since this is both an input and output parameter, you must take responsibility\n. of initializing it. Flood-filling cannot go across non-zero pixels in the input mask. For example,\n. an edge detector output can be used as a mask to stop filling at edges. On output, pixels in the\n. mask corresponding to filled pixels in the image are set to 1 or to the a value specified in flags\n. as described below. Additionally, the function fills the border of the mask with ones to simplify\n. internal processing. It is therefore possible to use the same mask in multiple calls to the function\n. to make sure the filled areas do not overlap.\n. @param seedPoint Starting point.\n. @param newVal New value of the repainted domain pixels.\n. @param loDiff Maximal lower brightness/color difference between the currently observed pixel and\n. one of its neighbors belonging to the component, or a seed pixel being added to the component.\n. @param upDiff Maximal upper brightness/color difference between the currently observed pixel and\n. one of its neighbors belonging to the component, or a seed pixel being added to the component.\n. @param rect Optional output parameter set by the function to the minimum bounding rectangle of the\n. repainted domain.\n. @param flags Operation flags. The first 8 bits contain a connectivity value. The default value of\n. 4 means that only the four nearest neighbor pixels (those that share an edge) are considered. A\n. connectivity value of 8 means that the eight nearest neighbor pixels (those that share a corner)\n. will be considered. The next 8 bits (8-16) contain a value between 1 and 255 with which to fill\n. the mask (the default value is 1). For example, 4 | ( 255 \\<\\< 8 ) will consider 4 nearest\n. neighbours and fill the mask with a value of 255. The following additional options occupy higher\n. bits and therefore may be further combined with the connectivity and mask fill values using\n. bit-wise or (|), see #FloodFillFlags.\n. \n. @note Since the mask is larger than the filled image, a pixel \\f$(x, y)\\f$ in image corresponds to the\n. pixel \\f$(x+1, y+1)\\f$ in the mask .\n. \n. @sa findContours" + ... + + +def gemm(src1: ndarray, src2: ndarray, alpha, src3, beta, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'gemm(src1, src2, alpha, src3, beta[, dst[, flags]]) -> dst\n. @brief Performs generalized matrix multiplication.\n. \n. The function cv::gemm performs generalized matrix multiplication similar to the\n. gemm functions in BLAS level 3. For example,\n. `gemm(src1, src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T)`\n. corresponds to\n. \\f[\\texttt{dst} = \\texttt{alpha} \\cdot \\texttt{src1} ^T \\cdot \\texttt{src2} + \\texttt{beta} \\cdot \\texttt{src3} ^T\\f]\n. \n. In case of complex (two-channel) data, performed a complex matrix\n. multiplication.\n. \n. The function can be replaced with a matrix expression. For example, the\n. above call can be replaced with:\n. @code{.cpp}\n. dst = alpha*src1.t()*src2 + beta*src3.t();\n. @endcode\n. @param src1 first multiplied input matrix that could be real(CV_32FC1,\n. CV_64FC1) or complex(CV_32FC2, CV_64FC2).\n. @param src2 second multiplied input matrix of the same type as src1.\n. @param alpha weight of the matrix product.\n. @param src3 third optional delta matrix added to the matrix product; it\n. should have the same type as src1 and src2.\n. @param beta weight of src3.\n. @param dst output matrix; it has the proper size and the same type as\n. input matrices.\n. @param flags operation flags (cv::GemmFlags)\n. @sa mulTransposed , transform' + ... + + +def getAffineTransform(src: ndarray, dts: ndarray) -> typing.Any: + 'getAffineTransform(src, dst) -> retval\n. @overload' + ... + + +def getBuildInformation() -> typing.Any: + 'getBuildInformation() -> retval\n. @brief Returns full configuration time cmake output.\n. \n. Returned value is raw cmake output including version control system revision, compiler version,\n. compiler flags, enabled modules and third party libraries, etc. Output format depends on target\n. architecture.' + ... + + +def getCPUFeaturesLine() -> typing.Any: + 'getCPUFeaturesLine() -> retval\n. @brief Returns list of CPU features enabled during compilation.\n. \n. Returned value is a string containing space separated list of CPU features with following markers:\n. \n. - no markers - baseline features\n. - prefix `*` - features enabled in dispatcher\n. - suffix `?` - features enabled but not available in HW\n. \n. Example: `SSE SSE2 SSE3 *SSE4.1 *SSE4.2 *FP16 *AVX *AVX2 *AVX512-SKX?`' + ... + + +def getCPUTickCount() -> typing.Any: + 'getCPUTickCount() -> retval\n. @brief Returns the number of CPU ticks.\n. \n. The function returns the current number of CPU ticks on some architectures (such as x86, x64,\n. PowerPC). On other platforms the function is equivalent to getTickCount. It can also be used for\n. very accurate time measurements, as well as for RNG initialization. Note that in case of multi-CPU\n. systems a thread, from which getCPUTickCount is called, can be suspended and resumed at another CPU\n. with its own counter. So, theoretically (and practically) the subsequent calls to the function do\n. not necessary return the monotonously increasing values. Also, since a modern CPU varies the CPU\n. frequency depending on the load, the number of CPU clocks spent in some code cannot be directly\n. converted to time units. Therefore, getTickCount is generally a preferable solution for measuring\n. execution time.' + ... + + +def getDefaultNewCameraMatrix(cameraMatrix, imgsize=..., centerPrincipalPoint=...) -> typing.Any: + 'getDefaultNewCameraMatrix(cameraMatrix[, imgsize[, centerPrincipalPoint]]) -> retval\n. @brief Returns the default new camera matrix.\n. \n. The function returns the camera matrix that is either an exact copy of the input cameraMatrix (when\n. centerPrinicipalPoint=false ), or the modified one (when centerPrincipalPoint=true).\n. \n. In the latter case, the new camera matrix will be:\n. \n. \\f[\\begin{bmatrix} f_x && 0 && ( \\texttt{imgSize.width} -1)*0.5 \\\\ 0 && f_y && ( \\texttt{imgSize.height} -1)*0.5 \\\\ 0 && 0 && 1 \\end{bmatrix} ,\\f]\n. \n. where \\f$f_x\\f$ and \\f$f_y\\f$ are \\f$(0,0)\\f$ and \\f$(1,1)\\f$ elements of cameraMatrix, respectively.\n. \n. By default, the undistortion functions in OpenCV (see #initUndistortRectifyMap, #undistort) do not\n. move the principal point. However, when you work with stereo, it is important to move the principal\n. points in both views to the same y-coordinate (which is required by most of stereo correspondence\n. algorithms), and may be to the same x-coordinate too. So, you can form the new camera matrix for\n. each view where the principal points are located at the center.\n. \n. @param cameraMatrix Input camera matrix.\n. @param imgsize Camera view image size in pixels.\n. @param centerPrincipalPoint Location of the principal point in the new camera matrix. The\n. parameter indicates whether this location should be at the image center or not.' + ... + + +def getDerivKernels(dx, dy, ksize, kx=..., ky=..., normalize=..., ktype=...) -> typing.Any: + 'getDerivKernels(dx, dy, ksize[, kx[, ky[, normalize[, ktype]]]]) -> kx, ky\n. @brief Returns filter coefficients for computing spatial image derivatives.\n. \n. The function computes and returns the filter coefficients for spatial image derivatives. When\n. `ksize=FILTER_SCHARR`, the Scharr \\f$3 \\times 3\\f$ kernels are generated (see #Scharr). Otherwise, Sobel\n. kernels are generated (see #Sobel). The filters are normally passed to #sepFilter2D or to\n. \n. @param kx Output matrix of row filter coefficients. It has the type ktype .\n. @param ky Output matrix of column filter coefficients. It has the type ktype .\n. @param dx Derivative order in respect of x.\n. @param dy Derivative order in respect of y.\n. @param ksize Aperture size. It can be FILTER_SCHARR, 1, 3, 5, or 7.\n. @param normalize Flag indicating whether to normalize (scale down) the filter coefficients or not.\n. Theoretically, the coefficients should have the denominator \\f$=2^{ksize*2-dx-dy-2}\\f$. If you are\n. going to filter floating-point images, you are likely to use the normalized kernels. But if you\n. compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve\n. all the fractional bits, you may want to set normalize=false .\n. @param ktype Type of filter coefficients. It can be CV_32f or CV_64F .' + ... + + +def getFontScaleFromHeight(fontFace, pixelHeight, thickness=...) -> typing.Any: + 'getFontScaleFromHeight(fontFace, pixelHeight[, thickness]) -> retval\n. @brief Calculates the font-specific size to use to achieve a given height in pixels.\n. \n. @param fontFace Font to use, see cv::HersheyFonts.\n. @param pixelHeight Pixel height to compute the fontScale for\n. @param thickness Thickness of lines used to render the text.See putText for details.\n. @return The fontSize to use for cv::putText\n. \n. @see cv::putText' + ... + + +def getGaborKernel(ksize, sigma, theta, lambd, gamma, psi=..., ktype=...) -> typing.Any: + 'getGaborKernel(ksize, sigma, theta, lambd, gamma[, psi[, ktype]]) -> retval\n. @brief Returns Gabor filter coefficients.\n. \n. For more details about gabor filter equations and parameters, see: [Gabor\n. Filter](http://en.wikipedia.org/wiki/Gabor_filter).\n. \n. @param ksize Size of the filter returned.\n. @param sigma Standard deviation of the gaussian envelope.\n. @param theta Orientation of the normal to the parallel stripes of a Gabor function.\n. @param lambd Wavelength of the sinusoidal factor.\n. @param gamma Spatial aspect ratio.\n. @param psi Phase offset.\n. @param ktype Type of filter coefficients. It can be CV_32F or CV_64F .' + ... + + +def getGaussianKernel(ksize, sigma, ktype=...) -> typing.Any: + 'getGaussianKernel(ksize, sigma[, ktype]) -> retval\n. @brief Returns Gaussian filter coefficients.\n. \n. The function computes and returns the \\f$\\texttt{ksize} \\times 1\\f$ matrix of Gaussian filter\n. coefficients:\n. \n. \\f[G_i= \\alpha *e^{-(i-( \\texttt{ksize} -1)/2)^2/(2* \\texttt{sigma}^2)},\\f]\n. \n. where \\f$i=0..\\texttt{ksize}-1\\f$ and \\f$\\alpha\\f$ is the scale factor chosen so that \\f$\\sum_i G_i=1\\f$.\n. \n. Two of such generated kernels can be passed to sepFilter2D. Those functions automatically recognize\n. smoothing kernels (a symmetrical kernel with sum of weights equal to 1) and handle them accordingly.\n. You may also use the higher-level GaussianBlur.\n. @param ksize Aperture size. It should be odd ( \\f$\\texttt{ksize} \\mod 2 = 1\\f$ ) and positive.\n. @param sigma Gaussian standard deviation. If it is non-positive, it is computed from ksize as\n. `sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8`.\n. @param ktype Type of filter coefficients. It can be CV_32F or CV_64F .\n. @sa sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur' + ... + + +def getHardwareFeatureName(feature) -> typing.Any: + 'getHardwareFeatureName(feature) -> retval\n. @brief Returns feature name by ID\n. \n. Returns empty string if feature is not defined' + ... + + +def getNumThreads() -> typing.Any: + 'getNumThreads() -> retval\n. @brief Returns the number of threads used by OpenCV for parallel regions.\n. \n. Always returns 1 if OpenCV is built without threading support.\n. \n. The exact meaning of return value depends on the threading framework used by OpenCV library:\n. - `TBB` - The number of threads, that OpenCV will try to use for parallel regions. If there is\n. any tbb::thread_scheduler_init in user code conflicting with OpenCV, then function returns\n. default number of threads used by TBB library.\n. - `OpenMP` - An upper bound on the number of threads that could be used to form a new team.\n. - `Concurrency` - The number of threads, that OpenCV will try to use for parallel regions.\n. - `GCD` - Unsupported; returns the GCD thread pool limit (512) for compatibility.\n. - `C=` - The number of threads, that OpenCV will try to use for parallel regions, if before\n. called setNumThreads with threads \\> 0, otherwise returns the number of logical CPUs,\n. available for the process.\n. @sa setNumThreads, getThreadNum' + ... + + +def getNumberOfCPUs() -> typing.Any: + 'getNumberOfCPUs() -> retval\n. @brief Returns the number of logical CPUs available for the process.' + ... + + +def getOptimalDFTSize(vecsize) -> typing.Any: + "getOptimalDFTSize(vecsize) -> retval\n. @brief Returns the optimal DFT size for a given vector size.\n. \n. DFT performance is not a monotonic function of a vector size. Therefore, when you calculate\n. convolution of two arrays or perform the spectral analysis of an array, it usually makes sense to\n. pad the input data with zeros to get a bit larger array that can be transformed much faster than the\n. original one. Arrays whose size is a power-of-two (2, 4, 8, 16, 32, ...) are the fastest to process.\n. Though, the arrays whose size is a product of 2's, 3's, and 5's (for example, 300 = 5\\*5\\*3\\*2\\*2)\n. are also processed quite efficiently.\n. \n. The function cv::getOptimalDFTSize returns the minimum number N that is greater than or equal to vecsize\n. so that the DFT of a vector of size N can be processed efficiently. In the current implementation N\n. = 2 ^p^ \\* 3 ^q^ \\* 5 ^r^ for some integer p, q, r.\n. \n. The function returns a negative number if vecsize is too large (very close to INT_MAX ).\n. \n. While the function cannot be used directly to estimate the optimal vector size for DCT transform\n. (since the current DCT implementation supports only even-size vectors), it can be easily processed\n. as getOptimalDFTSize((vecsize+1)/2)\\*2.\n. @param vecsize vector size.\n. @sa dft , dct , idft , idct , mulSpectrums" + ... + + +def getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha, newImgSize=..., centerPrincipalPoint=...) -> typing.Any: + 'getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha[, newImgSize[, centerPrincipalPoint]]) -> retval, validPixROI\n. @brief Returns the new camera matrix based on the free scaling parameter.\n. \n. @param cameraMatrix Input camera matrix.\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param imageSize Original image size.\n. @param alpha Free scaling parameter between 0 (when all the pixels in the undistorted image are\n. valid) and 1 (when all the source image pixels are retained in the undistorted image). See\n. stereoRectify for details.\n. @param newImgSize Image size after rectification. By default, it is set to imageSize .\n. @param validPixROI Optional output rectangle that outlines all-good-pixels region in the\n. undistorted image. See roi1, roi2 description in stereoRectify .\n. @param centerPrincipalPoint Optional flag that indicates whether in the new camera matrix the\n. principal point should be at the image center or not. By default, the principal point is chosen to\n. best fit a subset of the source image (determined by alpha) to the corrected image.\n. @return new_camera_matrix Output new camera matrix.\n. \n. The function computes and returns the optimal new camera matrix based on the free scaling parameter.\n. By varying this parameter, you may retrieve only sensible pixels alpha=0 , keep all the original\n. image pixels if there is valuable information in the corners alpha=1 , or get something in between.\n. When alpha\\>0 , the undistorted result is likely to have some black pixels corresponding to\n. "virtual" pixels outside of the captured distorted image. The original camera matrix, distortion\n. coefficients, the computed new camera matrix, and newImageSize should be passed to\n. initUndistortRectifyMap to produce the maps for remap .' + ... + + +def getPerspectiveTransform(src: ndarray, dts: ndarray, solveMethod=...) -> typing.Any: + "getPerspectiveTransform(src, dst[, solveMethod]) -> retval\n. @brief Calculates a perspective transform from four pairs of the corresponding points.\n. \n. The function calculates the \\f$3 \\times 3\\f$ matrix of a perspective transform so that:\n. \n. \\f[\\begin{bmatrix} t_i x'_i \\\\ t_i y'_i \\\\ t_i \\end{bmatrix} = \\texttt{map_matrix} \\cdot \\begin{bmatrix} x_i \\\\ y_i \\\\ 1 \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2,3\\f]\n. \n. @param src Coordinates of quadrangle vertices in the source image.\n. @param dst Coordinates of the corresponding quadrangle vertices in the destination image.\n. @param solveMethod method passed to cv::solve (#DecompTypes)\n. \n. @sa findHomography, warpPerspective, perspectiveTransform" + ... + + +def getRectSubPix(image: ndarray, patchSize, center, patch=..., patchType=...) -> typing.Any: + 'getRectSubPix(image, patchSize, center[, patch[, patchType]]) -> patch\n. @brief Retrieves a pixel rectangle from an image with sub-pixel accuracy.\n. \n. The function getRectSubPix extracts pixels from src:\n. \n. \\f[patch(x, y) = src(x + \\texttt{center.x} - ( \\texttt{dst.cols} -1)*0.5, y + \\texttt{center.y} - ( \\texttt{dst.rows} -1)*0.5)\\f]\n. \n. where the values of the pixels at non-integer coordinates are retrieved using bilinear\n. interpolation. Every channel of multi-channel images is processed independently. Also\n. the image should be a single channel or three channel image. While the center of the\n. rectangle must be inside the image, parts of the rectangle may be outside.\n. \n. @param image Source image.\n. @param patchSize Size of the extracted patch.\n. @param center Floating point coordinates of the center of the extracted rectangle within the\n. source image. The center must be inside the image.\n. @param patch Extracted patch that has the size patchSize and the same number of channels as src .\n. @param patchType Depth of the extracted pixels. By default, they have the same depth as src .\n. \n. @sa warpAffine, warpPerspective' + ... + + +def getRotationMatrix2D(center, angle, scale) -> typing.Any: + 'getRotationMatrix2D(center, angle, scale) -> retval\n. @brief Calculates an affine matrix of 2D rotation.\n. \n. The function calculates the following matrix:\n. \n. \\f[\\begin{bmatrix} \\alpha & \\beta & (1- \\alpha ) \\cdot \\texttt{center.x} - \\beta \\cdot \\texttt{center.y} \\\\ - \\beta & \\alpha & \\beta \\cdot \\texttt{center.x} + (1- \\alpha ) \\cdot \\texttt{center.y} \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[\\begin{array}{l} \\alpha = \\texttt{scale} \\cdot \\cos \\texttt{angle} , \\\\ \\beta = \\texttt{scale} \\cdot \\sin \\texttt{angle} \\end{array}\\f]\n. \n. The transformation maps the rotation center to itself. If this is not the target, adjust the shift.\n. \n. @param center Center of the rotation in the source image.\n. @param angle Rotation angle in degrees. Positive values mean counter-clockwise rotation (the\n. coordinate origin is assumed to be the top-left corner).\n. @param scale Isotropic scale factor.\n. \n. @sa getAffineTransform, warpAffine, transform' + ... + + +def getStructuringElement(shape, ksize, anchor=...) -> typing.Any: + 'getStructuringElement(shape, ksize[, anchor]) -> retval\n. @brief Returns a structuring element of the specified size and shape for morphological operations.\n. \n. The function constructs and returns the structuring element that can be further passed to #erode,\n. #dilate or #morphologyEx. But you can also construct an arbitrary binary mask yourself and use it as\n. the structuring element.\n. \n. @param shape Element shape that could be one of #MorphShapes\n. @param ksize Size of the structuring element.\n. @param anchor Anchor position within the element. The default value \\f$(-1, -1)\\f$ means that the\n. anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor\n. position. In other cases the anchor just regulates how much the result of the morphological\n. operation is shifted.' + ... + + +def getTextSize(text, fontFace, fontScale, thickness) -> typing.Any: + 'getTextSize(text, fontFace, fontScale, thickness) -> retval, baseLine\n. @brief Calculates the width and height of a text string.\n. \n. The function cv::getTextSize calculates and returns the size of a box that contains the specified text.\n. That is, the following code renders some text, the tight box surrounding it, and the baseline: :\n. @code\n. String text = "Funny text inside the box";\n. int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX;\n. double fontScale = 2;\n. int thickness = 3;\n. \n. Mat img(600, 800, CV_8UC3, Scalar::all(0));\n. \n. int baseline=0;\n. Size textSize = getTextSize(text, fontFace,\n. fontScale, thickness, &baseline);\n. baseline += thickness;\n. \n. // center the text\n. Point textOrg((img.cols - textSize.width)/2,\n. (img.rows + textSize.height)/2);\n. \n. // draw the box\n. rectangle(img, textOrg + Point(0, baseline),\n. textOrg + Point(textSize.width, -textSize.height),\n. Scalar(0,0,255));\n. // ... and the baseline first\n. line(img, textOrg + Point(0, thickness),\n. textOrg + Point(textSize.width, thickness),\n. Scalar(0, 0, 255));\n. \n. // then put the text itself\n. putText(img, text, textOrg, fontFace, fontScale,\n. Scalar::all(255), thickness, 8);\n. @endcode\n. \n. @param text Input text string.\n. @param fontFace Font to use, see #HersheyFonts.\n. @param fontScale Font scale factor that is multiplied by the font-specific base size.\n. @param thickness Thickness of lines used to render the text. See #putText for details.\n. @param[out] baseLine y-coordinate of the baseline relative to the bottom-most text\n. point.\n. @return The size of a box that contains the specified text.\n. \n. @see putText' + ... + + +def getThreadNum() -> typing.Any: + "getThreadNum() -> retval\n. @brief Returns the index of the currently executed thread within the current parallel region. Always\n. returns 0 if called outside of parallel region.\n. \n. @deprecated Current implementation doesn't corresponding to this documentation.\n. \n. The exact meaning of the return value depends on the threading framework used by OpenCV library:\n. - `TBB` - Unsupported with current 4.1 TBB release. Maybe will be supported in future.\n. - `OpenMP` - The thread number, within the current team, of the calling thread.\n. - `Concurrency` - An ID for the virtual processor that the current context is executing on (0\n. for master thread and unique number for others, but not necessary 1,2,3,...).\n. - `GCD` - System calling thread's ID. Never returns 0 inside parallel region.\n. - `C=` - The index of the current parallel task.\n. @sa setNumThreads, getNumThreads" + ... + + +def getTickCount() -> typing.Any: + 'getTickCount() -> retval\n. @brief Returns the number of ticks.\n. \n. The function returns the number of ticks after the certain event (for example, when the machine was\n. turned on). It can be used to initialize RNG or to measure a function execution time by reading the\n. tick count before and after the function call.\n. @sa getTickFrequency, TickMeter' + ... + + +def getTickFrequency() -> typing.Any: + 'getTickFrequency() -> retval\n. @brief Returns the number of ticks per second.\n. \n. The function returns the number of ticks per second. That is, the following code computes the\n. execution time in seconds:\n. @code\n. double t = (double)getTickCount();\n. // do something ...\n. t = ((double)getTickCount() - t)/getTickFrequency();\n. @endcode\n. @sa getTickCount, TickMeter' + ... + + +def getTrackbarPos(trackbarname, winname) -> typing.Any: + 'getTrackbarPos(trackbarname, winname) -> retval\n. @brief Returns the trackbar position.\n. \n. The function returns the current position of the specified trackbar.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of the trackbar.' + ... + + +def getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize) -> typing.Any: + 'getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize) -> retval\n.' + ... + + +def getVersionMajor() -> typing.Any: + 'getVersionMajor() -> retval\n. @brief Returns major library version' + ... + + +def getVersionMinor() -> typing.Any: + 'getVersionMinor() -> retval\n. @brief Returns minor library version' + ... + + +def getVersionRevision() -> typing.Any: + 'getVersionRevision() -> retval\n. @brief Returns revision field of the library version' + ... + + +def getVersionString() -> typing.Any: + 'getVersionString() -> retval\n. @brief Returns library version string\n. \n. For example "3.4.1-dev".\n. \n. @sa getMajorVersion, getMinorVersion, getRevisionVersion' + ... + + +def getWindowImageRect(winname) -> typing.Any: + 'getWindowImageRect(winname) -> retval\n. @brief Provides rectangle of image in the window.\n. \n. The function getWindowImageRect returns the client screen coordinates, width and height of the image rendering area.\n. \n. @param winname Name of the window.\n. \n. @sa resizeWindow moveWindow' + ... + + +def getWindowProperty(winname, prop_id) -> typing.Any: + 'getWindowProperty(winname, prop_id) -> retval\n. @brief Provides parameters of a window.\n. \n. The function getWindowProperty returns properties of a window.\n. \n. @param winname Name of the window.\n. @param prop_id Window property to retrieve. The following operation flags are available: (cv::WindowPropertyFlags)\n. \n. @sa setWindowProperty' + ... + + +def goodFeaturesToTrack(image: ndarray, maxCorners, qualityLevel, minDistance, corners=..., mask: ndarray = ..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: + 'goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) -> corners\n. @brief Determines strong corners on an image.\n. \n. The function finds the most prominent corners in the image or in the specified image region, as\n. described in @cite Shi94\n. \n. - Function calculates the corner quality measure at every source image pixel using the\n. #cornerMinEigenVal or #cornerHarris .\n. - Function performs a non-maximum suppression (the local maximums in *3 x 3* neighborhood are\n. retained).\n. - The corners with the minimal eigenvalue less than\n. \\f$\\texttt{qualityLevel} \\cdot \\max_{x,y} qualityMeasureMap(x,y)\\f$ are rejected.\n. - The remaining corners are sorted by the quality measure in the descending order.\n. - Function throws away each corner for which there is a stronger corner at a distance less than\n. maxDistance.\n. \n. The function can be used to initialize a point-based tracker of an object.\n. \n. @note If the function is called with different values A and B of the parameter qualityLevel , and\n. A \\> B, the vector of returned corners with qualityLevel=A will be the prefix of the output vector\n. with qualityLevel=B .\n. \n. @param image Input 8-bit or floating-point 32-bit, single-channel image.\n. @param corners Output vector of detected corners.\n. @param maxCorners Maximum number of corners to return. If there are more corners than are found,\n. the strongest of them is returned. `maxCorners <= 0` implies that no limit on the maximum is set\n. and all detected corners are returned.\n. @param qualityLevel Parameter characterizing the minimal accepted quality of image corners. The\n. parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue\n. (see #cornerMinEigenVal ) or the Harris function response (see #cornerHarris ). The corners with the\n. quality measure less than the product are rejected. For example, if the best corner has the\n. quality measure = 1500, and the qualityLevel=0.01 , then all the corners with the quality measure\n. less than 15 are rejected.\n. @param minDistance Minimum possible Euclidean distance between the returned corners.\n. @param mask Optional region of interest. If the image is not empty (it needs to have the type\n. CV_8UC1 and the same size as image ), it specifies the region in which the corners are detected.\n. @param blockSize Size of an average block for computing a derivative covariation matrix over each\n. pixel neighborhood. See cornerEigenValsAndVecs .\n. @param useHarrisDetector Parameter indicating whether to use a Harris detector (see #cornerHarris)\n. or #cornerMinEigenVal.\n. @param k Free parameter of the Harris detector.\n. \n. @sa cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform,\n\n\n\ngoodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, mask, blockSize, gradientSize[, corners[, useHarrisDetector[, k]]]) -> corners\n.' + ... + + +def grabCut(img: ndarray, mask: typing.Optional[ndarray], rect, bgdModel, fgdModel, iterCount, mode=...) -> typing.Any: + 'grabCut(img, mask, rect, bgdModel, fgdModel, iterCount[, mode]) -> mask, bgdModel, fgdModel\n. @brief Runs the GrabCut algorithm.\n. \n. The function implements the [GrabCut image segmentation algorithm](http://en.wikipedia.org/wiki/GrabCut).\n. \n. @param img Input 8-bit 3-channel image.\n. @param mask Input/output 8-bit single-channel mask. The mask is initialized by the function when\n. mode is set to #GC_INIT_WITH_RECT. Its elements may have one of the #GrabCutClasses.\n. @param rect ROI containing a segmented object. The pixels outside of the ROI are marked as\n. "obvious background". The parameter is only used when mode==#GC_INIT_WITH_RECT .\n. @param bgdModel Temporary array for the background model. Do not modify it while you are\n. processing the same image.\n. @param fgdModel Temporary arrays for the foreground model. Do not modify it while you are\n. processing the same image.\n. @param iterCount Number of iterations the algorithm should make before returning the result. Note\n. that the result can be refined with further calls with mode==#GC_INIT_WITH_MASK or\n. mode==GC_EVAL .\n. @param mode Operation mode that could be one of the #GrabCutModes' + ... + + +def groupRectangles(rectList, groupThreshold, eps=...) -> typing.Any: + 'groupRectangles(rectList, groupThreshold[, eps]) -> rectList, weights\n. @overload' + ... + + +def haveImageReader(filename: str) -> typing.Any: + 'haveImageReader(filename) -> retval\n. @brief Returns true if the specified image can be decoded by OpenCV\n. \n. @param filename File name of the image' + ... + + +def haveImageWriter(filename: str) -> typing.Any: + 'haveImageWriter(filename) -> retval\n. @brief Returns true if an image with the specified filename can be encoded by OpenCV\n. \n. @param filename File name of the image' + ... + + +def haveOpenVX() -> typing.Any: + 'haveOpenVX() -> retval\n.' + ... + + +def hconcat(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'hconcat(src[, dst]) -> dst\n. @overload\n. @code{.cpp}\n. std::vector matrices = { cv::Mat(4, 1, CV_8UC1, cv::Scalar(1)),\n. cv::Mat(4, 1, CV_8UC1, cv::Scalar(2)),\n. cv::Mat(4, 1, CV_8UC1, cv::Scalar(3)),};\n. \n. cv::Mat out;\n. cv::hconcat( matrices, out );\n. //out:\n. //[1, 2, 3;\n. // 1, 2, 3;\n. // 1, 2, 3;\n. // 1, 2, 3]\n. @endcode\n. @param src input array or vector of matrices. all of the matrices must have the same number of rows and the same depth.\n. @param dst output array. It has the same number of rows and depth as the src, and the sum of cols of the src.\n. same depth.' + ... + + +def idct(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'idct(src[, dst[, flags]]) -> dst\n. @brief Calculates the inverse Discrete Cosine Transform of a 1D or 2D array.\n. \n. idct(src, dst, flags) is equivalent to dct(src, dst, flags | DCT_INVERSE).\n. @param src input floating-point single-channel array.\n. @param dst output array of the same size and type as src.\n. @param flags operation flags.\n. @sa dct, dft, idft, getOptimalDFTSize' + ... + + +def idft(src: ndarray, dts: ndarray = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: + 'idft(src[, dst[, flags[, nonzeroRows]]]) -> dst\n. @brief Calculates the inverse Discrete Fourier Transform of a 1D or 2D array.\n. \n. idft(src, dst, flags) is equivalent to dft(src, dst, flags | #DFT_INVERSE) .\n. @note None of dft and idft scales the result by default. So, you should pass #DFT_SCALE to one of\n. dft or idft explicitly to make these transforms mutually inverse.\n. @sa dft, dct, idct, mulSpectrums, getOptimalDFTSize\n. @param src input floating-point real or complex array.\n. @param dst output array whose size and type depend on the flags.\n. @param flags operation flags (see dft and #DftFlags).\n. @param nonzeroRows number of dst rows to process; the rest of the rows have undefined content (see\n. the convolution sample in dft description.' + ... + + +def illuminationChange(src: ndarray, mask: ndarray, dts: ndarray = ..., alpha=..., beta=...) -> typing.Any: + 'illuminationChange(src, mask[, dst[, alpha[, beta]]]) -> dst\n. @brief Applying an appropriate non-linear transformation to the gradient field inside the selection and\n. then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param alpha Value ranges between 0-2.\n. @param beta Value ranges between 0-2.\n. \n. This is useful to highlight under-exposed foreground objects or to reduce specular reflections.' + ... + + +def imdecode(buf, flags: int) -> typing.Any: + 'imdecode(buf, flags) -> retval\n. @brief Reads an image from a buffer in memory.\n. \n. The function imdecode reads an image from the specified buffer in the memory. If the buffer is too short or\n. contains invalid data, the function returns an empty matrix ( Mat::data==NULL ).\n. \n. See cv::imread for the list of supported formats and flags description.\n. \n. @note In the case of color images, the decoded images will have the channels stored in **B G R** order.\n. @param buf Input array or vector of bytes.\n. @param flags The same flags as in cv::imread, see cv::ImreadModes.' + ... + + +def imencode(ext, img: ndarray, params=...) -> typing.Any: + 'imencode(ext, img[, params]) -> retval, buf\n. @brief Encodes an image into a memory buffer.\n. \n. The function imencode compresses the image and stores it in the memory buffer that is resized to fit the\n. result. See cv::imwrite for the list of supported formats and flags description.\n. \n. @param ext File extension that defines the output format.\n. @param img Image to be written.\n. @param buf Output buffer resized to fit the compressed image.\n. @param params Format-specific parameters. See cv::imwrite and cv::ImwriteFlags.' + ... + + +def imread(filename: str, flags: int = ...) -> ndarray: + 'imread(filename[, flags]) -> retval\n. @brief Loads an image from a file.\n. \n. @anchor imread\n. \n. The function imread loads an image from the specified file and returns it. If the image cannot be\n. read (because of missing file, improper permissions, unsupported or invalid format), the function\n. returns an empty matrix ( Mat::data==NULL ).\n. \n. Currently, the following file formats are supported:\n. \n. - Windows bitmaps - \\*.bmp, \\*.dib (always supported)\n. - JPEG files - \\*.jpeg, \\*.jpg, \\*.jpe (see the *Note* section)\n. - JPEG 2000 files - \\*.jp2 (see the *Note* section)\n. - Portable Network Graphics - \\*.png (see the *Note* section)\n. - WebP - \\*.webp (see the *Note* section)\n. - Portable image format - \\*.pbm, \\*.pgm, \\*.ppm \\*.pxm, \\*.pnm (always supported)\n. - PFM files - \\*.pfm (see the *Note* section)\n. - Sun rasters - \\*.sr, \\*.ras (always supported)\n. - TIFF files - \\*.tiff, \\*.tif (see the *Note* section)\n. - OpenEXR Image files - \\*.exr (see the *Note* section)\n. - Radiance HDR - \\*.hdr, \\*.pic (always supported)\n. - Raster and Vector geospatial data supported by GDAL (see the *Note* section)\n. \n. @note\n. - The function determines the type of an image by the content, not by the file extension.\n. - In the case of color images, the decoded images will have the channels stored in **B G R** order.\n. - When using IMREAD_GRAYSCALE, the codec\'s internal grayscale conversion will be used, if available.\n. Results may differ to the output of cvtColor()\n. - On Microsoft Windows\\* OS and MacOSX\\*, the codecs shipped with an OpenCV image (libjpeg,\n. libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs,\n. and TIFFs. On MacOSX, there is also an option to use native MacOSX image readers. But beware\n. that currently these native image loaders give images with different pixel values because of\n. the color management embedded into MacOSX.\n. - On Linux\\*, BSD flavors and other Unix-like open-source operating systems, OpenCV looks for\n. codecs supplied with an OS image. Install the relevant packages (do not forget the development\n. files, for example, "libjpeg-dev", in Debian\\* and Ubuntu\\*) to get the codec support or turn\n. on the OPENCV_BUILD_3RDPARTY_LIBS flag in CMake.\n. - In the case you set *WITH_GDAL* flag to true in CMake and @ref IMREAD_LOAD_GDAL to load the image,\n. then the [GDAL](http://www.gdal.org) driver will be used in order to decode the image, supporting\n. the following formats: [Raster](http://www.gdal.org/formats_list.html),\n. [Vector](http://www.gdal.org/ogr_formats.html).\n. - If EXIF information is embedded in the image file, the EXIF orientation will be taken into account\n. and thus the image will be rotated accordingly except if the flags @ref IMREAD_IGNORE_ORIENTATION\n. or @ref IMREAD_UNCHANGED are passed.\n. - Use the IMREAD_UNCHANGED flag to keep the floating point values from PFM image.\n. - By default number of pixels must be less than 2^30. Limit can be set using system\n. variable OPENCV_IO_MAX_IMAGE_PIXELS\n. \n. @param filename Name of file to be loaded.\n. @param flags Flag that can take values of cv::ImreadModes' + ... + + +def imreadmulti(filename: str, mats=..., flags: int = ...) -> typing.Any: + 'imreadmulti(filename[, mats[, flags]]) -> retval, mats\n. @brief Loads a multi-page image from a file.\n. \n. The function imreadmulti loads a multi-page image from the specified file into a vector of Mat objects.\n. @param filename Name of file to be loaded.\n. @param flags Flag that can take values of cv::ImreadModes, default with cv::IMREAD_ANYCOLOR.\n. @param mats A vector of Mat objects holding each page, if more than one.\n. @sa cv::imread' + ... + + +def imshow(winname, mat) -> typing.Any: + 'imshow(winname, mat) -> None\n. @brief Displays an image in the specified window.\n. \n. The function imshow displays an image in the specified window. If the window was created with the\n. cv::WINDOW_AUTOSIZE flag, the image is shown with its original size, however it is still limited by the screen resolution.\n. Otherwise, the image is scaled to fit the window. The function may scale the image, depending on its depth:\n. \n. - If the image is 8-bit unsigned, it is displayed as is.\n. - If the image is 16-bit unsigned or 32-bit integer, the pixels are divided by 256. That is, the\n. value range [0,255\\*256] is mapped to [0,255].\n. - If the image is 32-bit or 64-bit floating-point, the pixel values are multiplied by 255. That is, the\n. value range [0,1] is mapped to [0,255].\n. \n. If window was created with OpenGL support, cv::imshow also support ogl::Buffer , ogl::Texture2D and\n. cuda::GpuMat as input.\n. \n. If the window was not created before this function, it is assumed creating a window with cv::WINDOW_AUTOSIZE.\n. \n. If you need to show an image that is bigger than the screen resolution, you will need to call namedWindow("", WINDOW_NORMAL) before the imshow.\n. \n. @note This function should be followed by cv::waitKey function which displays the image for specified\n. milliseconds. Otherwise, it won\'t display the image. For example, **waitKey(0)** will display the window\n. infinitely until any keypress (it is suitable for image display). **waitKey(25)** will display a frame\n. for 25 ms, after which display will be automatically closed. (If you put it in a loop to read\n. videos, it will display the video frame-by-frame)\n. \n. @note\n. \n. [__Windows Backend Only__] Pressing Ctrl+C will copy the image to the clipboard.\n. \n. [__Windows Backend Only__] Pressing Ctrl+S will show a dialog to save the image.\n. \n. @param winname Name of the window.\n. @param mat Image to be shown.' + ... + + +def imwrite(filename: str, img: ndarray, params: typing.List[int] = ...) -> bool: + "imwrite(filename, img[, params]) -> retval\n. @brief Saves an image to a specified file.\n. \n. The function imwrite saves the image to the specified file. The image format is chosen based on the\n. filename extension (see cv::imread for the list of extensions). In general, only 8-bit\n. single-channel or 3-channel (with 'BGR' channel order) images\n. can be saved using this function, with these exceptions:\n. \n. - 16-bit unsigned (CV_16U) images can be saved in the case of PNG, JPEG 2000, and TIFF formats\n. - 32-bit float (CV_32F) images can be saved in PFM, TIFF, OpenEXR, and Radiance HDR formats;\n. 3-channel (CV_32FC3) TIFF images will be saved using the LogLuv high dynamic range encoding\n. (4 bytes per pixel)\n. - PNG images with an alpha channel can be saved using this function. To do this, create\n. 8-bit (or 16-bit) 4-channel image BGRA, where the alpha channel goes last. Fully transparent pixels\n. should have alpha set to 0, fully opaque pixels should have alpha set to 255/65535 (see the code sample below).\n. - Multiple images (vector of Mat) can be saved in TIFF format (see the code sample below).\n. \n. If the format, depth or channel order is different, use\n. Mat::convertTo and cv::cvtColor to convert it before saving. Or, use the universal FileStorage I/O\n. functions to save the image to XML or YAML format.\n. \n. The sample below shows how to create a BGRA image, how to set custom compression parameters and save it to a PNG file.\n. It also demonstrates how to save multiple images in a TIFF file:\n. @include snippets/imgcodecs_imwrite.cpp\n. @param filename Name of the file.\n. @param img (Mat or vector of Mat) Image or Images to be saved.\n. @param params Format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .) see cv::ImwriteFlags" + ... + + +def inRange(src: ndarray, lowerBound: ndarray, upperbBound: ndarray, dts: ndarray = ...) -> ndarray: + 'inRange(src, lowerBound, upperbBound[, dst]) -> dst\n. @brief Checks if array elements lie between the elements of two other arrays.\n. \n. The function checks the range as follows:\n. - For every element of a single-channel input array:\n. \\f[\\texttt{dst} (I)= \\texttt{lowerBound} (I)_0 \\leq \\texttt{src} (I)_0 \\leq \\texttt{upperbBound} (I)_0\\f]\n. - For two-channel arrays:\n. \\f[\\texttt{dst} (I)= \\texttt{lowerBound} (I)_0 \\leq \\texttt{src} (I)_0 \\leq \\texttt{upperbBound} (I)_0 \\land \\texttt{lowerBound} (I)_1 \\leq \\texttt{src} (I)_1 \\leq \\texttt{upperbBound} (I)_1\\f]\n. - and so forth.\n. \n. That is, dst (I) is set to 255 (all 1 -bits) if src (I) is within the\n. specified 1D, 2D, 3D, ... box and 0 otherwise.\n. \n. When the lower and/or upper boundary parameters are scalars, the indexes\n. (I) at lowerBound and upperbBound in the above formulas should be omitted.\n. @param src first input array.\n. @param lowerBound inclusive lower boundary array or a scalar.\n. @param upperbBound inclusive upper boundary array or a scalar.\n. @param dst output array of the same size as src and CV_8U type.' + ... + + +def initCameraMatrix2D(objectPoints, imagePoints, imageSize, aspectRatio=...) -> typing.Any: + 'initCameraMatrix2D(objectPoints, imagePoints, imageSize[, aspectRatio]) -> retval\n. @brief Finds an initial camera matrix from 3D-2D point correspondences.\n. \n. @param objectPoints Vector of vectors of the calibration pattern points in the calibration pattern\n. coordinate space. In the old interface all the per-view vectors are concatenated. See\n. calibrateCamera for details.\n. @param imagePoints Vector of vectors of the projections of the calibration pattern points. In the\n. old interface all the per-view vectors are concatenated.\n. @param imageSize Image size in pixels used to initialize the principal point.\n. @param aspectRatio If it is zero or negative, both \\f$f_x\\f$ and \\f$f_y\\f$ are estimated independently.\n. Otherwise, \\f$f_x = f_y * \\texttt{aspectRatio}\\f$ .\n. \n. The function estimates and returns an initial camera matrix for the camera calibration process.\n. Currently, the function only supports planar calibration patterns, which are patterns where each\n. object point has z-coordinate =0.' + ... + + +def initUndistortRectifyMap(cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type, map1=..., map2=...) -> typing.Any: + "initUndistortRectifyMap(cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type[, map1[, map2]]) -> map1, map2\n. @brief Computes the undistortion and rectification transformation map.\n. \n. The function computes the joint undistortion and rectification transformation and represents the\n. result in the form of maps for remap. The undistorted image looks like original, as if it is\n. captured with a camera using the camera matrix =newCameraMatrix and zero distortion. In case of a\n. monocular camera, newCameraMatrix is usually equal to cameraMatrix, or it can be computed by\n. #getOptimalNewCameraMatrix for a better control over scaling. In case of a stereo camera,\n. newCameraMatrix is normally set to P1 or P2 computed by #stereoRectify .\n. \n. Also, this new camera is oriented differently in the coordinate space, according to R. That, for\n. example, helps to align two heads of a stereo camera so that the epipolar lines on both images\n. become horizontal and have the same y- coordinate (in case of a horizontally aligned stereo camera).\n. \n. The function actually builds the maps for the inverse mapping algorithm that is used by remap. That\n. is, for each pixel \\f$(u, v)\\f$ in the destination (corrected and rectified) image, the function\n. computes the corresponding coordinates in the source image (that is, in the original image from\n. camera). The following process is applied:\n. \\f[\n. \\begin{array}{l}\n. x \\leftarrow (u - {c'}_x)/{f'}_x \\\\\n. y \\leftarrow (v - {c'}_y)/{f'}_y \\\\\n. {[X\\,Y\\,W]} ^T \\leftarrow R^{-1}*[x \\, y \\, 1]^T \\\\\n. x' \\leftarrow X/W \\\\\n. y' \\leftarrow Y/W \\\\\n. r^2 \\leftarrow x'^2 + y'^2 \\\\\n. x'' \\leftarrow x' \\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\n. + 2p_1 x' y' + p_2(r^2 + 2 x'^2) + s_1 r^2 + s_2 r^4\\\\\n. y'' \\leftarrow y' \\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\n. + p_1 (r^2 + 2 y'^2) + 2 p_2 x' y' + s_3 r^2 + s_4 r^4 \\\\\n. s\\vecthree{x'''}{y'''}{1} =\n. \\vecthreethree{R_{33}(\\tau_x, \\tau_y)}{0}{-R_{13}((\\tau_x, \\tau_y)}\n. {0}{R_{33}(\\tau_x, \\tau_y)}{-R_{23}(\\tau_x, \\tau_y)}\n. {0}{0}{1} R(\\tau_x, \\tau_y) \\vecthree{x''}{y''}{1}\\\\\n. map_x(u,v) \\leftarrow x''' f_x + c_x \\\\\n. map_y(u,v) \\leftarrow y''' f_y + c_y\n. \\end{array}\n. \\f]\n. where \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. are the distortion coefficients.\n. \n. In case of a stereo camera, this function is called twice: once for each camera head, after\n. stereoRectify, which in its turn is called after #stereoCalibrate. But if the stereo camera\n. was not calibrated, it is still possible to compute the rectification transformations directly from\n. the fundamental matrix using #stereoRectifyUncalibrated. For each camera, the function computes\n. homography H as the rectification transformation in a pixel domain, not a rotation matrix R in 3D\n. space. R can be computed from H as\n. \\f[\\texttt{R} = \\texttt{cameraMatrix} ^{-1} \\cdot \\texttt{H} \\cdot \\texttt{cameraMatrix}\\f]\n. where cameraMatrix can be chosen arbitrarily.\n. \n. @param cameraMatrix Input camera matrix \\f$A=\\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param R Optional rectification transformation in the object space (3x3 matrix). R1 or R2 ,\n. computed by #stereoRectify can be passed here. If the matrix is empty, the identity transformation\n. is assumed. In cvInitUndistortMap R assumed to be an identity matrix.\n. @param newCameraMatrix New camera matrix \\f$A'=\\vecthreethree{f_x'}{0}{c_x'}{0}{f_y'}{c_y'}{0}{0}{1}\\f$.\n. @param size Undistorted image size.\n. @param m1type Type of the first output map that can be CV_32FC1, CV_32FC2 or CV_16SC2, see #convertMaps\n. @param map1 The first output map.\n. @param map2 The second output map." + ... + + +def inpaint(src: ndarray, inpaintMask, inpaintRadius, flags: int, dts: ndarray = ...) -> typing.Any: + 'inpaint(src, inpaintMask, inpaintRadius, flags[, dst]) -> dst\n. @brief Restores the selected region in an image using the region neighborhood.\n. \n. @param src Input 8-bit, 16-bit unsigned or 32-bit float 1-channel or 8-bit 3-channel image.\n. @param inpaintMask Inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that\n. needs to be inpainted.\n. @param dst Output image with the same size and type as src .\n. @param inpaintRadius Radius of a circular neighborhood of each point inpainted that is considered\n. by the algorithm.\n. @param flags Inpainting method that could be cv::INPAINT_NS or cv::INPAINT_TELEA\n. \n. The function reconstructs the selected image area from the pixel near the area boundary. The\n. function may be used to remove dust and scratches from a scanned photo, or to remove undesirable\n. objects from still images or video. See for more details.\n. \n. @note\n. - An example using the inpainting technique can be found at\n. opencv_source_code/samples/cpp/inpaint.cpp\n. - (Python) An example using the inpainting technique can be found at\n. opencv_source_code/samples/python/inpaint.py' + ... + + +def insertChannel(src: ndarray, dts: ndarray, coi) -> typing.Any: + 'insertChannel(src, dst, coi) -> dst\n. @brief Inserts a single channel to dst (coi is 0-based index)\n. @param src input array\n. @param dst output array\n. @param coi index of channel for insertion\n. @sa mixChannels, merge' + ... + + +def integral(src: ndarray, sum=..., sdepth=...) -> typing.Any: + 'integral(src[, sum[, sdepth]]) -> sum\n. @overload' + ... + + +def integral2(src: ndarray, sum=..., sqsum=..., sdepth=..., sqdepth=...) -> typing.Any: + 'integral2(src[, sum[, sqsum[, sdepth[, sqdepth]]]]) -> sum, sqsum\n. @overload' + ... + + +def integral3(src: ndarray, sum=..., sqsum=..., tilted=..., sdepth=..., sqdepth=...) -> typing.Any: + 'integral3(src[, sum[, sqsum[, tilted[, sdepth[, sqdepth]]]]]) -> sum, sqsum, tilted\n. @brief Calculates the integral of an image.\n. \n. The function calculates one or more integral images for the source image as follows:\n. \n. \\f[\\texttt{sum} (X,Y) = \\sum _{x typing.Any: + "intersectConvexConvex(_p1, _p2[, _p12[, handleNested]]) -> retval, _p12\n. @brief Finds intersection of two convex polygons\n. \n. @param _p1 First polygon\n. @param _p2 Second polygon\n. @param _p12 Output polygon describing the intersecting area\n. @param handleNested When true, an intersection is found if one of the polygons is fully enclosed in the other.\n. When false, no intersection is found. If the polygons share a side or the vertex of one polygon lies on an edge\n. of the other, they are not considered nested and an intersection will be found regardless of the value of handleNested.\n. \n. @returns Absolute value of area of intersecting polygon\n. \n. @note intersectConvexConvex doesn't confirm that both polygons are convex and will return invalid results if they aren't." + ... + + +def invert(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'invert(src[, dst[, flags]]) -> retval, dst\n. @brief Finds the inverse or pseudo-inverse of a matrix.\n. \n. The function cv::invert inverts the matrix src and stores the result in dst\n. . When the matrix src is singular or non-square, the function calculates\n. the pseudo-inverse matrix (the dst matrix) so that norm(src\\*dst - I) is\n. minimal, where I is an identity matrix.\n. \n. In case of the #DECOMP_LU method, the function returns non-zero value if\n. the inverse has been successfully calculated and 0 if src is singular.\n. \n. In case of the #DECOMP_SVD method, the function returns the inverse\n. condition number of src (the ratio of the smallest singular value to the\n. largest singular value) and 0 if src is singular. The SVD method\n. calculates a pseudo-inverse matrix if src is singular.\n. \n. Similarly to #DECOMP_LU, the method #DECOMP_CHOLESKY works only with\n. non-singular square matrices that should also be symmetrical and\n. positively defined. In this case, the function stores the inverted\n. matrix in dst and returns non-zero. Otherwise, it returns 0.\n. \n. @param src input floating-point M x N matrix.\n. @param dst output matrix of N x M size and the same type as src.\n. @param flags inversion method (cv::DecompTypes)\n. @sa solve, SVD' + ... + + +def invertAffineTransform(M, iM=...) -> typing.Any: + 'invertAffineTransform(M[, iM]) -> iM\n. @brief Inverts an affine transformation.\n. \n. The function computes an inverse affine transformation represented by \\f$2 \\times 3\\f$ matrix M:\n. \n. \\f[\\begin{bmatrix} a_{11} & a_{12} & b_1 \\\\ a_{21} & a_{22} & b_2 \\end{bmatrix}\\f]\n. \n. The result is also a \\f$2 \\times 3\\f$ matrix of the same type as M.\n. \n. @param M Original affine transformation.\n. @param iM Output reverse affine transformation.' + ... + + +def isContourConvex(contour) -> typing.Any: + 'isContourConvex(contour) -> retval\n. @brief Tests a contour convexity.\n. \n. The function tests whether the input contour is convex or not. The contour must be simple, that is,\n. without self-intersections. Otherwise, the function output is undefined.\n. \n. @param contour Input vector of 2D points, stored in std::vector\\<\\> or Mat' + ... + + +def kmeans(data, K, bestLabels, criteria, attempts, flags: int, centers=...) -> typing.Any: + 'kmeans(data, K, bestLabels, criteria, attempts, flags[, centers]) -> retval, bestLabels, centers\n. @brief Finds centers of clusters and groups input samples around the clusters.\n. \n. The function kmeans implements a k-means algorithm that finds the centers of cluster_count clusters\n. and groups the input samples around the clusters. As an output, \\f$\\texttt{bestLabels}_i\\f$ contains a\n. 0-based cluster index for the sample stored in the \\f$i^{th}\\f$ row of the samples matrix.\n. \n. @note\n. - (Python) An example on K-means clustering can be found at\n. opencv_source_code/samples/python/kmeans.py\n. @param data Data for clustering. An array of N-Dimensional points with float coordinates is needed.\n. Examples of this array can be:\n. - Mat points(count, 2, CV_32F);\n. - Mat points(count, 1, CV_32FC2);\n. - Mat points(1, count, CV_32FC2);\n. - std::vector\\ points(sampleCount);\n. @param K Number of clusters to split the set by.\n. @param bestLabels Input/output integer array that stores the cluster indices for every sample.\n. @param criteria The algorithm termination criteria, that is, the maximum number of iterations and/or\n. the desired accuracy. The accuracy is specified as criteria.epsilon. As soon as each of the cluster\n. centers moves by less than criteria.epsilon on some iteration, the algorithm stops.\n. @param attempts Flag to specify the number of times the algorithm is executed using different\n. initial labellings. The algorithm returns the labels that yield the best compactness (see the last\n. function parameter).\n. @param flags Flag that can take values of cv::KmeansFlags\n. @param centers Output matrix of the cluster centers, one row per each cluster center.\n. @return The function returns the compactness measure that is computed as\n. \\f[\\sum _i \\| \\texttt{samples} _i - \\texttt{centers} _{ \\texttt{labels} _i} \\| ^2\\f]\n. after every attempt. The best (minimum) value is chosen and the corresponding labels and the\n. compactness value are returned by the function. Basically, you can use only the core of the\n. function, set the number of attempts to 1, initialize labels each time using a custom algorithm,\n. pass them with the ( flags = #KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best\n. (most-compact) clustering.' + ... + + +def line(img: ndarray, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a line segment connecting two points.\n. \n. The function line draws the line segment between pt1 and pt2 points in the image. The line is\n. clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected\n. or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased\n. lines are drawn using Gaussian filtering.\n. \n. @param img Image.\n. @param pt1 First point of the line segment.\n. @param pt2 Second point of the line segment.\n. @param color Line color.\n. @param thickness Line thickness.\n. @param lineType Type of the line. See #LineTypes.\n. @param shift Number of fractional bits in the point coordinates.' + ... + + +def linearPolar(src: ndarray, center, maxRadius, flags: int, dts: ndarray = ...) -> typing.Any: + 'linearPolar(src, center, maxRadius, flags[, dst]) -> dst\n. @brief Remaps an image to polar coordinates space.\n. \n. @deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags)\n. \n. @internal\n. Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image c)"):\n. \\f[\\begin{array}{l}\n. dst( \\rho , \\phi ) = src(x,y) \\\\\n. dst.size() \\leftarrow src.size()\n. \\end{array}\\f]\n. \n. where\n. \\f[\\begin{array}{l}\n. I = (dx,dy) = (x - center.x,y - center.y) \\\\\n. \\rho = Kmag \\cdot \\texttt{magnitude} (I) ,\\\\\n. \\phi = angle \\cdot \\texttt{angle} (I)\n. \\end{array}\\f]\n. \n. and\n. \\f[\\begin{array}{l}\n. Kx = src.cols / maxRadius \\\\\n. Ky = src.rows / 2\\Pi\n. \\end{array}\\f]\n. \n. \n. @param src Source image\n. @param dst Destination image. It will have same size and type as src.\n. @param center The transformation center;\n. @param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.\n. @param flags A combination of interpolation methods, see #InterpolationFlags\n. \n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. \n. @sa cv::logPolar\n. @endinternal' + ... + + +def log(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'log(src[, dst]) -> dst\n. @brief Calculates the natural logarithm of every array element.\n. \n. The function cv::log calculates the natural logarithm of every element of the input array:\n. \\f[\\texttt{dst} (I) = \\log (\\texttt{src}(I)) \\f]\n. \n. Output on zero, negative and special (NaN, Inf) values is undefined.\n. \n. @param src input array.\n. @param dst output array of the same size and type as src .\n. @sa exp, cartToPolar, polarToCart, phase, pow, sqrt, magnitude' + ... + + +def logPolar(src: ndarray, center, M, flags: int, dts: ndarray = ...) -> typing.Any: + 'logPolar(src, center, M, flags[, dst]) -> dst\n. @brief Remaps an image to semilog-polar coordinates space.\n. \n. @deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags+WARP_POLAR_LOG);\n. \n. @internal\n. Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image d)"):\n. \\f[\\begin{array}{l}\n. dst( \\rho , \\phi ) = src(x,y) \\\\\n. dst.size() \\leftarrow src.size()\n. \\end{array}\\f]\n. \n. where\n. \\f[\\begin{array}{l}\n. I = (dx,dy) = (x - center.x,y - center.y) \\\\\n. \\rho = M \\cdot log_e(\\texttt{magnitude} (I)) ,\\\\\n. \\phi = Kangle \\cdot \\texttt{angle} (I) \\\\\n. \\end{array}\\f]\n. \n. and\n. \\f[\\begin{array}{l}\n. M = src.cols / log_e(maxRadius) \\\\\n. Kangle = src.rows / 2\\Pi \\\\\n. \\end{array}\\f]\n. \n. The function emulates the human "foveal" vision and can be used for fast scale and\n. rotation-invariant template matching, for object tracking and so forth.\n. @param src Source image\n. @param dst Destination image. It will have same size and type as src.\n. @param center The transformation center; where the output precision is maximal\n. @param M Magnitude scale parameter. It determines the radius of the bounding circle to transform too.\n. @param flags A combination of interpolation methods, see #InterpolationFlags\n. \n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. \n. @sa cv::linearPolar\n. @endinternal' + ... + + +def magnitude(x, y, magnitude=...) -> typing.Any: + 'magnitude(x, y[, magnitude]) -> magnitude\n. @brief Calculates the magnitude of 2D vectors.\n. \n. The function cv::magnitude calculates the magnitude of 2D vectors formed\n. from the corresponding elements of x and y arrays:\n. \\f[\\texttt{dst} (I) = \\sqrt{\\texttt{x}(I)^2 + \\texttt{y}(I)^2}\\f]\n. @param x floating-point array of x-coordinates of the vectors.\n. @param y floating-point array of y-coordinates of the vectors; it must\n. have the same size as x.\n. @param magnitude output array of the same size and type as x.\n. @sa cartToPolar, polarToCart, phase, sqrt' + ... + + +def matMulDeriv(A, B, dABdA=..., dABdB=...) -> typing.Any: + 'matMulDeriv(A, B[, dABdA[, dABdB]]) -> dABdA, dABdB\n. @brief Computes partial derivatives of the matrix product for each multiplied matrix.\n. \n. @param A First multiplied matrix.\n. @param B Second multiplied matrix.\n. @param dABdA First output derivative matrix d(A\\*B)/dA of size\n. \\f$\\texttt{A.rows*B.cols} \\times {A.rows*A.cols}\\f$ .\n. @param dABdB Second output derivative matrix d(A\\*B)/dB of size\n. \\f$\\texttt{A.rows*B.cols} \\times {B.rows*B.cols}\\f$ .\n. \n. The function computes partial derivatives of the elements of the matrix product \\f$A*B\\f$ with regard to\n. the elements of each of the two input matrices. The function is used to compute the Jacobian\n. matrices in stereoCalibrate but can also be used in any other similar optimization function.' + ... + + +def matchShapes(contour1, contour2, method: int, parameter) -> typing.Any: + 'matchShapes(contour1, contour2, method, parameter) -> retval\n. @brief Compares two shapes.\n. \n. The function compares two shapes. All three implemented methods use the Hu invariants (see #HuMoments)\n. \n. @param contour1 First contour or grayscale image.\n. @param contour2 Second contour or grayscale image.\n. @param method Comparison method, see #ShapeMatchModes\n. @param parameter Method-specific parameter (not supported now).' + ... + + +def matchTemplate(image: ndarray, templ: ndarray, method: int, result: ndarray = ..., mask: typing.Optional[ndarray] = ...) -> ndarray: + "matchTemplate(image, templ, method[, result[, mask]]) -> result\n. @brief Compares a template against overlapped image regions.\n. \n. The function slides through image , compares the overlapped patches of size \\f$w \\times h\\f$ against\n. templ using the specified method and stores the comparison results in result . #TemplateMatchModes\n. describes the formulae for the available comparison methods ( \\f$I\\f$ denotes image, \\f$T\\f$\n. template, \\f$R\\f$ result, \\f$M\\f$ the optional mask ). The summation is done over template and/or\n. the image patch: \\f$x' = 0...w-1, y' = 0...h-1\\f$\n. \n. After the function finishes the comparison, the best matches can be found as global minimums (when\n. #TM_SQDIFF was used) or maximums (when #TM_CCORR or #TM_CCOEFF was used) using the\n. #minMaxLoc function. In case of a color image, template summation in the numerator and each sum in\n. the denominator is done over all of the channels and separate mean values are used for each channel.\n. That is, the function can take a color template and a color image. The result will still be a\n. single-channel image, which is easier to analyze.\n. \n. @param image Image where the search is running. It must be 8-bit or 32-bit floating-point.\n. @param templ Searched template. It must be not greater than the source image and have the same\n. data type.\n. @param result Map of comparison results. It must be single-channel 32-bit floating-point. If image\n. is \\f$W \\times H\\f$ and templ is \\f$w \\times h\\f$ , then result is \\f$(W-w+1) \\times (H-h+1)\\f$ .\n. @param method Parameter specifying the comparison method, see #TemplateMatchModes\n. @param mask Optional mask. It must have the same size as templ. It must either have the same number\n. of channels as template or only one channel, which is then used for all template and\n. image channels. If the data type is #CV_8U, the mask is interpreted as a binary mask,\n. meaning only elements where mask is nonzero are used and are kept unchanged independent\n. of the actual mask value (weight equals 1). For data tpye #CV_32F, the mask values are\n. used as weights. The exact formulas are documented in #TemplateMatchModes." + ... + + +def max(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: + 'max(src1, src2[, dst]) -> dst\n. @brief Calculates per-element maximum of two arrays or an array and a scalar.\n. \n. The function cv::max calculates the per-element maximum of two arrays:\n. \\f[\\texttt{dst} (I)= \\max ( \\texttt{src1} (I), \\texttt{src2} (I))\\f]\n. or array and a scalar:\n. \\f[\\texttt{dst} (I)= \\max ( \\texttt{src1} (I), \\texttt{value} )\\f]\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1 .\n. @param dst output array of the same size and type as src1.\n. @sa min, compare, inRange, minMaxLoc, @ref MatrixExpressions' + ... + + +def mean(src: ndarray, mask: ndarray = ...) -> typing.Any: + "mean(src[, mask]) -> retval\n. @brief Calculates an average (mean) of array elements.\n. \n. The function cv::mean calculates the mean value M of array elements,\n. independently for each channel, and return it:\n. \\f[\\begin{array}{l} N = \\sum _{I: \\; \\texttt{mask} (I) \\ne 0} 1 \\\\ M_c = \\left ( \\sum _{I: \\; \\texttt{mask} (I) \\ne 0}{ \\texttt{mtx} (I)_c} \\right )/N \\end{array}\\f]\n. When all the mask elements are 0's, the function returns Scalar::all(0)\n. @param src input array that should have from 1 to 4 channels so that the result can be stored in\n. Scalar_ .\n. @param mask optional operation mask.\n. @sa countNonZero, meanStdDev, norm, minMaxLoc" + ... + + +def meanShift(probImage, window, criteria) -> typing.Any: + 'meanShift(probImage, window, criteria) -> retval, window\n. @brief Finds an object on a back projection image.\n. \n. @param probImage Back projection of the object histogram. See calcBackProject for details.\n. @param window Initial search window.\n. @param criteria Stop criteria for the iterative search algorithm.\n. returns\n. : Number of iterations CAMSHIFT took to converge.\n. The function implements the iterative object search algorithm. It takes the input back projection of\n. an object and the initial position. The mass center in window of the back projection image is\n. computed and the search window center shifts to the mass center. The procedure is repeated until the\n. specified number of iterations criteria.maxCount is done or until the window center shifts by less\n. than criteria.epsilon. The algorithm is used inside CamShift and, unlike CamShift , the search\n. window size or orientation do not change during the search. You can simply pass the output of\n. calcBackProject to this function. But better results can be obtained if you pre-filter the back\n. projection and remove the noise. For example, you can do this by retrieving connected components\n. with findContours , throwing away contours with small area ( contourArea ), and rendering the\n. remaining contours with drawContours.' + ... + + +def meanStdDev(src: ndarray, mean=..., stddev=..., mask: ndarray = ...) -> typing.Any: + "meanStdDev(src[, mean[, stddev[, mask]]]) -> mean, stddev\n. Calculates a mean and standard deviation of array elements.\n. \n. The function cv::meanStdDev calculates the mean and the standard deviation M\n. of array elements independently for each channel and returns it via the\n. output parameters:\n. \\f[\\begin{array}{l} N = \\sum _{I, \\texttt{mask} (I) \\ne 0} 1 \\\\ \\texttt{mean} _c = \\frac{\\sum_{ I: \\; \\texttt{mask}(I) \\ne 0} \\texttt{src} (I)_c}{N} \\\\ \\texttt{stddev} _c = \\sqrt{\\frac{\\sum_{ I: \\; \\texttt{mask}(I) \\ne 0} \\left ( \\texttt{src} (I)_c - \\texttt{mean} _c \\right )^2}{N}} \\end{array}\\f]\n. When all the mask elements are 0's, the function returns\n. mean=stddev=Scalar::all(0).\n. @note The calculated standard deviation is only the diagonal of the\n. complete normalized covariance matrix. If the full matrix is needed, you\n. can reshape the multi-channel array M x N to the single-channel array\n. M\\*N x mtx.channels() (only possible when the matrix is continuous) and\n. then pass the matrix to calcCovarMatrix .\n. @param src input array that should have from 1 to 4 channels so that the results can be stored in\n. Scalar_ 's.\n. @param mean output parameter: calculated mean value.\n. @param stddev output parameter: calculated standard deviation.\n. @param mask optional operation mask.\n. @sa countNonZero, mean, norm, minMaxLoc, calcCovarMatrix" + ... + + +def medianBlur(src: ndarray, ksize, dts: ndarray = ...) -> typing.Any: + 'medianBlur(src, ksize[, dst]) -> dst\n. @brief Blurs an image using the median filter.\n. \n. The function smoothes an image using the median filter with the \\f$\\texttt{ksize} \\times\n. \\texttt{ksize}\\f$ aperture. Each channel of a multi-channel image is processed independently.\n. In-place operation is supported.\n. \n. @note The median filter uses #BORDER_REPLICATE internally to cope with border pixels, see #BorderTypes\n. \n. @param src input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be\n. CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U.\n. @param dst destination array of the same size and type as src.\n. @param ksize aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ...\n. @sa bilateralFilter, blur, boxFilter, GaussianBlur' + ... + + +def merge(mv, dts: ndarray = ...) -> typing.Any: + 'merge(mv[, dst]) -> dst\n. @overload\n. @param mv input vector of matrices to be merged; all the matrices in mv must have the same\n. size and the same depth.\n. @param dst output array of the same size and the same depth as mv[0]; The number of channels will\n. be the total number of channels in the matrix array.' + ... + + +def min(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: + 'min(src1, src2[, dst]) -> dst\n. @brief Calculates per-element minimum of two arrays or an array and a scalar.\n. \n. The function cv::min calculates the per-element minimum of two arrays:\n. \\f[\\texttt{dst} (I)= \\min ( \\texttt{src1} (I), \\texttt{src2} (I))\\f]\n. or array and a scalar:\n. \\f[\\texttt{dst} (I)= \\min ( \\texttt{src1} (I), \\texttt{value} )\\f]\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1.\n. @param dst output array of the same size and type as src1.\n. @sa max, compare, inRange, minMaxLoc' + ... + + +def minAreaRect(points) -> typing.Any: + 'minAreaRect(points) -> retval\n. @brief Finds a rotated rectangle of the minimum area enclosing the input 2D point set.\n. \n. The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a\n. specified point set. Developer should keep in mind that the returned RotatedRect can contain negative\n. indices when data is close to the containing Mat element boundary.\n. \n. @param points Input vector of 2D points, stored in std::vector\\<\\> or Mat' + ... + + +def minEnclosingCircle(points) -> typing.Any: + 'minEnclosingCircle(points) -> center, radius\n. @brief Finds a circle of the minimum area enclosing a 2D point set.\n. \n. The function finds the minimal enclosing circle of a 2D point set using an iterative algorithm.\n. \n. @param points Input vector of 2D points, stored in std::vector\\<\\> or Mat\n. @param center Output center of the circle.\n. @param radius Output radius of the circle.' + ... + + +def minEnclosingTriangle(points, triangle=...) -> typing.Any: + "minEnclosingTriangle(points[, triangle]) -> retval, triangle\n. @brief Finds a triangle of minimum area enclosing a 2D point set and returns its area.\n. \n. The function finds a triangle of minimum area enclosing the given set of 2D points and returns its\n. area. The output for a given 2D point set is shown in the image below. 2D points are depicted in\n. *red* and the enclosing triangle in *yellow*.\n. \n. ![Sample output of the minimum enclosing triangle function](pics/minenclosingtriangle.png)\n. \n. The implementation of the algorithm is based on O'Rourke's @cite ORourke86 and Klee and Laskowski's\n. @cite KleeLaskowski85 papers. O'Rourke provides a \\f$\\theta(n)\\f$ algorithm for finding the minimal\n. enclosing triangle of a 2D convex polygon with n vertices. Since the #minEnclosingTriangle function\n. takes a 2D point set as input an additional preprocessing step of computing the convex hull of the\n. 2D point set is required. The complexity of the #convexHull function is \\f$O(n log(n))\\f$ which is higher\n. than \\f$\\theta(n)\\f$. Thus the overall complexity of the function is \\f$O(n log(n))\\f$.\n. \n. @param points Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector\\<\\> or Mat\n. @param triangle Output vector of three 2D points defining the vertices of the triangle. The depth\n. of the OutputArray must be CV_32F." + ... + + +def minMaxLoc(src: ndarray, mask: ndarray = ...) -> typing.Tuple[float, float, typing.Tuple[int, int], typing.Tuple[int, int]]: + 'minMaxLoc(src[, mask]) -> minVal, maxVal, minLoc, maxLoc\n. @brief Finds the global minimum and maximum in an array.\n. \n. The function cv::minMaxLoc finds the minimum and maximum element values and their positions. The\n. extremums are searched across the whole array or, if mask is not an empty array, in the specified\n. array region.\n. \n. The function do not work with multi-channel arrays. If you need to find minimum or maximum\n. elements across all the channels, use Mat::reshape first to reinterpret the array as\n. single-channel. Or you may extract the particular channel using either extractImageCOI , or\n. mixChannels , or split .\n. @param src input single-channel array.\n. @param minVal pointer to the returned minimum value; NULL is used if not required.\n. @param maxVal pointer to the returned maximum value; NULL is used if not required.\n. @param minLoc pointer to the returned minimum location (in 2D case); NULL is used if not required.\n. @param maxLoc pointer to the returned maximum location (in 2D case); NULL is used if not required.\n. @param mask optional mask used to select a sub-array.\n. @sa max, min, compare, inRange, extractImageCOI, mixChannels, split, Mat::reshape' + ... + + +def mixChannels(src: ndarray, dts: ndarray, fromTo) -> typing.Any: + 'mixChannels(src, dst, fromTo) -> dst\n. @overload\n. @param src input array or vector of matrices; all of the matrices must have the same size and the\n. same depth.\n. @param dst output array or vector of matrices; all the matrices **must be allocated**; their size and\n. depth must be the same as in src[0].\n. @param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\\*2] is\n. a 0-based index of the input channel in src, fromTo[k\\*2+1] is an index of the output channel in\n. dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to\n. src[0].channels()-1, the second input image channels are indexed from src[0].channels() to\n. src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image\n. channels; as a special case, when fromTo[k\\*2] is negative, the corresponding output channel is\n. filled with zero .' + ... + + +ml_ANN_MLP = _mod_cv2.ml_ANN_MLP +ml_Boost = _mod_cv2.ml_Boost +ml_DTrees = _mod_cv2.ml_DTrees +ml_EM = _mod_cv2.ml_EM +ml_KNearest = _mod_cv2.ml_KNearest +ml_LogisticRegression = _mod_cv2.ml_LogisticRegression +ml_NormalBayesClassifier = _mod_cv2.ml_NormalBayesClassifier +ml_ParamGrid = _mod_cv2.ml_ParamGrid +ml_RTrees = _mod_cv2.ml_RTrees +ml_SVM = _mod_cv2.ml_SVM +ml_SVMSGD = _mod_cv2.ml_SVMSGD +ml_StatModel = _mod_cv2.ml_StatModel +ml_TrainData = _mod_cv2.ml_TrainData + + +def moments(array, binaryImage=...) -> typing.Any: + "moments(array[, binaryImage]) -> retval\n. @brief Calculates all of the moments up to the third order of a polygon or rasterized shape.\n. \n. The function computes moments, up to the 3rd order, of a vector shape or a rasterized shape. The\n. results are returned in the structure cv::Moments.\n. \n. @param array Raster image (single-channel, 8-bit or floating-point 2D array) or an array (\n. \\f$1 \\times N\\f$ or \\f$N \\times 1\\f$ ) of 2D points (Point or Point2f ).\n. @param binaryImage If it is true, all non-zero image pixels are treated as 1's. The parameter is\n. used for images only.\n. @returns moments.\n. \n. @note Only applicable to contour moments calculations from Python bindings: Note that the numpy\n. type for the input array should be either np.int32 or np.float32.\n. \n. @sa contourArea, arcLength" + ... + + +def morphologyEx(src: ndarray, op, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: + 'morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Performs advanced morphological transformations.\n. \n. The function cv::morphologyEx can perform advanced morphological transformations using an erosion and dilation as\n. basic operations.\n. \n. Any of the operations can be done in-place. In case of multi-channel images, each channel is\n. processed independently.\n. \n. @param src Source image. The number of channels can be arbitrary. The depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst Destination image of the same size and type as source image.\n. @param op Type of a morphological operation, see #MorphTypes\n. @param kernel Structuring element. It can be created using #getStructuringElement.\n. @param anchor Anchor position with the kernel. Negative values mean that the anchor is at the\n. kernel center.\n. @param iterations Number of times erosion and dilation are applied.\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @param borderValue Border value in case of a constant border. The default value has a special\n. meaning.\n. @sa dilate, erode, getStructuringElement\n. @note The number of iterations is the number of times erosion or dilatation operation will be applied.\n. For instance, an opening operation (#MORPH_OPEN) with two iterations is equivalent to apply\n. successively: erode -> erode -> dilate -> dilate (and not erode -> dilate -> erode -> dilate).' + ... + + +def moveWindow(winname, x, y) -> typing.Any: + 'moveWindow(winname, x, y) -> None\n. @brief Moves window to the specified position\n. \n. @param winname Name of the window.\n. @param x The new x-coordinate of the window.\n. @param y The new y-coordinate of the window.' + ... + + +def mulSpectrums(a, b, flags: int, c=..., conjB=...) -> typing.Any: + 'mulSpectrums(a, b, flags[, c[, conjB]]) -> c\n. @brief Performs the per-element multiplication of two Fourier spectrums.\n. \n. The function cv::mulSpectrums performs the per-element multiplication of the two CCS-packed or complex\n. matrices that are results of a real or complex Fourier transform.\n. \n. The function, together with dft and idft , may be used to calculate convolution (pass conjB=false )\n. or correlation (pass conjB=true ) of two arrays rapidly. When the arrays are complex, they are\n. simply multiplied (per element) with an optional conjugation of the second-array elements. When the\n. arrays are real, they are assumed to be CCS-packed (see dft for details).\n. @param a first input array.\n. @param b second input array of the same size and type as src1 .\n. @param c output array of the same size and type as src1 .\n. @param flags operation flags; currently, the only supported flag is cv::DFT_ROWS, which indicates that\n. each row of src1 and src2 is an independent 1D Fourier spectrum. If you do not want to use this flag, then simply add a `0` as value.\n. @param conjB optional flag that conjugates the second input array before the multiplication (true)\n. or not (false).' + ... + + +def mulTransposed(src: ndarray, aTa, dts: ndarray = ..., delta=..., scale=..., dtype=...) -> typing.Any: + 'mulTransposed(src, aTa[, dst[, delta[, scale[, dtype]]]]) -> dst\n. @brief Calculates the product of a matrix and its transposition.\n. \n. The function cv::mulTransposed calculates the product of src and its\n. transposition:\n. \\f[\\texttt{dst} = \\texttt{scale} ( \\texttt{src} - \\texttt{delta} )^T ( \\texttt{src} - \\texttt{delta} )\\f]\n. if aTa=true , and\n. \\f[\\texttt{dst} = \\texttt{scale} ( \\texttt{src} - \\texttt{delta} ) ( \\texttt{src} - \\texttt{delta} )^T\\f]\n. otherwise. The function is used to calculate the covariance matrix. With\n. zero delta, it can be used as a faster substitute for general matrix\n. product A\\*B when B=A\'\n. @param src input single-channel matrix. Note that unlike gemm, the\n. function can multiply not only floating-point matrices.\n. @param dst output square matrix.\n. @param aTa Flag specifying the multiplication ordering. See the\n. description below.\n. @param delta Optional delta matrix subtracted from src before the\n. multiplication. When the matrix is empty ( delta=noArray() ), it is\n. assumed to be zero, that is, nothing is subtracted. If it has the same\n. size as src , it is simply subtracted. Otherwise, it is "repeated" (see\n. repeat ) to cover the full src and then subtracted. Type of the delta\n. matrix, when it is not empty, must be the same as the type of created\n. output matrix. See the dtype parameter description below.\n. @param scale Optional scale factor for the matrix product.\n. @param dtype Optional type of the output matrix. When it is negative,\n. the output matrix will have the same type as src . Otherwise, it will be\n. type=CV_MAT_DEPTH(dtype) that should be either CV_32F or CV_64F .\n. @sa calcCovarMatrix, gemm, repeat, reduce' + ... + + +def multiply(src1: ndarray, src2: ndarray, dts: ndarray = ..., scale=..., dtype=...) -> typing.Any: + 'multiply(src1, src2[, dst[, scale[, dtype]]]) -> dst\n. @brief Calculates the per-element scaled product of two arrays.\n. \n. The function multiply calculates the per-element product of two arrays:\n. \n. \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{scale} \\cdot \\texttt{src1} (I) \\cdot \\texttt{src2} (I))\\f]\n. \n. There is also a @ref MatrixExpressions -friendly variant of the first function. See Mat::mul .\n. \n. For a not-per-element matrix product, see gemm .\n. \n. @note Saturation is not applied when the output array has the depth\n. CV_32S. You may even get result of an incorrect sign in the case of\n. overflow.\n. @param src1 first input array.\n. @param src2 second input array of the same size and the same type as src1.\n. @param dst output array of the same size and type as src1.\n. @param scale optional scale factor.\n. @param dtype optional depth of the output array\n. @sa add, subtract, divide, scaleAdd, addWeighted, accumulate, accumulateProduct, accumulateSquare,\n. Mat::convertTo' + ... + + +def namedWindow(winname, flags: int = ...) -> typing.Any: + 'namedWindow(winname[, flags]) -> None\n. @brief Creates a window.\n. \n. The function namedWindow creates a window that can be used as a placeholder for images and\n. trackbars. Created windows are referred to by their names.\n. \n. If a window with the same name already exists, the function does nothing.\n. \n. You can call cv::destroyWindow or cv::destroyAllWindows to close the window and de-allocate any associated\n. memory usage. For a simple program, you do not really have to call these functions because all the\n. resources and windows of the application are closed automatically by the operating system upon exit.\n. \n. @note\n. \n. Qt backend supports additional flags:\n. - **WINDOW_NORMAL or WINDOW_AUTOSIZE:** WINDOW_NORMAL enables you to resize the\n. window, whereas WINDOW_AUTOSIZE adjusts automatically the window size to fit the\n. displayed image (see imshow ), and you cannot change the window size manually.\n. - **WINDOW_FREERATIO or WINDOW_KEEPRATIO:** WINDOW_FREERATIO adjusts the image\n. with no respect to its ratio, whereas WINDOW_KEEPRATIO keeps the image ratio.\n. - **WINDOW_GUI_NORMAL or WINDOW_GUI_EXPANDED:** WINDOW_GUI_NORMAL is the old way to draw the window\n. without statusbar and toolbar, whereas WINDOW_GUI_EXPANDED is a new enhanced GUI.\n. By default, flags == WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED\n. \n. @param winname Name of the window in the window caption that may be used as a window identifier.\n. @param flags Flags of the window. The supported flags are: (cv::WindowFlags)' + ... + + +def norm(src1: ndarray, src2: ndarray, normType: int = ..., mask: ndarray = ...) -> float: + 'norm(src1, src2[, normType[, mask]]) -> retval\n. @brief Calculates the absolute norm of an array.\n. \n. This version of #norm calculates the absolute norm of src1. The type of norm to calculate is specified using #NormTypes.\n. \n. As example for one array consider the function \\f$r(x)= \\begin{pmatrix} x \\\\ 1-x \\end{pmatrix}, x \\in [-1;1]\\f$.\n. The \\f$ L_{1}, L_{2} \\f$ and \\f$ L_{\\infty} \\f$ norm for the sample value \\f$r(-1) = \\begin{pmatrix} -1 \\\\ 2 \\end{pmatrix}\\f$\n. is calculated as follows\n. \\f{align*}\n. \\| r(-1) \\|_{L_1} &= |-1| + |2| = 3 \\\\\n. \\| r(-1) \\|_{L_2} &= \\sqrt{(-1)^{2} + (2)^{2}} = \\sqrt{5} \\\\\n. \\| r(-1) \\|_{L_\\infty} &= \\max(|-1|,|2|) = 2\n. \\f}\n. and for \\f$r(0.5) = \\begin{pmatrix} 0.5 \\\\ 0.5 \\end{pmatrix}\\f$ the calculation is\n. \\f{align*}\n. \\| r(0.5) \\|_{L_1} &= |0.5| + |0.5| = 1 \\\\\n. \\| r(0.5) \\|_{L_2} &= \\sqrt{(0.5)^{2} + (0.5)^{2}} = \\sqrt{0.5} \\\\\n. \\| r(0.5) \\|_{L_\\infty} &= \\max(|0.5|,|0.5|) = 0.5.\n. \\f}\n. The following graphic shows all values for the three norm functions \\f$\\| r(x) \\|_{L_1}, \\| r(x) \\|_{L_2}\\f$ and \\f$\\| r(x) \\|_{L_\\infty}\\f$.\n. It is notable that the \\f$ L_{1} \\f$ norm forms the upper and the \\f$ L_{\\infty} \\f$ norm forms the lower border for the example function \\f$ r(x) \\f$.\n. ![Graphs for the different norm functions from the above example](pics/NormTypes_OneArray_1-2-INF.png)\n. \n. When the mask parameter is specified and it is not empty, the norm is\n. \n. If normType is not specified, #NORM_L2 is used.\n. calculated only over the region specified by the mask.\n. \n. Multi-channel input arrays are treated as single-channel arrays, that is,\n. the results for all channels are combined.\n. \n. Hamming norms can only be calculated with CV_8U depth arrays.\n. \n. @param src1 first input array.\n. @param normType type of the norm (see #NormTypes).\n. @param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.\n\n\n\nnorm(src1, src2[, normType[, mask]]) -> retval\n. @brief Calculates an absolute difference norm or a relative difference norm.\n. \n. This version of cv::norm calculates the absolute difference norm\n. or the relative difference norm of arrays src1 and src2.\n. The type of norm to calculate is specified using #NormTypes.\n. \n. @param src1 first input array.\n. @param src2 second input array of the same size and the same type as src1.\n. @param normType type of the norm (see #NormTypes).\n. @param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.' + ... + + +def normalize(src: ndarray, dts: ndarray, alpha=..., beta=..., normType: int = ..., dtype=..., mask: ndarray = ...) -> ndarray: + 'normalize(src, dst[, alpha[, beta[, normType[, dtype[, mask]]]]]) -> dst\n. @brief Normalizes the norm or value range of an array.\n. \n. The function cv::normalize normalizes scale and shift the input array elements so that\n. \\f[\\| \\texttt{dst} \\| _{L_p}= \\texttt{alpha}\\f]\n. (where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that\n. \\f[\\min _I \\texttt{dst} (I)= \\texttt{alpha} , \\, \\, \\max _I \\texttt{dst} (I)= \\texttt{beta}\\f]\n. \n. when normType=NORM_MINMAX (for dense arrays only). The optional mask specifies a sub-array to be\n. normalized. This means that the norm or min-n-max are calculated over the sub-array, and then this\n. sub-array is modified to be normalized. If you want to only use the mask to calculate the norm or\n. min-max but modify the whole array, you can use norm and Mat::convertTo.\n. \n. In case of sparse matrices, only the non-zero values are analyzed and transformed. Because of this,\n. the range transformation for sparse matrices is not allowed since it can shift the zero level.\n. \n. Possible usage with some positive example data:\n. @code{.cpp}\n. vector positiveData = { 2.0, 8.0, 10.0 };\n. vector normalizedData_l1, normalizedData_l2, normalizedData_inf, normalizedData_minmax;\n. \n. // Norm to probability (total count)\n. // sum(numbers) = 20.0\n. // 2.0 0.1 (2.0/20.0)\n. // 8.0 0.4 (8.0/20.0)\n. // 10.0 0.5 (10.0/20.0)\n. normalize(positiveData, normalizedData_l1, 1.0, 0.0, NORM_L1);\n. \n. // Norm to unit vector: ||positiveData|| = 1.0\n. // 2.0 0.15\n. // 8.0 0.62\n. // 10.0 0.77\n. normalize(positiveData, normalizedData_l2, 1.0, 0.0, NORM_L2);\n. \n. // Norm to max element\n. // 2.0 0.2 (2.0/10.0)\n. // 8.0 0.8 (8.0/10.0)\n. // 10.0 1.0 (10.0/10.0)\n. normalize(positiveData, normalizedData_inf, 1.0, 0.0, NORM_INF);\n. \n. // Norm to range [0.0;1.0]\n. // 2.0 0.0 (shift to left border)\n. // 8.0 0.75 (6.0/8.0)\n. // 10.0 1.0 (shift to right border)\n. normalize(positiveData, normalizedData_minmax, 1.0, 0.0, NORM_MINMAX);\n. @endcode\n. \n. @param src input array.\n. @param dst output array of the same size as src .\n. @param alpha norm value to normalize to or the lower range boundary in case of the range\n. normalization.\n. @param beta upper range boundary in case of the range normalization; it is not used for the norm\n. normalization.\n. @param normType normalization type (see cv::NormTypes).\n. @param dtype when negative, the output array has the same type as src; otherwise, it has the same\n. number of channels as src and the depth =CV_MAT_DEPTH(dtype).\n. @param mask optional operation mask.\n. @sa norm, Mat::convertTo, SparseMat::convertTo' + ... + + +ocl_Device = _mod_cv2.ocl_Device + + +def patchNaNs(a, val=...) -> typing.Any: + "patchNaNs(a[, val]) -> a\n. @brief converts NaN's to the given number" + ... + + +def pencilSketch(src: ndarray, dts1: ndarray = ..., dts2: ndarray = ..., sigma_s=..., sigma_r=..., shade_factor=...) -> typing.Any: + 'pencilSketch(src[, dst1[, dst2[, sigma_s[, sigma_r[, shade_factor]]]]]) -> dst1, dst2\n. @brief Pencil-like non-photorealistic line drawing\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst1 Output 8-bit 1-channel image.\n. @param dst2 Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.\n. @param shade_factor %Range between 0 to 0.1.' + ... + + +def perspectiveTransform(src: ndarray, m, dts: ndarray = ...) -> typing.Any: + "perspectiveTransform(src, m[, dst]) -> dst\n. @brief Performs the perspective matrix transformation of vectors.\n. \n. The function cv::perspectiveTransform transforms every element of src by\n. treating it as a 2D or 3D vector, in the following way:\n. \\f[(x, y, z) \\rightarrow (x'/w, y'/w, z'/w)\\f]\n. where\n. \\f[(x', y', z', w') = \\texttt{mat} \\cdot \\begin{bmatrix} x & y & z & 1 \\end{bmatrix}\\f]\n. and\n. \\f[w = \\fork{w'}{if \\(w' \\ne 0\\)}{\\infty}{otherwise}\\f]\n. \n. Here a 3D vector transformation is shown. In case of a 2D vector\n. transformation, the z component is omitted.\n. \n. @note The function transforms a sparse set of 2D or 3D vectors. If you\n. want to transform an image using perspective transformation, use\n. warpPerspective . If you have an inverse problem, that is, you want to\n. compute the most probable perspective transformation out of several\n. pairs of corresponding points, you can use getPerspectiveTransform or\n. findHomography .\n. @param src input two-channel or three-channel floating-point array; each\n. element is a 2D/3D vector to be transformed.\n. @param dst output array of the same size and type as src.\n. @param m 3x3 or 4x4 floating-point transformation matrix.\n. @sa transform, warpPerspective, getPerspectiveTransform, findHomography" + ... + + +def phase(x, y, angle=..., angleInDegrees=...) -> typing.Any: + 'phase(x, y[, angle[, angleInDegrees]]) -> angle\n. @brief Calculates the rotation angle of 2D vectors.\n. \n. The function cv::phase calculates the rotation angle of each 2D vector that\n. is formed from the corresponding elements of x and y :\n. \\f[\\texttt{angle} (I) = \\texttt{atan2} ( \\texttt{y} (I), \\texttt{x} (I))\\f]\n. \n. The angle estimation accuracy is about 0.3 degrees. When x(I)=y(I)=0 ,\n. the corresponding angle(I) is set to 0.\n. @param x input floating-point array of x-coordinates of 2D vectors.\n. @param y input array of y-coordinates of 2D vectors; it must have the\n. same size and the same type as x.\n. @param angle output array of vector angles; it has the same size and\n. same type as x .\n. @param angleInDegrees when true, the function calculates the angle in\n. degrees, otherwise, they are measured in radians.' + ... + + +def phaseCorrelate(src1: ndarray, src2: ndarray, window=...) -> typing.Any: + 'phaseCorrelate(src1, src2[, window]) -> retval, response\n. @brief The function is used to detect translational shifts that occur between two images.\n. \n. The operation takes advantage of the Fourier shift theorem for detecting the translational shift in\n. the frequency domain. It can be used for fast image registration as well as motion estimation. For\n. more information please see \n. \n. Calculates the cross-power spectrum of two supplied source arrays. The arrays are padded if needed\n. with getOptimalDFTSize.\n. \n. The function performs the following equations:\n. - First it applies a Hanning window (see ) to each\n. image to remove possible edge effects. This window is cached until the array size changes to speed\n. up processing time.\n. - Next it computes the forward DFTs of each source array:\n. \\f[\\mathbf{G}_a = \\mathcal{F}\\{src_1\\}, \\; \\mathbf{G}_b = \\mathcal{F}\\{src_2\\}\\f]\n. where \\f$\\mathcal{F}\\f$ is the forward DFT.\n. - It then computes the cross-power spectrum of each frequency domain array:\n. \\f[R = \\frac{ \\mathbf{G}_a \\mathbf{G}_b^*}{|\\mathbf{G}_a \\mathbf{G}_b^*|}\\f]\n. - Next the cross-correlation is converted back into the time domain via the inverse DFT:\n. \\f[r = \\mathcal{F}^{-1}\\{R\\}\\f]\n. - Finally, it computes the peak location and computes a 5x5 weighted centroid around the peak to\n. achieve sub-pixel accuracy.\n. \\f[(\\Delta x, \\Delta y) = \\texttt{weightedCentroid} \\{\\arg \\max_{(x, y)}\\{r\\}\\}\\f]\n. - If non-zero, the response parameter is computed as the sum of the elements of r within the 5x5\n. centroid around the peak location. It is normalized to a maximum of 1 (meaning there is a single\n. peak) and will be smaller when there are multiple peaks.\n. \n. @param src1 Source floating point array (CV_32FC1 or CV_64FC1)\n. @param src2 Source floating point array (CV_32FC1 or CV_64FC1)\n. @param window Floating point array with windowing coefficients to reduce edge effects (optional).\n. @param response Signal power within the 5x5 centroid around the peak, between 0 and 1 (optional).\n. @returns detected phase shift (sub-pixel) between the two arrays.\n. \n. @sa dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow' + ... + + +def pointPolygonTest(contour, pt, measureDist) -> typing.Any: + 'pointPolygonTest(contour, pt, measureDist) -> retval\n. @brief Performs a point-in-contour test.\n. \n. The function determines whether the point is inside a contour, outside, or lies on an edge (or\n. coincides with a vertex). It returns positive (inside), negative (outside), or zero (on an edge)\n. value, correspondingly. When measureDist=false , the return value is +1, -1, and 0, respectively.\n. Otherwise, the return value is a signed distance between the point and the nearest contour edge.\n. \n. See below a sample output of the function where each image pixel is tested against the contour:\n. \n. ![sample output](pics/pointpolygon.png)\n. \n. @param contour Input contour.\n. @param pt Point tested against the contour.\n. @param measureDist If true, the function estimates the signed distance from the point to the\n. nearest contour edge. Otherwise, the function only checks if the point is inside a contour or not.' + ... + + +def polarToCart(magnitude, angle, x=..., y=..., angleInDegrees=...) -> typing.Any: + 'polarToCart(magnitude, angle[, x[, y[, angleInDegrees]]]) -> x, y\n. @brief Calculates x and y coordinates of 2D vectors from their magnitude and angle.\n. \n. The function cv::polarToCart calculates the Cartesian coordinates of each 2D\n. vector represented by the corresponding elements of magnitude and angle:\n. \\f[\\begin{array}{l} \\texttt{x} (I) = \\texttt{magnitude} (I) \\cos ( \\texttt{angle} (I)) \\\\ \\texttt{y} (I) = \\texttt{magnitude} (I) \\sin ( \\texttt{angle} (I)) \\\\ \\end{array}\\f]\n. \n. The relative accuracy of the estimated coordinates is about 1e-6.\n. @param magnitude input floating-point array of magnitudes of 2D vectors;\n. it can be an empty matrix (=Mat()), in this case, the function assumes\n. that all the magnitudes are =1; if it is not empty, it must have the\n. same size and type as angle.\n. @param angle input floating-point array of angles of 2D vectors.\n. @param x output array of x-coordinates of 2D vectors; it has the same\n. size and type as angle.\n. @param y output array of y-coordinates of 2D vectors; it has the same\n. size and type as angle.\n. @param angleInDegrees when true, the input angles are measured in\n. degrees, otherwise, they are measured in radians.\n. @sa cartToPolar, magnitude, phase, exp, log, pow, sqrt' + ... + + +def polylines(img: ndarray, pts, isClosed, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws several polygonal curves.\n. \n. @param img Image.\n. @param pts Array of polygonal curves.\n. @param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed,\n. the function draws a line from the last vertex of each curve to its first vertex.\n. @param color Polyline color.\n. @param thickness Thickness of the polyline edges.\n. @param lineType Type of the line segments. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.\n. \n. The function cv::polylines draws one or more polygonal curves.' + ... + + +def pow(src: ndarray, power, dts: ndarray = ...) -> typing.Any: + 'pow(src, power[, dst]) -> dst\n. @brief Raises every array element to a power.\n. \n. The function cv::pow raises every element of the input array to power :\n. \\f[\\texttt{dst} (I) = \\fork{\\texttt{src}(I)^{power}}{if \\(\\texttt{power}\\) is integer}{|\\texttt{src}(I)|^{power}}{otherwise}\\f]\n. \n. So, for a non-integer power exponent, the absolute values of input array\n. elements are used. However, it is possible to get true values for\n. negative values using some extra operations. In the example below,\n. computing the 5th root of array src shows:\n. @code{.cpp}\n. Mat mask = src < 0;\n. pow(src, 1./5, dst);\n. subtract(Scalar::all(0), dst, dst, mask);\n. @endcode\n. For some values of power, such as integer values, 0.5 and -0.5,\n. specialized faster algorithms are used.\n. \n. Special values (NaN, Inf) are not handled.\n. @param src input array.\n. @param power exponent of power.\n. @param dst output array of the same size and type as src.\n. @sa sqrt, exp, log, cartToPolar, polarToCart' + ... + + +def preCornerDetect(src: ndarray, ksize, dts: ndarray = ..., borderType=...) -> typing.Any: + 'preCornerDetect(src, ksize[, dst[, borderType]]) -> dst\n. @brief Calculates a feature map for corner detection.\n. \n. The function calculates the complex spatial derivative-based function of the source image\n. \n. \\f[\\texttt{dst} = (D_x \\texttt{src} )^2 \\cdot D_{yy} \\texttt{src} + (D_y \\texttt{src} )^2 \\cdot D_{xx} \\texttt{src} - 2 D_x \\texttt{src} \\cdot D_y \\texttt{src} \\cdot D_{xy} \\texttt{src}\\f]\n. \n. where \\f$D_x\\f$,\\f$D_y\\f$ are the first image derivatives, \\f$D_{xx}\\f$,\\f$D_{yy}\\f$ are the second image\n. derivatives, and \\f$D_{xy}\\f$ is the mixed derivative.\n. \n. The corners can be found as local maximums of the functions, as shown below:\n. @code\n. Mat corners, dilated_corners;\n. preCornerDetect(image, corners, 3);\n. // dilation with 3x3 rectangular structuring element\n. dilate(corners, dilated_corners, Mat(), 1);\n. Mat corner_mask = corners == dilated_corners;\n. @endcode\n. \n. @param src Source single-channel 8-bit of floating-point image.\n. @param dst Output image that has the type CV_32F and the same size as src .\n. @param ksize %Aperture size of the Sobel .\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' + ... + + +def projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs, imagePoints=..., jacobian=..., aspectRatio=...) -> typing.Any: + 'projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs[, imagePoints[, jacobian[, aspectRatio]]]) -> imagePoints, jacobian\n. @brief Projects 3D points to an image plane.\n. \n. @param objectPoints Array of object points expressed wrt. the world coordinate frame. A 3xN/Nx3\n. 1-channel or 1xN/Nx1 3-channel (or vector\\ ), where N is the number of points in the view.\n. @param rvec The rotation vector (@ref Rodrigues) that, together with tvec, performs a change of\n. basis from world to camera coordinate system, see @ref calibrateCamera for details.\n. @param tvec The translation vector, see parameter description above.\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.\n. @param imagePoints Output array of image points, 1xN/Nx1 2-channel, or\n. vector\\ .\n. @param jacobian Optional output 2Nx(10+\\) jacobian matrix of derivatives of image\n. points with respect to components of the rotation vector, translation vector, focal lengths,\n. coordinates of the principal point and the distortion coefficients. In the old interface different\n. components of the jacobian are returned via different output parameters.\n. @param aspectRatio Optional "fixed aspect ratio" parameter. If the parameter is not 0, the\n. function assumes that the aspect ratio (\\f$f_x / f_y\\f$) is fixed and correspondingly adjusts the\n. jacobian matrix.\n. \n. The function computes the 2D projections of 3D points to the image plane, given intrinsic and\n. extrinsic camera parameters. Optionally, the function computes Jacobians -matrices of partial\n. derivatives of image points coordinates (as functions of all the input parameters) with respect to\n. the particular parameters, intrinsic and/or extrinsic. The Jacobians are used during the global\n. optimization in @ref calibrateCamera, @ref solvePnP, and @ref stereoCalibrate. The function itself\n. can also be used to compute a re-projection error, given the current intrinsic and extrinsic\n. parameters.\n. \n. @note By setting rvec = tvec = \\f$[0, 0, 0]\\f$, or by setting cameraMatrix to a 3x3 identity matrix,\n. or by passing zero distortion coefficients, one can get various useful partial cases of the\n. function. This means, one can compute the distorted coordinates for a sparse set of points or apply\n. a perspective transformation (and also compute the derivatives) in the ideal zero-distortion setup.' + ... + + +def putText(img: ndarray, text, org, fontFace, fontScale, color, thickness=..., lineType=..., bottomLeftOrigin=...) -> typing.Any: + 'putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]]) -> img\n. @brief Draws a text string.\n. \n. The function cv::putText renders the specified text string in the image. Symbols that cannot be rendered\n. using the specified font are replaced by question marks. See #getTextSize for a text rendering code\n. example.\n. \n. @param img Image.\n. @param text Text string to be drawn.\n. @param org Bottom-left corner of the text string in the image.\n. @param fontFace Font type, see #HersheyFonts.\n. @param fontScale Font scale factor that is multiplied by the font-specific base size.\n. @param color Text color.\n. @param thickness Thickness of the lines used to draw a text.\n. @param lineType Line type. See #LineTypes\n. @param bottomLeftOrigin When true, the image data origin is at the bottom-left corner. Otherwise,\n. it is at the top-left corner.' + ... + + +def pyrDown(src: ndarray, dts: ndarray = ..., dstsize=..., borderType=...) -> typing.Any: + "pyrDown(src[, dst[, dstsize[, borderType]]]) -> dst\n. @brief Blurs an image and downsamples it.\n. \n. By default, size of the output image is computed as `Size((src.cols+1)/2, (src.rows+1)/2)`, but in\n. any case, the following conditions should be satisfied:\n. \n. \\f[\\begin{array}{l} | \\texttt{dstsize.width} *2-src.cols| \\leq 2 \\\\ | \\texttt{dstsize.height} *2-src.rows| \\leq 2 \\end{array}\\f]\n. \n. The function performs the downsampling step of the Gaussian pyramid construction. First, it\n. convolves the source image with the kernel:\n. \n. \\f[\\frac{1}{256} \\begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\\\ 4 & 16 & 24 & 16 & 4 \\\\ 6 & 24 & 36 & 24 & 6 \\\\ 4 & 16 & 24 & 16 & 4 \\\\ 1 & 4 & 6 & 4 & 1 \\end{bmatrix}\\f]\n. \n. Then, it downsamples the image by rejecting even rows and columns.\n. \n. @param src input image.\n. @param dst output image; it has the specified size and the same type as src.\n. @param dstsize size of the output image.\n. @param borderType Pixel extrapolation method, see #BorderTypes (#BORDER_CONSTANT isn't supported)" + ... + + +def pyrMeanShiftFiltering(src: ndarray, sp, sr, dts: ndarray = ..., maxLevel=..., termcrit=...) -> typing.Any: + 'pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]]) -> dst\n. @brief Performs initial step of meanshift segmentation of an image.\n. \n. The function implements the filtering stage of meanshift segmentation, that is, the output of the\n. function is the filtered "posterized" image with color gradients and fine-grain texture flattened.\n. At every pixel (X,Y) of the input image (or down-sized input image, see below) the function executes\n. meanshift iterations, that is, the pixel (X,Y) neighborhood in the joint space-color hyperspace is\n. considered:\n. \n. \\f[(x,y): X- \\texttt{sp} \\le x \\le X+ \\texttt{sp} , Y- \\texttt{sp} \\le y \\le Y+ \\texttt{sp} , ||(R,G,B)-(r,g,b)|| \\le \\texttt{sr}\\f]\n. \n. where (R,G,B) and (r,g,b) are the vectors of color components at (X,Y) and (x,y), respectively\n. (though, the algorithm does not depend on the color space used, so any 3-component color space can\n. be used instead). Over the neighborhood the average spatial value (X\',Y\') and average color vector\n. (R\',G\',B\') are found and they act as the neighborhood center on the next iteration:\n. \n. \\f[(X,Y)~(X\',Y\'), (R,G,B)~(R\',G\',B\').\\f]\n. \n. After the iterations over, the color components of the initial pixel (that is, the pixel from where\n. the iterations started) are set to the final value (average color at the last iteration):\n. \n. \\f[I(X,Y) <- (R*,G*,B*)\\f]\n. \n. When maxLevel \\> 0, the gaussian pyramid of maxLevel+1 levels is built, and the above procedure is\n. run on the smallest layer first. After that, the results are propagated to the larger layer and the\n. iterations are run again only on those pixels where the layer colors differ by more than sr from the\n. lower-resolution layer of the pyramid. That makes boundaries of color regions sharper. Note that the\n. results will be actually different from the ones obtained by running the meanshift procedure on the\n. whole original image (i.e. when maxLevel==0).\n. \n. @param src The source 8-bit, 3-channel image.\n. @param dst The destination image of the same format and the same size as the source.\n. @param sp The spatial window radius.\n. @param sr The color window radius.\n. @param maxLevel Maximum level of the pyramid for the segmentation.\n. @param termcrit Termination criteria: when to stop meanshift iterations.' + ... + + +def pyrUp(src: ndarray, dts: ndarray = ..., dstsize=..., borderType=...) -> typing.Any: + 'pyrUp(src[, dst[, dstsize[, borderType]]]) -> dst\n. @brief Upsamples an image and then blurs it.\n. \n. By default, size of the output image is computed as `Size(src.cols\\*2, (src.rows\\*2)`, but in any\n. case, the following conditions should be satisfied:\n. \n. \\f[\\begin{array}{l} | \\texttt{dstsize.width} -src.cols*2| \\leq ( \\texttt{dstsize.width} \\mod 2) \\\\ | \\texttt{dstsize.height} -src.rows*2| \\leq ( \\texttt{dstsize.height} \\mod 2) \\end{array}\\f]\n. \n. The function performs the upsampling step of the Gaussian pyramid construction, though it can\n. actually be used to construct the Laplacian pyramid. First, it upsamples the source image by\n. injecting even zero rows and columns and then convolves the result with the same kernel as in\n. pyrDown multiplied by 4.\n. \n. @param src input image.\n. @param dst output image. It has the specified size and the same type as src .\n. @param dstsize size of the output image.\n. @param borderType Pixel extrapolation method, see #BorderTypes (only #BORDER_DEFAULT is supported)' + ... + + +def randShuffle(dts: ndarray, iterFactor=...) -> typing.Any: + 'randShuffle(dst[, iterFactor]) -> dst\n. @brief Shuffles the array elements randomly.\n. \n. The function cv::randShuffle shuffles the specified 1D array by randomly choosing pairs of elements and\n. swapping them. The number of such swap operations will be dst.rows\\*dst.cols\\*iterFactor .\n. @param dst input/output numerical 1D array.\n. @param iterFactor scale factor that determines the number of random swap operations (see the details\n. below).\n. @param rng optional random number generator used for shuffling; if it is zero, theRNG () is used\n. instead.\n. @sa RNG, sort' + ... + + +def randn(dts: ndarray, mean, stddev) -> typing.Any: + 'randn(dst, mean, stddev) -> dst\n. @brief Fills the array with normally distributed random numbers.\n. \n. The function cv::randn fills the matrix dst with normally distributed random numbers with the specified\n. mean vector and the standard deviation matrix. The generated random numbers are clipped to fit the\n. value range of the output array data type.\n. @param dst output array of random numbers; the array must be pre-allocated and have 1 to 4 channels.\n. @param mean mean value (expectation) of the generated random numbers.\n. @param stddev standard deviation of the generated random numbers; it can be either a vector (in\n. which case a diagonal standard deviation matrix is assumed) or a square matrix.\n. @sa RNG, randu' + ... + + +def randu(dts: ndarray, low, high) -> typing.Any: + 'randu(dst, low, high) -> dst\n. @brief Generates a single uniformly-distributed random number or an array of random numbers.\n. \n. Non-template variant of the function fills the matrix dst with uniformly-distributed\n. random numbers from the specified range:\n. \\f[\\texttt{low} _c \\leq \\texttt{dst} (I)_c < \\texttt{high} _c\\f]\n. @param dst output array of random numbers; the array must be pre-allocated.\n. @param low inclusive lower boundary of the generated random numbers.\n. @param high exclusive upper boundary of the generated random numbers.\n. @sa RNG, randn, theRNG' + ... + + +def readOpticalFlow(path) -> typing.Any: + 'readOpticalFlow(path) -> retval\n. @brief Read a .flo file\n. \n. @param path Path to the file to be loaded\n. \n. The function readOpticalFlow loads a flow field from a file and returns it as a single matrix.\n. Resulting Mat has a type CV_32FC2 - floating-point, 2-channel. First channel corresponds to the\n. flow in the horizontal direction (u), second - vertical (v).' + ... + + +def recoverPose(E, points1, points2, cameraMatrix, R=..., t=..., mask: ndarray = ...) -> typing.Any: + "recoverPose(E, points1, points2, cameraMatrix[, R[, t[, mask]]]) -> retval, R, t, mask\n. @brief Recovers the relative camera rotation and the translation from an estimated essential\n. matrix and the corresponding points in two images, using cheirality check. Returns the number of\n. inliers that pass the check.\n. \n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix.\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. described below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. \n. This function decomposes an essential matrix using @ref decomposeEssentialMat and then verifies\n. possible pose hypotheses by doing cheirality check. The cheirality check means that the\n. triangulated 3D points should have positive depth. Some details can be found in @cite Nister03.\n. \n. This function can be used to process the output E and mask from @ref findEssentialMat. In this\n. scenario, points1 and points2 are the same input for findEssentialMat.:\n. @code\n. // Example. Estimation of fundamental matrix using the RANSAC algorithm\n. int point_count = 100;\n. vector points1(point_count);\n. vector points2(point_count);\n. \n. // initialize the points here ...\n. for( int i = 0; i < point_count; i++ )\n. {\n. points1[i] = ...;\n. points2[i] = ...;\n. }\n. \n. // cametra matrix with both focal lengths = 1, and principal point = (0, 0)\n. Mat cameraMatrix = Mat::eye(3, 3, CV_64F);\n. \n. Mat E, R, t, mask;\n. \n. E = findEssentialMat(points1, points2, cameraMatrix, RANSAC, 0.999, 1.0, mask);\n. recoverPose(E, points1, points2, cameraMatrix, R, t, mask);\n. @endcode\n\n\n\nrecoverPose(E, points1, points2[, R[, t[, focal[, pp[, mask]]]]]) -> retval, R, t, mask\n. @overload\n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. description below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param focal Focal length of the camera. Note that this function assumes that points1 and points2\n. are feature points from cameras with same focal length and principal point.\n. @param pp principal point of the camera.\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. \n. This function differs from the one above that it computes camera matrix from focal length and\n. principal point:\n. \n. \\f[A =\n. \\begin{bmatrix}\n. f & 0 & x_{pp} \\\\\n. 0 & f & y_{pp} \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\\f]\n\n\n\nrecoverPose(E, points1, points2, cameraMatrix, distanceThresh[, R[, t[, mask[, triangulatedPoints]]]]) -> retval, R, t, mask, triangulatedPoints\n. @overload\n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1.\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix.\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. description below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param distanceThresh threshold distance which is used to filter out far away points (i.e. infinite\n. points).\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. @param triangulatedPoints 3D points which were reconstructed by triangulation.\n. \n. This function differs from the one above that it outputs the triangulated 3D point that are used for\n. the cheirality check." + ... + + +def rectangle(img: ndarray, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a simple, thick, or filled up-right rectangle.\n. \n. The function cv::rectangle draws a rectangle outline or a filled rectangle whose two opposite corners\n. are pt1 and pt2.\n. \n. @param img Image.\n. @param pt1 Vertex of the rectangle.\n. @param pt2 Vertex of the rectangle opposite to pt1 .\n. @param color Rectangle color or brightness (grayscale image).\n. @param thickness Thickness of lines that make up the rectangle. Negative values, like #FILLED,\n. mean that the function has to draw a filled rectangle.\n. @param lineType Type of the line. See #LineTypes\n. @param shift Number of fractional bits in the point coordinates.\n\n\n\nrectangle(img, rec, color[, thickness[, lineType[, shift]]]) -> img\n. @overload\n. \n. use `rec` parameter as alternative specification of the drawn rectangle: `r.tl() and\n. r.br()-Point(1,1)` are opposite corners' + ... + + +def rectify3Collinear(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, cameraMatrix3, distCoeffs3, imgpt1, imgpt3, imageSize, R12, T12, R13, T13, alpha, newImgSize, flags: int, R1=..., R2=..., R3=..., P1=..., P2=..., P3=..., Q=...) -> typing.Any: + 'rectify3Collinear(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, cameraMatrix3, distCoeffs3, imgpt1, imgpt3, imageSize, R12, T12, R13, T13, alpha, newImgSize, flags[, R1[, R2[, R3[, P1[, P2[, P3[, Q]]]]]]]) -> retval, R1, R2, R3, P1, P2, P3, Q, roi1, roi2\n.' + ... + + +def redirectError(onError) -> typing.Any: + 'redirectError(onError) -> None' + ... + + +def reduce(src: ndarray, dim, rtype, dts: ndarray = ..., dtype=...) -> typing.Any: + 'reduce(src, dim, rtype[, dst[, dtype]]) -> dst\n. @brief Reduces a matrix to a vector.\n. \n. The function #reduce reduces the matrix to a vector by treating the matrix rows/columns as a set of\n. 1D vectors and performing the specified operation on the vectors until a single row/column is\n. obtained. For example, the function can be used to compute horizontal and vertical projections of a\n. raster image. In case of #REDUCE_MAX and #REDUCE_MIN , the output image should have the same type as the source one.\n. In case of #REDUCE_SUM and #REDUCE_AVG , the output may have a larger element bit-depth to preserve accuracy.\n. And multi-channel arrays are also supported in these two reduction modes.\n. \n. The following code demonstrates its usage for a single channel matrix.\n. @snippet snippets/core_reduce.cpp example\n. \n. And the following code demonstrates its usage for a two-channel matrix.\n. @snippet snippets/core_reduce.cpp example2\n. \n. @param src input 2D matrix.\n. @param dst output vector. Its size and type is defined by dim and dtype parameters.\n. @param dim dimension index along which the matrix is reduced. 0 means that the matrix is reduced to\n. a single row. 1 means that the matrix is reduced to a single column.\n. @param rtype reduction operation that could be one of #ReduceTypes\n. @param dtype when negative, the output vector will have the same type as the input matrix,\n. otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()).\n. @sa repeat' + ... + + +def remap(src: ndarray, map1, map2, interpolation: int, dts: ndarray = ..., borderMode=..., borderValue=...) -> typing.Any: + 'remap(src, map1, map2, interpolation[, dst[, borderMode[, borderValue]]]) -> dst\n. @brief Applies a generic geometrical transformation to an image.\n. \n. The function remap transforms the source image using the specified map:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} (map_x(x,y),map_y(x,y))\\f]\n. \n. where values of pixels with non-integer coordinates are computed using one of available\n. interpolation methods. \\f$map_x\\f$ and \\f$map_y\\f$ can be encoded as separate floating-point maps\n. in \\f$map_1\\f$ and \\f$map_2\\f$ respectively, or interleaved floating-point maps of \\f$(x,y)\\f$ in\n. \\f$map_1\\f$, or fixed-point maps created by using convertMaps. The reason you might want to\n. convert from floating to fixed-point representations of a map is that they can yield much faster\n. (\\~2x) remapping operations. In the converted case, \\f$map_1\\f$ contains pairs (cvFloor(x),\n. cvFloor(y)) and \\f$map_2\\f$ contains indices in a table of interpolation coefficients.\n. \n. This function cannot operate in-place.\n. \n. @param src Source image.\n. @param dst Destination image. It has the same size as map1 and the same type as src .\n. @param map1 The first map of either (x,y) points or just x values having the type CV_16SC2 ,\n. CV_32FC1, or CV_32FC2. See convertMaps for details on converting a floating point\n. representation to fixed-point for speed.\n. @param map2 The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map\n. if map1 is (x,y) points), respectively.\n. @param interpolation Interpolation method (see #InterpolationFlags). The method #INTER_AREA is\n. not supported by this function.\n. @param borderMode Pixel extrapolation method (see #BorderTypes). When\n. borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image that\n. corresponds to the "outliers" in the source image are not modified by the function.\n. @param borderValue Value used in case of a constant border. By default, it is 0.\n. @note\n. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.' + ... + + +def repeat(src: ndarray, ny, nx, dts: ndarray = ...) -> typing.Any: + 'repeat(src, ny, nx[, dst]) -> dst\n. @brief Fills the output array with repeated copies of the input array.\n. \n. The function cv::repeat duplicates the input array one or more times along each of the two axes:\n. \\f[\\texttt{dst} _{ij}= \\texttt{src} _{i\\mod src.rows, \\; j\\mod src.cols }\\f]\n. The second variant of the function is more convenient to use with @ref MatrixExpressions.\n. @param src input array to replicate.\n. @param ny Flag to specify how many times the `src` is repeated along the\n. vertical axis.\n. @param nx Flag to specify how many times the `src` is repeated along the\n. horizontal axis.\n. @param dst output array of the same type as `src`.\n. @sa cv::reduce' + ... + + +def reprojectImageTo3D(disparity, Q, _3dImage=..., handleMissingValues=..., ddepth=...) -> typing.Any: + "reprojectImageTo3D(disparity, Q[, _3dImage[, handleMissingValues[, ddepth]]]) -> _3dImage\n. @brief Reprojects a disparity image to 3D space.\n. \n. @param disparity Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit\n. floating-point disparity image. The values of 8-bit / 16-bit signed formats are assumed to have no\n. fractional bits. If the disparity is 16-bit signed format, as computed by @ref StereoBM or\n. @ref StereoSGBM and maybe other algorithms, it should be divided by 16 (and scaled to float) before\n. being used here.\n. @param _3dImage Output 3-channel floating-point image of the same size as disparity. Each element of\n. _3dImage(x,y) contains 3D coordinates of the point (x,y) computed from the disparity map. If one\n. uses Q obtained by @ref stereoRectify, then the returned points are represented in the first\n. camera's rectified coordinate system.\n. @param Q \\f$4 \\times 4\\f$ perspective transformation matrix that can be obtained with\n. @ref stereoRectify.\n. @param handleMissingValues Indicates, whether the function should handle missing values (i.e.\n. points where the disparity was not computed). If handleMissingValues=true, then pixels with the\n. minimal disparity that corresponds to the outliers (see StereoMatcher::compute ) are transformed\n. to 3D points with a very large Z value (currently set to 10000).\n. @param ddepth The optional output array depth. If it is -1, the output image will have CV_32F\n. depth. ddepth can also be set to CV_16S, CV_32S or CV_32F.\n. \n. The function transforms a single-channel disparity map to a 3-channel image representing a 3D\n. surface. That is, for each pixel (x,y) and the corresponding disparity d=disparity(x,y) , it\n. computes:\n. \n. \\f[\\begin{bmatrix}\n. X \\\\\n. Y \\\\\n. Z \\\\\n. W\n. \\end{bmatrix} = Q \\begin{bmatrix}\n. x \\\\\n. y \\\\\n. \\texttt{disparity} (x,y) \\\\\n. z\n. \\end{bmatrix}.\\f]\n. \n. @sa\n. To reproject a sparse set of points {(x,y,d),...} to 3D space, use perspectiveTransform." + ... + + +def resize(src: ndarray, dsize: typing.Tuple[int, int], dts: ndarray = ..., fx: int = ..., fy: int = ..., interpolation: int = ...) -> ndarray: + 'resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) -> dst\n. @brief Resizes an image.\n. \n. The function resize resizes the image src down to or up to the specified size. Note that the\n. initial dst type or size are not taken into account. Instead, the size and type are derived from\n. the `src`,`dsize`,`fx`, and `fy`. If you want to resize src so that it fits the pre-created dst,\n. you may call the function as follows:\n. @code\n. // explicitly specify dsize=dst.size(); fx and fy will be computed from that.\n. resize(src, dst, dst.size(), 0, 0, interpolation);\n. @endcode\n. If you want to decimate the image by factor of 2 in each direction, you can call the function this\n. way:\n. @code\n. // specify fx and fy and let the function compute the destination image size.\n. resize(src, dst, Size(), 0.5, 0.5, interpolation);\n. @endcode\n. To shrink an image, it will generally look best with #INTER_AREA interpolation, whereas to\n. enlarge an image, it will generally look best with c#INTER_CUBIC (slow) or #INTER_LINEAR\n. (faster but still looks OK).\n. \n. @param src input image.\n. @param dst output image; it has the size dsize (when it is non-zero) or the size computed from\n. src.size(), fx, and fy; the type of dst is the same as of src.\n. @param dsize output image size; if it equals zero, it is computed as:\n. \\f[\\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\\f]\n. Either dsize or both fx and fy must be non-zero.\n. @param fx scale factor along the horizontal axis; when it equals 0, it is computed as\n. \\f[\\texttt{(double)dsize.width/src.cols}\\f]\n. @param fy scale factor along the vertical axis; when it equals 0, it is computed as\n. \\f[\\texttt{(double)dsize.height/src.rows}\\f]\n. @param interpolation interpolation method, see #InterpolationFlags\n. \n. @sa warpAffine, warpPerspective, remap' + ... + + +def resizeWindow(winname, width, height) -> typing.Any: + 'resizeWindow(winname, width, height) -> None\n. @brief Resizes window to the specified size\n. \n. @note\n. \n. - The specified window size is for the image area. Toolbars are not counted.\n. - Only windows created without cv::WINDOW_AUTOSIZE flag can be resized.\n. \n. @param winname Window name.\n. @param width The new window width.\n. @param height The new window height.\n\n\n\nresizeWindow(winname, size) -> None\n. @overload\n. @param winname Window name.\n. @param size The new window size.' + ... + + +def rotate(src: ndarray, rotateCode, dts: ndarray = ...) -> typing.Any: + 'rotate(src, rotateCode[, dst]) -> dst\n. @brief Rotates a 2D array in multiples of 90 degrees.\n. The function cv::rotate rotates the array in one of three different ways:\n. * Rotate by 90 degrees clockwise (rotateCode = ROTATE_90_CLOCKWISE).\n. * Rotate by 180 degrees clockwise (rotateCode = ROTATE_180).\n. * Rotate by 270 degrees clockwise (rotateCode = ROTATE_90_COUNTERCLOCKWISE).\n. @param src input array.\n. @param dst output array of the same type as src. The size is the same with ROTATE_180,\n. and the rows and cols are switched for ROTATE_90_CLOCKWISE and ROTATE_90_COUNTERCLOCKWISE.\n. @param rotateCode an enum to specify how to rotate the array; see the enum #RotateFlags\n. @sa transpose , repeat , completeSymm, flip, RotateFlags' + ... + + +def rotatedRectangleIntersection(rect1, rect2, intersectingRegion=...) -> typing.Any: + 'rotatedRectangleIntersection(rect1, rect2[, intersectingRegion]) -> retval, intersectingRegion\n. @brief Finds out if there is any intersection between two rotated rectangles.\n. \n. If there is then the vertices of the intersecting region are returned as well.\n. \n. Below are some examples of intersection configurations. The hatched pattern indicates the\n. intersecting region and the red vertices are returned by the function.\n. \n. ![intersection examples](pics/intersection.png)\n. \n. @param rect1 First rectangle\n. @param rect2 Second rectangle\n. @param intersectingRegion The output array of the vertices of the intersecting region. It returns\n. at most 8 vertices. Stored as std::vector\\ or cv::Mat as Mx1 of type CV_32FC2.\n. @returns One of #RectanglesIntersectTypes' + ... + + +def sampsonDistance(pt1, pt2, F) -> typing.Any: + 'sampsonDistance(pt1, pt2, F) -> retval\n. @brief Calculates the Sampson Distance between two points.\n. \n. The function cv::sampsonDistance calculates and returns the first order approximation of the geometric error as:\n. \\f[\n. sd( \\texttt{pt1} , \\texttt{pt2} )=\n. \\frac{(\\texttt{pt2}^t \\cdot \\texttt{F} \\cdot \\texttt{pt1})^2}\n. {((\\texttt{F} \\cdot \\texttt{pt1})(0))^2 +\n. ((\\texttt{F} \\cdot \\texttt{pt1})(1))^2 +\n. ((\\texttt{F}^t \\cdot \\texttt{pt2})(0))^2 +\n. ((\\texttt{F}^t \\cdot \\texttt{pt2})(1))^2}\n. \\f]\n. The fundamental matrix may be calculated using the cv::findFundamentalMat function. See @cite HartleyZ00 11.4.3 for details.\n. @param pt1 first homogeneous 2d point\n. @param pt2 second homogeneous 2d point\n. @param F fundamental matrix\n. @return The computed Sampson distance.' + ... + + +def scaleAdd(src1: ndarray, alpha, src2: ndarray, dts: ndarray = ...) -> typing.Any: + 'scaleAdd(src1, alpha, src2[, dst]) -> dst\n. @brief Calculates the sum of a scaled array and another array.\n. \n. The function scaleAdd is one of the classical primitive linear algebra operations, known as DAXPY\n. or SAXPY in [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms). It calculates\n. the sum of a scaled array and another array:\n. \\f[\\texttt{dst} (I)= \\texttt{scale} \\cdot \\texttt{src1} (I) + \\texttt{src2} (I)\\f]\n. The function can also be emulated with a matrix expression, for example:\n. @code{.cpp}\n. Mat A(3, 3, CV_64F);\n. ...\n. A.row(0) = A.row(1)*2 + A.row(2);\n. @endcode\n. @param src1 first input array.\n. @param alpha scale factor for the first array.\n. @param src2 second input array of the same size and type as src1.\n. @param dst output array of the same size and type as src1.\n. @sa add, addWeighted, subtract, Mat::dot, Mat::convertTo' + ... + + +def seamlessClone(src: ndarray, dts: ndarray, mask: typing.Optional[ndarray], p, flags: int, blend=...) -> typing.Any: + 'seamlessClone(src, dst, mask, p, flags[, blend]) -> blend\n. @brief Image editing tasks concern either global changes (color/intensity corrections, filters,\n. deformations) or local changes concerned to a selection. Here we are interested in achieving local\n. changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless\n. manner. The extent of the changes ranges from slight distortions to complete replacement by novel\n. content @cite PM03 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param p Point in dst image where object is placed.\n. @param blend Output image with the same size and type as dst.\n. @param flags Cloning method that could be cv::NORMAL_CLONE, cv::MIXED_CLONE or cv::MONOCHROME_TRANSFER' + ... + + +def selectROI(windowName, img: ndarray, showCrosshair=..., fromCenter=...) -> typing.Any: + "selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval\n. @brief Selects ROI on the given image.\n. Function creates a window and allows user to select a ROI using mouse.\n. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).\n. \n. @param windowName name of the window where selection process will be shown.\n. @param img image to select a ROI.\n. @param showCrosshair if true crosshair of selection rectangle will be shown.\n. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of\n. selection rectangle will correspont to the initial mouse position.\n. @return selected ROI or empty rect if selection canceled.\n. \n. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).\n. After finish of work an empty callback will be set for the used window.\n\n\n\nselectROI(img[, showCrosshair[, fromCenter]]) -> retval\n. @overload" + ... + + +def selectROIs(windowName, img: ndarray, showCrosshair=..., fromCenter=...) -> typing.Any: + "selectROIs(windowName, img[, showCrosshair[, fromCenter]]) -> boundingBoxes\n. @brief Selects ROIs on the given image.\n. Function creates a window and allows user to select a ROIs using mouse.\n. Controls: use `space` or `enter` to finish current selection and start a new one,\n. use `esc` to terminate multiple ROI selection process.\n. \n. @param windowName name of the window where selection process will be shown.\n. @param img image to select a ROI.\n. @param boundingBoxes selected ROIs.\n. @param showCrosshair if true crosshair of selection rectangle will be shown.\n. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of\n. selection rectangle will correspont to the initial mouse position.\n. \n. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).\n. After finish of work an empty callback will be set for the used window." + ... + + +def sepFilter2D(src: ndarray, ddepth, kernelX, kernelY, dts: ndarray = ..., anchor=..., delta=..., borderType=...) -> typing.Any: + 'sepFilter2D(src, ddepth, kernelX, kernelY[, dst[, anchor[, delta[, borderType]]]]) -> dst\n. @brief Applies a separable linear filter to an image.\n. \n. The function applies a separable linear filter to the image. That is, first, every row of src is\n. filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D\n. kernel kernelY. The final result shifted by delta is stored in dst .\n. \n. @param src Source image.\n. @param dst Destination image of the same size and the same number of channels as src .\n. @param ddepth Destination image depth, see @ref filter_depths "combinations"\n. @param kernelX Coefficients for filtering each row.\n. @param kernelY Coefficients for filtering each column.\n. @param anchor Anchor position within the kernel. The default value \\f$(-1,-1)\\f$ means that the anchor\n. is at the kernel center.\n. @param delta Value added to the filtered results before storing them.\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa filter2D, Sobel, GaussianBlur, boxFilter, blur' + ... + + +def setIdentity(mtx, s=...) -> typing.Any: + 'setIdentity(mtx[, s]) -> mtx\n. @brief Initializes a scaled identity matrix.\n. \n. The function cv::setIdentity initializes a scaled identity matrix:\n. \\f[\\texttt{mtx} (i,j)= \\fork{\\texttt{value}}{ if \\(i=j\\)}{0}{otherwise}\\f]\n. \n. The function can also be emulated using the matrix initializers and the\n. matrix expressions:\n. @code\n. Mat A = Mat::eye(4, 3, CV_32F)*5;\n. // A will be set to [[5, 0, 0], [0, 5, 0], [0, 0, 5], [0, 0, 0]]\n. @endcode\n. @param mtx matrix to initialize (not necessarily square).\n. @param s value to assign to diagonal elements.\n. @sa Mat::zeros, Mat::ones, Mat::setTo, Mat::operator=' + ... + + +def setMouseCallback(windowName, onMouse, param=...) -> typing.Any: + 'setMouseCallback(windowName, onMouse [, param]) -> None' + ... + + +def setNumThreads(nthreads) -> typing.Any: + "setNumThreads(nthreads) -> None\n. @brief OpenCV will try to set the number of threads for the next parallel region.\n. \n. If threads == 0, OpenCV will disable threading optimizations and run all it's functions\n. sequentially. Passing threads \\< 0 will reset threads number to system default. This function must\n. be called outside of parallel region.\n. \n. OpenCV will try to run its functions with specified threads number, but some behaviour differs from\n. framework:\n. - `TBB` - User-defined parallel constructions will run with the same threads number, if\n. another is not specified. If later on user creates his own scheduler, OpenCV will use it.\n. - `OpenMP` - No special defined behaviour.\n. - `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run its\n. functions sequentially.\n. - `GCD` - Supports only values \\<= 0.\n. - `C=` - No special defined behaviour.\n. @param nthreads Number of threads used by OpenCV.\n. @sa getNumThreads, getThreadNum" + ... + + +def setRNGSeed(seed) -> typing.Any: + 'setRNGSeed(seed) -> None\n. @brief Sets state of default random number generator.\n. \n. The function cv::setRNGSeed sets state of default random number generator to custom value.\n. @param seed new state for default random number generator\n. @sa RNG, randu, randn' + ... + + +def setTrackbarMax(trackbarname, winname, maxval) -> typing.Any: + 'setTrackbarMax(trackbarname, winname, maxval) -> None\n. @brief Sets the trackbar maximum position.\n. \n. The function sets the maximum position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param maxval New maximum position.' + ... + + +def setTrackbarMin(trackbarname, winname, minval) -> typing.Any: + 'setTrackbarMin(trackbarname, winname, minval) -> None\n. @brief Sets the trackbar minimum position.\n. \n. The function sets the minimum position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param minval New minimum position.' + ... + + +def setTrackbarPos(trackbarname, winname, pos) -> typing.Any: + 'setTrackbarPos(trackbarname, winname, pos) -> None\n. @brief Sets the trackbar position.\n. \n. The function sets the position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param pos New position.' + ... + + +def setUseOpenVX(flag) -> typing.Any: + 'setUseOpenVX(flag) -> None\n.' + ... + + +def setUseOptimized(onoff) -> typing.Any: + 'setUseOptimized(onoff) -> None\n. @brief Enables or disables the optimized code.\n. \n. The function can be used to dynamically turn on and off optimized dispatched code (code that uses SSE4.2, AVX/AVX2,\n. and other instructions on the platforms that support it). It sets a global flag that is further\n. checked by OpenCV functions. Since the flag is not checked in the inner OpenCV loops, it is only\n. safe to call the function on the very top level in your application where you can be sure that no\n. other OpenCV function is currently executed.\n. \n. By default, the optimized code is enabled unless you disable it in CMake. The current status can be\n. retrieved using useOptimized.\n. @param onoff The boolean flag specifying whether the optimized code should be used (onoff=true)\n. or not (onoff=false).' + ... + + +def setWindowProperty(winname, prop_id, prop_value) -> typing.Any: + 'setWindowProperty(winname, prop_id, prop_value) -> None\n. @brief Changes parameters of a window dynamically.\n. \n. The function setWindowProperty enables changing properties of a window.\n. \n. @param winname Name of the window.\n. @param prop_id Window property to edit. The supported operation flags are: (cv::WindowPropertyFlags)\n. @param prop_value New value of the window property. The supported flags are: (cv::WindowFlags)' + ... + + +def setWindowTitle(winname, title) -> typing.Any: + 'setWindowTitle(winname, title) -> None\n. @brief Updates window title\n. @param winname Name of the window.\n. @param title New title.' + ... + + +def solve(src1: ndarray, src2: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'solve(src1, src2[, dst[, flags]]) -> retval, dst\n. @brief Solves one or more linear systems or least-squares problems.\n. \n. The function cv::solve solves a linear system or least-squares problem (the\n. latter is possible with SVD or QR methods, or by specifying the flag\n. #DECOMP_NORMAL ):\n. \\f[\\texttt{dst} = \\arg \\min _X \\| \\texttt{src1} \\cdot \\texttt{X} - \\texttt{src2} \\|\\f]\n. \n. If #DECOMP_LU or #DECOMP_CHOLESKY method is used, the function returns 1\n. if src1 (or \\f$\\texttt{src1}^T\\texttt{src1}\\f$ ) is non-singular. Otherwise,\n. it returns 0. In the latter case, dst is not valid. Other methods find a\n. pseudo-solution in case of a singular left-hand side part.\n. \n. @note If you want to find a unity-norm solution of an under-defined\n. singular system \\f$\\texttt{src1}\\cdot\\texttt{dst}=0\\f$ , the function solve\n. will not do the work. Use SVD::solveZ instead.\n. \n. @param src1 input matrix on the left-hand side of the system.\n. @param src2 input matrix on the right-hand side of the system.\n. @param dst output solution.\n. @param flags solution (matrix inversion) method (#DecompTypes)\n. @sa invert, SVD, eigen' + ... + + +def solveCubic(coeffs, roots=...) -> typing.Any: + 'solveCubic(coeffs[, roots]) -> retval, roots\n. @brief Finds the real roots of a cubic equation.\n. \n. The function solveCubic finds the real roots of a cubic equation:\n. - if coeffs is a 4-element vector:\n. \\f[\\texttt{coeffs} [0] x^3 + \\texttt{coeffs} [1] x^2 + \\texttt{coeffs} [2] x + \\texttt{coeffs} [3] = 0\\f]\n. - if coeffs is a 3-element vector:\n. \\f[x^3 + \\texttt{coeffs} [0] x^2 + \\texttt{coeffs} [1] x + \\texttt{coeffs} [2] = 0\\f]\n. \n. The roots are stored in the roots array.\n. @param coeffs equation coefficients, an array of 3 or 4 elements.\n. @param roots output array of real roots that has 1 or 3 elements.\n. @return number of real roots. It can be 0, 1 or 2.' + ... + + +def solveLP(Func, Constr, z=...) -> typing.Any: + 'solveLP(Func, Constr[, z]) -> retval, z\n. @brief Solve given (non-integer) linear programming problem using the Simplex Algorithm (Simplex Method).\n. \n. What we mean here by "linear programming problem" (or LP problem, for short) can be formulated as:\n. \n. \\f[\\mbox{Maximize } c\\cdot x\\\\\n. \\mbox{Subject to:}\\\\\n. Ax\\leq b\\\\\n. x\\geq 0\\f]\n. \n. Where \\f$c\\f$ is fixed `1`-by-`n` row-vector, \\f$A\\f$ is fixed `m`-by-`n` matrix, \\f$b\\f$ is fixed `m`-by-`1`\n. column vector and \\f$x\\f$ is an arbitrary `n`-by-`1` column vector, which satisfies the constraints.\n. \n. Simplex algorithm is one of many algorithms that are designed to handle this sort of problems\n. efficiently. Although it is not optimal in theoretical sense (there exist algorithms that can solve\n. any problem written as above in polynomial time, while simplex method degenerates to exponential\n. time for some special cases), it is well-studied, easy to implement and is shown to work well for\n. real-life purposes.\n. \n. The particular implementation is taken almost verbatim from **Introduction to Algorithms, third\n. edition** by T. H. Cormen, C. E. Leiserson, R. L. Rivest and Clifford Stein. In particular, the\n. Bland\'s rule is used to prevent cycling.\n. \n. @param Func This row-vector corresponds to \\f$c\\f$ in the LP problem formulation (see above). It should\n. contain 32- or 64-bit floating point numbers. As a convenience, column-vector may be also submitted,\n. in the latter case it is understood to correspond to \\f$c^T\\f$.\n. @param Constr `m`-by-`n+1` matrix, whose rightmost column corresponds to \\f$b\\f$ in formulation above\n. and the remaining to \\f$A\\f$. It should contain 32- or 64-bit floating point numbers.\n. @param z The solution will be returned here as a column-vector - it corresponds to \\f$c\\f$ in the\n. formulation above. It will contain 64-bit floating point numbers.\n. @return One of cv::SolveLPResult' + ... + + +def solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags: int, rvecs=..., tvecs=...) -> typing.Any: + 'solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags[, rvecs[, tvecs]]) -> retval, rvecs, tvecs\n. @brief Finds an object pose from 3 3D-2D point correspondences.\n. \n. @param objectPoints Array of object points in the object coordinate space, 3x3 1-channel or\n. 1x3/3x1 3-channel. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, 3x2 1-channel or 1x3/3x1 2-channel.\n. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvecs Output rotation vectors (see @ref Rodrigues ) that, together with tvecs, brings points from\n. the model coordinate system to the camera coordinate system. A P3P problem has up to 4 solutions.\n. @param tvecs Output translation vectors.\n. @param flags Method for solving a P3P problem:\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke and S. Roumeliotis.\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. \n. The function estimates the object pose given 3 object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients.\n. \n. @note\n. The solutions are sorted by reprojection errors (lowest to highest).' + ... + + +def solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., flags: int = ...) -> typing.Any: + 'solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, flags]]]]) -> retval, rvec, tvec\n. @brief Finds an object pose from 3D-2D point correspondences.\n. This function returns the rotation and the translation vectors that transform a 3D point expressed in the object\n. coordinate frame to the camera coordinate frame, using different methods:\n. - P3P methods (@ref SOLVEPNP_P3P, @ref SOLVEPNP_AP3P): need 4 input points to return a unique solution.\n. - @ref SOLVEPNP_IPPE Input points must be >= 4 and object points must be coplanar.\n. - @ref SOLVEPNP_IPPE_SQUARE Special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. - for all the other flags, number of input points must be >= 4 and object points can be in any configuration.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Output translation vector.\n. @param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param flags Method for solving a PnP problem:\n. - **SOLVEPNP_ITERATIVE** Iterative method is based on a Levenberg-Marquardt optimization. In\n. this case the function finds such a pose that minimizes reprojection error, that is the sum\n. of squared distances between the observed projections imagePoints and the projected (using\n. projectPoints ) objectPoints .\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_EPNP** Method has been introduced by F. Moreno-Noguer, V. Lepetit and P. Fua in the\n. paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).\n. - **SOLVEPNP_DLS** Method is based on the paper of J. Hesch and S. Roumeliotis.\n. "A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).\n. - **SOLVEPNP_UPNP** Method is based on the paper of A. Penate-Sanchez, J. Andrade-Cetto,\n. F. Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length\n. Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \\f$f_x\\f$ and \\f$f_y\\f$\n. assuming that both have the same value. Then the cameraMatrix is updated with the estimated\n. focal length.\n. - **SOLVEPNP_IPPE** Method is based on the paper of T. Collins and A. Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method requires coplanar object points.\n. - **SOLVEPNP_IPPE_SQUARE** Method is based on the paper of Toby Collins and Adrien Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method is suitable for marker pose estimation.\n. It requires 4 coplanar object points defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. \n. The function estimates the object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients, see the figure below\n. (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward\n. and the Z-axis forward).\n. \n. ![](pnp.jpg)\n. \n. Points expressed in the world frame \\f$ \\bf{X}_w \\f$ are projected into the image plane \\f$ \\left[ u, v \\right] \\f$\n. using the perspective projection model \\f$ \\Pi \\f$ and the camera intrinsic parameters matrix \\f$ \\bf{A} \\f$:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\bf{A} \\hspace{0.1em} \\Pi \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. f_x & 0 & c_x \\\\\n. 0 & f_y & c_y \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. 1 & 0 & 0 & 0 \\\\\n. 0 & 1 & 0 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow transforming\n. a 3D point expressed in the world frame into the camera frame:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. @note\n. - An example of how to use solvePnP for planar augmented reality can be found at\n. opencv_source_code/samples/python/plane_ar.py\n. - If you are using Python:\n. - Numpy array slices won\'t work as input because solvePnP requires contiguous\n. arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of\n. modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. - The P3P algorithm requires image points to be in an array of shape (N,1,2) due\n. to its calling of cv::undistortPoints (around line 75 of modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. which requires 2-channel information.\n. - Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of\n. it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =\n. np.ascontiguousarray(D[:,:2]).reshape((N,1,2))\n. - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are\n. unstable and sometimes give completely wrong results. If you pass one of these two\n. flags, **SOLVEPNP_EPNP** method will be used instead.\n. - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**\n. methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions\n. of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).\n. - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points\n. are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the\n. global solution to converge.\n. - With **SOLVEPNP_IPPE** input points must be >= 4 and object points must be coplanar.\n. - With **SOLVEPNP_IPPE_SQUARE** this is a special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]' + ... + + +def solvePnPGeneric(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., useExtrinsicGuess=..., flags: int = ..., rvec=..., tvec=..., reprojectionError=...) -> typing.Any: + 'solvePnPGeneric(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvecs[, tvecs[, useExtrinsicGuess[, flags[, rvec[, tvec[, reprojectionError]]]]]]]) -> retval, rvecs, tvecs, reprojectionError\n. @brief Finds an object pose from 3D-2D point correspondences.\n. This function returns a list of all the possible solutions (a solution is a \n. couple), depending on the number of input points and the chosen method:\n. - P3P methods (@ref SOLVEPNP_P3P, @ref SOLVEPNP_AP3P): 3 or 4 input points. Number of returned solutions can be between 0 and 4 with 3 input points.\n. - @ref SOLVEPNP_IPPE Input points must be >= 4 and object points must be coplanar. Returns 2 solutions.\n. - @ref SOLVEPNP_IPPE_SQUARE Special case suitable for marker pose estimation.\n. Number of input points must be 4 and 2 solutions are returned. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. - for all the other flags, number of input points must be >= 4 and object points can be in any configuration.\n. Only 1 solution is returned.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvecs Vector of output rotation vectors (see @ref Rodrigues ) that, together with tvecs, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvecs Vector of output translation vectors.\n. @param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param flags Method for solving a PnP problem:\n. - **SOLVEPNP_ITERATIVE** Iterative method is based on a Levenberg-Marquardt optimization. In\n. this case the function finds such a pose that minimizes reprojection error, that is the sum\n. of squared distances between the observed projections imagePoints and the projected (using\n. projectPoints ) objectPoints .\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_EPNP** Method has been introduced by F.Moreno-Noguer, V.Lepetit and P.Fua in the\n. paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).\n. - **SOLVEPNP_DLS** Method is based on the paper of Joel A. Hesch and Stergios I. Roumeliotis.\n. "A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).\n. - **SOLVEPNP_UPNP** Method is based on the paper of A.Penate-Sanchez, J.Andrade-Cetto,\n. F.Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length\n. Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \\f$f_x\\f$ and \\f$f_y\\f$\n. assuming that both have the same value. Then the cameraMatrix is updated with the estimated\n. focal length.\n. - **SOLVEPNP_IPPE** Method is based on the paper of T. Collins and A. Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method requires coplanar object points.\n. - **SOLVEPNP_IPPE_SQUARE** Method is based on the paper of Toby Collins and Adrien Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method is suitable for marker pose estimation.\n. It requires 4 coplanar object points defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. @param rvec Rotation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE\n. and useExtrinsicGuess is set to true.\n. @param tvec Translation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE\n. and useExtrinsicGuess is set to true.\n. @param reprojectionError Optional vector of reprojection error, that is the RMS error\n. (\\f$ \\text{RMSE} = \\sqrt{\\frac{\\sum_{i}^{N} \\left ( \\hat{y_i} - y_i \\right )^2}{N}} \\f$) between the input image points\n. and the 3D object points projected with the estimated pose.\n. \n. The function estimates the object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients, see the figure below\n. (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward\n. and the Z-axis forward).\n. \n. ![](pnp.jpg)\n. \n. Points expressed in the world frame \\f$ \\bf{X}_w \\f$ are projected into the image plane \\f$ \\left[ u, v \\right] \\f$\n. using the perspective projection model \\f$ \\Pi \\f$ and the camera intrinsic parameters matrix \\f$ \\bf{A} \\f$:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\bf{A} \\hspace{0.1em} \\Pi \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. f_x & 0 & c_x \\\\\n. 0 & f_y & c_y \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. 1 & 0 & 0 & 0 \\\\\n. 0 & 1 & 0 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow transforming\n. a 3D point expressed in the world frame into the camera frame:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. @note\n. - An example of how to use solvePnP for planar augmented reality can be found at\n. opencv_source_code/samples/python/plane_ar.py\n. - If you are using Python:\n. - Numpy array slices won\'t work as input because solvePnP requires contiguous\n. arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of\n. modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. - The P3P algorithm requires image points to be in an array of shape (N,1,2) due\n. to its calling of cv::undistortPoints (around line 75 of modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. which requires 2-channel information.\n. - Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of\n. it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =\n. np.ascontiguousarray(D[:,:2]).reshape((N,1,2))\n. - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are\n. unstable and sometimes give completely wrong results. If you pass one of these two\n. flags, **SOLVEPNP_EPNP** method will be used instead.\n. - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**\n. methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions\n. of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).\n. - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points\n. are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the\n. global solution to converge.\n. - With **SOLVEPNP_IPPE** input points must be >= 4 and object points must be coplanar.\n. - With **SOLVEPNP_IPPE_SQUARE** this is a special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]' + ... + + +def solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., iterationsCount=..., reprojectionError=..., confidence=..., inliers=..., flags: int = ...) -> typing.Any: + 'solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, iterationsCount[, reprojectionError[, confidence[, inliers[, flags]]]]]]]]) -> retval, rvec, tvec, inliers\n. @brief Finds an object pose from 3D-2D point correspondences using the RANSAC scheme.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{fx}{0}{cx}{0}{fy}{cy}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Output translation vector.\n. @param useExtrinsicGuess Parameter used for @ref SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param iterationsCount Number of iterations.\n. @param reprojectionError Inlier threshold value used by the RANSAC procedure. The parameter value\n. is the maximum allowed distance between the observed and computed point projections to consider it\n. an inlier.\n. @param confidence The probability that the algorithm produces a useful result.\n. @param inliers Output vector that contains indices of inliers in objectPoints and imagePoints .\n. @param flags Method for solving a PnP problem (see @ref solvePnP ).\n. \n. The function estimates an object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients. This function finds such\n. a pose that minimizes reprojection error, that is, the sum of squared distances between the observed\n. projections imagePoints and the projected (using @ref projectPoints ) objectPoints. The use of RANSAC\n. makes the function resistant to outliers.\n. \n. @note\n. - An example of how to use solvePNPRansac for object detection can be found at\n. opencv_source_code/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/\n. - The default method used to estimate the camera pose for the Minimal Sample Sets step\n. is #SOLVEPNP_EPNP. Exceptions are:\n. - if you choose #SOLVEPNP_P3P or #SOLVEPNP_AP3P, these methods will be used.\n. - if the number of input points is equal to 4, #SOLVEPNP_P3P is used.\n. - The method used to estimate the camera pose using all the inliers is defined by the\n. flags parameters unless it is equal to #SOLVEPNP_P3P or #SOLVEPNP_AP3P. In this case,\n. the method #SOLVEPNP_EPNP will be used instead.' + ... + + +def solvePnPRefineLM(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=...) -> typing.Any: + 'solvePnPRefineLM(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec[, criteria]) -> rvec, tvec\n. @brief Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame\n. to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Input/Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system. Input values are used as an initial solution.\n. @param tvec Input/Output translation vector. Input values are used as an initial solution.\n. @param criteria Criteria when to stop the Levenberg-Marquard iterative algorithm.\n. \n. The function refines the object pose given at least 3 object points, their corresponding image\n. projections, an initial solution for the rotation and translation vector,\n. as well as the camera matrix and the distortion coefficients.\n. The function minimizes the projection error with respect to the rotation and the translation vectors, according\n. to a Levenberg-Marquardt iterative minimization @cite Madsen04 @cite Eade13 process.' + ... + + +def solvePnPRefineVVS(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=..., VVSlambda=...) -> typing.Any: + 'solvePnPRefineVVS(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec[, criteria[, VVSlambda]]) -> rvec, tvec\n. @brief Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame\n. to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Input/Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system. Input values are used as an initial solution.\n. @param tvec Input/Output translation vector. Input values are used as an initial solution.\n. @param criteria Criteria when to stop the Levenberg-Marquard iterative algorithm.\n. @param VVSlambda Gain for the virtual visual servoing control law, equivalent to the \\f$\\alpha\\f$\n. gain in the Damped Gauss-Newton formulation.\n. \n. The function refines the object pose given at least 3 object points, their corresponding image\n. projections, an initial solution for the rotation and translation vector,\n. as well as the camera matrix and the distortion coefficients.\n. The function minimizes the projection error with respect to the rotation and the translation vectors, using a\n. virtual visual servoing (VVS) @cite Chaumette06 @cite Marchand16 scheme.' + ... + + +def solvePoly(coeffs, roots=..., maxIters=...) -> typing.Any: + 'solvePoly(coeffs[, roots[, maxIters]]) -> retval, roots\n. @brief Finds the real or complex roots of a polynomial equation.\n. \n. The function cv::solvePoly finds real and complex roots of a polynomial equation:\n. \\f[\\texttt{coeffs} [n] x^{n} + \\texttt{coeffs} [n-1] x^{n-1} + ... + \\texttt{coeffs} [1] x + \\texttt{coeffs} [0] = 0\\f]\n. @param coeffs array of polynomial coefficients.\n. @param roots output (complex) array of roots.\n. @param maxIters maximum number of iterations the algorithm does.' + ... + + +def sort(src: ndarray, flags: int, dts: ndarray = ...) -> typing.Any: + 'sort(src, flags[, dst]) -> dst\n. @brief Sorts each row or each column of a matrix.\n. \n. The function cv::sort sorts each matrix row or each matrix column in\n. ascending or descending order. So you should pass two operation flags to\n. get desired behaviour. If you want to sort matrix rows or columns\n. lexicographically, you can use STL std::sort generic function with the\n. proper comparison predicate.\n. \n. @param src input single-channel array.\n. @param dst output array of the same size and type as src.\n. @param flags operation flags, a combination of #SortFlags\n. @sa sortIdx, randShuffle' + ... + + +def sortIdx(src: ndarray, flags: int, dts: ndarray = ...) -> typing.Any: + 'sortIdx(src, flags[, dst]) -> dst\n. @brief Sorts each row or each column of a matrix.\n. \n. The function cv::sortIdx sorts each matrix row or each matrix column in the\n. ascending or descending order. So you should pass two operation flags to\n. get desired behaviour. Instead of reordering the elements themselves, it\n. stores the indices of sorted elements in the output array. For example:\n. @code\n. Mat A = Mat::eye(3,3,CV_32F), B;\n. sortIdx(A, B, SORT_EVERY_ROW + SORT_ASCENDING);\n. // B will probably contain\n. // (because of equal elements in A some permutations are possible):\n. // [[1, 2, 0], [0, 2, 1], [0, 1, 2]]\n. @endcode\n. @param src input single-channel array.\n. @param dst output integer array of the same size as src.\n. @param flags operation flags that could be a combination of cv::SortFlags\n. @sa sort, randShuffle' + ... + + +def spatialGradient(src: ndarray, dx=..., dy=..., ksize=..., borderType=...) -> typing.Any: + 'spatialGradient(src[, dx[, dy[, ksize[, borderType]]]]) -> dx, dy\n. @brief Calculates the first order image derivative in both x and y using a Sobel operator\n. \n. Equivalent to calling:\n. \n. @code\n. Sobel( src, dx, CV_16SC1, 1, 0, 3 );\n. Sobel( src, dy, CV_16SC1, 0, 1, 3 );\n. @endcode\n. \n. @param src input image.\n. @param dx output image with first-order derivative in x.\n. @param dy output image with first-order derivative in y.\n. @param ksize size of Sobel kernel. It must be 3.\n. @param borderType pixel extrapolation method, see #BorderTypes.\n. Only #BORDER_DEFAULT=#BORDER_REFLECT_101 and #BORDER_REPLICATE are supported.\n. \n. @sa Sobel' + ... + + +def split(m, mv=...) -> typing.Any: + 'split(m[, mv]) -> mv\n. @overload\n. @param m input multi-channel array.\n. @param mv output vector of arrays; the arrays themselves are reallocated, if needed.' + ... + + +def sqrBoxFilter(src: ndarray, ddepth, ksize, dts: ndarray = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: + "sqrBoxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst\n. @brief Calculates the normalized sum of squares of the pixel values overlapping the filter.\n. \n. For every pixel \\f$ (x, y) \\f$ in the source image, the function calculates the sum of squares of those neighboring\n. pixel values which overlap the filter placed over the pixel \\f$ (x, y) \\f$.\n. \n. The unnormalized square box filter can be useful in computing local image statistics such as the the local\n. variance and standard deviation around the neighborhood of a pixel.\n. \n. @param src input image\n. @param dst output image of the same size and type as _src\n. @param ddepth the output image depth (-1 to use src.depth())\n. @param ksize kernel size\n. @param anchor kernel anchor point. The default value of Point(-1, -1) denotes that the anchor is at the kernel\n. center.\n. @param normalize flag, specifying whether the kernel is to be normalized by it's area or not.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa boxFilter" + ... + + +def sqrt(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'sqrt(src[, dst]) -> dst\n. @brief Calculates a square root of array elements.\n. \n. The function cv::sqrt calculates a square root of each input array element.\n. In case of multi-channel arrays, each channel is processed\n. independently. The accuracy is approximately the same as of the built-in\n. std::sqrt .\n. @param src input floating-point array.\n. @param dst output array of the same size and type as src.' + ... + + +def startWindowThread() -> typing.Any: + 'startWindowThread() -> retval\n.' + ... + + +def stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R=..., T=..., E=..., F=..., flags: int = ..., criteria=...) -> typing.Any: + 'stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize[, R[, T[, E[, F[, flags[, criteria]]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F\n.' + ... + + +def stereoCalibrateExtended(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, E=..., F=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: + "stereoCalibrateExtended(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T[, E[, F[, perViewErrors[, flags[, criteria]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F, perViewErrors\n. @brief Calibrates a stereo camera set up. This function finds the intrinsic parameters\n. for each of the two cameras and the extrinsic parameters between the two cameras.\n. \n. @param objectPoints Vector of vectors of the calibration pattern points. The same structure as\n. in @ref calibrateCamera. For each pattern view, both cameras need to see the same object\n. points. Therefore, objectPoints.size(), imagePoints1.size(), and imagePoints2.size() need to be\n. equal as well as objectPoints[i].size(), imagePoints1[i].size(), and imagePoints2[i].size() need to\n. be equal for each i.\n. @param imagePoints1 Vector of vectors of the projections of the calibration pattern points,\n. observed by the first camera. The same structure as in @ref calibrateCamera.\n. @param imagePoints2 Vector of vectors of the projections of the calibration pattern points,\n. observed by the second camera. The same structure as in @ref calibrateCamera.\n. @param cameraMatrix1 Input/output camera matrix for the first camera, the same as in\n. @ref calibrateCamera. Furthermore, for the stereo case, additional flags may be used, see below.\n. @param distCoeffs1 Input/output vector of distortion coefficients, the same as in\n. @ref calibrateCamera.\n. @param cameraMatrix2 Input/output second camera matrix for the second camera. See description for\n. cameraMatrix1.\n. @param distCoeffs2 Input/output lens distortion coefficients for the second camera. See\n. description for distCoeffs1.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrices.\n. @param R Output rotation matrix. Together with the translation vector T, this matrix brings\n. points given in the first camera's coordinate system to points in the second camera's\n. coordinate system. In more technical terms, the tuple of R and T performs a change of basis\n. from the first camera's coordinate system to the second camera's coordinate system. Due to its\n. duality, this tuple is equivalent to the position of the first camera with respect to the\n. second camera coordinate system.\n. @param T Output translation vector, see description above.\n. @param E Output essential matrix.\n. @param F Output fundamental matrix.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of the following values:\n. - **CALIB_FIX_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E, and F\n. matrices are estimated.\n. - **CALIB_USE_INTRINSIC_GUESS** Optimize some or all of the intrinsic parameters\n. according to the specified flags. Initial values are provided by the user.\n. - **CALIB_USE_EXTRINSIC_GUESS** R and T contain valid initial values that are optimized further.\n. Otherwise R and T are initialized to the median value of the pattern views (each dimension separately).\n. - **CALIB_FIX_PRINCIPAL_POINT** Fix the principal points during the optimization.\n. - **CALIB_FIX_FOCAL_LENGTH** Fix \\f$f^{(j)}_x\\f$ and \\f$f^{(j)}_y\\f$ .\n. - **CALIB_FIX_ASPECT_RATIO** Optimize \\f$f^{(j)}_y\\f$ . Fix the ratio \\f$f^{(j)}_x/f^{(j)}_y\\f$\n. .\n. - **CALIB_SAME_FOCAL_LENGTH** Enforce \\f$f^{(0)}_x=f^{(1)}_x\\f$ and \\f$f^{(0)}_y=f^{(1)}_y\\f$ .\n. - **CALIB_ZERO_TANGENT_DIST** Set tangential distortion coefficients for each camera to\n. zeros and fix there.\n. - **CALIB_FIX_K1,...,CALIB_FIX_K6** Do not change the corresponding radial\n. distortion coefficient during the optimization. If CALIB_USE_INTRINSIC_GUESS is set,\n. the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_RATIONAL_MODEL** Enable coefficients k4, k5, and k6. To provide the backward\n. compatibility, this extra flag should be explicitly specified to make the calibration\n. function use the rational model and return 8 coefficients. If the flag is not set, the\n. function computes and returns only 5 distortion coefficients.\n. - **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the thin prism model and return 12 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the tilted sensor model and return 14 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. The function estimates the transformation between two cameras making a stereo pair. If one computes\n. the poses of an object relative to the first camera and to the second camera,\n. ( \\f$R_1\\f$,\\f$T_1\\f$ ) and (\\f$R_2\\f$,\\f$T_2\\f$), respectively, for a stereo camera where the\n. relative position and orientation between the two cameras are fixed, then those poses definitely\n. relate to each other. This means, if the relative position and orientation (\\f$R\\f$,\\f$T\\f$) of the\n. two cameras is known, it is possible to compute (\\f$R_2\\f$,\\f$T_2\\f$) when (\\f$R_1\\f$,\\f$T_1\\f$) is\n. given. This is what the described function does. It computes (\\f$R\\f$,\\f$T\\f$) such that:\n. \n. \\f[R_2=R R_1\\f]\n. \\f[T_2=R T_1 + T.\\f]\n. \n. Therefore, one can compute the coordinate representation of a 3D point for the second camera's\n. coordinate system when given the point's coordinate representation in the first camera's coordinate\n. system:\n. \n. \\f[\\begin{bmatrix}\n. X_2 \\\\\n. Y_2 \\\\\n. Z_2 \\\\\n. 1\n. \\end{bmatrix} = \\begin{bmatrix}\n. R & T \\\\\n. 0 & 1\n. \\end{bmatrix} \\begin{bmatrix}\n. X_1 \\\\\n. Y_1 \\\\\n. Z_1 \\\\\n. 1\n. \\end{bmatrix}.\\f]\n. \n. \n. Optionally, it computes the essential matrix E:\n. \n. \\f[E= \\vecthreethree{0}{-T_2}{T_1}{T_2}{0}{-T_0}{-T_1}{T_0}{0} R\\f]\n. \n. where \\f$T_i\\f$ are components of the translation vector \\f$T\\f$ : \\f$T=[T_0, T_1, T_2]^T\\f$ .\n. And the function can also compute the fundamental matrix F:\n. \n. \\f[F = cameraMatrix2^{-T}\\cdot E \\cdot cameraMatrix1^{-1}\\f]\n. \n. Besides the stereo-related information, the function can also perform a full calibration of each of\n. the two cameras. However, due to the high dimensionality of the parameter space and noise in the\n. input data, the function can diverge from the correct solution. If the intrinsic parameters can be\n. estimated with high accuracy for each of the cameras individually (for example, using\n. calibrateCamera ), you are recommended to do so and then pass CALIB_FIX_INTRINSIC flag to the\n. function along with the computed intrinsic parameters. Otherwise, if all the parameters are\n. estimated at once, it makes sense to restrict some parameters, for example, pass\n. CALIB_SAME_FOCAL_LENGTH and CALIB_ZERO_TANGENT_DIST flags, which is usually a\n. reasonable assumption.\n. \n. Similarly to calibrateCamera, the function minimizes the total re-projection error for all the\n. points in all the available views from both cameras. The function returns the final value of the\n. re-projection error." + ... + + +def stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, R1=..., R2=..., P1=..., P2=..., Q=..., flags: int = ..., alpha=..., newImageSize=...) -> typing.Any: + 'stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T[, R1[, R2[, P1[, P2[, Q[, flags[, alpha[, newImageSize]]]]]]]]) -> R1, R2, P1, P2, Q, validPixROI1, validPixROI2\n. @brief Computes rectification transforms for each head of a calibrated stereo camera.\n. \n. @param cameraMatrix1 First camera matrix.\n. @param distCoeffs1 First camera distortion parameters.\n. @param cameraMatrix2 Second camera matrix.\n. @param distCoeffs2 Second camera distortion parameters.\n. @param imageSize Size of the image used for stereo calibration.\n. @param R Rotation matrix from the coordinate system of the first camera to the second camera,\n. see @ref stereoCalibrate.\n. @param T Translation vector from the coordinate system of the first camera to the second camera,\n. see @ref stereoCalibrate.\n. @param R1 Output 3x3 rectification transform (rotation matrix) for the first camera. This matrix\n. brings points given in the unrectified first camera\'s coordinate system to points in the rectified\n. first camera\'s coordinate system. In more technical terms, it performs a change of basis from the\n. unrectified first camera\'s coordinate system to the rectified first camera\'s coordinate system.\n. @param R2 Output 3x3 rectification transform (rotation matrix) for the second camera. This matrix\n. brings points given in the unrectified second camera\'s coordinate system to points in the rectified\n. second camera\'s coordinate system. In more technical terms, it performs a change of basis from the\n. unrectified second camera\'s coordinate system to the rectified second camera\'s coordinate system.\n. @param P1 Output 3x4 projection matrix in the new (rectified) coordinate systems for the first\n. camera, i.e. it projects points given in the rectified first camera coordinate system into the\n. rectified first camera\'s image.\n. @param P2 Output 3x4 projection matrix in the new (rectified) coordinate systems for the second\n. camera, i.e. it projects points given in the rectified first camera coordinate system into the\n. rectified second camera\'s image.\n. @param Q Output \\f$4 \\times 4\\f$ disparity-to-depth mapping matrix (see @ref reprojectImageTo3D).\n. @param flags Operation flags that may be zero or CALIB_ZERO_DISPARITY . If the flag is set,\n. the function makes the principal points of each camera have the same pixel coordinates in the\n. rectified views. And if the flag is not set, the function may still shift the images in the\n. horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the\n. useful image area.\n. @param alpha Free scaling parameter. If it is -1 or absent, the function performs the default\n. scaling. Otherwise, the parameter should be between 0 and 1. alpha=0 means that the rectified\n. images are zoomed and shifted so that only valid pixels are visible (no black areas after\n. rectification). alpha=1 means that the rectified image is decimated and shifted so that all the\n. pixels from the original images from the cameras are retained in the rectified images (no source\n. image pixels are lost). Any intermediate value yields an intermediate result between\n. those two extreme cases.\n. @param newImageSize New image resolution after rectification. The same size should be passed to\n. initUndistortRectifyMap (see the stereo_calib.cpp sample in OpenCV samples directory). When (0,0)\n. is passed (default), it is set to the original imageSize . Setting it to a larger value can help you\n. preserve details in the original image, especially when there is a big radial distortion.\n. @param validPixROI1 Optional output rectangles inside the rectified images where all the pixels\n. are valid. If alpha=0 , the ROIs cover the whole images. Otherwise, they are likely to be smaller\n. (see the picture below).\n. @param validPixROI2 Optional output rectangles inside the rectified images where all the pixels\n. are valid. If alpha=0 , the ROIs cover the whole images. Otherwise, they are likely to be smaller\n. (see the picture below).\n. \n. The function computes the rotation matrices for each camera that (virtually) make both camera image\n. planes the same plane. Consequently, this makes all the epipolar lines parallel and thus simplifies\n. the dense stereo correspondence problem. The function takes the matrices computed by stereoCalibrate\n. as input. As output, it provides two rotation matrices and also two projection matrices in the new\n. coordinates. The function distinguishes the following two cases:\n. \n. - **Horizontal stereo**: the first and the second camera views are shifted relative to each other\n. mainly along the x-axis (with possible small vertical shift). In the rectified images, the\n. corresponding epipolar lines in the left and right cameras are horizontal and have the same\n. y-coordinate. P1 and P2 look like:\n. \n. \\f[\\texttt{P1} = \\begin{bmatrix}\n. f & 0 & cx_1 & 0 \\\\\n. 0 & f & cy & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\\f]\n. \n. \\f[\\texttt{P2} = \\begin{bmatrix}\n. f & 0 & cx_2 & T_x*f \\\\\n. 0 & f & cy & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix} ,\\f]\n. \n. where \\f$T_x\\f$ is a horizontal shift between the cameras and \\f$cx_1=cx_2\\f$ if\n. CALIB_ZERO_DISPARITY is set.\n. \n. - **Vertical stereo**: the first and the second camera views are shifted relative to each other\n. mainly in the vertical direction (and probably a bit in the horizontal direction too). The epipolar\n. lines in the rectified images are vertical and have the same x-coordinate. P1 and P2 look like:\n. \n. \\f[\\texttt{P1} = \\begin{bmatrix}\n. f & 0 & cx & 0 \\\\\n. 0 & f & cy_1 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\\f]\n. \n. \\f[\\texttt{P2} = \\begin{bmatrix}\n. f & 0 & cx & 0 \\\\\n. 0 & f & cy_2 & T_y*f \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix},\\f]\n. \n. where \\f$T_y\\f$ is a vertical shift between the cameras and \\f$cy_1=cy_2\\f$ if\n. CALIB_ZERO_DISPARITY is set.\n. \n. As you can see, the first three columns of P1 and P2 will effectively be the new "rectified" camera\n. matrices. The matrices, together with R1 and R2 , can then be passed to initUndistortRectifyMap to\n. initialize the rectification map for each camera.\n. \n. See below the screenshot from the stereo_calib.cpp sample. Some red horizontal lines pass through\n. the corresponding image regions. This means that the images are well rectified, which is what most\n. stereo correspondence algorithms rely on. The green rectangles are roi1 and roi2 . You see that\n. their interiors are all valid pixels.\n. \n. ![image](pics/stereo_undistort.jpg)' + ... + + +def stereoRectifyUncalibrated(points1, points2, F, imgSize, H1=..., H2=..., threshold=...) -> typing.Any: + 'stereoRectifyUncalibrated(points1, points2, F, imgSize[, H1[, H2[, threshold]]]) -> retval, H1, H2\n. @brief Computes a rectification transform for an uncalibrated stereo camera.\n. \n. @param points1 Array of feature points in the first image.\n. @param points2 The corresponding points in the second image. The same formats as in\n. findFundamentalMat are supported.\n. @param F Input fundamental matrix. It can be computed from the same set of point pairs using\n. findFundamentalMat .\n. @param imgSize Size of the image.\n. @param H1 Output rectification homography matrix for the first image.\n. @param H2 Output rectification homography matrix for the second image.\n. @param threshold Optional threshold used to filter out the outliers. If the parameter is greater\n. than zero, all the point pairs that do not comply with the epipolar geometry (that is, the points\n. for which \\f$|\\texttt{points2[i]}^T*\\texttt{F}*\\texttt{points1[i]}|>\\texttt{threshold}\\f$ ) are\n. rejected prior to computing the homographies. Otherwise, all the points are considered inliers.\n. \n. The function computes the rectification transformations without knowing intrinsic parameters of the\n. cameras and their relative position in the space, which explains the suffix "uncalibrated". Another\n. related difference from stereoRectify is that the function outputs not the rectification\n. transformations in the object (3D) space, but the planar perspective transformations encoded by the\n. homography matrices H1 and H2 . The function implements the algorithm @cite Hartley99 .\n. \n. @note\n. While the algorithm does not need to know the intrinsic parameters of the cameras, it heavily\n. depends on the epipolar geometry. Therefore, if the camera lenses have a significant distortion,\n. it would be better to correct it before computing the fundamental matrix and calling this\n. function. For example, distortion coefficients can be estimated for each head of stereo camera\n. separately by using calibrateCamera . Then, the images can be corrected using undistort , or\n. just the point coordinates can be corrected with undistortPoints .' + ... + + +def stylization(src: ndarray, dts: ndarray = ..., sigma_s=..., sigma_r=...) -> typing.Any: + 'stylization(src[, dst[, sigma_s[, sigma_r]]]) -> dst\n. @brief Stylization aims to produce digital imagery with a wide variety of effects not focused on\n. photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low\n. contrast while preserving, or enhancing, high-contrast features.\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' + ... + + +def subtract(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ..., dtype=...) -> typing.Any: + 'subtract(src1, src2[, dst[, mask[, dtype]]]) -> dst\n. @brief Calculates the per-element difference between two arrays or array and a scalar.\n. \n. The function subtract calculates:\n. - Difference between two arrays, when both input arrays have the same size and the same number of\n. channels:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) - \\texttt{src2}(I)) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Difference between an array and a scalar, when src2 is constructed from Scalar or has the same\n. number of elements as `src1.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) - \\texttt{src2} ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Difference between a scalar and an array, when src1 is constructed from Scalar or has the same\n. number of elements as `src2.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1} - \\texttt{src2}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - The reverse difference between a scalar and an array in the case of `SubRS`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src2} - \\texttt{src1}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. \n. The first function in the list above can be replaced with matrix expressions:\n. @code{.cpp}\n. dst = src1 - src2;\n. dst -= src1; // equivalent to subtract(dst, src1, dst);\n. @endcode\n. The input arrays and the output array can all have the same or different depths. For example, you\n. can subtract to 8-bit unsigned arrays and store the difference in a 16-bit signed array. Depth of\n. the output array is determined by dtype parameter. In the second and third cases above, as well as\n. in the first case, when src1.depth() == src2.depth(), dtype can be set to the default -1. In this\n. case the output array will have the same depth as the input array, be it src1, src2 or both.\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array of the same size and the same number of channels as the input array.\n. @param mask optional operation mask; this is an 8-bit single channel array that specifies elements\n. of the output array to be changed.\n. @param dtype optional depth of the output array\n. @sa add, addWeighted, scaleAdd, Mat::convertTo' + ... + + +def sumElems(src) -> typing.Any: + 'sumElems(src) -> retval\n. @brief Calculates the sum of array elements.\n. \n. The function cv::sum calculates and returns the sum of array elements,\n. independently for each channel.\n. @param src input array that must have from 1 to 4 channels.\n. @sa countNonZero, mean, meanStdDev, norm, minMaxLoc, reduce' + ... + + +def textureFlattening(src: ndarray, mask: ndarray, dts: ndarray = ..., low_threshold=..., high_threshold=..., kernel_size=...) -> typing.Any: + "textureFlattening(src, mask[, dst[, low_threshold[, high_threshold[, kernel_size]]]]) -> dst\n. @brief By retaining only the gradients at edge locations, before integrating with the Poisson solver, one\n. washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param low_threshold %Range from 0 to 100.\n. @param high_threshold Value \\> 100.\n. @param kernel_size The size of the Sobel kernel to be used.\n. \n. @note\n. The algorithm assumes that the color of the source image is close to that of the destination. This\n. assumption means that when the colors don't match, the source image color gets tinted toward the\n. color of the destination image." + ... + + +def threshold(src: ndarray, thresh, maxval, type, dts: ndarray = ...) -> typing.Any: + "threshold(src, thresh, maxval, type[, dst]) -> retval, dst\n. @brief Applies a fixed-level threshold to each array element.\n. \n. The function applies fixed-level thresholding to a multiple-channel array. The function is typically\n. used to get a bi-level (binary) image out of a grayscale image ( #compare could be also used for\n. this purpose) or for removing a noise, that is, filtering out pixels with too small or too large\n. values. There are several types of thresholding supported by the function. They are determined by\n. type parameter.\n. \n. Also, the special values #THRESH_OTSU or #THRESH_TRIANGLE may be combined with one of the\n. above values. In these cases, the function determines the optimal threshold value using the Otsu's\n. or Triangle algorithm and uses it instead of the specified thresh.\n. \n. @note Currently, the Otsu's and Triangle methods are implemented only for 8-bit single-channel images.\n. \n. @param src input array (multiple-channel, 8-bit or 32-bit floating point).\n. @param dst output array of the same size and type and the same number of channels as src.\n. @param thresh threshold value.\n. @param maxval maximum value to use with the #THRESH_BINARY and #THRESH_BINARY_INV thresholding\n. types.\n. @param type thresholding type (see #ThresholdTypes).\n. @return the computed threshold value if Otsu's or Triangle methods used.\n. \n. @sa adaptiveThreshold, findContours, compare, min, max" + ... + + +def trace(mtx) -> typing.Any: + 'trace(mtx) -> retval\n. @brief Returns the trace of a matrix.\n. \n. The function cv::trace returns the sum of the diagonal elements of the\n. matrix mtx .\n. \\f[\\mathrm{tr} ( \\texttt{mtx} ) = \\sum _i \\texttt{mtx} (i,i)\\f]\n. @param mtx input matrix.' + ... + + +def transform(src: ndarray, m, dts: ndarray = ...) -> typing.Any: + 'transform(src, m[, dst]) -> dst\n. @brief Performs the matrix transformation of every array element.\n. \n. The function cv::transform performs the matrix transformation of every\n. element of the array src and stores the results in dst :\n. \\f[\\texttt{dst} (I) = \\texttt{m} \\cdot \\texttt{src} (I)\\f]\n. (when m.cols=src.channels() ), or\n. \\f[\\texttt{dst} (I) = \\texttt{m} \\cdot [ \\texttt{src} (I); 1]\\f]\n. (when m.cols=src.channels()+1 )\n. \n. Every element of the N -channel array src is interpreted as N -element\n. vector that is transformed using the M x N or M x (N+1) matrix m to\n. M-element vector - the corresponding element of the output array dst .\n. \n. The function may be used for geometrical transformation of\n. N -dimensional points, arbitrary linear color space transformation (such\n. as various kinds of RGB to YUV transforms), shuffling the image\n. channels, and so forth.\n. @param src input array that must have as many channels (1 to 4) as\n. m.cols or m.cols-1.\n. @param dst output array of the same size and depth as src; it has as\n. many channels as m.rows.\n. @param m transformation 2x2 or 2x3 floating-point matrix.\n. @sa perspectiveTransform, getAffineTransform, estimateAffine2D, warpAffine, warpPerspective' + ... + + +def transpose(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'transpose(src[, dst]) -> dst\n. @brief Transposes a matrix.\n. \n. The function cv::transpose transposes the matrix src :\n. \\f[\\texttt{dst} (i,j) = \\texttt{src} (j,i)\\f]\n. @note No complex conjugation is done in case of a complex matrix. It\n. should be done separately if needed.\n. @param src input array.\n. @param dst output array of the same type as src.' + ... + + +def triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D=...) -> typing.Any: + "triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2[, points4D]) -> points4D\n. @brief This function reconstructs 3-dimensional points (in homogeneous coordinates) by using\n. their observations with a stereo camera.\n. \n. @param projMatr1 3x4 projection matrix of the first camera, i.e. this matrix projects 3D points\n. given in the world's coordinate system into the first image.\n. @param projMatr2 3x4 projection matrix of the second camera, i.e. this matrix projects 3D points\n. given in the world's coordinate system into the second image.\n. @param projPoints1 2xN array of feature points in the first image. In the case of the c++ version,\n. it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.\n. @param projPoints2 2xN array of corresponding points in the second image. In the case of the c++\n. version, it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.\n. @param points4D 4xN array of reconstructed points in homogeneous coordinates. These points are\n. returned in the world's coordinate system.\n. \n. @note\n. Keep in mind that all input data should be of float type in order for this function to work.\n. \n. @note\n. If the projection matrices from @ref stereoRectify are used, then the returned points are\n. represented in the first camera's rectified coordinate system.\n. \n. @sa\n. reprojectImageTo3D" + ... + + +def undistort(src: ndarray, cameraMatrix, distCoeffs, dts: ndarray = ..., newCameraMatrix=...) -> typing.Any: + 'undistort(src, cameraMatrix, distCoeffs[, dst[, newCameraMatrix]]) -> dst\n. @brief Transforms an image to compensate for lens distortion.\n. \n. The function transforms an image to compensate radial and tangential lens distortion.\n. \n. The function is simply a combination of #initUndistortRectifyMap (with unity R ) and #remap\n. (with bilinear interpolation). See the former function for details of the transformation being\n. performed.\n. \n. Those pixels in the destination image, for which there is no correspondent pixels in the source\n. image, are filled with zeros (black color).\n. \n. A particular subset of the source image that will be visible in the corrected image can be regulated\n. by newCameraMatrix. You can use #getOptimalNewCameraMatrix to compute the appropriate\n. newCameraMatrix depending on your requirements.\n. \n. The camera matrix and the distortion parameters can be determined using #calibrateCamera. If\n. the resolution of images is different from the resolution used at the calibration stage, \\f$f_x,\n. f_y, c_x\\f$ and \\f$c_y\\f$ need to be scaled accordingly, while the distortion coefficients remain\n. the same.\n. \n. @param src Input (distorted) image.\n. @param dst Output (corrected) image that has the same size and type as src .\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param newCameraMatrix Camera matrix of the distorted image. By default, it is the same as\n. cameraMatrix but you may additionally scale and shift the result by using a different matrix.' + ... + + +def undistortPoints(src: ndarray, cameraMatrix, distCoeffs, dts: ndarray = ..., R=..., P=...) -> typing.Any: + 'undistortPoints(src, cameraMatrix, distCoeffs[, dst[, R[, P]]]) -> dst\n. @brief Computes the ideal point coordinates from the observed point coordinates.\n. \n. The function is similar to #undistort and #initUndistortRectifyMap but it operates on a\n. sparse set of points instead of a raster image. Also the function performs a reverse transformation\n. to projectPoints. In case of a 3D object, it does not reconstruct its 3D coordinates, but for a\n. planar object, it does, up to a translation vector, if the proper R is specified.\n. \n. For each observed point coordinate \\f$(u, v)\\f$ the function computes:\n. \\f[\n. \\begin{array}{l}\n. x^{"} \\leftarrow (u - c_x)/f_x \\\\\n. y^{"} \\leftarrow (v - c_y)/f_y \\\\\n. (x\',y\') = undistort(x^{"},y^{"}, \\texttt{distCoeffs}) \\\\\n. {[X\\,Y\\,W]} ^T \\leftarrow R*[x\' \\, y\' \\, 1]^T \\\\\n. x \\leftarrow X/W \\\\\n. y \\leftarrow Y/W \\\\\n. \\text{only performed if P is specified:} \\\\\n. u\' \\leftarrow x {f\'}_x + {c\'}_x \\\\\n. v\' \\leftarrow y {f\'}_y + {c\'}_y\n. \\end{array}\n. \\f]\n. \n. where *undistort* is an approximate iterative algorithm that estimates the normalized original\n. point coordinates out of the normalized distorted point coordinates ("normalized" means that the\n. coordinates do not depend on the camera matrix).\n. \n. The function can be used for both a stereo camera head or a monocular camera (when R is empty).\n. @param src Observed point coordinates, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel (CV_32FC2 or CV_64FC2) (or\n. vector\\ ).\n. @param dst Output ideal point coordinates (1xN/Nx1 2-channel or vector\\ ) after undistortion and reverse perspective\n. transformation. If matrix P is identity or omitted, dst will contain normalized point coordinates.\n. @param cameraMatrix Camera matrix \\f$\\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param R Rectification transformation in the object space (3x3 matrix). R1 or R2 computed by\n. #stereoRectify can be passed here. If the matrix is empty, the identity transformation is used.\n. @param P New camera matrix (3x3) or new projection matrix (3x4) \\f$\\begin{bmatrix} {f\'}_x & 0 & {c\'}_x & t_x \\\\ 0 & {f\'}_y & {c\'}_y & t_y \\\\ 0 & 0 & 1 & t_z \\end{bmatrix}\\f$. P1 or P2 computed by\n. #stereoRectify can be passed here. If the matrix is empty, the identity new camera matrix is used.' + ... + + +def undistortPointsIter(src: ndarray, cameraMatrix, distCoeffs, R, P, criteria, dts: ndarray = ...) -> typing.Any: + 'undistortPointsIter(src, cameraMatrix, distCoeffs, R, P, criteria[, dst]) -> dst\n. @overload\n. @note Default version of #undistortPoints does 5 iterations to compute undistorted points.' + ... + + +def useOpenVX() -> typing.Any: + 'useOpenVX() -> retval\n.' + ... + + +def useOptimized() -> typing.Any: + 'useOptimized() -> retval\n. @brief Returns the status of optimized code usage.\n. \n. The function returns true if the optimized code is enabled. Otherwise, it returns false.' + ... + + +def validateDisparity(disparity, cost, minDisparity, numberOfDisparities, disp12MaxDisp=...) -> typing.Any: + 'validateDisparity(disparity, cost, minDisparity, numberOfDisparities[, disp12MaxDisp]) -> disparity\n.' + ... + + +def vconcat(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'vconcat(src[, dst]) -> dst\n. @overload\n. @code{.cpp}\n. std::vector matrices = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)),\n. cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)),\n. cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),};\n. \n. cv::Mat out;\n. cv::vconcat( matrices, out );\n. //out:\n. //[1, 1, 1, 1;\n. // 2, 2, 2, 2;\n. // 3, 3, 3, 3]\n. @endcode\n. @param src input array or vector of matrices. all of the matrices must have the same number of cols and the same depth\n. @param dst output array. It has the same number of cols and depth as the src, and the sum of rows of the src.\n. same depth.' + ... + + +def waitKey(delay=...) -> typing.Any: + 'waitKey([, delay]) -> retval\n. @brief Waits for a pressed key.\n. \n. The function waitKey waits for a key event infinitely (when \\f$\\texttt{delay}\\leq 0\\f$ ) or for delay\n. milliseconds, when it is positive. Since the OS has a minimum time between switching threads, the\n. function will not wait exactly delay ms, it will wait at least delay ms, depending on what else is\n. running on your computer at that time. It returns the code of the pressed key or -1 if no key was\n. pressed before the specified time had elapsed.\n. \n. @note\n. \n. This function is the only method in HighGUI that can fetch and handle events, so it needs to be\n. called periodically for normal event processing unless HighGUI is used within an environment that\n. takes care of event processing.\n. \n. @note\n. \n. The function only works if there is at least one HighGUI window created and the window is active.\n. If there are several HighGUI windows, any of them can be active.\n. \n. @param delay Delay in milliseconds. 0 is the special value that means "forever".' + ... + + +def waitKeyEx(delay=...) -> typing.Any: + 'waitKeyEx([, delay]) -> retval\n. @brief Similar to #waitKey, but returns full key code.\n. \n. @note\n. \n. Key code is implementation specific and depends on used backend: QT/GTK/Win32/etc' + ... + + +def warpAffine(src: ndarray, M, dsize: typing.Tuple[int, int], dts: ndarray = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: + 'warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst\n. @brief Applies an affine transformation to an image.\n. \n. The function warpAffine transforms the source image using the specified matrix:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} ( \\texttt{M} _{11} x + \\texttt{M} _{12} y + \\texttt{M} _{13}, \\texttt{M} _{21} x + \\texttt{M} _{22} y + \\texttt{M} _{23})\\f]\n. \n. when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted\n. with #invertAffineTransform and then put in the formula above instead of M. The function cannot\n. operate in-place.\n. \n. @param src input image.\n. @param dst output image that has the size dsize and the same type as src .\n. @param M \\f$2\\times 3\\f$ transformation matrix.\n. @param dsize size of the output image.\n. @param flags combination of interpolation methods (see #InterpolationFlags) and the optional\n. flag #WARP_INVERSE_MAP that means that M is the inverse transformation (\n. \\f$\\texttt{dst}\\rightarrow\\texttt{src}\\f$ ).\n. @param borderMode pixel extrapolation method (see #BorderTypes); when\n. borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image corresponding to\n. the "outliers" in the source image are not modified by the function.\n. @param borderValue value used in case of a constant border; by default, it is 0.\n. \n. @sa warpPerspective, resize, remap, getRectSubPix, transform' + ... + + +def warpPerspective(src: ndarray, M, dsize: typing.Tuple[int, int], dts: ndarray = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: + 'warpPerspective(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst\n. @brief Applies a perspective transformation to an image.\n. \n. The function warpPerspective transforms the source image using the specified matrix:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} \\left ( \\frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} ,\n. \\frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \\right )\\f]\n. \n. when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted with invert\n. and then put in the formula above instead of M. The function cannot operate in-place.\n. \n. @param src input image.\n. @param dst output image that has the size dsize and the same type as src .\n. @param M \\f$3\\times 3\\f$ transformation matrix.\n. @param dsize size of the output image.\n. @param flags combination of interpolation methods (#INTER_LINEAR or #INTER_NEAREST) and the\n. optional flag #WARP_INVERSE_MAP, that sets M as the inverse transformation (\n. \\f$\\texttt{dst}\\rightarrow\\texttt{src}\\f$ ).\n. @param borderMode pixel extrapolation method (#BORDER_CONSTANT or #BORDER_REPLICATE).\n. @param borderValue value used in case of a constant border; by default, it equals 0.\n. \n. @sa warpAffine, resize, remap, getRectSubPix, perspectiveTransform' + ... + + +def warpPolar(src: ndarray, dsize: typing.Tuple[int, int], center, maxRadius, flags: int, dts: ndarray = ...) -> typing.Any: + 'warpPolar(src, dsize: typing.Tuple[int, int], center, maxRadius, flags[, dst]) -> dst\n. \\brief Remaps an image to polar or semilog-polar coordinates space\n. \n. @anchor polar_remaps_reference_image\n. ![Polar remaps reference](pics/polar_remap_doc.png)\n. \n. Transform the source image using the following transformation:\n. \\f[\n. dst(\\rho , \\phi ) = src(x,y)\n. \\f]\n. \n. where\n. \\f[\n. \\begin{array}{l}\n. \\vec{I} = (x - center.x, \\;y - center.y) \\\\\n. \\phi = Kangle \\cdot \\texttt{angle} (\\vec{I}) \\\\\n. \\rho = \\left\\{\\begin{matrix}\n. Klin \\cdot \\texttt{magnitude} (\\vec{I}) & default \\\\\n. Klog \\cdot log_e(\\texttt{magnitude} (\\vec{I})) & if \\; semilog \\\\\n. \\end{matrix}\\right.\n. \\end{array}\n. \\f]\n. \n. and\n. \\f[\n. \\begin{array}{l}\n. Kangle = dsize.height / 2\\Pi \\\\\n. Klin = dsize.width / maxRadius \\\\\n. Klog = dsize.width / log_e(maxRadius) \\\\\n. \\end{array}\n. \\f]\n. \n. \n. \\par Linear vs semilog mapping\n. \n. Polar mapping can be linear or semi-log. Add one of #WarpPolarMode to `flags` to specify the polar mapping mode.\n. \n. Linear is the default mode.\n. \n. The semilog mapping emulates the human "foveal" vision that permit very high acuity on the line of sight (central vision)\n. in contrast to peripheral vision where acuity is minor.\n. \n. \\par Option on `dsize`:\n. \n. - if both values in `dsize <=0 ` (default),\n. the destination image will have (almost) same area of source bounding circle:\n. \\f[\\begin{array}{l}\n. dsize.area \\leftarrow (maxRadius^2 \\cdot \\Pi) \\\\\n. dsize.width = \\texttt{cvRound}(maxRadius) \\\\\n. dsize.height = \\texttt{cvRound}(maxRadius \\cdot \\Pi) \\\\\n. \\end{array}\\f]\n. \n. \n. - if only `dsize.height <= 0`,\n. the destination image area will be proportional to the bounding circle area but scaled by `Kx * Kx`:\n. \\f[\\begin{array}{l}\n. dsize.height = \\texttt{cvRound}(dsize.width \\cdot \\Pi) \\\\\n. \\end{array}\n. \\f]\n. \n. - if both values in `dsize > 0 `,\n. the destination image will have the given size therefore the area of the bounding circle will be scaled to `dsize`.\n. \n. \n. \\par Reverse mapping\n. \n. You can get reverse mapping adding #WARP_INVERSE_MAP to `flags`\n. \\snippet polar_transforms.cpp InverseMap\n. \n. In addiction, to calculate the original coordinate from a polar mapped coordinate \\f$(rho, phi)->(x, y)\\f$:\n. \\snippet polar_transforms.cpp InverseCoordinate\n. \n. @param src Source image.\n. @param dst Destination image. It will have same type as src.\n. @param dsize The destination image size (see description for valid options).\n. @param center The transformation center.\n. @param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.\n. @param flags A combination of interpolation methods, #InterpolationFlags + #WarpPolarMode.\n. - Add #WARP_POLAR_LINEAR to select linear polar mapping (default)\n. - Add #WARP_POLAR_LOG to select semilog polar mapping\n. - Add #WARP_INVERSE_MAP for reverse mapping.\n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. - This function uses #remap. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.\n. \n. @sa cv::remap' + ... + + +def watershed(image: ndarray, markers) -> typing.Any: + 'watershed(image, markers) -> markers\n. @brief Performs a marker-based image segmentation using the watershed algorithm.\n. \n. The function implements one of the variants of watershed, non-parametric marker-based segmentation\n. algorithm, described in @cite Meyer92 .\n. \n. Before passing the image to the function, you have to roughly outline the desired regions in the\n. image markers with positive (\\>0) indices. So, every region is represented as one or more connected\n. components with the pixel values 1, 2, 3, and so on. Such markers can be retrieved from a binary\n. mask using #findContours and #drawContours (see the watershed.cpp demo). The markers are "seeds" of\n. the future image regions. All the other pixels in markers , whose relation to the outlined regions\n. is not known and should be defined by the algorithm, should be set to 0\'s. In the function output,\n. each pixel in markers is set to a value of the "seed" components or to -1 at boundaries between the\n. regions.\n. \n. @note Any two neighbor connected components are not necessarily separated by a watershed boundary\n. (-1\'s pixels); for example, they can touch each other in the initial marker image passed to the\n. function.\n. \n. @param image Input 8-bit 3-channel image.\n. @param markers Input/output 32-bit single-channel image (map) of markers. It should have the same\n. size as image .\n. \n. @sa findContours\n. \n. @ingroup imgproc_misc' + ... + + +def writeOpticalFlow(path, flow) -> typing.Any: + 'writeOpticalFlow(path, flow) -> retval\n. @brief Write a .flo to disk\n. \n. @param path Path to the file to be written\n. @param flow Flow field to be stored\n. \n. The function stores a flow field in a file, returns true on success, false otherwise.\n. The flow field must be a 2-channel, floating-point matrix (CV_32FC2). First channel corresponds\n. to the flow in the horizontal direction (u), second - vertical (v).' + ... + + +def __getattr__(name) -> typing.Any: + ... diff --git a/typings/imagehash/__init__.pyi b/typings/imagehash/__init__.pyi new file mode 100644 index 00000000..1ead4a32 --- /dev/null +++ b/typings/imagehash/__init__.pyi @@ -0,0 +1,275 @@ +""" +This type stub file was generated by pyright. +""" +from __future__ import absolute_import, division, print_function, annotations +import numpy +from PIL import Image, ImageFilter + +""" +Image hashing library +====================== + +Example: + +>>> from PIL import Image +>>> import imagehash +>>> hash = imagehash.average_hash(Image.open('test.png')) +>>> print(hash) +d879f8f89b1bbf +>>> otherhash = imagehash.average_hash(Image.open('other.bmp')) +>>> print(otherhash) +ffff3720200ffff +>>> print(hash == otherhash) +False +>>> print(hash - otherhash) +36 +>>> for r in range(1, 30, 5): +... rothash = imagehash.average_hash(Image.open('test.png').rotate(r)) +... print('Rotation by %d: %d Hamming difference' % (r, hash - rothash)) +... +Rotation by 1: 2 Hamming difference +Rotation by 6: 11 Hamming difference +Rotation by 11: 13 Hamming difference +Rotation by 16: 17 Hamming difference +Rotation by 21: 19 Hamming difference +Rotation by 26: 21 Hamming difference +>>> +""" +__version__ = ... + + +class ImageHash: + """ + Hash encapsulation. Can be used for dictionary keys and comparisons. + """ + + def __init__(self, binary_array) -> None: + ... + + def __str__(self) -> str: + ... + + def __repr__(self) -> str: + ... + + def __sub__(self, other: ImageHash) -> int: + ... + + def __eq__(self, other: ImageHash) -> bool: + ... + + def __ne__(self, other: ImageHash) -> bool: + ... + + def __hash__(self) -> int: + ... + + def __len__(self) -> int: + ... + + +def hex_to_hash(hexstr) -> ImageHash: + """ + Convert a stored hash (hex, as retrieved from str(Imagehash)) + back to a Imagehash object. + + Notes: + 1. This algorithm assumes all hashes are either + bidimensional arrays with dimensions hash_size * hash_size, + or onedimensional arrays with dimensions binbits * 14. + 2. This algorithm does not work for hash_size < 2. + """ + ... + + +def hex_to_flathash(hexstr, hashsize) -> ImageHash: + ... + + +def old_hex_to_hash(hexstr, hash_size=...) -> ImageHash: + """ + Convert a stored hash (hex, as retrieved from str(Imagehash)) + back to a Imagehash object. This method should be used for + hashes generated by ImageHash up to version 3.7. For hashes + generated by newer versions of ImageHash, hex_to_hash should + be used instead. + """ + ... + + +def average_hash(image, hash_size=..., mean=...) -> ImageHash: + """ + Average Hash computation + + Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html + + Step by step explanation: https://web.archive.org/web/20171112054354/https://www.safaribooksonline.com/blog/2013/11/26/image-hashing-with-python/ + + @image must be a PIL instance. + @mean how to determine the average luminescence. can try numpy.median instead. + """ + ... + + +def phash(image: Image.Image, hash_size: int = ..., highfreq_factor: int = ...) -> ImageHash: + """ + Perceptual Hash computation. + + Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html + + @image must be a PIL instance. + """ + ... + + +def phash_simple(image, hash_size=..., highfreq_factor=...) -> ImageHash: + """ + Perceptual Hash computation. + + Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html + + @image must be a PIL instance. + """ + ... + + +def dhash(image, hash_size=...) -> ImageHash: + """ + Difference Hash computation. + + following http://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html + + computes differences horizontally + + @image must be a PIL instance. + """ + ... + + +def dhash_vertical(image, hash_size=...) -> ImageHash: + """ + Difference Hash computation. + + following http://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html + + computes differences vertically + + @image must be a PIL instance. + """ + ... + + +def whash(image, hash_size=..., image_scale=..., mode=..., remove_max_haar_ll=...) -> ImageHash: + """ + Wavelet Hash computation. + + based on https://www.kaggle.com/c/avito-duplicate-ads-detection/ + + @image must be a PIL instance. + @hash_size must be a power of 2 and less than @image_scale. + @image_scale must be power of 2 and less than image size. By default is equal to max + power of 2 for an input image. + @mode (see modes in pywt library): + 'haar' - Haar wavelets, by default + 'db4' - Daubechies wavelets + @remove_max_haar_ll - remove the lowest low level (LL) frequency using Haar wavelet. + """ + ... + + +def colorhash(image, binbits=...) -> ImageHash: + """ + Color Hash computation. + + Computes fractions of image in intensity, hue and saturation bins: + + * the first binbits encode the black fraction of the image + * the next binbits encode the gray fraction of the remaining image (low saturation) + * the next 6*binbits encode the fraction in 6 bins of saturation, for highly saturated parts of the remaining image + * the next 6*binbits encode the fraction in 6 bins of saturation, for mildly saturated parts of the remaining image + + @binbits number of bits to use to encode each pixel fractions + """ + ... + + +class ImageMultiHash: + """ + This is an image hash containing a list of individual hashes for segments of the image. + The matching logic is implemented as described in Efficient Cropping-Resistant Robust Image Hashing + """ + + def __init__(self, hashes) -> None: + ... + + def __eq__(self, other) -> bool: + ... + + def __ne__(self, other) -> bool: + ... + + def __sub__(self, other, hamming_cutoff=..., bit_error_rate=...) -> int | float: + ... + + def __hash__(self) -> int: + ... + + def __str__(self) -> str: + ... + + def __repr__(self) -> str: + ... + + def hash_diff(self, other_hash, hamming_cutoff=..., bit_error_rate=...) -> tuple[int, Unknown | int]: + """ + Gets the difference between two multi-hashes, as a tuple. The first element of the tuple is the number of + matching segments, and the second element is the sum of the hamming distances of matching hashes. + NOTE: Do not order directly by this tuple, as higher is better for matches, and worse for hamming cutoff. + :param other_hash: The image multi hash to compare against + :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash + :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. The + default of 0.25 means that the segment hashes can be up to 25% different + """ + ... + + def matches(self, other_hash, region_cutoff=..., hamming_cutoff=..., bit_error_rate=...): + """ + Checks whether this hash matches another crop resistant hash, `other_hash`. + :param other_hash: The image multi hash to compare against + :param region_cutoff: The minimum number of regions which must have a matching hash + :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash + :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. The + default of 0.25 means that the segment hashes can be up to 25% different + """ + ... + + def best_match(self, other_hashes, hamming_cutoff=..., bit_error_rate=...): + """ + Returns the hash in a list which is the best match to the current hash + :param other_hashes: A list of image multi hashes to compare against + :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash + :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. + Defaults to 0.25 if unset, which means the hash can be 25% different + """ + ... + + +def crop_resistant_hash(image, hash_func=..., limit_segments=..., segment_threshold=..., min_segment_size=..., segmentation_image_size=...) -> ImageMultiHash: + """ + Creates a CropResistantHash object, by the algorithm described in the paper "Efficient Cropping-Resistant Robust + Image Hashing". DOI 10.1109/ARES.2014.85 + This algorithm partitions the image into bright and dark segments, using a watershed-like algorithm, and then does + an image hash on each segment. This makes the image much more resistant to cropping than other algorithms, with + the paper claiming resistance to up to 50% cropping, while most other algorithms stop at about 5% cropping. + + Note: Slightly different segmentations are produced when using pillow version 6 vs. >=7, due to a change in + rounding in the greyscale conversion. This leads to a slightly different result. + :param image: The image to hash + :param hash_func: The hashing function to use + :param limit_segments: If you have storage requirements, you can limit to hashing only the M largest segments + :param segment_threshold: Brightness threshold between hills and valleys. This should be static, putting it between + peak and trough dynamically breaks the matching + :param min_segment_size: Minimum number of pixels for a hashable segment + :param segmentation_image_size: Size which the image is resized to before segmentation + """ + ... diff --git a/typings/keyboard/__init__.pyi b/typings/keyboard/__init__.pyi new file mode 100644 index 00000000..18f68af6 --- /dev/null +++ b/typings/keyboard/__init__.pyi @@ -0,0 +1,701 @@ +""" +This type stub file was generated by pyright. +""" +from __future__ import print_function as _print_function +import typing + +import re as _re +import itertools as _itertools +import collections as _collections +import time as _time +import platform as _platform +from threading import Lock as _Lock, Thread as _Thread +from ._keyboard_event import KEY_DOWN, KEY_UP, KeyboardEvent +from ._generic import GenericListener as _GenericListener +from ._canonical_names import all_modifiers, normalize_name, sided_modifiers + +try: + # Python2 + # threading.Event is a function in Python2 wrappin _Event (?!). + from threading import _Event as _UninterruptibleEvent # type: ignore +except NameError: + # Python3 + import queue as _queue + from threading import Event as _UninterruptibleEvent + + +""" +keyboard +======== + +Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more. + +## Features + +- **Global event hook** on all keyboards (captures keys regardless of focus). +- **Listen** and **send** keyboard events. +- Works with **Windows** and **Linux** (requires sudo), with experimental **OS X** support (thanks @glitchassassin!). +- **Pure Python**, no C modules to be compiled. +- **Zero dependencies**. Trivial to install and deploy, just copy the files. +- **Python 2 and 3**. +- Complex hotkey support (e.g. `ctrl+shift+m, ctrl+space`) with controllable timeout. +- Includes **high level API** (e.g. [record](#keyboard.record) and [play](#keyboard.play), [add_abbreviation](#keyboard.add_abbreviation)). +- Maps keys as they actually are in your layout, with **full internationalization support** (e.g. `Ctrl+ç`). +- Events automatically captured in separate thread, doesn't block main program. +- Tested and documented. +- Doesn't break accented dead keys (I'm looking at you, pyHook). +- Mouse support available via project [mouse](https://github.com/boppreh/mouse) (`pip install mouse`). + +## Usage + +Install the [PyPI package](https://pypi.python.org/pypi/keyboard/): + + pip install keyboard + +or clone the repository (no installation required, source files are sufficient): + + git clone https://github.com/boppreh/keyboard + +or [download and extract the zip](https://github.com/boppreh/keyboard/archive/master.zip) into your project folder. + +Then check the [API docs below](https://github.com/boppreh/keyboard#api) to see what features are available. + + +## Example + + +```py +import keyboard + +keyboard.press_and_release('shift+s, space') + +keyboard.write('The quick brown fox jumps over the lazy dog.') + +keyboard.add_hotkey('ctrl+shift+a', print, args=('triggered', 'hotkey')) + +# Press PAGE UP then PAGE DOWN to type "foobar". +keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar')) + +# Blocks until you press esc. +keyboard.wait('esc') + +# Record events until 'esc' is pressed. +recorded = keyboard.record(until='esc') +# Then replay back at three times the speed. +keyboard.play(recorded, speed_factor=3) + +# Type @@ then press space to replace with abbreviation. +keyboard.add_abbreviation('@@', 'my.long.email@example.com') + +# Block forever, like `while True`. +keyboard.wait() +``` + +## Known limitations: + +- Events generated under Windows don't report device id (`event.device == None`). [#21](https://github.com/boppreh/keyboard/issues/21) +- Media keys on Linux may appear nameless (scan-code only) or not at all. [#20](https://github.com/boppreh/keyboard/issues/20) +- Key suppression/blocking only available on Windows. [#22](https://github.com/boppreh/keyboard/issues/22) +- To avoid depending on X, the Linux parts reads raw device files (`/dev/input/input*`) +but this requires root. +- Other applications, such as some games, may register hooks that swallow all +key events. In this case `keyboard` will be unable to report events. +- This program makes no attempt to hide itself, so don't use it for keyloggers or online gaming bots. Be responsible. +""" + +Callback = typing.Callable[[KeyboardEvent], None] + +version: str +_is_str = typing.Callable[[typing.Any], bool] +_is_number = typing.Callable[[typing.Any], bool] +_is_list: typing.Callable[[typing.Any], bool] + + +class _State: + ... + + +class _Event(_UninterruptibleEvent): + def wait(self) -> None: + ... + + +if _platform.system() == 'Windows': + ... +else: + ... +_modifier_scan_codes: set + + +def is_modifier(key) -> bool: + """ + Returns True if `key` is a scan code or name of a modifier key. + """ + ... + + +_pressed_events_lock: _Lock +_pressed_events: dict +_physically_pressed_keys: dict +_logically_pressed_keys: dict + + +class _KeyboardListener(_GenericListener): + transition_table = { + ('free', KEY_UP, 'modifier'): (False, True, 'free'), + ('free', KEY_DOWN, 'modifier'): (False, False, 'pending'), + ('pending', KEY_UP, 'modifier'): (True, True, 'free'), + ('pending', KEY_DOWN, 'modifier'): (False, True, 'allowed'), + ('suppressed', KEY_UP, 'modifier'): (False, False, 'free'), + ('suppressed', KEY_DOWN, 'modifier'): (False, False, 'suppressed'), + ('allowed', KEY_UP, 'modifier'): (False, True, 'free'), + ('allowed', KEY_DOWN, 'modifier'): (False, True, 'allowed'), + + ('free', KEY_UP, 'hotkey'): (False, None, 'free'), + ('free', KEY_DOWN, 'hotkey'): (False, None, 'free'), + ('pending', KEY_UP, 'hotkey'): (False, None, 'suppressed'), + ('pending', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), + ('suppressed', KEY_UP, 'hotkey'): (False, None, 'suppressed'), + ('suppressed', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), + ('allowed', KEY_UP, 'hotkey'): (False, None, 'allowed'), + ('allowed', KEY_DOWN, 'hotkey'): (False, None, 'allowed'), + + ('free', KEY_UP, 'other'): (False, True, 'free'), + ('free', KEY_DOWN, 'other'): (False, True, 'free'), + ('pending', KEY_UP, 'other'): (True, True, 'allowed'), + ('pending', KEY_DOWN, 'other'): (True, True, 'allowed'), + # Necessary when hotkeys are removed after beign triggered, such as + # TestKeyboard.test_add_hotkey_multistep_suppress_modifier. + ('suppressed', KEY_UP, 'other'): (False, False, 'allowed'), + ('suppressed', KEY_DOWN, 'other'): (True, True, 'allowed'), + ('allowed', KEY_UP, 'other'): (False, True, 'allowed'), + ('allowed', KEY_DOWN, 'other'): (False, True, 'allowed'), + } + + def init(self) -> None: + ... + + def pre_process_event(self, event): + ... + + def direct_callback(self, event): + """ + This function is called for every OS keyboard event and decides if the + event should be blocked or not, and passes a copy of the event to + other, non-blocking, listeners. + + There are two ways to block events: remapped keys, which translate + events by suppressing and re-emitting; and blocked hotkeys, which + suppress specific hotkeys. + """ + ... + + def listen(self) -> None: + ... + + +_listener: _KeyboardListener + + +def key_to_scan_codes(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], error_if_missing: bool = ...) -> typing.List[int]: + """ + Returns a list of scan codes associated with this key (name or scan code). + """ + ... + + +def parse_hotkey(hotkey) -> tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...]]] | tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...], ...]] | tuple[Unknown, ...]: + """ + Parses a user-provided hotkey into nested tuples representing the + parsed structure, with the bottom values being lists of scan codes. + Also accepts raw scan codes, which are then wrapped in the required + number of nestings. + + Example: + + parse_hotkey("alt+shift+a, alt+b, c") + # Keys: ^~^ ^~~~^ ^ ^~^ ^ ^ + # Steps: ^~~~~~~~~~^ ^~~~^ ^ + + # ((alt_codes, shift_codes, a_codes), (alt_codes, b_codes), (c_codes,)) + """ + ... + + +def send(hotkey: typing.Union[str, int], do_press: bool = ..., do_release: bool = ...) -> None: + """ + Sends OS events that perform the given *hotkey* hotkey. + + - `hotkey` can be either a scan code (e.g. 57 for space), single key + (e.g. 'space') or multi-key, multi-step hotkey (e.g. 'alt+F4, enter'). + - `do_press` if true then press events are sent. Defaults to True. + - `do_release` if true then release events are sent. Defaults to True. + + send(57) + send('ctrl+alt+del') + send('alt+F4, enter') + send('shift+s') + + Note: keys are released in the opposite order they were pressed. + """ + ... + + +press_and_release = send + + +def press(hotkey) -> None: + """ Presses and holds down a hotkey (see `send`). """ + ... + + +def release(hotkey) -> None: + """ Releases a hotkey (see `send`). """ + ... + + +def is_pressed(hotkey) -> bool: + """ + Returns True if the key is pressed. + + is_pressed(57) #-> True + is_pressed('space') #-> True + is_pressed('ctrl+space') #-> True + """ + ... + + +def call_later(fn, args=..., delay=...) -> None: + """ + Calls the provided function in a new thread after waiting some time. + Useful for giving the system some time to process an event, without blocking + the current execution flow. + """ + ... + + +_hooks: dict[typing.Callable, Unknown] + + +def hook(callback: Callback, suppress=..., on_remove=...) -> typing.Callable[[], None]: + """ + Installs a global listener on all available keyboards, invoking `callback` + each time a key is pressed or released. + + The event passed to the callback is of type `keyboard.KeyboardEvent`, + with the following attributes: + + - `name`: an Unicode representation of the character (e.g. "&") or + description (e.g. "space"). The name is always lower-case. + - `scan_code`: number representing the physical key, e.g. 55. + - `time`: timestamp of the time the event occurred, with as much precision + as given by the OS. + + Returns the given callback for easier development. + """ + ... + + +def on_press(callback: Callback, suppress=...) -> typing.Callable[[], None]: + """ + Invokes `callback` for every KEY_DOWN event. For details see `hook`. + """ + ... + + +def on_release(callback: Callback, suppress=...) -> typing.Callable[[], None]: + """ + Invokes `callback` for every KEY_UP event. For details see `hook`. + """ + ... + + +def hook_key(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], callback: Callback, suppress: bool = ...) -> typing.Callable[[], None]: + """ + Hooks key up and key down events for a single key. Returns the event handler + created. To remove a hooked key use `unhook_key(key)` or + `unhook_key(handler)`. + + Note: this function shares state with hotkeys, so `clear_all_hotkeys` + affects it as well. + """ + ... + + +def on_press_key(key, callback: Callback, suppress=...) -> typing.Callable[[], None]: + """ + Invokes `callback` for KEY_DOWN event related to the given key. For details see `hook`. + """ + ... + + +def on_release_key(key, callback: Callback, suppress=...) -> typing.Callable[[], None]: + """ + Invokes `callback` for KEY_UP event related to the given key. For details see `hook`. + """ + ... + + +def unhook(remove: typing.Callable[[], None]) -> None: + """ + Removes a previously added hook, either by callback or by the return value + of `hook`. + """ + ... + + +unhook_key = unhook + + +def unhook_all() -> None: + """ + Removes all keyboard hooks in use, including hotkeys, abbreviations, word + listeners, `record`ers and `wait`s. + """ + ... + + +def block_key(key) -> typing.Callable[[], None]: + """ + Suppresses all key events of the given key, regardless of modifiers. + """ + ... + + +unblock_key = unhook_key + + +def remap_key(src, dst) -> typing.Callable[[], None]: + """ + Whenever the key `src` is pressed or released, regardless of modifiers, + press or release the hotkey `dst` instead. + """ + ... + + +unremap_key = unhook_key + + +def parse_hotkey_combinations(hotkey) -> tuple[tuple[tuple[Unknown, ...], ...], ...]: + """ + Parses a user-provided hotkey. Differently from `parse_hotkey`, + instead of each step being a list of the different scan codes for each key, + each step is a list of all possible combinations of those scan codes. + """ + ... + + +_hotkeys: dict + + +def add_hotkey(hotkey, callback: Callback, args=..., suppress=..., timeout=..., trigger_on_release=...) -> typing.Callable[[], None]: + """ + Invokes a callback every time a hotkey is pressed. The hotkey must + be in the format `ctrl+shift+a, s`. This would trigger when the user holds + ctrl, shift and "a" at once, releases, and then presses "s". To represent + literal commas, pluses, and spaces, use their names ('comma', 'plus', + 'space'). + + - `args` is an optional list of arguments to passed to the callback during + each invocation. + - `suppress` defines if successful triggers should block the keys from being + sent to other programs. + - `timeout` is the amount of seconds allowed to pass between key presses. + - `trigger_on_release` if true, the callback is invoked on key release instead + of key press. + + The event handler function is returned. To remove a hotkey call + `remove_hotkey(hotkey)` or `remove_hotkey(handler)`. + before the hotkey state is reset. + + Note: hotkeys are activated when the last key is *pressed*, not released. + Note: the callback is executed in a separate thread, asynchronously. For an + example of how to use a callback synchronously, see `wait`. + + Examples: + + # Different but equivalent ways to listen for a spacebar key press. + add_hotkey(' ', print, args=['space was pressed']) + add_hotkey('space', print, args=['space was pressed']) + add_hotkey('Space', print, args=['space was pressed']) + # Here 57 represents the keyboard code for spacebar; so you will be + # pressing 'spacebar', not '57' to activate the print function. + add_hotkey(57, print, args=['space was pressed']) + + add_hotkey('ctrl+q', quit) + add_hotkey('ctrl+alt+enter, space', some_callback) + """ + ... + + +register_hotkey = add_hotkey + + +def remove_hotkey(hotkey_or_callback) -> None: + """ + Removes a previously hooked hotkey. Must be called with the value returned + by `add_hotkey`. + """ + ... + + +unregister_hotkey = clear_hotkey = remove_hotkey + + +def unhook_all_hotkeys() -> None: + """ + Removes all keyboard hotkeys in use, including abbreviations, word listeners, + `record`ers and `wait`s. + """ + ... + + +unregister_all_hotkeys = remove_all_hotkeys = clear_all_hotkeys = unhook_all_hotkeys + + +def remap_hotkey(src, dst, suppress=..., trigger_on_release=...) -> typing.Callable[[], None]: + """ + Whenever the hotkey `src` is pressed, suppress it and send + `dst` instead. + + Example: + + remap('alt+w', 'ctrl+up') + """ + ... + + +unremap_hotkey = remove_hotkey + + +def stash_state() -> list[Unknown]: + """ + Builds a list of all currently pressed scan codes, releases them and returns + the list. Pairs well with `restore_state` and `restore_modifiers`. + """ + ... + + +def restore_state(scan_codes) -> None: + """ + Given a list of scan_codes ensures these keys, and only these keys, are + pressed. Pairs well with `stash_state`, alternative to `restore_modifiers`. + """ + ... + + +def restore_modifiers(scan_codes) -> None: + """ + Like `restore_state`, but only restores modifier keys. + """ + ... + + +def write(text, delay=..., restore_state_after=..., exact=...): + """ + Sends artificial keyboard events to the OS, simulating the typing of a given + text. Characters not available on the keyboard are typed as explicit unicode + characters using OS-specific functionality, such as alt+codepoint. + + To ensure text integrity, all currently pressed keys are released before + the text is typed, and modifiers are restored afterwards. + + - `delay` is the number of seconds to wait between keypresses, defaults to + no delay. + - `restore_state_after` can be used to restore the state of pressed keys + after the text is typed, i.e. presses the keys that were released at the + beginning. Defaults to True. + - `exact` forces typing all characters as explicit unicode (e.g. + alt+codepoint or special events). If None, uses platform-specific suggested + value. + """ + ... + + +def wait(hotkey=..., suppress=..., trigger_on_release=...) -> None: + """ + Blocks the program execution until the given hotkey is pressed or, + if given no parameters, blocks forever. + """ + ... + + +def get_hotkey_name(names=...) -> str: + """ + Returns a string representation of hotkey from the given key names, or + the currently pressed keys if not given. This function: + + - normalizes names; + - removes "left" and "right" prefixes; + - replaces the "+" key name with "plus" to avoid ambiguity; + - puts modifier keys first, in a standardized order; + - sort remaining keys; + - finally, joins everything with "+". + + Example: + + get_hotkey_name(['+', 'left ctrl', 'shift']) + # "ctrl+shift+plus" + """ + ... + + +def read_event(suppress: bool = ...) -> KeyboardEvent: + """ + Blocks until a keyboard event happens, then returns that event. + """ + ... + + +def read_key(suppress=...): + """ + Blocks until a keyboard event happens, then returns that event's name or, + if missing, its scan code. + """ + ... + + +def read_hotkey(suppress=...) -> str: + """ + Similar to `read_key()`, but blocks until the user presses and releases a + hotkey (or single key), then returns a string representing the hotkey + pressed. + + Example: + + read_hotkey() + # "ctrl+shift+p" + """ + ... + + +def get_typed_strings(events, allow_backspace=...): + """ + Given a sequence of events, tries to deduce what strings were typed. + Strings are separated when a non-textual key is pressed (such as tab or + enter). Characters are converted to uppercase according to shift and + capslock status. If `allow_backspace` is True, backspaces remove the last + character typed. + + This function is a generator, so you can pass an infinite stream of events + and convert them to strings in real time. + + Note this functions is merely an heuristic. Windows for example keeps per- + process keyboard state such as keyboard layout, and this information is not + available for our hooks. + + get_type_strings(record()) #-> ['This is what', 'I recorded', ''] + """ + ... + + +_recording: typing.Optional[tuple[Unknown | _queue.Queue[Unknown], typing.Callable[[], None]]] + + +def start_recording(recorded_events_queue=...) -> tuple[Unknown | _queue.Queue[Unknown], typing.Callable[[], None]]: + """ + Starts recording all keyboard events into a global variable, or the given + queue if any. Returns the queue of events and the hooked function. + + Use `stop_recording()` or `unhook(hooked_function)` to stop. + """ + ... + + +def stop_recording() -> list[Unknown | typing.Any]: + """ + Stops the global recording of events and returns a list of the events + captured. + """ + ... + + +def record(until=..., suppress=..., trigger_on_release=...) -> list[Unknown | typing.Any]: + """ + Records all keyboard events from all keyboards until the user presses the + given hotkey. Then returns the list of events recorded, of type + `keyboard.KeyboardEvent`. Pairs well with + `play(events)`. + + Note: this is a blocking function. + Note: for more details on the keyboard hook and events see `hook`. + """ + ... + + +def play(events, speed_factor=...): + """ + Plays a sequence of recorded events, maintaining the relative time + intervals. If speed_factor is <= 0 then the actions are replayed as fast + as the OS allows. Pairs well with `record()`. + + Note: the current keyboard state is cleared at the beginning and restored at + the end of the function. + """ + ... + + +replay = play +_word_listeners: dict + + +def add_word_listener(word, callback: Callback, triggers=..., match_suffix=..., timeout=...) -> typing.Callable[[], None]: + """ + Invokes a callback every time a sequence of characters is typed (e.g. 'pet') + and followed by a trigger key (e.g. space). Modifiers (e.g. alt, ctrl, + shift) are ignored. + + - `word` the typed text to be matched. E.g. 'pet'. + - `callback` is an argument-less function to be invoked each time the word + is typed. + - `triggers` is the list of keys that will cause a match to be checked. If + the user presses some key that is not a character (len>1) and not in + triggers, the characters so far will be discarded. By default the trigger + is only `space`. + - `match_suffix` defines if endings of words should also be checked instead + of only whole words. E.g. if true, typing 'carpet'+space will trigger the + listener for 'pet'. Defaults to false, only whole words are checked. + - `timeout` is the maximum number of seconds between typed characters before + the current word is discarded. Defaults to 2 seconds. + + Returns the event handler created. To remove a word listener use + `remove_word_listener(word)` or `remove_word_listener(handler)`. + + Note: all actions are performed on key down. Key up events are ignored. + Note: word matches are **case sensitive**. + """ + ... + + +def remove_word_listener(word_or_handler) -> None: + """ + Removes a previously registered word listener. Accepts either the word used + during registration (exact string) or the event handler returned by the + `add_word_listener` or `add_abbreviation` functions. + """ + ... + + +def add_abbreviation(source_text, replacement_text, match_suffix=..., timeout=...) -> typing.Callable[[], None]: + """ + Registers a hotkey that replaces one typed text with another. For example + + add_abbreviation('tm', u'™') + + Replaces every "tm" followed by a space with a ™ symbol (and no space). The + replacement is done by sending backspace events. + + - `match_suffix` defines if endings of words should also be checked instead + of only whole words. E.g. if true, typing 'carpet'+space will trigger the + listener for 'pet'. Defaults to false, only whole words are checked. + - `timeout` is the maximum number of seconds between typed characters before + the current word is discarded. Defaults to 2 seconds. + + For more details see `add_word_listener`. + """ + ... + + +register_word_listener = add_word_listener +register_abbreviation = add_abbreviation +remove_abbreviation = remove_word_listener diff --git a/typings/keyboard/_keyboard_event.pyi b/typings/keyboard/_keyboard_event.pyi new file mode 100644 index 00000000..72c73f02 --- /dev/null +++ b/typings/keyboard/_keyboard_event.pyi @@ -0,0 +1,31 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Literal, Optional, Union + + +KEY_DOWN = Literal['down'] +KEY_UP = Literal['up'] + + +class KeyboardEvent: + event_type: Optional[Union[KEY_DOWN, KEY_UP]] = ... + scan_code: Optional[int] = ... + name: Optional[str] = ... + time: Optional[Unknown] = ... + device: Optional[Unknown] = ... + modifiers: Optional[Unknown] = ... + is_keypad: Optional[bool] = ... + + def __init__(self, event_type: event_type, scan_code, name: name = ..., time: time = ..., device: device = ..., modifiers: modifiers = ..., is_keypad: is_keypad = ...) -> None: + ... + + def to_json(self, ensure_ascii: bool = ...) -> str: + ... + + def __repr__(self) -> str: + ... + + def __eq__(self, other: KeyboardEvent) -> bool: + ... diff --git a/typings/pyautogui/__init__.pyi b/typings/pyautogui/__init__.pyi new file mode 100644 index 00000000..1cccf90e --- /dev/null +++ b/typings/pyautogui/__init__.pyi @@ -0,0 +1,814 @@ +""" +This type stub file was generated by pyright. +""" +from typing import * + +import sys +import time +import datetime +import os +import platform +import re +import functools +import collections +import collections.abc +from __future__ import absolute_import, division, print_function +from contextlib import contextmanager + +__version__ = ... + + +class PyAutoGUIException(Exception): + """ + PyAutoGUI code will raise this exception class for any invalid actions. If PyAutoGUI raises some other exception, + you should assume that this is caused by a bug in PyAutoGUI itself. (Including a failure to catch potential + exceptions raised by PyAutoGUI.) + """ + ... + + +class FailSafeException(PyAutoGUIException): + """ + This exception is raised by PyAutoGUI functions when the user puts the mouse cursor into one of the "failsafe + points" (by default, one of the four corners of the primary monitor). This exception shouldn't be caught; it's + meant to provide a way to terminate a misbehaving script. + """ + ... + + +class ImageNotFoundException(PyAutoGUIException): + """ + This exception is the PyAutoGUI version of PyScreeze's `ImageNotFoundException`, which is raised when a locate*() + function call is unable to find an image. + + Ideally, `pyscreeze.ImageNotFoundException` should never be raised by PyAutoGUI. + """ + ... + + +if sys.version_info[0] == 2 or sys.version_info[0: 2] in ((3, 1), (3, 2)): + collectionsSequence = ... +else: + collectionsSequence = ... + + +def raisePyAutoGUIImageNotFoundException(wrappedFunction) -> Callable: + """ + A decorator that wraps PyScreeze locate*() functions so that the PyAutoGUI user sees them raise PyAutoGUI's + ImageNotFoundException rather than PyScreeze's ImageNotFoundException. This is because PyScreeze should be + invisible to PyAutoGUI users. + """ + ... + + +def useImageNotFoundException(value=...) -> None: + """ + When called with no arguments, PyAutoGUI will raise ImageNotFoundException when the PyScreeze locate*() functions + can't find the image it was told to locate. The default behavior is to return None. Call this function with no + arguments (or with True as the argument) to have exceptions raised, which is a better practice. + + You can also disable raising exceptions by passing False for the argument. + """ + ... + + +if sys.platform == "win32": + ... +KEY_NAMES = ... +KEYBOARD_KEYS = ... +LEFT = ... +MIDDLE = ... +RIGHT = ... +PRIMARY = ... +SECONDARY = ... +QWERTY = ... +QWERTZ = ... + + +def isShiftCharacter(character) -> bool: + """ + Returns True if the ``character`` is a keyboard key that would require the shift key to be held down, such as + uppercase letters or the symbols on the keyboard's number row. + """ + ... + + +if sys.platform.startswith("java"): + ... +else: + ... +MINIMUM_DURATION = ... +MINIMUM_SLEEP = ... +PAUSE = ... +DARWIN_CATCH_UP_TIME = ... +FAILSAFE = bool +FAILSAFE_POINTS = ... +LOG_SCREENSHOTS = ... +LOG_SCREENSHOTS_LIMIT = ... +G_LOG_SCREENSHOTS_FILENAMES = ... +Point = ... +Size = ... + + +def getPointOnLine(x1, y1, x2, y2, n) -> tuple[Unknown, Unknown]: + """ + Returns an (x, y) tuple of the point that has progressed a proportion ``n`` along the line defined by the two + ``x1``, ``y1`` and ``x2``, ``y2`` coordinates. + + This function was copied from pytweening module, so that it can be called even if PyTweening is not installed. + """ + ... + + +def linear(n): + """ + Returns ``n``, where ``n`` is the float argument between ``0.0`` and ``1.0``. This function is for the default + linear tween for mouse moving functions. + + This function was copied from PyTweening module, so that it can be called even if PyTweening is not installed. + """ + ... + + +def position(x=..., y=...) -> Point: + """ + Returns the current xy coordinates of the mouse cursor as a two-integer tuple. + + Args: + x (int, None, optional) - If not None, this argument overrides the x in + the return value. + y (int, None, optional) - If not None, this argument overrides the y in + the return value. + + Returns: + (x, y) tuple of the current xy coordinates of the mouse cursor. + + NOTE: The position() function doesn't check for failsafe. + """ + ... + + +def size() -> Size: + """Returns the width and height of the screen as a two-integer tuple. + + Returns: + (width, height) tuple of the screen size, in pixels. + """ + ... + + +def onScreen(x, y=...) -> bool: + """Returns whether the given xy coordinates are on the primary screen or not. + + Note that this function doesn't work for secondary screens. + + Args: + Either the arguments are two separate values, first arg for x and second + for y, or there is a single argument of a sequence with two values, the + first x and the second y. + Example: onScreen(x, y) or onScreen([x, y]) + + Returns: + bool: True if the xy coordinates are on the screen at its current + resolution, otherwise False. + """ + ... + + +@_genericPyAutoGUIChecks +def mouseDown(x=..., y=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs pressing a mouse button down (but not up). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + mouse down happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + mouse down happens. None by default. + button (str, int, optional): The mouse button pressed down. TODO + + Returns: + None + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, or 3 + """ + ... + + +@_genericPyAutoGUIChecks +def mouseUp(x=..., y=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs releasing a mouse button up (but not down beforehand). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + mouse up happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + mouse up happens. None by default. + button (str, int, optional): The mouse button released. TODO + + Returns: + None + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, or 3 + """ + ... + + +@_genericPyAutoGUIChecks +def click(x=..., y=..., clicks=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """ + Performs pressing a mouse button down and then immediately releasing it. Returns ``None``. + + When no arguments are passed, the primary mouse button is clicked at the mouse cursor's current location. + + If integers for ``x`` and ``y`` are passed, the click will happen at that XY coordinate. If ``x`` is a string, the + string is an image filename that PyAutoGUI will attempt to locate on the screen and click the center of. If ``x`` + is a sequence of two coordinates, those coordinates will be used for the XY coordinate to click on. + + The ``clicks`` argument is an int of how many clicks to make, and defaults to ``1``. + + The ``interval`` argument is an int or float of how many seconds to wait in between each click, if ``clicks`` is + greater than ``1``. It defaults to ``0.0`` for no pause in between clicks. + + The ``button`` argument is one of the constants ``LEFT``, ``MIDDLE``, ``RIGHT``, ``PRIMARY``, or ``SECONDARY``. + It defaults to ``PRIMARY`` (which is the left mouse button, unless the operating system has been set for + left-handed users.) + + If ``x`` and ``y`` are specified, and the click is not happening at the mouse cursor's current location, then + the ``duration`` argument is an int or float of how many seconds it should take to move the mouse to the XY + coordinates. It defaults to ``0`` for an instant move. + + If ``x`` and ``y`` are specified and ``duration`` is not ``0``, the ``tween`` argument is a tweening function + that specifies the movement pattern of the mouse cursor as it moves to the XY coordinates. The default is a + simple linear tween. See the PyTweening module documentation for more details. + + The ``pause`` parameter is deprecated. Call the ``pyautogui.sleep()`` function to implement a pause. + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3 + """ + ... + + +@_genericPyAutoGUIChecks +def leftClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a left mouse button click. + + This is a wrapper function for click('left', x, y). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + interval (float, optional): The number of seconds in between each click, + if the number of clicks is greater than 1. 0.0 by default, for no + pause in between clicks. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def rightClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a right mouse button click. + + This is a wrapper function for click('right', x, y). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + interval (float, optional): The number of seconds in between each click, + if the number of clicks is greater than 1. 0.0 by default, for no + pause in between clicks. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def middleClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a middle mouse button click. + + This is a wrapper function for click('middle', x, y). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def doubleClick(x=..., y=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a double click. + + This is a wrapper function for click('left', x, y, 2, interval). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + interval (float, optional): The number of seconds in between each click, + if the number of clicks is greater than 1. 0.0 by default, for no + pause in between clicks. + button (str, int, optional): The mouse button released. TODO + + Returns: + None + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3, 4, + 5, 6, or 7 + """ + ... + + +@_genericPyAutoGUIChecks +def tripleClick(x=..., y=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a triple click. + + This is a wrapper function for click('left', x, y, 3, interval). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + interval (float, optional): The number of seconds in between each click, + if the number of clicks is greater than 1. 0.0 by default, for no + pause in between clicks. + button (str, int, optional): The mouse button released. TODO + + Returns: + None + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3, 4, + 5, 6, or 7 + """ + ... + + +@_genericPyAutoGUIChecks +def scroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: + """Performs a scroll of the mouse scroll wheel. + + Whether this is a vertical or horizontal scroll depends on the underlying + operating system. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + clicks (int, float): The amount of scrolling to perform. + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def hscroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: + """Performs an explicitly horizontal scroll of the mouse scroll wheel, + if this is supported by the operating system. (Currently just Linux.) + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + clicks (int, float): The amount of scrolling to perform. + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def vscroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: + """Performs an explicitly vertical scroll of the mouse scroll wheel, + if this is supported by the operating system. (Currently just Linux.) + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + clicks (int, float): The amount of scrolling to perform. + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def moveTo(x=..., y=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Moves the mouse cursor to a point on the screen. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + duration (float, optional): The amount of time it takes to move the mouse + cursor to the xy coordinates. If 0, then the mouse cursor is moved + instantaneously. 0.0 by default. + tween (func, optional): The tweening function used if the duration is not + 0. A linear tween is used by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def moveRel(xOffset=..., yOffset=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Moves the mouse cursor to a point on the screen, relative to its current + position. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): How far left (for negative values) or + right (for positive values) to move the cursor. 0 by default. If tuple, this is used for x and y. + y (int, float, None, optional): How far up (for negative values) or + down (for positive values) to move the cursor. 0 by default. + duration (float, optional): The amount of time it takes to move the mouse + cursor to the new xy coordinates. If 0, then the mouse cursor is moved + instantaneously. 0.0 by default. + tween (func, optional): The tweening function used if the duration is not + 0. A linear tween is used by default. + + Returns: + None + """ + ... + + +move = ... + + +@_genericPyAutoGUIChecks +def dragTo(x=..., y=..., duration=..., tween=..., button=..., logScreenshot=..., _pause=..., mouseDownUp=...) -> None: + """Performs a mouse drag (mouse movement while a button is held down) to a + point on the screen. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): How far left (for negative values) or + right (for positive values) to move the cursor. 0 by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): How far up (for negative values) or + down (for positive values) to move the cursor. 0 by default. + duration (float, optional): The amount of time it takes to move the mouse + cursor to the new xy coordinates. If 0, then the mouse cursor is moved + instantaneously. 0.0 by default. + tween (func, optional): The tweening function used if the duration is not + 0. A linear tween is used by default. + button (str, int, optional): The mouse button released. TODO + mouseDownUp (True, False): When true, the mouseUp/Down actions are not performed. + Which allows dragging over multiple (small) actions. 'True' by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def dragRel(xOffset=..., yOffset=..., duration=..., tween=..., button=..., logScreenshot=..., _pause=..., mouseDownUp=...): + """Performs a mouse drag (mouse movement while a button is held down) to a + point on the screen, relative to its current position. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): How far left (for negative values) or + right (for positive values) to move the cursor. 0 by default. If tuple, this is used for xOffset and yOffset. + y (int, float, None, optional): How far up (for negative values) or + down (for positive values) to move the cursor. 0 by default. + duration (float, optional): The amount of time it takes to move the mouse + cursor to the new xy coordinates. If 0, then the mouse cursor is moved + instantaneously. 0.0 by default. + tween (func, optional): The tweening function used if the duration is not + 0. A linear tween is used by default. + button (str, int, optional): The mouse button released. TODO + mouseDownUp (True, False): When true, the mouseUp/Down actions are not performed. + Which allows dragging over multiple (small) actions. 'True' by default. + + Returns: + None + """ + ... + + +drag = ... + + +def isValidKey(key) -> bool: + """Returns a Boolean value if the given key is a valid value to pass to + PyAutoGUI's keyboard-related functions for the current platform. + + This function is here because passing an invalid value to the PyAutoGUI + keyboard functions currently is a no-op that does not raise an exception. + + Some keys are only valid on some platforms. For example, while 'esc' is + valid for the Escape key on all platforms, 'browserback' is only used on + Windows operating systems. + + Args: + key (str): The key value. + + Returns: + bool: True if key is a valid value, False if not. + """ + ... + + +@_genericPyAutoGUIChecks +def keyDown(key, logScreenshot=..., _pause=...) -> None: + """Performs a keyboard key press without the release. This will put that + key in a held down state. + + NOTE: For some reason, this does not seem to cause key repeats like would + happen if a keyboard key was held down on a text field. + + Args: + key (str): The key to be pressed down. The valid names are listed in + KEYBOARD_KEYS. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def keyUp(key, logScreenshot=..., _pause=...) -> None: + """Performs a keyboard key release (without the press down beforehand). + + Args: + key (str): The key to be released up. The valid names are listed in + KEYBOARD_KEYS. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def press(keys, presses=..., interval=..., logScreenshot=..., _pause=...): + """Performs a keyboard key press down, followed by a release. + + Args: + key (str, list): The key to be pressed. The valid names are listed in + KEYBOARD_KEYS. Can also be a list of such strings. + presses (integer, optional): The number of press repetitions. + 1 by default, for just one press. + interval (float, optional): How many seconds between each press. + 0.0 by default, for no pause between presses. + pause (float, optional): How many seconds in the end of function process. + None by default, for no pause in the end of function process. + Returns: + None + """ + ... + + +@contextmanager +@_genericPyAutoGUIChecks +def hold(keys, logScreenshot=..., _pause=...): + """Context manager that performs a keyboard key press down upon entry, + followed by a release upon exit. + + Args: + key (str, list): The key to be pressed. The valid names are listed in + KEYBOARD_KEYS. Can also be a list of such strings. + pause (float, optional): How many seconds in the end of function process. + None by default, for no pause in the end of function process. + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def typewrite(message, interval=..., logScreenshot=..., _pause=...) -> None: + """Performs a keyboard key press down, followed by a release, for each of + the characters in message. + + The message argument can also be list of strings, in which case any valid + keyboard name can be used. + + Since this performs a sequence of keyboard presses and does not hold down + keys, it cannot be used to perform keyboard shortcuts. Use the hotkey() + function for that. + + Args: + message (str, list): If a string, then the characters to be pressed. If a + list, then the key names of the keys to press in order. The valid names + are listed in KEYBOARD_KEYS. + interval (float, optional): The number of seconds in between each press. + 0.0 by default, for no pause in between presses. + + Returns: + None + """ + ... + + +write = ... + + +@_genericPyAutoGUIChecks +def hotkey(*args: str, **kwargs: Union[int, bool, None]) -> None: + """Performs key down presses on the arguments passed in order, then performs + key releases in reverse order. + + The effect is that calling hotkey('ctrl', 'shift', 'c') would perform a + "Ctrl-Shift-C" hotkey/keyboard shortcut press. + + Args: + key(s) (str): The series of keys to press, in order. This can also be a + list of key strings to press. + interval (float, optional): The number of seconds in between each press. + 0.0 by default, for no pause in between presses. + + Returns: + None + """ + ... + + +def failSafeCheck() -> None: + ... + + +def displayMousePosition(xOffset=..., yOffset=...): + """This function is meant to be run from the command line. It will + automatically display the location and RGB of the mouse cursor.""" + ... + + +def sleep(seconds) -> None: + ... + + +def countdown(seconds) -> None: + ... + + +def run(commandStr, _ssCount=...) -> None: + """Run a series of PyAutoGUI function calls according to a mini-language + made for this function. The `commandStr` is composed of character + commands that represent PyAutoGUI function calls. + + For example, `run('ccg-20,+0c')` clicks the mouse twice, then makes + the mouse cursor go 20 pixels to the left, then click again. + + Whitespace between commands and arguments is ignored. Command characters + must be lowercase. Quotes must be single quotes. + + For example, the previous call could also be written as `run('c c g -20, +0 c')`. + + The character commands and their equivalents are here: + + `c` => `click(button=PRIMARY)` + `l` => `click(button=LEFT)` + `m` => `click(button=MIDDLE)` + `r` => `click(button=RIGHT)` + `su` => `scroll(1) # scroll up` + `sd` => `scroll(-1) # scroll down` + `ss` => `screenshot('screenshot1.png') # filename number increases on its own` + + `gX,Y` => `moveTo(X, Y)` + `g+X,-Y` => `move(X, Y) # The + or - prefix is the difference between move() and moveTo()` + `dX,Y` => `dragTo(X, Y)` + `d+X,-Y` => `drag(X, Y) # The + or - prefix is the difference between drag() and dragTo()` + + `k'key'` => `press('key')` + `w'text'` => `write('text')` + `h'key,key,key'` => `hotkey(*'key,key,key'.replace(' ', '').split(','))` + `a'hello'` => `alert('hello')` + + `sN` => `sleep(N) # N can be an int or float` + `pN` => `PAUSE = N # N can be an int or float` + + `fN(commands)` => for i in range(N): run(commands) + + Note that any changes to `PAUSE` with the `p` command will be undone when + this function returns. The original `PAUSE` setting will be reset. + + TODO - This function is under development. + """ + ... + + +def printInfo(dontPrint=...) -> str: + ... + + +def getInfo() -> tuple[str, str, Literal['0.9.53'], str, Size, datetime]: + ... diff --git a/typings/pythonwin-stubs/win32typing.pyi b/typings/pythonwin-stubs/win32typing.pyi new file mode 100644 index 00000000..270cb353 --- /dev/null +++ b/typings/pythonwin-stubs/win32typing.pyi @@ -0,0 +1,51700 @@ +__all__=['', 'COMMTIMEOUTS', 'CopyProgressRoutine', 'DOCINFO', 'ExportCallback', 'FORM_INFO_1', 'ImportCallback', 'LARGE_INTEGER', 'NCB', 'PRINTER_DEFAULTS', 'PyACL', 'PyBITMAP', 'PyBLENDFUNCTION', 'PyCEHANDLE', 'PyCERTSTORE', 'PyCERT_ALT_NAME_ENTRY', 'PyCERT_ALT_NAME_INFO', 'PyCERT_AUTHORITY_KEY_ID_INFO', 'PyCERT_BASIC_CONSTRAINTS2_INFO', 'PyCERT_BASIC_CONSTRAINTS_INFO', 'PyCERT_CONTEXT', 'PyCERT_EXTENSION', 'PyCERT_KEY_ATTRIBUTES_INFO', 'PyCERT_NAME_INFO', 'PyCERT_NAME_VALUE', 'PyCERT_OTHER_NAME', 'PyCERT_POLICY_INFO', 'PyCERT_PUBLIC_KEY_INFO', 'PyCOMSTAT', 'PyCOORD', 'PyCREDENTIAL', 'PyCREDENTIAL_ATTRIBUTE', 'PyCREDENTIAL_TARGET_INFORMATION', 'PyCREDUI_INFO', 'PyCRYPTHASH', 'PyCRYPTKEY', 'PyCRYPTMSG', 'PyCRYPTPROTECT_PROMPTSTRUCT', 'PyCRYPTPROV', 'PyCRYPT_ALGORITHM_IDENTIFIER', 'PyCRYPT_ATTRIBUTE', 'PyCRYPT_BIT_BLOB', 'PyCRYPT_DECRYPT_MESSAGE_PARA', 'PyCRYPT_ENCRYPT_MESSAGE_PARA', 'PyCRYPT_SIGN_MESSAGE_PARA', 'PyCRYPT_VERIFY_MESSAGE_PARA', 'PyCTL_CONTEXT', 'PyCTL_USAGE', 'PyConsoleScreenBuffer', 'PyCredHandle', 'PyCtxtHandle', 'PyDCB', 'PyDEVMODE', 'PyDEVMODEW', 'PyDISPLAY_DEVICE', 'PyDLGITEMTEMPLATE', 'PyDLGTEMPLATE', 'PyDS_HANDLE', 'PyDS_NAME_RESULT_ITEM', 'PyDateTime', 'PyDialogTemplate', 'PyEVTLOG_HANDLE', 'PyEVT_HANDLE', 'PyEVT_RPC_LOGIN', 'PyEventLogRecord', 'PyGROUP_INFO_0', 'PyGROUP_INFO_1', 'PyGROUP_INFO_1002', 'PyGROUP_INFO_1005', 'PyGROUP_INFO_2', 'PyGROUP_USERS_INFO_0', 'PyGROUP_USERS_INFO_1', 'PyGdiHANDLE', 'PyGetSignerCertificate', 'PyHANDLE', 'PyHDESK', 'PyHDEVNOTIFY', 'PyHHNTRACK', 'PyHHN_NOTIFY', 'PyHH_AKLINK', 'PyHH_FTS_QUERY', 'PyHH_POPUP', 'PyHH_WINTYPE', 'PyHINTERNET', 'PyHKEY', 'PyHTHEME', 'PyHWINSTA', 'PyICONINFO', 'PyIID', 'PyINPUT_RECORD', 'PyLOCALGROUP_INFO_0', 'PyLOCALGROUP_INFO_1', 'PyLOCALGROUP_INFO_1002', 'PyLOCALGROUP_MEMBERS_INFO_0', 'PyLOCALGROUP_MEMBERS_INFO_1', 'PyLOCALGROUP_MEMBERS_INFO_2', 'PyLOCALGROUP_MEMBERS_INFO_3', 'PyLOGBRUSH', 'PyLOGFONT', 'PyLSA_HANDLE', 'PyLUID_AND_ATTRIBUTES', 'PyLsaLogon_HANDLE', 'PyMSG', 'PyNETRESOURCE', 'PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG', 'PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG', 'PyNET_VALIDATE_PERSISTED_FIELDS', 'PyNMHDR', 'PyNOTIFYICONDATA', 'PyOVERLAPPED', 'PyOVERLAPPEDReadBuffer', 'PyPERF_COUNTER_DEFINITION', 'PyPERF_OBJECT_TYPE', 'PyPOINT', 'PyPROFILEINFO', 'PyPerfMonManager', 'PyPrinterHANDLE', 'PyRECT', 'PyResourceId', 'PySCROLLINFO', 'PySC_HANDLE', 'PySECURITY_ATTRIBUTES', 'PySECURITY_DESCRIPTOR', 'PySERVER_INFO_100', 'PySERVER_INFO_101', 'PySERVER_INFO_102', 'PySERVER_INFO_402', 'PySERVER_INFO_403', 'PySERVER_INFO_502', 'PySERVER_INFO_503', 'PySHARE_INFO_0', 'PySHARE_INFO_1', 'PySHARE_INFO_2', 'PySHARE_INFO_501', 'PySHARE_INFO_502', 'PySID', 'PySID_AND_ATTRIBUTES', 'PySIZE', 'PySMALL_RECT', 'PySTARTUPINFO', 'PySecBuffer', 'PySecBufferDesc', 'PyTOKEN_GROUPS', 'PyTOKEN_PRIVILEGES', 'PyTRIVERTEX', 'PyTRUSTEE', 'PyTS_HANDLE', 'PyTime', 'PyUSER_INFO_0', 'PyUSER_INFO_1', 'PyUSER_INFO_10', 'PyUSER_INFO_1003', 'PyUSER_INFO_1005', 'PyUSER_INFO_1006', 'PyUSER_INFO_1007', 'PyUSER_INFO_1008', 'PyUSER_INFO_1009', 'PyUSER_INFO_1010', 'PyUSER_INFO_1011', 'PyUSER_INFO_11', 'PyUSER_INFO_2', 'PyUSER_INFO_20', 'PyUSER_INFO_3', 'PyUSER_INFO_4', 'PyUSER_MODALS_INFO_0', 'PyUSER_MODALS_INFO_1', 'PyUSER_MODALS_INFO_2', 'PyUSER_MODALS_INFO_3', 'PyUSE_INFO_0', 'PyUSE_INFO_1', 'PyUSE_INFO_2', 'PyUSE_INFO_3', 'PyUnicode', 'PyUrlCacheHANDLE', 'PyWAVEFORMATEX', 'PyWINHTTP_AUTOPROXY_OPTIONS', 'PyWINHTTP_PROXY_INFO', 'PyWKSTA_INFO_100', 'PyWKSTA_INFO_101', 'PyWKSTA_INFO_102', 'PyWKSTA_INFO_302', 'PyWKSTA_INFO_402', 'PyWKSTA_INFO_502', 'PyWKSTA_TRANSPORT_INFO_0', 'PyWKSTA_USER_INFO_0', 'PyWKSTA_USER_INFO_1', 'PyWNDCLASS', 'PyXFORM', 'Pymmapfile', 'RASDIALEXTENSIONS', 'RASDIALPARAMS', 'SC_ACTION', 'SERVICE_FAILURE_ACTIONS', 'SERVICE_STATUS', 'TRACKMOUSEEVENT', 'ULARGE_INTEGER', 'WIN32_FIND_DATA', 'com_error', 'connection', 'cursor', 'error', 'COMPONENT', 'COMPONENTSOPT', 'COMPPOS', 'COMPSTATEINFO', 'DEFCONTENTMENU', 'ELEMDESC', 'EXP_DARWIN_LINK', 'EXP_SPECIAL_FOLDER', 'EXP_SZ_LINK', 'FUNCDESC', 'IDLDESC', 'MAPIINIT_0', 'NT_CONSOLE_PROPS', 'NT_FE_CONSOLE_PROPS', 'PROPSPEC', 'PyADSVALUE', 'PyADS_ATTR_INFO', 'PyADS_OBJECT_INFO', 'PyADS_SEARCHPREF_INFO', 'PyBIND_OPTS', 'PyCMINVOKECOMMANDINFO', 'PyDSBCAPS', 'PyDSBUFFERDESC', 'PyDSCAPS', 'PyDSCBCAPS', 'PyDSCBUFFERDESC', 'PyDSCCAPS', 'PyDSOP_FILTER_FLAGS', 'PyDSOP_SCOPE_INIT_INFO', 'PyDSOP_SCOPE_INIT_INFOs', 'PyDSOP_UPLEVEL_FILTER_FLAGS', 'PyFORMATETC', 'PyGFileOperationProgressSink', 'PyGSecurityInformation', 'PyIADesktopP2', 'PyIADs', 'PyIADsContainer', 'PyIADsUser', 'PyIActiveDesktop', 'PyIActiveDesktopP', 'PyIActiveScriptDebug', 'PyIActiveScriptError', 'PyIActiveScriptErrorDebug', 'PyIActiveScriptParseProcedure', 'PyIActiveScriptSite', 'PyIActiveScriptSiteDebug', 'PyIAddrBook', 'PyIApplicationDebugger', 'PyIApplicationDestinations', 'PyIApplicationDocumentLists', 'PyIAsyncOperation', 'PyIAttach', 'PyIBindCtx', 'PyIBrowserFrameOptions', 'PyICancelMethodCalls', 'PyICatInformation', 'PyICatRegister', 'PyICategoryProvider', 'PyIClassFactory', 'PyIClientSecurity', 'PyIColumnProvider', 'PyIConnectionPoint', 'PyIConnectionPointContainer', 'PyIContext', 'PyIContextMenu', 'PyICopyHookA', 'PyICopyHookW', 'PyICreateTypeInfo', 'PyICreateTypeLib', 'PyICreateTypeLib2', 'PyICurrentItem', 'PyICustomDestinationList', 'PyIDL', 'PyIDataObject', 'PyIDebugApplication', 'PyIDebugApplicationNode', 'PyIDebugApplicationNodeEvents', 'PyIDebugApplicationThread', 'PyIDebugCodeContext', 'PyIDebugDocument', 'PyIDebugDocumentContext', 'PyIDebugDocumentHelper', 'PyIDebugDocumentHost', 'PyIDebugDocumentInfo', 'PyIDebugDocumentProvider', 'PyIDebugDocumentText', 'PyIDebugDocumentTextAuthor', 'PyIDebugDocumentTextEvents', 'PyIDebugDocumentTextExternalAuthor', 'PyIDebugExpression', 'PyIDebugExpressionCallBack', 'PyIDebugExpressionContext', 'PyIDebugProperty', 'PyIDebugSessionProvider', 'PyIDebugStackFrame', 'PyIDebugStackFrameSniffer', 'PyIDebugStackFrameSnifferEx', 'PyIDebugSyncOperation', 'PyIDefaultExtractIconInit', 'PyIDirectSound', 'PyIDirectSoundBuffer', 'PyIDirectSoundCapture', 'PyIDirectSoundCaptureBuffer', 'PyIDirectSoundNotify', 'PyIDirectoryObject', 'PyIDirectorySearch', 'PyIDispatch', 'PyIDispatchEx', 'PyIDisplayItem', 'PyIDocHostUIHandler', 'PyIDropSource', 'PyIDropTarget', 'PyIDropTargetHelper', 'PyIDsObjectPicker', 'PyIEmptyVolumeCache', 'PyIEmptyVolumeCache2', 'PyIEmptyVolumeCacheCallBack', 'PyIEnumCATEGORYINFO', 'PyIEnumConnectionPoints', 'PyIEnumConnections', 'PyIEnumContextProps', 'PyIEnumDebugApplicationNodes', 'PyIEnumDebugCodeContexts', 'PyIEnumDebugExpressionContexts', 'PyIEnumDebugPropertyInfo', 'PyIEnumDebugStackFrames', 'PyIEnumExplorerCommand', 'PyIEnumFORMATETC', 'PyIEnumGUID', 'PyIEnumIDList', 'PyIEnumMoniker', 'PyIEnumObjects', 'PyIEnumRemoteDebugApplicationThreads', 'PyIEnumRemoteDebugApplications', 'PyIEnumResources', 'PyIEnumSTATPROPSETSTG', 'PyIEnumSTATPROPSTG', 'PyIEnumSTATSTG', 'PyIEnumShellItems', 'PyIEnumString', 'PyIErrorLog', 'PyIExplorerBrowser', 'PyIExplorerBrowserEvents', 'PyIExplorerCommand', 'PyIExplorerCommandProvider', 'PyIExplorerPaneVisibility', 'PyIExternalConnection', 'PyIExtractIcon', 'PyIExtractIconW', 'PyIExtractImage', 'PyIFileOperation', 'PyIIdentityName', 'PyIInitializeWithFile', 'PyIInitializeWithStream', 'PyIInputObject', 'PyIInternetBindInfo', 'PyIInternetPriority', 'PyIInternetProtocol', 'PyIInternetProtocolInfo', 'PyIInternetProtocolRoot', 'PyIInternetProtocolSink', 'PyIInternetSecurityManager', 'PyIKnownFolder', 'PyIKnownFolderManager', 'PyILockBytes', 'PyIMAPIContainer', 'PyIMAPIFolder', 'PyIMAPIProp', 'PyIMAPISession', 'PyIMAPIStatus', 'PyIMAPITable', 'PyIMachineDebugManager', 'PyIMachineDebugManagerEvents', 'PyIMessage', 'PyIMoniker', 'PyIMsgServiceAdmin', 'PyIMsgStore', 'PyINameSpaceTreeControl', 'PyINamedPropertyStore', 'PyIObjectArray', 'PyIObjectCollection', 'PyIObjectWithPropertyKey', 'PyIObjectWithSite', 'PyIOleClientSite', 'PyIOleCommandTarget', 'PyIOleControl', 'PyIOleControlSite', 'PyIOleInPlaceActiveObject', 'PyIOleInPlaceFrame', 'PyIOleInPlaceObject', 'PyIOleInPlaceSite', 'PyIOleInPlaceSiteEx', 'PyIOleInPlaceSiteWindowless', 'PyIOleInPlaceUIWindow', 'PyIOleObject', 'PyIOleWindow', 'PyIPersist', 'PyIPersistFile', 'PyIPersistFolder', 'PyIPersistFolder2', 'PyIPersistPropertyBag', 'PyIPersistSerializedPropStorage', 'PyIPersistStorage', 'PyIPersistStream', 'PyIPersistStreamInit', 'PyIProcessDebugManager', 'PyIProfAdmin', 'PyIPropertyBag', 'PyIPropertyChange', 'PyIPropertyChangeArray', 'PyIPropertyDescription', 'PyIPropertyDescriptionAliasInfo', 'PyIPropertyDescriptionList', 'PyIPropertyDescriptionSearchInfo', 'PyIPropertyEnumType', 'PyIPropertyEnumTypeList', 'PyIPropertySetStorage', 'PyIPropertyStorage', 'PyIPropertyStore', 'PyIPropertyStoreCache', 'PyIPropertyStoreCapabilities', 'PyIPropertySystem', 'PyIProvideClassInfo', 'PyIProvideClassInfo2', 'PyIProvideExpressionContexts', 'PyIProvideTaskPage', 'PyIQueryAssociations', 'PyIRelatedItem', 'PyIRemoteDebugApplication', 'PyIRemoteDebugApplicationEvents', 'PyIRemoteDebugApplicationThread', 'PyIRunningObjectTable', 'PyIScheduledWorkItem', 'PyIServerSecurity', 'PyIServiceProvider', 'PyIShellBrowser', 'PyIShellExtInit', 'PyIShellFolder', 'PyIShellFolder2', 'PyIShellIcon', 'PyIShellIconOverlay', 'PyIShellIconOverlayIdentifier', 'PyIShellIconOverlayManager', 'PyIShellItem', 'PyIShellItem2', 'PyIShellItemArray', 'PyIShellItemResources', 'PyIShellLibrary', 'PyIShellLink', 'PyIShellLinkDataList', 'PyIShellView', 'PyISpecifyPropertyPages', 'PyIStorage', 'PyIStream', 'PyITask', 'PyITaskScheduler', 'PyITaskTrigger', 'PyITaskbarList', 'PyITransferAdviseSink', 'PyITransferDestination', 'PyITransferMediumItem', 'PyITransferSource', 'PyITypeComp', 'PyITypeInfo', 'PyITypeLib', 'PyIUniformResourceLocator', 'PyIUnknown', 'PyIViewObject', 'PyIViewObject2', 'PyMAPINAMEIDArray', 'PyOLEMENUGROUPWIDTHS', 'PyPROPERTYKEY', 'PyPROPVARIANT', 'PySAndRestriction', 'PySBinaryArray', 'PySBitMaskRestriction', 'PySContentRestriction', 'PySExistRestriction', 'PySHELL_ITEM_RESOURCE', 'PySNotRestriction', 'PySOrRestriction', 'PySPropTagArray', 'PySPropValue', 'PySPropValueArray', 'PySPropertyRestriction', 'PySRestriction', 'PySRow', 'PySRowSet', 'PySSortOrderItem', 'PySSortOrderSet', 'PySTGMEDIUM', 'PyTASK_TRIGGER', 'RTF_WCSINFO', 'SHFILEINFO', 'SHFILEOPSTRUCT', 'SI_ACCESS', 'SI_INHERIT_TYPE', 'SI_OBJECT_INFO', 'STATSTG', 'TLIBATTR', 'TYPEATTR', 'TYPEDESC', 'VARDESC', 'CHARFORMAT', 'CREATESTRUCT', 'LV_COLUMN', 'LV_ITEM', 'PARAFORMAT', 'PyAssocCObject', 'PyAssocObject', 'PyCBitmap', 'PyCBrush', 'PyCButton', 'PyCCmdTarget', 'PyCCmdUI', 'PyCColorDialog', 'PyCComboBox', 'PyCCommonDialog', 'PyCControl', 'PyCControlBar', 'PyCCtrlView', 'PyCDC', 'PyCDialog', 'PyCDialogBar', 'PyCDocTemplate', 'PyCDockContext', 'PyCDocument', 'PyCEdit', 'PyCEditView', 'PyCFileDialog', 'PyCFont', 'PyCFontDialog', 'PyCFormView', 'PyCFrameWnd', 'PyCGdiObject', 'PyCImageList', 'PyCListBox', 'PyCListCtrl', 'PyCListView', 'PyCMDIChildWnd', 'PyCMDIFrameWnd', 'PyCMenu', 'PyCOleClientItem', 'PyCOleDialog', 'PyCOleDocument', 'PyCOleInsertDialog', 'PyCPrintDialog', 'PyCPrintInfo', 'PyCProgressCtrl', 'PyCPropertyPage', 'PyCPropertySheet', 'PyCRect', 'PyCRgn', 'PyCRichEditCtrl', 'PyCRichEditDoc', 'PyCRichEditDocTemplate', 'PyCRichEditView', 'PyCScrollView', 'PyCSliderCtrl', 'PyCSpinButtonCtrl', 'PyCSplitterWnd', 'PyCStatusBar', 'PyCStatusBarCtrl', 'PyCTabCtrl', 'PyCToolBar', 'PyCToolBarCtrl', 'PyCToolTipCtrl', 'PyCTreeCtrl', 'PyCTreeView', 'PyCView', 'PyCWinApp', 'PyCWinThread', 'PyCWnd', 'PyDDEConv', 'PyDDEServer', 'PyDDEStringItem', 'PyDDETopic', 'PyDLL', 'SCROLLINFO', 'TV_ITEM', 'EXTENSION_CONTROL_BLOCK', 'HSE_VERSION_INFO', 'HTTP_FILTER_AUTHENT', 'HTTP_FILTER_CONTEXT', 'HTTP_FILTER_LOG', 'HTTP_FILTER_PREPROC_HEADERS', 'HTTP_FILTER_RAW_DATA', 'HTTP_FILTER_URL_MAP', 'HTTP_FILTER_VERSION'] +from typing import * + +class COMMTIMEOUTS(object): + """A tuple representing a COMMTIMEOUTS structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class CopyProgressRoutine(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class DOCINFO(object): + """A tuple of information representing a DOCINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def DocName(self)->'Union[str]': + """Name of document""" + pass + + + @property + def Output(self)->'Union[str]': + """Name of output file when printing to file. Use None for normal printing.""" + pass + + + @property + def DataType(self)->'Union[str]': + """Type of data to be sent to printer, eg RAW, EMF, TEXT. Use None for printer default.""" + pass + + + @property + def Type(self)->'Any': + """Flag specifying mode of operation. Can be DI_APPBANDING, DI_ROPS_READ_DESTINATION, or 0""" + pass + + +class ExportCallback(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class FORM_INFO_1(object): + """A dictionary containing FORM_INFO_1W data""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'Any': + """FORM_USER, FORM_BUILTIN, or FORM_PRINTER""" + pass + + + @property + def Name(self)->'str': + """Name of form""" + pass + + + @property + def Size(self)->'Any': + """A dictionary representing a SIZEL structure {'cx':int,'cy':int}""" + pass + + + @property + def ImageableArea(self)->'Any': + """A dictionary representing a RECTL structure {'left':int, 'top':int, 'right':int, 'bottom':int}""" + pass + + +class ImportCallback(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LARGE_INTEGER(object): + """A Python object used wherever a COM LARGE_INTEGER is used.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class NCB(object): + """A Python object that encapsulates a Win32 NCB structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Command(self)->'Any': + """""" + pass + + + @property + def Retcode(self)->'Any': + """""" + pass + + + @property + def Lsn(self)->'Any': + """""" + pass + + + @property + def Num(self)->'Any': + """""" + pass + + + @property + def Bufflen(self)->'Any': + """read-only""" + pass + + + @property + def Callname(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Name(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Rto(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Sto(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Lana_num(self)->'Any': + """""" + pass + + + @property + def Cmd_cplt(self)->'Any': + """""" + pass + + + @property + def Event(self)->'Any': + """""" + pass + + + @property + def Post(self)->'Any': + """""" + pass + + +class PRINTER_DEFAULTS(object): + """A dictionary representing a PRINTER_DEFAULTS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def pDatatype(self)->'str': + """Data type to be used for print jobs, see win32print::EnumPrintProcessorDatatypes, optional, can be None""" + pass + + + @property + def pDevMode(self)->'PyDEVMODE': + """A PyDEVMODE that specifies default printer parameters, optional, can be None""" + pass + + + @property + def DesiredAccess(self)->'Any': + """An ACCESS_MASK specifying what level of access is needed, eg PRINTER_ACCESS_ADMINISTER, PRINTER_ACCESS_USE""" + pass + + +class PyACL(object): + """A Python object, representing a ACL structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Initialize the ACL. + +Args: + + + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the ACL is valid (IsValidAcl) + +Args: + + + +Returns: + + None + + """ + pass + + + def AddAccessAllowedAce(self,revision:'Any',access:'Any',sid:'PySID',access1:'Any',sid1:'Any') -> 'None': + """ + Adds an access-allowed ACE to an DACL object. The access is granted to a + +specified SID. + +Args: + + revision(Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. + access(Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters + access1(Any):Specifies the mask of access rights to be denied to the specified SID. + sid1(Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. + +Returns: + + None + + """ + pass + + + def AddAccessAllowedAceEx(self,revision:'Any',aceflags:'Any',access:'Any',sid:'PySID') -> 'None': + """ + Add access allowed ACE to an ACL with ACE flags (Requires Win2k or higher) + +Args: + + revision(Any):Must be at least ACL_REVISION_DS + aceflags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + access(Any):Specifies the mask of access rights to be granted to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being granted access. + +Returns: + + None + + """ + pass + + + def AddAccessAllowedObjectAce(self,AceRevision:'Any',AceFlags:'Any',AccessMask:'Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID') -> 'None': + """ + Adds an ACCESS_ALLOWED_OBJECT_ACE to the ACL + +Args: + + AceRevision(Any):Must be at least ACL_REVISION_DS + AceFlags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + AccessMask(Any):Specifies the mask of access rights to be granted to the specified SID + ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None + InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None + sid(PySID):A SID object representing a user, group, or logon account being granted access. + +Returns: + + None + + """ + pass + + + def AddAccessDeniedAce(self,revision:'Any',access:'Any',sid:'PySID',access1:'Any',sid1:'Any') -> 'None': + """ + Adds an access-denied ACE to an ACL object. The access is denied to a specified + +SID. + +Args: + + revision(Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. + access(Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters + access1(Any):Specifies the mask of access rights to be denied to the specified SID. + sid1(Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. + +Returns: + + None + + """ + pass + + + def AddAccessDeniedAceEx(self,revision:'Any',aceflags:'Any',access:'Any',sid:'PySID') -> 'None': + """ + Add access denied ACE to an ACL with ACE flags (Requires Win2k or higher) + +Args: + + revision(Any):Must be at least ACL_REVISION_DS + aceflags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + access(Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access. + +Returns: + + None + + """ + pass + + + def AddMandatoryAce(self,AceRevision:'Any',AceFlags:'Any',MandatoryPolicy:'Any',LabelSid:'PySID') -> 'None': + """ + Adds a mandatory integrity level ACE to a SACL + +Args: + + AceRevision(Any):ACL_REVISION or ACL_REVISION_DS + AceFlags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + MandatoryPolicy(Any):Access policy for processes with lower integrity level, combination of SYSTEM_MANDATORY_LABEL_* flags + LabelSid(PySID):Integrity level SID. This can be created using CreateWellKnownSid with Win*LabelSid. Also can be constructed manually using SECURITY_MANDATORY_LABEL_AUTHORITY and a SECURITY_MANDATORY_*_RID + +Returns: + + None + + """ + pass + + + def AddAuditAccessAce(self,dwAceRevision:'Any',dwAccessMask:'Any',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': + """ + Adds an audit ACE to a Sacl + +Args: + + dwAceRevision(Any):Revision of ACL: Pre-Win2k, must be ACL_REVISION. Win2K on up, can also be ACL_REVISION_DS + dwAccessMask(Any):Bitmask of access types to be audited + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def AddAuditAccessAceEx(self,dwAceRevision:'Any',AceFlags:'Any',dwAccessMask:'Any',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': + """ + Adds an audit ACE to an Sacl, includes ace flags + +Args: + + dwAceRevision(Any):Revision of ACL: Must be at least ACL_REVISION_DS + AceFlags(Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE + dwAccessMask(Any):Bitmask of access types to be audited + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def AddAuditAccessObjectAce(self,dwAceRevision:'Any',AceFlags:'Any',dwAccessMask:'Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': + """ + Adds an audit ACE for an object type identified by GUID + +Args: + + dwAceRevision(Any):Revision of ACL: Must be at least ACL_REVISION_DS + AceFlags(Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE + dwAccessMask(Any):Bitmask of access types to be audited + ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None + InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def GetAclSize(self,) -> 'Any': + """ + Returns the storage size of the ACL. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAclRevision(self,) -> 'Any': + """ + Returns revision of the ACL. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAceCount(self,) -> 'Any': + """ + Returns the number of ACEs in the ACL. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAce(self,index:'Any') -> 'Any': + """ + Gets an Ace from the ACL + +Args: + + index(Any):Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned as a tuple of:Items[0] (int, int) : aceType, AceFlags[1] int : Mask[2] PySID : sidObject ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) are returned as a tuple:[0] (int, int) : aceType, AceFlags[1] int : mask[2] PyIID : ObjectType[3] PyIID : InheritedObjectType[4] PySID : sidFor details see the API documentation. + +Returns: + + Any:Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned + +as a tuple of: +Items[0] (int, int) : aceType, AceFlags + +[1] int : Mask + +[2] PySID : sid +Object ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) + +are returned as a tuple: +[0] (int, int) : aceType, AceFlags + +[1] int : mask + +[2] PyIID : ObjectType + +[3] PyIID : InheritedObjectType + +[4] PySID : sid +For details see the API documentation. + + + """ + pass + + + def DeleteAce(self,index:'Any') -> 'None': + """ + Deletes specified Ace from an ACL. + +Args: + + index(Any):Zero-based index of the ACE to delete. + +Returns: + + None + + """ + pass + + + def GetEffectiveRightsFromAcl(self,trustee:'PyTRUSTEE') -> 'Any': + """ + Return access rights (ACCESS_MASK) that the ACL grants to + +specified trustee + +Args: + + trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structure + +Returns: + + Any + + """ + pass + + + def GetAuditedPermissionsFromAcl(self,trustee:'PyTRUSTEE') -> 'Tuple[Any, Any]': + """ + Return types of access for + +which ACL will generate an audit event for specified trustee + +Args: + + trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structureCommentsThis function is known to return the success and failure access masks in the the wrong order on Windows 2000 service pack 4. Problem has been reported to Microsoft. + +Returns: + + Tuple[Any, Any] + + """ + pass + + +class PyBITMAP(object): + """A Python object, representing an PyBITMAP structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bmType(self)->'int': + """""" + pass + + + @property + def bmWidth(self)->'int': + """""" + pass + + + @property + def bmHeight(self)->'int': + """""" + pass + + + @property + def bmWidthBytes(self)->'int': + """""" + pass + + + @property + def bmPlanes(self)->'int': + """""" + pass + + +class PyBLENDFUNCTION(object): + """Tuple of four small ints used to fill a BLENDFUNCTION struct + +Each int must fit in a byte (0-255).""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCEHANDLE(object): + """A Python object, representing a remote Windows CE handle""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERTSTORE(object): + """Handle to a certificate store""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCERTSTORE(self)->'Any': + """Integer handle""" + pass + + + def CertCloseStore(self,Flags:'Any'=0) -> 'None': + """ + Closes the certificate store + +Args: + + Flags(Any):Combination of CERT_CLOSE_*_FLAG flags + +Returns: + + None + + """ + pass + + + def CertControlStore(self,Flags:'Any',CtrlType:'Any',CtrlPara:'int') -> 'None': + """ + Controls sychronization of the certificate store + +Args: + + Flags(Any):One of the CERT_STORE_CTRL_*_FLAG flags + CtrlType(Any):One of the CERT_STORE_CTRL_* flags + CtrlPara(int):Event handle, can be None (not used with CERT_STORE_CTRL_COMMIT) + +Returns: + + None + + """ + pass + + + def CertEnumCertificatesInStore(self,) -> 'List[PyCERT_CONTEXT]': + """ + Lists all certificates in the store + +Args: + + + +Returns: + + List[PyCERT_CONTEXT] + + """ + pass + + + def CertEnumCTLsInStore(self,) -> 'List[PyCTL_CONTEXT]': + """ + Finds all Certificate Trust Lists in store + +Args: + + + +Returns: + + List[PyCTL_CONTEXT] + + """ + pass + + + def CertSaveStore(self,MsgAndCertEncodingType:'Any',SaveAs:'Any',SaveTo:'Any',SaveToPara:'Union[str, int]',Flags:'Any'=0) -> 'None': + """ + Serializes the store to memory or a file + +Args: + + MsgAndCertEncodingType(Any):Only used when saveas is CERT_STORE_SAVE_AS_PKCS7 - usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING + SaveAs(Any):One of the CERT_STORE_SAVE_AS_* constants + SaveTo(Any):One of the CERT_STORE_SAVE_TO_* constants (CERT_STORE_SAVE_TO_MEMORY not supported yet) + SaveToPara(Union[str, int]):File name or open file handle depending on SaveTo parm + Flags(Any):Reserved, use 0 + +Returns: + + None + + """ + pass + + + def CertAddEncodedCertificateToStore(self,CertEncodingType:'Any',CertEncoded:'Any',AddDisposition:'Any') -> 'PyCERT_CONTEXT': + """ + Imports an encoded certificate into the + +store + +Args: + + CertEncodingType(Any):Usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING + CertEncoded(Any):Data containing a serialized certificate + AddDisposition(Any):Combination of CERT_STORE_ADD_* flags + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCertificateContextToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'Any') -> 'PyCERT_CONTEXT': + """ + Adds a certificate context to the store + +Args: + + CertContext(PyCERT_CONTEXT):Certificate context to be added + AddDisposition(Any):CERT_STORE_ADD_* constant + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCertificateLinkToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'Any') -> 'PyCERT_CONTEXT': + """ + Adds a link to a cert in another store + +Args: + + CertContext(PyCERT_CONTEXT):Certificate context to be linked + AddDisposition(Any):One of the CERT_STORE_ADD_* values + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCTLContextToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'Any') -> 'PyCTL_CONTEXT': + """ + Adds a certificate trust list to the store + +Args: + + CtlContext(PyCTL_CONTEXT):CTL to be added + AddDisposition(Any):CERT_STORE_ADD_* constant + +Returns: + + PyCTL_CONTEXT + + """ + pass + + + def CertAddCTLLinkToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'Any') -> 'PyCTL_CONTEXT': + """ + Adds a link to a CTL in another store + +Args: + + CtlContext(PyCTL_CONTEXT):CTL to be linked + AddDisposition(Any):One of the CERT_STORE_ADD_* values + +Returns: + + PyCTL_CONTEXT + + """ + pass + + + def CertAddStoreToCollection(self,SiblingStore:'PyCERTSTORE',UpdateFlag:'Any'=0,Priority:'Any'=0) -> 'None': + """ + Adds a sibling store to a store collection + +Args: + + SiblingStore(PyCERTSTORE):Store to be added to the collection + UpdateFlag(Any):Can be CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG to enable changes to persist + Priority(Any):Determines order in which store are searched and updatedCommentsA collection store is created by using cryptoapi::CertOpenStore with CERT_STORE_PROV_COLLECTION + +Returns: + + None + + """ + pass + + + def CertRemoveStoreFromCollection(self,SiblingStore:'PyCERTSTORE') -> 'None': + """ + Removes a sibling store from a collection + +Args: + + SiblingStore(PyCERTSTORE):Store to be removed from the collection + +Returns: + + None + + """ + pass + + + def PFXExportCertStoreEx(self,Flags:'Any',Password:'Any'=None) -> 'Any': + """ + Exports certificates and associated private keys in PKCS#12 format + +Args: + + Flags(Any):Options to be used while exporting + Password(Any):Passphrase to be used to encrypt the output + +Returns: + + Any + + """ + pass + + +class PyCERT_ALT_NAME_ENTRY(object): + """Represented as a 2-tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_ALT_NAME_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_AUTHORITY_KEY_ID_INFO(object): + """Dict containing the identity of a CA""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def KeyId(self)->'Any': + """Unique identifier of private key, usually a hash""" + pass + + + @property + def CertIssuer(self)->'Any': + """Encoded DN of the Certificate Authority. Decode using X509_UNICODE_NAME""" + pass + + + @property + def CertSerialNumber(self)->'Any': + """Serial nbr of the CA's signing certificate""" + pass + + +class PyCERT_BASIC_CONSTRAINTS2_INFO(object): + """Dict representing a CERT_BASIC_CONSTRAINTS2_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def fCA(self)->'Any': + """Indicates if cert represents a certificate authority""" + pass + + + @property + def fPathLenConstraint(self)->'Any': + """Indicates if PathLenConstraint member is used""" + pass + + + @property + def PathLenConstraint(self)->'Any': + """Limits number of intermediate CA's between root CA and end user""" + pass + + +class PyCERT_BASIC_CONSTRAINTS_INFO(object): + """Dict representing a CERT_BASIC_CONSTRAINTS_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SubjectType(self)->'PyCRYPT_BIT_BLOB': + """Contains a combination of CERT_CA_SUBJECT_FLAG,CERT_END_ENTITY_SUBJECT_FLAG""" + pass + + + @property + def fPathLenConstraint(self)->'Any': + """Indicates if PathLenConstraint member is used""" + pass + + + @property + def PathLenConstraint(self)->'Any': + """Limits number of intermediate CA's between root CA and end user""" + pass + + + @property + def SubtreesConstraint(self)->'Any': + """Sequence of encoded name blobs""" + pass + + +class PyCERT_CONTEXT(object): + """Handle to a certificate context""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HANDLE(self)->'Any': + """Pointer to CERT_CONTEXT struct""" + pass + + + @property + def CertStore(self)->'PyCERTSTORE': + """Handle to the certificate store that contains this certificate""" + pass + + + @property + def CertEncoded(self)->'Any': + """Content of the certificate as encoded bytes""" + pass + + + @property + def CertEncodingType(self)->'Any': + """Method used to encode the certifcate, usually X509_ASN_ENCODING or PKCS_7_ASN_ENCODING""" + pass + + + @property + def Version(self)->'Any': + """One of the CERT_V* values""" + pass + + + @property + def Subject(self)->'str': + """Encoded CERT_NAME_INFO struct containing the subject name. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_UNICODE_NAME, or formatted using cryptoapi::CertNameToStr""" + pass + + + @property + def Issuer(self)->'str': + """Certificate Authority that issued certificate as encoded CERT_NAME_INFO. Use cryptoapi::CryptDecodeObjectEx to decode into individual components, or cryptoapi::CertNameToStr to return a single formatted string""" + pass + + + @property + def NotBefore(self)->'PyTime': + """Beginning of certificate's period of validity""" + pass + + + @property + def NotAfter(self)->'PyTime': + """End of certificate's period of validity""" + pass + + + @property + def SignatureAlgorithm(self)->'Any': + """Object id of the certifcate's signature algorithm""" + pass + + + @property + def Extension(self)->'Tuple[PyCERT_EXTENSION, ...]': + """Sequence of CERT_EXTENSION dicts containing certificate's extensions""" + pass + + + @property + def SubjectPublicKeyInfo(self)->'PyCERT_PUBLIC_KEY_INFO': + """Encoded public key of certificate""" + pass + + + @property + def SerialNumber(self)->'Any': + """Serial number assigned by the issuer""" + pass + + + def CertFreeCertificateContext(self,) -> 'None': + """ + Frees the certificate context + +Args: + + + +Returns: + + None + + """ + pass + + + def CertEnumCertificateContextProperties(self,) -> 'List[Any]': + """ + Lists property ids for the certificate + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def CryptAcquireCertificatePrivateKey(self,Flags:'Any'=0) -> 'Tuple[Any, PyCRYPTPROV]': + """ + Retrieves the private key associated + +with the certificate + +Args: + + Flags(Any):Combination of CRYPT_ACQUIRE_*_FLAG constantsCommentsOnly the owner of the certificate can use this methodReturn ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key + +Returns: + + Tuple[Any, PyCRYPTPROV]:Combination of CRYPT_ACQUIRE_*_FLAG constants +Comments + +Only the owner of the certificate can use this method +Return ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key + + + """ + pass + + + def CertGetIntendedKeyUsage(self,) -> 'Any': + """ + Returns the intended key usage from the certificate extensions + +(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) + +Args: + + + +Returns: + + Any:PyCERT_CONTEXT.CertGetIntendedKeyUsage + +int = CertGetIntendedKeyUsage()Returns the intended key usage from the certificate extensions + +(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) +Return ValueReturns a combination of CERT_*_KEY_USAGE values + + + """ + pass + + + def CertGetEnhancedKeyUsage(self,Flags:'Any'=0) -> 'Any': + """ + Finds the enhanced key usage property and/or extension for the + +certificate + +Args: + + Flags(Any):CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0Return ValueReturns a sequence of usage OIDs + +Returns: + + Any:CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, + +CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0 +Return ValueReturns a sequence of usage OIDs + + + """ + pass + + + def CertSerializeCertificateStoreElement(self,Flags:'Any'=0) -> 'str': + """ + Serializes the certificate and its properties + +Args: + + Flags(Any):Reserved, use only 0 if passed in + +Returns: + + str + + """ + pass + + + def CertVerifySubjectCertificateContext(self,Issuer:'PyCERT_CONTEXT',Flags:'Any') -> 'Any': + """ + Checks the validity of the certificate + +Args: + + Issuer(PyCERT_CONTEXT):Certificate of authority that issued the certificate + Flags(Any):Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. + +Returns: + + Any:Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and + +CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. + + + """ + pass + + + def CertDeleteCertificateFromStore(self,) -> 'None': + """ + Removes the certificate from its store + +Args: + + + +Returns: + + None + + """ + pass + + + def CertGetCertificateContextProperty(self,PropId:'Any') -> 'Any': + """ + Retrieves the specified property from the + +certificate + +Args: + + PropId(Any):One of the CERT_*_PROP_ID constantsPropIdReturned valueCERT_ARCHIVED_PROP_IDBooleanCERT_DATE_STAMP_PROP_IDPyTimeCERT_ACCESS_STATE_PROP_IDintCERT_KEY_SPEC_PROP_IDintCERT_DESCRIPTION_PROP_IDUnicodeCERT_FRIENDLY_NAME_PROP_IDUnicodeCERT_PVK_FILE_PROP_IDUnicodeCERT_AUTO_ENROLL_PROP_IDUnicodeCERT_HASH_PROP_IDString containing a hashCERT_SHA1_HASH_PROP_IDString containing a hashCERT_MD5_HASH_PROP_IDString containing a hashCERT_SIGNATURE_HASH_PROP_IDString containing a hashCERT_KEY_IDENTIFIER_PROP_IDString containing a hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hashCERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROVCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and CERT_ENHKEY_USAGE are identical)CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_ENHANCED_KEY_USAGECERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dictCERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT structCERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx with szOID_NEXT_UPDATE_LOCATIONReturn ValueType of object returned is dependent on the property id requested. + +Returns: + + Any:One of the CERT_*_PROP_ID constants + + +PropId + + +Returned value + + + +CERT_ARCHIVED_PROP_IDBoolean +CERT_DATE_STAMP_PROP_IDPyTime +CERT_ACCESS_STATE_PROP_IDint +CERT_KEY_SPEC_PROP_IDint +CERT_DESCRIPTION_PROP_IDUnicode +CERT_FRIENDLY_NAME_PROP_IDUnicode +CERT_PVK_FILE_PROP_IDUnicode +CERT_AUTO_ENROLL_PROP_IDUnicode +CERT_HASH_PROP_IDString containing a hash +CERT_SHA1_HASH_PROP_IDString containing a hash +CERT_MD5_HASH_PROP_IDString containing a hash +CERT_SIGNATURE_HASH_PROP_IDString containing a hash +CERT_KEY_IDENTIFIER_PROP_IDString containing a hash +CERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hash +CERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROV +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString + +containing a hash +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString + +containing a hash +CERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and + +CERT_ENHKEY_USAGE are identical) +CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx + + + + + +with X509_ENHANCED_KEY_USAGE +CERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dict +CERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT struct +CERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx + + + + with szOID_NEXT_UPDATE_LOCATION +Return ValueType of object returned is dependent on the property id requested. + + + """ + pass + + + def CertSetCertificateContextProperty(self,PropId:'Any',Data:'Any',Flags:'Any'=0) -> 'None': + """ + Sets a property for a certificate + +Args: + + PropId(Any):Id of property to be set, CERT_*_PROP_ID + Data(Any):The value to be set for the property. Type is dependent on PropId. Use None to delete a property. + Flags(Any):Combination of CERT_SET_* flagsPropIdType of inputCERT_ARCHIVED_PROP_IDNone causes Archived flag to be cleared, any other causes it to be set no actual data, non-NULL pvData indicates presence of flagCERT_DATE_STAMP_PROP_IDPyTime specifying when cert was added to storeCERT_DESCRIPTION_PROP_IDUnicode stringCERT_FRIENDLY_NAME_PROP_IDUnicode stringCERT_PVK_FILE_PROP_IDUnicode stringCERT_AUTO_ENROLL_PROP_IDUnicode stringCERT_KEY_SPEC_PROP_IDInt, usually AT_KEYEXCHANGE or AT_SIGNATURECERT_HASH_PROP_IDString containing the hashCERT_SHA1_HASH_PROP_IDString containing the hashCERT_MD5_HASH_PROP_IDString containingg the hashCERT_SIGNATURE_HASH_PROP_IDString containing the hashCERT_KEY_IDENTIFIER_PROP_IDString containing the key idCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing the hashCERT_RENEWAL_PROP_IDString containing the hashCERT_ENHKEY_USAGE_PROP_IDString containing an encoded PyCTL_USAGE. Use cryptoapi::CryptEncodeObjectEx with X509_ENHANCED_KEY_USAGE.CERT_CTL_USAGE_PROP_IDSame as CERT_ENHKEY_USAGE_PROP_ID + +Returns: + + None + + """ + pass + + +class PyCERT_EXTENSION(object): + """Dict containing a certificate extension""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'Any': + """The OID identifying the type of extension""" + pass + + + @property + def Critical(self)->'Any': + """If true, any contraints or limits contained in the extension should be considered absolute""" + pass + + + @property + def Value(self)->'Any': + """Binary string containing ASN encoded data. To interpret or display extension data, see cryptoapi::CryptDecodeObjectEx and cryptoapi::CryptFormatObject.""" + pass + + +class PyCERT_KEY_ATTRIBUTES_INFO(object): + """Dict representing a CERT_KEY_ATTRIBUTES_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def KeyId(self)->'Any': + """Usually a hash that uniquely identifies the key""" + pass + + + @property + def IntendedKeyUsage(self)->'PyCRYPT_BIT_BLOB': + """Contains a byte with CERT_*_KEY_USAGE flags""" + pass + + + @property + def PrivateKeyUsagePeriod(self)->'Any': + """Private key's begin and end effective dates, may be None""" + pass + + +class PyCERT_NAME_INFO(object): + """Sequence of CERT_RDN's""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_NAME_VALUE(object): + """Dict containing type (CERT_RDN_*) and a unicode string""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_OTHER_NAME(object): + """Dict containing {ObjId, Value}. + +ObjId is one of the string object id's identifying the type of name. + +Value is a binary string containing an encoded CERT_NAME_VALUE that can be decoded + +using X509_UNICODE_NAME_VALUE to return the actual unicode string""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_POLICY_INFO(object): + """Dict containing a certificate policy""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def PolicyIdentifier(self)->'Any': + """OID identifying the policy""" + pass + + + @property + def PolicyQualifier(self)->'Any': + """Sequence of CERT_POLICY_QUALIFIER dicts""" + pass + + +class PyCERT_PUBLIC_KEY_INFO(object): + """Dict containing an exported public key""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Algorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Dict containing OID of the public key algorithm""" + pass + + + @property + def PublicKey(self)->'PyCRYPT_BIT_BLOB': + """Dict containing the encoded public key""" + pass + + +class PyCOMSTAT(object): + """A Python object, representing an COMSTAT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def cbInQue(self)->'int': + """Specifies the number of bytes received by the serial provider but not yet read by a win32file::ReadFile operation""" + pass + + + @property + def cbOutQue(self)->'int': + """Specifies the number of bytes of user data remaining to be transmitted for all write operations. This value will be zero for a nonoverlapped write.""" + pass + + + @property + def fCtsHold(self)->'int': + """Specifies whether transmission is waiting for the CTS (clear-to-send) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fDsrHold(self)->'int': + """Specifies whether transmission is waiting for the DSR (data-set-ready) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fRlsdHold(self)->'int': + """Specifies whether transmission is waiting for the RLSD (receive-line-signal-detect) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fXoffHold(self)->'int': + """Specifies whether transmission is waiting because the XOFF character was received. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fXoffSent(self)->'int': + """Specifies whether transmission is waiting because the XOFF character was transmitted. If this member is TRUE, transmission is waiting. Transmission halts when the XOFF character is transmitted to a system that takes the next character as XON, regardless of the actual character.""" + pass + + + @property + def fEof(self)->'int': + """Specifies whether the end-of-file (EOF) character has been received. If this member is TRUE, the EOF character has been received.""" + pass + + + @property + def fTxim(self)->'int': + """If this member is TRUE, there is a character queued for transmission that has come to the communications device by way of the TransmitCommChar function. The communications device transmits such a character ahead of other characters in the device's output buffer.""" + pass + + + @property + def fReserved(self)->'int': + """Reserved; do not use.""" + pass + + +class PyCOORD(object): + """Wrapper for a COORD struct. Create using PyCOORDType(X,Y)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def X(self)->'Any': + """Horizontal coordinate""" + pass + + + @property + def Y(self)->'Any': + """Vertical coordinate""" + pass + + +class PyCREDENTIAL(object): + """A dictionary containing information for a CREDENTIAL struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'Any': + """Combination of CRED_FLAGS_PROMPT_NOW, CRED_FLAGS_USERNAME_TARGET""" + pass + + + @property + def Type(self)->'Any': + """Type of credential, one of CRED_TYPE_* values""" + pass + + + @property + def TargetName(self)->'str': + """Target of credential, can end with * for wildcard matching""" + pass + + + @property + def Comment(self)->'str': + """Descriptive text""" + pass + + + @property + def LastWritten(self)->'PyTime': + """Modification time, ignored on input""" + pass + + + @property + def CredentialBlob(self)->'str': + """Contains password for username credential, or PIN for certificate credential. This member is write-only.""" + pass + + + @property + def Persist(self)->'Any': + """Specifies scope of persistence, one of CRED_PERSIST_* values""" + pass + + + @property + def Attributes(self)->'Any': + """Tuple of PyCREDENTIAL_ATTRIBUTE dicts containing application-specific data, can be None""" + pass + + + @property + def TargetAlias(self)->'str': + """Alias for TargetName, only valid with CRED_TYPE_GENERIC""" + pass + + + @property + def UserName(self)->'str': + """User to be authenticated by target. Can be of the form username@domain or domain\\username. For CRED_TYPE_DOMAIN_CERTIFICATE, use win32cred::CredMarshalCredential to marshal the SHA1 hash of user's certficate""" + pass + + +class PyCREDENTIAL_ATTRIBUTE(object): + """A dictionary containing information for a CREDENTIAL_ATTRIBUTE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Keyword(self)->'str': + """Attribute name, at most CRED_MAX_STRING_LENGTH chars""" + pass + + + @property + def Flags(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Value(self)->'Any': + """Attribute value, at most CRED_MAX_VALUE_SIZE bytes. Unicode objects are treated as raw bytes.""" + pass + + +class PyCREDENTIAL_TARGET_INFORMATION(object): + """A dictionary representing a CREDENTIAL_TARGET_INFORMATION struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def TargetName(self)->'str': + """Target of credentials""" + pass + + + @property + def NetbiosServerName(self)->'str': + """""" + pass + + + @property + def DnsServerName(self)->'str': + """""" + pass + + + @property + def NetbiosDomainName(self)->'str': + """""" + pass + + + @property + def DnsDomainName(self)->'str': + """""" + pass + + + @property + def DnsTreeName(self)->'str': + """""" + pass + + + @property + def PackageName(self)->'str': + """Name of security package which mapped TargetName""" + pass + + + @property + def Flags(self)->'Any': + """CRED_TI_* flags""" + pass + + + @property + def CredTypes(self)->'Tuple[Any, ...]': + """Tuple of CRED_TYPE_* values indicating which types of credentials are acceptable to target""" + pass + + +class PyCREDUI_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Parent(self)->'int': + """Handle to parent window, can be None""" + pass + + + @property + def MessageText(self)->'str': + """Message to appear in dialog""" + pass + + + @property + def CaptionText(self)->'str': + """Title of the dialog window""" + pass + + + @property + def Banner(self)->'int': + """Handle to a bitmap to be displayed""" + pass + + +class PyCRYPTHASH(object): + """Handle to a cryptographic hash""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CryptDestroyHash(self,) -> 'None': + """ + Frees the hash object + +Args: + + + +Returns: + + None + + """ + pass + + + def CryptDuplicateHash(self,Flags:'Any'=0) -> 'PyCRYPTHASH': + """ + Clones the hash object + +Args: + + Flags(Any):Reserved, use 0 if passed + +Returns: + + PyCRYPTHASH + + """ + pass + + + def CryptHashData(self,Data:'str',Flags:'Any'=0) -> 'None': + """ + Adds data to the hash + +Args: + + Data(str):Data to be hashed + Flags(Any):CRYPT_USERDATA or 0CommentsIf Flags is CRYPT_USERDATA, provider is expected to prompt user to enter data. MSDN says that MS CSPs ignore this flag + +Returns: + + None + + """ + pass + + + def CryptHashSessionKey(self,Key:'PyCRYPTKEY',Flags:'Any'=0) -> 'None': + """ + Hashes a session key + +Args: + + Key(PyCRYPTKEY):The session key to be hashed + Flags(Any):CRYPT_LITTLE_ENDIAN or 0 + +Returns: + + None + + """ + pass + + + def CryptSignHash(self,KeySpec:'Any',Flags:'Any'=0) -> 'str': + """ + Signs the hash + +Args: + + KeySpec(Any):The key to be used to sign the hash, AT_KEYEXCHANGE,AT_SIGNATURE + Flags(Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0CommentsThis methods signs only the hash, not the data that the hash represents + +Returns: + + str + + """ + pass + + + def CryptVerifySignature(self,Signature:'str',PubKey:'PyCRYPTKEY',Flags:'Any'=0) -> 'None': + """ + Verifies that a signature matches hashed data + +Args: + + Signature(str):Signature data to verify + PubKey(PyCRYPTKEY):Public key of signer + Flags(Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0 + +Returns: + + None + + """ + pass + + + def CryptGetHashParam(self,Param:'Any',Flags:'Any'=0) -> 'Union[Any]': + """ + Retrieves the specified attribute of the hash + +Args: + + Param(Any):The parameter to retrieve: HP_ALGID, HP_HASHSIZE, or HP_HASHVAL + Flags(Any):Reserved, use 0 if passed inCommentsAfter this method has been called, no more data can be hashedReturn ValueType of returned object is dependent on the Param passed in + +Returns: + + Union[Any]:Reserved, use 0 if passed in +Comments + +After this method has been called, no more data can be hashed +Return ValueType of returned object is dependent on the Param passed in + + + """ + pass + + +class PyCRYPTKEY(object): + """Handle to a cryptographic key""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCRYPTPROV(self)->'Any': + """CSP used by the key""" + pass + + + @property + def HCRYPTKEY(self)->'Any': + """Plain integer handle to the key""" + pass + + + def CryptDestroyKey(self,) -> 'None': + """ + Releases the handle to the key (does not delete permanent keys) + +Args: + + + +Returns: + + None + + """ + pass + + + def CryptExportKey(self,ExpKey:'PyCRYPTKEY',BlobType:'Any',Flags:'Any'=0) -> 'Any': + """ + Exports key or key pair as an encrypted blob + +Args: + + ExpKey(PyCRYPTKEY):Public key or session key of destination user. Use None if exporting a PUBLICKEYBLOB + BlobType(Any):One of OPAQUEKEYBLOB,PRIVATEKEYBLOB,PUBLICKEYBLOB,SIMPLEBLOB,PLAINTEXTKEYBLOB,SYMMETRICWRAPKEYBLOB + Flags(Any):Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey + +Returns: + + Any:Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0 +Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey + + + """ + pass + + + def CryptGetKeyParam(self,Param:'Any',Flags:'Any'=0) -> 'Any': + """ + Retrieves key parameters + +Args: + + Param(Any):One of the KP_* constants + Flags(Any):Reserved, use only 0Return ValueType of returned object is dependent on the requested attribute + +Returns: + + Any:Reserved, use only 0 +Return ValueType of returned object is dependent on the requested attribute + + + """ + pass + + + def CryptDuplicateKey(self,Reserved:'Any'=0,Flags:'Any'=0) -> 'PyCRYPTKEY': + """ + Creates an independent copy of the key + +Args: + + Reserved(Any):Use 0 if passed in + Flags(Any):Also reserved, use 0 + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptEncrypt(self,Final:'Any',Data:'Any',Hash:'PyCRYPTHASH'=None,Flags:'Any'=0) -> 'Any': + """ + Encrypts and optionally hashes data + +Args: + + Final(Any):Boolean, use True if this is final encryption operation + Data(Any):Data to be encrypted + Hash(PyCRYPTHASH):Hash to be updated with data passed in, can be None + Flags(Any):Reserved, use 0 if passed in + +Returns: + + Any + + """ + pass + + + def CryptDecrypt(self,Final:'Any',Data:'Any',Hash:'PyCRYPTHASH'=None,Flags:'Any'=0) -> 'Any': + """ + Decrypts data + +Args: + + Final(Any):Boolean, use True is this is last (or only) operation + Data(Any):Data to be decrypted + Hash(PyCRYPTHASH):Hash to be used in signature verification, can be None + Flags(Any):Reserved, use only 0 + +Returns: + + Any + + """ + pass + + +class PyCRYPTMSG(object): + """Wrapper for a cryptographic message handle""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCRYPTMSG(self)->'Any': + """Raw message handle""" + pass + + + def CryptMsgClose(self,) -> 'None': + """ + Closes the message handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCRYPTPROTECT_PROMPTSTRUCT(object): + """A tuple representing a CRYPTPROTECT_PROMPTSTRUCT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRYPTPROV(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CryptReleaseContext(self,Flags:'Any'=0) -> 'None': + """ + Releases the CSP handle + +Args: + + Flags(Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def CryptGenKey(self,Algid:'Any',Flags:'Any',KeyLen:'Any'=0) -> 'PyCRYPTKEY': + """ + Generates a key pair or a session key + +Args: + + Algid(Any):Algorithm identifier, one of the CALG_* values, or AT_KEYEXCHANGE/AT_SIGNATURE + Flags(Any):Combination of CRYPT_CREATE_SALT,CRYPT_EXPORTABLE,CRYPT_NO_SALT,CRYPT_PREGEN,CRYPT_USER_PROTECTED,CRYPT_ARCHIVABLE + KeyLen(Any):Length of key to generate, can be 0 to use provider's default key lengthCommentsDiffers from Api call in that the length is passed in separately + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptGetProvParam(self,Param:'Any',Flags:'Any'=0) -> 'None': + """ + Retrieves specified attribute of provider + +Args: + + Param(Any):One of the PP_* values + Flags(Any):If param if PP_KEYSET_SEC_DESCR, can be a combination of OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATIONReturn ValueType of returned object is dependent on the attribute requested + +Returns: + + None:If param if PP_KEYSET_SEC_DESCR, can be a combination of + +OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATION +Return ValueType of returned object is dependent on the attribute requested + + + """ + pass + + + def CryptGetUserKey(self,KeySpec:'Any') -> 'PyCRYPTKEY': + """ + Returns a handle to one of user's key pairs + +Args: + + KeySpec(Any):AT_KEYEXCHANGE or AT_SIGNATURE (some providers may implement extra key specs) + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptGenRandom(self,Len:'Any',SeedData:'str'=None) -> 'str': + """ + Generates random data of specified length + +Args: + + Len(Any):Number of bytes to generate + SeedData(str):Random seed data + +Returns: + + str + + """ + pass + + + def CryptCreateHash(self,Algid:'Any',Key:'PyCRYPTKEY'=None,Flags:'Any'=0) -> 'PyCRYPTHASH': + """ + Creates a hash object for hashing large amounts of data + +Args: + + Algid(Any):An algorithm identifier, CALG_*. + Key(PyCRYPTKEY):Used only for keyed hashes (MAC or HMAC), use None otherwise + Flags(Any):Reserved, use 0 if passed in + +Returns: + + PyCRYPTHASH + + """ + pass + + + def CryptImportKey(self,Data:'Any',PubKey:'PyCRYPTKEY'=None,Flags:'Any'=0) -> 'PyCRYPTKEY': + """ + None + +Args: + + Data(Any):The key blob to be imported + PubKey(PyCRYPTKEY):Key to be used to decrypt the blob, not used for importing public keys + Flags(Any):Combination of CRYPT_EXPORTABLE, CRYPT_OAEP, CRYPT_NO_SALT, CRYPT_USER_PROTECTED + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptExportPublicKeyInfo(self,KeySpec:'Any',CertEncodingType:'Any') -> 'PyCERT_PUBLIC_KEY_INFO': + """ + Exports a public key to send to other users + +Returned dict can be serialized for sending to another python application using pickle.dump + +Args: + + KeySpec(Any):AT_KEYEXCHANGE or AT_SIGNATURE + CertEncodingType(Any):Specifies encoding for exported key info + +Returns: + + PyCERT_PUBLIC_KEY_INFO + + """ + pass + + + def CryptImportPublicKeyInfo(self,Info:'Any',CertEncodingType:'Any') -> 'PyCRYPTKEY': + """ + Imports another user's public key + +Args: + + Info(Any):PyCERT_PUBLIC_KEY_INFO dictionary as returned by PyCRYPTPROV::CryptExportPublicKeyInfo + CertEncodingType(Any):Specifies encoding for exported key info + +Returns: + + PyCRYPTKEY + + """ + pass + + +class PyCRYPT_ALGORITHM_IDENTIFIER(object): + """Dictionary containing information that identifies an encryption + +algorithm and any extra parameters it requires""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'Any': + """An szOID_* string identifying the algorithm""" + pass + + + @property + def Parameters(self)->'Any': + """Blob of binary data containing encoded parameters""" + pass + + +class PyCRYPT_ATTRIBUTE(object): + """Dict representing a CRYPT_ATTRIBUTE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'Any': + """An szOID_* string identifying the attribute""" + pass + + + @property + def Value(self)->'Tuple[Any, ...]': + """A sequence of buffers containing the attribute values""" + pass + + +class PyCRYPT_BIT_BLOB(object): + """Dict containing raw data of a certain bit length""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Data(self)->'Any': + """Binary data""" + pass + + + @property + def UnusedBits(self)->'Any': + """Nbr of bits of last byte that are unused""" + pass + + +class PyCRYPT_DECRYPT_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def CertStores(self)->'Tuple[Any, ...]': + """Sequence of certificate stores to be searched for a certificate with a private key that can be used to decrypt the message""" + pass + + + @property + def MsgAndCertEncodingType(self)->'Any': + """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + + @property + def Flags(self)->'Any': + """Optional. CRYPT_MESSAGE_SILENT_KEYSET_FLAG can be used to suppress any dialogs that might be triggered by accessing a key container, such as a request for a PIN.""" + pass + + +class PyCRYPT_ENCRYPT_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ContentEncryptionAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Identifies the algorithm to be used""" + pass + + + @property + def CryptProv(self)->'PyCRYPTPROV': + """Optional. Handle to provider that will perform encryption, can be None for default provider""" + pass + + + @property + def EncryptionAuxInfo(self)->'Any': + """Optional. Extra info required by some CSP's. Not supported yet, use only None""" + pass + + + @property + def Flags(self)->'Any': + """Optional. Combination of CRYPT_MESSAGE_*_FLAG constants""" + pass + + + @property + def InnerContentType(self)->'Any': + """Optional. Only used if message to be encrypted is already encoded""" + pass + + + @property + def MsgEncodingType(self)->'Any': + """Optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + +class PyCRYPT_SIGN_MESSAGE_PARA(object): + """Dict of parms defining how a message will be signed""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SigningCert(self)->'PyCERT_CONTEXT': + """Certficate to be used to sign message""" + pass + + + @property + def HashAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Algorithm to be used for signed hash""" + pass + + + @property + def HashAuxInfo(self)->'Any': + """Optional. Param is reserved, use only None.""" + pass + + + @property + def MsgCert(self)->'Tuple[PyCERT_CONTEXT, ...]': + """Optional sequence of certificate to be included in the message.""" + pass + + + @property + def MsgCrl(self)->'Tuple[Any, ...]': + """Optional. Sequence of certificate revocation lists. Not yet supported, use only None.""" + pass + + + @property + def AuthAttr(self)->'Tuple[PyCRYPT_ATTRIBUTE, ...]': + """Sequence of canonical attributes to be added to the message""" + pass + + + @property + def UnauthAttr(self)->'Tuple[PyCRYPT_ATTRIBUTE, ...]': + """Sequence of arbitrary attributes""" + pass + + + @property + def Flags(self)->'Any': + """Optional CRYPT_MESSAGE_*_FLAG that indicates content type if output is to be further encoded.""" + pass + + + @property + def InnerContentType(self)->'Any': + """Optional, one of the CMSG_* content types if message is already encoded, .""" + pass + + + @property + def MsgEncodingType(self)->'Any': + """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + +class PyCRYPT_VERIFY_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def MsgAndCertEncodingType(self)->'Any': + """Encoding types, defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + + @property + def CryptProv(self)->'PyCRYPTPROV': + """CSP to be used to verify signature. Use None for default provider.""" + pass + + + @property + def PyGetSignerCertificate(self)->'Any': + """Callback function that locates signer's certificate.""" + pass + + + @property + def GetArg(self)->'Any': + """Argument to be passed to above function, can be any object.""" + pass + + +class PyCTL_CONTEXT(object): + """Object containing a Certificate Trust List""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCTL_CONTEXT(self)->'Any': + """Raw message handle""" + pass + + + def CertFreeCTLContext(self,) -> 'None': + """ + Closes the CTL handle + +Args: + + + +Returns: + + None + + """ + pass + + + def CertEnumCTLContextProperties(self,) -> 'Tuple[Any, ...]': + """ + Lists property id's for the context + +Args: + + + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def CertEnumSubjectInSortedCTL(self,) -> 'Tuple[Tuple[Any, Any], ...]': + """ + Retrieves trusted subjects contained in CRL + +Args: + + + +Returns: + + Tuple[Tuple[Any, Any], ...]:PyCTL_CONTEXT.CertEnumSubjectInSortedCTL + +((str,str),...) = CertEnumSubjectInSortedCTL()Retrieves trusted subjects contained in CRL +Return ValueReturns a sequence of tuples containing two strings (SubjectIdentifier, EncodedAttributes) + + + """ + pass + + + def CertDeleteCTLFromStore(self,) -> 'None': + """ + Removes the CTL from the store that it is contained in + +Args: + + + +Returns: + + None + + """ + pass + + + def CertSerializeCTLStoreElement(self,Flags:'Any'=0) -> 'str': + """ + Serializes the CTL and its properties + +Args: + + Flags(Any):Reserved, use only 0 if passed in + +Returns: + + str + + """ + pass + + +class PyCTL_USAGE(object): + """Sequence of string OIDs (szOID_*). This struct is identical to CERT_ENHKEY_USAGE.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyConsoleScreenBuffer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetConsoleActiveScreenBuffer(self,) -> 'None': + """ + Sets this handle as the currently displayed screen + +buffer + +Args: + + + +Returns: + + None + + """ + pass + + + def GetConsoleCursorInfo(self,) -> 'Tuple[Any, Any]': + """ + Retrieves size and visibility of console's + +cursor + +Args: + + + +Returns: + + Tuple[Any, Any]:PyConsoleScreenBuffer.GetConsoleCursorInfo + +(Size, bVisible) = GetConsoleCursorInfo()Retrieves size and visibility of console's + +cursor +Return ValueReturns the size of the console's cursor expressed as a percentage of character size, and a boolen indicating + +if cursor is visible + + + """ + pass + + + def SetConsoleCursorInfo(self,Size:'Any',Visible:'Any') -> 'None': + """ + Sets the size and visibility of console's cursor + +Args: + + Size(Any):Percentage of character size that cursor will occupy + Visible(Any):Determines if cursor is visible + +Returns: + + None + + """ + pass + + + def GetConsoleMode(self,) -> 'Any': + """ + Returns the input or output mode of the console buffer + +Args: + + + +Returns: + + Any:PyConsoleScreenBuffer.GetConsoleMode + +int = GetConsoleMode()Returns the input or output mode of the console buffer +Return ValueReturns a combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants + + + """ + pass + + + def SetConsoleMode(self,Mode:'Any') -> 'None': + """ + Sets the input or output mode of the console buffer + +Args: + + Mode(Any):Combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants + +Returns: + + None + + """ + pass + + + def ReadConsole(self,NumberOfCharsToRead:'Any') -> 'Any': + """ + Reads characters from the console input buffer + +Args: + + NumberOfCharsToRead(Any):Characters to read + +Returns: + + Any + + """ + pass + + + def WriteConsole(self,Buffer:'Any') -> 'Any': + """ + Writes characters at current cursor position + +Args: + + Buffer(Any):String or Unicode to be written to consoleReturn ValueReturns the number of characters written + +Returns: + + Any:String or Unicode to be written to consoleReturn ValueReturns the number of characters written + + + """ + pass + + + def FlushConsoleInputBuffer(self,) -> 'None': + """ + Flush input buffer + +Args: + + + +Returns: + + None + + """ + pass + + + def SetConsoleTextAttribute(self,Attributes:'Any') -> 'None': + """ + Sets character attributes for subsequent write operations + +Args: + + Attributes(Any):Attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants + +Returns: + + None + + """ + pass + + + def SetConsoleCursorPosition(self,CursorPosition:'PyCOORD') -> 'None': + """ + Sets the console screen buffer's cursor position + +Args: + + CursorPosition(PyCOORD):A PyCOORD containing the new cursor position + +Returns: + + None + + """ + pass + + + def SetConsoleScreenBufferSize(self,Size:'PyCOORD') -> 'None': + """ + Sets the size of the console screen buffer + +Args: + + Size(PyCOORD):COORD object containing the new dimensions + +Returns: + + None + + """ + pass + + + def SetConsoleWindowInfo(self,Absolute:'Any',ConsoleWindow:'PySMALL_RECT') -> 'None': + """ + Changes size and position of a console's window + +Args: + + Absolute(Any):If False, coordinates are relative to current position + ConsoleWindow(PySMALL_RECT):A SMALL_RECT containing the new window coordinates + +Returns: + + None + + """ + pass + + + def GetConsoleScreenBufferInfo(self,) -> 'Any': + """ + Returns the state of the screen buffer + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetLargestConsoleWindowSize(self,) -> 'PyCOORD': + """ + Returns the largest possible size for the + +console's window + +Args: + + + +Returns: + + PyCOORD + + """ + pass + + + def FillConsoleOutputAttribute(self,Attribute:'Any',Length:'Any',WriteCoord:'PyCOORD') -> 'Any': + """ + Set text attributes for a consecutive series of + +characters + +Args: + + Attribute(Any):Text attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants + Length(Any):The number of characters to set + WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set + +Returns: + + Any:The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set + + + """ + pass + + + def FillConsoleOutputCharacter(self,Character:'Any',Length:'Any',WriteCoord:'PyCOORD') -> 'Any': + """ + Sets consecutive character positions to a specified + +character + +Args: + + Character(Any):A single character to be used to fill the specified range + Length(Any):The number of characters positions to fill + WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of characters actually written + +Returns: + + Any:The screen position to begin atReturn ValueReturns the number of characters actually written + + + """ + pass + + + def ReadConsoleOutputCharacter(self,Length:'Any',ReadCoord:'PyCOORD') -> 'str': + """ + Reads consecutive characters from a starting + +position + +Args: + + Length(Any):The number of characters positions to read + ReadCoord(PyCOORD):The screen position start reading from + +Returns: + + str + + """ + pass + + + def ReadConsoleOutputAttribute(self,Length:'Any',ReadCoord:'PyCOORD') -> 'Tuple[Any, ...]': + """ + Retrieves attributes from consecutive character + +cells + +Args: + + Length(Any):The number of attributes to read + ReadCoord(PyCOORD):The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters + +Returns: + + Tuple[Any, ...]:The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters + + + """ + pass + + + def WriteConsoleOutputCharacter(self,Characters:'Any',WriteCoord:'PyCOORD') -> 'Any': + """ + Writes a string of characters at a specified position + +Args: + + Characters(Any):Characters to be written + WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of characters actually written + +Returns: + + Any:The screen position at which to start writingReturn ValueReturns the number of characters actually written + + + """ + pass + + + def WriteConsoleOutputAttribute(self,Attributes:'Tuple[Any, ...]',WriteCoord:'PyCOORD') -> 'Any': + """ + Sets the attributes of a range of character cells + +Args: + + Attributes(Tuple[Any, ...]):A sequence of ints containing the attributes to be set + WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of attributes set + +Returns: + + Any:The screen position at which to start writingReturn ValueReturns the number of attributes set + + + """ + pass + + + def ScrollConsoleScreenBuffer(self,ScrollRectangle:'PySMALL_RECT',ClipRectangle:'PySMALL_RECT',DestinationOrigin:'PyCOORD',FillCharacter:'Any',FillAttribute:'Any') -> 'None': + """ + Scrolls a region of the display + +Args: + + ScrollRectangle(PySMALL_RECT):The region to be scrolled + ClipRectangle(PySMALL_RECT):Rectangle that limits display area affected, can be None + DestinationOrigin(PyCOORD):The position to which ScrollRectangle will be moved + FillCharacter(Any):Character to fill in the area left blank by scrolling operation + FillAttribute(Any):Text attributes to apply to FillCharacter + +Returns: + + None + + """ + pass + + + def GetCurrentConsoleFont(self,MaximumWindow:'Any'=False) -> 'Tuple[Any, PyCOORD]': + """ + Returns currently displayed font + +Args: + + MaximumWindow(Any):If True, retrieves font size for maximum window sizeCommentsOnly exists on XP or later. MSDN docs claim the returned COORD is the font size, but it's actually the window size. Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size.Return ValueReturns the index of current font and window size + +Returns: + + Tuple[Any, PyCOORD]:If True, retrieves font size for maximum window size +Comments + +Only exists on XP or later. + +MSDN docs claim the returned COORD is the font size, but it's actually the window size. + +Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size. +Return ValueReturns the index of current font and window size + + + """ + pass + + + def GetConsoleFontSize(self,Font:'Any') -> 'PyCOORD': + """ + Returns size of specified font for the console + +Args: + + Font(Any):Index of font as returned by GetCurrentConsoleFontCommentsOnly exists on XP or later. + +Returns: + + PyCOORD + + """ + pass + + + def SetConsoleFont(self,Font:'Any') -> 'None': + """ + Changes the font used by the screen buffer + +Args: + + Font(Any):The number of the font to be setCommentsFunction is not documented on MSDN + +Returns: + + None + + """ + pass + + + def SetStdHandle(self,StdHandle:'Any') -> 'None': + """ + Replaces one of calling process's standard handles with this handle + +Args: + + StdHandle(Any):Specifies handle to be replaced - STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE + +Returns: + + None + + """ + pass + + + def SetConsoleDisplayMode(self,Flags:'Any',NewScreenBufferDimensions:'PyCOORD') -> 'None': + """ + Sets the display mode of the console buffer + +Args: + + Flags(Any):CONSOLE_FULLSCREEN_MODE or CONSOLE_WINDOWED_MODE + NewScreenBufferDimensions(PyCOORD):New size of the screen buffer in characters + +Returns: + + None + + """ + pass + + + def WriteConsoleInput(self,Buffer:'Tuple[PyINPUT_RECORD, ...]') -> 'Any': + """ + Places input records in the console's input queue + +Args: + + Buffer(Tuple[PyINPUT_RECORD, ...]):A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written + +Returns: + + Any:A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written + + + """ + pass + + + def ReadConsoleInput(self,Length:'Any') -> 'Tuple[PyINPUT_RECORD, ...]': + """ + Reads input records and removes them from + +the input queue + +Args: + + Length(Any):The number of input records to readCommentsThis functions blocks until at least one record is read. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects + +Returns: + + Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments + +This functions blocks until at least one record is read. + +The number of records returned may be less than the nbr requested +Return ValueReturns a sequence of PyINPUT_RECORD objects + + + """ + pass + + + def PeekConsoleInput(self,Length:'Any') -> 'Tuple[PyINPUT_RECORD, ...]': + """ + Returns pending input records without + +removing them from the input queue + +Args: + + Length(Any):The number of input records to readCommentsThis function does not block as ReadConsoleInput does. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects + +Returns: + + Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments + +This function does not block as ReadConsoleInput does. + +The number of records returned may be less than the nbr requested +Return ValueReturns a sequence of PyINPUT_RECORD objects + + + """ + pass + + + def GetNumberOfConsoleInputEvents(self,) -> 'Any': + """ + Returns the number of unread records in the input + +queue + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCredHandle(object): + """Handle to a set of logon credentials, used with sspi authentication functions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Detach(self,) -> 'Any': + """ + Disassociates object from handle and returns integer value of handle, + +Args: + + + +Returns: + + Any + + """ + pass + + + def FreeCredentialsHandle(self,) -> 'None': + """ + Releases the credentials handle and makes object unusable + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryCredentialsAttributes(self,Attribute:'Any') -> 'None': + """ + Returns information about the credentials + +Args: + + Attribute(Any):SECPKG_* constant specifying which type of information to returnCommentsOnly SECPKG_CRED_ATTR_NAMES currently supportedAttributeReturn typeSECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials representSECPKG_ATTR_SUPPORTED_ALGSNot supported yet SecPkgCred_SupportedAlgs:SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet SecPkgCred_CipherStrengths:SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet SecPkgCred_SupportedProtocols:Return ValueType of returned values is dependent on Attribute + +Returns: + + None:SECPKG_* constant specifying which type of information to returnComments + +Only SECPKG_CRED_ATTR_NAMES currently supported + + + +Attribute + + +Return type + + + +SECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials represent +SECPKG_ATTR_SUPPORTED_ALGSNot supported yet + +SecPkgCred_SupportedAlgs: +SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet + +SecPkgCred_CipherStrengths: +SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet + +SecPkgCred_SupportedProtocols: +Return ValueType of returned values is dependent on Attribute + + + """ + pass + + +class PyCtxtHandle(object): + """Security context handle, as used with sspi functions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Detach(self,) -> 'Any': + """ + Disassociates object from handle and returns integer value of handle + +Args: + + + +Returns: + + Any + + """ + pass + + + def CompleteAuthToken(self,Token:'PySecBufferDesc') -> 'None': + """ + Completes the authentication token + +Args: + + Token(PySecBufferDesc):The buffer that contains the token buffer used when the context was initializedCommentsThis method should be invoked on a context handle if the InitializeSecurityContext call that created it returned SEC_I_COMPLETE_NEEDED or SEC_I_COMPLETE_AND_CONTINUE + +Returns: + + None + + """ + pass + + + def QueryContextAttributes(self,Attribute:'Any') -> 'None': + """ + Retrieves info about a security context + +Args: + + Attribute(Any):SECPKG_ATTR_* constantCommentsNot all attributes are available for every security packageAttributeReturn typeSECPKG_ATTR_ACCESS_TOKENPyHANDLE - returns a handle to the context's access tokenSECPKG_ATTR_AUTHORITYPyUnicode - returns the name of the authenticating entitySECPKG_ATTR_CIPHER_STRENGTHS(int,int) - returns the mininum and maximum cipher strengths allowedSECPKG_ATTR_CONNECTION_INFOReturns a dictionary of connection info representing a SecPkgContext_ConnectionInfo structSECPKG_ATTR_SESSION_KEYstring - returns the session key for the contextSECPKG_ATTR_ISSUER_LIST_EX(int, string) - Returns names of trusted certificate issuersSECPKG_ATTR_FLAGSint - returns flags negotiated when context was establishedSECPKG_ATTR_PACKAGE_INFOdict - returns dictionary containing info for context's security packageSECPKG_ATTR_NEGOTIATION_INFO(int, dict) - returns state of negotiation (SECPKG_NEGOTIATION_COMPLETE, SECPKG_NEGOTIATION_OPTIMISTIC,SECPKG_NEGOTIATION_IN_PROGRESS) and info for negotiated packageSECPKG_ATTR_NAMESPyUnicode - returns the user name for the contextSECPKG_ATTR_SIZESdict containing buffer sizes to be used with the contextSECPKG_ATTR_PASSWORD_EXPIRYPyTime - returns time password expiresSECPKG_ATTR_LIFESPAN(PyTime,PyTime) - returns time period during which context is validSECPKG_ATTR_NATIVE_NAMES(PyUnicode,PyUnicode) - returns client and server namesSECPKG_ATTR_TARGET_INFORMATIONstring - returns the target for the contextSECPKG_ATTR_STREAM_SIZESdict (see SecPkgContext_StreamSizes) containing message buffer sizesSECPKG_ATTR_KEY_INFOdict (see SecPkgContext_KeyInfo) containing encryption key parametersSECPKG_ATTR_DCE_INFOnot supported yet SecPkgContext_DceInfoSECPKG_ATTR_LOCAL_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_REMOTE_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_ROOT_STOREnot supported yet HCERTCONTEXTSECPKG_ATTR_SUPPORTED_ALGSnot supported yet SecPkgCred_SupportedAlgsSECPKG_ATTR_SUPPORTED_PROTOCOLSnot supported yet SecPkgCred_SupportedProtocols + +Returns: + + None + + """ + pass + + + def DeleteSecurityContext(self,) -> 'None': + """ + Frees the security context and invalidates the handle + +Args: + + + +Returns: + + None + + """ + pass + + + def QuerySecurityContextToken(self,) -> 'Any': + """ + Returns the access token for a security context + +Args: + + + +Returns: + + Any + + """ + pass + + + def MakeSignature(self,fqop:'Any',Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': + """ + Creates a crytographic hash of a message using session key of the security + +context + +Args: + + fqop(Any):Flags that indicate quality of protection desired, specific to each security package + Message(PySecBufferDesc):Buffer set that includes buffers for input data and output signature + MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKENReturn ValueReturns None on success, and output buffer in Message will contain the signature + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one input buffer of + +type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKEN +Return ValueReturns None on success, and output buffer in Message will contain the signature + + + """ + pass + + + def VerifySignature(self,Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': + """ + None + +Args: + + Message(PySecBufferDesc):SecBufferDesc that contains data buffer and signature buffer + MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is a data buffer of type SECBUFFER_DATA and a signature buffer of type SECBUFFER_TOKENReturn ValueReturns quality of protection flags used to create signature + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is a data buffer of type + +SECBUFFER_DATA + +and a signature buffer of type SECBUFFER_TOKEN +Return ValueReturns quality of protection flags used to create signature + + + """ + pass + + + def EncryptMessage(self,fqop:'Any',Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': + """ + Encrypts data with session key of security context + +Args: + + fqop(Any):Flags that indicate quality of protection desired, specific to each security package + Message(PySecBufferDesc):PySecBufferDesc that contains data buffer(s) to be encrypted + MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or SECBUFFER_TOKEN to receive signature or padding dataReturn ValueReturns None on success, and buffer(s) will contain encrypted data + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one input buffer + +of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or + +SECBUFFER_TOKEN to receive signature or padding data +Return ValueReturns None on success, and buffer(s) will contain encrypted data + + + """ + pass + + + def DecryptMessage(self,Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': + """ + None + +Args: + + Message(PySecBufferDesc):PySecBufferDesc containing data buffers to be decrypted + MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one buffer of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit in first bufferReturn ValueReturns flags specfic to security package indicating quality of protection + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one buffer + +of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or + +SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit + +in first buffer +Return ValueReturns flags specfic to security package indicating quality of protection + + + """ + pass + + + def ImpersonateSecurityContext(self,) -> 'None': + """ + Impersonates a client security context + +Args: + + + +Returns: + + None + + """ + pass + + + def RevertSecurityContext(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDCB(object): + """A Python object, representing an DCB structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def BaudRate(self)->'int': + """current baud rate""" + pass + + + @property + def wReserved(self)->'int': + """not currently used""" + pass + + + @property + def XonLim(self)->'int': + """transmit XON threshold""" + pass + + + @property + def XoffLim(self)->'int': + """transmit XOFF threshold""" + pass + + + @property + def ByteSize(self)->'int': + """number of bits/byte, 4-8""" + pass + + + @property + def Parity(self)->'int': + """0-4=no,odd,even,mark,space""" + pass + + + @property + def StopBits(self)->'int': + """0,1,2 = 1, 1.5, 2""" + pass + + + @property + def XonChar(self)->'str': + """Tx and Rx XON character""" + pass + + + @property + def XoffChar(self)->'str': + """Tx and Rx XOFF character""" + pass + + + @property + def ErrorChar(self)->'str': + """error replacement character""" + pass + + + @property + def EofChar(self)->'str': + """end of input character""" + pass + + + @property + def EvtChar(self)->'str': + """received event character""" + pass + + + @property + def wReserved1(self)->'int': + """reserved; do not use""" + pass + + + @property + def fBinary(self)->'int': + """binary mode, no EOF check""" + pass + + + @property + def fParity(self)->'int': + """enable parity checking""" + pass + + + @property + def fOutxCtsFlow(self)->'int': + """CTS output flow control""" + pass + + + @property + def fOutxDsrFlow(self)->'int': + """DSR output flow control""" + pass + + + @property + def fDtrControl(self)->'int': + """DTR flow control type""" + pass + + + @property + def fDsrSensitivity(self)->'int': + """DSR sensitivity""" + pass + + + @property + def fTXContinueOnXoff(self)->'int': + """XOFF continues Tx""" + pass + + + @property + def fOutX(self)->'int': + """XON/XOFF out flow control""" + pass + + + @property + def fInX(self)->'int': + """XON/XOFF in flow control""" + pass + + + @property + def fErrorChar(self)->'int': + """enable error replacement""" + pass + + + @property + def fNull(self)->'int': + """enable null stripping""" + pass + + + @property + def fRtsControl(self)->'int': + """RTS flow control""" + pass + + + @property + def fAbortOnError(self)->'int': + """abort on error""" + pass + + + @property + def fDummy2(self)->'int': + """reserved""" + pass + + +class PyDEVMODE(object): + """Python object wrapping a DEVMODE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SpecVersion(self)->'Any': + """Should always be set to DM_SPECVERSION""" + pass + + + @property + def DriverVersion(self)->'Any': + """Version nbr assigned to printer driver by vendor""" + pass + + + @property + def Size(self)->'Any': + """Size of structure""" + pass + + + @property + def DriverExtra(self)->'Any': + """Number of extra bytes allocated for driver data, can only be set when new object is created""" + pass + + + @property + def Fields(self)->'Any': + """Bitmask of win32con.DM_* constants indicating which members are set""" + pass + + + @property + def Orientation(self)->'Any': + """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" + pass + + + @property + def PaperSize(self)->'Any': + """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" + pass + + + @property + def PaperLength(self)->'Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def PaperWidth(self)->'Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def Position_x(self)->'Any': + """Position of display relative to desktop""" + pass + + + @property + def Position_y(self)->'Any': + """Position of display relative to desktop""" + pass + + + @property + def DisplayOrientation(self)->'Any': + """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" + pass + + + @property + def DisplayFixedOutput(self)->'Any': + """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" + pass + + + @property + def Scale(self)->'Any': + """Specified as percentage, eg 50 means half size of original""" + pass + + + @property + def Copies(self)->'Any': + """Nbr of copies to print""" + pass + + + @property + def DefaultSource(self)->'Any': + """DMBIN_* constant, or can be a printer-specific value""" + pass + + + @property + def PrintQuality(self)->'Any': + """DMRES_* constant, interpreted as DPI if positive""" + pass + + + @property + def Color(self)->'Any': + """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" + pass + + + @property + def Duplex(self)->'Any': + """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" + pass + + + @property + def YResolution(self)->'Any': + """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" + pass + + + @property + def TTOption(self)->'Any': + """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" + pass + + + @property + def Collate(self)->'Any': + """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" + pass + + + @property + def LogPixels(self)->'Any': + """Pixels per inch (only for display devices""" + pass + + + @property + def BitsPerPel(self)->'Any': + """Color resolution in bits per pixel""" + pass + + + @property + def PelsWidth(self)->'Any': + """Pixel width of display""" + pass + + + @property + def PelsHeight(self)->'Any': + """Pixel height of display""" + pass + + + @property + def DisplayFlags(self)->'Any': + """Combination of DM_GRAYSCALE and DM_INTERLACED""" + pass + + + @property + def DisplayFrequency(self)->'Any': + """Refresh rate""" + pass + + + @property + def ICMMethod(self)->'Any': + """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" + pass + + + @property + def ICMIntent(self)->'Any': + """Intent of ICM, one of win32con.DMICM_* values""" + pass + + + @property + def MediaType(self)->'Any': + """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" + pass + + + @property + def DitherType(self)->'Any': + """Dithering option, win32con.DMDITHER_*""" + pass + + + @property + def Reserved1(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Reserved2(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Nup(self)->'Any': + """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" + pass + + + @property + def PanningWidth(self)->'Any': + """Not used, leave as 0""" + pass + + + @property + def PanningHeight(self)->'Any': + """Not used, leave as 0""" + pass + + + @property + def DeviceName(self)->'Any': + """String of at most 32 chars""" + pass + + + @property + def FormName(self)->'Any': + """Name of form as returned by win32print::EnumForms, at most 32 chars""" + pass + + + @property + def DriverData(self)->'Any': + """Driver data appended to end of structure""" + pass + + + def Clear(self,) -> 'None': + """ + Resets all members of the structure + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDEVMODEW(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SpecVersion(self)->'Any': + """Should always be set to DM_SPECVERSION""" + pass + + + @property + def DriverVersion(self)->'Any': + """Version nbr assigned to printer driver by vendor""" + pass + + + @property + def Size(self)->'Any': + """Size of structure""" + pass + + + @property + def DriverExtra(self)->'Any': + """Number of extra bytes allocated for driver data, can only be set when new object is created""" + pass + + + @property + def Fields(self)->'Any': + """Bitmask of win32con.DM_* constants indicating which members are set""" + pass + + + @property + def Orientation(self)->'Any': + """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" + pass + + + @property + def PaperSize(self)->'Any': + """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" + pass + + + @property + def PaperLength(self)->'Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def PaperWidth(self)->'Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def Position_x(self)->'Any': + """Position of display relative to desktop""" + pass + + + @property + def Position_y(self)->'Any': + """Position of display relative to desktop""" + pass + + + @property + def DisplayOrientation(self)->'Any': + """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" + pass + + + @property + def DisplayFixedOutput(self)->'Any': + """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" + pass + + + @property + def Scale(self)->'Any': + """Specified as percentage, eg 50 means half size of original""" + pass + + + @property + def Copies(self)->'Any': + """Nbr of copies to print""" + pass + + + @property + def DefaultSource(self)->'Any': + """DMBIN_* constant, or can be a printer-specific value""" + pass + + + @property + def PrintQuality(self)->'Any': + """DMRES_* constant, interpreted as DPI if positive""" + pass + + + @property + def Color(self)->'Any': + """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" + pass + + + @property + def Duplex(self)->'Any': + """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" + pass + + + @property + def YResolution(self)->'Any': + """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" + pass + + + @property + def TTOption(self)->'Any': + """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" + pass + + + @property + def Collate(self)->'Any': + """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" + pass + + + @property + def LogPixels(self)->'Any': + """Pixels per inch (only for display devices""" + pass + + + @property + def BitsPerPel(self)->'Any': + """Color resolution in bits per pixel""" + pass + + + @property + def PelsWidth(self)->'Any': + """Pixel width of display""" + pass + + + @property + def PelsHeight(self)->'Any': + """Pixel height of display""" + pass + + + @property + def DisplayFlags(self)->'Any': + """Combination of DM_GRAYSCALE and DM_INTERLACED""" + pass + + + @property + def DisplayFrequency(self)->'Any': + """Refresh rate""" + pass + + + @property + def ICMMethod(self)->'Any': + """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" + pass + + + @property + def ICMIntent(self)->'Any': + """Intent of ICM, one of win32con.DMICM_* values""" + pass + + + @property + def MediaType(self)->'Any': + """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" + pass + + + @property + def DitherType(self)->'Any': + """Dithering option, win32con.DMDITHER_*""" + pass + + + @property + def Reserved1(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Reserved2(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Nup(self)->'Any': + """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" + pass + + + @property + def PanningWidth(self)->'Any': + """Not used, leave as 0""" + pass + + + @property + def PanningHeight(self)->'Any': + """Not used, leave as 0""" + pass + + + @property + def DeviceName(self)->'str': + """String of at most 32 chars""" + pass + + + @property + def FormName(self)->'Any': + """Name of form as returned by win32print::EnumForms, at most 32 chars""" + pass + + + @property + def DriverData(self)->'Any': + """Driver data appended to end of structure""" + pass + + +class PyDISPLAY_DEVICE(object): + """Python object wrapping a DISPLAY_DEVICE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Size(self)->'Any': + """Size of structure""" + pass + + + @property + def DeviceName(self)->'Any': + """String of at most 32 chars""" + pass + + + @property + def DeviceString(self)->'Any': + """String of at most 128 chars""" + pass + + + @property + def StateFlags(self)->'Any': + """Bitmask of win32con.DISPLAY_DEVICE_* constants indicating current device status""" + pass + + + @property + def DeviceID(self)->'Any': + """String of at most 128 chars""" + pass + + + @property + def DeviceKey(self)->'Any': + """String of at most 128 chars""" + pass + + + def Clear(self,) -> 'None': + """ + Resets all members of the structure + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDLGITEMTEMPLATE(object): + """A tuple describing a control in a dialog box.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDLGTEMPLATE(object): + """A tuple of items describing a dialog box, that can be used to create the dialog.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDS_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDS_NAME_RESULT_ITEM(object): + """A tuple representing a DS_NAME_RESULT_ITEM""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDateTime(object): + """A Python object, representing an instant in time.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Format(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyDialogTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVTLOG_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVT_HANDLE(object): + """Handle to an event log, session, query, or any other object used with + +the Evt* event log functions on Vista and later. + +When the object is destroyed, EvtClose is called.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVT_RPC_LOGIN(object): + """Tuple containing login credentials for a remote Event Log connection""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEventLogRecord(object): + """An object containing the data in an EVENTLOGRECORD.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Reserved(self)->'int': + """""" + pass + + + @property + def RecordNumber(self)->'int': + """""" + pass + + + @property + def TimeGenerated(self)->'PyTime': + """""" + pass + + + @property + def TimeWritten(self)->'PyTime': + """""" + pass + + + @property + def EventID(self)->'int': + """""" + pass + + + @property + def EventType(self)->'int': + """""" + pass + + + @property + def EventCategory(self)->'int': + """""" + pass + + + @property + def ReservedFlags(self)->'int': + """""" + pass + + + @property + def ClosingRecordNumber(self)->'int': + """""" + pass + + + @property + def SourceName(self)->'str': + """""" + pass + + + @property + def StringInserts(self)->'Tuple[str, ...]': + """""" + pass + + + @property + def Sid(self)->'PySID': + """""" + pass + + + @property + def Data(self)->'str': + """""" + pass + + + @property + def ComputerName(self)->'str': + """""" + pass + + +class PyGROUP_INFO_0(object): + """A dictionary holding the information in a Win32 GROUP_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + +class PyGROUP_INFO_1(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'Union[str]': + """The group's comment.""" + pass + + +class PyGROUP_INFO_1002(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1002 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'Union[str]': + """""" + pass + + +class PyGROUP_INFO_1005(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1005 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def attributes(self)->'Any': + """""" + pass + + +class PyGROUP_INFO_2(object): + """A dictionary holding the information in a Win32 GROUP_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'Union[str]': + """The group's comment.""" + pass + + + @property + def group_id(self)->'Any': + """""" + pass + + + @property + def attributes(self)->'Any': + """""" + pass + + +class PyGROUP_USERS_INFO_0(object): + """A dictionary holding the information in a Win32 GROUP_USERS_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group or user""" + pass + + +class PyGROUP_USERS_INFO_1(object): + """A dictionary holding the information in a Win32 GROUP_USERS_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group or user""" + pass + + + @property + def attributes(self)->'Any': + """""" + pass + + +class PyGdiHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyGetSignerCertificate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHANDLE(object): + """A Python object, representing a win32 HANDLE.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def handle(self)->'Any': + """Integer value of the handleMethodsCloseCloses the handle closeSynonym for PyHANDLE::Close DetachDetaches the Win32 handle from the handle object. __nonzero__Used for detecting true/false. is nb_bool in Python 3.0 __int__Used when an integer representation of the handle object is required. __print__Used when the object is printed. tp_print __hash__Used when the hash value of an object is required tp_hash __str__Used when a string representation is required tp_str """ + pass + + + def Close(self,) -> 'None': + """ + Closes the underlying Win32 handle. + +Args: + + + +Returns: + + None + + """ + pass + + + def close(self,) -> 'None': + """ + Closes the underlying Win32 handle. + +Args: + + + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'Any': + """ + Detaches the Win32 handle from the handle object. + +Args: + + + +Returns: + + Any:PyHANDLE.Detach + +int = Detach()Detaches the Win32 handle from the handle object. +Comments + +After calling this function, the handle is effectively invalidated, + +but the handle is not closed. You would call this function when you + +need the underlying win32 handle to exist beyond the lifetime of the + +handle object. +Return ValueThe result is the value of the handle before it is detached. If the + +handle is already detached, this will return zero. + + + """ + pass + + +class PyHDESK(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetThreadDesktop(self,) -> 'None': + """ + Assigns this desktop to the calling thread + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumDesktopWindows(self,) -> 'Tuple[int, ...]': + """ + Returns a list of handles to all top-level windows on desktop + +Args: + + + +Returns: + + Tuple[int, ...] + + """ + pass + + + def SwitchDesktop(self,) -> 'None': + """ + Activates the desktop + +Args: + + + +Returns: + + None + + """ + pass + + + def CloseDesktop(self,) -> 'None': + """ + Closes the desktop handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyHDEVNOTIFY(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHHNTRACK(object): + """A Python object, representing an HHNTRACK + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def action(self)->'Any': + """Specifies the action the user is about to take. This is an HHACT_ constant.""" + pass + + + @property + def hdr(self)->'Any': + """Standard WM_NOTIFY header(win32help::NMHDR).""" + pass + + + @property + def curUrl(self)->'str': + """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" + pass + + + @property + def winType(self)->'Any': + """A pointer to the current HH_WINTYPE structure (win32help::HH_WINTYPE).""" + pass + + +class PyHHN_NOTIFY(object): + """A Python object, representing an HHN_NOTIFY + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hdr(self)->'Any': + """Standard WM_NOTIFY header.(win32help::NMHDR)""" + pass + + + @property + def url(self)->'str': + """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" + pass + + +class PyHH_AKLINK(object): + """A Python object, representing an HH_AKLINK structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def indexOnFail(self)->'Any': + """Specifies whether to display the keyword in the Index tab of the HTML Help Viewer if the lookup fails. The value of window specifies the Help Viewer.""" + pass + + + @property + def keywords(self)->'str': + """Specifies one or more ALink names or KLink keywords to look up. Multiple entries are delimited by a semicolon.""" + pass + + + @property + def url(self)->'str': + """Specifies the topic file to navigate to if the lookup fails. url refers to a valid topic within the specified compiled help (.chm) file and does not support Internet protocols that point to an HTML file.""" + pass + + + @property + def msgText(self)->'str': + """Specifies the text to display in a message box if the lookup fails and indexOnFail is FALSE and url is NULL.""" + pass + + + @property + def msgTitle(self)->'str': + """Specifies the caption of the message box in which the msgText parameter appears.""" + pass + + + @property + def window(self)->'str': + """Specifies the name of the window type in which to display one of the following: The selected topic, if the lookup yields one or more matching topics. The topic specified in url, if the lookup fails and a topic is specified in url. The Index tab, if the lookup fails and indexOnFail is specified as TRUE.""" + pass + + +class PyHH_FTS_QUERY(object): + """A Python object, representing an HH_FTS_QUERY + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uniCodeStrings(self)->'Any': + """TRUE if all strings are Unicode.""" + pass + + + @property + def proximity(self)->'Any': + """Word proximity.""" + pass + + + @property + def stemmedSearch(self)->'Any': + """TRUE for StemmedSearch only.""" + pass + + + @property + def titleOnly(self)->'Any': + """TRUE for Title search only.""" + pass + + + @property + def execute(self)->'Any': + """TRUE to initiate the search.""" + pass + + + @property + def searchQuery(self)->'str': + """String containing the search query.""" + pass + + +class PyHH_POPUP(object): + """A Python object, representing an HH_POPUP structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hinst(self)->'Any': + """Instance handle of the program or DLL to retrieve the string resource from. Ignored if idString is zero.""" + pass + + + @property + def idString(self)->'Any': + """Specifies zero, or a resource ID in the program or DLL specified in hinst.""" + pass + + + @property + def clrForeground(self)->'Any': + """Specifies the RGB value to use for the foreground color of the pop-up window. To use the system color for the window text, specify -1.""" + pass + + + @property + def clrBackground(self)->'Any': + """Specifies the RGB value to use for the background color of the pop-up window. To use the system color for the window background, specify -1.""" + pass + + + @property + def text(self)->'str': + """Specifies the text to display if idString is zero.""" + pass + + + @property + def font(self)->'str': + """Specifies the font attributes to use for the text in the pop-up window. Use the following format to specify font family, point size, character set, and font format: facename[, point size[, charset[ BOLD ITALIC UNDERLINE]]] To omit an attribute, enter a comma. For example, to specify bold, 10-pt, MS Sans Serif font, font would be: MS Sans Serif, 10, , BOLD""" + pass + + + @property + def pt(self)->'Any': + """(x,y). Specifies (in pixels) where the top center of the pop-up window should be located.""" + pass + + + @property + def margins(self)->'Any': + """(left,top,right,bottom). Specifies (in pixels) the margins to use on the left, top, right, and bottom sides of the pop-up window. The default for all rectangle members is -1.""" + pass + + +class PyHH_WINTYPE(object): + """A Python object, representing an HH_WINTYPE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uniCodeStrings(self)->'Any': + """Specifies whether the strings used in this structure are UNICODE.""" + pass + + + @property + def validMembers(self)->'Any': + """Specifies which members in the structure are valid.""" + pass + + + @property + def winProperties(self)->'Any': + """Specifies the properties of the window, such as whether it is the standard HTML Help Viewer or whether it includes a Search tab.""" + pass + + + @property + def styles(self)->'Any': + """Specifies the styles used to create the window. These styles can be ignored, combined with extended styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" + pass + + + @property + def exStyles(self)->'Any': + """Specifies the extended styles used to create the window. These styles can be ignored, combined with default styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" + pass + + + @property + def showState(self)->'Any': + """Specifies the initial display state of the window. Valid values are the same as those for the Win32 API ShowWindow function.""" + pass + + + @property + def hwndHelp(self)->'Any': + """Specifies the handle of the window if the window has been created.""" + pass + + + @property + def hwndCaller(self)->'Any': + """Specifies the window that will receive HTML Help notification messages. Notification messages are sent via Windows WM_NOTIFY messages.""" + pass + + + @property + def hwndToolBar(self)->'Any': + """Specifies the handle of the toolbar.""" + pass + + + @property + def hwndNavigation(self)->'Any': + """Specifies the handle of the Navigation pane.""" + pass + + + @property + def hwndHTML(self)->'Any': + """Specifies the handle of the Topic pane, which hosts Shdocvw.dll.""" + pass + + + @property + def navWidth(self)->'Any': + """Specifies the width of the Navigation pane when the Help Viewer is expanded.""" + pass + + + @property + def toolBarFlags(self)->'Any': + """Specifies which buttons to include on the toolbar.""" + pass + + + @property + def notExpanded(self)->'Any': + """Specifies that the Help Viewer open with the Navigation pane closed.""" + pass + + + @property + def curNavType(self)->'Any': + """Specifies the default tab to display on the Navigation pane.""" + pass + + + @property + def idNotify(self)->'Any': + """Specifies a non-zero ID for enabling HTML Help notification messages. This ID is passed as the wParam value of Windows WM_NOTIFY messages.""" + pass + + + @property + def typeName(self)->'str': + """A null-terminated string that specifies the name of the window type.""" + pass + + + @property + def caption(self)->'str': + """A null-terminated string that specifies the caption to display in the title bar of the window.""" + pass + + + @property + def windowPos(self)->'Any': + """(left,top,right,bottom). Specifies the coordinates of the window in pixels.""" + pass + + + @property + def HTMLPos(self)->'Any': + """(left,top,right,bottom). Specifies the coordinates of the Topic pane.""" + pass + + + @property + def toc(self)->'str': + """Specifies the contents (.hhc) file to display in the Navigation pane.""" + pass + + + @property + def index(self)->'str': + """Specifies the index (.hhk) file to display in the Navigation pane.""" + pass + + + @property + def file(self)->'str': + """Specifies the default HTML file to display in the Topic pane.""" + pass + + + @property + def home(self)->'str': + """Specifies the file or URL to display in the Topic pane when the Home button is clicked.""" + pass + + + @property + def jump1(self)->'str': + """Specifies the text to display underneath the Jump1 button.""" + pass + + + @property + def jump2(self)->'str': + """Specifies the text to display underneath the Jump2 button.""" + pass + + + @property + def urlJump1(self)->'str': + """Specifies the URL to jump to when the Jump1 button is clicked.""" + pass + + + @property + def urlJump2(self)->'str': + """Specifies the URL to jump to when the Jump2 button is clicked.""" + pass + + +class PyHINTERNET(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHKEY(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHTHEME(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHWINSTA(object): + """Wrapper for a handle to a window station - returned by CreateWindowStation, OpenWindowStation, or GetProcessWindowStation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumDesktops(self,) -> 'Tuple[Any, ...]': + """ + Lists names of desktops in the window station + +Args: + + + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def SetProcessWindowStation(self,) -> 'None': + """ + Associates the calling process with the window station + +Args: + + + +Returns: + + None + + """ + pass + + + def CloseWindowStation(self,) -> 'None': + """ + Closes the window station handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICONINFO(object): + """Tuple describing an icon or cursor""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIID(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyINPUT_RECORD(object): + """Interface to the INPUT_RECORD struct used with console IO functions. Create using + +PyINPUT_RECORDType(EventType)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def EventType(self)->'Any': + """One of KEY_EVENT, MOUSE_EVENT, WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT. Cannot be changed after object is created""" + pass + + + @property + def KeyDown(self)->'Any': + """True for a key press, False for key release""" + pass + + + @property + def RepeatCount(self)->'Any': + """Nbr of repeats generated (key was held down if >1)""" + pass + + + @property + def VirtualKeyCode(self)->'Any': + """Device-independent key code, win32con.VK_*""" + pass + + + @property + def VirtualScanCode(self)->'Any': + """Device-dependent scan code generated by keyboard""" + pass + + + @property + def Char(self)->'str': + """Single unicode character generated by the keypress""" + pass + + + @property + def ControlKeyState(self)->'Any': + """State of modifier keys, combination of CAPSLOCK_ON, ENHANCED_KEY, LEFT_ALT_PRESSED, LEFT_CTRL_PRESSED, NUMLOCK_ON, RIGHT_ALT_PRESSED, RIGHT_CTRL_PRESSED, SCROLLLOCK_ON, SHIFT_PRESSED""" + pass + + + @property + def ButtonState(self)->'Any': + """Bitmask representing which mouse buttons were pressed.""" + pass + + + @property + def EventFlags(self)->'Any': + """DOUBLE_CLICK, MOUSE_MOVED or MOUSE_WHEELED, or 0. If 0, indicates a mouse button press""" + pass + + + @property + def MousePosition(self)->'PyCOORD': + """Position in character coordinates""" + pass + + + @property + def Size(self)->'PyCOORD': + """New size of screen buffer in character rows/columns""" + pass + + + @property + def SetFocus(self)->'Any': + """Reserved - Used only with type FOCUS_EVENT. This event is Reserved, and should be ignored.""" + pass + + + @property + def CommandId(self)->'Any': + """Used only with event type MENU_EVENT, which is reserved and should not be used""" + pass + + +class PyLOCALGROUP_INFO_0(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + +class PyLOCALGROUP_INFO_1(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'Union[str]': + """The group's comment.""" + pass + + +class PyLOCALGROUP_INFO_1002(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1002 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'Union[str]': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_0(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_0 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_1(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_1 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + + @property + def sidusage(self)->'Any': + """""" + pass + + + @property + def name(self)->'Union[str]': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_2(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_2 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + + @property + def sidusage(self)->'Any': + """""" + pass + + + @property + def domainandname(self)->'Union[str]': + """string containing the name of the member prefixed by the domain name and the "\\" separator character""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_3(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_3 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def domainandname(self)->'Union[str]': + """string containing the name of the member prefixed by the domain name and the "\\" separator character""" + pass + + +class PyLOGBRUSH(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Style(self)->'Any': + """Brush style, one of win32con.BS_* values""" + pass + + + @property + def Color(self)->'Any': + """RGB color value. Can also be DIB_PAL_COLORS or DIB_RGB_COLORS if Style is BS_DIBPATTERN or BS_DIBPATTERNPT=""" + pass + + + @property + def Hatch(self)->'Union[Any, int]': + """For BS_HATCH style, one of win32con.HS_*. Not used For BS_SOLID or BS_HOLLOW. For a pattern brush, this should be a handle to a bitmap""" + pass + + +class PyLOGFONT(object): + """A Python object, representing an PyLOGFONT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def lfHeight(self)->'int': + """""" + pass + + + @property + def lfWidth(self)->'int': + """""" + pass + + + @property + def lfEscapement(self)->'int': + """""" + pass + + + @property + def lfOrientation(self)->'int': + """""" + pass + + + @property + def lfWeight(self)->'int': + """""" + pass + + + @property + def lfItalic(self)->'int': + """""" + pass + + + @property + def lfUnderline(self)->'int': + """""" + pass + + + @property + def lfStrikeOut(self)->'int': + """""" + pass + + + @property + def lfCharSet(self)->'int': + """""" + pass + + + @property + def lfOutPrecision(self)->'int': + """""" + pass + + + @property + def lfClipPrecision(self)->'int': + """""" + pass + + + @property + def lfQuality(self)->'int': + """""" + pass + + + @property + def lfPitchAndFamily(self)->'int': + """""" + pass + + + @property + def lfFaceName(self)->'str': + """Name of the typeface, at most 31 characters""" + pass + + +class PyLSA_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyLUID_AND_ATTRIBUTES(object): + """A sequence containing (LUID,Attributes) representing an LUID_AND_ATTRIBUTES structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyLsaLogon_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyMSG(object): + """A tuple representing a win32 MSG structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNETRESOURCE(object): + """A Python object that encapsulates a Win32 NETRESOURCE structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwScope(self)->'int': + """""" + pass + + + @property + def dwType(self)->'int': + """""" + pass + + + @property + def dwDisplayType(self)->'int': + """""" + pass + + + @property + def dwUsage(self)->'int': + """""" + pass + + + @property + def localName(self)->'str': + """""" + pass + + + @property + def remoteName(self)->'str': + """""" + pass + + + @property + def comment(self)->'str': + """""" + pass + + + @property + def provider(self)->'str': + """""" + pass + + +class PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNET_VALIDATE_PERSISTED_FIELDS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNMHDR(object): + """A Python object, representing an NMHDR + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hwndFrom(self)->'Any': + """Window handle to the control sending a message. ??? 64-bit problem here ???""" + pass + + + @property + def idFrom(self)->'Any': + """Identifier of the control sending a message.""" + pass + + + @property + def code(self)->'Any': + """Notification code. This member can be a control-specific notification code or it can be one of the common notification codes.""" + pass + + +class PyNOTIFYICONDATA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyOVERLAPPED(object): + """A Python object, representing an overlapped structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Offset(self)->'int': + """Specifies a file position at which to start the transfer. The file position is a byte offset from the start of the file. The calling process sets this member before calling the ReadFile or WriteFile function. This member is ignored when reading from or writing to named pipes and communications devices.""" + pass + + + @property + def OffsetHigh(self)->'int': + """Specifies the high word of the byte offset at which to start the transfer.""" + pass + + + @property + def object(self)->'Any': + """Any python object that you want to attach to your overlapped I/O request.""" + pass + + + @property + def dword(self)->'Any': + """An integer buffer that may be used by overlapped functions (eg, win32file::WaitCommEvent)""" + pass + + + @property + def hEvent(self)->'int': + """Identifies an event set to the signaled state when the transfer has been completed. The calling process sets this member before calling the win32file::ReadFile, win32file::WriteFile, win32pipe::ConnectNamedPipe, or win32pipe::TransactNamedPipe function.""" + pass + + + @property + def Internal(self)->'int': + """Reserved for operating system use. (pointer-sized value)""" + pass + + + @property + def InternalHigh(self)->'int': + """Reserved for operating system use. (pointer-sized value)""" + pass + + +class PyOVERLAPPEDReadBuffer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPERF_COUNTER_DEFINITION(object): + """An object encapsulating a Windows NT Performance Monitor counter definition + +(PERF_COUNTER_DEFINITION).""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def DefaultScale(self)->'int': + """The default scale of the counter.""" + pass + + + @property + def DetailLevel(self)->'int': + """The detail level of the counter.""" + pass + + + @property + def CounterType(self)->'int': + """The counter type.""" + pass + + + @property + def CounterNameTitleIndex(self)->'int': + """""" + pass + + + @property + def CounterHelpTitleIndex(self)->'int': + """Sentinel""" + pass + + + def Increment(self,) -> 'None': + """ + Increments the value of the performance counter + +Args: + + + +Returns: + + None + + """ + pass + + + def Decrement(self,) -> 'None': + """ + Decrements the value of the performance counter + +Args: + + + +Returns: + + None + + """ + pass + + + def Set(self,) -> 'None': + """ + Sets the counter to a specific value + +Args: + + + +Returns: + + None + + """ + pass + + + def Get(self,) -> 'None': + """ + Gets the current value of the counter + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPERF_OBJECT_TYPE(object): + """A Python object, representing a PERF_OBJECT_TYPE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjectNameTitleIndex(self)->'int': + """""" + pass + + + @property + def ObjectHelpTitleIndex(self)->'int': + """""" + pass + + + @property + def DefaultCounterIndex(self)->'int': + """""" + pass + + + def Close(self,) -> 'None': + """ + Closes the object. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPOINT(object): + """Tuple of two ints (x,y) representing a POINT struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROFILEINFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def UserName(self)->'str': + """Name of user for which to load profile""" + pass + + + @property + def Flags(self)->'Any': + """Combination of PI_* flags""" + pass + + + @property + def ProfilePath(self)->'str': + """Path to roaming profile, can be None. Use win32net::NetUserGetInfo to retrieve user's profile path""" + pass + + + @property + def DefaultPath(self)->'str': + """Path to Default user profile, can be None""" + pass + + + @property + def ServerName(self)->'str': + """Domain controller, can be None""" + pass + + + @property + def PolicyPath(self)->'str': + """Location of policy file, can be None""" + pass + + + @property + def Profile(self)->'PyHKEY': + """Handle to root of user's registry key. This member is output.""" + pass + + +class PyPerfMonManager(object): + """A Python object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Close(self,) -> 'None': + """ + Closes the performance monitor manager. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPrinterHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyRECT(object): + """Tuple of 4 ints defining a rectangle: (left, top, right, bottom)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyResourceId(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySCROLLINFO(object): + """A tuple representing a SCROLLINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySC_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySECURITY_ATTRIBUTES(object): + """A Python object, representing a SECURITY_ATTRIBUTES structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bInheritHandle(self)->'Any': + """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle.""" + pass + + + @property + def SECURITY_DESCRIPTOR(self)->'PySECURITY_DESCRIPTOR': + """A PySECURITY_DESCRIPTOR, or None""" + pass + + +class PySECURITY_DESCRIPTOR(object): + """A Python object, representing a SECURITY_DESCRIPTOR structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Initialize the SD. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSecurityDescriptorOwner(self,) -> 'PySID': + """ + Return the owner of the security descriptor. + +Args: + + + +Returns: + + PySID + + """ + pass + + + def GetSecurityDescriptorDacl(self,) -> 'PyACL': + """ + Return the discretionary ACL of the security + +descriptor. + +Args: + + + +Returns: + + PyACL + + """ + pass + + + def GetSecurityDescriptorSacl(self,) -> 'PyACL': + """ + Return system access control list (SACL) of SD + +Args: + + + +Returns: + + PyACL + + """ + pass + + + def GetSecurityDescriptorControl(self,) -> 'Tuple[Any, Any]': + """ + Returns tuple of Control bit flags and + +revision of SD. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetSecurityDescriptorOwner(self,sid:'PySID',bOwnerDefaulted:'Any') -> 'None': + """ + Set owner SID. + +Args: + + sid(PySID):The sid to be set as owner in the security descriptor. + bOwnerDefaulted(Any):Normally set to false since this explicitely set the owner. + +Returns: + + None + + """ + pass + + + def SetSecurityDescriptorGroup(self,sid:'PySID',bOwnerDefaulted:'Any') -> 'Any': + """ + Set group SID. + +Args: + + sid(PySID):The group sid to be set in the security descriptor. + bOwnerDefaulted(Any):Normally set to false since this explicitely set the owner. + +Returns: + + Any + + """ + pass + + + def SetSecurityDescriptorSacl(self,bSaclPresent:'Any',SACL:'PyACL',bSaclDefaulted:'Any') -> 'None': + """ + Replaces system access control list (SACL) in the security + +descriptor. + +Args: + + bSaclPresent(Any):A flag indicating if SACL is to be used. If false, last 2 parms are ignored. + SACL(PyACL):The SACL to set in the security descriptor + bSaclDefaulted(Any):Flag, set to false if user has specifically set the SACL. + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the security descriptor is valid. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetLength(self,) -> 'None': + """ + return length of security descriptor (GetSecurityDescriptorLenght). + +Args: + + + +Returns: + + None + + """ + pass + + + def IsSelfRelative(self,) -> 'None': + """ + Returns 1 if security descriptor is self relative, 0 if absolute + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSecurityDescriptorControl(self,ControlBitsOfInterest:'Any',ControlBitsToSet:'Any') -> 'None': + """ + Sets the control bit flags related to inheritance for a + +security descriptor + +Args: + + ControlBitsOfInterest(Any):Bitmask of flags to be modified + ControlBitsToSet(Any):Bitmask containing flag values to setCommentsOnly exists on Windows 2000 or later + +Returns: + + None + + """ + pass + + +class PySERVER_INFO_100(object): + """A dictionary holding the information in a Win32 SERVER_INFO_100 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """""" + pass + + + @property + def name(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_101(object): + """A dictionary holding the information in a Win32 SERVER_INFO_101 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """""" + pass + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def version_major(self)->'Any': + """""" + pass + + + @property + def version_minor(self)->'Any': + """""" + pass + + + @property + def type(self)->'Any': + """one of the SV_TYPE_* constants""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_102(object): + """A dictionary holding the information in a Win32 SERVER_INFO_102 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """""" + pass + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def version_major(self)->'Any': + """""" + pass + + + @property + def version_minor(self)->'Any': + """""" + pass + + + @property + def type(self)->'Any': + """one of the SV_TYPE_* constants""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def users(self)->'Any': + """""" + pass + + + @property + def disc(self)->'Any': + """""" + pass + + + @property + def hidden(self)->'Any': + """""" + pass + + + @property + def announce(self)->'Any': + """""" + pass + + + @property + def anndelta(self)->'Any': + """""" + pass + + + @property + def userpath(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_402(object): + """A dictionary holding the information in a Win32 SERVER_INFO_402 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ulist_mtime(self)->'Any': + """""" + pass + + + @property + def glist_mtime(self)->'Any': + """""" + pass + + + @property + def alist_mtime(self)->'Any': + """""" + pass + + + @property + def security(self)->'Any': + """""" + pass + + + @property + def numadmin(self)->'Any': + """""" + pass + + + @property + def lanmask(self)->'Any': + """""" + pass + + + @property + def guestacct(self)->'Union[str]': + """""" + pass + + + @property + def chdevs(self)->'Any': + """""" + pass + + + @property + def chdevq(self)->'Any': + """""" + pass + + + @property + def chdevjobs(self)->'Any': + """""" + pass + + + @property + def connections(self)->'Any': + """""" + pass + + + @property + def shares(self)->'Any': + """""" + pass + + + @property + def openfiles(self)->'Any': + """""" + pass + + + @property + def sessopens(self)->'Any': + """""" + pass + + + @property + def sessvcs(self)->'Any': + """""" + pass + + + @property + def sessreqs(self)->'Any': + """""" + pass + + + @property + def opensearch(self)->'Any': + """""" + pass + + + @property + def activelocks(self)->'Any': + """""" + pass + + + @property + def numreqbuf(self)->'Any': + """""" + pass + + + @property + def sizreqbuf(self)->'Any': + """""" + pass + + + @property + def numbigbuf(self)->'Any': + """""" + pass + + + @property + def numfiletasks(self)->'Any': + """""" + pass + + + @property + def alertsched(self)->'Any': + """""" + pass + + + @property + def erroralert(self)->'Any': + """""" + pass + + + @property + def logonalert(self)->'Any': + """""" + pass + + + @property + def accessalert(self)->'Any': + """""" + pass + + + @property + def diskalert(self)->'Any': + """""" + pass + + + @property + def netioalert(self)->'Any': + """""" + pass + + + @property + def maxauditsz(self)->'Any': + """""" + pass + + + @property + def srvheuristics(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_403(object): + """A dictionary holding the information in a Win32 SERVER_INFO_403 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ulist_mtime(self)->'Any': + """""" + pass + + + @property + def glist_mtime(self)->'Any': + """""" + pass + + + @property + def alist_mtime(self)->'Any': + """""" + pass + + + @property + def security(self)->'Any': + """""" + pass + + + @property + def numadmin(self)->'Any': + """""" + pass + + + @property + def lanmask(self)->'Any': + """""" + pass + + + @property + def guestacct(self)->'Union[str]': + """""" + pass + + + @property + def chdevs(self)->'Any': + """""" + pass + + + @property + def chdevq(self)->'Any': + """""" + pass + + + @property + def chdevjobs(self)->'Any': + """""" + pass + + + @property + def connections(self)->'Any': + """""" + pass + + + @property + def shares(self)->'Any': + """""" + pass + + + @property + def openfiles(self)->'Any': + """""" + pass + + + @property + def sessopens(self)->'Any': + """""" + pass + + + @property + def sessvcs(self)->'Any': + """""" + pass + + + @property + def sessreqs(self)->'Any': + """""" + pass + + + @property + def opensearch(self)->'Any': + """""" + pass + + + @property + def activelocks(self)->'Any': + """""" + pass + + + @property + def numreqbuf(self)->'Any': + """""" + pass + + + @property + def sizreqbuf(self)->'Any': + """""" + pass + + + @property + def numbigbuf(self)->'Any': + """""" + pass + + + @property + def numfiletasks(self)->'Any': + """""" + pass + + + @property + def alertsched(self)->'Any': + """""" + pass + + + @property + def erroralert(self)->'Any': + """""" + pass + + + @property + def logonalert(self)->'Any': + """""" + pass + + + @property + def accessalert(self)->'Any': + """""" + pass + + + @property + def diskalert(self)->'Any': + """""" + pass + + + @property + def netioalert(self)->'Any': + """""" + pass + + + @property + def maxauditsz(self)->'Any': + """""" + pass + + + @property + def srvheuristics(self)->'Union[str]': + """""" + pass + + + @property + def auditedevents(self)->'Any': + """""" + pass + + + @property + def autoprofile(self)->'Any': + """""" + pass + + + @property + def autopath(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_502(object): + """A dictionary holding the information in a Win32 SERVER_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sessopens(self)->'Any': + """""" + pass + + + @property + def sessvcs(self)->'Any': + """""" + pass + + + @property + def opensearch(self)->'Any': + """""" + pass + + + @property + def sizreqbuf(self)->'Any': + """""" + pass + + + @property + def initworkitems(self)->'Any': + """""" + pass + + + @property + def maxworkitems(self)->'Any': + """""" + pass + + + @property + def rawworkitems(self)->'Any': + """""" + pass + + + @property + def irpstacksize(self)->'Any': + """""" + pass + + + @property + def maxrawbuflen(self)->'Any': + """""" + pass + + + @property + def sessusers(self)->'Any': + """""" + pass + + + @property + def sessconns(self)->'Any': + """""" + pass + + + @property + def maxpagedmemoryusage(self)->'Any': + """""" + pass + + + @property + def maxnonpagedmemoryusage(self)->'Any': + """""" + pass + + + @property + def enableforcedlogoff(self)->'Any': + """""" + pass + + + @property + def timesource(self)->'Any': + """""" + pass + + + @property + def acceptdownlevelapis(self)->'Any': + """""" + pass + + + @property + def lmannounce(self)->'Any': + """""" + pass + + +class PySERVER_INFO_503(object): + """A dictionary holding the information in a Win32 SERVER_INFO_503 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sessopens(self)->'Any': + """""" + pass + + + @property + def sessvcs(self)->'Any': + """""" + pass + + + @property + def opensearch(self)->'Any': + """""" + pass + + + @property + def sizreqbuf(self)->'Any': + """""" + pass + + + @property + def initworkitems(self)->'Any': + """""" + pass + + + @property + def maxworkitems(self)->'Any': + """""" + pass + + + @property + def rawworkitems(self)->'Any': + """""" + pass + + + @property + def irpstacksize(self)->'Any': + """""" + pass + + + @property + def maxrawbuflen(self)->'Any': + """""" + pass + + + @property + def sessusers(self)->'Any': + """""" + pass + + + @property + def sessconns(self)->'Any': + """""" + pass + + + @property + def maxpagedmemoryusage(self)->'Any': + """""" + pass + + + @property + def maxnonpagedmemoryusage(self)->'Any': + """""" + pass + + + @property + def enableforcedlogoff(self)->'Any': + """""" + pass + + + @property + def timesource(self)->'Any': + """""" + pass + + + @property + def acceptdownlevelapis(self)->'Any': + """""" + pass + + + @property + def lmannounce(self)->'Any': + """""" + pass + + + @property + def domain(self)->'Union[str]': + """""" + pass + + + @property + def maxkeepsearch(self)->'Any': + """""" + pass + + + @property + def scavtimeout(self)->'Any': + """""" + pass + + + @property + def minrcvqueue(self)->'Any': + """""" + pass + + + @property + def minfreeworkitems(self)->'Any': + """""" + pass + + + @property + def xactmemsize(self)->'Any': + """""" + pass + + + @property + def threadpriority(self)->'Any': + """""" + pass + + + @property + def maxmpxct(self)->'Any': + """""" + pass + + + @property + def oplockbreakwait(self)->'Any': + """""" + pass + + + @property + def oplockbreakresponsewait(self)->'Any': + """""" + pass + + + @property + def enableoplocks(self)->'Any': + """""" + pass + + + @property + def enablefcbopens(self)->'Any': + """""" + pass + + + @property + def enableraw(self)->'Any': + """""" + pass + + + @property + def enablesharednetdrives(self)->'Any': + """""" + pass + + + @property + def minfreeconnections(self)->'Any': + """""" + pass + + + @property + def maxfreeconnections(self)->'Any': + """""" + pass + + +class PySHARE_INFO_0(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + +class PySHARE_INFO_1(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def remark(self)->'Union[str]': + """""" + pass + + +class PySHARE_INFO_2(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def remark(self)->'Union[str]': + """""" + pass + + + @property + def permissions(self)->'Any': + """""" + pass + + + @property + def max_uses(self)->'Any': + """""" + pass + + + @property + def current_uses(self)->'Any': + """""" + pass + + + @property + def path(self)->'Union[str]': + """""" + pass + + + @property + def passwd(self)->'Union[str]': + """""" + pass + + +class PySHARE_INFO_501(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_501 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def remark(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + +class PySHARE_INFO_502(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def remark(self)->'Union[str]': + """""" + pass + + + @property + def permissions(self)->'Any': + """""" + pass + + + @property + def max_uses(self)->'Any': + """""" + pass + + + @property + def current_uses(self)->'Any': + """""" + pass + + + @property + def path(self)->'Union[str]': + """""" + pass + + + @property + def passwd(self)->'Union[str]': + """""" + pass + + + @property + def reserved(self)->'Any': + """""" + pass + + + @property + def security_descriptor(self)->'PySECURITY_DESCRIPTOR': + """""" + pass + + +class PySID(object): + """A Python object, representing a SID structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,idAuthority:'Any',numSubauthorities:'Any') -> 'None': + """ + Initialize the SID. + +Args: + + idAuthority(Any):The identifier authority. + numSubauthorities(Any):The number of sub authorities to allocate. + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the SID is valid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSubAuthority(self,index:'Any',val:'Any') -> 'None': + """ + Sets a SID SubAuthority + +Args: + + index(Any):The index of the sub authority to set + val(Any):The value for the sub authorityCommentsSee the function SetSidSubAuthority + +Returns: + + None + + """ + pass + + + def GetLength(self,) -> 'Any': + """ + return length of SID (GetLengthSid). + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSubAuthorityCount(self,) -> 'Any': + """ + return nbr of subauthorities from SID + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSubAuthority(self,) -> 'Any': + """ + Returns specified subauthority from SID + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSidIdentifierAuthority(self,) -> 'Tuple[Any, Any, Any, Any, Any, Any]': + """ + Returns a tuple of 6 SID_IDENTIFIER_AUTHORITY + +constants + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any, Any, Any] + + """ + pass + + +class PySID_AND_ATTRIBUTES(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySIZE(object): + """Tuple of two ints (cx,cy) representing a SIZE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySMALL_RECT(object): + """Wrapper for a SMALL_RECT struct + +Create using PySMALL_RECTType(Left, Top, Right, Bottom). All params optional, defaulting to 0""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'Any': + """Left side of rectangle""" + pass + + + @property + def Top(self)->'Any': + """Top edge of rectangle""" + pass + + + @property + def Right(self)->'Any': + """Right edge of rectangle""" + pass + + + @property + def Bottom(self)->'Any': + """Bottome edge of rectangle""" + pass + + +class PySTARTUPINFO(object): + """A Python object, representing an STARTUPINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwX(self)->'int': + """Specifies the x offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" + pass + + + @property + def dwY(self)->'int': + """Specifies the y offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" + pass + + + @property + def dwXSize(self)->'int': + """Specifies the width, in pixels, of the window if a new window is created.""" + pass + + + @property + def dwYSize(self)->'int': + """Specifies the height, in pixels, of the window if a new window is created.""" + pass + + + @property + def dwXCountChars(self)->'int': + """For console processes, if a new console window is created, specifies the screen buffer width in character columns. This value is ignored in a GUI process.""" + pass + + + @property + def dwYCountChars(self)->'int': + """For console processes, if a new console window is created, specifies the screen buffer height in character rows.""" + pass + + + @property + def dwFillAttribute(self)->'int': + """Specifies the initial text and background colors if a new console window is created in a console application. These values are ignored in GUI applications""" + pass + + + @property + def dwFlags(self)->'int': + """This is a bit field that determines whether certain STARTUPINFO attributes are used when the process creates a window. To use many of the additional attributes, you typically must set the appropriate mask in this attribute, and also set the attributes themselves. Any combination of the win32con.STARTF_* flags can be specified.""" + pass + + + @property + def wShowWindow(self)->'int': + """Can be any of the SW_ constants defined in win32con. For GUI processes, this specifies the default value the first time ShowWindow is called.""" + pass + + + @property + def hStdInput(self)->'Union[int]': + """""" + pass + + + @property + def hStdOutput(self)->'Union[int]': + """""" + pass + + + @property + def hStdError(self)->'Union[int]': + """""" + pass + + + @property + def lpDesktop(self)->'Union[Any, str]': + """""" + pass + + + @property + def lpTitle(self)->'Union[Any, str]': + """""" + pass + + +class PySecBuffer(object): + """Python object wrapping a SecBuffer structure + +Created using win32security.PySecBufferType(type,size) where type is a SECBUFFER_* constant""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def BufferType(self)->'Any': + """""" + pass + + + @property + def Buffer(self)->'str': + """""" + pass + + + @property + def BufferSize(self)->'Any': + """""" + pass + + + @property + def MaxBufferSize(self)->'Any': + """""" + pass + + + def Clear(self,) -> 'None': + """ + Resets the buffer to all NULL's, and set the current size to maximum + +Args: + + + +Returns: + + None + + """ + pass + + +class PySecBufferDesc(object): + """Sequence-like object that contains a group of buffers to be used with SSPI functions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def append(self,buffer:'Any') -> 'None': + """ + None + +Args: + + buffer(Any):PySecBuffer object to be attached to the group of buffers + +Returns: + + None + + """ + pass + + +class PyTOKEN_GROUPS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTOKEN_PRIVILEGES(object): + """An object representing Win32 token privileges.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTRIVERTEX(object): + """Dict representing a TRIVERTEX struct containing color information at a point""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def x(self)->'Any': + """X coord in logical units""" + pass + + + @property + def y(self)->'Any': + """Y coord in logical units""" + pass + + + @property + def Red(self)->'Any': + """Red component""" + pass + + + @property + def Green(self)->'Any': + """Green component""" + pass + + + @property + def Blue(self)->'Any': + """Blue component""" + pass + + + @property + def Alpha(self)->'Any': + """Transparency value""" + pass + + +class PyTRUSTEE(object): + """A dictionary representing a TRUSTEE structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def TrusteeForm(self)->'Any': + """""" + pass + + + @property + def TrusteeType(self)->'Any': + """""" + pass + + + @property + def Identifier(self)->'Any': + """Depends on the value of TrusteeForm (string or sid)""" + pass + + + @property + def MultipleTrustee(self)->'Any': + """default is None""" + pass + + + @property + def MultipleTrusteeOperation(self)->'Any': + """default is None""" + pass + + +class PyTS_HANDLE(object): + """Handle to a Terminal Server""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTime(object): + """A Python object, representing an instant in time.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def year(self)->'Any': + """""" + pass + + + @property + def month(self)->'Any': + """""" + pass + + + @property + def weekday(self)->'Any': + """""" + pass + + + @property + def day(self)->'Any': + """""" + pass + + + @property + def hour(self)->'Any': + """""" + pass + + + @property + def minute(self)->'Any': + """""" + pass + + + @property + def second(self)->'Any': + """""" + pass + + + @property + def msec(self)->'Any': + """""" + pass + + + def Format(self,_format:'str') -> 'str': + """ + Formats the time value. + +Args: + + _format(str):The format. See the comments section for a description of the supported flags.CommentsThe following format characters are supported.CharacterDescription%aAbbreviated weekday name%AFull weekday name%bAbbreviated month name%BFull month name%cDate and time representation appropriate for locale%dDay of month as decimal number (01 - 31)%HHour in 24-hour format (00 - 23)%IHour in 12-hour format (01 - 12)%jDay of year as decimal number (001 - 366)%mMonth as decimal number (01 - 12)%MMinute as decimal number (00 - 59)%pCurrent locale's A.M./P.M. indicator for 12-hour clock%SSecond as decimal number (00 - 59)%UWeek of year as decimal number, with Sunday as first day of week (00 - 51)%wWeekday as decimal number (0 - 6; Sunday is 0)%WWeek of year as decimal number, with Monday as first day of week (00 - 51)%xDate representation for current locale%XTime representation for current locale%yYear without century, as decimal number (00 - 99)%YYear with century, as decimal number%z, %ZTime-zone name or abbreviation; no characters if time zone is unknown%%Percent signAs in the printf function, the # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.Format CodeMeaning%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%# flag is ignored.%#cLong date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".%#xLong date representation, appropriate to current locale. For example: "Tuesday, March 14, 1995".%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#YRemove leading zeros (if any). + +Returns: + + str + + """ + pass + + +class PyUSER_INFO_0(object): + """A dictionary holding the information in a Win32 USER_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1(object): + """A dictionary holding the information in a Win32 USER_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[str]': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_10(object): + """A dictionary holding the information in a Win32 USER_INFO_10 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1003(object): + """A dictionary holding the information in a Win32 USER_INFO_1003 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def password(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1005(object): + """A dictionary holding the information in a Win32 USER_INFO_1005 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def priv(self)->'Any': + """""" + pass + + +class PyUSER_INFO_1006(object): + """A dictionary holding the information in a Win32 USER_INFO_1006 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1007(object): + """A dictionary holding the information in a Win32 USER_INFO_1007 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1008(object): + """A dictionary holding the information in a Win32 USER_INFO_1008 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def flags(self)->'Any': + """""" + pass + + +class PyUSER_INFO_1009(object): + """A dictionary holding the information in a Win32 USER_INFO_1009 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1010(object): + """A dictionary holding the information in a Win32 USER_INFO_1010 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def auth_flags(self)->'Any': + """""" + pass + + +class PyUSER_INFO_1011(object): + """A dictionary holding the information in a Win32 USER_INFO_1011 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_11(object): + """A dictionary holding the information in a Win32 USER_INFO_11 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def auth_flags(self)->'Any': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def parms(self)->'Union[str]': + """""" + pass + + + @property + def last_logon(self)->'Any': + """""" + pass + + + @property + def last_logoff(self)->'Any': + """""" + pass + + + @property + def bad_pw_count(self)->'Any': + """""" + pass + + + @property + def num_logons(self)->'Any': + """""" + pass + + + @property + def logon_server(self)->'Union[str]': + """""" + pass + + + @property + def country_code(self)->'Any': + """""" + pass + + + @property + def workstations(self)->'Union[str]': + """""" + pass + + + @property + def max_storage(self)->'Any': + """""" + pass + + + @property + def units_per_week(self)->'Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def code_page(self)->'Any': + """""" + pass + + +class PyUSER_INFO_2(object): + """A dictionary holding the information in a Win32 USER_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[str]': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'Any': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def parms(self)->'Union[str]': + """""" + pass + + + @property + def workstations(self)->'Union[str]': + """""" + pass + + + @property + def last_logon(self)->'Any': + """""" + pass + + + @property + def last_logoff(self)->'Any': + """""" + pass + + + @property + def acct_expires(self)->'Any': + """""" + pass + + + @property + def max_storage(self)->'Any': + """""" + pass + + + @property + def units_per_week(self)->'Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'Any': + """""" + pass + + + @property + def num_logons(self)->'Any': + """""" + pass + + + @property + def logon_server(self)->'Union[str]': + """""" + pass + + + @property + def country_code(self)->'Any': + """""" + pass + + + @property + def code_page(self)->'Any': + """""" + pass + + +class PyUSER_INFO_20(object): + """A dictionary holding the information in a Win32 USER_INFO_20 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def user_id(self)->'Any': + """""" + pass + + +class PyUSER_INFO_3(object): + """A dictionary holding the information in a Win32 USER_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[str]': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'Any': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def parms(self)->'Union[str]': + """""" + pass + + + @property + def workstations(self)->'Union[str]': + """""" + pass + + + @property + def last_logon(self)->'Any': + """""" + pass + + + @property + def last_logoff(self)->'Any': + """""" + pass + + + @property + def acct_expires(self)->'Any': + """""" + pass + + + @property + def max_storage(self)->'Any': + """""" + pass + + + @property + def units_per_week(self)->'Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'Any': + """""" + pass + + + @property + def num_logons(self)->'Any': + """""" + pass + + + @property + def logon_server(self)->'Union[str]': + """""" + pass + + + @property + def country_code(self)->'Any': + """""" + pass + + + @property + def code_page(self)->'Any': + """""" + pass + + + @property + def user_id(self)->'Any': + """""" + pass + + + @property + def primary_group_id(self)->'Any': + """""" + pass + + + @property + def profile(self)->'Union[str]': + """""" + pass + + + @property + def home_dir_drive(self)->'Union[str]': + """""" + pass + + + @property + def password_expired(self)->'Any': + """""" + pass + + +class PyUSER_INFO_4(object): + """A dictionary holding the information in a Win32 USER_INFO_4 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[str]': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'Any': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def parms(self)->'Union[str]': + """""" + pass + + + @property + def workstations(self)->'Union[str]': + """""" + pass + + + @property + def last_logon(self)->'Any': + """""" + pass + + + @property + def last_logoff(self)->'Any': + """""" + pass + + + @property + def acct_expires(self)->'Any': + """""" + pass + + + @property + def max_storage(self)->'Any': + """""" + pass + + + @property + def units_per_week(self)->'Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'Any': + """""" + pass + + + @property + def num_logons(self)->'Any': + """""" + pass + + + @property + def logon_server(self)->'Union[str]': + """""" + pass + + + @property + def country_code(self)->'Any': + """""" + pass + + + @property + def code_page(self)->'Any': + """""" + pass + + + @property + def user_sid(self)->'PySID': + """""" + pass + + + @property + def primary_group_id(self)->'Any': + """""" + pass + + + @property + def profile(self)->'Union[str]': + """""" + pass + + + @property + def home_dir_drive(self)->'Union[str]': + """""" + pass + + + @property + def password_expired(self)->'Any': + """""" + pass + + +class PyUSER_MODALS_INFO_0(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def min_passwd_len(self)->'Any': + """""" + pass + + + @property + def max_passwd_age(self)->'Any': + """""" + pass + + + @property + def min_passwd_age(self)->'Any': + """""" + pass + + + @property + def force_logoff(self)->'Any': + """""" + pass + + + @property + def password_hist_len(self)->'Any': + """""" + pass + + +class PyUSER_MODALS_INFO_1(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def role(self)->'Any': + """""" + pass + + + @property + def primary(self)->'Union[str]': + """""" + pass + + +class PyUSER_MODALS_INFO_2(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def domain_name(self)->'Union[str]': + """""" + pass + + + @property + def domain_id(self)->'PySID': + """""" + pass + + +class PyUSER_MODALS_INFO_3(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def lockout_duration(self)->'Any': + """""" + pass + + + @property + def lockout_observation_window(self)->'Any': + """""" + pass + + + @property + def usrmod3_lockout_threshold(self)->'Any': + """""" + pass + + +class PyUSE_INFO_0(object): + """A dictionary holding the infomation in a Win32 USE_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'Union[str]': + """""" + pass + + + @property + def remote(self)->'Union[str]': + """""" + pass + + +class PyUSE_INFO_1(object): + """A dictionary holding the infomation in a Win32 USE_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'Union[str]': + """""" + pass + + + @property + def remote(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[Any, str]': + """""" + pass + + + @property + def status(self)->'Any': + """""" + pass + + + @property + def asg_type(self)->'Any': + """""" + pass + + + @property + def refcount(self)->'Any': + """""" + pass + + + @property + def usecount(self)->'Any': + """""" + pass + + +class PyUSE_INFO_2(object): + """A dictionary holding the infomation in a Win32 USE_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'Union[str]': + """""" + pass + + + @property + def remote(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[Any, str]': + """""" + pass + + + @property + def status(self)->'Any': + """""" + pass + + + @property + def asg_type(self)->'Any': + """""" + pass + + + @property + def refcount(self)->'Any': + """""" + pass + + + @property + def usecount(self)->'Any': + """""" + pass + + + @property + def username(self)->'Union[str]': + """""" + pass + + + @property + def domainname(self)->'Union[str]': + """""" + pass + + +class PyUSE_INFO_3(object): + """A dictionary holding the infomation in a Win32 USE_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'Union[str]': + """""" + pass + + + @property + def remote(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[Any, str]': + """""" + pass + + + @property + def status(self)->'Any': + """""" + pass + + + @property + def asg_type(self)->'Any': + """""" + pass + + + @property + def refcount(self)->'Any': + """""" + pass + + + @property + def usecount(self)->'Any': + """""" + pass + + + @property + def username(self)->'Union[str]': + """""" + pass + + + @property + def domainname(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + +class PyUnicode(object): + """A Python object, representing a Unicode string.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyUrlCacheHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWAVEFORMATEX(object): + """A Python object, representing a WAVEFORMATEX structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def wFormatTag(self)->'int': + """Waveform-audio format type. pywintypes only defines WAVE_FORMAT_PCM as a constant. Other values must be looked up in the mmsystem.h header file.""" + pass + + + @property + def nChannels(self)->'int': + """Number of channels. 1 for Mono, 2 for Stereo, anything, but never 5.1.""" + pass + + + @property + def nSamplesPerSec(self)->'int': + """Sample rate, in samples per second (hertz), that each channel should be played or recorded. If wFormatTag is WAVE_FORMAT_PCM, then common values for nSamplesPerSec are 8000, 11025, 22050, and 44100 Hz""" + pass + + + @property + def nAvgBytesPerSec(self)->'int': + """Required average data-transfer rate, in bytes per second, for the format tag. If wFormatTag is WAVE_FORMAT_PCM, nAvgBytesPerSec should be equal to the product of nSamplesPerSec and nBlockAlign.""" + pass + + + @property + def nBlockAlign(self)->'int': + """Block alignment, in bytes. The block alignment is the minimum atomic unit of data for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, nBlockAlign should be equal to the product of nChannels and wBitsPerSample divided by 8 (bits per byte). For non-PCM formats, this member must be computed according to the manufacturer’s specification of the format tag.""" + pass + + + @property + def wBitsPerSample(self)->'int': + """Bits per sample for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, then wBitsPerSample should be equal to 8 or 16. Sentinel""" + pass + + +class PyWINHTTP_AUTOPROXY_OPTIONS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWINHTTP_PROXY_INFO(object): + """A tuple representing a WINHTTP_PROXY_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWKSTA_INFO_100(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_100 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """Indicates platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'Any': + """Minor version number of operating system running on the computer""" + pass + + +class PyWKSTA_INFO_101(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_101 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """Indicates platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def lanroot(self)->'Union[str]': + """Path to the LANMAN directory""" + pass + + +class PyWKSTA_INFO_102(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_102 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """Indicate platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def lanroot(self)->'Union[str]': + """Path to the LANMAN directory""" + pass + + + @property + def logged_on_users(self)->'Any': + """Number of users who are logged on to the local computer""" + pass + + +class PyWKSTA_INFO_302(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_302 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki302_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'Any': + """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" + pass + + + @property + def keep_conn(self)->'Any': + """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" + pass + + + @property + def keep_search(self)->'Any': + """Defines the number of seconds an inactive search will continue.""" + pass + + + @property + def max_cmds(self)->'Any': + """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" + pass + + + @property + def num_work_buf(self)->'Any': + """Specifies the number of internal buffers the computer has.""" + pass + + + @property + def siz_work_buf(self)->'Any': + """Specifies the size, in bytes, of each internal buffer.""" + pass + + + @property + def max_wrk_cache(self)->'Any': + """Specifies the maximum size, in bytes, of an internal cache buffer.""" + pass + + + @property + def siz_error(self)->'Any': + """Specifies the size, in bytes, of an internal error buffer.""" + pass + + + @property + def num_alerts(self)->'Any': + """Specifies the maximum number of clients that can receive alert messages. (This member is not supported under MS-DOS.) The Alerter service registers at least three clients when it begins to run.""" + pass + + + @property + def num_services(self)->'Any': + """Specifies the number of services that can be installed on the computer at any time.""" + pass + + + @property + def errlog_sz(self)->'Any': + """Specifies the maximum size, in kilobytes, of the client's error log file.""" + pass + + + @property + def print_buf_time(self)->'Any': + """Specifies the number of seconds the server waits before closing inactive compatibility-mode print jobs.""" + pass + + + @property + def num_char_buf(self)->'Any': + """Specifies the number of character pipe buffers and device buffers the client can have.""" + pass + + + @property + def siz_char_buf(self)->'Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def wrk_heuristics(self)->'Union[str]': + """Pointer to a Unicode string of flags used to control a client's operation.""" + pass + + + @property + def mailslots(self)->'Any': + """Specifies the maximum number of mailslots allowed.""" + pass + + + @property + def num_dgram_buf(self)->'Any': + """Specifies the number of buffers to allocate for receiving datagrams.""" + pass + + +class PyWKSTA_INFO_402(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_402 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki402_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def keep_conn(self)->'Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def keep_search(self)->'Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def max_cmds(self)->'Any': + """..""" + pass + + + @property + def num_work_buf(self)->'Any': + """Number of users who are logged on to the local computer""" + pass + + + @property + def siz_work_buf(self)->'Any': + """Number of users who are logged on to the local computer""" + pass + + + @property + def max_wrk_cache(self)->'Any': + """..""" + pass + + + @property + def sess_timeout(self)->'Any': + """..""" + pass + + + @property + def siz_error(self)->'Any': + """..""" + pass + + + @property + def num_alerts(self)->'Any': + """..""" + pass + + + @property + def num_services(self)->'Any': + """..""" + pass + + + @property + def errlog_sz(self)->'Any': + """..""" + pass + + + @property + def print_buf_time(self)->'Any': + """..""" + pass + + + @property + def num_char_buf(self)->'Any': + """..""" + pass + + + @property + def siz_char_buf(self)->'Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def mailslots(self)->'Any': + """..""" + pass + + + @property + def num_dgram_buf(self)->'Any': + """..""" + pass + + + @property + def max_threads(self)->'Any': + """Number of threads the computer can dedicate to the network""" + pass + + +class PyWKSTA_INFO_502(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki502_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'Any': + """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" + pass + + + @property + def keep_conn(self)->'Any': + """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" + pass + + + @property + def max_cmds(self)->'Any': + """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" + pass + + + @property + def max_wrk_cache(self)->'Any': + """Indicates the number of seconds the server waits before disconnecting an inactive session.""" + pass + + + @property + def siz_char_buf(self)->'Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def lock_quota(self)->'Any': + """TODO""" + pass + + + @property + def lock_increment(self)->'Any': + """TODO""" + pass + + + @property + def lock_maximum(self)->'Any': + """TODO""" + pass + + + @property + def pipe_increment(self)->'Any': + """TODO""" + pass + + + @property + def pipe_maximum(self)->'Any': + """TODO""" + pass + + + @property + def cache_file_timeout(self)->'Any': + """TODO""" + pass + + + @property + def dormant_file_limit(self)->'Any': + """TODO""" + pass + + + @property + def read_ahead_throughput(self)->'Any': + """TODO""" + pass + + + @property + def num_mailslot_buffers(self)->'Any': + """TODO""" + pass + + + @property + def num_srv_announce_buffers(self)->'Any': + """TODO""" + pass + + + @property + def max_illegal_datagram_events(self)->'Any': + """TODO""" + pass + + + @property + def illegal_datagram_event_reset_frequency(self)->'Any': + """TODO""" + pass + + + @property + def log_election_packets(self)->'Any': + """TODO""" + pass + + + @property + def use_opportunistic_locking(self)->'Any': + """TODO""" + pass + + + @property + def use_unlock_behind(self)->'Any': + """TODO""" + pass + + + @property + def use_close_behind(self)->'Any': + """TODO""" + pass + + + @property + def buf_named_pipes(self)->'Any': + """TODO""" + pass + + + @property + def use_lock_read_unlock(self)->'Any': + """TODO""" + pass + + + @property + def utilize_nt_caching(self)->'Any': + """TODO""" + pass + + + @property + def use_raw_read(self)->'Any': + """TODO""" + pass + + + @property + def use_raw_write(self)->'Any': + """TODO""" + pass + + + @property + def use_write_raw_data(self)->'Any': + """TODO""" + pass + + + @property + def use_encryption(self)->'Any': + """TODO""" + pass + + + @property + def buf_files_deny_write(self)->'Any': + """TODO""" + pass + + + @property + def buf_read_only_files(self)->'Any': + """TODO""" + pass + + + @property + def force_core_create_mode(self)->'Any': + """TODO""" + pass + + + @property + def use_512_byte_max_transfer(self)->'Any': + """TODO""" + pass + + +class PyWKSTA_TRANSPORT_INFO_0(object): + """A dictionary holding the infomation in a Win32 WKSTA_TRANSPORT_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def quality_of_service(self)->'Any': + """Supplies a value that specifies the search order of the transport protocol with respect to other transport protocols. The highest value is searched first.""" + pass + + + @property + def number_of_vcs(self)->'Any': + """Specifies the number of clients communicating with the server using this transport protocol.""" + pass + + + @property + def transport_name(self)->'Union[str]': + """Specifies the device name of the transport protocol.""" + pass + + + @property + def transport_address(self)->'Union[str]': + """Specifies the address of the server on this transport protocol.""" + pass + + + @property + def wan_ish(self)->'Any': + """This member is ignored by the NetWkstaTransportAdd function. For the NetWkstaTransportEnum function, this member indicates that this transport protocol is a WAN transport protocol. This member is set TRUE for NetBIOS/TCIP; it is set FALSE for NetBEUI and NetBIOS/IPX.""" + pass + + +class PyWKSTA_USER_INFO_0(object): + """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def username(self)->'Union[str]': + """Name of user currently logged on to the workstation""" + pass + + +class PyWKSTA_USER_INFO_1(object): + """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def username(self)->'Union[str]': + """Name of user currently logged on to the workstation""" + pass + + + @property + def logon_domain(self)->'Union[str]': + """Returns the domain name of the user account of the user currently logged on to the workstation.""" + pass + + + @property + def oth_domains(self)->'Union[str]': + """Returns the list of other operating system domains browsed by the workstation. The domain names are separated by blanks.""" + pass + + + @property + def logon_server(self)->'Union[str]': + """Returns the name of the computer that authenticated the server.""" + pass + + +class PyWNDCLASS(object): + """A Python object, representing an WNDCLASS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def style(self)->'int': + """""" + pass + + + @property + def cbWndExtra(self)->'int': + """""" + pass + + + @property + def hInstance(self)->'int': + """""" + pass + + + @property + def hIcon(self)->'int': + """""" + pass + + + @property + def hCursor(self)->'int': + """""" + pass + + + @property + def hbrBackground(self)->'int': + """These 3 handled manually in PyWNDCLASS::getattro/setattro. The pymeth below is used as an end tag, so these props will be lost if below it""" + pass + + + @property + def lpszMenuName(self)->'Union[str]': + """""" + pass + + + @property + def lpszClassName(self)->'Union[str]': + """""" + pass + + + @property + def lpfnWndProc(self)->'Any': + """MethodsSetDialogProcSets the WNDCLASS to be for a dialog box. """ + pass + + + def SetDialogProc(self,) -> 'None': + """ + Sets the WNDCLASS to be for a dialog box + +Args: + + + +Returns: + + None + + """ + pass + + +class PyXFORM(object): + """Dict representing an XFORM struct used as a world transformation matrix + +All members are optional, defaulting to 0.0.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def M11(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M12(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M21(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M22(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def Dx(self)->'float': + """Horizontal offset in logical units""" + pass + + + @property + def Dy(self)->'float': + """Vertical offset in logical units""" + pass + + +class Pymmapfile(object): + """Object that provides access to memory-mapped file operations.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def close(self,) -> 'None': + """ + Closes the file mapping handle and releases mapped view + +Args: + + + +Returns: + + None + + """ + pass + + + def find(self,needle:'Any',start:'Any') -> 'Any': + """ + Finds a string in the buffer. + +Args: + + needle(Any):String to be located + start(Any):Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found + +Returns: + + Any:Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found + + + """ + pass + + + def flush(self,offset:'Any'=0,size:'Any'=0) -> 'None': + """ + Flushes memory buffer to disk + +Args: + + offset(Any):Position in buffer at which to flush + size(Any):Number of bytes to flush, 0 to flush remainder of buffer past the offset + +Returns: + + None + + """ + pass + + + def move(self,dest:'Any',src:'Any',count:'Any') -> 'None': + """ + Moves data from one place in buffer to another + +Args: + + dest(Any):Destination position in buffer + src(Any):Source position in buffer + count(Any):Number of bytes to move + +Returns: + + None + + """ + pass + + + def read(self,num_bytes:'Any') -> 'Any': + """ + Returns specified number of bytes from buffer, and advances current position + +Args: + + num_bytes(Any):Number of bytes to read + +Returns: + + Any + + """ + pass + + + def read_byte(self,) -> 'Any': + """ + Reads a single character from current pos + +Args: + + + +Returns: + + Any + + """ + pass + + + def read_line(self,) -> 'Any': + """ + Reads data from current pos up to next EOL. + +Args: + + + +Returns: + + Any + + """ + pass + + + def resize(self,MaximumSize:'Any',FileOffset:'Any'=0,NumberOfBytesToMap:'Any'=0) -> 'None': + """ + Resizes the file mapping and view. + +Args: + + MaximumSize(Any):New size for file mapping. Use a multiple of system page size (see win32api::GetSystemInfo) + FileOffset(Any):Offset into file mapping. Must be multiple of allocation granularity. + NumberOfBytesToMap(Any):New view size. Specify a multiple of system page size.CommentsIf MaximumSize is 0, only the mapped view will be affected.Accepts keyword args. + +Returns: + + None + + """ + pass + + + def seek(self,dist:'Any',how:'Any'=0) -> 'None': + """ + Changes current position + +Args: + + dist(Any):Distance to seek + how(Any):Pos from which to seekhowmeaning0Seek from start of buffer1Seek from current position2Seek backwards from end of buffer + +Returns: + + None + + """ + pass + + + def size(self,) -> 'Any': + """ + Returns size of current view + +Args: + + + +Returns: + + Any + + """ + pass + + + def tell(self,) -> 'Any': + """ + Returns current position in buffer + +Args: + + + +Returns: + + Any + + """ + pass + + + def write(self,data:'Any') -> 'None': + """ + Places data at current pos in buffer. + +Args: + + data(Any):Data to be written + +Returns: + + None + + """ + pass + + + def write_byte(self,char:'Any') -> 'None': + """ + Writes a single character of data + +Args: + + char(Any):Single byte to be placed in buffer + +Returns: + + None + + """ + pass + + +class RASDIALEXTENSIONS(object): + """An object that describes a Win32 RASDIALEXTENSIONS structure + +TRUE*/)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwfOptions(self)->'int': + """(fOptions may also be used)""" + pass + + + @property + def hwndParent(self)->'int': + """""" + pass + + + @property + def reserved(self)->'int': + """""" + pass + + + @property + def reserved1(self)->'int': + """""" + pass + + + @property + def RasEapInfo(self)->'Any': + """""" + pass + + +class RASDIALPARAMS(object): + """A tuple that describes a Win32 RASDIALPARAMS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SC_ACTION(object): + """Tuple of 2 ints (Type,Delay) used to represent an SC_ACTION structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Type(self)->'Any': + """One of SC_ACTION_NONE, SC_ACTION_REBOOT, SC_ACTION_RESTART, SC_ACTION_RUN_COMMAND""" + pass + + + @property + def Delay(self)->'Any': + """Time delay before specified action is taken (in milliseconds)""" + pass + + +class SERVICE_FAILURE_ACTIONS(object): + """A dictionary representing a SERVICE_FAILURE_ACTIONS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ResetPeriod(self)->'Any': + """Indicates how many seconds to wait to reset the failure count, can be INFINITE""" + pass + + + @property + def RebootMsg(self)->'Union[Any, str]': + """Message displayed when reboot action is taken""" + pass + + + @property + def Command(self)->'Union[Any, str]': + """Command line to execute for SC_ACTION_RUN_COMMAND""" + pass + + + @property + def Actions(self)->'Any': + """A tuple of SC_ACTION tuples""" + pass + + +class SERVICE_STATUS(object): + """A Win32 service status object is represented by a tuple:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TRACKMOUSEEVENT(object): + """A tuple of (dwFlags, hwndTrack, dwHoverTime)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class ULARGE_INTEGER(object): + """A Python object used wherever a COM ULARGE_INTEGER is used.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class WIN32_FIND_DATA(object): + """A tuple representing a WIN32_FIND_DATA structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class com_error(object): + """An exception raised when a COM exception occurs.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class connection(object): + """An object representing an ODBC connection""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def setautocommit(self,c:'Any') -> 'None': + """ + Sets the autocommit mode. + +Args: + + c(Any):The boolean autocommit mode. + +Returns: + + None + + """ + pass + + + def commit(self,) -> 'None': + """ + Commits a transaction. + +Args: + + + +Returns: + + None + + """ + pass + + + def rollback(self,) -> 'None': + """ + Rollsback a transaction. + +Args: + + + +Returns: + + None + + """ + pass + + + def cursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def close(self,) -> 'None': + """ + Closes the connection. + +Args: + + + +Returns: + + None + + """ + pass + + +class cursor(object): + """An object representing an ODBC cursor.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def close(self,) -> 'None': + """ + Closes the cursor + +Args: + + + +Returns: + + None + + """ + pass + + + def execute(self,sql:'str',arg:'Any') -> 'Any': + """ + Execute some SQL + +Args: + + sql(str):The SQL to execute + arg(Any):Input variables. + +Returns: + + Any + + """ + pass + + + def fetchone(self,) -> 'Any': + """ + Fetch one row of data + +Args: + + + +Returns: + + Any + + """ + pass + + + def fetchmany(self,) -> 'List[Any]': + """ + Fetch many rows of data + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def fetchall(self,) -> 'List[Any]': + """ + Fetch all rows of data + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def setinputsizes(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def setoutputsize(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class error(object): + """An exception raised when a win32 error occurs""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class COMPONENT(object): + """A dictionary containing data to fill a COMPPOS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ID(self)->'Any': + """Id of component, ignored when adding a new component""" + pass + + + @property + def ComponentType(self)->'Any': + """One of shellcon.COMP_TYPE_* values""" + pass + + + @property + def Checked(self)->'Any': + """True indicates item is currently displayed""" + pass + + + @property + def fDirty(self)->'Any': + """Indicates if unsaved changes exist""" + pass + + + @property + def NoScroll(self)->'Any': + """True disables scrolling""" + pass + + + @property + def Pos(self)->'Any': + """COMPPOS dictionary determining window size and placement""" + pass + + + @property + def FriendlyName(self)->'Any': + """String of at most MAX_PATH-1 characters, truncated if longer""" + pass + + + @property + def Source(self)->'Any': + """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" + pass + + + @property + def SubscribedURL(self)->'Any': + """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" + pass + + + @property + def CurItemState(self)->'Any': + """One of shellcon.IS_* flags""" + pass + + + @property + def Original(self)->'Any': + """COMPSTATEINFO dictionary""" + pass + + + @property + def Restored(self)->'Any': + """COMPSTATEINFO dictionary""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class COMPONENTSOPT(object): + """A dictionary containing data to fill a COMPONENTSOPT struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def EnableComponents(self)->'Any': + """True if components are enabled""" + pass + + + @property + def ActiveDesktop(self)->'Any': + """True if Active Desktop is enabled""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class COMPPOS(object): + """A dictionary containing data to fill a COMPPOS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'Any': + """""" + pass + + + @property + def Top(self)->'Any': + """""" + pass + + + @property + def Width(self)->'Any': + """""" + pass + + + @property + def Height(self)->'Any': + """""" + pass + + + @property + def Index(self)->'Any': + """""" + pass + + + @property + def CanResize(self)->'Any': + """""" + pass + + + @property + def CanResizeX(self)->'Any': + """""" + pass + + + @property + def CanResizeY(self)->'Any': + """""" + pass + + + @property + def PreferredLeftPercent(self)->'Any': + """""" + pass + + + @property + def PreferredTopPercent(self)->'Any': + """""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class COMPSTATEINFO(object): + """A dictionary containing data to fill a COMPSTATEINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'Any': + """Specified as screen coordinates""" + pass + + + @property + def Top(self)->'Any': + """Specified as screen coordinates""" + pass + + + @property + def Width(self)->'Any': + """Measured in pixels""" + pass + + + @property + def Height(self)->'Any': + """Measured in pixels""" + pass + + + @property + def dwItemState(self)->'Any': + """One of IS_NORMAL, IS_FULLSCREEN IS_SPLIT""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class DEFCONTENTMENU(object): + """A tuple representing a DEFCONTEXTMENU structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class ELEMDESC(object): + """An ELEMDESC is respresented as a tuple of""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class EXP_DARWIN_LINK(object): + """Dictionary containing information for a EXP_DARWIN_LINK struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def DarwinID(self)->'Any': + """The Windows Installer id for the link""" + pass + + + @property + def wDarwinID(self)->'Any': + """The installer id as Unicode""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class EXP_SPECIAL_FOLDER(object): + """Dictionary containing information for a EXP_SPECIAL_FOLDER struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def idSpecialFolder(self)->'Any': + """The special folder id of the target (shellcon.CSIDL_*)""" + pass + + + @property + def Offset(self)->'Any': + """Offset into the link's PIDL""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class EXP_SZ_LINK(object): + """Dictionary containing information for an EXP_SZ_LINK or EXP_SZ_ICON struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def Target(self)->'Any': + """The link's target or icon location""" + pass + + + @property + def wTarget(self)->'Any': + """The target in Unicode form""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class FUNCDESC(object): + """A FUNCDESC object represents a COM TYPEATTR structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def memid(self)->'int': + """""" + pass + + + @property + def scodeArray(self)->'Tuple[Any, ...]': + """""" + pass + + + @property + def args(self)->'Tuple[Any, ...]': + """""" + pass + + + @property + def funckind(self)->'Any': + """""" + pass + + + @property + def invkind(self)->'Any': + """""" + pass + + + @property + def callconv(self)->'Any': + """""" + pass + + + @property + def cParamsOpt(self)->'Any': + """""" + pass + + + @property + def oVft(self)->'Any': + """""" + pass + + + @property + def rettype(self)->'Any': + """""" + pass + + + @property + def wFuncFlags(self)->'Any': + """""" + pass + + +class IDLDESC(object): + """An IDLDESC is respresented as""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class MAPIINIT_0(object): + """A MAPIINIT_0 is represented as a tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class NT_CONSOLE_PROPS(object): + """Dictionary containing information for a NT_CONSOLE_PROPS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def FillAttribute(self)->'Any': + """Character attributes for fill operations""" + pass + + + @property + def PopupFillAttribute(self)->'Any': + """Fill attributes for popups""" + pass + + + @property + def ScreenBufferSize(self)->'Tuple[Any, Any]': + """Size of console screen buffer, in character cells""" + pass + + + @property + def WindowSize(self)->'Tuple[Any, Any]': + """Size of console window in character cells""" + pass + + + @property + def WindowOrigin(self)->'Tuple[Any, Any]': + """Window position, in screen coordinates""" + pass + + + @property + def nFont(self)->'Any': + """Number of font to be displayed. See win32console::GetNumberOfConsoleFonts""" + pass + + + @property + def InputBufferSize(self)->'Any': + """Size of console's input buffer""" + pass + + + @property + def FontSize(self)->'Tuple[Any, Any]': + """Size of font""" + pass + + + @property + def FontFamily(self)->'Any': + """Font family""" + pass + + + @property + def FontWeight(self)->'Any': + """Controls thickness of displayed font""" + pass + + + @property + def FaceName(self)->'Any': + """Name of font face, 31 characters at most""" + pass + + + @property + def CursorSize(self)->'Any': + """Relative size of cursor, expressed as percent of character size""" + pass + + + @property + def FullScreen(self)->'Any': + """Causes console to run in full screen mode""" + pass + + + @property + def QuickEdit(self)->'Any': + """""" + pass + + + @property + def InsertMode(self)->'Any': + """""" + pass + + + @property + def AutoPosition(self)->'Any': + """Lets system determine window placement""" + pass + + + @property + def HistoryBufferSize(self)->'Any': + """Size of command line history buffer""" + pass + + + @property + def NumberOfHistoryBuffers(self)->'Any': + """""" + pass + + + @property + def HistoryNoDup(self)->'Any': + """""" + pass + + + @property + def ColorTable(self)->'Any': + """Tuple of 16 ints containing console's color attributes""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class NT_FE_CONSOLE_PROPS(object): + """Dictionary containing information for a NT_FE_CONSOLE_PROPS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def CodePage(self)->'Any': + """The codepage to be used for console text""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class PROPSPEC(object): + """Identifies a property. Can be either an int property id, or a str/unicode property name.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyADSVALUE(object): + """A tuple:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyADS_ATTR_INFO(object): + """Represents a ADS_ATTR_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def AttrName(self)->'Any': + """The name""" + pass + + + @property + def ControlCode(self)->'int': + """""" + pass + + + @property + def ADsType(self)->'int': + """""" + pass + + + @property + def Values(self)->'List[Any]': + """""" + pass + + +class PyADS_OBJECT_INFO(object): + """Represents a ADS_OBJECT_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def RDN(self)->'Any': + """The name""" + pass + + + @property + def ObjectDN(self)->'Any': + """""" + pass + + + @property + def ParentDN(self)->'Any': + """""" + pass + + + @property + def ClassName(self)->'Any': + """""" + pass + + +class PyADS_SEARCHPREF_INFO(object): + """A tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyBIND_OPTS(object): + """Dictionary representation of a BIND_OPTS struct + +May eventually be extended to include BIND_OPTS2 members""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'Any': + """Value from BIND_FLAGS enum: BIND_MAYBOTHERUSER, BIND_JUSTTESTEXISTENCE or 0""" + pass + + + @property + def Mode(self)->'Any': + """Combination of storagecon.STGM_* values""" + pass + + + @property + def TickCountDeadline(self)->'Any': + """Operation timeout in milliseconds""" + pass + + + @property + def cbStruct(self)->'Any': + """Size of struct, ignored on input""" + pass + + +class PyCMINVOKECOMMANDINFO(object): + """A tuple of parameters to be converted to a CMINVOKECOMMANDINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDSBCAPS(object): + """A Python object, representing a DSBCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Flags that specify buffer-object capabilities.FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" + pass + + + @property + def nChannels(self)->'int': + """Size of the buffer, in bytes.""" + pass + + + @property + def dwUnlockTransferRate(self)->'int': + """Specifies the rate, in kilobytes per second, at which data is transferred to the buffer memory when IDirectSoundBuffer::Unlock is called. High-performance applications can use this value to determine the time required for IDirectSoundBuffer::Unlock to execute. For software buffers located in system memory, the rate will be very high because no processing is required. For hardware buffers, the rate might be slower because the buffer might have to be downloaded to the sound card, which might have a limited transfer rate.""" + pass + + + @property + def nAvgBytesPerSec(self)->'int': + """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle. Sentinel""" + pass + + +class PyDSBUFFERDESC(object): + """A Python object, representing a DSBUFFERDESC structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Specify one or more of the following:FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" + pass + + + @property + def dwBufferBytes(self)->'int': + """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" + pass + + + @property + def lpwfxFormat(self)->'Any': + """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" + pass + + +class PyDSCAPS(object): + """A Python object, representing a DSCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be one or more of the following:FlagDescriptionDSCAPS_PRIMARYMONOThe device supports monophonic primary buffers.DSCAPS_PRIMARYSTEREOThe device supports stereo primary buffers.DSCAPS_PRIMARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_PRIMARY16BITThe device supports primary sound buffers with 16-bit samples.DSCAPS_CONTINUOUSRATEThe device supports all sample rates between the dwMinSecondarySampleRate and dwMaxSecondarySampleRate member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency.DSCAPS_EMULDRIVERThe device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected.DSCAPS_CERTIFIEDThis driver has been tested and certified by Microsoft.DSCAPS_SECONDARYMONOThe device supports hardware-mixed monophonic secondary buffers.DSCAPS_SECONDARYSTEREOThe device supports hardware-mixed stereo secondary buffers.DSCAPS_SECONDARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_SECONDARY16BITThe device supports hardware-mixed secondary sound buffers with 16-bit samples.""" + pass + + + @property + def dwMinSecondarySampleRate(self)->'int': + """Minimum sample rate supported by this device's hardware secondary sound buffers.""" + pass + + + @property + def dwMaxSecondarySampleRate(self)->'int': + """Maximum sample rate supported by this device's hardware secondary sound buffers.""" + pass + + + @property + def dwPrimaryBuffers(self)->'int': + """Number of primary buffers supported. This value will always be 1.""" + pass + + + @property + def dwMaxHwMixingAllBuffers(self)->'int': + """Specifies the total number of buffers that can be mixed in hardware. This member can be less than the sum of dwMaxHwMixingStaticBuffers and dwMaxHwMixingStreamingBuffers. Resource tradeoffs frequently occur.""" + pass + + + @property + def dwMaxHwMixingStaticBuffers(self)->'int': + """Specifies the maximum number of static sound buffers.""" + pass + + + @property + def dwMaxHwMixingStreamingBuffers(self)->'int': + """Specifies the maximum number of streaming sound buffers.""" + pass + + + @property + def dwFreeHwMixingAllBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwFreeHwMixingStaticBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwFreeHwMixingStreamingBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwMaxHw3DAllBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwMaxHw3DStaticBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwMaxHw3DStreamingBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DAllBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DStaticBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DStreamingBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwTotalHwMemBytes(self)->'int': + """Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.""" + pass + + + @property + def dwFreeHwMemBytes(self)->'int': + """Size, in bytes, of the free memory on the sound card.""" + pass + + + @property + def dwMaxContigFreeHwMemBytes(self)->'int': + """Size, in bytes, of the largest contiguous block of free memory on the sound card.""" + pass + + + @property + def dwUnlockTransferRateHwBuffers(self)->'int': + """Description of the rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the IDirectSoundBuffer::Update method.""" + pass + + + @property + def dwPlayCpuOverheadSwBuffers(self)->'int': + """Description of the processing overhead, as a percentage of the central processing unit, needed to mix software buffers (those located in main system memory). This varies according to the bus type, the processor type, and the clock speed. The unlock transfer rate for software buffers is 0 because the data need not be transferred anywhere. Similarly, the play processing overhead for hardware buffers is 0 because the mixing is done by the sound device.""" + pass + + +class PyDSCBCAPS(object): + """A Python object, representing a DSCBCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be 0 or DSCBCAPS_EMULDRIVER (indicates that no DirectSound Device is available and standard wave audio functions are being used).""" + pass + + + @property + def dwBufferBytes(self)->'int': + """The size, in bytes, of the capture buffer.""" + pass + + +class PyDSCBUFFERDESC(object): + """A Python object, representing a DSCBUFFERDESC structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Can be zero or the following flag:FlagDescriptionDSCBCAPS_WAVEMAPPEDThe Win32 wave mapper will be used for formats not supported by the device.""" + pass + + + @property + def dwBufferBytes(self)->'int': + """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" + pass + + + @property + def lpwfxFormat(self)->'Any': + """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" + pass + + +class PyDSCCAPS(object): + """A Python object, representing a DSCCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be zero or the following flag:FlagDescriptionDSCCAPS_EMULDRIVERIndicates that no DirectSound Device is available and standard wave audio functions are being used.""" + pass + + + @property + def dwFormats(self)->'int': + """Bitset of supported WAVE_FORMAT formats.""" + pass + + + @property + def dwChannels(self)->'int': + """Number of channels supported by the device.""" + pass + + +class PyDSOP_FILTER_FLAGS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uplevel(self)->'Any': + """""" + pass + + + @property + def downlevel(self)->'Any': + """""" + pass + + +class PyDSOP_SCOPE_INIT_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def scope(self)->'Any': + """""" + pass + + + @property + def hr(self)->'Any': + """""" + pass + + + @property + def dcName(self)->'str': + """""" + pass + + + @property + def filterFlags(self)->'Any': + """""" + pass + + +class PyDSOP_SCOPE_INIT_INFOs(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDSOP_UPLEVEL_FILTER_FLAGS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bothModes(self)->'Any': + """""" + pass + + + @property + def mixedModeOnly(self)->'Any': + """""" + pass + + + @property + def nativeModeOnly(self)->'Any': + """""" + pass + + +class PyFORMATETC(object): + """Tuple representing a FORMATETC struct describing an OLE data format""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyGFileOperationProgressSink(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def StartOperations(self,) -> 'None': + """ + Called as operation begins, before any modifications are done + +Args: + + + +Returns: + + None + + """ + pass + + + def FinishOperations(self,Result:'Any') -> 'None': + """ + Called after all actions have been performed + +Args: + + Result(Any):HRESULT of last operation performed + +Returns: + + None + + """ + pass + + + def PreRenameItem(self,Flags:'Any',Item:'Any',NewName:'Any') -> 'None': + """ + Called before each file rename + +Args: + + Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(Any):Shell interface of the copied item + NewName(Any):New display name of the item + +Returns: + + None + + """ + pass + + + def PostRenameItem(self,Flags:'Any',Item:'Any',NewName:'Any',hrRename:'Any',NewlyCreated:'Any') -> 'None': + """ + Called after each file rename + +Args: + + Flags(Any):Flags specifying rename behaviour, combination of shellcon.TSF_* flags + Item(Any):Shell interface of item before rename + NewName(Any):The new name of the item, may be mangled to resolve filename conflicts + hrRename(Any):HRESULT of the rename operation + NewlyCreated(Any):Shell interface of the item after rename + +Returns: + + None + + """ + pass + + + def PreMoveItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': + """ + Called before each move operation + +Args: + + Flags(Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags + Item(Any):The item to be moved + DestinationFolder(Any):The folder into which it will be moved + NewName(Any):Name of moved item, may be None if not to be changed + +Returns: + + None + + """ + pass + + + def PostMoveItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any',hrMove:'Any',NewlyCreated:'Any') -> 'None': + """ + Called after each move operation + +Args: + + Flags(Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags + Item(Any):Interface of the item before it was moved + DestinationFolder(Any):The folder into which it was moved + NewName(Any):Name of item in its new location, may be mangled in case of conflict + hrMove(Any):HRESULT of the move operation + NewlyCreated(Any):Shell interface of the item in its new location + +Returns: + + None + + """ + pass + + + def PreCopyItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': + """ + Called before each copy operation + +Args: + + Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(Any):The item to be copied + DestinationFolder(Any):Folder into which it will be copied + NewName(Any):Name to be given to the copy, will be None if keeping original name + +Returns: + + None + + """ + pass + + + def PostCopyItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any',hrCopy:'Any',NewlyCreated:'Any') -> 'None': + """ + Called after each copy operation + +Args: + + Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(Any):The original item + DestinationFolder(Any):Folder into which it was copied + NewName(Any):Name of item after copy, may be mangled in case of name conflict + hrCopy(Any):HRESULT of the copy operation + NewlyCreated(Any):Shell interface of the copy + +Returns: + + None + + """ + pass + + + def PreDeleteItem(self,Flags:'Any',Item:'Any') -> 'None': + """ + Called before each delete operation + +Args: + + Flags(Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags + Item(Any):Item to be deleted + +Returns: + + None + + """ + pass + + + def PostDeleteItem(self,Flags:'Any',Item:'Any',hrDelete:'Any',NewlyCreated:'Any') -> 'None': + """ + Called after each delete operation + +Args: + + Flags(Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags + Item(Any):Item that was deleted + hrDelete(Any):HRESULT of the delete operation + NewlyCreated(Any):Item in the recycle bin, or None if deleted without recycling + +Returns: + + None + + """ + pass + + + def PreNewItem(self,Flags:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': + """ + Called before each new file is created + +Args: + + Flags(Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags + DestinationFolder(Any):Folder where item will be created + NewName(Any):Name of item to be created + +Returns: + + None + + """ + pass + + + def PostNewItem(self,Flags:'Any',DestinationFolder:'Any',NewName:'Any',TemplateName:'Any',FileAttributes:'Any',hrNew:'Any',NewItem:'Any') -> 'None': + """ + Called after each new file is created + +Args: + + Flags(Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags + DestinationFolder(Any):Folder in which item was created + NewName(Any):Name of created item, may be mangled if file name conflicts occurred + TemplateName(Any):Template file used to initialize new item + FileAttributes(Any):File attributes of new item + hrNew(Any):HRESULT of the create operation + NewItem(Any):Shell interface of created item + +Returns: + + None + + """ + pass + + + def UpdateProgress(self,WorkTotal:'Any',WorkSoFar:'Any') -> 'None': + """ + Gives an estimate of total work completed + +Args: + + WorkTotal(Any):Undimensioned number representing total amount of work + WorkSoFar(Any):Undimensioned number representing amount already completed + +Returns: + + None + + """ + pass + + + def ResetTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + + def PauseTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + + def ResumeTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + +class PyGSecurityInformation(object): + """Gateway wrapper for the implement-only ISecurityInformation interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObjectInformation(self,) -> 'Any': + """ + Returns information identifying the object + +whose security is to be editted, and which pages are to appear in the property sheet + +Args: + + + +Returns: + + Any:PyGSecurityInformation.GetObjectInformation +SI_OBJECT_INFO = GetObjectInformation()Returns information identifying the object + +whose security is to be editted, and which pages are to appear in the property sheet +Comments + +Due to peculiarities of the underlying system calls, this method will only be called once, + +and subsequent calls will return the information obtained on the first call. As a consequence, a new + +instance of the interface will need to be created for each object whose security is to be displayed. +Return ValueYour implementation of this method should return a SI_OBJECT_INFO tuple + + + """ + pass + + + def GetSecurity(self,RequestedInformation:'Any',Default:'Any') -> 'PySECURITY_DESCRIPTOR': + """ + Retrieves the object's current security + +settings + +Args: + + RequestedInformation(Any):Combination of SECURITY_INFORMATION flags indicating which components of the object's security descriptor you should return + Default(Any):If true, return a default security descriptor rather than current security. (invoked when 'Reset' button is clicked) + +Returns: + + PySECURITY_DESCRIPTOR + + """ + pass + + + def SetSecurity(self,SecurityInformation:'Any',SecurityDescriptor:'PySECURITY_DESCRIPTOR') -> 'None': + """ + Applies the modified security to the object + +Args: + + SecurityInformation(Any):SECURITY_INFORMATION flags specifying which types of security information are to be applied + SecurityDescriptor(PySECURITY_DESCRIPTOR):The security information to be applied to the objectReturn ValueAny returned value is ignored + +Returns: + + None:The security information to be applied to the objectReturn ValueAny returned value is ignored + + + """ + pass + + + def GetAccessRights(self,ObjectType:'PyIID',Flags:'Any') -> 'Tuple[Any, Any]': + """ + Retrieves permission that can be set + +Args: + + ObjectType(PyIID):GUID representing type of object, may be None + Flags(Any):Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, and a zero-based index indicating which of them is the default + +Returns: + + Tuple[Any, Any]:Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, + +SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, + +and a zero-based index indicating which of them is the default + + + """ + pass + + + def MapGeneric(self,ObjectType:'PyIID',AceFlags:'Any',Mask:'Any') -> 'Any': + """ + Translates generic access rights to specific equivalents + +Args: + + ObjectType(PyIID):Type of object that permissions apply to, None or GUID_NULL indicates object itself + AceFlags(Any):Flags from the ACE that contains the permissions + Mask(Any):Bitmask containing access rightsCommentsSee win32security::MapGenericMaskReturn ValueThis method should return the input bitmask will all generic rights mapped to specific rights + +Returns: + + Any:Bitmask containing access rightsComments + +See win32security::MapGenericMask +Return ValueThis method should return the input bitmask will all generic rights mapped to specific rights + + + """ + pass + + + def GetInheritTypes(self,) -> 'Tuple[Any, ...]': + """ + Requests types of inheritance that your + +implementation supports + +Args: + + + +Returns: + + Tuple[Any, ...]:PyGSecurityInformation.GetInheritTypes + +(SI_INHERIT_TYPE,...) = GetInheritTypes()Requests types of inheritance that your + +implementation supports +Return ValueReturns a sequence of SI_INHERIT_TYPE tuples + + + """ + pass + + + def PropertySheetPageCallback(self,hwnd:'Any',Msg:'Any',Page:'Any') -> 'None': + """ + Called by each page as it is created and destroyed + +Args: + + hwnd(Any):Handle to the window for the page + Msg(Any):Flag indicating type of event, one of PSPCB_CREATE,PSPCB_RELEASE,PSPCB_SI_INITDIALOG + Page(Any):SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored + +Returns: + + None:SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored + + + """ + pass + + +class PyIADesktopP2(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def UpdateAllDesktopSubscriptions(self,) -> 'None': + """ + Updates webpage subscriptions on the desktop + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIADs(object): + """An object representing the IADs interface. + +In most cases you can achieve the same result via IDispatch - however, this + +interface allows you get get and set properties without the IDispatch + +overhead.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ADsPath(self)->'str': + """""" + pass + + + @property + def AdsPath(self)->'str': + """Synonym for ADsPath""" + pass + + + @property + def Class(self)->'str': + """""" + pass + + + @property + def GUID(self)->'str': + """Like the IADs method, this returns a string rather than a GUID object.""" + pass + + + @property + def Name(self)->'str': + """""" + pass + + + @property + def Parent(self)->'str': + """""" + pass + + + @property + def Schema(self)->'str': + """""" + pass + + + def GetInfo(self,) -> 'None': + """ + Description of GetInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetInfo(self,) -> 'None': + """ + Description of SetInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def Get(self,prop:'str') -> 'Any': + """ + Description of Get. + +Args: + + prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. + +Returns: + + Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + +may be an array, or any types supported by COM variant. + + + """ + pass + + + def Put(self,_property:'str',val:'Any') -> 'None': + """ + Description of Put. + +Args: + + _property(str):The property name to set + val(Any):The value to set. + +Returns: + + None + + """ + pass + + + def get(self,prop:'str') -> 'Any': + """ + Description of Get. + +Args: + + prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. + +Returns: + + Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + +may be an array, or any types supported by COM variant. + + + """ + pass + + + def put(self,_property:'str',val:'Any') -> 'None': + """ + Description of Put. + +Args: + + _property(str):The property name to set + val(Any):The value to set. + +Returns: + + None + + """ + pass + + +class PyIADsContainer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObject(self,_class:'str',relativeName:'str') -> 'Any': + """ + None + +Args: + + _class(str):Specifies the name of the object class as known in the underlying directory and identical to the one retrieved through the get_Class property method. If the class name is None, the provider returns the first item found in the container. + relativeName(str):Specifies the name of the object as known in the underlying directory and identical to the one retrieved through the get_Name property method. + +Returns: + + Any + + """ + pass + + + def get_Count(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def get_Filter(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Filter(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_Hints(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Hints(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + +class PyIADsUser(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def get_AccountDisabled(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_AccountDisabled(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_AccountExpirationDate(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_AccountExpirationDate(self,val:'PyTime') -> 'None': + """ + None + +Args: + + val(PyTime): + +Returns: + + None + + """ + pass + + + def get_BadLoginAddress(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def get_BadLoginCount(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def get_Department(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Department(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_Description(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Description(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_Division(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Division(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_EmailAddress(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_EmailAddress(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_EmployeeID(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_EmployeeID(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_FirstName(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_FirstName(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_FullName(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_FullName(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_HomeDirectory(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_HomeDirectory(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_HomePage(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_HomePage(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_LoginScript(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_LoginScript(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def SetPassword(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def ChangePassword(self,oldval:'Any',newval:'Any') -> 'None': + """ + None + +Args: + + oldval(Any): + newval(Any): + +Returns: + + None + + """ + pass + + +class PyIActiveDesktop(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ApplyChanges(self,Flags:'Any') -> 'None': + """ + Applies changes to ActiveDesktop settings and persists them to the registry. + +Args: + + Flags(Any):Combination of shellcon.AD_APPLY_* flags + +Returns: + + None + + """ + pass + + + def GetWallpaper(self,cchWallpaper:'Any',Reserved:'Any'=0) -> 'Any': + """ + Returns the current wallpaper + +Args: + + cchWallpaper(Any):Number of characters to allocate for buffer + Reserved(Any):Use 0 if passed in + +Returns: + + Any + + """ + pass + + + def SetWallpaper(self,Wallpaper:'Any',Reserved:'Any'=0) -> 'None': + """ + Sets the desktop wallpaper + +Args: + + Wallpaper(Any):File to be used as new wallpaper + Reserved(Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetWallpaperOptions(self,Reserved:'Any'=0) -> 'Any': + """ + Returns wallpaper style + +Args: + + Reserved(Any):Use 0 if passed inReturn ValueReturns one of the WPSTYLE_* values + +Returns: + + Any:Use 0 if passed in +Return ValueReturns one of the WPSTYLE_* values + + + """ + pass + + + def SetWallpaperOptions(self,Style:'Any',Reserved:'Any'=0) -> 'None': + """ + Sets wallpaper style + +Args: + + Style(Any):The wallpaper style, one of the WPSTYLE_* constants + Reserved(Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetPattern(self,cchPattern:'Any'=1024,Reserved:'Any'=0) -> 'None': + """ + Returns the wallpaper pattern + +Args: + + cchPattern(Any):Number of characters to allocate for buffer + Reserved(Any):Use 0 if passed inReturn ValueReturns a unicode string containing decimal values representing the pattern + +Returns: + + None:Use 0 if passed in +Return ValueReturns a unicode string containing decimal values representing the pattern + + + """ + pass + + + def SetPattern(self,Pattern:'Any',Reserved:'Any'=0) -> 'None': + """ + Sets the wallpaper pattern + +Args: + + Pattern(Any):String of decimal numbers representing a picture + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetDesktopItemOptions(self,) -> 'Any': + """ + Returns options for Active Desktop. + +Args: + + + +Returns: + + Any:PyIActiveDesktop.GetDesktopItemOptions + +dict = GetDesktopItemOptions()Returns options for Active Desktop. +Return ValueReturns a COMPONENTSOPT dictionary + + + """ + pass + + + def SetDesktopItemOptions(self,comp:'Any',Reserved:'Any'=0) -> 'None': + """ + Sets Active Desktop options + +Args: + + comp(Any):COMPONENTSOPT dictionary + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddDesktopItem(self,comp:'Any',Reserved:'Any'=0) -> 'None': + """ + Creates a new item to display on the desktop + +Args: + + comp(Any):COMPONENT dictionary + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddDesktopItemWithUI(self,hwnd:'int',comp:'Any',Flags:'Any') -> 'None': + """ + Adds a desktop item, allowing user interaction + +Args: + + hwnd(int):Handle to parent window + comp(Any):COMPONENT dictionary + Flags(Any):One of shellcon.DTI_ADDUI_* flags + +Returns: + + None + + """ + pass + + + def ModifyDesktopItem(self,comp:'Any',Flags:'Any') -> 'None': + """ + Changes parameters for a desktop item + +Args: + + comp(Any):COMPONENT dictionary + Flags(Any):Combination of shellcon.COMP_ELEM_* flags + +Returns: + + None + + """ + pass + + + def RemoveDesktopItem(self,comp:'Any',Reserved:'Any'=0) -> 'None': + """ + Removes an item from the Active Desktop + +Args: + + comp(Any):COMPONENT dictionary specifying which component to remove + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetDesktopItemCount(self,) -> 'None': + """ + Returns number of defined desktop items. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDesktopItem(self,Component:'Any',Reserved:'Any'=0) -> 'Any': + """ + Returns desktop item parameters by index + +Args: + + Component(Any):The zero-based index of the component to get + Reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary describing the item + +Returns: + + Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary describing the item + + + """ + pass + + + def GetDesktopItemByID(self,ID:'Any',reserved:'Any'=0) -> 'Any': + """ + Returns desktop item parameters by Id + +Args: + + ID(Any):The Id of the desktop item + reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary + +Returns: + + Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary + + + """ + pass + + + def GenerateDesktopItemHtml(self,FileName:'Any',comp:'Any',Reserved:'Any'=0) -> 'None': + """ + Creates an HTML page for the desktop item + +Args: + + FileName(Any):Name of file to be created + comp(Any):COMPONENT dictionary specifying the desktop item + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddUrl(self,hwnd:'int',Source:'Any',comp:'Any',Flags:'Any') -> 'None': + """ + Adds a web page to desktop, allowing user interaction + +Args: + + hwnd(int):Parent windows for any user interactive + Source(Any):Source URL + comp(Any):COMPONENT dictionary + Flags(Any):ADDURL_SILENT, or 0 + +Returns: + + None + + """ + pass + + + def GetDesktopItemBySource(self,Source:'Any',Reserved:'Any'=0) -> 'Any': + """ + Returns desktop item parameters by URL + +Args: + + Source(Any):The URL address of the item to retrieve + Reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary + +Returns: + + Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary + + + """ + pass + + +class PyIActiveDesktopP(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSafeMode(self,Flags:'Any') -> 'None': + """ + Changes Active Desktop to safe mode + +Args: + + Flags(Any):One of shellcon.SSM_* flags + +Returns: + + None + + """ + pass + + +class PyIActiveScriptDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetScriptTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'Any') -> 'Tuple[Any, ...]': + """ + Returns the text attributes for an arbitrary block + +of script text. + +Args: + + pstrCode(str):The script block text. + pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + dwFlags(Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument.CommentsSmart hosts use this call to delegate GetText calls made on their axscript::PyIDebugDocumentText + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def GetScriptletTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'Any') -> 'None': + """ + Description of GetScriptletTextAttributes. + +Args: + + pstrCode(str):The script block text. + pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + dwFlags(Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + +Returns: + + None + + """ + pass + + + def EnumCodeContextsOfPosition(self,dwSourceContext:'Any',uCharacterOffset:'Any',uNumChars:'Any') -> 'None': + """ + Description of EnumCodeContextsOfPosition. + +Args: + + dwSourceContext(Any):Description for dwSourceContext + uCharacterOffset(Any):Description for uCharacterOffset + uNumChars(Any):Description for uNumChars + +Returns: + + None + + """ + pass + + +class PyIActiveScriptError(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetExceptionInfo(self,) -> 'None': + """ + Description of GetExceptionInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSourcePosition(self,) -> 'None': + """ + Description of GetSourcePosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSourceLineText(self,) -> 'None': + """ + Description of GetSourceLineText. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIActiveScriptErrorDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContext(self,) -> 'None': + """ + Description of GetDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStackFrame(self,) -> 'None': + """ + Description of GetStackFrame. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIActiveScriptParseProcedure(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseProcedureText(self,pstrCode:'Any',pstrFormalParams:'Any',pstrProcedureName:'Any',pstrItemName:'Any',punkContext:'Any',pstrDelimiter:'Any',dwSourceContextCookie:'Any',ulStartingLineNumber:'Any',dwFlags:'Any') -> 'None': + """ + Description of ParseProcedureText. + +Args: + + pstrCode(Any):Description for pstrCode + pstrFormalParams(Any):Description for pstrFormalParams + pstrProcedureName(Any):Description for pstrProcedureName + pstrItemName(Any):Description for pstrItemName + punkContext(Any):Description for punkContext + pstrDelimiter(Any):Description for pstrDelimiter + dwSourceContextCookie(Any):Description for dwSourceContextCookie + ulStartingLineNumber(Any):Description for ulStartingLineNumber + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + +class PyIActiveScriptSite(object): + """An object providing the IActiveScriptSite interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLCID(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemInfo(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDocVersionString(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnStateChange(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnEnterScript(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnLeaveScript(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnScriptError(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnScriptTerminate(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIActiveScriptSiteDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContextFromPosition(self,dwSourceContext:'Any',uCharacterOffset:'Any',uNumChars:'Any') -> 'None': + """ + Description of GetDocumentContextFromPosition. + +Args: + + dwSourceContext(Any):Description for dwSourceContext + uCharacterOffset(Any):Description for uCharacterOffset + uNumChars(Any):Description for uNumChars + +Returns: + + None + + """ + pass + + + def GetApplication(self,) -> 'None': + """ + Description of GetApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootApplicationNode(self,) -> 'None': + """ + Description of GetRootApplicationNode. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnScriptErrorDebug(self,) -> 'Tuple[Any, Any]': + """ + Allows a smart host to control the handling of runtime + +errors + +Args: + + + +Returns: + + Tuple[Any, Any]:PyIActiveScriptSiteDebug.OnScriptErrorDebug + +int, int = OnScriptErrorDebug()Allows a smart host to control the handling of runtime + +errors +Return ValueThe result is a tuple of (bCallDebugger, bCallOnScriptErrorWhenContinuing) + + + """ + pass + + +class PyIAddrBook(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ResolveName(self,uiParm:'Any',flags:'Any',entryTitle:'str',ADRLIST:'Any') -> 'None': + """ + Performs name resolution, assigning entry identifiers to recipients in a recipient list. + +Args: + + uiParm(Any):hwnd of a dialogs parent. + flags(Any):Bitmask of flags that controls whether a dialog box can be displayed. + entryTitle(str): + ADRLIST(Any):Partial addresses to resolve. + +Returns: + + None + + """ + pass + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a folder or message and returns an interface object for further access. + +Args: + + entryId(str):The entryID of the object + iid(PyIID):The IID of the object to return, or None for the default IID + flags(Any):Bitmask of flags that controls how the object is opened. + +Returns: + + Any + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + +class PyIApplicationDebugger(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryAlive(self,) -> 'None': + """ + Returns true if alive, else false. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateInstanceAtDebugger(self,rclsid:'PyIID',pUnkOuter:'Any',dwClsContext:'Any',riid:'PyIID') -> 'None': + """ + Create objects in the application process address space. + +Args: + + rclsid(PyIID):Description for rclsid + pUnkOuter(Any):Description for pUnkOuter + dwClsContext(Any):Description for dwClsContext + riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. + +Returns: + + None + + """ + pass + + + def onDebugOutput(self,pstr:'Any') -> 'None': + """ + None + +Args: + + pstr(Any):Description for pstrCommentsThe debugger can use this to display the string in an output window. + +Returns: + + None + + """ + pass + + + def onHandleBreakPoint(self,prpt:'Any',br:'Any',pError:'Any') -> 'None': + """ + Called when a breakpoint is hit. + +Args: + + prpt(Any):Description for prpt + br(Any):Description for br + pError(Any):Description for pErrorCommentsThe application will remain suspended until the debugger IDE calls PyIDebugApplication::ResumeFromBreakPoint. + +Returns: + + None + + """ + pass + + + def onClose(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def onDebuggerEvent(self,guid:'PyIID',uUnknown:'Any') -> 'None': + """ + Description of onDebuggerEvent. + +Args: + + guid(PyIID): + uUnknown(Any):CommentsThe semantics of guid and unknown are entirely application/debugger defined This method may return E_NOTIMPL. + +Returns: + + None + + """ + pass + + +class PyIApplicationDestinations(object): + """Allows an application to removed items from its jump lists""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'Any') -> 'None': + """ + Specifies the application whose jump list is to be accessed + +Args: + + AppID(Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier + +Returns: + + None + + """ + pass + + + def RemoveDestination(self,punk:'Any') -> 'None': + """ + Removes a single entry from the jump lists + +Args: + + punk(Any):IShellItem or IShellLink representing an item in the application's jump listCommentsDoes not remove pinned items + +Returns: + + None + + """ + pass + + + def RemoveAllDestinations(self,) -> 'None': + """ + Removes all Recent and Frequent jump list entries + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIApplicationDocumentLists(object): + """Interface used to retrieve the jump lists for an application""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'Any') -> 'None': + """ + Specifies the application whose jump list is to be accessed + +Args: + + AppID(Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier + +Returns: + + None + + """ + pass + + + def GetList(self,ListType:'Any',riid:'PyIID',ItemsDesired:'Any'=0) -> 'Any': + """ + Retrieves a list of items in a jump list + +Args: + + ListType(Any):Type of document list to return, shellcon.ADLT_RECENT or ADLT_FREQUENT + riid(PyIID):The interface to return, IID_IEnumObjects or IID_IObjectArray + ItemsDesired(Any):Number of items to return, use 0 for all available + +Returns: + + Any + + """ + pass + + +class PyIAsyncOperation(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAsyncMode(self,fDoOpAsync:'Any') -> 'None': + """ + Description of SetAsyncMode. + +Args: + + fDoOpAsync(Any):Description for fDoOpAsync + +Returns: + + None + + """ + pass + + + def GetAsyncMode(self,) -> 'Any': + """ + Description of GetAsyncMode. + +Args: + + + +Returns: + + Any + + """ + pass + + + def StartOperation(self,pbcReserved:'Any') -> 'None': + """ + Description of StartOperation. + +Args: + + pbcReserved(Any):Description for pbcReserved + +Returns: + + None + + """ + pass + + + def InOperation(self,) -> 'None': + """ + Description of InOperation. + +Args: + + + +Returns: + + None + + """ + pass + + + def EndOperation(self,hResult:'Any',pbcReserved:'Any',dwEffects:'Any') -> 'None': + """ + Description of EndOperation. + +Args: + + hResult(Any):Description for hResult + pbcReserved(Any):Description for pbcReserved + dwEffects(Any):Description for dwEffects + +Returns: + + None + + """ + pass + + +class PyIAttach(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + +class PyIBindCtx(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetRunningObjectTable(self,) -> 'Any': + """ + Retrieves an object interfacing to the Running + +Object Table. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetBindOptions(self,) -> 'Any': + """ + Retrieves the bind options for the bind context + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetBindOptions(self,bindopts:'Any') -> 'None': + """ + Sets the bind options for the context + +Args: + + bindopts(Any):PyBIND_OPTS dictionary containing the binding options + +Returns: + + None + + """ + pass + + + def RegisterObjectParam(self,Key:'str',punk:'Any') -> 'None': + """ + Adds an object to the context's keyed table of associated objects + +Args: + + Key(str):The string key for the object to be registered + punk(Any):COM object to be registered with the bind context + +Returns: + + None + + """ + pass + + + def RevokeObjectParam(self,Key:'str') -> 'None': + """ + Removes one of the bind context's registered objects + +Args: + + Key(str):The string key for the object to be removed + +Returns: + + None + + """ + pass + + + def GetObjectParam(self,Key:'str') -> 'Any': + """ + Returns one of the bind context's associated objects + +Args: + + Key(str):The string key for the object to be returned + +Returns: + + Any + + """ + pass + + + def EnumObjectParam(self,) -> 'Any': + """ + Creates an enumerator to list context's string keys + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIBrowserFrameOptions(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFrameOptions(self,dwMask:'Any') -> 'None': + """ + Description of GetFrameOptions. + +Args: + + dwMask(Any):Description for dwMask + +Returns: + + None + + """ + pass + + +class PyICancelMethodCalls(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Cancel(self,Seconds:'Any') -> 'None': + """ + Cancels a pending call + +Args: + + Seconds(Any):Wait timeout in seconds + +Returns: + + None + + """ + pass + + + def TestCancel(self,) -> 'Any': + """ + Checks if a request has been made to cancel a call + +Args: + + + +Returns: + + Any:PyICancelMethodCalls.TestCancel + +int = TestCancel()Checks if a request has been made to cancel a call +Return ValueCan return RPC_S_CALLPENDING or RPC_E_CALL_CANCELED + + + """ + pass + + +class PyICatInformation(object): + """A Python interface to ICatInformation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumCategories(self,lcid:'Any'=0) -> 'Any': + """ + Returns an enumerator for the component categories + +registered on the system. + +Args: + + lcid(Any):lcid + +Returns: + + Any + + """ + pass + + + def GetCategoryDesc(self,lcid:'Any'=0) -> 'str': + """ + Retrieves the localized description string for a specific category + +ID. + +Args: + + lcid(Any):lcidCommentsThe return type is a unicode object. + +Returns: + + str + + """ + pass + + + def EnumClassesOfCategories(self,listIIdImplemented:'List[PyIID]'=None,listIIdRequired:'Any'=None) -> 'Any': + """ + Returns an enumerator over the classes that + +implement one or more interfaces. + +Args: + + listIIdImplemented(List[PyIID]):A sequence of PyIID objects, or None. + listIIdRequired(Any):A sequence of PyIID objects, or None. + +Returns: + + Any + + """ + pass + + +class PyICatRegister(object): + """An interface to a COM ICatRegister interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def RegisterCategories(self,arg:'List[Any]') -> 'None': + """ + Registers one or more component categories. Each component category + +consists of a CATID and a list of locale-dependent description strings. + +Args: + + arg(List[Any]):A sequence of category descriptions. + +Returns: + + None + + """ + pass + + + def UnRegisterCategories(self,arg:'List[PyIID]') -> 'None': + """ + Unregister one or more previously registered categories. + +Args: + + arg(List[PyIID]):The list of category IDs to be unregistered. + +Returns: + + None + + """ + pass + + + def RegisterClassImplCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': + """ + Registers the class as implementing one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(List[PyIID]):A sequence of category IDs to be associated with the class. + +Returns: + + None + + """ + pass + + + def UnRegisterClassImplCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': + """ + Unregisters the class as implementing one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(List[PyIID]):A sequence of category IDs to be unregistered from the class. + +Returns: + + None + + """ + pass + + + def RegisterClassReqCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': + """ + Registers the class as requiring one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(List[PyIID]):A sequence of category IDs to be associated with the class. + +Returns: + + None + + """ + pass + + + def UnRegisterClassReqCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': + """ + Unregisters the class as requiring one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(List[PyIID]):A sequence of category IDs to be unregistered for the class. + +Returns: + + None + + """ + pass + + +class PyICategoryProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanCategorizeOnSCID(self,pscid:'Any') -> 'None': + """ + Description of CanCategorizeOnSCID. + +Args: + + pscid(Any):Description for pscid + +Returns: + + None + + """ + pass + + + def GetDefaultCategory(self,) -> 'None': + """ + Description of GetDefaultCategory. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCategoryForSCID(self,pscid:'Any') -> 'None': + """ + Description of GetCategoryForSCID. + +Args: + + pscid(Any):Description for pscid + +Returns: + + None + + """ + pass + + + def EnumCategories(self,) -> 'None': + """ + Description of EnumCategories. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCategoryName(self,guid:'PyIID') -> 'None': + """ + Description of GetCategoryName. + +Args: + + guid(PyIID):Description for pguidCommentsThe buffer is always 1024 chars long + +Returns: + + None + + """ + pass + + + def CreateCategory(self,guid:'PyIID',riid:'PyIID') -> 'None': + """ + Description of CreateCategory. + +Args: + + guid(PyIID):Description for pguid + riid(PyIID):Description for riid + +Returns: + + None + + """ + pass + + +class PyIClassFactory(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateInstance(self,outerUnknown:'Any',iid:'PyIID') -> 'Any': + """ + Creates an uninitialized object. + +Args: + + outerUnknown(Any):Usually None, otherwise the outer unknown if the object is being created as part of an aggregate. + iid(PyIID):The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the type specified by iid. + +Returns: + + Any:The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the + +type specified by iid. + + + """ + pass + + + def LockServer(self,bInc:'Any') -> 'None': + """ + Called by the client of a class object to keep a server open in memory, + +allowing instances to be created more quickly. + +Args: + + bInc(Any):1 of the server should be locked, 0 if the server should be unlocked. + +Returns: + + None + + """ + pass + + +class PyIClientSecurity(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryBlanket(self,Proxy:'Any') -> 'Any': + """ + Retrieves the authentication settings for an interface + +Args: + + Proxy(Any):An interface created through a proxy + +Returns: + + Any + + """ + pass + + + def SetBlanket(self,Proxy:'Any',AuthnSvc:'Any',AuthzSvc:'Any',ServerPrincipalName:'str',AuthnLevel:'Any',ImpLevel:'Any',AuthInfo:'Any',Capabilities:'Any') -> 'None': + """ + Changes the authentication options used with an interface + +Args: + + Proxy(Any):The proxy interface for which to set security options + AuthnSvc(Any):Authentication service identifier, pythoncom.RPC_C_AUTHN_* (but not RPC_C_AUTHN_LEVEL_*) + AuthzSvc(Any):Authorization service identifier, pythoncom.RPC_C_AUTHZ_* + ServerPrincipalName(str):SPN that identifies the server, can be None + AuthnLevel(Any):Authentication level, pythoncom.RPC_C_AUTHN_LEVEL_* + ImpLevel(Any):Impersonation level, pythoncom.RPC_C_IMP_LEVEL_* + AuthInfo(Any):Not supported yet, use only None + Capabilities(Any):Combination of pythoncom.EOAC_* flags. Must be a subset of the capabilities of the specified authentication service. + +Returns: + + None + + """ + pass + + + def CopyProxy(self,Proxy:'Any') -> 'Any': + """ + Makes a private copy of a proxy interface + +Args: + + Proxy(Any):The remote interface to be copied + +Returns: + + Any + + """ + pass + + +class PyIColumnProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,psci:'Any') -> 'None': + """ + Description of Initialize. + +Args: + + psci(Any):Description for psci + +Returns: + + None + + """ + pass + + + def GetColumnInfo(self,dwIndex:'Any') -> 'None': + """ + Description of GetColumnInfo. + +Args: + + dwIndex(Any):Description for dwIndex + +Returns: + + None + + """ + pass + + + def GetItemData(self,pscid:'Any',pscd:'Any') -> 'None': + """ + Description of GetItemData. + +Args: + + pscid(Any):Description for pscid + pscd(Any):Description for pscd + +Returns: + + None + + """ + pass + + +class PyIConnectionPoint(object): + """A Python wrapper of a COM IConnectionPoint interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetConnectionInterface(self,) -> 'PyIID': + """ + Retrieves the IID of the interface represented by the + +connection point. + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetConnectionPointContainer(self,) -> 'Any': + """ + Gets the connection point + +container for the object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Advise(self,unk:'Any') -> 'Any': + """ + Establishes a connection between the connection point object and the client's + +sink. + +Args: + + unk(Any):The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise + +Returns: + + Any:The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise + + + """ + pass + + + def Unadvise(self,cookie:'Any') -> 'None': + """ + Terminates an advisory connection previously established through + +IConnectionPoint::Advise. The dwCookie parameter identifies the connection to terminate. + +Args: + + cookie(Any):The connection token + +Returns: + + None + + """ + pass + + + def EnumConnections(self,) -> 'Any': + """ + Creates an enumerator to iterate through the + +connections for the connection point + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIConnectionPointContainer(object): + """A Python wrapper of a COM IConnectionPointContainer interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumConnectionPoints(self,) -> 'Any': + """ + Creates an enumerator object + +to iterate through all the connection points supported in the connectable object, one connection point per outgoing + +IID. + +Args: + + + +Returns: + + Any + + """ + pass + + + def FindConnectionPoint(self,iid:'PyIID') -> 'Any': + """ + Finds a connection point for the + +given IID + +Args: + + iid(PyIID):The IID of the requested connection. + +Returns: + + Any + + """ + pass + + +class PyIContext(object): + """Allows access to properties defined for the current context (Requires win2k or later)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetProperty(self,rpolicyId:'PyIID',flags:'Any',pUnk:'Any') -> 'None': + """ + Sets a property on the context + +Args: + + rpolicyId(PyIID):GUID identifying the property to be set + flags(Any):Reserved, use only 0 + pUnk(Any):The property value + +Returns: + + None + + """ + pass + + + def RemoveProperty(self,rPolicyId:'PyIID') -> 'None': + """ + Removes a property from the context + +Args: + + rPolicyId(PyIID):GUID that identifies a context property + +Returns: + + None + + """ + pass + + + def GetProperty(self,rGuid:'PyIID') -> 'Tuple[Any, Any]': + """ + Retrieves a context property + +Args: + + rGuid(PyIID):GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property + +Returns: + + Tuple[Any, Any]:GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property + + + """ + pass + + + def EnumContextProps(self,) -> 'Any': + """ + Returns an enumerator for the context properties + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIContextMenu(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryContextMenu(self,hmenu:'int',indexMenu:'Any',idCmdFirst:'Any',idCmdLast:'Any',uFlags:'Any') -> 'Any': + """ + Adds options to a context menu + +Args: + + hmenu(int):Handle to menu to which items should be added + indexMenu(Any):Zero-based index at which to add first item + idCmdFirst(Any):Minimum menu item Id + idCmdLast(Any):Max menu item Id + uFlags(Any):Combination of shellcon.CMF_* flags, can be 0 + +Returns: + + Any + + """ + pass + + + def InvokeCommand(self,pici:'Any') -> 'None': + """ + Executes a context menu option + +Args: + + pici(Any):Tuple of parameters representing a CMINVOKECOMMANDINFO struct + +Returns: + + None + + """ + pass + + + def GetCommandString(self,idCmd:'Any',uType:'Any',cchMax:'Any'=2048) -> 'Any': + """ + Retrieves verb or help text for a context menu option + +Args: + + idCmd(Any):Id of the command + uType(Any):One of the shellcon.GCS_* constants + cchMax(Any):Size of buffer to create for returned string + +Returns: + + Any + + """ + pass + + +class PyICopyHookA(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CopyCallback(self,hwnd:'Any',wFunc:'Any',wFlags:'Any',srcFile:'Union[Any, str]',srcAttribs:'Any',destFile:'Union[Any, str]',destAttribs:'Any') -> 'None': + """ + Description of CopyCallback. + +Args: + + hwnd(Any):Description for hwnd + wFunc(Any):Description for wFunc + wFlags(Any):Description for wFlags + srcFile(Union[Any, str]):Description for srcFile + srcAttribs(Any):Description for srcAttribs + destFile(Union[Any, str]):Description for destFile + destAttribs(Any):Description for destAttribs + +Returns: + + None + + """ + pass + + +class PyICopyHookW(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CopyCallback(self,hwnd:'Any',wFunc:'Any',wFlags:'Any',srcFile:'Union[Any, str]',srcAttribs:'Any',destFile:'Union[Any, str]',destAttribs:'Any') -> 'None': + """ + Description of CopyCallback. + +Args: + + hwnd(Any):Description for hwnd + wFunc(Any):Description for wFunc + wFlags(Any):Description for wFlags + srcFile(Union[Any, str]):Description for srcFile + srcAttribs(Any):Description for srcAttribs + destFile(Union[Any, str]):Description for destFile + destAttribs(Any):Description for destAttribs + +Returns: + + None + + """ + pass + + +class PyICreateTypeInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetTypeFlags(self,uTypeFlags:'Any') -> 'None': + """ + Description of SetTypeFlags. + +Args: + + uTypeFlags(Any):Description for uTypeFlags + +Returns: + + None + + """ + pass + + + def SetDocString(self,pStrDoc:'Any') -> 'None': + """ + Description of SetDocString. + +Args: + + pStrDoc(Any):Description for pStrDoc + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(Any):Description for wMajorVerNum + wMinorVerNum(Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def AddRefTypeInfo(self,pTInfo:'Any') -> 'None': + """ + Description of AddRefTypeInfo. + +Args: + + pTInfo(Any):Description for pTInfo + +Returns: + + None + + """ + pass + + + def AddFuncDesc(self,index:'Any') -> 'None': + """ + Description of AddFuncDesc. + +Args: + + index(Any):Description for index + +Returns: + + None + + """ + pass + + + def AddImplType(self,index:'Any',hRefType:'Any') -> 'None': + """ + Description of AddImplType. + +Args: + + index(Any):Description for index + hRefType(Any):A hRefType + +Returns: + + None + + """ + pass + + + def SetImplTypeFlags(self,index:'Any',implTypeFlags:'Any') -> 'None': + """ + Description of SetImplTypeFlags. + +Args: + + index(Any):Description for index + implTypeFlags(Any):Description for implTypeFlags + +Returns: + + None + + """ + pass + + + def SetAlignment(self,cbAlignment:'Any') -> 'None': + """ + Description of SetAlignment. + +Args: + + cbAlignment(Any):Description for cbAlignment + +Returns: + + None + + """ + pass + + + def SetSchema(self,pStrSchema:'Any') -> 'None': + """ + Description of SetSchema. + +Args: + + pStrSchema(Any):Description for pStrSchema + +Returns: + + None + + """ + pass + + + def AddVarDesc(self,index:'Any') -> 'None': + """ + Description of AddVarDesc. + +Args: + + index(Any):Description for index + +Returns: + + None + + """ + pass + + + def SetFuncAndParamNames(self,index:'Any',rgszNames:'Tuple[Any, ...]') -> 'None': + """ + Description of SetFuncAndParamNames. + +Args: + + index(Any):Index of the item to set. + rgszNames(Tuple[Any, ...]):A sequence of unicode or String objects. + +Returns: + + None + + """ + pass + + + def SetVarName(self,index:'Any',szName:'Any') -> 'None': + """ + Description of SetVarName. + +Args: + + index(Any):Description for index + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetTypeDescAlias(self,) -> 'None': + """ + Description of SetTypeDescAlias. + +Args: + + + +Returns: + + None + + """ + pass + + + def DefineFuncAsDllEntry(self,index:'Any',szDllName:'Any',szProcName:'Any') -> 'None': + """ + Description of DefineFuncAsDllEntry. + +Args: + + index(Any):Description for index + szDllName(Any):Description for szDllName + szProcName(Any):Description for szProcName + +Returns: + + None + + """ + pass + + + def SetFuncDocString(self,index:'Any',szDocString:'Any') -> 'None': + """ + Description of SetFuncDocString. + +Args: + + index(Any):Description for index + szDocString(Any):Description for szDocString + +Returns: + + None + + """ + pass + + + def SetVarDocString(self,index:'Any',szDocString:'Any') -> 'None': + """ + Description of SetVarDocString. + +Args: + + index(Any):Description for index + szDocString(Any):Description for szDocString + +Returns: + + None + + """ + pass + + + def SetFuncHelpContext(self,index:'Any',dwHelpContext:'Any') -> 'None': + """ + Description of SetFuncHelpContext. + +Args: + + index(Any):Description for index + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetVarHelpContext(self,index:'Any',dwHelpContext:'Any') -> 'None': + """ + Description of SetVarHelpContext. + +Args: + + index(Any):Description for index + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetMops(self,index:'Any',bstrMops:'Any') -> 'None': + """ + Description of SetMops. + +Args: + + index(Any):Description for index + bstrMops(Any):Description for bstrMops + +Returns: + + None + + """ + pass + + + def LayOut(self,) -> 'None': + """ + Description of LayOut. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICreateTypeLib(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTypeInfo(self,szName:'Any') -> 'None': + """ + Description of CreateTypeInfo. + +Args: + + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetName(self,szName:'Any') -> 'None': + """ + Description of SetName. + +Args: + + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(Any):Description for wMajorVerNum + wMinorVerNum(Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetDocString(self,szDoc:'Any') -> 'None': + """ + Description of SetDocString. + +Args: + + szDoc(Any):Description for szDoc + +Returns: + + None + + """ + pass + + + def SetHelpFileName(self,szHelpFileName:'Any') -> 'None': + """ + Description of SetHelpFileName. + +Args: + + szHelpFileName(Any):Description for szHelpFileName + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetLcid(self,) -> 'None': + """ + Description of SetLcid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetLibFlags(self,uLibFlags:'Any') -> 'None': + """ + Description of SetLibFlags. + +Args: + + uLibFlags(Any):Description for uLibFlags + +Returns: + + None + + """ + pass + + + def SaveAllChanges(self,) -> 'None': + """ + Description of SaveAllChanges. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICreateTypeLib2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTypeInfo(self,szName:'Any') -> 'None': + """ + Description of CreateTypeInfo. + +Args: + + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetName(self,szName:'Any') -> 'None': + """ + Description of SetName. + +Args: + + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(Any):Description for wMajorVerNum + wMinorVerNum(Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetDocString(self,szDoc:'Any') -> 'None': + """ + Description of SetDocString. + +Args: + + szDoc(Any):Description for szDoc + +Returns: + + None + + """ + pass + + + def SetHelpFileName(self,szHelpFileName:'Any') -> 'None': + """ + Description of SetHelpFileName. + +Args: + + szHelpFileName(Any):Description for szHelpFileName + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetLcid(self,) -> 'None': + """ + Description of SetLcid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetLibFlags(self,uLibFlags:'Any') -> 'None': + """ + Description of SetLibFlags. + +Args: + + uLibFlags(Any):Description for uLibFlags + +Returns: + + None + + """ + pass + + + def SaveAllChanges(self,) -> 'None': + """ + Description of SaveAllChanges. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICurrentItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyICustomDestinationList(object): + """Interface used to customize an application's jump list""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'Any') -> 'None': + """ + Specifies the taskbar identifier for the jump list + +Args: + + AppID(Any):The taskbar identifier of the applicationCommentsOnly needed if the calling app doesn't use the system-assigned default + +Returns: + + None + + """ + pass + + + def BeginList(self,riid:'PyIID') -> 'Tuple[Any, Any]': + """ + Clears the jump list and prepares it to be + +repopulated + +Args: + + riid(PyIID):The interface to returnReturn ValueReturns the number of slots and a collection of all destinations removed from the jump list + +Returns: + + Tuple[Any, Any]:The interface to return +Return ValueReturns the number of slots and a collection of all destinations removed from the jump list + + + """ + pass + + + def AppendCategory(self,Category:'Any',Items:'Any') -> 'None': + """ + Adds a custom category to the jump list + +Args: + + Category(Any):Display name of the category, can also be a dll and resource id for localization + Items(Any):Collection of IShellItem and/or IShellLink interfaces + +Returns: + + None + + """ + pass + + + def AppendKnownCategory(self,Category:'Any') -> 'None': + """ + Adds one of the predefined categories to the custom list + +Args: + + Category(Any):shellcon.KDC_RECENT or KDC_FREQUENT + +Returns: + + None + + """ + pass + + + def AddUserTasks(self,Items:'Any') -> 'None': + """ + Sets the entries shown in the Tasks category + +Args: + + Items(Any):Collection of PyIShellItem and/or PyIShellLink interfaces + +Returns: + + None + + """ + pass + + + def CommitList(self,) -> 'None': + """ + Finalizes changes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRemovedDestinations(self,riid:'PyIID') -> 'Any': + """ + Returns all the items removed from the + +jump list + +Args: + + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def DeleteList(self,AppID:'Any'=None) -> 'None': + """ + Removes any customization, leaving only the system-maintained Recent + +and Frequent lists + +Args: + + AppID(Any):The taskbar identifier of the application + +Returns: + + None + + """ + pass + + + def AbortList(self,) -> 'None': + """ + Discards all changes + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDL(object): + """A Python representation of an IDL. Implemented as a sequence of Python strings. + +FALSE*/, UINT *pcb /* = NULL */)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDataObject(object): + """Used to transfer data in various formats throughout the shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetData(self,pformatetcIn:'Any') -> 'Any': + """ + Retrieves data from the object in specified format + +Args: + + pformatetcIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + Any + + """ + pass + + + def GetDataHere(self,pformatetcIn:'Any') -> 'Any': + """ + Retunrs a copy of the object's data in specified format + +Args: + + pformatetcIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + Any + + """ + pass + + + def QueryGetData(self,pformatetc:'Any') -> 'None': + """ + Checks if the objects supports returning data in a particular format. + +Args: + + pformatetc(Any):Tuple representing a FORMATETC struct describing how the data should be returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. + +Returns: + + None:Tuple representing a FORMATETC struct describing how the data should be + +returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. + + + """ + pass + + + def GetCanonicalFormatEtc(self,pformatectIn:'Any') -> 'Any': + """ + Transforms a FORMATECT data description into a general + +format that the object supports + +Args: + + pformatectIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + Any + + """ + pass + + + def SetData(self,pformatetc:'Any',pmedium:'Any',fRelease:'Any') -> 'None': + """ + Sets the data that the object will return. + +Args: + + pformatetc(Any):Tuple representing a FORMATETC struct describing the type of data to be set + pmedium(Any):The data to be placed in the object + fRelease(Any):If True, transfers ownership of the data to the object. If False, caller is responsible for releasing the STGMEDIUM. + +Returns: + + None + + """ + pass + + + def EnumFormatEtc(self,dwDirection:'Any') -> 'Any': + """ + Returns an enumerator to list the data formats that the + +object supports. + +Args: + + dwDirection(Any):Indicates whether to return formats that can be queried or set (pythoncom.DATADIR_GET or DATADIR_SET) + +Returns: + + Any + + """ + pass + + + def DAdvise(self,pformatetc:'Any',advf:'Any',pAdvSink:'Any') -> 'Any': + """ + Connects the object to an interface that will receive notifications when its data + +changes + +Args: + + pformatetc(Any):Defines the type of data for which the sink will receive notifications. + advf(Any):Combination of values from ADVF enum. (which currently do not appear in any of the constants modules!) + pAdvSink(Any):Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection + +Returns: + + Any:Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection + + + """ + pass + + + def DUnadvise(self,dwConnection:'Any') -> 'None': + """ + Disconnects a notification sink. + +Args: + + dwConnection(Any):Identifier of the connection as returned by DAdvise. + +Returns: + + None + + """ + pass + + + def EnumDAdvise(self,) -> 'Any': + """ + Creates an enumerator to list connected notification sinks. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIDebugApplication(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetName(self,pstrName:'Any') -> 'None': + """ + Sets the name of the application. + +Args: + + pstrName(Any):The name of the application.CommentsThe provided name will be returned in subsequent calls to >om PyIRemoteDebugApplication.GetName>. + +Returns: + + None + + """ + pass + + + def StepOutComplete(self,) -> 'None': + """ + Called by language engines, in single step mode, just before they + +return to their caller. + +Args: + + + +Returns: + + None + + """ + pass + + + def DebugOutput(self,pstr:'Any') -> 'None': + """ + Causes the given string to be displayed by the debugger IDE, normally in + +an output window. + +Args: + + pstr(Any):Description for pstrCommentsThis mechanism provides the means for a language engine to implement language specific debugging output support. Example: Debug.writeln("Help") in JavaScript. + +Returns: + + None + + """ + pass + + + def StartDebugSession(self,) -> 'None': + """ + Causes a default debugger IDE to be started and a debug session to + +be attached to this application if one does not already exist. + +Args: + + + +Returns: + + None + + """ + pass + + + def HandleBreakPoint(self,br:'Any') -> 'Any': + """ + Called by the language engine in the context of a thread that has + +hit a breakpoint. + +Args: + + br(Any):Break reason - one of the BREAKREASON_* constants.CommentsThis method causes the current thread to block and a notification of the breakpoint to be sent to the debugger IDE. When the debugger IDE resumes the application this method returns with the action to be taken.Note: While in the breakpoint the language engine may be called in this thread to do various things such as enumerating stack frames or evaluating expressions.Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. + +Returns: + + Any:Break reason - one of the BREAKREASON_* constants.Comments + +This method causes the current thread to block and a notification of the breakpoint + +to be sent to the debugger IDE. When the debugger IDE resumes the application this + +method returns with the action to be taken. + +Note: While in the breakpoint the language engine may be called in this thread to do + +various things such as enumerating stack frames or evaluating expressions. +Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. + + + """ + pass + + + def Close(self,) -> 'None': + """ + Causes this application to release all references and enter a zombie state. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBreakFlags(self,) -> 'Any': + """ + Returns the current break flags for the application. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCurrentThread(self,) -> 'Any': + """ + Returns the application thread object + +associated with the currently running thread. + +Args: + + + +Returns: + + Any + + """ + pass + + + def CreateAsyncDebugOperation(self,psdo:'Any') -> 'None': + """ + None + +Args: + + psdo(Any):Description for psdoCommentsThis provides a mechanism for language engines to implement asynchronous expression and evaluation, etc. without having to know the details of synchronization with the debugger thread. See the descriptions for PyIDebugSyncOperation and PyIDebugAsyncOperation for more details. + +Returns: + + None + + """ + pass + + + def AddStackFrameSniffer(self,pdsfs:'Any') -> 'Any': + """ + Adds a stack frame sniffer to this application. + +Args: + + pdsfs(Any):Description for pdsfsCommentsGenerally called by a language engine to expose its stack frames to the debugger. It is possible for other entities to expose stack frames.Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer + +Returns: + + Any:Description for pdsfsComments + +Generally called by a language engine + +to expose its stack frames to the debugger. It is possible for other entities to + +expose stack frames. +Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer + + + """ + pass + + + def RemoveStackFrameSniffer(self,dwCookie:'Any') -> 'None': + """ + Removes a stack frame sniffer from this application. + +Args: + + dwCookie(Any):A cookie obtained from PyIDebugApplication::AddStackFrameSniffer + +Returns: + + None + + """ + pass + + + def QueryCurrentThreadIsDebuggerThread(self,) -> 'None': + """ + Determines if the current running thread is the + +debugger thread. + +Args: + + + +Returns: + + None:PyIDebugApplication.QueryCurrentThreadIsDebuggerThread +QueryCurrentThreadIsDebuggerThread()Determines if the current running thread is the + +debugger thread. +Return ValueReturns S_OK if the current running thread is the debugger thread. + +Otherwise, returns S_FALSE. + + + """ + pass + + + def SynchronousCallInDebuggerThread(self,pptc:'Any',dwParam1:'Any',dwParam2:'Any',dwParam3:'Any') -> 'None': + """ + Provides a mechanism for the caller to run code in the + +debugger thread. + +Args: + + pptc(Any):Description for pptc + dwParam1(Any):Description for dwParam1 + dwParam2(Any):Description for dwParam2 + dwParam3(Any):Description for dwParam3CommentsThis is generally used so that language engines and hosts can implement free threaded objects on top of their single threaded implementations. + +Returns: + + None + + """ + pass + + + def CreateApplicationNode(self,) -> 'Any': + """ + Creates a new application node which + +is associated with a specific document provider. + +Args: + + + +Returns: + + Any + + """ + pass + + + def FireDebuggerEvent(self,guid:'Any',unknown:'Any') -> 'None': + """ + Fire a generic event to the IApplicationDebugger (if any) + +Args: + + guid(Any):A GUID. + unknown(Any):An unknown object. + +Returns: + + None + + """ + pass + + + def HandleRuntimeError(self,pErrorDebug:'Any',pScriptSite:'Any') -> 'None': + """ + Description of HandleRuntimeError. + +Args: + + pErrorDebug(Any):Description for pErrorDebug + pScriptSite(Any):Description for pScriptSite + +Returns: + + None + + """ + pass + + + def FCanJitDebug(self,) -> 'None': + """ + Description of FCanJitDebug. + +Args: + + + +Returns: + + None + + """ + pass + + + def FIsAutoJitDebugEnabled(self,) -> 'None': + """ + Description of FIsAutoJitDebugEnabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddGlobalExpressionContextProvider(self,pdsfs:'Any') -> 'None': + """ + Description of AddGlobalExpressionContextProvider. + +Args: + + pdsfs(Any):Description for pdsfs + +Returns: + + None + + """ + pass + + + def RemoveGlobalExpressionContextProvider(self,dwCookie:'Any') -> 'None': + """ + Description of + +RemoveGlobalExpressionContextProvider. + +Args: + + dwCookie(Any):Description for dwCookie + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationNode(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumChildren(self,) -> 'None': + """ + Description of EnumChildren. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetParent(self,) -> 'Any': + """ + Returns the parent node. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetDocumentProvider(self,pddp:'Any') -> 'None': + """ + Description of SetDocumentProvider. + +Args: + + pddp(Any):Description for pddp + +Returns: + + None + + """ + pass + + + def Close(self,) -> 'None': + """ + Description of Close. + +Args: + + + +Returns: + + None + + """ + pass + + + def Attach(self,pdanParent:'Any') -> 'None': + """ + Attach a node to its parent. + +Args: + + pdanParent(Any):The parent node. None is not acceptable. + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'None': + """ + Detach a node from its parent. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationNodeEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onAddChild(self,prddpChild:'Any') -> 'None': + """ + Description of onAddChild. + +Args: + + prddpChild(Any):Description for prddpChild + +Returns: + + None + + """ + pass + + + def onRemoveChild(self,prddpChild:'Any') -> 'None': + """ + Description of onRemoveChild. + +Args: + + prddpChild(Any):Description for prddpChild + +Returns: + + None + + """ + pass + + + def onDetach(self,) -> 'None': + """ + Description of onDetach. + +Args: + + + +Returns: + + None + + """ + pass + + + def onAttach(self,prddpParent:'Any') -> 'None': + """ + Description of onAttach. + +Args: + + prddpParent(Any):Description for prddpParent + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationThread(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SynchronousCallIntoThread(self,pstcb:'Any',dwParam1:'Any',dwParam2:'Any',dwParam3:'Any') -> 'None': + """ + Description of SynchronousCallIntoThread. + +Args: + + pstcb(Any):Description for pstcb + dwParam1(Any):Description for dwParam1 + dwParam2(Any):Description for dwParam2 + dwParam3(Any):Description for dwParam3 + +Returns: + + None + + """ + pass + + + def QueryIsCurrentThread(self,) -> 'None': + """ + Description of QueryIsCurrentThread. + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryIsDebuggerThread(self,) -> 'None': + """ + Description of QueryIsDebuggerThread. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugCodeContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContext(self,) -> 'None': + """ + Description of GetDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetBreakPoint(self,bps:'Any') -> 'None': + """ + Description of SetBreakPoint. + +Args: + + bps(Any):Description for bps + +Returns: + + None + + """ + pass + + +class PyIDebugDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDebugDocumentContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocument(self,) -> 'None': + """ + Description of GetDocument. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumCodeContexts(self,) -> 'None': + """ + Description of EnumCodeContexts. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentHelper(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Init(self,pda:'Any',pszShortName:'Any',pszLongName:'Any',docAttr:'Any') -> 'None': + """ + Description of Init. + +Args: + + pda(Any):Description for pda + pszShortName(Any):Description for pszShortName + pszLongName(Any):Description for pszLongName + docAttr(Any):Description for docAttr + +Returns: + + None + + """ + pass + + + def Attach(self,pddhParent:'Any') -> 'None': + """ + Add the document to the doc tree + +Args: + + pddhParent(Any):Parent item. If none, this item is top level. + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'None': + """ + Description of Detach. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddUnicodeText(self,pszText:'Any') -> 'None': + """ + Description of AddUnicodeText. + +Args: + + pszText(Any):Description for pszText + +Returns: + + None + + """ + pass + + + def AddDBCSText(self,) -> 'None': + """ + Description of AddDBCSText. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDebugDocumentHost(self,pddh:'Any') -> 'None': + """ + Description of SetDebugDocumentHost. + +Args: + + pddh(Any):Description for pddh + +Returns: + + None + + """ + pass + + + def AddDeferredText(self,cChars:'Any',dwTextStartCookie:'Any') -> 'None': + """ + Description of AddDeferredText. + +Args: + + cChars(Any):Description for cChars + dwTextStartCookie(Any):Description for dwTextStartCookie + +Returns: + + None + + """ + pass + + + def DefineScriptBlock(self,ulCharOffset:'Any',cChars:'Any',pas:'Any',fScriptlet:'Any') -> 'None': + """ + Description of DefineScriptBlock. + +Args: + + ulCharOffset(Any):Description for ulCharOffset + cChars(Any):Description for cChars + pas(Any):Description for pas + fScriptlet(Any):Description for fScriptlet + +Returns: + + None + + """ + pass + + + def SetDefaultTextAttr(self,staTextAttr:'Any') -> 'None': + """ + Description of SetDefaultTextAttr. + +Args: + + staTextAttr(Any):Description for staTextAttr + +Returns: + + None + + """ + pass + + + def SetTextAttributes(self,ulCharOffset:'Any',obAttr:'Any') -> 'None': + """ + Description of SetTextAttributes. + +Args: + + ulCharOffset(Any):Description for ulCharOffset + obAttr(Any):A sequence of attributes. + +Returns: + + None + + """ + pass + + + def SetLongName(self,pszLongName:'Any') -> 'None': + """ + Description of SetLongName. + +Args: + + pszLongName(Any):Description for pszLongName + +Returns: + + None + + """ + pass + + + def SetShortName(self,pszShortName:'Any') -> 'None': + """ + Description of SetShortName. + +Args: + + pszShortName(Any):Description for pszShortName + +Returns: + + None + + """ + pass + + + def SetDocumentAttr(self,pszAttributes:'Any') -> 'None': + """ + Description of SetDocumentAttr. + +Args: + + pszAttributes(Any):Description for pszAttributes + +Returns: + + None + + """ + pass + + + def GetDebugApplicationNode(self,) -> 'None': + """ + Description of GetDebugApplicationNode. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetScriptBlockInfo(self,dwSourceContext:'Any') -> 'None': + """ + Description of GetScriptBlockInfo. + +Args: + + dwSourceContext(Any):Description for dwSourceContext + +Returns: + + None + + """ + pass + + + def CreateDebugDocumentContext(self,iCharPos:'Any',cChars:'Any') -> 'None': + """ + Description of CreateDebugDocumentContext. + +Args: + + iCharPos(Any):Description for iCharPos + cChars(Any):Description for cChars + +Returns: + + None + + """ + pass + + + def BringDocumentToTop(self,) -> 'None': + """ + Description of BringDocumentToTop. + +Args: + + + +Returns: + + None + + """ + pass + + + def BringDocumentContextToTop(self,pddc:'Any') -> 'None': + """ + Description of BringDocumentContextToTop. + +Args: + + pddc(Any):Description for pddc + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentHost(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDeferredText(self,dwTextStartCookie:'Any',cMaxChars:'Any') -> 'None': + """ + Description of GetDeferredText. + +Args: + + dwTextStartCookie(Any):Description for dwTextStartCookie + cMaxChars(Any):Description for cMaxChars + +Returns: + + None + + """ + pass + + + def GetScriptTextAttributes(self,pstrCode:'Any',pstrDelimiter:'Any',dwFlags:'Any') -> 'None': + """ + Description of GetScriptTextAttributes. + +Args: + + pstrCode(Any):Description for pstrCode + pstrDelimiter(Any):Description for pstrDelimiter + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def OnCreateDocumentContext(self,) -> 'None': + """ + Description of OnCreateDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPathName(self,) -> 'None': + """ + Description of GetPathName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFileName(self,) -> 'None': + """ + Description of GetFileName. + +Args: + + + +Returns: + + None + + """ + pass + + + def NotifyChanged(self,) -> 'None': + """ + Description of NotifyChanged. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentInfo(object): + """Provides information on a document, which may or may not be instantiated.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetName(self,) -> 'None': + """ + Returns the specified name for the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocumentClassId(self,) -> 'PyIID': + """ + Returns a CLSID describing the document type. + +Args: + + + +Returns: + + PyIID + + """ + pass + + +class PyIDebugDocumentProvider(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocument(self,) -> 'Any': + """ + Causes the document to be instantiated if it does + +not already exist. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIDebugDocumentText(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentAttributes(self,) -> 'None': + """ + Description of GetDocumentAttributes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'None': + """ + Description of GetSize. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPositionOfLine(self,cLineNumber:'Any') -> 'None': + """ + Description of GetPositionOfLine. + +Args: + + cLineNumber(Any):Description for cLineNumber + +Returns: + + None + + """ + pass + + + def GetLineOfPosition(self,cCharacterPosition:'Any') -> 'None': + """ + Description of GetLineOfPosition. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + +Returns: + + None + + """ + pass + + + def GetText(self,cCharacterPosition:'Any',cMaxChars:'Any',bWantAttr:'Any'=1) -> 'None': + """ + Description of GetText. + +Args: + + cCharacterPosition(Any): + cMaxChars(Any):Max chars to return + bWantAttr(Any):Should the attributes be returned? + +Returns: + + None + + """ + pass + + + def GetPositionOfContext(self,psc:'Any') -> 'None': + """ + Description of GetPositionOfContext. + +Args: + + psc(Any):Description for psc + +Returns: + + None + + """ + pass + + + def GetContextOfPosition(self,cCharacterPosition:'Any',cNumChars:'Any') -> 'None': + """ + Description of GetContextOfPosition. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumChars(Any):Description for cNumChars + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextAuthor(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertText(self,cCharacterPosition:'Any',cNumToInsert:'Any',pcharText:'Any') -> 'None': + """ + Description of InsertText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToInsert(Any):Description for cNumToInsert + pcharText(Any):Description for pcharText + +Returns: + + None + + """ + pass + + + def RemoveText(self,cCharacterPosition:'Any',cNumToRemove:'Any') -> 'None': + """ + Description of RemoveText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToRemove(Any):Description for cNumToRemove + +Returns: + + None + + """ + pass + + + def ReplaceText(self,cCharacterPosition:'Any',cNumToReplace:'Any',pcharText:'Any') -> 'None': + """ + Description of ReplaceText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToReplace(Any):Description for cNumToReplace + pcharText(Any):Description for pcharText + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onDestroy(self,) -> 'None': + """ + Description of onDestroy. + +Args: + + + +Returns: + + None + + """ + pass + + + def onInsertText(self,cCharacterPosition:'Any',cNumToInsert:'Any') -> 'None': + """ + Description of onInsertText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToInsert(Any):Description for cNumToInsert + +Returns: + + None + + """ + pass + + + def onRemoveText(self,cCharacterPosition:'Any',cNumToRemove:'Any') -> 'None': + """ + Description of onRemoveText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToRemove(Any):Description for cNumToRemove + +Returns: + + None + + """ + pass + + + def onReplaceText(self,cCharacterPosition:'Any',cNumToReplace:'Any') -> 'None': + """ + Description of onReplaceText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToReplace(Any):Description for cNumToReplace + +Returns: + + None + + """ + pass + + + def onUpdateTextAttributes(self,cCharacterPosition:'Any',cNumToUpdate:'Any') -> 'None': + """ + Description of onUpdateTextAttributes. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToUpdate(Any):Description for cNumToUpdate + +Returns: + + None + + """ + pass + + + def onUpdateDocumentAttributes(self,textdocattr:'Any') -> 'None': + """ + Description of onUpdateDocumentAttributes. + +Args: + + textdocattr(Any):Description for textdocattr + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextExternalAuthor(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPathName(self,) -> 'None': + """ + Description of GetPathName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFileName(self,) -> 'None': + """ + Description of GetFileName. + +Args: + + + +Returns: + + None + + """ + pass + + + def NotifyChanged(self,) -> 'None': + """ + Description of NotifyChanged. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpression(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Start(self,pdecb:'Any') -> 'None': + """ + Description of Start. + +Args: + + pdecb(Any):Description for pdecb + +Returns: + + None + + """ + pass + + + def Abort(self,) -> 'None': + """ + Description of Abort. + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryIsComplete(self,) -> 'None': + """ + Description of QueryIsComplete. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetResultAsString(self,) -> 'None': + """ + Description of GetResultAsString. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetResultAsDebugProperties(self,) -> 'None': + """ + Description of GetResultAsDebugProperty. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpressionCallBack(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onComplete(self,) -> 'None': + """ + Description of onComplete. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpressionContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseLanguageText(self,pstrCode:'Any',nRadix:'Any',pstrDelimiter:'Any',dwFlags:'Any') -> 'None': + """ + Description of ParseLanguageText. + +Args: + + pstrCode(Any):Description for pstrCode + nRadix(Any):Description for nRadix + pstrDelimiter(Any):Description for pstrDelimiter + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetLanguageInfo(self,) -> 'None': + """ + Description of GetLanguageInfo. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugProperty(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyInfo(self,dwFieldSpec:'Any',nRadix:'Any') -> 'None': + """ + Description of GetPropertyInfo. + +Args: + + dwFieldSpec(Any):Description for dwFieldSpec + nRadix(Any):Description for nRadix + +Returns: + + None + + """ + pass + + + def GetExtendedInfo(self,) -> 'None': + """ + Description of GetExtendedInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetValueAsString(self,pszValue:'Any',nRadix:'Any') -> 'None': + """ + Description of SetValueAsString. + +Args: + + pszValue(Any):Description for pszValue + nRadix(Any):Description for nRadix + +Returns: + + None + + """ + pass + + + def EnumMembers(self,dwFieldSpec:'Any',nRadix:'Any',refiid:'PyIID') -> 'None': + """ + Description of EnumMembers. + +Args: + + dwFieldSpec(Any):Description for dwFieldSpec + nRadix(Any):Description for nRadix + refiid(PyIID):Description for refiid + +Returns: + + None + + """ + pass + + + def GetParent(self,) -> 'None': + """ + Description of GetParent. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugSessionProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def StartDebugSession(self,pda:'Any') -> 'None': + """ + Description of StartDebugSession. + +Args: + + pda(Any):Description for pda + +Returns: + + None + + """ + pass + + +class PyIDebugStackFrame(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCodeContext(self,) -> 'None': + """ + Returns the current code context associated with the stack frame. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDescriptionString(self,fLong:'Any') -> 'Any': + """ + Returns a short or long textual description of the + +stack frame. + +Args: + + fLong(Any):If false, provide only the name of the function associated with the stack frame. When true it may also provide the parameter(s) to the function or whatever else is relevant. + +Returns: + + Any + + """ + pass + + + def GetLanguageString(self,fLong:'Any') -> 'Any': + """ + Returns a short or long textual description of the + +language. + +Args: + + fLong(Any):If False, just the language name should be provided, eg, "Python". If True a full product description may be provided (eg, "Python 1.4 ActiveX Debugging Host") + +Returns: + + Any + + """ + pass + + + def GetThread(self,) -> 'Any': + """ + Returns the thread associated with this stack + +frame. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIDebugStackFrameSniffer(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumStackFrames(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugStackFrameSnifferEx(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumStackFramesEx(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugSyncOperation(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetTargetThread(self,) -> 'None': + """ + Description of GetTargetThread. + +Args: + + + +Returns: + + None + + """ + pass + + + def Execute(self,) -> 'None': + """ + Description of Execute. + +Args: + + + +Returns: + + None + + """ + pass + + + def InProgressAbort(self,) -> 'None': + """ + Description of InProgressAbort. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDefaultExtractIconInit(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetFlags(self,uFlags:'Any') -> 'None': + """ + Description of SetFlags. + +Args: + + uFlags(Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def SetKey(self,hkey:'PyHKEY') -> 'None': + """ + Description of SetKey. + +Args: + + hkey(PyHKEY):Description for hkey + +Returns: + + None + + """ + pass + + + def SetNormalIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': + """ + Description of SetNormalIcon. + +Args: + + pszFile(Any):Description for pszFile + iIcon(Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetOpenIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': + """ + Description of SetOpenIcon. + +Args: + + pszFile(Any):Description for pszFile + iIcon(Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetShortcutIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': + """ + Description of SetShortcutIcon. + +Args: + + pszFile(Any):Description for pszFile + iIcon(Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetDefaultIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': + """ + Description of SetDefaultIcon. + +Args: + + pszFile(Any):Description for pszFile + iIcon(Any):Description for iIcon + +Returns: + + None + + """ + pass + + +class PyIDirectSound(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,guid:'PyIID') -> 'None': + """ + Description of Initialize. + +Args: + + guid(PyIID):Globally unique identifier (GUID) specifying the sound driver to which this DirectSound object binds. Pass None to select the primary sound driver. + +Returns: + + None + + """ + pass + + + def SetCooperativeLevel(self,hwnd:'Any',level:'Any') -> 'None': + """ + The IDirectSound::SetCooperativeLevel method sets the cooperative level + +of the application for this sound device. + +Args: + + hwnd(Any):Window handle to the application or None. + level(Any):Requested priority level. Specify one of the following values:LevelDescriptionDSSCL_NORMALSets the application to a fully cooperative status. Most applications should use this level, because it has the smoothest multitasking and resource-sharing behavior.DSSCL_PRIORITYSets the application to the priority level. Applications with this cooperative level can call the DirectSoundBuffer.setFormat and DirectSound.compact methods.DSSCL_EXCLUSIVESets the application to the exclusive level. When it has the input focus, the application will be the only one audible (sounds from applications with the DSBCAPS_GLOBALFOCUS flag set will be muted). With this level, it also has all the privileges of the DSSCL_PRIORITY level. DirectSound will restore the hardware format, as specified by the most recent call to the DirectSoundBuffer.setFormat method, once the application gains the input focus. (Note that DirectSound will always restore the wave format, no matter what priority level is set.)DSSCL_WRITEPRIMARYThis is the highest priority level. The application has write access to the primary sound buffers. No secondary sound buffers in any application can be played. + +Returns: + + None + + """ + pass + + + def CreateSoundBuffer(self,lpDSCBufferDesc:'Any',unk:'Any'=None) -> 'None': + """ + The IDirectSound::CreateSoundBuffer method creates a DirectSoundBuffer + +object to hold a sequence of audio samples. + +Args: + + lpDSCBufferDesc(Any):a DSBUFFERDESC structure containing values for the sound buffer being created. + unk(Any):The IUnknown for COM aggregation. + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def Compact(self,) -> 'None': + """ + The Compact method moves the unused portions of on-board sound memory, if any, to a + +contiguous block so that the largest portion of free memory will be available. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundBuffer(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Description of Initialize. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Retrieves the current status of the sound buffer. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + Retrieves the capabilities of the DirectSoundBuffer object as a DSBCAPS + +object. + +Args: + + + +Returns: + + None + + """ + pass + + + def Restore(self,) -> 'None': + """ + Restores the memory allocation for a lost sound buffer for the specified + +DirectSoundBuffer object. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentPosition(self,) -> 'None': + """ + Description of GetCurrentPosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def Play(self,) -> 'None': + """ + Description of Play. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCurrentPosition(self,) -> 'None': + """ + Description of SetCurrentPosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def Stop(self,) -> 'None': + """ + Description of Stop. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFrequency(self,) -> 'None': + """ + Description of GetFrequency. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPan(self,) -> 'None': + """ + Description of GetPan. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetVolume(self,) -> 'None': + """ + Description of GetVolume. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFrequency(self,) -> 'None': + """ + Description of SetFrequency. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPan(self,) -> 'None': + """ + Description of SetPan. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetVolume(self,) -> 'None': + """ + Description of SetVolume. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundCapture(object): + """The methods of the IDirectSoundCapture interface are used to create sound capture + +buffers.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Not normally called directly. Use DirectSoundCaptureCreate instead. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundCaptureBuffer(object): + """The methods of the IDirectSoundCaptureBuffer interface are used to manipulate + +sound capture buffers.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Not normally used. Used IDirectSoundCapture.CreateCaptureBuffer + +instead. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Retrieves the current status of the sound capture buffer. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentPosition(self,) -> 'None': + """ + Returns a tuple of the current capture and read position in + +the buffer. The capture position is ahead of the read position. These positions are not always identical due to + +possible buffering of captured data either on the physical device or in the host. The data after the read position up + +to and including the capture position is not necessarily valid data. + +Args: + + + +Returns: + + None + + """ + pass + + + def Stop(self,) -> 'None': + """ + The IDirectSoundCaptureBuffer::Stop method puts the capture buffer into + +the "stop" state and stops capturing data. If the capture buffer is already in the stop state then the method has no + +effect. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundNotify(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDirectoryObject(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObjectInformation(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetObjectAttributes(self,names:'Tuple[str, ...]') -> 'Tuple[Any, ...]': + """ + None + +Args: + + names(Tuple[str, ...]): + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def SetObjectAttributes(self,attrs:'Tuple[Any, ...]') -> 'Any': + """ + None + +Args: + + attrs(Tuple[Any, ...]):The attributes to set + +Returns: + + Any + + """ + pass + + + def CreateDSObject(self,rdn:'str',attrs:'Tuple[Any, ...]') -> 'Any': + """ + None + +Args: + + rdn(str):The relative distinguished name (relative path) of the object to be created. + attrs(Tuple[Any, ...]):The attributes to set. + +Returns: + + Any + + """ + pass + + + def DeleteDSObject(self,rdn:'str') -> 'None': + """ + Deletes a leaf object in a directory tree + +Args: + + rdn(str):The relative distinguished name (relative path) of the object to be deleted. + +Returns: + + None + + """ + pass + + +class PyIDirectorySearch(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSearchPreference(self,prefs:'Any') -> 'Tuple[Any, Any, Any]': + """ + None + +Args: + + prefs(Any):Return ValueThe result is the hresult of the call, and a list of integer status codes for each of the preferences set. + +Returns: + + Tuple[Any, Any, Any]:Return ValueThe result is the hresult of the call, and a list of integer status + +codes for each of the preferences set. + + + """ + pass + + + def ExecuteSearch(self,_filter:'str',attrNames:'List[str]') -> 'Any': + """ + None + +Args: + + _filter(str): + attrNames(List[str]):Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle should be called to close the handle. + +Returns: + + Any:Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle + +should be called to close the handle. + + + """ + pass + + + def GetNextRow(self,handle:'Any') -> 'Any': + """ + None + +Args: + + handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def GetFirstRow(self,handle:'Any') -> 'Any': + """ + None + +Args: + + handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def GetPreviousRow(self,handle:'Any') -> 'Any': + """ + None + +Args: + + handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def CloseSearchHandle(self,handle:'Any') -> 'None': + """ + Closes a previously opened search handle. + +Args: + + handle(Any): + +Returns: + + None + + """ + pass + + + def AdandonSearch(self,handle:'Any') -> 'None': + """ + None + +Args: + + handle(Any): + +Returns: + + None + + """ + pass + + + def GetColumn(self,handle:'Any',name:'str') -> 'Tuple[Any, Any, Any]': + """ + None + +Args: + + handle(Any):Handle to a search + name(str):The column name to fetch + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetNextColumnName(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None:PyIDirectorySearch.GetNextColumnName +GetNextColumnName() +Return ValueReturns None when the underlying ADSI function return S_ADS_NOMORE_COLUMNS. + + + """ + pass + + +class PyIDispatch(object): + """A OLE automation client object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Invoke(self,dispid:'Any',lcid:'Any',flags:'Any',bResultWanted:'Any',arg:'Tuple[Any, ...]') -> 'Any': + """ + Invokes a DISPID, using the passed arguments. + +Args: + + dispid(Any):The dispid to use. Typically this value will come from PyIDispatch::GetIDsOfNames or from a type library. + lcid(Any):The locale id to use. + flags(Any):The flags for the call. The following flags can be used.FlagDescriptionDISPATCH_METHODThe member is invoked as a method. If a property has the same name, both this and the DISPATCH_PROPERTYGET flag may be set.DISPATCH_PROPERTYGETThe member is retrieved as a property or data member.DISPATCH_PROPERTYPUTThe member is changed as a property or data member.DISPATCH_PROPERTYPUTREFThe member is changed by a reference assignment, rather than a value assignment. This flag is valid only when the property accepts a reference to an object. + bResultWanted(Any):Indicates if the result of the call should be requested. + arg(Tuple[Any, ...]):The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. Otherwise, the result is determined by the COM object itself (and may still be None) + +Returns: + + Any:The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. + +Otherwise, the result is determined by the COM object itself (and may still be None) + + + """ + pass + + + def InvokeTypes(self,dispid:'Any',lcid:'Any',wFlags:'Any',resultTypeDesc:'Any',typeDescs:'Tuple[Any, ...]',args:'Tuple[Any, ...]') -> 'Any': + """ + Invokes a DISPID, using the passed arguments and type descriptions. + +Args: + + dispid(Any):The dispid to use. Please see PyIDispatch::Invoke. + lcid(Any):The locale ID. Please see PyIDispatch::Invoke. + wFlags(Any):Flags for the call. Please see PyIDispatch::Invoke. + resultTypeDesc(Any):A tuple describing the type of the result. See the comments for more information. + typeDescs(Tuple[Any, ...]):A sequence of tuples describing the types of the parameters for the function. See the comments for more information. + args(Tuple[Any, ...]):The args to the function.CommentsThe Microsoft documentation for IDispatch should be used for all params except 'resultTypeDesc' and 'typeDescs'. 'resultTypeDesc' describes the return value of the function, and is a tuple of (type_id, flags). 'typeDescs' describes the type of each parameters, and is a list of the same (type_id, flags) tuple.itemDescriptiontype_idA valid "variant type" constant (eg, VT_I4 | VT_ARRAY, VT_DATE, etc - see VARIANT at MSDN).flagsOne of the PARAMFLAG constants (eg, PARAMFLAG_FIN, PARAMFLAG_FOUT etc - see PARAMFLAG at MSDN).ExampleAn example from the makepy generated file for Wordclass Cells(DispatchBaseClass):... def SetWidth(self, ColumnWidth=..., RulerStyle=...): return self._oleobj_.InvokeTypes(202, LCID, 1, (24, 0), ((4, 1), (3, 1)),...)The interesting bits areresultTypeDesc: (24, 0) - (VT_VOID, <no flags>)typeDescs: ((4, 1), (3, 1)) - ((VT_R4, PARAMFLAG_FIN), (VT_I4, PARAMFLAG_FIN))So, in this example, the function returns no value and takes 2 "in" params - ColumnWidth is a float, and RulerStule is an int. + +Returns: + + Any + + """ + pass + + + def GetIDsOfNames(self,name:'str',arg:'Any') -> 'Tuple[Any, Union[Any]]': + """ + Get the DISPID for the passed names. + +Args: + + name(str):A name to query forAlternative Parameters + arg(Any):A sequence of string names to queryCommentsCurrently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used.Return ValueIf the first parameter is a sequence, the result will be a tuple of integers for each name in the sequence. If the first parameter is a single string, the result is a single integer with the ID of requested item. + +Returns: + + Tuple[Any, Union[Any]]:A sequence of string names to query +Comments + +Currently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used. +Return ValueIf the first parameter is a sequence, the result will be a tuple of integers + +for each name in the sequence. If the first parameter is a single string, the result + +is a single integer with the ID of requested item. + + + """ + pass + + + def GetTypeInfo(self,locale:'Any',index:'Any'=0) -> 'Any': + """ + Get type information for the object. + +Args: + + locale(Any):The locale to use. + index(Any):The index of the typelibrary to fetch. Note that these params are reversed from the win32 call. + +Returns: + + Any + + """ + pass + + + def GetTypeInfoCount(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIDispatchEx(object): + """A OLE automation client object that uses the IDispatchEx scripting interface..""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDispID(self,name:'str',fdex:'Any') -> 'Any': + """ + Returns the member id for a name + +Args: + + name(str):Passed in name to be mapped + fdex(Any):Determines the options for obtaining the member identifier. This can be a combination of the fdex* constants: + +Returns: + + Any + + """ + pass + + + def InvokeEx(self,dispid:'Any',lcid:'Any',flags:'Any',args:'List[Any]',types:'List[Any]'=None,returnDesc:'Any'=1,serviceProvider:'Any'=None) -> 'Any': + """ + None + +Args: + + dispid(Any): + lcid(Any): + flags(Any): + args(List[Any]):The arguments. + types(List[Any]):A tuple of type description object, or None if type descriptions are not available. + returnDesc(Any):If types==None, should be a BOOL indicating if the result is needed. If types is a tuple, then should a be type description. + serviceProvider(Any):A service provider object supplied by the caller which allows the object to obtain services from the caller. Can be None. + +Returns: + + Any + + """ + pass + + + def DeleteMemberByName(self,name:'str',fdex:'Any') -> 'None': + """ + None + +Args: + + name(str):Passed in name to be mapped + fdex(Any):Determines the options + +Returns: + + None + + """ + pass + + + def DeleteMemberByDispID(self,dispid:'Any') -> 'None': + """ + None + +Args: + + dispid(Any): + +Returns: + + None + + """ + pass + + + def GetMemberProperties(self,dispid:'Any',fdex:'Any') -> 'Any': + """ + Returns mask of fdex* flags describing a member + +Args: + + dispid(Any):The member id + fdex(Any):fdex* flags specifying which properties to return + +Returns: + + Any + + """ + pass + + + def GetMemberName(self,dispid:'Any') -> 'Any': + """ + Returns the name associated with a member id + +Args: + + dispid(Any):The member id + +Returns: + + Any + + """ + pass + + + def GetNextDispID(self,fdex:'Any',dispid:'Any') -> 'Any': + """ + Enumerates member ids. + +Args: + + fdex(Any):Determines the options + dispid(Any):Current member, or DISPID_STARTENUM to begin enumeration. GetNextDispID will retrieve the item in the enumeration after this one. + +Returns: + + Any + + """ + pass + + +class PyIDisplayItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDocHostUIHandler(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ShowContextMenu(self,dwID:'Any',pt:'Tuple[Any, Any]',pcmdtReserved:'Any',pdispReserved:'Any') -> 'None': + """ + Description of ShowContextMenu. + +Args: + + dwID(Any):Description for dwID + pt(Tuple[Any, Any]):Description for ppt + pcmdtReserved(Any):Description for pcmdtReserved + pdispReserved(Any):Description for pdispReserved + +Returns: + + None + + """ + pass + + + def GetHostInfo(self,) -> 'None': + """ + Description of GetHostInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowUI(self,dwID:'Any',pActiveObject:'Any',pCommandTarget:'Any',pFrame:'Any',pDoc:'Any') -> 'None': + """ + Description of ShowUI. + +Args: + + dwID(Any):Description for dwID + pActiveObject(Any):Description for pActiveObject + pCommandTarget(Any):Description for pCommandTarget + pFrame(Any):Description for pFrame + pDoc(Any):Description for pDoc + +Returns: + + None + + """ + pass + + + def HideUI(self,) -> 'None': + """ + Description of HideUI. + +Args: + + + +Returns: + + None + + """ + pass + + + def UpdateUI(self,) -> 'None': + """ + Description of UpdateUI. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def OnDocWindowActivate(self,fActivate:'Any') -> 'None': + """ + Description of OnDocWindowActivate. + +Args: + + fActivate(Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def OnFrameWindowActivate(self,fActivate:'Any') -> 'None': + """ + Description of OnFrameWindowActivate. + +Args: + + fActivate(Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def ResizeBorder(self,prcBorder:'Tuple[Any, Any, Any, Any]',pUIWindow:'Any',fRameWindow:'Any') -> 'None': + """ + Description of ResizeBorder. + +Args: + + prcBorder(Tuple[Any, Any, Any, Any]):Description for prcBorder + pUIWindow(Any):Description for pUIWindow + fRameWindow(Any):Description for fRameWindow + +Returns: + + None + + """ + pass + + + def TranslateAccelerator(self,lpMsg:'Any',pguidCmdGroup:'PyIID',nCmdID:'Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpMsg(Any):Description for lpMsg + pguidCmdGroup(PyIID):Description for pguidCmdGroup + nCmdID(Any):Description for nCmdID + +Returns: + + None + + """ + pass + + + def GetOptionKeyPath(self,dw:'Any') -> 'None': + """ + Description of GetOptionKeyPath. + +Args: + + dw(Any):Description for dw + +Returns: + + None + + """ + pass + + + def GetDropTarget(self,pDropTarget:'Any') -> 'None': + """ + Description of GetDropTarget. + +Args: + + pDropTarget(Any):Description for pDropTarget + +Returns: + + None + + """ + pass + + + def GetExternal(self,) -> 'None': + """ + Description of GetExternal. + +Args: + + + +Returns: + + None + + """ + pass + + + def TranslateUrl(self,dwTranslate:'Any',pchURLIn:'Any') -> 'None': + """ + Description of TranslateUrl. + +Args: + + dwTranslate(Any):Description for dwTranslate + pchURLIn(Any):Description for pchURLIn + +Returns: + + None + + """ + pass + + + def FilterDataObject(self,pDO:'Any') -> 'None': + """ + Description of FilterDataObject. + +Args: + + pDO(Any):Description for pDO + +Returns: + + None + + """ + pass + + +class PyIDropSource(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryContinueDrag(self,fEscapePressed:'Any',grfKeyState:'Any') -> 'None': + """ + Description of QueryContinueDrag. + +Args: + + fEscapePressed(Any):Description for fEscapePressed + grfKeyState(Any):Description for grfKeyState + +Returns: + + None + + """ + pass + + + def GiveFeedback(self,dwEffect:'Any') -> 'None': + """ + Description of GiveFeedback. + +Args: + + dwEffect(Any):Description for dwEffect + +Returns: + + None + + """ + pass + + +class PyIDropTarget(object): + """Interface that acts as a target of OLE drag and drop operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DragEnter(self,pDataObj:'Any',grfKeyState:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'Any': + """ + Called when an object is initially dragged into a window + +Args: + + pDataObj(Any):IDataObject interface that contains the object being dragged + grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor + pdwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted + +Returns: + + Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can + +be accepted + + + """ + pass + + + def DragOver(self,grfKeyState:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'Any': + """ + Called as the dragged object moves over the window + +Args: + + grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor + pdwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted at the current position + +Returns: + + Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the + +object can be accepted at the current position + + + """ + pass + + + def DragLeave(self,) -> 'None': + """ + Called as the object is dragged back out of the window + +Args: + + + +Returns: + + None + + """ + pass + + + def Drop(self,pDataObj:'Any',grfKeyState:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'Any': + """ + Called when the object is dropped onto the window + +Args: + + pDataObj(Any):IDataObject interface containing the dropped object + grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor + dwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values + +Returns: + + Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values + + + """ + pass + + +class PyIDropTargetHelper(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DragEnter(self,hwnd:'int',pDataObj:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'None': + """ + Description of DragEnter. + +Args: + + hwnd(int):Handle to target window + pDataObj(Any):Object that is dragged onto the window + pt(Tuple[Any, Any]):Coordinates where drag operation entered the window + dwEffect(Any):One of shellcon.DROPEFFECT_* values + +Returns: + + None + + """ + pass + + + def DragOver(self,hwnd:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'None': + """ + Description of DragOver. + +Args: + + hwnd(Any): + pt(Tuple[Any, Any]):Description for pt + pdwEffect(Any):Description for pdwEffect + +Returns: + + None + + """ + pass + + + def DragLeave(self,) -> 'None': + """ + Description of DragLeave. + +Args: + + + +Returns: + + None + + """ + pass + + + def Drop(self,pDataObj:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'None': + """ + Description of Drop. + +Args: + + pDataObj(Any):Description for pDataObj + pt(Tuple[Any, Any]):Description for pt + dwEffect(Any):Description for dwEffect + +Returns: + + None + + """ + pass + + +class PyIDsObjectPicker(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,targetComputer:'str',scopeInfos:'Any',options:'Any'=0,attrNames:'List[str]'=None) -> 'None': + """ + Initializes the IDsObjectPicker interface with information about the scopes, filters, and options used by the object picker dialog box. + +Args: + + targetComputer(str): + scopeInfos(Any): + options(Any): + attrNames(List[str]): + +Returns: + + None + + """ + pass + + + def InvokeDialog(self,hwnd:'Any') -> 'Any': + """ + Displays a modal object picker dialog box and returns the user's selections. + +Args: + + hwnd(Any): + +Returns: + + Any + + """ + pass + + +class PyIEmptyVolumeCache(object): + """Used for cleaning up temporary file ("disk cleanup")""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIEmptyVolumeCache2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIEmptyVolumeCacheCallBack(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ScanProgress(self,dwlSpaceUsed:'Any',dwFlags:'Any',pcwszStatus:'Any') -> 'None': + """ + Description of ScanProgress. + +Args: + + dwlSpaceUsed(Any):Description for dwlSpaceUsed + dwFlags(Any):Description for dwFlags + pcwszStatus(Any):Description for pcwszStatus + +Returns: + + None + + """ + pass + + + def PurgeProgress(self,dwlSpaceFreed:'Any',spaceFreed:'Any',spaceToFree:'Any',flags:'Any',status:'Any') -> 'None': + """ + Description of PurgeProgress. + +Args: + + dwlSpaceFreed(Any):Description for dwlSpaceFreed + spaceFreed(Any): + spaceToFree(Any): + flags(Any): + status(Any): + +Returns: + + None + + """ + pass + + +class PyIEnumCATEGORYINFO(object): + """A Python interface to IEnumCATEGORYINFO""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Tuple[PyIID, Any, str], ...]': + """ + Retrieves a specified number of items in the + +enumeration sequence. + +Args: + + num(Any):Number of items to retrieve.Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, one for each element returned. + +Returns: + + Tuple[Tuple[PyIID, Any, str], ...]:Number of items to retrieve. +Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, + +one for each element returned. + + + """ + pass + + + def Skip(self,num:'Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumConnectionPoints(object): + """A Python interface to IEnumConnectionPoints""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': + """ + Retrieves a specified number of items in the + +enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumConnections(object): + """A Python interface to IEnumConnections""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumContextProps(object): + """A Python interface to IEnumContextProps""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Tuple[PyIID, Any, Any], ...]': + """ + Retrieves a specified number of items in + +the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve.Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the property value + +Returns: + + Tuple[Tuple[PyIID, Any, Any], ...]:Number of items to retrieve. +Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: + + First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the + +property value + + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugApplicationNodes(object): + """A Python interface to IEnumDebugApplicationNodes""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugCodeContexts(object): + """A Python interface to IEnumDebugCodeContexts""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the + +same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugExpressionContexts(object): + """A Python interface to IEnumDebugExpressionContexts""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugPropertyInfo(object): + """A Python interface to IEnumDebugPropertyInfo""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the + +same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Obtains the number of items + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugStackFrames(object): + """A Python interface to IEnumDebugStackFrames""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumExplorerCommand(object): + """A Python interface to IEnumExplorerCommand""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumFORMATETC(object): + """A Python interface to IEnumFORMATETC""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumGUID(object): + """A Python interface to IEnumGUID""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[PyIID, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. + +Returns: + + Tuple[PyIID, ...]:Number of items to retrieve. +Return ValueThe result is a tuple of PyIID objects, + +one for each element returned. Note that if zero elements are returned, it is not considered + +an error condition - an empty tuple is simply returned. + + + """ + pass + + + def Skip(self,num:'Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state as + +the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumIDList(object): + """A Python interface to IEnumIDList""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumMoniker(object): + """A Python interface to IEnumMoniker""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. + +Returns: + + Any:Number of items to retrieve. +Return ValueThe result is a tuple of PyIID objects, + +one for each element returned. Note that if zero elements are returned, it is not considered + +an error condition - an empty tuple is simply returned. + + + """ + pass + + + def Skip(self,num:'Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumObjects(object): + """Iterates through a number of arbitrary interfaces""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,riid:'PyIID',num:'Any'=1) -> 'Tuple[Any, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + riid(PyIID):The interfaces to return + num(Any):Number of items to retrieve. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumRemoteDebugApplicationThreads(object): + """A Python interface to IEnumRemoteDebugApplicationThreads""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another + +enumerator that contains the same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumRemoteDebugApplications(object): + """A Python interface to IEnumRemoteDebugApplications""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumResources(object): + """A Python interface to IEnumResources""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumSTATPROPSETSTG(object): + """A Python interface to IEnumSTATPROPSETSTG""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumSTATPROPSTG(object): + """A Python interface to IEnumSTATPROPSTG""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumSTATSTG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumShellItems(object): + """A Python interface to IEnumShellItems""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumString(object): + """An enumerator interface to list strings""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[str, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Tuple[str, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIErrorLog(object): + """A Python wrapper for a COM IErrorLog interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddError(self,propName:'str',excepInfo:'Any'=None) -> 'None': + """ + Adds an error to the error log. + +Args: + + propName(str):The name of the error + excepInfo(Any):A COM exception. Must be a complete COM exception (ie, pythoncom.com_error, or win32com.server.exceptions.COMException()) + +Returns: + + None + + """ + pass + + +class PyIExplorerBrowser(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,hwndParent:'Any',prc:'PyRECT',pfs:'Any') -> 'None': + """ + Description of Initialize. + +Args: + + hwndParent(Any):Description for hwndParent + prc(PyRECT):Description for prc + pfs(Any):Description for pfs + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Description of Destroy. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetRect(self,hdwp:'Any',rcBrowser:'PyRECT') -> 'int': + """ + Description of SetRect. + +Args: + + hdwp(Any):Description for phdwp + rcBrowser(PyRECT):Description for rcBrowser + +Returns: + + int + + """ + pass + + + def SetPropertyBag(self,PropertyBag:'Any') -> 'None': + """ + Description of SetPropertyBag. + +Args: + + PropertyBag(Any):Description for pszPropertyBag + +Returns: + + None + + """ + pass + + + def SetEmptyText(self,EmptyText:'Any') -> 'None': + """ + Description of SetEmptyText. + +Args: + + EmptyText(Any):Description for pszEmptyText + +Returns: + + None + + """ + pass + + + def SetFolderSettings(self,pfs:'Any') -> 'None': + """ + Description of SetFolderSettings. + +Args: + + pfs(Any):Description for pfs + +Returns: + + None + + """ + pass + + + def Advise(self,psbe:'Any') -> 'Any': + """ + Description of Advise. + +Args: + + psbe(Any):Description for psbe + +Returns: + + Any + + """ + pass + + + def Unadvise(self,dwCookie:'Any') -> 'None': + """ + Description of Unadvise. + +Args: + + dwCookie(Any):Description for dwCookie + +Returns: + + None + + """ + pass + + + def SetOptions(self,dwFlag:'Any') -> 'None': + """ + Description of SetOptions. + +Args: + + dwFlag(Any):Description for dwFlag + +Returns: + + None + + """ + pass + + + def GetOptions(self,) -> 'Any': + """ + Description of GetOptions. + +Args: + + + +Returns: + + Any + + """ + pass + + + def BrowseToIDList(self,pidl:'Any',uFlags:'Any') -> 'None': + """ + Description of BrowseToIDList. + +Args: + + pidl(Any):Description for pidl + uFlags(Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def BrowseToObject(self,punk:'Any',uFlags:'Any') -> 'None': + """ + Description of BrowseToObject. + +Args: + + punk(Any):Description for punk + uFlags(Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def FillFromObject(self,punk:'Any',dwFlags:'Any') -> 'None': + """ + Description of FillFromObject. + +Args: + + punk(Any):Description for punk + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def RemoveAll(self,) -> 'None': + """ + Description of RemoveAll. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentView(self,riid:'PyIID') -> 'Any': + """ + Description of GetCurrentView. + +Args: + + riid(PyIID):Description for riid + +Returns: + + Any + + """ + pass + + +class PyIExplorerBrowserEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnNavigationPending(self,pidlFolder:'Any') -> 'None': + """ + Description of OnNavigationPending. + +Args: + + pidlFolder(Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + + def OnViewCreated(self,psv:'Any') -> 'None': + """ + Description of OnViewCreated. + +Args: + + psv(Any):Description for psv + +Returns: + + None + + """ + pass + + + def OnNavigationComplete(self,pidlFolder:'Any') -> 'None': + """ + Description of OnNavigationComplete. + +Args: + + pidlFolder(Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + + def OnNavigationFailed(self,pidlFolder:'Any') -> 'None': + """ + Description of OnNavigationFailed. + +Args: + + pidlFolder(Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + +class PyIExplorerCommand(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetTitle(self,psiItemArray:'Any') -> 'Any': + """ + Description of GetTitle. + +Args: + + psiItemArray(Any):Description for psiItemArray + +Returns: + + Any + + """ + pass + + + def GetIcon(self,psiItemArray:'Any') -> 'Any': + """ + Description of GetIcon. + +Args: + + psiItemArray(Any):Description for psiItemArray + +Returns: + + Any + + """ + pass + + + def GetToolTip(self,psiItemArray:'Any') -> 'Any': + """ + Description of GetToolTip. + +Args: + + psiItemArray(Any):Description for psiItemArray + +Returns: + + Any + + """ + pass + + + def GetCanonicalName(self,) -> 'PyIID': + """ + Description of GetCanonicalName. + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetState(self,psiItemArray:'Any',fOkToBeSlow:'Any') -> 'Any': + """ + Description of GetState. + +Args: + + psiItemArray(Any):Description for psiItemArray + fOkToBeSlow(Any):Description for fOkToBeSlow + +Returns: + + Any + + """ + pass + + + def Invoke(self,psiItemArray:'Any',pbc:'Any') -> 'None': + """ + Description of Invoke. + +Args: + + psiItemArray(Any):Description for psiItemArray + pbc(Any):Description for pbc + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'Any': + """ + Description of GetFlags. + +Args: + + + +Returns: + + Any + + """ + pass + + + def EnumSubCommands(self,) -> 'Any': + """ + Description of EnumSubCommands. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIExplorerCommandProvider(object): + """This is a gateway only interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIExplorerPaneVisibility(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIExternalConnection(object): + """A Python wrapper for a COM IExternalConnection interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddConnection(self,extconn:'Any',reserved:'Any'=0) -> 'Any': + """ + Increments an object's count of its strong external connections + +(links). + +Args: + + extconn(Any):Type of external connection to the object. The only type of external connection currently supported by this interface is strong, which means that the object must remain alive as long as this external connection exists. Strong external connections are represented by the value EXTCONN_STRONG = 0x0001, which is defined in the enumeration EXTCON + reserved(Any):A reserved parameterReturn ValueThe result is the number of reference counts on the object; used for debugging purposes only. + +Returns: + + Any:A reserved parameter +Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + + + """ + pass + + + def ReleaseConnection(self,extconn:'Any',reserved:'Any',fLastReleaseCloses:'Any') -> 'Any': + """ + Decrements an object's count of its strong external connections + +(references). + +Args: + + extconn(Any):Type of external connection + reserved(Any):A reserved parameter. + fLastReleaseCloses(Any):TRUE specifies that if the connection being released is the last external lock on the object, the object should close. FALSE specifies that the object should remain open until closed by the user or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + +Returns: + + Any:TRUE specifies that if the connection being released is the last external lock on + +the object, the object should close. FALSE specifies that the object should remain open until closed by the user + +or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + + + """ + pass + + +class PyIExtractIcon(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Extract(self,pszFile:'Any',nIconIndex:'Any',nIconSize:'Any') -> 'None': + """ + Description of Extract. + +Args: + + pszFile(Any):Description for pszFile + nIconIndex(Any):Description for nIconIndex + nIconSize(Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. + +Returns: + + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + +(None,None) if the underlying function returns S_FALSE, indicating + +the calling application should extract it. + + + """ + pass + + + def GetIconLocation(self,uFlags:'Any',cchMax:'Any') -> 'None': + """ + Description of GetIconLocation. + +Args: + + uFlags(Any):Description for uFlags + cchMax(Any):Buffer size to allocate for file name + +Returns: + + None + + """ + pass + + +class PyIExtractIconW(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Extract(self,pszFile:'Any',nIconIndex:'Any',nIconSize:'Any') -> 'None': + """ + Description of Extract. + +Args: + + pszFile(Any):Description for pszFile + nIconIndex(Any):Description for nIconIndex + nIconSize(Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. + +Returns: + + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + +(None,None) if the underlying function returns S_FALSE, indicating + +the calling application should extract it. + + + """ + pass + + + def GetIconLocation(self,uFlags:'Any',cchMax:'Any') -> 'None': + """ + Description of GetIconLocation. + +Args: + + uFlags(Any):Description for uFlags + cchMax(Any):Buffer size to allocate for file name + +Returns: + + None + + """ + pass + + +class PyIExtractImage(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLocation(self,dwPriority:'Any',size:'Tuple[Any, Any]',dwRecClrDepth:'Any',pdwFlags:'Any') -> 'None': + """ + Description of GetLocation. + +Args: + + dwPriority(Any):Description for dwPriority + size(Tuple[Any, Any]):Description for prgSize + dwRecClrDepth(Any):Description for dwRecClrDepth + pdwFlags(Any):Description for pdwFlags + +Returns: + + None + + """ + pass + + + def Extract(self,) -> 'None': + """ + Description of Extract. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIFileOperation(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'Any') -> 'Any': + """ + Connects an event sink to receive updates + +Args: + + Sink(Any):Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect + +Returns: + + Any:Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect + + + """ + pass + + + def Unadvise(self,Cookie:'Any') -> 'None': + """ + Disconnects a progress sink + +Args: + + Cookie(Any):Identifies the sink to disconnect, as returned by PyIFileOperation::Advise + +Returns: + + None + + """ + pass + + + def SetOperationFlags(self,OperationFlags:'Any') -> 'None': + """ + Sets option flags for the operation + +Args: + + OperationFlags(Any):Combination of shellcon.FOF_* and FOFX_* flags + +Returns: + + None + + """ + pass + + + def SetProgressMessage(self,Message:'Any') -> 'None': + """ + Not implemented. + +Args: + + Message(Any):Description for Message + +Returns: + + None + + """ + pass + + + def SetProgressDialog(self,popd:'Any') -> 'None': + """ + Provides an interface used to display a progress dialog + +Args: + + popd(Any):Progress dialog interfaceCommentsIOperationsProgressDialog is not yet supported + +Returns: + + None + + """ + pass + + + def SetProperties(self,proparray:'Any') -> 'None': + """ + Specifies a set of properties to be changed. + +Args: + + proparray(Any):Sequence of property changes to be performed (see propsys::PSCreatePropertyChangeArray)CommentsNote that these properties will be set for *any* files created by the operation, not just items passed to ApplyPropertiesToItem(s). New items created as the result of a rename, copy, or move must have a property handler, or the operation fails with the vague com_error: (-2147467259, 'Unspecified error', None, None) (E_FAIL, or 0x80004005 in hex) even though the given file operation was actually performed. + +Returns: + + None + + """ + pass + + + def SetOwnerWindow(self,Owner:'int') -> 'None': + """ + Sets the parent window for any UI displayed. + +Args: + + Owner(int):Handle to parent window + +Returns: + + None + + """ + pass + + + def ApplyPropertiesToItem(self,Item:'Any') -> 'None': + """ + Specifies the item that will receive property changes + +Args: + + Item(Any):The item to which property changes will be applied + +Returns: + + None + + """ + pass + + + def ApplyPropertiesToItems(self,Items:'Any') -> 'None': + """ + Specifies multiple items that will receive property changes + +Args: + + Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the target items + +Returns: + + None + + """ + pass + + + def RenameItem(self,Item:'Any',NewName:'Any',Sink:'Any'=None) -> 'None': + """ + Adds a rename to the operation sequence + +Args: + + Item(Any):The item to be renamed + NewName(Any):The new name + Sink(Any):Progress sink for this operation only. + +Returns: + + None + + """ + pass + + + def RenameItems(self,pUnkItems:'Any',NewName:'Any') -> 'None': + """ + Adds multiple renames to the operation sequence + +Args: + + pUnkItems(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be renamed + NewName(Any):New name for all items. Collisions handled automatically. + +Returns: + + None + + """ + pass + + + def MoveItem(self,Item:'Any',DestinationFolder:'Any',pszNewName:'Any'=None,Sink:'Any'=None) -> 'None': + """ + Adds a move operation to the configuration + +Args: + + Item(Any):The item to be moved + DestinationFolder(Any):The folder into which it will be moved + pszNewName(Any):Name to be given to moved item, use None to keep original name + Sink(Any):Progress sink to receive notification for just this operation + +Returns: + + None + + """ + pass + + + def MoveItems(self,Items:'Any',DestinationFolder:'Any') -> 'None': + """ + Adds multiple move operations to the configuration + +Args: + + Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be moved + DestinationFolder(Any):Folder into which all items will be moved + +Returns: + + None + + """ + pass + + + def CopyItem(self,Item:'Any',DestinationFolder:'Any',CopyName:'Any'=None,Sink:'Any'=None) -> 'None': + """ + Adds a copy operation to the configuration + +Args: + + Item(Any):Item to be copied + DestinationFolder(Any):Folder into which it will be copied + CopyName(Any):New name for the copied file, use None to keep original name + Sink(Any):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def CopyItems(self,Items:'Any',DestinationFolder:'Any') -> 'None': + """ + Adds multiple copy operations to the configuration + +Args: + + Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be copied + DestinationFolder(Any):Folder into which they will be copied + +Returns: + + None + + """ + pass + + + def DeleteItem(self,Item:'Any',Sink:'Any'=None) -> 'None': + """ + Adds a delete operation to the configuration + +Args: + + Item(Any):Description for psiItem + Sink(Any):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def DeleteItems(self,Items:'Any') -> 'None': + """ + Adds multiple delete operations to the configuration + +Args: + + Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be deleted + +Returns: + + None + + """ + pass + + + def NewItem(self,DestinationFolder:'Any',FileAttributes:'Any',Name:'Any',TemplateName:'Any'=None,Sink:'Any'=None) -> 'None': + """ + Creates a new file as part of the operation + +Args: + + DestinationFolder(Any):Folder in which to create the file + FileAttributes(Any):Combination of win32con.FILE_ATTRIBUTE_* flags + Name(Any):Name of the new file + TemplateName(Any):Template file used to initialize the new file + Sink(Any):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def PerformOperations(self,) -> 'None': + """ + Effects all configured file system modifications + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAnyOperationsAborted(self,) -> 'Any': + """ + Determines if any operations were terminated + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIIdentityName(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIInitializeWithFile(object): + """Initializes a property handler that requires a file path instead of a stream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,FilePath:'Any',Mode:'Any') -> 'None': + """ + Passes a file path to a property handler on startup + +Args: + + FilePath(Any):Full path to the file whose properties are to be accessed + Mode(Any):Indicates if properties can be written, STGM_READ or STGM_READWRITE + +Returns: + + None + + """ + pass + + +class PyIInitializeWithStream(object): + """Interface that initializes a handler capable of reading properties from a stream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,Stream:'Any',Mode:'Any') -> 'None': + """ + Initializes a property handler with a stream + +Args: + + Stream(Any):Stream containing the contents from which to extract properties + Mode(Any):Indicates if stream is writable, STGM_READ or STGM_READWRITE + +Returns: + + None + + """ + pass + + +class PyIInputObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,pmsg:'Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + pmsg(Any):Description for pmsg + +Returns: + + None + + """ + pass + + + def UIActivate(self,uState:'Any') -> 'None': + """ + Description of UIActivate. + +Args: + + uState(Any):Description for uState + +Returns: + + None + + """ + pass + + + def HasFocusIO(self,) -> 'None': + """ + Description of Refresh. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetBindInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetBindInfo(self,) -> 'None': + """ + Description of GetBindInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBindString(self,) -> 'None': + """ + Description of GetBindString. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetPriority(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetPriority(self,nPriority:'Any') -> 'None': + """ + Description of SetPriority. + +Args: + + nPriority(Any):Description for nPriority + +Returns: + + None + + """ + pass + + + def GetPriority(self,) -> 'None': + """ + Description of GetPriority. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocol(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,cb:'Any') -> 'None': + """ + Description of Read. + +Args: + + cb(Any):Description for cb + +Returns: + + None + + """ + pass + + + def Seek(self,dlibMove:'LARGE_INTEGER',dwOrigin:'Any') -> 'None': + """ + Description of Seek. + +Args: + + dlibMove(LARGE_INTEGER):Description for dlibMove + dwOrigin(Any):Description for dwOrigin + +Returns: + + None + + """ + pass + + + def LockRequest(self,dwOptions:'Any') -> 'None': + """ + Description of LockRequest. + +Args: + + dwOptions(Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def UnlockRequest(self,) -> 'None': + """ + Description of UnlockRequest. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocolInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseUrl(self,pwzUrl:'Any',ParseAction:'Any',dwParseFlags:'Any',cchResult:'Any',dwReserved:'Any') -> 'None': + """ + Description of ParseUrl. + +Args: + + pwzUrl(Any):Description for pwzUrl + ParseAction(Any):Description for ParseAction + dwParseFlags(Any):Description for dwParseFlags + cchResult(Any):Description for cchResult + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def CombineUrl(self,pwzBaseUrl:'Any',pwzRelativeUrl:'Any',dwCombineFlags:'Any',cchResult:'Any',dwReserved:'Any') -> 'None': + """ + Description of CombineUrl. + +Args: + + pwzBaseUrl(Any):Description for pwzBaseUrl + pwzRelativeUrl(Any):Description for pwzRelativeUrl + dwCombineFlags(Any):Description for dwCombineFlags + cchResult(Any):Description for cchResult + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def CompareUrl(self,pwzUrl1:'Any',pwzUrl2:'Any',dwCompareFlags:'Any') -> 'None': + """ + Description of CompareUrl. + +Args: + + pwzUrl1(Any):Description for pwzUrl1 + pwzUrl2(Any):Description for pwzUrl2 + dwCompareFlags(Any):Description for dwCompareFlags + +Returns: + + None + + """ + pass + + + def QueryInfo(self,pwzUrl:'Any',OueryOption:'Any',dwQueryFlags:'Any',cbBuffer:'Any',dwReserved:'Any') -> 'Any': + """ + Description of QueryInfo. + +Args: + + pwzUrl(Any):Description for pwzUrl + OueryOption(Any):Description for OueryOption + dwQueryFlags(Any):Description for dwQueryFlags + cbBuffer(Any):Description for cbBuffer + dwReserved(Any):Description for dwReservedCommentsIf the buffer size is the size of an integer, an integer will be returned, otherwise a string. + +Returns: + + Any + + """ + pass + + +class PyIInternetProtocolRoot(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Start(self,szUrl:'Any',pOIProtSink:'Any',pOIBindInfo:'Any',grfPI:'Any',dwReserved:'Any') -> 'None': + """ + Description of Start. + +Args: + + szUrl(Any):Description for szUrl + pOIProtSink(Any):Description for pOIProtSink + pOIBindInfo(Any):Description for pOIBindInfo + grfPI(Any):Description for grfPI + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def Continue(self,) -> 'None': + """ + Description of Continue. + +Args: + + + +Returns: + + None + + """ + pass + + + def Abort(self,hrReason:'Any',dwOptions:'Any') -> 'None': + """ + Description of Abort. + +Args: + + hrReason(Any):Description for hrReason + dwOptions(Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def Terminate(self,dwOptions:'Any') -> 'None': + """ + Description of Terminate. + +Args: + + dwOptions(Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def Suspend(self,) -> 'None': + """ + Description of Suspend. + +Args: + + + +Returns: + + None + + """ + pass + + + def Resume(self,) -> 'None': + """ + Description of Resume. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocolSink(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Switch(self,) -> 'None': + """ + Description of Switch. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReportProgress(self,ulStatusCode:'Any',szStatusText:'Any') -> 'None': + """ + Description of ReportProgress. + +Args: + + ulStatusCode(Any):Description for ulStatusCode + szStatusText(Any):Description for szStatusText + +Returns: + + None + + """ + pass + + + def ReportData(self,grfBSCF:'Any',ulProgress:'Any',ulProgressMax:'Any') -> 'None': + """ + Description of ReportData. + +Args: + + grfBSCF(Any):Description for grfBSCF + ulProgress(Any):Description for ulProgress + ulProgressMax(Any):Description for ulProgressMax + +Returns: + + None + + """ + pass + + + def ReportResult(self,hrResult:'Any',dwError:'Any',szResult:'Any') -> 'None': + """ + Description of ReportResult. + +Args: + + hrResult(Any):Description for hrResult + dwError(Any):Description for dwError + szResult(Any):Description for szResult + +Returns: + + None + + """ + pass + + +class PyIInternetSecurityManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSecuritySite(self,pSite:'Any') -> 'None': + """ + Description of SetSecuritySite. + +Args: + + pSite(Any):Description for pSite + +Returns: + + None + + """ + pass + + + def GetSecuritySite(self,) -> 'None': + """ + Description of GetSecuritySite. + +Args: + + + +Returns: + + None + + """ + pass + + + def MapUrlToZone(self,pwszUrl:'Any',dwFlags:'Any') -> 'None': + """ + Description of MapUrlToZone. + +Args: + + pwszUrl(Any):Description for pwszUrl + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetSecurityId(self,pwszUrl:'Any',pcbSecurityId:'Any') -> 'None': + """ + Description of GetSecurityId. + +Args: + + pwszUrl(Any):Description for pwszUrl + pcbSecurityId(Any):Description for pcbSecurityId + +Returns: + + None + + """ + pass + + + def ProcessUrlAction(self,pwszUrl:'Any',dwAction:'Any',context:'Any',dwFlags:'Any') -> 'None': + """ + Description of ProcessUrlAction. + +Args: + + pwszUrl(Any):Description for pwszUrl + dwAction(Any):Description for dwAction + context(Any): + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def SetZoneMapping(self,dwZone:'Any',lpszPattern:'Any',dwFlags:'Any') -> 'None': + """ + Description of SetZoneMapping. + +Args: + + dwZone(Any):Description for dwZone + lpszPattern(Any):Description for lpszPattern + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetZoneMappings(self,dwZone:'Any',dwFlags:'Any') -> 'None': + """ + Description of GetZoneMappings. + +Args: + + dwZone(Any):Description for dwZone + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + +class PyIKnownFolder(object): + """Interface representing a known folder that serves + +as a replacement for the numeric CSIDL definitions and API functions. + +Requires Vista or later.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetId(self,) -> 'PyIID': + """ + Returns the id of the folder + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetCategory(self,) -> 'Any': + """ + Returns the category for a folder (shellcon.KF_CATEGORY_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetShellItem(self,riid:'PyIID',Flags:'Any'=0) -> 'Any': + """ + Returns a shell interface for the folder + +Args: + + riid(PyIID):The interface to return (IShellItem or IShellItem2) + Flags(Any):Combination of shellcon.KF_FLAG_* values + +Returns: + + Any + + """ + pass + + + def GetPath(self,Flags:'Any'=0) -> 'Any': + """ + Returns the path to the folder + +Args: + + Flags(Any):Combination of shellcon.KF_FLAG_* flags controlling how the path is returned + +Returns: + + Any + + """ + pass + + + def SetPath(self,Flags:'Any',Path:'Any') -> 'None': + """ + Changes the location of the folder + +Args: + + Flags(Any):KF_FLAG_DONT_UNEXPAND, or 0 + Path(Any):New path for known folder + +Returns: + + None + + """ + pass + + + def GetIDList(self,Flags:'Any') -> 'Any': + """ + Returns the folder's location as an item id list. + +Args: + + Flags(Any):Combination of shellcon.KF_FLAG_* values that affect how the operation is performed + +Returns: + + Any + + """ + pass + + + def GetFolderType(self,) -> 'PyIID': + """ + Returns the type of the folder + +Args: + + + +Returns: + + PyIID:PyIKnownFolder.GetFolderType +PyIID = GetFolderType()Returns the type of the folder +Return ValueReturns a folder type guid (shell.FOLDERTYPEID_*) + + + """ + pass + + + def GetRedirectionCapabilities(self,) -> 'Any': + """ + Returns flags indicating how the folder can be redirected + +Args: + + + +Returns: + + Any:PyIKnownFolder.GetRedirectionCapabilities + +int = GetRedirectionCapabilities()Returns flags indicating how the folder can be redirected +Return ValueCombination of shellcon.KF_REDIRECTION_CAPABILITIES_* flags + + + """ + pass + + + def GetFolderDefinition(self,) -> 'Any': + """ + Retrieves detailed information about a known folder + +Args: + + + +Returns: + + Any:PyIKnownFolder.GetFolderDefinition + +dict = GetFolderDefinition()Retrieves detailed information about a known folder +Return ValueReturns a dict containing info from a KNOWNFOLDER_DEFINITION struct + + + """ + pass + + +class PyIKnownFolderManager(object): + """Interface used to manage known folder definitions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def FolderIdFromCsidl(self,Csidl:'Any') -> 'PyIID': + """ + Returns the folder id that corresponds to a CSIDL + +Args: + + Csidl(Any):The legacy CSIDL identifying a folder + +Returns: + + PyIID + + """ + pass + + + def FolderIdToCsidl(self,_id:'PyIID') -> 'Any': + """ + Returns the CSIDL equivalent of a known folder + +Args: + + _id(PyIID):A known folder id (shell.FOLDERID_*) + +Returns: + + Any + + """ + pass + + + def GetFolderIds(self,) -> 'Tuple[PyIID, ...]': + """ + Retrieves all known folder ids. + +Args: + + + +Returns: + + Tuple[PyIID, ...] + + """ + pass + + + def GetFolder(self,_id:'PyIID') -> 'Any': + """ + Returns a folder by its id. + +Args: + + _id(PyIID):A known folder id (shell.FOLDERID_*) + +Returns: + + Any + + """ + pass + + + def GetFolderByName(self,Name:'Any') -> 'Any': + """ + Returns a folder by canonical name + +Args: + + Name(Any):The nonlocalized name of a known folder + +Returns: + + Any + + """ + pass + + + def RegisterFolder(self,_id:'PyIID',Definition:'Any') -> 'None': + """ + Defines a new known folder + +Args: + + _id(PyIID):GUID used to identify the new known folder + Definition(Any):Dictionary containing info to be placed in a KNOWNFOLDER_DEFINITION structCommentsPyIKnownFolder::GetFolderDefinition can be used to get a template dictionary + +Returns: + + None + + """ + pass + + + def UnregisterFolder(self,_id:'PyIID') -> 'None': + """ + Removes the definition of a known folder + +Args: + + _id(PyIID):GUID of a known folder to be unregistered + +Returns: + + None + + """ + pass + + + def FindFolderFromPath(self,Path:'Any',Mode:'Any') -> 'Any': + """ + Retrieves a known folder by path + +Args: + + Path(Any):Path of a folder + Mode(Any):FFFP_EXACTMATCH or FFFP_NEARESTPARENTMATCH + +Returns: + + Any + + """ + pass + + + def FindFolderFromIDList(self,pidl:'Any') -> 'Any': + """ + Retrieves a known folder using its item id + +list. + +Args: + + pidl(Any):Item id list of the folder + +Returns: + + Any + + """ + pass + + + def Redirect(self,_id:'PyIID',hwnd:'int',flags:'Any',TargetPath:'Any',Exclusion:'Tuple[PyIID, ...]') -> 'None': + """ + Redirects a known folder to an alternate location + +Args: + + _id(PyIID):Id of the known folder to be redirected + hwnd(int):Handle of window to be used for user interaction + flags(Any):Combination of KF_REDIRECT_* flags + TargetPath(Any):Path to which the known folder will be redirected + Exclusion(Tuple[PyIID, ...]):Sequence of known folder ids of subfolders to be excluded from redirection + +Returns: + + None + + """ + pass + + +class PyILockBytes(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ReadAt(self,ulOffset:'ULARGE_INTEGER',cb:'Any') -> 'str': + """ + Reads a specified number of bytes starting at a specified offset from the + +beginning of the byte array object. + +Args: + + ulOffset(ULARGE_INTEGER):Offset to start reading + cb(Any):Number of bytes to readCommentsThe result is a binary buffer returned in a string. + +Returns: + + str + + """ + pass + + + def WriteAt(self,ulOffset:'ULARGE_INTEGER',data:'str') -> 'Any': + """ + Writes the specified number of bytes starting at a specified offset from the + +beginning of the byte array. + +Args: + + ulOffset(ULARGE_INTEGER):Offset to write at. + data(str):Data to writeReturn ValueThe result is the number of bytes actually written. + +Returns: + + Any:Data to writeReturn ValueThe result is the number of bytes actually written. + + + """ + pass + + + def Flush(self,) -> 'None': + """ + Ensures that any internal buffers maintained by the byte array object are written out + +to the backing storage. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSize(self,cb:'ULARGE_INTEGER') -> 'None': + """ + Changes the size of the byte array. + +Args: + + cb(ULARGE_INTEGER):The new size. + +Returns: + + None + + """ + pass + + + def LockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'Any') -> 'None': + """ + Restricts access to a specified range of bytes in the byte array. + +Args: + + libOffset(ULARGE_INTEGER):The beginning of the region to lock. + cb(ULARGE_INTEGER):The number of bytes to lock. + dwLockType(Any):Specifies the restrictions being requested on accessing the range. + +Returns: + + None + + """ + pass + + + def UnlockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'Any') -> 'None': + """ + None + +Args: + + libOffset(ULARGE_INTEGER):The beginning of the region to unlock. + cb(ULARGE_INTEGER):The number of bytes to lock. + dwLockType(Any):Specifies the restrictions being requested on accessing the range. + +Returns: + + None + + """ + pass + + + def Stat(self,grfStatFlag:'Any') -> 'Any': + """ + None + +Args: + + grfStatFlag(Any):Specifies that this method does not return some of the fields in the STATSTG structure, thus saving a memory allocation operation. Values are taken from the STATFLAG enumerationg + +Returns: + + Any + + """ + pass + + +class PyIMAPIContainer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens an object and returns an interface object for further access. + +Args: + + entryId(str):The EntryID to open. + iid(PyIID):The IID of the returned interface, or None for the default interface. + flags(Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) + +Returns: + + Any + + """ + pass + + + def GetContentsTable(self,flags:'Any') -> 'Any': + """ + Returns an object representing the container's contents table. + +Args: + + flags(Any):The flags to use. + +Returns: + + Any + + """ + pass + + + def GetHierarchyTable(self,flags:'Any') -> 'Any': + """ + Returns an object representing the container's hierarchy table. + +Args: + + flags(Any):The flags to use. + +Returns: + + Any + + """ + pass + + +class PyIMAPIFolder(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def CreateFolder(self,folderType:'Any',folderName:'str',folderComment:'str'=None,iid:'PyIID'=None,flags:'Any'=0) -> 'Any': + """ + Creates a folder object. + +Args: + + folderType(Any):The type of folder to create + folderName(str):The name of the folder. + folderComment(str):A comment for the folder or None + iid(PyIID):The IID of the object to return. Should usually be None. + flags(Any): + +Returns: + + Any + + """ + pass + + + def CreateMessage(self,iid:'PyIID',flags:'Any') -> 'Any': + """ + Creates a message in a folder + +Args: + + iid(PyIID):The IID of the object to return. Should usually be None. + flags(Any): + +Returns: + + Any + + """ + pass + + + def CopyMessages(self,msgs:'Any',iid:'PyIID',folder:'Any',ulUIParam:'Any',progress:'Any',flags:'Any') -> 'Any': + """ + Copies the specified messages + +Args: + + msgs(Any): + iid(PyIID):IID representing the interface to be used to access the destination folder. Should usually be None. + folder(Any):The destination folder + ulUIParam(Any):Handle of the parent window for any dialog boxes or windows this method displays. + progress(Any):A progress object, or None + flags(Any):A bitmask ofMaskDescriptionMAPI_DECLINE_OKInforms the message store provider to immediately return MAPI_E_DECLINE_COPY if it implements CopyMessage by calling the support object's IMAPISupport::DoCopyTo or IMAPISupport::DoCopyProps method.MESSAGE_DIALOGDisplays a progress indicator as the operation proceeds.MESSAGE_MOVEThe message or messages are to be moved rather than copied. If MESSAGE_MOVE is not set, the messages are copied. + +Returns: + + Any + + """ + pass + + + def DeleteFolder(self,entryId:'str',uiParam:'Any',progress:'Any') -> 'None': + """ + Deletes a subfolder. + +Args: + + entryId(str):The EntryID of the subfolder to delete. + uiParam(Any):Handle of the parent window of the progress indicator. + progress(Any):A progress object, or None + +Returns: + + None + + """ + pass + + + def DeleteMessages(self,msgs:'Any',uiParam:'Any',progress:'Any',flags:'Any') -> 'Any': + """ + Deletes the specified messages. + +Args: + + msgs(Any): + uiParam(Any):A HWND for the progress + progress(Any):A progress object, or None + flags(Any): + +Returns: + + Any + + """ + pass + + + def EmptyFolder(self,uiParam:'Any',progress:'Any',flags:'Any') -> 'Any': + """ + deletes all messages and subfolders from a folder without deleting the folder itself. + +Args: + + uiParam(Any):A HWND for the progress + progress(Any):A progress object, or None + flags(Any): + +Returns: + + Any + + """ + pass + + + def SetReadFlags(self,msgs:'Any',uiParam:'Any',progress:'Any',flag:'Any') -> 'None': + """ + Sets or clears the MSGFLAG_READ flag in the PR_MESSAGE_FLAGS (PidTagMessageFlags) property of one or more of the folder's messages, and manages the sending of read reports. + +Args: + + msgs(Any): + uiParam(Any):A HWND for the progress + progress(Any):A progress object, or None + flag(Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. + +Returns: + + None + + """ + pass + + +class PyIMAPIProp(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetProps(self,propList:'Any',flags:'Any'=0) -> 'Tuple[Any, Any, Any]': + """ + Returns a list of property values. + +Args: + + propList(Any):The list of properties + flags(Any): + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def DeleteProps(self,propList:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': + """ + Deletes a set of properties. + +Args: + + propList(Any):The list of properties + wantProblems(Any):Return detailed error information + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def SetProps(self,propList:'Tuple[Any, Any]',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': + """ + Sets a set of properties. + +Args: + + propList(Tuple[Any, Any]):The list of properties + wantProblems(Any):Return detailed error information + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def CopyTo(self,IIDExcludeList:'Tuple[Any, Any]',propTags:'Any',uiParam:'Any',progress:'Any',resultIID:'PyIID',dest:'Any',flags:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': + """ + Copies an object to another + +Args: + + IIDExcludeList(Tuple[Any, Any]):A sequence of IIDs to exclude. + propTags(Any):The property tags to exclude. + uiParam(Any):Handle to the parent window of the progress object + progress(Any):Reserved - must pass None + resultIID(PyIID):IID of the destination object + dest(Any):The destination object + flags(Any):flags + wantProblems(Any):Return detailed error information + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def CopyProps(self,propTags:'Any',uiParam:'Any',progress:'Any',resultIID:'PyIID',dest:'Any',flags:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': + """ + Copies a set of properties to another object + +Args: + + propTags(Any):The property tags to copy + uiParam(Any):Handle to the parent window of the progress object + progress(Any):Reserved - must pass None + resultIID(PyIID):IID of the destination object + dest(Any):The destination object + flags(Any):flags + wantProblems(Any):Return detailed error information + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def OpenProperty(self,propTag:'Any',iid:'PyIID',interfaceOptions:'Any',flags:'Any') -> 'Any': + """ + Returns an interface object to be used to access a property. + +Args: + + propTag(Any):The property tag to open + iid(PyIID):The IID of the resulting interface. + interfaceOptions(Any):Data that relates to the interface identified by the lpiid parameter. + flags(Any):flags + +Returns: + + Any + + """ + pass + + + def GetIDsFromNames(self,nameIds:'Any',flags:'Any'=0) -> 'Any': + """ + Determines property IDs + +Args: + + nameIds(Any):Sequence of name ids + flags(Any): + +Returns: + + Any + + """ + pass + + + def GetNamesFromIDs(self,propTags:'Any',propSetGuid:'PyIID'=None,flags:'Any'=0) -> 'Tuple[Any, Any, Any]': + """ + Determines property names + +Args: + + propTags(Any):Sequence of property tags, or None + propSetGuid(PyIID):a globally unique identifier, identifying a property set, or None + flags(Any): + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def SaveChanges(self,flags:'Any') -> 'None': + """ + Saves pending changes to the object + +Args: + + flags(Any):flags + +Returns: + + None + + """ + pass + + + def GetPropList(self,flags:'Any') -> 'Any': + """ + Gets a list of properties + +Args: + + flags(Any):flags + +Returns: + + Any + + """ + pass + + +class PyIMAPISession(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens an object and returns an interface object for further access. + +Args: + + entryId(str):The EntryID to open. + iid(PyIID):The IID of the returned interface, or None for the default interface. + flags(Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) + +Returns: + + Any + + """ + pass + + + def OpenMsgStore(self,uiParam:'Any',entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a message store. + +Args: + + uiParam(Any):Handle to the parent window for dialogs. + entryId(str):The entry ID of the message store to open. + iid(PyIID):The IID of the interface returned, or None + flags(Any):Options for the call.CommentsThe result is the interface specified by the IID, or IID_IMsgStore if None is used. + +Returns: + + Any + + """ + pass + + + def QueryIdentity(self,) -> 'str': + """ + Returns the entry identifier of the object that provides the primary identity for the session. + +Args: + + + +Returns: + + str + + """ + pass + + + def Advise(self,entryId:'str',mask:'Any',sink:'Any') -> 'Any': + """ + None + +Args: + + entryId(str):The entryID of the object + mask(Any): + sink(Any):Return ValueThe result is an integer which should be passed to PyIMAPISession::Unadvise + +Returns: + + Any:Return ValueThe result is an integer which should be passed to + +PyIMAPISession::Unadvise + + + """ + pass + + + def Unadvise(self,connection:'Any') -> 'None': + """ + None + +Args: + + connection(Any):Value returned from PyIMAPISession::Advise + +Returns: + + None + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def GetMsgStoresTable(self,flags:'Any') -> 'Any': + """ + Provides access to the message store table - a table with information about all of the message stores in the session profile. + +Args: + + flags(Any):Flags that control the opening. + +Returns: + + Any + + """ + pass + + + def GetStatusTable(self,flags:'Any') -> 'Any': + """ + Provides access to the status table - a table with information about all of the MAPI resources in the session. + +Args: + + flags(Any):Flags that control the opening. + +Returns: + + Any + + """ + pass + + + def Logoff(self,uiParm:'Any',flags:'Any',reserved:'Any') -> 'None': + """ + Ends a MAPI session. + +Args: + + uiParm(Any):hwnd of a dialog is to be displayed. + flags(Any):Bitmask of flags that control the logoff operation. + reserved(Any):Reserved; must be zero. + +Returns: + + None + + """ + pass + + + def OpenAddressBook(self,uiParm:'Any',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens the integrated address book. + +Args: + + uiParm(Any):hwnd of a dialog is to be displayed. + iid(PyIID):The IID of the interface, or None. + flags(Any):Flags that control the opening - AB_NO_DIALOG. + +Returns: + + Any + + """ + pass + + + def OpenProfileSection(self,iidSection:'PyIID',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a section of the current profile and returns an object for futher access + +Args: + + iidSection(PyIID):The MAPIIID of the profile section + iid(PyIID):The IID of the interface, or None. + flags(Any):Flags that control the opening. + +Returns: + + Any + + """ + pass + + + def AdminServices(self,flags:'Any'=0) -> 'Any': + """ + Provides access to a message service administration object for making changes to the message services. + +Args: + + flags(Any):reserved; must be zero. + +Returns: + + Any + + """ + pass + + +class PyIMAPIStatus(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ChangePassword(self,oldPassword:'Any',newPassword:'Any',ulFlags:'Any') -> 'None': + """ + None + +Args: + + oldPassword(Any): + newPassword(Any): + ulFlags(Any): + +Returns: + + None + + """ + pass + + + def SettingsDialog(self,ulUIParam:'Any',ulFlags:'Any') -> 'None': + """ + None + +Args: + + ulUIParam(Any): + ulFlags(Any): + +Returns: + + None + + """ + pass + + + def ValidateState(self,ulUIParam:'Any',ulFlags:'Any') -> 'None': + """ + None + +Args: + + ulUIParam(Any): + ulFlags(Any): + +Returns: + + None + + """ + pass + + + def FlushQueues(self,ulUIParam:'Any',transport:'str',ulFlags:'Any') -> 'None': + """ + None + +Args: + + ulUIParam(Any): + transport(str):Blob of data + ulFlags(Any): + +Returns: + + None + + """ + pass + + +class PyIMAPITable(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def Advise(self,eventMask:'Any',adviseSink:'Any') -> 'Any': + """ + Registers to receive notification of specified events affecting the table. + +Args: + + eventMask(Any): + adviseSink(Any): + +Returns: + + Any + + """ + pass + + + def SeekRow(self,bookmark:'Any',rowCount:'Any') -> 'Any': + """ + Moves the cursor to a specific position in the table. + +Args: + + bookmark(Any):The bookmark. + rowCount(Any):Return ValueThe result is the number of rows processed. + +Returns: + + Any:Return ValueThe result is the number of rows processed. + + + """ + pass + + + def SeekRowApprox(self,numerator:'Any',denominator:'Any') -> 'None': + """ + Moves the cursor to an approximate fractional position in the table. + +Args: + + numerator(Any):The numerator of the fraction representing the table position + denominator(Any):The denominator of the fraction representing the table position. This must not be zero. + +Returns: + + None + + """ + pass + + + def GetRowCount(self,flags:'Any') -> 'Any': + """ + Returns the total number of rows in the table. + +Args: + + flags(Any):Reserved - must be zero + +Returns: + + Any + + """ + pass + + + def QueryRows(self,rowCount:'Any',flags:'Any') -> 'Any': + """ + Returns one or more rows from a table, beginning at the current cursor position. + +Args: + + rowCount(Any):Number of rows to retrieve + flags(Any):Flags. + +Returns: + + Any + + """ + pass + + + def SetColumns(self,propTags:'Any',flags:'Any') -> 'None': + """ + Defines the particular properties and order of properties to appear as columns in the table. + +Args: + + propTags(Any):Sequence of property tags identifying properties to be included as columns in the table. + flags(Any): + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Returns the table's status and type. + +Args: + + + +Returns: + + None:PyIMAPITable.GetStatus +GetStatus()Returns the table's status and type. +Return ValueResult is a tuple of (tableStatus, tableType) + + + """ + pass + + + def QueryPosition(self,) -> 'None': + """ + Retrieves the current table row position of the cursor, based on a fractional value. + +Args: + + + +Returns: + + None:PyIMAPITable.QueryPosition +QueryPosition()Retrieves the current table row position of the cursor, based on a fractional value. +Return ValueResult is a tuple of (row, numerator, denominator) + + + """ + pass + + + def QueryColumns(self,flags:'Any') -> 'Any': + """ + Returns a list of columns for the table. + +Args: + + flags(Any): + +Returns: + + Any + + """ + pass + + + def Abort(self,) -> 'None': + """ + Stops any asynchronous operations currently in progress for the table. + +Args: + + + +Returns: + + None + + """ + pass + + + def FreeBookmark(self,bookmark:'Any') -> 'None': + """ + Releases the memory associated with a bookmark. + +Args: + + bookmark(Any): + +Returns: + + None + + """ + pass + + + def CreateBookmark(self,) -> 'Any': + """ + Marks the table's current position. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Restrict(self,restriction:'Any',flags:'Any') -> 'None': + """ + Applies a filter to a table, reducing the row set to only those rows matching the specified criteria. + +Args: + + restriction(Any): + flags(Any): + +Returns: + + None + + """ + pass + + + def FindRow(self,restriction:'Any',bookmarkOrigin:'Any',flags:'Any') -> 'None': + """ + Finds the next row in a table that matches specific search criteria. + +Args: + + restriction(Any): + bookmarkOrigin(Any): + flags(Any): + +Returns: + + None + + """ + pass + + + def SortTable(self,sortOrderSet:'Any',flags:'Any') -> 'None': + """ + Orders the rows of the table based on sort criteria. + +Args: + + sortOrderSet(Any): + flags(Any): + +Returns: + + None + + """ + pass + + + def Unadvise(self,handle:'Any') -> 'None': + """ + Cancels the sending of notifications previously set up with a call to the IMAPITable::Advise method. + +Args: + + handle(Any):Handle returned from PyIMAPITable::Advise + +Returns: + + None + + """ + pass + + +class PyIMachineDebugManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddApplication(self,pda:'Any') -> 'None': + """ + Description of AddApplication. + +Args: + + pda(Any):Description for pda + +Returns: + + None + + """ + pass + + + def RemoveApplication(self,dwAppCookie:'Any') -> 'None': + """ + Description of RemoveApplication. + +Args: + + dwAppCookie(Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def EnumApplications(self,) -> 'None': + """ + Description of EnumApplications. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIMachineDebugManagerEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onAddApplication(self,pda:'Any',dwAppCookie:'Any') -> 'None': + """ + Description of onAddApplication. + +Args: + + pda(Any):Description for pda + dwAppCookie(Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def onRemoveApplication(self,pda:'Any',dwAppCookie:'Any') -> 'None': + """ + Description of onRemoveApplication. + +Args: + + pda(Any):Description for pda + dwAppCookie(Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + +class PyIMessage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetReadFlag(self,flag:'Any') -> 'None': + """ + Sets the read flags for a message + +Args: + + flag(Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. + +Returns: + + None + + """ + pass + + + def GetAttachmentTable(self,flags:'Any') -> 'Any': + """ + Returns the message's attachment table. + +Args: + + flags(Any):Bitmask of flags that relate to the creation of the table. + +Returns: + + Any + + """ + pass + + + def OpenAttach(self,attachmentNum:'Any',interface:'PyIID',flags:'Any') -> 'Any': + """ + Opens an attachment + +Args: + + attachmentNum(Any): + interface(PyIID):The interface to use, or None + flags(Any):Bitmask of flags that controls how the attachment is opened. + +Returns: + + Any + + """ + pass + + + def CreateAttach(self,interface:'PyIID',flags:'Any') -> 'Tuple[Any, Any]': + """ + Creates an attachment + +Args: + + interface(PyIID):The interface to use, or None + flags(Any):Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) + +Returns: + + Tuple[Any, Any]:Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) + + + """ + pass + + + def DeleteAttach(self,attachmentNum:'Any',ulUIParam:'Any',interface:'Any',flags:'Any') -> 'None': + """ + Deletes an attachment + +Args: + + attachmentNum(Any): + ulUIParam(Any): + interface(Any):The interface to use, or None + flags(Any):Bitmask of flags that controls the display of a user interface. + +Returns: + + None + + """ + pass + + + def ModifyRecipients(self,flags:'Any',mods:'Any') -> 'None': + """ + adds, deletes, or modifies message recipients. + +Args: + + flags(Any):Bitmask of flags that controls the recipient changes. If zero is passed for the ulFlags parameter, ModifyRecipients replaces all existing recipients with the recipient list in the mods parameter. + mods(Any):The list of recipients. + +Returns: + + None + + """ + pass + + + def GetRecipientTable(self,flags:'Any') -> 'Any': + """ + Returns the message's recipient table. + +Args: + + flags(Any):Bitmask of flags that relate to the creation of the table. + +Returns: + + Any + + """ + pass + + + def SubmitMessage(self,flags:'Any') -> 'None': + """ + Saves all of the message's properties and marks the message as ready to be sent. + +Args: + + flags(Any):Flags which specify how the message is submitted. + +Returns: + + None + + """ + pass + + +class PyIMoniker(object): + """A Python interface to IMoniker""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToObject(self,bindCtx:'Any',moniker:'Any',iidResult:'Any') -> 'Any': + """ + Uses the moniker to bind to the object it identifies. + +Args: + + bindCtx(Any):bind context object to be used. + moniker(Any):If the moniker is part of a composite moniker, otherwise None + iidResult(Any):IID of the result object. + +Returns: + + Any + + """ + pass + + + def BindToStorage(self,bindCtx:'Any',moniker:'Any',iidResult:'Any') -> 'Any': + """ + Retrieves an interface object to the storage that contains the + +object identified by the moniker. + +Args: + + bindCtx(Any):bind context object to be used. + moniker(Any):If the moniker is part of a composite moniker, otherwise None + iidResult(Any):IID of the result object. + +Returns: + + Any + + """ + pass + + + def GetDisplayName(self,bindCtx:'Any',moniker:'Any') -> 'str': + """ + Gets the display name , which is a user-readable representation of this + +moniker. + +Args: + + bindCtx(Any):bind context object to be used. + moniker(Any):If the moniker is part of a composite moniker, otherwise None + +Returns: + + str + + """ + pass + + + def ComposeWith(self,mkRight:'Any',fOnlyIfNotGeneric:'Any') -> 'Any': + """ + Combines the current moniker with another moniker, creating a new + +composite moniker. + +Args: + + mkRight(Any):The IMoniker interface on the moniker to compose onto the end of this moniker. + fOnlyIfNotGeneric(Any):If TRUE, the caller requires a non-generic composition, so the operation should proceed only if pmkRight is a moniker class that this moniker can compose with in some way other than forming a generic composite. If FALSE, the method can create a generic composite if necessary. + +Returns: + + Any + + """ + pass + + + def Enum(self,fForward:'Any'=True) -> 'Any': + """ + Supplies an enumerator that can enumerate the components of a composite + +moniker. + +Args: + + fForward(Any):If TRUE, enumerates the monikers from left to right. If FALSE, enumerates from right to left. + +Returns: + + Any + + """ + pass + + + def IsEqual(self,other:'Any') -> 'Any': + """ + Compares this moniker with a specified moniker and indicates whether they are + +identical. + +Args: + + other(Any):The moniker to compare + +Returns: + + Any + + """ + pass + + + def IsSystemMoniker(self,) -> 'Any': + """ + Indicates whether this moniker is of one of the system-supplied moniker + +classes. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Hash(self,) -> 'Any': + """ + Calculates a 32-bit integer using the internal state of the moniker. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIMsgServiceAdmin(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def CreateMsgService(self,serviceName:'str',displayName:'str',flags:'Any',uiParam:'Any'=0) -> 'None': + """ + Creates a message service. + +Args: + + serviceName(str):The name of the service. + displayName(str):Display name of the service, or None + flags(Any):A bitmask of flags that controls how the message service is installed. + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + +Returns: + + None + + """ + pass + + + def ConfigureMsgService(self,iid:'PyIID',ulUIParam:'Any',ulFlags:'Any',arg:'List[Any]') -> 'None': + """ + Reconfigures a message service. + +Args: + + iid(PyIID):The unique identifier for the message service to configure. + ulUIParam(Any):Handle of the parent window for the configuration property sheet. + ulFlags(Any):Bitmask of flags that controls the display of the property sheet. + arg(List[Any]):Property values describing the properties to display in the property sheet. Should not be None if the service is to be configured without a message service. + +Returns: + + None + + """ + pass + + + def GetMsgServiceTable(self,flags:'Any') -> 'Any': + """ + Retrieves a table of services. + +Args: + + flags(Any): + +Returns: + + Any + + """ + pass + + + def GetProviderTable(self,flags:'Any') -> 'Any': + """ + Retrieves a table of service providers. + +Args: + + flags(Any): + +Returns: + + Any + + """ + pass + + + def DeleteMsgService(self,uuid:'PyIID') -> 'None': + """ + Deletes the specified service + +Args: + + uuid(PyIID):The ID of the service + +Returns: + + None + + """ + pass + + + def RenameMsgService(self,uuid:'PyIID',flags:'Any',newName:'str') -> 'None': + """ + Renames the specified service + +Args: + + uuid(PyIID):The ID of the service + flags(Any): + newName(str):The new name for the service.CommentsThis is deprecated, and there is no replacement referenced to use instead. + +Returns: + + None + + """ + pass + + + def OpenProfileSection(self,uuid:'PyIID',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a profile section + +Args: + + uuid(PyIID):The ID of the service + iid(PyIID):The IID of the resulting object, or None for the default + flags(Any): + +Returns: + + Any + + """ + pass + + + def AdminProviders(self,uuid:'PyIID',flags:'Any') -> 'Any': + """ + Returns an object providing access + +to a provider administration object. + +Args: + + uuid(PyIID):The ID of the service + flags(Any): + +Returns: + + Any + + """ + pass + + +class PyIMsgStore(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a folder or message and returns an interface object for further access. + +Args: + + entryId(str):The entryID of the object + iid(PyIID):The IID of the object to return, or None for the default IID + flags(Any):Bitmask of flags that controls how the object is opened. + +Returns: + + Any + + """ + pass + + + def GetReceiveFolder(self,messageClass:'str'=None,flags:'Any'=0) -> 'Tuple[PyIID, str]': + """ + Obtains the folder that was established as the destination for incoming messages of a specified message class or the default receive folder for the message store. + +Args: + + messageClass(str):Message class that is associated with a receive folder. If this parameter is set to None or an empty string, GetReceiveFolder returns the default receive folder for the message store. + flags(Any): + +Returns: + + Tuple[PyIID, str] + + """ + pass + + + def GetReceiveFolderTable(self,flags:'Any') -> 'Any': + """ + provides access to the receive folder table, a table that includes information about all of the receive folders for the message store. + +Args: + + flags(Any):Bitmask of flags that controls table access + +Returns: + + Any + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def AbortSubmit(self,entryId:'str',flags:'Any'=0) -> 'Any': + """ + Attempts to remove a message from the outgoing queue. + +Args: + + entryId(str):The entry ID of the item to be aborted. + flags(Any):Reserved - must be zero. + +Returns: + + Any + + """ + pass + + + def Advise(self,entryId:'str',eventMask:'Any',adviseSink:'Any') -> 'None': + """ + Registers to receive notification of specified events that affect the message store. + +Args: + + entryId(str):entry identifier of the folder or message about which notifications should be generated, or None + eventMask(Any):A mask of values that indicate the types of notification events. + adviseSink(Any):An advise sink. + +Returns: + + None + + """ + pass + + + def Unadvise(self,connection:'Any') -> 'None': + """ + Cancels the sending of notifications previously set up with a call to the IMsgStore::Advise method. + +Args: + + connection(Any):Connection number returned from PyIMsgStore::Advise + +Returns: + + None + + """ + pass + + +class PyINameSpaceTreeControl(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,hwndParent:'Union[Any]',prc:'Tuple[Any, Any, Any, Any]',nsctsFlags:'Any') -> 'None': + """ + Description of Initialize. + +Args: + + hwndParent(Union[Any]):Description for hwndParent + prc(Tuple[Any, Any, Any, Any]):Description for prc + nsctsFlags(Any):Description for nsctsFlags + +Returns: + + None + + """ + pass + + + def TreeAdvise(self,punk:'Any') -> 'None': + """ + Description of TreeAdvise. + +Args: + + punk(Any):Description for punk + +Returns: + + None + + """ + pass + + + def TreeUnadvise(self,dwCookie:'Any') -> 'None': + """ + Description of TreeUnadvise. + +Args: + + dwCookie(Any):Description for dwCookie + +Returns: + + None + + """ + pass + + + def AppendRoot(self,psiRoot:'Any',grfEnumFlags:'Any',grfRootStyle:'Any',pif:'Any') -> 'None': + """ + Description of AppendRoot. + +Args: + + psiRoot(Any):Description for psiRoot + grfEnumFlags(Any):Description for grfEnumFlags + grfRootStyle(Any):Description for grfRootStyle + pif(Any):Description for pif + +Returns: + + None + + """ + pass + + + def InsertRoot(self,iIndex:'Any',psiRoot:'Any',grfEnumFlags:'Any',grfRootStyle:'Any',pif:'Any') -> 'None': + """ + Description of InsertRoot. + +Args: + + iIndex(Any):Description for iIndex + psiRoot(Any):Description for psiRoot + grfEnumFlags(Any):Description for grfEnumFlags + grfRootStyle(Any):Description for grfRootStyle + pif(Any):Description for pif + +Returns: + + None + + """ + pass + + + def RemoveRoot(self,psiRoot:'Any') -> 'None': + """ + Description of RemoveRoot. + +Args: + + psiRoot(Any):Description for psiRoot + +Returns: + + None + + """ + pass + + + def RemoveAllRoots(self,) -> 'None': + """ + Description of RemoveAllRoots. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootItems(self,) -> 'None': + """ + Description of GetRootItems. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetItemState(self,psi:'Any',nstcisMask:'Any',nstcisFlags:'Any') -> 'None': + """ + Description of SetItemState. + +Args: + + psi(Any):Description for psi + nstcisMask(Any):Description for nstcisMask + nstcisFlags(Any):Description for nstcisFlags + +Returns: + + None + + """ + pass + + + def GetItemState(self,psi:'Any',nstcisMask:'Any') -> 'None': + """ + Description of GetItemState. + +Args: + + psi(Any):Description for psi + nstcisMask(Any):Description for nstcisMask + +Returns: + + None + + """ + pass + + + def GetSelectedItems(self,) -> 'None': + """ + Description of GetSelectedItems. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetItemCustomState(self,psi:'Any') -> 'None': + """ + Description of GetItemCustomState. + +Args: + + psi(Any):Description for psi + +Returns: + + None + + """ + pass + + + def SetItemCustomState(self,psi:'Any',iStateNumber:'Any') -> 'None': + """ + Description of SetItemCustomState. + +Args: + + psi(Any):Description for psi + iStateNumber(Any):Description for iStateNumber + +Returns: + + None + + """ + pass + + + def EnsureItemVisible(self,psi:'Any') -> 'None': + """ + Description of EnsureItemVisible. + +Args: + + psi(Any):Description for psi + +Returns: + + None + + """ + pass + + + def SetTheme(self,pszTheme:'Any') -> 'None': + """ + Description of SetTheme. + +Args: + + pszTheme(Any):Description for pszTheme + +Returns: + + None + + """ + pass + + + def GetNextItem(self,psi:'Any',nstcgi:'Any') -> 'None': + """ + Description of GetNextItem. + +Args: + + psi(Any):Description for psi + nstcgi(Any):Description for nstcgi + +Returns: + + None + + """ + pass + + + def HitTest(self,pt:'Tuple[Any, Any]') -> 'None': + """ + Description of HitTest. + +Args: + + pt(Tuple[Any, Any]):Description for ppt + +Returns: + + None + + """ + pass + + + def GetItemRect(self,) -> 'None': + """ + Description of GetItemRect. + +Args: + + + +Returns: + + None + + """ + pass + + + def CollapseAll(self,) -> 'None': + """ + Description of CollapseAll. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyINamedPropertyStore(object): + """Contains a collection of properties indentified by name""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetNamedValue(self,Name:'Any') -> 'Any': + """ + Retrieves a property value by name + +Args: + + Name(Any):Name of the property + +Returns: + + Any + + """ + pass + + + def SetNamedValue(self,propvar:'Any') -> 'None': + """ + Sets the value of a property + +Args: + + propvar(Any):Description for propvar + +Returns: + + None + + """ + pass + + + def GetNameCount(self,) -> 'Any': + """ + Retrieves the number of named properties in the store + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNameAt(self,Index:'Any') -> 'Any': + """ + Retrieves a property name by zero-based index + +Args: + + Index(Any):Index of the property name + +Returns: + + Any + + """ + pass + + +class PyIObjectArray(object): + """Holds a collection of interface objects""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Returns number of objects in collection + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,Index:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves an item by zero-based index + +Args: + + Index(Any):Index of item to retrieve + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + +class PyIObjectCollection(object): + """Modifiable container for a number of IUnknown objects""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddObject(self,punk:'Any') -> 'None': + """ + Adds a single object to the collection + +Args: + + punk(Any):Object to be added + +Returns: + + None + + """ + pass + + + def AddFromArray(self,Source:'Any') -> 'None': + """ + None + +Args: + + Source(Any):Objects to be added to the collection + +Returns: + + None + + """ + pass + + + def RemoveObjectAt(self,Index:'Any') -> 'None': + """ + Removes a single object from the collection + +Args: + + Index(Any):Zero-based index of item to remove + +Returns: + + None + + """ + pass + + + def Clear(self,) -> 'None': + """ + Empties the container. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIObjectWithPropertyKey(object): + """Interface implemented by objects that have an associated property id""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetPropertyKey(self,key:'Any') -> 'None': + """ + Sets the property id + +Args: + + key(Any):The identifier of the property + +Returns: + + None + + """ + pass + + + def GetPropertyKey(self,) -> 'Any': + """ + Returns the property id + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIObjectWithSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSite(self,pUnkSite:'Any') -> 'None': + """ + Description of SetSite. + +Args: + + pUnkSite(Any):Description for pUnkSite + +Returns: + + None + + """ + pass + + + def GetSite(self,riid:'PyIID') -> 'None': + """ + Description of GetSite. + +Args: + + riid(PyIID):Description for riid + +Returns: + + None + + """ + pass + + +class PyIOleClientSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SaveObject(self,) -> 'None': + """ + Description of SaveObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMoniker(self,dwAssign:'Any',dwWhichMoniker:'Any') -> 'None': + """ + Description of GetMoniker. + +Args: + + dwAssign(Any):Description for dwAssign + dwWhichMoniker(Any):Description for dwWhichMoniker + +Returns: + + None + + """ + pass + + + def GetContainer(self,) -> 'None': + """ + Description of GetContainer. + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowObject(self,) -> 'None': + """ + Description of ShowObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnShowWindow(self,fShow:'Any') -> 'None': + """ + Description of OnShowWindow. + +Args: + + fShow(Any):Description for fShow + +Returns: + + None + + """ + pass + + + def RequestNewObjectLayout(self,) -> 'None': + """ + Description of RequestNewObjectLayout. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleCommandTarget(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryStatus(self,) -> 'None': + """ + Description of QueryStatus. + +Args: + + + +Returns: + + None + + """ + pass + + + def Exec(self,) -> 'None': + """ + Description of Exec. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleControl(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetControlInfo(self,) -> 'None': + """ + Description of GetControlInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnMnemonic(self,msg:'Any') -> 'None': + """ + Description of OnMnemonic. + +Args: + + msg(Any):A tuple representing a MSG structure. + +Returns: + + None + + """ + pass + + + def OnAmbientPropertyChange(self,dispID:'Any') -> 'None': + """ + Description of OnAmbientPropertyChange. + +Args: + + dispID(Any):Description for dispID + +Returns: + + None + + """ + pass + + + def FreezeEvents(self,bFreeze:'Any') -> 'None': + """ + Description of FreezeEvents. + +Args: + + bFreeze(Any):Description for bFreeze + +Returns: + + None + + """ + pass + + +class PyIOleControlSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnControlInfoChanged(self,) -> 'None': + """ + Description of OnControlInfoChanged. + +Args: + + + +Returns: + + None + + """ + pass + + + def LockInPlaceActive(self,fLock:'Any') -> 'None': + """ + Description of LockInPlaceActive. + +Args: + + fLock(Any):Description for fLock + +Returns: + + None + + """ + pass + + + def GetExtendedControl(self,) -> 'None': + """ + Description of GetExtendedControl. + +Args: + + + +Returns: + + None + + """ + pass + + + def TransformCoords(self,PtlHimetric:'Tuple[Any, Any]',pPtfContainer:'Tuple[float, float]',dwFlags:'Any') -> 'None': + """ + Description of TransformCoords. + +Args: + + PtlHimetric(Tuple[Any, Any]):Description for pPtlHimetric + pPtfContainer(Tuple[float, float]):Description for pPtfContainer + dwFlags(Any):Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, a tuple of ((int, int), (float, float)) + +Returns: + + None:Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, + +a tuple of ((int, int), (float, float)) + + + """ + pass + + + def TranslateAccelerator(self,pMsg:'PyMSG',grfModifiers:'Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + pMsg(PyMSG):Description for pMsg + grfModifiers(Any):Description for grfModifiers + +Returns: + + None + + """ + pass + + + def OnFocus(self,fGotFocus:'Any') -> 'None': + """ + Description of OnFocus. + +Args: + + fGotFocus(Any):Description for fGotFocus + +Returns: + + None + + """ + pass + + + def ShowPropertyFrame(self,) -> 'None': + """ + Description of ShowPropertyFrame. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceActiveObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,lpmsg:'PyMSG') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpmsg(PyMSG):Description for lpmsg + +Returns: + + None + + """ + pass + + + def OnFrameWindowActivate(self,fActivate:'Any') -> 'None': + """ + Description of OnFrameWindowActivate. + +Args: + + fActivate(Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def OnDocWindowActivate(self,fActivate:'Any') -> 'None': + """ + Description of OnDocWindowActivate. + +Args: + + fActivate(Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def ResizeBorder(self,rcBorder:'Tuple[Any, Any, Any, Any]',pUIWindow:'Any',fFrameWindow:'Any') -> 'None': + """ + Description of ResizeBorder. + +Args: + + rcBorder(Tuple[Any, Any, Any, Any]):Description for prcBorder + pUIWindow(Any):Description for pUIWindow + fFrameWindow(Any):Description for fFrameWindow + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(Any):Description for fEnable + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceFrame(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertMenus(self,hmenuShared:'Union[Any]',menuWidths:'Any') -> 'None': + """ + Description of InsertMenus. + +Args: + + hmenuShared(Union[Any]):Description for hmenuShared + menuWidths(Any): + +Returns: + + None + + """ + pass + + + def SetMenu(self,hmenuShared:'Union[Any]',holemenu:'Union[Any]',hwndActiveObject:'Union[Any]') -> 'None': + """ + Description of SetMenu. + +Args: + + hmenuShared(Union[Any]):Description for hmenuShared + holemenu(Union[Any]):Description for holemenu + hwndActiveObject(Union[Any]):Description for hwndActiveObject + +Returns: + + None + + """ + pass + + + def RemoveMenus(self,hmenuShared:'Union[Any]') -> 'None': + """ + Description of RemoveMenus. + +Args: + + hmenuShared(Union[Any]):Description for hmenuShared + +Returns: + + None + + """ + pass + + + def SetStatusText(self,pszStatusText:'Any') -> 'None': + """ + Description of SetStatusText. + +Args: + + pszStatusText(Any):Description for pszStatusText + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def TranslateAccelerator(self,lpmsg:'PyMSG',wID:'Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpmsg(PyMSG):Description for lpmsg + wID(Any):Description for wID + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InPlaceDeactivate(self,) -> 'None': + """ + Description of InPlaceDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def UIDeactivate(self,) -> 'None': + """ + Description of UIDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetObjectRects(self,) -> 'None': + """ + Description of SetObjectRects. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReactivateAndUndo(self,) -> 'None': + """ + Description of ReactivateAndUndo. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanInPlaceActivate(self,) -> 'None': + """ + Description of CanInPlaceActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnInPlaceActivate(self,) -> 'None': + """ + Description of OnInPlaceActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnUIActivate(self,) -> 'None': + """ + Description of OnUIActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetWindowContext(self,) -> 'None': + """ + Description of GetWindowContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def Scroll(self,) -> 'None': + """ + Description of Scroll. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnUIDeactivate(self,fUndoable:'Any') -> 'None': + """ + Description of OnUIDeactivate. + +Args: + + fUndoable(Any):Description for fUndoable + +Returns: + + None + + """ + pass + + + def OnInPlaceDeactivate(self,) -> 'None': + """ + Description of OnInPlaceDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def DiscardUndoState(self,) -> 'None': + """ + Description of DiscardUndoState. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeactivateAndUndo(self,) -> 'None': + """ + Description of DeactivateAndUndo. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnPosRectChange(self,) -> 'None': + """ + Description of OnPosRectChange. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSiteEx(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnInPlaceActivateEx(self,dwFlags:'Any') -> 'None': + """ + Description of OnInPlaceActivateEx. + +Args: + + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def OnInPlaceDeactivateEx(self,fNoRedraw:'Any') -> 'None': + """ + Description of OnInPlaceDeactivateEx. + +Args: + + fNoRedraw(Any):Description for fNoRedraw + +Returns: + + None + + """ + pass + + + def RequestUIActivate(self,) -> 'None': + """ + Description of RequestUIActivate. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSiteWindowless(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanWindowlessActivate(self,) -> 'None': + """ + Description of CanWindowlessActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCapture(self,) -> 'None': + """ + Description of GetCapture. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCapture(self,fCapture:'Any') -> 'None': + """ + Description of SetCapture. + +Args: + + fCapture(Any):Description for fCapture + +Returns: + + None + + """ + pass + + + def GetFocus(self,) -> 'None': + """ + Description of GetFocus. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFocus(self,fFocus:'Any') -> 'None': + """ + Description of SetFocus. + +Args: + + fFocus(Any):Description for fFocus + +Returns: + + None + + """ + pass + + + def GetDC(self,grfFlags:'Any',rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Description of GetDC. + +Args: + + grfFlags(Any):Description for grfFlags + rect(Tuple[Any, Any, Any, Any]): + +Returns: + + None + + """ + pass + + + def ReleaseDC(self,hDC:'Any') -> 'None': + """ + Description of ReleaseDC. + +Args: + + hDC(Any):Description for hDC + +Returns: + + None + + """ + pass + + + def InvalidateRect(self,rect:'Tuple[Any, Any, Any, Any]',fErase:'Any') -> 'None': + """ + Description of InvalidateRect. + +Args: + + rect(Tuple[Any, Any, Any, Any]): + fErase(Any):Description for fErase + +Returns: + + None + + """ + pass + + + def InvalidateRgn(self,hRgn:'Any',fErase:'Any') -> 'None': + """ + Description of InvalidateRgn. + +Args: + + hRgn(Any):Handle to a region + fErase(Any):Description for fErase + +Returns: + + None + + """ + pass + + + def ScrollRect(self,dx:'Any',dy:'Any') -> 'None': + """ + Description of ScrollRect. + +Args: + + dx(Any):Description for dx + dy(Any):Description for dy + +Returns: + + None + + """ + pass + + + def AdjustRect(self,) -> 'None': + """ + Description of AdjustRect. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnDefWindowMessage(self,msg:'Any',wParam:'Any',lParam:'Any') -> 'None': + """ + Description of OnDefWindowMessage. + +Args: + + msg(Any):Description for msg + wParam(Any):Description for wParam + lParam(Any):Description for lParam + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceUIWindow(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetBorder(self,) -> 'None': + """ + Description of GetBorder. + +Args: + + + +Returns: + + None + + """ + pass + + + def RequestBorderSpace(self,borderwidths:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Description of RequestBorderSpace. + +Args: + + borderwidths(Tuple[Any, Any, Any, Any]):Description for pborderwidths + +Returns: + + None + + """ + pass + + + def SetBorderSpace(self,borderwidths:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Description of SetBorderSpace. + +Args: + + borderwidths(Tuple[Any, Any, Any, Any]):Description for pborderwidths + +Returns: + + None + + """ + pass + + + def SetActiveObject(self,pActiveObject:'Any',pszObjName:'Any') -> 'None': + """ + Description of SetActiveObject. + +Args: + + pActiveObject(Any):Description for pActiveObject + pszObjName(Any):Description for pszObjName + +Returns: + + None + + """ + pass + + +class PyIOleObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetClientSite(self,pClientSite:'Any') -> 'None': + """ + Description of SetClientSite. + +Args: + + pClientSite(Any):Description for pClientSite + +Returns: + + None + + """ + pass + + + def GetClientSite(self,) -> 'None': + """ + Description of GetClientSite. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetHostNames(self,szContainerApp:'Any',szContainerObj:'Any') -> 'None': + """ + Description of SetHostNames. + +Args: + + szContainerApp(Any):Description for szContainerApp + szContainerObj(Any):Description for szContainerObj + +Returns: + + None + + """ + pass + + + def Close(self,dwSaveOption:'Any') -> 'None': + """ + Description of Close. + +Args: + + dwSaveOption(Any):Description for dwSaveOption + +Returns: + + None + + """ + pass + + + def SetMoniker(self,dwWhichMoniker:'Any',pmk:'Any') -> 'None': + """ + Description of SetMoniker. + +Args: + + dwWhichMoniker(Any):Description for dwWhichMoniker + pmk(Any):Description for pmk + +Returns: + + None + + """ + pass + + + def GetMoniker(self,dwAssign:'Any',dwWhichMoniker:'Any') -> 'None': + """ + Description of GetMoniker. + +Args: + + dwAssign(Any):Description for dwAssign + dwWhichMoniker(Any):Description for dwWhichMoniker + +Returns: + + None + + """ + pass + + + def InitFromData(self,pDataObject:'Any',fCreation:'Any',dwReserved:'Any') -> 'None': + """ + Description of InitFromData. + +Args: + + pDataObject(Any):Description for pDataObject + fCreation(Any):Description for fCreation + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def GetClipboardData(self,dwReserved:'Any') -> 'None': + """ + Description of GetClipboardData. + +Args: + + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def DoVerb(self,iVerb:'Any',msg:'PyMSG',pActiveSite:'Any',lindex:'Any',hwndParent:'Any',rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Description of DoVerb. + +Args: + + iVerb(Any):Description for iVerb + msg(PyMSG):MSG tuple, a-la win32gui etc. + pActiveSite(Any):Description for pActiveSite + lindex(Any):Description for lindex + hwndParent(Any):Description for hwndParent + rect(Tuple[Any, Any, Any, Any]): + +Returns: + + None + + """ + pass + + + def EnumVerbs(self,) -> 'None': + """ + Description of EnumVerbs. + +Args: + + + +Returns: + + None + + """ + pass + + + def Update(self,) -> 'None': + """ + Description of Update. + +Args: + + + +Returns: + + None + + """ + pass + + + def IsUpToDate(self,) -> 'None': + """ + Description of IsUpToDate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserClassID(self,) -> 'None': + """ + Description of GetUserClassID. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserType(self,dwFormOfType:'Any') -> 'None': + """ + Description of GetUserType. + +Args: + + dwFormOfType(Any):Description for dwFormOfType + +Returns: + + None + + """ + pass + + + def SetExtent(self,dwDrawAspect:'Any',size:'Tuple[Any, Any]') -> 'None': + """ + Description of SetExtent. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + size(Tuple[Any, Any]):Size limit for the object. + +Returns: + + None + + """ + pass + + + def GetExtent(self,dwDrawAspect:'Any',size:'Tuple[Any, Any]') -> 'None': + """ + Description of GetExtent. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + size(Tuple[Any, Any]):Size limit for the object. + +Returns: + + None + + """ + pass + + + def Advise(self,pAdvSink:'Any') -> 'None': + """ + Description of Advise. + +Args: + + pAdvSink(Any):Description for pAdvSink + +Returns: + + None + + """ + pass + + + def Unadvise(self,dwConnection:'Any') -> 'None': + """ + Description of Unadvise. + +Args: + + dwConnection(Any):Description for dwConnection + +Returns: + + None + + """ + pass + + + def EnumAdvise(self,) -> 'None': + """ + Description of EnumAdvise. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMiscStatus(self,dwAspect:'Any') -> 'None': + """ + Description of GetMiscStatus. + +Args: + + dwAspect(Any):Description for dwAspect + +Returns: + + None + + """ + pass + + + def SetColorScheme(self,) -> 'None': + """ + Description of SetColorScheme. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleWindow(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetWindow(self,) -> 'None': + """ + Description of GetWindow. + +Args: + + + +Returns: + + None + + """ + pass + + + def ContextSensitiveHelp(self,fEnterMode:'Any') -> 'None': + """ + Description of ContextSensitiveHelp. + +Args: + + fEnterMode(Any):Description for fEnterMode + +Returns: + + None + + """ + pass + + +class PyIPersist(object): + """A Python interface to IPersist""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassID(self,) -> 'PyIID': + """ + Returns the class identifier (CLSID) for the component object. + +Args: + + + +Returns: + + PyIID + + """ + pass + + +class PyIPersistFile(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'None': + """ + Checks an object for changes since it was last saved to its current file. + +Args: + + + +Returns: + + None:PyIPersistFile.IsDirty +IsDirty()Checks an object for changes since it was last saved to its current file. +Return ValueThis method returns the raw COM error code without raising the normal COM exception. + +You should treat any error return codes as an indication that the object has changed. + +Unless this method explicitly returns S_FALSE, assume that the object must be saved. + + + """ + pass + + + def Load(self,FileName:'Any',Mode:'Any') -> 'None': + """ + Opens the specified file and initializes an object from the file contents. + +Args: + + FileName(Any):Absolute path of the file to open + Mode(Any):Specifies the access mode from the STGM enumeration. + +Returns: + + None + + """ + pass + + + def Save(self,FileName:'Any',fRemember:'Any') -> 'None': + """ + Saves the object into the specified file. + +Args: + + FileName(Any):absolute path of the file where the object is saved. + fRemember(Any):Specifies whether the file is to be the current working file or not. + +Returns: + + None + + """ + pass + + + def SaveCompleted(self,FileName:'Any') -> 'None': + """ + Notifies the object that it can revert from NoScribble mode to Normal mode. + +Args: + + FileName(Any):Absolute path of the file where the object was saved. + +Returns: + + None + + """ + pass + + + def GetCurFile(self,) -> 'Any': + """ + Gets the current name of the file associated with the object. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIPersistFolder(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,pidl:'Any') -> 'None': + """ + Description of Initialize. + +Args: + + pidl(Any):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIPersistFolder2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCurFolder(self,) -> 'None': + """ + Description of GetCurFolder. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPersistPropertyBag(object): + """A Python wrapper for a COM IPersistPropertyBag interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InitNew(self,) -> 'None': + """ + Called by the container when the control is initialized to initialize the + +property bag. + +Args: + + + +Returns: + + None + + """ + pass + + + def Load(self,bag:'Any',log:'Any'=None) -> 'None': + """ + Called by the container to load the control's properties. + +Args: + + bag(Any):the caller's property bag. + log(Any):the caller's error log, or None + +Returns: + + None + + """ + pass + + + def Save(self,bag:'Any',clearDirty:'Any',saveProperties:'Any') -> 'None': + """ + Called by the container to save the object's properties. + +Args: + + bag(Any):the caller's property bag. + clearDirty(Any):Specifies whether to clear the dirty flag. + saveProperties(Any):Specifies whether to save all properties or just those that have changed + +Returns: + + None + + """ + pass + + +class PyIPersistSerializedPropStorage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetFlags(self,flags:'Any') -> 'None': + """ + Sets flags for the store + +Args: + + flags(Any):Combination of pscon.FPSPS_* values + +Returns: + + None + + """ + pass + + + def SetPropertyStorage(self,ps:'Any') -> 'None': + """ + Initializes the store with a serialized buffer + +Args: + + ps(Any):Bytes or buffer object containing a serialized property store + +Returns: + + None + + """ + pass + + + def GetPropertyStorage(self,) -> 'Any': + """ + Retrieves the current contents of the property + +store + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIPersistStorage(object): + """A Python wrapper of a COM IPersistStorage interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'Any': + """ + Checks the object for changes since it was last saved. + +Args: + + + +Returns: + + Any + + """ + pass + + + def InitNew(self,PyIStorage:'Any') -> 'None': + """ + Initializes a new object, providing a storage object to be used for the object. + +Args: + + PyIStorage(Any):PyIStorage for the new storage object to be initialized. The container creates a nested storage object in its storage object (see PyIStorage::CreateStorage). Then, the container calls the PyIPersistStorage::WriteClassStg function to initialize the new storage object with the object class identifier (CLSID). + +Returns: + + None + + """ + pass + + + def Load(self,storage:'Any') -> 'None': + """ + Loads an object from its existing storage. + +Args: + + storage(Any):Existing storage for the object. + +Returns: + + None + + """ + pass + + + def Save(self,PyIStorage:'Any',_int:'Any') -> 'None': + """ + None + +Args: + + PyIStorage(Any):Storage for the object + _int(Any):Indicates whether the specified storage object is the current one. This parameter is set to FALSE when performing a Save As or Save A Copy To operation or when performing a full save. In the latter case, this method saves to a temporary file, deletes the original file, and renames the temporary file. This parameter is set to TRUE to perform a full save in a low-memory situation or to perform a fast incremental save in which only the dirty components are saved. + +Returns: + + None + + """ + pass + + + def SaveCompleted(self,PyIStorage:'Any') -> 'None': + """ + None + +Args: + + PyIStorage(Any):The current storage object + +Returns: + + None + + """ + pass + + + def HandsOffStorage(self,) -> 'None': + """ + Instructs the object to release all storage objects that have been + +passed to it by its container and to enter HandsOff mode, in which the object cannot do anything and the only + +operation that works is a close operation. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPersistStream(object): + """A Python interface to IPersistStream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'Any': + """ + Checks the object for changes since it was last saved. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Load(self,stream:'Any') -> 'None': + """ + Initializes an object from the stream where it was previously saved. + +Args: + + stream(Any):Stream object to load from.CommentsThis method loads an object from its associated stream. The seek pointer is set as it was in the most recent PyIPersistStream::Save method. This method can seek and read from the stream, but cannot write to it.On exit, the seek pointer must be in the same position it was in on entry, immediately past the end of the data. + +Returns: + + None + + """ + pass + + + def Save(self,stream:'Any',bClearDirty:'Any') -> 'None': + """ + Saves an object to the specified stream. + +Args: + + stream(Any):The stream to save to. + bClearDirty(Any):Indicates whether to clear the dirty flag after the save is complete + +Returns: + + None + + """ + pass + + + def GetSizeMax(self,) -> 'ULARGE_INTEGER': + """ + Returns the size in bytes of the stream needed to save the + +object. + +Args: + + + +Returns: + + ULARGE_INTEGER + + """ + pass + + +class PyIPersistStreamInit(object): + """A Python interface to IPersistStreamInit""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InitNew(self,) -> 'None': + """ + Initializes the object to a default state. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProcessDebugManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateApplication(self,) -> 'None': + """ + Description of CreateApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDefaultApplication(self,) -> 'None': + """ + Description of GetDefaultApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddApplication(self,pda:'Any') -> 'None': + """ + Description of AddApplication. + +Args: + + pda(Any):Description for pda + +Returns: + + None + + """ + pass + + + def RemoveApplication(self,dwAppCookie:'Any') -> 'None': + """ + Description of RemoveApplication. + +Args: + + dwAppCookie(Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def CreateDebugDocumentHelper(self,unkOuter:'Any') -> 'None': + """ + Description of CreateDebugDocumentHelper. + +Args: + + unkOuter(Any):The outer object for aggregation, or (usually!) None + +Returns: + + None + + """ + pass + + +class PyIProfAdmin(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def CreateProfile(self,oldProfileName:'str',Password:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': + """ + Creates a new profile. + +Args: + + oldProfileName(str):The name of the new profile. + Password(str):Must be None + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(Any): + +Returns: + + None + + """ + pass + + + def DeleteProfile(self,oldProfileName:'str',flags:'Any'=0) -> 'None': + """ + Deletes a profile. + +Args: + + oldProfileName(str):The name of the profile to be deleted. + flags(Any): + +Returns: + + None + + """ + pass + + + def CopyProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': + """ + Copies a profile. + +Args: + + oldProfileName(str):The name of the profile to copy. + Password(str):Must be None + newProfileName(str):The new name of the copied profile. + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(Any): + +Returns: + + None + + """ + pass + + + def RenameProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': + """ + Assigns a new name to a profile. + +Args: + + oldProfileName(str):The current name of the profile to rename. + Password(str):Must be None + newProfileName(str):The new name of the profile to rename. + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(Any): + +Returns: + + None + + """ + pass + + + def SetDefaultProfile(self,profileName:'str',flags:'Any'=0) -> 'None': + """ + Sets or clears a client's default profile. + +Args: + + profileName(str):The name of the profile that will become the default, or None. Setting profileName to None indicates that SetDefaultProfile should remove the existing default profile, leaving the client without a default. + flags(Any): + +Returns: + + None + + """ + pass + + + def AdminServices(self,profileName:'str',Password:'str'=None,uiParam:'Any'=0,flags:'Any'=0) -> 'Any': + """ + Provides access to a message service administration object for making changes to the message services in a profile. + +Args: + + profileName(str):The name of the profile to be modified. + Password(str): + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(Any): + +Returns: + + Any + + """ + pass + + +class PyIPropertyBag(object): + """A Python wrapper for a COM IPropertyBag interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,propName:'Any',propType:'Any',errorLog:'Any'=None) -> 'Any': + """ + Called by the control to read a property from the storage provided by the + +container. + +Args: + + propName(Any):Name of the property to read. + propType(Any):The type of the object to read. Must be a VT_* Variant Type constant. + errorLog(Any):The caller's PyIErrorLog object in which the property bag stores any errors that occur during reads. Can be None in which case the caller is not interested in errors.CommentsThe result is a Python object, mapped from a COM VARIANT of type as specified in the propType parameter. + +Returns: + + Any + + """ + pass + + + def Write(self,propName:'Any',value:'Any') -> 'None': + """ + Called by the control to write each property in turn to the storage provided by the + +container. + +Args: + + propName(Any):Name of the property to read. + value(Any):The value for the property. The value must be able to be converted to a COM VARIANT. + +Returns: + + None + + """ + pass + + +class PyIPropertyChange(object): + """Interface used to specify a change to a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ApplyToPropVariant(self,OrigVal:'Any') -> 'Any': + """ + Applies the change to a variant value + +Args: + + OrigVal(Any):The value to be modified + +Returns: + + Any + + """ + pass + + +class PyIPropertyChangeArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Returns the number of changes in the array + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,Index:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves a change by zero-based index + +Args: + + Index(Any):Index of the change to retrieve + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def InsertAt(self,Index:'Any',PropChange:'Any') -> 'None': + """ + Inserts a change at a specific position + +Args: + + Index(Any):Position at which to place the change + PropChange(Any):The change to be added + +Returns: + + None + + """ + pass + + + def Append(self,PropChange:'Any') -> 'None': + """ + Adds a change to the end of the array + +Args: + + PropChange(Any):The change to be added + +Returns: + + None + + """ + pass + + + def AppendOrReplace(self,PropChange:'Any') -> 'None': + """ + Adds a change, or replaces if an identical property key is already + +in container + +Args: + + PropChange(Any):The change to be added or replaced + +Returns: + + None + + """ + pass + + + def RemoveAt(self,Index:'Any') -> 'None': + """ + Removes a change from the array + +Args: + + Index(Any):Index of change to be removed + +Returns: + + None + + """ + pass + + + def IsKeyInArray(self,key:'Any') -> 'Any': + """ + Checks if array contains a change to a property + +Args: + + key(Any):Property key to look for + +Returns: + + Any + + """ + pass + + +class PyIPropertyDescription(object): + """Gives access to the details of a property definition""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyKey(self,) -> 'Any': + """ + Returns the unique identifier for a property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCanonicalName(self,) -> 'Any': + """ + Returns the name of the property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPropertyType(self,) -> 'Any': + """ + Returns the variant type of the property (VT_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDisplayName(self,) -> 'Any': + """ + Returns the property name as shown in the UI + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetEditInvitation(self,) -> 'Any': + """ + Returns the input prompt used in edit controls + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTypeFlags(self,mask:'Any') -> 'Any': + """ + Returns type flags for the property + +Args: + + mask(Any):Specifies which flags to retrieve (PDTF_*) + +Returns: + + Any + + """ + pass + + + def GetViewFlags(self,) -> 'Any': + """ + Returns the view flags that control how the property is displayed + +(PDVF_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDefaultColumnWidth(self,) -> 'Any': + """ + Returns the default width in characters + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDisplayType(self,) -> 'Any': + """ + Returns the display type (PDDT_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetColumnState(self,) -> 'Any': + """ + Returns flags that control how property is displayed in column + +(SHCOLSTATE_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetGroupingRange(self,) -> 'Any': + """ + Returns property's grouping attributes (PDGR_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRelativeDescriptionType(self,) -> 'Any': + """ + Returns the relative description type (PDRDT_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRelativeDescription(self,var1:'Any',var2:'Any') -> 'Tuple[Any, Any]': + """ + Compares two values + +Args: + + var1(Any):The first value + var2(Any):The second value + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetSortDescription(self,) -> 'Any': + """ + Returns value that determines how sorting options are + +displayed (PDSD_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSortDescriptionLabel(self,Descending:'Any') -> 'Any': + """ + Returns description of current sort order + +Args: + + Descending(Any):Indicates if order is reversed + +Returns: + + Any + + """ + pass + + + def GetAggregationType(self,) -> 'Any': + """ + Describes how properties for multiple items are displayed + +(PDAT_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetConditionType(self,) -> 'Tuple[Any, Any]': + """ + Returns options that determine how the property is used + +to build a search query + +Args: + + + +Returns: + + Tuple[Any, Any]:PyIPropertyDescription.GetConditionType + +(int, int) = GetConditionType()Returns options that determine how the property is used + +to build a search query +Return ValueReturns the condition type (PDCOT_*) and default operation (COP_*) + + + """ + pass + + + def GetEnumTypeList(self,riid:'PyIID') -> 'Any': + """ + Returns an interface used for querying + +valid property range + +Args: + + riid(PyIID):IID of the requested interface + +Returns: + + Any + + """ + pass + + + def CoerceToCanonicalValue(self,Value:'Any') -> 'Any': + """ + Converts a variant value to the exact type expected by + +the property + +Args: + + Value(Any):The property value to be convertedCommentsThis method mutates the PyPROPVARIANT in place. It may be cleared on failure.Return ValueReturns the HRESULT from the operation on success. + +Returns: + + Any:The property value to be convertedComments + +This method mutates the PyPROPVARIANT in place. It may be cleared on failure. +Return ValueReturns the HRESULT from the operation on success. + + + """ + pass + + + def FormatForDisplay(self,Value:'Any',Flags:'Any') -> 'Any': + """ + Converts a value to its string representation + +Args: + + Value(Any):The value to be formatted + Flags(Any):Combination of PROPDESC_FORMAT_FLAGS (PDFF_*) + +Returns: + + Any + + """ + pass + + + def IsValueCanonical(self,Value:'Any') -> 'Any': + """ + Determines if a value exactly matches the specification for + +the property + +Args: + + Value(Any):The value to check + +Returns: + + Any + + """ + pass + + +class PyIPropertyDescriptionAliasInfo(object): + """Interface that gives access to the sorting columns for a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSortByAlias(self,riid:'PyIID') -> 'Any': + """ + Returns the primary column used + +for sorting + +Args: + + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetAdditionalSortByAliases(self,riid:'PyIID') -> 'Any': + """ + Returns secondary + +sorting columns + +Args: + + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + +class PyIPropertyDescriptionList(object): + """Container for a number of property descriptions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Gets the number of properties in the list + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,Elem:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves a description from the list + +Args: + + Elem(Any):Index of the element to return + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + +class PyIPropertyDescriptionSearchInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSearchInfoFlags(self,) -> 'Any': + """ + Returns flags controlling how property is indexed + +Args: + + + +Returns: + + Any:PyIPropertyDescriptionSearchInfo.GetSearchInfoFlags + +int = GetSearchInfoFlags()Returns flags controlling how property is indexed +Return ValueReturns a combination of PROPDESC_SEARCHINFO_FLAGS values + + + """ + pass + + + def GetColumnIndexType(self,) -> 'Any': + """ + Returns flags indicating type of property + +Args: + + + +Returns: + + Any:PyIPropertyDescriptionSearchInfo.GetColumnIndexType + +int = GetColumnIndexType()Returns flags indicating type of property +Return ValueReturns a value from the PROPDESC_COLUMNINDEX_TYPE enum + + + """ + pass + + + def GetProjectionString(self,) -> 'Any': + """ + Returns the canonical name of the property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetMaxSize(self,) -> 'Any': + """ + Returns the maximum size specified in search options + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIPropertyEnumType(object): + """Contains information about an allowable value or range for a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetEnumType(self,) -> 'Any': + """ + Retrieves the type (PROPENUMTYPE) + +Args: + + + +Returns: + + Any:PyIPropertyEnumType.GetEnumType + +int = GetEnumType()Retrieves the type (PROPENUMTYPE) +Return Valuepscon.PET_* + + + """ + pass + + + def GetValue(self,) -> 'Any': + """ + Retrieves the defined value + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRangeMinValue(self,) -> 'Any': + """ + Returns the minimum allowed value for the property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRangeSetValue(self,) -> 'Any': + """ + Returns a fixed value defined for the property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDisplayText(self,) -> 'None': + """ + Returns the display text for the enumerated type + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPropertyEnumTypeList(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Returns the number of objects in the list + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,itype:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves an item by index + +Args: + + itype(Any):Zero based index of type to return + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def FindMatchingIndex(self,Cmp:'Any') -> 'Any': + """ + Attempts to match the specified value to one of the allowable + +values for the property + +Args: + + Cmp(Any):A value to match against the defined values of the property + +Returns: + + Any + + """ + pass + + +class PyIPropertySetStorage(object): + """Container for a collection of property sets. + +Can be iterated over to enumerate property sets.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Create(self,fmtid:'PyIID',clsid:'PyIID',Flags:'Any',Mode:'Any') -> 'Any': + """ + Creates a new property set in the storage object + +Args: + + fmtid(PyIID):GUID identifying a property set, pythoncom.FMTID_* + clsid(PyIID):CLSID of property set handler, usually same as fmtid + Flags(Any):Specifies behaviour of property set, storagecon.PROPSETFLAG_* + Mode(Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + Any + + """ + pass + + + def Open(self,fmtid:'PyIID',Mode:'Any') -> 'Any': + """ + Opens an existing property set + +Args: + + fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* + Mode(Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + Any + + """ + pass + + + def Delete(self,fmtid:'PyIID') -> 'None': + """ + Removes a property set from this storage object + +Args: + + fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* + +Returns: + + None + + """ + pass + + + def Enum(self,) -> 'Any': + """ + Creates an iterator to enumerate contained property + +sets + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIPropertyStorage(object): + """Structured storage object that contains a set of properties. + +Supports iteration to list properties.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ReadMultiple(self,props:'Tuple[Any, ...]') -> 'Tuple[Any, ...]': + """ + Reads specified properties from the current property set. + +Args: + + props(Tuple[Any, ...]):Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type + +Returns: + + Tuple[Any, ...]:Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type + + + """ + pass + + + def WriteMultiple(self,props:'Tuple[Any, ...]',values:'Tuple[Any, ...]',propidNameFirst:'Any'=2) -> 'None': + """ + Creates or modifies properties in the property set + +Args: + + props(Tuple[Any, ...]):Sequence containing names or integer ids of properties to write + values(Tuple[Any, ...]):The values for the properties. + propidNameFirst(Any):Minimum property id to be assigned to new properties specified by name + +Returns: + + None + + """ + pass + + + def DeleteMultiple(self,props:'Tuple[Any, ...]') -> 'None': + """ + Deletes properties from the property set + +Args: + + props(Tuple[Any, ...]):Sequence containing names or IDs of properties to be deleted + +Returns: + + None + + """ + pass + + + def ReadPropertyNames(self,props:'Tuple[Any, ...]') -> 'Tuple[Any, ...]': + """ + Retrieves any existing string names for the specified + +property identifiers. + +Args: + + props(Tuple[Any, ...]):Sequence of ints containing property IDs. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def WritePropertyNames(self,props:'Tuple[Any, ...]',names:'Tuple[str, ...]') -> 'None': + """ + Assigns string names to a specified array of property IDs in the + +current property set. + +Args: + + props(Tuple[Any, ...]):Sequence containing the property IDs. + names(Tuple[str, ...]):Equal length sequence of property names. + +Returns: + + None + + """ + pass + + + def DeletePropertyNames(self,props:'Tuple[Any, ...]') -> 'None': + """ + Removes property names from specified properties. + +Args: + + props(Tuple[Any, ...]):Sequence of ints containing property IDs. + +Returns: + + None + + """ + pass + + + def Commit(self,CommitFlags:'Any') -> 'None': + """ + Persists the property set to its base storage + +Args: + + CommitFlags(Any):Combination of storagecon.STGC_* flags + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + Discards any changes that have been made + +Args: + + + +Returns: + + None + + """ + pass + + + def Enum(self,) -> 'Any': + """ + Creates an enumerator for properties in the property set + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetTimes(self,ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': + """ + Sets the creation, last access, and modification time + +Args: + + ctime(PyTime):Creation time, or None for no change + atime(PyTime):Last access time, or None for no change + mtime(PyTime):Modification time, or None for no changeCommentsSome property sets do not support these times. + +Returns: + + None + + """ + pass + + + def SetClass(self,clsid:'PyIID') -> 'None': + """ + Sets the GUID for the property set + +Args: + + clsid(PyIID):Description for clsid + +Returns: + + None + + """ + pass + + + def Stat(self,) -> 'Any': + """ + Returns various infomation about the property set + +Args: + + + +Returns: + + Any:PyIPropertyStorage.Stat + +tuple = Stat()Returns various infomation about the property set +Return ValueReturns a tuple representing a STATPROPSETSTG struct. + + + """ + pass + + +class PyIPropertyStore(object): + """Contains a collection of properties""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Returns the number of properties in the store + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,iProp:'Any') -> 'Any': + """ + Returns the property key for the specified property + +Args: + + iProp(Any):Zero-based index of property + +Returns: + + Any + + """ + pass + + + def GetValue(self,Key:'Any') -> 'Any': + """ + Retrieves the value of a property + +Args: + + Key(Any):Property key as returned by PyIPropertyStore::GetAt + +Returns: + + Any + + """ + pass + + + def SetValue(self,Key:'Any',Value:'Any') -> 'None': + """ + Sets the value of a property + +Args: + + Key(Any):Property key (see PyIPropertyStore::GetAt) + Value(Any):Variant value which can be converted to the appropriate variant type for the property Pass a VT_EMPTY variant to indicate that the property should be removed. + +Returns: + + None + + """ + pass + + + def Commit(self,) -> 'None': + """ + Commits property changes + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPropertyStoreCache(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetState(self,key:'Any') -> 'Any': + """ + Retrieves the current state of a property + +Args: + + key(Any):Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) + +Returns: + + Any:Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) + + + """ + pass + + + def GetValueAndState(self,key:'Any') -> 'Tuple[Any, Any]': + """ + Retrieves the current value and state of a + +property + +Args: + + key(Any):Property identifier + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetState(self,key:'Any',state:'Any') -> 'None': + """ + Sets the state of a property + +Args: + + key(Any):Property identifier + state(Any):Value from the PSC_STATE enum (pscon.PSC_*) + +Returns: + + None + + """ + pass + + + def SetValueAndState(self,key:'Any',value:'Any',state:'Any') -> 'None': + """ + Sets the value and state of a property + +Args: + + key(Any):Property identifier + value(Any):The new value + state(Any):The new state (pscon.PSC_*) + +Returns: + + None + + """ + pass + + +class PyIPropertyStoreCapabilities(object): + """Property providers use this interface to indicate whether properties are + +writeable.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsPropertyWritable(self,key:'Any') -> 'Any': + """ + Asks provider if a property can be editted. + +Args: + + key(Any):Property identifier + +Returns: + + Any + + """ + pass + + +class PyIPropertySystem(object): + """Wraps the IPropertySystem interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyDescription(self,Key:'Any',riid:'PyIID') -> 'Any': + """ + Returns an interface used to describe a + +property + +Args: + + Key(Any):Fmtid and propertyid that uniquely identifies a property + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyDescriptionByName(self,CanonicalName:'Any',riid:'PyIID') -> 'Any': + """ + Returns an interface used to + +describe a property + +Args: + + CanonicalName(Any):Registered name of the property + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyDescriptionListFromString(self,PropList:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves property + +descriptions from a string of property names + +Args: + + PropList(Any):String containing a list of properties and flags + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def EnumeratePropertyDescriptions(self,Filter:'Any',riid:'PyIID') -> 'Any': + """ + Returns an interface used to + +list defined properties + +Args: + + Filter(Any):Value from PROPDESC_ENUMFILTER (pscon.PDEF_*) that limits what types of properties are listed + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def FormatForDisplay(self,Key:'Any',Value:'Any',Flags:'Any') -> 'Any': + """ + Formats a property into a string + +Args: + + Key(Any):Fmtid and property id that identifies the property + Value(Any):The value to format + Flags(Any):Combination of PROPDESC_FORMAT_FLAGS (pscon.PDFF_*) indicating formatting options + +Returns: + + Any + + """ + pass + + + def RegisterPropertySchema(self,Path:'Any') -> 'None': + """ + Registers a set of properties defined in a .propdesc file + +Args: + + Path(Any):Path to a property schema XML file (.propdesc) + +Returns: + + None + + """ + pass + + + def UnregisterPropertySchema(self,Path:'Any') -> 'None': + """ + Removes a set of registered properties + +Args: + + Path(Any):Path to a property schema XML file (.propdesc) + +Returns: + + None + + """ + pass + + + def RefreshPropertySchema(self,) -> 'None': + """ + Not currently implemented by the OS + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProvideClassInfo(object): + """A Python interface to IProvideClassInfo""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassInfo(self,) -> 'Any': + """ + Gets information about the CO_CLASS. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIProvideClassInfo2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetGUID(self,flags:'Any') -> 'PyIID': + """ + Gets the GUID for the object. + +Args: + + flags(Any):The flags for the GUID. + +Returns: + + PyIID + + """ + pass + + +class PyIProvideExpressionContexts(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumExpressionContexts(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProvideTaskPage(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPage(self,tpType:'Any',PersistChanges:'Any') -> 'None': + """ + Return a property sheet page handle for the spedified type + +(TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) + +Args: + + tpType(Any):Type of page to retreive (TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) + PersistChanges(Any):Indicates if changes should be saved automaticallyCommentsThere's not yet anything useful that can be done with this handle - return type subject to change + +Returns: + + None + + """ + pass + + +class PyIQueryAssociations(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Init(self,flags:'Any',assoc:'str',hkeyProgId:'PyHKEY'=None,hwnd:'int'=None) -> 'None': + """ + Initializes the IQueryAssociations interface and sets the root key to the + +appropriate ProgID. + +Args: + + flags(Any):One of shellcon.ASSOCF_* flags + assoc(str):The string data (ie, extension, prog-id, etc) + hkeyProgId(PyHKEY):Root registry key, can be None + hwnd(int):Reserved, must be 0 or None + +Returns: + + None + + """ + pass + + + def GetKey(self,flags:'Any',assocKey:'Any',arg:'str') -> 'Any': + """ + Searches for and retrieves a file association-related key from the + +registry. + +Args: + + flags(Any):Used to control the search. + assocKey(Any):Specifies the type of key that is to be returned. + arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used. + +Returns: + + Any + + """ + pass + + + def GetString(self,flags:'Any',assocStr:'Any',arg:'str') -> 'Any': + """ + Searches for and retrieves a file association-related string from the + +registry. + +Args: + + flags(Any):Used to control the search. + assocStr(Any):Specifies the type of string that is to be returned. + arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used.CommentsNote that ASSOCF_NOTRUNCATE semantics are currently not supported - the buffer passed is 2048 bytes long, and will be truncated by the shell if too small. + +Returns: + + Any + + """ + pass + + +class PyIRelatedItem(object): + """Interface used as the base for objects that have a related shell item + +(eg ITransferMediumItem, IDisplayItem, etc). Should not be used directly.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetItemIDList(self,) -> 'Any': + """ + Returns the ID list of the related item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItem(self,) -> 'Any': + """ + Returns the related item + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIRemoteDebugApplication(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ResumeFromBreakPoint(self,prptFocus:'Any',bra:'Any',era:'Any') -> 'None': + """ + Continue an application which is currently in a breakpoint. + +Args: + + prptFocus(Any):Description for prptFocus + bra(Any):Break resume action + era(Any):Error resume action + +Returns: + + None + + """ + pass + + + def CauseBreak(self,) -> 'None': + """ + Causes the application to break into the debugger at the earliest + +opportunity. + +Args: + + + +Returns: + + None + + """ + pass + + + def ConnectDebugger(self,pad:'Any') -> 'None': + """ + Connects a debugger to the application. + +Args: + + pad(Any):Description for padCommentsOnly one debugger may be connected at a time; this method fails if there is already a debugger connected. + +Returns: + + None + + """ + pass + + + def DisconnectDebugger(self,) -> 'None': + """ + Disconnects the current debugger from the application. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDebugger(self,) -> 'Any': + """ + Returns the current debugger connected to + +the application. + +Args: + + + +Returns: + + Any + + """ + pass + + + def CreateInstanceAtApplication(self,rclsid:'PyIID',pUnkOuter:'Any',dwClsContext:'Any',riid:'PyIID') -> 'Any': + """ + Create objects in the application + +process address space. + +Args: + + rclsid(PyIID):Description for rclsid + pUnkOuter(Any):Description for pUnkOuter + dwClsContext(Any):Description for dwClsContext + riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. + +Returns: + + Any + + """ + pass + + + def QueryAlive(self,) -> 'None': + """ + Returns True if alive, else False. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumThreads(self,) -> 'Any': + """ + Enumerates all threads known + +to be associated with the application. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetName(self,) -> 'None': + """ + Description of GetName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootNode(self,) -> 'Any': + """ + Returns the application node under which + +all nodes associated with the application are added. + +Args: + + + +Returns: + + Any + + """ + pass + + + def EnumGlobalExpressionContexts(self,) -> 'Any': + """ + Enumerates all + +global expression contexts + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIRemoteDebugApplicationEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnConnectDebugger(self,pad:'Any') -> 'None': + """ + Description of OnConnectDebugger. + +Args: + + pad(Any):Description for pad + +Returns: + + None + + """ + pass + + + def OnDisconnectDebugger(self,) -> 'None': + """ + Description of OnDisconnectDebugger. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnSetName(self,pstrName:'Any') -> 'None': + """ + Description of OnSetName. + +Args: + + pstrName(Any):Description for pstrName + +Returns: + + None + + """ + pass + + + def OnDebugOutput(self,pstr:'Any') -> 'None': + """ + Description of OnDebugOutput. + +Args: + + pstr(Any):Description for pstr + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Description of OnClose. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnEnterBreakPoint(self,prdat:'Any') -> 'None': + """ + Description of OnEnterBreakPoint. + +Args: + + prdat(Any):Description for prdat + +Returns: + + None + + """ + pass + + + def OnLeaveBreakPoint(self,prdat:'Any') -> 'None': + """ + Description of OnLeaveBreakPoint. + +Args: + + prdat(Any):Description for prdat + +Returns: + + None + + """ + pass + + + def OnCreateThread(self,prdat:'Any') -> 'None': + """ + Description of OnCreateThread. + +Args: + + prdat(Any):Description for prdat + +Returns: + + None + + """ + pass + + + def OnDestroyThread(self,prdat:'Any') -> 'None': + """ + Description of OnDestroyThread. + +Args: + + prdat(Any):Description for prdat + +Returns: + + None + + """ + pass + + + def OnBreakFlagChange(self,abf:'Any',prdatSteppingThread:'Any') -> 'None': + """ + Description of OnBreakFlagChange. + +Args: + + abf(Any):Description for abf + prdatSteppingThread(Any):Description for prdatSteppingThread + +Returns: + + None + + """ + pass + + +class PyIRemoteDebugApplicationThread(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSystemThreadId(self,) -> 'None': + """ + Description of GetSystemThreadId. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetApplication(self,) -> 'None': + """ + Description of GetApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumStackFrames(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDescription(self,) -> 'None': + """ + Description of GetDescription. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetNextStatement(self,pStackFrame:'Any',pCodeContext:'Any') -> 'None': + """ + Description of SetNextStatement. + +Args: + + pStackFrame(Any):Description for pStackFrame + pCodeContext(Any):Description for pCodeContext + +Returns: + + None + + """ + pass + + + def GetState(self,) -> 'None': + """ + Description of GetState. + +Args: + + + +Returns: + + None + + """ + pass + + + def Suspend(self,) -> 'None': + """ + Description of Suspend. + +Args: + + + +Returns: + + None + + """ + pass + + + def Resume(self,) -> 'None': + """ + Description of Resume. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSuspendCount(self,) -> 'None': + """ + Description of GetSuspendCount. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIRunningObjectTable(object): + """A Python interface to IRunningObjectTable""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Register(self,) -> 'Any': + """ + Registers an object and its identifying moniker in the Running Object + +Table (ROT). + +Args: + + + +Returns: + + Any + + """ + pass + + + def Revoke(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsRunning(self,objectName:'Any') -> 'Any': + """ + Checks whether an object is running. + +Args: + + objectName(Any):The PyIMoniker interface on the moniker to search for in the Running Object Table.Return ValueDescriptionS_OK (ie, 0)The object identified by objectName is running.S_FALSE (ie, 1)There is no entry for objectName in the ROT, or that the object it identifies is no longer running (in which case, the entry is revoked). + +Returns: + + Any + + """ + pass + + + def GetObject(self,objectName:'Any') -> 'Any': + """ + Checks whether an object is running. + +Args: + + objectName(Any):The PyIMoniker interface on the moniker to search for in the Running Object Table. + +Returns: + + Any + + """ + pass + + + def EnumRunning(self,) -> 'Any': + """ + Creates an enumerator that can list the monikers of + +all the objects currently registered in the Running Object Table (ROT). + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIScheduledWorkItem(object): + """Python object that encapsulates the IScheduledWorkItem interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTrigger(self,) -> 'Tuple[Any, Any]': + """ + Creates a new trigger for a task, returns index and + +new ITaskTrigger interface + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def DeleteTrigger(self,Trigger:'Any') -> 'None': + """ + Deletes specified trigger + +Args: + + Trigger(Any):Index of trigger to delete + +Returns: + + None + + """ + pass + + + def GetTriggerCount(self,) -> 'Any': + """ + Returns number of triggers defined for the task + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTrigger(self,iTrigger:'Any') -> 'Any': + """ + Retrieves ITaskTrigger interface for specified trigger + +index + +Args: + + iTrigger(Any):Index of trigger to retrieve + +Returns: + + Any + + """ + pass + + + def GetTriggerString(self,) -> 'Any': + """ + Creates a human-readable summary of specified trigger + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRunTimes(self,Count:'Any',Begin:'PyTime',End:'PyTime') -> 'Tuple[PyTime, Any, Any, Any]': + """ + Return specified number of run times within given time + +frame + +Args: + + Count(Any):Number of run times to retrieve + Begin(PyTime):Start time, defaults to current time if not passed or None + End(PyTime):End time, defaults to unlimited if not passed or None + +Returns: + + Tuple[PyTime, Any, Any, Any] + + """ + pass + + + def GetNextRunTime(self,) -> 'PyTime': + """ + Returns next time that task is scheduled to run + +Args: + + + +Returns: + + PyTime + + """ + pass + + + def SetIdleWait(self,wIdleMinutes:'Any',wDeadlineMinutes:'Any') -> 'None': + """ + Sets idle parms for task with trigger of type TASK_EVENT_TRIGGER_ON_IDLE + +Args: + + wIdleMinutes(Any):Nbr of minutes computer must be idle before task fires + wDeadlineMinutes(Any):Maximum nbr of minutes task will wait for computer to become idle + +Returns: + + None + + """ + pass + + + def GetIdleWait(self,) -> 'Tuple[Any, Any]': + """ + Gets IdleMinutes and DeadlineMinutes parms for task with trigger + +of type TASK_EVENT_TRIGGER_ON_IDLE + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def Run(self,) -> 'None': + """ + Starts task + +Args: + + + +Returns: + + None + + """ + pass + + + def Terminate(self,) -> 'None': + """ + Terminate process if task is running + +Args: + + + +Returns: + + None + + """ + pass + + + def EditWorkItem(self,hParent:'int',dwReserved:'Any') -> 'None': + """ + Brings up standard Scheduled Task dialog + +Args: + + hParent(int):Reserved, use 0 or None if passed + dwReserved(Any):Reserved, use 0 if passed + +Returns: + + None + + """ + pass + + + def GetMostRecentRunTime(self,) -> 'PyTime': + """ + Returns last time task ran + +Args: + + + +Returns: + + PyTime + + """ + pass + + + def GetStatus(self,) -> 'Any': + """ + Returns status (SCHED_S_TASK... constants) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetExitCode(self,) -> 'Tuple[Any, Any]': + """ + Returns tuple of task's exit code and error returned to Task + +Scheduler if process could not start + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetComment(self,Comment:'Any') -> 'None': + """ + Set comment string for task + +Args: + + Comment(Any):Freeform comment string + +Returns: + + None + + """ + pass + + + def GetComment(self,) -> 'str': + """ + Return comment string associated with task. + +Args: + + + +Returns: + + str + + """ + pass + + + def SetCreator(self,Creator:'Any') -> 'None': + """ + Specify who (or what) created task, can be any string + +Args: + + Creator(Any):Originator of task, does not have to be valid username + +Returns: + + None + + """ + pass + + + def GetCreator(self,) -> 'None': + """ + Returns creator info, can be any string data + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWorkItemData(self,Data:'str') -> 'None': + """ + Set data associated with task (treated as uninterpreted bytes) + +Args: + + Data(str):Character data, treated as uninterpreted bytes + +Returns: + + None + + """ + pass + + + def GetWorkItemData(self,) -> 'str': + """ + Retrieve data associated with task + +Args: + + + +Returns: + + str + + """ + pass + + + def SetErrorRetryCount(self,wRetryCount:'Any') -> 'None': + """ + Specify nbr of times to attempt to run task if it can't start (not + +currently implemented) + +Args: + + wRetryCount(Any):Nbr of attemps to start task + +Returns: + + None + + """ + pass + + + def GetErrorRetryCount(self,) -> 'None': + """ + Return nbr of times Task scheduler should try to run task (not + +currently implemented) + +Args: + + + +Returns: + + None + + """ + pass + + + def SetErrorRetryInterval(self,RetryInterval:'Any') -> 'None': + """ + Interval in minutes between attempts to run task. Not + +implemented according to SDK + +Args: + + RetryInterval(Any):Interval in minutes + +Returns: + + None + + """ + pass + + + def GetErrorRetryInterval(self,) -> 'None': + """ + Returns nbr of minutes between attempts to run task. Not + +implemented according to SDK + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFlags(self,dwFlags:'Any') -> 'None': + """ + Set flags for task + +Args: + + dwFlags(Any):Combination of TASK_FLAG_* constants + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'Any': + """ + Returns flags for task (TASK_FLAG_* constants) + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetAccountInformation(self,AccountName:'Any',Password:'Any') -> 'None': + """ + Set username and password under which task will run + +Args: + + AccountName(Any):AccountName, use "" for local system account (can only be used by Administrators) + Password(Any):Password - Can be None for local System account, or if TASK_FLAG_RUN_ONLY_IF_LOGGED_ON is setCommentsOn some systems, username and password are verified at the time the task is saved, on others when the task tries to run + +Returns: + + None + + """ + pass + + + def GetAccountInformation(self,) -> 'Any': + """ + Returns username that task will run under + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIServerSecurity(object): + """Interface used to access client security settings and perform impersonation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryBlanket(self,Capabilities:'Any'=0) -> 'Any': + """ + Retrieves security settings specified by the client + +Args: + + Capabilities(Any):Can be EOAC_MAKE_FULLSIC for SChannel provider + +Returns: + + Any + + """ + pass + + + def ImpersonateClient(self,) -> 'None': + """ + Initiates impersonation of client + +Args: + + + +Returns: + + None + + """ + pass + + + def RevertToSelf(self,) -> 'None': + """ + Ends impersonation of client + +Args: + + + +Returns: + + None + + """ + pass + + + def IsImpersonating(self,) -> 'Any': + """ + Determines if server is currently impersonating a client + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIServiceProvider(object): + """A Python interface to IServiceProvider""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryService(self,clsid:'PyIID',iid:'PyIID') -> 'Any': + """ + Creates or accesses the specified service and returns an + +interface object to the specified interface for the service. + +Args: + + clsid(PyIID):Unique identifier for the requested service. + iid(PyIID):Unique identifier for the requested interface on the service. + +Returns: + + Any + + """ + pass + + +class PyIShellBrowser(object): + """Exposed by Windows Explorer and the Open File common dialog box to provide services for + +namespace extensions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertMenusSB(self,hmenuShared:'int',lpMenuWidths:'Any') -> 'Any': + """ + Updates a composite menu with container's options + +Args: + + hmenuShared(int):Newly created menu that contains no items + lpMenuWidths(Any):Tuple of 6 ints. Items 0,2,and 4 are updated when the tuple is returned. + +Returns: + + Any + + """ + pass + + + def SetMenuSB(self,hmenuShared:'int',holemenuRes:'int',hwndActiveObject:'int') -> 'None': + """ + Attaches a shared menu to a shell view window + +Args: + + hmenuShared(int):Handle to the shared menu + holemenuRes(int):Reserved, use only None (or 0) + hwndActiveObject(int):Handle to the shell window + +Returns: + + None + + """ + pass + + + def RemoveMenusSB(self,hmenuShared:'int') -> 'None': + """ + Asks container to remove any items it added to a composite menu + +Args: + + hmenuShared(int):Handle to the composite menu + +Returns: + + None + + """ + pass + + + def SetStatusTextSB(self,pszStatusText:'Any') -> 'None': + """ + Sets the status text in view's status bar + +Args: + + pszStatusText(Any):New status to be displayed + +Returns: + + None + + """ + pass + + + def EnableModelessSB(self,fEnable:'Any') -> 'None': + """ + Enables or disables modeless dialogs + +Args: + + fEnable(Any):Use True to enable or False to disable modeless dialog boxes + +Returns: + + None + + """ + pass + + + def TranslateAcceleratorSB(self,pmsg:'PyMSG',wID:'Any') -> 'None': + """ + Translates keystrokes used as menu item activators + +Args: + + pmsg(PyMSG):Keystroke message to be translated + wID(Any):Menu command id for the keystroke + +Returns: + + None + + """ + pass + + + def BrowseObject(self,pidl:'Any',wFlags:'Any') -> 'None': + """ + Navigates to a different location + +Args: + + pidl(Any):Item id list that specifies the new browse location, can be None + wFlags(Any):Combination of shellcon.SBSP_* flags + +Returns: + + None + + """ + pass + + + def GetViewStateStream(self,grfMode:'Any') -> 'Any': + """ + Returns a stream that can be used to access view state + +information + +Args: + + grfMode(Any):Read/write mode, one of STGM_READ,STGM_WRITE,STGM_READWRITE + +Returns: + + Any + + """ + pass + + + def GetControlWindow(self,_id:'Any') -> 'None': + """ + Returns a handle to one of the browser's control elements + +Args: + + _id(Any):One of shellcon.FCW_* values + +Returns: + + None + + """ + pass + + + def SendControlMsg(self,_id:'Any',uMsg:'Any',wParam:'Any',lParam:'Any') -> 'Any': + """ + Sends a control msg to browser's toolbar or status bar + +Args: + + _id(Any):shellcon.FCW_TOOLBAR or FCW_STATUS + uMsg(Any):The message to send + wParam(Any):Value is dependent on the message + lParam(Any):Value is dependent on the message + +Returns: + + Any + + """ + pass + + + def QueryActiveShellView(self,) -> 'Any': + """ + Returns the currently displayed view + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnViewWindowActive(self,pshv:'Any') -> 'None': + """ + Callback triggered when a view window is activated + +Args: + + pshv(Any):The activated view object + +Returns: + + None + + """ + pass + + + def SetToolbarItems(self,lpButtons:'Any',uFlags:'Any') -> 'None': + """ + Adds toolbar buttons to the browser's toolbar + +Args: + + lpButtons(Any):Sequence of tuples describing the buttons to be added + uFlags(Any):Indicates button positions, combination of shellcon.FCT_* + +Returns: + + None + + """ + pass + + +class PyIShellExtInit(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,pFolder:'Any',pDataObject:'Any',hkey:'int') -> 'None': + """ + Description of Initialize. + +Args: + + pFolder(Any):Description for pFolder + pDataObject(Any):Description for pDataObject + hkey(int):Description for hkey + +Returns: + + None + + """ + pass + + +class PyIShellFolder(object): + """Interface that represents an Explorer folder""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseDisplayName(self,hwndOwner:'int',pbc:'Any',DisplayName:'Any',Attributes:'Any'=0) -> 'Any': + """ + Returns the PIDL of an item in a shell folder + +Args: + + hwndOwner(int):Window in which to display any dialogs or message boxes, can be 0 + pbc(Any):Bind context that affects how parsing is performed, can be None + DisplayName(Any):Display name to parse, format is dependent on the shell folder. Desktop folder will accept a file path, as well as guids of the form ::{guid} Example: '::%s\\::%s' %(shell.CLSID_MyComputer,shell.CLSID_ControlPanel) + Attributes(Any):Combination of shellcon.SFGAO_* constants specifying which attributes should be returnedReturn ValueThe result is a tuple of cchEaten, pidl, attrItems[0] int : cchEatenthe number of characters of the input name that were parsed[1] PyIDL : pidlspecifies the relative path from the parsing folder to the object[2] int : Attributesreturns any requested attributes + +Returns: + + Any:Combination of shellcon.SFGAO_* constants specifying which attributes should be returned +Return ValueThe result is a tuple of cchEaten, pidl, attr +Items[0] int : cchEaten +the number of characters of the input name that were parsed +[1] PyIDL : pidl +specifies the relative path from the parsing folder to the object +[2] int : Attributes +returns any requested attributes + + + """ + pass + + + def EnumObjects(self,grfFlags:'Any',hwndOwner:'int'=None) -> 'Any': + """ + Creates an enumerator to list the contents of the shell folder + +Args: + + grfFlags(Any):Combination of shellcon.SHCONTF_* constants + hwndOwner(int):Window to use if any user interaction is required + +Returns: + + Any + + """ + pass + + + def BindToObject(self,pidl:'Any',pbc:'Any',riid:'PyIID') -> 'Any': + """ + Returns an IShellFolder interface for a subfolder + +Args: + + pidl(Any):Relative item id list that identifies the subfolder, can be multi-level + pbc(Any):Bind context to be used, can be None + riid(PyIID):IID of the desired interface, usually IID_IShellFolder + +Returns: + + Any + + """ + pass + + + def BindToStorage(self,pidl:'Any',pbc:'Any',riid:'PyIID') -> 'Any': + """ + Returns an interface to a storage object in a shell folder + +Args: + + pidl(Any):Relative pidl for the folder item, must be a single item id + pbc(Any):Bind context that affects how binding is performed, can be None + riid(PyIID):IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in + +Returns: + + Any:IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in + + + """ + pass + + + def CompareIDs(self,lparam:'Any',pidl1:'Any',pidl2:'Any') -> 'Any': + """ + Determines the sorting order of 2 items in shell folder + +Args: + + lparam(Any):Lower 16 bits specify folder-dependent sorting rules, 0 means to sort by display name. System folder view uses these as a column number. Upper sixteen bits is used for flags SHCIDS_ALLFIELDS or SHCIDS_CANONICALONLY + pidl1(Any):Item id list that idenfies an object relative to the folder + pidl2(Any):Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first + +Returns: + + Any:Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first + + + """ + pass + + + def CreateViewObject(self,hwndOwner:'Any',riid:'PyIID') -> 'Any': + """ + Creates a view object for a shell folder. + +Args: + + hwndOwner(Any):Parent window for a custom folder view, or 0 + riid(PyIID):IID of the desired interface, usually IID_IShellView + +Returns: + + Any + + """ + pass + + + def GetAttributesOf(self,pidl:'Tuple[Any, ...]',rgfInOut:'Any') -> 'Any': + """ + Queries attributes of items within the shell folder + +Args: + + pidl(Tuple[Any, ...]):A sequence of single-level pidls identifying items directly contained by the folder + rgfInOut(Any):Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items + +Returns: + + Any:Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items + + + """ + pass + + + def GetUIObjectOf(self,hwndOwner:'int',pidl:'Tuple[Any, ...]',riid:'PyIID',iidout:'PyIID',Reserved:'Any'=0) -> 'Tuple[Any, Any]': + """ + Creates an interface to one or more items in a shell + +folder + +Args: + + hwndOwner(int):Specifies a window in which to display any required dialogs or errors, can be 0 + pidl(Tuple[Any, ...]):A sequence of single-level pidls identifying items in the folder + riid(PyIID):The interface to create, one of IID_IContextMenu, IID_IContextMenu2, IID_IDataObject, IID_IDropTarget, IID_IExtractIcon, IID_IQueryInfo + iidout(PyIID):The interface to return. Can be used in the case where there is not a python wrapper for the desired interface. You must make certain that the interface identified by riid actually supports the iidout interface, or Bad Things Will Happen. It should always be safe to return PyIUnknown, which is the base for all interfaces.Return ValueReturns the Reserved parameter and the requested interface + Reserved(Any):Reserved, use 0 if passed in + +Returns: + + Tuple[Any, Any]:The interface to return. Can be used in the case where there is not a + +python wrapper for the desired interface. You must make certain that the interface identified by riid + +actually supports the iidout interface, or Bad Things Will Happen. + +It should always be safe to return PyIUnknown, which is the base for all interfaces. +Return ValueReturns the Reserved parameter and the requested interface + + + """ + pass + + + def GetDisplayNameOf(self,pidl:'Any',uFlags:'Any') -> 'Any': + """ + Returns the display name of an item within this shell folder + +Args: + + pidl(Any):PIDL that identifies the item relative to the parent folder + uFlags(Any):Combination of shellcon.SHGDN_* flags + +Returns: + + Any + + """ + pass + + + def SetNameOf(self,hwndOwner:'Any',pidl:'Any',Name:'Any',Flags:'Any') -> 'Any': + """ + Sets the display name of an item and changes its PIDL + +Args: + + hwndOwner(Any):Window in which to display any message boxes or dialogs, can be 0 + pidl(Any):PIDL that identifies the item relative to the parent folder + Name(Any):New name for the item + Flags(Any):Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item + +Returns: + + Any:Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item + + + """ + pass + + +class PyIShellFolder2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDefaultSearchGUID(self,pguid:'PyIID') -> 'PyIID': + """ + Retrieves the default search for the folder + +Args: + + pguid(PyIID):Description for pguid + +Returns: + + PyIID + + """ + pass + + + def EnumSearches(self,) -> 'Any': + """ + Returns an interface that lists searches defined for + +the folder + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDefaultColumn(self,) -> 'Tuple[Any, Any]': + """ + Returns the columns used for sorting and display + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetDefaultColumnState(self,iColumn:'Any') -> 'Any': + """ + Returns flags indicating the default behaviour of the column + +Args: + + iColumn(Any):Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags + +Returns: + + Any:Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags + + + """ + pass + + + def GetDetailsEx(self,pidl:'Any',pscid:'Any') -> 'Any': + """ + Returns the details of an item by Column ID + +Args: + + pidl(Any):Relative id list of an item in the folder + pscid(Any):The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column + +Returns: + + Any:The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column + + + """ + pass + + + def GetDetailsOf(self,pidl:'Any',iColumn:'Any') -> 'Tuple[Any, Any, Any]': + """ + Returns the value or title of a column in the folder's Details + +view. + +Args: + + pidl(Any):The relative idl of an item in the folder. Use None to retrieve column title. + iColumn(Any):Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in characters, and string representation of the requested value + +Returns: + + Tuple[Any, Any, Any]:Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in + +characters, + +and string representation of the requested value + + + """ + pass + + + def MapColumnToSCID(self,Column:'Any') -> 'Any': + """ + Returns the unique identifier (FMTID, pid) of a column + +Args: + + Column(Any):The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. For Vista and later, this is the Property Key used with the property system interfaces. + +Returns: + + Any:The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. + +For Vista and later, this is the Property Key used with the property system interfaces. + + + """ + pass + + +class PyIShellIcon(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetIconOf(self,pidl:'Any') -> 'None': + """ + Description of GetIconOf. + +Args: + + pidl(Any):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIShellIconOverlay(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetOverlayIndex(self,pidl:'Any') -> 'None': + """ + Description of GetOverlayIndex. + +Args: + + pidl(Any):Description for pidl + +Returns: + + None + + """ + pass + + + def GetOverlayIconIndex(self,pidl:'Any') -> 'None': + """ + Description of GetOverlayIconIndex. + +Args: + + pidl(Any):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIShellIconOverlayIdentifier(object): + """Interface that supplies icon overlay information to the shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsMemberOf(self,path:'str',attrib:'Any') -> 'Any': + """ + Determines if a shell object should have an icon overlay + +Args: + + path(str):Fully qualified path of the shell object + attrib(Any):Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. The client implementation of this function returns the same values - ie, Python's True and False should not be used, as S_OK==0==False. + +Returns: + + Any:Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to + +display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. + +The client implementation of this function returns the same values - ie, + +Python's True and False should not be used, as S_OK==0==False. + + + """ + pass + + + def GetOverlayInfo(self,) -> 'Tuple[str, Any, Any]': + """ + Retrieves the path to the overlay + +icon + +Args: + + + +Returns: + + Tuple[str, Any, Any]:PyIShellIconOverlayIdentifier.GetOverlayInfo + +(PyUnicode, int, int) = GetOverlayInfo()Retrieves the path to the overlay + +icon +Return ValueReturns the path to the icon file, the index of icon within the file, and Flags containing + +combination of shellcon.ISIOI_ICON* flags + + + """ + pass + + + def GetPriority(self,) -> 'Any': + """ + Retrieves the relative priority of the overlay + +Args: + + + +Returns: + + Any:PyIShellIconOverlayIdentifier.GetPriority + +int = GetPriority()Retrieves the relative priority of the overlay +Return ValueImplementation of this function should return a number in the range 0-100 (0 is highest priority) + + + """ + pass + + +class PyIShellIconOverlayManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFileOverlayInfo(self,path:'Any',attrib:'Any',flags:'Any') -> 'Any': + """ + Returns an index into the system image list for the icon + +image or overlay image + +Args: + + path(Any):Full path to the file + attrib(Any):File attributes (win32com.FILE_ATTRIBUTE_*) + flags(Any):SIOM_OVERLAYINDEX (1) or SIOM_ICONINDEX (2) + +Returns: + + Any + + """ + pass + + + def GetReservedOverlayInfo(self,path:'Any',attrib:'Any',flags:'Any',ireservedID:'Any') -> 'None': + """ + Description of GetReservedOverlayInfo. + +Args: + + path(Any):Description for path + attrib(Any):Description for attrib + flags(Any):Description for flags + ireservedID(Any):Description for ireservedID + +Returns: + + None + + """ + pass + + + def RefreshOverlayImages(self,flags:'Any') -> 'None': + """ + Description of RefreshOverlayImages. + +Args: + + flags(Any):Description for flags + +Returns: + + None + + """ + pass + + + def LoadNonloadedOverlayIdentifiers(self,) -> 'None': + """ + Description of LoadNonloadedOverlayIdentifiers. + +Args: + + + +Returns: + + None + + """ + pass + + + def OverlayIndexFromImageIndex(self,iImage:'Any',fAdd:'Any') -> 'None': + """ + Description of OverlayIndexFromImageIndex. + +Args: + + iImage(Any):Description for iImage + fAdd(Any):Description for fAdd + +Returns: + + None + + """ + pass + + +class PyIShellItem(object): + """Interface that represents an item in the Explorer shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToHandler(self,pbc:'Any',bhid:'PyIID',riid:'PyIID') -> 'Any': + """ + Creates an instance of one of the item's handlers + +Args: + + pbc(Any):Used to pass parameters that influence the binding operation, can be None + bhid(PyIID):GUID that identifies a handler (shell.BHID_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetParent(self,) -> 'Any': + """ + Retrieves the parent of this item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDisplayName(self,sigdnName:'Any') -> 'Any': + """ + Returns the display name of the item in the specified format + +Args: + + sigdnName(Any):Format of name to return, shellcon.SIGDN_* + +Returns: + + Any + + """ + pass + + + def GetAttributes(self,Mask:'Any') -> 'Any': + """ + Returns shell attributes of the item + +Args: + + Mask(Any):Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values + +Returns: + + Any:Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values + + + """ + pass + + + def Compare(self,psi:'Any',hint:'Any') -> 'Any': + """ + Compares another shell item with this item + +Args: + + psi(Any):A shell item to be compared with this item + hint(Any):shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise + +Returns: + + Any:shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise + + + """ + pass + + +class PyIShellItem2(object): + """Extends the IShellItem interface, giving access to an item's properties""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyStore(self,Flags:'Any',riid:'PyIID') -> 'Any': + """ + Returns a collection of the item's properties + +Args: + + Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyStoreForKeys(self,Keys:'Tuple[Any, ...]',Flags:'Any',riid:'PyIID') -> 'Any': + """ + Creates a property store containing just the + +specified properties of the item + +Args: + + Keys(Tuple[Any, ...]):A sequence of property identifiers + Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyStoreWithCreateObject(self,Flags:'Any',CreateObject:'Any',riid:'PyIID') -> 'Any': + """ + Returns the property store for the + +item, with alternate handler instantiation + +Args: + + Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + CreateObject(Any):An interface that implements ICreateObject, used to create the property handler + riid(PyIID):The interface to be createdCommentsPrimarily used to create a handler in a separate process with reduced privileges + +Returns: + + Any + + """ + pass + + + def GetPropertyDescriptionList(self,Type:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves descriptions of + +properties in a particular group + +Args: + + Type(Any):Property list identifier (pscon.PKEY_PropList_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def Update(self,BindCtx:'Any'=None) -> 'None': + """ + Refreshes properties that have been modified since interface was created + +Args: + + BindCtx(Any):Bind context used when requesting the interface, or None + +Returns: + + None + + """ + pass + + + def GetProperty(self,key:'Any') -> 'Any': + """ + Retrieves the value of a property, converted to an appropriate python type + +Args: + + key(Any):The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property + +Returns: + + Any:The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property + + + """ + pass + + + def GetCLSID(self,key:'Any') -> 'PyIID': + """ + Retrieves the value of a property as a CLSID (VT_CLSID) + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + PyIID + + """ + pass + + + def GetFileTime(self,key:'Any') -> 'PyTime': + """ + Retrieves the value of a property as a FILETIME + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + PyTime + + """ + pass + + + def GetInt32(self,key:'Any') -> 'Any': + """ + Retrieves the value of a property as a 32 bit int. + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + + def GetString(self,key:'Any') -> 'Any': + """ + Retrieves the value of a property as a string + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + + def GetUInt32(self,key:'Any') -> 'Any': + """ + Returns the value of a property as a 32 bit unsigned int + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + + def GetUInt64(self,key:'Any') -> 'Any': + """ + Returns the value of a property as an unsigned 64-bit int + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + + def GetBool(self,key:'Any') -> 'Any': + """ + Returns the value of a property as a boolean + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + +class PyIShellItemArray(object): + """Container for a number of shell items""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToHandler(self,pbc:'Any',rbhid:'PyIID',riid:'PyIID') -> 'Any': + """ + Creates an instance of a handler for the items in the container + +Args: + + pbc(Any):Bind context, can be None + rbhid(PyIID):Bind handler GUID (shell.BHID_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyStore(self,flags:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves a store containing consolidated + +properties of items in container + +Args: + + flags(Any):Flags indicating how the properties are retrieved (shellcon.GPS_*) + riid(PyIID):The interface to return, IID_IPropertyStore or related interface + +Returns: + + Any + + """ + pass + + + def GetPropertyDescriptionList(self,Type:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves descriptions for a + +defined group of properties + +Args: + + Type(Any):Property list identifier (pscon.PKEY_PropList_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetAttributes(self,AttribFlags:'Any',Mask:'Any') -> 'Any': + """ + Retrieves shell attributes of contained items + +Args: + + AttribFlags(Any):SIATTRIBFLAGS value (shellcon.SIATTRIBFLAGS_*) specifying how to combine attributes of multiple items + Mask(Any):Combination of SFGAOF flags (shellcon.SFGAO_*) specifying which attributes to return + +Returns: + + Any + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Returns the number of items in the container + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemAt(self,dwIndex:'Any') -> 'Any': + """ + Retrieves an item by index + +Args: + + dwIndex(Any):Zero-based index of item to retrieve + +Returns: + + Any + + """ + pass + + + def EnumItems(self,) -> 'Any': + """ + Returns an enumeration interface to list contained items + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIShellItemResources(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetAttributes(self,) -> 'None': + """ + Description of GetAttributes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'Any': + """ + Description of GetSize. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTimes(self,) -> 'None': + """ + Description of GetTimes. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetTimes(self,pftCreation:'PyTime',pftWrite:'PyTime',pftAccess:'PyTime') -> 'None': + """ + Description of SetTimes. + +Args: + + pftCreation(PyTime):Description for pftCreation + pftWrite(PyTime):Description for pftWrite + pftAccess(PyTime):Description for pftAccess + +Returns: + + None + + """ + pass + + + def GetResourceDescription(self,pcsir:'Any') -> 'None': + """ + Description of GetResourceDescription. + +Args: + + pcsir(Any):Description for pcsir + +Returns: + + None + + """ + pass + + + def EnumResources(self,) -> 'Any': + """ + Description of EnumResources. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SupportsResource(self,pcsir:'Any') -> 'Any': + """ + Description of SupportsResource. + +Args: + + pcsir(Any):Description for pcsir + +Returns: + + Any + + """ + pass + + + def OpenResource(self,pcsir:'Any',riid:'PyIID') -> 'Any': + """ + Description of OpenResource. + +Args: + + pcsir(Any):Description for pcsir + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def CreateResource(self,sir:'Any',riid:'PyIID') -> 'Any': + """ + Description of CreateResource. + +Args: + + sir(Any):Resource identifier + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def MarkForDelete(self,) -> 'None': + """ + Description of MarkForDelete. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIShellLibrary(object): + """Interface used to access Libraries""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def LoadLibraryFromItem(self,Library:'Any',Mode:'Any') -> 'None': + """ + Loads an existing library file + +Args: + + Library(Any):Shell item interface representing the library file + Mode(Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + None + + """ + pass + + + def LoadLibraryFromKnownFolder(self,Library:'PyIID',Mode:'Any') -> 'None': + """ + Initializes library from a known folder + +Args: + + Library(PyIID):Known folder id, shell.FOLDERID_* + Mode(Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + None + + """ + pass + + + def AddFolder(self,Location:'Any') -> 'None': + """ + Includes a folder + +Args: + + Location(Any):Shell item interface representing the folder + +Returns: + + None + + """ + pass + + + def RemoveFolder(self,Location:'Any') -> 'None': + """ + Removes a folder + +Args: + + Location(Any):Shell item interface representing the folder + +Returns: + + None + + """ + pass + + + def GetFolders(self,Filter:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves a collection of folders in the library + +Args: + + Filter(Any):Specifies what types of folder to return (shellcon.LFF_*) + riid(PyIID):The interface to return, IObjectCollection and IObjectArray also accepted. + +Returns: + + Any + + """ + pass + + + def ResolveFolder(self,FolderToResolve:'Any',Timeout:'Any',riid:'PyIID') -> 'Any': + """ + Attempts to locate a folder that has been moved or renamed + +Args: + + FolderToResolve(Any):Library item whose location has changed + Timeout(Any):Max search time, specified in milliseconds + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetDefaultSaveFolder(self,Type:'Any',riid:'PyIID') -> 'Any': + """ + Returns the default folder in which new items are + +saved + +Args: + + Type(Any):Specifies whether to return public or private save location, shellcon.DSFT_* + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def SetDefaultSaveFolder(self,Type:'Any',SaveFolder:'Any') -> 'None': + """ + Sets the default save location + +Args: + + Type(Any):Specifies public or private save location, shellcon.DSFT_* + SaveFolder(Any):New default location, must be in the library + +Returns: + + None + + """ + pass + + + def GetOptions(self,) -> 'Any': + """ + Retrieves library option flags + +Args: + + + +Returns: + + Any:PyIShellLibrary.GetOptions + +int = GetOptions()Retrieves library option flags +Return ValueReturns a combination of shellcon.LOF_* flags + + + """ + pass + + + def SetOptions(self,Mask:'Any',Options:'Any') -> 'None': + """ + Sets library option flags + +Args: + + Mask(Any):Bitmask of flags to be changed, combination of shellcon.LOF_* values + Options(Any):New options, combination of shellcon.LOF_* values + +Returns: + + None + + """ + pass + + + def GetFolderType(self,) -> 'PyIID': + """ + Returns the library type, shell.FOLDERTYPEID_* + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def SetFolderType(self,Type:'PyIID') -> 'None': + """ + Sets the folder type for the library + +Args: + + Type(PyIID):New type, shell.FOLDERTYPEID_* + +Returns: + + None + + """ + pass + + + def GetIcon(self,) -> 'Any': + """ + Returns the location of the library's icon + +Args: + + + +Returns: + + Any:PyIShellLibrary.GetIcon + +str = GetIcon()Returns the location of the library's icon +Return ValueUses "module,resource" format + + + """ + pass + + + def SetIcon(self,Icon:'Any') -> 'None': + """ + Sets the library icon + +Args: + + Icon(Any):Icon location in "module,resource" syntax + +Returns: + + None + + """ + pass + + + def Commit(self,) -> 'None': + """ + Saves changes (only if loaded from an existing library) + +Args: + + + +Returns: + + None + + """ + pass + + + def Save(self,FolderToSaveIn:'Any',LibraryName:'Any',Flags:'Any') -> 'Any': + """ + Saves the library to a specific location + +Args: + + FolderToSaveIn(Any):The destination folder, use None to save in current user's Libraries folder + LibraryName(Any):Filename for the new library, without file extension + Flags(Any):Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. + +Returns: + + Any:Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. + + + """ + pass + + + def SaveInKnownFolder(self,FolderToSaveIn:'PyIID',LibraryName:'Any',Flags:'Any') -> 'Any': + """ + Saves the library in a known folder + +Args: + + FolderToSaveIn(PyIID):The destination folder, shell.FOLDERID_* + LibraryName(Any):Filename for the new library, without file extension + Flags(Any):Determines behaviour if file already exists, shellcon.LSF_* + +Returns: + + Any + + """ + pass + + +class PyIShellLink(object): + """Interface used to access the properties of a shell link file (*.lnk)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPath(self,fFlags:'Any',cchMaxPath:'Any') -> 'Tuple[Any, WIN32_FIND_DATA]': + """ + Retrieves the target path and file name of a shell link + +object + +Args: + + fFlags(Any):One of the following values:ValueDescriptionSLGP_SHORTPATHRetrieves the standard short (8.3 format) file name.SLGP_UNCPRIORITYRetrieves the Universal Naming Convention (UNC) path name of the file.SLGP_RAWPATHRetrieves the raw path name. A raw path is something that might not exist and may include environment variables that need to be expanded. + cchMaxPath(Any):Number of characters to allocate for returned filenameCommentsThe AlternateFileName (8.3) member of WIN32_FIND_DATA does not return information + +Returns: + + Tuple[Any, WIN32_FIND_DATA] + + """ + pass + + + def GetIDList(self,) -> 'Any': + """ + Retrieves the item id list that identifies the target of the shell link. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetIDList(self,pidl:'Any') -> 'None': + """ + Sets the target of the link using an item id list + +Args: + + pidl(Any):Absolute item id list that identifies the target + +Returns: + + None + + """ + pass + + + def GetDescription(self,cchMaxName:'Any'=1024) -> 'Any': + """ + Retrieves the description of the link (displays as Comment in the UI) + +Args: + + cchMaxName(Any):Number of character to allocate for the retrieved text + +Returns: + + Any + + """ + pass + + + def SetDescription(self,Name:'Any') -> 'None': + """ + Sets the description of the link (displays as Comment in the UI) + +Args: + + Name(Any):The description for the link + +Returns: + + None + + """ + pass + + + def GetWorkingDirectory(self,cchMaxName:'Any'=1024) -> 'Any': + """ + Retrieves the working directory for the link + +Args: + + cchMaxName(Any):Number of characters to allocate for returned text + +Returns: + + Any + + """ + pass + + + def SetWorkingDirectory(self,Dir:'Any') -> 'None': + """ + Sets the working directory for the link. + +Args: + + Dir(Any):The working directory for the link + +Returns: + + None + + """ + pass + + + def GetArguments(self,cchMaxName:'Any'=1024) -> 'Any': + """ + Retrieves the command-line arguments associated with a shell link object. + +Args: + + cchMaxName(Any):Number of characters to fetch. + +Returns: + + Any + + """ + pass + + + def SetArguments(self,args:'Any') -> 'None': + """ + Sets the command-line arguments associated with a shell link object. + +Args: + + args(Any):The new arguments. + +Returns: + + None + + """ + pass + + + def GetHotkey(self,) -> 'Any': + """ + Retrieves the hot key for a shell link object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetHotkey(self,wHotkey:'Any') -> 'None': + """ + Sets the hot key for a shell link object. + +Args: + + wHotkey(Any):The virtual key code is in the low-order byte, and the modifier flags are in the high-order byte. The modifier flags can be a combination of the values specified in the description of the PyIShellLink::GetHotkey method. + +Returns: + + None + + """ + pass + + + def GetShowCmd(self,) -> 'Any': + """ + Retrieves the show (SW_) command for a shell link object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetShowCmd(self,iShowCmd:'Any') -> 'None': + """ + Sets the show (SW_) command for a shell link object. + +Args: + + iShowCmd(Any):The new show command value. + +Returns: + + None + + """ + pass + + + def GetIconLocation(self,cchMaxPath:'Any') -> 'Any': + """ + Retrieves the location (path and index) of the icon for a shell link + +object. + +Args: + + cchMaxPath(Any):Number of characters to allocate for the result string. + +Returns: + + Any + + """ + pass + + + def SetIconLocation(self,iconPath:'str',iIcon:'Any') -> 'None': + """ + Sets the location (path and index) of the icon for a shell link object. + +Args: + + iconPath(str):Path to the file with the icon. + iIcon(Any):Index of the icon. + +Returns: + + None + + """ + pass + + + def SetRelativePath(self,relPath:'str',reserved:'Any'=0) -> 'None': + """ + Sets the relative path for a shell link object. + +Args: + + relPath(str):The relative path. + reserved(Any):Reserved - must be zero.CommentsThis mechanism allows for moved link files to reestablish connection with relative files through similar-prefix comparisons + +Returns: + + None + + """ + pass + + + def Resolve(self,hwnd:'Any',fFlags:'Any') -> 'None': + """ + Resolves a shell link by searching for the shell link object and updating the + +shell link path and its list of identifiers (if necessary) + +Args: + + hwnd(Any):The parent window of a dialog which will pop up if resolution fails. + fFlags(Any):One of the following constants:ValueDescriptionSLR_INVOKE_MSICall the Microsoft Windows Installer.SLR_NOLINKINFODisable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting SLR_NOLINKINFO disables both types of tracking.SLR_NO_UIDo not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, the high-order word of fFlags can be set to a time-out value that specifies the maximum amount of time to be spent resolving the link. The function returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration will be set to the default value of 3,000 milliseconds (3 seconds). To specify a value, set the high word of fFlags to the desired time-out duration, in milliseconds.SLR_NOUPDATEDo not update the link information.SLR_NOSEARCHDo not execute the search heuristics.SLR_NOTRACKDo not use distributed link tracking.SLR_UPDATEIf the link object has changed, update its path and list of identifiers. If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine whether or not the link object has changed. + +Returns: + + None + + """ + pass + + + def SetPath(self,path:'str') -> 'None': + """ + Sets the path and file name of a shell link object. + +Args: + + path(str):The path and filename of the link. + +Returns: + + None + + """ + pass + + +class PyIShellLinkDataList(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddDataBlock(self,DataBlock:'Any') -> 'None': + """ + Inserts a data block into the link + +Args: + + DataBlock(Any):Contents are dependent on type of data block being addedCommentsInput should be one of NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS, EXP_SPECIAL_FOLDER, EXP_DARWIN_LINK, or EXP_SZ_LINK. Expected form is indicated by the Signature member. + +Returns: + + None + + """ + pass + + + def CopyDataBlock(self,Sig:'Any') -> 'Any': + """ + Retrieves the specified data block from the link + +Args: + + Sig(Any):The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in + +Returns: + + Any:The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in + + + """ + pass + + + def GetFlags(self,) -> 'Any': + """ + Retrieves the link's flags + +Args: + + + +Returns: + + Any:PyIShellLinkDataList.GetFlags + +int = GetFlags()Retrieves the link's flags +Return ValueReturns combination of shellcon.SLDF_* flags + + + """ + pass + + + def RemoveDataBlock(self,Sig:'Any') -> 'None': + """ + Deletes one of the link's data blocks + +Args: + + Sig(Any):Identifies which block is to be removed, one of shellcon.*_SIG constants + +Returns: + + None + + """ + pass + + + def SetFlags(self,Flags:'Any') -> 'None': + """ + Sets the flags indicating which data blocks are present + +Args: + + Flags(Any):Combination of shellcon.SLDF_* flags + +Returns: + + None + + """ + pass + + +class PyIShellView(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,pmsg:'Any') -> 'Any': + """ + Description of TranslateAccelerator. + +Args: + + pmsg(Any):Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call + +Returns: + + Any:Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call + + + """ + pass + + + def EnableModeless(self,fEnable:'Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def UIActivate(self,uState:'Any') -> 'None': + """ + Description of UIActivate. + +Args: + + uState(Any):Description for uState + +Returns: + + None + + """ + pass + + + def Refresh(self,) -> 'None': + """ + Description of Refresh. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateViewWindow(self,psvPrevious:'Any',pfs:'Tuple[Any, Any]',psb:'Any',prcView:'Tuple[Any, Any, Any, Any]') -> 'Any': + """ + Description of CreateViewWindow. + +Args: + + psvPrevious(Any):Description for psvPrevious + pfs(Tuple[Any, Any]):Description for pfs + psb(Any):Description for psb + prcView(Tuple[Any, Any, Any, Any]):Description for prcViewReturn ValueThe result is an integer handle to the new window. + +Returns: + + Any:Description for prcViewReturn ValueThe result is an integer handle to the new window. + + + """ + pass + + + def DestroyViewWindow(self,) -> 'None': + """ + Description of DestroyViewWindow. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentInfo(self,) -> 'Any': + """ + Description of GetCurrentInfo. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SaveViewState(self,) -> 'None': + """ + Description of SaveViewState. + +Args: + + + +Returns: + + None + + """ + pass + + + def SelectItem(self,pidlItem:'Any',uFlags:'Any') -> 'None': + """ + Description of SelectItem. + +Args: + + pidlItem(Any):Description for pidlItem + uFlags(Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def GetItemObject(self,uItem:'Any',riid:'PyIID') -> 'Any': + """ + Description of GetItemObject. + +Args: + + uItem(Any):Description for uItem + riid(PyIID):Description for riid + +Returns: + + Any + + """ + pass + + +class PyISpecifyPropertyPages(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPages(self,) -> 'None': + """ + Description of GetPages. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIStorage(object): + """Structured storage compound storage object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateStream(self,Name:'Any',Mode:'Any',reserved1:'Any'=0,reserved2:'Any'=0) -> 'Any': + """ + Creates and opens a stream object with the specified name contained + +in this storage object. All elements within a storage object — both streams and other storage objects — are kept in + +the same name space. + +Args: + + Name(Any):Name of the new stream + Mode(Any):Access mode, storagecon.STGM_* + reserved1(Any):Reserved - must be zero. + reserved2(Any):Reserved - must be zero. + +Returns: + + Any + + """ + pass + + + def OpenStream(self,Name:'Any',reserved1:'Any',Mode:'Any',reserved2:'Any'=0) -> 'Any': + """ + Opens an existing stream object within this storage object in the + +specified access mode. + +Args: + + Name(Any):Name of stream to be opened + reserved1(Any):A reserved param. Always pass None. NULL is always passed to the COM function + Mode(Any):Access mode, storagecon.STGM_* + reserved2(Any):Reserved - must be zero. + +Returns: + + Any + + """ + pass + + + def CreateStorage(self,Name:'Any',Mode:'Any',StgFmt:'Any',reserved2:'Any'=0) -> 'Any': + """ + Creates and opens a new storage object nested within this storage + +object. + +Args: + + Name(Any):The name of the newly created stream. + Mode(Any):Access mode - combination of storagecon.STGM_* flags + StgFmt(Any):Documented as "reserved"! + reserved2(Any):Description for reserved2 + +Returns: + + Any + + """ + pass + + + def OpenStorage(self,Name:'Any',Priority:'Any',Mode:'Any',snbExclude:'Any',reserved:'Any'=0) -> 'Any': + """ + Opens an existing storage object with the specified name in the + +specified access mode. + +Args: + + Name(Any):Name of the storage, or None. + Priority(Any):If the pstgPriority parameter is not None, it is a PyIStorage object to a previous opening of an element of the storage object, usually one that was opened in priority mode. The storage object should be closed and re-opened according to grfMode. When the PyIStorage::OpenStorage method returns, pstgPriority is no longer valid - use the result value. If the pstgPriority parameter is None, it is ignored. + Mode(Any):Access mode - combination of storagecon.STGM_* flags (must include STGM_SHARE_EXCLUSIVE) + snbExclude(Any):Reserved for later - Must be None + reserved(Any):Reserved integer param. + +Returns: + + Any + + """ + pass + + + def CopyTo(self,rgiidExclude:'Tuple[Any, Any]',snbExclude:'Any',stgDest:'Any') -> 'None': + """ + Copies the entire contents of an open storage object to another storage object. + +Args: + + rgiidExclude(Tuple[Any, Any]):List of IID's to be excluded. Use empty seq to exclude all objects, or None to indicate no excludes. + snbExclude(Any):Reserved for later - Must be None + stgDest(Any):The open storage object into which this storage object is to be copied. The destination storage object can be a different implementation of the PyIStorage interface from the source storage object. Thus, IStorage::CopyTo can only use publicly available methods of the destination storage object. If stgDest is open in transacted mode, it can be reverted by calling its PyIStorage::Revert method. + +Returns: + + None + + """ + pass + + + def MoveElementTo(self,Name:'Any',stgDest:'Any',NewName:'Any',Flags:'Any') -> 'None': + """ + Copies or moves a substorage or stream from this storage object to another + +storage object. + +Args: + + Name(Any):A string that contains the name of the element in this storage object to be moved or copied. + stgDest(Any):PyIStorage for the destination storage object. + NewName(Any):A string that contains the new name for the element in its new storage object. + Flags(Any):Specifies whether to move or copy (storagecon.STGMOVE_MOVE or STGMOVE_COPY) + +Returns: + + None + + """ + pass + + + def Commit(self,grfCommitFlags:'Any') -> 'None': + """ + Ensures that any changes made to a storage object open in transacted mode are reflected + +in the parent storage; for a root storage, reflects the changes in the actual device, for example, a file on disk. + +For a root storage object opened in direct mode, this method has no effect except to flush all memory buffers to the + +disk. For non-root storage objects in direct mode, this method has no effect. + +Args: + + grfCommitFlags(Any):Controls how the changes are committed to the storage object. See the STGC enumeration for a definition of these values. + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + Discards all changes that have been made to the storage object since the last commit. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumElements(self,reserved1:'Any'=0,reserved2:'Any'=None,reserved3:'Any'=0) -> 'Any': + """ + Retrieves an enumerator object that can be used to enumerate the + +storage and stream objects contained within this storage object. + +Args: + + reserved1(Any):Reserved - must be zero. + reserved2(Any):A reserved param. Always pass None. NULL is always passed to the COM function + reserved3(Any):Reserved - must be zero. + +Returns: + + Any + + """ + pass + + + def DestroyElement(self,name:'str') -> 'None': + """ + Removes the specified storage or stream from this storage object. + +Args: + + name(str):The name of the element to be removed. + +Returns: + + None + + """ + pass + + + def RenameElement(self,OldName:'Any',NewName:'Any') -> 'None': + """ + Renames the specified substorage or stream in this storage object. + +Args: + + OldName(Any):The name of the substorage or stream to be changed. + NewName(Any):The new name for the specified sustorage or stream. + +Returns: + + None + + """ + pass + + + def SetElementTimes(self,name:'Any',ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': + """ + Sets the modification, access, and creation times of the specified storage + +element, if supported by the underlying file system. + +Args: + + name(Any):The name of the storage object element whose times are to be modified. If NULL, the time is set on the root storage rather than one of its elements. + ctime(PyTime):Either the new creation time for the element or None if the creation time is not to be modified. + atime(PyTime):Either the new access time for the element or None if the access time is not to be modified. + mtime(PyTime):Either the new modification time for the element or None if the modification time is not to be modified. + +Returns: + + None + + """ + pass + + + def SetClass(self,clsid:'PyIID') -> 'None': + """ + Assigns the specified CLSID to this storage object. + +Args: + + clsid(PyIID):The class identifier (CLSID) that is to be associated with the storage object. + +Returns: + + None + + """ + pass + + + def SetStateBits(self,grfStateBits:'Any',grfMask:'Any') -> 'None': + """ + Stores up to 32 bits of state information in this storage object. + +Args: + + grfStateBits(Any):Specifies the new values of the bits to set. No legal values are defined for these bits; they are all reserved for future use and must not be used by applications. + grfMask(Any):A binary mask indicating which bits in grfStateBits are significant in this call. + +Returns: + + None + + """ + pass + + + def Stat(self,grfStatFlag:'Any') -> 'Any': + """ + Retrieves the STATSTG structure for this open storage object. + +Args: + + grfStatFlag(Any):Specifies that some of the fields in the STATSTG structure are not returned, thus saving a memory allocation operation. Values are taken from the STATFLAG enumeration. + +Returns: + + Any + + """ + pass + + +class PyIStream(object): + """A Python interface to IStream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,numBytes:'Any') -> 'str': + """ + Read the specified number of bytes from the string. + +Args: + + numBytes(Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + +Returns: + + str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + + + """ + pass + + + def read(self,numBytes:'Any') -> 'str': + """ + Read the specified number of bytes from the string. + +Args: + + numBytes(Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + +Returns: + + str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + + + """ + pass + + + def Write(self,data:'str') -> 'None': + """ + Write data to a stream + +Args: + + data(str):The binary data to write. + +Returns: + + None + + """ + pass + + + def write(self,data:'str') -> 'None': + """ + Write data to a stream + +Args: + + data(str):The binary data to write. + +Returns: + + None + + """ + pass + + + def Seek(self,offset:'Any',origin:'Any') -> 'ULARGE_INTEGER': + """ + Changes the seek pointer to a new location. + +Args: + + offset(Any):The new location + origin(Any):Relative to where? + +Returns: + + ULARGE_INTEGER + + """ + pass + + + def SetSize(self,newSize:'ULARGE_INTEGER') -> 'None': + """ + Changes the size of the stream object. + +Args: + + newSize(ULARGE_INTEGER):The new size + +Returns: + + None + + """ + pass + + + def CopyTo(self,stream:'Any',cb:'ULARGE_INTEGER') -> 'ULARGE_INTEGER': + """ + Copies a specified number of bytes from the current seek pointer in the + +stream to the current seek pointer in another stream. + +Args: + + stream(Any):The stream to write to. + cb(ULARGE_INTEGER):The number of bytes to write.Return ValueThe return value is the number of bytes actually written. + +Returns: + + ULARGE_INTEGER:The number of bytes to write.Return ValueThe return value is the number of bytes actually written. + + + """ + pass + + + def Commit(self,flags:'Any') -> 'None': + """ + Ensures that any changes made to a stream object open in transacted mode are reflected in + +the parent storage. + +Args: + + flags(Any):Controls how changes are performed. + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def LockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'Any') -> 'None': + """ + Restricts access to a specified range of bytes in the stream. + +Args: + + offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. + cb(ULARGE_INTEGER):The number of bytes to restrict. + lockType(Any):Restrictions requested. + +Returns: + + None + + """ + pass + + + def UnLockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'Any') -> 'None': + """ + None + +Args: + + offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. + cb(ULARGE_INTEGER):The number of bytes to restrict. + lockType(Any):Restrictions requested. + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates a new stream object with its own seek pointer that references the + +same bytes as the original stream. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Stat(self,grfStatFlag:'Any'=0) -> 'Any': + """ + Returns information about the stream + +Args: + + grfStatFlag(Any):Flags. + +Returns: + + Any + + """ + pass + + +class PyITask(object): + """Python object that encapsulates the ITask interface, inherits all the methods of PyIScheduledWorkItem""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetApplicationName(self,ApplicationName:'Any') -> 'None': + """ + Specify which program the task will run + +Args: + + ApplicationName(Any):Program to execute + +Returns: + + None + + """ + pass + + + def GetApplicationName(self,) -> 'Any': + """ + Retrieve name of program that task will run + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetParameters(self,Parameters:'Any') -> 'None': + """ + Sets command line parameters + +Args: + + Parameters(Any):String containing command line parameters + +Returns: + + None + + """ + pass + + + def GetParameters(self,) -> 'Any': + """ + Returns command line parameters for task + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetWorkingDirectory(self,WorkingDirectory:'Any') -> 'None': + """ + Sets initial working directory for task + +Args: + + WorkingDirectory(Any):Initial working directory + +Returns: + + None + + """ + pass + + + def GetWorkingDirectory(self,) -> 'Any': + """ + Return working directory that the task will start out in + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetPriority(self,Priority:'Any') -> 'None': + """ + Sets priority for task + +Args: + + Priority(Any):One of REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS + +Returns: + + None + + """ + pass + + + def GetPriority(self,) -> 'Any': + """ + Gets priority that will be assigned to process when task starts + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetTaskFlags(self,dwFlags:'Any') -> 'None': + """ + Sets flag for task. + +Args: + + dwFlags(Any):None currently defined + +Returns: + + None + + """ + pass + + + def GetTaskFlags(self,) -> 'Any': + """ + Retrieve task flags (None currently defined) + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetMaxRunTime(self,MaxRunTimeMS:'Any') -> 'None': + """ + Sets maximun run time for task, use -1 to disable + +Args: + + MaxRunTimeMS(Any):Specified in milliseconds (use -1 to disable, not 0) + +Returns: + + None + + """ + pass + + + def GetMaxRunTime(self,) -> 'Any': + """ + Returns maximun run time for task + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyITaskScheduler(object): + """Interface to the Windows Task Scheduler""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetTargetComputer(self,Computer:'Any') -> 'None': + """ + Connect to another machine to manage its tasks + +Args: + + Computer(Any):Name of system to connect toCommentsLeading backslashes are required. Call will succeed without them, but no other methods will work. + +Returns: + + None + + """ + pass + + + def GetTargetComputer(self,) -> 'Any': + """ + Returns name of computer that the Task Scheduler is + +connected to + +Args: + + + +Returns: + + Any + + """ + pass + + + def Enum(self,) -> 'Tuple[str, ...]': + """ + Retrieve list of task names + +Args: + + + +Returns: + + Tuple[str, ...] + + """ + pass + + + def Activate(self,Name:'Any',riid:'PyIID') -> 'Any': + """ + Opens the specified task and returns an ITask interface for it + +Args: + + Name(Any):Name of task to retreive + riid(PyIID):IID to return, currently only IID_ITask accepted + +Returns: + + Any + + """ + pass + + + def Delete(self,TaskName:'Any') -> 'None': + """ + Delete task by name + +Args: + + TaskName(Any):Name of task to delete + +Returns: + + None + + """ + pass + + + def NewWorkItem(self,TaskName:'Any',rclsid:'PyIID',riid:'PyIID') -> 'Any': + """ + Creates a new task + +Args: + + TaskName(Any):Name of new task + rclsid(PyIID):Class id of work item, currently only CLSID_CTask (defaults if not passed in) + riid(PyIID):Interface IID to return, currently only IID_ITask (defaults if not passed in) + +Returns: + + Any + + """ + pass + + + def AddWorkItem(self,TaskName:'Any',WorkItem:'Any') -> 'None': + """ + Create a new scheduled task from PyITask object + +Args: + + TaskName(Any):Name of task to be created + WorkItem(Any):Existing PyITask objectCommentsThe PyItask passed in is modified in place and on success is associated with the new task, not the old one + +Returns: + + None + + """ + pass + + + def IsOfType(self,Name:'Any',riid:'PyIID') -> 'None': + """ + Check if named object supports specified interface + +Args: + + Name(Any):Name of object + riid(PyIID):Named object is checked that it supports the interface of this IID + +Returns: + + None + + """ + pass + + +class PyITaskTrigger(object): + """Python object that encapsulates the ITaskTrigger interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetTrigger(self,Trigger:'Any') -> 'None': + """ + Set trigger parameters from a PyTASK_TRIGGER object + +Args: + + Trigger(Any):Python object representing a TASK_TRIGGER struct + +Returns: + + None + + """ + pass + + + def GetTrigger(self,) -> 'Any': + """ + Retrieves trigger parms as a PyTASK_TRIGGER object + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTriggerString(self,) -> 'str': + """ + Build text summary of trigger + +Args: + + + +Returns: + + str + + """ + pass + + +class PyITaskbarList(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def HrInit(self,) -> 'None': + """ + Intializes the interface before use + +Args: + + + +Returns: + + None + + """ + pass + + + def AddTab(self,hwnd:'int') -> 'None': + """ + Places a window on the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def DeleteTab(self,hwnd:'int') -> 'None': + """ + Removes a window from the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def ActivateTab(self,hwnd:'int') -> 'None': + """ + Marks a window as the active tab on the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def SetActiveAlt(self,hwnd:'int') -> 'None': + """ + Sets the window as the active tab, without displaying it as pressed on the + +taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + +class PyITransferAdviseSink(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def UpdateProgress(self,SizeCurrent:'Any',SizeTotal:'Any',FilesCurrent:'Any',FilesTotal:'Any',FoldersCurrent:'Any',FoldersTotal:'Any') -> 'None': + """ + Gives an estimate of amount of work completed + +Args: + + SizeCurrent(Any):Bytes transferred so far + SizeTotal(Any):Total number of bytes + FilesCurrent(Any):Number of files processed already + FilesTotal(Any):Total number of files + FoldersCurrent(Any):Number of folders processed already + FoldersTotal(Any):Total number of folder + +Returns: + + None + + """ + pass + + + def UpdateTransferState(self,State:'Any') -> 'None': + """ + Notifies client of current operation state + +Args: + + State(Any):A TRANSFER_ADVISE_STATE value (shellcon.TS_*) + +Returns: + + None + + """ + pass + + + def ConfirmOverwrite(self,Source:'Any',DestParent:'Any',Name:'Any') -> 'Any': + """ + Asks user for permission to overwrite an existing item + +Args: + + Source(Any):The item that will replace existing item + DestParent(Any):Folder into which item will be placed + Name(Any):New name for item, or None if item is to keep original name + +Returns: + + Any + + """ + pass + + + def ConfirmEncryptionLoss(self,Source:'Any') -> 'Any': + """ + Notifies user when an item can't be encrypted at + +destination + +Args: + + Source(Any):Item that failed to be encrypted + +Returns: + + Any + + """ + pass + + + def FileFailure(self,Item:'Any',ItemName:'Any',Error:'Any') -> 'Tuple[Any, Any]': + """ + Notifies user of failure, and queries how to proceed + +Args: + + Item(Any):The shell item that caused the failure + ItemName(Any):Name of item if different than above, can be None + Error(Any):HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure + +Returns: + + Tuple[Any, Any]:HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure + + + """ + pass + + + def SubStreamFailure(self,Item:'Any',StreamName:'Any',Error:'Any') -> 'Any': + """ + Notifies user of failure on a substream, and queries how to + +proceed + +Args: + + Item(Any):The item whose stream couldn't be created + StreamName(Any):Name of the failed stream + Error(Any):HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled + +Returns: + + Any:HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled + + + """ + pass + + + def PropertyFailure(self,Item:'Any',key:'Any',Error:'Any') -> 'Any': + """ + Notifies user of failure to set an item's properties + +Args: + + Item(Any):The item whose property could not be set + key(Any):Identifies the property that caused the error, or None if all properties failed + Error(Any):HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or COPYENGINE_E_USERCANCELLED to cancel pending operations + +Returns: + + Any:HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or + +COPYENGINE_E_USERCANCELLED to cancel pending operations + + + """ + pass + + +class PyITransferDestination(object): + """Implemented by shell extensions that act as targets for item copy or move operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'Any') -> 'Any': + """ + Connects an advise sink + +Args: + + Sink(Any):Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise + +Returns: + + Any:Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise + + + """ + pass + + + def Unadvise(self,Cookie:'Any') -> 'None': + """ + Disconnects an advise sink + +Args: + + Cookie(Any):Connection identifier as returned by PyITransferDestination::Advise + +Returns: + + None + + """ + pass + + + def CreateItem(self,Name:'Any',Attributes:'Any',Size:'Any',Flags:'Any',riidItem:'PyIID',riidResources:'PyIID') -> 'Tuple[Any, Any, Any]': + """ + Requests that a new item be created + +Args: + + Name(Any):Filename to be created + Attributes(Any):File attributes + Size(Any):Size of file + Flags(Any):Combination of shellcon.TSF_* flags + riidItem(PyIID):Item interface to return + riidResources(PyIID):Resource interface to returnReturn ValueReturns the HRESULT and requested interfaces. Interfaces may be None if function returns one of the informational codes (shellcon.COPYENGINE_S_*) + +Returns: + + Tuple[Any, Any, Any]:Resource interface to return +Return ValueReturns the HRESULT and requested interfaces. Interfaces may be None if + +function returns one of the informational codes (shellcon.COPYENGINE_S_*) + + + """ + pass + + +class PyITransferMediumItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyITransferSource(object): + """Implemented by shell folders that can act as the source of shell item operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'Any') -> 'Any': + """ + Connects an advise sink to receive notifications + +Args: + + Sink(Any):Event sink to respond to notifications + +Returns: + + Any + + """ + pass + + + def Unadvise(self,Cookie:'Any') -> 'None': + """ + Disconnects an event sink + +Args: + + Cookie(Any):Connection id as returned by PyITransferSource::Advise + +Returns: + + None + + """ + pass + + + def SetProperties(self,proparray:'Any') -> 'None': + """ + Specifies changes to be applied to items' properties + +Args: + + proparray(Any):Property changes to be applied by PyITransferSource::ApplyPropertiesToItem + +Returns: + + None + + """ + pass + + + def OpenItem(self,Item:'Any',flags:'Any',riid:'PyIID') -> 'Tuple[Any, Any]': + """ + Initiates the copying of an item + +Args: + + Item(Any):The item to be copied. + flags(Any):Combination of shellcon.TSF_* flags + riid(PyIID):The interface to return + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def MoveItem(self,Item:'Any',ParentDst:'Any',NameDst:'Any',flags:'Any') -> 'Tuple[Any, Any]': + """ + Moves a shell item into another folder + +Args: + + Item(Any):Item to be moved + ParentDst(Any):The folder into which it will be moved + NameDst(Any):New name for item after move, None to keep same name + flags(Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions of expected actions for specific error codes. + +Returns: + + Tuple[Any, Any]:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None + +when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions + +of expected actions for specific error codes. + + + """ + pass + + + def RecycleItem(self,Source:'Any',ParentDest:'Any',flags:'Any') -> 'Tuple[Any, Any]': + """ + Moves an item to the recycle bin + +Args: + + Source(Any):The item to be recycled + ParentDest(Any):Shell item representing the recycle bin + flags(Any):Combination of shellcon.TSF_* flags + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def RemoveItem(self,Source:'Any',flags:'Any') -> 'Any': + """ + Deletes an item without recycling + +Args: + + Source(Any):The item to be deleted + flags(Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation + +Returns: + + Any:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation + + + """ + pass + + + def RenameItem(self,Source:'Any',NewName:'Any',flags:'Any') -> 'Tuple[Any, Any]': + """ + Renames a shell item + +Args: + + Source(Any):Item to be renamed + NewName(Any):The name to be given to the item + flags(Any):Combination of shellcon.TSF_* flags + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def LinkItem(self,Source:'Any',ParentDest:'Any',NewName:'Any',flags:'Any') -> 'Tuple[Any, Any]': + """ + Not implemented, according to MSDN + +Args: + + Source(Any):Description for psiSource + ParentDest(Any):Description for psiParentDest + NewName(Any):Description for NewName + flags(Any):Combination of shellcon.TSF_* flags + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def ApplyPropertiesToItem(self,Source:'Any') -> 'Any': + """ + None + +Args: + + Source(Any):Item whose properties are to be changed + +Returns: + + Any + + """ + pass + + + def GetDefaultDestinationName(self,Source:'Any',ParentDest:'Any') -> 'Any': + """ + Determines the name of an item as it would appear in a + +given folder + +Args: + + Source(Any):The item whose name is wanted + ParentDest(Any):The destination folder + +Returns: + + Any + + """ + pass + + + def EnterFolder(self,ChildFolderDest:'Any') -> 'Any': + """ + Informs the copy engine that a folder will be the target of a file + +operation + +Args: + + ChildFolderDest(Any):The destination folder for the operation + +Returns: + + Any + + """ + pass + + + def LeaveFolder(self,ChildFolderDest:'Any') -> 'Any': + """ + Informs the copy engine that the operation on a destination folder is + +finished + +Args: + + ChildFolderDest(Any):Destination folder + +Returns: + + Any + + """ + pass + + +class PyITypeComp(object): + """An object that implements the ITypeComp interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Bind(self,szName:'str',wflags:'Any'=0) -> 'Any': + """ + binds to a variable/type + +Args: + + szName(str):The name to bind to + wflags(Any):the bind flags + +Returns: + + Any + + """ + pass + + + def BindType(self,szName:'str') -> 'Any': + """ + binds to a type + +Args: + + szName(str):The name to bind to + +Returns: + + Any + + """ + pass + + +class PyITypeInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetContainingTypeLib(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the containing type library and the index of + +the type description within that type library. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetDocumentation(self,memberId:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the documentation string, + +the complete Help file name and path, and the context ID for the Help topic for a specified type description. + +Args: + + memberId(Any): + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetFuncDesc(self,memberId:'Any') -> 'Any': + """ + None + +Args: + + memberId(Any): + +Returns: + + Any + + """ + pass + + + def GetImplTypeFlags(self,index:'Any') -> 'Any': + """ + Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or + +base interface in a type description. + +Args: + + index(Any): + +Returns: + + Any + + """ + pass + + + def GetIDsOfNames(self,) -> 'Any': + """ + Maps between member names and member IDs, and parameter names and parameter + +IDs. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNames(self,memberId:'Any') -> 'Any': + """ + Retrieves the variable with the specified member ID (or the name of + +the property or method and its parameters) that correspond to the specified function ID. + +Args: + + memberId(Any): + +Returns: + + Any + + """ + pass + + + def GetTypeAttr(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRefTypeInfo(self,hRefType:'Any') -> 'Any': + """ + If a type description references other type descriptions, it + +retrieves the referenced type descriptions. + +Args: + + hRefType(Any): + +Returns: + + Any + + """ + pass + + + def GetRefTypeOfImplType(self,hRefType:'Any') -> 'Any': + """ + Retrieves the type description of the implemented interface types. + +Args: + + hRefType(Any):CommentsIf a type description describes a COM class, it retrieves the type description of the implemented interface types. For an interface, GetRefTypeOfImplType returns the type information for inherited interfaces, if any exist. + +Returns: + + Any + + """ + pass + + + def GetVarDesc(self,memberId:'Any') -> 'Any': + """ + None + +Args: + + memberId(Any): + +Returns: + + Any + + """ + pass + + + def GetTypeComp(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyITypeLib(object): + """An object that implements the ITypeLib interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentation(self,index:'Any') -> 'Any': + """ + Retrieves documentation information about the library. + +Args: + + index(Any):The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) + +Returns: + + Any:The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) + + + """ + pass + + + def GetLibAttr(self,) -> 'Any': + """ + Retrieves the libraries attributes + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTypeComp(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTypeInfo(self,index:'Any') -> 'Any': + """ + Retrieves the specified type description in the library. + +Args: + + index(Any):The index of the type description within the library + +Returns: + + Any + + """ + pass + + + def GetTypeInfoCount(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTypeInfoOfGuid(self,iid:'PyIID') -> 'Any': + """ + Retrieves the type info of the specified GUID. + +Args: + + iid(PyIID):GUID of the type description. + +Returns: + + Any + + """ + pass + + + def GetTypeInfoType(self,index:'Any') -> 'Any': + """ + Retrieves the type of a type description. + +Args: + + index(Any):The index of the type description within the library + +Returns: + + Any + + """ + pass + + +class PyIUniformResourceLocator(object): + """Interface to an internet shortcut""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetURL(self,) -> 'Any': + """ + Returns the URL for the shortcut + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetURL(self,URL:'Any',InFlags:'Any'=0) -> 'None': + """ + Sets the URL for the shortcut + +Args: + + URL(Any):The url to be set + InFlags(Any):One of the shellcon.IURL_SETURL* flags + +Returns: + + None + + """ + pass + + + def InvokeCommand(self,Verb:'Any',Flags:'Any'=0,hwndParent:'int'=0) -> 'Any': + """ + Performs one of the object's predefined actions + +Args: + + Verb(Any):The verb to be invoked + Flags(Any):Combination of shellcon.IURL_INVOKECOMMAND_* flags + hwndParent(int):Handle to parent window + +Returns: + + Any + + """ + pass + + +class PyIUnknown(object): + """The base object for all PythonCOM objects. Wraps a COM IUnknown object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryInterface(self,iid:'Any',useIID:'Any'=None) -> 'Any': + """ + Queries an object for a specific interface. + +Args: + + iid(Any):The IID requested. + useIID(Any):If provided and not None, will return an interface for the specified IID if (and only if) a native interface can not be supported. If the interface specified by iid is natively supported, this option is ignored.CommentsThe useIID parameter is a very dangerous option, and should only be used when you are sure you need it! By specifying this parameter, you are telling the COM framework that regardless of the true type of the result (as specified by iid), a Python wrapper of type useIID will be created. If iid does not derive from useIID, then it is almost certain that using the object will cause an Access Violation. For example, this option can be used to obtain a PyIUnknown object if pythoncom does not natively support the interface. Another example might be to return an unsupported persistence interface as a PyIPersist instance. For backwards compatibility: the integer 0 implies None, and the integer 1 implies IID_IUnknown.Return ValueThe result is always an object derived from PyIUnknown. Any error (including E_NOINTERFACE) will generate a com_error exception. + +Returns: + + Any:If provided and not None, will return an + +interface for the specified IID if (and only if) a native interface can not be supported. + +If the interface specified by iid is natively supported, this option is ignored. +Comments + +The useIID parameter is a very dangerous option, and should only + +be used when you are sure you need it! + +By specifying this parameter, you are telling the COM framework that regardless + +of the true type of the result (as specified by iid), a Python wrapper + +of type useIID will be created. If iid does not derive from useIID, + +then it is almost certain that using the object will cause an Access Violation. + +For example, this option can be used to obtain a PyIUnknown object if + +pythoncom does not natively support the interface. + +Another example might be to return an unsupported persistence interface as a + +PyIPersist instance. + +For backwards compatibility: the integer 0 implies None, and the + +integer 1 implies IID_IUnknown. +Return ValueThe result is always an object derived from PyIUnknown. + +Any error (including E_NOINTERFACE) will generate a com_error exception. + + + """ + pass + + +class PyIViewObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Draw(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any',hdcTargetDev:'Any',hdcDraw:'Any',arg:'Tuple[Any, Any, Any, Any]',arg1:'Tuple[Any, Any, Any, Any]',funcContinue:'Any',obContinue:'Any') -> 'None': + """ + Description of Draw. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + lindex(Any):Description for lindex + aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + hdcTargetDev(Any):Description for hdcTargetDev + hdcDraw(Any):Description for hdcDraw + arg(Tuple[Any, Any, Any, Any]):Bounds rectangle. + arg1(Tuple[Any, Any, Any, Any]):WBounds rectangle. + funcContinue(Any):A continue function. + obContinue(Any):Value passed to the function. + +Returns: + + None + + """ + pass + + + def GetColorSet(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any',hicTargetDev:'Any') -> 'None': + """ + Description of GetColorSet. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + lindex(Any):Description for lindex + aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + hicTargetDev(Any):Description for hicTargetDev + +Returns: + + None + + """ + pass + + + def Freeze(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any') -> 'None': + """ + Description of Freeze. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + lindex(Any):Description for lindex + aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + +Returns: + + None + + """ + pass + + + def Unfreeze(self,dwFreeze:'Any') -> 'None': + """ + Description of Unfreeze. + +Args: + + dwFreeze(Any):Description for dwFreeze + +Returns: + + None + + """ + pass + + + def SetAdvise(self,aspects:'Any',advf:'Any',pAdvSink:'Any') -> 'None': + """ + Description of SetAdvise. + +Args: + + aspects(Any):Description for aspects + advf(Any):Description for advf + pAdvSink(Any):Description for pAdvSink + +Returns: + + None + + """ + pass + + + def GetAdvise(self,) -> 'None': + """ + Description of GetAdvise. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIViewObject2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetExtent(self,dwDrawAspect:'Any',lindex:'Any',targetDevice:'Any') -> 'None': + """ + Description of GetExtent. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + lindex(Any):Description for lindex + targetDevice(Any):Description for lindex + +Returns: + + None + + """ + pass + + +class PyMAPINAMEIDArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyOLEMENUGROUPWIDTHS(object): + """Tuple containing 6 ints indicating nbr of options in each menu group""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROPERTYKEY(object): + """A tuple of a fmtid and property id (IID, int) that uniquely identifies a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROPVARIANT(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def vt(self)->'Any': + """The variant type, a combination of VARENUM values including flags. (read only)MethodsGetValueReturns an object representing the variant value ToStringReturns the value as a string ChangeTypeCoerce to a different variant type """ + pass + + + def GetValue(self,) -> 'Any': + """ + Returns an object representing the variant value + +Args: + + + +Returns: + + Any + + """ + pass + + + def ToString(self,) -> 'Any': + """ + Returns the value as a string + +Args: + + + +Returns: + + Any + + """ + pass + + + def ChangeType(self,Type:'Any',Flags:'Any'=0) -> 'Any': + """ + Coerce to a different variant type + +Args: + + Type(Any):New variant type, combination of pythoncom.VT_* values + Flags(Any):Reserved (PROPVAR_CHANGE_FLAGS)Win32 API References + +Returns: + + Any + + """ + pass + + +class PySAndRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySBinaryArray(object): + """A sequence of strings containing binary data.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySBitMaskRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySContentRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySExistRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySHELL_ITEM_RESOURCE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySNotRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySOrRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropTagArray(object): + """A sequence of integers""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropValue(object): + """A MAPI property value. Property values can either be passed from + +python into MAPI functions, or returned from MAPI functions to Python.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropValueArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropertyRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRow(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRowSet(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySSortOrderItem(object): + """An item in a SortOrderSet.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySSortOrderSet(object): + """An object describing a SortOrderSet.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySTGMEDIUM(object): + """A STGMEDIUM object represents a COM STGMEDIUM structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def tymed(self)->'Any': + """An integer indicating the type of data in the stgmedium""" + pass + + + @property + def data(self)->'Any': + """The data in the stgmedium. The result depends on the value of the 'tymed' property of the PySTGMEDIUM object.tymedResult TypeTYMED_GDIAn integer GDI handleTYMED_MFPICTAn integer METAFILE handleTYMED_ENHMFAn integer ENHMETAFILE handleTYMED_HGLOBALA string with the bytes of the global memory object.TYMED_FILEA string/unicode filenameTYMED_ISTREAMA PyIStream objectTYMED_ISTORAGEA PyIStorage object""" + pass + + + @property + def data_handle(self)->'Any': + """The raw 'integer' representation of the data. For TYMED_HGLOBAL, this is the handle rather than the string data. For the string and interface types, this is an integer holding the pointer.""" + pass + + + def set(self,tymed:'Any',data:'Any') -> 'None': + """ + Sets the type and data of the object. + +Args: + + tymed(Any):The type of the data + data(Any): + +Returns: + + None + + """ + pass + + +class PyTASK_TRIGGER(object): + """Python object representing a TASK_TRIGGER structure via the structmember Api""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class RTF_WCSINFO(object): + """A tuple representing a RTF_WCSINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SHFILEINFO(object): + """A tuple representing a SHFILEINFO structure + +Represented as a tuple of (hIcon, iIcon, dwAttributes, displayName, typeName)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SHFILEOPSTRUCT(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_ACCESS(object): + """Tuple of 4 items representing SI_ACCESS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_INHERIT_TYPE(object): + """Tuple of 3 items describing a method of inheritance""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_OBJECT_INFO(object): + """Six-tuple representing SI_OBJECT_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class STATSTG(object): + """A tuple representing a STATSTG structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TLIBATTR(object): + """Type library attributes are represented as a tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TYPEATTR(object): + """A TYPEATTR object represents a COM TYPEATTR structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def iid(self)->'PyIID': + """The IID""" + pass + + + @property + def lcid(self)->'Any': + """The lcid""" + pass + + + @property + def memidConstructor(self)->'Any': + """ID of constructor""" + pass + + + @property + def memidDestructor(self)->'Any': + """ID of destructor""" + pass + + + @property + def cbSizeInstance(self)->'Any': + """The size of an instance of this type""" + pass + + + @property + def typekind(self)->'Any': + """The kind of type this information describes. One of the win32con.TKIND_* constants.""" + pass + + + @property + def cFuncs(self)->'Any': + """Number of functions.""" + pass + + + @property + def cVars(self)->'Any': + """Number of variables/data members.""" + pass + + + @property + def cImplTypes(self)->'Any': + """Number of implemented interfaces.""" + pass + + + @property + def cbSizeVft(self)->'Any': + """The size of this type's VTBL""" + pass + + + @property + def cbAlignment(self)->'Any': + """Byte alignment for an instance of this type.""" + pass + + + @property + def wTypeFlags(self)->'Any': + """One of the pythoncom TYPEFLAG_""" + pass + + + @property + def wMajorVerNum(self)->'Any': + """Major version number.""" + pass + + + @property + def wMinorVerNum(self)->'Any': + """Minor version number.""" + pass + + + @property + def tdescAlias(self)->'Any': + """If TypeKind == pythoncom.TKIND_ALIAS, specifies the type for which this type is an alias.""" + pass + + + @property + def idldeskType(self)->'Any': + """IDL attributes of the described type.""" + pass + + +class TYPEDESC(object): + """A typedesc is a complicated, recursive object, + +It may be either a simple Python type, or a tuple of (indirectType, object), where object + +may be a simple Python type, or a tuple of etc ...""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class VARDESC(object): + """A VARDESC object represents a COM VARDESC structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def memid(self)->'Any': + """The dispid of the member""" + pass + + + @property + def value(self)->'Union[Any]': + """A value for the variant. If PERINSTANCE then an offset into the instance, otherwise a variant converted to a Python object.""" + pass + + + @property + def elemdescVar(self)->'Any': + """Object describing the member.""" + pass + + + @property + def varFlags(self)->'Any': + """Variable flags""" + pass + + + @property + def varkind(self)->'Any': + """Kind flags.""" + pass + + +class CHARFORMAT(object): + """Describes a CHARFORMAT tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class CREATESTRUCT(object): + """A representation of a Windows CREATESTRUCT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LV_COLUMN(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LV_ITEM(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PARAFORMAT(object): + """Describes a PARAFORMAT tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyAssocCObject(object): + """An internal class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyAssocObject(object): + """An internal class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AttachObject(self,) -> 'None': + """ + Attaches a Python object for lookup of "virtual" functions. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAttachedObject(self,) -> 'Any': + """ + Returned the attached Python object, or None. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCBitmap(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateCompatibleBitmap(self,dc:'Any',width:'Any',height:'Any') -> 'None': + """ + Creates a bitmap compatible with the specified device context. + +Args: + + dc(Any):Specifies the device context. + width(Any):The width (in bits) of the bitmap + height(Any):The height (in bits) of the bitmap. + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'Tuple[Any, Any]': + """ + Returns the size of the bitmap object. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetHandle(self,) -> 'Any': + """ + Returns the HBITMAP for a bitmap object + +Args: + + + +Returns: + + Any + + """ + pass + + + def LoadBitmap(self,idRes:'Any',obDLL:'Any'=None) -> 'None': + """ + Loads a bitmap from a DLL object. + +Args: + + idRes(Any):The resource ID of the bitmap + obDLL(Any):The DLL object to load from. + +Returns: + + None + + """ + pass + + + def LoadBitmapFile(self,fileObject:'Any') -> 'None': + """ + Loads a bitmap (.BMP) format + +from a file object. + +Args: + + fileObject(Any):The file object to load the .BMP format file from. + +Returns: + + None + + """ + pass + + + def LoadPPMFile(self,fileObject:'Any',cols:'Any',rows:'Any') -> 'None': + """ + Loads a bitmap in Portable Pix Map (PPM) format + +from a file object. + +Args: + + fileObject(Any):The file object to load the PPM format file from. + cols(Any):The number of columns in the bitmap. + rows(Any):The number of rows in the bitmap. + +Returns: + + None + + """ + pass + + + def Paint(self,dcObject:'Any',arg:'Tuple[Any, Any, Any, Any]',arg1:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Paint a bitmap. + +Args: + + dcObject(Any):The DC object to paint the bitmap to. + arg(Tuple[Any, Any, Any, Any]):The destination rectangle to paint to. + arg1(Tuple[Any, Any, Any, Any]):The source rectangle to paint from. + +Returns: + + None + + """ + pass + + + def GetInfo(self,) -> 'Any': + """ + Returns the BITMAP structure info + +Args: + + + +Returns: + + Any:PyCBitmap.GetInfo + +dict = GetInfo()Returns the BITMAP structure info +Return ValueA dictionary of integers, keyed by the following strings: + +bmType + +bmWidth + +bmHeight + +bmWidthBytes + +bmPlanes + +bmBitsPixel + + + """ + pass + + + def GetBitmapBits(self,asString:'Any'=0) -> 'Union[Any, str]': + """ + Returns the bitmap bits. + +Args: + + asString(Any):If False, the result is a tuple of integers, if True, the result is a Python string + +Returns: + + Union[Any, str] + + """ + pass + + + def SaveBitmapFile(self,dcObject:'Any',Filename:'str') -> 'Any': + """ + Saves a bitmap to a file. + +Args: + + dcObject(Any):The DC object that has rendered the bitmap. + Filename(str):The file to save the bitmap to + +Returns: + + Any + + """ + pass + + +class PyCBrush(object): + """An object encapsulating an MFC PyCBrush class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateSolidBrush(self,) -> 'None': + """ + Initializes a brush with a specified solid color. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSafeHandle(self,) -> 'Any': + """ + Retrieves the HBRUSH for the brush as an integer + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCButton(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,caption:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the window for a new button object. + +Args: + + caption(str):The caption (text) for the button. + style(Any):The style for the button. Use any of the win32con.BS_* constants. + rect(Tuple[Any, Any, Any, Any]):The size and position of the button. + parent(Any):The parent window of the button. Usually a PyCDialog. + _id(Any):The buttons control ID. + +Returns: + + None + + """ + pass + + + def GetBitmap(self,) -> 'Any': + """ + Get the button's bitmap + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetBitmap(self,hBitmap:'Any'=1) -> 'Any': + """ + Set the button's bitmap + +Args: + + hBitmap(Any):Handle of the new bitmap + +Returns: + + Any + + """ + pass + + + def GetCheck(self,) -> 'Any': + """ + Retrieves the check state of a radio button or check box. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetCheck(self,idCheck:'Any') -> 'None': + """ + Sets or resets the state of a radio button or check box. + +Args: + + idCheck(Any):The ID of the button. + +Returns: + + None + + """ + pass + + + def GetState(self,) -> 'Any': + """ + Returns the state of the button. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetState(self,bHighlight:'Any') -> 'Any': + """ + Sets the state of the button. + +Args: + + bHighlight(Any):The new state for the button.CommentsHighlighting affects the exterior of a button control. It has no effect on the check state of a radio button or check box. + +Returns: + + Any + + """ + pass + + + def GetButtonStyle(self,) -> 'Any': + """ + Gets the style of the button. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetButtonStyle(self,style:'Any',bRedraw:'Any'=1) -> 'Any': + """ + Sets the style of the button. + +Args: + + style(Any):The new style for the button. + bRedraw(Any):Should the button be redrawn? + +Returns: + + Any + + """ + pass + + +class PyCCmdTarget(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BeginWaitCursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def EndWaitCursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def HookCommand(self,obHandler:'Any',_id:'Any') -> 'Any': + """ + Hook a windows command handler. + +Args: + + obHandler(Any):The handler for the command message. This must be a callable object. + _id(Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives command notification messages with the specified ID. Command notification messages are usually sent in response to menu or toolbar commands. When updating a user interface element, Pythonwin will first check if a handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone determines the state of the interface object. If no Update handler exists, PythonWin will automatically enable a menu/toolbar item if a command handler exists The handler will be called with 2 arguments * The command id being handled. * The command notification code. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed. This method is best suited to handling messages from user interface elements, such as menus, toolbars, etc. To handle notification messages from a control, you should use PyCCmdTarget::HookNotifyReturn ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID of the command to be handled, or zero to handle all command messages.Comments + +obHandler will be called as the application receives command notification messages with the specified ID. + +Command notification messages are usually sent in response to menu or toolbar commands. + +When updating a user interface element, Pythonwin will first check if a + +handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone + +determines the state of the interface object. If no Update handler exists, + +PythonWin will automatically enable a menu/toolbar item if a command handler exists + +The handler will be called with 2 arguments + +* The command id being handled. + +* The command notification code. + +If the handler returns TRUE, then the command will be passed on to the + +default handler, otherwise the message will be consumed. + +This method is best suited to handling messages from user interface + +elements, such as menus, toolbars, etc. To handle notification messages from a control, + +you should use PyCCmdTarget::HookNotify +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookCommandUpdate(self,obHandler:'Any',_id:'Any') -> 'Any': + """ + Hook a windows command update handler. + +Args: + + obHandler(Any):The handler for the command message. This must be a callable object. + _id(Any):The ID of the command to be handled.CommentsThe handler object passed will be called as the application updates user interface elements with the specified ID. See PyCCmdTarget::HookCommand for a description of the rules used to determine command routing and updating.Return ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID of the command to be handled.Comments + +The handler object passed will be called as + +the application updates user interface elements + +with the specified ID. + +See PyCCmdTarget::HookCommand for a description + +of the rules used to determine command routing and updating. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookOleEvent(self,) -> 'Any': + """ + Hook an OLE Event. + +Args: + + + +Returns: + + Any:PyCCmdTarget.HookOleEvent + +object = HookOleEvent()Hook an OLE Event. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookNotify(self,obHandler:'Any',_id:'Any') -> 'Any': + """ + Hook a windows command handler. + +Args: + + obHandler(Any):The handler for the command message. This must be a callable object. + _id(Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives control notification messages. These may also be handled via PyCCmdTarget::HookCommand, but this method is specific to control notifications, and therefore provides more information.The handler will be called with 2 arguments A tuple describing standard notification information. A tuple describing extra notification params, or an integer containing the address of the first byte of the extended information. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed.Certain notification codes are recognised internally, and these are converted to a Python tuple. If the extra information is not recognised, the address is passed. These addresses could be extracted using win32ui::GetBytes and the struct module, or using Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program can install certain knowledge about handlers, but this has not been implemented.)Return ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID of the command to be handled, or zero to handle all command messages.Comments + +obHandler will be called as the application receives control notification messages. + +These may also be handled via PyCCmdTarget::HookCommand, but this method is specific + +to control notifications, and therefore provides more information. + +The handler will be called with 2 arguments + +A tuple describing standard notification information. + +A tuple describing extra notification params, or an integer containing the address of the first byte of the + +extended information. If the handler returns TRUE, then the command will be passed on to the default handler, + +otherwise the message will be consumed. + +Certain notification codes are recognised internally, and these are converted to a Python tuple. + +If the extra information is not recognised, the address is passed. These addresses could be + +extracted using win32ui::GetBytes and the struct module, or using + +Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program + +can install certain knowledge about handlers, but this has not been implemented.) +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def RestoreWaitCursor(self,) -> 'None': + """ + Restores the appropriate hourglass cursor after the system cursor has + +changed. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCCmdUI(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def m_nIndex(self)->'Any': + """""" + pass + + + @property + def m_nID(self)->'Any': + """""" + pass + + + @property + def m_pMenu(self)->'Any': + """""" + pass + + + @property + def m_pSubMenu(self)->'Any': + """""" + pass + + + def Enable(self,bEnable:'Any'=1) -> 'None': + """ + Enables or disables the user-interface item for this command. + +Args: + + bEnable(Any):TRUE if the item should be enabled, false otherwise. + +Returns: + + None + + """ + pass + + + def SetCheck(self,state:'Any'=1) -> 'None': + """ + Sets the check state of the user-interface item for this command. + +Args: + + state(Any):0 for unchecked, 1 for checked, or 2 for indeterminate. + +Returns: + + None + + """ + pass + + + def SetRadio(self,bOn:'Any'=1) -> 'None': + """ + Like the SetCheck member function, but operates on radio groups. + +Args: + + bOn(Any):TRUE if the item should be enabled, false otherwise. + +Returns: + + None + + """ + pass + + + def SetText(self,text:'str') -> 'None': + """ + Sets the text for the user-interface item for this command. + +Args: + + text(str):The text for the interface element. + +Returns: + + None + + """ + pass + + + def ContinueRouting(self,) -> 'None': + """ + Tells the command-routing mechanism to continue routing the current message down + +the chain of handlers. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCColorDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetColor(self,) -> 'Any': + """ + Determines the selected color. + +Args: + + + +Returns: + + Any + + """ + pass + + + def DoModal(self,) -> 'Any': + """ + Displays a dialog and allows the user to make a selection. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSavedCustomColors(self,) -> 'Any': + """ + Returns the saved custom colors. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetCurrentColor(self,color:'Any') -> 'None': + """ + Sets the currently selected color. + +Args: + + color(Any):The color to set.MFC References + +Returns: + + None + + """ + pass + + + def SetCustomColors(self,) -> 'None': + """ + Sets one or more custom colors + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCustomColors(self,) -> 'Tuple[Any, ...]': + """ + Gets the 16 currently defined custom colors + +Args: + + + +Returns: + + Tuple[Any, ...] + + """ + pass + + +class PyCComboBox(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddString(self,_object:'Any') -> 'Any': + """ + Adds a string to a combobox. + +Args: + + _object(Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References + +Returns: + + Any:CComboBox::AddString +Return ValueThe zero based index of the new string. + + + """ + pass + + + def DeleteString(self,pos:'Any') -> 'Any': + """ + Deletes an item from a combobox. + +Args: + + pos(Any):The zero based index of the item to delete.MFC References + +Returns: + + Any:CComboBox::DeleteString +Return ValueThe count of the items remaining in the list. + + + """ + pass + + + def Dir(self,attr:'Any',wild:'str') -> 'Any': + """ + Fills the list portion of a combobox with a directory listing. + +Args: + + attr(Any):The attributes of the files to locate + wild(str):A file specification string - eg, *.*MFC References + +Returns: + + Any:CComboBox::Dir +Return ValueThe index of the last file name added to the list. + + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Returns the count of items in the combobox. + +Args: + + + +Returns: + + Any:CListBox::GetCount +Return ValueReturns the number of items currently in the combobox. + + + """ + pass + + + def GetCurSel(self,) -> 'Any': + """ + Returns the index of the currently selected item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetEditSel(self,) -> 'Any': + """ + Returns the selection of the edit control portion of a combo box. + +Args: + + + +Returns: + + Any:CComboBox::GetEditSel +Return ValueA 32-bit value that contains the starting position in the low-order word and + +the position of the first nonselected character after the end of + +the selection in the high-order word. If this function is used on a combo box + +without an edit control, an exception is raised. + + + """ + pass + + + def GetExtendedUI(self,) -> 'Any': + """ + Indicates if the combo has the extended interface. + +Args: + + + +Returns: + + Any:CComboBox::GetExtendedUI +Return ValueNonzero if the combo box has the extended user interface; otherwise 0. + + + """ + pass + + + def GetItemData(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific object associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetItemValue(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetLBText(self,index:'Any') -> 'str': + """ + Gets the string from the list of a combo box. + +Args: + + index(Any):The index of the item to return the string for.Return ValueThe requested string. If index does not specify a valid index, no exception is raised. + +Returns: + + str:The index of the item to return the string for.Return ValueThe requested string. If index does + +not specify a valid index, no exception is raised. + + + """ + pass + + + def GetLBTextLen(self,index:'Any') -> 'Any': + """ + Returns the length of a string in the list of a combobox. + +Args: + + index(Any):The index of the item to return the length of.MFC References + +Returns: + + Any + + """ + pass + + + def InsertString(self,pos:'Any',_object:'Any') -> 'Any': + """ + Insert a string into a combobox. + +Args: + + pos(Any):The zero based index in the combobox to insert the new string + _object(Any):The object to be added to the comboboxMFC References + +Returns: + + Any:CComboBox::InsertString +Return ValueThe zero based index of the new string added. + + + """ + pass + + + def LimitText(self,_max:'Any') -> 'Any': + """ + Limits the amount of text the edit portion of a combo box can hold. + +Args: + + _max(Any):The maximum number of characters the user can enter. If zero, the size is set to (virtually) unlimited.MFC References + +Returns: + + Any + + """ + pass + + + def ResetContent(self,) -> 'None': + """ + Clear all the items from a combobox. + +Args: + + + +Returns: + + None + + """ + pass + + + def SelectString(self,after:'Any',string:'str') -> 'None': + """ + Searches for a combobox item that matches the specified string, and selects it. + +Args: + + after(Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire combobox. + string(str):The string to search for.MFC References + +Returns: + + None:CComboBoxBox::SelectString +Return ValueThe return value is always None - an exception is raised if the string can not be located. + + + """ + pass + + + def SetCurSel(self,index:'Any') -> 'None': + """ + Selects an item in a combobox. + +Args: + + index(Any):The zero based index of the item to select.MFC References + +Returns: + + None + + """ + pass + + + def SetEditSel(self,start:'Any',end:'Any') -> 'None': + """ + Sets the selection in the edit control portion of a combo box. + +Args: + + start(Any):Specifies the starting position. If the starting position is set to -1, then any existing selection is removed. + end(Any):Specifies the ending position. If the ending position is set to -1, then all text from the starting position to the last character in the edit control is selected.MFC References + +Returns: + + None:PyCComboBox::SetEditSel +Return ValueThe return value is always None - an exception is raised if the combo is a dropdown style, or does not + +have an edit control. + + + """ + pass + + + def SetExtendedUI(self,bExtended:'Any'=1) -> 'None': + """ + Selects the Extended UI mode for a combo box. + +Args: + + bExtended(Any):Indicates if the combo should have the extended user interface.CommentsA combo box with the Extended UI flag set can be identified in the following ways:~ Clicking the static control displays the list box only for combo boxes with the CBS_DROPDOWNLIST style.~ Pressing the DOWN ARROW key displays the list box (F4 is disabled).~ Scrolling in the static control is disabled when the item list is not visible (the arrow keys are disabled).MFC References + +Returns: + + None + + """ + pass + + + def SetItemData(self,item:'Any',Data:'Any') -> 'Any': + """ + Sets the item's application-specific object value. + +Args: + + item(Any):Index of the item whose Data is to be set. + Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + Any + + """ + pass + + + def SetItemValue(self,item:'Any',data:'Any') -> 'Any': + """ + Sets the item's application-specific value. + +Args: + + item(Any):Index of the item whose Data is to be set. + data(Any):New value for the data. + +Returns: + + Any + + """ + pass + + + def ShowDropDown(self,bShowIt:'Any'=1) -> 'None': + """ + Shows or hides the listbox portion of a combo box. + +Args: + + bShowIt(Any):Indicates if the listbox should be shown or hidden. + +Returns: + + None + + """ + pass + + +class PyCCommonDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCControl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCControlBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dockSite(self)->'Any': + """Current dock site, if dockable""" + pass + + + @property + def dockBar(self)->'Any': + """Current dock bar, if dockable""" + pass + + + @property + def dockContext(self)->'Any': + """Used during dragging""" + pass + + + @property + def dwStyle(self)->'Any': + """creation style (used for layout)""" + pass + + + @property + def dwDockStyle(self)->'Any': + """indicates how bar can be docked""" + pass + + + def CalcDynamicLayout(self,length:'Any',dwMode:'Any') -> 'Any': + """ + The framework calls this member function to calculate the dimensions of + +a dynamic toolbar. + +Args: + + length(Any):The requested dimension of the control bar, either horizontal or vertical, depending on dwMode. + dwMode(Any):A combination of flags. + +Returns: + + Any + + """ + pass + + + def CalcFixedLayout(self,bStretch:'Any',bHorz:'Any') -> 'Any': + """ + Calculates the horizontal size of a control bar + +Args: + + bStretch(Any):Indicates whether the bar should be stretched to the size of the frame. The bStretch parameter is nonzero when the bar is not a docking bar (not available for docking) and is 0 when it is docked or floating (available for docking). + bHorz(Any):Indicates that the bar is horizontally or vertically oriented. + +Returns: + + Any + + """ + pass + + + def EnableDocking(self,style:'Any') -> 'None': + """ + pecifies whether the control bar supports docking and the sides of its parent + +window. + +Args: + + style(Any):Enables a control bar to be docked. + +Returns: + + None + + """ + pass + + + def EraseNonClient(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBarStyle(self,) -> 'Any': + """ + Retrieves the control bar style settings. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Returns the number of non-HWND elements in the control bar. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDockingFrame(self,) -> 'Any': + """ + Returns the frame window to which a control bar is docked. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsFloating(self,) -> 'Any': + """ + Returns a nonzero value if the control bar in question is a floating control + +bar. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetBarStyle(self,style:'Any') -> 'None': + """ + Modifies the control bar style settings. + +Args: + + style(Any):The new style + +Returns: + + None + + """ + pass + + + def ShowWindow(self,) -> 'Any': + """ + Shows the toolbar, and recalculates the button layout. + +Args: + + + +Returns: + + Any:PyCControlBar.ShowWindow + +int = ShowWindow()Shows the toolbar, and recalculates the button layout. +Comments + +This method is provided for convenience. For further details, see + +PyCWnd::ShowWindow and PyCFrameWnd::RecalcLayout +Return ValueThe return value is that returned from PyCWnd::ShowWindow + + + """ + pass + + +class PyCCtrlView(object): + """A class which implementes a CCtrlView (ie, a view based on a dialog resource.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCDC(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AbortDoc(self,) -> 'None': + """ + Aborts a print job + +Args: + + + +Returns: + + None + + """ + pass + + + def Arc(self,rect:'Tuple[Any, Any, Any, Any]',pointStart:'Tuple[Any, Any]',pointEnd:'Tuple[Any, Any]') -> 'None': + """ + Draws an eliptical arc. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangle + pointStart(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. + pointEnd(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsThe arc drawn by using the function is a segment of the ellipse defined by the specified bounding rectangle. The actual starting point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified starting point intersects the ellipse. The actual ending point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified ending point intersects the ellipse. The arc is drawn in a counterclockwise direction. Since an arc is not a closed figure, it is not filled. Both the width and height of the rectangle must be greater than 2 units and less than 32,767 units.MFC References + +Returns: + + None:CDC::Arc +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def BeginPath(self,) -> 'None': + """ + Opens a path bracket in the device context + +Args: + + + +Returns: + + None + + """ + pass + + + def BitBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',dc:'Any',srcPos:'Tuple[Any, Any]',rop:'Any') -> 'None': + """ + Copies a bitmap from the source device context to this device context. + +Args: + + destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + dc(Any):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. + srcPos(Tuple[Any, Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. + rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def Chord(self,rect:'Tuple[Any, Any, Any, Any]',pointStart:'Tuple[Any, Any]',pointEnd:'Tuple[Any, Any]') -> 'None': + """ + Draws a chord. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangle + pointStart(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. + pointEnd(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsDraws a chord (a closed figure bounded by the intersection of an ellipse and a line segment). The rect parameter specify the upper-left and lower-right corners, respectively, of a rectangle bounding the ellipse that is part of the chord. The pointStart and pointEnd parameters specify the endpoints of a line that intersects the ellipse. The chord is drawn by using the selected pen and filled by using the selected brush.MFC References + +Returns: + + None:CDC::Chord +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def CreateCompatibleDC(self,dcFrom:'Any'=None) -> PyCDC: + """ + Creates a memory device context that is compatible with this DC. + +Args: + + dcFrom(Any):The source DC, or None to make a screen compatible DC.CommentsNote that unlike the MFC version, this function calls the global CreateCompatibleDC function and returns a new PyCDC object.MFC References + +Returns: + + None + + """ + pass + + + def CreatePrinterDC(self,printerName:'str'=None) -> 'None': + """ + Creates a device context for a specific printer + +Args: + + printerName(str):The printer name, or None for the default printerMFC References + +Returns: + + None + + """ + pass + + + def DeleteDC(self,) -> 'None': + """ + Deletes all resources associated with a device context. + +Args: + + + +Returns: + + None + + """ + pass + + + def DPtoLP(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': + """ + Converts device units into logical units. + +Args: + + point(Tuple[Any, Any]):The point to convertAlternative Parameters + x(Any):The x coordinate to convert. + y(Any):The y coordinate to convert.MFC References + +Returns: + + Tuple[Any, Any]:CDC::DPtoLP + To Do Should really handle list of (x,y) points +Return ValueThe converted coordinates. + + + """ + pass + + + def Draw3dRect(self,rect:'Tuple[Any, Any, Any, Any]',colorTopLeft:'Any',colorBotRight:'Any') -> 'None': + """ + Draws a three-dimensional rectangle. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + colorTopLeft(Any):Specifies the color of the top and left sides of the three-dimensional rectangle. + colorBotRight(Any):Specifies the color of the bottom and right sides of the three-dimensional rectangle.MFC References + +Returns: + + None + + """ + pass + + + def DrawFocusRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Draws a rectangle in the style used to + +indicate the rectangle has focus + +Args: + + rect(Tuple[Any, Any, Any, Any]):The coordinates of the rectangleMFC References + +Returns: + + None + + """ + pass + + + def DrawFrameControl(self,rect:'Tuple[Any, Any, Any, Any]',typ:'Any',state:'Any') -> 'None': + """ + Draws a frame control of the specified type and style. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + typ(Any): + state(Any):MFC References + +Returns: + + None + + """ + pass + + + def DrawIcon(self,point:'Tuple[Any, Any]',hIcon:'int') -> 'None': + """ + Draws an icon on the DC. + +Args: + + point(Tuple[Any, Any]):The point coordinate to draw to. + hIcon(int):The handle of the icon to draw.MFC References + +Returns: + + None + + """ + pass + + + def DrawText(self,s:'str',_tuple:'Tuple[Any, Any, Any, Any]',_format:'Any') -> 'Tuple[Any, Any, Any]': + """ + Formats text in the given rectangle + +Args: + + s(str):The desired output string + _tuple(Tuple[Any, Any, Any, Any]):The bounding rectangle in the form: (left, top, right, bottom) expressed in logical units (depending on selected coordinate system - see PyCDC::SetMapMode) + _format(Any):Specifies one or more bit-or'd format values, such as DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see the Microsoft Win32 API documentation.ExampleExampleimport win32ui<nl> import win32con<nl> INCH = 1440 # twips - 1440 per inch allows fine res<nl> def drawtext_test():<nl> dc = win32ui.CreateDC()<nl> dc.CreatePrinterDC() # ties to default printer<nl> dc.StartDoc('My Python Document')<nl> dc.StartPage()<nl> <nl> # note: upper left is 0,0 with x increasing to the right,<nl> # and y decreasing (negative) moving down<nl> dc.SetMapMode(win32con.MM_TWIPS)<nl> <nl> # Centers "TEST" about an inch down on page<nl> dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> dc.EndPage()<nl> dc.EndDoc()<nl> del dc<nl>Return ValueHeight of text in pixelsThe return value is the height of the text, in logical units. If DT_VCENTER or DT_BOTTOM is specified, the return value is the offset from rect.top to the bottom of the drawn text. If the function fails, the return value is zero (no Python exception is thrown) + +Returns: + + Tuple[Any, Any, Any]:Specifies one or more bit-or'd format values, such as + +DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see + +the Microsoft Win32 API documentation.ExampleExample +import win32ui<nl> + + import win32con<nl> + + INCH = 1440 # twips - 1440 per inch allows fine res<nl> + + def drawtext_test():<nl> + + dc = win32ui.CreateDC()<nl> + + dc.CreatePrinterDC() # ties to default printer<nl> + + dc.StartDoc('My Python Document')<nl> + + dc.StartPage()<nl> + + <nl> + + # note: upper left is 0,0 with x increasing to the right,<nl> + + # and y decreasing (negative) moving down<nl> + + dc.SetMapMode(win32con.MM_TWIPS)<nl> + + <nl> + + # Centers "TEST" about an inch down on page<nl> + + dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> + + dc.EndPage()<nl> + + dc.EndDoc()<nl> + + del dc<nl> + + +Return ValueHeight of text in pixels + + + +The return value is the height of the text, in logical units. + +If DT_VCENTER or DT_BOTTOM is specified, the return value is the + +offset from rect.top to the bottom of the drawn text. + +If the function fails, the return value is zero (no Python exception is thrown) + + + """ + pass + + + def Ellipse(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Draws an Ellipse. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangleCommentsThe center of the ellipse is the center of the bounding rectangle specified by rect. The ellipse is drawn with the current pen, and its interior is filled with the current brush.MFC References + +Returns: + + None:CDC::Ellipse +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def EndDoc(self,) -> 'None': + """ + Finishes spooling the document and starts printing it + +Args: + + + +Returns: + + None + + """ + pass + + + def EndPage(self,) -> 'None': + """ + Finishes a page on a printer DC + +Args: + + + +Returns: + + None + + """ + pass + + + def EndPath(self,) -> 'None': + """ + Closes a path bracket and selects the path defined by the bracket into the specified device + +context + +Args: + + + +Returns: + + None + + """ + pass + + + def ExtTextOut(self,_int:'Any',_int1:'Any',_int2:'Any',rect:'Tuple[Any, Any, Any, Any]',string:'Any',_tuple:'Tuple[Tuple[Any, Any], ...]') -> 'None': + """ + Writes text to the DC. + +Args: + + _int(Any):The x coordinate to write the text to. + _int1(Any):The y coordinate to write the text to. + _int2(Any):Specifies the rectangle type. This parameter can be one, both, or neither of ETO_CLIPPED and ETO_OPAQUE + rect(Tuple[Any, Any, Any, Any]):Specifies the text's bounding rectangle. (Can be None.) + string(Any):The text to write. + _tuple(Tuple[Tuple[Any, Any], ...]):Optional array of values that indicate distance between origins of character cells.MFC References + +Returns: + + None:CDC::ExtTextOut +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def FillPath(self,) -> 'None': + """ + Closes any open figures in the current path and fills the path's interior by using the + +current brush and polygon-filling mode. After its interior is filled, the path is discarded from the device context. + +Args: + + + +Returns: + + None + + """ + pass + + + def FillRect(self,rect:'Tuple[Any, Any, Any, Any]',brush:'Any') -> 'None': + """ + Fills a given rectangle with the specified brush + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + brush(Any):Specifies the brush to use.MFC References + +Returns: + + None + + """ + pass + + + def FillSolidRect(self,rect:'Tuple[Any, Any, Any, Any]',color:'Any') -> 'None': + """ + Fills the given rectangle with the specified solid color. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + color(Any):Specifies the color to use.MFC References + +Returns: + + None + + """ + pass + + + def FrameRect(self,rect:'Tuple[Any, Any, Any, Any]',brush:'Any') -> 'None': + """ + Draws a border around the rectangle specified by rect + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + brush(Any):Specifies the brush to use.MFC References + +Returns: + + None + + """ + pass + + + def GetBrushOrg(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the origin (in device units) of the brush currently selected for the + +device context. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetClipBox(self,) -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the dimensions of the smallest bounding rectangle + +around the current clipping boundary. + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any]:CDC::GetClipBox +Return ValueA tuple of integers specifying the rectangle. + + + """ + pass + + + def GetCurrentPosition(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the current position (in logical coordinates). + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetDeviceCaps(self,index:'Any') -> 'Any': + """ + Retrieves a capability of the device context. + +Args: + + index(Any):The information requested. See the win32api documentation for details.MFC References + +Returns: + + Any:CDC::GetDeviceCaps +Return ValueThe value of the requested capability + + + """ + pass + + + def GetHandleAttrib(self,) -> 'Any': + """ + Retrieves the handle of the attribute device context. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetHandleOutput(self,) -> 'Any': + """ + Retrieves the handle of the output device context. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetMapMode(self,) -> 'Any': + """ + Gets the mapping mode for the device context. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNearestColor(self,color:'Any') -> 'Any': + """ + Returns the closest color a device can map. + +Args: + + color(Any):Specifies the color to be matched. + +Returns: + + Any + + """ + pass + + + def GetPixel(self,x:'Any',y:'Any') -> 'None': + """ + Gets a pixel at a local in a device context + +Args: + + x(Any):Horizontal coordinate. + y(Any):Vertical coordinate. + +Returns: + + None + + """ + pass + + + def GetSafeHdc(self,) -> 'Any': + """ + Returns the HDC of this DC object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTextExtent(self,text:'str') -> 'Tuple[Any, Any]': + """ + Calculates the width and height of a line of text using the current font to + +determine the dimensions. + +Args: + + text(str):The text to calculate for.MFC References + +Returns: + + Tuple[Any, Any]:CFC::GetTextExtent +Return ValueA tuple of integers with the size of the string, in logical units. + + + """ + pass + + + def GetTextExtentPoint(self,text:'str') -> 'Tuple[Any, Any]': + """ + None + +Args: + + text(str):The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. + +Returns: + + Tuple[Any, Any]:The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. + + + """ + pass + + + def GetTextFace(self,) -> 'str': + """ + Returns typeface name of the current font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTextMetrics(self,) -> 'Any': + """ + Retrieves the metrics for the current font in this device context. + +Args: + + + +Returns: + + Any:CDC::GetTextMetrics +Return ValueA dictionary of integers, keyed by the following strings: + +tmHeight + +tmAscent + +tmDescent + +tmInternalLeading + +tmExternalLeading + +tmAveCharWidth + +tmMaxCharWidth + +tmWeight + +tmItalic + +tmUnderlined + +tmStruckOut + +tmFirstChar + +tmLastChar + +tmDefaultChar + +tmBreakChar + +tmPitchAndFamily + +tmCharSet + +tmOverhang + +tmDigitizedAspectX + +tmDigitizedAspectY + + + """ + pass + + + def GetViewportExt(self,) -> 'Tuple[Any, Any]': + """ + Gets the viewport extent of the device context + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetViewportOrg(self,) -> 'Tuple[Any, Any]': + """ + Gets the viewport origin of the device context + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetWindowExt(self,) -> 'Tuple[Any, Any]': + """ + Gets the window extent of the device context + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetWindowOrg(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the x- and y-coordinates of the origin of the window associated with the + +device context. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def IntersectClipRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Creates a new clipping region by forming the intersection of the current region + +and the rectangle specified + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units.MFC References + +Returns: + + None:CDC::IntersectClipRect +Return Valueregion type as integer + + + """ + pass + + + def IsPrinting(self,) -> 'Any': + """ + Returns 1 if the DC is currently printing, else 0 + +Args: + + + +Returns: + + Any + + """ + pass + + + def LineTo(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'None': + """ + Draws a line to a specified point, using the currently selected pen. + +Args: + + point(Tuple[Any, Any]):The point coordinate to draw to.Alternative Parameters + x(Any):The x coordinate to draw to. + y(Any):The y coordinate to draw to.MFC References + +Returns: + + None + + """ + pass + + + def LPtoDP(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': + """ + Converts logical units into device units. + +Args: + + point(Tuple[Any, Any]):The point coordinate to convert.Alternative Parameters + x(Any):The x coordinate to convert. + y(Any):The y coordinate to convert.MFC References + +Returns: + + Tuple[Any, Any]:CDC::LPtoDP +Return ValueThe converted coordinates. + + + """ + pass + + + def MoveTo(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': + """ + Moves the current position to a specified point. + +Args: + + point(Tuple[Any, Any]):The point coordinate to move to.Alternative Parameters + x(Any):The x coordinate to move to. + y(Any):The y coordinate to move to.MFC References + +Returns: + + Tuple[Any, Any]:CDC::MoveTo +Return ValueThe previous position. + + + """ + pass + + + def OffsetWindowOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Modifies the coordinates of the window origin relative to the coordinates of the + +current window origin. + +Args: + + arg(Tuple[Any, Any]):The new origin offset.Return ValueThe previous origin as a tuple (x,y) + +Returns: + + Tuple[Any, Any]:The new origin offset.Return ValueThe previous origin as a tuple (x,y) + + + """ + pass + + + def OffsetViewportOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Modifies the coordinates of the viewport origin relative to the coordinates of + +the current viewport origin + +Args: + + arg(Tuple[Any, Any]):The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) + +Returns: + + Tuple[Any, Any]:The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) + + + """ + pass + + + def PatBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',rop:'Any') -> 'None': + """ + Creates a bit pattern on the device. + +Args: + + destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def Pie(self,x1:'Any',y1:'Any',x2:'Any',y2:'Any',x3:'Any',y3:'Any',x4:'Any',y4:'Any') -> 'None': + """ + Draws a pie slice in a device context + +Args: + + x1(Any):X coordinate of upper left corner + y1(Any):Y coordinate of upper left corner + x2(Any):X coordinate of lower right corner + y2(Any):Y coordinate of lower right corner + x3(Any):X coordinate of starting point of arc + y3(Any):Y coordinate of starting point of arc + x4(Any):X coordinate of ending point of arc + y4(Any):Y coordinate of ending point of arc + +Returns: + + None + + """ + pass + + + def PolyBezier(self,) -> 'None': + """ + Draws one or more Bezier splines. + +Args: + + + +Returns: + + None + + """ + pass + + + def Polygon(self,) -> 'None': + """ + Draws an Polygon. + +Args: + + + +Returns: + + None + + """ + pass + + + def Polyline(self,points:'List[Any]') -> 'None': + """ + Draws a Polyline. + +Args: + + points(List[Any]):A sequence of points + +Returns: + + None + + """ + pass + + + def RealizePalette(self,) -> 'Any': + """ + Maps palette entries in the current logical palette to the system palette. + +Args: + + + +Returns: + + Any:PyCDC.RealizePalette + +int = RealizePalette()Maps palette entries in the current logical palette to the system palette. +Return ValueIndicates how many entries in the logical palette were mapped to different entries + +in the system palette. This represents the number of entries that this function + +remapped to accommodate changes in the system palette since the logical palette + +was last realized. + + + """ + pass + + + def Rectangle(self,) -> 'Any': + """ + Draws a rectangle using the current pen. The interior of the rectangle is filled using + +the current brush. + +Args: + + + +Returns: + + Any + + """ + pass + + + def RectVisible(self,rect:'Tuple[Any, Any, Any, Any]') -> 'Any': + """ + Determines whether any part of the given rectangle lies within the clipping region of + +the display context. + +Args: + + rect(Tuple[Any, Any, Any, Any]):The coordinates of the reactangle to be checked.MFC References + +Returns: + + Any:CDC::RectVisible +Return ValueNon zero if any part of the rectangle lies within the clipping region, else zero. + + + """ + pass + + + def RestoreDC(self,saved:'Any') -> 'None': + """ + Restores the state of the device context. + +Args: + + saved(Any):The id of a previously saved device context. See PyCDC::SaveDCMFC References + +Returns: + + None + + """ + pass + + + def SaveDC(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any:CDC::SaveDC +Return ValueAn integer identifying the context, which can be used by PyCDC::RestoreDC. + +An exception is raised if this function fails. + + + """ + pass + + + def ScaleWindowExt(self,) -> 'Tuple[Any, Any]': + """ + Modifies the window extents relative to the current values. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def ScaleViewportExt(self,) -> 'Tuple[Any, Any]': + """ + Modifies the viewport extents relative to the current values. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SelectClipRgn(self,) -> 'Any': + """ + Selects the given region as the current clipping region for the device context + +Args: + + + +Returns: + + Any:PyCDC.SelectClipRgn + +obRgn = SelectClipRgn()Selects the given region as the current clipping region for the device context +Return ValueThe return value specifies the region's complexity (integer) + + + """ + pass + + + def SelectObject(self,ob:'Any') -> 'Any': + """ + None + +Args: + + ob(Any):The object to select.MFC References + +Returns: + + Any:CDC::SelectObject +Return ValueThe previously selected object. This will be the same type as the object parameter. + + + """ + pass + + + def SetBkColor(self,color:'Any') -> 'Any': + """ + Sets the current background color to the specified color. + +Args: + + color(Any):A windows color specification. See the win32api documentation for details.CommentsIf the background mode is OPAQUE, the system uses the background color to fill the gaps in styled lines, the gaps between hatched lines in brushes, and the background in character cells. The system also uses the background color when converting bitmaps between color and monochrome device contexts.MFC References + +Returns: + + Any:CDC::SetBkColor +Return ValueThe return value is the previous background color. + + + """ + pass + + + def SetBkMode(self,mode:'Any') -> 'Any': + """ + Sets the current background mode to the specified mode. + +Args: + + mode(Any):A background mode. May be either TRANSPARENT or OPAQUE.CommentsSpecifies the mode to be set. This parameter can be either OPAQUE or TRANSPARENTMFC References + +Returns: + + Any:CDC::SetBkMode +Return ValueThe return value is the previous background mode. + + + """ + pass + + + def SetBrushOrg(self,point:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Specifies the origin that GDI will assign to the next brush that the + +application selects into the device context. + +Args: + + point(Tuple[Any, Any]):The new origin in device units.MFC References + +Returns: + + Tuple[Any, Any]:CDC::SetBrushOrg +Return ValueThe previous origin in device units. + + + """ + pass + + + def SetGraphicsMode(self,mode:'Any') -> 'Any': + """ + Sets the graphics mode for the specified device context + +Args: + + mode(Any):The new mode. + +Returns: + + Any + + """ + pass + + + def SetMapMode(self,newMode:'Any') -> 'Any': + """ + Sets the mapping mode for the device context. + +Args: + + newMode(Any):The new mode. Can be one of MM_ANISOTROPIC, MM_HIENGLISH, MM_HIMETRIC, MM_ISOTROPIC, MM_LOENGLISH, MM_LOMETRIC, MM_TEXT, MM_TWIPSMFC References + +Returns: + + Any:CDC::SetMapMode +Return ValueThe previous mapping mode. + + + """ + pass + + + def SetPixel(self,x:'Any',y:'Any',color:'Any') -> 'None': + """ + Sets a pixel in a device context + +Args: + + x(Any):Horizontal coordinate. + y(Any):Vertical coordinate. + color(Any):The brush color. + +Returns: + + None + + """ + pass + + + def SetPolyFillMode(self,point:'Tuple[Any, Any]') -> 'Any': + """ + Sets the polygon-filling mode. + +Args: + + point(Tuple[Any, Any]):The new origin in device units.MFC References + +Returns: + + Any:CDC::SetPolyFillMode +Return ValueThe previous PolyFillMode as integer + + + +The previous PolyFillMode. + + + """ + pass + + + def SetROP2(self,mode:'Any') -> 'Any': + """ + Sets the current drawing mode. + +Args: + + mode(Any):The new drawing mode.MFC References + +Returns: + + Any + + """ + pass + + + def SetTextAlign(self,newFlags:'Any') -> 'Any': + """ + Sets the text-alignment flags. + +Args: + + newFlags(Any):The new alignment flags. Can be a combination of (TA_CENTER, TA_LEFT, TA_RIGHT), (TA_BASELINE, TA_BOTTOM, TA_TOP) and (TA_NOUPDATECP, TA_UPDATECP) The default is TA_LEFT|TA_TOP|TA_NOUPDATECPMFC References + +Returns: + + Any:CDC::SetTextAlign +Return ValueThe old alignment flags. + + + """ + pass + + + def SetTextColor(self,color:'Any') -> 'Any': + """ + Sets the text color to the specified color. + +Args: + + color(Any):A windows color specification. See the win32api documentation for details.CommentsThis text color is used when writing text to this device context and also when converting bitmaps between color and monochrome device contexts. If the device cannot represent the specified color, the system sets the text color to the nearest physical color. The background color for a character is specified by the SetBkColor and SetBkMode member functions.MFC References + +Returns: + + Any:CDC::SetTextColor +Return ValueThe return value is the previous text color. + + + """ + pass + + + def SetWindowExt(self,size:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Sets the x,y extents of the window associated with the device context. + +Args: + + size(Tuple[Any, Any]):The new size.MFC References + +Returns: + + Tuple[Any, Any]:CDC::SetWindowExt +Return ValueThe previous extents of the window (in logical units). + + + """ + pass + + + def SetWindowOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Sets the window origin of the device context + +Args: + + arg(Tuple[Any, Any]):The new origin. + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetViewportExt(self,size:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Sets the x,y extents of the viewport of the device context. + +Args: + + size(Tuple[Any, Any]):The new size.MFC References + +Returns: + + Tuple[Any, Any]:CDC::SetViewportExt +Return ValueThe previous extents of the viewport (in logical units). + + + """ + pass + + + def SetViewportOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Sets the viewport origin of the device context + +Args: + + arg(Tuple[Any, Any]):The new origin. + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetWorldTransform(self,) -> 'Any': + """ + sets a two-dimensional linear transformation between world space and page space + +for the specified device context. This transformation can be used to scale, rotate, shear, or translate graphics + +output. + +Args: + + + +Returns: + + Any + + """ + pass + + + def StartDoc(self,docName:'str',outputFile:'str') -> 'None': + """ + Starts spooling a document to a printer DC + +Args: + + docName(str):The document name + outputFile(str):The output file name. Use this to spool to a file. Omit to send to the printer. + +Returns: + + None + + """ + pass + + + def StartPage(self,) -> 'None': + """ + Starts a new page on a printer DC + +Args: + + + +Returns: + + None + + """ + pass + + + def StretchBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',dc:'Any',srcPos:'Tuple[Any, Any]',size1:'Tuple[Any, Any]',rop:'Any') -> 'None': + """ + Copies a bitmap from the source device context to this device context. + +Args: + + destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + dc(Any):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. + srcPos(Tuple[Any, Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. + size1(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def StrokeAndFillPath(self,) -> 'None': + """ + Closes any open figures in a path, strokes the outline of the path by using the + +current pen, and fills its interior by using the current brush. The device context must contain a closed path. + +Args: + + + +Returns: + + None + + """ + pass + + + def StrokePath(self,) -> 'None': + """ + Renders the specified path by using the current pen. + +Args: + + + +Returns: + + None + + """ + pass + + + def TextOut(self,_int:'Any',_int1:'Any',string:'Any') -> 'None': + """ + Outputs text to the display context, using the currently selected font. + +Args: + + _int(Any):The x coordinate to write the text to. + _int1(Any):The y coordinate to write the text to. + string(Any):The text to write.MFC References + +Returns: + + None:CDC::TextOut +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + +class PyCDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,obParent:'Any'=None) -> 'None': + """ + Create a modeless window for the dialog box. + +Args: + + obParent(Any):The parent window for the new windowMFC References + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'Any': + """ + Create a modal window for the dialog box. + +Args: + + + +Returns: + + Any:CDialog::DoModal +Return ValueThe return value from the dialog. This is the value passed to PyCDialog::EndDialog. + + + """ + pass + + + def EndDialog(self,result:'Any') -> 'None': + """ + Ends a modal dialog box. + +Args: + + result(Any):The value to be returned by the PyCDialog::DoModal method.MFC References + +Returns: + + None + + """ + pass + + + def GotoDlgCtrl(self,control:'Any') -> 'None': + """ + Moves the focus to the specified control in the dialog box. + +Args: + + control(Any):The control to get the focus. + +Returns: + + None + + """ + pass + + + def MapDialogRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'Tuple[Any, Any, Any, Any]': + """ + Converts the dialog-box units of a rectangle to screen + +units. + +Args: + + rect(Tuple[Any, Any, Any, Any]):The rect to be converted + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def OnCancel(self,) -> 'None': + """ + Calls the default MFC OnCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOK(self,) -> 'None': + """ + Calls the default MFC OnOK handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnInitDialog(self,) -> 'Any': + """ + Calls the default MFC OnInitDialog handler. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCDialogBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'Any',template:'PyResourceId',style:'Any',_id:'Any') -> 'None': + """ + None + +Args: + + parent(Any):The parent window + template(PyResourceId):Template name or integer resource id + style(Any):The style for the window + _id(Any):The ID of the window + +Returns: + + None + + """ + pass + + +class PyCDocTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoCreateDoc(self,fileName:'str'=None) -> 'Any': + """ + Creates an underlying document object. + +Args: + + fileName(str):The name of the file to load. + +Returns: + + Any + + """ + pass + + + def FindOpenDocument(self,fileName:'str') -> 'Any': + """ + Returns an existing document with the specified file name. + +Args: + + fileName(str):The fully qualified filename to search for. + +Returns: + + Any + + """ + pass + + + def GetDocString(self,docIndex:'Any') -> 'str': + """ + Retrieves a specific substring describing the document type. + +Args: + + docIndex(Any):The document index. Must be one of the win32ui.CDocTemplate_* constants.CommentsFor more information on the doc strings, please see PyCDocTemplate::SetDocStrings + +Returns: + + str + + """ + pass + + + def GetDocumentList(self,) -> 'Any': + """ + Return a list of all open documents. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetResourceID(self,) -> 'None': + """ + Returns the resource ID in use. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSharedMenu(self,) -> 'Any': + """ + Returns the shared menu object for all frames using this template. + +Args: + + + +Returns: + + Any + + """ + pass + + + def InitialUpdateFrame(self,frame:'Any'=None,doc:'Any'=None,bMakeVisible:'Any'=1) -> 'None': + """ + Calls the default OnInitialFrame handler. + +Args: + + frame(Any):The frame window. + doc(Any):A document for the frame. + bMakeVisible(Any):Indicates of the frame should be shown.See Also + +Returns: + + None + + """ + pass + + + def SetContainerInfo(self,_id:'Any') -> 'None': + """ + Sets the resources to be used when an OLE 2 object is in-place activated. + +Args: + + _id(Any):The resource ID. + +Returns: + + None + + """ + pass + + + def SetDocStrings(self,docStrings:'str') -> 'None': + """ + Assigns the document strings for the template. + +Args: + + docStrings(str):The document strings.CommentsThe string must be a \\n seperated list of docstrings. The elements are:elementNameDescriptionwindowTitleTitle used for the window (only for SDI applications)docNameRoot for the default document name.fileNewNameName of the document type, as displayed in the "File/New" dialogfilterNameDescription of the document type and a wildcard spec for the file open dialog.filterExtExtension for documents of this file type.regFileTypeIdInternal Id of the document as registered in the registry. Used to associate the extension with the file type.regFileTypeNameName of the document, as stored in the reigstry. This is the name presented to the user. + +Returns: + + None + + """ + pass + + + def OpenDocumentFile(self,filename:'str',bMakeVisible:'Any'=1) -> 'None': + """ + Opens a document file, creating a view and frame. + +Args: + + filename(str):Name of file to open, or None + bMakeVisible(Any):Indicates if the document should be created visible. + +Returns: + + None + + """ + pass + + +class PyCDockContext(object): + """A class which encapsulates an MFC CDockContext object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ptLast(self)->'Tuple[Any, Any]': + """""" + pass + + + @property + def rectLast(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def sizeLast(self)->'Tuple[Any, Any]': + """""" + pass + + + @property + def bDitherLast(self)->'Any': + """""" + pass + + + @property + def rectDragHorz(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def rectDragVert(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def rectFrameDragHorz(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def rectFrameDragVert(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def dwDockStyle(self)->'Any': + """allowable dock styles for bar""" + pass + + + @property + def dwOverDockStyle(self)->'Any': + """style of dock that rect is over""" + pass + + + @property + def dwStyle(self)->'Any': + """style of control bar""" + pass + + + @property + def bFlip(self)->'Any': + """if shift key is down""" + pass + + + @property + def bForceFrame(self)->'Any': + """if ctrl key is down CDC* m_pDC; // where to draw during drag""" + pass + + + @property + def bDragging(self)->'Any': + """""" + pass + + + @property + def nHitTest(self)->'Any': + """""" + pass + + + @property + def uMRUDockID(self)->'Any': + """""" + pass + + + @property + def rectMRUDockPos(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def dwMRUFloatStyle(self)->'Any': + """""" + pass + + + @property + def ptMRUFloatPos(self)->'Tuple[Any, Any]': + """Sentinel""" + pass + + + def EndDrag(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def StartDrag(self,pt:'Tuple[Any, Any]') -> 'Any': + """ + None + +Args: + + pt(Tuple[Any, Any]): + +Returns: + + Any + + """ + pass + + + def EndResize(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def StartResize(self,hittest:'Any',pt:'Tuple[Any, Any]') -> 'Any': + """ + None + +Args: + + hittest(Any): + pt(Tuple[Any, Any]): + +Returns: + + Any + + """ + pass + + + def ToggleDocking(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DeleteContents(self,) -> 'None': + """ + Call the MFC DeleteContents method. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoSave(self,fileName:'str',bReplace:'Any'=1) -> 'None': + """ + Calls the underlying MFC DoSave method. + +Args: + + fileName(str):The name of the file to save to. + bReplace(Any):Should an existing file be silently replaced?.CommentsIf invalid or no filename, will prompt for a name, else will perform the actual saving of the document.See Also + +Returns: + + None + + """ + pass + + + def DoFileSave(self,) -> 'None': + """ + Checks the file attributes. + +If the file is read only, a new name is prompted, else the + +file is saved (by calling DoSave) + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocTemplate(self,) -> 'Any': + """ + Returns the template for the document. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAllViews(self,) -> 'List[Any]': + """ + Returns a list of all views for the current document. + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def GetFirstView(self,) -> 'Any': + """ + Returns the first view object attached to this document. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPathName(self,) -> 'str': + """ + Returns the full path name of the current document. + +The string will be empty if no path name has been set. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTitle(self,) -> 'str': + """ + Returns the title of the current document. + +This will often be the file name portion of the path name. + +Args: + + + +Returns: + + str + + """ + pass + + + def IsModified(self,) -> 'Any': + """ + Return a flag indicating if the document has been modified. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnChangedViewList(self,) -> 'None': + """ + Informs the document when a view is added or removed. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCloseDocument(self,) -> 'None': + """ + Call the MFC OnCloseDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnNewDocument(self,) -> 'None': + """ + Call the MFC OnNewDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOpenDocument(self,pathName:'str') -> 'None': + """ + Call the MFC OnOpenDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + pathName(str):The full path of the file to open.MFC References + +Returns: + + None + + """ + pass + + + def OnSaveDocument(self,pathName:'str') -> 'None': + """ + Call the MFC OnSaveDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + pathName(str):The full path of the file to save.MFC References + +Returns: + + None + + """ + pass + + + def SetModifiedFlag(self,bModified:'Any'=1) -> 'None': + """ + Set the "dirty" flag for the document. + +Args: + + bModified(Any):Set dirty flagMFC References + +Returns: + + None + + """ + pass + + + def SaveModified(self,) -> 'Any': + """ + Call the underlying MFC method. + +Args: + + + +Returns: + + Any:CDocument::SaveModified +Return ValueNonzero if it is safe to continue and close the document; 0 if the document should not be closed. + + + """ + pass + + + def SetPathName(self,path:'str') -> 'None': + """ + Set the full path name for the document. + +Args: + + path(str):The full path of the file.MFC References + +Returns: + + None + + """ + pass + + + def SetTitle(self,title:'str') -> 'None': + """ + Set the title of the document (ie, the name + +to appear in the window caption for the document. + +Args: + + title(str):The new title.MFC References + +Returns: + + None + + """ + pass + + + def UpdateAllViews(self,sender:'Any',hint:'Any'=None) -> 'None': + """ + Informs each view when a document changes. + +Args: + + sender(Any):The view who initiated the update + hint(Any):A hint for the update.MFC References + +Returns: + + None + + """ + pass + + +class PyCEdit(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the window for a new Edit object. + +Args: + + style(Any):The style for the Edit. Use any of the win32con.BS_* constants. + rect(Tuple[Any, Any, Any, Any]):The size and position of the Edit. + parent(Any):The parent window of the Edit. Usually a PyCDialog. + _id(Any):The Edits control ID. + +Returns: + + None + + """ + pass + + + def Clear(self,) -> 'Any': + """ + Clears all text in an edit control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Copy(self,) -> 'None': + """ + Copys the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def Cut(self,) -> 'None': + """ + Cuts the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def FmtLines(self,bAddEOL:'Any') -> 'Any': + """ + Sets the formatting options for the control. + +Args: + + bAddEOL(Any):Specifies whether soft line-break characters are to be inserted. A value of TRUE inserts the characters; a value of FALSE removes them.MFC References + +Returns: + + Any:CEdit::FmtLines +Return ValueNonzero if any formatting occurs; otherwise 0. + + + """ + pass + + + def GetFirstVisibleLine(self,) -> 'Any': + """ + Returns zero-based index of the topmost visible line. + +Args: + + + +Returns: + + Any:CEdit::GetFirstVisibleLine +Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. + + + """ + pass + + + def GetSel(self,) -> 'Tuple[Any, Any]': + """ + Returns the start and end of the current selection. + +Args: + + + +Returns: + + Tuple[Any, Any]:CEdit::GetSel +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the + +end of the current selection) + + + """ + pass + + + def GetLine(self,lineNo:'Any') -> 'Any': + """ + Returns the text in a specified line. + +Args: + + lineNo(Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. + +Returns: + + Any + + """ + pass + + + def GetLineCount(self,) -> 'Any': + """ + Gets the number of lines in an edit control. + +Args: + + + +Returns: + + Any:CEdit::GetLineCount +Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. + + + """ + pass + + + def LimitText(self,nChars:'Any'=0) -> 'None': + """ + Sets max length of text that user can enter + +Args: + + nChars(Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References + +Returns: + + None + + """ + pass + + + def LineFromChar(self,charNo:'Any'=-1) -> 'Any': + """ + Returns the line number of the specified character. + +Args: + + charNo(Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References + +Returns: + + Any:CEdit::LineFromChar +Return ValueThe zero-based line number of the line containing the character index specified by charNo. + +If charNo is -1, the number of the line that contains the first character of the selection is returned. + +If there is no selection, the current line number is returned. + + + """ + pass + + + def LineIndex(self,lineNo:'Any'=-1) -> 'Any': + """ + Retrieves the character index of a line within a multiple-line edit control. + +Args: + + lineNo(Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + Any:CEdit::LineIndex +Return ValueThe character index of the line specified in lineNo, or -1 if + +the specified line number is greater then the number of lines in + +the edit control. + + + """ + pass + + + def LineScroll(self,nLines:'Any',nChars:'Any'=0) -> 'Any': + """ + Scroll the control vertically and horizontally + +Args: + + nLines(Any):Specifies the number of lines to scroll vertically. + nChars(Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + Any + + """ + pass + + + def Paste(self,) -> 'None': + """ + Pastes the contents of the clipboard into the control. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReplaceSel(self,text:'str') -> 'None': + """ + Replaces the selection with the specified text. + +Args: + + text(str):The text to replace the selection with.MFC References + +Returns: + + None + + """ + pass + + + def SetReadOnly(self,bReadOnly:'Any'=1) -> 'None': + """ + Sets or clears the read-only status of the listbox. + +Args: + + bReadOnly(Any):The read-only state to set.MFC References + +Returns: + + None + + """ + pass + + + def SetSel(self,start:'Any',end:'Any',arg:'Any',bNoScroll1:'Any',bNoScroll:'Any'=0) -> 'None': + """ + Sets the selection in the edit control. + +Args: + + start(Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. + end(Any):Specifies the ending position. + arg(Any):As for normal start, end args. + bNoScroll1(Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.MFC References + bNoScroll(Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.Alternative Parameters + +Returns: + + None + + """ + pass + + +class PyCEditView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsModified(self,) -> 'Any': + """ + Indicates if the view's document has the modified flag set. + +Args: + + + +Returns: + + Any + + """ + pass + + + def LoadFile(self,fileName:'str') -> 'None': + """ + Loads a file into the view. + +Args: + + fileName(str):The name of the file to be loaded. + +Returns: + + None + + """ + pass + + + def SetModifiedFlag(self,bModified:'Any'=1) -> 'None': + """ + Sets the modified flag for the view's document. + +Args: + + bModified(Any):The modified state to set. + +Returns: + + None + + """ + pass + + + def GetEditCtrl(self,) -> 'Any': + """ + returns the underlying edit control object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + Any + + """ + pass + + + def SaveFile(self,fileName:'str') -> 'None': + """ + Saves the view to a file. + +Args: + + fileName(str):The name of the file to be written. + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCFileDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPathName(self,) -> 'str': + """ + Retrives the path name from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileName(self,) -> 'str': + """ + Retrives the file name from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileExt(self,) -> 'str': + """ + Retrives the file extension from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileTitle(self,) -> 'str': + """ + Retrives the file title from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetPathNames(self,) -> 'str': + """ + Retrieves the list of path names from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetReadOnlyPref(self,) -> 'Any': + """ + Retrives the value of the "Read Only" checkbox on the file dialog. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetOFNTitle(self,title:'str') -> 'None': + """ + Sets the Title for the dialog. + +Args: + + title(str):The title for the dialog box. May be None. + +Returns: + + None + + """ + pass + + + def SetOFNInitialDir(self,title:'str') -> 'None': + """ + Sets the initial directory for the dialog. + +Args: + + title(str):The initial directory for the dialog box. May be None. + +Returns: + + None + + """ + pass + + +class PyCFont(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSafeHandle(self,) -> 'Any': + """ + Retrieves the HFONT for the font as an integer + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCFontDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoModal(self,) -> 'Any': + """ + Displays a dialog and allows the user to make a selection. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCurrentFont(self,) -> 'Any': + """ + Returns a dictionary describing the current font. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCharFormat(self,) -> 'Any': + """ + Returns the font selection in a CHARFORMAT tuple. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetColor(self,) -> 'Any': + """ + Determines the color of the selected font. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetFaceName(self,) -> 'str': + """ + Returns the face name of the selected font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetStyleName(self,) -> 'str': + """ + Returns the style name of the selected font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetSize(self,) -> 'Any': + """ + Returns he font's size, in tenths of a point. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetWeight(self,) -> 'Any': + """ + Returns the font's weight. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsStrikeOut(self,) -> 'Any': + """ + Determines whether the font is displayed with strikeout. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsUnderline(self,) -> 'Any': + """ + Determines whether the font is displayed with underline. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsBold(self,) -> 'Any': + """ + Determines whether the font is displayed bold. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsItalic(self,) -> 'Any': + """ + Determines whether the font is displayed with italic. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCFormView(object): + """A class which implementes a CFormView (ie, a view based on a dialog resource.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCFrameWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BeginModalState(self,) -> 'None': + """ + Sets the frame window to modal. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateWindow(self,wndClass:'str',title:'str',style:'Any',PyCWnd:'Any',menuId:'Any',styleEx:'Any',rect:'Tuple[Any, Any, Any, Any]'=None,createContext:'Any'=None) -> 'Any': + """ + Creates the actual window for the PyCFrameWnd object. + +Args: + + wndClass(str):The window class name, or None + title(str):The window title + style(Any):The window style + PyCWnd(Any):The parent window + menuId(Any):The string or integer id for the menu. + styleEx(Any):The extended style of the window being created.MFC References + rect(Tuple[Any, Any, Any, Any]):The default rectangle + createContext(Any):A tuple representing a CREATECONTEXT structure. + +Returns: + + Any + + """ + pass + + + def EndModalState(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def DockControlBar(self,controlBar:'Any',arg:'Tuple[Any, Any, Any, Any]',dockBarId:'Any'=0) -> 'None': + """ + Docks a control bar. + +Args: + + controlBar(Any):The control bar to dock. + arg(Tuple[Any, Any, Any, Any]):Determines, in screen coordinates, where the control bar will be docked in the nonclient area of the destination frame window.MFC References + dockBarId(Any):Determines which sides of the frame window to consider for docking. + +Returns: + + None + + """ + pass + + + def EnableDocking(self,style:'Any') -> 'None': + """ + Enable dockable control bars in a frame window + +Args: + + style(Any):Specifies which sides of the frame window can serve as docking sites for control bars.CommentsBy default, control bars will be docked to a side of the frame window in the following order: top, bottom, left, right. + +Returns: + + None + + """ + pass + + + def FloatControlBar(self,controlBar:'Any',arg:'Tuple[Any, Any]',style:'Any') -> 'None': + """ + Floats a control bar. + +Args: + + controlBar(Any):The control bar to dock. + arg(Tuple[Any, Any]):The location, in screen coordinates, where the top left corner of the control bar will be placed. + style(Any):Determines which sides of the frame window to consider for docking.MFC References + +Returns: + + None + + """ + pass + + + def GetActiveDocument(self,) -> 'Any': + """ + Gets the currently active document, else None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetControlBar(self,_id:'Any') -> 'Any': + """ + Retrieves the specified control bar. + +Args: + + _id(Any):The ID of the toolbar to be retrieved + +Returns: + + Any + + """ + pass + + + def GetMessageString(self,_id:'Any') -> 'str': + """ + Retrieves message corresponding to a command ID. + +Args: + + _id(Any):The ID to be retrievedSee Also + +Returns: + + str + + """ + pass + + + def GetMessageBar(self,) -> 'Any': + """ + Retrieves the message bar for the frame. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsTracking(self,) -> 'Any': + """ + Determines if splitter bar is currently being moved. + +Args: + + + +Returns: + + Any + + """ + pass + + + def InModalState(self,) -> 'Any': + """ + Returns a value indicating whether or not a frame window is in a modal state. + +Args: + + + +Returns: + + Any + + """ + pass + + + def LoadAccelTable(self,_id:'PyResourceId') -> 'None': + """ + Loads an accelerator table. + +Args: + + _id(PyResourceId):Name or id of the resource that contains the table + +Returns: + + None + + """ + pass + + + def LoadFrame(self,idResource:'Any',style:'Any'=-1,wndParent:'Any'=None,context:'Any'=None) -> 'None': + """ + Loads a Windows frame window and associated resources + +Args: + + idResource(Any):The Id of the resources (menu, icon, etc) for this window + style(Any):The window style. Note -1 implies win32con.WS_OVERLAPPEDWINDOW|win32con.FWS_ADDTOTITLE + wndParent(Any):The parent of the window, or None. + context(Any):An object passed to the OnCreateClient for the frame,MFC References + +Returns: + + None + + """ + pass + + + def LoadBarState(self,profileName:'str') -> 'None': + """ + Loads a control bars settings + +Args: + + profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def SaveBarState(self,profileName:'str') -> 'None': + """ + Saves a control bars settings + +Args: + + profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References + +Returns: + + None + + """ + pass + + + def ShowControlBar(self,controlBar:'Any',bShow:'Any',bDelay:'Any') -> 'None': + """ + Shows a control bar. + +Args: + + controlBar(Any):The control bar to dock. + bShow(Any):Show or hide flag. + bDelay(Any):If TRUE, delay showing the control bar. If FALSE, show the control bar immediately.MFC References + +Returns: + + None + + """ + pass + + + def RecalcLayout(self,bNotify:'Any'=1) -> 'None': + """ + Called by the framework when the standard control bars are toggled on or off or + +when the frame window is resized. + +Args: + + bNotify(Any):Notify flagMFC References + +Returns: + + None + + """ + pass + + + def GetActiveView(self,) -> 'Any': + """ + Retrieves the active view. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnBarCheck(self,_id:'Any') -> 'Any': + """ + Changes the state of the specified controlbar. + +Args: + + _id(Any):The control ID of the control bar. + +Returns: + + Any + + """ + pass + + + def OnUpdateControlBarMenu(self,cmdUI:'Any') -> 'Any': + """ + Checks the state of a menu item + +Args: + + cmdUI(Any):A cmdui object + +Returns: + + Any + + """ + pass + + + def SetActiveView(self,view:'Any',bNotify:'Any'=1) -> 'None': + """ + Sets the active view for a frame. + +Args: + + view(Any):The view to set active. + bNotify(Any):Specifies whether the view is to be notified of activation. If TRUE, OnActivateView is called for the new view; if FALSE, it is not. + +Returns: + + None + + """ + pass + + +class PyCGdiObject(object): + """A class which encapsulates an MFC CGdiObject.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCImageList(object): + """A Python type encapsulating an MFC CImageList class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Add(self,arg:'Tuple[Any, Any]',bitmap:'Any',color:'Any',hIcon:'Any') -> 'Any': + """ + Adds an image to the list. + +Args: + + arg(Tuple[Any, Any]):2 Bitmaps to use (primary and mask)Alternative Parameters + bitmap(Any):Bitmap to use + color(Any):Color to use for the mask.Alternative Parameters + hIcon(Any):Handle of an icon to add.Return ValueZero-based index of the first new image. + +Returns: + + Any:Handle of an icon to add. +Return ValueZero-based index of the first new image. + + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Destroys the underlying CImageList + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteImageList(self,) -> 'None': + """ + Deletes an image list. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBkColor(self,) -> 'Any': + """ + Retrieves the background color of an Image List. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSafeHandle(self,) -> 'Any': + """ + Retrieves the HIMAGELIST for the object + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetImageCount(self,) -> 'Any': + """ + Retrieves the number of images in an image list. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetImageInfo(self,index:'Any') -> 'Any': + """ + Retrieves information about an image. + +Args: + + index(Any):Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. + +Returns: + + Any:Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. + + + """ + pass + + + def SetBkColor(self,color:'Any') -> 'None': + """ + Sets the background color for an Image List. + +Args: + + color(Any):The new background color. + +Returns: + + None + + """ + pass + + +class PyCListBox(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddString(self,_object:'Any') -> 'Any': + """ + Adds a string to a listbox. + +Args: + + _object(Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References + +Returns: + + Any:CListBox::AddString +Return ValueThe zero based index of the new string. + + + """ + pass + + + def DeleteString(self,pos:'Any') -> 'Any': + """ + Deletes an item from a listbox. + +Args: + + pos(Any):The zero based index of the item to delete.MFC References + +Returns: + + Any:CListBox::DeleteString +Return ValueThe count of the items remaining in the list. + + + """ + pass + + + def Dir(self,attr:'Any',wild:'str') -> 'Any': + """ + Fills a listbox with a directory listing. + +Args: + + attr(Any):The attributes of the files to locate + wild(str):A file specification string - eg, *.*MFC References + +Returns: + + Any:CListBox::Dir +Return ValueThe index of the last file name added to the list. + + + """ + pass + + + def GetCaretIndex(self,) -> 'Any': + """ + Returns the index of the item which has focus. + +Args: + + + +Returns: + + Any:PyCListBox.GetCaretIndex + +int = GetCaretIndex()Returns the index of the item which has focus. +Return ValueThe zero-based index of the item that has the focus rectangle in a list box. + +If the list box is a single-selection list box, the return value is the index of the item that is selected, if + +any. + + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Returns the count of items in the listbox. + +Args: + + + +Returns: + + Any:CListBox::GetCount +Return ValueReturns the number of items currently in the listbox. + + + """ + pass + + + def GetCurSel(self,) -> 'Any': + """ + Returns the index of the currently selected item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemData(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific object associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetItemValue(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetSel(self,index:'Any') -> 'Any': + """ + Returns the selection state of a specified item. + +Args: + + index(Any):The index of the item to return the state for.MFC References + +Returns: + + Any:CListBox::GetSel +Return ValueA +ve number if the item is selected, else zero. + + + """ + pass + + + def GetSelCount(self,) -> 'Any': + """ + Returns the number of selected items in a multiple selection listbox. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelItems(self,) -> 'Any': + """ + Returns a list of the indexes of the currently selected items in a multiple + +selection listbox. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelTextItems(self,) -> 'Any': + """ + Returns a list of the strings of the currently selected items in a multiple + +selection listbox. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTopIndex(self,) -> 'Any': + """ + Returns the index of the top most visible item. + +Args: + + + +Returns: + + Any:CListBox::GetTopIndex +Return ValueThe zero based index of the top most visible item. + + + """ + pass + + + def GetText(self,index:'Any') -> 'str': + """ + Returns the string for a specified item. + +Args: + + index(Any):The index of the item to retrieve the text of + +Returns: + + str + + """ + pass + + + def GetTextLen(self,index:'Any') -> 'Any': + """ + Returns the length of the string for a specified item. + +Args: + + index(Any):The index of the item to retrieve the length of the text.MFC References + +Returns: + + Any + + """ + pass + + + def InsertString(self,pos:'Any',_object:'Any') -> 'Any': + """ + Insert a string into a listbox. + +Args: + + pos(Any):The zero based index in the listbox to insert the new string + _object(Any):The object to be added to the listboxMFC References + +Returns: + + Any:CListBox::InsertString +Return ValueThe zero based index of the new string added. + + + """ + pass + + + def ResetContent(self,) -> 'None': + """ + Clear all the items from a listbox. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCaretIndex(self,index:'Any',bScroll:'Any'=1) -> 'None': + """ + Sets the focus rectange to a specified item. + +Args: + + index(Any):The zero based index of the item. + bScroll(Any):Should the listbox scroll to the item?MFC References + +Returns: + + None + + """ + pass + + + def SelectString(self,after:'Any',string:'str') -> 'None': + """ + Searches for a list-box item that matches the specified string, and selects it. + +Args: + + after(Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire listbox. + string(str):The string to search for.MFC References + +Returns: + + None:CListBox::SelectString +Return ValueThe return value is always None - an exception is raised if the string can not be located. + + + """ + pass + + + def SelItemRange(self,bSel:'Any',start:'Any',end:'Any') -> 'None': + """ + Selects an item range. + +Args: + + bSel(Any):Should the selection specified be set or cleared? + start(Any):The zero based index of the first item to select. + end(Any):The zero based index of the last item to select. + +Returns: + + None + + """ + pass + + + def SetCurSel(self,index:'Any') -> 'None': + """ + Selects an item in a single selection listbox. + +Args: + + index(Any):The zero based index of the item to select.MFC References + +Returns: + + None + + """ + pass + + + def SetItemData(self,item:'Any',Data:'Any') -> 'Any': + """ + Sets the item's application-specific object value. + +Args: + + item(Any):Index of the item whose Data is to be set. + Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + Any + + """ + pass + + + def SetItemValue(self,item:'Any',data:'Any') -> 'Any': + """ + Sets the item's application-specific value. + +Args: + + item(Any):Index of the item whose Data is to be set. + data(Any):New value for the data. + +Returns: + + Any + + """ + pass + + + def SetSel(self,index:'Any',bSel:'Any'=1) -> 'None': + """ + Selects an item in a multiple selection listbox. + +Args: + + index(Any):The zero based index of the item to select. + bSel(Any):Should the item be selected or deselected?MFC References + +Returns: + + None + + """ + pass + + + def SetTabStops(self,eachTabStop:'Any',tabStops:'Any') -> 'None': + """ + Sets the tab stops for a listbox. + +Args: + + eachTabStop(Any):The position for each tab stop.Alternative Parameters + tabStops(Any):Each individual tab stop. + +Returns: + + None + + """ + pass + + + def SetTopIndex(self,index:'Any') -> 'None': + """ + Sets the top index (top most visible item) of the listbox. + +Args: + + index(Any):The zero based index of the item to place at the top of the list.MFC References + +Returns: + + None + + """ + pass + + +class PyCListCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Arrange(self,code:'Any') -> 'None': + """ + Aligns items on a grid. + +Args: + + code(Any):Specifies the alignment style for the items + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',PyCWnd:'Any',_id:'Any') -> 'None': + """ + Creates the actual window for the object. + +Args: + + style(Any):The window style + rect(Tuple[Any, Any, Any, Any]):The default rectangle + PyCWnd(Any):The parent window + _id(Any):The control IDMFC References + +Returns: + + None + + """ + pass + + + def DeleteAllItems(self,) -> 'None': + """ + Deletes all items from the list. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteItem(self,item:'Any') -> 'None': + """ + Deletes the specified item. + +Args: + + item(Any):The item to delete. + +Returns: + + None + + """ + pass + + + def GetTextColor(self,) -> 'Any': + """ + Retrieves the text color of a list view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetTextColor(self,color:'Any') -> 'None': + """ + Sets the text color of a list view control. + +Args: + + color(Any):The new color. + +Returns: + + None + + """ + pass + + + def GetBkColor(self,) -> 'Any': + """ + Retrieves the background color of the control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetBkColor(self,color:'Any') -> 'None': + """ + Sets the background color of the control. + +Args: + + color(Any):The new background color. + +Returns: + + None + + """ + pass + + + def GetItem(self,item:'Any',sub:'Any') -> 'Any': + """ + Retrieves the details of an items attributes. + +Args: + + item(Any):The index of the item whose attributes are to be retrieved. + sub(Any):Specifies the subitem whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetItemCount(self,) -> 'Any': + """ + Retrieves the number of items in a list view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemRect(self,item:'Any',bTextOnly:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the bounding rectangle of a list view item. + +Args: + + item(Any):Index of the item whose Data is to be set. + bTextOnly(Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the list view control. + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetEditControl(self,) -> 'Any': + """ + Retrieves the handle of the edit control used to edit the specified + +list view item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def EditLabel(self,item:'Any') -> 'Any': + """ + Edits a specified list view item in-place. + +Args: + + item(Any):The index of item to edit. + +Returns: + + Any + + """ + pass + + + def EnsureVisible(self,item:'Any',bPartialOK:'Any') -> 'Any': + """ + Ensures that a list view item is visible in its list view control. + +Args: + + item(Any):The index of item to edit. + bPartialOK(Any):Specifies whether partial visibility is acceptable. + +Returns: + + Any + + """ + pass + + + def CreateDragImage(self,item:'Any') -> 'Tuple[Any, Any, Any]': + """ + Creates a dragging bitmap for the specified list view + +item. + +Args: + + item(Any):The index of the item to edit. + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetImageList(self,nImageList:'Any') -> 'Any': + """ + Retrieves the current image list. + +Args: + + nImageList(Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. + +Returns: + + Any + + """ + pass + + + def GetNextItem(self,item:'Any',flags:'Any') -> 'Any': + """ + Searches for a list view item with specified properties and with specified + +relationship to a given item. + +Args: + + item(Any):Index of the item to begin the searching with, or -1 to find the first item that matches the specified flags. The specified item itself is excluded from the search. + flags(Any):Geometric relation of the requested item to the specified item, and the state of the requested item. The geometric relation can be one of these values: LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT The state can be zero, or it can be one or more of these values: LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED If an item does not have all of the specified state flags set, the search continues with the next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. + +Returns: + + Any:Geometric relation of the requested item to the specified item, + +and the state of the requested item. The geometric relation can be one of these values: + +LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT + +The state can be zero, or it can be one or more of these values: + +LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED + +If an item does not have all of the specified state flags set, the search continues with the + +next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. + + + """ + pass + + + def InsertColumn(self,colNo:'Any',item:'Any') -> 'Any': + """ + Inserts a column into a list control when in report view. + +Args: + + colNo(Any):The new column number + item(Any):A tuple describing the new column. + +Returns: + + Any + + """ + pass + + + def InsertItem(self,item:'Any',item1:'Any',text:'Any',image:'Any',item2:'Any',text1:'Any') -> 'Any': + """ + Inserts an item into the list. + +Args: + + item(Any):A tuple describing the new item.Alternative Parameters + item1(Any):The index of the item. + text(Any):The text of the item. + image(Any):The index of the image to use.Alternative Parameters + item2(Any):The index of the item. + text1(Any):The text of the item. + +Returns: + + Any + + """ + pass + + + def SetImageList(self,imageList:'Any',imageType:'Any') -> 'Any': + """ + Assigns an image list to a list view control. + +Args: + + imageList(Any):The Image List to use. + imageType(Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE + +Returns: + + Any + + """ + pass + + + def GetColumn(self,column:'Any') -> 'Any': + """ + Retrieves the details of a column in the control. + +Args: + + column(Any):The index of the column whose attributes are to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetTextBkColor(self,) -> 'Any': + """ + Retrieves the text background color of a list view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetTextBkColor(self,color:'Any') -> 'None': + """ + Sets the text background color of a list view control. + +Args: + + color(Any):The new background color. + +Returns: + + None + + """ + pass + + + def GetTopIndex(self,) -> 'Any': + """ + Retrieves the index of the topmost visible item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCountPerPage(self,) -> 'Any': + """ + Calculates the number of items that can fit vertically in a list view + +control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelectedCount(self,) -> 'Any': + """ + Retrieves the number of selected items in the list view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetItem(self,item:'Any') -> 'Any': + """ + Sets some of all of an items attributes. + +Args: + + item(Any):A tuple describing the new item. + +Returns: + + Any + + """ + pass + + + def SetItemState(self,item:'Any',state:'Any',mask:'Any') -> 'Any': + """ + Changes the state of an item in a list view control. + +Args: + + item(Any):Index of the item whose state is to be set. + state(Any):New values for the state bits. + mask(Any):Mask specifying which state bits to change. + +Returns: + + Any + + """ + pass + + + def GetItemState(self,item:'Any',mask:'Any') -> 'Any': + """ + Retrieves the state of a list view item. + +Args: + + item(Any):The index of the item whose position is to be retrieved. + mask(Any):Mask specifying which of the item's state flags to return. + +Returns: + + Any + + """ + pass + + + def SetItemData(self,item:'Any',Data:'Any') -> 'Any': + """ + Sets the item's application-specific value. + +Args: + + item(Any):Index of the item whose Data is to be set. + Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + Any + + """ + pass + + + def GetItemData(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def SetItemCount(self,count:'Any') -> 'None': + """ + Prepares a list view control for adding a large number of items. + +Args: + + count(Any):Number of items that the control will ultimately contain.CommentsBy calling this function before adding a large number of items, you enable a list view control to reallocate its internal data structures only once rather than every time you add an item. + +Returns: + + None + + """ + pass + + + def SetItemText(self,item:'Any',sub:'Any',text:'str') -> 'Any': + """ + Changes the text of a list view item or subitem. + +Args: + + item(Any):Index of the item whose text is to be set. + sub(Any):Index of the subitem, or zero to set the item label. + text(str):String that contains the new item text. + +Returns: + + Any + + """ + pass + + + def GetItemText(self,item:'Any',sub:'Any') -> 'Any': + """ + Retrieves the text of a list view item or subitem. + +Args: + + item(Any):The index of the item whose text is to be retrieved. + sub(Any):Specifies the subitem whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def RedrawItems(self,first:'Any',first1:'Any') -> 'Any': + """ + Forces a listview to repaint a range of items. + +Args: + + first(Any):Index of the first item to be repainted. + first1(Any):Index of the last item to be repainted.CommentsThe specified items are not actually repainted until the list view window receives a WM_PAINT message. To repaint immediately, call the Windows UpdateWindow function after using this function. + +Returns: + + Any + + """ + pass + + + def Update(self,item:'Any') -> 'None': + """ + Forces the control to repaint a specified item. + +Args: + + item(Any):The new color. + +Returns: + + None + + """ + pass + + + def SetColumn(self,colNo:'Any',item:'Any') -> 'Any': + """ + Changes column state in a list control when in report view. + +Args: + + colNo(Any):The to be modified column number + item(Any):A tuple describing the modified column. + +Returns: + + Any + + """ + pass + + + def DeleteColumn(self,first:'Any') -> 'Any': + """ + Deletes the specified column from the list control. + +Args: + + first(Any):Index of the column to be removed. + +Returns: + + Any + + """ + pass + + + def GetColumnWidth(self,first:'Any') -> 'Any': + """ + Gets the width of the specified column in the list control. + +Args: + + first(Any):Index of the column whose width is to be retrieved. + +Returns: + + Any + + """ + pass + + + def SetColumnWidth(self,first:'Any',first1:'Any') -> 'Any': + """ + Sets the width of the specified column in the list control. + +Args: + + first(Any):Index of the column to be changed. + first1(Any):New width of the column. + +Returns: + + Any + + """ + pass + + + def GetStringWidth(self,first:'Any') -> 'Any': + """ + Gets the necessary column width to fully display this text in a column. + +Args: + + first(Any):String that contains the text whose width is to be determined.CommentsDoesn't take the size of an included Image in account, only the size of the text is determined. + +Returns: + + Any + + """ + pass + + + def HitTest(self,arg:'Any') -> 'Tuple[Any, Any, Any]': + """ + Determines which list view item, if any, is at a specified position. + +Args: + + arg(Any):The point to test.Return ValueThe result is a tuple of (flags, item, subItem). flags may be a combination of the following values:ValueDescriptioncommctrl.LVHT_ABOVEThe position is above the control's client area.commctrl.LVHT_BELOWThe position is below the control's client area.commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a list item.commctrl.LVHT_ONITEMICONThe position is over a list view item's icon.commctrl.LVHT_ONITEMLABELThe position is over a list view item's text.commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item.commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area.commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. + +Returns: + + Tuple[Any, Any, Any]:The point to test.Return ValueThe result is a tuple of (flags, item, subItem). + +flags may be a combination of the following values: + + + +Value + + +Description + + + +commctrl.LVHT_ABOVEThe position is above the control's client area. +commctrl.LVHT_BELOWThe position is below the control's client area. +commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a + +list item. +commctrl.LVHT_ONITEMICONThe position is over a list view item's icon. +commctrl.LVHT_ONITEMLABELThe position is over a list view item's text. +commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item. +commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area. +commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. + + + """ + pass + + + def GetItemPosition(self,item:'Any') -> 'Tuple[Any, Any]': + """ + Determines the position of the specified item. + +Args: + + item(Any):The item to determine the position for. + +Returns: + + Tuple[Any, Any] + + """ + pass + + +class PyCListView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + Any + + """ + pass + + + def GetListCtrl(self,) -> 'Any': + """ + Returns the underlying list control object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCMDIChildWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ActivateFrame(self,cmdShow:'Any'=-1) -> 'None': + """ + Calls the underlying MFC ActivateFrame method. + +Args: + + cmdShow(Any):The status of the window.See Also + +Returns: + + None + + """ + pass + + + def CreateWindow(self,wndClass:'str',title:'str',style:'Any',PyCWnd:'Any',rect:'Tuple[Any, Any, Any, Any]'=None,createContext:'Any'=None) -> 'Any': + """ + Creates the actual window for the PyCWnd object. + +Args: + + wndClass(str):The window class name, or None + title(str):The window title + style(Any):The window style + PyCWnd(Any):The parent window + rect(Tuple[Any, Any, Any, Any]):The default rectangle + createContext(Any):A tuple representing a CREATECONTEXT structure.CommentsYou do not need to call this method if you use the MFC Document/View framework. + +Returns: + + Any + + """ + pass + + + def GetMDIFrame(self,) -> 'None': + """ + Returns the MDI parent frame + +Args: + + + +Returns: + + None + + """ + pass + + + def MDIActivate(self,cmdShow:'Any'=-1) -> 'None': + """ + Activates the MDI frame independent of the main frame. + +Args: + + cmdShow(Any):The status of the window.See Also + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def PreTranslateMessage(self,) -> 'None': + """ + Calls the base PreTranslateMessage handler + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Calls the standard Python framework OnClose handler + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCMDIFrameWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetMDIClient(self,) -> 'Any': + """ + Returns the MDI client window + +Args: + + + +Returns: + + Any + + """ + pass + + + def MDIGetActive(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the current active MDI child window, along + +with a flag indicating whether the child window is maximized. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def MDIActivate(self,window:'Any') -> 'Any': + """ + Activate an MDI child window + +Args: + + window(Any):The window to activate. + +Returns: + + Any + + """ + pass + + + def MDINext(self,fNext:'Any'=0) -> 'None': + """ + Activates the next MDI window + +Args: + + fNext(Any):Indicates if the next (0) or previous (non-zero) window is requested.CommentsUnlike MFC, this version supports the fNext param in the WM_MDINEXT message. + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def PreTranslateMessage(self,) -> 'None': + """ + Calls the base PreTranslateMessage handler + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + + def OnContextHelp(self,) -> 'Any': + """ + Calls the underlying MFC OnContextHelp method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Calls the standard Python framework OnClose handler + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCMenu(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AppendMenu(self,flags:'Any',_id:'Any'=0,value:'Union[Any, str]'=None) -> 'None': + """ + Appends a new item to the end of a menu. Python can specify the state of the menu item + +by setting values in nFlags. + +Args: + + flags(Any):Specifies information about the state of the new menu item when it is added to the menu. May be a combination of the win32con.MF_* values. + _id(Any):Specifies either the command ID of the new menu item. + value(Union[Any, str]):Specifies the content of the new menu item. If used, flags must contain win32con.MF_STRING. + +Returns: + + None + + """ + pass + + + def DeleteMenu(self,_id:'Any',flags:'Any') -> 'str': + """ + Deletes the specified menu item. + +Args: + + _id(Any):The id of the item being deleted. + flags(Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. + +Returns: + + str + + """ + pass + + + def EnableMenuItem(self,_id:'Any',flags:'Any') -> 'Any': + """ + Enables, disables, or dims a menu item. + +Args: + + _id(Any):Specifies the command ID of the menu item. This parameter can specify pop-up menu items as well as standard menu items. + flags(Any):Specifies the action to take. It can be a combination of MF_DISABLED, MF_ENABLED, or MF_GRAYED, with MF_BYCOMMAND or MF_BYPOSITIONCommentsThe PyCMenu::CreateMenu, PyCMenu::InsertMenu, PyCMenu::ModifyMenu, and PyCMenu::LoadMenuIndirect member functions can also set the state (enabled, disabled, or dimmed) of a menu item. + +Returns: + + Any + + """ + pass + + + def GetHandle(self,) -> 'Any': + """ + Returns the menu object's underlying hMenu. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetMenuItemCount(self,) -> 'Any': + """ + Determines the number of items in a menu. + +Args: + + + +Returns: + + Any:PyCMenu.GetMenuItemCount + +int = GetMenuItemCount()Determines the number of items in a menu. +Return ValueThe number of items in the menu if the function is successful; otherwise -1. + + + """ + pass + + + def GetMenuItemID(self,pos:'Any') -> 'Any': + """ + Returns the item ID for the specified item in a pop-up menu. + +Args: + + pos(Any):The position (zero-based) of the menu item whose ID is being retrieved.CommentsIf the specified item is a pop-up menu (as opposed to an item within the pop-up menu), the return value is -1. If nPos corresponds to a SEPARATOR menu item, the return value is 0. + +Returns: + + Any + + """ + pass + + + def GetMenuString(self,_id:'Any',arg:'Any') -> 'str': + """ + Returns the string for a specified menu item. + +Args: + + _id(Any):The id of the item being requested. + arg(Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. + +Returns: + + str + + """ + pass + + + def GetSubMenu(self,pos:'Any') -> 'Any': + """ + Returns a submenu. + +Args: + + pos(Any):The position (zero-based) of the menu item being retrieved. + +Returns: + + Any + + """ + pass + + + def InsertMenu(self,pos:'Any',flags:'Any',_id:'Union[Any]'=0,value:'Union[Any, str]'=None) -> 'None': + """ + Inserts an item into a menu. + +Args: + + pos(Any):The position (zero-based) the item should be inserted. + flags(Any):Flags for the new item. + _id(Union[Any]):The ID for a new menu item, or handle to a submenu + value(Union[Any, str]):A string for the menu item. + +Returns: + + None + + """ + pass + + + def ModifyMenu(self,pos:'Any',flags:'Any',_id:'Any'=0,value:'Union[Any, str]'=None) -> 'None': + """ + Modify an item in a menu. + +Args: + + pos(Any):The position (zero-based) the item to be changed. + flags(Any):Flags for the item. + _id(Any):The ID for the item. + value(Union[Any, str]):A string for the menu item. + +Returns: + + None + + """ + pass + + + def TrackPopupMenu(self,arg:'Tuple[Any, Any]',arg1:'Any',arg2:'Any') -> 'None': + """ + Creates a popup menu anywhere on the screen. + +Args: + + arg(Tuple[Any, Any]):The position for the menu.. + arg1(Any):Flags for the menu. + arg2(Any):The owner of the menu.CommentsThe TrackPopupMenu function displays a floating pop-up menu at the specified location and tracks the selection of items on the pop-up menu. The floating pop-up menu can appear anywhere on the screen.Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is returned instead of the normal exception. + +Returns: + + None:The owner of the menu. +Comments + +The TrackPopupMenu function displays a floating pop-up menu at the + +specified location and tracks the selection of items on the pop-up menu. + +The floating pop-up menu can appear anywhere on the screen. +Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is + +returned instead of the normal exception. + + + """ + pass + + +class PyCOleClientItem(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateNewItem(self,) -> 'None': + """ + Creates an embedded item. + +Args: + + + +Returns: + + None + + """ + pass + + + def Close(self,) -> 'None': + """ + Closes the item + +Args: + + + +Returns: + + None + + """ + pass + + + def DoVerb(self,) -> 'None': + """ + Executes the specified verb. + +Args: + + + +Returns: + + None + + """ + pass + + + def Draw(self,) -> 'None': + """ + Draws the OLE item into the specified bounding rectangle using the specified device + +context. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetActiveView(self,) -> 'Any': + """ + Obtains the active view for the item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDocument(self,) -> 'Any': + """ + Obtains the current document for the item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetInPlaceWindow(self,) -> 'Any': + """ + Obtains the window in which the item has been opened for + +in-place editing. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemState(self,) -> 'None': + """ + Obtains the OLE item's current state + +Args: + + + +Returns: + + None + + """ + pass + + + def GetObject(self,) -> 'Any': + """ + Returns the COM object to the item. This is the m_lpObject + +variable in MFC. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetStorage(self,) -> 'None': + """ + Returns the COM object used for storage + +Args: + + + +Returns: + + None + + """ + pass + + + def OnActivate(self,) -> 'None': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnChange(self,) -> 'None': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnChangeItemPosition(self,) -> 'Any': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + Any:PyCOleClientItem.OnChangeItemPosition + +int = OnChangeItemPosition()Calls the underlying MFC method. +Return ValueThe result is a BOOL indicating if the function succeeded. No exception is thrown. + + + """ + pass + + + def OnDeactivateUI(self,) -> 'Any': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Run(self,) -> 'None': + """ + Runs the application associated with this item. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetItemRects(self,) -> 'None': + """ + Sets the bounding rectangle or the visible rectangle of the OLE item. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCOleDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCOleDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnableCompoundFile(self,bEnable:'Any'=1) -> 'None': + """ + Call this function if you want to store the document using the + +compound-file format. + +Args: + + bEnable(Any):Specifies whether compound file support is enabled or disabled. + +Returns: + + None + + """ + pass + + + def GetStartPosition(self,) -> 'Any': + """ + Obtains the position of the first item in the document. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNextItem(self,pos:'Any') -> 'Tuple[Any, Any]': + """ + Call this function repeatedly to access each of + +the items in your document. + +Args: + + pos(Any):The position to iterate from. + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetInPlaceActiveItem(self,wnd:'Any') -> 'Any': + """ + Obtains the OLE item that is currently activated + +in place in the frame window containing the view identified by obWnd. + +Args: + + wnd(Any):The window. + +Returns: + + Any + + """ + pass + + +class PyCOleInsertDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassID(self,) -> 'Any': + """ + Returns the CLSID associated with the selected item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelectionType(self,) -> 'Any': + """ + Returns the type of selection made + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPathName(self,) -> 'Any': + """ + Returns the full path to the file selected in the dialog box + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCPrintDialog(object): + """An object which encapsulates an MFC CPrintDialog object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCPrintInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DocObject(self,) -> 'None': + """ + Return true if the document being printed is a DocObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDwFlags(self,) -> 'None': + """ + A flags specifying DocObject printing operations. Valid only if data member + +m_bDocObject is TRUE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDwFlags(self,) -> 'None': + """ + Set a flag specifying DocObject printing operations. Valid only if data member + +m_bDocObject is TRUE. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocOffsetPage(self,) -> 'None': + """ + Get the number of pages preceding the first page of a particular DocObject + +in a combined DocObject print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDocOffsetPage(self,) -> 'None': + """ + Set the number of pages preceding the first page of a particular DocObject + +in a combined DocObject print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPrintDialog(self,) -> 'None': + """ + Set a pointer to the CPrintDialog object used to display the Print dialog box + +for the print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDirect(self,) -> 'None': + """ + TRUE if the Print dialog box will be bypassed for direct printing; FALSE otherwise. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDirect(self,) -> 'None': + """ + Sets to TRUE if the Print dialog box will be bypassed for direct printing; FALSE + +otherwise. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPreview(self,) -> 'None': + """ + A flag indicating whether the document is being previewed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPreview(self,) -> 'None': + """ + Set whether the document is being previewed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetContinuePrinting(self,) -> 'None': + """ + A flag indicating whether the framework should continue the print loop. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetContinuePrinting(self,) -> 'None': + """ + Set whether the framework should continue the print loop. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurPage(self,) -> 'None': + """ + Get the number of the current page. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCurPage(self,) -> 'None': + """ + Set the number of the current page. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetNumPreviewPages(self,) -> 'None': + """ + Get the number of pages displayed in preview mode. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetNumPreviewPages(self,) -> 'None': + """ + Set the number of pages displayed in preview mode. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserData(self,) -> 'None': + """ + Get a user-created structure. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetUserData(self,) -> 'None': + """ + Set a user-created structure. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDraw(self,) -> 'None': + """ + Get the usable drawing area of the page in logical coordinates. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDraw(self,) -> 'None': + """ + Set the usable drawing area of the page in logical coordinates. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPageDesc(self,) -> 'None': + """ + Get the format string used to display the page numbers during print preview + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPageDesc(self,) -> 'None': + """ + Set the format string used to display the page numbers during print preview + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMinPage(self,) -> 'None': + """ + Get the number of the first page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetMinPage(self,) -> 'None': + """ + Set the number of the first page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMaxPage(self,) -> 'None': + """ + Get the number of the last page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetMaxPage(self,) -> 'None': + """ + Set the number of the last page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetOffsetPage(self,) -> 'None': + """ + Get the number of pages preceding the first page of a DocObject item being + +printed in a combined DocObject print job. This currently does NOT work, as, if I include the symbol + +pInfo->GetOffsetPage(), the link fails to find its definition. Allways returns 0. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFromPage(self,) -> 'None': + """ + The number of the first page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetToPage(self,) -> 'None': + """ + The number of the last page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetHDC(self,hdc:'Any') -> 'None': + """ + Sets the printer DC compatible with the users choices, call after the print dialog + +DoModal finishes. + +Args: + + hdc(Any):The DC.MFC References + +Returns: + + None + + """ + pass + + + def CreatePrinterDC(self,) -> 'None': + """ + Handle to the newly created printer device context, call only after DoModal + +finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'None': + """ + Call DoModal on the dialog. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCopies(self,) -> 'None': + """ + The number of copies requested, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDefaults(self,) -> 'None': + """ + Nonzero if the function was successful; otherwise 0. Call this function to + +retrieve the device defaults of the default printer without displaying a dialog box. The retrieved values are placed + +in the m_pd structure. In some cases, a call to this function will call the constructor for CPrintDialog with + +bPrintSetupOnly set to FALSE. In these cases, a printer DC and hDevNames and hDevMode (two handles located in the + +m_pd data member) are automatically allocated. If the constructor for CPrintDialog was called with bPrintSetupOnly + +set to FALSE, this function will not only return hDevNames and hDevMode (located in m_pd.hDevNames and m_pd.hDevMode) + +to the caller, but will also return a printer DC in m_pd.hDC. It is the responsibility of the caller to delete the + +printer DC and call the WindowsGlobalFree function on the handles when you are finished with the CPrintDialog object. + +Args: + + + +Returns: + + None + + """ + pass + + + def FreeDefaults(self,) -> 'None': + """ + After a call to GetDefaults, and you are through with the CPrintDialog object, + +this call deletes the printer DC and calls GlobalFree function on the handles. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDeviceName(self,) -> 'None': + """ + The name of the currently selected printer, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDriverName(self,) -> 'None': + """ + The name of the currently selected printer device driver, call only after + +DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDlgFromPage(self,) -> 'None': + """ + Retrieves the starting page of the print range. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDlgToPage(self,) -> 'None': + """ + Retrieves the ending page of the print range. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPortName(self,) -> 'None': + """ + The name of the currently selected printer port, call only after DoModal + +finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPrinterDC(self,) -> 'None': + """ + A handle to the printer device context if successful; otherwise NULL. If the + +bPrintSetupOnly parameter of the CPrintDialog constructor was FALSE (indicating that the Print dialog box is + +displayed), then GetPrinterDC returns a handle to the printer device context. You must call the WindowsDeleteDC + +function to delete the device context when you are done using it. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintAll(self,) -> 'None': + """ + Nonzero if all pages in the document are to be printed; otherwise 0, call only after + +DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintCollate(self,) -> 'None': + """ + Nonzero if the user selects the collate check box in the dialog box; otherwise + +0, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintRange(self,) -> 'None': + """ + Nonzero if only a range of pages in the document are to be printed; otherwise 0, + +call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintSelection(self,) -> 'None': + """ + Nonzero if only the selected items are to be printed; otherwise 0., call only + +after DoModal finishes + +Args: + + + +Returns: + + None + + """ + pass + + + def GetHDC(self,) -> 'None': + """ + Identifies a device context or an information context, depending on whether the Flags + +member specifies the PD_RETURNDC or PC_RETURNIC flag. If neither flag is specified, the value of this member is + +undefined. If both flags are specified, PD_RETURNDC has priority. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'None': + """ + A set of bit flags that you can use to initialize the Print common dialog box. When + +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the + +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, + +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, + +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, + +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, + +PD_USEDEVMODECOPIESANDCOLLATE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFlags(self,) -> 'None': + """ + A set of bit flags that you can use to initialize the Print common dialog box. When + +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the + +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, + +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, + +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, + +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, + +PD_USEDEVMODECOPIESANDCOLLATE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFromPage(self,) -> 'None': + """ + The number of the first page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetToPage(self,) -> 'None': + """ + The number of the last page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPRINTDLGMinPage(self,) -> 'None': + """ + Get the minimum value for the page range specified in the From and To page + +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are + +disabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPRINTDLGMinPage(self,) -> 'None': + """ + Set the minimum value for the page range specified in the From and To page + +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are + +disabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPRINTDLGCopies(self,) -> 'None': + """ + Get the initial number of copies for the Copies edit control if hDevMode is + +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, + +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer + +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags + +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the + +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more + +information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPRINTDLGCopies(self,) -> 'None': + """ + Set the initial number of copies for the Copies edit control if hDevMode is + +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, + +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer + +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags + +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the + +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more + +information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCProgressCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(Any):The style for the control. + rect(Tuple[Any, Any, Any, Any]):The size and position of the control. + parent(Any):The parent window of the control. Usually a PyCDialog. + _id(Any):The control's ID. + +Returns: + + None + + """ + pass + + + def SetRange(self,nLower:'Any'=1,nUpper:'Any'=1) -> 'None': + """ + Set the control's bounds + +Args: + + nLower(Any):Specifies the lower limit of the range (default is zero). + nUpper(Any):Specifies the upper limit of the range (default is 100). + +Returns: + + None + + """ + pass + + + def SetPos(self,nPos:'Any'=1) -> 'Any': + """ + Set the control's position + +Args: + + nPos(Any):New position of the progress bar control. + +Returns: + + Any + + """ + pass + + + def OffsetPos(self,nPos:'Any'=1) -> 'Any': + """ + Advances the progress bar control's current position by the increment + +specified + +Args: + + nPos(Any):Amount to advance the position. + +Returns: + + Any + + """ + pass + + + def SetStep(self,nStep:'Any'=1) -> 'Any': + """ + Specifies the step increment for a progress bar control. + +Args: + + nStep(Any):New step increment. + +Returns: + + Any + + """ + pass + + + def StepIt(self,) -> 'Any': + """ + Advances the current position for a progress bar control by the step increment. + +Returns previous position. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCPropertyPage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CancelToClose(self,) -> 'None': + """ + Changes the Cancel button to Close. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCancel(self,) -> 'None': + """ + Calls the default MFC OnCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOK(self,) -> 'None': + """ + Calls the default MFC OnOK handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnApply(self,) -> 'None': + """ + Calls the default MFC OnApply handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnReset(self,) -> 'None': + """ + Calls the default MFC OnReset handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnQueryCancel(self,) -> 'None': + """ + Calls the default MFC OnQueryCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardBack(self,) -> 'None': + """ + Calls the default MFC OnWizardBack handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardNext(self,) -> 'None': + """ + Calls the default MFC OnWizardNext handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardFinish(self,) -> 'None': + """ + Calls the default MFC OnWizardFinish handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnSetActive(self,) -> 'Any': + """ + Calls the default MFC OnSetActive handler. + +Args: + + + +Returns: + + Any:PyCPropertyPage.OnSetActive virtual method +Return ValueThe result is true if the page should be made active. + +Typically this result should be passed to the original OnSetActive handler. + + + """ + pass + + + def OnKillActive(self,) -> 'Any': + """ + Calls the default MFC OnKillActive handler. + +Args: + + + +Returns: + + Any:PyCPropertyPage.OnKillActive virtual method +Return ValueThe result is true if the page should be deselected. + +Typically this result should be passed to the original OnSetActive handler. + + + """ + pass + + + def SetModified(self,bChanged:'Any'=1) -> 'None': + """ + Sets the modified flag. + +Args: + + bChanged(Any):A flag to indicate the new modified state. + +Returns: + + None + + """ + pass + + + def SetPSPBit(self,bitMask:'Any',bitValue:'Any') -> 'None': + """ + Sets or clears a bit in m_psp.dwFlags + +Args: + + bitMask(Any):The PSP_* bit mask constant + bitValue(Any):1 to set, 0 to clear + +Returns: + + None + + """ + pass + + +class PyCPropertySheet(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddPage(self,page:'Any') -> 'None': + """ + Adds the supplied page with the rightmost tab in the property sheet. + +Args: + + page(Any):The page to be added.CommentsAdd pages to the property sheet in the left-to-right order you want them to appear.MFC References + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'Any',exStyle:'Any',parent:'Any'=None) -> 'None': + """ + Displays the property sheet as a modeless dialog. + +Args: + + style(Any):The style for the window. + exStyle(Any):The extended style for the window. + parent(Any):The parent of the dialog. + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'Any': + """ + Displays the property sheet as a modal dialog. + +Args: + + + +Returns: + + Any + + """ + pass + + + def EnableStackedTabs(self,stacked:'Any') -> 'Any': + """ + Enables or disables stacked tabs. + +Args: + + stacked(Any):A boolean flag + +Returns: + + Any + + """ + pass + + + def EndDialog(self,result:'Any') -> 'None': + """ + Closes the dialog, with the specified result. + +Args: + + result(Any):The result to be returned by DoModal. + +Returns: + + None + + """ + pass + + + def GetActiveIndex(self,) -> 'Any': + """ + Retrieves the index of the active page of the property sheet. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetActivePage(self,) -> 'Any': + """ + Returns the currently active property page. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPage(self,pageNo:'Any') -> 'Any': + """ + Returns the specified property page. + +Args: + + pageNo(Any):The index of the page toretrieve.MFC References + +Returns: + + Any + + """ + pass + + + def GetPageIndex(self,page:'Any') -> 'Any': + """ + Retrieves the index of the specified page of the property sheet. + +Args: + + page(Any):The page. + +Returns: + + Any + + """ + pass + + + def GetPageCount(self,) -> 'Any': + """ + Returns the number of pages. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTabCtrl(self,) -> 'Any': + """ + Returns the tab control used by the sheet. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnInitDialog(self,) -> 'Any': + """ + Calls the default MFC OnInitDialog handler. + +Args: + + + +Returns: + + Any + + """ + pass + + + def PressButton(self,button:'Any') -> 'None': + """ + Simulates the choice of the specified button in a property sheet. + +Args: + + button(Any):The button to press + +Returns: + + None + + """ + pass + + + def RemovePage(self,offset:'Any',page:'Any') -> 'None': + """ + Removes the specified page from the sheet. + +Args: + + offset(Any):The page number to removeAlternative Parameters + page(Any):The page to remove + +Returns: + + None + + """ + pass + + + def SetActivePage(self,page:'Any') -> 'None': + """ + Programmatically sets the active page object. + +Args: + + page(Any):The page. + +Returns: + + None + + """ + pass + + + def SetTitle(self,title:'str') -> 'None': + """ + Sets the caption for the property sheet. + +Args: + + title(str):The new caption + +Returns: + + None + + """ + pass + + + def SetFinishText(self,text:'str') -> 'None': + """ + Sets the text for the Finish button + +Args: + + text(str):The next for the button + +Returns: + + None + + """ + pass + + + def SetWizardMode(self,) -> 'None': + """ + Enables the wizard mode + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWizardButtons(self,flags:'Any') -> 'None': + """ + Enables the wizard buttons + +Args: + + flags(Any):The wizard flags + +Returns: + + None + + """ + pass + + + def SetPSHBit(self,bitMask:'Any',bitValue:'Any') -> 'None': + """ + Sets or clears a bit in m_psh.dwFlags + +Args: + + bitMask(Any):The PSH_* bit mask constant + bitValue(Any):1 to set, 0 to clear + +Returns: + + None + + """ + pass + + +class PyCRect(object): + """A Python interface the the MFC CRect class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRgn(object): + """An object encapsulating an MFC PyCRgn class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRichEditCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Clear(self,) -> 'Any': + """ + Clears all text in an edit control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Copy(self,) -> 'None': + """ + Copys the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates a rich edit control window. + +Args: + + style(Any):The control style + rect(Tuple[Any, Any, Any, Any]):The position of the control + parent(Any):The parent window. Must not be None + _id(Any):The control ID + +Returns: + + None + + """ + pass + + + def Cut(self,) -> 'None': + """ + Cuts the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def FindText(self,charPos:'Any') -> 'Tuple[Any, Any, Any]': + """ + Finds text in the control + +Args: + + charPos(Any):The character position + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetCharPos(self,charPos:'Any') -> 'Any': + """ + Returns the location of the top-left corner of the character specified + +by charPos. + +Args: + + charPos(Any):The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple + +Returns: + + Any:The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple + + + + """ + pass + + + def GetDefaultCharFormat(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any:CRichEditCtrl::GetDefaultCharFormat +Return ValueThe return value is a win32ui::CHARFORMAT tuple + + + + """ + pass + + + def GetEventMask(self,) -> 'Any': + """ + Returns the current event mask. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelectionCharFormat(self,) -> 'Any': + """ + Returns the character formatting of the selection. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetFirstVisibleLine(self,) -> 'Any': + """ + Returns zero-based index of the topmost visible line. + +Args: + + + +Returns: + + Any:CRichEditCtrl::GetFirstVisibleLine +Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. + + + """ + pass + + + def GetParaFormat(self,) -> 'Any': + """ + Returns the current paragraph formatting attributes. + +Args: + + + +Returns: + + Any:CRichEditCtrl::GetParaFormat +Return ValueThe return value is a win32ui::PARAFORMAT tuple + + + + """ + pass + + + def GetSel(self,) -> 'Tuple[Any, Any]': + """ + Returns the start and end of the current selection. + +Args: + + + +Returns: + + Tuple[Any, Any]:CRichEditCtrl::GetSel +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the + +end of the current selection) + + + """ + pass + + + def GetSelText(self,) -> 'str': + """ + Returns the currently selected text + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTextLength(self,) -> 'Any': + """ + Returns the length of the text in the control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetLine(self,lineNo:'Any') -> 'Any': + """ + Returns the text in a specified line. + +Args: + + lineNo(Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. + +Returns: + + Any + + """ + pass + + + def GetModify(self,) -> 'Any': + """ + Nonzero if the text in this control has been modified; otherwise 0. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetLineCount(self,) -> 'Any': + """ + Gets the number of lines in an edit control. + +Args: + + + +Returns: + + Any:CRichEditCtrl::GetLineCount +Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. + + + """ + pass + + + def LimitText(self,nChars:'Any'=0) -> 'None': + """ + Sets max length of text that user can enter + +Args: + + nChars(Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References + +Returns: + + None + + """ + pass + + + def LineFromChar(self,charNo:'Any'=-1) -> 'Any': + """ + Returns the line number of the specified character. + +Args: + + charNo(Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References + +Returns: + + Any:CRichEditCtrl::LineFromChar +Return ValueThe zero-based line number of the line containing the character index specified by charNo. + +If charNo is -1, the number of the line that contains the first character of the selection is returned. + +If there is no selection, the current line number is returned. + + + """ + pass + + + def LineIndex(self,lineNo:'Any'=-1) -> 'Any': + """ + Retrieves the character index of a line within a multiple-line edit control. + +Args: + + lineNo(Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + Any:CRichEditCtrl::LineIndex +Return ValueThe character index of the line specified in lineNo, or -1 if + +the specified line number is greater then the number of lines in + +the edit control. + + + """ + pass + + + def LineScroll(self,nLines:'Any',nChars:'Any'=0) -> 'Any': + """ + Scroll the control vertically and horizontally + +Args: + + nLines(Any):Specifies the number of lines to scroll vertically. + nChars(Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + Any + + """ + pass + + + def Paste(self,) -> 'None': + """ + Pastes the contents of the clipboard into the control. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReplaceSel(self,text:'str') -> 'None': + """ + Replaces the selection with the specified text. + +Args: + + text(str):The text to replace the selection with.MFC References + +Returns: + + None + + """ + pass + + + def SetBackgroundColor(self,bSysColor:'Any',cr:'Any'=0) -> 'Any': + """ + Sets the background color for the control. + +Args: + + bSysColor(Any):Indicates if the background color should be set to the system value. If this value is TRUE, cr is ignored. + cr(Any):The requested background color. Used only if bSysColor is FALSE.MFC References + +Returns: + + Any:CRichEditCtrl::SetEventMask +Return ValueThe return value is the previous background color. + + + """ + pass + + + def SetDefaultCharFormat(self,charFormat:'Any') -> 'None': + """ + None + +Args: + + charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References + +Returns: + + None + + """ + pass + + + def SetEventMask(self,eventMask:'Any') -> 'Any': + """ + Sets the event motification mask. + +Args: + + eventMask(Any):The new event mask. Must be one of the win32con.ENM_* flags.MFC References + +Returns: + + Any:CRichEditCtrl::SetEventMask +Return ValueThe return value is the previous event mask. + + + """ + pass + + + def SetSelectionCharFormat(self,charFormat:'Any') -> 'None': + """ + Sets the current selections character formatting attributes. + +Args: + + charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References + +Returns: + + None + + """ + pass + + + def SetModify(self,modified:'Any'=1) -> 'None': + """ + Sets the modified flag for this control + +Args: + + modified(Any):Indicates the new value for the modified flag.MFC References + +Returns: + + None + + """ + pass + + + def SetOptions(self,op:'Any',flags:'Any') -> 'None': + """ + Sets options for the control. + +Args: + + op(Any):Indicates the operation. Must be one of the win32con.ECOOP_* flags. + flags(Any):Indicates the options. Must be one a combination of win32con.ECO_* flags.MFC References + +Returns: + + None + + """ + pass + + + def SetParaFormat(self,paraFormat:'Any') -> 'Any': + """ + Sets the paragraph formatting + +Args: + + paraFormat(Any):A charformat tuple. See win32ui::PARAFORMAT tuple for details.MFC References + +Returns: + + Any:CRichEditCtrl::SetParaFormat +Return ValueThis function seems to return occasionally return failure, but + +the formatting is applied. Therefore an exception is not raised on failure, + +but the BOOL return code is passed back. + + + """ + pass + + + def SetReadOnly(self,bReadOnly:'Any'=1) -> 'None': + """ + Sets or clears the read-only status of the listbox. + +Args: + + bReadOnly(Any):The read-only state to set.MFC References + +Returns: + + None + + """ + pass + + + def SetSel(self,start:'Any',end:'Any',arg:'Any') -> 'None': + """ + Sets the selection in the edit control. + +Args: + + start(Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. + end(Any):Specifies the ending position.Alternative Parameters + arg(Any):As for normal start, end args.MFC References + +Returns: + + None + + """ + pass + + + def SetSelAndCharFormat(self,charFormat:'Any') -> 'None': + """ + Sets the selection and char format. + +Args: + + charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.CommentsHighly optimised for speed for color editors.MFC References + +Returns: + + None + + """ + pass + + + def SetTargetDevice(self,dc:'Any',lineWidth:'Any') -> 'None': + """ + Sets the target device for the control + +Args: + + dc(Any):The new DC - may be None + lineWidth(Any):Line width to use for formatting.MFC References + +Returns: + + None + + """ + pass + + + def StreamIn(self,_format:'Any',method:'Any') -> 'Tuple[Any, Any]': + """ + Invokes a callback to stream data into the control. + +Args: + + _format(Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) + method(Any):A callable object (eg, a method or function) This method is called with a single integer param, which is the maximum number of bytes to fetch. The method should return a zero length string, or None to finish the operation, and a string otherwise.MFC References + +Returns: + + Tuple[Any, Any]:CRichEditCtrl::StreamIn +Return ValueThe return value is a tuple of (no bytes written, error code) + + + """ + pass + + + def StreamOut(self,_format:'Any',method:'Any') -> 'Tuple[Any, Any]': + """ + Invokes a callback to stream data into the control. + +Args: + + _format(Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) and may also combine SFF_SELECTION. + method(Any):A callable object (eg, a method or function) This method is called with a string parameter. It should return an integer, zero to abort, non zero otherwise.MFC References + +Returns: + + Tuple[Any, Any]:CRichEditCtrl::StreamOut +Return ValueThe return value is a tuple of (no bytes written, error code) + + + """ + pass + + +class PyCRichEditDoc(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCloseDocument(self,) -> 'None': + """ + Call the MFC OnCloseDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCRichEditDocTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoCreateRichEditDoc(self,fileName:'str'=None) -> 'Any': + """ + Creates an underlying document object. + +Args: + + fileName(str):The name of the file to load. + +Returns: + + Any + + """ + pass + + +class PyCRichEditView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetRichEditCtrl(self,) -> 'Any': + """ + Returns the underlying rich edit control object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetWordWrap(self,wordWrap:'Any') -> 'Any': + """ + Sets the wordwrap state for the control. + +Args: + + wordWrap(Any):The new word-wrap state.MFC References + +Returns: + + Any + + """ + pass + + + def WrapChanged(self,) -> 'Any': + """ + Calls the underlying WrapChanged method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SaveTextFile(self,FileName:'Any') -> 'Any': + """ + Saves the contents of the control as a test file + +Args: + + FileName(Any):Name of file to saveCommentsTheere is no equivilent MFC method. This is implemented in this module for performance reasons. + +Returns: + + Any + + """ + pass + + +class PyCScrollView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDeviceScrollPosition(self,) -> 'Tuple[Any, Any]': + """ + Returns the positon of the scroll bars in device units. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetDC(self,) -> 'Any': + """ + Gets the view's current DC. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetScrollPosition(self,) -> 'Tuple[Any, Any]': + """ + Returns the current position of the scroll bars (in logical units). + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetTotalSize(self,) -> 'Tuple[Any, Any]': + """ + Returns the total size of the view in logical units. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + + def ResizeParentToFit(self,bShrinkOnly:'Any'=1) -> 'Any': + """ + Lets the size of a view dictate the size of its frame window. + +Args: + + bShrinkOnly(Any):The kind of resizing to perform. The default value, TRUE, shrinks the frame window if appropriate.CommentsThis is recommended only for views in MDI child frame windows. Use ResizeParentToFit in the OnInitialUpdate handler function of your View class. You must ensure the parent's PyCFrameWnd::RecalcLayout is called before using this method. + +Returns: + + Any + + """ + pass + + + def SetScaleToFitSize(self,size:'Tuple[Any, Any]') -> 'None': + """ + Scales the viewport size to the current window size automatically. + +Args: + + size(Tuple[Any, Any]):The horizontal and vertical sizes to which the view is to be scaled. The scroll view's size is measured in logical units. + +Returns: + + None + + """ + pass + + + def ScrollToPosition(self,position:'Tuple[Any, Any]') -> 'None': + """ + Scrolls to a given point in the view. + +Args: + + position(Tuple[Any, Any]):The position to scroll to. + +Returns: + + None + + """ + pass + + + def SetScrollSizes(self,mapMode:'Any',sizeTotal:'Tuple[Any, Any]',arg:'Tuple[Any, Any]',arg1:'Tuple[Any, Any]') -> 'None': + """ + Sets the sizes of the scroll bars + +Args: + + mapMode(Any):The mapping mode for this view. + sizeTotal(Tuple[Any, Any]):The total size of the view. Sizes are in logical units. Both x and y must be greater than zero. + arg(Tuple[Any, Any]):The number of untils to scroll in response to a page-down command. + arg1(Tuple[Any, Any]):The number of untils to scroll in response to a line-down command. + +Returns: + + None + + """ + pass + + + def UpdateBars(self,) -> 'None': + """ + Update the scroll bars state + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCSliderCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(Any):The style for the control. + rect(Tuple[Any, Any, Any, Any]):The size and position of the control. + parent(Any):The parent window of the control. Usually a PyCDialog. + _id(Any):The control's ID. + +Returns: + + None + + """ + pass + + + def GetLineSize(self,) -> 'Any': + """ + Get the control's position + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetLineSize(self,nLineSize:'Any'=1) -> 'Any': + """ + Set the control's line size. Returns the previous line size. + +Args: + + nLineSize(Any):New line size of the Slider bar control + +Returns: + + Any + + """ + pass + + + def GetPageSize(self,) -> 'Any': + """ + Get the control's position + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetPageSize(self,nPageSize:'Any'=1) -> 'Any': + """ + Set the control's page size Returns the previous page size. + +Args: + + nPageSize(Any):New page size of the Slider bar control. + +Returns: + + Any + + """ + pass + + + def GetRangeMax(self,) -> 'Any': + """ + Get the control's Maximum + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRangeMin(self,) -> 'Any': + """ + Get the control's Minimum + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRange(self,) -> 'Any': + """ + Get the control's min and max + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetRange(self,nRangeMin:'Any'=1,nRangeMax:'Any'=1,bRedraw:'Any'=1) -> 'Any': + """ + Set the control's min and max + +Args: + + nRangeMin(Any):New minimum of the Slider bar control. + nRangeMax(Any):New maximum of the Slider bar control. + bRedraw(Any):Should slider be redrawn? + +Returns: + + Any + + """ + pass + + + def GetSelection(self,) -> 'Any': + """ + Get the control's selection start and end positions + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetSelection(self,nRangeMin:'Any'=1,nRangeMax:'Any'=1) -> 'Any': + """ + Set the control's selection start and end positions + +Args: + + nRangeMin(Any):New start of the Slider's selection. + nRangeMax(Any):New end of the Slider's selection. + +Returns: + + Any + + """ + pass + + + def GetChannelRect(self,) -> 'Any': + """ + Get the control's channel rectangle + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetThumbRect(self,) -> 'Any': + """ + Get the control's thumb rectangle + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPos(self,) -> 'Any': + """ + Get the control's position + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetPos(self,nPos:'Any'=1) -> 'Any': + """ + Set the control's position + +Args: + + nPos(Any):New position of the Slider bar control. + +Returns: + + Any + + """ + pass + + + def GetNumTics(self,) -> 'Any': + """ + Get number of tics in the slider + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTicArray(self,) -> 'Any': + """ + Get a tuple of slider tic positions + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTic(self,nTic:'Any'=1) -> 'Any': + """ + Get the position of the specified tic number + +Args: + + nTic(Any):Zero based index of the tic mark + +Returns: + + Any + + """ + pass + + + def GetTicPos(self,nTic:'Any'=1) -> 'Any': + """ + Get the position of the specified tic number in client coordinates + +Args: + + nTic(Any):Zero based index of the tic mark + +Returns: + + Any + + """ + pass + + + def SetTic(self,nTic:'Any'=1) -> 'Any': + """ + Set a tic at the specified position + +Args: + + nTic(Any):Position of the desired tic mark + +Returns: + + Any + + """ + pass + + + def SetTicFreq(self,nFreq:'Any'=1) -> 'Any': + """ + Set the tic frequency + +Args: + + nFreq(Any):Frequency of tic marks + +Returns: + + Any + + """ + pass + + + def ClearSel(self,bRedraw:'Any'=1) -> 'Any': + """ + Clear the selection + +Args: + + bRedraw(Any):Redraw the control? + +Returns: + + Any + + """ + pass + + + def VerifyPos(self,) -> 'Any': + """ + Verify the position is between configured min and max + +Args: + + + +Returns: + + Any + + """ + pass + + + def ClearTics(self,bRedraw:'Any'=1) -> 'Any': + """ + Clear the control's tic marks + +Args: + + bRedraw(Any):Redraw the control? + +Returns: + + Any + + """ + pass + + +class PyCSpinButtonCtrl(object): + """A windows spin button control. Encapsulates an MFC CSpinButtonCtrl object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPos(self,) -> 'Any': + """ + Obtains the current position for a spin button control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetPos(self,pos:'Any') -> 'Any': + """ + Sets the current position for a spin button control. + +Args: + + pos(Any):The new position.Return ValueThe result is the previous position. + +Returns: + + Any:The new position.Return ValueThe result is the previous position. + + + """ + pass + + + def SetRange(self,) -> 'Any': + """ + Sets the upper and lower limits (range) for a spin button control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetRange32(self,) -> 'Any': + """ + Sets the 32 bit upper and lower limits (range) for a spin button control. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCSplitterWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPane(self,row:'Any',col:'Any') -> 'Any': + """ + None + +Args: + + row(Any):The row in the splitter. + col(Any):The column in the splitter.CommentsTheoretically the return value can be a PyCWnd object, but currently it will always be a PyCView or derived object. + +Returns: + + Any + + """ + pass + + + def CreateView(self,view:'Any',row:'Any',col:'Any',arg:'Tuple[Any, Any]') -> 'None': + """ + Creates a view in a splitter window + +Args: + + view(Any):The view to place in the splitter pane. + row(Any):The row in the splitter to place the view. + col(Any):The column in the splitter to place the view. + arg(Tuple[Any, Any]):The initial size of the new view.MFC References + +Returns: + + None + + """ + pass + + + def CreateStatic(self,parent:'Any',rows:'Any',cols:'Any',style:'Any',_id:'Any') -> 'None': + """ + Creates a static splitter window. + +Args: + + parent(Any):The parent window. + rows(Any):The number of rows in the splitter. + cols(Any):The number of columns in the splitter. + style(Any):Specifies the window style + _id(Any):The child window ID of the window. The ID can be AFX_IDW_PANE_FIRST unless the splitter window is nested inside another splitter window.CommentsA static splitter window is a splitter where the number of panes are fixed at window creation time. Currently this is the only splitter window supported by win32ui.MFC References + +Returns: + + None + + """ + pass + + + def SetColumnInfo(self,column:'Any',ideal:'Any',_min:'Any') -> 'None': + """ + Sets a new minimum height and ideal height for a column + +Args: + + column(Any):The column in the splitter. + ideal(Any):Specifies an ideal height for the splitter window column in pixels. + _min(Any):Specifies a minimum height for the splitter window column in pixels. + +Returns: + + None + + """ + pass + + + def SetRowInfo(self,row:'Any',ideal:'Any',_min:'Any') -> 'None': + """ + Sets a new minimum height and ideal height for a row. + +Args: + + row(Any):The row in the splitter. + ideal(Any):Specifies an ideal height for the splitter window row in pixels. + _min(Any):Specifies a minimum height for the splitter window row in pixels. + +Returns: + + None + + """ + pass + + + def IdFromRowCol(self,row:'Any',col:'Any') -> 'None': + """ + Gets the child window ID for the specified child. + +Args: + + row(Any):The row in the splitter. + col(Any):The col in the splitter + +Returns: + + None + + """ + pass + + + def DoKeyboardSplit(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCStatusBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPaneInfo(self,index:'Any') -> 'Tuple[Any, Any, Any]': + """ + Returns the id, style, and width of the indicator pane at the + +location specified by index. + +Args: + + index(Any):Index of the pane whose information is to be retrieved.MFC References + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetStatusBarCtrl(self,) -> 'Any': + """ + Gets the statusbar control object for the statusbar. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetIndicators(self,indicators:'Any') -> 'None': + """ + Sets each indicator's ID. + +Args: + + indicators(Any):A tuple containing the ID's of the indicators. + +Returns: + + None + + """ + pass + + + def SetPaneInfo(self,index:'Any',_id:'Any',style:'Any',width:'Any') -> 'None': + """ + Sets the specified indicator pane to a new ID, style, and width. + +Args: + + index(Any):Index of the indicator pane whose style is to be set. + _id(Any):New ID for the indicator pane. + style(Any):New style for the indicator pane.The following indicator styles are supported:afxres.SBPS_NOBORDERS - No 3-D border around the pane.afxres.SBPS_POPOUT - Reverse border so that text "pops out."afxres.SBPS_DISABLED - Do not draw text.afxres.SBPS_STRETCH - Stretch pane to fill unused space. Only one pane per status bar can have this style.afxres.SBPS_NORMAL - No stretch, borders, or pop-out. + width(Any):New width for the indicator pane.MFC References + +Returns: + + None + + """ + pass + + +class PyCStatusBarCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(Any):The style for the control. + rect(Tuple[Any, Any, Any, Any]):The size and position of the control. + parent(Any):The parent window of the control. Usually a PyCDialog. + _id(Any):The control's ID. + +Returns: + + None + + """ + pass + + + def GetBorders(self,) -> 'Tuple[Any, Any, Any]': + """ + Retrieve the status bar control's current widths of + +the horizontal and vertical borders and of the space between rectangles. + +Args: + + + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetParts(self,nParts:'Any') -> 'Any': + """ + Retrieve coordinates of the parts in a status bar control. + +Args: + + nParts(Any):The number of coordinates to retrieveCommentsThis function, as designed in MFC, returns both the *number* of parts, and, through an OUT parameter, an array of ints giving the coordinates of the parts. There is also an IN parameter saying how many coordinates to give back. Here, we're explicitly changing the semantics a bit.GetParts() -> Tuple of all coordinates GetParts(n) -> Tuple of the first n coordinates (or all coordinates, if fewer than n)So, in Python, you can't simultaneously find out how many coordinates there are, and retrieve a subset of them. In a reasonable universe, there would have been GetParts() -> int, and GetCoords() -> List. This means that I need to call the MFC method twice; once to find out how many there are, and another time to get them. + +Returns: + + Any + + """ + pass + + + def GetRect(self,nPane:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the bounding rectangle of a part in a status + +bar control. + +Args: + + nPane(Any):Zero-based index of the part whose bounding rectangle is to be retrieved. + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetText(self,nPane:'Any') -> 'Any': + """ + Retrieve the text from the given part of a status bar control. + +Args: + + nPane(Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetTextAttr(self,nPane:'Any') -> 'Any': + """ + Retrieve the attributes of the text in the given part of a status bar + +control. + +Args: + + nPane(Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetTextLength(self,nPane:'Any') -> 'Any': + """ + Retrieve the length the text in the given part of a status bar control. + +Args: + + nPane(Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def SetMinHeight(self,nHeight:'Any') -> 'None': + """ + Set the minimum height of a status bar control's drawing area. + +Args: + + nHeight(Any):Minimum height + +Returns: + + None + + """ + pass + + + def SetParts(self,coord:'Any') -> 'None': + """ + Sets the number of parts in a status bar control and the coordinate of the right + +edge of each part. + +Args: + + coord(Any):Coordinates of each part + +Returns: + + None + + """ + pass + + + def SetText(self,text:'str',nPane:'Any',nType:'Any') -> 'None': + """ + Set the text in the given part of a status bar control. + +Args: + + text(str):The text to display + nPane(Any):Zero-based index of the part to set. + nType(Any):Type of drawing operation.CommentsThe drawing type can be set to one of:~ 0 - The text is drawn with a border to appear lower than the plane of the status bar.~ win32con.SBT_NOBORDERS - The text is drawn without borders.~ win32con.SBT_OWNERDRAW - The text is drawn by the parent window.~ win32con.SBT_POPOUT - The text is drawn with a border to appear higher than the plane of the status bar. + +Returns: + + None + + """ + pass + + + def SetTipText(self,nPane:'Any',text:'str') -> 'None': + """ + Sets the tooltip text for a pane in a status bar. The status bar must have + +been created with the afxres.SBT_TOOLTIPS control style to enable ToolTips. + +Args: + + nPane(Any):The zero-based index of status bar pane to receive the tooltip text. + text(str):The string containing the tooltip text.CommentsPay attention, this tooltip text is ONLY displayed in two situations: 1. When the corresponding pane in the status bar contains only an icon. 2. When the corresponding pane in the status bar contains text that is truncated due to the size of the pane. To make the tooltip appear even if the text is not truncated, you could add additional spaces to the end of the pane text.MFC References + +Returns: + + None + + """ + pass + + +class PyCTabCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCurSel(self,) -> 'Any': + """ + Gets the current selection of a tab control. + +Args: + + + +Returns: + + Any:PyCTabCtrl.GetCurSel + +int = GetCurSel()Gets the current selection of a tab control. +Return ValueThe zero-based index of the currently selected item, or -1 if no selection. + + + """ + pass + + + def GetItemCountl(self,) -> 'Any': + """ + Returns the number of tabs in the control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetCurSel(self,index:'Any') -> 'Any': + """ + Sets the current selection of a tab control. + +Args: + + index(Any):The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. + +Returns: + + Any:The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. + + + """ + pass + + +class PyCToolBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetButtonStyle(self,index:'Any') -> 'None': + """ + Retrieves the style for a button. + +Args: + + index(Any):Index of the item whose style is to be retrieved. + +Returns: + + None + + """ + pass + + + def GetButtonText(self,index:'Any') -> 'str': + """ + Gets the text for a button. + +Args: + + index(Any):Index of the item whose text is to be retrieved. + +Returns: + + str + + """ + pass + + + def GetItemID(self,index:'Any') -> 'None': + """ + Returns the command ID of a button or separator at the given index. + +Args: + + index(Any):Index of the item whose ID is to be retrieved. + +Returns: + + None + + """ + pass + + + def SetButtonInfo(self,index:'Any',ID:'Any',style:'Any',imageIx:'Any') -> 'None': + """ + Sets the button's command ID, style, and image number. + +Args: + + index(Any):Index of the button or separator whose information is to be set. + ID(Any):The value to which the button's command ID is set. + style(Any):The new button style + imageIx(Any):New index for the button's image within the bitmap + +Returns: + + None + + """ + pass + + + def GetToolBarCtrl(self,) -> 'Any': + """ + Gets the toolbar control object for the toolbar + +Args: + + + +Returns: + + Any + + """ + pass + + + def LoadBitmap(self,_id:'PyResourceId') -> 'None': + """ + Loads the bitmap containing bitmap-button images. + +Args: + + _id(PyResourceId):Name or id of the resource that contains the bitmap.CommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. + +Returns: + + None + + """ + pass + + + def LoadToolBar(self,_id:'PyResourceId') -> 'None': + """ + Loads a toolbar from a toolbar resource. + +Args: + + _id(PyResourceId):Name or resource id of the resourceCommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. + +Returns: + + None + + """ + pass + + + def SetBarStyle(self,style:'Any') -> 'None': + """ + Sets the toolbar part of style + +Args: + + style(Any):The toolbar style to set. + +Returns: + + None + + """ + pass + + + def SetBitmap(self,hBitmap:'Any') -> 'None': + """ + Sets a bitmapped image. + +Args: + + hBitmap(Any):The handle to a bitmap resource.CommentsCall this method to set the bitmap image for the toolbar. For example, call SetBitmap to change the bitmapped image after the user takes an action on a document that changes the action of a button. + +Returns: + + None + + """ + pass + + + def SetButtons(self,buttons:'Any',numButtons:'Any') -> 'None': + """ + Sets button styles and an index of button images within the bitmap. + +Args: + + buttons(Any):A tuple containing the ID's of the buttons.Alternative Parameters + numButtons(Any):The number of buttons to pre-allocate. If this option is used, then PyCToolBar::PySetButtonInfo must be used. + +Returns: + + None + + """ + pass + + + def SetButtonStyle(self,index:'Any',style:'Any') -> 'None': + """ + Sets the style for a button. + +Args: + + index(Any):Index of the item whose style is to be set + style(Any):The new style + +Returns: + + None + + """ + pass + + + def SetHeight(self,height:'Any') -> 'None': + """ + Sets the height of the toolbar. + +Args: + + height(Any):The height in pixels of the toolbar. + +Returns: + + None + + """ + pass + + + def SetSizes(self,sizeButton:'Tuple[Any, Any]',sizeButton1:'Tuple[Any, Any]') -> 'None': + """ + Sets the size of each button. + +Args: + + sizeButton(Tuple[Any, Any]):The size of each button. + sizeButton1(Tuple[Any, Any]):The size of each bitmap. + +Returns: + + None + + """ + pass + + +class PyCToolBarCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddBitmap(self,numButtons:'Any',bitmap:'Any') -> 'Any': + """ + Add one or more button images to the list of button images + +Args: + + numButtons(Any):Number of button images in the bitmap. + bitmap(Any):Bitmap containing button or buttons to be addedMFC References + +Returns: + + Any + + """ + pass + + + def AddButtons(self,) -> 'Any': + """ + Add one or more buttons to the toolbar + +Args: + + + +Returns: + + Any + + """ + pass + + + def AddStrings(self,strings:'Any') -> 'Any': + """ + Add one or more strings to the toolbar + +Args: + + strings(Any):Strings to add. Can give more than one string. + +Returns: + + Any + + """ + pass + + + def AutoSize(self,) -> 'None': + """ + Resize the entire toolbar control + +Args: + + + +Returns: + + None + + """ + pass + + + def CheckButton(self,nID:'Any',bCheck:'Any'=1) -> 'Any': + """ + Check or clear a given button in a toolbar control + +Args: + + nID(Any):Command identifier of the button to check or clear. + bCheck(Any):1 to check, 0 to clear the buttonMFC References + +Returns: + + Any + + """ + pass + + + def CommandToIndex(self,nID:'Any') -> 'Any': + """ + Retrieve the zero-based index for the button associated with the + +specified command identifier. + +Args: + + nID(Any):Command identifier of the button you want to find.MFC References + +Returns: + + Any + + """ + pass + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the window for a new toolbar object + +Args: + + style(Any):The style for the button. Use any of the win32con.BS_* constants. + rect(Tuple[Any, Any, Any, Any]):The size and position of the button. + parent(Any):The parent window of the button. Usually a PyCDialog. + _id(Any):The buttons control ID.MFC References + +Returns: + + None + + """ + pass + + + def Customize(self,) -> 'None': + """ + Display the Customize Toolbar dialog box. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteButton(self,nID:'Any') -> 'None': + """ + Delete a button from the toolbar control. + +Args: + + nID(Any):ID of the button to delete.MFC References + +Returns: + + None + + """ + pass + + + def EnableButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': + """ + Enable or disable a toolbar control button. + +Args: + + nID(Any):ID of the button to enable or disable. + bEnable(Any):1 to enable, 0 to disableMFC References + +Returns: + + None + + """ + pass + + + def GetBitmapFlags(self,) -> 'Any': + """ + retrieve the bitmap flags from the toolbar. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetButton(self,nID:'Any') -> 'Any': + """ + Retrieve information about the specified button in a + +toolbar control. + +Args: + + nID(Any):ID of the button to retrieve.MFC References + +Returns: + + Any + + """ + pass + + + def GetButtonCount(self,) -> 'Any': + """ + Retrieve a count of the buttons currently in the toolbar control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemRect(self,nID:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieve the bounding rectangle of a button in a + +toolbar control. + +Args: + + nID(Any):ID of the button.MFC References + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetRows(self,) -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieve the number of rows of buttons currently displayed + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def HideButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': + """ + Hide or show the specified button in a toolbar control. + +Args: + + nID(Any):ID of the button to hide. + bEnable(Any):1 to hide, 0 to show.MFC References + +Returns: + + None + + """ + pass + + + def Indeterminate(self,nID:'Any',bEnable:'Any'=1) -> 'None': + """ + Mark or unmark the specified button as indeterminate + +Args: + + nID(Any):ID of the button to mark. + bEnable(Any):1 to hide, 0 to show.MFC References + +Returns: + + None + + """ + pass + + + def InsertButton(self,nID:'Any',button:'Any') -> 'Any': + """ + Insert a button in a toolbar control. + +Args: + + nID(Any):Zero-based index of a button. This function inserts the new button to the left of this button. + button(Any):Bitmap containing button to be insertedCommentsThe image and/or string whose index you provide must have previously been added to the toolbar control's list using PyCToolBarCtrl::AddBitmap, PyCToolBarCtrl::AddString, and/or PyCToolBarCtrl::AddStrings.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonChecked(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is checked. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonEnabled(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is enabled. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonHidden(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is hidden. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonIndeterminate(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is + +indeterminate. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonPressed(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is pressed. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def PressButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': + """ + Mark or unmark the specified button as pressed. + +Args: + + nID(Any):ID of the button to mark. + bEnable(Any):1 to mark, 0 to unmark.MFC References + +Returns: + + None + + """ + pass + + + def SetBitmapSize(self,width1:'Any',height1:'Any',width:'Any'=16,height:'Any'=15) -> 'None': + """ + Set the size of the actual bitmapped images to be added to a toolbar control. + +Args: + + width1(Any):Width of bitmap images. + height1(Any):Height of bitmap images.MFC References + width(Any):Width of bitmap images. + height(Any):Height of bitmap images.Alternative Parameters + +Returns: + + None + + """ + pass + + + def SetButtonSize(self,width1:'Any',height1:'Any',width:'Any'=16,height:'Any'=15) -> 'None': + """ + Set the size of the buttons to be added to a toolbar control. + +Args: + + width1(Any):Width of bitmap images. + height1(Any):Height of bitmap images.MFC References + width(Any):Width of buttons + height(Any):Height of buttonsAlternative Parameters + +Returns: + + None + + """ + pass + + + def SetCmdID(self,nIndex:'Any',nID:'Any') -> 'None': + """ + Set the command identifier which will be sent to the owner window when the + +specified button is pressed. + +Args: + + nIndex(Any):The zero-based index of the button whose command ID is to be set. + nID(Any):The command ID to set the selected button to.MFC References + +Returns: + + None + + """ + pass + + + def SetRows(self,nRows:'Any',bLarger:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Ask the toolbar control to resize itself to the requested + +number of rows. + +Args: + + nRows(Any):Requested number of rows. + bLarger(Any):Tells whether to use more rows or fewer rows if the toolbar cannot be resized to the requested number of rows.MFC References + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + +class PyCToolTipCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'Any',style:'Any') -> 'None': + """ + Creates the actual control. + +Args: + + parent(Any):The parent window of the control. + style(Any):The style for the control. + +Returns: + + None + + """ + pass + + + def UpdateTipText(self,text:'str',wnd:'Any',_id:'Any') -> 'None': + """ + Update the tool tip text for a control's tools + +Args: + + text(str):The text for the tool. + wnd(Any):The window of the tool. + _id(Any):The id of the tool + +Returns: + + None + + """ + pass + + + def AddTool(self,wnd:'Any',text:'str',_id:'Any',rect:'Tuple[Any, Any, Any, Any]'=None) -> 'None': + """ + Adds a tool to tooltip control. + +Args: + + wnd(Any):The window of the tool. + text(str):The text for the tool. + _id(Any):The id of the tool + rect(Tuple[Any, Any, Any, Any]):The default rectangle + +Returns: + + None + + """ + pass + + + def SetMaxTipWidth(self,width:'Any') -> 'Any': + """ + None + +Args: + + width(Any):The new width + +Returns: + + Any + + """ + pass + + +class PyCTreeCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',PyCWnd:'Any',_id:'Any') -> 'None': + """ + Creates the actual window for the object. + +Args: + + style(Any):The window style + rect(Tuple[Any, Any, Any, Any]):The default rectangle + PyCWnd(Any):The parent window + _id(Any):The control IDMFC References + +Returns: + + None + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Retrieves the number of tree items associated with a tree view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetIndent(self,) -> 'Any': + """ + Retrieves the offset (in pixels) of a tree view item from its parent. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetIndent(self,indent:'Any') -> 'None': + """ + Sets the offset (in pixels) of a tree view item from its parent. + +Args: + + indent(Any):The new indent. + +Returns: + + None + + """ + pass + + + def GetImageList(self,nImageList:'Any') -> 'Any': + """ + Retrieves the current image list. + +Args: + + nImageList(Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. + +Returns: + + Any + + """ + pass + + + def SetImageList(self,imageList:'Any',imageType:'Any') -> 'Any': + """ + Assigns an image list to a list view control. + +Args: + + imageList(Any):The Image List to use. + imageType(Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE + +Returns: + + Any + + """ + pass + + + def GetNextItem(self,item:'Any',code:'Any') -> 'Any': + """ + Retrieves the next item. + +Args: + + item(Any):The specified item + code(Any):Specifies the relationship of the item to fetch. + +Returns: + + Any + + """ + pass + + + def ItemHasChildren(self,item:'Any') -> 'Any': + """ + Returns nonzero if the specified item has child items. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetChildItem(self,item:'Any') -> 'Any': + """ + Retrieves the first child item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetNextSiblingItem(self,item:'Any') -> 'Any': + """ + Retrieves the next sibling of the specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetPrevSiblingItem(self,item:'Any') -> 'Any': + """ + Retrieves the previous sibling of the specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetParentItem(self,item:'Any') -> 'Any': + """ + Retrieves the parent item of the specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetFirstVisibleItem(self,) -> 'Any': + """ + Retrieves the first visible item of the tree view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNextVisibleItem(self,item:'Any') -> 'Any': + """ + Retrieves the next visible item of the specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetSelectedItem(self,) -> 'Any': + """ + Retrieves the currently selected tree view item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDropHilightItem(self,) -> 'Any': + """ + Retrieves the target of a drag-and-drop operation. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRootItem(self,) -> 'Any': + """ + Retrieves the root of the specified tree view item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetToolTips(self,) -> 'Any': + """ + Returns the tooltip control + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItem(self,item:'Any',arg:'Any') -> 'Any': + """ + Retrieves the details of an items attributes. + +Args: + + item(Any):The item whose attributes are to be retrieved. + arg(Any):The requested attributes. + +Returns: + + Any + + """ + pass + + + def SetItem(self,item:'Any') -> 'Any': + """ + Sets some of all of an items attributes. + +Args: + + item(Any):A tuple describing the new item. + +Returns: + + Any + + """ + pass + + + def GetItemState(self,item:'Any',stateMask:'Any') -> 'Tuple[Any, Any]': + """ + Retrieves the state and mask of an item. + +Args: + + item(Any):The specified item + stateMask(Any):The mask for the result. + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetItemState(self,item:'Any',state:'Any',stateMask:'Any') -> 'None': + """ + Sets the state of item. + +Args: + + item(Any):The specified item + state(Any):The new state + stateMask(Any):The mask for the new state + +Returns: + + None + + """ + pass + + + def GetItemImage(self,item:'Any') -> 'Tuple[Any, Any]': + """ + Retrieves the index of an items images. + +Args: + + item(Any):The specified item + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetItemImage(self,item:'Any',iImage:'Any',iSelectedImage:'Any') -> 'None': + """ + Sets the index of an items images. + +Args: + + item(Any):The specified item + iImage(Any):The offset of the image. + iSelectedImage(Any):The offset of the selected image. + +Returns: + + None + + """ + pass + + + def SetItemText(self,item:'Any',text:'str') -> 'Any': + """ + Changes the text of a list view item or subitem. + +Args: + + item(Any):The item whose text is to be retrieved. + text(str):String that contains the new item text. + +Returns: + + Any + + """ + pass + + + def GetItemText(self,item:'Any') -> 'Any': + """ + Retrieves the text of a list view item or subitem. + +Args: + + item(Any):The item whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetItemData(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def SetItemData(self,item:'Any',Data:'Any') -> 'Any': + """ + Sets the item's application-specific value. + +Args: + + item(Any):The item whose Data is to be set. + Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + Any + + """ + pass + + + def GetItemRect(self,item:'Any',bTextOnly:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the bounding rectangle of a tree view item. + +Args: + + item(Any):The item whose Data is to be set. + bTextOnly(Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the tree view control. + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetEditControl(self,) -> 'Any': + """ + Retrieves the handle of the edit control used to edit the specified + +tree view item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetVisibleCount(self,) -> 'Any': + """ + Retrieves the number of visible tree items associated with a tree view + +control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def InsertItem(self,hParent:'Any',hInsertAfter:'Any',item:'Any',mask:'Any',text:'Any',image:'Any',selectedImage:'Any',state:'Any',stateMask:'Any',lParam:'Any',parent:'Any',parent1:'Any',text1:'Any',image1:'Any',selectedImage1:'Any',parent2:'Any',insertAfter:'Any',text2:'Any',parent3:'Any',parent4:'Any') -> 'Any': + """ + Inserts an item into the list. + +Args: + + hParent(Any):The parent item. If commctrl.TVI_ROOT or 0, it is added to the root. + hInsertAfter(Any):The item to insert after. Can be an item or TVI_FIRST, TVI_LAST or TVI_SORT + item(Any):A tuple describing the new item.Alternative Parameters + mask(Any):Integer specifying which attributes to set + text(Any):The text of the item. + image(Any):The index of the image to use. + selectedImage(Any):The index of the items selected image. + state(Any):The initial state of the item. + stateMask(Any):Specifies which bits of the state are valid. + lParam(Any):A user defined object for the item. + parent(Any):The parent of the item. + parent1(Any):The parent of the item.Alternative Parameters + text1(Any):The text for the item. + image1(Any):The index of the image to use. + selectedImage1(Any):The index of the items selected image. + parent2(Any):The parent of the item. + insertAfter(Any):The item to insert the new item after, or TVI_FIRST, TVI_LAST or TVI_SORTAlternative Parameters + text2(Any):The text for the item. + parent3(Any):The parent of the item. + parent4(Any):The parent of the item. + +Returns: + + Any + + """ + pass + + + def DeleteItem(self,item:'Any') -> 'None': + """ + Deletes the specified item. + +Args: + + item(Any):The specified item + +Returns: + + None + + """ + pass + + + def DeleteAllItems(self,) -> 'Any': + """ + Deletes all items in the control + +Args: + + + +Returns: + + Any + + """ + pass + + + def Expand(self,item:'Any',code:'Any') -> 'None': + """ + Expands, or collapses, the child items of the specified tree view item. + +Args: + + item(Any):The specified item + code(Any):The action to take + +Returns: + + None + + """ + pass + + + def Select(self,item:'Any',code:'Any') -> 'None': + """ + Selects, scrolls into view, or redraws a specified tree view item. + +Args: + + item(Any):The specified item + code(Any):The action to take + +Returns: + + None + + """ + pass + + + def SelectItem(self,item:'Any') -> 'None': + """ + Selects a specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + None + + """ + pass + + + def SelectDropTarget(self,item:'Any') -> 'None': + """ + Redraws the tree item as the target of a drag-and-drop operation. + +Args: + + item(Any):The specified item + +Returns: + + None + + """ + pass + + + def SelectSetFirstVisible(self,item:'Any') -> 'None': + """ + Selects a specified tree view item as the first visible item. + +Args: + + item(Any):The specified item + +Returns: + + None + + """ + pass + + + def EditLabel(self,item:'Any') -> 'Any': + """ + Edits a specified tree view item in-place. + +Args: + + item(Any):The item to edit. + +Returns: + + Any + + """ + pass + + + def CreateDragImage(self,item:'Any') -> 'Any': + """ + Creates a dragging bitmap for the specified tree view item. + +Args: + + item(Any):The item to edit. + +Returns: + + Any + + """ + pass + + + def SortChildren(self,item:'Any') -> 'None': + """ + Sorts the children of a given parent item. + +Args: + + item(Any):The specified parent item + +Returns: + + None + + """ + pass + + + def EnsureVisible(self,item:'Any') -> 'Any': + """ + Ensures that a tree view item is visible in its tree view control. + +Args: + + item(Any):The item to edit. + +Returns: + + Any + + """ + pass + + + def HitTest(self,arg:'Any') -> 'Tuple[Any, Any]': + """ + Determines which tree view item, if any, is at a specified position. + +Args: + + arg(Any):The point to test.Return ValueThe result is a tuple of (flags, hItem). flags may be a combination of the following values:ValueDescriptioncommctrl.TVHT_ABOVEAbove the client area.commctrl.TVHT_BELOWBelow the client area.commctrl.TVHT_NOWHEREIn the client area, but below the last item.commctrl.TVHT_ONITEMOn the bitmap or label associated with an item.commctrl.TVHT_ONITEMBUTTONOn the button associated with an item.commctrl.TVHT_ONITEMICONOn the bitmap associated with an item.commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item.commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item.commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item.commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state.commctrl.TVHT_TOLEFTTo the left of the client area.commctrl.TVHT_TORIGHTTo the right of the client area. + +Returns: + + Tuple[Any, Any]:The point to test.Return ValueThe result is a tuple of (flags, hItem). + +flags may be a combination of the following values: + + + +Value + + +Description + + + +commctrl.TVHT_ABOVEAbove the client area. +commctrl.TVHT_BELOWBelow the client area. +commctrl.TVHT_NOWHEREIn the client area, but below the last item. +commctrl.TVHT_ONITEMOn the bitmap or label associated with an item. +commctrl.TVHT_ONITEMBUTTONOn the button associated with an item. +commctrl.TVHT_ONITEMICONOn the bitmap associated with an item. +commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item. +commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item. +commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item. +commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state. +commctrl.TVHT_TOLEFTTo the left of the client area. +commctrl.TVHT_TORIGHTTo the right of the client area. + + + """ + pass + + +class PyCTreeView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + Any + + """ + pass + + + def GetTreeCtrl(self,) -> 'Any': + """ + Returns the underlying tree control object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'Any',arg:'Any',arg1:'Any',arg2:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Creates the window for a view. + +Args: + + parent(Any):The parent window (usually a frame) + arg(Any):The child ID for the view + arg1(Any):The style for the view + arg2(Tuple[Any, Any, Any, Any]):The default position of the window. + +Returns: + + None + + """ + pass + + + def GetDocument(self,) -> 'Any': + """ + Returns the document for a view. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnActivateView(self,activate:'Any',activateView:'Any',DeactivateView:'Any') -> 'Any': + """ + Calls the underlying MFC OnActivateView method. + +Args: + + activate(Any):Indicates whether the view is being activated or deactivated. + activateView(Any):The view object that is being activated. + DeactivateView(Any):The view object that is being deactivated.See Also + +Returns: + + Any + + """ + pass + + + def OnInitialUpdate(self,) -> 'None': + """ + Calls the underlying MFC OnInitialUpdate method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnMouseActivate(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': + """ + Calls the base MFC OnMouseActivate function. + +Args: + + wnd(Any): + hittest(Any): + message(Any):See Also + +Returns: + + Any + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def OnFilePrint(self,) -> 'None': + """ + Calls the underlying MFC OnFilePrint method. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoPreparePrinting(self,) -> 'Any': + """ + Invoke the Print dialog box and create a printer device context. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnBeginPrinting(self,) -> 'None': + """ + Calls the underlying MFC OnBeginPrinting method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnEndPrinting(self,) -> 'None': + """ + Calls the underlying MFC OnEndPrinting method. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCWinApp(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddDocTemplate(self,template:'Any') -> 'None': + """ + Adds a template to the application list. + +Args: + + template(Any):The template to be added. + +Returns: + + None + + """ + pass + + + def FindOpenDocument(self,fileName:'str') -> 'Any': + """ + Returns an existing document with the specified file name. + +Args: + + fileName(str):The fully qualified filename to search for. + +Returns: + + Any + + """ + pass + + + def GetDocTemplateList(self,) -> 'List[Any]': + """ + Returns a list of all document templates. + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def InitDlgInstance(self,dialog:'Any') -> 'None': + """ + Calls critical InitInstance processing for a dialog based application. + +Args: + + dialog(Any):The dialog object to be used as the main window for the application. + +Returns: + + None + + """ + pass + + + def LoadCursor(self,cursorId:'PyResourceId') -> 'Any': + """ + Loads a cursor. + +Args: + + cursorId(PyResourceId):The resource id or name of the cursor to load. + +Returns: + + Any + + """ + pass + + + def LoadStandardCursor(self,cursorId:'PyResourceId') -> 'Any': + """ + Loads a standard cursor. + +Args: + + cursorId(PyResourceId):The resource ID or name of the cursor to load. + +Returns: + + Any + + """ + pass + + + def LoadOEMCursor(self,cursorId:'Any') -> 'Any': + """ + Loads an OEM cursor. + +Args: + + cursorId(Any):The ID of the cursor to load. + +Returns: + + Any + + """ + pass + + + def LoadIcon(self,idResource:'Any') -> 'Any': + """ + Loads an icon resource. + +Args: + + idResource(Any):The ID of the icon to load. + +Returns: + + Any + + """ + pass + + + def LoadStandardIcon(self,resourceName:'PyResourceId') -> 'Any': + """ + Loads an icon resource. + +Args: + + resourceName(PyResourceId):The resource name or id of the standard icon to load. + +Returns: + + Any + + """ + pass + + + def OpenDocumentFile(self,fileName:'str') -> 'None': + """ + Opens a document file by name. + +Args: + + fileName(str):The name of the document to open. + +Returns: + + None + + """ + pass + + + def OnFileNew(self,) -> 'None': + """ + Calls the underlying OnFileNew MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnFileOpen(self,) -> 'None': + """ + Calls the underlying OnFileOpen MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def RemoveDocTemplate(self,template:'Any') -> 'None': + """ + Removes a template to the application list. + +Args: + + template(Any):The template to be removed. Must have previously been added by PyCWinApp::AddDocTemplate.CommentsNote that MFC does not provide an equivilent function. + +Returns: + + None + + """ + pass + + + def Run(self,) -> 'Any': + """ + Starts the message pump. Advanced users only + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsInproc(self,) -> 'Any': + """ + Returns a flag to indicate if the created CWinApp was in the DLL, or an external + +EXE. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCWinThread(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateThread(self,) -> 'None': + """ + Creates the actual thread behind the thread object. + +Args: + + + +Returns: + + None + + """ + pass + + + def PumpIdle(self,) -> 'None': + """ + Pumps all idle messages. + +Args: + + + +Returns: + + None + + """ + pass + + + def PumpMessages(self,) -> 'None': + """ + Pumps all messages to the application until a WM_QUIT message is received. + +Args: + + + +Returns: + + None + + """ + pass + + + def Run(self,) -> 'Any': + """ + Starts the message pump. Advanced users only + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetMainFrame(self,mainFrame:'Any') -> 'None': + """ + Sets the threads main frame + +Args: + + mainFrame(Any):The applications main frame.CommentsYou can pass None to this function to reset the main frame. Should I free this? I dont think so! + +Returns: + + None + + """ + pass + + + def SetThreadPriority(self,priority:'Any') -> 'None': + """ + Sets the threads priority. Returns TRUE if successful. + +Args: + + priority(Any):The threads priority. + +Returns: + + None + + """ + pass + + +class PyCWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ActivateFrame(self,cmdShow:'Any') -> 'None': + """ + Searches upwards for a parent window which has + +a frame, and activates it. + +Args: + + cmdShow(Any):The param passed to CFrameWnd::ShowWindow. See also PyCWnd::ShowWindow.MFC References + +Returns: + + None + + """ + pass + + + def BringWindowToTop(self,) -> 'None': + """ + Brings the window to the top of a stack of overlapping windows. + +Args: + + + +Returns: + + None + + """ + pass + + + def BeginPaint(self,) -> 'Tuple[Any, Any]': + """ + Prepares a window for painting + +Args: + + + +Returns: + + Tuple[Any, Any]:PyCWnd.BeginPaint +PyCDC, PAINTSTRUCT + + = BeginPaint()Prepares a window for painting +Return ValueYou must pass the PAINTSTRUCT param to the PyCWnd::EndPaint method. + + + """ + pass + + + def CalcWindowRect(self,rect:'Tuple[Any, Any, Any, Any]',nAdjustType:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Computes the size of the window rectangle based on the desired client + +rectangle size. The resulting size can then be used as the initial + +size for the window object. + +Args: + + rect(Tuple[Any, Any, Any, Any]):The size to calculate from + nAdjustType(Any):An enumerated type used for in-place editing. It can have the following values: CWnd::adjustBorder = 0, which means that scrollbar sizes are ignored in calculation; and CWnd::adjustOutside = 1, which means that they are added into the final measurements of the rectangle.MFC References + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def CenterWindow(self,altwin:'Any'=None) -> 'None': + """ + Centers a window relative to its parent. + +Args: + + altwin(Any):alternate window relative to which it will be centered (other than the parent window).MFC References + +Returns: + + None + + """ + pass + + + def CheckRadioButton(self,idFirst:'Any',idLast:'Any',idCheck:'Any') -> 'None': + """ + Selects the specified radio button, and clears + +all others in the group. + +Args: + + idFirst(Any):The identifier of the first radio button in the group. + idLast(Any):The identifier of the last radio button in the group. + idCheck(Any):The identifier of the radio button to be checked.MFC References + +Returns: + + None + + """ + pass + + + def ChildWindowFromPoint(self,x:'Any',y:'Any',flag:'Any'=0) -> 'Any': + """ + Returns the child window that contains the point + +Args: + + x(Any):x coordinate of point + y(Any):y coordinate of point + flag(Any):Specifies which child windows to skipMFC References + +Returns: + + Any + + """ + pass + + + def ClientToScreen(self,point:'Tuple[Any, Any]',rect:'Any') -> 'Tuple[Any, Any, Any, Any, Any]': + """ + Converts the client coordinates of a given point on the display + +to screen coordinates. + +Args: + + point(Tuple[Any, Any]):The client coordinates.Alternative Parameters + rect(Any):The client coordinates.CommentsThe new screen coordinates are relative to the upper-left corner of the system display. This function assumes that the given pointis in client coordinates.MFC References + +Returns: + + Tuple[Any, Any, Any, Any, Any] + + """ + pass + + + def CreateWindow(self,classId:'str',windowName:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any',context:'Any'=None) -> 'None': + """ + Creates the actual window + +Args: + + classId(str):The class ID for the window, or None + windowName(str):The title for the window, or None + style(Any):The style for the window. + rect(Tuple[Any, Any, Any, Any]):The size and position of the window. + parent(Any):The parent window of the new window.. + _id(Any):The control's ID. + context(Any):A CreateContext object.MFC References + +Returns: + + None + + """ + pass + + + def CreateWindowEx(self,styleEx:'Any',classId:'str',windowName:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any',createStruct1:'Any',createStruct:'Any'=None) -> 'None': + """ + Creates the actual window using extended capabilities. + +Args: + + styleEx(Any):The extended style of the window being created. + classId(str):The class ID for the window. May not be None. + windowName(str):The title for the window, or None + style(Any):The style for the window. + rect(Tuple[Any, Any, Any, Any]):The size and position of the window. + parent(Any):The parent window of the new window.. + _id(Any):The control's ID. + createStruct1(Any):A tuple representing a CREATESTRUCT structure.MFC References + createStruct(Any):A CreateStruct object (ie, a tuple) + +Returns: + + None + + """ + pass + + + def DefWindowProc(self,message:'Any',idLast:'Any',idCheck:'Any') -> 'Any': + """ + Calls the default message handler. + +Args: + + message(Any):The Windows message. + idLast(Any):The lParam for the message. + idCheck(Any):The wParam for the message.MFC References + +Returns: + + Any + + """ + pass + + + def DestroyWindow(self,) -> 'None': + """ + Destroy the window attached to the object. + +Args: + + + +Returns: + + None + + """ + pass + + + def DlgDirList(self,defPath:'str',idListbox:'Any',idStaticPath:'Any',fileType:'Any') -> 'None': + """ + Fill a list box with a file or directory listing. + +Args: + + defPath(str):The file spec to fill the list box with + idListbox(Any):The Id of the listbox control to fill. + idStaticPath(Any):The Id of the static control used to display the current drive and directory. If idStaticPath is 0, it is assumed that no such control exists. + fileType(Any):Specifies the attributes of the files to be displayed. It can be any combination of DDL_READWRITE, DDL_READONLY, DDL_HIDDEN, DDL_SYSTEM, DDL_DIRECTORY, DDL_ARCHIVE, DDL_POSTMSGS, DDL_DRIVES or DDL_EXCLUSIVEMFC References + +Returns: + + None + + """ + pass + + + def DlgDirListComboBox(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def DlgDirSelect(self,idListbox:'Any') -> 'str': + """ + None + +Args: + + idListbox(Any):The Id of the listbox.MFC References + +Returns: + + str + + """ + pass + + + def DlgDirSelectComboBox(self,idListbox:'Any') -> 'str': + """ + None + +Args: + + idListbox(Any):The Id of the combobox.MFC References + +Returns: + + str + + """ + pass + + + def DragAcceptFiles(self,bAccept:'Any'=1) -> 'None': + """ + Indicates that the window and children supports files dropped from file manager + +Args: + + bAccept(Any):A flag indicating if files are accepted.MFC References + +Returns: + + None + + """ + pass + + + def DrawMenuBar(self,) -> 'None': + """ + Redraws the menu bar. Can be called if the menu changes. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnableWindow(self,bEnable:'Any'=1) -> 'Any': + """ + Enables or disables the window. Typically used for dialog controls. + +Args: + + bEnable(Any):A flag indicating if the window is to be enabled or disabled.MFC References + +Returns: + + Any:CWnd::EnableWindow +Return ValueReturns the state before the EnableWindow member function was called + + + """ + pass + + + def EndModalLoop(self,result:'Any') -> 'None': + """ + Ends a modal loop. + +Args: + + result(Any):The result as returned to RunModalLoop + +Returns: + + None + + """ + pass + + + def EndPaint(self,paintStruct:'Any') -> 'None': + """ + Ends painting + +Args: + + paintStruct(Any):The object returned from PyCWnd::BeginPaint + +Returns: + + None + + """ + pass + + + def GetCheckedRadioButton(self,idFirst:'Any',idLast:'Any') -> 'Any': + """ + Returns the ID of the checked radio button, or 0 if none is selected. + +Args: + + idFirst(Any):The Id of the first radio button in the group. + idLast(Any):The Id of the last radio button in the group.MFC References + +Returns: + + Any + + """ + pass + + + def GetClientRect(self,) -> 'Tuple[Any, Any, Any, Any]': + """ + Returns the client coordinates of the window. left and top + +will be zero. + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetDC(self,) -> 'Any': + """ + Gets the windows current DC object. + +Args: + + + +Returns: + + Any:PyCWnd.GetDC +PyCDC = GetDC()Gets the windows current DC object. +Return ValueThe result is a PyCDC, or a win32ui.error exception is raised. + + + """ + pass + + + def GetDCEx(self,) -> 'Any': + """ + Gets the windows current DC object with extended caps. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDlgCtrlID(self,) -> 'Any': + """ + Returns the ID of this child window. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDlgItem(self,idControl:'Any') -> 'Any': + """ + None + +Args: + + idControl(Any):The Id of the control to be retrieved.MFC References + +Returns: + + Any:CWnd::GetDlgItem +Return ValueThe result is a PyCWnd (or derived) object, or a win32ui.error exception is raised. + + + """ + pass + + + def GetDlgItemInt(self,idControl:'Any',bUnsigned:'Any'=1) -> 'Any': + """ + Returns the integer value of a child window or control with the specified ID. + +Args: + + idControl(Any):The Id of the control to be retrieved. + bUnsigned(Any):Should the function check for a minus signMFC References + +Returns: + + Any:CWnd::GetDlgItemInt +Return ValueIf the value can not be converted, a ValueError is raised. + + + """ + pass + + + def GetDlgItemText(self,idControl:'Any') -> 'str': + """ + Returns the text of child window or control with the specified ID. + +Args: + + idControl(Any):The Id of the control to be retrieved.MFC References + +Returns: + + str + + """ + pass + + + def GetLastActivePopup(self,) -> 'Any': + """ + Returns the last active popup Window, or the Window itself. + +Args: + + + +Returns: + + Any:CWnd::GetLastActivePopup +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetMenu(self,) -> 'Any': + """ + Returns the menu object for the window's menu. + +Args: + + + +Returns: + + Any:CWnd::GetMenu +Return ValueThe result is a PyMenu + + object, or an exception is thrown. + + + """ + pass + + + def GetParent(self,) -> 'Any': + """ + Returns the window's parent. + +Args: + + + +Returns: + + Any:CWnd::GetParent +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetParentFrame(self,) -> 'Any': + """ + Returns the window's frame. + +Args: + + + +Returns: + + Any:CWnd::GetParentFrame +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetSafeHwnd(self,) -> 'Any': + """ + Returns the HWnd of this window. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetScrollInfo(self,nBar:'Any',mask:'Any') -> 'Any': + """ + Returns information about a scroll bar + +Args: + + nBar(Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ + mask(Any):The mask for attributes to retrieve. + +Returns: + + Any + + """ + pass + + + def GetScrollPos(self,nBar:'Any') -> 'Any': + """ + Retrieves the current position of the scroll box of a scroll bar. + +Args: + + nBar(Any):The scroll bar to examine. Can be one of win32con.SB_VERT or win32con.SB_HORZ + +Returns: + + Any + + """ + pass + + + def GetStyle(self,) -> 'Any': + """ + Retrieves the window style + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetExStyle(self,) -> 'Any': + """ + Retrieves the window's extended style + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSystemMenu(self,) -> 'Any': + """ + Returns the menu object for the window's system menu. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTopLevelFrame(self,) -> 'Any': + """ + Returns the top-level frame of the window. + +Args: + + + +Returns: + + Any:CWnd::GetTopLevelFrame +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopLevelOwner(self,) -> 'Any': + """ + Returns the top-level owner of the window. + +Args: + + + +Returns: + + Any:CWnd::GetTopLevelOwner +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopLevelParent(self,) -> 'Any': + """ + Returns the top-level parent of the window. + +Args: + + + +Returns: + + Any:CWnd::GetTopLevelParent +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopWindow(self,) -> 'Any': + """ + Identifies the top-level child window in a linked list of child windows. + +Args: + + + +Returns: + + Any:CWnd::GetTopWindow +Return ValueIf no child windows exist, the value is None. + + + """ + pass + + + def GetWindow(self,_type:'Any') -> 'Any': + """ + Returns a window, with the specified relationship to this window. + +Args: + + _type(Any):Specifies the relationship between the current and the returned window. It can take one of the following values: GW_CHILD, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV or GW_OWNERMFC References + +Returns: + + Any:CWnd::GetWindow +Return ValueThe result is a PyCWnd or None if no Window can be found. + + + """ + pass + + + def GetWindowDC(self,) -> 'Any': + """ + Gets the windows current DC object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetWindowPlacement(self,) -> 'Any': + """ + Returns placement information about the current window. + +Args: + + + +Returns: + + Any:CWnd::GetWindowPlacement +Return ValueThe result is a tuple of + +(flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) + + + +Item + + +Description + + + +flagsOne of the WPF_* constants +showCmdCurrent state - one of the SW_* constants. +minposSpecifies the coordinates of the window's upper-left corner when the window is minimized. +maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. +normalposSpecifies the window's coordinates when the window is in the restored position. + + + """ + pass + + + def GetWindowRect(self,) -> 'Tuple[Any, Any, Any, Any]': + """ + Returns the screen coordinates of the windows upper left + +corner + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetWindowText(self,) -> 'str': + """ + Returns the windows text. + +Args: + + + +Returns: + + str + + """ + pass + + + def HideCaret(self,) -> 'None': + """ + Hides the caret + +Args: + + + +Returns: + + None + + """ + pass + + + def HookAllKeyStrokes(self,obHandler:'Any') -> 'None': + """ + Hook a key stroke handler for all key strokes. + +Args: + + obHandler(Any):The handler for the keystrokes. This must be a callable object.CommentsThe handler object passed will be called as the application receives WM_CHAR messages. The handler will be called with 2 arguments The handler object (as per all hook functions). The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise it will be consumed. Note: This handler will prevent any PyCWnd::HookKeyStroke hooks from being called. + +Returns: + + None + + """ + pass + + + def HookKeyStroke(self,obHandler:'Any',ch:'Any') -> 'Any': + """ + Hook a key stroke handler + +Args: + + obHandler(Any):The handler of the keystroke. This must be a callable object. + ch(Any):The ID for the keystroke to be handled. This may be an ascii code, or a virtual key code.CommentsThe handler object passed will be called as the application receives WM_CHAR message for the specified character code. The handler will be called with 2 arguments The handler object (as per all hook functions) The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise the keystroke will be consumed. Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place.Return ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID for the keystroke to be handled. + +This may be an ascii code, or a virtual key code.Comments + +The handler object passed will be called as the application receives WM_CHAR message for the specified + +character code. The handler will be called with 2 arguments + +The handler object (as per all hook functions) + +The keystroke being handled. + +If the handler returns TRUE, then the keystroke will be passed on to the + +default handler, otherwise the keystroke will be consumed. + +Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookMessage(self,obHandler:'Any',message:'Any') -> 'Any': + """ + Hook a message notification handler + +Args: + + obHandler(Any):The handler for the message notification. This must be a callable object. + message(Any):The ID of the message to be handled.CommentsThe handler object passed will be called as the application receives messages with the specified ID. Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. The handler will be called with 2 arguments The handler object (as per all hook functions). A tuple representing the message. The message tuple is in the following format:Items[0] int : hwndThe hwnd of the window.[1] int : messageThe message.[2] int : wParamThe wParam sent with the message.[3] int : lParamThe lParam sent with the message.[4] int : timeThe time the message was posted.[5] int, int : pointThe point where the mouse was when the message was posted.Return ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID of the message to be handled.Comments + +The handler object passed will be called as the application receives messages with the specified ID. + +Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. + +The handler will be called with 2 arguments + +The handler object (as per all hook functions). + +A tuple representing the message. + +The message tuple is in the following format: +Items[0] int : hwnd +The hwnd of the window. +[1] int : message +The message. +[2] int : wParam +The wParam sent with the message. +[3] int : lParam +The lParam sent with the message. +[4] int : time +The time the message was posted. +[5] int, int : point +The point where the mouse was when the message was posted. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def InvalidateRect(self,arg:'Tuple[Any, Any, Any, Any]',bErase:'Any'=1) -> 'None': + """ + Invalidates an area of a window. + +Args: + + arg(Tuple[Any, Any, Any, Any]):Rectangle to be updated. If default param is used, the entire window is invalidated. + bErase(Any):Specifies whether the background within the update region is to be erased.MFC References + +Returns: + + None + + """ + pass + + + def InvalidateRgn(self,region:'Any',bErase:'Any'=1) -> 'None': + """ + Invalidates a region of the window + +Args: + + region(Any):The region to erase. + bErase(Any):Indicates if the region should be erased. + +Returns: + + None + + """ + pass + + + def IsChild(self,obWnd:'Any') -> 'Any': + """ + Determines if a given window is a child of this window. + +Args: + + obWnd(Any):The window to be checkedMFC References + +Returns: + + Any + + """ + pass + + + def IsDlgButtonChecked(self,idCtl:'Any') -> 'Any': + """ + Determines if a dialog button is checked. + +Args: + + idCtl(Any):The ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsIconic(self,) -> 'Any': + """ + Determines if the window is currently displayed as an icon. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsZoomed(self,) -> 'Any': + """ + Determines if the window is currently maximised. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsWindow(self,) -> 'Any': + """ + determines whether the specified window handle identifies an existing window + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsWindowVisible(self,) -> 'Any': + """ + Determines if the window is currently visible. + +Args: + + + +Returns: + + Any + + """ + pass + + + def KillTimer(self,) -> 'Any': + """ + Kills a system timer + +Args: + + + +Returns: + + Any + + """ + pass + + + def LockWindowUpdate(self,) -> 'None': + """ + Disables drawing in the given window + +Args: + + + +Returns: + + None + + """ + pass + + + def MapWindowPoints(self,wnd:'Any',points:'List[Any]') -> 'None': + """ + Converts (maps) a set of points from the coordinate space of a window to the + +coordinate space of another window. + +Args: + + wnd(Any): + points(List[Any]):The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another window. + +Returns: + + None:The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another + +window. + + + """ + pass + + + def MouseCaptured(self,) -> 'Any': + """ + Returns 1 if the window has the mouse capture, else 0 + +Args: + + + +Returns: + + Any + + """ + pass + + + def MessageBox(self,message:'str',arg:'Any',title:'Union[Any, str]'=None) -> 'None': + """ + Display a message box. + +Args: + + message(str):The message to be displayed in the message box. + arg(Any):The style of the message box.MFC References + title(Union[Any, str]):The title for the message box. If None, the applications title will be used. + +Returns: + + None:CWnd::MessageBox +Return ValueAn integer identifying the button pressed to dismiss the dialog. + + + """ + pass + + + def ModifyStyle(self,remove:'Any',add:'Any',flags:'Any'=0) -> 'Any': + """ + Modifies the style of a window. + +Args: + + remove(Any):Specifies window styles to be removed during style modification. + add(Any):Specifies window styles to be added during style modification. + flags(Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyle calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleExMFC References + +Returns: + + Any:CWnd::ModifyStyle +Return ValueThe result is true if the style was changed, or false if the style + +is already the same as requested and no change was made. + + + """ + pass + + + def ModifyStyleEx(self,remove:'Any',add:'Any',flags:'Any'=0) -> 'Any': + """ + Modifies the extended style of a window. + +Args: + + remove(Any):Specifies extended window styles to be removed during style modification. + add(Any):Specifies extended extended window styles to be added during style modification. + flags(Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyleEx calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleMFC References + +Returns: + + Any:CWnd::ModifyStyleEx +Return ValueThe result is true if the style was changed, or false if the style + +is already the same as requested and no change was made. + + + """ + pass + + + def MoveWindow(self,rect:'Tuple[Any, Any, Any, Any]',bRepaint:'Any'=1) -> 'None': + """ + Move a window to a new location. + +Args: + + rect(Tuple[Any, Any, Any, Any]):The new location of the window, relative to the parent. + bRepaint(Any):Indicates if the window should be repainted after the move.MFC References + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'Any': + """ + Calls the default MFC OnClose handler. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnCtlColor(self,dc:'Any',control:'Any',_type:'Any') -> 'Any': + """ + Calls the default MFC OnCtlColor handler. + +Args: + + dc(Any):The dc + control(Any):The control that want's it's color changed + _type(Any):Type of controlSee Also + +Returns: + + Any + + """ + pass + + + def OnEraseBkgnd(self,dc:'Any') -> 'Any': + """ + Calls the default MFC OnEraseBkgnd handler. + +Args: + + dc(Any):The dcSee Also + +Returns: + + Any + + """ + pass + + + def OnNcHitTest(self,arg:'Tuple[Any, Any]') -> 'Any': + """ + Calls the base MFC OnNcHitTest function. + +Args: + + arg(Tuple[Any, Any]):The pointSee Also + +Returns: + + Any + + """ + pass + + + def OnPaint(self,) -> 'Any': + """ + Calls the default MFC OnPaint handler. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnQueryDragIcon(self,) -> 'Any': + """ + Calls the default MFC OnQueryDragIcon handler. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnQueryNewPalette(self,) -> 'Any': + """ + Calls the underlying MFC OnQueryNewPalette method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnSetCursor(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': + """ + Calls the base MFC OnSetCursor function. + +Args: + + wnd(Any): + hittest(Any): + message(Any):See Also + +Returns: + + Any + + """ + pass + + + def OnMouseActivate(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': + """ + Calls the base MFC OnMouseActivate function. + +Args: + + wnd(Any): + hittest(Any): + message(Any):See Also + +Returns: + + Any + + """ + pass + + + def OnWndMsg(self,msg:'Any',wParam:'Any',lParam:'Any') -> 'Tuple[Any, Any]': + """ + Calls the default MFC Window Message handler. + +Args: + + msg(Any):The message + wParam(Any):The wParam for the message + lParam(Any):The lParam for the messageMFC References + +Returns: + + Tuple[Any, Any]:CWnd::OnWndMsg +Return ValueThe return value is a tuple of (int, int), being the + +return value from the MFC function call, and the value of the + +lResult param. Please see the MFC documentation for more details. + + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def PumpWaitingMessages(self,firstMsg:'Any',lastMsg:'Any') -> 'None': + """ + Pump messages associate with a window. + +Args: + + firstMsg(Any):First message ID to process + lastMsg(Any):First message ID to processMFC References + +Returns: + + None + + """ + pass + + + def RedrawWindow(self,_object:'Any',flags:'Any',rect:'Tuple[Any, Any, Any, Any]'=None) -> 'None': + """ + Updates the specified rectangle or region in the given window's client area. + +Args: + + _object(Any):A region + flags(Any):MFC References + rect(Tuple[Any, Any, Any, Any]):A rect, or None + +Returns: + + None + + """ + pass + + + def ReleaseCapture(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def ReleaseDC(self,dc:'Any') -> 'None': + """ + Releases a device context, freeing it for use by other applications. + +Args: + + dc(Any):The DC to be released. + +Returns: + + None + + """ + pass + + + def RepositionBars(self,idFirst:'Any',idLast:'Any',idLeftOver:'Any') -> 'None': + """ + Repositions the windows control bars.( UINT nIDFirst, UINT nIDLast, UINT + +nIDLeftOver, UINT nFlag = CWnd::reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = + +TRUE ); + +Args: + + idFirst(Any):The ID of the first control to reposition. + idLast(Any):The ID of the last control to reposition. + idLeftOver(Any): + +Returns: + + None + + """ + pass + + + def RunModalLoop(self,flags:'Any') -> 'Any': + """ + Begins a modal loop for the window. + +Args: + + flags(Any): + +Returns: + + Any + + """ + pass + + + def PostMessage(self,idMessage:'Any',wParam:'Any'=0,lParam:'Any'=0) -> 'None': + """ + Post a message to the window. + +Args: + + idMessage(Any):The ID of the message to post. + wParam(Any):The wParam for the message + lParam(Any):The lParam for the messageMFC References + +Returns: + + None + + """ + pass + + + def SendMessageToDescendants(self,idMessage:'Any',wParam:'Any'=0,lParam:'Any'=0,bDeep:'Any'=1) -> 'None': + """ + Send a message to all descendant windows. + +Args: + + idMessage(Any):The ID of the message to send. + wParam(Any):The wParam for the message + lParam(Any):The lParam for the message + bDeep(Any):Indicates if the message should be recursively sent to all childrenMFC References + +Returns: + + None + + """ + pass + + + def SendMessage(self,idMessage:'Any',idMessage1:'Any',ob:'Any',wParam:'Any'=0,lParam:'Any'=0) -> 'None': + """ + Send a message to the window. + +Args: + + idMessage(Any):The ID of the message to send. + idMessage1(Any):The ID of the message to send. + ob(Any):A buffer whose size is passed in wParam, and address is passed in lParamMFC References + wParam(Any):The wParam for the message + lParam(Any):The lParam for the messageAlternative Parameters + +Returns: + + None + + """ + pass + + + def SetActiveWindow(self,) -> 'Any': + """ + Sets the window active. Returns the previously active window, or None. + +Args: + + + +Returns: + + Any:PyCWnd.SetActiveWindow +PyCWnd = SetActiveWindow()Sets the window active. Returns the previously active window, or None. +Return ValueThe result is the previous window with focus, or None. + + + """ + pass + + + def SetForegroundWindow(self,) -> 'None': + """ + Puts the window into the foreground and activates the window. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWindowPos(self,hWndInsertAfter:'Any',position:'Tuple[Any, Any, Any, Any]',flags:'Any') -> 'None': + """ + Sets the windows position information + +Args: + + hWndInsertAfter(Any):A hwnd, else one of the win32con.HWND_* constants. + position(Tuple[Any, Any, Any, Any]):The new position of the window. + flags(Any):Window positioning flags.MFC References + +Returns: + + None + + """ + pass + + + def ScreenToClient(self,rect:'Tuple[Any, Any, Any, Any, Any]',pnt:'Any') -> 'Tuple[Any, Any, Any, Any, Any]': + """ + Converts the screen coordinates of a given point + +or rectangle on the display to client coordinates. + +Args: + + rect(Tuple[Any, Any, Any, Any, Any]):The coordinates to convert.Alternative Parameters + pnt(Any):The coordinates to convert.MFC References + +Returns: + + Tuple[Any, Any, Any, Any, Any]:CWnd::ScreenToClient +Return ValueThe result is the same size as the input argument. + + + """ + pass + + + def SetCapture(self,) -> 'None': + """ + Causes all subsequent mouse input to be sent to the window object regardless of the + +position of the cursor. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDlgItemText(self,idControl:'Any',text:'str') -> 'None': + """ + Sets the text for the child window or control with the specified ID. + +Args: + + idControl(Any):The Id of the control + text(str):The new textMFC References + +Returns: + + None + + """ + pass + + + def SetFocus(self,) -> 'None': + """ + Claims the input focus. The object that previously had the focus loses it. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFont(self,font:'Any',bRedraw:'Any'=1) -> 'None': + """ + Sets the window's current font to the specified font. + +Args: + + font(Any):The new font to use. + bRedraw(Any):If TRUE, redraw the window. + +Returns: + + None + + """ + pass + + + def SetIcon(self,) -> 'Any': + """ + Calls the underlying MFC SetIcon method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetMenu(self,menuObj:'Any') -> 'None': + """ + Sets the menu for a window. + +Args: + + menuObj(Any):The menu object to set, or None to remove the window. + +Returns: + + None + + """ + pass + + + def SetRedraw(self,bState:'Any'=1) -> 'None': + """ + Allows changes to be redrawn or to prevent changes from being redrawn. + +Args: + + bState(Any):Specifies the state of the redraw flag.MFC References + +Returns: + + None + + """ + pass + + + def SetScrollPos(self,nBar:'Any',nPos:'Any',redraw:'Any'=1) -> 'Any': + """ + Sets the current position of the scroll box of a scroll bar. + +Args: + + nBar(Any):The scroll bar to set. Can be one of win32con.SB_VERT or win32con.SB_HORZ + nPos(Any):The new position + redraw(Any):A flag indicating if the scrollbar should be redrawn. + +Returns: + + Any + + """ + pass + + + def SetScrollInfo(self,nBar:'Any',ScrollInfo:'Any',redraw:'Any'=1) -> 'Any': + """ + Set information about a scroll bar + +Args: + + nBar(Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ + ScrollInfo(Any):The information to set + redraw(Any):A flag indicating if the scrollbar should be re-drawn. + +Returns: + + Any + + """ + pass + + + def SetTimer(self,idEvent:'Any',elapse:'Any') -> 'Any': + """ + Installs a system timer + +Args: + + idEvent(Any):The ID of the event + elapse(Any):How often the timer should fire.MFC References + +Returns: + + Any + + """ + pass + + + def SetWindowPlacement(self,placement:'Any') -> 'None': + """ + Sets the windows placement + +Args: + + placement(Any):A tuple representing the WINDOWPLACEMENT structure.MFC References + +Returns: + + None + + """ + pass + + + def SetWindowText(self,text:'str') -> 'None': + """ + Sets the window's text. + +Args: + + text(str):The windows text.MFC References + +Returns: + + None + + """ + pass + + + def ShowCaret(self,) -> 'None': + """ + Shows the caret + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowScrollBar(self,nBar:'Any',bShow:'Any'=1) -> 'None': + """ + Shows or hides a scroll bar. + +An application should not call ShowScrollBar to hide a scroll bar while processing a scroll-bar notification message. + +Args: + + nBar(Any):Specifies whether the scroll bar is a control or part of a window's nonclient area. If it is part of the nonclient area, nBar also indicates whether the scroll bar is positioned horizontally, vertically, or both. It must be one of win32con.SB_BOTH, win32con.SB_HORZ or win32con.SB_VERT. + bShow(Any):Indicates if the scroll bar should be shown or hidden.MFC References + +Returns: + + None + + """ + pass + + + def ShowWindow(self,arg:'Any') -> 'Any': + """ + Sets the visibility state of the window. + +Args: + + arg(Any):Specifies how the window is to be shown. It must be one of win32con.SW_HIDE, win32con.SW_MINIMIZE, win32con.SW_RESTORE, win32con.SW_SHOW, win32con.SW_SHOWMAXIMIZED win32con.SW_SHOWMINIMIZED, win32con.SW_SHOWMINNOACTIVE, win32con.SW_SHOWNA, win32con.SW_SHOWNOACTIVATE, or win32con.SW_SHOWNORMALMFC References + +Returns: + + Any:CWnd::ShowWindow +Return ValueReturns TRUE is the window was previously visible. + + + """ + pass + + + def UnLockWindowUpdate(self,) -> 'None': + """ + Unlocks a window that was locked with LockWindowUpdate + +Args: + + + +Returns: + + None + + """ + pass + + + def UpdateData(self,bSaveAndValidate:'Any'=1) -> 'Any': + """ + Initialises data in a dialog box, or to retrieves and validates dialog data. + +Returns nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of + +nonzero means that the data is successfully validated. + +Args: + + bSaveAndValidate(Any):Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).MFC References + +Returns: + + Any + + """ + pass + + + def UpdateDialogControls(self,pTarget:'Any',disableIfNoHandler:'Any') -> 'Any': + """ + None + +Args: + + pTarget(Any):The main frame window of the application, and is used for routing update messages. + disableIfNoHandler(Any):Flag that indicates whether a control that has no update handler should be automatically displayed as disabled. + +Returns: + + Any + + """ + pass + + + def UpdateWindow(self,) -> 'None': + """ + Updates a window. This forces a paint message to be sent to the window, if any part + +of the window is marked as invalid. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEConv(object): + """A DDE topic.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ConnectTo(self,service:'str',topic:'str') -> 'None': + """ + Connects to a server + +Args: + + service(str):The service to connect to + topic(str):The topic to connect to + +Returns: + + None + + """ + pass + + + def Connected(self,) -> 'None': + """ + Determines if the conversation is connected. + +Args: + + + +Returns: + + None + + """ + pass + + + def Exec(self,Cmd:'str') -> 'None': + """ + Executes a command. + +Args: + + Cmd(str):The Python statement to execute + +Returns: + + None + + """ + pass + + + def Request(self,) -> 'None': + """ + Sends a request. + +Args: + + + +Returns: + + None + + """ + pass + + + def Poke(self,) -> 'None': + """ + Sends a poke. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEServer(object): + """A DDE server.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddTopic(self,topic:'Any') -> 'None': + """ + None + +Args: + + topic(Any):The topic to add. + +Returns: + + None + + """ + pass + + + def Create(self,name:'str',filterFlags:'Any'=0) -> 'None': + """ + Create a server + +Args: + + name(str):Name of the server to start. + filterFlags(Any):Filter flags.CommentsNote there can only be one server per application. + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetLastError(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def Shutdown(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEStringItem(object): + """A DDE string item.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetData(self,data:'str') -> 'None': + """ + Sets an items data, and causes any underlying notification. + +Args: + + data(str):The data to set. + +Returns: + + None + + """ + pass + + +class PyDDETopic(object): + """A DDE topic.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddItem(self,item:'Any') -> 'None': + """ + Add an item to the topic. + +Args: + + item(Any):The item to add + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Destroys an item + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDLL(object): + """A DLL object. A general utility object, and not associated with an MFC object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFileName(self,) -> 'str': + """ + Returns the name of the module associated with the DLL. + +Args: + + + +Returns: + + str + + """ + pass + + + def AttachToMFC(self,) -> 'None': + """ + Attaches the DLL object to the MFC list of DLL's. + +Args: + + + +Returns: + + None + + """ + pass + + +class SCROLLINFO(object): + """Tuple representing a SCROLLINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TV_ITEM(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class EXTENSION_CONTROL_BLOCK(object): + """A python representation of an ISAPI + +EXTENSION_CONTROL_BLOCK.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Version(self)->'int': + """Version info of this spec (read-only)""" + pass + + + @property + def TotalBytes(self)->'Any': + """Total bytes indicated from client""" + pass + + + @property + def AvailableBytes(self)->'Any': + """Available number of bytes""" + pass + + + @property + def HttpStatusCode(self)->'Any': + """The status of the current transaction when the request is completed.""" + pass + + + @property + def Method(self)->'Any': + """REQUEST_METHOD""" + pass + + + @property + def ConnID(self)->'Any': + """Context number (read-only)""" + pass + + + @property + def QueryString(self)->'Any': + """QUERY_STRING""" + pass + + + @property + def PathInfo(self)->'Any': + """PATH_INFO""" + pass + + + @property + def PathTranslated(self)->'Any': + """PATH_TRANSLATED""" + pass + + + @property + def AvailableData(self)->'Any': + """Pointer to cbAvailable bytes""" + pass + + + @property + def ContentType(self)->'Any': + """Content type of client data""" + pass + + + @property + def LogData(self)->'Any': + """log data string""" + pass + + + def WriteClient(self,data:'Union[Any, str]',reserved:'Any'=0) -> 'Any': + """ + None + +Args: + + data(Union[Any, str]):The data to write + reserved(Any):Return Valuethe result is the number of bytes written. + +Returns: + + Any: +Return Valuethe result is the number of bytes written. + + + """ + pass + + + def GetServerVariable(self,variable:'str',default:'Any') -> 'str': + """ + None + +Args: + + variable(str): + default(Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. + +Returns: + + str:If specified, the function will return this + +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name + +begins with 'UNICODE_', in which case it is a unicode object - see the + +ISAPI docs for more details. + + + """ + pass + + + def ReadClient(self,nbytes:'Any') -> 'str': + """ + None + +Args: + + nbytes(Any):Default is to read all available data. + +Returns: + + str + + """ + pass + + + def SendResponseHeaders(self,reply:'str',headers:'str',keepAlive:'Any'=False) -> 'None': + """ + Calls ServerSupportFunction with + +HSE_REQ_SEND_RESPONSE_HEADER_EX + +Args: + + reply(str): + headers(str): + keepAlive(Any): + +Returns: + + None + + """ + pass + + + def SetFlushFlag(self,flag:'Any') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_SET_FLUSH_FLAG. + +Args: + + flag(Any): + +Returns: + + None + + """ + pass + + + def TransmitFile(self,callback:'Any',param:'Any',hFile:'Any',statusCode:'str',BytesToWrite:'Any',Offset:'Any',head:'str',tail:'str',flags:'Any') -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_TRANSMIT_FILE + +Args: + + callback(Any): + param(Any):Any object - passed as 2nd arg to callback. + hFile(Any): + statusCode(str): + BytesToWrite(Any): + Offset(Any): + head(str): + tail(str): + flags(Any):CommentsThe callback is called with 4 args - (PyECB, param, cbIO, dwErrCode) + +Returns: + + Any + + """ + pass + + + def MapURLToPath(self,) -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_MAP_URL_TO_PATH + +Args: + + + +Returns: + + None + + """ + pass + + + def DoneWithSession(self,status:'Any') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_DONE_WITH_SESSION + +Args: + + status(Any):An optional status. HSE_STATUS_SUCCESS_AND_KEEP_CONN is supported by IIS to keep the connection alive. + +Returns: + + None + + """ + pass + + + def Redirect(self,url:'str') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_SEND_URL_REDIRECT_RESP + +Args: + + url(str):The URL to redirect to + +Returns: + + None + + """ + pass + + + def IsKeepAlive(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAnonymousToken(self,metabase_path:'Union[Any, str]') -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_GET_ANONYMOUS_TOKEN + +or HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN + +Args: + + metabase_path(Union[Any, str]): + +Returns: + + Any + + """ + pass + + + def GetImpersonationToken(self,) -> 'Any': + """ + Calls ServerSupportFunction with + +HSE_REQ_GET_IMPERSONATION_TOKEN + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsKeepConn(self,) -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_IS_KEEP_CONN + +Args: + + + +Returns: + + Any + + """ + pass + + + def ExecURL(self,url:'str',method:'str',clientHeaders:'str',info:'Any',entity:'Any',flags:'Any') -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_EXEC_URL + +Args: + + url(str): + method(str): + clientHeaders(str): + info(Any):Must be None + entity(Any):Must be None + flags(Any):CommentsThis function is only available in IIS6 and later. + +Returns: + + Any + + """ + pass + + + def GetExecURLStatus(self,) -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_GET_EXEC_URL_STATUS + +Args: + + + +Returns: + + Any:Search for HSE_EXEC_URL_STATUS at msdn, google or google groups. +Return ValueThe result of a tuple of 3 integers - (uHttpStatusCode, uHttpSubStatus, dwWin32Error) + + + """ + pass + + + def IOCompletion(self,func:'Any',arg:'Any'=None) -> 'Any': + """ + Set a callback that will be used for handling asynchronous I/O + +operations. + +Args: + + func(Any):The function to call, as described by the EXTENSION_CONTROL_BLOCK::IOCallback method. + arg(Any):Any object which will be supplied as an argument to the callback function.CommentsIf you call this multiple times, the previous callback will be discarded.A reference to the callback and args are held until EXTENSION_CONTROL_BLOCK::DoneWithSession is called. If the callback function fails, DoneWithSession(HSE_STATUS_ERROR) will automatically be called and no further callbacks for the ECB will be made. + +Returns: + + Any + + """ + pass + + + def ReportUnhealthy(self,reason:'str'=None) -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_REPORT_UNHEALTHY + +Args: + + reason(str):An optional reason to be written to the log. + +Returns: + + Any + + """ + pass + + + def IOCallback(self,ecb:'Any',arg:'Any',cbIO:'Any',dwError:'Any') -> 'Any': + """ + A placeholder for a user-supplied callback function. + +Args: + + ecb(Any):The extension control block that is associated with the current, active request. + arg(Any):The user-supplied argument supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function. + cbIO(Any):An integer that contains the number of bytes of I/O in the last call. + dwError(Any):The error code returned.CommentsThis is not a function you can call, it describes the signature of the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function.Return ValueThe result of this function is ignored. + +Returns: + + Any:The error code returned.Comments + +This is not a function you can call, it describes the signature of + +the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion + +function. +Return ValueThe result of this function is ignored. + + + """ + pass + + +class HSE_VERSION_INFO(object): + """An object used by ISAPI GetExtensionVersion""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ExtensionDesc(self)->'str': + """The description of the extension.""" + pass + + +class HTTP_FILTER_AUTHENT(object): + """A Python representation of an ISAPI + +HTTP_FILTER_AUTHENT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def User(self)->'str': + """""" + pass + + + @property + def Password(self)->'str': + """""" + pass + + +class HTTP_FILTER_CONTEXT(object): + """A Python representation of an ISAPI + +HTTP_FILTER_CONTEXT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Revision(self)->'Any': + """(read-only)""" + pass + + + @property + def fIsSecurePort(self)->'Any': + """(read-only)""" + pass + + + @property + def NotificationType(self)->'Any': + """(read-only)""" + pass + + + @property + def FilterContext(self)->'Any': + """Any object you wish to associate with the request.""" + pass + + + def GetData(self,) -> 'Any': + """ + Obtains the data passed to + +The HttpFilterProc function. This is not techinally part of the + +HTTP_FILTER_CONTEXT structure, but packaged here for convenience. + +Args: + + + +Returns: + + Any:HTTP_FILTER_CONTEXT.GetData + +object = GetData()Obtains the data passed to + +The HttpFilterProc function. This is not techinally part of the + +HTTP_FILTER_CONTEXT structure, but packaged here for convenience. +Return ValueThe result depends on the value of HTTP_FILTER_CONTEXT::NotificationType + + + + +NotificationType + + +Result type + + + +SF_NOTIFY_URL_MAPHTTP_FILTER_URL_MAP +SF_NOTIFY_PREPROC_HEADERSHTTP_FILTER_PREPROC_HEADERS +SF_NOTIFY_LOGHTTP_FILTER_LOG +SF_NOTIFY_SEND_RAW_DATAHTTP_FILTER_RAW_DATA +SF_NOTIFY_READ_RAW_DATAHTTP_FILTER_RAW_DATA +SF_NOTIFY_AUTHENTICATIONHTTP_FILTER_AUTHENT + + + """ + pass + + + def GetServerVariable(self,variable:'str',default:'Any') -> 'str': + """ + None + +Args: + + variable(str): + default(Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. + +Returns: + + str:If specified, the function will return this + +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name + +begins with 'UNICODE_', in which case it is a unicode object - see the + +ISAPI docs for more details. + + + """ + pass + + + def WriteClient(self,data:'str',reserverd:'Any'=0) -> 'None': + """ + None + +Args: + + data(str): + reserverd(Any): + +Returns: + + None + + """ + pass + + + def AddResponseHeaders(self,data:'str',reserverd:'Any'=0) -> 'None': + """ + None + +Args: + + data(str): + reserverd(Any): + +Returns: + + None + + """ + pass + + + def SendResponseHeader(self,status:'str',header:'str') -> 'None': + """ + None + +Args: + + status(str): + header(str): + +Returns: + + None + + """ + pass + + + def DisableNotifications(self,flags:'Any') -> 'None': + """ + None + +Args: + + flags(Any): + +Returns: + + None + + """ + pass + + +class HTTP_FILTER_LOG(object): + """A Python representation of an ISAPI + +HTTP_FILTER_LOG structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ClientHostName(self)->'str': + """""" + pass + + + @property + def ClientUserName(self)->'str': + """""" + pass + + + @property + def ServerName(self)->'str': + """""" + pass + + + @property + def Operation(self)->'str': + """""" + pass + + + @property + def Target(self)->'str': + """""" + pass + + + @property + def Parameters(self)->'str': + """""" + pass + + + @property + def HttpStatus(self)->'Any': + """""" + pass + + +class HTTP_FILTER_PREPROC_HEADERS(object): + """A Python representation of an ISAPI + +HTTP_FILTER_PREPROC_HEADERS structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetHeader(self,header:'str',default:'Any') -> 'str': + """ + None + +Args: + + header(str): + default(Any):If specified, this will be returned on error. + +Returns: + + str + + """ + pass + + + def SetHeader(self,name:'str',val:'str') -> 'None': + """ + None + +Args: + + name(str): + val(str): + +Returns: + + None + + """ + pass + + + def AddHeader(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class HTTP_FILTER_RAW_DATA(object): + """A Python representation of an ISAPI + +HTTP_FILTER_RAW_DATA structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def InData(self)->'str': + """""" + pass + + +class HTTP_FILTER_URL_MAP(object): + """A Python representation of an ISAPI + +HTTP_FILTER_URL_MAP structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def URL(self)->'str': + """""" + pass + + + @property + def PhysicalPath(self)->'str': + """""" + pass + + +class HTTP_FILTER_VERSION(object): + """A Python interface to the ISAPI HTTP_FILTER_VERSION + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ServerFilterVersion(self)->'Any': + """(read-only)""" + pass + + + @property + def FilterVersion(self)->'Any': + """""" + pass + + + @property + def Flags(self)->'Any': + """""" + pass + + + @property + def FilterDesc(self)->'str': + """""" + pass diff --git a/typings/win32helper/__init__.pyi b/typings/win32helper/__init__.pyi new file mode 100644 index 00000000..e69de29b diff --git a/typings/win32helper/ntsecuritycon.pyi b/typings/win32helper/ntsecuritycon.pyi new file mode 100644 index 00000000..716d811d --- /dev/null +++ b/typings/win32helper/ntsecuritycon.pyi @@ -0,0 +1,689 @@ +# Hacked from winnt.h + +DELETE = (65536) +READ_CONTROL = (131072) +WRITE_DAC = (262144) +WRITE_OWNER = (524288) +SYNCHRONIZE = (1048576) +STANDARD_RIGHTS_REQUIRED = (983040) +STANDARD_RIGHTS_READ = (READ_CONTROL) +STANDARD_RIGHTS_WRITE = (READ_CONTROL) +STANDARD_RIGHTS_EXECUTE = (READ_CONTROL) +STANDARD_RIGHTS_ALL = (2031616) +SPECIFIC_RIGHTS_ALL = (65535) +ACCESS_SYSTEM_SECURITY = (16777216) +MAXIMUM_ALLOWED = (33554432) +GENERIC_READ = (-2147483648) +GENERIC_WRITE = (1073741824) +GENERIC_EXECUTE = (536870912) +GENERIC_ALL = (268435456) + +# file security permissions +FILE_READ_DATA= ( 1 ) +FILE_LIST_DIRECTORY= ( 1 ) +FILE_WRITE_DATA= ( 2 ) +FILE_ADD_FILE= ( 2 ) +FILE_APPEND_DATA= ( 4 ) +FILE_ADD_SUBDIRECTORY= ( 4 ) +FILE_CREATE_PIPE_INSTANCE= ( 4 ) +FILE_READ_EA= ( 8 ) +FILE_WRITE_EA= ( 16 ) +FILE_EXECUTE= ( 32 ) +FILE_TRAVERSE= ( 32 ) +FILE_DELETE_CHILD= ( 64 ) +FILE_READ_ATTRIBUTES= ( 128 ) +FILE_WRITE_ATTRIBUTES= ( 256 ) +FILE_ALL_ACCESS= (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 511) +FILE_GENERIC_READ= (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE) +FILE_GENERIC_WRITE= (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE) +FILE_GENERIC_EXECUTE= (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE) + + +SECURITY_NULL_SID_AUTHORITY = (0,0,0,0,0,0) +SECURITY_WORLD_SID_AUTHORITY = (0,0,0,0,0,1) +SECURITY_LOCAL_SID_AUTHORITY = (0,0,0,0,0,2) +SECURITY_CREATOR_SID_AUTHORITY = (0,0,0,0,0,3) +SECURITY_NON_UNIQUE_AUTHORITY = (0,0,0,0,0,4) +SECURITY_RESOURCE_MANAGER_AUTHORITY = (0,0,0,0,0,9) + +SECURITY_NULL_RID = 0 +SECURITY_WORLD_RID = 0 +SECURITY_LOCAL_RID = 0X00000000 + +SECURITY_CREATOR_OWNER_RID = 0 +SECURITY_CREATOR_GROUP_RID = 1 + +SECURITY_CREATOR_OWNER_SERVER_RID = 2 +SECURITY_CREATOR_GROUP_SERVER_RID = 3 +SECURITY_CREATOR_OWNER_RIGHTS_RID = 4 + +# NT well-known SIDs +SECURITY_NT_AUTHORITY = (0,0,0,0,0,5) + +SECURITY_DIALUP_RID = 1 +SECURITY_NETWORK_RID = 2 +SECURITY_BATCH_RID = 3 +SECURITY_INTERACTIVE_RID = 4 +SECURITY_SERVICE_RID = 6 +SECURITY_ANONYMOUS_LOGON_RID = 7 +SECURITY_PROXY_RID = 8 +SECURITY_SERVER_LOGON_RID = 9 + +SECURITY_LOGON_IDS_RID = 5 +SECURITY_LOGON_IDS_RID_COUNT = 3 + +SECURITY_LOCAL_SYSTEM_RID = 18 + +SECURITY_NT_NON_UNIQUE = 21 + +SECURITY_BUILTIN_DOMAIN_RID = 32 + +# well-known domain relative sub-authority values (RIDs)... +DOMAIN_USER_RID_ADMIN = 500 +DOMAIN_USER_RID_GUEST = 501 +DOMAIN_USER_RID_KRBTGT = 502 +DOMAIN_USER_RID_MAX = 999 + +# well-known groups ... +DOMAIN_GROUP_RID_ADMINS = 512 +DOMAIN_GROUP_RID_USERS = 513 +DOMAIN_GROUP_RID_GUESTS = 514 +DOMAIN_GROUP_RID_COMPUTERS = 515 +DOMAIN_GROUP_RID_CONTROLLERS = 516 +DOMAIN_GROUP_RID_CERT_ADMINS = 517 +DOMAIN_GROUP_RID_SCHEMA_ADMINS = 518 +DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 519 +DOMAIN_GROUP_RID_POLICY_ADMINS = 520 +DOMAIN_GROUP_RID_READONLY_CONTROLLERS = 521 + +# well-known aliases ... +DOMAIN_ALIAS_RID_ADMINS = 544 +DOMAIN_ALIAS_RID_USERS = 545 +DOMAIN_ALIAS_RID_GUESTS = 546 +DOMAIN_ALIAS_RID_POWER_USERS = 547 +DOMAIN_ALIAS_RID_ACCOUNT_OPS = 548 +DOMAIN_ALIAS_RID_SYSTEM_OPS = 549 +DOMAIN_ALIAS_RID_PRINT_OPS = 550 +DOMAIN_ALIAS_RID_BACKUP_OPS = 551 +DOMAIN_ALIAS_RID_REPLICATOR = 552 +DOMAIN_ALIAS_RID_RAS_SERVERS = 553 +DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 554 +DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 555 +DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 556 +DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 557 +DOMAIN_ALIAS_RID_MONITORING_USERS = 558 +DOMAIN_ALIAS_RID_LOGGING_USERS = 559 +DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 560 +DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 561 +DOMAIN_ALIAS_RID_DCOM_USERS = 562 +DOMAIN_ALIAS_RID_IUSERS = 568 +DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 569 +DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 571 +DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 572 +DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 573 + +SECURITY_MANDATORY_LABEL_AUTHORITY = (0,0,0,0,0,16) +SECURITY_MANDATORY_UNTRUSTED_RID = 0x00000000 +SECURITY_MANDATORY_LOW_RID = 0x00001000 +SECURITY_MANDATORY_MEDIUM_RID = 0x00002000 +SECURITY_MANDATORY_HIGH_RID = 0x00003000 +SECURITY_MANDATORY_SYSTEM_RID = 0x00004000 +SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 0x00005000 +SECURITY_MANDATORY_MAXIMUM_USER_RID = SECURITY_MANDATORY_SYSTEM_RID + +SYSTEM_LUID = (999, 0) +ANONYMOUS_LOGON_LUID = (998, 0) +LOCALSERVICE_LUID = (997, 0) +NETWORKSERVICE_LUID = (996, 0) +IUSER_LUID = (995, 0) + +# Group attributes + +SE_GROUP_MANDATORY = 1 +SE_GROUP_ENABLED_BY_DEFAULT = 2 +SE_GROUP_ENABLED = 4 +SE_GROUP_OWNER = 8 +SE_GROUP_USE_FOR_DENY_ONLY = 16 +SE_GROUP_INTEGRITY = 32 +SE_GROUP_INTEGRITY_ENABLED = 64 +SE_GROUP_RESOURCE = 536870912 +SE_GROUP_LOGON_ID = -1073741824 + + +# User attributes +# (None yet defined.) + +# ACE types +ACCESS_MIN_MS_ACE_TYPE = (0) +ACCESS_ALLOWED_ACE_TYPE = (0) +ACCESS_DENIED_ACE_TYPE = (1) +SYSTEM_AUDIT_ACE_TYPE = (2) +SYSTEM_ALARM_ACE_TYPE = (3) +ACCESS_MAX_MS_V2_ACE_TYPE = (3) +ACCESS_ALLOWED_COMPOUND_ACE_TYPE = (4) +ACCESS_MAX_MS_V3_ACE_TYPE = (4) +ACCESS_MIN_MS_OBJECT_ACE_TYPE = (5) +ACCESS_ALLOWED_OBJECT_ACE_TYPE = (5) +ACCESS_DENIED_OBJECT_ACE_TYPE = (6) +SYSTEM_AUDIT_OBJECT_ACE_TYPE = (7) +SYSTEM_ALARM_OBJECT_ACE_TYPE = (8) +ACCESS_MAX_MS_OBJECT_ACE_TYPE = (8) +ACCESS_MAX_MS_V4_ACE_TYPE = (8) +ACCESS_MAX_MS_ACE_TYPE = (8) +ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 9 +ACCESS_DENIED_CALLBACK_ACE_TYPE = 10 +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 11 +ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 12 +SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 13 +SYSTEM_ALARM_CALLBACK_ACE_TYPE = 14 +SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 15 +SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 16 +SYSTEM_MANDATORY_LABEL_ACE_TYPE = 17 +ACCESS_MAX_MS_V5_ACE_TYPE = 17 + +# The following are the inherit flags that go into the AceFlags field +# of an Ace header. + +OBJECT_INHERIT_ACE = 1 +CONTAINER_INHERIT_ACE = 2 +NO_PROPAGATE_INHERIT_ACE = 4 +INHERIT_ONLY_ACE = 8 +VALID_INHERIT_FLAGS = 15 + + +SUCCESSFUL_ACCESS_ACE_FLAG = 64 +FAILED_ACCESS_ACE_FLAG = 128 + +SE_OWNER_DEFAULTED = 1 +SE_GROUP_DEFAULTED = 2 +SE_DACL_PRESENT = 4 +SE_DACL_DEFAULTED = 8 +SE_SACL_PRESENT = 16 +SE_SACL_DEFAULTED = 32 +SE_SELF_RELATIVE = 32768 + + +SE_PRIVILEGE_ENABLED_BY_DEFAULT = 1 +SE_PRIVILEGE_ENABLED = 2 +SE_PRIVILEGE_USED_FOR_ACCESS = -2147483648 + +PRIVILEGE_SET_ALL_NECESSARY = 1 + +# NT Defined Privileges + +SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" +SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" +SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" +SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" +SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" +SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" +SE_TCB_NAME = "SeTcbPrivilege" +SE_SECURITY_NAME = "SeSecurityPrivilege" +SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" +SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" +SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" +SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" +SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" +SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" +SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" +SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" +SE_BACKUP_NAME = "SeBackupPrivilege" +SE_RESTORE_NAME = "SeRestorePrivilege" +SE_SHUTDOWN_NAME = "SeShutdownPrivilege" +SE_DEBUG_NAME = "SeDebugPrivilege" +SE_AUDIT_NAME = "SeAuditPrivilege" +SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" +SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" +SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" + + +# Enum SECURITY_IMPERSONATION_LEVEL: +SecurityAnonymous = 0 +SecurityIdentification = 1 +SecurityImpersonation = 2 +SecurityDelegation = 3 + +SECURITY_MAX_IMPERSONATION_LEVEL = SecurityDelegation + +DEFAULT_IMPERSONATION_LEVEL = SecurityImpersonation + +TOKEN_ASSIGN_PRIMARY = 1 +TOKEN_DUPLICATE = 2 +TOKEN_IMPERSONATE = 4 +TOKEN_QUERY = 8 +TOKEN_QUERY_SOURCE = 16 +TOKEN_ADJUST_PRIVILEGES = 32 +TOKEN_ADJUST_GROUPS = 64 +TOKEN_ADJUST_DEFAULT = 128 + +TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED |\ + TOKEN_ASSIGN_PRIMARY |\ + TOKEN_DUPLICATE |\ + TOKEN_IMPERSONATE |\ + TOKEN_QUERY |\ + TOKEN_QUERY_SOURCE |\ + TOKEN_ADJUST_PRIVILEGES |\ + TOKEN_ADJUST_GROUPS |\ + TOKEN_ADJUST_DEFAULT) + + +TOKEN_READ = (STANDARD_RIGHTS_READ |\ + TOKEN_QUERY) + + +TOKEN_WRITE = (STANDARD_RIGHTS_WRITE |\ + TOKEN_ADJUST_PRIVILEGES |\ + TOKEN_ADJUST_GROUPS |\ + TOKEN_ADJUST_DEFAULT) + +TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE) + +SidTypeUser = 1 +SidTypeGroup = 2 +SidTypeDomain =3 +SidTypeAlias = 4 +SidTypeWellKnownGroup = 5 +SidTypeDeletedAccount = 6 +SidTypeInvalid = 7 +SidTypeUnknown = 8 +SidTypeComputer = 9 +SidTypeLabel = 10 + +# Token types +TokenPrimary = 1 +TokenImpersonation = 2 + +# TOKEN_INFORMATION_CLASS, used with Get/SetTokenInformation +TokenUser = 1 +TokenGroups = 2 +TokenPrivileges = 3 +TokenOwner = 4 +TokenPrimaryGroup = 5 +TokenDefaultDacl = 6 +TokenSource = 7 +TokenType = 8 +TokenImpersonationLevel = 9 +TokenStatistics = 10 +TokenRestrictedSids = 11 +TokenSessionId = 12 +TokenGroupsAndPrivileges = 13 +TokenSessionReference = 14 +TokenSandBoxInert = 15 +TokenAuditPolicy = 16 +TokenOrigin = 17 +TokenElevationType = 18 +TokenLinkedToken = 19 +TokenElevation = 20 +TokenHasRestrictions = 21 +TokenAccessInformation = 22 +TokenVirtualizationAllowed = 23 +TokenVirtualizationEnabled = 24 +TokenIntegrityLevel = 25 +TokenUIAccess = 26 +TokenMandatoryPolicy = 27 +TokenLogonSid = 28 + +# DirectoryService related constants. +# Generated by h2py from NtDsAPI.h +DS_BEHAVIOR_WIN2000 = 0 +DS_BEHAVIOR_WIN2003_WITH_MIXED_DOMAINS = 1 +DS_BEHAVIOR_WIN2003 = 2 +DS_SYNCED_EVENT_NAME = "NTDSInitialSyncsCompleted" +ACTRL_DS_OPEN = 0x00000000 +ACTRL_DS_CREATE_CHILD = 0x00000001 +ACTRL_DS_DELETE_CHILD = 0x00000002 +ACTRL_DS_LIST = 0x00000004 +ACTRL_DS_SELF = 0x00000008 +ACTRL_DS_READ_PROP = 0x00000010 +ACTRL_DS_WRITE_PROP = 0x00000020 +ACTRL_DS_DELETE_TREE = 0x00000040 +ACTRL_DS_LIST_OBJECT = 0x00000080 +ACTRL_DS_CONTROL_ACCESS = 0x00000100 +NTDSAPI_BIND_ALLOW_DELEGATION = (0x00000001) +DS_REPSYNC_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPSYNC_WRITEABLE = 0x00000002 +DS_REPSYNC_PERIODIC = 0x00000004 +DS_REPSYNC_INTERSITE_MESSAGING = 0x00000008 +DS_REPSYNC_ALL_SOURCES = 0x00000010 +DS_REPSYNC_FULL = 0x00000020 +DS_REPSYNC_URGENT = 0x00000040 +DS_REPSYNC_NO_DISCARD = 0x00000080 +DS_REPSYNC_FORCE = 0x00000100 +DS_REPSYNC_ADD_REFERENCE = 0x00000200 +DS_REPSYNC_NEVER_COMPLETED = 0x00000400 +DS_REPSYNC_TWO_WAY = 0x00000800 +DS_REPSYNC_NEVER_NOTIFY = 0x00001000 +DS_REPSYNC_INITIAL = 0x00002000 +DS_REPSYNC_USE_COMPRESSION = 0x00004000 +DS_REPSYNC_ABANDONED = 0x00008000 +DS_REPSYNC_INITIAL_IN_PROGRESS = 0x00010000 +DS_REPSYNC_PARTIAL_ATTRIBUTE_SET = 0x00020000 +DS_REPSYNC_REQUEUE = 0x00040000 +DS_REPSYNC_NOTIFICATION = 0x00080000 +DS_REPSYNC_ASYNCHRONOUS_REPLICA = 0x00100000 +DS_REPSYNC_CRITICAL = 0x00200000 +DS_REPSYNC_FULL_IN_PROGRESS = 0x00400000 +DS_REPSYNC_PREEMPTED = 0x00800000 +DS_REPADD_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPADD_WRITEABLE = 0x00000002 +DS_REPADD_INITIAL = 0x00000004 +DS_REPADD_PERIODIC = 0x00000008 +DS_REPADD_INTERSITE_MESSAGING = 0x00000010 +DS_REPADD_ASYNCHRONOUS_REPLICA = 0x00000020 +DS_REPADD_DISABLE_NOTIFICATION = 0x00000040 +DS_REPADD_DISABLE_PERIODIC = 0x00000080 +DS_REPADD_USE_COMPRESSION = 0x00000100 +DS_REPADD_NEVER_NOTIFY = 0x00000200 +DS_REPADD_TWO_WAY = 0x00000400 +DS_REPADD_CRITICAL = 0x00000800 +DS_REPDEL_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPDEL_WRITEABLE = 0x00000002 +DS_REPDEL_INTERSITE_MESSAGING = 0x00000004 +DS_REPDEL_IGNORE_ERRORS = 0x00000008 +DS_REPDEL_LOCAL_ONLY = 0x00000010 +DS_REPDEL_NO_SOURCE = 0x00000020 +DS_REPDEL_REF_OK = 0x00000040 +DS_REPMOD_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPMOD_WRITEABLE = 0x00000002 +DS_REPMOD_UPDATE_FLAGS = 0x00000001 +DS_REPMOD_UPDATE_ADDRESS = 0x00000002 +DS_REPMOD_UPDATE_SCHEDULE = 0x00000004 +DS_REPMOD_UPDATE_RESULT = 0x00000008 +DS_REPMOD_UPDATE_TRANSPORT = 0x00000010 +DS_REPUPD_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPUPD_WRITEABLE = 0x00000002 +DS_REPUPD_ADD_REFERENCE = 0x00000004 +DS_REPUPD_DELETE_REFERENCE = 0x00000008 +DS_INSTANCETYPE_IS_NC_HEAD = 0x00000001 +DS_INSTANCETYPE_NC_IS_WRITEABLE = 0x00000004 +DS_INSTANCETYPE_NC_COMING = 0x00000010 +DS_INSTANCETYPE_NC_GOING = 0x00000020 +NTDSDSA_OPT_IS_GC = ( 1 << 0 ) +NTDSDSA_OPT_DISABLE_INBOUND_REPL = ( 1 << 1 ) +NTDSDSA_OPT_DISABLE_OUTBOUND_REPL = ( 1 << 2 ) +NTDSDSA_OPT_DISABLE_NTDSCONN_XLATE = ( 1 << 3 ) +NTDSCONN_OPT_IS_GENERATED = ( 1 << 0 ) +NTDSCONN_OPT_TWOWAY_SYNC = ( 1 << 1 ) +NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT = (1 << 2 ) +NTDSCONN_OPT_USE_NOTIFY = (1 << 3) +NTDSCONN_OPT_DISABLE_INTERSITE_COMPRESSION = (1 << 4) +NTDSCONN_OPT_USER_OWNED_SCHEDULE = (1 << 5) +NTDSCONN_KCC_NO_REASON = ( 0 ) +NTDSCONN_KCC_GC_TOPOLOGY = ( 1 << 0 ) +NTDSCONN_KCC_RING_TOPOLOGY = ( 1 << 1 ) +NTDSCONN_KCC_MINIMIZE_HOPS_TOPOLOGY = ( 1 << 2 ) +NTDSCONN_KCC_STALE_SERVERS_TOPOLOGY = ( 1 << 3 ) +NTDSCONN_KCC_OSCILLATING_CONNECTION_TOPOLOGY = ( 1 << 4 ) +NTDSCONN_KCC_INTERSITE_GC_TOPOLOGY = (1 << 5) +NTDSCONN_KCC_INTERSITE_TOPOLOGY = (1 << 6) +NTDSCONN_KCC_SERVER_FAILOVER_TOPOLOGY = (1 << 7) +NTDSCONN_KCC_SITE_FAILOVER_TOPOLOGY = (1 << 8) +NTDSCONN_KCC_REDUNDANT_SERVER_TOPOLOGY = (1 << 9) +FRSCONN_PRIORITY_MASK = 0x70000000 +FRSCONN_MAX_PRIORITY = 0x8 +NTDSCONN_OPT_IGNORE_SCHEDULE_MASK = (-2147483648) + +NTDSSETTINGS_OPT_IS_AUTO_TOPOLOGY_DISABLED = ( 1 << 0 ) +NTDSSETTINGS_OPT_IS_TOPL_CLEANUP_DISABLED = ( 1 << 1 ) +NTDSSETTINGS_OPT_IS_TOPL_MIN_HOPS_DISABLED = ( 1 << 2 ) +NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED = ( 1 << 3 ) +NTDSSETTINGS_OPT_IS_INTER_SITE_AUTO_TOPOLOGY_DISABLED = ( 1 << 4 ) +NTDSSETTINGS_OPT_IS_GROUP_CACHING_ENABLED = ( 1 << 5 ) +NTDSSETTINGS_OPT_FORCE_KCC_WHISTLER_BEHAVIOR = ( 1 << 6 ) +NTDSSETTINGS_OPT_FORCE_KCC_W2K_ELECTION = ( 1 << 7 ) +NTDSSETTINGS_OPT_IS_RAND_BH_SELECTION_DISABLED = ( 1 << 8 ) +NTDSSETTINGS_OPT_IS_SCHEDULE_HASHING_ENABLED = ( 1 << 9 ) +NTDSSETTINGS_OPT_IS_REDUNDANT_SERVER_TOPOLOGY_ENABLED = ( 1 << 10 ) +NTDSSETTINGS_DEFAULT_SERVER_REDUNDANCY = 2 +NTDSTRANSPORT_OPT_IGNORE_SCHEDULES = ( 1 << 0 ) +NTDSTRANSPORT_OPT_BRIDGES_REQUIRED = (1 << 1 ) +NTDSSITECONN_OPT_USE_NOTIFY = ( 1 << 0 ) +NTDSSITECONN_OPT_TWOWAY_SYNC = ( 1 << 1 ) +NTDSSITECONN_OPT_DISABLE_COMPRESSION = ( 1 << 2 ) +NTDSSITELINK_OPT_USE_NOTIFY = ( 1 << 0 ) +NTDSSITELINK_OPT_TWOWAY_SYNC = ( 1 << 1 ) +NTDSSITELINK_OPT_DISABLE_COMPRESSION = ( 1 << 2 ) +GUID_USERS_CONTAINER_A = "a9d1ca15768811d1aded00c04fd8d5cd" +GUID_COMPUTRS_CONTAINER_A = "aa312825768811d1aded00c04fd8d5cd" +GUID_SYSTEMS_CONTAINER_A = "ab1d30f3768811d1aded00c04fd8d5cd" +GUID_DOMAIN_CONTROLLERS_CONTAINER_A = "a361b2ffffd211d1aa4b00c04fd7d83a" +GUID_INFRASTRUCTURE_CONTAINER_A = "2fbac1870ade11d297c400c04fd8d5cd" +GUID_DELETED_OBJECTS_CONTAINER_A = "18e2ea80684f11d2b9aa00c04f79f805" +GUID_LOSTANDFOUND_CONTAINER_A = "ab8153b7768811d1aded00c04fd8d5cd" +GUID_FOREIGNSECURITYPRINCIPALS_CONTAINER_A = "22b70c67d56e4efb91e9300fca3dc1aa" +GUID_PROGRAM_DATA_CONTAINER_A = "09460c08ae1e4a4ea0f64aee7daa1e5a" +GUID_MICROSOFT_PROGRAM_DATA_CONTAINER_A = "f4be92a4c777485e878e9421d53087db" +GUID_NTDS_QUOTAS_CONTAINER_A = "6227f0af1fc2410d8e3bb10615bb5b0f" +GUID_USERS_CONTAINER_BYTE = "\xa9\xd1\xca\x15\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" +GUID_COMPUTRS_CONTAINER_BYTE = "\xaa\x31\x28\x25\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" +GUID_SYSTEMS_CONTAINER_BYTE = "\xab\x1d\x30\xf3\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" +GUID_DOMAIN_CONTROLLERS_CONTAINER_BYTE = "\xa3\x61\xb2\xff\xff\xd2\x11\xd1\xaa\x4b\x00\xc0\x4f\xd7\xd8\x3a" +GUID_INFRASTRUCTURE_CONTAINER_BYTE = "\x2f\xba\xc1\x87\x0a\xde\x11\xd2\x97\xc4\x00\xc0\x4f\xd8\xd5\xcd" +GUID_DELETED_OBJECTS_CONTAINER_BYTE = "\x18\xe2\xea\x80\x68\x4f\x11\xd2\xb9\xaa\x00\xc0\x4f\x79\xf8\x05" +GUID_LOSTANDFOUND_CONTAINER_BYTE = "\xab\x81\x53\xb7\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" +GUID_FOREIGNSECURITYPRINCIPALS_CONTAINER_BYTE = "\x22\xb7\x0c\x67\xd5\x6e\x4e\xfb\x91\xe9\x30\x0f\xca\x3d\xc1\xaa" +GUID_PROGRAM_DATA_CONTAINER_BYTE = "\x09\x46\x0c\x08\xae\x1e\x4a\x4e\xa0\xf6\x4a\xee\x7d\xaa\x1e\x5a" +GUID_MICROSOFT_PROGRAM_DATA_CONTAINER_BYTE = "\xf4\xbe\x92\xa4\xc7\x77\x48\x5e\x87\x8e\x94\x21\xd5\x30\x87\xdb" +GUID_NTDS_QUOTAS_CONTAINER_BYTE = "\x62\x27\xf0\xaf\x1f\xc2\x41\x0d\x8e\x3b\xb1\x06\x15\xbb\x5b\x0f" +DS_REPSYNCALL_NO_OPTIONS = 0x00000000 +DS_REPSYNCALL_ABORT_IF_SERVER_UNAVAILABLE = 0x00000001 +DS_REPSYNCALL_SYNC_ADJACENT_SERVERS_ONLY = 0x00000002 +DS_REPSYNCALL_ID_SERVERS_BY_DN = 0x00000004 +DS_REPSYNCALL_DO_NOT_SYNC = 0x00000008 +DS_REPSYNCALL_SKIP_INITIAL_CHECK = 0x00000010 +DS_REPSYNCALL_PUSH_CHANGES_OUTWARD = 0x00000020 +DS_REPSYNCALL_CROSS_SITE_BOUNDARIES = 0x00000040 +DS_LIST_DSA_OBJECT_FOR_SERVER = 0 +DS_LIST_DNS_HOST_NAME_FOR_SERVER = 1 +DS_LIST_ACCOUNT_OBJECT_FOR_SERVER = 2 +DS_ROLE_SCHEMA_OWNER = 0 +DS_ROLE_DOMAIN_OWNER = 1 +DS_ROLE_PDC_OWNER = 2 +DS_ROLE_RID_OWNER = 3 +DS_ROLE_INFRASTRUCTURE_OWNER = 4 +DS_SCHEMA_GUID_NOT_FOUND = 0 +DS_SCHEMA_GUID_ATTR = 1 +DS_SCHEMA_GUID_ATTR_SET = 2 +DS_SCHEMA_GUID_CLASS = 3 +DS_SCHEMA_GUID_CONTROL_RIGHT = 4 +DS_KCC_FLAG_ASYNC_OP = (1 << 0) +DS_KCC_FLAG_DAMPED = (1 << 1) +DS_EXIST_ADVISORY_MODE = (0x1) +DS_REPL_INFO_FLAG_IMPROVE_LINKED_ATTRS = (0x00000001) +DS_REPL_NBR_WRITEABLE = (0x00000010) +DS_REPL_NBR_SYNC_ON_STARTUP = (0x00000020) +DS_REPL_NBR_DO_SCHEDULED_SYNCS = (0x00000040) +DS_REPL_NBR_USE_ASYNC_INTERSITE_TRANSPORT = (0x00000080) +DS_REPL_NBR_TWO_WAY_SYNC = (0x00000200) +DS_REPL_NBR_RETURN_OBJECT_PARENTS = (0x00000800) +DS_REPL_NBR_FULL_SYNC_IN_PROGRESS = (0x00010000) +DS_REPL_NBR_FULL_SYNC_NEXT_PACKET = (0x00020000) +DS_REPL_NBR_NEVER_SYNCED = (0x00200000) +DS_REPL_NBR_PREEMPTED = (0x01000000) +DS_REPL_NBR_IGNORE_CHANGE_NOTIFICATIONS = (0x04000000) +DS_REPL_NBR_DISABLE_SCHEDULED_SYNC = (0x08000000) +DS_REPL_NBR_COMPRESS_CHANGES = (0x10000000) +DS_REPL_NBR_NO_CHANGE_NOTIFICATIONS = (0x20000000) +DS_REPL_NBR_PARTIAL_ATTRIBUTE_SET = (0x40000000) +DS_REPL_NBR_MODIFIABLE_MASK = \ + ( \ + DS_REPL_NBR_SYNC_ON_STARTUP | \ + DS_REPL_NBR_DO_SCHEDULED_SYNCS | \ + DS_REPL_NBR_TWO_WAY_SYNC | \ + DS_REPL_NBR_IGNORE_CHANGE_NOTIFICATIONS | \ + DS_REPL_NBR_DISABLE_SCHEDULED_SYNC | \ + DS_REPL_NBR_COMPRESS_CHANGES | \ + DS_REPL_NBR_NO_CHANGE_NOTIFICATIONS \ + ) + +# from enum DS_NAME_FORMAT +DS_UNKNOWN_NAME = 0 +DS_FQDN_1779_NAME = 1 +DS_NT4_ACCOUNT_NAME = 2 +DS_DISPLAY_NAME = 3 +DS_UNIQUE_ID_NAME = 6 +DS_CANONICAL_NAME = 7 +DS_USER_PRINCIPAL_NAME = 8 +DS_CANONICAL_NAME_EX = 9 +DS_SERVICE_PRINCIPAL_NAME = 10 +DS_SID_OR_SID_HISTORY_NAME = 11 +DS_DNS_DOMAIN_NAME = 12 + +DS_DOMAIN_SIMPLE_NAME = DS_USER_PRINCIPAL_NAME +DS_ENTERPRISE_SIMPLE_NAME = DS_USER_PRINCIPAL_NAME + +# from enum DS_NAME_FLAGS +DS_NAME_NO_FLAGS = 0x0 +DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1 +DS_NAME_FLAG_EVAL_AT_DC = 0x2 +DS_NAME_FLAG_GCVERIFY = 0x4 +DS_NAME_FLAG_TRUST_REFERRAL = 0x8 + +# from enum DS_NAME_ERROR +DS_NAME_NO_ERROR = 0 +DS_NAME_ERROR_RESOLVING = 1 +DS_NAME_ERROR_NOT_FOUND = 2 +DS_NAME_ERROR_NOT_UNIQUE = 3 +DS_NAME_ERROR_NO_MAPPING = 4 +DS_NAME_ERROR_DOMAIN_ONLY = 5 +DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 6 +DS_NAME_ERROR_TRUST_REFERRAL = 7 + + +# from enum DS_SPN_NAME_TYPE +DS_SPN_DNS_HOST = 0 +DS_SPN_DN_HOST = 1 +DS_SPN_NB_HOST = 2 +DS_SPN_DOMAIN = 3 +DS_SPN_NB_DOMAIN = 4 +DS_SPN_SERVICE = 5 + +# from enum DS_SPN_WRITE_OP +DS_SPN_ADD_SPN_OP = 0 +DS_SPN_REPLACE_SPN_OP = 1 +DS_SPN_DELETE_SPN_OP = 2 + +# Generated by h2py from DsGetDC.h +DS_FORCE_REDISCOVERY = 0x00000001 +DS_DIRECTORY_SERVICE_REQUIRED = 0x00000010 +DS_DIRECTORY_SERVICE_PREFERRED = 0x00000020 +DS_GC_SERVER_REQUIRED = 0x00000040 +DS_PDC_REQUIRED = 0x00000080 +DS_BACKGROUND_ONLY = 0x00000100 +DS_IP_REQUIRED = 0x00000200 +DS_KDC_REQUIRED = 0x00000400 +DS_TIMESERV_REQUIRED = 0x00000800 +DS_WRITABLE_REQUIRED = 0x00001000 +DS_GOOD_TIMESERV_PREFERRED = 0x00002000 +DS_AVOID_SELF = 0x00004000 +DS_ONLY_LDAP_NEEDED = 0x00008000 +DS_IS_FLAT_NAME = 0x00010000 +DS_IS_DNS_NAME = 0x00020000 +DS_RETURN_DNS_NAME = 0x40000000 +DS_RETURN_FLAT_NAME = (-2147483648) +DSGETDC_VALID_FLAGS = ( \ + DS_FORCE_REDISCOVERY | \ + DS_DIRECTORY_SERVICE_REQUIRED | \ + DS_DIRECTORY_SERVICE_PREFERRED | \ + DS_GC_SERVER_REQUIRED | \ + DS_PDC_REQUIRED | \ + DS_BACKGROUND_ONLY | \ + DS_IP_REQUIRED | \ + DS_KDC_REQUIRED | \ + DS_TIMESERV_REQUIRED | \ + DS_WRITABLE_REQUIRED | \ + DS_GOOD_TIMESERV_PREFERRED | \ + DS_AVOID_SELF | \ + DS_ONLY_LDAP_NEEDED | \ + DS_IS_FLAT_NAME | \ + DS_IS_DNS_NAME | \ + DS_RETURN_FLAT_NAME | \ + DS_RETURN_DNS_NAME ) +DS_INET_ADDRESS = 1 +DS_NETBIOS_ADDRESS = 2 +DS_PDC_FLAG = 0x00000001 +DS_GC_FLAG = 0x00000004 +DS_LDAP_FLAG = 0x00000008 +DS_DS_FLAG = 0x00000010 +DS_KDC_FLAG = 0x00000020 +DS_TIMESERV_FLAG = 0x00000040 +DS_CLOSEST_FLAG = 0x00000080 +DS_WRITABLE_FLAG = 0x00000100 +DS_GOOD_TIMESERV_FLAG = 0x00000200 +DS_NDNC_FLAG = 0x00000400 +DS_PING_FLAGS = 0x0000FFFF +DS_DNS_CONTROLLER_FLAG = 0x20000000 +DS_DNS_DOMAIN_FLAG = 0x40000000 +DS_DNS_FOREST_FLAG = (-2147483648) +DS_DOMAIN_IN_FOREST = 0x0001 +DS_DOMAIN_DIRECT_OUTBOUND = 0x0002 +DS_DOMAIN_TREE_ROOT = 0x0004 +DS_DOMAIN_PRIMARY = 0x0008 +DS_DOMAIN_NATIVE_MODE = 0x0010 +DS_DOMAIN_DIRECT_INBOUND = 0x0020 +DS_DOMAIN_VALID_FLAGS = ( \ + DS_DOMAIN_IN_FOREST | \ + DS_DOMAIN_DIRECT_OUTBOUND | \ + DS_DOMAIN_TREE_ROOT | \ + DS_DOMAIN_PRIMARY | \ + DS_DOMAIN_NATIVE_MODE | \ + DS_DOMAIN_DIRECT_INBOUND ) +DS_GFTI_UPDATE_TDO = 0x1 +DS_GFTI_VALID_FLAGS = 0x1 +DS_ONLY_DO_SITE_NAME = 0x01 +DS_NOTIFY_AFTER_SITE_RECORDS = 0x02 +DS_OPEN_VALID_OPTION_FLAGS = ( DS_ONLY_DO_SITE_NAME | DS_NOTIFY_AFTER_SITE_RECORDS ) +DS_OPEN_VALID_FLAGS = ( \ + DS_FORCE_REDISCOVERY | \ + DS_ONLY_LDAP_NEEDED | \ + DS_KDC_REQUIRED | \ + DS_PDC_REQUIRED | \ + DS_GC_SERVER_REQUIRED | \ + DS_WRITABLE_REQUIRED ) + +## from aclui.h +# SI_OBJECT_INFO.dwFlags +SI_EDIT_PERMS = 0x00000000 +SI_EDIT_OWNER = 0x00000001 +SI_EDIT_AUDITS = 0x00000002 +SI_CONTAINER = 0x00000004 +SI_READONLY = 0x00000008 +SI_ADVANCED = 0x00000010 +SI_RESET = 0x00000020 +SI_OWNER_READONLY = 0x00000040 +SI_EDIT_PROPERTIES = 0x00000080 +SI_OWNER_RECURSE = 0x00000100 +SI_NO_ACL_PROTECT = 0x00000200 +SI_NO_TREE_APPLY = 0x00000400 +SI_PAGE_TITLE = 0x00000800 +SI_SERVER_IS_DC = 0x00001000 +SI_RESET_DACL_TREE = 0x00004000 +SI_RESET_SACL_TREE = 0x00008000 +SI_OBJECT_GUID = 0x00010000 +SI_EDIT_EFFECTIVE = 0x00020000 +SI_RESET_DACL = 0x00040000 +SI_RESET_SACL = 0x00080000 +SI_RESET_OWNER = 0x00100000 +SI_NO_ADDITIONAL_PERMISSION = 0x00200000 +SI_MAY_WRITE = 0x10000000 +SI_EDIT_ALL = (SI_EDIT_PERMS | SI_EDIT_OWNER | SI_EDIT_AUDITS) +SI_AUDITS_ELEVATION_REQUIRED = 0x02000000 +SI_VIEW_ONLY = 0x00400000 +SI_OWNER_ELEVATION_REQUIRED = 0x04000000 +SI_PERMS_ELEVATION_REQUIRED = 0x01000000 + +# SI_ACCESS.dwFlags +SI_ACCESS_SPECIFIC = 0x00010000 +SI_ACCESS_GENERAL = 0x00020000 +SI_ACCESS_CONTAINER = 0x00040000 +SI_ACCESS_PROPERTY = 0x00080000 + +# SI_PAGE_TYPE enum +SI_PAGE_PERM = 0 +SI_PAGE_ADVPERM = 1 +SI_PAGE_AUDIT = 2 +SI_PAGE_OWNER = 3 +SI_PAGE_EFFECTIVE =4 + +CFSTR_ACLUI_SID_INFO_LIST = "CFSTR_ACLUI_SID_INFO_LIST" +PSPCB_SI_INITDIALOG = 1025 ## WM_USER+1 diff --git a/typings/win32helper/sspicon.pyi b/typings/win32helper/sspicon.pyi new file mode 100644 index 00000000..1e61d498 --- /dev/null +++ b/typings/win32helper/sspicon.pyi @@ -0,0 +1,479 @@ +# Generated by h2py from c:\microsoft sdk\include\sspi.h +ISSP_LEVEL = 32 +ISSP_MODE = 1 +ISSP_LEVEL = 32 +ISSP_MODE = 0 +ISSP_LEVEL = 32 +ISSP_MODE = 1 +def SEC_SUCCESS(Status): return ((Status) >= 0) + +SECPKG_FLAG_INTEGRITY = 1 +SECPKG_FLAG_PRIVACY = 2 +SECPKG_FLAG_TOKEN_ONLY = 4 +SECPKG_FLAG_DATAGRAM = 8 +SECPKG_FLAG_CONNECTION = 16 +SECPKG_FLAG_MULTI_REQUIRED = 32 +SECPKG_FLAG_CLIENT_ONLY = 64 +SECPKG_FLAG_EXTENDED_ERROR = 128 +SECPKG_FLAG_IMPERSONATION = 256 +SECPKG_FLAG_ACCEPT_WIN32_NAME = 512 +SECPKG_FLAG_STREAM = 1024 +SECPKG_FLAG_NEGOTIABLE = 2048 +SECPKG_FLAG_GSS_COMPATIBLE = 4096 +SECPKG_FLAG_LOGON = 8192 +SECPKG_FLAG_ASCII_BUFFERS = 16384 +SECPKG_FLAG_FRAGMENT = 32768 +SECPKG_FLAG_MUTUAL_AUTH = 65536 +SECPKG_FLAG_DELEGATION = 131072 +SECPKG_FLAG_READONLY_WITH_CHECKSUM = 262144 +SECPKG_ID_NONE = 65535 + +SECBUFFER_VERSION = 0 +SECBUFFER_EMPTY = 0 +SECBUFFER_DATA = 1 +SECBUFFER_TOKEN = 2 +SECBUFFER_PKG_PARAMS = 3 +SECBUFFER_MISSING = 4 +SECBUFFER_EXTRA = 5 +SECBUFFER_STREAM_TRAILER = 6 +SECBUFFER_STREAM_HEADER = 7 +SECBUFFER_NEGOTIATION_INFO = 8 +SECBUFFER_PADDING = 9 +SECBUFFER_STREAM = 10 +SECBUFFER_MECHLIST = 11 +SECBUFFER_MECHLIST_SIGNATURE = 12 +SECBUFFER_TARGET = 13 +SECBUFFER_CHANNEL_BINDINGS = 14 +SECBUFFER_ATTRMASK = (-268435456) +SECBUFFER_READONLY = (-2147483648) +SECBUFFER_READONLY_WITH_CHECKSUM = 268435456 +SECBUFFER_RESERVED = 1610612736 + +SECURITY_NATIVE_DREP = 16 +SECURITY_NETWORK_DREP = 0 + +SECPKG_CRED_INBOUND = 1 +SECPKG_CRED_OUTBOUND = 2 +SECPKG_CRED_BOTH = 3 +SECPKG_CRED_DEFAULT = 4 +SECPKG_CRED_RESERVED = -268435456 + +ISC_REQ_DELEGATE = 1 +ISC_REQ_MUTUAL_AUTH = 2 +ISC_REQ_REPLAY_DETECT = 4 +ISC_REQ_SEQUENCE_DETECT = 8 +ISC_REQ_CONFIDENTIALITY = 16 +ISC_REQ_USE_SESSION_KEY = 32 +ISC_REQ_PROMPT_FOR_CREDS = 64 +ISC_REQ_USE_SUPPLIED_CREDS = 128 +ISC_REQ_ALLOCATE_MEMORY = 256 +ISC_REQ_USE_DCE_STYLE = 512 +ISC_REQ_DATAGRAM = 1024 +ISC_REQ_CONNECTION = 2048 +ISC_REQ_CALL_LEVEL = 4096 +ISC_REQ_FRAGMENT_SUPPLIED = 8192 +ISC_REQ_EXTENDED_ERROR = 16384 +ISC_REQ_STREAM = 32768 +ISC_REQ_INTEGRITY = 65536 +ISC_REQ_IDENTIFY = 131072 +ISC_REQ_NULL_SESSION = 262144 +ISC_REQ_MANUAL_CRED_VALIDATION = 524288 +ISC_REQ_RESERVED1 = 1048576 +ISC_REQ_FRAGMENT_TO_FIT = 2097152 +ISC_REQ_HTTP = 0x10000000 +ISC_RET_DELEGATE = 1 +ISC_RET_MUTUAL_AUTH = 2 +ISC_RET_REPLAY_DETECT = 4 +ISC_RET_SEQUENCE_DETECT = 8 +ISC_RET_CONFIDENTIALITY = 16 +ISC_RET_USE_SESSION_KEY = 32 +ISC_RET_USED_COLLECTED_CREDS = 64 +ISC_RET_USED_SUPPLIED_CREDS = 128 +ISC_RET_ALLOCATED_MEMORY = 256 +ISC_RET_USED_DCE_STYLE = 512 +ISC_RET_DATAGRAM = 1024 +ISC_RET_CONNECTION = 2048 +ISC_RET_INTERMEDIATE_RETURN = 4096 +ISC_RET_CALL_LEVEL = 8192 +ISC_RET_EXTENDED_ERROR = 16384 +ISC_RET_STREAM = 32768 +ISC_RET_INTEGRITY = 65536 +ISC_RET_IDENTIFY = 131072 +ISC_RET_NULL_SESSION = 262144 +ISC_RET_MANUAL_CRED_VALIDATION = 524288 +ISC_RET_RESERVED1 = 1048576 +ISC_RET_FRAGMENT_ONLY = 2097152 + +ASC_REQ_DELEGATE = 1 +ASC_REQ_MUTUAL_AUTH = 2 +ASC_REQ_REPLAY_DETECT = 4 +ASC_REQ_SEQUENCE_DETECT = 8 +ASC_REQ_CONFIDENTIALITY = 16 +ASC_REQ_USE_SESSION_KEY = 32 +ASC_REQ_ALLOCATE_MEMORY = 256 +ASC_REQ_USE_DCE_STYLE = 512 +ASC_REQ_DATAGRAM = 1024 +ASC_REQ_CONNECTION = 2048 +ASC_REQ_CALL_LEVEL = 4096 +ASC_REQ_EXTENDED_ERROR = 32768 +ASC_REQ_STREAM = 65536 +ASC_REQ_INTEGRITY = 131072 +ASC_REQ_LICENSING = 262144 +ASC_REQ_IDENTIFY = 524288 +ASC_REQ_ALLOW_NULL_SESSION = 1048576 +ASC_REQ_ALLOW_NON_USER_LOGONS = 2097152 +ASC_REQ_ALLOW_CONTEXT_REPLAY = 4194304 +ASC_REQ_FRAGMENT_TO_FIT = 8388608 +ASC_REQ_FRAGMENT_SUPPLIED = 8192 +ASC_REQ_NO_TOKEN = 16777216 +ASC_RET_DELEGATE = 1 +ASC_RET_MUTUAL_AUTH = 2 +ASC_RET_REPLAY_DETECT = 4 +ASC_RET_SEQUENCE_DETECT = 8 +ASC_RET_CONFIDENTIALITY = 16 +ASC_RET_USE_SESSION_KEY = 32 +ASC_RET_ALLOCATED_MEMORY = 256 +ASC_RET_USED_DCE_STYLE = 512 +ASC_RET_DATAGRAM = 1024 +ASC_RET_CONNECTION = 2048 +ASC_RET_CALL_LEVEL = 8192 +ASC_RET_THIRD_LEG_FAILED = 16384 +ASC_RET_EXTENDED_ERROR = 32768 +ASC_RET_STREAM = 65536 +ASC_RET_INTEGRITY = 131072 +ASC_RET_LICENSING = 262144 +ASC_RET_IDENTIFY = 524288 +ASC_RET_NULL_SESSION = 1048576 +ASC_RET_ALLOW_NON_USER_LOGONS = 2097152 +ASC_RET_ALLOW_CONTEXT_REPLAY = 4194304 +ASC_RET_FRAGMENT_ONLY = 8388608 + +SECPKG_CRED_ATTR_NAMES = 1 +SECPKG_ATTR_SIZES = 0 +SECPKG_ATTR_NAMES = 1 +SECPKG_ATTR_LIFESPAN = 2 +SECPKG_ATTR_DCE_INFO = 3 +SECPKG_ATTR_STREAM_SIZES = 4 +SECPKG_ATTR_KEY_INFO = 5 +SECPKG_ATTR_AUTHORITY = 6 +SECPKG_ATTR_PROTO_INFO = 7 +SECPKG_ATTR_PASSWORD_EXPIRY = 8 +SECPKG_ATTR_SESSION_KEY = 9 +SECPKG_ATTR_PACKAGE_INFO = 10 +SECPKG_ATTR_USER_FLAGS = 11 +SECPKG_ATTR_NEGOTIATION_INFO = 12 +SECPKG_ATTR_NATIVE_NAMES = 13 +SECPKG_ATTR_FLAGS = 14 +SECPKG_ATTR_USE_VALIDATED = 15 +SECPKG_ATTR_CREDENTIAL_NAME = 16 +SECPKG_ATTR_TARGET_INFORMATION = 17 +SECPKG_ATTR_ACCESS_TOKEN = 18 +SECPKG_ATTR_TARGET = 19 +SECPKG_ATTR_AUTHENTICATION_ID = 20 + +## attributes from schannel.h +SECPKG_ATTR_REMOTE_CERT_CONTEXT = 83 +SECPKG_ATTR_LOCAL_CERT_CONTEXT = 84 +SECPKG_ATTR_ROOT_STORE = 85 +SECPKG_ATTR_SUPPORTED_ALGS = 86 +SECPKG_ATTR_CIPHER_STRENGTHS = 87 +SECPKG_ATTR_SUPPORTED_PROTOCOLS = 88 +SECPKG_ATTR_ISSUER_LIST_EX = 89 +SECPKG_ATTR_CONNECTION_INFO = 90 +SECPKG_ATTR_EAP_KEY_BLOCK = 91 +SECPKG_ATTR_MAPPED_CRED_ATTR = 92 +SECPKG_ATTR_SESSION_INFO = 93 +SECPKG_ATTR_APP_DATA = 94 + +SECPKG_NEGOTIATION_COMPLETE = 0 +SECPKG_NEGOTIATION_OPTIMISTIC = 1 +SECPKG_NEGOTIATION_IN_PROGRESS = 2 +SECPKG_NEGOTIATION_DIRECT = 3 +SECPKG_NEGOTIATION_TRY_MULTICRED = 4 +SECPKG_CONTEXT_EXPORT_RESET_NEW = 1 +SECPKG_CONTEXT_EXPORT_DELETE_OLD = 2 +SECQOP_WRAP_NO_ENCRYPT = (-2147483647) +SECURITY_ENTRYPOINT_ANSIW = "InitSecurityInterfaceW" +SECURITY_ENTRYPOINT_ANSIA = "InitSecurityInterfaceA" +SECURITY_ENTRYPOINT16 = "INITSECURITYINTERFACEA" +SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT_ANSIW +SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT_ANSIA +SECURITY_ENTRYPOINT = SECURITY_ENTRYPOINT16 +SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT16 +SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION = 1 +SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 = 2 +SASL_OPTION_SEND_SIZE = 1 +SASL_OPTION_RECV_SIZE = 2 +SASL_OPTION_AUTHZ_STRING = 3 +SASL_OPTION_AUTHZ_PROCESSING = 4 +SEC_WINNT_AUTH_IDENTITY_ANSI = 1 +SEC_WINNT_AUTH_IDENTITY_UNICODE = 2 +SEC_WINNT_AUTH_IDENTITY_VERSION = 512 +SEC_WINNT_AUTH_IDENTITY_MARSHALLED = 4 +SEC_WINNT_AUTH_IDENTITY_ONLY = 8 +SECPKG_OPTIONS_TYPE_UNKNOWN = 0 +SECPKG_OPTIONS_TYPE_LSA = 1 +SECPKG_OPTIONS_TYPE_SSPI = 2 +SECPKG_OPTIONS_PERMANENT = 1 + +SEC_E_INSUFFICIENT_MEMORY = -2146893056 +SEC_E_INVALID_HANDLE = -2146893055 +SEC_E_UNSUPPORTED_FUNCTION = -2146893054 +SEC_E_TARGET_UNKNOWN = -2146893053 +SEC_E_INTERNAL_ERROR = -2146893052 +SEC_E_SECPKG_NOT_FOUND = -2146893051 +SEC_E_NOT_OWNER = -2146893050 +SEC_E_CANNOT_INSTALL = -2146893049 +SEC_E_INVALID_TOKEN = -2146893048 +SEC_E_CANNOT_PACK = -2146893047 +SEC_E_QOP_NOT_SUPPORTED = -2146893046 +SEC_E_NO_IMPERSONATION = -2146893045 +SEC_E_LOGON_DENIED = -2146893044 +SEC_E_UNKNOWN_CREDENTIALS = -2146893043 +SEC_E_NO_CREDENTIALS = -2146893042 +SEC_E_MESSAGE_ALTERED = -2146893041 +SEC_E_OUT_OF_SEQUENCE = -2146893040 +SEC_E_NO_AUTHENTICATING_AUTHORITY = -2146893039 +SEC_I_CONTINUE_NEEDED = 590610 +SEC_I_COMPLETE_NEEDED = 590611 +SEC_I_COMPLETE_AND_CONTINUE = 590612 +SEC_I_LOCAL_LOGON = 590613 +SEC_E_BAD_PKGID = -2146893034 +SEC_E_CONTEXT_EXPIRED = -2146893033 +SEC_I_CONTEXT_EXPIRED = 590615 +SEC_E_INCOMPLETE_MESSAGE = -2146893032 +SEC_E_INCOMPLETE_CREDENTIALS = -2146893024 +SEC_E_BUFFER_TOO_SMALL = -2146893023 +SEC_I_INCOMPLETE_CREDENTIALS = 590624 +SEC_I_RENEGOTIATE = 590625 +SEC_E_WRONG_PRINCIPAL = -2146893022 +SEC_I_NO_LSA_CONTEXT = 590627 +SEC_E_TIME_SKEW = -2146893020 +SEC_E_UNTRUSTED_ROOT = -2146893019 +SEC_E_ILLEGAL_MESSAGE = -2146893018 +SEC_E_CERT_UNKNOWN = -2146893017 +SEC_E_CERT_EXPIRED = -2146893016 +SEC_E_ENCRYPT_FAILURE = -2146893015 +SEC_E_DECRYPT_FAILURE = -2146893008 +SEC_E_ALGORITHM_MISMATCH = -2146893007 +SEC_E_SECURITY_QOS_FAILED = -2146893006 +SEC_E_UNFINISHED_CONTEXT_DELETED = -2146893005 +SEC_E_NO_TGT_REPLY = -2146893004 +SEC_E_NO_IP_ADDRESSES = -2146893003 +SEC_E_WRONG_CREDENTIAL_HANDLE = -2146893002 +SEC_E_CRYPTO_SYSTEM_INVALID = -2146893001 +SEC_E_MAX_REFERRALS_EXCEEDED = -2146893000 +SEC_E_MUST_BE_KDC = -2146892999 +SEC_E_STRONG_CRYPTO_NOT_SUPPORTED = -2146892998 +SEC_E_TOO_MANY_PRINCIPALS = -2146892997 +SEC_E_NO_PA_DATA = -2146892996 +SEC_E_PKINIT_NAME_MISMATCH = -2146892995 +SEC_E_SMARTCARD_LOGON_REQUIRED = -2146892994 +SEC_E_SHUTDOWN_IN_PROGRESS = -2146892993 +SEC_E_KDC_INVALID_REQUEST = -2146892992 +SEC_E_KDC_UNABLE_TO_REFER = -2146892991 +SEC_E_KDC_UNKNOWN_ETYPE = -2146892990 +SEC_E_UNSUPPORTED_PREAUTH = -2146892989 +SEC_E_DELEGATION_REQUIRED = -2146892987 +SEC_E_BAD_BINDINGS = -2146892986 +SEC_E_MULTIPLE_ACCOUNTS = -2146892985 +SEC_E_NO_KERB_KEY = -2146892984 + +ERROR_IPSEC_QM_POLICY_EXISTS = 13000 +ERROR_IPSEC_QM_POLICY_NOT_FOUND = 13001 +ERROR_IPSEC_QM_POLICY_IN_USE = 13002 +ERROR_IPSEC_MM_POLICY_EXISTS = 13003 +ERROR_IPSEC_MM_POLICY_NOT_FOUND = 13004 +ERROR_IPSEC_MM_POLICY_IN_USE = 13005 +ERROR_IPSEC_MM_FILTER_EXISTS = 13006 +ERROR_IPSEC_MM_FILTER_NOT_FOUND = 13007 +ERROR_IPSEC_TRANSPORT_FILTER_EXISTS = 13008 +ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND = 13009 +ERROR_IPSEC_MM_AUTH_EXISTS = 13010 +ERROR_IPSEC_MM_AUTH_NOT_FOUND = 13011 +ERROR_IPSEC_MM_AUTH_IN_USE = 13012 +ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND = 13013 +ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND = 13014 +ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND = 13015 +ERROR_IPSEC_TUNNEL_FILTER_EXISTS = 13016 +ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND = 13017 +ERROR_IPSEC_MM_FILTER_PENDING_DELETION = 13018 +ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION = 13019 +ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION = 13020 +ERROR_IPSEC_MM_POLICY_PENDING_DELETION = 13021 +ERROR_IPSEC_MM_AUTH_PENDING_DELETION = 13022 +ERROR_IPSEC_QM_POLICY_PENDING_DELETION = 13023 +WARNING_IPSEC_MM_POLICY_PRUNED = 13024 +WARNING_IPSEC_QM_POLICY_PRUNED = 13025 +ERROR_IPSEC_IKE_NEG_STATUS_BEGIN = 13800 +ERROR_IPSEC_IKE_AUTH_FAIL = 13801 +ERROR_IPSEC_IKE_ATTRIB_FAIL = 13802 +ERROR_IPSEC_IKE_NEGOTIATION_PENDING = 13803 +ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR = 13804 +ERROR_IPSEC_IKE_TIMED_OUT = 13805 +ERROR_IPSEC_IKE_NO_CERT = 13806 +ERROR_IPSEC_IKE_SA_DELETED = 13807 +ERROR_IPSEC_IKE_SA_REAPED = 13808 +ERROR_IPSEC_IKE_MM_ACQUIRE_DROP = 13809 +ERROR_IPSEC_IKE_QM_ACQUIRE_DROP = 13810 +ERROR_IPSEC_IKE_QUEUE_DROP_MM = 13811 +ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM = 13812 +ERROR_IPSEC_IKE_DROP_NO_RESPONSE = 13813 +ERROR_IPSEC_IKE_MM_DELAY_DROP = 13814 +ERROR_IPSEC_IKE_QM_DELAY_DROP = 13815 +ERROR_IPSEC_IKE_ERROR = 13816 +ERROR_IPSEC_IKE_CRL_FAILED = 13817 +ERROR_IPSEC_IKE_INVALID_KEY_USAGE = 13818 +ERROR_IPSEC_IKE_INVALID_CERT_TYPE = 13819 +ERROR_IPSEC_IKE_NO_PRIVATE_KEY = 13820 +ERROR_IPSEC_IKE_DH_FAIL = 13822 +ERROR_IPSEC_IKE_INVALID_HEADER = 13824 +ERROR_IPSEC_IKE_NO_POLICY = 13825 +ERROR_IPSEC_IKE_INVALID_SIGNATURE = 13826 +ERROR_IPSEC_IKE_KERBEROS_ERROR = 13827 +ERROR_IPSEC_IKE_NO_PUBLIC_KEY = 13828 +ERROR_IPSEC_IKE_PROCESS_ERR = 13829 +ERROR_IPSEC_IKE_PROCESS_ERR_SA = 13830 +ERROR_IPSEC_IKE_PROCESS_ERR_PROP = 13831 +ERROR_IPSEC_IKE_PROCESS_ERR_TRANS = 13832 +ERROR_IPSEC_IKE_PROCESS_ERR_KE = 13833 +ERROR_IPSEC_IKE_PROCESS_ERR_ID = 13834 +ERROR_IPSEC_IKE_PROCESS_ERR_CERT = 13835 +ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ = 13836 +ERROR_IPSEC_IKE_PROCESS_ERR_HASH = 13837 +ERROR_IPSEC_IKE_PROCESS_ERR_SIG = 13838 +ERROR_IPSEC_IKE_PROCESS_ERR_NONCE = 13839 +ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY = 13840 +ERROR_IPSEC_IKE_PROCESS_ERR_DELETE = 13841 +ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR = 13842 +ERROR_IPSEC_IKE_INVALID_PAYLOAD = 13843 +ERROR_IPSEC_IKE_LOAD_SOFT_SA = 13844 +ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN = 13845 +ERROR_IPSEC_IKE_INVALID_COOKIE = 13846 +ERROR_IPSEC_IKE_NO_PEER_CERT = 13847 +ERROR_IPSEC_IKE_PEER_CRL_FAILED = 13848 +ERROR_IPSEC_IKE_POLICY_CHANGE = 13849 +ERROR_IPSEC_IKE_NO_MM_POLICY = 13850 +ERROR_IPSEC_IKE_NOTCBPRIV = 13851 +ERROR_IPSEC_IKE_SECLOADFAIL = 13852 +ERROR_IPSEC_IKE_FAILSSPINIT = 13853 +ERROR_IPSEC_IKE_FAILQUERYSSP = 13854 +ERROR_IPSEC_IKE_SRVACQFAIL = 13855 +ERROR_IPSEC_IKE_SRVQUERYCRED = 13856 +ERROR_IPSEC_IKE_GETSPIFAIL = 13857 +ERROR_IPSEC_IKE_INVALID_FILTER = 13858 +ERROR_IPSEC_IKE_OUT_OF_MEMORY = 13859 +ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED = 13860 +ERROR_IPSEC_IKE_INVALID_POLICY = 13861 +ERROR_IPSEC_IKE_UNKNOWN_DOI = 13862 +ERROR_IPSEC_IKE_INVALID_SITUATION = 13863 +ERROR_IPSEC_IKE_DH_FAILURE = 13864 +ERROR_IPSEC_IKE_INVALID_GROUP = 13865 +ERROR_IPSEC_IKE_ENCRYPT = 13866 +ERROR_IPSEC_IKE_DECRYPT = 13867 +ERROR_IPSEC_IKE_POLICY_MATCH = 13868 +ERROR_IPSEC_IKE_UNSUPPORTED_ID = 13869 +ERROR_IPSEC_IKE_INVALID_HASH = 13870 +ERROR_IPSEC_IKE_INVALID_HASH_ALG = 13871 +ERROR_IPSEC_IKE_INVALID_HASH_SIZE = 13872 +ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG = 13873 +ERROR_IPSEC_IKE_INVALID_AUTH_ALG = 13874 +ERROR_IPSEC_IKE_INVALID_SIG = 13875 +ERROR_IPSEC_IKE_LOAD_FAILED = 13876 +ERROR_IPSEC_IKE_RPC_DELETE = 13877 +ERROR_IPSEC_IKE_BENIGN_REINIT = 13878 +ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY = 13879 +ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN = 13881 +ERROR_IPSEC_IKE_MM_LIMIT = 13882 +ERROR_IPSEC_IKE_NEGOTIATION_DISABLED = 13883 +ERROR_IPSEC_IKE_NEG_STATUS_END = 13884 +CRYPT_E_MSG_ERROR = ((-2146889727)) +CRYPT_E_UNKNOWN_ALGO = ((-2146889726)) +CRYPT_E_OID_FORMAT = ((-2146889725)) +CRYPT_E_INVALID_MSG_TYPE = ((-2146889724)) +CRYPT_E_UNEXPECTED_ENCODING = ((-2146889723)) +CRYPT_E_AUTH_ATTR_MISSING = ((-2146889722)) +CRYPT_E_HASH_VALUE = ((-2146889721)) +CRYPT_E_INVALID_INDEX = ((-2146889720)) +CRYPT_E_ALREADY_DECRYPTED = ((-2146889719)) +CRYPT_E_NOT_DECRYPTED = ((-2146889718)) +CRYPT_E_RECIPIENT_NOT_FOUND = ((-2146889717)) +CRYPT_E_CONTROL_TYPE = ((-2146889716)) +CRYPT_E_ISSUER_SERIALNUMBER = ((-2146889715)) +CRYPT_E_SIGNER_NOT_FOUND = ((-2146889714)) +CRYPT_E_ATTRIBUTES_MISSING = ((-2146889713)) +CRYPT_E_STREAM_MSG_NOT_READY = ((-2146889712)) +CRYPT_E_STREAM_INSUFFICIENT_DATA = ((-2146889711)) +CRYPT_I_NEW_PROTECTION_REQUIRED = (593938) +CRYPT_E_BAD_LEN = ((-2146885631)) +CRYPT_E_BAD_ENCODE = ((-2146885630)) +CRYPT_E_FILE_ERROR = ((-2146885629)) +CRYPT_E_NOT_FOUND = ((-2146885628)) +CRYPT_E_EXISTS = ((-2146885627)) +CRYPT_E_NO_PROVIDER = ((-2146885626)) +CRYPT_E_SELF_SIGNED = ((-2146885625)) +CRYPT_E_DELETED_PREV = ((-2146885624)) +CRYPT_E_NO_MATCH = ((-2146885623)) +CRYPT_E_UNEXPECTED_MSG_TYPE = ((-2146885622)) +CRYPT_E_NO_KEY_PROPERTY = ((-2146885621)) +CRYPT_E_NO_DECRYPT_CERT = ((-2146885620)) +CRYPT_E_BAD_MSG = ((-2146885619)) +CRYPT_E_NO_SIGNER = ((-2146885618)) +CRYPT_E_PENDING_CLOSE = ((-2146885617)) +CRYPT_E_REVOKED = ((-2146885616)) +CRYPT_E_NO_REVOCATION_DLL = ((-2146885615)) +CRYPT_E_NO_REVOCATION_CHECK = ((-2146885614)) +CRYPT_E_REVOCATION_OFFLINE = ((-2146885613)) +CRYPT_E_NOT_IN_REVOCATION_DATABASE = ((-2146885612)) +CRYPT_E_INVALID_NUMERIC_STRING = ((-2146885600)) +CRYPT_E_INVALID_PRINTABLE_STRING = ((-2146885599)) +CRYPT_E_INVALID_IA5_STRING = ((-2146885598)) +CRYPT_E_INVALID_X500_STRING = ((-2146885597)) +CRYPT_E_NOT_CHAR_STRING = ((-2146885596)) +CRYPT_E_FILERESIZED = ((-2146885595)) +CRYPT_E_SECURITY_SETTINGS = ((-2146885594)) +CRYPT_E_NO_VERIFY_USAGE_DLL = ((-2146885593)) +CRYPT_E_NO_VERIFY_USAGE_CHECK = ((-2146885592)) +CRYPT_E_VERIFY_USAGE_OFFLINE = ((-2146885591)) +CRYPT_E_NOT_IN_CTL = ((-2146885590)) +CRYPT_E_NO_TRUSTED_SIGNER = ((-2146885589)) +CRYPT_E_MISSING_PUBKEY_PARA = ((-2146885588)) +CRYPT_E_OSS_ERROR = ((-2146881536)) + +## Kerberos message types for LsaCallAuthenticationPackage (from ntsecapi.h) +KerbDebugRequestMessage = 0 +KerbQueryTicketCacheMessage = 1 +KerbChangeMachinePasswordMessage = 2 +KerbVerifyPacMessage = 3 +KerbRetrieveTicketMessage = 4 +KerbUpdateAddressesMessage = 5 +KerbPurgeTicketCacheMessage = 6 +KerbChangePasswordMessage = 7 +KerbRetrieveEncodedTicketMessage = 8 +KerbDecryptDataMessage = 9 +KerbAddBindingCacheEntryMessage = 10 +KerbSetPasswordMessage = 11 +KerbSetPasswordExMessage = 12 +KerbVerifyCredentialsMessage = 13 +KerbQueryTicketCacheExMessage = 14 +KerbPurgeTicketCacheExMessage = 15 +KerbRefreshSmartcardCredentialsMessage = 16 +KerbAddExtraCredentialsMessage = 17 +KerbQuerySupplementalCredentialsMessage = 18 + +## messages used with msv1_0 from ntsecapi.h +MsV1_0Lm20ChallengeRequest = 0 +MsV1_0Lm20GetChallengeResponse = 1 +MsV1_0EnumerateUsers = 2 +MsV1_0GetUserInfo = 3 +MsV1_0ReLogonUsers = 4 +MsV1_0ChangePassword = 5 +MsV1_0ChangeCachedPassword = 6 +MsV1_0GenericPassthrough = 7 +MsV1_0CacheLogon = 8 +MsV1_0SubAuth = 9 +MsV1_0DeriveCredential = 10 +MsV1_0CacheLookup = 11 +MsV1_0SetProcessOption = 12 + +SEC_E_OK = 0 diff --git a/typings/win32helper/win32con.pyi b/typings/win32helper/win32con.pyi new file mode 100644 index 00000000..4c3a0fef --- /dev/null +++ b/typings/win32helper/win32con.pyi @@ -0,0 +1,5041 @@ +# Generated by h2py from commdlg.h (plus modifications 4jan98) +WINVER = 1280 +WM_USER = 1024 +PY_0U = 0 +OFN_READONLY = 1 +OFN_OVERWRITEPROMPT = 2 +OFN_HIDEREADONLY = 4 +OFN_NOCHANGEDIR = 8 +OFN_SHOWHELP = 16 +OFN_ENABLEHOOK = 32 +OFN_ENABLETEMPLATE = 64 +OFN_ENABLETEMPLATEHANDLE = 128 +OFN_NOVALIDATE = 256 +OFN_ALLOWMULTISELECT = 512 +OFN_EXTENSIONDIFFERENT = 1024 +OFN_PATHMUSTEXIST = 2048 +OFN_FILEMUSTEXIST = 4096 +OFN_CREATEPROMPT = 8192 +OFN_SHAREAWARE = 16384 +OFN_NOREADONLYRETURN = 32768 +OFN_NOTESTFILECREATE = 65536 +OFN_NONETWORKBUTTON = 131072 +OFN_NOLONGNAMES = 262144 +OFN_EXPLORER = 524288 # new look commdlg +OFN_NODEREFERENCELINKS = 1048576 +OFN_LONGNAMES = 2097152 # force long names for 3.x modules +OFN_ENABLEINCLUDENOTIFY = 4194304 # send include message to callback +OFN_ENABLESIZING = 8388608 +OFN_DONTADDTORECENT = 33554432 +OFN_FORCESHOWHIDDEN = 268435456 # Show All files including System and hidden files +OFN_EX_NOPLACESBAR = 1 +OFN_SHAREFALLTHROUGH = 2 +OFN_SHARENOWARN = 1 +OFN_SHAREWARN = 0 +CDN_FIRST = (PY_0U-601) +CDN_LAST = (PY_0U-699) +CDN_INITDONE = (CDN_FIRST - 0) +CDN_SELCHANGE = (CDN_FIRST - 1) +CDN_FOLDERCHANGE = (CDN_FIRST - 2) +CDN_SHAREVIOLATION = (CDN_FIRST - 3) +CDN_HELP = (CDN_FIRST - 4) +CDN_FILEOK = (CDN_FIRST - 5) +CDN_TYPECHANGE = (CDN_FIRST - 6) +CDN_INCLUDEITEM = (CDN_FIRST - 7) +CDM_FIRST = (WM_USER + 100) +CDM_LAST = (WM_USER + 200) +CDM_GETSPEC = (CDM_FIRST + 0) +CDM_GETFILEPATH = (CDM_FIRST + 1) +CDM_GETFOLDERPATH = (CDM_FIRST + 2) +CDM_GETFOLDERIDLIST = (CDM_FIRST + 3) +CDM_SETCONTROLTEXT = (CDM_FIRST + 4) +CDM_HIDECONTROL = (CDM_FIRST + 5) +CDM_SETDEFEXT = (CDM_FIRST + 6) +CC_RGBINIT = 1 +CC_FULLOPEN = 2 +CC_PREVENTFULLOPEN = 4 +CC_SHOWHELP = 8 +CC_ENABLEHOOK = 16 +CC_ENABLETEMPLATE = 32 +CC_ENABLETEMPLATEHANDLE = 64 +CC_SOLIDCOLOR = 128 +CC_ANYCOLOR = 256 +FR_DOWN = 1 +FR_WHOLEWORD = 2 +FR_MATCHCASE = 4 +FR_FINDNEXT = 8 +FR_REPLACE = 16 +FR_REPLACEALL = 32 +FR_DIALOGTERM = 64 +FR_SHOWHELP = 128 +FR_ENABLEHOOK = 256 +FR_ENABLETEMPLATE = 512 +FR_NOUPDOWN = 1024 +FR_NOMATCHCASE = 2048 +FR_NOWHOLEWORD = 4096 +FR_ENABLETEMPLATEHANDLE = 8192 +FR_HIDEUPDOWN = 16384 +FR_HIDEMATCHCASE = 32768 +FR_HIDEWHOLEWORD = 65536 +CF_SCREENFONTS = 1 +CF_PRINTERFONTS = 2 +CF_BOTH = (CF_SCREENFONTS | CF_PRINTERFONTS) +CF_SHOWHELP = 4 +CF_ENABLEHOOK = 8 +CF_ENABLETEMPLATE = 16 +CF_ENABLETEMPLATEHANDLE = 32 +CF_INITTOLOGFONTSTRUCT = 64 +CF_USESTYLE = 128 +CF_EFFECTS = 256 +CF_APPLY = 512 +CF_ANSIONLY = 1024 +CF_SCRIPTSONLY = CF_ANSIONLY +CF_NOVECTORFONTS = 2048 +CF_NOOEMFONTS = CF_NOVECTORFONTS +CF_NOSIMULATIONS = 4096 +CF_LIMITSIZE = 8192 +CF_FIXEDPITCHONLY = 16384 +CF_WYSIWYG = 32768 # must also have CF_SCREENFONTS & CF_PRINTERFONTS +CF_FORCEFONTEXIST = 65536 +CF_SCALABLEONLY = 131072 +CF_TTONLY = 262144 +CF_NOFACESEL = 524288 +CF_NOSTYLESEL = 1048576 +CF_NOSIZESEL = 2097152 +CF_SELECTSCRIPT = 4194304 +CF_NOSCRIPTSEL = 8388608 +CF_NOVERTFONTS = 16777216 +SIMULATED_FONTTYPE = 32768 +PRINTER_FONTTYPE = 16384 +SCREEN_FONTTYPE = 8192 +BOLD_FONTTYPE = 256 +ITALIC_FONTTYPE = 512 +REGULAR_FONTTYPE = 1024 +OPENTYPE_FONTTYPE = 65536 +TYPE1_FONTTYPE = 131072 +DSIG_FONTTYPE = 262144 +WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1) +WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101) +WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102) +LBSELCHSTRINGA = "commdlg_LBSelChangedNotify" +SHAREVISTRINGA = "commdlg_ShareViolation" +FILEOKSTRINGA = "commdlg_FileNameOK" +COLOROKSTRINGA = "commdlg_ColorOK" +SETRGBSTRINGA = "commdlg_SetRGBColor" +HELPMSGSTRINGA = "commdlg_help" +FINDMSGSTRINGA = "commdlg_FindReplace" +LBSELCHSTRING = LBSELCHSTRINGA +SHAREVISTRING = SHAREVISTRINGA +FILEOKSTRING = FILEOKSTRINGA +COLOROKSTRING = COLOROKSTRINGA +SETRGBSTRING = SETRGBSTRINGA +HELPMSGSTRING = HELPMSGSTRINGA +FINDMSGSTRING = FINDMSGSTRINGA +CD_LBSELNOITEMS = -1 +CD_LBSELCHANGE = 0 +CD_LBSELSUB = 1 +CD_LBSELADD = 2 +PD_ALLPAGES = 0 +PD_SELECTION = 1 +PD_PAGENUMS = 2 +PD_NOSELECTION = 4 +PD_NOPAGENUMS = 8 +PD_COLLATE = 16 +PD_PRINTTOFILE = 32 +PD_PRINTSETUP = 64 +PD_NOWARNING = 128 +PD_RETURNDC = 256 +PD_RETURNIC = 512 +PD_RETURNDEFAULT = 1024 +PD_SHOWHELP = 2048 +PD_ENABLEPRINTHOOK = 4096 +PD_ENABLESETUPHOOK = 8192 +PD_ENABLEPRINTTEMPLATE = 16384 +PD_ENABLESETUPTEMPLATE = 32768 +PD_ENABLEPRINTTEMPLATEHANDLE = 65536 +PD_ENABLESETUPTEMPLATEHANDLE = 131072 +PD_USEDEVMODECOPIES = 262144 +PD_DISABLEPRINTTOFILE = 524288 +PD_HIDEPRINTTOFILE = 1048576 +PD_NONETWORKBUTTON = 2097152 +DN_DEFAULTPRN = 1 +WM_PSD_PAGESETUPDLG = (WM_USER ) +WM_PSD_FULLPAGERECT = (WM_USER+1) +WM_PSD_MINMARGINRECT = (WM_USER+2) +WM_PSD_MARGINRECT = (WM_USER+3) +WM_PSD_GREEKTEXTRECT = (WM_USER+4) +WM_PSD_ENVSTAMPRECT = (WM_USER+5) +WM_PSD_YAFULLPAGERECT = (WM_USER+6) +PSD_DEFAULTMINMARGINS = 0 # default (printer's) +PSD_INWININIINTLMEASURE = 0 # 1st of 4 possible +PSD_MINMARGINS = 1 # use caller's +PSD_MARGINS = 2 # use caller's +PSD_INTHOUSANDTHSOFINCHES = 4 # 2nd of 4 possible +PSD_INHUNDREDTHSOFMILLIMETERS = 8 # 3rd of 4 possible +PSD_DISABLEMARGINS = 16 +PSD_DISABLEPRINTER = 32 +PSD_NOWARNING = 128 # must be same as PD_* +PSD_DISABLEORIENTATION = 256 +PSD_RETURNDEFAULT = 1024 # must be same as PD_* +PSD_DISABLEPAPER = 512 +PSD_SHOWHELP = 2048 # must be same as PD_* +PSD_ENABLEPAGESETUPHOOK = 8192 # must be same as PD_* +PSD_ENABLEPAGESETUPTEMPLATE = 32768 # must be same as PD_* +PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 131072 # must be same as PD_* +PSD_ENABLEPAGEPAINTHOOK = 262144 +PSD_DISABLEPAGEPAINTING = 524288 +PSD_NONETWORKBUTTON = 2097152 # must be same as PD_* + +# Generated by h2py from winreg.h +HKEY_CLASSES_ROOT = -2147483648 +HKEY_CURRENT_USER = -2147483647 +HKEY_LOCAL_MACHINE = -2147483646 +HKEY_USERS = -2147483645 +HKEY_PERFORMANCE_DATA = -2147483644 +HKEY_CURRENT_CONFIG = -2147483643 +HKEY_DYN_DATA = -2147483642 +HKEY_PERFORMANCE_TEXT = -2147483568 # ?? 4Jan98 +HKEY_PERFORMANCE_NLSTEXT = -2147483552 # ?? 4Jan98 + +# Generated by h2py from winuser.h +HWND_BROADCAST = 65535 +HWND_DESKTOP = 0 +HWND_TOP = 0 +HWND_BOTTOM = 1 +HWND_TOPMOST = -1 +HWND_NOTOPMOST = -2 +HWND_MESSAGE = -3 + +# winuser.h line 4601 +SM_CXSCREEN = 0 +SM_CYSCREEN = 1 +SM_CXVSCROLL = 2 +SM_CYHSCROLL = 3 +SM_CYCAPTION = 4 +SM_CXBORDER = 5 +SM_CYBORDER = 6 +SM_CXDLGFRAME = 7 +SM_CYDLGFRAME = 8 +SM_CYVTHUMB = 9 +SM_CXHTHUMB = 10 +SM_CXICON = 11 +SM_CYICON = 12 +SM_CXCURSOR = 13 +SM_CYCURSOR = 14 +SM_CYMENU = 15 +SM_CXFULLSCREEN = 16 +SM_CYFULLSCREEN = 17 +SM_CYKANJIWINDOW = 18 +SM_MOUSEPRESENT = 19 +SM_CYVSCROLL = 20 +SM_CXHSCROLL = 21 +SM_DEBUG = 22 +SM_SWAPBUTTON = 23 +SM_RESERVED1 = 24 +SM_RESERVED2 = 25 +SM_RESERVED3 = 26 +SM_RESERVED4 = 27 +SM_CXMIN = 28 +SM_CYMIN = 29 +SM_CXSIZE = 30 +SM_CYSIZE = 31 +SM_CXFRAME = 32 +SM_CYFRAME = 33 +SM_CXMINTRACK = 34 +SM_CYMINTRACK = 35 +SM_CXDOUBLECLK = 36 +SM_CYDOUBLECLK = 37 +SM_CXICONSPACING = 38 +SM_CYICONSPACING = 39 +SM_MENUDROPALIGNMENT = 40 +SM_PENWINDOWS = 41 +SM_DBCSENABLED = 42 +SM_CMOUSEBUTTONS = 43 +SM_CXFIXEDFRAME = SM_CXDLGFRAME +SM_CYFIXEDFRAME = SM_CYDLGFRAME +SM_CXSIZEFRAME = SM_CXFRAME +SM_CYSIZEFRAME = SM_CYFRAME +SM_SECURE = 44 +SM_CXEDGE = 45 +SM_CYEDGE = 46 +SM_CXMINSPACING = 47 +SM_CYMINSPACING = 48 +SM_CXSMICON = 49 +SM_CYSMICON = 50 +SM_CYSMCAPTION = 51 +SM_CXSMSIZE = 52 +SM_CYSMSIZE = 53 +SM_CXMENUSIZE = 54 +SM_CYMENUSIZE = 55 +SM_ARRANGE = 56 +SM_CXMINIMIZED = 57 +SM_CYMINIMIZED = 58 +SM_CXMAXTRACK = 59 +SM_CYMAXTRACK = 60 +SM_CXMAXIMIZED = 61 +SM_CYMAXIMIZED = 62 +SM_NETWORK = 63 +SM_CLEANBOOT = 67 +SM_CXDRAG = 68 +SM_CYDRAG = 69 +SM_SHOWSOUNDS = 70 +SM_CXMENUCHECK = 71 +SM_CYMENUCHECK = 72 +SM_SLOWMACHINE = 73 +SM_MIDEASTENABLED = 74 +SM_MOUSEWHEELPRESENT = 75 +SM_XVIRTUALSCREEN = 76 +SM_YVIRTUALSCREEN = 77 +SM_CXVIRTUALSCREEN = 78 +SM_CYVIRTUALSCREEN = 79 +SM_CMONITORS = 80 +SM_SAMEDISPLAYFORMAT = 81 +SM_CMETRICS = 83 +MNC_IGNORE = 0 +MNC_CLOSE = 1 +MNC_EXECUTE = 2 +MNC_SELECT = 3 +MNS_NOCHECK = -2147483648 +MNS_MODELESS = 1073741824 +MNS_DRAGDROP = 536870912 +MNS_AUTODISMISS = 268435456 +MNS_NOTIFYBYPOS = 134217728 +MNS_CHECKORBMP = 67108864 +MIM_MAXHEIGHT = 1 +MIM_BACKGROUND = 2 +MIM_HELPID = 4 +MIM_MENUDATA = 8 +MIM_STYLE = 16 +MIM_APPLYTOSUBMENUS = -2147483648 +MND_CONTINUE = 0 +MND_ENDMENU = 1 +MNGOF_GAP = 3 +MNGO_NOINTERFACE = 0 +MNGO_NOERROR = 1 +MIIM_STATE = 1 +MIIM_ID = 2 +MIIM_SUBMENU = 4 +MIIM_CHECKMARKS = 8 +MIIM_TYPE = 16 +MIIM_DATA = 32 +MIIM_STRING = 64 +MIIM_BITMAP = 128 +MIIM_FTYPE = 256 +HBMMENU_CALLBACK = -1 +HBMMENU_SYSTEM = 1 +HBMMENU_MBAR_RESTORE = 2 +HBMMENU_MBAR_MINIMIZE = 3 +HBMMENU_MBAR_CLOSE = 5 +HBMMENU_MBAR_CLOSE_D = 6 +HBMMENU_MBAR_MINIMIZE_D = 7 +HBMMENU_POPUP_CLOSE = 8 +HBMMENU_POPUP_RESTORE = 9 +HBMMENU_POPUP_MAXIMIZE = 10 +HBMMENU_POPUP_MINIMIZE = 11 +GMDI_USEDISABLED = 1 +GMDI_GOINTOPOPUPS = 2 +TPM_LEFTBUTTON = 0 +TPM_RIGHTBUTTON = 2 +TPM_LEFTALIGN = 0 +TPM_CENTERALIGN = 4 +TPM_RIGHTALIGN = 8 +TPM_TOPALIGN = 0 +TPM_VCENTERALIGN = 16 +TPM_BOTTOMALIGN = 32 +TPM_HORIZONTAL = 0 +TPM_VERTICAL = 64 +TPM_NONOTIFY = 128 +TPM_RETURNCMD = 256 +TPM_RECURSE = 1 +DOF_EXECUTABLE = 32769 +DOF_DOCUMENT = 32770 +DOF_DIRECTORY = 32771 +DOF_MULTIPLE = 32772 +DOF_PROGMAN = 1 +DOF_SHELLDATA = 2 +DO_DROPFILE = 1162627398 +DO_PRINTFILE = 1414419024 +DT_TOP = 0 +DT_LEFT = 0 +DT_CENTER = 1 +DT_RIGHT = 2 +DT_VCENTER = 4 +DT_BOTTOM = 8 +DT_WORDBREAK = 16 +DT_SINGLELINE = 32 +DT_EXPANDTABS = 64 +DT_TABSTOP = 128 +DT_NOCLIP = 256 +DT_EXTERNALLEADING = 512 +DT_CALCRECT = 1024 +DT_NOPREFIX = 2048 +DT_INTERNAL = 4096 +DT_EDITCONTROL = 8192 +DT_PATH_ELLIPSIS = 16384 +DT_END_ELLIPSIS = 32768 +DT_MODIFYSTRING = 65536 +DT_RTLREADING = 131072 +DT_WORD_ELLIPSIS = 262144 +DST_COMPLEX = 0 +DST_TEXT = 1 +DST_PREFIXTEXT = 2 +DST_ICON = 3 +DST_BITMAP = 4 +DSS_NORMAL = 0 +DSS_UNION = 16 +DSS_DISABLED = 32 +DSS_MONO = 128 +DSS_RIGHT = 32768 +DCX_WINDOW = 1 +DCX_CACHE = 2 +DCX_NORESETATTRS = 4 +DCX_CLIPCHILDREN = 8 +DCX_CLIPSIBLINGS = 16 +DCX_PARENTCLIP = 32 +DCX_EXCLUDERGN = 64 +DCX_INTERSECTRGN = 128 +DCX_EXCLUDEUPDATE = 256 +DCX_INTERSECTUPDATE = 512 +DCX_LOCKWINDOWUPDATE = 1024 +DCX_VALIDATE = 2097152 +CUDR_NORMAL = 0 +CUDR_NOSNAPTOGRID = 1 +CUDR_NORESOLVEPOSITIONS = 2 +CUDR_NOCLOSEGAPS = 4 +CUDR_NEGATIVECOORDS = 8 +CUDR_NOPRIMARY = 16 +RDW_INVALIDATE = 1 +RDW_INTERNALPAINT = 2 +RDW_ERASE = 4 +RDW_VALIDATE = 8 +RDW_NOINTERNALPAINT = 16 +RDW_NOERASE = 32 +RDW_NOCHILDREN = 64 +RDW_ALLCHILDREN = 128 +RDW_UPDATENOW = 256 +RDW_ERASENOW = 512 +RDW_FRAME = 1024 +RDW_NOFRAME = 2048 +SW_SCROLLCHILDREN = 1 +SW_INVALIDATE = 2 +SW_ERASE = 4 +SW_SMOOTHSCROLL = 16 # Use smooth scrolling +ESB_ENABLE_BOTH = 0 +ESB_DISABLE_BOTH = 3 +ESB_DISABLE_LEFT = 1 +ESB_DISABLE_RIGHT = 2 +ESB_DISABLE_UP = 1 +ESB_DISABLE_DOWN = 2 +ESB_DISABLE_LTUP = ESB_DISABLE_LEFT +ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT +HELPINFO_WINDOW = 1 +HELPINFO_MENUITEM = 2 +MB_OK = 0 +MB_OKCANCEL = 1 +MB_ABORTRETRYIGNORE = 2 +MB_YESNOCANCEL = 3 +MB_YESNO = 4 +MB_RETRYCANCEL = 5 +MB_ICONHAND = 16 +MB_ICONQUESTION = 32 +MB_ICONEXCLAMATION = 48 +MB_ICONASTERISK = 64 +MB_ICONWARNING = MB_ICONEXCLAMATION +MB_ICONERROR = MB_ICONHAND +MB_ICONINFORMATION = MB_ICONASTERISK +MB_ICONSTOP = MB_ICONHAND +MB_DEFBUTTON1 = 0 +MB_DEFBUTTON2 = 256 +MB_DEFBUTTON3 = 512 +MB_DEFBUTTON4 = 768 +MB_APPLMODAL = 0 +MB_SYSTEMMODAL = 4096 +MB_TASKMODAL = 8192 +MB_HELP = 16384 +MB_NOFOCUS = 32768 +MB_SETFOREGROUND = 65536 +MB_DEFAULT_DESKTOP_ONLY = 131072 +MB_TOPMOST = 262144 +MB_RIGHT = 524288 +MB_RTLREADING = 1048576 +MB_SERVICE_NOTIFICATION = 2097152 +MB_TYPEMASK = 15 +MB_USERICON = 128 +MB_ICONMASK = 240 +MB_DEFMASK = 3840 +MB_MODEMASK = 12288 +MB_MISCMASK = 49152 +# winuser.h line 6373 +CWP_ALL = 0 +CWP_SKIPINVISIBLE = 1 +CWP_SKIPDISABLED = 2 +CWP_SKIPTRANSPARENT = 4 +CTLCOLOR_MSGBOX = 0 +CTLCOLOR_EDIT = 1 +CTLCOLOR_LISTBOX = 2 +CTLCOLOR_BTN = 3 +CTLCOLOR_DLG = 4 +CTLCOLOR_SCROLLBAR = 5 +CTLCOLOR_STATIC = 6 +CTLCOLOR_MAX = 7 +COLOR_SCROLLBAR = 0 +COLOR_BACKGROUND = 1 +COLOR_ACTIVECAPTION = 2 +COLOR_INACTIVECAPTION = 3 +COLOR_MENU = 4 +COLOR_WINDOW = 5 +COLOR_WINDOWFRAME = 6 +COLOR_MENUTEXT = 7 +COLOR_WINDOWTEXT = 8 +COLOR_CAPTIONTEXT = 9 +COLOR_ACTIVEBORDER = 10 +COLOR_INACTIVEBORDER = 11 +COLOR_APPWORKSPACE = 12 +COLOR_HIGHLIGHT = 13 +COLOR_HIGHLIGHTTEXT = 14 +COLOR_BTNFACE = 15 +COLOR_BTNSHADOW = 16 +COLOR_GRAYTEXT = 17 +COLOR_BTNTEXT = 18 +COLOR_INACTIVECAPTIONTEXT = 19 +COLOR_BTNHIGHLIGHT = 20 +COLOR_3DDKSHADOW = 21 +COLOR_3DLIGHT = 22 +COLOR_INFOTEXT = 23 +COLOR_INFOBK = 24 +COLOR_HOTLIGHT = 26 +COLOR_GRADIENTACTIVECAPTION = 27 +COLOR_GRADIENTINACTIVECAPTION = 28 +COLOR_DESKTOP = COLOR_BACKGROUND +COLOR_3DFACE = COLOR_BTNFACE +COLOR_3DSHADOW = COLOR_BTNSHADOW +COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT +COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT +COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT +GW_HWNDFIRST = 0 +GW_HWNDLAST = 1 +GW_HWNDNEXT = 2 +GW_HWNDPREV = 3 +GW_OWNER = 4 +GW_CHILD = 5 +GW_ENABLEDPOPUP = 6 +GW_MAX = 6 +MF_INSERT = 0 +MF_CHANGE = 128 +MF_APPEND = 256 +MF_DELETE = 512 +MF_REMOVE = 4096 +MF_BYCOMMAND = 0 +MF_BYPOSITION = 1024 +MF_SEPARATOR = 2048 +MF_ENABLED = 0 +MF_GRAYED = 1 +MF_DISABLED = 2 +MF_UNCHECKED = 0 +MF_CHECKED = 8 +MF_USECHECKBITMAPS = 512 +MF_STRING = 0 +MF_BITMAP = 4 +MF_OWNERDRAW = 256 +MF_POPUP = 16 +MF_MENUBARBREAK = 32 +MF_MENUBREAK = 64 +MF_UNHILITE = 0 +MF_HILITE = 128 +MF_DEFAULT = 4096 +MF_SYSMENU = 8192 +MF_HELP = 16384 +MF_RIGHTJUSTIFY = 16384 +MF_MOUSESELECT = 32768 +MF_END = 128 +MFT_STRING = MF_STRING +MFT_BITMAP = MF_BITMAP +MFT_MENUBARBREAK = MF_MENUBARBREAK +MFT_MENUBREAK = MF_MENUBREAK +MFT_OWNERDRAW = MF_OWNERDRAW +MFT_RADIOCHECK = 512 +MFT_SEPARATOR = MF_SEPARATOR +MFT_RIGHTORDER = 8192 +MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY +MFS_GRAYED = 3 +MFS_DISABLED = MFS_GRAYED +MFS_CHECKED = MF_CHECKED +MFS_HILITE = MF_HILITE +MFS_ENABLED = MF_ENABLED +MFS_UNCHECKED = MF_UNCHECKED +MFS_UNHILITE = MF_UNHILITE +MFS_DEFAULT = MF_DEFAULT +MFS_MASK = 4235 +MFS_HOTTRACKDRAWN = 268435456 +MFS_CACHEDBMP = 536870912 +MFS_BOTTOMGAPDROP = 1073741824 +MFS_TOPGAPDROP = -2147483648 +MFS_GAPDROP = -1073741824 +SC_SIZE = 61440 +SC_MOVE = 61456 +SC_MINIMIZE = 61472 +SC_MAXIMIZE = 61488 +SC_NEXTWINDOW = 61504 +SC_PREVWINDOW = 61520 +SC_CLOSE = 61536 +SC_VSCROLL = 61552 +SC_HSCROLL = 61568 +SC_MOUSEMENU = 61584 +SC_KEYMENU = 61696 +SC_ARRANGE = 61712 +SC_RESTORE = 61728 +SC_TASKLIST = 61744 +SC_SCREENSAVE = 61760 +SC_HOTKEY = 61776 +SC_DEFAULT = 61792 +SC_MONITORPOWER = 61808 +SC_CONTEXTHELP = 61824 +SC_SEPARATOR = 61455 +SC_ICON = SC_MINIMIZE +SC_ZOOM = SC_MAXIMIZE +IDC_ARROW = 32512 +IDC_IBEAM = 32513 +IDC_WAIT = 32514 +IDC_CROSS = 32515 +IDC_UPARROW = 32516 +IDC_SIZE = 32640 # OBSOLETE: use IDC_SIZEALL +IDC_ICON = 32641 # OBSOLETE: use IDC_ARROW +IDC_SIZENWSE = 32642 +IDC_SIZENESW = 32643 +IDC_SIZEWE = 32644 +IDC_SIZENS = 32645 +IDC_SIZEALL = 32646 +IDC_NO = 32648 +IDC_HAND = 32649 +IDC_APPSTARTING = 32650 +IDC_HELP = 32651 +IMAGE_BITMAP = 0 +IMAGE_ICON = 1 +IMAGE_CURSOR = 2 +IMAGE_ENHMETAFILE = 3 +LR_DEFAULTCOLOR = 0 +LR_MONOCHROME = 1 +LR_COLOR = 2 +LR_COPYRETURNORG = 4 +LR_COPYDELETEORG = 8 +LR_LOADFROMFILE = 16 +LR_LOADTRANSPARENT = 32 +LR_DEFAULTSIZE = 64 +LR_LOADREALSIZE = 128 +LR_LOADMAP3DCOLORS = 4096 +LR_CREATEDIBSECTION = 8192 +LR_COPYFROMRESOURCE = 16384 +LR_SHARED = 32768 +DI_MASK = 1 +DI_IMAGE = 2 +DI_NORMAL = 3 +DI_COMPAT = 4 +DI_DEFAULTSIZE = 8 +RES_ICON = 1 +RES_CURSOR = 2 +OBM_CLOSE = 32754 +OBM_UPARROW = 32753 +OBM_DNARROW = 32752 +OBM_RGARROW = 32751 +OBM_LFARROW = 32750 +OBM_REDUCE = 32749 +OBM_ZOOM = 32748 +OBM_RESTORE = 32747 +OBM_REDUCED = 32746 +OBM_ZOOMD = 32745 +OBM_RESTORED = 32744 +OBM_UPARROWD = 32743 +OBM_DNARROWD = 32742 +OBM_RGARROWD = 32741 +OBM_LFARROWD = 32740 +OBM_MNARROW = 32739 +OBM_COMBO = 32738 +OBM_UPARROWI = 32737 +OBM_DNARROWI = 32736 +OBM_RGARROWI = 32735 +OBM_LFARROWI = 32734 +OBM_OLD_CLOSE = 32767 +OBM_SIZE = 32766 +OBM_OLD_UPARROW = 32765 +OBM_OLD_DNARROW = 32764 +OBM_OLD_RGARROW = 32763 +OBM_OLD_LFARROW = 32762 +OBM_BTSIZE = 32761 +OBM_CHECK = 32760 +OBM_CHECKBOXES = 32759 +OBM_BTNCORNERS = 32758 +OBM_OLD_REDUCE = 32757 +OBM_OLD_ZOOM = 32756 +OBM_OLD_RESTORE = 32755 +OCR_NORMAL = 32512 +OCR_IBEAM = 32513 +OCR_WAIT = 32514 +OCR_CROSS = 32515 +OCR_UP = 32516 +OCR_SIZE = 32640 +OCR_ICON = 32641 +OCR_SIZENWSE = 32642 +OCR_SIZENESW = 32643 +OCR_SIZEWE = 32644 +OCR_SIZENS = 32645 +OCR_SIZEALL = 32646 +OCR_ICOCUR = 32647 +OCR_NO = 32648 +OCR_HAND = 32649 +OCR_APPSTARTING = 32650 +# winuser.h line 7455 +OIC_SAMPLE = 32512 +OIC_HAND = 32513 +OIC_QUES = 32514 +OIC_BANG = 32515 +OIC_NOTE = 32516 +OIC_WINLOGO = 32517 +OIC_WARNING = OIC_BANG +OIC_ERROR = OIC_HAND +OIC_INFORMATION = OIC_NOTE +ORD_LANGDRIVER = 1 +IDI_APPLICATION = 32512 +IDI_HAND = 32513 +IDI_QUESTION = 32514 +IDI_EXCLAMATION = 32515 +IDI_ASTERISK = 32516 +IDI_WINLOGO = 32517 +IDI_WARNING = IDI_EXCLAMATION +IDI_ERROR = IDI_HAND +IDI_INFORMATION = IDI_ASTERISK +IDOK = 1 +IDCANCEL = 2 +IDABORT = 3 +IDRETRY = 4 +IDIGNORE = 5 +IDYES = 6 +IDNO = 7 +IDCLOSE = 8 +IDHELP = 9 +ES_LEFT = 0 +ES_CENTER = 1 +ES_RIGHT = 2 +ES_MULTILINE = 4 +ES_UPPERCASE = 8 +ES_LOWERCASE = 16 +ES_PASSWORD = 32 +ES_AUTOVSCROLL = 64 +ES_AUTOHSCROLL = 128 +ES_NOHIDESEL = 256 +ES_OEMCONVERT = 1024 +ES_READONLY = 2048 +ES_WANTRETURN = 4096 +ES_NUMBER = 8192 +EN_SETFOCUS = 256 +EN_KILLFOCUS = 512 +EN_CHANGE = 768 +EN_UPDATE = 1024 +EN_ERRSPACE = 1280 +EN_MAXTEXT = 1281 +EN_HSCROLL = 1537 +EN_VSCROLL = 1538 +EC_LEFTMARGIN = 1 +EC_RIGHTMARGIN = 2 +EC_USEFONTINFO = 65535 +EMSIS_COMPOSITIONSTRING = 1 +EIMES_GETCOMPSTRATONCE = 1 +EIMES_CANCELCOMPSTRINFOCUS = 2 +EIMES_COMPLETECOMPSTRKILLFOCUS = 4 +EM_GETSEL = 176 +EM_SETSEL = 177 +EM_GETRECT = 178 +EM_SETRECT = 179 +EM_SETRECTNP = 180 +EM_SCROLL = 181 +EM_LINESCROLL = 182 +EM_SCROLLCARET = 183 +EM_GETMODIFY = 184 +EM_SETMODIFY = 185 +EM_GETLINECOUNT = 186 +EM_LINEINDEX = 187 +EM_SETHANDLE = 188 +EM_GETHANDLE = 189 +EM_GETTHUMB = 190 +EM_LINELENGTH = 193 +EM_REPLACESEL = 194 +EM_GETLINE = 196 +EM_LIMITTEXT = 197 +EM_CANUNDO = 198 +EM_UNDO = 199 +EM_FMTLINES = 200 +EM_LINEFROMCHAR = 201 +EM_SETTABSTOPS = 203 +EM_SETPASSWORDCHAR = 204 +EM_EMPTYUNDOBUFFER = 205 +EM_GETFIRSTVISIBLELINE = 206 +EM_SETREADONLY = 207 +EM_SETWORDBREAKPROC = 208 +EM_GETWORDBREAKPROC = 209 +EM_GETPASSWORDCHAR = 210 +EM_SETMARGINS = 211 +EM_GETMARGINS = 212 +EM_SETLIMITTEXT = EM_LIMITTEXT +EM_GETLIMITTEXT = 213 +EM_POSFROMCHAR = 214 +EM_CHARFROMPOS = 215 +EM_SETIMESTATUS = 216 +EM_GETIMESTATUS = 217 +WB_LEFT = 0 +WB_RIGHT = 1 +WB_ISDELIMITER = 2 +BS_PUSHBUTTON = 0 +BS_DEFPUSHBUTTON = 1 +BS_CHECKBOX = 2 +BS_AUTOCHECKBOX = 3 +BS_RADIOBUTTON = 4 +BS_3STATE = 5 +BS_AUTO3STATE = 6 +BS_GROUPBOX = 7 +BS_USERBUTTON = 8 +BS_AUTORADIOBUTTON = 9 +BS_OWNERDRAW = 11 +BS_LEFTTEXT = 32 +BS_TEXT = 0 +BS_ICON = 64 +BS_BITMAP = 128 +BS_LEFT = 256 +BS_RIGHT = 512 +BS_CENTER = 768 +BS_TOP = 1024 +BS_BOTTOM = 2048 +BS_VCENTER = 3072 +BS_PUSHLIKE = 4096 +BS_MULTILINE = 8192 +BS_NOTIFY = 16384 +BS_FLAT = 32768 +BS_RIGHTBUTTON = BS_LEFTTEXT +BN_CLICKED = 0 +BN_PAINT = 1 +BN_HILITE = 2 +BN_UNHILITE = 3 +BN_DISABLE = 4 +BN_DOUBLECLICKED = 5 +BN_PUSHED = BN_HILITE +BN_UNPUSHED = BN_UNHILITE +BN_DBLCLK = BN_DOUBLECLICKED +BN_SETFOCUS = 6 +BN_KILLFOCUS = 7 +BM_GETCHECK = 240 +BM_SETCHECK = 241 +BM_GETSTATE = 242 +BM_SETSTATE = 243 +BM_SETSTYLE = 244 +BM_CLICK = 245 +BM_GETIMAGE = 246 +BM_SETIMAGE = 247 +BST_UNCHECKED = 0 +BST_CHECKED = 1 +BST_INDETERMINATE = 2 +BST_PUSHED = 4 +BST_FOCUS = 8 +SS_LEFT = 0 +SS_CENTER = 1 +SS_RIGHT = 2 +SS_ICON = 3 +SS_BLACKRECT = 4 +SS_GRAYRECT = 5 +SS_WHITERECT = 6 +SS_BLACKFRAME = 7 +SS_GRAYFRAME = 8 +SS_WHITEFRAME = 9 +SS_USERITEM = 10 +SS_SIMPLE = 11 +SS_LEFTNOWORDWRAP = 12 +SS_BITMAP = 14 +SS_OWNERDRAW = 13 +SS_ENHMETAFILE = 15 +SS_ETCHEDHORZ = 16 +SS_ETCHEDVERT = 17 +SS_ETCHEDFRAME = 18 +SS_TYPEMASK = 31 +SS_NOPREFIX = 128 +SS_NOTIFY = 256 +SS_CENTERIMAGE = 512 +SS_RIGHTJUST = 1024 +SS_REALSIZEIMAGE = 2048 +SS_SUNKEN = 4096 +SS_ENDELLIPSIS = 16384 +SS_PATHELLIPSIS = 32768 +SS_WORDELLIPSIS = 49152 +SS_ELLIPSISMASK = 49152 +STM_SETICON = 368 +STM_GETICON = 369 +STM_SETIMAGE = 370 +STM_GETIMAGE = 371 +STN_CLICKED = 0 +STN_DBLCLK = 1 +STN_ENABLE = 2 +STN_DISABLE = 3 +STM_MSGMAX = 372 +DWL_MSGRESULT = 0 +DWL_DLGPROC = 4 +DWL_USER = 8 +DDL_READWRITE = 0 +DDL_READONLY = 1 +DDL_HIDDEN = 2 +DDL_SYSTEM = 4 +DDL_DIRECTORY = 16 +DDL_ARCHIVE = 32 +DDL_POSTMSGS = 8192 +DDL_DRIVES = 16384 +DDL_EXCLUSIVE = 32768 + +#from winuser.h line 153 +RT_CURSOR = 1 +RT_BITMAP = 2 +RT_ICON = 3 +RT_MENU = 4 +RT_DIALOG = 5 +RT_STRING = 6 +RT_FONTDIR = 7 +RT_FONT = 8 +RT_ACCELERATOR = 9 +RT_RCDATA = 10 +RT_MESSAGETABLE = 11 +DIFFERENCE = 11 +RT_GROUP_CURSOR = (RT_CURSOR + DIFFERENCE) +RT_GROUP_ICON = (RT_ICON + DIFFERENCE) +RT_VERSION = 16 +RT_DLGINCLUDE = 17 +RT_PLUGPLAY = 19 +RT_VXD = 20 +RT_ANICURSOR = 21 +RT_ANIICON = 22 +RT_HTML = 23 +# from winuser.h line 218 +SB_HORZ = 0 +SB_VERT = 1 +SB_CTL = 2 +SB_BOTH = 3 +SB_LINEUP = 0 +SB_LINELEFT = 0 +SB_LINEDOWN = 1 +SB_LINERIGHT = 1 +SB_PAGEUP = 2 +SB_PAGELEFT = 2 +SB_PAGEDOWN = 3 +SB_PAGERIGHT = 3 +SB_THUMBPOSITION = 4 +SB_THUMBTRACK = 5 +SB_TOP = 6 +SB_LEFT = 6 +SB_BOTTOM = 7 +SB_RIGHT = 7 +SB_ENDSCROLL = 8 +SW_HIDE = 0 +SW_SHOWNORMAL = 1 +SW_NORMAL = 1 +SW_SHOWMINIMIZED = 2 +SW_SHOWMAXIMIZED = 3 +SW_MAXIMIZE = 3 +SW_SHOWNOACTIVATE = 4 +SW_SHOW = 5 +SW_MINIMIZE = 6 +SW_SHOWMINNOACTIVE = 7 +SW_SHOWNA = 8 +SW_RESTORE = 9 +SW_SHOWDEFAULT = 10 +SW_FORCEMINIMIZE = 11 +SW_MAX = 11 +HIDE_WINDOW = 0 +SHOW_OPENWINDOW = 1 +SHOW_ICONWINDOW = 2 +SHOW_FULLSCREEN = 3 +SHOW_OPENNOACTIVATE = 4 +SW_PARENTCLOSING = 1 +SW_OTHERZOOM = 2 +SW_PARENTOPENING = 3 +SW_OTHERUNZOOM = 4 +AW_HOR_POSITIVE = 1 +AW_HOR_NEGATIVE = 2 +AW_VER_POSITIVE = 4 +AW_VER_NEGATIVE = 8 +AW_CENTER = 16 +AW_HIDE = 65536 +AW_ACTIVATE = 131072 +AW_SLIDE = 262144 +AW_BLEND = 524288 +KF_EXTENDED = 256 +KF_DLGMODE = 2048 +KF_MENUMODE = 4096 +KF_ALTDOWN = 8192 +KF_REPEAT = 16384 +KF_UP = 32768 +VK_LBUTTON = 1 +VK_RBUTTON = 2 +VK_CANCEL = 3 +VK_MBUTTON = 4 +VK_BACK = 8 +VK_TAB = 9 +VK_CLEAR = 12 +VK_RETURN = 13 +VK_SHIFT = 16 +VK_CONTROL = 17 +VK_MENU = 18 +VK_PAUSE = 19 +VK_CAPITAL = 20 +VK_KANA = 21 +VK_HANGEUL = 21 # old name - should be here for compatibility +VK_HANGUL = 21 +VK_JUNJA = 23 +VK_FINAL = 24 +VK_HANJA = 25 +VK_KANJI = 25 +VK_ESCAPE = 27 +VK_CONVERT = 28 +VK_NONCONVERT = 29 +VK_ACCEPT = 30 +VK_MODECHANGE = 31 +VK_SPACE = 32 +VK_PRIOR = 33 +VK_NEXT = 34 +VK_END = 35 +VK_HOME = 36 +VK_LEFT = 37 +VK_UP = 38 +VK_RIGHT = 39 +VK_DOWN = 40 +VK_SELECT = 41 +VK_PRINT = 42 +VK_EXECUTE = 43 +VK_SNAPSHOT = 44 +VK_INSERT = 45 +VK_DELETE = 46 +VK_HELP = 47 +VK_LWIN = 91 +VK_RWIN = 92 +VK_APPS = 93 +VK_NUMPAD0 = 96 +VK_NUMPAD1 = 97 +VK_NUMPAD2 = 98 +VK_NUMPAD3 = 99 +VK_NUMPAD4 = 100 +VK_NUMPAD5 = 101 +VK_NUMPAD6 = 102 +VK_NUMPAD7 = 103 +VK_NUMPAD8 = 104 +VK_NUMPAD9 = 105 +VK_MULTIPLY = 106 +VK_ADD = 107 +VK_SEPARATOR = 108 +VK_SUBTRACT = 109 +VK_DECIMAL = 110 +VK_DIVIDE = 111 +VK_F1 = 112 +VK_F2 = 113 +VK_F3 = 114 +VK_F4 = 115 +VK_F5 = 116 +VK_F6 = 117 +VK_F7 = 118 +VK_F8 = 119 +VK_F9 = 120 +VK_F10 = 121 +VK_F11 = 122 +VK_F12 = 123 +VK_F13 = 124 +VK_F14 = 125 +VK_F15 = 126 +VK_F16 = 127 +VK_F17 = 128 +VK_F18 = 129 +VK_F19 = 130 +VK_F20 = 131 +VK_F21 = 132 +VK_F22 = 133 +VK_F23 = 134 +VK_F24 = 135 +VK_NUMLOCK = 144 +VK_SCROLL = 145 +VK_LSHIFT = 160 +VK_RSHIFT = 161 +VK_LCONTROL = 162 +VK_RCONTROL = 163 +VK_LMENU = 164 +VK_RMENU = 165 +VK_PROCESSKEY = 229 +VK_ATTN = 246 +VK_CRSEL = 247 +VK_EXSEL = 248 +VK_EREOF = 249 +VK_PLAY = 250 +VK_ZOOM = 251 +VK_NONAME = 252 +VK_PA1 = 253 +VK_OEM_CLEAR = 254 +# multi-media related "keys" +MOUSEEVENTF_XDOWN = 0x0080 +MOUSEEVENTF_XUP = 0x0100 +MOUSEEVENTF_WHEEL = 0x0800 +VK_XBUTTON1 = 0x05 +VK_XBUTTON2 = 0x06 +VK_VOLUME_MUTE = 0xAD +VK_VOLUME_DOWN = 0xAE +VK_VOLUME_UP = 0xAF +VK_MEDIA_NEXT_TRACK = 0xB0 +VK_MEDIA_PREV_TRACK = 0xB1 +VK_MEDIA_PLAY_PAUSE = 0xB3 +VK_BROWSER_BACK = 0xA6 +VK_BROWSER_FORWARD = 0xA7 +WH_MIN = (-1) +WH_MSGFILTER = (-1) +WH_JOURNALRECORD = 0 +WH_JOURNALPLAYBACK = 1 +WH_KEYBOARD = 2 +WH_GETMESSAGE = 3 +WH_CALLWNDPROC = 4 +WH_CBT = 5 +WH_SYSMSGFILTER = 6 +WH_MOUSE = 7 +WH_HARDWARE = 8 +WH_DEBUG = 9 +WH_SHELL = 10 +WH_FOREGROUNDIDLE = 11 +WH_CALLWNDPROCRET = 12 +WH_KEYBOARD_LL = 13 +WH_MOUSE_LL = 14 +WH_MAX = 14 +WH_MINHOOK = WH_MIN +WH_MAXHOOK = WH_MAX +HC_ACTION = 0 +HC_GETNEXT = 1 +HC_SKIP = 2 +HC_NOREMOVE = 3 +HC_NOREM = HC_NOREMOVE +HC_SYSMODALON = 4 +HC_SYSMODALOFF = 5 +HCBT_MOVESIZE = 0 +HCBT_MINMAX = 1 +HCBT_QS = 2 +HCBT_CREATEWND = 3 +HCBT_DESTROYWND = 4 +HCBT_ACTIVATE = 5 +HCBT_CLICKSKIPPED = 6 +HCBT_KEYSKIPPED = 7 +HCBT_SYSCOMMAND = 8 +HCBT_SETFOCUS = 9 +MSGF_DIALOGBOX = 0 +MSGF_MESSAGEBOX = 1 +MSGF_MENU = 2 +#MSGF_MOVE = 3 +#MSGF_SIZE = 4 +MSGF_SCROLLBAR = 5 +MSGF_NEXTWINDOW = 6 +#MSGF_MAINLOOP = 8 +MSGF_MAX = 8 +MSGF_USER = 4096 +HSHELL_WINDOWCREATED = 1 +HSHELL_WINDOWDESTROYED = 2 +HSHELL_ACTIVATESHELLWINDOW = 3 +HSHELL_WINDOWACTIVATED = 4 +HSHELL_GETMINRECT = 5 +HSHELL_REDRAW = 6 +HSHELL_TASKMAN = 7 +HSHELL_LANGUAGE = 8 +HSHELL_ACCESSIBILITYSTATE = 11 +ACCESS_STICKYKEYS = 1 +ACCESS_FILTERKEYS = 2 +ACCESS_MOUSEKEYS = 3 +# winuser.h line 624 +LLKHF_EXTENDED = 1 +LLKHF_INJECTED = 16 +LLKHF_ALTDOWN = 32 +LLKHF_UP = 128 +LLKHF_LOWER_IL_INJECTED = 2 +LLMHF_INJECTED = 1 +LLMHF_LOWER_IL_INJECTED = 2 +# line 692 +HKL_PREV = 0 +HKL_NEXT = 1 +KLF_ACTIVATE = 1 +KLF_SUBSTITUTE_OK = 2 +KLF_UNLOADPREVIOUS = 4 +KLF_REORDER = 8 +KLF_REPLACELANG = 16 +KLF_NOTELLSHELL = 128 +KLF_SETFORPROCESS = 256 +KL_NAMELENGTH = 9 +DESKTOP_READOBJECTS = 1 +DESKTOP_CREATEWINDOW = 2 +DESKTOP_CREATEMENU = 4 +DESKTOP_HOOKCONTROL = 8 +DESKTOP_JOURNALRECORD = 16 +DESKTOP_JOURNALPLAYBACK = 32 +DESKTOP_ENUMERATE = 64 +DESKTOP_WRITEOBJECTS = 128 +DESKTOP_SWITCHDESKTOP = 256 +DF_ALLOWOTHERACCOUNTHOOK = 1 +WINSTA_ENUMDESKTOPS = 1 +WINSTA_READATTRIBUTES = 2 +WINSTA_ACCESSCLIPBOARD = 4 +WINSTA_CREATEDESKTOP = 8 +WINSTA_WRITEATTRIBUTES = 16 +WINSTA_ACCESSGLOBALATOMS = 32 +WINSTA_EXITWINDOWS = 64 +WINSTA_ENUMERATE = 256 +WINSTA_READSCREEN = 512 +WSF_VISIBLE = 1 +UOI_FLAGS = 1 +UOI_NAME = 2 +UOI_TYPE = 3 +UOI_USER_SID = 4 +GWL_WNDPROC = (-4) +GWL_HINSTANCE = (-6) +GWL_HWNDPARENT = (-8) +GWL_STYLE = (-16) +GWL_EXSTYLE = (-20) +GWL_USERDATA = (-21) +GWL_ID = (-12) +GCL_MENUNAME = (-8) +GCL_HBRBACKGROUND = (-10) +GCL_HCURSOR = (-12) +GCL_HICON = (-14) +GCL_HMODULE = (-16) +GCL_CBWNDEXTRA = (-18) +GCL_CBCLSEXTRA = (-20) +GCL_WNDPROC = (-24) +GCL_STYLE = (-26) +GCW_ATOM = (-32) +GCL_HICONSM = (-34) +# line 1291 +WM_NULL = 0 +WM_CREATE = 1 +WM_DESTROY = 2 +WM_MOVE = 3 +WM_SIZE = 5 +WM_ACTIVATE = 6 +WA_INACTIVE = 0 +WA_ACTIVE = 1 +WA_CLICKACTIVE = 2 +WM_SETFOCUS = 7 +WM_KILLFOCUS = 8 +WM_ENABLE = 10 +WM_SETREDRAW = 11 +WM_SETTEXT = 12 +WM_GETTEXT = 13 +WM_GETTEXTLENGTH = 14 +WM_PAINT = 15 +WM_CLOSE = 16 +WM_QUERYENDSESSION = 17 +WM_QUIT = 18 +WM_QUERYOPEN = 19 +WM_ERASEBKGND = 20 +WM_SYSCOLORCHANGE = 21 +WM_ENDSESSION = 22 +WM_SHOWWINDOW = 24 +WM_WININICHANGE = 26 +WM_SETTINGCHANGE = WM_WININICHANGE +WM_DEVMODECHANGE = 27 +WM_ACTIVATEAPP = 28 +WM_FONTCHANGE = 29 +WM_TIMECHANGE = 30 +WM_CANCELMODE = 31 +WM_SETCURSOR = 32 +WM_MOUSEACTIVATE = 33 +WM_CHILDACTIVATE = 34 +WM_QUEUESYNC = 35 +WM_GETMINMAXINFO = 36 +WM_PAINTICON = 38 +WM_ICONERASEBKGND = 39 +WM_NEXTDLGCTL = 40 +WM_SPOOLERSTATUS = 42 +WM_DRAWITEM = 43 +WM_MEASUREITEM = 44 +WM_DELETEITEM = 45 +WM_VKEYTOITEM = 46 +WM_CHARTOITEM = 47 +WM_SETFONT = 48 +WM_GETFONT = 49 +WM_SETHOTKEY = 50 +WM_GETHOTKEY = 51 +WM_QUERYDRAGICON = 55 +WM_COMPAREITEM = 57 +WM_GETOBJECT = 61 +WM_COMPACTING = 65 +WM_COMMNOTIFY = 68 +WM_WINDOWPOSCHANGING = 70 +WM_WINDOWPOSCHANGED = 71 +WM_POWER = 72 +PWR_OK = 1 +PWR_FAIL = (-1) +PWR_SUSPENDREQUEST = 1 +PWR_SUSPENDRESUME = 2 +PWR_CRITICALRESUME = 3 +WM_COPYDATA = 74 +WM_CANCELJOURNAL = 75 +WM_NOTIFY = 78 +WM_INPUTLANGCHANGEREQUEST = 80 +WM_INPUTLANGCHANGE = 81 +WM_TCARD = 82 +WM_HELP = 83 +WM_USERCHANGED = 84 +WM_NOTIFYFORMAT = 85 +NFR_ANSI = 1 +NFR_UNICODE = 2 +NF_QUERY = 3 +NF_REQUERY = 4 +WM_CONTEXTMENU = 123 +WM_STYLECHANGING = 124 +WM_STYLECHANGED = 125 +WM_DISPLAYCHANGE = 126 +WM_GETICON = 127 +WM_SETICON = 128 +WM_NCCREATE = 129 +WM_NCDESTROY = 130 +WM_NCCALCSIZE = 131 +WM_NCHITTEST = 132 +WM_NCPAINT = 133 +WM_NCACTIVATE = 134 +WM_GETDLGCODE = 135 +WM_SYNCPAINT = 136 +WM_NCMOUSEMOVE = 160 +WM_NCLBUTTONDOWN = 161 +WM_NCLBUTTONUP = 162 +WM_NCLBUTTONDBLCLK = 163 +WM_NCRBUTTONDOWN = 164 +WM_NCRBUTTONUP = 165 +WM_NCRBUTTONDBLCLK = 166 +WM_NCMBUTTONDOWN = 167 +WM_NCMBUTTONUP = 168 +WM_NCMBUTTONDBLCLK = 169 +WM_KEYFIRST = 256 +WM_KEYDOWN = 256 +WM_KEYUP = 257 +WM_CHAR = 258 +WM_DEADCHAR = 259 +WM_SYSKEYDOWN = 260 +WM_SYSKEYUP = 261 +WM_SYSCHAR = 262 +WM_SYSDEADCHAR = 263 +WM_KEYLAST = 264 +WM_IME_STARTCOMPOSITION = 269 +WM_IME_ENDCOMPOSITION = 270 +WM_IME_COMPOSITION = 271 +WM_IME_KEYLAST = 271 +WM_INITDIALOG = 272 +WM_COMMAND = 273 +WM_SYSCOMMAND = 274 +WM_TIMER = 275 +WM_HSCROLL = 276 +WM_VSCROLL = 277 +WM_INITMENU = 278 +WM_INITMENUPOPUP = 279 +WM_MENUSELECT = 287 +WM_MENUCHAR = 288 +WM_ENTERIDLE = 289 +WM_MENURBUTTONUP = 290 +WM_MENUDRAG = 291 +WM_MENUGETOBJECT = 292 +WM_UNINITMENUPOPUP = 293 +WM_MENUCOMMAND = 294 +WM_CTLCOLORMSGBOX = 306 +WM_CTLCOLOREDIT = 307 +WM_CTLCOLORLISTBOX = 308 +WM_CTLCOLORBTN = 309 +WM_CTLCOLORDLG = 310 +WM_CTLCOLORSCROLLBAR = 311 +WM_CTLCOLORSTATIC = 312 +WM_MOUSEFIRST = 512 +WM_MOUSEMOVE = 512 +WM_LBUTTONDOWN = 513 +WM_LBUTTONUP = 514 +WM_LBUTTONDBLCLK = 515 +WM_RBUTTONDOWN = 516 +WM_RBUTTONUP = 517 +WM_RBUTTONDBLCLK = 518 +WM_MBUTTONDOWN = 519 +WM_MBUTTONUP = 520 +WM_MBUTTONDBLCLK = 521 +WM_MOUSEWHEEL = 522 +WM_MOUSELAST = 522 +WHEEL_DELTA = 120 # Value for rolling one detent +WHEEL_PAGESCROLL = -1 # Scroll one page +WM_PARENTNOTIFY = 528 +MENULOOP_WINDOW = 0 +MENULOOP_POPUP = 1 +WM_ENTERMENULOOP = 529 +WM_EXITMENULOOP = 530 +WM_NEXTMENU = 531 +WM_SIZING = 532 +WM_CAPTURECHANGED = 533 +WM_MOVING = 534 +WM_POWERBROADCAST = 536 +PBT_APMQUERYSUSPEND = 0 +PBT_APMQUERYSTANDBY = 1 +PBT_APMQUERYSUSPENDFAILED = 2 +PBT_APMQUERYSTANDBYFAILED = 3 +PBT_APMSUSPEND = 4 +PBT_APMSTANDBY = 5 +PBT_APMRESUMECRITICAL = 6 +PBT_APMRESUMESUSPEND = 7 +PBT_APMRESUMESTANDBY = 8 +PBTF_APMRESUMEFROMFAILURE = 1 +PBT_APMBATTERYLOW = 9 +PBT_APMPOWERSTATUSCHANGE = 10 +PBT_APMOEMEVENT = 11 +PBT_APMRESUMEAUTOMATIC = 18 +WM_DEVICECHANGE = 537 +WM_MDICREATE = 544 +WM_MDIDESTROY = 545 +WM_MDIACTIVATE = 546 +WM_MDIRESTORE = 547 +WM_MDINEXT = 548 +WM_MDIMAXIMIZE = 549 +WM_MDITILE = 550 +WM_MDICASCADE = 551 +WM_MDIICONARRANGE = 552 +WM_MDIGETACTIVE = 553 +WM_MDISETMENU = 560 +WM_ENTERSIZEMOVE = 561 +WM_EXITSIZEMOVE = 562 +WM_DROPFILES = 563 +WM_MDIREFRESHMENU = 564 +WM_IME_SETCONTEXT = 641 +WM_IME_NOTIFY = 642 +WM_IME_CONTROL = 643 +WM_IME_COMPOSITIONFULL = 644 +WM_IME_SELECT = 645 +WM_IME_CHAR = 646 +WM_IME_REQUEST = 648 +WM_IME_KEYDOWN = 656 +WM_IME_KEYUP = 657 +WM_MOUSEHOVER = 673 +WM_MOUSELEAVE = 675 +WM_CUT = 768 +WM_COPY = 769 +WM_PASTE = 770 +WM_CLEAR = 771 +WM_UNDO = 772 +WM_RENDERFORMAT = 773 +WM_RENDERALLFORMATS = 774 +WM_DESTROYCLIPBOARD = 775 +WM_DRAWCLIPBOARD = 776 +WM_PAINTCLIPBOARD = 777 +WM_VSCROLLCLIPBOARD = 778 +WM_SIZECLIPBOARD = 779 +WM_ASKCBFORMATNAME = 780 +WM_CHANGECBCHAIN = 781 +WM_HSCROLLCLIPBOARD = 782 +WM_QUERYNEWPALETTE = 783 +WM_PALETTEISCHANGING = 784 +WM_PALETTECHANGED = 785 +WM_HOTKEY = 786 +WM_PRINT = 791 +WM_PRINTCLIENT = 792 +WM_HANDHELDFIRST = 856 +WM_HANDHELDLAST = 863 +WM_AFXFIRST = 864 +WM_AFXLAST = 895 +WM_PENWINFIRST = 896 +WM_PENWINLAST = 911 +WM_APP = 32768 +WMSZ_LEFT = 1 +WMSZ_RIGHT = 2 +WMSZ_TOP = 3 +WMSZ_TOPLEFT = 4 +WMSZ_TOPRIGHT = 5 +WMSZ_BOTTOM = 6 +WMSZ_BOTTOMLEFT = 7 +WMSZ_BOTTOMRIGHT = 8 +#ST_BEGINSWP = 0 +#ST_ENDSWP = 1 +HTERROR = (-2) +HTTRANSPARENT = (-1) +HTNOWHERE = 0 +HTCLIENT = 1 +HTCAPTION = 2 +HTSYSMENU = 3 +HTGROWBOX = 4 +HTSIZE = HTGROWBOX +HTMENU = 5 +HTHSCROLL = 6 +HTVSCROLL = 7 +HTMINBUTTON = 8 +HTMAXBUTTON = 9 +HTLEFT = 10 +HTRIGHT = 11 +HTTOP = 12 +HTTOPLEFT = 13 +HTTOPRIGHT = 14 +HTBOTTOM = 15 +HTBOTTOMLEFT = 16 +HTBOTTOMRIGHT = 17 +HTBORDER = 18 +HTREDUCE = HTMINBUTTON +HTZOOM = HTMAXBUTTON +HTSIZEFIRST = HTLEFT +HTSIZELAST = HTBOTTOMRIGHT +HTOBJECT = 19 +HTCLOSE = 20 +HTHELP = 21 +SMTO_NORMAL = 0 +SMTO_BLOCK = 1 +SMTO_ABORTIFHUNG = 2 +SMTO_NOTIMEOUTIFNOTHUNG = 8 +MA_ACTIVATE = 1 +MA_ACTIVATEANDEAT = 2 +MA_NOACTIVATE = 3 +MA_NOACTIVATEANDEAT = 4 +ICON_SMALL = 0 +ICON_BIG = 1 +SIZE_RESTORED = 0 +SIZE_MINIMIZED = 1 +SIZE_MAXIMIZED = 2 +SIZE_MAXSHOW = 3 +SIZE_MAXHIDE = 4 +SIZENORMAL = SIZE_RESTORED +SIZEICONIC = SIZE_MINIMIZED +SIZEFULLSCREEN = SIZE_MAXIMIZED +SIZEZOOMSHOW = SIZE_MAXSHOW +SIZEZOOMHIDE = SIZE_MAXHIDE +WVR_ALIGNTOP = 16 +WVR_ALIGNLEFT = 32 +WVR_ALIGNBOTTOM = 64 +WVR_ALIGNRIGHT = 128 +WVR_HREDRAW = 256 +WVR_VREDRAW = 512 +WVR_REDRAW = (WVR_HREDRAW | WVR_VREDRAW) +WVR_VALIDRECTS = 1024 +MK_LBUTTON = 1 +MK_RBUTTON = 2 +MK_SHIFT = 4 +MK_CONTROL = 8 +MK_MBUTTON = 16 +TME_HOVER = 1 +TME_LEAVE = 2 +TME_QUERY = 1073741824 +TME_CANCEL = -2147483648 +HOVER_DEFAULT = -1 +WS_OVERLAPPED = 0 +WS_POPUP = -2147483648 +WS_CHILD = 1073741824 +WS_MINIMIZE = 536870912 +WS_VISIBLE = 268435456 +WS_DISABLED = 134217728 +WS_CLIPSIBLINGS = 67108864 +WS_CLIPCHILDREN = 33554432 +WS_MAXIMIZE = 16777216 +WS_CAPTION = 12582912 +WS_BORDER = 8388608 +WS_DLGFRAME = 4194304 +WS_VSCROLL = 2097152 +WS_HSCROLL = 1048576 +WS_SYSMENU = 524288 +WS_THICKFRAME = 262144 +WS_GROUP = 131072 +WS_TABSTOP = 65536 +WS_MINIMIZEBOX = 131072 +WS_MAXIMIZEBOX = 65536 +WS_TILED = WS_OVERLAPPED +WS_ICONIC = WS_MINIMIZE +WS_SIZEBOX = WS_THICKFRAME +WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED | \ + WS_CAPTION | \ + WS_SYSMENU | \ + WS_THICKFRAME | \ + WS_MINIMIZEBOX | \ + WS_MAXIMIZEBOX) +WS_POPUPWINDOW = (WS_POPUP | \ + WS_BORDER | \ + WS_SYSMENU) +WS_CHILDWINDOW = (WS_CHILD) +WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW +WS_EX_DLGMODALFRAME = 1 +WS_EX_NOPARENTNOTIFY = 4 +WS_EX_TOPMOST = 8 +WS_EX_ACCEPTFILES = 16 +WS_EX_TRANSPARENT = 32 +WS_EX_MDICHILD = 64 +WS_EX_TOOLWINDOW = 128 +WS_EX_WINDOWEDGE = 256 +WS_EX_CLIENTEDGE = 512 +WS_EX_CONTEXTHELP = 1024 +WS_EX_RIGHT = 4096 +WS_EX_LEFT = 0 +WS_EX_RTLREADING = 8192 +WS_EX_LTRREADING = 0 +WS_EX_LEFTSCROLLBAR = 16384 +WS_EX_RIGHTSCROLLBAR = 0 +WS_EX_CONTROLPARENT = 65536 +WS_EX_STATICEDGE = 131072 +WS_EX_APPWINDOW = 262144 +WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE) +WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST) +WS_EX_LAYERED = 0x00080000 +WS_EX_NOINHERITLAYOUT = 0x00100000 +WS_EX_LAYOUTRTL = 0x00400000 +WS_EX_COMPOSITED = 0x02000000 +WS_EX_NOACTIVATE = 0x08000000 + +CS_VREDRAW = 1 +CS_HREDRAW = 2 +#CS_KEYCVTWINDOW = 0x0004 +CS_DBLCLKS = 8 +CS_OWNDC = 32 +CS_CLASSDC = 64 +CS_PARENTDC = 128 +#CS_NOKEYCVT = 0x0100 +CS_NOCLOSE = 512 +CS_SAVEBITS = 2048 +CS_BYTEALIGNCLIENT = 4096 +CS_BYTEALIGNWINDOW = 8192 +CS_GLOBALCLASS = 16384 +CS_IME = 65536 +PRF_CHECKVISIBLE = 1 +PRF_NONCLIENT = 2 +PRF_CLIENT = 4 +PRF_ERASEBKGND = 8 +PRF_CHILDREN = 16 +PRF_OWNED = 32 +BDR_RAISEDOUTER = 1 +BDR_SUNKENOUTER = 2 +BDR_RAISEDINNER = 4 +BDR_SUNKENINNER = 8 +BDR_OUTER = 3 +BDR_INNER = 12 +#BDR_RAISED = 0x0005 +#BDR_SUNKEN = 0x000a +EDGE_RAISED = (BDR_RAISEDOUTER | BDR_RAISEDINNER) +EDGE_SUNKEN = (BDR_SUNKENOUTER | BDR_SUNKENINNER) +EDGE_ETCHED = (BDR_SUNKENOUTER | BDR_RAISEDINNER) +EDGE_BUMP = (BDR_RAISEDOUTER | BDR_SUNKENINNER) + +# winuser.h line 2879 +ISMEX_NOSEND = 0 +ISMEX_SEND = 1 +ISMEX_NOTIFY = 2 +ISMEX_CALLBACK = 4 +ISMEX_REPLIED = 8 +CW_USEDEFAULT = -2147483648 +FLASHW_STOP = 0 +FLASHW_CAPTION = 1 +FLASHW_TRAY = 2 +FLASHW_ALL = (FLASHW_CAPTION | FLASHW_TRAY) +FLASHW_TIMER = 4 +FLASHW_TIMERNOFG = 12 + +# winuser.h line 7963 +DS_ABSALIGN = 1 +DS_SYSMODAL = 2 +DS_LOCALEDIT = 32 +DS_SETFONT = 64 +DS_MODALFRAME = 128 +DS_NOIDLEMSG = 256 +DS_SETFOREGROUND = 512 +DS_3DLOOK = 4 +DS_FIXEDSYS = 8 +DS_NOFAILCREATE = 16 +DS_CONTROL = 1024 +DS_CENTER = 2048 +DS_CENTERMOUSE = 4096 +DS_CONTEXTHELP = 8192 +DM_GETDEFID = (WM_USER+0) +DM_SETDEFID = (WM_USER+1) +DM_REPOSITION = (WM_USER+2) +#PSM_PAGEINFO = (WM_USER+100) +#PSM_SHEETINFO = (WM_USER+101) +#PSI_SETACTIVE = 0x0001 +#PSI_KILLACTIVE = 0x0002 +#PSI_APPLY = 0x0003 +#PSI_RESET = 0x0004 +#PSI_HASHELP = 0x0005 +#PSI_HELP = 0x0006 +#PSI_CHANGED = 0x0001 +#PSI_GUISTART = 0x0002 +#PSI_REBOOT = 0x0003 +#PSI_GETSIBLINGS = 0x0004 +DC_HASDEFID = 21323 +DLGC_WANTARROWS = 1 +DLGC_WANTTAB = 2 +DLGC_WANTALLKEYS = 4 +DLGC_WANTMESSAGE = 4 +DLGC_HASSETSEL = 8 +DLGC_DEFPUSHBUTTON = 16 +DLGC_UNDEFPUSHBUTTON = 32 +DLGC_RADIOBUTTON = 64 +DLGC_WANTCHARS = 128 +DLGC_STATIC = 256 +DLGC_BUTTON = 8192 +LB_CTLCODE = 0 +LB_OKAY = 0 +LB_ERR = (-1) +LB_ERRSPACE = (-2) +LBN_ERRSPACE = (-2) +LBN_SELCHANGE = 1 +LBN_DBLCLK = 2 +LBN_SELCANCEL = 3 +LBN_SETFOCUS = 4 +LBN_KILLFOCUS = 5 +LB_ADDSTRING = 384 +LB_INSERTSTRING = 385 +LB_DELETESTRING = 386 +LB_SELITEMRANGEEX = 387 +LB_RESETCONTENT = 388 +LB_SETSEL = 389 +LB_SETCURSEL = 390 +LB_GETSEL = 391 +LB_GETCURSEL = 392 +LB_GETTEXT = 393 +LB_GETTEXTLEN = 394 +LB_GETCOUNT = 395 +LB_SELECTSTRING = 396 +LB_DIR = 397 +LB_GETTOPINDEX = 398 +LB_FINDSTRING = 399 +LB_GETSELCOUNT = 400 +LB_GETSELITEMS = 401 +LB_SETTABSTOPS = 402 +LB_GETHORIZONTALEXTENT = 403 +LB_SETHORIZONTALEXTENT = 404 +LB_SETCOLUMNWIDTH = 405 +LB_ADDFILE = 406 +LB_SETTOPINDEX = 407 +LB_GETITEMRECT = 408 +LB_GETITEMDATA = 409 +LB_SETITEMDATA = 410 +LB_SELITEMRANGE = 411 +LB_SETANCHORINDEX = 412 +LB_GETANCHORINDEX = 413 +LB_SETCARETINDEX = 414 +LB_GETCARETINDEX = 415 +LB_SETITEMHEIGHT = 416 +LB_GETITEMHEIGHT = 417 +LB_FINDSTRINGEXACT = 418 +LB_SETLOCALE = 421 +LB_GETLOCALE = 422 +LB_SETCOUNT = 423 +LB_INITSTORAGE = 424 +LB_ITEMFROMPOINT = 425 +LB_MSGMAX = 432 +LBS_NOTIFY = 1 +LBS_SORT = 2 +LBS_NOREDRAW = 4 +LBS_MULTIPLESEL = 8 +LBS_OWNERDRAWFIXED = 16 +LBS_OWNERDRAWVARIABLE = 32 +LBS_HASSTRINGS = 64 +LBS_USETABSTOPS = 128 +LBS_NOINTEGRALHEIGHT = 256 +LBS_MULTICOLUMN = 512 +LBS_WANTKEYBOARDINPUT = 1024 +LBS_EXTENDEDSEL = 2048 +LBS_DISABLENOSCROLL = 4096 +LBS_NODATA = 8192 +LBS_NOSEL = 16384 +LBS_STANDARD = (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) +CB_OKAY = 0 +CB_ERR = (-1) +CB_ERRSPACE = (-2) +CBN_ERRSPACE = (-1) +CBN_SELCHANGE = 1 +CBN_DBLCLK = 2 +CBN_SETFOCUS = 3 +CBN_KILLFOCUS = 4 +CBN_EDITCHANGE = 5 +CBN_EDITUPDATE = 6 +CBN_DROPDOWN = 7 +CBN_CLOSEUP = 8 +CBN_SELENDOK = 9 +CBN_SELENDCANCEL = 10 +CBS_SIMPLE = 1 +CBS_DROPDOWN = 2 +CBS_DROPDOWNLIST = 3 +CBS_OWNERDRAWFIXED = 16 +CBS_OWNERDRAWVARIABLE = 32 +CBS_AUTOHSCROLL = 64 +CBS_OEMCONVERT = 128 +CBS_SORT = 256 +CBS_HASSTRINGS = 512 +CBS_NOINTEGRALHEIGHT = 1024 +CBS_DISABLENOSCROLL = 2048 +CBS_UPPERCASE = 8192 +CBS_LOWERCASE = 16384 +CB_GETEDITSEL = 320 +CB_LIMITTEXT = 321 +CB_SETEDITSEL = 322 +CB_ADDSTRING = 323 +CB_DELETESTRING = 324 +CB_DIR = 325 +CB_GETCOUNT = 326 +CB_GETCURSEL = 327 +CB_GETLBTEXT = 328 +CB_GETLBTEXTLEN = 329 +CB_INSERTSTRING = 330 +CB_RESETCONTENT = 331 +CB_FINDSTRING = 332 +CB_SELECTSTRING = 333 +CB_SETCURSEL = 334 +CB_SHOWDROPDOWN = 335 +CB_GETITEMDATA = 336 +CB_SETITEMDATA = 337 +CB_GETDROPPEDCONTROLRECT = 338 +CB_SETITEMHEIGHT = 339 +CB_GETITEMHEIGHT = 340 +CB_SETEXTENDEDUI = 341 +CB_GETEXTENDEDUI = 342 +CB_GETDROPPEDSTATE = 343 +CB_FINDSTRINGEXACT = 344 +CB_SETLOCALE = 345 +CB_GETLOCALE = 346 +CB_GETTOPINDEX = 347 +CB_SETTOPINDEX = 348 +CB_GETHORIZONTALEXTENT = 349 +CB_SETHORIZONTALEXTENT = 350 +CB_GETDROPPEDWIDTH = 351 +CB_SETDROPPEDWIDTH = 352 +CB_INITSTORAGE = 353 +CB_MSGMAX = 354 +SBS_HORZ = 0 +SBS_VERT = 1 +SBS_TOPALIGN = 2 +SBS_LEFTALIGN = 2 +SBS_BOTTOMALIGN = 4 +SBS_RIGHTALIGN = 4 +SBS_SIZEBOXTOPLEFTALIGN = 2 +SBS_SIZEBOXBOTTOMRIGHTALIGN = 4 +SBS_SIZEBOX = 8 +SBS_SIZEGRIP = 16 +SBM_SETPOS = 224 +SBM_GETPOS = 225 +SBM_SETRANGE = 226 +SBM_SETRANGEREDRAW = 230 +SBM_GETRANGE = 227 +SBM_ENABLE_ARROWS = 228 +SBM_SETSCROLLINFO = 233 +SBM_GETSCROLLINFO = 234 +SIF_RANGE = 1 +SIF_PAGE = 2 +SIF_POS = 4 +SIF_DISABLENOSCROLL = 8 +SIF_TRACKPOS = 16 +SIF_ALL = (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS) +MDIS_ALLCHILDSTYLES = 1 +MDITILE_VERTICAL = 0 +MDITILE_HORIZONTAL = 1 +MDITILE_SKIPDISABLED = 2 + +IMC_GETCANDIDATEPOS = 7 +IMC_SETCANDIDATEPOS = 8 +IMC_GETCOMPOSITIONFONT = 9 +IMC_SETCOMPOSITIONFONT = 10 +IMC_GETCOMPOSITIONWINDOW = 11 +IMC_SETCOMPOSITIONWINDOW = 12 +IMC_GETSTATUSWINDOWPOS = 15 +IMC_SETSTATUSWINDOWPOS = 16 +IMC_CLOSESTATUSWINDOW = 33 +IMC_OPENSTATUSWINDOW = 34 +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. +DELETE = (65536) +READ_CONTROL = (131072) +WRITE_DAC = (262144) +WRITE_OWNER = (524288) +SYNCHRONIZE = (1048576) +STANDARD_RIGHTS_REQUIRED = (983040) +STANDARD_RIGHTS_READ = (READ_CONTROL) +STANDARD_RIGHTS_WRITE = (READ_CONTROL) +STANDARD_RIGHTS_EXECUTE = (READ_CONTROL) +STANDARD_RIGHTS_ALL = (2031616) +SPECIFIC_RIGHTS_ALL = (65535) +ACCESS_SYSTEM_SECURITY = (16777216) +MAXIMUM_ALLOWED = (33554432) +GENERIC_READ = (-2147483648) +GENERIC_WRITE = (1073741824) +GENERIC_EXECUTE = (536870912) +GENERIC_ALL = (268435456) + +SERVICE_KERNEL_DRIVER = 1 +SERVICE_FILE_SYSTEM_DRIVER = 2 +SERVICE_ADAPTER = 4 +SERVICE_RECOGNIZER_DRIVER = 8 +SERVICE_DRIVER = (SERVICE_KERNEL_DRIVER | \ + SERVICE_FILE_SYSTEM_DRIVER | \ + SERVICE_RECOGNIZER_DRIVER) +SERVICE_WIN32_OWN_PROCESS = 16 +SERVICE_WIN32_SHARE_PROCESS = 32 +SERVICE_WIN32 = (SERVICE_WIN32_OWN_PROCESS | \ + SERVICE_WIN32_SHARE_PROCESS) +SERVICE_INTERACTIVE_PROCESS = 256 +SERVICE_TYPE_ALL = (SERVICE_WIN32 | \ + SERVICE_ADAPTER | \ + SERVICE_DRIVER | \ + SERVICE_INTERACTIVE_PROCESS) +SERVICE_BOOT_START = 0 +SERVICE_SYSTEM_START = 1 +SERVICE_AUTO_START = 2 +SERVICE_DEMAND_START = 3 +SERVICE_DISABLED = 4 +SERVICE_ERROR_IGNORE = 0 +SERVICE_ERROR_NORMAL = 1 +SERVICE_ERROR_SEVERE = 2 +SERVICE_ERROR_CRITICAL = 3 +TAPE_ERASE_SHORT = 0 +TAPE_ERASE_LONG = 1 +TAPE_LOAD = 0 +TAPE_UNLOAD = 1 +TAPE_TENSION = 2 +TAPE_LOCK = 3 +TAPE_UNLOCK = 4 +TAPE_FORMAT = 5 +TAPE_SETMARKS = 0 +TAPE_FILEMARKS = 1 +TAPE_SHORT_FILEMARKS = 2 +TAPE_LONG_FILEMARKS = 3 +TAPE_ABSOLUTE_POSITION = 0 +TAPE_LOGICAL_POSITION = 1 +TAPE_PSEUDO_LOGICAL_POSITION = 2 +TAPE_REWIND = 0 +TAPE_ABSOLUTE_BLOCK = 1 +TAPE_LOGICAL_BLOCK = 2 +TAPE_PSEUDO_LOGICAL_BLOCK = 3 +TAPE_SPACE_END_OF_DATA = 4 +TAPE_SPACE_RELATIVE_BLOCKS = 5 +TAPE_SPACE_FILEMARKS = 6 +TAPE_SPACE_SEQUENTIAL_FMKS = 7 +TAPE_SPACE_SETMARKS = 8 +TAPE_SPACE_SEQUENTIAL_SMKS = 9 +TAPE_DRIVE_FIXED = 1 +TAPE_DRIVE_SELECT = 2 +TAPE_DRIVE_INITIATOR = 4 +TAPE_DRIVE_ERASE_SHORT = 16 +TAPE_DRIVE_ERASE_LONG = 32 +TAPE_DRIVE_ERASE_BOP_ONLY = 64 +TAPE_DRIVE_ERASE_IMMEDIATE = 128 +TAPE_DRIVE_TAPE_CAPACITY = 256 +TAPE_DRIVE_TAPE_REMAINING = 512 +TAPE_DRIVE_FIXED_BLOCK = 1024 +TAPE_DRIVE_VARIABLE_BLOCK = 2048 +TAPE_DRIVE_WRITE_PROTECT = 4096 +TAPE_DRIVE_EOT_WZ_SIZE = 8192 +TAPE_DRIVE_ECC = 65536 +TAPE_DRIVE_COMPRESSION = 131072 +TAPE_DRIVE_PADDING = 262144 +TAPE_DRIVE_REPORT_SMKS = 524288 +TAPE_DRIVE_GET_ABSOLUTE_BLK = 1048576 +TAPE_DRIVE_GET_LOGICAL_BLK = 2097152 +TAPE_DRIVE_SET_EOT_WZ_SIZE = 4194304 +TAPE_DRIVE_LOAD_UNLOAD = -2147483647 +TAPE_DRIVE_TENSION = -2147483646 +TAPE_DRIVE_LOCK_UNLOCK = -2147483644 +TAPE_DRIVE_REWIND_IMMEDIATE = -2147483640 +TAPE_DRIVE_SET_BLOCK_SIZE = -2147483632 +TAPE_DRIVE_LOAD_UNLD_IMMED = -2147483616 +TAPE_DRIVE_TENSION_IMMED = -2147483584 +TAPE_DRIVE_LOCK_UNLK_IMMED = -2147483520 +TAPE_DRIVE_SET_ECC = -2147483392 +TAPE_DRIVE_SET_COMPRESSION = -2147483136 +TAPE_DRIVE_SET_PADDING = -2147482624 +TAPE_DRIVE_SET_REPORT_SMKS = -2147481600 +TAPE_DRIVE_ABSOLUTE_BLK = -2147479552 +TAPE_DRIVE_ABS_BLK_IMMED = -2147475456 +TAPE_DRIVE_LOGICAL_BLK = -2147467264 +TAPE_DRIVE_LOG_BLK_IMMED = -2147450880 +TAPE_DRIVE_END_OF_DATA = -2147418112 +TAPE_DRIVE_RELATIVE_BLKS = -2147352576 +TAPE_DRIVE_FILEMARKS = -2147221504 +TAPE_DRIVE_SEQUENTIAL_FMKS = -2146959360 +TAPE_DRIVE_SETMARKS = -2146435072 +TAPE_DRIVE_SEQUENTIAL_SMKS = -2145386496 +TAPE_DRIVE_REVERSE_POSITION = -2143289344 +TAPE_DRIVE_SPACE_IMMEDIATE = -2139095040 +TAPE_DRIVE_WRITE_SETMARKS = -2130706432 +TAPE_DRIVE_WRITE_FILEMARKS = -2113929216 +TAPE_DRIVE_WRITE_SHORT_FMKS = -2080374784 +TAPE_DRIVE_WRITE_LONG_FMKS = -2013265920 +TAPE_DRIVE_WRITE_MARK_IMMED = -1879048192 +TAPE_DRIVE_FORMAT = -1610612736 +TAPE_DRIVE_FORMAT_IMMEDIATE = -1073741824 +TAPE_FIXED_PARTITIONS = 0 +TAPE_SELECT_PARTITIONS = 1 +TAPE_INITIATOR_PARTITIONS = 2 +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. + +APPLICATION_ERROR_MASK = 536870912 +ERROR_SEVERITY_SUCCESS = 0 +ERROR_SEVERITY_INFORMATIONAL = 1073741824 +ERROR_SEVERITY_WARNING = -2147483648 +ERROR_SEVERITY_ERROR = -1073741824 +MINCHAR = 128 +MAXCHAR = 127 +MINSHORT = 32768 +MAXSHORT = 32767 +MINLONG = -2147483648 +MAXLONG = 2147483647 +MAXBYTE = 255 +MAXWORD = 65535 +MAXDWORD = -1 +LANG_NEUTRAL = 0 +LANG_BULGARIAN = 2 +LANG_CHINESE = 4 +LANG_CROATIAN = 26 +LANG_CZECH = 5 +LANG_DANISH = 6 +LANG_DUTCH = 19 +LANG_ENGLISH = 9 +LANG_FINNISH = 11 +LANG_FRENCH = 12 +LANG_GERMAN = 7 +LANG_GREEK = 8 +LANG_HUNGARIAN = 14 +LANG_ICELANDIC = 15 +LANG_ITALIAN = 16 +LANG_JAPANESE = 17 +LANG_KOREAN = 18 +LANG_NORWEGIAN = 20 +LANG_POLISH = 21 +LANG_PORTUGUESE = 22 +LANG_ROMANIAN = 24 +LANG_RUSSIAN = 25 +LANG_SLOVAK = 27 +LANG_SLOVENIAN = 36 +LANG_SPANISH = 10 +LANG_SWEDISH = 29 +LANG_TURKISH = 31 +SUBLANG_NEUTRAL = 0 +SUBLANG_DEFAULT = 1 +SUBLANG_SYS_DEFAULT = 2 +SUBLANG_CHINESE_TRADITIONAL = 1 +SUBLANG_CHINESE_SIMPLIFIED = 2 +SUBLANG_CHINESE_HONGKONG = 3 +SUBLANG_CHINESE_SINGAPORE = 4 +SUBLANG_DUTCH = 1 +SUBLANG_DUTCH_BELGIAN = 2 +SUBLANG_ENGLISH_US = 1 +SUBLANG_ENGLISH_UK = 2 +SUBLANG_ENGLISH_AUS = 3 +SUBLANG_ENGLISH_CAN = 4 +SUBLANG_ENGLISH_NZ = 5 +SUBLANG_ENGLISH_EIRE = 6 +SUBLANG_FRENCH = 1 +SUBLANG_FRENCH_BELGIAN = 2 +SUBLANG_FRENCH_CANADIAN = 3 +SUBLANG_FRENCH_SWISS = 4 +SUBLANG_GERMAN = 1 +SUBLANG_GERMAN_SWISS = 2 +SUBLANG_GERMAN_AUSTRIAN = 3 +SUBLANG_ITALIAN = 1 +SUBLANG_ITALIAN_SWISS = 2 +SUBLANG_NORWEGIAN_BOKMAL = 1 +SUBLANG_NORWEGIAN_NYNORSK = 2 +SUBLANG_PORTUGUESE = 2 +SUBLANG_PORTUGUESE_BRAZILIAN = 1 +SUBLANG_SPANISH = 1 +SUBLANG_SPANISH_MEXICAN = 2 +SUBLANG_SPANISH_MODERN = 3 +SORT_DEFAULT = 0 +SORT_JAPANESE_XJIS = 0 +SORT_JAPANESE_UNICODE = 1 +SORT_CHINESE_BIG5 = 0 +SORT_CHINESE_UNICODE = 1 +SORT_KOREAN_KSC = 0 +SORT_KOREAN_UNICODE = 1 +def PRIMARYLANGID(lgid): return ((lgid) & 1023) + +def SUBLANGID(lgid): return ((lgid) >> 10) + +NLS_VALID_LOCALE_MASK = 1048575 +CONTEXT_PORTABLE_32BIT = 1048576 +CONTEXT_ALPHA = 131072 +CONTEXT_CONTROL = (CONTEXT_ALPHA | 1) +CONTEXT_FLOATING_POINT = (CONTEXT_ALPHA | 2) +CONTEXT_INTEGER = (CONTEXT_ALPHA | 4) +CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) +SIZE_OF_80387_REGISTERS = 80 +CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) +CONTEXT_CONTROL = 1 +CONTEXT_FLOATING_POINT = 2 +CONTEXT_INTEGER = 4 +CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) +PROCESS_TERMINATE = (1) +PROCESS_CREATE_THREAD = (2) +PROCESS_VM_OPERATION = (8) +PROCESS_VM_READ = (16) +PROCESS_VM_WRITE = (32) +PROCESS_DUP_HANDLE = (64) +PROCESS_CREATE_PROCESS = (128) +PROCESS_SET_QUOTA = (256) +PROCESS_SET_INFORMATION = (512) +PROCESS_QUERY_INFORMATION = (1024) +PROCESS_SUSPEND_RESUME = (2048) +PROCESS_QUERY_LIMITED_INFORMATION = (4096) +PROCESS_SET_LIMITED_INFORMATION = (8192) +PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 4095) +THREAD_TERMINATE = (1) +THREAD_SUSPEND_RESUME = (2) +THREAD_GET_CONTEXT = (8) +THREAD_SET_CONTEXT = (16) +THREAD_SET_INFORMATION = (32) +THREAD_QUERY_INFORMATION = (64) +THREAD_SET_THREAD_TOKEN = (128) +THREAD_IMPERSONATE = (256) +THREAD_DIRECT_IMPERSONATION = (512) +THREAD_SET_LIMITED_INFORMATION = (1024) +THREAD_QUERY_LIMITED_INFORMATION = (2048) +THREAD_RESUME = (4096) +TLS_MINIMUM_AVAILABLE = 64 +EVENT_MODIFY_STATE = 2 +MUTANT_QUERY_STATE = 1 +SEMAPHORE_MODIFY_STATE = 2 +TIME_ZONE_ID_UNKNOWN = 0 +TIME_ZONE_ID_STANDARD = 1 +TIME_ZONE_ID_DAYLIGHT = 2 +PROCESSOR_INTEL_386 = 386 +PROCESSOR_INTEL_486 = 486 +PROCESSOR_INTEL_PENTIUM = 586 +PROCESSOR_INTEL_860 = 860 +PROCESSOR_MIPS_R2000 = 2000 +PROCESSOR_MIPS_R3000 = 3000 +PROCESSOR_MIPS_R4000 = 4000 +PROCESSOR_ALPHA_21064 = 21064 +PROCESSOR_PPC_601 = 601 +PROCESSOR_PPC_603 = 603 +PROCESSOR_PPC_604 = 604 +PROCESSOR_PPC_620 = 620 +SECTION_QUERY = 1 +SECTION_MAP_WRITE = 2 +SECTION_MAP_READ = 4 +SECTION_MAP_EXECUTE = 8 +SECTION_EXTEND_SIZE = 16 +PAGE_NOACCESS = 1 +PAGE_READONLY = 2 +PAGE_READWRITE = 4 +PAGE_WRITECOPY = 8 +PAGE_EXECUTE = 16 +PAGE_EXECUTE_READ = 32 +PAGE_EXECUTE_READWRITE = 64 +PAGE_EXECUTE_WRITECOPY = 128 +PAGE_GUARD = 256 +PAGE_NOCACHE = 512 +MEM_COMMIT = 4096 +MEM_RESERVE = 8192 +MEM_DECOMMIT = 16384 +MEM_RELEASE = 32768 +MEM_FREE = 65536 +MEM_PRIVATE = 131072 +MEM_MAPPED = 262144 +MEM_TOP_DOWN = 1048576 + +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. +SEC_FILE = 8388608 +SEC_IMAGE = 16777216 +SEC_RESERVE = 67108864 +SEC_COMMIT = 134217728 +SEC_NOCACHE = 268435456 +MEM_IMAGE = SEC_IMAGE +FILE_SHARE_READ = 1 +FILE_SHARE_WRITE = 2 +FILE_SHARE_DELETE = 4 +FILE_ATTRIBUTE_READONLY = 1 +FILE_ATTRIBUTE_HIDDEN = 2 +FILE_ATTRIBUTE_SYSTEM = 4 +FILE_ATTRIBUTE_DIRECTORY = 16 +FILE_ATTRIBUTE_ARCHIVE = 32 +FILE_ATTRIBUTE_DEVICE = 64 +FILE_ATTRIBUTE_NORMAL = 128 +FILE_ATTRIBUTE_TEMPORARY = 256 +FILE_ATTRIBUTE_SPARSE_FILE = 512 +FILE_ATTRIBUTE_REPARSE_POINT = 1024 +FILE_ATTRIBUTE_COMPRESSED = 2048 +FILE_ATTRIBUTE_OFFLINE = 4096 +FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 +FILE_ATTRIBUTE_ENCRYPTED = 16384 +FILE_ATTRIBUTE_VIRTUAL = 65536 +# These FILE_ATTRIBUTE_* flags are apparently old definitions from Windows 95 +# and conflict with current values above - but they live on for b/w compat... +FILE_ATTRIBUTE_ATOMIC_WRITE = 512 +FILE_ATTRIBUTE_XACTION_WRITE = 1024 + +FILE_NOTIFY_CHANGE_FILE_NAME = 1 +FILE_NOTIFY_CHANGE_DIR_NAME = 2 +FILE_NOTIFY_CHANGE_ATTRIBUTES = 4 +FILE_NOTIFY_CHANGE_SIZE = 8 +FILE_NOTIFY_CHANGE_LAST_WRITE = 16 +FILE_NOTIFY_CHANGE_SECURITY = 256 +FILE_CASE_SENSITIVE_SEARCH = 1 +FILE_CASE_PRESERVED_NAMES = 2 +FILE_UNICODE_ON_DISK = 4 +FILE_PERSISTENT_ACLS = 8 +FILE_FILE_COMPRESSION = 16 +FILE_VOLUME_IS_COMPRESSED = 32768 +IO_COMPLETION_MODIFY_STATE = 2 +DUPLICATE_CLOSE_SOURCE = 1 +DUPLICATE_SAME_ACCESS = 2 +SID_MAX_SUB_AUTHORITIES = (15) +SECURITY_NULL_RID = (0) +SECURITY_WORLD_RID = (0) +SECURITY_LOCAL_RID = (0X00000000) +SECURITY_CREATOR_OWNER_RID = (0) +SECURITY_CREATOR_GROUP_RID = (1) +SECURITY_DIALUP_RID = (1) +SECURITY_NETWORK_RID = (2) +SECURITY_BATCH_RID = (3) +SECURITY_INTERACTIVE_RID = (4) +SECURITY_SERVICE_RID = (6) +SECURITY_ANONYMOUS_LOGON_RID = (7) +SECURITY_LOGON_IDS_RID = (5) +SECURITY_LOGON_IDS_RID_COUNT = (3) +SECURITY_LOCAL_SYSTEM_RID = (18) +SECURITY_NT_NON_UNIQUE = (21) +SECURITY_BUILTIN_DOMAIN_RID = (32) +DOMAIN_USER_RID_ADMIN = (500) +DOMAIN_USER_RID_GUEST = (501) +DOMAIN_GROUP_RID_ADMINS = (512) +DOMAIN_GROUP_RID_USERS = (513) +DOMAIN_GROUP_RID_GUESTS = (514) +DOMAIN_ALIAS_RID_ADMINS = (544) +DOMAIN_ALIAS_RID_USERS = (545) +DOMAIN_ALIAS_RID_GUESTS = (546) +DOMAIN_ALIAS_RID_POWER_USERS = (547) +DOMAIN_ALIAS_RID_ACCOUNT_OPS = (548) +DOMAIN_ALIAS_RID_SYSTEM_OPS = (549) +DOMAIN_ALIAS_RID_PRINT_OPS = (550) +DOMAIN_ALIAS_RID_BACKUP_OPS = (551) +DOMAIN_ALIAS_RID_REPLICATOR = (552) +SE_GROUP_MANDATORY = (1) +SE_GROUP_ENABLED_BY_DEFAULT = (2) +SE_GROUP_ENABLED = (4) +SE_GROUP_OWNER = (8) +SE_GROUP_LOGON_ID = (-1073741824) +ACL_REVISION = (2) +ACL_REVISION1 = (1) +ACL_REVISION2 = (2) +ACCESS_ALLOWED_ACE_TYPE = (0) +ACCESS_DENIED_ACE_TYPE = (1) +SYSTEM_AUDIT_ACE_TYPE = (2) +SYSTEM_ALARM_ACE_TYPE = (3) +OBJECT_INHERIT_ACE = (1) +CONTAINER_INHERIT_ACE = (2) +NO_PROPAGATE_INHERIT_ACE = (4) +INHERIT_ONLY_ACE = (8) +VALID_INHERIT_FLAGS = (15) +SUCCESSFUL_ACCESS_ACE_FLAG = (64) +FAILED_ACCESS_ACE_FLAG = (128) +SECURITY_DESCRIPTOR_REVISION = (1) +SECURITY_DESCRIPTOR_REVISION1 = (1) +SECURITY_DESCRIPTOR_MIN_LENGTH = (20) +SE_OWNER_DEFAULTED = (1) +SE_GROUP_DEFAULTED = (2) +SE_DACL_PRESENT = (4) +SE_DACL_DEFAULTED = (8) +SE_SACL_PRESENT = (16) +SE_SACL_DEFAULTED = (32) +SE_SELF_RELATIVE = (32768) +SE_PRIVILEGE_ENABLED_BY_DEFAULT = (1) +SE_PRIVILEGE_ENABLED = (2) +SE_PRIVILEGE_USED_FOR_ACCESS = (-2147483648) +PRIVILEGE_SET_ALL_NECESSARY = (1) +SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" +SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" +SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" +SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" +SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" +SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" +SE_TCB_NAME = "SeTcbPrivilege" +SE_SECURITY_NAME = "SeSecurityPrivilege" +SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" +SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" +SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" +SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" +SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" +SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" +SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" +SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" +SE_BACKUP_NAME = "SeBackupPrivilege" +SE_RESTORE_NAME = "SeRestorePrivilege" +SE_SHUTDOWN_NAME = "SeShutdownPrivilege" +SE_DEBUG_NAME = "SeDebugPrivilege" +SE_AUDIT_NAME = "SeAuditPrivilege" +SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" +SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" +SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" + +TOKEN_ASSIGN_PRIMARY = (1) +TOKEN_DUPLICATE = (2) +TOKEN_IMPERSONATE = (4) +TOKEN_QUERY = (8) +TOKEN_QUERY_SOURCE = (16) +TOKEN_ADJUST_PRIVILEGES = (32) +TOKEN_ADJUST_GROUPS = (64) +TOKEN_ADJUST_DEFAULT = (128) +TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED |\ + TOKEN_ASSIGN_PRIMARY |\ + TOKEN_DUPLICATE |\ + TOKEN_IMPERSONATE |\ + TOKEN_QUERY |\ + TOKEN_QUERY_SOURCE |\ + TOKEN_ADJUST_PRIVILEGES |\ + TOKEN_ADJUST_GROUPS |\ + TOKEN_ADJUST_DEFAULT) +TOKEN_READ = (STANDARD_RIGHTS_READ |\ + TOKEN_QUERY) +TOKEN_WRITE = (STANDARD_RIGHTS_WRITE |\ + TOKEN_ADJUST_PRIVILEGES |\ + TOKEN_ADJUST_GROUPS |\ + TOKEN_ADJUST_DEFAULT) +TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE) +TOKEN_SOURCE_LENGTH = 8 + +KEY_QUERY_VALUE = (1) +KEY_SET_VALUE = (2) +KEY_CREATE_SUB_KEY = (4) +KEY_ENUMERATE_SUB_KEYS = (8) +KEY_NOTIFY = (16) +KEY_CREATE_LINK = (32) +KEY_WOW64_32KEY = 512 +KEY_WOW64_64KEY = 256 +KEY_WOW64_RES = 768 +KEY_READ = ((STANDARD_RIGHTS_READ |\ + KEY_QUERY_VALUE |\ + KEY_ENUMERATE_SUB_KEYS |\ + KEY_NOTIFY) \ + & \ + (~SYNCHRONIZE)) +KEY_WRITE = ((STANDARD_RIGHTS_WRITE |\ + KEY_SET_VALUE |\ + KEY_CREATE_SUB_KEY) \ + & \ + (~SYNCHRONIZE)) +KEY_EXECUTE = ((KEY_READ) \ + & \ + (~SYNCHRONIZE)) +KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL |\ + KEY_QUERY_VALUE |\ + KEY_SET_VALUE |\ + KEY_CREATE_SUB_KEY |\ + KEY_ENUMERATE_SUB_KEYS |\ + KEY_NOTIFY |\ + KEY_CREATE_LINK) \ + & \ + (~SYNCHRONIZE)) +REG_NOTIFY_CHANGE_ATTRIBUTES = (2) +REG_NOTIFY_CHANGE_SECURITY = (8) +REG_RESOURCE_REQUIREMENTS_LIST = ( 10 ) +REG_NONE = ( 0 ) # No value type +REG_SZ = ( 1 ) # Unicode nul terminated string +REG_EXPAND_SZ = ( 2 ) # Unicode nul terminated string + # (with environment variable references) +REG_BINARY = ( 3 ) # Free form binary +REG_DWORD = ( 4 ) # 32-bit number +REG_DWORD_LITTLE_ENDIAN = ( 4 ) # 32-bit number (same as REG_DWORD) +REG_DWORD_BIG_ENDIAN = ( 5 ) # 32-bit number +REG_LINK = ( 6 ) # Symbolic Link (unicode) +REG_MULTI_SZ = ( 7 ) # Multiple Unicode strings +REG_RESOURCE_LIST = ( 8 ) # Resource list in the resource map +REG_FULL_RESOURCE_DESCRIPTOR =( 9 ) # Resource list in the hardware description +REG_RESOURCE_REQUIREMENTS_LIST = ( 10 ) +REG_QWORD = ( 11 ) # 64-bit number +REG_QWORD_LITTLE_ENDIAN = ( 11 ) # 64-bit number (same as REG_QWORD) + + +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. +# Included from string.h +_NLSCMPERROR = 2147483647 +NULL = 0 +HEAP_NO_SERIALIZE = 1 +HEAP_GROWABLE = 2 +HEAP_GENERATE_EXCEPTIONS = 4 +HEAP_ZERO_MEMORY = 8 +HEAP_REALLOC_IN_PLACE_ONLY = 16 +HEAP_TAIL_CHECKING_ENABLED = 32 +HEAP_FREE_CHECKING_ENABLED = 64 +HEAP_DISABLE_COALESCE_ON_FREE = 128 +IS_TEXT_UNICODE_ASCII16 = 1 +IS_TEXT_UNICODE_REVERSE_ASCII16 = 16 +IS_TEXT_UNICODE_STATISTICS = 2 +IS_TEXT_UNICODE_REVERSE_STATISTICS = 32 +IS_TEXT_UNICODE_CONTROLS = 4 +IS_TEXT_UNICODE_REVERSE_CONTROLS = 64 +IS_TEXT_UNICODE_SIGNATURE = 8 +IS_TEXT_UNICODE_REVERSE_SIGNATURE = 128 +IS_TEXT_UNICODE_ILLEGAL_CHARS = 256 +IS_TEXT_UNICODE_ODD_LENGTH = 512 +IS_TEXT_UNICODE_DBCS_LEADBYTE = 1024 +IS_TEXT_UNICODE_NULL_BYTES = 4096 +IS_TEXT_UNICODE_UNICODE_MASK = 15 +IS_TEXT_UNICODE_REVERSE_MASK = 240 +IS_TEXT_UNICODE_NOT_UNICODE_MASK = 3840 +IS_TEXT_UNICODE_NOT_ASCII_MASK = 61440 +COMPRESSION_FORMAT_NONE = (0) +COMPRESSION_FORMAT_DEFAULT = (1) +COMPRESSION_FORMAT_LZNT1 = (2) +COMPRESSION_ENGINE_STANDARD = (0) +COMPRESSION_ENGINE_MAXIMUM = (256) +MESSAGE_RESOURCE_UNICODE = 1 +RTL_CRITSECT_TYPE = 0 +RTL_RESOURCE_TYPE = 1 +DLL_PROCESS_ATTACH = 1 +DLL_THREAD_ATTACH = 2 +DLL_THREAD_DETACH = 3 +DLL_PROCESS_DETACH = 0 +EVENTLOG_SEQUENTIAL_READ = 0X0001 +EVENTLOG_SEEK_READ = 0X0002 +EVENTLOG_FORWARDS_READ = 0X0004 +EVENTLOG_BACKWARDS_READ = 0X0008 +EVENTLOG_SUCCESS = 0X0000 +EVENTLOG_ERROR_TYPE = 1 +EVENTLOG_WARNING_TYPE = 2 +EVENTLOG_INFORMATION_TYPE = 4 +EVENTLOG_AUDIT_SUCCESS = 8 +EVENTLOG_AUDIT_FAILURE = 16 +EVENTLOG_START_PAIRED_EVENT = 1 +EVENTLOG_END_PAIRED_EVENT = 2 +EVENTLOG_END_ALL_PAIRED_EVENTS = 4 +EVENTLOG_PAIRED_EVENT_ACTIVE = 8 +EVENTLOG_PAIRED_EVENT_INACTIVE = 16 +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. +OWNER_SECURITY_INFORMATION = (0X00000001) +GROUP_SECURITY_INFORMATION = (0X00000002) +DACL_SECURITY_INFORMATION = (0X00000004) +SACL_SECURITY_INFORMATION = (0X00000008) +IMAGE_SIZEOF_FILE_HEADER = 20 +IMAGE_FILE_MACHINE_UNKNOWN = 0 +IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 +IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 +IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 +IMAGE_SIZEOF_NT_OPTIONAL_HEADER = 224 +IMAGE_NT_OPTIONAL_HDR_MAGIC = 267 +IMAGE_ROM_OPTIONAL_HDR_MAGIC = 263 +IMAGE_SIZEOF_SHORT_NAME = 8 +IMAGE_SIZEOF_SECTION_HEADER = 40 +IMAGE_SIZEOF_SYMBOL = 18 +IMAGE_SYM_CLASS_NULL = 0 +IMAGE_SYM_CLASS_AUTOMATIC = 1 +IMAGE_SYM_CLASS_EXTERNAL = 2 +IMAGE_SYM_CLASS_STATIC = 3 +IMAGE_SYM_CLASS_REGISTER = 4 +IMAGE_SYM_CLASS_EXTERNAL_DEF = 5 +IMAGE_SYM_CLASS_LABEL = 6 +IMAGE_SYM_CLASS_UNDEFINED_LABEL = 7 +IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 8 +IMAGE_SYM_CLASS_ARGUMENT = 9 +IMAGE_SYM_CLASS_STRUCT_TAG = 10 +IMAGE_SYM_CLASS_MEMBER_OF_UNION = 11 +IMAGE_SYM_CLASS_UNION_TAG = 12 +IMAGE_SYM_CLASS_TYPE_DEFINITION = 13 +IMAGE_SYM_CLASS_UNDEFINED_STATIC = 14 +IMAGE_SYM_CLASS_ENUM_TAG = 15 +IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 16 +IMAGE_SYM_CLASS_REGISTER_PARAM = 17 +IMAGE_SYM_CLASS_BIT_FIELD = 18 +IMAGE_SYM_CLASS_BLOCK = 100 +IMAGE_SYM_CLASS_FUNCTION = 101 +IMAGE_SYM_CLASS_END_OF_STRUCT = 102 +IMAGE_SYM_CLASS_FILE = 103 +IMAGE_SYM_CLASS_SECTION = 104 +IMAGE_SYM_CLASS_WEAK_EXTERNAL = 105 +N_BTMASK = 15 +N_TMASK = 48 +N_TMASK1 = 192 +N_TMASK2 = 240 +N_BTSHFT = 4 +N_TSHIFT = 2 +IMAGE_SIZEOF_AUX_SYMBOL = 18 +IMAGE_COMDAT_SELECT_NODUPLICATES = 1 +IMAGE_COMDAT_SELECT_ANY = 2 +IMAGE_COMDAT_SELECT_SAME_SIZE = 3 +IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 +IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 +IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 +IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 +IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 +IMAGE_SIZEOF_RELOCATION = 10 +IMAGE_REL_I386_SECTION = 10 +IMAGE_REL_I386_SECREL = 11 +IMAGE_REL_MIPS_REFHALF = 1 +IMAGE_REL_MIPS_REFWORD = 2 +IMAGE_REL_MIPS_JMPADDR = 3 +IMAGE_REL_MIPS_REFHI = 4 +IMAGE_REL_MIPS_REFLO = 5 +IMAGE_REL_MIPS_GPREL = 6 +IMAGE_REL_MIPS_LITERAL = 7 +IMAGE_REL_MIPS_SECTION = 10 +IMAGE_REL_MIPS_SECREL = 11 +IMAGE_REL_MIPS_REFWORDNB = 34 +IMAGE_REL_MIPS_PAIR = 37 +IMAGE_REL_ALPHA_ABSOLUTE = 0 +IMAGE_REL_ALPHA_REFLONG = 1 +IMAGE_REL_ALPHA_REFQUAD = 2 +IMAGE_REL_ALPHA_GPREL32 = 3 +IMAGE_REL_ALPHA_LITERAL = 4 +IMAGE_REL_ALPHA_LITUSE = 5 +IMAGE_REL_ALPHA_GPDISP = 6 +IMAGE_REL_ALPHA_BRADDR = 7 +IMAGE_REL_ALPHA_HINT = 8 +IMAGE_REL_ALPHA_INLINE_REFLONG = 9 +IMAGE_REL_ALPHA_REFHI = 10 +IMAGE_REL_ALPHA_REFLO = 11 +IMAGE_REL_ALPHA_PAIR = 12 +IMAGE_REL_ALPHA_MATCH = 13 +IMAGE_REL_ALPHA_SECTION = 14 +IMAGE_REL_ALPHA_SECREL = 15 +IMAGE_REL_ALPHA_REFLONGNB = 16 +IMAGE_SIZEOF_BASE_RELOCATION = 8 +IMAGE_REL_BASED_ABSOLUTE = 0 +IMAGE_REL_BASED_HIGH = 1 +IMAGE_REL_BASED_LOW = 2 +IMAGE_REL_BASED_HIGHLOW = 3 +IMAGE_REL_BASED_HIGHADJ = 4 +IMAGE_REL_BASED_MIPS_JMPADDR = 5 +IMAGE_SIZEOF_LINENUMBER = 6 +IMAGE_ARCHIVE_START_SIZE = 8 +IMAGE_ARCHIVE_START = "!\n" +IMAGE_ARCHIVE_END = "`\n" +IMAGE_ARCHIVE_PAD = "\n" +IMAGE_ARCHIVE_LINKER_MEMBER = "/ " +IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// " +IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 +IMAGE_ORDINAL_FLAG = -2147483648 +def IMAGE_SNAP_BY_ORDINAL(Ordinal): return ((Ordinal & IMAGE_ORDINAL_FLAG) != 0) + +def IMAGE_ORDINAL(Ordinal): return (Ordinal & 65535) + +IMAGE_RESOURCE_NAME_IS_STRING = -2147483648 +IMAGE_RESOURCE_DATA_IS_DIRECTORY = -2147483648 +IMAGE_DEBUG_TYPE_UNKNOWN = 0 +IMAGE_DEBUG_TYPE_COFF = 1 +IMAGE_DEBUG_TYPE_CODEVIEW = 2 +IMAGE_DEBUG_TYPE_FPO = 3 +IMAGE_DEBUG_TYPE_MISC = 4 +IMAGE_DEBUG_TYPE_EXCEPTION = 5 +IMAGE_DEBUG_TYPE_FIXUP = 6 +IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 +IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 +FRAME_FPO = 0 +FRAME_TRAP = 1 +FRAME_TSS = 2 +SIZEOF_RFPO_DATA = 16 +IMAGE_DEBUG_MISC_EXENAME = 1 +IMAGE_SEPARATE_DEBUG_SIGNATURE = 18756 +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. +NEWFRAME = 1 +ABORTDOC = 2 +NEXTBAND = 3 +SETCOLORTABLE = 4 +GETCOLORTABLE = 5 +FLUSHOUTPUT = 6 +DRAFTMODE = 7 +QUERYESCSUPPORT = 8 +SETABORTPROC = 9 +STARTDOC = 10 +ENDDOC = 11 +GETPHYSPAGESIZE = 12 +GETPRINTINGOFFSET = 13 +GETSCALINGFACTOR = 14 +MFCOMMENT = 15 +GETPENWIDTH = 16 +SETCOPYCOUNT = 17 +SELECTPAPERSOURCE = 18 +DEVICEDATA = 19 +PASSTHROUGH = 19 +GETTECHNOLGY = 20 +GETTECHNOLOGY = 20 +SETLINECAP = 21 +SETLINEJOIN = 22 +SETMITERLIMIT = 23 +BANDINFO = 24 +DRAWPATTERNRECT = 25 +GETVECTORPENSIZE = 26 +GETVECTORBRUSHSIZE = 27 +ENABLEDUPLEX = 28 +GETSETPAPERBINS = 29 +GETSETPRINTORIENT = 30 +ENUMPAPERBINS = 31 +SETDIBSCALING = 32 +EPSPRINTING = 33 +ENUMPAPERMETRICS = 34 +GETSETPAPERMETRICS = 35 +POSTSCRIPT_DATA = 37 +POSTSCRIPT_IGNORE = 38 +MOUSETRAILS = 39 +GETDEVICEUNITS = 42 +GETEXTENDEDTEXTMETRICS = 256 +GETEXTENTTABLE = 257 +GETPAIRKERNTABLE = 258 +GETTRACKKERNTABLE = 259 +EXTTEXTOUT = 512 +GETFACENAME = 513 +DOWNLOADFACE = 514 +ENABLERELATIVEWIDTHS = 768 +ENABLEPAIRKERNING = 769 +SETKERNTRACK = 770 +SETALLJUSTVALUES = 771 +SETCHARSET = 772 +STRETCHBLT = 2048 +GETSETSCREENPARAMS = 3072 +BEGIN_PATH = 4096 +CLIP_TO_PATH = 4097 +END_PATH = 4098 +EXT_DEVICE_CAPS = 4099 +RESTORE_CTM = 4100 +SAVE_CTM = 4101 +SET_ARC_DIRECTION = 4102 +SET_BACKGROUND_COLOR = 4103 +SET_POLY_MODE = 4104 +SET_SCREEN_ANGLE = 4105 +SET_SPREAD = 4106 +TRANSFORM_CTM = 4107 +SET_CLIP_BOX = 4108 +SET_BOUNDS = 4109 +SET_MIRROR_MODE = 4110 +OPENCHANNEL = 4110 +DOWNLOADHEADER = 4111 +CLOSECHANNEL = 4112 +POSTSCRIPT_PASSTHROUGH = 4115 +ENCAPSULATED_POSTSCRIPT = 4116 +SP_NOTREPORTED = 16384 +SP_ERROR = (-1) +SP_APPABORT = (-2) +SP_USERABORT = (-3) +SP_OUTOFDISK = (-4) +SP_OUTOFMEMORY = (-5) +PR_JOBSTATUS = 0 + +## GDI object types +OBJ_PEN = 1 +OBJ_BRUSH = 2 +OBJ_DC = 3 +OBJ_METADC = 4 +OBJ_PAL = 5 +OBJ_FONT = 6 +OBJ_BITMAP = 7 +OBJ_REGION = 8 +OBJ_METAFILE = 9 +OBJ_MEMDC = 10 +OBJ_EXTPEN = 11 +OBJ_ENHMETADC = 12 +OBJ_ENHMETAFILE = 13 +OBJ_COLORSPACE = 14 + +MWT_IDENTITY = 1 +MWT_LEFTMULTIPLY = 2 +MWT_RIGHTMULTIPLY = 3 +MWT_MIN = MWT_IDENTITY +MWT_MAX = MWT_RIGHTMULTIPLY +BI_RGB = 0 +BI_RLE8 = 1 +BI_RLE4 = 2 +BI_BITFIELDS = 3 +TMPF_FIXED_PITCH = 1 +TMPF_VECTOR = 2 +TMPF_DEVICE = 8 +TMPF_TRUETYPE = 4 +NTM_REGULAR = 64 +NTM_BOLD = 32 +NTM_ITALIC = 1 +LF_FACESIZE = 32 +LF_FULLFACESIZE = 64 +OUT_DEFAULT_PRECIS = 0 +OUT_STRING_PRECIS = 1 +OUT_CHARACTER_PRECIS = 2 +OUT_STROKE_PRECIS = 3 +OUT_TT_PRECIS = 4 +OUT_DEVICE_PRECIS = 5 +OUT_RASTER_PRECIS = 6 +OUT_TT_ONLY_PRECIS = 7 +OUT_OUTLINE_PRECIS = 8 +CLIP_DEFAULT_PRECIS = 0 +CLIP_CHARACTER_PRECIS = 1 +CLIP_STROKE_PRECIS = 2 +CLIP_MASK = 15 +CLIP_LH_ANGLES = (1<<4) +CLIP_TT_ALWAYS = (2<<4) +CLIP_EMBEDDED = (8<<4) +DEFAULT_QUALITY = 0 +DRAFT_QUALITY = 1 +PROOF_QUALITY = 2 +NONANTIALIASED_QUALITY = 3 +ANTIALIASED_QUALITY = 4 +CLEARTYPE_QUALITY = 5 +CLEARTYPE_NATURAL_QUALITY = 6 +DEFAULT_PITCH = 0 +FIXED_PITCH = 1 +VARIABLE_PITCH = 2 +ANSI_CHARSET = 0 +DEFAULT_CHARSET = 1 +SYMBOL_CHARSET = 2 +SHIFTJIS_CHARSET = 128 +HANGEUL_CHARSET = 129 +CHINESEBIG5_CHARSET = 136 +OEM_CHARSET = 255 +JOHAB_CHARSET = 130 +HEBREW_CHARSET = 177 +ARABIC_CHARSET = 178 +GREEK_CHARSET = 161 +TURKISH_CHARSET = 162 +VIETNAMESE_CHARSET = 163 +THAI_CHARSET = 222 +EASTEUROPE_CHARSET = 238 +RUSSIAN_CHARSET = 204 +MAC_CHARSET = 77 +BALTIC_CHARSET = 186 +FF_DONTCARE = (0<<4) +FF_ROMAN = (1<<4) +FF_SWISS = (2<<4) +FF_MODERN = (3<<4) +FF_SCRIPT = (4<<4) +FF_DECORATIVE = (5<<4) +FW_DONTCARE = 0 +FW_THIN = 100 +FW_EXTRALIGHT = 200 +FW_LIGHT = 300 +FW_NORMAL = 400 +FW_MEDIUM = 500 +FW_SEMIBOLD = 600 +FW_BOLD = 700 +FW_EXTRABOLD = 800 +FW_HEAVY = 900 +FW_ULTRALIGHT = FW_EXTRALIGHT +FW_REGULAR = FW_NORMAL +FW_DEMIBOLD = FW_SEMIBOLD +FW_ULTRABOLD = FW_EXTRABOLD +FW_BLACK = FW_HEAVY +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. +BS_SOLID = 0 +BS_NULL = 1 +BS_HOLLOW = BS_NULL +BS_HATCHED = 2 +BS_PATTERN = 3 +BS_INDEXED = 4 +BS_DIBPATTERN = 5 +BS_DIBPATTERNPT = 6 +BS_PATTERN8X8 = 7 +BS_DIBPATTERN8X8 = 8 +HS_HORIZONTAL = 0 +HS_VERTICAL = 1 +HS_FDIAGONAL = 2 +HS_BDIAGONAL = 3 +HS_CROSS = 4 +HS_DIAGCROSS = 5 +HS_FDIAGONAL1 = 6 +HS_BDIAGONAL1 = 7 +HS_SOLID = 8 +HS_DENSE1 = 9 +HS_DENSE2 = 10 +HS_DENSE3 = 11 +HS_DENSE4 = 12 +HS_DENSE5 = 13 +HS_DENSE6 = 14 +HS_DENSE7 = 15 +HS_DENSE8 = 16 +HS_NOSHADE = 17 +HS_HALFTONE = 18 +HS_SOLIDCLR = 19 +HS_DITHEREDCLR = 20 +HS_SOLIDTEXTCLR = 21 +HS_DITHEREDTEXTCLR = 22 +HS_SOLIDBKCLR = 23 +HS_DITHEREDBKCLR = 24 +HS_API_MAX = 25 +PS_SOLID = 0 +PS_DASH = 1 +PS_DOT = 2 +PS_DASHDOT = 3 +PS_DASHDOTDOT = 4 +PS_NULL = 5 +PS_INSIDEFRAME = 6 +PS_USERSTYLE = 7 +PS_ALTERNATE = 8 +PS_STYLE_MASK = 15 +PS_ENDCAP_ROUND = 0 +PS_ENDCAP_SQUARE = 256 +PS_ENDCAP_FLAT = 512 +PS_ENDCAP_MASK = 3840 +PS_JOIN_ROUND = 0 +PS_JOIN_BEVEL = 4096 +PS_JOIN_MITER = 8192 +PS_JOIN_MASK = 61440 +PS_COSMETIC = 0 +PS_GEOMETRIC = 65536 +PS_TYPE_MASK = 983040 +AD_COUNTERCLOCKWISE = 1 +AD_CLOCKWISE = 2 +DRIVERVERSION = 0 +TECHNOLOGY = 2 +HORZSIZE = 4 +VERTSIZE = 6 +HORZRES = 8 +VERTRES = 10 +BITSPIXEL = 12 +PLANES = 14 +NUMBRUSHES = 16 +NUMPENS = 18 +NUMMARKERS = 20 +NUMFONTS = 22 +NUMCOLORS = 24 +PDEVICESIZE = 26 +CURVECAPS = 28 +LINECAPS = 30 +POLYGONALCAPS = 32 +TEXTCAPS = 34 +CLIPCAPS = 36 +RASTERCAPS = 38 +ASPECTX = 40 +ASPECTY = 42 +ASPECTXY = 44 +LOGPIXELSX = 88 +LOGPIXELSY = 90 +SIZEPALETTE = 104 +NUMRESERVED = 106 +COLORRES = 108 + +PHYSICALWIDTH = 110 +PHYSICALHEIGHT = 111 +PHYSICALOFFSETX = 112 +PHYSICALOFFSETY = 113 +SCALINGFACTORX = 114 +SCALINGFACTORY = 115 +VREFRESH = 116 +DESKTOPVERTRES = 117 +DESKTOPHORZRES = 118 +BLTALIGNMENT = 119 +SHADEBLENDCAPS = 120 +COLORMGMTCAPS = 121 + +DT_PLOTTER = 0 +DT_RASDISPLAY = 1 +DT_RASPRINTER = 2 +DT_RASCAMERA = 3 +DT_CHARSTREAM = 4 +DT_METAFILE = 5 +DT_DISPFILE = 6 +CC_NONE = 0 +CC_CIRCLES = 1 +CC_PIE = 2 +CC_CHORD = 4 +CC_ELLIPSES = 8 +CC_WIDE = 16 +CC_STYLED = 32 +CC_WIDESTYLED = 64 +CC_INTERIORS = 128 +CC_ROUNDRECT = 256 +LC_NONE = 0 +LC_POLYLINE = 2 +LC_MARKER = 4 +LC_POLYMARKER = 8 +LC_WIDE = 16 +LC_STYLED = 32 +LC_WIDESTYLED = 64 +LC_INTERIORS = 128 +PC_NONE = 0 +PC_POLYGON = 1 +PC_RECTANGLE = 2 +PC_WINDPOLYGON = 4 +PC_TRAPEZOID = 4 +PC_SCANLINE = 8 +PC_WIDE = 16 +PC_STYLED = 32 +PC_WIDESTYLED = 64 +PC_INTERIORS = 128 +CP_NONE = 0 +CP_RECTANGLE = 1 +CP_REGION = 2 +TC_OP_CHARACTER = 1 +TC_OP_STROKE = 2 +TC_CP_STROKE = 4 +TC_CR_90 = 8 +TC_CR_ANY = 16 +TC_SF_X_YINDEP = 32 +TC_SA_DOUBLE = 64 +TC_SA_INTEGER = 128 +TC_SA_CONTIN = 256 +TC_EA_DOUBLE = 512 +TC_IA_ABLE = 1024 +TC_UA_ABLE = 2048 +TC_SO_ABLE = 4096 +TC_RA_ABLE = 8192 +TC_VA_ABLE = 16384 +TC_RESERVED = 32768 +TC_SCROLLBLT = 65536 +RC_BITBLT = 1 +RC_BANDING = 2 +RC_SCALING = 4 +RC_BITMAP64 = 8 +RC_GDI20_OUTPUT = 16 +RC_GDI20_STATE = 32 +RC_SAVEBITMAP = 64 +RC_DI_BITMAP = 128 +RC_PALETTE = 256 +RC_DIBTODEV = 512 +RC_BIGFONT = 1024 +RC_STRETCHBLT = 2048 +RC_FLOODFILL = 4096 +RC_STRETCHDIB = 8192 +RC_OP_DX_OUTPUT = 16384 +RC_DEVBITS = 32768 +DIB_RGB_COLORS = 0 +DIB_PAL_COLORS = 1 +DIB_PAL_INDICES = 2 +DIB_PAL_PHYSINDICES = 2 +DIB_PAL_LOGINDICES = 4 +SYSPAL_ERROR = 0 +SYSPAL_STATIC = 1 +SYSPAL_NOSTATIC = 2 +CBM_CREATEDIB = 2 +CBM_INIT = 4 +FLOODFILLBORDER = 0 +FLOODFILLSURFACE = 1 +CCHDEVICENAME = 32 +CCHFORMNAME = 32 +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. + +# DEVMODE.dmFields +DM_SPECVERSION = 800 +DM_ORIENTATION = 1 +DM_PAPERSIZE = 2 +DM_PAPERLENGTH = 4 +DM_PAPERWIDTH = 8 +DM_SCALE = 16 +DM_POSITION = 32 +DM_NUP = 64 +DM_DISPLAYORIENTATION = 128 +DM_COPIES = 256 +DM_DEFAULTSOURCE = 512 +DM_PRINTQUALITY = 1024 +DM_COLOR = 2048 +DM_DUPLEX = 4096 +DM_YRESOLUTION = 8192 +DM_TTOPTION = 16384 +DM_COLLATE = 32768 +DM_FORMNAME = 65536 +DM_LOGPIXELS = 131072 +DM_BITSPERPEL = 262144 +DM_PELSWIDTH = 524288 +DM_PELSHEIGHT = 1048576 +DM_DISPLAYFLAGS = 2097152 +DM_DISPLAYFREQUENCY = 4194304 +DM_ICMMETHOD = 8388608 +DM_ICMINTENT = 16777216 +DM_MEDIATYPE = 33554432 +DM_DITHERTYPE = 67108864 +DM_PANNINGWIDTH = 134217728 +DM_PANNINGHEIGHT = 268435456 +DM_DISPLAYFIXEDOUTPUT = 536870912 + +# DEVMODE.dmOrientation +DMORIENT_PORTRAIT = 1 +DMORIENT_LANDSCAPE = 2 + +# DEVMODE.dmDisplayOrientation +DMDO_DEFAULT = 0 +DMDO_90 = 1 +DMDO_180 = 2 +DMDO_270 = 3 + +# DEVMODE.dmDisplayFixedOutput +DMDFO_DEFAULT = 0 +DMDFO_STRETCH = 1 +DMDFO_CENTER = 2 + +# DEVMODE.dmPaperSize +DMPAPER_LETTER = 1 +DMPAPER_LETTERSMALL = 2 +DMPAPER_TABLOID = 3 +DMPAPER_LEDGER = 4 +DMPAPER_LEGAL = 5 +DMPAPER_STATEMENT = 6 +DMPAPER_EXECUTIVE = 7 +DMPAPER_A3 = 8 +DMPAPER_A4 = 9 +DMPAPER_A4SMALL = 10 +DMPAPER_A5 = 11 +DMPAPER_B4 = 12 +DMPAPER_B5 = 13 +DMPAPER_FOLIO = 14 +DMPAPER_QUARTO = 15 +DMPAPER_10X14 = 16 +DMPAPER_11X17 = 17 +DMPAPER_NOTE = 18 +DMPAPER_ENV_9 = 19 +DMPAPER_ENV_10 = 20 +DMPAPER_ENV_11 = 21 +DMPAPER_ENV_12 = 22 +DMPAPER_ENV_14 = 23 +DMPAPER_CSHEET = 24 +DMPAPER_DSHEET = 25 +DMPAPER_ESHEET = 26 +DMPAPER_ENV_DL = 27 +DMPAPER_ENV_C5 = 28 +DMPAPER_ENV_C3 = 29 +DMPAPER_ENV_C4 = 30 +DMPAPER_ENV_C6 = 31 +DMPAPER_ENV_C65 = 32 +DMPAPER_ENV_B4 = 33 +DMPAPER_ENV_B5 = 34 +DMPAPER_ENV_B6 = 35 +DMPAPER_ENV_ITALY = 36 +DMPAPER_ENV_MONARCH = 37 +DMPAPER_ENV_PERSONAL = 38 +DMPAPER_FANFOLD_US = 39 +DMPAPER_FANFOLD_STD_GERMAN = 40 +DMPAPER_FANFOLD_LGL_GERMAN = 41 +DMPAPER_ISO_B4 = 42 +DMPAPER_JAPANESE_POSTCARD = 43 +DMPAPER_9X11 = 44 +DMPAPER_10X11 = 45 +DMPAPER_15X11 = 46 +DMPAPER_ENV_INVITE = 47 +DMPAPER_RESERVED_48 = 48 +DMPAPER_RESERVED_49 = 49 +DMPAPER_LETTER_EXTRA = 50 +DMPAPER_LEGAL_EXTRA = 51 +DMPAPER_TABLOID_EXTRA = 52 +DMPAPER_A4_EXTRA = 53 +DMPAPER_LETTER_TRANSVERSE = 54 +DMPAPER_A4_TRANSVERSE = 55 +DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 +DMPAPER_A_PLUS = 57 +DMPAPER_B_PLUS = 58 +DMPAPER_LETTER_PLUS = 59 +DMPAPER_A4_PLUS = 60 +DMPAPER_A5_TRANSVERSE = 61 +DMPAPER_B5_TRANSVERSE = 62 +DMPAPER_A3_EXTRA = 63 +DMPAPER_A5_EXTRA = 64 +DMPAPER_B5_EXTRA = 65 +DMPAPER_A2 = 66 +DMPAPER_A3_TRANSVERSE = 67 +DMPAPER_A3_EXTRA_TRANSVERSE = 68 +DMPAPER_DBL_JAPANESE_POSTCARD = 69 +DMPAPER_A6 = 70 +DMPAPER_JENV_KAKU2 = 71 +DMPAPER_JENV_KAKU3 = 72 +DMPAPER_JENV_CHOU3 = 73 +DMPAPER_JENV_CHOU4 = 74 +DMPAPER_LETTER_ROTATED = 75 +DMPAPER_A3_ROTATED = 76 +DMPAPER_A4_ROTATED = 77 +DMPAPER_A5_ROTATED = 78 +DMPAPER_B4_JIS_ROTATED = 79 +DMPAPER_B5_JIS_ROTATED = 80 +DMPAPER_JAPANESE_POSTCARD_ROTATED = 81 +DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82 +DMPAPER_A6_ROTATED = 83 +DMPAPER_JENV_KAKU2_ROTATED = 84 +DMPAPER_JENV_KAKU3_ROTATED = 85 +DMPAPER_JENV_CHOU3_ROTATED = 86 +DMPAPER_JENV_CHOU4_ROTATED = 87 +DMPAPER_B6_JIS = 88 +DMPAPER_B6_JIS_ROTATED = 89 +DMPAPER_12X11 = 90 +DMPAPER_JENV_YOU4 = 91 +DMPAPER_JENV_YOU4_ROTATED = 92 +DMPAPER_P16K = 93 +DMPAPER_P32K = 94 +DMPAPER_P32KBIG = 95 +DMPAPER_PENV_1 = 96 +DMPAPER_PENV_2 = 97 +DMPAPER_PENV_3 = 98 +DMPAPER_PENV_4 = 99 +DMPAPER_PENV_5 = 100 +DMPAPER_PENV_6 = 101 +DMPAPER_PENV_7 = 102 +DMPAPER_PENV_8 = 103 +DMPAPER_PENV_9 = 104 +DMPAPER_PENV_10 = 105 +DMPAPER_P16K_ROTATED = 106 +DMPAPER_P32K_ROTATED = 107 +DMPAPER_P32KBIG_ROTATED = 108 +DMPAPER_PENV_1_ROTATED = 109 +DMPAPER_PENV_2_ROTATED = 110 +DMPAPER_PENV_3_ROTATED = 111 +DMPAPER_PENV_4_ROTATED = 112 +DMPAPER_PENV_5_ROTATED = 113 +DMPAPER_PENV_6_ROTATED = 114 +DMPAPER_PENV_7_ROTATED = 115 +DMPAPER_PENV_8_ROTATED = 116 +DMPAPER_PENV_9_ROTATED = 117 +DMPAPER_PENV_10_ROTATED = 118 +DMPAPER_LAST = DMPAPER_PENV_10_ROTATED +DMPAPER_USER = 256 + +# DEVMODE.dmDefaultSource +DMBIN_UPPER = 1 +DMBIN_ONLYONE = 1 +DMBIN_LOWER = 2 +DMBIN_MIDDLE = 3 +DMBIN_MANUAL = 4 +DMBIN_ENVELOPE = 5 +DMBIN_ENVMANUAL = 6 +DMBIN_AUTO = 7 +DMBIN_TRACTOR = 8 +DMBIN_SMALLFMT = 9 +DMBIN_LARGEFMT = 10 +DMBIN_LARGECAPACITY = 11 +DMBIN_CASSETTE = 14 +DMBIN_FORMSOURCE = 15 +DMBIN_LAST = DMBIN_FORMSOURCE +DMBIN_USER = 256 + +# DEVMODE.dmPrintQuality +DMRES_DRAFT = (-1) +DMRES_LOW = (-2) +DMRES_MEDIUM = (-3) +DMRES_HIGH = (-4) + +# DEVMODE.dmColor +DMCOLOR_MONOCHROME = 1 +DMCOLOR_COLOR = 2 + +# DEVMODE.dmDuplex +DMDUP_SIMPLEX = 1 +DMDUP_VERTICAL = 2 +DMDUP_HORIZONTAL = 3 + +# DEVMODE.dmTTOption +DMTT_BITMAP = 1 +DMTT_DOWNLOAD = 2 +DMTT_SUBDEV = 3 +DMTT_DOWNLOAD_OUTLINE = 4 + +# DEVMODE.dmCollate +DMCOLLATE_FALSE = 0 +DMCOLLATE_TRUE = 1 + +# DEVMODE.dmDisplayFlags +DM_GRAYSCALE = 1 +DM_INTERLACED = 2 + +# DEVMODE.dmICMMethod +DMICMMETHOD_NONE = 1 +DMICMMETHOD_SYSTEM = 2 +DMICMMETHOD_DRIVER = 3 +DMICMMETHOD_DEVICE = 4 +DMICMMETHOD_USER = 256 + +# DEVMODE.dmICMIntent +DMICM_SATURATE = 1 +DMICM_CONTRAST = 2 +DMICM_COLORIMETRIC = 3 +DMICM_ABS_COLORIMETRIC = 4 +DMICM_USER = 256 + +# DEVMODE.dmMediaType +DMMEDIA_STANDARD = 1 +DMMEDIA_TRANSPARENCY = 2 +DMMEDIA_GLOSSY = 3 +DMMEDIA_USER = 256 + +# DEVMODE.dmDitherType +DMDITHER_NONE = 1 +DMDITHER_COARSE = 2 +DMDITHER_FINE = 3 +DMDITHER_LINEART = 4 +DMDITHER_ERRORDIFFUSION = 5 +DMDITHER_RESERVED6 = 6 +DMDITHER_RESERVED7 = 7 +DMDITHER_RESERVED8 = 8 +DMDITHER_RESERVED9 = 9 +DMDITHER_GRAYSCALE = 10 +DMDITHER_USER = 256 + +# DEVMODE.dmNup +DMNUP_SYSTEM = 1 +DMNUP_ONEUP = 2 + +# used with ExtEscape +FEATURESETTING_NUP = 0 +FEATURESETTING_OUTPUT = 1 +FEATURESETTING_PSLEVEL = 2 +FEATURESETTING_CUSTPAPER = 3 +FEATURESETTING_MIRROR = 4 +FEATURESETTING_NEGATIVE = 5 +FEATURESETTING_PROTOCOL = 6 +FEATURESETTING_PRIVATE_BEGIN = 0x1000 +FEATURESETTING_PRIVATE_END = 0x1FFF + +RDH_RECTANGLES = 1 +GGO_METRICS = 0 +GGO_BITMAP = 1 +GGO_NATIVE = 2 +TT_POLYGON_TYPE = 24 +TT_PRIM_LINE = 1 +TT_PRIM_QSPLINE = 2 +TT_AVAILABLE = 1 +TT_ENABLED = 2 +DM_UPDATE = 1 +DM_COPY = 2 +DM_PROMPT = 4 +DM_MODIFY = 8 +DM_IN_BUFFER = DM_MODIFY +DM_IN_PROMPT = DM_PROMPT +DM_OUT_BUFFER = DM_COPY +DM_OUT_DEFAULT = DM_UPDATE + +# DISPLAY_DEVICE.StateFlags +DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 1 +DISPLAY_DEVICE_MULTI_DRIVER = 2 +DISPLAY_DEVICE_PRIMARY_DEVICE = 4 +DISPLAY_DEVICE_MIRRORING_DRIVER = 8 +DISPLAY_DEVICE_VGA_COMPATIBLE = 16 +DISPLAY_DEVICE_REMOVABLE = 32 +DISPLAY_DEVICE_MODESPRUNED = 134217728 +DISPLAY_DEVICE_REMOTE = 67108864 +DISPLAY_DEVICE_DISCONNECT = 33554432 + +# DeviceCapabilities types +DC_FIELDS = 1 +DC_PAPERS = 2 +DC_PAPERSIZE = 3 +DC_MINEXTENT = 4 +DC_MAXEXTENT = 5 +DC_BINS = 6 +DC_DUPLEX = 7 +DC_SIZE = 8 +DC_EXTRA = 9 +DC_VERSION = 10 +DC_DRIVER = 11 +DC_BINNAMES = 12 +DC_ENUMRESOLUTIONS = 13 +DC_FILEDEPENDENCIES = 14 +DC_TRUETYPE = 15 +DC_PAPERNAMES = 16 +DC_ORIENTATION = 17 +DC_COPIES = 18 +DC_BINADJUST = 19 +DC_EMF_COMPLIANT = 20 +DC_DATATYPE_PRODUCED = 21 +DC_COLLATE = 22 +DC_MANUFACTURER = 23 +DC_MODEL = 24 +DC_PERSONALITY = 25 +DC_PRINTRATE = 26 +DC_PRINTRATEUNIT = 27 +DC_PRINTERMEM = 28 +DC_MEDIAREADY = 29 +DC_STAPLE = 30 +DC_PRINTRATEPPM = 31 +DC_COLORDEVICE = 32 +DC_NUP = 33 +DC_MEDIATYPENAMES = 34 +DC_MEDIATYPES = 35 + +PRINTRATEUNIT_PPM = 1 +PRINTRATEUNIT_CPS = 2 +PRINTRATEUNIT_LPM = 3 +PRINTRATEUNIT_IPM = 4 + +# TrueType constants +DCTT_BITMAP = 1 +DCTT_DOWNLOAD = 2 +DCTT_SUBDEV = 4 +DCTT_DOWNLOAD_OUTLINE = 8 + +DCBA_FACEUPNONE = 0 +DCBA_FACEUPCENTER = 1 +DCBA_FACEUPLEFT = 2 +DCBA_FACEUPRIGHT = 3 +DCBA_FACEDOWNNONE = 256 +DCBA_FACEDOWNCENTER = 257 +DCBA_FACEDOWNLEFT = 258 +DCBA_FACEDOWNRIGHT = 259 + +CA_NEGATIVE = 1 +CA_LOG_FILTER = 2 +ILLUMINANT_DEVICE_DEFAULT = 0 +ILLUMINANT_A = 1 +ILLUMINANT_B = 2 +ILLUMINANT_C = 3 +ILLUMINANT_D50 = 4 +ILLUMINANT_D55 = 5 +ILLUMINANT_D65 = 6 +ILLUMINANT_D75 = 7 +ILLUMINANT_F2 = 8 +ILLUMINANT_MAX_INDEX = ILLUMINANT_F2 +ILLUMINANT_TUNGSTEN = ILLUMINANT_A +ILLUMINANT_DAYLIGHT = ILLUMINANT_C +ILLUMINANT_FLUORESCENT = ILLUMINANT_F2 +ILLUMINANT_NTSC = ILLUMINANT_C + +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. +FONTMAPPER_MAX = 10 +ENHMETA_SIGNATURE = 1179469088 +ENHMETA_STOCK_OBJECT = -2147483648 +EMR_HEADER = 1 +EMR_POLYBEZIER = 2 +EMR_POLYGON = 3 +EMR_POLYLINE = 4 +EMR_POLYBEZIERTO = 5 +EMR_POLYLINETO = 6 +EMR_POLYPOLYLINE = 7 +EMR_POLYPOLYGON = 8 +EMR_SETWINDOWEXTEX = 9 +EMR_SETWINDOWORGEX = 10 +EMR_SETVIEWPORTEXTEX = 11 +EMR_SETVIEWPORTORGEX = 12 +EMR_SETBRUSHORGEX = 13 +EMR_EOF = 14 +EMR_SETPIXELV = 15 +EMR_SETMAPPERFLAGS = 16 +EMR_SETMAPMODE = 17 +EMR_SETBKMODE = 18 +EMR_SETPOLYFILLMODE = 19 +EMR_SETROP2 = 20 +EMR_SETSTRETCHBLTMODE = 21 +EMR_SETTEXTALIGN = 22 +EMR_SETCOLORADJUSTMENT = 23 +EMR_SETTEXTCOLOR = 24 +EMR_SETBKCOLOR = 25 +EMR_OFFSETCLIPRGN = 26 +EMR_MOVETOEX = 27 +EMR_SETMETARGN = 28 +EMR_EXCLUDECLIPRECT = 29 +EMR_INTERSECTCLIPRECT = 30 +EMR_SCALEVIEWPORTEXTEX = 31 +EMR_SCALEWINDOWEXTEX = 32 +EMR_SAVEDC = 33 +EMR_RESTOREDC = 34 +EMR_SETWORLDTRANSFORM = 35 +EMR_MODIFYWORLDTRANSFORM = 36 +EMR_SELECTOBJECT = 37 +EMR_CREATEPEN = 38 +EMR_CREATEBRUSHINDIRECT = 39 +EMR_DELETEOBJECT = 40 +EMR_ANGLEARC = 41 +EMR_ELLIPSE = 42 +EMR_RECTANGLE = 43 +EMR_ROUNDRECT = 44 +EMR_ARC = 45 +EMR_CHORD = 46 +EMR_PIE = 47 +EMR_SELECTPALETTE = 48 +EMR_CREATEPALETTE = 49 +EMR_SETPALETTEENTRIES = 50 +EMR_RESIZEPALETTE = 51 +EMR_REALIZEPALETTE = 52 +EMR_EXTFLOODFILL = 53 +EMR_LINETO = 54 +EMR_ARCTO = 55 +EMR_POLYDRAW = 56 +EMR_SETARCDIRECTION = 57 +EMR_SETMITERLIMIT = 58 +EMR_BEGINPATH = 59 +EMR_ENDPATH = 60 +EMR_CLOSEFIGURE = 61 +EMR_FILLPATH = 62 +EMR_STROKEANDFILLPATH = 63 +EMR_STROKEPATH = 64 +EMR_FLATTENPATH = 65 +EMR_WIDENPATH = 66 +EMR_SELECTCLIPPATH = 67 +EMR_ABORTPATH = 68 +EMR_GDICOMMENT = 70 +EMR_FILLRGN = 71 +EMR_FRAMERGN = 72 +EMR_INVERTRGN = 73 +EMR_PAINTRGN = 74 +EMR_EXTSELECTCLIPRGN = 75 +EMR_BITBLT = 76 +EMR_STRETCHBLT = 77 +EMR_MASKBLT = 78 +EMR_PLGBLT = 79 +EMR_SETDIBITSTODEVICE = 80 +EMR_STRETCHDIBITS = 81 +EMR_EXTCREATEFONTINDIRECTW = 82 +EMR_EXTTEXTOUTA = 83 +EMR_EXTTEXTOUTW = 84 +EMR_POLYBEZIER16 = 85 +EMR_POLYGON16 = 86 +EMR_POLYLINE16 = 87 +EMR_POLYBEZIERTO16 = 88 +EMR_POLYLINETO16 = 89 +EMR_POLYPOLYLINE16 = 90 +EMR_POLYPOLYGON16 = 91 +EMR_POLYDRAW16 = 92 +EMR_CREATEMONOBRUSH = 93 +EMR_CREATEDIBPATTERNBRUSHPT = 94 +EMR_EXTCREATEPEN = 95 +EMR_POLYTEXTOUTA = 96 +EMR_POLYTEXTOUTW = 97 +EMR_MIN = 1 +EMR_MAX = 97 +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. +PANOSE_COUNT = 10 +PAN_FAMILYTYPE_INDEX = 0 +PAN_SERIFSTYLE_INDEX = 1 +PAN_WEIGHT_INDEX = 2 +PAN_PROPORTION_INDEX = 3 +PAN_CONTRAST_INDEX = 4 +PAN_STROKEVARIATION_INDEX = 5 +PAN_ARMSTYLE_INDEX = 6 +PAN_LETTERFORM_INDEX = 7 +PAN_MIDLINE_INDEX = 8 +PAN_XHEIGHT_INDEX = 9 +PAN_CULTURE_LATIN = 0 +PAN_ANY = 0 +PAN_NO_FIT = 1 +PAN_FAMILY_TEXT_DISPLAY = 2 +PAN_FAMILY_SCRIPT = 3 +PAN_FAMILY_DECORATIVE = 4 +PAN_FAMILY_PICTORIAL = 5 +PAN_SERIF_COVE = 2 +PAN_SERIF_OBTUSE_COVE = 3 +PAN_SERIF_SQUARE_COVE = 4 +PAN_SERIF_OBTUSE_SQUARE_COVE = 5 +PAN_SERIF_SQUARE = 6 +PAN_SERIF_THIN = 7 +PAN_SERIF_BONE = 8 +PAN_SERIF_EXAGGERATED = 9 +PAN_SERIF_TRIANGLE = 10 +PAN_SERIF_NORMAL_SANS = 11 +PAN_SERIF_OBTUSE_SANS = 12 +PAN_SERIF_PERP_SANS = 13 +PAN_SERIF_FLARED = 14 +PAN_SERIF_ROUNDED = 15 +PAN_WEIGHT_VERY_LIGHT = 2 +PAN_WEIGHT_LIGHT = 3 +PAN_WEIGHT_THIN = 4 +PAN_WEIGHT_BOOK = 5 +PAN_WEIGHT_MEDIUM = 6 +PAN_WEIGHT_DEMI = 7 +PAN_WEIGHT_BOLD = 8 +PAN_WEIGHT_HEAVY = 9 +PAN_WEIGHT_BLACK = 10 +PAN_WEIGHT_NORD = 11 +PAN_PROP_OLD_STYLE = 2 +PAN_PROP_MODERN = 3 +PAN_PROP_EVEN_WIDTH = 4 +PAN_PROP_EXPANDED = 5 +PAN_PROP_CONDENSED = 6 +PAN_PROP_VERY_EXPANDED = 7 +PAN_PROP_VERY_CONDENSED = 8 +PAN_PROP_MONOSPACED = 9 +PAN_CONTRAST_NONE = 2 +PAN_CONTRAST_VERY_LOW = 3 +PAN_CONTRAST_LOW = 4 +PAN_CONTRAST_MEDIUM_LOW = 5 +PAN_CONTRAST_MEDIUM = 6 +PAN_CONTRAST_MEDIUM_HIGH = 7 +PAN_CONTRAST_HIGH = 8 +PAN_CONTRAST_VERY_HIGH = 9 +PAN_STROKE_GRADUAL_DIAG = 2 +PAN_STROKE_GRADUAL_TRAN = 3 +PAN_STROKE_GRADUAL_VERT = 4 +PAN_STROKE_GRADUAL_HORZ = 5 +PAN_STROKE_RAPID_VERT = 6 +PAN_STROKE_RAPID_HORZ = 7 +PAN_STROKE_INSTANT_VERT = 8 +PAN_STRAIGHT_ARMS_HORZ = 2 +PAN_STRAIGHT_ARMS_WEDGE = 3 +PAN_STRAIGHT_ARMS_VERT = 4 +PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 +PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 +PAN_BENT_ARMS_HORZ = 7 +PAN_BENT_ARMS_WEDGE = 8 +PAN_BENT_ARMS_VERT = 9 +PAN_BENT_ARMS_SINGLE_SERIF = 10 +PAN_BENT_ARMS_DOUBLE_SERIF = 11 +PAN_LETT_NORMAL_CONTACT = 2 +PAN_LETT_NORMAL_WEIGHTED = 3 +PAN_LETT_NORMAL_BOXED = 4 +PAN_LETT_NORMAL_FLATTENED = 5 +PAN_LETT_NORMAL_ROUNDED = 6 +PAN_LETT_NORMAL_OFF_CENTER = 7 +PAN_LETT_NORMAL_SQUARE = 8 +PAN_LETT_OBLIQUE_CONTACT = 9 +PAN_LETT_OBLIQUE_WEIGHTED = 10 +PAN_LETT_OBLIQUE_BOXED = 11 +PAN_LETT_OBLIQUE_FLATTENED = 12 +PAN_LETT_OBLIQUE_ROUNDED = 13 +PAN_LETT_OBLIQUE_OFF_CENTER = 14 +PAN_LETT_OBLIQUE_SQUARE = 15 +PAN_MIDLINE_STANDARD_TRIMMED = 2 +PAN_MIDLINE_STANDARD_POINTED = 3 +PAN_MIDLINE_STANDARD_SERIFED = 4 +PAN_MIDLINE_HIGH_TRIMMED = 5 +PAN_MIDLINE_HIGH_POINTED = 6 +PAN_MIDLINE_HIGH_SERIFED = 7 +PAN_MIDLINE_CONSTANT_TRIMMED = 8 +PAN_MIDLINE_CONSTANT_POINTED = 9 +PAN_MIDLINE_CONSTANT_SERIFED = 10 +PAN_MIDLINE_LOW_TRIMMED = 11 +PAN_MIDLINE_LOW_POINTED = 12 +PAN_MIDLINE_LOW_SERIFED = 13 +PAN_XHEIGHT_CONSTANT_SMALL = 2 +PAN_XHEIGHT_CONSTANT_STD = 3 +PAN_XHEIGHT_CONSTANT_LARGE = 4 +PAN_XHEIGHT_DUCKING_SMALL = 5 +PAN_XHEIGHT_DUCKING_STD = 6 +PAN_XHEIGHT_DUCKING_LARGE = 7 +ELF_VENDOR_SIZE = 4 +ELF_VERSION = 0 +ELF_CULTURE_LATIN = 0 +RASTER_FONTTYPE = 1 +DEVICE_FONTTYPE = 2 +TRUETYPE_FONTTYPE = 4 +def PALETTEINDEX(i): return ((16777216 | (i))) + +PC_RESERVED = 1 +PC_EXPLICIT = 2 +PC_NOCOLLAPSE = 4 +def GetRValue(rgb): return rgb & 0xff + +def GetGValue(rgb): return (rgb >> 8) & 0xff + +def GetBValue(rgb): return (rgb >> 16) & 0xff + +TRANSPARENT = 1 +OPAQUE = 2 +BKMODE_LAST = 2 +GM_COMPATIBLE = 1 +GM_ADVANCED = 2 +GM_LAST = 2 +PT_CLOSEFIGURE = 1 +PT_LINETO = 2 +PT_BEZIERTO = 4 +PT_MOVETO = 6 +MM_TEXT = 1 +MM_LOMETRIC = 2 +MM_HIMETRIC = 3 +MM_LOENGLISH = 4 +MM_HIENGLISH = 5 +MM_TWIPS = 6 +MM_ISOTROPIC = 7 +MM_ANISOTROPIC = 8 +MM_MIN = MM_TEXT +MM_MAX = MM_ANISOTROPIC +MM_MAX_FIXEDSCALE = MM_TWIPS +ABSOLUTE = 1 +RELATIVE = 2 +WHITE_BRUSH = 0 +LTGRAY_BRUSH = 1 +GRAY_BRUSH = 2 +DKGRAY_BRUSH = 3 +BLACK_BRUSH = 4 +NULL_BRUSH = 5 +HOLLOW_BRUSH = NULL_BRUSH +WHITE_PEN = 6 +BLACK_PEN = 7 +NULL_PEN = 8 +OEM_FIXED_FONT = 10 +ANSI_FIXED_FONT = 11 +ANSI_VAR_FONT = 12 +SYSTEM_FONT = 13 +DEVICE_DEFAULT_FONT = 14 +DEFAULT_PALETTE = 15 +SYSTEM_FIXED_FONT = 16 +STOCK_LAST = 16 +CLR_INVALID = -1 + +DC_BRUSH = 18 +DC_PEN = 19 + +# Exception/Status codes from winuser.h and winnt.h +STATUS_WAIT_0 = 0 +STATUS_ABANDONED_WAIT_0 = 128 +STATUS_USER_APC = 192 +STATUS_TIMEOUT = 258 +STATUS_PENDING = 259 +STATUS_SEGMENT_NOTIFICATION = 1073741829 +STATUS_GUARD_PAGE_VIOLATION = -2147483647 +STATUS_DATATYPE_MISALIGNMENT = -2147483646 +STATUS_BREAKPOINT = -2147483645 +STATUS_SINGLE_STEP = -2147483644 +STATUS_ACCESS_VIOLATION = -1073741819 +STATUS_IN_PAGE_ERROR = -1073741818 +STATUS_INVALID_HANDLE = -1073741816 +STATUS_NO_MEMORY = -1073741801 +STATUS_ILLEGAL_INSTRUCTION = -1073741795 +STATUS_NONCONTINUABLE_EXCEPTION = -1073741787 +STATUS_INVALID_DISPOSITION = -1073741786 +STATUS_ARRAY_BOUNDS_EXCEEDED = -1073741684 +STATUS_FLOAT_DENORMAL_OPERAND = -1073741683 +STATUS_FLOAT_DIVIDE_BY_ZERO = -1073741682 +STATUS_FLOAT_INEXACT_RESULT = -1073741681 +STATUS_FLOAT_INVALID_OPERATION = -1073741680 +STATUS_FLOAT_OVERFLOW = -1073741679 +STATUS_FLOAT_STACK_CHECK = -1073741678 +STATUS_FLOAT_UNDERFLOW = -1073741677 +STATUS_INTEGER_DIVIDE_BY_ZERO = -1073741676 +STATUS_INTEGER_OVERFLOW = -1073741675 +STATUS_PRIVILEGED_INSTRUCTION = -1073741674 +STATUS_STACK_OVERFLOW = -1073741571 +STATUS_CONTROL_C_EXIT = -1073741510 + + +WAIT_FAILED = -1 +WAIT_OBJECT_0 = STATUS_WAIT_0 + 0 + +WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0 + 0 +WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0 + 0 + +WAIT_TIMEOUT = STATUS_TIMEOUT +WAIT_IO_COMPLETION = STATUS_USER_APC +STILL_ACTIVE = STATUS_PENDING +EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION +EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT +EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT +EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP +EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED +EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND +EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO +EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT +EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION +EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW +EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK +EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW +EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO +EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW +EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION +EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR +EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION +EXCEPTION_NONCONTINUABLE_EXCEPTION = STATUS_NONCONTINUABLE_EXCEPTION +EXCEPTION_STACK_OVERFLOW = STATUS_STACK_OVERFLOW +EXCEPTION_INVALID_DISPOSITION = STATUS_INVALID_DISPOSITION +EXCEPTION_GUARD_PAGE = STATUS_GUARD_PAGE_VIOLATION +EXCEPTION_INVALID_HANDLE = STATUS_INVALID_HANDLE +CONTROL_C_EXIT = STATUS_CONTROL_C_EXIT + +# winuser.h line 8594 +# constants used with SystemParametersInfo +SPI_GETBEEP = 1 +SPI_SETBEEP = 2 +SPI_GETMOUSE = 3 +SPI_SETMOUSE = 4 +SPI_GETBORDER = 5 +SPI_SETBORDER = 6 +SPI_GETKEYBOARDSPEED = 10 +SPI_SETKEYBOARDSPEED = 11 +SPI_LANGDRIVER = 12 +SPI_ICONHORIZONTALSPACING = 13 +SPI_GETSCREENSAVETIMEOUT = 14 +SPI_SETSCREENSAVETIMEOUT = 15 +SPI_GETSCREENSAVEACTIVE = 16 +SPI_SETSCREENSAVEACTIVE = 17 +SPI_GETGRIDGRANULARITY = 18 +SPI_SETGRIDGRANULARITY = 19 +SPI_SETDESKWALLPAPER = 20 +SPI_SETDESKPATTERN = 21 +SPI_GETKEYBOARDDELAY = 22 +SPI_SETKEYBOARDDELAY = 23 +SPI_ICONVERTICALSPACING = 24 +SPI_GETICONTITLEWRAP = 25 +SPI_SETICONTITLEWRAP = 26 +SPI_GETMENUDROPALIGNMENT = 27 +SPI_SETMENUDROPALIGNMENT = 28 +SPI_SETDOUBLECLKWIDTH = 29 +SPI_SETDOUBLECLKHEIGHT = 30 +SPI_GETICONTITLELOGFONT = 31 +SPI_SETDOUBLECLICKTIME = 32 +SPI_SETMOUSEBUTTONSWAP = 33 +SPI_SETICONTITLELOGFONT = 34 +SPI_GETFASTTASKSWITCH = 35 +SPI_SETFASTTASKSWITCH = 36 +SPI_SETDRAGFULLWINDOWS = 37 +SPI_GETDRAGFULLWINDOWS = 38 +SPI_GETNONCLIENTMETRICS = 41 +SPI_SETNONCLIENTMETRICS = 42 +SPI_GETMINIMIZEDMETRICS = 43 +SPI_SETMINIMIZEDMETRICS = 44 +SPI_GETICONMETRICS = 45 +SPI_SETICONMETRICS = 46 +SPI_SETWORKAREA = 47 +SPI_GETWORKAREA = 48 +SPI_SETPENWINDOWS = 49 +SPI_GETFILTERKEYS = 50 +SPI_SETFILTERKEYS = 51 +SPI_GETTOGGLEKEYS = 52 +SPI_SETTOGGLEKEYS = 53 +SPI_GETMOUSEKEYS = 54 +SPI_SETMOUSEKEYS = 55 +SPI_GETSHOWSOUNDS = 56 +SPI_SETSHOWSOUNDS = 57 +SPI_GETSTICKYKEYS = 58 +SPI_SETSTICKYKEYS = 59 +SPI_GETACCESSTIMEOUT = 60 +SPI_SETACCESSTIMEOUT = 61 +SPI_GETSERIALKEYS = 62 +SPI_SETSERIALKEYS = 63 +SPI_GETSOUNDSENTRY = 64 +SPI_SETSOUNDSENTRY = 65 +SPI_GETHIGHCONTRAST = 66 +SPI_SETHIGHCONTRAST = 67 +SPI_GETKEYBOARDPREF = 68 +SPI_SETKEYBOARDPREF = 69 +SPI_GETSCREENREADER = 70 +SPI_SETSCREENREADER = 71 +SPI_GETANIMATION = 72 +SPI_SETANIMATION = 73 +SPI_GETFONTSMOOTHING = 74 +SPI_SETFONTSMOOTHING = 75 +SPI_SETDRAGWIDTH = 76 +SPI_SETDRAGHEIGHT = 77 +SPI_SETHANDHELD = 78 +SPI_GETLOWPOWERTIMEOUT = 79 +SPI_GETPOWEROFFTIMEOUT = 80 +SPI_SETLOWPOWERTIMEOUT = 81 +SPI_SETPOWEROFFTIMEOUT = 82 +SPI_GETLOWPOWERACTIVE = 83 +SPI_GETPOWEROFFACTIVE = 84 +SPI_SETLOWPOWERACTIVE = 85 +SPI_SETPOWEROFFACTIVE = 86 +SPI_SETCURSORS = 87 +SPI_SETICONS = 88 +SPI_GETDEFAULTINPUTLANG = 89 +SPI_SETDEFAULTINPUTLANG = 90 +SPI_SETLANGTOGGLE = 91 +SPI_GETWINDOWSEXTENSION = 92 +SPI_SETMOUSETRAILS = 93 +SPI_GETMOUSETRAILS = 94 +SPI_GETSNAPTODEFBUTTON = 95 +SPI_SETSNAPTODEFBUTTON = 96 +SPI_SETSCREENSAVERRUNNING = 97 +SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING +SPI_GETMOUSEHOVERWIDTH = 98 +SPI_SETMOUSEHOVERWIDTH = 99 +SPI_GETMOUSEHOVERHEIGHT = 100 +SPI_SETMOUSEHOVERHEIGHT = 101 +SPI_GETMOUSEHOVERTIME = 102 +SPI_SETMOUSEHOVERTIME = 103 +SPI_GETWHEELSCROLLLINES = 104 +SPI_SETWHEELSCROLLLINES = 105 +SPI_GETMENUSHOWDELAY = 106 +SPI_SETMENUSHOWDELAY = 107 + +SPI_GETSHOWIMEUI = 110 +SPI_SETSHOWIMEUI = 111 +SPI_GETMOUSESPEED = 112 +SPI_SETMOUSESPEED = 113 +SPI_GETSCREENSAVERRUNNING = 114 +SPI_GETDESKWALLPAPER = 115 + +SPI_GETACTIVEWINDOWTRACKING = 4096 +SPI_SETACTIVEWINDOWTRACKING = 4097 +SPI_GETMENUANIMATION = 4098 +SPI_SETMENUANIMATION = 4099 +SPI_GETCOMBOBOXANIMATION = 4100 +SPI_SETCOMBOBOXANIMATION = 4101 +SPI_GETLISTBOXSMOOTHSCROLLING = 4102 +SPI_SETLISTBOXSMOOTHSCROLLING = 4103 +SPI_GETGRADIENTCAPTIONS = 4104 +SPI_SETGRADIENTCAPTIONS = 4105 +SPI_GETKEYBOARDCUES = 4106 +SPI_SETKEYBOARDCUES = 4107 +SPI_GETMENUUNDERLINES = 4106 +SPI_SETMENUUNDERLINES = 4107 +SPI_GETACTIVEWNDTRKZORDER = 4108 +SPI_SETACTIVEWNDTRKZORDER = 4109 +SPI_GETHOTTRACKING = 4110 +SPI_SETHOTTRACKING = 4111 + +SPI_GETMENUFADE = 4114 +SPI_SETMENUFADE = 4115 +SPI_GETSELECTIONFADE = 4116 +SPI_SETSELECTIONFADE = 4117 +SPI_GETTOOLTIPANIMATION = 4118 +SPI_SETTOOLTIPANIMATION = 4119 +SPI_GETTOOLTIPFADE = 4120 +SPI_SETTOOLTIPFADE = 4121 +SPI_GETCURSORSHADOW = 4122 +SPI_SETCURSORSHADOW = 4123 +SPI_GETMOUSESONAR = 4124 +SPI_SETMOUSESONAR = 4125 +SPI_GETMOUSECLICKLOCK = 4126 +SPI_SETMOUSECLICKLOCK = 4127 +SPI_GETMOUSEVANISH = 4128 +SPI_SETMOUSEVANISH = 4129 +SPI_GETFLATMENU = 4130 +SPI_SETFLATMENU = 4131 +SPI_GETDROPSHADOW = 4132 +SPI_SETDROPSHADOW = 4133 +SPI_GETBLOCKSENDINPUTRESETS = 4134 +SPI_SETBLOCKSENDINPUTRESETS = 4135 +SPI_GETUIEFFECTS = 4158 +SPI_SETUIEFFECTS = 4159 + +SPI_GETFOREGROUNDLOCKTIMEOUT = 8192 +SPI_SETFOREGROUNDLOCKTIMEOUT = 8193 +SPI_GETACTIVEWNDTRKTIMEOUT = 8194 +SPI_SETACTIVEWNDTRKTIMEOUT = 8195 +SPI_GETFOREGROUNDFLASHCOUNT = 8196 +SPI_SETFOREGROUNDFLASHCOUNT = 8197 +SPI_GETCARETWIDTH = 8198 +SPI_SETCARETWIDTH = 8199 +SPI_GETMOUSECLICKLOCKTIME = 8200 +SPI_SETMOUSECLICKLOCKTIME = 8201 +SPI_GETFONTSMOOTHINGTYPE = 8202 +SPI_SETFONTSMOOTHINGTYPE = 8203 +SPI_GETFONTSMOOTHINGCONTRAST = 8204 +SPI_SETFONTSMOOTHINGCONTRAST = 8205 +SPI_GETFOCUSBORDERWIDTH = 8206 +SPI_SETFOCUSBORDERWIDTH = 8207 +SPI_GETFOCUSBORDERHEIGHT = 8208 +SPI_SETFOCUSBORDERHEIGHT = 8209 +SPI_GETFONTSMOOTHINGORIENTATION = 8210 +SPI_SETFONTSMOOTHINGORIENTATION = 8211 + +# fWinIni flags for SystemParametersInfo +SPIF_UPDATEINIFILE = 1 +SPIF_SENDWININICHANGE = 2 +SPIF_SENDCHANGE = SPIF_SENDWININICHANGE + +# used with SystemParametersInfo and SPI_GETFONTSMOOTHINGTYPE/SPI_SETFONTSMOOTHINGTYPE +FE_FONTSMOOTHINGSTANDARD = 1 +FE_FONTSMOOTHINGCLEARTYPE = 2 +FE_FONTSMOOTHINGDOCKING = 32768 + +METRICS_USEDEFAULT = -1 +ARW_BOTTOMLEFT = 0 +ARW_BOTTOMRIGHT = 1 +ARW_TOPLEFT = 2 +ARW_TOPRIGHT = 3 +ARW_STARTMASK = 3 +ARW_STARTRIGHT = 1 +ARW_STARTTOP = 2 +ARW_LEFT = 0 +ARW_RIGHT = 0 +ARW_UP = 4 +ARW_DOWN = 4 +ARW_HIDE = 8 +#ARW_VALID = 0x000F +SERKF_SERIALKEYSON = 1 +SERKF_AVAILABLE = 2 +SERKF_INDICATOR = 4 +HCF_HIGHCONTRASTON = 1 +HCF_AVAILABLE = 2 +HCF_HOTKEYACTIVE = 4 +HCF_CONFIRMHOTKEY = 8 +HCF_HOTKEYSOUND = 16 +HCF_INDICATOR = 32 +HCF_HOTKEYAVAILABLE = 64 +CDS_UPDATEREGISTRY = 1 +CDS_TEST = 2 +CDS_FULLSCREEN = 4 +CDS_GLOBAL = 8 +CDS_SET_PRIMARY = 16 +CDS_RESET = 1073741824 +CDS_SETRECT = 536870912 +CDS_NORESET = 268435456 + +# return values from ChangeDisplaySettings and ChangeDisplaySettingsEx +DISP_CHANGE_SUCCESSFUL = 0 +DISP_CHANGE_RESTART = 1 +DISP_CHANGE_FAILED = -1 +DISP_CHANGE_BADMODE = -2 +DISP_CHANGE_NOTUPDATED = -3 +DISP_CHANGE_BADFLAGS = -4 +DISP_CHANGE_BADPARAM = -5 +DISP_CHANGE_BADDUALVIEW = -6 + +ENUM_CURRENT_SETTINGS = -1 +ENUM_REGISTRY_SETTINGS = -2 +FKF_FILTERKEYSON = 1 +FKF_AVAILABLE = 2 +FKF_HOTKEYACTIVE = 4 +FKF_CONFIRMHOTKEY = 8 +FKF_HOTKEYSOUND = 16 +FKF_INDICATOR = 32 +FKF_CLICKON = 64 +SKF_STICKYKEYSON = 1 +SKF_AVAILABLE = 2 +SKF_HOTKEYACTIVE = 4 +SKF_CONFIRMHOTKEY = 8 +SKF_HOTKEYSOUND = 16 +SKF_INDICATOR = 32 +SKF_AUDIBLEFEEDBACK = 64 +SKF_TRISTATE = 128 +SKF_TWOKEYSOFF = 256 +SKF_LALTLATCHED = 268435456 +SKF_LCTLLATCHED = 67108864 +SKF_LSHIFTLATCHED = 16777216 +SKF_RALTLATCHED = 536870912 +SKF_RCTLLATCHED = 134217728 +SKF_RSHIFTLATCHED = 33554432 +SKF_LWINLATCHED = 1073741824 +SKF_RWINLATCHED = -2147483648 +SKF_LALTLOCKED = 1048576 +SKF_LCTLLOCKED = 262144 +SKF_LSHIFTLOCKED = 65536 +SKF_RALTLOCKED = 2097152 +SKF_RCTLLOCKED = 524288 +SKF_RSHIFTLOCKED = 131072 +SKF_LWINLOCKED = 4194304 +SKF_RWINLOCKED = 8388608 +MKF_MOUSEKEYSON = 1 +MKF_AVAILABLE = 2 +MKF_HOTKEYACTIVE = 4 +MKF_CONFIRMHOTKEY = 8 +MKF_HOTKEYSOUND = 16 +MKF_INDICATOR = 32 +MKF_MODIFIERS = 64 +MKF_REPLACENUMBERS = 128 +MKF_LEFTBUTTONSEL = 268435456 +MKF_RIGHTBUTTONSEL = 536870912 +MKF_LEFTBUTTONDOWN = 16777216 +MKF_RIGHTBUTTONDOWN = 33554432 +MKF_MOUSEMODE = -2147483648 +ATF_TIMEOUTON = 1 +ATF_ONOFFFEEDBACK = 2 +SSGF_NONE = 0 +SSGF_DISPLAY = 3 +SSTF_NONE = 0 +SSTF_CHARS = 1 +SSTF_BORDER = 2 +SSTF_DISPLAY = 3 +SSWF_NONE = 0 +SSWF_TITLE = 1 +SSWF_WINDOW = 2 +SSWF_DISPLAY = 3 +SSWF_CUSTOM = 4 +SSF_SOUNDSENTRYON = 1 +SSF_AVAILABLE = 2 +SSF_INDICATOR = 4 +TKF_TOGGLEKEYSON = 1 +TKF_AVAILABLE = 2 +TKF_HOTKEYACTIVE = 4 +TKF_CONFIRMHOTKEY = 8 +TKF_HOTKEYSOUND = 16 +TKF_INDICATOR = 32 +SLE_ERROR = 1 +SLE_MINORERROR = 2 +SLE_WARNING = 3 +MONITOR_DEFAULTTONULL = 0 +MONITOR_DEFAULTTOPRIMARY = 1 +MONITOR_DEFAULTTONEAREST = 2 +MONITORINFOF_PRIMARY = 1 +CCHDEVICENAME = 32 +CHILDID_SELF = 0 +INDEXID_OBJECT = 0 +INDEXID_CONTAINER = 0 +OBJID_WINDOW = 0 +OBJID_SYSMENU = -1 +OBJID_TITLEBAR = -2 +OBJID_MENU = -3 +OBJID_CLIENT = -4 +OBJID_VSCROLL = -5 +OBJID_HSCROLL = -6 +OBJID_SIZEGRIP = -7 +OBJID_CARET = -8 +OBJID_CURSOR = -9 +OBJID_ALERT = -10 +OBJID_SOUND = -11 +EVENT_MIN = 1 +EVENT_MAX = 2147483647 +EVENT_SYSTEM_SOUND = 1 +EVENT_SYSTEM_ALERT = 2 +EVENT_SYSTEM_FOREGROUND = 3 +EVENT_SYSTEM_MENUSTART = 4 +EVENT_SYSTEM_MENUEND = 5 +EVENT_SYSTEM_MENUPOPUPSTART = 6 +EVENT_SYSTEM_MENUPOPUPEND = 7 +EVENT_SYSTEM_CAPTURESTART = 8 +EVENT_SYSTEM_CAPTUREEND = 9 +EVENT_SYSTEM_MOVESIZESTART = 10 +EVENT_SYSTEM_MOVESIZEEND = 11 +EVENT_SYSTEM_CONTEXTHELPSTART = 12 +EVENT_SYSTEM_CONTEXTHELPEND = 13 +EVENT_SYSTEM_DRAGDROPSTART = 14 +EVENT_SYSTEM_DRAGDROPEND = 15 +EVENT_SYSTEM_DIALOGSTART = 16 +EVENT_SYSTEM_DIALOGEND = 17 +EVENT_SYSTEM_SCROLLINGSTART = 18 +EVENT_SYSTEM_SCROLLINGEND = 19 +EVENT_SYSTEM_SWITCHSTART = 20 +EVENT_SYSTEM_SWITCHEND = 21 +EVENT_SYSTEM_MINIMIZESTART = 22 +EVENT_SYSTEM_MINIMIZEEND = 23 +EVENT_OBJECT_CREATE = 32768 +EVENT_OBJECT_DESTROY = 32769 +EVENT_OBJECT_SHOW = 32770 +EVENT_OBJECT_HIDE = 32771 +EVENT_OBJECT_REORDER = 32772 +EVENT_OBJECT_FOCUS = 32773 +EVENT_OBJECT_SELECTION = 32774 +EVENT_OBJECT_SELECTIONADD = 32775 +EVENT_OBJECT_SELECTIONREMOVE = 32776 +EVENT_OBJECT_SELECTIONWITHIN = 32777 +EVENT_OBJECT_STATECHANGE = 32778 +EVENT_OBJECT_LOCATIONCHANGE = 32779 +EVENT_OBJECT_NAMECHANGE = 32780 +EVENT_OBJECT_DESCRIPTIONCHANGE = 32781 +EVENT_OBJECT_VALUECHANGE = 32782 +EVENT_OBJECT_PARENTCHANGE = 32783 +EVENT_OBJECT_HELPCHANGE = 32784 +EVENT_OBJECT_DEFACTIONCHANGE = 32785 +EVENT_OBJECT_ACCELERATORCHANGE = 32786 +SOUND_SYSTEM_STARTUP = 1 +SOUND_SYSTEM_SHUTDOWN = 2 +SOUND_SYSTEM_BEEP = 3 +SOUND_SYSTEM_ERROR = 4 +SOUND_SYSTEM_QUESTION = 5 +SOUND_SYSTEM_WARNING = 6 +SOUND_SYSTEM_INFORMATION = 7 +SOUND_SYSTEM_MAXIMIZE = 8 +SOUND_SYSTEM_MINIMIZE = 9 +SOUND_SYSTEM_RESTOREUP = 10 +SOUND_SYSTEM_RESTOREDOWN = 11 +SOUND_SYSTEM_APPSTART = 12 +SOUND_SYSTEM_FAULT = 13 +SOUND_SYSTEM_APPEND = 14 +SOUND_SYSTEM_MENUCOMMAND = 15 +SOUND_SYSTEM_MENUPOPUP = 16 +CSOUND_SYSTEM = 16 +ALERT_SYSTEM_INFORMATIONAL = 1 +ALERT_SYSTEM_WARNING = 2 +ALERT_SYSTEM_ERROR = 3 +ALERT_SYSTEM_QUERY = 4 +ALERT_SYSTEM_CRITICAL = 5 +CALERT_SYSTEM = 6 +WINEVENT_OUTOFCONTEXT = 0 +WINEVENT_SKIPOWNTHREAD = 1 +WINEVENT_SKIPOWNPROCESS = 2 +WINEVENT_INCONTEXT = 4 +GUI_CARETBLINKING = 1 +GUI_INMOVESIZE = 2 +GUI_INMENUMODE = 4 +GUI_SYSTEMMENUMODE = 8 +GUI_POPUPMENUMODE = 16 +STATE_SYSTEM_UNAVAILABLE = 1 +STATE_SYSTEM_SELECTED = 2 +STATE_SYSTEM_FOCUSED = 4 +STATE_SYSTEM_PRESSED = 8 +STATE_SYSTEM_CHECKED = 16 +STATE_SYSTEM_MIXED = 32 +STATE_SYSTEM_READONLY = 64 +STATE_SYSTEM_HOTTRACKED = 128 +STATE_SYSTEM_DEFAULT = 256 +STATE_SYSTEM_EXPANDED = 512 +STATE_SYSTEM_COLLAPSED = 1024 +STATE_SYSTEM_BUSY = 2048 +STATE_SYSTEM_FLOATING = 4096 +STATE_SYSTEM_MARQUEED = 8192 +STATE_SYSTEM_ANIMATED = 16384 +STATE_SYSTEM_INVISIBLE = 32768 +STATE_SYSTEM_OFFSCREEN = 65536 +STATE_SYSTEM_SIZEABLE = 131072 +STATE_SYSTEM_MOVEABLE = 262144 +STATE_SYSTEM_SELFVOICING = 524288 +STATE_SYSTEM_FOCUSABLE = 1048576 +STATE_SYSTEM_SELECTABLE = 2097152 +STATE_SYSTEM_LINKED = 4194304 +STATE_SYSTEM_TRAVERSED = 8388608 +STATE_SYSTEM_MULTISELECTABLE = 16777216 +STATE_SYSTEM_EXTSELECTABLE = 33554432 +STATE_SYSTEM_ALERT_LOW = 67108864 +STATE_SYSTEM_ALERT_MEDIUM = 134217728 +STATE_SYSTEM_ALERT_HIGH = 268435456 +STATE_SYSTEM_VALID = 536870911 +CCHILDREN_TITLEBAR = 5 +CCHILDREN_SCROLLBAR = 5 +CURSOR_SHOWING = 1 +WS_ACTIVECAPTION = 1 +GA_MIC = 1 +GA_PARENT = 1 +GA_ROOT = 2 +GA_ROOTOWNER = 3 +GA_MAC = 4 + +# winuser.h line 1979 +BF_LEFT = 1 +BF_TOP = 2 +BF_RIGHT = 4 +BF_BOTTOM = 8 +BF_TOPLEFT = (BF_TOP | BF_LEFT) +BF_TOPRIGHT = (BF_TOP | BF_RIGHT) +BF_BOTTOMLEFT = (BF_BOTTOM | BF_LEFT) +BF_BOTTOMRIGHT = (BF_BOTTOM | BF_RIGHT) +BF_RECT = (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM) +BF_DIAGONAL = 16 +BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL | BF_TOP | BF_RIGHT) +BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL | BF_TOP | BF_LEFT) +BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL | BF_BOTTOM | BF_LEFT) +BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT) +BF_MIDDLE = 2048 +BF_SOFT = 4096 +BF_ADJUST = 8192 +BF_FLAT = 16384 +BF_MONO = 32768 +DFC_CAPTION = 1 +DFC_MENU = 2 +DFC_SCROLL = 3 +DFC_BUTTON = 4 +DFC_POPUPMENU = 5 +DFCS_CAPTIONCLOSE = 0 +DFCS_CAPTIONMIN = 1 +DFCS_CAPTIONMAX = 2 +DFCS_CAPTIONRESTORE = 3 +DFCS_CAPTIONHELP = 4 +DFCS_MENUARROW = 0 +DFCS_MENUCHECK = 1 +DFCS_MENUBULLET = 2 +DFCS_MENUARROWRIGHT = 4 +DFCS_SCROLLUP = 0 +DFCS_SCROLLDOWN = 1 +DFCS_SCROLLLEFT = 2 +DFCS_SCROLLRIGHT = 3 +DFCS_SCROLLCOMBOBOX = 5 +DFCS_SCROLLSIZEGRIP = 8 +DFCS_SCROLLSIZEGRIPRIGHT = 16 +DFCS_BUTTONCHECK = 0 +DFCS_BUTTONRADIOIMAGE = 1 +DFCS_BUTTONRADIOMASK = 2 +DFCS_BUTTONRADIO = 4 +DFCS_BUTTON3STATE = 8 +DFCS_BUTTONPUSH = 16 +DFCS_INACTIVE = 256 +DFCS_PUSHED = 512 +DFCS_CHECKED = 1024 +DFCS_TRANSPARENT = 2048 +DFCS_HOT = 4096 +DFCS_ADJUSTRECT = 8192 +DFCS_FLAT = 16384 +DFCS_MONO = 32768 +DC_ACTIVE = 1 +DC_SMALLCAP = 2 +DC_ICON = 4 +DC_TEXT = 8 +DC_INBUTTON = 16 +DC_GRADIENT = 32 +IDANI_OPEN = 1 +IDANI_CLOSE = 2 +IDANI_CAPTION = 3 +CF_TEXT = 1 +CF_BITMAP = 2 +CF_METAFILEPICT = 3 +CF_SYLK = 4 +CF_DIF = 5 +CF_TIFF = 6 +CF_OEMTEXT = 7 +CF_DIB = 8 +CF_PALETTE = 9 +CF_PENDATA = 10 +CF_RIFF = 11 +CF_WAVE = 12 +CF_UNICODETEXT = 13 +CF_ENHMETAFILE = 14 +CF_HDROP = 15 +CF_LOCALE = 16 +CF_DIBV5 = 17 +CF_MAX = 18 +CF_OWNERDISPLAY = 128 +CF_DSPTEXT = 129 +CF_DSPBITMAP = 130 +CF_DSPMETAFILEPICT = 131 +CF_DSPENHMETAFILE = 142 +CF_PRIVATEFIRST = 512 +CF_PRIVATELAST = 767 +CF_GDIOBJFIRST = 768 +CF_GDIOBJLAST = 1023 +FVIRTKEY =1 +FNOINVERT = 2 +FSHIFT = 4 +FCONTROL = 8 +FALT = 16 +WPF_SETMINPOSITION = 1 +WPF_RESTORETOMAXIMIZED = 2 +ODT_MENU = 1 +ODT_LISTBOX = 2 +ODT_COMBOBOX = 3 +ODT_BUTTON = 4 +ODT_STATIC = 5 +ODA_DRAWENTIRE = 1 +ODA_SELECT = 2 +ODA_FOCUS = 4 +ODS_SELECTED = 1 +ODS_GRAYED = 2 +ODS_DISABLED = 4 +ODS_CHECKED = 8 +ODS_FOCUS = 16 +ODS_DEFAULT = 32 +ODS_COMBOBOXEDIT = 4096 +ODS_HOTLIGHT = 64 +ODS_INACTIVE = 128 +PM_NOREMOVE = 0 +PM_REMOVE = 1 +PM_NOYIELD = 2 +MOD_ALT = 1 +MOD_CONTROL = 2 +MOD_SHIFT = 4 +MOD_WIN = 8 +IDHOT_SNAPWINDOW = (-1) +IDHOT_SNAPDESKTOP = (-2) +#EW_RESTARTWINDOWS = 0x0042 +#EW_REBOOTSYSTEM = 0x0043 +#EW_EXITANDEXECAPP = 0x0044 +ENDSESSION_LOGOFF = -2147483648 +EWX_LOGOFF = 0 +EWX_SHUTDOWN = 1 +EWX_REBOOT = 2 +EWX_FORCE = 4 +EWX_POWEROFF = 8 +EWX_FORCEIFHUNG = 16 +BSM_ALLCOMPONENTS = 0 +BSM_VXDS = 1 +BSM_NETDRIVER = 2 +BSM_INSTALLABLEDRIVERS = 4 +BSM_APPLICATIONS = 8 +BSM_ALLDESKTOPS = 16 +BSF_QUERY = 1 +BSF_IGNORECURRENTTASK = 2 +BSF_FLUSHDISK = 4 +BSF_NOHANG = 8 +BSF_POSTMESSAGE = 16 +BSF_FORCEIFHUNG = 32 +BSF_NOTIMEOUTIFNOTHUNG = 64 +BROADCAST_QUERY_DENY = 1112363332 # Return this value to deny a query. + +DBWF_LPARAMPOINTER = 32768 + +# winuser.h line 3232 +SWP_NOSIZE = 1 +SWP_NOMOVE = 2 +SWP_NOZORDER = 4 +SWP_NOREDRAW = 8 +SWP_NOACTIVATE = 16 +SWP_FRAMECHANGED = 32 +SWP_SHOWWINDOW = 64 +SWP_HIDEWINDOW = 128 +SWP_NOCOPYBITS = 256 +SWP_NOOWNERZORDER = 512 +SWP_NOSENDCHANGING = 1024 +SWP_DRAWFRAME = SWP_FRAMECHANGED +SWP_NOREPOSITION = SWP_NOOWNERZORDER +SWP_DEFERERASE = 8192 +SWP_ASYNCWINDOWPOS = 16384 + +DLGWINDOWEXTRA = 30 +# winuser.h line 4249 +KEYEVENTF_EXTENDEDKEY = 1 +KEYEVENTF_KEYUP = 2 +MOUSEEVENTF_MOVE = 1 +MOUSEEVENTF_LEFTDOWN = 2 +MOUSEEVENTF_LEFTUP = 4 +MOUSEEVENTF_RIGHTDOWN = 8 +MOUSEEVENTF_RIGHTUP = 16 +MOUSEEVENTF_MIDDLEDOWN = 32 +MOUSEEVENTF_MIDDLEUP = 64 +MOUSEEVENTF_ABSOLUTE = 32768 +INPUT_MOUSE = 0 +INPUT_KEYBOARD = 1 +INPUT_HARDWARE = 2 +MWMO_WAITALL = 1 +MWMO_ALERTABLE = 2 +MWMO_INPUTAVAILABLE = 4 +QS_KEY = 1 +QS_MOUSEMOVE = 2 +QS_MOUSEBUTTON = 4 +QS_POSTMESSAGE = 8 +QS_TIMER = 16 +QS_PAINT = 32 +QS_SENDMESSAGE = 64 +QS_HOTKEY = 128 +QS_MOUSE = (QS_MOUSEMOVE | \ + QS_MOUSEBUTTON) +QS_INPUT = (QS_MOUSE | \ + QS_KEY) +QS_ALLEVENTS = (QS_INPUT | \ + QS_POSTMESSAGE | \ + QS_TIMER | \ + QS_PAINT | \ + QS_HOTKEY) +QS_ALLINPUT = (QS_INPUT | \ + QS_POSTMESSAGE | \ + QS_TIMER | \ + QS_PAINT | \ + QS_HOTKEY | \ + QS_SENDMESSAGE) + + +IMN_CLOSESTATUSWINDOW = 1 +IMN_OPENSTATUSWINDOW = 2 +IMN_CHANGECANDIDATE = 3 +IMN_CLOSECANDIDATE = 4 +IMN_OPENCANDIDATE = 5 +IMN_SETCONVERSIONMODE = 6 +IMN_SETSENTENCEMODE = 7 +IMN_SETOPENSTATUS = 8 +IMN_SETCANDIDATEPOS = 9 +IMN_SETCOMPOSITIONFONT = 10 +IMN_SETCOMPOSITIONWINDOW = 11 +IMN_SETSTATUSWINDOWPOS = 12 +IMN_GUIDELINE = 13 +IMN_PRIVATE = 14 + +# winuser.h line 8518 +HELP_CONTEXT = 1 +HELP_QUIT = 2 +HELP_INDEX = 3 +HELP_CONTENTS = 3 +HELP_HELPONHELP = 4 +HELP_SETINDEX = 5 +HELP_SETCONTENTS = 5 +HELP_CONTEXTPOPUP = 8 +HELP_FORCEFILE = 9 +HELP_KEY = 257 +HELP_COMMAND = 258 +HELP_PARTIALKEY = 261 +HELP_MULTIKEY = 513 +HELP_SETWINPOS = 515 +HELP_CONTEXTMENU = 10 +HELP_FINDER = 11 +HELP_WM_HELP = 12 +HELP_SETPOPUP_POS = 13 +HELP_TCARD = 32768 +HELP_TCARD_DATA = 16 +HELP_TCARD_OTHER_CALLER = 17 +IDH_NO_HELP = 28440 +IDH_MISSING_CONTEXT = 28441 # Control doesn't have matching help context +IDH_GENERIC_HELP_BUTTON = 28442 # Property sheet help button +IDH_OK = 28443 +IDH_CANCEL = 28444 +IDH_HELP = 28445 +GR_GDIOBJECTS = 0 # Count of GDI objects +GR_USEROBJECTS = 1 # Count of USER objects +# Generated by h2py from \msvcnt\include\wingdi.h +# manually added (missed by generation some how! +SRCCOPY = 13369376 # dest = source +SRCPAINT = 15597702 # dest = source OR dest +SRCAND = 8913094 # dest = source AND dest +SRCINVERT = 6684742 # dest = source XOR dest +SRCERASE = 4457256 # dest = source AND (NOT dest ) +NOTSRCCOPY = 3342344 # dest = (NOT source) +NOTSRCERASE = 1114278 # dest = (NOT src) AND (NOT dest) +MERGECOPY = 12583114 # dest = (source AND pattern) +MERGEPAINT = 12255782 # dest = (NOT source) OR dest +PATCOPY = 15728673 # dest = pattern +PATPAINT = 16452105 # dest = DPSnoo +PATINVERT = 5898313 # dest = pattern XOR dest +DSTINVERT = 5570569 # dest = (NOT dest) +BLACKNESS = 66 # dest = BLACK +WHITENESS = 16711778 # dest = WHITE + +# hacked and split manually by mhammond. +R2_BLACK = 1 +R2_NOTMERGEPEN = 2 +R2_MASKNOTPEN = 3 +R2_NOTCOPYPEN = 4 +R2_MASKPENNOT = 5 +R2_NOT = 6 +R2_XORPEN = 7 +R2_NOTMASKPEN = 8 +R2_MASKPEN = 9 +R2_NOTXORPEN = 10 +R2_NOP = 11 +R2_MERGENOTPEN = 12 +R2_COPYPEN = 13 +R2_MERGEPENNOT = 14 +R2_MERGEPEN = 15 +R2_WHITE = 16 +R2_LAST = 16 +GDI_ERROR = (-1) +ERROR = 0 +NULLREGION = 1 +SIMPLEREGION = 2 +COMPLEXREGION = 3 +RGN_ERROR = ERROR +RGN_AND = 1 +RGN_OR = 2 +RGN_XOR = 3 +RGN_DIFF = 4 +RGN_COPY = 5 +RGN_MIN = RGN_AND +RGN_MAX = RGN_COPY + +## Stretching modes used with Get/SetStretchBltMode +BLACKONWHITE = 1 +WHITEONBLACK = 2 +COLORONCOLOR = 3 +HALFTONE = 4 +MAXSTRETCHBLTMODE = 4 +STRETCH_ANDSCANS = BLACKONWHITE +STRETCH_ORSCANS = WHITEONBLACK +STRETCH_DELETESCANS = COLORONCOLOR +STRETCH_HALFTONE = HALFTONE + +ALTERNATE = 1 +WINDING = 2 +POLYFILL_LAST = 2 + +## flags used with SetLayout +LAYOUT_RTL = 1 +LAYOUT_BTT = 2 +LAYOUT_VBH = 4 +LAYOUT_ORIENTATIONMASK = LAYOUT_RTL|LAYOUT_BTT|LAYOUT_VBH +LAYOUT_BITMAPORIENTATIONPRESERVED = 8 + +TA_NOUPDATECP = 0 +TA_UPDATECP = 1 +TA_LEFT = 0 +TA_RIGHT = 2 +TA_CENTER = 6 +TA_TOP = 0 +TA_BOTTOM = 8 +TA_BASELINE = 24 +TA_MASK = (TA_BASELINE+TA_CENTER+TA_UPDATECP) +VTA_BASELINE = TA_BASELINE +VTA_LEFT = TA_BOTTOM +VTA_RIGHT = TA_TOP +VTA_CENTER = TA_CENTER +VTA_BOTTOM = TA_RIGHT +VTA_TOP = TA_LEFT +ETO_GRAYED = 1 +ETO_OPAQUE = 2 +ETO_CLIPPED = 4 +ASPECT_FILTERING = 1 +DCB_RESET = 1 +DCB_ACCUMULATE = 2 +DCB_DIRTY = DCB_ACCUMULATE +DCB_SET = (DCB_RESET | DCB_ACCUMULATE) +DCB_ENABLE = 4 +DCB_DISABLE = 8 +META_SETBKCOLOR = 513 +META_SETBKMODE = 258 +META_SETMAPMODE = 259 +META_SETROP2 = 260 +META_SETRELABS = 261 +META_SETPOLYFILLMODE = 262 +META_SETSTRETCHBLTMODE = 263 +META_SETTEXTCHAREXTRA = 264 +META_SETTEXTCOLOR = 521 +META_SETTEXTJUSTIFICATION = 522 +META_SETWINDOWORG = 523 +META_SETWINDOWEXT = 524 +META_SETVIEWPORTORG = 525 +META_SETVIEWPORTEXT = 526 +META_OFFSETWINDOWORG = 527 +META_SCALEWINDOWEXT = 1040 +META_OFFSETVIEWPORTORG = 529 +META_SCALEVIEWPORTEXT = 1042 +META_LINETO = 531 +META_MOVETO = 532 +META_EXCLUDECLIPRECT = 1045 +META_INTERSECTCLIPRECT = 1046 +META_ARC = 2071 +META_ELLIPSE = 1048 +META_FLOODFILL = 1049 +META_PIE = 2074 +META_RECTANGLE = 1051 +META_ROUNDRECT = 1564 +META_PATBLT = 1565 +META_SAVEDC = 30 +META_SETPIXEL = 1055 +META_OFFSETCLIPRGN = 544 +META_TEXTOUT = 1313 +META_BITBLT = 2338 +META_STRETCHBLT = 2851 +META_POLYGON = 804 +META_POLYLINE = 805 +META_ESCAPE = 1574 +META_RESTOREDC = 295 +META_FILLREGION = 552 +META_FRAMEREGION = 1065 +META_INVERTREGION = 298 +META_PAINTREGION = 299 +META_SELECTCLIPREGION = 300 +META_SELECTOBJECT = 301 +META_SETTEXTALIGN = 302 +META_CHORD = 2096 +META_SETMAPPERFLAGS = 561 +META_EXTTEXTOUT = 2610 +META_SETDIBTODEV = 3379 +META_SELECTPALETTE = 564 +META_REALIZEPALETTE = 53 +META_ANIMATEPALETTE = 1078 +META_SETPALENTRIES = 55 +META_POLYPOLYGON = 1336 +META_RESIZEPALETTE = 313 +META_DIBBITBLT = 2368 +META_DIBSTRETCHBLT = 2881 +META_DIBCREATEPATTERNBRUSH = 322 +META_STRETCHDIB = 3907 +META_EXTFLOODFILL = 1352 +META_DELETEOBJECT = 496 +META_CREATEPALETTE = 247 +META_CREATEPATTERNBRUSH = 505 +META_CREATEPENINDIRECT = 762 +META_CREATEFONTINDIRECT = 763 +META_CREATEBRUSHINDIRECT = 764 +META_CREATEREGION = 1791 +FILE_BEGIN = 0 +FILE_CURRENT = 1 +FILE_END = 2 +FILE_FLAG_WRITE_THROUGH = -2147483648 +FILE_FLAG_OVERLAPPED = 1073741824 +FILE_FLAG_NO_BUFFERING = 536870912 +FILE_FLAG_RANDOM_ACCESS = 268435456 +FILE_FLAG_SEQUENTIAL_SCAN = 134217728 +FILE_FLAG_DELETE_ON_CLOSE = 67108864 +FILE_FLAG_BACKUP_SEMANTICS = 33554432 +FILE_FLAG_POSIX_SEMANTICS = 16777216 +CREATE_NEW = 1 +CREATE_ALWAYS = 2 +OPEN_EXISTING = 3 +OPEN_ALWAYS = 4 +TRUNCATE_EXISTING = 5 +PIPE_ACCESS_INBOUND = 1 +PIPE_ACCESS_OUTBOUND = 2 +PIPE_ACCESS_DUPLEX = 3 +PIPE_CLIENT_END = 0 +PIPE_SERVER_END = 1 +PIPE_WAIT = 0 +PIPE_NOWAIT = 1 +PIPE_READMODE_BYTE = 0 +PIPE_READMODE_MESSAGE = 2 +PIPE_TYPE_BYTE = 0 +PIPE_TYPE_MESSAGE = 4 +PIPE_UNLIMITED_INSTANCES = 255 +SECURITY_CONTEXT_TRACKING = 262144 +SECURITY_EFFECTIVE_ONLY = 524288 +SECURITY_SQOS_PRESENT = 1048576 +SECURITY_VALID_SQOS_FLAGS = 2031616 +DTR_CONTROL_DISABLE = 0 +DTR_CONTROL_ENABLE = 1 +DTR_CONTROL_HANDSHAKE = 2 +RTS_CONTROL_DISABLE = 0 +RTS_CONTROL_ENABLE = 1 +RTS_CONTROL_HANDSHAKE = 2 +RTS_CONTROL_TOGGLE = 3 +GMEM_FIXED = 0 +GMEM_MOVEABLE = 2 +GMEM_NOCOMPACT = 16 +GMEM_NODISCARD = 32 +GMEM_ZEROINIT = 64 +GMEM_MODIFY = 128 +GMEM_DISCARDABLE = 256 +GMEM_NOT_BANKED = 4096 +GMEM_SHARE = 8192 +GMEM_DDESHARE = 8192 +GMEM_NOTIFY = 16384 +GMEM_LOWER = GMEM_NOT_BANKED +GMEM_VALID_FLAGS = 32626 +GMEM_INVALID_HANDLE = 32768 +GHND = (GMEM_MOVEABLE | GMEM_ZEROINIT) +GPTR = (GMEM_FIXED | GMEM_ZEROINIT) +GMEM_DISCARDED = 16384 +GMEM_LOCKCOUNT = 255 +LMEM_FIXED = 0 +LMEM_MOVEABLE = 2 +LMEM_NOCOMPACT = 16 +LMEM_NODISCARD = 32 +LMEM_ZEROINIT = 64 +LMEM_MODIFY = 128 +LMEM_DISCARDABLE = 3840 +LMEM_VALID_FLAGS = 3954 +LMEM_INVALID_HANDLE = 32768 +LHND = (LMEM_MOVEABLE | LMEM_ZEROINIT) +LPTR = (LMEM_FIXED | LMEM_ZEROINIT) +NONZEROLHND = (LMEM_MOVEABLE) +NONZEROLPTR = (LMEM_FIXED) +LMEM_DISCARDED = 16384 +LMEM_LOCKCOUNT = 255 +DEBUG_PROCESS = 1 +DEBUG_ONLY_THIS_PROCESS = 2 +CREATE_SUSPENDED = 4 +DETACHED_PROCESS = 8 +CREATE_NEW_CONSOLE = 16 +NORMAL_PRIORITY_CLASS = 32 +IDLE_PRIORITY_CLASS = 64 +HIGH_PRIORITY_CLASS = 128 +REALTIME_PRIORITY_CLASS = 256 +CREATE_NEW_PROCESS_GROUP = 512 +CREATE_UNICODE_ENVIRONMENT = 1024 +CREATE_SEPARATE_WOW_VDM = 2048 +CREATE_SHARED_WOW_VDM = 4096 +CREATE_DEFAULT_ERROR_MODE = 67108864 +CREATE_NO_WINDOW = 134217728 +PROFILE_USER = 268435456 +PROFILE_KERNEL = 536870912 +PROFILE_SERVER = 1073741824 +THREAD_BASE_PRIORITY_LOWRT = 15 +THREAD_BASE_PRIORITY_MAX = 2 +THREAD_BASE_PRIORITY_MIN = -2 +THREAD_BASE_PRIORITY_IDLE = -15 +THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN +THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1 +THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX +THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1 +THREAD_PRIORITY_ERROR_RETURN = MAXLONG +THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT +THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE +THREAD_PRIORITY_NORMAL = 0 +THREAD_MODE_BACKGROUND_BEGIN = 0x00010000 +THREAD_MODE_BACKGROUND_END = 0x00020000 + +EXCEPTION_DEBUG_EVENT = 1 +CREATE_THREAD_DEBUG_EVENT = 2 +CREATE_PROCESS_DEBUG_EVENT = 3 +EXIT_THREAD_DEBUG_EVENT = 4 +EXIT_PROCESS_DEBUG_EVENT = 5 +LOAD_DLL_DEBUG_EVENT = 6 +UNLOAD_DLL_DEBUG_EVENT = 7 +OUTPUT_DEBUG_STRING_EVENT = 8 +RIP_EVENT = 9 +DRIVE_UNKNOWN = 0 +DRIVE_NO_ROOT_DIR = 1 +DRIVE_REMOVABLE = 2 +DRIVE_FIXED = 3 +DRIVE_REMOTE = 4 +DRIVE_CDROM = 5 +DRIVE_RAMDISK = 6 +FILE_TYPE_UNKNOWN = 0 +FILE_TYPE_DISK = 1 +FILE_TYPE_CHAR = 2 +FILE_TYPE_PIPE = 3 +FILE_TYPE_REMOTE = 32768 +NOPARITY = 0 +ODDPARITY = 1 +EVENPARITY = 2 +MARKPARITY = 3 +SPACEPARITY = 4 +ONESTOPBIT = 0 +ONE5STOPBITS = 1 +TWOSTOPBITS = 2 +CBR_110 = 110 +CBR_300 = 300 +CBR_600 = 600 +CBR_1200 = 1200 +CBR_2400 = 2400 +CBR_4800 = 4800 +CBR_9600 = 9600 +CBR_14400 = 14400 +CBR_19200 = 19200 +CBR_38400 = 38400 +CBR_56000 = 56000 +CBR_57600 = 57600 +CBR_115200 = 115200 +CBR_128000 = 128000 +CBR_256000 = 256000 +S_QUEUEEMPTY = 0 +S_THRESHOLD = 1 +S_ALLTHRESHOLD = 2 +S_NORMAL = 0 +S_LEGATO = 1 +S_STACCATO = 2 +NMPWAIT_WAIT_FOREVER = -1 +NMPWAIT_NOWAIT = 1 +NMPWAIT_USE_DEFAULT_WAIT = 0 +OF_READ = 0 +OF_WRITE = 1 +OF_READWRITE = 2 +OF_SHARE_COMPAT = 0 +OF_SHARE_EXCLUSIVE = 16 +OF_SHARE_DENY_WRITE = 32 +OF_SHARE_DENY_READ = 48 +OF_SHARE_DENY_NONE = 64 +OF_PARSE = 256 +OF_DELETE = 512 +OF_VERIFY = 1024 +OF_CANCEL = 2048 +OF_CREATE = 4096 +OF_PROMPT = 8192 +OF_EXIST = 16384 +OF_REOPEN = 32768 +OFS_MAXPATHNAME = 128 +MAXINTATOM = 49152 + +# winbase.h +PROCESS_HEAP_REGION = 1 +PROCESS_HEAP_UNCOMMITTED_RANGE = 2 +PROCESS_HEAP_ENTRY_BUSY = 4 +PROCESS_HEAP_ENTRY_MOVEABLE = 16 +PROCESS_HEAP_ENTRY_DDESHARE = 32 +SCS_32BIT_BINARY = 0 +SCS_DOS_BINARY = 1 +SCS_WOW_BINARY = 2 +SCS_PIF_BINARY = 3 +SCS_POSIX_BINARY = 4 +SCS_OS216_BINARY = 5 +SEM_FAILCRITICALERRORS = 1 +SEM_NOGPFAULTERRORBOX = 2 +SEM_NOALIGNMENTFAULTEXCEPT = 4 +SEM_NOOPENFILEERRORBOX = 32768 +LOCKFILE_FAIL_IMMEDIATELY = 1 +LOCKFILE_EXCLUSIVE_LOCK = 2 +HANDLE_FLAG_INHERIT = 1 +HANDLE_FLAG_PROTECT_FROM_CLOSE = 2 +HINSTANCE_ERROR = 32 +GET_TAPE_MEDIA_INFORMATION = 0 +GET_TAPE_DRIVE_INFORMATION = 1 +SET_TAPE_MEDIA_INFORMATION = 0 +SET_TAPE_DRIVE_INFORMATION = 1 +FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 +FORMAT_MESSAGE_IGNORE_INSERTS = 512 +FORMAT_MESSAGE_FROM_STRING = 1024 +FORMAT_MESSAGE_FROM_HMODULE = 2048 +FORMAT_MESSAGE_FROM_SYSTEM = 4096 +FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 +FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 +BACKUP_INVALID = 0 +BACKUP_DATA = 1 +BACKUP_EA_DATA = 2 +BACKUP_SECURITY_DATA = 3 +BACKUP_ALTERNATE_DATA = 4 +BACKUP_LINK = 5 +BACKUP_PROPERTY_DATA = 6 +BACKUP_OBJECT_ID = 7 +BACKUP_REPARSE_DATA = 8 +BACKUP_SPARSE_BLOCK = 9 + +STREAM_NORMAL_ATTRIBUTE = 0 +STREAM_MODIFIED_WHEN_READ = 1 +STREAM_CONTAINS_SECURITY = 2 +STREAM_CONTAINS_PROPERTIES = 4 +STARTF_USESHOWWINDOW = 1 +STARTF_USESIZE = 2 +STARTF_USEPOSITION = 4 +STARTF_USECOUNTCHARS = 8 +STARTF_USEFILLATTRIBUTE = 16 +STARTF_FORCEONFEEDBACK = 64 +STARTF_FORCEOFFFEEDBACK = 128 +STARTF_USESTDHANDLES = 256 +STARTF_USEHOTKEY = 512 +SHUTDOWN_NORETRY = 1 +DONT_RESOLVE_DLL_REFERENCES = 1 +LOAD_LIBRARY_AS_DATAFILE = 2 +LOAD_WITH_ALTERED_SEARCH_PATH = 8 +DDD_RAW_TARGET_PATH = 1 +DDD_REMOVE_DEFINITION = 2 +DDD_EXACT_MATCH_ON_REMOVE = 4 +MOVEFILE_REPLACE_EXISTING = 1 +MOVEFILE_COPY_ALLOWED = 2 +MOVEFILE_DELAY_UNTIL_REBOOT = 4 +MAX_COMPUTERNAME_LENGTH = 15 +LOGON32_LOGON_INTERACTIVE = 2 +LOGON32_LOGON_NETWORK = 3 +LOGON32_LOGON_BATCH = 4 +LOGON32_LOGON_SERVICE = 5 +LOGON32_LOGON_UNLOCK = 7 +LOGON32_LOGON_NETWORK_CLEARTEXT = 8 +LOGON32_LOGON_NEW_CREDENTIALS = 9 +LOGON32_PROVIDER_DEFAULT = 0 +LOGON32_PROVIDER_WINNT35 = 1 +LOGON32_PROVIDER_WINNT40 = 2 +LOGON32_PROVIDER_WINNT50 = 3 +VER_PLATFORM_WIN32s = 0 +VER_PLATFORM_WIN32_WINDOWS = 1 +VER_PLATFORM_WIN32_NT = 2 +TC_NORMAL = 0 +TC_HARDERR = 1 +TC_GP_TRAP = 2 +TC_SIGNAL = 3 +AC_LINE_OFFLINE = 0 +AC_LINE_ONLINE = 1 +AC_LINE_BACKUP_POWER = 2 +AC_LINE_UNKNOWN = 255 +BATTERY_FLAG_HIGH = 1 +BATTERY_FLAG_LOW = 2 +BATTERY_FLAG_CRITICAL = 4 +BATTERY_FLAG_CHARGING = 8 +BATTERY_FLAG_NO_BATTERY = 128 +BATTERY_FLAG_UNKNOWN = 255 +BATTERY_PERCENTAGE_UNKNOWN = 255 +BATTERY_LIFE_UNKNOWN = -1 + +# Generated by h2py from d:\msdev\include\richedit.h +cchTextLimitDefault = 32767 +WM_CONTEXTMENU = 123 +WM_PRINTCLIENT = 792 +EN_MSGFILTER = 1792 +EN_REQUESTRESIZE = 1793 +EN_SELCHANGE = 1794 +EN_DROPFILES = 1795 +EN_PROTECTED = 1796 +EN_CORRECTTEXT = 1797 +EN_STOPNOUNDO = 1798 +EN_IMECHANGE = 1799 +EN_SAVECLIPBOARD = 1800 +EN_OLEOPFAILED = 1801 +ENM_NONE = 0 +ENM_CHANGE = 1 +ENM_UPDATE = 2 +ENM_SCROLL = 4 +ENM_KEYEVENTS = 65536 +ENM_MOUSEEVENTS = 131072 +ENM_REQUESTRESIZE = 262144 +ENM_SELCHANGE = 524288 +ENM_DROPFILES = 1048576 +ENM_PROTECTED = 2097152 +ENM_CORRECTTEXT = 4194304 +ENM_IMECHANGE = 8388608 +ES_SAVESEL = 32768 +ES_SUNKEN = 16384 +ES_DISABLENOSCROLL = 8192 +ES_SELECTIONBAR = 16777216 +ES_EX_NOCALLOLEINIT = 16777216 +ES_VERTICAL = 4194304 +ES_NOIME = 524288 +ES_SELFIME = 262144 +ECO_AUTOWORDSELECTION = 1 +ECO_AUTOVSCROLL = 64 +ECO_AUTOHSCROLL = 128 +ECO_NOHIDESEL = 256 +ECO_READONLY = 2048 +ECO_WANTRETURN = 4096 +ECO_SAVESEL = 32768 +ECO_SELECTIONBAR = 16777216 +ECO_VERTICAL = 4194304 +ECOOP_SET = 1 +ECOOP_OR = 2 +ECOOP_AND = 3 +ECOOP_XOR = 4 +WB_CLASSIFY = 3 +WB_MOVEWORDLEFT = 4 +WB_MOVEWORDRIGHT = 5 +WB_LEFTBREAK = 6 +WB_RIGHTBREAK = 7 +WB_MOVEWORDPREV = 4 +WB_MOVEWORDNEXT = 5 +WB_PREVBREAK = 6 +WB_NEXTBREAK = 7 +PC_FOLLOWING = 1 +PC_LEADING = 2 +PC_OVERFLOW = 3 +PC_DELIMITER = 4 +WBF_WORDWRAP = 16 +WBF_WORDBREAK = 32 +WBF_OVERFLOW = 64 +WBF_LEVEL1 = 128 +WBF_LEVEL2 = 256 +WBF_CUSTOM = 512 +CFM_BOLD = 1 +CFM_ITALIC = 2 +CFM_UNDERLINE = 4 +CFM_STRIKEOUT = 8 +CFM_PROTECTED = 16 +CFM_SIZE = -2147483648 +CFM_COLOR = 1073741824 +CFM_FACE = 536870912 +CFM_OFFSET = 268435456 +CFM_CHARSET = 134217728 +CFE_BOLD = 1 +CFE_ITALIC = 2 +CFE_UNDERLINE = 4 +CFE_STRIKEOUT = 8 +CFE_PROTECTED = 16 +CFE_AUTOCOLOR = 1073741824 +yHeightCharPtsMost = 1638 +SCF_SELECTION = 1 +SCF_WORD = 2 +SF_TEXT = 1 +SF_RTF = 2 +SF_RTFNOOBJS = 3 +SF_TEXTIZED = 4 +SFF_SELECTION = 32768 +SFF_PLAINRTF = 16384 +MAX_TAB_STOPS = 32 +lDefaultTab = 720 +PFM_STARTINDENT = 1 +PFM_RIGHTINDENT = 2 +PFM_OFFSET = 4 +PFM_ALIGNMENT = 8 +PFM_TABSTOPS = 16 +PFM_NUMBERING = 32 +PFM_OFFSETINDENT = -2147483648 +PFN_BULLET = 1 +PFA_LEFT = 1 +PFA_RIGHT = 2 +PFA_CENTER = 3 +WM_NOTIFY = 78 +SEL_EMPTY = 0 +SEL_TEXT = 1 +SEL_OBJECT = 2 +SEL_MULTICHAR = 4 +SEL_MULTIOBJECT = 8 +OLEOP_DOVERB = 1 +CF_RTF = "Rich Text Format" +CF_RTFNOOBJS = "Rich Text Format Without Objects" +CF_RETEXTOBJ = "RichEdit Text and Objects" + +# From wincon.h +RIGHT_ALT_PRESSED = 1 # the right alt key is pressed. +LEFT_ALT_PRESSED = 2 # the left alt key is pressed. +RIGHT_CTRL_PRESSED = 4 # the right ctrl key is pressed. +LEFT_CTRL_PRESSED = 8 # the left ctrl key is pressed. +SHIFT_PRESSED = 16 # the shift key is pressed. +NUMLOCK_ON = 32 # the numlock light is on. +SCROLLLOCK_ON = 64 # the scrolllock light is on. +CAPSLOCK_ON = 128 # the capslock light is on. +ENHANCED_KEY = 256 # the key is enhanced. +NLS_DBCSCHAR = 65536 # DBCS for JPN: SBCS/DBCS mode. +NLS_ALPHANUMERIC = 0 # DBCS for JPN: Alphanumeric mode. +NLS_KATAKANA = 131072 # DBCS for JPN: Katakana mode. +NLS_HIRAGANA = 262144 # DBCS for JPN: Hiragana mode. +NLS_ROMAN = 4194304 # DBCS for JPN: Roman/Noroman mode. +NLS_IME_CONVERSION = 8388608 # DBCS for JPN: IME conversion. +NLS_IME_DISABLE = 536870912 # DBCS for JPN: IME enable/disable. + +FROM_LEFT_1ST_BUTTON_PRESSED = 1 +RIGHTMOST_BUTTON_PRESSED = 2 +FROM_LEFT_2ND_BUTTON_PRESSED = 4 +FROM_LEFT_3RD_BUTTON_PRESSED = 8 +FROM_LEFT_4TH_BUTTON_PRESSED = 16 + +CTRL_C_EVENT = 0 +CTRL_BREAK_EVENT = 1 +CTRL_CLOSE_EVENT = 2 +CTRL_LOGOFF_EVENT = 5 +CTRL_SHUTDOWN_EVENT = 6 + +MOUSE_MOVED = 1 +DOUBLE_CLICK = 2 +MOUSE_WHEELED = 4 + +#property sheet window messages from prsht.h +PSM_SETCURSEL = (WM_USER + 101) +PSM_REMOVEPAGE = (WM_USER + 102) +PSM_ADDPAGE = (WM_USER + 103) +PSM_CHANGED = (WM_USER + 104) +PSM_RESTARTWINDOWS = (WM_USER + 105) +PSM_REBOOTSYSTEM = (WM_USER + 106) +PSM_CANCELTOCLOSE = (WM_USER + 107) +PSM_QUERYSIBLINGS = (WM_USER + 108) +PSM_UNCHANGED = (WM_USER + 109) +PSM_APPLY = (WM_USER + 110) +PSM_SETTITLEA = (WM_USER + 111) +PSM_SETTITLEW = (WM_USER + 120) +PSM_SETWIZBUTTONS = (WM_USER + 112) +PSM_PRESSBUTTON = (WM_USER + 113) +PSM_SETCURSELID = (WM_USER + 114) +PSM_SETFINISHTEXTA = (WM_USER + 115) +PSM_SETFINISHTEXTW = (WM_USER + 121) +PSM_GETTABCONTROL = (WM_USER + 116) +PSM_ISDIALOGMESSAGE = (WM_USER + 117) +PSM_GETCURRENTPAGEHWND = (WM_USER + 118) +PSM_INSERTPAGE = (WM_USER + 119) +PSM_SETHEADERTITLEA = (WM_USER + 125) +PSM_SETHEADERTITLEW = (WM_USER + 126) +PSM_SETHEADERSUBTITLEA = (WM_USER + 127) +PSM_SETHEADERSUBTITLEW = (WM_USER + 128) +PSM_HWNDTOINDEX = (WM_USER + 129) +PSM_INDEXTOHWND = (WM_USER + 130) +PSM_PAGETOINDEX = (WM_USER + 131) +PSM_INDEXTOPAGE = (WM_USER + 132) +PSM_IDTOINDEX = (WM_USER + 133) +PSM_INDEXTOID = (WM_USER + 134) +PSM_GETRESULT = (WM_USER + 135) +PSM_RECALCPAGESIZES = (WM_USER + 136) + +# GetUserNameEx/GetComputerNameEx +NameUnknown = 0 +NameFullyQualifiedDN = 1 +NameSamCompatible = 2 +NameDisplay = 3 +NameUniqueId = 6 +NameCanonical = 7 +NameUserPrincipal = 8 +NameCanonicalEx = 9 +NameServicePrincipal = 10 +NameDnsDomain = 12 + +ComputerNameNetBIOS = 0 +ComputerNameDnsHostname = 1 +ComputerNameDnsDomain = 2 +ComputerNameDnsFullyQualified = 3 +ComputerNamePhysicalNetBIOS = 4 +ComputerNamePhysicalDnsHostname = 5 +ComputerNamePhysicalDnsDomain = 6 +ComputerNamePhysicalDnsFullyQualified = 7 + +LWA_COLORKEY = 0x00000001 +LWA_ALPHA = 0x00000002 +ULW_COLORKEY = 0x00000001 +ULW_ALPHA = 0x00000002 +ULW_OPAQUE = 0x00000004 + +# WinDef.h +TRUE = 1 +FALSE = 0 +MAX_PATH = 260 +# WinGDI.h +AC_SRC_OVER = 0 +AC_SRC_ALPHA = 1 +GRADIENT_FILL_RECT_H = 0 +GRADIENT_FILL_RECT_V = 1 +GRADIENT_FILL_TRIANGLE = 2 +GRADIENT_FILL_OP_FLAG = 255 + +## flags used with Get/SetSystemFileCacheSize +MM_WORKING_SET_MAX_HARD_ENABLE = 1 +MM_WORKING_SET_MAX_HARD_DISABLE = 2 +MM_WORKING_SET_MIN_HARD_ENABLE = 4 +MM_WORKING_SET_MIN_HARD_DISABLE = 8 + +## Flags for GetFinalPathNameByHandle +VOLUME_NAME_DOS = 0 +VOLUME_NAME_GUID = 1 +VOLUME_NAME_NT = 2 +VOLUME_NAME_NONE = 4 +FILE_NAME_NORMALIZED = 0 +FILE_NAME_OPENED = 8 + +DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000 +DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 + +# From Dbt.h +# Generated by h2py from Dbt.h +WM_DEVICECHANGE = 0x0219 +BSF_QUERY = 0x00000001 +BSF_IGNORECURRENTTASK = 0x00000002 +BSF_FLUSHDISK = 0x00000004 +BSF_NOHANG = 0x00000008 +BSF_POSTMESSAGE = 0x00000010 +BSF_FORCEIFHUNG = 0x00000020 +BSF_NOTIMEOUTIFNOTHUNG = 0x00000040 +BSF_MSGSRV32ISOK = (-2147483648) +BSF_MSGSRV32ISOK_BIT = 31 +BSM_ALLCOMPONENTS = 0x00000000 +BSM_VXDS = 0x00000001 +BSM_NETDRIVER = 0x00000002 +BSM_INSTALLABLEDRIVERS = 0x00000004 +BSM_APPLICATIONS = 0x00000008 +DBT_APPYBEGIN = 0x0000 +DBT_APPYEND = 0x0001 +DBT_DEVNODES_CHANGED = 0x0007 +DBT_QUERYCHANGECONFIG = 0x0017 +DBT_CONFIGCHANGED = 0x0018 +DBT_CONFIGCHANGECANCELED = 0x0019 +DBT_MONITORCHANGE = 0x001B +DBT_SHELLLOGGEDON = 0x0020 +DBT_CONFIGMGAPI32 = 0x0022 +DBT_VXDINITCOMPLETE = 0x0023 +DBT_VOLLOCKQUERYLOCK = 0x8041 +DBT_VOLLOCKLOCKTAKEN = 0x8042 +DBT_VOLLOCKLOCKFAILED = 0x8043 +DBT_VOLLOCKQUERYUNLOCK = 0x8044 +DBT_VOLLOCKLOCKRELEASED = 0x8045 +DBT_VOLLOCKUNLOCKFAILED = 0x8046 +LOCKP_ALLOW_WRITES = 0x01 +LOCKP_FAIL_WRITES = 0x00 +LOCKP_FAIL_MEM_MAPPING = 0x02 +LOCKP_ALLOW_MEM_MAPPING = 0x00 +LOCKP_USER_MASK = 0x03 +LOCKP_LOCK_FOR_FORMAT = 0x04 +LOCKF_LOGICAL_LOCK = 0x00 +LOCKF_PHYSICAL_LOCK = 0x01 +DBT_NO_DISK_SPACE = 0x0047 +DBT_LOW_DISK_SPACE = 0x0048 +DBT_CONFIGMGPRIVATE = 0x7FFF +DBT_DEVICEARRIVAL = 0x8000 +DBT_DEVICEQUERYREMOVE = 0x8001 +DBT_DEVICEQUERYREMOVEFAILED = 0x8002 +DBT_DEVICEREMOVEPENDING = 0x8003 +DBT_DEVICEREMOVECOMPLETE = 0x8004 +DBT_DEVICETYPESPECIFIC = 0x8005 +DBT_CUSTOMEVENT = 0x8006 +DBT_DEVTYP_OEM = 0x00000000 +DBT_DEVTYP_DEVNODE = 0x00000001 +DBT_DEVTYP_VOLUME = 0x00000002 +DBT_DEVTYP_PORT = 0x00000003 +DBT_DEVTYP_NET = 0x00000004 +DBT_DEVTYP_DEVICEINTERFACE = 0x00000005 +DBT_DEVTYP_HANDLE = 0x00000006 +DBTF_MEDIA = 0x0001 +DBTF_NET = 0x0002 +DBTF_RESOURCE = 0x00000001 +DBTF_XPORT = 0x00000002 +DBTF_SLOWNET = 0x00000004 +DBT_VPOWERDAPI = 0x8100 +DBT_USERDEFINED = 0xFFFF diff --git a/typings/win32helper/win32cryptcon.pyi b/typings/win32helper/win32cryptcon.pyi new file mode 100644 index 00000000..7ad7ed81 --- /dev/null +++ b/typings/win32helper/win32cryptcon.pyi @@ -0,0 +1,1900 @@ +# Generated by h2py from WinCrypt.h +def GET_ALG_CLASS(x): return (x & (7 << 13)) + +def GET_ALG_TYPE(x): return (x & (15 << 9)) + +def GET_ALG_SID(x): return (x & (511)) + +ALG_CLASS_ANY = (0) +ALG_CLASS_SIGNATURE = (1 << 13) +ALG_CLASS_MSG_ENCRYPT = (2 << 13) +ALG_CLASS_DATA_ENCRYPT = (3 << 13) +ALG_CLASS_HASH = (4 << 13) +ALG_CLASS_KEY_EXCHANGE = (5 << 13) +ALG_CLASS_ALL = (7 << 13) +ALG_TYPE_ANY = (0) +ALG_TYPE_DSS = (1 << 9) +ALG_TYPE_RSA = (2 << 9) +ALG_TYPE_BLOCK = (3 << 9) +ALG_TYPE_STREAM = (4 << 9) +ALG_TYPE_DH = (5 << 9) +ALG_TYPE_SECURECHANNEL = (6 << 9) +ALG_SID_ANY = (0) +ALG_SID_RSA_ANY = 0 +ALG_SID_RSA_PKCS = 1 +ALG_SID_RSA_MSATWORK = 2 +ALG_SID_RSA_ENTRUST = 3 +ALG_SID_RSA_PGP = 4 +ALG_SID_DSS_ANY = 0 +ALG_SID_DSS_PKCS = 1 +ALG_SID_DSS_DMS = 2 +ALG_SID_DES = 1 +ALG_SID_3DES = 3 +ALG_SID_DESX = 4 +ALG_SID_IDEA = 5 +ALG_SID_CAST = 6 +ALG_SID_SAFERSK64 = 7 +ALG_SID_SAFERSK128 = 8 +ALG_SID_3DES_112 = 9 +ALG_SID_CYLINK_MEK = 12 +ALG_SID_RC5 = 13 +ALG_SID_AES_128 = 14 +ALG_SID_AES_192 = 15 +ALG_SID_AES_256 = 16 +ALG_SID_AES = 17 +ALG_SID_SKIPJACK = 10 +ALG_SID_TEK = 11 +CRYPT_MODE_CBCI = 6 +CRYPT_MODE_CFBP = 7 +CRYPT_MODE_OFBP = 8 +CRYPT_MODE_CBCOFM = 9 +CRYPT_MODE_CBCOFMI = 10 +ALG_SID_RC2 = 2 +ALG_SID_RC4 = 1 +ALG_SID_SEAL = 2 +ALG_SID_DH_SANDF = 1 +ALG_SID_DH_EPHEM = 2 +ALG_SID_AGREED_KEY_ANY = 3 +ALG_SID_KEA = 4 +ALG_SID_MD2 = 1 +ALG_SID_MD4 = 2 +ALG_SID_MD5 = 3 +ALG_SID_SHA = 4 +ALG_SID_SHA1 = 4 +ALG_SID_MAC = 5 +ALG_SID_RIPEMD = 6 +ALG_SID_RIPEMD160 = 7 +ALG_SID_SSL3SHAMD5 = 8 +ALG_SID_HMAC = 9 +ALG_SID_TLS1PRF = 10 +ALG_SID_HASH_REPLACE_OWF = 11 +ALG_SID_SHA_256 = 12 +ALG_SID_SHA_384 = 13 +ALG_SID_SHA_512 = 14 +ALG_SID_SSL3_MASTER = 1 +ALG_SID_SCHANNEL_MASTER_HASH = 2 +ALG_SID_SCHANNEL_MAC_KEY = 3 +ALG_SID_PCT1_MASTER = 4 +ALG_SID_SSL2_MASTER = 5 +ALG_SID_TLS1_MASTER = 6 +ALG_SID_SCHANNEL_ENC_KEY = 7 +ALG_SID_EXAMPLE = 80 +CALG_MD2 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2) +CALG_MD4 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4) +CALG_MD5 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5) +CALG_SHA = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA) +CALG_SHA1 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA1) +CALG_MAC = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC) +CALG_RSA_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) +CALG_DSS_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY) +CALG_NO_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY) +CALG_RSA_KEYX = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) +CALG_DES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DES) +CALG_3DES_112 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_3DES_112) +CALG_3DES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_3DES) +CALG_DESX = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DESX) +CALG_RC2 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC2) +CALG_RC4 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_RC4) +CALG_SEAL = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_SEAL) +CALG_DH_SF = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_DH_SANDF) +CALG_DH_EPHEM = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_DH_EPHEM) +CALG_AGREEDKEY_ANY = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_AGREED_KEY_ANY) +CALG_KEA_KEYX = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_KEA) +CALG_HUGHES_MD5 = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_ANY|ALG_SID_MD5) +CALG_SKIPJACK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_SKIPJACK) +CALG_TEK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_TEK) +CALG_CYLINK_MEK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_CYLINK_MEK) +CALG_SSL3_SHAMD5 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5) +CALG_SSL3_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SSL3_MASTER) +CALG_SCHANNEL_MASTER_HASH = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_MASTER_HASH) +CALG_SCHANNEL_MAC_KEY = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_MAC_KEY) +CALG_SCHANNEL_ENC_KEY = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_ENC_KEY) +CALG_PCT1_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_PCT1_MASTER) +CALG_SSL2_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SSL2_MASTER) +CALG_TLS1_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_TLS1_MASTER) +CALG_RC5 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC5) +CALG_HMAC = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC) +CALG_TLS1PRF = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF) +CALG_HASH_REPLACE_OWF = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF) +CALG_AES_128 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_128) +CALG_AES_192 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_192) +CALG_AES_256 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_256) +CALG_AES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES) +CALG_SHA_256 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256) +CALG_SHA_384 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384) +CALG_SHA_512 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512) +CRYPT_VERIFYCONTEXT = (-268435456) +CRYPT_NEWKEYSET = 0x00000008 +CRYPT_DELETEKEYSET = 0x00000010 +CRYPT_MACHINE_KEYSET = 0x00000020 +CRYPT_SILENT = 0x00000040 +CRYPT_EXPORTABLE = 0x00000001 +CRYPT_USER_PROTECTED = 0x00000002 +CRYPT_CREATE_SALT = 0x00000004 +CRYPT_UPDATE_KEY = 0x00000008 +CRYPT_NO_SALT = 0x00000010 +CRYPT_PREGEN = 0x00000040 +CRYPT_RECIPIENT = 0x00000010 +CRYPT_INITIATOR = 0x00000040 +CRYPT_ONLINE = 0x00000080 +CRYPT_SF = 0x00000100 +CRYPT_CREATE_IV = 0x00000200 +CRYPT_KEK = 0x00000400 +CRYPT_DATA_KEY = 0x00000800 +CRYPT_VOLATILE = 0x00001000 +CRYPT_SGCKEY = 0x00002000 +CRYPT_ARCHIVABLE = 0x00004000 +RSA1024BIT_KEY = 0x04000000 +CRYPT_SERVER = 0x00000400 +KEY_LENGTH_MASK = (-65536) +CRYPT_Y_ONLY = 0x00000001 +CRYPT_SSL2_FALLBACK = 0x00000002 +CRYPT_DESTROYKEY = 0x00000004 +CRYPT_OAEP = 0x00000040 +CRYPT_BLOB_VER3 = 0x00000080 +CRYPT_IPSEC_HMAC_KEY = 0x00000100 +CRYPT_DECRYPT_RSA_NO_PADDING_CHECK = 0x00000020 +CRYPT_SECRETDIGEST = 0x00000001 +CRYPT_OWF_REPL_LM_HASH = 0x00000001 +CRYPT_LITTLE_ENDIAN = 0x00000001 +CRYPT_NOHASHOID = 0x00000001 +CRYPT_TYPE2_FORMAT = 0x00000002 +CRYPT_X931_FORMAT = 0x00000004 +CRYPT_MACHINE_DEFAULT = 0x00000001 +CRYPT_USER_DEFAULT = 0x00000002 +CRYPT_DELETE_DEFAULT = 0x00000004 +SIMPLEBLOB = 0x1 +PUBLICKEYBLOB = 0x6 +PRIVATEKEYBLOB = 0x7 +PLAINTEXTKEYBLOB = 0x8 +OPAQUEKEYBLOB = 0x9 +PUBLICKEYBLOBEX = 0xA +SYMMETRICWRAPKEYBLOB = 0xB +AT_KEYEXCHANGE = 1 +AT_SIGNATURE = 2 +CRYPT_USERDATA = 1 +KP_IV = 1 +KP_SALT = 2 +KP_PADDING = 3 +KP_MODE = 4 +KP_MODE_BITS = 5 +KP_PERMISSIONS = 6 +KP_ALGID = 7 +KP_BLOCKLEN = 8 +KP_KEYLEN = 9 +KP_SALT_EX = 10 +KP_P = 11 +KP_G = 12 +KP_Q = 13 +KP_X = 14 +KP_Y = 15 +KP_RA = 16 +KP_RB = 17 +KP_INFO = 18 +KP_EFFECTIVE_KEYLEN = 19 +KP_SCHANNEL_ALG = 20 +KP_CLIENT_RANDOM = 21 +KP_SERVER_RANDOM = 22 +KP_RP = 23 +KP_PRECOMP_MD5 = 24 +KP_PRECOMP_SHA = 25 +KP_CERTIFICATE = 26 +KP_CLEAR_KEY = 27 +KP_PUB_EX_LEN = 28 +KP_PUB_EX_VAL = 29 +KP_KEYVAL = 30 +KP_ADMIN_PIN = 31 +KP_KEYEXCHANGE_PIN = 32 +KP_SIGNATURE_PIN = 33 +KP_PREHASH = 34 +KP_ROUNDS = 35 +KP_OAEP_PARAMS = 36 +KP_CMS_KEY_INFO = 37 +KP_CMS_DH_KEY_INFO = 38 +KP_PUB_PARAMS = 39 +KP_VERIFY_PARAMS = 40 +KP_HIGHEST_VERSION = 41 +KP_GET_USE_COUNT = 42 +PKCS5_PADDING = 1 +RANDOM_PADDING = 2 +ZERO_PADDING = 3 +CRYPT_MODE_CBC = 1 +CRYPT_MODE_ECB = 2 +CRYPT_MODE_OFB = 3 +CRYPT_MODE_CFB = 4 +CRYPT_MODE_CTS = 5 +CRYPT_ENCRYPT = 0x0001 +CRYPT_DECRYPT = 0x0002 +CRYPT_EXPORT = 0x0004 +CRYPT_READ = 0x0008 +CRYPT_WRITE = 0x0010 +CRYPT_MAC = 0x0020 +CRYPT_EXPORT_KEY = 0x0040 +CRYPT_IMPORT_KEY = 0x0080 +CRYPT_ARCHIVE = 0x0100 +HP_ALGID = 0x0001 +HP_HASHVAL = 0x0002 +HP_HASHSIZE = 0x0004 +HP_HMAC_INFO = 0x0005 +HP_TLS1PRF_LABEL = 0x0006 +HP_TLS1PRF_SEED = 0x0007 + +CRYPT_FAILED = 0 +CRYPT_SUCCEED = 1 +def RCRYPT_SUCCEEDED(rt): return ((rt) == CRYPT_SUCCEED) +def RCRYPT_FAILED(rt): return ((rt) == CRYPT_FAILED) + +PP_ENUMALGS = 1 +PP_ENUMCONTAINERS = 2 +PP_IMPTYPE = 3 +PP_NAME = 4 +PP_VERSION = 5 +PP_CONTAINER = 6 +PP_CHANGE_PASSWORD = 7 +PP_KEYSET_SEC_DESCR = 8 +PP_CERTCHAIN = 9 +PP_KEY_TYPE_SUBTYPE = 10 +PP_PROVTYPE = 16 +PP_KEYSTORAGE = 17 +PP_APPLI_CERT = 18 +PP_SYM_KEYSIZE = 19 +PP_SESSION_KEYSIZE = 20 +PP_UI_PROMPT = 21 +PP_ENUMALGS_EX = 22 +PP_ENUMMANDROOTS = 25 +PP_ENUMELECTROOTS = 26 +PP_KEYSET_TYPE = 27 +PP_ADMIN_PIN = 31 +PP_KEYEXCHANGE_PIN = 32 +PP_SIGNATURE_PIN = 33 +PP_SIG_KEYSIZE_INC = 34 +PP_KEYX_KEYSIZE_INC = 35 +PP_UNIQUE_CONTAINER = 36 +PP_SGC_INFO = 37 +PP_USE_HARDWARE_RNG = 38 +PP_KEYSPEC = 39 +PP_ENUMEX_SIGNING_PROT = 40 +PP_CRYPT_COUNT_KEY_USE = 41 +CRYPT_FIRST = 1 +CRYPT_NEXT = 2 +CRYPT_SGC_ENUM = 4 +CRYPT_IMPL_HARDWARE = 1 +CRYPT_IMPL_SOFTWARE = 2 +CRYPT_IMPL_MIXED = 3 +CRYPT_IMPL_UNKNOWN = 4 +CRYPT_IMPL_REMOVABLE = 8 +CRYPT_SEC_DESCR = 0x00000001 +CRYPT_PSTORE = 0x00000002 +CRYPT_UI_PROMPT = 0x00000004 +CRYPT_FLAG_PCT1 = 0x0001 +CRYPT_FLAG_SSL2 = 0x0002 +CRYPT_FLAG_SSL3 = 0x0004 +CRYPT_FLAG_TLS1 = 0x0008 +CRYPT_FLAG_IPSEC = 0x0010 +CRYPT_FLAG_SIGNING = 0x0020 +CRYPT_SGC = 0x0001 +CRYPT_FASTSGC = 0x0002 +PP_CLIENT_HWND = 1 +PP_CONTEXT_INFO = 11 +PP_KEYEXCHANGE_KEYSIZE = 12 +PP_SIGNATURE_KEYSIZE = 13 +PP_KEYEXCHANGE_ALG = 14 +PP_SIGNATURE_ALG = 15 +PP_DELETEKEY = 24 +PROV_RSA_FULL = 1 +PROV_RSA_SIG = 2 +PROV_DSS = 3 +PROV_FORTEZZA = 4 +PROV_MS_EXCHANGE = 5 +PROV_SSL = 6 +PROV_RSA_SCHANNEL = 12 +PROV_DSS_DH = 13 +PROV_EC_ECDSA_SIG = 14 +PROV_EC_ECNRA_SIG = 15 +PROV_EC_ECDSA_FULL = 16 +PROV_EC_ECNRA_FULL = 17 +PROV_DH_SCHANNEL = 18 +PROV_SPYRUS_LYNKS = 20 +PROV_RNG = 21 +PROV_INTEL_SEC = 22 +PROV_REPLACE_OWF = 23 +PROV_RSA_AES = 24 +MS_DEF_PROV_A = "Microsoft Base Cryptographic Provider v1.0" +MS_DEF_PROV = MS_DEF_PROV_A +MS_ENHANCED_PROV_A = "Microsoft Enhanced Cryptographic Provider v1.0" +MS_ENHANCED_PROV = MS_ENHANCED_PROV_A +MS_STRONG_PROV_A = "Microsoft Strong Cryptographic Provider" +MS_STRONG_PROV = MS_STRONG_PROV_A +MS_DEF_RSA_SIG_PROV_A = "Microsoft RSA Signature Cryptographic Provider" +MS_DEF_RSA_SIG_PROV = MS_DEF_RSA_SIG_PROV_A +MS_DEF_RSA_SCHANNEL_PROV_A = "Microsoft RSA SChannel Cryptographic Provider" +MS_DEF_RSA_SCHANNEL_PROV = MS_DEF_RSA_SCHANNEL_PROV_A +MS_DEF_DSS_PROV_A = "Microsoft Base DSS Cryptographic Provider" +MS_DEF_DSS_PROV = MS_DEF_DSS_PROV_A +MS_DEF_DSS_DH_PROV_A = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" +MS_DEF_DSS_DH_PROV = MS_DEF_DSS_DH_PROV_A +MS_ENH_DSS_DH_PROV_A = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" +MS_ENH_DSS_DH_PROV = MS_ENH_DSS_DH_PROV_A +MS_DEF_DH_SCHANNEL_PROV_A = "Microsoft DH SChannel Cryptographic Provider" +MS_DEF_DH_SCHANNEL_PROV = MS_DEF_DH_SCHANNEL_PROV_A +MS_SCARD_PROV_A = "Microsoft Base Smart Card Crypto Provider" +MS_SCARD_PROV = MS_SCARD_PROV_A +MS_ENH_RSA_AES_PROV_A = "Microsoft Enhanced RSA and AES Cryptographic Provider" +MS_ENH_RSA_AES_PROV = MS_ENH_RSA_AES_PROV_A +MAXUIDLEN = 64 +EXPO_OFFLOAD_REG_VALUE = "ExpoOffload" +EXPO_OFFLOAD_FUNC_NAME = "OffloadModExpo" +szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS = \ + "Software\\Policies\\Microsoft\\Cryptography" +szFORCE_KEY_PROTECTION = "ForceKeyProtection" +dwFORCE_KEY_PROTECTION_DISABLED = 0x0 +dwFORCE_KEY_PROTECTION_USER_SELECT = 0x1 +dwFORCE_KEY_PROTECTION_HIGH = 0x2 +szKEY_CACHE_ENABLED = "CachePrivateKeys" +szKEY_CACHE_SECONDS = "PrivateKeyLifetimeSeconds" +CUR_BLOB_VERSION = 2 +SCHANNEL_MAC_KEY = 0x00000000 +SCHANNEL_ENC_KEY = 0x00000001 +INTERNATIONAL_USAGE = 0x00000001 +szOID_RSA = "1.2.840.113549" +szOID_PKCS = "1.2.840.113549.1" +szOID_RSA_HASH = "1.2.840.113549.2" +szOID_RSA_ENCRYPT = "1.2.840.113549.3" +szOID_PKCS_1 = "1.2.840.113549.1.1" +szOID_PKCS_2 = "1.2.840.113549.1.2" +szOID_PKCS_3 = "1.2.840.113549.1.3" +szOID_PKCS_4 = "1.2.840.113549.1.4" +szOID_PKCS_5 = "1.2.840.113549.1.5" +szOID_PKCS_6 = "1.2.840.113549.1.6" +szOID_PKCS_7 = "1.2.840.113549.1.7" +szOID_PKCS_8 = "1.2.840.113549.1.8" +szOID_PKCS_9 = "1.2.840.113549.1.9" +szOID_PKCS_10 = "1.2.840.113549.1.10" +szOID_PKCS_12 = "1.2.840.113549.1.12" +szOID_RSA_RSA = "1.2.840.113549.1.1.1" +szOID_RSA_MD2RSA = "1.2.840.113549.1.1.2" +szOID_RSA_MD4RSA = "1.2.840.113549.1.1.3" +szOID_RSA_MD5RSA = "1.2.840.113549.1.1.4" +szOID_RSA_SHA1RSA = "1.2.840.113549.1.1.5" +szOID_RSA_SETOAEP_RSA = "1.2.840.113549.1.1.6" +szOID_RSA_DH = "1.2.840.113549.1.3.1" +szOID_RSA_data = "1.2.840.113549.1.7.1" +szOID_RSA_signedData = "1.2.840.113549.1.7.2" +szOID_RSA_envelopedData = "1.2.840.113549.1.7.3" +szOID_RSA_signEnvData = "1.2.840.113549.1.7.4" +szOID_RSA_digestedData = "1.2.840.113549.1.7.5" +szOID_RSA_hashedData = "1.2.840.113549.1.7.5" +szOID_RSA_encryptedData = "1.2.840.113549.1.7.6" +szOID_RSA_emailAddr = "1.2.840.113549.1.9.1" +szOID_RSA_unstructName = "1.2.840.113549.1.9.2" +szOID_RSA_contentType = "1.2.840.113549.1.9.3" +szOID_RSA_messageDigest = "1.2.840.113549.1.9.4" +szOID_RSA_signingTime = "1.2.840.113549.1.9.5" +szOID_RSA_counterSign = "1.2.840.113549.1.9.6" +szOID_RSA_challengePwd = "1.2.840.113549.1.9.7" +szOID_RSA_unstructAddr = "1.2.840.113549.1.9.8" +szOID_RSA_extCertAttrs = "1.2.840.113549.1.9.9" +szOID_RSA_certExtensions = "1.2.840.113549.1.9.14" +szOID_RSA_SMIMECapabilities = "1.2.840.113549.1.9.15" +szOID_RSA_preferSignedData = "1.2.840.113549.1.9.15.1" +szOID_RSA_SMIMEalg = "1.2.840.113549.1.9.16.3" +szOID_RSA_SMIMEalgESDH = "1.2.840.113549.1.9.16.3.5" +szOID_RSA_SMIMEalgCMS3DESwrap = "1.2.840.113549.1.9.16.3.6" +szOID_RSA_SMIMEalgCMSRC2wrap = "1.2.840.113549.1.9.16.3.7" +szOID_RSA_MD2 = "1.2.840.113549.2.2" +szOID_RSA_MD4 = "1.2.840.113549.2.4" +szOID_RSA_MD5 = "1.2.840.113549.2.5" +szOID_RSA_RC2CBC = "1.2.840.113549.3.2" +szOID_RSA_RC4 = "1.2.840.113549.3.4" +szOID_RSA_DES_EDE3_CBC = "1.2.840.113549.3.7" +szOID_RSA_RC5_CBCPad = "1.2.840.113549.3.9" +szOID_ANSI_X942 = "1.2.840.10046" +szOID_ANSI_X942_DH = "1.2.840.10046.2.1" +szOID_X957 = "1.2.840.10040" +szOID_X957_DSA = "1.2.840.10040.4.1" +szOID_X957_SHA1DSA = "1.2.840.10040.4.3" +szOID_DS = "2.5" +szOID_DSALG = "2.5.8" +szOID_DSALG_CRPT = "2.5.8.1" +szOID_DSALG_HASH = "2.5.8.2" +szOID_DSALG_SIGN = "2.5.8.3" +szOID_DSALG_RSA = "2.5.8.1.1" +szOID_OIW = "1.3.14" +szOID_OIWSEC = "1.3.14.3.2" +szOID_OIWSEC_md4RSA = "1.3.14.3.2.2" +szOID_OIWSEC_md5RSA = "1.3.14.3.2.3" +szOID_OIWSEC_md4RSA2 = "1.3.14.3.2.4" +szOID_OIWSEC_desECB = "1.3.14.3.2.6" +szOID_OIWSEC_desCBC = "1.3.14.3.2.7" +szOID_OIWSEC_desOFB = "1.3.14.3.2.8" +szOID_OIWSEC_desCFB = "1.3.14.3.2.9" +szOID_OIWSEC_desMAC = "1.3.14.3.2.10" +szOID_OIWSEC_rsaSign = "1.3.14.3.2.11" +szOID_OIWSEC_dsa = "1.3.14.3.2.12" +szOID_OIWSEC_shaDSA = "1.3.14.3.2.13" +szOID_OIWSEC_mdc2RSA = "1.3.14.3.2.14" +szOID_OIWSEC_shaRSA = "1.3.14.3.2.15" +szOID_OIWSEC_dhCommMod = "1.3.14.3.2.16" +szOID_OIWSEC_desEDE = "1.3.14.3.2.17" +szOID_OIWSEC_sha = "1.3.14.3.2.18" +szOID_OIWSEC_mdc2 = "1.3.14.3.2.19" +szOID_OIWSEC_dsaComm = "1.3.14.3.2.20" +szOID_OIWSEC_dsaCommSHA = "1.3.14.3.2.21" +szOID_OIWSEC_rsaXchg = "1.3.14.3.2.22" +szOID_OIWSEC_keyHashSeal = "1.3.14.3.2.23" +szOID_OIWSEC_md2RSASign = "1.3.14.3.2.24" +szOID_OIWSEC_md5RSASign = "1.3.14.3.2.25" +szOID_OIWSEC_sha1 = "1.3.14.3.2.26" +szOID_OIWSEC_dsaSHA1 = "1.3.14.3.2.27" +szOID_OIWSEC_dsaCommSHA1 = "1.3.14.3.2.28" +szOID_OIWSEC_sha1RSASign = "1.3.14.3.2.29" +szOID_OIWDIR = "1.3.14.7.2" +szOID_OIWDIR_CRPT = "1.3.14.7.2.1" +szOID_OIWDIR_HASH = "1.3.14.7.2.2" +szOID_OIWDIR_SIGN = "1.3.14.7.2.3" +szOID_OIWDIR_md2 = "1.3.14.7.2.2.1" +szOID_OIWDIR_md2RSA = "1.3.14.7.2.3.1" +szOID_INFOSEC = "2.16.840.1.101.2.1" +szOID_INFOSEC_sdnsSignature = "2.16.840.1.101.2.1.1.1" +szOID_INFOSEC_mosaicSignature = "2.16.840.1.101.2.1.1.2" +szOID_INFOSEC_sdnsConfidentiality = "2.16.840.1.101.2.1.1.3" +szOID_INFOSEC_mosaicConfidentiality = "2.16.840.1.101.2.1.1.4" +szOID_INFOSEC_sdnsIntegrity = "2.16.840.1.101.2.1.1.5" +szOID_INFOSEC_mosaicIntegrity = "2.16.840.1.101.2.1.1.6" +szOID_INFOSEC_sdnsTokenProtection = "2.16.840.1.101.2.1.1.7" +szOID_INFOSEC_mosaicTokenProtection = "2.16.840.1.101.2.1.1.8" +szOID_INFOSEC_sdnsKeyManagement = "2.16.840.1.101.2.1.1.9" +szOID_INFOSEC_mosaicKeyManagement = "2.16.840.1.101.2.1.1.10" +szOID_INFOSEC_sdnsKMandSig = "2.16.840.1.101.2.1.1.11" +szOID_INFOSEC_mosaicKMandSig = "2.16.840.1.101.2.1.1.12" +szOID_INFOSEC_SuiteASignature = "2.16.840.1.101.2.1.1.13" +szOID_INFOSEC_SuiteAConfidentiality = "2.16.840.1.101.2.1.1.14" +szOID_INFOSEC_SuiteAIntegrity = "2.16.840.1.101.2.1.1.15" +szOID_INFOSEC_SuiteATokenProtection = "2.16.840.1.101.2.1.1.16" +szOID_INFOSEC_SuiteAKeyManagement = "2.16.840.1.101.2.1.1.17" +szOID_INFOSEC_SuiteAKMandSig = "2.16.840.1.101.2.1.1.18" +szOID_INFOSEC_mosaicUpdatedSig = "2.16.840.1.101.2.1.1.19" +szOID_INFOSEC_mosaicKMandUpdSig = "2.16.840.1.101.2.1.1.20" +szOID_INFOSEC_mosaicUpdatedInteg = "2.16.840.1.101.2.1.1.21" +szOID_COMMON_NAME = "2.5.4.3" +szOID_SUR_NAME = "2.5.4.4" +szOID_DEVICE_SERIAL_NUMBER = "2.5.4.5" +szOID_COUNTRY_NAME = "2.5.4.6" +szOID_LOCALITY_NAME = "2.5.4.7" +szOID_STATE_OR_PROVINCE_NAME = "2.5.4.8" +szOID_STREET_ADDRESS = "2.5.4.9" +szOID_ORGANIZATION_NAME = "2.5.4.10" +szOID_ORGANIZATIONAL_UNIT_NAME = "2.5.4.11" +szOID_TITLE = "2.5.4.12" +szOID_DESCRIPTION = "2.5.4.13" +szOID_SEARCH_GUIDE = "2.5.4.14" +szOID_BUSINESS_CATEGORY = "2.5.4.15" +szOID_POSTAL_ADDRESS = "2.5.4.16" +szOID_POSTAL_CODE = "2.5.4.17" +szOID_POST_OFFICE_BOX = "2.5.4.18" +szOID_PHYSICAL_DELIVERY_OFFICE_NAME = "2.5.4.19" +szOID_TELEPHONE_NUMBER = "2.5.4.20" +szOID_TELEX_NUMBER = "2.5.4.21" +szOID_TELETEXT_TERMINAL_IDENTIFIER = "2.5.4.22" +szOID_FACSIMILE_TELEPHONE_NUMBER = "2.5.4.23" +szOID_X21_ADDRESS = "2.5.4.24" +szOID_INTERNATIONAL_ISDN_NUMBER = "2.5.4.25" +szOID_REGISTERED_ADDRESS = "2.5.4.26" +szOID_DESTINATION_INDICATOR = "2.5.4.27" +szOID_PREFERRED_DELIVERY_METHOD = "2.5.4.28" +szOID_PRESENTATION_ADDRESS = "2.5.4.29" +szOID_SUPPORTED_APPLICATION_CONTEXT = "2.5.4.30" +szOID_MEMBER = "2.5.4.31" +szOID_OWNER = "2.5.4.32" +szOID_ROLE_OCCUPANT = "2.5.4.33" +szOID_SEE_ALSO = "2.5.4.34" +szOID_USER_PASSWORD = "2.5.4.35" +szOID_USER_CERTIFICATE = "2.5.4.36" +szOID_CA_CERTIFICATE = "2.5.4.37" +szOID_AUTHORITY_REVOCATION_LIST = "2.5.4.38" +szOID_CERTIFICATE_REVOCATION_LIST = "2.5.4.39" +szOID_CROSS_CERTIFICATE_PAIR = "2.5.4.40" +szOID_GIVEN_NAME = "2.5.4.42" +szOID_INITIALS = "2.5.4.43" +szOID_DN_QUALIFIER = "2.5.4.46" +szOID_DOMAIN_COMPONENT = "0.9.2342.19200300.100.1.25" +szOID_PKCS_12_FRIENDLY_NAME_ATTR = "1.2.840.113549.1.9.20" +szOID_PKCS_12_LOCAL_KEY_ID = "1.2.840.113549.1.9.21" +szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR = "1.3.6.1.4.1.311.17.1" +szOID_LOCAL_MACHINE_KEYSET = "1.3.6.1.4.1.311.17.2" +szOID_KEYID_RDN = "1.3.6.1.4.1.311.10.7.1" +CERT_RDN_ANY_TYPE = 0 +CERT_RDN_ENCODED_BLOB = 1 +CERT_RDN_OCTET_STRING = 2 +CERT_RDN_NUMERIC_STRING = 3 +CERT_RDN_PRINTABLE_STRING = 4 +CERT_RDN_TELETEX_STRING = 5 +CERT_RDN_T61_STRING = 5 +CERT_RDN_VIDEOTEX_STRING = 6 +CERT_RDN_IA5_STRING = 7 +CERT_RDN_GRAPHIC_STRING = 8 +CERT_RDN_VISIBLE_STRING = 9 +CERT_RDN_ISO646_STRING = 9 +CERT_RDN_GENERAL_STRING = 10 +CERT_RDN_UNIVERSAL_STRING = 11 +CERT_RDN_INT4_STRING = 11 +CERT_RDN_BMP_STRING = 12 +CERT_RDN_UNICODE_STRING = 12 +CERT_RDN_UTF8_STRING = 13 +CERT_RDN_TYPE_MASK = 0x000000FF +CERT_RDN_FLAGS_MASK = (-16777216) +CERT_RDN_ENABLE_T61_UNICODE_FLAG = (-2147483648) +CERT_RDN_ENABLE_UTF8_UNICODE_FLAG = 0x20000000 +CERT_RDN_DISABLE_CHECK_TYPE_FLAG = 0x40000000 +CERT_RDN_DISABLE_IE4_UTF8_FLAG = 0x01000000 +CERT_RSA_PUBLIC_KEY_OBJID = szOID_RSA_RSA +CERT_DEFAULT_OID_PUBLIC_KEY_SIGN = szOID_RSA_RSA +CERT_DEFAULT_OID_PUBLIC_KEY_XCHG = szOID_RSA_RSA +CERT_V1 = 0 +CERT_V2 = 1 +CERT_V3 = 2 +CERT_INFO_VERSION_FLAG = 1 +CERT_INFO_SERIAL_NUMBER_FLAG = 2 +CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 +CERT_INFO_ISSUER_FLAG = 4 +CERT_INFO_NOT_BEFORE_FLAG = 5 +CERT_INFO_NOT_AFTER_FLAG = 6 +CERT_INFO_SUBJECT_FLAG = 7 +CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 +CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 +CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 +CERT_INFO_EXTENSION_FLAG = 11 +CRL_V1 = 0 +CRL_V2 = 1 +CERT_REQUEST_V1 = 0 +CERT_KEYGEN_REQUEST_V1 = 0 +CTL_V1 = 0 +CERT_ENCODING_TYPE_MASK = 0x0000FFFF +CMSG_ENCODING_TYPE_MASK = (-65536) +def GET_CERT_ENCODING_TYPE(X): return (X & CERT_ENCODING_TYPE_MASK) + +def GET_CMSG_ENCODING_TYPE(X): return (X & CMSG_ENCODING_TYPE_MASK) + +CRYPT_ASN_ENCODING = 0x00000001 +CRYPT_NDR_ENCODING = 0x00000002 +X509_ASN_ENCODING = 0x00000001 +X509_NDR_ENCODING = 0x00000002 +PKCS_7_ASN_ENCODING = 0x00010000 +PKCS_7_NDR_ENCODING = 0x00020000 +CRYPT_FORMAT_STR_MULTI_LINE = 0x0001 +CRYPT_FORMAT_STR_NO_HEX = 0x0010 +CRYPT_FORMAT_SIMPLE = 0x0001 +CRYPT_FORMAT_X509 = 0x0002 +CRYPT_FORMAT_OID = 0x0004 +CRYPT_FORMAT_RDN_SEMICOLON = 0x0100 +CRYPT_FORMAT_RDN_CRLF = 0x0200 +CRYPT_FORMAT_RDN_UNQUOTE = 0x0400 +CRYPT_FORMAT_RDN_REVERSE = 0x0800 +CRYPT_FORMAT_COMMA = 0x1000 +CRYPT_FORMAT_SEMICOLON = CRYPT_FORMAT_RDN_SEMICOLON +CRYPT_FORMAT_CRLF = CRYPT_FORMAT_RDN_CRLF +CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG = 0x8 +CRYPT_ENCODE_ALLOC_FLAG = 0x8000 +CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG = \ + CERT_RDN_ENABLE_T61_UNICODE_FLAG +CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG = \ + CERT_RDN_ENABLE_UTF8_UNICODE_FLAG +CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG = \ + CERT_RDN_DISABLE_CHECK_TYPE_FLAG +CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x10000 +CRYPT_DECODE_NOCOPY_FLAG = 0x1 +CRYPT_DECODE_TO_BE_SIGNED_FLAG = 0x2 +CRYPT_DECODE_SHARE_OID_STRING_FLAG = 0x4 +CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG = 0x8 +CRYPT_DECODE_ALLOC_FLAG = 0x8000 +CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG = \ + CERT_RDN_DISABLE_IE4_UTF8_FLAG + +CRYPT_ENCODE_DECODE_NONE = 0 +X509_CERT = 1 +X509_CERT_TO_BE_SIGNED = 2 +X509_CERT_CRL_TO_BE_SIGNED = 3 +X509_CERT_REQUEST_TO_BE_SIGNED = 4 +X509_EXTENSIONS = 5 +X509_NAME_VALUE = 6 +X509_NAME = 7 +X509_PUBLIC_KEY_INFO = 8 +X509_AUTHORITY_KEY_ID = 9 +X509_KEY_ATTRIBUTES = 10 +X509_KEY_USAGE_RESTRICTION = 11 +X509_ALTERNATE_NAME = 12 +X509_BASIC_CONSTRAINTS = 13 +X509_KEY_USAGE = 14 +X509_BASIC_CONSTRAINTS2 = 15 +X509_CERT_POLICIES = 16 +PKCS_UTC_TIME = 17 +PKCS_TIME_REQUEST = 18 +RSA_CSP_PUBLICKEYBLOB = 19 +X509_UNICODE_NAME = 20 +X509_KEYGEN_REQUEST_TO_BE_SIGNED = 21 +PKCS_ATTRIBUTE = 22 +PKCS_CONTENT_INFO_SEQUENCE_OF_ANY = 23 +X509_UNICODE_NAME_VALUE = 24 +X509_ANY_STRING = X509_NAME_VALUE +X509_UNICODE_ANY_STRING = X509_UNICODE_NAME_VALUE +X509_OCTET_STRING = 25 +X509_BITS = 26 +X509_INTEGER = 27 +X509_MULTI_BYTE_INTEGER = 28 +X509_ENUMERATED = 29 +X509_CHOICE_OF_TIME = 30 +X509_AUTHORITY_KEY_ID2 = 31 +X509_AUTHORITY_INFO_ACCESS = 32 +X509_SUBJECT_INFO_ACCESS = X509_AUTHORITY_INFO_ACCESS +X509_CRL_REASON_CODE = X509_ENUMERATED +PKCS_CONTENT_INFO = 33 +X509_SEQUENCE_OF_ANY = 34 +X509_CRL_DIST_POINTS = 35 +X509_ENHANCED_KEY_USAGE = 36 +PKCS_CTL = 37 +X509_MULTI_BYTE_UINT = 38 +X509_DSS_PUBLICKEY = X509_MULTI_BYTE_UINT +X509_DSS_PARAMETERS = 39 +X509_DSS_SIGNATURE = 40 +PKCS_RC2_CBC_PARAMETERS = 41 +PKCS_SMIME_CAPABILITIES = 42 +X509_QC_STATEMENTS_EXT = 42 +PKCS_RSA_PRIVATE_KEY = 43 +PKCS_PRIVATE_KEY_INFO = 44 +PKCS_ENCRYPTED_PRIVATE_KEY_INFO = 45 +X509_PKIX_POLICY_QUALIFIER_USERNOTICE = 46 +X509_DH_PUBLICKEY = X509_MULTI_BYTE_UINT +X509_DH_PARAMETERS = 47 +PKCS_ATTRIBUTES = 48 +PKCS_SORTED_CTL = 49 +X509_ECC_SIGNATURE = 47 +X942_DH_PARAMETERS = 50 +X509_BITS_WITHOUT_TRAILING_ZEROES = 51 +X942_OTHER_INFO = 52 +X509_CERT_PAIR = 53 +X509_ISSUING_DIST_POINT = 54 +X509_NAME_CONSTRAINTS = 55 +X509_POLICY_MAPPINGS = 56 +X509_POLICY_CONSTRAINTS = 57 +X509_CROSS_CERT_DIST_POINTS = 58 +CMC_DATA = 59 +CMC_RESPONSE = 60 +CMC_STATUS = 61 +CMC_ADD_EXTENSIONS = 62 +CMC_ADD_ATTRIBUTES = 63 +X509_CERTIFICATE_TEMPLATE = 64 +OCSP_SIGNED_REQUEST = 65 +OCSP_REQUEST = 66 +OCSP_RESPONSE = 67 +OCSP_BASIC_SIGNED_RESPONSE = 68 +OCSP_BASIC_RESPONSE = 69 +X509_LOGOTYPE_EXT = 70 +X509_BIOMETRIC_EXT = 71 +CNG_RSA_PUBLIC_KEY_BLOB = 72 +X509_OBJECT_IDENTIFIER = 73 +X509_ALGORITHM_IDENTIFIER = 74 +PKCS_RSA_SSA_PSS_PARAMETERS = 75 +PKCS_RSAES_OAEP_PARAMETERS = 76 +ECC_CMS_SHARED_INFO = 77 +TIMESTAMP_REQUEST = 78 +TIMESTAMP_RESPONSE = 79 +TIMESTAMP_INFO = 80 +X509_CERT_BUNDLE = 81 +PKCS7_SIGNER_INFO = 500 +CMS_SIGNER_INFO = 501 + +szOID_AUTHORITY_KEY_IDENTIFIER = "2.5.29.1" +szOID_KEY_ATTRIBUTES = "2.5.29.2" +szOID_CERT_POLICIES_95 = "2.5.29.3" +szOID_KEY_USAGE_RESTRICTION = "2.5.29.4" +szOID_SUBJECT_ALT_NAME = "2.5.29.7" +szOID_ISSUER_ALT_NAME = "2.5.29.8" +szOID_BASIC_CONSTRAINTS = "2.5.29.10" +szOID_KEY_USAGE = "2.5.29.15" +szOID_PRIVATEKEY_USAGE_PERIOD = "2.5.29.16" +szOID_BASIC_CONSTRAINTS2 = "2.5.29.19" +szOID_CERT_POLICIES = "2.5.29.32" +szOID_ANY_CERT_POLICY = "2.5.29.32.0" +szOID_AUTHORITY_KEY_IDENTIFIER2 = "2.5.29.35" +szOID_SUBJECT_KEY_IDENTIFIER = "2.5.29.14" +szOID_SUBJECT_ALT_NAME2 = "2.5.29.17" +szOID_ISSUER_ALT_NAME2 = "2.5.29.18" +szOID_CRL_REASON_CODE = "2.5.29.21" +szOID_REASON_CODE_HOLD = "2.5.29.23" +szOID_CRL_DIST_POINTS = "2.5.29.31" +szOID_ENHANCED_KEY_USAGE = "2.5.29.37" +szOID_CRL_NUMBER = "2.5.29.20" +szOID_DELTA_CRL_INDICATOR = "2.5.29.27" +szOID_ISSUING_DIST_POINT = "2.5.29.28" +szOID_FRESHEST_CRL = "2.5.29.46" +szOID_NAME_CONSTRAINTS = "2.5.29.30" +szOID_POLICY_MAPPINGS = "2.5.29.33" +szOID_LEGACY_POLICY_MAPPINGS = "2.5.29.5" +szOID_POLICY_CONSTRAINTS = "2.5.29.36" +szOID_RENEWAL_CERTIFICATE = "1.3.6.1.4.1.311.13.1" +szOID_ENROLLMENT_NAME_VALUE_PAIR = "1.3.6.1.4.1.311.13.2.1" +szOID_ENROLLMENT_CSP_PROVIDER = "1.3.6.1.4.1.311.13.2.2" +szOID_OS_VERSION = "1.3.6.1.4.1.311.13.2.3" +szOID_ENROLLMENT_AGENT = "1.3.6.1.4.1.311.20.2.1" +szOID_PKIX = "1.3.6.1.5.5.7" +szOID_PKIX_PE = "1.3.6.1.5.5.7.1" +szOID_AUTHORITY_INFO_ACCESS = "1.3.6.1.5.5.7.1.1" +szOID_CERT_EXTENSIONS = "1.3.6.1.4.1.311.2.1.14" +szOID_NEXT_UPDATE_LOCATION = "1.3.6.1.4.1.311.10.2" +szOID_REMOVE_CERTIFICATE = "1.3.6.1.4.1.311.10.8.1" +szOID_CROSS_CERT_DIST_POINTS = "1.3.6.1.4.1.311.10.9.1" +szOID_CTL = "1.3.6.1.4.1.311.10.1" +szOID_SORTED_CTL = "1.3.6.1.4.1.311.10.1.1" +szOID_SERIALIZED = "1.3.6.1.4.1.311.10.3.3.1" +szOID_NT_PRINCIPAL_NAME = "1.3.6.1.4.1.311.20.2.3" +szOID_PRODUCT_UPDATE = "1.3.6.1.4.1.311.31.1" +szOID_ANY_APPLICATION_POLICY = "1.3.6.1.4.1.311.10.12.1" +szOID_AUTO_ENROLL_CTL_USAGE = "1.3.6.1.4.1.311.20.1" +szOID_ENROLL_CERTTYPE_EXTENSION = "1.3.6.1.4.1.311.20.2" +szOID_CERT_MANIFOLD = "1.3.6.1.4.1.311.20.3" +szOID_CERTSRV_CA_VERSION = "1.3.6.1.4.1.311.21.1" +szOID_CERTSRV_PREVIOUS_CERT_HASH = "1.3.6.1.4.1.311.21.2" +szOID_CRL_VIRTUAL_BASE = "1.3.6.1.4.1.311.21.3" +szOID_CRL_NEXT_PUBLISH = "1.3.6.1.4.1.311.21.4" +szOID_KP_CA_EXCHANGE = "1.3.6.1.4.1.311.21.5" +szOID_KP_KEY_RECOVERY_AGENT = "1.3.6.1.4.1.311.21.6" +szOID_CERTIFICATE_TEMPLATE = "1.3.6.1.4.1.311.21.7" +szOID_ENTERPRISE_OID_ROOT = "1.3.6.1.4.1.311.21.8" +szOID_RDN_DUMMY_SIGNER = "1.3.6.1.4.1.311.21.9" +szOID_APPLICATION_CERT_POLICIES = "1.3.6.1.4.1.311.21.10" +szOID_APPLICATION_POLICY_MAPPINGS = "1.3.6.1.4.1.311.21.11" +szOID_APPLICATION_POLICY_CONSTRAINTS = "1.3.6.1.4.1.311.21.12" +szOID_ARCHIVED_KEY_ATTR = "1.3.6.1.4.1.311.21.13" +szOID_CRL_SELF_CDP = "1.3.6.1.4.1.311.21.14" +szOID_REQUIRE_CERT_CHAIN_POLICY = "1.3.6.1.4.1.311.21.15" +szOID_ARCHIVED_KEY_CERT_HASH = "1.3.6.1.4.1.311.21.16" +szOID_ISSUED_CERT_HASH = "1.3.6.1.4.1.311.21.17" +szOID_DS_EMAIL_REPLICATION = "1.3.6.1.4.1.311.21.19" +szOID_REQUEST_CLIENT_INFO = "1.3.6.1.4.1.311.21.20" +szOID_ENCRYPTED_KEY_HASH = "1.3.6.1.4.1.311.21.21" +szOID_CERTSRV_CROSSCA_VERSION = "1.3.6.1.4.1.311.21.22" +szOID_NTDS_REPLICATION = "1.3.6.1.4.1.311.25.1" +szOID_SUBJECT_DIR_ATTRS = "2.5.29.9" +szOID_PKIX_KP = "1.3.6.1.5.5.7.3" +szOID_PKIX_KP_SERVER_AUTH = "1.3.6.1.5.5.7.3.1" +szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2" +szOID_PKIX_KP_CODE_SIGNING = "1.3.6.1.5.5.7.3.3" +szOID_PKIX_KP_EMAIL_PROTECTION = "1.3.6.1.5.5.7.3.4" +szOID_PKIX_KP_IPSEC_END_SYSTEM = "1.3.6.1.5.5.7.3.5" +szOID_PKIX_KP_IPSEC_TUNNEL = "1.3.6.1.5.5.7.3.6" +szOID_PKIX_KP_IPSEC_USER = "1.3.6.1.5.5.7.3.7" +szOID_PKIX_KP_TIMESTAMP_SIGNING = "1.3.6.1.5.5.7.3.8" +szOID_IPSEC_KP_IKE_INTERMEDIATE = "1.3.6.1.5.5.8.2.2" +szOID_KP_CTL_USAGE_SIGNING = "1.3.6.1.4.1.311.10.3.1" +szOID_KP_TIME_STAMP_SIGNING = "1.3.6.1.4.1.311.10.3.2" +szOID_SERVER_GATED_CRYPTO = "1.3.6.1.4.1.311.10.3.3" +szOID_SGC_NETSCAPE = "2.16.840.1.113730.4.1" +szOID_KP_EFS = "1.3.6.1.4.1.311.10.3.4" +szOID_EFS_RECOVERY = "1.3.6.1.4.1.311.10.3.4.1" +szOID_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.5" +szOID_NT5_CRYPTO = "1.3.6.1.4.1.311.10.3.6" +szOID_OEM_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.7" +szOID_EMBEDDED_NT_CRYPTO = "1.3.6.1.4.1.311.10.3.8" +szOID_ROOT_LIST_SIGNER = "1.3.6.1.4.1.311.10.3.9" +szOID_KP_QUALIFIED_SUBORDINATION = "1.3.6.1.4.1.311.10.3.10" +szOID_KP_KEY_RECOVERY = "1.3.6.1.4.1.311.10.3.11" +szOID_KP_DOCUMENT_SIGNING = "1.3.6.1.4.1.311.10.3.12" +szOID_KP_LIFETIME_SIGNING = "1.3.6.1.4.1.311.10.3.13" +szOID_KP_MOBILE_DEVICE_SOFTWARE = "1.3.6.1.4.1.311.10.3.14" +szOID_DRM = "1.3.6.1.4.1.311.10.5.1" +szOID_DRM_INDIVIDUALIZATION = "1.3.6.1.4.1.311.10.5.2" +szOID_LICENSES = "1.3.6.1.4.1.311.10.6.1" +szOID_LICENSE_SERVER = "1.3.6.1.4.1.311.10.6.2" +szOID_KP_SMARTCARD_LOGON = "1.3.6.1.4.1.311.20.2.2" +szOID_YESNO_TRUST_ATTR = "1.3.6.1.4.1.311.10.4.1" +szOID_PKIX_POLICY_QUALIFIER_CPS = "1.3.6.1.5.5.7.2.1" +szOID_PKIX_POLICY_QUALIFIER_USERNOTICE = "1.3.6.1.5.5.7.2.2" +szOID_CERT_POLICIES_95_QUALIFIER1 = "2.16.840.1.113733.1.7.1.1" +CERT_UNICODE_RDN_ERR_INDEX_MASK = 0x3FF +CERT_UNICODE_RDN_ERR_INDEX_SHIFT = 22 +CERT_UNICODE_ATTR_ERR_INDEX_MASK = 0x003F +CERT_UNICODE_ATTR_ERR_INDEX_SHIFT = 16 +CERT_UNICODE_VALUE_ERR_INDEX_MASK = 0x0000FFFF +CERT_UNICODE_VALUE_ERR_INDEX_SHIFT = 0 +CERT_DIGITAL_SIGNATURE_KEY_USAGE = 0x80 +CERT_NON_REPUDIATION_KEY_USAGE = 0x40 +CERT_KEY_ENCIPHERMENT_KEY_USAGE = 0x20 +CERT_DATA_ENCIPHERMENT_KEY_USAGE = 0x10 +CERT_KEY_AGREEMENT_KEY_USAGE = 0x08 +CERT_KEY_CERT_SIGN_KEY_USAGE = 0x04 +CERT_OFFLINE_CRL_SIGN_KEY_USAGE = 0x02 +CERT_CRL_SIGN_KEY_USAGE = 0x02 +CERT_ENCIPHER_ONLY_KEY_USAGE = 0x01 +CERT_DECIPHER_ONLY_KEY_USAGE = 0x80 +CERT_ALT_NAME_OTHER_NAME = 1 +CERT_ALT_NAME_RFC822_NAME = 2 +CERT_ALT_NAME_DNS_NAME = 3 +CERT_ALT_NAME_X400_ADDRESS = 4 +CERT_ALT_NAME_DIRECTORY_NAME = 5 +CERT_ALT_NAME_EDI_PARTY_NAME = 6 +CERT_ALT_NAME_URL = 7 +CERT_ALT_NAME_IP_ADDRESS = 8 +CERT_ALT_NAME_REGISTERED_ID = 9 +CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK = 0xFF +CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT = 16 +CERT_ALT_NAME_VALUE_ERR_INDEX_MASK = 0x0000FFFF +CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT = 0 +CERT_CA_SUBJECT_FLAG = 0x80 +CERT_END_ENTITY_SUBJECT_FLAG = 0x40 +szOID_PKIX_ACC_DESCR = "1.3.6.1.5.5.7.48" +szOID_PKIX_OCSP = "1.3.6.1.5.5.7.48.1" +szOID_PKIX_CA_ISSUERS = "1.3.6.1.5.5.7.48.2" +CRL_REASON_UNSPECIFIED = 0 +CRL_REASON_KEY_COMPROMISE = 1 +CRL_REASON_CA_COMPROMISE = 2 +CRL_REASON_AFFILIATION_CHANGED = 3 +CRL_REASON_SUPERSEDED = 4 +CRL_REASON_CESSATION_OF_OPERATION = 5 +CRL_REASON_CERTIFICATE_HOLD = 6 +CRL_REASON_REMOVE_FROM_CRL = 8 +CRL_DIST_POINT_NO_NAME = 0 +CRL_DIST_POINT_FULL_NAME = 1 +CRL_DIST_POINT_ISSUER_RDN_NAME = 2 +CRL_REASON_UNUSED_FLAG = 0x80 +CRL_REASON_KEY_COMPROMISE_FLAG = 0x40 +CRL_REASON_CA_COMPROMISE_FLAG = 0x20 +CRL_REASON_AFFILIATION_CHANGED_FLAG = 0x10 +CRL_REASON_SUPERSEDED_FLAG = 0x08 +CRL_REASON_CESSATION_OF_OPERATION_FLAG = 0x04 +CRL_REASON_CERTIFICATE_HOLD_FLAG = 0x02 +CRL_DIST_POINT_ERR_INDEX_MASK = 0x7F +CRL_DIST_POINT_ERR_INDEX_SHIFT = 24 + +CRL_DIST_POINT_ERR_CRL_ISSUER_BIT = (-2147483648) + +CROSS_CERT_DIST_POINT_ERR_INDEX_MASK = 0xFF +CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT = 24 + +CERT_EXCLUDED_SUBTREE_BIT = (-2147483648) + +SORTED_CTL_EXT_FLAGS_OFFSET = (0*4) +SORTED_CTL_EXT_COUNT_OFFSET = (1*4) +SORTED_CTL_EXT_MAX_COLLISION_OFFSET = (2*4) +SORTED_CTL_EXT_HASH_BUCKET_OFFSET = (3*4) +SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x1 +CERT_DSS_R_LEN = 20 +CERT_DSS_S_LEN = 20 +CERT_DSS_SIGNATURE_LEN = (CERT_DSS_R_LEN + CERT_DSS_S_LEN) +CERT_MAX_ASN_ENCODED_DSS_SIGNATURE_LEN = (2 + 2*(2 + 20 +1)) +CRYPT_X942_COUNTER_BYTE_LENGTH = 4 +CRYPT_X942_KEY_LENGTH_BYTE_LENGTH = 4 +CRYPT_X942_PUB_INFO_BYTE_LENGTH = (512/8) +CRYPT_RC2_40BIT_VERSION = 160 +CRYPT_RC2_56BIT_VERSION = 52 +CRYPT_RC2_64BIT_VERSION = 120 +CRYPT_RC2_128BIT_VERSION = 58 +szOID_VERISIGN_PRIVATE_6_9 = "2.16.840.1.113733.1.6.9" +szOID_VERISIGN_ONSITE_JURISDICTION_HASH = "2.16.840.1.113733.1.6.11" +szOID_VERISIGN_BITSTRING_6_13 = "2.16.840.1.113733.1.6.13" +szOID_VERISIGN_ISS_STRONG_CRYPTO = "2.16.840.1.113733.1.8.1" +szOID_NETSCAPE = "2.16.840.1.113730" +szOID_NETSCAPE_CERT_EXTENSION = "2.16.840.1.113730.1" +szOID_NETSCAPE_CERT_TYPE = "2.16.840.1.113730.1.1" +szOID_NETSCAPE_BASE_URL = "2.16.840.1.113730.1.2" +szOID_NETSCAPE_REVOCATION_URL = "2.16.840.1.113730.1.3" +szOID_NETSCAPE_CA_REVOCATION_URL = "2.16.840.1.113730.1.4" +szOID_NETSCAPE_CERT_RENEWAL_URL = "2.16.840.1.113730.1.7" +szOID_NETSCAPE_CA_POLICY_URL = "2.16.840.1.113730.1.8" +szOID_NETSCAPE_SSL_SERVER_NAME = "2.16.840.1.113730.1.12" +szOID_NETSCAPE_COMMENT = "2.16.840.1.113730.1.13" +szOID_NETSCAPE_DATA_TYPE = "2.16.840.1.113730.2" +szOID_NETSCAPE_CERT_SEQUENCE = "2.16.840.1.113730.2.5" +NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE = 0x80 +NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE = 0x40 +NETSCAPE_SMIME_CERT_TYPE = 0x20 +NETSCAPE_SIGN_CERT_TYPE = 0x10 +NETSCAPE_SSL_CA_CERT_TYPE = 0x04 +NETSCAPE_SMIME_CA_CERT_TYPE = 0x02 +NETSCAPE_SIGN_CA_CERT_TYPE = 0x01 +szOID_CT_PKI_DATA = "1.3.6.1.5.5.7.12.2" +szOID_CT_PKI_RESPONSE = "1.3.6.1.5.5.7.12.3" +szOID_PKIX_NO_SIGNATURE = "1.3.6.1.5.5.7.6.2" +szOID_CMC = "1.3.6.1.5.5.7.7" +szOID_CMC_STATUS_INFO = "1.3.6.1.5.5.7.7.1" +szOID_CMC_IDENTIFICATION = "1.3.6.1.5.5.7.7.2" +szOID_CMC_IDENTITY_PROOF = "1.3.6.1.5.5.7.7.3" +szOID_CMC_DATA_RETURN = "1.3.6.1.5.5.7.7.4" +szOID_CMC_TRANSACTION_ID = "1.3.6.1.5.5.7.7.5" +szOID_CMC_SENDER_NONCE = "1.3.6.1.5.5.7.7.6" +szOID_CMC_RECIPIENT_NONCE = "1.3.6.1.5.5.7.7.7" +szOID_CMC_ADD_EXTENSIONS = "1.3.6.1.5.5.7.7.8" +szOID_CMC_ENCRYPTED_POP = "1.3.6.1.5.5.7.7.9" +szOID_CMC_DECRYPTED_POP = "1.3.6.1.5.5.7.7.10" +szOID_CMC_LRA_POP_WITNESS = "1.3.6.1.5.5.7.7.11" +szOID_CMC_GET_CERT = "1.3.6.1.5.5.7.7.15" +szOID_CMC_GET_CRL = "1.3.6.1.5.5.7.7.16" +szOID_CMC_REVOKE_REQUEST = "1.3.6.1.5.5.7.7.17" +szOID_CMC_REG_INFO = "1.3.6.1.5.5.7.7.18" +szOID_CMC_RESPONSE_INFO = "1.3.6.1.5.5.7.7.19" +szOID_CMC_QUERY_PENDING = "1.3.6.1.5.5.7.7.21" +szOID_CMC_ID_POP_LINK_RANDOM = "1.3.6.1.5.5.7.7.22" +szOID_CMC_ID_POP_LINK_WITNESS = "1.3.6.1.5.5.7.7.23" +szOID_CMC_ID_CONFIRM_CERT_ACCEPTANCE = "1.3.6.1.5.5.7.7.24" +szOID_CMC_ADD_ATTRIBUTES = "1.3.6.1.4.1.311.10.10.1" +CMC_TAGGED_CERT_REQUEST_CHOICE = 1 +CMC_OTHER_INFO_NO_CHOICE = 0 +CMC_OTHER_INFO_FAIL_CHOICE = 1 +CMC_OTHER_INFO_PEND_CHOICE = 2 +CMC_STATUS_SUCCESS = 0 +CMC_STATUS_FAILED = 2 +CMC_STATUS_PENDING = 3 +CMC_STATUS_NO_SUPPORT = 4 +CMC_STATUS_CONFIRM_REQUIRED = 5 +CMC_FAIL_BAD_ALG = 0 +CMC_FAIL_BAD_MESSAGE_CHECK = 1 +CMC_FAIL_BAD_REQUEST = 2 +CMC_FAIL_BAD_TIME = 3 +CMC_FAIL_BAD_CERT_ID = 4 +CMC_FAIL_UNSUPORTED_EXT = 5 +CMC_FAIL_MUST_ARCHIVE_KEYS = 6 +CMC_FAIL_BAD_IDENTITY = 7 +CMC_FAIL_POP_REQUIRED = 8 +CMC_FAIL_POP_FAILED = 9 +CMC_FAIL_NO_KEY_REUSE = 10 +CMC_FAIL_INTERNAL_CA_ERROR = 11 +CMC_FAIL_TRY_LATER = 12 +CRYPT_OID_ENCODE_OBJECT_FUNC = "CryptDllEncodeObject" +CRYPT_OID_DECODE_OBJECT_FUNC = "CryptDllDecodeObject" +CRYPT_OID_ENCODE_OBJECT_EX_FUNC = "CryptDllEncodeObjectEx" +CRYPT_OID_DECODE_OBJECT_EX_FUNC = "CryptDllDecodeObjectEx" +CRYPT_OID_CREATE_COM_OBJECT_FUNC = "CryptDllCreateCOMObject" +CRYPT_OID_VERIFY_REVOCATION_FUNC = "CertDllVerifyRevocation" +CRYPT_OID_VERIFY_CTL_USAGE_FUNC = "CertDllVerifyCTLUsage" +CRYPT_OID_FORMAT_OBJECT_FUNC = "CryptDllFormatObject" +CRYPT_OID_FIND_OID_INFO_FUNC = "CryptDllFindOIDInfo" +CRYPT_OID_FIND_LOCALIZED_NAME_FUNC = "CryptDllFindLocalizedName" + +CRYPT_OID_REGPATH = "Software\\Microsoft\\Cryptography\\OID" +CRYPT_OID_REG_ENCODING_TYPE_PREFIX = "EncodingType " +CRYPT_OID_REG_DLL_VALUE_NAME = "Dll" +CRYPT_OID_REG_FUNC_NAME_VALUE_NAME = "FuncName" +CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A = "FuncName" +CRYPT_OID_REG_FLAGS_VALUE_NAME = "CryptFlags" +CRYPT_DEFAULT_OID = "DEFAULT" +CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG = 1 +CRYPT_GET_INSTALLED_OID_FUNC_FLAG = 0x1 +CRYPT_REGISTER_FIRST_INDEX = 0 +CRYPT_REGISTER_LAST_INDEX = (-1) +CRYPT_MATCH_ANY_ENCODING_TYPE = (-1) +CRYPT_HASH_ALG_OID_GROUP_ID = 1 +CRYPT_ENCRYPT_ALG_OID_GROUP_ID = 2 +CRYPT_PUBKEY_ALG_OID_GROUP_ID = 3 +CRYPT_SIGN_ALG_OID_GROUP_ID = 4 +CRYPT_RDN_ATTR_OID_GROUP_ID = 5 +CRYPT_EXT_OR_ATTR_OID_GROUP_ID = 6 +CRYPT_ENHKEY_USAGE_OID_GROUP_ID = 7 +CRYPT_POLICY_OID_GROUP_ID = 8 +CRYPT_TEMPLATE_OID_GROUP_ID = 9 +CRYPT_LAST_OID_GROUP_ID = 9 +CRYPT_FIRST_ALG_OID_GROUP_ID = CRYPT_HASH_ALG_OID_GROUP_ID +CRYPT_LAST_ALG_OID_GROUP_ID = CRYPT_SIGN_ALG_OID_GROUP_ID +CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG = 0x1 +CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG = 0x2 +CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG = 0x4 +CRYPT_OID_INFO_OID_KEY = 1 +CRYPT_OID_INFO_NAME_KEY = 2 +CRYPT_OID_INFO_ALGID_KEY = 3 +CRYPT_OID_INFO_SIGN_KEY = 4 +CRYPT_INSTALL_OID_INFO_BEFORE_FLAG = 1 +CRYPT_LOCALIZED_NAME_ENCODING_TYPE = 0 +CRYPT_LOCALIZED_NAME_OID = "LocalizedNames" +szOID_PKCS_7_DATA = "1.2.840.113549.1.7.1" +szOID_PKCS_7_SIGNED = "1.2.840.113549.1.7.2" +szOID_PKCS_7_ENVELOPED = "1.2.840.113549.1.7.3" +szOID_PKCS_7_SIGNEDANDENVELOPED = "1.2.840.113549.1.7.4" +szOID_PKCS_7_DIGESTED = "1.2.840.113549.1.7.5" +szOID_PKCS_7_ENCRYPTED = "1.2.840.113549.1.7.6" +szOID_PKCS_9_CONTENT_TYPE = "1.2.840.113549.1.9.3" +szOID_PKCS_9_MESSAGE_DIGEST = "1.2.840.113549.1.9.4" +CMSG_DATA = 1 +CMSG_SIGNED = 2 +CMSG_ENVELOPED = 3 +CMSG_SIGNED_AND_ENVELOPED = 4 +CMSG_HASHED = 5 +CMSG_ENCRYPTED = 6 + +CMSG_ALL_FLAGS = -1 +CMSG_DATA_FLAG = (1 << CMSG_DATA) +CMSG_SIGNED_FLAG = (1 << CMSG_SIGNED) +CMSG_ENVELOPED_FLAG = (1 << CMSG_ENVELOPED) +CMSG_SIGNED_AND_ENVELOPED_FLAG = (1 << CMSG_SIGNED_AND_ENVELOPED) +CMSG_HASHED_FLAG = (1 << CMSG_HASHED) +CMSG_ENCRYPTED_FLAG = (1 << CMSG_ENCRYPTED) +CERT_ID_ISSUER_SERIAL_NUMBER = 1 +CERT_ID_KEY_IDENTIFIER = 2 +CERT_ID_SHA1_HASH = 3 +CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE = 1 +CMSG_KEY_AGREE_STATIC_KEY_CHOICE = 2 +CMSG_MAIL_LIST_HANDLE_KEY_CHOICE = 1 +CMSG_KEY_TRANS_RECIPIENT = 1 +CMSG_KEY_AGREE_RECIPIENT = 2 +CMSG_MAIL_LIST_RECIPIENT = 3 +CMSG_SP3_COMPATIBLE_ENCRYPT_FLAG = (-2147483648) +CMSG_RC4_NO_SALT_FLAG = 0x40000000 +CMSG_INDEFINITE_LENGTH = ((-1)) +CMSG_BARE_CONTENT_FLAG = 0x00000001 +CMSG_LENGTH_ONLY_FLAG = 0x00000002 +CMSG_DETACHED_FLAG = 0x00000004 +CMSG_AUTHENTICATED_ATTRIBUTES_FLAG = 0x00000008 +CMSG_CONTENTS_OCTETS_FLAG = 0x00000010 +CMSG_MAX_LENGTH_FLAG = 0x00000020 +CMSG_CMS_ENCAPSULATED_CONTENT_FLAG = 0x00000040 +CMSG_CRYPT_RELEASE_CONTEXT_FLAG = 0x00008000 +CMSG_TYPE_PARAM = 1 +CMSG_CONTENT_PARAM = 2 +CMSG_BARE_CONTENT_PARAM = 3 +CMSG_INNER_CONTENT_TYPE_PARAM = 4 +CMSG_SIGNER_COUNT_PARAM = 5 +CMSG_SIGNER_INFO_PARAM = 6 +CMSG_SIGNER_CERT_INFO_PARAM = 7 +CMSG_SIGNER_HASH_ALGORITHM_PARAM = 8 +CMSG_SIGNER_AUTH_ATTR_PARAM = 9 +CMSG_SIGNER_UNAUTH_ATTR_PARAM = 10 +CMSG_CERT_COUNT_PARAM = 11 +CMSG_CERT_PARAM = 12 +CMSG_CRL_COUNT_PARAM = 13 +CMSG_CRL_PARAM = 14 +CMSG_ENVELOPE_ALGORITHM_PARAM = 15 +CMSG_RECIPIENT_COUNT_PARAM = 17 +CMSG_RECIPIENT_INDEX_PARAM = 18 +CMSG_RECIPIENT_INFO_PARAM = 19 +CMSG_HASH_ALGORITHM_PARAM = 20 +CMSG_HASH_DATA_PARAM = 21 +CMSG_COMPUTED_HASH_PARAM = 22 +CMSG_ENCRYPT_PARAM = 26 +CMSG_ENCRYPTED_DIGEST = 27 +CMSG_ENCODED_SIGNER = 28 +CMSG_ENCODED_MESSAGE = 29 +CMSG_VERSION_PARAM = 30 +CMSG_ATTR_CERT_COUNT_PARAM = 31 +CMSG_ATTR_CERT_PARAM = 32 +CMSG_CMS_RECIPIENT_COUNT_PARAM = 33 +CMSG_CMS_RECIPIENT_INDEX_PARAM = 34 +CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM = 35 +CMSG_CMS_RECIPIENT_INFO_PARAM = 36 +CMSG_UNPROTECTED_ATTR_PARAM = 37 +CMSG_SIGNER_CERT_ID_PARAM = 38 +CMSG_CMS_SIGNER_INFO_PARAM = 39 +CMSG_SIGNED_DATA_V1 = 1 +CMSG_SIGNED_DATA_V3 = 3 +CMSG_SIGNED_DATA_PKCS_1_5_VERSION = CMSG_SIGNED_DATA_V1 +CMSG_SIGNED_DATA_CMS_VERSION = CMSG_SIGNED_DATA_V3 +CMSG_SIGNER_INFO_V1 = 1 +CMSG_SIGNER_INFO_V3 = 3 +CMSG_SIGNER_INFO_PKCS_1_5_VERSION = CMSG_SIGNER_INFO_V1 +CMSG_SIGNER_INFO_CMS_VERSION = CMSG_SIGNER_INFO_V3 +CMSG_HASHED_DATA_V0 = 0 +CMSG_HASHED_DATA_V2 = 2 +CMSG_HASHED_DATA_PKCS_1_5_VERSION = CMSG_HASHED_DATA_V0 +CMSG_HASHED_DATA_CMS_VERSION = CMSG_HASHED_DATA_V2 +CMSG_ENVELOPED_DATA_V0 = 0 +CMSG_ENVELOPED_DATA_V2 = 2 +CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION = CMSG_ENVELOPED_DATA_V0 +CMSG_ENVELOPED_DATA_CMS_VERSION = CMSG_ENVELOPED_DATA_V2 +CMSG_KEY_AGREE_ORIGINATOR_CERT = 1 +CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY = 2 +CMSG_ENVELOPED_RECIPIENT_V0 = 0 +CMSG_ENVELOPED_RECIPIENT_V2 = 2 +CMSG_ENVELOPED_RECIPIENT_V3 = 3 +CMSG_ENVELOPED_RECIPIENT_V4 = 4 +CMSG_KEY_TRANS_PKCS_1_5_VERSION = CMSG_ENVELOPED_RECIPIENT_V0 +CMSG_KEY_TRANS_CMS_VERSION = CMSG_ENVELOPED_RECIPIENT_V2 +CMSG_KEY_AGREE_VERSION = CMSG_ENVELOPED_RECIPIENT_V3 +CMSG_MAIL_LIST_VERSION = CMSG_ENVELOPED_RECIPIENT_V4 +CMSG_CTRL_VERIFY_SIGNATURE = 1 +CMSG_CTRL_DECRYPT = 2 +CMSG_CTRL_VERIFY_HASH = 5 +CMSG_CTRL_ADD_SIGNER = 6 +CMSG_CTRL_DEL_SIGNER = 7 +CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR = 8 +CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR = 9 +CMSG_CTRL_ADD_CERT = 10 +CMSG_CTRL_DEL_CERT = 11 +CMSG_CTRL_ADD_CRL = 12 +CMSG_CTRL_DEL_CRL = 13 +CMSG_CTRL_ADD_ATTR_CERT = 14 +CMSG_CTRL_DEL_ATTR_CERT = 15 +CMSG_CTRL_KEY_TRANS_DECRYPT = 16 +CMSG_CTRL_KEY_AGREE_DECRYPT = 17 +CMSG_CTRL_MAIL_LIST_DECRYPT = 18 +CMSG_CTRL_VERIFY_SIGNATURE_EX = 19 +CMSG_CTRL_ADD_CMS_SIGNER_INFO = 20 +CMSG_VERIFY_SIGNER_PUBKEY = 1 +CMSG_VERIFY_SIGNER_CERT = 2 +CMSG_VERIFY_SIGNER_CHAIN = 3 +CMSG_VERIFY_SIGNER_NULL = 4 +CMSG_OID_GEN_ENCRYPT_KEY_FUNC = "CryptMsgDllGenEncryptKey" +CMSG_OID_EXPORT_ENCRYPT_KEY_FUNC = "CryptMsgDllExportEncryptKey" +CMSG_OID_IMPORT_ENCRYPT_KEY_FUNC = "CryptMsgDllImportEncryptKey" +CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG = 0x00000001 +CMSG_DEFAULT_INSTALLABLE_FUNC_OID = 1 +CMSG_CONTENT_ENCRYPT_FREE_PARA_FLAG = 0x00000001 +CMSG_CONTENT_ENCRYPT_RELEASE_CONTEXT_FLAG = 0x00008000 +CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC = "CryptMsgDllGenContentEncryptKey" +CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG = 0x00000001 +CMSG_OID_EXPORT_KEY_TRANS_FUNC = "CryptMsgDllExportKeyTrans" +CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG = 0x00000001 +CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG = 0x00000002 +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG = 0x00000004 +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG = 0x00000008 +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG = 0x00000010 +CMSG_OID_EXPORT_KEY_AGREE_FUNC = "CryptMsgDllExportKeyAgree" +CMSG_MAIL_LIST_ENCRYPT_FREE_PARA_FLAG = 0x00000001 +CMSG_OID_EXPORT_MAIL_LIST_FUNC = "CryptMsgDllExportMailList" +CMSG_OID_IMPORT_KEY_TRANS_FUNC = "CryptMsgDllImportKeyTrans" +CMSG_OID_IMPORT_KEY_AGREE_FUNC = "CryptMsgDllImportKeyAgree" +CMSG_OID_IMPORT_MAIL_LIST_FUNC = "CryptMsgDllImportMailList" + +# Certificate property id's used with CertGetCertificateContextProperty +CERT_KEY_PROV_HANDLE_PROP_ID = 1 +CERT_KEY_PROV_INFO_PROP_ID = 2 +CERT_SHA1_HASH_PROP_ID = 3 +CERT_MD5_HASH_PROP_ID = 4 +CERT_HASH_PROP_ID = CERT_SHA1_HASH_PROP_ID +CERT_KEY_CONTEXT_PROP_ID = 5 +CERT_KEY_SPEC_PROP_ID = 6 +CERT_IE30_RESERVED_PROP_ID = 7 +CERT_PUBKEY_HASH_RESERVED_PROP_ID = 8 +CERT_ENHKEY_USAGE_PROP_ID = 9 +CERT_CTL_USAGE_PROP_ID = CERT_ENHKEY_USAGE_PROP_ID +CERT_NEXT_UPDATE_LOCATION_PROP_ID = 10 +CERT_FRIENDLY_NAME_PROP_ID = 11 +CERT_PVK_FILE_PROP_ID = 12 +CERT_DESCRIPTION_PROP_ID = 13 +CERT_ACCESS_STATE_PROP_ID = 14 +CERT_SIGNATURE_HASH_PROP_ID = 15 +CERT_SMART_CARD_DATA_PROP_ID = 16 +CERT_EFS_PROP_ID = 17 +CERT_FORTEZZA_DATA_PROP_ID = 18 +CERT_ARCHIVED_PROP_ID = 19 +CERT_KEY_IDENTIFIER_PROP_ID = 20 +CERT_AUTO_ENROLL_PROP_ID = 21 +CERT_PUBKEY_ALG_PARA_PROP_ID = 22 +CERT_CROSS_CERT_DIST_POINTS_PROP_ID = 23 +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID = 24 +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID = 25 +CERT_ENROLLMENT_PROP_ID = 26 +CERT_DATE_STAMP_PROP_ID = 27 +CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = 28 +CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = 29 +CERT_EXTENDED_ERROR_INFO_PROP_ID = 30 +CERT_RENEWAL_PROP_ID = 64 +CERT_ARCHIVED_KEY_HASH_PROP_ID = 65 +CERT_AUTO_ENROLL_RETRY_PROP_ID = 66 +CERT_AIA_URL_RETRIEVED_PROP_ID = 67 +CERT_AUTHORITY_INFO_ACCESS_PROP_ID = 68 +CERT_BACKED_UP_PROP_ID = 69 +CERT_OCSP_RESPONSE_PROP_ID = 70 +CERT_REQUEST_ORIGINATOR_PROP_ID = 71 +CERT_SOURCE_LOCATION_PROP_ID = 72 +CERT_SOURCE_URL_PROP_ID = 73 +CERT_NEW_KEY_PROP_ID = 74 +CERT_OCSP_CACHE_PREFIX_PROP_ID = 75 +CERT_SMART_CARD_ROOT_INFO_PROP_ID = 76 +CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID = 77 +CERT_NCRYPT_KEY_HANDLE_PROP_ID = 78 +CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID = 79 +CERT_SUBJECT_INFO_ACCESS_PROP_ID = 80 +CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID = 81 +CERT_CA_DISABLE_CRL_PROP_ID = 82 +CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID = 83 +CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID = 84 +CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID = 85 +CERT_SUBJECT_DISABLE_CRL_PROP_ID = 86 +CERT_CEP_PROP_ID = 87 +CERT_SIGN_HASH_CNG_ALG_PROP_ID = 89 +CERT_SCARD_PIN_ID_PROP_ID = 90 +CERT_SCARD_PIN_INFO_PROP_ID = 91 +CERT_FIRST_RESERVED_PROP_ID = 92 +CERT_LAST_RESERVED_PROP_ID = 0x00007FFF +CERT_FIRST_USER_PROP_ID = 0x00008000 +CERT_LAST_USER_PROP_ID = 0x0000FFFF + +szOID_CERT_PROP_ID_PREFIX = "1.3.6.1.4.1.311.10.11." +szOID_CERT_KEY_IDENTIFIER_PROP_ID = "1.3.6.1.4.1.311.10.11.20" +szOID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = \ + "1.3.6.1.4.1.311.10.11.28" +szOID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = \ + "1.3.6.1.4.1.311.10.11.29" +CERT_ACCESS_STATE_WRITE_PERSIST_FLAG = 0x1 +CERT_ACCESS_STATE_SYSTEM_STORE_FLAG = 0x2 +CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG = 0x4 +CERT_SET_KEY_PROV_HANDLE_PROP_ID = 0x00000001 +CERT_SET_KEY_CONTEXT_PROP_ID = 0x00000001 +sz_CERT_STORE_PROV_MEMORY = "Memory" +sz_CERT_STORE_PROV_FILENAME_W = "File" +sz_CERT_STORE_PROV_FILENAME = sz_CERT_STORE_PROV_FILENAME_W +sz_CERT_STORE_PROV_SYSTEM_W = "System" +sz_CERT_STORE_PROV_SYSTEM = sz_CERT_STORE_PROV_SYSTEM_W +sz_CERT_STORE_PROV_PKCS7 = "PKCS7" +sz_CERT_STORE_PROV_SERIALIZED = "Serialized" +sz_CERT_STORE_PROV_COLLECTION = "Collection" +sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W = "SystemRegistry" +sz_CERT_STORE_PROV_SYSTEM_REGISTRY = sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W +sz_CERT_STORE_PROV_PHYSICAL_W = "Physical" +sz_CERT_STORE_PROV_PHYSICAL = sz_CERT_STORE_PROV_PHYSICAL_W +sz_CERT_STORE_PROV_SMART_CARD_W = "SmartCard" +sz_CERT_STORE_PROV_SMART_CARD = sz_CERT_STORE_PROV_SMART_CARD_W +sz_CERT_STORE_PROV_LDAP_W = "Ldap" +sz_CERT_STORE_PROV_LDAP = sz_CERT_STORE_PROV_LDAP_W +CERT_STORE_SIGNATURE_FLAG = 0x00000001 +CERT_STORE_TIME_VALIDITY_FLAG = 0x00000002 +CERT_STORE_REVOCATION_FLAG = 0x00000004 +CERT_STORE_NO_CRL_FLAG = 0x00010000 +CERT_STORE_NO_ISSUER_FLAG = 0x00020000 +CERT_STORE_BASE_CRL_FLAG = 0x00000100 +CERT_STORE_DELTA_CRL_FLAG = 0x00000200 +CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 +CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 +CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 +CERT_STORE_DELETE_FLAG = 0x00000010 +CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 +CERT_STORE_SHARE_STORE_FLAG = 0x00000040 +CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 +CERT_STORE_MANIFOLD_FLAG = 0x00000100 +CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 +CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 +CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 +CERT_STORE_READONLY_FLAG = 0x00008000 +CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 +CERT_STORE_CREATE_NEW_FLAG = 0x00002000 +CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 +CERT_SYSTEM_STORE_MASK = (-65536) +CERT_SYSTEM_STORE_RELOCATE_FLAG = (-2147483648) +CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 +CERT_SYSTEM_STORE_LOCATION_MASK = 0x00FF0000 +CERT_SYSTEM_STORE_LOCATION_SHIFT = 16 +CERT_SYSTEM_STORE_CURRENT_USER_ID = 1 +CERT_SYSTEM_STORE_LOCAL_MACHINE_ID = 2 +CERT_SYSTEM_STORE_CURRENT_SERVICE_ID = 4 +CERT_SYSTEM_STORE_SERVICES_ID = 5 +CERT_SYSTEM_STORE_USERS_ID = 6 +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID = 7 +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID = 8 +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID = 9 +CERT_SYSTEM_STORE_CURRENT_USER = \ + (CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_LOCAL_MACHINE = \ + (CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_CURRENT_SERVICE = \ + (CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_SERVICES = \ + (CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_USERS = \ + (CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = \ + (CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << \ + CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = \ + (CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << \ + CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = \ + (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << \ + CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG = 0x1 +CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG = 0x2 +CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG = 0x4 +CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG = 0x8 +CERT_PROT_ROOT_ONLY_LM_GPT_FLAG = 0x8 +CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG = 0x10 +CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG = 0x20 +CERT_TRUST_PUB_ALLOW_TRUST_MASK = 0x00000003 +CERT_TRUST_PUB_ALLOW_END_USER_TRUST = 0x00000000 +CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST = 0x00000001 +CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST = 0x00000002 +CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG = 0x00000100 +CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG = 0x00000200 + +CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH = r"Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate" +CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG = 0x1 +CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_PARTIAL_CHAIN_LOGGING_FLAG = 0x2 +CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME = "RootDirUrl" +CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME = "SyncDeltaTime" +CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME = "Flags" +CERT_AUTH_ROOT_CTL_FILENAME = "authroot.stl" +CERT_AUTH_ROOT_CTL_FILENAME_A = "authroot.stl" +CERT_AUTH_ROOT_CAB_FILENAME = "authrootstl.cab" +CERT_AUTH_ROOT_SEQ_FILENAME = "authrootseq.txt" +CERT_AUTH_ROOT_CERT_EXT = ".crt" + +CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH = r"Software\Policies\Microsoft\SystemCertificates" +CERT_EFSBLOB_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\EFS" +CERT_EFSBLOB_VALUE_NAME = "EFSBlob" +CERT_PROT_ROOT_FLAGS_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH +r"\Root\ProtectedRoots" +CERT_PROT_ROOT_FLAGS_VALUE_NAME = "Flags" +CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\TrustedPublisher\Safer" +CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH = r"Software\Microsoft\SystemCertificates" +CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH + r"\TrustedPublisher\Safer" +CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME = "AuthenticodeFlags" +CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OC Manager\Subcomponents" +CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME = r"RootAutoUpdate" +CERT_DISABLE_ROOT_AUTO_UPDATE_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\AuthRoot" +CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME = "DisableRootAutoUpdate" +CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH + r"\AuthRoot\AutoUpdate" + +CERT_REGISTRY_STORE_REMOTE_FLAG = 0x10000 +CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x20000 +CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = (-2147483648) +CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 +CERT_REGISTRY_STORE_ROAMING_FLAG = 0x40000 +CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x80000 +CERT_IE_DIRTY_FLAGS_REGPATH = r"Software\Microsoft\Cryptography\IEDirtyFlags" + +CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x10000 +CERT_LDAP_STORE_SIGN_FLAG = 0x10000 +CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x20000 +CERT_LDAP_STORE_OPENED_FLAG = 0x40000 +CERT_LDAP_STORE_UNBIND_FLAG = 0x80000 +CRYPT_OID_OPEN_STORE_PROV_FUNC = "CertDllOpenStoreProv" + +CERT_STORE_PROV_EXTERNAL_FLAG = 0x1 +CERT_STORE_PROV_DELETED_FLAG = 0x2 +CERT_STORE_PROV_NO_PERSIST_FLAG = 0x4 +CERT_STORE_PROV_SYSTEM_STORE_FLAG = 0x8 +CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG = 0x10 +CERT_STORE_PROV_CLOSE_FUNC = 0 +CERT_STORE_PROV_READ_CERT_FUNC = 1 +CERT_STORE_PROV_WRITE_CERT_FUNC = 2 +CERT_STORE_PROV_DELETE_CERT_FUNC = 3 +CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC = 4 +CERT_STORE_PROV_READ_CRL_FUNC = 5 +CERT_STORE_PROV_WRITE_CRL_FUNC = 6 +CERT_STORE_PROV_DELETE_CRL_FUNC = 7 +CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC = 8 +CERT_STORE_PROV_READ_CTL_FUNC = 9 +CERT_STORE_PROV_WRITE_CTL_FUNC = 10 +CERT_STORE_PROV_DELETE_CTL_FUNC = 11 +CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC = 12 +CERT_STORE_PROV_CONTROL_FUNC = 13 +CERT_STORE_PROV_FIND_CERT_FUNC = 14 +CERT_STORE_PROV_FREE_FIND_CERT_FUNC = 15 +CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC = 16 +CERT_STORE_PROV_FIND_CRL_FUNC = 17 +CERT_STORE_PROV_FREE_FIND_CRL_FUNC = 18 +CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC = 19 +CERT_STORE_PROV_FIND_CTL_FUNC = 20 +CERT_STORE_PROV_FREE_FIND_CTL_FUNC = 21 +CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC = 22 +CERT_STORE_PROV_WRITE_ADD_FLAG = 0x1 +CERT_STORE_SAVE_AS_STORE = 1 +CERT_STORE_SAVE_AS_PKCS7 = 2 +CERT_STORE_SAVE_TO_FILE = 1 +CERT_STORE_SAVE_TO_MEMORY = 2 +CERT_STORE_SAVE_TO_FILENAME_A = 3 +CERT_STORE_SAVE_TO_FILENAME_W = 4 +CERT_STORE_SAVE_TO_FILENAME = CERT_STORE_SAVE_TO_FILENAME_W +CERT_CLOSE_STORE_FORCE_FLAG = 0x00000001 +CERT_CLOSE_STORE_CHECK_FLAG = 0x00000002 +CERT_COMPARE_MASK = 0xFFFF +CERT_COMPARE_SHIFT = 16 +CERT_COMPARE_ANY = 0 +CERT_COMPARE_SHA1_HASH = 1 +CERT_COMPARE_NAME = 2 +CERT_COMPARE_ATTR = 3 +CERT_COMPARE_MD5_HASH = 4 +CERT_COMPARE_PROPERTY = 5 +CERT_COMPARE_PUBLIC_KEY = 6 +CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH +CERT_COMPARE_NAME_STR_A = 7 +CERT_COMPARE_NAME_STR_W = 8 +CERT_COMPARE_KEY_SPEC = 9 +CERT_COMPARE_ENHKEY_USAGE = 10 +CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE +CERT_COMPARE_SUBJECT_CERT = 11 +CERT_COMPARE_ISSUER_OF = 12 +CERT_COMPARE_EXISTING = 13 +CERT_COMPARE_SIGNATURE_HASH = 14 +CERT_COMPARE_KEY_IDENTIFIER = 15 +CERT_COMPARE_CERT_ID = 16 +CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 +CERT_COMPARE_PUBKEY_MD5_HASH = 18 +CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) +CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) +CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) +CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) +CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) +CERT_FIND_HASH = CERT_FIND_SHA1_HASH +CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) +CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) +CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | \ + CERT_INFO_SUBJECT_FLAG) +CERT_FIND_SUBJECT_ATTR = (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | \ + CERT_INFO_SUBJECT_FLAG) +CERT_FIND_ISSUER_NAME = (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | \ + CERT_INFO_ISSUER_FLAG) +CERT_FIND_ISSUER_ATTR = (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | \ + CERT_INFO_ISSUER_FLAG) +CERT_FIND_SUBJECT_STR_A = (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | \ + CERT_INFO_SUBJECT_FLAG) +CERT_FIND_SUBJECT_STR_W = (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | \ + CERT_INFO_SUBJECT_FLAG) +CERT_FIND_SUBJECT_STR = CERT_FIND_SUBJECT_STR_W +CERT_FIND_ISSUER_STR_A = (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | \ + CERT_INFO_ISSUER_FLAG) +CERT_FIND_ISSUER_STR_W = (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | \ + CERT_INFO_ISSUER_FLAG) +CERT_FIND_ISSUER_STR = CERT_FIND_ISSUER_STR_W +CERT_FIND_KEY_SPEC = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT) +CERT_FIND_ENHKEY_USAGE = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT) +CERT_FIND_CTL_USAGE = CERT_FIND_ENHKEY_USAGE +CERT_FIND_SUBJECT_CERT = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT) +CERT_FIND_ISSUER_OF = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT) +CERT_FIND_EXISTING = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT) +CERT_FIND_CERT_ID = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT) +CERT_FIND_CROSS_CERT_DIST_POINTS = \ + (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT) +CERT_FIND_PUBKEY_MD5_HASH = \ + (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT) +CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 0x1 +CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 0x2 +CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4 +CERT_FIND_NO_ENHKEY_USAGE_FLAG = 0x8 +CERT_FIND_OR_ENHKEY_USAGE_FLAG = 0x10 +CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 0x20 +CERT_FIND_OPTIONAL_CTL_USAGE_FLAG = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG +CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG = \ + CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG +CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG = \ + CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG +CERT_FIND_NO_CTL_USAGE_FLAG = CERT_FIND_NO_ENHKEY_USAGE_FLAG +CERT_FIND_OR_CTL_USAGE_FLAG = CERT_FIND_OR_ENHKEY_USAGE_FLAG +CERT_FIND_VALID_CTL_USAGE_FLAG = CERT_FIND_VALID_ENHKEY_USAGE_FLAG +CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG = (-2147483648) +CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG = 0x40000000 +CTL_ENTRY_FROM_PROP_CHAIN_FLAG = 0x1 +CRL_FIND_ANY = 0 +CRL_FIND_ISSUED_BY = 1 +CRL_FIND_EXISTING = 2 +CRL_FIND_ISSUED_FOR = 3 +CRL_FIND_ISSUED_BY_AKI_FLAG = 0x1 +CRL_FIND_ISSUED_BY_SIGNATURE_FLAG = 0x2 +CRL_FIND_ISSUED_BY_DELTA_FLAG = 0x4 +CRL_FIND_ISSUED_BY_BASE_FLAG = 0x8 +CERT_STORE_ADD_NEW = 1 +CERT_STORE_ADD_USE_EXISTING = 2 +CERT_STORE_ADD_REPLACE_EXISTING = 3 +CERT_STORE_ADD_ALWAYS = 4 +CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 +CERT_STORE_ADD_NEWER = 6 +CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 +CERT_STORE_CERTIFICATE_CONTEXT = 1 +CERT_STORE_CRL_CONTEXT = 2 +CERT_STORE_CTL_CONTEXT = 3 + +CERT_STORE_ALL_CONTEXT_FLAG = -1 +CERT_STORE_CERTIFICATE_CONTEXT_FLAG = \ + (1 << CERT_STORE_CERTIFICATE_CONTEXT) +CERT_STORE_CRL_CONTEXT_FLAG = \ + (1 << CERT_STORE_CRL_CONTEXT) +CERT_STORE_CTL_CONTEXT_FLAG = \ + (1 << CERT_STORE_CTL_CONTEXT) +CTL_ANY_SUBJECT_TYPE = 1 +CTL_CERT_SUBJECT_TYPE = 2 +CTL_FIND_ANY = 0 +CTL_FIND_SHA1_HASH = 1 +CTL_FIND_MD5_HASH = 2 +CTL_FIND_USAGE = 3 +CTL_FIND_SUBJECT = 4 +CTL_FIND_EXISTING = 5 +CTL_FIND_NO_LIST_ID_CBDATA = (-1) +CTL_FIND_SAME_USAGE_FLAG = 0x1 +CERT_STORE_CTRL_RESYNC = 1 +CERT_STORE_CTRL_NOTIFY_CHANGE = 2 +CERT_STORE_CTRL_COMMIT = 3 +CERT_STORE_CTRL_AUTO_RESYNC = 4 +CERT_STORE_CTRL_CANCEL_NOTIFY = 5 +CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG = 0x1 +CERT_STORE_CTRL_COMMIT_FORCE_FLAG = 0x1 +CERT_STORE_CTRL_COMMIT_CLEAR_FLAG = 0x2 +CERT_STORE_LOCALIZED_NAME_PROP_ID = 0x1000 +CERT_CREATE_CONTEXT_NOCOPY_FLAG = 0x1 +CERT_CREATE_CONTEXT_SORTED_FLAG = 0x2 +CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG = 0x4 +CERT_CREATE_CONTEXT_NO_ENTRY_FLAG = 0x8 + +CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG = 0x1 +CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG = 0x2 +CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG = 0x4 +CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG = 0x8 +CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG = 0x1 + +# Names of physical cert stores +CERT_PHYSICAL_STORE_DEFAULT_NAME = ".Default" +CERT_PHYSICAL_STORE_GROUP_POLICY_NAME = ".GroupPolicy" +CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME = ".LocalMachine" +CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME = ".UserCertificate" +CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME = ".LocalMachineGroupPolicy" +CERT_PHYSICAL_STORE_ENTERPRISE_NAME = ".Enterprise" +CERT_PHYSICAL_STORE_AUTH_ROOT_NAME = ".AuthRoot" +CERT_PHYSICAL_STORE_SMART_CARD_NAME = ".SmartCard" + +CRYPT_OID_OPEN_SYSTEM_STORE_PROV_FUNC = "CertDllOpenSystemStoreProv" +CRYPT_OID_REGISTER_SYSTEM_STORE_FUNC = "CertDllRegisterSystemStore" +CRYPT_OID_UNREGISTER_SYSTEM_STORE_FUNC = "CertDllUnregisterSystemStore" +CRYPT_OID_ENUM_SYSTEM_STORE_FUNC = "CertDllEnumSystemStore" +CRYPT_OID_REGISTER_PHYSICAL_STORE_FUNC = "CertDllRegisterPhysicalStore" +CRYPT_OID_UNREGISTER_PHYSICAL_STORE_FUNC = "CertDllUnregisterPhysicalStore" +CRYPT_OID_ENUM_PHYSICAL_STORE_FUNC = "CertDllEnumPhysicalStore" +CRYPT_OID_SYSTEM_STORE_LOCATION_VALUE_NAME = "SystemStoreLocation" + +CMSG_TRUSTED_SIGNER_FLAG = 0x1 +CMSG_SIGNER_ONLY_FLAG = 0x2 +CMSG_USE_SIGNER_INDEX_FLAG = 0x4 +CMSG_CMS_ENCAPSULATED_CTL_FLAG = 0x00008000 +CMSG_ENCODE_SORTED_CTL_FLAG = 0x1 +CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x2 +CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG = 0x1 +CERT_VERIFY_TRUSTED_SIGNERS_FLAG = 0x2 +CERT_VERIFY_NO_TIME_CHECK_FLAG = 0x4 +CERT_VERIFY_ALLOW_MORE_USAGE_FLAG = 0x8 +CERT_VERIFY_UPDATED_CTL_FLAG = 0x1 +CERT_CONTEXT_REVOCATION_TYPE = 1 +CERT_VERIFY_REV_CHAIN_FLAG = 0x00000001 +CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION = 0x00000002 +CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG = 0x00000004 +CERT_UNICODE_IS_RDN_ATTRS_FLAG = 0x1 +CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG = 0x2 +CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB = 1 +CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT = 2 +CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL = 3 +CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY = 1 +CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT = 2 +CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN = 3 +CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL = 4 +CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG = 0x00000001 +CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG = 0x00000002 +CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID = 1 +CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID = 2 +CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC = "CryptDllExportPublicKeyInfoEx" +CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC = "CryptDllImportPublicKeyInfoEx" +CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 +CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 +CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 +CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 +CRYPT_FIND_USER_KEYSET_FLAG = 0x00000001 +CRYPT_FIND_MACHINE_KEYSET_FLAG = 0x00000002 +CRYPT_FIND_SILENT_KEYSET_FLAG = 0x00000040 +CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC = "CryptDllImportPrivateKeyInfoEx" +CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC = "CryptDllExportPrivateKeyInfoEx" +CRYPT_DELETE_KEYSET = CRYPT_DELETEKEYSET +CERT_SIMPLE_NAME_STR = 1 +CERT_OID_NAME_STR = 2 +CERT_X500_NAME_STR = 3 +CERT_NAME_STR_SEMICOLON_FLAG = 0x40000000 +CERT_NAME_STR_NO_PLUS_FLAG = 0x20000000 +CERT_NAME_STR_NO_QUOTING_FLAG = 0x10000000 +CERT_NAME_STR_CRLF_FLAG = 0x08000000 +CERT_NAME_STR_COMMA_FLAG = 0x04000000 +CERT_NAME_STR_REVERSE_FLAG = 0x02000000 +CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG = 0x00010000 +CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG = 0x00020000 +CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG = 0x00040000 +CERT_NAME_EMAIL_TYPE = 1 +CERT_NAME_RDN_TYPE = 2 +CERT_NAME_ATTR_TYPE = 3 +CERT_NAME_SIMPLE_DISPLAY_TYPE = 4 +CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5 +CERT_NAME_DNS_TYPE = 6 +CERT_NAME_URL_TYPE = 7 +CERT_NAME_UPN_TYPE = 8 +CERT_NAME_ISSUER_FLAG = 0x1 +CERT_NAME_DISABLE_IE4_UTF8_FLAG = 0x00010000 +CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG = 0x00000001 +CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG = 0x00000002 +CRYPT_MESSAGE_KEYID_SIGNER_FLAG = 0x00000004 +CRYPT_MESSAGE_SILENT_KEYSET_FLAG = 0x00000040 +CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG = 0x4 +CERT_QUERY_OBJECT_FILE = 0x00000001 +CERT_QUERY_OBJECT_BLOB = 0x00000002 +CERT_QUERY_CONTENT_CERT = 1 +CERT_QUERY_CONTENT_CTL = 2 +CERT_QUERY_CONTENT_CRL = 3 +CERT_QUERY_CONTENT_SERIALIZED_STORE = 4 +CERT_QUERY_CONTENT_SERIALIZED_CERT = 5 +CERT_QUERY_CONTENT_SERIALIZED_CTL = 6 +CERT_QUERY_CONTENT_SERIALIZED_CRL = 7 +CERT_QUERY_CONTENT_PKCS7_SIGNED = 8 +CERT_QUERY_CONTENT_PKCS7_UNSIGNED = 9 +CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = 10 +CERT_QUERY_CONTENT_PKCS10 = 11 +CERT_QUERY_CONTENT_PFX = 12 +CERT_QUERY_CONTENT_CERT_PAIR = 13 +CERT_QUERY_CONTENT_FLAG_CERT = \ + ( 1 << CERT_QUERY_CONTENT_CERT) +CERT_QUERY_CONTENT_FLAG_CTL = \ + ( 1 << CERT_QUERY_CONTENT_CTL) +CERT_QUERY_CONTENT_FLAG_CRL = \ + ( 1 << CERT_QUERY_CONTENT_CRL) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = \ + ( 1 << CERT_QUERY_CONTENT_SERIALIZED_STORE) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = \ + ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CERT) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = \ + ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CTL) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = \ + ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CRL) +CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = \ + ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED) +CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = \ + ( 1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED) +CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = \ + ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED) +CERT_QUERY_CONTENT_FLAG_PKCS10 = \ + ( 1 << CERT_QUERY_CONTENT_PKCS10) +CERT_QUERY_CONTENT_FLAG_PFX = \ + ( 1 << CERT_QUERY_CONTENT_PFX) +CERT_QUERY_CONTENT_FLAG_CERT_PAIR = \ + ( 1 << CERT_QUERY_CONTENT_CERT_PAIR) +CERT_QUERY_CONTENT_FLAG_ALL = \ + CERT_QUERY_CONTENT_FLAG_CERT | \ + CERT_QUERY_CONTENT_FLAG_CTL | \ + CERT_QUERY_CONTENT_FLAG_CRL | \ + CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | \ + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | \ + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | \ + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | \ + CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | \ + CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | \ + CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | \ + CERT_QUERY_CONTENT_FLAG_PKCS10 | \ + CERT_QUERY_CONTENT_FLAG_PFX | \ + CERT_QUERY_CONTENT_FLAG_CERT_PAIR +CERT_QUERY_FORMAT_BINARY = 1 +CERT_QUERY_FORMAT_BASE64_ENCODED = 2 +CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = 3 +CERT_QUERY_FORMAT_FLAG_BINARY = \ + ( 1 << CERT_QUERY_FORMAT_BINARY) +CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = \ + ( 1 << CERT_QUERY_FORMAT_BASE64_ENCODED) +CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = \ + ( 1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED) +CERT_QUERY_FORMAT_FLAG_ALL = \ + CERT_QUERY_FORMAT_FLAG_BINARY | \ + CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | \ + CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED + +CREDENTIAL_OID_PASSWORD_CREDENTIALS_A = 1 +CREDENTIAL_OID_PASSWORD_CREDENTIALS_W = 2 +CREDENTIAL_OID_PASSWORD_CREDENTIALS = CREDENTIAL_OID_PASSWORD_CREDENTIALS_W + +SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC = "SchemeDllRetrieveEncodedObject" +SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC = "SchemeDllRetrieveEncodedObjectW" +CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC = "ContextDllCreateObjectContext" +CONTEXT_OID_CERTIFICATE = 1 +CONTEXT_OID_CRL = 2 +CONTEXT_OID_CTL = 3 +CONTEXT_OID_PKCS7 = 4 +CONTEXT_OID_CAPI2_ANY = 5 +CONTEXT_OID_OCSP_RESP = 6 + +CRYPT_RETRIEVE_MULTIPLE_OBJECTS = 0x00000001 +CRYPT_CACHE_ONLY_RETRIEVAL = 0x00000002 +CRYPT_WIRE_ONLY_RETRIEVAL = 0x00000004 +CRYPT_DONT_CACHE_RESULT = 0x00000008 +CRYPT_ASYNC_RETRIEVAL = 0x00000010 +CRYPT_STICKY_CACHE_RETRIEVAL = 0x00001000 +CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL = 0x00002000 +CRYPT_OFFLINE_CHECK_RETRIEVAL = 0x00004000 +CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE = 0x00008000 +CRYPT_LDAP_SIGN_RETRIEVAL = 0x00010000 +CRYPT_NO_AUTH_RETRIEVAL = 0x00020000 +CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL = 0x00040000 +CRYPT_AIA_RETRIEVAL = 0x00080000 +CRYPT_VERIFY_CONTEXT_SIGNATURE = 0x00000020 +CRYPT_VERIFY_DATA_HASH = 0x00000040 +CRYPT_KEEP_TIME_VALID = 0x00000080 +CRYPT_DONT_VERIFY_SIGNATURE = 0x00000100 +CRYPT_DONT_CHECK_TIME_VALIDITY = 0x00000200 +CRYPT_CHECK_FRESHNESS_TIME_VALIDITY = 0x00000400 +CRYPT_ACCUMULATIVE_TIMEOUT = 0x00000800 +CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION = 1 +CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL = 2 +CRYPT_GET_URL_FROM_PROPERTY = 0x00000001 +CRYPT_GET_URL_FROM_EXTENSION = 0x00000002 +CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE = 0x00000004 +CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE = 0x00000008 +URL_OID_GET_OBJECT_URL_FUNC = "UrlDllGetObjectUrl" +TIME_VALID_OID_GET_OBJECT_FUNC = "TimeValidDllGetObject" +TIME_VALID_OID_FLUSH_OBJECT_FUNC = "TimeValidDllFlushObject" + +TIME_VALID_OID_GET_CTL = 1 +TIME_VALID_OID_GET_CRL = 2 +TIME_VALID_OID_GET_CRL_FROM_CERT = 3 +TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT = 4 +TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL = 5 + +TIME_VALID_OID_FLUSH_CTL = 1 +TIME_VALID_OID_FLUSH_CRL = 2 +TIME_VALID_OID_FLUSH_CRL_FROM_CERT = 3 +TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT = 4 +TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL = 5 + +CRYPTPROTECT_PROMPT_ON_UNPROTECT = 0x1 +CRYPTPROTECT_PROMPT_ON_PROTECT = 0x2 +CRYPTPROTECT_PROMPT_RESERVED = 0x04 +CRYPTPROTECT_PROMPT_STRONG = 0x08 +CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 0x10 +CRYPTPROTECT_UI_FORBIDDEN = 0x1 +CRYPTPROTECT_LOCAL_MACHINE = 0x4 +CRYPTPROTECT_CRED_SYNC = 0x8 +CRYPTPROTECT_AUDIT = 0x10 +CRYPTPROTECT_NO_RECOVERY = 0x20 +CRYPTPROTECT_VERIFY_PROTECTION = 0x40 +CRYPTPROTECT_CRED_REGENERATE = 0x80 +CRYPTPROTECT_FIRST_RESERVED_FLAGVAL = 0x0FFFFFFF +CRYPTPROTECT_LAST_RESERVED_FLAGVAL = (-1) +CRYPTPROTECTMEMORY_BLOCK_SIZE = 16 +CRYPTPROTECTMEMORY_SAME_PROCESS = 0x00 +CRYPTPROTECTMEMORY_CROSS_PROCESS = 0x01 +CRYPTPROTECTMEMORY_SAME_LOGON = 0x02 +CERT_CREATE_SELFSIGN_NO_SIGN = 1 +CERT_CREATE_SELFSIGN_NO_KEY_INFO = 2 +CRYPT_KEYID_MACHINE_FLAG = 0x00000020 +CRYPT_KEYID_ALLOC_FLAG = 0x00008000 +CRYPT_KEYID_DELETE_FLAG = 0x00000010 +CRYPT_KEYID_SET_NEW_FLAG = 0x00002000 +CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT = 5 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT = 10 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT = 100000 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT = 10 +CERT_CHAIN_CACHE_END_CERT = 0x00000001 +CERT_CHAIN_THREAD_STORE_SYNC = 0x00000002 +CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL = 0x00000004 +CERT_CHAIN_USE_LOCAL_MACHINE_STORE = 0x00000008 +CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE = 0x00000010 +CERT_CHAIN_ENABLE_SHARE_STORE = 0x00000020 +CERT_TRUST_NO_ERROR = 0x00000000 +CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 +CERT_TRUST_IS_NOT_TIME_NESTED = 0x00000002 +CERT_TRUST_IS_REVOKED = 0x00000004 +CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 +CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 +CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 +CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 +CERT_TRUST_IS_CYCLIC = 0x00000080 +CERT_TRUST_INVALID_EXTENSION = 0x00000100 +CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 +CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 +CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 +CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 +CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 +CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 +CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 +CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 +CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 +CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 +CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 +CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 +CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 +CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 +CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 +CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 +CERT_TRUST_IS_SELF_SIGNED = 0x00000008 +CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 +CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000200 +CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 +CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 +USAGE_MATCH_TYPE_AND = 0x00000000 +USAGE_MATCH_TYPE_OR = 0x00000001 +CERT_CHAIN_REVOCATION_CHECK_END_CERT = 0x10000000 +CERT_CHAIN_REVOCATION_CHECK_CHAIN = 0x20000000 +CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x40000000 +CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY = (-2147483648) +CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT = 0x08000000 +CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING = 0x00000040 +CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS = 0x00000080 +CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE = 0x00000100 +CERT_CHAIN_TIMESTAMP_TIME = 0x00000200 +REVOCATION_OID_CRL_REVOCATION = 1 +CERT_CHAIN_FIND_BY_ISSUER = 1 +CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 0x0001 +CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 0x0002 +CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004 +CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 0x0008 +CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 0x4000 +CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 0x8000 +CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG = 0x00000001 +CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG = 0x00000002 +CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG = 0x00000004 +CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG = 0x00000008 +CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS = ( \ + CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG \ + ) +CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG = 0x00000010 +CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG = 0x00000020 +CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG = 0x00000040 +CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG = 0x00000080 +CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG = 0x00000100 +CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG = 0x00000200 +CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG = 0x00000400 +CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG = 0x00000800 +CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS = ( \ + CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG \ + ) +CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG = 0x00008000 +CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG = 0x00004000 +CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC = \ + "CertDllVerifyCertificateChainPolicy" +AUTHTYPE_CLIENT = 1 +AUTHTYPE_SERVER = 2 +BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG = (-2147483648) +BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG = 0x40000000 +MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG = 0x00010000 +CRYPT_STRING_BASE64HEADER = 0x00000000 +CRYPT_STRING_BASE64 = 0x00000001 +CRYPT_STRING_BINARY = 0x00000002 +CRYPT_STRING_BASE64REQUESTHEADER = 0x00000003 +CRYPT_STRING_HEX = 0x00000004 +CRYPT_STRING_HEXASCII = 0x00000005 +CRYPT_STRING_BASE64_ANY = 0x00000006 +CRYPT_STRING_ANY = 0x00000007 +CRYPT_STRING_HEX_ANY = 0x00000008 +CRYPT_STRING_BASE64X509CRLHEADER = 0x00000009 +CRYPT_STRING_HEXADDR = 0x0000000a +CRYPT_STRING_HEXASCIIADDR = 0x0000000b +CRYPT_STRING_NOCR = (-2147483648) +CRYPT_USER_KEYSET = 0x00001000 +PKCS12_IMPORT_RESERVED_MASK = (-65536) +REPORT_NO_PRIVATE_KEY = 0x0001 +REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY = 0x0002 +EXPORT_PRIVATE_KEYS = 0x0004 +PKCS12_EXPORT_RESERVED_MASK = (-65536) + +# Certificate store provider types used with CertOpenStore +CERT_STORE_PROV_MSG = 1 +CERT_STORE_PROV_MEMORY = 2 +CERT_STORE_PROV_FILE = 3 +CERT_STORE_PROV_REG = 4 +CERT_STORE_PROV_PKCS7 = 5 +CERT_STORE_PROV_SERIALIZED = 6 +CERT_STORE_PROV_FILENAME = 8 +CERT_STORE_PROV_SYSTEM = 10 +CERT_STORE_PROV_COLLECTION = 11 +CERT_STORE_PROV_SYSTEM_REGISTRY = 13 +CERT_STORE_PROV_PHYSICAL = 14 +CERT_STORE_PROV_SMART_CARD = 15 +CERT_STORE_PROV_LDAP = 16 + +URL_OID_CERTIFICATE_ISSUER = 1 +URL_OID_CERTIFICATE_CRL_DIST_POINT = 2 +URL_OID_CTL_ISSUER = 3 +URL_OID_CTL_NEXT_UPDATE = 4 +URL_OID_CRL_ISSUER = 5 +URL_OID_CERTIFICATE_FRESHEST_CRL = 6 +URL_OID_CRL_FRESHEST_CRL = 7 +URL_OID_CROSS_CERT_DIST_POINT = 8 +URL_OID_CERTIFICATE_OCSP = 9 +URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT = 10 +URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP = 11 +URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS = 12 +URL_OID_CERTIFICATE_ONLY_OCSP = 13 diff --git a/typings/win32helper/win32inetcon.pyi b/typings/win32helper/win32inetcon.pyi new file mode 100644 index 00000000..3338fe25 --- /dev/null +++ b/typings/win32helper/win32inetcon.pyi @@ -0,0 +1,1103 @@ +# Generated by h2py from \mssdk\include\WinInet.h + +INTERNET_INVALID_PORT_NUMBER = 0 +INTERNET_DEFAULT_FTP_PORT = 21 +INTERNET_DEFAULT_GOPHER_PORT = 70 +INTERNET_DEFAULT_HTTP_PORT = 80 +INTERNET_DEFAULT_HTTPS_PORT = 443 +INTERNET_DEFAULT_SOCKS_PORT = 1080 +INTERNET_MAX_HOST_NAME_LENGTH = 256 +INTERNET_MAX_USER_NAME_LENGTH = 128 +INTERNET_MAX_PASSWORD_LENGTH = 128 +INTERNET_MAX_PORT_NUMBER_LENGTH = 5 +INTERNET_MAX_PORT_NUMBER_VALUE = 65535 +INTERNET_MAX_PATH_LENGTH = 2048 +INTERNET_MAX_SCHEME_LENGTH = 32 +INTERNET_KEEP_ALIVE_ENABLED = 1 +INTERNET_KEEP_ALIVE_DISABLED = 0 +INTERNET_REQFLAG_FROM_CACHE = 0x00000001 +INTERNET_REQFLAG_ASYNC = 0x00000002 +INTERNET_REQFLAG_VIA_PROXY = 0x00000004 +INTERNET_REQFLAG_NO_HEADERS = 0x00000008 +INTERNET_REQFLAG_PASSIVE = 0x00000010 +INTERNET_REQFLAG_CACHE_WRITE_DISABLED = 0x00000040 +INTERNET_REQFLAG_NET_TIMEOUT = 0x00000080 +INTERNET_FLAG_RELOAD = (-2147483648) +INTERNET_FLAG_RAW_DATA = 0x40000000 +INTERNET_FLAG_EXISTING_CONNECT = 0x20000000 +INTERNET_FLAG_ASYNC = 0x10000000 +INTERNET_FLAG_PASSIVE = 0x08000000 +INTERNET_FLAG_NO_CACHE_WRITE = 0x04000000 +INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE +INTERNET_FLAG_MAKE_PERSISTENT = 0x02000000 +INTERNET_FLAG_FROM_CACHE = 0x01000000 +INTERNET_FLAG_OFFLINE = INTERNET_FLAG_FROM_CACHE +INTERNET_FLAG_SECURE = 0x00800000 +INTERNET_FLAG_KEEP_CONNECTION = 0x00400000 +INTERNET_FLAG_NO_AUTO_REDIRECT = 0x00200000 +INTERNET_FLAG_READ_PREFETCH = 0x00100000 +INTERNET_FLAG_NO_COOKIES = 0x00080000 +INTERNET_FLAG_NO_AUTH = 0x00040000 +INTERNET_FLAG_RESTRICTED_ZONE = 0x00020000 +INTERNET_FLAG_CACHE_IF_NET_FAIL = 0x00010000 +INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = 0x00008000 +INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = 0x00004000 +INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 +INTERNET_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000 +INTERNET_FLAG_RESYNCHRONIZE = 0x00000800 +INTERNET_FLAG_HYPERLINK = 0x00000400 +INTERNET_FLAG_NO_UI = 0x00000200 +INTERNET_FLAG_PRAGMA_NOCACHE = 0x00000100 +INTERNET_FLAG_CACHE_ASYNC = 0x00000080 +INTERNET_FLAG_FORMS_SUBMIT = 0x00000040 +INTERNET_FLAG_FWD_BACK = 0x00000020 +INTERNET_FLAG_NEED_FILE = 0x00000010 +INTERNET_FLAG_MUST_CACHE_REQUEST = INTERNET_FLAG_NEED_FILE +SECURITY_INTERNET_MASK = (INTERNET_FLAG_IGNORE_CERT_CN_INVALID | \ + INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | \ + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | \ + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP ) +INTERNET_ERROR_MASK_INSERT_CDROM = 0x1 +INTERNET_ERROR_MASK_COMBINED_SEC_CERT = 0x2 +INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG = 0X4 +INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = 0x8 +WININET_API_FLAG_ASYNC = 0x00000001 +WININET_API_FLAG_SYNC = 0x00000004 +WININET_API_FLAG_USE_CONTEXT = 0x00000008 +INTERNET_NO_CALLBACK = 0 +IDSI_FLAG_KEEP_ALIVE = 0x00000001 +IDSI_FLAG_SECURE = 0x00000002 +IDSI_FLAG_PROXY = 0x00000004 +IDSI_FLAG_TUNNEL = 0x00000008 +INTERNET_PER_CONN_FLAGS = 1 +INTERNET_PER_CONN_PROXY_SERVER = 2 +INTERNET_PER_CONN_PROXY_BYPASS = 3 +INTERNET_PER_CONN_AUTOCONFIG_URL = 4 +INTERNET_PER_CONN_AUTODISCOVERY_FLAGS = 5 +INTERNET_PER_CONN_AUTOCONFIG_SECONDARY_URL = 6 +INTERNET_PER_CONN_AUTOCONFIG_RELOAD_DELAY_MINS = 7 +INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_TIME = 8 +INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_URL = 9 +PROXY_TYPE_DIRECT = 0x00000001 +PROXY_TYPE_PROXY = 0x00000002 +PROXY_TYPE_AUTO_PROXY_URL = 0x00000004 +PROXY_TYPE_AUTO_DETECT = 0x00000008 +AUTO_PROXY_FLAG_USER_SET = 0x00000001 +AUTO_PROXY_FLAG_ALWAYS_DETECT = 0x00000002 +AUTO_PROXY_FLAG_DETECTION_RUN = 0x00000004 +AUTO_PROXY_FLAG_MIGRATED = 0x00000008 +AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT = 0x00000010 +AUTO_PROXY_FLAG_CACHE_INIT_RUN = 0x00000020 +AUTO_PROXY_FLAG_DETECTION_SUSPECT = 0x00000040 +ISO_FORCE_DISCONNECTED = 0x00000001 +INTERNET_RFC1123_FORMAT = 0 +INTERNET_RFC1123_BUFSIZE = 30 +ICU_ESCAPE = (-2147483648) +ICU_USERNAME = 0x40000000 +ICU_NO_ENCODE = 0x20000000 +ICU_DECODE = 0x10000000 +ICU_NO_META = 0x08000000 +ICU_ENCODE_SPACES_ONLY = 0x04000000 +ICU_BROWSER_MODE = 0x02000000 +ICU_ENCODE_PERCENT = 0x00001000 +INTERNET_OPEN_TYPE_PRECONFIG = 0 +INTERNET_OPEN_TYPE_DIRECT = 1 +INTERNET_OPEN_TYPE_PROXY = 3 +INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4 +PRE_CONFIG_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PRECONFIG +LOCAL_INTERNET_ACCESS = INTERNET_OPEN_TYPE_DIRECT +CERN_PROXY_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PROXY +INTERNET_SERVICE_FTP = 1 +INTERNET_SERVICE_GOPHER = 2 +INTERNET_SERVICE_HTTP = 3 +IRF_ASYNC = WININET_API_FLAG_ASYNC +IRF_SYNC = WININET_API_FLAG_SYNC +IRF_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT +IRF_NO_WAIT = 0x00000008 +ISO_GLOBAL = 0x00000001 +ISO_REGISTRY = 0x00000002 +ISO_VALID_FLAGS = (ISO_GLOBAL | ISO_REGISTRY) +INTERNET_OPTION_CALLBACK = 1 +INTERNET_OPTION_CONNECT_TIMEOUT = 2 +INTERNET_OPTION_CONNECT_RETRIES = 3 +INTERNET_OPTION_CONNECT_BACKOFF = 4 +INTERNET_OPTION_SEND_TIMEOUT = 5 +INTERNET_OPTION_CONTROL_SEND_TIMEOUT = INTERNET_OPTION_SEND_TIMEOUT +INTERNET_OPTION_RECEIVE_TIMEOUT = 6 +INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT = INTERNET_OPTION_RECEIVE_TIMEOUT +INTERNET_OPTION_DATA_SEND_TIMEOUT = 7 +INTERNET_OPTION_DATA_RECEIVE_TIMEOUT = 8 +INTERNET_OPTION_HANDLE_TYPE = 9 +INTERNET_OPTION_LISTEN_TIMEOUT = 11 +INTERNET_OPTION_READ_BUFFER_SIZE = 12 +INTERNET_OPTION_WRITE_BUFFER_SIZE = 13 +INTERNET_OPTION_ASYNC_ID = 15 +INTERNET_OPTION_ASYNC_PRIORITY = 16 +INTERNET_OPTION_PARENT_HANDLE = 21 +INTERNET_OPTION_KEEP_CONNECTION = 22 +INTERNET_OPTION_REQUEST_FLAGS = 23 +INTERNET_OPTION_EXTENDED_ERROR = 24 +INTERNET_OPTION_OFFLINE_MODE = 26 +INTERNET_OPTION_CACHE_STREAM_HANDLE = 27 +INTERNET_OPTION_USERNAME = 28 +INTERNET_OPTION_PASSWORD = 29 +INTERNET_OPTION_ASYNC = 30 +INTERNET_OPTION_SECURITY_FLAGS = 31 +INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT = 32 +INTERNET_OPTION_DATAFILE_NAME = 33 +INTERNET_OPTION_URL = 34 +INTERNET_OPTION_SECURITY_CERTIFICATE = 35 +INTERNET_OPTION_SECURITY_KEY_BITNESS = 36 +INTERNET_OPTION_REFRESH = 37 +INTERNET_OPTION_PROXY = 38 +INTERNET_OPTION_SETTINGS_CHANGED = 39 +INTERNET_OPTION_VERSION = 40 +INTERNET_OPTION_USER_AGENT = 41 +INTERNET_OPTION_END_BROWSER_SESSION = 42 +INTERNET_OPTION_PROXY_USERNAME = 43 +INTERNET_OPTION_PROXY_PASSWORD = 44 +INTERNET_OPTION_CONTEXT_VALUE = 45 +INTERNET_OPTION_CONNECT_LIMIT = 46 +INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT = 47 +INTERNET_OPTION_POLICY = 48 +INTERNET_OPTION_DISCONNECTED_TIMEOUT = 49 +INTERNET_OPTION_CONNECTED_STATE = 50 +INTERNET_OPTION_IDLE_STATE = 51 +INTERNET_OPTION_OFFLINE_SEMANTICS = 52 +INTERNET_OPTION_SECONDARY_CACHE_KEY = 53 +INTERNET_OPTION_CALLBACK_FILTER = 54 +INTERNET_OPTION_CONNECT_TIME = 55 +INTERNET_OPTION_SEND_THROUGHPUT = 56 +INTERNET_OPTION_RECEIVE_THROUGHPUT = 57 +INTERNET_OPTION_REQUEST_PRIORITY = 58 +INTERNET_OPTION_HTTP_VERSION = 59 +INTERNET_OPTION_RESET_URLCACHE_SESSION = 60 +INTERNET_OPTION_ERROR_MASK = 62 +INTERNET_OPTION_FROM_CACHE_TIMEOUT = 63 +INTERNET_OPTION_BYPASS_EDITED_ENTRY = 64 +INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO = 67 +INTERNET_OPTION_CODEPAGE = 68 +INTERNET_OPTION_CACHE_TIMESTAMPS = 69 +INTERNET_OPTION_DISABLE_AUTODIAL = 70 +INTERNET_OPTION_MAX_CONNS_PER_SERVER = 73 +INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER = 74 +INTERNET_OPTION_PER_CONNECTION_OPTION = 75 +INTERNET_OPTION_DIGEST_AUTH_UNLOAD = 76 +INTERNET_OPTION_IGNORE_OFFLINE = 77 +INTERNET_OPTION_IDENTITY = 78 +INTERNET_OPTION_REMOVE_IDENTITY = 79 +INTERNET_OPTION_ALTER_IDENTITY = 80 +INTERNET_OPTION_SUPPRESS_BEHAVIOR = 81 +INTERNET_OPTION_AUTODIAL_MODE = 82 +INTERNET_OPTION_AUTODIAL_CONNECTION = 83 +INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84 +INTERNET_OPTION_AUTH_FLAGS = 85 +INTERNET_OPTION_COOKIES_3RD_PARTY = 86 +INTERNET_OPTION_DISABLE_PASSPORT_AUTH = 87 +INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY = 88 +INTERNET_OPTION_EXEMPT_CONNECTION_LIMIT = 89 +INTERNET_OPTION_ENABLE_PASSPORT_AUTH = 90 +INTERNET_OPTION_HIBERNATE_INACTIVE_WORKER_THREADS = 91 +INTERNET_OPTION_ACTIVATE_WORKER_THREADS = 92 +INTERNET_OPTION_RESTORE_WORKER_THREAD_DEFAULTS = 93 +INTERNET_OPTION_SOCKET_SEND_BUFFER_LENGTH = 94 +INTERNET_OPTION_PROXY_SETTINGS_CHANGED = 95 +INTERNET_FIRST_OPTION = INTERNET_OPTION_CALLBACK +INTERNET_LAST_OPTION = INTERNET_OPTION_PROXY_SETTINGS_CHANGED +INTERNET_PRIORITY_FOREGROUND = 1000 +INTERNET_HANDLE_TYPE_INTERNET = 1 +INTERNET_HANDLE_TYPE_CONNECT_FTP = 2 +INTERNET_HANDLE_TYPE_CONNECT_GOPHER = 3 +INTERNET_HANDLE_TYPE_CONNECT_HTTP = 4 +INTERNET_HANDLE_TYPE_FTP_FIND = 5 +INTERNET_HANDLE_TYPE_FTP_FIND_HTML = 6 +INTERNET_HANDLE_TYPE_FTP_FILE = 7 +INTERNET_HANDLE_TYPE_FTP_FILE_HTML = 8 +INTERNET_HANDLE_TYPE_GOPHER_FIND = 9 +INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML = 10 +INTERNET_HANDLE_TYPE_GOPHER_FILE = 11 +INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML = 12 +INTERNET_HANDLE_TYPE_HTTP_REQUEST = 13 +INTERNET_HANDLE_TYPE_FILE_REQUEST = 14 +AUTH_FLAG_DISABLE_NEGOTIATE = 0x00000001 +AUTH_FLAG_ENABLE_NEGOTIATE = 0x00000002 +SECURITY_FLAG_SECURE = 0x00000001 +SECURITY_FLAG_STRENGTH_WEAK = 0x10000000 +SECURITY_FLAG_STRENGTH_MEDIUM = 0x40000000 +SECURITY_FLAG_STRENGTH_STRONG = 0x20000000 +SECURITY_FLAG_UNKNOWNBIT = (-2147483648) +SECURITY_FLAG_FORTEZZA = 0x08000000 +SECURITY_FLAG_NORMALBITNESS = SECURITY_FLAG_STRENGTH_WEAK +SECURITY_FLAG_SSL = 0x00000002 +SECURITY_FLAG_SSL3 = 0x00000004 +SECURITY_FLAG_PCT = 0x00000008 +SECURITY_FLAG_PCT4 = 0x00000010 +SECURITY_FLAG_IETFSSL4 = 0x00000020 +SECURITY_FLAG_40BIT = SECURITY_FLAG_STRENGTH_WEAK +SECURITY_FLAG_128BIT = SECURITY_FLAG_STRENGTH_STRONG +SECURITY_FLAG_56BIT = SECURITY_FLAG_STRENGTH_MEDIUM +SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080 +SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100 +SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200 +SECURITY_FLAG_IGNORE_CERT_CN_INVALID = INTERNET_FLAG_IGNORE_CERT_CN_INVALID +SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID +SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS +SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP +SECURITY_SET_MASK = (SECURITY_FLAG_IGNORE_REVOCATION |\ + SECURITY_FLAG_IGNORE_UNKNOWN_CA |\ + SECURITY_FLAG_IGNORE_CERT_CN_INVALID |\ + SECURITY_FLAG_IGNORE_CERT_DATE_INVALID |\ + SECURITY_FLAG_IGNORE_WRONG_USAGE) +AUTODIAL_MODE_NEVER = 1 +AUTODIAL_MODE_ALWAYS = 2 +AUTODIAL_MODE_NO_NETWORK_PRESENT = 4 +INTERNET_STATUS_RESOLVING_NAME = 10 +INTERNET_STATUS_NAME_RESOLVED = 11 +INTERNET_STATUS_CONNECTING_TO_SERVER = 20 +INTERNET_STATUS_CONNECTED_TO_SERVER = 21 +INTERNET_STATUS_SENDING_REQUEST = 30 +INTERNET_STATUS_REQUEST_SENT = 31 +INTERNET_STATUS_RECEIVING_RESPONSE = 40 +INTERNET_STATUS_RESPONSE_RECEIVED = 41 +INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42 +INTERNET_STATUS_PREFETCH = 43 +INTERNET_STATUS_CLOSING_CONNECTION = 50 +INTERNET_STATUS_CONNECTION_CLOSED = 51 +INTERNET_STATUS_HANDLE_CREATED = 60 +INTERNET_STATUS_HANDLE_CLOSING = 70 +INTERNET_STATUS_DETECTING_PROXY = 80 +INTERNET_STATUS_REQUEST_COMPLETE = 100 +INTERNET_STATUS_REDIRECT = 110 +INTERNET_STATUS_INTERMEDIATE_RESPONSE = 120 +INTERNET_STATUS_USER_INPUT_REQUIRED = 140 +INTERNET_STATUS_STATE_CHANGE = 200 +INTERNET_STATUS_COOKIE_SENT = 320 +INTERNET_STATUS_COOKIE_RECEIVED = 321 +INTERNET_STATUS_PRIVACY_IMPACTED = 324 +INTERNET_STATUS_P3P_HEADER = 325 +INTERNET_STATUS_P3P_POLICYREF = 326 +INTERNET_STATUS_COOKIE_HISTORY = 327 +INTERNET_STATE_CONNECTED = 0x00000001 +INTERNET_STATE_DISCONNECTED = 0x00000002 +INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010 +INTERNET_STATE_IDLE = 0x00000100 +INTERNET_STATE_BUSY = 0x00000200 +FTP_TRANSFER_TYPE_UNKNOWN = 0x00000000 +FTP_TRANSFER_TYPE_ASCII = 0x00000001 +FTP_TRANSFER_TYPE_BINARY = 0x00000002 +FTP_TRANSFER_TYPE_MASK = (FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY) +MAX_GOPHER_DISPLAY_TEXT = 128 +MAX_GOPHER_SELECTOR_TEXT = 256 +MAX_GOPHER_HOST_NAME = INTERNET_MAX_HOST_NAME_LENGTH +MAX_GOPHER_LOCATOR_LENGTH = (1 \ + + MAX_GOPHER_DISPLAY_TEXT \ + + 1 \ + + MAX_GOPHER_SELECTOR_TEXT \ + + 1 \ + + MAX_GOPHER_HOST_NAME \ + + 1 \ + + INTERNET_MAX_PORT_NUMBER_LENGTH \ + + 1 \ + + 1 \ + + 2 \ + ) +GOPHER_TYPE_TEXT_FILE = 0x00000001 +GOPHER_TYPE_DIRECTORY = 0x00000002 +GOPHER_TYPE_CSO = 0x00000004 +GOPHER_TYPE_ERROR = 0x00000008 +GOPHER_TYPE_MAC_BINHEX = 0x00000010 +GOPHER_TYPE_DOS_ARCHIVE = 0x00000020 +GOPHER_TYPE_UNIX_UUENCODED = 0x00000040 +GOPHER_TYPE_INDEX_SERVER = 0x00000080 +GOPHER_TYPE_TELNET = 0x00000100 +GOPHER_TYPE_BINARY = 0x00000200 +GOPHER_TYPE_REDUNDANT = 0x00000400 +GOPHER_TYPE_TN3270 = 0x00000800 +GOPHER_TYPE_GIF = 0x00001000 +GOPHER_TYPE_IMAGE = 0x00002000 +GOPHER_TYPE_BITMAP = 0x00004000 +GOPHER_TYPE_MOVIE = 0x00008000 +GOPHER_TYPE_SOUND = 0x00010000 +GOPHER_TYPE_HTML = 0x00020000 +GOPHER_TYPE_PDF = 0x00040000 +GOPHER_TYPE_CALENDAR = 0x00080000 +GOPHER_TYPE_INLINE = 0x00100000 +GOPHER_TYPE_UNKNOWN = 0x20000000 +GOPHER_TYPE_ASK = 0x40000000 +GOPHER_TYPE_GOPHER_PLUS = (-2147483648) +GOPHER_TYPE_FILE_MASK = (GOPHER_TYPE_TEXT_FILE \ + | GOPHER_TYPE_MAC_BINHEX \ + | GOPHER_TYPE_DOS_ARCHIVE \ + | GOPHER_TYPE_UNIX_UUENCODED \ + | GOPHER_TYPE_BINARY \ + | GOPHER_TYPE_GIF \ + | GOPHER_TYPE_IMAGE \ + | GOPHER_TYPE_BITMAP \ + | GOPHER_TYPE_MOVIE \ + | GOPHER_TYPE_SOUND \ + | GOPHER_TYPE_HTML \ + | GOPHER_TYPE_PDF \ + | GOPHER_TYPE_CALENDAR \ + | GOPHER_TYPE_INLINE \ + ) +MAX_GOPHER_CATEGORY_NAME = 128 +MAX_GOPHER_ATTRIBUTE_NAME = 128 +MIN_GOPHER_ATTRIBUTE_LENGTH = 256 +GOPHER_ATTRIBUTE_ID_BASE = (-1412641792) +GOPHER_CATEGORY_ID_ALL = (GOPHER_ATTRIBUTE_ID_BASE + 1) +GOPHER_CATEGORY_ID_INFO = (GOPHER_ATTRIBUTE_ID_BASE + 2) +GOPHER_CATEGORY_ID_ADMIN = (GOPHER_ATTRIBUTE_ID_BASE + 3) +GOPHER_CATEGORY_ID_VIEWS = (GOPHER_ATTRIBUTE_ID_BASE + 4) +GOPHER_CATEGORY_ID_ABSTRACT = (GOPHER_ATTRIBUTE_ID_BASE + 5) +GOPHER_CATEGORY_ID_VERONICA = (GOPHER_ATTRIBUTE_ID_BASE + 6) +GOPHER_CATEGORY_ID_ASK = (GOPHER_ATTRIBUTE_ID_BASE + 7) +GOPHER_CATEGORY_ID_UNKNOWN = (GOPHER_ATTRIBUTE_ID_BASE + 8) +GOPHER_ATTRIBUTE_ID_ALL = (GOPHER_ATTRIBUTE_ID_BASE + 9) +GOPHER_ATTRIBUTE_ID_ADMIN = (GOPHER_ATTRIBUTE_ID_BASE + 10) +GOPHER_ATTRIBUTE_ID_MOD_DATE = (GOPHER_ATTRIBUTE_ID_BASE + 11) +GOPHER_ATTRIBUTE_ID_TTL = (GOPHER_ATTRIBUTE_ID_BASE + 12) +GOPHER_ATTRIBUTE_ID_SCORE = (GOPHER_ATTRIBUTE_ID_BASE + 13) +GOPHER_ATTRIBUTE_ID_RANGE = (GOPHER_ATTRIBUTE_ID_BASE + 14) +GOPHER_ATTRIBUTE_ID_SITE = (GOPHER_ATTRIBUTE_ID_BASE + 15) +GOPHER_ATTRIBUTE_ID_ORG = (GOPHER_ATTRIBUTE_ID_BASE + 16) +GOPHER_ATTRIBUTE_ID_LOCATION = (GOPHER_ATTRIBUTE_ID_BASE + 17) +GOPHER_ATTRIBUTE_ID_GEOG = (GOPHER_ATTRIBUTE_ID_BASE + 18) +GOPHER_ATTRIBUTE_ID_TIMEZONE = (GOPHER_ATTRIBUTE_ID_BASE + 19) +GOPHER_ATTRIBUTE_ID_PROVIDER = (GOPHER_ATTRIBUTE_ID_BASE + 20) +GOPHER_ATTRIBUTE_ID_VERSION = (GOPHER_ATTRIBUTE_ID_BASE + 21) +GOPHER_ATTRIBUTE_ID_ABSTRACT = (GOPHER_ATTRIBUTE_ID_BASE + 22) +GOPHER_ATTRIBUTE_ID_VIEW = (GOPHER_ATTRIBUTE_ID_BASE + 23) +GOPHER_ATTRIBUTE_ID_TREEWALK = (GOPHER_ATTRIBUTE_ID_BASE + 24) +GOPHER_ATTRIBUTE_ID_UNKNOWN = (GOPHER_ATTRIBUTE_ID_BASE + 25) +HTTP_MAJOR_VERSION = 1 +HTTP_MINOR_VERSION = 0 +HTTP_VERSIONA = "HTTP/1.0" +HTTP_VERSION = HTTP_VERSIONA +HTTP_QUERY_MIME_VERSION = 0 +HTTP_QUERY_CONTENT_TYPE = 1 +HTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2 +HTTP_QUERY_CONTENT_ID = 3 +HTTP_QUERY_CONTENT_DESCRIPTION = 4 +HTTP_QUERY_CONTENT_LENGTH = 5 +HTTP_QUERY_CONTENT_LANGUAGE = 6 +HTTP_QUERY_ALLOW = 7 +HTTP_QUERY_PUBLIC = 8 +HTTP_QUERY_DATE = 9 +HTTP_QUERY_EXPIRES = 10 +HTTP_QUERY_LAST_MODIFIED = 11 +HTTP_QUERY_MESSAGE_ID = 12 +HTTP_QUERY_URI = 13 +HTTP_QUERY_DERIVED_FROM = 14 +HTTP_QUERY_COST = 15 +HTTP_QUERY_LINK = 16 +HTTP_QUERY_PRAGMA = 17 +HTTP_QUERY_VERSION = 18 +HTTP_QUERY_STATUS_CODE = 19 +HTTP_QUERY_STATUS_TEXT = 20 +HTTP_QUERY_RAW_HEADERS = 21 +HTTP_QUERY_RAW_HEADERS_CRLF = 22 +HTTP_QUERY_CONNECTION = 23 +HTTP_QUERY_ACCEPT = 24 +HTTP_QUERY_ACCEPT_CHARSET = 25 +HTTP_QUERY_ACCEPT_ENCODING = 26 +HTTP_QUERY_ACCEPT_LANGUAGE = 27 +HTTP_QUERY_AUTHORIZATION = 28 +HTTP_QUERY_CONTENT_ENCODING = 29 +HTTP_QUERY_FORWARDED = 30 +HTTP_QUERY_FROM = 31 +HTTP_QUERY_IF_MODIFIED_SINCE = 32 +HTTP_QUERY_LOCATION = 33 +HTTP_QUERY_ORIG_URI = 34 +HTTP_QUERY_REFERER = 35 +HTTP_QUERY_RETRY_AFTER = 36 +HTTP_QUERY_SERVER = 37 +HTTP_QUERY_TITLE = 38 +HTTP_QUERY_USER_AGENT = 39 +HTTP_QUERY_WWW_AUTHENTICATE = 40 +HTTP_QUERY_PROXY_AUTHENTICATE = 41 +HTTP_QUERY_ACCEPT_RANGES = 42 +HTTP_QUERY_SET_COOKIE = 43 +HTTP_QUERY_COOKIE = 44 +HTTP_QUERY_REQUEST_METHOD = 45 +HTTP_QUERY_REFRESH = 46 +HTTP_QUERY_CONTENT_DISPOSITION = 47 +HTTP_QUERY_AGE = 48 +HTTP_QUERY_CACHE_CONTROL = 49 +HTTP_QUERY_CONTENT_BASE = 50 +HTTP_QUERY_CONTENT_LOCATION = 51 +HTTP_QUERY_CONTENT_MD5 = 52 +HTTP_QUERY_CONTENT_RANGE = 53 +HTTP_QUERY_ETAG = 54 +HTTP_QUERY_HOST = 55 +HTTP_QUERY_IF_MATCH = 56 +HTTP_QUERY_IF_NONE_MATCH = 57 +HTTP_QUERY_IF_RANGE = 58 +HTTP_QUERY_IF_UNMODIFIED_SINCE = 59 +HTTP_QUERY_MAX_FORWARDS = 60 +HTTP_QUERY_PROXY_AUTHORIZATION = 61 +HTTP_QUERY_RANGE = 62 +HTTP_QUERY_TRANSFER_ENCODING = 63 +HTTP_QUERY_UPGRADE = 64 +HTTP_QUERY_VARY = 65 +HTTP_QUERY_VIA = 66 +HTTP_QUERY_WARNING = 67 +HTTP_QUERY_EXPECT = 68 +HTTP_QUERY_PROXY_CONNECTION = 69 +HTTP_QUERY_UNLESS_MODIFIED_SINCE = 70 +HTTP_QUERY_ECHO_REQUEST = 71 +HTTP_QUERY_ECHO_REPLY = 72 +HTTP_QUERY_ECHO_HEADERS = 73 +HTTP_QUERY_ECHO_HEADERS_CRLF = 74 +HTTP_QUERY_PROXY_SUPPORT = 75 +HTTP_QUERY_AUTHENTICATION_INFO = 76 +HTTP_QUERY_PASSPORT_URLS = 77 +HTTP_QUERY_PASSPORT_CONFIG = 78 +HTTP_QUERY_MAX = 78 +HTTP_QUERY_CUSTOM = 65535 +HTTP_QUERY_FLAG_REQUEST_HEADERS = (-2147483648) +HTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000 +HTTP_QUERY_FLAG_NUMBER = 0x20000000 +HTTP_QUERY_FLAG_COALESCE = 0x10000000 +HTTP_QUERY_MODIFIER_FLAGS_MASK = (HTTP_QUERY_FLAG_REQUEST_HEADERS \ + | HTTP_QUERY_FLAG_SYSTEMTIME \ + | HTTP_QUERY_FLAG_NUMBER \ + | HTTP_QUERY_FLAG_COALESCE \ + ) +HTTP_QUERY_HEADER_MASK = (~HTTP_QUERY_MODIFIER_FLAGS_MASK) +HTTP_STATUS_CONTINUE = 100 +HTTP_STATUS_SWITCH_PROTOCOLS = 101 +HTTP_STATUS_OK = 200 +HTTP_STATUS_CREATED = 201 +HTTP_STATUS_ACCEPTED = 202 +HTTP_STATUS_PARTIAL = 203 +HTTP_STATUS_NO_CONTENT = 204 +HTTP_STATUS_RESET_CONTENT = 205 +HTTP_STATUS_PARTIAL_CONTENT = 206 +HTTP_STATUS_AMBIGUOUS = 300 +HTTP_STATUS_MOVED = 301 +HTTP_STATUS_REDIRECT = 302 +HTTP_STATUS_REDIRECT_METHOD = 303 +HTTP_STATUS_NOT_MODIFIED = 304 +HTTP_STATUS_USE_PROXY = 305 +HTTP_STATUS_REDIRECT_KEEP_VERB = 307 +HTTP_STATUS_BAD_REQUEST = 400 +HTTP_STATUS_DENIED = 401 +HTTP_STATUS_PAYMENT_REQ = 402 +HTTP_STATUS_FORBIDDEN = 403 +HTTP_STATUS_NOT_FOUND = 404 +HTTP_STATUS_BAD_METHOD = 405 +HTTP_STATUS_NONE_ACCEPTABLE = 406 +HTTP_STATUS_PROXY_AUTH_REQ = 407 +HTTP_STATUS_REQUEST_TIMEOUT = 408 +HTTP_STATUS_CONFLICT = 409 +HTTP_STATUS_GONE = 410 +HTTP_STATUS_LENGTH_REQUIRED = 411 +HTTP_STATUS_PRECOND_FAILED = 412 +HTTP_STATUS_REQUEST_TOO_LARGE = 413 +HTTP_STATUS_URI_TOO_LONG = 414 +HTTP_STATUS_UNSUPPORTED_MEDIA = 415 +HTTP_STATUS_RETRY_WITH = 449 +HTTP_STATUS_SERVER_ERROR = 500 +HTTP_STATUS_NOT_SUPPORTED = 501 +HTTP_STATUS_BAD_GATEWAY = 502 +HTTP_STATUS_SERVICE_UNAVAIL = 503 +HTTP_STATUS_GATEWAY_TIMEOUT = 504 +HTTP_STATUS_VERSION_NOT_SUP = 505 +HTTP_STATUS_FIRST = HTTP_STATUS_CONTINUE +HTTP_STATUS_LAST = HTTP_STATUS_VERSION_NOT_SUP +HTTP_ADDREQ_INDEX_MASK = 0x0000FFFF +HTTP_ADDREQ_FLAGS_MASK = (-65536) +HTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000 +HTTP_ADDREQ_FLAG_ADD = 0x20000000 +HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000 +HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000 +HTTP_ADDREQ_FLAG_COALESCE = HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA +HTTP_ADDREQ_FLAG_REPLACE = (-2147483648) +HSR_ASYNC = WININET_API_FLAG_ASYNC +HSR_SYNC = WININET_API_FLAG_SYNC +HSR_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT +HSR_INITIATE = 0x00000008 +HSR_DOWNLOAD = 0x00000010 +HSR_CHUNKED = 0x00000020 +INTERNET_COOKIE_IS_SECURE = 0x01 +INTERNET_COOKIE_IS_SESSION = 0x02 +INTERNET_COOKIE_THIRD_PARTY = 0x10 +INTERNET_COOKIE_PROMPT_REQUIRED = 0x20 +INTERNET_COOKIE_EVALUATE_P3P = 0x40 +INTERNET_COOKIE_APPLY_P3P = 0x80 +INTERNET_COOKIE_P3P_ENABLED = 0x100 +INTERNET_COOKIE_IS_RESTRICTED = 0x200 +INTERNET_COOKIE_IE6 = 0x400 +INTERNET_COOKIE_IS_LEGACY = 0x800 +FLAG_ICC_FORCE_CONNECTION = 0x00000001 +FLAGS_ERROR_UI_FILTER_FOR_ERRORS = 0x01 +FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = 0x02 +FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = 0x04 +FLAGS_ERROR_UI_FLAGS_NO_UI = 0x08 +FLAGS_ERROR_UI_SERIALIZE_DIALOGS = 0x10 +INTERNET_ERROR_BASE = 12000 +ERROR_INTERNET_OUT_OF_HANDLES = (INTERNET_ERROR_BASE + 1) +ERROR_INTERNET_TIMEOUT = (INTERNET_ERROR_BASE + 2) +ERROR_INTERNET_EXTENDED_ERROR = (INTERNET_ERROR_BASE + 3) +ERROR_INTERNET_INTERNAL_ERROR = (INTERNET_ERROR_BASE + 4) +ERROR_INTERNET_INVALID_URL = (INTERNET_ERROR_BASE + 5) +ERROR_INTERNET_UNRECOGNIZED_SCHEME = (INTERNET_ERROR_BASE + 6) +ERROR_INTERNET_NAME_NOT_RESOLVED = (INTERNET_ERROR_BASE + 7) +ERROR_INTERNET_PROTOCOL_NOT_FOUND = (INTERNET_ERROR_BASE + 8) +ERROR_INTERNET_INVALID_OPTION = (INTERNET_ERROR_BASE + 9) +ERROR_INTERNET_BAD_OPTION_LENGTH = (INTERNET_ERROR_BASE + 10) +ERROR_INTERNET_OPTION_NOT_SETTABLE = (INTERNET_ERROR_BASE + 11) +ERROR_INTERNET_SHUTDOWN = (INTERNET_ERROR_BASE + 12) +ERROR_INTERNET_INCORRECT_USER_NAME = (INTERNET_ERROR_BASE + 13) +ERROR_INTERNET_INCORRECT_PASSWORD = (INTERNET_ERROR_BASE + 14) +ERROR_INTERNET_LOGIN_FAILURE = (INTERNET_ERROR_BASE + 15) +ERROR_INTERNET_INVALID_OPERATION = (INTERNET_ERROR_BASE + 16) +ERROR_INTERNET_OPERATION_CANCELLED = (INTERNET_ERROR_BASE + 17) +ERROR_INTERNET_INCORRECT_HANDLE_TYPE = (INTERNET_ERROR_BASE + 18) +ERROR_INTERNET_INCORRECT_HANDLE_STATE = (INTERNET_ERROR_BASE + 19) +ERROR_INTERNET_NOT_PROXY_REQUEST = (INTERNET_ERROR_BASE + 20) +ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND = (INTERNET_ERROR_BASE + 21) +ERROR_INTERNET_BAD_REGISTRY_PARAMETER = (INTERNET_ERROR_BASE + 22) +ERROR_INTERNET_NO_DIRECT_ACCESS = (INTERNET_ERROR_BASE + 23) +ERROR_INTERNET_NO_CONTEXT = (INTERNET_ERROR_BASE + 24) +ERROR_INTERNET_NO_CALLBACK = (INTERNET_ERROR_BASE + 25) +ERROR_INTERNET_REQUEST_PENDING = (INTERNET_ERROR_BASE + 26) +ERROR_INTERNET_INCORRECT_FORMAT = (INTERNET_ERROR_BASE + 27) +ERROR_INTERNET_ITEM_NOT_FOUND = (INTERNET_ERROR_BASE + 28) +ERROR_INTERNET_CANNOT_CONNECT = (INTERNET_ERROR_BASE + 29) +ERROR_INTERNET_CONNECTION_ABORTED = (INTERNET_ERROR_BASE + 30) +ERROR_INTERNET_CONNECTION_RESET = (INTERNET_ERROR_BASE + 31) +ERROR_INTERNET_FORCE_RETRY = (INTERNET_ERROR_BASE + 32) +ERROR_INTERNET_INVALID_PROXY_REQUEST = (INTERNET_ERROR_BASE + 33) +ERROR_INTERNET_NEED_UI = (INTERNET_ERROR_BASE + 34) +ERROR_INTERNET_HANDLE_EXISTS = (INTERNET_ERROR_BASE + 36) +ERROR_INTERNET_SEC_CERT_DATE_INVALID = (INTERNET_ERROR_BASE + 37) +ERROR_INTERNET_SEC_CERT_CN_INVALID = (INTERNET_ERROR_BASE + 38) +ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR = (INTERNET_ERROR_BASE + 39) +ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR = (INTERNET_ERROR_BASE + 40) +ERROR_INTERNET_MIXED_SECURITY = (INTERNET_ERROR_BASE + 41) +ERROR_INTERNET_CHG_POST_IS_NON_SECURE = (INTERNET_ERROR_BASE + 42) +ERROR_INTERNET_POST_IS_NON_SECURE = (INTERNET_ERROR_BASE + 43) +ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED = (INTERNET_ERROR_BASE + 44) +ERROR_INTERNET_INVALID_CA = (INTERNET_ERROR_BASE + 45) +ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP = (INTERNET_ERROR_BASE + 46) +ERROR_INTERNET_ASYNC_THREAD_FAILED = (INTERNET_ERROR_BASE + 47) +ERROR_INTERNET_REDIRECT_SCHEME_CHANGE = (INTERNET_ERROR_BASE + 48) +ERROR_INTERNET_DIALOG_PENDING = (INTERNET_ERROR_BASE + 49) +ERROR_INTERNET_RETRY_DIALOG = (INTERNET_ERROR_BASE + 50) +ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR = (INTERNET_ERROR_BASE + 52) +ERROR_INTERNET_INSERT_CDROM = (INTERNET_ERROR_BASE + 53) +ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED = (INTERNET_ERROR_BASE + 54) +ERROR_INTERNET_SEC_CERT_ERRORS = (INTERNET_ERROR_BASE + 55) +ERROR_INTERNET_SEC_CERT_NO_REV = (INTERNET_ERROR_BASE + 56) +ERROR_INTERNET_SEC_CERT_REV_FAILED = (INTERNET_ERROR_BASE + 57) +ERROR_FTP_TRANSFER_IN_PROGRESS = (INTERNET_ERROR_BASE + 110) +ERROR_FTP_DROPPED = (INTERNET_ERROR_BASE + 111) +ERROR_FTP_NO_PASSIVE_MODE = (INTERNET_ERROR_BASE + 112) +ERROR_GOPHER_PROTOCOL_ERROR = (INTERNET_ERROR_BASE + 130) +ERROR_GOPHER_NOT_FILE = (INTERNET_ERROR_BASE + 131) +ERROR_GOPHER_DATA_ERROR = (INTERNET_ERROR_BASE + 132) +ERROR_GOPHER_END_OF_DATA = (INTERNET_ERROR_BASE + 133) +ERROR_GOPHER_INVALID_LOCATOR = (INTERNET_ERROR_BASE + 134) +ERROR_GOPHER_INCORRECT_LOCATOR_TYPE = (INTERNET_ERROR_BASE + 135) +ERROR_GOPHER_NOT_GOPHER_PLUS = (INTERNET_ERROR_BASE + 136) +ERROR_GOPHER_ATTRIBUTE_NOT_FOUND = (INTERNET_ERROR_BASE + 137) +ERROR_GOPHER_UNKNOWN_LOCATOR = (INTERNET_ERROR_BASE + 138) +ERROR_HTTP_HEADER_NOT_FOUND = (INTERNET_ERROR_BASE + 150) +ERROR_HTTP_DOWNLEVEL_SERVER = (INTERNET_ERROR_BASE + 151) +ERROR_HTTP_INVALID_SERVER_RESPONSE = (INTERNET_ERROR_BASE + 152) +ERROR_HTTP_INVALID_HEADER = (INTERNET_ERROR_BASE + 153) +ERROR_HTTP_INVALID_QUERY_REQUEST = (INTERNET_ERROR_BASE + 154) +ERROR_HTTP_HEADER_ALREADY_EXISTS = (INTERNET_ERROR_BASE + 155) +ERROR_HTTP_REDIRECT_FAILED = (INTERNET_ERROR_BASE + 156) +ERROR_HTTP_NOT_REDIRECTED = (INTERNET_ERROR_BASE + 160) +ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION = (INTERNET_ERROR_BASE + 161) +ERROR_HTTP_COOKIE_DECLINED = (INTERNET_ERROR_BASE + 162) +ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION = (INTERNET_ERROR_BASE + 168) +ERROR_INTERNET_SECURITY_CHANNEL_ERROR = (INTERNET_ERROR_BASE + 157) +ERROR_INTERNET_UNABLE_TO_CACHE_FILE = (INTERNET_ERROR_BASE + 158) +ERROR_INTERNET_TCPIP_NOT_INSTALLED = (INTERNET_ERROR_BASE + 159) +ERROR_INTERNET_DISCONNECTED = (INTERNET_ERROR_BASE + 163) +ERROR_INTERNET_SERVER_UNREACHABLE = (INTERNET_ERROR_BASE + 164) +ERROR_INTERNET_PROXY_SERVER_UNREACHABLE = (INTERNET_ERROR_BASE + 165) +ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT = (INTERNET_ERROR_BASE + 166) +ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT = (INTERNET_ERROR_BASE + 167) +ERROR_INTERNET_SEC_INVALID_CERT = (INTERNET_ERROR_BASE + 169) +ERROR_INTERNET_SEC_CERT_REVOKED = (INTERNET_ERROR_BASE + 170) +ERROR_INTERNET_FAILED_DUETOSECURITYCHECK = (INTERNET_ERROR_BASE + 171) +ERROR_INTERNET_NOT_INITIALIZED = (INTERNET_ERROR_BASE + 172) +ERROR_INTERNET_NEED_MSN_SSPI_PKG = (INTERNET_ERROR_BASE + 173) +ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = (INTERNET_ERROR_BASE + 174) +INTERNET_ERROR_LAST = ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY +NORMAL_CACHE_ENTRY = 0x00000001 +STICKY_CACHE_ENTRY = 0x00000004 +EDITED_CACHE_ENTRY = 0x00000008 +TRACK_OFFLINE_CACHE_ENTRY = 0x00000010 +TRACK_ONLINE_CACHE_ENTRY = 0x00000020 +SPARSE_CACHE_ENTRY = 0x00010000 +COOKIE_CACHE_ENTRY = 0x00100000 +URLHISTORY_CACHE_ENTRY = 0x00200000 +URLCACHE_FIND_DEFAULT_FILTER = NORMAL_CACHE_ENTRY \ + | COOKIE_CACHE_ENTRY \ + | URLHISTORY_CACHE_ENTRY \ + | TRACK_OFFLINE_CACHE_ENTRY \ + | TRACK_ONLINE_CACHE_ENTRY \ + | STICKY_CACHE_ENTRY +CACHEGROUP_ATTRIBUTE_GET_ALL = (-1) +CACHEGROUP_ATTRIBUTE_BASIC = 0x00000001 +CACHEGROUP_ATTRIBUTE_FLAG = 0x00000002 +CACHEGROUP_ATTRIBUTE_TYPE = 0x00000004 +CACHEGROUP_ATTRIBUTE_QUOTA = 0x00000008 +CACHEGROUP_ATTRIBUTE_GROUPNAME = 0x00000010 +CACHEGROUP_ATTRIBUTE_STORAGE = 0x00000020 +CACHEGROUP_FLAG_NONPURGEABLE = 0x00000001 +CACHEGROUP_FLAG_GIDONLY = 0x00000004 +CACHEGROUP_FLAG_FLUSHURL_ONDELETE = 0x00000002 +CACHEGROUP_SEARCH_ALL = 0x00000000 +CACHEGROUP_SEARCH_BYURL = 0x00000001 +CACHEGROUP_TYPE_INVALID = 0x00000001 +CACHEGROUP_READWRITE_MASK = \ + CACHEGROUP_ATTRIBUTE_TYPE \ + | CACHEGROUP_ATTRIBUTE_QUOTA \ + | CACHEGROUP_ATTRIBUTE_GROUPNAME \ + | CACHEGROUP_ATTRIBUTE_STORAGE +GROUPNAME_MAX_LENGTH = 120 +GROUP_OWNER_STORAGE_SIZE = 4 +CACHE_ENTRY_ATTRIBUTE_FC = 0x00000004 +CACHE_ENTRY_HITRATE_FC = 0x00000010 +CACHE_ENTRY_MODTIME_FC = 0x00000040 +CACHE_ENTRY_EXPTIME_FC = 0x00000080 +CACHE_ENTRY_ACCTIME_FC = 0x00000100 +CACHE_ENTRY_SYNCTIME_FC = 0x00000200 +CACHE_ENTRY_HEADERINFO_FC = 0x00000400 +CACHE_ENTRY_EXEMPT_DELTA_FC = 0x00000800 +INTERNET_CACHE_GROUP_ADD = 0 +INTERNET_CACHE_GROUP_REMOVE = 1 +INTERNET_DIAL_FORCE_PROMPT = 0x2000 +INTERNET_DIAL_SHOW_OFFLINE = 0x4000 +INTERNET_DIAL_UNATTENDED = 0x8000 +INTERENT_GOONLINE_REFRESH = 0x00000001 +INTERENT_GOONLINE_MASK = 0x00000001 +INTERNET_AUTODIAL_FORCE_ONLINE = 1 +INTERNET_AUTODIAL_FORCE_UNATTENDED = 2 +INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4 +INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT = 8 +INTERNET_AUTODIAL_FLAGS_MASK = (INTERNET_AUTODIAL_FORCE_ONLINE | INTERNET_AUTODIAL_FORCE_UNATTENDED | INTERNET_AUTODIAL_FAILIFSECURITYCHECK | INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT) +PROXY_AUTO_DETECT_TYPE_DHCP = 1 +PROXY_AUTO_DETECT_TYPE_DNS_A = 2 +INTERNET_CONNECTION_MODEM = 0x01 +INTERNET_CONNECTION_LAN = 0x02 +INTERNET_CONNECTION_PROXY = 0x04 +INTERNET_CONNECTION_MODEM_BUSY = 0x08 +INTERNET_RAS_INSTALLED = 0x10 +INTERNET_CONNECTION_OFFLINE = 0x20 +INTERNET_CONNECTION_CONFIGURED = 0x40 +INTERNET_CUSTOMDIAL_CONNECT = 0 +INTERNET_CUSTOMDIAL_UNATTENDED = 1 +INTERNET_CUSTOMDIAL_DISCONNECT = 2 +INTERNET_CUSTOMDIAL_SHOWOFFLINE = 4 +INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED = 1 +INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE = 2 +INTERNET_CUSTOMDIAL_CAN_HANGUP = 4 +INTERNET_DIALSTATE_DISCONNECTED = 1 +INTERNET_IDENTITY_FLAG_PRIVATE_CACHE = 0x01 +INTERNET_IDENTITY_FLAG_SHARED_CACHE = 0x02 +INTERNET_IDENTITY_FLAG_CLEAR_DATA = 0x04 +INTERNET_IDENTITY_FLAG_CLEAR_COOKIES = 0x08 +INTERNET_IDENTITY_FLAG_CLEAR_HISTORY = 0x10 +INTERNET_IDENTITY_FLAG_CLEAR_CONTENT = 0x20 +INTERNET_SUPPRESS_RESET_ALL = 0x00 +INTERNET_SUPPRESS_COOKIE_POLICY = 0x01 +INTERNET_SUPPRESS_COOKIE_POLICY_RESET = 0x02 +PRIVACY_TEMPLATE_NO_COOKIES = 0 +PRIVACY_TEMPLATE_HIGH = 1 +PRIVACY_TEMPLATE_MEDIUM_HIGH = 2 +PRIVACY_TEMPLATE_MEDIUM = 3 +PRIVACY_TEMPLATE_MEDIUM_LOW = 4 +PRIVACY_TEMPLATE_LOW = 5 +PRIVACY_TEMPLATE_CUSTOM = 100 +PRIVACY_TEMPLATE_ADVANCED = 101 +PRIVACY_TEMPLATE_MAX = PRIVACY_TEMPLATE_LOW +PRIVACY_TYPE_FIRST_PARTY = 0 +PRIVACY_TYPE_THIRD_PARTY = 1 + +# Generated by h2py from winhttp.h +INTERNET_DEFAULT_PORT = 0 +INTERNET_DEFAULT_HTTP_PORT = 80 +INTERNET_DEFAULT_HTTPS_PORT = 443 +WINHTTP_FLAG_ASYNC = 0x10000000 +WINHTTP_FLAG_SECURE = 0x00800000 +WINHTTP_FLAG_ESCAPE_PERCENT = 0x00000004 +WINHTTP_FLAG_NULL_CODEPAGE = 0x00000008 +WINHTTP_FLAG_BYPASS_PROXY_CACHE = 0x00000100 +WINHTTP_FLAG_REFRESH = WINHTTP_FLAG_BYPASS_PROXY_CACHE +WINHTTP_FLAG_ESCAPE_DISABLE = 0x00000040 +WINHTTP_FLAG_ESCAPE_DISABLE_QUERY = 0x00000080 +SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100 +SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 +SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000 +SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE = 0x00000200 +INTERNET_SCHEME_HTTP = (1) +INTERNET_SCHEME_HTTPS = (2) +WINHTTP_AUTOPROXY_AUTO_DETECT = 0x00000001 +WINHTTP_AUTOPROXY_CONFIG_URL = 0x00000002 +WINHTTP_AUTOPROXY_RUN_INPROCESS = 0x00010000 +WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY = 0x00020000 +WINHTTP_AUTO_DETECT_TYPE_DHCP = 0x00000001 +WINHTTP_AUTO_DETECT_TYPE_DNS_A = 0x00000002 +WINHTTP_TIME_FORMAT_BUFSIZE = 62 +ICU_NO_ENCODE = 0x20000000 +ICU_DECODE = 0x10000000 +ICU_NO_META = 0x08000000 +ICU_ENCODE_SPACES_ONLY = 0x04000000 +ICU_BROWSER_MODE = 0x02000000 +ICU_ENCODE_PERCENT = 0x00001000 +ICU_ESCAPE = (-2147483648) +ICU_ESCAPE_AUTHORITY = 0x00002000 +ICU_REJECT_USERPWD = 0x00004000 +WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0 +WINHTTP_ACCESS_TYPE_NO_PROXY = 1 +WINHTTP_ACCESS_TYPE_NAMED_PROXY = 3 +WINHTTP_OPTION_CALLBACK = 1 +WINHTTP_OPTION_RESOLVE_TIMEOUT = 2 +WINHTTP_OPTION_CONNECT_TIMEOUT = 3 +WINHTTP_OPTION_CONNECT_RETRIES = 4 +WINHTTP_OPTION_SEND_TIMEOUT = 5 +WINHTTP_OPTION_RECEIVE_TIMEOUT = 6 +WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT = 7 +WINHTTP_OPTION_HANDLE_TYPE = 9 +WINHTTP_OPTION_READ_BUFFER_SIZE = 12 +WINHTTP_OPTION_WRITE_BUFFER_SIZE = 13 +WINHTTP_OPTION_PARENT_HANDLE = 21 +WINHTTP_OPTION_EXTENDED_ERROR = 24 +WINHTTP_OPTION_SECURITY_FLAGS = 31 +WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT = 32 +WINHTTP_OPTION_URL = 34 +WINHTTP_OPTION_SECURITY_KEY_BITNESS = 36 +WINHTTP_OPTION_PROXY = 38 +WINHTTP_OPTION_USER_AGENT = 41 +WINHTTP_OPTION_CONTEXT_VALUE = 45 +WINHTTP_OPTION_CLIENT_CERT_CONTEXT = 47 +WINHTTP_OPTION_REQUEST_PRIORITY = 58 +WINHTTP_OPTION_HTTP_VERSION = 59 +WINHTTP_OPTION_DISABLE_FEATURE = 63 +WINHTTP_OPTION_CODEPAGE = 68 +WINHTTP_OPTION_MAX_CONNS_PER_SERVER = 73 +WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER = 74 +WINHTTP_OPTION_AUTOLOGON_POLICY = 77 +WINHTTP_OPTION_SERVER_CERT_CONTEXT = 78 +WINHTTP_OPTION_ENABLE_FEATURE = 79 +WINHTTP_OPTION_WORKER_THREAD_COUNT = 80 +WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT = 81 +WINHTTP_OPTION_PASSPORT_COBRANDING_URL = 82 +WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH = 83 +WINHTTP_OPTION_SECURE_PROTOCOLS = 84 +WINHTTP_OPTION_ENABLETRACING = 85 +WINHTTP_OPTION_PASSPORT_SIGN_OUT = 86 +WINHTTP_OPTION_PASSPORT_RETURN_URL = 87 +WINHTTP_OPTION_REDIRECT_POLICY = 88 +WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS = 89 +WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE = 90 +WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE = 91 +WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE = 92 +WINHTTP_OPTION_CONNECTION_INFO = 93 +WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST = 94 +WINHTTP_OPTION_SPN = 96 +WINHTTP_OPTION_GLOBAL_PROXY_CREDS = 97 +WINHTTP_OPTION_GLOBAL_SERVER_CREDS = 98 +WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT = 99 +WINHTTP_OPTION_REJECT_USERPWD_IN_URL = 100 +WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS = 101 +WINHTTP_LAST_OPTION = WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS +WINHTTP_OPTION_USERNAME = 0x1000 +WINHTTP_OPTION_PASSWORD = 0x1001 +WINHTTP_OPTION_PROXY_USERNAME = 0x1002 +WINHTTP_OPTION_PROXY_PASSWORD = 0x1003 +WINHTTP_CONNS_PER_SERVER_UNLIMITED = (-1) +WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM = 0 +WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW = 1 +WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH = 2 +WINHTTP_AUTOLOGON_SECURITY_LEVEL_DEFAULT = WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM +WINHTTP_OPTION_REDIRECT_POLICY_NEVER = 0 +WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP = 1 +WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS = 2 +WINHTTP_OPTION_REDIRECT_POLICY_LAST = WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS +WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT = WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP +WINHTTP_DISABLE_PASSPORT_AUTH = 0x00000000 +WINHTTP_ENABLE_PASSPORT_AUTH = 0x10000000 +WINHTTP_DISABLE_PASSPORT_KEYRING = 0x20000000 +WINHTTP_ENABLE_PASSPORT_KEYRING = 0x40000000 +WINHTTP_DISABLE_COOKIES = 0x00000001 +WINHTTP_DISABLE_REDIRECTS = 0x00000002 +WINHTTP_DISABLE_AUTHENTICATION = 0x00000004 +WINHTTP_DISABLE_KEEP_ALIVE = 0x00000008 +WINHTTP_ENABLE_SSL_REVOCATION = 0x00000001 +WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION = 0x00000002 +WINHTTP_DISABLE_SPN_SERVER_PORT = 0x00000000 +WINHTTP_ENABLE_SPN_SERVER_PORT = 0x00000001 +WINHTTP_OPTION_SPN_MASK = WINHTTP_ENABLE_SPN_SERVER_PORT +WINHTTP_HANDLE_TYPE_SESSION = 1 +WINHTTP_HANDLE_TYPE_CONNECT = 2 +WINHTTP_HANDLE_TYPE_REQUEST = 3 +WINHTTP_AUTH_SCHEME_BASIC = 0x00000001 +WINHTTP_AUTH_SCHEME_NTLM = 0x00000002 +WINHTTP_AUTH_SCHEME_PASSPORT = 0x00000004 +WINHTTP_AUTH_SCHEME_DIGEST = 0x00000008 +WINHTTP_AUTH_SCHEME_NEGOTIATE = 0x00000010 +WINHTTP_AUTH_TARGET_SERVER = 0x00000000 +WINHTTP_AUTH_TARGET_PROXY = 0x00000001 +SECURITY_FLAG_SECURE = 0x00000001 +SECURITY_FLAG_STRENGTH_WEAK = 0x10000000 +SECURITY_FLAG_STRENGTH_MEDIUM = 0x40000000 +SECURITY_FLAG_STRENGTH_STRONG = 0x20000000 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_REV_FAILED = 0x00000001 +WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CERT = 0x00000002 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_REVOKED = 0x00000004 +WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA = 0x00000008 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID = 0x00000010 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID = 0x00000020 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_WRONG_USAGE = 0x00000040 +WINHTTP_CALLBACK_STATUS_FLAG_SECURITY_CHANNEL_ERROR = (-2147483648) +WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 = 0x00000008 +WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 = 0x00000020 +WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 = 0x00000080 +WINHTTP_FLAG_SECURE_PROTOCOL_ALL = (WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | \ + WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | \ + WINHTTP_FLAG_SECURE_PROTOCOL_TLS1) +WINHTTP_CALLBACK_STATUS_RESOLVING_NAME = 0x00000001 +WINHTTP_CALLBACK_STATUS_NAME_RESOLVED = 0x00000002 +WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER = 0x00000004 +WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER = 0x00000008 +WINHTTP_CALLBACK_STATUS_SENDING_REQUEST = 0x00000010 +WINHTTP_CALLBACK_STATUS_REQUEST_SENT = 0x00000020 +WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE = 0x00000040 +WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED = 0x00000080 +WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION = 0x00000100 +WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED = 0x00000200 +WINHTTP_CALLBACK_STATUS_HANDLE_CREATED = 0x00000400 +WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING = 0x00000800 +WINHTTP_CALLBACK_STATUS_DETECTING_PROXY = 0x00001000 +WINHTTP_CALLBACK_STATUS_REDIRECT = 0x00004000 +WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE = 0x00008000 +WINHTTP_CALLBACK_STATUS_SECURE_FAILURE = 0x00010000 +WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE = 0x00020000 +WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE = 0x00040000 +WINHTTP_CALLBACK_STATUS_READ_COMPLETE = 0x00080000 +WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE = 0x00100000 +WINHTTP_CALLBACK_STATUS_REQUEST_ERROR = 0x00200000 +WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE = 0x00400000 +API_RECEIVE_RESPONSE = (1) +API_QUERY_DATA_AVAILABLE = (2) +API_READ_DATA = (3) +API_WRITE_DATA = (4) +API_SEND_REQUEST = (5) +WINHTTP_CALLBACK_FLAG_RESOLVE_NAME = (WINHTTP_CALLBACK_STATUS_RESOLVING_NAME | WINHTTP_CALLBACK_STATUS_NAME_RESOLVED) +WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER = (WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER | WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER) +WINHTTP_CALLBACK_FLAG_SEND_REQUEST = (WINHTTP_CALLBACK_STATUS_SENDING_REQUEST | WINHTTP_CALLBACK_STATUS_REQUEST_SENT) +WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE = (WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE | WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED) +WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION = (WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION | WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED) +WINHTTP_CALLBACK_FLAG_HANDLES = (WINHTTP_CALLBACK_STATUS_HANDLE_CREATED | WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING) +WINHTTP_CALLBACK_FLAG_DETECTING_PROXY = WINHTTP_CALLBACK_STATUS_DETECTING_PROXY +WINHTTP_CALLBACK_FLAG_REDIRECT = WINHTTP_CALLBACK_STATUS_REDIRECT +WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE = WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE +WINHTTP_CALLBACK_FLAG_SECURE_FAILURE = WINHTTP_CALLBACK_STATUS_SECURE_FAILURE +WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE = WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE +WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE = WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE +WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE = WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE +WINHTTP_CALLBACK_FLAG_READ_COMPLETE = WINHTTP_CALLBACK_STATUS_READ_COMPLETE +WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE = WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE +WINHTTP_CALLBACK_FLAG_REQUEST_ERROR = WINHTTP_CALLBACK_STATUS_REQUEST_ERROR +WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS = (WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE \ + | WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE \ + | WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE \ + | WINHTTP_CALLBACK_STATUS_READ_COMPLETE \ + | WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE \ + | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR) +WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS = (-1) +WINHTTP_QUERY_MIME_VERSION = 0 +WINHTTP_QUERY_CONTENT_TYPE = 1 +WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2 +WINHTTP_QUERY_CONTENT_ID = 3 +WINHTTP_QUERY_CONTENT_DESCRIPTION = 4 +WINHTTP_QUERY_CONTENT_LENGTH = 5 +WINHTTP_QUERY_CONTENT_LANGUAGE = 6 +WINHTTP_QUERY_ALLOW = 7 +WINHTTP_QUERY_PUBLIC = 8 +WINHTTP_QUERY_DATE = 9 +WINHTTP_QUERY_EXPIRES = 10 +WINHTTP_QUERY_LAST_MODIFIED = 11 +WINHTTP_QUERY_MESSAGE_ID = 12 +WINHTTP_QUERY_URI = 13 +WINHTTP_QUERY_DERIVED_FROM = 14 +WINHTTP_QUERY_COST = 15 +WINHTTP_QUERY_LINK = 16 +WINHTTP_QUERY_PRAGMA = 17 +WINHTTP_QUERY_VERSION = 18 +WINHTTP_QUERY_STATUS_CODE = 19 +WINHTTP_QUERY_STATUS_TEXT = 20 +WINHTTP_QUERY_RAW_HEADERS = 21 +WINHTTP_QUERY_RAW_HEADERS_CRLF = 22 +WINHTTP_QUERY_CONNECTION = 23 +WINHTTP_QUERY_ACCEPT = 24 +WINHTTP_QUERY_ACCEPT_CHARSET = 25 +WINHTTP_QUERY_ACCEPT_ENCODING = 26 +WINHTTP_QUERY_ACCEPT_LANGUAGE = 27 +WINHTTP_QUERY_AUTHORIZATION = 28 +WINHTTP_QUERY_CONTENT_ENCODING = 29 +WINHTTP_QUERY_FORWARDED = 30 +WINHTTP_QUERY_FROM = 31 +WINHTTP_QUERY_IF_MODIFIED_SINCE = 32 +WINHTTP_QUERY_LOCATION = 33 +WINHTTP_QUERY_ORIG_URI = 34 +WINHTTP_QUERY_REFERER = 35 +WINHTTP_QUERY_RETRY_AFTER = 36 +WINHTTP_QUERY_SERVER = 37 +WINHTTP_QUERY_TITLE = 38 +WINHTTP_QUERY_USER_AGENT = 39 +WINHTTP_QUERY_WWW_AUTHENTICATE = 40 +WINHTTP_QUERY_PROXY_AUTHENTICATE = 41 +WINHTTP_QUERY_ACCEPT_RANGES = 42 +WINHTTP_QUERY_SET_COOKIE = 43 +WINHTTP_QUERY_COOKIE = 44 +WINHTTP_QUERY_REQUEST_METHOD = 45 +WINHTTP_QUERY_REFRESH = 46 +WINHTTP_QUERY_CONTENT_DISPOSITION = 47 +WINHTTP_QUERY_AGE = 48 +WINHTTP_QUERY_CACHE_CONTROL = 49 +WINHTTP_QUERY_CONTENT_BASE = 50 +WINHTTP_QUERY_CONTENT_LOCATION = 51 +WINHTTP_QUERY_CONTENT_MD5 = 52 +WINHTTP_QUERY_CONTENT_RANGE = 53 +WINHTTP_QUERY_ETAG = 54 +WINHTTP_QUERY_HOST = 55 +WINHTTP_QUERY_IF_MATCH = 56 +WINHTTP_QUERY_IF_NONE_MATCH = 57 +WINHTTP_QUERY_IF_RANGE = 58 +WINHTTP_QUERY_IF_UNMODIFIED_SINCE = 59 +WINHTTP_QUERY_MAX_FORWARDS = 60 +WINHTTP_QUERY_PROXY_AUTHORIZATION = 61 +WINHTTP_QUERY_RANGE = 62 +WINHTTP_QUERY_TRANSFER_ENCODING = 63 +WINHTTP_QUERY_UPGRADE = 64 +WINHTTP_QUERY_VARY = 65 +WINHTTP_QUERY_VIA = 66 +WINHTTP_QUERY_WARNING = 67 +WINHTTP_QUERY_EXPECT = 68 +WINHTTP_QUERY_PROXY_CONNECTION = 69 +WINHTTP_QUERY_UNLESS_MODIFIED_SINCE = 70 +WINHTTP_QUERY_PROXY_SUPPORT = 75 +WINHTTP_QUERY_AUTHENTICATION_INFO = 76 +WINHTTP_QUERY_PASSPORT_URLS = 77 +WINHTTP_QUERY_PASSPORT_CONFIG = 78 +WINHTTP_QUERY_MAX = 78 +WINHTTP_QUERY_CUSTOM = 65535 +WINHTTP_QUERY_FLAG_REQUEST_HEADERS = (-2147483648) +WINHTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000 +WINHTTP_QUERY_FLAG_NUMBER = 0x20000000 +HTTP_STATUS_CONTINUE = 100 +HTTP_STATUS_SWITCH_PROTOCOLS = 101 +HTTP_STATUS_OK = 200 +HTTP_STATUS_CREATED = 201 +HTTP_STATUS_ACCEPTED = 202 +HTTP_STATUS_PARTIAL = 203 +HTTP_STATUS_NO_CONTENT = 204 +HTTP_STATUS_RESET_CONTENT = 205 +HTTP_STATUS_PARTIAL_CONTENT = 206 +HTTP_STATUS_WEBDAV_MULTI_STATUS = 207 +HTTP_STATUS_AMBIGUOUS = 300 +HTTP_STATUS_MOVED = 301 +HTTP_STATUS_REDIRECT = 302 +HTTP_STATUS_REDIRECT_METHOD = 303 +HTTP_STATUS_NOT_MODIFIED = 304 +HTTP_STATUS_USE_PROXY = 305 +HTTP_STATUS_REDIRECT_KEEP_VERB = 307 +HTTP_STATUS_BAD_REQUEST = 400 +HTTP_STATUS_DENIED = 401 +HTTP_STATUS_PAYMENT_REQ = 402 +HTTP_STATUS_FORBIDDEN = 403 +HTTP_STATUS_NOT_FOUND = 404 +HTTP_STATUS_BAD_METHOD = 405 +HTTP_STATUS_NONE_ACCEPTABLE = 406 +HTTP_STATUS_PROXY_AUTH_REQ = 407 +HTTP_STATUS_REQUEST_TIMEOUT = 408 +HTTP_STATUS_CONFLICT = 409 +HTTP_STATUS_GONE = 410 +HTTP_STATUS_LENGTH_REQUIRED = 411 +HTTP_STATUS_PRECOND_FAILED = 412 +HTTP_STATUS_REQUEST_TOO_LARGE = 413 +HTTP_STATUS_URI_TOO_LONG = 414 +HTTP_STATUS_UNSUPPORTED_MEDIA = 415 +HTTP_STATUS_RETRY_WITH = 449 +HTTP_STATUS_SERVER_ERROR = 500 +HTTP_STATUS_NOT_SUPPORTED = 501 +HTTP_STATUS_BAD_GATEWAY = 502 +HTTP_STATUS_SERVICE_UNAVAIL = 503 +HTTP_STATUS_GATEWAY_TIMEOUT = 504 +HTTP_STATUS_VERSION_NOT_SUP = 505 +HTTP_STATUS_FIRST = HTTP_STATUS_CONTINUE +HTTP_STATUS_LAST = HTTP_STATUS_VERSION_NOT_SUP +WINHTTP_ADDREQ_INDEX_MASK = 0x0000FFFF +WINHTTP_ADDREQ_FLAGS_MASK = (-65536) +WINHTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000 +WINHTTP_ADDREQ_FLAG_ADD = 0x20000000 +WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000 +WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000 +WINHTTP_ADDREQ_FLAG_COALESCE = WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA +WINHTTP_ADDREQ_FLAG_REPLACE = (-2147483648) +WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH = 0 +WINHTTP_ERROR_BASE = 12000 +ERROR_WINHTTP_OUT_OF_HANDLES = (WINHTTP_ERROR_BASE + 1) +ERROR_WINHTTP_TIMEOUT = (WINHTTP_ERROR_BASE + 2) +ERROR_WINHTTP_INTERNAL_ERROR = (WINHTTP_ERROR_BASE + 4) +ERROR_WINHTTP_INVALID_URL = (WINHTTP_ERROR_BASE + 5) +ERROR_WINHTTP_UNRECOGNIZED_SCHEME = (WINHTTP_ERROR_BASE + 6) +ERROR_WINHTTP_NAME_NOT_RESOLVED = (WINHTTP_ERROR_BASE + 7) +ERROR_WINHTTP_INVALID_OPTION = (WINHTTP_ERROR_BASE + 9) +ERROR_WINHTTP_OPTION_NOT_SETTABLE = (WINHTTP_ERROR_BASE + 11) +ERROR_WINHTTP_SHUTDOWN = (WINHTTP_ERROR_BASE + 12) +ERROR_WINHTTP_LOGIN_FAILURE = (WINHTTP_ERROR_BASE + 15) +ERROR_WINHTTP_OPERATION_CANCELLED = (WINHTTP_ERROR_BASE + 17) +ERROR_WINHTTP_INCORRECT_HANDLE_TYPE = (WINHTTP_ERROR_BASE + 18) +ERROR_WINHTTP_INCORRECT_HANDLE_STATE = (WINHTTP_ERROR_BASE + 19) +ERROR_WINHTTP_CANNOT_CONNECT = (WINHTTP_ERROR_BASE + 29) +ERROR_WINHTTP_CONNECTION_ERROR = (WINHTTP_ERROR_BASE + 30) +ERROR_WINHTTP_RESEND_REQUEST = (WINHTTP_ERROR_BASE + 32) +ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED = (WINHTTP_ERROR_BASE + 44) +ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN = (WINHTTP_ERROR_BASE + 100) +ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND = (WINHTTP_ERROR_BASE + 101) +ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND = (WINHTTP_ERROR_BASE + 102) +ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN = (WINHTTP_ERROR_BASE + 103) +ERROR_WINHTTP_HEADER_NOT_FOUND = (WINHTTP_ERROR_BASE + 150) +ERROR_WINHTTP_INVALID_SERVER_RESPONSE = (WINHTTP_ERROR_BASE + 152) +ERROR_WINHTTP_INVALID_HEADER = (WINHTTP_ERROR_BASE + 153) +ERROR_WINHTTP_INVALID_QUERY_REQUEST = (WINHTTP_ERROR_BASE + 154) +ERROR_WINHTTP_HEADER_ALREADY_EXISTS = (WINHTTP_ERROR_BASE + 155) +ERROR_WINHTTP_REDIRECT_FAILED = (WINHTTP_ERROR_BASE + 156) +ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR = (WINHTTP_ERROR_BASE + 178) +ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT = (WINHTTP_ERROR_BASE + 166) +ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT = (WINHTTP_ERROR_BASE + 167) +ERROR_WINHTTP_NOT_INITIALIZED = (WINHTTP_ERROR_BASE + 172) +ERROR_WINHTTP_SECURE_FAILURE = (WINHTTP_ERROR_BASE + 175) +ERROR_WINHTTP_SECURE_CERT_DATE_INVALID = (WINHTTP_ERROR_BASE + 37) +ERROR_WINHTTP_SECURE_CERT_CN_INVALID = (WINHTTP_ERROR_BASE + 38) +ERROR_WINHTTP_SECURE_INVALID_CA = (WINHTTP_ERROR_BASE + 45) +ERROR_WINHTTP_SECURE_CERT_REV_FAILED = (WINHTTP_ERROR_BASE + 57) +ERROR_WINHTTP_SECURE_CHANNEL_ERROR = (WINHTTP_ERROR_BASE + 157) +ERROR_WINHTTP_SECURE_INVALID_CERT = (WINHTTP_ERROR_BASE + 169) +ERROR_WINHTTP_SECURE_CERT_REVOKED = (WINHTTP_ERROR_BASE + 170) +ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE = (WINHTTP_ERROR_BASE + 179) +ERROR_WINHTTP_AUTODETECTION_FAILED = (WINHTTP_ERROR_BASE + 180) +ERROR_WINHTTP_HEADER_COUNT_EXCEEDED = (WINHTTP_ERROR_BASE + 181) +ERROR_WINHTTP_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 182) +ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 183) +ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW = (WINHTTP_ERROR_BASE + 184) +ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY = (WINHTTP_ERROR_BASE + 185) +ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY = (WINHTTP_ERROR_BASE + 186) +WINHTTP_ERROR_LAST = (WINHTTP_ERROR_BASE + 186) + +WINHTTP_NO_PROXY_NAME = None +WINHTTP_NO_PROXY_BYPASS = None +WINHTTP_NO_REFERER = None +WINHTTP_DEFAULT_ACCEPT_TYPES = None +WINHTTP_NO_ADDITIONAL_HEADERS = None +WINHTTP_NO_REQUEST_DATA = None diff --git a/typings/win32helper/win32netcon.pyi b/typings/win32helper/win32netcon.pyi new file mode 100644 index 00000000..73795969 --- /dev/null +++ b/typings/win32helper/win32netcon.pyi @@ -0,0 +1,655 @@ +# Generated by h2py from lmaccess.h + +# Included from lmcons.h +CNLEN = 15 +LM20_CNLEN = 15 +DNLEN = CNLEN +LM20_DNLEN = LM20_CNLEN +UNCLEN = (CNLEN+2) +LM20_UNCLEN = (LM20_CNLEN+2) +NNLEN = 80 +LM20_NNLEN = 12 +RMLEN = (UNCLEN+1+NNLEN) +LM20_RMLEN = (LM20_UNCLEN+1+LM20_NNLEN) +SNLEN = 80 +LM20_SNLEN = 15 +STXTLEN = 256 +LM20_STXTLEN = 63 +PATHLEN = 256 +LM20_PATHLEN = 256 +DEVLEN = 80 +LM20_DEVLEN = 8 +EVLEN = 16 +UNLEN = 256 +LM20_UNLEN = 20 +GNLEN = UNLEN +LM20_GNLEN = LM20_UNLEN +PWLEN = 256 +LM20_PWLEN = 14 +SHPWLEN = 8 +CLTYPE_LEN = 12 +MAXCOMMENTSZ = 256 +LM20_MAXCOMMENTSZ = 48 +QNLEN = NNLEN +LM20_QNLEN = LM20_NNLEN +ALERTSZ = 128 +NETBIOS_NAME_LEN = 16 +CRYPT_KEY_LEN = 7 +CRYPT_TXT_LEN = 8 +ENCRYPTED_PWLEN = 16 +SESSION_PWLEN = 24 +SESSION_CRYPT_KLEN = 21 +PARMNUM_ALL = 0 +PARM_ERROR_NONE = 0 +PARMNUM_BASE_INFOLEVEL = 1000 +NULL = 0 +PLATFORM_ID_DOS = 300 +PLATFORM_ID_OS2 = 400 +PLATFORM_ID_NT = 500 +PLATFORM_ID_OSF = 600 +PLATFORM_ID_VMS = 700 +MAX_LANMAN_MESSAGE_ID = 5799 +UF_SCRIPT = 1 +UF_ACCOUNTDISABLE = 2 +UF_HOMEDIR_REQUIRED = 8 +UF_LOCKOUT = 16 +UF_PASSWD_NOTREQD = 32 +UF_PASSWD_CANT_CHANGE = 64 +UF_TEMP_DUPLICATE_ACCOUNT = 256 +UF_NORMAL_ACCOUNT = 512 +UF_INTERDOMAIN_TRUST_ACCOUNT = 2048 +UF_WORKSTATION_TRUST_ACCOUNT = 4096 +UF_SERVER_TRUST_ACCOUNT = 8192 +UF_MACHINE_ACCOUNT_MASK = ( UF_INTERDOMAIN_TRUST_ACCOUNT | \ + UF_WORKSTATION_TRUST_ACCOUNT | \ + UF_SERVER_TRUST_ACCOUNT ) +UF_ACCOUNT_TYPE_MASK = ( \ + UF_TEMP_DUPLICATE_ACCOUNT | \ + UF_NORMAL_ACCOUNT | \ + UF_INTERDOMAIN_TRUST_ACCOUNT | \ + UF_WORKSTATION_TRUST_ACCOUNT | \ + UF_SERVER_TRUST_ACCOUNT \ + ) +UF_DONT_EXPIRE_PASSWD = 65536 +UF_MNS_LOGON_ACCOUNT = 131072 +UF_SETTABLE_BITS = ( \ + UF_SCRIPT | \ + UF_ACCOUNTDISABLE | \ + UF_LOCKOUT | \ + UF_HOMEDIR_REQUIRED | \ + UF_PASSWD_NOTREQD | \ + UF_PASSWD_CANT_CHANGE | \ + UF_ACCOUNT_TYPE_MASK | \ + UF_DONT_EXPIRE_PASSWD | \ + UF_MNS_LOGON_ACCOUNT \ + ) +FILTER_TEMP_DUPLICATE_ACCOUNT = (1) +FILTER_NORMAL_ACCOUNT = (2) +FILTER_INTERDOMAIN_TRUST_ACCOUNT = (8) +FILTER_WORKSTATION_TRUST_ACCOUNT = (16) +FILTER_SERVER_TRUST_ACCOUNT = (32) +LG_INCLUDE_INDIRECT = (1) +AF_OP_PRINT = 1 +AF_OP_COMM = 2 +AF_OP_SERVER = 4 +AF_OP_ACCOUNTS = 8 +AF_SETTABLE_BITS = (AF_OP_PRINT | AF_OP_COMM | \ + AF_OP_SERVER | AF_OP_ACCOUNTS) +UAS_ROLE_STANDALONE = 0 +UAS_ROLE_MEMBER = 1 +UAS_ROLE_BACKUP = 2 +UAS_ROLE_PRIMARY = 3 +USER_NAME_PARMNUM = 1 +USER_PASSWORD_PARMNUM = 3 +USER_PASSWORD_AGE_PARMNUM = 4 +USER_PRIV_PARMNUM = 5 +USER_HOME_DIR_PARMNUM = 6 +USER_COMMENT_PARMNUM = 7 +USER_FLAGS_PARMNUM = 8 +USER_SCRIPT_PATH_PARMNUM = 9 +USER_AUTH_FLAGS_PARMNUM = 10 +USER_FULL_NAME_PARMNUM = 11 +USER_USR_COMMENT_PARMNUM = 12 +USER_PARMS_PARMNUM = 13 +USER_WORKSTATIONS_PARMNUM = 14 +USER_LAST_LOGON_PARMNUM = 15 +USER_LAST_LOGOFF_PARMNUM = 16 +USER_ACCT_EXPIRES_PARMNUM = 17 +USER_MAX_STORAGE_PARMNUM = 18 +USER_UNITS_PER_WEEK_PARMNUM = 19 +USER_LOGON_HOURS_PARMNUM = 20 +USER_PAD_PW_COUNT_PARMNUM = 21 +USER_NUM_LOGONS_PARMNUM = 22 +USER_LOGON_SERVER_PARMNUM = 23 +USER_COUNTRY_CODE_PARMNUM = 24 +USER_CODE_PAGE_PARMNUM = 25 +USER_PRIMARY_GROUP_PARMNUM = 51 +USER_PROFILE = 52 +USER_PROFILE_PARMNUM = 52 +USER_HOME_DIR_DRIVE_PARMNUM = 53 +USER_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_NAME_PARMNUM) +USER_PASSWORD_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_PARMNUM) +USER_PASSWORD_AGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_AGE_PARMNUM) +USER_PRIV_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PRIV_PARMNUM) +USER_HOME_DIR_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_PARMNUM) +USER_COMMENT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_COMMENT_PARMNUM) +USER_FLAGS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_FLAGS_PARMNUM) +USER_SCRIPT_PATH_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_SCRIPT_PATH_PARMNUM) +USER_AUTH_FLAGS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_AUTH_FLAGS_PARMNUM) +USER_FULL_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_FULL_NAME_PARMNUM) +USER_USR_COMMENT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_USR_COMMENT_PARMNUM) +USER_PARMS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PARMS_PARMNUM) +USER_WORKSTATIONS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_WORKSTATIONS_PARMNUM) +USER_LAST_LOGON_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGON_PARMNUM) +USER_LAST_LOGOFF_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGOFF_PARMNUM) +USER_ACCT_EXPIRES_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_ACCT_EXPIRES_PARMNUM) +USER_MAX_STORAGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_MAX_STORAGE_PARMNUM) +USER_UNITS_PER_WEEK_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_UNITS_PER_WEEK_PARMNUM) +USER_LOGON_HOURS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_LOGON_HOURS_PARMNUM) +USER_PAD_PW_COUNT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PAD_PW_COUNT_PARMNUM) +USER_NUM_LOGONS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_NUM_LOGONS_PARMNUM) +USER_LOGON_SERVER_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_LOGON_SERVER_PARMNUM) +USER_COUNTRY_CODE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_COUNTRY_CODE_PARMNUM) +USER_CODE_PAGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_CODE_PAGE_PARMNUM) +USER_PRIMARY_GROUP_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PRIMARY_GROUP_PARMNUM) +USER_HOME_DIR_DRIVE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_DRIVE_PARMNUM) +NULL_USERSETINFO_PASSWD = " " +UNITS_PER_DAY = 24 +UNITS_PER_WEEK = UNITS_PER_DAY * 7 +USER_PRIV_MASK = 3 +USER_PRIV_GUEST = 0 +USER_PRIV_USER = 1 +USER_PRIV_ADMIN = 2 +MAX_PASSWD_LEN = PWLEN +DEF_MIN_PWLEN = 6 +DEF_PWUNIQUENESS = 5 +DEF_MAX_PWHIST = 8 +DEF_MAX_BADPW = 0 +VALIDATED_LOGON = 0 +PASSWORD_EXPIRED = 2 +NON_VALIDATED_LOGON = 3 +VALID_LOGOFF = 1 +MODALS_MIN_PASSWD_LEN_PARMNUM = 1 +MODALS_MAX_PASSWD_AGE_PARMNUM = 2 +MODALS_MIN_PASSWD_AGE_PARMNUM = 3 +MODALS_FORCE_LOGOFF_PARMNUM = 4 +MODALS_PASSWD_HIST_LEN_PARMNUM = 5 +MODALS_ROLE_PARMNUM = 6 +MODALS_PRIMARY_PARMNUM = 7 +MODALS_DOMAIN_NAME_PARMNUM = 8 +MODALS_DOMAIN_ID_PARMNUM = 9 +MODALS_LOCKOUT_DURATION_PARMNUM = 10 +MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM = 11 +MODALS_LOCKOUT_THRESHOLD_PARMNUM = 12 +MODALS_MIN_PASSWD_LEN_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_LEN_PARMNUM) +MODALS_MAX_PASSWD_AGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_MAX_PASSWD_AGE_PARMNUM) +MODALS_MIN_PASSWD_AGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_AGE_PARMNUM) +MODALS_FORCE_LOGOFF_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_FORCE_LOGOFF_PARMNUM) +MODALS_PASSWD_HIST_LEN_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_PASSWD_HIST_LEN_PARMNUM) +MODALS_ROLE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_ROLE_PARMNUM) +MODALS_PRIMARY_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_PRIMARY_PARMNUM) +MODALS_DOMAIN_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_NAME_PARMNUM) +MODALS_DOMAIN_ID_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_ID_PARMNUM) +GROUPIDMASK = 32768 +GROUP_ALL_PARMNUM = 0 +GROUP_NAME_PARMNUM = 1 +GROUP_COMMENT_PARMNUM = 2 +GROUP_ATTRIBUTES_PARMNUM = 3 +GROUP_ALL_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + GROUP_ALL_PARMNUM) +GROUP_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + GROUP_NAME_PARMNUM) +GROUP_COMMENT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + GROUP_COMMENT_PARMNUM) +GROUP_ATTRIBUTES_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + GROUP_ATTRIBUTES_PARMNUM) +LOCALGROUP_NAME_PARMNUM = 1 +LOCALGROUP_COMMENT_PARMNUM = 2 +MAXPERMENTRIES = 64 +ACCESS_NONE = 0 +ACCESS_READ = 1 +ACCESS_WRITE = 2 +ACCESS_CREATE = 4 +ACCESS_EXEC = 8 +ACCESS_DELETE = 16 +ACCESS_ATRIB = 32 +ACCESS_PERM = 64 +ACCESS_GROUP = 32768 +ACCESS_AUDIT = 1 +ACCESS_SUCCESS_OPEN = 16 +ACCESS_SUCCESS_WRITE = 32 +ACCESS_SUCCESS_DELETE = 64 +ACCESS_SUCCESS_ACL = 128 +ACCESS_SUCCESS_MASK = 240 +ACCESS_FAIL_OPEN = 256 +ACCESS_FAIL_WRITE = 512 +ACCESS_FAIL_DELETE = 1024 +ACCESS_FAIL_ACL = 2048 +ACCESS_FAIL_MASK = 3840 +ACCESS_FAIL_SHIFT = 4 +ACCESS_RESOURCE_NAME_PARMNUM = 1 +ACCESS_ATTR_PARMNUM = 2 +ACCESS_COUNT_PARMNUM = 3 +ACCESS_ACCESS_LIST_PARMNUM = 4 +ACCESS_RESOURCE_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + ACCESS_RESOURCE_NAME_PARMNUM) +ACCESS_ATTR_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + ACCESS_ATTR_PARMNUM) +ACCESS_COUNT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + ACCESS_COUNT_PARMNUM) +ACCESS_ACCESS_LIST_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + ACCESS_ACCESS_LIST_PARMNUM) +ACCESS_LETTERS = "RWCXDAP " +NETLOGON_CONTROL_QUERY = 1 +NETLOGON_CONTROL_REPLICATE = 2 +NETLOGON_CONTROL_SYNCHRONIZE = 3 +NETLOGON_CONTROL_PDC_REPLICATE = 4 +NETLOGON_CONTROL_REDISCOVER = 5 +NETLOGON_CONTROL_TC_QUERY = 6 +NETLOGON_CONTROL_TRANSPORT_NOTIFY = 7 +NETLOGON_CONTROL_FIND_USER = 8 +NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL = 65531 +NETLOGON_CONTROL_BACKUP_CHANGE_LOG = 65532 +NETLOGON_CONTROL_TRUNCATE_LOG = 65533 +NETLOGON_CONTROL_SET_DBFLAG = 65534 +NETLOGON_CONTROL_BREAKPOINT = 65535 +NETLOGON_REPLICATION_NEEDED = 1 +NETLOGON_REPLICATION_IN_PROGRESS = 2 +NETLOGON_FULL_SYNC_REPLICATION = 4 +NETLOGON_REDO_NEEDED = 8 + +###################### +# Manual stuff + +TEXT=lambda x:x + +MAX_PREFERRED_LENGTH = -1 +PARM_ERROR_UNKNOWN = -1 +MESSAGE_FILENAME = TEXT("NETMSG") +OS2MSG_FILENAME = TEXT("BASE") +HELP_MSG_FILENAME = TEXT("NETH") +BACKUP_MSG_FILENAME = TEXT("BAK.MSG") +TIMEQ_FOREVER = -1 +USER_MAXSTORAGE_UNLIMITED = -1 +USER_NO_LOGOFF = -1 +DEF_MAX_PWAGE = TIMEQ_FOREVER +DEF_MIN_PWAGE = 0 +DEF_FORCE_LOGOFF = -1 +ONE_DAY = 1*24*3600 +GROUP_SPECIALGRP_USERS = "USERS" +GROUP_SPECIALGRP_ADMINS = "ADMINS" +GROUP_SPECIALGRP_GUESTS = "GUESTS" +GROUP_SPECIALGRP_LOCAL = "LOCAL" +ACCESS_ALL = ( ACCESS_READ | ACCESS_WRITE | ACCESS_CREATE | ACCESS_EXEC | ACCESS_DELETE | ACCESS_ATRIB | ACCESS_PERM ) + +# From lmserver.h +SV_PLATFORM_ID_OS2 = 400 +SV_PLATFORM_ID_NT = 500 +MAJOR_VERSION_MASK = 15 +SV_TYPE_WORKSTATION = 1 +SV_TYPE_SERVER = 2 +SV_TYPE_SQLSERVER = 4 +SV_TYPE_DOMAIN_CTRL = 8 +SV_TYPE_DOMAIN_BAKCTRL = 16 +SV_TYPE_TIME_SOURCE = 32 +SV_TYPE_AFP = 64 +SV_TYPE_NOVELL = 128 +SV_TYPE_DOMAIN_MEMBER = 256 +SV_TYPE_PRINTQ_SERVER = 512 +SV_TYPE_DIALIN_SERVER = 1024 +SV_TYPE_XENIX_SERVER = 2048 +SV_TYPE_SERVER_UNIX = SV_TYPE_XENIX_SERVER +SV_TYPE_NT = 4096 +SV_TYPE_WFW = 8192 +SV_TYPE_SERVER_MFPN = 16384 +SV_TYPE_SERVER_NT = 32768 +SV_TYPE_POTENTIAL_BROWSER = 65536 +SV_TYPE_BACKUP_BROWSER = 131072 +SV_TYPE_MASTER_BROWSER = 262144 +SV_TYPE_DOMAIN_MASTER = 524288 +SV_TYPE_SERVER_OSF = 1048576 +SV_TYPE_SERVER_VMS = 2097152 +SV_TYPE_WINDOWS = 4194304 +SV_TYPE_DFS = 8388608 +SV_TYPE_CLUSTER_NT = 16777216 +SV_TYPE_DCE = 268435456 +SV_TYPE_ALTERNATE_XPORT = 536870912 +SV_TYPE_LOCAL_LIST_ONLY = 1073741824 +SV_TYPE_DOMAIN_ENUM = -2147483648 +SV_TYPE_ALL = -1 +SV_NODISC = -1 +SV_USERSECURITY = 1 +SV_SHARESECURITY = 0 +SV_HIDDEN = 1 +SV_VISIBLE = 0 +SV_PLATFORM_ID_PARMNUM = 101 +SV_NAME_PARMNUM = 102 +SV_VERSION_MAJOR_PARMNUM = 103 +SV_VERSION_MINOR_PARMNUM = 104 +SV_TYPE_PARMNUM = 105 +SV_COMMENT_PARMNUM = 5 +SV_USERS_PARMNUM = 107 +SV_DISC_PARMNUM = 10 +SV_HIDDEN_PARMNUM = 16 +SV_ANNOUNCE_PARMNUM = 17 +SV_ANNDELTA_PARMNUM = 18 +SV_USERPATH_PARMNUM = 112 +SV_ULIST_MTIME_PARMNUM = 401 +SV_GLIST_MTIME_PARMNUM = 402 +SV_ALIST_MTIME_PARMNUM = 403 +SV_ALERTS_PARMNUM = 11 +SV_SECURITY_PARMNUM = 405 +SV_NUMADMIN_PARMNUM = 406 +SV_LANMASK_PARMNUM = 407 +SV_GUESTACC_PARMNUM = 408 +SV_CHDEVQ_PARMNUM = 410 +SV_CHDEVJOBS_PARMNUM = 411 +SV_CONNECTIONS_PARMNUM = 412 +SV_SHARES_PARMNUM = 413 +SV_OPENFILES_PARMNUM = 414 +SV_SESSREQS_PARMNUM = 417 +SV_ACTIVELOCKS_PARMNUM = 419 +SV_NUMREQBUF_PARMNUM = 420 +SV_NUMBIGBUF_PARMNUM = 422 +SV_NUMFILETASKS_PARMNUM = 423 +SV_ALERTSCHED_PARMNUM = 37 +SV_ERRORALERT_PARMNUM = 38 +SV_LOGONALERT_PARMNUM = 39 +SV_ACCESSALERT_PARMNUM = 40 +SV_DISKALERT_PARMNUM = 41 +SV_NETIOALERT_PARMNUM = 42 +SV_MAXAUDITSZ_PARMNUM = 43 +SV_SRVHEURISTICS_PARMNUM = 431 +SV_SESSOPENS_PARMNUM = 501 +SV_SESSVCS_PARMNUM = 502 +SV_OPENSEARCH_PARMNUM = 503 +SV_SIZREQBUF_PARMNUM = 504 +SV_INITWORKITEMS_PARMNUM = 505 +SV_MAXWORKITEMS_PARMNUM = 506 +SV_RAWWORKITEMS_PARMNUM = 507 +SV_IRPSTACKSIZE_PARMNUM = 508 +SV_MAXRAWBUFLEN_PARMNUM = 509 +SV_SESSUSERS_PARMNUM = 510 +SV_SESSCONNS_PARMNUM = 511 +SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM = 512 +SV_MAXPAGEDMEMORYUSAGE_PARMNUM = 513 +SV_ENABLESOFTCOMPAT_PARMNUM = 514 +SV_ENABLEFORCEDLOGOFF_PARMNUM = 515 +SV_TIMESOURCE_PARMNUM = 516 +SV_ACCEPTDOWNLEVELAPIS_PARMNUM = 517 +SV_LMANNOUNCE_PARMNUM = 518 +SV_DOMAIN_PARMNUM = 519 +SV_MAXCOPYREADLEN_PARMNUM = 520 +SV_MAXCOPYWRITELEN_PARMNUM = 521 +SV_MINKEEPSEARCH_PARMNUM = 522 +SV_MAXKEEPSEARCH_PARMNUM = 523 +SV_MINKEEPCOMPLSEARCH_PARMNUM = 524 +SV_MAXKEEPCOMPLSEARCH_PARMNUM = 525 +SV_THREADCOUNTADD_PARMNUM = 526 +SV_NUMBLOCKTHREADS_PARMNUM = 527 +SV_SCAVTIMEOUT_PARMNUM = 528 +SV_MINRCVQUEUE_PARMNUM = 529 +SV_MINFREEWORKITEMS_PARMNUM = 530 +SV_XACTMEMSIZE_PARMNUM = 531 +SV_THREADPRIORITY_PARMNUM = 532 +SV_MAXMPXCT_PARMNUM = 533 +SV_OPLOCKBREAKWAIT_PARMNUM = 534 +SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM = 535 +SV_ENABLEOPLOCKS_PARMNUM = 536 +SV_ENABLEOPLOCKFORCECLOSE_PARMNUM = 537 +SV_ENABLEFCBOPENS_PARMNUM = 538 +SV_ENABLERAW_PARMNUM = 539 +SV_ENABLESHAREDNETDRIVES_PARMNUM = 540 +SV_MINFREECONNECTIONS_PARMNUM = 541 +SV_MAXFREECONNECTIONS_PARMNUM = 542 +SV_INITSESSTABLE_PARMNUM = 543 +SV_INITCONNTABLE_PARMNUM = 544 +SV_INITFILETABLE_PARMNUM = 545 +SV_INITSEARCHTABLE_PARMNUM = 546 +SV_ALERTSCHEDULE_PARMNUM = 547 +SV_ERRORTHRESHOLD_PARMNUM = 548 +SV_NETWORKERRORTHRESHOLD_PARMNUM = 549 +SV_DISKSPACETHRESHOLD_PARMNUM = 550 +SV_MAXLINKDELAY_PARMNUM = 552 +SV_MINLINKTHROUGHPUT_PARMNUM = 553 +SV_LINKINFOVALIDTIME_PARMNUM = 554 +SV_SCAVQOSINFOUPDATETIME_PARMNUM = 555 +SV_MAXWORKITEMIDLETIME_PARMNUM = 556 +SV_MAXRAWWORKITEMS_PARMNUM = 557 +SV_PRODUCTTYPE_PARMNUM = 560 +SV_SERVERSIZE_PARMNUM = 561 +SV_CONNECTIONLESSAUTODISC_PARMNUM = 562 +SV_SHARINGVIOLATIONRETRIES_PARMNUM = 563 +SV_SHARINGVIOLATIONDELAY_PARMNUM = 564 +SV_MAXGLOBALOPENSEARCH_PARMNUM = 565 +SV_REMOVEDUPLICATESEARCHES_PARMNUM = 566 +SV_LOCKVIOLATIONRETRIES_PARMNUM = 567 +SV_LOCKVIOLATIONOFFSET_PARMNUM = 568 +SV_LOCKVIOLATIONDELAY_PARMNUM = 569 +SV_MDLREADSWITCHOVER_PARMNUM = 570 +SV_CACHEDOPENLIMIT_PARMNUM = 571 +SV_CRITICALTHREADS_PARMNUM = 572 +SV_RESTRICTNULLSESSACCESS_PARMNUM = 573 +SV_ENABLEWFW311DIRECTIPX_PARMNUM = 574 +SV_OTHERQUEUEAFFINITY_PARMNUM = 575 +SV_QUEUESAMPLESECS_PARMNUM = 576 +SV_BALANCECOUNT_PARMNUM = 577 +SV_PREFERREDAFFINITY_PARMNUM = 578 +SV_MAXFREERFCBS_PARMNUM = 579 +SV_MAXFREEMFCBS_PARMNUM = 580 +SV_MAXFREELFCBS_PARMNUM = 581 +SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM = 582 +SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM = 583 +SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM = 584 +SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM = 585 +SV_MAXTHREADSPERQUEUE_PARMNUM = 586 +SV_CACHEDDIRECTORYLIMIT_PARMNUM = 587 +SV_MAXCOPYLENGTH_PARMNUM = 588 +SV_ENABLEBULKTRANSFER_PARMNUM = 589 +SV_ENABLECOMPRESSION_PARMNUM = 590 +SV_AUTOSHAREWKS_PARMNUM = 591 +SV_AUTOSHARESERVER_PARMNUM = 592 +SV_ENABLESECURITYSIGNATURE_PARMNUM = 593 +SV_REQUIRESECURITYSIGNATURE_PARMNUM = 594 +SV_MINCLIENTBUFFERSIZE_PARMNUM = 595 +SV_CONNECTIONNOSESSIONSTIMEOUT_PARMNUM = 596 +SVI1_NUM_ELEMENTS = 5 +SVI2_NUM_ELEMENTS = 40 +SVI3_NUM_ELEMENTS = 44 +SW_AUTOPROF_LOAD_MASK = 1 +SW_AUTOPROF_SAVE_MASK = 2 +SV_MAX_SRV_HEUR_LEN = 32 +SV_USERS_PER_LICENSE = 5 +SVTI2_REMAP_PIPE_NAMES = 2 + +# Generated by h2py from lmshare.h +SHARE_NETNAME_PARMNUM = 1 +SHARE_TYPE_PARMNUM = 3 +SHARE_REMARK_PARMNUM = 4 +SHARE_PERMISSIONS_PARMNUM = 5 +SHARE_MAX_USES_PARMNUM = 6 +SHARE_CURRENT_USES_PARMNUM = 7 +SHARE_PATH_PARMNUM = 8 +SHARE_PASSWD_PARMNUM = 9 +SHARE_FILE_SD_PARMNUM = 501 +SHI1_NUM_ELEMENTS = 4 +SHI2_NUM_ELEMENTS = 10 +STYPE_DISKTREE = 0 +STYPE_PRINTQ = 1 +STYPE_DEVICE = 2 +STYPE_IPC = 3 +STYPE_SPECIAL = -2147483648 +SHI1005_FLAGS_DFS = 1 +SHI1005_FLAGS_DFS_ROOT = 2 +COW_PERMACHINE = 4 +COW_PERUSER = 8 +CSC_CACHEABLE = 16 +CSC_NOFLOWOPS = 32 +CSC_AUTO_INWARD = 64 +CSC_AUTO_OUTWARD = 128 +SHI1005_VALID_FLAGS_SET = ( CSC_CACHEABLE | \ + CSC_NOFLOWOPS | \ + CSC_AUTO_INWARD | \ + CSC_AUTO_OUTWARD| \ + COW_PERMACHINE | \ + COW_PERUSER ) +SHI1007_VALID_FLAGS_SET = SHI1005_VALID_FLAGS_SET +SESS_GUEST = 1 +SESS_NOENCRYPTION = 2 +SESI1_NUM_ELEMENTS = 8 +SESI2_NUM_ELEMENTS = 9 +PERM_FILE_READ = 1 +PERM_FILE_WRITE = 2 +PERM_FILE_CREATE = 4 + +# Generated by h2py from d:\mssdk\include\winnetwk.h +WNNC_NET_MSNET = 65536 +WNNC_NET_LANMAN = 131072 +WNNC_NET_NETWARE = 196608 +WNNC_NET_VINES = 262144 +WNNC_NET_10NET = 327680 +WNNC_NET_LOCUS = 393216 +WNNC_NET_SUN_PC_NFS = 458752 +WNNC_NET_LANSTEP = 524288 +WNNC_NET_9TILES = 589824 +WNNC_NET_LANTASTIC = 655360 +WNNC_NET_AS400 = 720896 +WNNC_NET_FTP_NFS = 786432 +WNNC_NET_PATHWORKS = 851968 +WNNC_NET_LIFENET = 917504 +WNNC_NET_POWERLAN = 983040 +WNNC_NET_BWNFS = 1048576 +WNNC_NET_COGENT = 1114112 +WNNC_NET_FARALLON = 1179648 +WNNC_NET_APPLETALK = 1245184 +WNNC_NET_INTERGRAPH = 1310720 +WNNC_NET_SYMFONET = 1376256 +WNNC_NET_CLEARCASE = 1441792 +WNNC_NET_FRONTIER = 1507328 +WNNC_NET_BMC = 1572864 +WNNC_NET_DCE = 1638400 +WNNC_NET_DECORB = 2097152 +WNNC_NET_PROTSTOR = 2162688 +WNNC_NET_FJ_REDIR = 2228224 +WNNC_NET_DISTINCT = 2293760 +WNNC_NET_TWINS = 2359296 +WNNC_NET_RDR2SAMPLE = 2424832 +RESOURCE_CONNECTED = 1 +RESOURCE_GLOBALNET = 2 +RESOURCE_REMEMBERED = 3 +RESOURCE_RECENT = 4 +RESOURCE_CONTEXT = 5 +RESOURCETYPE_ANY = 0 +RESOURCETYPE_DISK = 1 +RESOURCETYPE_PRINT = 2 +RESOURCETYPE_RESERVED = 8 +RESOURCETYPE_UNKNOWN = -1 +RESOURCEUSAGE_CONNECTABLE = 1 +RESOURCEUSAGE_CONTAINER = 2 +RESOURCEUSAGE_NOLOCALDEVICE = 4 +RESOURCEUSAGE_SIBLING = 8 +RESOURCEUSAGE_ATTACHED = 16 +RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED) +RESOURCEUSAGE_RESERVED = -2147483648 +RESOURCEDISPLAYTYPE_GENERIC = 0 +RESOURCEDISPLAYTYPE_DOMAIN = 1 +RESOURCEDISPLAYTYPE_SERVER = 2 +RESOURCEDISPLAYTYPE_SHARE = 3 +RESOURCEDISPLAYTYPE_FILE = 4 +RESOURCEDISPLAYTYPE_GROUP = 5 +RESOURCEDISPLAYTYPE_NETWORK = 6 +RESOURCEDISPLAYTYPE_ROOT = 7 +RESOURCEDISPLAYTYPE_SHAREADMIN = 8 +RESOURCEDISPLAYTYPE_DIRECTORY = 9 +RESOURCEDISPLAYTYPE_TREE = 10 +RESOURCEDISPLAYTYPE_NDSCONTAINER = 11 +NETPROPERTY_PERSISTENT = 1 +CONNECT_UPDATE_PROFILE = 1 +CONNECT_UPDATE_RECENT = 2 +CONNECT_TEMPORARY = 4 +CONNECT_INTERACTIVE = 8 +CONNECT_PROMPT = 16 +CONNECT_NEED_DRIVE = 32 +CONNECT_REFCOUNT = 64 +CONNECT_REDIRECT = 128 +CONNECT_LOCALDRIVE = 256 +CONNECT_CURRENT_MEDIA = 512 +CONNECT_DEFERRED = 1024 +CONNECT_RESERVED = -16777216 +CONNDLG_RO_PATH = 1 +CONNDLG_CONN_POINT = 2 +CONNDLG_USE_MRU = 4 +CONNDLG_HIDE_BOX = 8 +CONNDLG_PERSIST = 16 +CONNDLG_NOT_PERSIST = 32 +DISC_UPDATE_PROFILE = 1 +DISC_NO_FORCE = 64 +UNIVERSAL_NAME_INFO_LEVEL = 1 +REMOTE_NAME_INFO_LEVEL = 2 +WNFMT_MULTILINE = 1 +WNFMT_ABBREVIATED = 2 +WNFMT_INENUM = 16 +WNFMT_CONNECTION = 32 +NETINFO_DLL16 = 1 +NETINFO_DISKRED = 4 +NETINFO_PRINTERRED = 8 +RP_LOGON = 1 +RP_INIFILE = 2 +PP_DISPLAYERRORS = 1 +WNCON_FORNETCARD = 1 +WNCON_NOTROUTED = 2 +WNCON_SLOWLINK = 4 +WNCON_DYNAMIC = 8 + +## NETSETUP_NAME_TYPE, used with NetValidateName +NetSetupUnknown = 0 +NetSetupMachine = 1 +NetSetupWorkgroup = 2 +NetSetupDomain = 3 +NetSetupNonExistentDomain = 4 +NetSetupDnsMachine = 5 + +## NETSETUP_JOIN_STATUS, use with NetGetJoinInformation +NetSetupUnknownStatus = 0 +NetSetupUnjoined = 1 +NetSetupWorkgroupName = 2 +NetSetupDomainName = 3 + +NetValidateAuthentication = 1 +NetValidatePasswordChange = 2 +NetValidatePasswordReset = 3 diff --git a/typings/win32helper/win32typing.pyi b/typings/win32helper/win32typing.pyi new file mode 100644 index 00000000..ff7cdbae --- /dev/null +++ b/typings/win32helper/win32typing.pyi @@ -0,0 +1,51700 @@ +__all__=['', 'COMMTIMEOUTS', 'CopyProgressRoutine', 'DOCINFO', 'ExportCallback', 'FORM_INFO_1', 'ImportCallback', 'LARGE_INTEGER', 'NCB', 'PRINTER_DEFAULTS', 'PyACL', 'PyBITMAP', 'PyBLENDFUNCTION', 'PyCEHANDLE', 'PyCERTSTORE', 'PyCERT_ALT_NAME_ENTRY', 'PyCERT_ALT_NAME_INFO', 'PyCERT_AUTHORITY_KEY_ID_INFO', 'PyCERT_BASIC_CONSTRAINTS2_INFO', 'PyCERT_BASIC_CONSTRAINTS_INFO', 'PyCERT_CONTEXT', 'PyCERT_EXTENSION', 'PyCERT_KEY_ATTRIBUTES_INFO', 'PyCERT_NAME_INFO', 'PyCERT_NAME_VALUE', 'PyCERT_OTHER_NAME', 'PyCERT_POLICY_INFO', 'PyCERT_PUBLIC_KEY_INFO', 'PyCOMSTAT', 'PyCOORD', 'PyCREDENTIAL', 'PyCREDENTIAL_ATTRIBUTE', 'PyCREDENTIAL_TARGET_INFORMATION', 'PyCREDUI_INFO', 'PyCRYPTHASH', 'PyCRYPTKEY', 'PyCRYPTMSG', 'PyCRYPTPROTECT_PROMPTSTRUCT', 'PyCRYPTPROV', 'PyCRYPT_ALGORITHM_IDENTIFIER', 'PyCRYPT_ATTRIBUTE', 'PyCRYPT_BIT_BLOB', 'PyCRYPT_DECRYPT_MESSAGE_PARA', 'PyCRYPT_ENCRYPT_MESSAGE_PARA', 'PyCRYPT_SIGN_MESSAGE_PARA', 'PyCRYPT_VERIFY_MESSAGE_PARA', 'PyCTL_CONTEXT', 'PyCTL_USAGE', 'PyConsoleScreenBuffer', 'PyCredHandle', 'PyCtxtHandle', 'PyDCB', 'PyDEVMODE', 'PyDEVMODEW', 'PyDISPLAY_DEVICE', 'PyDLGITEMTEMPLATE', 'PyDLGTEMPLATE', 'PyDS_HANDLE', 'PyDS_NAME_RESULT_ITEM', 'PyDateTime', 'PyDialogTemplate', 'PyEVTLOG_HANDLE', 'PyEVT_HANDLE', 'PyEVT_RPC_LOGIN', 'PyEventLogRecord', 'PyGROUP_INFO_0', 'PyGROUP_INFO_1', 'PyGROUP_INFO_1002', 'PyGROUP_INFO_1005', 'PyGROUP_INFO_2', 'PyGROUP_USERS_INFO_0', 'PyGROUP_USERS_INFO_1', 'PyGdiHANDLE', 'PyGetSignerCertificate', 'PyHANDLE', 'PyHDESK', 'PyHDEVNOTIFY', 'PyHHNTRACK', 'PyHHN_NOTIFY', 'PyHH_AKLINK', 'PyHH_FTS_QUERY', 'PyHH_POPUP', 'PyHH_WINTYPE', 'PyHINTERNET', 'PyHKEY', 'PyHTHEME', 'PyHWINSTA', 'PyICONINFO', 'PyIID', 'PyINPUT_RECORD', 'PyLOCALGROUP_INFO_0', 'PyLOCALGROUP_INFO_1', 'PyLOCALGROUP_INFO_1002', 'PyLOCALGROUP_MEMBERS_INFO_0', 'PyLOCALGROUP_MEMBERS_INFO_1', 'PyLOCALGROUP_MEMBERS_INFO_2', 'PyLOCALGROUP_MEMBERS_INFO_3', 'PyLOGBRUSH', 'PyLOGFONT', 'PyLSA_HANDLE', 'PyLUID_AND_ATTRIBUTES', 'PyLsaLogon_HANDLE', 'PyMSG', 'PyNETRESOURCE', 'PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG', 'PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG', 'PyNET_VALIDATE_PERSISTED_FIELDS', 'PyNMHDR', 'PyNOTIFYICONDATA', 'PyOVERLAPPED', 'PyOVERLAPPEDReadBuffer', 'PyPERF_COUNTER_DEFINITION', 'PyPERF_OBJECT_TYPE', 'PyPOINT', 'PyPROFILEINFO', 'PyPerfMonManager', 'PyPrinterHANDLE', 'PyRECT', 'PyResourceId', 'PySCROLLINFO', 'PySC_HANDLE', 'PySECURITY_ATTRIBUTES', 'PySECURITY_DESCRIPTOR', 'PySERVER_INFO_100', 'PySERVER_INFO_101', 'PySERVER_INFO_102', 'PySERVER_INFO_402', 'PySERVER_INFO_403', 'PySERVER_INFO_502', 'PySERVER_INFO_503', 'PySHARE_INFO_0', 'PySHARE_INFO_1', 'PySHARE_INFO_2', 'PySHARE_INFO_501', 'PySHARE_INFO_502', 'PySID', 'PySID_AND_ATTRIBUTES', 'PySIZE', 'PySMALL_RECT', 'PySTARTUPINFO', 'PySecBuffer', 'PySecBufferDesc', 'PyTOKEN_GROUPS', 'PyTOKEN_PRIVILEGES', 'PyTRIVERTEX', 'PyTRUSTEE', 'PyTS_HANDLE', 'PyTime', 'PyUSER_INFO_0', 'PyUSER_INFO_1', 'PyUSER_INFO_10', 'PyUSER_INFO_1003', 'PyUSER_INFO_1005', 'PyUSER_INFO_1006', 'PyUSER_INFO_1007', 'PyUSER_INFO_1008', 'PyUSER_INFO_1009', 'PyUSER_INFO_1010', 'PyUSER_INFO_1011', 'PyUSER_INFO_11', 'PyUSER_INFO_2', 'PyUSER_INFO_20', 'PyUSER_INFO_3', 'PyUSER_INFO_4', 'PyUSER_MODALS_INFO_0', 'PyUSER_MODALS_INFO_1', 'PyUSER_MODALS_INFO_2', 'PyUSER_MODALS_INFO_3', 'PyUSE_INFO_0', 'PyUSE_INFO_1', 'PyUSE_INFO_2', 'PyUSE_INFO_3', 'PyUnicode', 'PyUrlCacheHANDLE', 'PyWAVEFORMATEX', 'PyWINHTTP_AUTOPROXY_OPTIONS', 'PyWINHTTP_PROXY_INFO', 'PyWKSTA_INFO_100', 'PyWKSTA_INFO_101', 'PyWKSTA_INFO_102', 'PyWKSTA_INFO_302', 'PyWKSTA_INFO_402', 'PyWKSTA_INFO_502', 'PyWKSTA_TRANSPORT_INFO_0', 'PyWKSTA_USER_INFO_0', 'PyWKSTA_USER_INFO_1', 'PyWNDCLASS', 'PyXFORM', 'Pymmapfile', 'RASDIALEXTENSIONS', 'RASDIALPARAMS', 'SC_ACTION', 'SERVICE_FAILURE_ACTIONS', 'SERVICE_STATUS', 'TRACKMOUSEEVENT', 'ULARGE_INTEGER', 'WIN32_FIND_DATA', 'com_error', 'connection', 'cursor', 'error', 'COMPONENT', 'COMPONENTSOPT', 'COMPPOS', 'COMPSTATEINFO', 'DEFCONTENTMENU', 'ELEMDESC', 'EXP_DARWIN_LINK', 'EXP_SPECIAL_FOLDER', 'EXP_SZ_LINK', 'FUNCDESC', 'IDLDESC', 'MAPIINIT_0', 'NT_CONSOLE_PROPS', 'NT_FE_CONSOLE_PROPS', 'PROPSPEC', 'PyADSVALUE', 'PyADS_ATTR_INFO', 'PyADS_OBJECT_INFO', 'PyADS_SEARCHPREF_INFO', 'PyBIND_OPTS', 'PyCMINVOKECOMMANDINFO', 'PyDSBCAPS', 'PyDSBUFFERDESC', 'PyDSCAPS', 'PyDSCBCAPS', 'PyDSCBUFFERDESC', 'PyDSCCAPS', 'PyDSOP_FILTER_FLAGS', 'PyDSOP_SCOPE_INIT_INFO', 'PyDSOP_SCOPE_INIT_INFOs', 'PyDSOP_UPLEVEL_FILTER_FLAGS', 'PyFORMATETC', 'PyGFileOperationProgressSink', 'PyGSecurityInformation', 'PyIADesktopP2', 'PyIADs', 'PyIADsContainer', 'PyIADsUser', 'PyIActiveDesktop', 'PyIActiveDesktopP', 'PyIActiveScriptDebug', 'PyIActiveScriptError', 'PyIActiveScriptErrorDebug', 'PyIActiveScriptParseProcedure', 'PyIActiveScriptSite', 'PyIActiveScriptSiteDebug', 'PyIAddrBook', 'PyIApplicationDebugger', 'PyIApplicationDestinations', 'PyIApplicationDocumentLists', 'PyIAsyncOperation', 'PyIAttach', 'PyIBindCtx', 'PyIBrowserFrameOptions', 'PyICancelMethodCalls', 'PyICatInformation', 'PyICatRegister', 'PyICategoryProvider', 'PyIClassFactory', 'PyIClientSecurity', 'PyIColumnProvider', 'PyIConnectionPoint', 'PyIConnectionPointContainer', 'PyIContext', 'PyIContextMenu', 'PyICopyHookA', 'PyICopyHookW', 'PyICreateTypeInfo', 'PyICreateTypeLib', 'PyICreateTypeLib2', 'PyICurrentItem', 'PyICustomDestinationList', 'PyIDL', 'PyIDataObject', 'PyIDebugApplication', 'PyIDebugApplicationNode', 'PyIDebugApplicationNodeEvents', 'PyIDebugApplicationThread', 'PyIDebugCodeContext', 'PyIDebugDocument', 'PyIDebugDocumentContext', 'PyIDebugDocumentHelper', 'PyIDebugDocumentHost', 'PyIDebugDocumentInfo', 'PyIDebugDocumentProvider', 'PyIDebugDocumentText', 'PyIDebugDocumentTextAuthor', 'PyIDebugDocumentTextEvents', 'PyIDebugDocumentTextExternalAuthor', 'PyIDebugExpression', 'PyIDebugExpressionCallBack', 'PyIDebugExpressionContext', 'PyIDebugProperty', 'PyIDebugSessionProvider', 'PyIDebugStackFrame', 'PyIDebugStackFrameSniffer', 'PyIDebugStackFrameSnifferEx', 'PyIDebugSyncOperation', 'PyIDefaultExtractIconInit', 'PyIDirectSound', 'PyIDirectSoundBuffer', 'PyIDirectSoundCapture', 'PyIDirectSoundCaptureBuffer', 'PyIDirectSoundNotify', 'PyIDirectoryObject', 'PyIDirectorySearch', 'PyIDispatch', 'PyIDispatchEx', 'PyIDisplayItem', 'PyIDocHostUIHandler', 'PyIDropSource', 'PyIDropTarget', 'PyIDropTargetHelper', 'PyIDsObjectPicker', 'PyIEmptyVolumeCache', 'PyIEmptyVolumeCache2', 'PyIEmptyVolumeCacheCallBack', 'PyIEnumCATEGORYINFO', 'PyIEnumConnectionPoints', 'PyIEnumConnections', 'PyIEnumContextProps', 'PyIEnumDebugApplicationNodes', 'PyIEnumDebugCodeContexts', 'PyIEnumDebugExpressionContexts', 'PyIEnumDebugPropertyInfo', 'PyIEnumDebugStackFrames', 'PyIEnumExplorerCommand', 'PyIEnumFORMATETC', 'PyIEnumGUID', 'PyIEnumIDList', 'PyIEnumMoniker', 'PyIEnumObjects', 'PyIEnumRemoteDebugApplicationThreads', 'PyIEnumRemoteDebugApplications', 'PyIEnumResources', 'PyIEnumSTATPROPSETSTG', 'PyIEnumSTATPROPSTG', 'PyIEnumSTATSTG', 'PyIEnumShellItems', 'PyIEnumString', 'PyIErrorLog', 'PyIExplorerBrowser', 'PyIExplorerBrowserEvents', 'PyIExplorerCommand', 'PyIExplorerCommandProvider', 'PyIExplorerPaneVisibility', 'PyIExternalConnection', 'PyIExtractIcon', 'PyIExtractIconW', 'PyIExtractImage', 'PyIFileOperation', 'PyIIdentityName', 'PyIInitializeWithFile', 'PyIInitializeWithStream', 'PyIInputObject', 'PyIInternetBindInfo', 'PyIInternetPriority', 'PyIInternetProtocol', 'PyIInternetProtocolInfo', 'PyIInternetProtocolRoot', 'PyIInternetProtocolSink', 'PyIInternetSecurityManager', 'PyIKnownFolder', 'PyIKnownFolderManager', 'PyILockBytes', 'PyIMAPIContainer', 'PyIMAPIFolder', 'PyIMAPIProp', 'PyIMAPISession', 'PyIMAPIStatus', 'PyIMAPITable', 'PyIMachineDebugManager', 'PyIMachineDebugManagerEvents', 'PyIMessage', 'PyIMoniker', 'PyIMsgServiceAdmin', 'PyIMsgStore', 'PyINameSpaceTreeControl', 'PyINamedPropertyStore', 'PyIObjectArray', 'PyIObjectCollection', 'PyIObjectWithPropertyKey', 'PyIObjectWithSite', 'PyIOleClientSite', 'PyIOleCommandTarget', 'PyIOleControl', 'PyIOleControlSite', 'PyIOleInPlaceActiveObject', 'PyIOleInPlaceFrame', 'PyIOleInPlaceObject', 'PyIOleInPlaceSite', 'PyIOleInPlaceSiteEx', 'PyIOleInPlaceSiteWindowless', 'PyIOleInPlaceUIWindow', 'PyIOleObject', 'PyIOleWindow', 'PyIPersist', 'PyIPersistFile', 'PyIPersistFolder', 'PyIPersistFolder2', 'PyIPersistPropertyBag', 'PyIPersistSerializedPropStorage', 'PyIPersistStorage', 'PyIPersistStream', 'PyIPersistStreamInit', 'PyIProcessDebugManager', 'PyIProfAdmin', 'PyIPropertyBag', 'PyIPropertyChange', 'PyIPropertyChangeArray', 'PyIPropertyDescription', 'PyIPropertyDescriptionAliasInfo', 'PyIPropertyDescriptionList', 'PyIPropertyDescriptionSearchInfo', 'PyIPropertyEnumType', 'PyIPropertyEnumTypeList', 'PyIPropertySetStorage', 'PyIPropertyStorage', 'PyIPropertyStore', 'PyIPropertyStoreCache', 'PyIPropertyStoreCapabilities', 'PyIPropertySystem', 'PyIProvideClassInfo', 'PyIProvideClassInfo2', 'PyIProvideExpressionContexts', 'PyIProvideTaskPage', 'PyIQueryAssociations', 'PyIRelatedItem', 'PyIRemoteDebugApplication', 'PyIRemoteDebugApplicationEvents', 'PyIRemoteDebugApplicationThread', 'PyIRunningObjectTable', 'PyIScheduledWorkItem', 'PyIServerSecurity', 'PyIServiceProvider', 'PyIShellBrowser', 'PyIShellExtInit', 'PyIShellFolder', 'PyIShellFolder2', 'PyIShellIcon', 'PyIShellIconOverlay', 'PyIShellIconOverlayIdentifier', 'PyIShellIconOverlayManager', 'PyIShellItem', 'PyIShellItem2', 'PyIShellItemArray', 'PyIShellItemResources', 'PyIShellLibrary', 'PyIShellLink', 'PyIShellLinkDataList', 'PyIShellView', 'PyISpecifyPropertyPages', 'PyIStorage', 'PyIStream', 'PyITask', 'PyITaskScheduler', 'PyITaskTrigger', 'PyITaskbarList', 'PyITransferAdviseSink', 'PyITransferDestination', 'PyITransferMediumItem', 'PyITransferSource', 'PyITypeComp', 'PyITypeInfo', 'PyITypeLib', 'PyIUniformResourceLocator', 'PyIUnknown', 'PyIViewObject', 'PyIViewObject2', 'PyMAPINAMEIDArray', 'PyOLEMENUGROUPWIDTHS', 'PyPROPERTYKEY', 'PyPROPVARIANT', 'PySAndRestriction', 'PySBinaryArray', 'PySBitMaskRestriction', 'PySContentRestriction', 'PySExistRestriction', 'PySHELL_ITEM_RESOURCE', 'PySNotRestriction', 'PySOrRestriction', 'PySPropTagArray', 'PySPropValue', 'PySPropValueArray', 'PySPropertyRestriction', 'PySRestriction', 'PySRow', 'PySRowSet', 'PySSortOrderItem', 'PySSortOrderSet', 'PySTGMEDIUM', 'PyTASK_TRIGGER', 'RTF_WCSINFO', 'SHFILEINFO', 'SHFILEOPSTRUCT', 'SI_ACCESS', 'SI_INHERIT_TYPE', 'SI_OBJECT_INFO', 'STATSTG', 'TLIBATTR', 'TYPEATTR', 'TYPEDESC', 'VARDESC', 'CHARFORMAT', 'CREATESTRUCT', 'LV_COLUMN', 'LV_ITEM', 'PARAFORMAT', 'PyAssocCObject', 'PyAssocObject', 'PyCBitmap', 'PyCBrush', 'PyCButton', 'PyCCmdTarget', 'PyCCmdUI', 'PyCColorDialog', 'PyCComboBox', 'PyCCommonDialog', 'PyCControl', 'PyCControlBar', 'PyCCtrlView', 'PyCDC', 'PyCDialog', 'PyCDialogBar', 'PyCDocTemplate', 'PyCDockContext', 'PyCDocument', 'PyCEdit', 'PyCEditView', 'PyCFileDialog', 'PyCFont', 'PyCFontDialog', 'PyCFormView', 'PyCFrameWnd', 'PyCGdiObject', 'PyCImageList', 'PyCListBox', 'PyCListCtrl', 'PyCListView', 'PyCMDIChildWnd', 'PyCMDIFrameWnd', 'PyCMenu', 'PyCOleClientItem', 'PyCOleDialog', 'PyCOleDocument', 'PyCOleInsertDialog', 'PyCPrintDialog', 'PyCPrintInfo', 'PyCProgressCtrl', 'PyCPropertyPage', 'PyCPropertySheet', 'PyCRect', 'PyCRgn', 'PyCRichEditCtrl', 'PyCRichEditDoc', 'PyCRichEditDocTemplate', 'PyCRichEditView', 'PyCScrollView', 'PyCSliderCtrl', 'PyCSpinButtonCtrl', 'PyCSplitterWnd', 'PyCStatusBar', 'PyCStatusBarCtrl', 'PyCTabCtrl', 'PyCToolBar', 'PyCToolBarCtrl', 'PyCToolTipCtrl', 'PyCTreeCtrl', 'PyCTreeView', 'PyCView', 'PyCWinApp', 'PyCWinThread', 'PyCWnd', 'PyDDEConv', 'PyDDEServer', 'PyDDEStringItem', 'PyDDETopic', 'PyDLL', 'SCROLLINFO', 'TV_ITEM', 'EXTENSION_CONTROL_BLOCK', 'HSE_VERSION_INFO', 'HTTP_FILTER_AUTHENT', 'HTTP_FILTER_CONTEXT', 'HTTP_FILTER_LOG', 'HTTP_FILTER_PREPROC_HEADERS', 'HTTP_FILTER_RAW_DATA', 'HTTP_FILTER_URL_MAP', 'HTTP_FILTER_VERSION'] +import typing + +class COMMTIMEOUTS(object): + """A tuple representing a COMMTIMEOUTS structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class CopyProgressRoutine(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class DOCINFO(object): + """A tuple of information representing a DOCINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def DocName(self)->'typing.Union[str]': + """Name of document""" + pass + + + @property + def Output(self)->'typing.Union[str]': + """Name of output file when printing to file. Use None for normal printing.""" + pass + + + @property + def DataType(self)->'typing.Union[str]': + """Type of data to be sent to printer, eg RAW, EMF, TEXT. Use None for printer default.""" + pass + + + @property + def Type(self)->'typing.Any': + """Flag specifying mode of operation. Can be DI_APPBANDING, DI_ROPS_READ_DESTINATION, or 0""" + pass + + +class ExportCallback(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class FORM_INFO_1(object): + """A dictionary containing FORM_INFO_1W data""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'typing.Any': + """FORM_USER, FORM_BUILTIN, or FORM_PRINTER""" + pass + + + @property + def Name(self)->'str': + """Name of form""" + pass + + + @property + def Size(self)->'typing.Any': + """A dictionary representing a SIZEL structure {'cx':int,'cy':int}""" + pass + + + @property + def ImageableArea(self)->'typing.Any': + """A dictionary representing a RECTL structure {'left':int, 'top':int, 'right':int, 'bottom':int}""" + pass + + +class ImportCallback(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LARGE_INTEGER(object): + """A Python object used wherever a COM LARGE_INTEGER is used.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class NCB(object): + """A Python object that encapsulates a Win32 NCB structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Command(self)->'typing.Any': + """""" + pass + + + @property + def Retcode(self)->'typing.Any': + """""" + pass + + + @property + def Lsn(self)->'typing.Any': + """""" + pass + + + @property + def Num(self)->'typing.Any': + """""" + pass + + + @property + def Bufflen(self)->'typing.Any': + """read-only""" + pass + + + @property + def Callname(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Name(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Rto(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Sto(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Lana_num(self)->'typing.Any': + """""" + pass + + + @property + def Cmd_cplt(self)->'typing.Any': + """""" + pass + + + @property + def Event(self)->'typing.Any': + """""" + pass + + + @property + def Post(self)->'typing.Any': + """""" + pass + + +class PRINTER_DEFAULTS(object): + """A dictionary representing a PRINTER_DEFAULTS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def pDatatype(self)->'str': + """Data type to be used for print jobs, see win32print::EnumPrintProcessorDatatypes, optional, can be None""" + pass + + + @property + def pDevMode(self)->'PyDEVMODE': + """A PyDEVMODE that specifies default printer parameters, optional, can be None""" + pass + + + @property + def DesiredAccess(self)->'typing.Any': + """An ACCESS_MASK specifying what level of access is needed, eg PRINTER_ACCESS_ADMINISTER, PRINTER_ACCESS_USE""" + pass + + +class PyACL(object): + """A Python object, representing a ACL structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Initialize the ACL. + +Args: + + + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the ACL is valid (IsValidAcl) + +Args: + + + +Returns: + + None + + """ + pass + + + def AddAccessAllowedAce(self,revision:'typing.Any',access:'typing.Any',sid:'PySID',access1:'typing.Any',sid1:'typing.Any') -> 'None': + """ + Adds an access-allowed ACE to an DACL object. The access is granted to a + +specified SID. + +Args: + + revision(typing.Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. + access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters + access1(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid1(typing.Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. + +Returns: + + None + + """ + pass + + + def AddAccessAllowedAceEx(self,revision:'typing.Any',aceflags:'typing.Any',access:'typing.Any',sid:'PySID') -> 'None': + """ + Add access allowed ACE to an ACL with ACE flags (Requires Win2k or higher) + +Args: + + revision(typing.Any):Must be at least ACL_REVISION_DS + aceflags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + access(typing.Any):Specifies the mask of access rights to be granted to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being granted access. + +Returns: + + None + + """ + pass + + + def AddAccessAllowedObjectAce(self,AceRevision:'typing.Any',AceFlags:'typing.Any',AccessMask:'typing.Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID') -> 'None': + """ + Adds an ACCESS_ALLOWED_OBJECT_ACE to the ACL + +Args: + + AceRevision(typing.Any):Must be at least ACL_REVISION_DS + AceFlags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + AccessMask(typing.Any):Specifies the mask of access rights to be granted to the specified SID + ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None + InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None + sid(PySID):A SID object representing a user, group, or logon account being granted access. + +Returns: + + None + + """ + pass + + + def AddAccessDeniedAce(self,revision:'typing.Any',access:'typing.Any',sid:'PySID',access1:'typing.Any',sid1:'typing.Any') -> 'None': + """ + Adds an access-denied ACE to an ACL object. The access is denied to a specified + +SID. + +Args: + + revision(typing.Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. + access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters + access1(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid1(typing.Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. + +Returns: + + None + + """ + pass + + + def AddAccessDeniedAceEx(self,revision:'typing.Any',aceflags:'typing.Any',access:'typing.Any',sid:'PySID') -> 'None': + """ + Add access denied ACE to an ACL with ACE flags (Requires Win2k or higher) + +Args: + + revision(typing.Any):Must be at least ACL_REVISION_DS + aceflags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access. + +Returns: + + None + + """ + pass + + + def AddMandatoryAce(self,AceRevision:'typing.Any',AceFlags:'typing.Any',MandatoryPolicy:'typing.Any',LabelSid:'PySID') -> 'None': + """ + Adds a mandatory integrity level ACE to a SACL + +Args: + + AceRevision(typing.Any):ACL_REVISION or ACL_REVISION_DS + AceFlags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + MandatoryPolicy(typing.Any):Access policy for processes with lower integrity level, combination of SYSTEM_MANDATORY_LABEL_* flags + LabelSid(PySID):Integrity level SID. This can be created using CreateWellKnownSid with Win*LabelSid. Also can be constructed manually using SECURITY_MANDATORY_LABEL_AUTHORITY and a SECURITY_MANDATORY_*_RID + +Returns: + + None + + """ + pass + + + def AddAuditAccessAce(self,dwAceRevision:'typing.Any',dwAccessMask:'typing.Any',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': + """ + Adds an audit ACE to a Sacl + +Args: + + dwAceRevision(typing.Any):Revision of ACL: Pre-Win2k, must be ACL_REVISION. Win2K on up, can also be ACL_REVISION_DS + dwAccessMask(typing.Any):Bitmask of access types to be audited + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def AddAuditAccessAceEx(self,dwAceRevision:'typing.Any',AceFlags:'typing.Any',dwAccessMask:'typing.Any',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': + """ + Adds an audit ACE to an Sacl, includes ace flags + +Args: + + dwAceRevision(typing.Any):Revision of ACL: Must be at least ACL_REVISION_DS + AceFlags(typing.Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE + dwAccessMask(typing.Any):Bitmask of access types to be audited + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def AddAuditAccessObjectAce(self,dwAceRevision:'typing.Any',AceFlags:'typing.Any',dwAccessMask:'typing.Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': + """ + Adds an audit ACE for an object type identified by GUID + +Args: + + dwAceRevision(typing.Any):Revision of ACL: Must be at least ACL_REVISION_DS + AceFlags(typing.Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE + dwAccessMask(typing.Any):Bitmask of access types to be audited + ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None + InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def GetAclSize(self,) -> 'typing.Any': + """ + Returns the storage size of the ACL. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAclRevision(self,) -> 'typing.Any': + """ + Returns revision of the ACL. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAceCount(self,) -> 'typing.Any': + """ + Returns the number of ACEs in the ACL. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAce(self,index:'typing.Any') -> 'typing.Any': + """ + Gets an Ace from the ACL + +Args: + + index(typing.Any):Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned as a tuple of:Items[0] (int, int) : aceType, AceFlags[1] int : Mask[2] PySID : sidObject ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) are returned as a tuple:[0] (int, int) : aceType, AceFlags[1] int : mask[2] PyIID : ObjectType[3] PyIID : InheritedObjectType[4] PySID : sidFor details see the API documentation. + +Returns: + + typing.Any:Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned + +as a tuple of: +Items[0] (int, int) : aceType, AceFlags + +[1] int : Mask + +[2] PySID : sid +Object ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) + +are returned as a tuple: +[0] (int, int) : aceType, AceFlags + +[1] int : mask + +[2] PyIID : ObjectType + +[3] PyIID : InheritedObjectType + +[4] PySID : sid +For details see the API documentation. + + + """ + pass + + + def DeleteAce(self,index:'typing.Any') -> 'None': + """ + Deletes specified Ace from an ACL. + +Args: + + index(typing.Any):Zero-based index of the ACE to delete. + +Returns: + + None + + """ + pass + + + def GetEffectiveRightsFromAcl(self,trustee:'PyTRUSTEE') -> 'typing.Any': + """ + Return access rights (ACCESS_MASK) that the ACL grants to + +specified trustee + +Args: + + trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structure + +Returns: + + typing.Any + + """ + pass + + + def GetAuditedPermissionsFromAcl(self,trustee:'PyTRUSTEE') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Return types of access for + +which ACL will generate an audit event for specified trustee + +Args: + + trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structureCommentsThis function is known to return the success and failure access masks in the the wrong order on Windows 2000 service pack 4. Problem has been reported to Microsoft. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + +class PyBITMAP(object): + """A Python object, representing an PyBITMAP structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bmType(self)->'int': + """""" + pass + + + @property + def bmWidth(self)->'int': + """""" + pass + + + @property + def bmHeight(self)->'int': + """""" + pass + + + @property + def bmWidthBytes(self)->'int': + """""" + pass + + + @property + def bmPlanes(self)->'int': + """""" + pass + + +class PyBLENDFUNCTION(object): + """Tuple of four small ints used to fill a BLENDFUNCTION struct + +Each int must fit in a byte (0-255).""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCEHANDLE(object): + """A Python object, representing a remote Windows CE handle""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERTSTORE(object): + """Handle to a certificate store""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCERTSTORE(self)->'typing.Any': + """Integer handle""" + pass + + + def CertCloseStore(self,Flags:'typing.Any'=0) -> 'None': + """ + Closes the certificate store + +Args: + + Flags(typing.Any):Combination of CERT_CLOSE_*_FLAG flags + +Returns: + + None + + """ + pass + + + def CertControlStore(self,Flags:'typing.Any',CtrlType:'typing.Any',CtrlPara:'int') -> 'None': + """ + Controls sychronization of the certificate store + +Args: + + Flags(typing.Any):One of the CERT_STORE_CTRL_*_FLAG flags + CtrlType(typing.Any):One of the CERT_STORE_CTRL_* flags + CtrlPara(int):Event handle, can be None (not used with CERT_STORE_CTRL_COMMIT) + +Returns: + + None + + """ + pass + + + def CertEnumCertificatesInStore(self,) -> 'typing.List[typing.Any]': + """ + Lists all certificates in the store + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def CertEnumCTLsInStore(self,) -> 'typing.List[typing.Any]': + """ + Finds all Certificate Trust Lists in store + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def CertSaveStore(self,MsgAndCertEncodingType:'typing.Any',SaveAs:'typing.Any',SaveTo:'typing.Any',SaveToPara:'typing.Union[str, int]',Flags:'typing.Any'=0) -> 'None': + """ + Serializes the store to memory or a file + +Args: + + MsgAndCertEncodingType(typing.Any):Only used when saveas is CERT_STORE_SAVE_AS_PKCS7 - usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING + SaveAs(typing.Any):One of the CERT_STORE_SAVE_AS_* constants + SaveTo(typing.Any):One of the CERT_STORE_SAVE_TO_* constants (CERT_STORE_SAVE_TO_MEMORY not supported yet) + SaveToPara(typing.Union[str, int]):File name or open file handle depending on SaveTo parm + Flags(typing.Any):Reserved, use 0 + +Returns: + + None + + """ + pass + + + def CertAddEncodedCertificateToStore(self,CertEncodingType:'typing.Any',CertEncoded:'typing.Any',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': + """ + Imports an encoded certificate into the + +store + +Args: + + CertEncodingType(typing.Any):Usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING + CertEncoded(typing.Any):Data containing a serialized certificate + AddDisposition(typing.Any):Combination of CERT_STORE_ADD_* flags + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCertificateContextToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': + """ + Adds a certificate context to the store + +Args: + + CertContext(PyCERT_CONTEXT):Certificate context to be added + AddDisposition(typing.Any):CERT_STORE_ADD_* constant + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCertificateLinkToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': + """ + Adds a link to a cert in another store + +Args: + + CertContext(PyCERT_CONTEXT):Certificate context to be linked + AddDisposition(typing.Any):One of the CERT_STORE_ADD_* values + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCTLContextToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'typing.Any') -> 'PyCTL_CONTEXT': + """ + Adds a certificate trust list to the store + +Args: + + CtlContext(PyCTL_CONTEXT):CTL to be added + AddDisposition(typing.Any):CERT_STORE_ADD_* constant + +Returns: + + PyCTL_CONTEXT + + """ + pass + + + def CertAddCTLLinkToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'typing.Any') -> 'PyCTL_CONTEXT': + """ + Adds a link to a CTL in another store + +Args: + + CtlContext(PyCTL_CONTEXT):CTL to be linked + AddDisposition(typing.Any):One of the CERT_STORE_ADD_* values + +Returns: + + PyCTL_CONTEXT + + """ + pass + + + def CertAddStoreToCollection(self,SiblingStore:'PyCERTSTORE',UpdateFlag:'typing.Any'=0,Priority:'typing.Any'=0) -> 'None': + """ + Adds a sibling store to a store collection + +Args: + + SiblingStore(PyCERTSTORE):Store to be added to the collection + UpdateFlag(typing.Any):Can be CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG to enable changes to persist + Priority(typing.Any):Determines order in which store are searched and updatedCommentsA collection store is created by using cryptoapi::CertOpenStore with CERT_STORE_PROV_COLLECTION + +Returns: + + None + + """ + pass + + + def CertRemoveStoreFromCollection(self,SiblingStore:'PyCERTSTORE') -> 'None': + """ + Removes a sibling store from a collection + +Args: + + SiblingStore(PyCERTSTORE):Store to be removed from the collection + +Returns: + + None + + """ + pass + + + def PFXExportCertStoreEx(self,Flags:'typing.Any',Password:'typing.Any'=None) -> 'typing.Any': + """ + Exports certificates and associated private keys in PKCS#12 format + +Args: + + Flags(typing.Any):Options to be used while exporting + Password(typing.Any):Passphrase to be used to encrypt the output + +Returns: + + typing.Any + + """ + pass + + +class PyCERT_ALT_NAME_ENTRY(object): + """Represented as a 2-tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_ALT_NAME_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_AUTHORITY_KEY_ID_INFO(object): + """Dict containing the identity of a CA""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def KeyId(self)->'typing.Any': + """Unique identifier of private key, usually a hash""" + pass + + + @property + def CertIssuer(self)->'typing.Any': + """Encoded DN of the Certificate Authority. Decode using X509_UNICODE_NAME""" + pass + + + @property + def CertSerialNumber(self)->'typing.Any': + """Serial nbr of the CA's signing certificate""" + pass + + +class PyCERT_BASIC_CONSTRAINTS2_INFO(object): + """Dict representing a CERT_BASIC_CONSTRAINTS2_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def fCA(self)->'typing.Any': + """Indicates if cert represents a certificate authority""" + pass + + + @property + def fPathLenConstraint(self)->'typing.Any': + """Indicates if PathLenConstraint member is used""" + pass + + + @property + def PathLenConstraint(self)->'typing.Any': + """Limits number of intermediate CA's between root CA and end user""" + pass + + +class PyCERT_BASIC_CONSTRAINTS_INFO(object): + """Dict representing a CERT_BASIC_CONSTRAINTS_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SubjectType(self)->'PyCRYPT_BIT_BLOB': + """Contains a combination of CERT_CA_SUBJECT_FLAG,CERT_END_ENTITY_SUBJECT_FLAG""" + pass + + + @property + def fPathLenConstraint(self)->'typing.Any': + """Indicates if PathLenConstraint member is used""" + pass + + + @property + def PathLenConstraint(self)->'typing.Any': + """Limits number of intermediate CA's between root CA and end user""" + pass + + + @property + def SubtreesConstraint(self)->'typing.Any': + """Sequence of encoded name blobs""" + pass + + +class PyCERT_CONTEXT(object): + """Handle to a certificate context""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HANDLE(self)->'typing.Any': + """Pointer to CERT_CONTEXT struct""" + pass + + + @property + def CertStore(self)->'PyCERTSTORE': + """Handle to the certificate store that contains this certificate""" + pass + + + @property + def CertEncoded(self)->'typing.Any': + """Content of the certificate as encoded bytes""" + pass + + + @property + def CertEncodingType(self)->'typing.Any': + """Method used to encode the certifcate, usually X509_ASN_ENCODING or PKCS_7_ASN_ENCODING""" + pass + + + @property + def Version(self)->'typing.Any': + """One of the CERT_V* values""" + pass + + + @property + def Subject(self)->'str': + """Encoded CERT_NAME_INFO struct containing the subject name. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_UNICODE_NAME, or formatted using cryptoapi::CertNameToStr""" + pass + + + @property + def Issuer(self)->'str': + """Certificate Authority that issued certificate as encoded CERT_NAME_INFO. Use cryptoapi::CryptDecodeObjectEx to decode into individual components, or cryptoapi::CertNameToStr to return a single formatted string""" + pass + + + @property + def NotBefore(self)->'PyTime': + """Beginning of certificate's period of validity""" + pass + + + @property + def NotAfter(self)->'PyTime': + """End of certificate's period of validity""" + pass + + + @property + def SignatureAlgorithm(self)->'typing.Any': + """Object id of the certifcate's signature algorithm""" + pass + + + @property + def Extension(self)->'typing.Tuple[PyCERT_EXTENSION, ...]': + """Sequence of CERT_EXTENSION dicts containing certificate's extensions""" + pass + + + @property + def SubjectPublicKeyInfo(self)->'PyCERT_PUBLIC_KEY_INFO': + """Encoded public key of certificate""" + pass + + + @property + def SerialNumber(self)->'typing.Any': + """Serial number assigned by the issuer""" + pass + + + def CertFreeCertificateContext(self,) -> 'None': + """ + Frees the certificate context + +Args: + + + +Returns: + + None + + """ + pass + + + def CertEnumCertificateContextProperties(self,) -> 'typing.List[typing.Any]': + """ + Lists property ids for the certificate + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def CryptAcquireCertificatePrivateKey(self,Flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PyCRYPTPROV]': + """ + Retrieves the private key associated + +with the certificate + +Args: + + Flags(typing.Any):Combination of CRYPT_ACQUIRE_*_FLAG constantsCommentsOnly the owner of the certificate can use this methodReturn ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key + +Returns: + + typing.Tuple[typing.Any, PyCRYPTPROV]:Combination of CRYPT_ACQUIRE_*_FLAG constants +Comments + +Only the owner of the certificate can use this method +Return ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key + + + """ + pass + + + def CertGetIntendedKeyUsage(self,) -> 'typing.Any': + """ + Returns the intended key usage from the certificate extensions + +(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) + +Args: + + + +Returns: + + typing.Any:PyCERT_CONTEXT.CertGetIntendedKeyUsage + +int = CertGetIntendedKeyUsage()Returns the intended key usage from the certificate extensions + +(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) +Return ValueReturns a combination of CERT_*_KEY_USAGE values + + + """ + pass + + + def CertGetEnhancedKeyUsage(self,Flags:'typing.Any'=0) -> 'typing.Any': + """ + Finds the enhanced key usage property and/or extension for the + +certificate + +Args: + + Flags(typing.Any):CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0Return ValueReturns a sequence of usage OIDs + +Returns: + + typing.Any:CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, + +CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0 +Return ValueReturns a sequence of usage OIDs + + + """ + pass + + + def CertSerializeCertificateStoreElement(self,Flags:'typing.Any'=0) -> 'str': + """ + Serializes the certificate and its properties + +Args: + + Flags(typing.Any):Reserved, use only 0 if passed in + +Returns: + + str + + """ + pass + + + def CertVerifySubjectCertificateContext(self,Issuer:'PyCERT_CONTEXT',Flags:'typing.Any') -> 'typing.Any': + """ + Checks the validity of the certificate + +Args: + + Issuer(PyCERT_CONTEXT):Certificate of authority that issued the certificate + Flags(typing.Any):Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. + +Returns: + + typing.Any:Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and + +CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. + + + """ + pass + + + def CertDeleteCertificateFromStore(self,) -> 'None': + """ + Removes the certificate from its store + +Args: + + + +Returns: + + None + + """ + pass + + + def CertGetCertificateContextProperty(self,PropId:'typing.Any') -> 'typing.Any': + """ + Retrieves the specified property from the + +certificate + +Args: + + PropId(typing.Any):One of the CERT_*_PROP_ID constantsPropIdReturned valueCERT_ARCHIVED_PROP_IDBooleanCERT_DATE_STAMP_PROP_IDPyTimeCERT_ACCESS_STATE_PROP_IDintCERT_KEY_SPEC_PROP_IDintCERT_DESCRIPTION_PROP_IDUnicodeCERT_FRIENDLY_NAME_PROP_IDUnicodeCERT_PVK_FILE_PROP_IDUnicodeCERT_AUTO_ENROLL_PROP_IDUnicodeCERT_HASH_PROP_IDString containing a hashCERT_SHA1_HASH_PROP_IDString containing a hashCERT_MD5_HASH_PROP_IDString containing a hashCERT_SIGNATURE_HASH_PROP_IDString containing a hashCERT_KEY_IDENTIFIER_PROP_IDString containing a hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hashCERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROVCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and CERT_ENHKEY_USAGE are identical)CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_ENHANCED_KEY_USAGECERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dictCERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT structCERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx with szOID_NEXT_UPDATE_LOCATIONReturn ValueType of object returned is dependent on the property id requested. + +Returns: + + typing.Any:One of the CERT_*_PROP_ID constants + + +PropId + + +Returned value + + + +CERT_ARCHIVED_PROP_IDBoolean +CERT_DATE_STAMP_PROP_IDPyTime +CERT_ACCESS_STATE_PROP_IDint +CERT_KEY_SPEC_PROP_IDint +CERT_DESCRIPTION_PROP_IDUnicode +CERT_FRIENDLY_NAME_PROP_IDUnicode +CERT_PVK_FILE_PROP_IDUnicode +CERT_AUTO_ENROLL_PROP_IDUnicode +CERT_HASH_PROP_IDString containing a hash +CERT_SHA1_HASH_PROP_IDString containing a hash +CERT_MD5_HASH_PROP_IDString containing a hash +CERT_SIGNATURE_HASH_PROP_IDString containing a hash +CERT_KEY_IDENTIFIER_PROP_IDString containing a hash +CERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hash +CERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROV +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString + +containing a hash +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString + +containing a hash +CERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and + +CERT_ENHKEY_USAGE are identical) +CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx + + + + + +with X509_ENHANCED_KEY_USAGE +CERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dict +CERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT struct +CERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx + + + + with szOID_NEXT_UPDATE_LOCATION +Return ValueType of object returned is dependent on the property id requested. + + + """ + pass + + + def CertSetCertificateContextProperty(self,PropId:'typing.Any',Data:'typing.Any',Flags:'typing.Any'=0) -> 'None': + """ + Sets a property for a certificate + +Args: + + PropId(typing.Any):Id of property to be set, CERT_*_PROP_ID + Data(typing.Any):The value to be set for the property. Type is dependent on PropId. Use None to delete a property. + Flags(typing.Any):Combination of CERT_SET_* flagsPropIdType of inputCERT_ARCHIVED_PROP_IDNone causes Archived flag to be cleared, any other causes it to be set no actual data, non-NULL pvData indicates presence of flagCERT_DATE_STAMP_PROP_IDPyTime specifying when cert was added to storeCERT_DESCRIPTION_PROP_IDUnicode stringCERT_FRIENDLY_NAME_PROP_IDUnicode stringCERT_PVK_FILE_PROP_IDUnicode stringCERT_AUTO_ENROLL_PROP_IDUnicode stringCERT_KEY_SPEC_PROP_IDInt, usually AT_KEYEXCHANGE or AT_SIGNATURECERT_HASH_PROP_IDString containing the hashCERT_SHA1_HASH_PROP_IDString containing the hashCERT_MD5_HASH_PROP_IDString containingg the hashCERT_SIGNATURE_HASH_PROP_IDString containing the hashCERT_KEY_IDENTIFIER_PROP_IDString containing the key idCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing the hashCERT_RENEWAL_PROP_IDString containing the hashCERT_ENHKEY_USAGE_PROP_IDString containing an encoded PyCTL_USAGE. Use cryptoapi::CryptEncodeObjectEx with X509_ENHANCED_KEY_USAGE.CERT_CTL_USAGE_PROP_IDSame as CERT_ENHKEY_USAGE_PROP_ID + +Returns: + + None + + """ + pass + + +class PyCERT_EXTENSION(object): + """Dict containing a certificate extension""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'typing.Any': + """The OID identifying the type of extension""" + pass + + + @property + def Critical(self)->'typing.Any': + """If true, any contraints or limits contained in the extension should be considered absolute""" + pass + + + @property + def Value(self)->'typing.Any': + """Binary string containing ASN encoded data. To interpret or display extension data, see cryptoapi::CryptDecodeObjectEx and cryptoapi::CryptFormatObject.""" + pass + + +class PyCERT_KEY_ATTRIBUTES_INFO(object): + """Dict representing a CERT_KEY_ATTRIBUTES_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def KeyId(self)->'typing.Any': + """Usually a hash that uniquely identifies the key""" + pass + + + @property + def IntendedKeyUsage(self)->'PyCRYPT_BIT_BLOB': + """Contains a byte with CERT_*_KEY_USAGE flags""" + pass + + + @property + def PrivateKeyUsagePeriod(self)->'typing.Any': + """Private key's begin and end effective dates, may be None""" + pass + + +class PyCERT_NAME_INFO(object): + """Sequence of CERT_RDN's""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_NAME_VALUE(object): + """Dict containing type (CERT_RDN_*) and a unicode string""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_OTHER_NAME(object): + """Dict containing {ObjId, Value}. + +ObjId is one of the string object id's identifying the type of name. + +Value is a binary string containing an encoded CERT_NAME_VALUE that can be decoded + +using X509_UNICODE_NAME_VALUE to return the actual unicode string""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_POLICY_INFO(object): + """Dict containing a certificate policy""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def PolicyIdentifier(self)->'typing.Any': + """OID identifying the policy""" + pass + + + @property + def PolicyQualifier(self)->'typing.Any': + """Sequence of CERT_POLICY_QUALIFIER dicts""" + pass + + +class PyCERT_PUBLIC_KEY_INFO(object): + """Dict containing an exported public key""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Algorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Dict containing OID of the public key algorithm""" + pass + + + @property + def PublicKey(self)->'PyCRYPT_BIT_BLOB': + """Dict containing the encoded public key""" + pass + + +class PyCOMSTAT(object): + """A Python object, representing an COMSTAT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def cbInQue(self)->'int': + """Specifies the number of bytes received by the serial provider but not yet read by a win32file::ReadFile operation""" + pass + + + @property + def cbOutQue(self)->'int': + """Specifies the number of bytes of user data remaining to be transmitted for all write operations. This value will be zero for a nonoverlapped write.""" + pass + + + @property + def fCtsHold(self)->'int': + """Specifies whether transmission is waiting for the CTS (clear-to-send) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fDsrHold(self)->'int': + """Specifies whether transmission is waiting for the DSR (data-set-ready) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fRlsdHold(self)->'int': + """Specifies whether transmission is waiting for the RLSD (receive-line-signal-detect) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fXoffHold(self)->'int': + """Specifies whether transmission is waiting because the XOFF character was received. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fXoffSent(self)->'int': + """Specifies whether transmission is waiting because the XOFF character was transmitted. If this member is TRUE, transmission is waiting. Transmission halts when the XOFF character is transmitted to a system that takes the next character as XON, regardless of the actual character.""" + pass + + + @property + def fEof(self)->'int': + """Specifies whether the end-of-file (EOF) character has been received. If this member is TRUE, the EOF character has been received.""" + pass + + + @property + def fTxim(self)->'int': + """If this member is TRUE, there is a character queued for transmission that has come to the communications device by way of the TransmitCommChar function. The communications device transmits such a character ahead of other characters in the device's output buffer.""" + pass + + + @property + def fReserved(self)->'int': + """Reserved; do not use.""" + pass + + +class PyCOORD(object): + """Wrapper for a COORD struct. Create using PyCOORDType(X,Y)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def X(self)->'typing.Any': + """Horizontal coordinate""" + pass + + + @property + def Y(self)->'typing.Any': + """Vertical coordinate""" + pass + + +class PyCREDENTIAL(object): + """A dictionary containing information for a CREDENTIAL struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'typing.Any': + """Combination of CRED_FLAGS_PROMPT_NOW, CRED_FLAGS_USERNAME_TARGET""" + pass + + + @property + def Type(self)->'typing.Any': + """Type of credential, one of CRED_TYPE_* values""" + pass + + + @property + def TargetName(self)->'str': + """Target of credential, can end with * for wildcard matching""" + pass + + + @property + def Comment(self)->'str': + """Descriptive text""" + pass + + + @property + def LastWritten(self)->'PyTime': + """Modification time, ignored on input""" + pass + + + @property + def CredentialBlob(self)->'str': + """Contains password for username credential, or PIN for certificate credential. This member is write-only.""" + pass + + + @property + def Persist(self)->'typing.Any': + """Specifies scope of persistence, one of CRED_PERSIST_* values""" + pass + + + @property + def Attributes(self)->'typing.Any': + """Tuple of PyCREDENTIAL_ATTRIBUTE dicts containing application-specific data, can be None""" + pass + + + @property + def TargetAlias(self)->'str': + """Alias for TargetName, only valid with CRED_TYPE_GENERIC""" + pass + + + @property + def UserName(self)->'str': + """User to be authenticated by target. Can be of the form username@domain or domain\\username. For CRED_TYPE_DOMAIN_CERTIFICATE, use win32cred::CredMarshalCredential to marshal the SHA1 hash of user's certficate""" + pass + + +class PyCREDENTIAL_ATTRIBUTE(object): + """A dictionary containing information for a CREDENTIAL_ATTRIBUTE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Keyword(self)->'str': + """Attribute name, at most CRED_MAX_STRING_LENGTH chars""" + pass + + + @property + def Flags(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Value(self)->'typing.Any': + """Attribute value, at most CRED_MAX_VALUE_SIZE bytes. Unicode objects are treated as raw bytes.""" + pass + + +class PyCREDENTIAL_TARGET_INFORMATION(object): + """A dictionary representing a CREDENTIAL_TARGET_INFORMATION struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def TargetName(self)->'str': + """Target of credentials""" + pass + + + @property + def NetbiosServerName(self)->'str': + """""" + pass + + + @property + def DnsServerName(self)->'str': + """""" + pass + + + @property + def NetbiosDomainName(self)->'str': + """""" + pass + + + @property + def DnsDomainName(self)->'str': + """""" + pass + + + @property + def DnsTreeName(self)->'str': + """""" + pass + + + @property + def PackageName(self)->'str': + """Name of security package which mapped TargetName""" + pass + + + @property + def Flags(self)->'typing.Any': + """CRED_TI_* flags""" + pass + + + @property + def CredTypes(self)->'typing.Tuple[typing.Any, ...]': + """Tuple of CRED_TYPE_* values indicating which types of credentials are acceptable to target""" + pass + + +class PyCREDUI_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Parent(self)->'int': + """Handle to parent window, can be None""" + pass + + + @property + def MessageText(self)->'str': + """Message to appear in dialog""" + pass + + + @property + def CaptionText(self)->'str': + """Title of the dialog window""" + pass + + + @property + def Banner(self)->'int': + """Handle to a bitmap to be displayed""" + pass + + +class PyCRYPTHASH(object): + """Handle to a cryptographic hash""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CryptDestroyHash(self,) -> 'None': + """ + Frees the hash object + +Args: + + + +Returns: + + None + + """ + pass + + + def CryptDuplicateHash(self,Flags:'typing.Any'=0) -> 'PyCRYPTHASH': + """ + Clones the hash object + +Args: + + Flags(typing.Any):Reserved, use 0 if passed + +Returns: + + PyCRYPTHASH + + """ + pass + + + def CryptHashData(self,Data:'str',Flags:'typing.Any'=0) -> 'None': + """ + Adds data to the hash + +Args: + + Data(str):Data to be hashed + Flags(typing.Any):CRYPT_USERDATA or 0CommentsIf Flags is CRYPT_USERDATA, provider is expected to prompt user to enter data. MSDN says that MS CSPs ignore this flag + +Returns: + + None + + """ + pass + + + def CryptHashSessionKey(self,Key:'PyCRYPTKEY',Flags:'typing.Any'=0) -> 'None': + """ + Hashes a session key + +Args: + + Key(PyCRYPTKEY):The session key to be hashed + Flags(typing.Any):CRYPT_LITTLE_ENDIAN or 0 + +Returns: + + None + + """ + pass + + + def CryptSignHash(self,KeySpec:'typing.Any',Flags:'typing.Any'=0) -> 'str': + """ + Signs the hash + +Args: + + KeySpec(typing.Any):The key to be used to sign the hash, AT_KEYEXCHANGE,AT_SIGNATURE + Flags(typing.Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0CommentsThis methods signs only the hash, not the data that the hash represents + +Returns: + + str + + """ + pass + + + def CryptVerifySignature(self,Signature:'str',PubKey:'PyCRYPTKEY',Flags:'typing.Any'=0) -> 'None': + """ + Verifies that a signature matches hashed data + +Args: + + Signature(str):Signature data to verify + PubKey(PyCRYPTKEY):Public key of signer + Flags(typing.Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0 + +Returns: + + None + + """ + pass + + + def CryptGetHashParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Union[typing.Any]': + """ + Retrieves the specified attribute of the hash + +Args: + + Param(typing.Any):The parameter to retrieve: HP_ALGID, HP_HASHSIZE, or HP_HASHVAL + Flags(typing.Any):Reserved, use 0 if passed inCommentsAfter this method has been called, no more data can be hashedReturn ValueType of returned object is dependent on the Param passed in + +Returns: + + typing.Union[typing.Any]:Reserved, use 0 if passed in +Comments + +After this method has been called, no more data can be hashed +Return ValueType of returned object is dependent on the Param passed in + + + """ + pass + + +class PyCRYPTKEY(object): + """Handle to a cryptographic key""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCRYPTPROV(self)->'typing.Any': + """CSP used by the key""" + pass + + + @property + def HCRYPTKEY(self)->'typing.Any': + """Plain integer handle to the key""" + pass + + + def CryptDestroyKey(self,) -> 'None': + """ + Releases the handle to the key (does not delete permanent keys) + +Args: + + + +Returns: + + None + + """ + pass + + + def CryptExportKey(self,ExpKey:'PyCRYPTKEY',BlobType:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Any': + """ + Exports key or key pair as an encrypted blob + +Args: + + ExpKey(PyCRYPTKEY):Public key or session key of destination user. Use None if exporting a PUBLICKEYBLOB + BlobType(typing.Any):One of OPAQUEKEYBLOB,PRIVATEKEYBLOB,PUBLICKEYBLOB,SIMPLEBLOB,PLAINTEXTKEYBLOB,SYMMETRICWRAPKEYBLOB + Flags(typing.Any):Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey + +Returns: + + typing.Any:Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0 +Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey + + + """ + pass + + + def CryptGetKeyParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Any': + """ + Retrieves key parameters + +Args: + + Param(typing.Any):One of the KP_* constants + Flags(typing.Any):Reserved, use only 0Return ValueType of returned object is dependent on the requested attribute + +Returns: + + typing.Any:Reserved, use only 0 +Return ValueType of returned object is dependent on the requested attribute + + + """ + pass + + + def CryptDuplicateKey(self,Reserved:'typing.Any'=0,Flags:'typing.Any'=0) -> 'PyCRYPTKEY': + """ + Creates an independent copy of the key + +Args: + + Reserved(typing.Any):Use 0 if passed in + Flags(typing.Any):Also reserved, use 0 + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptEncrypt(self,Final:'typing.Any',Data:'typing.Any',Hash:'PyCRYPTHASH'=None,Flags:'typing.Any'=0) -> 'typing.Any': + """ + Encrypts and optionally hashes data + +Args: + + Final(typing.Any):Boolean, use True if this is final encryption operation + Data(typing.Any):Data to be encrypted + Hash(PyCRYPTHASH):Hash to be updated with data passed in, can be None + Flags(typing.Any):Reserved, use 0 if passed in + +Returns: + + typing.Any + + """ + pass + + + def CryptDecrypt(self,Final:'typing.Any',Data:'typing.Any',Hash:'PyCRYPTHASH'=None,Flags:'typing.Any'=0) -> 'typing.Any': + """ + Decrypts data + +Args: + + Final(typing.Any):Boolean, use True is this is last (or only) operation + Data(typing.Any):Data to be decrypted + Hash(PyCRYPTHASH):Hash to be used in signature verification, can be None + Flags(typing.Any):Reserved, use only 0 + +Returns: + + typing.Any + + """ + pass + + +class PyCRYPTMSG(object): + """Wrapper for a cryptographic message handle""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCRYPTMSG(self)->'typing.Any': + """Raw message handle""" + pass + + + def CryptMsgClose(self,) -> 'None': + """ + Closes the message handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCRYPTPROTECT_PROMPTSTRUCT(object): + """A tuple representing a CRYPTPROTECT_PROMPTSTRUCT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRYPTPROV(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CryptReleaseContext(self,Flags:'typing.Any'=0) -> 'None': + """ + Releases the CSP handle + +Args: + + Flags(typing.Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def CryptGenKey(self,Algid:'typing.Any',Flags:'typing.Any',KeyLen:'typing.Any'=0) -> 'PyCRYPTKEY': + """ + Generates a key pair or a session key + +Args: + + Algid(typing.Any):Algorithm identifier, one of the CALG_* values, or AT_KEYEXCHANGE/AT_SIGNATURE + Flags(typing.Any):Combination of CRYPT_CREATE_SALT,CRYPT_EXPORTABLE,CRYPT_NO_SALT,CRYPT_PREGEN,CRYPT_USER_PROTECTED,CRYPT_ARCHIVABLE + KeyLen(typing.Any):Length of key to generate, can be 0 to use provider's default key lengthCommentsDiffers from Api call in that the length is passed in separately + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptGetProvParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'None': + """ + Retrieves specified attribute of provider + +Args: + + Param(typing.Any):One of the PP_* values + Flags(typing.Any):If param if PP_KEYSET_SEC_DESCR, can be a combination of OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATIONReturn ValueType of returned object is dependent on the attribute requested + +Returns: + + None:If param if PP_KEYSET_SEC_DESCR, can be a combination of + +OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATION +Return ValueType of returned object is dependent on the attribute requested + + + """ + pass + + + def CryptGetUserKey(self,KeySpec:'typing.Any') -> 'PyCRYPTKEY': + """ + Returns a handle to one of user's key pairs + +Args: + + KeySpec(typing.Any):AT_KEYEXCHANGE or AT_SIGNATURE (some providers may implement extra key specs) + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptGenRandom(self,Len:'typing.Any',SeedData:'str'=None) -> 'str': + """ + Generates random data of specified length + +Args: + + Len(typing.Any):Number of bytes to generate + SeedData(str):Random seed data + +Returns: + + str + + """ + pass + + + def CryptCreateHash(self,Algid:'typing.Any',Key:'PyCRYPTKEY'=None,Flags:'typing.Any'=0) -> 'PyCRYPTHASH': + """ + Creates a hash object for hashing large amounts of data + +Args: + + Algid(typing.Any):An algorithm identifier, CALG_*. + Key(PyCRYPTKEY):Used only for keyed hashes (MAC or HMAC), use None otherwise + Flags(typing.Any):Reserved, use 0 if passed in + +Returns: + + PyCRYPTHASH + + """ + pass + + + def CryptImportKey(self,Data:'typing.Any',PubKey:'PyCRYPTKEY'=None,Flags:'typing.Any'=0) -> 'PyCRYPTKEY': + """ + None + +Args: + + Data(typing.Any):The key blob to be imported + PubKey(PyCRYPTKEY):Key to be used to decrypt the blob, not used for importing public keys + Flags(typing.Any):Combination of CRYPT_EXPORTABLE, CRYPT_OAEP, CRYPT_NO_SALT, CRYPT_USER_PROTECTED + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptExportPublicKeyInfo(self,KeySpec:'typing.Any',CertEncodingType:'typing.Any') -> 'PyCERT_PUBLIC_KEY_INFO': + """ + Exports a public key to send to other users + +Returned dict can be serialized for sending to another python application using pickle.dump + +Args: + + KeySpec(typing.Any):AT_KEYEXCHANGE or AT_SIGNATURE + CertEncodingType(typing.Any):Specifies encoding for exported key info + +Returns: + + PyCERT_PUBLIC_KEY_INFO + + """ + pass + + + def CryptImportPublicKeyInfo(self,Info:'typing.Any',CertEncodingType:'typing.Any') -> 'PyCRYPTKEY': + """ + Imports another user's public key + +Args: + + Info(typing.Any):PyCERT_PUBLIC_KEY_INFO dictionary as returned by PyCRYPTPROV::CryptExportPublicKeyInfo + CertEncodingType(typing.Any):Specifies encoding for exported key info + +Returns: + + PyCRYPTKEY + + """ + pass + + +class PyCRYPT_ALGORITHM_IDENTIFIER(object): + """Dictionary containing information that identifies an encryption + +algorithm and any extra parameters it requires""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'typing.Any': + """An szOID_* string identifying the algorithm""" + pass + + + @property + def Parameters(self)->'typing.Any': + """Blob of binary data containing encoded parameters""" + pass + + +class PyCRYPT_ATTRIBUTE(object): + """Dict representing a CRYPT_ATTRIBUTE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'typing.Any': + """An szOID_* string identifying the attribute""" + pass + + + @property + def Value(self)->'typing.Tuple[typing.Any, ...]': + """A sequence of buffers containing the attribute values""" + pass + + +class PyCRYPT_BIT_BLOB(object): + """Dict containing raw data of a certain bit length""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Data(self)->'typing.Any': + """Binary data""" + pass + + + @property + def UnusedBits(self)->'typing.Any': + """Nbr of bits of last byte that are unused""" + pass + + +class PyCRYPT_DECRYPT_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def CertStores(self)->'typing.Tuple[typing.Any, ...]': + """Sequence of certificate stores to be searched for a certificate with a private key that can be used to decrypt the message""" + pass + + + @property + def MsgAndCertEncodingType(self)->'typing.Any': + """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + + @property + def Flags(self)->'typing.Any': + """Optional. CRYPT_MESSAGE_SILENT_KEYSET_FLAG can be used to suppress any dialogs that might be triggered by accessing a key container, such as a request for a PIN.""" + pass + + +class PyCRYPT_ENCRYPT_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ContentEncryptionAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Identifies the algorithm to be used""" + pass + + + @property + def CryptProv(self)->'PyCRYPTPROV': + """Optional. Handle to provider that will perform encryption, can be None for default provider""" + pass + + + @property + def EncryptionAuxInfo(self)->'typing.Any': + """Optional. Extra info required by some CSP's. Not supported yet, use only None""" + pass + + + @property + def Flags(self)->'typing.Any': + """Optional. Combination of CRYPT_MESSAGE_*_FLAG constants""" + pass + + + @property + def InnerContentType(self)->'typing.Any': + """Optional. Only used if message to be encrypted is already encoded""" + pass + + + @property + def MsgEncodingType(self)->'typing.Any': + """Optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + +class PyCRYPT_SIGN_MESSAGE_PARA(object): + """Dict of parms defining how a message will be signed""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SigningCert(self)->'PyCERT_CONTEXT': + """Certficate to be used to sign message""" + pass + + + @property + def HashAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Algorithm to be used for signed hash""" + pass + + + @property + def HashAuxInfo(self)->'typing.Any': + """Optional. Param is reserved, use only None.""" + pass + + + @property + def MsgCert(self)->'typing.Tuple[PyCERT_CONTEXT, ...]': + """Optional sequence of certificate to be included in the message.""" + pass + + + @property + def MsgCrl(self)->'typing.Tuple[typing.Any, ...]': + """Optional. Sequence of certificate revocation lists. Not yet supported, use only None.""" + pass + + + @property + def AuthAttr(self)->'typing.Tuple[PyCRYPT_ATTRIBUTE, ...]': + """Sequence of canonical attributes to be added to the message""" + pass + + + @property + def UnauthAttr(self)->'typing.Tuple[PyCRYPT_ATTRIBUTE, ...]': + """Sequence of arbitrary attributes""" + pass + + + @property + def Flags(self)->'typing.Any': + """Optional CRYPT_MESSAGE_*_FLAG that indicates content type if output is to be further encoded.""" + pass + + + @property + def InnerContentType(self)->'typing.Any': + """Optional, one of the CMSG_* content types if message is already encoded, .""" + pass + + + @property + def MsgEncodingType(self)->'typing.Any': + """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + +class PyCRYPT_VERIFY_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def MsgAndCertEncodingType(self)->'typing.Any': + """Encoding types, defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + + @property + def CryptProv(self)->'PyCRYPTPROV': + """CSP to be used to verify signature. Use None for default provider.""" + pass + + + @property + def PyGetSignerCertificate(self)->'typing.Any': + """Callback function that locates signer's certificate.""" + pass + + + @property + def GetArg(self)->'typing.Any': + """Argument to be passed to above function, can be any object.""" + pass + + +class PyCTL_CONTEXT(object): + """Object containing a Certificate Trust List""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCTL_CONTEXT(self)->'typing.Any': + """Raw message handle""" + pass + + + def CertFreeCTLContext(self,) -> 'None': + """ + Closes the CTL handle + +Args: + + + +Returns: + + None + + """ + pass + + + def CertEnumCTLContextProperties(self,) -> 'typing.Tuple[typing.Any, ...]': + """ + Lists property id's for the context + +Args: + + + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + + def CertEnumSubjectInSortedCTL(self,) -> 'typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]': + """ + Retrieves trusted subjects contained in CRL + +Args: + + + +Returns: + + typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]:PyCTL_CONTEXT.CertEnumSubjectInSortedCTL + +((str,str),...) = CertEnumSubjectInSortedCTL()Retrieves trusted subjects contained in CRL +Return ValueReturns a sequence of tuples containing two strings (SubjectIdentifier, EncodedAttributes) + + + """ + pass + + + def CertDeleteCTLFromStore(self,) -> 'None': + """ + Removes the CTL from the store that it is contained in + +Args: + + + +Returns: + + None + + """ + pass + + + def CertSerializeCTLStoreElement(self,Flags:'typing.Any'=0) -> 'str': + """ + Serializes the CTL and its properties + +Args: + + Flags(typing.Any):Reserved, use only 0 if passed in + +Returns: + + str + + """ + pass + + +class PyCTL_USAGE(object): + """Sequence of string OIDs (szOID_*). This struct is identical to CERT_ENHKEY_USAGE.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyConsoleScreenBuffer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetConsoleActiveScreenBuffer(self,) -> 'None': + """ + Sets this handle as the currently displayed screen + +buffer + +Args: + + + +Returns: + + None + + """ + pass + + + def GetConsoleCursorInfo(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves size and visibility of console's + +cursor + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:PyConsoleScreenBuffer.GetConsoleCursorInfo + +(Size, bVisible) = GetConsoleCursorInfo()Retrieves size and visibility of console's + +cursor +Return ValueReturns the size of the console's cursor expressed as a percentage of character size, and a boolen indicating + +if cursor is visible + + + """ + pass + + + def SetConsoleCursorInfo(self,Size:'typing.Any',Visible:'typing.Any') -> 'None': + """ + Sets the size and visibility of console's cursor + +Args: + + Size(typing.Any):Percentage of character size that cursor will occupy + Visible(typing.Any):Determines if cursor is visible + +Returns: + + None + + """ + pass + + + def GetConsoleMode(self,) -> 'typing.Any': + """ + Returns the input or output mode of the console buffer + +Args: + + + +Returns: + + typing.Any:PyConsoleScreenBuffer.GetConsoleMode + +int = GetConsoleMode()Returns the input or output mode of the console buffer +Return ValueReturns a combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants + + + """ + pass + + + def SetConsoleMode(self,Mode:'typing.Any') -> 'None': + """ + Sets the input or output mode of the console buffer + +Args: + + Mode(typing.Any):Combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants + +Returns: + + None + + """ + pass + + + def ReadConsole(self,NumberOfCharsToRead:'typing.Any') -> 'typing.Any': + """ + Reads characters from the console input buffer + +Args: + + NumberOfCharsToRead(typing.Any):Characters to read + +Returns: + + typing.Any + + """ + pass + + + def WriteConsole(self,Buffer:'typing.Any') -> 'typing.Any': + """ + Writes characters at current cursor position + +Args: + + Buffer(typing.Any):String or Unicode to be written to consoleReturn ValueReturns the number of characters written + +Returns: + + typing.Any:String or Unicode to be written to consoleReturn ValueReturns the number of characters written + + + """ + pass + + + def FlushConsoleInputBuffer(self,) -> 'None': + """ + Flush input buffer + +Args: + + + +Returns: + + None + + """ + pass + + + def SetConsoleTextAttribute(self,Attributes:'typing.Any') -> 'None': + """ + Sets character attributes for subsequent write operations + +Args: + + Attributes(typing.Any):Attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants + +Returns: + + None + + """ + pass + + + def SetConsoleCursorPosition(self,CursorPosition:'PyCOORD') -> 'None': + """ + Sets the console screen buffer's cursor position + +Args: + + CursorPosition(PyCOORD):A PyCOORD containing the new cursor position + +Returns: + + None + + """ + pass + + + def SetConsoleScreenBufferSize(self,Size:'PyCOORD') -> 'None': + """ + Sets the size of the console screen buffer + +Args: + + Size(PyCOORD):COORD object containing the new dimensions + +Returns: + + None + + """ + pass + + + def SetConsoleWindowInfo(self,Absolute:'typing.Any',ConsoleWindow:'PySMALL_RECT') -> 'None': + """ + Changes size and position of a console's window + +Args: + + Absolute(typing.Any):If False, coordinates are relative to current position + ConsoleWindow(PySMALL_RECT):A SMALL_RECT containing the new window coordinates + +Returns: + + None + + """ + pass + + + def GetConsoleScreenBufferInfo(self,) -> 'typing.Any': + """ + Returns the state of the screen buffer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetLargestConsoleWindowSize(self,) -> 'PyCOORD': + """ + Returns the largest possible size for the + +console's window + +Args: + + + +Returns: + + PyCOORD + + """ + pass + + + def FillConsoleOutputAttribute(self,Attribute:'typing.Any',Length:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': + """ + Set text attributes for a consecutive series of + +characters + +Args: + + Attribute(typing.Any):Text attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants + Length(typing.Any):The number of characters to set + WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set + +Returns: + + typing.Any:The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set + + + """ + pass + + + def FillConsoleOutputCharacter(self,Character:'typing.Any',Length:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': + """ + Sets consecutive character positions to a specified + +character + +Args: + + Character(typing.Any):A single character to be used to fill the specified range + Length(typing.Any):The number of characters positions to fill + WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of characters actually written + +Returns: + + typing.Any:The screen position to begin atReturn ValueReturns the number of characters actually written + + + """ + pass + + + def ReadConsoleOutputCharacter(self,Length:'typing.Any',ReadCoord:'PyCOORD') -> 'str': + """ + Reads consecutive characters from a starting + +position + +Args: + + Length(typing.Any):The number of characters positions to read + ReadCoord(PyCOORD):The screen position start reading from + +Returns: + + str + + """ + pass + + + def ReadConsoleOutputAttribute(self,Length:'typing.Any',ReadCoord:'PyCOORD') -> 'typing.Tuple[typing.Any, ...]': + """ + Retrieves attributes from consecutive character + +cells + +Args: + + Length(typing.Any):The number of attributes to read + ReadCoord(PyCOORD):The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters + +Returns: + + typing.Tuple[typing.Any, ...]:The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters + + + """ + pass + + + def WriteConsoleOutputCharacter(self,Characters:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': + """ + Writes a string of characters at a specified position + +Args: + + Characters(typing.Any):Characters to be written + WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of characters actually written + +Returns: + + typing.Any:The screen position at which to start writingReturn ValueReturns the number of characters actually written + + + """ + pass + + + def WriteConsoleOutputAttribute(self,Attributes:'typing.Tuple[typing.Any, ...]',WriteCoord:'PyCOORD') -> 'typing.Any': + """ + Sets the attributes of a range of character cells + +Args: + + Attributes(typing.Tuple[typing.Any, ...]):A sequence of ints containing the attributes to be set + WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of attributes set + +Returns: + + typing.Any:The screen position at which to start writingReturn ValueReturns the number of attributes set + + + """ + pass + + + def ScrollConsoleScreenBuffer(self,ScrollRectangle:'PySMALL_RECT',ClipRectangle:'PySMALL_RECT',DestinationOrigin:'PyCOORD',FillCharacter:'typing.Any',FillAttribute:'typing.Any') -> 'None': + """ + Scrolls a region of the display + +Args: + + ScrollRectangle(PySMALL_RECT):The region to be scrolled + ClipRectangle(PySMALL_RECT):Rectangle that limits display area affected, can be None + DestinationOrigin(PyCOORD):The position to which ScrollRectangle will be moved + FillCharacter(typing.Any):Character to fill in the area left blank by scrolling operation + FillAttribute(typing.Any):Text attributes to apply to FillCharacter + +Returns: + + None + + """ + pass + + + def GetCurrentConsoleFont(self,MaximumWindow:'typing.Any'=False) -> 'typing.Tuple[typing.Any, PyCOORD]': + """ + Returns currently displayed font + +Args: + + MaximumWindow(typing.Any):If True, retrieves font size for maximum window sizeCommentsOnly exists on XP or later. MSDN docs claim the returned COORD is the font size, but it's actually the window size. Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size.Return ValueReturns the index of current font and window size + +Returns: + + typing.Tuple[typing.Any, PyCOORD]:If True, retrieves font size for maximum window size +Comments + +Only exists on XP or later. + +MSDN docs claim the returned COORD is the font size, but it's actually the window size. + +Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size. +Return ValueReturns the index of current font and window size + + + """ + pass + + + def GetConsoleFontSize(self,Font:'typing.Any') -> 'PyCOORD': + """ + Returns size of specified font for the console + +Args: + + Font(typing.Any):Index of font as returned by GetCurrentConsoleFontCommentsOnly exists on XP or later. + +Returns: + + PyCOORD + + """ + pass + + + def SetConsoleFont(self,Font:'typing.Any') -> 'None': + """ + Changes the font used by the screen buffer + +Args: + + Font(typing.Any):The number of the font to be setCommentsFunction is not documented on MSDN + +Returns: + + None + + """ + pass + + + def SetStdHandle(self,StdHandle:'typing.Any') -> 'None': + """ + Replaces one of calling process's standard handles with this handle + +Args: + + StdHandle(typing.Any):Specifies handle to be replaced - STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE + +Returns: + + None + + """ + pass + + + def SetConsoleDisplayMode(self,Flags:'typing.Any',NewScreenBufferDimensions:'PyCOORD') -> 'None': + """ + Sets the display mode of the console buffer + +Args: + + Flags(typing.Any):CONSOLE_FULLSCREEN_MODE or CONSOLE_WINDOWED_MODE + NewScreenBufferDimensions(PyCOORD):New size of the screen buffer in characters + +Returns: + + None + + """ + pass + + + def WriteConsoleInput(self,Buffer:'typing.Tuple[PyINPUT_RECORD, ...]') -> 'typing.Any': + """ + Places input records in the console's input queue + +Args: + + Buffer(typing.Tuple[PyINPUT_RECORD, ...]):A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written + +Returns: + + typing.Any:A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written + + + """ + pass + + + def ReadConsoleInput(self,Length:'typing.Any') -> 'typing.Tuple[PyINPUT_RECORD, ...]': + """ + Reads input records and removes them from + +the input queue + +Args: + + Length(typing.Any):The number of input records to readCommentsThis functions blocks until at least one record is read. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects + +Returns: + + typing.Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments + +This functions blocks until at least one record is read. + +The number of records returned may be less than the nbr requested +Return ValueReturns a sequence of PyINPUT_RECORD objects + + + """ + pass + + + def PeekConsoleInput(self,Length:'typing.Any') -> 'typing.Tuple[PyINPUT_RECORD, ...]': + """ + Returns pending input records without + +removing them from the input queue + +Args: + + Length(typing.Any):The number of input records to readCommentsThis function does not block as ReadConsoleInput does. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects + +Returns: + + typing.Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments + +This function does not block as ReadConsoleInput does. + +The number of records returned may be less than the nbr requested +Return ValueReturns a sequence of PyINPUT_RECORD objects + + + """ + pass + + + def GetNumberOfConsoleInputEvents(self,) -> 'typing.Any': + """ + Returns the number of unread records in the input + +queue + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCredHandle(object): + """Handle to a set of logon credentials, used with sspi authentication functions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Detach(self,) -> 'typing.Any': + """ + Disassociates object from handle and returns integer value of handle, + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def FreeCredentialsHandle(self,) -> 'None': + """ + Releases the credentials handle and makes object unusable + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryCredentialsAttributes(self,Attribute:'typing.Any') -> 'None': + """ + Returns information about the credentials + +Args: + + Attribute(typing.Any):SECPKG_* constant specifying which type of information to returnCommentsOnly SECPKG_CRED_ATTR_NAMES currently supportedAttributeReturn typeSECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials representSECPKG_ATTR_SUPPORTED_ALGSNot supported yet SecPkgCred_SupportedAlgs:SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet SecPkgCred_CipherStrengths:SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet SecPkgCred_SupportedProtocols:Return ValueType of returned values is dependent on Attribute + +Returns: + + None:SECPKG_* constant specifying which type of information to returnComments + +Only SECPKG_CRED_ATTR_NAMES currently supported + + + +Attribute + + +Return type + + + +SECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials represent +SECPKG_ATTR_SUPPORTED_ALGSNot supported yet + +SecPkgCred_SupportedAlgs: +SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet + +SecPkgCred_CipherStrengths: +SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet + +SecPkgCred_SupportedProtocols: +Return ValueType of returned values is dependent on Attribute + + + """ + pass + + +class PyCtxtHandle(object): + """Security context handle, as used with sspi functions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Detach(self,) -> 'typing.Any': + """ + Disassociates object from handle and returns integer value of handle + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def CompleteAuthToken(self,Token:'PySecBufferDesc') -> 'None': + """ + Completes the authentication token + +Args: + + Token(PySecBufferDesc):The buffer that contains the token buffer used when the context was initializedCommentsThis method should be invoked on a context handle if the InitializeSecurityContext call that created it returned SEC_I_COMPLETE_NEEDED or SEC_I_COMPLETE_AND_CONTINUE + +Returns: + + None + + """ + pass + + + def QueryContextAttributes(self,Attribute:'typing.Any') -> 'None': + """ + Retrieves info about a security context + +Args: + + Attribute(typing.Any):SECPKG_ATTR_* constantCommentsNot all attributes are available for every security packageAttributeReturn typeSECPKG_ATTR_ACCESS_TOKENPyHANDLE - returns a handle to the context's access tokenSECPKG_ATTR_AUTHORITYPyUnicode - returns the name of the authenticating entitySECPKG_ATTR_CIPHER_STRENGTHS(int,int) - returns the mininum and maximum cipher strengths allowedSECPKG_ATTR_CONNECTION_INFOReturns a dictionary of connection info representing a SecPkgContext_ConnectionInfo structSECPKG_ATTR_SESSION_KEYstring - returns the session key for the contextSECPKG_ATTR_ISSUER_LIST_EX(int, string) - Returns names of trusted certificate issuersSECPKG_ATTR_FLAGSint - returns flags negotiated when context was establishedSECPKG_ATTR_PACKAGE_INFOdict - returns dictionary containing info for context's security packageSECPKG_ATTR_NEGOTIATION_INFO(int, dict) - returns state of negotiation (SECPKG_NEGOTIATION_COMPLETE, SECPKG_NEGOTIATION_OPTIMISTIC,SECPKG_NEGOTIATION_IN_PROGRESS) and info for negotiated packageSECPKG_ATTR_NAMESPyUnicode - returns the user name for the contextSECPKG_ATTR_SIZESdict containing buffer sizes to be used with the contextSECPKG_ATTR_PASSWORD_EXPIRYPyTime - returns time password expiresSECPKG_ATTR_LIFESPAN(PyTime,PyTime) - returns time period during which context is validSECPKG_ATTR_NATIVE_NAMES(PyUnicode,PyUnicode) - returns client and server namesSECPKG_ATTR_TARGET_INFORMATIONstring - returns the target for the contextSECPKG_ATTR_STREAM_SIZESdict (see SecPkgContext_StreamSizes) containing message buffer sizesSECPKG_ATTR_KEY_INFOdict (see SecPkgContext_KeyInfo) containing encryption key parametersSECPKG_ATTR_DCE_INFOnot supported yet SecPkgContext_DceInfoSECPKG_ATTR_LOCAL_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_REMOTE_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_ROOT_STOREnot supported yet HCERTCONTEXTSECPKG_ATTR_SUPPORTED_ALGSnot supported yet SecPkgCred_SupportedAlgsSECPKG_ATTR_SUPPORTED_PROTOCOLSnot supported yet SecPkgCred_SupportedProtocols + +Returns: + + None + + """ + pass + + + def DeleteSecurityContext(self,) -> 'None': + """ + Frees the security context and invalidates the handle + +Args: + + + +Returns: + + None + + """ + pass + + + def QuerySecurityContextToken(self,) -> 'typing.Any': + """ + Returns the access token for a security context + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def MakeSignature(self,fqop:'typing.Any',Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': + """ + Creates a crytographic hash of a message using session key of the security + +context + +Args: + + fqop(typing.Any):Flags that indicate quality of protection desired, specific to each security package + Message(PySecBufferDesc):Buffer set that includes buffers for input data and output signature + MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKENReturn ValueReturns None on success, and output buffer in Message will contain the signature + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one input buffer of + +type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKEN +Return ValueReturns None on success, and output buffer in Message will contain the signature + + + """ + pass + + + def VerifySignature(self,Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': + """ + None + +Args: + + Message(PySecBufferDesc):SecBufferDesc that contains data buffer and signature buffer + MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is a data buffer of type SECBUFFER_DATA and a signature buffer of type SECBUFFER_TOKENReturn ValueReturns quality of protection flags used to create signature + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is a data buffer of type + +SECBUFFER_DATA + +and a signature buffer of type SECBUFFER_TOKEN +Return ValueReturns quality of protection flags used to create signature + + + """ + pass + + + def EncryptMessage(self,fqop:'typing.Any',Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': + """ + Encrypts data with session key of security context + +Args: + + fqop(typing.Any):Flags that indicate quality of protection desired, specific to each security package + Message(PySecBufferDesc):PySecBufferDesc that contains data buffer(s) to be encrypted + MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or SECBUFFER_TOKEN to receive signature or padding dataReturn ValueReturns None on success, and buffer(s) will contain encrypted data + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one input buffer + +of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or + +SECBUFFER_TOKEN to receive signature or padding data +Return ValueReturns None on success, and buffer(s) will contain encrypted data + + + """ + pass + + + def DecryptMessage(self,Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': + """ + None + +Args: + + Message(PySecBufferDesc):PySecBufferDesc containing data buffers to be decrypted + MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one buffer of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit in first bufferReturn ValueReturns flags specfic to security package indicating quality of protection + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one buffer + +of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or + +SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit + +in first buffer +Return ValueReturns flags specfic to security package indicating quality of protection + + + """ + pass + + + def ImpersonateSecurityContext(self,) -> 'None': + """ + Impersonates a client security context + +Args: + + + +Returns: + + None + + """ + pass + + + def RevertSecurityContext(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDCB(object): + """A Python object, representing an DCB structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def BaudRate(self)->'int': + """current baud rate""" + pass + + + @property + def wReserved(self)->'int': + """not currently used""" + pass + + + @property + def XonLim(self)->'int': + """transmit XON threshold""" + pass + + + @property + def XoffLim(self)->'int': + """transmit XOFF threshold""" + pass + + + @property + def ByteSize(self)->'int': + """number of bits/byte, 4-8""" + pass + + + @property + def Parity(self)->'int': + """0-4=no,odd,even,mark,space""" + pass + + + @property + def StopBits(self)->'int': + """0,1,2 = 1, 1.5, 2""" + pass + + + @property + def XonChar(self)->'str': + """Tx and Rx XON character""" + pass + + + @property + def XoffChar(self)->'str': + """Tx and Rx XOFF character""" + pass + + + @property + def ErrorChar(self)->'str': + """error replacement character""" + pass + + + @property + def EofChar(self)->'str': + """end of input character""" + pass + + + @property + def EvtChar(self)->'str': + """received event character""" + pass + + + @property + def wReserved1(self)->'int': + """reserved; do not use""" + pass + + + @property + def fBinary(self)->'int': + """binary mode, no EOF check""" + pass + + + @property + def fParity(self)->'int': + """enable parity checking""" + pass + + + @property + def fOutxCtsFlow(self)->'int': + """CTS output flow control""" + pass + + + @property + def fOutxDsrFlow(self)->'int': + """DSR output flow control""" + pass + + + @property + def fDtrControl(self)->'int': + """DTR flow control type""" + pass + + + @property + def fDsrSensitivity(self)->'int': + """DSR sensitivity""" + pass + + + @property + def fTXContinueOnXoff(self)->'int': + """XOFF continues Tx""" + pass + + + @property + def fOutX(self)->'int': + """XON/XOFF out flow control""" + pass + + + @property + def fInX(self)->'int': + """XON/XOFF in flow control""" + pass + + + @property + def fErrorChar(self)->'int': + """enable error replacement""" + pass + + + @property + def fNull(self)->'int': + """enable null stripping""" + pass + + + @property + def fRtsControl(self)->'int': + """RTS flow control""" + pass + + + @property + def fAbortOnError(self)->'int': + """abort on error""" + pass + + + @property + def fDummy2(self)->'int': + """reserved""" + pass + + +class PyDEVMODE(object): + """Python object wrapping a DEVMODE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SpecVersion(self)->'typing.Any': + """Should always be set to DM_SPECVERSION""" + pass + + + @property + def DriverVersion(self)->'typing.Any': + """Version nbr assigned to printer driver by vendor""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure""" + pass + + + @property + def DriverExtra(self)->'typing.Any': + """Number of extra bytes allocated for driver data, can only be set when new object is created""" + pass + + + @property + def Fields(self)->'typing.Any': + """Bitmask of win32con.DM_* constants indicating which members are set""" + pass + + + @property + def Orientation(self)->'typing.Any': + """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" + pass + + + @property + def PaperSize(self)->'typing.Any': + """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" + pass + + + @property + def PaperLength(self)->'typing.Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def PaperWidth(self)->'typing.Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def Position_x(self)->'typing.Any': + """Position of display relative to desktop""" + pass + + + @property + def Position_y(self)->'typing.Any': + """Position of display relative to desktop""" + pass + + + @property + def DisplayOrientation(self)->'typing.Any': + """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" + pass + + + @property + def DisplayFixedOutput(self)->'typing.Any': + """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" + pass + + + @property + def Scale(self)->'typing.Any': + """Specified as percentage, eg 50 means half size of original""" + pass + + + @property + def Copies(self)->'typing.Any': + """Nbr of copies to print""" + pass + + + @property + def DefaultSource(self)->'typing.Any': + """DMBIN_* constant, or can be a printer-specific value""" + pass + + + @property + def PrintQuality(self)->'typing.Any': + """DMRES_* constant, interpreted as DPI if positive""" + pass + + + @property + def Color(self)->'typing.Any': + """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" + pass + + + @property + def Duplex(self)->'typing.Any': + """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" + pass + + + @property + def YResolution(self)->'typing.Any': + """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" + pass + + + @property + def TTOption(self)->'typing.Any': + """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" + pass + + + @property + def Collate(self)->'typing.Any': + """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" + pass + + + @property + def LogPixels(self)->'typing.Any': + """Pixels per inch (only for display devices""" + pass + + + @property + def BitsPerPel(self)->'typing.Any': + """Color resolution in bits per pixel""" + pass + + + @property + def PelsWidth(self)->'typing.Any': + """Pixel width of display""" + pass + + + @property + def PelsHeight(self)->'typing.Any': + """Pixel height of display""" + pass + + + @property + def DisplayFlags(self)->'typing.Any': + """Combination of DM_GRAYSCALE and DM_INTERLACED""" + pass + + + @property + def DisplayFrequency(self)->'typing.Any': + """Refresh rate""" + pass + + + @property + def ICMMethod(self)->'typing.Any': + """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" + pass + + + @property + def ICMIntent(self)->'typing.Any': + """Intent of ICM, one of win32con.DMICM_* values""" + pass + + + @property + def MediaType(self)->'typing.Any': + """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" + pass + + + @property + def DitherType(self)->'typing.Any': + """Dithering option, win32con.DMDITHER_*""" + pass + + + @property + def Reserved1(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Reserved2(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Nup(self)->'typing.Any': + """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" + pass + + + @property + def PanningWidth(self)->'typing.Any': + """Not used, leave as 0""" + pass + + + @property + def PanningHeight(self)->'typing.Any': + """Not used, leave as 0""" + pass + + + @property + def DeviceName(self)->'typing.Any': + """String of at most 32 chars""" + pass + + + @property + def FormName(self)->'typing.Any': + """Name of form as returned by win32print::EnumForms, at most 32 chars""" + pass + + + @property + def DriverData(self)->'typing.Any': + """Driver data appended to end of structure""" + pass + + + def Clear(self,) -> 'None': + """ + Resets all members of the structure + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDEVMODEW(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SpecVersion(self)->'typing.Any': + """Should always be set to DM_SPECVERSION""" + pass + + + @property + def DriverVersion(self)->'typing.Any': + """Version nbr assigned to printer driver by vendor""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure""" + pass + + + @property + def DriverExtra(self)->'typing.Any': + """Number of extra bytes allocated for driver data, can only be set when new object is created""" + pass + + + @property + def Fields(self)->'typing.Any': + """Bitmask of win32con.DM_* constants indicating which members are set""" + pass + + + @property + def Orientation(self)->'typing.Any': + """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" + pass + + + @property + def PaperSize(self)->'typing.Any': + """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" + pass + + + @property + def PaperLength(self)->'typing.Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def PaperWidth(self)->'typing.Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def Position_x(self)->'typing.Any': + """Position of display relative to desktop""" + pass + + + @property + def Position_y(self)->'typing.Any': + """Position of display relative to desktop""" + pass + + + @property + def DisplayOrientation(self)->'typing.Any': + """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" + pass + + + @property + def DisplayFixedOutput(self)->'typing.Any': + """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" + pass + + + @property + def Scale(self)->'typing.Any': + """Specified as percentage, eg 50 means half size of original""" + pass + + + @property + def Copies(self)->'typing.Any': + """Nbr of copies to print""" + pass + + + @property + def DefaultSource(self)->'typing.Any': + """DMBIN_* constant, or can be a printer-specific value""" + pass + + + @property + def PrintQuality(self)->'typing.Any': + """DMRES_* constant, interpreted as DPI if positive""" + pass + + + @property + def Color(self)->'typing.Any': + """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" + pass + + + @property + def Duplex(self)->'typing.Any': + """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" + pass + + + @property + def YResolution(self)->'typing.Any': + """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" + pass + + + @property + def TTOption(self)->'typing.Any': + """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" + pass + + + @property + def Collate(self)->'typing.Any': + """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" + pass + + + @property + def LogPixels(self)->'typing.Any': + """Pixels per inch (only for display devices""" + pass + + + @property + def BitsPerPel(self)->'typing.Any': + """Color resolution in bits per pixel""" + pass + + + @property + def PelsWidth(self)->'typing.Any': + """Pixel width of display""" + pass + + + @property + def PelsHeight(self)->'typing.Any': + """Pixel height of display""" + pass + + + @property + def DisplayFlags(self)->'typing.Any': + """Combination of DM_GRAYSCALE and DM_INTERLACED""" + pass + + + @property + def DisplayFrequency(self)->'typing.Any': + """Refresh rate""" + pass + + + @property + def ICMMethod(self)->'typing.Any': + """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" + pass + + + @property + def ICMIntent(self)->'typing.Any': + """Intent of ICM, one of win32con.DMICM_* values""" + pass + + + @property + def MediaType(self)->'typing.Any': + """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" + pass + + + @property + def DitherType(self)->'typing.Any': + """Dithering option, win32con.DMDITHER_*""" + pass + + + @property + def Reserved1(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Reserved2(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Nup(self)->'typing.Any': + """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" + pass + + + @property + def PanningWidth(self)->'typing.Any': + """Not used, leave as 0""" + pass + + + @property + def PanningHeight(self)->'typing.Any': + """Not used, leave as 0""" + pass + + + @property + def DeviceName(self)->'str': + """String of at most 32 chars""" + pass + + + @property + def FormName(self)->'typing.Any': + """Name of form as returned by win32print::EnumForms, at most 32 chars""" + pass + + + @property + def DriverData(self)->'typing.Any': + """Driver data appended to end of structure""" + pass + + +class PyDISPLAY_DEVICE(object): + """Python object wrapping a DISPLAY_DEVICE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Size(self)->'typing.Any': + """Size of structure""" + pass + + + @property + def DeviceName(self)->'typing.Any': + """String of at most 32 chars""" + pass + + + @property + def DeviceString(self)->'typing.Any': + """String of at most 128 chars""" + pass + + + @property + def StateFlags(self)->'typing.Any': + """Bitmask of win32con.DISPLAY_DEVICE_* constants indicating current device status""" + pass + + + @property + def DeviceID(self)->'typing.Any': + """String of at most 128 chars""" + pass + + + @property + def DeviceKey(self)->'typing.Any': + """String of at most 128 chars""" + pass + + + def Clear(self,) -> 'None': + """ + Resets all members of the structure + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDLGITEMTEMPLATE(object): + """A tuple describing a control in a dialog box.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDLGTEMPLATE(object): + """A tuple of items describing a dialog box, that can be used to create the dialog.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDS_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDS_NAME_RESULT_ITEM(object): + """A tuple representing a DS_NAME_RESULT_ITEM""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDateTime(object): + """A Python object, representing an instant in time.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Format(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyDialogTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVTLOG_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVT_HANDLE(object): + """Handle to an event log, session, query, or any other object used with + +the Evt* event log functions on Vista and later. + +When the object is destroyed, EvtClose is called.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVT_RPC_LOGIN(object): + """Tuple containing login credentials for a remote Event Log connection""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEventLogRecord(object): + """An object containing the data in an EVENTLOGRECORD.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Reserved(self)->'int': + """""" + pass + + + @property + def RecordNumber(self)->'int': + """""" + pass + + + @property + def TimeGenerated(self)->'PyTime': + """""" + pass + + + @property + def TimeWritten(self)->'PyTime': + """""" + pass + + + @property + def EventID(self)->'int': + """""" + pass + + + @property + def EventType(self)->'int': + """""" + pass + + + @property + def EventCategory(self)->'int': + """""" + pass + + + @property + def ReservedFlags(self)->'int': + """""" + pass + + + @property + def ClosingRecordNumber(self)->'int': + """""" + pass + + + @property + def SourceName(self)->'str': + """""" + pass + + + @property + def StringInserts(self)->'typing.Tuple[str, ...]': + """""" + pass + + + @property + def Sid(self)->'PySID': + """""" + pass + + + @property + def Data(self)->'str': + """""" + pass + + + @property + def ComputerName(self)->'str': + """""" + pass + + +class PyGROUP_INFO_0(object): + """A dictionary holding the information in a Win32 GROUP_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + +class PyGROUP_INFO_1(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """The group's comment.""" + pass + + +class PyGROUP_INFO_1002(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1002 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + +class PyGROUP_INFO_1005(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1005 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def attributes(self)->'typing.Any': + """""" + pass + + +class PyGROUP_INFO_2(object): + """A dictionary holding the information in a Win32 GROUP_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """The group's comment.""" + pass + + + @property + def group_id(self)->'typing.Any': + """""" + pass + + + @property + def attributes(self)->'typing.Any': + """""" + pass + + +class PyGROUP_USERS_INFO_0(object): + """A dictionary holding the information in a Win32 GROUP_USERS_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group or user""" + pass + + +class PyGROUP_USERS_INFO_1(object): + """A dictionary holding the information in a Win32 GROUP_USERS_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group or user""" + pass + + + @property + def attributes(self)->'typing.Any': + """""" + pass + + +class PyGdiHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyGetSignerCertificate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHANDLE(object): + """A Python object, representing a win32 HANDLE.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def handle(self)->'typing.Any': + """Integer value of the handleMethodsCloseCloses the handle closeSynonym for PyHANDLE::Close DetachDetaches the Win32 handle from the handle object. __nonzero__Used for detecting true/false. is nb_bool in Python 3.0 __int__Used when an integer representation of the handle object is required. __print__Used when the object is printed. tp_print __hash__Used when the hash value of an object is required tp_hash __str__Used when a string representation is required tp_str """ + pass + + + def Close(self,) -> 'None': + """ + Closes the underlying Win32 handle. + +Args: + + + +Returns: + + None + + """ + pass + + + def close(self,) -> 'None': + """ + Closes the underlying Win32 handle. + +Args: + + + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'typing.Any': + """ + Detaches the Win32 handle from the handle object. + +Args: + + + +Returns: + + typing.Any:PyHANDLE.Detach + +int = Detach()Detaches the Win32 handle from the handle object. +Comments + +After calling this function, the handle is effectively invalidated, + +but the handle is not closed. You would call this function when you + +need the underlying win32 handle to exist beyond the lifetime of the + +handle object. +Return ValueThe result is the value of the handle before it is detached. If the + +handle is already detached, this will return zero. + + + """ + pass + + +class PyHDESK(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetThreadDesktop(self,) -> 'None': + """ + Assigns this desktop to the calling thread + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumDesktopWindows(self,) -> 'typing.Tuple[int, ...]': + """ + Returns a list of handles to all top-level windows on desktop + +Args: + + + +Returns: + + typing.Tuple[int, ...] + + """ + pass + + + def SwitchDesktop(self,) -> 'None': + """ + Activates the desktop + +Args: + + + +Returns: + + None + + """ + pass + + + def CloseDesktop(self,) -> 'None': + """ + Closes the desktop handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyHDEVNOTIFY(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHHNTRACK(object): + """A Python object, representing an HHNTRACK + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def action(self)->'typing.Any': + """Specifies the action the user is about to take. This is an HHACT_ constant.""" + pass + + + @property + def hdr(self)->'typing.Any': + """Standard WM_NOTIFY header(win32help::NMHDR).""" + pass + + + @property + def curUrl(self)->'str': + """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" + pass + + + @property + def winType(self)->'typing.Any': + """A pointer to the current HH_WINTYPE structure (win32help::HH_WINTYPE).""" + pass + + +class PyHHN_NOTIFY(object): + """A Python object, representing an HHN_NOTIFY + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hdr(self)->'typing.Any': + """Standard WM_NOTIFY header.(win32help::NMHDR)""" + pass + + + @property + def url(self)->'str': + """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" + pass + + +class PyHH_AKLINK(object): + """A Python object, representing an HH_AKLINK structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def indexOnFail(self)->'typing.Any': + """Specifies whether to display the keyword in the Index tab of the HTML Help Viewer if the lookup fails. The value of window specifies the Help Viewer.""" + pass + + + @property + def keywords(self)->'str': + """Specifies one or more ALink names or KLink keywords to look up. Multiple entries are delimited by a semicolon.""" + pass + + + @property + def url(self)->'str': + """Specifies the topic file to navigate to if the lookup fails. url refers to a valid topic within the specified compiled help (.chm) file and does not support Internet protocols that point to an HTML file.""" + pass + + + @property + def msgText(self)->'str': + """Specifies the text to display in a message box if the lookup fails and indexOnFail is FALSE and url is NULL.""" + pass + + + @property + def msgTitle(self)->'str': + """Specifies the caption of the message box in which the msgText parameter appears.""" + pass + + + @property + def window(self)->'str': + """Specifies the name of the window type in which to display one of the following: The selected topic, if the lookup yields one or more matching topics. The topic specified in url, if the lookup fails and a topic is specified in url. The Index tab, if the lookup fails and indexOnFail is specified as TRUE.""" + pass + + +class PyHH_FTS_QUERY(object): + """A Python object, representing an HH_FTS_QUERY + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uniCodeStrings(self)->'typing.Any': + """TRUE if all strings are Unicode.""" + pass + + + @property + def proximity(self)->'typing.Any': + """Word proximity.""" + pass + + + @property + def stemmedSearch(self)->'typing.Any': + """TRUE for StemmedSearch only.""" + pass + + + @property + def titleOnly(self)->'typing.Any': + """TRUE for Title search only.""" + pass + + + @property + def execute(self)->'typing.Any': + """TRUE to initiate the search.""" + pass + + + @property + def searchQuery(self)->'str': + """String containing the search query.""" + pass + + +class PyHH_POPUP(object): + """A Python object, representing an HH_POPUP structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hinst(self)->'typing.Any': + """Instance handle of the program or DLL to retrieve the string resource from. Ignored if idString is zero.""" + pass + + + @property + def idString(self)->'typing.Any': + """Specifies zero, or a resource ID in the program or DLL specified in hinst.""" + pass + + + @property + def clrForeground(self)->'typing.Any': + """Specifies the RGB value to use for the foreground color of the pop-up window. To use the system color for the window text, specify -1.""" + pass + + + @property + def clrBackground(self)->'typing.Any': + """Specifies the RGB value to use for the background color of the pop-up window. To use the system color for the window background, specify -1.""" + pass + + + @property + def text(self)->'str': + """Specifies the text to display if idString is zero.""" + pass + + + @property + def font(self)->'str': + """Specifies the font attributes to use for the text in the pop-up window. Use the following format to specify font family, point size, character set, and font format: facename[, point size[, charset[ BOLD ITALIC UNDERLINE]]] To omit an attribute, enter a comma. For example, to specify bold, 10-pt, MS Sans Serif font, font would be: MS Sans Serif, 10, , BOLD""" + pass + + + @property + def pt(self)->'typing.Any': + """(x,y). Specifies (in pixels) where the top center of the pop-up window should be located.""" + pass + + + @property + def margins(self)->'typing.Any': + """(left,top,right,bottom). Specifies (in pixels) the margins to use on the left, top, right, and bottom sides of the pop-up window. The default for all rectangle members is -1.""" + pass + + +class PyHH_WINTYPE(object): + """A Python object, representing an HH_WINTYPE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uniCodeStrings(self)->'typing.Any': + """Specifies whether the strings used in this structure are UNICODE.""" + pass + + + @property + def validMembers(self)->'typing.Any': + """Specifies which members in the structure are valid.""" + pass + + + @property + def winProperties(self)->'typing.Any': + """Specifies the properties of the window, such as whether it is the standard HTML Help Viewer or whether it includes a Search tab.""" + pass + + + @property + def styles(self)->'typing.Any': + """Specifies the styles used to create the window. These styles can be ignored, combined with extended styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" + pass + + + @property + def exStyles(self)->'typing.Any': + """Specifies the extended styles used to create the window. These styles can be ignored, combined with default styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" + pass + + + @property + def showState(self)->'typing.Any': + """Specifies the initial display state of the window. Valid values are the same as those for the Win32 API ShowWindow function.""" + pass + + + @property + def hwndHelp(self)->'typing.Any': + """Specifies the handle of the window if the window has been created.""" + pass + + + @property + def hwndCaller(self)->'typing.Any': + """Specifies the window that will receive HTML Help notification messages. Notification messages are sent via Windows WM_NOTIFY messages.""" + pass + + + @property + def hwndToolBar(self)->'typing.Any': + """Specifies the handle of the toolbar.""" + pass + + + @property + def hwndNavigation(self)->'typing.Any': + """Specifies the handle of the Navigation pane.""" + pass + + + @property + def hwndHTML(self)->'typing.Any': + """Specifies the handle of the Topic pane, which hosts Shdocvw.dll.""" + pass + + + @property + def navWidth(self)->'typing.Any': + """Specifies the width of the Navigation pane when the Help Viewer is expanded.""" + pass + + + @property + def toolBarFlags(self)->'typing.Any': + """Specifies which buttons to include on the toolbar.""" + pass + + + @property + def notExpanded(self)->'typing.Any': + """Specifies that the Help Viewer open with the Navigation pane closed.""" + pass + + + @property + def curNavType(self)->'typing.Any': + """Specifies the default tab to display on the Navigation pane.""" + pass + + + @property + def idNotify(self)->'typing.Any': + """Specifies a non-zero ID for enabling HTML Help notification messages. This ID is passed as the wParam value of Windows WM_NOTIFY messages.""" + pass + + + @property + def typeName(self)->'str': + """A null-terminated string that specifies the name of the window type.""" + pass + + + @property + def caption(self)->'str': + """A null-terminated string that specifies the caption to display in the title bar of the window.""" + pass + + + @property + def windowPos(self)->'typing.Any': + """(left,top,right,bottom). Specifies the coordinates of the window in pixels.""" + pass + + + @property + def HTMLPos(self)->'typing.Any': + """(left,top,right,bottom). Specifies the coordinates of the Topic pane.""" + pass + + + @property + def toc(self)->'str': + """Specifies the contents (.hhc) file to display in the Navigation pane.""" + pass + + + @property + def index(self)->'str': + """Specifies the index (.hhk) file to display in the Navigation pane.""" + pass + + + @property + def file(self)->'str': + """Specifies the default HTML file to display in the Topic pane.""" + pass + + + @property + def home(self)->'str': + """Specifies the file or URL to display in the Topic pane when the Home button is clicked.""" + pass + + + @property + def jump1(self)->'str': + """Specifies the text to display underneath the Jump1 button.""" + pass + + + @property + def jump2(self)->'str': + """Specifies the text to display underneath the Jump2 button.""" + pass + + + @property + def urlJump1(self)->'str': + """Specifies the URL to jump to when the Jump1 button is clicked.""" + pass + + + @property + def urlJump2(self)->'str': + """Specifies the URL to jump to when the Jump2 button is clicked.""" + pass + + +class PyHINTERNET(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHKEY(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHTHEME(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHWINSTA(object): + """Wrapper for a handle to a window station - returned by CreateWindowStation, OpenWindowStation, or GetProcessWindowStation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumDesktops(self,) -> 'typing.Tuple[typing.Any, ...]': + """ + Lists names of desktops in the window station + +Args: + + + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + + def SetProcessWindowStation(self,) -> 'None': + """ + Associates the calling process with the window station + +Args: + + + +Returns: + + None + + """ + pass + + + def CloseWindowStation(self,) -> 'None': + """ + Closes the window station handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICONINFO(object): + """Tuple describing an icon or cursor""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIID(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyINPUT_RECORD(object): + """Interface to the INPUT_RECORD struct used with console IO functions. Create using + +PyINPUT_RECORDType(EventType)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def EventType(self)->'typing.Any': + """One of KEY_EVENT, MOUSE_EVENT, WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT. Cannot be changed after object is created""" + pass + + + @property + def KeyDown(self)->'typing.Any': + """True for a key press, False for key release""" + pass + + + @property + def RepeatCount(self)->'typing.Any': + """Nbr of repeats generated (key was held down if >1)""" + pass + + + @property + def VirtualKeyCode(self)->'typing.Any': + """Device-independent key code, win32con.VK_*""" + pass + + + @property + def VirtualScanCode(self)->'typing.Any': + """Device-dependent scan code generated by keyboard""" + pass + + + @property + def Char(self)->'str': + """Single unicode character generated by the keypress""" + pass + + + @property + def ControlKeyState(self)->'typing.Any': + """State of modifier keys, combination of CAPSLOCK_ON, ENHANCED_KEY, LEFT_ALT_PRESSED, LEFT_CTRL_PRESSED, NUMLOCK_ON, RIGHT_ALT_PRESSED, RIGHT_CTRL_PRESSED, SCROLLLOCK_ON, SHIFT_PRESSED""" + pass + + + @property + def ButtonState(self)->'typing.Any': + """Bitmask representing which mouse buttons were pressed.""" + pass + + + @property + def EventFlags(self)->'typing.Any': + """DOUBLE_CLICK, MOUSE_MOVED or MOUSE_WHEELED, or 0. If 0, indicates a mouse button press""" + pass + + + @property + def MousePosition(self)->'PyCOORD': + """Position in character coordinates""" + pass + + + @property + def Size(self)->'PyCOORD': + """New size of screen buffer in character rows/columns""" + pass + + + @property + def SetFocus(self)->'typing.Any': + """Reserved - Used only with type FOCUS_EVENT. This event is Reserved, and should be ignored.""" + pass + + + @property + def CommandId(self)->'typing.Any': + """Used only with event type MENU_EVENT, which is reserved and should not be used""" + pass + + +class PyLOCALGROUP_INFO_0(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + +class PyLOCALGROUP_INFO_1(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """The group's comment.""" + pass + + +class PyLOCALGROUP_INFO_1002(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1002 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_0(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_0 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_1(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_1 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + + @property + def sidusage(self)->'typing.Any': + """""" + pass + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_2(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_2 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + + @property + def sidusage(self)->'typing.Any': + """""" + pass + + + @property + def domainandname(self)->'typing.Union[str]': + """string containing the name of the member prefixed by the domain name and the "\\" separator character""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_3(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_3 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def domainandname(self)->'typing.Union[str]': + """string containing the name of the member prefixed by the domain name and the "\\" separator character""" + pass + + +class PyLOGBRUSH(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Style(self)->'typing.Any': + """Brush style, one of win32con.BS_* values""" + pass + + + @property + def Color(self)->'typing.Any': + """RGB color value. Can also be DIB_PAL_COLORS or DIB_RGB_COLORS if Style is BS_DIBPATTERN or BS_DIBPATTERNPT=""" + pass + + + @property + def Hatch(self)->'typing.Union[int, typing.Any]': + """For BS_HATCH style, one of win32con.HS_*. Not used For BS_SOLID or BS_HOLLOW. For a pattern brush, this should be a handle to a bitmap""" + pass + + +class PyLOGFONT(object): + """A Python object, representing an PyLOGFONT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def lfHeight(self)->'int': + """""" + pass + + + @property + def lfWidth(self)->'int': + """""" + pass + + + @property + def lfEscapement(self)->'int': + """""" + pass + + + @property + def lfOrientation(self)->'int': + """""" + pass + + + @property + def lfWeight(self)->'int': + """""" + pass + + + @property + def lfItalic(self)->'int': + """""" + pass + + + @property + def lfUnderline(self)->'int': + """""" + pass + + + @property + def lfStrikeOut(self)->'int': + """""" + pass + + + @property + def lfCharSet(self)->'int': + """""" + pass + + + @property + def lfOutPrecision(self)->'int': + """""" + pass + + + @property + def lfClipPrecision(self)->'int': + """""" + pass + + + @property + def lfQuality(self)->'int': + """""" + pass + + + @property + def lfPitchAndFamily(self)->'int': + """""" + pass + + + @property + def lfFaceName(self)->'str': + """Name of the typeface, at most 31 characters""" + pass + + +class PyLSA_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyLUID_AND_ATTRIBUTES(object): + """A sequence containing (LUID,Attributes) representing an LUID_AND_ATTRIBUTES structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyLsaLogon_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyMSG(object): + """A tuple representing a win32 MSG structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNETRESOURCE(object): + """A Python object that encapsulates a Win32 NETRESOURCE structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwScope(self)->'int': + """""" + pass + + + @property + def dwType(self)->'int': + """""" + pass + + + @property + def dwDisplayType(self)->'int': + """""" + pass + + + @property + def dwUsage(self)->'int': + """""" + pass + + + @property + def localName(self)->'str': + """""" + pass + + + @property + def remoteName(self)->'str': + """""" + pass + + + @property + def comment(self)->'str': + """""" + pass + + + @property + def provider(self)->'str': + """""" + pass + + +class PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNET_VALIDATE_PERSISTED_FIELDS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNMHDR(object): + """A Python object, representing an NMHDR + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hwndFrom(self)->'typing.Any': + """Window handle to the control sending a message. ??? 64-bit problem here ???""" + pass + + + @property + def idFrom(self)->'typing.Any': + """Identifier of the control sending a message.""" + pass + + + @property + def code(self)->'typing.Any': + """Notification code. This member can be a control-specific notification code or it can be one of the common notification codes.""" + pass + + +class PyNOTIFYICONDATA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyOVERLAPPED(object): + """A Python object, representing an overlapped structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Offset(self)->'int': + """Specifies a file position at which to start the transfer. The file position is a byte offset from the start of the file. The calling process sets this member before calling the ReadFile or WriteFile function. This member is ignored when reading from or writing to named pipes and communications devices.""" + pass + + + @property + def OffsetHigh(self)->'int': + """Specifies the high word of the byte offset at which to start the transfer.""" + pass + + + @property + def object(self)->'typing.Any': + """Any python object that you want to attach to your overlapped I/O request.""" + pass + + + @property + def dword(self)->'typing.Any': + """An integer buffer that may be used by overlapped functions (eg, win32file::WaitCommEvent)""" + pass + + + @property + def hEvent(self)->'int': + """Identifies an event set to the signaled state when the transfer has been completed. The calling process sets this member before calling the win32file::ReadFile, win32file::WriteFile, win32pipe::ConnectNamedPipe, or win32pipe::TransactNamedPipe function.""" + pass + + + @property + def Internal(self)->'int': + """Reserved for operating system use. (pointer-sized value)""" + pass + + + @property + def InternalHigh(self)->'int': + """Reserved for operating system use. (pointer-sized value)""" + pass + + +class PyOVERLAPPEDReadBuffer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPERF_COUNTER_DEFINITION(object): + """An object encapsulating a Windows NT Performance Monitor counter definition + +(PERF_COUNTER_DEFINITION).""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def DefaultScale(self)->'int': + """The default scale of the counter.""" + pass + + + @property + def DetailLevel(self)->'int': + """The detail level of the counter.""" + pass + + + @property + def CounterType(self)->'int': + """The counter type.""" + pass + + + @property + def CounterNameTitleIndex(self)->'int': + """""" + pass + + + @property + def CounterHelpTitleIndex(self)->'int': + """Sentinel""" + pass + + + def Increment(self,) -> 'None': + """ + Increments the value of the performance counter + +Args: + + + +Returns: + + None + + """ + pass + + + def Decrement(self,) -> 'None': + """ + Decrements the value of the performance counter + +Args: + + + +Returns: + + None + + """ + pass + + + def Set(self,) -> 'None': + """ + Sets the counter to a specific value + +Args: + + + +Returns: + + None + + """ + pass + + + def Get(self,) -> 'None': + """ + Gets the current value of the counter + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPERF_OBJECT_TYPE(object): + """A Python object, representing a PERF_OBJECT_TYPE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjectNameTitleIndex(self)->'int': + """""" + pass + + + @property + def ObjectHelpTitleIndex(self)->'int': + """""" + pass + + + @property + def DefaultCounterIndex(self)->'int': + """""" + pass + + + def Close(self,) -> 'None': + """ + Closes the object. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPOINT(object): + """Tuple of two ints (x,y) representing a POINT struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROFILEINFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def UserName(self)->'str': + """Name of user for which to load profile""" + pass + + + @property + def Flags(self)->'typing.Any': + """Combination of PI_* flags""" + pass + + + @property + def ProfilePath(self)->'str': + """Path to roaming profile, can be None. Use win32net::NetUserGetInfo to retrieve user's profile path""" + pass + + + @property + def DefaultPath(self)->'str': + """Path to Default user profile, can be None""" + pass + + + @property + def ServerName(self)->'str': + """Domain controller, can be None""" + pass + + + @property + def PolicyPath(self)->'str': + """Location of policy file, can be None""" + pass + + + @property + def Profile(self)->'PyHKEY': + """Handle to root of user's registry key. This member is output.""" + pass + + +class PyPerfMonManager(object): + """A Python object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Close(self,) -> 'None': + """ + Closes the performance monitor manager. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPrinterHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyRECT(object): + """Tuple of 4 ints defining a rectangle: (left, top, right, bottom)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyResourceId(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySCROLLINFO(object): + """A tuple representing a SCROLLINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySC_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySECURITY_ATTRIBUTES(object): + """A Python object, representing a SECURITY_ATTRIBUTES structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bInheritHandle(self)->'typing.Any': + """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle.""" + pass + + + @property + def SECURITY_DESCRIPTOR(self)->'PySECURITY_DESCRIPTOR': + """A PySECURITY_DESCRIPTOR, or None""" + pass + + +class PySECURITY_DESCRIPTOR(object): + """A Python object, representing a SECURITY_DESCRIPTOR structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Initialize the SD. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSecurityDescriptorOwner(self,) -> 'PySID': + """ + Return the owner of the security descriptor. + +Args: + + + +Returns: + + PySID + + """ + pass + + + def GetSecurityDescriptorDacl(self,) -> 'PyACL': + """ + Return the discretionary ACL of the security + +descriptor. + +Args: + + + +Returns: + + PyACL + + """ + pass + + + def GetSecurityDescriptorSacl(self,) -> 'PyACL': + """ + Return system access control list (SACL) of SD + +Args: + + + +Returns: + + PyACL + + """ + pass + + + def GetSecurityDescriptorControl(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns tuple of Control bit flags and + +revision of SD. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetSecurityDescriptorOwner(self,sid:'PySID',bOwnerDefaulted:'typing.Any') -> 'None': + """ + Set owner SID. + +Args: + + sid(PySID):The sid to be set as owner in the security descriptor. + bOwnerDefaulted(typing.Any):Normally set to false since this explicitely set the owner. + +Returns: + + None + + """ + pass + + + def SetSecurityDescriptorGroup(self,sid:'PySID',bOwnerDefaulted:'typing.Any') -> 'typing.Any': + """ + Set group SID. + +Args: + + sid(PySID):The group sid to be set in the security descriptor. + bOwnerDefaulted(typing.Any):Normally set to false since this explicitely set the owner. + +Returns: + + typing.Any + + """ + pass + + + def SetSecurityDescriptorSacl(self,bSaclPresent:'typing.Any',SACL:'PyACL',bSaclDefaulted:'typing.Any') -> 'None': + """ + Replaces system access control list (SACL) in the security + +descriptor. + +Args: + + bSaclPresent(typing.Any):A flag indicating if SACL is to be used. If false, last 2 parms are ignored. + SACL(PyACL):The SACL to set in the security descriptor + bSaclDefaulted(typing.Any):Flag, set to false if user has specifically set the SACL. + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the security descriptor is valid. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetLength(self,) -> 'None': + """ + return length of security descriptor (GetSecurityDescriptorLenght). + +Args: + + + +Returns: + + None + + """ + pass + + + def IsSelfRelative(self,) -> 'None': + """ + Returns 1 if security descriptor is self relative, 0 if absolute + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSecurityDescriptorControl(self,ControlBitsOfInterest:'typing.Any',ControlBitsToSet:'typing.Any') -> 'None': + """ + Sets the control bit flags related to inheritance for a + +security descriptor + +Args: + + ControlBitsOfInterest(typing.Any):Bitmask of flags to be modified + ControlBitsToSet(typing.Any):Bitmask containing flag values to setCommentsOnly exists on Windows 2000 or later + +Returns: + + None + + """ + pass + + +class PySERVER_INFO_100(object): + """A dictionary holding the information in a Win32 SERVER_INFO_100 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """""" + pass + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_101(object): + """A dictionary holding the information in a Win32 SERVER_INFO_101 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """""" + pass + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def version_major(self)->'typing.Any': + """""" + pass + + + @property + def version_minor(self)->'typing.Any': + """""" + pass + + + @property + def type(self)->'typing.Any': + """one of the SV_TYPE_* constants""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_102(object): + """A dictionary holding the information in a Win32 SERVER_INFO_102 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """""" + pass + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def version_major(self)->'typing.Any': + """""" + pass + + + @property + def version_minor(self)->'typing.Any': + """""" + pass + + + @property + def type(self)->'typing.Any': + """one of the SV_TYPE_* constants""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def users(self)->'typing.Any': + """""" + pass + + + @property + def disc(self)->'typing.Any': + """""" + pass + + + @property + def hidden(self)->'typing.Any': + """""" + pass + + + @property + def announce(self)->'typing.Any': + """""" + pass + + + @property + def anndelta(self)->'typing.Any': + """""" + pass + + + @property + def userpath(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_402(object): + """A dictionary holding the information in a Win32 SERVER_INFO_402 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ulist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def glist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def alist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def security(self)->'typing.Any': + """""" + pass + + + @property + def numadmin(self)->'typing.Any': + """""" + pass + + + @property + def lanmask(self)->'typing.Any': + """""" + pass + + + @property + def guestacct(self)->'typing.Union[str]': + """""" + pass + + + @property + def chdevs(self)->'typing.Any': + """""" + pass + + + @property + def chdevq(self)->'typing.Any': + """""" + pass + + + @property + def chdevjobs(self)->'typing.Any': + """""" + pass + + + @property + def connections(self)->'typing.Any': + """""" + pass + + + @property + def shares(self)->'typing.Any': + """""" + pass + + + @property + def openfiles(self)->'typing.Any': + """""" + pass + + + @property + def sessopens(self)->'typing.Any': + """""" + pass + + + @property + def sessvcs(self)->'typing.Any': + """""" + pass + + + @property + def sessreqs(self)->'typing.Any': + """""" + pass + + + @property + def opensearch(self)->'typing.Any': + """""" + pass + + + @property + def activelocks(self)->'typing.Any': + """""" + pass + + + @property + def numreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def sizreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def numbigbuf(self)->'typing.Any': + """""" + pass + + + @property + def numfiletasks(self)->'typing.Any': + """""" + pass + + + @property + def alertsched(self)->'typing.Any': + """""" + pass + + + @property + def erroralert(self)->'typing.Any': + """""" + pass + + + @property + def logonalert(self)->'typing.Any': + """""" + pass + + + @property + def accessalert(self)->'typing.Any': + """""" + pass + + + @property + def diskalert(self)->'typing.Any': + """""" + pass + + + @property + def netioalert(self)->'typing.Any': + """""" + pass + + + @property + def maxauditsz(self)->'typing.Any': + """""" + pass + + + @property + def srvheuristics(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_403(object): + """A dictionary holding the information in a Win32 SERVER_INFO_403 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ulist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def glist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def alist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def security(self)->'typing.Any': + """""" + pass + + + @property + def numadmin(self)->'typing.Any': + """""" + pass + + + @property + def lanmask(self)->'typing.Any': + """""" + pass + + + @property + def guestacct(self)->'typing.Union[str]': + """""" + pass + + + @property + def chdevs(self)->'typing.Any': + """""" + pass + + + @property + def chdevq(self)->'typing.Any': + """""" + pass + + + @property + def chdevjobs(self)->'typing.Any': + """""" + pass + + + @property + def connections(self)->'typing.Any': + """""" + pass + + + @property + def shares(self)->'typing.Any': + """""" + pass + + + @property + def openfiles(self)->'typing.Any': + """""" + pass + + + @property + def sessopens(self)->'typing.Any': + """""" + pass + + + @property + def sessvcs(self)->'typing.Any': + """""" + pass + + + @property + def sessreqs(self)->'typing.Any': + """""" + pass + + + @property + def opensearch(self)->'typing.Any': + """""" + pass + + + @property + def activelocks(self)->'typing.Any': + """""" + pass + + + @property + def numreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def sizreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def numbigbuf(self)->'typing.Any': + """""" + pass + + + @property + def numfiletasks(self)->'typing.Any': + """""" + pass + + + @property + def alertsched(self)->'typing.Any': + """""" + pass + + + @property + def erroralert(self)->'typing.Any': + """""" + pass + + + @property + def logonalert(self)->'typing.Any': + """""" + pass + + + @property + def accessalert(self)->'typing.Any': + """""" + pass + + + @property + def diskalert(self)->'typing.Any': + """""" + pass + + + @property + def netioalert(self)->'typing.Any': + """""" + pass + + + @property + def maxauditsz(self)->'typing.Any': + """""" + pass + + + @property + def srvheuristics(self)->'typing.Union[str]': + """""" + pass + + + @property + def auditedevents(self)->'typing.Any': + """""" + pass + + + @property + def autoprofile(self)->'typing.Any': + """""" + pass + + + @property + def autopath(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_502(object): + """A dictionary holding the information in a Win32 SERVER_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sessopens(self)->'typing.Any': + """""" + pass + + + @property + def sessvcs(self)->'typing.Any': + """""" + pass + + + @property + def opensearch(self)->'typing.Any': + """""" + pass + + + @property + def sizreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def initworkitems(self)->'typing.Any': + """""" + pass + + + @property + def maxworkitems(self)->'typing.Any': + """""" + pass + + + @property + def rawworkitems(self)->'typing.Any': + """""" + pass + + + @property + def irpstacksize(self)->'typing.Any': + """""" + pass + + + @property + def maxrawbuflen(self)->'typing.Any': + """""" + pass + + + @property + def sessusers(self)->'typing.Any': + """""" + pass + + + @property + def sessconns(self)->'typing.Any': + """""" + pass + + + @property + def maxpagedmemoryusage(self)->'typing.Any': + """""" + pass + + + @property + def maxnonpagedmemoryusage(self)->'typing.Any': + """""" + pass + + + @property + def enableforcedlogoff(self)->'typing.Any': + """""" + pass + + + @property + def timesource(self)->'typing.Any': + """""" + pass + + + @property + def acceptdownlevelapis(self)->'typing.Any': + """""" + pass + + + @property + def lmannounce(self)->'typing.Any': + """""" + pass + + +class PySERVER_INFO_503(object): + """A dictionary holding the information in a Win32 SERVER_INFO_503 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sessopens(self)->'typing.Any': + """""" + pass + + + @property + def sessvcs(self)->'typing.Any': + """""" + pass + + + @property + def opensearch(self)->'typing.Any': + """""" + pass + + + @property + def sizreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def initworkitems(self)->'typing.Any': + """""" + pass + + + @property + def maxworkitems(self)->'typing.Any': + """""" + pass + + + @property + def rawworkitems(self)->'typing.Any': + """""" + pass + + + @property + def irpstacksize(self)->'typing.Any': + """""" + pass + + + @property + def maxrawbuflen(self)->'typing.Any': + """""" + pass + + + @property + def sessusers(self)->'typing.Any': + """""" + pass + + + @property + def sessconns(self)->'typing.Any': + """""" + pass + + + @property + def maxpagedmemoryusage(self)->'typing.Any': + """""" + pass + + + @property + def maxnonpagedmemoryusage(self)->'typing.Any': + """""" + pass + + + @property + def enableforcedlogoff(self)->'typing.Any': + """""" + pass + + + @property + def timesource(self)->'typing.Any': + """""" + pass + + + @property + def acceptdownlevelapis(self)->'typing.Any': + """""" + pass + + + @property + def lmannounce(self)->'typing.Any': + """""" + pass + + + @property + def domain(self)->'typing.Union[str]': + """""" + pass + + + @property + def maxkeepsearch(self)->'typing.Any': + """""" + pass + + + @property + def scavtimeout(self)->'typing.Any': + """""" + pass + + + @property + def minrcvqueue(self)->'typing.Any': + """""" + pass + + + @property + def minfreeworkitems(self)->'typing.Any': + """""" + pass + + + @property + def xactmemsize(self)->'typing.Any': + """""" + pass + + + @property + def threadpriority(self)->'typing.Any': + """""" + pass + + + @property + def maxmpxct(self)->'typing.Any': + """""" + pass + + + @property + def oplockbreakwait(self)->'typing.Any': + """""" + pass + + + @property + def oplockbreakresponsewait(self)->'typing.Any': + """""" + pass + + + @property + def enableoplocks(self)->'typing.Any': + """""" + pass + + + @property + def enablefcbopens(self)->'typing.Any': + """""" + pass + + + @property + def enableraw(self)->'typing.Any': + """""" + pass + + + @property + def enablesharednetdrives(self)->'typing.Any': + """""" + pass + + + @property + def minfreeconnections(self)->'typing.Any': + """""" + pass + + + @property + def maxfreeconnections(self)->'typing.Any': + """""" + pass + + +class PySHARE_INFO_0(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + +class PySHARE_INFO_1(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def remark(self)->'typing.Union[str]': + """""" + pass + + +class PySHARE_INFO_2(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def remark(self)->'typing.Union[str]': + """""" + pass + + + @property + def permissions(self)->'typing.Any': + """""" + pass + + + @property + def max_uses(self)->'typing.Any': + """""" + pass + + + @property + def current_uses(self)->'typing.Any': + """""" + pass + + + @property + def path(self)->'typing.Union[str]': + """""" + pass + + + @property + def passwd(self)->'typing.Union[str]': + """""" + pass + + +class PySHARE_INFO_501(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_501 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def remark(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + +class PySHARE_INFO_502(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def remark(self)->'typing.Union[str]': + """""" + pass + + + @property + def permissions(self)->'typing.Any': + """""" + pass + + + @property + def max_uses(self)->'typing.Any': + """""" + pass + + + @property + def current_uses(self)->'typing.Any': + """""" + pass + + + @property + def path(self)->'typing.Union[str]': + """""" + pass + + + @property + def passwd(self)->'typing.Union[str]': + """""" + pass + + + @property + def reserved(self)->'typing.Any': + """""" + pass + + + @property + def security_descriptor(self)->'PySECURITY_DESCRIPTOR': + """""" + pass + + +class PySID(object): + """A Python object, representing a SID structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,idAuthority:'typing.Any',numSubauthorities:'typing.Any') -> 'None': + """ + Initialize the SID. + +Args: + + idAuthority(typing.Any):The identifier authority. + numSubauthorities(typing.Any):The number of sub authorities to allocate. + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the SID is valid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSubAuthority(self,index:'typing.Any',val:'typing.Any') -> 'None': + """ + Sets a SID SubAuthority + +Args: + + index(typing.Any):The index of the sub authority to set + val(typing.Any):The value for the sub authorityCommentsSee the function SetSidSubAuthority + +Returns: + + None + + """ + pass + + + def GetLength(self,) -> 'typing.Any': + """ + return length of SID (GetLengthSid). + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSubAuthorityCount(self,) -> 'typing.Any': + """ + return nbr of subauthorities from SID + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSubAuthority(self,) -> 'typing.Any': + """ + Returns specified subauthority from SID + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSidIdentifierAuthority(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Returns a tuple of 6 SID_IDENTIFIER_AUTHORITY + +constants + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + +class PySID_AND_ATTRIBUTES(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySIZE(object): + """Tuple of two ints (cx,cy) representing a SIZE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySMALL_RECT(object): + """Wrapper for a SMALL_RECT struct + +Create using PySMALL_RECTType(Left, Top, Right, Bottom). All params optional, defaulting to 0""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'typing.Any': + """Left side of rectangle""" + pass + + + @property + def Top(self)->'typing.Any': + """Top edge of rectangle""" + pass + + + @property + def Right(self)->'typing.Any': + """Right edge of rectangle""" + pass + + + @property + def Bottom(self)->'typing.Any': + """Bottome edge of rectangle""" + pass + + +class PySTARTUPINFO(object): + """A Python object, representing an STARTUPINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwX(self)->'int': + """Specifies the x offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" + pass + + + @property + def dwY(self)->'int': + """Specifies the y offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" + pass + + + @property + def dwXSize(self)->'int': + """Specifies the width, in pixels, of the window if a new window is created.""" + pass + + + @property + def dwYSize(self)->'int': + """Specifies the height, in pixels, of the window if a new window is created.""" + pass + + + @property + def dwXCountChars(self)->'int': + """For console processes, if a new console window is created, specifies the screen buffer width in character columns. This value is ignored in a GUI process.""" + pass + + + @property + def dwYCountChars(self)->'int': + """For console processes, if a new console window is created, specifies the screen buffer height in character rows.""" + pass + + + @property + def dwFillAttribute(self)->'int': + """Specifies the initial text and background colors if a new console window is created in a console application. These values are ignored in GUI applications""" + pass + + + @property + def dwFlags(self)->'int': + """This is a bit field that determines whether certain STARTUPINFO attributes are used when the process creates a window. To use many of the additional attributes, you typically must set the appropriate mask in this attribute, and also set the attributes themselves. Any combination of the win32con.STARTF_* flags can be specified.""" + pass + + + @property + def wShowWindow(self)->'int': + """Can be any of the SW_ constants defined in win32con. For GUI processes, this specifies the default value the first time ShowWindow is called.""" + pass + + + @property + def hStdInput(self)->'typing.Union[int]': + """""" + pass + + + @property + def hStdOutput(self)->'typing.Union[int]': + """""" + pass + + + @property + def hStdError(self)->'typing.Union[int]': + """""" + pass + + + @property + def lpDesktop(self)->'typing.Union[str, typing.Any]': + """""" + pass + + + @property + def lpTitle(self)->'typing.Union[str, typing.Any]': + """""" + pass + + +class PySecBuffer(object): + """Python object wrapping a SecBuffer structure + +Created using win32security.PySecBufferType(type,size) where type is a SECBUFFER_* constant""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def BufferType(self)->'typing.Any': + """""" + pass + + + @property + def Buffer(self)->'str': + """""" + pass + + + @property + def BufferSize(self)->'typing.Any': + """""" + pass + + + @property + def MaxBufferSize(self)->'typing.Any': + """""" + pass + + + def Clear(self,) -> 'None': + """ + Resets the buffer to all NULL's, and set the current size to maximum + +Args: + + + +Returns: + + None + + """ + pass + + +class PySecBufferDesc(object): + """Sequence-like object that contains a group of buffers to be used with SSPI functions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def append(self,buffer:'typing.Any') -> 'None': + """ + None + +Args: + + buffer(typing.Any):PySecBuffer object to be attached to the group of buffers + +Returns: + + None + + """ + pass + + +class PyTOKEN_GROUPS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTOKEN_PRIVILEGES(object): + """An object representing Win32 token privileges.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTRIVERTEX(object): + """Dict representing a TRIVERTEX struct containing color information at a point""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def x(self)->'typing.Any': + """X coord in logical units""" + pass + + + @property + def y(self)->'typing.Any': + """Y coord in logical units""" + pass + + + @property + def Red(self)->'typing.Any': + """Red component""" + pass + + + @property + def Green(self)->'typing.Any': + """Green component""" + pass + + + @property + def Blue(self)->'typing.Any': + """Blue component""" + pass + + + @property + def Alpha(self)->'typing.Any': + """Transparency value""" + pass + + +class PyTRUSTEE(object): + """A dictionary representing a TRUSTEE structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def TrusteeForm(self)->'typing.Any': + """""" + pass + + + @property + def TrusteeType(self)->'typing.Any': + """""" + pass + + + @property + def Identifier(self)->'typing.Any': + """Depends on the value of TrusteeForm (string or sid)""" + pass + + + @property + def MultipleTrustee(self)->'typing.Any': + """default is None""" + pass + + + @property + def MultipleTrusteeOperation(self)->'typing.Any': + """default is None""" + pass + + +class PyTS_HANDLE(object): + """Handle to a Terminal Server""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTime(object): + """A Python object, representing an instant in time.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def year(self)->'typing.Any': + """""" + pass + + + @property + def month(self)->'typing.Any': + """""" + pass + + + @property + def weekday(self)->'typing.Any': + """""" + pass + + + @property + def day(self)->'typing.Any': + """""" + pass + + + @property + def hour(self)->'typing.Any': + """""" + pass + + + @property + def minute(self)->'typing.Any': + """""" + pass + + + @property + def second(self)->'typing.Any': + """""" + pass + + + @property + def msec(self)->'typing.Any': + """""" + pass + + + def Format(self,_format:'str') -> 'str': + """ + Formats the time value. + +Args: + + _format(str):The format. See the comments section for a description of the supported flags.CommentsThe following format characters are supported.CharacterDescription%aAbbreviated weekday name%AFull weekday name%bAbbreviated month name%BFull month name%cDate and time representation appropriate for locale%dDay of month as decimal number (01 - 31)%HHour in 24-hour format (00 - 23)%IHour in 12-hour format (01 - 12)%jDay of year as decimal number (001 - 366)%mMonth as decimal number (01 - 12)%MMinute as decimal number (00 - 59)%pCurrent locale's A.M./P.M. indicator for 12-hour clock%SSecond as decimal number (00 - 59)%UWeek of year as decimal number, with Sunday as first day of week (00 - 51)%wWeekday as decimal number (0 - 6; Sunday is 0)%WWeek of year as decimal number, with Monday as first day of week (00 - 51)%xDate representation for current locale%XTime representation for current locale%yYear without century, as decimal number (00 - 99)%YYear with century, as decimal number%z, %ZTime-zone name or abbreviation; no characters if time zone is unknown%%Percent signAs in the printf function, the # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.Format CodeMeaning%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%# flag is ignored.%#cLong date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".%#xLong date representation, appropriate to current locale. For example: "Tuesday, March 14, 1995".%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#YRemove leading zeros (if any). + +Returns: + + str + + """ + pass + + +class PyUSER_INFO_0(object): + """A dictionary holding the information in a Win32 USER_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1(object): + """A dictionary holding the information in a Win32 USER_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_10(object): + """A dictionary holding the information in a Win32 USER_INFO_10 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1003(object): + """A dictionary holding the information in a Win32 USER_INFO_1003 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1005(object): + """A dictionary holding the information in a Win32 USER_INFO_1005 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def priv(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_1006(object): + """A dictionary holding the information in a Win32 USER_INFO_1006 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1007(object): + """A dictionary holding the information in a Win32 USER_INFO_1007 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1008(object): + """A dictionary holding the information in a Win32 USER_INFO_1008 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def flags(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_1009(object): + """A dictionary holding the information in a Win32 USER_INFO_1009 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1010(object): + """A dictionary holding the information in a Win32 USER_INFO_1010 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_1011(object): + """A dictionary holding the information in a Win32 USER_INFO_1011 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_11(object): + """A dictionary holding the information in a Win32 USER_INFO_11 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def parms(self)->'typing.Union[str]': + """""" + pass + + + @property + def last_logon(self)->'typing.Any': + """""" + pass + + + @property + def last_logoff(self)->'typing.Any': + """""" + pass + + + @property + def bad_pw_count(self)->'typing.Any': + """""" + pass + + + @property + def num_logons(self)->'typing.Any': + """""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """""" + pass + + + @property + def country_code(self)->'typing.Any': + """""" + pass + + + @property + def workstations(self)->'typing.Union[str]': + """""" + pass + + + @property + def max_storage(self)->'typing.Any': + """""" + pass + + + @property + def units_per_week(self)->'typing.Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def code_page(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_2(object): + """A dictionary holding the information in a Win32 USER_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def parms(self)->'typing.Union[str]': + """""" + pass + + + @property + def workstations(self)->'typing.Union[str]': + """""" + pass + + + @property + def last_logon(self)->'typing.Any': + """""" + pass + + + @property + def last_logoff(self)->'typing.Any': + """""" + pass + + + @property + def acct_expires(self)->'typing.Any': + """""" + pass + + + @property + def max_storage(self)->'typing.Any': + """""" + pass + + + @property + def units_per_week(self)->'typing.Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'typing.Any': + """""" + pass + + + @property + def num_logons(self)->'typing.Any': + """""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """""" + pass + + + @property + def country_code(self)->'typing.Any': + """""" + pass + + + @property + def code_page(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_20(object): + """A dictionary holding the information in a Win32 USER_INFO_20 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def user_id(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_3(object): + """A dictionary holding the information in a Win32 USER_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def parms(self)->'typing.Union[str]': + """""" + pass + + + @property + def workstations(self)->'typing.Union[str]': + """""" + pass + + + @property + def last_logon(self)->'typing.Any': + """""" + pass + + + @property + def last_logoff(self)->'typing.Any': + """""" + pass + + + @property + def acct_expires(self)->'typing.Any': + """""" + pass + + + @property + def max_storage(self)->'typing.Any': + """""" + pass + + + @property + def units_per_week(self)->'typing.Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'typing.Any': + """""" + pass + + + @property + def num_logons(self)->'typing.Any': + """""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """""" + pass + + + @property + def country_code(self)->'typing.Any': + """""" + pass + + + @property + def code_page(self)->'typing.Any': + """""" + pass + + + @property + def user_id(self)->'typing.Any': + """""" + pass + + + @property + def primary_group_id(self)->'typing.Any': + """""" + pass + + + @property + def profile(self)->'typing.Union[str]': + """""" + pass + + + @property + def home_dir_drive(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_expired(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_4(object): + """A dictionary holding the information in a Win32 USER_INFO_4 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def parms(self)->'typing.Union[str]': + """""" + pass + + + @property + def workstations(self)->'typing.Union[str]': + """""" + pass + + + @property + def last_logon(self)->'typing.Any': + """""" + pass + + + @property + def last_logoff(self)->'typing.Any': + """""" + pass + + + @property + def acct_expires(self)->'typing.Any': + """""" + pass + + + @property + def max_storage(self)->'typing.Any': + """""" + pass + + + @property + def units_per_week(self)->'typing.Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'typing.Any': + """""" + pass + + + @property + def num_logons(self)->'typing.Any': + """""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """""" + pass + + + @property + def country_code(self)->'typing.Any': + """""" + pass + + + @property + def code_page(self)->'typing.Any': + """""" + pass + + + @property + def user_sid(self)->'PySID': + """""" + pass + + + @property + def primary_group_id(self)->'typing.Any': + """""" + pass + + + @property + def profile(self)->'typing.Union[str]': + """""" + pass + + + @property + def home_dir_drive(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_expired(self)->'typing.Any': + """""" + pass + + +class PyUSER_MODALS_INFO_0(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def min_passwd_len(self)->'typing.Any': + """""" + pass + + + @property + def max_passwd_age(self)->'typing.Any': + """""" + pass + + + @property + def min_passwd_age(self)->'typing.Any': + """""" + pass + + + @property + def force_logoff(self)->'typing.Any': + """""" + pass + + + @property + def password_hist_len(self)->'typing.Any': + """""" + pass + + +class PyUSER_MODALS_INFO_1(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def role(self)->'typing.Any': + """""" + pass + + + @property + def primary(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_MODALS_INFO_2(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def domain_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def domain_id(self)->'PySID': + """""" + pass + + +class PyUSER_MODALS_INFO_3(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def lockout_duration(self)->'typing.Any': + """""" + pass + + + @property + def lockout_observation_window(self)->'typing.Any': + """""" + pass + + + @property + def usrmod3_lockout_threshold(self)->'typing.Any': + """""" + pass + + +class PyUSE_INFO_0(object): + """A dictionary holding the infomation in a Win32 USE_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'typing.Union[str]': + """""" + pass + + + @property + def remote(self)->'typing.Union[str]': + """""" + pass + + +class PyUSE_INFO_1(object): + """A dictionary holding the infomation in a Win32 USE_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'typing.Union[str]': + """""" + pass + + + @property + def remote(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str, typing.Any]': + """""" + pass + + + @property + def status(self)->'typing.Any': + """""" + pass + + + @property + def asg_type(self)->'typing.Any': + """""" + pass + + + @property + def refcount(self)->'typing.Any': + """""" + pass + + + @property + def usecount(self)->'typing.Any': + """""" + pass + + +class PyUSE_INFO_2(object): + """A dictionary holding the infomation in a Win32 USE_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'typing.Union[str]': + """""" + pass + + + @property + def remote(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str, typing.Any]': + """""" + pass + + + @property + def status(self)->'typing.Any': + """""" + pass + + + @property + def asg_type(self)->'typing.Any': + """""" + pass + + + @property + def refcount(self)->'typing.Any': + """""" + pass + + + @property + def usecount(self)->'typing.Any': + """""" + pass + + + @property + def username(self)->'typing.Union[str]': + """""" + pass + + + @property + def domainname(self)->'typing.Union[str]': + """""" + pass + + +class PyUSE_INFO_3(object): + """A dictionary holding the infomation in a Win32 USE_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'typing.Union[str]': + """""" + pass + + + @property + def remote(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str, typing.Any]': + """""" + pass + + + @property + def status(self)->'typing.Any': + """""" + pass + + + @property + def asg_type(self)->'typing.Any': + """""" + pass + + + @property + def refcount(self)->'typing.Any': + """""" + pass + + + @property + def usecount(self)->'typing.Any': + """""" + pass + + + @property + def username(self)->'typing.Union[str]': + """""" + pass + + + @property + def domainname(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + +class PyUnicode(object): + """A Python object, representing a Unicode string.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyUrlCacheHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWAVEFORMATEX(object): + """A Python object, representing a WAVEFORMATEX structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def wFormatTag(self)->'int': + """Waveform-audio format type. pywintypes only defines WAVE_FORMAT_PCM as a constant. Other values must be looked up in the mmsystem.h header file.""" + pass + + + @property + def nChannels(self)->'int': + """Number of channels. 1 for Mono, 2 for Stereo, anything, but never 5.1.""" + pass + + + @property + def nSamplesPerSec(self)->'int': + """Sample rate, in samples per second (hertz), that each channel should be played or recorded. If wFormatTag is WAVE_FORMAT_PCM, then common values for nSamplesPerSec are 8000, 11025, 22050, and 44100 Hz""" + pass + + + @property + def nAvgBytesPerSec(self)->'int': + """Required average data-transfer rate, in bytes per second, for the format tag. If wFormatTag is WAVE_FORMAT_PCM, nAvgBytesPerSec should be equal to the product of nSamplesPerSec and nBlockAlign.""" + pass + + + @property + def nBlockAlign(self)->'int': + """Block alignment, in bytes. The block alignment is the minimum atomic unit of data for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, nBlockAlign should be equal to the product of nChannels and wBitsPerSample divided by 8 (bits per byte). For non-PCM formats, this member must be computed according to the manufacturer’s specification of the format tag.""" + pass + + + @property + def wBitsPerSample(self)->'int': + """Bits per sample for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, then wBitsPerSample should be equal to 8 or 16. Sentinel""" + pass + + +class PyWINHTTP_AUTOPROXY_OPTIONS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWINHTTP_PROXY_INFO(object): + """A tuple representing a WINHTTP_PROXY_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWKSTA_INFO_100(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_100 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """Indicates platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'typing.Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'typing.Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'typing.Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'typing.Any': + """Minor version number of operating system running on the computer""" + pass + + +class PyWKSTA_INFO_101(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_101 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """Indicates platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'typing.Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'typing.Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'typing.Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'typing.Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def lanroot(self)->'typing.Union[str]': + """Path to the LANMAN directory""" + pass + + +class PyWKSTA_INFO_102(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_102 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """Indicate platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'typing.Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'typing.Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'typing.Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'typing.Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def lanroot(self)->'typing.Union[str]': + """Path to the LANMAN directory""" + pass + + + @property + def logged_on_users(self)->'typing.Any': + """Number of users who are logged on to the local computer""" + pass + + +class PyWKSTA_INFO_302(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_302 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'typing.Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'typing.Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki302_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'typing.Any': + """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" + pass + + + @property + def keep_conn(self)->'typing.Any': + """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" + pass + + + @property + def keep_search(self)->'typing.Any': + """Defines the number of seconds an inactive search will continue.""" + pass + + + @property + def max_cmds(self)->'typing.Any': + """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" + pass + + + @property + def num_work_buf(self)->'typing.Any': + """Specifies the number of internal buffers the computer has.""" + pass + + + @property + def siz_work_buf(self)->'typing.Any': + """Specifies the size, in bytes, of each internal buffer.""" + pass + + + @property + def max_wrk_cache(self)->'typing.Any': + """Specifies the maximum size, in bytes, of an internal cache buffer.""" + pass + + + @property + def siz_error(self)->'typing.Any': + """Specifies the size, in bytes, of an internal error buffer.""" + pass + + + @property + def num_alerts(self)->'typing.Any': + """Specifies the maximum number of clients that can receive alert messages. (This member is not supported under MS-DOS.) The Alerter service registers at least three clients when it begins to run.""" + pass + + + @property + def num_services(self)->'typing.Any': + """Specifies the number of services that can be installed on the computer at any time.""" + pass + + + @property + def errlog_sz(self)->'typing.Any': + """Specifies the maximum size, in kilobytes, of the client's error log file.""" + pass + + + @property + def print_buf_time(self)->'typing.Any': + """Specifies the number of seconds the server waits before closing inactive compatibility-mode print jobs.""" + pass + + + @property + def num_char_buf(self)->'typing.Any': + """Specifies the number of character pipe buffers and device buffers the client can have.""" + pass + + + @property + def siz_char_buf(self)->'typing.Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def wrk_heuristics(self)->'typing.Union[str]': + """Pointer to a Unicode string of flags used to control a client's operation.""" + pass + + + @property + def mailslots(self)->'typing.Any': + """Specifies the maximum number of mailslots allowed.""" + pass + + + @property + def num_dgram_buf(self)->'typing.Any': + """Specifies the number of buffers to allocate for receiving datagrams.""" + pass + + +class PyWKSTA_INFO_402(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_402 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'typing.Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'typing.Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki402_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'typing.Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def keep_conn(self)->'typing.Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def keep_search(self)->'typing.Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def max_cmds(self)->'typing.Any': + """..""" + pass + + + @property + def num_work_buf(self)->'typing.Any': + """Number of users who are logged on to the local computer""" + pass + + + @property + def siz_work_buf(self)->'typing.Any': + """Number of users who are logged on to the local computer""" + pass + + + @property + def max_wrk_cache(self)->'typing.Any': + """..""" + pass + + + @property + def sess_timeout(self)->'typing.Any': + """..""" + pass + + + @property + def siz_error(self)->'typing.Any': + """..""" + pass + + + @property + def num_alerts(self)->'typing.Any': + """..""" + pass + + + @property + def num_services(self)->'typing.Any': + """..""" + pass + + + @property + def errlog_sz(self)->'typing.Any': + """..""" + pass + + + @property + def print_buf_time(self)->'typing.Any': + """..""" + pass + + + @property + def num_char_buf(self)->'typing.Any': + """..""" + pass + + + @property + def siz_char_buf(self)->'typing.Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def mailslots(self)->'typing.Any': + """..""" + pass + + + @property + def num_dgram_buf(self)->'typing.Any': + """..""" + pass + + + @property + def max_threads(self)->'typing.Any': + """Number of threads the computer can dedicate to the network""" + pass + + +class PyWKSTA_INFO_502(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'typing.Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'typing.Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki502_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'typing.Any': + """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" + pass + + + @property + def keep_conn(self)->'typing.Any': + """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" + pass + + + @property + def max_cmds(self)->'typing.Any': + """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" + pass + + + @property + def max_wrk_cache(self)->'typing.Any': + """Indicates the number of seconds the server waits before disconnecting an inactive session.""" + pass + + + @property + def siz_char_buf(self)->'typing.Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def lock_quota(self)->'typing.Any': + """TODO""" + pass + + + @property + def lock_increment(self)->'typing.Any': + """TODO""" + pass + + + @property + def lock_maximum(self)->'typing.Any': + """TODO""" + pass + + + @property + def pipe_increment(self)->'typing.Any': + """TODO""" + pass + + + @property + def pipe_maximum(self)->'typing.Any': + """TODO""" + pass + + + @property + def cache_file_timeout(self)->'typing.Any': + """TODO""" + pass + + + @property + def dormant_file_limit(self)->'typing.Any': + """TODO""" + pass + + + @property + def read_ahead_throughput(self)->'typing.Any': + """TODO""" + pass + + + @property + def num_mailslot_buffers(self)->'typing.Any': + """TODO""" + pass + + + @property + def num_srv_announce_buffers(self)->'typing.Any': + """TODO""" + pass + + + @property + def max_illegal_datagram_events(self)->'typing.Any': + """TODO""" + pass + + + @property + def illegal_datagram_event_reset_frequency(self)->'typing.Any': + """TODO""" + pass + + + @property + def log_election_packets(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_opportunistic_locking(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_unlock_behind(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_close_behind(self)->'typing.Any': + """TODO""" + pass + + + @property + def buf_named_pipes(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_lock_read_unlock(self)->'typing.Any': + """TODO""" + pass + + + @property + def utilize_nt_caching(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_raw_read(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_raw_write(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_write_raw_data(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_encryption(self)->'typing.Any': + """TODO""" + pass + + + @property + def buf_files_deny_write(self)->'typing.Any': + """TODO""" + pass + + + @property + def buf_read_only_files(self)->'typing.Any': + """TODO""" + pass + + + @property + def force_core_create_mode(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_512_byte_max_transfer(self)->'typing.Any': + """TODO""" + pass + + +class PyWKSTA_TRANSPORT_INFO_0(object): + """A dictionary holding the infomation in a Win32 WKSTA_TRANSPORT_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def quality_of_service(self)->'typing.Any': + """Supplies a value that specifies the search order of the transport protocol with respect to other transport protocols. The highest value is searched first.""" + pass + + + @property + def number_of_vcs(self)->'typing.Any': + """Specifies the number of clients communicating with the server using this transport protocol.""" + pass + + + @property + def transport_name(self)->'typing.Union[str]': + """Specifies the device name of the transport protocol.""" + pass + + + @property + def transport_address(self)->'typing.Union[str]': + """Specifies the address of the server on this transport protocol.""" + pass + + + @property + def wan_ish(self)->'typing.Any': + """This member is ignored by the NetWkstaTransportAdd function. For the NetWkstaTransportEnum function, this member indicates that this transport protocol is a WAN transport protocol. This member is set TRUE for NetBIOS/TCIP; it is set FALSE for NetBEUI and NetBIOS/IPX.""" + pass + + +class PyWKSTA_USER_INFO_0(object): + """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def username(self)->'typing.Union[str]': + """Name of user currently logged on to the workstation""" + pass + + +class PyWKSTA_USER_INFO_1(object): + """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def username(self)->'typing.Union[str]': + """Name of user currently logged on to the workstation""" + pass + + + @property + def logon_domain(self)->'typing.Union[str]': + """Returns the domain name of the user account of the user currently logged on to the workstation.""" + pass + + + @property + def oth_domains(self)->'typing.Union[str]': + """Returns the list of other operating system domains browsed by the workstation. The domain names are separated by blanks.""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """Returns the name of the computer that authenticated the server.""" + pass + + +class PyWNDCLASS(object): + """A Python object, representing an WNDCLASS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def style(self)->'int': + """""" + pass + + + @property + def cbWndExtra(self)->'int': + """""" + pass + + + @property + def hInstance(self)->'int': + """""" + pass + + + @property + def hIcon(self)->'int': + """""" + pass + + + @property + def hCursor(self)->'int': + """""" + pass + + + @property + def hbrBackground(self)->'int': + """These 3 handled manually in PyWNDCLASS::getattro/setattro. The pymeth below is used as an end tag, so these props will be lost if below it""" + pass + + + @property + def lpszMenuName(self)->'typing.Union[str]': + """""" + pass + + + @property + def lpszClassName(self)->'typing.Union[str]': + """""" + pass + + + @property + def lpfnWndProc(self)->'typing.Any': + """MethodsSetDialogProcSets the WNDCLASS to be for a dialog box. """ + pass + + + def SetDialogProc(self,) -> 'None': + """ + Sets the WNDCLASS to be for a dialog box + +Args: + + + +Returns: + + None + + """ + pass + + +class PyXFORM(object): + """Dict representing an XFORM struct used as a world transformation matrix + +All members are optional, defaulting to 0.0.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def M11(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M12(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M21(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M22(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def Dx(self)->'float': + """Horizontal offset in logical units""" + pass + + + @property + def Dy(self)->'float': + """Vertical offset in logical units""" + pass + + +class Pymmapfile(object): + """Object that provides access to memory-mapped file operations.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def close(self,) -> 'None': + """ + Closes the file mapping handle and releases mapped view + +Args: + + + +Returns: + + None + + """ + pass + + + def find(self,needle:'typing.Any',start:'typing.Any') -> 'typing.Any': + """ + Finds a string in the buffer. + +Args: + + needle(typing.Any):String to be located + start(typing.Any):Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found + +Returns: + + typing.Any:Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found + + + """ + pass + + + def flush(self,offset:'typing.Any'=0,size:'typing.Any'=0) -> 'None': + """ + Flushes memory buffer to disk + +Args: + + offset(typing.Any):Position in buffer at which to flush + size(typing.Any):Number of bytes to flush, 0 to flush remainder of buffer past the offset + +Returns: + + None + + """ + pass + + + def move(self,dest:'typing.Any',src:'typing.Any',count:'typing.Any') -> 'None': + """ + Moves data from one place in buffer to another + +Args: + + dest(typing.Any):Destination position in buffer + src(typing.Any):Source position in buffer + count(typing.Any):Number of bytes to move + +Returns: + + None + + """ + pass + + + def read(self,num_bytes:'typing.Any') -> 'typing.Any': + """ + Returns specified number of bytes from buffer, and advances current position + +Args: + + num_bytes(typing.Any):Number of bytes to read + +Returns: + + typing.Any + + """ + pass + + + def read_byte(self,) -> 'typing.Any': + """ + Reads a single character from current pos + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def read_line(self,) -> 'typing.Any': + """ + Reads data from current pos up to next EOL. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def resize(self,MaximumSize:'typing.Any',FileOffset:'typing.Any'=0,NumberOfBytesToMap:'typing.Any'=0) -> 'None': + """ + Resizes the file mapping and view. + +Args: + + MaximumSize(typing.Any):New size for file mapping. Use a multiple of system page size (see win32api::GetSystemInfo) + FileOffset(typing.Any):Offset into file mapping. Must be multiple of allocation granularity. + NumberOfBytesToMap(typing.Any):New view size. Specify a multiple of system page size.CommentsIf MaximumSize is 0, only the mapped view will be affected.Accepts keyword args. + +Returns: + + None + + """ + pass + + + def seek(self,dist:'typing.Any',how:'typing.Any'=0) -> 'None': + """ + Changes current position + +Args: + + dist(typing.Any):Distance to seek + how(typing.Any):Pos from which to seekhowmeaning0Seek from start of buffer1Seek from current position2Seek backwards from end of buffer + +Returns: + + None + + """ + pass + + + def size(self,) -> 'typing.Any': + """ + Returns size of current view + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def tell(self,) -> 'typing.Any': + """ + Returns current position in buffer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def write(self,data:'typing.Any') -> 'None': + """ + Places data at current pos in buffer. + +Args: + + data(typing.Any):Data to be written + +Returns: + + None + + """ + pass + + + def write_byte(self,char:'typing.Any') -> 'None': + """ + Writes a single character of data + +Args: + + char(typing.Any):Single byte to be placed in buffer + +Returns: + + None + + """ + pass + + +class RASDIALEXTENSIONS(object): + """An object that describes a Win32 RASDIALEXTENSIONS structure + +TRUE*/)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwfOptions(self)->'int': + """(fOptions may also be used)""" + pass + + + @property + def hwndParent(self)->'int': + """""" + pass + + + @property + def reserved(self)->'int': + """""" + pass + + + @property + def reserved1(self)->'int': + """""" + pass + + + @property + def RasEapInfo(self)->'typing.Any': + """""" + pass + + +class RASDIALPARAMS(object): + """A tuple that describes a Win32 RASDIALPARAMS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SC_ACTION(object): + """Tuple of 2 ints (Type,Delay) used to represent an SC_ACTION structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Type(self)->'typing.Any': + """One of SC_ACTION_NONE, SC_ACTION_REBOOT, SC_ACTION_RESTART, SC_ACTION_RUN_COMMAND""" + pass + + + @property + def Delay(self)->'typing.Any': + """Time delay before specified action is taken (in milliseconds)""" + pass + + +class SERVICE_FAILURE_ACTIONS(object): + """A dictionary representing a SERVICE_FAILURE_ACTIONS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ResetPeriod(self)->'typing.Any': + """Indicates how many seconds to wait to reset the failure count, can be INFINITE""" + pass + + + @property + def RebootMsg(self)->'typing.Union[str, typing.Any]': + """Message displayed when reboot action is taken""" + pass + + + @property + def Command(self)->'typing.Union[str, typing.Any]': + """Command line to execute for SC_ACTION_RUN_COMMAND""" + pass + + + @property + def Actions(self)->'typing.Any': + """A tuple of SC_ACTION tuples""" + pass + + +class SERVICE_STATUS(object): + """A Win32 service status object is represented by a tuple:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TRACKMOUSEEVENT(object): + """A tuple of (dwFlags, hwndTrack, dwHoverTime)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class ULARGE_INTEGER(object): + """A Python object used wherever a COM ULARGE_INTEGER is used.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class WIN32_FIND_DATA(object): + """A tuple representing a WIN32_FIND_DATA structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class com_error(object): + """An exception raised when a COM exception occurs.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class connection(object): + """An object representing an ODBC connection""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def setautocommit(self,c:'typing.Any') -> 'None': + """ + Sets the autocommit mode. + +Args: + + c(typing.Any):The boolean autocommit mode. + +Returns: + + None + + """ + pass + + + def commit(self,) -> 'None': + """ + Commits a transaction. + +Args: + + + +Returns: + + None + + """ + pass + + + def rollback(self,) -> 'None': + """ + Rollsback a transaction. + +Args: + + + +Returns: + + None + + """ + pass + + + def cursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def close(self,) -> 'None': + """ + Closes the connection. + +Args: + + + +Returns: + + None + + """ + pass + + +class cursor(object): + """An object representing an ODBC cursor.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def close(self,) -> 'None': + """ + Closes the cursor + +Args: + + + +Returns: + + None + + """ + pass + + + def execute(self,sql:'str',arg:'typing.Any') -> 'typing.Any': + """ + Execute some SQL + +Args: + + sql(str):The SQL to execute + arg(typing.Any):Input variables. + +Returns: + + typing.Any + + """ + pass + + + def fetchone(self,) -> 'typing.Any': + """ + Fetch one row of data + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def fetchmany(self,) -> 'typing.List[typing.Any]': + """ + Fetch many rows of data + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def fetchall(self,) -> 'typing.List[typing.Any]': + """ + Fetch all rows of data + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def setinputsizes(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def setoutputsize(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class error(object): + """An exception raised when a win32 error occurs""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class COMPONENT(object): + """A dictionary containing data to fill a COMPPOS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ID(self)->'typing.Any': + """Id of component, ignored when adding a new component""" + pass + + + @property + def ComponentType(self)->'typing.Any': + """One of shellcon.COMP_TYPE_* values""" + pass + + + @property + def Checked(self)->'typing.Any': + """True indicates item is currently displayed""" + pass + + + @property + def fDirty(self)->'typing.Any': + """Indicates if unsaved changes exist""" + pass + + + @property + def NoScroll(self)->'typing.Any': + """True disables scrolling""" + pass + + + @property + def Pos(self)->'typing.Any': + """COMPPOS dictionary determining window size and placement""" + pass + + + @property + def FriendlyName(self)->'typing.Any': + """String of at most MAX_PATH-1 characters, truncated if longer""" + pass + + + @property + def Source(self)->'typing.Any': + """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" + pass + + + @property + def SubscribedURL(self)->'typing.Any': + """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" + pass + + + @property + def CurItemState(self)->'typing.Any': + """One of shellcon.IS_* flags""" + pass + + + @property + def Original(self)->'typing.Any': + """COMPSTATEINFO dictionary""" + pass + + + @property + def Restored(self)->'typing.Any': + """COMPSTATEINFO dictionary""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class COMPONENTSOPT(object): + """A dictionary containing data to fill a COMPONENTSOPT struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def EnableComponents(self)->'typing.Any': + """True if components are enabled""" + pass + + + @property + def ActiveDesktop(self)->'typing.Any': + """True if Active Desktop is enabled""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class COMPPOS(object): + """A dictionary containing data to fill a COMPPOS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'typing.Any': + """""" + pass + + + @property + def Top(self)->'typing.Any': + """""" + pass + + + @property + def Width(self)->'typing.Any': + """""" + pass + + + @property + def Height(self)->'typing.Any': + """""" + pass + + + @property + def Index(self)->'typing.Any': + """""" + pass + + + @property + def CanResize(self)->'typing.Any': + """""" + pass + + + @property + def CanResizeX(self)->'typing.Any': + """""" + pass + + + @property + def CanResizeY(self)->'typing.Any': + """""" + pass + + + @property + def PreferredLeftPercent(self)->'typing.Any': + """""" + pass + + + @property + def PreferredTopPercent(self)->'typing.Any': + """""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class COMPSTATEINFO(object): + """A dictionary containing data to fill a COMPSTATEINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'typing.Any': + """Specified as screen coordinates""" + pass + + + @property + def Top(self)->'typing.Any': + """Specified as screen coordinates""" + pass + + + @property + def Width(self)->'typing.Any': + """Measured in pixels""" + pass + + + @property + def Height(self)->'typing.Any': + """Measured in pixels""" + pass + + + @property + def dwItemState(self)->'typing.Any': + """One of IS_NORMAL, IS_FULLSCREEN IS_SPLIT""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class DEFCONTENTMENU(object): + """A tuple representing a DEFCONTEXTMENU structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class ELEMDESC(object): + """An ELEMDESC is respresented as a tuple of""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class EXP_DARWIN_LINK(object): + """Dictionary containing information for a EXP_DARWIN_LINK struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def DarwinID(self)->'typing.Any': + """The Windows Installer id for the link""" + pass + + + @property + def wDarwinID(self)->'typing.Any': + """The installer id as Unicode""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class EXP_SPECIAL_FOLDER(object): + """Dictionary containing information for a EXP_SPECIAL_FOLDER struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def idSpecialFolder(self)->'typing.Any': + """The special folder id of the target (shellcon.CSIDL_*)""" + pass + + + @property + def Offset(self)->'typing.Any': + """Offset into the link's PIDL""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class EXP_SZ_LINK(object): + """Dictionary containing information for an EXP_SZ_LINK or EXP_SZ_ICON struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def Target(self)->'typing.Any': + """The link's target or icon location""" + pass + + + @property + def wTarget(self)->'typing.Any': + """The target in Unicode form""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class FUNCDESC(object): + """A FUNCDESC object represents a COM TYPEATTR structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def memid(self)->'int': + """""" + pass + + + @property + def scodeArray(self)->'typing.Tuple[typing.Any, ...]': + """""" + pass + + + @property + def args(self)->'typing.Tuple[ELEMDESC, ...]': + """""" + pass + + + @property + def funckind(self)->'typing.Any': + """""" + pass + + + @property + def invkind(self)->'typing.Any': + """""" + pass + + + @property + def callconv(self)->'typing.Any': + """""" + pass + + + @property + def cParamsOpt(self)->'typing.Any': + """""" + pass + + + @property + def oVft(self)->'typing.Any': + """""" + pass + + + @property + def rettype(self)->'ELEMDESC': + """""" + pass + + + @property + def wFuncFlags(self)->'typing.Any': + """""" + pass + + +class IDLDESC(object): + """An IDLDESC is respresented as""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class MAPIINIT_0(object): + """A MAPIINIT_0 is represented as a tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class NT_CONSOLE_PROPS(object): + """Dictionary containing information for a NT_CONSOLE_PROPS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def FillAttribute(self)->'typing.Any': + """Character attributes for fill operations""" + pass + + + @property + def PopupFillAttribute(self)->'typing.Any': + """Fill attributes for popups""" + pass + + + @property + def ScreenBufferSize(self)->'typing.Tuple[typing.Any, typing.Any]': + """Size of console screen buffer, in character cells""" + pass + + + @property + def WindowSize(self)->'typing.Tuple[typing.Any, typing.Any]': + """Size of console window in character cells""" + pass + + + @property + def WindowOrigin(self)->'typing.Tuple[typing.Any, typing.Any]': + """Window position, in screen coordinates""" + pass + + + @property + def nFont(self)->'typing.Any': + """Number of font to be displayed. See win32console::GetNumberOfConsoleFonts""" + pass + + + @property + def InputBufferSize(self)->'typing.Any': + """Size of console's input buffer""" + pass + + + @property + def FontSize(self)->'typing.Tuple[typing.Any, typing.Any]': + """Size of font""" + pass + + + @property + def FontFamily(self)->'typing.Any': + """Font family""" + pass + + + @property + def FontWeight(self)->'typing.Any': + """Controls thickness of displayed font""" + pass + + + @property + def FaceName(self)->'typing.Any': + """Name of font face, 31 characters at most""" + pass + + + @property + def CursorSize(self)->'typing.Any': + """Relative size of cursor, expressed as percent of character size""" + pass + + + @property + def FullScreen(self)->'typing.Any': + """Causes console to run in full screen mode""" + pass + + + @property + def QuickEdit(self)->'typing.Any': + """""" + pass + + + @property + def InsertMode(self)->'typing.Any': + """""" + pass + + + @property + def AutoPosition(self)->'typing.Any': + """Lets system determine window placement""" + pass + + + @property + def HistoryBufferSize(self)->'typing.Any': + """Size of command line history buffer""" + pass + + + @property + def NumberOfHistoryBuffers(self)->'typing.Any': + """""" + pass + + + @property + def HistoryNoDup(self)->'typing.Any': + """""" + pass + + + @property + def ColorTable(self)->'typing.Any': + """Tuple of 16 ints containing console's color attributes""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class NT_FE_CONSOLE_PROPS(object): + """Dictionary containing information for a NT_FE_CONSOLE_PROPS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def CodePage(self)->'typing.Any': + """The codepage to be used for console text""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class PROPSPEC(object): + """Identifies a property. Can be either an int property id, or a str/unicode property name.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyADSVALUE(object): + """A tuple:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyADS_ATTR_INFO(object): + """Represents a ADS_ATTR_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def AttrName(self)->'typing.Any': + """The name""" + pass + + + @property + def ControlCode(self)->'int': + """""" + pass + + + @property + def ADsType(self)->'int': + """""" + pass + + + @property + def Values(self)->'typing.List[typing.Any]': + """""" + pass + + +class PyADS_OBJECT_INFO(object): + """Represents a ADS_OBJECT_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def RDN(self)->'typing.Any': + """The name""" + pass + + + @property + def ObjectDN(self)->'typing.Any': + """""" + pass + + + @property + def ParentDN(self)->'typing.Any': + """""" + pass + + + @property + def ClassName(self)->'typing.Any': + """""" + pass + + +class PyADS_SEARCHPREF_INFO(object): + """A tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyBIND_OPTS(object): + """Dictionary representation of a BIND_OPTS struct + +May eventually be extended to include BIND_OPTS2 members""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'typing.Any': + """Value from BIND_FLAGS enum: BIND_MAYBOTHERUSER, BIND_JUSTTESTEXISTENCE or 0""" + pass + + + @property + def Mode(self)->'typing.Any': + """Combination of storagecon.STGM_* values""" + pass + + + @property + def TickCountDeadline(self)->'typing.Any': + """Operation timeout in milliseconds""" + pass + + + @property + def cbStruct(self)->'typing.Any': + """Size of struct, ignored on input""" + pass + + +class PyCMINVOKECOMMANDINFO(object): + """A tuple of parameters to be converted to a CMINVOKECOMMANDINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDSBCAPS(object): + """A Python object, representing a DSBCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Flags that specify buffer-object capabilities.FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" + pass + + + @property + def nChannels(self)->'int': + """Size of the buffer, in bytes.""" + pass + + + @property + def dwUnlockTransferRate(self)->'int': + """Specifies the rate, in kilobytes per second, at which data is transferred to the buffer memory when IDirectSoundBuffer::Unlock is called. High-performance applications can use this value to determine the time required for IDirectSoundBuffer::Unlock to execute. For software buffers located in system memory, the rate will be very high because no processing is required. For hardware buffers, the rate might be slower because the buffer might have to be downloaded to the sound card, which might have a limited transfer rate.""" + pass + + + @property + def nAvgBytesPerSec(self)->'int': + """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle. Sentinel""" + pass + + +class PyDSBUFFERDESC(object): + """A Python object, representing a DSBUFFERDESC structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Specify one or more of the following:FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" + pass + + + @property + def dwBufferBytes(self)->'int': + """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" + pass + + + @property + def lpwfxFormat(self)->'typing.Any': + """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" + pass + + +class PyDSCAPS(object): + """A Python object, representing a DSCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be one or more of the following:FlagDescriptionDSCAPS_PRIMARYMONOThe device supports monophonic primary buffers.DSCAPS_PRIMARYSTEREOThe device supports stereo primary buffers.DSCAPS_PRIMARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_PRIMARY16BITThe device supports primary sound buffers with 16-bit samples.DSCAPS_CONTINUOUSRATEThe device supports all sample rates between the dwMinSecondarySampleRate and dwMaxSecondarySampleRate member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency.DSCAPS_EMULDRIVERThe device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected.DSCAPS_CERTIFIEDThis driver has been tested and certified by Microsoft.DSCAPS_SECONDARYMONOThe device supports hardware-mixed monophonic secondary buffers.DSCAPS_SECONDARYSTEREOThe device supports hardware-mixed stereo secondary buffers.DSCAPS_SECONDARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_SECONDARY16BITThe device supports hardware-mixed secondary sound buffers with 16-bit samples.""" + pass + + + @property + def dwMinSecondarySampleRate(self)->'int': + """Minimum sample rate supported by this device's hardware secondary sound buffers.""" + pass + + + @property + def dwMaxSecondarySampleRate(self)->'int': + """Maximum sample rate supported by this device's hardware secondary sound buffers.""" + pass + + + @property + def dwPrimaryBuffers(self)->'int': + """Number of primary buffers supported. This value will always be 1.""" + pass + + + @property + def dwMaxHwMixingAllBuffers(self)->'int': + """Specifies the total number of buffers that can be mixed in hardware. This member can be less than the sum of dwMaxHwMixingStaticBuffers and dwMaxHwMixingStreamingBuffers. Resource tradeoffs frequently occur.""" + pass + + + @property + def dwMaxHwMixingStaticBuffers(self)->'int': + """Specifies the maximum number of static sound buffers.""" + pass + + + @property + def dwMaxHwMixingStreamingBuffers(self)->'int': + """Specifies the maximum number of streaming sound buffers.""" + pass + + + @property + def dwFreeHwMixingAllBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwFreeHwMixingStaticBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwFreeHwMixingStreamingBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwMaxHw3DAllBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwMaxHw3DStaticBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwMaxHw3DStreamingBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DAllBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DStaticBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DStreamingBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwTotalHwMemBytes(self)->'int': + """Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.""" + pass + + + @property + def dwFreeHwMemBytes(self)->'int': + """Size, in bytes, of the free memory on the sound card.""" + pass + + + @property + def dwMaxContigFreeHwMemBytes(self)->'int': + """Size, in bytes, of the largest contiguous block of free memory on the sound card.""" + pass + + + @property + def dwUnlockTransferRateHwBuffers(self)->'int': + """Description of the rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the IDirectSoundBuffer::Update method.""" + pass + + + @property + def dwPlayCpuOverheadSwBuffers(self)->'int': + """Description of the processing overhead, as a percentage of the central processing unit, needed to mix software buffers (those located in main system memory). This varies according to the bus type, the processor type, and the clock speed. The unlock transfer rate for software buffers is 0 because the data need not be transferred anywhere. Similarly, the play processing overhead for hardware buffers is 0 because the mixing is done by the sound device.""" + pass + + +class PyDSCBCAPS(object): + """A Python object, representing a DSCBCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be 0 or DSCBCAPS_EMULDRIVER (indicates that no DirectSound Device is available and standard wave audio functions are being used).""" + pass + + + @property + def dwBufferBytes(self)->'int': + """The size, in bytes, of the capture buffer.""" + pass + + +class PyDSCBUFFERDESC(object): + """A Python object, representing a DSCBUFFERDESC structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Can be zero or the following flag:FlagDescriptionDSCBCAPS_WAVEMAPPEDThe Win32 wave mapper will be used for formats not supported by the device.""" + pass + + + @property + def dwBufferBytes(self)->'int': + """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" + pass + + + @property + def lpwfxFormat(self)->'typing.Any': + """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" + pass + + +class PyDSCCAPS(object): + """A Python object, representing a DSCCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be zero or the following flag:FlagDescriptionDSCCAPS_EMULDRIVERIndicates that no DirectSound Device is available and standard wave audio functions are being used.""" + pass + + + @property + def dwFormats(self)->'int': + """Bitset of supported WAVE_FORMAT formats.""" + pass + + + @property + def dwChannels(self)->'int': + """Number of channels supported by the device.""" + pass + + +class PyDSOP_FILTER_FLAGS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uplevel(self)->'PyDSOP_UPLEVEL_FILTER_FLAGS': + """""" + pass + + + @property + def downlevel(self)->'typing.Any': + """""" + pass + + +class PyDSOP_SCOPE_INIT_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def scope(self)->'typing.Any': + """""" + pass + + + @property + def hr(self)->'typing.Any': + """""" + pass + + + @property + def dcName(self)->'str': + """""" + pass + + + @property + def filterFlags(self)->'PyDSOP_FILTER_FLAGS': + """""" + pass + + +class PyDSOP_SCOPE_INIT_INFOs(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDSOP_UPLEVEL_FILTER_FLAGS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bothModes(self)->'typing.Any': + """""" + pass + + + @property + def mixedModeOnly(self)->'typing.Any': + """""" + pass + + + @property + def nativeModeOnly(self)->'typing.Any': + """""" + pass + + +class PyFORMATETC(object): + """Tuple representing a FORMATETC struct describing an OLE data format""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyGFileOperationProgressSink(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def StartOperations(self,) -> 'None': + """ + Called as operation begins, before any modifications are done + +Args: + + + +Returns: + + None + + """ + pass + + + def FinishOperations(self,Result:'typing.Any') -> 'None': + """ + Called after all actions have been performed + +Args: + + Result(typing.Any):HRESULT of last operation performed + +Returns: + + None + + """ + pass + + + def PreRenameItem(self,Flags:'typing.Any',Item:'PyIShellItem',NewName:'typing.Any') -> 'None': + """ + Called before each file rename + +Args: + + Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Shell interface of the copied item + NewName(typing.Any):New display name of the item + +Returns: + + None + + """ + pass + + + def PostRenameItem(self,Flags:'typing.Any',Item:'PyIShellItem',NewName:'typing.Any',hrRename:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': + """ + Called after each file rename + +Args: + + Flags(typing.Any):Flags specifying rename behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Shell interface of item before rename + NewName(typing.Any):The new name of the item, may be mangled to resolve filename conflicts + hrRename(typing.Any):HRESULT of the rename operation + NewlyCreated(PyIShellItem):Shell interface of the item after rename + +Returns: + + None + + """ + pass + + + def PreMoveItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': + """ + Called before each move operation + +Args: + + Flags(typing.Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):The item to be moved + DestinationFolder(PyIShellItem):The folder into which it will be moved + NewName(typing.Any):Name of moved item, may be None if not to be changed + +Returns: + + None + + """ + pass + + + def PostMoveItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any',hrMove:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': + """ + Called after each move operation + +Args: + + Flags(typing.Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Interface of the item before it was moved + DestinationFolder(PyIShellItem):The folder into which it was moved + NewName(typing.Any):Name of item in its new location, may be mangled in case of conflict + hrMove(typing.Any):HRESULT of the move operation + NewlyCreated(PyIShellItem):Shell interface of the item in its new location + +Returns: + + None + + """ + pass + + + def PreCopyItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': + """ + Called before each copy operation + +Args: + + Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):The item to be copied + DestinationFolder(PyIShellItem):Folder into which it will be copied + NewName(typing.Any):Name to be given to the copy, will be None if keeping original name + +Returns: + + None + + """ + pass + + + def PostCopyItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any',hrCopy:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': + """ + Called after each copy operation + +Args: + + Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):The original item + DestinationFolder(PyIShellItem):Folder into which it was copied + NewName(typing.Any):Name of item after copy, may be mangled in case of name conflict + hrCopy(typing.Any):HRESULT of the copy operation + NewlyCreated(PyIShellItem):Shell interface of the copy + +Returns: + + None + + """ + pass + + + def PreDeleteItem(self,Flags:'typing.Any',Item:'PyIShellItem') -> 'None': + """ + Called before each delete operation + +Args: + + Flags(typing.Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Item to be deleted + +Returns: + + None + + """ + pass + + + def PostDeleteItem(self,Flags:'typing.Any',Item:'PyIShellItem',hrDelete:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': + """ + Called after each delete operation + +Args: + + Flags(typing.Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Item that was deleted + hrDelete(typing.Any):HRESULT of the delete operation + NewlyCreated(PyIShellItem):Item in the recycle bin, or None if deleted without recycling + +Returns: + + None + + """ + pass + + + def PreNewItem(self,Flags:'typing.Any',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': + """ + Called before each new file is created + +Args: + + Flags(typing.Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags + DestinationFolder(PyIShellItem):Folder where item will be created + NewName(typing.Any):Name of item to be created + +Returns: + + None + + """ + pass + + + def PostNewItem(self,Flags:'typing.Any',DestinationFolder:'PyIShellItem',NewName:'typing.Any',TemplateName:'typing.Any',FileAttributes:'typing.Any',hrNew:'typing.Any',NewItem:'PyIShellItem') -> 'None': + """ + Called after each new file is created + +Args: + + Flags(typing.Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags + DestinationFolder(PyIShellItem):Folder in which item was created + NewName(typing.Any):Name of created item, may be mangled if file name conflicts occurred + TemplateName(typing.Any):Template file used to initialize new item + FileAttributes(typing.Any):File attributes of new item + hrNew(typing.Any):HRESULT of the create operation + NewItem(PyIShellItem):Shell interface of created item + +Returns: + + None + + """ + pass + + + def UpdateProgress(self,WorkTotal:'typing.Any',WorkSoFar:'typing.Any') -> 'None': + """ + Gives an estimate of total work completed + +Args: + + WorkTotal(typing.Any):Undimensioned number representing total amount of work + WorkSoFar(typing.Any):Undimensioned number representing amount already completed + +Returns: + + None + + """ + pass + + + def ResetTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + + def PauseTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + + def ResumeTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + +class PyGSecurityInformation(object): + """Gateway wrapper for the implement-only ISecurityInformation interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObjectInformation(self,) -> 'SI_OBJECT_INFO': + """ + Returns information identifying the object + +whose security is to be editted, and which pages are to appear in the property sheet + +Args: + + + +Returns: + + SI_OBJECT_INFO:PyGSecurityInformation.GetObjectInformation +SI_OBJECT_INFO = GetObjectInformation()Returns information identifying the object + +whose security is to be editted, and which pages are to appear in the property sheet +Comments + +Due to peculiarities of the underlying system calls, this method will only be called once, + +and subsequent calls will return the information obtained on the first call. As a consequence, a new + +instance of the interface will need to be created for each object whose security is to be displayed. +Return ValueYour implementation of this method should return a SI_OBJECT_INFO tuple + + + """ + pass + + + def GetSecurity(self,RequestedInformation:'typing.Any',Default:'typing.Any') -> 'PySECURITY_DESCRIPTOR': + """ + Retrieves the object's current security + +settings + +Args: + + RequestedInformation(typing.Any):Combination of SECURITY_INFORMATION flags indicating which components of the object's security descriptor you should return + Default(typing.Any):If true, return a default security descriptor rather than current security. (invoked when 'Reset' button is clicked) + +Returns: + + PySECURITY_DESCRIPTOR + + """ + pass + + + def SetSecurity(self,SecurityInformation:'typing.Any',SecurityDescriptor:'PySECURITY_DESCRIPTOR') -> 'None': + """ + Applies the modified security to the object + +Args: + + SecurityInformation(typing.Any):SECURITY_INFORMATION flags specifying which types of security information are to be applied + SecurityDescriptor(PySECURITY_DESCRIPTOR):The security information to be applied to the objectReturn ValueAny returned value is ignored + +Returns: + + None:The security information to be applied to the objectReturn ValueAny returned value is ignored + + + """ + pass + + + def GetAccessRights(self,ObjectType:'PyIID',Flags:'typing.Any') -> 'typing.Tuple[SI_ACCESS, typing.Any]': + """ + Retrieves permission that can be set + +Args: + + ObjectType(PyIID):GUID representing type of object, may be None + Flags(typing.Any):Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, and a zero-based index indicating which of them is the default + +Returns: + + typing.Tuple[SI_ACCESS, typing.Any]:Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, + +SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, + +and a zero-based index indicating which of them is the default + + + """ + pass + + + def MapGeneric(self,ObjectType:'PyIID',AceFlags:'typing.Any',Mask:'typing.Any') -> 'typing.Any': + """ + Translates generic access rights to specific equivalents + +Args: + + ObjectType(PyIID):Type of object that permissions apply to, None or GUID_NULL indicates object itself + AceFlags(typing.Any):Flags from the ACE that contains the permissions + Mask(typing.Any):Bitmask containing access rightsCommentsSee win32security::MapGenericMaskReturn ValueThis method should return the input bitmask will all generic rights mapped to specific rights + +Returns: + + typing.Any:Bitmask containing access rightsComments + +See win32security::MapGenericMask +Return ValueThis method should return the input bitmask will all generic rights mapped to specific rights + + + """ + pass + + + def GetInheritTypes(self,) -> 'typing.Tuple[SI_INHERIT_TYPE, ...]': + """ + Requests types of inheritance that your + +implementation supports + +Args: + + + +Returns: + + typing.Tuple[SI_INHERIT_TYPE, ...]:PyGSecurityInformation.GetInheritTypes + +(SI_INHERIT_TYPE,...) = GetInheritTypes()Requests types of inheritance that your + +implementation supports +Return ValueReturns a sequence of SI_INHERIT_TYPE tuples + + + """ + pass + + + def PropertySheetPageCallback(self,hwnd:'typing.Any',Msg:'typing.Any',Page:'typing.Any') -> 'None': + """ + Called by each page as it is created and destroyed + +Args: + + hwnd(typing.Any):Handle to the window for the page + Msg(typing.Any):Flag indicating type of event, one of PSPCB_CREATE,PSPCB_RELEASE,PSPCB_SI_INITDIALOG + Page(typing.Any):SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored + +Returns: + + None:SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored + + + """ + pass + + +class PyIADesktopP2(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def UpdateAllDesktopSubscriptions(self,) -> 'None': + """ + Updates webpage subscriptions on the desktop + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIADs(object): + """An object representing the IADs interface. + +In most cases you can achieve the same result via IDispatch - however, this + +interface allows you get get and set properties without the IDispatch + +overhead.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ADsPath(self)->'str': + """""" + pass + + + @property + def AdsPath(self)->'str': + """Synonym for ADsPath""" + pass + + + @property + def Class(self)->'str': + """""" + pass + + + @property + def GUID(self)->'str': + """Like the IADs method, this returns a string rather than a GUID object.""" + pass + + + @property + def Name(self)->'str': + """""" + pass + + + @property + def Parent(self)->'str': + """""" + pass + + + @property + def Schema(self)->'str': + """""" + pass + + + def GetInfo(self,) -> 'None': + """ + Description of GetInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetInfo(self,) -> 'None': + """ + Description of SetInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def Get(self,prop:'str') -> 'typing.Any': + """ + Description of Get. + +Args: + + prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. + +Returns: + + typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + +may be an array, or any types supported by COM variant. + + + """ + pass + + + def Put(self,_property:'str',val:'typing.Any') -> 'None': + """ + Description of Put. + +Args: + + _property(str):The property name to set + val(typing.Any):The value to set. + +Returns: + + None + + """ + pass + + + def get(self,prop:'str') -> 'typing.Any': + """ + Description of Get. + +Args: + + prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. + +Returns: + + typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + +may be an array, or any types supported by COM variant. + + + """ + pass + + + def put(self,_property:'str',val:'typing.Any') -> 'None': + """ + Description of Put. + +Args: + + _property(str):The property name to set + val(typing.Any):The value to set. + +Returns: + + None + + """ + pass + + +class PyIADsContainer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObject(self,_class:'str',relativeName:'str') -> 'PyIDispatch': + """ + None + +Args: + + _class(str):Specifies the name of the object class as known in the underlying directory and identical to the one retrieved through the get_Class property method. If the class name is None, the provider returns the first item found in the container. + relativeName(str):Specifies the name of the object as known in the underlying directory and identical to the one retrieved through the get_Name property method. + +Returns: + + PyIDispatch + + """ + pass + + + def get_Count(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def get_Filter(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Filter(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_Hints(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Hints(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + +class PyIADsUser(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def get_AccountDisabled(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_AccountDisabled(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_AccountExpirationDate(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_AccountExpirationDate(self,val:'PyTime') -> 'None': + """ + None + +Args: + + val(PyTime): + +Returns: + + None + + """ + pass + + + def get_BadLoginAddress(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def get_BadLoginCount(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def get_Department(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Department(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_Description(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Description(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_Division(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Division(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_EmailAddress(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_EmailAddress(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_EmployeeID(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_EmployeeID(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_FirstName(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_FirstName(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_FullName(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_FullName(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_HomeDirectory(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_HomeDirectory(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_HomePage(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_HomePage(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_LoginScript(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_LoginScript(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def SetPassword(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def ChangePassword(self,oldval:'typing.Any',newval:'typing.Any') -> 'None': + """ + None + +Args: + + oldval(typing.Any): + newval(typing.Any): + +Returns: + + None + + """ + pass + + +class PyIActiveDesktop(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ApplyChanges(self,Flags:'typing.Any') -> 'None': + """ + Applies changes to ActiveDesktop settings and persists them to the registry. + +Args: + + Flags(typing.Any):Combination of shellcon.AD_APPLY_* flags + +Returns: + + None + + """ + pass + + + def GetWallpaper(self,cchWallpaper:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns the current wallpaper + +Args: + + cchWallpaper(typing.Any):Number of characters to allocate for buffer + Reserved(typing.Any):Use 0 if passed in + +Returns: + + typing.Any + + """ + pass + + + def SetWallpaper(self,Wallpaper:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Sets the desktop wallpaper + +Args: + + Wallpaper(typing.Any):File to be used as new wallpaper + Reserved(typing.Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetWallpaperOptions(self,Reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns wallpaper style + +Args: + + Reserved(typing.Any):Use 0 if passed inReturn ValueReturns one of the WPSTYLE_* values + +Returns: + + typing.Any:Use 0 if passed in +Return ValueReturns one of the WPSTYLE_* values + + + """ + pass + + + def SetWallpaperOptions(self,Style:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Sets wallpaper style + +Args: + + Style(typing.Any):The wallpaper style, one of the WPSTYLE_* constants + Reserved(typing.Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetPattern(self,cchPattern:'typing.Any'=1024,Reserved:'typing.Any'=0) -> 'None': + """ + Returns the wallpaper pattern + +Args: + + cchPattern(typing.Any):Number of characters to allocate for buffer + Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a unicode string containing decimal values representing the pattern + +Returns: + + None:Use 0 if passed in +Return ValueReturns a unicode string containing decimal values representing the pattern + + + """ + pass + + + def SetPattern(self,Pattern:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Sets the wallpaper pattern + +Args: + + Pattern(typing.Any):String of decimal numbers representing a picture + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetDesktopItemOptions(self,) -> 'typing.Any': + """ + Returns options for Active Desktop. + +Args: + + + +Returns: + + typing.Any:PyIActiveDesktop.GetDesktopItemOptions + +dict = GetDesktopItemOptions()Returns options for Active Desktop. +Return ValueReturns a COMPONENTSOPT dictionary + + + """ + pass + + + def SetDesktopItemOptions(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Sets Active Desktop options + +Args: + + comp(typing.Any):COMPONENTSOPT dictionary + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddDesktopItem(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Creates a new item to display on the desktop + +Args: + + comp(typing.Any):COMPONENT dictionary + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddDesktopItemWithUI(self,hwnd:'int',comp:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Adds a desktop item, allowing user interaction + +Args: + + hwnd(int):Handle to parent window + comp(typing.Any):COMPONENT dictionary + Flags(typing.Any):One of shellcon.DTI_ADDUI_* flags + +Returns: + + None + + """ + pass + + + def ModifyDesktopItem(self,comp:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Changes parameters for a desktop item + +Args: + + comp(typing.Any):COMPONENT dictionary + Flags(typing.Any):Combination of shellcon.COMP_ELEM_* flags + +Returns: + + None + + """ + pass + + + def RemoveDesktopItem(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Removes an item from the Active Desktop + +Args: + + comp(typing.Any):COMPONENT dictionary specifying which component to remove + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetDesktopItemCount(self,) -> 'None': + """ + Returns number of defined desktop items. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDesktopItem(self,Component:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns desktop item parameters by index + +Args: + + Component(typing.Any):The zero-based index of the component to get + Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary describing the item + +Returns: + + typing.Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary describing the item + + + """ + pass + + + def GetDesktopItemByID(self,ID:'typing.Any',reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns desktop item parameters by Id + +Args: + + ID(typing.Any):The Id of the desktop item + reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary + +Returns: + + typing.Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary + + + """ + pass + + + def GenerateDesktopItemHtml(self,FileName:'typing.Any',comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Creates an HTML page for the desktop item + +Args: + + FileName(typing.Any):Name of file to be created + comp(typing.Any):COMPONENT dictionary specifying the desktop item + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddUrl(self,hwnd:'int',Source:'typing.Any',comp:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Adds a web page to desktop, allowing user interaction + +Args: + + hwnd(int):Parent windows for any user interactive + Source(typing.Any):Source URL + comp(typing.Any):COMPONENT dictionary + Flags(typing.Any):ADDURL_SILENT, or 0 + +Returns: + + None + + """ + pass + + + def GetDesktopItemBySource(self,Source:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns desktop item parameters by URL + +Args: + + Source(typing.Any):The URL address of the item to retrieve + Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary + +Returns: + + typing.Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary + + + """ + pass + + +class PyIActiveDesktopP(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSafeMode(self,Flags:'typing.Any') -> 'None': + """ + Changes Active Desktop to safe mode + +Args: + + Flags(typing.Any):One of shellcon.SSM_* flags + +Returns: + + None + + """ + pass + + +class PyIActiveScriptDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetScriptTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'typing.Any') -> 'typing.Tuple[typing.Any, ...]': + """ + Returns the text attributes for an arbitrary block + +of script text. + +Args: + + pstrCode(str):The script block text. + pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + dwFlags(typing.Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument.CommentsSmart hosts use this call to delegate GetText calls made on their axscript::PyIDebugDocumentText + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + + def GetScriptletTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'typing.Any') -> 'None': + """ + Description of GetScriptletTextAttributes. + +Args: + + pstrCode(str):The script block text. + pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + dwFlags(typing.Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + +Returns: + + None + + """ + pass + + + def EnumCodeContextsOfPosition(self,dwSourceContext:'typing.Any',uCharacterOffset:'typing.Any',uNumChars:'typing.Any') -> 'None': + """ + Description of EnumCodeContextsOfPosition. + +Args: + + dwSourceContext(typing.Any):Description for dwSourceContext + uCharacterOffset(typing.Any):Description for uCharacterOffset + uNumChars(typing.Any):Description for uNumChars + +Returns: + + None + + """ + pass + + +class PyIActiveScriptError(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetExceptionInfo(self,) -> 'None': + """ + Description of GetExceptionInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSourcePosition(self,) -> 'None': + """ + Description of GetSourcePosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSourceLineText(self,) -> 'None': + """ + Description of GetSourceLineText. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIActiveScriptErrorDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContext(self,) -> 'None': + """ + Description of GetDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStackFrame(self,) -> 'None': + """ + Description of GetStackFrame. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIActiveScriptParseProcedure(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseProcedureText(self,pstrCode:'typing.Any',pstrFormalParams:'typing.Any',pstrProcedureName:'typing.Any',pstrItemName:'typing.Any',punkContext:'PyIUnknown',pstrDelimiter:'typing.Any',dwSourceContextCookie:'typing.Any',ulStartingLineNumber:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of ParseProcedureText. + +Args: + + pstrCode(typing.Any):Description for pstrCode + pstrFormalParams(typing.Any):Description for pstrFormalParams + pstrProcedureName(typing.Any):Description for pstrProcedureName + pstrItemName(typing.Any):Description for pstrItemName + punkContext(PyIUnknown):Description for punkContext + pstrDelimiter(typing.Any):Description for pstrDelimiter + dwSourceContextCookie(typing.Any):Description for dwSourceContextCookie + ulStartingLineNumber(typing.Any):Description for ulStartingLineNumber + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + +class PyIActiveScriptSite(object): + """An object providing the IActiveScriptSite interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLCID(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemInfo(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDocVersionString(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnStateChange(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnEnterScript(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnLeaveScript(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnScriptError(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnScriptTerminate(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIActiveScriptSiteDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContextFromPosition(self,dwSourceContext:'typing.Any',uCharacterOffset:'typing.Any',uNumChars:'typing.Any') -> 'None': + """ + Description of GetDocumentContextFromPosition. + +Args: + + dwSourceContext(typing.Any):Description for dwSourceContext + uCharacterOffset(typing.Any):Description for uCharacterOffset + uNumChars(typing.Any):Description for uNumChars + +Returns: + + None + + """ + pass + + + def GetApplication(self,) -> 'None': + """ + Description of GetApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootApplicationNode(self,) -> 'None': + """ + Description of GetRootApplicationNode. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnScriptErrorDebug(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Allows a smart host to control the handling of runtime + +errors + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:PyIActiveScriptSiteDebug.OnScriptErrorDebug + +int, int = OnScriptErrorDebug()Allows a smart host to control the handling of runtime + +errors +Return ValueThe result is a tuple of (bCallDebugger, bCallOnScriptErrorWhenContinuing) + + + """ + pass + + +class PyIAddrBook(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ResolveName(self,uiParm:'typing.Any',flags:'typing.Any',entryTitle:'str',ADRLIST:'typing.Any') -> 'None': + """ + Performs name resolution, assigning entry identifiers to recipients in a recipient list. + +Args: + + uiParm(typing.Any):hwnd of a dialogs parent. + flags(typing.Any):Bitmask of flags that controls whether a dialog box can be displayed. + entryTitle(str): + ADRLIST(typing.Any):Partial addresses to resolve. + +Returns: + + None + + """ + pass + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens a folder or message and returns an interface object for further access. + +Args: + + entryId(str):The entryID of the object + iid(PyIID):The IID of the object to return, or None for the default IID + flags(typing.Any):Bitmask of flags that controls how the object is opened. + +Returns: + + typing.Any + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + typing.Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + +class PyIApplicationDebugger(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryAlive(self,) -> 'None': + """ + Returns true if alive, else false. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateInstanceAtDebugger(self,rclsid:'PyIID',pUnkOuter:'PyIUnknown',dwClsContext:'typing.Any',riid:'PyIID') -> 'None': + """ + Create objects in the application process address space. + +Args: + + rclsid(PyIID):Description for rclsid + pUnkOuter(PyIUnknown):Description for pUnkOuter + dwClsContext(typing.Any):Description for dwClsContext + riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. + +Returns: + + None + + """ + pass + + + def onDebugOutput(self,pstr:'typing.Any') -> 'None': + """ + None + +Args: + + pstr(typing.Any):Description for pstrCommentsThe debugger can use this to display the string in an output window. + +Returns: + + None + + """ + pass + + + def onHandleBreakPoint(self,prpt:'PyIRemoteDebugApplicationThread',br:'typing.Any',pError:'typing.Any') -> 'None': + """ + Called when a breakpoint is hit. + +Args: + + prpt(PyIRemoteDebugApplicationThread):Description for prpt + br(typing.Any):Description for br + pError(typing.Any):Description for pErrorCommentsThe application will remain suspended until the debugger IDE calls PyIDebugApplication::ResumeFromBreakPoint. + +Returns: + + None + + """ + pass + + + def onClose(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def onDebuggerEvent(self,guid:'PyIID',uUnknown:'PyIUnknown') -> 'None': + """ + Description of onDebuggerEvent. + +Args: + + guid(PyIID): + uUnknown(PyIUnknown):CommentsThe semantics of guid and unknown are entirely application/debugger defined This method may return E_NOTIMPL. + +Returns: + + None + + """ + pass + + +class PyIApplicationDestinations(object): + """Allows an application to removed items from its jump lists""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'typing.Any') -> 'None': + """ + Specifies the application whose jump list is to be accessed + +Args: + + AppID(typing.Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier + +Returns: + + None + + """ + pass + + + def RemoveDestination(self,punk:'PyIUnknown') -> 'None': + """ + Removes a single entry from the jump lists + +Args: + + punk(PyIUnknown):IShellItem or IShellLink representing an item in the application's jump listCommentsDoes not remove pinned items + +Returns: + + None + + """ + pass + + + def RemoveAllDestinations(self,) -> 'None': + """ + Removes all Recent and Frequent jump list entries + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIApplicationDocumentLists(object): + """Interface used to retrieve the jump lists for an application""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'typing.Any') -> 'None': + """ + Specifies the application whose jump list is to be accessed + +Args: + + AppID(typing.Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier + +Returns: + + None + + """ + pass + + + def GetList(self,ListType:'typing.Any',riid:'PyIID',ItemsDesired:'typing.Any'=0) -> 'PyIEnumObjects': + """ + Retrieves a list of items in a jump list + +Args: + + ListType(typing.Any):Type of document list to return, shellcon.ADLT_RECENT or ADLT_FREQUENT + riid(PyIID):The interface to return, IID_IEnumObjects or IID_IObjectArray + ItemsDesired(typing.Any):Number of items to return, use 0 for all available + +Returns: + + PyIEnumObjects + + """ + pass + + +class PyIAsyncOperation(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAsyncMode(self,fDoOpAsync:'typing.Any') -> 'None': + """ + Description of SetAsyncMode. + +Args: + + fDoOpAsync(typing.Any):Description for fDoOpAsync + +Returns: + + None + + """ + pass + + + def GetAsyncMode(self,) -> 'typing.Any': + """ + Description of GetAsyncMode. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def StartOperation(self,pbcReserved:'PyIBindCtx') -> 'None': + """ + Description of StartOperation. + +Args: + + pbcReserved(PyIBindCtx):Description for pbcReserved + +Returns: + + None + + """ + pass + + + def InOperation(self,) -> 'None': + """ + Description of InOperation. + +Args: + + + +Returns: + + None + + """ + pass + + + def EndOperation(self,hResult:'typing.Any',pbcReserved:'PyIBindCtx',dwEffects:'typing.Any') -> 'None': + """ + Description of EndOperation. + +Args: + + hResult(typing.Any):Description for hResult + pbcReserved(PyIBindCtx):Description for pbcReserved + dwEffects(typing.Any):Description for dwEffects + +Returns: + + None + + """ + pass + + +class PyIAttach(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + +class PyIBindCtx(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetRunningObjectTable(self,) -> 'PyIRunningObjectTable': + """ + Retrieves an object interfacing to the Running + +Object Table. + +Args: + + + +Returns: + + PyIRunningObjectTable + + """ + pass + + + def GetBindOptions(self,) -> 'PyBIND_OPTS': + """ + Retrieves the bind options for the bind context + +Args: + + + +Returns: + + PyBIND_OPTS + + """ + pass + + + def SetBindOptions(self,bindopts:'typing.Any') -> 'None': + """ + Sets the bind options for the context + +Args: + + bindopts(typing.Any):PyBIND_OPTS dictionary containing the binding options + +Returns: + + None + + """ + pass + + + def RegisterObjectParam(self,Key:'str',punk:'PyIUnknown') -> 'None': + """ + Adds an object to the context's keyed table of associated objects + +Args: + + Key(str):The string key for the object to be registered + punk(PyIUnknown):COM object to be registered with the bind context + +Returns: + + None + + """ + pass + + + def RevokeObjectParam(self,Key:'str') -> 'None': + """ + Removes one of the bind context's registered objects + +Args: + + Key(str):The string key for the object to be removed + +Returns: + + None + + """ + pass + + + def GetObjectParam(self,Key:'str') -> 'PyIUnknown': + """ + Returns one of the bind context's associated objects + +Args: + + Key(str):The string key for the object to be returned + +Returns: + + PyIUnknown + + """ + pass + + + def EnumObjectParam(self,) -> 'PyIEnumString': + """ + Creates an enumerator to list context's string keys + +Args: + + + +Returns: + + PyIEnumString + + """ + pass + + +class PyIBrowserFrameOptions(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFrameOptions(self,dwMask:'typing.Any') -> 'None': + """ + Description of GetFrameOptions. + +Args: + + dwMask(typing.Any):Description for dwMask + +Returns: + + None + + """ + pass + + +class PyICancelMethodCalls(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Cancel(self,Seconds:'typing.Any') -> 'None': + """ + Cancels a pending call + +Args: + + Seconds(typing.Any):Wait timeout in seconds + +Returns: + + None + + """ + pass + + + def TestCancel(self,) -> 'typing.Any': + """ + Checks if a request has been made to cancel a call + +Args: + + + +Returns: + + typing.Any:PyICancelMethodCalls.TestCancel + +int = TestCancel()Checks if a request has been made to cancel a call +Return ValueCan return RPC_S_CALLPENDING or RPC_E_CALL_CANCELED + + + """ + pass + + +class PyICatInformation(object): + """A Python interface to ICatInformation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumCategories(self,lcid:'typing.Any'=0) -> 'PyIEnumCATEGORYINFO': + """ + Returns an enumerator for the component categories + +registered on the system. + +Args: + + lcid(typing.Any):lcid + +Returns: + + PyIEnumCATEGORYINFO + + """ + pass + + + def GetCategoryDesc(self,lcid:'typing.Any'=0) -> 'str': + """ + Retrieves the localized description string for a specific category + +ID. + +Args: + + lcid(typing.Any):lcidCommentsThe return type is a unicode object. + +Returns: + + str + + """ + pass + + + def EnumClassesOfCategories(self,listIIdImplemented:'typing.List[PyIID]'=None,listIIdRequired:'typing.Any'=None) -> 'PyIEnumGUID': + """ + Returns an enumerator over the classes that + +implement one or more interfaces. + +Args: + + listIIdImplemented(typing.List[PyIID]):A sequence of PyIID objects, or None. + listIIdRequired(typing.Any):A sequence of PyIID objects, or None. + +Returns: + + PyIEnumGUID + + """ + pass + + +class PyICatRegister(object): + """An interface to a COM ICatRegister interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def RegisterCategories(self,arg:'typing.List[typing.Tuple[PyIID, typing.Any, str]]') -> 'None': + """ + Registers one or more component categories. Each component category + +consists of a CATID and a list of locale-dependent description strings. + +Args: + + arg(typing.List[typing.Tuple[PyIID, typing.Any, str]]):A sequence of category descriptions. + +Returns: + + None + + """ + pass + + + def UnRegisterCategories(self,arg:'typing.List[PyIID]') -> 'None': + """ + Unregister one or more previously registered categories. + +Args: + + arg(typing.List[PyIID]):The list of category IDs to be unregistered. + +Returns: + + None + + """ + pass + + + def RegisterClassImplCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': + """ + Registers the class as implementing one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(typing.List[PyIID]):A sequence of category IDs to be associated with the class. + +Returns: + + None + + """ + pass + + + def UnRegisterClassImplCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': + """ + Unregisters the class as implementing one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(typing.List[PyIID]):A sequence of category IDs to be unregistered from the class. + +Returns: + + None + + """ + pass + + + def RegisterClassReqCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': + """ + Registers the class as requiring one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(typing.List[PyIID]):A sequence of category IDs to be associated with the class. + +Returns: + + None + + """ + pass + + + def UnRegisterClassReqCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': + """ + Unregisters the class as requiring one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(typing.List[PyIID]):A sequence of category IDs to be unregistered for the class. + +Returns: + + None + + """ + pass + + +class PyICategoryProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanCategorizeOnSCID(self,pscid:'typing.Any') -> 'None': + """ + Description of CanCategorizeOnSCID. + +Args: + + pscid(typing.Any):Description for pscid + +Returns: + + None + + """ + pass + + + def GetDefaultCategory(self,) -> 'None': + """ + Description of GetDefaultCategory. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCategoryForSCID(self,pscid:'typing.Any') -> 'None': + """ + Description of GetCategoryForSCID. + +Args: + + pscid(typing.Any):Description for pscid + +Returns: + + None + + """ + pass + + + def EnumCategories(self,) -> 'None': + """ + Description of EnumCategories. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCategoryName(self,guid:'PyIID') -> 'None': + """ + Description of GetCategoryName. + +Args: + + guid(PyIID):Description for pguidCommentsThe buffer is always 1024 chars long + +Returns: + + None + + """ + pass + + + def CreateCategory(self,guid:'PyIID',riid:'PyIID') -> 'None': + """ + Description of CreateCategory. + +Args: + + guid(PyIID):Description for pguid + riid(PyIID):Description for riid + +Returns: + + None + + """ + pass + + +class PyIClassFactory(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateInstance(self,outerUnknown:'PyIUnknown',iid:'PyIID') -> 'PyIUnknown': + """ + Creates an uninitialized object. + +Args: + + outerUnknown(PyIUnknown):Usually None, otherwise the outer unknown if the object is being created as part of an aggregate. + iid(PyIID):The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the type specified by iid. + +Returns: + + PyIUnknown:The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the + +type specified by iid. + + + """ + pass + + + def LockServer(self,bInc:'typing.Any') -> 'None': + """ + Called by the client of a class object to keep a server open in memory, + +allowing instances to be created more quickly. + +Args: + + bInc(typing.Any):1 of the server should be locked, 0 if the server should be unlocked. + +Returns: + + None + + """ + pass + + +class PyIClientSecurity(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryBlanket(self,Proxy:'PyIUnknown') -> 'typing.Any': + """ + Retrieves the authentication settings for an interface + +Args: + + Proxy(PyIUnknown):An interface created through a proxy + +Returns: + + typing.Any + + """ + pass + + + def SetBlanket(self,Proxy:'PyIUnknown',AuthnSvc:'typing.Any',AuthzSvc:'typing.Any',ServerPrincipalName:'str',AuthnLevel:'typing.Any',ImpLevel:'typing.Any',AuthInfo:'typing.Any',Capabilities:'typing.Any') -> 'None': + """ + Changes the authentication options used with an interface + +Args: + + Proxy(PyIUnknown):The proxy interface for which to set security options + AuthnSvc(typing.Any):Authentication service identifier, pythoncom.RPC_C_AUTHN_* (but not RPC_C_AUTHN_LEVEL_*) + AuthzSvc(typing.Any):Authorization service identifier, pythoncom.RPC_C_AUTHZ_* + ServerPrincipalName(str):SPN that identifies the server, can be None + AuthnLevel(typing.Any):Authentication level, pythoncom.RPC_C_AUTHN_LEVEL_* + ImpLevel(typing.Any):Impersonation level, pythoncom.RPC_C_IMP_LEVEL_* + AuthInfo(typing.Any):Not supported yet, use only None + Capabilities(typing.Any):Combination of pythoncom.EOAC_* flags. Must be a subset of the capabilities of the specified authentication service. + +Returns: + + None + + """ + pass + + + def CopyProxy(self,Proxy:'PyIUnknown') -> 'PyIUnknown': + """ + Makes a private copy of a proxy interface + +Args: + + Proxy(PyIUnknown):The remote interface to be copied + +Returns: + + PyIUnknown + + """ + pass + + +class PyIColumnProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,psci:'typing.Any') -> 'None': + """ + Description of Initialize. + +Args: + + psci(typing.Any):Description for psci + +Returns: + + None + + """ + pass + + + def GetColumnInfo(self,dwIndex:'typing.Any') -> 'None': + """ + Description of GetColumnInfo. + +Args: + + dwIndex(typing.Any):Description for dwIndex + +Returns: + + None + + """ + pass + + + def GetItemData(self,pscid:'typing.Any',pscd:'typing.Any') -> 'None': + """ + Description of GetItemData. + +Args: + + pscid(typing.Any):Description for pscid + pscd(typing.Any):Description for pscd + +Returns: + + None + + """ + pass + + +class PyIConnectionPoint(object): + """A Python wrapper of a COM IConnectionPoint interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetConnectionInterface(self,) -> 'PyIID': + """ + Retrieves the IID of the interface represented by the + +connection point. + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetConnectionPointContainer(self,) -> 'PyIConnectionPointContainer': + """ + Gets the connection point + +container for the object. + +Args: + + + +Returns: + + PyIConnectionPointContainer + + """ + pass + + + def Advise(self,unk:'PyIUnknown') -> 'typing.Any': + """ + Establishes a connection between the connection point object and the client's + +sink. + +Args: + + unk(PyIUnknown):The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise + +Returns: + + typing.Any:The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise + + + """ + pass + + + def Unadvise(self,cookie:'typing.Any') -> 'None': + """ + Terminates an advisory connection previously established through + +IConnectionPoint::Advise. The dwCookie parameter identifies the connection to terminate. + +Args: + + cookie(typing.Any):The connection token + +Returns: + + None + + """ + pass + + + def EnumConnections(self,) -> 'PyIEnumConnections': + """ + Creates an enumerator to iterate through the + +connections for the connection point + +Args: + + + +Returns: + + PyIEnumConnections + + """ + pass + + +class PyIConnectionPointContainer(object): + """A Python wrapper of a COM IConnectionPointContainer interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumConnectionPoints(self,) -> 'PyIEnumConnectionPoints': + """ + Creates an enumerator object + +to iterate through all the connection points supported in the connectable object, one connection point per outgoing + +IID. + +Args: + + + +Returns: + + PyIEnumConnectionPoints + + """ + pass + + + def FindConnectionPoint(self,iid:'PyIID') -> 'PyIConnectionPoint': + """ + Finds a connection point for the + +given IID + +Args: + + iid(PyIID):The IID of the requested connection. + +Returns: + + PyIConnectionPoint + + """ + pass + + +class PyIContext(object): + """Allows access to properties defined for the current context (Requires win2k or later)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetProperty(self,rpolicyId:'PyIID',flags:'typing.Any',pUnk:'PyIUnknown') -> 'None': + """ + Sets a property on the context + +Args: + + rpolicyId(PyIID):GUID identifying the property to be set + flags(typing.Any):Reserved, use only 0 + pUnk(PyIUnknown):The property value + +Returns: + + None + + """ + pass + + + def RemoveProperty(self,rPolicyId:'PyIID') -> 'None': + """ + Removes a property from the context + +Args: + + rPolicyId(PyIID):GUID that identifies a context property + +Returns: + + None + + """ + pass + + + def GetProperty(self,rGuid:'PyIID') -> 'typing.Tuple[typing.Any, PyIUnknown]': + """ + Retrieves a context property + +Args: + + rGuid(PyIID):GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property + +Returns: + + typing.Tuple[typing.Any, PyIUnknown]:GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property + + + """ + pass + + + def EnumContextProps(self,) -> 'PyIEnumContextProps': + """ + Returns an enumerator for the context properties + +Args: + + + +Returns: + + PyIEnumContextProps + + """ + pass + + +class PyIContextMenu(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryContextMenu(self,hmenu:'int',indexMenu:'typing.Any',idCmdFirst:'typing.Any',idCmdLast:'typing.Any',uFlags:'typing.Any') -> 'typing.Any': + """ + Adds options to a context menu + +Args: + + hmenu(int):Handle to menu to which items should be added + indexMenu(typing.Any):Zero-based index at which to add first item + idCmdFirst(typing.Any):Minimum menu item Id + idCmdLast(typing.Any):Max menu item Id + uFlags(typing.Any):Combination of shellcon.CMF_* flags, can be 0 + +Returns: + + typing.Any + + """ + pass + + + def InvokeCommand(self,pici:'PyCMINVOKECOMMANDINFO') -> 'None': + """ + Executes a context menu option + +Args: + + pici(PyCMINVOKECOMMANDINFO):Tuple of parameters representing a CMINVOKECOMMANDINFO struct + +Returns: + + None + + """ + pass + + + def GetCommandString(self,idCmd:'typing.Any',uType:'typing.Any',cchMax:'typing.Any'=2048) -> 'typing.Any': + """ + Retrieves verb or help text for a context menu option + +Args: + + idCmd(typing.Any):Id of the command + uType(typing.Any):One of the shellcon.GCS_* constants + cchMax(typing.Any):Size of buffer to create for returned string + +Returns: + + typing.Any + + """ + pass + + +class PyICopyHookA(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CopyCallback(self,hwnd:'typing.Any',wFunc:'typing.Any',wFlags:'typing.Any',srcFile:'typing.Union[str, typing.Any]',srcAttribs:'typing.Any',destFile:'typing.Union[str, typing.Any]',destAttribs:'typing.Any') -> 'None': + """ + Description of CopyCallback. + +Args: + + hwnd(typing.Any):Description for hwnd + wFunc(typing.Any):Description for wFunc + wFlags(typing.Any):Description for wFlags + srcFile(typing.Union[str, typing.Any]):Description for srcFile + srcAttribs(typing.Any):Description for srcAttribs + destFile(typing.Union[str, typing.Any]):Description for destFile + destAttribs(typing.Any):Description for destAttribs + +Returns: + + None + + """ + pass + + +class PyICopyHookW(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CopyCallback(self,hwnd:'typing.Any',wFunc:'typing.Any',wFlags:'typing.Any',srcFile:'typing.Union[str, typing.Any]',srcAttribs:'typing.Any',destFile:'typing.Union[str, typing.Any]',destAttribs:'typing.Any') -> 'None': + """ + Description of CopyCallback. + +Args: + + hwnd(typing.Any):Description for hwnd + wFunc(typing.Any):Description for wFunc + wFlags(typing.Any):Description for wFlags + srcFile(typing.Union[str, typing.Any]):Description for srcFile + srcAttribs(typing.Any):Description for srcAttribs + destFile(typing.Union[str, typing.Any]):Description for destFile + destAttribs(typing.Any):Description for destAttribs + +Returns: + + None + + """ + pass + + +class PyICreateTypeInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetTypeFlags(self,uTypeFlags:'typing.Any') -> 'None': + """ + Description of SetTypeFlags. + +Args: + + uTypeFlags(typing.Any):Description for uTypeFlags + +Returns: + + None + + """ + pass + + + def SetDocString(self,pStrDoc:'typing.Any') -> 'None': + """ + Description of SetDocString. + +Args: + + pStrDoc(typing.Any):Description for pStrDoc + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(typing.Any):Description for wMajorVerNum + wMinorVerNum(typing.Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def AddRefTypeInfo(self,pTInfo:'PyITypeInfo') -> 'None': + """ + Description of AddRefTypeInfo. + +Args: + + pTInfo(PyITypeInfo):Description for pTInfo + +Returns: + + None + + """ + pass + + + def AddFuncDesc(self,index:'typing.Any') -> 'None': + """ + Description of AddFuncDesc. + +Args: + + index(typing.Any):Description for index + +Returns: + + None + + """ + pass + + + def AddImplType(self,index:'typing.Any',hRefType:'typing.Any') -> 'None': + """ + Description of AddImplType. + +Args: + + index(typing.Any):Description for index + hRefType(typing.Any):A hRefType + +Returns: + + None + + """ + pass + + + def SetImplTypeFlags(self,index:'typing.Any',implTypeFlags:'typing.Any') -> 'None': + """ + Description of SetImplTypeFlags. + +Args: + + index(typing.Any):Description for index + implTypeFlags(typing.Any):Description for implTypeFlags + +Returns: + + None + + """ + pass + + + def SetAlignment(self,cbAlignment:'typing.Any') -> 'None': + """ + Description of SetAlignment. + +Args: + + cbAlignment(typing.Any):Description for cbAlignment + +Returns: + + None + + """ + pass + + + def SetSchema(self,pStrSchema:'typing.Any') -> 'None': + """ + Description of SetSchema. + +Args: + + pStrSchema(typing.Any):Description for pStrSchema + +Returns: + + None + + """ + pass + + + def AddVarDesc(self,index:'typing.Any') -> 'None': + """ + Description of AddVarDesc. + +Args: + + index(typing.Any):Description for index + +Returns: + + None + + """ + pass + + + def SetFuncAndParamNames(self,index:'typing.Any',rgszNames:'typing.Tuple[typing.Any, ...]') -> 'None': + """ + Description of SetFuncAndParamNames. + +Args: + + index(typing.Any):Index of the item to set. + rgszNames(typing.Tuple[typing.Any, ...]):A sequence of unicode or String objects. + +Returns: + + None + + """ + pass + + + def SetVarName(self,index:'typing.Any',szName:'typing.Any') -> 'None': + """ + Description of SetVarName. + +Args: + + index(typing.Any):Description for index + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetTypeDescAlias(self,) -> 'None': + """ + Description of SetTypeDescAlias. + +Args: + + + +Returns: + + None + + """ + pass + + + def DefineFuncAsDllEntry(self,index:'typing.Any',szDllName:'typing.Any',szProcName:'typing.Any') -> 'None': + """ + Description of DefineFuncAsDllEntry. + +Args: + + index(typing.Any):Description for index + szDllName(typing.Any):Description for szDllName + szProcName(typing.Any):Description for szProcName + +Returns: + + None + + """ + pass + + + def SetFuncDocString(self,index:'typing.Any',szDocString:'typing.Any') -> 'None': + """ + Description of SetFuncDocString. + +Args: + + index(typing.Any):Description for index + szDocString(typing.Any):Description for szDocString + +Returns: + + None + + """ + pass + + + def SetVarDocString(self,index:'typing.Any',szDocString:'typing.Any') -> 'None': + """ + Description of SetVarDocString. + +Args: + + index(typing.Any):Description for index + szDocString(typing.Any):Description for szDocString + +Returns: + + None + + """ + pass + + + def SetFuncHelpContext(self,index:'typing.Any',dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetFuncHelpContext. + +Args: + + index(typing.Any):Description for index + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetVarHelpContext(self,index:'typing.Any',dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetVarHelpContext. + +Args: + + index(typing.Any):Description for index + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetMops(self,index:'typing.Any',bstrMops:'typing.Any') -> 'None': + """ + Description of SetMops. + +Args: + + index(typing.Any):Description for index + bstrMops(typing.Any):Description for bstrMops + +Returns: + + None + + """ + pass + + + def LayOut(self,) -> 'None': + """ + Description of LayOut. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICreateTypeLib(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTypeInfo(self,szName:'typing.Any') -> 'None': + """ + Description of CreateTypeInfo. + +Args: + + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetName(self,szName:'typing.Any') -> 'None': + """ + Description of SetName. + +Args: + + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(typing.Any):Description for wMajorVerNum + wMinorVerNum(typing.Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetDocString(self,szDoc:'typing.Any') -> 'None': + """ + Description of SetDocString. + +Args: + + szDoc(typing.Any):Description for szDoc + +Returns: + + None + + """ + pass + + + def SetHelpFileName(self,szHelpFileName:'typing.Any') -> 'None': + """ + Description of SetHelpFileName. + +Args: + + szHelpFileName(typing.Any):Description for szHelpFileName + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetLcid(self,) -> 'None': + """ + Description of SetLcid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetLibFlags(self,uLibFlags:'typing.Any') -> 'None': + """ + Description of SetLibFlags. + +Args: + + uLibFlags(typing.Any):Description for uLibFlags + +Returns: + + None + + """ + pass + + + def SaveAllChanges(self,) -> 'None': + """ + Description of SaveAllChanges. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICreateTypeLib2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTypeInfo(self,szName:'typing.Any') -> 'None': + """ + Description of CreateTypeInfo. + +Args: + + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetName(self,szName:'typing.Any') -> 'None': + """ + Description of SetName. + +Args: + + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(typing.Any):Description for wMajorVerNum + wMinorVerNum(typing.Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetDocString(self,szDoc:'typing.Any') -> 'None': + """ + Description of SetDocString. + +Args: + + szDoc(typing.Any):Description for szDoc + +Returns: + + None + + """ + pass + + + def SetHelpFileName(self,szHelpFileName:'typing.Any') -> 'None': + """ + Description of SetHelpFileName. + +Args: + + szHelpFileName(typing.Any):Description for szHelpFileName + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetLcid(self,) -> 'None': + """ + Description of SetLcid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetLibFlags(self,uLibFlags:'typing.Any') -> 'None': + """ + Description of SetLibFlags. + +Args: + + uLibFlags(typing.Any):Description for uLibFlags + +Returns: + + None + + """ + pass + + + def SaveAllChanges(self,) -> 'None': + """ + Description of SaveAllChanges. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICurrentItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyICustomDestinationList(object): + """Interface used to customize an application's jump list""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'typing.Any') -> 'None': + """ + Specifies the taskbar identifier for the jump list + +Args: + + AppID(typing.Any):The taskbar identifier of the applicationCommentsOnly needed if the calling app doesn't use the system-assigned default + +Returns: + + None + + """ + pass + + + def BeginList(self,riid:'PyIID') -> 'typing.Tuple[typing.Any, PyIObjectArray]': + """ + Clears the jump list and prepares it to be + +repopulated + +Args: + + riid(PyIID):The interface to returnReturn ValueReturns the number of slots and a collection of all destinations removed from the jump list + +Returns: + + typing.Tuple[typing.Any, PyIObjectArray]:The interface to return +Return ValueReturns the number of slots and a collection of all destinations removed from the jump list + + + """ + pass + + + def AppendCategory(self,Category:'typing.Any',Items:'PyIObjectArray') -> 'None': + """ + Adds a custom category to the jump list + +Args: + + Category(typing.Any):Display name of the category, can also be a dll and resource id for localization + Items(PyIObjectArray):Collection of IShellItem and/or IShellLink interfaces + +Returns: + + None + + """ + pass + + + def AppendKnownCategory(self,Category:'typing.Any') -> 'None': + """ + Adds one of the predefined categories to the custom list + +Args: + + Category(typing.Any):shellcon.KDC_RECENT or KDC_FREQUENT + +Returns: + + None + + """ + pass + + + def AddUserTasks(self,Items:'PyIObjectArray') -> 'None': + """ + Sets the entries shown in the Tasks category + +Args: + + Items(PyIObjectArray):Collection of PyIShellItem and/or PyIShellLink interfaces + +Returns: + + None + + """ + pass + + + def CommitList(self,) -> 'None': + """ + Finalizes changes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRemovedDestinations(self,riid:'PyIID') -> 'PyIObjectArray': + """ + Returns all the items removed from the + +jump list + +Args: + + riid(PyIID):The interface to return + +Returns: + + PyIObjectArray + + """ + pass + + + def DeleteList(self,AppID:'typing.Any'=None) -> 'None': + """ + Removes any customization, leaving only the system-maintained Recent + +and Frequent lists + +Args: + + AppID(typing.Any):The taskbar identifier of the application + +Returns: + + None + + """ + pass + + + def AbortList(self,) -> 'None': + """ + Discards all changes + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDL(object): + """A Python representation of an IDL. Implemented as a sequence of Python strings. + +FALSE*/, UINT *pcb /* = NULL */)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDataObject(object): + """Used to transfer data in various formats throughout the shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetData(self,pformatetcIn:'PyFORMATETC') -> 'PySTGMEDIUM': + """ + Retrieves data from the object in specified format + +Args: + + pformatetcIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + PySTGMEDIUM + + """ + pass + + + def GetDataHere(self,pformatetcIn:'PyFORMATETC') -> 'PySTGMEDIUM': + """ + Retunrs a copy of the object's data in specified format + +Args: + + pformatetcIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + PySTGMEDIUM + + """ + pass + + + def QueryGetData(self,pformatetc:'PyFORMATETC') -> 'None': + """ + Checks if the objects supports returning data in a particular format. + +Args: + + pformatetc(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. + +Returns: + + None:Tuple representing a FORMATETC struct describing how the data should be + +returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. + + + """ + pass + + + def GetCanonicalFormatEtc(self,pformatectIn:'PyFORMATETC') -> 'PyFORMATETC': + """ + Transforms a FORMATECT data description into a general + +format that the object supports + +Args: + + pformatectIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + PyFORMATETC + + """ + pass + + + def SetData(self,pformatetc:'PyFORMATETC',pmedium:'PySTGMEDIUM',fRelease:'typing.Any') -> 'None': + """ + Sets the data that the object will return. + +Args: + + pformatetc(PyFORMATETC):Tuple representing a FORMATETC struct describing the type of data to be set + pmedium(PySTGMEDIUM):The data to be placed in the object + fRelease(typing.Any):If True, transfers ownership of the data to the object. If False, caller is responsible for releasing the STGMEDIUM. + +Returns: + + None + + """ + pass + + + def EnumFormatEtc(self,dwDirection:'typing.Any') -> 'PyIEnumFORMATETC': + """ + Returns an enumerator to list the data formats that the + +object supports. + +Args: + + dwDirection(typing.Any):Indicates whether to return formats that can be queried or set (pythoncom.DATADIR_GET or DATADIR_SET) + +Returns: + + PyIEnumFORMATETC + + """ + pass + + + def DAdvise(self,pformatetc:'PyFORMATETC',advf:'typing.Any',pAdvSink:'typing.Any') -> 'typing.Any': + """ + Connects the object to an interface that will receive notifications when its data + +changes + +Args: + + pformatetc(PyFORMATETC):Defines the type of data for which the sink will receive notifications. + advf(typing.Any):Combination of values from ADVF enum. (which currently do not appear in any of the constants modules!) + pAdvSink(typing.Any):Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection + +Returns: + + typing.Any:Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection + + + """ + pass + + + def DUnadvise(self,dwConnection:'typing.Any') -> 'None': + """ + Disconnects a notification sink. + +Args: + + dwConnection(typing.Any):Identifier of the connection as returned by DAdvise. + +Returns: + + None + + """ + pass + + + def EnumDAdvise(self,) -> 'typing.Any': + """ + Creates an enumerator to list connected notification sinks. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIDebugApplication(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetName(self,pstrName:'typing.Any') -> 'None': + """ + Sets the name of the application. + +Args: + + pstrName(typing.Any):The name of the application.CommentsThe provided name will be returned in subsequent calls to >om PyIRemoteDebugApplication.GetName>. + +Returns: + + None + + """ + pass + + + def StepOutComplete(self,) -> 'None': + """ + Called by language engines, in single step mode, just before they + +return to their caller. + +Args: + + + +Returns: + + None + + """ + pass + + + def DebugOutput(self,pstr:'typing.Any') -> 'None': + """ + Causes the given string to be displayed by the debugger IDE, normally in + +an output window. + +Args: + + pstr(typing.Any):Description for pstrCommentsThis mechanism provides the means for a language engine to implement language specific debugging output support. Example: Debug.writeln("Help") in JavaScript. + +Returns: + + None + + """ + pass + + + def StartDebugSession(self,) -> 'None': + """ + Causes a default debugger IDE to be started and a debug session to + +be attached to this application if one does not already exist. + +Args: + + + +Returns: + + None + + """ + pass + + + def HandleBreakPoint(self,br:'typing.Any') -> 'typing.Any': + """ + Called by the language engine in the context of a thread that has + +hit a breakpoint. + +Args: + + br(typing.Any):Break reason - one of the BREAKREASON_* constants.CommentsThis method causes the current thread to block and a notification of the breakpoint to be sent to the debugger IDE. When the debugger IDE resumes the application this method returns with the action to be taken.Note: While in the breakpoint the language engine may be called in this thread to do various things such as enumerating stack frames or evaluating expressions.Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. + +Returns: + + typing.Any:Break reason - one of the BREAKREASON_* constants.Comments + +This method causes the current thread to block and a notification of the breakpoint + +to be sent to the debugger IDE. When the debugger IDE resumes the application this + +method returns with the action to be taken. + +Note: While in the breakpoint the language engine may be called in this thread to do + +various things such as enumerating stack frames or evaluating expressions. +Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. + + + """ + pass + + + def Close(self,) -> 'None': + """ + Causes this application to release all references and enter a zombie state. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBreakFlags(self,) -> 'typing.Any': + """ + Returns the current break flags for the application. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCurrentThread(self,) -> 'PyIDebugApplicationThread': + """ + Returns the application thread object + +associated with the currently running thread. + +Args: + + + +Returns: + + PyIDebugApplicationThread + + """ + pass + + + def CreateAsyncDebugOperation(self,psdo:'PyIDebugSyncOperation') -> 'None': + """ + None + +Args: + + psdo(PyIDebugSyncOperation):Description for psdoCommentsThis provides a mechanism for language engines to implement asynchronous expression and evaluation, etc. without having to know the details of synchronization with the debugger thread. See the descriptions for PyIDebugSyncOperation and PyIDebugAsyncOperation for more details. + +Returns: + + None + + """ + pass + + + def AddStackFrameSniffer(self,pdsfs:'PyIDebugStackFrameSniffer') -> 'typing.Any': + """ + Adds a stack frame sniffer to this application. + +Args: + + pdsfs(PyIDebugStackFrameSniffer):Description for pdsfsCommentsGenerally called by a language engine to expose its stack frames to the debugger. It is possible for other entities to expose stack frames.Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer + +Returns: + + typing.Any:Description for pdsfsComments + +Generally called by a language engine + +to expose its stack frames to the debugger. It is possible for other entities to + +expose stack frames. +Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer + + + """ + pass + + + def RemoveStackFrameSniffer(self,dwCookie:'typing.Any') -> 'None': + """ + Removes a stack frame sniffer from this application. + +Args: + + dwCookie(typing.Any):A cookie obtained from PyIDebugApplication::AddStackFrameSniffer + +Returns: + + None + + """ + pass + + + def QueryCurrentThreadIsDebuggerThread(self,) -> 'None': + """ + Determines if the current running thread is the + +debugger thread. + +Args: + + + +Returns: + + None:PyIDebugApplication.QueryCurrentThreadIsDebuggerThread +QueryCurrentThreadIsDebuggerThread()Determines if the current running thread is the + +debugger thread. +Return ValueReturns S_OK if the current running thread is the debugger thread. + +Otherwise, returns S_FALSE. + + + """ + pass + + + def SynchronousCallInDebuggerThread(self,pptc:'typing.Any',dwParam1:'typing.Any',dwParam2:'typing.Any',dwParam3:'typing.Any') -> 'None': + """ + Provides a mechanism for the caller to run code in the + +debugger thread. + +Args: + + pptc(typing.Any):Description for pptc + dwParam1(typing.Any):Description for dwParam1 + dwParam2(typing.Any):Description for dwParam2 + dwParam3(typing.Any):Description for dwParam3CommentsThis is generally used so that language engines and hosts can implement free threaded objects on top of their single threaded implementations. + +Returns: + + None + + """ + pass + + + def CreateApplicationNode(self,) -> 'PyIDebugApplicationNode': + """ + Creates a new application node which + +is associated with a specific document provider. + +Args: + + + +Returns: + + PyIDebugApplicationNode + + """ + pass + + + def FireDebuggerEvent(self,guid:'typing.Any',unknown:'PyIUnknown') -> 'None': + """ + Fire a generic event to the IApplicationDebugger (if any) + +Args: + + guid(typing.Any):A GUID. + unknown(PyIUnknown):An unknown object. + +Returns: + + None + + """ + pass + + + def HandleRuntimeError(self,pErrorDebug:'PyIActiveScriptErrorDebug',pScriptSite:'PyIActiveScriptSite') -> 'None': + """ + Description of HandleRuntimeError. + +Args: + + pErrorDebug(PyIActiveScriptErrorDebug):Description for pErrorDebug + pScriptSite(PyIActiveScriptSite):Description for pScriptSite + +Returns: + + None + + """ + pass + + + def FCanJitDebug(self,) -> 'None': + """ + Description of FCanJitDebug. + +Args: + + + +Returns: + + None + + """ + pass + + + def FIsAutoJitDebugEnabled(self,) -> 'None': + """ + Description of FIsAutoJitDebugEnabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddGlobalExpressionContextProvider(self,pdsfs:'PyIProvideExpressionContexts') -> 'None': + """ + Description of AddGlobalExpressionContextProvider. + +Args: + + pdsfs(PyIProvideExpressionContexts):Description for pdsfs + +Returns: + + None + + """ + pass + + + def RemoveGlobalExpressionContextProvider(self,dwCookie:'typing.Any') -> 'None': + """ + Description of + +RemoveGlobalExpressionContextProvider. + +Args: + + dwCookie(typing.Any):Description for dwCookie + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationNode(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumChildren(self,) -> 'None': + """ + Description of EnumChildren. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetParent(self,) -> 'PyIDebugApplicationNode': + """ + Returns the parent node. + +Args: + + + +Returns: + + PyIDebugApplicationNode + + """ + pass + + + def SetDocumentProvider(self,pddp:'PyIDebugDocumentProvider') -> 'None': + """ + Description of SetDocumentProvider. + +Args: + + pddp(PyIDebugDocumentProvider):Description for pddp + +Returns: + + None + + """ + pass + + + def Close(self,) -> 'None': + """ + Description of Close. + +Args: + + + +Returns: + + None + + """ + pass + + + def Attach(self,pdanParent:'PyIDebugApplicationNode') -> 'None': + """ + Attach a node to its parent. + +Args: + + pdanParent(PyIDebugApplicationNode):The parent node. None is not acceptable. + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'None': + """ + Detach a node from its parent. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationNodeEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onAddChild(self,prddpChild:'PyIDebugApplicationNode') -> 'None': + """ + Description of onAddChild. + +Args: + + prddpChild(PyIDebugApplicationNode):Description for prddpChild + +Returns: + + None + + """ + pass + + + def onRemoveChild(self,prddpChild:'PyIDebugApplicationNode') -> 'None': + """ + Description of onRemoveChild. + +Args: + + prddpChild(PyIDebugApplicationNode):Description for prddpChild + +Returns: + + None + + """ + pass + + + def onDetach(self,) -> 'None': + """ + Description of onDetach. + +Args: + + + +Returns: + + None + + """ + pass + + + def onAttach(self,prddpParent:'PyIDebugApplicationNode') -> 'None': + """ + Description of onAttach. + +Args: + + prddpParent(PyIDebugApplicationNode):Description for prddpParent + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationThread(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SynchronousCallIntoThread(self,pstcb:'typing.Any',dwParam1:'typing.Any',dwParam2:'typing.Any',dwParam3:'typing.Any') -> 'None': + """ + Description of SynchronousCallIntoThread. + +Args: + + pstcb(typing.Any):Description for pstcb + dwParam1(typing.Any):Description for dwParam1 + dwParam2(typing.Any):Description for dwParam2 + dwParam3(typing.Any):Description for dwParam3 + +Returns: + + None + + """ + pass + + + def QueryIsCurrentThread(self,) -> 'None': + """ + Description of QueryIsCurrentThread. + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryIsDebuggerThread(self,) -> 'None': + """ + Description of QueryIsDebuggerThread. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugCodeContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContext(self,) -> 'None': + """ + Description of GetDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetBreakPoint(self,bps:'typing.Any') -> 'None': + """ + Description of SetBreakPoint. + +Args: + + bps(typing.Any):Description for bps + +Returns: + + None + + """ + pass + + +class PyIDebugDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDebugDocumentContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocument(self,) -> 'None': + """ + Description of GetDocument. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumCodeContexts(self,) -> 'None': + """ + Description of EnumCodeContexts. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentHelper(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Init(self,pda:'PyIDebugApplication',pszShortName:'typing.Any',pszLongName:'typing.Any',docAttr:'typing.Any') -> 'None': + """ + Description of Init. + +Args: + + pda(PyIDebugApplication):Description for pda + pszShortName(typing.Any):Description for pszShortName + pszLongName(typing.Any):Description for pszLongName + docAttr(typing.Any):Description for docAttr + +Returns: + + None + + """ + pass + + + def Attach(self,pddhParent:'PyIDebugDocumentHelper') -> 'None': + """ + Add the document to the doc tree + +Args: + + pddhParent(PyIDebugDocumentHelper):Parent item. If none, this item is top level. + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'None': + """ + Description of Detach. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddUnicodeText(self,pszText:'typing.Any') -> 'None': + """ + Description of AddUnicodeText. + +Args: + + pszText(typing.Any):Description for pszText + +Returns: + + None + + """ + pass + + + def AddDBCSText(self,) -> 'None': + """ + Description of AddDBCSText. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDebugDocumentHost(self,pddh:'PyIDebugDocumentHost') -> 'None': + """ + Description of SetDebugDocumentHost. + +Args: + + pddh(PyIDebugDocumentHost):Description for pddh + +Returns: + + None + + """ + pass + + + def AddDeferredText(self,cChars:'typing.Any',dwTextStartCookie:'typing.Any') -> 'None': + """ + Description of AddDeferredText. + +Args: + + cChars(typing.Any):Description for cChars + dwTextStartCookie(typing.Any):Description for dwTextStartCookie + +Returns: + + None + + """ + pass + + + def DefineScriptBlock(self,ulCharOffset:'typing.Any',cChars:'typing.Any',pas:'typing.Any',fScriptlet:'typing.Any') -> 'None': + """ + Description of DefineScriptBlock. + +Args: + + ulCharOffset(typing.Any):Description for ulCharOffset + cChars(typing.Any):Description for cChars + pas(typing.Any):Description for pas + fScriptlet(typing.Any):Description for fScriptlet + +Returns: + + None + + """ + pass + + + def SetDefaultTextAttr(self,staTextAttr:'typing.Any') -> 'None': + """ + Description of SetDefaultTextAttr. + +Args: + + staTextAttr(typing.Any):Description for staTextAttr + +Returns: + + None + + """ + pass + + + def SetTextAttributes(self,ulCharOffset:'typing.Any',obAttr:'typing.Any') -> 'None': + """ + Description of SetTextAttributes. + +Args: + + ulCharOffset(typing.Any):Description for ulCharOffset + obAttr(typing.Any):A sequence of attributes. + +Returns: + + None + + """ + pass + + + def SetLongName(self,pszLongName:'typing.Any') -> 'None': + """ + Description of SetLongName. + +Args: + + pszLongName(typing.Any):Description for pszLongName + +Returns: + + None + + """ + pass + + + def SetShortName(self,pszShortName:'typing.Any') -> 'None': + """ + Description of SetShortName. + +Args: + + pszShortName(typing.Any):Description for pszShortName + +Returns: + + None + + """ + pass + + + def SetDocumentAttr(self,pszAttributes:'typing.Any') -> 'None': + """ + Description of SetDocumentAttr. + +Args: + + pszAttributes(typing.Any):Description for pszAttributes + +Returns: + + None + + """ + pass + + + def GetDebugApplicationNode(self,) -> 'None': + """ + Description of GetDebugApplicationNode. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetScriptBlockInfo(self,dwSourceContext:'typing.Any') -> 'None': + """ + Description of GetScriptBlockInfo. + +Args: + + dwSourceContext(typing.Any):Description for dwSourceContext + +Returns: + + None + + """ + pass + + + def CreateDebugDocumentContext(self,iCharPos:'typing.Any',cChars:'typing.Any') -> 'None': + """ + Description of CreateDebugDocumentContext. + +Args: + + iCharPos(typing.Any):Description for iCharPos + cChars(typing.Any):Description for cChars + +Returns: + + None + + """ + pass + + + def BringDocumentToTop(self,) -> 'None': + """ + Description of BringDocumentToTop. + +Args: + + + +Returns: + + None + + """ + pass + + + def BringDocumentContextToTop(self,pddc:'PyIDebugDocumentContext') -> 'None': + """ + Description of BringDocumentContextToTop. + +Args: + + pddc(PyIDebugDocumentContext):Description for pddc + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentHost(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDeferredText(self,dwTextStartCookie:'typing.Any',cMaxChars:'typing.Any') -> 'None': + """ + Description of GetDeferredText. + +Args: + + dwTextStartCookie(typing.Any):Description for dwTextStartCookie + cMaxChars(typing.Any):Description for cMaxChars + +Returns: + + None + + """ + pass + + + def GetScriptTextAttributes(self,pstrCode:'typing.Any',pstrDelimiter:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of GetScriptTextAttributes. + +Args: + + pstrCode(typing.Any):Description for pstrCode + pstrDelimiter(typing.Any):Description for pstrDelimiter + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def OnCreateDocumentContext(self,) -> 'None': + """ + Description of OnCreateDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPathName(self,) -> 'None': + """ + Description of GetPathName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFileName(self,) -> 'None': + """ + Description of GetFileName. + +Args: + + + +Returns: + + None + + """ + pass + + + def NotifyChanged(self,) -> 'None': + """ + Description of NotifyChanged. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentInfo(object): + """Provides information on a document, which may or may not be instantiated.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetName(self,) -> 'None': + """ + Returns the specified name for the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocumentClassId(self,) -> 'PyIID': + """ + Returns a CLSID describing the document type. + +Args: + + + +Returns: + + PyIID + + """ + pass + + +class PyIDebugDocumentProvider(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocument(self,) -> 'PyIDebugDocument': + """ + Causes the document to be instantiated if it does + +not already exist. + +Args: + + + +Returns: + + PyIDebugDocument + + """ + pass + + +class PyIDebugDocumentText(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentAttributes(self,) -> 'None': + """ + Description of GetDocumentAttributes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'None': + """ + Description of GetSize. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPositionOfLine(self,cLineNumber:'typing.Any') -> 'None': + """ + Description of GetPositionOfLine. + +Args: + + cLineNumber(typing.Any):Description for cLineNumber + +Returns: + + None + + """ + pass + + + def GetLineOfPosition(self,cCharacterPosition:'typing.Any') -> 'None': + """ + Description of GetLineOfPosition. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + +Returns: + + None + + """ + pass + + + def GetText(self,cCharacterPosition:'typing.Any',cMaxChars:'typing.Any',bWantAttr:'typing.Any'=1) -> 'None': + """ + Description of GetText. + +Args: + + cCharacterPosition(typing.Any): + cMaxChars(typing.Any):Max chars to return + bWantAttr(typing.Any):Should the attributes be returned? + +Returns: + + None + + """ + pass + + + def GetPositionOfContext(self,psc:'PyIDebugDocumentContext') -> 'None': + """ + Description of GetPositionOfContext. + +Args: + + psc(PyIDebugDocumentContext):Description for psc + +Returns: + + None + + """ + pass + + + def GetContextOfPosition(self,cCharacterPosition:'typing.Any',cNumChars:'typing.Any') -> 'None': + """ + Description of GetContextOfPosition. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumChars(typing.Any):Description for cNumChars + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextAuthor(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertText(self,cCharacterPosition:'typing.Any',cNumToInsert:'typing.Any',pcharText:'typing.Any') -> 'None': + """ + Description of InsertText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToInsert(typing.Any):Description for cNumToInsert + pcharText(typing.Any):Description for pcharText + +Returns: + + None + + """ + pass + + + def RemoveText(self,cCharacterPosition:'typing.Any',cNumToRemove:'typing.Any') -> 'None': + """ + Description of RemoveText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToRemove(typing.Any):Description for cNumToRemove + +Returns: + + None + + """ + pass + + + def ReplaceText(self,cCharacterPosition:'typing.Any',cNumToReplace:'typing.Any',pcharText:'typing.Any') -> 'None': + """ + Description of ReplaceText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToReplace(typing.Any):Description for cNumToReplace + pcharText(typing.Any):Description for pcharText + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onDestroy(self,) -> 'None': + """ + Description of onDestroy. + +Args: + + + +Returns: + + None + + """ + pass + + + def onInsertText(self,cCharacterPosition:'typing.Any',cNumToInsert:'typing.Any') -> 'None': + """ + Description of onInsertText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToInsert(typing.Any):Description for cNumToInsert + +Returns: + + None + + """ + pass + + + def onRemoveText(self,cCharacterPosition:'typing.Any',cNumToRemove:'typing.Any') -> 'None': + """ + Description of onRemoveText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToRemove(typing.Any):Description for cNumToRemove + +Returns: + + None + + """ + pass + + + def onReplaceText(self,cCharacterPosition:'typing.Any',cNumToReplace:'typing.Any') -> 'None': + """ + Description of onReplaceText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToReplace(typing.Any):Description for cNumToReplace + +Returns: + + None + + """ + pass + + + def onUpdateTextAttributes(self,cCharacterPosition:'typing.Any',cNumToUpdate:'typing.Any') -> 'None': + """ + Description of onUpdateTextAttributes. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToUpdate(typing.Any):Description for cNumToUpdate + +Returns: + + None + + """ + pass + + + def onUpdateDocumentAttributes(self,textdocattr:'typing.Any') -> 'None': + """ + Description of onUpdateDocumentAttributes. + +Args: + + textdocattr(typing.Any):Description for textdocattr + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextExternalAuthor(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPathName(self,) -> 'None': + """ + Description of GetPathName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFileName(self,) -> 'None': + """ + Description of GetFileName. + +Args: + + + +Returns: + + None + + """ + pass + + + def NotifyChanged(self,) -> 'None': + """ + Description of NotifyChanged. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpression(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Start(self,pdecb:'PyIDebugExpressionCallBack') -> 'None': + """ + Description of Start. + +Args: + + pdecb(PyIDebugExpressionCallBack):Description for pdecb + +Returns: + + None + + """ + pass + + + def Abort(self,) -> 'None': + """ + Description of Abort. + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryIsComplete(self,) -> 'None': + """ + Description of QueryIsComplete. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetResultAsString(self,) -> 'None': + """ + Description of GetResultAsString. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetResultAsDebugProperties(self,) -> 'None': + """ + Description of GetResultAsDebugProperty. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpressionCallBack(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onComplete(self,) -> 'None': + """ + Description of onComplete. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpressionContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseLanguageText(self,pstrCode:'typing.Any',nRadix:'typing.Any',pstrDelimiter:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of ParseLanguageText. + +Args: + + pstrCode(typing.Any):Description for pstrCode + nRadix(typing.Any):Description for nRadix + pstrDelimiter(typing.Any):Description for pstrDelimiter + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetLanguageInfo(self,) -> 'None': + """ + Description of GetLanguageInfo. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugProperty(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyInfo(self,dwFieldSpec:'typing.Any',nRadix:'typing.Any') -> 'None': + """ + Description of GetPropertyInfo. + +Args: + + dwFieldSpec(typing.Any):Description for dwFieldSpec + nRadix(typing.Any):Description for nRadix + +Returns: + + None + + """ + pass + + + def GetExtendedInfo(self,) -> 'None': + """ + Description of GetExtendedInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetValueAsString(self,pszValue:'typing.Any',nRadix:'typing.Any') -> 'None': + """ + Description of SetValueAsString. + +Args: + + pszValue(typing.Any):Description for pszValue + nRadix(typing.Any):Description for nRadix + +Returns: + + None + + """ + pass + + + def EnumMembers(self,dwFieldSpec:'typing.Any',nRadix:'typing.Any',refiid:'PyIID') -> 'None': + """ + Description of EnumMembers. + +Args: + + dwFieldSpec(typing.Any):Description for dwFieldSpec + nRadix(typing.Any):Description for nRadix + refiid(PyIID):Description for refiid + +Returns: + + None + + """ + pass + + + def GetParent(self,) -> 'None': + """ + Description of GetParent. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugSessionProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def StartDebugSession(self,pda:'PyIRemoteDebugApplication') -> 'None': + """ + Description of StartDebugSession. + +Args: + + pda(PyIRemoteDebugApplication):Description for pda + +Returns: + + None + + """ + pass + + +class PyIDebugStackFrame(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCodeContext(self,) -> 'None': + """ + Returns the current code context associated with the stack frame. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDescriptionString(self,fLong:'typing.Any') -> 'typing.Any': + """ + Returns a short or long textual description of the + +stack frame. + +Args: + + fLong(typing.Any):If false, provide only the name of the function associated with the stack frame. When true it may also provide the parameter(s) to the function or whatever else is relevant. + +Returns: + + typing.Any + + """ + pass + + + def GetLanguageString(self,fLong:'typing.Any') -> 'typing.Any': + """ + Returns a short or long textual description of the + +language. + +Args: + + fLong(typing.Any):If False, just the language name should be provided, eg, "Python". If True a full product description may be provided (eg, "Python 1.4 ActiveX Debugging Host") + +Returns: + + typing.Any + + """ + pass + + + def GetThread(self,) -> 'PyIDebugApplicationThread': + """ + Returns the thread associated with this stack + +frame. + +Args: + + + +Returns: + + PyIDebugApplicationThread + + """ + pass + + +class PyIDebugStackFrameSniffer(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumStackFrames(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugStackFrameSnifferEx(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumStackFramesEx(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugSyncOperation(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetTargetThread(self,) -> 'None': + """ + Description of GetTargetThread. + +Args: + + + +Returns: + + None + + """ + pass + + + def Execute(self,) -> 'None': + """ + Description of Execute. + +Args: + + + +Returns: + + None + + """ + pass + + + def InProgressAbort(self,) -> 'None': + """ + Description of InProgressAbort. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDefaultExtractIconInit(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetFlags(self,uFlags:'typing.Any') -> 'None': + """ + Description of SetFlags. + +Args: + + uFlags(typing.Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def SetKey(self,hkey:'PyHKEY') -> 'None': + """ + Description of SetKey. + +Args: + + hkey(PyHKEY):Description for hkey + +Returns: + + None + + """ + pass + + + def SetNormalIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': + """ + Description of SetNormalIcon. + +Args: + + pszFile(typing.Any):Description for pszFile + iIcon(typing.Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetOpenIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': + """ + Description of SetOpenIcon. + +Args: + + pszFile(typing.Any):Description for pszFile + iIcon(typing.Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetShortcutIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': + """ + Description of SetShortcutIcon. + +Args: + + pszFile(typing.Any):Description for pszFile + iIcon(typing.Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetDefaultIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': + """ + Description of SetDefaultIcon. + +Args: + + pszFile(typing.Any):Description for pszFile + iIcon(typing.Any):Description for iIcon + +Returns: + + None + + """ + pass + + +class PyIDirectSound(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,guid:'PyIID') -> 'None': + """ + Description of Initialize. + +Args: + + guid(PyIID):Globally unique identifier (GUID) specifying the sound driver to which this DirectSound object binds. Pass None to select the primary sound driver. + +Returns: + + None + + """ + pass + + + def SetCooperativeLevel(self,hwnd:'typing.Any',level:'typing.Any') -> 'None': + """ + The IDirectSound::SetCooperativeLevel method sets the cooperative level + +of the application for this sound device. + +Args: + + hwnd(typing.Any):Window handle to the application or None. + level(typing.Any):Requested priority level. Specify one of the following values:LevelDescriptionDSSCL_NORMALSets the application to a fully cooperative status. Most applications should use this level, because it has the smoothest multitasking and resource-sharing behavior.DSSCL_PRIORITYSets the application to the priority level. Applications with this cooperative level can call the DirectSoundBuffer.setFormat and DirectSound.compact methods.DSSCL_EXCLUSIVESets the application to the exclusive level. When it has the input focus, the application will be the only one audible (sounds from applications with the DSBCAPS_GLOBALFOCUS flag set will be muted). With this level, it also has all the privileges of the DSSCL_PRIORITY level. DirectSound will restore the hardware format, as specified by the most recent call to the DirectSoundBuffer.setFormat method, once the application gains the input focus. (Note that DirectSound will always restore the wave format, no matter what priority level is set.)DSSCL_WRITEPRIMARYThis is the highest priority level. The application has write access to the primary sound buffers. No secondary sound buffers in any application can be played. + +Returns: + + None + + """ + pass + + + def CreateSoundBuffer(self,lpDSCBufferDesc:'PyDSCBUFFERDESC',unk:'typing.Any'=None) -> 'None': + """ + The IDirectSound::CreateSoundBuffer method creates a DirectSoundBuffer + +object to hold a sequence of audio samples. + +Args: + + lpDSCBufferDesc(PyDSCBUFFERDESC):a DSBUFFERDESC structure containing values for the sound buffer being created. + unk(typing.Any):The IUnknown for COM aggregation. + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def Compact(self,) -> 'None': + """ + The Compact method moves the unused portions of on-board sound memory, if any, to a + +contiguous block so that the largest portion of free memory will be available. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundBuffer(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Description of Initialize. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Retrieves the current status of the sound buffer. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + Retrieves the capabilities of the DirectSoundBuffer object as a DSBCAPS + +object. + +Args: + + + +Returns: + + None + + """ + pass + + + def Restore(self,) -> 'None': + """ + Restores the memory allocation for a lost sound buffer for the specified + +DirectSoundBuffer object. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentPosition(self,) -> 'None': + """ + Description of GetCurrentPosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def Play(self,) -> 'None': + """ + Description of Play. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCurrentPosition(self,) -> 'None': + """ + Description of SetCurrentPosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def Stop(self,) -> 'None': + """ + Description of Stop. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFrequency(self,) -> 'None': + """ + Description of GetFrequency. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPan(self,) -> 'None': + """ + Description of GetPan. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetVolume(self,) -> 'None': + """ + Description of GetVolume. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFrequency(self,) -> 'None': + """ + Description of SetFrequency. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPan(self,) -> 'None': + """ + Description of SetPan. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetVolume(self,) -> 'None': + """ + Description of SetVolume. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundCapture(object): + """The methods of the IDirectSoundCapture interface are used to create sound capture + +buffers.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Not normally called directly. Use DirectSoundCaptureCreate instead. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundCaptureBuffer(object): + """The methods of the IDirectSoundCaptureBuffer interface are used to manipulate + +sound capture buffers.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Not normally used. Used IDirectSoundCapture.CreateCaptureBuffer + +instead. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Retrieves the current status of the sound capture buffer. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentPosition(self,) -> 'None': + """ + Returns a tuple of the current capture and read position in + +the buffer. The capture position is ahead of the read position. These positions are not always identical due to + +possible buffering of captured data either on the physical device or in the host. The data after the read position up + +to and including the capture position is not necessarily valid data. + +Args: + + + +Returns: + + None + + """ + pass + + + def Stop(self,) -> 'None': + """ + The IDirectSoundCaptureBuffer::Stop method puts the capture buffer into + +the "stop" state and stops capturing data. If the capture buffer is already in the stop state then the method has no + +effect. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundNotify(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDirectoryObject(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObjectInformation(self,) -> 'PyADS_OBJECT_INFO': + """ + None + +Args: + + + +Returns: + + PyADS_OBJECT_INFO + + """ + pass + + + def GetObjectAttributes(self,names:'typing.Tuple[str, ...]') -> 'typing.Tuple[PyADS_ATTR_INFO, ...]': + """ + None + +Args: + + names(typing.Tuple[str, ...]): + +Returns: + + typing.Tuple[PyADS_ATTR_INFO, ...] + + """ + pass + + + def SetObjectAttributes(self,attrs:'typing.Tuple[PyADS_ATTR_INFO, ...]') -> 'typing.Any': + """ + None + +Args: + + attrs(typing.Tuple[PyADS_ATTR_INFO, ...]):The attributes to set + +Returns: + + typing.Any + + """ + pass + + + def CreateDSObject(self,rdn:'str',attrs:'typing.Tuple[PyADS_ATTR_INFO, ...]') -> 'PyIDispatch': + """ + None + +Args: + + rdn(str):The relative distinguished name (relative path) of the object to be created. + attrs(typing.Tuple[PyADS_ATTR_INFO, ...]):The attributes to set. + +Returns: + + PyIDispatch + + """ + pass + + + def DeleteDSObject(self,rdn:'str') -> 'None': + """ + Deletes a leaf object in a directory tree + +Args: + + rdn(str):The relative distinguished name (relative path) of the object to be deleted. + +Returns: + + None + + """ + pass + + +class PyIDirectorySearch(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSearchPreference(self,prefs:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + None + +Args: + + prefs(typing.Any):Return ValueThe result is the hresult of the call, and a list of integer status codes for each of the preferences set. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:Return ValueThe result is the hresult of the call, and a list of integer status + +codes for each of the preferences set. + + + """ + pass + + + def ExecuteSearch(self,_filter:'str',attrNames:'typing.List[str]') -> 'typing.Any': + """ + None + +Args: + + _filter(str): + attrNames(typing.List[str]):Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle should be called to close the handle. + +Returns: + + typing.Any:Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle + +should be called to close the handle. + + + """ + pass + + + def GetNextRow(self,handle:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def GetFirstRow(self,handle:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def GetPreviousRow(self,handle:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def CloseSearchHandle(self,handle:'typing.Any') -> 'None': + """ + Closes a previously opened search handle. + +Args: + + handle(typing.Any): + +Returns: + + None + + """ + pass + + + def AdandonSearch(self,handle:'typing.Any') -> 'None': + """ + None + +Args: + + handle(typing.Any): + +Returns: + + None + + """ + pass + + + def GetColumn(self,handle:'typing.Any',name:'str') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + None + +Args: + + handle(typing.Any):Handle to a search + name(str):The column name to fetch + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetNextColumnName(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None:PyIDirectorySearch.GetNextColumnName +GetNextColumnName() +Return ValueReturns None when the underlying ADSI function return S_ADS_NOMORE_COLUMNS. + + + """ + pass + + +class PyIDispatch(object): + """A OLE automation client object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Invoke(self,dispid:'typing.Any',lcid:'typing.Any',flags:'typing.Any',bResultWanted:'typing.Any',arg:'typing.Tuple[typing.Any, ...]') -> 'typing.Any': + """ + Invokes a DISPID, using the passed arguments. + +Args: + + dispid(typing.Any):The dispid to use. Typically this value will come from PyIDispatch::GetIDsOfNames or from a type library. + lcid(typing.Any):The locale id to use. + flags(typing.Any):The flags for the call. The following flags can be used.FlagDescriptionDISPATCH_METHODThe member is invoked as a method. If a property has the same name, both this and the DISPATCH_PROPERTYGET flag may be set.DISPATCH_PROPERTYGETThe member is retrieved as a property or data member.DISPATCH_PROPERTYPUTThe member is changed as a property or data member.DISPATCH_PROPERTYPUTREFThe member is changed by a reference assignment, rather than a value assignment. This flag is valid only when the property accepts a reference to an object. + bResultWanted(typing.Any):Indicates if the result of the call should be requested. + arg(typing.Tuple[typing.Any, ...]):The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. Otherwise, the result is determined by the COM object itself (and may still be None) + +Returns: + + typing.Any:The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. + +Otherwise, the result is determined by the COM object itself (and may still be None) + + + """ + pass + + + def InvokeTypes(self,dispid:'typing.Any',lcid:'typing.Any',wFlags:'typing.Any',resultTypeDesc:'typing.Any',typeDescs:'typing.Tuple[typing.Any, ...]',args:'typing.Tuple[typing.Any, ...]') -> 'typing.Any': + """ + Invokes a DISPID, using the passed arguments and type descriptions. + +Args: + + dispid(typing.Any):The dispid to use. Please see PyIDispatch::Invoke. + lcid(typing.Any):The locale ID. Please see PyIDispatch::Invoke. + wFlags(typing.Any):Flags for the call. Please see PyIDispatch::Invoke. + resultTypeDesc(typing.Any):A tuple describing the type of the result. See the comments for more information. + typeDescs(typing.Tuple[typing.Any, ...]):A sequence of tuples describing the types of the parameters for the function. See the comments for more information. + args(typing.Tuple[typing.Any, ...]):The args to the function.CommentsThe Microsoft documentation for IDispatch should be used for all params except 'resultTypeDesc' and 'typeDescs'. 'resultTypeDesc' describes the return value of the function, and is a tuple of (type_id, flags). 'typeDescs' describes the type of each parameters, and is a list of the same (type_id, flags) tuple.itemDescriptiontype_idA valid "variant type" constant (eg, VT_I4 | VT_ARRAY, VT_DATE, etc - see VARIANT at MSDN).flagsOne of the PARAMFLAG constants (eg, PARAMFLAG_FIN, PARAMFLAG_FOUT etc - see PARAMFLAG at MSDN).ExampleAn example from the makepy generated file for Wordclass Cells(DispatchBaseClass):... def SetWidth(self, ColumnWidth=..., RulerStyle=...): return self._oleobj_.InvokeTypes(202, LCID, 1, (24, 0), ((4, 1), (3, 1)),...)The interesting bits areresultTypeDesc: (24, 0) - (VT_VOID, <no flags>)typeDescs: ((4, 1), (3, 1)) - ((VT_R4, PARAMFLAG_FIN), (VT_I4, PARAMFLAG_FIN))So, in this example, the function returns no value and takes 2 "in" params - ColumnWidth is a float, and RulerStule is an int. + +Returns: + + typing.Any + + """ + pass + + + def GetIDsOfNames(self,name:'str',arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Union[typing.Any]]': + """ + Get the DISPID for the passed names. + +Args: + + name(str):A name to query forAlternative Parameters + arg(typing.Any):A sequence of string names to queryCommentsCurrently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used.Return ValueIf the first parameter is a sequence, the result will be a tuple of integers for each name in the sequence. If the first parameter is a single string, the result is a single integer with the ID of requested item. + +Returns: + + typing.Tuple[typing.Any, typing.Union[typing.Any]]:A sequence of string names to query +Comments + +Currently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used. +Return ValueIf the first parameter is a sequence, the result will be a tuple of integers + +for each name in the sequence. If the first parameter is a single string, the result + +is a single integer with the ID of requested item. + + + """ + pass + + + def GetTypeInfo(self,locale:'typing.Any',index:'typing.Any'=0) -> 'PyITypeInfo': + """ + Get type information for the object. + +Args: + + locale(typing.Any):The locale to use. + index(typing.Any):The index of the typelibrary to fetch. Note that these params are reversed from the win32 call. + +Returns: + + PyITypeInfo + + """ + pass + + + def GetTypeInfoCount(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIDispatchEx(object): + """A OLE automation client object that uses the IDispatchEx scripting interface..""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDispID(self,name:'str',fdex:'typing.Any') -> 'typing.Any': + """ + Returns the member id for a name + +Args: + + name(str):Passed in name to be mapped + fdex(typing.Any):Determines the options for obtaining the member identifier. This can be a combination of the fdex* constants: + +Returns: + + typing.Any + + """ + pass + + + def InvokeEx(self,dispid:'typing.Any',lcid:'typing.Any',flags:'typing.Any',args:'typing.List[typing.Any]',types:'typing.List[typing.Any]'=None,returnDesc:'typing.Any'=1,serviceProvider:'PyIServiceProvider'=None) -> 'typing.Any': + """ + None + +Args: + + dispid(typing.Any): + lcid(typing.Any): + flags(typing.Any): + args(typing.List[typing.Any]):The arguments. + types(typing.List[typing.Any]):A tuple of type description object, or None if type descriptions are not available. + returnDesc(typing.Any):If types==None, should be a BOOL indicating if the result is needed. If types is a tuple, then should a be type description. + serviceProvider(PyIServiceProvider):A service provider object supplied by the caller which allows the object to obtain services from the caller. Can be None. + +Returns: + + typing.Any + + """ + pass + + + def DeleteMemberByName(self,name:'str',fdex:'typing.Any') -> 'None': + """ + None + +Args: + + name(str):Passed in name to be mapped + fdex(typing.Any):Determines the options + +Returns: + + None + + """ + pass + + + def DeleteMemberByDispID(self,dispid:'typing.Any') -> 'None': + """ + None + +Args: + + dispid(typing.Any): + +Returns: + + None + + """ + pass + + + def GetMemberProperties(self,dispid:'typing.Any',fdex:'typing.Any') -> 'typing.Any': + """ + Returns mask of fdex* flags describing a member + +Args: + + dispid(typing.Any):The member id + fdex(typing.Any):fdex* flags specifying which properties to return + +Returns: + + typing.Any + + """ + pass + + + def GetMemberName(self,dispid:'typing.Any') -> 'typing.Any': + """ + Returns the name associated with a member id + +Args: + + dispid(typing.Any):The member id + +Returns: + + typing.Any + + """ + pass + + + def GetNextDispID(self,fdex:'typing.Any',dispid:'typing.Any') -> 'typing.Any': + """ + Enumerates member ids. + +Args: + + fdex(typing.Any):Determines the options + dispid(typing.Any):Current member, or DISPID_STARTENUM to begin enumeration. GetNextDispID will retrieve the item in the enumeration after this one. + +Returns: + + typing.Any + + """ + pass + + +class PyIDisplayItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDocHostUIHandler(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ShowContextMenu(self,dwID:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pcmdtReserved:'PyIUnknown',pdispReserved:'PyIDispatch') -> 'None': + """ + Description of ShowContextMenu. + +Args: + + dwID(typing.Any):Description for dwID + pt(typing.Tuple[typing.Any, typing.Any]):Description for ppt + pcmdtReserved(PyIUnknown):Description for pcmdtReserved + pdispReserved(PyIDispatch):Description for pdispReserved + +Returns: + + None + + """ + pass + + + def GetHostInfo(self,) -> 'None': + """ + Description of GetHostInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowUI(self,dwID:'typing.Any',pActiveObject:'PyIOleInPlaceActiveObject',pCommandTarget:'PyIOleCommandTarget',pFrame:'PyIOleInPlaceFrame',pDoc:'PyIOleInPlaceUIWindow') -> 'None': + """ + Description of ShowUI. + +Args: + + dwID(typing.Any):Description for dwID + pActiveObject(PyIOleInPlaceActiveObject):Description for pActiveObject + pCommandTarget(PyIOleCommandTarget):Description for pCommandTarget + pFrame(PyIOleInPlaceFrame):Description for pFrame + pDoc(PyIOleInPlaceUIWindow):Description for pDoc + +Returns: + + None + + """ + pass + + + def HideUI(self,) -> 'None': + """ + Description of HideUI. + +Args: + + + +Returns: + + None + + """ + pass + + + def UpdateUI(self,) -> 'None': + """ + Description of UpdateUI. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'typing.Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(typing.Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def OnDocWindowActivate(self,fActivate:'typing.Any') -> 'None': + """ + Description of OnDocWindowActivate. + +Args: + + fActivate(typing.Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def OnFrameWindowActivate(self,fActivate:'typing.Any') -> 'None': + """ + Description of OnFrameWindowActivate. + +Args: + + fActivate(typing.Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def ResizeBorder(self,prcBorder:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pUIWindow:'PyIOleInPlaceUIWindow',fRameWindow:'typing.Any') -> 'None': + """ + Description of ResizeBorder. + +Args: + + prcBorder(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcBorder + pUIWindow(PyIOleInPlaceUIWindow):Description for pUIWindow + fRameWindow(typing.Any):Description for fRameWindow + +Returns: + + None + + """ + pass + + + def TranslateAccelerator(self,lpMsg:'typing.Any',pguidCmdGroup:'PyIID',nCmdID:'typing.Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpMsg(typing.Any):Description for lpMsg + pguidCmdGroup(PyIID):Description for pguidCmdGroup + nCmdID(typing.Any):Description for nCmdID + +Returns: + + None + + """ + pass + + + def GetOptionKeyPath(self,dw:'typing.Any') -> 'None': + """ + Description of GetOptionKeyPath. + +Args: + + dw(typing.Any):Description for dw + +Returns: + + None + + """ + pass + + + def GetDropTarget(self,pDropTarget:'PyIDropTarget') -> 'None': + """ + Description of GetDropTarget. + +Args: + + pDropTarget(PyIDropTarget):Description for pDropTarget + +Returns: + + None + + """ + pass + + + def GetExternal(self,) -> 'None': + """ + Description of GetExternal. + +Args: + + + +Returns: + + None + + """ + pass + + + def TranslateUrl(self,dwTranslate:'typing.Any',pchURLIn:'typing.Any') -> 'None': + """ + Description of TranslateUrl. + +Args: + + dwTranslate(typing.Any):Description for dwTranslate + pchURLIn(typing.Any):Description for pchURLIn + +Returns: + + None + + """ + pass + + + def FilterDataObject(self,pDO:'PyIDataObject') -> 'None': + """ + Description of FilterDataObject. + +Args: + + pDO(PyIDataObject):Description for pDO + +Returns: + + None + + """ + pass + + +class PyIDropSource(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryContinueDrag(self,fEscapePressed:'typing.Any',grfKeyState:'typing.Any') -> 'None': + """ + Description of QueryContinueDrag. + +Args: + + fEscapePressed(typing.Any):Description for fEscapePressed + grfKeyState(typing.Any):Description for grfKeyState + +Returns: + + None + + """ + pass + + + def GiveFeedback(self,dwEffect:'typing.Any') -> 'None': + """ + Description of GiveFeedback. + +Args: + + dwEffect(typing.Any):Description for dwEffect + +Returns: + + None + + """ + pass + + +class PyIDropTarget(object): + """Interface that acts as a target of OLE drag and drop operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DragEnter(self,pDataObj:'PyIDataObject',grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'typing.Any': + """ + Called when an object is initially dragged into a window + +Args: + + pDataObj(PyIDataObject):IDataObject interface that contains the object being dragged + grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor + pdwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted + +Returns: + + typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can + +be accepted + + + """ + pass + + + def DragOver(self,grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'typing.Any': + """ + Called as the dragged object moves over the window + +Args: + + grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor + pdwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted at the current position + +Returns: + + typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the + +object can be accepted at the current position + + + """ + pass + + + def DragLeave(self,) -> 'None': + """ + Called as the object is dragged back out of the window + +Args: + + + +Returns: + + None + + """ + pass + + + def Drop(self,pDataObj:'PyIDataObject',grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'typing.Any': + """ + Called when the object is dropped onto the window + +Args: + + pDataObj(PyIDataObject):IDataObject interface containing the dropped object + grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor + dwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values + +Returns: + + typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values + + + """ + pass + + +class PyIDropTargetHelper(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DragEnter(self,hwnd:'int',pDataObj:'PyIDataObject',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'None': + """ + Description of DragEnter. + +Args: + + hwnd(int):Handle to target window + pDataObj(PyIDataObject):Object that is dragged onto the window + pt(typing.Tuple[typing.Any, typing.Any]):Coordinates where drag operation entered the window + dwEffect(typing.Any):One of shellcon.DROPEFFECT_* values + +Returns: + + None + + """ + pass + + + def DragOver(self,hwnd:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'None': + """ + Description of DragOver. + +Args: + + hwnd(typing.Any): + pt(typing.Tuple[typing.Any, typing.Any]):Description for pt + pdwEffect(typing.Any):Description for pdwEffect + +Returns: + + None + + """ + pass + + + def DragLeave(self,) -> 'None': + """ + Description of DragLeave. + +Args: + + + +Returns: + + None + + """ + pass + + + def Drop(self,pDataObj:'PyIDataObject',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'None': + """ + Description of Drop. + +Args: + + pDataObj(PyIDataObject):Description for pDataObj + pt(typing.Tuple[typing.Any, typing.Any]):Description for pt + dwEffect(typing.Any):Description for dwEffect + +Returns: + + None + + """ + pass + + +class PyIDsObjectPicker(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,targetComputer:'str',scopeInfos:'PyDSOP_SCOPE_INIT_INFOs',options:'typing.Any'=0,attrNames:'typing.List[str]'=None) -> 'None': + """ + Initializes the IDsObjectPicker interface with information about the scopes, filters, and options used by the object picker dialog box. + +Args: + + targetComputer(str): + scopeInfos(PyDSOP_SCOPE_INIT_INFOs): + options(typing.Any): + attrNames(typing.List[str]): + +Returns: + + None + + """ + pass + + + def InvokeDialog(self,hwnd:'typing.Any') -> 'PyIDataObject': + """ + Displays a modal object picker dialog box and returns the user's selections. + +Args: + + hwnd(typing.Any): + +Returns: + + PyIDataObject + + """ + pass + + +class PyIEmptyVolumeCache(object): + """Used for cleaning up temporary file ("disk cleanup")""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIEmptyVolumeCache2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIEmptyVolumeCacheCallBack(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ScanProgress(self,dwlSpaceUsed:'typing.Any',dwFlags:'typing.Any',pcwszStatus:'typing.Any') -> 'None': + """ + Description of ScanProgress. + +Args: + + dwlSpaceUsed(typing.Any):Description for dwlSpaceUsed + dwFlags(typing.Any):Description for dwFlags + pcwszStatus(typing.Any):Description for pcwszStatus + +Returns: + + None + + """ + pass + + + def PurgeProgress(self,dwlSpaceFreed:'typing.Any',spaceFreed:'typing.Any',spaceToFree:'typing.Any',flags:'typing.Any',status:'typing.Any') -> 'None': + """ + Description of PurgeProgress. + +Args: + + dwlSpaceFreed(typing.Any):Description for dwlSpaceFreed + spaceFreed(typing.Any): + spaceToFree(typing.Any): + flags(typing.Any): + status(typing.Any): + +Returns: + + None + + """ + pass + + +class PyIEnumCATEGORYINFO(object): + """A Python interface to IEnumCATEGORYINFO""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[typing.Tuple[PyIID, typing.Any, str], ...]': + """ + Retrieves a specified number of items in the + +enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, one for each element returned. + +Returns: + + typing.Tuple[typing.Tuple[PyIID, typing.Any, str], ...]:Number of items to retrieve. +Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, + +one for each element returned. + + + """ + pass + + + def Skip(self,num:'typing.Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(typing.Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumCATEGORYINFO': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumCATEGORYINFO + + """ + pass + + +class PyIEnumConnectionPoints(object): + """A Python interface to IEnumConnectionPoints""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIConnectionPoint, ...]': + """ + Retrieves a specified number of items in the + +enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[PyIConnectionPoint, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumConnectionPoints': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumConnectionPoints + + """ + pass + + +class PyIEnumConnections(object): + """A Python interface to IEnumConnections""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumConnections': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumConnections + + """ + pass + + +class PyIEnumContextProps(object): + """A Python interface to IEnumContextProps""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[typing.Tuple[PyIID, typing.Any, PyIUnknown], ...]': + """ + Retrieves a specified number of items in + +the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve.Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the property value + +Returns: + + typing.Tuple[typing.Tuple[PyIID, typing.Any, PyIUnknown], ...]:Number of items to retrieve. +Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: + + First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the + +property value + + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumContextProps': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumContextProps + + """ + pass + + +class PyIEnumDebugApplicationNodes(object): + """A Python interface to IEnumDebugApplicationNodes""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugApplicationNodes': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugApplicationNodes + + """ + pass + + +class PyIEnumDebugCodeContexts(object): + """A Python interface to IEnumDebugCodeContexts""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugCodeContexts': + """ + Creates another enumerator that contains the + +same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugCodeContexts + + """ + pass + + +class PyIEnumDebugExpressionContexts(object): + """A Python interface to IEnumDebugExpressionContexts""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugExpressionContexts': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugExpressionContexts + + """ + pass + + +class PyIEnumDebugPropertyInfo(object): + """A Python interface to IEnumDebugPropertyInfo""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugPropertyInfo': + """ + Creates another enumerator that contains the + +same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugPropertyInfo + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Obtains the number of items + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIEnumDebugStackFrames(object): + """A Python interface to IEnumDebugStackFrames""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugStackFrames': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugStackFrames + + """ + pass + + +class PyIEnumExplorerCommand(object): + """A Python interface to IEnumExplorerCommand""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumExplorerCommand': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumExplorerCommand + + """ + pass + + +class PyIEnumFORMATETC(object): + """A Python interface to IEnumFORMATETC""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumFORMATETC': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + PyIEnumFORMATETC + + """ + pass + + +class PyIEnumGUID(object): + """A Python interface to IEnumGUID""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIID, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. + +Returns: + + typing.Tuple[PyIID, ...]:Number of items to retrieve. +Return ValueThe result is a tuple of PyIID objects, + +one for each element returned. Note that if zero elements are returned, it is not considered + +an error condition - an empty tuple is simply returned. + + + """ + pass + + + def Skip(self,num:'typing.Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(typing.Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumGUID': + """ + Creates another enumerator that contains the same enumeration state as + +the current one + +Args: + + + +Returns: + + PyIEnumGUID + + """ + pass + + +class PyIEnumIDList(object): + """A Python interface to IEnumIDList""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumIDList': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumIDList + + """ + pass + + +class PyIEnumMoniker(object): + """A Python interface to IEnumMoniker""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'PyIMoniker': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. + +Returns: + + PyIMoniker:Number of items to retrieve. +Return ValueThe result is a tuple of PyIID objects, + +one for each element returned. Note that if zero elements are returned, it is not considered + +an error condition - an empty tuple is simply returned. + + + """ + pass + + + def Skip(self,num:'typing.Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(typing.Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumMoniker': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumMoniker + + """ + pass + + +class PyIEnumObjects(object): + """Iterates through a number of arbitrary interfaces""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,riid:'PyIID',num:'typing.Any'=1) -> 'typing.Tuple[PyIUnknown, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + riid(PyIID):The interfaces to return + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[PyIUnknown, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumObjects': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumObjects + + """ + pass + + +class PyIEnumRemoteDebugApplicationThreads(object): + """A Python interface to IEnumRemoteDebugApplicationThreads""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumRemoteDebugApplicationThreads': + """ + Creates another + +enumerator that contains the same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumRemoteDebugApplicationThreads + + """ + pass + + +class PyIEnumRemoteDebugApplications(object): + """A Python interface to IEnumRemoteDebugApplications""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumRemoteDebugApplications': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumRemoteDebugApplications + + """ + pass + + +class PyIEnumResources(object): + """A Python interface to IEnumResources""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumResources': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + PyIEnumResources + + """ + pass + + +class PyIEnumSTATPROPSETSTG(object): + """A Python interface to IEnumSTATPROPSETSTG""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumSTATPROPSETSTG': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumSTATPROPSETSTG + + """ + pass + + +class PyIEnumSTATPROPSTG(object): + """A Python interface to IEnumSTATPROPSTG""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumSTATPROPSTG': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumSTATPROPSTG + + """ + pass + + +class PyIEnumSTATSTG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[STATSTG, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[STATSTG, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumSTATSTG': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumSTATSTG + + """ + pass + + +class PyIEnumShellItems(object): + """A Python interface to IEnumShellItems""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIShellItem, ...]': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[PyIShellItem, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumShellItems': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + PyIEnumShellItems + + """ + pass + + +class PyIEnumString(object): + """An enumerator interface to list strings""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[str, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[str, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumString': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumString + + """ + pass + + +class PyIErrorLog(object): + """A Python wrapper for a COM IErrorLog interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddError(self,propName:'str',excepInfo:'typing.Any'=None) -> 'None': + """ + Adds an error to the error log. + +Args: + + propName(str):The name of the error + excepInfo(typing.Any):A COM exception. Must be a complete COM exception (ie, pythoncom.com_error, or win32com.server.exceptions.COMException()) + +Returns: + + None + + """ + pass + + +class PyIExplorerBrowser(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,hwndParent:'typing.Any',prc:'PyRECT',pfs:'typing.Any') -> 'None': + """ + Description of Initialize. + +Args: + + hwndParent(typing.Any):Description for hwndParent + prc(PyRECT):Description for prc + pfs(typing.Any):Description for pfs + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Description of Destroy. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetRect(self,hdwp:'typing.Any',rcBrowser:'PyRECT') -> 'int': + """ + Description of SetRect. + +Args: + + hdwp(typing.Any):Description for phdwp + rcBrowser(PyRECT):Description for rcBrowser + +Returns: + + int + + """ + pass + + + def SetPropertyBag(self,PropertyBag:'typing.Any') -> 'None': + """ + Description of SetPropertyBag. + +Args: + + PropertyBag(typing.Any):Description for pszPropertyBag + +Returns: + + None + + """ + pass + + + def SetEmptyText(self,EmptyText:'typing.Any') -> 'None': + """ + Description of SetEmptyText. + +Args: + + EmptyText(typing.Any):Description for pszEmptyText + +Returns: + + None + + """ + pass + + + def SetFolderSettings(self,pfs:'typing.Any') -> 'None': + """ + Description of SetFolderSettings. + +Args: + + pfs(typing.Any):Description for pfs + +Returns: + + None + + """ + pass + + + def Advise(self,psbe:'PyIExplorerBrowserEvents') -> 'typing.Any': + """ + Description of Advise. + +Args: + + psbe(PyIExplorerBrowserEvents):Description for psbe + +Returns: + + typing.Any + + """ + pass + + + def Unadvise(self,dwCookie:'typing.Any') -> 'None': + """ + Description of Unadvise. + +Args: + + dwCookie(typing.Any):Description for dwCookie + +Returns: + + None + + """ + pass + + + def SetOptions(self,dwFlag:'typing.Any') -> 'None': + """ + Description of SetOptions. + +Args: + + dwFlag(typing.Any):Description for dwFlag + +Returns: + + None + + """ + pass + + + def GetOptions(self,) -> 'typing.Any': + """ + Description of GetOptions. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def BrowseToIDList(self,pidl:'typing.Any',uFlags:'typing.Any') -> 'None': + """ + Description of BrowseToIDList. + +Args: + + pidl(typing.Any):Description for pidl + uFlags(typing.Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def BrowseToObject(self,punk:'PyIUnknown',uFlags:'typing.Any') -> 'None': + """ + Description of BrowseToObject. + +Args: + + punk(PyIUnknown):Description for punk + uFlags(typing.Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def FillFromObject(self,punk:'PyIUnknown',dwFlags:'typing.Any') -> 'None': + """ + Description of FillFromObject. + +Args: + + punk(PyIUnknown):Description for punk + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def RemoveAll(self,) -> 'None': + """ + Description of RemoveAll. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentView(self,riid:'PyIID') -> 'PyIUnknown': + """ + Description of GetCurrentView. + +Args: + + riid(PyIID):Description for riid + +Returns: + + PyIUnknown + + """ + pass + + +class PyIExplorerBrowserEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnNavigationPending(self,pidlFolder:'typing.Any') -> 'None': + """ + Description of OnNavigationPending. + +Args: + + pidlFolder(typing.Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + + def OnViewCreated(self,psv:'PyIShellView') -> 'None': + """ + Description of OnViewCreated. + +Args: + + psv(PyIShellView):Description for psv + +Returns: + + None + + """ + pass + + + def OnNavigationComplete(self,pidlFolder:'typing.Any') -> 'None': + """ + Description of OnNavigationComplete. + +Args: + + pidlFolder(typing.Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + + def OnNavigationFailed(self,pidlFolder:'typing.Any') -> 'None': + """ + Description of OnNavigationFailed. + +Args: + + pidlFolder(typing.Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + +class PyIExplorerCommand(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetTitle(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': + """ + Description of GetTitle. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + +Returns: + + typing.Any + + """ + pass + + + def GetIcon(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': + """ + Description of GetIcon. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + +Returns: + + typing.Any + + """ + pass + + + def GetToolTip(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': + """ + Description of GetToolTip. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + +Returns: + + typing.Any + + """ + pass + + + def GetCanonicalName(self,) -> 'PyIID': + """ + Description of GetCanonicalName. + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetState(self,psiItemArray:'PyIShellItemArray',fOkToBeSlow:'typing.Any') -> 'typing.Any': + """ + Description of GetState. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + fOkToBeSlow(typing.Any):Description for fOkToBeSlow + +Returns: + + typing.Any + + """ + pass + + + def Invoke(self,psiItemArray:'PyIShellItemArray',pbc:'PyIBindCtx') -> 'None': + """ + Description of Invoke. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + pbc(PyIBindCtx):Description for pbc + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'typing.Any': + """ + Description of GetFlags. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def EnumSubCommands(self,) -> 'PyIEnumExplorerCommand': + """ + Description of EnumSubCommands. + +Args: + + + +Returns: + + PyIEnumExplorerCommand + + """ + pass + + +class PyIExplorerCommandProvider(object): + """This is a gateway only interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIExplorerPaneVisibility(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIExternalConnection(object): + """A Python wrapper for a COM IExternalConnection interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddConnection(self,extconn:'typing.Any',reserved:'typing.Any'=0) -> 'typing.Any': + """ + Increments an object's count of its strong external connections + +(links). + +Args: + + extconn(typing.Any):Type of external connection to the object. The only type of external connection currently supported by this interface is strong, which means that the object must remain alive as long as this external connection exists. Strong external connections are represented by the value EXTCONN_STRONG = 0x0001, which is defined in the enumeration EXTCON + reserved(typing.Any):A reserved parameterReturn ValueThe result is the number of reference counts on the object; used for debugging purposes only. + +Returns: + + typing.Any:A reserved parameter +Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + + + """ + pass + + + def ReleaseConnection(self,extconn:'typing.Any',reserved:'typing.Any',fLastReleaseCloses:'typing.Any') -> 'typing.Any': + """ + Decrements an object's count of its strong external connections + +(references). + +Args: + + extconn(typing.Any):Type of external connection + reserved(typing.Any):A reserved parameter. + fLastReleaseCloses(typing.Any):TRUE specifies that if the connection being released is the last external lock on the object, the object should close. FALSE specifies that the object should remain open until closed by the user or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + +Returns: + + typing.Any:TRUE specifies that if the connection being released is the last external lock on + +the object, the object should close. FALSE specifies that the object should remain open until closed by the user + +or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + + + """ + pass + + +class PyIExtractIcon(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Extract(self,pszFile:'typing.Any',nIconIndex:'typing.Any',nIconSize:'typing.Any') -> 'None': + """ + Description of Extract. + +Args: + + pszFile(typing.Any):Description for pszFile + nIconIndex(typing.Any):Description for nIconIndex + nIconSize(typing.Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. + +Returns: + + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + +(None,None) if the underlying function returns S_FALSE, indicating + +the calling application should extract it. + + + """ + pass + + + def GetIconLocation(self,uFlags:'typing.Any',cchMax:'typing.Any') -> 'None': + """ + Description of GetIconLocation. + +Args: + + uFlags(typing.Any):Description for uFlags + cchMax(typing.Any):Buffer size to allocate for file name + +Returns: + + None + + """ + pass + + +class PyIExtractIconW(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Extract(self,pszFile:'typing.Any',nIconIndex:'typing.Any',nIconSize:'typing.Any') -> 'None': + """ + Description of Extract. + +Args: + + pszFile(typing.Any):Description for pszFile + nIconIndex(typing.Any):Description for nIconIndex + nIconSize(typing.Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. + +Returns: + + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + +(None,None) if the underlying function returns S_FALSE, indicating + +the calling application should extract it. + + + """ + pass + + + def GetIconLocation(self,uFlags:'typing.Any',cchMax:'typing.Any') -> 'None': + """ + Description of GetIconLocation. + +Args: + + uFlags(typing.Any):Description for uFlags + cchMax(typing.Any):Buffer size to allocate for file name + +Returns: + + None + + """ + pass + + +class PyIExtractImage(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLocation(self,dwPriority:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]',dwRecClrDepth:'typing.Any',pdwFlags:'typing.Any') -> 'None': + """ + Description of GetLocation. + +Args: + + dwPriority(typing.Any):Description for dwPriority + size(typing.Tuple[typing.Any, typing.Any]):Description for prgSize + dwRecClrDepth(typing.Any):Description for dwRecClrDepth + pdwFlags(typing.Any):Description for pdwFlags + +Returns: + + None + + """ + pass + + + def Extract(self,) -> 'None': + """ + Description of Extract. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIFileOperation(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'PyGFileOperationProgressSink') -> 'typing.Any': + """ + Connects an event sink to receive updates + +Args: + + Sink(PyGFileOperationProgressSink):Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect + +Returns: + + typing.Any:Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect + + + """ + pass + + + def Unadvise(self,Cookie:'typing.Any') -> 'None': + """ + Disconnects a progress sink + +Args: + + Cookie(typing.Any):Identifies the sink to disconnect, as returned by PyIFileOperation::Advise + +Returns: + + None + + """ + pass + + + def SetOperationFlags(self,OperationFlags:'typing.Any') -> 'None': + """ + Sets option flags for the operation + +Args: + + OperationFlags(typing.Any):Combination of shellcon.FOF_* and FOFX_* flags + +Returns: + + None + + """ + pass + + + def SetProgressMessage(self,Message:'typing.Any') -> 'None': + """ + Not implemented. + +Args: + + Message(typing.Any):Description for Message + +Returns: + + None + + """ + pass + + + def SetProgressDialog(self,popd:'typing.Any') -> 'None': + """ + Provides an interface used to display a progress dialog + +Args: + + popd(typing.Any):Progress dialog interfaceCommentsIOperationsProgressDialog is not yet supported + +Returns: + + None + + """ + pass + + + def SetProperties(self,proparray:'PyIPropertyChangeArray') -> 'None': + """ + Specifies a set of properties to be changed. + +Args: + + proparray(PyIPropertyChangeArray):Sequence of property changes to be performed (see propsys::PSCreatePropertyChangeArray)CommentsNote that these properties will be set for *any* files created by the operation, not just items passed to ApplyPropertiesToItem(s). New items created as the result of a rename, copy, or move must have a property handler, or the operation fails with the vague com_error: (-2147467259, 'Unspecified error', None, None) (E_FAIL, or 0x80004005 in hex) even though the given file operation was actually performed. + +Returns: + + None + + """ + pass + + + def SetOwnerWindow(self,Owner:'int') -> 'None': + """ + Sets the parent window for any UI displayed. + +Args: + + Owner(int):Handle to parent window + +Returns: + + None + + """ + pass + + + def ApplyPropertiesToItem(self,Item:'PyIShellItem') -> 'None': + """ + Specifies the item that will receive property changes + +Args: + + Item(PyIShellItem):The item to which property changes will be applied + +Returns: + + None + + """ + pass + + + def ApplyPropertiesToItems(self,Items:'PyIUnknown') -> 'None': + """ + Specifies multiple items that will receive property changes + +Args: + + Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the target items + +Returns: + + None + + """ + pass + + + def RenameItem(self,Item:'PyIShellItem',NewName:'typing.Any',Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Adds a rename to the operation sequence + +Args: + + Item(PyIShellItem):The item to be renamed + NewName(typing.Any):The new name + Sink(PyGFileOperationProgressSink):Progress sink for this operation only. + +Returns: + + None + + """ + pass + + + def RenameItems(self,pUnkItems:'PyIUnknown',NewName:'typing.Any') -> 'None': + """ + Adds multiple renames to the operation sequence + +Args: + + pUnkItems(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be renamed + NewName(typing.Any):New name for all items. Collisions handled automatically. + +Returns: + + None + + """ + pass + + + def MoveItem(self,Item:'PyIShellItem',DestinationFolder:'PyIShellItem',pszNewName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Adds a move operation to the configuration + +Args: + + Item(PyIShellItem):The item to be moved + DestinationFolder(PyIShellItem):The folder into which it will be moved + pszNewName(typing.Any):Name to be given to moved item, use None to keep original name + Sink(PyGFileOperationProgressSink):Progress sink to receive notification for just this operation + +Returns: + + None + + """ + pass + + + def MoveItems(self,Items:'PyIUnknown',DestinationFolder:'PyIShellItem') -> 'None': + """ + Adds multiple move operations to the configuration + +Args: + + Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be moved + DestinationFolder(PyIShellItem):Folder into which all items will be moved + +Returns: + + None + + """ + pass + + + def CopyItem(self,Item:'PyIShellItem',DestinationFolder:'PyIShellItem',CopyName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Adds a copy operation to the configuration + +Args: + + Item(PyIShellItem):Item to be copied + DestinationFolder(PyIShellItem):Folder into which it will be copied + CopyName(typing.Any):New name for the copied file, use None to keep original name + Sink(PyGFileOperationProgressSink):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def CopyItems(self,Items:'PyIUnknown',DestinationFolder:'PyIShellItem') -> 'None': + """ + Adds multiple copy operations to the configuration + +Args: + + Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be copied + DestinationFolder(PyIShellItem):Folder into which they will be copied + +Returns: + + None + + """ + pass + + + def DeleteItem(self,Item:'PyIShellItem',Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Adds a delete operation to the configuration + +Args: + + Item(PyIShellItem):Description for psiItem + Sink(PyGFileOperationProgressSink):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def DeleteItems(self,Items:'PyIUnknown') -> 'None': + """ + Adds multiple delete operations to the configuration + +Args: + + Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be deleted + +Returns: + + None + + """ + pass + + + def NewItem(self,DestinationFolder:'PyIShellItem',FileAttributes:'typing.Any',Name:'typing.Any',TemplateName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Creates a new file as part of the operation + +Args: + + DestinationFolder(PyIShellItem):Folder in which to create the file + FileAttributes(typing.Any):Combination of win32con.FILE_ATTRIBUTE_* flags + Name(typing.Any):Name of the new file + TemplateName(typing.Any):Template file used to initialize the new file + Sink(PyGFileOperationProgressSink):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def PerformOperations(self,) -> 'None': + """ + Effects all configured file system modifications + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAnyOperationsAborted(self,) -> 'typing.Any': + """ + Determines if any operations were terminated + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIIdentityName(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIInitializeWithFile(object): + """Initializes a property handler that requires a file path instead of a stream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,FilePath:'typing.Any',Mode:'typing.Any') -> 'None': + """ + Passes a file path to a property handler on startup + +Args: + + FilePath(typing.Any):Full path to the file whose properties are to be accessed + Mode(typing.Any):Indicates if properties can be written, STGM_READ or STGM_READWRITE + +Returns: + + None + + """ + pass + + +class PyIInitializeWithStream(object): + """Interface that initializes a handler capable of reading properties from a stream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,Stream:'PyIStream',Mode:'typing.Any') -> 'None': + """ + Initializes a property handler with a stream + +Args: + + Stream(PyIStream):Stream containing the contents from which to extract properties + Mode(typing.Any):Indicates if stream is writable, STGM_READ or STGM_READWRITE + +Returns: + + None + + """ + pass + + +class PyIInputObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,pmsg:'typing.Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + pmsg(typing.Any):Description for pmsg + +Returns: + + None + + """ + pass + + + def UIActivate(self,uState:'typing.Any') -> 'None': + """ + Description of UIActivate. + +Args: + + uState(typing.Any):Description for uState + +Returns: + + None + + """ + pass + + + def HasFocusIO(self,) -> 'None': + """ + Description of Refresh. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetBindInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetBindInfo(self,) -> 'None': + """ + Description of GetBindInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBindString(self,) -> 'None': + """ + Description of GetBindString. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetPriority(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetPriority(self,nPriority:'typing.Any') -> 'None': + """ + Description of SetPriority. + +Args: + + nPriority(typing.Any):Description for nPriority + +Returns: + + None + + """ + pass + + + def GetPriority(self,) -> 'None': + """ + Description of GetPriority. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocol(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,cb:'typing.Any') -> 'None': + """ + Description of Read. + +Args: + + cb(typing.Any):Description for cb + +Returns: + + None + + """ + pass + + + def Seek(self,dlibMove:'LARGE_INTEGER',dwOrigin:'typing.Any') -> 'None': + """ + Description of Seek. + +Args: + + dlibMove(LARGE_INTEGER):Description for dlibMove + dwOrigin(typing.Any):Description for dwOrigin + +Returns: + + None + + """ + pass + + + def LockRequest(self,dwOptions:'typing.Any') -> 'None': + """ + Description of LockRequest. + +Args: + + dwOptions(typing.Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def UnlockRequest(self,) -> 'None': + """ + Description of UnlockRequest. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocolInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseUrl(self,pwzUrl:'typing.Any',ParseAction:'typing.Any',dwParseFlags:'typing.Any',cchResult:'typing.Any',dwReserved:'typing.Any') -> 'None': + """ + Description of ParseUrl. + +Args: + + pwzUrl(typing.Any):Description for pwzUrl + ParseAction(typing.Any):Description for ParseAction + dwParseFlags(typing.Any):Description for dwParseFlags + cchResult(typing.Any):Description for cchResult + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def CombineUrl(self,pwzBaseUrl:'typing.Any',pwzRelativeUrl:'typing.Any',dwCombineFlags:'typing.Any',cchResult:'typing.Any',dwReserved:'typing.Any') -> 'None': + """ + Description of CombineUrl. + +Args: + + pwzBaseUrl(typing.Any):Description for pwzBaseUrl + pwzRelativeUrl(typing.Any):Description for pwzRelativeUrl + dwCombineFlags(typing.Any):Description for dwCombineFlags + cchResult(typing.Any):Description for cchResult + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def CompareUrl(self,pwzUrl1:'typing.Any',pwzUrl2:'typing.Any',dwCompareFlags:'typing.Any') -> 'None': + """ + Description of CompareUrl. + +Args: + + pwzUrl1(typing.Any):Description for pwzUrl1 + pwzUrl2(typing.Any):Description for pwzUrl2 + dwCompareFlags(typing.Any):Description for dwCompareFlags + +Returns: + + None + + """ + pass + + + def QueryInfo(self,pwzUrl:'typing.Any',OueryOption:'typing.Any',dwQueryFlags:'typing.Any',cbBuffer:'typing.Any',dwReserved:'typing.Any') -> 'typing.Any': + """ + Description of QueryInfo. + +Args: + + pwzUrl(typing.Any):Description for pwzUrl + OueryOption(typing.Any):Description for OueryOption + dwQueryFlags(typing.Any):Description for dwQueryFlags + cbBuffer(typing.Any):Description for cbBuffer + dwReserved(typing.Any):Description for dwReservedCommentsIf the buffer size is the size of an integer, an integer will be returned, otherwise a string. + +Returns: + + typing.Any + + """ + pass + + +class PyIInternetProtocolRoot(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Start(self,szUrl:'typing.Any',pOIProtSink:'PyIInternetProtocolSink',pOIBindInfo:'PyIInternetBindInfo',grfPI:'typing.Any',dwReserved:'typing.Any') -> 'None': + """ + Description of Start. + +Args: + + szUrl(typing.Any):Description for szUrl + pOIProtSink(PyIInternetProtocolSink):Description for pOIProtSink + pOIBindInfo(PyIInternetBindInfo):Description for pOIBindInfo + grfPI(typing.Any):Description for grfPI + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def Continue(self,) -> 'None': + """ + Description of Continue. + +Args: + + + +Returns: + + None + + """ + pass + + + def Abort(self,hrReason:'typing.Any',dwOptions:'typing.Any') -> 'None': + """ + Description of Abort. + +Args: + + hrReason(typing.Any):Description for hrReason + dwOptions(typing.Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def Terminate(self,dwOptions:'typing.Any') -> 'None': + """ + Description of Terminate. + +Args: + + dwOptions(typing.Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def Suspend(self,) -> 'None': + """ + Description of Suspend. + +Args: + + + +Returns: + + None + + """ + pass + + + def Resume(self,) -> 'None': + """ + Description of Resume. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocolSink(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Switch(self,) -> 'None': + """ + Description of Switch. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReportProgress(self,ulStatusCode:'typing.Any',szStatusText:'typing.Any') -> 'None': + """ + Description of ReportProgress. + +Args: + + ulStatusCode(typing.Any):Description for ulStatusCode + szStatusText(typing.Any):Description for szStatusText + +Returns: + + None + + """ + pass + + + def ReportData(self,grfBSCF:'typing.Any',ulProgress:'typing.Any',ulProgressMax:'typing.Any') -> 'None': + """ + Description of ReportData. + +Args: + + grfBSCF(typing.Any):Description for grfBSCF + ulProgress(typing.Any):Description for ulProgress + ulProgressMax(typing.Any):Description for ulProgressMax + +Returns: + + None + + """ + pass + + + def ReportResult(self,hrResult:'typing.Any',dwError:'typing.Any',szResult:'typing.Any') -> 'None': + """ + Description of ReportResult. + +Args: + + hrResult(typing.Any):Description for hrResult + dwError(typing.Any):Description for dwError + szResult(typing.Any):Description for szResult + +Returns: + + None + + """ + pass + + +class PyIInternetSecurityManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSecuritySite(self,pSite:'typing.Any') -> 'None': + """ + Description of SetSecuritySite. + +Args: + + pSite(typing.Any):Description for pSite + +Returns: + + None + + """ + pass + + + def GetSecuritySite(self,) -> 'None': + """ + Description of GetSecuritySite. + +Args: + + + +Returns: + + None + + """ + pass + + + def MapUrlToZone(self,pwszUrl:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of MapUrlToZone. + +Args: + + pwszUrl(typing.Any):Description for pwszUrl + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetSecurityId(self,pwszUrl:'typing.Any',pcbSecurityId:'typing.Any') -> 'None': + """ + Description of GetSecurityId. + +Args: + + pwszUrl(typing.Any):Description for pwszUrl + pcbSecurityId(typing.Any):Description for pcbSecurityId + +Returns: + + None + + """ + pass + + + def ProcessUrlAction(self,pwszUrl:'typing.Any',dwAction:'typing.Any',context:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of ProcessUrlAction. + +Args: + + pwszUrl(typing.Any):Description for pwszUrl + dwAction(typing.Any):Description for dwAction + context(typing.Any): + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def SetZoneMapping(self,dwZone:'typing.Any',lpszPattern:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of SetZoneMapping. + +Args: + + dwZone(typing.Any):Description for dwZone + lpszPattern(typing.Any):Description for lpszPattern + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetZoneMappings(self,dwZone:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of GetZoneMappings. + +Args: + + dwZone(typing.Any):Description for dwZone + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + +class PyIKnownFolder(object): + """Interface representing a known folder that serves + +as a replacement for the numeric CSIDL definitions and API functions. + +Requires Vista or later.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetId(self,) -> 'PyIID': + """ + Returns the id of the folder + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetCategory(self,) -> 'typing.Any': + """ + Returns the category for a folder (shellcon.KF_CATEGORY_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetShellItem(self,riid:'PyIID',Flags:'typing.Any'=0) -> 'PyIShellItem': + """ + Returns a shell interface for the folder + +Args: + + riid(PyIID):The interface to return (IShellItem or IShellItem2) + Flags(typing.Any):Combination of shellcon.KF_FLAG_* values + +Returns: + + PyIShellItem + + """ + pass + + + def GetPath(self,Flags:'typing.Any'=0) -> 'typing.Any': + """ + Returns the path to the folder + +Args: + + Flags(typing.Any):Combination of shellcon.KF_FLAG_* flags controlling how the path is returned + +Returns: + + typing.Any + + """ + pass + + + def SetPath(self,Flags:'typing.Any',Path:'typing.Any') -> 'None': + """ + Changes the location of the folder + +Args: + + Flags(typing.Any):KF_FLAG_DONT_UNEXPAND, or 0 + Path(typing.Any):New path for known folder + +Returns: + + None + + """ + pass + + + def GetIDList(self,Flags:'typing.Any') -> 'PyIDL': + """ + Returns the folder's location as an item id list. + +Args: + + Flags(typing.Any):Combination of shellcon.KF_FLAG_* values that affect how the operation is performed + +Returns: + + PyIDL + + """ + pass + + + def GetFolderType(self,) -> 'PyIID': + """ + Returns the type of the folder + +Args: + + + +Returns: + + PyIID:PyIKnownFolder.GetFolderType +PyIID = GetFolderType()Returns the type of the folder +Return ValueReturns a folder type guid (shell.FOLDERTYPEID_*) + + + """ + pass + + + def GetRedirectionCapabilities(self,) -> 'typing.Any': + """ + Returns flags indicating how the folder can be redirected + +Args: + + + +Returns: + + typing.Any:PyIKnownFolder.GetRedirectionCapabilities + +int = GetRedirectionCapabilities()Returns flags indicating how the folder can be redirected +Return ValueCombination of shellcon.KF_REDIRECTION_CAPABILITIES_* flags + + + """ + pass + + + def GetFolderDefinition(self,) -> 'typing.Any': + """ + Retrieves detailed information about a known folder + +Args: + + + +Returns: + + typing.Any:PyIKnownFolder.GetFolderDefinition + +dict = GetFolderDefinition()Retrieves detailed information about a known folder +Return ValueReturns a dict containing info from a KNOWNFOLDER_DEFINITION struct + + + """ + pass + + +class PyIKnownFolderManager(object): + """Interface used to manage known folder definitions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def FolderIdFromCsidl(self,Csidl:'typing.Any') -> 'PyIID': + """ + Returns the folder id that corresponds to a CSIDL + +Args: + + Csidl(typing.Any):The legacy CSIDL identifying a folder + +Returns: + + PyIID + + """ + pass + + + def FolderIdToCsidl(self,_id:'PyIID') -> 'typing.Any': + """ + Returns the CSIDL equivalent of a known folder + +Args: + + _id(PyIID):A known folder id (shell.FOLDERID_*) + +Returns: + + typing.Any + + """ + pass + + + def GetFolderIds(self,) -> 'typing.Tuple[PyIID, ...]': + """ + Retrieves all known folder ids. + +Args: + + + +Returns: + + typing.Tuple[PyIID, ...] + + """ + pass + + + def GetFolder(self,_id:'PyIID') -> 'PyIKnownFolder': + """ + Returns a folder by its id. + +Args: + + _id(PyIID):A known folder id (shell.FOLDERID_*) + +Returns: + + PyIKnownFolder + + """ + pass + + + def GetFolderByName(self,Name:'typing.Any') -> 'PyIKnownFolder': + """ + Returns a folder by canonical name + +Args: + + Name(typing.Any):The nonlocalized name of a known folder + +Returns: + + PyIKnownFolder + + """ + pass + + + def RegisterFolder(self,_id:'PyIID',Definition:'typing.Any') -> 'None': + """ + Defines a new known folder + +Args: + + _id(PyIID):GUID used to identify the new known folder + Definition(typing.Any):Dictionary containing info to be placed in a KNOWNFOLDER_DEFINITION structCommentsPyIKnownFolder::GetFolderDefinition can be used to get a template dictionary + +Returns: + + None + + """ + pass + + + def UnregisterFolder(self,_id:'PyIID') -> 'None': + """ + Removes the definition of a known folder + +Args: + + _id(PyIID):GUID of a known folder to be unregistered + +Returns: + + None + + """ + pass + + + def FindFolderFromPath(self,Path:'typing.Any',Mode:'typing.Any') -> 'PyIKnownFolder': + """ + Retrieves a known folder by path + +Args: + + Path(typing.Any):Path of a folder + Mode(typing.Any):FFFP_EXACTMATCH or FFFP_NEARESTPARENTMATCH + +Returns: + + PyIKnownFolder + + """ + pass + + + def FindFolderFromIDList(self,pidl:'PyIDL') -> 'PyIKnownFolder': + """ + Retrieves a known folder using its item id + +list. + +Args: + + pidl(PyIDL):Item id list of the folder + +Returns: + + PyIKnownFolder + + """ + pass + + + def Redirect(self,_id:'PyIID',hwnd:'int',flags:'typing.Any',TargetPath:'typing.Any',Exclusion:'typing.Tuple[PyIID, ...]') -> 'None': + """ + Redirects a known folder to an alternate location + +Args: + + _id(PyIID):Id of the known folder to be redirected + hwnd(int):Handle of window to be used for user interaction + flags(typing.Any):Combination of KF_REDIRECT_* flags + TargetPath(typing.Any):Path to which the known folder will be redirected + Exclusion(typing.Tuple[PyIID, ...]):Sequence of known folder ids of subfolders to be excluded from redirection + +Returns: + + None + + """ + pass + + +class PyILockBytes(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ReadAt(self,ulOffset:'ULARGE_INTEGER',cb:'typing.Any') -> 'str': + """ + Reads a specified number of bytes starting at a specified offset from the + +beginning of the byte array object. + +Args: + + ulOffset(ULARGE_INTEGER):Offset to start reading + cb(typing.Any):Number of bytes to readCommentsThe result is a binary buffer returned in a string. + +Returns: + + str + + """ + pass + + + def WriteAt(self,ulOffset:'ULARGE_INTEGER',data:'str') -> 'typing.Any': + """ + Writes the specified number of bytes starting at a specified offset from the + +beginning of the byte array. + +Args: + + ulOffset(ULARGE_INTEGER):Offset to write at. + data(str):Data to writeReturn ValueThe result is the number of bytes actually written. + +Returns: + + typing.Any:Data to writeReturn ValueThe result is the number of bytes actually written. + + + """ + pass + + + def Flush(self,) -> 'None': + """ + Ensures that any internal buffers maintained by the byte array object are written out + +to the backing storage. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSize(self,cb:'ULARGE_INTEGER') -> 'None': + """ + Changes the size of the byte array. + +Args: + + cb(ULARGE_INTEGER):The new size. + +Returns: + + None + + """ + pass + + + def LockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'typing.Any') -> 'None': + """ + Restricts access to a specified range of bytes in the byte array. + +Args: + + libOffset(ULARGE_INTEGER):The beginning of the region to lock. + cb(ULARGE_INTEGER):The number of bytes to lock. + dwLockType(typing.Any):Specifies the restrictions being requested on accessing the range. + +Returns: + + None + + """ + pass + + + def UnlockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'typing.Any') -> 'None': + """ + None + +Args: + + libOffset(ULARGE_INTEGER):The beginning of the region to unlock. + cb(ULARGE_INTEGER):The number of bytes to lock. + dwLockType(typing.Any):Specifies the restrictions being requested on accessing the range. + +Returns: + + None + + """ + pass + + + def Stat(self,grfStatFlag:'typing.Any') -> 'STATSTG': + """ + None + +Args: + + grfStatFlag(typing.Any):Specifies that this method does not return some of the fields in the STATSTG structure, thus saving a memory allocation operation. Values are taken from the STATFLAG enumerationg + +Returns: + + STATSTG + + """ + pass + + +class PyIMAPIContainer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens an object and returns an interface object for further access. + +Args: + + entryId(str):The EntryID to open. + iid(PyIID):The IID of the returned interface, or None for the default interface. + flags(typing.Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) + +Returns: + + typing.Any + + """ + pass + + + def GetContentsTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Returns an object representing the container's contents table. + +Args: + + flags(typing.Any):The flags to use. + +Returns: + + PyIMAPITable + + """ + pass + + + def GetHierarchyTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Returns an object representing the container's hierarchy table. + +Args: + + flags(typing.Any):The flags to use. + +Returns: + + PyIMAPITable + + """ + pass + + +class PyIMAPIFolder(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def CreateFolder(self,folderType:'typing.Any',folderName:'str',folderComment:'str'=None,iid:'PyIID'=None,flags:'typing.Any'=0) -> 'PyIMAPIFolder': + """ + Creates a folder object. + +Args: + + folderType(typing.Any):The type of folder to create + folderName(str):The name of the folder. + folderComment(str):A comment for the folder or None + iid(PyIID):The IID of the object to return. Should usually be None. + flags(typing.Any): + +Returns: + + PyIMAPIFolder + + """ + pass + + + def CreateMessage(self,iid:'PyIID',flags:'typing.Any') -> 'PyIMessage': + """ + Creates a message in a folder + +Args: + + iid(PyIID):The IID of the object to return. Should usually be None. + flags(typing.Any): + +Returns: + + PyIMessage + + """ + pass + + + def CopyMessages(self,msgs:'PySBinaryArray',iid:'PyIID',folder:'PyIMAPIFolder',ulUIParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Copies the specified messages + +Args: + + msgs(PySBinaryArray): + iid(PyIID):IID representing the interface to be used to access the destination folder. Should usually be None. + folder(PyIMAPIFolder):The destination folder + ulUIParam(typing.Any):Handle of the parent window for any dialog boxes or windows this method displays. + progress(typing.Any):A progress object, or None + flags(typing.Any):A bitmask ofMaskDescriptionMAPI_DECLINE_OKInforms the message store provider to immediately return MAPI_E_DECLINE_COPY if it implements CopyMessage by calling the support object's IMAPISupport::DoCopyTo or IMAPISupport::DoCopyProps method.MESSAGE_DIALOGDisplays a progress indicator as the operation proceeds.MESSAGE_MOVEThe message or messages are to be moved rather than copied. If MESSAGE_MOVE is not set, the messages are copied. + +Returns: + + typing.Any + + """ + pass + + + def DeleteFolder(self,entryId:'str',uiParam:'typing.Any',progress:'typing.Any') -> 'None': + """ + Deletes a subfolder. + +Args: + + entryId(str):The EntryID of the subfolder to delete. + uiParam(typing.Any):Handle of the parent window of the progress indicator. + progress(typing.Any):A progress object, or None + +Returns: + + None + + """ + pass + + + def DeleteMessages(self,msgs:'PySBinaryArray',uiParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Deletes the specified messages. + +Args: + + msgs(PySBinaryArray): + uiParam(typing.Any):A HWND for the progress + progress(typing.Any):A progress object, or None + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def EmptyFolder(self,uiParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + deletes all messages and subfolders from a folder without deleting the folder itself. + +Args: + + uiParam(typing.Any):A HWND for the progress + progress(typing.Any):A progress object, or None + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def SetReadFlags(self,msgs:'PySBinaryArray',uiParam:'typing.Any',progress:'typing.Any',flag:'typing.Any') -> 'None': + """ + Sets or clears the MSGFLAG_READ flag in the PR_MESSAGE_FLAGS (PidTagMessageFlags) property of one or more of the folder's messages, and manages the sending of read reports. + +Args: + + msgs(PySBinaryArray): + uiParam(typing.Any):A HWND for the progress + progress(typing.Any):A progress object, or None + flag(typing.Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. + +Returns: + + None + + """ + pass + + +class PyIMAPIProp(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetProps(self,propList:'PySPropTagArray',flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Returns a list of property values. + +Args: + + propList(PySPropTagArray):The list of properties + flags(typing.Any): + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def DeleteProps(self,propList:'PySPropTagArray',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Deletes a set of properties. + +Args: + + propList(PySPropTagArray):The list of properties + wantProblems(typing.Any):Return detailed error information + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def SetProps(self,propList:'typing.Tuple[typing.Any, typing.Any]',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Sets a set of properties. + +Args: + + propList(typing.Tuple[typing.Any, typing.Any]):The list of properties + wantProblems(typing.Any):Return detailed error information + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def CopyTo(self,IIDExcludeList:'typing.Tuple[typing.Any, typing.Any]',propTags:'PySPropTagArray',uiParam:'typing.Any',progress:'typing.Any',resultIID:'PyIID',dest:'PyIMAPIProp',flags:'typing.Any',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Copies an object to another + +Args: + + IIDExcludeList(typing.Tuple[typing.Any, typing.Any]):A sequence of IIDs to exclude. + propTags(PySPropTagArray):The property tags to exclude. + uiParam(typing.Any):Handle to the parent window of the progress object + progress(typing.Any):Reserved - must pass None + resultIID(PyIID):IID of the destination object + dest(PyIMAPIProp):The destination object + flags(typing.Any):flags + wantProblems(typing.Any):Return detailed error information + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def CopyProps(self,propTags:'PySPropTagArray',uiParam:'typing.Any',progress:'typing.Any',resultIID:'PyIID',dest:'PyIMAPIProp',flags:'typing.Any',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Copies a set of properties to another object + +Args: + + propTags(PySPropTagArray):The property tags to copy + uiParam(typing.Any):Handle to the parent window of the progress object + progress(typing.Any):Reserved - must pass None + resultIID(PyIID):IID of the destination object + dest(PyIMAPIProp):The destination object + flags(typing.Any):flags + wantProblems(typing.Any):Return detailed error information + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def OpenProperty(self,propTag:'typing.Any',iid:'PyIID',interfaceOptions:'typing.Any',flags:'typing.Any') -> 'PyIUnknown': + """ + Returns an interface object to be used to access a property. + +Args: + + propTag(typing.Any):The property tag to open + iid(PyIID):The IID of the resulting interface. + interfaceOptions(typing.Any):Data that relates to the interface identified by the lpiid parameter. + flags(typing.Any):flags + +Returns: + + PyIUnknown + + """ + pass + + + def GetIDsFromNames(self,nameIds:'PyMAPINAMEIDArray',flags:'typing.Any'=0) -> 'PySPropTagArray': + """ + Determines property IDs + +Args: + + nameIds(PyMAPINAMEIDArray):Sequence of name ids + flags(typing.Any): + +Returns: + + PySPropTagArray + + """ + pass + + + def GetNamesFromIDs(self,propTags:'PySPropTagArray',propSetGuid:'PyIID'=None,flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PySPropTagArray, PyMAPINAMEIDArray]': + """ + Determines property names + +Args: + + propTags(PySPropTagArray):Sequence of property tags, or None + propSetGuid(PyIID):a globally unique identifier, identifying a property set, or None + flags(typing.Any): + +Returns: + + typing.Tuple[typing.Any, PySPropTagArray, PyMAPINAMEIDArray] + + """ + pass + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def SaveChanges(self,flags:'typing.Any') -> 'None': + """ + Saves pending changes to the object + +Args: + + flags(typing.Any):flags + +Returns: + + None + + """ + pass + + + def GetPropList(self,flags:'typing.Any') -> 'PySPropTagArray': + """ + Gets a list of properties + +Args: + + flags(typing.Any):flags + +Returns: + + PySPropTagArray + + """ + pass + + +class PyIMAPISession(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens an object and returns an interface object for further access. + +Args: + + entryId(str):The EntryID to open. + iid(PyIID):The IID of the returned interface, or None for the default interface. + flags(typing.Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) + +Returns: + + typing.Any + + """ + pass + + + def OpenMsgStore(self,uiParam:'typing.Any',entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'PyIUnknown': + """ + Opens a message store. + +Args: + + uiParam(typing.Any):Handle to the parent window for dialogs. + entryId(str):The entry ID of the message store to open. + iid(PyIID):The IID of the interface returned, or None + flags(typing.Any):Options for the call.CommentsThe result is the interface specified by the IID, or IID_IMsgStore if None is used. + +Returns: + + PyIUnknown + + """ + pass + + + def QueryIdentity(self,) -> 'str': + """ + Returns the entry identifier of the object that provides the primary identity for the session. + +Args: + + + +Returns: + + str + + """ + pass + + + def Advise(self,entryId:'str',mask:'typing.Any',sink:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + entryId(str):The entryID of the object + mask(typing.Any): + sink(typing.Any):Return ValueThe result is an integer which should be passed to PyIMAPISession::Unadvise + +Returns: + + typing.Any:Return ValueThe result is an integer which should be passed to + +PyIMAPISession::Unadvise + + + """ + pass + + + def Unadvise(self,connection:'typing.Any') -> 'None': + """ + None + +Args: + + connection(typing.Any):Value returned from PyIMAPISession::Advise + +Returns: + + None + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + typing.Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def GetMsgStoresTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Provides access to the message store table - a table with information about all of the message stores in the session profile. + +Args: + + flags(typing.Any):Flags that control the opening. + +Returns: + + PyIMAPITable + + """ + pass + + + def GetStatusTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Provides access to the status table - a table with information about all of the MAPI resources in the session. + +Args: + + flags(typing.Any):Flags that control the opening. + +Returns: + + PyIMAPITable + + """ + pass + + + def Logoff(self,uiParm:'typing.Any',flags:'typing.Any',reserved:'typing.Any') -> 'None': + """ + Ends a MAPI session. + +Args: + + uiParm(typing.Any):hwnd of a dialog is to be displayed. + flags(typing.Any):Bitmask of flags that control the logoff operation. + reserved(typing.Any):Reserved; must be zero. + +Returns: + + None + + """ + pass + + + def OpenAddressBook(self,uiParm:'typing.Any',iid:'PyIID',flags:'typing.Any') -> 'PyIAddrBook': + """ + Opens the integrated address book. + +Args: + + uiParm(typing.Any):hwnd of a dialog is to be displayed. + iid(PyIID):The IID of the interface, or None. + flags(typing.Any):Flags that control the opening - AB_NO_DIALOG. + +Returns: + + PyIAddrBook + + """ + pass + + + def OpenProfileSection(self,iidSection:'PyIID',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens a section of the current profile and returns an object for futher access + +Args: + + iidSection(PyIID):The MAPIIID of the profile section + iid(PyIID):The IID of the interface, or None. + flags(typing.Any):Flags that control the opening. + +Returns: + + typing.Any + + """ + pass + + + def AdminServices(self,flags:'typing.Any'=0) -> 'PyIMsgServiceAdmin': + """ + Provides access to a message service administration object for making changes to the message services. + +Args: + + flags(typing.Any):reserved; must be zero. + +Returns: + + PyIMsgServiceAdmin + + """ + pass + + +class PyIMAPIStatus(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ChangePassword(self,oldPassword:'typing.Any',newPassword:'typing.Any',ulFlags:'typing.Any') -> 'None': + """ + None + +Args: + + oldPassword(typing.Any): + newPassword(typing.Any): + ulFlags(typing.Any): + +Returns: + + None + + """ + pass + + + def SettingsDialog(self,ulUIParam:'typing.Any',ulFlags:'typing.Any') -> 'None': + """ + None + +Args: + + ulUIParam(typing.Any): + ulFlags(typing.Any): + +Returns: + + None + + """ + pass + + + def ValidateState(self,ulUIParam:'typing.Any',ulFlags:'typing.Any') -> 'None': + """ + None + +Args: + + ulUIParam(typing.Any): + ulFlags(typing.Any): + +Returns: + + None + + """ + pass + + + def FlushQueues(self,ulUIParam:'typing.Any',transport:'str',ulFlags:'typing.Any') -> 'None': + """ + None + +Args: + + ulUIParam(typing.Any): + transport(str):Blob of data + ulFlags(typing.Any): + +Returns: + + None + + """ + pass + + +class PyIMAPITable(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def Advise(self,eventMask:'typing.Any',adviseSink:'typing.Any') -> 'typing.Any': + """ + Registers to receive notification of specified events affecting the table. + +Args: + + eventMask(typing.Any): + adviseSink(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def SeekRow(self,bookmark:'typing.Any',rowCount:'typing.Any') -> 'typing.Any': + """ + Moves the cursor to a specific position in the table. + +Args: + + bookmark(typing.Any):The bookmark. + rowCount(typing.Any):Return ValueThe result is the number of rows processed. + +Returns: + + typing.Any:Return ValueThe result is the number of rows processed. + + + """ + pass + + + def SeekRowApprox(self,numerator:'typing.Any',denominator:'typing.Any') -> 'None': + """ + Moves the cursor to an approximate fractional position in the table. + +Args: + + numerator(typing.Any):The numerator of the fraction representing the table position + denominator(typing.Any):The denominator of the fraction representing the table position. This must not be zero. + +Returns: + + None + + """ + pass + + + def GetRowCount(self,flags:'typing.Any') -> 'typing.Any': + """ + Returns the total number of rows in the table. + +Args: + + flags(typing.Any):Reserved - must be zero + +Returns: + + typing.Any + + """ + pass + + + def QueryRows(self,rowCount:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns one or more rows from a table, beginning at the current cursor position. + +Args: + + rowCount(typing.Any):Number of rows to retrieve + flags(typing.Any):Flags. + +Returns: + + typing.Any + + """ + pass + + + def SetColumns(self,propTags:'typing.Any',flags:'typing.Any') -> 'None': + """ + Defines the particular properties and order of properties to appear as columns in the table. + +Args: + + propTags(typing.Any):Sequence of property tags identifying properties to be included as columns in the table. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Returns the table's status and type. + +Args: + + + +Returns: + + None:PyIMAPITable.GetStatus +GetStatus()Returns the table's status and type. +Return ValueResult is a tuple of (tableStatus, tableType) + + + """ + pass + + + def QueryPosition(self,) -> 'None': + """ + Retrieves the current table row position of the cursor, based on a fractional value. + +Args: + + + +Returns: + + None:PyIMAPITable.QueryPosition +QueryPosition()Retrieves the current table row position of the cursor, based on a fractional value. +Return ValueResult is a tuple of (row, numerator, denominator) + + + """ + pass + + + def QueryColumns(self,flags:'typing.Any') -> 'typing.Any': + """ + Returns a list of columns for the table. + +Args: + + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def Abort(self,) -> 'None': + """ + Stops any asynchronous operations currently in progress for the table. + +Args: + + + +Returns: + + None + + """ + pass + + + def FreeBookmark(self,bookmark:'typing.Any') -> 'None': + """ + Releases the memory associated with a bookmark. + +Args: + + bookmark(typing.Any): + +Returns: + + None + + """ + pass + + + def CreateBookmark(self,) -> 'typing.Any': + """ + Marks the table's current position. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Restrict(self,restriction:'PySRestriction',flags:'typing.Any') -> 'None': + """ + Applies a filter to a table, reducing the row set to only those rows matching the specified criteria. + +Args: + + restriction(PySRestriction): + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def FindRow(self,restriction:'PySRestriction',bookmarkOrigin:'typing.Any',flags:'typing.Any') -> 'None': + """ + Finds the next row in a table that matches specific search criteria. + +Args: + + restriction(PySRestriction): + bookmarkOrigin(typing.Any): + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def SortTable(self,sortOrderSet:'PySSortOrderSet',flags:'typing.Any') -> 'None': + """ + Orders the rows of the table based on sort criteria. + +Args: + + sortOrderSet(PySSortOrderSet): + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def Unadvise(self,handle:'typing.Any') -> 'None': + """ + Cancels the sending of notifications previously set up with a call to the IMAPITable::Advise method. + +Args: + + handle(typing.Any):Handle returned from PyIMAPITable::Advise + +Returns: + + None + + """ + pass + + +class PyIMachineDebugManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddApplication(self,pda:'PyIRemoteDebugApplication') -> 'None': + """ + Description of AddApplication. + +Args: + + pda(PyIRemoteDebugApplication):Description for pda + +Returns: + + None + + """ + pass + + + def RemoveApplication(self,dwAppCookie:'typing.Any') -> 'None': + """ + Description of RemoveApplication. + +Args: + + dwAppCookie(typing.Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def EnumApplications(self,) -> 'None': + """ + Description of EnumApplications. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIMachineDebugManagerEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onAddApplication(self,pda:'PyIRemoteDebugApplication',dwAppCookie:'typing.Any') -> 'None': + """ + Description of onAddApplication. + +Args: + + pda(PyIRemoteDebugApplication):Description for pda + dwAppCookie(typing.Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def onRemoveApplication(self,pda:'PyIRemoteDebugApplication',dwAppCookie:'typing.Any') -> 'None': + """ + Description of onRemoveApplication. + +Args: + + pda(PyIRemoteDebugApplication):Description for pda + dwAppCookie(typing.Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + +class PyIMessage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetReadFlag(self,flag:'typing.Any') -> 'None': + """ + Sets the read flags for a message + +Args: + + flag(typing.Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. + +Returns: + + None + + """ + pass + + + def GetAttachmentTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Returns the message's attachment table. + +Args: + + flags(typing.Any):Bitmask of flags that relate to the creation of the table. + +Returns: + + PyIMAPITable + + """ + pass + + + def OpenAttach(self,attachmentNum:'typing.Any',interface:'PyIID',flags:'typing.Any') -> 'PyIAttach': + """ + Opens an attachment + +Args: + + attachmentNum(typing.Any): + interface(PyIID):The interface to use, or None + flags(typing.Any):Bitmask of flags that controls how the attachment is opened. + +Returns: + + PyIAttach + + """ + pass + + + def CreateAttach(self,interface:'PyIID',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIAttach]': + """ + Creates an attachment + +Args: + + interface(PyIID):The interface to use, or None + flags(typing.Any):Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) + +Returns: + + typing.Tuple[typing.Any, PyIAttach]:Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) + + + """ + pass + + + def DeleteAttach(self,attachmentNum:'typing.Any',ulUIParam:'typing.Any',interface:'typing.Any',flags:'typing.Any') -> 'None': + """ + Deletes an attachment + +Args: + + attachmentNum(typing.Any): + ulUIParam(typing.Any): + interface(typing.Any):The interface to use, or None + flags(typing.Any):Bitmask of flags that controls the display of a user interface. + +Returns: + + None + + """ + pass + + + def ModifyRecipients(self,flags:'typing.Any',mods:'typing.Any') -> 'None': + """ + adds, deletes, or modifies message recipients. + +Args: + + flags(typing.Any):Bitmask of flags that controls the recipient changes. If zero is passed for the ulFlags parameter, ModifyRecipients replaces all existing recipients with the recipient list in the mods parameter. + mods(typing.Any):The list of recipients. + +Returns: + + None + + """ + pass + + + def GetRecipientTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Returns the message's recipient table. + +Args: + + flags(typing.Any):Bitmask of flags that relate to the creation of the table. + +Returns: + + PyIMAPITable + + """ + pass + + + def SubmitMessage(self,flags:'typing.Any') -> 'None': + """ + Saves all of the message's properties and marks the message as ready to be sent. + +Args: + + flags(typing.Any):Flags which specify how the message is submitted. + +Returns: + + None + + """ + pass + + +class PyIMoniker(object): + """A Python interface to IMoniker""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToObject(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker',iidResult:'typing.Any') -> 'PyIUnknown': + """ + Uses the moniker to bind to the object it identifies. + +Args: + + bindCtx(PyIBindCtx):bind context object to be used. + moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None + iidResult(typing.Any):IID of the result object. + +Returns: + + PyIUnknown + + """ + pass + + + def BindToStorage(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker',iidResult:'typing.Any') -> 'PyIUnknown': + """ + Retrieves an interface object to the storage that contains the + +object identified by the moniker. + +Args: + + bindCtx(PyIBindCtx):bind context object to be used. + moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None + iidResult(typing.Any):IID of the result object. + +Returns: + + PyIUnknown + + """ + pass + + + def GetDisplayName(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker') -> 'str': + """ + Gets the display name , which is a user-readable representation of this + +moniker. + +Args: + + bindCtx(PyIBindCtx):bind context object to be used. + moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None + +Returns: + + str + + """ + pass + + + def ComposeWith(self,mkRight:'PyIMoniker',fOnlyIfNotGeneric:'typing.Any') -> 'PyIMoniker': + """ + Combines the current moniker with another moniker, creating a new + +composite moniker. + +Args: + + mkRight(PyIMoniker):The IMoniker interface on the moniker to compose onto the end of this moniker. + fOnlyIfNotGeneric(typing.Any):If TRUE, the caller requires a non-generic composition, so the operation should proceed only if pmkRight is a moniker class that this moniker can compose with in some way other than forming a generic composite. If FALSE, the method can create a generic composite if necessary. + +Returns: + + PyIMoniker + + """ + pass + + + def Enum(self,fForward:'typing.Any'=True) -> 'PyIEnumMoniker': + """ + Supplies an enumerator that can enumerate the components of a composite + +moniker. + +Args: + + fForward(typing.Any):If TRUE, enumerates the monikers from left to right. If FALSE, enumerates from right to left. + +Returns: + + PyIEnumMoniker + + """ + pass + + + def IsEqual(self,other:'PyIMoniker') -> 'typing.Any': + """ + Compares this moniker with a specified moniker and indicates whether they are + +identical. + +Args: + + other(PyIMoniker):The moniker to compare + +Returns: + + typing.Any + + """ + pass + + + def IsSystemMoniker(self,) -> 'typing.Any': + """ + Indicates whether this moniker is of one of the system-supplied moniker + +classes. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Hash(self,) -> 'typing.Any': + """ + Calculates a 32-bit integer using the internal state of the moniker. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIMsgServiceAdmin(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def CreateMsgService(self,serviceName:'str',displayName:'str',flags:'typing.Any',uiParam:'typing.Any'=0) -> 'None': + """ + Creates a message service. + +Args: + + serviceName(str):The name of the service. + displayName(str):Display name of the service, or None + flags(typing.Any):A bitmask of flags that controls how the message service is installed. + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + +Returns: + + None + + """ + pass + + + def ConfigureMsgService(self,iid:'PyIID',ulUIParam:'typing.Any',ulFlags:'typing.Any',arg:'typing.List[typing.Any]') -> 'None': + """ + Reconfigures a message service. + +Args: + + iid(PyIID):The unique identifier for the message service to configure. + ulUIParam(typing.Any):Handle of the parent window for the configuration property sheet. + ulFlags(typing.Any):Bitmask of flags that controls the display of the property sheet. + arg(typing.List[typing.Any]):Property values describing the properties to display in the property sheet. Should not be None if the service is to be configured without a message service. + +Returns: + + None + + """ + pass + + + def GetMsgServiceTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Retrieves a table of services. + +Args: + + flags(typing.Any): + +Returns: + + PyIMAPITable + + """ + pass + + + def GetProviderTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Retrieves a table of service providers. + +Args: + + flags(typing.Any): + +Returns: + + PyIMAPITable + + """ + pass + + + def DeleteMsgService(self,uuid:'PyIID') -> 'None': + """ + Deletes the specified service + +Args: + + uuid(PyIID):The ID of the service + +Returns: + + None + + """ + pass + + + def RenameMsgService(self,uuid:'PyIID',flags:'typing.Any',newName:'str') -> 'None': + """ + Renames the specified service + +Args: + + uuid(PyIID):The ID of the service + flags(typing.Any): + newName(str):The new name for the service.CommentsThis is deprecated, and there is no replacement referenced to use instead. + +Returns: + + None + + """ + pass + + + def OpenProfileSection(self,uuid:'PyIID',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens a profile section + +Args: + + uuid(PyIID):The ID of the service + iid(PyIID):The IID of the resulting object, or None for the default + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def AdminProviders(self,uuid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Returns an object providing access + +to a provider administration object. + +Args: + + uuid(PyIID):The ID of the service + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +class PyIMsgStore(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens a folder or message and returns an interface object for further access. + +Args: + + entryId(str):The entryID of the object + iid(PyIID):The IID of the object to return, or None for the default IID + flags(typing.Any):Bitmask of flags that controls how the object is opened. + +Returns: + + typing.Any + + """ + pass + + + def GetReceiveFolder(self,messageClass:'str'=None,flags:'typing.Any'=0) -> 'typing.Tuple[PyIID, str]': + """ + Obtains the folder that was established as the destination for incoming messages of a specified message class or the default receive folder for the message store. + +Args: + + messageClass(str):Message class that is associated with a receive folder. If this parameter is set to None or an empty string, GetReceiveFolder returns the default receive folder for the message store. + flags(typing.Any): + +Returns: + + typing.Tuple[PyIID, str] + + """ + pass + + + def GetReceiveFolderTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + provides access to the receive folder table, a table that includes information about all of the receive folders for the message store. + +Args: + + flags(typing.Any):Bitmask of flags that controls table access + +Returns: + + PyIMAPITable + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + typing.Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def AbortSubmit(self,entryId:'str',flags:'typing.Any'=0) -> 'typing.Any': + """ + Attempts to remove a message from the outgoing queue. + +Args: + + entryId(str):The entry ID of the item to be aborted. + flags(typing.Any):Reserved - must be zero. + +Returns: + + typing.Any + + """ + pass + + + def Advise(self,entryId:'str',eventMask:'typing.Any',adviseSink:'typing.Any') -> 'None': + """ + Registers to receive notification of specified events that affect the message store. + +Args: + + entryId(str):entry identifier of the folder or message about which notifications should be generated, or None + eventMask(typing.Any):A mask of values that indicate the types of notification events. + adviseSink(typing.Any):An advise sink. + +Returns: + + None + + """ + pass + + + def Unadvise(self,connection:'typing.Any') -> 'None': + """ + Cancels the sending of notifications previously set up with a call to the IMsgStore::Advise method. + +Args: + + connection(typing.Any):Connection number returned from PyIMsgStore::Advise + +Returns: + + None + + """ + pass + + +class PyINameSpaceTreeControl(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,hwndParent:'typing.Union[typing.Any]',prc:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',nsctsFlags:'typing.Any') -> 'None': + """ + Description of Initialize. + +Args: + + hwndParent(typing.Union[typing.Any]):Description for hwndParent + prc(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prc + nsctsFlags(typing.Any):Description for nsctsFlags + +Returns: + + None + + """ + pass + + + def TreeAdvise(self,punk:'PyIUnknown') -> 'None': + """ + Description of TreeAdvise. + +Args: + + punk(PyIUnknown):Description for punk + +Returns: + + None + + """ + pass + + + def TreeUnadvise(self,dwCookie:'typing.Any') -> 'None': + """ + Description of TreeUnadvise. + +Args: + + dwCookie(typing.Any):Description for dwCookie + +Returns: + + None + + """ + pass + + + def AppendRoot(self,psiRoot:'PyIShellItem',grfEnumFlags:'typing.Any',grfRootStyle:'typing.Any',pif:'typing.Any') -> 'None': + """ + Description of AppendRoot. + +Args: + + psiRoot(PyIShellItem):Description for psiRoot + grfEnumFlags(typing.Any):Description for grfEnumFlags + grfRootStyle(typing.Any):Description for grfRootStyle + pif(typing.Any):Description for pif + +Returns: + + None + + """ + pass + + + def InsertRoot(self,iIndex:'typing.Any',psiRoot:'PyIShellItem',grfEnumFlags:'typing.Any',grfRootStyle:'typing.Any',pif:'typing.Any') -> 'None': + """ + Description of InsertRoot. + +Args: + + iIndex(typing.Any):Description for iIndex + psiRoot(PyIShellItem):Description for psiRoot + grfEnumFlags(typing.Any):Description for grfEnumFlags + grfRootStyle(typing.Any):Description for grfRootStyle + pif(typing.Any):Description for pif + +Returns: + + None + + """ + pass + + + def RemoveRoot(self,psiRoot:'PyIShellItem') -> 'None': + """ + Description of RemoveRoot. + +Args: + + psiRoot(PyIShellItem):Description for psiRoot + +Returns: + + None + + """ + pass + + + def RemoveAllRoots(self,) -> 'None': + """ + Description of RemoveAllRoots. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootItems(self,) -> 'None': + """ + Description of GetRootItems. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetItemState(self,psi:'PyIShellItem',nstcisMask:'typing.Any',nstcisFlags:'typing.Any') -> 'None': + """ + Description of SetItemState. + +Args: + + psi(PyIShellItem):Description for psi + nstcisMask(typing.Any):Description for nstcisMask + nstcisFlags(typing.Any):Description for nstcisFlags + +Returns: + + None + + """ + pass + + + def GetItemState(self,psi:'PyIShellItem',nstcisMask:'typing.Any') -> 'None': + """ + Description of GetItemState. + +Args: + + psi(PyIShellItem):Description for psi + nstcisMask(typing.Any):Description for nstcisMask + +Returns: + + None + + """ + pass + + + def GetSelectedItems(self,) -> 'None': + """ + Description of GetSelectedItems. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetItemCustomState(self,psi:'PyIShellItem') -> 'None': + """ + Description of GetItemCustomState. + +Args: + + psi(PyIShellItem):Description for psi + +Returns: + + None + + """ + pass + + + def SetItemCustomState(self,psi:'PyIShellItem',iStateNumber:'typing.Any') -> 'None': + """ + Description of SetItemCustomState. + +Args: + + psi(PyIShellItem):Description for psi + iStateNumber(typing.Any):Description for iStateNumber + +Returns: + + None + + """ + pass + + + def EnsureItemVisible(self,psi:'PyIShellItem') -> 'None': + """ + Description of EnsureItemVisible. + +Args: + + psi(PyIShellItem):Description for psi + +Returns: + + None + + """ + pass + + + def SetTheme(self,pszTheme:'typing.Any') -> 'None': + """ + Description of SetTheme. + +Args: + + pszTheme(typing.Any):Description for pszTheme + +Returns: + + None + + """ + pass + + + def GetNextItem(self,psi:'PyIShellItem',nstcgi:'typing.Any') -> 'None': + """ + Description of GetNextItem. + +Args: + + psi(PyIShellItem):Description for psi + nstcgi(typing.Any):Description for nstcgi + +Returns: + + None + + """ + pass + + + def HitTest(self,pt:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Description of HitTest. + +Args: + + pt(typing.Tuple[typing.Any, typing.Any]):Description for ppt + +Returns: + + None + + """ + pass + + + def GetItemRect(self,) -> 'None': + """ + Description of GetItemRect. + +Args: + + + +Returns: + + None + + """ + pass + + + def CollapseAll(self,) -> 'None': + """ + Description of CollapseAll. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyINamedPropertyStore(object): + """Contains a collection of properties indentified by name""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetNamedValue(self,Name:'typing.Any') -> 'PyPROPVARIANT': + """ + Retrieves a property value by name + +Args: + + Name(typing.Any):Name of the property + +Returns: + + PyPROPVARIANT + + """ + pass + + + def SetNamedValue(self,propvar:'typing.Any') -> 'None': + """ + Sets the value of a property + +Args: + + propvar(typing.Any):Description for propvar + +Returns: + + None + + """ + pass + + + def GetNameCount(self,) -> 'typing.Any': + """ + Retrieves the number of named properties in the store + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNameAt(self,Index:'typing.Any') -> 'typing.Any': + """ + Retrieves a property name by zero-based index + +Args: + + Index(typing.Any):Index of the property name + +Returns: + + typing.Any + + """ + pass + + +class PyIObjectArray(object): + """Holds a collection of interface objects""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Returns number of objects in collection + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,Index:'typing.Any',riid:'PyIID') -> 'PyIUnknown': + """ + Retrieves an item by zero-based index + +Args: + + Index(typing.Any):Index of item to retrieve + riid(PyIID):The interface to return + +Returns: + + PyIUnknown + + """ + pass + + +class PyIObjectCollection(object): + """Modifiable container for a number of IUnknown objects""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddObject(self,punk:'PyIUnknown') -> 'None': + """ + Adds a single object to the collection + +Args: + + punk(PyIUnknown):Object to be added + +Returns: + + None + + """ + pass + + + def AddFromArray(self,Source:'PyIObjectArray') -> 'None': + """ + None + +Args: + + Source(PyIObjectArray):Objects to be added to the collection + +Returns: + + None + + """ + pass + + + def RemoveObjectAt(self,Index:'typing.Any') -> 'None': + """ + Removes a single object from the collection + +Args: + + Index(typing.Any):Zero-based index of item to remove + +Returns: + + None + + """ + pass + + + def Clear(self,) -> 'None': + """ + Empties the container. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIObjectWithPropertyKey(object): + """Interface implemented by objects that have an associated property id""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetPropertyKey(self,key:'PyPROPERTYKEY') -> 'None': + """ + Sets the property id + +Args: + + key(PyPROPERTYKEY):The identifier of the property + +Returns: + + None + + """ + pass + + + def GetPropertyKey(self,) -> 'PyPROPERTYKEY': + """ + Returns the property id + +Args: + + + +Returns: + + PyPROPERTYKEY + + """ + pass + + +class PyIObjectWithSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSite(self,pUnkSite:'typing.Any') -> 'None': + """ + Description of SetSite. + +Args: + + pUnkSite(typing.Any):Description for pUnkSite + +Returns: + + None + + """ + pass + + + def GetSite(self,riid:'PyIID') -> 'None': + """ + Description of GetSite. + +Args: + + riid(PyIID):Description for riid + +Returns: + + None + + """ + pass + + +class PyIOleClientSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SaveObject(self,) -> 'None': + """ + Description of SaveObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMoniker(self,dwAssign:'typing.Any',dwWhichMoniker:'typing.Any') -> 'None': + """ + Description of GetMoniker. + +Args: + + dwAssign(typing.Any):Description for dwAssign + dwWhichMoniker(typing.Any):Description for dwWhichMoniker + +Returns: + + None + + """ + pass + + + def GetContainer(self,) -> 'None': + """ + Description of GetContainer. + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowObject(self,) -> 'None': + """ + Description of ShowObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnShowWindow(self,fShow:'typing.Any') -> 'None': + """ + Description of OnShowWindow. + +Args: + + fShow(typing.Any):Description for fShow + +Returns: + + None + + """ + pass + + + def RequestNewObjectLayout(self,) -> 'None': + """ + Description of RequestNewObjectLayout. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleCommandTarget(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryStatus(self,) -> 'None': + """ + Description of QueryStatus. + +Args: + + + +Returns: + + None + + """ + pass + + + def Exec(self,) -> 'None': + """ + Description of Exec. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleControl(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetControlInfo(self,) -> 'None': + """ + Description of GetControlInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnMnemonic(self,msg:'typing.Any') -> 'None': + """ + Description of OnMnemonic. + +Args: + + msg(typing.Any):A tuple representing a MSG structure. + +Returns: + + None + + """ + pass + + + def OnAmbientPropertyChange(self,dispID:'typing.Any') -> 'None': + """ + Description of OnAmbientPropertyChange. + +Args: + + dispID(typing.Any):Description for dispID + +Returns: + + None + + """ + pass + + + def FreezeEvents(self,bFreeze:'typing.Any') -> 'None': + """ + Description of FreezeEvents. + +Args: + + bFreeze(typing.Any):Description for bFreeze + +Returns: + + None + + """ + pass + + +class PyIOleControlSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnControlInfoChanged(self,) -> 'None': + """ + Description of OnControlInfoChanged. + +Args: + + + +Returns: + + None + + """ + pass + + + def LockInPlaceActive(self,fLock:'typing.Any') -> 'None': + """ + Description of LockInPlaceActive. + +Args: + + fLock(typing.Any):Description for fLock + +Returns: + + None + + """ + pass + + + def GetExtendedControl(self,) -> 'None': + """ + Description of GetExtendedControl. + +Args: + + + +Returns: + + None + + """ + pass + + + def TransformCoords(self,PtlHimetric:'typing.Tuple[typing.Any, typing.Any]',pPtfContainer:'typing.Tuple[float, float]',dwFlags:'typing.Any') -> 'None': + """ + Description of TransformCoords. + +Args: + + PtlHimetric(typing.Tuple[typing.Any, typing.Any]):Description for pPtlHimetric + pPtfContainer(typing.Tuple[float, float]):Description for pPtfContainer + dwFlags(typing.Any):Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, a tuple of ((int, int), (float, float)) + +Returns: + + None:Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, + +a tuple of ((int, int), (float, float)) + + + """ + pass + + + def TranslateAccelerator(self,pMsg:'PyMSG',grfModifiers:'typing.Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + pMsg(PyMSG):Description for pMsg + grfModifiers(typing.Any):Description for grfModifiers + +Returns: + + None + + """ + pass + + + def OnFocus(self,fGotFocus:'typing.Any') -> 'None': + """ + Description of OnFocus. + +Args: + + fGotFocus(typing.Any):Description for fGotFocus + +Returns: + + None + + """ + pass + + + def ShowPropertyFrame(self,) -> 'None': + """ + Description of ShowPropertyFrame. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceActiveObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,lpmsg:'PyMSG') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpmsg(PyMSG):Description for lpmsg + +Returns: + + None + + """ + pass + + + def OnFrameWindowActivate(self,fActivate:'typing.Any') -> 'None': + """ + Description of OnFrameWindowActivate. + +Args: + + fActivate(typing.Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def OnDocWindowActivate(self,fActivate:'typing.Any') -> 'None': + """ + Description of OnDocWindowActivate. + +Args: + + fActivate(typing.Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def ResizeBorder(self,rcBorder:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pUIWindow:'PyIOleInPlaceUIWindow',fFrameWindow:'typing.Any') -> 'None': + """ + Description of ResizeBorder. + +Args: + + rcBorder(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcBorder + pUIWindow(PyIOleInPlaceUIWindow):Description for pUIWindow + fFrameWindow(typing.Any):Description for fFrameWindow + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'typing.Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(typing.Any):Description for fEnable + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceFrame(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertMenus(self,hmenuShared:'typing.Union[typing.Any]',menuWidths:'PyOLEMENUGROUPWIDTHS') -> 'None': + """ + Description of InsertMenus. + +Args: + + hmenuShared(typing.Union[typing.Any]):Description for hmenuShared + menuWidths(PyOLEMENUGROUPWIDTHS): + +Returns: + + None + + """ + pass + + + def SetMenu(self,hmenuShared:'typing.Union[typing.Any]',holemenu:'typing.Union[typing.Any]',hwndActiveObject:'typing.Union[typing.Any]') -> 'None': + """ + Description of SetMenu. + +Args: + + hmenuShared(typing.Union[typing.Any]):Description for hmenuShared + holemenu(typing.Union[typing.Any]):Description for holemenu + hwndActiveObject(typing.Union[typing.Any]):Description for hwndActiveObject + +Returns: + + None + + """ + pass + + + def RemoveMenus(self,hmenuShared:'typing.Union[typing.Any]') -> 'None': + """ + Description of RemoveMenus. + +Args: + + hmenuShared(typing.Union[typing.Any]):Description for hmenuShared + +Returns: + + None + + """ + pass + + + def SetStatusText(self,pszStatusText:'typing.Any') -> 'None': + """ + Description of SetStatusText. + +Args: + + pszStatusText(typing.Any):Description for pszStatusText + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'typing.Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(typing.Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def TranslateAccelerator(self,lpmsg:'PyMSG',wID:'typing.Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpmsg(PyMSG):Description for lpmsg + wID(typing.Any):Description for wID + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InPlaceDeactivate(self,) -> 'None': + """ + Description of InPlaceDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def UIDeactivate(self,) -> 'None': + """ + Description of UIDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetObjectRects(self,) -> 'None': + """ + Description of SetObjectRects. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReactivateAndUndo(self,) -> 'None': + """ + Description of ReactivateAndUndo. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanInPlaceActivate(self,) -> 'None': + """ + Description of CanInPlaceActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnInPlaceActivate(self,) -> 'None': + """ + Description of OnInPlaceActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnUIActivate(self,) -> 'None': + """ + Description of OnUIActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetWindowContext(self,) -> 'None': + """ + Description of GetWindowContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def Scroll(self,) -> 'None': + """ + Description of Scroll. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnUIDeactivate(self,fUndoable:'typing.Any') -> 'None': + """ + Description of OnUIDeactivate. + +Args: + + fUndoable(typing.Any):Description for fUndoable + +Returns: + + None + + """ + pass + + + def OnInPlaceDeactivate(self,) -> 'None': + """ + Description of OnInPlaceDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def DiscardUndoState(self,) -> 'None': + """ + Description of DiscardUndoState. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeactivateAndUndo(self,) -> 'None': + """ + Description of DeactivateAndUndo. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnPosRectChange(self,) -> 'None': + """ + Description of OnPosRectChange. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSiteEx(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnInPlaceActivateEx(self,dwFlags:'typing.Any') -> 'None': + """ + Description of OnInPlaceActivateEx. + +Args: + + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def OnInPlaceDeactivateEx(self,fNoRedraw:'typing.Any') -> 'None': + """ + Description of OnInPlaceDeactivateEx. + +Args: + + fNoRedraw(typing.Any):Description for fNoRedraw + +Returns: + + None + + """ + pass + + + def RequestUIActivate(self,) -> 'None': + """ + Description of RequestUIActivate. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSiteWindowless(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanWindowlessActivate(self,) -> 'None': + """ + Description of CanWindowlessActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCapture(self,) -> 'None': + """ + Description of GetCapture. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCapture(self,fCapture:'typing.Any') -> 'None': + """ + Description of SetCapture. + +Args: + + fCapture(typing.Any):Description for fCapture + +Returns: + + None + + """ + pass + + + def GetFocus(self,) -> 'None': + """ + Description of GetFocus. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFocus(self,fFocus:'typing.Any') -> 'None': + """ + Description of SetFocus. + +Args: + + fFocus(typing.Any):Description for fFocus + +Returns: + + None + + """ + pass + + + def GetDC(self,grfFlags:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Description of GetDC. + +Args: + + grfFlags(typing.Any):Description for grfFlags + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): + +Returns: + + None + + """ + pass + + + def ReleaseDC(self,hDC:'typing.Any') -> 'None': + """ + Description of ReleaseDC. + +Args: + + hDC(typing.Any):Description for hDC + +Returns: + + None + + """ + pass + + + def InvalidateRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',fErase:'typing.Any') -> 'None': + """ + Description of InvalidateRect. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): + fErase(typing.Any):Description for fErase + +Returns: + + None + + """ + pass + + + def InvalidateRgn(self,hRgn:'typing.Any',fErase:'typing.Any') -> 'None': + """ + Description of InvalidateRgn. + +Args: + + hRgn(typing.Any):Handle to a region + fErase(typing.Any):Description for fErase + +Returns: + + None + + """ + pass + + + def ScrollRect(self,dx:'typing.Any',dy:'typing.Any') -> 'None': + """ + Description of ScrollRect. + +Args: + + dx(typing.Any):Description for dx + dy(typing.Any):Description for dy + +Returns: + + None + + """ + pass + + + def AdjustRect(self,) -> 'None': + """ + Description of AdjustRect. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnDefWindowMessage(self,msg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'None': + """ + Description of OnDefWindowMessage. + +Args: + + msg(typing.Any):Description for msg + wParam(typing.Any):Description for wParam + lParam(typing.Any):Description for lParam + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceUIWindow(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetBorder(self,) -> 'None': + """ + Description of GetBorder. + +Args: + + + +Returns: + + None + + """ + pass + + + def RequestBorderSpace(self,borderwidths:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Description of RequestBorderSpace. + +Args: + + borderwidths(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for pborderwidths + +Returns: + + None + + """ + pass + + + def SetBorderSpace(self,borderwidths:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Description of SetBorderSpace. + +Args: + + borderwidths(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for pborderwidths + +Returns: + + None + + """ + pass + + + def SetActiveObject(self,pActiveObject:'PyIOleInPlaceActiveObject',pszObjName:'typing.Any') -> 'None': + """ + Description of SetActiveObject. + +Args: + + pActiveObject(PyIOleInPlaceActiveObject):Description for pActiveObject + pszObjName(typing.Any):Description for pszObjName + +Returns: + + None + + """ + pass + + +class PyIOleObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetClientSite(self,pClientSite:'PyIOleClientSite') -> 'None': + """ + Description of SetClientSite. + +Args: + + pClientSite(PyIOleClientSite):Description for pClientSite + +Returns: + + None + + """ + pass + + + def GetClientSite(self,) -> 'None': + """ + Description of GetClientSite. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetHostNames(self,szContainerApp:'typing.Any',szContainerObj:'typing.Any') -> 'None': + """ + Description of SetHostNames. + +Args: + + szContainerApp(typing.Any):Description for szContainerApp + szContainerObj(typing.Any):Description for szContainerObj + +Returns: + + None + + """ + pass + + + def Close(self,dwSaveOption:'typing.Any') -> 'None': + """ + Description of Close. + +Args: + + dwSaveOption(typing.Any):Description for dwSaveOption + +Returns: + + None + + """ + pass + + + def SetMoniker(self,dwWhichMoniker:'typing.Any',pmk:'PyIMoniker') -> 'None': + """ + Description of SetMoniker. + +Args: + + dwWhichMoniker(typing.Any):Description for dwWhichMoniker + pmk(PyIMoniker):Description for pmk + +Returns: + + None + + """ + pass + + + def GetMoniker(self,dwAssign:'typing.Any',dwWhichMoniker:'typing.Any') -> 'None': + """ + Description of GetMoniker. + +Args: + + dwAssign(typing.Any):Description for dwAssign + dwWhichMoniker(typing.Any):Description for dwWhichMoniker + +Returns: + + None + + """ + pass + + + def InitFromData(self,pDataObject:'PyIDataObject',fCreation:'typing.Any',dwReserved:'typing.Any') -> 'None': + """ + Description of InitFromData. + +Args: + + pDataObject(PyIDataObject):Description for pDataObject + fCreation(typing.Any):Description for fCreation + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def GetClipboardData(self,dwReserved:'typing.Any') -> 'None': + """ + Description of GetClipboardData. + +Args: + + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def DoVerb(self,iVerb:'typing.Any',msg:'PyMSG',pActiveSite:'PyIOleClientSite',lindex:'typing.Any',hwndParent:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Description of DoVerb. + +Args: + + iVerb(typing.Any):Description for iVerb + msg(PyMSG):MSG tuple, a-la win32gui etc. + pActiveSite(PyIOleClientSite):Description for pActiveSite + lindex(typing.Any):Description for lindex + hwndParent(typing.Any):Description for hwndParent + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): + +Returns: + + None + + """ + pass + + + def EnumVerbs(self,) -> 'None': + """ + Description of EnumVerbs. + +Args: + + + +Returns: + + None + + """ + pass + + + def Update(self,) -> 'None': + """ + Description of Update. + +Args: + + + +Returns: + + None + + """ + pass + + + def IsUpToDate(self,) -> 'None': + """ + Description of IsUpToDate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserClassID(self,) -> 'None': + """ + Description of GetUserClassID. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserType(self,dwFormOfType:'typing.Any') -> 'None': + """ + Description of GetUserType. + +Args: + + dwFormOfType(typing.Any):Description for dwFormOfType + +Returns: + + None + + """ + pass + + + def SetExtent(self,dwDrawAspect:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Description of SetExtent. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + size(typing.Tuple[typing.Any, typing.Any]):Size limit for the object. + +Returns: + + None + + """ + pass + + + def GetExtent(self,dwDrawAspect:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Description of GetExtent. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + size(typing.Tuple[typing.Any, typing.Any]):Size limit for the object. + +Returns: + + None + + """ + pass + + + def Advise(self,pAdvSink:'typing.Any') -> 'None': + """ + Description of Advise. + +Args: + + pAdvSink(typing.Any):Description for pAdvSink + +Returns: + + None + + """ + pass + + + def Unadvise(self,dwConnection:'typing.Any') -> 'None': + """ + Description of Unadvise. + +Args: + + dwConnection(typing.Any):Description for dwConnection + +Returns: + + None + + """ + pass + + + def EnumAdvise(self,) -> 'None': + """ + Description of EnumAdvise. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMiscStatus(self,dwAspect:'typing.Any') -> 'None': + """ + Description of GetMiscStatus. + +Args: + + dwAspect(typing.Any):Description for dwAspect + +Returns: + + None + + """ + pass + + + def SetColorScheme(self,) -> 'None': + """ + Description of SetColorScheme. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleWindow(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetWindow(self,) -> 'None': + """ + Description of GetWindow. + +Args: + + + +Returns: + + None + + """ + pass + + + def ContextSensitiveHelp(self,fEnterMode:'typing.Any') -> 'None': + """ + Description of ContextSensitiveHelp. + +Args: + + fEnterMode(typing.Any):Description for fEnterMode + +Returns: + + None + + """ + pass + + +class PyIPersist(object): + """A Python interface to IPersist""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassID(self,) -> 'PyIID': + """ + Returns the class identifier (CLSID) for the component object. + +Args: + + + +Returns: + + PyIID + + """ + pass + + +class PyIPersistFile(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'None': + """ + Checks an object for changes since it was last saved to its current file. + +Args: + + + +Returns: + + None:PyIPersistFile.IsDirty +IsDirty()Checks an object for changes since it was last saved to its current file. +Return ValueThis method returns the raw COM error code without raising the normal COM exception. + +You should treat any error return codes as an indication that the object has changed. + +Unless this method explicitly returns S_FALSE, assume that the object must be saved. + + + """ + pass + + + def Load(self,FileName:'typing.Any',Mode:'typing.Any') -> 'None': + """ + Opens the specified file and initializes an object from the file contents. + +Args: + + FileName(typing.Any):Absolute path of the file to open + Mode(typing.Any):Specifies the access mode from the STGM enumeration. + +Returns: + + None + + """ + pass + + + def Save(self,FileName:'typing.Any',fRemember:'typing.Any') -> 'None': + """ + Saves the object into the specified file. + +Args: + + FileName(typing.Any):absolute path of the file where the object is saved. + fRemember(typing.Any):Specifies whether the file is to be the current working file or not. + +Returns: + + None + + """ + pass + + + def SaveCompleted(self,FileName:'typing.Any') -> 'None': + """ + Notifies the object that it can revert from NoScribble mode to Normal mode. + +Args: + + FileName(typing.Any):Absolute path of the file where the object was saved. + +Returns: + + None + + """ + pass + + + def GetCurFile(self,) -> 'typing.Any': + """ + Gets the current name of the file associated with the object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIPersistFolder(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,pidl:'PyIDL') -> 'None': + """ + Description of Initialize. + +Args: + + pidl(PyIDL):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIPersistFolder2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCurFolder(self,) -> 'None': + """ + Description of GetCurFolder. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPersistPropertyBag(object): + """A Python wrapper for a COM IPersistPropertyBag interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InitNew(self,) -> 'None': + """ + Called by the container when the control is initialized to initialize the + +property bag. + +Args: + + + +Returns: + + None + + """ + pass + + + def Load(self,bag:'PyIPropertyBag',log:'PyIErrorLog'=None) -> 'None': + """ + Called by the container to load the control's properties. + +Args: + + bag(PyIPropertyBag):the caller's property bag. + log(PyIErrorLog):the caller's error log, or None + +Returns: + + None + + """ + pass + + + def Save(self,bag:'PyIPropertyBag',clearDirty:'typing.Any',saveProperties:'typing.Any') -> 'None': + """ + Called by the container to save the object's properties. + +Args: + + bag(PyIPropertyBag):the caller's property bag. + clearDirty(typing.Any):Specifies whether to clear the dirty flag. + saveProperties(typing.Any):Specifies whether to save all properties or just those that have changed + +Returns: + + None + + """ + pass + + +class PyIPersistSerializedPropStorage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetFlags(self,flags:'typing.Any') -> 'None': + """ + Sets flags for the store + +Args: + + flags(typing.Any):Combination of pscon.FPSPS_* values + +Returns: + + None + + """ + pass + + + def SetPropertyStorage(self,ps:'typing.Any') -> 'None': + """ + Initializes the store with a serialized buffer + +Args: + + ps(typing.Any):Bytes or buffer object containing a serialized property store + +Returns: + + None + + """ + pass + + + def GetPropertyStorage(self,) -> 'typing.Any': + """ + Retrieves the current contents of the property + +store + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIPersistStorage(object): + """A Python wrapper of a COM IPersistStorage interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'typing.Any': + """ + Checks the object for changes since it was last saved. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def InitNew(self,PyIStorage:'PyIStorage') -> 'None': + """ + Initializes a new object, providing a storage object to be used for the object. + +Args: + + PyIStorage(PyIStorage):PyIStorage for the new storage object to be initialized. The container creates a nested storage object in its storage object (see PyIStorage::CreateStorage). Then, the container calls the PyIPersistStorage::WriteClassStg function to initialize the new storage object with the object class identifier (CLSID). + +Returns: + + None + + """ + pass + + + def Load(self,storage:'PyIStorage') -> 'None': + """ + Loads an object from its existing storage. + +Args: + + storage(PyIStorage):Existing storage for the object. + +Returns: + + None + + """ + pass + + + def Save(self,PyIStorage:'PyIStorage',_int:'typing.Any') -> 'None': + """ + None + +Args: + + PyIStorage(PyIStorage):Storage for the object + _int(typing.Any):Indicates whether the specified storage object is the current one. This parameter is set to FALSE when performing a Save As or Save A Copy To operation or when performing a full save. In the latter case, this method saves to a temporary file, deletes the original file, and renames the temporary file. This parameter is set to TRUE to perform a full save in a low-memory situation or to perform a fast incremental save in which only the dirty components are saved. + +Returns: + + None + + """ + pass + + + def SaveCompleted(self,PyIStorage:'PyIStorage') -> 'None': + """ + None + +Args: + + PyIStorage(PyIStorage):The current storage object + +Returns: + + None + + """ + pass + + + def HandsOffStorage(self,) -> 'None': + """ + Instructs the object to release all storage objects that have been + +passed to it by its container and to enter HandsOff mode, in which the object cannot do anything and the only + +operation that works is a close operation. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPersistStream(object): + """A Python interface to IPersistStream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'typing.Any': + """ + Checks the object for changes since it was last saved. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Load(self,stream:'PyIStream') -> 'None': + """ + Initializes an object from the stream where it was previously saved. + +Args: + + stream(PyIStream):Stream object to load from.CommentsThis method loads an object from its associated stream. The seek pointer is set as it was in the most recent PyIPersistStream::Save method. This method can seek and read from the stream, but cannot write to it.On exit, the seek pointer must be in the same position it was in on entry, immediately past the end of the data. + +Returns: + + None + + """ + pass + + + def Save(self,stream:'PyIStream',bClearDirty:'typing.Any') -> 'None': + """ + Saves an object to the specified stream. + +Args: + + stream(PyIStream):The stream to save to. + bClearDirty(typing.Any):Indicates whether to clear the dirty flag after the save is complete + +Returns: + + None + + """ + pass + + + def GetSizeMax(self,) -> 'ULARGE_INTEGER': + """ + Returns the size in bytes of the stream needed to save the + +object. + +Args: + + + +Returns: + + ULARGE_INTEGER + + """ + pass + + +class PyIPersistStreamInit(object): + """A Python interface to IPersistStreamInit""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InitNew(self,) -> 'None': + """ + Initializes the object to a default state. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProcessDebugManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateApplication(self,) -> 'None': + """ + Description of CreateApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDefaultApplication(self,) -> 'None': + """ + Description of GetDefaultApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddApplication(self,pda:'PyIDebugApplication') -> 'None': + """ + Description of AddApplication. + +Args: + + pda(PyIDebugApplication):Description for pda + +Returns: + + None + + """ + pass + + + def RemoveApplication(self,dwAppCookie:'typing.Any') -> 'None': + """ + Description of RemoveApplication. + +Args: + + dwAppCookie(typing.Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def CreateDebugDocumentHelper(self,unkOuter:'typing.Any') -> 'None': + """ + Description of CreateDebugDocumentHelper. + +Args: + + unkOuter(typing.Any):The outer object for aggregation, or (usually!) None + +Returns: + + None + + """ + pass + + +class PyIProfAdmin(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def CreateProfile(self,oldProfileName:'str',Password:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': + """ + Creates a new profile. + +Args: + + oldProfileName(str):The name of the new profile. + Password(str):Must be None + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def DeleteProfile(self,oldProfileName:'str',flags:'typing.Any'=0) -> 'None': + """ + Deletes a profile. + +Args: + + oldProfileName(str):The name of the profile to be deleted. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def CopyProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': + """ + Copies a profile. + +Args: + + oldProfileName(str):The name of the profile to copy. + Password(str):Must be None + newProfileName(str):The new name of the copied profile. + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def RenameProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': + """ + Assigns a new name to a profile. + +Args: + + oldProfileName(str):The current name of the profile to rename. + Password(str):Must be None + newProfileName(str):The new name of the profile to rename. + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def SetDefaultProfile(self,profileName:'str',flags:'typing.Any'=0) -> 'None': + """ + Sets or clears a client's default profile. + +Args: + + profileName(str):The name of the profile that will become the default, or None. Setting profileName to None indicates that SetDefaultProfile should remove the existing default profile, leaving the client without a default. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def AdminServices(self,profileName:'str',Password:'str'=None,uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'PyIProfAdmin': + """ + Provides access to a message service administration object for making changes to the message services in a profile. + +Args: + + profileName(str):The name of the profile to be modified. + Password(str): + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(typing.Any): + +Returns: + + PyIProfAdmin + + """ + pass + + +class PyIPropertyBag(object): + """A Python wrapper for a COM IPropertyBag interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,propName:'typing.Any',propType:'typing.Any',errorLog:'PyIErrorLog'=None) -> 'typing.Any': + """ + Called by the control to read a property from the storage provided by the + +container. + +Args: + + propName(typing.Any):Name of the property to read. + propType(typing.Any):The type of the object to read. Must be a VT_* Variant Type constant. + errorLog(PyIErrorLog):The caller's PyIErrorLog object in which the property bag stores any errors that occur during reads. Can be None in which case the caller is not interested in errors.CommentsThe result is a Python object, mapped from a COM VARIANT of type as specified in the propType parameter. + +Returns: + + typing.Any + + """ + pass + + + def Write(self,propName:'typing.Any',value:'typing.Any') -> 'None': + """ + Called by the control to write each property in turn to the storage provided by the + +container. + +Args: + + propName(typing.Any):Name of the property to read. + value(typing.Any):The value for the property. The value must be able to be converted to a COM VARIANT. + +Returns: + + None + + """ + pass + + +class PyIPropertyChange(object): + """Interface used to specify a change to a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ApplyToPropVariant(self,OrigVal:'PyPROPVARIANT') -> 'PyPROPVARIANT': + """ + Applies the change to a variant value + +Args: + + OrigVal(PyPROPVARIANT):The value to be modified + +Returns: + + PyPROPVARIANT + + """ + pass + + +class PyIPropertyChangeArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of changes in the array + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,Index:'typing.Any',riid:'PyIID') -> 'PyIPropertyChange': + """ + Retrieves a change by zero-based index + +Args: + + Index(typing.Any):Index of the change to retrieve + riid(PyIID):The interface to return + +Returns: + + PyIPropertyChange + + """ + pass + + + def InsertAt(self,Index:'typing.Any',PropChange:'PyIPropertyChange') -> 'None': + """ + Inserts a change at a specific position + +Args: + + Index(typing.Any):Position at which to place the change + PropChange(PyIPropertyChange):The change to be added + +Returns: + + None + + """ + pass + + + def Append(self,PropChange:'PyIPropertyChange') -> 'None': + """ + Adds a change to the end of the array + +Args: + + PropChange(PyIPropertyChange):The change to be added + +Returns: + + None + + """ + pass + + + def AppendOrReplace(self,PropChange:'PyIPropertyChange') -> 'None': + """ + Adds a change, or replaces if an identical property key is already + +in container + +Args: + + PropChange(PyIPropertyChange):The change to be added or replaced + +Returns: + + None + + """ + pass + + + def RemoveAt(self,Index:'typing.Any') -> 'None': + """ + Removes a change from the array + +Args: + + Index(typing.Any):Index of change to be removed + +Returns: + + None + + """ + pass + + + def IsKeyInArray(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Checks if array contains a change to a property + +Args: + + key(PyPROPERTYKEY):Property key to look for + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertyDescription(object): + """Gives access to the details of a property definition""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyKey(self,) -> 'PyPROPERTYKEY': + """ + Returns the unique identifier for a property + +Args: + + + +Returns: + + PyPROPERTYKEY + + """ + pass + + + def GetCanonicalName(self,) -> 'typing.Any': + """ + Returns the name of the property + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetPropertyType(self,) -> 'typing.Any': + """ + Returns the variant type of the property (VT_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDisplayName(self,) -> 'typing.Any': + """ + Returns the property name as shown in the UI + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetEditInvitation(self,) -> 'typing.Any': + """ + Returns the input prompt used in edit controls + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTypeFlags(self,mask:'typing.Any') -> 'typing.Any': + """ + Returns type flags for the property + +Args: + + mask(typing.Any):Specifies which flags to retrieve (PDTF_*) + +Returns: + + typing.Any + + """ + pass + + + def GetViewFlags(self,) -> 'typing.Any': + """ + Returns the view flags that control how the property is displayed + +(PDVF_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDefaultColumnWidth(self,) -> 'typing.Any': + """ + Returns the default width in characters + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDisplayType(self,) -> 'typing.Any': + """ + Returns the display type (PDDT_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetColumnState(self,) -> 'typing.Any': + """ + Returns flags that control how property is displayed in column + +(SHCOLSTATE_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetGroupingRange(self,) -> 'typing.Any': + """ + Returns property's grouping attributes (PDGR_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRelativeDescriptionType(self,) -> 'typing.Any': + """ + Returns the relative description type (PDRDT_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRelativeDescription(self,var1:'PyPROPVARIANT',var2:'PyPROPVARIANT') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Compares two values + +Args: + + var1(PyPROPVARIANT):The first value + var2(PyPROPVARIANT):The second value + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetSortDescription(self,) -> 'typing.Any': + """ + Returns value that determines how sorting options are + +displayed (PDSD_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSortDescriptionLabel(self,Descending:'typing.Any') -> 'typing.Any': + """ + Returns description of current sort order + +Args: + + Descending(typing.Any):Indicates if order is reversed + +Returns: + + typing.Any + + """ + pass + + + def GetAggregationType(self,) -> 'typing.Any': + """ + Describes how properties for multiple items are displayed + +(PDAT_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetConditionType(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns options that determine how the property is used + +to build a search query + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:PyIPropertyDescription.GetConditionType + +(int, int) = GetConditionType()Returns options that determine how the property is used + +to build a search query +Return ValueReturns the condition type (PDCOT_*) and default operation (COP_*) + + + """ + pass + + + def GetEnumTypeList(self,riid:'PyIID') -> 'PyIPropertyEnumTypeList': + """ + Returns an interface used for querying + +valid property range + +Args: + + riid(PyIID):IID of the requested interface + +Returns: + + PyIPropertyEnumTypeList + + """ + pass + + + def CoerceToCanonicalValue(self,Value:'PyPROPVARIANT') -> 'typing.Any': + """ + Converts a variant value to the exact type expected by + +the property + +Args: + + Value(PyPROPVARIANT):The property value to be convertedCommentsThis method mutates the PyPROPVARIANT in place. It may be cleared on failure.Return ValueReturns the HRESULT from the operation on success. + +Returns: + + typing.Any:The property value to be convertedComments + +This method mutates the PyPROPVARIANT in place. It may be cleared on failure. +Return ValueReturns the HRESULT from the operation on success. + + + """ + pass + + + def FormatForDisplay(self,Value:'PyPROPVARIANT',Flags:'typing.Any') -> 'typing.Any': + """ + Converts a value to its string representation + +Args: + + Value(PyPROPVARIANT):The value to be formatted + Flags(typing.Any):Combination of PROPDESC_FORMAT_FLAGS (PDFF_*) + +Returns: + + typing.Any + + """ + pass + + + def IsValueCanonical(self,Value:'typing.Any') -> 'typing.Any': + """ + Determines if a value exactly matches the specification for + +the property + +Args: + + Value(typing.Any):The value to check + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertyDescriptionAliasInfo(object): + """Interface that gives access to the sorting columns for a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSortByAlias(self,riid:'PyIID') -> 'PyIPropertyDescription': + """ + Returns the primary column used + +for sorting + +Args: + + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescription + + """ + pass + + + def GetAdditionalSortByAliases(self,riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Returns secondary + +sorting columns + +Args: + + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + +class PyIPropertyDescriptionList(object): + """Container for a number of property descriptions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Gets the number of properties in the list + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,Elem:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescription': + """ + Retrieves a description from the list + +Args: + + Elem(typing.Any):Index of the element to return + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescription + + """ + pass + + +class PyIPropertyDescriptionSearchInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSearchInfoFlags(self,) -> 'typing.Any': + """ + Returns flags controlling how property is indexed + +Args: + + + +Returns: + + typing.Any:PyIPropertyDescriptionSearchInfo.GetSearchInfoFlags + +int = GetSearchInfoFlags()Returns flags controlling how property is indexed +Return ValueReturns a combination of PROPDESC_SEARCHINFO_FLAGS values + + + """ + pass + + + def GetColumnIndexType(self,) -> 'typing.Any': + """ + Returns flags indicating type of property + +Args: + + + +Returns: + + typing.Any:PyIPropertyDescriptionSearchInfo.GetColumnIndexType + +int = GetColumnIndexType()Returns flags indicating type of property +Return ValueReturns a value from the PROPDESC_COLUMNINDEX_TYPE enum + + + """ + pass + + + def GetProjectionString(self,) -> 'typing.Any': + """ + Returns the canonical name of the property + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetMaxSize(self,) -> 'typing.Any': + """ + Returns the maximum size specified in search options + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertyEnumType(object): + """Contains information about an allowable value or range for a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetEnumType(self,) -> 'typing.Any': + """ + Retrieves the type (PROPENUMTYPE) + +Args: + + + +Returns: + + typing.Any:PyIPropertyEnumType.GetEnumType + +int = GetEnumType()Retrieves the type (PROPENUMTYPE) +Return Valuepscon.PET_* + + + """ + pass + + + def GetValue(self,) -> 'PyPROPVARIANT': + """ + Retrieves the defined value + +Args: + + + +Returns: + + PyPROPVARIANT + + """ + pass + + + def GetRangeMinValue(self,) -> 'PyPROPVARIANT': + """ + Returns the minimum allowed value for the property + +Args: + + + +Returns: + + PyPROPVARIANT + + """ + pass + + + def GetRangeSetValue(self,) -> 'PyPROPVARIANT': + """ + Returns a fixed value defined for the property + +Args: + + + +Returns: + + PyPROPVARIANT + + """ + pass + + + def GetDisplayText(self,) -> 'None': + """ + Returns the display text for the enumerated type + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPropertyEnumTypeList(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of objects in the list + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,itype:'typing.Any',riid:'PyIID') -> 'PyIPropertyEnumType': + """ + Retrieves an item by index + +Args: + + itype(typing.Any):Zero based index of type to return + riid(PyIID):The interface to return + +Returns: + + PyIPropertyEnumType + + """ + pass + + + def FindMatchingIndex(self,Cmp:'PyPROPVARIANT') -> 'typing.Any': + """ + Attempts to match the specified value to one of the allowable + +values for the property + +Args: + + Cmp(PyPROPVARIANT):A value to match against the defined values of the property + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertySetStorage(object): + """Container for a collection of property sets. + +Can be iterated over to enumerate property sets.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Create(self,fmtid:'PyIID',clsid:'PyIID',Flags:'typing.Any',Mode:'typing.Any') -> 'PyIPropertyStorage': + """ + Creates a new property set in the storage object + +Args: + + fmtid(PyIID):GUID identifying a property set, pythoncom.FMTID_* + clsid(PyIID):CLSID of property set handler, usually same as fmtid + Flags(typing.Any):Specifies behaviour of property set, storagecon.PROPSETFLAG_* + Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + PyIPropertyStorage + + """ + pass + + + def Open(self,fmtid:'PyIID',Mode:'typing.Any') -> 'PyIPropertyStorage': + """ + Opens an existing property set + +Args: + + fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* + Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + PyIPropertyStorage + + """ + pass + + + def Delete(self,fmtid:'PyIID') -> 'None': + """ + Removes a property set from this storage object + +Args: + + fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* + +Returns: + + None + + """ + pass + + + def Enum(self,) -> 'PyIEnumSTATPROPSETSTG': + """ + Creates an iterator to enumerate contained property + +sets + +Args: + + + +Returns: + + PyIEnumSTATPROPSETSTG + + """ + pass + + +class PyIPropertyStorage(object): + """Structured storage object that contains a set of properties. + +Supports iteration to list properties.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ReadMultiple(self,props:'typing.Tuple[PROPSPEC, ...]') -> 'typing.Tuple[typing.Any, ...]': + """ + Reads specified properties from the current property set. + +Args: + + props(typing.Tuple[PROPSPEC, ...]):Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type + +Returns: + + typing.Tuple[typing.Any, ...]:Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type + + + """ + pass + + + def WriteMultiple(self,props:'typing.Tuple[PROPSPEC, ...]',values:'typing.Tuple[typing.Any, ...]',propidNameFirst:'typing.Any'=2) -> 'None': + """ + Creates or modifies properties in the property set + +Args: + + props(typing.Tuple[PROPSPEC, ...]):Sequence containing names or integer ids of properties to write + values(typing.Tuple[typing.Any, ...]):The values for the properties. + propidNameFirst(typing.Any):Minimum property id to be assigned to new properties specified by name + +Returns: + + None + + """ + pass + + + def DeleteMultiple(self,props:'typing.Tuple[PROPSPEC, ...]') -> 'None': + """ + Deletes properties from the property set + +Args: + + props(typing.Tuple[PROPSPEC, ...]):Sequence containing names or IDs of properties to be deleted + +Returns: + + None + + """ + pass + + + def ReadPropertyNames(self,props:'typing.Tuple[typing.Any, ...]') -> 'typing.Tuple[typing.Any, ...]': + """ + Retrieves any existing string names for the specified + +property identifiers. + +Args: + + props(typing.Tuple[typing.Any, ...]):Sequence of ints containing property IDs. + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + + def WritePropertyNames(self,props:'typing.Tuple[typing.Any, ...]',names:'typing.Tuple[str, ...]') -> 'None': + """ + Assigns string names to a specified array of property IDs in the + +current property set. + +Args: + + props(typing.Tuple[typing.Any, ...]):Sequence containing the property IDs. + names(typing.Tuple[str, ...]):Equal length sequence of property names. + +Returns: + + None + + """ + pass + + + def DeletePropertyNames(self,props:'typing.Tuple[typing.Any, ...]') -> 'None': + """ + Removes property names from specified properties. + +Args: + + props(typing.Tuple[typing.Any, ...]):Sequence of ints containing property IDs. + +Returns: + + None + + """ + pass + + + def Commit(self,CommitFlags:'typing.Any') -> 'None': + """ + Persists the property set to its base storage + +Args: + + CommitFlags(typing.Any):Combination of storagecon.STGC_* flags + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + Discards any changes that have been made + +Args: + + + +Returns: + + None + + """ + pass + + + def Enum(self,) -> 'PyIEnumSTATPROPSTG': + """ + Creates an enumerator for properties in the property set + +Args: + + + +Returns: + + PyIEnumSTATPROPSTG + + """ + pass + + + def SetTimes(self,ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': + """ + Sets the creation, last access, and modification time + +Args: + + ctime(PyTime):Creation time, or None for no change + atime(PyTime):Last access time, or None for no change + mtime(PyTime):Modification time, or None for no changeCommentsSome property sets do not support these times. + +Returns: + + None + + """ + pass + + + def SetClass(self,clsid:'PyIID') -> 'None': + """ + Sets the GUID for the property set + +Args: + + clsid(PyIID):Description for clsid + +Returns: + + None + + """ + pass + + + def Stat(self,) -> 'typing.Any': + """ + Returns various infomation about the property set + +Args: + + + +Returns: + + typing.Any:PyIPropertyStorage.Stat + +tuple = Stat()Returns various infomation about the property set +Return ValueReturns a tuple representing a STATPROPSETSTG struct. + + + """ + pass + + +class PyIPropertyStore(object): + """Contains a collection of properties""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of properties in the store + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,iProp:'typing.Any') -> 'PyPROPERTYKEY': + """ + Returns the property key for the specified property + +Args: + + iProp(typing.Any):Zero-based index of property + +Returns: + + PyPROPERTYKEY + + """ + pass + + + def GetValue(self,Key:'PyPROPERTYKEY') -> 'PyPROPVARIANT': + """ + Retrieves the value of a property + +Args: + + Key(PyPROPERTYKEY):Property key as returned by PyIPropertyStore::GetAt + +Returns: + + PyPROPVARIANT + + """ + pass + + + def SetValue(self,Key:'PyPROPERTYKEY',Value:'PyPROPVARIANT') -> 'None': + """ + Sets the value of a property + +Args: + + Key(PyPROPERTYKEY):Property key (see PyIPropertyStore::GetAt) + Value(PyPROPVARIANT):Variant value which can be converted to the appropriate variant type for the property Pass a VT_EMPTY variant to indicate that the property should be removed. + +Returns: + + None + + """ + pass + + + def Commit(self,) -> 'None': + """ + Commits property changes + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPropertyStoreCache(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetState(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Retrieves the current state of a property + +Args: + + key(PyPROPERTYKEY):Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) + +Returns: + + typing.Any:Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) + + + """ + pass + + + def GetValueAndState(self,key:'PyPROPERTYKEY') -> 'typing.Tuple[PyPROPVARIANT, typing.Any]': + """ + Retrieves the current value and state of a + +property + +Args: + + key(PyPROPERTYKEY):Property identifier + +Returns: + + typing.Tuple[PyPROPVARIANT, typing.Any] + + """ + pass + + + def SetState(self,key:'PyPROPERTYKEY',state:'typing.Any') -> 'None': + """ + Sets the state of a property + +Args: + + key(PyPROPERTYKEY):Property identifier + state(typing.Any):Value from the PSC_STATE enum (pscon.PSC_*) + +Returns: + + None + + """ + pass + + + def SetValueAndState(self,key:'PyPROPERTYKEY',value:'PyPROPVARIANT',state:'typing.Any') -> 'None': + """ + Sets the value and state of a property + +Args: + + key(PyPROPERTYKEY):Property identifier + value(PyPROPVARIANT):The new value + state(typing.Any):The new state (pscon.PSC_*) + +Returns: + + None + + """ + pass + + +class PyIPropertyStoreCapabilities(object): + """Property providers use this interface to indicate whether properties are + +writeable.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsPropertyWritable(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Asks provider if a property can be editted. + +Args: + + key(PyPROPERTYKEY):Property identifier + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertySystem(object): + """Wraps the IPropertySystem interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyDescription(self,Key:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescription': + """ + Returns an interface used to describe a + +property + +Args: + + Key(PyPROPERTYKEY):Fmtid and propertyid that uniquely identifies a property + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescription + + """ + pass + + + def GetPropertyDescriptionByName(self,CanonicalName:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescription': + """ + Returns an interface used to + +describe a property + +Args: + + CanonicalName(typing.Any):Registered name of the property + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescription + + """ + pass + + + def GetPropertyDescriptionListFromString(self,PropList:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Retrieves property + +descriptions from a string of property names + +Args: + + PropList(typing.Any):String containing a list of properties and flags + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + + def EnumeratePropertyDescriptions(self,Filter:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Returns an interface used to + +list defined properties + +Args: + + Filter(typing.Any):Value from PROPDESC_ENUMFILTER (pscon.PDEF_*) that limits what types of properties are listed + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + + def FormatForDisplay(self,Key:'PyPROPERTYKEY',Value:'PyPROPVARIANT',Flags:'typing.Any') -> 'typing.Any': + """ + Formats a property into a string + +Args: + + Key(PyPROPERTYKEY):Fmtid and property id that identifies the property + Value(PyPROPVARIANT):The value to format + Flags(typing.Any):Combination of PROPDESC_FORMAT_FLAGS (pscon.PDFF_*) indicating formatting options + +Returns: + + typing.Any + + """ + pass + + + def RegisterPropertySchema(self,Path:'typing.Any') -> 'None': + """ + Registers a set of properties defined in a .propdesc file + +Args: + + Path(typing.Any):Path to a property schema XML file (.propdesc) + +Returns: + + None + + """ + pass + + + def UnregisterPropertySchema(self,Path:'typing.Any') -> 'None': + """ + Removes a set of registered properties + +Args: + + Path(typing.Any):Path to a property schema XML file (.propdesc) + +Returns: + + None + + """ + pass + + + def RefreshPropertySchema(self,) -> 'None': + """ + Not currently implemented by the OS + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProvideClassInfo(object): + """A Python interface to IProvideClassInfo""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassInfo(self,) -> 'PyITypeInfo': + """ + Gets information about the CO_CLASS. + +Args: + + + +Returns: + + PyITypeInfo + + """ + pass + + +class PyIProvideClassInfo2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetGUID(self,flags:'typing.Any') -> 'PyIID': + """ + Gets the GUID for the object. + +Args: + + flags(typing.Any):The flags for the GUID. + +Returns: + + PyIID + + """ + pass + + +class PyIProvideExpressionContexts(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumExpressionContexts(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProvideTaskPage(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPage(self,tpType:'typing.Any',PersistChanges:'typing.Any') -> 'None': + """ + Return a property sheet page handle for the spedified type + +(TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) + +Args: + + tpType(typing.Any):Type of page to retreive (TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) + PersistChanges(typing.Any):Indicates if changes should be saved automaticallyCommentsThere's not yet anything useful that can be done with this handle - return type subject to change + +Returns: + + None + + """ + pass + + +class PyIQueryAssociations(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Init(self,flags:'typing.Any',assoc:'str',hkeyProgId:'PyHKEY'=None,hwnd:'int'=None) -> 'None': + """ + Initializes the IQueryAssociations interface and sets the root key to the + +appropriate ProgID. + +Args: + + flags(typing.Any):One of shellcon.ASSOCF_* flags + assoc(str):The string data (ie, extension, prog-id, etc) + hkeyProgId(PyHKEY):Root registry key, can be None + hwnd(int):Reserved, must be 0 or None + +Returns: + + None + + """ + pass + + + def GetKey(self,flags:'typing.Any',assocKey:'typing.Any',arg:'str') -> 'typing.Any': + """ + Searches for and retrieves a file association-related key from the + +registry. + +Args: + + flags(typing.Any):Used to control the search. + assocKey(typing.Any):Specifies the type of key that is to be returned. + arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used. + +Returns: + + typing.Any + + """ + pass + + + def GetString(self,flags:'typing.Any',assocStr:'typing.Any',arg:'str') -> 'typing.Any': + """ + Searches for and retrieves a file association-related string from the + +registry. + +Args: + + flags(typing.Any):Used to control the search. + assocStr(typing.Any):Specifies the type of string that is to be returned. + arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used.CommentsNote that ASSOCF_NOTRUNCATE semantics are currently not supported - the buffer passed is 2048 bytes long, and will be truncated by the shell if too small. + +Returns: + + typing.Any + + """ + pass + + +class PyIRelatedItem(object): + """Interface used as the base for objects that have a related shell item + +(eg ITransferMediumItem, IDisplayItem, etc). Should not be used directly.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetItemIDList(self,) -> 'PyIDL': + """ + Returns the ID list of the related item + +Args: + + + +Returns: + + PyIDL + + """ + pass + + + def GetItem(self,) -> 'PyIShellItem': + """ + Returns the related item + +Args: + + + +Returns: + + PyIShellItem + + """ + pass + + +class PyIRemoteDebugApplication(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ResumeFromBreakPoint(self,prptFocus:'PyIRemoteDebugApplicationThread',bra:'typing.Any',era:'typing.Any') -> 'None': + """ + Continue an application which is currently in a breakpoint. + +Args: + + prptFocus(PyIRemoteDebugApplicationThread):Description for prptFocus + bra(typing.Any):Break resume action + era(typing.Any):Error resume action + +Returns: + + None + + """ + pass + + + def CauseBreak(self,) -> 'None': + """ + Causes the application to break into the debugger at the earliest + +opportunity. + +Args: + + + +Returns: + + None + + """ + pass + + + def ConnectDebugger(self,pad:'PyIApplicationDebugger') -> 'None': + """ + Connects a debugger to the application. + +Args: + + pad(PyIApplicationDebugger):Description for padCommentsOnly one debugger may be connected at a time; this method fails if there is already a debugger connected. + +Returns: + + None + + """ + pass + + + def DisconnectDebugger(self,) -> 'None': + """ + Disconnects the current debugger from the application. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDebugger(self,) -> 'PyIApplicationDebugger': + """ + Returns the current debugger connected to + +the application. + +Args: + + + +Returns: + + PyIApplicationDebugger + + """ + pass + + + def CreateInstanceAtApplication(self,rclsid:'PyIID',pUnkOuter:'PyIUnknown',dwClsContext:'typing.Any',riid:'PyIID') -> 'PyIUnknown': + """ + Create objects in the application + +process address space. + +Args: + + rclsid(PyIID):Description for rclsid + pUnkOuter(PyIUnknown):Description for pUnkOuter + dwClsContext(typing.Any):Description for dwClsContext + riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. + +Returns: + + PyIUnknown + + """ + pass + + + def QueryAlive(self,) -> 'None': + """ + Returns True if alive, else False. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumThreads(self,) -> 'PyIEnumRemoteDebugApplicationThreads': + """ + Enumerates all threads known + +to be associated with the application. + +Args: + + + +Returns: + + PyIEnumRemoteDebugApplicationThreads + + """ + pass + + + def GetName(self,) -> 'None': + """ + Description of GetName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootNode(self,) -> 'PyIDebugApplicationNode': + """ + Returns the application node under which + +all nodes associated with the application are added. + +Args: + + + +Returns: + + PyIDebugApplicationNode + + """ + pass + + + def EnumGlobalExpressionContexts(self,) -> 'typing.Any': + """ + Enumerates all + +global expression contexts + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIRemoteDebugApplicationEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnConnectDebugger(self,pad:'PyIApplicationDebugger') -> 'None': + """ + Description of OnConnectDebugger. + +Args: + + pad(PyIApplicationDebugger):Description for pad + +Returns: + + None + + """ + pass + + + def OnDisconnectDebugger(self,) -> 'None': + """ + Description of OnDisconnectDebugger. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnSetName(self,pstrName:'typing.Any') -> 'None': + """ + Description of OnSetName. + +Args: + + pstrName(typing.Any):Description for pstrName + +Returns: + + None + + """ + pass + + + def OnDebugOutput(self,pstr:'typing.Any') -> 'None': + """ + Description of OnDebugOutput. + +Args: + + pstr(typing.Any):Description for pstr + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Description of OnClose. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnEnterBreakPoint(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnEnterBreakPoint. + +Args: + + prdat(PyIRemoteDebugApplicationThread):Description for prdat + +Returns: + + None + + """ + pass + + + def OnLeaveBreakPoint(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnLeaveBreakPoint. + +Args: + + prdat(PyIRemoteDebugApplicationThread):Description for prdat + +Returns: + + None + + """ + pass + + + def OnCreateThread(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnCreateThread. + +Args: + + prdat(PyIRemoteDebugApplicationThread):Description for prdat + +Returns: + + None + + """ + pass + + + def OnDestroyThread(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnDestroyThread. + +Args: + + prdat(PyIRemoteDebugApplicationThread):Description for prdat + +Returns: + + None + + """ + pass + + + def OnBreakFlagChange(self,abf:'typing.Any',prdatSteppingThread:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnBreakFlagChange. + +Args: + + abf(typing.Any):Description for abf + prdatSteppingThread(PyIRemoteDebugApplicationThread):Description for prdatSteppingThread + +Returns: + + None + + """ + pass + + +class PyIRemoteDebugApplicationThread(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSystemThreadId(self,) -> 'None': + """ + Description of GetSystemThreadId. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetApplication(self,) -> 'None': + """ + Description of GetApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumStackFrames(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDescription(self,) -> 'None': + """ + Description of GetDescription. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetNextStatement(self,pStackFrame:'PyIDebugStackFrame',pCodeContext:'PyIDebugCodeContext') -> 'None': + """ + Description of SetNextStatement. + +Args: + + pStackFrame(PyIDebugStackFrame):Description for pStackFrame + pCodeContext(PyIDebugCodeContext):Description for pCodeContext + +Returns: + + None + + """ + pass + + + def GetState(self,) -> 'None': + """ + Description of GetState. + +Args: + + + +Returns: + + None + + """ + pass + + + def Suspend(self,) -> 'None': + """ + Description of Suspend. + +Args: + + + +Returns: + + None + + """ + pass + + + def Resume(self,) -> 'None': + """ + Description of Resume. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSuspendCount(self,) -> 'None': + """ + Description of GetSuspendCount. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIRunningObjectTable(object): + """A Python interface to IRunningObjectTable""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Register(self,) -> 'typing.Any': + """ + Registers an object and its identifying moniker in the Running Object + +Table (ROT). + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Revoke(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsRunning(self,objectName:'PyIMoniker') -> 'typing.Any': + """ + Checks whether an object is running. + +Args: + + objectName(PyIMoniker):The PyIMoniker interface on the moniker to search for in the Running Object Table.Return ValueDescriptionS_OK (ie, 0)The object identified by objectName is running.S_FALSE (ie, 1)There is no entry for objectName in the ROT, or that the object it identifies is no longer running (in which case, the entry is revoked). + +Returns: + + typing.Any + + """ + pass + + + def GetObject(self,objectName:'PyIMoniker') -> 'PyIUnknown': + """ + Checks whether an object is running. + +Args: + + objectName(PyIMoniker):The PyIMoniker interface on the moniker to search for in the Running Object Table. + +Returns: + + PyIUnknown + + """ + pass + + + def EnumRunning(self,) -> 'PyIEnumMoniker': + """ + Creates an enumerator that can list the monikers of + +all the objects currently registered in the Running Object Table (ROT). + +Args: + + + +Returns: + + PyIEnumMoniker + + """ + pass + + +class PyIScheduledWorkItem(object): + """Python object that encapsulates the IScheduledWorkItem interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTrigger(self,) -> 'typing.Tuple[typing.Any, PyITaskTrigger]': + """ + Creates a new trigger for a task, returns index and + +new ITaskTrigger interface + +Args: + + + +Returns: + + typing.Tuple[typing.Any, PyITaskTrigger] + + """ + pass + + + def DeleteTrigger(self,Trigger:'typing.Any') -> 'None': + """ + Deletes specified trigger + +Args: + + Trigger(typing.Any):Index of trigger to delete + +Returns: + + None + + """ + pass + + + def GetTriggerCount(self,) -> 'typing.Any': + """ + Returns number of triggers defined for the task + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTrigger(self,iTrigger:'typing.Any') -> 'PyITaskTrigger': + """ + Retrieves ITaskTrigger interface for specified trigger + +index + +Args: + + iTrigger(typing.Any):Index of trigger to retrieve + +Returns: + + PyITaskTrigger + + """ + pass + + + def GetTriggerString(self,) -> 'typing.Any': + """ + Creates a human-readable summary of specified trigger + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRunTimes(self,Count:'typing.Any',Begin:'PyTime',End:'PyTime') -> 'typing.Tuple[PyTime, typing.Any, typing.Any, typing.Any]': + """ + Return specified number of run times within given time + +frame + +Args: + + Count(typing.Any):Number of run times to retrieve + Begin(PyTime):Start time, defaults to current time if not passed or None + End(PyTime):End time, defaults to unlimited if not passed or None + +Returns: + + typing.Tuple[PyTime, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetNextRunTime(self,) -> 'PyTime': + """ + Returns next time that task is scheduled to run + +Args: + + + +Returns: + + PyTime + + """ + pass + + + def SetIdleWait(self,wIdleMinutes:'typing.Any',wDeadlineMinutes:'typing.Any') -> 'None': + """ + Sets idle parms for task with trigger of type TASK_EVENT_TRIGGER_ON_IDLE + +Args: + + wIdleMinutes(typing.Any):Nbr of minutes computer must be idle before task fires + wDeadlineMinutes(typing.Any):Maximum nbr of minutes task will wait for computer to become idle + +Returns: + + None + + """ + pass + + + def GetIdleWait(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Gets IdleMinutes and DeadlineMinutes parms for task with trigger + +of type TASK_EVENT_TRIGGER_ON_IDLE + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def Run(self,) -> 'None': + """ + Starts task + +Args: + + + +Returns: + + None + + """ + pass + + + def Terminate(self,) -> 'None': + """ + Terminate process if task is running + +Args: + + + +Returns: + + None + + """ + pass + + + def EditWorkItem(self,hParent:'int',dwReserved:'typing.Any') -> 'None': + """ + Brings up standard Scheduled Task dialog + +Args: + + hParent(int):Reserved, use 0 or None if passed + dwReserved(typing.Any):Reserved, use 0 if passed + +Returns: + + None + + """ + pass + + + def GetMostRecentRunTime(self,) -> 'PyTime': + """ + Returns last time task ran + +Args: + + + +Returns: + + PyTime + + """ + pass + + + def GetStatus(self,) -> 'typing.Any': + """ + Returns status (SCHED_S_TASK... constants) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetExitCode(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns tuple of task's exit code and error returned to Task + +Scheduler if process could not start + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetComment(self,Comment:'typing.Any') -> 'None': + """ + Set comment string for task + +Args: + + Comment(typing.Any):Freeform comment string + +Returns: + + None + + """ + pass + + + def GetComment(self,) -> 'str': + """ + Return comment string associated with task. + +Args: + + + +Returns: + + str + + """ + pass + + + def SetCreator(self,Creator:'typing.Any') -> 'None': + """ + Specify who (or what) created task, can be any string + +Args: + + Creator(typing.Any):Originator of task, does not have to be valid username + +Returns: + + None + + """ + pass + + + def GetCreator(self,) -> 'None': + """ + Returns creator info, can be any string data + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWorkItemData(self,Data:'str') -> 'None': + """ + Set data associated with task (treated as uninterpreted bytes) + +Args: + + Data(str):Character data, treated as uninterpreted bytes + +Returns: + + None + + """ + pass + + + def GetWorkItemData(self,) -> 'str': + """ + Retrieve data associated with task + +Args: + + + +Returns: + + str + + """ + pass + + + def SetErrorRetryCount(self,wRetryCount:'typing.Any') -> 'None': + """ + Specify nbr of times to attempt to run task if it can't start (not + +currently implemented) + +Args: + + wRetryCount(typing.Any):Nbr of attemps to start task + +Returns: + + None + + """ + pass + + + def GetErrorRetryCount(self,) -> 'None': + """ + Return nbr of times Task scheduler should try to run task (not + +currently implemented) + +Args: + + + +Returns: + + None + + """ + pass + + + def SetErrorRetryInterval(self,RetryInterval:'typing.Any') -> 'None': + """ + Interval in minutes between attempts to run task. Not + +implemented according to SDK + +Args: + + RetryInterval(typing.Any):Interval in minutes + +Returns: + + None + + """ + pass + + + def GetErrorRetryInterval(self,) -> 'None': + """ + Returns nbr of minutes between attempts to run task. Not + +implemented according to SDK + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFlags(self,dwFlags:'typing.Any') -> 'None': + """ + Set flags for task + +Args: + + dwFlags(typing.Any):Combination of TASK_FLAG_* constants + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'typing.Any': + """ + Returns flags for task (TASK_FLAG_* constants) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetAccountInformation(self,AccountName:'typing.Any',Password:'typing.Any') -> 'None': + """ + Set username and password under which task will run + +Args: + + AccountName(typing.Any):AccountName, use "" for local system account (can only be used by Administrators) + Password(typing.Any):Password - Can be None for local System account, or if TASK_FLAG_RUN_ONLY_IF_LOGGED_ON is setCommentsOn some systems, username and password are verified at the time the task is saved, on others when the task tries to run + +Returns: + + None + + """ + pass + + + def GetAccountInformation(self,) -> 'typing.Any': + """ + Returns username that task will run under + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIServerSecurity(object): + """Interface used to access client security settings and perform impersonation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryBlanket(self,Capabilities:'typing.Any'=0) -> 'typing.Any': + """ + Retrieves security settings specified by the client + +Args: + + Capabilities(typing.Any):Can be EOAC_MAKE_FULLSIC for SChannel provider + +Returns: + + typing.Any + + """ + pass + + + def ImpersonateClient(self,) -> 'None': + """ + Initiates impersonation of client + +Args: + + + +Returns: + + None + + """ + pass + + + def RevertToSelf(self,) -> 'None': + """ + Ends impersonation of client + +Args: + + + +Returns: + + None + + """ + pass + + + def IsImpersonating(self,) -> 'typing.Any': + """ + Determines if server is currently impersonating a client + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIServiceProvider(object): + """A Python interface to IServiceProvider""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryService(self,clsid:'PyIID',iid:'PyIID') -> 'PyIUnknown': + """ + Creates or accesses the specified service and returns an + +interface object to the specified interface for the service. + +Args: + + clsid(PyIID):Unique identifier for the requested service. + iid(PyIID):Unique identifier for the requested interface on the service. + +Returns: + + PyIUnknown + + """ + pass + + +class PyIShellBrowser(object): + """Exposed by Windows Explorer and the Open File common dialog box to provide services for + +namespace extensions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertMenusSB(self,hmenuShared:'int',lpMenuWidths:'PyOLEMENUGROUPWIDTHS') -> 'PyOLEMENUGROUPWIDTHS': + """ + Updates a composite menu with container's options + +Args: + + hmenuShared(int):Newly created menu that contains no items + lpMenuWidths(PyOLEMENUGROUPWIDTHS):Tuple of 6 ints. Items 0,2,and 4 are updated when the tuple is returned. + +Returns: + + PyOLEMENUGROUPWIDTHS + + """ + pass + + + def SetMenuSB(self,hmenuShared:'int',holemenuRes:'int',hwndActiveObject:'int') -> 'None': + """ + Attaches a shared menu to a shell view window + +Args: + + hmenuShared(int):Handle to the shared menu + holemenuRes(int):Reserved, use only None (or 0) + hwndActiveObject(int):Handle to the shell window + +Returns: + + None + + """ + pass + + + def RemoveMenusSB(self,hmenuShared:'int') -> 'None': + """ + Asks container to remove any items it added to a composite menu + +Args: + + hmenuShared(int):Handle to the composite menu + +Returns: + + None + + """ + pass + + + def SetStatusTextSB(self,pszStatusText:'typing.Any') -> 'None': + """ + Sets the status text in view's status bar + +Args: + + pszStatusText(typing.Any):New status to be displayed + +Returns: + + None + + """ + pass + + + def EnableModelessSB(self,fEnable:'typing.Any') -> 'None': + """ + Enables or disables modeless dialogs + +Args: + + fEnable(typing.Any):Use True to enable or False to disable modeless dialog boxes + +Returns: + + None + + """ + pass + + + def TranslateAcceleratorSB(self,pmsg:'PyMSG',wID:'typing.Any') -> 'None': + """ + Translates keystrokes used as menu item activators + +Args: + + pmsg(PyMSG):Keystroke message to be translated + wID(typing.Any):Menu command id for the keystroke + +Returns: + + None + + """ + pass + + + def BrowseObject(self,pidl:'PyIDL',wFlags:'typing.Any') -> 'None': + """ + Navigates to a different location + +Args: + + pidl(PyIDL):Item id list that specifies the new browse location, can be None + wFlags(typing.Any):Combination of shellcon.SBSP_* flags + +Returns: + + None + + """ + pass + + + def GetViewStateStream(self,grfMode:'typing.Any') -> 'PyIStream': + """ + Returns a stream that can be used to access view state + +information + +Args: + + grfMode(typing.Any):Read/write mode, one of STGM_READ,STGM_WRITE,STGM_READWRITE + +Returns: + + PyIStream + + """ + pass + + + def GetControlWindow(self,_id:'typing.Any') -> 'None': + """ + Returns a handle to one of the browser's control elements + +Args: + + _id(typing.Any):One of shellcon.FCW_* values + +Returns: + + None + + """ + pass + + + def SendControlMsg(self,_id:'typing.Any',uMsg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'typing.Any': + """ + Sends a control msg to browser's toolbar or status bar + +Args: + + _id(typing.Any):shellcon.FCW_TOOLBAR or FCW_STATUS + uMsg(typing.Any):The message to send + wParam(typing.Any):Value is dependent on the message + lParam(typing.Any):Value is dependent on the message + +Returns: + + typing.Any + + """ + pass + + + def QueryActiveShellView(self,) -> 'PyIShellView': + """ + Returns the currently displayed view + +Args: + + + +Returns: + + PyIShellView + + """ + pass + + + def OnViewWindowActive(self,pshv:'PyIShellView') -> 'None': + """ + Callback triggered when a view window is activated + +Args: + + pshv(PyIShellView):The activated view object + +Returns: + + None + + """ + pass + + + def SetToolbarItems(self,lpButtons:'typing.Any',uFlags:'typing.Any') -> 'None': + """ + Adds toolbar buttons to the browser's toolbar + +Args: + + lpButtons(typing.Any):Sequence of tuples describing the buttons to be added + uFlags(typing.Any):Indicates button positions, combination of shellcon.FCT_* + +Returns: + + None + + """ + pass + + +class PyIShellExtInit(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,pFolder:'PyIDL',pDataObject:'PyIDataObject',hkey:'int') -> 'None': + """ + Description of Initialize. + +Args: + + pFolder(PyIDL):Description for pFolder + pDataObject(PyIDataObject):Description for pDataObject + hkey(int):Description for hkey + +Returns: + + None + + """ + pass + + +class PyIShellFolder(object): + """Interface that represents an Explorer folder""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseDisplayName(self,hwndOwner:'int',pbc:'PyIBindCtx',DisplayName:'typing.Any',Attributes:'typing.Any'=0) -> 'typing.Any': + """ + Returns the PIDL of an item in a shell folder + +Args: + + hwndOwner(int):Window in which to display any dialogs or message boxes, can be 0 + pbc(PyIBindCtx):Bind context that affects how parsing is performed, can be None + DisplayName(typing.Any):Display name to parse, format is dependent on the shell folder. Desktop folder will accept a file path, as well as guids of the form ::{guid} Example: '::%s\\::%s' %(shell.CLSID_MyComputer,shell.CLSID_ControlPanel) + Attributes(typing.Any):Combination of shellcon.SFGAO_* constants specifying which attributes should be returnedReturn ValueThe result is a tuple of cchEaten, pidl, attrItems[0] int : cchEatenthe number of characters of the input name that were parsed[1] PyIDL : pidlspecifies the relative path from the parsing folder to the object[2] int : Attributesreturns any requested attributes + +Returns: + + typing.Any:Combination of shellcon.SFGAO_* constants specifying which attributes should be returned +Return ValueThe result is a tuple of cchEaten, pidl, attr +Items[0] int : cchEaten +the number of characters of the input name that were parsed +[1] PyIDL : pidl +specifies the relative path from the parsing folder to the object +[2] int : Attributes +returns any requested attributes + + + """ + pass + + + def EnumObjects(self,grfFlags:'typing.Any',hwndOwner:'int'=None) -> 'PyIEnumIDList': + """ + Creates an enumerator to list the contents of the shell folder + +Args: + + grfFlags(typing.Any):Combination of shellcon.SHCONTF_* constants + hwndOwner(int):Window to use if any user interaction is required + +Returns: + + PyIEnumIDList + + """ + pass + + + def BindToObject(self,pidl:'PyIDL',pbc:'PyIBindCtx',riid:'PyIID') -> 'PyIShellFolder': + """ + Returns an IShellFolder interface for a subfolder + +Args: + + pidl(PyIDL):Relative item id list that identifies the subfolder, can be multi-level + pbc(PyIBindCtx):Bind context to be used, can be None + riid(PyIID):IID of the desired interface, usually IID_IShellFolder + +Returns: + + PyIShellFolder + + """ + pass + + + def BindToStorage(self,pidl:'PyIDL',pbc:'PyIBindCtx',riid:'PyIID') -> 'typing.Any': + """ + Returns an interface to a storage object in a shell folder + +Args: + + pidl(PyIDL):Relative pidl for the folder item, must be a single item id + pbc(PyIBindCtx):Bind context that affects how binding is performed, can be None + riid(PyIID):IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in + +Returns: + + typing.Any:IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in + + + """ + pass + + + def CompareIDs(self,lparam:'typing.Any',pidl1:'PyIDL',pidl2:'PyIDL') -> 'typing.Any': + """ + Determines the sorting order of 2 items in shell folder + +Args: + + lparam(typing.Any):Lower 16 bits specify folder-dependent sorting rules, 0 means to sort by display name. System folder view uses these as a column number. Upper sixteen bits is used for flags SHCIDS_ALLFIELDS or SHCIDS_CANONICALONLY + pidl1(PyIDL):Item id list that idenfies an object relative to the folder + pidl2(PyIDL):Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first + +Returns: + + typing.Any:Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first + + + """ + pass + + + def CreateViewObject(self,hwndOwner:'typing.Any',riid:'PyIID') -> 'PyIShellView': + """ + Creates a view object for a shell folder. + +Args: + + hwndOwner(typing.Any):Parent window for a custom folder view, or 0 + riid(PyIID):IID of the desired interface, usually IID_IShellView + +Returns: + + PyIShellView + + """ + pass + + + def GetAttributesOf(self,pidl:'typing.Tuple[PyIDL, ...]',rgfInOut:'typing.Any') -> 'typing.Any': + """ + Queries attributes of items within the shell folder + +Args: + + pidl(typing.Tuple[PyIDL, ...]):A sequence of single-level pidls identifying items directly contained by the folder + rgfInOut(typing.Any):Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items + +Returns: + + typing.Any:Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items + + + """ + pass + + + def GetUIObjectOf(self,hwndOwner:'int',pidl:'typing.Tuple[PyIDL, ...]',riid:'PyIID',iidout:'PyIID',Reserved:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PyIUnknown]': + """ + Creates an interface to one or more items in a shell + +folder + +Args: + + hwndOwner(int):Specifies a window in which to display any required dialogs or errors, can be 0 + pidl(typing.Tuple[PyIDL, ...]):A sequence of single-level pidls identifying items in the folder + riid(PyIID):The interface to create, one of IID_IContextMenu, IID_IContextMenu2, IID_IDataObject, IID_IDropTarget, IID_IExtractIcon, IID_IQueryInfo + iidout(PyIID):The interface to return. Can be used in the case where there is not a python wrapper for the desired interface. You must make certain that the interface identified by riid actually supports the iidout interface, or Bad Things Will Happen. It should always be safe to return PyIUnknown, which is the base for all interfaces.Return ValueReturns the Reserved parameter and the requested interface + Reserved(typing.Any):Reserved, use 0 if passed in + +Returns: + + typing.Tuple[typing.Any, PyIUnknown]:The interface to return. Can be used in the case where there is not a + +python wrapper for the desired interface. You must make certain that the interface identified by riid + +actually supports the iidout interface, or Bad Things Will Happen. + +It should always be safe to return PyIUnknown, which is the base for all interfaces. +Return ValueReturns the Reserved parameter and the requested interface + + + """ + pass + + + def GetDisplayNameOf(self,pidl:'PyIDL',uFlags:'typing.Any') -> 'typing.Any': + """ + Returns the display name of an item within this shell folder + +Args: + + pidl(PyIDL):PIDL that identifies the item relative to the parent folder + uFlags(typing.Any):Combination of shellcon.SHGDN_* flags + +Returns: + + typing.Any + + """ + pass + + + def SetNameOf(self,hwndOwner:'typing.Any',pidl:'PyIDL',Name:'typing.Any',Flags:'typing.Any') -> 'PyIDL': + """ + Sets the display name of an item and changes its PIDL + +Args: + + hwndOwner(typing.Any):Window in which to display any message boxes or dialogs, can be 0 + pidl(PyIDL):PIDL that identifies the item relative to the parent folder + Name(typing.Any):New name for the item + Flags(typing.Any):Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item + +Returns: + + PyIDL:Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item + + + """ + pass + + +class PyIShellFolder2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDefaultSearchGUID(self,pguid:'PyIID') -> 'PyIID': + """ + Retrieves the default search for the folder + +Args: + + pguid(PyIID):Description for pguid + +Returns: + + PyIID + + """ + pass + + + def EnumSearches(self,) -> 'typing.Any': + """ + Returns an interface that lists searches defined for + +the folder + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDefaultColumn(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the columns used for sorting and display + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetDefaultColumnState(self,iColumn:'typing.Any') -> 'typing.Any': + """ + Returns flags indicating the default behaviour of the column + +Args: + + iColumn(typing.Any):Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags + +Returns: + + typing.Any:Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags + + + """ + pass + + + def GetDetailsEx(self,pidl:'PyIDL',pscid:'typing.Any') -> 'typing.Any': + """ + Returns the details of an item by Column ID + +Args: + + pidl(PyIDL):Relative id list of an item in the folder + pscid(typing.Any):The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column + +Returns: + + typing.Any:The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column + + + """ + pass + + + def GetDetailsOf(self,pidl:'PyIDL',iColumn:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Returns the value or title of a column in the folder's Details + +view. + +Args: + + pidl(PyIDL):The relative idl of an item in the folder. Use None to retrieve column title. + iColumn(typing.Any):Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in characters, and string representation of the requested value + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in + +characters, + +and string representation of the requested value + + + """ + pass + + + def MapColumnToSCID(self,Column:'typing.Any') -> 'typing.Any': + """ + Returns the unique identifier (FMTID, pid) of a column + +Args: + + Column(typing.Any):The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. For Vista and later, this is the Property Key used with the property system interfaces. + +Returns: + + typing.Any:The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. + +For Vista and later, this is the Property Key used with the property system interfaces. + + + """ + pass + + +class PyIShellIcon(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetIconOf(self,pidl:'PyIDL') -> 'None': + """ + Description of GetIconOf. + +Args: + + pidl(PyIDL):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIShellIconOverlay(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetOverlayIndex(self,pidl:'PyIDL') -> 'None': + """ + Description of GetOverlayIndex. + +Args: + + pidl(PyIDL):Description for pidl + +Returns: + + None + + """ + pass + + + def GetOverlayIconIndex(self,pidl:'PyIDL') -> 'None': + """ + Description of GetOverlayIconIndex. + +Args: + + pidl(PyIDL):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIShellIconOverlayIdentifier(object): + """Interface that supplies icon overlay information to the shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsMemberOf(self,path:'str',attrib:'typing.Any') -> 'typing.Any': + """ + Determines if a shell object should have an icon overlay + +Args: + + path(str):Fully qualified path of the shell object + attrib(typing.Any):Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. The client implementation of this function returns the same values - ie, Python's True and False should not be used, as S_OK==0==False. + +Returns: + + typing.Any:Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to + +display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. + +The client implementation of this function returns the same values - ie, + +Python's True and False should not be used, as S_OK==0==False. + + + """ + pass + + + def GetOverlayInfo(self,) -> 'typing.Tuple[str, typing.Any, typing.Any]': + """ + Retrieves the path to the overlay + +icon + +Args: + + + +Returns: + + typing.Tuple[str, typing.Any, typing.Any]:PyIShellIconOverlayIdentifier.GetOverlayInfo + +(PyUnicode, int, int) = GetOverlayInfo()Retrieves the path to the overlay + +icon +Return ValueReturns the path to the icon file, the index of icon within the file, and Flags containing + +combination of shellcon.ISIOI_ICON* flags + + + """ + pass + + + def GetPriority(self,) -> 'typing.Any': + """ + Retrieves the relative priority of the overlay + +Args: + + + +Returns: + + typing.Any:PyIShellIconOverlayIdentifier.GetPriority + +int = GetPriority()Retrieves the relative priority of the overlay +Return ValueImplementation of this function should return a number in the range 0-100 (0 is highest priority) + + + """ + pass + + +class PyIShellIconOverlayManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFileOverlayInfo(self,path:'typing.Any',attrib:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns an index into the system image list for the icon + +image or overlay image + +Args: + + path(typing.Any):Full path to the file + attrib(typing.Any):File attributes (win32com.FILE_ATTRIBUTE_*) + flags(typing.Any):SIOM_OVERLAYINDEX (1) or SIOM_ICONINDEX (2) + +Returns: + + typing.Any + + """ + pass + + + def GetReservedOverlayInfo(self,path:'typing.Any',attrib:'typing.Any',flags:'typing.Any',ireservedID:'typing.Any') -> 'None': + """ + Description of GetReservedOverlayInfo. + +Args: + + path(typing.Any):Description for path + attrib(typing.Any):Description for attrib + flags(typing.Any):Description for flags + ireservedID(typing.Any):Description for ireservedID + +Returns: + + None + + """ + pass + + + def RefreshOverlayImages(self,flags:'typing.Any') -> 'None': + """ + Description of RefreshOverlayImages. + +Args: + + flags(typing.Any):Description for flags + +Returns: + + None + + """ + pass + + + def LoadNonloadedOverlayIdentifiers(self,) -> 'None': + """ + Description of LoadNonloadedOverlayIdentifiers. + +Args: + + + +Returns: + + None + + """ + pass + + + def OverlayIndexFromImageIndex(self,iImage:'typing.Any',fAdd:'typing.Any') -> 'None': + """ + Description of OverlayIndexFromImageIndex. + +Args: + + iImage(typing.Any):Description for iImage + fAdd(typing.Any):Description for fAdd + +Returns: + + None + + """ + pass + + +class PyIShellItem(object): + """Interface that represents an item in the Explorer shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToHandler(self,pbc:'PyIBindCtx',bhid:'PyIID',riid:'PyIID') -> 'typing.Any': + """ + Creates an instance of one of the item's handlers + +Args: + + pbc(PyIBindCtx):Used to pass parameters that influence the binding operation, can be None + bhid(PyIID):GUID that identifies a handler (shell.BHID_*) + riid(PyIID):The interface to return + +Returns: + + typing.Any + + """ + pass + + + def GetParent(self,) -> 'PyIShellItem': + """ + Retrieves the parent of this item + +Args: + + + +Returns: + + PyIShellItem + + """ + pass + + + def GetDisplayName(self,sigdnName:'typing.Any') -> 'typing.Any': + """ + Returns the display name of the item in the specified format + +Args: + + sigdnName(typing.Any):Format of name to return, shellcon.SIGDN_* + +Returns: + + typing.Any + + """ + pass + + + def GetAttributes(self,Mask:'typing.Any') -> 'typing.Any': + """ + Returns shell attributes of the item + +Args: + + Mask(typing.Any):Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values + +Returns: + + typing.Any:Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values + + + """ + pass + + + def Compare(self,psi:'PyIShellItem',hint:'typing.Any') -> 'typing.Any': + """ + Compares another shell item with this item + +Args: + + psi(PyIShellItem):A shell item to be compared with this item + hint(typing.Any):shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise + +Returns: + + typing.Any:shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise + + + """ + pass + + +class PyIShellItem2(object): + """Extends the IShellItem interface, giving access to an item's properties""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyStore(self,Flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': + """ + Returns a collection of the item's properties + +Args: + + Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + riid(PyIID):The interface to return + +Returns: + + PyIPropertyStore + + """ + pass + + + def GetPropertyStoreForKeys(self,Keys:'typing.Tuple[typing.Any, ...]',Flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': + """ + Creates a property store containing just the + +specified properties of the item + +Args: + + Keys(typing.Tuple[typing.Any, ...]):A sequence of property identifiers + Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + riid(PyIID):The interface to return + +Returns: + + PyIPropertyStore + + """ + pass + + + def GetPropertyStoreWithCreateObject(self,Flags:'typing.Any',CreateObject:'PyIUnknown',riid:'PyIID') -> 'PyIPropertyStore': + """ + Returns the property store for the + +item, with alternate handler instantiation + +Args: + + Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + CreateObject(PyIUnknown):An interface that implements ICreateObject, used to create the property handler + riid(PyIID):The interface to be createdCommentsPrimarily used to create a handler in a separate process with reduced privileges + +Returns: + + PyIPropertyStore + + """ + pass + + + def GetPropertyDescriptionList(self,Type:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Retrieves descriptions of + +properties in a particular group + +Args: + + Type(PyPROPERTYKEY):Property list identifier (pscon.PKEY_PropList_*) + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + + def Update(self,BindCtx:'typing.Any'=None) -> 'None': + """ + Refreshes properties that have been modified since interface was created + +Args: + + BindCtx(typing.Any):Bind context used when requesting the interface, or None + +Returns: + + None + + """ + pass + + + def GetProperty(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Retrieves the value of a property, converted to an appropriate python type + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property + +Returns: + + typing.Any:The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property + + + """ + pass + + + def GetCLSID(self,key:'PyPROPERTYKEY') -> 'PyIID': + """ + Retrieves the value of a property as a CLSID (VT_CLSID) + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + PyIID + + """ + pass + + + def GetFileTime(self,key:'PyPROPERTYKEY') -> 'PyTime': + """ + Retrieves the value of a property as a FILETIME + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + PyTime + + """ + pass + + + def GetInt32(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Retrieves the value of a property as a 32 bit int. + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + + def GetString(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Retrieves the value of a property as a string + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + + def GetUInt32(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Returns the value of a property as a 32 bit unsigned int + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + + def GetUInt64(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Returns the value of a property as an unsigned 64-bit int + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + + def GetBool(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Returns the value of a property as a boolean + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + +class PyIShellItemArray(object): + """Container for a number of shell items""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToHandler(self,pbc:'PyIBindCtx',rbhid:'PyIID',riid:'PyIID') -> 'typing.Any': + """ + Creates an instance of a handler for the items in the container + +Args: + + pbc(PyIBindCtx):Bind context, can be None + rbhid(PyIID):Bind handler GUID (shell.BHID_*) + riid(PyIID):The interface to return + +Returns: + + typing.Any + + """ + pass + + + def GetPropertyStore(self,flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': + """ + Retrieves a store containing consolidated + +properties of items in container + +Args: + + flags(typing.Any):Flags indicating how the properties are retrieved (shellcon.GPS_*) + riid(PyIID):The interface to return, IID_IPropertyStore or related interface + +Returns: + + PyIPropertyStore + + """ + pass + + + def GetPropertyDescriptionList(self,Type:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Retrieves descriptions for a + +defined group of properties + +Args: + + Type(PyPROPERTYKEY):Property list identifier (pscon.PKEY_PropList_*) + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + + def GetAttributes(self,AttribFlags:'typing.Any',Mask:'typing.Any') -> 'typing.Any': + """ + Retrieves shell attributes of contained items + +Args: + + AttribFlags(typing.Any):SIATTRIBFLAGS value (shellcon.SIATTRIBFLAGS_*) specifying how to combine attributes of multiple items + Mask(typing.Any):Combination of SFGAOF flags (shellcon.SFGAO_*) specifying which attributes to return + +Returns: + + typing.Any + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of items in the container + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemAt(self,dwIndex:'typing.Any') -> 'PyIShellItem': + """ + Retrieves an item by index + +Args: + + dwIndex(typing.Any):Zero-based index of item to retrieve + +Returns: + + PyIShellItem + + """ + pass + + + def EnumItems(self,) -> 'PyIEnumShellItems': + """ + Returns an enumeration interface to list contained items + +Args: + + + +Returns: + + PyIEnumShellItems + + """ + pass + + +class PyIShellItemResources(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetAttributes(self,) -> 'None': + """ + Description of GetAttributes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'typing.Any': + """ + Description of GetSize. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTimes(self,) -> 'None': + """ + Description of GetTimes. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetTimes(self,pftCreation:'PyTime',pftWrite:'PyTime',pftAccess:'PyTime') -> 'None': + """ + Description of SetTimes. + +Args: + + pftCreation(PyTime):Description for pftCreation + pftWrite(PyTime):Description for pftWrite + pftAccess(PyTime):Description for pftAccess + +Returns: + + None + + """ + pass + + + def GetResourceDescription(self,pcsir:'PySHELL_ITEM_RESOURCE') -> 'None': + """ + Description of GetResourceDescription. + +Args: + + pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir + +Returns: + + None + + """ + pass + + + def EnumResources(self,) -> 'PyIEnumResources': + """ + Description of EnumResources. + +Args: + + + +Returns: + + PyIEnumResources + + """ + pass + + + def SupportsResource(self,pcsir:'PySHELL_ITEM_RESOURCE') -> 'typing.Any': + """ + Description of SupportsResource. + +Args: + + pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir + +Returns: + + typing.Any + + """ + pass + + + def OpenResource(self,pcsir:'PySHELL_ITEM_RESOURCE',riid:'PyIID') -> 'PyIUnknown': + """ + Description of OpenResource. + +Args: + + pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir + riid(PyIID):The interface to return + +Returns: + + PyIUnknown + + """ + pass + + + def CreateResource(self,sir:'PySHELL_ITEM_RESOURCE',riid:'PyIID') -> 'typing.Any': + """ + Description of CreateResource. + +Args: + + sir(PySHELL_ITEM_RESOURCE):Resource identifier + riid(PyIID):The interface to return + +Returns: + + typing.Any + + """ + pass + + + def MarkForDelete(self,) -> 'None': + """ + Description of MarkForDelete. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIShellLibrary(object): + """Interface used to access Libraries""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def LoadLibraryFromItem(self,Library:'PyIShellItem',Mode:'typing.Any') -> 'None': + """ + Loads an existing library file + +Args: + + Library(PyIShellItem):Shell item interface representing the library file + Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + None + + """ + pass + + + def LoadLibraryFromKnownFolder(self,Library:'PyIID',Mode:'typing.Any') -> 'None': + """ + Initializes library from a known folder + +Args: + + Library(PyIID):Known folder id, shell.FOLDERID_* + Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + None + + """ + pass + + + def AddFolder(self,Location:'PyIShellItem') -> 'None': + """ + Includes a folder + +Args: + + Location(PyIShellItem):Shell item interface representing the folder + +Returns: + + None + + """ + pass + + + def RemoveFolder(self,Location:'PyIShellItem') -> 'None': + """ + Removes a folder + +Args: + + Location(PyIShellItem):Shell item interface representing the folder + +Returns: + + None + + """ + pass + + + def GetFolders(self,Filter:'typing.Any',riid:'PyIID') -> 'PyIShellItemArray': + """ + Retrieves a collection of folders in the library + +Args: + + Filter(typing.Any):Specifies what types of folder to return (shellcon.LFF_*) + riid(PyIID):The interface to return, IObjectCollection and IObjectArray also accepted. + +Returns: + + PyIShellItemArray + + """ + pass + + + def ResolveFolder(self,FolderToResolve:'PyIShellItem',Timeout:'typing.Any',riid:'PyIID') -> 'PyIShellItem': + """ + Attempts to locate a folder that has been moved or renamed + +Args: + + FolderToResolve(PyIShellItem):Library item whose location has changed + Timeout(typing.Any):Max search time, specified in milliseconds + riid(PyIID):The interface to return + +Returns: + + PyIShellItem + + """ + pass + + + def GetDefaultSaveFolder(self,Type:'typing.Any',riid:'PyIID') -> 'PyIShellItem': + """ + Returns the default folder in which new items are + +saved + +Args: + + Type(typing.Any):Specifies whether to return public or private save location, shellcon.DSFT_* + riid(PyIID):The interface to return + +Returns: + + PyIShellItem + + """ + pass + + + def SetDefaultSaveFolder(self,Type:'typing.Any',SaveFolder:'PyIShellItem') -> 'None': + """ + Sets the default save location + +Args: + + Type(typing.Any):Specifies public or private save location, shellcon.DSFT_* + SaveFolder(PyIShellItem):New default location, must be in the library + +Returns: + + None + + """ + pass + + + def GetOptions(self,) -> 'typing.Any': + """ + Retrieves library option flags + +Args: + + + +Returns: + + typing.Any:PyIShellLibrary.GetOptions + +int = GetOptions()Retrieves library option flags +Return ValueReturns a combination of shellcon.LOF_* flags + + + """ + pass + + + def SetOptions(self,Mask:'typing.Any',Options:'typing.Any') -> 'None': + """ + Sets library option flags + +Args: + + Mask(typing.Any):Bitmask of flags to be changed, combination of shellcon.LOF_* values + Options(typing.Any):New options, combination of shellcon.LOF_* values + +Returns: + + None + + """ + pass + + + def GetFolderType(self,) -> 'PyIID': + """ + Returns the library type, shell.FOLDERTYPEID_* + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def SetFolderType(self,Type:'PyIID') -> 'None': + """ + Sets the folder type for the library + +Args: + + Type(PyIID):New type, shell.FOLDERTYPEID_* + +Returns: + + None + + """ + pass + + + def GetIcon(self,) -> 'typing.Any': + """ + Returns the location of the library's icon + +Args: + + + +Returns: + + typing.Any:PyIShellLibrary.GetIcon + +str = GetIcon()Returns the location of the library's icon +Return ValueUses "module,resource" format + + + """ + pass + + + def SetIcon(self,Icon:'typing.Any') -> 'None': + """ + Sets the library icon + +Args: + + Icon(typing.Any):Icon location in "module,resource" syntax + +Returns: + + None + + """ + pass + + + def Commit(self,) -> 'None': + """ + Saves changes (only if loaded from an existing library) + +Args: + + + +Returns: + + None + + """ + pass + + + def Save(self,FolderToSaveIn:'PyIShellItem',LibraryName:'typing.Any',Flags:'typing.Any') -> 'PyIShellItem': + """ + Saves the library to a specific location + +Args: + + FolderToSaveIn(PyIShellItem):The destination folder, use None to save in current user's Libraries folder + LibraryName(typing.Any):Filename for the new library, without file extension + Flags(typing.Any):Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. + +Returns: + + PyIShellItem:Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. + + + """ + pass + + + def SaveInKnownFolder(self,FolderToSaveIn:'PyIID',LibraryName:'typing.Any',Flags:'typing.Any') -> 'PyIShellItem': + """ + Saves the library in a known folder + +Args: + + FolderToSaveIn(PyIID):The destination folder, shell.FOLDERID_* + LibraryName(typing.Any):Filename for the new library, without file extension + Flags(typing.Any):Determines behaviour if file already exists, shellcon.LSF_* + +Returns: + + PyIShellItem + + """ + pass + + +class PyIShellLink(object): + """Interface used to access the properties of a shell link file (*.lnk)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPath(self,fFlags:'typing.Any',cchMaxPath:'typing.Any') -> 'typing.Tuple[typing.Any, WIN32_FIND_DATA]': + """ + Retrieves the target path and file name of a shell link + +object + +Args: + + fFlags(typing.Any):One of the following values:ValueDescriptionSLGP_SHORTPATHRetrieves the standard short (8.3 format) file name.SLGP_UNCPRIORITYRetrieves the Universal Naming Convention (UNC) path name of the file.SLGP_RAWPATHRetrieves the raw path name. A raw path is something that might not exist and may include environment variables that need to be expanded. + cchMaxPath(typing.Any):Number of characters to allocate for returned filenameCommentsThe AlternateFileName (8.3) member of WIN32_FIND_DATA does not return information + +Returns: + + typing.Tuple[typing.Any, WIN32_FIND_DATA] + + """ + pass + + + def GetIDList(self,) -> 'PyIDL': + """ + Retrieves the item id list that identifies the target of the shell link. + +Args: + + + +Returns: + + PyIDL + + """ + pass + + + def SetIDList(self,pidl:'PyIDL') -> 'None': + """ + Sets the target of the link using an item id list + +Args: + + pidl(PyIDL):Absolute item id list that identifies the target + +Returns: + + None + + """ + pass + + + def GetDescription(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': + """ + Retrieves the description of the link (displays as Comment in the UI) + +Args: + + cchMaxName(typing.Any):Number of character to allocate for the retrieved text + +Returns: + + typing.Any + + """ + pass + + + def SetDescription(self,Name:'typing.Any') -> 'None': + """ + Sets the description of the link (displays as Comment in the UI) + +Args: + + Name(typing.Any):The description for the link + +Returns: + + None + + """ + pass + + + def GetWorkingDirectory(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': + """ + Retrieves the working directory for the link + +Args: + + cchMaxName(typing.Any):Number of characters to allocate for returned text + +Returns: + + typing.Any + + """ + pass + + + def SetWorkingDirectory(self,Dir:'typing.Any') -> 'None': + """ + Sets the working directory for the link. + +Args: + + Dir(typing.Any):The working directory for the link + +Returns: + + None + + """ + pass + + + def GetArguments(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': + """ + Retrieves the command-line arguments associated with a shell link object. + +Args: + + cchMaxName(typing.Any):Number of characters to fetch. + +Returns: + + typing.Any + + """ + pass + + + def SetArguments(self,args:'typing.Any') -> 'None': + """ + Sets the command-line arguments associated with a shell link object. + +Args: + + args(typing.Any):The new arguments. + +Returns: + + None + + """ + pass + + + def GetHotkey(self,) -> 'typing.Any': + """ + Retrieves the hot key for a shell link object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetHotkey(self,wHotkey:'typing.Any') -> 'None': + """ + Sets the hot key for a shell link object. + +Args: + + wHotkey(typing.Any):The virtual key code is in the low-order byte, and the modifier flags are in the high-order byte. The modifier flags can be a combination of the values specified in the description of the PyIShellLink::GetHotkey method. + +Returns: + + None + + """ + pass + + + def GetShowCmd(self,) -> 'typing.Any': + """ + Retrieves the show (SW_) command for a shell link object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetShowCmd(self,iShowCmd:'typing.Any') -> 'None': + """ + Sets the show (SW_) command for a shell link object. + +Args: + + iShowCmd(typing.Any):The new show command value. + +Returns: + + None + + """ + pass + + + def GetIconLocation(self,cchMaxPath:'typing.Any') -> 'typing.Any': + """ + Retrieves the location (path and index) of the icon for a shell link + +object. + +Args: + + cchMaxPath(typing.Any):Number of characters to allocate for the result string. + +Returns: + + typing.Any + + """ + pass + + + def SetIconLocation(self,iconPath:'str',iIcon:'typing.Any') -> 'None': + """ + Sets the location (path and index) of the icon for a shell link object. + +Args: + + iconPath(str):Path to the file with the icon. + iIcon(typing.Any):Index of the icon. + +Returns: + + None + + """ + pass + + + def SetRelativePath(self,relPath:'str',reserved:'typing.Any'=0) -> 'None': + """ + Sets the relative path for a shell link object. + +Args: + + relPath(str):The relative path. + reserved(typing.Any):Reserved - must be zero.CommentsThis mechanism allows for moved link files to reestablish connection with relative files through similar-prefix comparisons + +Returns: + + None + + """ + pass + + + def Resolve(self,hwnd:'typing.Any',fFlags:'typing.Any') -> 'None': + """ + Resolves a shell link by searching for the shell link object and updating the + +shell link path and its list of identifiers (if necessary) + +Args: + + hwnd(typing.Any):The parent window of a dialog which will pop up if resolution fails. + fFlags(typing.Any):One of the following constants:ValueDescriptionSLR_INVOKE_MSICall the Microsoft Windows Installer.SLR_NOLINKINFODisable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting SLR_NOLINKINFO disables both types of tracking.SLR_NO_UIDo not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, the high-order word of fFlags can be set to a time-out value that specifies the maximum amount of time to be spent resolving the link. The function returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration will be set to the default value of 3,000 milliseconds (3 seconds). To specify a value, set the high word of fFlags to the desired time-out duration, in milliseconds.SLR_NOUPDATEDo not update the link information.SLR_NOSEARCHDo not execute the search heuristics.SLR_NOTRACKDo not use distributed link tracking.SLR_UPDATEIf the link object has changed, update its path and list of identifiers. If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine whether or not the link object has changed. + +Returns: + + None + + """ + pass + + + def SetPath(self,path:'str') -> 'None': + """ + Sets the path and file name of a shell link object. + +Args: + + path(str):The path and filename of the link. + +Returns: + + None + + """ + pass + + +class PyIShellLinkDataList(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddDataBlock(self,DataBlock:'typing.Any') -> 'None': + """ + Inserts a data block into the link + +Args: + + DataBlock(typing.Any):Contents are dependent on type of data block being addedCommentsInput should be one of NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS, EXP_SPECIAL_FOLDER, EXP_DARWIN_LINK, or EXP_SZ_LINK. Expected form is indicated by the Signature member. + +Returns: + + None + + """ + pass + + + def CopyDataBlock(self,Sig:'typing.Any') -> 'typing.Any': + """ + Retrieves the specified data block from the link + +Args: + + Sig(typing.Any):The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in + +Returns: + + typing.Any:The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in + + + """ + pass + + + def GetFlags(self,) -> 'typing.Any': + """ + Retrieves the link's flags + +Args: + + + +Returns: + + typing.Any:PyIShellLinkDataList.GetFlags + +int = GetFlags()Retrieves the link's flags +Return ValueReturns combination of shellcon.SLDF_* flags + + + """ + pass + + + def RemoveDataBlock(self,Sig:'typing.Any') -> 'None': + """ + Deletes one of the link's data blocks + +Args: + + Sig(typing.Any):Identifies which block is to be removed, one of shellcon.*_SIG constants + +Returns: + + None + + """ + pass + + + def SetFlags(self,Flags:'typing.Any') -> 'None': + """ + Sets the flags indicating which data blocks are present + +Args: + + Flags(typing.Any):Combination of shellcon.SLDF_* flags + +Returns: + + None + + """ + pass + + +class PyIShellView(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,pmsg:'typing.Any') -> 'typing.Any': + """ + Description of TranslateAccelerator. + +Args: + + pmsg(typing.Any):Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call + +Returns: + + typing.Any:Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call + + + """ + pass + + + def EnableModeless(self,fEnable:'typing.Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(typing.Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def UIActivate(self,uState:'typing.Any') -> 'None': + """ + Description of UIActivate. + +Args: + + uState(typing.Any):Description for uState + +Returns: + + None + + """ + pass + + + def Refresh(self,) -> 'None': + """ + Description of Refresh. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateViewWindow(self,psvPrevious:'PyIShellView',pfs:'typing.Tuple[typing.Any, typing.Any]',psb:'PyIShellBrowser',prcView:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Any': + """ + Description of CreateViewWindow. + +Args: + + psvPrevious(PyIShellView):Description for psvPrevious + pfs(typing.Tuple[typing.Any, typing.Any]):Description for pfs + psb(PyIShellBrowser):Description for psb + prcView(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcViewReturn ValueThe result is an integer handle to the new window. + +Returns: + + typing.Any:Description for prcViewReturn ValueThe result is an integer handle to the new window. + + + """ + pass + + + def DestroyViewWindow(self,) -> 'None': + """ + Description of DestroyViewWindow. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentInfo(self,) -> 'typing.Any': + """ + Description of GetCurrentInfo. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SaveViewState(self,) -> 'None': + """ + Description of SaveViewState. + +Args: + + + +Returns: + + None + + """ + pass + + + def SelectItem(self,pidlItem:'PyIDL',uFlags:'typing.Any') -> 'None': + """ + Description of SelectItem. + +Args: + + pidlItem(PyIDL):Description for pidlItem + uFlags(typing.Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def GetItemObject(self,uItem:'typing.Any',riid:'PyIID') -> 'PyIUnknown': + """ + Description of GetItemObject. + +Args: + + uItem(typing.Any):Description for uItem + riid(PyIID):Description for riid + +Returns: + + PyIUnknown + + """ + pass + + +class PyISpecifyPropertyPages(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPages(self,) -> 'None': + """ + Description of GetPages. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIStorage(object): + """Structured storage compound storage object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateStream(self,Name:'typing.Any',Mode:'typing.Any',reserved1:'typing.Any'=0,reserved2:'typing.Any'=0) -> 'PyIStream': + """ + Creates and opens a stream object with the specified name contained + +in this storage object. All elements within a storage object — both streams and other storage objects — are kept in + +the same name space. + +Args: + + Name(typing.Any):Name of the new stream + Mode(typing.Any):Access mode, storagecon.STGM_* + reserved1(typing.Any):Reserved - must be zero. + reserved2(typing.Any):Reserved - must be zero. + +Returns: + + PyIStream + + """ + pass + + + def OpenStream(self,Name:'typing.Any',reserved1:'typing.Any',Mode:'typing.Any',reserved2:'typing.Any'=0) -> 'PyIStream': + """ + Opens an existing stream object within this storage object in the + +specified access mode. + +Args: + + Name(typing.Any):Name of stream to be opened + reserved1(typing.Any):A reserved param. Always pass None. NULL is always passed to the COM function + Mode(typing.Any):Access mode, storagecon.STGM_* + reserved2(typing.Any):Reserved - must be zero. + +Returns: + + PyIStream + + """ + pass + + + def CreateStorage(self,Name:'typing.Any',Mode:'typing.Any',StgFmt:'typing.Any',reserved2:'typing.Any'=0) -> 'PyIStorage': + """ + Creates and opens a new storage object nested within this storage + +object. + +Args: + + Name(typing.Any):The name of the newly created stream. + Mode(typing.Any):Access mode - combination of storagecon.STGM_* flags + StgFmt(typing.Any):Documented as "reserved"! + reserved2(typing.Any):Description for reserved2 + +Returns: + + PyIStorage + + """ + pass + + + def OpenStorage(self,Name:'typing.Any',Priority:'PyIStorage',Mode:'typing.Any',snbExclude:'typing.Any',reserved:'typing.Any'=0) -> 'PyIStorage': + """ + Opens an existing storage object with the specified name in the + +specified access mode. + +Args: + + Name(typing.Any):Name of the storage, or None. + Priority(PyIStorage):If the pstgPriority parameter is not None, it is a PyIStorage object to a previous opening of an element of the storage object, usually one that was opened in priority mode. The storage object should be closed and re-opened according to grfMode. When the PyIStorage::OpenStorage method returns, pstgPriority is no longer valid - use the result value. If the pstgPriority parameter is None, it is ignored. + Mode(typing.Any):Access mode - combination of storagecon.STGM_* flags (must include STGM_SHARE_EXCLUSIVE) + snbExclude(typing.Any):Reserved for later - Must be None + reserved(typing.Any):Reserved integer param. + +Returns: + + PyIStorage + + """ + pass + + + def CopyTo(self,rgiidExclude:'typing.Tuple[typing.Any, typing.Any]',snbExclude:'typing.Any',stgDest:'PyIStorage') -> 'None': + """ + Copies the entire contents of an open storage object to another storage object. + +Args: + + rgiidExclude(typing.Tuple[typing.Any, typing.Any]):List of IID's to be excluded. Use empty seq to exclude all objects, or None to indicate no excludes. + snbExclude(typing.Any):Reserved for later - Must be None + stgDest(PyIStorage):The open storage object into which this storage object is to be copied. The destination storage object can be a different implementation of the PyIStorage interface from the source storage object. Thus, IStorage::CopyTo can only use publicly available methods of the destination storage object. If stgDest is open in transacted mode, it can be reverted by calling its PyIStorage::Revert method. + +Returns: + + None + + """ + pass + + + def MoveElementTo(self,Name:'typing.Any',stgDest:'PyIStorage',NewName:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Copies or moves a substorage or stream from this storage object to another + +storage object. + +Args: + + Name(typing.Any):A string that contains the name of the element in this storage object to be moved or copied. + stgDest(PyIStorage):PyIStorage for the destination storage object. + NewName(typing.Any):A string that contains the new name for the element in its new storage object. + Flags(typing.Any):Specifies whether to move or copy (storagecon.STGMOVE_MOVE or STGMOVE_COPY) + +Returns: + + None + + """ + pass + + + def Commit(self,grfCommitFlags:'typing.Any') -> 'None': + """ + Ensures that any changes made to a storage object open in transacted mode are reflected + +in the parent storage; for a root storage, reflects the changes in the actual device, for example, a file on disk. + +For a root storage object opened in direct mode, this method has no effect except to flush all memory buffers to the + +disk. For non-root storage objects in direct mode, this method has no effect. + +Args: + + grfCommitFlags(typing.Any):Controls how the changes are committed to the storage object. See the STGC enumeration for a definition of these values. + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + Discards all changes that have been made to the storage object since the last commit. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumElements(self,reserved1:'typing.Any'=0,reserved2:'typing.Any'=None,reserved3:'typing.Any'=0) -> 'PyIEnumSTATSTG': + """ + Retrieves an enumerator object that can be used to enumerate the + +storage and stream objects contained within this storage object. + +Args: + + reserved1(typing.Any):Reserved - must be zero. + reserved2(typing.Any):A reserved param. Always pass None. NULL is always passed to the COM function + reserved3(typing.Any):Reserved - must be zero. + +Returns: + + PyIEnumSTATSTG + + """ + pass + + + def DestroyElement(self,name:'str') -> 'None': + """ + Removes the specified storage or stream from this storage object. + +Args: + + name(str):The name of the element to be removed. + +Returns: + + None + + """ + pass + + + def RenameElement(self,OldName:'typing.Any',NewName:'typing.Any') -> 'None': + """ + Renames the specified substorage or stream in this storage object. + +Args: + + OldName(typing.Any):The name of the substorage or stream to be changed. + NewName(typing.Any):The new name for the specified sustorage or stream. + +Returns: + + None + + """ + pass + + + def SetElementTimes(self,name:'typing.Any',ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': + """ + Sets the modification, access, and creation times of the specified storage + +element, if supported by the underlying file system. + +Args: + + name(typing.Any):The name of the storage object element whose times are to be modified. If NULL, the time is set on the root storage rather than one of its elements. + ctime(PyTime):Either the new creation time for the element or None if the creation time is not to be modified. + atime(PyTime):Either the new access time for the element or None if the access time is not to be modified. + mtime(PyTime):Either the new modification time for the element or None if the modification time is not to be modified. + +Returns: + + None + + """ + pass + + + def SetClass(self,clsid:'PyIID') -> 'None': + """ + Assigns the specified CLSID to this storage object. + +Args: + + clsid(PyIID):The class identifier (CLSID) that is to be associated with the storage object. + +Returns: + + None + + """ + pass + + + def SetStateBits(self,grfStateBits:'typing.Any',grfMask:'typing.Any') -> 'None': + """ + Stores up to 32 bits of state information in this storage object. + +Args: + + grfStateBits(typing.Any):Specifies the new values of the bits to set. No legal values are defined for these bits; they are all reserved for future use and must not be used by applications. + grfMask(typing.Any):A binary mask indicating which bits in grfStateBits are significant in this call. + +Returns: + + None + + """ + pass + + + def Stat(self,grfStatFlag:'typing.Any') -> 'STATSTG': + """ + Retrieves the STATSTG structure for this open storage object. + +Args: + + grfStatFlag(typing.Any):Specifies that some of the fields in the STATSTG structure are not returned, thus saving a memory allocation operation. Values are taken from the STATFLAG enumeration. + +Returns: + + STATSTG + + """ + pass + + +class PyIStream(object): + """A Python interface to IStream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,numBytes:'typing.Any') -> 'str': + """ + Read the specified number of bytes from the string. + +Args: + + numBytes(typing.Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + +Returns: + + str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + + + """ + pass + + + def read(self,numBytes:'typing.Any') -> 'str': + """ + Read the specified number of bytes from the string. + +Args: + + numBytes(typing.Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + +Returns: + + str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + + + """ + pass + + + def Write(self,data:'str') -> 'None': + """ + Write data to a stream + +Args: + + data(str):The binary data to write. + +Returns: + + None + + """ + pass + + + def write(self,data:'str') -> 'None': + """ + Write data to a stream + +Args: + + data(str):The binary data to write. + +Returns: + + None + + """ + pass + + + def Seek(self,offset:'typing.Any',origin:'typing.Any') -> 'ULARGE_INTEGER': + """ + Changes the seek pointer to a new location. + +Args: + + offset(typing.Any):The new location + origin(typing.Any):Relative to where? + +Returns: + + ULARGE_INTEGER + + """ + pass + + + def SetSize(self,newSize:'ULARGE_INTEGER') -> 'None': + """ + Changes the size of the stream object. + +Args: + + newSize(ULARGE_INTEGER):The new size + +Returns: + + None + + """ + pass + + + def CopyTo(self,stream:'PyIStream',cb:'ULARGE_INTEGER') -> 'ULARGE_INTEGER': + """ + Copies a specified number of bytes from the current seek pointer in the + +stream to the current seek pointer in another stream. + +Args: + + stream(PyIStream):The stream to write to. + cb(ULARGE_INTEGER):The number of bytes to write.Return ValueThe return value is the number of bytes actually written. + +Returns: + + ULARGE_INTEGER:The number of bytes to write.Return ValueThe return value is the number of bytes actually written. + + + """ + pass + + + def Commit(self,flags:'typing.Any') -> 'None': + """ + Ensures that any changes made to a stream object open in transacted mode are reflected in + +the parent storage. + +Args: + + flags(typing.Any):Controls how changes are performed. + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def LockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'typing.Any') -> 'None': + """ + Restricts access to a specified range of bytes in the stream. + +Args: + + offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. + cb(ULARGE_INTEGER):The number of bytes to restrict. + lockType(typing.Any):Restrictions requested. + +Returns: + + None + + """ + pass + + + def UnLockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'typing.Any') -> 'None': + """ + None + +Args: + + offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. + cb(ULARGE_INTEGER):The number of bytes to restrict. + lockType(typing.Any):Restrictions requested. + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIStream': + """ + Creates a new stream object with its own seek pointer that references the + +same bytes as the original stream. + +Args: + + + +Returns: + + PyIStream + + """ + pass + + + def Stat(self,grfStatFlag:'typing.Any'=0) -> 'STATSTG': + """ + Returns information about the stream + +Args: + + grfStatFlag(typing.Any):Flags. + +Returns: + + STATSTG + + """ + pass + + +class PyITask(object): + """Python object that encapsulates the ITask interface, inherits all the methods of PyIScheduledWorkItem""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetApplicationName(self,ApplicationName:'typing.Any') -> 'None': + """ + Specify which program the task will run + +Args: + + ApplicationName(typing.Any):Program to execute + +Returns: + + None + + """ + pass + + + def GetApplicationName(self,) -> 'typing.Any': + """ + Retrieve name of program that task will run + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetParameters(self,Parameters:'typing.Any') -> 'None': + """ + Sets command line parameters + +Args: + + Parameters(typing.Any):String containing command line parameters + +Returns: + + None + + """ + pass + + + def GetParameters(self,) -> 'typing.Any': + """ + Returns command line parameters for task + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetWorkingDirectory(self,WorkingDirectory:'typing.Any') -> 'None': + """ + Sets initial working directory for task + +Args: + + WorkingDirectory(typing.Any):Initial working directory + +Returns: + + None + + """ + pass + + + def GetWorkingDirectory(self,) -> 'typing.Any': + """ + Return working directory that the task will start out in + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetPriority(self,Priority:'typing.Any') -> 'None': + """ + Sets priority for task + +Args: + + Priority(typing.Any):One of REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS + +Returns: + + None + + """ + pass + + + def GetPriority(self,) -> 'typing.Any': + """ + Gets priority that will be assigned to process when task starts + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetTaskFlags(self,dwFlags:'typing.Any') -> 'None': + """ + Sets flag for task. + +Args: + + dwFlags(typing.Any):None currently defined + +Returns: + + None + + """ + pass + + + def GetTaskFlags(self,) -> 'typing.Any': + """ + Retrieve task flags (None currently defined) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetMaxRunTime(self,MaxRunTimeMS:'typing.Any') -> 'None': + """ + Sets maximun run time for task, use -1 to disable + +Args: + + MaxRunTimeMS(typing.Any):Specified in milliseconds (use -1 to disable, not 0) + +Returns: + + None + + """ + pass + + + def GetMaxRunTime(self,) -> 'typing.Any': + """ + Returns maximun run time for task + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyITaskScheduler(object): + """Interface to the Windows Task Scheduler""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetTargetComputer(self,Computer:'typing.Any') -> 'None': + """ + Connect to another machine to manage its tasks + +Args: + + Computer(typing.Any):Name of system to connect toCommentsLeading backslashes are required. Call will succeed without them, but no other methods will work. + +Returns: + + None + + """ + pass + + + def GetTargetComputer(self,) -> 'typing.Any': + """ + Returns name of computer that the Task Scheduler is + +connected to + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Enum(self,) -> 'typing.Tuple[str, ...]': + """ + Retrieve list of task names + +Args: + + + +Returns: + + typing.Tuple[str, ...] + + """ + pass + + + def Activate(self,Name:'typing.Any',riid:'PyIID') -> 'PyITask': + """ + Opens the specified task and returns an ITask interface for it + +Args: + + Name(typing.Any):Name of task to retreive + riid(PyIID):IID to return, currently only IID_ITask accepted + +Returns: + + PyITask + + """ + pass + + + def Delete(self,TaskName:'typing.Any') -> 'None': + """ + Delete task by name + +Args: + + TaskName(typing.Any):Name of task to delete + +Returns: + + None + + """ + pass + + + def NewWorkItem(self,TaskName:'typing.Any',rclsid:'PyIID',riid:'PyIID') -> 'PyITask': + """ + Creates a new task + +Args: + + TaskName(typing.Any):Name of new task + rclsid(PyIID):Class id of work item, currently only CLSID_CTask (defaults if not passed in) + riid(PyIID):Interface IID to return, currently only IID_ITask (defaults if not passed in) + +Returns: + + PyITask + + """ + pass + + + def AddWorkItem(self,TaskName:'typing.Any',WorkItem:'PyITask') -> 'None': + """ + Create a new scheduled task from PyITask object + +Args: + + TaskName(typing.Any):Name of task to be created + WorkItem(PyITask):Existing PyITask objectCommentsThe PyItask passed in is modified in place and on success is associated with the new task, not the old one + +Returns: + + None + + """ + pass + + + def IsOfType(self,Name:'typing.Any',riid:'PyIID') -> 'None': + """ + Check if named object supports specified interface + +Args: + + Name(typing.Any):Name of object + riid(PyIID):Named object is checked that it supports the interface of this IID + +Returns: + + None + + """ + pass + + +class PyITaskTrigger(object): + """Python object that encapsulates the ITaskTrigger interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetTrigger(self,Trigger:'PyTASK_TRIGGER') -> 'None': + """ + Set trigger parameters from a PyTASK_TRIGGER object + +Args: + + Trigger(PyTASK_TRIGGER):Python object representing a TASK_TRIGGER struct + +Returns: + + None + + """ + pass + + + def GetTrigger(self,) -> 'PyTASK_TRIGGER': + """ + Retrieves trigger parms as a PyTASK_TRIGGER object + +Args: + + + +Returns: + + PyTASK_TRIGGER + + """ + pass + + + def GetTriggerString(self,) -> 'str': + """ + Build text summary of trigger + +Args: + + + +Returns: + + str + + """ + pass + + +class PyITaskbarList(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def HrInit(self,) -> 'None': + """ + Intializes the interface before use + +Args: + + + +Returns: + + None + + """ + pass + + + def AddTab(self,hwnd:'int') -> 'None': + """ + Places a window on the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def DeleteTab(self,hwnd:'int') -> 'None': + """ + Removes a window from the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def ActivateTab(self,hwnd:'int') -> 'None': + """ + Marks a window as the active tab on the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def SetActiveAlt(self,hwnd:'int') -> 'None': + """ + Sets the window as the active tab, without displaying it as pressed on the + +taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + +class PyITransferAdviseSink(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def UpdateProgress(self,SizeCurrent:'typing.Any',SizeTotal:'typing.Any',FilesCurrent:'typing.Any',FilesTotal:'typing.Any',FoldersCurrent:'typing.Any',FoldersTotal:'typing.Any') -> 'None': + """ + Gives an estimate of amount of work completed + +Args: + + SizeCurrent(typing.Any):Bytes transferred so far + SizeTotal(typing.Any):Total number of bytes + FilesCurrent(typing.Any):Number of files processed already + FilesTotal(typing.Any):Total number of files + FoldersCurrent(typing.Any):Number of folders processed already + FoldersTotal(typing.Any):Total number of folder + +Returns: + + None + + """ + pass + + + def UpdateTransferState(self,State:'typing.Any') -> 'None': + """ + Notifies client of current operation state + +Args: + + State(typing.Any):A TRANSFER_ADVISE_STATE value (shellcon.TS_*) + +Returns: + + None + + """ + pass + + + def ConfirmOverwrite(self,Source:'PyIShellItem',DestParent:'PyIShellItem',Name:'typing.Any') -> 'typing.Any': + """ + Asks user for permission to overwrite an existing item + +Args: + + Source(PyIShellItem):The item that will replace existing item + DestParent(PyIShellItem):Folder into which item will be placed + Name(typing.Any):New name for item, or None if item is to keep original name + +Returns: + + typing.Any + + """ + pass + + + def ConfirmEncryptionLoss(self,Source:'PyIShellItem') -> 'typing.Any': + """ + Notifies user when an item can't be encrypted at + +destination + +Args: + + Source(PyIShellItem):Item that failed to be encrypted + +Returns: + + typing.Any + + """ + pass + + + def FileFailure(self,Item:'PyIShellItem',ItemName:'typing.Any',Error:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Notifies user of failure, and queries how to proceed + +Args: + + Item(PyIShellItem):The shell item that caused the failure + ItemName(typing.Any):Name of item if different than above, can be None + Error(typing.Any):HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure + +Returns: + + typing.Tuple[typing.Any, typing.Any]:HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure + + + """ + pass + + + def SubStreamFailure(self,Item:'PyIShellItem',StreamName:'typing.Any',Error:'typing.Any') -> 'typing.Any': + """ + Notifies user of failure on a substream, and queries how to + +proceed + +Args: + + Item(PyIShellItem):The item whose stream couldn't be created + StreamName(typing.Any):Name of the failed stream + Error(typing.Any):HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled + +Returns: + + typing.Any:HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled + + + """ + pass + + + def PropertyFailure(self,Item:'PyIShellItem',key:'PyPROPERTYKEY',Error:'typing.Any') -> 'typing.Any': + """ + Notifies user of failure to set an item's properties + +Args: + + Item(PyIShellItem):The item whose property could not be set + key(PyPROPERTYKEY):Identifies the property that caused the error, or None if all properties failed + Error(typing.Any):HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or COPYENGINE_E_USERCANCELLED to cancel pending operations + +Returns: + + typing.Any:HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or + +COPYENGINE_E_USERCANCELLED to cancel pending operations + + + """ + pass + + +class PyITransferDestination(object): + """Implemented by shell extensions that act as targets for item copy or move operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'PyITransferAdviseSink') -> 'typing.Any': + """ + Connects an advise sink + +Args: + + Sink(PyITransferAdviseSink):Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise + +Returns: + + typing.Any:Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise + + + """ + pass + + + def Unadvise(self,Cookie:'typing.Any') -> 'None': + """ + Disconnects an advise sink + +Args: + + Cookie(typing.Any):Connection identifier as returned by PyITransferDestination::Advise + +Returns: + + None + + """ + pass + + + def CreateItem(self,Name:'typing.Any',Attributes:'typing.Any',Size:'typing.Any',Flags:'typing.Any',riidItem:'PyIID',riidResources:'PyIID') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Requests that a new item be created + +Args: + + Name(typing.Any):Filename to be created + Attributes(typing.Any):File attributes + Size(typing.Any):Size of file + Flags(typing.Any):Combination of shellcon.TSF_* flags + riidItem(PyIID):Item interface to return + riidResources(PyIID):Resource interface to returnReturn ValueReturns the HRESULT and requested interfaces. Interfaces may be None if function returns one of the informational codes (shellcon.COPYENGINE_S_*) + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:Resource interface to return +Return ValueReturns the HRESULT and requested interfaces. Interfaces may be None if + +function returns one of the informational codes (shellcon.COPYENGINE_S_*) + + + """ + pass + + +class PyITransferMediumItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyITransferSource(object): + """Implemented by shell folders that can act as the source of shell item operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'PyITransferAdviseSink') -> 'typing.Any': + """ + Connects an advise sink to receive notifications + +Args: + + Sink(PyITransferAdviseSink):Event sink to respond to notifications + +Returns: + + typing.Any + + """ + pass + + + def Unadvise(self,Cookie:'typing.Any') -> 'None': + """ + Disconnects an event sink + +Args: + + Cookie(typing.Any):Connection id as returned by PyITransferSource::Advise + +Returns: + + None + + """ + pass + + + def SetProperties(self,proparray:'PyIPropertyChangeArray') -> 'None': + """ + Specifies changes to be applied to items' properties + +Args: + + proparray(PyIPropertyChangeArray):Property changes to be applied by PyITransferSource::ApplyPropertiesToItem + +Returns: + + None + + """ + pass + + + def OpenItem(self,Item:'PyIShellItem',flags:'typing.Any',riid:'PyIID') -> 'typing.Tuple[typing.Any, PyIShellItemResources]': + """ + Initiates the copying of an item + +Args: + + Item(PyIShellItem):The item to be copied. + flags(typing.Any):Combination of shellcon.TSF_* flags + riid(PyIID):The interface to return + +Returns: + + typing.Tuple[typing.Any, PyIShellItemResources] + + """ + pass + + + def MoveItem(self,Item:'PyIShellItem',ParentDst:'PyIShellItem',NameDst:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': + """ + Moves a shell item into another folder + +Args: + + Item(PyIShellItem):Item to be moved + ParentDst(PyIShellItem):The folder into which it will be moved + NameDst(typing.Any):New name for item after move, None to keep same name + flags(typing.Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions of expected actions for specific error codes. + +Returns: + + typing.Tuple[typing.Any, PyIShellItem]:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None + +when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions + +of expected actions for specific error codes. + + + """ + pass + + + def RecycleItem(self,Source:'PyIShellItem',ParentDest:'PyIShellItem',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': + """ + Moves an item to the recycle bin + +Args: + + Source(PyIShellItem):The item to be recycled + ParentDest(PyIShellItem):Shell item representing the recycle bin + flags(typing.Any):Combination of shellcon.TSF_* flags + +Returns: + + typing.Tuple[typing.Any, PyIShellItem] + + """ + pass + + + def RemoveItem(self,Source:'PyIShellItem',flags:'typing.Any') -> 'typing.Any': + """ + Deletes an item without recycling + +Args: + + Source(PyIShellItem):The item to be deleted + flags(typing.Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation + +Returns: + + typing.Any:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation + + + """ + pass + + + def RenameItem(self,Source:'PyIShellItem',NewName:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': + """ + Renames a shell item + +Args: + + Source(PyIShellItem):Item to be renamed + NewName(typing.Any):The name to be given to the item + flags(typing.Any):Combination of shellcon.TSF_* flags + +Returns: + + typing.Tuple[typing.Any, PyIShellItem] + + """ + pass + + + def LinkItem(self,Source:'PyIShellItem',ParentDest:'PyIShellItem',NewName:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': + """ + Not implemented, according to MSDN + +Args: + + Source(PyIShellItem):Description for psiSource + ParentDest(PyIShellItem):Description for psiParentDest + NewName(typing.Any):Description for NewName + flags(typing.Any):Combination of shellcon.TSF_* flags + +Returns: + + typing.Tuple[typing.Any, PyIShellItem] + + """ + pass + + + def ApplyPropertiesToItem(self,Source:'PyIShellItem') -> 'PyIShellItem': + """ + None + +Args: + + Source(PyIShellItem):Item whose properties are to be changed + +Returns: + + PyIShellItem + + """ + pass + + + def GetDefaultDestinationName(self,Source:'PyIShellItem',ParentDest:'PyIShellItem') -> 'typing.Any': + """ + Determines the name of an item as it would appear in a + +given folder + +Args: + + Source(PyIShellItem):The item whose name is wanted + ParentDest(PyIShellItem):The destination folder + +Returns: + + typing.Any + + """ + pass + + + def EnterFolder(self,ChildFolderDest:'PyIShellItem') -> 'typing.Any': + """ + Informs the copy engine that a folder will be the target of a file + +operation + +Args: + + ChildFolderDest(PyIShellItem):The destination folder for the operation + +Returns: + + typing.Any + + """ + pass + + + def LeaveFolder(self,ChildFolderDest:'PyIShellItem') -> 'typing.Any': + """ + Informs the copy engine that the operation on a destination folder is + +finished + +Args: + + ChildFolderDest(PyIShellItem):Destination folder + +Returns: + + typing.Any + + """ + pass + + +class PyITypeComp(object): + """An object that implements the ITypeComp interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Bind(self,szName:'str',wflags:'typing.Any'=0) -> 'typing.Any': + """ + binds to a variable/type + +Args: + + szName(str):The name to bind to + wflags(typing.Any):the bind flags + +Returns: + + typing.Any + + """ + pass + + + def BindType(self,szName:'str') -> 'typing.Any': + """ + binds to a type + +Args: + + szName(str):The name to bind to + +Returns: + + typing.Any + + """ + pass + + +class PyITypeInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetContainingTypeLib(self,) -> 'typing.Tuple[PyITypeLib, typing.Any]': + """ + Retrieves the containing type library and the index of + +the type description within that type library. + +Args: + + + +Returns: + + typing.Tuple[PyITypeLib, typing.Any] + + """ + pass + + + def GetDocumentation(self,memberId:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the documentation string, + +the complete Help file name and path, and the context ID for the Help topic for a specified type description. + +Args: + + memberId(typing.Any): + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetFuncDesc(self,memberId:'typing.Any') -> 'FUNCDESC': + """ + None + +Args: + + memberId(typing.Any): + +Returns: + + FUNCDESC + + """ + pass + + + def GetImplTypeFlags(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or + +base interface in a type description. + +Args: + + index(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def GetIDsOfNames(self,) -> 'typing.Any': + """ + Maps between member names and member IDs, and parameter names and parameter + +IDs. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNames(self,memberId:'typing.Any') -> 'typing.Any': + """ + Retrieves the variable with the specified member ID (or the name of + +the property or method and its parameters) that correspond to the specified function ID. + +Args: + + memberId(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def GetTypeAttr(self,) -> 'TYPEATTR': + """ + None + +Args: + + + +Returns: + + TYPEATTR + + """ + pass + + + def GetRefTypeInfo(self,hRefType:'typing.Any') -> 'PyITypeInfo': + """ + If a type description references other type descriptions, it + +retrieves the referenced type descriptions. + +Args: + + hRefType(typing.Any): + +Returns: + + PyITypeInfo + + """ + pass + + + def GetRefTypeOfImplType(self,hRefType:'typing.Any') -> 'typing.Any': + """ + Retrieves the type description of the implemented interface types. + +Args: + + hRefType(typing.Any):CommentsIf a type description describes a COM class, it retrieves the type description of the implemented interface types. For an interface, GetRefTypeOfImplType returns the type information for inherited interfaces, if any exist. + +Returns: + + typing.Any + + """ + pass + + + def GetVarDesc(self,memberId:'typing.Any') -> 'VARDESC': + """ + None + +Args: + + memberId(typing.Any): + +Returns: + + VARDESC + + """ + pass + + + def GetTypeComp(self,) -> 'PyITypeComp': + """ + None + +Args: + + + +Returns: + + PyITypeComp + + """ + pass + + +class PyITypeLib(object): + """An object that implements the ITypeLib interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentation(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves documentation information about the library. + +Args: + + index(typing.Any):The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) + +Returns: + + typing.Any:The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) + + + """ + pass + + + def GetLibAttr(self,) -> 'TLIBATTR': + """ + Retrieves the libraries attributes + +Args: + + + +Returns: + + TLIBATTR + + """ + pass + + + def GetTypeComp(self,) -> 'PyITypeComp': + """ + None + +Args: + + + +Returns: + + PyITypeComp + + """ + pass + + + def GetTypeInfo(self,index:'typing.Any') -> 'PyITypeInfo': + """ + Retrieves the specified type description in the library. + +Args: + + index(typing.Any):The index of the type description within the library + +Returns: + + PyITypeInfo + + """ + pass + + + def GetTypeInfoCount(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTypeInfoOfGuid(self,iid:'PyIID') -> 'PyITypeInfo': + """ + Retrieves the type info of the specified GUID. + +Args: + + iid(PyIID):GUID of the type description. + +Returns: + + PyITypeInfo + + """ + pass + + + def GetTypeInfoType(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves the type of a type description. + +Args: + + index(typing.Any):The index of the type description within the library + +Returns: + + typing.Any + + """ + pass + + +class PyIUniformResourceLocator(object): + """Interface to an internet shortcut""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetURL(self,) -> 'typing.Any': + """ + Returns the URL for the shortcut + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetURL(self,URL:'typing.Any',InFlags:'typing.Any'=0) -> 'None': + """ + Sets the URL for the shortcut + +Args: + + URL(typing.Any):The url to be set + InFlags(typing.Any):One of the shellcon.IURL_SETURL* flags + +Returns: + + None + + """ + pass + + + def InvokeCommand(self,Verb:'typing.Any',Flags:'typing.Any'=0,hwndParent:'int'=0) -> 'typing.Any': + """ + Performs one of the object's predefined actions + +Args: + + Verb(typing.Any):The verb to be invoked + Flags(typing.Any):Combination of shellcon.IURL_INVOKECOMMAND_* flags + hwndParent(int):Handle to parent window + +Returns: + + typing.Any + + """ + pass + + +class PyIUnknown(object): + """The base object for all PythonCOM objects. Wraps a COM IUnknown object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryInterface(self,iid:'typing.Any',useIID:'typing.Any'=None) -> 'PyIUnknown': + """ + Queries an object for a specific interface. + +Args: + + iid(typing.Any):The IID requested. + useIID(typing.Any):If provided and not None, will return an interface for the specified IID if (and only if) a native interface can not be supported. If the interface specified by iid is natively supported, this option is ignored.CommentsThe useIID parameter is a very dangerous option, and should only be used when you are sure you need it! By specifying this parameter, you are telling the COM framework that regardless of the true type of the result (as specified by iid), a Python wrapper of type useIID will be created. If iid does not derive from useIID, then it is almost certain that using the object will cause an Access Violation. For example, this option can be used to obtain a PyIUnknown object if pythoncom does not natively support the interface. Another example might be to return an unsupported persistence interface as a PyIPersist instance. For backwards compatibility: the integer 0 implies None, and the integer 1 implies IID_IUnknown.Return ValueThe result is always an object derived from PyIUnknown. Any error (including E_NOINTERFACE) will generate a com_error exception. + +Returns: + + PyIUnknown:If provided and not None, will return an + +interface for the specified IID if (and only if) a native interface can not be supported. + +If the interface specified by iid is natively supported, this option is ignored. +Comments + +The useIID parameter is a very dangerous option, and should only + +be used when you are sure you need it! + +By specifying this parameter, you are telling the COM framework that regardless + +of the true type of the result (as specified by iid), a Python wrapper + +of type useIID will be created. If iid does not derive from useIID, + +then it is almost certain that using the object will cause an Access Violation. + +For example, this option can be used to obtain a PyIUnknown object if + +pythoncom does not natively support the interface. + +Another example might be to return an unsupported persistence interface as a + +PyIPersist instance. + +For backwards compatibility: the integer 0 implies None, and the + +integer 1 implies IID_IUnknown. +Return ValueThe result is always an object derived from PyIUnknown. + +Any error (including E_NOINTERFACE) will generate a com_error exception. + + + """ + pass + + +class PyIViewObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Draw(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any',hdcTargetDev:'typing.Any',hdcDraw:'typing.Any',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',funcContinue:'typing.Any',obContinue:'typing.Any') -> 'None': + """ + Description of Draw. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + lindex(typing.Any):Description for lindex + aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + hdcTargetDev(typing.Any):Description for hdcTargetDev + hdcDraw(typing.Any):Description for hdcDraw + arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Bounds rectangle. + arg1(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):WBounds rectangle. + funcContinue(typing.Any):A continue function. + obContinue(typing.Any):Value passed to the function. + +Returns: + + None + + """ + pass + + + def GetColorSet(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any',hicTargetDev:'typing.Any') -> 'None': + """ + Description of GetColorSet. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + lindex(typing.Any):Description for lindex + aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + hicTargetDev(typing.Any):Description for hicTargetDev + +Returns: + + None + + """ + pass + + + def Freeze(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any') -> 'None': + """ + Description of Freeze. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + lindex(typing.Any):Description for lindex + aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + +Returns: + + None + + """ + pass + + + def Unfreeze(self,dwFreeze:'typing.Any') -> 'None': + """ + Description of Unfreeze. + +Args: + + dwFreeze(typing.Any):Description for dwFreeze + +Returns: + + None + + """ + pass + + + def SetAdvise(self,aspects:'typing.Any',advf:'typing.Any',pAdvSink:'typing.Any') -> 'None': + """ + Description of SetAdvise. + +Args: + + aspects(typing.Any):Description for aspects + advf(typing.Any):Description for advf + pAdvSink(typing.Any):Description for pAdvSink + +Returns: + + None + + """ + pass + + + def GetAdvise(self,) -> 'None': + """ + Description of GetAdvise. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIViewObject2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetExtent(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',targetDevice:'typing.Any') -> 'None': + """ + Description of GetExtent. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + lindex(typing.Any):Description for lindex + targetDevice(typing.Any):Description for lindex + +Returns: + + None + + """ + pass + + +class PyMAPINAMEIDArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyOLEMENUGROUPWIDTHS(object): + """Tuple containing 6 ints indicating nbr of options in each menu group""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROPERTYKEY(object): + """A tuple of a fmtid and property id (IID, int) that uniquely identifies a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROPVARIANT(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def vt(self)->'typing.Any': + """The variant type, a combination of VARENUM values including flags. (read only)MethodsGetValueReturns an object representing the variant value ToStringReturns the value as a string ChangeTypeCoerce to a different variant type """ + pass + + + def GetValue(self,) -> 'typing.Any': + """ + Returns an object representing the variant value + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def ToString(self,) -> 'typing.Any': + """ + Returns the value as a string + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def ChangeType(self,Type:'typing.Any',Flags:'typing.Any'=0) -> 'PyPROPVARIANT': + """ + Coerce to a different variant type + +Args: + + Type(typing.Any):New variant type, combination of pythoncom.VT_* values + Flags(typing.Any):Reserved (PROPVAR_CHANGE_FLAGS)Win32 API References + +Returns: + + PyPROPVARIANT + + """ + pass + + +class PySAndRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySBinaryArray(object): + """A sequence of strings containing binary data.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySBitMaskRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySContentRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySExistRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySHELL_ITEM_RESOURCE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySNotRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySOrRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropTagArray(object): + """A sequence of integers""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropValue(object): + """A MAPI property value. Property values can either be passed from + +python into MAPI functions, or returned from MAPI functions to Python.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropValueArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropertyRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRow(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRowSet(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySSortOrderItem(object): + """An item in a SortOrderSet.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySSortOrderSet(object): + """An object describing a SortOrderSet.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySTGMEDIUM(object): + """A STGMEDIUM object represents a COM STGMEDIUM structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def tymed(self)->'typing.Any': + """An integer indicating the type of data in the stgmedium""" + pass + + + @property + def data(self)->'typing.Any': + """The data in the stgmedium. The result depends on the value of the 'tymed' property of the PySTGMEDIUM object.tymedResult TypeTYMED_GDIAn integer GDI handleTYMED_MFPICTAn integer METAFILE handleTYMED_ENHMFAn integer ENHMETAFILE handleTYMED_HGLOBALA string with the bytes of the global memory object.TYMED_FILEA string/unicode filenameTYMED_ISTREAMA PyIStream objectTYMED_ISTORAGEA PyIStorage object""" + pass + + + @property + def data_handle(self)->'typing.Any': + """The raw 'integer' representation of the data. For TYMED_HGLOBAL, this is the handle rather than the string data. For the string and interface types, this is an integer holding the pointer.""" + pass + + + def set(self,tymed:'typing.Any',data:'typing.Any') -> 'None': + """ + Sets the type and data of the object. + +Args: + + tymed(typing.Any):The type of the data + data(typing.Any): + +Returns: + + None + + """ + pass + + +class PyTASK_TRIGGER(object): + """Python object representing a TASK_TRIGGER structure via the structmember Api""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class RTF_WCSINFO(object): + """A tuple representing a RTF_WCSINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SHFILEINFO(object): + """A tuple representing a SHFILEINFO structure + +Represented as a tuple of (hIcon, iIcon, dwAttributes, displayName, typeName)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SHFILEOPSTRUCT(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_ACCESS(object): + """Tuple of 4 items representing SI_ACCESS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_INHERIT_TYPE(object): + """Tuple of 3 items describing a method of inheritance""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_OBJECT_INFO(object): + """Six-tuple representing SI_OBJECT_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class STATSTG(object): + """A tuple representing a STATSTG structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TLIBATTR(object): + """Type library attributes are represented as a tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TYPEATTR(object): + """A TYPEATTR object represents a COM TYPEATTR structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def iid(self)->'PyIID': + """The IID""" + pass + + + @property + def lcid(self)->'typing.Any': + """The lcid""" + pass + + + @property + def memidConstructor(self)->'typing.Any': + """ID of constructor""" + pass + + + @property + def memidDestructor(self)->'typing.Any': + """ID of destructor""" + pass + + + @property + def cbSizeInstance(self)->'typing.Any': + """The size of an instance of this type""" + pass + + + @property + def typekind(self)->'typing.Any': + """The kind of type this information describes. One of the win32con.TKIND_* constants.""" + pass + + + @property + def cFuncs(self)->'typing.Any': + """Number of functions.""" + pass + + + @property + def cVars(self)->'typing.Any': + """Number of variables/data members.""" + pass + + + @property + def cImplTypes(self)->'typing.Any': + """Number of implemented interfaces.""" + pass + + + @property + def cbSizeVft(self)->'typing.Any': + """The size of this type's VTBL""" + pass + + + @property + def cbAlignment(self)->'typing.Any': + """Byte alignment for an instance of this type.""" + pass + + + @property + def wTypeFlags(self)->'typing.Any': + """One of the pythoncom TYPEFLAG_""" + pass + + + @property + def wMajorVerNum(self)->'typing.Any': + """Major version number.""" + pass + + + @property + def wMinorVerNum(self)->'typing.Any': + """Minor version number.""" + pass + + + @property + def tdescAlias(self)->'TYPEDESC': + """If TypeKind == pythoncom.TKIND_ALIAS, specifies the type for which this type is an alias.""" + pass + + + @property + def idldeskType(self)->'IDLDESC': + """IDL attributes of the described type.""" + pass + + +class TYPEDESC(object): + """A typedesc is a complicated, recursive object, + +It may be either a simple Python type, or a tuple of (indirectType, object), where object + +may be a simple Python type, or a tuple of etc ...""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class VARDESC(object): + """A VARDESC object represents a COM VARDESC structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def memid(self)->'typing.Any': + """The dispid of the member""" + pass + + + @property + def value(self)->'typing.Union[typing.Any]': + """A value for the variant. If PERINSTANCE then an offset into the instance, otherwise a variant converted to a Python object.""" + pass + + + @property + def elemdescVar(self)->'ELEMDESC': + """Object describing the member.""" + pass + + + @property + def varFlags(self)->'typing.Any': + """Variable flags""" + pass + + + @property + def varkind(self)->'typing.Any': + """Kind flags.""" + pass + + +class CHARFORMAT(object): + """Describes a CHARFORMAT tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class CREATESTRUCT(object): + """A representation of a Windows CREATESTRUCT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LV_COLUMN(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LV_ITEM(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PARAFORMAT(object): + """Describes a PARAFORMAT tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyAssocCObject(object): + """An internal class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyAssocObject(object): + """An internal class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AttachObject(self,) -> 'None': + """ + Attaches a Python object for lookup of "virtual" functions. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAttachedObject(self,) -> 'typing.Any': + """ + Returned the attached Python object, or None. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCBitmap(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateCompatibleBitmap(self,dc:'PyCDC',width:'typing.Any',height:'typing.Any') -> 'None': + """ + Creates a bitmap compatible with the specified device context. + +Args: + + dc(PyCDC):Specifies the device context. + width(typing.Any):The width (in bits) of the bitmap + height(typing.Any):The height (in bits) of the bitmap. + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the size of the bitmap object. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetHandle(self,) -> 'typing.Any': + """ + Returns the HBITMAP for a bitmap object + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LoadBitmap(self,idRes:'typing.Any',obDLL:'PyDLL'=None) -> 'None': + """ + Loads a bitmap from a DLL object. + +Args: + + idRes(typing.Any):The resource ID of the bitmap + obDLL(PyDLL):The DLL object to load from. + +Returns: + + None + + """ + pass + + + def LoadBitmapFile(self,fileObject:'typing.Any') -> 'None': + """ + Loads a bitmap (.BMP) format + +from a file object. + +Args: + + fileObject(typing.Any):The file object to load the .BMP format file from. + +Returns: + + None + + """ + pass + + + def LoadPPMFile(self,fileObject:'typing.Any',cols:'typing.Any',rows:'typing.Any') -> 'None': + """ + Loads a bitmap in Portable Pix Map (PPM) format + +from a file object. + +Args: + + fileObject(typing.Any):The file object to load the PPM format file from. + cols(typing.Any):The number of columns in the bitmap. + rows(typing.Any):The number of rows in the bitmap. + +Returns: + + None + + """ + pass + + + def Paint(self,dcObject:'PyCDC',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Paint a bitmap. + +Args: + + dcObject(PyCDC):The DC object to paint the bitmap to. + arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The destination rectangle to paint to. + arg1(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The source rectangle to paint from. + +Returns: + + None + + """ + pass + + + def GetInfo(self,) -> 'typing.Any': + """ + Returns the BITMAP structure info + +Args: + + + +Returns: + + typing.Any:PyCBitmap.GetInfo + +dict = GetInfo()Returns the BITMAP structure info +Return ValueA dictionary of integers, keyed by the following strings: + +bmType + +bmWidth + +bmHeight + +bmWidthBytes + +bmPlanes + +bmBitsPixel + + + """ + pass + + + def GetBitmapBits(self,asString:'typing.Any'=0) -> 'typing.Union[str, typing.Any]': + """ + Returns the bitmap bits. + +Args: + + asString(typing.Any):If False, the result is a tuple of integers, if True, the result is a Python string + +Returns: + + typing.Union[str, typing.Any] + + """ + pass + + + def SaveBitmapFile(self,dcObject:'PyCDC',Filename:'str') -> 'typing.Any': + """ + Saves a bitmap to a file. + +Args: + + dcObject(PyCDC):The DC object that has rendered the bitmap. + Filename(str):The file to save the bitmap to + +Returns: + + typing.Any + + """ + pass + + +class PyCBrush(object): + """An object encapsulating an MFC PyCBrush class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateSolidBrush(self,) -> 'None': + """ + Initializes a brush with a specified solid color. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSafeHandle(self,) -> 'typing.Any': + """ + Retrieves the HBRUSH for the brush as an integer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCButton(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,caption:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the window for a new button object. + +Args: + + caption(str):The caption (text) for the button. + style(typing.Any):The style for the button. Use any of the win32con.BS_* constants. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the button. + parent(PyCWnd):The parent window of the button. Usually a PyCDialog. + _id(typing.Any):The buttons control ID. + +Returns: + + None + + """ + pass + + + def GetBitmap(self,) -> 'typing.Any': + """ + Get the button's bitmap + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetBitmap(self,hBitmap:'typing.Any'=1) -> 'typing.Any': + """ + Set the button's bitmap + +Args: + + hBitmap(typing.Any):Handle of the new bitmap + +Returns: + + typing.Any + + """ + pass + + + def GetCheck(self,) -> 'typing.Any': + """ + Retrieves the check state of a radio button or check box. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetCheck(self,idCheck:'typing.Any') -> 'None': + """ + Sets or resets the state of a radio button or check box. + +Args: + + idCheck(typing.Any):The ID of the button. + +Returns: + + None + + """ + pass + + + def GetState(self,) -> 'typing.Any': + """ + Returns the state of the button. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetState(self,bHighlight:'typing.Any') -> 'typing.Any': + """ + Sets the state of the button. + +Args: + + bHighlight(typing.Any):The new state for the button.CommentsHighlighting affects the exterior of a button control. It has no effect on the check state of a radio button or check box. + +Returns: + + typing.Any + + """ + pass + + + def GetButtonStyle(self,) -> 'typing.Any': + """ + Gets the style of the button. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetButtonStyle(self,style:'typing.Any',bRedraw:'typing.Any'=1) -> 'typing.Any': + """ + Sets the style of the button. + +Args: + + style(typing.Any):The new style for the button. + bRedraw(typing.Any):Should the button be redrawn? + +Returns: + + typing.Any + + """ + pass + + +class PyCCmdTarget(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BeginWaitCursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def EndWaitCursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def HookCommand(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': + """ + Hook a windows command handler. + +Args: + + obHandler(typing.Any):The handler for the command message. This must be a callable object. + _id(typing.Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives command notification messages with the specified ID. Command notification messages are usually sent in response to menu or toolbar commands. When updating a user interface element, Pythonwin will first check if a handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone determines the state of the interface object. If no Update handler exists, PythonWin will automatically enable a menu/toolbar item if a command handler exists The handler will be called with 2 arguments * The command id being handled. * The command notification code. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed. This method is best suited to handling messages from user interface elements, such as menus, toolbars, etc. To handle notification messages from a control, you should use PyCCmdTarget::HookNotifyReturn ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID of the command to be handled, or zero to handle all command messages.Comments + +obHandler will be called as the application receives command notification messages with the specified ID. + +Command notification messages are usually sent in response to menu or toolbar commands. + +When updating a user interface element, Pythonwin will first check if a + +handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone + +determines the state of the interface object. If no Update handler exists, + +PythonWin will automatically enable a menu/toolbar item if a command handler exists + +The handler will be called with 2 arguments + +* The command id being handled. + +* The command notification code. + +If the handler returns TRUE, then the command will be passed on to the + +default handler, otherwise the message will be consumed. + +This method is best suited to handling messages from user interface + +elements, such as menus, toolbars, etc. To handle notification messages from a control, + +you should use PyCCmdTarget::HookNotify +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookCommandUpdate(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': + """ + Hook a windows command update handler. + +Args: + + obHandler(typing.Any):The handler for the command message. This must be a callable object. + _id(typing.Any):The ID of the command to be handled.CommentsThe handler object passed will be called as the application updates user interface elements with the specified ID. See PyCCmdTarget::HookCommand for a description of the rules used to determine command routing and updating.Return ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID of the command to be handled.Comments + +The handler object passed will be called as + +the application updates user interface elements + +with the specified ID. + +See PyCCmdTarget::HookCommand for a description + +of the rules used to determine command routing and updating. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookOleEvent(self,) -> 'typing.Any': + """ + Hook an OLE Event. + +Args: + + + +Returns: + + typing.Any:PyCCmdTarget.HookOleEvent + +object = HookOleEvent()Hook an OLE Event. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookNotify(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': + """ + Hook a windows command handler. + +Args: + + obHandler(typing.Any):The handler for the command message. This must be a callable object. + _id(typing.Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives control notification messages. These may also be handled via PyCCmdTarget::HookCommand, but this method is specific to control notifications, and therefore provides more information.The handler will be called with 2 arguments A tuple describing standard notification information. A tuple describing extra notification params, or an integer containing the address of the first byte of the extended information. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed.Certain notification codes are recognised internally, and these are converted to a Python tuple. If the extra information is not recognised, the address is passed. These addresses could be extracted using win32ui::GetBytes and the struct module, or using Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program can install certain knowledge about handlers, but this has not been implemented.)Return ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID of the command to be handled, or zero to handle all command messages.Comments + +obHandler will be called as the application receives control notification messages. + +These may also be handled via PyCCmdTarget::HookCommand, but this method is specific + +to control notifications, and therefore provides more information. + +The handler will be called with 2 arguments + +A tuple describing standard notification information. + +A tuple describing extra notification params, or an integer containing the address of the first byte of the + +extended information. If the handler returns TRUE, then the command will be passed on to the default handler, + +otherwise the message will be consumed. + +Certain notification codes are recognised internally, and these are converted to a Python tuple. + +If the extra information is not recognised, the address is passed. These addresses could be + +extracted using win32ui::GetBytes and the struct module, or using + +Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program + +can install certain knowledge about handlers, but this has not been implemented.) +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def RestoreWaitCursor(self,) -> 'None': + """ + Restores the appropriate hourglass cursor after the system cursor has + +changed. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCCmdUI(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def m_nIndex(self)->'typing.Any': + """""" + pass + + + @property + def m_nID(self)->'typing.Any': + """""" + pass + + + @property + def m_pMenu(self)->'PyCMenu': + """""" + pass + + + @property + def m_pSubMenu(self)->'PyCMenu': + """""" + pass + + + def Enable(self,bEnable:'typing.Any'=1) -> 'None': + """ + Enables or disables the user-interface item for this command. + +Args: + + bEnable(typing.Any):TRUE if the item should be enabled, false otherwise. + +Returns: + + None + + """ + pass + + + def SetCheck(self,state:'typing.Any'=1) -> 'None': + """ + Sets the check state of the user-interface item for this command. + +Args: + + state(typing.Any):0 for unchecked, 1 for checked, or 2 for indeterminate. + +Returns: + + None + + """ + pass + + + def SetRadio(self,bOn:'typing.Any'=1) -> 'None': + """ + Like the SetCheck member function, but operates on radio groups. + +Args: + + bOn(typing.Any):TRUE if the item should be enabled, false otherwise. + +Returns: + + None + + """ + pass + + + def SetText(self,text:'str') -> 'None': + """ + Sets the text for the user-interface item for this command. + +Args: + + text(str):The text for the interface element. + +Returns: + + None + + """ + pass + + + def ContinueRouting(self,) -> 'None': + """ + Tells the command-routing mechanism to continue routing the current message down + +the chain of handlers. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCColorDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetColor(self,) -> 'typing.Any': + """ + Determines the selected color. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def DoModal(self,) -> 'typing.Any': + """ + Displays a dialog and allows the user to make a selection. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSavedCustomColors(self,) -> 'typing.Any': + """ + Returns the saved custom colors. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetCurrentColor(self,color:'typing.Any') -> 'None': + """ + Sets the currently selected color. + +Args: + + color(typing.Any):The color to set.MFC References + +Returns: + + None + + """ + pass + + + def SetCustomColors(self,) -> 'None': + """ + Sets one or more custom colors + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCustomColors(self,) -> 'typing.Tuple[typing.Any, ...]': + """ + Gets the 16 currently defined custom colors + +Args: + + + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + +class PyCComboBox(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddString(self,_object:'typing.Any') -> 'typing.Any': + """ + Adds a string to a combobox. + +Args: + + _object(typing.Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References + +Returns: + + typing.Any:CComboBox::AddString +Return ValueThe zero based index of the new string. + + + """ + pass + + + def DeleteString(self,pos:'typing.Any') -> 'typing.Any': + """ + Deletes an item from a combobox. + +Args: + + pos(typing.Any):The zero based index of the item to delete.MFC References + +Returns: + + typing.Any:CComboBox::DeleteString +Return ValueThe count of the items remaining in the list. + + + """ + pass + + + def Dir(self,attr:'typing.Any',wild:'str') -> 'typing.Any': + """ + Fills the list portion of a combobox with a directory listing. + +Args: + + attr(typing.Any):The attributes of the files to locate + wild(str):A file specification string - eg, *.*MFC References + +Returns: + + typing.Any:CComboBox::Dir +Return ValueThe index of the last file name added to the list. + + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the count of items in the combobox. + +Args: + + + +Returns: + + typing.Any:CListBox::GetCount +Return ValueReturns the number of items currently in the combobox. + + + """ + pass + + + def GetCurSel(self,) -> 'typing.Any': + """ + Returns the index of the currently selected item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetEditSel(self,) -> 'typing.Any': + """ + Returns the selection of the edit control portion of a combo box. + +Args: + + + +Returns: + + typing.Any:CComboBox::GetEditSel +Return ValueA 32-bit value that contains the starting position in the low-order word and + +the position of the first nonselected character after the end of + +the selection in the high-order word. If this function is used on a combo box + +without an edit control, an exception is raised. + + + """ + pass + + + def GetExtendedUI(self,) -> 'typing.Any': + """ + Indicates if the combo has the extended interface. + +Args: + + + +Returns: + + typing.Any:CComboBox::GetExtendedUI +Return ValueNonzero if the combo box has the extended user interface; otherwise 0. + + + """ + pass + + + def GetItemData(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific object associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetItemValue(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetLBText(self,index:'typing.Any') -> 'str': + """ + Gets the string from the list of a combo box. + +Args: + + index(typing.Any):The index of the item to return the string for.Return ValueThe requested string. If index does not specify a valid index, no exception is raised. + +Returns: + + str:The index of the item to return the string for.Return ValueThe requested string. If index does + +not specify a valid index, no exception is raised. + + + """ + pass + + + def GetLBTextLen(self,index:'typing.Any') -> 'typing.Any': + """ + Returns the length of a string in the list of a combobox. + +Args: + + index(typing.Any):The index of the item to return the length of.MFC References + +Returns: + + typing.Any + + """ + pass + + + def InsertString(self,pos:'typing.Any',_object:'typing.Any') -> 'typing.Any': + """ + Insert a string into a combobox. + +Args: + + pos(typing.Any):The zero based index in the combobox to insert the new string + _object(typing.Any):The object to be added to the comboboxMFC References + +Returns: + + typing.Any:CComboBox::InsertString +Return ValueThe zero based index of the new string added. + + + """ + pass + + + def LimitText(self,_max:'typing.Any') -> 'typing.Any': + """ + Limits the amount of text the edit portion of a combo box can hold. + +Args: + + _max(typing.Any):The maximum number of characters the user can enter. If zero, the size is set to (virtually) unlimited.MFC References + +Returns: + + typing.Any + + """ + pass + + + def ResetContent(self,) -> 'None': + """ + Clear all the items from a combobox. + +Args: + + + +Returns: + + None + + """ + pass + + + def SelectString(self,after:'typing.Any',string:'str') -> 'None': + """ + Searches for a combobox item that matches the specified string, and selects it. + +Args: + + after(typing.Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire combobox. + string(str):The string to search for.MFC References + +Returns: + + None:CComboBoxBox::SelectString +Return ValueThe return value is always None - an exception is raised if the string can not be located. + + + """ + pass + + + def SetCurSel(self,index:'typing.Any') -> 'None': + """ + Selects an item in a combobox. + +Args: + + index(typing.Any):The zero based index of the item to select.MFC References + +Returns: + + None + + """ + pass + + + def SetEditSel(self,start:'typing.Any',end:'typing.Any') -> 'None': + """ + Sets the selection in the edit control portion of a combo box. + +Args: + + start(typing.Any):Specifies the starting position. If the starting position is set to -1, then any existing selection is removed. + end(typing.Any):Specifies the ending position. If the ending position is set to -1, then all text from the starting position to the last character in the edit control is selected.MFC References + +Returns: + + None:PyCComboBox::SetEditSel +Return ValueThe return value is always None - an exception is raised if the combo is a dropdown style, or does not + +have an edit control. + + + """ + pass + + + def SetExtendedUI(self,bExtended:'typing.Any'=1) -> 'None': + """ + Selects the Extended UI mode for a combo box. + +Args: + + bExtended(typing.Any):Indicates if the combo should have the extended user interface.CommentsA combo box with the Extended UI flag set can be identified in the following ways:~ Clicking the static control displays the list box only for combo boxes with the CBS_DROPDOWNLIST style.~ Pressing the DOWN ARROW key displays the list box (F4 is disabled).~ Scrolling in the static control is disabled when the item list is not visible (the arrow keys are disabled).MFC References + +Returns: + + None + + """ + pass + + + def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific object value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + typing.Any + + """ + pass + + + def SetItemValue(self,item:'typing.Any',data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + data(typing.Any):New value for the data. + +Returns: + + typing.Any + + """ + pass + + + def ShowDropDown(self,bShowIt:'typing.Any'=1) -> 'None': + """ + Shows or hides the listbox portion of a combo box. + +Args: + + bShowIt(typing.Any):Indicates if the listbox should be shown or hidden. + +Returns: + + None + + """ + pass + + +class PyCCommonDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCControl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCControlBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dockSite(self)->'PyCFrameWnd': + """Current dock site, if dockable""" + pass + + + @property + def dockBar(self)->'PyCWnd': + """Current dock bar, if dockable""" + pass + + + @property + def dockContext(self)->'PyCDockContext': + """Used during dragging""" + pass + + + @property + def dwStyle(self)->'typing.Any': + """creation style (used for layout)""" + pass + + + @property + def dwDockStyle(self)->'typing.Any': + """indicates how bar can be docked""" + pass + + + def CalcDynamicLayout(self,length:'typing.Any',dwMode:'typing.Any') -> 'typing.Any': + """ + The framework calls this member function to calculate the dimensions of + +a dynamic toolbar. + +Args: + + length(typing.Any):The requested dimension of the control bar, either horizontal or vertical, depending on dwMode. + dwMode(typing.Any):A combination of flags. + +Returns: + + typing.Any + + """ + pass + + + def CalcFixedLayout(self,bStretch:'typing.Any',bHorz:'typing.Any') -> 'typing.Any': + """ + Calculates the horizontal size of a control bar + +Args: + + bStretch(typing.Any):Indicates whether the bar should be stretched to the size of the frame. The bStretch parameter is nonzero when the bar is not a docking bar (not available for docking) and is 0 when it is docked or floating (available for docking). + bHorz(typing.Any):Indicates that the bar is horizontally or vertically oriented. + +Returns: + + typing.Any + + """ + pass + + + def EnableDocking(self,style:'typing.Any') -> 'None': + """ + pecifies whether the control bar supports docking and the sides of its parent + +window. + +Args: + + style(typing.Any):Enables a control bar to be docked. + +Returns: + + None + + """ + pass + + + def EraseNonClient(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBarStyle(self,) -> 'typing.Any': + """ + Retrieves the control bar style settings. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of non-HWND elements in the control bar. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDockingFrame(self,) -> 'PyCFrameWnd': + """ + Returns the frame window to which a control bar is docked. + +Args: + + + +Returns: + + PyCFrameWnd + + """ + pass + + + def IsFloating(self,) -> 'typing.Any': + """ + Returns a nonzero value if the control bar in question is a floating control + +bar. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetBarStyle(self,style:'typing.Any') -> 'None': + """ + Modifies the control bar style settings. + +Args: + + style(typing.Any):The new style + +Returns: + + None + + """ + pass + + + def ShowWindow(self,) -> 'typing.Any': + """ + Shows the toolbar, and recalculates the button layout. + +Args: + + + +Returns: + + typing.Any:PyCControlBar.ShowWindow + +int = ShowWindow()Shows the toolbar, and recalculates the button layout. +Comments + +This method is provided for convenience. For further details, see + +PyCWnd::ShowWindow and PyCFrameWnd::RecalcLayout +Return ValueThe return value is that returned from PyCWnd::ShowWindow + + + """ + pass + + +class PyCCtrlView(object): + """A class which implementes a CCtrlView (ie, a view based on a dialog resource.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCDC(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AbortDoc(self,) -> 'None': + """ + Aborts a print job + +Args: + + + +Returns: + + None + + """ + pass + + + def Arc(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pointStart:'typing.Tuple[typing.Any, typing.Any]',pointEnd:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Draws an eliptical arc. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangle + pointStart(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. + pointEnd(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsThe arc drawn by using the function is a segment of the ellipse defined by the specified bounding rectangle. The actual starting point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified starting point intersects the ellipse. The actual ending point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified ending point intersects the ellipse. The arc is drawn in a counterclockwise direction. Since an arc is not a closed figure, it is not filled. Both the width and height of the rectangle must be greater than 2 units and less than 32,767 units.MFC References + +Returns: + + None:CDC::Arc +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def BeginPath(self,) -> 'None': + """ + Opens a path bracket in the device context + +Args: + + + +Returns: + + None + + """ + pass + + + def BitBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',dc:'PyCDC',srcPos:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': + """ + Copies a bitmap from the source device context to this device context. + +Args: + + destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + dc(PyCDC):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. + srcPos(typing.Tuple[typing.Any, typing.Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. + rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def Chord(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pointStart:'typing.Tuple[typing.Any, typing.Any]',pointEnd:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Draws a chord. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangle + pointStart(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. + pointEnd(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsDraws a chord (a closed figure bounded by the intersection of an ellipse and a line segment). The rect parameter specify the upper-left and lower-right corners, respectively, of a rectangle bounding the ellipse that is part of the chord. The pointStart and pointEnd parameters specify the endpoints of a line that intersects the ellipse. The chord is drawn by using the selected pen and filled by using the selected brush.MFC References + +Returns: + + None:CDC::Chord +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def CreateCompatibleDC(self,dcFrom:'PyCDC'=None) -> 'None': + """ + Creates a memory device context that is compatible with this DC. + +Args: + + dcFrom(PyCDC):The source DC, or None to make a screen compatible DC.CommentsNote that unlike the MFC version, this function calls the global CreateCompatibleDC function and returns a new PyCDC object.MFC References + +Returns: + + None + + """ + pass + + + def CreatePrinterDC(self,printerName:'str'=None) -> 'None': + """ + Creates a device context for a specific printer + +Args: + + printerName(str):The printer name, or None for the default printerMFC References + +Returns: + + None + + """ + pass + + + def DeleteDC(self,) -> 'None': + """ + Deletes all resources associated with a device context. + +Args: + + + +Returns: + + None + + """ + pass + + + def DPtoLP(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Converts device units into logical units. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point to convertAlternative Parameters + x(typing.Any):The x coordinate to convert. + y(typing.Any):The y coordinate to convert.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::DPtoLP + To Do Should really handle list of (x,y) points +Return ValueThe converted coordinates. + + + """ + pass + + + def Draw3dRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',colorTopLeft:'typing.Any',colorBotRight:'typing.Any') -> 'None': + """ + Draws a three-dimensional rectangle. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + colorTopLeft(typing.Any):Specifies the color of the top and left sides of the three-dimensional rectangle. + colorBotRight(typing.Any):Specifies the color of the bottom and right sides of the three-dimensional rectangle.MFC References + +Returns: + + None + + """ + pass + + + def DrawFocusRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Draws a rectangle in the style used to + +indicate the rectangle has focus + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates of the rectangleMFC References + +Returns: + + None + + """ + pass + + + def DrawFrameControl(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',typ:'typing.Any',state:'typing.Any') -> 'None': + """ + Draws a frame control of the specified type and style. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + typ(typing.Any): + state(typing.Any):MFC References + +Returns: + + None + + """ + pass + + + def DrawIcon(self,point:'typing.Tuple[typing.Any, typing.Any]',hIcon:'int') -> 'None': + """ + Draws an icon on the DC. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to draw to. + hIcon(int):The handle of the icon to draw.MFC References + +Returns: + + None + + """ + pass + + + def DrawText(self,s:'str',_tuple:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',_format:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Formats text in the given rectangle + +Args: + + s(str):The desired output string + _tuple(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The bounding rectangle in the form: (left, top, right, bottom) expressed in logical units (depending on selected coordinate system - see PyCDC::SetMapMode) + _format(typing.Any):Specifies one or more bit-or'd format values, such as DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see the Microsoft Win32 API documentation.ExampleExampleimport win32ui<nl> import win32con<nl> INCH = 1440 # twips - 1440 per inch allows fine res<nl> def drawtext_test():<nl> dc = win32ui.CreateDC()<nl> dc.CreatePrinterDC() # ties to default printer<nl> dc.StartDoc('My Python Document')<nl> dc.StartPage()<nl> <nl> # note: upper left is 0,0 with x increasing to the right,<nl> # and y decreasing (negative) moving down<nl> dc.SetMapMode(win32con.MM_TWIPS)<nl> <nl> # Centers "TEST" about an inch down on page<nl> dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> dc.EndPage()<nl> dc.EndDoc()<nl> del dc<nl>Return ValueHeight of text in pixelsThe return value is the height of the text, in logical units. If DT_VCENTER or DT_BOTTOM is specified, the return value is the offset from rect.top to the bottom of the drawn text. If the function fails, the return value is zero (no Python exception is thrown) + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:Specifies one or more bit-or'd format values, such as + +DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see + +the Microsoft Win32 API documentation.ExampleExample +import win32ui<nl> + + import win32con<nl> + + INCH = 1440 # twips - 1440 per inch allows fine res<nl> + + def drawtext_test():<nl> + + dc = win32ui.CreateDC()<nl> + + dc.CreatePrinterDC() # ties to default printer<nl> + + dc.StartDoc('My Python Document')<nl> + + dc.StartPage()<nl> + + <nl> + + # note: upper left is 0,0 with x increasing to the right,<nl> + + # and y decreasing (negative) moving down<nl> + + dc.SetMapMode(win32con.MM_TWIPS)<nl> + + <nl> + + # Centers "TEST" about an inch down on page<nl> + + dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> + + dc.EndPage()<nl> + + dc.EndDoc()<nl> + + del dc<nl> + + +Return ValueHeight of text in pixels + + + +The return value is the height of the text, in logical units. + +If DT_VCENTER or DT_BOTTOM is specified, the return value is the + +offset from rect.top to the bottom of the drawn text. + +If the function fails, the return value is zero (no Python exception is thrown) + + + """ + pass + + + def Ellipse(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Draws an Ellipse. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangleCommentsThe center of the ellipse is the center of the bounding rectangle specified by rect. The ellipse is drawn with the current pen, and its interior is filled with the current brush.MFC References + +Returns: + + None:CDC::Ellipse +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def EndDoc(self,) -> 'None': + """ + Finishes spooling the document and starts printing it + +Args: + + + +Returns: + + None + + """ + pass + + + def EndPage(self,) -> 'None': + """ + Finishes a page on a printer DC + +Args: + + + +Returns: + + None + + """ + pass + + + def EndPath(self,) -> 'None': + """ + Closes a path bracket and selects the path defined by the bracket into the specified device + +context + +Args: + + + +Returns: + + None + + """ + pass + + + def ExtTextOut(self,_int:'typing.Any',_int1:'typing.Any',_int2:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',string:'typing.Any',_tuple:'typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]') -> 'None': + """ + Writes text to the DC. + +Args: + + _int(typing.Any):The x coordinate to write the text to. + _int1(typing.Any):The y coordinate to write the text to. + _int2(typing.Any):Specifies the rectangle type. This parameter can be one, both, or neither of ETO_CLIPPED and ETO_OPAQUE + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the text's bounding rectangle. (Can be None.) + string(typing.Any):The text to write. + _tuple(typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]):Optional array of values that indicate distance between origins of character cells.MFC References + +Returns: + + None:CDC::ExtTextOut +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def FillPath(self,) -> 'None': + """ + Closes any open figures in the current path and fills the path's interior by using the + +current brush and polygon-filling mode. After its interior is filled, the path is discarded from the device context. + +Args: + + + +Returns: + + None + + """ + pass + + + def FillRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',brush:'PyCBrush') -> 'None': + """ + Fills a given rectangle with the specified brush + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + brush(PyCBrush):Specifies the brush to use.MFC References + +Returns: + + None + + """ + pass + + + def FillSolidRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',color:'typing.Any') -> 'None': + """ + Fills the given rectangle with the specified solid color. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + color(typing.Any):Specifies the color to use.MFC References + +Returns: + + None + + """ + pass + + + def FrameRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',brush:'PyCBrush') -> 'None': + """ + Draws a border around the rectangle specified by rect + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + brush(PyCBrush):Specifies the brush to use.MFC References + +Returns: + + None + + """ + pass + + + def GetBrushOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the origin (in device units) of the brush currently selected for the + +device context. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetClipBox(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the dimensions of the smallest bounding rectangle + +around the current clipping boundary. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]:CDC::GetClipBox +Return ValueA tuple of integers specifying the rectangle. + + + """ + pass + + + def GetCurrentPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the current position (in logical coordinates). + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetDeviceCaps(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves a capability of the device context. + +Args: + + index(typing.Any):The information requested. See the win32api documentation for details.MFC References + +Returns: + + typing.Any:CDC::GetDeviceCaps +Return ValueThe value of the requested capability + + + """ + pass + + + def GetHandleAttrib(self,) -> 'typing.Any': + """ + Retrieves the handle of the attribute device context. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetHandleOutput(self,) -> 'typing.Any': + """ + Retrieves the handle of the output device context. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetMapMode(self,) -> 'typing.Any': + """ + Gets the mapping mode for the device context. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNearestColor(self,color:'typing.Any') -> 'typing.Any': + """ + Returns the closest color a device can map. + +Args: + + color(typing.Any):Specifies the color to be matched. + +Returns: + + typing.Any + + """ + pass + + + def GetPixel(self,x:'typing.Any',y:'typing.Any') -> 'None': + """ + Gets a pixel at a local in a device context + +Args: + + x(typing.Any):Horizontal coordinate. + y(typing.Any):Vertical coordinate. + +Returns: + + None + + """ + pass + + + def GetSafeHdc(self,) -> 'typing.Any': + """ + Returns the HDC of this DC object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTextExtent(self,text:'str') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Calculates the width and height of a line of text using the current font to + +determine the dimensions. + +Args: + + text(str):The text to calculate for.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CFC::GetTextExtent +Return ValueA tuple of integers with the size of the string, in logical units. + + + """ + pass + + + def GetTextExtentPoint(self,text:'str') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + None + +Args: + + text(str):The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. + +Returns: + + typing.Tuple[typing.Any, typing.Any]:The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. + + + """ + pass + + + def GetTextFace(self,) -> 'str': + """ + Returns typeface name of the current font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTextMetrics(self,) -> 'typing.Any': + """ + Retrieves the metrics for the current font in this device context. + +Args: + + + +Returns: + + typing.Any:CDC::GetTextMetrics +Return ValueA dictionary of integers, keyed by the following strings: + +tmHeight + +tmAscent + +tmDescent + +tmInternalLeading + +tmExternalLeading + +tmAveCharWidth + +tmMaxCharWidth + +tmWeight + +tmItalic + +tmUnderlined + +tmStruckOut + +tmFirstChar + +tmLastChar + +tmDefaultChar + +tmBreakChar + +tmPitchAndFamily + +tmCharSet + +tmOverhang + +tmDigitizedAspectX + +tmDigitizedAspectY + + + """ + pass + + + def GetViewportExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Gets the viewport extent of the device context + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetViewportOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Gets the viewport origin of the device context + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetWindowExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Gets the window extent of the device context + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetWindowOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the x- and y-coordinates of the origin of the window associated with the + +device context. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def IntersectClipRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Creates a new clipping region by forming the intersection of the current region + +and the rectangle specified + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units.MFC References + +Returns: + + None:CDC::IntersectClipRect +Return Valueregion type as integer + + + """ + pass + + + def IsPrinting(self,) -> 'typing.Any': + """ + Returns 1 if the DC is currently printing, else 0 + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LineTo(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'None': + """ + Draws a line to a specified point, using the currently selected pen. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to draw to.Alternative Parameters + x(typing.Any):The x coordinate to draw to. + y(typing.Any):The y coordinate to draw to.MFC References + +Returns: + + None + + """ + pass + + + def LPtoDP(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Converts logical units into device units. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to convert.Alternative Parameters + x(typing.Any):The x coordinate to convert. + y(typing.Any):The y coordinate to convert.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::LPtoDP +Return ValueThe converted coordinates. + + + """ + pass + + + def MoveTo(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Moves the current position to a specified point. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to move to.Alternative Parameters + x(typing.Any):The x coordinate to move to. + y(typing.Any):The y coordinate to move to.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::MoveTo +Return ValueThe previous position. + + + """ + pass + + + def OffsetWindowOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Modifies the coordinates of the window origin relative to the coordinates of the + +current window origin. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The new origin offset.Return ValueThe previous origin as a tuple (x,y) + +Returns: + + typing.Tuple[typing.Any, typing.Any]:The new origin offset.Return ValueThe previous origin as a tuple (x,y) + + + """ + pass + + + def OffsetViewportOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Modifies the coordinates of the viewport origin relative to the coordinates of + +the current viewport origin + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) + +Returns: + + typing.Tuple[typing.Any, typing.Any]:The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) + + + """ + pass + + + def PatBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': + """ + Creates a bit pattern on the device. + +Args: + + destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def Pie(self,x1:'typing.Any',y1:'typing.Any',x2:'typing.Any',y2:'typing.Any',x3:'typing.Any',y3:'typing.Any',x4:'typing.Any',y4:'typing.Any') -> 'None': + """ + Draws a pie slice in a device context + +Args: + + x1(typing.Any):X coordinate of upper left corner + y1(typing.Any):Y coordinate of upper left corner + x2(typing.Any):X coordinate of lower right corner + y2(typing.Any):Y coordinate of lower right corner + x3(typing.Any):X coordinate of starting point of arc + y3(typing.Any):Y coordinate of starting point of arc + x4(typing.Any):X coordinate of ending point of arc + y4(typing.Any):Y coordinate of ending point of arc + +Returns: + + None + + """ + pass + + + def PolyBezier(self,) -> 'None': + """ + Draws one or more Bezier splines. + +Args: + + + +Returns: + + None + + """ + pass + + + def Polygon(self,) -> 'None': + """ + Draws an Polygon. + +Args: + + + +Returns: + + None + + """ + pass + + + def Polyline(self,points:'typing.List[typing.Tuple[typing.Any, typing.Any]]') -> 'None': + """ + Draws a Polyline. + +Args: + + points(typing.List[typing.Tuple[typing.Any, typing.Any]]):A sequence of points + +Returns: + + None + + """ + pass + + + def RealizePalette(self,) -> 'typing.Any': + """ + Maps palette entries in the current logical palette to the system palette. + +Args: + + + +Returns: + + typing.Any:PyCDC.RealizePalette + +int = RealizePalette()Maps palette entries in the current logical palette to the system palette. +Return ValueIndicates how many entries in the logical palette were mapped to different entries + +in the system palette. This represents the number of entries that this function + +remapped to accommodate changes in the system palette since the logical palette + +was last realized. + + + """ + pass + + + def Rectangle(self,) -> 'typing.Any': + """ + Draws a rectangle using the current pen. The interior of the rectangle is filled using + +the current brush. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def RectVisible(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Any': + """ + Determines whether any part of the given rectangle lies within the clipping region of + +the display context. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates of the reactangle to be checked.MFC References + +Returns: + + typing.Any:CDC::RectVisible +Return ValueNon zero if any part of the rectangle lies within the clipping region, else zero. + + + """ + pass + + + def RestoreDC(self,saved:'typing.Any') -> 'None': + """ + Restores the state of the device context. + +Args: + + saved(typing.Any):The id of a previously saved device context. See PyCDC::SaveDCMFC References + +Returns: + + None + + """ + pass + + + def SaveDC(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any:CDC::SaveDC +Return ValueAn integer identifying the context, which can be used by PyCDC::RestoreDC. + +An exception is raised if this function fails. + + + """ + pass + + + def ScaleWindowExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Modifies the window extents relative to the current values. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def ScaleViewportExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Modifies the viewport extents relative to the current values. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SelectClipRgn(self,) -> 'typing.Any': + """ + Selects the given region as the current clipping region for the device context + +Args: + + + +Returns: + + typing.Any:PyCDC.SelectClipRgn + +obRgn = SelectClipRgn()Selects the given region as the current clipping region for the device context +Return ValueThe return value specifies the region's complexity (integer) + + + """ + pass + + + def SelectObject(self,ob:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + ob(typing.Any):The object to select.MFC References + +Returns: + + typing.Any:CDC::SelectObject +Return ValueThe previously selected object. This will be the same type as the object parameter. + + + """ + pass + + + def SetBkColor(self,color:'typing.Any') -> 'typing.Any': + """ + Sets the current background color to the specified color. + +Args: + + color(typing.Any):A windows color specification. See the win32api documentation for details.CommentsIf the background mode is OPAQUE, the system uses the background color to fill the gaps in styled lines, the gaps between hatched lines in brushes, and the background in character cells. The system also uses the background color when converting bitmaps between color and monochrome device contexts.MFC References + +Returns: + + typing.Any:CDC::SetBkColor +Return ValueThe return value is the previous background color. + + + """ + pass + + + def SetBkMode(self,mode:'typing.Any') -> 'typing.Any': + """ + Sets the current background mode to the specified mode. + +Args: + + mode(typing.Any):A background mode. May be either TRANSPARENT or OPAQUE.CommentsSpecifies the mode to be set. This parameter can be either OPAQUE or TRANSPARENTMFC References + +Returns: + + typing.Any:CDC::SetBkMode +Return ValueThe return value is the previous background mode. + + + """ + pass + + + def SetBrushOrg(self,point:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Specifies the origin that GDI will assign to the next brush that the + +application selects into the device context. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The new origin in device units.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::SetBrushOrg +Return ValueThe previous origin in device units. + + + """ + pass + + + def SetGraphicsMode(self,mode:'typing.Any') -> 'typing.Any': + """ + Sets the graphics mode for the specified device context + +Args: + + mode(typing.Any):The new mode. + +Returns: + + typing.Any + + """ + pass + + + def SetMapMode(self,newMode:'typing.Any') -> 'typing.Any': + """ + Sets the mapping mode for the device context. + +Args: + + newMode(typing.Any):The new mode. Can be one of MM_ANISOTROPIC, MM_HIENGLISH, MM_HIMETRIC, MM_ISOTROPIC, MM_LOENGLISH, MM_LOMETRIC, MM_TEXT, MM_TWIPSMFC References + +Returns: + + typing.Any:CDC::SetMapMode +Return ValueThe previous mapping mode. + + + """ + pass + + + def SetPixel(self,x:'typing.Any',y:'typing.Any',color:'typing.Any') -> 'None': + """ + Sets a pixel in a device context + +Args: + + x(typing.Any):Horizontal coordinate. + y(typing.Any):Vertical coordinate. + color(typing.Any):The brush color. + +Returns: + + None + + """ + pass + + + def SetPolyFillMode(self,point:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + Sets the polygon-filling mode. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The new origin in device units.MFC References + +Returns: + + typing.Any:CDC::SetPolyFillMode +Return ValueThe previous PolyFillMode as integer + + + +The previous PolyFillMode. + + + """ + pass + + + def SetROP2(self,mode:'typing.Any') -> 'typing.Any': + """ + Sets the current drawing mode. + +Args: + + mode(typing.Any):The new drawing mode.MFC References + +Returns: + + typing.Any + + """ + pass + + + def SetTextAlign(self,newFlags:'typing.Any') -> 'typing.Any': + """ + Sets the text-alignment flags. + +Args: + + newFlags(typing.Any):The new alignment flags. Can be a combination of (TA_CENTER, TA_LEFT, TA_RIGHT), (TA_BASELINE, TA_BOTTOM, TA_TOP) and (TA_NOUPDATECP, TA_UPDATECP) The default is TA_LEFT|TA_TOP|TA_NOUPDATECPMFC References + +Returns: + + typing.Any:CDC::SetTextAlign +Return ValueThe old alignment flags. + + + """ + pass + + + def SetTextColor(self,color:'typing.Any') -> 'typing.Any': + """ + Sets the text color to the specified color. + +Args: + + color(typing.Any):A windows color specification. See the win32api documentation for details.CommentsThis text color is used when writing text to this device context and also when converting bitmaps between color and monochrome device contexts. If the device cannot represent the specified color, the system sets the text color to the nearest physical color. The background color for a character is specified by the SetBkColor and SetBkMode member functions.MFC References + +Returns: + + typing.Any:CDC::SetTextColor +Return ValueThe return value is the previous text color. + + + """ + pass + + + def SetWindowExt(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Sets the x,y extents of the window associated with the device context. + +Args: + + size(typing.Tuple[typing.Any, typing.Any]):The new size.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::SetWindowExt +Return ValueThe previous extents of the window (in logical units). + + + """ + pass + + + def SetWindowOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Sets the window origin of the device context + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The new origin. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetViewportExt(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Sets the x,y extents of the viewport of the device context. + +Args: + + size(typing.Tuple[typing.Any, typing.Any]):The new size.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::SetViewportExt +Return ValueThe previous extents of the viewport (in logical units). + + + """ + pass + + + def SetViewportOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Sets the viewport origin of the device context + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The new origin. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetWorldTransform(self,) -> 'typing.Any': + """ + sets a two-dimensional linear transformation between world space and page space + +for the specified device context. This transformation can be used to scale, rotate, shear, or translate graphics + +output. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def StartDoc(self,docName:'str',outputFile:'str') -> 'None': + """ + Starts spooling a document to a printer DC + +Args: + + docName(str):The document name + outputFile(str):The output file name. Use this to spool to a file. Omit to send to the printer. + +Returns: + + None + + """ + pass + + + def StartPage(self,) -> 'None': + """ + Starts a new page on a printer DC + +Args: + + + +Returns: + + None + + """ + pass + + + def StretchBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',dc:'PyCDC',srcPos:'typing.Tuple[typing.Any, typing.Any]',size1:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': + """ + Copies a bitmap from the source device context to this device context. + +Args: + + destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + dc(PyCDC):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. + srcPos(typing.Tuple[typing.Any, typing.Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. + size1(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def StrokeAndFillPath(self,) -> 'None': + """ + Closes any open figures in a path, strokes the outline of the path by using the + +current pen, and fills its interior by using the current brush. The device context must contain a closed path. + +Args: + + + +Returns: + + None + + """ + pass + + + def StrokePath(self,) -> 'None': + """ + Renders the specified path by using the current pen. + +Args: + + + +Returns: + + None + + """ + pass + + + def TextOut(self,_int:'typing.Any',_int1:'typing.Any',string:'typing.Any') -> 'None': + """ + Outputs text to the display context, using the currently selected font. + +Args: + + _int(typing.Any):The x coordinate to write the text to. + _int1(typing.Any):The y coordinate to write the text to. + string(typing.Any):The text to write.MFC References + +Returns: + + None:CDC::TextOut +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + +class PyCDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,obParent:'PyCWnd'=None) -> 'None': + """ + Create a modeless window for the dialog box. + +Args: + + obParent(PyCWnd):The parent window for the new windowMFC References + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'typing.Any': + """ + Create a modal window for the dialog box. + +Args: + + + +Returns: + + typing.Any:CDialog::DoModal +Return ValueThe return value from the dialog. This is the value passed to PyCDialog::EndDialog. + + + """ + pass + + + def EndDialog(self,result:'typing.Any') -> 'None': + """ + Ends a modal dialog box. + +Args: + + result(typing.Any):The value to be returned by the PyCDialog::DoModal method.MFC References + +Returns: + + None + + """ + pass + + + def GotoDlgCtrl(self,control:'PyCWnd') -> 'None': + """ + Moves the focus to the specified control in the dialog box. + +Args: + + control(PyCWnd):The control to get the focus. + +Returns: + + None + + """ + pass + + + def MapDialogRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Converts the dialog-box units of a rectangle to screen + +units. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The rect to be converted + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def OnCancel(self,) -> 'None': + """ + Calls the default MFC OnCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOK(self,) -> 'None': + """ + Calls the default MFC OnOK handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnInitDialog(self,) -> 'typing.Any': + """ + Calls the default MFC OnInitDialog handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCDialogBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'PyCWnd',template:'PyResourceId',style:'typing.Any',_id:'typing.Any') -> 'None': + """ + None + +Args: + + parent(PyCWnd):The parent window + template(PyResourceId):Template name or integer resource id + style(typing.Any):The style for the window + _id(typing.Any):The ID of the window + +Returns: + + None + + """ + pass + + +class PyCDocTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoCreateDoc(self,fileName:'str'=None) -> 'PyCDocument': + """ + Creates an underlying document object. + +Args: + + fileName(str):The name of the file to load. + +Returns: + + PyCDocument + + """ + pass + + + def FindOpenDocument(self,fileName:'str') -> 'PyCDocument': + """ + Returns an existing document with the specified file name. + +Args: + + fileName(str):The fully qualified filename to search for. + +Returns: + + PyCDocument + + """ + pass + + + def GetDocString(self,docIndex:'typing.Any') -> 'str': + """ + Retrieves a specific substring describing the document type. + +Args: + + docIndex(typing.Any):The document index. Must be one of the win32ui.CDocTemplate_* constants.CommentsFor more information on the doc strings, please see PyCDocTemplate::SetDocStrings + +Returns: + + str + + """ + pass + + + def GetDocumentList(self,) -> 'typing.Any': + """ + Return a list of all open documents. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetResourceID(self,) -> 'None': + """ + Returns the resource ID in use. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSharedMenu(self,) -> 'PyCMenu': + """ + Returns the shared menu object for all frames using this template. + +Args: + + + +Returns: + + PyCMenu + + """ + pass + + + def InitialUpdateFrame(self,frame:'PyCFrameWnd'=None,doc:'PyCDocument'=None,bMakeVisible:'typing.Any'=1) -> 'None': + """ + Calls the default OnInitialFrame handler. + +Args: + + frame(PyCFrameWnd):The frame window. + doc(PyCDocument):A document for the frame. + bMakeVisible(typing.Any):Indicates of the frame should be shown.See Also + +Returns: + + None + + """ + pass + + + def SetContainerInfo(self,_id:'typing.Any') -> 'None': + """ + Sets the resources to be used when an OLE 2 object is in-place activated. + +Args: + + _id(typing.Any):The resource ID. + +Returns: + + None + + """ + pass + + + def SetDocStrings(self,docStrings:'str') -> 'None': + """ + Assigns the document strings for the template. + +Args: + + docStrings(str):The document strings.CommentsThe string must be a \\n seperated list of docstrings. The elements are:elementNameDescriptionwindowTitleTitle used for the window (only for SDI applications)docNameRoot for the default document name.fileNewNameName of the document type, as displayed in the "File/New" dialogfilterNameDescription of the document type and a wildcard spec for the file open dialog.filterExtExtension for documents of this file type.regFileTypeIdInternal Id of the document as registered in the registry. Used to associate the extension with the file type.regFileTypeNameName of the document, as stored in the reigstry. This is the name presented to the user. + +Returns: + + None + + """ + pass + + + def OpenDocumentFile(self,filename:'str',bMakeVisible:'typing.Any'=1) -> 'None': + """ + Opens a document file, creating a view and frame. + +Args: + + filename(str):Name of file to open, or None + bMakeVisible(typing.Any):Indicates if the document should be created visible. + +Returns: + + None + + """ + pass + + +class PyCDockContext(object): + """A class which encapsulates an MFC CDockContext object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ptLast(self)->'typing.Tuple[typing.Any, typing.Any]': + """""" + pass + + + @property + def rectLast(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def sizeLast(self)->'typing.Tuple[typing.Any, typing.Any]': + """""" + pass + + + @property + def bDitherLast(self)->'typing.Any': + """""" + pass + + + @property + def rectDragHorz(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def rectDragVert(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def rectFrameDragHorz(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def rectFrameDragVert(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def dwDockStyle(self)->'typing.Any': + """allowable dock styles for bar""" + pass + + + @property + def dwOverDockStyle(self)->'typing.Any': + """style of dock that rect is over""" + pass + + + @property + def dwStyle(self)->'typing.Any': + """style of control bar""" + pass + + + @property + def bFlip(self)->'typing.Any': + """if shift key is down""" + pass + + + @property + def bForceFrame(self)->'typing.Any': + """if ctrl key is down CDC* m_pDC; // where to draw during drag""" + pass + + + @property + def bDragging(self)->'typing.Any': + """""" + pass + + + @property + def nHitTest(self)->'typing.Any': + """""" + pass + + + @property + def uMRUDockID(self)->'typing.Any': + """""" + pass + + + @property + def rectMRUDockPos(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def dwMRUFloatStyle(self)->'typing.Any': + """""" + pass + + + @property + def ptMRUFloatPos(self)->'typing.Tuple[typing.Any, typing.Any]': + """Sentinel""" + pass + + + def EndDrag(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def StartDrag(self,pt:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + None + +Args: + + pt(typing.Tuple[typing.Any, typing.Any]): + +Returns: + + typing.Any + + """ + pass + + + def EndResize(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def StartResize(self,hittest:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + None + +Args: + + hittest(typing.Any): + pt(typing.Tuple[typing.Any, typing.Any]): + +Returns: + + typing.Any + + """ + pass + + + def ToggleDocking(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DeleteContents(self,) -> 'None': + """ + Call the MFC DeleteContents method. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoSave(self,fileName:'str',bReplace:'typing.Any'=1) -> 'None': + """ + Calls the underlying MFC DoSave method. + +Args: + + fileName(str):The name of the file to save to. + bReplace(typing.Any):Should an existing file be silently replaced?.CommentsIf invalid or no filename, will prompt for a name, else will perform the actual saving of the document.See Also + +Returns: + + None + + """ + pass + + + def DoFileSave(self,) -> 'None': + """ + Checks the file attributes. + +If the file is read only, a new name is prompted, else the + +file is saved (by calling DoSave) + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocTemplate(self,) -> 'PyCDocTemplate': + """ + Returns the template for the document. + +Args: + + + +Returns: + + PyCDocTemplate + + """ + pass + + + def GetAllViews(self,) -> 'typing.List[typing.Any]': + """ + Returns a list of all views for the current document. + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def GetFirstView(self,) -> 'PyCView': + """ + Returns the first view object attached to this document. + +Args: + + + +Returns: + + PyCView + + """ + pass + + + def GetPathName(self,) -> 'str': + """ + Returns the full path name of the current document. + +The string will be empty if no path name has been set. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTitle(self,) -> 'str': + """ + Returns the title of the current document. + +This will often be the file name portion of the path name. + +Args: + + + +Returns: + + str + + """ + pass + + + def IsModified(self,) -> 'typing.Any': + """ + Return a flag indicating if the document has been modified. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnChangedViewList(self,) -> 'None': + """ + Informs the document when a view is added or removed. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCloseDocument(self,) -> 'None': + """ + Call the MFC OnCloseDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnNewDocument(self,) -> 'None': + """ + Call the MFC OnNewDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOpenDocument(self,pathName:'str') -> 'None': + """ + Call the MFC OnOpenDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + pathName(str):The full path of the file to open.MFC References + +Returns: + + None + + """ + pass + + + def OnSaveDocument(self,pathName:'str') -> 'None': + """ + Call the MFC OnSaveDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + pathName(str):The full path of the file to save.MFC References + +Returns: + + None + + """ + pass + + + def SetModifiedFlag(self,bModified:'typing.Any'=1) -> 'None': + """ + Set the "dirty" flag for the document. + +Args: + + bModified(typing.Any):Set dirty flagMFC References + +Returns: + + None + + """ + pass + + + def SaveModified(self,) -> 'typing.Any': + """ + Call the underlying MFC method. + +Args: + + + +Returns: + + typing.Any:CDocument::SaveModified +Return ValueNonzero if it is safe to continue and close the document; 0 if the document should not be closed. + + + """ + pass + + + def SetPathName(self,path:'str') -> 'None': + """ + Set the full path name for the document. + +Args: + + path(str):The full path of the file.MFC References + +Returns: + + None + + """ + pass + + + def SetTitle(self,title:'str') -> 'None': + """ + Set the title of the document (ie, the name + +to appear in the window caption for the document. + +Args: + + title(str):The new title.MFC References + +Returns: + + None + + """ + pass + + + def UpdateAllViews(self,sender:'PyCView',hint:'typing.Any'=None) -> 'None': + """ + Informs each view when a document changes. + +Args: + + sender(PyCView):The view who initiated the update + hint(typing.Any):A hint for the update.MFC References + +Returns: + + None + + """ + pass + + +class PyCEdit(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the window for a new Edit object. + +Args: + + style(typing.Any):The style for the Edit. Use any of the win32con.BS_* constants. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the Edit. + parent(PyCWnd):The parent window of the Edit. Usually a PyCDialog. + _id(typing.Any):The Edits control ID. + +Returns: + + None + + """ + pass + + + def Clear(self,) -> 'typing.Any': + """ + Clears all text in an edit control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Copy(self,) -> 'None': + """ + Copys the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def Cut(self,) -> 'None': + """ + Cuts the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def FmtLines(self,bAddEOL:'typing.Any') -> 'typing.Any': + """ + Sets the formatting options for the control. + +Args: + + bAddEOL(typing.Any):Specifies whether soft line-break characters are to be inserted. A value of TRUE inserts the characters; a value of FALSE removes them.MFC References + +Returns: + + typing.Any:CEdit::FmtLines +Return ValueNonzero if any formatting occurs; otherwise 0. + + + """ + pass + + + def GetFirstVisibleLine(self,) -> 'typing.Any': + """ + Returns zero-based index of the topmost visible line. + +Args: + + + +Returns: + + typing.Any:CEdit::GetFirstVisibleLine +Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. + + + """ + pass + + + def GetSel(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the start and end of the current selection. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CEdit::GetSel +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the + +end of the current selection) + + + """ + pass + + + def GetLine(self,lineNo:'typing.Any') -> 'typing.Any': + """ + Returns the text in a specified line. + +Args: + + lineNo(typing.Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. + +Returns: + + typing.Any + + """ + pass + + + def GetLineCount(self,) -> 'typing.Any': + """ + Gets the number of lines in an edit control. + +Args: + + + +Returns: + + typing.Any:CEdit::GetLineCount +Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. + + + """ + pass + + + def LimitText(self,nChars:'typing.Any'=0) -> 'None': + """ + Sets max length of text that user can enter + +Args: + + nChars(typing.Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References + +Returns: + + None + + """ + pass + + + def LineFromChar(self,charNo:'typing.Any'=-1) -> 'typing.Any': + """ + Returns the line number of the specified character. + +Args: + + charNo(typing.Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References + +Returns: + + typing.Any:CEdit::LineFromChar +Return ValueThe zero-based line number of the line containing the character index specified by charNo. + +If charNo is -1, the number of the line that contains the first character of the selection is returned. + +If there is no selection, the current line number is returned. + + + """ + pass + + + def LineIndex(self,lineNo:'typing.Any'=-1) -> 'typing.Any': + """ + Retrieves the character index of a line within a multiple-line edit control. + +Args: + + lineNo(typing.Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + typing.Any:CEdit::LineIndex +Return ValueThe character index of the line specified in lineNo, or -1 if + +the specified line number is greater then the number of lines in + +the edit control. + + + """ + pass + + + def LineScroll(self,nLines:'typing.Any',nChars:'typing.Any'=0) -> 'typing.Any': + """ + Scroll the control vertically and horizontally + +Args: + + nLines(typing.Any):Specifies the number of lines to scroll vertically. + nChars(typing.Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + typing.Any + + """ + pass + + + def Paste(self,) -> 'None': + """ + Pastes the contents of the clipboard into the control. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReplaceSel(self,text:'str') -> 'None': + """ + Replaces the selection with the specified text. + +Args: + + text(str):The text to replace the selection with.MFC References + +Returns: + + None + + """ + pass + + + def SetReadOnly(self,bReadOnly:'typing.Any'=1) -> 'None': + """ + Sets or clears the read-only status of the listbox. + +Args: + + bReadOnly(typing.Any):The read-only state to set.MFC References + +Returns: + + None + + """ + pass + + + def SetSel(self,start:'typing.Any',end:'typing.Any',arg:'typing.Any',bNoScroll1:'typing.Any',bNoScroll:'typing.Any'=0) -> 'None': + """ + Sets the selection in the edit control. + +Args: + + start(typing.Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. + end(typing.Any):Specifies the ending position. + arg(typing.Any):As for normal start, end args. + bNoScroll1(typing.Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.MFC References + bNoScroll(typing.Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.Alternative Parameters + +Returns: + + None + + """ + pass + + +class PyCEditView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsModified(self,) -> 'typing.Any': + """ + Indicates if the view's document has the modified flag set. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LoadFile(self,fileName:'str') -> 'None': + """ + Loads a file into the view. + +Args: + + fileName(str):The name of the file to be loaded. + +Returns: + + None + + """ + pass + + + def SetModifiedFlag(self,bModified:'typing.Any'=1) -> 'None': + """ + Sets the modified flag for the view's document. + +Args: + + bModified(typing.Any):The modified state to set. + +Returns: + + None + + """ + pass + + + def GetEditCtrl(self,) -> 'typing.Any': + """ + returns the underlying edit control object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + typing.Any + + """ + pass + + + def SaveFile(self,fileName:'str') -> 'None': + """ + Saves the view to a file. + +Args: + + fileName(str):The name of the file to be written. + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCFileDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPathName(self,) -> 'str': + """ + Retrives the path name from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileName(self,) -> 'str': + """ + Retrives the file name from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileExt(self,) -> 'str': + """ + Retrives the file extension from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileTitle(self,) -> 'str': + """ + Retrives the file title from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetPathNames(self,) -> 'str': + """ + Retrieves the list of path names from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetReadOnlyPref(self,) -> 'typing.Any': + """ + Retrives the value of the "Read Only" checkbox on the file dialog. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetOFNTitle(self,title:'str') -> 'None': + """ + Sets the Title for the dialog. + +Args: + + title(str):The title for the dialog box. May be None. + +Returns: + + None + + """ + pass + + + def SetOFNInitialDir(self,title:'str') -> 'None': + """ + Sets the initial directory for the dialog. + +Args: + + title(str):The initial directory for the dialog box. May be None. + +Returns: + + None + + """ + pass + + +class PyCFont(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSafeHandle(self,) -> 'typing.Any': + """ + Retrieves the HFONT for the font as an integer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCFontDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoModal(self,) -> 'typing.Any': + """ + Displays a dialog and allows the user to make a selection. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCurrentFont(self,) -> 'typing.Any': + """ + Returns a dictionary describing the current font. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCharFormat(self,) -> 'typing.Any': + """ + Returns the font selection in a CHARFORMAT tuple. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetColor(self,) -> 'typing.Any': + """ + Determines the color of the selected font. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetFaceName(self,) -> 'str': + """ + Returns the face name of the selected font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetStyleName(self,) -> 'str': + """ + Returns the style name of the selected font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetSize(self,) -> 'typing.Any': + """ + Returns he font's size, in tenths of a point. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetWeight(self,) -> 'typing.Any': + """ + Returns the font's weight. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsStrikeOut(self,) -> 'typing.Any': + """ + Determines whether the font is displayed with strikeout. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsUnderline(self,) -> 'typing.Any': + """ + Determines whether the font is displayed with underline. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsBold(self,) -> 'typing.Any': + """ + Determines whether the font is displayed bold. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsItalic(self,) -> 'typing.Any': + """ + Determines whether the font is displayed with italic. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCFormView(object): + """A class which implementes a CFormView (ie, a view based on a dialog resource.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCFrameWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BeginModalState(self,) -> 'None': + """ + Sets the frame window to modal. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateWindow(self,wndClass:'str',title:'str',style:'typing.Any',PyCWnd:'typing.Any',menuId:'typing.Any',styleEx:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None,createContext:'typing.Any'=None) -> 'typing.Any': + """ + Creates the actual window for the PyCFrameWnd object. + +Args: + + wndClass(str):The window class name, or None + title(str):The window title + style(typing.Any):The window style + PyCWnd(typing.Any):The parent window + menuId(typing.Any):The string or integer id for the menu. + styleEx(typing.Any):The extended style of the window being created.MFC References + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + createContext(typing.Any):A tuple representing a CREATECONTEXT structure. + +Returns: + + typing.Any + + """ + pass + + + def EndModalState(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def DockControlBar(self,controlBar:'PyCControlBar',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',dockBarId:'typing.Any'=0) -> 'None': + """ + Docks a control bar. + +Args: + + controlBar(PyCControlBar):The control bar to dock. + arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Determines, in screen coordinates, where the control bar will be docked in the nonclient area of the destination frame window.MFC References + dockBarId(typing.Any):Determines which sides of the frame window to consider for docking. + +Returns: + + None + + """ + pass + + + def EnableDocking(self,style:'typing.Any') -> 'None': + """ + Enable dockable control bars in a frame window + +Args: + + style(typing.Any):Specifies which sides of the frame window can serve as docking sites for control bars.CommentsBy default, control bars will be docked to a side of the frame window in the following order: top, bottom, left, right. + +Returns: + + None + + """ + pass + + + def FloatControlBar(self,controlBar:'PyCControlBar',arg:'typing.Tuple[typing.Any, typing.Any]',style:'typing.Any') -> 'None': + """ + Floats a control bar. + +Args: + + controlBar(PyCControlBar):The control bar to dock. + arg(typing.Tuple[typing.Any, typing.Any]):The location, in screen coordinates, where the top left corner of the control bar will be placed. + style(typing.Any):Determines which sides of the frame window to consider for docking.MFC References + +Returns: + + None + + """ + pass + + + def GetActiveDocument(self,) -> 'PyCDocument': + """ + Gets the currently active document, else None + +Args: + + + +Returns: + + PyCDocument + + """ + pass + + + def GetControlBar(self,_id:'typing.Any') -> 'PyCControlBar': + """ + Retrieves the specified control bar. + +Args: + + _id(typing.Any):The ID of the toolbar to be retrieved + +Returns: + + PyCControlBar + + """ + pass + + + def GetMessageString(self,_id:'typing.Any') -> 'str': + """ + Retrieves message corresponding to a command ID. + +Args: + + _id(typing.Any):The ID to be retrievedSee Also + +Returns: + + str + + """ + pass + + + def GetMessageBar(self,) -> 'PyCWnd': + """ + Retrieves the message bar for the frame. + +Args: + + + +Returns: + + PyCWnd + + """ + pass + + + def IsTracking(self,) -> 'typing.Any': + """ + Determines if splitter bar is currently being moved. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def InModalState(self,) -> 'typing.Any': + """ + Returns a value indicating whether or not a frame window is in a modal state. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LoadAccelTable(self,_id:'PyResourceId') -> 'None': + """ + Loads an accelerator table. + +Args: + + _id(PyResourceId):Name or id of the resource that contains the table + +Returns: + + None + + """ + pass + + + def LoadFrame(self,idResource:'typing.Any',style:'typing.Any'=-1,wndParent:'PyCWnd'=None,context:'typing.Any'=None) -> 'None': + """ + Loads a Windows frame window and associated resources + +Args: + + idResource(typing.Any):The Id of the resources (menu, icon, etc) for this window + style(typing.Any):The window style. Note -1 implies win32con.WS_OVERLAPPEDWINDOW|win32con.FWS_ADDTOTITLE + wndParent(PyCWnd):The parent of the window, or None. + context(typing.Any):An object passed to the OnCreateClient for the frame,MFC References + +Returns: + + None + + """ + pass + + + def LoadBarState(self,profileName:'str') -> 'None': + """ + Loads a control bars settings + +Args: + + profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def SaveBarState(self,profileName:'str') -> 'None': + """ + Saves a control bars settings + +Args: + + profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References + +Returns: + + None + + """ + pass + + + def ShowControlBar(self,controlBar:'PyCControlBar',bShow:'typing.Any',bDelay:'typing.Any') -> 'None': + """ + Shows a control bar. + +Args: + + controlBar(PyCControlBar):The control bar to dock. + bShow(typing.Any):Show or hide flag. + bDelay(typing.Any):If TRUE, delay showing the control bar. If FALSE, show the control bar immediately.MFC References + +Returns: + + None + + """ + pass + + + def RecalcLayout(self,bNotify:'typing.Any'=1) -> 'None': + """ + Called by the framework when the standard control bars are toggled on or off or + +when the frame window is resized. + +Args: + + bNotify(typing.Any):Notify flagMFC References + +Returns: + + None + + """ + pass + + + def GetActiveView(self,) -> 'PyCView': + """ + Retrieves the active view. + +Args: + + + +Returns: + + PyCView + + """ + pass + + + def OnBarCheck(self,_id:'typing.Any') -> 'typing.Any': + """ + Changes the state of the specified controlbar. + +Args: + + _id(typing.Any):The control ID of the control bar. + +Returns: + + typing.Any + + """ + pass + + + def OnUpdateControlBarMenu(self,cmdUI:'PyCCmdUI') -> 'typing.Any': + """ + Checks the state of a menu item + +Args: + + cmdUI(PyCCmdUI):A cmdui object + +Returns: + + typing.Any + + """ + pass + + + def SetActiveView(self,view:'PyCView',bNotify:'typing.Any'=1) -> 'None': + """ + Sets the active view for a frame. + +Args: + + view(PyCView):The view to set active. + bNotify(typing.Any):Specifies whether the view is to be notified of activation. If TRUE, OnActivateView is called for the new view; if FALSE, it is not. + +Returns: + + None + + """ + pass + + +class PyCGdiObject(object): + """A class which encapsulates an MFC CGdiObject.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCImageList(object): + """A Python type encapsulating an MFC CImageList class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Add(self,arg:'typing.Tuple[typing.Any, typing.Any]',bitmap:'typing.Any',color:'typing.Any',hIcon:'typing.Any') -> 'typing.Any': + """ + Adds an image to the list. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):2 Bitmaps to use (primary and mask)Alternative Parameters + bitmap(typing.Any):Bitmap to use + color(typing.Any):Color to use for the mask.Alternative Parameters + hIcon(typing.Any):Handle of an icon to add.Return ValueZero-based index of the first new image. + +Returns: + + typing.Any:Handle of an icon to add. +Return ValueZero-based index of the first new image. + + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Destroys the underlying CImageList + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteImageList(self,) -> 'None': + """ + Deletes an image list. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBkColor(self,) -> 'typing.Any': + """ + Retrieves the background color of an Image List. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSafeHandle(self,) -> 'typing.Any': + """ + Retrieves the HIMAGELIST for the object + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetImageCount(self,) -> 'typing.Any': + """ + Retrieves the number of images in an image list. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetImageInfo(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves information about an image. + +Args: + + index(typing.Any):Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. + +Returns: + + typing.Any:Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. + + + """ + pass + + + def SetBkColor(self,color:'typing.Any') -> 'None': + """ + Sets the background color for an Image List. + +Args: + + color(typing.Any):The new background color. + +Returns: + + None + + """ + pass + + +class PyCListBox(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddString(self,_object:'typing.Any') -> 'typing.Any': + """ + Adds a string to a listbox. + +Args: + + _object(typing.Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References + +Returns: + + typing.Any:CListBox::AddString +Return ValueThe zero based index of the new string. + + + """ + pass + + + def DeleteString(self,pos:'typing.Any') -> 'typing.Any': + """ + Deletes an item from a listbox. + +Args: + + pos(typing.Any):The zero based index of the item to delete.MFC References + +Returns: + + typing.Any:CListBox::DeleteString +Return ValueThe count of the items remaining in the list. + + + """ + pass + + + def Dir(self,attr:'typing.Any',wild:'str') -> 'typing.Any': + """ + Fills a listbox with a directory listing. + +Args: + + attr(typing.Any):The attributes of the files to locate + wild(str):A file specification string - eg, *.*MFC References + +Returns: + + typing.Any:CListBox::Dir +Return ValueThe index of the last file name added to the list. + + + """ + pass + + + def GetCaretIndex(self,) -> 'typing.Any': + """ + Returns the index of the item which has focus. + +Args: + + + +Returns: + + typing.Any:PyCListBox.GetCaretIndex + +int = GetCaretIndex()Returns the index of the item which has focus. +Return ValueThe zero-based index of the item that has the focus rectangle in a list box. + +If the list box is a single-selection list box, the return value is the index of the item that is selected, if + +any. + + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the count of items in the listbox. + +Args: + + + +Returns: + + typing.Any:CListBox::GetCount +Return ValueReturns the number of items currently in the listbox. + + + """ + pass + + + def GetCurSel(self,) -> 'typing.Any': + """ + Returns the index of the currently selected item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemData(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific object associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetItemValue(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetSel(self,index:'typing.Any') -> 'typing.Any': + """ + Returns the selection state of a specified item. + +Args: + + index(typing.Any):The index of the item to return the state for.MFC References + +Returns: + + typing.Any:CListBox::GetSel +Return ValueA +ve number if the item is selected, else zero. + + + """ + pass + + + def GetSelCount(self,) -> 'typing.Any': + """ + Returns the number of selected items in a multiple selection listbox. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelItems(self,) -> 'typing.Any': + """ + Returns a list of the indexes of the currently selected items in a multiple + +selection listbox. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelTextItems(self,) -> 'typing.Any': + """ + Returns a list of the strings of the currently selected items in a multiple + +selection listbox. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTopIndex(self,) -> 'typing.Any': + """ + Returns the index of the top most visible item. + +Args: + + + +Returns: + + typing.Any:CListBox::GetTopIndex +Return ValueThe zero based index of the top most visible item. + + + """ + pass + + + def GetText(self,index:'typing.Any') -> 'str': + """ + Returns the string for a specified item. + +Args: + + index(typing.Any):The index of the item to retrieve the text of + +Returns: + + str + + """ + pass + + + def GetTextLen(self,index:'typing.Any') -> 'typing.Any': + """ + Returns the length of the string for a specified item. + +Args: + + index(typing.Any):The index of the item to retrieve the length of the text.MFC References + +Returns: + + typing.Any + + """ + pass + + + def InsertString(self,pos:'typing.Any',_object:'typing.Any') -> 'typing.Any': + """ + Insert a string into a listbox. + +Args: + + pos(typing.Any):The zero based index in the listbox to insert the new string + _object(typing.Any):The object to be added to the listboxMFC References + +Returns: + + typing.Any:CListBox::InsertString +Return ValueThe zero based index of the new string added. + + + """ + pass + + + def ResetContent(self,) -> 'None': + """ + Clear all the items from a listbox. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCaretIndex(self,index:'typing.Any',bScroll:'typing.Any'=1) -> 'None': + """ + Sets the focus rectange to a specified item. + +Args: + + index(typing.Any):The zero based index of the item. + bScroll(typing.Any):Should the listbox scroll to the item?MFC References + +Returns: + + None + + """ + pass + + + def SelectString(self,after:'typing.Any',string:'str') -> 'None': + """ + Searches for a list-box item that matches the specified string, and selects it. + +Args: + + after(typing.Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire listbox. + string(str):The string to search for.MFC References + +Returns: + + None:CListBox::SelectString +Return ValueThe return value is always None - an exception is raised if the string can not be located. + + + """ + pass + + + def SelItemRange(self,bSel:'typing.Any',start:'typing.Any',end:'typing.Any') -> 'None': + """ + Selects an item range. + +Args: + + bSel(typing.Any):Should the selection specified be set or cleared? + start(typing.Any):The zero based index of the first item to select. + end(typing.Any):The zero based index of the last item to select. + +Returns: + + None + + """ + pass + + + def SetCurSel(self,index:'typing.Any') -> 'None': + """ + Selects an item in a single selection listbox. + +Args: + + index(typing.Any):The zero based index of the item to select.MFC References + +Returns: + + None + + """ + pass + + + def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific object value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + typing.Any + + """ + pass + + + def SetItemValue(self,item:'typing.Any',data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + data(typing.Any):New value for the data. + +Returns: + + typing.Any + + """ + pass + + + def SetSel(self,index:'typing.Any',bSel:'typing.Any'=1) -> 'None': + """ + Selects an item in a multiple selection listbox. + +Args: + + index(typing.Any):The zero based index of the item to select. + bSel(typing.Any):Should the item be selected or deselected?MFC References + +Returns: + + None + + """ + pass + + + def SetTabStops(self,eachTabStop:'typing.Any',tabStops:'typing.Any') -> 'None': + """ + Sets the tab stops for a listbox. + +Args: + + eachTabStop(typing.Any):The position for each tab stop.Alternative Parameters + tabStops(typing.Any):Each individual tab stop. + +Returns: + + None + + """ + pass + + + def SetTopIndex(self,index:'typing.Any') -> 'None': + """ + Sets the top index (top most visible item) of the listbox. + +Args: + + index(typing.Any):The zero based index of the item to place at the top of the list.MFC References + +Returns: + + None + + """ + pass + + +class PyCListCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Arrange(self,code:'typing.Any') -> 'None': + """ + Aligns items on a grid. + +Args: + + code(typing.Any):Specifies the alignment style for the items + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',PyCWnd:'typing.Any',_id:'typing.Any') -> 'None': + """ + Creates the actual window for the object. + +Args: + + style(typing.Any):The window style + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + PyCWnd(typing.Any):The parent window + _id(typing.Any):The control IDMFC References + +Returns: + + None + + """ + pass + + + def DeleteAllItems(self,) -> 'None': + """ + Deletes all items from the list. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteItem(self,item:'typing.Any') -> 'None': + """ + Deletes the specified item. + +Args: + + item(typing.Any):The item to delete. + +Returns: + + None + + """ + pass + + + def GetTextColor(self,) -> 'typing.Any': + """ + Retrieves the text color of a list view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetTextColor(self,color:'typing.Any') -> 'None': + """ + Sets the text color of a list view control. + +Args: + + color(typing.Any):The new color. + +Returns: + + None + + """ + pass + + + def GetBkColor(self,) -> 'typing.Any': + """ + Retrieves the background color of the control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetBkColor(self,color:'typing.Any') -> 'None': + """ + Sets the background color of the control. + +Args: + + color(typing.Any):The new background color. + +Returns: + + None + + """ + pass + + + def GetItem(self,item:'typing.Any',sub:'typing.Any') -> 'LV_ITEM': + """ + Retrieves the details of an items attributes. + +Args: + + item(typing.Any):The index of the item whose attributes are to be retrieved. + sub(typing.Any):Specifies the subitem whose text is to be retrieved. + +Returns: + + LV_ITEM + + """ + pass + + + def GetItemCount(self,) -> 'typing.Any': + """ + Retrieves the number of items in a list view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemRect(self,item:'typing.Any',bTextOnly:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the bounding rectangle of a list view item. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + bTextOnly(typing.Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the list view control. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetEditControl(self,) -> 'PyCEdit': + """ + Retrieves the handle of the edit control used to edit the specified + +list view item. + +Args: + + + +Returns: + + PyCEdit + + """ + pass + + + def EditLabel(self,item:'typing.Any') -> 'PyCEdit': + """ + Edits a specified list view item in-place. + +Args: + + item(typing.Any):The index of item to edit. + +Returns: + + PyCEdit + + """ + pass + + + def EnsureVisible(self,item:'typing.Any',bPartialOK:'typing.Any') -> 'typing.Any': + """ + Ensures that a list view item is visible in its list view control. + +Args: + + item(typing.Any):The index of item to edit. + bPartialOK(typing.Any):Specifies whether partial visibility is acceptable. + +Returns: + + typing.Any + + """ + pass + + + def CreateDragImage(self,item:'typing.Any') -> 'typing.Tuple[PyCImageList, typing.Any, typing.Any]': + """ + Creates a dragging bitmap for the specified list view + +item. + +Args: + + item(typing.Any):The index of the item to edit. + +Returns: + + typing.Tuple[PyCImageList, typing.Any, typing.Any] + + """ + pass + + + def GetImageList(self,nImageList:'typing.Any') -> 'PyCImageList': + """ + Retrieves the current image list. + +Args: + + nImageList(typing.Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. + +Returns: + + PyCImageList + + """ + pass + + + def GetNextItem(self,item:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Searches for a list view item with specified properties and with specified + +relationship to a given item. + +Args: + + item(typing.Any):Index of the item to begin the searching with, or -1 to find the first item that matches the specified flags. The specified item itself is excluded from the search. + flags(typing.Any):Geometric relation of the requested item to the specified item, and the state of the requested item. The geometric relation can be one of these values: LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT The state can be zero, or it can be one or more of these values: LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED If an item does not have all of the specified state flags set, the search continues with the next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. + +Returns: + + typing.Any:Geometric relation of the requested item to the specified item, + +and the state of the requested item. The geometric relation can be one of these values: + +LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT + +The state can be zero, or it can be one or more of these values: + +LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED + +If an item does not have all of the specified state flags set, the search continues with the + +next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. + + + """ + pass + + + def InsertColumn(self,colNo:'typing.Any',item:'LV_COLUMN') -> 'typing.Any': + """ + Inserts a column into a list control when in report view. + +Args: + + colNo(typing.Any):The new column number + item(LV_COLUMN):A tuple describing the new column. + +Returns: + + typing.Any + + """ + pass + + + def InsertItem(self,item:'LV_ITEM',item1:'typing.Any',text:'typing.Any',image:'typing.Any',item2:'typing.Any',text1:'typing.Any') -> 'typing.Any': + """ + Inserts an item into the list. + +Args: + + item(LV_ITEM):A tuple describing the new item.Alternative Parameters + item1(typing.Any):The index of the item. + text(typing.Any):The text of the item. + image(typing.Any):The index of the image to use.Alternative Parameters + item2(typing.Any):The index of the item. + text1(typing.Any):The text of the item. + +Returns: + + typing.Any + + """ + pass + + + def SetImageList(self,imageList:'PyCImageList',imageType:'typing.Any') -> 'typing.Any': + """ + Assigns an image list to a list view control. + +Args: + + imageList(PyCImageList):The Image List to use. + imageType(typing.Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE + +Returns: + + typing.Any + + """ + pass + + + def GetColumn(self,column:'typing.Any') -> 'LV_COLUMN': + """ + Retrieves the details of a column in the control. + +Args: + + column(typing.Any):The index of the column whose attributes are to be retrieved. + +Returns: + + LV_COLUMN + + """ + pass + + + def GetTextBkColor(self,) -> 'typing.Any': + """ + Retrieves the text background color of a list view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetTextBkColor(self,color:'typing.Any') -> 'None': + """ + Sets the text background color of a list view control. + +Args: + + color(typing.Any):The new background color. + +Returns: + + None + + """ + pass + + + def GetTopIndex(self,) -> 'typing.Any': + """ + Retrieves the index of the topmost visible item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCountPerPage(self,) -> 'typing.Any': + """ + Calculates the number of items that can fit vertically in a list view + +control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelectedCount(self,) -> 'typing.Any': + """ + Retrieves the number of selected items in the list view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetItem(self,item:'LV_ITEM') -> 'typing.Any': + """ + Sets some of all of an items attributes. + +Args: + + item(LV_ITEM):A tuple describing the new item. + +Returns: + + typing.Any + + """ + pass + + + def SetItemState(self,item:'typing.Any',state:'typing.Any',mask:'typing.Any') -> 'typing.Any': + """ + Changes the state of an item in a list view control. + +Args: + + item(typing.Any):Index of the item whose state is to be set. + state(typing.Any):New values for the state bits. + mask(typing.Any):Mask specifying which state bits to change. + +Returns: + + typing.Any + + """ + pass + + + def GetItemState(self,item:'typing.Any',mask:'typing.Any') -> 'typing.Any': + """ + Retrieves the state of a list view item. + +Args: + + item(typing.Any):The index of the item whose position is to be retrieved. + mask(typing.Any):Mask specifying which of the item's state flags to return. + +Returns: + + typing.Any + + """ + pass + + + def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + typing.Any + + """ + pass + + + def GetItemData(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def SetItemCount(self,count:'typing.Any') -> 'None': + """ + Prepares a list view control for adding a large number of items. + +Args: + + count(typing.Any):Number of items that the control will ultimately contain.CommentsBy calling this function before adding a large number of items, you enable a list view control to reallocate its internal data structures only once rather than every time you add an item. + +Returns: + + None + + """ + pass + + + def SetItemText(self,item:'typing.Any',sub:'typing.Any',text:'str') -> 'typing.Any': + """ + Changes the text of a list view item or subitem. + +Args: + + item(typing.Any):Index of the item whose text is to be set. + sub(typing.Any):Index of the subitem, or zero to set the item label. + text(str):String that contains the new item text. + +Returns: + + typing.Any + + """ + pass + + + def GetItemText(self,item:'typing.Any',sub:'typing.Any') -> 'typing.Any': + """ + Retrieves the text of a list view item or subitem. + +Args: + + item(typing.Any):The index of the item whose text is to be retrieved. + sub(typing.Any):Specifies the subitem whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def RedrawItems(self,first:'typing.Any',first1:'typing.Any') -> 'typing.Any': + """ + Forces a listview to repaint a range of items. + +Args: + + first(typing.Any):Index of the first item to be repainted. + first1(typing.Any):Index of the last item to be repainted.CommentsThe specified items are not actually repainted until the list view window receives a WM_PAINT message. To repaint immediately, call the Windows UpdateWindow function after using this function. + +Returns: + + typing.Any + + """ + pass + + + def Update(self,item:'typing.Any') -> 'None': + """ + Forces the control to repaint a specified item. + +Args: + + item(typing.Any):The new color. + +Returns: + + None + + """ + pass + + + def SetColumn(self,colNo:'typing.Any',item:'LV_COLUMN') -> 'typing.Any': + """ + Changes column state in a list control when in report view. + +Args: + + colNo(typing.Any):The to be modified column number + item(LV_COLUMN):A tuple describing the modified column. + +Returns: + + typing.Any + + """ + pass + + + def DeleteColumn(self,first:'typing.Any') -> 'typing.Any': + """ + Deletes the specified column from the list control. + +Args: + + first(typing.Any):Index of the column to be removed. + +Returns: + + typing.Any + + """ + pass + + + def GetColumnWidth(self,first:'typing.Any') -> 'typing.Any': + """ + Gets the width of the specified column in the list control. + +Args: + + first(typing.Any):Index of the column whose width is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def SetColumnWidth(self,first:'typing.Any',first1:'typing.Any') -> 'typing.Any': + """ + Sets the width of the specified column in the list control. + +Args: + + first(typing.Any):Index of the column to be changed. + first1(typing.Any):New width of the column. + +Returns: + + typing.Any + + """ + pass + + + def GetStringWidth(self,first:'typing.Any') -> 'typing.Any': + """ + Gets the necessary column width to fully display this text in a column. + +Args: + + first(typing.Any):String that contains the text whose width is to be determined.CommentsDoesn't take the size of an included Image in account, only the size of the text is determined. + +Returns: + + typing.Any + + """ + pass + + + def HitTest(self,arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Determines which list view item, if any, is at a specified position. + +Args: + + arg(typing.Any):The point to test.Return ValueThe result is a tuple of (flags, item, subItem). flags may be a combination of the following values:ValueDescriptioncommctrl.LVHT_ABOVEThe position is above the control's client area.commctrl.LVHT_BELOWThe position is below the control's client area.commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a list item.commctrl.LVHT_ONITEMICONThe position is over a list view item's icon.commctrl.LVHT_ONITEMLABELThe position is over a list view item's text.commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item.commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area.commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, item, subItem). + +flags may be a combination of the following values: + + + +Value + + +Description + + + +commctrl.LVHT_ABOVEThe position is above the control's client area. +commctrl.LVHT_BELOWThe position is below the control's client area. +commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a + +list item. +commctrl.LVHT_ONITEMICONThe position is over a list view item's icon. +commctrl.LVHT_ONITEMLABELThe position is over a list view item's text. +commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item. +commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area. +commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. + + + """ + pass + + + def GetItemPosition(self,item:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Determines the position of the specified item. + +Args: + + item(typing.Any):The item to determine the position for. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + +class PyCListView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + typing.Any + + """ + pass + + + def GetListCtrl(self,) -> 'PyCListCtrl': + """ + Returns the underlying list control object. + +Args: + + + +Returns: + + PyCListCtrl + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCMDIChildWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ActivateFrame(self,cmdShow:'typing.Any'=-1) -> 'None': + """ + Calls the underlying MFC ActivateFrame method. + +Args: + + cmdShow(typing.Any):The status of the window.See Also + +Returns: + + None + + """ + pass + + + def CreateWindow(self,wndClass:'str',title:'str',style:'typing.Any',PyCWnd:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None,createContext:'typing.Any'=None) -> 'typing.Any': + """ + Creates the actual window for the PyCWnd object. + +Args: + + wndClass(str):The window class name, or None + title(str):The window title + style(typing.Any):The window style + PyCWnd(typing.Any):The parent window + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + createContext(typing.Any):A tuple representing a CREATECONTEXT structure.CommentsYou do not need to call this method if you use the MFC Document/View framework. + +Returns: + + typing.Any + + """ + pass + + + def GetMDIFrame(self,) -> 'None': + """ + Returns the MDI parent frame + +Args: + + + +Returns: + + None + + """ + pass + + + def MDIActivate(self,cmdShow:'typing.Any'=-1) -> 'None': + """ + Activates the MDI frame independent of the main frame. + +Args: + + cmdShow(typing.Any):The status of the window.See Also + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def PreTranslateMessage(self,) -> 'None': + """ + Calls the base PreTranslateMessage handler + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Calls the standard Python framework OnClose handler + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCMDIFrameWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetMDIClient(self,) -> 'PyCMDIFrameWnd': + """ + Returns the MDI client window + +Args: + + + +Returns: + + PyCMDIFrameWnd + + """ + pass + + + def MDIGetActive(self,) -> 'typing.Tuple[PyCMDIChildWnd, typing.Any]': + """ + Retrieves the current active MDI child window, along + +with a flag indicating whether the child window is maximized. + +Args: + + + +Returns: + + typing.Tuple[PyCMDIChildWnd, typing.Any] + + """ + pass + + + def MDIActivate(self,window:'PyCWnd') -> 'PyCMDIFrameWnd': + """ + Activate an MDI child window + +Args: + + window(PyCWnd):The window to activate. + +Returns: + + PyCMDIFrameWnd + + """ + pass + + + def MDINext(self,fNext:'typing.Any'=0) -> 'None': + """ + Activates the next MDI window + +Args: + + fNext(typing.Any):Indicates if the next (0) or previous (non-zero) window is requested.CommentsUnlike MFC, this version supports the fNext param in the WM_MDINEXT message. + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def PreTranslateMessage(self,) -> 'None': + """ + Calls the base PreTranslateMessage handler + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + + def OnContextHelp(self,) -> 'typing.Any': + """ + Calls the underlying MFC OnContextHelp method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Calls the standard Python framework OnClose handler + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCMenu(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AppendMenu(self,flags:'typing.Any',_id:'typing.Any'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': + """ + Appends a new item to the end of a menu. Python can specify the state of the menu item + +by setting values in nFlags. + +Args: + + flags(typing.Any):Specifies information about the state of the new menu item when it is added to the menu. May be a combination of the win32con.MF_* values. + _id(typing.Any):Specifies either the command ID of the new menu item. + value(typing.Union[str, typing.Any]):Specifies the content of the new menu item. If used, flags must contain win32con.MF_STRING. + +Returns: + + None + + """ + pass + + + def DeleteMenu(self,_id:'typing.Any',flags:'typing.Any') -> 'str': + """ + Deletes the specified menu item. + +Args: + + _id(typing.Any):The id of the item being deleted. + flags(typing.Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. + +Returns: + + str + + """ + pass + + + def EnableMenuItem(self,_id:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Enables, disables, or dims a menu item. + +Args: + + _id(typing.Any):Specifies the command ID of the menu item. This parameter can specify pop-up menu items as well as standard menu items. + flags(typing.Any):Specifies the action to take. It can be a combination of MF_DISABLED, MF_ENABLED, or MF_GRAYED, with MF_BYCOMMAND or MF_BYPOSITIONCommentsThe PyCMenu::CreateMenu, PyCMenu::InsertMenu, PyCMenu::ModifyMenu, and PyCMenu::LoadMenuIndirect member functions can also set the state (enabled, disabled, or dimmed) of a menu item. + +Returns: + + typing.Any + + """ + pass + + + def GetHandle(self,) -> 'typing.Any': + """ + Returns the menu object's underlying hMenu. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetMenuItemCount(self,) -> 'typing.Any': + """ + Determines the number of items in a menu. + +Args: + + + +Returns: + + typing.Any:PyCMenu.GetMenuItemCount + +int = GetMenuItemCount()Determines the number of items in a menu. +Return ValueThe number of items in the menu if the function is successful; otherwise -1. + + + """ + pass + + + def GetMenuItemID(self,pos:'typing.Any') -> 'typing.Any': + """ + Returns the item ID for the specified item in a pop-up menu. + +Args: + + pos(typing.Any):The position (zero-based) of the menu item whose ID is being retrieved.CommentsIf the specified item is a pop-up menu (as opposed to an item within the pop-up menu), the return value is -1. If nPos corresponds to a SEPARATOR menu item, the return value is 0. + +Returns: + + typing.Any + + """ + pass + + + def GetMenuString(self,_id:'typing.Any',arg:'typing.Any') -> 'str': + """ + Returns the string for a specified menu item. + +Args: + + _id(typing.Any):The id of the item being requested. + arg(typing.Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. + +Returns: + + str + + """ + pass + + + def GetSubMenu(self,pos:'typing.Any') -> 'PyCMenu': + """ + Returns a submenu. + +Args: + + pos(typing.Any):The position (zero-based) of the menu item being retrieved. + +Returns: + + PyCMenu + + """ + pass + + + def InsertMenu(self,pos:'typing.Any',flags:'typing.Any',_id:'typing.Union[PyCMenu, typing.Any]'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': + """ + Inserts an item into a menu. + +Args: + + pos(typing.Any):The position (zero-based) the item should be inserted. + flags(typing.Any):Flags for the new item. + _id(typing.Union[PyCMenu, typing.Any]):The ID for a new menu item, or handle to a submenu + value(typing.Union[str, typing.Any]):A string for the menu item. + +Returns: + + None + + """ + pass + + + def ModifyMenu(self,pos:'typing.Any',flags:'typing.Any',_id:'typing.Any'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': + """ + Modify an item in a menu. + +Args: + + pos(typing.Any):The position (zero-based) the item to be changed. + flags(typing.Any):Flags for the item. + _id(typing.Any):The ID for the item. + value(typing.Union[str, typing.Any]):A string for the menu item. + +Returns: + + None + + """ + pass + + + def TrackPopupMenu(self,arg:'typing.Tuple[typing.Any, typing.Any]',arg1:'typing.Any',arg2:'PyCWnd') -> 'None': + """ + Creates a popup menu anywhere on the screen. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The position for the menu.. + arg1(typing.Any):Flags for the menu. + arg2(PyCWnd):The owner of the menu.CommentsThe TrackPopupMenu function displays a floating pop-up menu at the specified location and tracks the selection of items on the pop-up menu. The floating pop-up menu can appear anywhere on the screen.Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is returned instead of the normal exception. + +Returns: + + None:The owner of the menu. +Comments + +The TrackPopupMenu function displays a floating pop-up menu at the + +specified location and tracks the selection of items on the pop-up menu. + +The floating pop-up menu can appear anywhere on the screen. +Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is + +returned instead of the normal exception. + + + """ + pass + + +class PyCOleClientItem(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateNewItem(self,) -> 'None': + """ + Creates an embedded item. + +Args: + + + +Returns: + + None + + """ + pass + + + def Close(self,) -> 'None': + """ + Closes the item + +Args: + + + +Returns: + + None + + """ + pass + + + def DoVerb(self,) -> 'None': + """ + Executes the specified verb. + +Args: + + + +Returns: + + None + + """ + pass + + + def Draw(self,) -> 'None': + """ + Draws the OLE item into the specified bounding rectangle using the specified device + +context. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetActiveView(self,) -> 'PyCView': + """ + Obtains the active view for the item + +Args: + + + +Returns: + + PyCView + + """ + pass + + + def GetDocument(self,) -> 'PyCDocument': + """ + Obtains the current document for the item + +Args: + + + +Returns: + + PyCDocument + + """ + pass + + + def GetInPlaceWindow(self,) -> 'PyCWnd': + """ + Obtains the window in which the item has been opened for + +in-place editing. + +Args: + + + +Returns: + + PyCWnd + + """ + pass + + + def GetItemState(self,) -> 'None': + """ + Obtains the OLE item's current state + +Args: + + + +Returns: + + None + + """ + pass + + + def GetObject(self,) -> 'PyIUnknown': + """ + Returns the COM object to the item. This is the m_lpObject + +variable in MFC. + +Args: + + + +Returns: + + PyIUnknown + + """ + pass + + + def GetStorage(self,) -> 'None': + """ + Returns the COM object used for storage + +Args: + + + +Returns: + + None + + """ + pass + + + def OnActivate(self,) -> 'None': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnChange(self,) -> 'None': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnChangeItemPosition(self,) -> 'typing.Any': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + typing.Any:PyCOleClientItem.OnChangeItemPosition + +int = OnChangeItemPosition()Calls the underlying MFC method. +Return ValueThe result is a BOOL indicating if the function succeeded. No exception is thrown. + + + """ + pass + + + def OnDeactivateUI(self,) -> 'typing.Any': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Run(self,) -> 'None': + """ + Runs the application associated with this item. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetItemRects(self,) -> 'None': + """ + Sets the bounding rectangle or the visible rectangle of the OLE item. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCOleDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCOleDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnableCompoundFile(self,bEnable:'typing.Any'=1) -> 'None': + """ + Call this function if you want to store the document using the + +compound-file format. + +Args: + + bEnable(typing.Any):Specifies whether compound file support is enabled or disabled. + +Returns: + + None + + """ + pass + + + def GetStartPosition(self,) -> 'typing.Any': + """ + Obtains the position of the first item in the document. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNextItem(self,pos:'typing.Any') -> 'typing.Tuple[typing.Any, PyCOleClientItem]': + """ + Call this function repeatedly to access each of + +the items in your document. + +Args: + + pos(typing.Any):The position to iterate from. + +Returns: + + typing.Tuple[typing.Any, PyCOleClientItem] + + """ + pass + + + def GetInPlaceActiveItem(self,wnd:'PyCWnd') -> 'PyCOleClientItem': + """ + Obtains the OLE item that is currently activated + +in place in the frame window containing the view identified by obWnd. + +Args: + + wnd(PyCWnd):The window. + +Returns: + + PyCOleClientItem + + """ + pass + + +class PyCOleInsertDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassID(self,) -> 'typing.Any': + """ + Returns the CLSID associated with the selected item + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelectionType(self,) -> 'typing.Any': + """ + Returns the type of selection made + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetPathName(self,) -> 'typing.Any': + """ + Returns the full path to the file selected in the dialog box + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCPrintDialog(object): + """An object which encapsulates an MFC CPrintDialog object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCPrintInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DocObject(self,) -> 'None': + """ + Return true if the document being printed is a DocObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDwFlags(self,) -> 'None': + """ + A flags specifying DocObject printing operations. Valid only if data member + +m_bDocObject is TRUE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDwFlags(self,) -> 'None': + """ + Set a flag specifying DocObject printing operations. Valid only if data member + +m_bDocObject is TRUE. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocOffsetPage(self,) -> 'None': + """ + Get the number of pages preceding the first page of a particular DocObject + +in a combined DocObject print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDocOffsetPage(self,) -> 'None': + """ + Set the number of pages preceding the first page of a particular DocObject + +in a combined DocObject print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPrintDialog(self,) -> 'None': + """ + Set a pointer to the CPrintDialog object used to display the Print dialog box + +for the print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDirect(self,) -> 'None': + """ + TRUE if the Print dialog box will be bypassed for direct printing; FALSE otherwise. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDirect(self,) -> 'None': + """ + Sets to TRUE if the Print dialog box will be bypassed for direct printing; FALSE + +otherwise. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPreview(self,) -> 'None': + """ + A flag indicating whether the document is being previewed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPreview(self,) -> 'None': + """ + Set whether the document is being previewed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetContinuePrinting(self,) -> 'None': + """ + A flag indicating whether the framework should continue the print loop. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetContinuePrinting(self,) -> 'None': + """ + Set whether the framework should continue the print loop. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurPage(self,) -> 'None': + """ + Get the number of the current page. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCurPage(self,) -> 'None': + """ + Set the number of the current page. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetNumPreviewPages(self,) -> 'None': + """ + Get the number of pages displayed in preview mode. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetNumPreviewPages(self,) -> 'None': + """ + Set the number of pages displayed in preview mode. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserData(self,) -> 'None': + """ + Get a user-created structure. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetUserData(self,) -> 'None': + """ + Set a user-created structure. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDraw(self,) -> 'None': + """ + Get the usable drawing area of the page in logical coordinates. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDraw(self,) -> 'None': + """ + Set the usable drawing area of the page in logical coordinates. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPageDesc(self,) -> 'None': + """ + Get the format string used to display the page numbers during print preview + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPageDesc(self,) -> 'None': + """ + Set the format string used to display the page numbers during print preview + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMinPage(self,) -> 'None': + """ + Get the number of the first page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetMinPage(self,) -> 'None': + """ + Set the number of the first page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMaxPage(self,) -> 'None': + """ + Get the number of the last page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetMaxPage(self,) -> 'None': + """ + Set the number of the last page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetOffsetPage(self,) -> 'None': + """ + Get the number of pages preceding the first page of a DocObject item being + +printed in a combined DocObject print job. This currently does NOT work, as, if I include the symbol + +pInfo->GetOffsetPage(), the link fails to find its definition. Allways returns 0. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFromPage(self,) -> 'None': + """ + The number of the first page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetToPage(self,) -> 'None': + """ + The number of the last page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetHDC(self,hdc:'typing.Any') -> 'None': + """ + Sets the printer DC compatible with the users choices, call after the print dialog + +DoModal finishes. + +Args: + + hdc(typing.Any):The DC.MFC References + +Returns: + + None + + """ + pass + + + def CreatePrinterDC(self,) -> 'None': + """ + Handle to the newly created printer device context, call only after DoModal + +finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'None': + """ + Call DoModal on the dialog. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCopies(self,) -> 'None': + """ + The number of copies requested, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDefaults(self,) -> 'None': + """ + Nonzero if the function was successful; otherwise 0. Call this function to + +retrieve the device defaults of the default printer without displaying a dialog box. The retrieved values are placed + +in the m_pd structure. In some cases, a call to this function will call the constructor for CPrintDialog with + +bPrintSetupOnly set to FALSE. In these cases, a printer DC and hDevNames and hDevMode (two handles located in the + +m_pd data member) are automatically allocated. If the constructor for CPrintDialog was called with bPrintSetupOnly + +set to FALSE, this function will not only return hDevNames and hDevMode (located in m_pd.hDevNames and m_pd.hDevMode) + +to the caller, but will also return a printer DC in m_pd.hDC. It is the responsibility of the caller to delete the + +printer DC and call the WindowsGlobalFree function on the handles when you are finished with the CPrintDialog object. + +Args: + + + +Returns: + + None + + """ + pass + + + def FreeDefaults(self,) -> 'None': + """ + After a call to GetDefaults, and you are through with the CPrintDialog object, + +this call deletes the printer DC and calls GlobalFree function on the handles. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDeviceName(self,) -> 'None': + """ + The name of the currently selected printer, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDriverName(self,) -> 'None': + """ + The name of the currently selected printer device driver, call only after + +DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDlgFromPage(self,) -> 'None': + """ + Retrieves the starting page of the print range. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDlgToPage(self,) -> 'None': + """ + Retrieves the ending page of the print range. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPortName(self,) -> 'None': + """ + The name of the currently selected printer port, call only after DoModal + +finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPrinterDC(self,) -> 'None': + """ + A handle to the printer device context if successful; otherwise NULL. If the + +bPrintSetupOnly parameter of the CPrintDialog constructor was FALSE (indicating that the Print dialog box is + +displayed), then GetPrinterDC returns a handle to the printer device context. You must call the WindowsDeleteDC + +function to delete the device context when you are done using it. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintAll(self,) -> 'None': + """ + Nonzero if all pages in the document are to be printed; otherwise 0, call only after + +DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintCollate(self,) -> 'None': + """ + Nonzero if the user selects the collate check box in the dialog box; otherwise + +0, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintRange(self,) -> 'None': + """ + Nonzero if only a range of pages in the document are to be printed; otherwise 0, + +call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintSelection(self,) -> 'None': + """ + Nonzero if only the selected items are to be printed; otherwise 0., call only + +after DoModal finishes + +Args: + + + +Returns: + + None + + """ + pass + + + def GetHDC(self,) -> 'None': + """ + Identifies a device context or an information context, depending on whether the Flags + +member specifies the PD_RETURNDC or PC_RETURNIC flag. If neither flag is specified, the value of this member is + +undefined. If both flags are specified, PD_RETURNDC has priority. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'None': + """ + A set of bit flags that you can use to initialize the Print common dialog box. When + +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the + +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, + +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, + +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, + +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, + +PD_USEDEVMODECOPIESANDCOLLATE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFlags(self,) -> 'None': + """ + A set of bit flags that you can use to initialize the Print common dialog box. When + +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the + +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, + +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, + +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, + +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, + +PD_USEDEVMODECOPIESANDCOLLATE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFromPage(self,) -> 'None': + """ + The number of the first page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetToPage(self,) -> 'None': + """ + The number of the last page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPRINTDLGMinPage(self,) -> 'None': + """ + Get the minimum value for the page range specified in the From and To page + +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are + +disabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPRINTDLGMinPage(self,) -> 'None': + """ + Set the minimum value for the page range specified in the From and To page + +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are + +disabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPRINTDLGCopies(self,) -> 'None': + """ + Get the initial number of copies for the Copies edit control if hDevMode is + +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, + +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer + +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags + +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the + +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more + +information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPRINTDLGCopies(self,) -> 'None': + """ + Set the initial number of copies for the Copies edit control if hDevMode is + +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, + +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer + +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags + +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the + +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more + +information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCProgressCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(typing.Any):The style for the control. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. + parent(PyCWnd):The parent window of the control. Usually a PyCDialog. + _id(typing.Any):The control's ID. + +Returns: + + None + + """ + pass + + + def SetRange(self,nLower:'typing.Any'=1,nUpper:'typing.Any'=1) -> 'None': + """ + Set the control's bounds + +Args: + + nLower(typing.Any):Specifies the lower limit of the range (default is zero). + nUpper(typing.Any):Specifies the upper limit of the range (default is 100). + +Returns: + + None + + """ + pass + + + def SetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's position + +Args: + + nPos(typing.Any):New position of the progress bar control. + +Returns: + + typing.Any + + """ + pass + + + def OffsetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': + """ + Advances the progress bar control's current position by the increment + +specified + +Args: + + nPos(typing.Any):Amount to advance the position. + +Returns: + + typing.Any + + """ + pass + + + def SetStep(self,nStep:'typing.Any'=1) -> 'typing.Any': + """ + Specifies the step increment for a progress bar control. + +Args: + + nStep(typing.Any):New step increment. + +Returns: + + typing.Any + + """ + pass + + + def StepIt(self,) -> 'typing.Any': + """ + Advances the current position for a progress bar control by the step increment. + +Returns previous position. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCPropertyPage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CancelToClose(self,) -> 'None': + """ + Changes the Cancel button to Close. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCancel(self,) -> 'None': + """ + Calls the default MFC OnCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOK(self,) -> 'None': + """ + Calls the default MFC OnOK handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnApply(self,) -> 'None': + """ + Calls the default MFC OnApply handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnReset(self,) -> 'None': + """ + Calls the default MFC OnReset handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnQueryCancel(self,) -> 'None': + """ + Calls the default MFC OnQueryCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardBack(self,) -> 'None': + """ + Calls the default MFC OnWizardBack handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardNext(self,) -> 'None': + """ + Calls the default MFC OnWizardNext handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardFinish(self,) -> 'None': + """ + Calls the default MFC OnWizardFinish handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnSetActive(self,) -> 'typing.Any': + """ + Calls the default MFC OnSetActive handler. + +Args: + + + +Returns: + + typing.Any:PyCPropertyPage.OnSetActive virtual method +Return ValueThe result is true if the page should be made active. + +Typically this result should be passed to the original OnSetActive handler. + + + """ + pass + + + def OnKillActive(self,) -> 'typing.Any': + """ + Calls the default MFC OnKillActive handler. + +Args: + + + +Returns: + + typing.Any:PyCPropertyPage.OnKillActive virtual method +Return ValueThe result is true if the page should be deselected. + +Typically this result should be passed to the original OnSetActive handler. + + + """ + pass + + + def SetModified(self,bChanged:'typing.Any'=1) -> 'None': + """ + Sets the modified flag. + +Args: + + bChanged(typing.Any):A flag to indicate the new modified state. + +Returns: + + None + + """ + pass + + + def SetPSPBit(self,bitMask:'typing.Any',bitValue:'typing.Any') -> 'None': + """ + Sets or clears a bit in m_psp.dwFlags + +Args: + + bitMask(typing.Any):The PSP_* bit mask constant + bitValue(typing.Any):1 to set, 0 to clear + +Returns: + + None + + """ + pass + + +class PyCPropertySheet(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddPage(self,page:'PyCPropertyPage') -> 'None': + """ + Adds the supplied page with the rightmost tab in the property sheet. + +Args: + + page(PyCPropertyPage):The page to be added.CommentsAdd pages to the property sheet in the left-to-right order you want them to appear.MFC References + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'typing.Any',exStyle:'typing.Any',parent:'PyCWnd'=None) -> 'None': + """ + Displays the property sheet as a modeless dialog. + +Args: + + style(typing.Any):The style for the window. + exStyle(typing.Any):The extended style for the window. + parent(PyCWnd):The parent of the dialog. + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'typing.Any': + """ + Displays the property sheet as a modal dialog. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def EnableStackedTabs(self,stacked:'typing.Any') -> 'PyCPropertyPage': + """ + Enables or disables stacked tabs. + +Args: + + stacked(typing.Any):A boolean flag + +Returns: + + PyCPropertyPage + + """ + pass + + + def EndDialog(self,result:'typing.Any') -> 'None': + """ + Closes the dialog, with the specified result. + +Args: + + result(typing.Any):The result to be returned by DoModal. + +Returns: + + None + + """ + pass + + + def GetActiveIndex(self,) -> 'typing.Any': + """ + Retrieves the index of the active page of the property sheet. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetActivePage(self,) -> 'PyCPropertyPage': + """ + Returns the currently active property page. + +Args: + + + +Returns: + + PyCPropertyPage + + """ + pass + + + def GetPage(self,pageNo:'typing.Any') -> 'PyCPropertyPage': + """ + Returns the specified property page. + +Args: + + pageNo(typing.Any):The index of the page toretrieve.MFC References + +Returns: + + PyCPropertyPage + + """ + pass + + + def GetPageIndex(self,page:'PyCPropertyPage') -> 'typing.Any': + """ + Retrieves the index of the specified page of the property sheet. + +Args: + + page(PyCPropertyPage):The page. + +Returns: + + typing.Any + + """ + pass + + + def GetPageCount(self,) -> 'typing.Any': + """ + Returns the number of pages. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTabCtrl(self,) -> 'PyCTabCtrl': + """ + Returns the tab control used by the sheet. + +Args: + + + +Returns: + + PyCTabCtrl + + """ + pass + + + def OnInitDialog(self,) -> 'typing.Any': + """ + Calls the default MFC OnInitDialog handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def PressButton(self,button:'typing.Any') -> 'None': + """ + Simulates the choice of the specified button in a property sheet. + +Args: + + button(typing.Any):The button to press + +Returns: + + None + + """ + pass + + + def RemovePage(self,offset:'typing.Any',page:'typing.Any') -> 'None': + """ + Removes the specified page from the sheet. + +Args: + + offset(typing.Any):The page number to removeAlternative Parameters + page(typing.Any):The page to remove + +Returns: + + None + + """ + pass + + + def SetActivePage(self,page:'PyCPropertyPage') -> 'None': + """ + Programmatically sets the active page object. + +Args: + + page(PyCPropertyPage):The page. + +Returns: + + None + + """ + pass + + + def SetTitle(self,title:'str') -> 'None': + """ + Sets the caption for the property sheet. + +Args: + + title(str):The new caption + +Returns: + + None + + """ + pass + + + def SetFinishText(self,text:'str') -> 'None': + """ + Sets the text for the Finish button + +Args: + + text(str):The next for the button + +Returns: + + None + + """ + pass + + + def SetWizardMode(self,) -> 'None': + """ + Enables the wizard mode + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWizardButtons(self,flags:'typing.Any') -> 'None': + """ + Enables the wizard buttons + +Args: + + flags(typing.Any):The wizard flags + +Returns: + + None + + """ + pass + + + def SetPSHBit(self,bitMask:'typing.Any',bitValue:'typing.Any') -> 'None': + """ + Sets or clears a bit in m_psh.dwFlags + +Args: + + bitMask(typing.Any):The PSH_* bit mask constant + bitValue(typing.Any):1 to set, 0 to clear + +Returns: + + None + + """ + pass + + +class PyCRect(object): + """A Python interface the the MFC CRect class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRgn(object): + """An object encapsulating an MFC PyCRgn class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRichEditCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Clear(self,) -> 'typing.Any': + """ + Clears all text in an edit control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Copy(self,) -> 'None': + """ + Copys the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates a rich edit control window. + +Args: + + style(typing.Any):The control style + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The position of the control + parent(PyCWnd):The parent window. Must not be None + _id(typing.Any):The control ID + +Returns: + + None + + """ + pass + + + def Cut(self,) -> 'None': + """ + Cuts the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def FindText(self,charPos:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Finds text in the control + +Args: + + charPos(typing.Any):The character position + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetCharPos(self,charPos:'typing.Any') -> 'typing.Any': + """ + Returns the location of the top-left corner of the character specified + +by charPos. + +Args: + + charPos(typing.Any):The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple + +Returns: + + typing.Any:The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple + + + + """ + pass + + + def GetDefaultCharFormat(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any:CRichEditCtrl::GetDefaultCharFormat +Return ValueThe return value is a win32ui::CHARFORMAT tuple + + + + """ + pass + + + def GetEventMask(self,) -> 'typing.Any': + """ + Returns the current event mask. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelectionCharFormat(self,) -> 'typing.Any': + """ + Returns the character formatting of the selection. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetFirstVisibleLine(self,) -> 'typing.Any': + """ + Returns zero-based index of the topmost visible line. + +Args: + + + +Returns: + + typing.Any:CRichEditCtrl::GetFirstVisibleLine +Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. + + + """ + pass + + + def GetParaFormat(self,) -> 'typing.Any': + """ + Returns the current paragraph formatting attributes. + +Args: + + + +Returns: + + typing.Any:CRichEditCtrl::GetParaFormat +Return ValueThe return value is a win32ui::PARAFORMAT tuple + + + + """ + pass + + + def GetSel(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the start and end of the current selection. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::GetSel +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the + +end of the current selection) + + + """ + pass + + + def GetSelText(self,) -> 'str': + """ + Returns the currently selected text + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTextLength(self,) -> 'typing.Any': + """ + Returns the length of the text in the control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetLine(self,lineNo:'typing.Any') -> 'typing.Any': + """ + Returns the text in a specified line. + +Args: + + lineNo(typing.Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. + +Returns: + + typing.Any + + """ + pass + + + def GetModify(self,) -> 'typing.Any': + """ + Nonzero if the text in this control has been modified; otherwise 0. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetLineCount(self,) -> 'typing.Any': + """ + Gets the number of lines in an edit control. + +Args: + + + +Returns: + + typing.Any:CRichEditCtrl::GetLineCount +Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. + + + """ + pass + + + def LimitText(self,nChars:'typing.Any'=0) -> 'None': + """ + Sets max length of text that user can enter + +Args: + + nChars(typing.Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References + +Returns: + + None + + """ + pass + + + def LineFromChar(self,charNo:'typing.Any'=-1) -> 'typing.Any': + """ + Returns the line number of the specified character. + +Args: + + charNo(typing.Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References + +Returns: + + typing.Any:CRichEditCtrl::LineFromChar +Return ValueThe zero-based line number of the line containing the character index specified by charNo. + +If charNo is -1, the number of the line that contains the first character of the selection is returned. + +If there is no selection, the current line number is returned. + + + """ + pass + + + def LineIndex(self,lineNo:'typing.Any'=-1) -> 'typing.Any': + """ + Retrieves the character index of a line within a multiple-line edit control. + +Args: + + lineNo(typing.Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + typing.Any:CRichEditCtrl::LineIndex +Return ValueThe character index of the line specified in lineNo, or -1 if + +the specified line number is greater then the number of lines in + +the edit control. + + + """ + pass + + + def LineScroll(self,nLines:'typing.Any',nChars:'typing.Any'=0) -> 'typing.Any': + """ + Scroll the control vertically and horizontally + +Args: + + nLines(typing.Any):Specifies the number of lines to scroll vertically. + nChars(typing.Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + typing.Any + + """ + pass + + + def Paste(self,) -> 'None': + """ + Pastes the contents of the clipboard into the control. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReplaceSel(self,text:'str') -> 'None': + """ + Replaces the selection with the specified text. + +Args: + + text(str):The text to replace the selection with.MFC References + +Returns: + + None + + """ + pass + + + def SetBackgroundColor(self,bSysColor:'typing.Any',cr:'typing.Any'=0) -> 'typing.Any': + """ + Sets the background color for the control. + +Args: + + bSysColor(typing.Any):Indicates if the background color should be set to the system value. If this value is TRUE, cr is ignored. + cr(typing.Any):The requested background color. Used only if bSysColor is FALSE.MFC References + +Returns: + + typing.Any:CRichEditCtrl::SetEventMask +Return ValueThe return value is the previous background color. + + + """ + pass + + + def SetDefaultCharFormat(self,charFormat:'typing.Any') -> 'None': + """ + None + +Args: + + charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References + +Returns: + + None + + """ + pass + + + def SetEventMask(self,eventMask:'typing.Any') -> 'typing.Any': + """ + Sets the event motification mask. + +Args: + + eventMask(typing.Any):The new event mask. Must be one of the win32con.ENM_* flags.MFC References + +Returns: + + typing.Any:CRichEditCtrl::SetEventMask +Return ValueThe return value is the previous event mask. + + + """ + pass + + + def SetSelectionCharFormat(self,charFormat:'typing.Any') -> 'None': + """ + Sets the current selections character formatting attributes. + +Args: + + charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References + +Returns: + + None + + """ + pass + + + def SetModify(self,modified:'typing.Any'=1) -> 'None': + """ + Sets the modified flag for this control + +Args: + + modified(typing.Any):Indicates the new value for the modified flag.MFC References + +Returns: + + None + + """ + pass + + + def SetOptions(self,op:'typing.Any',flags:'typing.Any') -> 'None': + """ + Sets options for the control. + +Args: + + op(typing.Any):Indicates the operation. Must be one of the win32con.ECOOP_* flags. + flags(typing.Any):Indicates the options. Must be one a combination of win32con.ECO_* flags.MFC References + +Returns: + + None + + """ + pass + + + def SetParaFormat(self,paraFormat:'typing.Any') -> 'typing.Any': + """ + Sets the paragraph formatting + +Args: + + paraFormat(typing.Any):A charformat tuple. See win32ui::PARAFORMAT tuple for details.MFC References + +Returns: + + typing.Any:CRichEditCtrl::SetParaFormat +Return ValueThis function seems to return occasionally return failure, but + +the formatting is applied. Therefore an exception is not raised on failure, + +but the BOOL return code is passed back. + + + """ + pass + + + def SetReadOnly(self,bReadOnly:'typing.Any'=1) -> 'None': + """ + Sets or clears the read-only status of the listbox. + +Args: + + bReadOnly(typing.Any):The read-only state to set.MFC References + +Returns: + + None + + """ + pass + + + def SetSel(self,start:'typing.Any',end:'typing.Any',arg:'typing.Any') -> 'None': + """ + Sets the selection in the edit control. + +Args: + + start(typing.Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. + end(typing.Any):Specifies the ending position.Alternative Parameters + arg(typing.Any):As for normal start, end args.MFC References + +Returns: + + None + + """ + pass + + + def SetSelAndCharFormat(self,charFormat:'typing.Any') -> 'None': + """ + Sets the selection and char format. + +Args: + + charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.CommentsHighly optimised for speed for color editors.MFC References + +Returns: + + None + + """ + pass + + + def SetTargetDevice(self,dc:'PyCDC',lineWidth:'typing.Any') -> 'None': + """ + Sets the target device for the control + +Args: + + dc(PyCDC):The new DC - may be None + lineWidth(typing.Any):Line width to use for formatting.MFC References + +Returns: + + None + + """ + pass + + + def StreamIn(self,_format:'typing.Any',method:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Invokes a callback to stream data into the control. + +Args: + + _format(typing.Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) + method(typing.Any):A callable object (eg, a method or function) This method is called with a single integer param, which is the maximum number of bytes to fetch. The method should return a zero length string, or None to finish the operation, and a string otherwise.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::StreamIn +Return ValueThe return value is a tuple of (no bytes written, error code) + + + """ + pass + + + def StreamOut(self,_format:'typing.Any',method:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Invokes a callback to stream data into the control. + +Args: + + _format(typing.Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) and may also combine SFF_SELECTION. + method(typing.Any):A callable object (eg, a method or function) This method is called with a string parameter. It should return an integer, zero to abort, non zero otherwise.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::StreamOut +Return ValueThe return value is a tuple of (no bytes written, error code) + + + """ + pass + + +class PyCRichEditDoc(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCloseDocument(self,) -> 'None': + """ + Call the MFC OnCloseDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCRichEditDocTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoCreateRichEditDoc(self,fileName:'str'=None) -> 'PyCRichEditDoc': + """ + Creates an underlying document object. + +Args: + + fileName(str):The name of the file to load. + +Returns: + + PyCRichEditDoc + + """ + pass + + +class PyCRichEditView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetRichEditCtrl(self,) -> 'PyCRichEditCtrl': + """ + Returns the underlying rich edit control object. + +Args: + + + +Returns: + + PyCRichEditCtrl + + """ + pass + + + def SetWordWrap(self,wordWrap:'typing.Any') -> 'typing.Any': + """ + Sets the wordwrap state for the control. + +Args: + + wordWrap(typing.Any):The new word-wrap state.MFC References + +Returns: + + typing.Any + + """ + pass + + + def WrapChanged(self,) -> 'typing.Any': + """ + Calls the underlying WrapChanged method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SaveTextFile(self,FileName:'typing.Any') -> 'typing.Any': + """ + Saves the contents of the control as a test file + +Args: + + FileName(typing.Any):Name of file to saveCommentsTheere is no equivilent MFC method. This is implemented in this module for performance reasons. + +Returns: + + typing.Any + + """ + pass + + +class PyCScrollView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDeviceScrollPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the positon of the scroll bars in device units. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetDC(self,) -> 'PyCDC': + """ + Gets the view's current DC. + +Args: + + + +Returns: + + PyCDC + + """ + pass + + + def GetScrollPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the current position of the scroll bars (in logical units). + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetTotalSize(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the total size of the view in logical units. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + + def ResizeParentToFit(self,bShrinkOnly:'typing.Any'=1) -> 'typing.Any': + """ + Lets the size of a view dictate the size of its frame window. + +Args: + + bShrinkOnly(typing.Any):The kind of resizing to perform. The default value, TRUE, shrinks the frame window if appropriate.CommentsThis is recommended only for views in MDI child frame windows. Use ResizeParentToFit in the OnInitialUpdate handler function of your View class. You must ensure the parent's PyCFrameWnd::RecalcLayout is called before using this method. + +Returns: + + typing.Any + + """ + pass + + + def SetScaleToFitSize(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Scales the viewport size to the current window size automatically. + +Args: + + size(typing.Tuple[typing.Any, typing.Any]):The horizontal and vertical sizes to which the view is to be scaled. The scroll view's size is measured in logical units. + +Returns: + + None + + """ + pass + + + def ScrollToPosition(self,position:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Scrolls to a given point in the view. + +Args: + + position(typing.Tuple[typing.Any, typing.Any]):The position to scroll to. + +Returns: + + None + + """ + pass + + + def SetScrollSizes(self,mapMode:'typing.Any',sizeTotal:'typing.Tuple[typing.Any, typing.Any]',arg:'typing.Tuple[typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Sets the sizes of the scroll bars + +Args: + + mapMode(typing.Any):The mapping mode for this view. + sizeTotal(typing.Tuple[typing.Any, typing.Any]):The total size of the view. Sizes are in logical units. Both x and y must be greater than zero. + arg(typing.Tuple[typing.Any, typing.Any]):The number of untils to scroll in response to a page-down command. + arg1(typing.Tuple[typing.Any, typing.Any]):The number of untils to scroll in response to a line-down command. + +Returns: + + None + + """ + pass + + + def UpdateBars(self,) -> 'None': + """ + Update the scroll bars state + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCSliderCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(typing.Any):The style for the control. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. + parent(PyCWnd):The parent window of the control. Usually a PyCDialog. + _id(typing.Any):The control's ID. + +Returns: + + None + + """ + pass + + + def GetLineSize(self,) -> 'typing.Any': + """ + Get the control's position + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetLineSize(self,nLineSize:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's line size. Returns the previous line size. + +Args: + + nLineSize(typing.Any):New line size of the Slider bar control + +Returns: + + typing.Any + + """ + pass + + + def GetPageSize(self,) -> 'typing.Any': + """ + Get the control's position + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetPageSize(self,nPageSize:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's page size Returns the previous page size. + +Args: + + nPageSize(typing.Any):New page size of the Slider bar control. + +Returns: + + typing.Any + + """ + pass + + + def GetRangeMax(self,) -> 'typing.Any': + """ + Get the control's Maximum + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRangeMin(self,) -> 'typing.Any': + """ + Get the control's Minimum + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRange(self,) -> 'typing.Any': + """ + Get the control's min and max + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetRange(self,nRangeMin:'typing.Any'=1,nRangeMax:'typing.Any'=1,bRedraw:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's min and max + +Args: + + nRangeMin(typing.Any):New minimum of the Slider bar control. + nRangeMax(typing.Any):New maximum of the Slider bar control. + bRedraw(typing.Any):Should slider be redrawn? + +Returns: + + typing.Any + + """ + pass + + + def GetSelection(self,) -> 'typing.Any': + """ + Get the control's selection start and end positions + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetSelection(self,nRangeMin:'typing.Any'=1,nRangeMax:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's selection start and end positions + +Args: + + nRangeMin(typing.Any):New start of the Slider's selection. + nRangeMax(typing.Any):New end of the Slider's selection. + +Returns: + + typing.Any + + """ + pass + + + def GetChannelRect(self,) -> 'typing.Any': + """ + Get the control's channel rectangle + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetThumbRect(self,) -> 'typing.Any': + """ + Get the control's thumb rectangle + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetPos(self,) -> 'typing.Any': + """ + Get the control's position + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's position + +Args: + + nPos(typing.Any):New position of the Slider bar control. + +Returns: + + typing.Any + + """ + pass + + + def GetNumTics(self,) -> 'typing.Any': + """ + Get number of tics in the slider + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTicArray(self,) -> 'typing.Any': + """ + Get a tuple of slider tic positions + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTic(self,nTic:'typing.Any'=1) -> 'typing.Any': + """ + Get the position of the specified tic number + +Args: + + nTic(typing.Any):Zero based index of the tic mark + +Returns: + + typing.Any + + """ + pass + + + def GetTicPos(self,nTic:'typing.Any'=1) -> 'typing.Any': + """ + Get the position of the specified tic number in client coordinates + +Args: + + nTic(typing.Any):Zero based index of the tic mark + +Returns: + + typing.Any + + """ + pass + + + def SetTic(self,nTic:'typing.Any'=1) -> 'typing.Any': + """ + Set a tic at the specified position + +Args: + + nTic(typing.Any):Position of the desired tic mark + +Returns: + + typing.Any + + """ + pass + + + def SetTicFreq(self,nFreq:'typing.Any'=1) -> 'typing.Any': + """ + Set the tic frequency + +Args: + + nFreq(typing.Any):Frequency of tic marks + +Returns: + + typing.Any + + """ + pass + + + def ClearSel(self,bRedraw:'typing.Any'=1) -> 'typing.Any': + """ + Clear the selection + +Args: + + bRedraw(typing.Any):Redraw the control? + +Returns: + + typing.Any + + """ + pass + + + def VerifyPos(self,) -> 'typing.Any': + """ + Verify the position is between configured min and max + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def ClearTics(self,bRedraw:'typing.Any'=1) -> 'typing.Any': + """ + Clear the control's tic marks + +Args: + + bRedraw(typing.Any):Redraw the control? + +Returns: + + typing.Any + + """ + pass + + +class PyCSpinButtonCtrl(object): + """A windows spin button control. Encapsulates an MFC CSpinButtonCtrl object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPos(self,) -> 'typing.Any': + """ + Obtains the current position for a spin button control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetPos(self,pos:'typing.Any') -> 'typing.Any': + """ + Sets the current position for a spin button control. + +Args: + + pos(typing.Any):The new position.Return ValueThe result is the previous position. + +Returns: + + typing.Any:The new position.Return ValueThe result is the previous position. + + + """ + pass + + + def SetRange(self,) -> 'typing.Any': + """ + Sets the upper and lower limits (range) for a spin button control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetRange32(self,) -> 'typing.Any': + """ + Sets the 32 bit upper and lower limits (range) for a spin button control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCSplitterWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPane(self,row:'typing.Any',col:'typing.Any') -> 'PyCWnd': + """ + None + +Args: + + row(typing.Any):The row in the splitter. + col(typing.Any):The column in the splitter.CommentsTheoretically the return value can be a PyCWnd object, but currently it will always be a PyCView or derived object. + +Returns: + + PyCWnd + + """ + pass + + + def CreateView(self,view:'PyCView',row:'typing.Any',col:'typing.Any',arg:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Creates a view in a splitter window + +Args: + + view(PyCView):The view to place in the splitter pane. + row(typing.Any):The row in the splitter to place the view. + col(typing.Any):The column in the splitter to place the view. + arg(typing.Tuple[typing.Any, typing.Any]):The initial size of the new view.MFC References + +Returns: + + None + + """ + pass + + + def CreateStatic(self,parent:'typing.Any',rows:'typing.Any',cols:'typing.Any',style:'typing.Any',_id:'typing.Any') -> 'None': + """ + Creates a static splitter window. + +Args: + + parent(typing.Any):The parent window. + rows(typing.Any):The number of rows in the splitter. + cols(typing.Any):The number of columns in the splitter. + style(typing.Any):Specifies the window style + _id(typing.Any):The child window ID of the window. The ID can be AFX_IDW_PANE_FIRST unless the splitter window is nested inside another splitter window.CommentsA static splitter window is a splitter where the number of panes are fixed at window creation time. Currently this is the only splitter window supported by win32ui.MFC References + +Returns: + + None + + """ + pass + + + def SetColumnInfo(self,column:'typing.Any',ideal:'typing.Any',_min:'typing.Any') -> 'None': + """ + Sets a new minimum height and ideal height for a column + +Args: + + column(typing.Any):The column in the splitter. + ideal(typing.Any):Specifies an ideal height for the splitter window column in pixels. + _min(typing.Any):Specifies a minimum height for the splitter window column in pixels. + +Returns: + + None + + """ + pass + + + def SetRowInfo(self,row:'typing.Any',ideal:'typing.Any',_min:'typing.Any') -> 'None': + """ + Sets a new minimum height and ideal height for a row. + +Args: + + row(typing.Any):The row in the splitter. + ideal(typing.Any):Specifies an ideal height for the splitter window row in pixels. + _min(typing.Any):Specifies a minimum height for the splitter window row in pixels. + +Returns: + + None + + """ + pass + + + def IdFromRowCol(self,row:'typing.Any',col:'typing.Any') -> 'None': + """ + Gets the child window ID for the specified child. + +Args: + + row(typing.Any):The row in the splitter. + col(typing.Any):The col in the splitter + +Returns: + + None + + """ + pass + + + def DoKeyboardSplit(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCStatusBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPaneInfo(self,index:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Returns the id, style, and width of the indicator pane at the + +location specified by index. + +Args: + + index(typing.Any):Index of the pane whose information is to be retrieved.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetStatusBarCtrl(self,) -> 'PyCStatusBarCtrl': + """ + Gets the statusbar control object for the statusbar. + +Args: + + + +Returns: + + PyCStatusBarCtrl + + """ + pass + + + def SetIndicators(self,indicators:'typing.Any') -> 'None': + """ + Sets each indicator's ID. + +Args: + + indicators(typing.Any):A tuple containing the ID's of the indicators. + +Returns: + + None + + """ + pass + + + def SetPaneInfo(self,index:'typing.Any',_id:'typing.Any',style:'typing.Any',width:'typing.Any') -> 'None': + """ + Sets the specified indicator pane to a new ID, style, and width. + +Args: + + index(typing.Any):Index of the indicator pane whose style is to be set. + _id(typing.Any):New ID for the indicator pane. + style(typing.Any):New style for the indicator pane.The following indicator styles are supported:afxres.SBPS_NOBORDERS - No 3-D border around the pane.afxres.SBPS_POPOUT - Reverse border so that text "pops out."afxres.SBPS_DISABLED - Do not draw text.afxres.SBPS_STRETCH - Stretch pane to fill unused space. Only one pane per status bar can have this style.afxres.SBPS_NORMAL - No stretch, borders, or pop-out. + width(typing.Any):New width for the indicator pane.MFC References + +Returns: + + None + + """ + pass + + +class PyCStatusBarCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(typing.Any):The style for the control. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. + parent(PyCWnd):The parent window of the control. Usually a PyCDialog. + _id(typing.Any):The control's ID. + +Returns: + + None + + """ + pass + + + def GetBorders(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Retrieve the status bar control's current widths of + +the horizontal and vertical borders and of the space between rectangles. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetParts(self,nParts:'typing.Any') -> 'typing.Any': + """ + Retrieve coordinates of the parts in a status bar control. + +Args: + + nParts(typing.Any):The number of coordinates to retrieveCommentsThis function, as designed in MFC, returns both the *number* of parts, and, through an OUT parameter, an array of ints giving the coordinates of the parts. There is also an IN parameter saying how many coordinates to give back. Here, we're explicitly changing the semantics a bit.GetParts() -> Tuple of all coordinates GetParts(n) -> Tuple of the first n coordinates (or all coordinates, if fewer than n)So, in Python, you can't simultaneously find out how many coordinates there are, and retrieve a subset of them. In a reasonable universe, there would have been GetParts() -> int, and GetCoords() -> List. This means that I need to call the MFC method twice; once to find out how many there are, and another time to get them. + +Returns: + + typing.Any + + """ + pass + + + def GetRect(self,nPane:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the bounding rectangle of a part in a status + +bar control. + +Args: + + nPane(typing.Any):Zero-based index of the part whose bounding rectangle is to be retrieved. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetText(self,nPane:'typing.Any') -> 'typing.Any': + """ + Retrieve the text from the given part of a status bar control. + +Args: + + nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetTextAttr(self,nPane:'typing.Any') -> 'typing.Any': + """ + Retrieve the attributes of the text in the given part of a status bar + +control. + +Args: + + nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetTextLength(self,nPane:'typing.Any') -> 'typing.Any': + """ + Retrieve the length the text in the given part of a status bar control. + +Args: + + nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def SetMinHeight(self,nHeight:'typing.Any') -> 'None': + """ + Set the minimum height of a status bar control's drawing area. + +Args: + + nHeight(typing.Any):Minimum height + +Returns: + + None + + """ + pass + + + def SetParts(self,coord:'typing.Any') -> 'None': + """ + Sets the number of parts in a status bar control and the coordinate of the right + +edge of each part. + +Args: + + coord(typing.Any):Coordinates of each part + +Returns: + + None + + """ + pass + + + def SetText(self,text:'str',nPane:'typing.Any',nType:'typing.Any') -> 'None': + """ + Set the text in the given part of a status bar control. + +Args: + + text(str):The text to display + nPane(typing.Any):Zero-based index of the part to set. + nType(typing.Any):Type of drawing operation.CommentsThe drawing type can be set to one of:~ 0 - The text is drawn with a border to appear lower than the plane of the status bar.~ win32con.SBT_NOBORDERS - The text is drawn without borders.~ win32con.SBT_OWNERDRAW - The text is drawn by the parent window.~ win32con.SBT_POPOUT - The text is drawn with a border to appear higher than the plane of the status bar. + +Returns: + + None + + """ + pass + + + def SetTipText(self,nPane:'typing.Any',text:'str') -> 'None': + """ + Sets the tooltip text for a pane in a status bar. The status bar must have + +been created with the afxres.SBT_TOOLTIPS control style to enable ToolTips. + +Args: + + nPane(typing.Any):The zero-based index of status bar pane to receive the tooltip text. + text(str):The string containing the tooltip text.CommentsPay attention, this tooltip text is ONLY displayed in two situations: 1. When the corresponding pane in the status bar contains only an icon. 2. When the corresponding pane in the status bar contains text that is truncated due to the size of the pane. To make the tooltip appear even if the text is not truncated, you could add additional spaces to the end of the pane text.MFC References + +Returns: + + None + + """ + pass + + +class PyCTabCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCurSel(self,) -> 'typing.Any': + """ + Gets the current selection of a tab control. + +Args: + + + +Returns: + + typing.Any:PyCTabCtrl.GetCurSel + +int = GetCurSel()Gets the current selection of a tab control. +Return ValueThe zero-based index of the currently selected item, or -1 if no selection. + + + """ + pass + + + def GetItemCountl(self,) -> 'typing.Any': + """ + Returns the number of tabs in the control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetCurSel(self,index:'typing.Any') -> 'typing.Any': + """ + Sets the current selection of a tab control. + +Args: + + index(typing.Any):The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. + +Returns: + + typing.Any:The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. + + + """ + pass + + +class PyCToolBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetButtonStyle(self,index:'typing.Any') -> 'None': + """ + Retrieves the style for a button. + +Args: + + index(typing.Any):Index of the item whose style is to be retrieved. + +Returns: + + None + + """ + pass + + + def GetButtonText(self,index:'typing.Any') -> 'str': + """ + Gets the text for a button. + +Args: + + index(typing.Any):Index of the item whose text is to be retrieved. + +Returns: + + str + + """ + pass + + + def GetItemID(self,index:'typing.Any') -> 'None': + """ + Returns the command ID of a button or separator at the given index. + +Args: + + index(typing.Any):Index of the item whose ID is to be retrieved. + +Returns: + + None + + """ + pass + + + def SetButtonInfo(self,index:'typing.Any',ID:'typing.Any',style:'typing.Any',imageIx:'typing.Any') -> 'None': + """ + Sets the button's command ID, style, and image number. + +Args: + + index(typing.Any):Index of the button or separator whose information is to be set. + ID(typing.Any):The value to which the button's command ID is set. + style(typing.Any):The new button style + imageIx(typing.Any):New index for the button's image within the bitmap + +Returns: + + None + + """ + pass + + + def GetToolBarCtrl(self,) -> 'PyCToolBarCtrl': + """ + Gets the toolbar control object for the toolbar + +Args: + + + +Returns: + + PyCToolBarCtrl + + """ + pass + + + def LoadBitmap(self,_id:'PyResourceId') -> 'None': + """ + Loads the bitmap containing bitmap-button images. + +Args: + + _id(PyResourceId):Name or id of the resource that contains the bitmap.CommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. + +Returns: + + None + + """ + pass + + + def LoadToolBar(self,_id:'PyResourceId') -> 'None': + """ + Loads a toolbar from a toolbar resource. + +Args: + + _id(PyResourceId):Name or resource id of the resourceCommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. + +Returns: + + None + + """ + pass + + + def SetBarStyle(self,style:'typing.Any') -> 'None': + """ + Sets the toolbar part of style + +Args: + + style(typing.Any):The toolbar style to set. + +Returns: + + None + + """ + pass + + + def SetBitmap(self,hBitmap:'typing.Any') -> 'None': + """ + Sets a bitmapped image. + +Args: + + hBitmap(typing.Any):The handle to a bitmap resource.CommentsCall this method to set the bitmap image for the toolbar. For example, call SetBitmap to change the bitmapped image after the user takes an action on a document that changes the action of a button. + +Returns: + + None + + """ + pass + + + def SetButtons(self,buttons:'typing.Any',numButtons:'typing.Any') -> 'None': + """ + Sets button styles and an index of button images within the bitmap. + +Args: + + buttons(typing.Any):A tuple containing the ID's of the buttons.Alternative Parameters + numButtons(typing.Any):The number of buttons to pre-allocate. If this option is used, then PyCToolBar::PySetButtonInfo must be used. + +Returns: + + None + + """ + pass + + + def SetButtonStyle(self,index:'typing.Any',style:'typing.Any') -> 'None': + """ + Sets the style for a button. + +Args: + + index(typing.Any):Index of the item whose style is to be set + style(typing.Any):The new style + +Returns: + + None + + """ + pass + + + def SetHeight(self,height:'typing.Any') -> 'None': + """ + Sets the height of the toolbar. + +Args: + + height(typing.Any):The height in pixels of the toolbar. + +Returns: + + None + + """ + pass + + + def SetSizes(self,sizeButton:'typing.Tuple[typing.Any, typing.Any]',sizeButton1:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Sets the size of each button. + +Args: + + sizeButton(typing.Tuple[typing.Any, typing.Any]):The size of each button. + sizeButton1(typing.Tuple[typing.Any, typing.Any]):The size of each bitmap. + +Returns: + + None + + """ + pass + + +class PyCToolBarCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddBitmap(self,numButtons:'typing.Any',bitmap:'typing.Any') -> 'typing.Any': + """ + Add one or more button images to the list of button images + +Args: + + numButtons(typing.Any):Number of button images in the bitmap. + bitmap(typing.Any):Bitmap containing button or buttons to be addedMFC References + +Returns: + + typing.Any + + """ + pass + + + def AddButtons(self,) -> 'typing.Any': + """ + Add one or more buttons to the toolbar + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def AddStrings(self,strings:'typing.Any') -> 'typing.Any': + """ + Add one or more strings to the toolbar + +Args: + + strings(typing.Any):Strings to add. Can give more than one string. + +Returns: + + typing.Any + + """ + pass + + + def AutoSize(self,) -> 'None': + """ + Resize the entire toolbar control + +Args: + + + +Returns: + + None + + """ + pass + + + def CheckButton(self,nID:'typing.Any',bCheck:'typing.Any'=1) -> 'typing.Any': + """ + Check or clear a given button in a toolbar control + +Args: + + nID(typing.Any):Command identifier of the button to check or clear. + bCheck(typing.Any):1 to check, 0 to clear the buttonMFC References + +Returns: + + typing.Any + + """ + pass + + + def CommandToIndex(self,nID:'typing.Any') -> 'typing.Any': + """ + Retrieve the zero-based index for the button associated with the + +specified command identifier. + +Args: + + nID(typing.Any):Command identifier of the button you want to find.MFC References + +Returns: + + typing.Any + + """ + pass + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the window for a new toolbar object + +Args: + + style(typing.Any):The style for the button. Use any of the win32con.BS_* constants. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the button. + parent(PyCWnd):The parent window of the button. Usually a PyCDialog. + _id(typing.Any):The buttons control ID.MFC References + +Returns: + + None + + """ + pass + + + def Customize(self,) -> 'None': + """ + Display the Customize Toolbar dialog box. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteButton(self,nID:'typing.Any') -> 'None': + """ + Delete a button from the toolbar control. + +Args: + + nID(typing.Any):ID of the button to delete.MFC References + +Returns: + + None + + """ + pass + + + def EnableButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': + """ + Enable or disable a toolbar control button. + +Args: + + nID(typing.Any):ID of the button to enable or disable. + bEnable(typing.Any):1 to enable, 0 to disableMFC References + +Returns: + + None + + """ + pass + + + def GetBitmapFlags(self,) -> 'typing.Any': + """ + retrieve the bitmap flags from the toolbar. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetButton(self,nID:'typing.Any') -> 'typing.Any': + """ + Retrieve information about the specified button in a + +toolbar control. + +Args: + + nID(typing.Any):ID of the button to retrieve.MFC References + +Returns: + + typing.Any + + """ + pass + + + def GetButtonCount(self,) -> 'typing.Any': + """ + Retrieve a count of the buttons currently in the toolbar control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemRect(self,nID:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieve the bounding rectangle of a button in a + +toolbar control. + +Args: + + nID(typing.Any):ID of the button.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetRows(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieve the number of rows of buttons currently displayed + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def HideButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': + """ + Hide or show the specified button in a toolbar control. + +Args: + + nID(typing.Any):ID of the button to hide. + bEnable(typing.Any):1 to hide, 0 to show.MFC References + +Returns: + + None + + """ + pass + + + def Indeterminate(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': + """ + Mark or unmark the specified button as indeterminate + +Args: + + nID(typing.Any):ID of the button to mark. + bEnable(typing.Any):1 to hide, 0 to show.MFC References + +Returns: + + None + + """ + pass + + + def InsertButton(self,nID:'typing.Any',button:'PyCToolBarCtrl') -> 'typing.Any': + """ + Insert a button in a toolbar control. + +Args: + + nID(typing.Any):Zero-based index of a button. This function inserts the new button to the left of this button. + button(PyCToolBarCtrl):Bitmap containing button to be insertedCommentsThe image and/or string whose index you provide must have previously been added to the toolbar control's list using PyCToolBarCtrl::AddBitmap, PyCToolBarCtrl::AddString, and/or PyCToolBarCtrl::AddStrings.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonChecked(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is checked. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonEnabled(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is enabled. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonHidden(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is hidden. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonIndeterminate(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is + +indeterminate. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonPressed(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is pressed. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def PressButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': + """ + Mark or unmark the specified button as pressed. + +Args: + + nID(typing.Any):ID of the button to mark. + bEnable(typing.Any):1 to mark, 0 to unmark.MFC References + +Returns: + + None + + """ + pass + + + def SetBitmapSize(self,width1:'typing.Any',height1:'typing.Any',width:'typing.Any'=16,height:'typing.Any'=15) -> 'None': + """ + Set the size of the actual bitmapped images to be added to a toolbar control. + +Args: + + width1(typing.Any):Width of bitmap images. + height1(typing.Any):Height of bitmap images.MFC References + width(typing.Any):Width of bitmap images. + height(typing.Any):Height of bitmap images.Alternative Parameters + +Returns: + + None + + """ + pass + + + def SetButtonSize(self,width1:'typing.Any',height1:'typing.Any',width:'typing.Any'=16,height:'typing.Any'=15) -> 'None': + """ + Set the size of the buttons to be added to a toolbar control. + +Args: + + width1(typing.Any):Width of bitmap images. + height1(typing.Any):Height of bitmap images.MFC References + width(typing.Any):Width of buttons + height(typing.Any):Height of buttonsAlternative Parameters + +Returns: + + None + + """ + pass + + + def SetCmdID(self,nIndex:'typing.Any',nID:'typing.Any') -> 'None': + """ + Set the command identifier which will be sent to the owner window when the + +specified button is pressed. + +Args: + + nIndex(typing.Any):The zero-based index of the button whose command ID is to be set. + nID(typing.Any):The command ID to set the selected button to.MFC References + +Returns: + + None + + """ + pass + + + def SetRows(self,nRows:'typing.Any',bLarger:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Ask the toolbar control to resize itself to the requested + +number of rows. + +Args: + + nRows(typing.Any):Requested number of rows. + bLarger(typing.Any):Tells whether to use more rows or fewer rows if the toolbar cannot be resized to the requested number of rows.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + +class PyCToolTipCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'PyCWnd',style:'typing.Any') -> 'None': + """ + Creates the actual control. + +Args: + + parent(PyCWnd):The parent window of the control. + style(typing.Any):The style for the control. + +Returns: + + None + + """ + pass + + + def UpdateTipText(self,text:'str',wnd:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Update the tool tip text for a control's tools + +Args: + + text(str):The text for the tool. + wnd(PyCWnd):The window of the tool. + _id(typing.Any):The id of the tool + +Returns: + + None + + """ + pass + + + def AddTool(self,wnd:'PyCWnd',text:'str',_id:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None) -> 'None': + """ + Adds a tool to tooltip control. + +Args: + + wnd(PyCWnd):The window of the tool. + text(str):The text for the tool. + _id(typing.Any):The id of the tool + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + +Returns: + + None + + """ + pass + + + def SetMaxTipWidth(self,width:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + width(typing.Any):The new width + +Returns: + + typing.Any + + """ + pass + + +class PyCTreeCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',PyCWnd:'typing.Any',_id:'typing.Any') -> 'None': + """ + Creates the actual window for the object. + +Args: + + style(typing.Any):The window style + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + PyCWnd(typing.Any):The parent window + _id(typing.Any):The control IDMFC References + +Returns: + + None + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Retrieves the number of tree items associated with a tree view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetIndent(self,) -> 'typing.Any': + """ + Retrieves the offset (in pixels) of a tree view item from its parent. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetIndent(self,indent:'typing.Any') -> 'None': + """ + Sets the offset (in pixels) of a tree view item from its parent. + +Args: + + indent(typing.Any):The new indent. + +Returns: + + None + + """ + pass + + + def GetImageList(self,nImageList:'typing.Any') -> 'PyCImageList': + """ + Retrieves the current image list. + +Args: + + nImageList(typing.Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. + +Returns: + + PyCImageList + + """ + pass + + + def SetImageList(self,imageList:'PyCImageList',imageType:'typing.Any') -> 'typing.Any': + """ + Assigns an image list to a list view control. + +Args: + + imageList(PyCImageList):The Image List to use. + imageType(typing.Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE + +Returns: + + typing.Any + + """ + pass + + + def GetNextItem(self,item:'typing.Any',code:'typing.Any') -> 'typing.Any': + """ + Retrieves the next item. + +Args: + + item(typing.Any):The specified item + code(typing.Any):Specifies the relationship of the item to fetch. + +Returns: + + typing.Any + + """ + pass + + + def ItemHasChildren(self,item:'typing.Any') -> 'typing.Any': + """ + Returns nonzero if the specified item has child items. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetChildItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the first child item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetNextSiblingItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the next sibling of the specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetPrevSiblingItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the previous sibling of the specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetParentItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the parent item of the specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetFirstVisibleItem(self,) -> 'typing.Any': + """ + Retrieves the first visible item of the tree view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNextVisibleItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the next visible item of the specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetSelectedItem(self,) -> 'typing.Any': + """ + Retrieves the currently selected tree view item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDropHilightItem(self,) -> 'typing.Any': + """ + Retrieves the target of a drag-and-drop operation. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRootItem(self,) -> 'typing.Any': + """ + Retrieves the root of the specified tree view item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetToolTips(self,) -> 'typing.Any': + """ + Returns the tooltip control + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItem(self,item:'typing.Any',arg:'typing.Any') -> 'TV_ITEM': + """ + Retrieves the details of an items attributes. + +Args: + + item(typing.Any):The item whose attributes are to be retrieved. + arg(typing.Any):The requested attributes. + +Returns: + + TV_ITEM + + """ + pass + + + def SetItem(self,item:'TV_ITEM') -> 'typing.Any': + """ + Sets some of all of an items attributes. + +Args: + + item(TV_ITEM):A tuple describing the new item. + +Returns: + + typing.Any + + """ + pass + + + def GetItemState(self,item:'typing.Any',stateMask:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the state and mask of an item. + +Args: + + item(typing.Any):The specified item + stateMask(typing.Any):The mask for the result. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetItemState(self,item:'typing.Any',state:'typing.Any',stateMask:'typing.Any') -> 'None': + """ + Sets the state of item. + +Args: + + item(typing.Any):The specified item + state(typing.Any):The new state + stateMask(typing.Any):The mask for the new state + +Returns: + + None + + """ + pass + + + def GetItemImage(self,item:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the index of an items images. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetItemImage(self,item:'typing.Any',iImage:'typing.Any',iSelectedImage:'typing.Any') -> 'None': + """ + Sets the index of an items images. + +Args: + + item(typing.Any):The specified item + iImage(typing.Any):The offset of the image. + iSelectedImage(typing.Any):The offset of the selected image. + +Returns: + + None + + """ + pass + + + def SetItemText(self,item:'typing.Any',text:'str') -> 'typing.Any': + """ + Changes the text of a list view item or subitem. + +Args: + + item(typing.Any):The item whose text is to be retrieved. + text(str):String that contains the new item text. + +Returns: + + typing.Any + + """ + pass + + + def GetItemText(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the text of a list view item or subitem. + +Args: + + item(typing.Any):The item whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetItemData(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific value. + +Args: + + item(typing.Any):The item whose Data is to be set. + Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + typing.Any + + """ + pass + + + def GetItemRect(self,item:'typing.Any',bTextOnly:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the bounding rectangle of a tree view item. + +Args: + + item(typing.Any):The item whose Data is to be set. + bTextOnly(typing.Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the tree view control. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetEditControl(self,) -> 'PyCEdit': + """ + Retrieves the handle of the edit control used to edit the specified + +tree view item. + +Args: + + + +Returns: + + PyCEdit + + """ + pass + + + def GetVisibleCount(self,) -> 'typing.Any': + """ + Retrieves the number of visible tree items associated with a tree view + +control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def InsertItem(self,hParent:'typing.Any',hInsertAfter:'typing.Any',item:'TV_ITEM',mask:'typing.Any',text:'typing.Any',image:'typing.Any',selectedImage:'typing.Any',state:'typing.Any',stateMask:'typing.Any',lParam:'typing.Any',parent:'typing.Any',parent1:'typing.Any',text1:'typing.Any',image1:'typing.Any',selectedImage1:'typing.Any',parent2:'typing.Any',insertAfter:'typing.Any',text2:'typing.Any',parent3:'typing.Any',parent4:'typing.Any') -> 'typing.Any': + """ + Inserts an item into the list. + +Args: + + hParent(typing.Any):The parent item. If commctrl.TVI_ROOT or 0, it is added to the root. + hInsertAfter(typing.Any):The item to insert after. Can be an item or TVI_FIRST, TVI_LAST or TVI_SORT + item(TV_ITEM):A tuple describing the new item.Alternative Parameters + mask(typing.Any):Integer specifying which attributes to set + text(typing.Any):The text of the item. + image(typing.Any):The index of the image to use. + selectedImage(typing.Any):The index of the items selected image. + state(typing.Any):The initial state of the item. + stateMask(typing.Any):Specifies which bits of the state are valid. + lParam(typing.Any):A user defined object for the item. + parent(typing.Any):The parent of the item. + parent1(typing.Any):The parent of the item.Alternative Parameters + text1(typing.Any):The text for the item. + image1(typing.Any):The index of the image to use. + selectedImage1(typing.Any):The index of the items selected image. + parent2(typing.Any):The parent of the item. + insertAfter(typing.Any):The item to insert the new item after, or TVI_FIRST, TVI_LAST or TVI_SORTAlternative Parameters + text2(typing.Any):The text for the item. + parent3(typing.Any):The parent of the item. + parent4(typing.Any):The parent of the item. + +Returns: + + typing.Any + + """ + pass + + + def DeleteItem(self,item:'typing.Any') -> 'None': + """ + Deletes the specified item. + +Args: + + item(typing.Any):The specified item + +Returns: + + None + + """ + pass + + + def DeleteAllItems(self,) -> 'typing.Any': + """ + Deletes all items in the control + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Expand(self,item:'typing.Any',code:'typing.Any') -> 'None': + """ + Expands, or collapses, the child items of the specified tree view item. + +Args: + + item(typing.Any):The specified item + code(typing.Any):The action to take + +Returns: + + None + + """ + pass + + + def Select(self,item:'typing.Any',code:'typing.Any') -> 'None': + """ + Selects, scrolls into view, or redraws a specified tree view item. + +Args: + + item(typing.Any):The specified item + code(typing.Any):The action to take + +Returns: + + None + + """ + pass + + + def SelectItem(self,item:'typing.Any') -> 'None': + """ + Selects a specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + None + + """ + pass + + + def SelectDropTarget(self,item:'typing.Any') -> 'None': + """ + Redraws the tree item as the target of a drag-and-drop operation. + +Args: + + item(typing.Any):The specified item + +Returns: + + None + + """ + pass + + + def SelectSetFirstVisible(self,item:'typing.Any') -> 'None': + """ + Selects a specified tree view item as the first visible item. + +Args: + + item(typing.Any):The specified item + +Returns: + + None + + """ + pass + + + def EditLabel(self,item:'typing.Any') -> 'PyCEdit': + """ + Edits a specified tree view item in-place. + +Args: + + item(typing.Any):The item to edit. + +Returns: + + PyCEdit + + """ + pass + + + def CreateDragImage(self,item:'typing.Any') -> 'PyCImageList': + """ + Creates a dragging bitmap for the specified tree view item. + +Args: + + item(typing.Any):The item to edit. + +Returns: + + PyCImageList + + """ + pass + + + def SortChildren(self,item:'typing.Any') -> 'None': + """ + Sorts the children of a given parent item. + +Args: + + item(typing.Any):The specified parent item + +Returns: + + None + + """ + pass + + + def EnsureVisible(self,item:'typing.Any') -> 'typing.Any': + """ + Ensures that a tree view item is visible in its tree view control. + +Args: + + item(typing.Any):The item to edit. + +Returns: + + typing.Any + + """ + pass + + + def HitTest(self,arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Determines which tree view item, if any, is at a specified position. + +Args: + + arg(typing.Any):The point to test.Return ValueThe result is a tuple of (flags, hItem). flags may be a combination of the following values:ValueDescriptioncommctrl.TVHT_ABOVEAbove the client area.commctrl.TVHT_BELOWBelow the client area.commctrl.TVHT_NOWHEREIn the client area, but below the last item.commctrl.TVHT_ONITEMOn the bitmap or label associated with an item.commctrl.TVHT_ONITEMBUTTONOn the button associated with an item.commctrl.TVHT_ONITEMICONOn the bitmap associated with an item.commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item.commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item.commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item.commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state.commctrl.TVHT_TOLEFTTo the left of the client area.commctrl.TVHT_TORIGHTTo the right of the client area. + +Returns: + + typing.Tuple[typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, hItem). + +flags may be a combination of the following values: + + + +Value + + +Description + + + +commctrl.TVHT_ABOVEAbove the client area. +commctrl.TVHT_BELOWBelow the client area. +commctrl.TVHT_NOWHEREIn the client area, but below the last item. +commctrl.TVHT_ONITEMOn the bitmap or label associated with an item. +commctrl.TVHT_ONITEMBUTTONOn the button associated with an item. +commctrl.TVHT_ONITEMICONOn the bitmap associated with an item. +commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item. +commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item. +commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item. +commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state. +commctrl.TVHT_TOLEFTTo the left of the client area. +commctrl.TVHT_TORIGHTTo the right of the client area. + + + """ + pass + + +class PyCTreeView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + typing.Any + + """ + pass + + + def GetTreeCtrl(self,) -> 'PyCTreeCtrl': + """ + Returns the underlying tree control object. + +Args: + + + +Returns: + + PyCTreeCtrl + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'PyCWnd',arg:'typing.Any',arg1:'typing.Any',arg2:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Creates the window for a view. + +Args: + + parent(PyCWnd):The parent window (usually a frame) + arg(typing.Any):The child ID for the view + arg1(typing.Any):The style for the view + arg2(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default position of the window. + +Returns: + + None + + """ + pass + + + def GetDocument(self,) -> 'PyCDocument': + """ + Returns the document for a view. + +Args: + + + +Returns: + + PyCDocument + + """ + pass + + + def OnActivateView(self,activate:'typing.Any',activateView:'PyCView',DeactivateView:'PyCView') -> 'typing.Any': + """ + Calls the underlying MFC OnActivateView method. + +Args: + + activate(typing.Any):Indicates whether the view is being activated or deactivated. + activateView(PyCView):The view object that is being activated. + DeactivateView(PyCView):The view object that is being deactivated.See Also + +Returns: + + typing.Any + + """ + pass + + + def OnInitialUpdate(self,) -> 'None': + """ + Calls the underlying MFC OnInitialUpdate method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnMouseActivate(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': + """ + Calls the base MFC OnMouseActivate function. + +Args: + + wnd(PyCWnd): + hittest(typing.Any): + message(typing.Any):See Also + +Returns: + + typing.Any + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def OnFilePrint(self,) -> 'None': + """ + Calls the underlying MFC OnFilePrint method. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoPreparePrinting(self,) -> 'typing.Any': + """ + Invoke the Print dialog box and create a printer device context. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnBeginPrinting(self,) -> 'None': + """ + Calls the underlying MFC OnBeginPrinting method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnEndPrinting(self,) -> 'None': + """ + Calls the underlying MFC OnEndPrinting method. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCWinApp(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddDocTemplate(self,template:'PyCDocTemplate') -> 'None': + """ + Adds a template to the application list. + +Args: + + template(PyCDocTemplate):The template to be added. + +Returns: + + None + + """ + pass + + + def FindOpenDocument(self,fileName:'str') -> 'PyCDocument': + """ + Returns an existing document with the specified file name. + +Args: + + fileName(str):The fully qualified filename to search for. + +Returns: + + PyCDocument + + """ + pass + + + def GetDocTemplateList(self,) -> 'typing.List[typing.Any]': + """ + Returns a list of all document templates. + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def InitDlgInstance(self,dialog:'PyCDialog') -> 'None': + """ + Calls critical InitInstance processing for a dialog based application. + +Args: + + dialog(PyCDialog):The dialog object to be used as the main window for the application. + +Returns: + + None + + """ + pass + + + def LoadCursor(self,cursorId:'PyResourceId') -> 'typing.Any': + """ + Loads a cursor. + +Args: + + cursorId(PyResourceId):The resource id or name of the cursor to load. + +Returns: + + typing.Any + + """ + pass + + + def LoadStandardCursor(self,cursorId:'PyResourceId') -> 'typing.Any': + """ + Loads a standard cursor. + +Args: + + cursorId(PyResourceId):The resource ID or name of the cursor to load. + +Returns: + + typing.Any + + """ + pass + + + def LoadOEMCursor(self,cursorId:'typing.Any') -> 'typing.Any': + """ + Loads an OEM cursor. + +Args: + + cursorId(typing.Any):The ID of the cursor to load. + +Returns: + + typing.Any + + """ + pass + + + def LoadIcon(self,idResource:'typing.Any') -> 'typing.Any': + """ + Loads an icon resource. + +Args: + + idResource(typing.Any):The ID of the icon to load. + +Returns: + + typing.Any + + """ + pass + + + def LoadStandardIcon(self,resourceName:'PyResourceId') -> 'typing.Any': + """ + Loads an icon resource. + +Args: + + resourceName(PyResourceId):The resource name or id of the standard icon to load. + +Returns: + + typing.Any + + """ + pass + + + def OpenDocumentFile(self,fileName:'str') -> 'None': + """ + Opens a document file by name. + +Args: + + fileName(str):The name of the document to open. + +Returns: + + None + + """ + pass + + + def OnFileNew(self,) -> 'None': + """ + Calls the underlying OnFileNew MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnFileOpen(self,) -> 'None': + """ + Calls the underlying OnFileOpen MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def RemoveDocTemplate(self,template:'PyCDocTemplate') -> 'None': + """ + Removes a template to the application list. + +Args: + + template(PyCDocTemplate):The template to be removed. Must have previously been added by PyCWinApp::AddDocTemplate.CommentsNote that MFC does not provide an equivilent function. + +Returns: + + None + + """ + pass + + + def Run(self,) -> 'typing.Any': + """ + Starts the message pump. Advanced users only + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsInproc(self,) -> 'typing.Any': + """ + Returns a flag to indicate if the created CWinApp was in the DLL, or an external + +EXE. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCWinThread(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateThread(self,) -> 'None': + """ + Creates the actual thread behind the thread object. + +Args: + + + +Returns: + + None + + """ + pass + + + def PumpIdle(self,) -> 'None': + """ + Pumps all idle messages. + +Args: + + + +Returns: + + None + + """ + pass + + + def PumpMessages(self,) -> 'None': + """ + Pumps all messages to the application until a WM_QUIT message is received. + +Args: + + + +Returns: + + None + + """ + pass + + + def Run(self,) -> 'typing.Any': + """ + Starts the message pump. Advanced users only + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetMainFrame(self,mainFrame:'PyCWnd') -> 'None': + """ + Sets the threads main frame + +Args: + + mainFrame(PyCWnd):The applications main frame.CommentsYou can pass None to this function to reset the main frame. Should I free this? I dont think so! + +Returns: + + None + + """ + pass + + + def SetThreadPriority(self,priority:'PyCWnd') -> 'None': + """ + Sets the threads priority. Returns TRUE if successful. + +Args: + + priority(PyCWnd):The threads priority. + +Returns: + + None + + """ + pass + + +class PyCWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ActivateFrame(self,cmdShow:'typing.Any') -> 'None': + """ + Searches upwards for a parent window which has + +a frame, and activates it. + +Args: + + cmdShow(typing.Any):The param passed to CFrameWnd::ShowWindow. See also PyCWnd::ShowWindow.MFC References + +Returns: + + None + + """ + pass + + + def BringWindowToTop(self,) -> 'None': + """ + Brings the window to the top of a stack of overlapping windows. + +Args: + + + +Returns: + + None + + """ + pass + + + def BeginPaint(self,) -> 'typing.Tuple[PyCDC, typing.Any]': + """ + Prepares a window for painting + +Args: + + + +Returns: + + typing.Tuple[PyCDC, typing.Any]:PyCWnd.BeginPaint +PyCDC, PAINTSTRUCT + + = BeginPaint()Prepares a window for painting +Return ValueYou must pass the PAINTSTRUCT param to the PyCWnd::EndPaint method. + + + """ + pass + + + def CalcWindowRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',nAdjustType:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Computes the size of the window rectangle based on the desired client + +rectangle size. The resulting size can then be used as the initial + +size for the window object. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size to calculate from + nAdjustType(typing.Any):An enumerated type used for in-place editing. It can have the following values: CWnd::adjustBorder = 0, which means that scrollbar sizes are ignored in calculation; and CWnd::adjustOutside = 1, which means that they are added into the final measurements of the rectangle.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def CenterWindow(self,altwin:'PyCWnd'=None) -> 'None': + """ + Centers a window relative to its parent. + +Args: + + altwin(PyCWnd):alternate window relative to which it will be centered (other than the parent window).MFC References + +Returns: + + None + + """ + pass + + + def CheckRadioButton(self,idFirst:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any') -> 'None': + """ + Selects the specified radio button, and clears + +all others in the group. + +Args: + + idFirst(typing.Any):The identifier of the first radio button in the group. + idLast(typing.Any):The identifier of the last radio button in the group. + idCheck(typing.Any):The identifier of the radio button to be checked.MFC References + +Returns: + + None + + """ + pass + + + def ChildWindowFromPoint(self,x:'typing.Any',y:'typing.Any',flag:'typing.Any'=0) -> 'PyCWnd': + """ + Returns the child window that contains the point + +Args: + + x(typing.Any):x coordinate of point + y(typing.Any):y coordinate of point + flag(typing.Any):Specifies which child windows to skipMFC References + +Returns: + + PyCWnd + + """ + pass + + + def ClientToScreen(self,point:'typing.Tuple[typing.Any, typing.Any]',rect:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Converts the client coordinates of a given point on the display + +to screen coordinates. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The client coordinates.Alternative Parameters + rect(typing.Any):The client coordinates.CommentsThe new screen coordinates are relative to the upper-left corner of the system display. This function assumes that the given pointis in client coordinates.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def CreateWindow(self,classId:'str',windowName:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any',context:'typing.Any'=None) -> 'None': + """ + Creates the actual window + +Args: + + classId(str):The class ID for the window, or None + windowName(str):The title for the window, or None + style(typing.Any):The style for the window. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the window. + parent(PyCWnd):The parent window of the new window.. + _id(typing.Any):The control's ID. + context(typing.Any):A CreateContext object.MFC References + +Returns: + + None + + """ + pass + + + def CreateWindowEx(self,styleEx:'typing.Any',classId:'str',windowName:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any',createStruct1:'typing.Any',createStruct:'CREATESTRUCT'=None) -> 'None': + """ + Creates the actual window using extended capabilities. + +Args: + + styleEx(typing.Any):The extended style of the window being created. + classId(str):The class ID for the window. May not be None. + windowName(str):The title for the window, or None + style(typing.Any):The style for the window. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the window. + parent(PyCWnd):The parent window of the new window.. + _id(typing.Any):The control's ID. + createStruct1(typing.Any):A tuple representing a CREATESTRUCT structure.MFC References + createStruct(CREATESTRUCT):A CreateStruct object (ie, a tuple) + +Returns: + + None + + """ + pass + + + def DefWindowProc(self,message:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any') -> 'typing.Any': + """ + Calls the default message handler. + +Args: + + message(typing.Any):The Windows message. + idLast(typing.Any):The lParam for the message. + idCheck(typing.Any):The wParam for the message.MFC References + +Returns: + + typing.Any + + """ + pass + + + def DestroyWindow(self,) -> 'None': + """ + Destroy the window attached to the object. + +Args: + + + +Returns: + + None + + """ + pass + + + def DlgDirList(self,defPath:'str',idListbox:'typing.Any',idStaticPath:'typing.Any',fileType:'typing.Any') -> 'None': + """ + Fill a list box with a file or directory listing. + +Args: + + defPath(str):The file spec to fill the list box with + idListbox(typing.Any):The Id of the listbox control to fill. + idStaticPath(typing.Any):The Id of the static control used to display the current drive and directory. If idStaticPath is 0, it is assumed that no such control exists. + fileType(typing.Any):Specifies the attributes of the files to be displayed. It can be any combination of DDL_READWRITE, DDL_READONLY, DDL_HIDDEN, DDL_SYSTEM, DDL_DIRECTORY, DDL_ARCHIVE, DDL_POSTMSGS, DDL_DRIVES or DDL_EXCLUSIVEMFC References + +Returns: + + None + + """ + pass + + + def DlgDirListComboBox(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def DlgDirSelect(self,idListbox:'typing.Any') -> 'str': + """ + None + +Args: + + idListbox(typing.Any):The Id of the listbox.MFC References + +Returns: + + str + + """ + pass + + + def DlgDirSelectComboBox(self,idListbox:'typing.Any') -> 'str': + """ + None + +Args: + + idListbox(typing.Any):The Id of the combobox.MFC References + +Returns: + + str + + """ + pass + + + def DragAcceptFiles(self,bAccept:'typing.Any'=1) -> 'None': + """ + Indicates that the window and children supports files dropped from file manager + +Args: + + bAccept(typing.Any):A flag indicating if files are accepted.MFC References + +Returns: + + None + + """ + pass + + + def DrawMenuBar(self,) -> 'None': + """ + Redraws the menu bar. Can be called if the menu changes. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnableWindow(self,bEnable:'typing.Any'=1) -> 'typing.Any': + """ + Enables or disables the window. Typically used for dialog controls. + +Args: + + bEnable(typing.Any):A flag indicating if the window is to be enabled or disabled.MFC References + +Returns: + + typing.Any:CWnd::EnableWindow +Return ValueReturns the state before the EnableWindow member function was called + + + """ + pass + + + def EndModalLoop(self,result:'typing.Any') -> 'None': + """ + Ends a modal loop. + +Args: + + result(typing.Any):The result as returned to RunModalLoop + +Returns: + + None + + """ + pass + + + def EndPaint(self,paintStruct:'typing.Any') -> 'None': + """ + Ends painting + +Args: + + paintStruct(typing.Any):The object returned from PyCWnd::BeginPaint + +Returns: + + None + + """ + pass + + + def GetCheckedRadioButton(self,idFirst:'typing.Any',idLast:'typing.Any') -> 'typing.Any': + """ + Returns the ID of the checked radio button, or 0 if none is selected. + +Args: + + idFirst(typing.Any):The Id of the first radio button in the group. + idLast(typing.Any):The Id of the last radio button in the group.MFC References + +Returns: + + typing.Any + + """ + pass + + + def GetClientRect(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Returns the client coordinates of the window. left and top + +will be zero. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetDC(self,) -> 'PyCDC': + """ + Gets the windows current DC object. + +Args: + + + +Returns: + + PyCDC:PyCWnd.GetDC +PyCDC = GetDC()Gets the windows current DC object. +Return ValueThe result is a PyCDC, or a win32ui.error exception is raised. + + + """ + pass + + + def GetDCEx(self,) -> 'PyCDC': + """ + Gets the windows current DC object with extended caps. + +Args: + + + +Returns: + + PyCDC + + """ + pass + + + def GetDlgCtrlID(self,) -> 'typing.Any': + """ + Returns the ID of this child window. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDlgItem(self,idControl:'typing.Any') -> 'PyCWnd': + """ + None + +Args: + + idControl(typing.Any):The Id of the control to be retrieved.MFC References + +Returns: + + PyCWnd:CWnd::GetDlgItem +Return ValueThe result is a PyCWnd (or derived) object, or a win32ui.error exception is raised. + + + """ + pass + + + def GetDlgItemInt(self,idControl:'typing.Any',bUnsigned:'typing.Any'=1) -> 'typing.Any': + """ + Returns the integer value of a child window or control with the specified ID. + +Args: + + idControl(typing.Any):The Id of the control to be retrieved. + bUnsigned(typing.Any):Should the function check for a minus signMFC References + +Returns: + + typing.Any:CWnd::GetDlgItemInt +Return ValueIf the value can not be converted, a ValueError is raised. + + + """ + pass + + + def GetDlgItemText(self,idControl:'typing.Any') -> 'str': + """ + Returns the text of child window or control with the specified ID. + +Args: + + idControl(typing.Any):The Id of the control to be retrieved.MFC References + +Returns: + + str + + """ + pass + + + def GetLastActivePopup(self,) -> 'PyCWnd': + """ + Returns the last active popup Window, or the Window itself. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetLastActivePopup +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetMenu(self,) -> 'PyCMenu': + """ + Returns the menu object for the window's menu. + +Args: + + + +Returns: + + PyCMenu:CWnd::GetMenu +Return ValueThe result is a PyMenu + + object, or an exception is thrown. + + + """ + pass + + + def GetParent(self,) -> 'PyCWnd': + """ + Returns the window's parent. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetParent +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetParentFrame(self,) -> 'PyCWnd': + """ + Returns the window's frame. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetParentFrame +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetSafeHwnd(self,) -> 'typing.Any': + """ + Returns the HWnd of this window. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetScrollInfo(self,nBar:'typing.Any',mask:'typing.Any') -> 'typing.Any': + """ + Returns information about a scroll bar + +Args: + + nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ + mask(typing.Any):The mask for attributes to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def GetScrollPos(self,nBar:'typing.Any') -> 'typing.Any': + """ + Retrieves the current position of the scroll box of a scroll bar. + +Args: + + nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_VERT or win32con.SB_HORZ + +Returns: + + typing.Any + + """ + pass + + + def GetStyle(self,) -> 'typing.Any': + """ + Retrieves the window style + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetExStyle(self,) -> 'typing.Any': + """ + Retrieves the window's extended style + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSystemMenu(self,) -> 'PyCMenu': + """ + Returns the menu object for the window's system menu. + +Args: + + + +Returns: + + PyCMenu + + """ + pass + + + def GetTopLevelFrame(self,) -> 'PyCWnd': + """ + Returns the top-level frame of the window. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetTopLevelFrame +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopLevelOwner(self,) -> 'PyCWnd': + """ + Returns the top-level owner of the window. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetTopLevelOwner +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopLevelParent(self,) -> 'PyCWnd': + """ + Returns the top-level parent of the window. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetTopLevelParent +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopWindow(self,) -> 'PyCWnd': + """ + Identifies the top-level child window in a linked list of child windows. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetTopWindow +Return ValueIf no child windows exist, the value is None. + + + """ + pass + + + def GetWindow(self,_type:'typing.Any') -> 'PyCWnd': + """ + Returns a window, with the specified relationship to this window. + +Args: + + _type(typing.Any):Specifies the relationship between the current and the returned window. It can take one of the following values: GW_CHILD, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV or GW_OWNERMFC References + +Returns: + + PyCWnd:CWnd::GetWindow +Return ValueThe result is a PyCWnd or None if no Window can be found. + + + """ + pass + + + def GetWindowDC(self,) -> 'PyCDC': + """ + Gets the windows current DC object. + +Args: + + + +Returns: + + PyCDC + + """ + pass + + + def GetWindowPlacement(self,) -> 'typing.Any': + """ + Returns placement information about the current window. + +Args: + + + +Returns: + + typing.Any:CWnd::GetWindowPlacement +Return ValueThe result is a tuple of + +(flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) + + + +Item + + +Description + + + +flagsOne of the WPF_* constants +showCmdCurrent state - one of the SW_* constants. +minposSpecifies the coordinates of the window's upper-left corner when the window is minimized. +maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. +normalposSpecifies the window's coordinates when the window is in the restored position. + + + """ + pass + + + def GetWindowRect(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Returns the screen coordinates of the windows upper left + +corner + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetWindowText(self,) -> 'str': + """ + Returns the windows text. + +Args: + + + +Returns: + + str + + """ + pass + + + def HideCaret(self,) -> 'None': + """ + Hides the caret + +Args: + + + +Returns: + + None + + """ + pass + + + def HookAllKeyStrokes(self,obHandler:'typing.Any') -> 'None': + """ + Hook a key stroke handler for all key strokes. + +Args: + + obHandler(typing.Any):The handler for the keystrokes. This must be a callable object.CommentsThe handler object passed will be called as the application receives WM_CHAR messages. The handler will be called with 2 arguments The handler object (as per all hook functions). The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise it will be consumed. Note: This handler will prevent any PyCWnd::HookKeyStroke hooks from being called. + +Returns: + + None + + """ + pass + + + def HookKeyStroke(self,obHandler:'typing.Any',ch:'typing.Any') -> 'typing.Any': + """ + Hook a key stroke handler + +Args: + + obHandler(typing.Any):The handler of the keystroke. This must be a callable object. + ch(typing.Any):The ID for the keystroke to be handled. This may be an ascii code, or a virtual key code.CommentsThe handler object passed will be called as the application receives WM_CHAR message for the specified character code. The handler will be called with 2 arguments The handler object (as per all hook functions) The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise the keystroke will be consumed. Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place.Return ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID for the keystroke to be handled. + +This may be an ascii code, or a virtual key code.Comments + +The handler object passed will be called as the application receives WM_CHAR message for the specified + +character code. The handler will be called with 2 arguments + +The handler object (as per all hook functions) + +The keystroke being handled. + +If the handler returns TRUE, then the keystroke will be passed on to the + +default handler, otherwise the keystroke will be consumed. + +Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookMessage(self,obHandler:'typing.Any',message:'typing.Any') -> 'typing.Any': + """ + Hook a message notification handler + +Args: + + obHandler(typing.Any):The handler for the message notification. This must be a callable object. + message(typing.Any):The ID of the message to be handled.CommentsThe handler object passed will be called as the application receives messages with the specified ID. Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. The handler will be called with 2 arguments The handler object (as per all hook functions). A tuple representing the message. The message tuple is in the following format:Items[0] int : hwndThe hwnd of the window.[1] int : messageThe message.[2] int : wParamThe wParam sent with the message.[3] int : lParamThe lParam sent with the message.[4] int : timeThe time the message was posted.[5] int, int : pointThe point where the mouse was when the message was posted.Return ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID of the message to be handled.Comments + +The handler object passed will be called as the application receives messages with the specified ID. + +Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. + +The handler will be called with 2 arguments + +The handler object (as per all hook functions). + +A tuple representing the message. + +The message tuple is in the following format: +Items[0] int : hwnd +The hwnd of the window. +[1] int : message +The message. +[2] int : wParam +The wParam sent with the message. +[3] int : lParam +The lParam sent with the message. +[4] int : time +The time the message was posted. +[5] int, int : point +The point where the mouse was when the message was posted. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def InvalidateRect(self,arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',bErase:'typing.Any'=1) -> 'None': + """ + Invalidates an area of a window. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Rectangle to be updated. If default param is used, the entire window is invalidated. + bErase(typing.Any):Specifies whether the background within the update region is to be erased.MFC References + +Returns: + + None + + """ + pass + + + def InvalidateRgn(self,region:'PyCRgn',bErase:'typing.Any'=1) -> 'None': + """ + Invalidates a region of the window + +Args: + + region(PyCRgn):The region to erase. + bErase(typing.Any):Indicates if the region should be erased. + +Returns: + + None + + """ + pass + + + def IsChild(self,obWnd:'PyCWnd') -> 'typing.Any': + """ + Determines if a given window is a child of this window. + +Args: + + obWnd(PyCWnd):The window to be checkedMFC References + +Returns: + + typing.Any + + """ + pass + + + def IsDlgButtonChecked(self,idCtl:'typing.Any') -> 'typing.Any': + """ + Determines if a dialog button is checked. + +Args: + + idCtl(typing.Any):The ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsIconic(self,) -> 'typing.Any': + """ + Determines if the window is currently displayed as an icon. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsZoomed(self,) -> 'typing.Any': + """ + Determines if the window is currently maximised. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsWindow(self,) -> 'typing.Any': + """ + determines whether the specified window handle identifies an existing window + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsWindowVisible(self,) -> 'typing.Any': + """ + Determines if the window is currently visible. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def KillTimer(self,) -> 'typing.Any': + """ + Kills a system timer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LockWindowUpdate(self,) -> 'None': + """ + Disables drawing in the given window + +Args: + + + +Returns: + + None + + """ + pass + + + def MapWindowPoints(self,wnd:'PyCWnd',points:'typing.List[typing.Tuple[typing.Any, typing.Any]]') -> 'None': + """ + Converts (maps) a set of points from the coordinate space of a window to the + +coordinate space of another window. + +Args: + + wnd(PyCWnd): + points(typing.List[typing.Tuple[typing.Any, typing.Any]]):The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another window. + +Returns: + + None:The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another + +window. + + + """ + pass + + + def MouseCaptured(self,) -> 'typing.Any': + """ + Returns 1 if the window has the mouse capture, else 0 + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def MessageBox(self,message:'str',arg:'typing.Any',title:'typing.Union[str, typing.Any]'=None) -> 'None': + """ + Display a message box. + +Args: + + message(str):The message to be displayed in the message box. + arg(typing.Any):The style of the message box.MFC References + title(typing.Union[str, typing.Any]):The title for the message box. If None, the applications title will be used. + +Returns: + + None:CWnd::MessageBox +Return ValueAn integer identifying the button pressed to dismiss the dialog. + + + """ + pass + + + def ModifyStyle(self,remove:'typing.Any',add:'typing.Any',flags:'typing.Any'=0) -> 'typing.Any': + """ + Modifies the style of a window. + +Args: + + remove(typing.Any):Specifies window styles to be removed during style modification. + add(typing.Any):Specifies window styles to be added during style modification. + flags(typing.Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyle calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleExMFC References + +Returns: + + typing.Any:CWnd::ModifyStyle +Return ValueThe result is true if the style was changed, or false if the style + +is already the same as requested and no change was made. + + + """ + pass + + + def ModifyStyleEx(self,remove:'typing.Any',add:'typing.Any',flags:'typing.Any'=0) -> 'typing.Any': + """ + Modifies the extended style of a window. + +Args: + + remove(typing.Any):Specifies extended window styles to be removed during style modification. + add(typing.Any):Specifies extended extended window styles to be added during style modification. + flags(typing.Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyleEx calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleMFC References + +Returns: + + typing.Any:CWnd::ModifyStyleEx +Return ValueThe result is true if the style was changed, or false if the style + +is already the same as requested and no change was made. + + + """ + pass + + + def MoveWindow(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',bRepaint:'typing.Any'=1) -> 'None': + """ + Move a window to a new location. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The new location of the window, relative to the parent. + bRepaint(typing.Any):Indicates if the window should be repainted after the move.MFC References + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'typing.Any': + """ + Calls the default MFC OnClose handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnCtlColor(self,dc:'PyCDC',control:'typing.Any',_type:'typing.Any') -> 'typing.Any': + """ + Calls the default MFC OnCtlColor handler. + +Args: + + dc(PyCDC):The dc + control(typing.Any):The control that want's it's color changed + _type(typing.Any):Type of controlSee Also + +Returns: + + typing.Any + + """ + pass + + + def OnEraseBkgnd(self,dc:'PyCDC') -> 'typing.Any': + """ + Calls the default MFC OnEraseBkgnd handler. + +Args: + + dc(PyCDC):The dcSee Also + +Returns: + + typing.Any + + """ + pass + + + def OnNcHitTest(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + Calls the base MFC OnNcHitTest function. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The pointSee Also + +Returns: + + typing.Any + + """ + pass + + + def OnPaint(self,) -> 'typing.Any': + """ + Calls the default MFC OnPaint handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnQueryDragIcon(self,) -> 'typing.Any': + """ + Calls the default MFC OnQueryDragIcon handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnQueryNewPalette(self,) -> 'typing.Any': + """ + Calls the underlying MFC OnQueryNewPalette method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnSetCursor(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': + """ + Calls the base MFC OnSetCursor function. + +Args: + + wnd(PyCWnd): + hittest(typing.Any): + message(typing.Any):See Also + +Returns: + + typing.Any + + """ + pass + + + def OnMouseActivate(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': + """ + Calls the base MFC OnMouseActivate function. + +Args: + + wnd(PyCWnd): + hittest(typing.Any): + message(typing.Any):See Also + +Returns: + + typing.Any + + """ + pass + + + def OnWndMsg(self,msg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Calls the default MFC Window Message handler. + +Args: + + msg(typing.Any):The message + wParam(typing.Any):The wParam for the message + lParam(typing.Any):The lParam for the messageMFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CWnd::OnWndMsg +Return ValueThe return value is a tuple of (int, int), being the + +return value from the MFC function call, and the value of the + +lResult param. Please see the MFC documentation for more details. + + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def PumpWaitingMessages(self,firstMsg:'typing.Any',lastMsg:'typing.Any') -> 'None': + """ + Pump messages associate with a window. + +Args: + + firstMsg(typing.Any):First message ID to process + lastMsg(typing.Any):First message ID to processMFC References + +Returns: + + None + + """ + pass + + + def RedrawWindow(self,_object:'PyCRgn',flags:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None) -> 'None': + """ + Updates the specified rectangle or region in the given window's client area. + +Args: + + _object(PyCRgn):A region + flags(typing.Any):MFC References + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):A rect, or None + +Returns: + + None + + """ + pass + + + def ReleaseCapture(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def ReleaseDC(self,dc:'PyCDC') -> 'None': + """ + Releases a device context, freeing it for use by other applications. + +Args: + + dc(PyCDC):The DC to be released. + +Returns: + + None + + """ + pass + + + def RepositionBars(self,idFirst:'typing.Any',idLast:'typing.Any',idLeftOver:'typing.Any') -> 'None': + """ + Repositions the windows control bars.( UINT nIDFirst, UINT nIDLast, UINT + +nIDLeftOver, UINT nFlag = CWnd::reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = + +TRUE ); + +Args: + + idFirst(typing.Any):The ID of the first control to reposition. + idLast(typing.Any):The ID of the last control to reposition. + idLeftOver(typing.Any): + +Returns: + + None + + """ + pass + + + def RunModalLoop(self,flags:'typing.Any') -> 'typing.Any': + """ + Begins a modal loop for the window. + +Args: + + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def PostMessage(self,idMessage:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0) -> 'None': + """ + Post a message to the window. + +Args: + + idMessage(typing.Any):The ID of the message to post. + wParam(typing.Any):The wParam for the message + lParam(typing.Any):The lParam for the messageMFC References + +Returns: + + None + + """ + pass + + + def SendMessageToDescendants(self,idMessage:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0,bDeep:'typing.Any'=1) -> 'None': + """ + Send a message to all descendant windows. + +Args: + + idMessage(typing.Any):The ID of the message to send. + wParam(typing.Any):The wParam for the message + lParam(typing.Any):The lParam for the message + bDeep(typing.Any):Indicates if the message should be recursively sent to all childrenMFC References + +Returns: + + None + + """ + pass + + + def SendMessage(self,idMessage:'typing.Any',idMessage1:'typing.Any',ob:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0) -> 'None': + """ + Send a message to the window. + +Args: + + idMessage(typing.Any):The ID of the message to send. + idMessage1(typing.Any):The ID of the message to send. + ob(typing.Any):A buffer whose size is passed in wParam, and address is passed in lParamMFC References + wParam(typing.Any):The wParam for the message + lParam(typing.Any):The lParam for the messageAlternative Parameters + +Returns: + + None + + """ + pass + + + def SetActiveWindow(self,) -> 'PyCWnd': + """ + Sets the window active. Returns the previously active window, or None. + +Args: + + + +Returns: + + PyCWnd:PyCWnd.SetActiveWindow +PyCWnd = SetActiveWindow()Sets the window active. Returns the previously active window, or None. +Return ValueThe result is the previous window with focus, or None. + + + """ + pass + + + def SetForegroundWindow(self,) -> 'None': + """ + Puts the window into the foreground and activates the window. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWindowPos(self,hWndInsertAfter:'typing.Any',position:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',flags:'typing.Any') -> 'None': + """ + Sets the windows position information + +Args: + + hWndInsertAfter(typing.Any):A hwnd, else one of the win32con.HWND_* constants. + position(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The new position of the window. + flags(typing.Any):Window positioning flags.MFC References + +Returns: + + None + + """ + pass + + + def ScreenToClient(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]',pnt:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Converts the screen coordinates of a given point + +or rectangle on the display to client coordinates. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates to convert.Alternative Parameters + pnt(typing.Any):The coordinates to convert.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]:CWnd::ScreenToClient +Return ValueThe result is the same size as the input argument. + + + """ + pass + + + def SetCapture(self,) -> 'None': + """ + Causes all subsequent mouse input to be sent to the window object regardless of the + +position of the cursor. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDlgItemText(self,idControl:'typing.Any',text:'str') -> 'None': + """ + Sets the text for the child window or control with the specified ID. + +Args: + + idControl(typing.Any):The Id of the control + text(str):The new textMFC References + +Returns: + + None + + """ + pass + + + def SetFocus(self,) -> 'None': + """ + Claims the input focus. The object that previously had the focus loses it. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFont(self,font:'PyCFont',bRedraw:'typing.Any'=1) -> 'None': + """ + Sets the window's current font to the specified font. + +Args: + + font(PyCFont):The new font to use. + bRedraw(typing.Any):If TRUE, redraw the window. + +Returns: + + None + + """ + pass + + + def SetIcon(self,) -> 'typing.Any': + """ + Calls the underlying MFC SetIcon method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetMenu(self,menuObj:'PyCMenu') -> 'None': + """ + Sets the menu for a window. + +Args: + + menuObj(PyCMenu):The menu object to set, or None to remove the window. + +Returns: + + None + + """ + pass + + + def SetRedraw(self,bState:'typing.Any'=1) -> 'None': + """ + Allows changes to be redrawn or to prevent changes from being redrawn. + +Args: + + bState(typing.Any):Specifies the state of the redraw flag.MFC References + +Returns: + + None + + """ + pass + + + def SetScrollPos(self,nBar:'typing.Any',nPos:'typing.Any',redraw:'typing.Any'=1) -> 'typing.Any': + """ + Sets the current position of the scroll box of a scroll bar. + +Args: + + nBar(typing.Any):The scroll bar to set. Can be one of win32con.SB_VERT or win32con.SB_HORZ + nPos(typing.Any):The new position + redraw(typing.Any):A flag indicating if the scrollbar should be redrawn. + +Returns: + + typing.Any + + """ + pass + + + def SetScrollInfo(self,nBar:'typing.Any',ScrollInfo:'typing.Any',redraw:'typing.Any'=1) -> 'typing.Any': + """ + Set information about a scroll bar + +Args: + + nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ + ScrollInfo(typing.Any):The information to set + redraw(typing.Any):A flag indicating if the scrollbar should be re-drawn. + +Returns: + + typing.Any + + """ + pass + + + def SetTimer(self,idEvent:'typing.Any',elapse:'typing.Any') -> 'typing.Any': + """ + Installs a system timer + +Args: + + idEvent(typing.Any):The ID of the event + elapse(typing.Any):How often the timer should fire.MFC References + +Returns: + + typing.Any + + """ + pass + + + def SetWindowPlacement(self,placement:'typing.Any') -> 'None': + """ + Sets the windows placement + +Args: + + placement(typing.Any):A tuple representing the WINDOWPLACEMENT structure.MFC References + +Returns: + + None + + """ + pass + + + def SetWindowText(self,text:'str') -> 'None': + """ + Sets the window's text. + +Args: + + text(str):The windows text.MFC References + +Returns: + + None + + """ + pass + + + def ShowCaret(self,) -> 'None': + """ + Shows the caret + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowScrollBar(self,nBar:'typing.Any',bShow:'typing.Any'=1) -> 'None': + """ + Shows or hides a scroll bar. + +An application should not call ShowScrollBar to hide a scroll bar while processing a scroll-bar notification message. + +Args: + + nBar(typing.Any):Specifies whether the scroll bar is a control or part of a window's nonclient area. If it is part of the nonclient area, nBar also indicates whether the scroll bar is positioned horizontally, vertically, or both. It must be one of win32con.SB_BOTH, win32con.SB_HORZ or win32con.SB_VERT. + bShow(typing.Any):Indicates if the scroll bar should be shown or hidden.MFC References + +Returns: + + None + + """ + pass + + + def ShowWindow(self,arg:'typing.Any') -> 'typing.Any': + """ + Sets the visibility state of the window. + +Args: + + arg(typing.Any):Specifies how the window is to be shown. It must be one of win32con.SW_HIDE, win32con.SW_MINIMIZE, win32con.SW_RESTORE, win32con.SW_SHOW, win32con.SW_SHOWMAXIMIZED win32con.SW_SHOWMINIMIZED, win32con.SW_SHOWMINNOACTIVE, win32con.SW_SHOWNA, win32con.SW_SHOWNOACTIVATE, or win32con.SW_SHOWNORMALMFC References + +Returns: + + typing.Any:CWnd::ShowWindow +Return ValueReturns TRUE is the window was previously visible. + + + """ + pass + + + def UnLockWindowUpdate(self,) -> 'None': + """ + Unlocks a window that was locked with LockWindowUpdate + +Args: + + + +Returns: + + None + + """ + pass + + + def UpdateData(self,bSaveAndValidate:'typing.Any'=1) -> 'typing.Any': + """ + Initialises data in a dialog box, or to retrieves and validates dialog data. + +Returns nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of + +nonzero means that the data is successfully validated. + +Args: + + bSaveAndValidate(typing.Any):Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).MFC References + +Returns: + + typing.Any + + """ + pass + + + def UpdateDialogControls(self,pTarget:'PyCCmdTarget',disableIfNoHandler:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + pTarget(PyCCmdTarget):The main frame window of the application, and is used for routing update messages. + disableIfNoHandler(typing.Any):Flag that indicates whether a control that has no update handler should be automatically displayed as disabled. + +Returns: + + typing.Any + + """ + pass + + + def UpdateWindow(self,) -> 'None': + """ + Updates a window. This forces a paint message to be sent to the window, if any part + +of the window is marked as invalid. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEConv(object): + """A DDE topic.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ConnectTo(self,service:'str',topic:'str') -> 'None': + """ + Connects to a server + +Args: + + service(str):The service to connect to + topic(str):The topic to connect to + +Returns: + + None + + """ + pass + + + def Connected(self,) -> 'None': + """ + Determines if the conversation is connected. + +Args: + + + +Returns: + + None + + """ + pass + + + def Exec(self,Cmd:'str') -> 'None': + """ + Executes a command. + +Args: + + Cmd(str):The Python statement to execute + +Returns: + + None + + """ + pass + + + def Request(self,) -> 'None': + """ + Sends a request. + +Args: + + + +Returns: + + None + + """ + pass + + + def Poke(self,) -> 'None': + """ + Sends a poke. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEServer(object): + """A DDE server.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddTopic(self,topic:'PyDDETopic') -> 'None': + """ + None + +Args: + + topic(PyDDETopic):The topic to add. + +Returns: + + None + + """ + pass + + + def Create(self,name:'str',filterFlags:'typing.Any'=0) -> 'None': + """ + Create a server + +Args: + + name(str):Name of the server to start. + filterFlags(typing.Any):Filter flags.CommentsNote there can only be one server per application. + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetLastError(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Shutdown(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEStringItem(object): + """A DDE string item.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetData(self,data:'str') -> 'None': + """ + Sets an items data, and causes any underlying notification. + +Args: + + data(str):The data to set. + +Returns: + + None + + """ + pass + + +class PyDDETopic(object): + """A DDE topic.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddItem(self,item:'typing.Any') -> 'None': + """ + Add an item to the topic. + +Args: + + item(typing.Any):The item to add + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Destroys an item + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDLL(object): + """A DLL object. A general utility object, and not associated with an MFC object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFileName(self,) -> 'str': + """ + Returns the name of the module associated with the DLL. + +Args: + + + +Returns: + + str + + """ + pass + + + def AttachToMFC(self,) -> 'None': + """ + Attaches the DLL object to the MFC list of DLL's. + +Args: + + + +Returns: + + None + + """ + pass + + +class SCROLLINFO(object): + """Tuple representing a SCROLLINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TV_ITEM(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class EXTENSION_CONTROL_BLOCK(object): + """A python representation of an ISAPI + +EXTENSION_CONTROL_BLOCK.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Version(self)->'int': + """Version info of this spec (read-only)""" + pass + + + @property + def TotalBytes(self)->'typing.Any': + """Total bytes indicated from client""" + pass + + + @property + def AvailableBytes(self)->'typing.Any': + """Available number of bytes""" + pass + + + @property + def HttpStatusCode(self)->'typing.Any': + """The status of the current transaction when the request is completed.""" + pass + + + @property + def Method(self)->'typing.Any': + """REQUEST_METHOD""" + pass + + + @property + def ConnID(self)->'typing.Any': + """Context number (read-only)""" + pass + + + @property + def QueryString(self)->'typing.Any': + """QUERY_STRING""" + pass + + + @property + def PathInfo(self)->'typing.Any': + """PATH_INFO""" + pass + + + @property + def PathTranslated(self)->'typing.Any': + """PATH_TRANSLATED""" + pass + + + @property + def AvailableData(self)->'typing.Any': + """Pointer to cbAvailable bytes""" + pass + + + @property + def ContentType(self)->'typing.Any': + """Content type of client data""" + pass + + + @property + def LogData(self)->'typing.Any': + """log data string""" + pass + + + def WriteClient(self,data:'typing.Union[str, typing.Any]',reserved:'typing.Any'=0) -> 'typing.Any': + """ + None + +Args: + + data(typing.Union[str, typing.Any]):The data to write + reserved(typing.Any):Return Valuethe result is the number of bytes written. + +Returns: + + typing.Any: +Return Valuethe result is the number of bytes written. + + + """ + pass + + + def GetServerVariable(self,variable:'str',default:'typing.Any') -> 'str': + """ + None + +Args: + + variable(str): + default(typing.Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. + +Returns: + + str:If specified, the function will return this + +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name + +begins with 'UNICODE_', in which case it is a unicode object - see the + +ISAPI docs for more details. + + + """ + pass + + + def ReadClient(self,nbytes:'typing.Any') -> 'str': + """ + None + +Args: + + nbytes(typing.Any):Default is to read all available data. + +Returns: + + str + + """ + pass + + + def SendResponseHeaders(self,reply:'str',headers:'str',keepAlive:'typing.Any'=False) -> 'None': + """ + Calls ServerSupportFunction with + +HSE_REQ_SEND_RESPONSE_HEADER_EX + +Args: + + reply(str): + headers(str): + keepAlive(typing.Any): + +Returns: + + None + + """ + pass + + + def SetFlushFlag(self,flag:'typing.Any') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_SET_FLUSH_FLAG. + +Args: + + flag(typing.Any): + +Returns: + + None + + """ + pass + + + def TransmitFile(self,callback:'typing.Any',param:'typing.Any',hFile:'typing.Any',statusCode:'str',BytesToWrite:'typing.Any',Offset:'typing.Any',head:'str',tail:'str',flags:'typing.Any') -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_TRANSMIT_FILE + +Args: + + callback(typing.Any): + param(typing.Any):Any object - passed as 2nd arg to callback. + hFile(typing.Any): + statusCode(str): + BytesToWrite(typing.Any): + Offset(typing.Any): + head(str): + tail(str): + flags(typing.Any):CommentsThe callback is called with 4 args - (PyECB, param, cbIO, dwErrCode) + +Returns: + + typing.Any + + """ + pass + + + def MapURLToPath(self,) -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_MAP_URL_TO_PATH + +Args: + + + +Returns: + + None + + """ + pass + + + def DoneWithSession(self,status:'typing.Any') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_DONE_WITH_SESSION + +Args: + + status(typing.Any):An optional status. HSE_STATUS_SUCCESS_AND_KEEP_CONN is supported by IIS to keep the connection alive. + +Returns: + + None + + """ + pass + + + def Redirect(self,url:'str') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_SEND_URL_REDIRECT_RESP + +Args: + + url(str):The URL to redirect to + +Returns: + + None + + """ + pass + + + def IsKeepAlive(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAnonymousToken(self,metabase_path:'typing.Union[str, typing.Any]') -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_GET_ANONYMOUS_TOKEN + +or HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN + +Args: + + metabase_path(typing.Union[str, typing.Any]): + +Returns: + + typing.Any + + """ + pass + + + def GetImpersonationToken(self,) -> 'typing.Any': + """ + Calls ServerSupportFunction with + +HSE_REQ_GET_IMPERSONATION_TOKEN + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsKeepConn(self,) -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_IS_KEEP_CONN + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def ExecURL(self,url:'str',method:'str',clientHeaders:'str',info:'typing.Any',entity:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_EXEC_URL + +Args: + + url(str): + method(str): + clientHeaders(str): + info(typing.Any):Must be None + entity(typing.Any):Must be None + flags(typing.Any):CommentsThis function is only available in IIS6 and later. + +Returns: + + typing.Any + + """ + pass + + + def GetExecURLStatus(self,) -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_GET_EXEC_URL_STATUS + +Args: + + + +Returns: + + typing.Any:Search for HSE_EXEC_URL_STATUS at msdn, google or google groups. +Return ValueThe result of a tuple of 3 integers - (uHttpStatusCode, uHttpSubStatus, dwWin32Error) + + + """ + pass + + + def IOCompletion(self,func:'typing.Any',arg:'typing.Any'=None) -> 'typing.Any': + """ + Set a callback that will be used for handling asynchronous I/O + +operations. + +Args: + + func(typing.Any):The function to call, as described by the EXTENSION_CONTROL_BLOCK::IOCallback method. + arg(typing.Any):Any object which will be supplied as an argument to the callback function.CommentsIf you call this multiple times, the previous callback will be discarded.A reference to the callback and args are held until EXTENSION_CONTROL_BLOCK::DoneWithSession is called. If the callback function fails, DoneWithSession(HSE_STATUS_ERROR) will automatically be called and no further callbacks for the ECB will be made. + +Returns: + + typing.Any + + """ + pass + + + def ReportUnhealthy(self,reason:'str'=None) -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_REPORT_UNHEALTHY + +Args: + + reason(str):An optional reason to be written to the log. + +Returns: + + typing.Any + + """ + pass + + + def IOCallback(self,ecb:'EXTENSION_CONTROL_BLOCK',arg:'typing.Any',cbIO:'typing.Any',dwError:'typing.Any') -> 'typing.Any': + """ + A placeholder for a user-supplied callback function. + +Args: + + ecb(EXTENSION_CONTROL_BLOCK):The extension control block that is associated with the current, active request. + arg(typing.Any):The user-supplied argument supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function. + cbIO(typing.Any):An integer that contains the number of bytes of I/O in the last call. + dwError(typing.Any):The error code returned.CommentsThis is not a function you can call, it describes the signature of the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function.Return ValueThe result of this function is ignored. + +Returns: + + typing.Any:The error code returned.Comments + +This is not a function you can call, it describes the signature of + +the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion + +function. +Return ValueThe result of this function is ignored. + + + """ + pass + + +class HSE_VERSION_INFO(object): + """An object used by ISAPI GetExtensionVersion""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ExtensionDesc(self)->'str': + """The description of the extension.""" + pass + + +class HTTP_FILTER_AUTHENT(object): + """A Python representation of an ISAPI + +HTTP_FILTER_AUTHENT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def User(self)->'str': + """""" + pass + + + @property + def Password(self)->'str': + """""" + pass + + +class HTTP_FILTER_CONTEXT(object): + """A Python representation of an ISAPI + +HTTP_FILTER_CONTEXT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Revision(self)->'typing.Any': + """(read-only)""" + pass + + + @property + def fIsSecurePort(self)->'typing.Any': + """(read-only)""" + pass + + + @property + def NotificationType(self)->'typing.Any': + """(read-only)""" + pass + + + @property + def FilterContext(self)->'typing.Any': + """Any object you wish to associate with the request.""" + pass + + + def GetData(self,) -> 'typing.Any': + """ + Obtains the data passed to + +The HttpFilterProc function. This is not techinally part of the + +HTTP_FILTER_CONTEXT structure, but packaged here for convenience. + +Args: + + + +Returns: + + typing.Any:HTTP_FILTER_CONTEXT.GetData + +object = GetData()Obtains the data passed to + +The HttpFilterProc function. This is not techinally part of the + +HTTP_FILTER_CONTEXT structure, but packaged here for convenience. +Return ValueThe result depends on the value of HTTP_FILTER_CONTEXT::NotificationType + + + + +NotificationType + + +Result type + + + +SF_NOTIFY_URL_MAPHTTP_FILTER_URL_MAP +SF_NOTIFY_PREPROC_HEADERSHTTP_FILTER_PREPROC_HEADERS +SF_NOTIFY_LOGHTTP_FILTER_LOG +SF_NOTIFY_SEND_RAW_DATAHTTP_FILTER_RAW_DATA +SF_NOTIFY_READ_RAW_DATAHTTP_FILTER_RAW_DATA +SF_NOTIFY_AUTHENTICATIONHTTP_FILTER_AUTHENT + + + """ + pass + + + def GetServerVariable(self,variable:'str',default:'typing.Any') -> 'str': + """ + None + +Args: + + variable(str): + default(typing.Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. + +Returns: + + str:If specified, the function will return this + +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name + +begins with 'UNICODE_', in which case it is a unicode object - see the + +ISAPI docs for more details. + + + """ + pass + + + def WriteClient(self,data:'str',reserverd:'typing.Any'=0) -> 'None': + """ + None + +Args: + + data(str): + reserverd(typing.Any): + +Returns: + + None + + """ + pass + + + def AddResponseHeaders(self,data:'str',reserverd:'typing.Any'=0) -> 'None': + """ + None + +Args: + + data(str): + reserverd(typing.Any): + +Returns: + + None + + """ + pass + + + def SendResponseHeader(self,status:'str',header:'str') -> 'None': + """ + None + +Args: + + status(str): + header(str): + +Returns: + + None + + """ + pass + + + def DisableNotifications(self,flags:'typing.Any') -> 'None': + """ + None + +Args: + + flags(typing.Any): + +Returns: + + None + + """ + pass + + +class HTTP_FILTER_LOG(object): + """A Python representation of an ISAPI + +HTTP_FILTER_LOG structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ClientHostName(self)->'str': + """""" + pass + + + @property + def ClientUserName(self)->'str': + """""" + pass + + + @property + def ServerName(self)->'str': + """""" + pass + + + @property + def Operation(self)->'str': + """""" + pass + + + @property + def Target(self)->'str': + """""" + pass + + + @property + def Parameters(self)->'str': + """""" + pass + + + @property + def HttpStatus(self)->'typing.Any': + """""" + pass + + +class HTTP_FILTER_PREPROC_HEADERS(object): + """A Python representation of an ISAPI + +HTTP_FILTER_PREPROC_HEADERS structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetHeader(self,header:'str',default:'typing.Any') -> 'str': + """ + None + +Args: + + header(str): + default(typing.Any):If specified, this will be returned on error. + +Returns: + + str + + """ + pass + + + def SetHeader(self,name:'str',val:'str') -> 'None': + """ + None + +Args: + + name(str): + val(str): + +Returns: + + None + + """ + pass + + + def AddHeader(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class HTTP_FILTER_RAW_DATA(object): + """A Python representation of an ISAPI + +HTTP_FILTER_RAW_DATA structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def InData(self)->'str': + """""" + pass + + +class HTTP_FILTER_URL_MAP(object): + """A Python representation of an ISAPI + +HTTP_FILTER_URL_MAP structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def URL(self)->'str': + """""" + pass + + + @property + def PhysicalPath(self)->'str': + """""" + pass + + +class HTTP_FILTER_VERSION(object): + """A Python interface to the ISAPI HTTP_FILTER_VERSION + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ServerFilterVersion(self)->'typing.Any': + """(read-only)""" + pass + + + @property + def FilterVersion(self)->'typing.Any': + """""" + pass + + + @property + def Flags(self)->'typing.Any': + """""" + pass + + + @property + def FilterDesc(self)->'str': + """""" + pass diff --git a/typings/win32helper/winioctlcon.pyi b/typings/win32helper/winioctlcon.pyi new file mode 100644 index 00000000..673ea4e5 --- /dev/null +++ b/typings/win32helper/winioctlcon.pyi @@ -0,0 +1,711 @@ +## flags, enums, guids used with DeviceIoControl from WinIoCtl.h + +import pywintypes +from ntsecuritycon import FILE_READ_DATA,FILE_WRITE_DATA +def CTL_CODE(DeviceType, Function, Method, Access): + return (DeviceType << 16) | (Access << 14) | (Function << 2) | Method + +def DEVICE_TYPE_FROM_CTL_CODE(ctrlCode): + return (ctrlCode & 0xffff0000) >> 16 + +FILE_DEVICE_BEEP = 0x00000001 +FILE_DEVICE_CD_ROM = 0x00000002 +FILE_DEVICE_CD_ROM_FILE_SYSTEM = 0x00000003 +FILE_DEVICE_CONTROLLER = 0x00000004 +FILE_DEVICE_DATALINK = 0x00000005 +FILE_DEVICE_DFS = 0x00000006 +FILE_DEVICE_DISK = 0x00000007 +FILE_DEVICE_DISK_FILE_SYSTEM = 0x00000008 +FILE_DEVICE_FILE_SYSTEM = 0x00000009 +FILE_DEVICE_INPORT_PORT = 0x0000000a +FILE_DEVICE_KEYBOARD = 0x0000000b +FILE_DEVICE_MAILSLOT = 0x0000000c +FILE_DEVICE_MIDI_IN = 0x0000000d +FILE_DEVICE_MIDI_OUT = 0x0000000e +FILE_DEVICE_MOUSE = 0x0000000f +FILE_DEVICE_MULTI_UNC_PROVIDER = 0x00000010 +FILE_DEVICE_NAMED_PIPE = 0x00000011 +FILE_DEVICE_NETWORK = 0x00000012 +FILE_DEVICE_NETWORK_BROWSER = 0x00000013 +FILE_DEVICE_NETWORK_FILE_SYSTEM = 0x00000014 +FILE_DEVICE_NULL = 0x00000015 +FILE_DEVICE_PARALLEL_PORT = 0x00000016 +FILE_DEVICE_PHYSICAL_NETCARD = 0x00000017 +FILE_DEVICE_PRINTER = 0x00000018 +FILE_DEVICE_SCANNER = 0x00000019 +FILE_DEVICE_SERIAL_MOUSE_PORT = 0x0000001a +FILE_DEVICE_SERIAL_PORT = 0x0000001b +FILE_DEVICE_SCREEN = 0x0000001c +FILE_DEVICE_SOUND = 0x0000001d +FILE_DEVICE_STREAMS = 0x0000001e +FILE_DEVICE_TAPE = 0x0000001f +FILE_DEVICE_TAPE_FILE_SYSTEM = 0x00000020 +FILE_DEVICE_TRANSPORT = 0x00000021 +FILE_DEVICE_UNKNOWN = 0x00000022 +FILE_DEVICE_VIDEO = 0x00000023 +FILE_DEVICE_VIRTUAL_DISK = 0x00000024 +FILE_DEVICE_WAVE_IN = 0x00000025 +FILE_DEVICE_WAVE_OUT = 0x00000026 +FILE_DEVICE_8042_PORT = 0x00000027 +FILE_DEVICE_NETWORK_REDIRECTOR = 0x00000028 +FILE_DEVICE_BATTERY = 0x00000029 +FILE_DEVICE_BUS_EXTENDER = 0x0000002a +FILE_DEVICE_MODEM = 0x0000002b +FILE_DEVICE_VDM = 0x0000002c +FILE_DEVICE_MASS_STORAGE = 0x0000002d +FILE_DEVICE_SMB = 0x0000002e +FILE_DEVICE_KS = 0x0000002f +FILE_DEVICE_CHANGER = 0x00000030 +FILE_DEVICE_SMARTCARD = 0x00000031 +FILE_DEVICE_ACPI = 0x00000032 +FILE_DEVICE_DVD = 0x00000033 +FILE_DEVICE_FULLSCREEN_VIDEO = 0x00000034 +FILE_DEVICE_DFS_FILE_SYSTEM = 0x00000035 +FILE_DEVICE_DFS_VOLUME = 0x00000036 +FILE_DEVICE_SERENUM = 0x00000037 +FILE_DEVICE_TERMSRV = 0x00000038 +FILE_DEVICE_KSEC = 0x00000039 +FILE_DEVICE_FIPS = 0x0000003A +FILE_DEVICE_INFINIBAND = 0x0000003B + +METHOD_BUFFERED = 0 +METHOD_IN_DIRECT = 1 +METHOD_OUT_DIRECT = 2 +METHOD_NEITHER = 3 +METHOD_DIRECT_TO_HARDWARE = METHOD_IN_DIRECT +METHOD_DIRECT_FROM_HARDWARE = METHOD_OUT_DIRECT +FILE_ANY_ACCESS = 0 +FILE_SPECIAL_ACCESS = FILE_ANY_ACCESS +FILE_READ_ACCESS = 0x0001 +FILE_WRITE_ACCESS = 0x0002 +IOCTL_STORAGE_BASE = FILE_DEVICE_MASS_STORAGE +RECOVERED_WRITES_VALID = 0x00000001 +UNRECOVERED_WRITES_VALID = 0x00000002 +RECOVERED_READS_VALID = 0x00000004 +UNRECOVERED_READS_VALID = 0x00000008 +WRITE_COMPRESSION_INFO_VALID = 0x00000010 +READ_COMPRESSION_INFO_VALID = 0x00000020 +TAPE_RETURN_STATISTICS = 0 +TAPE_RETURN_ENV_INFO = 1 +TAPE_RESET_STATISTICS = 2 +MEDIA_ERASEABLE = 0x00000001 +MEDIA_WRITE_ONCE = 0x00000002 +MEDIA_READ_ONLY = 0x00000004 +MEDIA_READ_WRITE = 0x00000008 +MEDIA_WRITE_PROTECTED = 0x00000100 +MEDIA_CURRENTLY_MOUNTED = 0x80000000 +IOCTL_DISK_BASE = FILE_DEVICE_DISK +PARTITION_ENTRY_UNUSED = 0x00 +PARTITION_FAT_12 = 0x01 +PARTITION_XENIX_1 = 0x02 +PARTITION_XENIX_2 = 0x03 +PARTITION_FAT_16 = 0x04 +PARTITION_EXTENDED = 0x05 +PARTITION_HUGE = 0x06 +PARTITION_IFS = 0x07 +PARTITION_OS2BOOTMGR = 0x0A +PARTITION_FAT32 = 0x0B +PARTITION_FAT32_XINT13 = 0x0C +PARTITION_XINT13 = 0x0E +PARTITION_XINT13_EXTENDED = 0x0F +PARTITION_PREP = 0x41 +PARTITION_LDM = 0x42 +PARTITION_UNIX = 0x63 +VALID_NTFT = 0xC0 +PARTITION_NTFT = 0x80 + +GPT_ATTRIBUTE_PLATFORM_REQUIRED = 0x0000000000000001 +GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER = 0x8000000000000000 +GPT_BASIC_DATA_ATTRIBUTE_HIDDEN = 0x4000000000000000 +GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY = 0x2000000000000000 +GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY = 0x1000000000000000 + +HIST_NO_OF_BUCKETS = 24 +DISK_LOGGING_START = 0 +DISK_LOGGING_STOP = 1 +DISK_LOGGING_DUMP = 2 +DISK_BINNING = 3 +CAP_ATA_ID_CMD = 1 +CAP_ATAPI_ID_CMD = 2 +CAP_SMART_CMD = 4 +ATAPI_ID_CMD = 0xA1 +ID_CMD = 0xEC +SMART_CMD = 0xB0 +SMART_CYL_LOW = 0x4F +SMART_CYL_HI = 0xC2 +SMART_NO_ERROR = 0 +SMART_IDE_ERROR = 1 +SMART_INVALID_FLAG = 2 +SMART_INVALID_COMMAND = 3 +SMART_INVALID_BUFFER = 4 +SMART_INVALID_DRIVE = 5 +SMART_INVALID_IOCTL = 6 +SMART_ERROR_NO_MEM = 7 +SMART_INVALID_REGISTER = 8 +SMART_NOT_SUPPORTED = 9 +SMART_NO_IDE_DEVICE = 10 +SMART_OFFLINE_ROUTINE_OFFLINE = 0 +SMART_SHORT_SELFTEST_OFFLINE = 1 +SMART_EXTENDED_SELFTEST_OFFLINE = 2 +SMART_ABORT_OFFLINE_SELFTEST = 127 +SMART_SHORT_SELFTEST_CAPTIVE = 129 +SMART_EXTENDED_SELFTEST_CAPTIVE = 130 +READ_ATTRIBUTE_BUFFER_SIZE = 512 +IDENTIFY_BUFFER_SIZE = 512 +READ_THRESHOLD_BUFFER_SIZE = 512 +SMART_LOG_SECTOR_SIZE = 512 +READ_ATTRIBUTES = 0xD0 +READ_THRESHOLDS = 0xD1 +ENABLE_DISABLE_AUTOSAVE = 0xD2 +SAVE_ATTRIBUTE_VALUES = 0xD3 +EXECUTE_OFFLINE_DIAGS = 0xD4 +SMART_READ_LOG = 0xD5 +SMART_WRITE_LOG = 0xd6 +ENABLE_SMART = 0xD8 +DISABLE_SMART = 0xD9 +RETURN_SMART_STATUS = 0xDA +ENABLE_DISABLE_AUTO_OFFLINE = 0xDB +IOCTL_CHANGER_BASE = FILE_DEVICE_CHANGER +MAX_VOLUME_ID_SIZE = 36 +MAX_VOLUME_TEMPLATE_SIZE = 40 +VENDOR_ID_LENGTH = 8 +PRODUCT_ID_LENGTH = 16 +REVISION_LENGTH = 4 +SERIAL_NUMBER_LENGTH = 32 +CHANGER_BAR_CODE_SCANNER_INSTALLED = 0x00000001 +CHANGER_INIT_ELEM_STAT_WITH_RANGE = 0x00000002 +CHANGER_CLOSE_IEPORT = 0x00000004 +CHANGER_OPEN_IEPORT = 0x00000008 +CHANGER_STATUS_NON_VOLATILE = 0x00000010 +CHANGER_EXCHANGE_MEDIA = 0x00000020 +CHANGER_CLEANER_SLOT = 0x00000040 +CHANGER_LOCK_UNLOCK = 0x00000080 +CHANGER_CARTRIDGE_MAGAZINE = 0x00000100 +CHANGER_MEDIUM_FLIP = 0x00000200 +CHANGER_POSITION_TO_ELEMENT = 0x00000400 +CHANGER_REPORT_IEPORT_STATE = 0x00000800 +CHANGER_STORAGE_DRIVE = 0x00001000 +CHANGER_STORAGE_IEPORT = 0x00002000 +CHANGER_STORAGE_SLOT = 0x00004000 +CHANGER_STORAGE_TRANSPORT = 0x00008000 +CHANGER_DRIVE_CLEANING_REQUIRED = 0x00010000 +CHANGER_PREDISMOUNT_EJECT_REQUIRED = 0x00020000 +CHANGER_CLEANER_ACCESS_NOT_VALID = 0x00040000 +CHANGER_PREMOUNT_EJECT_REQUIRED = 0x00080000 +CHANGER_VOLUME_IDENTIFICATION = 0x00100000 +CHANGER_VOLUME_SEARCH = 0x00200000 +CHANGER_VOLUME_ASSERT = 0x00400000 +CHANGER_VOLUME_REPLACE = 0x00800000 +CHANGER_VOLUME_UNDEFINE = 0x01000000 +CHANGER_SERIAL_NUMBER_VALID = 0x04000000 +CHANGER_DEVICE_REINITIALIZE_CAPABLE = 0x08000000 +CHANGER_KEYPAD_ENABLE_DISABLE = 0x10000000 +CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS = 0x20000000 + +CHANGER_RESERVED_BIT = 0x80000000 +CHANGER_PREDISMOUNT_ALIGN_TO_SLOT = 0x80000001 +CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE = 0x80000002 +CHANGER_CLEANER_AUTODISMOUNT = 0x80000004 +CHANGER_TRUE_EXCHANGE_CAPABLE = 0x80000008 +CHANGER_SLOTS_USE_TRAYS = 0x80000010 +CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR = 0x80000020 +CHANGER_CLEANER_OPS_NOT_SUPPORTED = 0x80000040 +CHANGER_IEPORT_USER_CONTROL_OPEN = 0x80000080 +CHANGER_IEPORT_USER_CONTROL_CLOSE = 0x80000100 +CHANGER_MOVE_EXTENDS_IEPORT = 0x80000200 +CHANGER_MOVE_RETRACTS_IEPORT = 0x80000400 + + +CHANGER_TO_TRANSPORT = 0x01 +CHANGER_TO_SLOT = 0x02 +CHANGER_TO_IEPORT = 0x04 +CHANGER_TO_DRIVE = 0x08 +LOCK_UNLOCK_IEPORT = 0x01 +LOCK_UNLOCK_DOOR = 0x02 +LOCK_UNLOCK_KEYPAD = 0x04 +LOCK_ELEMENT = 0 +UNLOCK_ELEMENT = 1 +EXTEND_IEPORT = 2 +RETRACT_IEPORT = 3 +ELEMENT_STATUS_FULL = 0x00000001 +ELEMENT_STATUS_IMPEXP = 0x00000002 +ELEMENT_STATUS_EXCEPT = 0x00000004 +ELEMENT_STATUS_ACCESS = 0x00000008 +ELEMENT_STATUS_EXENAB = 0x00000010 +ELEMENT_STATUS_INENAB = 0x00000020 +ELEMENT_STATUS_PRODUCT_DATA = 0x00000040 +ELEMENT_STATUS_LUN_VALID = 0x00001000 +ELEMENT_STATUS_ID_VALID = 0x00002000 +ELEMENT_STATUS_NOT_BUS = 0x00008000 +ELEMENT_STATUS_INVERT = 0x00400000 +ELEMENT_STATUS_SVALID = 0x00800000 +ELEMENT_STATUS_PVOLTAG = 0x10000000 +ELEMENT_STATUS_AVOLTAG = 0x20000000 +ERROR_LABEL_UNREADABLE = 0x00000001 +ERROR_LABEL_QUESTIONABLE = 0x00000002 +ERROR_SLOT_NOT_PRESENT = 0x00000004 +ERROR_DRIVE_NOT_INSTALLED = 0x00000008 +ERROR_TRAY_MALFUNCTION = 0x00000010 +ERROR_INIT_STATUS_NEEDED = 0x00000011 +ERROR_UNHANDLED_ERROR = 0xFFFFFFFF +SEARCH_ALL = 0x0 +SEARCH_PRIMARY = 0x1 +SEARCH_ALTERNATE = 0x2 +SEARCH_ALL_NO_SEQ = 0x4 +SEARCH_PRI_NO_SEQ = 0x5 +SEARCH_ALT_NO_SEQ = 0x6 +ASSERT_PRIMARY = 0x8 +ASSERT_ALTERNATE = 0x9 +REPLACE_PRIMARY = 0xA +REPLACE_ALTERNATE = 0xB +UNDEFINE_PRIMARY = 0xC +UNDEFINE_ALTERNATE = 0xD +USN_PAGE_SIZE = 0x1000 +USN_REASON_DATA_OVERWRITE = 0x00000001 +USN_REASON_DATA_EXTEND = 0x00000002 +USN_REASON_DATA_TRUNCATION = 0x00000004 +USN_REASON_NAMED_DATA_OVERWRITE = 0x00000010 +USN_REASON_NAMED_DATA_EXTEND = 0x00000020 +USN_REASON_NAMED_DATA_TRUNCATION = 0x00000040 +USN_REASON_FILE_CREATE = 0x00000100 +USN_REASON_FILE_DELETE = 0x00000200 +USN_REASON_EA_CHANGE = 0x00000400 +USN_REASON_SECURITY_CHANGE = 0x00000800 +USN_REASON_RENAME_OLD_NAME = 0x00001000 +USN_REASON_RENAME_NEW_NAME = 0x00002000 +USN_REASON_INDEXABLE_CHANGE = 0x00004000 +USN_REASON_BASIC_INFO_CHANGE = 0x00008000 +USN_REASON_HARD_LINK_CHANGE = 0x00010000 +USN_REASON_COMPRESSION_CHANGE = 0x00020000 +USN_REASON_ENCRYPTION_CHANGE = 0x00040000 +USN_REASON_OBJECT_ID_CHANGE = 0x00080000 +USN_REASON_REPARSE_POINT_CHANGE = 0x00100000 +USN_REASON_STREAM_CHANGE = 0x00200000 +USN_REASON_TRANSACTED_CHANGE = 0x00400000 +USN_REASON_CLOSE = 0x80000000 +USN_DELETE_FLAG_DELETE = 0x00000001 +USN_DELETE_FLAG_NOTIFY = 0x00000002 +USN_DELETE_VALID_FLAGS = 0x00000003 +USN_SOURCE_DATA_MANAGEMENT = 0x00000001 +USN_SOURCE_AUXILIARY_DATA = 0x00000002 +USN_SOURCE_REPLICATION_MANAGEMENT = 0x00000004 + +MARK_HANDLE_PROTECT_CLUSTERS = 1 +MARK_HANDLE_TXF_SYSTEM_LOG = 4 +MARK_HANDLE_NOT_TXF_SYSTEM_LOG = 8 + +VOLUME_IS_DIRTY = 0x00000001 +VOLUME_UPGRADE_SCHEDULED = 0x00000002 +VOLUME_SESSION_OPEN = 4 + +FILE_PREFETCH_TYPE_FOR_CREATE = 1 +FILE_PREFETCH_TYPE_FOR_DIRENUM = 2 +FILE_PREFETCH_TYPE_FOR_CREATE_EX = 3 +FILE_PREFETCH_TYPE_FOR_DIRENUM_EX = 4 +FILE_PREFETCH_TYPE_MAX = 4 + +FILESYSTEM_STATISTICS_TYPE_NTFS = 1 +FILESYSTEM_STATISTICS_TYPE_FAT = 2 +FILE_SET_ENCRYPTION = 0x00000001 +FILE_CLEAR_ENCRYPTION = 0x00000002 +STREAM_SET_ENCRYPTION = 0x00000003 +STREAM_CLEAR_ENCRYPTION = 0x00000004 +MAXIMUM_ENCRYPTION_VALUE = 0x00000004 +ENCRYPTION_FORMAT_DEFAULT = 0x01 +COMPRESSION_FORMAT_SPARSE = 0x4000 +COPYFILE_SIS_LINK = 0x0001 +COPYFILE_SIS_REPLACE = 0x0002 +COPYFILE_SIS_FLAGS = 0x0003 + +WMI_DISK_GEOMETRY_GUID = pywintypes.IID("{25007F51-57C2-11D1-A528-00A0C9062910}") +GUID_DEVINTERFACE_CDROM = pywintypes.IID("{53F56308-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_FLOPPY = pywintypes.IID("{53F56311-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR = pywintypes.IID("{4D36E978-E325-11CE-BFC1-08002BE10318}") +GUID_DEVINTERFACE_COMPORT = pywintypes.IID("{86E0D1E0-8089-11D0-9CE4-08003E301F73}") +GUID_DEVINTERFACE_DISK = pywintypes.IID("{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_STORAGEPORT = pywintypes.IID("{2ACCFE60-C130-11D2-B082-00A0C91EFB8B}") +GUID_DEVINTERFACE_CDCHANGER = pywintypes.IID("{53F56312-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_PARTITION = pywintypes.IID("{53F5630A-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_VOLUME = pywintypes.IID("{53F5630D-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_WRITEONCEDISK = pywintypes.IID("{53F5630C-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_TAPE = pywintypes.IID("{53F5630B-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_MEDIUMCHANGER = pywintypes.IID("{53F56310-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_SERENUM_BUS_ENUMERATOR = GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR +GUID_CLASS_COMPORT = GUID_DEVINTERFACE_COMPORT + +DiskClassGuid = GUID_DEVINTERFACE_DISK +CdRomClassGuid = GUID_DEVINTERFACE_CDROM +PartitionClassGuid = GUID_DEVINTERFACE_PARTITION +TapeClassGuid = GUID_DEVINTERFACE_TAPE +WriteOnceDiskClassGuid = GUID_DEVINTERFACE_WRITEONCEDISK +VolumeClassGuid = GUID_DEVINTERFACE_VOLUME +MediumChangerClassGuid = GUID_DEVINTERFACE_MEDIUMCHANGER +FloppyClassGuid = GUID_DEVINTERFACE_FLOPPY +CdChangerClassGuid = GUID_DEVINTERFACE_CDCHANGER +StoragePortClassGuid = GUID_DEVINTERFACE_STORAGEPORT + + +IOCTL_STORAGE_CHECK_VERIFY = CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_CHECK_VERIFY2 = CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_MEDIA_REMOVAL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_EJECT_MEDIA = CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_LOAD_MEDIA = CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_LOAD_MEDIA2 = CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_RESERVE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_RELEASE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_FIND_NEW_DEVICES = CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_EJECTION_CONTROL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_MCN_CONTROL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_GET_MEDIA_TYPES = CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_GET_MEDIA_TYPES_EX = CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER = CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_GET_HOTPLUG_INFO = CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_SET_HOTPLUG_INFO = CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_STORAGE_RESET_BUS = CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_RESET_DEVICE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_BREAK_RESERVATION = CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_GET_DEVICE_NUMBER = CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_PREDICT_FAILURE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_GET_DRIVE_GEOMETRY = CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_GET_PARTITION_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_SET_PARTITION_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_SET_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_VERIFY = CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_FORMAT_TRACKS = CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_REASSIGN_BLOCKS = CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_PERFORMANCE = CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_IS_WRITABLE = CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_LOGGING = CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_FORMAT_TRACKS_EX = CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_HISTOGRAM_STRUCTURE = CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_HISTOGRAM_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_HISTOGRAM_RESET = CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_REQUEST_STRUCTURE = CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_REQUEST_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_PERFORMANCE_OFF = CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_CONTROLLER_NUMBER = CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS) +SMART_GET_VERSION = CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS) +SMART_SEND_DRIVE_COMMAND = CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +SMART_RCV_DRIVE_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_PARTITION_INFO_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_SET_PARTITION_INFO_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_DRIVE_LAYOUT_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_SET_DRIVE_LAYOUT_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_CREATE_DISK = CTL_CODE(IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_LENGTH_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_GET_DRIVE_GEOMETRY_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_REASSIGN_BLOCKS_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0029, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + +IOCTL_DISK_UPDATE_DRIVE_SIZE = CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GROW_PARTITION = CTL_CODE(IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_CACHE_INFORMATION = CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_SET_CACHE_INFORMATION = CTL_CODE(IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + +OBSOLETE_IOCTL_STORAGE_RESET_BUS = CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +OBSOLETE_IOCTL_STORAGE_RESET_DEVICE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +## the original define no longer exists in winioctl.h +OBSOLETE_DISK_GET_WRITE_CACHE_STATE = CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_GET_WRITE_CACHE_STATE=OBSOLETE_DISK_GET_WRITE_CACHE_STATE + + +IOCTL_DISK_DELETE_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_UPDATE_PROPERTIES = CTL_CODE(IOCTL_DISK_BASE, 0x0050, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_FORMAT_DRIVE = CTL_CODE(IOCTL_DISK_BASE, 0x00f3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_SENSE_DEVICE = CTL_CODE(IOCTL_DISK_BASE, 0x00f8, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_CHECK_VERIFY = CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_MEDIA_REMOVAL = CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_EJECT_MEDIA = CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_LOAD_MEDIA = CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_RESERVE = CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_RELEASE = CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_FIND_NEW_DEVICES = CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_GET_MEDIA_TYPES = CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) + +DISK_HISTOGRAM_SIZE = 72 +HISTOGRAM_BUCKET_SIZE = 8 + +IOCTL_CHANGER_GET_PARAMETERS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_GET_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_GET_PRODUCT_DATA = CTL_CODE(IOCTL_CHANGER_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_SET_ACCESS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_CHANGER_GET_ELEMENT_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_SET_POSITION = CTL_CODE(IOCTL_CHANGER_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_EXCHANGE_MEDIUM = CTL_CODE(IOCTL_CHANGER_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_MOVE_MEDIUM = CTL_CODE(IOCTL_CHANGER_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_REINITIALIZE_TRANSPORT = CTL_CODE(IOCTL_CHANGER_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_QUERY_VOLUME_TAGS = CTL_CODE(IOCTL_CHANGER_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_SERIAL_LSRMST_INSERT = CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS) +IOCTL_SERENUM_EXPOSE_HARDWARE = CTL_CODE(FILE_DEVICE_SERENUM,128,METHOD_BUFFERED,FILE_ANY_ACCESS) +IOCTL_SERENUM_REMOVE_HARDWARE = CTL_CODE(FILE_DEVICE_SERENUM,129,METHOD_BUFFERED,FILE_ANY_ACCESS) +IOCTL_SERENUM_PORT_DESC = CTL_CODE(FILE_DEVICE_SERENUM,130,METHOD_BUFFERED,FILE_ANY_ACCESS) +IOCTL_SERENUM_GET_PORT_NAME = CTL_CODE(FILE_DEVICE_SERENUM,131,METHOD_BUFFERED,FILE_ANY_ACCESS) + +## ??? can't find where FILE_DEVICE_AVIO is defined ??? +## IOCTL_AVIO_ALLOCATE_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +## IOCTL_AVIO_FREE_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +## IOCTL_AVIO_MODIFY_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + +SERIAL_LSRMST_ESCAPE = 0x00 +SERIAL_LSRMST_LSR_DATA = 0x01 +SERIAL_LSRMST_LSR_NODATA = 0x02 +SERIAL_LSRMST_MST = 0x03 +SERIAL_IOC_FCR_FIFO_ENABLE = 0x00000001 +SERIAL_IOC_FCR_RCVR_RESET = 0x00000002 +SERIAL_IOC_FCR_XMIT_RESET = 0x00000004 +SERIAL_IOC_FCR_DMA_MODE = 0x00000008 +SERIAL_IOC_FCR_RES1 = 0x00000010 +SERIAL_IOC_FCR_RES2 = 0x00000020 +SERIAL_IOC_FCR_RCVR_TRIGGER_LSB = 0x00000040 +SERIAL_IOC_FCR_RCVR_TRIGGER_MSB = 0x00000080 +SERIAL_IOC_MCR_DTR = 0x00000001 +SERIAL_IOC_MCR_RTS = 0x00000002 +SERIAL_IOC_MCR_OUT1 = 0x00000004 +SERIAL_IOC_MCR_OUT2 = 0x00000008 +SERIAL_IOC_MCR_LOOP = 0x00000010 +FSCTL_REQUEST_OPLOCK_LEVEL_1 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_REQUEST_OPLOCK_LEVEL_2 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_REQUEST_BATCH_OPLOCK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_OPLOCK_BREAK_ACKNOWLEDGE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_OPBATCH_ACK_CLOSE_PENDING = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_OPLOCK_BREAK_NOTIFY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_LOCK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_UNLOCK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DISMOUNT_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_IS_VOLUME_MOUNTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_IS_PATHNAME_VALID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_MARK_VOLUME_DIRTY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_QUERY_RETRIEVAL_POINTERS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_GET_COMPRESSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SET_COMPRESSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) +FSCTL_MARK_AS_SYSTEM_HIVE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_OPLOCK_BREAK_ACK_NO_2 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_INVALIDATE_VOLUMES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_QUERY_FAT_BPB = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_REQUEST_FILTER_OPLOCK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_FILESYSTEM_GET_STATISTICS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_GET_NTFS_VOLUME_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_GET_NTFS_FILE_RECORD = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_GET_VOLUME_BITMAP = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_GET_RETRIEVAL_POINTERS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_MOVE_FILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_IS_VOLUME_DIRTY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_ALLOW_EXTENDED_DASD_IO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_FIND_FILES_BY_SID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_SET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_GET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DELETE_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_SET_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_GET_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DELETE_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_ENUM_USN_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_SECURITY_ID_CHECK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA) +FSCTL_READ_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_SET_OBJECT_ID_EXTENDED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_CREATE_OR_GET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SET_SPARSE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_SET_ZERO_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_QUERY_ALLOCATED_RANGES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA) +FSCTL_SET_ENCRYPTION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_ENCRYPTION_FSCTL_IO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_WRITE_RAW_ENCRYPTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS) +FSCTL_READ_RAW_ENCRYPTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS) +FSCTL_CREATE_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_READ_FILE_USN_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_WRITE_USN_CLOSE_RECORD = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_EXTEND_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_QUERY_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DELETE_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_MARK_HANDLE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SIS_COPYFILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SIS_LINK_FILES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) +FSCTL_HSM_MSG = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) +FSCTL_HSM_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA) +FSCTL_RECALL_FILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_READ_FROM_PLEX = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA) +FSCTL_FILE_PREFETCH = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_MAKE_MEDIA_COMPATIBLE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_SET_DEFECT_MANAGEMENT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_QUERY_SPARING_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_QUERY_ON_DISK_VOLUME_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SET_VOLUME_COMPRESSION_STATE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_TXFS_MODIFY_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_QUERY_RM_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_ROLLFORWARD_REDO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_ROLLFORWARD_UNDO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_START_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_SHUTDOWN_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_READ_BACKUP_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_WRITE_BACKUP_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_CREATE_SECONDARY_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_GET_METADATA_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_GET_TRANSACTED_VERSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_CREATE_MINIVERSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_TRANSACTION_ACTIVE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_SET_ZERO_ON_DEALLOCATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_SET_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_GET_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_WAIT_FOR_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_INITIATE_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_CSC_INTERNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_SHRINK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_SET_SHORT_NAME_BEHAVIOR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DFSR_SET_GHOST_HANDLE_STATE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_LIST_TRANSACTIONS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_QUERY_PAGEFILE_ENCRYPTION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS) + +IOCTL_VOLUME_BASE = ord('V') +IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS = CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_VOLUME_ONLINE = CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_VOLUME_OFFLINE = CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_VOLUME_IS_CLUSTERED = CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_VOLUME_GET_GPT_ATTRIBUTES = CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS) + +## enums +## STORAGE_MEDIA_TYPE +DDS_4mm = 32 +MiniQic = 33 +Travan = 34 +QIC = 35 +MP_8mm = 36 +AME_8mm = 37 +AIT1_8mm = 38 +DLT = 39 +NCTP = 40 +IBM_3480 = 41 +IBM_3490E = 42 +IBM_Magstar_3590 = 43 +IBM_Magstar_MP = 44 +STK_DATA_D3 = 45 +SONY_DTF = 46 +DV_6mm = 47 +DMI = 48 +SONY_D2 = 49 +CLEANER_CARTRIDGE = 50 +CD_ROM = 51 +CD_R = 52 +CD_RW = 53 +DVD_ROM = 54 +DVD_R = 55 +DVD_RW = 56 +MO_3_RW = 57 +MO_5_WO = 58 +MO_5_RW = 59 +MO_5_LIMDOW = 60 +PC_5_WO = 61 +PC_5_RW = 62 +PD_5_RW = 63 +ABL_5_WO = 64 +PINNACLE_APEX_5_RW = 65 +SONY_12_WO = 66 +PHILIPS_12_WO = 67 +HITACHI_12_WO = 68 +CYGNET_12_WO = 69 +KODAK_14_WO = 70 +MO_NFR_525 = 71 +NIKON_12_RW = 72 +IOMEGA_ZIP = 73 +IOMEGA_JAZ = 74 +SYQUEST_EZ135 = 75 +SYQUEST_EZFLYER = 76 +SYQUEST_SYJET = 77 +AVATAR_F2 = 78 +MP2_8mm = 79 +DST_S = 80 +DST_M = 81 +DST_L = 82 +VXATape_1 = 83 +VXATape_2 = 84 +STK_9840 = 85 +LTO_Ultrium = 86 +LTO_Accelis = 87 +DVD_RAM = 88 +AIT_8mm = 89 +ADR_1 = 90 +ADR_2 = 91 +STK_9940 = 92 + +## STORAGE_BUS_TYPE +BusTypeUnknown = 0 +BusTypeScsi = 1 +BusTypeAtapi = 2 +BusTypeAta = 3 +BusType1394 = 4 +BusTypeSsa = 5 +BusTypeFibre = 6 +BusTypeUsb = 7 +BusTypeRAID = 8 +BusTypeiScsi = 9 +BusTypeSas = 10 +BusTypeSata = 11 +BusTypeMaxReserved = 127 + +## MEDIA_TYPE +Unknown = 0 +F5_1Pt2_512 = 1 +F3_1Pt44_512 = 2 +F3_2Pt88_512 = 3 +F3_20Pt8_512 = 4 +F3_720_512 = 5 +F5_360_512 = 6 +F5_320_512 = 7 +F5_320_1024 = 8 +F5_180_512 = 9 +F5_160_512 = 10 +RemovableMedia = 11 +FixedMedia = 12 +F3_120M_512 = 13 +F3_640_512 = 14 +F5_640_512 = 15 +F5_720_512 = 16 +F3_1Pt2_512 = 17 +F3_1Pt23_1024 = 18 +F5_1Pt23_1024 = 19 +F3_128Mb_512 = 20 +F3_230Mb_512 = 21 +F8_256_128 = 22 +F3_200Mb_512 = 23 +F3_240M_512 = 24 +F3_32M_512 = 25 + +## PARTITION_STYLE +PARTITION_STYLE_MBR = 0 +PARTITION_STYLE_GPT = 1 +PARTITION_STYLE_RAW = 2 + +## DETECTION_TYPE +DetectNone = 0 +DetectInt13 = 1 +DetectExInt13 = 2 + +## DISK_CACHE_RETENTION_PRIORITY +EqualPriority = 0 +KeepPrefetchedData = 1 +KeepReadData = 2 + +## DISK_WRITE_CACHE_STATE - ?????? this enum has disappeared from winioctl.h in windows 2003 SP1 sdk ?????? +DiskWriteCacheNormal = 0 +DiskWriteCacheForceDisable = 1 +DiskWriteCacheDisableNotSupported = 2 + +## BIN_TYPES +RequestSize = 0 +RequestLocation = 1 + +## CHANGER_DEVICE_PROBLEM_TYPE +DeviceProblemNone = 0 +DeviceProblemHardware = 1 +DeviceProblemCHMError = 2 +DeviceProblemDoorOpen = 3 +DeviceProblemCalibrationError = 4 +DeviceProblemTargetFailure = 5 +DeviceProblemCHMMoveError = 6 +DeviceProblemCHMZeroError = 7 +DeviceProblemCartridgeInsertError = 8 +DeviceProblemPositionError = 9 +DeviceProblemSensorError = 10 +DeviceProblemCartridgeEjectError = 11 +DeviceProblemGripperError = 12 +DeviceProblemDriveError = 13 From 13b4d43e62fb6efea52ef50cef36f445c3c6e47c Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 29 Nov 2021 14:04:56 -0500 Subject: [PATCH 02/54] Moved most settings to pyproject.toml and ran autopep8 --- .flake8 | 1 + .mypy.ini | 33 ------------------ .vscode/extensions.json | 9 ++--- .vscode/settings.json | 13 ++++--- README.md | 2 +- pyproject.toml | 67 +++++++++++++++++++++++++++++++++++++ pyrightconfig.json | 19 ----------- src/AutoControlledWorker.py | 4 +-- src/AutoSplit.py | 6 +++- src/compare.py | 7 +++- src/gen/about.pyi | 2 +- src/gen/design.pyi | 2 +- src/gen/update_checker.pyi | 2 +- 13 files changed, 96 insertions(+), 71 deletions(-) delete mode 100644 .mypy.ini create mode 100644 pyproject.toml delete mode 100644 pyrightconfig.json diff --git a/.flake8 b/.flake8 index a5dfe806..a97455b0 100644 --- a/.flake8 +++ b/.flake8 @@ -12,3 +12,4 @@ per-file-ignores = ; line too long ; mixed case __init__.pyi:F401,E501,N816 +inline-quotes = " diff --git a/.mypy.ini b/.mypy.ini deleted file mode 100644 index 6b23dbbd..00000000 --- a/.mypy.ini +++ /dev/null @@ -1,33 +0,0 @@ -; https://mypy.readthedocs.io/en/stable/command_line.html#disallow-dynamic-typing -[mypy] -show_column_numbers=True -show_error_codes=True -no_color_output=False -color_output=True - -ignore_missing_imports=True -follow_imports=silent - -; Note: exclude is ignored when linting file by file so VSCode will still show errors in typings -; typings are incomplete as we only add types for what we need, cannot disable specific rules per file -; Auto generated -exclude=(typings/|src/gen/) - -; Redundant -disallow_untyped_defs=False -; Doesn't see our cv2 type stubs -warn_return_any=False -; False positives when it's needed for other linting libraries -warn_unused_ignores=False -; Doesn't see imports from src/gen/ -disallow_any_unimported=False -disallow_subclassing_any=False -; False positives with ndarray -disable_error_code=no-untyped-def - -strict=True -; Doesn't see types from some imports -disallow_any_expr=False -disallow_any_decorated=True -disallow_any_explicit=True -warn_unreachable=True diff --git a/.vscode/extensions.json b/.vscode/extensions.json index ca9b77ca..d4464eda 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,11 +1,12 @@ { "recommendations": [ - "ms-python.vscode-pylance", - "ms-python.python", - "sonarsource.sonarlint-vscode", + "bungcip.better-toml", "davidanson.vscode-markdownlint", + "eamodio.gitlens", + "ms-python.python", + "ms-python.vscode-pylance", "shardulm94.trailing-spaces", - "eamodio.gitlens" + "sonarsource.sonarlint-vscode" ], "unwantedRecommendations": [ "ms-pyright.pyright", diff --git a/.vscode/settings.json b/.vscode/settings.json index 2f06bd99..e06aef8d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,9 +13,11 @@ "[python]": { "editor.tabSize": 4, "editor.rulers": [ - 79, - 100, - 120, + 72, // PEP8-17 docstrings + // 79, // PEP8-17 default max + // 88, // Black default + 99, // PEP8-17 acceptable max + 120, // Our hard rule ] }, "editor.formatOnSave": true, @@ -23,9 +25,6 @@ "source.fixAll": true, "source.fixAll.markdownlint": true, }, - // Set to trace when sending error reports to Pylance - // "python.analysis.logLevel": "Trace", - // https://code.visualstudio.com/docs/python/linting#_specific-linters "python.linting.enabled": true, "python.linting.pylintEnabled": true, "python.linting.pylintCategorySeverity.convention": "Warning", @@ -66,5 +65,5 @@ "**/bower_components": true, "**/*.code-search": true, "typings": true, - } + }, } diff --git a/README.md b/README.md index f11ae3e3..9ce40c48 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# LiveSplit AutoSplit +# LiveSplit AutoSplit [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) Easy to use image comparison based auto splitter for speedrunning on console or PC. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..e20af376 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,67 @@ +# https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file +[tool.black] +line-length = 120 +# Auto generated +force-exclude = "src/gen/.*\\.py$" + +# https://github.com/hhatto/autopep8#usage +# https://github.com/hhatto/autopep8#more-advanced-usage +[tool.autopep8] +max_line_length = 120 +recursive = true +aggressive = 3 + +# https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file +[tool.pyright] +pythonPlatform = "Windows" +typeCheckingMode = "strict" +ignore = [ + # Auto generated + "src/gen/", + "typings/", +] +reportMissingTypeStubs = "information" +# False positives with TYPE_CHECKING +reportImportCycles = "information" +# PyQt .connect +reportFunctionMemberAccess = "information" +# Extra runtime safety +reportUnnecessaryComparison = "warning" +# Flake8 does a better job +reportUnusedImport = "none" +# numpy has way too many complex types that triggers this +reportUnknownMemberType = "none" + +# https://mypy.readthedocs.io/en/stable/command_line.html#disallow-dynamic-typing +[tool.mypy] +show_column_numbers = true +show_error_codes = true +no_color_output = false +color_output = true + +ignore_missing_imports = true +follow_imports = "silent" + +# Note: exclude is ignored when linting file by file so VSCode will still show errors in typings +# typings are incomplete as we only add types for what we need, cannot disable specific rules per file +# Auto generated +exclude = "(typings/|src/gen/)" + +# Redundant +disallow_untyped_defs = false +# Doesn't see our cv2 type stubs +warn_return_any = false +# False positives when it's needed for other linting libraries +warn_unused_ignores = false +# Doesn't see imports from src/gen/ +disallow_any_unimported = false +disallow_subclassing_any = false +# False positives with ndarray +disable_error_code = "no-untyped-def" + +strict = true +# Doesn't see types from some imports +disallow_any_expr = false +disallow_any_decorated = true +disallow_any_explicit = true +warn_unreachable = true diff --git a/pyrightconfig.json b/pyrightconfig.json deleted file mode 100644 index 5aaa8948..00000000 --- a/pyrightconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "typeCheckingMode": "strict", - // Auto generated - "ignore": [ - // "src/gen/", - "typings/", - ], - "reportMissingTypeStubs": "information", - // False positives with TYPE_CHECKING - "reportImportCycles": "information", - // PyQt .connect - "reportFunctionMemberAccess": "information", - // Extra runtime safety - "reportUnnecessaryComparison": "warning", - // Flake8 does a better job - "reportUnusedImport": "none", - // numpy has way too many complex types that triggers this - "reportUnknownMemberType": "none", -} diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index fef30676..a29c0910 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -25,9 +25,9 @@ def run(self): if line == 'kill': self.autosplit.closeEvent() break - elif line == 'start': + if line == 'start': self.autosplit.startAutoSplitter() - elif line == 'split' or line == 'skip': + elif line in ('split', 'skip'): self.autosplit.startSkipSplit() elif line == 'undo': self.autosplit.startUndoSplit() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index b35b5c2a..b8f5e01c 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -305,7 +305,11 @@ def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = error_messages.noKeywordImageError('start_auto_splitter') return - if self.start_image_name is not None and (not self.splitLineEdit.text() or not self.resetLineEdit.text() or not self.pausehotkeyLineEdit.text()) and not self.is_auto_controlled: + if self.start_image_name is not None \ + and not self.is_auto_controlled \ + and (not self.splitLineEdit.text() + or not self.resetLineEdit.text() + or not self.pausehotkeyLineEdit.text()): error_messages.loadStartImageError() return diff --git a/src/compare.py b/src/compare.py index c2cd9243..b1c89fd8 100644 --- a/src/compare.py +++ b/src/compare.py @@ -12,7 +12,12 @@ ranges = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] -def compareImage(comparisonMethod: int, image: Optional[cv2.ndarray], capture: Optional[cv2.ndarray], mask: Optional[cv2.ndarray] = None): +def compareImage( + comparisonMethod: int, + image: Optional[cv2.ndarray], + capture: Optional[cv2.ndarray], + mask: Optional[cv2.ndarray] = None +): if image is None or capture is None: return 0.0 if comparisonMethod == 0: diff --git a/src/gen/about.pyi b/src/gen/about.pyi index 786170bc..c686e0ea 100644 --- a/src/gen/about.pyi +++ b/src/gen/about.pyi @@ -1,6 +1,6 @@ from PyQt6.QtWidgets import QWidget -class Ui_aboutAutoSplitWidget(object): +class Ui_aboutAutoSplitWidget(): def setupUi(self, aboutAutoSplitWidget: QWidget) -> None: ... diff --git a/src/gen/design.pyi b/src/gen/design.pyi index d999d224..6d951853 100644 --- a/src/gen/design.pyi +++ b/src/gen/design.pyi @@ -1,6 +1,6 @@ from PyQt6.QtWidgets import QMainWindow -class Ui_MainWindow(object): +class Ui_MainWindow(): def setupUi(self, MainWindow: QMainWindow) -> None: ... diff --git a/src/gen/update_checker.pyi b/src/gen/update_checker.pyi index c3680370..027afe46 100644 --- a/src/gen/update_checker.pyi +++ b/src/gen/update_checker.pyi @@ -1,6 +1,6 @@ from PyQt6.QtWidgets import QWidget -class Ui_UpdateChecker(object): +class Ui_UpdateChecker(): def setupUi(self, UpdateChecker: QWidget) -> None: ... From 9840fd9878fd528ae17a39303a69d9e1808ad405 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 29 Nov 2021 16:11:03 -0500 Subject: [PATCH 03/54] Removed mypy and Fixed import-outside-toplevel --- .flake8 | 4 +- .pylintrc | 23 ------------ .vscode/settings.json | 3 +- pyproject.toml | 79 +++++++++++++++++++++++++--------------- scripts/install.bat | 2 - scripts/lint.ps1 | 9 ++++- scripts/requirements.txt | 7 ++-- src/AutoSplit.py | 67 ++++++++++++++++------------------ src/error_messages.py | 3 +- src/hotkeys.py | 10 ++--- src/settings_file.py | 8 ++-- 11 files changed, 106 insertions(+), 109 deletions(-) delete mode 100644 .pylintrc diff --git a/.flake8 b/.flake8 index a97455b0..e6aff2b6 100644 --- a/.flake8 +++ b/.flake8 @@ -1,8 +1,6 @@ [flake8] color=always max-line-length=120 -; TODO: Bring WAY down -max-complexity=55 ; Auto generated exclude=src/gen/ ; TODO: We want to configure this @@ -12,4 +10,6 @@ per-file-ignores = ; line too long ; mixed case __init__.pyi:F401,E501,N816 +; TODO: Bring WAY down +max-complexity=55 inline-quotes = " diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index 8bd9be7a..00000000 --- a/.pylintrc +++ /dev/null @@ -1,23 +0,0 @@ -; http://pylint-messages.wikidot.com/all-codes -[MASTER] -max-line-length=120 -ignore-paths= - ; Haven't looked into disabling specific rules per file - ^typings/.*$, - ; Auto generated - ^src/gen/.*$ -disable= - missing-docstring, - ; TODO: We want to configure this - ; https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles - invalid-name, - ; We group imports - wrong-import-position, - ; Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride - unused-argument, - ; Already taken care of by Flake8 - unused-import, -extension-pkg-allow-list=PyQt6,win32ui - -[TYPECHECK] -generated-members=cv2 diff --git a/.vscode/settings.json b/.vscode/settings.json index e06aef8d..5336311a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -31,7 +31,8 @@ "python.linting.pylintCategorySeverity.refactor": "Warning", "python.linting.flake8Enabled": true, "python.linting.flake8CategorySeverity.E": "Warning", - "python.linting.mypyEnabled": true, + // PyRight obsoletes mypy + "python.linting.mypyEnabled": false, // Is already wrapped by Flake8, prospector and pylama "python.linting.pycodestyleEnabled": false, // Just another wrapper, use Flake8 OR this diff --git a/pyproject.toml b/pyproject.toml index e20af376..2bd88316 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,36 +32,55 @@ reportUnusedImport = "none" # numpy has way too many complex types that triggers this reportUnknownMemberType = "none" -# https://mypy.readthedocs.io/en/stable/command_line.html#disallow-dynamic-typing -[tool.mypy] -show_column_numbers = true -show_error_codes = true -no_color_output = false -color_output = true - -ignore_missing_imports = true -follow_imports = "silent" +# https://github.com/PyCQA/pylint/blob/main/examples/pylintrc +# https://pylint.pycqa.org/en/latest/technical_reference/features.html +[tool.pylint.MASTER] +# https://pylint.pycqa.org/en/latest/technical_reference/extensions.html +load-plugins = [ + "pylint.extensions.broad_try_clause", + "pylint.extensions.code_style", + "pylint.extensions.emptystring", + "pylint.extensions.comparetozero", + "pylint.extensions.comparison_placement", + "pylint.extensions.confusing_elif", + "pylint.extensions.for_any_all", + "pylint.extensions.consider_ternary_expression", + "pylint.extensions.bad_builtin", + "pylint.extensions.mccabe", + "pylint.extensions.docstyle", + "pylint.extensions.check_elif", + "pylint.extensions.redefined_variable_type", + "pylint.extensions.overlapping_exceptions", + "pylint.extensions.docparams", + "pylint.extensions.empty_comment", + "pylint.extensions.set_membership", + "pylint.extensions.typing", + "pylint.extensions.while_used", +] +ignore-paths = [ + # Haven't looked into disabling specific rules per file + "^typings/.*$", + # Auto generated + "^src/gen/.*$", +] +extension-pkg-allow-list = ["PyQt6", "win32ui"] -# Note: exclude is ignored when linting file by file so VSCode will still show errors in typings -# typings are incomplete as we only add types for what we need, cannot disable specific rules per file -# Auto generated -exclude = "(typings/|src/gen/)" +[tool.pylint.FORMAT] +max-line-length = 120 -# Redundant -disallow_untyped_defs = false -# Doesn't see our cv2 type stubs -warn_return_any = false -# False positives when it's needed for other linting libraries -warn_unused_ignores = false -# Doesn't see imports from src/gen/ -disallow_any_unimported = false -disallow_subclassing_any = false -# False positives with ndarray -disable_error_code = "no-untyped-def" +[tool.pylint.'MESSAGES CONTROL'] +disable = [ + "missing-docstring", + # TODO: We want to configure this + # https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles + "invalid-name", + # We group imports + "wrong-import-position", + # Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride + "unused-argument", + # Already taken care of by Flake8 + "unused-import", +] -strict = true -# Doesn't see types from some imports -disallow_any_expr = false -disallow_any_decorated = true -disallow_any_explicit = true -warn_unreachable = true +[tool.pylint.TYPECHECK] +generated-members = "cv2" diff --git a/scripts/install.bat b/scripts/install.bat index a824c7b4..b32ff99e 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -1,6 +1,4 @@ py -3.9 -m pip install wheel py -3.9 -m pip install -r "%~p0requirements.txt" -@REM https://github.com/python/mypy/issues/10600 --non-interactive may still have issues -mypy --install-types --non-interactive npm install -g pyright CALL "%~p0compile_resources.bat" diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index 298956ce..be2eaa1c 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -1,8 +1,13 @@ +echo "`nRunning Pylint..." pylint --score=n --output-format=text,colorized $(git ls-files '**/*.py*') # pylint --reports=y --output-format=text,colorized $(git ls-files '**/*.py*') -mypy . -# mypy --pretty src + +echo "`nRunning Pyright..." pyright + +echo "`nRunning Bandit..." bandit -f custom --silent --severity-level medium -r . # bandit -n 1 --severity-level medium -r src + +echo "`nRunning Flake8..." flake8 diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 71cf1231..e68458c6 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -11,7 +11,7 @@ # # Dependencies: numpy>=1.22.0rc1 -opencv-python<=4.5.3.56 # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 +opencv-python<=4.5.3.56 # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 PyQt6 Pillow ImageHash @@ -21,10 +21,11 @@ keyboard packaging pyautogui PySide6 +requests +# Linting flake8 -mypy +type-requests pylint -requests # # Comment this out if you don't want to build AutoSplit.exe: PyInstaller diff --git a/src/AutoSplit.py b/src/AutoSplit.py index b8f5e01c..09ca69a9 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -26,12 +26,15 @@ from win32con import MAXBYTE import error_messages +import settings_file as settings import split_parser from AutoControlledWorker import AutoControlledWorker +from capture_windows import capture_region, Rect from gen import design +from hotkeys import send_command, afterSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, \ + setUndoSplitHotkey, setPauseHotkey from menu_bar import AboutWidget, VERSION, UpdateCheckerWidget, about, viewHelp, checkForUpdates -from capture_windows import capture_region, Rect -from settings_file import auto_split_directory +from screen_region import selectRegion, selectWindow, alignRegion, validateBeforeComparison from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG from compare import checkIfImageHasTransparency, compareImage @@ -49,14 +52,6 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): - # pylint: disable=import-outside-toplevel - from hotkeys import send_command - from settings_file import saveSettings, saveSettingsAs, loadSettings, haveSettingsChanged, getSaveSettingsValues, \ - loadPyQtSettings - from screen_region import selectRegion, selectWindow, alignRegion, validateBeforeComparison - from hotkeys import afterSettingHotkey, beforeSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, \ - setUndoSplitHotkey, setPauseHotkey - myappid = f'Toufool.AutoSplit.v{VERSION}' ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) @@ -137,15 +132,15 @@ def __init__(self, parent: Optional[QWidget] = None): super().__init__(parent) self.setupUi(self) - self.loadPyQtSettings() + settings.loadPyQtSettings(self) # close all processes when closing window self.actionView_Help.triggered.connect(viewHelp) self.actionAbout.triggered.connect(lambda: about(self)) self.actionCheck_for_Updates.triggered.connect(lambda: checkForUpdates(self)) - self.actionSave_Settings.triggered.connect(self.saveSettings) - self.actionSave_Settings_As.triggered.connect(self.saveSettingsAs) - self.actionLoad_Settings.triggered.connect(self.loadSettings) + self.actionSave_Settings.triggered.connect(lambda: settings.saveSettings) + self.actionSave_Settings_As.triggered.connect(lambda: settings.saveSettingsAs) + self.actionLoad_Settings.triggered.connect(lambda: settings.loadSettings) # disable buttons upon open self.undosplitButton.setEnabled(False) @@ -181,20 +176,20 @@ def __init__(self, parent: Optional[QWidget] = None): # Connecting button clicks to functions self.browseButton.clicked.connect(self.browse) - self.selectregionButton.clicked.connect(self.selectRegion) + self.selectregionButton.clicked.connect(lambda: selectRegion(self)) self.takescreenshotButton.clicked.connect(self.takeScreenshot) self.startautosplitterButton.clicked.connect(self.autoSplitter) self.checkfpsButton.clicked.connect(self.checkFPS) self.resetButton.clicked.connect(self.reset) self.skipsplitButton.clicked.connect(self.skipSplit) self.undosplitButton.clicked.connect(self.undoSplit) - self.setsplithotkeyButton.clicked.connect(self.setSplitHotkey) - self.setresethotkeyButton.clicked.connect(self.setResetHotkey) - self.setskipsplithotkeyButton.clicked.connect(self.setSkipSplitHotkey) - self.setundosplithotkeyButton.clicked.connect(self.setUndoSplitHotkey) - self.setpausehotkeyButton.clicked.connect(self.setPauseHotkey) - self.alignregionButton.clicked.connect(self.alignRegion) - self.selectwindowButton.clicked.connect(self.selectWindow) + self.setsplithotkeyButton.clicked.connect(lambda: setSplitHotkey(self)) + self.setresethotkeyButton.clicked.connect(lambda: setResetHotkey(self)) + self.setskipsplithotkeyButton.clicked.connect(lambda: setSkipSplitHotkey(self)) + self.setundosplithotkeyButton.clicked.connect(lambda: setUndoSplitHotkey(self)) + self.setpausehotkeyButton.clicked.connect(lambda: setPauseHotkey(self)) + self.alignregionButton.clicked.connect(lambda: alignRegion(self)) + self.selectwindowButton.clicked.connect(lambda: selectWindow(self)) self.startImageReloadButton.clicked.connect(lambda: self.loadStartImage(True, True)) # update x, y, width, and height when changing the value of these spinbox's are changed @@ -205,7 +200,7 @@ def __init__(self, parent: Optional[QWidget] = None): # connect signals to functions self.updateCurrentSplitImage.connect(self.updateSplitImageGUI) - self.afterSettingHotkeySignal.connect(self.afterSettingHotkey) + self.afterSettingHotkeySignal.connect(lambda: afterSettingHotkey(self)) self.startAutoSplitterSignal.connect(self.autoSplitter) self.resetSignal.connect(self.reset) self.skipSplitSignal.connect(self.skipSplit) @@ -237,7 +232,7 @@ def browse(self): new_split_image_directory = QFileDialog.getExistingDirectory( self, 'Select Split Image Directory', - os.path.join(self.split_image_directory or auto_split_directory, "..")) + os.path.join(self.split_image_directory or settings.auto_split_directory, "..")) # If the user doesn't select a folder, it defaults to "". if new_split_image_directory: @@ -287,7 +282,7 @@ def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = self.startImageLabel.setText("Start image: not found") QApplication.processEvents() - if not self.validateBeforeComparison(started_by_button): + if not validateBeforeComparison(self, started_by_button): return self.start_image_name = None @@ -410,7 +405,7 @@ def startImageFunction(self): and start_image_similarity < start_image_threshold) \ or (start_image_similarity >= start_image_threshold and not start_image_flags & BELOW_FLAG): def split(): - self.send_command("start") + send_command(self, "start") # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1 / self.fpslimitSpinBox.value()) # type: ignore self.startAutoSplitter() @@ -462,7 +457,7 @@ def updateSplitImageGUI(self, qImage: QtGui.QImage): self.currentSplitImage.setPixmap(pix) def takeScreenshot(self): - if not self.validateBeforeComparison(check_empty_directory=False): + if not validateBeforeComparison(self, check_empty_directory=False): return take_screenshot_filename = '001_SplitImage' @@ -486,7 +481,7 @@ def takeScreenshot(self): # check max FPS button connects here. # TODO: Average on all images and check for transparency (cv2.COLOR_BGRA2RGB and cv2.IMREAD_UNCHANGED) def checkFPS(self): - if not self.validateBeforeComparison(): + if not validateBeforeComparison(self): return split_image_filenames = os.listdir(self.split_image_directory) @@ -494,9 +489,9 @@ def checkFPS(self): cv2.imread(os.path.join(self.split_image_directory, image), cv2.IMREAD_COLOR) for image in split_image_filenames] - for image in split_images: + for i, image in enumerate(split_images): if image is None: - error_messages.imageTypeError(image) + error_messages.imageTypeError(split_image_filenames[i]) return # grab first image in the split image folder @@ -609,7 +604,7 @@ def checkForReset(self): return False def autoSplitter(self): - if not self.validateBeforeComparison(): + if not validateBeforeComparison(self): self.guiChangesOnReset() return @@ -728,7 +723,7 @@ def autoSplitter(self): capture, self.reset_mask) if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") + send_command(self, "reset") self.reset() if self.checkForReset(): @@ -829,7 +824,7 @@ def autoSplitter(self): capture, self.reset_mask) if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") + send_command(self, "reset") self.reset() continue # Email sent to pyqt@riverbankcomputing.com @@ -838,7 +833,7 @@ def autoSplitter(self): self.waiting_for_split_delay = False # if {p} flag hit pause key, otherwise hit split hotkey - self.send_command("pause" if self.flags & PAUSE_FLAG == PAUSE_FLAG else "split") + send_command(self, "pause" if self.flags & PAUSE_FLAG == PAUSE_FLAG else "split") # if loop check box is checked and its the last split, go to first split. # else go to the next split image. @@ -895,7 +890,7 @@ def autoSplitter(self): capture, self.reset_mask) if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") + send_command(self, "reset") self.reset() continue # Email sent to pyqt@riverbankcomputing.com @@ -1112,7 +1107,7 @@ def exitProgram(): if a0 is None: exitProgram() - if self.haveSettingsChanged(): + if settings.haveSettingsChanged(self): # Give a different warning if there was never a settings file that was loaded successfully, # and "save as" instead of "save". settings_file_name = "Untitled" \ diff --git a/src/error_messages.py b/src/error_messages.py index 740ee14f..f0c105c5 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -95,7 +95,8 @@ def checkForUpdatesError(): def loadStartImageError(): - setTextMessage("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. Please set these hotkeys, and then click the Reload Start Image button.") + setTextMessage("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. " + "Please set these hotkeys, and then click the Reload Start Image button.") def stdinLostError(): diff --git a/src/hotkeys.py b/src/hotkeys.py index 56d773b3..a332c37b 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -132,7 +132,7 @@ def setSplitHotkey(autosplit: AutoSplit): autosplit.setsplithotkeyButton.setText('Press a key...') # disable some buttons - autosplit.beforeSettingHotkey() + beforeSettingHotkey(autosplit) # new thread points to callback. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey @@ -190,7 +190,7 @@ def callback(hotkey: Callable[[], None]): def setResetHotkey(autosplit: AutoSplit): autosplit.setresethotkeyButton.setText('Press a key...') - autosplit.beforeSettingHotkey() + beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -221,7 +221,7 @@ def callback(hotkey: Callable[[], None]): def setSkipSplitHotkey(autosplit: AutoSplit): autosplit.setskipsplithotkeyButton.setText('Press a key...') - autosplit.beforeSettingHotkey() + beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -252,7 +252,7 @@ def callback(hotkey: Callable[[], None]): def setUndoSplitHotkey(autosplit: AutoSplit): autosplit.setundosplithotkeyButton.setText('Press a key...') - autosplit.beforeSettingHotkey() + beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -283,7 +283,7 @@ def callback(hotkey: Callable[[], None]): def setPauseHotkey(autosplit: AutoSplit): autosplit.setpausehotkeyButton.setText('Press a key...') - autosplit.beforeSettingHotkey() + beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): try: diff --git a/src/settings_file.py b/src/settings_file.py index 0391405e..a2c6c087 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -54,7 +54,7 @@ def getSaveSettingsValues(autosplit: AutoSplit): def haveSettingsChanged(autosplit: AutoSplit): - autosplit.getSaveSettingsValues() + getSaveSettingsValues(autosplit) current_save_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, @@ -85,9 +85,9 @@ def haveSettingsChanged(autosplit: AutoSplit): def saveSettings(autosplit: AutoSplit): if not autosplit.last_successfully_loaded_settings_file_path: - autosplit.saveSettingsAs() + saveSettingsAs(autosplit) else: - autosplit.getSaveSettingsValues() + getSaveSettingsValues(autosplit) autosplit.last_saved_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, @@ -126,7 +126,7 @@ def saveSettingsAs(autosplit: AutoSplit): if not autosplit.save_settings_file_path: return - autosplit.getSaveSettingsValues() + getSaveSettingsValues(autosplit) autosplit.last_saved_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, From feda2ad66972d3f20e288c8e007ee74913e9d4b2 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 29 Nov 2021 18:54:25 -0500 Subject: [PATCH 04/54] Double quotes and pylint complete linting --- pyproject.toml | 21 ++++-- scripts/lint.ps1 | 8 +- src/AutoControlledWorker.py | 15 ++-- src/AutoSplit.py | 146 +++++++++++++++++++++--------------- src/capture_windows.py | 6 +- src/compare.py | 2 +- src/error_messages.py | 10 +-- src/hotkeys.py | 61 ++++++++------- src/menu_bar.py | 6 +- src/screen_region.py | 27 ++++--- src/settings_file.py | 16 ++-- src/split_parser.py | 54 ++++++------- 12 files changed, 205 insertions(+), 167 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2bd88316..1b9a5ab6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -37,25 +37,28 @@ reportUnknownMemberType = "none" [tool.pylint.MASTER] # https://pylint.pycqa.org/en/latest/technical_reference/extensions.html load-plugins = [ - "pylint.extensions.broad_try_clause", - "pylint.extensions.code_style", "pylint.extensions.emptystring", - "pylint.extensions.comparetozero", - "pylint.extensions.comparison_placement", "pylint.extensions.confusing_elif", - "pylint.extensions.for_any_all", "pylint.extensions.consider_ternary_expression", "pylint.extensions.bad_builtin", "pylint.extensions.mccabe", - "pylint.extensions.docstyle", "pylint.extensions.check_elif", "pylint.extensions.redefined_variable_type", "pylint.extensions.overlapping_exceptions", - "pylint.extensions.docparams", "pylint.extensions.empty_comment", "pylint.extensions.set_membership", "pylint.extensions.typing", - "pylint.extensions.while_used", + # TODO: Maybe later + # "pylint.extensions.docparams", + # Not wanted/needed + # "pylint.extensions.broad_try_clause", + # "pylint.extensions.code_style", + # "pylint.extensions.comparetozero", + # "pylint.extensions.docstyle", + # "pylint.extensions.while_used", + # Didn't work + # "pylint.extensions.comparison_placement", + # "pylint.extensions.for_any_all", ] ignore-paths = [ # Haven't looked into disabling specific rules per file @@ -63,6 +66,8 @@ ignore-paths = [ # Auto generated "^src/gen/.*$", ] +# No need to mention the fixmes +disable=["fixme"] extension-pkg-allow-list = ["PyQt6", "win32ui"] [tool.pylint.FORMAT] diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index be2eaa1c..5d720fbe 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -1,10 +1,10 @@ -echo "`nRunning Pylint..." -pylint --score=n --output-format=text,colorized $(git ls-files '**/*.py*') -# pylint --reports=y --output-format=text,colorized $(git ls-files '**/*.py*') - echo "`nRunning Pyright..." pyright +echo "`nRunning Pylint..." +pylint --score=n --output-format=colorized $(git ls-files '**/*.py*') +# pylint --reports=y --output-format=colorized $(git ls-files '**/*.py*') + echo "`nRunning Bandit..." bandit -f custom --silent --severity-level medium -r . # bandit -n 1 --severity-level medium -r src diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index a29c0910..7ef33a0c 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -5,6 +5,7 @@ from PyQt6 import QtCore import error_messages +import settings_file as settings class AutoControlledWorker(QtCore.QObject): @@ -22,21 +23,21 @@ def run(self): # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" # For now this can only used in a Development environment - if line == 'kill': + if line == "kill": self.autosplit.closeEvent() break - if line == 'start': + if line == "start": self.autosplit.startAutoSplitter() - elif line in ('split', 'skip'): + elif line in {"split", "skip"}: self.autosplit.startSkipSplit() - elif line == 'undo': + elif line == "undo": self.autosplit.startUndoSplit() - elif line == 'reset': + elif line == "reset": self.autosplit.startReset() - elif line.startswith('settings'): + elif line.startswith("settings"): # Allow for any split character between "settings" and the path self.autosplit.load_settings_file_path = line[9:] - self.autosplit.loadSettings(load_settings_from_livesplit=True) + settings.loadSettings(self.autosplit, load_settings_from_livesplit=True) # TODO: Not yet implemented in AutoSplit Integration # elif line == 'pause': # self.startPause() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 09ca69a9..100ee5da 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -7,8 +7,9 @@ # - Externals # - Internals from __future__ import annotations +from collections.abc import Callable from types import FunctionType, TracebackType -from typing import Callable, List, Literal, Optional, Type, Union, cast +from typing import Literal, Optional, Union, cast import sys import os @@ -52,11 +53,11 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): - myappid = f'Toufool.AutoSplit.v{VERSION}' + myappid = f"Toufool.AutoSplit.v{VERSION}" ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) # Parse command line args - is_auto_controlled = '--auto-controlled' in sys.argv + is_auto_controlled = "--auto-controlled" in sys.argv # Signals updateCurrentSplitImage = QtCore.pyqtSignal(QtGui.QImage) @@ -92,7 +93,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): y: int width: int height: int - hwnd_title = '' + hwnd_title = "" group_dummy_splits_undo_skip_setting: Literal[0, 1] loop_setting: Literal[0, 1] auto_start_on_reset_setting: Literal[0, 1] @@ -110,16 +111,16 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): pause_hotkey: Optional[Callable[[], None]] = None # Initialize a few attributes - last_saved_settings: Optional[List[Union[str, float, int]]] = None + last_saved_settings: Optional[list[Union[str, float, int]]] = None save_settings_file_path = "" load_settings_file_path = "" live_image_function_on_open = True - split_image_loop_amount: List[int] = [] + split_image_loop_amount: list[int] = [] split_image_number = 0 loop_number = 1 # Last loaded settings and last successful loaded settings file path to None until we try to load them - last_loaded_settings: Optional[List[Union[str, float, int]]] = None + last_loaded_settings: Optional[list[Union[str, float, int]]] = None last_successfully_loaded_settings_file_path: Optional[str] = None # Automatic timer start @@ -128,6 +129,28 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): highest_similarity = 0.0 check_start_image_timestamp = 0.0 + # Define all other attributes + setting_check_for_updates_on_open: QtCore.QSettings + imageHasTransparency: bool + start_image_split_below_threshold: bool + waiting_for_split_delay: bool + split_below_threshold: bool + split_image_path: str + split_image_filenames: list[str] + split_image_filenames_including_loops: list[str] + split_image_filenames_and_loop_number: list[tuple[str, int, int]] + split_groups: list[list[int]] + run_start_time: float + similarity: float + reset_image_threshold: float + reset_image_pause_time: float + split_delay: int + flags: int + reset_image: Optional[cv2.ndarray] + reset_mask: Optional[cv2.ndarray] + split_image: cv2.ndarray + image_mask: cv2.ndarray + def __init__(self, parent: Optional[QWidget] = None): super().__init__(parent) self.setupUi(self) @@ -172,7 +195,7 @@ def __init__(self, parent: Optional[QWidget] = None): self.update_auto_control.start() # split image folder line edit text - self.splitimagefolderLineEdit.setText('No Folder Selected') + self.splitimagefolderLineEdit.setText("No Folder Selected") # Connecting button clicks to functions self.browseButton.clicked.connect(self.browse) @@ -219,19 +242,19 @@ def __init__(self, parent: Optional[QWidget] = None): self.last_successfully_loaded_settings_file_path = None if not self.is_auto_controlled: - self.loadSettings(load_settings_on_open=True) + settings.loadSettings(self, load_settings_on_open=True) # FUNCTIONS def getGlobalSettingsValues(self): - self.setting_check_for_updates_on_open = QtCore.QSettings('AutoSplit', 'Check For Updates On Open') + self.setting_check_for_updates_on_open = QtCore.QSettings("AutoSplit", "Check For Updates On Open") # TODO add checkbox for going back to image 1 when resetting. def browse(self): # User selects the file with the split images in it. new_split_image_directory = QFileDialog.getExistingDirectory( self, - 'Select Split Image Directory', + "Select Split Image Directory", os.path.join(self.split_image_directory or settings.auto_split_directory, "..")) # If the user doesn't select a folder, it defaults to "". @@ -278,7 +301,7 @@ def liveImageFunction(self): def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = True): self.timerStartImage.stop() - self.currentsplitimagefileLabel.setText(' ') + self.currentsplitimagefileLabel.setText(" ") self.startImageLabel.setText("Start image: not found") QApplication.processEvents() @@ -287,17 +310,17 @@ def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = self.start_image_name = None for image in os.listdir(self.split_image_directory): - if 'start_auto_splitter' in image.lower(): + if "start_auto_splitter" in image.lower(): if self.start_image_name is None: self.start_image_name = image else: if started_by_button: - error_messages.multipleKeywordImagesError('start_auto_splitter') + error_messages.multipleKeywordImagesError("start_auto_splitter") return if self.start_image_name is None: if started_by_button: - error_messages.noKeywordImageError('start_auto_splitter') + error_messages.noKeywordImageError("start_auto_splitter") return if self.start_image_name is not None \ @@ -338,8 +361,8 @@ def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = if not wait_for_delay and start_image_pause is not None and start_image_pause > 0: self.check_start_image_timestamp = time() + start_image_pause self.startImageLabel.setText("Start image: paused") - self.highestsimilarityLabel.setText(' ') - self.currentsimilaritythresholdnumberLabel.setText(' ') + self.highestsimilarityLabel.setText(" ") + self.currentsimilaritythresholdnumberLabel.setText(" ") else: self.check_start_image_timestamp = 0.0 self.startImageLabel.setText("Start image: ready") @@ -359,7 +382,7 @@ def startImageFunction(self): or (not self.splitLineEdit.text() and not self.is_auto_controlled): pause_time_left = f"{self.check_start_image_timestamp - time():.1f}" self.currentSplitImage.setText( - f'None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining') + f"None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining") return if self.check_start_image_timestamp > 0: @@ -382,7 +405,7 @@ def startImageFunction(self): # Show live similarity if the checkbox is checked self.livesimilarityLabel.setText(str(start_image_similarity)[:4] if self.showlivesimilarityCheckBox.isChecked() - else ' ') + else " ") # If the similarity becomes higher than highest similarity, set it as such. if start_image_similarity > self.highest_similarity: @@ -391,7 +414,7 @@ def startImageFunction(self): # Show live highest similarity if the checkbox is checked self.highestsimilarityLabel.setText(str(self.highest_similarity)[:4] if self.showlivesimilarityCheckBox.isChecked() - else ' ') + else " ") # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold @@ -419,7 +442,7 @@ def split(): delay_start_time = time() while time() - delay_start_time < (start_image_delay / 1000): delay_time_left = round((start_image_delay / 1000) - (time() - delay_start_time), 1) - self.currentSplitImage.setText(f'Delayed Before Starting:\n {delay_time_left} sec remaining') + self.currentSplitImage.setText(f"Delayed Before Starting:\n {delay_time_left} sec remaining") # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore @@ -459,7 +482,7 @@ def updateSplitImageGUI(self, qImage: QtGui.QImage): def takeScreenshot(self): if not validateBeforeComparison(self, check_empty_directory=False): return - take_screenshot_filename = '001_SplitImage' + take_screenshot_filename = "001_SplitImage" # check if file exists and rename it if it does # Below starts the FileNameNumber at #001 up to #999. After that it will go to 1000, @@ -522,7 +545,7 @@ def is_current_split_out_of_range(self): def undoSplit(self): # Can't undo until timer is started # or Undoing past the first image - if self.startautosplitterButton.text() == 'Start Auto Splitter' \ + if self.startautosplitterButton.text() == "Start Auto Splitter" \ or "Delayed Split" in self.currentSplitImage.text() \ or (not self.undosplitButton.isEnabled() and not self.is_auto_controlled) \ or self.is_current_split_out_of_range(): @@ -544,7 +567,7 @@ def undoSplit(self): def skipSplit(self): # Can't skip or split until timer is started # or Splitting/skipping when there are no images left - if self.startautosplitterButton.text() == 'Start Auto Splitter' \ + if self.startautosplitterButton.text() == "Start Auto Splitter" \ or "Delayed Split" in self.currentSplitImage.text() \ or (not self.skipsplitButton.isEnabled() and not self.is_auto_controlled) \ or self.is_current_split_out_of_range(): @@ -568,12 +591,12 @@ def skipSplit(self): def reset(self): # When the reset button or hotkey is pressed, it will change this text, # which will trigger in the autoSplitter function, if running, to abort and change GUI. - self.startautosplitterButton.setText('Start Auto Splitter') + self.startautosplitterButton.setText("Start Auto Splitter") # Functions for the hotkeys to return to the main thread from signals and start their corresponding functions def startAutoSplitter(self): # If the auto splitter is already running or the button is disabled, don't emit the signal to start it. - if self.startautosplitterButton.text() == 'Running...' \ + if self.startautosplitterButton.text() == "Running..." \ or (not self.startautosplitterButton.isEnabled() and not self.is_auto_controlled): return @@ -595,7 +618,7 @@ def startPause(self): self.pauseSignal.emit() def checkForReset(self): - if self.startautosplitterButton.text() == 'Start Auto Splitter': + if self.startautosplitterButton.text() == "Start Auto Splitter": if self.autostartonresetCheckBox.isChecked(): self.startAutoSplitterSignal.emit() else: @@ -633,7 +656,7 @@ def autoSplitter(self): in self.split_image_filenames] # construct a list of filenames, each filename copied with # of loops it has. - self.split_image_filenames_including_loops: List[str] = [] + self.split_image_filenames_including_loops: list[str] = [] for i, filename in enumerate(self.split_image_filenames): current_loop = 1 while split_image_loop_amount[i] >= current_loop: @@ -641,7 +664,7 @@ def autoSplitter(self): current_loop = current_loop + 1 # construct a list of corresponding loop number to the filenames - loop_numbers: List[int] = [] + loop_numbers: list[int] = [] loop_count = 1 for i, filename in enumerate(self.split_image_filenames_including_loops): if i == 0: @@ -660,9 +683,9 @@ def autoSplitter(self): ] # construct groups of splits if needed - self.split_groups: List[List[int]] = [] + self.split_groups: list[list[int]] = [] if self.groupDummySplitsCheckBox.isChecked(): - current_group: List[int] = [] + current_group: list[int] = [] self.split_groups.append(current_group) for i, image in enumerate(self.split_image_filenames_including_loops): @@ -745,7 +768,7 @@ def autoSplitter(self): if self.showlivesimilarityCheckBox.isChecked(): self.livesimilarityLabel.setText(str(self.similarity)[:4]) else: - self.livesimilarityLabel.setText(' ') + self.livesimilarityLabel.setText(" ") # if the similarity becomes higher than highest similarity, set it as such. if self.similarity > self.highest_similarity: @@ -755,7 +778,7 @@ def autoSplitter(self): if self.showhighestsimilarityCheckBox.isChecked(): self.highestsimilarityLabel.setText(str(self.highest_similarity)[:4]) else: - self.highestsimilarityLabel.setText(' ') + self.highestsimilarityLabel.setText(" ") if not self.is_auto_controlled: # if its the last split image or can't skip due to grouped dummy splits, disable skip split button @@ -771,14 +794,14 @@ def autoSplitter(self): # then split on similarity below threshold. # if no b flag, just split when similarity goes above threshold. if not self.waiting_for_split_delay: - if self.flags & BELOW_FLAG == BELOW_FLAG and not self.split_below_threshold: - if self.similarity >= self.similarity_threshold: + if self.flags & BELOW_FLAG == BELOW_FLAG: + if self.split_below_threshold: + if self.similarity < self.similarity_threshold: + self.split_below_threshold = False + break + elif self.similarity >= self.similarity_threshold: self.split_below_threshold = True continue - elif self.flags & BELOW_FLAG == BELOW_FLAG and self.split_below_threshold: - if self.similarity < self.similarity_threshold: - self.split_below_threshold = False - break elif self.similarity >= self.similarity_threshold: break @@ -800,14 +823,14 @@ def autoSplitter(self): self.waiting_for_split_delay = True self.undosplitButton.setEnabled(False) self.skipsplitButton.setEnabled(False) - self.currentsplitimagefileLabel.setText(' ') + self.currentsplitimagefileLabel.setText(" ") # check for reset while delayed and display a counter of the remaining split delay time delay_start_time = time() split_delay = self.split_delay / 1000 while time() - delay_start_time < split_delay: delay_time_left = round(split_delay - (time() - delay_start_time), 1) - self.currentSplitImage.setText(f'Delayed Split: {delay_time_left} sec remaining') + self.currentSplitImage.setText(f"Delayed Split: {delay_time_left} sec remaining") # check for reset if not windowText: self.reset() @@ -863,12 +886,12 @@ def autoSplitter(self): # A pause loop to check if the user presses skip split, undo split, or reset here. # Also updates the current split image text, counting down the time until the next split image if self.pause > 0: - self.currentsplitimagefileLabel.setText(' ') - self.imageloopLabel.setText('Image Loop: -') + self.currentsplitimagefileLabel.setText(" ") + self.imageloopLabel.setText("Image Loop: -") pause_start_time = time() while time() - pause_start_time < self.pause: pause_time_left = round(self.pause - (time() - pause_start_time), 1) - self.currentSplitImage.setText(f'None (Paused). {pause_time_left} sec remaining') + self.currentSplitImage.setText(f"None (Paused). {pause_time_left} sec remaining") # check for reset if not windowText: @@ -901,7 +924,7 @@ def autoSplitter(self): def guiChangesOnStart(self): self.timerStartImage.stop() - self.startautosplitterButton.setText('Running...') + self.startautosplitterButton.setText("Running...") self.browseButton.setEnabled(False) self.groupDummySplitsCheckBox.setEnabled(False) self.startImageReloadButton.setEnabled(False) @@ -920,13 +943,13 @@ def guiChangesOnStart(self): QApplication.processEvents() def guiChangesOnReset(self): - self.startautosplitterButton.setText('Start Auto Splitter') - self.imageloopLabel.setText('Image Loop: -') - self.currentSplitImage.setText(' ') - self.currentsplitimagefileLabel.setText(' ') - self.livesimilarityLabel.setText(' ') - self.highestsimilarityLabel.setText(' ') - self.currentsimilaritythresholdnumberLabel.setText(' ') + self.startautosplitterButton.setText("Start Auto Splitter") + self.imageloopLabel.setText("Image Loop: -") + self.currentSplitImage.setText(" ") + self.currentsplitimagefileLabel.setText(" ") + self.livesimilarityLabel.setText(" ") + self.highestsimilarityLabel.setText(" ") + self.currentsimilaritythresholdnumberLabel.setText(" ") self.browseButton.setEnabled(True) self.groupDummySplitsCheckBox.setEnabled(True) self.startImageReloadButton.setEnabled(True) @@ -956,8 +979,8 @@ def shouldCheckResetImage(self): return self.reset_image is not None and time() - self.run_start_time > self.reset_image_pause_time def findResetImage(self): - self.reset_image: Optional[cv2.ndarray] = None - self.reset_mask: Optional[cv2.ndarray] = None + self.reset_image = None + self.reset_mask = None reset_image_file = None for image in self.split_image_filenames: @@ -1003,7 +1026,7 @@ def findResetImage(self): self.reset_image = cv2.imread(path, cv2.IMREAD_COLOR) self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = False): + def updateSplitImage(self, custom_image_file: str = "", from_start_image: bool = False): # Splitting/skipping when there are no images left or Undoing past the first image # Start image is expected to be out of range (index 0 of 0-length array) if "START_AUTO_SPLITTER" not in custom_image_file.upper() and self.is_current_split_out_of_range(): @@ -1027,7 +1050,6 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = split_image_display = copy(self.split_image) # Transform transparency into UI's gray BG color transparent_mask = split_image_display[:, :, 3] == 0 - split_image_display[:, :, 3] == 0 split_image_display[transparent_mask] = [240, 240, 240, MAXBYTE] split_image_display = cv2.cvtColor(split_image_display, cv2.COLOR_BGRA2RGB) @@ -1088,7 +1110,7 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = def closeEvent(self, a0: Optional[QtGui.QCloseEvent] = None): # save global setting values here - self.setting_check_for_updates_on_open.setValue('check_for_updates_on_open', + self.setting_check_for_updates_on_open.setValue("check_for_updates_on_open", self.actionCheck_for_Updates_on_Open.isChecked()) def exitProgram(): @@ -1136,7 +1158,7 @@ def exitProgram(): def main(): app = QApplication(sys.argv) try: - app.setWindowIcon(QtGui.QIcon(':/resources/icon.ico')) + app.setWindowIcon(QtGui.QIcon(":/resources/icon.ico")) main_window = AutoSplit() main_window.show() # Needs to be after main_window.show() to be shown over @@ -1149,9 +1171,9 @@ def main(): timer.start(500) exit_code = app.exec() - except Exception as exception: + except Exception as exception: # pylint: disable=broad-except # Print error to console if not running in executable - if getattr(sys, 'frozen', False): + if getattr(sys, "frozen", False): error_messages.exceptionTraceback( f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}", exception) @@ -1165,7 +1187,7 @@ def main(): sys.exit(exit_code) -def excepthook(exceptionType: Type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): +def excepthook(exceptionType: type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): # Catch Keyboard Interrupts for a clean close if exceptionType is KeyboardInterrupt: sys.exit(0) @@ -1175,6 +1197,6 @@ def excepthook(exceptionType: Type[BaseException], exception: BaseException, _tr exception) -if __name__ == '__main__': +if __name__ == "__main__": sys.excepthook = excepthook main() diff --git a/src/capture_windows.py b/src/capture_windows.py index cbcda017..b0d064f0 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import Dict, cast +from typing import cast import ctypes import ctypes.wintypes @@ -17,7 +17,7 @@ # This is an undocumented nFlag value for PrintWindow PW_RENDERFULLCONTENT = 0x00000002 -accelerated_windows: Dict[int, bool] = {} +accelerated_windows: dict[int, bool] = {} is_windows_11 = version.parse(platform.version()) >= version.parse("10.0.22000") @@ -79,7 +79,7 @@ def __get_image(hwnd: int, selection: Rect, print_window: bool = False): except (win32ui.error, pywintypes.error): # type: ignore return np.array([0, 0, 0, 1], dtype="uint8") - image: cv2.ndarray = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype='uint8') + image: cv2.ndarray = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") image.shape = (height, width, 4) try: diff --git a/src/compare.py b/src/compare.py index b1c89fd8..6d58c63e 100644 --- a/src/compare.py +++ b/src/compare.py @@ -123,7 +123,7 @@ def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2. return 1 - (hash_diff / 64.0) -def checkIfImageHasTransparency(image: cv2.ndarray): +def checkIfImageHasTransparency(image: cv2.ndarray) -> bool: # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) if image.shape[2] != 4: return False diff --git a/src/error_messages.py b/src/error_messages.py index f0c105c5..bad19bd9 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -3,9 +3,9 @@ from PyQt6 import QtCore, QtWidgets -def setTextMessage(message: str, details: str = ''): +def setTextMessage(message: str, details: str = ""): messageBox = QtWidgets.QMessageBox() - messageBox.setWindowTitle('Error') + messageBox.setWindowTitle("Error") messageBox.setTextFormat(QtCore.Qt.TextFormat.RichText) messageBox.setText(message) if details: @@ -30,7 +30,7 @@ def splitImageDirectoryEmpty(): def imageTypeError(image: str): - setTextMessage(f"\"{image}\" is not a valid image file, does not exist, " + setTextMessage(f'"{image}" is not a valid image file, does not exist, ' "or the full image file path contains a special character.") @@ -57,11 +57,11 @@ def alignmentNotMatchedError(): def noKeywordImageError(keyword: str): - setTextMessage(f"Your split image folder does not contain an image with the keyword \"{keyword}\".") + setTextMessage(f'Your split image folder does not contain an image with the keyword "{keyword}".') def multipleKeywordImagesError(keyword: str): - setTextMessage(f"Only one image with the keyword \"{keyword}\" is allowed.") + setTextMessage(f'Only one image with the keyword "{keyword}" is allowed.') def resetHotkeyError(): diff --git a/src/hotkeys.py b/src/hotkeys.py index a332c37b..b586272b 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,5 +1,6 @@ from __future__ import annotations -from typing import Optional, Callable, TYPE_CHECKING, Union +from typing import Optional, TYPE_CHECKING, Union +from collections.abc import Callable if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -24,11 +25,11 @@ def beforeSettingHotkey(autosplit: AutoSplit): # do all of these things after you set a hotkey. a signal connects to this because # changing GUI stuff in the hotkey thread was causing problems def afterSettingHotkey(autosplit: AutoSplit): - autosplit.setsplithotkeyButton.setText('Set Hotkey') - autosplit.setresethotkeyButton.setText('Set Hotkey') - autosplit.setskipsplithotkeyButton.setText('Set Hotkey') - autosplit.setundosplithotkeyButton.setText('Set Hotkey') - autosplit.setpausehotkeyButton.setText('Set Hotkey') + autosplit.setsplithotkeyButton.setText("Set Hotkey") + autosplit.setresethotkeyButton.setText("Set Hotkey") + autosplit.setskipsplithotkeyButton.setText("Set Hotkey") + autosplit.setundosplithotkeyButton.setText("Set Hotkey") + autosplit.setpausehotkeyButton.setText("Set Hotkey") autosplit.startautosplitterButton.setEnabled(True) autosplit.setsplithotkeyButton.setEnabled(True) autosplit.setresethotkeyButton.setEnabled(True) @@ -49,15 +50,14 @@ def is_digit(key: Optional[str]): def send_command(autosplit: AutoSplit, command: str): if autosplit.is_auto_controlled: print(command, flush=True) + elif command in {"split", "start"}: + _send_hotkey(autosplit.splitLineEdit.text()) + elif command == "pause": + _send_hotkey(autosplit.pausehotkeyLineEdit.text()) + elif command == "reset": + _send_hotkey(autosplit.resetLineEdit.text()) else: - if command in ("split", "start"): - _send_hotkey(autosplit.splitLineEdit.text()) - elif command == "pause": - _send_hotkey(autosplit.pausehotkeyLineEdit.text()) - elif command == "reset": - _send_hotkey(autosplit.resetLineEdit.text()) - else: - raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") + raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") # Supports sending the appropriate scan code for all the special cases @@ -67,20 +67,19 @@ def _send_hotkey(key_or_scan_code: Union[int, str]): # Deal with regular inputs if isinstance(key_or_scan_code, int) \ - or not (key_or_scan_code.startswith('num ') or key_or_scan_code == 'decimal'): + or not (key_or_scan_code.startswith("num ") or key_or_scan_code == "decimal"): keyboard.send(key_or_scan_code) - keyboard.key_to_scan_codes return - # Deal with problematic keys. Even by sending specific scan code 'keyboard' still sends the default (wrong) key + # Deal with problematic keys. Even by sending specific scan code "keyboard" still sends the default (wrong) key # keyboard.send(keyboard.key_to_scan_codes(key_or_scan_code)[1]) - pyautogui.hotkey(key_or_scan_code.replace(' ', '')) + pyautogui.hotkey(key_or_scan_code.replace(" ", "")) def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # Prevent "(keypad)delete", "(keypad)./decimal" and "del" from triggering each other # as well as "." and "(keypad)./decimal" - if keyboard_event.scan_code in (83, 52): + if keyboard_event.scan_code in {83, 52}: # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) return expected_key == keyboard_event.name # Prevent "action keys" from triggering "keypad keys" @@ -99,11 +98,11 @@ def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # Windows reports different physical keys with the same scan code. # For example, "Home", "Num Home" and "Num 7" are all "71". # See: https://github.com/boppreh/keyboard/issues/171#issuecomment-390437684 -# + # We're doing the check here instead of saving the key code because it'll # cause issues with save files and the non-keypad shared keys are localized # while the keypad ones aren't. -# + # Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". # We're also trying to achieve the same hotkey behaviour as LiveSplit has. def _hotkey_action(keyboard_event: KeyboardEvent, key_name: str, action: Callable[[], None]): @@ -129,7 +128,7 @@ def __is_key_already_set(autosplit: AutoSplit, key_name: str): # TODO: Refactor to de-duplicate all this code, including settings_file.py # Going to comment on one func, and others will be similar. def setSplitHotkey(autosplit: AutoSplit): - autosplit.setsplithotkeyButton.setText('Press a key...') + autosplit.setsplithotkeyButton.setText("Press a key...") # disable some buttons beforeSettingHotkey(autosplit) @@ -163,7 +162,7 @@ def callback(hotkey: Callable[[], None]): # hotkey. A try and except is needed if a hotkey hasn't been set yet. I'm not # allowing for these multiple-key hotkeys because it can cause crashes, and # not many people are going to really use or need this. - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: @@ -189,7 +188,7 @@ def callback(hotkey: Callable[[], None]): def setResetHotkey(autosplit: AutoSplit): - autosplit.setresethotkeyButton.setText('Press a key...') + autosplit.setresethotkeyButton.setText("Press a key...") beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): @@ -201,7 +200,7 @@ def callback(hotkey: Callable[[], None]): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: @@ -220,7 +219,7 @@ def callback(hotkey: Callable[[], None]): def setSkipSplitHotkey(autosplit: AutoSplit): - autosplit.setskipsplithotkeyButton.setText('Press a key...') + autosplit.setskipsplithotkeyButton.setText("Press a key...") beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): @@ -232,7 +231,7 @@ def callback(hotkey: Callable[[], None]): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: @@ -251,7 +250,7 @@ def callback(hotkey: Callable[[], None]): def setUndoSplitHotkey(autosplit: AutoSplit): - autosplit.setundosplithotkeyButton.setText('Press a key...') + autosplit.setundosplithotkeyButton.setText("Press a key...") beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): @@ -263,7 +262,7 @@ def callback(hotkey: Callable[[], None]): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: @@ -282,7 +281,7 @@ def callback(hotkey: Callable[[], None]): def setPauseHotkey(autosplit: AutoSplit): - autosplit.setpausehotkeyButton.setText('Press a key...') + autosplit.setpausehotkeyButton.setText("Press a key...") beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): @@ -294,7 +293,7 @@ def callback(hotkey: Callable[[], None]): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: diff --git a/src/menu_bar.py b/src/menu_bar.py index 7042e290..cf67f09d 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -53,7 +53,7 @@ def __init__(self, latest_version: str, autosplit: AutoSplit, check_for_updates_ def openUpdate(self): if self.checkBoxDoNotAskMeAgain.isChecked(): self.autosplit.actionCheck_for_Updates_on_Open.setChecked(False) - os.system("start \"\" https://github.com/Toufool/Auto-Split/releases/latest") + os.system('start "" https://github.com/Toufool/Auto-Split/releases/latest') self.close() def closeWindow(self): @@ -63,7 +63,7 @@ def closeWindow(self): def viewHelp(): - os.system("start \"\" https://github.com/Toufool/Auto-Split#tutorial") + os.system('start "" https://github.com/Toufool/Auto-Split#tutorial') def about(autosplit: AutoSplit): @@ -74,7 +74,7 @@ def checkForUpdates(autosplit: AutoSplit, check_for_updates_on_open: bool = Fals try: response = requests.get("https://api.github.com/repos/Toufool/Auto-Split/releases/latest") latest_version = response.json()["name"].split("v")[1] - except Exception: + except requests.exceptions.RequestException: if not check_for_updates_on_open: error_messages.checkForUpdatesError() else: diff --git a/src/screen_region.py b/src/screen_region.py index 05fceb50..29d8817b 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import Tuple, cast, TYPE_CHECKING +from typing import cast, TYPE_CHECKING if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -84,12 +84,12 @@ def selectWindow(autosplit: AutoSplit): # Need to wait until the user has selected a region using the widget before moving on with # selecting the window settings - while selector.x == -1 and selector.y == -1: + while selector.x() == -1 and selector.y() == -1: # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore # Grab the window handle from the coordinates selected by the widget - autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.x, selector.y))) + autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.x(), selector.y()))) del selector @@ -111,7 +111,7 @@ def selectWindow(autosplit: AutoSplit): # also the top bar with the window name is not accounted for # I hardcoded the x and y coordinates to fix this # This is not an ideal solution because it assumes every window will have a top bar - selection: Tuple[int, int, int, int] = win32gui.GetClientRect(autosplit.hwnd) + selection: tuple[int, int, int, int] = win32gui.GetClientRect(autosplit.hwnd) autosplit.selection.left = 8 autosplit.selection.top = 31 autosplit.selection.right = 8 + selection[2] @@ -235,7 +235,7 @@ def __init__(self): user32.GetSystemMetrics(SM_YVIRTUALSCREEN), user32.GetSystemMetrics(SM_CXVIRTUALSCREEN), user32.GetSystemMetrics(SM_CYVIRTUALSCREEN)) - self.setWindowTitle(' ') + self.setWindowTitle(" ") self.setWindowOpacity(0.5) self.setWindowFlags(QtCore.Qt.WindowType.FramelessWindowHint) self.show() @@ -247,9 +247,18 @@ def keyPressEvent(self, a0: QtGui.QKeyEvent): # Widget to select a window and obtain its bounds class SelectWindowWidget(BaseSelectWidget): + __x = -1 + __y = -1 + + def x(self): + return self.__x + + def y(self): + return self.__y + def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): - self.x = lambda: int(a0.position().x()) + self.geometry().x() - self.y = lambda: int(a0.position().y()) + self.geometry().y() + self.__x = int(a0.position().x()) + self.geometry().x() + self.__y = int(a0.position().y()) + self.geometry().y() self.close() @@ -276,8 +285,8 @@ def width(self): def paintEvent(self, a0: QtGui.QPaintEvent): if self.__begin != self.__end: qPainter = QtGui.QPainter(self) - qPainter.setPen(QtGui.QPen(QtGui.QColor('red'), 2)) - qPainter.setBrush(QtGui.QColor('opaque')) + qPainter.setPen(QtGui.QPen(QtGui.QColor("red"), 2)) + qPainter.setBrush(QtGui.QColor("opaque")) qPainter.drawRect(QtCore.QRect(self.__begin, self.__end)) def mousePressEvent(self, a0: QtGui.QMouseEvent): diff --git a/src/settings_file.py b/src/settings_file.py index a2c6c087..3948c596 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, List, Literal, cast +from typing import TYPE_CHECKING, Any, Literal, cast if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -14,14 +14,14 @@ from hotkeys import _hotkey_action # Get the directory of either AutoSplit.exe or AutoSplit.py -auto_split_directory = os.path.dirname(sys.executable if getattr(sys, 'frozen', False) else os.path.abspath(__file__)) +auto_split_directory = os.path.dirname(sys.executable if getattr(sys, "frozen", False) else os.path.abspath(__file__)) def loadPyQtSettings(autosplit: AutoSplit): # These are only global settings values. They are not *pkl settings values. autosplit.getGlobalSettingsValues() check_for_updates_on_open = autosplit.setting_check_for_updates_on_open.value( - 'check_for_updates_on_open', + "check_for_updates_on_open", True, type=bool) autosplit.actionCheck_for_Updates_on_Open.setChecked(check_for_updates_on_open) @@ -110,7 +110,7 @@ def saveSettings(autosplit: AutoSplit): autosplit.loop_setting, autosplit.auto_start_on_reset_setting] # save settings to a .pkl file - with open(autosplit.last_successfully_loaded_settings_file_path, 'wb') as f: + with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as f: pickle.dump(autosplit.last_saved_settings, f) @@ -150,7 +150,7 @@ def saveSettingsAs(autosplit: AutoSplit): autosplit.auto_start_on_reset_setting] # save settings to a .pkl file - with open(autosplit.save_settings_file_path, 'wb') as f: + with open(autosplit.save_settings_file_path, "wb") as f: pickle.dump(autosplit.last_saved_settings, f) # Wording is kinda off here but this needs to be here for an edge case: @@ -188,15 +188,15 @@ def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load return try: - with open(autosplit.load_settings_file_path, 'rb') as f: - settings: List[Any] = pickle.load(f) + with open(autosplit.load_settings_file_path, "rb") as f: + settings: list[Any] = pickle.load(f) settings_count = len(settings) if settings_count < 18: autosplit.showErrorSignal.emit(error_messages.oldVersionSettingsFileError) return # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting if settings_count == 18: - settings.insert(9, '') + settings.insert(9, "") settings.insert(20, 0) # v1.5 settings elif settings_count != 20: diff --git a/src/split_parser.py b/src/split_parser.py index 1932878c..5e24c78a 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -1,9 +1,11 @@ -import os -from typing import List +from __future__ import annotations +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from AutoSplit import AutoSplit +import os import cv2 -from AutoSplit import AutoSplit import error_messages @@ -27,8 +29,8 @@ def threshold_from_filename(filename: str): # Check to make sure there is a valid floating point number between # parentheses of the filename try: - threshold = float(filename.split('(', 1)[1].split(')')[0]) - except Exception: + threshold = float(filename.split("(", 1)[1].split(")")[0]) + except (IndexError, ValueError): return None # Check to make sure if it is a valid threshold @@ -47,8 +49,8 @@ def pause_from_filename(filename: str): # Check to make sure there is a valid pause time between brackets # of the filename try: - pause = float(filename.split('[', 1)[1].split(']')[0]) - except Exception: + pause = float(filename.split("[", 1)[1].split("]")[0]) + except (IndexError, ValueError): return None # Pause times should always be positive or zero @@ -67,8 +69,8 @@ def delay_from_filename(filename: str): # Check to make sure there is a valid delay time between brackets # of the filename try: - delay = float(filename.split('#', 1)[1].split('#')[0]) - except Exception: + delay = float(filename.split("#", 1)[1].split("#")[0]) + except (IndexError, ValueError): return 0.0 # Delay times should always be positive or zero @@ -87,8 +89,8 @@ def loop_from_filename(filename: str): # Check to make sure there is a valid delay time between brackets # of the filename try: - loop = int(filename.split('@', 1)[1].split('@')[0]) - except Exception: + loop = int(filename.split("@", 1)[1].split("@")[0]) + except (IndexError, ValueError): return 1 # Loop should always be positive @@ -102,29 +104,29 @@ def flags_from_filename(filename: str): @param filename: String containing the file's name @return: The flags as an integer, if invalid flags are found it returns 0 - List of flags: - 'd' = dummy, do nothing when this split is found - 'b' = below threshold, after threshold is met, split when it goes below the threhsold. - 'p' = pause, hit pause key when this split is found + list of flags: + "d" = dummy, do nothing when this split is found + "b" = below threshold, after threshold is met, split when it goes below the threhsold. + "p" = pause, hit pause key when this split is found """ # Check to make sure there are flags between curly braces # of the filename try: - flags_str = filename.split('{', 1)[1].split('}')[0] - except Exception: + flags_str = filename.split("{", 1)[1].split("}")[0] + except (IndexError, ValueError): return 0 flags = 0x00 for c in flags_str: - if c.upper() == 'D': + if c.upper() == "D": flags |= DUMMY_FLAG - elif c.upper() == 'M': + elif c.upper() == "M": flags |= MASK_FLAG - elif c.upper() == 'B': + elif c.upper() == "B": flags |= BELOW_FLAG - elif c.upper() == 'P': + elif c.upper() == "P": flags |= PAUSE_FLAG else: # An invalid flag was caught, this filename was written incorrectly @@ -146,7 +148,7 @@ def is_reset_image(filename: str): @param filename: String containing the file's name @return: True if its a reset image """ - return 'RESET' in filename.upper() + return "RESET" in filename.upper() def is_start_auto_splitter_image(filename: str): @@ -156,10 +158,10 @@ def is_start_auto_splitter_image(filename: str): @param filename: String containing the file's name @return: True if its a reset image """ - return 'START_AUTO_SPLITTER' in filename.upper() + return "START_AUTO_SPLITTER" in filename.upper() -def removeStartAutoSplitterImage(split_image_filenames: List[str]): +def removeStartAutoSplitterImage(split_image_filenames: list[str]): start_auto_splitter_image_file = None for image in split_image_filenames: if is_start_auto_splitter_image(image): @@ -207,7 +209,7 @@ def validate_images_before_parsing(autosplit: AutoSplit): return if already_found_reset_image: autosplit.guiChangesOnReset() - error_messages.multipleKeywordImagesError('reset') + error_messages.multipleKeywordImagesError("reset") return already_found_reset_image = True @@ -215,6 +217,6 @@ def validate_images_before_parsing(autosplit: AutoSplit): if is_start_auto_splitter_image(image): if already_found_start_image: autosplit.guiChangesOnReset() - error_messages.multipleKeywordImagesError('start_auto_splitter') + error_messages.multipleKeywordImagesError("start_auto_splitter") return already_found_start_image = True From 09b34fccaa5aa1c7682d33ec3dfa0b9ebfcad43d Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 30 Nov 2021 00:33:14 -0500 Subject: [PATCH 05/54] Configured linting workflow --- .flake8 | 5 +- .github/workflows/build-and-lint.yml | 111 + .mypy.ini | 33 - .pylintrc | 23 - .vscode/extensions.json | 9 +- .vscode/settings.json | 16 +- README.md | 2 +- pyproject.toml | 96 + pyrightconfig.json | 19 - res/design.ui | 46 +- scripts/Qt Designer.lnk | Bin 2255 -> 0 bytes scripts/install.bat | 2 - scripts/lint.ps1 | 15 +- scripts/requirements.txt | 16 +- src/AutoControlledWorker.py | 15 +- src/AutoSplit.py | 239 +- src/capture_windows.py | 10 +- src/compare.py | 10 +- src/error_messages.py | 13 +- src/gen/about.pyi | 2 +- src/gen/design.pyi | 2 +- src/gen/update_checker.pyi | 2 +- src/hotkeys.py | 71 +- src/menu_bar.py | 6 +- src/screen_region.py | 32 +- src/settings_file.py | 102 +- src/split_parser.py | 54 +- .../win32con.pyi => win32con/__init__.pyi} | 4 + .../__init__.pyi} | 5970 +++++++++-------- 29 files changed, 3577 insertions(+), 3348 deletions(-) create mode 100644 .github/workflows/build-and-lint.yml delete mode 100644 .mypy.ini delete mode 100644 .pylintrc create mode 100644 pyproject.toml delete mode 100644 pyrightconfig.json delete mode 100644 scripts/Qt Designer.lnk rename typings/{win32helper/win32con.pyi => win32con/__init__.pyi} (99%) rename typings/{win32helper/win32typing.pyi => win32typing/__init__.pyi} (96%) diff --git a/.flake8 b/.flake8 index a5dfe806..e6aff2b6 100644 --- a/.flake8 +++ b/.flake8 @@ -1,8 +1,6 @@ [flake8] color=always max-line-length=120 -; TODO: Bring WAY down -max-complexity=55 ; Auto generated exclude=src/gen/ ; TODO: We want to configure this @@ -12,3 +10,6 @@ per-file-ignores = ; line too long ; mixed case __init__.pyi:F401,E501,N816 +; TODO: Bring WAY down +max-complexity=55 +inline-quotes = " diff --git a/.github/workflows/build-and-lint.yml b/.github/workflows/build-and-lint.yml new file mode 100644 index 00000000..ae10b564 --- /dev/null +++ b/.github/workflows/build-and-lint.yml @@ -0,0 +1,111 @@ +# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions +name: Build and lint +on: + push: + branches: + - main + - master + - 2.0.0 + pull_request: + branches: + - main + - master + - dev + - dev* +jobs: + Pyright: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Node + uses: actions/setup-node@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + npm install -g pyright + - run: scripts/compile_resources.bat + - name: Analysing the code with ${{ job.name }} + run: pyright + Pylint: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + - run: scripts/compile_resources.bat + - name: Analysing the code with ${{ job.name }} + run: pylint --reports=y --output-format=colorized $(git ls-files '**/*.py*') + Bandit: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + - run: scripts/compile_resources.bat + - name: Analysing the code with ${{ job.name }} + run: bandit -n 1 --severity-level medium --recursive src + Flake8: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + - run: scripts/compile_resources.bat + - name: Analysing the code with ${{ job.name }} + run: flake8 + Build: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + - run: scripts/build.bat diff --git a/.mypy.ini b/.mypy.ini deleted file mode 100644 index 6b23dbbd..00000000 --- a/.mypy.ini +++ /dev/null @@ -1,33 +0,0 @@ -; https://mypy.readthedocs.io/en/stable/command_line.html#disallow-dynamic-typing -[mypy] -show_column_numbers=True -show_error_codes=True -no_color_output=False -color_output=True - -ignore_missing_imports=True -follow_imports=silent - -; Note: exclude is ignored when linting file by file so VSCode will still show errors in typings -; typings are incomplete as we only add types for what we need, cannot disable specific rules per file -; Auto generated -exclude=(typings/|src/gen/) - -; Redundant -disallow_untyped_defs=False -; Doesn't see our cv2 type stubs -warn_return_any=False -; False positives when it's needed for other linting libraries -warn_unused_ignores=False -; Doesn't see imports from src/gen/ -disallow_any_unimported=False -disallow_subclassing_any=False -; False positives with ndarray -disable_error_code=no-untyped-def - -strict=True -; Doesn't see types from some imports -disallow_any_expr=False -disallow_any_decorated=True -disallow_any_explicit=True -warn_unreachable=True diff --git a/.pylintrc b/.pylintrc deleted file mode 100644 index 8bd9be7a..00000000 --- a/.pylintrc +++ /dev/null @@ -1,23 +0,0 @@ -; http://pylint-messages.wikidot.com/all-codes -[MASTER] -max-line-length=120 -ignore-paths= - ; Haven't looked into disabling specific rules per file - ^typings/.*$, - ; Auto generated - ^src/gen/.*$ -disable= - missing-docstring, - ; TODO: We want to configure this - ; https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles - invalid-name, - ; We group imports - wrong-import-position, - ; Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride - unused-argument, - ; Already taken care of by Flake8 - unused-import, -extension-pkg-allow-list=PyQt6,win32ui - -[TYPECHECK] -generated-members=cv2 diff --git a/.vscode/extensions.json b/.vscode/extensions.json index ca9b77ca..d4464eda 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,11 +1,12 @@ { "recommendations": [ - "ms-python.vscode-pylance", - "ms-python.python", - "sonarsource.sonarlint-vscode", + "bungcip.better-toml", "davidanson.vscode-markdownlint", + "eamodio.gitlens", + "ms-python.python", + "ms-python.vscode-pylance", "shardulm94.trailing-spaces", - "eamodio.gitlens" + "sonarsource.sonarlint-vscode" ], "unwantedRecommendations": [ "ms-pyright.pyright", diff --git a/.vscode/settings.json b/.vscode/settings.json index 2f06bd99..5336311a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,9 +13,11 @@ "[python]": { "editor.tabSize": 4, "editor.rulers": [ - 79, - 100, - 120, + 72, // PEP8-17 docstrings + // 79, // PEP8-17 default max + // 88, // Black default + 99, // PEP8-17 acceptable max + 120, // Our hard rule ] }, "editor.formatOnSave": true, @@ -23,16 +25,14 @@ "source.fixAll": true, "source.fixAll.markdownlint": true, }, - // Set to trace when sending error reports to Pylance - // "python.analysis.logLevel": "Trace", - // https://code.visualstudio.com/docs/python/linting#_specific-linters "python.linting.enabled": true, "python.linting.pylintEnabled": true, "python.linting.pylintCategorySeverity.convention": "Warning", "python.linting.pylintCategorySeverity.refactor": "Warning", "python.linting.flake8Enabled": true, "python.linting.flake8CategorySeverity.E": "Warning", - "python.linting.mypyEnabled": true, + // PyRight obsoletes mypy + "python.linting.mypyEnabled": false, // Is already wrapped by Flake8, prospector and pylama "python.linting.pycodestyleEnabled": false, // Just another wrapper, use Flake8 OR this @@ -66,5 +66,5 @@ "**/bower_components": true, "**/*.code-search": true, "typings": true, - } + }, } diff --git a/README.md b/README.md index f11ae3e3..7a4896bc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# LiveSplit AutoSplit +# LiveSplit AutoSplit [![Build and lint](/../../actions/workflows/build-and-lint.yml/badge.svg)](/../../actions/workflows/build-and-lint.yml) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=security_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) Easy to use image comparison based auto splitter for speedrunning on console or PC. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..4a532389 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,96 @@ +# https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file +[tool.black] +line-length = 120 +# Auto generated +force-exclude = "src/gen/.*\\.py$" + +# https://github.com/hhatto/autopep8#usage +# https://github.com/hhatto/autopep8#more-advanced-usage +[tool.autopep8] +max_line_length = 120 +recursive = true +aggressive = 3 + +# https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file +[tool.pyright] +pythonPlatform = "Windows" +typeCheckingMode = "strict" +stubPath = "typings/" +ignore = [ + # Auto generated + "src/gen/", + "typings/", +] +reportMissingTypeStubs = "information" +# False positives with TYPE_CHECKING +reportImportCycles = "information" +# PyQt .connect +reportFunctionMemberAccess = "information" +# Extra runtime safety +reportUnnecessaryComparison = "warning" +# Flake8 does a better job +reportUnusedImport = "none" +# numpy has way too many complex types that triggers this +reportUnknownMemberType = "none" + +# https://github.com/PyCQA/pylint/blob/main/examples/pylintrc +# https://pylint.pycqa.org/en/latest/technical_reference/features.html +[tool.pylint.REPORTS] +# Just like default but any error will make drop to 9 or less +evaluation="10.0 - error - ((float(warning + refactor + convention) / statement) * 10)" +[tool.pylint.MASTER] +fail-under=9.0 +# https://pylint.pycqa.org/en/latest/technical_reference/extensions.html +load-plugins = [ + "pylint.extensions.emptystring", + "pylint.extensions.confusing_elif", + "pylint.extensions.consider_ternary_expression", + "pylint.extensions.bad_builtin", + "pylint.extensions.mccabe", + "pylint.extensions.check_elif", + "pylint.extensions.redefined_variable_type", + "pylint.extensions.overlapping_exceptions", + "pylint.extensions.empty_comment", + "pylint.extensions.set_membership", + "pylint.extensions.typing", + # TODO: Maybe later + # "pylint.extensions.docparams", + # Not wanted/needed + # "pylint.extensions.broad_try_clause", + # "pylint.extensions.code_style", + # "pylint.extensions.comparetozero", + # "pylint.extensions.docstyle", + # "pylint.extensions.while_used", + # Didn't work + # "pylint.extensions.comparison_placement", + # "pylint.extensions.for_any_all", +] +ignore-paths = [ + # Haven't looked into disabling specific rules per file + "^typings/.*$", + # Auto generated + "^src/gen/.*$", +] +# No need to mention the fixmes +disable=["fixme"] +extension-pkg-allow-list = ["PyQt6", "win32ui"] + +[tool.pylint.FORMAT] +max-line-length = 120 + +[tool.pylint.'MESSAGES CONTROL'] +disable = [ + "missing-docstring", + # TODO: We want to configure this + # https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles + "invalid-name", + # We group imports + "wrong-import-position", + # Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride + "unused-argument", + # Already taken care of by Flake8 + "unused-import", +] + +[tool.pylint.TYPECHECK] +generated-members = "cv2" diff --git a/pyrightconfig.json b/pyrightconfig.json deleted file mode 100644 index 5aaa8948..00000000 --- a/pyrightconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "typeCheckingMode": "strict", - // Auto generated - "ignore": [ - // "src/gen/", - "typings/", - ], - "reportMissingTypeStubs": "information", - // False positives with TYPE_CHECKING - "reportImportCycles": "information", - // PyQt .connect - "reportFunctionMemberAccess": "information", - // Extra runtime safety - "reportUnnecessaryComparison": "warning", - // Flake8 does a better job - "reportUnusedImport": "none", - // numpy has way too many complex types that triggers this - "reportUnknownMemberType": "none", -} diff --git a/res/design.ui b/res/design.ui index 1e74b9d8..af4e7559 100644 --- a/res/design.ui +++ b/res/design.ui @@ -615,7 +615,7 @@ 450 - 50 + 38 102 16 @@ -705,7 +705,7 @@ 200 - 50 + 38 82 16 @@ -759,7 +759,7 @@ 380 - 270 + 50 241 20 @@ -1076,10 +1076,10 @@ - 120 + 440 270 - 241 - 16 + 181 + 20 @@ -1112,6 +1112,38 @@ + + + + 120 + 50 + 241 + 20 + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + true + + + + 120 + 270 + 221 + 20 + + + + Force Full Content Rendering (slower) + + splitimagefolderLabel splitimagefolderLineEdit browseButton @@ -1178,6 +1210,8 @@ startImageLabel currentsimilaritythresholdLabel currentsimilaritythresholdnumberLabel + captureregionwindowLabel + forcePrintWindowCheckBox diff --git a/scripts/Qt Designer.lnk b/scripts/Qt Designer.lnk deleted file mode 100644 index 32ad191e237fd6030e07345c3538a9b6cdd2dde5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2255 zcmd5-ZETZO6n;8BvQ5Q~q83nBi7Xh`+OlqTTb68Ax^8J)w-+NZZya4$+IMtq*A_BN zWIv3-k7-QMjfA1gm`sQoH-n2o0r{bSh?y*YAwP(bKbx|UNa7C@e9qes%V610yl>9A z=bm%#InO=!-23_f7}gb$17~#(&tVk9Lb-XbXZH8celomdNj`gp{TuU{@u#Ot^qGdt z{5;>hVjar;m)mA6b9I_=?B`-UZnqyCbdR{GB@`{_ZVwM)@smlOaWaY39U=1Tz-IZt`$8 zUuN{=V_ZLOMEmxd&L%xZM>a;ia{aiF#3*@x1$pii=%nWazbGRHDW};> zX5?hd@ZKCL4X()Kr7*_)n8YwHiZSGMqn-XFE4lp2DkHkISU$gneul@z&*FSEJnCa^ zHDVG^yI2!a+Op1q?odh#$3jV4s6PZoxfR=`AH?SXsj%&tILe$z{b|f=j8c+y7eYS? zc#tG3q?Z$t-b#|TpCnZ-UM&xto6~pAtK(0`!^uFe#iK<-DK%G{DoaUCY3YzP5eV)M zglXza*K`IFiKrF~q_ub~rM9P4CPck?E1iU6gSre~`dX>Cl)0KMQdQsd?TbrYwkTBn zNY(6ts7of%4L9nD|4t*6<5>laRB!P&$LX9gr>L7Uf3YEog^OX z=nnSMBJt!NxdyrRiOYRvEODcC=*4daDmGpkemSyGd9?hGvIA2n+H3x{emVOpI_H}_ zDzO}jU-{Gi)kQa6Yo7Rf#x$PVwdn};`b90L;2~wI-hwT6IGK+Ti?mlr0{pkvcX+<^ zx!kAzF&(Tp)cc)A{Ysf2z$-}#uZx3JO_C?v%4fqx$upP3DTd znsP0viZ&;;4$5}&Oq*mUAneyRPcJlYFn(~YXy@R2^B>6tEtM$(;vUk{_Zzs6cKw}c zq=18S`X5x3cgt9W-0xHNp5L2Tn{NADW)`iXo&Pf+_Y;=!_ap&)tS7jo;oS>mCx67* zwqMLMC#io}CJ5km(*NVeEPba1t2Fs#%7!NI?|u5?Hxu3oZ=-Fzp?~lp>LW72OFBI5 V8ByYO+g`m|dbP(qQ7rmg`xm0p!`T1; diff --git a/scripts/install.bat b/scripts/install.bat index a824c7b4..b32ff99e 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -1,6 +1,4 @@ py -3.9 -m pip install wheel py -3.9 -m pip install -r "%~p0requirements.txt" -@REM https://github.com/python/mypy/issues/10600 --non-interactive may still have issues -mypy --install-types --non-interactive npm install -g pyright CALL "%~p0compile_resources.bat" diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index 298956ce..97a72d41 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -1,8 +1,11 @@ -pylint --score=n --output-format=text,colorized $(git ls-files '**/*.py*') -# pylint --reports=y --output-format=text,colorized $(git ls-files '**/*.py*') -mypy . -# mypy --pretty src +echo "`nRunning Pyright..." pyright -bandit -f custom --silent --severity-level medium -r . -# bandit -n 1 --severity-level medium -r src + +echo "`nRunning Pylint..." +pylint --score=n --output-format=colorized $(git ls-files '**/*.py*') + +echo "`nRunning Bandit..." +bandit -f custom --silent --recursive src + +echo "`nRunning Flake8..." flake8 diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 71cf1231..30cf1dab 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -11,23 +11,23 @@ # # Dependencies: numpy>=1.22.0rc1 -opencv-python<=4.5.3.56 # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 +opencv-python<=4.5.3.56 # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 PyQt6 +PyQt6-tools +PySide6 Pillow ImageHash pywin32 -pywin32-stubs keyboard packaging pyautogui -PySide6 +requests +# Linting and Types +pywin32-stubs +types-requests flake8 -mypy pylint -requests +bandit # # Comment this out if you don't want to build AutoSplit.exe: PyInstaller -# -# Comment this out if you don't want to install the PyQt designer -PyQt6-tools diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index fef30676..7ef33a0c 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -5,6 +5,7 @@ from PyQt6 import QtCore import error_messages +import settings_file as settings class AutoControlledWorker(QtCore.QObject): @@ -22,21 +23,21 @@ def run(self): # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" # For now this can only used in a Development environment - if line == 'kill': + if line == "kill": self.autosplit.closeEvent() break - elif line == 'start': + if line == "start": self.autosplit.startAutoSplitter() - elif line == 'split' or line == 'skip': + elif line in {"split", "skip"}: self.autosplit.startSkipSplit() - elif line == 'undo': + elif line == "undo": self.autosplit.startUndoSplit() - elif line == 'reset': + elif line == "reset": self.autosplit.startReset() - elif line.startswith('settings'): + elif line.startswith("settings"): # Allow for any split character between "settings" and the path self.autosplit.load_settings_file_path = line[9:] - self.autosplit.loadSettings(load_settings_from_livesplit=True) + settings.loadSettings(self.autosplit, load_settings_from_livesplit=True) # TODO: Not yet implemented in AutoSplit Integration # elif line == 'pause': # self.startPause() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index b35b5c2a..40e81aea 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3.9 +#!/usr/bin/python3 # -*- coding: utf-8 -*- # Imports grouping: @@ -7,8 +7,9 @@ # - Externals # - Internals from __future__ import annotations +from collections.abc import Callable from types import FunctionType, TracebackType -from typing import Callable, List, Literal, Optional, Type, Union, cast +from typing import Literal, Optional, Union, cast import sys import os @@ -26,12 +27,15 @@ from win32con import MAXBYTE import error_messages +import settings_file as settings import split_parser from AutoControlledWorker import AutoControlledWorker +from capture_windows import capture_region, Rect from gen import design +from hotkeys import send_command, afterSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, \ + setUndoSplitHotkey, setPauseHotkey from menu_bar import AboutWidget, VERSION, UpdateCheckerWidget, about, viewHelp, checkForUpdates -from capture_windows import capture_region, Rect -from settings_file import auto_split_directory +from screen_region import selectRegion, selectWindow, alignRegion, validateBeforeComparison from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG from compare import checkIfImageHasTransparency, compareImage @@ -49,19 +53,11 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): - # pylint: disable=import-outside-toplevel - from hotkeys import send_command - from settings_file import saveSettings, saveSettingsAs, loadSettings, haveSettingsChanged, getSaveSettingsValues, \ - loadPyQtSettings - from screen_region import selectRegion, selectWindow, alignRegion, validateBeforeComparison - from hotkeys import afterSettingHotkey, beforeSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, \ - setUndoSplitHotkey, setPauseHotkey - - myappid = f'Toufool.AutoSplit.v{VERSION}' + myappid = f"Toufool.AutoSplit.v{VERSION}" ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) # Parse command line args - is_auto_controlled = '--auto-controlled' in sys.argv + is_auto_controlled = "--auto-controlled" in sys.argv # Signals updateCurrentSplitImage = QtCore.pyqtSignal(QtGui.QImage) @@ -93,11 +89,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): skip_split_key = "" undo_split_key = "" pause_key = "" - x: int - y: int - width: int - height: int - hwnd_title = '' + hwnd_title = "" group_dummy_splits_undo_skip_setting: Literal[0, 1] loop_setting: Literal[0, 1] auto_start_on_reset_setting: Literal[0, 1] @@ -115,16 +107,16 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): pause_hotkey: Optional[Callable[[], None]] = None # Initialize a few attributes - last_saved_settings: Optional[List[Union[str, float, int]]] = None + last_saved_settings: Optional[list[Union[str, float, int]]] = None save_settings_file_path = "" load_settings_file_path = "" live_image_function_on_open = True - split_image_loop_amount: List[int] = [] + split_image_loop_amount: list[int] = [] split_image_number = 0 loop_number = 1 # Last loaded settings and last successful loaded settings file path to None until we try to load them - last_loaded_settings: Optional[List[Union[str, float, int]]] = None + last_loaded_settings: Optional[list[Union[str, float, int]]] = None last_successfully_loaded_settings_file_path: Optional[str] = None # Automatic timer start @@ -133,19 +125,41 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): highest_similarity = 0.0 check_start_image_timestamp = 0.0 + # Define all other attributes + setting_check_for_updates_on_open: QtCore.QSettings + imageHasTransparency: bool + start_image_split_below_threshold: bool + waiting_for_split_delay: bool + split_below_threshold: bool + split_image_path: str + split_image_filenames: list[str] + split_image_filenames_including_loops: list[str] + split_image_filenames_and_loop_number: list[tuple[str, int, int]] + split_groups: list[list[int]] + run_start_time: float + similarity: float + reset_image_threshold: float + reset_image_pause_time: float + split_delay: float + flags: int + reset_image: Optional[cv2.ndarray] + reset_mask: Optional[cv2.ndarray] + split_image: cv2.ndarray + image_mask: Optional[cv2.ndarray] + def __init__(self, parent: Optional[QWidget] = None): super().__init__(parent) self.setupUi(self) - self.loadPyQtSettings() + settings.loadPyQtSettings(self) # close all processes when closing window self.actionView_Help.triggered.connect(viewHelp) self.actionAbout.triggered.connect(lambda: about(self)) self.actionCheck_for_Updates.triggered.connect(lambda: checkForUpdates(self)) - self.actionSave_Settings.triggered.connect(self.saveSettings) - self.actionSave_Settings_As.triggered.connect(self.saveSettingsAs) - self.actionLoad_Settings.triggered.connect(self.loadSettings) + self.actionSave_Settings.triggered.connect(lambda: settings.saveSettings(self)) + self.actionSave_Settings_As.triggered.connect(lambda: settings.saveSettingsAs(self)) + self.actionLoad_Settings.triggered.connect(lambda: settings.loadSettings(self)) # disable buttons upon open self.undosplitButton.setEnabled(False) @@ -177,24 +191,24 @@ def __init__(self, parent: Optional[QWidget] = None): self.update_auto_control.start() # split image folder line edit text - self.splitimagefolderLineEdit.setText('No Folder Selected') + self.splitimagefolderLineEdit.setText("No Folder Selected") # Connecting button clicks to functions self.browseButton.clicked.connect(self.browse) - self.selectregionButton.clicked.connect(self.selectRegion) + self.selectregionButton.clicked.connect(lambda: selectRegion(self)) self.takescreenshotButton.clicked.connect(self.takeScreenshot) self.startautosplitterButton.clicked.connect(self.autoSplitter) self.checkfpsButton.clicked.connect(self.checkFPS) self.resetButton.clicked.connect(self.reset) self.skipsplitButton.clicked.connect(self.skipSplit) self.undosplitButton.clicked.connect(self.undoSplit) - self.setsplithotkeyButton.clicked.connect(self.setSplitHotkey) - self.setresethotkeyButton.clicked.connect(self.setResetHotkey) - self.setskipsplithotkeyButton.clicked.connect(self.setSkipSplitHotkey) - self.setundosplithotkeyButton.clicked.connect(self.setUndoSplitHotkey) - self.setpausehotkeyButton.clicked.connect(self.setPauseHotkey) - self.alignregionButton.clicked.connect(self.alignRegion) - self.selectwindowButton.clicked.connect(self.selectWindow) + self.setsplithotkeyButton.clicked.connect(lambda: setSplitHotkey(self)) + self.setresethotkeyButton.clicked.connect(lambda: setResetHotkey(self)) + self.setskipsplithotkeyButton.clicked.connect(lambda: setSkipSplitHotkey(self)) + self.setundosplithotkeyButton.clicked.connect(lambda: setUndoSplitHotkey(self)) + self.setpausehotkeyButton.clicked.connect(lambda: setPauseHotkey(self)) + self.alignregionButton.clicked.connect(lambda: alignRegion(self)) + self.selectwindowButton.clicked.connect(lambda: selectWindow(self)) self.startImageReloadButton.clicked.connect(lambda: self.loadStartImage(True, True)) # update x, y, width, and height when changing the value of these spinbox's are changed @@ -205,7 +219,7 @@ def __init__(self, parent: Optional[QWidget] = None): # connect signals to functions self.updateCurrentSplitImage.connect(self.updateSplitImageGUI) - self.afterSettingHotkeySignal.connect(self.afterSettingHotkey) + self.afterSettingHotkeySignal.connect(lambda: afterSettingHotkey(self)) self.startAutoSplitterSignal.connect(self.autoSplitter) self.resetSignal.connect(self.reset) self.skipSplitSignal.connect(self.skipSplit) @@ -224,20 +238,20 @@ def __init__(self, parent: Optional[QWidget] = None): self.last_successfully_loaded_settings_file_path = None if not self.is_auto_controlled: - self.loadSettings(load_settings_on_open=True) + settings.loadSettings(self, load_settings_on_open=True) # FUNCTIONS def getGlobalSettingsValues(self): - self.setting_check_for_updates_on_open = QtCore.QSettings('AutoSplit', 'Check For Updates On Open') + self.setting_check_for_updates_on_open = QtCore.QSettings("AutoSplit", "Check For Updates On Open") # TODO add checkbox for going back to image 1 when resetting. def browse(self): # User selects the file with the split images in it. new_split_image_directory = QFileDialog.getExistingDirectory( self, - 'Select Split Image Directory', - os.path.join(self.split_image_directory or auto_split_directory, "..")) + "Select Split Image Directory", + os.path.join(self.split_image_directory or settings.auto_split_directory, "..")) # If the user doesn't select a folder, it defaults to "". if new_split_image_directory: @@ -255,16 +269,18 @@ def checkLiveImage(self): def liveImageFunction(self): try: - if not win32gui.GetWindowText(self.hwnd): + windowText = win32gui.GetWindowText(self.hwnd) + self.captureregionwindowLabel.setText(windowText) + if not windowText: self.timerLiveImage.stop() + self.liveImage.clear() if self.live_image_function_on_open: self.live_image_function_on_open = False else: - self.liveImage.clear() error_messages.regionError() return - capture = capture_region(self.hwnd, self.selection) + capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) capture = cv2.resize(capture, DISPLAY_RESIZE, interpolation=cv2.INTER_NEAREST) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) @@ -283,29 +299,33 @@ def liveImageFunction(self): def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = True): self.timerStartImage.stop() - self.currentsplitimagefileLabel.setText(' ') + self.currentsplitimagefileLabel.setText(" ") self.startImageLabel.setText("Start image: not found") QApplication.processEvents() - if not self.validateBeforeComparison(started_by_button): + if not validateBeforeComparison(self, started_by_button): return self.start_image_name = None for image in os.listdir(self.split_image_directory): - if 'start_auto_splitter' in image.lower(): + if "start_auto_splitter" in image.lower(): if self.start_image_name is None: self.start_image_name = image else: if started_by_button: - error_messages.multipleKeywordImagesError('start_auto_splitter') + error_messages.multipleKeywordImagesError("start_auto_splitter") return if self.start_image_name is None: if started_by_button: - error_messages.noKeywordImageError('start_auto_splitter') + error_messages.noKeywordImageError("start_auto_splitter") return - if self.start_image_name is not None and (not self.splitLineEdit.text() or not self.resetLineEdit.text() or not self.pausehotkeyLineEdit.text()) and not self.is_auto_controlled: + if self.start_image_name is not None \ + and not self.is_auto_controlled \ + and (not self.splitLineEdit.text() + or not self.resetLineEdit.text() + or not self.pausehotkeyLineEdit.text()): error_messages.loadStartImageError() return @@ -339,8 +359,8 @@ def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = if not wait_for_delay and start_image_pause is not None and start_image_pause > 0: self.check_start_image_timestamp = time() + start_image_pause self.startImageLabel.setText("Start image: paused") - self.highestsimilarityLabel.setText(' ') - self.currentsimilaritythresholdnumberLabel.setText(' ') + self.highestsimilarityLabel.setText(" ") + self.currentsimilaritythresholdnumberLabel.setText(" ") else: self.check_start_image_timestamp = 0.0 self.startImageLabel.setText("Start image: ready") @@ -360,7 +380,7 @@ def startImageFunction(self): or (not self.splitLineEdit.text() and not self.is_auto_controlled): pause_time_left = f"{self.check_start_image_timestamp - time():.1f}" self.currentSplitImage.setText( - f'None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining') + f"None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining") return if self.check_start_image_timestamp > 0: @@ -383,7 +403,7 @@ def startImageFunction(self): # Show live similarity if the checkbox is checked self.livesimilarityLabel.setText(str(start_image_similarity)[:4] if self.showlivesimilarityCheckBox.isChecked() - else ' ') + else " ") # If the similarity becomes higher than highest similarity, set it as such. if start_image_similarity > self.highest_similarity: @@ -392,7 +412,7 @@ def startImageFunction(self): # Show live highest similarity if the checkbox is checked self.highestsimilarityLabel.setText(str(self.highest_similarity)[:4] if self.showlivesimilarityCheckBox.isChecked() - else ' ') + else " ") # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold @@ -406,7 +426,7 @@ def startImageFunction(self): and start_image_similarity < start_image_threshold) \ or (start_image_similarity >= start_image_threshold and not start_image_flags & BELOW_FLAG): def split(): - self.send_command("start") + send_command(self, "start") # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1 / self.fpslimitSpinBox.value()) # type: ignore self.startAutoSplitter() @@ -420,7 +440,7 @@ def split(): delay_start_time = time() while time() - delay_start_time < (start_image_delay / 1000): delay_time_left = round((start_image_delay / 1000) - (time() - delay_start_time), 1) - self.currentSplitImage.setText(f'Delayed Before Starting:\n {delay_time_left} sec remaining') + self.currentSplitImage.setText(f"Delayed Before Starting:\n {delay_time_left} sec remaining") # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore @@ -458,9 +478,9 @@ def updateSplitImageGUI(self, qImage: QtGui.QImage): self.currentSplitImage.setPixmap(pix) def takeScreenshot(self): - if not self.validateBeforeComparison(check_empty_directory=False): + if not validateBeforeComparison(self, check_empty_directory=False): return - take_screenshot_filename = '001_SplitImage' + take_screenshot_filename = "001_SplitImage" # check if file exists and rename it if it does # Below starts the FileNameNumber at #001 up to #999. After that it will go to 1000, @@ -472,7 +492,7 @@ def takeScreenshot(self): i += 1 # grab screenshot of capture region - capture = capture_region(self.hwnd, self.selection) + capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # save and open image @@ -482,7 +502,7 @@ def takeScreenshot(self): # check max FPS button connects here. # TODO: Average on all images and check for transparency (cv2.COLOR_BGRA2RGB and cv2.IMREAD_UNCHANGED) def checkFPS(self): - if not self.validateBeforeComparison(): + if not validateBeforeComparison(self): return split_image_filenames = os.listdir(self.split_image_directory) @@ -490,9 +510,9 @@ def checkFPS(self): cv2.imread(os.path.join(self.split_image_directory, image), cv2.IMREAD_COLOR) for image in split_image_filenames] - for image in split_images: + for i, image in enumerate(split_images): if image is None: - error_messages.imageTypeError(image) + error_messages.imageTypeError(split_image_filenames[i]) return # grab first image in the split image folder @@ -504,7 +524,7 @@ def checkFPS(self): count = 0 t0 = time() while count < 10: - capture = capture_region(self.hwnd, self.selection) + capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) compareImage(self.comparisonmethodComboBox.currentIndex(), split_image, capture) @@ -523,7 +543,7 @@ def is_current_split_out_of_range(self): def undoSplit(self): # Can't undo until timer is started # or Undoing past the first image - if self.startautosplitterButton.text() == 'Start Auto Splitter' \ + if self.startautosplitterButton.text() == "Start Auto Splitter" \ or "Delayed Split" in self.currentSplitImage.text() \ or (not self.undosplitButton.isEnabled() and not self.is_auto_controlled) \ or self.is_current_split_out_of_range(): @@ -545,7 +565,7 @@ def undoSplit(self): def skipSplit(self): # Can't skip or split until timer is started # or Splitting/skipping when there are no images left - if self.startautosplitterButton.text() == 'Start Auto Splitter' \ + if self.startautosplitterButton.text() == "Start Auto Splitter" \ or "Delayed Split" in self.currentSplitImage.text() \ or (not self.skipsplitButton.isEnabled() and not self.is_auto_controlled) \ or self.is_current_split_out_of_range(): @@ -569,12 +589,12 @@ def skipSplit(self): def reset(self): # When the reset button or hotkey is pressed, it will change this text, # which will trigger in the autoSplitter function, if running, to abort and change GUI. - self.startautosplitterButton.setText('Start Auto Splitter') + self.startautosplitterButton.setText("Start Auto Splitter") # Functions for the hotkeys to return to the main thread from signals and start their corresponding functions def startAutoSplitter(self): # If the auto splitter is already running or the button is disabled, don't emit the signal to start it. - if self.startautosplitterButton.text() == 'Running...' \ + if self.startautosplitterButton.text() == "Running..." \ or (not self.startautosplitterButton.isEnabled() and not self.is_auto_controlled): return @@ -596,7 +616,7 @@ def startPause(self): self.pauseSignal.emit() def checkForReset(self): - if self.startautosplitterButton.text() == 'Start Auto Splitter': + if self.startautosplitterButton.text() == "Start Auto Splitter": if self.autostartonresetCheckBox.isChecked(): self.startAutoSplitterSignal.emit() else: @@ -605,7 +625,7 @@ def checkForReset(self): return False def autoSplitter(self): - if not self.validateBeforeComparison(): + if not validateBeforeComparison(self): self.guiChangesOnReset() return @@ -634,7 +654,7 @@ def autoSplitter(self): in self.split_image_filenames] # construct a list of filenames, each filename copied with # of loops it has. - self.split_image_filenames_including_loops: List[str] = [] + self.split_image_filenames_including_loops: list[str] = [] for i, filename in enumerate(self.split_image_filenames): current_loop = 1 while split_image_loop_amount[i] >= current_loop: @@ -642,7 +662,7 @@ def autoSplitter(self): current_loop = current_loop + 1 # construct a list of corresponding loop number to the filenames - loop_numbers: List[int] = [] + loop_numbers: list[int] = [] loop_count = 1 for i, filename in enumerate(self.split_image_filenames_including_loops): if i == 0: @@ -661,9 +681,9 @@ def autoSplitter(self): ] # construct groups of splits if needed - self.split_groups: List[List[int]] = [] + self.split_groups: list[list[int]] = [] if self.groupDummySplitsCheckBox.isChecked(): - current_group: List[int] = [] + current_group: list[int] = [] self.split_groups.append(current_group) for i, image in enumerate(self.split_image_filenames_including_loops): @@ -724,7 +744,7 @@ def autoSplitter(self): capture, self.reset_mask) if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") + send_command(self, "reset") self.reset() if self.checkForReset(): @@ -746,7 +766,7 @@ def autoSplitter(self): if self.showlivesimilarityCheckBox.isChecked(): self.livesimilarityLabel.setText(str(self.similarity)[:4]) else: - self.livesimilarityLabel.setText(' ') + self.livesimilarityLabel.setText(" ") # if the similarity becomes higher than highest similarity, set it as such. if self.similarity > self.highest_similarity: @@ -756,7 +776,7 @@ def autoSplitter(self): if self.showhighestsimilarityCheckBox.isChecked(): self.highestsimilarityLabel.setText(str(self.highest_similarity)[:4]) else: - self.highestsimilarityLabel.setText(' ') + self.highestsimilarityLabel.setText(" ") if not self.is_auto_controlled: # if its the last split image or can't skip due to grouped dummy splits, disable skip split button @@ -772,14 +792,14 @@ def autoSplitter(self): # then split on similarity below threshold. # if no b flag, just split when similarity goes above threshold. if not self.waiting_for_split_delay: - if self.flags & BELOW_FLAG == BELOW_FLAG and not self.split_below_threshold: - if self.similarity >= self.similarity_threshold: + if self.flags & BELOW_FLAG == BELOW_FLAG: + if self.split_below_threshold: + if self.similarity < self.similarity_threshold: + self.split_below_threshold = False + break + elif self.similarity >= self.similarity_threshold: self.split_below_threshold = True continue - elif self.flags & BELOW_FLAG == BELOW_FLAG and self.split_below_threshold: - if self.similarity < self.similarity_threshold: - self.split_below_threshold = False - break elif self.similarity >= self.similarity_threshold: break @@ -801,14 +821,14 @@ def autoSplitter(self): self.waiting_for_split_delay = True self.undosplitButton.setEnabled(False) self.skipsplitButton.setEnabled(False) - self.currentsplitimagefileLabel.setText(' ') + self.currentsplitimagefileLabel.setText(" ") # check for reset while delayed and display a counter of the remaining split delay time delay_start_time = time() split_delay = self.split_delay / 1000 while time() - delay_start_time < split_delay: delay_time_left = round(split_delay - (time() - delay_start_time), 1) - self.currentSplitImage.setText(f'Delayed Split: {delay_time_left} sec remaining') + self.currentSplitImage.setText(f"Delayed Split: {delay_time_left} sec remaining") # check for reset if not windowText: self.reset() @@ -825,7 +845,7 @@ def autoSplitter(self): capture, self.reset_mask) if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") + send_command(self, "reset") self.reset() continue # Email sent to pyqt@riverbankcomputing.com @@ -834,7 +854,7 @@ def autoSplitter(self): self.waiting_for_split_delay = False # if {p} flag hit pause key, otherwise hit split hotkey - self.send_command("pause" if self.flags & PAUSE_FLAG == PAUSE_FLAG else "split") + send_command(self, "pause" if self.flags & PAUSE_FLAG == PAUSE_FLAG else "split") # if loop check box is checked and its the last split, go to first split. # else go to the next split image. @@ -864,12 +884,12 @@ def autoSplitter(self): # A pause loop to check if the user presses skip split, undo split, or reset here. # Also updates the current split image text, counting down the time until the next split image if self.pause > 0: - self.currentsplitimagefileLabel.setText(' ') - self.imageloopLabel.setText('Image Loop: -') + self.currentsplitimagefileLabel.setText(" ") + self.imageloopLabel.setText("Image Loop: -") pause_start_time = time() while time() - pause_start_time < self.pause: pause_time_left = round(self.pause - (time() - pause_start_time), 1) - self.currentSplitImage.setText(f'None (Paused). {pause_time_left} sec remaining') + self.currentSplitImage.setText(f"None (Paused). {pause_time_left} sec remaining") # check for reset if not windowText: @@ -891,7 +911,7 @@ def autoSplitter(self): capture, self.reset_mask) if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") + send_command(self, "reset") self.reset() continue # Email sent to pyqt@riverbankcomputing.com @@ -902,7 +922,7 @@ def autoSplitter(self): def guiChangesOnStart(self): self.timerStartImage.stop() - self.startautosplitterButton.setText('Running...') + self.startautosplitterButton.setText("Running...") self.browseButton.setEnabled(False) self.groupDummySplitsCheckBox.setEnabled(False) self.startImageReloadButton.setEnabled(False) @@ -921,13 +941,13 @@ def guiChangesOnStart(self): QApplication.processEvents() def guiChangesOnReset(self): - self.startautosplitterButton.setText('Start Auto Splitter') - self.imageloopLabel.setText('Image Loop: -') - self.currentSplitImage.setText(' ') - self.currentsplitimagefileLabel.setText(' ') - self.livesimilarityLabel.setText(' ') - self.highestsimilarityLabel.setText(' ') - self.currentsimilaritythresholdnumberLabel.setText(' ') + self.startautosplitterButton.setText("Start Auto Splitter") + self.imageloopLabel.setText("Image Loop: -") + self.currentSplitImage.setText(" ") + self.currentsplitimagefileLabel.setText(" ") + self.livesimilarityLabel.setText(" ") + self.highestsimilarityLabel.setText(" ") + self.currentsimilaritythresholdnumberLabel.setText(" ") self.browseButton.setEnabled(True) self.groupDummySplitsCheckBox.setEnabled(True) self.startImageReloadButton.setEnabled(True) @@ -948,7 +968,7 @@ def guiChangesOnReset(self): def getCaptureForComparison(self): # grab screenshot of capture region - capture = capture_region(self.hwnd, self.selection) + capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # convert to BGR return cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) @@ -957,8 +977,8 @@ def shouldCheckResetImage(self): return self.reset_image is not None and time() - self.run_start_time > self.reset_image_pause_time def findResetImage(self): - self.reset_image: Optional[cv2.ndarray] = None - self.reset_mask: Optional[cv2.ndarray] = None + self.reset_image = None + self.reset_mask = None reset_image_file = None for image in self.split_image_filenames: @@ -1004,7 +1024,7 @@ def findResetImage(self): self.reset_image = cv2.imread(path, cv2.IMREAD_COLOR) self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = False): + def updateSplitImage(self, custom_image_file: str = "", from_start_image: bool = False): # Splitting/skipping when there are no images left or Undoing past the first image # Start image is expected to be out of range (index 0 of 0-length array) if "START_AUTO_SPLITTER" not in custom_image_file.upper() and self.is_current_split_out_of_range(): @@ -1028,7 +1048,6 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = split_image_display = copy(self.split_image) # Transform transparency into UI's gray BG color transparent_mask = split_image_display[:, :, 3] == 0 - split_image_display[:, :, 3] == 0 split_image_display[transparent_mask] = [240, 240, 240, MAXBYTE] split_image_display = cv2.cvtColor(split_image_display, cv2.COLOR_BGRA2RGB) @@ -1089,7 +1108,7 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = def closeEvent(self, a0: Optional[QtGui.QCloseEvent] = None): # save global setting values here - self.setting_check_for_updates_on_open.setValue('check_for_updates_on_open', + self.setting_check_for_updates_on_open.setValue("check_for_updates_on_open", self.actionCheck_for_Updates_on_Open.isChecked()) def exitProgram(): @@ -1108,7 +1127,7 @@ def exitProgram(): if a0 is None: exitProgram() - if self.haveSettingsChanged(): + if settings.haveSettingsChanged(self): # Give a different warning if there was never a settings file that was loaded successfully, # and "save as" instead of "save". settings_file_name = "Untitled" \ @@ -1137,7 +1156,7 @@ def exitProgram(): def main(): app = QApplication(sys.argv) try: - app.setWindowIcon(QtGui.QIcon(':/resources/icon.ico')) + app.setWindowIcon(QtGui.QIcon(":/resources/icon.ico")) main_window = AutoSplit() main_window.show() # Needs to be after main_window.show() to be shown over @@ -1150,9 +1169,9 @@ def main(): timer.start(500) exit_code = app.exec() - except Exception as exception: + except Exception as exception: # pylint: disable=broad-except # Print error to console if not running in executable - if getattr(sys, 'frozen', False): + if getattr(sys, "frozen", False): error_messages.exceptionTraceback( f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}", exception) @@ -1166,7 +1185,7 @@ def main(): sys.exit(exit_code) -def excepthook(exceptionType: Type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): +def excepthook(exceptionType: type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): # Catch Keyboard Interrupts for a clean close if exceptionType is KeyboardInterrupt: sys.exit(0) @@ -1176,6 +1195,6 @@ def excepthook(exceptionType: Type[BaseException], exception: BaseException, _tr exception) -if __name__ == '__main__': +if __name__ == "__main__": sys.excepthook = excepthook main() diff --git a/src/capture_windows.py b/src/capture_windows.py index cbcda017..2f6fe1aa 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import Dict, cast +from typing import cast import ctypes import ctypes.wintypes @@ -17,7 +17,7 @@ # This is an undocumented nFlag value for PrintWindow PW_RENDERFULLCONTENT = 0x00000002 -accelerated_windows: Dict[int, bool] = {} +accelerated_windows: dict[int, bool] = {} is_windows_11 = version.parse(platform.version()) >= version.parse("10.0.22000") @@ -30,7 +30,7 @@ class Rect(ctypes.wintypes.RECT): bottom: int = -1 # type: ignore -def capture_region(hwnd: int, selection: Rect): +def capture_region(hwnd: int, selection: Rect, forcePrintWindow: bool): """ Captures an image of the region for a window matching the given parameters of the bounding box @@ -42,7 +42,7 @@ def capture_region(hwnd: int, selection: Rect): # Windows 11 has some jank, and we're not ready to fully investigate it # for now let's ensure it works at the cost of performance - is_accelerated_window = is_windows_11 or accelerated_windows.get(hwnd) + is_accelerated_window = forcePrintWindow or is_windows_11 or accelerated_windows.get(hwnd) # The window type is not yet known, let's find out! if is_accelerated_window is None: @@ -79,7 +79,7 @@ def __get_image(hwnd: int, selection: Rect, print_window: bool = False): except (win32ui.error, pywintypes.error): # type: ignore return np.array([0, 0, 0, 1], dtype="uint8") - image: cv2.ndarray = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype='uint8') + image: cv2.ndarray = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") image.shape = (height, width, 4) try: diff --git a/src/compare.py b/src/compare.py index c2cd9243..7faae841 100644 --- a/src/compare.py +++ b/src/compare.py @@ -12,7 +12,12 @@ ranges = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] -def compareImage(comparisonMethod: int, image: Optional[cv2.ndarray], capture: Optional[cv2.ndarray], mask: Optional[cv2.ndarray] = None): +def compareImage( + comparisonMethod: int, + image: Optional[cv2.ndarray], + capture: Optional[cv2.ndarray], + mask: Optional[cv2.ndarray] = None +): if image is None or capture is None: return 0.0 if comparisonMethod == 0: @@ -47,7 +52,6 @@ def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): """ Compares two images by calculating the L2 Error (square-root of sum of squared error) - @param source: Image of any given shape @param capture: Image matching the dimensions of the source @param mask: An image matching the dimensions of the source, but 1 channel grayscale @@ -118,7 +122,7 @@ def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2. return 1 - (hash_diff / 64.0) -def checkIfImageHasTransparency(image: cv2.ndarray): +def checkIfImageHasTransparency(image: cv2.ndarray) -> bool: # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) if image.shape[2] != 4: return False diff --git a/src/error_messages.py b/src/error_messages.py index 740ee14f..bad19bd9 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -3,9 +3,9 @@ from PyQt6 import QtCore, QtWidgets -def setTextMessage(message: str, details: str = ''): +def setTextMessage(message: str, details: str = ""): messageBox = QtWidgets.QMessageBox() - messageBox.setWindowTitle('Error') + messageBox.setWindowTitle("Error") messageBox.setTextFormat(QtCore.Qt.TextFormat.RichText) messageBox.setText(message) if details: @@ -30,7 +30,7 @@ def splitImageDirectoryEmpty(): def imageTypeError(image: str): - setTextMessage(f"\"{image}\" is not a valid image file, does not exist, " + setTextMessage(f'"{image}" is not a valid image file, does not exist, ' "or the full image file path contains a special character.") @@ -57,11 +57,11 @@ def alignmentNotMatchedError(): def noKeywordImageError(keyword: str): - setTextMessage(f"Your split image folder does not contain an image with the keyword \"{keyword}\".") + setTextMessage(f'Your split image folder does not contain an image with the keyword "{keyword}".') def multipleKeywordImagesError(keyword: str): - setTextMessage(f"Only one image with the keyword \"{keyword}\" is allowed.") + setTextMessage(f'Only one image with the keyword "{keyword}" is allowed.') def resetHotkeyError(): @@ -95,7 +95,8 @@ def checkForUpdatesError(): def loadStartImageError(): - setTextMessage("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. Please set these hotkeys, and then click the Reload Start Image button.") + setTextMessage("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. " + "Please set these hotkeys, and then click the Reload Start Image button.") def stdinLostError(): diff --git a/src/gen/about.pyi b/src/gen/about.pyi index 786170bc..c686e0ea 100644 --- a/src/gen/about.pyi +++ b/src/gen/about.pyi @@ -1,6 +1,6 @@ from PyQt6.QtWidgets import QWidget -class Ui_aboutAutoSplitWidget(object): +class Ui_aboutAutoSplitWidget(): def setupUi(self, aboutAutoSplitWidget: QWidget) -> None: ... diff --git a/src/gen/design.pyi b/src/gen/design.pyi index d999d224..6d951853 100644 --- a/src/gen/design.pyi +++ b/src/gen/design.pyi @@ -1,6 +1,6 @@ from PyQt6.QtWidgets import QMainWindow -class Ui_MainWindow(object): +class Ui_MainWindow(): def setupUi(self, MainWindow: QMainWindow) -> None: ... diff --git a/src/gen/update_checker.pyi b/src/gen/update_checker.pyi index c3680370..027afe46 100644 --- a/src/gen/update_checker.pyi +++ b/src/gen/update_checker.pyi @@ -1,6 +1,6 @@ from PyQt6.QtWidgets import QWidget -class Ui_UpdateChecker(object): +class Ui_UpdateChecker(): def setupUi(self, UpdateChecker: QWidget) -> None: ... diff --git a/src/hotkeys.py b/src/hotkeys.py index 56d773b3..b586272b 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,5 +1,6 @@ from __future__ import annotations -from typing import Optional, Callable, TYPE_CHECKING, Union +from typing import Optional, TYPE_CHECKING, Union +from collections.abc import Callable if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -24,11 +25,11 @@ def beforeSettingHotkey(autosplit: AutoSplit): # do all of these things after you set a hotkey. a signal connects to this because # changing GUI stuff in the hotkey thread was causing problems def afterSettingHotkey(autosplit: AutoSplit): - autosplit.setsplithotkeyButton.setText('Set Hotkey') - autosplit.setresethotkeyButton.setText('Set Hotkey') - autosplit.setskipsplithotkeyButton.setText('Set Hotkey') - autosplit.setundosplithotkeyButton.setText('Set Hotkey') - autosplit.setpausehotkeyButton.setText('Set Hotkey') + autosplit.setsplithotkeyButton.setText("Set Hotkey") + autosplit.setresethotkeyButton.setText("Set Hotkey") + autosplit.setskipsplithotkeyButton.setText("Set Hotkey") + autosplit.setundosplithotkeyButton.setText("Set Hotkey") + autosplit.setpausehotkeyButton.setText("Set Hotkey") autosplit.startautosplitterButton.setEnabled(True) autosplit.setsplithotkeyButton.setEnabled(True) autosplit.setresethotkeyButton.setEnabled(True) @@ -49,15 +50,14 @@ def is_digit(key: Optional[str]): def send_command(autosplit: AutoSplit, command: str): if autosplit.is_auto_controlled: print(command, flush=True) + elif command in {"split", "start"}: + _send_hotkey(autosplit.splitLineEdit.text()) + elif command == "pause": + _send_hotkey(autosplit.pausehotkeyLineEdit.text()) + elif command == "reset": + _send_hotkey(autosplit.resetLineEdit.text()) else: - if command in ("split", "start"): - _send_hotkey(autosplit.splitLineEdit.text()) - elif command == "pause": - _send_hotkey(autosplit.pausehotkeyLineEdit.text()) - elif command == "reset": - _send_hotkey(autosplit.resetLineEdit.text()) - else: - raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") + raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") # Supports sending the appropriate scan code for all the special cases @@ -67,20 +67,19 @@ def _send_hotkey(key_or_scan_code: Union[int, str]): # Deal with regular inputs if isinstance(key_or_scan_code, int) \ - or not (key_or_scan_code.startswith('num ') or key_or_scan_code == 'decimal'): + or not (key_or_scan_code.startswith("num ") or key_or_scan_code == "decimal"): keyboard.send(key_or_scan_code) - keyboard.key_to_scan_codes return - # Deal with problematic keys. Even by sending specific scan code 'keyboard' still sends the default (wrong) key + # Deal with problematic keys. Even by sending specific scan code "keyboard" still sends the default (wrong) key # keyboard.send(keyboard.key_to_scan_codes(key_or_scan_code)[1]) - pyautogui.hotkey(key_or_scan_code.replace(' ', '')) + pyautogui.hotkey(key_or_scan_code.replace(" ", "")) def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # Prevent "(keypad)delete", "(keypad)./decimal" and "del" from triggering each other # as well as "." and "(keypad)./decimal" - if keyboard_event.scan_code in (83, 52): + if keyboard_event.scan_code in {83, 52}: # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) return expected_key == keyboard_event.name # Prevent "action keys" from triggering "keypad keys" @@ -99,11 +98,11 @@ def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # Windows reports different physical keys with the same scan code. # For example, "Home", "Num Home" and "Num 7" are all "71". # See: https://github.com/boppreh/keyboard/issues/171#issuecomment-390437684 -# + # We're doing the check here instead of saving the key code because it'll # cause issues with save files and the non-keypad shared keys are localized # while the keypad ones aren't. -# + # Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". # We're also trying to achieve the same hotkey behaviour as LiveSplit has. def _hotkey_action(keyboard_event: KeyboardEvent, key_name: str, action: Callable[[], None]): @@ -129,10 +128,10 @@ def __is_key_already_set(autosplit: AutoSplit, key_name: str): # TODO: Refactor to de-duplicate all this code, including settings_file.py # Going to comment on one func, and others will be similar. def setSplitHotkey(autosplit: AutoSplit): - autosplit.setsplithotkeyButton.setText('Press a key...') + autosplit.setsplithotkeyButton.setText("Press a key...") # disable some buttons - autosplit.beforeSettingHotkey() + beforeSettingHotkey(autosplit) # new thread points to callback. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey @@ -163,7 +162,7 @@ def callback(hotkey: Callable[[], None]): # hotkey. A try and except is needed if a hotkey hasn't been set yet. I'm not # allowing for these multiple-key hotkeys because it can cause crashes, and # not many people are going to really use or need this. - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: @@ -189,8 +188,8 @@ def callback(hotkey: Callable[[], None]): def setResetHotkey(autosplit: AutoSplit): - autosplit.setresethotkeyButton.setText('Press a key...') - autosplit.beforeSettingHotkey() + autosplit.setresethotkeyButton.setText("Press a key...") + beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -201,7 +200,7 @@ def callback(hotkey: Callable[[], None]): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: @@ -220,8 +219,8 @@ def callback(hotkey: Callable[[], None]): def setSkipSplitHotkey(autosplit: AutoSplit): - autosplit.setskipsplithotkeyButton.setText('Press a key...') - autosplit.beforeSettingHotkey() + autosplit.setskipsplithotkeyButton.setText("Press a key...") + beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -232,7 +231,7 @@ def callback(hotkey: Callable[[], None]): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: @@ -251,8 +250,8 @@ def callback(hotkey: Callable[[], None]): def setUndoSplitHotkey(autosplit: AutoSplit): - autosplit.setundosplithotkeyButton.setText('Press a key...') - autosplit.beforeSettingHotkey() + autosplit.setundosplithotkeyButton.setText("Press a key...") + beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -263,7 +262,7 @@ def callback(hotkey: Callable[[], None]): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: @@ -282,8 +281,8 @@ def callback(hotkey: Callable[[], None]): def setPauseHotkey(autosplit: AutoSplit): - autosplit.setpausehotkeyButton.setText('Press a key...') - autosplit.beforeSettingHotkey() + autosplit.setpausehotkeyButton.setText("Press a key...") + beforeSettingHotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -294,7 +293,7 @@ def callback(hotkey: Callable[[], None]): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(autosplit, key_name) or (key_name != '+' and '+' in key_name): + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): autosplit.afterSettingHotkeySignal.emit() return except AttributeError: diff --git a/src/menu_bar.py b/src/menu_bar.py index 7042e290..cf67f09d 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -53,7 +53,7 @@ def __init__(self, latest_version: str, autosplit: AutoSplit, check_for_updates_ def openUpdate(self): if self.checkBoxDoNotAskMeAgain.isChecked(): self.autosplit.actionCheck_for_Updates_on_Open.setChecked(False) - os.system("start \"\" https://github.com/Toufool/Auto-Split/releases/latest") + os.system('start "" https://github.com/Toufool/Auto-Split/releases/latest') self.close() def closeWindow(self): @@ -63,7 +63,7 @@ def closeWindow(self): def viewHelp(): - os.system("start \"\" https://github.com/Toufool/Auto-Split#tutorial") + os.system('start "" https://github.com/Toufool/Auto-Split#tutorial') def about(autosplit: AutoSplit): @@ -74,7 +74,7 @@ def checkForUpdates(autosplit: AutoSplit, check_for_updates_on_open: bool = Fals try: response = requests.get("https://api.github.com/repos/Toufool/Auto-Split/releases/latest") latest_version = response.json()["name"].split("v")[1] - except Exception: + except requests.exceptions.RequestException: if not check_for_updates_on_open: error_messages.checkForUpdatesError() else: diff --git a/src/screen_region.py b/src/screen_region.py index 05fceb50..88c4ae3f 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import Tuple, cast, TYPE_CHECKING +from typing import cast, TYPE_CHECKING if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -84,12 +84,12 @@ def selectWindow(autosplit: AutoSplit): # Need to wait until the user has selected a region using the widget before moving on with # selecting the window settings - while selector.x == -1 and selector.y == -1: + while selector.x() == -1 and selector.y() == -1: # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore # Grab the window handle from the coordinates selected by the widget - autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.x, selector.y))) + autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.x(), selector.y()))) del selector @@ -111,7 +111,7 @@ def selectWindow(autosplit: AutoSplit): # also the top bar with the window name is not accounted for # I hardcoded the x and y coordinates to fix this # This is not an ideal solution because it assumes every window will have a top bar - selection: Tuple[int, int, int, int] = win32gui.GetClientRect(autosplit.hwnd) + selection: tuple[int, int, int, int] = win32gui.GetClientRect(autosplit.hwnd) autosplit.selection.left = 8 autosplit.selection.top = 31 autosplit.selection.right = 8 + selection[2] @@ -151,7 +151,10 @@ def alignRegion(autosplit: AutoSplit): # Obtaining the capture of a region which contains the # subregion being searched for to align the image. - capture = capture_windows.capture_region(autosplit.hwnd, autosplit.selection) + capture = capture_windows.capture_region( + autosplit.hwnd, + autosplit.selection, + autosplit.forcePrintWindowCheckBox.isChecked()) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # Obtain the best matching point for the template within the @@ -235,7 +238,7 @@ def __init__(self): user32.GetSystemMetrics(SM_YVIRTUALSCREEN), user32.GetSystemMetrics(SM_CXVIRTUALSCREEN), user32.GetSystemMetrics(SM_CYVIRTUALSCREEN)) - self.setWindowTitle(' ') + self.setWindowTitle(" ") self.setWindowOpacity(0.5) self.setWindowFlags(QtCore.Qt.WindowType.FramelessWindowHint) self.show() @@ -247,9 +250,18 @@ def keyPressEvent(self, a0: QtGui.QKeyEvent): # Widget to select a window and obtain its bounds class SelectWindowWidget(BaseSelectWidget): + __x = -1 + __y = -1 + + def x(self): + return self.__x + + def y(self): + return self.__y + def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): - self.x = lambda: int(a0.position().x()) + self.geometry().x() - self.y = lambda: int(a0.position().y()) + self.geometry().y() + self.__x = int(a0.position().x()) + self.geometry().x() + self.__y = int(a0.position().y()) + self.geometry().y() self.close() @@ -276,8 +288,8 @@ def width(self): def paintEvent(self, a0: QtGui.QPaintEvent): if self.__begin != self.__end: qPainter = QtGui.QPainter(self) - qPainter.setPen(QtGui.QPen(QtGui.QColor('red'), 2)) - qPainter.setBrush(QtGui.QColor('opaque')) + qPainter.setPen(QtGui.QPen(QtGui.QColor("red"), 2)) + qPainter.setBrush(QtGui.QColor("opaque")) qPainter.drawRect(QtCore.QRect(self.__begin, self.__end)) def mousePressEvent(self, a0: QtGui.QMouseEvent): diff --git a/src/settings_file.py b/src/settings_file.py index 0391405e..55636563 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, List, Literal, cast +from typing import TYPE_CHECKING, Any, Literal, cast if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -11,17 +11,24 @@ from PyQt6 import QtWidgets import error_messages -from hotkeys import _hotkey_action +# TODO with settings refactoring +from hotkeys import _hotkey_action # type: ignore # Get the directory of either AutoSplit.exe or AutoSplit.py -auto_split_directory = os.path.dirname(sys.executable if getattr(sys, 'frozen', False) else os.path.abspath(__file__)) +auto_split_directory = os.path.dirname(sys.executable if getattr(sys, "frozen", False) else os.path.abspath(__file__)) + + +class RestrictedUnpickler(pickle.Unpickler): + + def find_class(self, module: str, name: str): + raise pickle.UnpicklingError("'%s.%s' is forbidden" % (module, name)) def loadPyQtSettings(autosplit: AutoSplit): # These are only global settings values. They are not *pkl settings values. autosplit.getGlobalSettingsValues() check_for_updates_on_open = autosplit.setting_check_for_updates_on_open.value( - 'check_for_updates_on_open', + "check_for_updates_on_open", True, type=bool) autosplit.actionCheck_for_Updates_on_Open.setChecked(check_for_updates_on_open) @@ -29,10 +36,6 @@ def loadPyQtSettings(autosplit: AutoSplit): def getSaveSettingsValues(autosplit: AutoSplit): # get values to be able to save settings - autosplit.x = autosplit.xSpinBox.value() - autosplit.y = autosplit.ySpinBox.value() - autosplit.width = autosplit.widthSpinBox.value() - autosplit.height = autosplit.heightSpinBox.value() autosplit.similarity_threshold = autosplit.similaritythresholdDoubleSpinBox.value() autosplit.comparison_index = autosplit.comparisonmethodComboBox.currentIndex() autosplit.pause = autosplit.pauseDoubleSpinBox.value() @@ -54,7 +57,7 @@ def getSaveSettingsValues(autosplit: AutoSplit): def haveSettingsChanged(autosplit: AutoSplit): - autosplit.getSaveSettingsValues() + getSaveSettingsValues(autosplit) current_save_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, @@ -66,16 +69,17 @@ def haveSettingsChanged(autosplit: AutoSplit): autosplit.skip_split_key, autosplit.undo_split_key, autosplit.pause_key, - autosplit.x, - autosplit.y, - autosplit.width, - autosplit.height, + autosplit.xSpinBox.value(), + autosplit.ySpinBox.value(), + autosplit.widthSpinBox.value(), + autosplit.heightSpinBox.value(), autosplit.hwnd_title, 0, 0, autosplit.group_dummy_splits_undo_skip_setting, autosplit.loop_setting, - autosplit.auto_start_on_reset_setting] + autosplit.auto_start_on_reset_setting, + autosplit.forcePrintWindowCheckBox.isChecked()] # One small caveat in this: if you load a settings file from an old version, but dont change settings, # the current save settings and last load settings will have different # of elements and it will ask @@ -85,9 +89,9 @@ def haveSettingsChanged(autosplit: AutoSplit): def saveSettings(autosplit: AutoSplit): if not autosplit.last_successfully_loaded_settings_file_path: - autosplit.saveSettingsAs() + saveSettingsAs(autosplit) else: - autosplit.getSaveSettingsValues() + getSaveSettingsValues(autosplit) autosplit.last_saved_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, @@ -99,18 +103,19 @@ def saveSettings(autosplit: AutoSplit): autosplit.skip_split_key, autosplit.undo_split_key, autosplit.pause_key, - autosplit.x, - autosplit.y, - autosplit.width, - autosplit.height, + autosplit.xSpinBox.value(), + autosplit.ySpinBox.value(), + autosplit.widthSpinBox.value(), + autosplit.heightSpinBox.value(), autosplit.hwnd_title, 0, 0, autosplit.group_dummy_splits_undo_skip_setting, autosplit.loop_setting, - autosplit.auto_start_on_reset_setting] + autosplit.auto_start_on_reset_setting, + autosplit.forcePrintWindowCheckBox.isChecked()] # save settings to a .pkl file - with open(autosplit.last_successfully_loaded_settings_file_path, 'wb') as f: + with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as f: pickle.dump(autosplit.last_saved_settings, f) @@ -126,7 +131,7 @@ def saveSettingsAs(autosplit: AutoSplit): if not autosplit.save_settings_file_path: return - autosplit.getSaveSettingsValues() + getSaveSettingsValues(autosplit) autosplit.last_saved_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, @@ -138,19 +143,20 @@ def saveSettingsAs(autosplit: AutoSplit): autosplit.skip_split_key, autosplit.undo_split_key, autosplit.pause_key, - autosplit.x, - autosplit.y, - autosplit.width, - autosplit.height, + autosplit.xSpinBox.value(), + autosplit.ySpinBox.value(), + autosplit.widthSpinBox.value(), + autosplit.heightSpinBox.value(), autosplit.hwnd_title, 0, 0, autosplit.group_dummy_splits_undo_skip_setting, autosplit.loop_setting, - autosplit.auto_start_on_reset_setting] + autosplit.auto_start_on_reset_setting, + autosplit.forcePrintWindowCheckBox.isChecked()] # save settings to a .pkl file - with open(autosplit.save_settings_file_path, 'wb') as f: + with open(autosplit.save_settings_file_path, "wb") as f: pickle.dump(autosplit.last_saved_settings, f) # Wording is kinda off here but this needs to be here for an edge case: @@ -188,19 +194,23 @@ def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load return try: - with open(autosplit.load_settings_file_path, 'rb') as f: - settings: List[Any] = pickle.load(f) + with open(autosplit.load_settings_file_path, "rb") as f: + settings: list[Any] = RestrictedUnpickler(f).load() settings_count = len(settings) if settings_count < 18: autosplit.showErrorSignal.emit(error_messages.oldVersionSettingsFileError) return # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting if settings_count == 18: - settings.insert(9, '') + settings.insert(9, "") settings.insert(20, 0) # v1.5 settings - elif settings_count != 20: - autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) + if settings_count == 20: + settings.insert(21, False) + # v1.6.X settings + elif settings_count != 21: + if not load_settings_from_livesplit: + autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) return autosplit.last_loaded_settings = [ autosplit.split_image_directory, @@ -213,17 +223,21 @@ def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load autosplit.skip_split_key, autosplit.undo_split_key, autosplit.pause_key, - autosplit.x, - autosplit.y, - autosplit.width, - autosplit.height, + region_x, + region_y, + region_width, + region_height, autosplit.hwnd_title, _, _, autosplit.group_dummy_splits_undo_skip_setting, autosplit.loop_setting, - autosplit.auto_start_on_reset_setting] = settings - except (FileNotFoundError, MemoryError, pickle.UnpicklingError): + autosplit.auto_start_on_reset_setting, + forcePrintWindowCheckBox] = settings + + autosplit.forcePrintWindowCheckBox.setChecked(forcePrintWindowCheckBox) + except (FileNotFoundError, MemoryError, pickle.UnpicklingError) as e: + print(e) autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) return @@ -231,10 +245,10 @@ def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load autosplit.similaritythresholdDoubleSpinBox.setValue(autosplit.similarity_threshold) autosplit.pauseDoubleSpinBox.setValue(autosplit.pause) autosplit.fpslimitSpinBox.setValue(autosplit.fps_limit) - autosplit.xSpinBox.setValue(autosplit.x) - autosplit.ySpinBox.setValue(autosplit.y) - autosplit.widthSpinBox.setValue(autosplit.width) - autosplit.heightSpinBox.setValue(autosplit.height) + autosplit.xSpinBox.setValue(region_x) + autosplit.ySpinBox.setValue(region_y) + autosplit.widthSpinBox.setValue(region_width) + autosplit.heightSpinBox.setValue(region_height) autosplit.comparisonmethodComboBox.setCurrentIndex(autosplit.comparison_index) # https://github.com/kaluluosi/pywin32-stubs/issues/7 autosplit.hwnd = win32gui.FindWindow(None, autosplit.hwnd_title) # type: ignore diff --git a/src/split_parser.py b/src/split_parser.py index 1932878c..5e24c78a 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -1,9 +1,11 @@ -import os -from typing import List +from __future__ import annotations +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from AutoSplit import AutoSplit +import os import cv2 -from AutoSplit import AutoSplit import error_messages @@ -27,8 +29,8 @@ def threshold_from_filename(filename: str): # Check to make sure there is a valid floating point number between # parentheses of the filename try: - threshold = float(filename.split('(', 1)[1].split(')')[0]) - except Exception: + threshold = float(filename.split("(", 1)[1].split(")")[0]) + except (IndexError, ValueError): return None # Check to make sure if it is a valid threshold @@ -47,8 +49,8 @@ def pause_from_filename(filename: str): # Check to make sure there is a valid pause time between brackets # of the filename try: - pause = float(filename.split('[', 1)[1].split(']')[0]) - except Exception: + pause = float(filename.split("[", 1)[1].split("]")[0]) + except (IndexError, ValueError): return None # Pause times should always be positive or zero @@ -67,8 +69,8 @@ def delay_from_filename(filename: str): # Check to make sure there is a valid delay time between brackets # of the filename try: - delay = float(filename.split('#', 1)[1].split('#')[0]) - except Exception: + delay = float(filename.split("#", 1)[1].split("#")[0]) + except (IndexError, ValueError): return 0.0 # Delay times should always be positive or zero @@ -87,8 +89,8 @@ def loop_from_filename(filename: str): # Check to make sure there is a valid delay time between brackets # of the filename try: - loop = int(filename.split('@', 1)[1].split('@')[0]) - except Exception: + loop = int(filename.split("@", 1)[1].split("@")[0]) + except (IndexError, ValueError): return 1 # Loop should always be positive @@ -102,29 +104,29 @@ def flags_from_filename(filename: str): @param filename: String containing the file's name @return: The flags as an integer, if invalid flags are found it returns 0 - List of flags: - 'd' = dummy, do nothing when this split is found - 'b' = below threshold, after threshold is met, split when it goes below the threhsold. - 'p' = pause, hit pause key when this split is found + list of flags: + "d" = dummy, do nothing when this split is found + "b" = below threshold, after threshold is met, split when it goes below the threhsold. + "p" = pause, hit pause key when this split is found """ # Check to make sure there are flags between curly braces # of the filename try: - flags_str = filename.split('{', 1)[1].split('}')[0] - except Exception: + flags_str = filename.split("{", 1)[1].split("}")[0] + except (IndexError, ValueError): return 0 flags = 0x00 for c in flags_str: - if c.upper() == 'D': + if c.upper() == "D": flags |= DUMMY_FLAG - elif c.upper() == 'M': + elif c.upper() == "M": flags |= MASK_FLAG - elif c.upper() == 'B': + elif c.upper() == "B": flags |= BELOW_FLAG - elif c.upper() == 'P': + elif c.upper() == "P": flags |= PAUSE_FLAG else: # An invalid flag was caught, this filename was written incorrectly @@ -146,7 +148,7 @@ def is_reset_image(filename: str): @param filename: String containing the file's name @return: True if its a reset image """ - return 'RESET' in filename.upper() + return "RESET" in filename.upper() def is_start_auto_splitter_image(filename: str): @@ -156,10 +158,10 @@ def is_start_auto_splitter_image(filename: str): @param filename: String containing the file's name @return: True if its a reset image """ - return 'START_AUTO_SPLITTER' in filename.upper() + return "START_AUTO_SPLITTER" in filename.upper() -def removeStartAutoSplitterImage(split_image_filenames: List[str]): +def removeStartAutoSplitterImage(split_image_filenames: list[str]): start_auto_splitter_image_file = None for image in split_image_filenames: if is_start_auto_splitter_image(image): @@ -207,7 +209,7 @@ def validate_images_before_parsing(autosplit: AutoSplit): return if already_found_reset_image: autosplit.guiChangesOnReset() - error_messages.multipleKeywordImagesError('reset') + error_messages.multipleKeywordImagesError("reset") return already_found_reset_image = True @@ -215,6 +217,6 @@ def validate_images_before_parsing(autosplit: AutoSplit): if is_start_auto_splitter_image(image): if already_found_start_image: autosplit.guiChangesOnReset() - error_messages.multipleKeywordImagesError('start_auto_splitter') + error_messages.multipleKeywordImagesError("start_auto_splitter") return already_found_start_image = True diff --git a/typings/win32helper/win32con.pyi b/typings/win32con/__init__.pyi similarity index 99% rename from typings/win32helper/win32con.pyi rename to typings/win32con/__init__.pyi index 4c3a0fef..92e62fdc 100644 --- a/typings/win32helper/win32con.pyi +++ b/typings/win32con/__init__.pyi @@ -1,3 +1,7 @@ +""" +This type stub file was generated by pyright. +""" + # Generated by h2py from commdlg.h (plus modifications 4jan98) WINVER = 1280 WM_USER = 1024 diff --git a/typings/win32helper/win32typing.pyi b/typings/win32typing/__init__.pyi similarity index 96% rename from typings/win32helper/win32typing.pyi rename to typings/win32typing/__init__.pyi index ff7cdbae..f11a35e4 100644 --- a/typings/win32helper/win32typing.pyi +++ b/typings/win32typing/__init__.pyi @@ -1,3 +1,7 @@ +""" +This type stub file was generated by pyright. +""" + __all__=['', 'COMMTIMEOUTS', 'CopyProgressRoutine', 'DOCINFO', 'ExportCallback', 'FORM_INFO_1', 'ImportCallback', 'LARGE_INTEGER', 'NCB', 'PRINTER_DEFAULTS', 'PyACL', 'PyBITMAP', 'PyBLENDFUNCTION', 'PyCEHANDLE', 'PyCERTSTORE', 'PyCERT_ALT_NAME_ENTRY', 'PyCERT_ALT_NAME_INFO', 'PyCERT_AUTHORITY_KEY_ID_INFO', 'PyCERT_BASIC_CONSTRAINTS2_INFO', 'PyCERT_BASIC_CONSTRAINTS_INFO', 'PyCERT_CONTEXT', 'PyCERT_EXTENSION', 'PyCERT_KEY_ATTRIBUTES_INFO', 'PyCERT_NAME_INFO', 'PyCERT_NAME_VALUE', 'PyCERT_OTHER_NAME', 'PyCERT_POLICY_INFO', 'PyCERT_PUBLIC_KEY_INFO', 'PyCOMSTAT', 'PyCOORD', 'PyCREDENTIAL', 'PyCREDENTIAL_ATTRIBUTE', 'PyCREDENTIAL_TARGET_INFORMATION', 'PyCREDUI_INFO', 'PyCRYPTHASH', 'PyCRYPTKEY', 'PyCRYPTMSG', 'PyCRYPTPROTECT_PROMPTSTRUCT', 'PyCRYPTPROV', 'PyCRYPT_ALGORITHM_IDENTIFIER', 'PyCRYPT_ATTRIBUTE', 'PyCRYPT_BIT_BLOB', 'PyCRYPT_DECRYPT_MESSAGE_PARA', 'PyCRYPT_ENCRYPT_MESSAGE_PARA', 'PyCRYPT_SIGN_MESSAGE_PARA', 'PyCRYPT_VERIFY_MESSAGE_PARA', 'PyCTL_CONTEXT', 'PyCTL_USAGE', 'PyConsoleScreenBuffer', 'PyCredHandle', 'PyCtxtHandle', 'PyDCB', 'PyDEVMODE', 'PyDEVMODEW', 'PyDISPLAY_DEVICE', 'PyDLGITEMTEMPLATE', 'PyDLGTEMPLATE', 'PyDS_HANDLE', 'PyDS_NAME_RESULT_ITEM', 'PyDateTime', 'PyDialogTemplate', 'PyEVTLOG_HANDLE', 'PyEVT_HANDLE', 'PyEVT_RPC_LOGIN', 'PyEventLogRecord', 'PyGROUP_INFO_0', 'PyGROUP_INFO_1', 'PyGROUP_INFO_1002', 'PyGROUP_INFO_1005', 'PyGROUP_INFO_2', 'PyGROUP_USERS_INFO_0', 'PyGROUP_USERS_INFO_1', 'PyGdiHANDLE', 'PyGetSignerCertificate', 'PyHANDLE', 'PyHDESK', 'PyHDEVNOTIFY', 'PyHHNTRACK', 'PyHHN_NOTIFY', 'PyHH_AKLINK', 'PyHH_FTS_QUERY', 'PyHH_POPUP', 'PyHH_WINTYPE', 'PyHINTERNET', 'PyHKEY', 'PyHTHEME', 'PyHWINSTA', 'PyICONINFO', 'PyIID', 'PyINPUT_RECORD', 'PyLOCALGROUP_INFO_0', 'PyLOCALGROUP_INFO_1', 'PyLOCALGROUP_INFO_1002', 'PyLOCALGROUP_MEMBERS_INFO_0', 'PyLOCALGROUP_MEMBERS_INFO_1', 'PyLOCALGROUP_MEMBERS_INFO_2', 'PyLOCALGROUP_MEMBERS_INFO_3', 'PyLOGBRUSH', 'PyLOGFONT', 'PyLSA_HANDLE', 'PyLUID_AND_ATTRIBUTES', 'PyLsaLogon_HANDLE', 'PyMSG', 'PyNETRESOURCE', 'PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG', 'PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG', 'PyNET_VALIDATE_PERSISTED_FIELDS', 'PyNMHDR', 'PyNOTIFYICONDATA', 'PyOVERLAPPED', 'PyOVERLAPPEDReadBuffer', 'PyPERF_COUNTER_DEFINITION', 'PyPERF_OBJECT_TYPE', 'PyPOINT', 'PyPROFILEINFO', 'PyPerfMonManager', 'PyPrinterHANDLE', 'PyRECT', 'PyResourceId', 'PySCROLLINFO', 'PySC_HANDLE', 'PySECURITY_ATTRIBUTES', 'PySECURITY_DESCRIPTOR', 'PySERVER_INFO_100', 'PySERVER_INFO_101', 'PySERVER_INFO_102', 'PySERVER_INFO_402', 'PySERVER_INFO_403', 'PySERVER_INFO_502', 'PySERVER_INFO_503', 'PySHARE_INFO_0', 'PySHARE_INFO_1', 'PySHARE_INFO_2', 'PySHARE_INFO_501', 'PySHARE_INFO_502', 'PySID', 'PySID_AND_ATTRIBUTES', 'PySIZE', 'PySMALL_RECT', 'PySTARTUPINFO', 'PySecBuffer', 'PySecBufferDesc', 'PyTOKEN_GROUPS', 'PyTOKEN_PRIVILEGES', 'PyTRIVERTEX', 'PyTRUSTEE', 'PyTS_HANDLE', 'PyTime', 'PyUSER_INFO_0', 'PyUSER_INFO_1', 'PyUSER_INFO_10', 'PyUSER_INFO_1003', 'PyUSER_INFO_1005', 'PyUSER_INFO_1006', 'PyUSER_INFO_1007', 'PyUSER_INFO_1008', 'PyUSER_INFO_1009', 'PyUSER_INFO_1010', 'PyUSER_INFO_1011', 'PyUSER_INFO_11', 'PyUSER_INFO_2', 'PyUSER_INFO_20', 'PyUSER_INFO_3', 'PyUSER_INFO_4', 'PyUSER_MODALS_INFO_0', 'PyUSER_MODALS_INFO_1', 'PyUSER_MODALS_INFO_2', 'PyUSER_MODALS_INFO_3', 'PyUSE_INFO_0', 'PyUSE_INFO_1', 'PyUSE_INFO_2', 'PyUSE_INFO_3', 'PyUnicode', 'PyUrlCacheHANDLE', 'PyWAVEFORMATEX', 'PyWINHTTP_AUTOPROXY_OPTIONS', 'PyWINHTTP_PROXY_INFO', 'PyWKSTA_INFO_100', 'PyWKSTA_INFO_101', 'PyWKSTA_INFO_102', 'PyWKSTA_INFO_302', 'PyWKSTA_INFO_402', 'PyWKSTA_INFO_502', 'PyWKSTA_TRANSPORT_INFO_0', 'PyWKSTA_USER_INFO_0', 'PyWKSTA_USER_INFO_1', 'PyWNDCLASS', 'PyXFORM', 'Pymmapfile', 'RASDIALEXTENSIONS', 'RASDIALPARAMS', 'SC_ACTION', 'SERVICE_FAILURE_ACTIONS', 'SERVICE_STATUS', 'TRACKMOUSEEVENT', 'ULARGE_INTEGER', 'WIN32_FIND_DATA', 'com_error', 'connection', 'cursor', 'error', 'COMPONENT', 'COMPONENTSOPT', 'COMPPOS', 'COMPSTATEINFO', 'DEFCONTENTMENU', 'ELEMDESC', 'EXP_DARWIN_LINK', 'EXP_SPECIAL_FOLDER', 'EXP_SZ_LINK', 'FUNCDESC', 'IDLDESC', 'MAPIINIT_0', 'NT_CONSOLE_PROPS', 'NT_FE_CONSOLE_PROPS', 'PROPSPEC', 'PyADSVALUE', 'PyADS_ATTR_INFO', 'PyADS_OBJECT_INFO', 'PyADS_SEARCHPREF_INFO', 'PyBIND_OPTS', 'PyCMINVOKECOMMANDINFO', 'PyDSBCAPS', 'PyDSBUFFERDESC', 'PyDSCAPS', 'PyDSCBCAPS', 'PyDSCBUFFERDESC', 'PyDSCCAPS', 'PyDSOP_FILTER_FLAGS', 'PyDSOP_SCOPE_INIT_INFO', 'PyDSOP_SCOPE_INIT_INFOs', 'PyDSOP_UPLEVEL_FILTER_FLAGS', 'PyFORMATETC', 'PyGFileOperationProgressSink', 'PyGSecurityInformation', 'PyIADesktopP2', 'PyIADs', 'PyIADsContainer', 'PyIADsUser', 'PyIActiveDesktop', 'PyIActiveDesktopP', 'PyIActiveScriptDebug', 'PyIActiveScriptError', 'PyIActiveScriptErrorDebug', 'PyIActiveScriptParseProcedure', 'PyIActiveScriptSite', 'PyIActiveScriptSiteDebug', 'PyIAddrBook', 'PyIApplicationDebugger', 'PyIApplicationDestinations', 'PyIApplicationDocumentLists', 'PyIAsyncOperation', 'PyIAttach', 'PyIBindCtx', 'PyIBrowserFrameOptions', 'PyICancelMethodCalls', 'PyICatInformation', 'PyICatRegister', 'PyICategoryProvider', 'PyIClassFactory', 'PyIClientSecurity', 'PyIColumnProvider', 'PyIConnectionPoint', 'PyIConnectionPointContainer', 'PyIContext', 'PyIContextMenu', 'PyICopyHookA', 'PyICopyHookW', 'PyICreateTypeInfo', 'PyICreateTypeLib', 'PyICreateTypeLib2', 'PyICurrentItem', 'PyICustomDestinationList', 'PyIDL', 'PyIDataObject', 'PyIDebugApplication', 'PyIDebugApplicationNode', 'PyIDebugApplicationNodeEvents', 'PyIDebugApplicationThread', 'PyIDebugCodeContext', 'PyIDebugDocument', 'PyIDebugDocumentContext', 'PyIDebugDocumentHelper', 'PyIDebugDocumentHost', 'PyIDebugDocumentInfo', 'PyIDebugDocumentProvider', 'PyIDebugDocumentText', 'PyIDebugDocumentTextAuthor', 'PyIDebugDocumentTextEvents', 'PyIDebugDocumentTextExternalAuthor', 'PyIDebugExpression', 'PyIDebugExpressionCallBack', 'PyIDebugExpressionContext', 'PyIDebugProperty', 'PyIDebugSessionProvider', 'PyIDebugStackFrame', 'PyIDebugStackFrameSniffer', 'PyIDebugStackFrameSnifferEx', 'PyIDebugSyncOperation', 'PyIDefaultExtractIconInit', 'PyIDirectSound', 'PyIDirectSoundBuffer', 'PyIDirectSoundCapture', 'PyIDirectSoundCaptureBuffer', 'PyIDirectSoundNotify', 'PyIDirectoryObject', 'PyIDirectorySearch', 'PyIDispatch', 'PyIDispatchEx', 'PyIDisplayItem', 'PyIDocHostUIHandler', 'PyIDropSource', 'PyIDropTarget', 'PyIDropTargetHelper', 'PyIDsObjectPicker', 'PyIEmptyVolumeCache', 'PyIEmptyVolumeCache2', 'PyIEmptyVolumeCacheCallBack', 'PyIEnumCATEGORYINFO', 'PyIEnumConnectionPoints', 'PyIEnumConnections', 'PyIEnumContextProps', 'PyIEnumDebugApplicationNodes', 'PyIEnumDebugCodeContexts', 'PyIEnumDebugExpressionContexts', 'PyIEnumDebugPropertyInfo', 'PyIEnumDebugStackFrames', 'PyIEnumExplorerCommand', 'PyIEnumFORMATETC', 'PyIEnumGUID', 'PyIEnumIDList', 'PyIEnumMoniker', 'PyIEnumObjects', 'PyIEnumRemoteDebugApplicationThreads', 'PyIEnumRemoteDebugApplications', 'PyIEnumResources', 'PyIEnumSTATPROPSETSTG', 'PyIEnumSTATPROPSTG', 'PyIEnumSTATSTG', 'PyIEnumShellItems', 'PyIEnumString', 'PyIErrorLog', 'PyIExplorerBrowser', 'PyIExplorerBrowserEvents', 'PyIExplorerCommand', 'PyIExplorerCommandProvider', 'PyIExplorerPaneVisibility', 'PyIExternalConnection', 'PyIExtractIcon', 'PyIExtractIconW', 'PyIExtractImage', 'PyIFileOperation', 'PyIIdentityName', 'PyIInitializeWithFile', 'PyIInitializeWithStream', 'PyIInputObject', 'PyIInternetBindInfo', 'PyIInternetPriority', 'PyIInternetProtocol', 'PyIInternetProtocolInfo', 'PyIInternetProtocolRoot', 'PyIInternetProtocolSink', 'PyIInternetSecurityManager', 'PyIKnownFolder', 'PyIKnownFolderManager', 'PyILockBytes', 'PyIMAPIContainer', 'PyIMAPIFolder', 'PyIMAPIProp', 'PyIMAPISession', 'PyIMAPIStatus', 'PyIMAPITable', 'PyIMachineDebugManager', 'PyIMachineDebugManagerEvents', 'PyIMessage', 'PyIMoniker', 'PyIMsgServiceAdmin', 'PyIMsgStore', 'PyINameSpaceTreeControl', 'PyINamedPropertyStore', 'PyIObjectArray', 'PyIObjectCollection', 'PyIObjectWithPropertyKey', 'PyIObjectWithSite', 'PyIOleClientSite', 'PyIOleCommandTarget', 'PyIOleControl', 'PyIOleControlSite', 'PyIOleInPlaceActiveObject', 'PyIOleInPlaceFrame', 'PyIOleInPlaceObject', 'PyIOleInPlaceSite', 'PyIOleInPlaceSiteEx', 'PyIOleInPlaceSiteWindowless', 'PyIOleInPlaceUIWindow', 'PyIOleObject', 'PyIOleWindow', 'PyIPersist', 'PyIPersistFile', 'PyIPersistFolder', 'PyIPersistFolder2', 'PyIPersistPropertyBag', 'PyIPersistSerializedPropStorage', 'PyIPersistStorage', 'PyIPersistStream', 'PyIPersistStreamInit', 'PyIProcessDebugManager', 'PyIProfAdmin', 'PyIPropertyBag', 'PyIPropertyChange', 'PyIPropertyChangeArray', 'PyIPropertyDescription', 'PyIPropertyDescriptionAliasInfo', 'PyIPropertyDescriptionList', 'PyIPropertyDescriptionSearchInfo', 'PyIPropertyEnumType', 'PyIPropertyEnumTypeList', 'PyIPropertySetStorage', 'PyIPropertyStorage', 'PyIPropertyStore', 'PyIPropertyStoreCache', 'PyIPropertyStoreCapabilities', 'PyIPropertySystem', 'PyIProvideClassInfo', 'PyIProvideClassInfo2', 'PyIProvideExpressionContexts', 'PyIProvideTaskPage', 'PyIQueryAssociations', 'PyIRelatedItem', 'PyIRemoteDebugApplication', 'PyIRemoteDebugApplicationEvents', 'PyIRemoteDebugApplicationThread', 'PyIRunningObjectTable', 'PyIScheduledWorkItem', 'PyIServerSecurity', 'PyIServiceProvider', 'PyIShellBrowser', 'PyIShellExtInit', 'PyIShellFolder', 'PyIShellFolder2', 'PyIShellIcon', 'PyIShellIconOverlay', 'PyIShellIconOverlayIdentifier', 'PyIShellIconOverlayManager', 'PyIShellItem', 'PyIShellItem2', 'PyIShellItemArray', 'PyIShellItemResources', 'PyIShellLibrary', 'PyIShellLink', 'PyIShellLinkDataList', 'PyIShellView', 'PyISpecifyPropertyPages', 'PyIStorage', 'PyIStream', 'PyITask', 'PyITaskScheduler', 'PyITaskTrigger', 'PyITaskbarList', 'PyITransferAdviseSink', 'PyITransferDestination', 'PyITransferMediumItem', 'PyITransferSource', 'PyITypeComp', 'PyITypeInfo', 'PyITypeLib', 'PyIUniformResourceLocator', 'PyIUnknown', 'PyIViewObject', 'PyIViewObject2', 'PyMAPINAMEIDArray', 'PyOLEMENUGROUPWIDTHS', 'PyPROPERTYKEY', 'PyPROPVARIANT', 'PySAndRestriction', 'PySBinaryArray', 'PySBitMaskRestriction', 'PySContentRestriction', 'PySExistRestriction', 'PySHELL_ITEM_RESOURCE', 'PySNotRestriction', 'PySOrRestriction', 'PySPropTagArray', 'PySPropValue', 'PySPropValueArray', 'PySPropertyRestriction', 'PySRestriction', 'PySRow', 'PySRowSet', 'PySSortOrderItem', 'PySSortOrderSet', 'PySTGMEDIUM', 'PyTASK_TRIGGER', 'RTF_WCSINFO', 'SHFILEINFO', 'SHFILEOPSTRUCT', 'SI_ACCESS', 'SI_INHERIT_TYPE', 'SI_OBJECT_INFO', 'STATSTG', 'TLIBATTR', 'TYPEATTR', 'TYPEDESC', 'VARDESC', 'CHARFORMAT', 'CREATESTRUCT', 'LV_COLUMN', 'LV_ITEM', 'PARAFORMAT', 'PyAssocCObject', 'PyAssocObject', 'PyCBitmap', 'PyCBrush', 'PyCButton', 'PyCCmdTarget', 'PyCCmdUI', 'PyCColorDialog', 'PyCComboBox', 'PyCCommonDialog', 'PyCControl', 'PyCControlBar', 'PyCCtrlView', 'PyCDC', 'PyCDialog', 'PyCDialogBar', 'PyCDocTemplate', 'PyCDockContext', 'PyCDocument', 'PyCEdit', 'PyCEditView', 'PyCFileDialog', 'PyCFont', 'PyCFontDialog', 'PyCFormView', 'PyCFrameWnd', 'PyCGdiObject', 'PyCImageList', 'PyCListBox', 'PyCListCtrl', 'PyCListView', 'PyCMDIChildWnd', 'PyCMDIFrameWnd', 'PyCMenu', 'PyCOleClientItem', 'PyCOleDialog', 'PyCOleDocument', 'PyCOleInsertDialog', 'PyCPrintDialog', 'PyCPrintInfo', 'PyCProgressCtrl', 'PyCPropertyPage', 'PyCPropertySheet', 'PyCRect', 'PyCRgn', 'PyCRichEditCtrl', 'PyCRichEditDoc', 'PyCRichEditDocTemplate', 'PyCRichEditView', 'PyCScrollView', 'PyCSliderCtrl', 'PyCSpinButtonCtrl', 'PyCSplitterWnd', 'PyCStatusBar', 'PyCStatusBarCtrl', 'PyCTabCtrl', 'PyCToolBar', 'PyCToolBarCtrl', 'PyCToolTipCtrl', 'PyCTreeCtrl', 'PyCTreeView', 'PyCView', 'PyCWinApp', 'PyCWinThread', 'PyCWnd', 'PyDDEConv', 'PyDDEServer', 'PyDDEStringItem', 'PyDDETopic', 'PyDLL', 'SCROLLINFO', 'TV_ITEM', 'EXTENSION_CONTROL_BLOCK', 'HSE_VERSION_INFO', 'HTTP_FILTER_AUTHENT', 'HTTP_FILTER_CONTEXT', 'HTTP_FILTER_LOG', 'HTTP_FILTER_PREPROC_HEADERS', 'HTTP_FILTER_RAW_DATA', 'HTTP_FILTER_URL_MAP', 'HTTP_FILTER_VERSION'] import typing @@ -226,7 +230,7 @@ Args: Returns: None - + """ pass @@ -242,14 +246,14 @@ Args: Returns: None - + """ pass def AddAccessAllowedAce(self,revision:'typing.Any',access:'typing.Any',sid:'PySID',access1:'typing.Any',sid1:'typing.Any') -> 'None': """ - Adds an access-allowed ACE to an DACL object. The access is granted to a + Adds an access-allowed ACE to an DACL object. The access is granted to a specified SID. @@ -264,7 +268,7 @@ Args: Returns: None - + """ pass @@ -283,7 +287,7 @@ Args: Returns: None - + """ pass @@ -304,14 +308,14 @@ Args: Returns: None - + """ pass def AddAccessDeniedAce(self,revision:'typing.Any',access:'typing.Any',sid:'PySID',access1:'typing.Any',sid1:'typing.Any') -> 'None': """ - Adds an access-denied ACE to an ACL object. The access is denied to a specified + Adds an access-denied ACE to an ACL object. The access is denied to a specified SID. @@ -326,7 +330,7 @@ Args: Returns: None - + """ pass @@ -345,7 +349,7 @@ Args: Returns: None - + """ pass @@ -364,7 +368,7 @@ Args: Returns: None - + """ pass @@ -384,7 +388,7 @@ Args: Returns: None - + """ pass @@ -405,7 +409,7 @@ Args: Returns: None - + """ pass @@ -428,7 +432,7 @@ Args: Returns: None - + """ pass @@ -444,7 +448,7 @@ Args: Returns: typing.Any - + """ pass @@ -460,7 +464,7 @@ Args: Returns: typing.Any - + """ pass @@ -476,7 +480,7 @@ Args: Returns: typing.Any - + """ pass @@ -491,7 +495,7 @@ Args: Returns: - typing.Any:Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned + typing.Any:Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned as a tuple of: Items[0] (int, int) : aceType, AceFlags @@ -499,7 +503,7 @@ Items[0] (int, int) : aceType, AceFlags [1] int : Mask [2] PySID : sid -Object ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) +Object ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) are returned as a tuple: [0] (int, int) : aceType, AceFlags @@ -513,7 +517,7 @@ are returned as a tuple: [4] PySID : sid For details see the API documentation. - + """ pass @@ -529,14 +533,14 @@ Args: Returns: None - + """ pass def GetEffectiveRightsFromAcl(self,trustee:'PyTRUSTEE') -> 'typing.Any': """ - Return access rights (ACCESS_MASK) that the ACL grants to + Return access rights (ACCESS_MASK) that the ACL grants to specified trustee @@ -547,14 +551,14 @@ Args: Returns: typing.Any - + """ pass def GetAuditedPermissionsFromAcl(self,trustee:'PyTRUSTEE') -> 'typing.Tuple[typing.Any, typing.Any]': """ - Return types of access for + Return types of access for which ACL will generate an audit event for specified trustee @@ -565,7 +569,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -608,7 +612,7 @@ class PyBITMAP(object): class PyBLENDFUNCTION(object): - """Tuple of four small ints used to fill a BLENDFUNCTION struct + """Tuple of four small ints used to fill a BLENDFUNCTION struct Each int must fit in a byte (0-255).""" @@ -647,7 +651,7 @@ Args: Returns: None - + """ pass @@ -665,7 +669,7 @@ Args: Returns: None - + """ pass @@ -681,7 +685,7 @@ Args: Returns: typing.List[typing.Any] - + """ pass @@ -697,7 +701,7 @@ Args: Returns: typing.List[typing.Any] - + """ pass @@ -717,14 +721,14 @@ Args: Returns: None - + """ pass def CertAddEncodedCertificateToStore(self,CertEncodingType:'typing.Any',CertEncoded:'typing.Any',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': """ - Imports an encoded certificate into the + Imports an encoded certificate into the store @@ -737,7 +741,7 @@ Args: Returns: PyCERT_CONTEXT - + """ pass @@ -754,7 +758,7 @@ Args: Returns: PyCERT_CONTEXT - + """ pass @@ -771,7 +775,7 @@ Args: Returns: PyCERT_CONTEXT - + """ pass @@ -788,7 +792,7 @@ Args: Returns: PyCTL_CONTEXT - + """ pass @@ -805,7 +809,7 @@ Args: Returns: PyCTL_CONTEXT - + """ pass @@ -823,7 +827,7 @@ Args: Returns: None - + """ pass @@ -839,7 +843,7 @@ Args: Returns: None - + """ pass @@ -856,7 +860,7 @@ Args: Returns: typing.Any - + """ pass @@ -1052,7 +1056,7 @@ Args: Returns: None - + """ pass @@ -1068,14 +1072,14 @@ Args: Returns: typing.List[typing.Any] - + """ pass def CryptAcquireCertificatePrivateKey(self,Flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PyCRYPTPROV]': """ - Retrieves the private key associated + Retrieves the private key associated with the certificate @@ -1091,14 +1095,14 @@ Comments Only the owner of the certificate can use this method Return ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key - + """ pass def CertGetIntendedKeyUsage(self,) -> 'typing.Any': """ - Returns the intended key usage from the certificate extensions + Returns the intended key usage from the certificate extensions (szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) @@ -1110,19 +1114,19 @@ Returns: typing.Any:PyCERT_CONTEXT.CertGetIntendedKeyUsage -int = CertGetIntendedKeyUsage()Returns the intended key usage from the certificate extensions +int = CertGetIntendedKeyUsage()Returns the intended key usage from the certificate extensions (szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) Return ValueReturns a combination of CERT_*_KEY_USAGE values - + """ pass def CertGetEnhancedKeyUsage(self,Flags:'typing.Any'=0) -> 'typing.Any': """ - Finds the enhanced key usage property and/or extension for the + Finds the enhanced key usage property and/or extension for the certificate @@ -1132,12 +1136,12 @@ Args: Returns: - typing.Any:CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, + typing.Any:CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0 Return ValueReturns a sequence of usage OIDs - + """ pass @@ -1153,7 +1157,7 @@ Args: Returns: str - + """ pass @@ -1169,11 +1173,11 @@ Args: Returns: - typing.Any:Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and + typing.Any:Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. - + """ pass @@ -1189,14 +1193,14 @@ Args: Returns: None - + """ pass def CertGetCertificateContextProperty(self,PropId:'typing.Any') -> 'typing.Any': """ - Retrieves the specified property from the + Retrieves the specified property from the certificate @@ -1231,20 +1235,20 @@ CERT_SIGNATURE_HASH_PROP_IDString containing a hash CERT_KEY_IDENTIFIER_PROP_IDString containing a hash CERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hash CERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROV -CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hash -CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hash -CERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and +CERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and CERT_ENHKEY_USAGE are identical) CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx - + with X509_ENHANCED_KEY_USAGE CERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dict @@ -1256,7 +1260,7 @@ CERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using crypto with szOID_NEXT_UPDATE_LOCATION Return ValueType of object returned is dependent on the property id requested. - + """ pass @@ -1274,7 +1278,7 @@ Args: Returns: None - + """ pass @@ -1344,11 +1348,11 @@ class PyCERT_NAME_VALUE(object): class PyCERT_OTHER_NAME(object): - """Dict containing {ObjId, Value}. + """Dict containing {ObjId, Value}. -ObjId is one of the string object id's identifying the type of name. +ObjId is one of the string object id's identifying the type of name. -Value is a binary string containing an encoded CERT_NAME_VALUE that can be decoded +Value is a binary string containing an encoded CERT_NAME_VALUE that can be decoded using X509_UNICODE_NAME_VALUE to return the actual unicode string""" @@ -1682,7 +1686,7 @@ Args: Returns: None - + """ pass @@ -1698,7 +1702,7 @@ Args: Returns: PyCRYPTHASH - + """ pass @@ -1715,7 +1719,7 @@ Args: Returns: None - + """ pass @@ -1732,7 +1736,7 @@ Args: Returns: None - + """ pass @@ -1749,7 +1753,7 @@ Args: Returns: str - + """ pass @@ -1767,7 +1771,7 @@ Args: Returns: None - + """ pass @@ -1789,7 +1793,7 @@ Comments After this method has been called, no more data can be hashed Return ValueType of returned object is dependent on the Param passed in - + """ pass @@ -1824,7 +1828,7 @@ Args: Returns: None - + """ pass @@ -1844,7 +1848,7 @@ Returns: typing.Any:Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0 Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey - + """ pass @@ -1863,7 +1867,7 @@ Returns: typing.Any:Reserved, use only 0 Return ValueType of returned object is dependent on the requested attribute - + """ pass @@ -1880,7 +1884,7 @@ Args: Returns: PyCRYPTKEY - + """ pass @@ -1899,7 +1903,7 @@ Args: Returns: typing.Any - + """ pass @@ -1918,7 +1922,7 @@ Args: Returns: typing.Any - + """ pass @@ -1947,7 +1951,7 @@ Args: Returns: None - + """ pass @@ -1977,7 +1981,7 @@ Args: Returns: None - + """ pass @@ -1995,7 +1999,7 @@ Args: Returns: PyCRYPTKEY - + """ pass @@ -2011,12 +2015,12 @@ Args: Returns: - None:If param if PP_KEYSET_SEC_DESCR, can be a combination of + None:If param if PP_KEYSET_SEC_DESCR, can be a combination of OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATION Return ValueType of returned object is dependent on the attribute requested - + """ pass @@ -2032,7 +2036,7 @@ Args: Returns: PyCRYPTKEY - + """ pass @@ -2049,7 +2053,7 @@ Args: Returns: str - + """ pass @@ -2067,7 +2071,7 @@ Args: Returns: PyCRYPTHASH - + """ pass @@ -2085,14 +2089,14 @@ Args: Returns: PyCRYPTKEY - + """ pass def CryptExportPublicKeyInfo(self,KeySpec:'typing.Any',CertEncodingType:'typing.Any') -> 'PyCERT_PUBLIC_KEY_INFO': """ - Exports a public key to send to other users + Exports a public key to send to other users Returned dict can be serialized for sending to another python application using pickle.dump @@ -2104,7 +2108,7 @@ Args: Returns: PyCERT_PUBLIC_KEY_INFO - + """ pass @@ -2121,13 +2125,13 @@ Args: Returns: PyCRYPTKEY - + """ pass class PyCRYPT_ALGORITHM_IDENTIFIER(object): - """Dictionary containing information that identifies an encryption + """Dictionary containing information that identifies an encryption algorithm and any extra parameters it requires""" @@ -2375,7 +2379,7 @@ Args: Returns: None - + """ pass @@ -2391,7 +2395,7 @@ Args: Returns: typing.Tuple[typing.Any, ...] - + """ pass @@ -2411,7 +2415,7 @@ Returns: ((str,str),...) = CertEnumSubjectInSortedCTL()Retrieves trusted subjects contained in CRL Return ValueReturns a sequence of tuples containing two strings (SubjectIdentifier, EncodedAttributes) - + """ pass @@ -2427,7 +2431,7 @@ Args: Returns: None - + """ pass @@ -2443,7 +2447,7 @@ Args: Returns: str - + """ pass @@ -2464,7 +2468,7 @@ class PyConsoleScreenBuffer(object): def SetConsoleActiveScreenBuffer(self,) -> 'None': """ - Sets this handle as the currently displayed screen + Sets this handle as the currently displayed screen buffer @@ -2475,14 +2479,14 @@ Args: Returns: None - + """ pass def GetConsoleCursorInfo(self,) -> 'typing.Tuple[typing.Any, typing.Any]': """ - Retrieves size and visibility of console's + Retrieves size and visibility of console's cursor @@ -2494,14 +2498,14 @@ Returns: typing.Tuple[typing.Any, typing.Any]:PyConsoleScreenBuffer.GetConsoleCursorInfo -(Size, bVisible) = GetConsoleCursorInfo()Retrieves size and visibility of console's +(Size, bVisible) = GetConsoleCursorInfo()Retrieves size and visibility of console's cursor -Return ValueReturns the size of the console's cursor expressed as a percentage of character size, and a boolen indicating +Return ValueReturns the size of the console's cursor expressed as a percentage of character size, and a boolen indicating if cursor is visible - + """ pass @@ -2518,7 +2522,7 @@ Args: Returns: None - + """ pass @@ -2538,7 +2542,7 @@ Returns: int = GetConsoleMode()Returns the input or output mode of the console buffer Return ValueReturns a combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants - + """ pass @@ -2554,7 +2558,7 @@ Args: Returns: None - + """ pass @@ -2570,7 +2574,7 @@ Args: Returns: typing.Any - + """ pass @@ -2587,7 +2591,7 @@ Returns: typing.Any:String or Unicode to be written to consoleReturn ValueReturns the number of characters written - + """ pass @@ -2603,7 +2607,7 @@ Args: Returns: None - + """ pass @@ -2619,7 +2623,7 @@ Args: Returns: None - + """ pass @@ -2635,7 +2639,7 @@ Args: Returns: None - + """ pass @@ -2651,7 +2655,7 @@ Args: Returns: None - + """ pass @@ -2668,7 +2672,7 @@ Args: Returns: None - + """ pass @@ -2684,14 +2688,14 @@ Args: Returns: typing.Any - + """ pass def GetLargestConsoleWindowSize(self,) -> 'PyCOORD': """ - Returns the largest possible size for the + Returns the largest possible size for the console's window @@ -2702,14 +2706,14 @@ Args: Returns: PyCOORD - + """ pass def FillConsoleOutputAttribute(self,Attribute:'typing.Any',Length:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': """ - Set text attributes for a consecutive series of + Set text attributes for a consecutive series of characters @@ -2723,14 +2727,14 @@ Returns: typing.Any:The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set - + """ pass def FillConsoleOutputCharacter(self,Character:'typing.Any',Length:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': """ - Sets consecutive character positions to a specified + Sets consecutive character positions to a specified character @@ -2744,14 +2748,14 @@ Returns: typing.Any:The screen position to begin atReturn ValueReturns the number of characters actually written - + """ pass def ReadConsoleOutputCharacter(self,Length:'typing.Any',ReadCoord:'PyCOORD') -> 'str': """ - Reads consecutive characters from a starting + Reads consecutive characters from a starting position @@ -2763,14 +2767,14 @@ Args: Returns: str - + """ pass def ReadConsoleOutputAttribute(self,Length:'typing.Any',ReadCoord:'PyCOORD') -> 'typing.Tuple[typing.Any, ...]': """ - Retrieves attributes from consecutive character + Retrieves attributes from consecutive character cells @@ -2783,7 +2787,7 @@ Returns: typing.Tuple[typing.Any, ...]:The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters - + """ pass @@ -2801,7 +2805,7 @@ Returns: typing.Any:The screen position at which to start writingReturn ValueReturns the number of characters actually written - + """ pass @@ -2819,7 +2823,7 @@ Returns: typing.Any:The screen position at which to start writingReturn ValueReturns the number of attributes set - + """ pass @@ -2839,7 +2843,7 @@ Args: Returns: None - + """ pass @@ -2857,14 +2861,14 @@ Returns: typing.Tuple[typing.Any, PyCOORD]:If True, retrieves font size for maximum window size Comments -Only exists on XP or later. +Only exists on XP or later. -MSDN docs claim the returned COORD is the font size, but it's actually the window size. +MSDN docs claim the returned COORD is the font size, but it's actually the window size. Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size. Return ValueReturns the index of current font and window size - + """ pass @@ -2880,7 +2884,7 @@ Args: Returns: PyCOORD - + """ pass @@ -2896,7 +2900,7 @@ Args: Returns: None - + """ pass @@ -2912,7 +2916,7 @@ Args: Returns: None - + """ pass @@ -2929,7 +2933,7 @@ Args: Returns: None - + """ pass @@ -2946,14 +2950,14 @@ Returns: typing.Any:A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written - + """ pass def ReadConsoleInput(self,Length:'typing.Any') -> 'typing.Tuple[PyINPUT_RECORD, ...]': """ - Reads input records and removes them from + Reads input records and removes them from the input queue @@ -2965,19 +2969,19 @@ Returns: typing.Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments -This functions blocks until at least one record is read. +This functions blocks until at least one record is read. The number of records returned may be less than the nbr requested Return ValueReturns a sequence of PyINPUT_RECORD objects - + """ pass def PeekConsoleInput(self,Length:'typing.Any') -> 'typing.Tuple[PyINPUT_RECORD, ...]': """ - Returns pending input records without + Returns pending input records without removing them from the input queue @@ -2989,19 +2993,19 @@ Returns: typing.Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments -This function does not block as ReadConsoleInput does. +This function does not block as ReadConsoleInput does. The number of records returned may be less than the nbr requested Return ValueReturns a sequence of PyINPUT_RECORD objects - + """ pass def GetNumberOfConsoleInputEvents(self,) -> 'typing.Any': """ - Returns the number of unread records in the input + Returns the number of unread records in the input queue @@ -3012,7 +3016,7 @@ Args: Returns: typing.Any - + """ pass @@ -3035,7 +3039,7 @@ Args: Returns: typing.Any - + """ pass @@ -3051,7 +3055,7 @@ Args: Returns: None - + """ pass @@ -3080,18 +3084,18 @@ Return type SECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials represent -SECPKG_ATTR_SUPPORTED_ALGSNot supported yet +SECPKG_ATTR_SUPPORTED_ALGSNot supported yet SecPkgCred_SupportedAlgs: -SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet +SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet SecPkgCred_CipherStrengths: -SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet +SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet SecPkgCred_SupportedProtocols: Return ValueType of returned values is dependent on Attribute - + """ pass @@ -3114,7 +3118,7 @@ Args: Returns: typing.Any - + """ pass @@ -3130,7 +3134,7 @@ Args: Returns: None - + """ pass @@ -3146,7 +3150,7 @@ Args: Returns: None - + """ pass @@ -3162,7 +3166,7 @@ Args: Returns: None - + """ pass @@ -3178,14 +3182,14 @@ Args: Returns: typing.Any - + """ pass def MakeSignature(self,fqop:'typing.Any',Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': """ - Creates a crytographic hash of a message using session key of the security + Creates a crytographic hash of a message using session key of the security context @@ -3197,16 +3201,16 @@ Args: Returns: - None:A sequential number used by some packages to verify that no extraneous messages have + None:A sequential number used by some packages to verify that no extraneous messages have been receivedComments -The buffer configuration is dependent on the security package. Usually there is one input buffer of +The buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKEN Return ValueReturns None on success, and output buffer in Message will contain the signature - + """ pass @@ -3222,18 +3226,18 @@ Args: Returns: - None:A sequential number used by some packages to verify that no extraneous messages have + None:A sequential number used by some packages to verify that no extraneous messages have been receivedComments -The buffer configuration is dependent on the security package. Usually there is a data buffer of type +The buffer configuration is dependent on the security package. Usually there is a data buffer of type -SECBUFFER_DATA +SECBUFFER_DATA and a signature buffer of type SECBUFFER_TOKEN Return ValueReturns quality of protection flags used to create signature - + """ pass @@ -3250,18 +3254,18 @@ Args: Returns: - None:A sequential number used by some packages to verify that no extraneous messages have + None:A sequential number used by some packages to verify that no extraneous messages have been receivedComments -The buffer configuration is dependent on the security package. Usually there is one input buffer +The buffer configuration is dependent on the security package. Usually there is one input buffer -of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or +of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or SECBUFFER_TOKEN to receive signature or padding data Return ValueReturns None on success, and buffer(s) will contain encrypted data - + """ pass @@ -3277,20 +3281,20 @@ Args: Returns: - None:A sequential number used by some packages to verify that no extraneous messages have + None:A sequential number used by some packages to verify that no extraneous messages have been receivedComments -The buffer configuration is dependent on the security package. Usually there is one buffer +The buffer configuration is dependent on the security package. Usually there is one buffer -of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or +of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or -SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit +SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit in first buffer Return ValueReturns flags specfic to security package indicating quality of protection - + """ pass @@ -3306,7 +3310,7 @@ Args: Returns: None - + """ pass @@ -3322,7 +3326,7 @@ Args: Returns: None - + """ pass @@ -3754,7 +3758,7 @@ Args: Returns: None - + """ pass @@ -4060,7 +4064,7 @@ Args: Returns: None - + """ pass @@ -4111,7 +4115,7 @@ Args: Returns: typing.Any - + """ pass @@ -4131,9 +4135,9 @@ class PyEVTLOG_HANDLE(object): class PyEVT_HANDLE(object): - """Handle to an event log, session, query, or any other object used with + """Handle to an event log, session, query, or any other object used with -the Evt* event log functions on Vista and later. +the Evt* event log functions on Vista and later. When the object is destroyed, EvtClose is called.""" @@ -4398,7 +4402,7 @@ Args: Returns: None - + """ pass @@ -4414,7 +4418,7 @@ Args: Returns: None - + """ pass @@ -4434,18 +4438,18 @@ Returns: int = Detach()Detaches the Win32 handle from the handle object. Comments -After calling this function, the handle is effectively invalidated, +After calling this function, the handle is effectively invalidated, -but the handle is not closed. You would call this function when you +but the handle is not closed. You would call this function when you -need the underlying win32 handle to exist beyond the lifetime of the +need the underlying win32 handle to exist beyond the lifetime of the handle object. -Return ValueThe result is the value of the handle before it is detached. If the +Return ValueThe result is the value of the handle before it is detached. If the handle is already detached, this will return zero. - + """ pass @@ -4468,7 +4472,7 @@ Args: Returns: None - + """ pass @@ -4484,7 +4488,7 @@ Args: Returns: typing.Tuple[int, ...] - + """ pass @@ -4500,7 +4504,7 @@ Args: Returns: None - + """ pass @@ -4516,7 +4520,7 @@ Args: Returns: None - + """ pass @@ -4529,7 +4533,7 @@ class PyHDEVNOTIFY(object): class PyHHNTRACK(object): - """A Python object, representing an HHNTRACK + """A Python object, representing an HHNTRACK structure""" @@ -4562,7 +4566,7 @@ structure""" class PyHHN_NOTIFY(object): - """A Python object, representing an HHN_NOTIFY + """A Python object, representing an HHN_NOTIFY structure""" @@ -4626,7 +4630,7 @@ class PyHH_AKLINK(object): class PyHH_FTS_QUERY(object): - """A Python object, representing an HH_FTS_QUERY + """A Python object, representing an HH_FTS_QUERY structure""" @@ -4939,7 +4943,7 @@ Args: Returns: typing.Tuple[typing.Any, ...] - + """ pass @@ -4955,7 +4959,7 @@ Args: Returns: None - + """ pass @@ -4971,7 +4975,7 @@ Args: Returns: None - + """ pass @@ -4991,7 +4995,7 @@ class PyIID(object): class PyINPUT_RECORD(object): - """Interface to the INPUT_RECORD struct used with console IO functions. Create using + """Interface to the INPUT_RECORD struct used with console IO functions. Create using PyINPUT_RECORDType(EventType)""" @@ -5123,7 +5127,7 @@ class PyLOCALGROUP_INFO_1002(object): class PyLOCALGROUP_MEMBERS_INFO_0(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_0 + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_0 structure.""" @@ -5138,7 +5142,7 @@ structure.""" class PyLOCALGROUP_MEMBERS_INFO_1(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_1 + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_1 structure.""" @@ -5165,7 +5169,7 @@ structure.""" class PyLOCALGROUP_MEMBERS_INFO_2(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_2 + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_2 structure.""" @@ -5192,7 +5196,7 @@ structure.""" class PyLOCALGROUP_MEMBERS_INFO_3(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_3 + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_3 structure.""" @@ -5427,7 +5431,7 @@ class PyNET_VALIDATE_PERSISTED_FIELDS(object): class PyNMHDR(object): - """A Python object, representing an NMHDR + """A Python object, representing an NMHDR structure""" @@ -5517,7 +5521,7 @@ class PyOVERLAPPEDReadBuffer(object): class PyPERF_COUNTER_DEFINITION(object): - """An object encapsulating a Windows NT Performance Monitor counter definition + """An object encapsulating a Windows NT Performance Monitor counter definition (PERF_COUNTER_DEFINITION).""" @@ -5566,7 +5570,7 @@ Args: Returns: None - + """ pass @@ -5582,7 +5586,7 @@ Args: Returns: None - + """ pass @@ -5598,7 +5602,7 @@ Args: Returns: None - + """ pass @@ -5614,7 +5618,7 @@ Args: Returns: None - + """ pass @@ -5655,7 +5659,7 @@ Args: Returns: None - + """ pass @@ -5734,7 +5738,7 @@ Args: Returns: None - + """ pass @@ -5811,7 +5815,7 @@ Args: Returns: None - + """ pass @@ -5827,14 +5831,14 @@ Args: Returns: PySID - + """ pass def GetSecurityDescriptorDacl(self,) -> 'PyACL': """ - Return the discretionary ACL of the security + Return the discretionary ACL of the security descriptor. @@ -5845,7 +5849,7 @@ Args: Returns: PyACL - + """ pass @@ -5861,14 +5865,14 @@ Args: Returns: PyACL - + """ pass def GetSecurityDescriptorControl(self,) -> 'typing.Tuple[typing.Any, typing.Any]': """ - Returns tuple of Control bit flags and + Returns tuple of Control bit flags and revision of SD. @@ -5879,7 +5883,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -5896,7 +5900,7 @@ Args: Returns: None - + """ pass @@ -5913,14 +5917,14 @@ Args: Returns: typing.Any - + """ pass def SetSecurityDescriptorSacl(self,bSaclPresent:'typing.Any',SACL:'PyACL',bSaclDefaulted:'typing.Any') -> 'None': """ - Replaces system access control list (SACL) in the security + Replaces system access control list (SACL) in the security descriptor. @@ -5933,7 +5937,7 @@ Args: Returns: None - + """ pass @@ -5949,7 +5953,7 @@ Args: Returns: None - + """ pass @@ -5965,7 +5969,7 @@ Args: Returns: None - + """ pass @@ -5981,14 +5985,14 @@ Args: Returns: None - + """ pass def SetSecurityDescriptorControl(self,ControlBitsOfInterest:'typing.Any',ControlBitsToSet:'typing.Any') -> 'None': """ - Sets the control bit flags related to inheritance for a + Sets the control bit flags related to inheritance for a security descriptor @@ -6000,7 +6004,7 @@ Args: Returns: None - + """ pass @@ -7062,7 +7066,7 @@ Args: Returns: None - + """ pass @@ -7078,7 +7082,7 @@ Args: Returns: None - + """ pass @@ -7095,7 +7099,7 @@ Args: Returns: None - + """ pass @@ -7111,7 +7115,7 @@ Args: Returns: typing.Any - + """ pass @@ -7127,7 +7131,7 @@ Args: Returns: typing.Any - + """ pass @@ -7143,14 +7147,14 @@ Args: Returns: typing.Any - + """ pass def GetSidIdentifierAuthority(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': """ - Returns a tuple of 6 SID_IDENTIFIER_AUTHORITY + Returns a tuple of 6 SID_IDENTIFIER_AUTHORITY constants @@ -7161,7 +7165,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -7181,7 +7185,7 @@ class PySIZE(object): class PySMALL_RECT(object): - """Wrapper for a SMALL_RECT struct + """Wrapper for a SMALL_RECT struct Create using PySMALL_RECTType(Left, Top, Right, Bottom). All params optional, defaulting to 0""" @@ -7305,7 +7309,7 @@ class PySTARTUPINFO(object): class PySecBuffer(object): - """Python object wrapping a SecBuffer structure + """Python object wrapping a SecBuffer structure Created using win32security.PySecBufferType(type,size) where type is a SECBUFFER_* constant""" @@ -7348,7 +7352,7 @@ Args: Returns: None - + """ pass @@ -7371,7 +7375,7 @@ Args: Returns: None - + """ pass @@ -7543,7 +7547,7 @@ Args: Returns: str - + """ pass @@ -9536,13 +9540,13 @@ Args: Returns: None - + """ pass class PyXFORM(object): - """Dict representing an XFORM struct used as a world transformation matrix + """Dict representing an XFORM struct used as a world transformation matrix All members are optional, defaulting to 0.0.""" @@ -9604,7 +9608,7 @@ Args: Returns: None - + """ pass @@ -9622,7 +9626,7 @@ Returns: typing.Any:Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found - + """ pass @@ -9639,7 +9643,7 @@ Args: Returns: None - + """ pass @@ -9657,7 +9661,7 @@ Args: Returns: None - + """ pass @@ -9673,7 +9677,7 @@ Args: Returns: typing.Any - + """ pass @@ -9689,7 +9693,7 @@ Args: Returns: typing.Any - + """ pass @@ -9705,7 +9709,7 @@ Args: Returns: typing.Any - + """ pass @@ -9723,7 +9727,7 @@ Args: Returns: None - + """ pass @@ -9740,7 +9744,7 @@ Args: Returns: None - + """ pass @@ -9756,7 +9760,7 @@ Args: Returns: typing.Any - + """ pass @@ -9772,7 +9776,7 @@ Args: Returns: typing.Any - + """ pass @@ -9788,7 +9792,7 @@ Args: Returns: None - + """ pass @@ -9804,13 +9808,13 @@ Args: Returns: None - + """ pass class RASDIALEXTENSIONS(object): - """An object that describes a Win32 RASDIALEXTENSIONS structure + """An object that describes a Win32 RASDIALEXTENSIONS structure TRUE*/)""" @@ -9958,7 +9962,7 @@ Args: Returns: None - + """ pass @@ -9974,7 +9978,7 @@ Args: Returns: None - + """ pass @@ -9990,7 +9994,7 @@ Args: Returns: None - + """ pass @@ -10006,7 +10010,7 @@ Args: Returns: None - + """ pass @@ -10022,7 +10026,7 @@ Args: Returns: None - + """ pass @@ -10045,7 +10049,7 @@ Args: Returns: None - + """ pass @@ -10062,7 +10066,7 @@ Args: Returns: typing.Any - + """ pass @@ -10078,7 +10082,7 @@ Args: Returns: typing.Any - + """ pass @@ -10094,7 +10098,7 @@ Args: Returns: typing.List[typing.Any] - + """ pass @@ -10110,7 +10114,7 @@ Args: Returns: typing.List[typing.Any] - + """ pass @@ -10126,7 +10130,7 @@ Args: Returns: None - + """ pass @@ -10142,7 +10146,7 @@ Args: Returns: None - + """ pass @@ -10816,7 +10820,7 @@ class PyADS_SEARCHPREF_INFO(object): class PyBIND_OPTS(object): - """Dictionary representation of a BIND_OPTS struct + """Dictionary representation of a BIND_OPTS struct May eventually be extended to include BIND_OPTS2 members""" @@ -11226,7 +11230,7 @@ Args: Returns: None - + """ pass @@ -11242,7 +11246,7 @@ Args: Returns: None - + """ pass @@ -11260,7 +11264,7 @@ Args: Returns: None - + """ pass @@ -11280,7 +11284,7 @@ Args: Returns: None - + """ pass @@ -11299,7 +11303,7 @@ Args: Returns: None - + """ pass @@ -11320,7 +11324,7 @@ Args: Returns: None - + """ pass @@ -11339,7 +11343,7 @@ Args: Returns: None - + """ pass @@ -11360,7 +11364,7 @@ Args: Returns: None - + """ pass @@ -11377,7 +11381,7 @@ Args: Returns: None - + """ pass @@ -11396,7 +11400,7 @@ Args: Returns: None - + """ pass @@ -11414,7 +11418,7 @@ Args: Returns: None - + """ pass @@ -11436,7 +11440,7 @@ Args: Returns: None - + """ pass @@ -11453,7 +11457,7 @@ Args: Returns: None - + """ pass @@ -11469,7 +11473,7 @@ Args: Returns: None - + """ pass @@ -11485,7 +11489,7 @@ Args: Returns: None - + """ pass @@ -11501,7 +11505,7 @@ Args: Returns: None - + """ pass @@ -11515,7 +11519,7 @@ class PyGSecurityInformation(object): def GetObjectInformation(self,) -> 'SI_OBJECT_INFO': """ - Returns information identifying the object + Returns information identifying the object whose security is to be editted, and which pages are to appear in the property sheet @@ -11526,26 +11530,26 @@ Args: Returns: SI_OBJECT_INFO:PyGSecurityInformation.GetObjectInformation -SI_OBJECT_INFO = GetObjectInformation()Returns information identifying the object +SI_OBJECT_INFO = GetObjectInformation()Returns information identifying the object whose security is to be editted, and which pages are to appear in the property sheet Comments -Due to peculiarities of the underlying system calls, this method will only be called once, +Due to peculiarities of the underlying system calls, this method will only be called once, -and subsequent calls will return the information obtained on the first call. As a consequence, a new +and subsequent calls will return the information obtained on the first call. As a consequence, a new instance of the interface will need to be created for each object whose security is to be displayed. Return ValueYour implementation of this method should return a SI_OBJECT_INFO tuple - + """ pass def GetSecurity(self,RequestedInformation:'typing.Any',Default:'typing.Any') -> 'PySECURITY_DESCRIPTOR': """ - Retrieves the object's current security + Retrieves the object's current security settings @@ -11557,7 +11561,7 @@ Args: Returns: PySECURITY_DESCRIPTOR - + """ pass @@ -11575,7 +11579,7 @@ Returns: None:The security information to be applied to the objectReturn ValueAny returned value is ignored - + """ pass @@ -11591,13 +11595,13 @@ Args: Returns: - typing.Tuple[SI_ACCESS, typing.Any]:Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, + typing.Tuple[SI_ACCESS, typing.Any]:Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, -SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, +SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, and a zero-based index indicating which of them is the default - + """ pass @@ -11619,14 +11623,14 @@ Returns: See win32security::MapGenericMask Return ValueThis method should return the input bitmask will all generic rights mapped to specific rights - + """ pass def GetInheritTypes(self,) -> 'typing.Tuple[SI_INHERIT_TYPE, ...]': """ - Requests types of inheritance that your + Requests types of inheritance that your implementation supports @@ -11638,12 +11642,12 @@ Returns: typing.Tuple[SI_INHERIT_TYPE, ...]:PyGSecurityInformation.GetInheritTypes -(SI_INHERIT_TYPE,...) = GetInheritTypes()Requests types of inheritance that your +(SI_INHERIT_TYPE,...) = GetInheritTypes()Requests types of inheritance that your implementation supports Return ValueReturns a sequence of SI_INHERIT_TYPE tuples - + """ pass @@ -11662,7 +11666,7 @@ Returns: None:SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored - + """ pass @@ -11685,17 +11689,17 @@ Args: Returns: None - + """ pass class PyIADs(object): - """An object representing the IADs interface. + """An object representing the IADs interface. -In most cases you can achieve the same result via IDispatch - however, this +In most cases you can achieve the same result via IDispatch - however, this -interface allows you get get and set properties without the IDispatch +interface allows you get get and set properties without the IDispatch overhead.""" @@ -11756,7 +11760,7 @@ Args: Returns: None - + """ pass @@ -11772,7 +11776,7 @@ Args: Returns: None - + """ pass @@ -11787,11 +11791,11 @@ Args: Returns: - typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. - + """ pass @@ -11808,7 +11812,7 @@ Args: Returns: None - + """ pass @@ -11823,11 +11827,11 @@ Args: Returns: - typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. - + """ pass @@ -11844,7 +11848,7 @@ Args: Returns: None - + """ pass @@ -11868,7 +11872,7 @@ Args: Returns: PyIDispatch - + """ pass @@ -11884,7 +11888,7 @@ Args: Returns: typing.Any - + """ pass @@ -11900,7 +11904,7 @@ Args: Returns: typing.Any - + """ pass @@ -11916,7 +11920,7 @@ Args: Returns: None - + """ pass @@ -11932,7 +11936,7 @@ Args: Returns: typing.Any - + """ pass @@ -11948,7 +11952,7 @@ Args: Returns: None - + """ pass @@ -11971,7 +11975,7 @@ Args: Returns: typing.Any - + """ pass @@ -11987,7 +11991,7 @@ Args: Returns: None - + """ pass @@ -12003,7 +12007,7 @@ Args: Returns: typing.Any - + """ pass @@ -12019,7 +12023,7 @@ Args: Returns: None - + """ pass @@ -12035,7 +12039,7 @@ Args: Returns: typing.Any - + """ pass @@ -12051,7 +12055,7 @@ Args: Returns: typing.Any - + """ pass @@ -12067,7 +12071,7 @@ Args: Returns: typing.Any - + """ pass @@ -12083,7 +12087,7 @@ Args: Returns: None - + """ pass @@ -12099,7 +12103,7 @@ Args: Returns: typing.Any - + """ pass @@ -12115,7 +12119,7 @@ Args: Returns: None - + """ pass @@ -12131,7 +12135,7 @@ Args: Returns: typing.Any - + """ pass @@ -12147,7 +12151,7 @@ Args: Returns: None - + """ pass @@ -12163,7 +12167,7 @@ Args: Returns: typing.Any - + """ pass @@ -12179,7 +12183,7 @@ Args: Returns: None - + """ pass @@ -12195,7 +12199,7 @@ Args: Returns: typing.Any - + """ pass @@ -12211,7 +12215,7 @@ Args: Returns: None - + """ pass @@ -12227,7 +12231,7 @@ Args: Returns: typing.Any - + """ pass @@ -12243,7 +12247,7 @@ Args: Returns: None - + """ pass @@ -12259,7 +12263,7 @@ Args: Returns: typing.Any - + """ pass @@ -12275,7 +12279,7 @@ Args: Returns: None - + """ pass @@ -12291,7 +12295,7 @@ Args: Returns: typing.Any - + """ pass @@ -12307,7 +12311,7 @@ Args: Returns: None - + """ pass @@ -12323,7 +12327,7 @@ Args: Returns: typing.Any - + """ pass @@ -12339,7 +12343,7 @@ Args: Returns: None - + """ pass @@ -12355,7 +12359,7 @@ Args: Returns: typing.Any - + """ pass @@ -12371,7 +12375,7 @@ Args: Returns: None - + """ pass @@ -12387,7 +12391,7 @@ Args: Returns: None - + """ pass @@ -12404,7 +12408,7 @@ Args: Returns: None - + """ pass @@ -12427,7 +12431,7 @@ Args: Returns: None - + """ pass @@ -12444,7 +12448,7 @@ Args: Returns: typing.Any - + """ pass @@ -12461,7 +12465,7 @@ Args: Returns: None - + """ pass @@ -12479,7 +12483,7 @@ Returns: typing.Any:Use 0 if passed in Return ValueReturns one of the WPSTYLE_* values - + """ pass @@ -12496,7 +12500,7 @@ Args: Returns: None - + """ pass @@ -12515,7 +12519,7 @@ Returns: None:Use 0 if passed in Return ValueReturns a unicode string containing decimal values representing the pattern - + """ pass @@ -12532,7 +12536,7 @@ Args: Returns: None - + """ pass @@ -12552,7 +12556,7 @@ Returns: dict = GetDesktopItemOptions()Returns options for Active Desktop. Return ValueReturns a COMPONENTSOPT dictionary - + """ pass @@ -12569,7 +12573,7 @@ Args: Returns: None - + """ pass @@ -12586,7 +12590,7 @@ Args: Returns: None - + """ pass @@ -12604,7 +12608,7 @@ Args: Returns: None - + """ pass @@ -12621,7 +12625,7 @@ Args: Returns: None - + """ pass @@ -12638,7 +12642,7 @@ Args: Returns: None - + """ pass @@ -12654,7 +12658,7 @@ Args: Returns: None - + """ pass @@ -12673,7 +12677,7 @@ Returns: typing.Any:Use 0 if passed in Return ValueReturns a COMPONENT dictionary describing the item - + """ pass @@ -12692,7 +12696,7 @@ Returns: typing.Any:Use 0 if passed in Return ValueReturns a COMPONENT dictionary - + """ pass @@ -12710,7 +12714,7 @@ Args: Returns: None - + """ pass @@ -12729,7 +12733,7 @@ Args: Returns: None - + """ pass @@ -12748,7 +12752,7 @@ Returns: typing.Any:Use 0 if passed in Return ValueReturns a COMPONENT dictionary - + """ pass @@ -12771,7 +12775,7 @@ Args: Returns: None - + """ pass @@ -12785,7 +12789,7 @@ class PyIActiveScriptDebug(object): def GetScriptTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'typing.Any') -> 'typing.Tuple[typing.Any, ...]': """ - Returns the text attributes for an arbitrary block + Returns the text attributes for an arbitrary block of script text. @@ -12798,7 +12802,7 @@ Args: Returns: typing.Tuple[typing.Any, ...] - + """ pass @@ -12816,7 +12820,7 @@ Args: Returns: None - + """ pass @@ -12834,7 +12838,7 @@ Args: Returns: None - + """ pass @@ -12857,7 +12861,7 @@ Args: Returns: None - + """ pass @@ -12873,7 +12877,7 @@ Args: Returns: None - + """ pass @@ -12889,7 +12893,7 @@ Args: Returns: None - + """ pass @@ -12912,7 +12916,7 @@ Args: Returns: None - + """ pass @@ -12928,7 +12932,7 @@ Args: Returns: None - + """ pass @@ -12959,7 +12963,7 @@ Args: Returns: None - + """ pass @@ -12982,7 +12986,7 @@ Args: Returns: typing.Any - + """ pass @@ -12998,7 +13002,7 @@ Args: Returns: typing.Any - + """ pass @@ -13014,7 +13018,7 @@ Args: Returns: typing.Any - + """ pass @@ -13030,7 +13034,7 @@ Args: Returns: typing.Any - + """ pass @@ -13046,7 +13050,7 @@ Args: Returns: typing.Any - + """ pass @@ -13062,7 +13066,7 @@ Args: Returns: typing.Any - + """ pass @@ -13078,7 +13082,7 @@ Args: Returns: typing.Any - + """ pass @@ -13094,7 +13098,7 @@ Args: Returns: typing.Any - + """ pass @@ -13119,7 +13123,7 @@ Args: Returns: None - + """ pass @@ -13135,7 +13139,7 @@ Args: Returns: None - + """ pass @@ -13151,14 +13155,14 @@ Args: Returns: None - + """ pass def OnScriptErrorDebug(self,) -> 'typing.Tuple[typing.Any, typing.Any]': """ - Allows a smart host to control the handling of runtime + Allows a smart host to control the handling of runtime errors @@ -13170,12 +13174,12 @@ Returns: typing.Tuple[typing.Any, typing.Any]:PyIActiveScriptSiteDebug.OnScriptErrorDebug -int, int = OnScriptErrorDebug()Allows a smart host to control the handling of runtime +int, int = OnScriptErrorDebug()Allows a smart host to control the handling of runtime errors Return ValueThe result is a tuple of (bCallDebugger, bCallOnScriptErrorWhenContinuing) - + """ pass @@ -13201,7 +13205,7 @@ Args: Returns: None - + """ pass @@ -13219,7 +13223,7 @@ Args: Returns: typing.Any - + """ pass @@ -13239,7 +13243,7 @@ Returns: typing.Any:Reserved - must be zero. Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - + """ pass @@ -13262,7 +13266,7 @@ Args: Returns: None - + """ pass @@ -13281,7 +13285,7 @@ Args: Returns: None - + """ pass @@ -13297,7 +13301,7 @@ Args: Returns: None - + """ pass @@ -13315,7 +13319,7 @@ Args: Returns: None - + """ pass @@ -13331,7 +13335,7 @@ Args: Returns: None - + """ pass @@ -13348,7 +13352,7 @@ Args: Returns: None - + """ pass @@ -13371,7 +13375,7 @@ Args: Returns: None - + """ pass @@ -13387,7 +13391,7 @@ Args: Returns: None - + """ pass @@ -13403,7 +13407,7 @@ Args: Returns: None - + """ pass @@ -13426,7 +13430,7 @@ Args: Returns: None - + """ pass @@ -13444,7 +13448,7 @@ Args: Returns: PyIEnumObjects - + """ pass @@ -13467,7 +13471,7 @@ Args: Returns: None - + """ pass @@ -13483,7 +13487,7 @@ Args: Returns: typing.Any - + """ pass @@ -13499,7 +13503,7 @@ Args: Returns: None - + """ pass @@ -13515,7 +13519,7 @@ Args: Returns: None - + """ pass @@ -13533,7 +13537,7 @@ Args: Returns: None - + """ pass @@ -13557,7 +13561,7 @@ Args: Returns: typing.Any - + """ pass @@ -13571,7 +13575,7 @@ class PyIBindCtx(object): def GetRunningObjectTable(self,) -> 'PyIRunningObjectTable': """ - Retrieves an object interfacing to the Running + Retrieves an object interfacing to the Running Object Table. @@ -13582,7 +13586,7 @@ Args: Returns: PyIRunningObjectTable - + """ pass @@ -13598,7 +13602,7 @@ Args: Returns: PyBIND_OPTS - + """ pass @@ -13614,7 +13618,7 @@ Args: Returns: None - + """ pass @@ -13631,7 +13635,7 @@ Args: Returns: None - + """ pass @@ -13647,7 +13651,7 @@ Args: Returns: None - + """ pass @@ -13663,7 +13667,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -13679,7 +13683,7 @@ Args: Returns: PyIEnumString - + """ pass @@ -13702,7 +13706,7 @@ Args: Returns: None - + """ pass @@ -13725,7 +13729,7 @@ Args: Returns: None - + """ pass @@ -13745,7 +13749,7 @@ Returns: int = TestCancel()Checks if a request has been made to cancel a call Return ValueCan return RPC_S_CALLPENDING or RPC_E_CALL_CANCELED - + """ pass @@ -13759,7 +13763,7 @@ class PyICatInformation(object): def EnumCategories(self,lcid:'typing.Any'=0) -> 'PyIEnumCATEGORYINFO': """ - Returns an enumerator for the component categories + Returns an enumerator for the component categories registered on the system. @@ -13770,14 +13774,14 @@ Args: Returns: PyIEnumCATEGORYINFO - + """ pass def GetCategoryDesc(self,lcid:'typing.Any'=0) -> 'str': """ - Retrieves the localized description string for a specific category + Retrieves the localized description string for a specific category ID. @@ -13788,14 +13792,14 @@ Args: Returns: str - + """ pass def EnumClassesOfCategories(self,listIIdImplemented:'typing.List[PyIID]'=None,listIIdRequired:'typing.Any'=None) -> 'PyIEnumGUID': """ - Returns an enumerator over the classes that + Returns an enumerator over the classes that implement one or more interfaces. @@ -13807,7 +13811,7 @@ Args: Returns: PyIEnumGUID - + """ pass @@ -13821,7 +13825,7 @@ class PyICatRegister(object): def RegisterCategories(self,arg:'typing.List[typing.Tuple[PyIID, typing.Any, str]]') -> 'None': """ - Registers one or more component categories. Each component category + Registers one or more component categories. Each component category consists of a CATID and a list of locale-dependent description strings. @@ -13832,7 +13836,7 @@ Args: Returns: None - + """ pass @@ -13848,14 +13852,14 @@ Args: Returns: None - + """ pass def RegisterClassImplCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': """ - Registers the class as implementing one or more component + Registers the class as implementing one or more component categories. @@ -13867,14 +13871,14 @@ Args: Returns: None - + """ pass def UnRegisterClassImplCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': """ - Unregisters the class as implementing one or more component + Unregisters the class as implementing one or more component categories. @@ -13886,14 +13890,14 @@ Args: Returns: None - + """ pass def RegisterClassReqCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': """ - Registers the class as requiring one or more component + Registers the class as requiring one or more component categories. @@ -13905,14 +13909,14 @@ Args: Returns: None - + """ pass def UnRegisterClassReqCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': """ - Unregisters the class as requiring one or more component + Unregisters the class as requiring one or more component categories. @@ -13924,7 +13928,7 @@ Args: Returns: None - + """ pass @@ -13947,7 +13951,7 @@ Args: Returns: None - + """ pass @@ -13963,7 +13967,7 @@ Args: Returns: None - + """ pass @@ -13979,7 +13983,7 @@ Args: Returns: None - + """ pass @@ -13995,7 +13999,7 @@ Args: Returns: None - + """ pass @@ -14011,7 +14015,7 @@ Args: Returns: None - + """ pass @@ -14028,7 +14032,7 @@ Args: Returns: None - + """ pass @@ -14051,18 +14055,18 @@ Args: Returns: - PyIUnknown:The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the + PyIUnknown:The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the type specified by iid. - + """ pass def LockServer(self,bInc:'typing.Any') -> 'None': """ - Called by the client of a class object to keep a server open in memory, + Called by the client of a class object to keep a server open in memory, allowing instances to be created more quickly. @@ -14073,7 +14077,7 @@ Args: Returns: None - + """ pass @@ -14096,7 +14100,7 @@ Args: Returns: typing.Any - + """ pass @@ -14119,7 +14123,7 @@ Args: Returns: None - + """ pass @@ -14135,7 +14139,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -14158,7 +14162,7 @@ Args: Returns: None - + """ pass @@ -14174,7 +14178,7 @@ Args: Returns: None - + """ pass @@ -14191,7 +14195,7 @@ Args: Returns: None - + """ pass @@ -14205,7 +14209,7 @@ class PyIConnectionPoint(object): def GetConnectionInterface(self,) -> 'PyIID': """ - Retrieves the IID of the interface represented by the + Retrieves the IID of the interface represented by the connection point. @@ -14216,14 +14220,14 @@ Args: Returns: PyIID - + """ pass def GetConnectionPointContainer(self,) -> 'PyIConnectionPointContainer': """ - Gets the connection point + Gets the connection point container for the object. @@ -14234,14 +14238,14 @@ Args: Returns: PyIConnectionPointContainer - + """ pass def Advise(self,unk:'PyIUnknown') -> 'typing.Any': """ - Establishes a connection between the connection point object and the client's + Establishes a connection between the connection point object and the client's sink. @@ -14253,14 +14257,14 @@ Returns: typing.Any:The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise - + """ pass def Unadvise(self,cookie:'typing.Any') -> 'None': """ - Terminates an advisory connection previously established through + Terminates an advisory connection previously established through IConnectionPoint::Advise. The dwCookie parameter identifies the connection to terminate. @@ -14271,14 +14275,14 @@ Args: Returns: None - + """ pass def EnumConnections(self,) -> 'PyIEnumConnections': """ - Creates an enumerator to iterate through the + Creates an enumerator to iterate through the connections for the connection point @@ -14289,7 +14293,7 @@ Args: Returns: PyIEnumConnections - + """ pass @@ -14303,9 +14307,9 @@ class PyIConnectionPointContainer(object): def EnumConnectionPoints(self,) -> 'PyIEnumConnectionPoints': """ - Creates an enumerator object + Creates an enumerator object -to iterate through all the connection points supported in the connectable object, one connection point per outgoing +to iterate through all the connection points supported in the connectable object, one connection point per outgoing IID. @@ -14316,14 +14320,14 @@ Args: Returns: PyIEnumConnectionPoints - + """ pass def FindConnectionPoint(self,iid:'PyIID') -> 'PyIConnectionPoint': """ - Finds a connection point for the + Finds a connection point for the given IID @@ -14334,7 +14338,7 @@ Args: Returns: PyIConnectionPoint - + """ pass @@ -14359,7 +14363,7 @@ Args: Returns: None - + """ pass @@ -14375,7 +14379,7 @@ Args: Returns: None - + """ pass @@ -14392,7 +14396,7 @@ Returns: typing.Tuple[typing.Any, PyIUnknown]:GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property - + """ pass @@ -14408,7 +14412,7 @@ Args: Returns: PyIEnumContextProps - + """ pass @@ -14435,7 +14439,7 @@ Args: Returns: typing.Any - + """ pass @@ -14451,7 +14455,7 @@ Args: Returns: None - + """ pass @@ -14469,7 +14473,7 @@ Args: Returns: typing.Any - + """ pass @@ -14498,7 +14502,7 @@ Args: Returns: None - + """ pass @@ -14527,7 +14531,7 @@ Args: Returns: None - + """ pass @@ -14550,7 +14554,7 @@ Args: Returns: None - + """ pass @@ -14566,7 +14570,7 @@ Args: Returns: None - + """ pass @@ -14582,7 +14586,7 @@ Args: Returns: None - + """ pass @@ -14598,7 +14602,7 @@ Args: Returns: None - + """ pass @@ -14615,7 +14619,7 @@ Args: Returns: None - + """ pass @@ -14631,7 +14635,7 @@ Args: Returns: None - + """ pass @@ -14647,7 +14651,7 @@ Args: Returns: None - + """ pass @@ -14664,7 +14668,7 @@ Args: Returns: None - + """ pass @@ -14681,7 +14685,7 @@ Args: Returns: None - + """ pass @@ -14697,7 +14701,7 @@ Args: Returns: None - + """ pass @@ -14713,7 +14717,7 @@ Args: Returns: None - + """ pass @@ -14729,7 +14733,7 @@ Args: Returns: None - + """ pass @@ -14746,7 +14750,7 @@ Args: Returns: None - + """ pass @@ -14763,7 +14767,7 @@ Args: Returns: None - + """ pass @@ -14779,7 +14783,7 @@ Args: Returns: None - + """ pass @@ -14797,7 +14801,7 @@ Args: Returns: None - + """ pass @@ -14814,7 +14818,7 @@ Args: Returns: None - + """ pass @@ -14831,7 +14835,7 @@ Args: Returns: None - + """ pass @@ -14848,7 +14852,7 @@ Args: Returns: None - + """ pass @@ -14865,7 +14869,7 @@ Args: Returns: None - + """ pass @@ -14882,7 +14886,7 @@ Args: Returns: None - + """ pass @@ -14898,7 +14902,7 @@ Args: Returns: None - + """ pass @@ -14921,7 +14925,7 @@ Args: Returns: None - + """ pass @@ -14937,7 +14941,7 @@ Args: Returns: None - + """ pass @@ -14954,7 +14958,7 @@ Args: Returns: None - + """ pass @@ -14970,7 +14974,7 @@ Args: Returns: None - + """ pass @@ -14986,7 +14990,7 @@ Args: Returns: None - + """ pass @@ -15002,7 +15006,7 @@ Args: Returns: None - + """ pass @@ -15018,7 +15022,7 @@ Args: Returns: None - + """ pass @@ -15034,7 +15038,7 @@ Args: Returns: None - + """ pass @@ -15050,7 +15054,7 @@ Args: Returns: None - + """ pass @@ -15066,7 +15070,7 @@ Args: Returns: None - + """ pass @@ -15089,7 +15093,7 @@ Args: Returns: None - + """ pass @@ -15105,7 +15109,7 @@ Args: Returns: None - + """ pass @@ -15122,7 +15126,7 @@ Args: Returns: None - + """ pass @@ -15138,7 +15142,7 @@ Args: Returns: None - + """ pass @@ -15154,7 +15158,7 @@ Args: Returns: None - + """ pass @@ -15170,7 +15174,7 @@ Args: Returns: None - + """ pass @@ -15186,7 +15190,7 @@ Args: Returns: None - + """ pass @@ -15202,7 +15206,7 @@ Args: Returns: None - + """ pass @@ -15218,7 +15222,7 @@ Args: Returns: None - + """ pass @@ -15234,7 +15238,7 @@ Args: Returns: None - + """ pass @@ -15264,14 +15268,14 @@ Args: Returns: None - + """ pass def BeginList(self,riid:'PyIID') -> 'typing.Tuple[typing.Any, PyIObjectArray]': """ - Clears the jump list and prepares it to be + Clears the jump list and prepares it to be repopulated @@ -15284,7 +15288,7 @@ Returns: typing.Tuple[typing.Any, PyIObjectArray]:The interface to return Return ValueReturns the number of slots and a collection of all destinations removed from the jump list - + """ pass @@ -15301,7 +15305,7 @@ Args: Returns: None - + """ pass @@ -15317,7 +15321,7 @@ Args: Returns: None - + """ pass @@ -15333,7 +15337,7 @@ Args: Returns: None - + """ pass @@ -15349,14 +15353,14 @@ Args: Returns: None - + """ pass def GetRemovedDestinations(self,riid:'PyIID') -> 'PyIObjectArray': """ - Returns all the items removed from the + Returns all the items removed from the jump list @@ -15367,14 +15371,14 @@ Args: Returns: PyIObjectArray - + """ pass def DeleteList(self,AppID:'typing.Any'=None) -> 'None': """ - Removes any customization, leaving only the system-maintained Recent + Removes any customization, leaving only the system-maintained Recent and Frequent lists @@ -15385,7 +15389,7 @@ Args: Returns: None - + """ pass @@ -15401,13 +15405,13 @@ Args: Returns: None - + """ pass class PyIDL(object): - """A Python representation of an IDL. Implemented as a sequence of Python strings. + """A Python representation of an IDL. Implemented as a sequence of Python strings. FALSE*/, UINT *pcb /* = NULL */)""" @@ -15433,7 +15437,7 @@ Args: Returns: PySTGMEDIUM - + """ pass @@ -15449,7 +15453,7 @@ Args: Returns: PySTGMEDIUM - + """ pass @@ -15464,18 +15468,18 @@ Args: Returns: - None:Tuple representing a FORMATETC struct describing how the data should be + None:Tuple representing a FORMATETC struct describing how the data should be returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. - + """ pass def GetCanonicalFormatEtc(self,pformatectIn:'PyFORMATETC') -> 'PyFORMATETC': """ - Transforms a FORMATECT data description into a general + Transforms a FORMATECT data description into a general format that the object supports @@ -15486,7 +15490,7 @@ Args: Returns: PyFORMATETC - + """ pass @@ -15504,14 +15508,14 @@ Args: Returns: None - + """ pass def EnumFormatEtc(self,dwDirection:'typing.Any') -> 'PyIEnumFORMATETC': """ - Returns an enumerator to list the data formats that the + Returns an enumerator to list the data formats that the object supports. @@ -15522,14 +15526,14 @@ Args: Returns: PyIEnumFORMATETC - + """ pass def DAdvise(self,pformatetc:'PyFORMATETC',advf:'typing.Any',pAdvSink:'typing.Any') -> 'typing.Any': """ - Connects the object to an interface that will receive notifications when its data + Connects the object to an interface that will receive notifications when its data changes @@ -15543,7 +15547,7 @@ Returns: typing.Any:Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection - + """ pass @@ -15559,7 +15563,7 @@ Args: Returns: None - + """ pass @@ -15575,7 +15579,7 @@ Args: Returns: typing.Any - + """ pass @@ -15598,14 +15602,14 @@ Args: Returns: None - + """ pass def StepOutComplete(self,) -> 'None': """ - Called by language engines, in single step mode, just before they + Called by language engines, in single step mode, just before they return to their caller. @@ -15616,14 +15620,14 @@ Args: Returns: None - + """ pass def DebugOutput(self,pstr:'typing.Any') -> 'None': """ - Causes the given string to be displayed by the debugger IDE, normally in + Causes the given string to be displayed by the debugger IDE, normally in an output window. @@ -15634,14 +15638,14 @@ Args: Returns: None - + """ pass def StartDebugSession(self,) -> 'None': """ - Causes a default debugger IDE to be started and a debug session to + Causes a default debugger IDE to be started and a debug session to be attached to this application if one does not already exist. @@ -15652,14 +15656,14 @@ Args: Returns: None - + """ pass def HandleBreakPoint(self,br:'typing.Any') -> 'typing.Any': """ - Called by the language engine in the context of a thread that has + Called by the language engine in the context of a thread that has hit a breakpoint. @@ -15671,18 +15675,18 @@ Returns: typing.Any:Break reason - one of the BREAKREASON_* constants.Comments -This method causes the current thread to block and a notification of the breakpoint +This method causes the current thread to block and a notification of the breakpoint -to be sent to the debugger IDE. When the debugger IDE resumes the application this +to be sent to the debugger IDE. When the debugger IDE resumes the application this method returns with the action to be taken. -Note: While in the breakpoint the language engine may be called in this thread to do +Note: While in the breakpoint the language engine may be called in this thread to do various things such as enumerating stack frames or evaluating expressions. Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. - + """ pass @@ -15698,7 +15702,7 @@ Args: Returns: None - + """ pass @@ -15714,14 +15718,14 @@ Args: Returns: typing.Any - + """ pass def GetCurrentThread(self,) -> 'PyIDebugApplicationThread': """ - Returns the application thread object + Returns the application thread object associated with the currently running thread. @@ -15732,7 +15736,7 @@ Args: Returns: PyIDebugApplicationThread - + """ pass @@ -15748,7 +15752,7 @@ Args: Returns: None - + """ pass @@ -15765,14 +15769,14 @@ Returns: typing.Any:Description for pdsfsComments -Generally called by a language engine +Generally called by a language engine -to expose its stack frames to the debugger. It is possible for other entities to +to expose its stack frames to the debugger. It is possible for other entities to expose stack frames. Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer - + """ pass @@ -15788,14 +15792,14 @@ Args: Returns: None - + """ pass def QueryCurrentThreadIsDebuggerThread(self,) -> 'None': """ - Determines if the current running thread is the + Determines if the current running thread is the debugger thread. @@ -15806,21 +15810,21 @@ Args: Returns: None:PyIDebugApplication.QueryCurrentThreadIsDebuggerThread -QueryCurrentThreadIsDebuggerThread()Determines if the current running thread is the +QueryCurrentThreadIsDebuggerThread()Determines if the current running thread is the debugger thread. -Return ValueReturns S_OK if the current running thread is the debugger thread. +Return ValueReturns S_OK if the current running thread is the debugger thread. Otherwise, returns S_FALSE. - + """ pass def SynchronousCallInDebuggerThread(self,pptc:'typing.Any',dwParam1:'typing.Any',dwParam2:'typing.Any',dwParam3:'typing.Any') -> 'None': """ - Provides a mechanism for the caller to run code in the + Provides a mechanism for the caller to run code in the debugger thread. @@ -15834,14 +15838,14 @@ Args: Returns: None - + """ pass def CreateApplicationNode(self,) -> 'PyIDebugApplicationNode': """ - Creates a new application node which + Creates a new application node which is associated with a specific document provider. @@ -15852,7 +15856,7 @@ Args: Returns: PyIDebugApplicationNode - + """ pass @@ -15869,7 +15873,7 @@ Args: Returns: None - + """ pass @@ -15886,7 +15890,7 @@ Args: Returns: None - + """ pass @@ -15902,7 +15906,7 @@ Args: Returns: None - + """ pass @@ -15918,7 +15922,7 @@ Args: Returns: None - + """ pass @@ -15934,14 +15938,14 @@ Args: Returns: None - + """ pass def RemoveGlobalExpressionContextProvider(self,dwCookie:'typing.Any') -> 'None': """ - Description of + Description of RemoveGlobalExpressionContextProvider. @@ -15952,7 +15956,7 @@ Args: Returns: None - + """ pass @@ -15975,7 +15979,7 @@ Args: Returns: None - + """ pass @@ -15991,7 +15995,7 @@ Args: Returns: PyIDebugApplicationNode - + """ pass @@ -16007,7 +16011,7 @@ Args: Returns: None - + """ pass @@ -16023,7 +16027,7 @@ Args: Returns: None - + """ pass @@ -16039,7 +16043,7 @@ Args: Returns: None - + """ pass @@ -16055,7 +16059,7 @@ Args: Returns: None - + """ pass @@ -16078,7 +16082,7 @@ Args: Returns: None - + """ pass @@ -16094,7 +16098,7 @@ Args: Returns: None - + """ pass @@ -16110,7 +16114,7 @@ Args: Returns: None - + """ pass @@ -16126,7 +16130,7 @@ Args: Returns: None - + """ pass @@ -16152,7 +16156,7 @@ Args: Returns: None - + """ pass @@ -16168,7 +16172,7 @@ Args: Returns: None - + """ pass @@ -16184,7 +16188,7 @@ Args: Returns: None - + """ pass @@ -16207,7 +16211,7 @@ Args: Returns: None - + """ pass @@ -16223,7 +16227,7 @@ Args: Returns: None - + """ pass @@ -16253,7 +16257,7 @@ Args: Returns: None - + """ pass @@ -16269,7 +16273,7 @@ Args: Returns: None - + """ pass @@ -16295,7 +16299,7 @@ Args: Returns: None - + """ pass @@ -16311,7 +16315,7 @@ Args: Returns: None - + """ pass @@ -16327,7 +16331,7 @@ Args: Returns: None - + """ pass @@ -16343,7 +16347,7 @@ Args: Returns: None - + """ pass @@ -16359,7 +16363,7 @@ Args: Returns: None - + """ pass @@ -16375,7 +16379,7 @@ Args: Returns: None - + """ pass @@ -16392,7 +16396,7 @@ Args: Returns: None - + """ pass @@ -16411,7 +16415,7 @@ Args: Returns: None - + """ pass @@ -16427,7 +16431,7 @@ Args: Returns: None - + """ pass @@ -16444,7 +16448,7 @@ Args: Returns: None - + """ pass @@ -16460,7 +16464,7 @@ Args: Returns: None - + """ pass @@ -16476,7 +16480,7 @@ Args: Returns: None - + """ pass @@ -16492,7 +16496,7 @@ Args: Returns: None - + """ pass @@ -16508,7 +16512,7 @@ Args: Returns: None - + """ pass @@ -16524,7 +16528,7 @@ Args: Returns: None - + """ pass @@ -16541,7 +16545,7 @@ Args: Returns: None - + """ pass @@ -16557,7 +16561,7 @@ Args: Returns: None - + """ pass @@ -16573,7 +16577,7 @@ Args: Returns: None - + """ pass @@ -16597,7 +16601,7 @@ Args: Returns: None - + """ pass @@ -16615,7 +16619,7 @@ Args: Returns: None - + """ pass @@ -16631,7 +16635,7 @@ Args: Returns: None - + """ pass @@ -16647,7 +16651,7 @@ Args: Returns: None - + """ pass @@ -16663,7 +16667,7 @@ Args: Returns: None - + """ pass @@ -16679,7 +16683,7 @@ Args: Returns: None - + """ pass @@ -16702,7 +16706,7 @@ Args: Returns: None - + """ pass @@ -16718,7 +16722,7 @@ Args: Returns: PyIID - + """ pass @@ -16732,7 +16736,7 @@ class PyIDebugDocumentProvider(object): def GetDocument(self,) -> 'PyIDebugDocument': """ - Causes the document to be instantiated if it does + Causes the document to be instantiated if it does not already exist. @@ -16743,7 +16747,7 @@ Args: Returns: PyIDebugDocument - + """ pass @@ -16766,7 +16770,7 @@ Args: Returns: None - + """ pass @@ -16782,7 +16786,7 @@ Args: Returns: None - + """ pass @@ -16798,7 +16802,7 @@ Args: Returns: None - + """ pass @@ -16814,7 +16818,7 @@ Args: Returns: None - + """ pass @@ -16832,7 +16836,7 @@ Args: Returns: None - + """ pass @@ -16848,7 +16852,7 @@ Args: Returns: None - + """ pass @@ -16865,7 +16869,7 @@ Args: Returns: None - + """ pass @@ -16890,7 +16894,7 @@ Args: Returns: None - + """ pass @@ -16907,7 +16911,7 @@ Args: Returns: None - + """ pass @@ -16925,7 +16929,7 @@ Args: Returns: None - + """ pass @@ -16948,7 +16952,7 @@ Args: Returns: None - + """ pass @@ -16965,7 +16969,7 @@ Args: Returns: None - + """ pass @@ -16982,7 +16986,7 @@ Args: Returns: None - + """ pass @@ -16999,7 +17003,7 @@ Args: Returns: None - + """ pass @@ -17016,7 +17020,7 @@ Args: Returns: None - + """ pass @@ -17032,7 +17036,7 @@ Args: Returns: None - + """ pass @@ -17055,7 +17059,7 @@ Args: Returns: None - + """ pass @@ -17071,7 +17075,7 @@ Args: Returns: None - + """ pass @@ -17087,7 +17091,7 @@ Args: Returns: None - + """ pass @@ -17110,7 +17114,7 @@ Args: Returns: None - + """ pass @@ -17126,7 +17130,7 @@ Args: Returns: None - + """ pass @@ -17142,7 +17146,7 @@ Args: Returns: None - + """ pass @@ -17158,7 +17162,7 @@ Args: Returns: None - + """ pass @@ -17174,7 +17178,7 @@ Args: Returns: None - + """ pass @@ -17197,7 +17201,7 @@ Args: Returns: None - + """ pass @@ -17223,7 +17227,7 @@ Args: Returns: None - + """ pass @@ -17239,7 +17243,7 @@ Args: Returns: None - + """ pass @@ -17263,7 +17267,7 @@ Args: Returns: None - + """ pass @@ -17279,7 +17283,7 @@ Args: Returns: None - + """ pass @@ -17296,7 +17300,7 @@ Args: Returns: None - + """ pass @@ -17314,7 +17318,7 @@ Args: Returns: None - + """ pass @@ -17330,7 +17334,7 @@ Args: Returns: None - + """ pass @@ -17353,7 +17357,7 @@ Args: Returns: None - + """ pass @@ -17376,14 +17380,14 @@ Args: Returns: None - + """ pass def GetDescriptionString(self,fLong:'typing.Any') -> 'typing.Any': """ - Returns a short or long textual description of the + Returns a short or long textual description of the stack frame. @@ -17394,14 +17398,14 @@ Args: Returns: typing.Any - + """ pass def GetLanguageString(self,fLong:'typing.Any') -> 'typing.Any': """ - Returns a short or long textual description of the + Returns a short or long textual description of the language. @@ -17412,14 +17416,14 @@ Args: Returns: typing.Any - + """ pass def GetThread(self,) -> 'PyIDebugApplicationThread': """ - Returns the thread associated with this stack + Returns the thread associated with this stack frame. @@ -17430,7 +17434,7 @@ Args: Returns: PyIDebugApplicationThread - + """ pass @@ -17453,7 +17457,7 @@ Args: Returns: None - + """ pass @@ -17476,7 +17480,7 @@ Args: Returns: None - + """ pass @@ -17499,7 +17503,7 @@ Args: Returns: None - + """ pass @@ -17515,7 +17519,7 @@ Args: Returns: None - + """ pass @@ -17531,7 +17535,7 @@ Args: Returns: None - + """ pass @@ -17554,7 +17558,7 @@ Args: Returns: None - + """ pass @@ -17570,7 +17574,7 @@ Args: Returns: None - + """ pass @@ -17587,7 +17591,7 @@ Args: Returns: None - + """ pass @@ -17604,7 +17608,7 @@ Args: Returns: None - + """ pass @@ -17621,7 +17625,7 @@ Args: Returns: None - + """ pass @@ -17638,7 +17642,7 @@ Args: Returns: None - + """ pass @@ -17661,14 +17665,14 @@ Args: Returns: None - + """ pass def SetCooperativeLevel(self,hwnd:'typing.Any',level:'typing.Any') -> 'None': """ - The IDirectSound::SetCooperativeLevel method sets the cooperative level + The IDirectSound::SetCooperativeLevel method sets the cooperative level of the application for this sound device. @@ -17680,14 +17684,14 @@ Args: Returns: None - + """ pass def CreateSoundBuffer(self,lpDSCBufferDesc:'PyDSCBUFFERDESC',unk:'typing.Any'=None) -> 'None': """ - The IDirectSound::CreateSoundBuffer method creates a DirectSoundBuffer + The IDirectSound::CreateSoundBuffer method creates a DirectSoundBuffer object to hold a sequence of audio samples. @@ -17699,7 +17703,7 @@ Args: Returns: None - + """ pass @@ -17715,14 +17719,14 @@ Args: Returns: None - + """ pass def Compact(self,) -> 'None': """ - The Compact method moves the unused portions of on-board sound memory, if any, to a + The Compact method moves the unused portions of on-board sound memory, if any, to a contiguous block so that the largest portion of free memory will be available. @@ -17733,7 +17737,7 @@ Args: Returns: None - + """ pass @@ -17756,7 +17760,7 @@ Args: Returns: None - + """ pass @@ -17772,14 +17776,14 @@ Args: Returns: None - + """ pass def GetCaps(self,) -> 'None': """ - Retrieves the capabilities of the DirectSoundBuffer object as a DSBCAPS + Retrieves the capabilities of the DirectSoundBuffer object as a DSBCAPS object. @@ -17790,14 +17794,14 @@ Args: Returns: None - + """ pass def Restore(self,) -> 'None': """ - Restores the memory allocation for a lost sound buffer for the specified + Restores the memory allocation for a lost sound buffer for the specified DirectSoundBuffer object. @@ -17808,7 +17812,7 @@ Args: Returns: None - + """ pass @@ -17824,7 +17828,7 @@ Args: Returns: None - + """ pass @@ -17840,7 +17844,7 @@ Args: Returns: None - + """ pass @@ -17856,7 +17860,7 @@ Args: Returns: None - + """ pass @@ -17872,7 +17876,7 @@ Args: Returns: None - + """ pass @@ -17888,7 +17892,7 @@ Args: Returns: None - + """ pass @@ -17904,7 +17908,7 @@ Args: Returns: None - + """ pass @@ -17920,7 +17924,7 @@ Args: Returns: None - + """ pass @@ -17936,7 +17940,7 @@ Args: Returns: None - + """ pass @@ -17952,7 +17956,7 @@ Args: Returns: None - + """ pass @@ -17968,13 +17972,13 @@ Args: Returns: None - + """ pass class PyIDirectSoundCapture(object): - """The methods of the IDirectSoundCapture interface are used to create sound capture + """The methods of the IDirectSoundCapture interface are used to create sound capture buffers.""" @@ -17993,7 +17997,7 @@ Args: Returns: None - + """ pass @@ -18009,13 +18013,13 @@ Args: Returns: None - + """ pass class PyIDirectSoundCaptureBuffer(object): - """The methods of the IDirectSoundCaptureBuffer interface are used to manipulate + """The methods of the IDirectSoundCaptureBuffer interface are used to manipulate sound capture buffers.""" @@ -18025,7 +18029,7 @@ sound capture buffers.""" def Initialize(self,) -> 'None': """ - Not normally used. Used IDirectSoundCapture.CreateCaptureBuffer + Not normally used. Used IDirectSoundCapture.CreateCaptureBuffer instead. @@ -18036,7 +18040,7 @@ Args: Returns: None - + """ pass @@ -18052,18 +18056,18 @@ Args: Returns: None - + """ pass def GetCurrentPosition(self,) -> 'None': """ - Returns a tuple of the current capture and read position in + Returns a tuple of the current capture and read position in -the buffer. The capture position is ahead of the read position. These positions are not always identical due to +the buffer. The capture position is ahead of the read position. These positions are not always identical due to -possible buffering of captured data either on the physical device or in the host. The data after the read position up +possible buffering of captured data either on the physical device or in the host. The data after the read position up to and including the capture position is not necessarily valid data. @@ -18074,16 +18078,16 @@ Args: Returns: None - + """ pass def Stop(self,) -> 'None': """ - The IDirectSoundCaptureBuffer::Stop method puts the capture buffer into + The IDirectSoundCaptureBuffer::Stop method puts the capture buffer into -the "stop" state and stops capturing data. If the capture buffer is already in the stop state then the method has no +the "stop" state and stops capturing data. If the capture buffer is already in the stop state then the method has no effect. @@ -18094,7 +18098,7 @@ Args: Returns: None - + """ pass @@ -18124,7 +18128,7 @@ Args: Returns: PyADS_OBJECT_INFO - + """ pass @@ -18140,7 +18144,7 @@ Args: Returns: typing.Tuple[PyADS_ATTR_INFO, ...] - + """ pass @@ -18156,7 +18160,7 @@ Args: Returns: typing.Any - + """ pass @@ -18173,7 +18177,7 @@ Args: Returns: PyIDispatch - + """ pass @@ -18189,7 +18193,7 @@ Args: Returns: None - + """ pass @@ -18211,11 +18215,11 @@ Args: Returns: - typing.Tuple[typing.Any, typing.Any, typing.Any]:Return ValueThe result is the hresult of the call, and a list of integer status + typing.Tuple[typing.Any, typing.Any, typing.Any]:Return ValueThe result is the hresult of the call, and a list of integer status codes for each of the preferences set. - + """ pass @@ -18231,11 +18235,11 @@ Args: Returns: - typing.Any:Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle + typing.Any:Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle should be called to close the handle. - + """ pass @@ -18252,7 +18256,7 @@ Returns: typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - + """ pass @@ -18269,7 +18273,7 @@ Returns: typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - + """ pass @@ -18286,7 +18290,7 @@ Returns: typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - + """ pass @@ -18302,7 +18306,7 @@ Args: Returns: None - + """ pass @@ -18318,7 +18322,7 @@ Args: Returns: None - + """ pass @@ -18335,7 +18339,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass @@ -18354,7 +18358,7 @@ Returns: GetNextColumnName() Return ValueReturns None when the underlying ADSI function return S_ADS_NOMORE_COLUMNS. - + """ pass @@ -18380,11 +18384,11 @@ Args: Returns: - typing.Any:The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. + typing.Any:The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. Otherwise, the result is determined by the COM object itself (and may still be None) - + """ pass @@ -18405,7 +18409,7 @@ Args: Returns: typing.Any - + """ pass @@ -18425,13 +18429,13 @@ Returns: Comments Currently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used. -Return ValueIf the first parameter is a sequence, the result will be a tuple of integers +Return ValueIf the first parameter is a sequence, the result will be a tuple of integers -for each name in the sequence. If the first parameter is a single string, the result +for each name in the sequence. If the first parameter is a single string, the result is a single integer with the ID of requested item. - + """ pass @@ -18448,7 +18452,7 @@ Args: Returns: PyITypeInfo - + """ pass @@ -18464,7 +18468,7 @@ Args: Returns: typing.Any - + """ pass @@ -18488,7 +18492,7 @@ Args: Returns: typing.Any - + """ pass @@ -18510,7 +18514,7 @@ Args: Returns: typing.Any - + """ pass @@ -18527,7 +18531,7 @@ Args: Returns: None - + """ pass @@ -18543,7 +18547,7 @@ Args: Returns: None - + """ pass @@ -18560,7 +18564,7 @@ Args: Returns: typing.Any - + """ pass @@ -18576,7 +18580,7 @@ Args: Returns: typing.Any - + """ pass @@ -18593,7 +18597,7 @@ Args: Returns: typing.Any - + """ pass @@ -18626,7 +18630,7 @@ Args: Returns: None - + """ pass @@ -18642,7 +18646,7 @@ Args: Returns: None - + """ pass @@ -18662,7 +18666,7 @@ Args: Returns: None - + """ pass @@ -18678,7 +18682,7 @@ Args: Returns: None - + """ pass @@ -18694,7 +18698,7 @@ Args: Returns: None - + """ pass @@ -18710,7 +18714,7 @@ Args: Returns: None - + """ pass @@ -18726,7 +18730,7 @@ Args: Returns: None - + """ pass @@ -18742,7 +18746,7 @@ Args: Returns: None - + """ pass @@ -18760,7 +18764,7 @@ Args: Returns: None - + """ pass @@ -18778,7 +18782,7 @@ Args: Returns: None - + """ pass @@ -18794,7 +18798,7 @@ Args: Returns: None - + """ pass @@ -18810,7 +18814,7 @@ Args: Returns: None - + """ pass @@ -18826,7 +18830,7 @@ Args: Returns: None - + """ pass @@ -18843,7 +18847,7 @@ Args: Returns: None - + """ pass @@ -18859,7 +18863,7 @@ Args: Returns: None - + """ pass @@ -18883,7 +18887,7 @@ Args: Returns: None - + """ pass @@ -18899,7 +18903,7 @@ Args: Returns: None - + """ pass @@ -18924,11 +18928,11 @@ Args: Returns: - typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can + typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted - + """ pass @@ -18945,11 +18949,11 @@ Args: Returns: - typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the + typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted at the current position - + """ pass @@ -18965,7 +18969,7 @@ Args: Returns: None - + """ pass @@ -18985,7 +18989,7 @@ Returns: typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values - + """ pass @@ -19011,7 +19015,7 @@ Args: Returns: None - + """ pass @@ -19029,7 +19033,7 @@ Args: Returns: None - + """ pass @@ -19045,7 +19049,7 @@ Args: Returns: None - + """ pass @@ -19063,7 +19067,7 @@ Args: Returns: None - + """ pass @@ -19089,7 +19093,7 @@ Args: Returns: None - + """ pass @@ -19105,7 +19109,7 @@ Args: Returns: PyIDataObject - + """ pass @@ -19144,7 +19148,7 @@ Args: Returns: None - + """ pass @@ -19164,7 +19168,7 @@ Args: Returns: None - + """ pass @@ -19178,7 +19182,7 @@ class PyIEnumCATEGORYINFO(object): def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[typing.Tuple[PyIID, typing.Any, str], ...]': """ - Retrieves a specified number of items in the + Retrieves a specified number of items in the enumeration sequence. @@ -19189,11 +19193,11 @@ Args: Returns: typing.Tuple[typing.Tuple[PyIID, typing.Any, str], ...]:Number of items to retrieve. -Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, +Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, one for each element returned. - + """ pass @@ -19209,7 +19213,7 @@ Args: Returns: None - + """ pass @@ -19225,14 +19229,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumCATEGORYINFO': """ - Creates another enumerator that contains the same + Creates another enumerator that contains the same enumeration state as the current one @@ -19243,7 +19247,7 @@ Args: Returns: PyIEnumCATEGORYINFO - + """ pass @@ -19257,7 +19261,7 @@ class PyIEnumConnectionPoints(object): def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIConnectionPoint, ...]': """ - Retrieves a specified number of items in the + Retrieves a specified number of items in the enumeration sequence. @@ -19268,7 +19272,7 @@ Args: Returns: typing.Tuple[PyIConnectionPoint, ...] - + """ pass @@ -19284,7 +19288,7 @@ Args: Returns: None - + """ pass @@ -19300,14 +19304,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumConnectionPoints': """ - Creates another enumerator that contains the same + Creates another enumerator that contains the same enumeration state as the current one @@ -19318,7 +19322,7 @@ Args: Returns: PyIEnumConnectionPoints - + """ pass @@ -19341,7 +19345,7 @@ Args: Returns: typing.Any - + """ pass @@ -19357,7 +19361,7 @@ Args: Returns: None - + """ pass @@ -19373,14 +19377,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumConnections': """ - Creates another enumerator that contains the same + Creates another enumerator that contains the same enumeration state as the current one @@ -19391,7 +19395,7 @@ Args: Returns: PyIEnumConnections - + """ pass @@ -19405,7 +19409,7 @@ class PyIEnumContextProps(object): def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[typing.Tuple[PyIID, typing.Any, PyIUnknown], ...]': """ - Retrieves a specified number of items in + Retrieves a specified number of items in the enumeration sequence. @@ -19416,13 +19420,13 @@ Args: Returns: typing.Tuple[typing.Tuple[PyIID, typing.Any, PyIUnknown], ...]:Number of items to retrieve. -Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: +Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: - First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the + First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the property value - + """ pass @@ -19438,7 +19442,7 @@ Args: Returns: None - + """ pass @@ -19454,14 +19458,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumContextProps': """ - Creates another enumerator that contains the same + Creates another enumerator that contains the same enumeration state as the current one @@ -19472,7 +19476,7 @@ Args: Returns: PyIEnumContextProps - + """ pass @@ -19495,7 +19499,7 @@ Args: Returns: typing.Any - + """ pass @@ -19511,7 +19515,7 @@ Args: Returns: None - + """ pass @@ -19527,14 +19531,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumDebugApplicationNodes': """ - Creates another enumerator that + Creates another enumerator that contains the same enumeration state as the current one @@ -19545,7 +19549,7 @@ Args: Returns: PyIEnumDebugApplicationNodes - + """ pass @@ -19568,7 +19572,7 @@ Args: Returns: typing.Any - + """ pass @@ -19584,7 +19588,7 @@ Args: Returns: None - + """ pass @@ -19600,14 +19604,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumDebugCodeContexts': """ - Creates another enumerator that contains the + Creates another enumerator that contains the same enumeration state as the current one @@ -19618,7 +19622,7 @@ Args: Returns: PyIEnumDebugCodeContexts - + """ pass @@ -19632,7 +19636,7 @@ class PyIEnumDebugExpressionContexts(object): def Next(self,num:'typing.Any'=1) -> 'typing.Any': """ - Retrieves a specified number of items in the enumeration + Retrieves a specified number of items in the enumeration sequence. @@ -19643,7 +19647,7 @@ Args: Returns: typing.Any - + """ pass @@ -19659,7 +19663,7 @@ Args: Returns: None - + """ pass @@ -19675,14 +19679,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumDebugExpressionContexts': """ - Creates another enumerator that + Creates another enumerator that contains the same enumeration state as the current one @@ -19693,7 +19697,7 @@ Args: Returns: PyIEnumDebugExpressionContexts - + """ pass @@ -19716,7 +19720,7 @@ Args: Returns: typing.Any - + """ pass @@ -19732,7 +19736,7 @@ Args: Returns: None - + """ pass @@ -19748,14 +19752,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumDebugPropertyInfo': """ - Creates another enumerator that contains the + Creates another enumerator that contains the same enumeration state as the current one @@ -19766,7 +19770,7 @@ Args: Returns: PyIEnumDebugPropertyInfo - + """ pass @@ -19782,7 +19786,7 @@ Args: Returns: typing.Any - + """ pass @@ -19805,7 +19809,7 @@ Args: Returns: typing.Any - + """ pass @@ -19821,7 +19825,7 @@ Args: Returns: None - + """ pass @@ -19837,14 +19841,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumDebugStackFrames': """ - Creates another enumerator that contains the same + Creates another enumerator that contains the same enumeration state as the current one @@ -19855,7 +19859,7 @@ Args: Returns: PyIEnumDebugStackFrames - + """ pass @@ -19878,7 +19882,7 @@ Args: Returns: typing.Any - + """ pass @@ -19894,7 +19898,7 @@ Args: Returns: None - + """ pass @@ -19910,14 +19914,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumExplorerCommand': """ - Creates another enumerator that contains the same + Creates another enumerator that contains the same enumeration state as the current one @@ -19928,7 +19932,7 @@ Args: Returns: PyIEnumExplorerCommand - + """ pass @@ -19951,7 +19955,7 @@ Args: Returns: typing.Any - + """ pass @@ -19967,7 +19971,7 @@ Args: Returns: None - + """ pass @@ -19983,14 +19987,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumFORMATETC': """ - Creates another enumerator that contains the same enumeration + Creates another enumerator that contains the same enumeration state as the current one @@ -20001,7 +20005,7 @@ Args: Returns: PyIEnumFORMATETC - + """ pass @@ -20024,13 +20028,13 @@ Args: Returns: typing.Tuple[PyIID, ...]:Number of items to retrieve. -Return ValueThe result is a tuple of PyIID objects, +Return ValueThe result is a tuple of PyIID objects, -one for each element returned. Note that if zero elements are returned, it is not considered +one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. - + """ pass @@ -20046,7 +20050,7 @@ Args: Returns: None - + """ pass @@ -20062,14 +20066,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumGUID': """ - Creates another enumerator that contains the same enumeration state as + Creates another enumerator that contains the same enumeration state as the current one @@ -20080,7 +20084,7 @@ Args: Returns: PyIEnumGUID - + """ pass @@ -20103,7 +20107,7 @@ Args: Returns: typing.Any - + """ pass @@ -20119,7 +20123,7 @@ Args: Returns: None - + """ pass @@ -20135,14 +20139,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumIDList': """ - Creates another enumerator that contains the same enumeration state + Creates another enumerator that contains the same enumeration state as the current one @@ -20153,7 +20157,7 @@ Args: Returns: PyIEnumIDList - + """ pass @@ -20176,13 +20180,13 @@ Args: Returns: PyIMoniker:Number of items to retrieve. -Return ValueThe result is a tuple of PyIID objects, +Return ValueThe result is a tuple of PyIID objects, -one for each element returned. Note that if zero elements are returned, it is not considered +one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. - + """ pass @@ -20198,7 +20202,7 @@ Args: Returns: None - + """ pass @@ -20214,14 +20218,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumMoniker': """ - Creates another enumerator that contains the same enumeration state + Creates another enumerator that contains the same enumeration state as the current one @@ -20232,7 +20236,7 @@ Args: Returns: PyIEnumMoniker - + """ pass @@ -20256,7 +20260,7 @@ Args: Returns: typing.Tuple[PyIUnknown, ...] - + """ pass @@ -20272,7 +20276,7 @@ Args: Returns: None - + """ pass @@ -20288,14 +20292,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumObjects': """ - Creates another enumerator that contains the same enumeration state + Creates another enumerator that contains the same enumeration state as the current one @@ -20306,7 +20310,7 @@ Args: Returns: PyIEnumObjects - + """ pass @@ -20320,7 +20324,7 @@ class PyIEnumRemoteDebugApplicationThreads(object): def Next(self,num:'typing.Any'=1) -> 'typing.Any': """ - Retrieves a specified number of items in the enumeration + Retrieves a specified number of items in the enumeration sequence. @@ -20331,7 +20335,7 @@ Args: Returns: typing.Any - + """ pass @@ -20347,7 +20351,7 @@ Args: Returns: None - + """ pass @@ -20363,14 +20367,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumRemoteDebugApplicationThreads': """ - Creates another + Creates another enumerator that contains the same enumeration state as the current one @@ -20381,7 +20385,7 @@ Args: Returns: PyIEnumRemoteDebugApplicationThreads - + """ pass @@ -20395,7 +20399,7 @@ class PyIEnumRemoteDebugApplications(object): def Next(self,num:'typing.Any'=1) -> 'typing.Any': """ - Retrieves a specified number of items in the enumeration + Retrieves a specified number of items in the enumeration sequence. @@ -20406,7 +20410,7 @@ Args: Returns: typing.Any - + """ pass @@ -20422,7 +20426,7 @@ Args: Returns: None - + """ pass @@ -20438,14 +20442,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumRemoteDebugApplications': """ - Creates another enumerator that + Creates another enumerator that contains the same enumeration state as the current one @@ -20456,7 +20460,7 @@ Args: Returns: PyIEnumRemoteDebugApplications - + """ pass @@ -20479,7 +20483,7 @@ Args: Returns: typing.Any - + """ pass @@ -20495,7 +20499,7 @@ Args: Returns: None - + """ pass @@ -20511,14 +20515,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumResources': """ - Creates another enumerator that contains the same enumeration + Creates another enumerator that contains the same enumeration state as the current one @@ -20529,7 +20533,7 @@ Args: Returns: PyIEnumResources - + """ pass @@ -20552,7 +20556,7 @@ Args: Returns: typing.Any - + """ pass @@ -20568,7 +20572,7 @@ Args: Returns: None - + """ pass @@ -20584,14 +20588,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumSTATPROPSETSTG': """ - Creates another enumerator that contains the same + Creates another enumerator that contains the same enumeration state as the current one @@ -20602,7 +20606,7 @@ Args: Returns: PyIEnumSTATPROPSETSTG - + """ pass @@ -20625,7 +20629,7 @@ Args: Returns: typing.Any - + """ pass @@ -20641,7 +20645,7 @@ Args: Returns: None - + """ pass @@ -20657,14 +20661,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumSTATPROPSTG': """ - Creates another enumerator that contains the same + Creates another enumerator that contains the same enumeration state as the current one @@ -20675,7 +20679,7 @@ Args: Returns: PyIEnumSTATPROPSTG - + """ pass @@ -20698,7 +20702,7 @@ Args: Returns: typing.Tuple[STATSTG, ...] - + """ pass @@ -20714,7 +20718,7 @@ Args: Returns: None - + """ pass @@ -20730,14 +20734,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumSTATSTG': """ - Creates another enumerator that contains the same enumeration state + Creates another enumerator that contains the same enumeration state as the current one @@ -20748,7 +20752,7 @@ Args: Returns: PyIEnumSTATSTG - + """ pass @@ -20762,7 +20766,7 @@ class PyIEnumShellItems(object): def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIShellItem, ...]': """ - Retrieves a specified number of items in the enumeration + Retrieves a specified number of items in the enumeration sequence. @@ -20773,7 +20777,7 @@ Args: Returns: typing.Tuple[PyIShellItem, ...] - + """ pass @@ -20789,7 +20793,7 @@ Args: Returns: None - + """ pass @@ -20805,14 +20809,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumShellItems': """ - Creates another enumerator that contains the same enumeration + Creates another enumerator that contains the same enumeration state as the current one @@ -20823,7 +20827,7 @@ Args: Returns: PyIEnumShellItems - + """ pass @@ -20846,7 +20850,7 @@ Args: Returns: typing.Tuple[str, ...] - + """ pass @@ -20862,7 +20866,7 @@ Args: Returns: None - + """ pass @@ -20878,14 +20882,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIEnumString': """ - Creates another enumerator that contains the same enumeration state + Creates another enumerator that contains the same enumeration state as the current one @@ -20896,7 +20900,7 @@ Args: Returns: PyIEnumString - + """ pass @@ -20920,7 +20924,7 @@ Args: Returns: None - + """ pass @@ -20945,7 +20949,7 @@ Args: Returns: None - + """ pass @@ -20961,7 +20965,7 @@ Args: Returns: None - + """ pass @@ -20978,7 +20982,7 @@ Args: Returns: int - + """ pass @@ -20994,7 +20998,7 @@ Args: Returns: None - + """ pass @@ -21010,7 +21014,7 @@ Args: Returns: None - + """ pass @@ -21026,7 +21030,7 @@ Args: Returns: None - + """ pass @@ -21042,7 +21046,7 @@ Args: Returns: typing.Any - + """ pass @@ -21058,7 +21062,7 @@ Args: Returns: None - + """ pass @@ -21074,7 +21078,7 @@ Args: Returns: None - + """ pass @@ -21090,7 +21094,7 @@ Args: Returns: typing.Any - + """ pass @@ -21107,7 +21111,7 @@ Args: Returns: None - + """ pass @@ -21124,7 +21128,7 @@ Args: Returns: None - + """ pass @@ -21141,7 +21145,7 @@ Args: Returns: None - + """ pass @@ -21157,7 +21161,7 @@ Args: Returns: None - + """ pass @@ -21173,7 +21177,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -21196,7 +21200,7 @@ Args: Returns: None - + """ pass @@ -21212,7 +21216,7 @@ Args: Returns: None - + """ pass @@ -21228,7 +21232,7 @@ Args: Returns: None - + """ pass @@ -21244,7 +21248,7 @@ Args: Returns: None - + """ pass @@ -21267,7 +21271,7 @@ Args: Returns: typing.Any - + """ pass @@ -21283,7 +21287,7 @@ Args: Returns: typing.Any - + """ pass @@ -21299,7 +21303,7 @@ Args: Returns: typing.Any - + """ pass @@ -21315,7 +21319,7 @@ Args: Returns: PyIID - + """ pass @@ -21332,7 +21336,7 @@ Args: Returns: typing.Any - + """ pass @@ -21349,7 +21353,7 @@ Args: Returns: None - + """ pass @@ -21365,7 +21369,7 @@ Args: Returns: typing.Any - + """ pass @@ -21381,7 +21385,7 @@ Args: Returns: PyIEnumExplorerCommand - + """ pass @@ -21409,7 +21413,7 @@ class PyIExternalConnection(object): def AddConnection(self,extconn:'typing.Any',reserved:'typing.Any'=0) -> 'typing.Any': """ - Increments an object's count of its strong external connections + Increments an object's count of its strong external connections (links). @@ -21423,14 +21427,14 @@ Returns: typing.Any:A reserved parameter Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. - + """ pass def ReleaseConnection(self,extconn:'typing.Any',reserved:'typing.Any',fLastReleaseCloses:'typing.Any') -> 'typing.Any': """ - Decrements an object's count of its strong external connections + Decrements an object's count of its strong external connections (references). @@ -21442,13 +21446,13 @@ Args: Returns: - typing.Any:TRUE specifies that if the connection being released is the last external lock on + typing.Any:TRUE specifies that if the connection being released is the last external lock on -the object, the object should close. FALSE specifies that the object should remain open until closed by the user +the object, the object should close. FALSE specifies that the object should remain open until closed by the user or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. - + """ pass @@ -21472,13 +21476,13 @@ Args: Returns: - None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or -(None,None) if the underlying function returns S_FALSE, indicating +(None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. - + """ pass @@ -21495,7 +21499,7 @@ Args: Returns: None - + """ pass @@ -21519,13 +21523,13 @@ Args: Returns: - None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or -(None,None) if the underlying function returns S_FALSE, indicating +(None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. - + """ pass @@ -21542,7 +21546,7 @@ Args: Returns: None - + """ pass @@ -21568,7 +21572,7 @@ Args: Returns: None - + """ pass @@ -21584,7 +21588,7 @@ Args: Returns: None - + """ pass @@ -21608,7 +21612,7 @@ Returns: typing.Any:Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect - + """ pass @@ -21624,7 +21628,7 @@ Args: Returns: None - + """ pass @@ -21640,7 +21644,7 @@ Args: Returns: None - + """ pass @@ -21656,7 +21660,7 @@ Args: Returns: None - + """ pass @@ -21672,7 +21676,7 @@ Args: Returns: None - + """ pass @@ -21688,7 +21692,7 @@ Args: Returns: None - + """ pass @@ -21704,7 +21708,7 @@ Args: Returns: None - + """ pass @@ -21720,7 +21724,7 @@ Args: Returns: None - + """ pass @@ -21736,7 +21740,7 @@ Args: Returns: None - + """ pass @@ -21754,7 +21758,7 @@ Args: Returns: None - + """ pass @@ -21771,7 +21775,7 @@ Args: Returns: None - + """ pass @@ -21790,7 +21794,7 @@ Args: Returns: None - + """ pass @@ -21807,7 +21811,7 @@ Args: Returns: None - + """ pass @@ -21826,7 +21830,7 @@ Args: Returns: None - + """ pass @@ -21843,7 +21847,7 @@ Args: Returns: None - + """ pass @@ -21860,7 +21864,7 @@ Args: Returns: None - + """ pass @@ -21876,7 +21880,7 @@ Args: Returns: None - + """ pass @@ -21896,7 +21900,7 @@ Args: Returns: None - + """ pass @@ -21912,7 +21916,7 @@ Args: Returns: None - + """ pass @@ -21928,7 +21932,7 @@ Args: Returns: typing.Any - + """ pass @@ -21959,7 +21963,7 @@ Args: Returns: None - + """ pass @@ -21983,7 +21987,7 @@ Args: Returns: None - + """ pass @@ -22006,7 +22010,7 @@ Args: Returns: None - + """ pass @@ -22022,7 +22026,7 @@ Args: Returns: None - + """ pass @@ -22038,7 +22042,7 @@ Args: Returns: None - + """ pass @@ -22061,7 +22065,7 @@ Args: Returns: None - + """ pass @@ -22077,7 +22081,7 @@ Args: Returns: None - + """ pass @@ -22100,7 +22104,7 @@ Args: Returns: None - + """ pass @@ -22116,7 +22120,7 @@ Args: Returns: None - + """ pass @@ -22139,7 +22143,7 @@ Args: Returns: None - + """ pass @@ -22156,7 +22160,7 @@ Args: Returns: None - + """ pass @@ -22172,7 +22176,7 @@ Args: Returns: None - + """ pass @@ -22188,7 +22192,7 @@ Args: Returns: None - + """ pass @@ -22215,7 +22219,7 @@ Args: Returns: None - + """ pass @@ -22235,7 +22239,7 @@ Args: Returns: None - + """ pass @@ -22253,7 +22257,7 @@ Args: Returns: None - + """ pass @@ -22273,7 +22277,7 @@ Args: Returns: typing.Any - + """ pass @@ -22300,7 +22304,7 @@ Args: Returns: None - + """ pass @@ -22316,7 +22320,7 @@ Args: Returns: None - + """ pass @@ -22333,7 +22337,7 @@ Args: Returns: None - + """ pass @@ -22349,7 +22353,7 @@ Args: Returns: None - + """ pass @@ -22365,7 +22369,7 @@ Args: Returns: None - + """ pass @@ -22381,7 +22385,7 @@ Args: Returns: None - + """ pass @@ -22404,7 +22408,7 @@ Args: Returns: None - + """ pass @@ -22421,7 +22425,7 @@ Args: Returns: None - + """ pass @@ -22439,7 +22443,7 @@ Args: Returns: None - + """ pass @@ -22457,7 +22461,7 @@ Args: Returns: None - + """ pass @@ -22480,7 +22484,7 @@ Args: Returns: None - + """ pass @@ -22496,7 +22500,7 @@ Args: Returns: None - + """ pass @@ -22513,7 +22517,7 @@ Args: Returns: None - + """ pass @@ -22530,7 +22534,7 @@ Args: Returns: None - + """ pass @@ -22549,7 +22553,7 @@ Args: Returns: None - + """ pass @@ -22567,7 +22571,7 @@ Args: Returns: None - + """ pass @@ -22584,15 +22588,15 @@ Args: Returns: None - + """ pass class PyIKnownFolder(object): - """Interface representing a known folder that serves + """Interface representing a known folder that serves -as a replacement for the numeric CSIDL definitions and API functions. +as a replacement for the numeric CSIDL definitions and API functions. Requires Vista or later.""" @@ -22611,7 +22615,7 @@ Args: Returns: PyIID - + """ pass @@ -22627,7 +22631,7 @@ Args: Returns: typing.Any - + """ pass @@ -22644,7 +22648,7 @@ Args: Returns: PyIShellItem - + """ pass @@ -22660,7 +22664,7 @@ Args: Returns: typing.Any - + """ pass @@ -22677,7 +22681,7 @@ Args: Returns: None - + """ pass @@ -22693,7 +22697,7 @@ Args: Returns: PyIDL - + """ pass @@ -22712,7 +22716,7 @@ Returns: PyIID = GetFolderType()Returns the type of the folder Return ValueReturns a folder type guid (shell.FOLDERTYPEID_*) - + """ pass @@ -22732,7 +22736,7 @@ Returns: int = GetRedirectionCapabilities()Returns flags indicating how the folder can be redirected Return ValueCombination of shellcon.KF_REDIRECTION_CAPABILITIES_* flags - + """ pass @@ -22752,7 +22756,7 @@ Returns: dict = GetFolderDefinition()Retrieves detailed information about a known folder Return ValueReturns a dict containing info from a KNOWNFOLDER_DEFINITION struct - + """ pass @@ -22775,7 +22779,7 @@ Args: Returns: PyIID - + """ pass @@ -22791,7 +22795,7 @@ Args: Returns: typing.Any - + """ pass @@ -22807,7 +22811,7 @@ Args: Returns: typing.Tuple[PyIID, ...] - + """ pass @@ -22823,7 +22827,7 @@ Args: Returns: PyIKnownFolder - + """ pass @@ -22839,7 +22843,7 @@ Args: Returns: PyIKnownFolder - + """ pass @@ -22856,7 +22860,7 @@ Args: Returns: None - + """ pass @@ -22872,7 +22876,7 @@ Args: Returns: None - + """ pass @@ -22889,14 +22893,14 @@ Args: Returns: PyIKnownFolder - + """ pass def FindFolderFromIDList(self,pidl:'PyIDL') -> 'PyIKnownFolder': """ - Retrieves a known folder using its item id + Retrieves a known folder using its item id list. @@ -22907,7 +22911,7 @@ Args: Returns: PyIKnownFolder - + """ pass @@ -22927,7 +22931,7 @@ Args: Returns: None - + """ pass @@ -22941,7 +22945,7 @@ class PyILockBytes(object): def ReadAt(self,ulOffset:'ULARGE_INTEGER',cb:'typing.Any') -> 'str': """ - Reads a specified number of bytes starting at a specified offset from the + Reads a specified number of bytes starting at a specified offset from the beginning of the byte array object. @@ -22953,14 +22957,14 @@ Args: Returns: str - + """ pass def WriteAt(self,ulOffset:'ULARGE_INTEGER',data:'str') -> 'typing.Any': """ - Writes the specified number of bytes starting at a specified offset from the + Writes the specified number of bytes starting at a specified offset from the beginning of the byte array. @@ -22973,14 +22977,14 @@ Returns: typing.Any:Data to writeReturn ValueThe result is the number of bytes actually written. - + """ pass def Flush(self,) -> 'None': """ - Ensures that any internal buffers maintained by the byte array object are written out + Ensures that any internal buffers maintained by the byte array object are written out to the backing storage. @@ -22991,7 +22995,7 @@ Args: Returns: None - + """ pass @@ -23007,7 +23011,7 @@ Args: Returns: None - + """ pass @@ -23025,7 +23029,7 @@ Args: Returns: None - + """ pass @@ -23043,7 +23047,7 @@ Args: Returns: None - + """ pass @@ -23059,7 +23063,7 @@ Args: Returns: STATSTG - + """ pass @@ -23084,7 +23088,7 @@ Args: Returns: typing.Any - + """ pass @@ -23100,7 +23104,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -23116,7 +23120,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -23140,7 +23144,7 @@ Args: Returns: typing.Any - + """ pass @@ -23160,7 +23164,7 @@ Args: Returns: PyIMAPIFolder - + """ pass @@ -23177,7 +23181,7 @@ Args: Returns: PyIMessage - + """ pass @@ -23198,7 +23202,7 @@ Args: Returns: typing.Any - + """ pass @@ -23216,7 +23220,7 @@ Args: Returns: None - + """ pass @@ -23235,7 +23239,7 @@ Args: Returns: typing.Any - + """ pass @@ -23253,7 +23257,7 @@ Args: Returns: typing.Any - + """ pass @@ -23272,7 +23276,7 @@ Args: Returns: None - + """ pass @@ -23296,7 +23300,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass @@ -23313,7 +23317,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass @@ -23330,7 +23334,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass @@ -23353,7 +23357,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass @@ -23375,7 +23379,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass @@ -23394,7 +23398,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -23411,7 +23415,7 @@ Args: Returns: PySPropTagArray - + """ pass @@ -23429,7 +23433,7 @@ Args: Returns: typing.Tuple[typing.Any, PySPropTagArray, PyMAPINAMEIDArray] - + """ pass @@ -23446,7 +23450,7 @@ Args: Returns: typing.Any - + """ pass @@ -23462,7 +23466,7 @@ Args: Returns: None - + """ pass @@ -23478,7 +23482,7 @@ Args: Returns: PySPropTagArray - + """ pass @@ -23503,7 +23507,7 @@ Args: Returns: typing.Any - + """ pass @@ -23522,7 +23526,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -23538,7 +23542,7 @@ Args: Returns: str - + """ pass @@ -23555,11 +23559,11 @@ Args: Returns: - typing.Any:Return ValueThe result is an integer which should be passed to + typing.Any:Return ValueThe result is an integer which should be passed to PyIMAPISession::Unadvise - + """ pass @@ -23575,7 +23579,7 @@ Args: Returns: None - + """ pass @@ -23595,7 +23599,7 @@ Returns: typing.Any:Reserved - must be zero. Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - + """ pass @@ -23612,7 +23616,7 @@ Args: Returns: typing.Any - + """ pass @@ -23628,7 +23632,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -23644,7 +23648,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -23662,7 +23666,7 @@ Args: Returns: None - + """ pass @@ -23680,7 +23684,7 @@ Args: Returns: PyIAddrBook - + """ pass @@ -23698,7 +23702,7 @@ Args: Returns: typing.Any - + """ pass @@ -23714,7 +23718,7 @@ Args: Returns: PyIMsgServiceAdmin - + """ pass @@ -23739,7 +23743,7 @@ Args: Returns: None - + """ pass @@ -23756,7 +23760,7 @@ Args: Returns: None - + """ pass @@ -23773,7 +23777,7 @@ Args: Returns: None - + """ pass @@ -23791,7 +23795,7 @@ Args: Returns: None - + """ pass @@ -23815,7 +23819,7 @@ Args: Returns: typing.Any - + """ pass @@ -23832,7 +23836,7 @@ Args: Returns: typing.Any - + """ pass @@ -23850,7 +23854,7 @@ Returns: typing.Any:Return ValueThe result is the number of rows processed. - + """ pass @@ -23867,7 +23871,7 @@ Args: Returns: None - + """ pass @@ -23883,7 +23887,7 @@ Args: Returns: typing.Any - + """ pass @@ -23900,7 +23904,7 @@ Args: Returns: typing.Any - + """ pass @@ -23917,7 +23921,7 @@ Args: Returns: None - + """ pass @@ -23936,7 +23940,7 @@ Returns: GetStatus()Returns the table's status and type. Return ValueResult is a tuple of (tableStatus, tableType) - + """ pass @@ -23955,7 +23959,7 @@ Returns: QueryPosition()Retrieves the current table row position of the cursor, based on a fractional value. Return ValueResult is a tuple of (row, numerator, denominator) - + """ pass @@ -23971,7 +23975,7 @@ Args: Returns: typing.Any - + """ pass @@ -23987,7 +23991,7 @@ Args: Returns: None - + """ pass @@ -24003,7 +24007,7 @@ Args: Returns: None - + """ pass @@ -24019,7 +24023,7 @@ Args: Returns: typing.Any - + """ pass @@ -24036,7 +24040,7 @@ Args: Returns: None - + """ pass @@ -24054,7 +24058,7 @@ Args: Returns: None - + """ pass @@ -24071,7 +24075,7 @@ Args: Returns: None - + """ pass @@ -24087,7 +24091,7 @@ Args: Returns: None - + """ pass @@ -24110,7 +24114,7 @@ Args: Returns: None - + """ pass @@ -24126,7 +24130,7 @@ Args: Returns: None - + """ pass @@ -24142,7 +24146,7 @@ Args: Returns: None - + """ pass @@ -24166,7 +24170,7 @@ Args: Returns: None - + """ pass @@ -24183,7 +24187,7 @@ Args: Returns: None - + """ pass @@ -24206,7 +24210,7 @@ Args: Returns: None - + """ pass @@ -24222,7 +24226,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -24240,7 +24244,7 @@ Args: Returns: PyIAttach - + """ pass @@ -24258,7 +24262,7 @@ Returns: typing.Tuple[typing.Any, PyIAttach]:Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) - + """ pass @@ -24277,7 +24281,7 @@ Args: Returns: None - + """ pass @@ -24294,7 +24298,7 @@ Args: Returns: None - + """ pass @@ -24310,7 +24314,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -24326,7 +24330,7 @@ Args: Returns: None - + """ pass @@ -24351,14 +24355,14 @@ Args: Returns: PyIUnknown - + """ pass def BindToStorage(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker',iidResult:'typing.Any') -> 'PyIUnknown': """ - Retrieves an interface object to the storage that contains the + Retrieves an interface object to the storage that contains the object identified by the moniker. @@ -24371,14 +24375,14 @@ Args: Returns: PyIUnknown - + """ pass def GetDisplayName(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker') -> 'str': """ - Gets the display name , which is a user-readable representation of this + Gets the display name , which is a user-readable representation of this moniker. @@ -24390,14 +24394,14 @@ Args: Returns: str - + """ pass def ComposeWith(self,mkRight:'PyIMoniker',fOnlyIfNotGeneric:'typing.Any') -> 'PyIMoniker': """ - Combines the current moniker with another moniker, creating a new + Combines the current moniker with another moniker, creating a new composite moniker. @@ -24409,14 +24413,14 @@ Args: Returns: PyIMoniker - + """ pass def Enum(self,fForward:'typing.Any'=True) -> 'PyIEnumMoniker': """ - Supplies an enumerator that can enumerate the components of a composite + Supplies an enumerator that can enumerate the components of a composite moniker. @@ -24427,14 +24431,14 @@ Args: Returns: PyIEnumMoniker - + """ pass def IsEqual(self,other:'PyIMoniker') -> 'typing.Any': """ - Compares this moniker with a specified moniker and indicates whether they are + Compares this moniker with a specified moniker and indicates whether they are identical. @@ -24445,14 +24449,14 @@ Args: Returns: typing.Any - + """ pass def IsSystemMoniker(self,) -> 'typing.Any': """ - Indicates whether this moniker is of one of the system-supplied moniker + Indicates whether this moniker is of one of the system-supplied moniker classes. @@ -24463,7 +24467,7 @@ Args: Returns: typing.Any - + """ pass @@ -24479,7 +24483,7 @@ Args: Returns: typing.Any - + """ pass @@ -24503,7 +24507,7 @@ Args: Returns: typing.Any - + """ pass @@ -24522,7 +24526,7 @@ Args: Returns: None - + """ pass @@ -24541,7 +24545,7 @@ Args: Returns: None - + """ pass @@ -24557,7 +24561,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -24573,7 +24577,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -24589,7 +24593,7 @@ Args: Returns: None - + """ pass @@ -24607,7 +24611,7 @@ Args: Returns: None - + """ pass @@ -24625,14 +24629,14 @@ Args: Returns: typing.Any - + """ pass def AdminProviders(self,uuid:'PyIID',flags:'typing.Any') -> 'typing.Any': """ - Returns an object providing access + Returns an object providing access to a provider administration object. @@ -24644,7 +24648,7 @@ Args: Returns: typing.Any - + """ pass @@ -24669,7 +24673,7 @@ Args: Returns: typing.Any - + """ pass @@ -24686,7 +24690,7 @@ Args: Returns: typing.Tuple[PyIID, str] - + """ pass @@ -24702,7 +24706,7 @@ Args: Returns: PyIMAPITable - + """ pass @@ -24722,7 +24726,7 @@ Returns: typing.Any:Reserved - must be zero. Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - + """ pass @@ -24739,7 +24743,7 @@ Args: Returns: typing.Any - + """ pass @@ -24756,7 +24760,7 @@ Args: Returns: typing.Any - + """ pass @@ -24774,7 +24778,7 @@ Args: Returns: None - + """ pass @@ -24790,7 +24794,7 @@ Args: Returns: None - + """ pass @@ -24815,7 +24819,7 @@ Args: Returns: None - + """ pass @@ -24831,7 +24835,7 @@ Args: Returns: None - + """ pass @@ -24847,7 +24851,7 @@ Args: Returns: None - + """ pass @@ -24866,7 +24870,7 @@ Args: Returns: None - + """ pass @@ -24886,7 +24890,7 @@ Args: Returns: None - + """ pass @@ -24902,7 +24906,7 @@ Args: Returns: None - + """ pass @@ -24918,7 +24922,7 @@ Args: Returns: None - + """ pass @@ -24934,7 +24938,7 @@ Args: Returns: None - + """ pass @@ -24952,7 +24956,7 @@ Args: Returns: None - + """ pass @@ -24969,7 +24973,7 @@ Args: Returns: None - + """ pass @@ -24985,7 +24989,7 @@ Args: Returns: None - + """ pass @@ -25001,7 +25005,7 @@ Args: Returns: None - + """ pass @@ -25018,7 +25022,7 @@ Args: Returns: None - + """ pass @@ -25034,7 +25038,7 @@ Args: Returns: None - + """ pass @@ -25050,7 +25054,7 @@ Args: Returns: None - + """ pass @@ -25067,7 +25071,7 @@ Args: Returns: None - + """ pass @@ -25083,7 +25087,7 @@ Args: Returns: None - + """ pass @@ -25099,7 +25103,7 @@ Args: Returns: None - + """ pass @@ -25115,7 +25119,7 @@ Args: Returns: None - + """ pass @@ -25138,7 +25142,7 @@ Args: Returns: PyPROPVARIANT - + """ pass @@ -25154,7 +25158,7 @@ Args: Returns: None - + """ pass @@ -25170,7 +25174,7 @@ Args: Returns: typing.Any - + """ pass @@ -25186,7 +25190,7 @@ Args: Returns: typing.Any - + """ pass @@ -25209,7 +25213,7 @@ Args: Returns: typing.Any - + """ pass @@ -25226,7 +25230,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -25249,7 +25253,7 @@ Args: Returns: None - + """ pass @@ -25265,7 +25269,7 @@ Args: Returns: None - + """ pass @@ -25281,7 +25285,7 @@ Args: Returns: None - + """ pass @@ -25297,7 +25301,7 @@ Args: Returns: None - + """ pass @@ -25320,7 +25324,7 @@ Args: Returns: None - + """ pass @@ -25336,7 +25340,7 @@ Args: Returns: PyPROPERTYKEY - + """ pass @@ -25359,7 +25363,7 @@ Args: Returns: None - + """ pass @@ -25375,7 +25379,7 @@ Args: Returns: None - + """ pass @@ -25398,7 +25402,7 @@ Args: Returns: None - + """ pass @@ -25415,7 +25419,7 @@ Args: Returns: None - + """ pass @@ -25431,7 +25435,7 @@ Args: Returns: None - + """ pass @@ -25447,7 +25451,7 @@ Args: Returns: None - + """ pass @@ -25463,7 +25467,7 @@ Args: Returns: None - + """ pass @@ -25479,7 +25483,7 @@ Args: Returns: None - + """ pass @@ -25502,7 +25506,7 @@ Args: Returns: None - + """ pass @@ -25518,7 +25522,7 @@ Args: Returns: None - + """ pass @@ -25541,7 +25545,7 @@ Args: Returns: None - + """ pass @@ -25557,7 +25561,7 @@ Args: Returns: None - + """ pass @@ -25573,7 +25577,7 @@ Args: Returns: None - + """ pass @@ -25589,7 +25593,7 @@ Args: Returns: None - + """ pass @@ -25612,7 +25616,7 @@ Args: Returns: None - + """ pass @@ -25628,7 +25632,7 @@ Args: Returns: None - + """ pass @@ -25644,7 +25648,7 @@ Args: Returns: None - + """ pass @@ -25661,11 +25665,11 @@ Args: Returns: - None:Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, + None:Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, a tuple of ((int, int), (float, float)) - + """ pass @@ -25682,7 +25686,7 @@ Args: Returns: None - + """ pass @@ -25698,7 +25702,7 @@ Args: Returns: None - + """ pass @@ -25714,7 +25718,7 @@ Args: Returns: None - + """ pass @@ -25737,7 +25741,7 @@ Args: Returns: None - + """ pass @@ -25753,7 +25757,7 @@ Args: Returns: None - + """ pass @@ -25769,7 +25773,7 @@ Args: Returns: None - + """ pass @@ -25787,7 +25791,7 @@ Args: Returns: None - + """ pass @@ -25803,7 +25807,7 @@ Args: Returns: None - + """ pass @@ -25827,7 +25831,7 @@ Args: Returns: None - + """ pass @@ -25845,7 +25849,7 @@ Args: Returns: None - + """ pass @@ -25861,7 +25865,7 @@ Args: Returns: None - + """ pass @@ -25877,7 +25881,7 @@ Args: Returns: None - + """ pass @@ -25893,7 +25897,7 @@ Args: Returns: None - + """ pass @@ -25910,7 +25914,7 @@ Args: Returns: None - + """ pass @@ -25933,7 +25937,7 @@ Args: Returns: None - + """ pass @@ -25949,7 +25953,7 @@ Args: Returns: None - + """ pass @@ -25965,7 +25969,7 @@ Args: Returns: None - + """ pass @@ -25981,7 +25985,7 @@ Args: Returns: None - + """ pass @@ -26004,7 +26008,7 @@ Args: Returns: None - + """ pass @@ -26020,7 +26024,7 @@ Args: Returns: None - + """ pass @@ -26036,7 +26040,7 @@ Args: Returns: None - + """ pass @@ -26052,7 +26056,7 @@ Args: Returns: None - + """ pass @@ -26068,7 +26072,7 @@ Args: Returns: None - + """ pass @@ -26084,7 +26088,7 @@ Args: Returns: None - + """ pass @@ -26100,7 +26104,7 @@ Args: Returns: None - + """ pass @@ -26116,7 +26120,7 @@ Args: Returns: None - + """ pass @@ -26132,7 +26136,7 @@ Args: Returns: None - + """ pass @@ -26148,7 +26152,7 @@ Args: Returns: None - + """ pass @@ -26171,7 +26175,7 @@ Args: Returns: None - + """ pass @@ -26187,7 +26191,7 @@ Args: Returns: None - + """ pass @@ -26203,7 +26207,7 @@ Args: Returns: None - + """ pass @@ -26226,7 +26230,7 @@ Args: Returns: None - + """ pass @@ -26242,7 +26246,7 @@ Args: Returns: None - + """ pass @@ -26258,7 +26262,7 @@ Args: Returns: None - + """ pass @@ -26274,7 +26278,7 @@ Args: Returns: None - + """ pass @@ -26290,7 +26294,7 @@ Args: Returns: None - + """ pass @@ -26307,7 +26311,7 @@ Args: Returns: None - + """ pass @@ -26323,7 +26327,7 @@ Args: Returns: None - + """ pass @@ -26340,7 +26344,7 @@ Args: Returns: None - + """ pass @@ -26357,7 +26361,7 @@ Args: Returns: None - + """ pass @@ -26374,7 +26378,7 @@ Args: Returns: None - + """ pass @@ -26390,7 +26394,7 @@ Args: Returns: None - + """ pass @@ -26408,7 +26412,7 @@ Args: Returns: None - + """ pass @@ -26431,7 +26435,7 @@ Args: Returns: None - + """ pass @@ -26447,7 +26451,7 @@ Args: Returns: None - + """ pass @@ -26463,7 +26467,7 @@ Args: Returns: None - + """ pass @@ -26480,7 +26484,7 @@ Args: Returns: None - + """ pass @@ -26503,7 +26507,7 @@ Args: Returns: None - + """ pass @@ -26519,7 +26523,7 @@ Args: Returns: None - + """ pass @@ -26536,7 +26540,7 @@ Args: Returns: None - + """ pass @@ -26552,7 +26556,7 @@ Args: Returns: None - + """ pass @@ -26569,7 +26573,7 @@ Args: Returns: None - + """ pass @@ -26586,7 +26590,7 @@ Args: Returns: None - + """ pass @@ -26604,7 +26608,7 @@ Args: Returns: None - + """ pass @@ -26620,7 +26624,7 @@ Args: Returns: None - + """ pass @@ -26641,7 +26645,7 @@ Args: Returns: None - + """ pass @@ -26657,7 +26661,7 @@ Args: Returns: None - + """ pass @@ -26673,7 +26677,7 @@ Args: Returns: None - + """ pass @@ -26689,7 +26693,7 @@ Args: Returns: None - + """ pass @@ -26705,7 +26709,7 @@ Args: Returns: None - + """ pass @@ -26721,7 +26725,7 @@ Args: Returns: None - + """ pass @@ -26738,7 +26742,7 @@ Args: Returns: None - + """ pass @@ -26755,7 +26759,7 @@ Args: Returns: None - + """ pass @@ -26771,7 +26775,7 @@ Args: Returns: None - + """ pass @@ -26787,7 +26791,7 @@ Args: Returns: None - + """ pass @@ -26803,7 +26807,7 @@ Args: Returns: None - + """ pass @@ -26819,7 +26823,7 @@ Args: Returns: None - + """ pass @@ -26835,7 +26839,7 @@ Args: Returns: None - + """ pass @@ -26858,7 +26862,7 @@ Args: Returns: None - + """ pass @@ -26874,7 +26878,7 @@ Args: Returns: None - + """ pass @@ -26897,7 +26901,7 @@ Args: Returns: PyIID - + """ pass @@ -26921,13 +26925,13 @@ Returns: None:PyIPersistFile.IsDirty IsDirty()Checks an object for changes since it was last saved to its current file. -Return ValueThis method returns the raw COM error code without raising the normal COM exception. +Return ValueThis method returns the raw COM error code without raising the normal COM exception. -You should treat any error return codes as an indication that the object has changed. +You should treat any error return codes as an indication that the object has changed. Unless this method explicitly returns S_FALSE, assume that the object must be saved. - + """ pass @@ -26944,7 +26948,7 @@ Args: Returns: None - + """ pass @@ -26961,7 +26965,7 @@ Args: Returns: None - + """ pass @@ -26977,7 +26981,7 @@ Args: Returns: None - + """ pass @@ -26993,7 +26997,7 @@ Args: Returns: typing.Any - + """ pass @@ -27016,7 +27020,7 @@ Args: Returns: None - + """ pass @@ -27039,7 +27043,7 @@ Args: Returns: None - + """ pass @@ -27053,7 +27057,7 @@ class PyIPersistPropertyBag(object): def InitNew(self,) -> 'None': """ - Called by the container when the control is initialized to initialize the + Called by the container when the control is initialized to initialize the property bag. @@ -27064,7 +27068,7 @@ Args: Returns: None - + """ pass @@ -27081,7 +27085,7 @@ Args: Returns: None - + """ pass @@ -27099,7 +27103,7 @@ Args: Returns: None - + """ pass @@ -27122,7 +27126,7 @@ Args: Returns: None - + """ pass @@ -27138,14 +27142,14 @@ Args: Returns: None - + """ pass def GetPropertyStorage(self,) -> 'typing.Any': """ - Retrieves the current contents of the property + Retrieves the current contents of the property store @@ -27156,7 +27160,7 @@ Args: Returns: typing.Any - + """ pass @@ -27179,7 +27183,7 @@ Args: Returns: typing.Any - + """ pass @@ -27195,7 +27199,7 @@ Args: Returns: None - + """ pass @@ -27211,7 +27215,7 @@ Args: Returns: None - + """ pass @@ -27228,7 +27232,7 @@ Args: Returns: None - + """ pass @@ -27244,16 +27248,16 @@ Args: Returns: None - + """ pass def HandsOffStorage(self,) -> 'None': """ - Instructs the object to release all storage objects that have been + Instructs the object to release all storage objects that have been -passed to it by its container and to enter HandsOff mode, in which the object cannot do anything and the only +passed to it by its container and to enter HandsOff mode, in which the object cannot do anything and the only operation that works is a close operation. @@ -27264,7 +27268,7 @@ Args: Returns: None - + """ pass @@ -27287,7 +27291,7 @@ Args: Returns: typing.Any - + """ pass @@ -27303,7 +27307,7 @@ Args: Returns: None - + """ pass @@ -27320,14 +27324,14 @@ Args: Returns: None - + """ pass def GetSizeMax(self,) -> 'ULARGE_INTEGER': """ - Returns the size in bytes of the stream needed to save the + Returns the size in bytes of the stream needed to save the object. @@ -27338,7 +27342,7 @@ Args: Returns: ULARGE_INTEGER - + """ pass @@ -27361,7 +27365,7 @@ Args: Returns: None - + """ pass @@ -27384,7 +27388,7 @@ Args: Returns: None - + """ pass @@ -27400,7 +27404,7 @@ Args: Returns: None - + """ pass @@ -27416,7 +27420,7 @@ Args: Returns: None - + """ pass @@ -27432,7 +27436,7 @@ Args: Returns: None - + """ pass @@ -27448,7 +27452,7 @@ Args: Returns: None - + """ pass @@ -27472,7 +27476,7 @@ Args: Returns: typing.Any - + """ pass @@ -27491,7 +27495,7 @@ Args: Returns: None - + """ pass @@ -27508,7 +27512,7 @@ Args: Returns: None - + """ pass @@ -27528,7 +27532,7 @@ Args: Returns: None - + """ pass @@ -27548,7 +27552,7 @@ Args: Returns: None - + """ pass @@ -27565,7 +27569,7 @@ Args: Returns: None - + """ pass @@ -27584,7 +27588,7 @@ Args: Returns: PyIProfAdmin - + """ pass @@ -27598,7 +27602,7 @@ class PyIPropertyBag(object): def Read(self,propName:'typing.Any',propType:'typing.Any',errorLog:'PyIErrorLog'=None) -> 'typing.Any': """ - Called by the control to read a property from the storage provided by the + Called by the control to read a property from the storage provided by the container. @@ -27611,14 +27615,14 @@ Args: Returns: typing.Any - + """ pass def Write(self,propName:'typing.Any',value:'typing.Any') -> 'None': """ - Called by the control to write each property in turn to the storage provided by the + Called by the control to write each property in turn to the storage provided by the container. @@ -27630,7 +27634,7 @@ Args: Returns: None - + """ pass @@ -27653,7 +27657,7 @@ Args: Returns: PyPROPVARIANT - + """ pass @@ -27676,7 +27680,7 @@ Args: Returns: typing.Any - + """ pass @@ -27693,7 +27697,7 @@ Args: Returns: PyIPropertyChange - + """ pass @@ -27710,7 +27714,7 @@ Args: Returns: None - + """ pass @@ -27726,14 +27730,14 @@ Args: Returns: None - + """ pass def AppendOrReplace(self,PropChange:'PyIPropertyChange') -> 'None': """ - Adds a change, or replaces if an identical property key is already + Adds a change, or replaces if an identical property key is already in container @@ -27744,7 +27748,7 @@ Args: Returns: None - + """ pass @@ -27760,7 +27764,7 @@ Args: Returns: None - + """ pass @@ -27776,7 +27780,7 @@ Args: Returns: typing.Any - + """ pass @@ -27799,7 +27803,7 @@ Args: Returns: PyPROPERTYKEY - + """ pass @@ -27815,7 +27819,7 @@ Args: Returns: typing.Any - + """ pass @@ -27831,7 +27835,7 @@ Args: Returns: typing.Any - + """ pass @@ -27847,7 +27851,7 @@ Args: Returns: typing.Any - + """ pass @@ -27863,7 +27867,7 @@ Args: Returns: typing.Any - + """ pass @@ -27879,14 +27883,14 @@ Args: Returns: typing.Any - + """ pass def GetViewFlags(self,) -> 'typing.Any': """ - Returns the view flags that control how the property is displayed + Returns the view flags that control how the property is displayed (PDVF_*) @@ -27897,7 +27901,7 @@ Args: Returns: typing.Any - + """ pass @@ -27913,7 +27917,7 @@ Args: Returns: typing.Any - + """ pass @@ -27929,14 +27933,14 @@ Args: Returns: typing.Any - + """ pass def GetColumnState(self,) -> 'typing.Any': """ - Returns flags that control how property is displayed in column + Returns flags that control how property is displayed in column (SHCOLSTATE_*) @@ -27947,7 +27951,7 @@ Args: Returns: typing.Any - + """ pass @@ -27963,7 +27967,7 @@ Args: Returns: typing.Any - + """ pass @@ -27979,7 +27983,7 @@ Args: Returns: typing.Any - + """ pass @@ -27996,14 +28000,14 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass def GetSortDescription(self,) -> 'typing.Any': """ - Returns value that determines how sorting options are + Returns value that determines how sorting options are displayed (PDSD_*) @@ -28014,7 +28018,7 @@ Args: Returns: typing.Any - + """ pass @@ -28030,14 +28034,14 @@ Args: Returns: typing.Any - + """ pass def GetAggregationType(self,) -> 'typing.Any': """ - Describes how properties for multiple items are displayed + Describes how properties for multiple items are displayed (PDAT_*) @@ -28048,14 +28052,14 @@ Args: Returns: typing.Any - + """ pass def GetConditionType(self,) -> 'typing.Tuple[typing.Any, typing.Any]': """ - Returns options that determine how the property is used + Returns options that determine how the property is used to build a search query @@ -28067,19 +28071,19 @@ Returns: typing.Tuple[typing.Any, typing.Any]:PyIPropertyDescription.GetConditionType -(int, int) = GetConditionType()Returns options that determine how the property is used +(int, int) = GetConditionType()Returns options that determine how the property is used to build a search query Return ValueReturns the condition type (PDCOT_*) and default operation (COP_*) - + """ pass def GetEnumTypeList(self,riid:'PyIID') -> 'PyIPropertyEnumTypeList': """ - Returns an interface used for querying + Returns an interface used for querying valid property range @@ -28090,14 +28094,14 @@ Args: Returns: PyIPropertyEnumTypeList - + """ pass def CoerceToCanonicalValue(self,Value:'PyPROPVARIANT') -> 'typing.Any': """ - Converts a variant value to the exact type expected by + Converts a variant value to the exact type expected by the property @@ -28112,7 +28116,7 @@ Returns: This method mutates the PyPROPVARIANT in place. It may be cleared on failure. Return ValueReturns the HRESULT from the operation on success. - + """ pass @@ -28129,14 +28133,14 @@ Args: Returns: typing.Any - + """ pass def IsValueCanonical(self,Value:'typing.Any') -> 'typing.Any': """ - Determines if a value exactly matches the specification for + Determines if a value exactly matches the specification for the property @@ -28147,7 +28151,7 @@ Args: Returns: typing.Any - + """ pass @@ -28161,7 +28165,7 @@ class PyIPropertyDescriptionAliasInfo(object): def GetSortByAlias(self,riid:'PyIID') -> 'PyIPropertyDescription': """ - Returns the primary column used + Returns the primary column used for sorting @@ -28172,14 +28176,14 @@ Args: Returns: PyIPropertyDescription - + """ pass def GetAdditionalSortByAliases(self,riid:'PyIID') -> 'PyIPropertyDescriptionList': """ - Returns secondary + Returns secondary sorting columns @@ -28190,7 +28194,7 @@ Args: Returns: PyIPropertyDescriptionList - + """ pass @@ -28213,7 +28217,7 @@ Args: Returns: typing.Any - + """ pass @@ -28230,7 +28234,7 @@ Args: Returns: PyIPropertyDescription - + """ pass @@ -28257,7 +28261,7 @@ Returns: int = GetSearchInfoFlags()Returns flags controlling how property is indexed Return ValueReturns a combination of PROPDESC_SEARCHINFO_FLAGS values - + """ pass @@ -28277,7 +28281,7 @@ Returns: int = GetColumnIndexType()Returns flags indicating type of property Return ValueReturns a value from the PROPDESC_COLUMNINDEX_TYPE enum - + """ pass @@ -28293,7 +28297,7 @@ Args: Returns: typing.Any - + """ pass @@ -28309,7 +28313,7 @@ Args: Returns: typing.Any - + """ pass @@ -28336,7 +28340,7 @@ Returns: int = GetEnumType()Retrieves the type (PROPENUMTYPE) Return Valuepscon.PET_* - + """ pass @@ -28352,7 +28356,7 @@ Args: Returns: PyPROPVARIANT - + """ pass @@ -28368,7 +28372,7 @@ Args: Returns: PyPROPVARIANT - + """ pass @@ -28384,7 +28388,7 @@ Args: Returns: PyPROPVARIANT - + """ pass @@ -28400,7 +28404,7 @@ Args: Returns: None - + """ pass @@ -28423,7 +28427,7 @@ Args: Returns: typing.Any - + """ pass @@ -28440,14 +28444,14 @@ Args: Returns: PyIPropertyEnumType - + """ pass def FindMatchingIndex(self,Cmp:'PyPROPVARIANT') -> 'typing.Any': """ - Attempts to match the specified value to one of the allowable + Attempts to match the specified value to one of the allowable values for the property @@ -28458,13 +28462,13 @@ Args: Returns: typing.Any - + """ pass class PyIPropertySetStorage(object): - """Container for a collection of property sets. + """Container for a collection of property sets. Can be iterated over to enumerate property sets.""" @@ -28486,7 +28490,7 @@ Args: Returns: PyIPropertyStorage - + """ pass @@ -28503,7 +28507,7 @@ Args: Returns: PyIPropertyStorage - + """ pass @@ -28519,14 +28523,14 @@ Args: Returns: None - + """ pass def Enum(self,) -> 'PyIEnumSTATPROPSETSTG': """ - Creates an iterator to enumerate contained property + Creates an iterator to enumerate contained property sets @@ -28537,13 +28541,13 @@ Args: Returns: PyIEnumSTATPROPSETSTG - + """ pass class PyIPropertyStorage(object): - """Structured storage object that contains a set of properties. + """Structured storage object that contains a set of properties. Supports iteration to list properties.""" @@ -28563,7 +28567,7 @@ Returns: typing.Tuple[typing.Any, ...]:Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type - + """ pass @@ -28581,7 +28585,7 @@ Args: Returns: None - + """ pass @@ -28597,14 +28601,14 @@ Args: Returns: None - + """ pass def ReadPropertyNames(self,props:'typing.Tuple[typing.Any, ...]') -> 'typing.Tuple[typing.Any, ...]': """ - Retrieves any existing string names for the specified + Retrieves any existing string names for the specified property identifiers. @@ -28615,14 +28619,14 @@ Args: Returns: typing.Tuple[typing.Any, ...] - + """ pass def WritePropertyNames(self,props:'typing.Tuple[typing.Any, ...]',names:'typing.Tuple[str, ...]') -> 'None': """ - Assigns string names to a specified array of property IDs in the + Assigns string names to a specified array of property IDs in the current property set. @@ -28634,7 +28638,7 @@ Args: Returns: None - + """ pass @@ -28650,7 +28654,7 @@ Args: Returns: None - + """ pass @@ -28666,7 +28670,7 @@ Args: Returns: None - + """ pass @@ -28682,7 +28686,7 @@ Args: Returns: None - + """ pass @@ -28698,7 +28702,7 @@ Args: Returns: PyIEnumSTATPROPSTG - + """ pass @@ -28716,7 +28720,7 @@ Args: Returns: None - + """ pass @@ -28732,7 +28736,7 @@ Args: Returns: None - + """ pass @@ -28752,7 +28756,7 @@ Returns: tuple = Stat()Returns various infomation about the property set Return ValueReturns a tuple representing a STATPROPSETSTG struct. - + """ pass @@ -28775,7 +28779,7 @@ Args: Returns: typing.Any - + """ pass @@ -28791,7 +28795,7 @@ Args: Returns: PyPROPERTYKEY - + """ pass @@ -28807,7 +28811,7 @@ Args: Returns: PyPROPVARIANT - + """ pass @@ -28824,7 +28828,7 @@ Args: Returns: None - + """ pass @@ -28840,7 +28844,7 @@ Args: Returns: None - + """ pass @@ -28864,14 +28868,14 @@ Returns: typing.Any:Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) - + """ pass def GetValueAndState(self,key:'PyPROPERTYKEY') -> 'typing.Tuple[PyPROPVARIANT, typing.Any]': """ - Retrieves the current value and state of a + Retrieves the current value and state of a property @@ -28882,7 +28886,7 @@ Args: Returns: typing.Tuple[PyPROPVARIANT, typing.Any] - + """ pass @@ -28899,7 +28903,7 @@ Args: Returns: None - + """ pass @@ -28917,13 +28921,13 @@ Args: Returns: None - + """ pass class PyIPropertyStoreCapabilities(object): - """Property providers use this interface to indicate whether properties are + """Property providers use this interface to indicate whether properties are writeable.""" @@ -28942,7 +28946,7 @@ Args: Returns: typing.Any - + """ pass @@ -28956,7 +28960,7 @@ class PyIPropertySystem(object): def GetPropertyDescription(self,Key:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescription': """ - Returns an interface used to describe a + Returns an interface used to describe a property @@ -28968,14 +28972,14 @@ Args: Returns: PyIPropertyDescription - + """ pass def GetPropertyDescriptionByName(self,CanonicalName:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescription': """ - Returns an interface used to + Returns an interface used to describe a property @@ -28987,14 +28991,14 @@ Args: Returns: PyIPropertyDescription - + """ pass def GetPropertyDescriptionListFromString(self,PropList:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescriptionList': """ - Retrieves property + Retrieves property descriptions from a string of property names @@ -29006,14 +29010,14 @@ Args: Returns: PyIPropertyDescriptionList - + """ pass def EnumeratePropertyDescriptions(self,Filter:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescriptionList': """ - Returns an interface used to + Returns an interface used to list defined properties @@ -29025,7 +29029,7 @@ Args: Returns: PyIPropertyDescriptionList - + """ pass @@ -29043,7 +29047,7 @@ Args: Returns: typing.Any - + """ pass @@ -29059,7 +29063,7 @@ Args: Returns: None - + """ pass @@ -29075,7 +29079,7 @@ Args: Returns: None - + """ pass @@ -29091,7 +29095,7 @@ Args: Returns: None - + """ pass @@ -29114,7 +29118,7 @@ Args: Returns: PyITypeInfo - + """ pass @@ -29137,7 +29141,7 @@ Args: Returns: PyIID - + """ pass @@ -29160,7 +29164,7 @@ Args: Returns: None - + """ pass @@ -29174,7 +29178,7 @@ class PyIProvideTaskPage(object): def GetPage(self,tpType:'typing.Any',PersistChanges:'typing.Any') -> 'None': """ - Return a property sheet page handle for the spedified type + Return a property sheet page handle for the spedified type (TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) @@ -29186,7 +29190,7 @@ Args: Returns: None - + """ pass @@ -29200,7 +29204,7 @@ class PyIQueryAssociations(object): def Init(self,flags:'typing.Any',assoc:'str',hkeyProgId:'PyHKEY'=None,hwnd:'int'=None) -> 'None': """ - Initializes the IQueryAssociations interface and sets the root key to the + Initializes the IQueryAssociations interface and sets the root key to the appropriate ProgID. @@ -29214,14 +29218,14 @@ Args: Returns: None - + """ pass def GetKey(self,flags:'typing.Any',assocKey:'typing.Any',arg:'str') -> 'typing.Any': """ - Searches for and retrieves a file association-related key from the + Searches for and retrieves a file association-related key from the registry. @@ -29234,14 +29238,14 @@ Args: Returns: typing.Any - + """ pass def GetString(self,flags:'typing.Any',assocStr:'typing.Any',arg:'str') -> 'typing.Any': """ - Searches for and retrieves a file association-related string from the + Searches for and retrieves a file association-related string from the registry. @@ -29254,13 +29258,13 @@ Args: Returns: typing.Any - + """ pass class PyIRelatedItem(object): - """Interface used as the base for objects that have a related shell item + """Interface used as the base for objects that have a related shell item (eg ITransferMediumItem, IDisplayItem, etc). Should not be used directly.""" @@ -29279,7 +29283,7 @@ Args: Returns: PyIDL - + """ pass @@ -29295,7 +29299,7 @@ Args: Returns: PyIShellItem - + """ pass @@ -29320,14 +29324,14 @@ Args: Returns: None - + """ pass def CauseBreak(self,) -> 'None': """ - Causes the application to break into the debugger at the earliest + Causes the application to break into the debugger at the earliest opportunity. @@ -29338,7 +29342,7 @@ Args: Returns: None - + """ pass @@ -29354,7 +29358,7 @@ Args: Returns: None - + """ pass @@ -29370,14 +29374,14 @@ Args: Returns: None - + """ pass def GetDebugger(self,) -> 'PyIApplicationDebugger': """ - Returns the current debugger connected to + Returns the current debugger connected to the application. @@ -29388,14 +29392,14 @@ Args: Returns: PyIApplicationDebugger - + """ pass def CreateInstanceAtApplication(self,rclsid:'PyIID',pUnkOuter:'PyIUnknown',dwClsContext:'typing.Any',riid:'PyIID') -> 'PyIUnknown': """ - Create objects in the application + Create objects in the application process address space. @@ -29409,7 +29413,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -29425,14 +29429,14 @@ Args: Returns: None - + """ pass def EnumThreads(self,) -> 'PyIEnumRemoteDebugApplicationThreads': """ - Enumerates all threads known + Enumerates all threads known to be associated with the application. @@ -29443,7 +29447,7 @@ Args: Returns: PyIEnumRemoteDebugApplicationThreads - + """ pass @@ -29459,14 +29463,14 @@ Args: Returns: None - + """ pass def GetRootNode(self,) -> 'PyIDebugApplicationNode': """ - Returns the application node under which + Returns the application node under which all nodes associated with the application are added. @@ -29477,14 +29481,14 @@ Args: Returns: PyIDebugApplicationNode - + """ pass def EnumGlobalExpressionContexts(self,) -> 'typing.Any': """ - Enumerates all + Enumerates all global expression contexts @@ -29495,7 +29499,7 @@ Args: Returns: typing.Any - + """ pass @@ -29518,7 +29522,7 @@ Args: Returns: None - + """ pass @@ -29534,7 +29538,7 @@ Args: Returns: None - + """ pass @@ -29550,7 +29554,7 @@ Args: Returns: None - + """ pass @@ -29566,7 +29570,7 @@ Args: Returns: None - + """ pass @@ -29582,7 +29586,7 @@ Args: Returns: None - + """ pass @@ -29598,7 +29602,7 @@ Args: Returns: None - + """ pass @@ -29614,7 +29618,7 @@ Args: Returns: None - + """ pass @@ -29630,7 +29634,7 @@ Args: Returns: None - + """ pass @@ -29646,7 +29650,7 @@ Args: Returns: None - + """ pass @@ -29663,7 +29667,7 @@ Args: Returns: None - + """ pass @@ -29686,7 +29690,7 @@ Args: Returns: None - + """ pass @@ -29702,7 +29706,7 @@ Args: Returns: None - + """ pass @@ -29718,7 +29722,7 @@ Args: Returns: None - + """ pass @@ -29734,7 +29738,7 @@ Args: Returns: None - + """ pass @@ -29751,7 +29755,7 @@ Args: Returns: None - + """ pass @@ -29767,7 +29771,7 @@ Args: Returns: None - + """ pass @@ -29783,7 +29787,7 @@ Args: Returns: None - + """ pass @@ -29799,7 +29803,7 @@ Args: Returns: None - + """ pass @@ -29815,7 +29819,7 @@ Args: Returns: None - + """ pass @@ -29829,7 +29833,7 @@ class PyIRunningObjectTable(object): def Register(self,) -> 'typing.Any': """ - Registers an object and its identifying moniker in the Running Object + Registers an object and its identifying moniker in the Running Object Table (ROT). @@ -29840,7 +29844,7 @@ Args: Returns: typing.Any - + """ pass @@ -29856,7 +29860,7 @@ Args: Returns: typing.Any - + """ pass @@ -29872,7 +29876,7 @@ Args: Returns: typing.Any - + """ pass @@ -29888,14 +29892,14 @@ Args: Returns: PyIUnknown - + """ pass def EnumRunning(self,) -> 'PyIEnumMoniker': """ - Creates an enumerator that can list the monikers of + Creates an enumerator that can list the monikers of all the objects currently registered in the Running Object Table (ROT). @@ -29906,7 +29910,7 @@ Args: Returns: PyIEnumMoniker - + """ pass @@ -29920,7 +29924,7 @@ class PyIScheduledWorkItem(object): def CreateTrigger(self,) -> 'typing.Tuple[typing.Any, PyITaskTrigger]': """ - Creates a new trigger for a task, returns index and + Creates a new trigger for a task, returns index and new ITaskTrigger interface @@ -29931,7 +29935,7 @@ Args: Returns: typing.Tuple[typing.Any, PyITaskTrigger] - + """ pass @@ -29947,7 +29951,7 @@ Args: Returns: None - + """ pass @@ -29963,14 +29967,14 @@ Args: Returns: typing.Any - + """ pass def GetTrigger(self,iTrigger:'typing.Any') -> 'PyITaskTrigger': """ - Retrieves ITaskTrigger interface for specified trigger + Retrieves ITaskTrigger interface for specified trigger index @@ -29981,7 +29985,7 @@ Args: Returns: PyITaskTrigger - + """ pass @@ -29997,14 +30001,14 @@ Args: Returns: typing.Any - + """ pass def GetRunTimes(self,Count:'typing.Any',Begin:'PyTime',End:'PyTime') -> 'typing.Tuple[PyTime, typing.Any, typing.Any, typing.Any]': """ - Return specified number of run times within given time + Return specified number of run times within given time frame @@ -30017,7 +30021,7 @@ Args: Returns: typing.Tuple[PyTime, typing.Any, typing.Any, typing.Any] - + """ pass @@ -30033,7 +30037,7 @@ Args: Returns: PyTime - + """ pass @@ -30050,14 +30054,14 @@ Args: Returns: None - + """ pass def GetIdleWait(self,) -> 'typing.Tuple[typing.Any, typing.Any]': """ - Gets IdleMinutes and DeadlineMinutes parms for task with trigger + Gets IdleMinutes and DeadlineMinutes parms for task with trigger of type TASK_EVENT_TRIGGER_ON_IDLE @@ -30068,7 +30072,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -30084,7 +30088,7 @@ Args: Returns: None - + """ pass @@ -30100,7 +30104,7 @@ Args: Returns: None - + """ pass @@ -30117,7 +30121,7 @@ Args: Returns: None - + """ pass @@ -30133,7 +30137,7 @@ Args: Returns: PyTime - + """ pass @@ -30149,14 +30153,14 @@ Args: Returns: typing.Any - + """ pass def GetExitCode(self,) -> 'typing.Tuple[typing.Any, typing.Any]': """ - Returns tuple of task's exit code and error returned to Task + Returns tuple of task's exit code and error returned to Task Scheduler if process could not start @@ -30167,7 +30171,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -30183,7 +30187,7 @@ Args: Returns: None - + """ pass @@ -30199,7 +30203,7 @@ Args: Returns: str - + """ pass @@ -30215,7 +30219,7 @@ Args: Returns: None - + """ pass @@ -30231,7 +30235,7 @@ Args: Returns: None - + """ pass @@ -30247,7 +30251,7 @@ Args: Returns: None - + """ pass @@ -30263,14 +30267,14 @@ Args: Returns: str - + """ pass def SetErrorRetryCount(self,wRetryCount:'typing.Any') -> 'None': """ - Specify nbr of times to attempt to run task if it can't start (not + Specify nbr of times to attempt to run task if it can't start (not currently implemented) @@ -30281,14 +30285,14 @@ Args: Returns: None - + """ pass def GetErrorRetryCount(self,) -> 'None': """ - Return nbr of times Task scheduler should try to run task (not + Return nbr of times Task scheduler should try to run task (not currently implemented) @@ -30299,14 +30303,14 @@ Args: Returns: None - + """ pass def SetErrorRetryInterval(self,RetryInterval:'typing.Any') -> 'None': """ - Interval in minutes between attempts to run task. Not + Interval in minutes between attempts to run task. Not implemented according to SDK @@ -30317,14 +30321,14 @@ Args: Returns: None - + """ pass def GetErrorRetryInterval(self,) -> 'None': """ - Returns nbr of minutes between attempts to run task. Not + Returns nbr of minutes between attempts to run task. Not implemented according to SDK @@ -30335,7 +30339,7 @@ Args: Returns: None - + """ pass @@ -30351,7 +30355,7 @@ Args: Returns: None - + """ pass @@ -30367,7 +30371,7 @@ Args: Returns: typing.Any - + """ pass @@ -30384,7 +30388,7 @@ Args: Returns: None - + """ pass @@ -30400,7 +30404,7 @@ Args: Returns: typing.Any - + """ pass @@ -30423,7 +30427,7 @@ Args: Returns: typing.Any - + """ pass @@ -30439,7 +30443,7 @@ Args: Returns: None - + """ pass @@ -30455,7 +30459,7 @@ Args: Returns: None - + """ pass @@ -30471,7 +30475,7 @@ Args: Returns: typing.Any - + """ pass @@ -30485,7 +30489,7 @@ class PyIServiceProvider(object): def QueryService(self,clsid:'PyIID',iid:'PyIID') -> 'PyIUnknown': """ - Creates or accesses the specified service and returns an + Creates or accesses the specified service and returns an interface object to the specified interface for the service. @@ -30497,13 +30501,13 @@ Args: Returns: PyIUnknown - + """ pass class PyIShellBrowser(object): - """Exposed by Windows Explorer and the Open File common dialog box to provide services for + """Exposed by Windows Explorer and the Open File common dialog box to provide services for namespace extensions.""" @@ -30523,7 +30527,7 @@ Args: Returns: PyOLEMENUGROUPWIDTHS - + """ pass @@ -30541,7 +30545,7 @@ Args: Returns: None - + """ pass @@ -30557,7 +30561,7 @@ Args: Returns: None - + """ pass @@ -30573,7 +30577,7 @@ Args: Returns: None - + """ pass @@ -30589,7 +30593,7 @@ Args: Returns: None - + """ pass @@ -30606,7 +30610,7 @@ Args: Returns: None - + """ pass @@ -30623,14 +30627,14 @@ Args: Returns: None - + """ pass def GetViewStateStream(self,grfMode:'typing.Any') -> 'PyIStream': """ - Returns a stream that can be used to access view state + Returns a stream that can be used to access view state information @@ -30641,7 +30645,7 @@ Args: Returns: PyIStream - + """ pass @@ -30657,7 +30661,7 @@ Args: Returns: None - + """ pass @@ -30676,7 +30680,7 @@ Args: Returns: typing.Any - + """ pass @@ -30692,7 +30696,7 @@ Args: Returns: PyIShellView - + """ pass @@ -30708,7 +30712,7 @@ Args: Returns: None - + """ pass @@ -30725,7 +30729,7 @@ Args: Returns: None - + """ pass @@ -30750,7 +30754,7 @@ Args: Returns: None - + """ pass @@ -30784,7 +30788,7 @@ specifies the relative path from the parsing folder to the object [2] int : Attributes returns any requested attributes - + """ pass @@ -30801,7 +30805,7 @@ Args: Returns: PyIEnumIDList - + """ pass @@ -30819,7 +30823,7 @@ Args: Returns: PyIShellFolder - + """ pass @@ -30838,7 +30842,7 @@ Returns: typing.Any:IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in - + """ pass @@ -30857,7 +30861,7 @@ Returns: typing.Any:Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first - + """ pass @@ -30874,7 +30878,7 @@ Args: Returns: PyIShellView - + """ pass @@ -30892,14 +30896,14 @@ Returns: typing.Any:Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items - + """ pass def GetUIObjectOf(self,hwndOwner:'int',pidl:'typing.Tuple[PyIDL, ...]',riid:'PyIID',iidout:'PyIID',Reserved:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PyIUnknown]': """ - Creates an interface to one or more items in a shell + Creates an interface to one or more items in a shell folder @@ -30913,16 +30917,16 @@ Args: Returns: - typing.Tuple[typing.Any, PyIUnknown]:The interface to return. Can be used in the case where there is not a + typing.Tuple[typing.Any, PyIUnknown]:The interface to return. Can be used in the case where there is not a -python wrapper for the desired interface. You must make certain that the interface identified by riid +python wrapper for the desired interface. You must make certain that the interface identified by riid -actually supports the iidout interface, or Bad Things Will Happen. +actually supports the iidout interface, or Bad Things Will Happen. It should always be safe to return PyIUnknown, which is the base for all interfaces. Return ValueReturns the Reserved parameter and the requested interface - + """ pass @@ -30939,7 +30943,7 @@ Args: Returns: typing.Any - + """ pass @@ -30959,7 +30963,7 @@ Returns: PyIDL:Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item - + """ pass @@ -30982,14 +30986,14 @@ Args: Returns: PyIID - + """ pass def EnumSearches(self,) -> 'typing.Any': """ - Returns an interface that lists searches defined for + Returns an interface that lists searches defined for the folder @@ -31000,7 +31004,7 @@ Args: Returns: typing.Any - + """ pass @@ -31016,7 +31020,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -31033,7 +31037,7 @@ Returns: typing.Any:Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags - + """ pass @@ -31051,14 +31055,14 @@ Returns: typing.Any:The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column - + """ pass def GetDetailsOf(self,pidl:'PyIDL',iColumn:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': """ - Returns the value or title of a column in the folder's Details + Returns the value or title of a column in the folder's Details view. @@ -31069,13 +31073,13 @@ Args: Returns: - typing.Tuple[typing.Any, typing.Any, typing.Any]:Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in + typing.Tuple[typing.Any, typing.Any, typing.Any]:Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in -characters, +characters, and string representation of the requested value - + """ pass @@ -31090,11 +31094,11 @@ Args: Returns: - typing.Any:The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. + typing.Any:The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. For Vista and later, this is the Property Key used with the property system interfaces. - + """ pass @@ -31117,7 +31121,7 @@ Args: Returns: None - + """ pass @@ -31140,7 +31144,7 @@ Args: Returns: None - + """ pass @@ -31156,7 +31160,7 @@ Args: Returns: None - + """ pass @@ -31179,22 +31183,22 @@ Args: Returns: - typing.Any:Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to + typing.Any:Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to -display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. +display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. -The client implementation of this function returns the same values - ie, +The client implementation of this function returns the same values - ie, Python's True and False should not be used, as S_OK==0==False. - + """ pass def GetOverlayInfo(self,) -> 'typing.Tuple[str, typing.Any, typing.Any]': """ - Retrieves the path to the overlay + Retrieves the path to the overlay icon @@ -31206,14 +31210,14 @@ Returns: typing.Tuple[str, typing.Any, typing.Any]:PyIShellIconOverlayIdentifier.GetOverlayInfo -(PyUnicode, int, int) = GetOverlayInfo()Retrieves the path to the overlay +(PyUnicode, int, int) = GetOverlayInfo()Retrieves the path to the overlay icon -Return ValueReturns the path to the icon file, the index of icon within the file, and Flags containing +Return ValueReturns the path to the icon file, the index of icon within the file, and Flags containing combination of shellcon.ISIOI_ICON* flags - + """ pass @@ -31233,7 +31237,7 @@ Returns: int = GetPriority()Retrieves the relative priority of the overlay Return ValueImplementation of this function should return a number in the range 0-100 (0 is highest priority) - + """ pass @@ -31247,7 +31251,7 @@ class PyIShellIconOverlayManager(object): def GetFileOverlayInfo(self,path:'typing.Any',attrib:'typing.Any',flags:'typing.Any') -> 'typing.Any': """ - Returns an index into the system image list for the icon + Returns an index into the system image list for the icon image or overlay image @@ -31260,7 +31264,7 @@ Args: Returns: typing.Any - + """ pass @@ -31279,7 +31283,7 @@ Args: Returns: None - + """ pass @@ -31295,7 +31299,7 @@ Args: Returns: None - + """ pass @@ -31311,7 +31315,7 @@ Args: Returns: None - + """ pass @@ -31328,7 +31332,7 @@ Args: Returns: None - + """ pass @@ -31353,7 +31357,7 @@ Args: Returns: typing.Any - + """ pass @@ -31369,7 +31373,7 @@ Args: Returns: PyIShellItem - + """ pass @@ -31385,7 +31389,7 @@ Args: Returns: typing.Any - + """ pass @@ -31402,7 +31406,7 @@ Returns: typing.Any:Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values - + """ pass @@ -31420,7 +31424,7 @@ Returns: typing.Any:shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise - + """ pass @@ -31444,14 +31448,14 @@ Args: Returns: PyIPropertyStore - + """ pass def GetPropertyStoreForKeys(self,Keys:'typing.Tuple[typing.Any, ...]',Flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': """ - Creates a property store containing just the + Creates a property store containing just the specified properties of the item @@ -31464,14 +31468,14 @@ Args: Returns: PyIPropertyStore - + """ pass def GetPropertyStoreWithCreateObject(self,Flags:'typing.Any',CreateObject:'PyIUnknown',riid:'PyIID') -> 'PyIPropertyStore': """ - Returns the property store for the + Returns the property store for the item, with alternate handler instantiation @@ -31484,14 +31488,14 @@ Args: Returns: PyIPropertyStore - + """ pass def GetPropertyDescriptionList(self,Type:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescriptionList': """ - Retrieves descriptions of + Retrieves descriptions of properties in a particular group @@ -31503,7 +31507,7 @@ Args: Returns: PyIPropertyDescriptionList - + """ pass @@ -31519,7 +31523,7 @@ Args: Returns: None - + """ pass @@ -31536,7 +31540,7 @@ Returns: typing.Any:The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property - + """ pass @@ -31552,7 +31556,7 @@ Args: Returns: PyIID - + """ pass @@ -31568,7 +31572,7 @@ Args: Returns: PyTime - + """ pass @@ -31584,7 +31588,7 @@ Args: Returns: typing.Any - + """ pass @@ -31600,7 +31604,7 @@ Args: Returns: typing.Any - + """ pass @@ -31616,7 +31620,7 @@ Args: Returns: typing.Any - + """ pass @@ -31632,7 +31636,7 @@ Args: Returns: typing.Any - + """ pass @@ -31648,7 +31652,7 @@ Args: Returns: typing.Any - + """ pass @@ -31673,14 +31677,14 @@ Args: Returns: typing.Any - + """ pass def GetPropertyStore(self,flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': """ - Retrieves a store containing consolidated + Retrieves a store containing consolidated properties of items in container @@ -31692,14 +31696,14 @@ Args: Returns: PyIPropertyStore - + """ pass def GetPropertyDescriptionList(self,Type:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescriptionList': """ - Retrieves descriptions for a + Retrieves descriptions for a defined group of properties @@ -31711,7 +31715,7 @@ Args: Returns: PyIPropertyDescriptionList - + """ pass @@ -31728,7 +31732,7 @@ Args: Returns: typing.Any - + """ pass @@ -31744,7 +31748,7 @@ Args: Returns: typing.Any - + """ pass @@ -31760,7 +31764,7 @@ Args: Returns: PyIShellItem - + """ pass @@ -31776,7 +31780,7 @@ Args: Returns: PyIEnumShellItems - + """ pass @@ -31799,7 +31803,7 @@ Args: Returns: None - + """ pass @@ -31815,7 +31819,7 @@ Args: Returns: typing.Any - + """ pass @@ -31831,7 +31835,7 @@ Args: Returns: None - + """ pass @@ -31849,7 +31853,7 @@ Args: Returns: None - + """ pass @@ -31865,7 +31869,7 @@ Args: Returns: None - + """ pass @@ -31881,7 +31885,7 @@ Args: Returns: PyIEnumResources - + """ pass @@ -31897,7 +31901,7 @@ Args: Returns: typing.Any - + """ pass @@ -31914,7 +31918,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -31931,7 +31935,7 @@ Args: Returns: typing.Any - + """ pass @@ -31947,7 +31951,7 @@ Args: Returns: None - + """ pass @@ -31971,7 +31975,7 @@ Args: Returns: None - + """ pass @@ -31988,7 +31992,7 @@ Args: Returns: None - + """ pass @@ -32004,7 +32008,7 @@ Args: Returns: None - + """ pass @@ -32020,7 +32024,7 @@ Args: Returns: None - + """ pass @@ -32037,7 +32041,7 @@ Args: Returns: PyIShellItemArray - + """ pass @@ -32055,14 +32059,14 @@ Args: Returns: PyIShellItem - + """ pass def GetDefaultSaveFolder(self,Type:'typing.Any',riid:'PyIID') -> 'PyIShellItem': """ - Returns the default folder in which new items are + Returns the default folder in which new items are saved @@ -32074,7 +32078,7 @@ Args: Returns: PyIShellItem - + """ pass @@ -32091,7 +32095,7 @@ Args: Returns: None - + """ pass @@ -32111,7 +32115,7 @@ Returns: int = GetOptions()Retrieves library option flags Return ValueReturns a combination of shellcon.LOF_* flags - + """ pass @@ -32128,7 +32132,7 @@ Args: Returns: None - + """ pass @@ -32144,7 +32148,7 @@ Args: Returns: PyIID - + """ pass @@ -32160,7 +32164,7 @@ Args: Returns: None - + """ pass @@ -32180,7 +32184,7 @@ Returns: str = GetIcon()Returns the location of the library's icon Return ValueUses "module,resource" format - + """ pass @@ -32196,7 +32200,7 @@ Args: Returns: None - + """ pass @@ -32212,7 +32216,7 @@ Args: Returns: None - + """ pass @@ -32231,7 +32235,7 @@ Returns: PyIShellItem:Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. - + """ pass @@ -32249,7 +32253,7 @@ Args: Returns: PyIShellItem - + """ pass @@ -32263,7 +32267,7 @@ class PyIShellLink(object): def GetPath(self,fFlags:'typing.Any',cchMaxPath:'typing.Any') -> 'typing.Tuple[typing.Any, WIN32_FIND_DATA]': """ - Retrieves the target path and file name of a shell link + Retrieves the target path and file name of a shell link object @@ -32275,7 +32279,7 @@ Args: Returns: typing.Tuple[typing.Any, WIN32_FIND_DATA] - + """ pass @@ -32291,7 +32295,7 @@ Args: Returns: PyIDL - + """ pass @@ -32307,7 +32311,7 @@ Args: Returns: None - + """ pass @@ -32323,7 +32327,7 @@ Args: Returns: typing.Any - + """ pass @@ -32339,7 +32343,7 @@ Args: Returns: None - + """ pass @@ -32355,7 +32359,7 @@ Args: Returns: typing.Any - + """ pass @@ -32371,7 +32375,7 @@ Args: Returns: None - + """ pass @@ -32387,7 +32391,7 @@ Args: Returns: typing.Any - + """ pass @@ -32403,7 +32407,7 @@ Args: Returns: None - + """ pass @@ -32419,7 +32423,7 @@ Args: Returns: typing.Any - + """ pass @@ -32435,7 +32439,7 @@ Args: Returns: None - + """ pass @@ -32451,7 +32455,7 @@ Args: Returns: typing.Any - + """ pass @@ -32467,14 +32471,14 @@ Args: Returns: None - + """ pass def GetIconLocation(self,cchMaxPath:'typing.Any') -> 'typing.Any': """ - Retrieves the location (path and index) of the icon for a shell link + Retrieves the location (path and index) of the icon for a shell link object. @@ -32485,7 +32489,7 @@ Args: Returns: typing.Any - + """ pass @@ -32502,7 +32506,7 @@ Args: Returns: None - + """ pass @@ -32519,14 +32523,14 @@ Args: Returns: None - + """ pass def Resolve(self,hwnd:'typing.Any',fFlags:'typing.Any') -> 'None': """ - Resolves a shell link by searching for the shell link object and updating the + Resolves a shell link by searching for the shell link object and updating the shell link path and its list of identifiers (if necessary) @@ -32538,7 +32542,7 @@ Args: Returns: None - + """ pass @@ -32554,7 +32558,7 @@ Args: Returns: None - + """ pass @@ -32577,7 +32581,7 @@ Args: Returns: None - + """ pass @@ -32594,7 +32598,7 @@ Returns: typing.Any:The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in - + """ pass @@ -32614,7 +32618,7 @@ Returns: int = GetFlags()Retrieves the link's flags Return ValueReturns combination of shellcon.SLDF_* flags - + """ pass @@ -32630,7 +32634,7 @@ Args: Returns: None - + """ pass @@ -32646,7 +32650,7 @@ Args: Returns: None - + """ pass @@ -32670,7 +32674,7 @@ Returns: typing.Any:Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call - + """ pass @@ -32686,7 +32690,7 @@ Args: Returns: None - + """ pass @@ -32702,7 +32706,7 @@ Args: Returns: None - + """ pass @@ -32718,7 +32722,7 @@ Args: Returns: None - + """ pass @@ -32738,7 +32742,7 @@ Returns: typing.Any:Description for prcViewReturn ValueThe result is an integer handle to the new window. - + """ pass @@ -32754,7 +32758,7 @@ Args: Returns: None - + """ pass @@ -32770,7 +32774,7 @@ Args: Returns: typing.Any - + """ pass @@ -32786,7 +32790,7 @@ Args: Returns: None - + """ pass @@ -32803,7 +32807,7 @@ Args: Returns: None - + """ pass @@ -32820,7 +32824,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -32843,7 +32847,7 @@ Args: Returns: None - + """ pass @@ -32857,9 +32861,9 @@ class PyIStorage(object): def CreateStream(self,Name:'typing.Any',Mode:'typing.Any',reserved1:'typing.Any'=0,reserved2:'typing.Any'=0) -> 'PyIStream': """ - Creates and opens a stream object with the specified name contained + Creates and opens a stream object with the specified name contained -in this storage object. All elements within a storage object — both streams and other storage objects — are kept in +in this storage object. All elements within a storage object — both streams and other storage objects — are kept in the same name space. @@ -32873,14 +32877,14 @@ Args: Returns: PyIStream - + """ pass def OpenStream(self,Name:'typing.Any',reserved1:'typing.Any',Mode:'typing.Any',reserved2:'typing.Any'=0) -> 'PyIStream': """ - Opens an existing stream object within this storage object in the + Opens an existing stream object within this storage object in the specified access mode. @@ -32894,14 +32898,14 @@ Args: Returns: PyIStream - + """ pass def CreateStorage(self,Name:'typing.Any',Mode:'typing.Any',StgFmt:'typing.Any',reserved2:'typing.Any'=0) -> 'PyIStorage': """ - Creates and opens a new storage object nested within this storage + Creates and opens a new storage object nested within this storage object. @@ -32915,14 +32919,14 @@ Args: Returns: PyIStorage - + """ pass def OpenStorage(self,Name:'typing.Any',Priority:'PyIStorage',Mode:'typing.Any',snbExclude:'typing.Any',reserved:'typing.Any'=0) -> 'PyIStorage': """ - Opens an existing storage object with the specified name in the + Opens an existing storage object with the specified name in the specified access mode. @@ -32937,7 +32941,7 @@ Args: Returns: PyIStorage - + """ pass @@ -32955,14 +32959,14 @@ Args: Returns: None - + """ pass def MoveElementTo(self,Name:'typing.Any',stgDest:'PyIStorage',NewName:'typing.Any',Flags:'typing.Any') -> 'None': """ - Copies or moves a substorage or stream from this storage object to another + Copies or moves a substorage or stream from this storage object to another storage object. @@ -32976,18 +32980,18 @@ Args: Returns: None - + """ pass def Commit(self,grfCommitFlags:'typing.Any') -> 'None': """ - Ensures that any changes made to a storage object open in transacted mode are reflected + Ensures that any changes made to a storage object open in transacted mode are reflected -in the parent storage; for a root storage, reflects the changes in the actual device, for example, a file on disk. +in the parent storage; for a root storage, reflects the changes in the actual device, for example, a file on disk. -For a root storage object opened in direct mode, this method has no effect except to flush all memory buffers to the +For a root storage object opened in direct mode, this method has no effect except to flush all memory buffers to the disk. For non-root storage objects in direct mode, this method has no effect. @@ -32998,7 +33002,7 @@ Args: Returns: None - + """ pass @@ -33014,14 +33018,14 @@ Args: Returns: None - + """ pass def EnumElements(self,reserved1:'typing.Any'=0,reserved2:'typing.Any'=None,reserved3:'typing.Any'=0) -> 'PyIEnumSTATSTG': """ - Retrieves an enumerator object that can be used to enumerate the + Retrieves an enumerator object that can be used to enumerate the storage and stream objects contained within this storage object. @@ -33034,7 +33038,7 @@ Args: Returns: PyIEnumSTATSTG - + """ pass @@ -33050,7 +33054,7 @@ Args: Returns: None - + """ pass @@ -33067,14 +33071,14 @@ Args: Returns: None - + """ pass def SetElementTimes(self,name:'typing.Any',ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': """ - Sets the modification, access, and creation times of the specified storage + Sets the modification, access, and creation times of the specified storage element, if supported by the underlying file system. @@ -33088,7 +33092,7 @@ Args: Returns: None - + """ pass @@ -33104,7 +33108,7 @@ Args: Returns: None - + """ pass @@ -33121,7 +33125,7 @@ Args: Returns: None - + """ pass @@ -33137,7 +33141,7 @@ Args: Returns: STATSTG - + """ pass @@ -33161,7 +33165,7 @@ Returns: str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - + """ pass @@ -33178,7 +33182,7 @@ Returns: str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - + """ pass @@ -33194,7 +33198,7 @@ Args: Returns: None - + """ pass @@ -33210,7 +33214,7 @@ Args: Returns: None - + """ pass @@ -33227,7 +33231,7 @@ Args: Returns: ULARGE_INTEGER - + """ pass @@ -33243,14 +33247,14 @@ Args: Returns: None - + """ pass def CopyTo(self,stream:'PyIStream',cb:'ULARGE_INTEGER') -> 'ULARGE_INTEGER': """ - Copies a specified number of bytes from the current seek pointer in the + Copies a specified number of bytes from the current seek pointer in the stream to the current seek pointer in another stream. @@ -33263,14 +33267,14 @@ Returns: ULARGE_INTEGER:The number of bytes to write.Return ValueThe return value is the number of bytes actually written. - + """ pass def Commit(self,flags:'typing.Any') -> 'None': """ - Ensures that any changes made to a stream object open in transacted mode are reflected in + Ensures that any changes made to a stream object open in transacted mode are reflected in the parent storage. @@ -33281,7 +33285,7 @@ Args: Returns: None - + """ pass @@ -33297,7 +33301,7 @@ Args: Returns: None - + """ pass @@ -33315,7 +33319,7 @@ Args: Returns: None - + """ pass @@ -33333,14 +33337,14 @@ Args: Returns: None - + """ pass def Clone(self,) -> 'PyIStream': """ - Creates a new stream object with its own seek pointer that references the + Creates a new stream object with its own seek pointer that references the same bytes as the original stream. @@ -33351,7 +33355,7 @@ Args: Returns: PyIStream - + """ pass @@ -33367,7 +33371,7 @@ Args: Returns: STATSTG - + """ pass @@ -33390,7 +33394,7 @@ Args: Returns: None - + """ pass @@ -33406,7 +33410,7 @@ Args: Returns: typing.Any - + """ pass @@ -33422,7 +33426,7 @@ Args: Returns: None - + """ pass @@ -33438,7 +33442,7 @@ Args: Returns: typing.Any - + """ pass @@ -33454,7 +33458,7 @@ Args: Returns: None - + """ pass @@ -33470,7 +33474,7 @@ Args: Returns: typing.Any - + """ pass @@ -33486,7 +33490,7 @@ Args: Returns: None - + """ pass @@ -33502,7 +33506,7 @@ Args: Returns: typing.Any - + """ pass @@ -33518,7 +33522,7 @@ Args: Returns: None - + """ pass @@ -33534,7 +33538,7 @@ Args: Returns: typing.Any - + """ pass @@ -33550,7 +33554,7 @@ Args: Returns: None - + """ pass @@ -33566,7 +33570,7 @@ Args: Returns: typing.Any - + """ pass @@ -33589,14 +33593,14 @@ Args: Returns: None - + """ pass def GetTargetComputer(self,) -> 'typing.Any': """ - Returns name of computer that the Task Scheduler is + Returns name of computer that the Task Scheduler is connected to @@ -33607,7 +33611,7 @@ Args: Returns: typing.Any - + """ pass @@ -33623,7 +33627,7 @@ Args: Returns: typing.Tuple[str, ...] - + """ pass @@ -33640,7 +33644,7 @@ Args: Returns: PyITask - + """ pass @@ -33656,7 +33660,7 @@ Args: Returns: None - + """ pass @@ -33674,7 +33678,7 @@ Args: Returns: PyITask - + """ pass @@ -33691,7 +33695,7 @@ Args: Returns: None - + """ pass @@ -33708,7 +33712,7 @@ Args: Returns: None - + """ pass @@ -33731,7 +33735,7 @@ Args: Returns: None - + """ pass @@ -33747,7 +33751,7 @@ Args: Returns: PyTASK_TRIGGER - + """ pass @@ -33763,7 +33767,7 @@ Args: Returns: str - + """ pass @@ -33786,7 +33790,7 @@ Args: Returns: None - + """ pass @@ -33802,7 +33806,7 @@ Args: Returns: None - + """ pass @@ -33818,7 +33822,7 @@ Args: Returns: None - + """ pass @@ -33834,14 +33838,14 @@ Args: Returns: None - + """ pass def SetActiveAlt(self,hwnd:'int') -> 'None': """ - Sets the window as the active tab, without displaying it as pressed on the + Sets the window as the active tab, without displaying it as pressed on the taskbar @@ -33852,7 +33856,7 @@ Args: Returns: None - + """ pass @@ -33880,7 +33884,7 @@ Args: Returns: None - + """ pass @@ -33896,7 +33900,7 @@ Args: Returns: None - + """ pass @@ -33914,14 +33918,14 @@ Args: Returns: typing.Any - + """ pass def ConfirmEncryptionLoss(self,Source:'PyIShellItem') -> 'typing.Any': """ - Notifies user when an item can't be encrypted at + Notifies user when an item can't be encrypted at destination @@ -33932,7 +33936,7 @@ Args: Returns: typing.Any - + """ pass @@ -33951,14 +33955,14 @@ Returns: typing.Tuple[typing.Any, typing.Any]:HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure - + """ pass def SubStreamFailure(self,Item:'PyIShellItem',StreamName:'typing.Any',Error:'typing.Any') -> 'typing.Any': """ - Notifies user of failure on a substream, and queries how to + Notifies user of failure on a substream, and queries how to proceed @@ -33972,7 +33976,7 @@ Returns: typing.Any:HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled - + """ pass @@ -33989,11 +33993,11 @@ Args: Returns: - typing.Any:HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or + typing.Any:HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or COPYENGINE_E_USERCANCELLED to cancel pending operations - + """ pass @@ -34017,7 +34021,7 @@ Returns: typing.Any:Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise - + """ pass @@ -34033,7 +34037,7 @@ Args: Returns: None - + """ pass @@ -34054,11 +34058,11 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any]:Resource interface to return -Return ValueReturns the HRESULT and requested interfaces. Interfaces may be None if +Return ValueReturns the HRESULT and requested interfaces. Interfaces may be None if function returns one of the informational codes (shellcon.COPYENGINE_S_*) - + """ pass @@ -34088,7 +34092,7 @@ Args: Returns: typing.Any - + """ pass @@ -34104,7 +34108,7 @@ Args: Returns: None - + """ pass @@ -34120,7 +34124,7 @@ Args: Returns: None - + """ pass @@ -34138,7 +34142,7 @@ Args: Returns: typing.Tuple[typing.Any, PyIShellItemResources] - + """ pass @@ -34156,13 +34160,13 @@ Args: Returns: - typing.Tuple[typing.Any, PyIShellItem]:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None + typing.Tuple[typing.Any, PyIShellItem]:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None -when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions +when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions of expected actions for specific error codes. - + """ pass @@ -34180,7 +34184,7 @@ Args: Returns: typing.Tuple[typing.Any, PyIShellItem] - + """ pass @@ -34198,7 +34202,7 @@ Returns: typing.Any:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation - + """ pass @@ -34216,7 +34220,7 @@ Args: Returns: typing.Tuple[typing.Any, PyIShellItem] - + """ pass @@ -34235,7 +34239,7 @@ Args: Returns: typing.Tuple[typing.Any, PyIShellItem] - + """ pass @@ -34251,14 +34255,14 @@ Args: Returns: PyIShellItem - + """ pass def GetDefaultDestinationName(self,Source:'PyIShellItem',ParentDest:'PyIShellItem') -> 'typing.Any': """ - Determines the name of an item as it would appear in a + Determines the name of an item as it would appear in a given folder @@ -34270,14 +34274,14 @@ Args: Returns: typing.Any - + """ pass def EnterFolder(self,ChildFolderDest:'PyIShellItem') -> 'typing.Any': """ - Informs the copy engine that a folder will be the target of a file + Informs the copy engine that a folder will be the target of a file operation @@ -34288,14 +34292,14 @@ Args: Returns: typing.Any - + """ pass def LeaveFolder(self,ChildFolderDest:'PyIShellItem') -> 'typing.Any': """ - Informs the copy engine that the operation on a destination folder is + Informs the copy engine that the operation on a destination folder is finished @@ -34306,7 +34310,7 @@ Args: Returns: typing.Any - + """ pass @@ -34330,7 +34334,7 @@ Args: Returns: typing.Any - + """ pass @@ -34346,7 +34350,7 @@ Args: Returns: typing.Any - + """ pass @@ -34360,7 +34364,7 @@ class PyITypeInfo(object): def GetContainingTypeLib(self,) -> 'typing.Tuple[PyITypeLib, typing.Any]': """ - Retrieves the containing type library and the index of + Retrieves the containing type library and the index of the type description within that type library. @@ -34371,14 +34375,14 @@ Args: Returns: typing.Tuple[PyITypeLib, typing.Any] - + """ pass def GetDocumentation(self,memberId:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Retrieves the documentation string, + Retrieves the documentation string, the complete Help file name and path, and the context ID for the Help topic for a specified type description. @@ -34389,7 +34393,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -34405,14 +34409,14 @@ Args: Returns: FUNCDESC - + """ pass def GetImplTypeFlags(self,index:'typing.Any') -> 'typing.Any': """ - Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or + Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or base interface in a type description. @@ -34423,14 +34427,14 @@ Args: Returns: typing.Any - + """ pass def GetIDsOfNames(self,) -> 'typing.Any': """ - Maps between member names and member IDs, and parameter names and parameter + Maps between member names and member IDs, and parameter names and parameter IDs. @@ -34441,14 +34445,14 @@ Args: Returns: typing.Any - + """ pass def GetNames(self,memberId:'typing.Any') -> 'typing.Any': """ - Retrieves the variable with the specified member ID (or the name of + Retrieves the variable with the specified member ID (or the name of the property or method and its parameters) that correspond to the specified function ID. @@ -34459,7 +34463,7 @@ Args: Returns: typing.Any - + """ pass @@ -34475,14 +34479,14 @@ Args: Returns: TYPEATTR - + """ pass def GetRefTypeInfo(self,hRefType:'typing.Any') -> 'PyITypeInfo': """ - If a type description references other type descriptions, it + If a type description references other type descriptions, it retrieves the referenced type descriptions. @@ -34493,7 +34497,7 @@ Args: Returns: PyITypeInfo - + """ pass @@ -34509,7 +34513,7 @@ Args: Returns: typing.Any - + """ pass @@ -34525,7 +34529,7 @@ Args: Returns: VARDESC - + """ pass @@ -34541,7 +34545,7 @@ Args: Returns: PyITypeComp - + """ pass @@ -34565,7 +34569,7 @@ Returns: typing.Any:The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) - + """ pass @@ -34581,7 +34585,7 @@ Args: Returns: TLIBATTR - + """ pass @@ -34597,7 +34601,7 @@ Args: Returns: PyITypeComp - + """ pass @@ -34613,7 +34617,7 @@ Args: Returns: PyITypeInfo - + """ pass @@ -34629,7 +34633,7 @@ Args: Returns: typing.Any - + """ pass @@ -34645,7 +34649,7 @@ Args: Returns: PyITypeInfo - + """ pass @@ -34661,7 +34665,7 @@ Args: Returns: typing.Any - + """ pass @@ -34684,7 +34688,7 @@ Args: Returns: typing.Any - + """ pass @@ -34701,7 +34705,7 @@ Args: Returns: None - + """ pass @@ -34719,7 +34723,7 @@ Args: Returns: typing.Any - + """ pass @@ -34742,41 +34746,41 @@ Args: Returns: - PyIUnknown:If provided and not None, will return an + PyIUnknown:If provided and not None, will return an -interface for the specified IID if (and only if) a native interface can not be supported. +interface for the specified IID if (and only if) a native interface can not be supported. If the interface specified by iid is natively supported, this option is ignored. Comments -The useIID parameter is a very dangerous option, and should only +The useIID parameter is a very dangerous option, and should only -be used when you are sure you need it! +be used when you are sure you need it! -By specifying this parameter, you are telling the COM framework that regardless +By specifying this parameter, you are telling the COM framework that regardless -of the true type of the result (as specified by iid), a Python wrapper +of the true type of the result (as specified by iid), a Python wrapper -of type useIID will be created. If iid does not derive from useIID, +of type useIID will be created. If iid does not derive from useIID, -then it is almost certain that using the object will cause an Access Violation. +then it is almost certain that using the object will cause an Access Violation. -For example, this option can be used to obtain a PyIUnknown object if +For example, this option can be used to obtain a PyIUnknown object if -pythoncom does not natively support the interface. +pythoncom does not natively support the interface. -Another example might be to return an unsupported persistence interface as a +Another example might be to return an unsupported persistence interface as a -PyIPersist instance. +PyIPersist instance. -For backwards compatibility: the integer 0 implies None, and the +For backwards compatibility: the integer 0 implies None, and the integer 1 implies IID_IUnknown. -Return ValueThe result is always an object derived from PyIUnknown. +Return ValueThe result is always an object derived from PyIUnknown. Any error (including E_NOINTERFACE) will generate a com_error exception. - + """ pass @@ -34807,7 +34811,7 @@ Args: Returns: None - + """ pass @@ -34826,7 +34830,7 @@ Args: Returns: None - + """ pass @@ -34844,7 +34848,7 @@ Args: Returns: None - + """ pass @@ -34860,7 +34864,7 @@ Args: Returns: None - + """ pass @@ -34878,7 +34882,7 @@ Args: Returns: None - + """ pass @@ -34894,7 +34898,7 @@ Args: Returns: None - + """ pass @@ -34919,7 +34923,7 @@ Args: Returns: None - + """ pass @@ -34969,7 +34973,7 @@ Args: Returns: typing.Any - + """ pass @@ -34985,7 +34989,7 @@ Args: Returns: typing.Any - + """ pass @@ -35002,7 +35006,7 @@ Args: Returns: PyPROPVARIANT - + """ pass @@ -35071,7 +35075,7 @@ class PySPropTagArray(object): class PySPropValue(object): - """A MAPI property value. Property values can either be passed from + """A MAPI property value. Property values can either be passed from python into MAPI functions, or returned from MAPI functions to Python.""" @@ -35165,7 +35169,7 @@ Args: Returns: None - + """ pass @@ -35185,7 +35189,7 @@ class RTF_WCSINFO(object): class SHFILEINFO(object): - """A tuple representing a SHFILEINFO structure + """A tuple representing a SHFILEINFO structure Represented as a tuple of (hIcon, iIcon, dwAttributes, displayName, typeName)""" @@ -35339,9 +35343,9 @@ class TYPEATTR(object): class TYPEDESC(object): - """A typedesc is a complicated, recursive object, + """A typedesc is a complicated, recursive object, -It may be either a simple Python type, or a tuple of (indirectType, object), where object +It may be either a simple Python type, or a tuple of (indirectType, object), where object may be a simple Python type, or a tuple of etc ...""" @@ -35446,7 +35450,7 @@ Args: Returns: None - + """ pass @@ -35462,7 +35466,7 @@ Args: Returns: typing.Any - + """ pass @@ -35487,7 +35491,7 @@ Args: Returns: None - + """ pass @@ -35503,7 +35507,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -35519,7 +35523,7 @@ Args: Returns: typing.Any - + """ pass @@ -35536,14 +35540,14 @@ Args: Returns: None - + """ pass def LoadBitmapFile(self,fileObject:'typing.Any') -> 'None': """ - Loads a bitmap (.BMP) format + Loads a bitmap (.BMP) format from a file object. @@ -35554,14 +35558,14 @@ Args: Returns: None - + """ pass def LoadPPMFile(self,fileObject:'typing.Any',cols:'typing.Any',rows:'typing.Any') -> 'None': """ - Loads a bitmap in Portable Pix Map (PPM) format + Loads a bitmap in Portable Pix Map (PPM) format from a file object. @@ -35574,7 +35578,7 @@ Args: Returns: None - + """ pass @@ -35592,7 +35596,7 @@ Args: Returns: None - + """ pass @@ -35610,21 +35614,21 @@ Returns: typing.Any:PyCBitmap.GetInfo dict = GetInfo()Returns the BITMAP structure info -Return ValueA dictionary of integers, keyed by the following strings: +Return ValueA dictionary of integers, keyed by the following strings: -bmType +bmType -bmWidth +bmWidth -bmHeight +bmHeight -bmWidthBytes +bmWidthBytes -bmPlanes +bmPlanes bmBitsPixel - + """ pass @@ -35640,7 +35644,7 @@ Args: Returns: typing.Union[str, typing.Any] - + """ pass @@ -35657,7 +35661,7 @@ Args: Returns: typing.Any - + """ pass @@ -35680,7 +35684,7 @@ Args: Returns: None - + """ pass @@ -35696,7 +35700,7 @@ Args: Returns: typing.Any - + """ pass @@ -35723,7 +35727,7 @@ Args: Returns: None - + """ pass @@ -35739,7 +35743,7 @@ Args: Returns: typing.Any - + """ pass @@ -35755,7 +35759,7 @@ Args: Returns: typing.Any - + """ pass @@ -35771,7 +35775,7 @@ Args: Returns: typing.Any - + """ pass @@ -35787,7 +35791,7 @@ Args: Returns: None - + """ pass @@ -35803,7 +35807,7 @@ Args: Returns: typing.Any - + """ pass @@ -35819,7 +35823,7 @@ Args: Returns: typing.Any - + """ pass @@ -35835,7 +35839,7 @@ Args: Returns: typing.Any - + """ pass @@ -35852,7 +35856,7 @@ Args: Returns: typing.Any - + """ pass @@ -35875,7 +35879,7 @@ Args: Returns: None - + """ pass @@ -35891,7 +35895,7 @@ Args: Returns: None - + """ pass @@ -35909,36 +35913,36 @@ Returns: typing.Any:The ID of the command to be handled, or zero to handle all command messages.Comments -obHandler will be called as the application receives command notification messages with the specified ID. +obHandler will be called as the application receives command notification messages with the specified ID. -Command notification messages are usually sent in response to menu or toolbar commands. +Command notification messages are usually sent in response to menu or toolbar commands. -When updating a user interface element, Pythonwin will first check if a +When updating a user interface element, Pythonwin will first check if a -handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone +handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone -determines the state of the interface object. If no Update handler exists, +determines the state of the interface object. If no Update handler exists, -PythonWin will automatically enable a menu/toolbar item if a command handler exists +PythonWin will automatically enable a menu/toolbar item if a command handler exists -The handler will be called with 2 arguments +The handler will be called with 2 arguments -* The command id being handled. +* The command id being handled. -* The command notification code. +* The command notification code. -If the handler returns TRUE, then the command will be passed on to the +If the handler returns TRUE, then the command will be passed on to the -default handler, otherwise the message will be consumed. +default handler, otherwise the message will be consumed. -This method is best suited to handling messages from user interface +This method is best suited to handling messages from user interface -elements, such as menus, toolbars, etc. To handle notification messages from a control, +elements, such as menus, toolbars, etc. To handle notification messages from a control, you should use PyCCmdTarget::HookNotify Return ValueThe return value is the previous handler, or None. - + """ pass @@ -35956,18 +35960,18 @@ Returns: typing.Any:The ID of the command to be handled.Comments -The handler object passed will be called as +The handler object passed will be called as -the application updates user interface elements +the application updates user interface elements -with the specified ID. +with the specified ID. -See PyCCmdTarget::HookCommand for a description +See PyCCmdTarget::HookCommand for a description of the rules used to determine command routing and updating. Return ValueThe return value is the previous handler, or None. - + """ pass @@ -35987,7 +35991,7 @@ Returns: object = HookOleEvent()Hook an OLE Event. Return ValueThe return value is the previous handler, or None. - + """ pass @@ -36005,41 +36009,41 @@ Returns: typing.Any:The ID of the command to be handled, or zero to handle all command messages.Comments -obHandler will be called as the application receives control notification messages. +obHandler will be called as the application receives control notification messages. -These may also be handled via PyCCmdTarget::HookCommand, but this method is specific +These may also be handled via PyCCmdTarget::HookCommand, but this method is specific to control notifications, and therefore provides more information. -The handler will be called with 2 arguments +The handler will be called with 2 arguments -A tuple describing standard notification information. +A tuple describing standard notification information. -A tuple describing extra notification params, or an integer containing the address of the first byte of the +A tuple describing extra notification params, or an integer containing the address of the first byte of the -extended information. If the handler returns TRUE, then the command will be passed on to the default handler, +extended information. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed. -Certain notification codes are recognised internally, and these are converted to a Python tuple. +Certain notification codes are recognised internally, and these are converted to a Python tuple. -If the extra information is not recognised, the address is passed. These addresses could be +If the extra information is not recognised, the address is passed. These addresses could be -extracted using win32ui::GetBytes and the struct module, or using +extracted using win32ui::GetBytes and the struct module, or using -Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program +Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program can install certain knowledge about handlers, but this has not been implemented.) Return ValueThe return value is the previous handler, or None. - + """ pass def RestoreWaitCursor(self,) -> 'None': """ - Restores the appropriate hourglass cursor after the system cursor has + Restores the appropriate hourglass cursor after the system cursor has changed. @@ -36050,7 +36054,7 @@ Args: Returns: None - + """ pass @@ -36097,7 +36101,7 @@ Args: Returns: None - + """ pass @@ -36113,7 +36117,7 @@ Args: Returns: None - + """ pass @@ -36129,7 +36133,7 @@ Args: Returns: None - + """ pass @@ -36145,14 +36149,14 @@ Args: Returns: None - + """ pass def ContinueRouting(self,) -> 'None': """ - Tells the command-routing mechanism to continue routing the current message down + Tells the command-routing mechanism to continue routing the current message down the chain of handlers. @@ -36163,7 +36167,7 @@ Args: Returns: None - + """ pass @@ -36186,7 +36190,7 @@ Args: Returns: typing.Any - + """ pass @@ -36202,7 +36206,7 @@ Args: Returns: typing.Any - + """ pass @@ -36218,7 +36222,7 @@ Args: Returns: typing.Any - + """ pass @@ -36234,7 +36238,7 @@ Args: Returns: None - + """ pass @@ -36250,7 +36254,7 @@ Args: Returns: None - + """ pass @@ -36266,7 +36270,7 @@ Args: Returns: typing.Tuple[typing.Any, ...] - + """ pass @@ -36291,7 +36295,7 @@ Returns: typing.Any:CComboBox::AddString Return ValueThe zero based index of the new string. - + """ pass @@ -36309,7 +36313,7 @@ Returns: typing.Any:CComboBox::DeleteString Return ValueThe count of the items remaining in the list. - + """ pass @@ -36328,7 +36332,7 @@ Returns: typing.Any:CComboBox::Dir Return ValueThe index of the last file name added to the list. - + """ pass @@ -36346,7 +36350,7 @@ Returns: typing.Any:CListBox::GetCount Return ValueReturns the number of items currently in the combobox. - + """ pass @@ -36362,7 +36366,7 @@ Args: Returns: typing.Any - + """ pass @@ -36378,15 +36382,15 @@ Args: Returns: typing.Any:CComboBox::GetEditSel -Return ValueA 32-bit value that contains the starting position in the low-order word and +Return ValueA 32-bit value that contains the starting position in the low-order word and -the position of the first nonselected character after the end of +the position of the first nonselected character after the end of -the selection in the high-order word. If this function is used on a combo box +the selection in the high-order word. If this function is used on a combo box without an edit control, an exception is raised. - + """ pass @@ -36404,7 +36408,7 @@ Returns: typing.Any:CComboBox::GetExtendedUI Return ValueNonzero if the combo box has the extended user interface; otherwise 0. - + """ pass @@ -36420,7 +36424,7 @@ Args: Returns: typing.Any - + """ pass @@ -36436,7 +36440,7 @@ Args: Returns: typing.Any - + """ pass @@ -36451,11 +36455,11 @@ Args: Returns: - str:The index of the item to return the string for.Return ValueThe requested string. If index does + str:The index of the item to return the string for.Return ValueThe requested string. If index does not specify a valid index, no exception is raised. - + """ pass @@ -36471,7 +36475,7 @@ Args: Returns: typing.Any - + """ pass @@ -36490,7 +36494,7 @@ Returns: typing.Any:CComboBox::InsertString Return ValueThe zero based index of the new string added. - + """ pass @@ -36506,7 +36510,7 @@ Args: Returns: typing.Any - + """ pass @@ -36522,7 +36526,7 @@ Args: Returns: None - + """ pass @@ -36541,7 +36545,7 @@ Returns: None:CComboBoxBox::SelectString Return ValueThe return value is always None - an exception is raised if the string can not be located. - + """ pass @@ -36557,7 +36561,7 @@ Args: Returns: None - + """ pass @@ -36574,11 +36578,11 @@ Args: Returns: None:PyCComboBox::SetEditSel -Return ValueThe return value is always None - an exception is raised if the combo is a dropdown style, or does not +Return ValueThe return value is always None - an exception is raised if the combo is a dropdown style, or does not have an edit control. - + """ pass @@ -36594,7 +36598,7 @@ Args: Returns: None - + """ pass @@ -36611,7 +36615,7 @@ Args: Returns: typing.Any - + """ pass @@ -36628,7 +36632,7 @@ Args: Returns: typing.Any - + """ pass @@ -36644,7 +36648,7 @@ Args: Returns: None - + """ pass @@ -36702,7 +36706,7 @@ class PyCControlBar(object): def CalcDynamicLayout(self,length:'typing.Any',dwMode:'typing.Any') -> 'typing.Any': """ - The framework calls this member function to calculate the dimensions of + The framework calls this member function to calculate the dimensions of a dynamic toolbar. @@ -36714,7 +36718,7 @@ Args: Returns: typing.Any - + """ pass @@ -36731,14 +36735,14 @@ Args: Returns: typing.Any - + """ pass def EnableDocking(self,style:'typing.Any') -> 'None': """ - pecifies whether the control bar supports docking and the sides of its parent + pecifies whether the control bar supports docking and the sides of its parent window. @@ -36749,7 +36753,7 @@ Args: Returns: None - + """ pass @@ -36765,7 +36769,7 @@ Args: Returns: None - + """ pass @@ -36781,7 +36785,7 @@ Args: Returns: typing.Any - + """ pass @@ -36797,7 +36801,7 @@ Args: Returns: typing.Any - + """ pass @@ -36813,14 +36817,14 @@ Args: Returns: PyCFrameWnd - + """ pass def IsFloating(self,) -> 'typing.Any': """ - Returns a nonzero value if the control bar in question is a floating control + Returns a nonzero value if the control bar in question is a floating control bar. @@ -36831,7 +36835,7 @@ Args: Returns: typing.Any - + """ pass @@ -36847,7 +36851,7 @@ Args: Returns: None - + """ pass @@ -36867,12 +36871,12 @@ Returns: int = ShowWindow()Shows the toolbar, and recalculates the button layout. Comments -This method is provided for convenience. For further details, see +This method is provided for convenience. For further details, see PyCWnd::ShowWindow and PyCFrameWnd::RecalcLayout Return ValueThe return value is that returned from PyCWnd::ShowWindow - + """ pass @@ -36896,7 +36900,7 @@ Args: Returns: None - + """ pass @@ -36919,7 +36923,7 @@ Args: Returns: None - + """ pass @@ -36939,7 +36943,7 @@ Returns: None:CDC::Arc Return ValueAlways none. If the function fails, an exception is raised. - + """ pass @@ -36955,7 +36959,7 @@ Args: Returns: None - + """ pass @@ -36975,7 +36979,7 @@ Args: Returns: None - + """ pass @@ -36995,7 +36999,7 @@ Returns: None:CDC::Chord Return ValueAlways none. If the function fails, an exception is raised. - + """ pass @@ -37011,7 +37015,7 @@ Args: Returns: None - + """ pass @@ -37027,7 +37031,7 @@ Args: Returns: None - + """ pass @@ -37043,7 +37047,7 @@ Args: Returns: None - + """ pass @@ -37064,7 +37068,7 @@ Returns: To Do Should really handle list of (x,y) points Return ValueThe converted coordinates. - + """ pass @@ -37082,14 +37086,14 @@ Args: Returns: None - + """ pass def DrawFocusRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': """ - Draws a rectangle in the style used to + Draws a rectangle in the style used to indicate the rectangle has focus @@ -37100,7 +37104,7 @@ Args: Returns: None - + """ pass @@ -37118,7 +37122,7 @@ Args: Returns: None - + """ pass @@ -37135,7 +37139,7 @@ Args: Returns: None - + """ pass @@ -37152,9 +37156,9 @@ Args: Returns: - typing.Tuple[typing.Any, typing.Any, typing.Any]:Specifies one or more bit-or'd format values, such as + typing.Tuple[typing.Any, typing.Any, typing.Any]:Specifies one or more bit-or'd format values, such as -DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see +DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see the Microsoft Win32 API documentation.ExampleExample import win32ui<nl> @@ -37198,15 +37202,15 @@ Return ValueHeight of text in pixels -The return value is the height of the text, in logical units. +The return value is the height of the text, in logical units. -If DT_VCENTER or DT_BOTTOM is specified, the return value is the +If DT_VCENTER or DT_BOTTOM is specified, the return value is the -offset from rect.top to the bottom of the drawn text. +offset from rect.top to the bottom of the drawn text. If the function fails, the return value is zero (no Python exception is thrown) - + """ pass @@ -37224,7 +37228,7 @@ Returns: None:CDC::Ellipse Return ValueAlways none. If the function fails, an exception is raised. - + """ pass @@ -37240,7 +37244,7 @@ Args: Returns: None - + """ pass @@ -37256,14 +37260,14 @@ Args: Returns: None - + """ pass def EndPath(self,) -> 'None': """ - Closes a path bracket and selects the path defined by the bracket into the specified device + Closes a path bracket and selects the path defined by the bracket into the specified device context @@ -37274,7 +37278,7 @@ Args: Returns: None - + """ pass @@ -37297,14 +37301,14 @@ Returns: None:CDC::ExtTextOut Return ValueAlways none. If the function fails, an exception is raised. - + """ pass def FillPath(self,) -> 'None': """ - Closes any open figures in the current path and fills the path's interior by using the + Closes any open figures in the current path and fills the path's interior by using the current brush and polygon-filling mode. After its interior is filled, the path is discarded from the device context. @@ -37315,7 +37319,7 @@ Args: Returns: None - + """ pass @@ -37332,7 +37336,7 @@ Args: Returns: None - + """ pass @@ -37349,7 +37353,7 @@ Args: Returns: None - + """ pass @@ -37366,14 +37370,14 @@ Args: Returns: None - + """ pass def GetBrushOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': """ - Retrieves the origin (in device units) of the brush currently selected for the + Retrieves the origin (in device units) of the brush currently selected for the device context. @@ -37384,14 +37388,14 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass def GetClipBox(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Retrieves the dimensions of the smallest bounding rectangle + Retrieves the dimensions of the smallest bounding rectangle around the current clipping boundary. @@ -37404,7 +37408,7 @@ Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]:CDC::GetClipBox Return ValueA tuple of integers specifying the rectangle. - + """ pass @@ -37420,7 +37424,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -37438,7 +37442,7 @@ Returns: typing.Any:CDC::GetDeviceCaps Return ValueThe value of the requested capability - + """ pass @@ -37454,7 +37458,7 @@ Args: Returns: typing.Any - + """ pass @@ -37470,7 +37474,7 @@ Args: Returns: typing.Any - + """ pass @@ -37486,7 +37490,7 @@ Args: Returns: typing.Any - + """ pass @@ -37502,7 +37506,7 @@ Args: Returns: typing.Any - + """ pass @@ -37519,7 +37523,7 @@ Args: Returns: None - + """ pass @@ -37535,14 +37539,14 @@ Args: Returns: typing.Any - + """ pass def GetTextExtent(self,text:'str') -> 'typing.Tuple[typing.Any, typing.Any]': """ - Calculates the width and height of a line of text using the current font to + Calculates the width and height of a line of text using the current font to determine the dimensions. @@ -37555,7 +37559,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:CFC::GetTextExtent Return ValueA tuple of integers with the size of the string, in logical units. - + """ pass @@ -37572,7 +37576,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. - + """ pass @@ -37588,7 +37592,7 @@ Args: Returns: str - + """ pass @@ -37604,49 +37608,49 @@ Args: Returns: typing.Any:CDC::GetTextMetrics -Return ValueA dictionary of integers, keyed by the following strings: +Return ValueA dictionary of integers, keyed by the following strings: -tmHeight +tmHeight -tmAscent +tmAscent -tmDescent +tmDescent -tmInternalLeading +tmInternalLeading -tmExternalLeading +tmExternalLeading -tmAveCharWidth +tmAveCharWidth -tmMaxCharWidth +tmMaxCharWidth -tmWeight +tmWeight -tmItalic +tmItalic -tmUnderlined +tmUnderlined -tmStruckOut +tmStruckOut -tmFirstChar +tmFirstChar -tmLastChar +tmLastChar -tmDefaultChar +tmDefaultChar -tmBreakChar +tmBreakChar -tmPitchAndFamily +tmPitchAndFamily -tmCharSet +tmCharSet -tmOverhang +tmOverhang -tmDigitizedAspectX +tmDigitizedAspectX tmDigitizedAspectY - + """ pass @@ -37662,7 +37666,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -37678,7 +37682,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -37694,14 +37698,14 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass def GetWindowOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': """ - Retrieves the x- and y-coordinates of the origin of the window associated with the + Retrieves the x- and y-coordinates of the origin of the window associated with the device context. @@ -37712,14 +37716,14 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass def IntersectClipRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': """ - Creates a new clipping region by forming the intersection of the current region + Creates a new clipping region by forming the intersection of the current region and the rectangle specified @@ -37732,7 +37736,7 @@ Returns: None:CDC::IntersectClipRect Return Valueregion type as integer - + """ pass @@ -37748,7 +37752,7 @@ Args: Returns: typing.Any - + """ pass @@ -37766,7 +37770,7 @@ Args: Returns: None - + """ pass @@ -37786,7 +37790,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:CDC::LPtoDP Return ValueThe converted coordinates. - + """ pass @@ -37806,14 +37810,14 @@ Returns: typing.Tuple[typing.Any, typing.Any]:CDC::MoveTo Return ValueThe previous position. - + """ pass def OffsetWindowOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': """ - Modifies the coordinates of the window origin relative to the coordinates of the + Modifies the coordinates of the window origin relative to the coordinates of the current window origin. @@ -37825,14 +37829,14 @@ Returns: typing.Tuple[typing.Any, typing.Any]:The new origin offset.Return ValueThe previous origin as a tuple (x,y) - + """ pass def OffsetViewportOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': """ - Modifies the coordinates of the viewport origin relative to the coordinates of + Modifies the coordinates of the viewport origin relative to the coordinates of the current viewport origin @@ -37844,7 +37848,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) - + """ pass @@ -37862,7 +37866,7 @@ Args: Returns: None - + """ pass @@ -37885,7 +37889,7 @@ Args: Returns: None - + """ pass @@ -37901,7 +37905,7 @@ Args: Returns: None - + """ pass @@ -37917,7 +37921,7 @@ Args: Returns: None - + """ pass @@ -37933,7 +37937,7 @@ Args: Returns: None - + """ pass @@ -37951,22 +37955,22 @@ Returns: typing.Any:PyCDC.RealizePalette int = RealizePalette()Maps palette entries in the current logical palette to the system palette. -Return ValueIndicates how many entries in the logical palette were mapped to different entries +Return ValueIndicates how many entries in the logical palette were mapped to different entries -in the system palette. This represents the number of entries that this function +in the system palette. This represents the number of entries that this function -remapped to accommodate changes in the system palette since the logical palette +remapped to accommodate changes in the system palette since the logical palette was last realized. - + """ pass def Rectangle(self,) -> 'typing.Any': """ - Draws a rectangle using the current pen. The interior of the rectangle is filled using + Draws a rectangle using the current pen. The interior of the rectangle is filled using the current brush. @@ -37977,14 +37981,14 @@ Args: Returns: typing.Any - + """ pass def RectVisible(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Any': """ - Determines whether any part of the given rectangle lies within the clipping region of + Determines whether any part of the given rectangle lies within the clipping region of the display context. @@ -37997,7 +38001,7 @@ Returns: typing.Any:CDC::RectVisible Return ValueNon zero if any part of the rectangle lies within the clipping region, else zero. - + """ pass @@ -38013,7 +38017,7 @@ Args: Returns: None - + """ pass @@ -38029,11 +38033,11 @@ Args: Returns: typing.Any:CDC::SaveDC -Return ValueAn integer identifying the context, which can be used by PyCDC::RestoreDC. +Return ValueAn integer identifying the context, which can be used by PyCDC::RestoreDC. An exception is raised if this function fails. - + """ pass @@ -38049,7 +38053,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -38065,7 +38069,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -38085,7 +38089,7 @@ Returns: obRgn = SelectClipRgn()Selects the given region as the current clipping region for the device context Return ValueThe return value specifies the region's complexity (integer) - + """ pass @@ -38103,7 +38107,7 @@ Returns: typing.Any:CDC::SelectObject Return ValueThe previously selected object. This will be the same type as the object parameter. - + """ pass @@ -38121,7 +38125,7 @@ Returns: typing.Any:CDC::SetBkColor Return ValueThe return value is the previous background color. - + """ pass @@ -38139,14 +38143,14 @@ Returns: typing.Any:CDC::SetBkMode Return ValueThe return value is the previous background mode. - + """ pass def SetBrushOrg(self,point:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': """ - Specifies the origin that GDI will assign to the next brush that the + Specifies the origin that GDI will assign to the next brush that the application selects into the device context. @@ -38159,7 +38163,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:CDC::SetBrushOrg Return ValueThe previous origin in device units. - + """ pass @@ -38175,7 +38179,7 @@ Args: Returns: typing.Any - + """ pass @@ -38193,7 +38197,7 @@ Returns: typing.Any:CDC::SetMapMode Return ValueThe previous mapping mode. - + """ pass @@ -38211,7 +38215,7 @@ Args: Returns: None - + """ pass @@ -38233,7 +38237,7 @@ Return ValueThe previous PolyFillMode as integer The previous PolyFillMode. - + """ pass @@ -38249,7 +38253,7 @@ Args: Returns: typing.Any - + """ pass @@ -38267,7 +38271,7 @@ Returns: typing.Any:CDC::SetTextAlign Return ValueThe old alignment flags. - + """ pass @@ -38285,7 +38289,7 @@ Returns: typing.Any:CDC::SetTextColor Return ValueThe return value is the previous text color. - + """ pass @@ -38303,7 +38307,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:CDC::SetWindowExt Return ValueThe previous extents of the window (in logical units). - + """ pass @@ -38319,7 +38323,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -38337,7 +38341,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:CDC::SetViewportExt Return ValueThe previous extents of the viewport (in logical units). - + """ pass @@ -38353,16 +38357,16 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass def SetWorldTransform(self,) -> 'typing.Any': """ - sets a two-dimensional linear transformation between world space and page space + sets a two-dimensional linear transformation between world space and page space -for the specified device context. This transformation can be used to scale, rotate, shear, or translate graphics +for the specified device context. This transformation can be used to scale, rotate, shear, or translate graphics output. @@ -38373,7 +38377,7 @@ Args: Returns: typing.Any - + """ pass @@ -38390,7 +38394,7 @@ Args: Returns: None - + """ pass @@ -38406,7 +38410,7 @@ Args: Returns: None - + """ pass @@ -38427,14 +38431,14 @@ Args: Returns: None - + """ pass def StrokeAndFillPath(self,) -> 'None': """ - Closes any open figures in a path, strokes the outline of the path by using the + Closes any open figures in a path, strokes the outline of the path by using the current pen, and fills its interior by using the current brush. The device context must contain a closed path. @@ -38445,7 +38449,7 @@ Args: Returns: None - + """ pass @@ -38461,7 +38465,7 @@ Args: Returns: None - + """ pass @@ -38481,7 +38485,7 @@ Returns: None:CDC::TextOut Return ValueAlways none. If the function fails, an exception is raised. - + """ pass @@ -38504,7 +38508,7 @@ Args: Returns: None - + """ pass @@ -38522,7 +38526,7 @@ Returns: typing.Any:CDialog::DoModal Return ValueThe return value from the dialog. This is the value passed to PyCDialog::EndDialog. - + """ pass @@ -38538,7 +38542,7 @@ Args: Returns: None - + """ pass @@ -38554,14 +38558,14 @@ Args: Returns: None - + """ pass def MapDialogRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Converts the dialog-box units of a rectangle to screen + Converts the dialog-box units of a rectangle to screen units. @@ -38572,7 +38576,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -38588,7 +38592,7 @@ Args: Returns: None - + """ pass @@ -38604,7 +38608,7 @@ Args: Returns: None - + """ pass @@ -38620,7 +38624,7 @@ Args: Returns: typing.Any - + """ pass @@ -38646,7 +38650,7 @@ Args: Returns: None - + """ pass @@ -38669,7 +38673,7 @@ Args: Returns: PyCDocument - + """ pass @@ -38685,7 +38689,7 @@ Args: Returns: PyCDocument - + """ pass @@ -38701,7 +38705,7 @@ Args: Returns: str - + """ pass @@ -38717,7 +38721,7 @@ Args: Returns: typing.Any - + """ pass @@ -38733,7 +38737,7 @@ Args: Returns: None - + """ pass @@ -38749,7 +38753,7 @@ Args: Returns: PyCMenu - + """ pass @@ -38767,7 +38771,7 @@ Args: Returns: None - + """ pass @@ -38783,7 +38787,7 @@ Args: Returns: None - + """ pass @@ -38799,7 +38803,7 @@ Args: Returns: None - + """ pass @@ -38816,7 +38820,7 @@ Args: Returns: None - + """ pass @@ -38953,7 +38957,7 @@ Args: Returns: typing.Any - + """ pass @@ -38969,7 +38973,7 @@ Args: Returns: typing.Any - + """ pass @@ -38985,7 +38989,7 @@ Args: Returns: typing.Any - + """ pass @@ -39002,7 +39006,7 @@ Args: Returns: typing.Any - + """ pass @@ -39018,7 +39022,7 @@ Args: Returns: typing.Any - + """ pass @@ -39032,9 +39036,9 @@ class PyCDocument(object): def DeleteContents(self,) -> 'None': """ - Call the MFC DeleteContents method. + Call the MFC DeleteContents method. -This routine is provided so a document object which overrides this method +This routine is provided so a document object which overrides this method can call the original MFC version if required. @@ -39045,7 +39049,7 @@ Args: Returns: None - + """ pass @@ -39062,16 +39066,16 @@ Args: Returns: None - + """ pass def DoFileSave(self,) -> 'None': """ - Checks the file attributes. + Checks the file attributes. -If the file is read only, a new name is prompted, else the +If the file is read only, a new name is prompted, else the file is saved (by calling DoSave) @@ -39082,7 +39086,7 @@ Args: Returns: None - + """ pass @@ -39098,7 +39102,7 @@ Args: Returns: PyCDocTemplate - + """ pass @@ -39114,7 +39118,7 @@ Args: Returns: typing.List[typing.Any] - + """ pass @@ -39130,14 +39134,14 @@ Args: Returns: PyCView - + """ pass def GetPathName(self,) -> 'str': """ - Returns the full path name of the current document. + Returns the full path name of the current document. The string will be empty if no path name has been set. @@ -39148,14 +39152,14 @@ Args: Returns: str - + """ pass def GetTitle(self,) -> 'str': """ - Returns the title of the current document. + Returns the title of the current document. This will often be the file name portion of the path name. @@ -39166,7 +39170,7 @@ Args: Returns: str - + """ pass @@ -39182,7 +39186,7 @@ Args: Returns: typing.Any - + """ pass @@ -39198,16 +39202,16 @@ Args: Returns: None - + """ pass def OnCloseDocument(self,) -> 'None': """ - Call the MFC OnCloseDocument handler. + Call the MFC OnCloseDocument handler. -This routine is provided so a document object which overrides this method +This routine is provided so a document object which overrides this method can call the original MFC version if required. @@ -39218,16 +39222,16 @@ Args: Returns: None - + """ pass def OnNewDocument(self,) -> 'None': """ - Call the MFC OnNewDocument handler. + Call the MFC OnNewDocument handler. -This routine is provided so a document object which overrides this method +This routine is provided so a document object which overrides this method can call the original MFC version if required. @@ -39238,16 +39242,16 @@ Args: Returns: None - + """ pass def OnOpenDocument(self,pathName:'str') -> 'None': """ - Call the MFC OnOpenDocument handler. + Call the MFC OnOpenDocument handler. -This routine is provided so a document object which overrides this method +This routine is provided so a document object which overrides this method can call the original MFC version if required. @@ -39258,16 +39262,16 @@ Args: Returns: None - + """ pass def OnSaveDocument(self,pathName:'str') -> 'None': """ - Call the MFC OnSaveDocument handler. + Call the MFC OnSaveDocument handler. -This routine is provided so a document object which overrides this method +This routine is provided so a document object which overrides this method can call the original MFC version if required. @@ -39278,7 +39282,7 @@ Args: Returns: None - + """ pass @@ -39294,7 +39298,7 @@ Args: Returns: None - + """ pass @@ -39312,7 +39316,7 @@ Returns: typing.Any:CDocument::SaveModified Return ValueNonzero if it is safe to continue and close the document; 0 if the document should not be closed. - + """ pass @@ -39328,14 +39332,14 @@ Args: Returns: None - + """ pass def SetTitle(self,title:'str') -> 'None': """ - Set the title of the document (ie, the name + Set the title of the document (ie, the name to appear in the window caption for the document. @@ -39346,7 +39350,7 @@ Args: Returns: None - + """ pass @@ -39363,7 +39367,7 @@ Args: Returns: None - + """ pass @@ -39389,7 +39393,7 @@ Args: Returns: None - + """ pass @@ -39405,7 +39409,7 @@ Args: Returns: typing.Any - + """ pass @@ -39421,7 +39425,7 @@ Args: Returns: None - + """ pass @@ -39437,7 +39441,7 @@ Args: Returns: None - + """ pass @@ -39455,7 +39459,7 @@ Returns: typing.Any:CEdit::FmtLines Return ValueNonzero if any formatting occurs; otherwise 0. - + """ pass @@ -39473,7 +39477,7 @@ Returns: typing.Any:CEdit::GetFirstVisibleLine Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. - + """ pass @@ -39489,11 +39493,11 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any]:CEdit::GetSel -Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the end of the current selection) - + """ pass @@ -39509,7 +39513,7 @@ Args: Returns: typing.Any - + """ pass @@ -39527,7 +39531,7 @@ Returns: typing.Any:CEdit::GetLineCount Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. - + """ pass @@ -39543,7 +39547,7 @@ Args: Returns: None - + """ pass @@ -39559,13 +39563,13 @@ Args: Returns: typing.Any:CEdit::LineFromChar -Return ValueThe zero-based line number of the line containing the character index specified by charNo. +Return ValueThe zero-based line number of the line containing the character index specified by charNo. -If charNo is -1, the number of the line that contains the first character of the selection is returned. +If charNo is -1, the number of the line that contains the first character of the selection is returned. If there is no selection, the current line number is returned. - + """ pass @@ -39581,13 +39585,13 @@ Args: Returns: typing.Any:CEdit::LineIndex -Return ValueThe character index of the line specified in lineNo, or -1 if +Return ValueThe character index of the line specified in lineNo, or -1 if -the specified line number is greater then the number of lines in +the specified line number is greater then the number of lines in the edit control. - + """ pass @@ -39604,7 +39608,7 @@ Args: Returns: typing.Any - + """ pass @@ -39620,7 +39624,7 @@ Args: Returns: None - + """ pass @@ -39636,7 +39640,7 @@ Args: Returns: None - + """ pass @@ -39652,7 +39656,7 @@ Args: Returns: None - + """ pass @@ -39672,7 +39676,7 @@ Args: Returns: None - + """ pass @@ -39695,7 +39699,7 @@ Args: Returns: typing.Any - + """ pass @@ -39711,7 +39715,7 @@ Args: Returns: None - + """ pass @@ -39727,7 +39731,7 @@ Args: Returns: None - + """ pass @@ -39743,7 +39747,7 @@ Args: Returns: typing.Any - + """ pass @@ -39759,7 +39763,7 @@ Args: Returns: typing.Any - + """ pass @@ -39775,7 +39779,7 @@ Args: Returns: None - + """ pass @@ -39792,7 +39796,7 @@ Args: Returns: None - + """ pass @@ -39815,7 +39819,7 @@ Args: Returns: str - + """ pass @@ -39831,7 +39835,7 @@ Args: Returns: str - + """ pass @@ -39847,7 +39851,7 @@ Args: Returns: str - + """ pass @@ -39863,7 +39867,7 @@ Args: Returns: str - + """ pass @@ -39879,7 +39883,7 @@ Args: Returns: str - + """ pass @@ -39895,7 +39899,7 @@ Args: Returns: typing.Any - + """ pass @@ -39911,7 +39915,7 @@ Args: Returns: None - + """ pass @@ -39927,7 +39931,7 @@ Args: Returns: None - + """ pass @@ -39950,7 +39954,7 @@ Args: Returns: typing.Any - + """ pass @@ -39973,7 +39977,7 @@ Args: Returns: typing.Any - + """ pass @@ -39989,7 +39993,7 @@ Args: Returns: typing.Any - + """ pass @@ -40005,7 +40009,7 @@ Args: Returns: typing.Any - + """ pass @@ -40021,7 +40025,7 @@ Args: Returns: typing.Any - + """ pass @@ -40037,7 +40041,7 @@ Args: Returns: str - + """ pass @@ -40053,7 +40057,7 @@ Args: Returns: str - + """ pass @@ -40069,7 +40073,7 @@ Args: Returns: typing.Any - + """ pass @@ -40085,7 +40089,7 @@ Args: Returns: typing.Any - + """ pass @@ -40101,7 +40105,7 @@ Args: Returns: typing.Any - + """ pass @@ -40117,7 +40121,7 @@ Args: Returns: typing.Any - + """ pass @@ -40133,7 +40137,7 @@ Args: Returns: typing.Any - + """ pass @@ -40149,7 +40153,7 @@ Args: Returns: typing.Any - + """ pass @@ -40173,7 +40177,7 @@ Args: Returns: None - + """ pass @@ -40196,7 +40200,7 @@ Args: Returns: None - + """ pass @@ -40219,7 +40223,7 @@ Args: Returns: typing.Any - + """ pass @@ -40235,7 +40239,7 @@ Args: Returns: None - + """ pass @@ -40253,7 +40257,7 @@ Args: Returns: None - + """ pass @@ -40269,7 +40273,7 @@ Args: Returns: None - + """ pass @@ -40287,7 +40291,7 @@ Args: Returns: None - + """ pass @@ -40303,7 +40307,7 @@ Args: Returns: PyCDocument - + """ pass @@ -40319,7 +40323,7 @@ Args: Returns: PyCControlBar - + """ pass @@ -40335,7 +40339,7 @@ Args: Returns: str - + """ pass @@ -40351,7 +40355,7 @@ Args: Returns: PyCWnd - + """ pass @@ -40367,7 +40371,7 @@ Args: Returns: typing.Any - + """ pass @@ -40383,7 +40387,7 @@ Args: Returns: typing.Any - + """ pass @@ -40399,7 +40403,7 @@ Args: Returns: None - + """ pass @@ -40418,7 +40422,7 @@ Args: Returns: None - + """ pass @@ -40434,7 +40438,7 @@ Args: Returns: None - + """ pass @@ -40450,7 +40454,7 @@ Args: Returns: typing.Any - + """ pass @@ -40466,7 +40470,7 @@ Args: Returns: None - + """ pass @@ -40484,14 +40488,14 @@ Args: Returns: None - + """ pass def RecalcLayout(self,bNotify:'typing.Any'=1) -> 'None': """ - Called by the framework when the standard control bars are toggled on or off or + Called by the framework when the standard control bars are toggled on or off or when the frame window is resized. @@ -40502,7 +40506,7 @@ Args: Returns: None - + """ pass @@ -40518,7 +40522,7 @@ Args: Returns: PyCView - + """ pass @@ -40534,7 +40538,7 @@ Args: Returns: typing.Any - + """ pass @@ -40550,7 +40554,7 @@ Args: Returns: typing.Any - + """ pass @@ -40567,7 +40571,7 @@ Args: Returns: None - + """ pass @@ -40602,7 +40606,7 @@ Returns: typing.Any:Handle of an icon to add. Return ValueZero-based index of the first new image. - + """ pass @@ -40618,7 +40622,7 @@ Args: Returns: None - + """ pass @@ -40634,7 +40638,7 @@ Args: Returns: None - + """ pass @@ -40650,7 +40654,7 @@ Args: Returns: typing.Any - + """ pass @@ -40666,7 +40670,7 @@ Args: Returns: typing.Any - + """ pass @@ -40682,7 +40686,7 @@ Args: Returns: typing.Any - + """ pass @@ -40699,7 +40703,7 @@ Returns: typing.Any:Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. - + """ pass @@ -40715,7 +40719,7 @@ Args: Returns: None - + """ pass @@ -40740,7 +40744,7 @@ Returns: typing.Any:CListBox::AddString Return ValueThe zero based index of the new string. - + """ pass @@ -40758,7 +40762,7 @@ Returns: typing.Any:CListBox::DeleteString Return ValueThe count of the items remaining in the list. - + """ pass @@ -40777,7 +40781,7 @@ Returns: typing.Any:CListBox::Dir Return ValueThe index of the last file name added to the list. - + """ pass @@ -40795,13 +40799,13 @@ Returns: typing.Any:PyCListBox.GetCaretIndex int = GetCaretIndex()Returns the index of the item which has focus. -Return ValueThe zero-based index of the item that has the focus rectangle in a list box. +Return ValueThe zero-based index of the item that has the focus rectangle in a list box. -If the list box is a single-selection list box, the return value is the index of the item that is selected, if +If the list box is a single-selection list box, the return value is the index of the item that is selected, if any. - + """ pass @@ -40819,7 +40823,7 @@ Returns: typing.Any:CListBox::GetCount Return ValueReturns the number of items currently in the listbox. - + """ pass @@ -40835,7 +40839,7 @@ Args: Returns: typing.Any - + """ pass @@ -40851,7 +40855,7 @@ Args: Returns: typing.Any - + """ pass @@ -40867,7 +40871,7 @@ Args: Returns: typing.Any - + """ pass @@ -40885,7 +40889,7 @@ Returns: typing.Any:CListBox::GetSel Return ValueA +ve number if the item is selected, else zero. - + """ pass @@ -40901,14 +40905,14 @@ Args: Returns: typing.Any - + """ pass def GetSelItems(self,) -> 'typing.Any': """ - Returns a list of the indexes of the currently selected items in a multiple + Returns a list of the indexes of the currently selected items in a multiple selection listbox. @@ -40919,14 +40923,14 @@ Args: Returns: typing.Any - + """ pass def GetSelTextItems(self,) -> 'typing.Any': """ - Returns a list of the strings of the currently selected items in a multiple + Returns a list of the strings of the currently selected items in a multiple selection listbox. @@ -40937,7 +40941,7 @@ Args: Returns: typing.Any - + """ pass @@ -40955,7 +40959,7 @@ Returns: typing.Any:CListBox::GetTopIndex Return ValueThe zero based index of the top most visible item. - + """ pass @@ -40971,7 +40975,7 @@ Args: Returns: str - + """ pass @@ -40987,7 +40991,7 @@ Args: Returns: typing.Any - + """ pass @@ -41006,7 +41010,7 @@ Returns: typing.Any:CListBox::InsertString Return ValueThe zero based index of the new string added. - + """ pass @@ -41022,7 +41026,7 @@ Args: Returns: None - + """ pass @@ -41039,7 +41043,7 @@ Args: Returns: None - + """ pass @@ -41058,7 +41062,7 @@ Returns: None:CListBox::SelectString Return ValueThe return value is always None - an exception is raised if the string can not be located. - + """ pass @@ -41076,7 +41080,7 @@ Args: Returns: None - + """ pass @@ -41092,7 +41096,7 @@ Args: Returns: None - + """ pass @@ -41109,7 +41113,7 @@ Args: Returns: typing.Any - + """ pass @@ -41126,7 +41130,7 @@ Args: Returns: typing.Any - + """ pass @@ -41143,7 +41147,7 @@ Args: Returns: None - + """ pass @@ -41160,7 +41164,7 @@ Args: Returns: None - + """ pass @@ -41176,7 +41180,7 @@ Args: Returns: None - + """ pass @@ -41199,7 +41203,7 @@ Args: Returns: None - + """ pass @@ -41218,7 +41222,7 @@ Args: Returns: None - + """ pass @@ -41234,7 +41238,7 @@ Args: Returns: None - + """ pass @@ -41250,7 +41254,7 @@ Args: Returns: None - + """ pass @@ -41266,7 +41270,7 @@ Args: Returns: typing.Any - + """ pass @@ -41282,7 +41286,7 @@ Args: Returns: None - + """ pass @@ -41298,7 +41302,7 @@ Args: Returns: typing.Any - + """ pass @@ -41314,7 +41318,7 @@ Args: Returns: None - + """ pass @@ -41331,7 +41335,7 @@ Args: Returns: LV_ITEM - + """ pass @@ -41347,7 +41351,7 @@ Args: Returns: typing.Any - + """ pass @@ -41364,14 +41368,14 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass def GetEditControl(self,) -> 'PyCEdit': """ - Retrieves the handle of the edit control used to edit the specified + Retrieves the handle of the edit control used to edit the specified list view item. @@ -41382,7 +41386,7 @@ Args: Returns: PyCEdit - + """ pass @@ -41398,7 +41402,7 @@ Args: Returns: PyCEdit - + """ pass @@ -41415,14 +41419,14 @@ Args: Returns: typing.Any - + """ pass def CreateDragImage(self,item:'typing.Any') -> 'typing.Tuple[PyCImageList, typing.Any, typing.Any]': """ - Creates a dragging bitmap for the specified list view + Creates a dragging bitmap for the specified list view item. @@ -41433,7 +41437,7 @@ Args: Returns: typing.Tuple[PyCImageList, typing.Any, typing.Any] - + """ pass @@ -41449,14 +41453,14 @@ Args: Returns: PyCImageList - + """ pass def GetNextItem(self,item:'typing.Any',flags:'typing.Any') -> 'typing.Any': """ - Searches for a list view item with specified properties and with specified + Searches for a list view item with specified properties and with specified relationship to a given item. @@ -41467,21 +41471,21 @@ Args: Returns: - typing.Any:Geometric relation of the requested item to the specified item, + typing.Any:Geometric relation of the requested item to the specified item, -and the state of the requested item. The geometric relation can be one of these values: +and the state of the requested item. The geometric relation can be one of these values: -LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT +LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT -The state can be zero, or it can be one or more of these values: +The state can be zero, or it can be one or more of these values: -LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED +LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED -If an item does not have all of the specified state flags set, the search continues with the +If an item does not have all of the specified state flags set, the search continues with the next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. - + """ pass @@ -41498,7 +41502,7 @@ Args: Returns: typing.Any - + """ pass @@ -41519,7 +41523,7 @@ Args: Returns: typing.Any - + """ pass @@ -41536,7 +41540,7 @@ Args: Returns: typing.Any - + """ pass @@ -41552,7 +41556,7 @@ Args: Returns: LV_COLUMN - + """ pass @@ -41568,7 +41572,7 @@ Args: Returns: typing.Any - + """ pass @@ -41584,7 +41588,7 @@ Args: Returns: None - + """ pass @@ -41600,14 +41604,14 @@ Args: Returns: typing.Any - + """ pass def GetCountPerPage(self,) -> 'typing.Any': """ - Calculates the number of items that can fit vertically in a list view + Calculates the number of items that can fit vertically in a list view control. @@ -41618,7 +41622,7 @@ Args: Returns: typing.Any - + """ pass @@ -41634,7 +41638,7 @@ Args: Returns: typing.Any - + """ pass @@ -41650,7 +41654,7 @@ Args: Returns: typing.Any - + """ pass @@ -41668,7 +41672,7 @@ Args: Returns: typing.Any - + """ pass @@ -41685,7 +41689,7 @@ Args: Returns: typing.Any - + """ pass @@ -41702,7 +41706,7 @@ Args: Returns: typing.Any - + """ pass @@ -41718,7 +41722,7 @@ Args: Returns: typing.Any - + """ pass @@ -41734,7 +41738,7 @@ Args: Returns: None - + """ pass @@ -41752,7 +41756,7 @@ Args: Returns: typing.Any - + """ pass @@ -41769,7 +41773,7 @@ Args: Returns: typing.Any - + """ pass @@ -41786,7 +41790,7 @@ Args: Returns: typing.Any - + """ pass @@ -41802,7 +41806,7 @@ Args: Returns: None - + """ pass @@ -41819,7 +41823,7 @@ Args: Returns: typing.Any - + """ pass @@ -41835,7 +41839,7 @@ Args: Returns: typing.Any - + """ pass @@ -41851,7 +41855,7 @@ Args: Returns: typing.Any - + """ pass @@ -41868,7 +41872,7 @@ Args: Returns: typing.Any - + """ pass @@ -41884,7 +41888,7 @@ Args: Returns: typing.Any - + """ pass @@ -41899,7 +41903,7 @@ Args: Returns: - typing.Tuple[typing.Any, typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, item, subItem). + typing.Tuple[typing.Any, typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, item, subItem). flags may be a combination of the following values: @@ -41914,7 +41918,7 @@ Description commctrl.LVHT_ABOVEThe position is above the control's client area. commctrl.LVHT_BELOWThe position is below the control's client area. -commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a +commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a list item. commctrl.LVHT_ONITEMICONThe position is over a list view item's icon. @@ -41923,7 +41927,7 @@ commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area. commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. - + """ pass @@ -41939,7 +41943,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -41962,7 +41966,7 @@ Args: Returns: typing.Any - + """ pass @@ -41978,7 +41982,7 @@ Args: Returns: PyCListCtrl - + """ pass @@ -41995,7 +41999,7 @@ Args: Returns: None - + """ pass @@ -42018,7 +42022,7 @@ Args: Returns: None - + """ pass @@ -42039,7 +42043,7 @@ Args: Returns: typing.Any - + """ pass @@ -42055,7 +42059,7 @@ Args: Returns: None - + """ pass @@ -42071,7 +42075,7 @@ Args: Returns: None - + """ pass @@ -42087,7 +42091,7 @@ Args: Returns: typing.Any - + """ pass @@ -42103,7 +42107,7 @@ Args: Returns: None - + """ pass @@ -42120,7 +42124,7 @@ Args: Returns: None - + """ pass @@ -42136,7 +42140,7 @@ Args: Returns: None - + """ pass @@ -42159,14 +42163,14 @@ Args: Returns: PyCMDIFrameWnd - + """ pass def MDIGetActive(self,) -> 'typing.Tuple[PyCMDIChildWnd, typing.Any]': """ - Retrieves the current active MDI child window, along + Retrieves the current active MDI child window, along with a flag indicating whether the child window is maximized. @@ -42177,7 +42181,7 @@ Args: Returns: typing.Tuple[PyCMDIChildWnd, typing.Any] - + """ pass @@ -42193,7 +42197,7 @@ Args: Returns: PyCMDIFrameWnd - + """ pass @@ -42209,7 +42213,7 @@ Args: Returns: None - + """ pass @@ -42225,7 +42229,7 @@ Args: Returns: typing.Any - + """ pass @@ -42241,7 +42245,7 @@ Args: Returns: None - + """ pass @@ -42258,7 +42262,7 @@ Args: Returns: None - + """ pass @@ -42274,7 +42278,7 @@ Args: Returns: typing.Any - + """ pass @@ -42290,7 +42294,7 @@ Args: Returns: None - + """ pass @@ -42304,7 +42308,7 @@ class PyCMenu(object): def AppendMenu(self,flags:'typing.Any',_id:'typing.Any'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': """ - Appends a new item to the end of a menu. Python can specify the state of the menu item + Appends a new item to the end of a menu. Python can specify the state of the menu item by setting values in nFlags. @@ -42317,7 +42321,7 @@ Args: Returns: None - + """ pass @@ -42334,7 +42338,7 @@ Args: Returns: str - + """ pass @@ -42351,7 +42355,7 @@ Args: Returns: typing.Any - + """ pass @@ -42367,7 +42371,7 @@ Args: Returns: typing.Any - + """ pass @@ -42387,7 +42391,7 @@ Returns: int = GetMenuItemCount()Determines the number of items in a menu. Return ValueThe number of items in the menu if the function is successful; otherwise -1. - + """ pass @@ -42403,7 +42407,7 @@ Args: Returns: typing.Any - + """ pass @@ -42420,7 +42424,7 @@ Args: Returns: str - + """ pass @@ -42436,7 +42440,7 @@ Args: Returns: PyCMenu - + """ pass @@ -42455,7 +42459,7 @@ Args: Returns: None - + """ pass @@ -42474,7 +42478,7 @@ Args: Returns: None - + """ pass @@ -42494,16 +42498,16 @@ Returns: None:The owner of the menu. Comments -The TrackPopupMenu function displays a floating pop-up menu at the +The TrackPopupMenu function displays a floating pop-up menu at the -specified location and tracks the selection of items on the pop-up menu. +specified location and tracks the selection of items on the pop-up menu. The floating pop-up menu can appear anywhere on the screen. -Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is +Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is returned instead of the normal exception. - + """ pass @@ -42526,7 +42530,7 @@ Args: Returns: None - + """ pass @@ -42542,7 +42546,7 @@ Args: Returns: None - + """ pass @@ -42558,14 +42562,14 @@ Args: Returns: None - + """ pass def Draw(self,) -> 'None': """ - Draws the OLE item into the specified bounding rectangle using the specified device + Draws the OLE item into the specified bounding rectangle using the specified device context. @@ -42576,7 +42580,7 @@ Args: Returns: None - + """ pass @@ -42592,7 +42596,7 @@ Args: Returns: PyCView - + """ pass @@ -42608,14 +42612,14 @@ Args: Returns: PyCDocument - + """ pass def GetInPlaceWindow(self,) -> 'PyCWnd': """ - Obtains the window in which the item has been opened for + Obtains the window in which the item has been opened for in-place editing. @@ -42626,7 +42630,7 @@ Args: Returns: PyCWnd - + """ pass @@ -42642,14 +42646,14 @@ Args: Returns: None - + """ pass def GetObject(self,) -> 'PyIUnknown': """ - Returns the COM object to the item. This is the m_lpObject + Returns the COM object to the item. This is the m_lpObject variable in MFC. @@ -42660,7 +42664,7 @@ Args: Returns: PyIUnknown - + """ pass @@ -42676,7 +42680,7 @@ Args: Returns: None - + """ pass @@ -42692,7 +42696,7 @@ Args: Returns: None - + """ pass @@ -42708,7 +42712,7 @@ Args: Returns: None - + """ pass @@ -42728,7 +42732,7 @@ Returns: int = OnChangeItemPosition()Calls the underlying MFC method. Return ValueThe result is a BOOL indicating if the function succeeded. No exception is thrown. - + """ pass @@ -42744,7 +42748,7 @@ Args: Returns: typing.Any - + """ pass @@ -42760,7 +42764,7 @@ Args: Returns: None - + """ pass @@ -42776,7 +42780,7 @@ Args: Returns: None - + """ pass @@ -42797,7 +42801,7 @@ class PyCOleDocument(object): def EnableCompoundFile(self,bEnable:'typing.Any'=1) -> 'None': """ - Call this function if you want to store the document using the + Call this function if you want to store the document using the compound-file format. @@ -42808,7 +42812,7 @@ Args: Returns: None - + """ pass @@ -42824,14 +42828,14 @@ Args: Returns: typing.Any - + """ pass def GetNextItem(self,pos:'typing.Any') -> 'typing.Tuple[typing.Any, PyCOleClientItem]': """ - Call this function repeatedly to access each of + Call this function repeatedly to access each of the items in your document. @@ -42842,14 +42846,14 @@ Args: Returns: typing.Tuple[typing.Any, PyCOleClientItem] - + """ pass def GetInPlaceActiveItem(self,wnd:'PyCWnd') -> 'PyCOleClientItem': """ - Obtains the OLE item that is currently activated + Obtains the OLE item that is currently activated in place in the frame window containing the view identified by obWnd. @@ -42860,7 +42864,7 @@ Args: Returns: PyCOleClientItem - + """ pass @@ -42883,7 +42887,7 @@ Args: Returns: typing.Any - + """ pass @@ -42899,7 +42903,7 @@ Args: Returns: typing.Any - + """ pass @@ -42915,7 +42919,7 @@ Args: Returns: typing.Any - + """ pass @@ -42945,14 +42949,14 @@ Args: Returns: None - + """ pass def GetDwFlags(self,) -> 'None': """ - A flags specifying DocObject printing operations. Valid only if data member + A flags specifying DocObject printing operations. Valid only if data member m_bDocObject is TRUE. @@ -42963,14 +42967,14 @@ Args: Returns: None - + """ pass def SetDwFlags(self,) -> 'None': """ - Set a flag specifying DocObject printing operations. Valid only if data member + Set a flag specifying DocObject printing operations. Valid only if data member m_bDocObject is TRUE. @@ -42981,14 +42985,14 @@ Args: Returns: None - + """ pass def GetDocOffsetPage(self,) -> 'None': """ - Get the number of pages preceding the first page of a particular DocObject + Get the number of pages preceding the first page of a particular DocObject in a combined DocObject print job. @@ -42999,14 +43003,14 @@ Args: Returns: None - + """ pass def SetDocOffsetPage(self,) -> 'None': """ - Set the number of pages preceding the first page of a particular DocObject + Set the number of pages preceding the first page of a particular DocObject in a combined DocObject print job. @@ -43017,14 +43021,14 @@ Args: Returns: None - + """ pass def SetPrintDialog(self,) -> 'None': """ - Set a pointer to the CPrintDialog object used to display the Print dialog box + Set a pointer to the CPrintDialog object used to display the Print dialog box for the print job. @@ -43035,7 +43039,7 @@ Args: Returns: None - + """ pass @@ -43051,14 +43055,14 @@ Args: Returns: None - + """ pass def SetDirect(self,) -> 'None': """ - Sets to TRUE if the Print dialog box will be bypassed for direct printing; FALSE + Sets to TRUE if the Print dialog box will be bypassed for direct printing; FALSE otherwise. @@ -43069,7 +43073,7 @@ Args: Returns: None - + """ pass @@ -43085,7 +43089,7 @@ Args: Returns: None - + """ pass @@ -43101,7 +43105,7 @@ Args: Returns: None - + """ pass @@ -43117,7 +43121,7 @@ Args: Returns: None - + """ pass @@ -43133,7 +43137,7 @@ Args: Returns: None - + """ pass @@ -43149,7 +43153,7 @@ Args: Returns: None - + """ pass @@ -43165,7 +43169,7 @@ Args: Returns: None - + """ pass @@ -43181,7 +43185,7 @@ Args: Returns: None - + """ pass @@ -43197,7 +43201,7 @@ Args: Returns: None - + """ pass @@ -43213,7 +43217,7 @@ Args: Returns: None - + """ pass @@ -43229,7 +43233,7 @@ Args: Returns: None - + """ pass @@ -43245,7 +43249,7 @@ Args: Returns: None - + """ pass @@ -43261,7 +43265,7 @@ Args: Returns: None - + """ pass @@ -43277,7 +43281,7 @@ Args: Returns: None - + """ pass @@ -43293,7 +43297,7 @@ Args: Returns: None - + """ pass @@ -43309,7 +43313,7 @@ Args: Returns: None - + """ pass @@ -43325,7 +43329,7 @@ Args: Returns: None - + """ pass @@ -43341,7 +43345,7 @@ Args: Returns: None - + """ pass @@ -43357,16 +43361,16 @@ Args: Returns: None - + """ pass def GetOffsetPage(self,) -> 'None': """ - Get the number of pages preceding the first page of a DocObject item being + Get the number of pages preceding the first page of a DocObject item being -printed in a combined DocObject print job. This currently does NOT work, as, if I include the symbol +printed in a combined DocObject print job. This currently does NOT work, as, if I include the symbol pInfo->GetOffsetPage(), the link fails to find its definition. Allways returns 0. @@ -43377,7 +43381,7 @@ Args: Returns: None - + """ pass @@ -43393,7 +43397,7 @@ Args: Returns: None - + """ pass @@ -43409,14 +43413,14 @@ Args: Returns: None - + """ pass def SetHDC(self,hdc:'typing.Any') -> 'None': """ - Sets the printer DC compatible with the users choices, call after the print dialog + Sets the printer DC compatible with the users choices, call after the print dialog DoModal finishes. @@ -43427,14 +43431,14 @@ Args: Returns: None - + """ pass def CreatePrinterDC(self,) -> 'None': """ - Handle to the newly created printer device context, call only after DoModal + Handle to the newly created printer device context, call only after DoModal finishes. @@ -43445,7 +43449,7 @@ Args: Returns: None - + """ pass @@ -43461,7 +43465,7 @@ Args: Returns: None - + """ pass @@ -43477,26 +43481,26 @@ Args: Returns: None - + """ pass def GetDefaults(self,) -> 'None': """ - Nonzero if the function was successful; otherwise 0. Call this function to + Nonzero if the function was successful; otherwise 0. Call this function to -retrieve the device defaults of the default printer without displaying a dialog box. The retrieved values are placed +retrieve the device defaults of the default printer without displaying a dialog box. The retrieved values are placed -in the m_pd structure. In some cases, a call to this function will call the constructor for CPrintDialog with +in the m_pd structure. In some cases, a call to this function will call the constructor for CPrintDialog with -bPrintSetupOnly set to FALSE. In these cases, a printer DC and hDevNames and hDevMode (two handles located in the +bPrintSetupOnly set to FALSE. In these cases, a printer DC and hDevNames and hDevMode (two handles located in the -m_pd data member) are automatically allocated. If the constructor for CPrintDialog was called with bPrintSetupOnly +m_pd data member) are automatically allocated. If the constructor for CPrintDialog was called with bPrintSetupOnly -set to FALSE, this function will not only return hDevNames and hDevMode (located in m_pd.hDevNames and m_pd.hDevMode) +set to FALSE, this function will not only return hDevNames and hDevMode (located in m_pd.hDevNames and m_pd.hDevMode) -to the caller, but will also return a printer DC in m_pd.hDC. It is the responsibility of the caller to delete the +to the caller, but will also return a printer DC in m_pd.hDC. It is the responsibility of the caller to delete the printer DC and call the WindowsGlobalFree function on the handles when you are finished with the CPrintDialog object. @@ -43507,14 +43511,14 @@ Args: Returns: None - + """ pass def FreeDefaults(self,) -> 'None': """ - After a call to GetDefaults, and you are through with the CPrintDialog object, + After a call to GetDefaults, and you are through with the CPrintDialog object, this call deletes the printer DC and calls GlobalFree function on the handles. @@ -43525,7 +43529,7 @@ Args: Returns: None - + """ pass @@ -43541,14 +43545,14 @@ Args: Returns: None - + """ pass def GetDriverName(self,) -> 'None': """ - The name of the currently selected printer device driver, call only after + The name of the currently selected printer device driver, call only after DoModal finishes. @@ -43559,7 +43563,7 @@ Args: Returns: None - + """ pass @@ -43575,7 +43579,7 @@ Args: Returns: None - + """ pass @@ -43591,14 +43595,14 @@ Args: Returns: None - + """ pass def GetPortName(self,) -> 'None': """ - The name of the currently selected printer port, call only after DoModal + The name of the currently selected printer port, call only after DoModal finishes. @@ -43609,18 +43613,18 @@ Args: Returns: None - + """ pass def GetPrinterDC(self,) -> 'None': """ - A handle to the printer device context if successful; otherwise NULL. If the + A handle to the printer device context if successful; otherwise NULL. If the -bPrintSetupOnly parameter of the CPrintDialog constructor was FALSE (indicating that the Print dialog box is +bPrintSetupOnly parameter of the CPrintDialog constructor was FALSE (indicating that the Print dialog box is -displayed), then GetPrinterDC returns a handle to the printer device context. You must call the WindowsDeleteDC +displayed), then GetPrinterDC returns a handle to the printer device context. You must call the WindowsDeleteDC function to delete the device context when you are done using it. @@ -43631,14 +43635,14 @@ Args: Returns: None - + """ pass def PrintAll(self,) -> 'None': """ - Nonzero if all pages in the document are to be printed; otherwise 0, call only after + Nonzero if all pages in the document are to be printed; otherwise 0, call only after DoModal finishes. @@ -43649,14 +43653,14 @@ Args: Returns: None - + """ pass def PrintCollate(self,) -> 'None': """ - Nonzero if the user selects the collate check box in the dialog box; otherwise + Nonzero if the user selects the collate check box in the dialog box; otherwise 0, call only after DoModal finishes. @@ -43667,14 +43671,14 @@ Args: Returns: None - + """ pass def PrintRange(self,) -> 'None': """ - Nonzero if only a range of pages in the document are to be printed; otherwise 0, + Nonzero if only a range of pages in the document are to be printed; otherwise 0, call only after DoModal finishes. @@ -43685,14 +43689,14 @@ Args: Returns: None - + """ pass def PrintSelection(self,) -> 'None': """ - Nonzero if only the selected items are to be printed; otherwise 0., call only + Nonzero if only the selected items are to be printed; otherwise 0., call only after DoModal finishes @@ -43703,16 +43707,16 @@ Args: Returns: None - + """ pass def GetHDC(self,) -> 'None': """ - Identifies a device context or an information context, depending on whether the Flags + Identifies a device context or an information context, depending on whether the Flags -member specifies the PD_RETURNDC or PC_RETURNIC flag. If neither flag is specified, the value of this member is +member specifies the PD_RETURNDC or PC_RETURNIC flag. If neither flag is specified, the value of this member is undefined. If both flags are specified, PD_RETURNDC has priority. @@ -43723,24 +43727,24 @@ Args: Returns: None - + """ pass def GetFlags(self,) -> 'None': """ - A set of bit flags that you can use to initialize the Print common dialog box. When + A set of bit flags that you can use to initialize the Print common dialog box. When -the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the -following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, -PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, -PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, -PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, PD_USEDEVMODECOPIESANDCOLLATE. @@ -43751,24 +43755,24 @@ Args: Returns: None - + """ pass def SetFlags(self,) -> 'None': """ - A set of bit flags that you can use to initialize the Print common dialog box. When + A set of bit flags that you can use to initialize the Print common dialog box. When -the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the -following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, -PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, -PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, -PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, PD_USEDEVMODECOPIESANDCOLLATE. @@ -43779,7 +43783,7 @@ Args: Returns: None - + """ pass @@ -43795,7 +43799,7 @@ Args: Returns: None - + """ pass @@ -43811,16 +43815,16 @@ Args: Returns: None - + """ pass def GetPRINTDLGMinPage(self,) -> 'None': """ - Get the minimum value for the page range specified in the From and To page + Get the minimum value for the page range specified in the From and To page -edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are disabled. @@ -43831,16 +43835,16 @@ Args: Returns: None - + """ pass def SetPRINTDLGMinPage(self,) -> 'None': """ - Set the minimum value for the page range specified in the From and To page + Set the minimum value for the page range specified in the From and To page -edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are disabled. @@ -43851,24 +43855,24 @@ Args: Returns: None - + """ pass def GetPRINTDLGCopies(self,) -> 'None': """ - Get the initial number of copies for the Copies edit control if hDevMode is + Get the initial number of copies for the Copies edit control if hDevMode is -NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, -nCopies contains the actual number of copies to print. This value depends on whether the application or the printer +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer -driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags -member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the -flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. @@ -43879,24 +43883,24 @@ Args: Returns: None - + """ pass def SetPRINTDLGCopies(self,) -> 'None': """ - Set the initial number of copies for the Copies edit control if hDevMode is + Set the initial number of copies for the Copies edit control if hDevMode is -NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, -nCopies contains the actual number of copies to print. This value depends on whether the application or the printer +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer -driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags -member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the -flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. @@ -43907,7 +43911,7 @@ Args: Returns: None - + """ pass @@ -43933,7 +43937,7 @@ Args: Returns: None - + """ pass @@ -43950,7 +43954,7 @@ Args: Returns: None - + """ pass @@ -43966,14 +43970,14 @@ Args: Returns: typing.Any - + """ pass def OffsetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': """ - Advances the progress bar control's current position by the increment + Advances the progress bar control's current position by the increment specified @@ -43984,7 +43988,7 @@ Args: Returns: typing.Any - + """ pass @@ -44000,14 +44004,14 @@ Args: Returns: typing.Any - + """ pass def StepIt(self,) -> 'typing.Any': """ - Advances the current position for a progress bar control by the step increment. + Advances the current position for a progress bar control by the step increment. Returns previous position. @@ -44018,7 +44022,7 @@ Args: Returns: typing.Any - + """ pass @@ -44041,7 +44045,7 @@ Args: Returns: None - + """ pass @@ -44057,7 +44061,7 @@ Args: Returns: None - + """ pass @@ -44073,7 +44077,7 @@ Args: Returns: None - + """ pass @@ -44089,7 +44093,7 @@ Args: Returns: None - + """ pass @@ -44105,7 +44109,7 @@ Args: Returns: None - + """ pass @@ -44121,7 +44125,7 @@ Args: Returns: None - + """ pass @@ -44137,7 +44141,7 @@ Args: Returns: None - + """ pass @@ -44153,7 +44157,7 @@ Args: Returns: None - + """ pass @@ -44169,7 +44173,7 @@ Args: Returns: None - + """ pass @@ -44185,11 +44189,11 @@ Args: Returns: typing.Any:PyCPropertyPage.OnSetActive virtual method -Return ValueThe result is true if the page should be made active. +Return ValueThe result is true if the page should be made active. Typically this result should be passed to the original OnSetActive handler. - + """ pass @@ -44205,11 +44209,11 @@ Args: Returns: typing.Any:PyCPropertyPage.OnKillActive virtual method -Return ValueThe result is true if the page should be deselected. +Return ValueThe result is true if the page should be deselected. Typically this result should be passed to the original OnSetActive handler. - + """ pass @@ -44225,7 +44229,7 @@ Args: Returns: None - + """ pass @@ -44242,7 +44246,7 @@ Args: Returns: None - + """ pass @@ -44265,7 +44269,7 @@ Args: Returns: None - + """ pass @@ -44283,7 +44287,7 @@ Args: Returns: None - + """ pass @@ -44299,7 +44303,7 @@ Args: Returns: typing.Any - + """ pass @@ -44315,7 +44319,7 @@ Args: Returns: PyCPropertyPage - + """ pass @@ -44331,7 +44335,7 @@ Args: Returns: None - + """ pass @@ -44347,7 +44351,7 @@ Args: Returns: typing.Any - + """ pass @@ -44363,7 +44367,7 @@ Args: Returns: PyCPropertyPage - + """ pass @@ -44379,7 +44383,7 @@ Args: Returns: PyCPropertyPage - + """ pass @@ -44395,7 +44399,7 @@ Args: Returns: typing.Any - + """ pass @@ -44411,7 +44415,7 @@ Args: Returns: typing.Any - + """ pass @@ -44427,7 +44431,7 @@ Args: Returns: PyCTabCtrl - + """ pass @@ -44443,7 +44447,7 @@ Args: Returns: typing.Any - + """ pass @@ -44459,7 +44463,7 @@ Args: Returns: None - + """ pass @@ -44476,7 +44480,7 @@ Args: Returns: None - + """ pass @@ -44492,7 +44496,7 @@ Args: Returns: None - + """ pass @@ -44508,7 +44512,7 @@ Args: Returns: None - + """ pass @@ -44524,7 +44528,7 @@ Args: Returns: None - + """ pass @@ -44540,7 +44544,7 @@ Args: Returns: None - + """ pass @@ -44556,7 +44560,7 @@ Args: Returns: None - + """ pass @@ -44573,7 +44577,7 @@ Args: Returns: None - + """ pass @@ -44610,7 +44614,7 @@ Args: Returns: typing.Any - + """ pass @@ -44626,7 +44630,7 @@ Args: Returns: None - + """ pass @@ -44645,7 +44649,7 @@ Args: Returns: None - + """ pass @@ -44661,7 +44665,7 @@ Args: Returns: None - + """ pass @@ -44677,14 +44681,14 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass def GetCharPos(self,charPos:'typing.Any') -> 'typing.Any': """ - Returns the location of the top-left corner of the character specified + Returns the location of the top-left corner of the character specified by charPos. @@ -44697,7 +44701,7 @@ Returns: typing.Any:The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple - + """ pass @@ -44716,7 +44720,7 @@ Returns: Return ValueThe return value is a win32ui::CHARFORMAT tuple - + """ pass @@ -44732,7 +44736,7 @@ Args: Returns: typing.Any - + """ pass @@ -44748,7 +44752,7 @@ Args: Returns: typing.Any - + """ pass @@ -44766,7 +44770,7 @@ Returns: typing.Any:CRichEditCtrl::GetFirstVisibleLine Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. - + """ pass @@ -44785,7 +44789,7 @@ Returns: Return ValueThe return value is a win32ui::PARAFORMAT tuple - + """ pass @@ -44801,11 +44805,11 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::GetSel -Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the end of the current selection) - + """ pass @@ -44821,7 +44825,7 @@ Args: Returns: str - + """ pass @@ -44837,7 +44841,7 @@ Args: Returns: typing.Any - + """ pass @@ -44853,7 +44857,7 @@ Args: Returns: typing.Any - + """ pass @@ -44869,7 +44873,7 @@ Args: Returns: typing.Any - + """ pass @@ -44887,7 +44891,7 @@ Returns: typing.Any:CRichEditCtrl::GetLineCount Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. - + """ pass @@ -44903,7 +44907,7 @@ Args: Returns: None - + """ pass @@ -44919,13 +44923,13 @@ Args: Returns: typing.Any:CRichEditCtrl::LineFromChar -Return ValueThe zero-based line number of the line containing the character index specified by charNo. +Return ValueThe zero-based line number of the line containing the character index specified by charNo. -If charNo is -1, the number of the line that contains the first character of the selection is returned. +If charNo is -1, the number of the line that contains the first character of the selection is returned. If there is no selection, the current line number is returned. - + """ pass @@ -44941,13 +44945,13 @@ Args: Returns: typing.Any:CRichEditCtrl::LineIndex -Return ValueThe character index of the line specified in lineNo, or -1 if +Return ValueThe character index of the line specified in lineNo, or -1 if -the specified line number is greater then the number of lines in +the specified line number is greater then the number of lines in the edit control. - + """ pass @@ -44964,7 +44968,7 @@ Args: Returns: typing.Any - + """ pass @@ -44980,7 +44984,7 @@ Args: Returns: None - + """ pass @@ -44996,7 +45000,7 @@ Args: Returns: None - + """ pass @@ -45015,7 +45019,7 @@ Returns: typing.Any:CRichEditCtrl::SetEventMask Return ValueThe return value is the previous background color. - + """ pass @@ -45031,7 +45035,7 @@ Args: Returns: None - + """ pass @@ -45049,7 +45053,7 @@ Returns: typing.Any:CRichEditCtrl::SetEventMask Return ValueThe return value is the previous event mask. - + """ pass @@ -45065,7 +45069,7 @@ Args: Returns: None - + """ pass @@ -45081,7 +45085,7 @@ Args: Returns: None - + """ pass @@ -45098,7 +45102,7 @@ Args: Returns: None - + """ pass @@ -45114,13 +45118,13 @@ Args: Returns: typing.Any:CRichEditCtrl::SetParaFormat -Return ValueThis function seems to return occasionally return failure, but +Return ValueThis function seems to return occasionally return failure, but -the formatting is applied. Therefore an exception is not raised on failure, +the formatting is applied. Therefore an exception is not raised on failure, but the BOOL return code is passed back. - + """ pass @@ -45136,7 +45140,7 @@ Args: Returns: None - + """ pass @@ -45154,7 +45158,7 @@ Args: Returns: None - + """ pass @@ -45170,7 +45174,7 @@ Args: Returns: None - + """ pass @@ -45187,7 +45191,7 @@ Args: Returns: None - + """ pass @@ -45206,7 +45210,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::StreamIn Return ValueThe return value is a tuple of (no bytes written, error code) - + """ pass @@ -45225,7 +45229,7 @@ Returns: typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::StreamOut Return ValueThe return value is a tuple of (no bytes written, error code) - + """ pass @@ -45239,9 +45243,9 @@ class PyCRichEditDoc(object): def OnCloseDocument(self,) -> 'None': """ - Call the MFC OnCloseDocument handler. + Call the MFC OnCloseDocument handler. -This routine is provided so a document object which overrides this method +This routine is provided so a document object which overrides this method can call the original MFC version if required. @@ -45252,7 +45256,7 @@ Args: Returns: None - + """ pass @@ -45275,7 +45279,7 @@ Args: Returns: PyCRichEditDoc - + """ pass @@ -45298,7 +45302,7 @@ Args: Returns: PyCRichEditCtrl - + """ pass @@ -45314,7 +45318,7 @@ Args: Returns: typing.Any - + """ pass @@ -45330,7 +45334,7 @@ Args: Returns: typing.Any - + """ pass @@ -45346,7 +45350,7 @@ Args: Returns: typing.Any - + """ pass @@ -45369,7 +45373,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -45385,7 +45389,7 @@ Args: Returns: PyCDC - + """ pass @@ -45401,7 +45405,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -45417,7 +45421,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -45434,7 +45438,7 @@ Args: Returns: None - + """ pass @@ -45450,7 +45454,7 @@ Args: Returns: typing.Any - + """ pass @@ -45466,7 +45470,7 @@ Args: Returns: None - + """ pass @@ -45482,7 +45486,7 @@ Args: Returns: None - + """ pass @@ -45501,7 +45505,7 @@ Args: Returns: None - + """ pass @@ -45517,7 +45521,7 @@ Args: Returns: None - + """ pass @@ -45543,7 +45547,7 @@ Args: Returns: None - + """ pass @@ -45559,7 +45563,7 @@ Args: Returns: typing.Any - + """ pass @@ -45575,7 +45579,7 @@ Args: Returns: typing.Any - + """ pass @@ -45591,7 +45595,7 @@ Args: Returns: typing.Any - + """ pass @@ -45607,7 +45611,7 @@ Args: Returns: typing.Any - + """ pass @@ -45623,7 +45627,7 @@ Args: Returns: typing.Any - + """ pass @@ -45639,7 +45643,7 @@ Args: Returns: typing.Any - + """ pass @@ -45655,7 +45659,7 @@ Args: Returns: typing.Any - + """ pass @@ -45673,7 +45677,7 @@ Args: Returns: typing.Any - + """ pass @@ -45689,7 +45693,7 @@ Args: Returns: typing.Any - + """ pass @@ -45706,7 +45710,7 @@ Args: Returns: typing.Any - + """ pass @@ -45722,7 +45726,7 @@ Args: Returns: typing.Any - + """ pass @@ -45738,7 +45742,7 @@ Args: Returns: typing.Any - + """ pass @@ -45754,7 +45758,7 @@ Args: Returns: typing.Any - + """ pass @@ -45770,7 +45774,7 @@ Args: Returns: typing.Any - + """ pass @@ -45786,7 +45790,7 @@ Args: Returns: typing.Any - + """ pass @@ -45802,7 +45806,7 @@ Args: Returns: typing.Any - + """ pass @@ -45818,7 +45822,7 @@ Args: Returns: typing.Any - + """ pass @@ -45834,7 +45838,7 @@ Args: Returns: typing.Any - + """ pass @@ -45850,7 +45854,7 @@ Args: Returns: typing.Any - + """ pass @@ -45866,7 +45870,7 @@ Args: Returns: typing.Any - + """ pass @@ -45882,7 +45886,7 @@ Args: Returns: typing.Any - + """ pass @@ -45898,7 +45902,7 @@ Args: Returns: typing.Any - + """ pass @@ -45914,7 +45918,7 @@ Args: Returns: typing.Any - + """ pass @@ -45937,7 +45941,7 @@ Args: Returns: typing.Any - + """ pass @@ -45954,7 +45958,7 @@ Returns: typing.Any:The new position.Return ValueThe result is the previous position. - + """ pass @@ -45970,7 +45974,7 @@ Args: Returns: typing.Any - + """ pass @@ -45986,7 +45990,7 @@ Args: Returns: typing.Any - + """ pass @@ -46010,7 +46014,7 @@ Args: Returns: PyCWnd - + """ pass @@ -46029,7 +46033,7 @@ Args: Returns: None - + """ pass @@ -46049,7 +46053,7 @@ Args: Returns: None - + """ pass @@ -46067,7 +46071,7 @@ Args: Returns: None - + """ pass @@ -46085,7 +46089,7 @@ Args: Returns: None - + """ pass @@ -46102,7 +46106,7 @@ Args: Returns: None - + """ pass @@ -46118,7 +46122,7 @@ Args: Returns: typing.Any - + """ pass @@ -46132,7 +46136,7 @@ class PyCStatusBar(object): def GetPaneInfo(self,index:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': """ - Returns the id, style, and width of the indicator pane at the + Returns the id, style, and width of the indicator pane at the location specified by index. @@ -46143,7 +46147,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass @@ -46159,7 +46163,7 @@ Args: Returns: PyCStatusBarCtrl - + """ pass @@ -46175,7 +46179,7 @@ Args: Returns: None - + """ pass @@ -46194,7 +46198,7 @@ Args: Returns: None - + """ pass @@ -46220,14 +46224,14 @@ Args: Returns: None - + """ pass def GetBorders(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': """ - Retrieve the status bar control's current widths of + Retrieve the status bar control's current widths of the horizontal and vertical borders and of the space between rectangles. @@ -46238,7 +46242,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any] - + """ pass @@ -46254,14 +46258,14 @@ Args: Returns: typing.Any - + """ pass def GetRect(self,nPane:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Retrieves the bounding rectangle of a part in a status + Retrieves the bounding rectangle of a part in a status bar control. @@ -46272,7 +46276,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -46288,14 +46292,14 @@ Args: Returns: typing.Any - + """ pass def GetTextAttr(self,nPane:'typing.Any') -> 'typing.Any': """ - Retrieve the attributes of the text in the given part of a status bar + Retrieve the attributes of the text in the given part of a status bar control. @@ -46306,7 +46310,7 @@ Args: Returns: typing.Any - + """ pass @@ -46322,7 +46326,7 @@ Args: Returns: typing.Any - + """ pass @@ -46338,14 +46342,14 @@ Args: Returns: None - + """ pass def SetParts(self,coord:'typing.Any') -> 'None': """ - Sets the number of parts in a status bar control and the coordinate of the right + Sets the number of parts in a status bar control and the coordinate of the right edge of each part. @@ -46356,7 +46360,7 @@ Args: Returns: None - + """ pass @@ -46374,14 +46378,14 @@ Args: Returns: None - + """ pass def SetTipText(self,nPane:'typing.Any',text:'str') -> 'None': """ - Sets the tooltip text for a pane in a status bar. The status bar must have + Sets the tooltip text for a pane in a status bar. The status bar must have been created with the afxres.SBT_TOOLTIPS control style to enable ToolTips. @@ -46393,7 +46397,7 @@ Args: Returns: None - + """ pass @@ -46420,7 +46424,7 @@ Returns: int = GetCurSel()Gets the current selection of a tab control. Return ValueThe zero-based index of the currently selected item, or -1 if no selection. - + """ pass @@ -46436,7 +46440,7 @@ Args: Returns: typing.Any - + """ pass @@ -46453,7 +46457,7 @@ Returns: typing.Any:The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. - + """ pass @@ -46476,7 +46480,7 @@ Args: Returns: None - + """ pass @@ -46492,7 +46496,7 @@ Args: Returns: str - + """ pass @@ -46508,7 +46512,7 @@ Args: Returns: None - + """ pass @@ -46527,7 +46531,7 @@ Args: Returns: None - + """ pass @@ -46543,7 +46547,7 @@ Args: Returns: PyCToolBarCtrl - + """ pass @@ -46559,7 +46563,7 @@ Args: Returns: None - + """ pass @@ -46575,7 +46579,7 @@ Args: Returns: None - + """ pass @@ -46591,7 +46595,7 @@ Args: Returns: None - + """ pass @@ -46607,7 +46611,7 @@ Args: Returns: None - + """ pass @@ -46624,7 +46628,7 @@ Args: Returns: None - + """ pass @@ -46641,7 +46645,7 @@ Args: Returns: None - + """ pass @@ -46657,7 +46661,7 @@ Args: Returns: None - + """ pass @@ -46674,7 +46678,7 @@ Args: Returns: None - + """ pass @@ -46698,7 +46702,7 @@ Args: Returns: typing.Any - + """ pass @@ -46714,7 +46718,7 @@ Args: Returns: typing.Any - + """ pass @@ -46730,7 +46734,7 @@ Args: Returns: typing.Any - + """ pass @@ -46746,7 +46750,7 @@ Args: Returns: None - + """ pass @@ -46763,14 +46767,14 @@ Args: Returns: typing.Any - + """ pass def CommandToIndex(self,nID:'typing.Any') -> 'typing.Any': """ - Retrieve the zero-based index for the button associated with the + Retrieve the zero-based index for the button associated with the specified command identifier. @@ -46781,7 +46785,7 @@ Args: Returns: typing.Any - + """ pass @@ -46800,7 +46804,7 @@ Args: Returns: None - + """ pass @@ -46816,7 +46820,7 @@ Args: Returns: None - + """ pass @@ -46832,7 +46836,7 @@ Args: Returns: None - + """ pass @@ -46849,7 +46853,7 @@ Args: Returns: None - + """ pass @@ -46865,14 +46869,14 @@ Args: Returns: typing.Any - + """ pass def GetButton(self,nID:'typing.Any') -> 'typing.Any': """ - Retrieve information about the specified button in a + Retrieve information about the specified button in a toolbar control. @@ -46883,7 +46887,7 @@ Args: Returns: typing.Any - + """ pass @@ -46899,14 +46903,14 @@ Args: Returns: typing.Any - + """ pass def GetItemRect(self,nID:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Retrieve the bounding rectangle of a button in a + Retrieve the bounding rectangle of a button in a toolbar control. @@ -46917,7 +46921,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -46933,7 +46937,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -46950,7 +46954,7 @@ Args: Returns: None - + """ pass @@ -46967,7 +46971,7 @@ Args: Returns: None - + """ pass @@ -46984,7 +46988,7 @@ Args: Returns: typing.Any - + """ pass @@ -47000,7 +47004,7 @@ Args: Returns: typing.Any - + """ pass @@ -47016,7 +47020,7 @@ Args: Returns: typing.Any - + """ pass @@ -47032,14 +47036,14 @@ Args: Returns: typing.Any - + """ pass def IsButtonIndeterminate(self,nID:'typing.Any') -> 'typing.Any': """ - Determine whether the specified button in a toolbar control is + Determine whether the specified button in a toolbar control is indeterminate. @@ -47050,7 +47054,7 @@ Args: Returns: typing.Any - + """ pass @@ -47066,7 +47070,7 @@ Args: Returns: typing.Any - + """ pass @@ -47083,7 +47087,7 @@ Args: Returns: None - + """ pass @@ -47102,7 +47106,7 @@ Args: Returns: None - + """ pass @@ -47121,14 +47125,14 @@ Args: Returns: None - + """ pass def SetCmdID(self,nIndex:'typing.Any',nID:'typing.Any') -> 'None': """ - Set the command identifier which will be sent to the owner window when the + Set the command identifier which will be sent to the owner window when the specified button is pressed. @@ -47140,14 +47144,14 @@ Args: Returns: None - + """ pass def SetRows(self,nRows:'typing.Any',bLarger:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Ask the toolbar control to resize itself to the requested + Ask the toolbar control to resize itself to the requested number of rows. @@ -47159,7 +47163,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -47183,7 +47187,7 @@ Args: Returns: None - + """ pass @@ -47201,7 +47205,7 @@ Args: Returns: None - + """ pass @@ -47220,7 +47224,7 @@ Args: Returns: None - + """ pass @@ -47236,7 +47240,7 @@ Args: Returns: typing.Any - + """ pass @@ -47262,7 +47266,7 @@ Args: Returns: None - + """ pass @@ -47278,7 +47282,7 @@ Args: Returns: typing.Any - + """ pass @@ -47294,7 +47298,7 @@ Args: Returns: typing.Any - + """ pass @@ -47310,7 +47314,7 @@ Args: Returns: None - + """ pass @@ -47326,7 +47330,7 @@ Args: Returns: PyCImageList - + """ pass @@ -47343,7 +47347,7 @@ Args: Returns: typing.Any - + """ pass @@ -47360,7 +47364,7 @@ Args: Returns: typing.Any - + """ pass @@ -47376,7 +47380,7 @@ Args: Returns: typing.Any - + """ pass @@ -47392,7 +47396,7 @@ Args: Returns: typing.Any - + """ pass @@ -47408,7 +47412,7 @@ Args: Returns: typing.Any - + """ pass @@ -47424,7 +47428,7 @@ Args: Returns: typing.Any - + """ pass @@ -47440,7 +47444,7 @@ Args: Returns: typing.Any - + """ pass @@ -47456,7 +47460,7 @@ Args: Returns: typing.Any - + """ pass @@ -47472,7 +47476,7 @@ Args: Returns: typing.Any - + """ pass @@ -47488,7 +47492,7 @@ Args: Returns: typing.Any - + """ pass @@ -47504,7 +47508,7 @@ Args: Returns: typing.Any - + """ pass @@ -47520,7 +47524,7 @@ Args: Returns: typing.Any - + """ pass @@ -47536,7 +47540,7 @@ Args: Returns: typing.Any - + """ pass @@ -47553,7 +47557,7 @@ Args: Returns: TV_ITEM - + """ pass @@ -47569,7 +47573,7 @@ Args: Returns: typing.Any - + """ pass @@ -47586,7 +47590,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -47604,7 +47608,7 @@ Args: Returns: None - + """ pass @@ -47620,7 +47624,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any] - + """ pass @@ -47638,7 +47642,7 @@ Args: Returns: None - + """ pass @@ -47655,7 +47659,7 @@ Args: Returns: typing.Any - + """ pass @@ -47671,7 +47675,7 @@ Args: Returns: typing.Any - + """ pass @@ -47687,7 +47691,7 @@ Args: Returns: typing.Any - + """ pass @@ -47704,7 +47708,7 @@ Args: Returns: typing.Any - + """ pass @@ -47721,14 +47725,14 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass def GetEditControl(self,) -> 'PyCEdit': """ - Retrieves the handle of the edit control used to edit the specified + Retrieves the handle of the edit control used to edit the specified tree view item. @@ -47739,14 +47743,14 @@ Args: Returns: PyCEdit - + """ pass def GetVisibleCount(self,) -> 'typing.Any': """ - Retrieves the number of visible tree items associated with a tree view + Retrieves the number of visible tree items associated with a tree view control. @@ -47757,7 +47761,7 @@ Args: Returns: typing.Any - + """ pass @@ -47792,7 +47796,7 @@ Args: Returns: typing.Any - + """ pass @@ -47808,7 +47812,7 @@ Args: Returns: None - + """ pass @@ -47824,7 +47828,7 @@ Args: Returns: typing.Any - + """ pass @@ -47841,7 +47845,7 @@ Args: Returns: None - + """ pass @@ -47858,7 +47862,7 @@ Args: Returns: None - + """ pass @@ -47874,7 +47878,7 @@ Args: Returns: None - + """ pass @@ -47890,7 +47894,7 @@ Args: Returns: None - + """ pass @@ -47906,7 +47910,7 @@ Args: Returns: None - + """ pass @@ -47922,7 +47926,7 @@ Args: Returns: PyCEdit - + """ pass @@ -47938,7 +47942,7 @@ Args: Returns: PyCImageList - + """ pass @@ -47954,7 +47958,7 @@ Args: Returns: None - + """ pass @@ -47970,7 +47974,7 @@ Args: Returns: typing.Any - + """ pass @@ -47985,7 +47989,7 @@ Args: Returns: - typing.Tuple[typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, hItem). + typing.Tuple[typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, hItem). flags may be a combination of the following values: @@ -48011,7 +48015,7 @@ commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a commctrl.TVHT_TOLEFTTo the left of the client area. commctrl.TVHT_TORIGHTTo the right of the client area. - + """ pass @@ -48034,7 +48038,7 @@ Args: Returns: typing.Any - + """ pass @@ -48050,7 +48054,7 @@ Args: Returns: PyCTreeCtrl - + """ pass @@ -48067,7 +48071,7 @@ Args: Returns: None - + """ pass @@ -48093,7 +48097,7 @@ Args: Returns: None - + """ pass @@ -48109,7 +48113,7 @@ Args: Returns: PyCDocument - + """ pass @@ -48127,7 +48131,7 @@ Args: Returns: typing.Any - + """ pass @@ -48143,7 +48147,7 @@ Args: Returns: None - + """ pass @@ -48161,7 +48165,7 @@ Args: Returns: typing.Any - + """ pass @@ -48177,7 +48181,7 @@ Args: Returns: typing.Any - + """ pass @@ -48193,7 +48197,7 @@ Args: Returns: None - + """ pass @@ -48209,7 +48213,7 @@ Args: Returns: typing.Any - + """ pass @@ -48225,7 +48229,7 @@ Args: Returns: None - + """ pass @@ -48241,7 +48245,7 @@ Args: Returns: None - + """ pass @@ -48264,7 +48268,7 @@ Args: Returns: None - + """ pass @@ -48280,7 +48284,7 @@ Args: Returns: PyCDocument - + """ pass @@ -48296,7 +48300,7 @@ Args: Returns: typing.List[typing.Any] - + """ pass @@ -48312,7 +48316,7 @@ Args: Returns: None - + """ pass @@ -48328,7 +48332,7 @@ Args: Returns: typing.Any - + """ pass @@ -48344,7 +48348,7 @@ Args: Returns: typing.Any - + """ pass @@ -48360,7 +48364,7 @@ Args: Returns: typing.Any - + """ pass @@ -48376,7 +48380,7 @@ Args: Returns: typing.Any - + """ pass @@ -48392,7 +48396,7 @@ Args: Returns: typing.Any - + """ pass @@ -48408,7 +48412,7 @@ Args: Returns: None - + """ pass @@ -48424,7 +48428,7 @@ Args: Returns: None - + """ pass @@ -48440,7 +48444,7 @@ Args: Returns: None - + """ pass @@ -48456,7 +48460,7 @@ Args: Returns: None - + """ pass @@ -48472,14 +48476,14 @@ Args: Returns: typing.Any - + """ pass def IsInproc(self,) -> 'typing.Any': """ - Returns a flag to indicate if the created CWinApp was in the DLL, or an external + Returns a flag to indicate if the created CWinApp was in the DLL, or an external EXE. @@ -48490,7 +48494,7 @@ Args: Returns: typing.Any - + """ pass @@ -48513,7 +48517,7 @@ Args: Returns: None - + """ pass @@ -48529,7 +48533,7 @@ Args: Returns: None - + """ pass @@ -48545,7 +48549,7 @@ Args: Returns: None - + """ pass @@ -48561,7 +48565,7 @@ Args: Returns: typing.Any - + """ pass @@ -48577,7 +48581,7 @@ Args: Returns: None - + """ pass @@ -48593,7 +48597,7 @@ Args: Returns: None - + """ pass @@ -48607,7 +48611,7 @@ class PyCWnd(object): def ActivateFrame(self,cmdShow:'typing.Any') -> 'None': """ - Searches upwards for a parent window which has + Searches upwards for a parent window which has a frame, and activates it. @@ -48618,7 +48622,7 @@ Args: Returns: None - + """ pass @@ -48634,7 +48638,7 @@ Args: Returns: None - + """ pass @@ -48655,16 +48659,16 @@ PyCDC, PAINTSTRUCT = BeginPaint()Prepares a window for painting Return ValueYou must pass the PAINTSTRUCT param to the PyCWnd::EndPaint method. - + """ pass def CalcWindowRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',nAdjustType:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Computes the size of the window rectangle based on the desired client + Computes the size of the window rectangle based on the desired client -rectangle size. The resulting size can then be used as the initial +rectangle size. The resulting size can then be used as the initial size for the window object. @@ -48676,7 +48680,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -48692,14 +48696,14 @@ Args: Returns: None - + """ pass def CheckRadioButton(self,idFirst:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any') -> 'None': """ - Selects the specified radio button, and clears + Selects the specified radio button, and clears all others in the group. @@ -48712,7 +48716,7 @@ Args: Returns: None - + """ pass @@ -48730,14 +48734,14 @@ Args: Returns: PyCWnd - + """ pass def ClientToScreen(self,point:'typing.Tuple[typing.Any, typing.Any]',rect:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': """ - Converts the client coordinates of a given point on the display + Converts the client coordinates of a given point on the display to screen coordinates. @@ -48749,7 +48753,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -48771,7 +48775,7 @@ Args: Returns: None - + """ pass @@ -48795,7 +48799,7 @@ Args: Returns: None - + """ pass @@ -48813,7 +48817,7 @@ Args: Returns: typing.Any - + """ pass @@ -48829,7 +48833,7 @@ Args: Returns: None - + """ pass @@ -48848,7 +48852,7 @@ Args: Returns: None - + """ pass @@ -48864,7 +48868,7 @@ Args: Returns: None - + """ pass @@ -48880,7 +48884,7 @@ Args: Returns: str - + """ pass @@ -48896,7 +48900,7 @@ Args: Returns: str - + """ pass @@ -48912,7 +48916,7 @@ Args: Returns: None - + """ pass @@ -48928,7 +48932,7 @@ Args: Returns: None - + """ pass @@ -48946,7 +48950,7 @@ Returns: typing.Any:CWnd::EnableWindow Return ValueReturns the state before the EnableWindow member function was called - + """ pass @@ -48962,7 +48966,7 @@ Args: Returns: None - + """ pass @@ -48978,7 +48982,7 @@ Args: Returns: None - + """ pass @@ -48995,14 +48999,14 @@ Args: Returns: typing.Any - + """ pass def GetClientRect(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Returns the client coordinates of the window. left and top + Returns the client coordinates of the window. left and top will be zero. @@ -49013,7 +49017,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -49032,7 +49036,7 @@ Returns: PyCDC = GetDC()Gets the windows current DC object. Return ValueThe result is a PyCDC, or a win32ui.error exception is raised. - + """ pass @@ -49048,7 +49052,7 @@ Args: Returns: PyCDC - + """ pass @@ -49064,7 +49068,7 @@ Args: Returns: typing.Any - + """ pass @@ -49082,7 +49086,7 @@ Returns: PyCWnd:CWnd::GetDlgItem Return ValueThe result is a PyCWnd (or derived) object, or a win32ui.error exception is raised. - + """ pass @@ -49101,7 +49105,7 @@ Returns: typing.Any:CWnd::GetDlgItemInt Return ValueIf the value can not be converted, a ValueError is raised. - + """ pass @@ -49117,7 +49121,7 @@ Args: Returns: str - + """ pass @@ -49135,7 +49139,7 @@ Returns: PyCWnd:CWnd::GetLastActivePopup Return ValueThe result is a PyCWnd object, or None if no Window can be found. - + """ pass @@ -49155,7 +49159,7 @@ Return ValueThe result is a PyMenu object, or an exception is thrown. - + """ pass @@ -49173,7 +49177,7 @@ Returns: PyCWnd:CWnd::GetParent Return ValueThe result is a PyCWnd object, or None if no Window can be found. - + """ pass @@ -49191,7 +49195,7 @@ Returns: PyCWnd:CWnd::GetParentFrame Return ValueThe result is a PyCWnd object, or None if no Window can be found. - + """ pass @@ -49207,7 +49211,7 @@ Args: Returns: typing.Any - + """ pass @@ -49224,7 +49228,7 @@ Args: Returns: typing.Any - + """ pass @@ -49240,7 +49244,7 @@ Args: Returns: typing.Any - + """ pass @@ -49256,7 +49260,7 @@ Args: Returns: typing.Any - + """ pass @@ -49272,7 +49276,7 @@ Args: Returns: typing.Any - + """ pass @@ -49288,7 +49292,7 @@ Args: Returns: PyCMenu - + """ pass @@ -49306,7 +49310,7 @@ Returns: PyCWnd:CWnd::GetTopLevelFrame Return ValueThe result is a PyCWnd object, or None if no Window can be found. - + """ pass @@ -49324,7 +49328,7 @@ Returns: PyCWnd:CWnd::GetTopLevelOwner Return ValueThe result is a PyCWnd object, or None if no Window can be found. - + """ pass @@ -49342,7 +49346,7 @@ Returns: PyCWnd:CWnd::GetTopLevelParent Return ValueThe result is a PyCWnd object, or None if no Window can be found. - + """ pass @@ -49360,7 +49364,7 @@ Returns: PyCWnd:CWnd::GetTopWindow Return ValueIf no child windows exist, the value is None. - + """ pass @@ -49378,7 +49382,7 @@ Returns: PyCWnd:CWnd::GetWindow Return ValueThe result is a PyCWnd or None if no Window can be found. - + """ pass @@ -49394,7 +49398,7 @@ Args: Returns: PyCDC - + """ pass @@ -49410,7 +49414,7 @@ Args: Returns: typing.Any:CWnd::GetWindowPlacement -Return ValueThe result is a tuple of +Return ValueThe result is a tuple of (flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) @@ -49429,14 +49433,14 @@ minposSpecifies the coordinates of the window's upper-left corner when the windo maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. normalposSpecifies the window's coordinates when the window is in the restored position. - + """ pass def GetWindowRect(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': """ - Returns the screen coordinates of the windows upper left + Returns the screen coordinates of the windows upper left corner @@ -49447,7 +49451,7 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - + """ pass @@ -49463,7 +49467,7 @@ Args: Returns: str - + """ pass @@ -49479,7 +49483,7 @@ Args: Returns: None - + """ pass @@ -49495,7 +49499,7 @@ Args: Returns: None - + """ pass @@ -49511,26 +49515,26 @@ Args: Returns: - typing.Any:The ID for the keystroke to be handled. + typing.Any:The ID for the keystroke to be handled. This may be an ascii code, or a virtual key code.Comments -The handler object passed will be called as the application receives WM_CHAR message for the specified +The handler object passed will be called as the application receives WM_CHAR message for the specified -character code. The handler will be called with 2 arguments +character code. The handler will be called with 2 arguments -The handler object (as per all hook functions) +The handler object (as per all hook functions) -The keystroke being handled. +The keystroke being handled. -If the handler returns TRUE, then the keystroke will be passed on to the +If the handler returns TRUE, then the keystroke will be passed on to the -default handler, otherwise the keystroke will be consumed. +default handler, otherwise the keystroke will be consumed. Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place. Return ValueThe return value is the previous handler, or None. - + """ pass @@ -49548,15 +49552,15 @@ Returns: typing.Any:The ID of the message to be handled.Comments -The handler object passed will be called as the application receives messages with the specified ID. +The handler object passed will be called as the application receives messages with the specified ID. -Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. +Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. -The handler will be called with 2 arguments +The handler will be called with 2 arguments -The handler object (as per all hook functions). +The handler object (as per all hook functions). -A tuple representing the message. +A tuple representing the message. The message tuple is in the following format: Items[0] int : hwnd @@ -49573,7 +49577,7 @@ The time the message was posted. The point where the mouse was when the message was posted. Return ValueThe return value is the previous handler, or None. - + """ pass @@ -49590,7 +49594,7 @@ Args: Returns: None - + """ pass @@ -49607,7 +49611,7 @@ Args: Returns: None - + """ pass @@ -49623,7 +49627,7 @@ Args: Returns: typing.Any - + """ pass @@ -49639,7 +49643,7 @@ Args: Returns: typing.Any - + """ pass @@ -49655,7 +49659,7 @@ Args: Returns: typing.Any - + """ pass @@ -49671,7 +49675,7 @@ Args: Returns: typing.Any - + """ pass @@ -49687,7 +49691,7 @@ Args: Returns: typing.Any - + """ pass @@ -49703,7 +49707,7 @@ Args: Returns: typing.Any - + """ pass @@ -49719,7 +49723,7 @@ Args: Returns: typing.Any - + """ pass @@ -49735,14 +49739,14 @@ Args: Returns: None - + """ pass def MapWindowPoints(self,wnd:'PyCWnd',points:'typing.List[typing.Tuple[typing.Any, typing.Any]]') -> 'None': """ - Converts (maps) a set of points from the coordinate space of a window to the + Converts (maps) a set of points from the coordinate space of a window to the coordinate space of another window. @@ -49753,11 +49757,11 @@ Args: Returns: - None:The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another + None:The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another window. - + """ pass @@ -49773,7 +49777,7 @@ Args: Returns: typing.Any - + """ pass @@ -49793,7 +49797,7 @@ Returns: None:CWnd::MessageBox Return ValueAn integer identifying the button pressed to dismiss the dialog. - + """ pass @@ -49811,11 +49815,11 @@ Args: Returns: typing.Any:CWnd::ModifyStyle -Return ValueThe result is true if the style was changed, or false if the style +Return ValueThe result is true if the style was changed, or false if the style is already the same as requested and no change was made. - + """ pass @@ -49833,11 +49837,11 @@ Args: Returns: typing.Any:CWnd::ModifyStyleEx -Return ValueThe result is true if the style was changed, or false if the style +Return ValueThe result is true if the style was changed, or false if the style is already the same as requested and no change was made. - + """ pass @@ -49854,7 +49858,7 @@ Args: Returns: None - + """ pass @@ -49870,7 +49874,7 @@ Args: Returns: typing.Any - + """ pass @@ -49888,7 +49892,7 @@ Args: Returns: typing.Any - + """ pass @@ -49904,7 +49908,7 @@ Args: Returns: typing.Any - + """ pass @@ -49920,7 +49924,7 @@ Args: Returns: typing.Any - + """ pass @@ -49936,7 +49940,7 @@ Args: Returns: typing.Any - + """ pass @@ -49952,7 +49956,7 @@ Args: Returns: typing.Any - + """ pass @@ -49968,7 +49972,7 @@ Args: Returns: typing.Any - + """ pass @@ -49986,7 +49990,7 @@ Args: Returns: typing.Any - + """ pass @@ -50004,7 +50008,7 @@ Args: Returns: typing.Any - + """ pass @@ -50022,13 +50026,13 @@ Args: Returns: typing.Tuple[typing.Any, typing.Any]:CWnd::OnWndMsg -Return ValueThe return value is a tuple of (int, int), being the +Return ValueThe return value is a tuple of (int, int), being the -return value from the MFC function call, and the value of the +return value from the MFC function call, and the value of the lResult param. Please see the MFC documentation for more details. - + """ pass @@ -50044,7 +50048,7 @@ Args: Returns: typing.Any - + """ pass @@ -50061,7 +50065,7 @@ Args: Returns: None - + """ pass @@ -50079,7 +50083,7 @@ Args: Returns: None - + """ pass @@ -50095,7 +50099,7 @@ Args: Returns: None - + """ pass @@ -50111,16 +50115,16 @@ Args: Returns: None - + """ pass def RepositionBars(self,idFirst:'typing.Any',idLast:'typing.Any',idLeftOver:'typing.Any') -> 'None': """ - Repositions the windows control bars.( UINT nIDFirst, UINT nIDLast, UINT + Repositions the windows control bars.( UINT nIDFirst, UINT nIDLast, UINT -nIDLeftOver, UINT nFlag = CWnd::reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = +nIDLeftOver, UINT nFlag = CWnd::reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = TRUE ); @@ -50133,7 +50137,7 @@ Args: Returns: None - + """ pass @@ -50149,7 +50153,7 @@ Args: Returns: typing.Any - + """ pass @@ -50167,7 +50171,7 @@ Args: Returns: None - + """ pass @@ -50186,7 +50190,7 @@ Args: Returns: None - + """ pass @@ -50206,7 +50210,7 @@ Args: Returns: None - + """ pass @@ -50225,7 +50229,7 @@ Returns: PyCWnd = SetActiveWindow()Sets the window active. Returns the previously active window, or None. Return ValueThe result is the previous window with focus, or None. - + """ pass @@ -50241,7 +50245,7 @@ Args: Returns: None - + """ pass @@ -50259,14 +50263,14 @@ Args: Returns: None - + """ pass def ScreenToClient(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]',pnt:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': """ - Converts the screen coordinates of a given point + Converts the screen coordinates of a given point or rectangle on the display to client coordinates. @@ -50280,14 +50284,14 @@ Returns: typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]:CWnd::ScreenToClient Return ValueThe result is the same size as the input argument. - + """ pass def SetCapture(self,) -> 'None': """ - Causes all subsequent mouse input to be sent to the window object regardless of the + Causes all subsequent mouse input to be sent to the window object regardless of the position of the cursor. @@ -50298,7 +50302,7 @@ Args: Returns: None - + """ pass @@ -50315,7 +50319,7 @@ Args: Returns: None - + """ pass @@ -50331,7 +50335,7 @@ Args: Returns: None - + """ pass @@ -50348,7 +50352,7 @@ Args: Returns: None - + """ pass @@ -50364,7 +50368,7 @@ Args: Returns: typing.Any - + """ pass @@ -50380,7 +50384,7 @@ Args: Returns: None - + """ pass @@ -50396,7 +50400,7 @@ Args: Returns: None - + """ pass @@ -50414,7 +50418,7 @@ Args: Returns: typing.Any - + """ pass @@ -50432,7 +50436,7 @@ Args: Returns: typing.Any - + """ pass @@ -50449,7 +50453,7 @@ Args: Returns: typing.Any - + """ pass @@ -50465,7 +50469,7 @@ Args: Returns: None - + """ pass @@ -50481,7 +50485,7 @@ Args: Returns: None - + """ pass @@ -50497,14 +50501,14 @@ Args: Returns: None - + """ pass def ShowScrollBar(self,nBar:'typing.Any',bShow:'typing.Any'=1) -> 'None': """ - Shows or hides a scroll bar. + Shows or hides a scroll bar. An application should not call ShowScrollBar to hide a scroll bar while processing a scroll-bar notification message. @@ -50516,7 +50520,7 @@ Args: Returns: None - + """ pass @@ -50534,7 +50538,7 @@ Returns: typing.Any:CWnd::ShowWindow Return ValueReturns TRUE is the window was previously visible. - + """ pass @@ -50550,16 +50554,16 @@ Args: Returns: None - + """ pass def UpdateData(self,bSaveAndValidate:'typing.Any'=1) -> 'typing.Any': """ - Initialises data in a dialog box, or to retrieves and validates dialog data. + Initialises data in a dialog box, or to retrieves and validates dialog data. -Returns nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of +Returns nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of nonzero means that the data is successfully validated. @@ -50570,7 +50574,7 @@ Args: Returns: typing.Any - + """ pass @@ -50587,14 +50591,14 @@ Args: Returns: typing.Any - + """ pass def UpdateWindow(self,) -> 'None': """ - Updates a window. This forces a paint message to be sent to the window, if any part + Updates a window. This forces a paint message to be sent to the window, if any part of the window is marked as invalid. @@ -50605,7 +50609,7 @@ Args: Returns: None - + """ pass @@ -50629,7 +50633,7 @@ Args: Returns: None - + """ pass @@ -50645,7 +50649,7 @@ Args: Returns: None - + """ pass @@ -50661,7 +50665,7 @@ Args: Returns: None - + """ pass @@ -50677,7 +50681,7 @@ Args: Returns: None - + """ pass @@ -50693,7 +50697,7 @@ Args: Returns: None - + """ pass @@ -50716,7 +50720,7 @@ Args: Returns: None - + """ pass @@ -50733,7 +50737,7 @@ Args: Returns: None - + """ pass @@ -50749,7 +50753,7 @@ Args: Returns: None - + """ pass @@ -50765,7 +50769,7 @@ Args: Returns: typing.Any - + """ pass @@ -50781,7 +50785,7 @@ Args: Returns: None - + """ pass @@ -50804,7 +50808,7 @@ Args: Returns: None - + """ pass @@ -50827,7 +50831,7 @@ Args: Returns: None - + """ pass @@ -50843,7 +50847,7 @@ Args: Returns: None - + """ pass @@ -50866,7 +50870,7 @@ Args: Returns: str - + """ pass @@ -50882,7 +50886,7 @@ Args: Returns: None - + """ pass @@ -50902,7 +50906,7 @@ class TV_ITEM(object): class EXTENSION_CONTROL_BLOCK(object): - """A python representation of an ISAPI + """A python representation of an ISAPI EXTENSION_CONTROL_BLOCK.""" @@ -50996,7 +51000,7 @@ Returns: typing.Any: Return Valuethe result is the number of bytes written. - + """ pass @@ -51012,15 +51016,15 @@ Args: Returns: - str:If specified, the function will return this + str:If specified, the function will return this -value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name -begins with 'UNICODE_', in which case it is a unicode object - see the +begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. - + """ pass @@ -51036,14 +51040,14 @@ Args: Returns: str - + """ pass def SendResponseHeaders(self,reply:'str',headers:'str',keepAlive:'typing.Any'=False) -> 'None': """ - Calls ServerSupportFunction with + Calls ServerSupportFunction with HSE_REQ_SEND_RESPONSE_HEADER_EX @@ -51056,7 +51060,7 @@ Args: Returns: None - + """ pass @@ -51072,7 +51076,7 @@ Args: Returns: None - + """ pass @@ -51096,7 +51100,7 @@ Args: Returns: typing.Any - + """ pass @@ -51112,7 +51116,7 @@ Args: Returns: None - + """ pass @@ -51128,7 +51132,7 @@ Args: Returns: None - + """ pass @@ -51144,7 +51148,7 @@ Args: Returns: None - + """ pass @@ -51160,14 +51164,14 @@ Args: Returns: None - + """ pass def GetAnonymousToken(self,metabase_path:'typing.Union[str, typing.Any]') -> 'typing.Any': """ - Calls ServerSupportFunction with HSE_REQ_GET_ANONYMOUS_TOKEN + Calls ServerSupportFunction with HSE_REQ_GET_ANONYMOUS_TOKEN or HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN @@ -51178,14 +51182,14 @@ Args: Returns: typing.Any - + """ pass def GetImpersonationToken(self,) -> 'typing.Any': """ - Calls ServerSupportFunction with + Calls ServerSupportFunction with HSE_REQ_GET_IMPERSONATION_TOKEN @@ -51196,7 +51200,7 @@ Args: Returns: typing.Any - + """ pass @@ -51212,7 +51216,7 @@ Args: Returns: typing.Any - + """ pass @@ -51233,7 +51237,7 @@ Args: Returns: typing.Any - + """ pass @@ -51251,14 +51255,14 @@ Returns: typing.Any:Search for HSE_EXEC_URL_STATUS at msdn, google or google groups. Return ValueThe result of a tuple of 3 integers - (uHttpStatusCode, uHttpSubStatus, dwWin32Error) - + """ pass def IOCompletion(self,func:'typing.Any',arg:'typing.Any'=None) -> 'typing.Any': """ - Set a callback that will be used for handling asynchronous I/O + Set a callback that will be used for handling asynchronous I/O operations. @@ -51270,7 +51274,7 @@ Args: Returns: typing.Any - + """ pass @@ -51286,7 +51290,7 @@ Args: Returns: typing.Any - + """ pass @@ -51306,14 +51310,14 @@ Returns: typing.Any:The error code returned.Comments -This is not a function you can call, it describes the signature of +This is not a function you can call, it describes the signature of -the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion +the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function. Return ValueThe result of this function is ignored. - + """ pass @@ -51332,7 +51336,7 @@ class HSE_VERSION_INFO(object): class HTTP_FILTER_AUTHENT(object): - """A Python representation of an ISAPI + """A Python representation of an ISAPI HTTP_FILTER_AUTHENT structure.""" @@ -51353,7 +51357,7 @@ HTTP_FILTER_AUTHENT structure.""" class HTTP_FILTER_CONTEXT(object): - """A Python representation of an ISAPI + """A Python representation of an ISAPI HTTP_FILTER_CONTEXT structure.""" @@ -51387,9 +51391,9 @@ HTTP_FILTER_CONTEXT structure.""" def GetData(self,) -> 'typing.Any': """ - Obtains the data passed to + Obtains the data passed to -The HttpFilterProc function. This is not techinally part of the +The HttpFilterProc function. This is not techinally part of the HTTP_FILTER_CONTEXT structure, but packaged here for convenience. @@ -51401,9 +51405,9 @@ Returns: typing.Any:HTTP_FILTER_CONTEXT.GetData -object = GetData()Obtains the data passed to +object = GetData()Obtains the data passed to -The HttpFilterProc function. This is not techinally part of the +The HttpFilterProc function. This is not techinally part of the HTTP_FILTER_CONTEXT structure, but packaged here for convenience. Return ValueThe result depends on the value of HTTP_FILTER_CONTEXT::NotificationType @@ -51425,7 +51429,7 @@ SF_NOTIFY_SEND_RAW_DATAHTTP_FILTER_RAW_DATA SF_NOTIFY_READ_RAW_DATAHTTP_FILTER_RAW_DATA SF_NOTIFY_AUTHENTICATIONHTTP_FILTER_AUTHENT - + """ pass @@ -51441,15 +51445,15 @@ Args: Returns: - str:If specified, the function will return this + str:If specified, the function will return this -value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name -begins with 'UNICODE_', in which case it is a unicode object - see the +begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. - + """ pass @@ -51466,7 +51470,7 @@ Args: Returns: None - + """ pass @@ -51483,7 +51487,7 @@ Args: Returns: None - + """ pass @@ -51500,7 +51504,7 @@ Args: Returns: None - + """ pass @@ -51516,13 +51520,13 @@ Args: Returns: None - + """ pass class HTTP_FILTER_LOG(object): - """A Python representation of an ISAPI + """A Python representation of an ISAPI HTTP_FILTER_LOG structure.""" @@ -51573,7 +51577,7 @@ HTTP_FILTER_LOG structure.""" class HTTP_FILTER_PREPROC_HEADERS(object): - """A Python representation of an ISAPI + """A Python representation of an ISAPI HTTP_FILTER_PREPROC_HEADERS structure.""" @@ -51593,7 +51597,7 @@ Args: Returns: str - + """ pass @@ -51610,7 +51614,7 @@ Args: Returns: None - + """ pass @@ -51626,13 +51630,13 @@ Args: Returns: None - + """ pass class HTTP_FILTER_RAW_DATA(object): - """A Python representation of an ISAPI + """A Python representation of an ISAPI HTTP_FILTER_RAW_DATA structure.""" @@ -51647,7 +51651,7 @@ HTTP_FILTER_RAW_DATA structure.""" class HTTP_FILTER_URL_MAP(object): - """A Python representation of an ISAPI + """A Python representation of an ISAPI HTTP_FILTER_URL_MAP structure.""" @@ -51668,7 +51672,7 @@ HTTP_FILTER_URL_MAP structure.""" class HTTP_FILTER_VERSION(object): - """A Python interface to the ISAPI HTTP_FILTER_VERSION + """A Python interface to the ISAPI HTTP_FILTER_VERSION structure.""" From 4edbef54f82fd250cec81118d6eff893c33907c5 Mon Sep 17 00:00:00 2001 From: Austin <37423484+Toufool@users.noreply.github.com> Date: Wed, 1 Dec 2021 00:48:11 -0500 Subject: [PATCH 06/54] add pause after start image tip --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 823d8c03..4f9397a4 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ You can have one (and only one) image with the keyword `reset` in its name. Auto ### Start image -The start image is similar to the reset image. You can only have one start image with the keyword `start_auto_splitter`.You can reload the image using the "`Reload Start Image`" button. The pause time is the amount of seconds AutoSplit will wait before checking for the start image once a run ends/is reset. Delay times will be used to delay starting your timer after the threshold is met. +The start image is similar to the reset image. You can only have one start image with the keyword `start_auto_splitter`.You can reload the image using the "`Reload Start Image`" button. The pause time is the amount of seconds AutoSplit will wait before checking for the start image once a run ends/is reset. Delay times will be used to delay starting your timer after the threshold is met. If you need to pause comparison for any amount of time after the Start Image, the best option right now is to use a dummy split image `{d}` with a similarity threshold of `(0.00)` and a pause threshold `[]` of however long you need to pause comparison as your first split image. This will trigger the pause immediately after your timer is started. ### Timer Global Hotkeys From 3602d5f48ca805691386957f351544823c13d54b Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 2 Dec 2021 22:56:34 -0500 Subject: [PATCH 07/54] Fix crash on LiveSplit open and missing link in error message --- src/AutoSplit.py | 63 ++++++++++++++++++++++++-------------------- src/settings_file.py | 5 +++- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/src/AutoSplit.py b/src/AutoSplit.py index a60ecbf0..61fcd70f 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -1,8 +1,8 @@ #!/usr/bin/python3.9 # -*- coding: utf-8 -*- import traceback -from types import FunctionType, TracebackType -from typing import Callable, List, Optional, Type +from types import FunctionType +from typing import Callable, List, Optional from copy import copy from PyQt6 import QtCore, QtGui, QtTest, QtWidgets @@ -17,7 +17,7 @@ import time from menu_bar import about, VERSION, viewHelp, checkForUpdates, open_update_checker -from settings_file import auto_split_directory +from settings_file import auto_split_directory, FROZEN from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG import capture_windows import compare @@ -25,7 +25,6 @@ import error_messages import split_parser - # Resize to these width and height so that FPS performance increases COMPARISON_RESIZE_WIDTH = 320 COMPARISON_RESIZE_HEIGHT = 240 @@ -33,9 +32,8 @@ DISPLAY_RESIZE_WIDTH = 240 DISPLAY_RESIZE_HEIGHT = 180 DISPLAY_RESIZE = (DISPLAY_RESIZE_WIDTH, DISPLAY_RESIZE_HEIGHT) -CREATE_NEW_ISSUE_MESSAGE = \ - "Please create a New Issue at " -"github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" +CREATE_NEW_ISSUE_MESSAGE = "Please create a New Issue at " \ + "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" class AutoSplit(QtWidgets.QMainWindow, design.Ui_MainWindow): from hotkeys import send_command @@ -61,7 +59,13 @@ class AutoSplit(QtWidgets.QMainWindow, design.Ui_MainWindow): showErrorSignal = QtCore.pyqtSignal(FunctionType) def __init__(self, parent=None): - super(AutoSplit, self).__init__(parent) + super().__init__(parent) + + # Setup global error handling + self.showErrorSignal.connect(lambda errorMessageBox: errorMessageBox()) + # Whithin LiveSplit excepthook needs to use main_window's signals to show errors + sys.excepthook = lambda _, exception, __: excepthook(exception, self) + self.setupUi(self) self.load_check_for_updates_on_open() @@ -179,7 +183,6 @@ def run(self): self.resetSignal.connect(self.reset) self.skipSplitSignal.connect(self.skipSplit) self.undoSplitSignal.connect(self.undoSplit) - self.showErrorSignal.connect(lambda errorMessageBox: errorMessageBox()) # live image checkbox self.liveimageCheckBox.clicked.connect(self.checkLiveImage) @@ -226,6 +229,12 @@ def run(self): if not self.is_auto_controlled: self.loadSettings(load_settings_on_open=True) + self.show() + + # Needs to be after Ui_MainWindow.show() to be shown overtop + if self.actionCheck_for_Updates_on_Open.isChecked(): + checkForUpdates(self, check_on_open=True) + # FUNCTIONS # TODO add checkbox for going back to image 1 when resetting. @@ -1196,15 +1205,22 @@ def exit(): exit() +def excepthook(exception: BaseException, main_window: AutoSplit): + # Catch Keyboard Interrupts for a clean close + if type(exception) is KeyboardInterrupt: + sys.exit(0) + main_window.showErrorSignal.emit(lambda: error_messages.exceptionTraceback( + "AutoSplit encountered an unhandled exception and will try to recover, " + f"however, there is no guarantee everything will work properly. {CREATE_NEW_ISSUE_MESSAGE}", + exception)) \ + + def main(): + # Call to QApplication outside the try-except so we can show error messages app = QtWidgets.QApplication(sys.argv) try: app.setWindowIcon(QtGui.QIcon(':/resources/icon.ico')) - main_window = AutoSplit() - main_window.show() - # Needs to be after main_window.show() to be shown over - if main_window.actionCheck_for_Updates_on_Open.isChecked(): - checkForUpdates(main_window, check_on_open=True) + AutoSplit() # Kickoff the event loop every so often so we can handle KeyboardInterrupt (^C) timer = QtCore.QTimer() @@ -1213,12 +1229,12 @@ def main(): exit_code = app.exec() except Exception as exception: + message = f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}" # Print error to console if not running in executable - if getattr(sys, 'frozen', False): - error_messages.exceptionTraceback( - f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}", - exception) + if FROZEN: + error_messages.exceptionTraceback(message, exception) else: + print(message) traceback.print_exception(type(exception), exception, exception.__traceback__) sys.exit(1) @@ -1228,16 +1244,5 @@ def main(): sys.exit(exit_code) -def excepthook(exceptionType: Type[BaseException], exception: BaseException, traceback: Optional[TracebackType]): - # Catch Keyboard Interrupts for a clean close - if exceptionType is KeyboardInterrupt: - sys.exit(0) - error_messages.exceptionTraceback( - "AutoSplit encountered an unhandled exception and will try to recover, " - f"however, there is no guarantee everything will work properly. {CREATE_NEW_ISSUE_MESSAGE}", - exception) - - if __name__ == '__main__': - sys.excepthook = excepthook main() diff --git a/src/settings_file.py b/src/settings_file.py index d7c0fc6b..1b625ab8 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -14,8 +14,11 @@ import design import error_messages +# Keyword 'frozen' is for setting basedir while in onefile mode in pyinstaller +FROZEN = getattr(sys, 'frozen', False) + # Get the directory of either AutoSplit.exe or AutoSplit.py -auto_split_directory = os.path.dirname(sys.executable if getattr(sys, 'frozen', False) else os.path.abspath(__file__)) +auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) def getSaveSettingsValues(self: AutoSplit): From 002b0974303355637fa54a4b88b69722bdfd64a0 Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 3 Dec 2021 00:36:14 -0500 Subject: [PATCH 08/54] Merge --- .flake8 | 15 + .github/workflows/build-and-lint.yml | 111 + .gitignore | 3 + .markdownlint.json | 5 + .vscode/extensions.json | 9 +- .vscode/settings.json | 65 +- README.md | 6 +- pyproject.toml | 95 + res/about.ui | 10 +- res/design.ui | 46 +- res/update_checker.ui | 8 +- scripts/Qt Designer.lnk | Bin 2255 -> 0 bytes scripts/build.bat | 1 + scripts/compile_resources.bat | 8 +- scripts/install.bat | 2 + scripts/lint.ps1 | 11 + scripts/requirements.txt | 17 +- scripts/start.bat | 2 + src/AutoControlledWorker.py | 43 + src/AutoSplit.py | 899 +- src/about.py | 58 - src/capture_windows.py | 73 +- src/compare.py | 154 +- src/design.py | 502 - src/error_messages.py | 30 +- src/hotkeys.py | 282 +- src/menu_bar.py | 20 +- src/resources_rc.py | 2311 - src/screen_region.py | 243 +- src/settings_file.py | 431 +- src/split_parser.py | 170 +- src/update_checker.py | 77 - typings/cv2-stubs/__init__.pyi | 3578 ++ typings/imagehash/__init__.pyi | 275 + typings/keyboard/__init__.pyi | 701 + typings/keyboard/_keyboard_event.pyi | 31 + typings/pyautogui/__init__.pyi | 814 + typings/pythonwin-stubs/win32typing.pyi | 51700 +++++++++++++++++++++ typings/win32con/__init__.pyi | 5045 +++ typings/win32helper/__init__.pyi | 0 typings/win32helper/ntsecuritycon.pyi | 689 + typings/win32helper/sspicon.pyi | 479 + typings/win32helper/win32cryptcon.pyi | 1900 + typings/win32helper/win32inetcon.pyi | 1103 + typings/win32helper/win32netcon.pyi | 655 + typings/win32helper/winioctlcon.pyi | 711 + typings/win32typing/__init__.pyi | 51704 ++++++++++++++++++++++ 47 files changed, 120954 insertions(+), 4138 deletions(-) create mode 100644 .flake8 create mode 100644 .github/workflows/build-and-lint.yml create mode 100644 .markdownlint.json create mode 100644 pyproject.toml delete mode 100644 scripts/Qt Designer.lnk create mode 100644 scripts/lint.ps1 create mode 100644 scripts/start.bat create mode 100644 src/AutoControlledWorker.py delete mode 100644 src/about.py delete mode 100644 src/design.py delete mode 100644 src/resources_rc.py delete mode 100644 src/update_checker.py create mode 100644 typings/cv2-stubs/__init__.pyi create mode 100644 typings/imagehash/__init__.pyi create mode 100644 typings/keyboard/__init__.pyi create mode 100644 typings/keyboard/_keyboard_event.pyi create mode 100644 typings/pyautogui/__init__.pyi create mode 100644 typings/pythonwin-stubs/win32typing.pyi create mode 100644 typings/win32con/__init__.pyi create mode 100644 typings/win32helper/__init__.pyi create mode 100644 typings/win32helper/ntsecuritycon.pyi create mode 100644 typings/win32helper/sspicon.pyi create mode 100644 typings/win32helper/win32cryptcon.pyi create mode 100644 typings/win32helper/win32inetcon.pyi create mode 100644 typings/win32helper/win32netcon.pyi create mode 100644 typings/win32helper/winioctlcon.pyi create mode 100644 typings/win32typing/__init__.pyi diff --git a/.flake8 b/.flake8 new file mode 100644 index 00000000..e6aff2b6 --- /dev/null +++ b/.flake8 @@ -0,0 +1,15 @@ +[flake8] +color=always +max-line-length=120 +; Auto generated +exclude=src/gen/ +; TODO: We want to configure this +ignore=W503,N801,N802,N803,N806,N815,N816 +per-file-ignores = + ; imported but unused + ; line too long + ; mixed case + __init__.pyi:F401,E501,N816 +; TODO: Bring WAY down +max-complexity=55 +inline-quotes = " diff --git a/.github/workflows/build-and-lint.yml b/.github/workflows/build-and-lint.yml new file mode 100644 index 00000000..ae10b564 --- /dev/null +++ b/.github/workflows/build-and-lint.yml @@ -0,0 +1,111 @@ +# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions +name: Build and lint +on: + push: + branches: + - main + - master + - 2.0.0 + pull_request: + branches: + - main + - master + - dev + - dev* +jobs: + Pyright: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Node + uses: actions/setup-node@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + npm install -g pyright + - run: scripts/compile_resources.bat + - name: Analysing the code with ${{ job.name }} + run: pyright + Pylint: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + - run: scripts/compile_resources.bat + - name: Analysing the code with ${{ job.name }} + run: pylint --reports=y --output-format=colorized $(git ls-files '**/*.py*') + Bandit: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + - run: scripts/compile_resources.bat + - name: Analysing the code with ${{ job.name }} + run: bandit -n 1 --severity-level medium --recursive src + Flake8: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + - run: scripts/compile_resources.bat + - name: Analysing the code with ${{ job.name }} + run: flake8 + Build: + runs-on: windows-latest + strategy: + matrix: + python-version: ["3.8", "3.9"] + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r "scripts/requirements.txt" + - run: scripts/build.bat diff --git a/.gitignore b/.gitignore index 6596996f..76ff082c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ __pycache__/ env/ build/ dist/ +# Generated +**/gen/*.py +!**/gen/*.pyi # PyInstaller # Usually these files are written by a python script from a template diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 00000000..efb4ef2f --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,5 @@ +{ + "default": true, + "MD025": false, + "MD013": false +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index ca9b77ca..d4464eda 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,11 +1,12 @@ { "recommendations": [ - "ms-python.vscode-pylance", - "ms-python.python", - "sonarsource.sonarlint-vscode", + "bungcip.better-toml", "davidanson.vscode-markdownlint", + "eamodio.gitlens", + "ms-python.python", + "ms-python.vscode-pylance", "shardulm94.trailing-spaces", - "eamodio.gitlens" + "sonarsource.sonarlint-vscode" ], "unwantedRecommendations": [ "ms-pyright.pyright", diff --git a/.vscode/settings.json b/.vscode/settings.json index 619e1800..5336311a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,42 +13,34 @@ "[python]": { "editor.tabSize": 4, "editor.rulers": [ - 79, - 100, - 120, + 72, // PEP8-17 docstrings + // 79, // PEP8-17 default max + // 88, // Black default + 99, // PEP8-17 acceptable max + 120, // Our hard rule ] }, - // Keeping autoformat to false for now to keep minimal changes - "editor.formatOnSave": false, + "editor.formatOnSave": true, "editor.codeActionsOnSave": { - "source.fixAll": false, + "source.fixAll": true, + "source.fixAll.markdownlint": true, }, "python.linting.enabled": true, - "python.analysis.typeCheckingMode": "basic", - "python.analysis.diagnosticSeverityOverrides": { - // Too many false positives with pywin32 (all functions have 0 arguments in type stub) - "reportGeneralTypeIssues":"none" - }, - // https://code.visualstudio.com/docs/python/linting#_specific-linters - // Maybe consider PyLint once all Flake8 linting is fixed - "python.linting.pylintEnabled": false, + "python.linting.pylintEnabled": true, + "python.linting.pylintCategorySeverity.convention": "Warning", + "python.linting.pylintCategorySeverity.refactor": "Warning", "python.linting.flake8Enabled": true, + "python.linting.flake8CategorySeverity.E": "Warning", + // PyRight obsoletes mypy "python.linting.mypyEnabled": false, - // Flake8 is already a pycodestyle wrapper + // Is already wrapped by Flake8, prospector and pylama "python.linting.pycodestyleEnabled": false, - "python.linting.pylintArgs": [ - "--disable=no-member", - "--max-line-length=120" - ], - "python.linting.flake8CategorySeverity.E": "Warning", - "python.linting.flake8Args": [ - "--max-line-length=120" - ], - "python.formatting.autopep8Args": [ - "--max-line-length=120" - ], + // Just another wrapper, use Flake8 OR this + "python.linting.prospectorEnabled": false, + // Just another wrapper, use Flake8 OR this + "python.linting.pylamaEnabled": false, + "python.linting.banditEnabled": true, "files.insertFinalNewline": true, - "trailing-spaces.deleteModifiedLinesOnly": true, "trailing-spaces.includeEmptyLines": true, "trailing-spaces.trimOnSave": true, "trailing-spaces.syntaxIgnore": [ @@ -58,8 +50,21 @@ "*.qrc": "xml", "*.ui": "xml" }, - "markdownlint.config": { - "default": true, - "MD025": false, + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/Thumbs.db": true, + "build": true, + ".mypy_cache": true, + "**/__pycache__": true, + }, + "search.exclude": { + "**/node_modules": true, + "**/bower_components": true, + "**/*.code-search": true, + "typings": true, }, } diff --git a/README.md b/README.md index 823d8c03..7a4896bc 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# LiveSplit AutoSplit +# LiveSplit AutoSplit [![Build and lint](/../../actions/workflows/build-and-lint.yml/badge.svg)](/../../actions/workflows/build-and-lint.yml) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=security_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) Easy to use image comparison based auto splitter for speedrunning on console or PC. @@ -24,7 +24,8 @@ This program can be used to automatically start, split, and reset your preferred (This is not required for normal use) -- Microsoft Visual C++ 14.0 or greater may be required. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) +- Microsoft Visual C++ 14.0 or greater may be required to build the executable. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) +- Node is optional, but required for complete linting (using Pyright). - Read [requirements.txt](/scripts/requirements.txt) for information on how to install, run and build the python code - Run `.\scripts\install.bat` to install all dependencies - Run the app directly with `py .\src\AutoSplit.py [--auto-controlled]` @@ -195,6 +196,7 @@ The AutoSplit LiveSplit Component will directly connect AutoSplit with LiveSplit ## Resources Still need help? + - [Open an issue](../../issues) - Join the [AutoSplit Discord](https://discord.gg/Qcbxv9y) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..9b35cb8f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,95 @@ +# https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file +[tool.black] +line-length = 120 +# Auto generated +force-exclude = "src/gen/.*\\.py$" + +# https://github.com/hhatto/autopep8#usage +# https://github.com/hhatto/autopep8#more-advanced-usage +[tool.autopep8] +max_line_length = 120 +recursive = true +aggressive = 3 + +# https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file +[tool.pyright] +pythonPlatform = "Windows" +typeCheckingMode = "strict" +ignore = [ + # Auto generated + "src/gen/", + "typings/", +] +reportMissingTypeStubs = "information" +# False positives with TYPE_CHECKING +reportImportCycles = "information" +# PyQt .connect +reportFunctionMemberAccess = "information" +# Extra runtime safety +reportUnnecessaryComparison = "warning" +# Flake8 does a better job +reportUnusedImport = "none" +# numpy has way too many complex types that triggers this +reportUnknownMemberType = "none" + +# https://github.com/PyCQA/pylint/blob/main/examples/pylintrc +# https://pylint.pycqa.org/en/latest/technical_reference/features.html +[tool.pylint.REPORTS] +# Just like default but any error will make drop to 9 or less +evaluation="10.0 - error - ((float(warning + refactor + convention) / statement) * 10)" +[tool.pylint.MASTER] +fail-under=9.0 +# https://pylint.pycqa.org/en/latest/technical_reference/extensions.html +load-plugins = [ + "pylint.extensions.emptystring", + "pylint.extensions.confusing_elif", + "pylint.extensions.consider_ternary_expression", + "pylint.extensions.bad_builtin", + "pylint.extensions.mccabe", + "pylint.extensions.check_elif", + "pylint.extensions.redefined_variable_type", + "pylint.extensions.overlapping_exceptions", + "pylint.extensions.empty_comment", + "pylint.extensions.set_membership", + "pylint.extensions.typing", + # TODO: Maybe later + # "pylint.extensions.docparams", + # Not wanted/needed + # "pylint.extensions.broad_try_clause", + # "pylint.extensions.code_style", + # "pylint.extensions.comparetozero", + # "pylint.extensions.docstyle", + # "pylint.extensions.while_used", + # Didn't work + # "pylint.extensions.comparison_placement", + # "pylint.extensions.for_any_all", +] +ignore-paths = [ + # Haven't looked into disabling specific rules per file + "^typings/.*$", + # Auto generated + "^src/gen/.*$", +] +# No need to mention the fixmes +disable=["fixme"] +extension-pkg-allow-list = ["PyQt6", "win32ui"] + +[tool.pylint.FORMAT] +max-line-length = 120 + +[tool.pylint.'MESSAGES CONTROL'] +disable = [ + "missing-docstring", + # TODO: We want to configure this + # https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles + "invalid-name", + # We group imports + "wrong-import-position", + # Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride + "unused-argument", + # Already taken care of by Flake8 + "unused-import", +] + +[tool.pylint.TYPECHECK] +generated-members = "cv2" diff --git a/res/about.ui b/res/about.ui index 1d833949..d963f5e2 100644 --- a/res/about.ui +++ b/res/about.ui @@ -100,7 +100,10 @@ consider donating. Thank you! - <html><head/><body><p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=BYRHQG69YRHBA&amp;item_name=AutoSplit+development&amp;currency_code=USD&amp;source=url"><img src=":/resources/btn_donateCC_LG.png"/></a></p></body></html> + + + + :/resources/btn_donateCC_LG.png Qt::AlignCenter @@ -116,7 +119,10 @@ consider donating. Thank you! - <html><head/><body><p><img src=":/resources/icon.ico"/></p></body></html> + + + + :/resources/icon.ico diff --git a/res/design.ui b/res/design.ui index 1e74b9d8..af4e7559 100644 --- a/res/design.ui +++ b/res/design.ui @@ -615,7 +615,7 @@ 450 - 50 + 38 102 16 @@ -705,7 +705,7 @@ 200 - 50 + 38 82 16 @@ -759,7 +759,7 @@ 380 - 270 + 50 241 20 @@ -1076,10 +1076,10 @@ - 120 + 440 270 - 241 - 16 + 181 + 20 @@ -1112,6 +1112,38 @@ + + + + 120 + 50 + 241 + 20 + + + + + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + true + + + + 120 + 270 + 221 + 20 + + + + Force Full Content Rendering (slower) + + splitimagefolderLabel splitimagefolderLineEdit browseButton @@ -1178,6 +1210,8 @@ startImageLabel currentsimilaritythresholdLabel currentsimilaritythresholdnumberLabel + captureregionwindowLabel + forcePrintWindowCheckBox diff --git a/res/update_checker.ui b/res/update_checker.ui index 2b5c96ee..a2f767ae 100644 --- a/res/update_checker.ui +++ b/res/update_checker.ui @@ -42,6 +42,10 @@ Update Checker + + + :/resources/icon.ico:/resources/icon.ico + @@ -169,7 +173,9 @@ - + + + pushButtonRight diff --git a/scripts/Qt Designer.lnk b/scripts/Qt Designer.lnk deleted file mode 100644 index 32ad191e237fd6030e07345c3538a9b6cdd2dde5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2255 zcmd5-ZETZO6n;8BvQ5Q~q83nBi7Xh`+OlqTTb68Ax^8J)w-+NZZya4$+IMtq*A_BN zWIv3-k7-QMjfA1gm`sQoH-n2o0r{bSh?y*YAwP(bKbx|UNa7C@e9qes%V610yl>9A z=bm%#InO=!-23_f7}gb$17~#(&tVk9Lb-XbXZH8celomdNj`gp{TuU{@u#Ot^qGdt z{5;>hVjar;m)mA6b9I_=?B`-UZnqyCbdR{GB@`{_ZVwM)@smlOaWaY39U=1Tz-IZt`$8 zUuN{=V_ZLOMEmxd&L%xZM>a;ia{aiF#3*@x1$pii=%nWazbGRHDW};> zX5?hd@ZKCL4X()Kr7*_)n8YwHiZSGMqn-XFE4lp2DkHkISU$gneul@z&*FSEJnCa^ zHDVG^yI2!a+Op1q?odh#$3jV4s6PZoxfR=`AH?SXsj%&tILe$z{b|f=j8c+y7eYS? zc#tG3q?Z$t-b#|TpCnZ-UM&xto6~pAtK(0`!^uFe#iK<-DK%G{DoaUCY3YzP5eV)M zglXza*K`IFiKrF~q_ub~rM9P4CPck?E1iU6gSre~`dX>Cl)0KMQdQsd?TbrYwkTBn zNY(6ts7of%4L9nD|4t*6<5>laRB!P&$LX9gr>L7Uf3YEog^OX z=nnSMBJt!NxdyrRiOYRvEODcC=*4daDmGpkemSyGd9?hGvIA2n+H3x{emVOpI_H}_ zDzO}jU-{Gi)kQa6Yo7Rf#x$PVwdn};`b90L;2~wI-hwT6IGK+Ti?mlr0{pkvcX+<^ zx!kAzF&(Tp)cc)A{Ysf2z$-}#uZx3JO_C?v%4fqx$upP3DTd znsP0viZ&;;4$5}&Oq*mUAneyRPcJlYFn(~YXy@R2^B>6tEtM$(;vUk{_Zzs6cKw}c zq=18S`X5x3cgt9W-0xHNp5L2Tn{NADW)`iXo&Pf+_Y;=!_ap&)tS7jo;oS>mCx67* zwqMLMC#io}CJ5km(*NVeEPba1t2Fs#%7!NI?|u5?Hxu3oZ=-Fzp?~lp>LW72OFBI5 V8ByYO+g`m|dbP(qQ7rmg`xm0p!`T1; diff --git a/scripts/build.bat b/scripts/build.bat index d7ccc27f..f8a5f6b8 100644 --- a/scripts/build.bat +++ b/scripts/build.bat @@ -1 +1,2 @@ +CALL "%~p0compile_resources.bat" pyinstaller -w -F --icon=res\icon.ico "%~p0..\src\AutoSplit.py" diff --git a/scripts/compile_resources.bat b/scripts/compile_resources.bat index 91f134e4..a6c092aa 100644 --- a/scripts/compile_resources.bat +++ b/scripts/compile_resources.bat @@ -1,5 +1,5 @@ cd "%~dp0.." -pyuic6 ".\res\about.ui" -o ".\src\about.py" -pyuic6 ".\res\design.ui" -o ".\src\design.py" -pyuic6 ".\res\update_checker.ui" -o ".\src\update_checker.py" -pyside6-rcc ".\res\resources.qrc" -o ".\src\resources_rc.py" +pyuic6 ".\res\about.ui" -o ".\src\gen\about.py" +pyuic6 ".\res\design.ui" -o ".\src\gen\design.py" +pyuic6 ".\res\update_checker.ui" -o ".\src\gen\update_checker.py" +pyside6-rcc ".\res\resources.qrc" -o ".\src\gen\resources_rc.py" diff --git a/scripts/install.bat b/scripts/install.bat index 8b34f808..b32ff99e 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -1,2 +1,4 @@ py -3.9 -m pip install wheel py -3.9 -m pip install -r "%~p0requirements.txt" +npm install -g pyright +CALL "%~p0compile_resources.bat" diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 new file mode 100644 index 00000000..97a72d41 --- /dev/null +++ b/scripts/lint.ps1 @@ -0,0 +1,11 @@ +echo "`nRunning Pyright..." +pyright + +echo "`nRunning Pylint..." +pylint --score=n --output-format=colorized $(git ls-files '**/*.py*') + +echo "`nRunning Bandit..." +bandit -f custom --silent --recursive src + +echo "`nRunning Flake8..." +flake8 diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 46f9939b..30cf1dab 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -5,26 +5,29 @@ # Usage: .\scripts\install.bat # # If you're having issues with the libraries, you might want to first run: -# pip3.9 uninstall -r requirements.txt +# pip3.9 uninstall -r .\scripts\requirements.txt # # Creating AutoSplit.exe with PyInstaller: .\scripts\build.bat # # Dependencies: +numpy>=1.22.0rc1 +opencv-python<=4.5.3.56 # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 PyQt6 -opencv-python<=4.5.3.56 # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 +PyQt6-tools +PySide6 Pillow ImageHash pywin32 keyboard packaging pyautogui -PySide6 -flake8 requests +# Linting and Types +pywin32-stubs types-requests +flake8 +pylint +bandit # # Comment this out if you don't want to build AutoSplit.exe: PyInstaller -# -# Comment this out if you don't want to install the PyQt designer -PyQt6-tools diff --git a/scripts/start.bat b/scripts/start.bat new file mode 100644 index 00000000..3b428f1d --- /dev/null +++ b/scripts/start.bat @@ -0,0 +1,2 @@ +CALL "%~p0compile_resources.bat" +py -3.9 "%~p0..\src\AutoSplit.py" diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py new file mode 100644 index 00000000..7ef33a0c --- /dev/null +++ b/src/AutoControlledWorker.py @@ -0,0 +1,43 @@ +from __future__ import annotations +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from AutoSplit import AutoSplit +from PyQt6 import QtCore + +import error_messages +import settings_file as settings + + +class AutoControlledWorker(QtCore.QObject): + def __init__(self, autosplit: AutoSplit): + self.autosplit = autosplit + super().__init__() + + def run(self): + while True: + try: + line = input() + except RuntimeError: + self.autosplit.showErrorSignal.emit(error_messages.stdinLostError) + break + # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. + # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" + # For now this can only used in a Development environment + if line == "kill": + self.autosplit.closeEvent() + break + if line == "start": + self.autosplit.startAutoSplitter() + elif line in {"split", "skip"}: + self.autosplit.startSkipSplit() + elif line == "undo": + self.autosplit.startUndoSplit() + elif line == "reset": + self.autosplit.startReset() + elif line.startswith("settings"): + # Allow for any split character between "settings" and the path + self.autosplit.load_settings_file_path = line[9:] + settings.loadSettings(self.autosplit, load_settings_from_livesplit=True) + # TODO: Not yet implemented in AutoSplit Integration + # elif line == 'pause': + # self.startPause() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 61fcd70f..002857d3 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -1,29 +1,44 @@ -#!/usr/bin/python3.9 +#!/usr/bin/python3 # -*- coding: utf-8 -*- -import traceback -from types import FunctionType -from typing import Callable, List, Optional -from copy import copy -from PyQt6 import QtCore, QtGui, QtTest, QtWidgets -from win32 import win32gui +# Imports grouping: +# - Typings +# - Standards +# - Externals +# - Internals +from __future__ import annotations +from collections.abc import Callable +from types import FunctionType, TracebackType +from typing import Literal, Optional, Union, cast + import sys import os -import cv2 -import ctypes.wintypes import ctypes -import numpy as np import signal -import time +import traceback +from copy import copy +from time import time + +import cv2 +import numpy as np +from PyQt6 import QtCore, QtGui, QtTest +from PyQt6.QtWidgets import QApplication, QFileDialog, QMainWindow, QMessageBox, QWidget +from win32 import win32gui +from win32con import MAXBYTE -from menu_bar import about, VERSION, viewHelp, checkForUpdates, open_update_checker -from settings_file import auto_split_directory, FROZEN -from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG -import capture_windows -import compare -import design import error_messages +import settings_file as settings import split_parser +from AutoControlledWorker import AutoControlledWorker +from capture_windows import capture_region, Rect +from compare import checkIfImageHasTransparency, compareImage +from gen import about, design, update_checker +from hotkeys import send_command, afterSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, \ + setUndoSplitHotkey, setPauseHotkey +from menu_bar import open_about, VERSION, viewHelp, checkForUpdates, open_update_checker +from screen_region import selectRegion, selectWindow, alignRegion, validateBeforeComparison +from settings_file import FROZEN +from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG # Resize to these width and height so that FPS performance increases COMPARISON_RESIZE_WIDTH = 320 @@ -35,18 +50,27 @@ CREATE_NEW_ISSUE_MESSAGE = "Please create a New Issue at " \ "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" -class AutoSplit(QtWidgets.QMainWindow, design.Ui_MainWindow): - from hotkeys import send_command - from settings_file import saveSettings, saveSettingsAs, loadSettings, haveSettingsChanged, getSaveSettingsValues, \ - load_check_for_updates_on_open, set_check_for_updates_on_open - from screen_region import selectRegion, selectWindow, alignRegion, validateBeforeComparison - from hotkeys import afterSettingHotkey, beforeSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, \ - setUndoSplitHotkey, setPauseHotkey - myappid = f'Toufool.AutoSplit.v{VERSION}' +def make_excepthook(main_window: AutoSplit): + def excepthook(exception_type: type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): + # Catch Keyboard Interrupts for a clean close + if exception_type is KeyboardInterrupt or isinstance(exception, KeyboardInterrupt): + sys.exit(0) + main_window.showErrorSignal.emit(lambda: error_messages.exceptionTraceback( + "AutoSplit encountered an unhandled exception and will try to recover, " + f"however, there is no guarantee everything will work properly. {CREATE_NEW_ISSUE_MESSAGE}", + exception)) + return excepthook + + +class AutoSplit(QMainWindow, design.Ui_MainWindow): + myappid = f"Toufool.AutoSplit.v{VERSION}" ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) - # signals + # Parse command line args + is_auto_controlled = "--auto-controlled" in sys.argv + + # Signals updateCurrentSplitImage = QtCore.pyqtSignal(QtGui.QImage) startAutoSplitterSignal = QtCore.pyqtSignal() resetSignal = QtCore.pyqtSignal() @@ -58,28 +82,103 @@ class AutoSplit(QtWidgets.QMainWindow, design.Ui_MainWindow): # Use this signal when trying to show an error from outside the main thread showErrorSignal = QtCore.pyqtSignal(FunctionType) - def __init__(self, parent=None): + # Timers + timerLiveImage = QtCore.QTimer() + timerStartImage = QtCore.QTimer() + + # Windows + AboutWidget: about.Ui_aboutAutoSplitWidget + UpdateCheckerWidget: update_checker.Ui_UpdateChecker + CheckForUpdatesThread: QtCore.QThread + + # Settings + split_image_directory = "" + similarity_threshold: float + comparison_index: int + pause: float + fps_limit: int + split_key = "" + reset_key = "" + skip_split_key = "" + undo_split_key = "" + pause_key = "" + hwnd_title = "" + group_dummy_splits_undo_skip_setting: Literal[0, 1] + loop_setting: Literal[0, 1] + auto_start_on_reset_setting: Literal[0, 1] + + # Default Settings for the region capture + hwnd = 0 + selection = Rect() + + # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py + # and for type safety in both hotkeys.py and settings_file.py + split_hotkey: Optional[Callable[[], None]] = None + reset_hotkey: Optional[Callable[[], None]] = None + skip_split_hotkey: Optional[Callable[[], None]] = None + undo_split_hotkey: Optional[Callable[[], None]] = None + pause_hotkey: Optional[Callable[[], None]] = None + + # Initialize a few attributes + last_saved_settings: Optional[list[Union[str, float, int]]] = None + save_settings_file_path = "" + load_settings_file_path = "" + live_image_function_on_open = True + split_image_loop_amount: list[int] = [] + split_image_number = 0 + loop_number = 1 + + # Last loaded settings and last successful loaded settings file path to None until we try to load them + last_loaded_settings: Optional[list[Union[str, float, int]]] = None + last_successfully_loaded_settings_file_path: Optional[str] = None + + # Automatic timer start + timerStartImage_is_running = False + start_image = None + highest_similarity = 0.0 + check_start_image_timestamp = 0.0 + + # Define all other attributes + setting_check_for_updates_on_open: QtCore.QSettings + imageHasTransparency: bool + start_image_split_below_threshold: bool + waiting_for_split_delay: bool + split_below_threshold: bool + split_image_path: str + split_image_filenames: list[str] + split_image_filenames_including_loops: list[str] + split_image_filenames_and_loop_number: list[tuple[str, int, int]] + split_groups: list[list[int]] + run_start_time: float + similarity: float + reset_image_threshold: float + reset_image_pause_time: float + split_delay: float + flags: int + reset_image: Optional[cv2.ndarray] + reset_mask: Optional[cv2.ndarray] + split_image: cv2.ndarray + image_mask: Optional[cv2.ndarray] + + def __init__(self, parent: Optional[QWidget] = None): super().__init__(parent) # Setup global error handling self.showErrorSignal.connect(lambda errorMessageBox: errorMessageBox()) # Whithin LiveSplit excepthook needs to use main_window's signals to show errors - sys.excepthook = lambda _, exception, __: excepthook(exception, self) + sys.excepthook = make_excepthook(self) self.setupUi(self) - self.load_check_for_updates_on_open() - - # Parse command line args - self.is_auto_controlled = ('--auto-controlled' in sys.argv) + settings.loadPyQtSettings(self) # close all processes when closing window self.actionView_Help.triggered.connect(viewHelp) - self.actionAbout.triggered.connect(lambda: about(self)) + self.actionAbout.triggered.connect(lambda: open_about(self)) self.actionCheck_for_Updates.triggered.connect(lambda: checkForUpdates(self)) - self.actionSave_Settings.triggered.connect(self.saveSettings) - self.actionSave_Settings_As.triggered.connect(self.saveSettingsAs) - self.actionLoad_Settings.triggered.connect(self.loadSettings) + self.actionSave_Settings.triggered.connect(lambda: settings.saveSettings(self)) + self.actionSave_Settings_As.triggered.connect(lambda: settings.saveSettingsAs(self)) + self.actionLoad_Settings.triggered.connect(lambda: settings.loadSettings(self)) # disable buttons upon open self.undosplitButton.setEnabled(False) @@ -103,68 +202,35 @@ def __init__(self, parent=None): # Send version and process ID to stdout print(f"{VERSION}\n{os.getpid()}", flush=True) - class Worker(QtCore.QObject): - def __init__(self, autosplit: AutoSplit): - self.autosplit = autosplit - super().__init__() - - def run(self): - while True: - try: - line = input() - except RuntimeError: - self.autosplit.showErrorSignal.emit(error_messages.stdinLostError) - break - # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. - # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" - # For now this can only used in a Development environment - if line == 'kill': - self.autosplit.closeEvent() - break - elif line == 'start': - self.autosplit.startAutoSplitter() - elif line == 'split' or line == 'skip': - self.autosplit.startSkipSplit() - elif line == 'undo': - self.autosplit.startUndoSplit() - elif line == 'reset': - self.autosplit.startReset() - elif line.startswith('settings'): - # Allow for any split character between "settings" and the path - self.autosplit.load_settings_file_path = line[9:] - self.autosplit.loadSettings(load_settings_from_livesplit=True) - # TODO: Not yet implemented in AutoSplit Integration - # elif line == 'pause': - # self.startPause() - # Use and Start the thread that checks for updates from LiveSplit self.update_auto_control = QtCore.QThread() - worker = Worker(self) + worker = AutoControlledWorker(self) worker.moveToThread(self.update_auto_control) self.update_auto_control.started.connect(worker.run) self.update_auto_control.start() # split image folder line edit text - self.splitimagefolderLineEdit.setText('No Folder Selected') + self.splitimagefolderLineEdit.setText("No Folder Selected") # Connecting button clicks to functions self.browseButton.clicked.connect(self.browse) - self.selectregionButton.clicked.connect(self.selectRegion) + self.selectregionButton.clicked.connect(lambda: selectRegion(self)) self.takescreenshotButton.clicked.connect(self.takeScreenshot) self.startautosplitterButton.clicked.connect(self.autoSplitter) self.checkfpsButton.clicked.connect(self.checkFPS) self.resetButton.clicked.connect(self.reset) self.skipsplitButton.clicked.connect(self.skipSplit) self.undosplitButton.clicked.connect(self.undoSplit) - self.setsplithotkeyButton.clicked.connect(self.setSplitHotkey) - self.setresethotkeyButton.clicked.connect(self.setResetHotkey) - self.setskipsplithotkeyButton.clicked.connect(self.setSkipSplitHotkey) - self.setundosplithotkeyButton.clicked.connect(self.setUndoSplitHotkey) - self.setpausehotkeyButton.clicked.connect(self.setPauseHotkey) - self.alignregionButton.clicked.connect(self.alignRegion) - self.selectwindowButton.clicked.connect(self.selectWindow) + self.setsplithotkeyButton.clicked.connect(lambda: setSplitHotkey(self)) + self.setresethotkeyButton.clicked.connect(lambda: setResetHotkey(self)) + self.setskipsplithotkeyButton.clicked.connect(lambda: setSkipSplitHotkey(self)) + self.setundosplithotkeyButton.clicked.connect(lambda: setUndoSplitHotkey(self)) + self.setpausehotkeyButton.clicked.connect(lambda: setPauseHotkey(self)) + self.alignregionButton.clicked.connect(lambda: alignRegion(self)) + self.selectwindowButton.clicked.connect(lambda: selectWindow(self)) self.startImageReloadButton.clicked.connect(lambda: self.loadStartImage(True, True)) - self.actionCheck_for_Updates_on_Open.changed.connect(lambda: self.set_check_for_updates_on_open( + self.actionCheck_for_Updates_on_Open.changed.connect(lambda: settings.set_check_for_updates_on_open( + self, self.actionCheck_for_Updates_on_Open.isChecked()) ) @@ -176,7 +242,7 @@ def run(self): # connect signals to functions self.updateCurrentSplitImage.connect(self.updateSplitImageGUI) - self.afterSettingHotkeySignal.connect(self.afterSettingHotkey) + self.afterSettingHotkeySignal.connect(lambda: afterSettingHotkey(self)) self.startAutoSplitterSignal.connect(self.autoSplitter) self.updateCheckerWidgetSignal.connect(lambda latest_version, check_on_open: open_update_checker(self, latest_version, check_on_open)) @@ -186,64 +252,36 @@ def run(self): # live image checkbox self.liveimageCheckBox.clicked.connect(self.checkLiveImage) - self.timerLiveImage = QtCore.QTimer() self.timerLiveImage.timeout.connect(self.liveImageFunction) - # Initialize a few attributes - self.last_saved_settings = None - self.live_image_function_on_open = True - self.split_image_loop_amount = [] - self.split_image_number = 0 - self.split_image_directory = "" - - # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py - # and for type safety in both hotkeys.py and settings_file.py - self.split_hotkey: Optional[Callable[[], None]] = None - self.reset_hotkey: Optional[Callable[[], None]] = None - self.skip_split_hotkey: Optional[Callable[[], None]] = None - self.undo_split_hotkey: Optional[Callable[[], None]] = None - self.pause_hotkey: Optional[Callable[[], None]] = None - self.split_key = "" - self.reset_key = "" - self.skip_split_key = "" - self.undo_split_key = "" - self.undo_split_key = "" - - # Default Settings for the region capture - self.hwnd = 0 - self.hwnd_title = '' - self.rect = ctypes.wintypes.RECT() - # Automatic timer start - self.timerStartImage = QtCore.QTimer() self.timerStartImage.timeout.connect(self.startImageFunction) - self.timerStartImage_is_running = False - self.start_image = None - self.highest_similarity = 0.0 - self.check_start_image_timestamp = 0.0 # Last loaded settings and last successful loaded settings file path to None until we try to load them self.last_loaded_settings = None self.last_successfully_loaded_settings_file_path = None if not self.is_auto_controlled: - self.loadSettings(load_settings_on_open=True) + settings.loadSettings(self, load_settings_on_open=True) self.show() # Needs to be after Ui_MainWindow.show() to be shown overtop if self.actionCheck_for_Updates_on_Open.isChecked(): checkForUpdates(self, check_on_open=True) - + # FUNCTIONS + def getGlobalSettingsValues(self): + self.setting_check_for_updates_on_open = QtCore.QSettings("AutoSplit", "Check For Updates On Open") + # TODO add checkbox for going back to image 1 when resetting. def browse(self): # User selects the file with the split images in it. - new_split_image_directory = QtWidgets.QFileDialog.getExistingDirectory( - self, - 'Select Split Image Directory', - os.path.join(self.split_image_directory or auto_split_directory, "..")) + new_split_image_directory = QFileDialog.getExistingDirectory( + self, + "Select Split Image Directory", + os.path.join(self.split_image_directory or settings.auto_split_directory, "..")) # If the user doesn't select a folder, it defaults to "". if new_split_image_directory: @@ -261,21 +299,24 @@ def checkLiveImage(self): def liveImageFunction(self): try: - if win32gui.GetWindowText(self.hwnd) == '': + windowText = win32gui.GetWindowText(self.hwnd) + self.captureregionwindowLabel.setText(windowText) + if not windowText: self.timerLiveImage.stop() + self.liveImage.clear() if self.live_image_function_on_open: self.live_image_function_on_open = False else: - self.liveImage.clear() error_messages.regionError() return - capture = capture_windows.capture_region(self.hwnd, self.rect) - capture = cv2.resize(capture, DISPLAY_RESIZE) + capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) + capture = cv2.resize(capture, DISPLAY_RESIZE, interpolation=cv2.INTER_NEAREST) + capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) # Convert to set it on the label - qImage = QtGui.QImage(capture, + qImage = QtGui.QImage(cast(bytes, capture), capture.shape[1], capture.shape[0], capture.shape[1] * 3, @@ -286,31 +327,35 @@ def liveImageFunction(self): except AttributeError: pass - def loadStartImage(self, started_by_button=False, wait_for_delay=True): + def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = True): self.timerStartImage.stop() - self.currentsplitimagefileLabel.setText(' ') + self.currentsplitimagefileLabel.setText(" ") self.startImageLabel.setText("Start image: not found") - QtWidgets.QApplication.processEvents() + QApplication.processEvents() - if not self.validateBeforeComparison(started_by_button): + if not validateBeforeComparison(self, started_by_button): return self.start_image_name = None for image in os.listdir(self.split_image_directory): - if 'start_auto_splitter' in image.lower(): + if "start_auto_splitter" in image.lower(): if self.start_image_name is None: self.start_image_name = image else: if started_by_button: - error_messages.multipleKeywordImagesError('start_auto_splitter') + error_messages.multipleKeywordImagesError("start_auto_splitter") return if self.start_image_name is None: if started_by_button: - error_messages.noKeywordImageError('start_auto_splitter') + error_messages.noKeywordImageError("start_auto_splitter") return - if self.start_image_name is not None and (not self.splitLineEdit.text() or not self.resetLineEdit.text() or not self.pausehotkeyLineEdit.text()) and not self.is_auto_controlled: + if self.start_image_name is not None \ + and not self.is_auto_controlled \ + and (not self.splitLineEdit.text() + or not self.resetLineEdit.text() + or not self.pausehotkeyLineEdit.text()): error_messages.loadStartImageError() return @@ -324,28 +369,28 @@ def loadStartImage(self, started_by_button=False, wait_for_delay=True): error_messages.imageTypeError(path) return # if image has transparency, create a mask - self.imageHasTransparency = compare.checkIfImageHasTransparency(self.start_image) + self.imageHasTransparency = checkIfImageHasTransparency(self.start_image) if self.imageHasTransparency: self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Create mask based on resized, nearest neighbor interpolated split image lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([255, 255, 255, 255], dtype="uint8") + upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") self.start_image_mask = cv2.inRange(self.start_image, lower, upper) # set split image as BGR self.start_image = cv2.cvtColor(self.start_image, cv2.COLOR_BGRA2BGR) - # otherwise, open image normally. Capture with nearest neighbor interpolation only if the split image has transparency to support older setups. + # otherwise, open image normally. else: self.start_image = cv2.imread(path, cv2.IMREAD_COLOR) - self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE) + self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) start_image_pause = split_parser.pause_from_filename(self.start_image_name) if not wait_for_delay and start_image_pause is not None and start_image_pause > 0: - self.check_start_image_timestamp = time.time() + start_image_pause + self.check_start_image_timestamp = time() + start_image_pause self.startImageLabel.setText("Start image: paused") - self.highestsimilarityLabel.setText(' ') - self.currentsimilaritythresholdnumberLabel.setText(' ') + self.highestsimilarityLabel.setText(" ") + self.currentsimilaritythresholdnumberLabel.setText(" ") else: self.check_start_image_timestamp = 0.0 self.startImageLabel.setText("Start image: ready") @@ -355,12 +400,17 @@ def loadStartImage(self, started_by_button=False, wait_for_delay=True): self.start_image_split_below_threshold = False self.timerStartImage.start(int(1000 / self.fpslimitSpinBox.value())) - QtWidgets.QApplication.processEvents() + QApplication.processEvents() def startImageFunction(self): - if time.time() < self.check_start_image_timestamp: - pause_time_left = "{:.1f}".format(self.check_start_image_timestamp - time.time()) - self.currentSplitImage.setText(f'None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining') + + if self.start_image is None \ + or not self.start_image_name \ + or time() < self.check_start_image_timestamp \ + or (not self.splitLineEdit.text() and not self.is_auto_controlled): + pause_time_left = f"{self.check_start_image_timestamp - time():.1f}" + self.currentSplitImage.setText( + f"None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining") return if self.check_start_image_timestamp > 0: @@ -369,17 +419,21 @@ def startImageFunction(self): self.updateSplitImage(self.start_image_name, from_start_image=True) capture = self.getCaptureForComparison() - start_image_similarity = self.compareImage(self.start_image, self.start_image_mask, capture) + start_image_similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.start_image, + capture, + self.start_image_mask) start_image_threshold = split_parser.threshold_from_filename(self.start_image_name) \ or self.similaritythresholdDoubleSpinBox.value() - self.currentsimilaritythresholdnumberLabel.setText("{:.2f}".format(start_image_threshold)) + self.currentsimilaritythresholdnumberLabel.setText(f"{start_image_threshold:.2f}") start_image_flags = split_parser.flags_from_filename(self.start_image_name) start_image_delay = split_parser.delay_from_filename(self.start_image_name) # Show live similarity if the checkbox is checked self.livesimilarityLabel.setText(str(start_image_similarity)[:4] if self.showlivesimilarityCheckBox.isChecked() - else ' ') + else " ") # If the similarity becomes higher than highest similarity, set it as such. if start_image_similarity > self.highest_similarity: @@ -388,7 +442,7 @@ def startImageFunction(self): # Show live highest similarity if the checkbox is checked self.highestsimilarityLabel.setText(str(self.highest_similarity)[:4] if self.showlivesimilarityCheckBox.isChecked() - else ' ') + else " ") # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold @@ -400,11 +454,11 @@ def startImageFunction(self): if (start_image_flags & BELOW_FLAG == BELOW_FLAG and self.start_image_split_below_threshold and start_image_similarity < start_image_threshold) \ - or (start_image_similarity >= start_image_threshold and start_image_flags & BELOW_FLAG == 0): + or (start_image_similarity >= start_image_threshold and not start_image_flags & BELOW_FLAG): def split(): - self.hasSentStart = False - self.send_command("start") - time.sleep(1 / self.fpslimitSpinBox.value()) + send_command(self, "start") + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1 / self.fpslimitSpinBox.value()) # type: ignore self.startAutoSplitter() self.timerStartImage.stop() @@ -413,11 +467,12 @@ def split(): # delay start image if needed if start_image_delay > 0: self.startImageLabel.setText("Start image: delaying start...") - delay_start_time = time.time() - while time.time() - delay_start_time < (start_image_delay / 1000): - delay_time_left = round((start_image_delay / 1000) - (time.time() - delay_start_time), 1) - self.currentSplitImage.setText(f'Delayed Before Starting:\n {delay_time_left} sec remaining') - QtTest.QTest.qWait(1) + delay_start_time = time() + while time() - delay_start_time < (start_image_delay / 1000): + delay_time_left = round((start_image_delay / 1000) - (time() - delay_start_time), 1) + self.currentSplitImage.setText(f"Delayed Before Starting:\n {delay_time_left} sec remaining") + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore self.startImageLabel.setText("Start image: started") split() @@ -425,26 +480,26 @@ def split(): # update x, y, width, height when spinbox values are changed def updateX(self): try: - self.rect.left = self.xSpinBox.value() - self.rect.right = self.rect.left + self.widthSpinBox.value() + self.selection.left = self.xSpinBox.value() + self.selection.right = self.selection.left + self.widthSpinBox.value() self.checkLiveImage() except AttributeError: pass def updateY(self): try: - self.rect.top = self.ySpinBox.value() - self.rect.bottom = self.rect.top + self.heightSpinBox.value() + self.selection.top = self.ySpinBox.value() + self.selection.bottom = self.selection.top + self.heightSpinBox.value() self.checkLiveImage() except AttributeError: pass def updateWidth(self): - self.rect.right = self.rect.left + self.widthSpinBox.value() + self.selection.right = self.selection.left + self.widthSpinBox.value() self.checkLiveImage() def updateHeight(self): - self.rect.bottom = self.rect.top + self.heightSpinBox.value() + self.selection.bottom = self.selection.top + self.heightSpinBox.value() self.checkLiveImage() # update current split image. needed this to avoid updating it through the hotkey thread. @@ -453,9 +508,9 @@ def updateSplitImageGUI(self, qImage: QtGui.QImage): self.currentSplitImage.setPixmap(pix) def takeScreenshot(self): - if not self.validateBeforeComparison(check_empty_directory=False): + if not validateBeforeComparison(self, check_empty_directory=False): return - take_screenshot_filename = '001_SplitImage' + take_screenshot_filename = "001_SplitImage" # check if file exists and rename it if it does # Below starts the FileNameNumber at #001 up to #999. After that it will go to 1000, @@ -464,10 +519,10 @@ def takeScreenshot(self): while os.path.exists(os.path.join(self.split_image_directory, f"{take_screenshot_filename}.png")): FileNameNumber = (f"{i:03}") take_screenshot_filename = f"{FileNameNumber}_SplitImage" - i = i + 1 + i += 1 # grab screenshot of capture region - capture = capture_windows.capture_region(self.hwnd, self.rect) + capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # save and open image @@ -477,7 +532,7 @@ def takeScreenshot(self): # check max FPS button connects here. # TODO: Average on all images and check for transparency (cv2.COLOR_BGRA2RGB and cv2.IMREAD_UNCHANGED) def checkFPS(self): - if not self.validateBeforeComparison(): + if not validateBeforeComparison(self): return split_image_filenames = os.listdir(self.split_image_directory) @@ -485,61 +540,52 @@ def checkFPS(self): cv2.imread(os.path.join(self.split_image_directory, image), cv2.IMREAD_COLOR) for image in split_image_filenames] - for image in split_images: + for i, image in enumerate(split_images): if image is None: - error_messages.imageTypeError(image) + error_messages.imageTypeError(split_image_filenames[i]) return # grab first image in the split image folder split_image = split_images[0] split_image = cv2.cvtColor(split_image, cv2.COLOR_BGR2RGB) - split_image = cv2.resize(split_image, COMPARISON_RESIZE) + split_image = cv2.resize(split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # run 10 iterations of screenshotting capture region + comparison. count = 0 - t0 = time.time() + t0 = time() while count < 10: - - capture = capture_windows.capture_region(self.hwnd, self.rect) - capture = cv2.resize(capture, COMPARISON_RESIZE) + capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) + capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) - - if self.comparisonmethodComboBox.currentIndex() == 0: - _ = compare.compare_l2_norm(split_image, capture) - elif self.comparisonmethodComboBox.currentIndex() == 1: - _ = compare.compare_histograms(split_image, capture) - elif self.comparisonmethodComboBox.currentIndex() == 2: - _ = compare.compare_phash(split_image, capture) - - count = count + 1 + compareImage(self.comparisonmethodComboBox.currentIndex(), split_image, capture) + count += 1 # calculate FPS - t1 = time.time() + t1 = time() fps = str(int(10 / (t1 - t0))) self.fpsvalueLabel.setText(fps) def is_current_split_out_of_range(self): - return self.split_image_number < 0 or self.split_image_number > len(self.split_image_filenames_including_loops) - 1 + return self.split_image_number < 0 \ + or self.split_image_number > len(self.split_image_filenames_including_loops) - 1 # undo split button and hotkey connect to here def undoSplit(self): # Can't undo until timer is started # or Undoing past the first image - if self.startautosplitterButton.text() == 'Start Auto Splitter' or ("Delayed Split") in self.currentSplitImage.text(): - return - - if (not self.undosplitButton.isEnabled() and not self.is_auto_controlled) \ + if self.startautosplitterButton.text() == "Start Auto Splitter" \ + or "Delayed Split" in self.currentSplitImage.text() \ + or (not self.undosplitButton.isEnabled() and not self.is_auto_controlled) \ or self.is_current_split_out_of_range(): return - elif self.groupDummySplitsCheckBox.isChecked(): + if self.groupDummySplitsCheckBox.isChecked(): for i, group in enumerate(self.split_groups): if i > 0 and self.split_image_number in group: self.split_image_number = self.split_groups[i - 1][0] break - else: - self.split_image_number = self.split_image_number - 1 + self.split_image_number -= 1 self.updateSplitImage() @@ -549,10 +595,10 @@ def undoSplit(self): def skipSplit(self): # Can't skip or split until timer is started # or Splitting/skipping when there are no images left - if self.startautosplitterButton.text() == 'Start Auto Splitter' or ("Delayed Split") in self.currentSplitImage.text(): - return - - if (not self.skipsplitButton.isEnabled() and not self.is_auto_controlled) or self.is_current_split_out_of_range(): + if self.startautosplitterButton.text() == "Start Auto Splitter" \ + or "Delayed Split" in self.currentSplitImage.text() \ + or (not self.skipsplitButton.isEnabled() and not self.is_auto_controlled) \ + or self.is_current_split_out_of_range(): return if self.groupDummySplitsCheckBox.isChecked(): @@ -561,7 +607,7 @@ def skipSplit(self): self.split_image_number = group[-1] + 1 break else: - self.split_image_number = self.split_image_number + 1 + self.split_image_number += 1 self.updateSplitImage() @@ -573,16 +619,13 @@ def skipSplit(self): def reset(self): # When the reset button or hotkey is pressed, it will change this text, # which will trigger in the autoSplitter function, if running, to abort and change GUI. - self.startautosplitterButton.setText('Start Auto Splitter') - return + self.startautosplitterButton.setText("Start Auto Splitter") # Functions for the hotkeys to return to the main thread from signals and start their corresponding functions def startAutoSplitter(self): - self.hasSentStart = True - # If the auto splitter is already running or the button is disabled, don't emit the signal to start it. - if self.startautosplitterButton.text() == 'Running...' or \ - (not self.startautosplitterButton.isEnabled() and not self.is_auto_controlled): + if self.startautosplitterButton.text() == "Running..." \ + or (not self.startautosplitterButton.isEnabled() and not self.is_auto_controlled): return if self.startImageLabel.text() == "Start image: ready" or self.startImageLabel.text() == "Start image: paused": @@ -603,7 +646,7 @@ def startPause(self): self.pauseSignal.emit() def checkForReset(self): - if self.startautosplitterButton.text() == 'Start Auto Splitter': + if self.startautosplitterButton.text() == "Start Auto Splitter": if self.autostartonresetCheckBox.isChecked(): self.startAutoSplitterSignal.emit() else: @@ -612,103 +655,65 @@ def checkForReset(self): return False def autoSplitter(self): - if not self.validateBeforeComparison(): + if not validateBeforeComparison(self): + self.guiChangesOnReset() return - # get split image filenames - self.split_image_filenames = os.listdir(self.split_image_directory) - - # Make sure that each of the images follows the guidelines for correct format - # according to all of the settings selected by the user. - for image in self.split_image_filenames: - # Test for image without transparency - if (cv2.imread(os.path.join(self.split_image_directory, image), cv2.IMREAD_COLOR) is None - # Test for image with transparency - and cv2.imread(os.path.join(self.split_image_directory, image), cv2.IMREAD_UNCHANGED) is None): - # Opencv couldn't open this file as an image, this isn't a correct - # file format that is supported - self.guiChangesOnReset() - error_messages.imageTypeError(image) - return - - # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. - if (self.pausehotkeyLineEdit.text() == '' - and split_parser.flags_from_filename(image) & PAUSE_FLAG == PAUSE_FLAG - and not self.is_auto_controlled): - self.guiChangesOnReset() - error_messages.pauseHotkeyError() - return - - if self.splitLineEdit.text() == '' and not self.is_auto_controlled: + if not self.splitLineEdit.text() and not self.is_auto_controlled: self.guiChangesOnReset() error_messages.splitHotkeyError() return - # find reset image then remove it from the list - self.findResetImage() - - # find start_auto_splitter_image and then remove it from the list - self.removeStartAutoSplitterImage() - - # Check that there's only one reset image - for image in self.split_image_filenames: + # get split image filenames + self.split_image_filenames = os.listdir(self.split_image_directory) - if split_parser.is_reset_image(image): - self.guiChangesOnReset() - error_messages.multipleKeywordImagesError('reset') - return + split_parser.validate_images_before_parsing(self) - # Check that there's only one auto_start_autosplitter image - for image in self.split_image_filenames: + # find reset image then remove it from the list + self.findResetImage() - if split_parser.is_start_auto_splitter_image(image): - self.guiChangesOnReset() - error_messages.multipleKeywordImagesError('start_auto_splitter') - return + # Find start_auto_splitter_image and then remove it from the list + split_parser.removeStartAutoSplitterImage(self.split_image_filenames) - # If there is no reset hotkey set but a reset image is present, and is not auto controlled, throw an error. - if self.resetLineEdit.text() == '' and self.reset_image is not None and not self.is_auto_controlled: - self.guiChangesOnReset() - error_messages.resetHotkeyError() - return +# region TODO I feel this entire region could be simplified # construct loop amounts for each split image - self.split_image_loop_amount = [] - for i, image in enumerate(self.split_image_filenames): - self.split_image_loop_amount.append(split_parser.loop_from_filename(image)) + split_image_loop_amount = [ + split_parser.loop_from_filename(image) + for image + in self.split_image_filenames] # construct a list of filenames, each filename copied with # of loops it has. - self.split_image_filenames_including_loops: List[str] = [] + self.split_image_filenames_including_loops: list[str] = [] for i, filename in enumerate(self.split_image_filenames): current_loop = 1 - while self.split_image_loop_amount[i] >= current_loop: + while split_image_loop_amount[i] >= current_loop: self.split_image_filenames_including_loops.append(filename) current_loop = current_loop + 1 # construct a list of corresponding loop number to the filenames - self.loop_numbers: List[int] = [] + loop_numbers: list[int] = [] loop_count = 1 for i, filename in enumerate(self.split_image_filenames_including_loops): if i == 0: - self.loop_numbers.append(1) + loop_numbers.append(1) else: - if self.split_image_filenames_including_loops[i] != self.split_image_filenames_including_loops[i-1]: + if self.split_image_filenames_including_loops[i] != self.split_image_filenames_including_loops[i - 1]: loop_count = 1 - self.loop_numbers.append(loop_count) else: - loop_count = loop_count + 1 - self.loop_numbers.append(loop_count) + loop_count += 1 + loop_numbers.append(loop_count) # Merge them self.split_image_filenames_and_loop_number = [ - (filename, self.loop_numbers[i], self.split_image_filenames_including_loops.count(filename)) + (filename, loop_numbers[i], self.split_image_filenames_including_loops.count(filename)) for i, filename in enumerate(self.split_image_filenames_including_loops) ] # construct groups of splits if needed - self.split_groups = [] + self.split_groups: list[list[int]] = [] if self.groupDummySplitsCheckBox.isChecked(): - current_group = [] + current_group: list[int] = [] self.split_groups.append(current_group) for i, image in enumerate(self.split_image_filenames_including_loops): @@ -719,43 +724,41 @@ def autoSplitter(self): current_group = [] self.split_groups.append(current_group) - - # construct dummy splits array - self.dummy_splits_array = [] - for i, image in enumerate(self.split_image_filenames_including_loops): - if split_parser.flags_from_filename(image) & DUMMY_FLAG == DUMMY_FLAG: - self.dummy_splits_array.append(True) - else: - self.dummy_splits_array.append(False) +# endregion self.guiChangesOnStart() # Initialize a few attributes self.split_image_number = 0 - self.number_of_split_images = len(self.split_image_filenames_including_loops) self.waiting_for_split_delay = False self.split_below_threshold = False - - self.run_start_time = time.time() + split_time = 0 + number_of_split_images = len(self.split_image_filenames_including_loops) + dummy_splits_array = [ + split_parser.flags_from_filename(image) & DUMMY_FLAG == DUMMY_FLAG + for image + in self.split_image_filenames_including_loops] + self.run_start_time = time() + windowText = win32gui.GetWindowText(self.hwnd) # First while loop: stays in this loop until all of the split images have been split - while self.split_image_number < self.number_of_split_images: + while self.split_image_number < number_of_split_images: # Check if we are not waiting for the split delay to send the key press - if self.waiting_for_split_delay == True: - time_millis = int(round(time.time() * 1000)) - if time_millis < self.split_time: - QtWidgets.QApplication.processEvents() + if self.waiting_for_split_delay: + time_millis = int(round(time() * 1000)) + if time_millis < split_time: + QApplication.processEvents() continue self.updateSplitImage() # second while loop: stays in this loop until similarity threshold is met # skip loop if we just finished waiting for the split delay and need to press the split key! - start = time.time() + start = time() while True: # reset if the set screen region window was closed - if win32gui.GetWindowText(self.hwnd) == '': + if not windowText: self.reset() if self.checkForReset(): @@ -765,9 +768,13 @@ def autoSplitter(self): capture = self.getCaptureForComparison() if self.shouldCheckResetImage(): - reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) + reset_similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.reset_image, + capture, + self.reset_mask) if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") + send_command(self, "reset") self.reset() if self.checkForReset(): @@ -779,13 +786,17 @@ def autoSplitter(self): capture = self.getCaptureForComparison() # calculate similarity for split image - self.similarity = self.compareImage(self.split_image, self.image_mask, capture) + self.similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.split_image, + capture, + self.image_mask) # show live similarity if the checkbox is checked if self.showlivesimilarityCheckBox.isChecked(): self.livesimilarityLabel.setText(str(self.similarity)[:4]) else: - self.livesimilarityLabel.setText(' ') + self.livesimilarityLabel.setText(" ") # if the similarity becomes higher than highest similarity, set it as such. if self.similarity > self.highest_similarity: @@ -795,62 +806,61 @@ def autoSplitter(self): if self.showhighestsimilarityCheckBox.isChecked(): self.highestsimilarityLabel.setText(str(self.highest_similarity)[:4]) else: - self.highestsimilarityLabel.setText(' ') + self.highestsimilarityLabel.setText(" ") if not self.is_auto_controlled: - # if its the last split image or can't skip due to grouped dummy splits, disable the skip split button - if (self.split_image_number == self.number_of_split_images - 1) or (self.groupDummySplitsCheckBox.isChecked() == True and self.dummy_splits_array[self.split_image_number:].count(False) <= 1): - self.skipsplitButton.setEnabled(False) - else: - self.skipsplitButton.setEnabled(True) + # if its the last split image or can't skip due to grouped dummy splits, disable skip split button + is_last = self.split_image_number == number_of_split_images - 1 \ + or (self.groupDummySplitsCheckBox.isChecked() + and dummy_splits_array[self.split_image_number:].count(False) <= 1) + self.skipsplitButton.setEnabled(not is_last) # if its the first split image, disable the undo split button - if self.split_image_number == 0: - self.undosplitButton.setEnabled(False) - else: - self.undosplitButton.setEnabled(True) + self.undosplitButton.setEnabled(self.split_image_number != 0) # if the b flag is set, let similarity go above threshold first, # then split on similarity below threshold. # if no b flag, just split when similarity goes above threshold. if not self.waiting_for_split_delay: - if self.flags & BELOW_FLAG == BELOW_FLAG and not self.split_below_threshold: - if self.similarity >= self.similarity_threshold: + if self.flags & BELOW_FLAG == BELOW_FLAG: + if self.split_below_threshold: + if self.similarity < self.similarity_threshold: + self.split_below_threshold = False + break + elif self.similarity >= self.similarity_threshold: self.split_below_threshold = True continue - elif self.flags & BELOW_FLAG == BELOW_FLAG and self.split_below_threshold: - if self.similarity < self.similarity_threshold: - self.split_below_threshold = False - break elif self.similarity >= self.similarity_threshold: break # limit the number of time the comparison runs to reduce cpu usage - fps_limit = self.fpslimitSpinBox.value() - time.sleep((1 / fps_limit) - (time.time() - start) % (1 / fps_limit)) - QtWidgets.QApplication.processEvents() + frame_interval = 1 / self.fpslimitSpinBox.value() + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(frame_interval - (time() - start) % frame_interval) # type: ignore + QApplication.processEvents() # comes here when threshold gets met # We need to make sure that this isn't a dummy split before sending # the key press. - if not (self.flags & DUMMY_FLAG == DUMMY_FLAG): + if self.flags & DUMMY_FLAG != DUMMY_FLAG: # If it's a delayed split, check if the delay has passed # Otherwise calculate the split time for the key press - if self.split_delay > 0 and self.waiting_for_split_delay == False: - self.split_time = int(round(time.time() * 1000)) + self.split_delay + if self.split_delay > 0 and not self.waiting_for_split_delay: + split_time = int(round(time() * 1000) + self.split_delay) self.waiting_for_split_delay = True self.undosplitButton.setEnabled(False) self.skipsplitButton.setEnabled(False) - self.currentsplitimagefileLabel.setText(' ') + self.currentsplitimagefileLabel.setText(" ") # check for reset while delayed and display a counter of the remaining split delay time - delay_start_time = time.time() - while time.time() - delay_start_time < (self.split_delay / 1000): - delay_time_left = round((self.split_delay / 1000) - (time.time() - delay_start_time), 1) - self.currentSplitImage.setText(f'Delayed Split: {delay_time_left} sec remaining') + delay_start_time = time() + split_delay = self.split_delay / 1000 + while time() - delay_start_time < split_delay: + delay_time_left = round(split_delay - (time() - delay_start_time), 1) + self.currentSplitImage.setText(f"Delayed Split: {delay_time_left} sec remaining") # check for reset - if win32gui.GetWindowText(self.hwnd) == '': + if not windowText: self.reset() if self.checkForReset(): return @@ -859,89 +869,90 @@ def autoSplitter(self): if self.shouldCheckResetImage(): capture = self.getCaptureForComparison() - reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) + reset_similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.reset_image, + capture, + self.reset_mask) if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") + send_command(self, "reset") self.reset() continue - - QtTest.QTest.qWait(1) + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore self.waiting_for_split_delay = False # if {p} flag hit pause key, otherwise hit split hotkey - if (self.flags & PAUSE_FLAG == PAUSE_FLAG): - self.send_command("pause") - else: - self.send_command("split") + send_command(self, "pause" if self.flags & PAUSE_FLAG == PAUSE_FLAG else "split") # if loop check box is checked and its the last split, go to first split. # else go to the next split image. - if self.loopCheckBox.isChecked() and self.split_image_number == self.number_of_split_images - 1: + if self.loopCheckBox.isChecked() and self.split_image_number == number_of_split_images - 1: self.split_image_number = 0 else: - self.split_image_number = self.split_image_number + 1 + self.split_image_number += 1 - # set a "pause" split image number. This is done so that it can detect if user hit split/undo split while paused. + # Set a "pause" split image number. + # This is done so that it can detect if user hit split/undo split while paused. pause_split_image_number = self.split_image_number # if its not the last split image, pause for the amount set by the user - if self.number_of_split_images != self.split_image_number: + if number_of_split_images != self.split_image_number: if not self.is_auto_controlled: - # if its the last split image and last loop number, disable the skip split button - if self.split_image_number == self.number_of_split_images - 1 or (self.groupDummySplitsCheckBox.isChecked() == True and self.dummy_splits_array[self.split_image_number:].count(False) <= 1): - self.skipsplitButton.setEnabled(False) - else: - self.skipsplitButton.setEnabled(True) + # if its the last split image and last loop number, disable skip split button + is_last = self.split_image_number == number_of_split_images - 1 \ + or (self.groupDummySplitsCheckBox.isChecked() + and dummy_splits_array[self.split_image_number:].count(False) <= 1) + self.skipsplitButton.setEnabled(not is_last) # if its the first split image, disable the undo split button - if self.split_image_number == 0: - self.undosplitButton.setEnabled(False) - else: - self.undosplitButton.setEnabled(True) - - QtWidgets.QApplication.processEvents() - - # I have a pause loop here so that it can check if the user presses skip split, undo split, or reset here. - # Also updates the current split image text, counting down the time until the next split image - if self.pause > 0: - self.currentsplitimagefileLabel.setText(' ') - self.imageloopLabel.setText('Image Loop: -') - pause_start_time = time.time() - while time.time() - pause_start_time < self.pause: - pause_time_left = round(self.pause - (time.time() - pause_start_time), 1) - self.currentSplitImage.setText(f'None (Paused). {pause_time_left} sec remaining') - - # check for reset - if win32gui.GetWindowText(self.hwnd) == '': - self.reset() - if self.checkForReset(): - return - - # check for skip/undo split: - if self.split_image_number != pause_split_image_number: - break - - # calculate similarity for reset image - if self.shouldCheckResetImage(): - capture = self.getCaptureForComparison() + self.undosplitButton.setEnabled(self.split_image_number != 0) + QApplication.processEvents() + + # A pause loop to check if the user presses skip split, undo split, or reset here. + # Also updates the current split image text, counting down the time until the next split image + if self.pause > 0: + self.currentsplitimagefileLabel.setText(" ") + self.imageloopLabel.setText("Image Loop: -") + pause_start_time = time() + while time() - pause_start_time < self.pause: + pause_time_left = round(self.pause - (time() - pause_start_time), 1) + self.currentSplitImage.setText(f"None (Paused). {pause_time_left} sec remaining") + + # check for reset + if not windowText: + self.reset() + if self.checkForReset(): + return - reset_similarity = self.compareImage(self.reset_image, self.reset_mask, capture) - if reset_similarity >= self.reset_image_threshold: - self.send_command("reset") - self.reset() - continue + # check for skip/undo split: + if self.split_image_number != pause_split_image_number: + break - QtTest.QTest.qWait(1) + # calculate similarity for reset image + if self.shouldCheckResetImage(): + capture = self.getCaptureForComparison() + + reset_similarity = compareImage( + self.comparisonmethodComboBox.currentIndex(), + self.reset_image, + capture, + self.reset_mask) + if reset_similarity >= self.reset_image_threshold: + send_command(self, "reset") + self.reset() + continue + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore # loop breaks to here when the last image splits self.guiChangesOnReset() - def guiChangesOnStart(self): self.timerStartImage.stop() - self.startautosplitterButton.setText('Running...') + self.startautosplitterButton.setText("Running...") self.browseButton.setEnabled(False) self.groupDummySplitsCheckBox.setEnabled(False) self.startImageReloadButton.setEnabled(False) @@ -957,17 +968,16 @@ def guiChangesOnStart(self): self.setundosplithotkeyButton.setEnabled(False) self.setpausehotkeyButton.setEnabled(False) - QtWidgets.QApplication.processEvents() - + QApplication.processEvents() def guiChangesOnReset(self): - self.startautosplitterButton.setText('Start Auto Splitter') - self.imageloopLabel.setText('Image Loop: -') - self.currentSplitImage.setText(' ') - self.currentsplitimagefileLabel.setText(' ') - self.livesimilarityLabel.setText(' ') - self.highestsimilarityLabel.setText(' ') - self.currentsimilaritythresholdnumberLabel.setText(' ') + self.startautosplitterButton.setText("Start Auto Splitter") + self.imageloopLabel.setText("Image Loop: -") + self.currentSplitImage.setText(" ") + self.currentsplitimagefileLabel.setText(" ") + self.livesimilarityLabel.setText(" ") + self.highestsimilarityLabel.setText(" ") + self.currentsimilaritythresholdnumberLabel.setText(" ") self.browseButton.setEnabled(True) self.groupDummySplitsCheckBox.setEnabled(True) self.startImageReloadButton.setEnabled(True) @@ -983,49 +993,25 @@ def guiChangesOnReset(self): self.setundosplithotkeyButton.setEnabled(True) self.setpausehotkeyButton.setEnabled(True) - QtWidgets.QApplication.processEvents() + QApplication.processEvents() self.loadStartImage(False, False) - - def compareImage(self, image, mask, capture): - if image is None or capture is None: - return 0.0 - if mask is None: - if self.comparisonmethodComboBox.currentIndex() == 0: - return compare.compare_l2_norm(image, capture) - elif self.comparisonmethodComboBox.currentIndex() == 1: - return compare.compare_histograms(image, capture) - elif self.comparisonmethodComboBox.currentIndex() == 2: - return compare.compare_phash(image, capture) - else: - if self.comparisonmethodComboBox.currentIndex() == 0: - return compare.compare_l2_norm_masked(image, capture, mask) - elif self.comparisonmethodComboBox.currentIndex() == 1: - return compare.compare_histograms_masked(image, capture, mask) - elif self.comparisonmethodComboBox.currentIndex() == 2: - return compare.compare_phash_masked(image, capture, mask) - return 0.0 - def getCaptureForComparison(self): # grab screenshot of capture region - capture = capture_windows.capture_region(self.hwnd, self.rect) - # Capture with nearest neighbor interpolation only if the split image has transparency to support older setups - if self.imageHasTransparency: - capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - else: - capture = cv2.resize(capture, COMPARISON_RESIZE) + capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) + capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # convert to BGR return cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) def shouldCheckResetImage(self): - return self.reset_image is not None and time.time() - self.run_start_time > self.reset_image_pause_time + return self.reset_image is not None and time() - self.run_start_time > self.reset_image_pause_time def findResetImage(self): self.reset_image = None self.reset_mask = None reset_image_file = None - for i, image in enumerate(self.split_image_filenames): + for image in self.split_image_filenames: if split_parser.is_reset_image(image): reset_image_file = image break @@ -1053,34 +1039,22 @@ def findResetImage(self): error_messages.imageTypeError(path) return # if image has transparency, create a mask - if compare.checkIfImageHasTransparency(self.reset_image): + if checkIfImageHasTransparency(self.reset_image): self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Create mask based on resized, nearest neighbor interpolated split image lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([255, 255, 255, 255], dtype="uint8") + upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") self.reset_mask = cv2.inRange(self.reset_image, lower, upper) # set split image as BGR self.reset_image = cv2.cvtColor(self.reset_image, cv2.COLOR_BGRA2BGR) - # otherwise, open image normally. Capture with nearest neighbor interpolation only if the split image has transparency to support older setups + # otherwise, open image normally. else: self.reset_image = cv2.imread(path, cv2.IMREAD_COLOR) - self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE) - - def removeStartAutoSplitterImage(self): - start_auto_splitter_image_file = None - for _, image in enumerate(self.split_image_filenames): - if split_parser.is_start_auto_splitter_image(image): - start_auto_splitter_image_file = image - break - - if start_auto_splitter_image_file is None: - return - - self.split_image_filenames.remove(start_auto_splitter_image_file) + self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = False): + def updateSplitImage(self, custom_image_file: str = "", from_start_image: bool = False): # Splitting/skipping when there are no images left or Undoing past the first image # Start image is expected to be out of range (index 0 of 0-length array) if "START_AUTO_SPLITTER" not in custom_image_file.upper() and self.is_current_split_out_of_range(): @@ -1098,35 +1072,34 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = if self.split_image is None: error_messages.imageTypeError(self.split_image_path) return - self.imageHasTransparency = compare.checkIfImageHasTransparency(self.split_image) + self.imageHasTransparency = checkIfImageHasTransparency(self.split_image) # if image has transparency, create a mask if self.imageHasTransparency: split_image_display = copy(self.split_image) # Transform transparency into UI's gray BG color transparent_mask = split_image_display[:, :, 3] == 0 - split_image_display[:, :, 3] == 0 - split_image_display[transparent_mask] = [240, 240, 240, 255] + split_image_display[transparent_mask] = [240, 240, 240, MAXBYTE] split_image_display = cv2.cvtColor(split_image_display, cv2.COLOR_BGRA2RGB) self.split_image = cv2.resize(self.split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Create mask based on resized, nearest neighbor interpolated split image lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([255, 255, 255, 255], dtype="uint8") + upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") self.image_mask = cv2.inRange(self.split_image, lower, upper) # set split image as BGR self.split_image = cv2.cvtColor(self.split_image, cv2.COLOR_BGRA2BGR) - # otherwise, open image normally. don't interpolate nearest neighbor here so setups before 1.2.0 still work. + # otherwise, open image normally. else: self.split_image = cv2.imread(self.split_image_path, cv2.IMREAD_COLOR) split_image_display = cv2.cvtColor(copy(self.split_image), cv2.COLOR_BGR2RGB) - self.split_image = cv2.resize(self.split_image, COMPARISON_RESIZE) + self.split_image = cv2.resize(self.split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) self.image_mask = None split_image_display = cv2.resize(split_image_display, DISPLAY_RESIZE) # Set current split image in UI - qImage = QtGui.QImage(split_image_display, + qImage = QtGui.QImage(cast(bytes, split_image_display), split_image_display.shape[1], split_image_display.shape[0], split_image_display.shape[1] * 3, @@ -1143,7 +1116,7 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = self.similarity_threshold = self.similaritythresholdDoubleSpinBox.value() \ if threshold_from_filename is None \ else threshold_from_filename - self.currentsimilaritythresholdnumberLabel.setText("{:.2f}".format(self.similarity_threshold)) + self.currentsimilaritythresholdnumberLabel.setText(f"{self.similarity_threshold:.2f}") # Get delay for split, if any self.split_delay = split_parser.delay_from_filename(split_image_file) @@ -1162,10 +1135,10 @@ def updateSplitImage(self, custom_image_file: str = '', from_start_image: bool = self.highest_similarity = 0.001 # exit safely when closing the window - def closeEvent(self, event: QtGui.QCloseEvent = None): - def exit(): - if event is not None: - event.accept() + def closeEvent(self, a0: Optional[QtGui.QCloseEvent] = None): + def exitProgram(): + if a0 is not None: + a0.accept() if self.is_auto_controlled: self.update_auto_control.terminate() # stop main thread (which is probably blocked reading input) via an interrupt signal @@ -1176,50 +1149,40 @@ def exit(): # Simulates LiveSplit quitting without asking. See "TODO" at update_auto_control Worker # This also more gracefully exits LiveSplit # Users can still manually save their settings - if event is None: - exit() + if a0 is None: + exitProgram() - if self.haveSettingsChanged(): - # give a different warning if there was never a settings file that was loaded successfully, and save as instead of save. - msgBox = QtWidgets.QMessageBox + if settings.haveSettingsChanged(self): + # Give a different warning if there was never a settings file that was loaded successfully, + # and "save as" instead of "save". settings_file_name = "Untitled" \ if self.last_successfully_loaded_settings_file_path is None \ else os.path.basename(self.last_successfully_loaded_settings_file_path) warning_message = f"Do you want to save changes made to settings file {settings_file_name}?" - warning = msgBox.warning( + warning = QMessageBox.warning( self, "AutoSplit", warning_message, - msgBox.StandardButton.Yes | msgBox.StandardButton.No | msgBox.StandardButton.Cancel) + QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No | QMessageBox.StandardButton.Cancel) - if warning == msgBox.StandardButton.Yes: + if warning is QMessageBox.StandardButton.Yes: # TODO: Don't close if user cancelled the save self.saveSettingsAs() - exit() - if warning == msgBox.StandardButton.No: - exit() - if warning == msgBox.StandardButton.Cancel: - event.ignore() + exitProgram() + if warning is QMessageBox.StandardButton.No: + exitProgram() + if warning is QMessageBox.StandardButton.Cancel: + a0.ignore() else: - exit() - - -def excepthook(exception: BaseException, main_window: AutoSplit): - # Catch Keyboard Interrupts for a clean close - if type(exception) is KeyboardInterrupt: - sys.exit(0) - main_window.showErrorSignal.emit(lambda: error_messages.exceptionTraceback( - "AutoSplit encountered an unhandled exception and will try to recover, " - f"however, there is no guarantee everything will work properly. {CREATE_NEW_ISSUE_MESSAGE}", - exception)) \ + exitProgram() def main(): # Call to QApplication outside the try-except so we can show error messages - app = QtWidgets.QApplication(sys.argv) + app = QApplication(sys.argv) try: - app.setWindowIcon(QtGui.QIcon(':/resources/icon.ico')) + app.setWindowIcon(QtGui.QIcon(":/resources/icon.ico")) AutoSplit() # Kickoff the event loop every so often so we can handle KeyboardInterrupt (^C) @@ -1228,7 +1191,7 @@ def main(): timer.start(500) exit_code = app.exec() - except Exception as exception: + except Exception as exception: # pylint: disable=broad-except message = f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}" # Print error to console if not running in executable if FROZEN: @@ -1239,10 +1202,10 @@ def main(): sys.exit(1) # Catch Keyboard Interrupts for a clean close - signal.signal(signal.SIGINT, lambda code, _: sys.exit(code)) + signal.signal(signal.SIGINT, lambda code, _: sys.exit(code)) sys.exit(exit_code) -if __name__ == '__main__': +if __name__ == "__main__": main() diff --git a/src/about.py b/src/about.py deleted file mode 100644 index a4303bca..00000000 --- a/src/about.py +++ /dev/null @@ -1,58 +0,0 @@ -# Form implementation generated from reading ui file '.\res\about.ui' -# -# Created by: PyQt6 UI code generator 6.1.0 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt6 import QtCore, QtGui, QtWidgets - - -class Ui_aboutAutoSplitWidget(object): - def setupUi(self, aboutAutoSplitWidget): - aboutAutoSplitWidget.setObjectName("aboutAutoSplitWidget") - aboutAutoSplitWidget.resize(264, 250) - aboutAutoSplitWidget.setMinimumSize(QtCore.QSize(264, 250)) - aboutAutoSplitWidget.setMaximumSize(QtCore.QSize(264, 250)) - font = QtGui.QFont() - font.setPointSize(9) - aboutAutoSplitWidget.setFont(font) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(":/resources/icon.ico"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) - aboutAutoSplitWidget.setWindowIcon(icon) - self.okButton = QtWidgets.QPushButton(aboutAutoSplitWidget) - self.okButton.setGeometry(QtCore.QRect(180, 220, 75, 24)) - self.okButton.setObjectName("okButton") - self.createdbyLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.createdbyLabel.setGeometry(QtCore.QRect(10, 44, 161, 32)) - self.createdbyLabel.setObjectName("createdbyLabel") - self.versionLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.versionLabel.setGeometry(QtCore.QRect(10, 21, 161, 16)) - self.versionLabel.setObjectName("versionLabel") - self.donatetextLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.donatetextLabel.setGeometry(QtCore.QRect(30, 95, 204, 32)) - self.donatetextLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.donatetextLabel.setObjectName("donatetextLabel") - self.donatebuttonLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.donatebuttonLabel.setGeometry(QtCore.QRect(60, 150, 147, 47)) - self.donatebuttonLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.donatebuttonLabel.setObjectName("donatebuttonLabel") - self.iconLabel = QtWidgets.QLabel(aboutAutoSplitWidget) - self.iconLabel.setGeometry(QtCore.QRect(190, 17, 62, 71)) - self.iconLabel.setObjectName("iconLabel") - - self.retranslateUi(aboutAutoSplitWidget) - self.okButton.clicked.connect(aboutAutoSplitWidget.close) - QtCore.QMetaObject.connectSlotsByName(aboutAutoSplitWidget) - - def retranslateUi(self, aboutAutoSplitWidget): - _translate = QtCore.QCoreApplication.translate - aboutAutoSplitWidget.setWindowTitle(_translate("aboutAutoSplitWidget", "About AutoSplit")) - self.okButton.setText(_translate("aboutAutoSplitWidget", "OK")) - self.createdbyLabel.setText(_translate("aboutAutoSplitWidget", "

Created by Toufool and Faschz
Maintained by Avasam

")) - self.versionLabel.setText(_translate("aboutAutoSplitWidget", "Version: ")) - self.donatetextLabel.setText(_translate("aboutAutoSplitWidget", "If you enjoy using this program, please\n" -"consider donating. Thank you!")) - self.donatebuttonLabel.setText(_translate("aboutAutoSplitWidget", "

")) - self.iconLabel.setText(_translate("aboutAutoSplitWidget", "

")) diff --git a/src/capture_windows.py b/src/capture_windows.py index 15a7dfee..2f6fe1aa 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -1,71 +1,85 @@ from __future__ import annotations -from typing import Dict +from typing import cast -from ctypes import windll -from ctypes.wintypes import LONG, RECT, HBITMAP -from packaging import version -from win32 import win32gui +import ctypes +import ctypes.wintypes import platform -import pywintypes +from dataclasses import dataclass + +import cv2 import numpy as np -import win32ui import win32con - +import win32ui +import pywintypes +from packaging import version +from win32 import win32gui +from win32typing import PyCBitmap, PyCDC # This is an undocumented nFlag value for PrintWindow PW_RENDERFULLCONTENT = 0x00000002 -accelerated_windows: Dict[int, bool] = {} +accelerated_windows: dict[int, bool] = {} is_windows_11 = version.parse(platform.version()) >= version.parse("10.0.22000") -def capture_region(hwnd: int, rect: RECT): +# ctypes.wintypes.RECT has c_long which doesn't have math operators implemented +@dataclass +class Rect(ctypes.wintypes.RECT): + left: int = -1 # type: ignore + top: int = -1 # type: ignore + right: int = -1 # type: ignore + bottom: int = -1 # type: ignore + + +def capture_region(hwnd: int, selection: Rect, forcePrintWindow: bool): """ Captures an image of the region for a window matching the given parameters of the bounding box @param hwnd: Handle to the window being captured - @param rect: The coordinates of the region + @param selection: The coordinates of the region @return: The image of the region in the window in BGRA format """ # Windows 11 has some jank, and we're not ready to fully investigate it # for now let's ensure it works at the cost of performance - is_accelerated_window = is_windows_11 or accelerated_windows.get(hwnd) + is_accelerated_window = forcePrintWindow or is_windows_11 or accelerated_windows.get(hwnd) # The window type is not yet known, let's find out! if is_accelerated_window is None: # We need to get the image at least once to check if it's full black - image = __get_image(hwnd, rect, False) + image = __get_image(hwnd, selection, False) # TODO check for first non-black pixel, no need to iterate through the whole image is_accelerated_window = not np.count_nonzero(image) accelerated_windows[hwnd] = is_accelerated_window - return __get_image(hwnd, rect, True) if is_accelerated_window else image + return __get_image(hwnd, selection, True) if is_accelerated_window else image - return __get_image(hwnd, rect, is_accelerated_window) + return __get_image(hwnd, selection, is_accelerated_window) -def __get_image(hwnd: int, rect: RECT, print_window: bool = False): - width: LONG = rect.right - rect.left - height: LONG = rect.bottom - rect.top +def __get_image(hwnd: int, selection: Rect, print_window: bool = False): + width: int = selection.right - selection.left + height: int = selection.bottom - selection.top # If the window closes while it's being manipulated, it could cause a crash try: windowDC: int = win32gui.GetWindowDC(hwnd) - dcObject = win32ui.CreateDCFromHandle(windowDC) + # https://github.com/kaluluosi/pywin32-stubs/issues/6 + dcObject: PyCDC = win32ui.CreateDCFromHandle(windowDC) # type: ignore # Causes a 10-15x performance drop. But allows recording hardware accelerated windows - if (print_window): - windll.user32.PrintWindow(hwnd, dcObject.GetSafeHdc(), PW_RENDERFULLCONTENT) + if print_window: + ctypes.windll.user32.PrintWindow(hwnd, dcObject.GetSafeHdc(), PW_RENDERFULLCONTENT) - compatibleDC = dcObject.CreateCompatibleDC() - bitmap: HBITMAP = win32ui.CreateBitmap() + compatibleDC = cast(PyCDC, dcObject.CreateCompatibleDC()) + bitmap: PyCBitmap = win32ui.CreateBitmap() bitmap.CreateCompatibleBitmap(dcObject, width, height) compatibleDC.SelectObject(bitmap) - compatibleDC.BitBlt((0, 0), (width, height), dcObject, (rect.left, rect.top), win32con.SRCCOPY) - except (win32ui.error, pywintypes.error): - errorImage = np.array([0, 0, 0, 1], dtype="uint8") - return errorImage + compatibleDC.BitBlt((0, 0), (width, height), dcObject, (selection.left, selection.top), win32con.SRCCOPY) + # https://github.com/kaluluosi/pywin32-stubs/issues/5 + # pylint: disable=no-member + except (win32ui.error, pywintypes.error): # type: ignore + return np.array([0, 0, 0, 1], dtype="uint8") - image: np._BufferType = np.frombuffer(bitmap.GetBitmapBits(True), dtype='uint8') + image: cv2.ndarray = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") image.shape = (height, width, 4) try: @@ -73,7 +87,8 @@ def __get_image(hwnd: int, rect: RECT, print_window: bool = False): compatibleDC.DeleteDC() win32gui.ReleaseDC(hwnd, windowDC) win32gui.DeleteObject(bitmap.GetHandle()) - except win32ui.error: + # https://github.com/kaluluosi/pywin32-stubs/issues/5 + except win32ui.error: # type: ignore pass return image diff --git a/src/compare.py b/src/compare.py index a9656c52..7faae841 100644 --- a/src/compare.py +++ b/src/compare.py @@ -1,30 +1,37 @@ +from __future__ import annotations +from typing import Optional from PIL import Image +from win32con import MAXBYTE import cv2 -import imagehash +import imagehash # https://github.com/JohannesBuchner/imagehash/issues/151 import numpy as np +MAXRANGE = MAXBYTE + 1 +channels = [0, 1, 2] +histSize = [8, 8, 8] +ranges = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] -def compare_histograms(source, capture) -> float: - """ - Compares two images by calculating their histograms, normalizing them, and - then comparing them using Bhattacharyya distance. - - @param source: 3 color image of any given width and height - @param capture: An image matching the dimensions of the source - @return: The similarity between the histograms as a number 0 to 1. - """ - source_hist = cv2.calcHist([source], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256]) - capture_hist = cv2.calcHist([capture], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256]) +def compareImage( + comparisonMethod: int, + image: Optional[cv2.ndarray], + capture: Optional[cv2.ndarray], + mask: Optional[cv2.ndarray] = None +): + if image is None or capture is None: + return 0.0 + if comparisonMethod == 0: + return compare_l2_norm(image, capture, mask) + if comparisonMethod == 1: + return compare_histograms(image, capture, mask) + if comparisonMethod == 2: + return compare_phash(image, capture, mask) + return 0.0 - cv2.normalize(source_hist, source_hist) - cv2.normalize(capture_hist, capture_hist) - - return 1 - cv2.compareHist(source_hist, capture_hist, cv2.HISTCMP_BHATTACHARYYA) -def compare_histograms_masked(source, capture, mask) -> float: +def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: """ - Compares two images by calculating their histograms using a mask, normalizing + Compares two images by calculating their histograms, normalizing them, and then comparing them using Bhattacharyya distance. @param source: 3 color image of any given width and height @@ -32,110 +39,65 @@ def compare_histograms_masked(source, capture, mask) -> float: @param mask: An image matching the dimensions of the source, but 1 channel grayscale @return: The similarity between the histograms as a number 0 to 1. """ - source_hist = cv2.calcHist([source], [0, 1, 2], mask, [8, 8, 8], [0, 256, 0, 256, 0, 256]) - capture_hist = cv2.calcHist([capture], [0, 1, 2], mask, [8, 8, 8], [0, 256, 0, 256, 0, 256]) + + source_hist = cv2.calcHist([source], channels, mask, histSize, ranges) + capture_hist = cv2.calcHist([capture], channels, mask, histSize, ranges) cv2.normalize(source_hist, source_hist) cv2.normalize(capture_hist, capture_hist) return 1 - cv2.compareHist(source_hist, capture_hist, cv2.HISTCMP_BHATTACHARYYA) -def compare_l2_norm(source, capture) -> float: - """ - Compares two images by calculating the L2 Error (square-root - of sum of squared error) - - @param source: Image of any given shape - @param capture: Image matching the dimensions of the source - @return: The similarity between the images as a number 0 to 1. - """ - error = cv2.norm(source, capture, cv2.NORM_L2) - - # The L2 Error is summed across all pixels, so this normalizes - max_error = (source.size ** 0.5) * 255 - - return 1 - (error / max_error) -def compare_l2_norm_masked(source, capture, mask) -> float: +def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): """ - Compares two images by calculating the L2 Error (square-root - of sum of squared error) - + Compares two images by calculating the L2 Error (square-root of sum of squared error) @param source: Image of any given shape @param capture: Image matching the dimensions of the source @param mask: An image matching the dimensions of the source, but 1 channel grayscale @return: The similarity between the images as a number 0 to 1. """ - error = cv2.norm(source, capture, cv2.NORM_L2, mask) + # https://github.com/microsoft/pylance-release/issues/2089 + error = cv2.norm(source, capture, cv2.NORM_L2, mask) # type: ignore # The L2 Error is summed across all pixels, so this normalizes - max_error = (3 * np.count_nonzero(mask) * 255 * 255) ** 0.5 + max_error = (source.size ** 0.5) * MAXBYTE \ + if mask is None \ + else (3 * np.count_nonzero(mask) * MAXBYTE * MAXBYTE) ** 0.5 if not max_error: return 0 return 1 - (error / max_error) -def compare_template(source, capture) -> float: + +def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: """ - Checks if the source is located within the capture by using - the sum of square differences. + Checks if the source is located within the capture by using the sum of square differences. + The mask is used to search for non-rectangular images within the capture @param source: The subsection being searched for within the capture @param capture: Capture of an image larger than the source + @param mask: The mask of the source with the same dimensions @return: The best similarity for a region found in the image. This is represented as a number from 0 to 1. """ - result = cv2.matchTemplate(capture, source, cv2.TM_SQDIFF) - min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) + result = cv2.matchTemplate(capture, source, cv2.TM_SQDIFF, mask=mask) + min_val, *_ = cv2.minMaxLoc(result) # matchTemplate returns the sum of square differences, this is the max # that the value can be. Used for normalizing from 0 to 1. - max_error = source.size * 255 * 255 + max_error = source.size * MAXBYTE * MAXBYTE \ + if mask is None \ + else np.count_nonzero(mask) return 1 - (min_val / max_error) -def compare_template_masked(source, capture, mask) -> float: - """ - Checks if the source is located within the capture by using - the sum of square differences. The mask is used to search for - non-rectangular images within the capture - - @param source: The subsection being searched for within the capture - @param capture: Capture of an image larger than the source - @param mask: The mask of the source with the same dimensions - @return: The best similarity for a region found in the image. This is - represented as a number from 0 to 1. - """ - - result = cv2.matchTemplate(capture, source, cv2.TM_SQDIFF, None, mask) - min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) - return 1 - (min_val/np.count_nonzero(mask)) - -def compare_phash(source, capture): +def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: """ - Compares the pHash of the two given images and returns the similarity between - the two. - - @param source: Image of any given shape as a numpy array - @param capture: Image of any given shape as a numpy array - @return: The similarity between the hashes of the image as a number 0 to 1. - """ - - source = Image.fromarray(source) - capture = Image.fromarray(capture) - - source_hash = imagehash.phash(source) - capture_hash = imagehash.phash(capture) - - return 1 - ((source_hash - capture_hash) / 64.0) - -def compare_phash_masked(source, capture, mask): - """ - Compares the pHash of the two given images and returns the similarity between - the two. + Compares the pHash of the two given images and returns the similarity between the two. @param source: Image of any given shape as a numpy array @param capture: Image of any given shape as a numpy array @@ -148,21 +110,19 @@ def compare_phash_masked(source, capture, mask): # each of the images. As a result of this, this function is not going to be very # helpful for large masks as the images when shrinked down to 8x8 will mostly be # the same - source = cv2.bitwise_and(source, source, mask=mask) - capture = cv2.bitwise_and(capture, capture, mask=mask) - - source = Image.fromarray(source) - capture = Image.fromarray(capture) - - source_hash = imagehash.phash(source) - capture_hash = imagehash.phash(capture) - - if not source_hash + capture_hash: + if mask: + source = cv2.bitwise_and(source, source, mask=mask) + capture = cv2.bitwise_and(capture, capture, mask=mask) + + source_hash = imagehash.phash(Image.fromarray(source)) + capture_hash = imagehash.phash(Image.fromarray(capture)) + hash_diff = source_hash - capture_hash + if not hash_diff: return 0 - return 1 - ((source_hash - capture_hash) / 64.0) + return 1 - (hash_diff / 64.0) -def checkIfImageHasTransparency(image): +def checkIfImageHasTransparency(image: cv2.ndarray) -> bool: # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) if image.shape[2] != 4: return False diff --git a/src/design.py b/src/design.py deleted file mode 100644 index 28f0990c..00000000 --- a/src/design.py +++ /dev/null @@ -1,502 +0,0 @@ -# Form implementation generated from reading ui file '.\res\design.ui' -# -# Created by: PyQt6 UI code generator 6.1.0 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt6 import QtCore, QtGui, QtWidgets - - -class Ui_MainWindow(object): - def setupUi(self, MainWindow): - MainWindow.setObjectName("MainWindow") - MainWindow.resize(632, 490) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth()) - MainWindow.setSizePolicy(sizePolicy) - MainWindow.setMinimumSize(QtCore.QSize(632, 490)) - MainWindow.setMaximumSize(QtCore.QSize(632, 490)) - font = QtGui.QFont() - font.setPointSize(9) - MainWindow.setFont(font) - icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(":/resources/icon.ico"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) - MainWindow.setWindowIcon(icon) - MainWindow.setWhatsThis("") - MainWindow.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight) - self.centralwidget = QtWidgets.QWidget(MainWindow) - self.centralwidget.setObjectName("centralwidget") - self.splitimagefolderLabel = QtWidgets.QLabel(self.centralwidget) - self.splitimagefolderLabel.setGeometry(QtCore.QRect(20, 12, 98, 16)) - self.splitimagefolderLabel.setObjectName("splitimagefolderLabel") - self.splitimagefolderLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.splitimagefolderLineEdit.setGeometry(QtCore.QRect(130, 10, 412, 22)) - self.splitimagefolderLineEdit.setReadOnly(True) - self.splitimagefolderLineEdit.setObjectName("splitimagefolderLineEdit") - self.browseButton = QtWidgets.QPushButton(self.centralwidget) - self.browseButton.setGeometry(QtCore.QRect(540, 9, 75, 24)) - self.browseButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.browseButton.setObjectName("browseButton") - self.xLabel = QtWidgets.QLabel(self.centralwidget) - self.xLabel.setGeometry(QtCore.QRect(25, 145, 7, 16)) - self.xLabel.setObjectName("xLabel") - self.liveimageCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.liveimageCheckBox.setEnabled(True) - self.liveimageCheckBox.setGeometry(QtCore.QRect(120, 252, 129, 20)) - self.liveimageCheckBox.setChecked(True) - self.liveimageCheckBox.setTristate(False) - self.liveimageCheckBox.setObjectName("liveimageCheckBox") - self.selectregionButton = QtWidgets.QPushButton(self.centralwidget) - self.selectregionButton.setGeometry(QtCore.QRect(5, 70, 101, 23)) - self.selectregionButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.selectregionButton.setObjectName("selectregionButton") - self.similaritythresholdLabel = QtWidgets.QLabel(self.centralwidget) - self.similaritythresholdLabel.setGeometry(QtCore.QRect(7, 410, 151, 16)) - self.similaritythresholdLabel.setObjectName("similaritythresholdLabel") - self.similaritythresholdDoubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) - self.similaritythresholdDoubleSpinBox.setGeometry(QtCore.QRect(155, 408, 61, 22)) - self.similaritythresholdDoubleSpinBox.setMaximum(1.0) - self.similaritythresholdDoubleSpinBox.setSingleStep(0.01) - self.similaritythresholdDoubleSpinBox.setProperty("value", 0.9) - self.similaritythresholdDoubleSpinBox.setObjectName("similaritythresholdDoubleSpinBox") - self.startautosplitterButton = QtWidgets.QPushButton(self.centralwidget) - self.startautosplitterButton.setGeometry(QtCore.QRect(500, 425, 121, 31)) - self.startautosplitterButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.startautosplitterButton.setObjectName("startautosplitterButton") - self.resetButton = QtWidgets.QPushButton(self.centralwidget) - self.resetButton.setGeometry(QtCore.QRect(500, 390, 121, 31)) - self.resetButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.resetButton.setObjectName("resetButton") - self.undosplitButton = QtWidgets.QPushButton(self.centralwidget) - self.undosplitButton.setGeometry(QtCore.QRect(494, 250, 64, 24)) - self.undosplitButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.undosplitButton.setObjectName("undosplitButton") - self.skipsplitButton = QtWidgets.QPushButton(self.centralwidget) - self.skipsplitButton.setGeometry(QtCore.QRect(560, 250, 61, 24)) - self.skipsplitButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.skipsplitButton.setObjectName("skipsplitButton") - self.pauseLabel = QtWidgets.QLabel(self.centralwidget) - self.pauseLabel.setGeometry(QtCore.QRect(7, 439, 131, 16)) - self.pauseLabel.setObjectName("pauseLabel") - self.checkfpsButton = QtWidgets.QPushButton(self.centralwidget) - self.checkfpsButton.setGeometry(QtCore.QRect(5, 225, 53, 21)) - self.checkfpsButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.checkfpsButton.setObjectName("checkfpsButton") - self.fpsLabel = QtWidgets.QLabel(self.centralwidget) - self.fpsLabel.setGeometry(QtCore.QRect(87, 225, 20, 20)) - self.fpsLabel.setObjectName("fpsLabel") - self.showlivesimilarityCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.showlivesimilarityCheckBox.setEnabled(True) - self.showlivesimilarityCheckBox.setGeometry(QtCore.QRect(7, 323, 124, 20)) - self.showlivesimilarityCheckBox.setChecked(True) - self.showlivesimilarityCheckBox.setTristate(False) - self.showlivesimilarityCheckBox.setObjectName("showlivesimilarityCheckBox") - self.showhighestsimilarityCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.showhighestsimilarityCheckBox.setEnabled(True) - self.showhighestsimilarityCheckBox.setGeometry(QtCore.QRect(7, 350, 145, 20)) - self.showhighestsimilarityCheckBox.setChecked(True) - self.showhighestsimilarityCheckBox.setTristate(False) - self.showhighestsimilarityCheckBox.setObjectName("showhighestsimilarityCheckBox") - self.livesimilarityLabel = QtWidgets.QLabel(self.centralwidget) - self.livesimilarityLabel.setGeometry(QtCore.QRect(171, 326, 46, 16)) - self.livesimilarityLabel.setText("") - self.livesimilarityLabel.setObjectName("livesimilarityLabel") - self.highestsimilarityLabel = QtWidgets.QLabel(self.centralwidget) - self.highestsimilarityLabel.setGeometry(QtCore.QRect(171, 352, 46, 16)) - self.highestsimilarityLabel.setText("") - self.highestsimilarityLabel.setObjectName("highestsimilarityLabel") - self.splitLabel = QtWidgets.QLabel(self.centralwidget) - self.splitLabel.setGeometry(QtCore.QRect(230, 317, 58, 16)) - self.splitLabel.setObjectName("splitLabel") - self.resetLabel = QtWidgets.QLabel(self.centralwidget) - self.resetLabel.setGeometry(QtCore.QRect(230, 341, 28, 16)) - self.resetLabel.setObjectName("resetLabel") - self.skiptsplitLabel = QtWidgets.QLabel(self.centralwidget) - self.skiptsplitLabel.setGeometry(QtCore.QRect(230, 367, 48, 16)) - self.skiptsplitLabel.setObjectName("skiptsplitLabel") - self.undosplitLabel = QtWidgets.QLabel(self.centralwidget) - self.undosplitLabel.setGeometry(QtCore.QRect(230, 393, 55, 16)) - self.undosplitLabel.setObjectName("undosplitLabel") - self.splitLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.splitLineEdit.setGeometry(QtCore.QRect(300, 314, 81, 20)) - self.splitLineEdit.setReadOnly(True) - self.splitLineEdit.setObjectName("splitLineEdit") - self.undosplitLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.undosplitLineEdit.setGeometry(QtCore.QRect(300, 391, 81, 20)) - self.undosplitLineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.undosplitLineEdit.setReadOnly(True) - self.undosplitLineEdit.setObjectName("undosplitLineEdit") - self.skipsplitLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.skipsplitLineEdit.setGeometry(QtCore.QRect(300, 365, 81, 20)) - self.skipsplitLineEdit.setReadOnly(True) - self.skipsplitLineEdit.setObjectName("skipsplitLineEdit") - self.resetLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.resetLineEdit.setGeometry(QtCore.QRect(300, 339, 81, 20)) - self.resetLineEdit.setReadOnly(True) - self.resetLineEdit.setObjectName("resetLineEdit") - self.setsplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setsplithotkeyButton.setGeometry(QtCore.QRect(390, 314, 81, 21)) - self.setsplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setsplithotkeyButton.setObjectName("setsplithotkeyButton") - self.setresethotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setresethotkeyButton.setGeometry(QtCore.QRect(390, 339, 81, 21)) - self.setresethotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setresethotkeyButton.setObjectName("setresethotkeyButton") - self.setskipsplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setskipsplithotkeyButton.setGeometry(QtCore.QRect(390, 365, 81, 21)) - self.setskipsplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setskipsplithotkeyButton.setObjectName("setskipsplithotkeyButton") - self.setundosplithotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setundosplithotkeyButton.setGeometry(QtCore.QRect(390, 391, 81, 21)) - self.setundosplithotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setundosplithotkeyButton.setObjectName("setundosplithotkeyButton") - self.line_left = QtWidgets.QFrame(self.centralwidget) - self.line_left.setGeometry(QtCore.QRect(220, 296, 2, 163)) - self.line_left.setFrameShadow(QtWidgets.QFrame.Shadow.Plain) - self.line_left.setLineWidth(1) - self.line_left.setFrameShape(QtWidgets.QFrame.Shape.VLine) - self.line_left.setObjectName("line_left") - self.timerglobalhotkeysLabel = QtWidgets.QLabel(self.centralwidget) - self.timerglobalhotkeysLabel.setGeometry(QtCore.QRect(230, 291, 251, 20)) - self.timerglobalhotkeysLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.timerglobalhotkeysLabel.setObjectName("timerglobalhotkeysLabel") - self.line_right = QtWidgets.QFrame(self.centralwidget) - self.line_right.setGeometry(QtCore.QRect(490, 296, 2, 163)) - self.line_right.setFrameShadow(QtWidgets.QFrame.Shadow.Plain) - self.line_right.setLineWidth(1) - self.line_right.setFrameShape(QtWidgets.QFrame.Shape.VLine) - self.line_right.setObjectName("line_right") - self.liveImage = QtWidgets.QLabel(self.centralwidget) - self.liveImage.setGeometry(QtCore.QRect(120, 70, 240, 180)) - self.liveImage.setFrameShape(QtWidgets.QFrame.Shape.Box) - self.liveImage.setText("") - self.liveImage.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.liveImage.setObjectName("liveImage") - self.currentSplitImage = QtWidgets.QLabel(self.centralwidget) - self.currentSplitImage.setGeometry(QtCore.QRect(380, 70, 240, 180)) - self.currentSplitImage.setFrameShape(QtWidgets.QFrame.Shape.Box) - self.currentSplitImage.setText("") - self.currentSplitImage.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.currentSplitImage.setObjectName("currentSplitImage") - self.currentsplitimageLabel = QtWidgets.QLabel(self.centralwidget) - self.currentsplitimageLabel.setGeometry(QtCore.QRect(450, 50, 102, 16)) - self.currentsplitimageLabel.setObjectName("currentsplitimageLabel") - self.widthLabel = QtWidgets.QLabel(self.centralwidget) - self.widthLabel.setGeometry(QtCore.QRect(12, 185, 33, 16)) - self.widthLabel.setObjectName("widthLabel") - self.heightLabel = QtWidgets.QLabel(self.centralwidget) - self.heightLabel.setGeometry(QtCore.QRect(66, 185, 41, 16)) - self.heightLabel.setObjectName("heightLabel") - self.fpsvalueLabel = QtWidgets.QLabel(self.centralwidget) - self.fpsvalueLabel.setGeometry(QtCore.QRect(58, 225, 26, 20)) - self.fpsvalueLabel.setText("") - self.fpsvalueLabel.setObjectName("fpsvalueLabel") - self.widthSpinBox = QtWidgets.QSpinBox(self.centralwidget) - self.widthSpinBox.setGeometry(QtCore.QRect(6, 200, 44, 22)) - self.widthSpinBox.setMinimum(1) - self.widthSpinBox.setMaximum(10000) - self.widthSpinBox.setProperty("value", 640) - self.widthSpinBox.setObjectName("widthSpinBox") - self.heightSpinBox = QtWidgets.QSpinBox(self.centralwidget) - self.heightSpinBox.setGeometry(QtCore.QRect(62, 200, 44, 22)) - self.heightSpinBox.setMinimum(1) - self.heightSpinBox.setMaximum(10000) - self.heightSpinBox.setProperty("value", 480) - self.heightSpinBox.setObjectName("heightSpinBox") - self.captureregionLabel = QtWidgets.QLabel(self.centralwidget) - self.captureregionLabel.setGeometry(QtCore.QRect(200, 50, 82, 16)) - self.captureregionLabel.setObjectName("captureregionLabel") - self.fpslimitLabel = QtWidgets.QLabel(self.centralwidget) - self.fpslimitLabel.setGeometry(QtCore.QRect(8, 252, 51, 16)) - self.fpslimitLabel.setObjectName("fpslimitLabel") - self.fpslimitSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) - self.fpslimitSpinBox.setGeometry(QtCore.QRect(62, 250, 44, 22)) - self.fpslimitSpinBox.setPrefix("") - self.fpslimitSpinBox.setDecimals(0) - self.fpslimitSpinBox.setMinimum(30.0) - self.fpslimitSpinBox.setMaximum(5000.0) - self.fpslimitSpinBox.setSingleStep(1.0) - self.fpslimitSpinBox.setProperty("value", 60.0) - self.fpslimitSpinBox.setObjectName("fpslimitSpinBox") - self.currentsplitimagefileLabel = QtWidgets.QLabel(self.centralwidget) - self.currentsplitimagefileLabel.setGeometry(QtCore.QRect(380, 270, 241, 20)) - self.currentsplitimagefileLabel.setText("") - self.currentsplitimagefileLabel.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter) - self.currentsplitimagefileLabel.setObjectName("currentsplitimagefileLabel") - self.takescreenshotButton = QtWidgets.QPushButton(self.centralwidget) - self.takescreenshotButton.setGeometry(QtCore.QRect(260, 250, 101, 24)) - self.takescreenshotButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.takescreenshotButton.setObjectName("takescreenshotButton") - self.xSpinBox = QtWidgets.QSpinBox(self.centralwidget) - self.xSpinBox.setGeometry(QtCore.QRect(6, 160, 44, 22)) - self.xSpinBox.setReadOnly(False) - self.xSpinBox.setButtonSymbols(QtWidgets.QAbstractSpinBox.ButtonSymbols.UpDownArrows) - self.xSpinBox.setMinimum(0) - self.xSpinBox.setMaximum(999999999) - self.xSpinBox.setSingleStep(1) - self.xSpinBox.setProperty("value", 0) - self.xSpinBox.setObjectName("xSpinBox") - self.ySpinBox = QtWidgets.QSpinBox(self.centralwidget) - self.ySpinBox.setGeometry(QtCore.QRect(62, 160, 44, 22)) - self.ySpinBox.setReadOnly(False) - self.ySpinBox.setButtonSymbols(QtWidgets.QAbstractSpinBox.ButtonSymbols.UpDownArrows) - self.ySpinBox.setMinimum(0) - self.ySpinBox.setMaximum(999999999) - self.ySpinBox.setProperty("value", 0) - self.ySpinBox.setObjectName("ySpinBox") - self.yLabel = QtWidgets.QLabel(self.centralwidget) - self.yLabel.setGeometry(QtCore.QRect(81, 145, 7, 16)) - self.yLabel.setObjectName("yLabel") - self.comparisonmethodComboBox = QtWidgets.QComboBox(self.centralwidget) - self.comparisonmethodComboBox.setGeometry(QtCore.QRect(125, 296, 91, 22)) - self.comparisonmethodComboBox.setObjectName("comparisonmethodComboBox") - self.comparisonmethodComboBox.addItem("") - self.comparisonmethodComboBox.addItem("") - self.comparisonmethodComboBox.addItem("") - self.pauseDoubleSpinBox = QtWidgets.QDoubleSpinBox(self.centralwidget) - self.pauseDoubleSpinBox.setGeometry(QtCore.QRect(155, 437, 61, 22)) - self.pauseDoubleSpinBox.setMaximum(999999999.0) - self.pauseDoubleSpinBox.setSingleStep(1.0) - self.pauseDoubleSpinBox.setProperty("value", 10.0) - self.pauseDoubleSpinBox.setObjectName("pauseDoubleSpinBox") - self.comparisonmethodLabel = QtWidgets.QLabel(self.centralwidget) - self.comparisonmethodLabel.setGeometry(QtCore.QRect(7, 298, 110, 16)) - self.comparisonmethodLabel.setObjectName("comparisonmethodLabel") - self.alignregionButton = QtWidgets.QPushButton(self.centralwidget) - self.alignregionButton.setGeometry(QtCore.QRect(5, 95, 101, 23)) - self.alignregionButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.alignregionButton.setObjectName("alignregionButton") - self.groupDummySplitsCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.groupDummySplitsCheckBox.setGeometry(QtCore.QRect(230, 442, 261, 20)) - self.groupDummySplitsCheckBox.setChecked(False) - self.groupDummySplitsCheckBox.setObjectName("groupDummySplitsCheckBox") - self.selectwindowButton = QtWidgets.QPushButton(self.centralwidget) - self.selectwindowButton.setGeometry(QtCore.QRect(5, 120, 101, 23)) - self.selectwindowButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.selectwindowButton.setObjectName("selectwindowButton") - self.imageloopLabel = QtWidgets.QLabel(self.centralwidget) - self.imageloopLabel.setGeometry(QtCore.QRect(379, 252, 113, 20)) - self.imageloopLabel.setObjectName("imageloopLabel") - self.pausehotkeyLabel = QtWidgets.QLabel(self.centralwidget) - self.pausehotkeyLabel.setGeometry(QtCore.QRect(230, 418, 31, 16)) - self.pausehotkeyLabel.setObjectName("pausehotkeyLabel") - self.pausehotkeyLineEdit = QtWidgets.QLineEdit(self.centralwidget) - self.pausehotkeyLineEdit.setGeometry(QtCore.QRect(300, 416, 81, 20)) - self.pausehotkeyLineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.pausehotkeyLineEdit.setReadOnly(True) - self.pausehotkeyLineEdit.setObjectName("pausehotkeyLineEdit") - self.setpausehotkeyButton = QtWidgets.QPushButton(self.centralwidget) - self.setpausehotkeyButton.setGeometry(QtCore.QRect(390, 416, 81, 21)) - self.setpausehotkeyButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.setpausehotkeyButton.setObjectName("setpausehotkeyButton") - self.loopCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.loopCheckBox.setEnabled(True) - self.loopCheckBox.setGeometry(QtCore.QRect(500, 340, 117, 20)) - self.loopCheckBox.setChecked(False) - self.loopCheckBox.setTristate(False) - self.loopCheckBox.setObjectName("loopCheckBox") - self.autostartonresetCheckBox = QtWidgets.QCheckBox(self.centralwidget) - self.autostartonresetCheckBox.setGeometry(QtCore.QRect(500, 360, 126, 20)) - self.autostartonresetCheckBox.setChecked(False) - self.autostartonresetCheckBox.setTristate(False) - self.autostartonresetCheckBox.setObjectName("autostartonresetCheckBox") - self.startImageReloadButton = QtWidgets.QPushButton(self.centralwidget) - self.startImageReloadButton.setGeometry(QtCore.QRect(500, 302, 121, 31)) - self.startImageReloadButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.startImageReloadButton.setObjectName("startImageReloadButton") - self.startImageLabel = QtWidgets.QLabel(self.centralwidget) - self.startImageLabel.setGeometry(QtCore.QRect(120, 270, 241, 16)) - self.startImageLabel.setObjectName("startImageLabel") - self.currentsimilaritythresholdLabel = QtWidgets.QLabel(self.centralwidget) - self.currentsimilaritythresholdLabel.setGeometry(QtCore.QRect(7, 380, 151, 16)) - self.currentsimilaritythresholdLabel.setObjectName("currentsimilaritythresholdLabel") - self.currentsimilaritythresholdnumberLabel = QtWidgets.QLabel(self.centralwidget) - self.currentsimilaritythresholdnumberLabel.setGeometry(QtCore.QRect(171, 380, 46, 16)) - self.currentsimilaritythresholdnumberLabel.setText("") - self.currentsimilaritythresholdnumberLabel.setObjectName("currentsimilaritythresholdnumberLabel") - self.splitimagefolderLabel.raise_() - self.splitimagefolderLineEdit.raise_() - self.browseButton.raise_() - self.xLabel.raise_() - self.liveimageCheckBox.raise_() - self.selectregionButton.raise_() - self.similaritythresholdLabel.raise_() - self.similaritythresholdDoubleSpinBox.raise_() - self.startautosplitterButton.raise_() - self.resetButton.raise_() - self.undosplitButton.raise_() - self.skipsplitButton.raise_() - self.pauseLabel.raise_() - self.checkfpsButton.raise_() - self.fpsLabel.raise_() - self.showlivesimilarityCheckBox.raise_() - self.showhighestsimilarityCheckBox.raise_() - self.livesimilarityLabel.raise_() - self.highestsimilarityLabel.raise_() - self.splitLabel.raise_() - self.resetLabel.raise_() - self.skiptsplitLabel.raise_() - self.undosplitLabel.raise_() - self.splitLineEdit.raise_() - self.undosplitLineEdit.raise_() - self.skipsplitLineEdit.raise_() - self.resetLineEdit.raise_() - self.setsplithotkeyButton.raise_() - self.setresethotkeyButton.raise_() - self.setskipsplithotkeyButton.raise_() - self.setundosplithotkeyButton.raise_() - self.line_left.raise_() - self.timerglobalhotkeysLabel.raise_() - self.line_right.raise_() - self.currentsplitimageLabel.raise_() - self.liveImage.raise_() - self.currentSplitImage.raise_() - self.widthLabel.raise_() - self.heightLabel.raise_() - self.fpsvalueLabel.raise_() - self.widthSpinBox.raise_() - self.heightSpinBox.raise_() - self.captureregionLabel.raise_() - self.fpslimitLabel.raise_() - self.fpslimitSpinBox.raise_() - self.currentsplitimagefileLabel.raise_() - self.takescreenshotButton.raise_() - self.xSpinBox.raise_() - self.ySpinBox.raise_() - self.yLabel.raise_() - self.comparisonmethodComboBox.raise_() - self.pauseDoubleSpinBox.raise_() - self.comparisonmethodLabel.raise_() - self.alignregionButton.raise_() - self.groupDummySplitsCheckBox.raise_() - self.selectwindowButton.raise_() - self.imageloopLabel.raise_() - self.pausehotkeyLabel.raise_() - self.pausehotkeyLineEdit.raise_() - self.setpausehotkeyButton.raise_() - self.loopCheckBox.raise_() - self.autostartonresetCheckBox.raise_() - self.startImageReloadButton.raise_() - self.startImageLabel.raise_() - self.currentsimilaritythresholdLabel.raise_() - self.currentsimilaritythresholdnumberLabel.raise_() - MainWindow.setCentralWidget(self.centralwidget) - self.menuBar = QtWidgets.QMenuBar(MainWindow) - self.menuBar.setGeometry(QtCore.QRect(0, 0, 632, 22)) - self.menuBar.setObjectName("menuBar") - self.menuHelp = QtWidgets.QMenu(self.menuBar) - self.menuHelp.setObjectName("menuHelp") - self.menuFile = QtWidgets.QMenu(self.menuBar) - self.menuFile.setObjectName("menuFile") - MainWindow.setMenuBar(self.menuBar) - self.actionView_Help = QtGui.QAction(MainWindow) - self.actionView_Help.setObjectName("actionView_Help") - self.actionAbout = QtGui.QAction(MainWindow) - self.actionAbout.setObjectName("actionAbout") - self.actionSplit_Settings = QtGui.QAction(MainWindow) - self.actionSplit_Settings.setObjectName("actionSplit_Settings") - self.actionSave_Settings = QtGui.QAction(MainWindow) - self.actionSave_Settings.setObjectName("actionSave_Settings") - self.actionLoad_Settings = QtGui.QAction(MainWindow) - self.actionLoad_Settings.setObjectName("actionLoad_Settings") - self.actionSave_Settings_As = QtGui.QAction(MainWindow) - self.actionSave_Settings_As.setObjectName("actionSave_Settings_As") - self.actionCheck_for_Updates = QtGui.QAction(MainWindow) - self.actionCheck_for_Updates.setObjectName("actionCheck_for_Updates") - self.actionCheck_for_Updates_on_Open = QtGui.QAction(MainWindow) - self.actionCheck_for_Updates_on_Open.setCheckable(True) - self.actionCheck_for_Updates_on_Open.setChecked(True) - self.actionCheck_for_Updates_on_Open.setEnabled(True) - self.actionCheck_for_Updates_on_Open.setObjectName("actionCheck_for_Updates_on_Open") - self.menuHelp.addAction(self.actionView_Help) - self.menuHelp.addAction(self.actionAbout) - self.menuHelp.addAction(self.actionCheck_for_Updates) - self.menuHelp.addAction(self.actionCheck_for_Updates_on_Open) - self.menuFile.addAction(self.actionSave_Settings) - self.menuFile.addAction(self.actionSave_Settings_As) - self.menuFile.addAction(self.actionLoad_Settings) - self.menuBar.addAction(self.menuFile.menuAction()) - self.menuBar.addAction(self.menuHelp.menuAction()) - - self.retranslateUi(MainWindow) - QtCore.QMetaObject.connectSlotsByName(MainWindow) - MainWindow.setTabOrder(self.splitimagefolderLineEdit, self.xSpinBox) - MainWindow.setTabOrder(self.xSpinBox, self.ySpinBox) - MainWindow.setTabOrder(self.ySpinBox, self.widthSpinBox) - MainWindow.setTabOrder(self.widthSpinBox, self.heightSpinBox) - MainWindow.setTabOrder(self.heightSpinBox, self.fpslimitSpinBox) - MainWindow.setTabOrder(self.fpslimitSpinBox, self.liveimageCheckBox) - MainWindow.setTabOrder(self.liveimageCheckBox, self.comparisonmethodComboBox) - MainWindow.setTabOrder(self.comparisonmethodComboBox, self.showlivesimilarityCheckBox) - MainWindow.setTabOrder(self.showlivesimilarityCheckBox, self.showhighestsimilarityCheckBox) - MainWindow.setTabOrder(self.showhighestsimilarityCheckBox, self.similaritythresholdDoubleSpinBox) - MainWindow.setTabOrder(self.similaritythresholdDoubleSpinBox, self.pauseDoubleSpinBox) - MainWindow.setTabOrder(self.pauseDoubleSpinBox, self.splitLineEdit) - MainWindow.setTabOrder(self.splitLineEdit, self.resetLineEdit) - MainWindow.setTabOrder(self.resetLineEdit, self.skipsplitLineEdit) - MainWindow.setTabOrder(self.skipsplitLineEdit, self.undosplitLineEdit) - MainWindow.setTabOrder(self.undosplitLineEdit, self.groupDummySplitsCheckBox) - - def retranslateUi(self, MainWindow): - _translate = QtCore.QCoreApplication.translate - MainWindow.setWindowTitle(_translate("MainWindow", "AutoSplit")) - self.splitimagefolderLabel.setText(_translate("MainWindow", "Split Image Folder:")) - self.browseButton.setText(_translate("MainWindow", "Browse...")) - self.xLabel.setText(_translate("MainWindow", "X")) - self.liveimageCheckBox.setText(_translate("MainWindow", "Live Capture Region")) - self.selectregionButton.setText(_translate("MainWindow", "Select Region")) - self.similaritythresholdLabel.setText(_translate("MainWindow", "Default similarity threshold:")) - self.startautosplitterButton.setText(_translate("MainWindow", "Start Auto Splitter")) - self.resetButton.setText(_translate("MainWindow", "Reset")) - self.undosplitButton.setText(_translate("MainWindow", "Undo Split")) - self.skipsplitButton.setText(_translate("MainWindow", "Skip Split")) - self.pauseLabel.setText(_translate("MainWindow", "Default pause time (sec):")) - self.checkfpsButton.setText(_translate("MainWindow", "Max FPS")) - self.fpsLabel.setText(_translate("MainWindow", "FPS")) - self.showlivesimilarityCheckBox.setText(_translate("MainWindow", "Show live similarity")) - self.showhighestsimilarityCheckBox.setText(_translate("MainWindow", "Show highest similarity")) - self.splitLabel.setText(_translate("MainWindow", "Start / Split")) - self.resetLabel.setText(_translate("MainWindow", "Reset")) - self.skiptsplitLabel.setText(_translate("MainWindow", "Skip Split")) - self.undosplitLabel.setText(_translate("MainWindow", "Undo Split")) - self.setsplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.setresethotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.setskipsplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.setundosplithotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.timerglobalhotkeysLabel.setText(_translate("MainWindow", "Timer Global Hotkeys")) - self.currentsplitimageLabel.setText(_translate("MainWindow", "Current Split Image")) - self.widthLabel.setText(_translate("MainWindow", "Width")) - self.heightLabel.setText(_translate("MainWindow", "Height")) - self.captureregionLabel.setText(_translate("MainWindow", "Capture Region")) - self.fpslimitLabel.setText(_translate("MainWindow", "FPS Limit:")) - self.takescreenshotButton.setText(_translate("MainWindow", "Take Screenshot")) - self.yLabel.setText(_translate("MainWindow", "Y")) - self.comparisonmethodComboBox.setItemText(0, _translate("MainWindow", "L2 Norm")) - self.comparisonmethodComboBox.setItemText(1, _translate("MainWindow", "Histograms")) - self.comparisonmethodComboBox.setItemText(2, _translate("MainWindow", "pHash")) - self.comparisonmethodLabel.setText(_translate("MainWindow", "Comparison Method")) - self.alignregionButton.setText(_translate("MainWindow", "Align Region")) - self.groupDummySplitsCheckBox.setText(_translate("MainWindow", "Group dummy splits when undoing/skipping")) - self.selectwindowButton.setText(_translate("MainWindow", "Select Window")) - self.imageloopLabel.setText(_translate("MainWindow", "Image Loop:")) - self.pausehotkeyLabel.setText(_translate("MainWindow", "Pause")) - self.setpausehotkeyButton.setText(_translate("MainWindow", "Set Hotkey")) - self.loopCheckBox.setText(_translate("MainWindow", "Loop Split Images")) - self.autostartonresetCheckBox.setText(_translate("MainWindow", "Auto Start On Reset")) - self.startImageReloadButton.setText(_translate("MainWindow", "Reload Start Image")) - self.startImageLabel.setText(_translate("MainWindow", "Start image:")) - self.currentsimilaritythresholdLabel.setText(_translate("MainWindow", "Current similarity threshold:")) - self.menuHelp.setTitle(_translate("MainWindow", "Help")) - self.menuFile.setTitle(_translate("MainWindow", "File")) - self.actionView_Help.setText(_translate("MainWindow", "View Help")) - self.actionAbout.setText(_translate("MainWindow", "About")) - self.actionSplit_Settings.setText(_translate("MainWindow", "Split Image Settings")) - self.actionSave_Settings.setText(_translate("MainWindow", "Save Settings")) - self.actionLoad_Settings.setText(_translate("MainWindow", "Load Settings")) - self.actionSave_Settings_As.setText(_translate("MainWindow", "Save Settings As...")) - self.actionCheck_for_Updates.setText(_translate("MainWindow", "Check for Updates...")) - self.actionCheck_for_Updates_on_Open.setText(_translate("MainWindow", "Check for Updates on Open")) diff --git a/src/error_messages.py b/src/error_messages.py index 2d3b6669..bad19bd9 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -3,9 +3,9 @@ from PyQt6 import QtCore, QtWidgets -def setTextMessage(message: str, details: str = ''): +def setTextMessage(message: str, details: str = ""): messageBox = QtWidgets.QMessageBox() - messageBox.setWindowTitle('Error') + messageBox.setWindowTitle("Error") messageBox.setTextFormat(QtCore.Qt.TextFormat.RichText) messageBox.setText(message) if details: @@ -30,11 +30,13 @@ def splitImageDirectoryEmpty(): def imageTypeError(image: str): - setTextMessage(f"\"{image}\" is not a valid image file, does not exist, or the full image file path contains a special character.") + setTextMessage(f'"{image}" is not a valid image file, does not exist, ' + "or the full image file path contains a special character.") def regionError(): - setTextMessage("No region is selected or the Capture Region window is not open. Select a region or load settings while the Capture Region window is open.") + setTextMessage("No region is selected or the Capture Region window is not open. " + "Select a region or load settings while the Capture Region window is open.") def splitHotkeyError(): @@ -42,7 +44,8 @@ def splitHotkeyError(): def pauseHotkeyError(): - setTextMessage("Your split image folder contains an image filename with a pause flag {p}, but no pause hotkey is set.") + setTextMessage("Your split image folder contains an image filename with a pause flag {p}, " + "but no pause hotkey is set.") def alignRegionImageTypeError(): @@ -54,11 +57,11 @@ def alignmentNotMatchedError(): def noKeywordImageError(keyword: str): - setTextMessage(f"Your split image folder does not contain an image with the keyword \"{keyword}\".") + setTextMessage(f'Your split image folder does not contain an image with the keyword "{keyword}".') def multipleKeywordImagesError(keyword: str): - setTextMessage(f"Only one image with the keyword \"{keyword}\" is allowed.") + setTextMessage(f'Only one image with the keyword "{keyword}" is allowed.') def resetHotkeyError(): @@ -66,7 +69,8 @@ def resetHotkeyError(): def dummySplitsError(): - setTextMessage("Group dummy splits when undoing/skipping cannot be checked if any split image has a loop parameter greater than 1") + setTextMessage("Group dummy splits when undoing/skipping cannot be checked " + "if any split image has a loop parameter greater than 1") def oldVersionSettingsFileError(): @@ -82,20 +86,24 @@ def noSettingsFileOnOpenError(): def tooManySettingsFilesOnOpenError(): - setTextMessage("Too many settings files found. Only one can be loaded on open if placed in the same folder as AutoSplit.exe") + setTextMessage("Too many settings files found. " + "Only one can be loaded on open if placed in the same folder as AutoSplit.exe") def checkForUpdatesError(): setTextMessage("An error occurred while attempting to check for updates. Please check your connection.") + def loadStartImageError(): - setTextMessage("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. Please set these hotkeys, and then click the Reload Start Image button.") + setTextMessage("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. " + "Please set these hotkeys, and then click the Reload Start Image button.") + def stdinLostError(): setTextMessage("stdin not supported or lost, external control like LiveSplit integration will not work.") -def exceptionTraceback(message: str, exception: Exception): +def exceptionTraceback(message: str, exception: BaseException): setTextMessage( message, "\n".join(traceback.format_exception(None, exception, exception.__traceback__))) diff --git a/src/hotkeys.py b/src/hotkeys.py index f722ea58..b586272b 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,147 +1,141 @@ from __future__ import annotations -from typing import Any, Callable, TYPE_CHECKING, Union +from typing import Optional, TYPE_CHECKING, Union +from collections.abc import Callable if TYPE_CHECKING: from AutoSplit import AutoSplit -import keyboard -import pyautogui import threading +from keyboard._keyboard_event import KeyboardEvent, KEY_DOWN +import keyboard # https://github.com/boppreh/keyboard/issues/505 +import pyautogui # https://github.com/asweigart/pyautogui/issues/645 # While not usually recommended, we don't manipulate the mouse, and we don't want the extra delay pyautogui.FAILSAFE = False # do all of these after you click "set hotkey" but before you type the hotkey. -def beforeSettingHotkey(self: AutoSplit): - self.startautosplitterButton.setEnabled(False) - self.setsplithotkeyButton.setEnabled(False) - self.setresethotkeyButton.setEnabled(False) - self.setskipsplithotkeyButton.setEnabled(False) - self.setundosplithotkeyButton.setEnabled(False) - self.setpausehotkeyButton.setEnabled(False) +def beforeSettingHotkey(autosplit: AutoSplit): + autosplit.startautosplitterButton.setEnabled(False) + autosplit.setsplithotkeyButton.setEnabled(False) + autosplit.setresethotkeyButton.setEnabled(False) + autosplit.setskipsplithotkeyButton.setEnabled(False) + autosplit.setundosplithotkeyButton.setEnabled(False) + autosplit.setpausehotkeyButton.setEnabled(False) # do all of these things after you set a hotkey. a signal connects to this because # changing GUI stuff in the hotkey thread was causing problems -def afterSettingHotkey(self: AutoSplit): - self.setsplithotkeyButton.setText('Set Hotkey') - self.setresethotkeyButton.setText('Set Hotkey') - self.setskipsplithotkeyButton.setText('Set Hotkey') - self.setundosplithotkeyButton.setText('Set Hotkey') - self.setpausehotkeyButton.setText('Set Hotkey') - self.startautosplitterButton.setEnabled(True) - self.setsplithotkeyButton.setEnabled(True) - self.setresethotkeyButton.setEnabled(True) - self.setskipsplithotkeyButton.setEnabled(True) - self.setundosplithotkeyButton.setEnabled(True) - self.setpausehotkeyButton.setEnabled(True) - - -def is_digit(key: str): +def afterSettingHotkey(autosplit: AutoSplit): + autosplit.setsplithotkeyButton.setText("Set Hotkey") + autosplit.setresethotkeyButton.setText("Set Hotkey") + autosplit.setskipsplithotkeyButton.setText("Set Hotkey") + autosplit.setundosplithotkeyButton.setText("Set Hotkey") + autosplit.setpausehotkeyButton.setText("Set Hotkey") + autosplit.startautosplitterButton.setEnabled(True) + autosplit.setsplithotkeyButton.setEnabled(True) + autosplit.setresethotkeyButton.setEnabled(True) + autosplit.setskipsplithotkeyButton.setEnabled(True) + autosplit.setundosplithotkeyButton.setEnabled(True) + autosplit.setpausehotkeyButton.setEnabled(True) + + +def is_digit(key: Optional[str]): + if key is None: + return False try: - key_as_num = int(key) - return key_as_num >= 0 and key_as_num <= 9 - except Exception: + return 0 <= int(key) <= 9 + except ValueError: return False -def send_command(self: AutoSplit, command: str): - if self.is_auto_controlled: +def send_command(autosplit: AutoSplit, command: str): + if autosplit.is_auto_controlled: print(command, flush=True) + elif command in {"split", "start"}: + _send_hotkey(autosplit.splitLineEdit.text()) + elif command == "pause": + _send_hotkey(autosplit.pausehotkeyLineEdit.text()) + elif command == "reset": + _send_hotkey(autosplit.resetLineEdit.text()) else: - if command == "split" or command == "start": - _send_hotkey(self.splitLineEdit.text()) - elif command == "pause": - _send_hotkey(self.pausehotkeyLineEdit.text()) - elif command == "reset": - _send_hotkey(self.resetLineEdit.text()) - else: - raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") + raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") # Supports sending the appropriate scan code for all the special cases -def _send_hotkey(key_or_scan_code: Union[int, str, Any]): +def _send_hotkey(key_or_scan_code: Union[int, str]): if not key_or_scan_code: return - hotkey_type = type(key_or_scan_code) # Deal with regular inputs - if hotkey_type is int: - return keyboard.send(key_or_scan_code) - elif hotkey_type is not str: - raise TypeError(f'key_or_scan_code "{key_or_scan_code}" ({hotkey_type}) should be an int or str') - if (not (key_or_scan_code.startswith('num ') or key_or_scan_code == 'decimal')): - return keyboard.send(key_or_scan_code) - - # Deal with problematic keys. Even by sending specific scan code 'keyboard' still sends the default (wrong) key + if isinstance(key_or_scan_code, int) \ + or not (key_or_scan_code.startswith("num ") or key_or_scan_code == "decimal"): + keyboard.send(key_or_scan_code) + return + + # Deal with problematic keys. Even by sending specific scan code "keyboard" still sends the default (wrong) key # keyboard.send(keyboard.key_to_scan_codes(key_or_scan_code)[1]) - pyautogui.hotkey(key_or_scan_code.replace(' ', '')) + pyautogui.hotkey(key_or_scan_code.replace(" ", "")) -def __validate_keypad(expected_key: str, keyboard_event: keyboard.KeyboardEvent): +def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # Prevent "(keypad)delete", "(keypad)./decimal" and "del" from triggering each other # as well as "." and "(keypad)./decimal" - if keyboard_event.scan_code == 83 or keyboard_event.scan_code == 52: - if expected_key == keyboard_event.name: - return True - else: - # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) - return False + if keyboard_event.scan_code in {83, 52}: + # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) + return expected_key == keyboard_event.name # Prevent "action keys" from triggering "keypad keys" - if is_digit(keyboard_event.name[-1]): - # Prevent "regular numbers" from activating "keypad numbers" - if expected_key.startswith("num "): - return keyboard_event.is_keypad - # Prevent "keypad numbers" from activating "regular numbers" - else: - return not keyboard_event.is_keypad - else: - # Prevent "keypad action keys" from triggering "regular numbers" and "keypad numbers" - # Still allow the same key that might be localized differently on keypad vs non-keypad - return not is_digit(expected_key[-1]) + if keyboard_event.name and is_digit(keyboard_event.name[-1]): + # Prevent "regular numbers" and "keypad numbers" from activating each other + return bool(keyboard_event.is_keypad + if expected_key.startswith("num ") + else not keyboard_event.is_keypad) + + # Prevent "keypad action keys" from triggering "regular numbers" and "keypad numbers" + # Still allow the same key that might be localized differently on keypad vs non-keypad + return not is_digit(expected_key[-1]) # NOTE: This is a workaround very specific to numpads. # Windows reports different physical keys with the same scan code. # For example, "Home", "Num Home" and "Num 7" are all "71". # See: https://github.com/boppreh/keyboard/issues/171#issuecomment-390437684 -# + # We're doing the check here instead of saving the key code because it'll # cause issues with save files and the non-keypad shared keys are localized # while the keypad ones aren't. -# + # Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". # We're also trying to achieve the same hotkey behaviour as LiveSplit has. -def _hotkey_action(keyboard_event: keyboard.KeyboardEvent, key_name: str, action: Callable[[]]): - if keyboard_event.event_type == keyboard.KEY_DOWN and __validate_keypad(key_name, keyboard_event): +def _hotkey_action(keyboard_event: KeyboardEvent, key_name: str, action: Callable[[], None]): + if keyboard_event.event_type == KEY_DOWN and __validate_keypad(key_name, keyboard_event): action() -def __get_key_name(keyboard_event: keyboard.KeyboardEvent): +def __get_key_name(keyboard_event: KeyboardEvent): return f"num {keyboard_event.name}" \ if keyboard_event.is_keypad and is_digit(keyboard_event.name) \ else str(keyboard_event.name) -def __is_key_already_set(self: AutoSplit, key_name: str): - return key_name == self.splitLineEdit.text() \ - or key_name == self.resetLineEdit.text() \ - or key_name == self.skipsplitLineEdit.text() \ - or key_name == self.undosplitLineEdit.text() \ - or key_name == self.pausehotkeyLineEdit.text() +def __is_key_already_set(autosplit: AutoSplit, key_name: str): + return key_name in (autosplit.splitLineEdit.text(), + autosplit.resetLineEdit.text(), + autosplit.skipsplitLineEdit.text(), + autosplit.undosplitLineEdit.text(), + autosplit.pausehotkeyLineEdit.text()) # --------------------HOTKEYS-------------------------- # TODO: Refactor to de-duplicate all this code, including settings_file.py # Going to comment on one func, and others will be similar. -def setSplitHotkey(self: AutoSplit): - self.setsplithotkeyButton.setText('Press a key...') +def setSplitHotkey(autosplit: AutoSplit): + autosplit.setsplithotkeyButton.setText("Press a key...") # disable some buttons - self.beforeSettingHotkey() + beforeSettingHotkey(autosplit) # new thread points to callback. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey - def callback(hotkey): + def callback(hotkey: Callable[[], None]): # try to remove the previously set hotkey if there is one. try: keyboard.unhook_key(hotkey) @@ -168,11 +162,11 @@ def callback(hotkey): # hotkey. A try and except is needed if a hotkey hasn't been set yet. I'm not # allowing for these multiple-key hotkeys because it can cause crashes, and # not many people are going to really use or need this. - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return # add the key as the hotkey, set the text into the LineEdit, set it as old_xxx_key, @@ -182,20 +176,22 @@ def callback(hotkey): # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 # The best way to achieve this is make our own hotkey handling on top of hook # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 - self.split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startAutoSplitter)) - self.splitLineEdit.setText(key_name) - self.split_key = key_name - self.afterSettingHotkeySignal.emit() - - t = threading.Thread(target=callback, args=(self.split_hotkey,)) + autosplit.split_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startAutoSplitter)) + autosplit.splitLineEdit.setText(key_name) + autosplit.split_key = key_name + autosplit.afterSettingHotkeySignal.emit() + + t = threading.Thread(target=callback, args=(autosplit.split_hotkey,)) t.start() -def setResetHotkey(self: AutoSplit): - self.setresethotkeyButton.setText('Press a key...') - self.beforeSettingHotkey() +def setResetHotkey(autosplit: AutoSplit): + autosplit.setresethotkeyButton.setText("Press a key...") + beforeSettingHotkey(autosplit) - def callback(hotkey): + def callback(hotkey: Callable[[], None]): try: keyboard.unhook_key(hotkey) except (AttributeError, KeyError): @@ -204,27 +200,29 @@ def callback(hotkey): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return - self.reset_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startReset)) - self.resetLineEdit.setText(key_name) - self.reset_key = key_name - self.afterSettingHotkeySignal.emit() + autosplit.reset_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startReset)) + autosplit.resetLineEdit.setText(key_name) + autosplit.reset_key = key_name + autosplit.afterSettingHotkeySignal.emit() - t = threading.Thread(target=callback, args=(self.reset_hotkey,)) + t = threading.Thread(target=callback, args=(autosplit.reset_hotkey,)) t.start() -def setSkipSplitHotkey(self: AutoSplit): - self.setskipsplithotkeyButton.setText('Press a key...') - self.beforeSettingHotkey() +def setSkipSplitHotkey(autosplit: AutoSplit): + autosplit.setskipsplithotkeyButton.setText("Press a key...") + beforeSettingHotkey(autosplit) - def callback(hotkey): + def callback(hotkey: Callable[[], None]): try: keyboard.unhook_key(hotkey) except (AttributeError, KeyError): @@ -233,27 +231,29 @@ def callback(hotkey): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return - self.skip_split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startSkipSplit)) - self.skipsplitLineEdit.setText(key_name) - self.skip_split_key = key_name - self.afterSettingHotkeySignal.emit() + autosplit.skip_split_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startSkipSplit)) + autosplit.skipsplitLineEdit.setText(key_name) + autosplit.skip_split_key = key_name + autosplit.afterSettingHotkeySignal.emit() - t = threading.Thread(target=callback, args=(self.skip_split_hotkey,)) + t = threading.Thread(target=callback, args=(autosplit.skip_split_hotkey,)) t.start() -def setUndoSplitHotkey(self: AutoSplit): - self.setundosplithotkeyButton.setText('Press a key...') - self.beforeSettingHotkey() +def setUndoSplitHotkey(autosplit: AutoSplit): + autosplit.setundosplithotkeyButton.setText("Press a key...") + beforeSettingHotkey(autosplit) - def callback(hotkey): + def callback(hotkey: Callable[[], None]): try: keyboard.unhook_key(hotkey) except (AttributeError, KeyError): @@ -262,27 +262,29 @@ def callback(hotkey): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return - self.undo_split_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startUndoSplit)) - self.undosplitLineEdit.setText(key_name) - self.undo_split_key = key_name - self.afterSettingHotkeySignal.emit() + autosplit.undo_split_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startUndoSplit)) + autosplit.undosplitLineEdit.setText(key_name) + autosplit.undo_split_key = key_name + autosplit.afterSettingHotkeySignal.emit() - t = threading.Thread(target=callback, args=(self.undo_split_hotkey,)) + t = threading.Thread(target=callback, args=(autosplit.undo_split_hotkey,)) t.start() -def setPauseHotkey(self: AutoSplit): - self.setpausehotkeyButton.setText('Press a key...') - self.beforeSettingHotkey() +def setPauseHotkey(autosplit: AutoSplit): + autosplit.setpausehotkeyButton.setText("Press a key...") + beforeSettingHotkey(autosplit) - def callback(hotkey): + def callback(hotkey: Callable[[], None]): try: keyboard.unhook_key(hotkey) except (AttributeError, KeyError): @@ -291,17 +293,19 @@ def callback(hotkey): key_name = __get_key_name(keyboard.read_event(True)) try: - if __is_key_already_set(self, key_name) or (key_name != '+' and '+' in key_name): - self.afterSettingHotkeySignal.emit() + if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): + autosplit.afterSettingHotkeySignal.emit() return except AttributeError: - self.afterSettingHotkeySignal.emit() + autosplit.afterSettingHotkeySignal.emit() return - self.pause_hotkey = keyboard.hook_key(key_name, lambda e: _hotkey_action(e, key_name, self.startPause)) - self.pausehotkeyLineEdit.setText(key_name) - self.pause_key = key_name - self.afterSettingHotkeySignal.emit() + autosplit.pause_hotkey = keyboard.hook_key( + key_name, + lambda e: _hotkey_action(e, key_name, autosplit.startPause)) + autosplit.pausehotkeyLineEdit.setText(key_name) + autosplit.undo_split_key = key_name + autosplit.afterSettingHotkeySignal.emit() - t = threading.Thread(target=callback, args=(self.pause_hotkey,)) + t = threading.Thread(target=callback, args=(autosplit.pause_hotkey,)) t.start() diff --git a/src/menu_bar.py b/src/menu_bar.py index d0b703f7..45b095f5 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -12,12 +12,10 @@ from simplejson.errors import JSONDecodeError import requests -import about -import design + import error_messages -import settings_file -import resources_rc # noqa: F401 -import update_checker +import settings_file as settings +from gen import about, design, resources_rc, update_checker # noqa: F401 # AutoSplit Version number VERSION = "1.6.1" @@ -34,8 +32,8 @@ def __init__(self): self.show() -def about(self: AutoSplit): - self.AboutWidget = __AboutWidget() +def open_about(autosplit: AutoSplit): + autosplit.AboutWidget = __AboutWidget() class __UpdateCheckerWidget(QtWidgets.QWidget, update_checker.Ui_UpdateChecker): @@ -59,11 +57,11 @@ def __init__(self, latest_version: str, design_window: design.Ui_MainWindow, che self.show() def openUpdate(self): - os.system("start \"\" https://github.com/Toufool/Auto-Split/releases/latest") + os.system('start "" https://github.com/Toufool/Auto-Split/releases/latest') self.close() def doNotAskMeAgainStateChanged(self): - settings_file.set_check_for_updates_on_open( + settings.set_check_for_updates_on_open( self.design_window, self.checkBoxDoNotAskMeAgain.isChecked()) @@ -73,7 +71,7 @@ def open_update_checker(autosplit: AutoSplit, latest_version: str, check_on_open def viewHelp(): - os.system("start \"\" https://github.com/Toufool/Auto-Split#tutorial") + os.system('start "" https://github.com/Toufool/Auto-Split#tutorial') class __CheckForUpdatesThread(QThread): @@ -89,7 +87,7 @@ def run(self): self.autosplit.updateCheckerWidgetSignal.emit(latest_version, self.check_on_open) except (RequestException, KeyError, JSONDecodeError): if not self.check_on_open: - self.autosplit.showErrorSignal(error_messages.checkForUpdatesError) + self.autosplit.showErrorSignal.emit(error_messages.checkForUpdatesError) def checkForUpdates(autosplit: AutoSplit, check_on_open: bool = False): diff --git a/src/resources_rc.py b/src/resources_rc.py deleted file mode 100644 index 826a7621..00000000 --- a/src/resources_rc.py +++ /dev/null @@ -1,2311 +0,0 @@ -# Resource object code (Python 3) -# Created by: object code -# Created by: The Resource Compiler for Qt version 6.2.1 -# WARNING! All changes made in this file will be lost! - -from PySide6 import QtCore - -qt_resource_data = b"\ -\x00\x00\x0a\x8d\ -\x89\ -PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\ -\x00\x00\x93\x00\x00\x00/\x08\x03\x00\x00\x00\xd03\x08)\ -\x00\x00\x03\x00PLTE\xff\xff\xff\xfb\xcbX\xff\xca\ -M\xfe\xc6C\xff\xc49\xfe\xc39\xff\xd7y\xff\xdc\x8a\ -\xff\xd2h\xfb\xc8M\xf6\xc0@\xf4\xc1HYC\x13\x00\ -\x00\x00\x05\x04\x04/$\x0akQ\x16\xeb\xb54\xf3\xba\ -7\x10\x08\x06\x1c\x14\x05\xd6\xa4/x[\x1b\x87h\x1e\ -\xfa\xbf7\xe5\xb03E1\x0c\x95r!\xcb\x9c-\xb5\ -\x8b(\xda\xa70\xa3}$\xe1\xac2cK\x16\xa4\xa6\ -\xa9\xbc\xbb\xbb\xb9\xb8\xb8\xb6\xb3\xb3eff\xbd\xbd\xbd\ -\xe8\xe8\xe8\x03\x0b\x0eLNN\x84\xb9\xebI\x99\xe2N\ -\xa3\xe8Y\xae\xec2\x87\xdc*{\xd8 p\xd2\x13b\ -\xcd\x06U\xc8\xe8\xef\xf9\xe3\xe4\xe5\xc2\xc2\xc1\xff\xff\xff\ -\xf8\xf8\xf9m\x01\x0dR\x01\x072\x03\x06vP\x0f\x94\ -\x07\x16\x05*9\x00^\x82\x04n\x9ay\xb6\xeb\x00K\ -\xc4\xea\xeb\xec\xd4\xd4\xd4\xcd\xcd\xcd\xba\xbd\xbd\xbc\xa0\xa5\ -\xa3\xac\xaf\xaf\xb6\xb9\xf6\xf6\xf7\xb2\x04 \xfc\x01\x1c\xf0\ -,\x10\xf6\x9e\x1b\xff\xb3\x1f{N\x0e\x939j(\x8c\ -\xd8\x00\xb3\xf7\x01\xa8\xe9\x00\xa1\xdei\xaf\xe9r\xbb\xef\ -~\xc1\xf1l\xa8\xe6\x5c\xa3\xe6I\x85\xd7B\x7f\xd5:\ -w\xd1\xed\xed\xed\xc4\xc5\xc5\xed\xf0\xf2\xfd\xfd\xfd\xed\x87\ -\x98\xdb$H|Bi5M|'p}5{\x85\ -\xe0\xe6\xeb\xf0\xf2\xf6\xf3\xf5\xf9\xf2\xf4\xf5\xfb\xfc\xfc\xeb\ -\x01\x1b\xfea\x01\xfbx\x08\xff\xaa\x1d\x8db\xa9W\x83\ -\xce\x03\x9b\xd7\x06Zh\x98\xc4\xed\x9d\xcc\xf2\xbc\xdb\xf5\ -\xa8\xd2\xf4\xb3\xd2\xf2\xa8\xcc\xf0\x83\xb4\xe8\x8b\xb1\xe6\x95\ -\xb8\xe8z\xa4\xe1f\x97\xdd\xff\xfa\xf4\xf9\xfb\xfc\xf6\xc7\ -\xcf\xd9\x01&\x0b-a\xd4\xda\xdc\xda\xdc\xe6\x8c\x91\xb5\ -\x84\x8b\xaf\xeb\xec\xf1tz\xa6\xac\xb0\xca\x87\x8e\xb3\xbc\ -\xc0\xd4\xd0\xd4\xdeSf\x92ht\x96\xcf\xd0\xde\xd4\x00\ -\x18\xf9E\x08\xfa\x8c\x12\x99b\x11\x9aN\x8duu\xc4\ -\x00\x84\xb6\xd1\xe2\xed\x90\xbc\xebv\xaa\xe4\xa0\xc5\xedq\ -\x9f\xe0_\x92\xdbX\x8d\xda\xd8\xdb\xdd\x90\x98\x9c\xc3\xc8\ -\xca\xb7\xbb\xbd\xd4\xd7\xd8\x98\xa2\xa7\xd1\xcb\xc6\xfe\xcb\x9f\ -\xfd\xbd\x86\xd3\xc0\xb0\xbe\xc3\xc5\x84\x8f\x95\xf2\xf1\xf1\xf3\ -\xad\xb8\xe6\x0c.i\x13;\x00%WN\x89\x93+6\ -x\xc4\xc9\xd8\x98\x9d\xbe\xa3\xa7\xc5KT\x8b\xe7\xe8\xf0\ -\x03\x15Z\xfa\x81\x0e9\x85\xc7\x00\x92\xcb\x91\xc6\xf0\x8a\ -\xb7\xe9\x85\xac\xe4S`hv\x82\x88\x9f\xaf\xba\xf3\xd9\ -\xc4\xda\x8aE.02\xfe\xf8\xf9\xee\x94\xa6\xf0{\x8f\ -;Y\x83\xa6\xc5\xca\xb3\xb9\xce\x0a\x14\x17h\x9d\xe1\x99\ -\xa8\xb8\xe4\xd2\xc2\xf8\x87)\xf8\xc1\x8a\x94\x9e\xa7?\ -\x22!!\x13T\xc7\xff\xfd\xf9\xfb\xa4Y\xfc\xb5ye\ -\x5c\x81\xae\x9d\x8c\xcd\xbe\xc2C\xef\xaeH\x00\x00\x00\x01\ -tRNS\x00@\xe6\xd8f\x00\x00\x00\x01orN\ -T\x01\xcf\xa2w\x9a\x00\x00\x07.IDATX\xc3\ -\xed\xd6y\x5c\x93u\x1c\x07\xf0g\xf0\x8cB\xf9=\x0f\ -{\x9e\xc91\x10\x01#\xe40\x0e\x93\x89\x08\x9e\x98\xa9\ -A)X\x04*\x88\x22\xd7\x04SP\x04\x86\xc8a\x82\ -\x0a\x1ee9\x0eEM\x93\xd46`h\x0aQR\x1e\ -`\x9a\x09QxT\x06e\x87i\x17\xdd\xf5\xfdmc\ -L}\x00c\xb3\x7f\xf2\xc3^\xbb\x9em\xcf\xfb\xf5\xfd\ -~\x9f\xdf\x0f\x82\xb8\x8b\xf0\x8c\x8cI>\x9f\xe4\x93\xda\ -\xf05\xaf\xf9:\xef\xe3\xe78\xbd~\xce\xd8\x88w7\ -g\xbb\x9b\x18\x19\xf3LL\x1e0@LLx\xc6F\ -\x86\x10\xf1\x8c\x1f4y\x10\xead\x80\x18\x1b\xc1O\x19\ -\xeb_+S\x9e\x89\x91!<\xdd12\xe1\x99\xeaM\ -\xe2\x19R\x84\xc3\xd3\x13\xc535h\x914\xa52\xd5\ -\xab}\x83\xee\x01\x09P\x83\xf4 \x0d6\xbd\x17$\x92\ -4\x1d\xacG\x99\xb8~\xd0\x0c!\x8a6\x17\xf4yR\ -F\xc0\xf4y|\xe0\x85\xe2\xf5bb\x85\x08\x09\x87\xf4\ -uN\x0bd\xd9\xb7i\xc0\x135\xd8\x8a\xdbdIZ\ -\x8b\x90Y\xdf&\x8b>MV\x03n\x1e\xc3\xe7\xfa=\ -l\x22\xad)4\x84\xe4\xdb\xd0\xac\xc8\x96$\x054m\ -I\xb3\xa0`,hJh\xc9'-X$\xa4\x01-\ -0\x13\x0a9q|f\xa0&A\xef&\x92FC\xa1\ -\x1a\x88F\x94-i\x8d\x10K#@\xda\x22\x9a\xa6\x90\ --i)D\xb4\xc8\x82dh$\x12rv\x91/\xb8\ -\x17&\xb8\x17P\x94\x1di\x89D`b\x19\xd5\xdb\x02\ -;\x92\xb4A\xe6\xdd\xbd\xc3O\x19\x8a\xfe\xcfLB4\ -l(\x82\xd3\xd9#\x16LB\x12p\xb8y6\x0eP\ -\x9b\xee\x19w@\x2233\x8a5\xac\xa9\xd7\x19'\xed\ -\x10\xb2\x1d\x8a\xcf.@,\x1f\xea\xa46\xd9\x0b)\x91\ -Y\x8f\x09\x9e:8\x98\x9bs\xcd\xf8\x80M\x04\xd3\x9b\ -\xc9\xca\x0c\xd1|{D1\xe40(\x96\xb6N\xb8e\ -C\xd5&\xdc;\xcb^/\xce\x01\x8f8AXs\x9b\ -\x84\x22\x0a\xb1\xb6\xb87B3\x0af]['\x1b$\ -\xb2\x11a\xd30\xc4\x9a\x8bH\x06F\xdd\x82\xb3N\xd6\ -z\x98\x18N\x13\x5cn\x0e\x98\xcb\x98SH8\x8c\xec\ -\xa9\x93@\x04\x16\x02\x199\xd2\xdd\xc3\xc3\xd3\xd3\xcb\xdb\ -{\x14\xce\xa3\x041\xda\xd1\xe7\xce89\xf6j\x1a.\ -\xbe3c|\xb0\x09\xfeOB\xac\xaf\xaf\xefX?\xd1\ -\xb8q\xe6\xf0\xaf\x10\x04\x9b\xf0#\xf2\xf3\xf5\xf7\xf7\xf5\ -\x0b\x18?a|\x80\x0b~\x8dM\x135&wl\xf2\ -\xf2\x02\xd2$\x08\x98&O\xe18\xc9h\xf8-\x22\xd0\ -i\xeaT\xa7\xc7 \x8e8\xd3p\x1e\xf7!\x9c9>\ ->\xbd\xdb\xc4\xce\x98\x09y\x22(888\xe8IJ\ -\xc7\xe4\xa7:\xf0\xd4\xac\xd9!\xb3C\xc7\xbbt\x9b\xe6\ -<\xfd\xf43\xf07'\xecYw\xf7\xf0\x88\x88\xb9s\ -\xbd\xe6zc\xd3\xf7\xd5\xd7\xf0\x95o>=\x90\xb3Y\xe2\xff\ -\xfa\xe1\x8e3-\x1f\xb6\xb6\xb5u~\xfb21\x5ce\ -\xaa-\xcc\x17Wm\xca\xaf\xa9\xc9\xdf\xb8!>\xe1t\ -\xadv-\xa0|7K$\x9b\xfd\xafC\xeb\xae\xd3\xba\ -\xeb\x13\xab:ph\xc2\xb2e\xa1/\x05t\xafO\xcd\ -\x9e\x9e\x9e\xcd2\x99,Sv-\x13\x0a\x15Q\x9fQ\ -^_&\xbd\xc8\xb1\x16|\xb7\xf7\xc6\xcd\xe3*\xd3\xf7\ -'rrr\x0e\xe5\xe6\xb6\xc4f\xb7\xc5&\xc6\xc9\xe5\ -\x09\x1aS\xaf\xeb\x13ti\xecX?J(\xfaA\xc4\ -\x22\xdd\xf5\x09\x1f\xf0\xf3C.\x01\xb9\x01MHk\xf2\ -\xf2\xf2\x0a\xaf\xab\x93\x95^+\x0do\xc7\xbd\xab\x97\xb6\ -\xb7\x97\xc5\xdfnZ}i\xdf\x8d\xb375\xa6\x1f\xaf\ -\x82\xe9\xa7\xdc\xdc\xe2\x8e\x9f\xe5\x9d\xad\x9d1\x9dQ\xfd\ -\x99\x9a\xba\xba\xba\x1a\xbb\xcew56\xc2C\xa3\xae\xa9\ -\xc9\xd5\xf5\xbc\xabk\x17\xdc~\xd1\x9a\xca\xbc\xd4\xf1\x86\ -]\xe5Wmn]3\x7f\xbbt\xf9w\x00\xdd<\xab\ -1\xad9x\xeb\xeat\x0av\x96\xbe\xf7\x16\x16c\xf0\ -\x0d\x9b~\xd15\xb1\x8d@r\x05\xb2\x8e\xa9\xdc\x1b\x07\ -\xefq\x93t\xd2\xb3\xb7\x80\xe7\x0f\x00%\xdd\xc4IR\ -\x99v]\xb9p\xf5\xea\xe7\x7f\x16\x15)\x8b\xe4\x90\xc5\ -\x9d\xd3am\xefw\x0ff\xf1\x8d\x85\x0d\x97\xbdm\x0f\ -\xc6o\xe2\xf4\xec\xc1\xed\xe18\x11xS\xd1I\x9cv\ -\x0fv\xfe\xe4k\x9d\xfc\x85\xf7\xe0@\xe7\xbf!>\xfb\ -\xbbS\x11\x18\xe83\xff\x1f\x22\xba\xf7\xfb!O\x97\xb9\ -\x00\x00\x00\x00IEND\xaeB`\x82\ -\x00\x00\x82\xd2\ -\x00\ -\x00\x01\x00\x02\x00@@\x00\x00\x01\x00 \x00(B\x00\ -\x00&\x00\x00\x00\x00\x00\x00\x00\x01\x00 \x00\x84@\x00\ -\x00NB\x00\x00(\x00\x00\x00@\x00\x00\x00\x80\x00\x00\ -\x00\x01\x00 \x00\x00\x00\x00\x00\x00@\x00\x00\x12\x0b\x00\ -\x00\x12\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\ -\x01\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x8e\x14\x00\x8d~\x0b\x01\x8d\xad%\ -\x12\x8d\xba-7\x8d\xc01f\x8d\xc53\x94\x8d\xc85\ -\xb9\x8d\xca6\xd5\x8d\xcb7\xe6\x8d\xcb7\xed\x8d\xcb7\ -\xec\x8d\xcb7\xe5\x8d\xca6\xd5\x8d\xc85\xbe\x8d\xc54\ -\x9d\x8d\xc11q\x8d\xbb-@\x8d\xaf&\x16\x8d\x8a\x12\ -\x02\x8d\x9b\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x01\xff\xff\xff\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d^\x0e\x00\x8d\xf8C\ -\x00\x8d\xaa#\x0d\x8d\xbb-@\x8d\xc42\x87\x8d\xc96\ -\xc4\x8d\xcd9\xe8\x8d\xd0:\xfa\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x8d\xd1;\xfc\x8d\xce9\xed\x8d\xca6\xca\x8d\xc43\ -\x8e\x8d\xbc.G\x8d\xae&\x12\x8d\x0b\x00\x00\x8d\x8f\x13\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8df\x0e\x00\x8d\xffI\x00\x8d\xae&\x13\x8d\xbe/\ -\x5c\x8d\xc75\xb8\x8d\xce9\xf0\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x8d\xcf9\xf4\x8d\xc96\xc4\x8d\xc00m\x8d\xb2(\ -\x1c\x8d\x16\x00\x00\x8d\x9a\x19\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x8d\xb7)\ -\x00\x8d\xa8#\x0a\x8d\xbc.U\x8d\xc85\xc0\x8d\xcf:\ -\xf8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc96\ -\xcf\x8d\xbe/f\x8d\xad%\x10\x8d\xc10\x00\x8d\x82\x0b\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x9e\x1c\x00\x8d\x00\x00\x00\x8d\xb6*\ -,\x8d\xc43\xa4\x8d\xce9\xf4\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcf:\xf9\x8d\xc64\xb3\x8d\xb8,9\x8d~\x08\ -\x01\x8d\xa0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaa#\x00\x8d\x9d\x1b\x04\x8d\xbc.U\x8d\xca6\ -\xd7\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd2<\xff\x8d\xcb7\xe2\x8d\xbe/\ -j\x8d\xa7!\x0a\x8d\xb1'\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb0'\ -\x00\x8d\xa5 \x0a\x8d\xbf0v\x8d\xcd8\xee\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8d\xd2:\ -\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3;\xff\x8d\xd2;\xff\x8d\xd2:\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xce9\ -\xf6\x8d\xc22\x91\x8d\xaf&\x13\x8d\xb7*\x00\x8d\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb2(\x00\x8d\xa9\x22\ -\x0c\x8d\xc11\x88\x8d\xcf9\xf7\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x8d\xd3;\xff\x8c\xd6B\xff\x89\xdbN\xff\x86\xe2]\ -\xff\x83\xe8k\xff\x81\xecu\xff\x80\xeey\xff\x80\xedx\ -\xff\x81\xebs\xff\x83\xe7k\xff\x85\xe3`\xff\x89\xdcQ\ -\xff\x8b\xd6C\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd0:\xfc\x8d\xc43\xa2\x8d\xaf'\x16\x8d\xb8+\ -\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xa5!\x0a\x8d\xc11\ -\x8a\x8d\xcf:\xf9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd4>\xff\x89\xdcQ\ -\xff\x82\xe9o\xff}\xf5\x88\xffz\xfb\x97\xffx\xfe\x9e\ -\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa2\xffx\xff\xa2\ -\xffx\xff\xa1\xffx\xff\xa1\xffx\xfe\x9f\xffy\xfc\x99\ -\xff|\xf6\x8b\xff\x82\xebr\xff\x88\xdeU\xff\x8c\xd5@\ -\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd0:\xfd\x8d\xc43\xa1\x8d\xad%\ -\x13\x8d\xb5)\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaa#\x00\x8d\x92\x14\x04\x8d\xbf0x\x8d\xcf9\ -\xf8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x8d\xd3=\xff\x88\xddS\xff\x80\xef{\xffz\xfb\x98\ -\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffx\xff\xa1\xffy\xfc\x9a\xff~\xf2\x82\ -\xff\x87\xe0Y\xff\x8c\xd4?\xff\x8d\xd3;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc22\ -\x91\x8d\xa6!\x0a\x8d\xaf&\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x9e\x1c\ -\x00\x8d\xf0N\x00\x8d\xbc.T\x8d\xcd8\xee\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8b\xd8G\ -\xff\x82\xebr\xffz\xfb\x98\xffx\xff\xa1\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffy\xfd\x9b\xff\x80\xeey\xff\x8a\xdaK\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf9\ -\xf7\x8d\xbf0p\x8de\x00\x01\x8d\xa8#\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d0\x00\x00\x8d\xbc-\ -\x00\x8d\xb5*)\x8d\xc96\xd4\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3;\xff\x88\xddR\xff}\xf4\x88\ -\xffx\xff\xa0\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff|\xf7\x8e\xff\x87\xe0Z\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcc8\xe7\x8d\xb9,B\x8d\xc85\x00\x8d\xa2\x1e\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xae%\x00\x8d\xa3\x1e\ -\x09\x8d\xc43\x9f\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x87\xe0Z\xff{\xf9\x92\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xffz\xfb\x98\ -\xff\x85\xe5d\xff\x8d\xd3=\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd2<\xff\x8d\xc75\xbd\x8d\xae%\x15\x8d\xb4)\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa5 \x00\x8d\xcd9\x00\x8d\xbc.\ -T\x8d\xce9\xf3\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x87\xe0Z\xffz\xfa\x95\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffy\xfc\x9a\xff\x85\xe4c\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd0:\xfc\x8d\xc00q\x8d\xffy\ -\x00\x8d\xa4 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xae%\x13\x8d\xc85\ -\xc0\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x88\xddR\ -\xff{\xf9\x93\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffz\xfb\x98\xff\x86\xe1[\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\xd5\x8d\xb3)\ -\x22\x8d\xb7+\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xa5 \x00\x8d\xcf9\x00\x8d\xbe/]\x8d\xcf:\ -\xf9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8b\xd7F\xff}\xf4\x87\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff{\xf8\x90\xff\x89\xdbM\ -\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xc11\ -y\x8d\xffm\x00\x8d\xa5 \x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xaf&\x00\x8d\xa6!\x0b\x8d\xc75\xb5\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3=\xff\x82\xeap\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xf6\x95\xffx\xfb\x9c\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff\x7f\xf0}\ -\xff\x8c\xd5@\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\ -\xcf\x8d\xb1(\x1a\x8d\xb4)\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xbe/\x00\x8d\xba-<\x8d\xce9\xee\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd2;\xff\x88\xddS\xffz\xfb\x97\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa2\xffz\xddx\xffy\xe6\x83\xffx\xff\xa2\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffy\xfd\x9c\ -\xff\x86\xe2]\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\ -\xfa\x8d\xbe/[\x8d\xcb7\x00\x8d\xa3\x1f\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\ -\x00\x8d\xff^\x00\x8d\xc32\x81\x8d\xd1;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd4>\xff\x80\xef{\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa2\xffz\xd9s\xff{\xc5[\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xff~\xf3\x85\xff\x8c\xd6B\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2<\ -\xff\x8d\xc64\xa5\x8d\x91\x14\x05\x8d\xad%\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\ -\x00\x8d\xaa#\x0e\x8d\xc96\xc0\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x89\xdcO\xffz\xfb\x97\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa2\xffz\xe0{\xff}\xa65\xffy\xf5\x95\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffy\xfd\x9c\xff\x87\xe0Z\xff\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcc7\xda\x8d\xb5)\x1f\x8d\xb6*\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbb-\ -\x00\x8d\xb9,/\x8d\xcd8\xe8\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x83\xe8l\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa2\xffy\xe8\x85\xff~\x95 \xffz\xdcu\ -\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xff\x80\xeez\xff\x8d\xd4=\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcf:\xf6\x8d\xbe/I\x8d\xc22\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa0\x1e\x00\x8d\xc96\ -\x00\x8d\xc00Z\x8d\xd0:\xfb\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8c\xd5A\ -\xff}\xf4\x87\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffy\xee\x8c\xff~\x93\x1e\xff|\xb7I\ -\xffx\xfe\x9f\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xff{\xf8\x91\xff\x8b\xd8G\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd1;\xff\x8d\xc32w\x8d\xdeC\x00\x8d\xa7!\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\x00\x8d\xf0N\ -\x00\x8d\xc43\x81\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x89\xdbN\ -\xffz\xfb\x97\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffy\xf3\x92\xff~\x99%\xff~\x97#\ -\xffy\xf0\x8e\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffy\xfd\x9c\xff\x87\xdfW\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xc75\xa0\x8d`\x00\x02\x8d\xac%\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xac$\x00\x8dP\x00\ -\x02\x8d\xc75\x9f\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2:\xff\x86\xe1]\ -\xffx\xfe\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffx\xf7\x97\xff~\xa0.\xff\x7f\x87\x0f\ -\xff{\xd2j\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xff\x84\xe6h\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xca6\xbe\x8d\xa9\x22\x0b\x8d\xb0'\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xaf&\x00\x8d\xa0\x1d\ -\x07\x8d\xc96\xb4\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x84\xe7i\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xfb\x9b\xff}\xa87\xff\x7f\x83\x0b\ -\xff}\xae>\xffx\xfc\x9c\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff\x81\xedv\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xcc8\xd2\x8d\xb3)\x16\x8d\xb4)\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xac$\ -\x0d\x8d\xcb7\xc2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x82\xebr\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xfd\x9e\xff}\xb0@\xff\x7f\x84\x0c\ -\xff~\x92\x1d\xffy\xe9\x86\xffx\xff\xa2\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff\x7f\xf1\x80\xff\x8d\xd4>\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xcd8\xdd\x8d\xb7+\x1f\x8d\xb8+\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xb0'\ -\x10\x8d\xcb7\xc9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x81\xedv\ -\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xff|\xb8J\xff\x7f\x85\x0d\ -\xff\x7f\x87\x0f\xff{\xc8^\xffx\xff\xa2\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff~\xf2\x83\xff\x8c\xd4?\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xce9\xe1\x8d\xb9,#\x8d\xba,\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb3)\x00\x8d\xb1'\ -\x11\x8d\xcc7\xca\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x81\xedw\ -\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffy\xe7\x84\xff{\xcfg\ -\xffy\xef\x8d\xffx\xfe\x9f\xffx\xff\xa2\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa1\xff|\xc0T\xff\x7f\x85\x0d\ -\xff\x7f\x85\x0d\xff}\xa43\xffx\xf8\x98\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff~\xf2\x83\xff\x8c\xd4?\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xce9\xe0\x8d\xb9,\x22\x8d\xba,\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb2(\x00\x8d\xae%\ -\x0e\x8d\xcb7\xc5\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x81\xebs\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xffz\xdbu\xff\x7f\x8b\x14\ -\xff~\x98#\xff|\xbaL\xffz\xe0z\xffx\xf8\x98\ -\xffx\xff\xa2\xffx\xff\xa3\xff{\xc9_\xff\x7f\x86\x0e\ -\xff\x7f\x87\x0e\xff\x7f\x8d\x17\xffz\xe1|\xffx\xff\xa2\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff\x7f\xf0\x7f\xff\x8d\xd4>\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xcd8\xdb\x8d\xb7+\x1e\x8d\xb8+\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb0&\x00\x8d\xa5 \ -\x09\x8d\xca6\xb9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x83\xe7j\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xffz\xe2}\xff\x7f\x8d\x16\ -\xff\x7f\x86\x0d\xff\x7f\x86\x0d\xff\x7f\x8d\x17\xff}\xa64\ -\xff{\xccc\xffy\xf0\x8e\xff{\xd0g\xff\x7f\x88\x10\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff|\xbdQ\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xff\x81\xedw\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xcc8\xd1\x8d\xb3)\x15\x8d\xb5)\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xad%\x00\x8dn\x00\ -\x02\x8d\xc85\xa2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2:\xff\x86\xe1]\ -\xffx\xfe\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa2\xffy\xe8\x84\xff~\x90\x1a\ -\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0e\xff\x7f\x85\x0d\ -\xff\x7f\x88\x10\xff~\x99$\xff}\xa20\xff\x7f\x88\x10\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff~\x9c)\xffy\xf3\x92\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff\x83\xe8k\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xca7\xc0\x8d\xaa#\x0c\x8d\xb1'\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa8\x22\x00\x8d\xf3P\ -\x00\x8d\xc53\x82\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x89\xdbN\ -\xffz\xfb\x98\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffy\xec\x8a\xff~\x93\x1e\ -\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff\x7f\x86\x0e\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x8a\x12\xffz\xd7p\ -\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffy\xfe\x9d\xff\x87\xe0Z\xff\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xc85\xa5\x8d\x81\x0a\x03\x8d\xad%\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa0\x1d\x00\x8d\xc96\ -\x00\x8d\xc01[\x8d\xd0:\xfc\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8c\xd6B\ -\xff}\xf5\x89\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffy\xf0\x8f\xff~\x97\x22\ -\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb3D\ -\xffx\xfd\x9e\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xff{\xf9\x92\xff\x8a\xd9I\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd2;\xff\x8d\xc43\x7f\x8d\xeeL\x00\x8d\xa8\x22\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbb.\ -\x00\x8d\xba-2\x8d\xce9\xeb\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x82\xeap\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffy\xf5\x94\xff~\x9c(\ -\xff\x7f\x86\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff~\x95 \ -\xffy\xed\x8a\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xff\x80\xef|\xff\x8d\xd4>\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd0:\xf8\x8d\xbe/O\x8d\xc43\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1(\ -\x00\x8d\xad%\x11\x8d\xca6\xc6\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x88\xddR\xffz\xfc\x99\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffx\xf8\x98\xff}\xa20\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x10\ -\xff{\xcdd\xffx\xff\xa2\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffy\xfe\x9e\xff\x86\xe2]\xff\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcc8\xdd\x8d\xb6*\x22\x8d\xb7+\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa9#\ -\x00\x8d\xff\xff\x00\x8d\xc43\x8c\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8c\xd4?\xff\x7f\xf0~\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xfb\x9b\xff}\xa87\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x85\x0d\ -\xff}\xa98\xffx\xfa\x9a\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xff}\xf5\x8a\xff\x8b\xd7D\xff\x8d\xd3;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xc64\xa8\x8d\x96\x17\x06\x8d\xad%\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xc01\x00\x8d\xbc.D\x8d\xce9\xf2\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd2;\xff\x88\xdeV\xffy\xfc\x99\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xfd\x9e\xff}\xaf?\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x86\x0e\ -\xff~\x90\x19\xffy\xe5\x81\xffx\xff\xa2\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xfe\x9e\ -\xff\x85\xe4b\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\ -\xfb\x8d\xbf0`\x8d\xce9\x00\x8d\xa4\x1f\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xb1'\x00\x8d\xaa#\x0f\x8d\xc85\xbd\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd4>\xff\x81\xedw\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xff|\xb6H\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x8b\x14\xff\x7f\x88\x10\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x86\x0e\xff|\xc2W\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff\x7f\xf1\x81\ -\xff\x8c\xd5A\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca7\ -\xd6\x8d\xb3)\x1f\x8d\xb6*\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xa7!\x00\x8d\xd4=\x00\x8d\xbf0c\x8d\xd0:\ -\xfb\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8a\xd9J\xff|\xf6\x8c\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xff|\xbdP\ -\xff\x7f\x85\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff|\xb3E\xff{\xcdd\ -\xff}\xa54\xff\x7f\x8d\x16\xff\x7f\x85\x0d\xff\x7f\x86\x0e\ -\xff\x7f\x85\x0d\xff~\xa0.\xffy\xf5\x95\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff{\xf9\x94\xff\x89\xdcQ\ -\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc22\ -\x86\x8d\x00\x00\x00\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb4)\x00\x8d\xaf&\x17\x8d\xc85\ -\xc6\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x87\xdfW\ -\xffz\xfa\x96\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xc4Y\ -\xff\x7f\x86\x0d\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb9L\xffx\xff\xa2\ -\xffx\xf8\x98\xffz\xdex\xff|\xb8K\xff~\x97#\ -\xff\x7f\x87\x0f\xff\x7f\x8a\x12\xffz\xdbu\xffx\xff\xa2\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffy\xfd\x9b\xff\x85\xe4b\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcb7\xde\x8d\xb6*\ -,\x8d\xba-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa6!\x00\x8d\xd5>\x00\x8d\xbe/\ -^\x8d\xcf9\xf7\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x85\xe3`\xffz\xfc\x99\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xccb\ -\xff\x7f\x87\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff|\xb2C\xffx\xfe\x9f\ -\xffx\xff\xa1\xffx\xff\xa2\xffx\xfe\x9f\xffy\xee\x8c\ -\xff{\xcdd\xff}\xa53\xff|\xc3W\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffy\xfd\x9d\xff\x83\xe8k\xff\x8d\xd4>\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd0:\xfe\x8d\xc11~\x8d\x08\x00\ -\x01\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb1'\x00\x8d\xaa#\ -\x0e\x8d\xc54\xae\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x85\xe3a\xffz\xfb\x97\xffx\xff\xa1\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa2\xff{\xd3k\ -\xff\x7f\x88\x10\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff}\xab;\xffx\xfc\x9c\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffx\xff\xa2\xffx\xf8\x98\xffy\xf1\x8f\xffx\xfe\x9f\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\xffy\xfc\x9b\ -\xff\x83\xe7j\xff\x8d\xd4>\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xc85\xc5\x8d\xb1'\x1b\x8d\xb6*\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x95\x15\x00\x8d\xc11\ -\x00\x8d\xb7+6\x8d\xcb7\xdf\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x87\xe0Y\xff|\xf7\x8e\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa2\xffz\xd9s\ -\xff\x7f\x8a\x12\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x85\x0d\xff}\xa53\xffx\xf9\x9a\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xffx\xff\xa1\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa1\xff{\xf9\x94\xff\x85\xe3a\ -\xff\x8d\xd4=\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xcd8\xec\x8d\xbb-K\x8d\xcc8\x00\x8d\xa6 \ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xa6 \ -\x00\x8d\xff\xff\x00\x8d\xbd/c\x8d\xce9\xf3\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\xff\x8a\xdaK\ -\xff\x80\xeey\xffy\xfd\x9b\xffx\xff\xa3\xffz\xe0{\ -\xff\x7f\x8c\x15\xff\x7f\x87\x0f\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0d\xff~\x9f,\xffx\xf7\x96\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa1\ -\xffy\xfe\x9e\xff~\xf2\x81\xff\x89\xdcQ\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd0:\ -\xfb\x8d\xc01\x7f\x8d\x8d\x11\x04\x8d\xaa#\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xad%\x00\x8d\x9f\x1c\x07\x8d\xc11\x85\x8d\xcf:\ -\xfa\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x8c\xd4?\xff\x87\xe1[\xff~\xf4\x86\xffz\xe4}\ -\xff~\x8e\x18\xff\x7f\x86\x0e\xff\x7f\x87\x0f\xff\x7f\x87\x0f\ -\xff\x7f\x87\x0f\xff\x7f\x86\x0e\xff~\x9a%\xffy\xf3\x91\ -\xffx\xff\xa1\xffx\xff\xa0\xffx\xff\xa0\xffx\xff\xa0\ -\xffx\xff\xa1\xffx\xff\xa1\xffy\xfe\x9d\xff}\xf4\x88\ -\xff\x85\xe3`\xff\x8c\xd5A\xff\x8d\xd3;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc43\ -\xa4\x8d\xab#\x10\x8d\xb3(\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb3(\x00\x8d\xaa#\x0f\x8d\xc32\ -\x98\x8d\xd0:\xfc\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8c\xd6B\xff\x88\xd6L\ -\xff\x85\xab&\xff\x81\x94\x17\xff\x80\x8a\x11\xff\x7f\x87\x0f\ -\xff\x7f\x86\x0e\xff\x7f\x85\x0d\xff~\x94\x1f\xffy\xee\x8d\ -\xffx\xff\xa3\xffx\xff\xa1\xffx\xff\xa0\xffy\xfd\x9c\ -\xff{\xf9\x92\xff\x80\xef|\xff\x86\xe1\x5c\xff\x8c\xd6C\ -\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc54\xb3\x8d\xb1(\ -\x1c\x8d\xbc-\x00\x8d4\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb5)\x00\x8d\xae%\ -\x13\x8d\xc32\x9b\x8d\xd0:\xfb\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3;\ -\xff\x8d\xd3<\xff\x8c\xcc8\xff\x89\xc01\xff\x87\xb3)\ -\xff\x85\xa9#\xff\x84\xa2\x1e\xff\x83\xa6&\xff\x7f\xe4q\ -\xff\x7f\xf1\x7f\xff\x81\xecv\xff\x84\xe6h\xff\x87\xdfX\ -\xff\x8a\xd8H\xff\x8d\xd4>\xff\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd1;\xfe\x8d\xc54\xb1\x8d\xb2( \x8d\xbf0\ -\x00\x8d\x8d\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb4)\ -\x00\x8d\xad%\x11\x8d\xc21\x8c\x8d\xce9\xf5\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd4=\xff\x8d\xd4=\ -\xff\x8d\xd3<\xff\x8d\xd2<\xff\x8d\xd2;\xff\x8d\xd4>\ -\xff\x8d\xd4=\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xd2;\ -\xff\x8d\xd3;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\ -\xfa\x8d\xc33\xa0\x8d\xb0'\x1a\x8d\xbe0\x00\x8d\x85\x0c\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\xb0'\x00\x8d\xa5 \x09\x8d\xbe/h\x8d\xcb7\ -\xe2\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcd8\xed\x8d\xc01\ -~\x8d\xad$\x0f\x8d\xb4)\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d \x00\ -\x00\x8d\x1e\x00\x00\x8d\x0f\x00\x00\x8d\xff\x9a\x00\x8d\xb5*\ -@\x8d\xbe/\xe5\x8d\xcb7\xff\x8d\xd2;\xff\x8d\xd4<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd0:\xfd\x8d\xc85\xc7\x8d\xbb-M\x8d\x9f\x1c\ -\x04\x8d\xaa#\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xad%\x00\x8d\xa2\x1e\ -\x04\x8d\xc00g\x8d\xc74\x9a\x8d\xc43s\x8d\xb9,\ -e\x8d\xad%\xe7\x8d\xae&\xff\x8d\xb8+\xff\x8d\xc53\ -\xff\x8d\xcf:\xff\x8d\xd3<\xff\x8d\xd4<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xcb7\ -\xdc\x8d\xc11{\x8d\xb1'\x1a\x8d\xffS\x00\x8d\x7f\x0f\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xb6*\x00\x8d\xb4)\ -\x1d\x8d\xcb7\xd9\x8d\xd3<\xff\x8d\xd1;\xfe\x8d\xcf:\ -\xfa\x8d\xca7\xfe\x8d\xc43\xff\x8d\xbd.\xff\x8d\xb8+\ -\xff\x8d\xb9,\xff\x8d\xc00\xff\x8d\xc85\xff\x8d\xce9\ -\xff\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd0:\xfb\x8d\xca7\xd4\x8d\xc21\x80\x8d\xb5*\ -'\x8d\x8b\x10\x02\x8d\x9f\x1c\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xbf0\x00\x8d\xbc.\ -<\x8d\xcf9\xf1\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd4<\xff\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd2;\ -\xff\x8d\xcf9\xff\x8d\xca6\xff\x8d\xc64\xff\x8d\xc43\ -\xff\x8d\xc43\xff\x8d\xc64\xff\x8d\xc85\xff\x8d\xcb7\ -\xff\x8d\xce9\xff\x8d\xd0:\xff\x8d\xd1;\xff\x8d\xd2<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd1;\xff\x8d\xcf:\xf7\x8d\xcc8\xdc\x8d\xc74\ -\xa9\x8d\xbf0_\x8d\xb3(\x1d\x8d\x86\x0d\x01\x8d\x99\x19\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xa1\x1e\x00\x8d\xcd8\x00\x8d\xc11\ -d\x8d\xd1;\xfe\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd4<\xff\x8d\xd4<\xff\x8d\xd3<\ -\xff\x8d\xd1;\xff\x8d\xcf9\xff\x8d\xcb7\xff\x8d\xc75\ -\xff\x8d\xc32\xff\x8d\xbf0\xff\x8d\xbd/\xff\x8d\xbc.\ -\xff\x8d\xbb.\xff\x8d\xbc.\xff\x8d\xbd.\xff\x8d\xbc.\ -\xed\x8d\xc01\x81\x8d\xbe/H\x8d\xb5* \x8d\x9f\x1d\ -\x06\x8d\xcb4\x00\x8dc\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xaa#\x00\x8d\xff\x99\x00\x8d\xc54\ -\x8f\x8d\xd2;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xcf9\xff\x8d\xca6\ -\xff\x8d\xc43\xff\x8d\xbd/\xff\x8d\xb6*\xff\x8d\xb1'\ -\xd7\x8d\xb2(8\x8d\xa9\x22\x0f\x8d\x85\x10\x02\x8d\xa7\x1b\ -\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xae&\x00\x8d\xa3\x1f\x09\x8d\xc96\ -\xb8\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xcf:\ -\xfc\x8d\xcd8\xe8\x8d\xca7\xcd\x8d\xc54\xa5\x8d\xbb-\ -;\x8d\xc95\x00\x8d\xa8\x22\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb6*\x00\x8d\xb5*\x1d\x8d\xcc8\ -\xd9\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd2;\xff\x8d\xc43\ -\x8b\x8d\xffe\x00\x8d\xa9\x22\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xbd/\x00\x8d\xbc.5\x8d\xce9\ -\xef\x8d\xd4<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc32\ -r\x8d\xd8?\x00\x8d\xa7!\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\xb8,\x00\x8d\xb7+\x1f\x8d\xc75\ -\xb7\x8d\xce9\xe9\x8d\xd0:\xf9\x8d\xd2;\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcf:\xf6\x8d\xbe/\ -I\x8d\xc32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8d\x8e\x13\x00\x8dZ\x00\x00\x8d\xae&\ -\x10\x8d\xb9,-\x8d\xbf0P\x8d\xc33z\x8d\xc75\ -\xa5\x8d\xcb7\xcb\x8d\xcd9\xe7\x8d\xd0:\xf9\x8d\xd2;\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xcd8\xe3\x8d\xb8+\ -'\x8d\xb9,\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x8dL\x00\x00\x8d\xda3\x00\x8d\x93\x17\ -\x04\x8d\xaf&\x12\x8d\xb9,,\x8d\xbf0O\x8d\xc32\ -y\x8d\xc75\xa4\x8d\xca7\xc9\x8d\xcd8\xe6\x8d\xd0:\ -\xf8\x8d\xd1;\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xca6\xc5\x8d\xac$\ -\x0f\x8d\xb1'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d2\x00\x00\x8d\xd9.\ -\x00\x8d\x90\x16\x03\x8d\xaf&\x11\x8d\xb9,*\x8d\xbf0\ -M\x8d\xc32w\x8d\xc75\xa2\x8d\xca7\xc8\x8d\xcd8\ -\xe5\x8d\xd0:\xf8\x8d\xd1;\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xd3<\ -\xff\x8d\xd3<\xff\x8d\xd3<\xff\x8d\xc74\x9f\x8d^\x00\ -\x02\x8d\xac$\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\x0d\x00\ -\x00\x8d\xd6)\x00\x8d\x8c\x15\x03\x8d\xae%\x11\x8d\xb9,\ -)\x8d\xbf0K\x8d\xc32u\x8d\xc75\x9f\x8d\xca7\ -\xc5\x8d\xcd8\xe3\x8d\xcf:\xf5\x8d\xd1;\xfe\x8d\xd2<\ -\xff\x8d\xd3<\xff\x8d\xd1;\xff\x8d\xc32s\x8d\xd9@\ -\x00\x8d\xa6 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\ -\x01\xff\xff\xff\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x8d\x00\x00\x00\x8d\xce%\x00\x8d\x89\x13\x03\x8d\xad%\ -\x12\x8d\xb8,-\x8d\xbe0T\x8d\xc32\x83\x8d\xc74\ -\xb4\x8d\xca7\xe2\x8d\xc85\xe0\x8d\xba-<\x8d\xbe/\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\xff\xff\xff\x00\xff\xff\xff\x00\xff\xff\xff\x01\x7f\xff\xfe\ -\x00\x00\x7f\xff\xfe\xff\xff\xf8\x00\x00\x1f\xff\xff\xff\xff\xe0\ -\x00\x00\x07\xff\xff\xff\xff\x80\x00\x00\x01\xff\xff\xff\xff\x00\ -\x00\x00\x00\x7f\xff\xff\xfc\x00\x00\x00\x00?\xff\xff\xf8\x00\ -\x00\x00\x00\x1f\xff\xff\xf0\x00\x00\x00\x00\x0f\xff\xff\xe0\x00\ -\x00\x00\x00\x07\xff\xff\xc0\x00\x00\x00\x00\x03\xff\xff\xc0\x00\ -\x00\x00\x00\x01\xff\xff\x80\x00\x00\x00\x00\x01\xff\xff\x00\x00\ -\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\xff\xfe\x00\x00\ -\x00\x00\x00\x00\x7f\xfe\x00\x00\x00\x00\x00\x00\x7f\xfc\x00\x00\ -\x00\x00\x00\x00?\xfc\x00\x00\x00\x00\x00\x00?\xfc\x00\x00\ -\x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ -\x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ -\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ -\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ -\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ -\x00\x00\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x00\x0f\xf0\x00\x00\ -\x00\x00\x00\x00\x0f\xf8\x00\x00\x00\x00\x00\x00\x0f\xf8\x00\x00\ -\x00\x00\x00\x00\x1f\xf8\x00\x00\x00\x00\x00\x00\x1f\xf8\x00\x00\ -\x00\x00\x00\x00\x1f\xfc\x00\x00\x00\x00\x00\x00\x1f\xfc\x00\x00\ -\x00\x00\x00\x00?\xfc\x00\x00\x00\x00\x00\x00?\xfe\x00\x00\ -\x00\x00\x00\x00\x7f\xfe\x00\x00\x00\x00\x00\x00\x7f\xff\x00\x00\ -\x00\x00\x00\x00\x7f\xff\x00\x00\x00\x00\x00\x00\xff\xff\x80\x00\ -\x00\x00\x00\x01\xff\xff\xc0\x00\x00\x00\x00\x01\xff\xff\xc0\x00\ -\x00\x00\x00\x03\xff\xff\xe0\x00\x00\x00\x00\x07\xff\xff\xf0\x00\ -\x00\x00\x00\x0f\xff\xff\xf8\x00\x00\x00\x00\x1f\xff\xff\xfc\x00\ -\x00\x00\x00?\xff\xff\xff\x00\x00\x00\x00\x7f\xff\xff\xf0\x00\ -\x00\x00\x01\xff\xff\xff\xf0\x00\x00\x00\x03\xff\xff\xff\xf0\x00\ -\x00\x00\x0f\xff\xff\xff\xf0\x00\x00\x00\x7f\xff\xff\xff\xf0\x00\ -\x00\x00\xff\xff\xff\xff\xe0\x00\x00\x00\x7f\xff\xff\xff\xe0\x00\ -\x00\x00\x7f\xff\xff\xff\xe0\x00\x00\x00\x7f\xff\xff\xff\xe0\x00\ -\x00\x00\x7f\xff\xff\xff\xf0\x00\x00\x00\x7f\xff\xff\xff\xff\x00\ -\x00\x00\x7f\xff\xff\xff\xff\xf8\x00\x00\x7f\xff\xff\xff\xff\xff\ -\xc0\x00\xff\xff\xff\x7f\xff\xff\xfe\x00\xff\xff\xfe\x89PN\ -G\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\x00\x01\ -\x00\x00\x00\x01\x00\x08\x06\x00\x00\x00\x5cr\xa8f\x00\x00\ -@KIDATx\xda\xed\xbdy\x9c\x1d\xd7]\xe0\ -\xfb=\xe7T\xd5\xdd{Swk\x97%\xb5\xb5x\x89\ -\xb3\x98,$\x84\x90\x0d\xcf\x0c\x90G 1\x84\x10\x18\ -`X'\x0cy\x13\xf6\xc9\x83\x07\x0c[\x86\x1e\x96\xc0\ -\x10\xde0\x90\x04\x02D&\x0b\x09L /\x84\x00!\ -!\x89cg\xb3\xbcE\xb6dY\x96\xb5t\xb7\xba\xfb\ -n\xb5\x9cs\xe6\x8f\xba\xb7\xd5\x92ZRK\xba\xb7\xaa\ -\xee\xed\xfa~>mkiu\x9d[U\xbf\xf5\xfc~\ -\xbf#\xc8\xc9\xb9\x01\xb6\xbc}\x16\xbf\x01#\xd3\x14\xa4\ -b\x02\xc1\x0e!9 %wH\xc5\xcdB1\x82E\ -\xea\x90'\x8d\xe1\xddB\xf01 \ -\xe5\xb2\xb5\xe3\xc6{\x8e\xdb\x11v\x07\x84\xbc\xf1\xeb7\ -\x17`\xe9\x14oQ\x1e\xbf\x1c\xf9y\x18\x906\xce\x8d\ -\xff\x88\x9c\xac\xb2\xe3\x8fg\xb1\x1a\xe1\x96(\x0a\xc1\xb8\ -\x90\xec\x10\x82\xbd\xc5\x1a\xb7I\xc5\x01\xe92\xa3\x1c\xb6\ -9\x1e\xe3\xca\xc3s<\x84t@\xf5H\xd8\xd7By\ - \x14\xb7\xb7\x97\xf0\x9c\x02A\xda\xf7h\xa3\x93+\x80\ -!\xe1\xa6?\x99\xc5Z\x84\x94\x14\x85dBH\xb6\x0b\ -\xc1>\xa18 %\xb7I\x97\xdd\xcaa\x87\xe31\xaa\ -<\x0a\x8e\x07]7\xbe_\xc2\xbe\x16\x8e\x0b\xcaa\xaf\ -\x90\x8c\x02g\xd2\xbeo\x1b\x9d\x5c\x01\x0c \xbb\xde\xd5\ -\x11vEQJ6u\x84}\xbfP\x1c\x90\x8a[\xa4\ -\xc3^\xe5\xb2\xcdq\x19s<<\x95\x92\xb0\xafE\xc7\ -\xc3\xd8)$\xdb\xc9\x15@\xea\xe49\x80\x0c\xa3\xde<\ -\xcb\xee\xe7Cs\x01Q\xa8P\x12\xb1\xb0\xef\x10\x82\x9b\ -\x85\xe2V\xa9\xd8/\x1dnv\x5c\xb6(\xaf#\xecn\ -v\x84\xfdr,\x9d\xa2U\x9f\xe3\xf5B\xf0~\xc8\xf3\ -\x00i\x92{\x00\x19b\xe7;f1\x1a\xe1\x16)\x0b\ -\xc1\x84\x90\xec\x02f*\x9b\xb8M*\xf6\xab8\x1b\xbf\ -Ey\x8c\xaeXv'\xdb\xc2\xbe\x16\x8eGIHn\ -U.\xef\xd7y\x16 Ur\x05\x90\x12\xbb\xdf\x1do\ -\xbdI\x87\xb2\x90l\x12\x82\x9dB\xb2_H\x0eJ\xc5\ --*\x8e\xd9\xb7)\x8f\xda \x0b\xfb%\x888\x11(\ -\x15\xb7\xb4\x97p\xdd\xe2\xf9=\xe9\x9c\xe4\xc9\x15@\x02\ -\xec\xfe\xd3Y\x8cF\x0aEIJ\xa6\x84\x8c\xcbe\x9d\ -B\x1c\xb3+\x87\xdd\xcac\xabr\x19q\x0a\xb8\xca\x1d\ -\x12a_\x0b\xdb\x09Q\x1cn\x96\x8aQ\xe0l\xdaK\ -\xda\xc8\xe4\x0a\xa0\xc7\xeczW,\xec\x8eGYH&\ -\x85`\x97\x90\xecs\xe2}\xf6\xfd*N\xd0mV.\ -\xa3\x8e\x87\xe3xqbl(\x85\xfd2H\xb5\x92\x08\ -\xdcF\xae\x00R%O\x02^'\xd3\xbf=Ku+\ -\x04\x0d\xa4\xe3Q\xed\xb8\xf17\x09\xc9\xcdBr[G\ -\xd8\xf7(\x97\xcd\x8e\xc7\x88\xf2p\x9cNA\x8dt`\ -\xa3\xb7\x5ct\x12\x81\xaf\x13\x82\xbf\x82<\x11\x98\x16\xb9\ -\x07\xb0\x1e\xbes\x96\x99WC\xd8@JEUH\xa6\ -\x84`\xa7\x80\x83\xa5\x11\x0e\x88\xd8\x8d\xdf\xa5\x5c\xb6:\ -\x1e\xd5\x15a\xeff\xe37\xb8\xb0\xaf\x85\xe3Q\x12\x82\ -\xdb\xa4\xe2\xafL^\x88\x9e\x1a\xb9\x02\xb8\x88M\xbf5\ -\xcb\xd4^h\x9eCIEEH\xa6\x85`'\x9a\x83\ -^\x99\x83\xca\xe1\xa0t\xb8\xc9\xf1\x98V.5\xc7\xc3\ -\xe9&\xe8D.\xec\xeb\xe3|\x22\xf0\x80\xdf\xc0q\x8b\ -Di/i\xa3\xb2\xa1\x15\xc0\xb6\xff9\xcb\xe9\xc7a\ -\xeb~\x94rW,\xfb\xee\xb0\xcd>\xaf\xc2mJ\xb1\ -O:\xecq<\xa6:\xc2\xae.\x11v\xc1\xaa\xd6\x8a\ -\x9cuq>\x11x@:\x8c\x91\xe7\x01Rc\xc3(\ -\x80\x89\xdf\x98\xe5\x05?\x00_z\x1fJy\xd4\x84`\ -J\x08\xf6\xdc\xf4,\xf6\xc9NQ\x8dr\xb9I\xb9L\ -+\x8f\xaa\xe3\xa1\xba\xd9\xf8+\x0a{.\xfc\xd7\x85T\ -\xa0\x5c\xb6\x0b\xc1\x16r\x05\x90\x1aC\xaa\x00f\xd9{\ -\x08t\x80#$U!\xd8,\x047=\xfc\xb7\x1c,\ -\xd6:[o.;;\xc2^\xc9\x85=y\xa4\x04\xc7\ -c\x93\x90\xdc\x8c\xe0\xcbi\xafg\xa32\xf0\x0a`\xcf\ -\x9f\xcd\x12E\xa0\x14\x0eP\x15\x92-Bp\x93\x80\x83\ -^\x89\x83\xd2\xe1@'A7\xd5\xb1\xec\xf2\x12a_\ -\x8b\x5c\xd8\xfbK\x9c\x07(\x09\xc1\x01\xa5`\xe6\xd0l\ -\xbe\x13\x90\x02\x03\xad\x00\xf6\xbeg\x16\x01c\xae\xe2e\ -R\xf1\xf5\xcae\x7f\xa7\xa8f\x93\xe3RU\x1e\xd2\xf1\ -:\x99\xf8\xb1\xfb\xdd\xb3s:\ -\xa4%\x1d\xec\xb1\xef\xcc\xc3\x81\xac2\xf0\x11\xf3J\xf7\ -\x98\xe5\x07k\xd3\xfc~ur\xf0?\xd3\x15\xb9\x9ce\ -\xefX\xf5\x0bbv{^H\x858?,U\xc8\xb8\ -\x0bOtN$\xee\xfe^\xae\xfa\xfd\xca\x97\xb8p\xc8\ -\xea\xaa\xcb\x9f\xdf\xef\xb7\x1d\xa5\xd3\xc6F\x01\x8b:\xe2\ -\xb8\xd1g5\xf7\x1b\ -\xc3\xfd\xc01k\x98\x07\xcc\xd1\xbc\x0e 5\x86BT\ -f\x0e\xcdb\x22v\x17G\xf8\xe8\xf8\x0ef\x062\x0f\ -p\x91\x1b\x7f\x89\xb0wcv\x13\x0b\xbb\x10\xe7\x05\xda\ -\xf1\xe2\x11\xdb\xdds\x0b\xa5\xb3\xca\x9a\xafr\xe1\xe3\x1f\ -\x9e\xfcG\xb3fU\xcd@\x9b(\xf49\xab\x03\xbe\xa2\ -C>i\x0c\x9f\xb4\x86\xfb\xb0\x9c\x02\x02\x04<\xfe\xba\ -\x5c!$\xc5\xd0(\x00\x1dR\xf5\xca|`|\x07/\ -w\x8bi\xaf\xe8*\xac\x12v\xa3WU\xd1\x05\xab,\ -{\x10\x0b;6v\xd5UG\xd0\x1d\x0fT\xa1#\xf0\ -\xab\x04}\xe5\xe7B\xe6s \xdd\xcf\x1b\xb6\xb1A\x93\ -F\x14\xf0X\x14p\xaf\xd1\xfc\xffX>m4O\x08\ -\x89\xce\x15A\xff\x19\x1a\x05\xf0\xe3\xaf\x85\xd9\xf7\xf2\xb6\ -\xb1m\xbc\xb18Bv\x84`\xbd\xc2\xae;\x96=\x9e\ -\x90\x83\xe3\x81[\x04\xa7\xd09A\xc7\x89\xddv\x86\xec\ -\xc0\x93\xae\xb7\x13\xb6\xc0o\xd2\x0a\x9b<\xaaC>f\ -4\x1f\xb1\x96\xcf\x0a\xc1\x9c\xb5\xd8\x5c\x19\xf4\x87\xa1P\ -\x00\x007\xdf3\x8b5\xfcHm\x9a\xdf\xabN\xa6\xb4\ -\x88\x8bc\xf6p\x8d\xad\xb7\xe8\xc2\xa2\x1a\x11\xcf\xc4\xc3\ --\x9e\xffR\xdd\xe3\xcc\x86L\xd8\xafFg6\x00A\ -\x0b\x82:\x8ba\x9b\xcf\xeb\x90\xf7[\xcb\x87\x81\xa3@\ -\xf0\xd8\xb7\xe7\x8a\xa0\x97\x0c\x8d\x02\xe8&\x02+\x13|\ -ptK\x02\x89\xc0\xb5b\xf6`\x0da\xefl\xbd\xad\ -\xce\xc6+7\xb6\xec^)\xfeR\x05P\x8a\xa1\xb3\xee\ -7\x82\xd1\x10\xb6\xa1\xbdL\x184y<\x0a\xf8\xa8\xd5\ -\xdc\x03|\x16A\xc3Zx0\xb1\x83\x97;\ -\x85\x1b\xb8\x1bk\x09\xbb\x7f\xbe\x11f\xb5e_\xb3\xa2\ -\xa6SQ\xa7\x5c\xf0\xcaP\xa8v,\xbd\xc3\x10\xdd\xf1\ -\xe4\xd1!\xf8\x0d\xf0\xeb4\xfc&\x9f0\x11\xef\xc4\xf2\ -\x91\xa0\xc5\x9c[\xc8\x15\xc1\xf504\xaf\xe3\xcc\xa1Y\ -\x1as\x88\xea$\xbf3\xb2\x857\x96\xc7Y\xb7+\xbd\ -\xbaz\xce\x9a\x8ee\x0f@\xaf\x8e\xd9-\x5c\xb66~\ -\x15R\xc5\x96\xbeX\x05\xaf\x12\xef\xc3#\xd7\xbf\x96\x9c\ -\xabct\xac\x08\xdaK4\x82&\x9f\xd2\x11\x7f\x8e\xe5\ -\x83Bq\xd6j\xc8\xf3\x04\xebgh\x14\x00t\xf2\x00\ -\x96W\x17*\xbcst\x0b5\xa7\xbb\x1d\xb8J\xf8\xba\ -\xc2\xae\xa3\x95\x0c|;\x0a8\xa7C\x9e\x8c\x02\x0a\xd6\ -r;\x16\xb1f\xc7\xdbZt\xbe\xcf\xf1bK_\xac\ -\xc5.~\xee\xde\xf7\x1f\xa3!hBk\x91v\xd0\xe4\ -\xe3:\xe2\x1dX>\x82`\x01\xe0\xb1o\xcb\x15\xc1\xd5\ -\x18:\x05\x80\xa5\x86\xe0-^\x89\x1f*\x8d1\xe2x\ -\xb1\xf5\xd6!6\x0a\x08t\xc0\xbc\x0eyJG}\xd7\xda\x17\xaa\xb9\xb5\xcf\x12F\ -C{\x09\x9a\x8b\x9c\x09\xdb\xbc\xdf\x1a\xfeP\xc0}\x16\ -t\xae\x08\xd6f\xe8\x14@\x97\xb1\xffw\x16\xab\xc1\x19\ -G\x08\x09\xd2\xc1Z\x0bg~t\xed\x17\xa1\xd3T\xb4\ -\x03\xf8\x1b\xe0\x8e\x8b\xff^\xaa8\xa1W\xac\xc5\xb1\xfd\ -JB/\x8f\xed3\x87\x0e\xa1\xb5\x88m-r4\xf4\ -y;\x96?\x93\x8a\x13\xd6`\x8f\xe4\x8a\xe0\x02\x86V\ -\x01\x5c+\x1d\x05P\x02\xde\x0d\xbc\xba\xfb\xe7\xca\x8b\x13\ -z+\xb1\xbd\x22\x17\xfa\x01!hAs\x81\xc0\xafs\ -\x9f\x8e\xf8\x0db\xe5\x9e\x87\x05\xab\x18\x8ay\x00=$\ -\xc2\xf2\x14\x22.\xd4)\x8d\xc6\x82\xef\xac\xce\x08\xe4\xc2\ -?0x%p\x0bx\xed:/h\xcc\xf3\x07a\x8b\ -C\xd6\xf2;7\xbfw\xf6!\xab\xf3\xb1e\x90{\x00\ -\xcc\xbcg\xb6+\xd3\x93\xc0\xf7;\x1e?T\x1egW\ -i$O\xea\x0d\x13:\x80\xc6\x02\xb6\xb5\xc4\xfd:\xe4\ -\xad\xc0_\x91{\x03\x1b[\x01t\x12\x86\xd2\xc2\x0b\xa5\ -\xe2'\x0a\x15\xfeMe\x02\xcf+\xa7\xbd\xb2\x9c~`\ --\xf8\xcbP\x9fg!l\xf1.k\xf9-,G\x85\ -\xdc\xb8\xde\xc0\x86T\x00\x1d\xc1\xc7B\x0d\xf8v\xc7\xe3\ -\xa7*\xe3\xcc\x94\xc6\xe2d_\xcep\x13\x05\xd0\x98C\ -\xb7\x96\xf8'\xa3\xf9y!\xf8$\x16\xbd\x11\x13\x84\x1b\ -N\x01\xcc\x1c\x9a\xc5\xf1 \xf4\xd9+\x04?\xe5U\xf8\ -\x8e\xea\x04\xd5B5\xed\x95\xe5$\x895\xd0<\x07\x8d\ -\x05\x8ej\x9f\xb7Zx\xa7\x80\xe6FS\x02\x1bJ\x01\ -\xacr\xf9_\xac\x1c~\xa98\xc2\x0b\xab\x9bPy\xac\ -\xbfq\xf1\x1bP?\xcbR\xd0\xe4\x7fY\xcbob9\ -\xbe\x91B\x82\x0d\xa1\x00V%\xfaJ\xc0\x1b\x1c\x8f\x9f\ -\xacL0S\x1e\xcb\x8bxr.\x08\x09\xfe\xceD\xfc\ -\xf4\xb9y\xbe4\xbe\x096\x8270\xf4\x0a\xa0\xd3\x1f\ -\x000)\x04\xff\xb7W\xe2\x8d\xd5)FVU\xff\xe5\ -\xe4`44\xe6\xa1\xb9\xc0}:\xe2\xe7\x84\xe0\xc3\x80\ -\x19vO`\xa8S^3\x87f1\x1a\x84`FH\ -\xdeZ\xac\xf1\x1fF6S\xf6Ji\xaf,'k\x08\ -\x19Wz*\x97\xad\x91\xcf\x8b\x8cfN\xc0\xc3\x13\xaf\ -\xbd+Z\xf8\xcb\x8f\xa4\xbd\xbc\xbe1\xb4\x0a\xa03!\ -\x08!\xb9S*\xdeV\x19\xe3\x1bG\xa6q\xd4\xba\xda\ -|r6\x22B\xac\x8cd\x1b\xd3\x01/1\x1ak\xe1\ -\xbe\x89\xd7\xde\x15\x0e\xab\x12\x18\xca\x10`\xe6\xd0,B\ - \x8c\xe1%\xca\xe1\xd7+\x13<\xaf2\x91\xc7\xfb\x17\ -\xb0z~\xe1e\xfej#\x13\xb6`\xe94\x8d\xa0\xc9\ -\xefZ\xcb\x7f\x03\xe6\x84\x18\xbe\xe4\xe0\xd0=\xeb\x99C\ -\xb3 \x10\xd6\xf0\xf5\x8e\xcb\xefT&\xd9_\x1e\xbb\xf4\ -X\xab\xa1e\xf5\xe9=v\xd5\xff\x0dXk\xe3\x93|\ -:\xbf\x16@\xb9\x08\x9ek\xe3\x11\x08\x16\x0c`\xac\xc0\ -\xd8\xf3\xff\xef\x9e\x02\xd4\xfd\xc1\x1b\xe5VF>,\x9f\ -!h/\xf3.k\xf9\x7f\x04<\xcd\x90)\x81\xa1z\ -\x96\x9d\x86\x1ei-\xafr\x5c~\xbd:\x15\x0b\xff\xb0\ -\xd2Uj\xd6vF\x97\x85\x06\x1dXB\xdf\xa2}K\ -\xd86D\x81E\x87\xb63\x04\xc5b\xb5\x8d\x0f\x171\ -\xa0\xa4\xe5\xdf\xbd8\xe2\x19\xfb\x0c\xc6\x80!\x16\xf8\xc8\ -\x08\x22#\x08\xb4\xa0\x11)\x9a\x91\xa4\x11J\x9a\xa1\xa4\ -\x19I\x02-\x09MG9t\x14\xc3P\xbdH\xab\xd0\ -!,\x9f&j-s\x8f5\xfc\x8c\x80c\xc3\xa4\x04\ -\x86\xe6\xb9] \xfc\x1e\xbfY\x9bfw\xa96L\x9f\ -\x90\x95\xf6\xe3xl\x99!lZ\xfc\xa6\xa1\xbd\xa4\xf1\ -\x1b\x86\xb0i\xd0\xa1EG`\x8d\xbd`f\xa1\xbd\xf4\ -\xc7\xe0:\xf0\x86o\x0a\xb9\xf3\xa0\xc1\x5c\xe1\xb2\x16\xd0\ -V\x10\x1a\x81\x1f\x09Z\x91d)P,\x05\x8a\xf9\xb6\ -\xc3R\xa0h\x84\x92\xa8\xa3\x14\x86M!\x98\x08\x96\xcf\ -\xa0\x9b\x8b\xbc\xdf\x1a~B\xc0\xd1aQ\x02C\xf1\x9c\ -:\xc2/\xac\xe5\x9b\x1d\x8f\xd9\xda4{J#i\xaf\ -\xaa\x07t\x04)\x9e\x97o\x09\x1a\x86\xe69MkQ\ -\xd3^\xd2\x84m\x8b\x89bA_\xf1\xd0\xaf\xe1\x89z\ -.|\xcf7\x87\xdc>se\x05p\xd1\x92V\xb0\xc4\ -\xdeBW!,\xf8\x8a\xb3-\x87\x85\x8eR\x08\x8d\x18\ -\x1a\x0f\xc1hX>\x83m\x9d\xe3C\xc6\xf0&\xe0\xf1\ -a\xc8\x09\x0c\xfasY\x1d\xf3\x7fc\xc7\xf2\xcf\x0c\xba\ -\xf0\x0b\x11\x1f\x0b\x16\xf9\x96\xd69Ms!\xa21\xaf\ -\x09\x1a\x86(\xec\x04\xeapCO\xcf\x02\xe5\x02|\xdf\ -\xb7\x86\x1c\xd8\xb5~\x05\xb0\xe6zW\xfdZ[hE\ -\x92\x85\xb6\xc3\xa9\xa6\xcb\xa9\xa6\xcb\x82\xafhEr\xdd\ -c\x16\xb3JG\x09\xe8\xd69\xfe\xda\x18\xfe\xb3\x80\xc7\ -\x06\xdd\x13\x18\xe4\xe7\xd1=\x0b\x00\xa1x\x99\xe3\xf2\xfb\ -\xb5i\xf6\x97F\xd3^\xd5\xf5\xd1\x15\x8e\xc8\xb7\xb4\x16\ -5\xcb\xa7;B\xdf4\xb1\x95\xb7\xbdMdZ\x0b\xb5\ -\x8a\xe5\x07^\x13\xb1g\xdb\x8d)\x80\x8bY=]=\ -\xd0\x82s\x81\xc3Su\x97\xe3\xcb\x1e\xf3m\x87\xc0\x88\ -\x0b\xbeo\x900\x1a\xeag\xb0\xcds\xbc\xcf\x18\xde$\ -\xe0\xc9AV\x02\x03;\x10de\x9f_\xf1b\xe5\xf0\ -\x9b\xd5\xc9\xc1\x13\xfen\x5c\xeeH\xcbDQc\x96C\ ->w\xbf\xa1q.\x16\xfa\x0b2\xef}\x90\x16\xd7\x81\ -\x82g{>\xe3d\xf5\xcf\xf3\x94es)d\xba\x14\ -r`\xbc\xcd\x99\x96\xc3\xb1\xa5\x02O5\x5c\x96\x035\ -p^\x81TP\x9d\x8a\xc3\xcd\xd6\x22\xba\xe3\x09\x9cH\ -{]\xd7\xcb@\x16\x02\xad\x94\xf7\x0anW\x0eo\xab\ -Nrge\x9c\x81y\x93\xba\x02Rr\x0c;\xaa\x01\ -\xcf\x9cl\xf1\xac\xe9&\x8d\xd3\x11\x9f\xff\x92\x88O\x05\ -\xa6\xff\x9fg\xb4\x06\xcf\xbf\xc3PN\xe84eOZ\ -\xc6\x0a\x9a\x1d\xb5\x90\xed\xd5\x90\xa2c\x09\xb5\xc0\xd7\x12\ -\xd3\xff\x8f\xdb3:U\x83RG\x1c\x8c|j\xd6\xf2\ -\xc9\x89\xd7\xde\xd5\x9a\xb8\xfb.\x16\xee\x19\xac\x82\xa1\x81\ -\xf3\x00:\xa3\xbf\x01f\xa4b\xb6<\xce\x0b\xcac\x0c\ -\xc4\xdb\xd3\x15\xfc\xaak\xd8Y\x0b\x98\x19m3Y\x8a\ -\xf0d\xbc'\xefw,bRkq\xdd\xd8\x0bH\xfa\ -\xf3Ka\xd9T\x8c\x98(F\x1c\x18oql\xa9\xc0\ -\x91\xc5\x02g[.\xda\x0e\xc4\xa3D*\xa8M\xa1\xac\ -\xe1\xdf\xb7\x97Y\xb6\x96_\x10PO{]\xd7\xca@\ -y\x00\x9dl?\x166\x09\xc1\xafT\xc6xum*\ -\x9e\xfa\x9bu,Pv\x0c\xfb\xc7\xda|\xd5\xe6&\x07\ -\xc6[\x8cz\x06\xb9\xeam\x7f\xf0q\xc9\xa3O\xc8D\ -\x04\xc0\x02\xd3\x13\x96\xe7\xde\xa6\x13U\x02\x17SP\x96\ -\xa9r\xc4\xcej@\xcd3\x84F\xd0\x8c\xd4@x\x04\ -R\x81[\xc0\x89|\x9e\xa1C\x96\x84\xe0s\x13\xaf\xbd\ -\xcb\x0c\x92\x170\x00\xa2s\x11\x96\x8a\x10\xfcl\xb1\xc6\ -\xb7W&\xb3/\xfc\x968\x0e\xde?\xd6\xe6e;\x97\ -x\xc1\xd6:\x9b\xcb!R\x5c\x18+\x1b\x0b\xad\xb6H\ -t\xe8h\xc1\x8bO%Ns\xcei\xf7\xda\x15\xd7p\ -\xebD\x8b\x97\xef\x5c\xe2y\x9b\xebL\x16#D\xb2\xb7\ -\xe3\xbap\x0aP\x9b\xa2\xe6\x16\xf9\xa9N\x0d\xca\x8a\xa1\ -\x1a\x042.>\xe7\xe9\xdcTe\xe1\xbb\xbc2\xdf_\ -\x9b\xc6S\x19\x0e`, \x05l\xab\x84|\xcd\xb6e\ -^\xb4\xad\xce\xb6\xca\xa5\x82\xdf\xc5Xh\x07\xc9\xbe\xf0\ -\xc5\x02\xc8\x8c\xbc\x01\xdd\xa3\x17\xcb\x8e\xe1\xf6\xc9\x16\xaf\ -\xbci\x89\xe7L5\x18\xf1t\xe6\x95\x80W\x86\xea$\ -\x9b\x95\xcb/\x85>/\xc4\x0e\x8e\x12\xc8\xc8\xe3\xbf2\ -\xdd\xa4\x9f\xb5|\x93[\xe0-\xb5IjN\x86\xbb\xfa\ -,0\xeai\xbejs\x83\x97\xee\x5cbf\xd4\xc7\x91\ -W\xce\xb6[\x03m?Y\xa7\xb7\xe8\xd9\x0bB\x90,\ -\xd0\xbdG5W\xf3\xac\xa9&/\xdf\xb9\xc4\x81\xf16\ -\x05\xd5\xfb\xdd\x8a^R\xaaAu\x82[\xa4\xe2\xe7\xac\ -e\xc7\xa0(\x81\xcc+\x80UI\xbfg(\x87\x9f\xab\ -N\xb2\xcd\xcb\xe80\x0fK\xbc\xa573\xea\xf3u;\ -\x97\xb8c\xb2I\xc51\xebzq\xb5\x01?Hn\xad\ -\x82ly\x00\x17c\x89\xb7>\xa7J\x11/\xdaZ\xe7\ -\xc5\xdb\x97\x99.E\xd9\xcd\x0b\x08(\x8dAq\x84W\ -\x08\xc9\x7f\xe9\x0c\x9c\xcd<\x19}\xfc\x17ba\xab\x94\ -\xfcRy\x9cg\x173\x5c\xe57V\xd0\x7fK\x83\xdb7\xb5\xf0d\ -\xefc\xceV{U\x17`\x02\xb8\x0e8Nz\x09\xb4\ -^;:\x96\xb8f\xe0k\xb6\xd5\xd93\xe2gfw\ -C\xc8\x95P\xe0u\xc0+\xb3\x16\x0adF\x01\xac\xba\ -)\xaf\xf2\xca|kV:\xfc,q\xf7\xde\xf3\xb7\xd4\ -\xd97\xde\xee[\xd6\xb9\xe5\xc7\xe5\xc0I\xe1\xb9\xf1W\ -\xd2H\x00\x0b\x8dv\xef?\xaf\x05j\x9e\xe6\xab\xb7\xd6\ -90\xde\xceL\x95\xa3\xe3Ae\x82\xa9N(\xb0#\ -\xed\xf5\xac&3\x0a\x00\xc0Zv)\x87\x1f\xac\x8cS\ -\xcd\xc2\x81\x9d\x16\xa8\xb9\x86\xaf\xdeZgf\xb4\x7fV\ -\xc5\x12\x17\x01\xd9\x84\x14\x80%\xde\x01\xf0\x9cd.(\ -\x88_4?\x80G\x8fK>\xf8\x8f\x0e\x9f\xb8O\xf5\ -\xe5~v\xbd\xb5\xe7n\xc9\x96\x12(\xd6\xa0P\xe5\x85\ -B\xf0\xbd\xd6\xe2d\xc5\x0b\xc8D\x14\xd8I\xfc)!\ -\xf9\xfeb\x8d\x17f\xe1\xdc\xbe\xd5/\xd2\xee\x11\xbf\xef\ -\xd7\xf2\x03\xd1\xf3\xb1_W\xc2s\xfb\xdb\x09(:_\ -\xda\xc2\xd9E\xc1\xc3\x8fK\xbe\xf0\x88\xe4\xf8II\xbd\ -\x09/{\xbe\xee\xdbg\x8d\xf35\x96\xe7n\xae\xa3\xa4\ -\xe5\xf0\x5c)Q\xefj\xcd\xfb\x11\x87\x02n\xd8\xe6{\ -\xc2\x16\x7f\x8b\xe03\xe9\xae(&\x13\x0a\xa0\xc33\x1d\ -\x8f\xef(\x8f\xa3\xd2n\xf1\xedn1=\x7fKl\xf9\ -\xfb\x8d1\xd0l_0\x01\xac\xef\x14\xbc\xfe\xf4\x01t\ -\x05\xbf\xe9\xc3\x13OK\xbe\xf4\xa8\xe4\xa1\xc7$g\x17\ -\x04Qg\x97C\x08\x18\xa9X$\xf4t\x16\xe1j,\ -\xf1\xac\x81gO5\xd0F\xf0\xf0B1u%\xe0\x16\ -\xa14\xc2n\x1d\xf0Fc\xf8\x91\x99C\xb3\xf5\xb4g\ -\x09\xa6\xae\x00:\xd6\xbf(\x14?P\x1ca\xaf\x9b\xd0\ -x\xaa\xcb\xd1\xb5\x1e\xcf\x99n\xb2\xb7\xcf\x96\xbf\x8b6\ -\xd0J\xb0\x13P\xd0\xdbN\xc0\xae\xd0G\x06\xe6:\xd6\ -\xfe\x8b\x8fH\x9e8)i\xb6;\xdf#\xce+\x1c\xcf\ -\x85m\xd3\xfd\x97\xc6\xee\xb3\xfc\xaa\xcd\x0d,\xf0\xf0|\ -1\xf5m\xc2\xd2(\xf8\x0d\xbe\xd1o\xf0\x01\xe0}3\ -\x87fS\x1d(\x9a\xaa\x02X\x89\x83\x04/q\x8b|\ -K9\x03C=\x1day\xe6T\x93\x83\xe3\xadD\xdc\ -qA\xec\x01$\xd9\x08\x04P*\xde\xb8\x07\xd0\xbd=\ -\xcd6\x1c;\x19[\xfb\x87\x8fJ\xe6\x16\x04\x91\xe9(\ -\x86\x8b\xee\xa1\xb1\xb0e\xd2\xb2sK2\xd5{\xdd\xed\ -\xdb\xe7L7\xf0\xb5\xe0\xf1\xc5tw\xe2\x94\x0b\xe51\ -\xc6#\x9f7\xea\x90O\x0a\xc9\xd3i\xae'u\x0f\xc0\ -\x1a\xaa\xd2\xe1\xfb\xca\xa3L\xa5}r\xaf\x14pp\xa2\ -\xcd-\x13\xadD\x93G\xc6\x80\x9f`\x1f\x80\x10P*\ -\xda\x95\x13\x82\xae\xe9\xdfr\xde\xda\x9fY\x10<\xf4\xb8\ -\xe4\xcb\x8fJ\x8e?}\x91\xb5\x17\x97\xff\xf7\x07\xf7\x18\ -j\xe5\xe4\xcaw-Pq\x0c\xcf\xdd\xdc\xa0\x1dI\x9e\ -j\xb8\xa9n0\x15k\xd0\xae\xf3\xd5\xadE\xbe\x19\xc1\ -\xdb\xd3\xf4\x02RS\x00\xab\xac\xff\xcb\xdd\x22//d\ -\xa0{z\xcf\x88\xcfs\xa6\x9b}\xd9\xe7\xbf\x12\x91\x16\ -\x04A\x82!@\xa7\x11\xe8Z\x14\x80\xec|o\xbd%\ -8zB\xf0\xe5\xafH\x1e9*\x99_\xecX{q\ -\xf5\x04\xa6\xb5P)Yn\xddk\xaeK\xf9\xdc\x08\xdd\ -!-\xcf\xdbR\xe7\x9f\x9e\xac1\xef;\xa9)\x01!\ -\xa1\ -K\x81\xe2\xbe\xd3\x95\xd4v\x06\x84\x84\xd2(\x9e\xdf\xe0\ -\xf5\x91\xcf\xfb\x80#i\xac#5\x0f\xc0\x1aF\xa5\xe2\ -\xbb\x8b5F\xd3\xec\xf3/(\xcb\xb3\xa6\x9al.\x87\ -\xa9\x08\xbf\x00\xc20\xb6\xb2I\xa1\xe4\xa5\xb3\x00\xba\xd6\ -^kx\xea\x8c\xe0\xa3\x9f\x8e\xad\xfd\xbb\xff\xc6\xe5\xde\ -\x07$\x0bKq\x9d\xc2z\xad\xfd\xc5X\x0bc5\xcb\ -\x81\xdd\xe9X\xff\x0b>\xbf\x80[&Z}\xaf\xef\xb8\ -\x1an\x09\x0a\x15n\x13\x92o\x0d[\x884\xbc\x80\xc4\ -=\x80\xd5\xd6\xdf+\xf1u\xc5\x14[}\x05pp\xbc\ -\xcd\xbe\xb1t_\x84 \x14D:\x99#t\xad\x05\xa5\ -\xecJ'`\xf7\x92\xdd\xd8\xfe\x8b\x8fJ\x1e=\x16\xc7\ -\xf6\xe6\x06\xac\xfdZ\xd7\x9d\xd9i\x98\x1cK\xbfw\xbf\ -\xbb=\xf8\xac\xa9&\x0bm\x87y\xbf?U\x89WC\ -\x08(\x8d\xe2\xf8\x0d^c\x0d\x7f\x0e\x1cOz\x0d\xa9\ -x\x00FS\x92\x8ao/\x8e0&S\x8a\xfd-\xb0\ -\xa5\x12r\xeb\xa6\x16J\xa4\xfbJ\xb6\x83N+pB\ -\xd7s\x9cx\x16@dbk\xff\xb1\xcf(\xfe\xe8\xfd\ -\x0e\xef\xfa\x90\xcb\xa7>\xaf8\xbb\xd0\xfb\xaaD\xcf\x8d\ -\xdd\x7f7#S\x9d,0Q\x8cx\xd6t\xba\x03E\ -\xdc\x22xe\xee@p\x17\x22\xf9F\xa1D\xc5\xaf\xfb\ -\xe1\x84\xe0\xab\x9c\x02/M\xab\xe4\xb7\xdb\xe0s\xe7t\ -\x83\x9a\x9b\xfe \x89\xb6\x9fl'\xa0\x14\xf0\xe81\xc9\ -?\xde+x\xf8\xa8d\xe1\x1a2\xf9\xd7\x83\xb505\ -a\x99\xd9\x91\xbe\xf5\xbf\x98\xdd#\x01\xa7\x1am\x0e\xcf\ -\x97R\xb9\xbe\x90P\xacQ\xf0\xeb\xbcF\x87\xbc_H\ -\xe6\x92\xbc~\xe2\x1e\x80\xd1\xb8R\xf1\xbab\x8d-i\ -5\xfct\x87H\xa4\x15\xf7\xaf\xc6\x92l'\xa0\x10\xb0\ -T\x17|\xf0\xe3\x0e\xffr\x7fl\xed\xaf%\x93\x7f\xbd\ -\x9f\xf1\xc0n\xc3h-{\x0a\xc0\x11\x96\xdb'[\xa9\ -\x0e\x13\xf1\xca\xe0\x95\xf8j\x04_\x0b\xc9z\x01\x89+\ -\x00!\xd8\xaf<\xee*\xa6\x94\xf9\xb7\xc0\xb6J\xc0\xc1\ -\x84\x8b}\xaeD\xdbO\xae\x13\x10\xe2\xd2\xe3 \xec\x9f\ -\xc5_\x8d\x05\xca\x85\xd8\xfd\xcfT\xeb\xe9\xaa\xf5\x8dx\ -\x9a\xdb6\xb5(\xa8tT\x80TP\xa81\x22\x15\xaf\ -2\x9aD\x8b\xe1\x13{&3\x87f\x91\x0a\x84\xe0\xdf\ -\x14*\xecN\xebd\x9f\x82\xb2\xdc\xba\xa9\xb5\xee\x03;\ -\xfa\x8d%\x0e\x01\x92T\x00\x89~>\x03\xdb7\x1bv\ -n\xce\xc6\xfd\xbe\x1c\xbbG|\xf6\x8c\xf8\xa9\xad\xb1P\ -\x01\xc7\xe3eBpK\x92\xd7MT)\xeb\x90-\xd2\ -\xe5\x9b\x0b\xd5\xf4\x8c\xc1\xdeQ\x9f\x1d\xd5\xf4]\xff.\ -\xd6\xc6!@V\xd6\xd3k\xa4\x84[g\x0c\xe5b\xb6\ -?\xa3\xdb\x99\xf5\x98V-\x88r\xa1Pa\xbb\x90|\ -\xfd\xd8\xd6\xe4\xc2\x80D\x04q\xd5\xd6\xdf\xd7xe\x9e\ -\xed\xa5\x90o\xe9N\x8b\xb9e\xbc\x85\x93r\xd6\x7f5\ -q#P\x06\x87\xdb\xf7\x00k\xa1V\xb1\x1c\xdcc\xb2\ -0\xdc\xe9\xcak\x056\x95\x22\xf6\x8f\xa57D\xa4P\ -E)\x87\x7f;\x7f\x82\xc9\xa4\xae\x99\x98%6\x9a\x82\ -T|c\xb1B%\x8d~\x7f\x01\xdc<\xe6\xb3)c\ -\x93c\xb5\x89\xb7\x01\x87\x11ka\xcfv\xcb\xe6M6\ -\xd5\xca\xbf\xf5\x12\xbf#m\xb6\xa4\x94\x1cv\x0a\xe0\x16\ -y\xa6\x80\xe7A2^@b\xa2(\x04{\x1c\x8f\x17\ -\xa5q\xb0g|\x90D\xc4\xcch;S\x96\xa8{&\ -`\xdb'\x13\xf3\x0f{\x8d\xe3\xc4\xc9\xbfB\xea=\xa7\ -\xeb\xa3\xbb=|p\xbc\x85+\x93W\x01R\x81We\ -L*\xee\xd2a2[\xf4}W\x003\x87f\x91\x0e\ -\x08\xc1+\xbd\x12\xbb\xd3(\xfcQ\x02\x0eL\xb4S\x8b\ -\xef\xae\x84\xd6\x02?H\xeeL\xc0\xa4\xb0\x166\x8dZ\ -n\xde\x95\xed\xe4\xdf%\xeb\x06v\xd6\x02\xb6U\xd2\xf1\ -\x02\xbc2(\x8f\x97\x0a\x99\xcc\xf0\xd0D<\x80\xa8M\ -M\xba\xbc\xb2P\xc5I\xfa\x90\x0f\x0b\x8c\x15\xa2\xf8\x04\ -\x9fd/\xbd\xbe{\xa3\xe3s\x01\x87\x0d\x0b\xec\xbb\xc9\ -01\x9a\xbd\xbd\xff\xabQP\x96\xfd\xe3\xedT\xb6\x05\ -\x1d\x0f\xdc\x22{\x85L&\x0c\xe8\xab\x02X\xa9\xfc\x93\ -\xecw<\xeeLc\xdc\x97\x14q\xec_\xcb\xd8\xd1Q\ -]\xc2h8\x15@\xc1\x85\xdbf\x0cN\x16\xb5\xeeU\ -\xb0\xc0\xf6j\xc0\xd6J\x90\xf8;#\x04\x14*T\xa4\ -\xe2\x95:\xa4\xef\xa5r}\xf7\x00\x84\x04!x\xaeW\ -b:i\xf7\xbf\x1b\xfb\xef\xce\xd0A\x11\x17\xdc\x1b\xe2\ -\xf8\x7f\xd8\x14\x80\xb1\xb0u\xca\xb2{\xfb\xe0Y\xff.\ -\x9e\xb4\xdc<\xea\xe3\xa5\x90\x0bp\x8b\xa0\x5c\x9e+$\ -\xdb\xa0\xbf^@\xdf\x15\x80\x0e(I\x87\x97\xba\xa5\xe4\ -;\x0f\x05q\x81G\xd6\x0e\x8e\x5cM;H\xf6P\xd0\ -$\x10\xc0-\x09\x8f\xfd\xea5\x16\xd8Z\x0d\x99,E\ -\x89\x17i\xa98\x0c\xd8'$\xcf\xee\xf7\xb5\xfa\xa6\x00\ -V\xed\xfd\xeft<\x9e\x9d\xb4\xfb\x1fgt5\xbb2\ -\x1a\xfbw\x09\x02V\x86l\x0c\x03\xd6B\xb5l\xb9e\ -&\xfb{\xffW\xa3\xa8\x0c\xbbG|T\xc2\xdb\xd6B\ -\x80W\xa2,%_\xa7C\xfa\xda?\x99D\x08\xf0\x1c\ -\xa7\xc8\xce4\xb2\xff;k\x01\x13=<\xc1\xb7\x1f\x04\ -\x11\x89v\x02\xf6\x1bkagg\xec\xd7\xa0\x7f,\x01\ -\xec\xa8\x06TS\xe8\x18uK\xa0\x5c\x9e'$\x9b\xfa\ -y\x9d\xbe*\x80\x85\xa7\x10R\xf2\x1c\xafH1i\x0b\ -WT\x96=#\x01*\xe3f\xa8\xd5\x16\x89\x9e\x0a\xdc\ -o\x94\x8a\x93\x7f\xa5\x0c\x1c\xedv\xa3t\xabGwT\ -\x93\xf7\x22\x95\x07N\x81\xfdBp+\xf4/\x0f\xd0W\ -\x050:\xcd\x98t\xb8\xd3Ix\x14\xbb\xb50Y\x0a\ -\x99,e\xa7\xe6\x7f\xcdu\xd29\x11(\xcb\x8b\xbc\x96\ -\xcf\x93\xa1\xb1_\xbdB\x89\xd8\x93\xf4\x12\xde\x12\x94\x12\ -\xdc\x12\xe3B\xf2\xdcR\x1f;g\xfb\x1b\x02\x08v9\ -\x1e\xfb\x92\x9e\xf7/e:\x0f\xedZ\xb1\xc4\x1e\xc00\ -)\x80\xbd;m&\xc6~\xf5\x92\xa9r\xc4\xa6b\xf2\ -\xc9@\xb7\x88\x94\x0e/h,\xd0\xb7\xfa\xd9\xbe(\x80\ -\x99C\xb3\xdd\xa3\xa0\x9e\xed\x14\xd8\x9c\xe4\xd0\xcfn\xf2\ -/\x0d\xb7\xed\x9a\xd7:d\x9d\x80\x9e\x0b\xcf\xb8Yg\ -f\xecW/\xe8\x9e,\xb4\xbd\x1a$\x9e\xa8u\xe3\ -\xd0\xf2\xaf/\x07!\x80\x83{\xec@\x8f\xfd\xba^*\ -\x8e\xa1\xa0\x0c\x81Q\xc9X9\x01RQ\x80\xd8\x03\xe8\ -%=W\x00\x02J\xd2a*\xd1\x1d\x00\x11\x0fnP\ -\x03P\xff\xdf\xc5\x00-\xbf\xbf\xafO\xd7\xda\x97K\xb0\ -k\x8b\xe1\x19\xfb\x0c\x07\xf6\x18\xa6\xc7-\x87\x8fH\xcc\ -u& \xe3\xb1_\xb1\xfb/\x18\xee\xe2\x9f\xb5(:\ -\x86\xa2cYN\xb0$@*\x5c)\xe3\xceZ\xdd\xc3\ -\x14D\xef\x15\x80\xa4&%SI\x96\x00K\x015o\ -\xb0^Fc\xa1\xd5\x8e\xd7\xdbK5\xd0\xb5\xf6\x8e\x82\ -\xc9\xb1x8\xc7\xed\xfb\x0c\xbb\xb6\x1a*\x9d\xac\x8c\x00\ -Z\x9dY\x84\xd7u\x0d\x0b\xbb\xb6\x1a\xb6M\x0d\xfe\xd8\ -\xafk\xfe\xec\xc4\x05g\x15\xc7p\xa6\xd7\x0f\xef\x0aH\ -\x85\x14\x92\xe9_{5\xfc\xc4=\xbd\xfb\xb9\xbd\xdf\xbd\ -\x15T\xa5C%\xc9\x12`GX\xaa\x09o\xcd\xdc(\ -\xc6t<\x80\x1e\xbdD]k_,\xc0\xce-\x86;\ -\xf6\x1bn\xd9k\x98\x1c\xb38\xb2\xa3\x18V}\x7f\xb3\ -%\xae;\xff\xd0\x1d\xfbU\xf4\x06G\xe1\xf6\x12%-\ -%7\xc1\xfd\xdb8\x07\x80\x90l\xfa\xe1\xdfGV'\ -{\xa7w{\xa6\x00V\x0e\x01\x11\x8c\x0aI%\xa9\x9b\ -c\x01GZ\xca\xee`\xd9\xa2\xf8T\xe0\x1b\xff\xec\xd6\ -\x82#a\xbc\xb3\x1f\x7f\xc7~\xc3\x9e\xed\x86j\xe9\xfc\ -\xf7\x985\xfe]\xbdu}\xa3\xc8\xac\x85\x89Q\xcb\xfe\ -\xdd\x83u\xbf{\x89\x00*\x8eN.\xcb\xdd\xcd\x13\x09\ -\xc6\xbd\x0a\x0e\xd0\xb3\xe3d\xfb\xe3\x01H\xbc$=\x80\ -\x82\xb2\xa9\x1c\xe0p#X\x0b\xc1u\xc6\x90\x17\xc7\xf6\ -\xb7\xddl8\xb0\xdb05nq\xd5\xa5\xd6~\xad\x7f\ -\xdf\x1dEv\xad\xcf\xc9Z\xd8\xbb\xc309\xbe\xf1\x92\ -\x7f]\x04\xe0)\x9bh\xc8)\x14H\xc9\x88\x94xd\ -U\x01t^\xa6\x11\xa1\xfa\x7f\xa4\xd1\x0a\x16\x0a\xca\x0c\ -\xd4\x0e\x80 \x8e\xbf\x83p\xfde\xc0\xd6v\xbc\x9dN\ -l\x7fpO'\xb6\xdf\x12w\xe1un\xc5\xba|C\ -\xcb\xf9Qd\xd7\xaa\xa7=\x17n\xdfgp\xe5\xfa\xae\ -5\xac\x94\x1c\x83\x14\x16m\x93\xb1tB\xc4\xf95!\ -)\x00\xf5^\xfd\xdc\xdez\x00\xb1J,\x0a\x91|\x17\ -\xe0 \xed\x00@,\xfc~xu\x01\xecZ\xfbJ\xd9\ -\xb2{\x9b\xe5\xf6}\x86\x037\x196\x8dZ\x94\xbc\xba\ -\xb5_\x0b\xa3\xa1}\x1d\xf9\x07\xd3\x1d\xfb5\xc0G~\ -\xf5\x8a\x82\xb2H\x01:\xa1\x1b\xd1\xa9\xb0-Ao\x8d\ -kO\x15\x80T`,U!\xfb{\x9a\xc9\xc5\xb8\xca\ -\x0e\xdc\xc9:~\x10\x9f\x0a\xb4\x16]k\xef\xaaX\xe0\ -n\xd9k\xb8\xfdf\xc3\xce-q\xe2\x0d\xd6o\xed/\ -\xa6\xdb\x85\xd8ls]I\xac\x83{\x86s\xec\xd7\xb5\ -\xe2J\x8b\x92\x96\xd0$\xf4\xe2\xc5\x0a\xa0\x8c\xa0\xa7=\ -\x81\xbd\x0d\x01$ pE\x92CnD\xfc0\xc4\x00\ -\xbd\x92\x02h\x07\xf1H\xb0\xd5t\xad}\xb5\x1c\x1f\xac\ -y\xc7~\xc3\xfe\x9b\x0c\xe3#\x16%b\x81\xef\xc5\xa7\ -\x0c\x22A\xdb\xbf\xf6\x87T.\xc4{\xff\x92\x8d\xed\xfe\ -C\x9cx\x96\xf4~\x1b\xf7r\x08\x01H\x5cAo\x8d\ -ko=\x808.tIx\xca\x95\x12\x83\xe7\x01h\ --V\x1a\x81\x8c\x89\xdbj7OXn\x9d\x89c\xfb\ -\x1d\x9b\x0dE\xf7\xbc\x8b\xdfK\x81\x8b\xa2\xb8\x0c\xf9Z\ -0\x06\xb6o\x1e\xee\xb1_\xd7\x82\x12\x16\x99p\xd8)\ -b\xf7\xbf\xa7\xb3\x01{\xeb\x01(@$\xdf\x1b\x92\xf4\ -\xe1\x8d\xbd\xc0\x98\xce\xd1S\x958\xb6\xbf\xe3@\xc7\xda\ -\xd7\xe2\xd8\xd2\xd0?+\x1bF\x10^\xa3\x02\x902\xde\ -\xfb\x1f\xf6\xb1_\xebE\x88\x1b\xeb\xa5\xb8\xf6\x0b\x82\x90\ -\x08z\x9c_\xeb\xa9\x02(T l\xe1$\xed\x01\x08\ -\x06\xab\xa7\xde\x12+\xadW\xbc \xe2\xe0\x1e\xc3\xd6I\ -K\xa1O\xd6\xfeb\x04q\x01Rx\x0d\xe5\xa4\xd6\xc2\ -h\xd5r`\xcf`U[\xf6\x13)R9\xd1Y\xd1\ -c\x99\xed\xe9\x0f\xeb\xc4\xb0\x89\xdf\x96A\x8a\xff!\x16\ -\xa0\x1d[\x0c\xbb\xb7\xb3\x12\xdb'\x19S7\xdb\x10i\ -\xb1\xee\x17\xd8Z\xd8\xb3cc\x8c\xfdZ?6\xf9\x11\ -\xe8\xa2\xf7\xb6\xae\xa7\x9f\xc1\xc41m\xe2\xd28\x88\xe3\ -(]'\xb6 i\x08T\xab-\xaei\x10\x89\xe3\xc4\ -\xee\xffF\x19\xfb\xb5>R1;\x19W\x00\xb1[\xa9\ -m\xc2\xbbD\xddm\xb3\x9c\xf5\xd1\x1dE\xb6\x1e6\xe2\ -\xd8\xaf\xf5a\xd31;=\xbehO\x15\x80\x8e\xfb\xdb\ -\x13?\x93;\xa9j\xaca`\xa5\x0ap\x9d\xcf\xc8\xda\ -\x8d5\xf6k\xbdX\x9b\xc24'\x8b\xa1\xc7QXo\ -\x15@\xecV\xb6m\xc2\xa1\xa26\xd7\xd7\xd8\xb2\x111\ -@\xa3\xb5\xfe#\xc9\x8b\x85\xd8\xfd\xdfHc\xbf\xd6\xc3\ -\xf5T`\xde\xe8\x05;r\xd5\xd3\xb6\xd7\x9e*\x00\xab\ -\xc1Z|\x924\x16\x16B#\xd2r\xc8\x06\x0ec\xa0\ -\xd9Z\xe7\xf7Z\xd8:i\xb9i\x03\x8e\xfd\xba\x1a\xc6\ -\xa6\xe2yFXz:\x86\xa4\xb7\x0a .UkX\ -\xd3[-u5B3\xd8\xc35\x93\xa4;\x87`=\ -\xb7K\x00\x07\xf7\x9a\x0d9\xf6\xebj\xe8\x84\xdf9k\ -\xc1\x1aB\x0b=\x1dI\xdc[\x05\x10\xff\xc7O4\x04\ -\x10\xb1\x02\xd0f\xf0\x0f\xd9\xec7\xdd.\xc4\xb6\x7f\xf5\ -\xef\x8d\xc7~\xd9\x95\xb1_9\x17\xe2k\x99\xf8;g\ -->d\xd8\x03\xe8\xc4)K\xc6\xf4\xae_y=\x04\ -Z\x10\xe5&j]\x84\xa1\xa0\x1d\x5c\xfd\xb5\x8d\xc7~\ -Y\xb6Nn\xbc\xb1_\xeb\xc1\xd7\x22\xb1N@\x88\xbd\ -kkh`Yg\x00\xb7>\xfaQ\xcb\xd0\xb0\x86 \ -\xc9\xa4\x5cd\x04QR]Y\x03N\x10\xc5\x9d\x88W\ -\xbb[\xdd\xb1_\xa5\xbe\x9cJ?\xf8\xb4\xb4\xc4$\x98\ -\x03\xb0\xb1qm\xda\x1e\x1b\xd7\x9e+\x00k\xa9[C\ -3\xa9\xa0Q\x00\xa1\x91\xb4\xa2\x01l\x08H\x18A\xdc\ -\x82|\xb5Qd\xd6\xc2X-\x1e\xfb\x95;V\x97b\ -\x81F(\x13\xbd7\xd6\x80\xd5\x9c\xb36\xa3\x0a\xe0\xc8\ -\xddo\x8e\x17j\xa9\x9b\x88f\xa2\x1e\x80\x85v\xae\x00\ -\xd6\x85\x1f^\xda\x86|1\xd6\xc2\xcc\xce\x8d=\xf6\xeb\ -J\x18\x0b\xf5@%\xba\xf5\xdc\x09\x01\xceEA\x96s\ -\x00\x00\x86\x86\xb5,\xda\x04\x03Gm\x04\x8d\x5c\x01\xac\ -\x8b\xb6/\x88\xf4\x95\x1bY<\x17\x9e\xd1\x19\xfb\x95s\ -)\xa1\x914B\x99h\xd7\x8b\x89\xc0ZN\x9d\xf8\xbe\ -\x0c\xd7\x01\x00X\xf0\x8df>\xc9#\xafb\x97L\xe5\ -\xd6j\x1d\xb4\xdaW>\x90\xd4Z\x98\x9e\xb0\xec\xc9\xc7\ -~\xad\x89 N\x006\x1368Z\xa3\x8d\xe1\xe4\x81\ -\xf7\xf7\xf6\xe7\xf6\xfcS\x98\x88\xb65\x9c\xb2IV\x02\ -XX\x0ad^\x12\xbc\x0e\x9a\xed\xab\x9f\x07\x90\x8f\xfd\ -\xba2\xcdP\xe2k\x99\xe8\x16\xa0\x89\xf0\xad\xe1\xc9^\ -\x9e\x0a\x04}P\x00\xdbo'4\x9a\x13\xbd^\xe8\x15\ -\x11\xb1\x07\x10\xe8\xbc\x16\xe0JXb\x0f\xe0r\x05,\ -\x16(\x15\xcf\x8f\xfd\xcaY\x9b\xe5P%7\x0b\x90\xd8\ -+\xd3!M,\xa7z\xfd\xb3{\xfa\x9c\x8f\xdc\xfdf\ -\xe6\x9e\x00k8a\xa2d\xab\x01\x1b\xa1\xa4\x19\xe6\xaf\ -\xed\x95\xb0\xc4\x1e\xc0\xe5\x92W\xd6\xc0\x8e\xcd\x86\x1d[\ -\xf2\xec\xff\xe5\xb0\xc0B[%^\x03`\x22\xe6\xac\xc9\ -\xb8\x02\x80x&\x80\xb5\x9c\xd0\x11\xeddnOg{\ -K\x0b\x16\x83D\x87\x11\x0f\x1c\xc6\xc4\xc3@.\xf7\xee\ -J\x09\xb7\xee5\x94\x0by{\xf5\xe5\x88\x8c\xe0\x9c\xef\ -$z\x83\x8c\x06\xa39k-\xe7\xe0\xfc\x8e[/\xe8\ -\xbd\xc9\x8c\xdb\xa4N\x99\x88F\x92;\x01\x91\x15\xcc\xb5\ -\x9d\xfc\xc5\xbd\x02\xda\xc4\xc3@\xd6\xc2\xdax>aw\ -\xecW\xce\xa5\x08\xa0\x19I\xce\xf9*\xf1\x1d\x00\xa39\ -jt\xef\x0e\x04\xe9\xd2\x17\x9f\xd9\x1aN\xe9\x90SI\ -*\x00\x80\xb3-\x07_\xe7\xaf\xefZ\x08\xba\x8d@k\ -\xff}|\xe4W>\xf6\xebj,\x07\x8aV\x94l\x02\ -P\x87`4O|\xe3\x1bz_b\xdf\x1f\x05`9\ -g4'\x13M\x04\x02\x8b\xbeC#T\xb9\x05\xbb\x0c\ -a\xe7<\x80\xb5p\x1c\xb8\xed\xe6|\xec\xd7\xd58\xdb\ -r\x12M\x00\x02\xe8\x80\xd0\x1a\x1e\xfa\xc8{{\xeb\xfe\ -C\x9f\x14\x80\x89h\x98\x88#\xba\xa75KWF\x00\ -\xadH0\xd7\xca\xdf\xe0\xcb\x11\x84\xacy\x1c\x99\xb5\xf1\ -y\x83\xf9\xd8\xaf+\x13Y\xc1|\xdbI\xbc\x020\x0a\ -X\xb2\x86\xc7\xfa\xe1Q\xf7E\x01\x94F\x89\x8c\xe6\xe1\ -(Hv' \xb2\x82\xd3-7\x9f\x0dp\x19\xba\x0a\ -\xe0b,\xb0\xef&\xc3\xc4H\xbe\xf7\x7f9\x04\xf1\xfe\ -\xff\xd9\xb6\x93l\xfc\xafA\x87\ -\xfe\xd7\x11\x8fY\xcb\x5c?~~\x7f6\xce\xe3\xe9%\ -\xc7\x22\x9f\xa7M\x82y\x00\x01,\x05\x8a\xf9v\x1e\x06\ -\xac\x85\x1f\xc4\xe7\x01\xac~\x83W\xc6~m\xcd\xad\xff\ -\x950\xc0\xc9\x86\x9b|\xfc\x1f'\x00\x0f\x1f}\x0f\xcd\ -~\xfc\xfc\xbeU\xceX\xc3\x09\x1d\xf1P\x92y\x00\x80\ -\xc0\x08\x9ejx\xf9\xcb\xbc\x06\xad6q#\xd0\xaa?\ -\xcb\xc7~\xad\x0f?\x92\x9cN!\xbf\x14\xb6\x09\x8c\xe6\ -\xf0\xcdo\xe8\xcf\xcf\xef\x9b\x02\xf0\xeb4u\xc4\xe7C\ -?\xf9\xf7\xea\xe9\x86K3aWm\x10h\xb4.\xec\ -\x038?\xf6K\xe7\xf7\xea\x0a\x08`\xae\xedp\xcew\ -\x92\xad\xff\xd7\x10\x05\xccay\xd0\xda\xde\xef\x00@\x1f\ -\x15@y\x1ck\x0d\x9f\x8b\xda\xc9\xce\x06\x10\xc09_\ -q&\xdf\x0d\xb8\x80\x95>\x80\x8b\x14\xc0\xae\xad\x96m\ -S\xf9\xde\xff\x950\xc0\x93u\x8f \xe1\x1a\x13\x1d\x82\ -\x0ex\xd4Z\x8e\xf6\xeb\x1a}Q\x00+\xc3A\x0c\x87\ -C\x9f\xe3I\xe6\x01 \x0e\x03\x9e\xac{\x89\xd6k\x0f\ -\x02-\xff\xc2>\x00\xa5\xe2\xe4_\xd1M{e\xd9E\ -\x10\x0f\xff8\xbe\x9c|X\x19\xf9\xa0#\xee\xd7!\x0b\ -\xfd\xbaF\x7f\xbbg,'u\xc8\x03\xd1:\xa6\xd0\xf6\ -\x9a\x93\x0d\x8f\xe5 /\x0a\xeab\xec\x85}\x00\xd6\xc2\ -\xf8\x88\xe5\xc0M\xf9\xde\xff\xd5x\xba\xe9\xb2\x1c$\x1f\ -R\x86m|\xa3\xf9\xac[\xea\x9f\x83\xd6W\x05\xe0\x16\ -i\x9a\x88O\x84\xedd\xeb\x01\xba\xbb\x01'\x1a\xf9D\ -\xcb.\xda@\xb3%V4@w\xec\xd7\xa6|\xec\xd7\ -\x15\x09\x8c\xe0\xe8R\x81(\xe1Y\x13FC\xe4s\xd6\ -\x1a\xbeL\x9f\xe2\x7f\xe8\xb3\x02\xd0\x11X\xc3\xbdA\x8b\ -9\x93\xa8\x0a\x00m\xe1\x89%/\xef\x0d\xe8\x10\xe9N\ -\x1f@\xe7vxn\xec\xfe\xe7c\xbf.\x8f\x00N7\ -]\x9en$\x9b\xfc\x83\xd8\xfd\x8f\x02\x1e\xa0\x8f\xf1?\ -\xf4;\x04 \xce\x03D\x01\x0f\xe8DO\x0a\xe8<\xbc\ -\x96\xcb\xa9\xa6\xbb\xe1\xc3\x00\x01h}\xfe<\x80\xee\xd8\ -\xaf\xbd\xf9\xd8\xaf+\xa2-<\xb6X\xa0\xad\x93\xd7\x92\ -A\x0bt\xc8\xa7\x1e\xffE\x16\xfby\x9d\xbe}\xb2\xae\ -\xcb\x12\xfa,\x98\x90\x7f\x0dzz\x9c\xc1\xfa\xf0u:\ -\xee[\x16\x89\xf4\x85\xe7\x01\x1c\xc8\xc7~]\x11\x01,\ -\xf8\x0e'\xea\xc9gH\xad\x81\xb0\xc5\xbc5\xfc\xe3\xcc\ -/\xf6\xf7Z}Wm\x85\x0a\xd6h\xfe1h%;\ -)\xb8\xcb\x93u\x8f\xf9v\x9e\x0c\xf4\x83\xf8L\x80\xee\ -\xd8\xaf\xdb\xf2\xb1_W\xc4\x10[\xffz\x0a\xdd\xa5Q\ -\x00\x91\xcfW\xac\xe50\xf4/\xfe\x87\x04\x14\x00\x80\xb5\ -|!l\xf3`\x94B\x18\xd0\x08%G\x16\x8b\x1bz\ -KP\x10\xc7\xffA\xf6\xebr\ -X\xe0\xf1\xa5\x02K)l#\x1b\x03~\x83ec\xf8\ -\xb8\xd7\xc7\xed\xbf.\x89x\x00n\x11c4\x1f\xf1\x1b\ -\xc9\xef\x06\x08\xa0\x1e*\x1e^(n\xe8\x5c@\x10\xc4\ -y\x80\xd1\x8a\xe5\xc0\xee\xbc\xee\xefr\x08\xe2\xae\xbf#\ -\xe7\xd2\xb1\xfeQ\x1b\xc26\xf7[\xc3\xbfB\x7f\xdd\x7f\ -H@\x01\xac:2\xec\xf3\x91\xcf\x97\xa3\xc4F\x85\x9e\ -\xc7\x02\xc7\x96\x0a\x9cin\x5c/\xa0\x1d\x08\xb4\x86=\ -;,\x9b7\xe5\xc9\xbf\xcb\xa1-<\xbcPL\xc5\xfa\ -\x03\xf8\x0d\xd0!\x7f\xff\xf8\xcf\xf4\xdf\xfd\x87\x84<\x00\ -\x80\x93\x0fpV\x87\xfc\x8d\xdfH\xb6(\x08:\xb9\x80\ -H\xf2\xc0|iC\xd6\x05X\xe2a \xdd\x13\x7f\xf3\ -\xb1_k#\x803-\x97\xa3K\xe9X\x7f\x13A\xd0\ -\xe4\xa45\xfc\xdd\xcc[\xfbo\xfd!!\x05p\xe4\xee\ -7\xb3\xfd\x0e\xb0\x86\xbf\xf7\x9b<\x95t\x8b0\xc4\x0f\ -\xf7\xc9e\x8f'\x96\x0b\x1b\xd2\x0b\x10\x02&\xc7\xf3\xb1\ -_W\x224\x82\x87\xe6\x8b\xd4S\xea$\xf5\x1b\x10\xb6\ -\xf9\x14\xf0@R\xd7Lt'\xc8Z\x0eG>\xff\x90\ -F2\x10\xe2\xb2\xce\x07\xe6J,o\xc0V\xe1\xa2g\ -\xb9e\x8fa|4w\xff\xd7B\x00O,{\x1c]\ -J\xc7@X\x03~\x9d\x86\xd1\x1c\x12\xb2\xf7\xe3\xbf/\ -G\xa2\x0a@*\xdaF\xf3\xa1\xf62\xf54j\x02\x04\ -p\xb6\xed\xf0\xd0|i\xc3m\x0bN\x8e[\x9euP\ -\xe7c\xbf\xd6\xa0\x1b\x22>8_\x22Hx\xe2O\x97\ -\xb0\x0dA\x8b\x07\xb0\xfc3$\xe3\xfeC\x82\x0a`U\ -\x8b\xf0?\x85m\xbe\x10\xa6\x90\x0c\x84\xb8+\xee\xe1\x85\ -\x22'\x1b\xde\x86\xf1\x02,q\xe9\xef\xf6\xe9\xdc\xfa\xaf\ -\x85\xb1\xf0\xd0|)\xbd\xb2q\x0b\xed:F\x87|\xf0\ -5\xdf\xc6SI^:\xf1b\xb0'?\xcfi\x1d\xf2\ -\xc1\xf62Q\x1aoc\xf7t\x97/\x9c)\xd3\xd8@\ -\xc3C\x0b^<\xfb?\xe7B\x04p\xaa\xe9\xf2\xd0B\ -z\xc5b\xa1\x0f\xfe2G\xac\xe1\x83\xef\xbd'\xd9k\ -'\xae\x00v\xdd\x09\xd6\xf0!\xbf\xc1ca\x0as\x02\ - ~\xe8'\x9b.\x0f\xcf\x17\xf3\x11\xe2\x1b\x98\xb8F\ -D\xf2\xf93\xe5\xc4\xa7\xfd\xae\xc6o@\x14\xf0W\xd6\ -\xf4\xbf\xf4\xf7b\x12U\x00\xabj\x02\x1e\x8d|>\xe0\ -\xd7\xd3\xf3H\x8d\x85\xc3\xf3%\x9e\xa8o\x9cP \xe7\ -Bt\xe7\x1d8\x91\xe2;\xa0\x03h/\xf3\xb45|\ -@:\xc9o\x91'\xee\x01\x1c\xb9\xfb\xcdHEd\x0d\ -\xefo/\xf3T\xd2\xfd\x01]V\x87\x02\x8b\xf9\xe4\xa0\ -\x0d\xc9\xd1\xa5B\xec\x05\xa6\xb8\x86v\x1d\xa26\xff\x1b\ -\xf8\x1c$k\xfd!\x05\x05\xb0\x82\xe5\xfe\xc8\xe7\xaf\xdb\ -\xcb\xa9\xad`e\xe0\xc3\x17\xce\x94S\xcb\xfe\xe6$\x8f\ - >\xe3\xef\xbe\xd3\x15Z:=\xd7_\x87\xd0Z\xe2\ -\x94\xd1\xfc\x89\x90\xa4\x92\x16OM\x01\x08\x85o\x0c\xef\ -n/q\x22-/\xa0\xcb\x91\xc5\x02\x0f\xcd\x17\x13=\ -\xf3-'\x1d\xbaq\xff\xe7NWX\xf0\xd3\xf5\xfc\xda\ -\xcb\x10\xb5\xf9\x08\xf0iH\xde\xfaCJ\x0a`\xe5\x83\ -Z>\x13\xfa|\xa0\xbd\x94\xc6*\xce\x13\x1a\xc1\x17\xcf\ -\x96y2\xcf\x07\x0c5\x82\xb8\x18\xec\xfe3\x15\x9e\x5c\ -N\xf7YG\x01\xb4\x169e\x0c\xef\x12\x92\x14\xc6\xe5\ -\xc4\xa4:\x13BH|\xabyWk\x89\xc7\xd3\xaa\x0b\ -\x80\xf3\xf9\x80\xcf\x9e\xaap\xa6\xb5q\x1b\x86\x86\x1dm\ -\x05\x87\xe7J<\xba\x90N\xad\xffj\xda\xcb\x10\xfa|\ - \xe9\xc2\x9f\x8bIM\x01\xac\xfa\xc0\xf7E>\xf7\xb4\ -\x16I\xd5\x05\xef\x9e\xfe\xf2\xd9S\x95\xd4:\xc1r\xfa\ -\xcb\xa3\xe7\x0a|\xe1l9\xf5\xb6\xf0\xc8\x87\xf6\x22'\ -\xac\xe6\x9dB\x92\xd2fxL\xeaS\xa1\x84$\xb2\x86\ -w\xb4\x97\xf9B\x98R\x8f\xc0\xcaZ\x80\x13u\x8f\xcf\ -\x9e\xaa\xe4'\x0c\x0f\x19\xc7\x96<\xee;]\xc1\xd7\x22\ -\xd5\xe7j-4\x17\xb1\xa1\xcf!\xe0^H\xcf\xfaC\ -\xca\x0a`Uy\xf0C:\xe4\x1d\x8d\x05\xfc\xa4\x07\x86\ -\xac\xc5\xe3K\x05\xee\xcd\x95\xc0P\xd0U\xea\xff\xfat\ -5\xb5.\xbf\xd5\x84-h/\xf1\xa05\xfc\xa1\x90\xa4\ -\xd0\x17{!\xa9{\x00G\xee~3\xd2\xc1Z\xc3\xbb\ -\xfd\x06\x1f\xf7\x13\xeb\x83\xba<\xd6\xc2#\x0bE>w\ -\xbaB;e\x8b\x91sc<\xd5p\xf9\xf4\xd3\xd9\x08\ -\xeb\xac\x81\xe69\xb4\x0e\xf9\x93(\xe0AH\xd7\xfaC\ -\x06\x14@\x17!9c4oo,0\x97\xf6\xb6 \ -\xc4\x0d4\x8f,\x14\xf9\xec\xa9*\xad\xdc\x13\x188\xba\ -5\x1e\x9f:Ye.#\xf3 \xdb\xcb\xd0\xae\xf3\xcf\ -\xd6\xf2n\xb7\x88M[\xf8!#\x0a`\xd5\xb6\xe0\xdf\ -\x86m\xfe\xa2y\x0e\x9b\x85=yc\xe1\xe1\xf9b\x9e\ -\x13\x180\xba\xbd\x1e\x9f\xcc\x90\xf0\xeb\x10\x9a\xe7X4\ -\x11o\x13\x82\xe3i\xaf\xa7K&\x14@\x17!i[\ -\xc3\xffh-\xf2\x85\xa0\x91\xf6jb,\xf0\xc8\xb9\x22\ -\x9f:Y\xcd\x0f\x1b\x1d\x10N6\x5c>\xf9T5;\ -[\xba\x16\x9a\xe7 h\xf1>\xe0\xef }\xd7\xbfK\ -f\x14@\xf7\x86\x08\xc1a\x1d\xf2\xb6\xc6\xc2\xc4k\xef\x02x\xccD\xec\x16\x82g\x16\xca\x90\ -\x95'\xb9\x18(\xce\xb6\x1d\xc6\x0a\x9a\x9a\x9b\x8f\xd6\xce\ -\x0a\x828\x5c{\xf4\x5c\x91\xcf<]\xcdTs\x97\x89\ -`\xf9\x0c\xad\xa0\xc5/\x0b\xf8\x1bDv\xac?dL\ -\x01@G\x09\xdc}\x97o-GM\xc8\x8bU\x81)\ -'C\xa7|\xd7C\xc5\xe9\xa6K\xc95\x8cz\x1a\x99\ -\x957m\x83\x22\x80\xb6\x16<0W\xe6\xbe\xd3\x19\xcb\ -\xd5X\xa8\xcfC{\x91\xf7Y\xcb\xaf\x0bA+K\xc2\ -\x0f\x19\x0a\x01.\xa62\xc6\xfdQ\xc8\x7fk\xcc\xb3\x9c\ -\xc6\x14\xe1\xcb\x11\x1f\x1a\xa9\xf8\xe4SU\x0e\xcf\x97\x08\ -M\xbeM\x98\x16\x82\xd8+\xfb\xe4\xc9\x1a\xf7ep\xcb\ -\xb6\xdd\x80\xd69\xbel4\xbf*`>\xed\xf5\xacE\ -\xe6<\x00\x88\xbd\x80\xda\xab\xee\x028bBv`y\ -\x96WF\x88\x8c<]A\xdc@t\xaa\xe9\xd2\x8c\x14\ -\x13\x05MAe`\xdbb\x83 \x88\xf32\xc7\xeb\x1e\ -\x9f~\xba\xca\xf1e\x0fKf\x22E .\xf7]>\ -\xcdR\xe4\xf3\xf3&\xe0o\xa5\x9b-\xd7\xbfK&\x15\ -\x00\xc0\xc4k\xefB\x08\x02kyP\x87\xcdB\xe4\xf33\x02>,2\xb6\xe5\xb7\ -\x16Y\xbd\x97\x970sh\x16k\xd9\xa7\x1c\xdeQ\x9d\ -\xe4\x85\x95\xf1\xec\xae\xde\x02J\xc0t9\xe4\xf6M-\ -vT\x03\x5c\x99\x1f\xcaq\xad\xd4C\xc5#\x0bE\x1e\ -Y\x88\xcf\xeb\xcb2:\x84\xc5\x93\xb4\xfc:\xff\x15\x98\ -E\xe0g]\xf8a\x00<\x80.\x9d\x02\xa1yk8\ -\xa2\x03^\xa4<69\x85\xb4W\xb56\x82X\x09,\ -\x87\x8a\x13u\x8f\xc5@QT\x96\x92k\xf3\xa3\xb9\xae\ -\x82\x00\x02-xl\xa9\xc8g\x9e\xae\xf0\xd8R1\xf5\ -\x1e\xfe\xaba4\xd4\xcf`\xdau\xdem-\xbf$\x04\ -\x8dA\x10~\x18 \x05\xd0)\x10B\x08\x8e\x1b\xcd\xbc\ -\x0ex\xb1S\xa4\x92\xc5\xa4`\x17A<\x86j\xae\xed\ -\xf0d\xdd\xa3\x11JJ\x8e\xa1\xe8\x98\xbc\x80\xe8\x22\x04\ -\x10j\xc1\x93\x0d\x8f{OUyp\xbe\xc4R\xa8V\ -\xfe.\xabX\x0b\x8d9h.\xf0\xd7\xd6\xf0\x93\x02N\ -#\xe2\xf7u\x10\x18\x18\x05\x00+;\x03\x16x\xd0D\ -X\x13\xf1\x22\xb7\x88+3~\xe4U\xb7n\xe0l\xcb\ -\xe5x\xbd\xc0r\xa0(8\x86\xd2\x06W\x04b\xd5\xbd\ -9Q\xf7\xf8\xdc\xe9\x0a_\x9a+3\xd7v2\x9b\xe4\ -\xbb\x80N\x93Oc\x8e\xcf\x19\xcd\x8f\x0ax4k\xa5\ -\xbeWc\xa0\x14\x00\xac$\x05\x8d\x85/\xea\x90\x92\x89\ -\xf8*\xaf\x84#3\xfeI\xba/s\xd0Q\x04O\xd6\ -\x0b,\x05\x0eJ@\xc918\x22\xdb\x96\xae\x1f\xf7\xa2\ -\x19I\x9eX\xf6\xb8\xffL,\xf8g\x07E\xf0;\xb4\ -\x96a\xf9\x0c\x87u\xc4\x9bt\xc0g\xa43X\xc2\x0f\ -\x03\xfc\xceu\x92\x82\x13B\xf2\x1b\xa5\x11\xbe\xab6\x8d\ -R\x19\xf7\x04V\xd3M\x08\x16\x95ek%`\xcf\xa8\ -\xcf\xd6rH\xd95+9\x84a\xa2\xfb\xa2EVp\ -\xceW\x1c_\xf6xb\xd9c\xae\xe5\x10\x0d\x90\xd0w\ -i/\xc3\xf2i\x9e\x0c}\xfe\x13\xf0\xfeA\xc8\xf8\xaf\ -\xc5\x00\x89\xcc\xa5\x888)\xf8\x96\xd6\x22\x8e\x10|G\ -m\x1a\x95uO`\xd5\xda\x01\xf0\xb5\xe0\xf1\xa5\x02\xc7\ -\xeb\x1e\xe3\x05\xcd\x8ej\xc0\xaeZ\xc0D1\xc2\xedl\ -!\x0e\xaa2\xe8~Fm\xa1\x19)N5\x1d\x9eX\ -*p\xaa\xe9P\x0f\xd5J\xf9\xee\xa0\x09\xbf\xdf\x80\xe5\ -\xd3<\x1d\xfa\xfc\x94\x10|\x10\x06S\xf8a\xf0\xee\xfd\ -\x05\xcc\x1c\x9a\x05\x0b\x16vJ\xc9o\x96Fyum\ -\x0a\x99\xf5\x9c\xc0\xe5\xe8\x0aD\xd91L\x96\x22\xb6U\ -\x03\xa6K\x11c\x85\x08O\xd9\x95\x87\x95e\x85\xb0\xda\ -\xd27C\xc9\x99\x96\xc3S\x0d\x8fS\x0d\x87\xa5@\xad\ -\x8c\xe4\x1e\xd4\x17/h\xc2\xd2)\xe6\xc2\x16oA\xf0\ -\x87\x90\xdd2\xdf\xf50\xa8\xcfa\x85N(\x00\xb0K\ -J\xfe{i\x8cW\xd7&\x07W\x09@G\xc0-H\ -\x01\x05\xc70Q\x8c\x98.EL\x97CF\x0b\x9a\x8a\ -cp\xa4\xbd\xe0\xe1\xa5\xa1\x14.\xbe\xbe\xaf\x05\xf5P\ -q\xa6\xe9p\xaa\xe9r\xa6\xe5R\x0f%\xa1\x19l\xa1\ -\xef\xd2\x11\xfe\x85\xa0\xc5\xcf\x09\xf8\xff\x10\x04\x83,\xfc\ -0\xf8\xcf\x04\xb8\xc0\x13\xd8-$o-\x8f\xf2-\xb5\ -)\xd4 +\x81.]\xc1\x16\x80+-E\xc70^\ -\xd0L\x14#6\x95\x22F\xbcX!\xb8\xca\xa2\x84\xbd\ -\xe4\x81\xde\x88b\x10k\xfc\xdev\xbe\x22#\xf0\xb5\xa0\ -\x19I\x16\xda\x0e\x0b\xbe\xc3\xd9Vl\xe5[\x91D\xdb\ -\xb5\x7f\xc6\xa0\xd2\x15\xfe\xb0\xc5/\x02\xbf?(\x85>\ -WcX\x9e\x0f{\xdf3\xdb}AwJ\xc9[\x8b\ -#\xbc\xa66\x85\x93\xe5:\x81\xeb\xa1\xeb\x1d\x08\x01J\ -Z\x8a\xcaRv\x0c5OS\xf34#\x9e\xa6\xea\xc6\ -[\x8cE\x15{\x0aJ\x80\x14\x16q\x85\x9d\x86\xae\xa2\ -\xb06.i66\x9e\xb2\x13\x1aI` \xd0\x92v\ -$\xa9\x87\x92\xe5@\xc5\xff\x0fca\xf7\xf5y\x81\x87\ -!z\xa9:tb\xfe\xf9\xb0\xc5\x7f\xb5\xf0?\xc4\x90\ -\x08?\x0c\xd9\xb3Z\x15\x0el\x15\x82_(\xd6\xf8\xf7\ -\xb5i\xdc,M\x14\xea5v\xf5/D\x5c\x82\xac\x84\ -\xc5S\x96\x822\x14\x94\xc5S\x86\xa2\xb2\xb8\xd2\xe2*\ -\x8b\xc0\x22\xc5\xf9\xa3\xd8\x8c\x15h\x13\xc7\xed\x91\x16\x04\ -F\x10h\x11\x0b\xbf\x16\x84V\x10\x19A\xd4Q\x0ev\ -\xb5[\xc2\x90\xbdD\x17\xe17`\xf9\x14g\x826?\ -'\xe0\x8f\x87\xc5\xf2w\x19\xbag\xb7*\x1c\x98\x12\x82\ -\xb7x\x15\xfe\xc3\xc84\xe5,\xcd\x12H\x02{\xc9/\ -\xb8\xe0i_\xb2\xd5\xb8V\xac \xd6\xfc\xe5\x86\xa1\xb5\ -\x04\xf53<\x19\xfa\xfc\x82\x80w\x22\x08\x87I\xf8a\ -\x88\x9f\xeb\xcc{f\xb1P\x15\xf0&\xaf\xccO\xd6\xa6\ -\xa8y\x95\xb4W\x953\x08X\x0b\xadE\xa8\x9f\xe5\xb1\ -(\xe0\xc7;[}z\xd8\x84\x1f\x06\xb0\x12p\xbd,\ -\xfc\xe5G\x98\xb8\xfb\xae\x00\xb8W\x87\x9c\x0d\xdb\ -\xabC\xfe\xb3\x10|\x180\xc3(\xfc0\xc4\x0a\x00V\ -z\x07B\xe0>\xady\xff\x9d\xd8\xe5_\xda(.\xff\xc5lX\x05\x00\ -\x9d\x90\xc0\x00\x82M\xc0w\xbb\x05\xdeT\x1eggi\ -4\xf7\x06\x86\x91\xa0\x05\x8dy\x02\xbf\xce\xdf\x19\xcd\xaf\ -\x09\xc1\xa7\x19\xd2\xfd\xfd\xf5\xb2\xa1\x15@\x97\x99C\xb3\ -\x00\xcaZ\xbeV*~\xa2P\xe5\xe5\x95q\xbc\xdc\x1b\ -\x18\x0e\x8c\x8e\x0b{\x9a\xe78\x11\xf9\xfc\x9e\xb5\xfc\x11\ -\x96S\x1b!\xcb\x7f5r\x05\xd0a\xe6=\xb3\x98\xb8\ -\xc9fZ\xc0w;\x05~\xa44\xc6\xee\xd2\x08\x0c[\ -C\xd1\x86\xc1\xaeX\xfd\xb6_\xe7\xc3\xc6\xf0;\xc0'\ -\x80h\xa3\xc5\xfa\x97#W\x00\x17\xb1\xf7=\xb17\x00\ -\xa3#\xfe\x02\xcb\xc7\x80\xa7 w\xf5o\x94\ -\x5c\x01\xf4\x90\x8e\x22\x90\xc0v\x04/S\x8a\xff\xcb)\ -\xf2\xb5\xc5\x1a\x9b\xbc28\x85\xdc+X\x0f:\x8a\xdd\ -|\xbfA\x104\xf9\x8a\x0e\xf8\x98\xd1\xfc\x15\xf09`\ -\xc1Zx\xfcu\xb9\xe0\xf7\x82\xfcu\xec\x03{\xfel\ -\x16\xe5\x82\x8e\xa8\x09\xc1\xf3\x84\xe2\xdf:.\xafpK\ -\xec+T(w\xbd\x82\x5c\x19\x9c\xc7h\x88\xda\xe07\ -1A\x93\xa7#\x9f\xcf\x98\x88\xbf\xb1\x96\x8f[\xc3Q\ -!\x88\x16\x16a\xe1\x87r\xc1\xef%\xf9+\xd8g\xf6\ -\xfcy\xbc\x85(\x04\xdb\x11\xbcP*^\xe5\x14x\xae\ -[d\x97W\xc6s\x8bq\xa9\xf1FT\x06&\x82\xd0\ -\x87\xb0\x85\x0e\x9a\xcc\x87>\xf7\x9b\x88\x7f\xb0\x86\xbf\xb7\ -\x96\x07\xdd2\xf5\xe5\x13p\xf2Gr\xa1\xef\x17\x1b\xf0\ -\xb5K\x87\xdd\xef\x9e\xc5-A\xe4S\x02v\x09\xc9\x0b\ -\xa4\xe2\xc5\x8e\xc7W;\x05vy%\xaaN\x11\x1c\xb7\ -\xd3\x898\x84O\xc6\x9a\xd8\xd2\x87m\x08\xdbDA\x8b\ -S\x91\xcf\x97;B\xff/\xd6\xf2\x80\xd1,\x08\x09G\ -\xbf#\x17\xfa$\x106\x1e\x91\xb3r\xee\xa4\xd8\x88\xa6\ -(av\xfe\xd1,\xc5\x09\x08\x9bxB\xb0]H\x9e\ -!%\xcf\x97\x0e\xcfV.\xb7\xba\x056\xbb%\x8a\x8e\ -\xd7\xf1\x0e\xd4`z\x08\xd6\xc6V>\x0a \xf21a\ -\x9bF\xe4sL\x87|\xd1h>a\x0d\xf7Z\xcb\xc3\ -X\x96\x11\xd8<\xaeO\x9e\xae\x02\xe8\xf6\xbb\x85\xb9\x02\ -H\x9e\x9d\xef\x98E\x87\x88B\x85*\x82]B\xf2\x0c\ -\xa9\xb8S*nW.{\x95\xcbf\xb7@Uy(\ -\xc7\x8b=\x84\xac)\x05k\xe2/\x1d\xc5\xa3\xb6\x22\x9f\ -(\x0a\xa8\xeb\x80\x13:\xe4Q\xa3\xb9\xd7\x18\xee\xb7\x86\ -\xc3X\x9e\x1e\xdfE\xfb\xe4\x03p\xf2\x07s\xa1O\x92\ -K\x0c\xbe\xb5\x17\x1e\x09\x93+\x80\xf4\xb9\xe9]\xb3\x04\ -MD\xa1FU\x08\xa6\x84dFH\x0eJ\xc53\xa4\ -\xc3\x8ct\xd8\xa5\x1c\xc6\x94KM\xb9x\xcaAH\xa7\ -\xa3\x18d\xe7\x0b.\x7f\xba'k\xfc9\x5c\xfe$Q\ -\xdb9\x14\xd4\xc4V\xbd\xeb\xca\x9b\x08L\x84\xd5\x11-\ -\x1d\xd0\xd0\x11gu\xc4\x13V\xf3\x15\xa3y\xd8\x1a\xbe\ -l-\x8fY\xc3\x19kh\x02\x1c{C.\xf0i\xd2\ -\x91w\x8f\xf8\x91\x86\xb9\xb4\x0f\x00\x9b\x7fw\x96\xe9\xdb\ -`\xf9\x04.\x82\xb2\x90L\x0a\xc1\xb4\x10\xdc$$;\ -\x84d\xafTl\x93\x8a-R1&\x14\xa3RQ\x90\ -\x0aOH\x1c)QH\xa4\x10H!8\x7f\xa6\xdf\xaa\ -\xf3\x01\xbbB\x8e\xc5X\x83\xb5\xf1\xff\xb55DF\x13\ -ZC\xdbh\xeaF\xb3d5\xf3\xc62g5'\xac\ -\xe1)c8j-'0\x85@`\xe3\x83\x80\x01\ -\x1f\x8b\x01\x9a\xd6\xd2\xc6\xb2d\xa1\x8e\xe1\x9c\xb5\x9c\x03\ -\xceY\xcb\x925,Z\xcb\xb25\xf8: \xd8\xf7\x0a\ -\xcc\xa7\xff'\xb4~9\x17\xf4A\xe4\xff\x00!\xbf\xbf\ -E\xaax=\x13\x00\x00\x00\x00IEND\xaeB`\ -\x82\ -" - -qt_resource_name = b"\ -\x00\x09\ -\x0alxC\ -\x00r\ -\x00e\x00s\x00o\x00u\x00r\x00c\x00e\x00s\ -\x00\x13\ -\x0f\xce\x16\xa7\ -\x00b\ -\x00t\x00n\x00_\x00d\x00o\x00n\x00a\x00t\x00e\x00C\x00C\x00_\x00L\x00G\x00.\x00p\ -\x00n\x00g\ -\x00\x08\ -\x0aaB\x7f\ -\x00i\ -\x00c\x00o\x00n\x00.\x00i\x00c\x00o\ -" - -qt_resource_struct = b"\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ -\x00\x00\x00\x00\x00\x00\x00\x00\ -\x00\x00\x00D\x00\x00\x00\x00\x00\x01\x00\x00\x0a\x91\ -\x00\x00\x01}cp\x8e\xee\ -\x00\x00\x00\x18\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01}cp\x8eO\ -" - -def qInitResources(): - QtCore.qRegisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) - -def qCleanupResources(): - QtCore.qUnregisterResourceData(0x03, qt_resource_struct, qt_resource_name, qt_resource_data) - -qInitResources() diff --git a/src/screen_region.py b/src/screen_region.py index a43178d0..88c4ae3f 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -1,144 +1,145 @@ from __future__ import annotations -from typing import Callable, cast, TYPE_CHECKING +from typing import cast, TYPE_CHECKING if TYPE_CHECKING: from AutoSplit import AutoSplit -from PyQt6 import QtCore, QtGui, QtTest, QtWidgets -from win32 import win32gui import os import ctypes import ctypes.wintypes import cv2 import numpy as np +from PyQt6 import QtCore, QtGui, QtTest, QtWidgets +from win32 import win32gui +from win32con import GA_ROOT, MAXBYTE, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN, SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN import capture_windows import error_messages +DWMWA_EXTENDED_FRAME_BOUNDS = 9 user32 = ctypes.windll.user32 -def selectRegion(self: AutoSplit): +def selectRegion(autosplit: AutoSplit): # Create a screen selector widget selector = SelectRegionWidget() # Need to wait until the user has selected a region using the widget before moving on with # selecting the window settings - while selector.height <= 0 and selector.width <= 0: - QtTest.QTest.qWait(1) - - # Width and Height of the spinBox - self.widthSpinBox.setValue(selector.width) - self.heightSpinBox.setValue(selector.height) + while True: + width = selector.width() + height = selector.height() + if width > 0 and height > 0: + break + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore # Grab the window handle from the coordinates selected by the widget - self.hwnd = cast(int, win32gui.WindowFromPoint((selector.left, selector.top))) + autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.left, selector.top))) # Want to pull the parent window from the window handle # By using GetAncestor we are able to get the parent window instead # of the owner window. - GetAncestor = cast(Callable[[int, int], int], ctypes.windll.user32.GetAncestor) - GA_ROOT = 2 - - while win32gui.IsChild(win32gui.GetParent(self.hwnd), self.hwnd): - self.hwnd = GetAncestor(self.hwnd, GA_ROOT) + while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): + autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - if self.hwnd != 0 or win32gui.GetWindowText(self.hwnd) != '': - self.hwnd_title = win32gui.GetWindowText(self.hwnd) + windowText = win32gui.GetWindowText(autosplit.hwnd) + if autosplit.hwnd > 0 or windowText: + autosplit.hwnd_title = windowText # Convert the Desktop Coordinates to Window Coordinates - DwmGetWindowAttribute = ctypes.windll.dwmapi.DwmGetWindowAttribute - DWMWA_EXTENDED_FRAME_BOUNDS = 9 - - # Pull the window's coordinates relative to desktop into rect - DwmGetWindowAttribute(self.hwnd, - ctypes.wintypes.DWORD(DWMWA_EXTENDED_FRAME_BOUNDS), - ctypes.byref(self.rect), - ctypes.sizeof(self.rect) - ) + # Pull the window's coordinates relative to desktop into selection + ctypes.windll.dwmapi.DwmGetWindowAttribute( + autosplit.hwnd, + ctypes.wintypes.DWORD(DWMWA_EXTENDED_FRAME_BOUNDS), + ctypes.byref(autosplit.selection), + ctypes.sizeof(autosplit.selection)) # On Windows 10 the windows have offsets due to invisible pixels not accounted for in DwmGetWindowAttribute # TODO: Since this occurs on Windows 10, is DwmGetWindowAttribute even required over GetWindowRect alone? # Research needs to be done to figure out why it was used it over win32gui in the first place... # I have a feeling it was due to a misunderstanding and not getting the correct parent window before. - offset_left = self.rect.left - win32gui.GetWindowRect(self.hwnd)[0] - offset_top = self.rect.top - win32gui.GetWindowRect(self.hwnd)[1] + windowRect = win32gui.GetWindowRect(autosplit.hwnd) + offset_left = autosplit.selection.left - windowRect[0] + offset_top = autosplit.selection.top - windowRect[1] - self.rect.left = selector.left - (self.rect.left - offset_left) - self.rect.top = selector.top - (self.rect.top - offset_top) - self.rect.right = self.rect.left + selector.width - self.rect.bottom = self.rect.top + selector.height + autosplit.selection.left = selector.left - (autosplit.selection.left - offset_left) + autosplit.selection.top = selector.top - (autosplit.selection.top - offset_top) + autosplit.selection.right = autosplit.selection.left + width + autosplit.selection.bottom = autosplit.selection.top + height # Delete that widget since it is no longer used from here on out del selector - self.xSpinBox.setValue(self.rect.left) - self.ySpinBox.setValue(self.rect.top) + autosplit.widthSpinBox.setValue(width) + autosplit.heightSpinBox.setValue(height) + autosplit.xSpinBox.setValue(autosplit.selection.left) + autosplit.ySpinBox.setValue(autosplit.selection.top) # check if live image needs to be turned on or just set a single image - self.checkLiveImage() + autosplit.checkLiveImage() -def selectWindow(self: AutoSplit): +def selectWindow(autosplit: AutoSplit): # Create a screen selector widget selector = SelectWindowWidget() # Need to wait until the user has selected a region using the widget before moving on with # selecting the window settings - while selector.x == -1 and selector.y == -1: - QtTest.QTest.qWait(1) + while selector.x() == -1 and selector.y() == -1: + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1) # type: ignore # Grab the window handle from the coordinates selected by the widget - self.hwnd = cast(int, win32gui.WindowFromPoint((selector.x, selector.y))) + autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.x(), selector.y()))) del selector - if self.hwnd == 0: + if autosplit.hwnd <= 0: return # Want to pull the parent window from the window handle # By using GetAncestor we are able to get the parent window instead # of the owner window. - GetAncestor = cast(Callable[[int, int], int], ctypes.windll.user32.GetAncestor) - GA_ROOT = 2 - while win32gui.IsChild(win32gui.GetParent(self.hwnd), self.hwnd): - self.hwnd = GetAncestor(self.hwnd, GA_ROOT) + while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): + autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - if self.hwnd != 0 or win32gui.GetWindowText(self.hwnd) != '': - self.hwnd_title = win32gui.GetWindowText(self.hwnd) + windowText = win32gui.GetWindowText(autosplit.hwnd) + if autosplit.hwnd > 0 or windowText: + autosplit.hwnd_title = windowText # getting window bounds # on windows there are some invisble pixels that are not accounted for # also the top bar with the window name is not accounted for # I hardcoded the x and y coordinates to fix this # This is not an ideal solution because it assumes every window will have a top bar - rect = win32gui.GetClientRect(self.hwnd) - self.rect.left = 8 - self.rect.top = 31 - self.rect.right = 8 + rect[2] - self.rect.bottom = 31 + rect[3] + selection: tuple[int, int, int, int] = win32gui.GetClientRect(autosplit.hwnd) + autosplit.selection.left = 8 + autosplit.selection.top = 31 + autosplit.selection.right = 8 + selection[2] + autosplit.selection.bottom = 31 + selection[3] - self.widthSpinBox.setValue(rect[2]) - self.heightSpinBox.setValue(rect[3]) - self.xSpinBox.setValue(self.rect.left) - self.ySpinBox.setValue(self.rect.top) + autosplit.widthSpinBox.setValue(selection[2]) + autosplit.heightSpinBox.setValue(selection[3]) + autosplit.xSpinBox.setValue(autosplit.selection.left) + autosplit.ySpinBox.setValue(autosplit.selection.top) - self.checkLiveImage() + autosplit.checkLiveImage() -def alignRegion(self: AutoSplit): +def alignRegion(autosplit: AutoSplit): # check to see if a region has been set - if self.hwnd == 0 or win32gui.GetWindowText(self.hwnd) == '': + if autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): error_messages.regionError() return # This is the image used for aligning the capture region # to the best fit for the user. template_filename = QtWidgets.QFileDialog.getOpenFileName( - self, + autosplit, "Select Reference Image", "", "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)")[0] # return if the user presses cancel - if template_filename == '': + if not template_filename: return template = cv2.imread(template_filename, cv2.IMREAD_COLOR) @@ -150,7 +151,10 @@ def alignRegion(self: AutoSplit): # Obtaining the capture of a region which contains the # subregion being searched for to align the image. - capture = capture_windows.capture_region(self.hwnd, self.rect) + capture = capture_windows.capture_region( + autosplit.hwnd, + autosplit.selection, + autosplit.forcePrintWindowCheckBox.isChecked()) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # Obtain the best matching point for the template within the @@ -173,14 +177,14 @@ def alignRegion(self: AutoSplit): if width > capture.shape[1] or height > capture.shape[0]: continue - resized = cv2.resize(template, (width, height)) + resized = cv2.resize(template, (width, height), interpolation=cv2.INTER_NEAREST) result = cv2.matchTemplate(capture, resized, cv2.TM_SQDIFF) - min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) + min_val, _, min_loc, *_ = cv2.minMaxLoc(result) # The maximum value for SQ_DIFF is dependent on the size of the template # we need this value to normalize it from 0.0 to 1.0 - max_error = resized.size * 255 * 255 + max_error = resized.size * MAXBYTE * MAXBYTE similarity = 1 - (min_val / max_error) # Check if the similarity was good enough to get alignment @@ -198,26 +202,26 @@ def alignRegion(self: AutoSplit): # The new region can be defined by using the min_loc point and the # height and width of the template. - self.rect.left = self.rect.left + best_loc[0] - self.rect.top = self.rect.top + best_loc[1] - self.rect.right = self.rect.left + best_width - self.rect.bottom = self.rect.top + best_height + autosplit.selection.left = autosplit.selection.left + best_loc[0] + autosplit.selection.top = autosplit.selection.top + best_loc[1] + autosplit.selection.right = autosplit.selection.left + best_width + autosplit.selection.bottom = autosplit.selection.top + best_height - self.xSpinBox.setValue(self.rect.left) - self.ySpinBox.setValue(self.rect.top) - self.widthSpinBox.setValue(best_width) - self.heightSpinBox.setValue(best_height) + autosplit.xSpinBox.setValue(autosplit.selection.left) + autosplit.ySpinBox.setValue(autosplit.selection.top) + autosplit.widthSpinBox.setValue(best_width) + autosplit.heightSpinBox.setValue(best_height) -def validateBeforeComparison(self: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): +def validateBeforeComparison(autosplit: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): error = None - if not self.split_image_directory: + if not autosplit.split_image_directory: error = error_messages.splitImageDirectoryError - elif not os.path.isdir(self.split_image_directory): + elif not os.path.isdir(autosplit.split_image_directory): error = error_messages.splitImageDirectoryNotFoundError - elif check_empty_directory and not os.listdir(self.split_image_directory): + elif check_empty_directory and not os.listdir(autosplit.split_image_directory): error = error_messages.splitImageDirectoryEmpty - elif self.hwnd <= 0 or win32gui.GetWindowText(self.hwnd) == '': + elif autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): error = error_messages.regionError if error and show_error: error() @@ -225,46 +229,45 @@ def validateBeforeComparison(self: AutoSplit, show_error: bool = True, check_emp class BaseSelectWidget(QtWidgets.QWidget): - # We need to pull the monitor information to correctly draw the geometry covering all portions - # of the user's screen. These parameters create the bounding box with left, top, width, and height - SM_XVIRTUALSCREEN: int = user32.GetSystemMetrics(76) - SM_YVIRTUALSCREEN: int = user32.GetSystemMetrics(77) - SM_CXVIRTUALSCREEN: int = user32.GetSystemMetrics(78) - SM_CYVIRTUALSCREEN: int = user32.GetSystemMetrics(79) - def __init__(self): super().__init__() + # We need to pull the monitor information to correctly draw the geometry covering all portions + # of the user's screen. These parameters create the bounding box with left, top, width, and height self.setGeometry( - self.SM_XVIRTUALSCREEN, - self.SM_YVIRTUALSCREEN, - self.SM_CXVIRTUALSCREEN, - self.SM_CYVIRTUALSCREEN) - self.setWindowTitle(' ') + user32.GetSystemMetrics(SM_XVIRTUALSCREEN), + user32.GetSystemMetrics(SM_YVIRTUALSCREEN), + user32.GetSystemMetrics(SM_CXVIRTUALSCREEN), + user32.GetSystemMetrics(SM_CYVIRTUALSCREEN)) + self.setWindowTitle(" ") self.setWindowOpacity(0.5) self.setWindowFlags(QtCore.Qt.WindowType.FramelessWindowHint) self.show() - def keyPressEvent(self, event: QtGui.QKeyEvent): - if event.key() == QtCore.Qt.Key.Key_Escape: + def keyPressEvent(self, a0: QtGui.QKeyEvent): + if a0.key() == QtCore.Qt.Key.Key_Escape: self.close() # Widget to select a window and obtain its bounds class SelectWindowWidget(BaseSelectWidget): - x: int = -1 - y: int = -1 + __x = -1 + __y = -1 - def mouseReleaseEvent(self, event: QtGui.QMouseEvent): - self.x = int(event.position().x()) + self.SM_XVIRTUALSCREEN - self.y = int(event.position().y()) + self.SM_YVIRTUALSCREEN + def x(self): + return self.__x + + def y(self): + return self.__y + + def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): + self.__x = int(a0.position().x()) + self.geometry().x() + self.__y = int(a0.position().y()) + self.geometry().y() self.close() # Widget for dragging screen region # https://github.com/harupy/snipping-tool class SelectRegionWidget(BaseSelectWidget): - height: int = 0 - width: int = 0 left: int = -1 top: int = -1 right: int = -1 @@ -273,38 +276,42 @@ class SelectRegionWidget(BaseSelectWidget): __end = QtCore.QPoint() def __init__(self): - super().__init__() QtWidgets.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CursorShape.CrossCursor)) + super().__init__() - def paintEvent(self, event: QtGui.QPaintEvent): + def height(self): + return self.bottom - self.top + + def width(self): + return self.right - self.left + + def paintEvent(self, a0: QtGui.QPaintEvent): if self.__begin != self.__end: qPainter = QtGui.QPainter(self) - qPainter.setPen(QtGui.QPen(QtGui.QColor('red'), 2)) - qPainter.setBrush(QtGui.QColor('opaque')) + qPainter.setPen(QtGui.QPen(QtGui.QColor("red"), 2)) + qPainter.setBrush(QtGui.QColor("opaque")) qPainter.drawRect(QtCore.QRect(self.__begin, self.__end)) - def mousePressEvent(self, event: QtGui.QMouseEvent): - self.__begin = event.position().toPoint() + def mousePressEvent(self, a0: QtGui.QMouseEvent): + self.__begin = a0.position().toPoint() self.__end = self.__begin self.update() - def mouseMoveEvent(self, event: QtGui.QMouseEvent): - self.__end = event.position().toPoint() + def mouseMoveEvent(self, a0: QtGui.QMouseEvent): + self.__end = a0.position().toPoint() self.update() - def mouseReleaseEvent(self, event: QtGui.QMouseEvent): - # The coordinates are pulled relative to the top left of the set geometry, - # so the added virtual screen offsets convert them back to the virtual screen coordinates - self.left = min(self.__begin.x(), self.__end.x()) + self.SM_XVIRTUALSCREEN - self.top = min(self.__begin.y(), self.__end.y()) + self.SM_YVIRTUALSCREEN - self.right = max(self.__begin.x(), self.__end.x()) + self.SM_XVIRTUALSCREEN - self.bottom = max(self.__begin.y(), self.__end.y()) + self.SM_YVIRTUALSCREEN - - self.height = self.bottom - self.top - self.width = self.right - self.left + def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): if self.__begin != self.__end: + # The coordinates are pulled relative to the top left of the set geometry, + # so the added virtual screen offsets convert them back to the virtual screen coordinates + self.left = min(self.__begin.x(), self.__end.x()) + self.geometry().x() + self.top = min(self.__begin.y(), self.__end.y()) + self.geometry().y() + self.right = max(self.__begin.x(), self.__end.x()) + self.geometry().x() + self.bottom = max(self.__begin.y(), self.__end.y()) + self.geometry().y() + self.close() def close(self): QtWidgets.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CursorShape.ArrowCursor)) - super().close() + return super().close() diff --git a/src/settings_file.py b/src/settings_file.py index 1b625ab8..0b2593db 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,313 +1,328 @@ from __future__ import annotations -from typing import TYPE_CHECKING, List, Union +from typing import TYPE_CHECKING, Any, Literal, cast if TYPE_CHECKING: from AutoSplit import AutoSplit -from win32 import win32gui -from PyQt6 import QtCore, QtWidgets import os import sys -import keyboard import pickle +import keyboard # https://github.com/boppreh/keyboard/issues/505 +from win32 import win32gui +from PyQt6 import QtCore, QtWidgets -from hotkeys import _hotkey_action -import design import error_messages +from gen import design +# TODO with settings refactoring +from hotkeys import _hotkey_action # type: ignore -# Keyword 'frozen' is for setting basedir while in onefile mode in pyinstaller -FROZEN = getattr(sys, 'frozen', False) +# Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller +FROZEN = getattr(sys, "frozen", False) # Get the directory of either AutoSplit.exe or AutoSplit.py auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) -def getSaveSettingsValues(self: AutoSplit): - # get values to be able to save settings - self.x = self.xSpinBox.value() - self.y = self.ySpinBox.value() - self.width = self.widthSpinBox.value() - self.height = self.heightSpinBox.value() - self.similarity_threshold = self.similaritythresholdDoubleSpinBox.value() - self.comparison_index = self.comparisonmethodComboBox.currentIndex() - self.pause = self.pauseDoubleSpinBox.value() - self.fps_limit = self.fpslimitSpinBox.value() - self.split_key = self.splitLineEdit.text() - self.reset_key = self.resetLineEdit.text() - self.skip_split_key = self.skipsplitLineEdit.text() - self.undo_split_key = self.undosplitLineEdit.text() - self.pause_key = self.pausehotkeyLineEdit.text() - - if self.groupDummySplitsCheckBox.isChecked(): - self.group_dummy_splits_undo_skip_setting = 1 - else: - self.group_dummy_splits_undo_skip_setting = 0 +class RestrictedUnpickler(pickle.Unpickler): - if self.loopCheckBox.isChecked(): - self.loop_setting = 1 - else: - self.loop_setting = 0 + def find_class(self, module: str, name: str): + raise pickle.UnpicklingError(f"'{module}.{name}' is forbidden") - if self.autostartonresetCheckBox.isChecked(): - self.auto_start_on_reset_setting = 1 - else: - self.auto_start_on_reset_setting = 0 + +def loadPyQtSettings(autosplit: AutoSplit): + # These are only global settings values. They are not *pkl settings values. + autosplit.getGlobalSettingsValues() + check_for_updates_on_open = autosplit.setting_check_for_updates_on_open.value( + "check_for_updates_on_open", + True, + type=bool) + autosplit.actionCheck_for_Updates_on_Open.setChecked(check_for_updates_on_open) -def haveSettingsChanged(self: AutoSplit): - self.getSaveSettingsValues() +def getSaveSettingsValues(autosplit: AutoSplit): + # get values to be able to save settings + autosplit.similarity_threshold = autosplit.similaritythresholdDoubleSpinBox.value() + autosplit.comparison_index = autosplit.comparisonmethodComboBox.currentIndex() + autosplit.pause = autosplit.pauseDoubleSpinBox.value() + autosplit.fps_limit = int(autosplit.fpslimitSpinBox.value()) + autosplit.split_key = autosplit.splitLineEdit.text() + autosplit.reset_key = autosplit.resetLineEdit.text() + autosplit.skip_split_key = autosplit.skipsplitLineEdit.text() + autosplit.undo_split_key = autosplit.undosplitLineEdit.text() + autosplit.pause_key = autosplit.pausehotkeyLineEdit.text() + autosplit.group_dummy_splits_undo_skip_setting = cast( + Literal[0, 1], + int(autosplit.groupDummySplitsCheckBox.isChecked())) + autosplit.loop_setting = cast( + Literal[0, 1], + int(autosplit.loopCheckBox.isChecked())) + autosplit.auto_start_on_reset_setting = cast( + Literal[0, 1], + int(autosplit.autostartonresetCheckBox.isChecked())) + + +def haveSettingsChanged(autosplit: AutoSplit): + getSaveSettingsValues(autosplit) current_save_settings = [ - self.split_image_directory, - self.similarity_threshold, - self.comparison_index, - self.pause, - self.fps_limit, - self.split_key, - self.reset_key, - self.skip_split_key, - self.undo_split_key, - self.pause_key, - self.x, - self.y, - self.width, - self.height, - self.hwnd_title, + autosplit.split_image_directory, + autosplit.similarity_threshold, + autosplit.comparison_index, + autosplit.pause, + autosplit.fps_limit, + autosplit.split_key, + autosplit.reset_key, + autosplit.skip_split_key, + autosplit.undo_split_key, + autosplit.pause_key, + autosplit.xSpinBox.value(), + autosplit.ySpinBox.value(), + autosplit.widthSpinBox.value(), + autosplit.heightSpinBox.value(), + autosplit.hwnd_title, 0, 0, - self.group_dummy_splits_undo_skip_setting, - self.loop_setting, - self.auto_start_on_reset_setting] + autosplit.group_dummy_splits_undo_skip_setting, + autosplit.loop_setting, + autosplit.auto_start_on_reset_setting, + autosplit.forcePrintWindowCheckBox.isChecked()] # One small caveat in this: if you load a settings file from an old version, but dont change settings, # the current save settings and last load settings will have different # of elements and it will ask # the user to save changes upon closing even though there were none - return current_save_settings not in (self.last_loaded_settings, self.last_saved_settings) + return current_save_settings not in (autosplit.last_loaded_settings, autosplit.last_saved_settings) -def saveSettings(self: AutoSplit): - if self.last_successfully_loaded_settings_file_path == None: - self.saveSettingsAs() +def saveSettings(autosplit: AutoSplit): + if not autosplit.last_successfully_loaded_settings_file_path: + saveSettingsAs(autosplit) else: - self.getSaveSettingsValues() - self.last_saved_settings = [ - self.split_image_directory, - self.similarity_threshold, - self.comparison_index, - self.pause, - self.fps_limit, - self.split_key, - self.reset_key, - self.skip_split_key, - self.undo_split_key, - self.pause_key, - self.x, - self.y, - self.width, - self.height, - self.hwnd_title, + getSaveSettingsValues(autosplit) + autosplit.last_saved_settings = [ + autosplit.split_image_directory, + autosplit.similarity_threshold, + autosplit.comparison_index, + autosplit.pause, + autosplit.fps_limit, + autosplit.split_key, + autosplit.reset_key, + autosplit.skip_split_key, + autosplit.undo_split_key, + autosplit.pause_key, + autosplit.xSpinBox.value(), + autosplit.ySpinBox.value(), + autosplit.widthSpinBox.value(), + autosplit.heightSpinBox.value(), + autosplit.hwnd_title, 0, 0, - self.group_dummy_splits_undo_skip_setting, - self.loop_setting, - self.auto_start_on_reset_setting] + autosplit.group_dummy_splits_undo_skip_setting, + autosplit.loop_setting, + autosplit.auto_start_on_reset_setting, + autosplit.forcePrintWindowCheckBox.isChecked()] # save settings to a .pkl file - with open(self.last_successfully_loaded_settings_file_path, 'wb') as f: - pickle.dump(self.last_saved_settings, f) + with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as f: + pickle.dump(autosplit.last_saved_settings, f) -def saveSettingsAs(self: AutoSplit): +def saveSettingsAs(autosplit: AutoSplit): # User picks save destination - self.save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( - self, + autosplit.save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( + autosplit, "Save Settings As", os.path.join(auto_split_directory, "settings.pkl"), "PKL (*.pkl)")[0] # If user cancels save destination window, don't save settings - if not self.save_settings_file_path: + if not autosplit.save_settings_file_path: return - self.getSaveSettingsValues() - self.last_saved_settings = [ - self.split_image_directory, - self.similarity_threshold, - self.comparison_index, - self.pause, - self.fps_limit, - self.split_key, - self.reset_key, - self.skip_split_key, - self.undo_split_key, - self.pause_key, - self.x, - self.y, - self.width, - self.height, - self.hwnd_title, + getSaveSettingsValues(autosplit) + autosplit.last_saved_settings = [ + autosplit.split_image_directory, + autosplit.similarity_threshold, + autosplit.comparison_index, + autosplit.pause, + autosplit.fps_limit, + autosplit.split_key, + autosplit.reset_key, + autosplit.skip_split_key, + autosplit.undo_split_key, + autosplit.pause_key, + autosplit.xSpinBox.value(), + autosplit.ySpinBox.value(), + autosplit.widthSpinBox.value(), + autosplit.heightSpinBox.value(), + autosplit.hwnd_title, 0, 0, - self.group_dummy_splits_undo_skip_setting, - self.loop_setting, - self.auto_start_on_reset_setting] + autosplit.group_dummy_splits_undo_skip_setting, + autosplit.loop_setting, + autosplit.auto_start_on_reset_setting, + autosplit.forcePrintWindowCheckBox.isChecked()] # save settings to a .pkl file - with open(self.save_settings_file_path, 'wb') as f: - pickle.dump(self.last_saved_settings, f) + with open(autosplit.save_settings_file_path, "wb") as f: + pickle.dump(autosplit.last_saved_settings, f) - #wording is kinda off here but this needs to be here for an edge case: for when a file has never loaded, but you - #save file as successfully. - self.last_successfully_loaded_settings_file_path = self.save_settings_file_path + # Wording is kinda off here but this needs to be here for an edge case: + # for when a file has never loaded, but you save file as successfully. + autosplit.last_successfully_loaded_settings_file_path = autosplit.save_settings_file_path -def loadSettings(self: AutoSplit, load_settings_on_open: bool = False, load_settings_from_livesplit: bool = False): +def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load_settings_from_livesplit: bool = False): if load_settings_on_open: - settings_files = [ file for file in os.listdir(auto_split_directory) - if file.endswith(".pkl") - ] + if file.endswith(".pkl")] # find all .pkls in AutoSplit folder, error if there is none or more than 1 if len(settings_files) < 1: error_messages.noSettingsFileOnOpenError() - self.last_loaded_settings = None + autosplit.last_loaded_settings = None return - elif len(settings_files) > 1: + if len(settings_files) > 1: error_messages.tooManySettingsFilesOnOpenError() - self.last_loaded_settings = None + autosplit.last_loaded_settings = None return - else: - self.load_settings_file_path = os.path.join(auto_split_directory, settings_files[0]) + autosplit.load_settings_file_path = os.path.join(auto_split_directory, settings_files[0]) elif not load_settings_on_open and not load_settings_from_livesplit: - self.load_settings_file_path = QtWidgets.QFileDialog.getOpenFileName( - self, + autosplit.load_settings_file_path = QtWidgets.QFileDialog.getOpenFileName( + autosplit, "Load Settings", os.path.join(auto_split_directory, "settings.pkl"), "PKL (*.pkl)")[0] - if self.load_settings_file_path == '': + if not autosplit.load_settings_file_path: return try: - with open(self.load_settings_file_path, 'rb') as f: - settings: List[Union[str, int]] = pickle.load(f) + with open(autosplit.load_settings_file_path, "rb") as f: + settings: list[Any] = RestrictedUnpickler(f).load() settings_count = len(settings) if settings_count < 18: - self.showErrorSignal.emit(error_messages.oldVersionSettingsFileError) + autosplit.showErrorSignal.emit(error_messages.oldVersionSettingsFileError) return # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting if settings_count == 18: - settings.insert(9, '') + settings.insert(9, "") settings.insert(20, 0) # v1.5 settings - elif settings_count != 20: - self.showErrorSignal.emit(error_messages.invalidSettingsError) + if settings_count == 20: + settings.insert(21, False) + # v1.6.X settings + elif settings_count != 21: + if not load_settings_from_livesplit: + autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) return - self.last_loaded_settings = [ - self.split_image_directory, - self.similarity_threshold, - self.comparison_index, - self.pause, - self.fps_limit, - self.split_key, - self.reset_key, - self.skip_split_key, - self.undo_split_key, - self.pause_key, - self.x, - self.y, - self.width, - self.height, - self.hwnd_title, + autosplit.last_loaded_settings = [ + autosplit.split_image_directory, + autosplit.similarity_threshold, + autosplit.comparison_index, + autosplit.pause, + autosplit.fps_limit, + autosplit.split_key, + autosplit.reset_key, + autosplit.skip_split_key, + autosplit.undo_split_key, + autosplit.pause_key, + region_x, + region_y, + region_width, + region_height, + autosplit.hwnd_title, _, _, - self.group_dummy_splits_undo_skip_setting, - self.loop_setting, - self.auto_start_on_reset_setting] = settings - except (FileNotFoundError, MemoryError, pickle.UnpicklingError): - self.showErrorSignal.emit(error_messages.invalidSettingsError) + autosplit.group_dummy_splits_undo_skip_setting, + autosplit.loop_setting, + autosplit.auto_start_on_reset_setting, + forcePrintWindowCheckBox] = settings + + autosplit.forcePrintWindowCheckBox.setChecked(forcePrintWindowCheckBox) + except (FileNotFoundError, MemoryError, pickle.UnpicklingError) as e: + print(e) + autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) return - self.splitimagefolderLineEdit.setText(self.split_image_directory) - self.similaritythresholdDoubleSpinBox.setValue(self.similarity_threshold) - self.pauseDoubleSpinBox.setValue(self.pause) - self.fpslimitSpinBox.setValue(self.fps_limit) - self.xSpinBox.setValue(self.x) - self.ySpinBox.setValue(self.y) - self.widthSpinBox.setValue(self.width) - self.heightSpinBox.setValue(self.height) - self.comparisonmethodComboBox.setCurrentIndex(self.comparison_index) - self.hwnd = win32gui.FindWindow(None, self.hwnd_title) + autosplit.splitimagefolderLineEdit.setText(autosplit.split_image_directory) + autosplit.similaritythresholdDoubleSpinBox.setValue(autosplit.similarity_threshold) + autosplit.pauseDoubleSpinBox.setValue(autosplit.pause) + autosplit.fpslimitSpinBox.setValue(autosplit.fps_limit) + autosplit.xSpinBox.setValue(region_x) + autosplit.ySpinBox.setValue(region_y) + autosplit.widthSpinBox.setValue(region_width) + autosplit.heightSpinBox.setValue(region_height) + autosplit.comparisonmethodComboBox.setCurrentIndex(autosplit.comparison_index) + # https://github.com/kaluluosi/pywin32-stubs/issues/7 + autosplit.hwnd = win32gui.FindWindow(None, autosplit.hwnd_title) # type: ignore # set custom checkbox's accordingly - self.groupDummySplitsCheckBox.setChecked(self.group_dummy_splits_undo_skip_setting == 1) - self.loopCheckBox.setChecked(self.loop_setting == 1) - self.autostartonresetCheckBox.setChecked(self.auto_start_on_reset_setting == 1) - self.autostartonresetCheckBox.setChecked(self.auto_start_on_reset_setting == 1) + autosplit.groupDummySplitsCheckBox.setChecked(bool(autosplit.group_dummy_splits_undo_skip_setting)) + autosplit.loopCheckBox.setChecked(bool(autosplit.loop_setting)) + autosplit.autostartonresetCheckBox.setChecked(bool(autosplit.auto_start_on_reset_setting)) + autosplit.autostartonresetCheckBox.setChecked(bool(autosplit.auto_start_on_reset_setting)) # TODO: Reuse code from hotkeys rather than duplicating here # try to set hotkeys from when user last closed the window + if autosplit.split_hotkey: + keyboard.unhook_key(autosplit.split_hotkey) try: - keyboard.unhook_key(self.split_hotkey) - # pass if the key is an empty string (hotkey was never set) - except (AttributeError, KeyError): - pass - try: - self.splitLineEdit.setText(self.split_key) - if not self.is_auto_controlled: - self.split_hotkey = keyboard.hook_key(self.split_key, lambda e: _hotkey_action(e, self.split_key, self.startAutoSplitter)) + autosplit.splitLineEdit.setText(autosplit.split_key) + if not autosplit.is_auto_controlled: + autosplit.split_hotkey = keyboard.hook_key( + autosplit.split_key, + lambda e: _hotkey_action(e, autosplit.split_key, autosplit.startAutoSplitter)) except (ValueError, KeyError): pass + if autosplit.reset_hotkey: + keyboard.unhook_key(autosplit.reset_hotkey) try: - keyboard.unhook_key(self.reset_hotkey) - except (AttributeError, KeyError): - pass - try: - self.resetLineEdit.setText(self.reset_key) - if not self.is_auto_controlled: - self.reset_hotkey = keyboard.hook_key(self.reset_key, lambda e: _hotkey_action(e, self.reset_key, self.startReset)) + autosplit.resetLineEdit.setText(autosplit.reset_key) + if not autosplit.is_auto_controlled: + autosplit.reset_hotkey = keyboard.hook_key( + autosplit.reset_key, + lambda e: _hotkey_action(e, autosplit.reset_key, autosplit.startReset)) except (ValueError, KeyError): pass + if autosplit.skip_split_hotkey: + keyboard.unhook_key(autosplit.skip_split_hotkey) try: - keyboard.unhook_key(self.skip_split_hotkey) - except (AttributeError, KeyError): - pass - try: - self.skipsplitLineEdit.setText(self.skip_split_key) - if not self.is_auto_controlled: - self.skip_split_hotkey = keyboard.hook_key(self.skip_split_key, lambda e: _hotkey_action(e, self.skip_split_key, self.startSkipSplit)) + autosplit.skipsplitLineEdit.setText(autosplit.skip_split_key) + if not autosplit.is_auto_controlled: + autosplit.skip_split_hotkey = keyboard.hook_key( + autosplit.skip_split_key, + lambda e: _hotkey_action(e, autosplit.skip_split_key, autosplit.startSkipSplit)) except (ValueError, KeyError): pass + if autosplit.skip_split_hotkey: + keyboard.unhook_key(autosplit.skip_split_hotkey) try: - keyboard.unhook_key(self.undo_split_hotkey) - except (AttributeError, KeyError): - pass - try: - self.undosplitLineEdit.setText(self.undo_split_key) - if not self.is_auto_controlled: - self.undo_split_hotkey = keyboard.hook_key(self.undo_split_key, lambda e: _hotkey_action(e, self.undo_split_key, self.startUndoSplit)) + autosplit.undosplitLineEdit.setText(autosplit.undo_split_key) + if not autosplit.is_auto_controlled: + autosplit.undo_split_hotkey = keyboard.hook_key( + autosplit.undo_split_key, + lambda e: _hotkey_action(e, autosplit.undo_split_key, autosplit.startUndoSplit)) except (ValueError, KeyError): pass + if autosplit.pause_hotkey: + keyboard.unhook_key(autosplit.pause_hotkey) try: - keyboard.unhook_key(self.pause_hotkey) - except (AttributeError, KeyError): - pass - try: - self.pausehotkeyLineEdit.setText(self.pause_key) - if not self.is_auto_controlled: - self.pause_hotkey = keyboard.hook_key(self.pause_key, lambda e: _hotkey_action(e, self.pause_key, self.startPause)) + autosplit.pausehotkeyLineEdit.setText(autosplit.pause_key) + if not autosplit.is_auto_controlled: + autosplit.pause_hotkey = keyboard.hook_key( + autosplit.pause_key, + lambda e: _hotkey_action(e, autosplit.pause_key, autosplit.startPause)) except (ValueError, KeyError): pass - self.last_successfully_loaded_settings_file_path = self.load_settings_file_path - self.checkLiveImage() - self.loadStartImage() + autosplit.last_successfully_loaded_settings_file_path = autosplit.load_settings_file_path + autosplit.checkLiveImage() + autosplit.loadStartImage() def load_check_for_updates_on_open(designWindow: design.Ui_MainWindow): @@ -317,17 +332,17 @@ def load_check_for_updates_on_open(designWindow: design.Ui_MainWindow): """ value = QtCore \ - .QSettings('AutoSplit', 'Check For Updates On Open') \ - .value('check_for_updates_on_open', True, type=bool) + .QSettings("AutoSplit", "Check For Updates On Open") \ + .value("check_for_updates_on_open", True, type=bool) designWindow.actionCheck_for_Updates_on_Open.setChecked(value) def set_check_for_updates_on_open(designWindow: design.Ui_MainWindow, value: bool): """ - Sets the 'Check For Updates On Open' QSettings value and the checkbox state + Sets the "Check For Updates On Open" QSettings value and the checkbox state """ designWindow.actionCheck_for_Updates_on_Open.setChecked(value) QtCore \ - .QSettings('AutoSplit', 'Check For Updates On Open') \ - .setValue('check_for_updates_on_open', value) + .QSettings("AutoSplit", "Check For Updates On Open") \ + .setValue("check_for_updates_on_open", value) diff --git a/src/split_parser.py b/src/split_parser.py index cfcf63fc..5e24c78a 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -1,4 +1,23 @@ -def threshold_from_filename(filename): +from __future__ import annotations +from typing import TYPE_CHECKING +if TYPE_CHECKING: + from AutoSplit import AutoSplit + +import os +import cv2 + +import error_messages + + +[DUMMY_FLAG, + # Legacy flag. Allows support for {md}, {mp}, or {mb} flags previously required to detect transparency. + MASK_FLAG, + BELOW_FLAG, + PAUSE_FLAG, + *_] = [1 << i for i in range(31)] + + +def threshold_from_filename(filename: str): """ Retrieve the threshold from the filename, if there is no threshold or the threshold doesn't meet the requirements of being between 0.0 and 1.0, then None is returned. @@ -10,17 +29,15 @@ def threshold_from_filename(filename): # Check to make sure there is a valid floating point number between # parentheses of the filename try: - threshold = float(filename.split('(', 1)[1].split(')')[0]) - except: + threshold = float(filename.split("(", 1)[1].split(")")[0]) + except (IndexError, ValueError): return None # Check to make sure if it is a valid threshold - if (threshold > 1.0 or threshold < 0.0): - return None - else: - return threshold + return threshold if 0.0 < threshold < 1.0 else None + -def pause_from_filename(filename): +def pause_from_filename(filename: str): """ Retrieve the pause time from the filename, if there is no pause time or the pause time isn't a valid number, then None is returned @@ -32,17 +49,15 @@ def pause_from_filename(filename): # Check to make sure there is a valid pause time between brackets # of the filename try: - pause = float(filename.split('[', 1)[1].split(']')[0]) - except: + pause = float(filename.split("[", 1)[1].split("]")[0]) + except (IndexError, ValueError): return None # Pause times should always be positive or zero - if (pause < 0.0): - return None - else: - return pause + return pause if pause >= 0.0 else None -def delay_from_filename(filename): + +def delay_from_filename(filename: str): """ Retrieve the delay time from the filename, if there is no delay time or the delay time isn't a valid number, then 0 is returned @@ -54,17 +69,15 @@ def delay_from_filename(filename): # Check to make sure there is a valid delay time between brackets # of the filename try: - delay = float(filename.split('#', 1)[1].split('#')[0]) - except: + delay = float(filename.split("#", 1)[1].split("#")[0]) + except (IndexError, ValueError): return 0.0 # Delay times should always be positive or zero - if (delay < 0): - return 0.0 - else: - return delay + return delay if delay >= 0.0 else 0.0 -def loop_from_filename(filename): + +def loop_from_filename(filename: str): """ Retrieve the number of loops from filename, if there is no loop number or the loop number isn't valid, then 1 is returned. @@ -76,55 +89,44 @@ def loop_from_filename(filename): # Check to make sure there is a valid delay time between brackets # of the filename try: - loop = int(filename.split('@', 1)[1].split('@')[0]) - except: + loop = int(filename.split("@", 1)[1].split("@")[0]) + except (IndexError, ValueError): return 1 - # Delay times should always be positive or zero - if (loop < 1): - return 1 - else: - return loop - - -DUMMY_FLAG = 1 << 0 -MASK_FLAG = 1 << 1 #Legacy flag. Allows support for {md}, {mp}, or {mb} flags previously required to detect transparancy. -BELOW_FLAG = 1 << 2 -PAUSE_FLAG = 1 << 3 + # Loop should always be positive + return loop if loop >= 1 else 1 -def flags_from_filename(filename): +def flags_from_filename(filename: str): """ Retrieve the flags from the filename, if there are no flags then 0 is returned @param filename: String containing the file's name @return: The flags as an integer, if invalid flags are found it returns 0 - """ - """ - List of flags: - 'd' = dummy, do nothing when this split is found - 'b' = below threshold, after threshold is met, split when it goes below the threhsold. - 'p' = pause, hit pause key when this split is found + list of flags: + "d" = dummy, do nothing when this split is found + "b" = below threshold, after threshold is met, split when it goes below the threhsold. + "p" = pause, hit pause key when this split is found """ # Check to make sure there are flags between curly braces # of the filename try: - flags_str = filename.split('{', 1)[1].split('}')[0] - except: + flags_str = filename.split("{", 1)[1].split("}")[0] + except (IndexError, ValueError): return 0 flags = 0x00 for c in flags_str: - if c.upper() == 'D': + if c.upper() == "D": flags |= DUMMY_FLAG - elif c.upper() == 'M': + elif c.upper() == "M": flags |= MASK_FLAG - elif c.upper() == 'B': + elif c.upper() == "B": flags |= BELOW_FLAG - elif c.upper() == 'P': + elif c.upper() == "P": flags |= PAUSE_FLAG else: # An invalid flag was caught, this filename was written incorrectly @@ -138,21 +140,83 @@ def flags_from_filename(filename): return flags -def is_reset_image(filename): + +def is_reset_image(filename: str): """ Checks if the image is used for resetting @param filename: String containing the file's name @return: True if its a reset image """ - return ('RESET' in filename.upper()) + return "RESET" in filename.upper() -def is_start_auto_splitter_image(filename): + +def is_start_auto_splitter_image(filename: str): """ Checks if the image is used to start AutoSplit @param filename: String containing the file's name @return: True if its a reset image """ - return ('START_AUTO_SPLITTER' in filename.upper()) - + return "START_AUTO_SPLITTER" in filename.upper() + + +def removeStartAutoSplitterImage(split_image_filenames: list[str]): + start_auto_splitter_image_file = None + for image in split_image_filenames: + if is_start_auto_splitter_image(image): + start_auto_splitter_image_file = image + break + + if start_auto_splitter_image_file is None: + return + + split_image_filenames.remove(start_auto_splitter_image_file) + + +# TODO: When split, reset and start image are all a proper class +# let's also extract reset and start from the list here and return them +def validate_images_before_parsing(autosplit: AutoSplit): + already_found_reset_image = False + already_found_start_image = False + # Make sure that each of the images follows the guidelines for correct format + # according to all of the settings selected by the user. + for image in autosplit.split_image_filenames: + # Test for image without transparency + if (cv2.imread(os.path.join(autosplit.split_image_directory, image), cv2.IMREAD_COLOR) is None + # Test for image with transparency + and cv2.imread(os.path.join(autosplit.split_image_directory, image), cv2.IMREAD_UNCHANGED) is None): + # Opencv couldn't open this file as an image, this isn't a correct + # file format that is supported + autosplit.guiChangesOnReset() + error_messages.imageTypeError(image) + return + + # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. + if (not autosplit.pausehotkeyLineEdit.text() + and flags_from_filename(image) & PAUSE_FLAG == PAUSE_FLAG + and not autosplit.is_auto_controlled): + autosplit.guiChangesOnReset() + error_messages.pauseHotkeyError() + return + + # Check that there's only one reset image + if is_reset_image(image): + # If there is no reset hotkey set but a reset image is present, and is not auto controlled, throw an error. + if not autosplit.resetLineEdit.text() and not autosplit.is_auto_controlled: + autosplit.guiChangesOnReset() + error_messages.resetHotkeyError() + return + if already_found_reset_image: + autosplit.guiChangesOnReset() + error_messages.multipleKeywordImagesError("reset") + return + already_found_reset_image = True + + # Check that there's only one auto_start_autosplitter image + if is_start_auto_splitter_image(image): + if already_found_start_image: + autosplit.guiChangesOnReset() + error_messages.multipleKeywordImagesError("start_auto_splitter") + return + already_found_start_image = True diff --git a/src/update_checker.py b/src/update_checker.py deleted file mode 100644 index 0a8219d4..00000000 --- a/src/update_checker.py +++ /dev/null @@ -1,77 +0,0 @@ -# Form implementation generated from reading ui file '.\res\update_checker.ui' -# -# Created by: PyQt6 UI code generator 6.1.0 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt6 import QtCore, QtGui, QtWidgets - - -class Ui_UpdateChecker(object): - def setupUi(self, UpdateChecker): - UpdateChecker.setObjectName("UpdateChecker") - UpdateChecker.setEnabled(True) - UpdateChecker.resize(313, 133) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(UpdateChecker.sizePolicy().hasHeightForWidth()) - UpdateChecker.setSizePolicy(sizePolicy) - UpdateChecker.setMinimumSize(QtCore.QSize(313, 133)) - UpdateChecker.setMaximumSize(QtCore.QSize(313, 133)) - font = QtGui.QFont() - font.setPointSize(9) - UpdateChecker.setFont(font) - UpdateChecker.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.labelUpdateStatus = QtWidgets.QLabel(UpdateChecker) - self.labelUpdateStatus.setGeometry(QtCore.QRect(20, 10, 218, 16)) - sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth(self.labelUpdateStatus.sizePolicy().hasHeightForWidth()) - self.labelUpdateStatus.setSizePolicy(sizePolicy) - self.labelUpdateStatus.setObjectName("labelUpdateStatus") - self.labelCurrentVersion = QtWidgets.QLabel(UpdateChecker) - self.labelCurrentVersion.setGeometry(QtCore.QRect(20, 30, 91, 16)) - self.labelCurrentVersion.setObjectName("labelCurrentVersion") - self.labelLatestVersion = QtWidgets.QLabel(UpdateChecker) - self.labelLatestVersion.setGeometry(QtCore.QRect(20, 50, 81, 16)) - self.labelLatestVersion.setObjectName("labelLatestVersion") - self.labelGoToDownload = QtWidgets.QLabel(UpdateChecker) - self.labelGoToDownload.setGeometry(QtCore.QRect(20, 80, 119, 16)) - self.labelGoToDownload.setObjectName("labelGoToDownload") - self.pushButtonLeft = QtWidgets.QPushButton(UpdateChecker) - self.pushButtonLeft.setGeometry(QtCore.QRect(150, 100, 75, 24)) - self.pushButtonLeft.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) - self.pushButtonLeft.setObjectName("pushButtonLeft") - self.pushButtonRight = QtWidgets.QPushButton(UpdateChecker) - self.pushButtonRight.setGeometry(QtCore.QRect(230, 100, 75, 24)) - self.pushButtonRight.setObjectName("pushButtonRight") - self.labelCurrentVersionNumber = QtWidgets.QLabel(UpdateChecker) - self.labelCurrentVersionNumber.setGeometry(QtCore.QRect(120, 30, 181, 16)) - self.labelCurrentVersionNumber.setText("") - self.labelCurrentVersionNumber.setObjectName("labelCurrentVersionNumber") - self.labelLatestVersionNumber = QtWidgets.QLabel(UpdateChecker) - self.labelLatestVersionNumber.setGeometry(QtCore.QRect(120, 50, 181, 16)) - self.labelLatestVersionNumber.setText("") - self.labelLatestVersionNumber.setObjectName("labelLatestVersionNumber") - self.checkBoxDoNotAskMeAgain = QtWidgets.QCheckBox(UpdateChecker) - self.checkBoxDoNotAskMeAgain.setGeometry(QtCore.QRect(20, 102, 131, 20)) - self.checkBoxDoNotAskMeAgain.setObjectName("checkBoxDoNotAskMeAgain") - - self.retranslateUi(UpdateChecker) - self.pushButtonRight.clicked.connect(UpdateChecker.close) - QtCore.QMetaObject.connectSlotsByName(UpdateChecker) - - def retranslateUi(self, UpdateChecker): - _translate = QtCore.QCoreApplication.translate - UpdateChecker.setWindowTitle(_translate("UpdateChecker", "Update Checker")) - self.labelUpdateStatus.setText(_translate("UpdateChecker", "There is an update available for AutoSplit.")) - self.labelCurrentVersion.setText(_translate("UpdateChecker", "Current Version:")) - self.labelLatestVersion.setText(_translate("UpdateChecker", "Latest Version:")) - self.labelGoToDownload.setText(_translate("UpdateChecker", "Open download page?")) - self.pushButtonLeft.setText(_translate("UpdateChecker", "Open")) - self.pushButtonRight.setText(_translate("UpdateChecker", "Later")) - self.checkBoxDoNotAskMeAgain.setText(_translate("UpdateChecker", "Do not ask me again")) diff --git a/typings/cv2-stubs/__init__.pyi b/typings/cv2-stubs/__init__.pyi new file mode 100644 index 00000000..2d471883 --- /dev/null +++ b/typings/cv2-stubs/__init__.pyi @@ -0,0 +1,3578 @@ +# Python: 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] +# Library: cv2, version: 4.4.0 +# Module: cv2.cv2, version: 4.4.0 +# https://github.com/microsoft/python-type-stubs/pull/112 +import typing +import builtins as _mod_builtins +import cv2 as _mod_cv2 +import numpy + +ndarray = numpy.ndarray[int, numpy.dtype[typing.Any]] + +ACCESS_FAST: int +ACCESS_MASK: int +ACCESS_READ: int +ACCESS_RW: int +ACCESS_WRITE: int +ADAPTIVE_THRESH_GAUSSIAN_C: int +ADAPTIVE_THRESH_MEAN_C: int +AGAST_FEATURE_DETECTOR_AGAST_5_8: int +AGAST_FEATURE_DETECTOR_AGAST_7_12D: int +AGAST_FEATURE_DETECTOR_AGAST_7_12S: int +AGAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION: int +AGAST_FEATURE_DETECTOR_OAST_9_16: int +AGAST_FEATURE_DETECTOR_THRESHOLD: int +AKAZE = _mod_cv2.AKAZE +AKAZE_DESCRIPTOR_KAZE: int +AKAZE_DESCRIPTOR_KAZE_UPRIGHT: int +AKAZE_DESCRIPTOR_MLDB: int +AKAZE_DESCRIPTOR_MLDB_UPRIGHT: int + + +def AKAZE_create(descriptor_type=..., descriptor_size=..., descriptor_channels=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: + 'AKAZE_create([, descriptor_type[, descriptor_size[, descriptor_channels[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]]) -> retval\n. @brief The AKAZE constructor\n. \n. @param descriptor_type Type of the extracted descriptor: DESCRIPTOR_KAZE,\n. DESCRIPTOR_KAZE_UPRIGHT, DESCRIPTOR_MLDB or DESCRIPTOR_MLDB_UPRIGHT.\n. @param descriptor_size Size of the descriptor in bits. 0 -\\> Full size\n. @param descriptor_channels Number of channels in the descriptor (1, 2, 3)\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' + ... + + +AgastFeatureDetector = _mod_cv2.AgastFeatureDetector +AgastFeatureDetector_AGAST_5_8: int +AgastFeatureDetector_AGAST_7_12d: int +AgastFeatureDetector_AGAST_7_12s: int +AgastFeatureDetector_NONMAX_SUPPRESSION: int +AgastFeatureDetector_OAST_9_16: int +AgastFeatureDetector_THRESHOLD: int + + +def AgastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...) -> typing.Any: + 'AgastFeatureDetector_create([, threshold[, nonmaxSuppression[, type]]]) -> retval\n.' + ... + + +Algorithm = _mod_cv2.Algorithm +AlignExposures = _mod_cv2.AlignExposures +AlignMTB = _mod_cv2.AlignMTB +AsyncArray = _mod_cv2.AsyncArray +BFMatcher = _mod_cv2.BFMatcher + + +def BFMatcher_create(normType: int = ..., crossCheck=...) -> typing.Any: + "BFMatcher_create([, normType[, crossCheck]]) -> retval\n. @brief Brute-force matcher create method.\n. @param normType One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. L1 and L2 norms are\n. preferable choices for SIFT and SURF descriptors, NORM_HAMMING should be used with ORB, BRISK and\n. BRIEF, NORM_HAMMING2 should be used with ORB when WTA_K==3 or 4 (see ORB::ORB constructor\n. description).\n. @param crossCheck If it is false, this is will be default BFMatcher behaviour when it finds the k\n. nearest neighbors for each query descriptor. If crossCheck==true, then the knnMatch() method with\n. k=1 will only return pairs (i,j) such that for i-th query descriptor the j-th descriptor in the\n. matcher's collection is the nearest and vice versa, i.e. the BFMatcher will only return consistent\n. pairs. Such technique usually produces best results with minimal number of outliers when there are\n. enough matches. This is alternative to the ratio test, used by D. Lowe in SIFT paper." + ... + + +BORDER_CONSTANT: int +BORDER_DEFAULT: int +BORDER_ISOLATED: int +BORDER_REFLECT: int +BORDER_REFLECT101: int +BORDER_REFLECT_101: int +BORDER_REPLICATE: int +BORDER_TRANSPARENT: int +BORDER_WRAP: int +BOWImgDescriptorExtractor = _mod_cv2.BOWImgDescriptorExtractor +BOWKMeansTrainer = _mod_cv2.BOWKMeansTrainer +BOWTrainer = _mod_cv2.BOWTrainer +BRISK = _mod_cv2.BRISK + + +def BRISK_create(thresh=..., octaves=..., patternScale=...) -> typing.Any: + 'BRISK_create([, thresh[, octaves[, patternScale]]]) -> retval\n. @brief The BRISK constructor\n. \n. @param thresh AGAST detection threshold score.\n. @param octaves detection octaves. Use 0 to do single scale.\n. @param patternScale apply this scale to the pattern used for sampling the neighbourhood of a\n. keypoint.\n\n\n\nBRISK_create(radiusList, numberList[, dMax[, dMin[, indexChange]]]) -> retval\n. @brief The BRISK constructor for a custom pattern\n. \n. @param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for\n. keypoint scale 1).\n. @param numberList defines the number of sampling points on the sampling circle. Must be the same\n. size as radiusList..\n. @param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint\n. scale 1).\n. @param dMin threshold for the long pairings used for orientation determination (in pixels for\n. keypoint scale 1).\n. @param indexChange index remapping of the bits.\n\n\n\nBRISK_create(thresh, octaves, radiusList, numberList[, dMax[, dMin[, indexChange]]]) -> retval\n. @brief The BRISK constructor for a custom pattern, detection threshold and octaves\n. \n. @param thresh AGAST detection threshold score.\n. @param octaves detection octaves. Use 0 to do single scale.\n. @param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for\n. keypoint scale 1).\n. @param numberList defines the number of sampling points on the sampling circle. Must be the same\n. size as radiusList..\n. @param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint\n. scale 1).\n. @param dMin threshold for the long pairings used for orientation determination (in pixels for\n. keypoint scale 1).\n. @param indexChange index remapping of the bits.' + ... + + +BackgroundSubtractor = _mod_cv2.BackgroundSubtractor +BackgroundSubtractorKNN = _mod_cv2.BackgroundSubtractorKNN +BackgroundSubtractorMOG2 = _mod_cv2.BackgroundSubtractorMOG2 +BaseCascadeClassifier = _mod_cv2.BaseCascadeClassifier +CALIB_CB_ACCURACY: int +CALIB_CB_ADAPTIVE_THRESH: int +CALIB_CB_ASYMMETRIC_GRID: int +CALIB_CB_CLUSTERING: int +CALIB_CB_EXHAUSTIVE: int +CALIB_CB_FAST_CHECK: int +CALIB_CB_FILTER_QUADS: int +CALIB_CB_LARGER: int +CALIB_CB_MARKER: int +CALIB_CB_NORMALIZE_IMAGE: int +CALIB_CB_SYMMETRIC_GRID: int +CALIB_FIX_ASPECT_RATIO: int +CALIB_FIX_FOCAL_LENGTH: int +CALIB_FIX_INTRINSIC: int +CALIB_FIX_K1: int +CALIB_FIX_K2: int +CALIB_FIX_K3: int +CALIB_FIX_K4: int +CALIB_FIX_K5: int +CALIB_FIX_K6: int +CALIB_FIX_PRINCIPAL_POINT: int +CALIB_FIX_S1_S2_S3_S4: int +CALIB_FIX_TANGENT_DIST: int +CALIB_FIX_TAUX_TAUY: int +CALIB_HAND_EYE_ANDREFF: int +CALIB_HAND_EYE_DANIILIDIS: int +CALIB_HAND_EYE_HORAUD: int +CALIB_HAND_EYE_PARK: int +CALIB_HAND_EYE_TSAI: int +CALIB_NINTRINSIC: int +CALIB_RATIONAL_MODEL: int +CALIB_SAME_FOCAL_LENGTH: int +CALIB_THIN_PRISM_MODEL: int +CALIB_TILTED_MODEL: int +CALIB_USE_EXTRINSIC_GUESS: int +CALIB_USE_INTRINSIC_GUESS: int +CALIB_USE_LU: int +CALIB_USE_QR: int +CALIB_ZERO_DISPARITY: int +CALIB_ZERO_TANGENT_DIST: int +CAP_ANDROID: int +CAP_ANY: int +CAP_ARAVIS: int +CAP_AVFOUNDATION: int +CAP_CMU1394: int +CAP_DC1394: int +CAP_DSHOW: int +CAP_FFMPEG: int +CAP_FIREWARE: int +CAP_FIREWIRE: int +CAP_GIGANETIX: int +CAP_GPHOTO2: int +CAP_GSTREAMER: int +CAP_IEEE1394: int +CAP_IMAGES: int +CAP_INTELPERC: int +CAP_INTELPERC_DEPTH_GENERATOR: int +CAP_INTELPERC_DEPTH_MAP: int +CAP_INTELPERC_GENERATORS_MASK: int +CAP_INTELPERC_IMAGE: int +CAP_INTELPERC_IMAGE_GENERATOR: int +CAP_INTELPERC_IR_GENERATOR: int +CAP_INTELPERC_IR_MAP: int +CAP_INTELPERC_UVDEPTH_MAP: int +CAP_INTEL_MFX: int +CAP_MSMF: int +CAP_OPENCV_MJPEG: int +CAP_OPENNI: int +CAP_OPENNI2: int +CAP_OPENNI2_ASUS: int +CAP_OPENNI_ASUS: int +CAP_OPENNI_BGR_IMAGE: int +CAP_OPENNI_DEPTH_GENERATOR: int +CAP_OPENNI_DEPTH_GENERATOR_BASELINE: int +CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH: int +CAP_OPENNI_DEPTH_GENERATOR_PRESENT: int +CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION: int +CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON: int +CAP_OPENNI_DEPTH_MAP: int +CAP_OPENNI_DISPARITY_MAP: int +CAP_OPENNI_DISPARITY_MAP_32F: int +CAP_OPENNI_GENERATORS_MASK: int +CAP_OPENNI_GRAY_IMAGE: int +CAP_OPENNI_IMAGE_GENERATOR: int +CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE: int +CAP_OPENNI_IMAGE_GENERATOR_PRESENT: int +CAP_OPENNI_IR_GENERATOR: int +CAP_OPENNI_IR_GENERATOR_PRESENT: int +CAP_OPENNI_IR_IMAGE: int +CAP_OPENNI_POINT_CLOUD_MAP: int +CAP_OPENNI_QVGA_30HZ: int +CAP_OPENNI_QVGA_60HZ: int +CAP_OPENNI_SXGA_15HZ: int +CAP_OPENNI_SXGA_30HZ: int +CAP_OPENNI_VALID_DEPTH_MASK: int +CAP_OPENNI_VGA_30HZ: int +CAP_PROP_APERTURE: int +CAP_PROP_ARAVIS_AUTOTRIGGER: int +CAP_PROP_AUTOFOCUS: int +CAP_PROP_AUTO_EXPOSURE: int +CAP_PROP_AUTO_WB: int +CAP_PROP_BACKEND: int +CAP_PROP_BACKLIGHT: int +CAP_PROP_BITRATE: int +CAP_PROP_BRIGHTNESS: int +CAP_PROP_BUFFERSIZE: int +CAP_PROP_CHANNEL: int +CAP_PROP_CODEC_PIXEL_FORMAT: int +CAP_PROP_CONTRAST: int +CAP_PROP_CONVERT_RGB: int +CAP_PROP_DC1394_MAX: int +CAP_PROP_DC1394_MODE_AUTO: int +CAP_PROP_DC1394_MODE_MANUAL: int +CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO: int +CAP_PROP_DC1394_OFF: int +CAP_PROP_EXPOSURE: int +CAP_PROP_EXPOSUREPROGRAM: int +CAP_PROP_FOCUS: int +CAP_PROP_FORMAT: int +CAP_PROP_FOURCC: int +CAP_PROP_FPS: int +CAP_PROP_FRAME_COUNT: int +CAP_PROP_FRAME_HEIGHT: int +CAP_PROP_FRAME_WIDTH: int +CAP_PROP_GAIN: int +CAP_PROP_GAMMA: int +CAP_PROP_GIGA_FRAME_HEIGH_MAX: int +CAP_PROP_GIGA_FRAME_OFFSET_X: int +CAP_PROP_GIGA_FRAME_OFFSET_Y: int +CAP_PROP_GIGA_FRAME_SENS_HEIGH: int +CAP_PROP_GIGA_FRAME_SENS_WIDTH: int +CAP_PROP_GIGA_FRAME_WIDTH_MAX: int +CAP_PROP_GPHOTO2_COLLECT_MSGS: int +CAP_PROP_GPHOTO2_FLUSH_MSGS: int +CAP_PROP_GPHOTO2_PREVIEW: int +CAP_PROP_GPHOTO2_RELOAD_CONFIG: int +CAP_PROP_GPHOTO2_RELOAD_ON_CHANGE: int +CAP_PROP_GPHOTO2_WIDGET_ENUMERATE: int +CAP_PROP_GSTREAMER_QUEUE_LENGTH: int +CAP_PROP_GUID: int +CAP_PROP_HUE: int +CAP_PROP_IMAGES_BASE: int +CAP_PROP_IMAGES_LAST: int +CAP_PROP_INTELPERC_DEPTH_CONFIDENCE_THRESHOLD: int +CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_HORZ: int +CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_VERT: int +CAP_PROP_INTELPERC_DEPTH_LOW_CONFIDENCE_VALUE: int +CAP_PROP_INTELPERC_DEPTH_SATURATION_VALUE: int +CAP_PROP_INTELPERC_PROFILE_COUNT: int +CAP_PROP_INTELPERC_PROFILE_IDX: int +CAP_PROP_IOS_DEVICE_EXPOSURE: int +CAP_PROP_IOS_DEVICE_FLASH: int +CAP_PROP_IOS_DEVICE_FOCUS: int +CAP_PROP_IOS_DEVICE_TORCH: int +CAP_PROP_IOS_DEVICE_WHITEBALANCE: int +CAP_PROP_IRIS: int +CAP_PROP_ISO_SPEED: int +CAP_PROP_MODE: int +CAP_PROP_MONOCHROME: int +CAP_PROP_OPENNI2_MIRROR: int +CAP_PROP_OPENNI2_SYNC: int +CAP_PROP_OPENNI_APPROX_FRAME_SYNC: int +CAP_PROP_OPENNI_BASELINE: int +CAP_PROP_OPENNI_CIRCLE_BUFFER: int +CAP_PROP_OPENNI_FOCAL_LENGTH: int +CAP_PROP_OPENNI_FRAME_MAX_DEPTH: int +CAP_PROP_OPENNI_GENERATOR_PRESENT: int +CAP_PROP_OPENNI_MAX_BUFFER_SIZE: int +CAP_PROP_OPENNI_MAX_TIME_DURATION: int +CAP_PROP_OPENNI_OUTPUT_MODE: int +CAP_PROP_OPENNI_REGISTRATION: int +CAP_PROP_OPENNI_REGISTRATION_ON: int +CAP_PROP_PAN: int +CAP_PROP_POS_AVI_RATIO: int +CAP_PROP_POS_FRAMES: int +CAP_PROP_POS_MSEC: int +CAP_PROP_PVAPI_BINNINGX: int +CAP_PROP_PVAPI_BINNINGY: int +CAP_PROP_PVAPI_DECIMATIONHORIZONTAL: int +CAP_PROP_PVAPI_DECIMATIONVERTICAL: int +CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE: int +CAP_PROP_PVAPI_MULTICASTIP: int +CAP_PROP_PVAPI_PIXELFORMAT: int +CAP_PROP_RECTIFICATION: int +CAP_PROP_ROLL: int +CAP_PROP_SAR_DEN: int +CAP_PROP_SAR_NUM: int +CAP_PROP_SATURATION: int +CAP_PROP_SETTINGS: int +CAP_PROP_SHARPNESS: int +CAP_PROP_SPEED: int +CAP_PROP_TEMPERATURE: int +CAP_PROP_TILT: int +CAP_PROP_TRIGGER: int +CAP_PROP_TRIGGER_DELAY: int +CAP_PROP_VIEWFINDER: int +CAP_PROP_WB_TEMPERATURE: int +CAP_PROP_WHITE_BALANCE_BLUE_U: int +CAP_PROP_WHITE_BALANCE_RED_V: int +CAP_PROP_XI_ACQ_BUFFER_SIZE: int +CAP_PROP_XI_ACQ_BUFFER_SIZE_UNIT: int +CAP_PROP_XI_ACQ_FRAME_BURST_COUNT: int +CAP_PROP_XI_ACQ_TIMING_MODE: int +CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_COMMIT: int +CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_SIZE: int +CAP_PROP_XI_AEAG: int +CAP_PROP_XI_AEAG_LEVEL: int +CAP_PROP_XI_AEAG_ROI_HEIGHT: int +CAP_PROP_XI_AEAG_ROI_OFFSET_X: int +CAP_PROP_XI_AEAG_ROI_OFFSET_Y: int +CAP_PROP_XI_AEAG_ROI_WIDTH: int +CAP_PROP_XI_AE_MAX_LIMIT: int +CAP_PROP_XI_AG_MAX_LIMIT: int +CAP_PROP_XI_APPLY_CMS: int +CAP_PROP_XI_AUTO_BANDWIDTH_CALCULATION: int +CAP_PROP_XI_AUTO_WB: int +CAP_PROP_XI_AVAILABLE_BANDWIDTH: int +CAP_PROP_XI_BINNING_HORIZONTAL: int +CAP_PROP_XI_BINNING_PATTERN: int +CAP_PROP_XI_BINNING_SELECTOR: int +CAP_PROP_XI_BINNING_VERTICAL: int +CAP_PROP_XI_BPC: int +CAP_PROP_XI_BUFFERS_QUEUE_SIZE: int +CAP_PROP_XI_BUFFER_POLICY: int +CAP_PROP_XI_CC_MATRIX_00: int +CAP_PROP_XI_CC_MATRIX_01: int +CAP_PROP_XI_CC_MATRIX_02: int +CAP_PROP_XI_CC_MATRIX_03: int +CAP_PROP_XI_CC_MATRIX_10: int +CAP_PROP_XI_CC_MATRIX_11: int +CAP_PROP_XI_CC_MATRIX_12: int +CAP_PROP_XI_CC_MATRIX_13: int +CAP_PROP_XI_CC_MATRIX_20: int +CAP_PROP_XI_CC_MATRIX_21: int +CAP_PROP_XI_CC_MATRIX_22: int +CAP_PROP_XI_CC_MATRIX_23: int +CAP_PROP_XI_CC_MATRIX_30: int +CAP_PROP_XI_CC_MATRIX_31: int +CAP_PROP_XI_CC_MATRIX_32: int +CAP_PROP_XI_CC_MATRIX_33: int +CAP_PROP_XI_CHIP_TEMP: int +CAP_PROP_XI_CMS: int +CAP_PROP_XI_COLOR_FILTER_ARRAY: int +CAP_PROP_XI_COLUMN_FPN_CORRECTION: int +CAP_PROP_XI_COOLING: int +CAP_PROP_XI_COUNTER_SELECTOR: int +CAP_PROP_XI_COUNTER_VALUE: int +CAP_PROP_XI_DATA_FORMAT: int +CAP_PROP_XI_DEBOUNCE_EN: int +CAP_PROP_XI_DEBOUNCE_POL: int +CAP_PROP_XI_DEBOUNCE_T0: int +CAP_PROP_XI_DEBOUNCE_T1: int +CAP_PROP_XI_DEBUG_LEVEL: int +CAP_PROP_XI_DECIMATION_HORIZONTAL: int +CAP_PROP_XI_DECIMATION_PATTERN: int +CAP_PROP_XI_DECIMATION_SELECTOR: int +CAP_PROP_XI_DECIMATION_VERTICAL: int +CAP_PROP_XI_DEFAULT_CC_MATRIX: int +CAP_PROP_XI_DEVICE_MODEL_ID: int +CAP_PROP_XI_DEVICE_RESET: int +CAP_PROP_XI_DEVICE_SN: int +CAP_PROP_XI_DOWNSAMPLING: int +CAP_PROP_XI_DOWNSAMPLING_TYPE: int +CAP_PROP_XI_EXPOSURE: int +CAP_PROP_XI_EXPOSURE_BURST_COUNT: int +CAP_PROP_XI_EXP_PRIORITY: int +CAP_PROP_XI_FFS_ACCESS_KEY: int +CAP_PROP_XI_FFS_FILE_ID: int +CAP_PROP_XI_FFS_FILE_SIZE: int +CAP_PROP_XI_FRAMERATE: int +CAP_PROP_XI_FREE_FFS_SIZE: int +CAP_PROP_XI_GAIN: int +CAP_PROP_XI_GAIN_SELECTOR: int +CAP_PROP_XI_GAMMAC: int +CAP_PROP_XI_GAMMAY: int +CAP_PROP_XI_GPI_LEVEL: int +CAP_PROP_XI_GPI_MODE: int +CAP_PROP_XI_GPI_SELECTOR: int +CAP_PROP_XI_GPO_MODE: int +CAP_PROP_XI_GPO_SELECTOR: int +CAP_PROP_XI_HDR: int +CAP_PROP_XI_HDR_KNEEPOINT_COUNT: int +CAP_PROP_XI_HDR_T1: int +CAP_PROP_XI_HDR_T2: int +CAP_PROP_XI_HEIGHT: int +CAP_PROP_XI_HOUS_BACK_SIDE_TEMP: int +CAP_PROP_XI_HOUS_TEMP: int +CAP_PROP_XI_HW_REVISION: int +CAP_PROP_XI_IMAGE_BLACK_LEVEL: int +CAP_PROP_XI_IMAGE_DATA_BIT_DEPTH: int +CAP_PROP_XI_IMAGE_DATA_FORMAT: int +CAP_PROP_XI_IMAGE_DATA_FORMAT_RGB32_ALPHA: int +CAP_PROP_XI_IMAGE_IS_COLOR: int +CAP_PROP_XI_IMAGE_PAYLOAD_SIZE: int +CAP_PROP_XI_IS_COOLED: int +CAP_PROP_XI_IS_DEVICE_EXIST: int +CAP_PROP_XI_KNEEPOINT1: int +CAP_PROP_XI_KNEEPOINT2: int +CAP_PROP_XI_LED_MODE: int +CAP_PROP_XI_LED_SELECTOR: int +CAP_PROP_XI_LENS_APERTURE_VALUE: int +CAP_PROP_XI_LENS_FEATURE: int +CAP_PROP_XI_LENS_FEATURE_SELECTOR: int +CAP_PROP_XI_LENS_FOCAL_LENGTH: int +CAP_PROP_XI_LENS_FOCUS_DISTANCE: int +CAP_PROP_XI_LENS_FOCUS_MOVE: int +CAP_PROP_XI_LENS_FOCUS_MOVEMENT_VALUE: int +CAP_PROP_XI_LENS_MODE: int +CAP_PROP_XI_LIMIT_BANDWIDTH: int +CAP_PROP_XI_LUT_EN: int +CAP_PROP_XI_LUT_INDEX: int +CAP_PROP_XI_LUT_VALUE: int +CAP_PROP_XI_MANUAL_WB: int +CAP_PROP_XI_OFFSET_X: int +CAP_PROP_XI_OFFSET_Y: int +CAP_PROP_XI_OUTPUT_DATA_BIT_DEPTH: int +CAP_PROP_XI_OUTPUT_DATA_PACKING: int +CAP_PROP_XI_OUTPUT_DATA_PACKING_TYPE: int +CAP_PROP_XI_RECENT_FRAME: int +CAP_PROP_XI_REGION_MODE: int +CAP_PROP_XI_REGION_SELECTOR: int +CAP_PROP_XI_ROW_FPN_CORRECTION: int +CAP_PROP_XI_SENSOR_BOARD_TEMP: int +CAP_PROP_XI_SENSOR_CLOCK_FREQ_HZ: int +CAP_PROP_XI_SENSOR_CLOCK_FREQ_INDEX: int +CAP_PROP_XI_SENSOR_DATA_BIT_DEPTH: int +CAP_PROP_XI_SENSOR_FEATURE_SELECTOR: int +CAP_PROP_XI_SENSOR_FEATURE_VALUE: int +CAP_PROP_XI_SENSOR_MODE: int +CAP_PROP_XI_SENSOR_OUTPUT_CHANNEL_COUNT: int +CAP_PROP_XI_SENSOR_TAPS: int +CAP_PROP_XI_SHARPNESS: int +CAP_PROP_XI_SHUTTER_TYPE: int +CAP_PROP_XI_TARGET_TEMP: int +CAP_PROP_XI_TEST_PATTERN: int +CAP_PROP_XI_TEST_PATTERN_GENERATOR_SELECTOR: int +CAP_PROP_XI_TIMEOUT: int +CAP_PROP_XI_TRANSPORT_PIXEL_FORMAT: int +CAP_PROP_XI_TRG_DELAY: int +CAP_PROP_XI_TRG_SELECTOR: int +CAP_PROP_XI_TRG_SOFTWARE: int +CAP_PROP_XI_TRG_SOURCE: int +CAP_PROP_XI_TS_RST_MODE: int +CAP_PROP_XI_TS_RST_SOURCE: int +CAP_PROP_XI_USED_FFS_SIZE: int +CAP_PROP_XI_WB_KB: int +CAP_PROP_XI_WB_KG: int +CAP_PROP_XI_WB_KR: int +CAP_PROP_XI_WIDTH: int +CAP_PROP_ZOOM: int +CAP_PVAPI: int +CAP_PVAPI_DECIMATION_2OUTOF16: int +CAP_PVAPI_DECIMATION_2OUTOF4: int +CAP_PVAPI_DECIMATION_2OUTOF8: int +CAP_PVAPI_DECIMATION_OFF: int +CAP_PVAPI_FSTRIGMODE_FIXEDRATE: int +CAP_PVAPI_FSTRIGMODE_FREERUN: int +CAP_PVAPI_FSTRIGMODE_SOFTWARE: int +CAP_PVAPI_FSTRIGMODE_SYNCIN1: int +CAP_PVAPI_FSTRIGMODE_SYNCIN2: int +CAP_PVAPI_PIXELFORMAT_BAYER16: int +CAP_PVAPI_PIXELFORMAT_BAYER8: int +CAP_PVAPI_PIXELFORMAT_BGR24: int +CAP_PVAPI_PIXELFORMAT_BGRA32: int +CAP_PVAPI_PIXELFORMAT_MONO16: int +CAP_PVAPI_PIXELFORMAT_MONO8: int +CAP_PVAPI_PIXELFORMAT_RGB24: int +CAP_PVAPI_PIXELFORMAT_RGBA32: int +CAP_QT: int +CAP_REALSENSE: int +CAP_UNICAP: int +CAP_V4L: int +CAP_V4L2: int +CAP_VFW: int +CAP_WINRT: int +CAP_XIAPI: int +CAP_XINE: int +CASCADE_DO_CANNY_PRUNING: int +CASCADE_DO_ROUGH_SEARCH: int +CASCADE_FIND_BIGGEST_OBJECT: int +CASCADE_SCALE_IMAGE: int +CCL_DEFAULT: int +CCL_GRANA: int +CCL_WU: int +CC_STAT_AREA: int +CC_STAT_HEIGHT: int +CC_STAT_LEFT: int +CC_STAT_MAX: int +CC_STAT_TOP: int +CC_STAT_WIDTH: int +CHAIN_APPROX_NONE: int +CHAIN_APPROX_SIMPLE: int +CHAIN_APPROX_TC89_KCOS: int +CHAIN_APPROX_TC89_L1: int +CIRCLES_GRID_FINDER_PARAMETERS_ASYMMETRIC_GRID: int +CIRCLES_GRID_FINDER_PARAMETERS_SYMMETRIC_GRID: int +CLAHE = _mod_cv2.CLAHE +CMP_EQ: int +CMP_GE: int +CMP_GT: int +CMP_LE: int +CMP_LT: int +CMP_NE: int +COLORMAP_AUTUMN: int +COLORMAP_BONE: int +COLORMAP_CIVIDIS: int +COLORMAP_COOL: int +COLORMAP_DEEPGREEN: int +COLORMAP_HOT: int +COLORMAP_HSV: int +COLORMAP_INFERNO: int +COLORMAP_JET: int +COLORMAP_MAGMA: int +COLORMAP_OCEAN: int +COLORMAP_PARULA: int +COLORMAP_PINK: int +COLORMAP_PLASMA: int +COLORMAP_RAINBOW: int +COLORMAP_SPRING: int +COLORMAP_SUMMER: int +COLORMAP_TURBO: int +COLORMAP_TWILIGHT: int +COLORMAP_TWILIGHT_SHIFTED: int +COLORMAP_VIRIDIS: int +COLORMAP_WINTER: int +COLOR_BAYER_BG2BGR: int +COLOR_BAYER_BG2BGRA: int +COLOR_BAYER_BG2BGR_EA: int +COLOR_BAYER_BG2BGR_VNG: int +COLOR_BAYER_BG2GRAY: int +COLOR_BAYER_BG2RGB: int +COLOR_BAYER_BG2RGBA: int +COLOR_BAYER_BG2RGB_EA: int +COLOR_BAYER_BG2RGB_VNG: int +COLOR_BAYER_GB2BGR: int +COLOR_BAYER_GB2BGRA: int +COLOR_BAYER_GB2BGR_EA: int +COLOR_BAYER_GB2BGR_VNG: int +COLOR_BAYER_GB2GRAY: int +COLOR_BAYER_GB2RGB: int +COLOR_BAYER_GB2RGBA: int +COLOR_BAYER_GB2RGB_EA: int +COLOR_BAYER_GB2RGB_VNG: int +COLOR_BAYER_GR2BGR: int +COLOR_BAYER_GR2BGRA: int +COLOR_BAYER_GR2BGR_EA: int +COLOR_BAYER_GR2BGR_VNG: int +COLOR_BAYER_GR2GRAY: int +COLOR_BAYER_GR2RGB: int +COLOR_BAYER_GR2RGBA: int +COLOR_BAYER_GR2RGB_EA: int +COLOR_BAYER_GR2RGB_VNG: int +COLOR_BAYER_RG2BGR: int +COLOR_BAYER_RG2BGRA: int +COLOR_BAYER_RG2BGR_EA: int +COLOR_BAYER_RG2BGR_VNG: int +COLOR_BAYER_RG2GRAY: int +COLOR_BAYER_RG2RGB: int +COLOR_BAYER_RG2RGBA: int +COLOR_BAYER_RG2RGB_EA: int +COLOR_BAYER_RG2RGB_VNG: int +COLOR_BGR2BGR555: int +COLOR_BGR2BGR565: int +COLOR_BGR2BGRA: int +COLOR_BGR2GRAY: int +COLOR_BGR2HLS: int +COLOR_BGR2HLS_FULL: int +COLOR_BGR2HSV: int +COLOR_BGR2HSV_FULL: int +COLOR_BGR2LAB: int +COLOR_BGR2LUV: int +COLOR_BGR2Lab: int +COLOR_BGR2Luv: int +COLOR_BGR2RGB: int +COLOR_BGR2RGBA: int +COLOR_BGR2XYZ: int +COLOR_BGR2YCR_CB: int +COLOR_BGR2YCrCb: int +COLOR_BGR2YUV: int +COLOR_BGR2YUV_I420: int +COLOR_BGR2YUV_IYUV: int +COLOR_BGR2YUV_YV12: int +COLOR_BGR5552BGR: int +COLOR_BGR5552BGRA: int +COLOR_BGR5552GRAY: int +COLOR_BGR5552RGB: int +COLOR_BGR5552RGBA: int +COLOR_BGR5652BGR: int +COLOR_BGR5652BGRA: int +COLOR_BGR5652GRAY: int +COLOR_BGR5652RGB: int +COLOR_BGR5652RGBA: int +COLOR_BGRA2BGR: int +COLOR_BGRA2BGR555: int +COLOR_BGRA2BGR565: int +COLOR_BGRA2GRAY: int +COLOR_BGRA2RGB: int +COLOR_BGRA2RGBA: int +COLOR_BGRA2YUV_I420: int +COLOR_BGRA2YUV_IYUV: int +COLOR_BGRA2YUV_YV12: int +COLOR_BayerBG2BGR: int +COLOR_BayerBG2BGRA: int +COLOR_BayerBG2BGR_EA: int +COLOR_BayerBG2BGR_VNG: int +COLOR_BayerBG2GRAY: int +COLOR_BayerBG2RGB: int +COLOR_BayerBG2RGBA: int +COLOR_BayerBG2RGB_EA: int +COLOR_BayerBG2RGB_VNG: int +COLOR_BayerGB2BGR: int +COLOR_BayerGB2BGRA: int +COLOR_BayerGB2BGR_EA: int +COLOR_BayerGB2BGR_VNG: int +COLOR_BayerGB2GRAY: int +COLOR_BayerGB2RGB: int +COLOR_BayerGB2RGBA: int +COLOR_BayerGB2RGB_EA: int +COLOR_BayerGB2RGB_VNG: int +COLOR_BayerGR2BGR: int +COLOR_BayerGR2BGRA: int +COLOR_BayerGR2BGR_EA: int +COLOR_BayerGR2BGR_VNG: int +COLOR_BayerGR2GRAY: int +COLOR_BayerGR2RGB: int +COLOR_BayerGR2RGBA: int +COLOR_BayerGR2RGB_EA: int +COLOR_BayerGR2RGB_VNG: int +COLOR_BayerRG2BGR: int +COLOR_BayerRG2BGRA: int +COLOR_BayerRG2BGR_EA: int +COLOR_BayerRG2BGR_VNG: int +COLOR_BayerRG2GRAY: int +COLOR_BayerRG2RGB: int +COLOR_BayerRG2RGBA: int +COLOR_BayerRG2RGB_EA: int +COLOR_BayerRG2RGB_VNG: int +COLOR_COLORCVT_MAX: int +COLOR_GRAY2BGR: int +COLOR_GRAY2BGR555: int +COLOR_GRAY2BGR565: int +COLOR_GRAY2BGRA: int +COLOR_GRAY2RGB: int +COLOR_GRAY2RGBA: int +COLOR_HLS2BGR: int +COLOR_HLS2BGR_FULL: int +COLOR_HLS2RGB: int +COLOR_HLS2RGB_FULL: int +COLOR_HSV2BGR: int +COLOR_HSV2BGR_FULL: int +COLOR_HSV2RGB: int +COLOR_HSV2RGB_FULL: int +COLOR_LAB2BGR: int +COLOR_LAB2LBGR: int +COLOR_LAB2LRGB: int +COLOR_LAB2RGB: int +COLOR_LBGR2LAB: int +COLOR_LBGR2LUV: int +COLOR_LBGR2Lab: int +COLOR_LBGR2Luv: int +COLOR_LRGB2LAB: int +COLOR_LRGB2LUV: int +COLOR_LRGB2Lab: int +COLOR_LRGB2Luv: int +COLOR_LUV2BGR: int +COLOR_LUV2LBGR: int +COLOR_LUV2LRGB: int +COLOR_LUV2RGB: int +COLOR_Lab2BGR: int +COLOR_Lab2LBGR: int +COLOR_Lab2LRGB: int +COLOR_Lab2RGB: int +COLOR_Luv2BGR: int +COLOR_Luv2LBGR: int +COLOR_Luv2LRGB: int +COLOR_Luv2RGB: int +COLOR_M_RGBA2RGBA: int +COLOR_RGB2BGR: int +COLOR_RGB2BGR555: int +COLOR_RGB2BGR565: int +COLOR_RGB2BGRA: int +COLOR_RGB2GRAY: int +COLOR_RGB2HLS: int +COLOR_RGB2HLS_FULL: int +COLOR_RGB2HSV: int +COLOR_RGB2HSV_FULL: int +COLOR_RGB2LAB: int +COLOR_RGB2LUV: int +COLOR_RGB2Lab: int +COLOR_RGB2Luv: int +COLOR_RGB2RGBA: int +COLOR_RGB2XYZ: int +COLOR_RGB2YCR_CB: int +COLOR_RGB2YCrCb: int +COLOR_RGB2YUV: int +COLOR_RGB2YUV_I420: int +COLOR_RGB2YUV_IYUV: int +COLOR_RGB2YUV_YV12: int +COLOR_RGBA2BGR: int +COLOR_RGBA2BGR555: int +COLOR_RGBA2BGR565: int +COLOR_RGBA2BGRA: int +COLOR_RGBA2GRAY: int +COLOR_RGBA2M_RGBA: int +COLOR_RGBA2RGB: int +COLOR_RGBA2YUV_I420: int +COLOR_RGBA2YUV_IYUV: int +COLOR_RGBA2YUV_YV12: int +COLOR_RGBA2mRGBA: int +COLOR_XYZ2BGR: int +COLOR_XYZ2RGB: int +COLOR_YCR_CB2BGR: int +COLOR_YCR_CB2RGB: int +COLOR_YCrCb2BGR: int +COLOR_YCrCb2RGB: int +COLOR_YUV2BGR: int +COLOR_YUV2BGRA_I420: int +COLOR_YUV2BGRA_IYUV: int +COLOR_YUV2BGRA_NV12: int +COLOR_YUV2BGRA_NV21: int +COLOR_YUV2BGRA_UYNV: int +COLOR_YUV2BGRA_UYVY: int +COLOR_YUV2BGRA_Y422: int +COLOR_YUV2BGRA_YUNV: int +COLOR_YUV2BGRA_YUY2: int +COLOR_YUV2BGRA_YUYV: int +COLOR_YUV2BGRA_YV12: int +COLOR_YUV2BGRA_YVYU: int +COLOR_YUV2BGR_I420: int +COLOR_YUV2BGR_IYUV: int +COLOR_YUV2BGR_NV12: int +COLOR_YUV2BGR_NV21: int +COLOR_YUV2BGR_UYNV: int +COLOR_YUV2BGR_UYVY: int +COLOR_YUV2BGR_Y422: int +COLOR_YUV2BGR_YUNV: int +COLOR_YUV2BGR_YUY2: int +COLOR_YUV2BGR_YUYV: int +COLOR_YUV2BGR_YV12: int +COLOR_YUV2BGR_YVYU: int +COLOR_YUV2GRAY_420: int +COLOR_YUV2GRAY_I420: int +COLOR_YUV2GRAY_IYUV: int +COLOR_YUV2GRAY_NV12: int +COLOR_YUV2GRAY_NV21: int +COLOR_YUV2GRAY_UYNV: int +COLOR_YUV2GRAY_UYVY: int +COLOR_YUV2GRAY_Y422: int +COLOR_YUV2GRAY_YUNV: int +COLOR_YUV2GRAY_YUY2: int +COLOR_YUV2GRAY_YUYV: int +COLOR_YUV2GRAY_YV12: int +COLOR_YUV2GRAY_YVYU: int +COLOR_YUV2RGB: int +COLOR_YUV2RGBA_I420: int +COLOR_YUV2RGBA_IYUV: int +COLOR_YUV2RGBA_NV12: int +COLOR_YUV2RGBA_NV21: int +COLOR_YUV2RGBA_UYNV: int +COLOR_YUV2RGBA_UYVY: int +COLOR_YUV2RGBA_Y422: int +COLOR_YUV2RGBA_YUNV: int +COLOR_YUV2RGBA_YUY2: int +COLOR_YUV2RGBA_YUYV: int +COLOR_YUV2RGBA_YV12: int +COLOR_YUV2RGBA_YVYU: int +COLOR_YUV2RGB_I420: int +COLOR_YUV2RGB_IYUV: int +COLOR_YUV2RGB_NV12: int +COLOR_YUV2RGB_NV21: int +COLOR_YUV2RGB_UYNV: int +COLOR_YUV2RGB_UYVY: int +COLOR_YUV2RGB_Y422: int +COLOR_YUV2RGB_YUNV: int +COLOR_YUV2RGB_YUY2: int +COLOR_YUV2RGB_YUYV: int +COLOR_YUV2RGB_YV12: int +COLOR_YUV2RGB_YVYU: int +COLOR_YUV420P2BGR: int +COLOR_YUV420P2BGRA: int +COLOR_YUV420P2GRAY: int +COLOR_YUV420P2RGB: int +COLOR_YUV420P2RGBA: int +COLOR_YUV420SP2BGR: int +COLOR_YUV420SP2BGRA: int +COLOR_YUV420SP2GRAY: int +COLOR_YUV420SP2RGB: int +COLOR_YUV420SP2RGBA: int +COLOR_YUV420p2BGR: int +COLOR_YUV420p2BGRA: int +COLOR_YUV420p2GRAY: int +COLOR_YUV420p2RGB: int +COLOR_YUV420p2RGBA: int +COLOR_YUV420sp2BGR: int +COLOR_YUV420sp2BGRA: int +COLOR_YUV420sp2GRAY: int +COLOR_YUV420sp2RGB: int +COLOR_YUV420sp2RGBA: int +COLOR_mRGBA2RGBA: int +CONTOURS_MATCH_I1: int +CONTOURS_MATCH_I2: int +CONTOURS_MATCH_I3: int +COVAR_COLS: int +COVAR_NORMAL: int +COVAR_ROWS: int +COVAR_SCALE: int +COVAR_SCRAMBLED: int +COVAR_USE_AVG: int +CV_16S: int +CV_16SC1: int +CV_16SC2: int +CV_16SC3: int +CV_16SC4: int +CV_16U: int +CV_16UC1: int +CV_16UC2: int +CV_16UC3: int +CV_16UC4: int +CV_32F: int +CV_32FC1: int +CV_32FC2: int +CV_32FC3: int +CV_32FC4: int +CV_32S: int +CV_32SC1: int +CV_32SC2: int +CV_32SC3: int +CV_32SC4: int +CV_64F: int +CV_64FC1: int +CV_64FC2: int +CV_64FC3: int +CV_64FC4: int +CV_8S: int +CV_8SC1: int +CV_8SC2: int +CV_8SC3: int +CV_8SC4: int +CV_8U: int +CV_8UC1: int +CV_8UC2: int +CV_8UC3: int +CV_8UC4: int +CalibrateCRF = _mod_cv2.CalibrateCRF +CalibrateDebevec = _mod_cv2.CalibrateDebevec +CalibrateRobertson = _mod_cv2.CalibrateRobertson + + +def CamShift(probImage, window, criteria) -> typing.Any: + 'CamShift(probImage, window, criteria) -> retval, window\n. @brief Finds an object center, size, and orientation.\n. \n. @param probImage Back projection of the object histogram. See calcBackProject.\n. @param window Initial search window.\n. @param criteria Stop criteria for the underlying meanShift.\n. returns\n. (in old interfaces) Number of iterations CAMSHIFT took to converge\n. The function implements the CAMSHIFT object tracking algorithm @cite Bradski98 . First, it finds an\n. object center using meanShift and then adjusts the window size and finds the optimal rotation. The\n. function returns the rotated rectangle structure that includes the object position, size, and\n. orientation. The next position of the search window can be obtained with RotatedRect::boundingRect()\n. \n. See the OpenCV sample camshiftdemo.c that tracks colored objects.\n. \n. @note\n. - (Python) A sample explaining the camshift tracking algorithm can be found at\n. opencv_source_code/samples/python/camshift.py' + ... + + +def Canny(image: ndarray, threshold1, threshold2, edges=..., apertureSize=..., L2gradient=...) -> typing.Any: + 'Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]]) -> edges\n. @brief Finds edges in an image using the Canny algorithm @cite Canny86 .\n. \n. The function finds edges in the input image and marks them in the output map edges using the\n. Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The\n. largest value is used to find initial segments of strong edges. See\n. \n. \n. @param image 8-bit input image.\n. @param edges output edge map; single channels 8-bit image, which has the same size as image .\n. @param threshold1 first threshold for the hysteresis procedure.\n. @param threshold2 second threshold for the hysteresis procedure.\n. @param apertureSize aperture size for the Sobel operator.\n. @param L2gradient a flag, indicating whether a more accurate \\f$L_2\\f$ norm\n. \\f$=\\sqrt{(dI/dx)^2 + (dI/dy)^2}\\f$ should be used to calculate the image gradient magnitude (\n. L2gradient=true ), or whether the default \\f$L_1\\f$ norm \\f$=|dI/dx|+|dI/dy|\\f$ is enough (\n. L2gradient=false ).\n\n\n\nCanny(dx, dy, threshold1, threshold2[, edges[, L2gradient]]) -> edges\n. \\overload\n. \n. Finds edges in an image using the Canny algorithm with custom image gradient.\n. \n. @param dx 16-bit x derivative of input image (CV_16SC1 or CV_16SC3).\n. @param dy 16-bit y derivative of input image (same type as dx).\n. @param edges output edge map; single channels 8-bit image, which has the same size as image .\n. @param threshold1 first threshold for the hysteresis procedure.\n. @param threshold2 second threshold for the hysteresis procedure.\n. @param L2gradient a flag, indicating whether a more accurate \\f$L_2\\f$ norm\n. \\f$=\\sqrt{(dI/dx)^2 + (dI/dy)^2}\\f$ should be used to calculate the image gradient magnitude (\n. L2gradient=true ), or whether the default \\f$L_1\\f$ norm \\f$=|dI/dx|+|dI/dy|\\f$ is enough (\n. L2gradient=false ).' + ... + + +CascadeClassifier = _mod_cv2.CascadeClassifier + + +def CascadeClassifier_convert(oldcascade, newcascade) -> typing.Any: + 'CascadeClassifier_convert(oldcascade, newcascade) -> retval\n.' + ... + + +CirclesGridFinderParameters = _mod_cv2.CirclesGridFinderParameters +CirclesGridFinderParameters_ASYMMETRIC_GRID: int +CirclesGridFinderParameters_SYMMETRIC_GRID: int +DCT_INVERSE: int +DCT_ROWS: int +DECOMP_CHOLESKY: int +DECOMP_EIG: int +DECOMP_LU: int +DECOMP_NORMAL: int +DECOMP_QR: int +DECOMP_SVD: int +DESCRIPTOR_MATCHER_BRUTEFORCE: int +DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMING: int +DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMINGLUT: int +DESCRIPTOR_MATCHER_BRUTEFORCE_L1: int +DESCRIPTOR_MATCHER_BRUTEFORCE_SL2: int +DESCRIPTOR_MATCHER_FLANNBASED: int +DFT_COMPLEX_INPUT: int +DFT_COMPLEX_OUTPUT: int +DFT_INVERSE: int +DFT_REAL_OUTPUT: int +DFT_ROWS: int +DFT_SCALE: int +DISOPTICAL_FLOW_PRESET_FAST: int +DISOPTICAL_FLOW_PRESET_MEDIUM: int +DISOPTICAL_FLOW_PRESET_ULTRAFAST: int +DISOpticalFlow = _mod_cv2.DISOpticalFlow +DISOpticalFlow_PRESET_FAST: int +DISOpticalFlow_PRESET_MEDIUM: int +DISOpticalFlow_PRESET_ULTRAFAST: int + + +def DISOpticalFlow_create(preset=...) -> typing.Any: + 'DISOpticalFlow_create([, preset]) -> retval\n. @brief Creates an instance of DISOpticalFlow\n. \n. @param preset one of PRESET_ULTRAFAST, PRESET_FAST and PRESET_MEDIUM' + ... + + +DIST_C: int +DIST_FAIR: int +DIST_HUBER: int +DIST_L1: int +DIST_L12: int +DIST_L2: int +DIST_LABEL_CCOMP: int +DIST_LABEL_PIXEL: int +DIST_MASK_3: int +DIST_MASK_5: int +DIST_MASK_PRECISE: int +DIST_USER: int +DIST_WELSCH: int +DMatch = _mod_cv2.DMatch +DRAW_MATCHES_FLAGS_DEFAULT: int +DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG: int +DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS: int +DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS: int +DenseOpticalFlow = _mod_cv2.DenseOpticalFlow +DescriptorMatcher = _mod_cv2.DescriptorMatcher +DescriptorMatcher_BRUTEFORCE: int +DescriptorMatcher_BRUTEFORCE_HAMMING: int +DescriptorMatcher_BRUTEFORCE_HAMMINGLUT: int +DescriptorMatcher_BRUTEFORCE_L1: int +DescriptorMatcher_BRUTEFORCE_SL2: int +DescriptorMatcher_FLANNBASED: int + + +def DescriptorMatcher_create(descriptorMatcherType) -> typing.Any: + 'DescriptorMatcher_create(descriptorMatcherType) -> retval\n. @brief Creates a descriptor matcher of a given type with the default parameters (using default\n. constructor).\n. \n. @param descriptorMatcherType Descriptor matcher type. Now the following matcher types are\n. supported:\n. - `BruteForce` (it uses L2 )\n. - `BruteForce-L1`\n. - `BruteForce-Hamming`\n. - `BruteForce-Hamming(2)`\n. - `FlannBased`\n\n\n\nDescriptorMatcher_create(matcherType) -> retval\n.' + ... + + +DrawMatchesFlags_DEFAULT: int +DrawMatchesFlags_DRAW_OVER_OUTIMG: int +DrawMatchesFlags_DRAW_RICH_KEYPOINTS: int +DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS: int + + +def EMD(signature1, signature2, distType, cost=..., lowerBound=..., flow=...) -> typing.Any: + 'EMD(signature1, signature2, distType[, cost[, lowerBound[, flow]]]) -> retval, lowerBound, flow\n. @brief Computes the "minimal work" distance between two weighted point configurations.\n. \n. The function computes the earth mover distance and/or a lower boundary of the distance between the\n. two weighted point configurations. One of the applications described in @cite RubnerSept98,\n. @cite Rubner2000 is multi-dimensional histogram comparison for image retrieval. EMD is a transportation\n. problem that is solved using some modification of a simplex algorithm, thus the complexity is\n. exponential in the worst case, though, on average it is much faster. In the case of a real metric\n. the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used\n. to determine roughly whether the two signatures are far enough so that they cannot relate to the\n. same object.\n. \n. @param signature1 First signature, a \\f$\\texttt{size1}\\times \\texttt{dims}+1\\f$ floating-point matrix.\n. Each row stores the point weight followed by the point coordinates. The matrix is allowed to have\n. a single column (weights only) if the user-defined cost matrix is used. The weights must be\n. non-negative and have at least one non-zero value.\n. @param signature2 Second signature of the same format as signature1 , though the number of rows\n. may be different. The total weights may be different. In this case an extra "dummy" point is added\n. to either signature1 or signature2. The weights must be non-negative and have at least one non-zero\n. value.\n. @param distType Used metric. See #DistanceTypes.\n. @param cost User-defined \\f$\\texttt{size1}\\times \\texttt{size2}\\f$ cost matrix. Also, if a cost matrix\n. is used, lower boundary lowerBound cannot be calculated because it needs a metric function.\n. @param lowerBound Optional input/output parameter: lower boundary of a distance between the two\n. signatures that is a distance between mass centers. The lower boundary may not be calculated if\n. the user-defined cost matrix is used, the total weights of point configurations are not equal, or\n. if the signatures consist of weights only (the signature matrices have a single column). You\n. **must** initialize \\*lowerBound . If the calculated distance between mass centers is greater or\n. equal to \\*lowerBound (it means that the signatures are far enough), the function does not\n. calculate EMD. In any case \\*lowerBound is set to the calculated distance between mass centers on\n. return. Thus, if you want to calculate both distance between mass centers and EMD, \\*lowerBound\n. should be set to 0.\n. @param flow Resultant \\f$\\texttt{size1} \\times \\texttt{size2}\\f$ flow matrix: \\f$\\texttt{flow}_{i,j}\\f$ is\n. a flow from \\f$i\\f$ -th point of signature1 to \\f$j\\f$ -th point of signature2 .' + ... + + +EVENT_FLAG_ALTKEY: int +EVENT_FLAG_CTRLKEY: int +EVENT_FLAG_LBUTTON: int +EVENT_FLAG_MBUTTON: int +EVENT_FLAG_RBUTTON: int +EVENT_FLAG_SHIFTKEY: int +EVENT_LBUTTONDBLCLK: int +EVENT_LBUTTONDOWN: int +EVENT_LBUTTONUP: int +EVENT_MBUTTONDBLCLK: int +EVENT_MBUTTONDOWN: int +EVENT_MBUTTONUP: int +EVENT_MOUSEHWHEEL: int +EVENT_MOUSEMOVE: int +EVENT_MOUSEWHEEL: int +EVENT_RBUTTONDBLCLK: int +EVENT_RBUTTONDOWN: int +EVENT_RBUTTONUP: int +FAST_FEATURE_DETECTOR_FAST_N: int +FAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION: int +FAST_FEATURE_DETECTOR_THRESHOLD: int +FAST_FEATURE_DETECTOR_TYPE_5_8: int +FAST_FEATURE_DETECTOR_TYPE_7_12: int +FAST_FEATURE_DETECTOR_TYPE_9_16: int +FILE_NODE_EMPTY: int +FILE_NODE_FLOAT: int +FILE_NODE_FLOW: int +FILE_NODE_INT: int +FILE_NODE_MAP: int +FILE_NODE_NAMED: int +FILE_NODE_NONE: int +FILE_NODE_REAL: int +FILE_NODE_SEQ: int +FILE_NODE_STR: int +FILE_NODE_STRING: int +FILE_NODE_TYPE_MASK: int +FILE_NODE_UNIFORM: int +FILE_STORAGE_APPEND: int +FILE_STORAGE_BASE64: int +FILE_STORAGE_FORMAT_AUTO: int +FILE_STORAGE_FORMAT_JSON: int +FILE_STORAGE_FORMAT_MASK: int +FILE_STORAGE_FORMAT_XML: int +FILE_STORAGE_FORMAT_YAML: int +FILE_STORAGE_INSIDE_MAP: int +FILE_STORAGE_MEMORY: int +FILE_STORAGE_NAME_EXPECTED: int +FILE_STORAGE_READ: int +FILE_STORAGE_UNDEFINED: int +FILE_STORAGE_VALUE_EXPECTED: int +FILE_STORAGE_WRITE: int +FILE_STORAGE_WRITE_BASE64: int +FILLED: int +FILTER_SCHARR: int +FLOODFILL_FIXED_RANGE: int +FLOODFILL_MASK_ONLY: int +FM_7POINT: int +FM_8POINT: int +FM_LMEDS: int +FM_RANSAC: int +FONT_HERSHEY_COMPLEX: int +FONT_HERSHEY_COMPLEX_SMALL: int +FONT_HERSHEY_DUPLEX: int +FONT_HERSHEY_PLAIN: int +FONT_HERSHEY_SCRIPT_COMPLEX: int +FONT_HERSHEY_SCRIPT_SIMPLEX: int +FONT_HERSHEY_SIMPLEX: int +FONT_HERSHEY_TRIPLEX: int +FONT_ITALIC: int +FORMATTER_FMT_C: int +FORMATTER_FMT_CSV: int +FORMATTER_FMT_DEFAULT: int +FORMATTER_FMT_MATLAB: int +FORMATTER_FMT_NUMPY: int +FORMATTER_FMT_PYTHON: int +FarnebackOpticalFlow = _mod_cv2.FarnebackOpticalFlow + + +def FarnebackOpticalFlow_create(numLevels=..., pyrScale=..., fastPyramids=..., winSize=..., numIters=..., polyN=..., polySigma=..., flags: int = ...) -> typing.Any: + 'FarnebackOpticalFlow_create([, numLevels[, pyrScale[, fastPyramids[, winSize[, numIters[, polyN[, polySigma[, flags]]]]]]]]) -> retval\n.' + ... + + +FastFeatureDetector = _mod_cv2.FastFeatureDetector +FastFeatureDetector_FAST_N: int +FastFeatureDetector_NONMAX_SUPPRESSION: int +FastFeatureDetector_THRESHOLD: int +FastFeatureDetector_TYPE_5_8: int +FastFeatureDetector_TYPE_7_12: int +FastFeatureDetector_TYPE_9_16: int + + +def FastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...) -> typing.Any: + 'FastFeatureDetector_create([, threshold[, nonmaxSuppression[, type]]]) -> retval\n.' + ... + + +Feature2D = _mod_cv2.Feature2D +FileNode = _mod_cv2.FileNode +FileNode_EMPTY: int +FileNode_FLOAT: int +FileNode_FLOW: int +FileNode_INT: int +FileNode_MAP: int +FileNode_NAMED: int +FileNode_NONE: int +FileNode_REAL: int +FileNode_SEQ: int +FileNode_STR: int +FileNode_STRING: int +FileNode_TYPE_MASK: int +FileNode_UNIFORM: int +FileStorage = _mod_cv2.FileStorage +FileStorage_APPEND: int +FileStorage_BASE64: int +FileStorage_FORMAT_AUTO: int +FileStorage_FORMAT_JSON: int +FileStorage_FORMAT_MASK: int +FileStorage_FORMAT_XML: int +FileStorage_FORMAT_YAML: int +FileStorage_INSIDE_MAP: int +FileStorage_MEMORY: int +FileStorage_NAME_EXPECTED: int +FileStorage_READ: int +FileStorage_UNDEFINED: int +FileStorage_VALUE_EXPECTED: int +FileStorage_WRITE: int +FileStorage_WRITE_BASE64: int +FlannBasedMatcher = _mod_cv2.FlannBasedMatcher + + +def FlannBasedMatcher_create() -> typing.Any: + 'FlannBasedMatcher_create() -> retval\n.' + ... + + +Formatter_FMT_C: int +Formatter_FMT_CSV: int +Formatter_FMT_DEFAULT: int +Formatter_FMT_MATLAB: int +Formatter_FMT_NUMPY: int +Formatter_FMT_PYTHON: int +GC_BGD: int +GC_EVAL: int +GC_EVAL_FREEZE_MODEL: int +GC_FGD: int +GC_INIT_WITH_MASK: int +GC_INIT_WITH_RECT: int +GC_PR_BGD: int +GC_PR_FGD: int +GEMM_1_T: int +GEMM_2_T: int +GEMM_3_T: int +GFTTDetector = _mod_cv2.GFTTDetector + + +def GFTTDetector_create(maxCorners=..., qualityLevel=..., minDistance=..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: + 'GFTTDetector_create([, maxCorners[, qualityLevel[, minDistance[, blockSize[, useHarrisDetector[, k]]]]]]) -> retval\n. \n\n\n\nGFTTDetector_create(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize[, useHarrisDetector[, k]]) -> retval\n.' + ... + + +def GaussianBlur(src: ndarray, ksize, sigmaX, dts: ndarray = ..., sigmaY=..., borderType=...) -> typing.Any: + "GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]]) -> dst\n. @brief Blurs an image using a Gaussian filter.\n. \n. The function convolves the source image with the specified Gaussian kernel. In-place filtering is\n. supported.\n. \n. @param src input image; the image can have any number of channels, which are processed\n. independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param ksize Gaussian kernel size. ksize.width and ksize.height can differ but they both must be\n. positive and odd. Or, they can be zero's and then they are computed from sigma.\n. @param sigmaX Gaussian kernel standard deviation in X direction.\n. @param sigmaY Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be\n. equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height,\n. respectively (see #getGaussianKernel for details); to fully control the result regardless of\n. possible future modifications of all this semantics, it is recommended to specify all of ksize,\n. sigmaX, and sigmaY.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. \n. @sa sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur" + ... + + +GeneralizedHough = _mod_cv2.GeneralizedHough +GeneralizedHoughBallard = _mod_cv2.GeneralizedHoughBallard +GeneralizedHoughGuil = _mod_cv2.GeneralizedHoughGuil +HISTCMP_BHATTACHARYYA: int +HISTCMP_CHISQR: int +HISTCMP_CHISQR_ALT: int +HISTCMP_CORREL: int +HISTCMP_HELLINGER: int +HISTCMP_INTERSECT: int +HISTCMP_KL_DIV: int +HOGDESCRIPTOR_DEFAULT_NLEVELS: int +HOGDESCRIPTOR_DESCR_FORMAT_COL_BY_COL: int +HOGDESCRIPTOR_DESCR_FORMAT_ROW_BY_ROW: int +HOGDESCRIPTOR_L2HYS: int +HOGDescriptor = _mod_cv2.HOGDescriptor +HOGDescriptor_DEFAULT_NLEVELS: int +HOGDescriptor_DESCR_FORMAT_COL_BY_COL: int +HOGDescriptor_DESCR_FORMAT_ROW_BY_ROW: int +HOGDescriptor_L2Hys: int + + +def HOGDescriptor_getDaimlerPeopleDetector() -> typing.Any: + 'HOGDescriptor_getDaimlerPeopleDetector() -> retval\n. @brief Returns coefficients of the classifier trained for people detection (for 48x96 windows).' + ... + + +def HOGDescriptor_getDefaultPeopleDetector() -> typing.Any: + 'HOGDescriptor_getDefaultPeopleDetector() -> retval\n. @brief Returns coefficients of the classifier trained for people detection (for 64x128 windows).' + ... + + +HOUGH_GRADIENT: int +HOUGH_GRADIENT_ALT: int +HOUGH_MULTI_SCALE: int +HOUGH_PROBABILISTIC: int +HOUGH_STANDARD: int + + +def HoughCircles(image: ndarray, method: int, dp, minDist, circles=..., param1=..., param2=..., minRadius=..., maxRadius=...) -> typing.Any: + 'HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]]) -> circles\n. @brief Finds circles in a grayscale image using the Hough transform.\n. \n. The function finds circles in a grayscale image using a modification of the Hough transform.\n. \n. Example: :\n. @include snippets/imgproc_HoughLinesCircles.cpp\n. \n. @note Usually the function detects the centers of circles well. However, it may fail to find correct\n. radii. You can assist to the function by specifying the radius range ( minRadius and maxRadius ) if\n. you know it. Or, in the case of #HOUGH_GRADIENT method you may set maxRadius to a negative number\n. to return centers only without radius search, and find the correct radius using an additional procedure.\n. \n. It also helps to smooth image a bit unless it\'s already soft. For example,\n. GaussianBlur() with 7x7 kernel and 1.5x1.5 sigma or similar blurring may help.\n. \n. @param image 8-bit, single-channel, grayscale input image.\n. @param circles Output vector of found circles. Each vector is encoded as 3 or 4 element\n. floating-point vector \\f$(x, y, radius)\\f$ or \\f$(x, y, radius, votes)\\f$ .\n. @param method Detection method, see #HoughModes. The available methods are #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT.\n. @param dp Inverse ratio of the accumulator resolution to the image resolution. For example, if\n. dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has\n. half as big width and height. For #HOUGH_GRADIENT_ALT the recommended value is dp=1.5,\n. unless some small very circles need to be detected.\n. @param minDist Minimum distance between the centers of the detected circles. If the parameter is\n. too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is\n. too large, some circles may be missed.\n. @param param1 First method-specific parameter. In case of #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT,\n. it is the higher threshold of the two passed to the Canny edge detector (the lower one is twice smaller).\n. Note that #HOUGH_GRADIENT_ALT uses #Scharr algorithm to compute image derivatives, so the threshold value\n. shough normally be higher, such as 300 or normally exposed and contrasty images.\n. @param param2 Second method-specific parameter. In case of #HOUGH_GRADIENT, it is the\n. accumulator threshold for the circle centers at the detection stage. The smaller it is, the more\n. false circles may be detected. Circles, corresponding to the larger accumulator values, will be\n. returned first. In the case of #HOUGH_GRADIENT_ALT algorithm, this is the circle "perfectness" measure.\n. The closer it to 1, the better shaped circles algorithm selects. In most cases 0.9 should be fine.\n. If you want get better detection of small circles, you may decrease it to 0.85, 0.8 or even less.\n. But then also try to limit the search range [minRadius, maxRadius] to avoid many false circles.\n. @param minRadius Minimum circle radius.\n. @param maxRadius Maximum circle radius. If <= 0, uses the maximum image dimension. If < 0, #HOUGH_GRADIENT returns\n. centers without finding the radius. #HOUGH_GRADIENT_ALT always computes circle radiuses.\n. \n. @sa fitEllipse, minEnclosingCircle' + ... + + +def HoughLines(image: ndarray, rho, theta, threshold, lines=..., srn=..., stn=..., min_theta=..., max_theta=...) -> typing.Any: + 'HoughLines(image, rho, theta, threshold[, lines[, srn[, stn[, min_theta[, max_theta]]]]]) -> lines\n. @brief Finds lines in a binary image using the standard Hough transform.\n. \n. The function implements the standard or standard multi-scale Hough transform algorithm for line\n. detection. See for a good explanation of Hough\n. transform.\n. \n. @param image 8-bit, single-channel binary source image. The image may be modified by the function.\n. @param lines Output vector of lines. Each line is represented by a 2 or 3 element vector\n. \\f$(\\rho, \\theta)\\f$ or \\f$(\\rho, \\theta, \\textrm{votes})\\f$ . \\f$\\rho\\f$ is the distance from the coordinate origin \\f$(0,0)\\f$ (top-left corner of\n. the image). \\f$\\theta\\f$ is the line rotation angle in radians (\n. \\f$0 \\sim \\textrm{vertical line}, \\pi/2 \\sim \\textrm{horizontal line}\\f$ ).\n. \\f$\\textrm{votes}\\f$ is the value of accumulator.\n. @param rho Distance resolution of the accumulator in pixels.\n. @param theta Angle resolution of the accumulator in radians.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ ).\n. @param srn For the multi-scale Hough transform, it is a divisor for the distance resolution rho .\n. The coarse accumulator distance resolution is rho and the accurate accumulator resolution is\n. rho/srn . If both srn=0 and stn=0 , the classical Hough transform is used. Otherwise, both these\n. parameters should be positive.\n. @param stn For the multi-scale Hough transform, it is a divisor for the distance resolution theta.\n. @param min_theta For standard and multi-scale Hough transform, minimum angle to check for lines.\n. Must fall between 0 and max_theta.\n. @param max_theta For standard and multi-scale Hough transform, maximum angle to check for lines.\n. Must fall between min_theta and CV_PI.' + ... + + +def HoughLinesP(image: ndarray, rho, theta, threshold, lines=..., minLineLength=..., maxLineGap=...) -> typing.Any: + 'HoughLinesP(image, rho, theta, threshold[, lines[, minLineLength[, maxLineGap]]]) -> lines\n. @brief Finds line segments in a binary image using the probabilistic Hough transform.\n. \n. The function implements the probabilistic Hough transform algorithm for line detection, described\n. in @cite Matas00\n. \n. See the line detection example below:\n. @include snippets/imgproc_HoughLinesP.cpp\n. This is a sample picture the function parameters have been tuned for:\n. \n. ![image](pics/building.jpg)\n. \n. And this is the output of the above program in case of the probabilistic Hough transform:\n. \n. ![image](pics/houghp.png)\n. \n. @param image 8-bit, single-channel binary source image. The image may be modified by the function.\n. @param lines Output vector of lines. Each line is represented by a 4-element vector\n. \\f$(x_1, y_1, x_2, y_2)\\f$ , where \\f$(x_1,y_1)\\f$ and \\f$(x_2, y_2)\\f$ are the ending points of each detected\n. line segment.\n. @param rho Distance resolution of the accumulator in pixels.\n. @param theta Angle resolution of the accumulator in radians.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ ).\n. @param minLineLength Minimum line length. Line segments shorter than that are rejected.\n. @param maxLineGap Maximum allowed gap between points on the same line to link them.\n. \n. @sa LineSegmentDetector' + ... + + +def HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step, _lines=...) -> typing.Any: + "HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step[, _lines]) -> _lines\n. @brief Finds lines in a set of points using the standard Hough transform.\n. \n. The function finds lines in a set of points using a modification of the Hough transform.\n. @include snippets/imgproc_HoughLinesPointSet.cpp\n. @param _point Input vector of points. Each vector must be encoded as a Point vector \\f$(x,y)\\f$. Type must be CV_32FC2 or CV_32SC2.\n. @param _lines Output vector of found lines. Each vector is encoded as a vector \\f$(votes, rho, theta)\\f$.\n. The larger the value of 'votes', the higher the reliability of the Hough line.\n. @param lines_max Max count of hough lines.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ )\n. @param min_rho Minimum Distance value of the accumulator in pixels.\n. @param max_rho Maximum Distance value of the accumulator in pixels.\n. @param rho_step Distance resolution of the accumulator in pixels.\n. @param min_theta Minimum angle value of the accumulator in radians.\n. @param max_theta Maximum angle value of the accumulator in radians.\n. @param theta_step Angle resolution of the accumulator in radians." + ... + + +def HuMoments(m, hu=...) -> typing.Any: + 'HuMoments(m[, hu]) -> hu\n. @overload' + ... + + +IMREAD_ANYCOLOR: int +IMREAD_ANYDEPTH: int +IMREAD_COLOR: int +IMREAD_GRAYSCALE: int +IMREAD_IGNORE_ORIENTATION: int +IMREAD_LOAD_GDAL: int +IMREAD_REDUCED_COLOR_2: int +IMREAD_REDUCED_COLOR_4: int +IMREAD_REDUCED_COLOR_8: int +IMREAD_REDUCED_GRAYSCALE_2: int +IMREAD_REDUCED_GRAYSCALE_4: int +IMREAD_REDUCED_GRAYSCALE_8: int +IMREAD_UNCHANGED: int +IMWRITE_EXR_TYPE: int +IMWRITE_EXR_TYPE_FLOAT: int +IMWRITE_EXR_TYPE_HALF: int +IMWRITE_JPEG2000_COMPRESSION_X1000: int +IMWRITE_JPEG_CHROMA_QUALITY: int +IMWRITE_JPEG_LUMA_QUALITY: int +IMWRITE_JPEG_OPTIMIZE: int +IMWRITE_JPEG_PROGRESSIVE: int +IMWRITE_JPEG_QUALITY: int +IMWRITE_JPEG_RST_INTERVAL: int +IMWRITE_PAM_FORMAT_BLACKANDWHITE: int +IMWRITE_PAM_FORMAT_GRAYSCALE: int +IMWRITE_PAM_FORMAT_GRAYSCALE_ALPHA: int +IMWRITE_PAM_FORMAT_NULL: int +IMWRITE_PAM_FORMAT_RGB: int +IMWRITE_PAM_FORMAT_RGB_ALPHA: int +IMWRITE_PAM_TUPLETYPE: int +IMWRITE_PNG_BILEVEL: int +IMWRITE_PNG_COMPRESSION: int +IMWRITE_PNG_STRATEGY: int +IMWRITE_PNG_STRATEGY_DEFAULT: int +IMWRITE_PNG_STRATEGY_FILTERED: int +IMWRITE_PNG_STRATEGY_FIXED: int +IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY: int +IMWRITE_PNG_STRATEGY_RLE: int +IMWRITE_PXM_BINARY: int +IMWRITE_TIFF_COMPRESSION: int +IMWRITE_TIFF_RESUNIT: int +IMWRITE_TIFF_XDPI: int +IMWRITE_TIFF_YDPI: int +IMWRITE_WEBP_QUALITY: int +INPAINT_NS: int +INPAINT_TELEA: int +INTERSECT_FULL: int +INTERSECT_NONE: int +INTERSECT_PARTIAL: int +INTER_AREA: int +INTER_BITS: int +INTER_BITS2: int +INTER_CUBIC: int +INTER_LANCZOS4: int +INTER_LINEAR: int +INTER_LINEAR_EXACT: int +INTER_MAX: int +INTER_NEAREST: int +INTER_TAB_SIZE: int +INTER_TAB_SIZE2: int +KAZE = _mod_cv2.KAZE +KAZE_DIFF_CHARBONNIER: int +KAZE_DIFF_PM_G1: int +KAZE_DIFF_PM_G2: int +KAZE_DIFF_WEICKERT: int + + +def KAZE_create(extended=..., upright=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: + 'KAZE_create([, extended[, upright[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]) -> retval\n. @brief The KAZE constructor\n. \n. @param extended Set to enable extraction of extended (128-byte) descriptor.\n. @param upright Set to enable use of upright descriptors (non rotation-invariant).\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' + ... + + +KMEANS_PP_CENTERS: int +KMEANS_RANDOM_CENTERS: int +KMEANS_USE_INITIAL_LABELS: int +KalmanFilter = _mod_cv2.KalmanFilter +KeyPoint = _mod_cv2.KeyPoint + + +def KeyPoint_convert(keypoints, keypointIndexes=...) -> typing.Any: + 'KeyPoint_convert(keypoints[, keypointIndexes]) -> points2f\n. This method converts vector of keypoints to vector of points or the reverse, where each keypoint is\n. assigned the same size and the same orientation.\n. \n. @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB\n. @param points2f Array of (x,y) coordinates of each keypoint\n. @param keypointIndexes Array of indexes of keypoints to be converted to points. (Acts like a mask to\n. convert only specified keypoints)\n\n\n\nKeyPoint_convert(points2f[, size[, response[, octave[, class_id]]]]) -> keypoints\n. @overload\n. @param points2f Array of (x,y) coordinates of each keypoint\n. @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB\n. @param size keypoint diameter\n. @param response keypoint detector response on the keypoint (that is, strength of the keypoint)\n. @param octave pyramid octave in which the keypoint has been detected\n. @param class_id object id' + ... + + +def KeyPoint_overlap(kp1, kp2) -> typing.Any: + "KeyPoint_overlap(kp1, kp2) -> retval\n. This method computes overlap for pair of keypoints. Overlap is the ratio between area of keypoint\n. regions' intersection and area of keypoint regions' union (considering keypoint region as circle).\n. If they don't overlap, we get zero. If they coincide at same location with same size, we get 1.\n. @param kp1 First keypoint\n. @param kp2 Second keypoint" + ... + + +LDR_SIZE: int +LINE_4: int +LINE_8: int +LINE_AA: int +LMEDS: int +LSD_REFINE_ADV: int +LSD_REFINE_NONE: int +LSD_REFINE_STD: int + + +def LUT(src: ndarray, lut, dts: ndarray = ...) -> typing.Any: + 'LUT(src, lut[, dst]) -> dst\n. @brief Performs a look-up table transform of an array.\n. \n. The function LUT fills the output array with values from the look-up table. Indices of the entries\n. are taken from the input array. That is, the function processes each element of src as follows:\n. \\f[\\texttt{dst} (I) \\leftarrow \\texttt{lut(src(I) + d)}\\f]\n. where\n. \\f[d = \\fork{0}{if \\(\\texttt{src}\\) has depth \\(\\texttt{CV_8U}\\)}{128}{if \\(\\texttt{src}\\) has depth \\(\\texttt{CV_8S}\\)}\\f]\n. @param src input array of 8-bit elements.\n. @param lut look-up table of 256 elements; in case of multi-channel input array, the table should\n. either have a single channel (in this case the same table is used for all channels) or the same\n. number of channels as in the input array.\n. @param dst output array of the same size and number of channels as src, and the same depth as lut.\n. @sa convertScaleAbs, Mat::convertTo' + ... + + +def Laplacian(src: ndarray, ddepth, dts: ndarray = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: + 'Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst\n. @brief Calculates the Laplacian of an image.\n. \n. The function calculates the Laplacian of the source image by adding up the second x and y\n. derivatives calculated using the Sobel operator:\n. \n. \\f[\\texttt{dst} = \\Delta \\texttt{src} = \\frac{\\partial^2 \\texttt{src}}{\\partial x^2} + \\frac{\\partial^2 \\texttt{src}}{\\partial y^2}\\f]\n. \n. This is done when `ksize > 1`. When `ksize == 1`, the Laplacian is computed by filtering the image\n. with the following \\f$3 \\times 3\\f$ aperture:\n. \n. \\f[\\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\\f]\n. \n. @param src Source image.\n. @param dst Destination image of the same size and the same number of channels as src .\n. @param ddepth Desired depth of the destination image.\n. @param ksize Aperture size used to compute the second-derivative filters. See #getDerivKernels for\n. details. The size must be positive and odd.\n. @param scale Optional scale factor for the computed Laplacian values. By default, no scaling is\n. applied. See #getDerivKernels for details.\n. @param delta Optional delta value that is added to the results prior to storing them in dst .\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa Sobel, Scharr' + ... + + +LineSegmentDetector = _mod_cv2.LineSegmentDetector +MARKER_CROSS: int +MARKER_DIAMOND: int +MARKER_SQUARE: int +MARKER_STAR: int +MARKER_TILTED_CROSS: int +MARKER_TRIANGLE_DOWN: int +MARKER_TRIANGLE_UP: int +MAT_AUTO_STEP: int +MAT_CONTINUOUS_FLAG: int +MAT_DEPTH_MASK: int +MAT_MAGIC_MASK: int +MAT_MAGIC_VAL: int +MAT_SUBMATRIX_FLAG: int +MAT_TYPE_MASK: int +MIXED_CLONE: int +MONOCHROME_TRANSFER: int +MORPH_BLACKHAT: int +MORPH_CLOSE: int +MORPH_CROSS: int +MORPH_DILATE: int +MORPH_ELLIPSE: int +MORPH_ERODE: int +MORPH_GRADIENT: int +MORPH_HITMISS: int +MORPH_OPEN: int +MORPH_RECT: int +MORPH_TOPHAT: int +MOTION_AFFINE: int +MOTION_EUCLIDEAN: int +MOTION_HOMOGRAPHY: int +MOTION_TRANSLATION: int +MSER = _mod_cv2.MSER + + +def MSER_create(_delta=..., _min_area=..., _max_area=..., _max_variation=..., _min_diversity=..., _max_evolution=..., _area_threshold=..., _min_margin=..., _edge_blur_size=...) -> typing.Any: + 'MSER_create([, _delta[, _min_area[, _max_area[, _max_variation[, _min_diversity[, _max_evolution[, _area_threshold[, _min_margin[, _edge_blur_size]]]]]]]]]) -> retval\n. @brief Full constructor for %MSER detector\n. \n. @param _delta it compares \\f$(size_{i}-size_{i-delta})/size_{i-delta}\\f$\n. @param _min_area prune the area which smaller than minArea\n. @param _max_area prune the area which bigger than maxArea\n. @param _max_variation prune the area have similar size to its children\n. @param _min_diversity for color image, trace back to cut off mser with diversity less than min_diversity\n. @param _max_evolution for color image, the evolution steps\n. @param _area_threshold for color image, the area threshold to cause re-initialize\n. @param _min_margin for color image, ignore too small margin\n. @param _edge_blur_size for color image, the aperture size for edge blur' + ... + + +def Mahalanobis(v1, v2, icovar) -> typing.Any: + 'Mahalanobis(v1, v2, icovar) -> retval\n. @brief Calculates the Mahalanobis distance between two vectors.\n. \n. The function cv::Mahalanobis calculates and returns the weighted distance between two vectors:\n. \\f[d( \\texttt{vec1} , \\texttt{vec2} )= \\sqrt{\\sum_{i,j}{\\texttt{icovar(i,j)}\\cdot(\\texttt{vec1}(I)-\\texttt{vec2}(I))\\cdot(\\texttt{vec1(j)}-\\texttt{vec2(j)})} }\\f]\n. The covariance matrix may be calculated using the #calcCovarMatrix function and then inverted using\n. the invert function (preferably using the #DECOMP_SVD method, as the most accurate).\n. @param v1 first 1D input vector.\n. @param v2 second 1D input vector.\n. @param icovar inverse covariance matrix.' + ... + + +Mat_AUTO_STEP: int +Mat_CONTINUOUS_FLAG: int +Mat_DEPTH_MASK: int +Mat_MAGIC_MASK: int +Mat_MAGIC_VAL: int +Mat_SUBMATRIX_FLAG: int +Mat_TYPE_MASK: int +MergeDebevec = _mod_cv2.MergeDebevec +MergeExposures = _mod_cv2.MergeExposures +MergeMertens = _mod_cv2.MergeMertens +MergeRobertson = _mod_cv2.MergeRobertson +NORMAL_CLONE: int +NORMCONV_FILTER: int +NORM_HAMMING: int +NORM_HAMMING2: int +NORM_INF: int +NORM_L1: int +NORM_L2: int +NORM_L2SQR: int +NORM_MINMAX: int +NORM_RELATIVE: int +NORM_TYPE_MASK: int +OPTFLOW_FARNEBACK_GAUSSIAN: int +OPTFLOW_LK_GET_MIN_EIGENVALS: int +OPTFLOW_USE_INITIAL_FLOW: int +ORB = _mod_cv2.ORB +ORB_FAST_SCORE: int +ORB_HARRIS_SCORE: int + + +def ORB_create(nfeatures=..., scaleFactor=..., nlevels=..., edgeThreshold=..., firstLevel=..., WTA_K=..., scoreType=..., patchSize=..., fastThreshold=...) -> typing.Any: + 'ORB_create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval\n. @brief The ORB constructor\n. \n. @param nfeatures The maximum number of features to retain.\n. @param scaleFactor Pyramid decimation ratio, greater than 1. scaleFactor==2 means the classical\n. pyramid, where each next level has 4x less pixels than the previous, but such a big scale factor\n. will degrade feature matching scores dramatically. On the other hand, too close to 1 scale factor\n. will mean that to cover certain scale range you will need more pyramid levels and so the speed\n. will suffer.\n. @param nlevels The number of pyramid levels. The smallest level will have linear size equal to\n. input_image_linear_size/pow(scaleFactor, nlevels - firstLevel).\n. @param edgeThreshold This is size of the border where the features are not detected. It should\n. roughly match the patchSize parameter.\n. @param firstLevel The level of pyramid to put source image to. Previous layers are filled\n. with upscaled source image.\n. @param WTA_K The number of points that produce each element of the oriented BRIEF descriptor. The\n. default value 2 means the BRIEF where we take a random point pair and compare their brightnesses,\n. so we get 0/1 response. Other possible values are 3 and 4. For example, 3 means that we take 3\n. random points (of course, those point coordinates are random, but they are generated from the\n. pre-defined seed, so each element of BRIEF descriptor is computed deterministically from the pixel\n. rectangle), find point of maximum brightness and output index of the winner (0, 1 or 2). Such\n. output will occupy 2 bits, and therefore it will need a special variant of Hamming distance,\n. denoted as NORM_HAMMING2 (2 bits per bin). When WTA_K=4, we take 4 random points to compute each\n. bin (that will also occupy 2 bits with possible values 0, 1, 2 or 3).\n. @param scoreType The default HARRIS_SCORE means that Harris algorithm is used to rank features\n. (the score is written to KeyPoint::score and is used to retain best nfeatures features);\n. FAST_SCORE is alternative value of the parameter that produces slightly less stable keypoints,\n. but it is a little faster to compute.\n. @param patchSize size of the patch used by the oriented BRIEF descriptor. Of course, on smaller\n. pyramid layers the perceived image area covered by a feature will be larger.\n. @param fastThreshold the fast threshold' + ... + + +PARAM_ALGORITHM: int +PARAM_BOOLEAN: int +PARAM_FLOAT: int +PARAM_INT: int +PARAM_MAT: int +PARAM_MAT_VECTOR: int +PARAM_REAL: int +PARAM_SCALAR: int +PARAM_STRING: int +PARAM_UCHAR: int +PARAM_UINT64: int +PARAM_UNSIGNED_INT: int + + +def PCABackProject(data, mean, eigenvectors, result=...) -> typing.Any: + 'PCABackProject(data, mean, eigenvectors[, result]) -> result\n. wrap PCA::backProject' + ... + + +def PCACompute(data, mean, eigenvectors=..., maxComponents=...) -> typing.Any: + 'PCACompute(data, mean[, eigenvectors[, maxComponents]]) -> mean, eigenvectors\n. wrap PCA::operator()\n\n\n\nPCACompute(data, mean, retainedVariance[, eigenvectors]) -> mean, eigenvectors\n. wrap PCA::operator()' + ... + + +def PCACompute2(data, mean, eigenvectors=..., eigenvalues=..., maxComponents=...) -> typing.Any: + 'PCACompute2(data, mean[, eigenvectors[, eigenvalues[, maxComponents]]]) -> mean, eigenvectors, eigenvalues\n. wrap PCA::operator() and add eigenvalues output parameter\n\n\n\nPCACompute2(data, mean, retainedVariance[, eigenvectors[, eigenvalues]]) -> mean, eigenvectors, eigenvalues\n. wrap PCA::operator() and add eigenvalues output parameter' + ... + + +def PCAProject(data, mean, eigenvectors, result=...) -> typing.Any: + 'PCAProject(data, mean, eigenvectors[, result]) -> result\n. wrap PCA::project' + ... + + +PCA_DATA_AS_COL: int +PCA_DATA_AS_ROW: int +PCA_USE_AVG: int +PROJ_SPHERICAL_EQRECT: int +PROJ_SPHERICAL_ORTHO: int + + +def PSNR(src1: ndarray, src2: ndarray, R=...) -> typing.Any: + 'PSNR(src1, src2[, R]) -> retval\n. @brief Computes the Peak Signal-to-Noise Ratio (PSNR) image quality metric.\n. \n. This function calculates the Peak Signal-to-Noise Ratio (PSNR) image quality metric in decibels (dB),\n. between two input arrays src1 and src2. The arrays must have the same type.\n. \n. The PSNR is calculated as follows:\n. \n. \\f[\n. \\texttt{PSNR} = 10 \\cdot \\log_{10}{\\left( \\frac{R^2}{MSE} \\right) }\n. \\f]\n. \n. where R is the maximum integer value of depth (e.g. 255 in the case of CV_8U data)\n. and MSE is the mean squared error between the two arrays.\n. \n. @param src1 first input array.\n. @param src2 second input array of the same size as src1.\n. @param R the maximum pixel value (255 by default)' + ... + + +Param_ALGORITHM: int +Param_BOOLEAN: int +Param_FLOAT: int +Param_INT: int +Param_MAT: int +Param_MAT_VECTOR: int +Param_REAL: int +Param_SCALAR: int +Param_STRING: int +Param_UCHAR: int +Param_UINT64: int +Param_UNSIGNED_INT: int +PyRotationWarper = _mod_cv2.PyRotationWarper +QRCodeDetector = _mod_cv2.QRCodeDetector +QT_CHECKBOX: int +QT_FONT_BLACK: int +QT_FONT_BOLD: int +QT_FONT_DEMIBOLD: int +QT_FONT_LIGHT: int +QT_FONT_NORMAL: int +QT_NEW_BUTTONBAR: int +QT_PUSH_BUTTON: int +QT_RADIOBOX: int +QT_STYLE_ITALIC: int +QT_STYLE_NORMAL: int +QT_STYLE_OBLIQUE: int +RANSAC: int +RECURS_FILTER: int +REDUCE_AVG: int +REDUCE_MAX: int +REDUCE_MIN: int +REDUCE_SUM: int +RETR_CCOMP: int +RETR_EXTERNAL: int +RETR_FLOODFILL: int +RETR_LIST: int +RETR_TREE: int +RHO: int +RNG_NORMAL: int +RNG_UNIFORM: int +ROTATE_180: int +ROTATE_90_CLOCKWISE: int +ROTATE_90_COUNTERCLOCKWISE: int + + +def RQDecomp3x3(src: ndarray, mtxR=..., mtxQ=..., Qx=..., Qy=..., Qz=...) -> typing.Any: + 'RQDecomp3x3(src[, mtxR[, mtxQ[, Qx[, Qy[, Qz]]]]]) -> retval, mtxR, mtxQ, Qx, Qy, Qz\n. @brief Computes an RQ decomposition of 3x3 matrices.\n. \n. @param src 3x3 input matrix.\n. @param mtxR Output 3x3 upper-triangular matrix.\n. @param mtxQ Output 3x3 orthogonal matrix.\n. @param Qx Optional output 3x3 rotation matrix around x-axis.\n. @param Qy Optional output 3x3 rotation matrix around y-axis.\n. @param Qz Optional output 3x3 rotation matrix around z-axis.\n. \n. The function computes a RQ decomposition using the given rotations. This function is used in\n. decomposeProjectionMatrix to decompose the left 3x3 submatrix of a projection matrix into a camera\n. and a rotation matrix.\n. \n. It optionally returns three rotation matrices, one for each axis, and the three Euler angles in\n. degrees (as the return value) that could be used in OpenGL. Note, there is always more than one\n. sequence of rotations about the three principal axes that results in the same orientation of an\n. object, e.g. see @cite Slabaugh . Returned tree rotation matrices and corresponding three Euler angles\n. are only one of the possible solutions.' + ... + + +def Rodrigues(src: ndarray, dts: ndarray = ..., jacobian=...) -> typing.Any: + 'Rodrigues(src[, dst[, jacobian]]) -> dst, jacobian\n. @brief Converts a rotation matrix to a rotation vector or vice versa.\n. \n. @param src Input rotation vector (3x1 or 1x3) or rotation matrix (3x3).\n. @param dst Output rotation matrix (3x3) or rotation vector (3x1 or 1x3), respectively.\n. @param jacobian Optional output Jacobian matrix, 3x9 or 9x3, which is a matrix of partial\n. derivatives of the output array components with respect to the input array components.\n. \n. \\f[\\begin{array}{l} \\theta \\leftarrow norm(r) \\\\ r \\leftarrow r/ \\theta \\\\ R = \\cos(\\theta) I + (1- \\cos{\\theta} ) r r^T + \\sin(\\theta) \\vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} \\end{array}\\f]\n. \n. Inverse transformation can be also done easily, since\n. \n. \\f[\\sin ( \\theta ) \\vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} = \\frac{R - R^T}{2}\\f]\n. \n. A rotation vector is a convenient and most compact representation of a rotation matrix (since any\n. rotation matrix has just 3 degrees of freedom). The representation is used in the global 3D geometry\n. optimization procedures like @ref calibrateCamera, @ref stereoCalibrate, or @ref solvePnP .\n. \n. @note More information about the computation of the derivative of a 3D rotation matrix with respect to its exponential coordinate\n. can be found in:\n. - A Compact Formula for the Derivative of a 3-D Rotation in Exponential Coordinates, Guillermo Gallego, Anthony J. Yezzi @cite Gallego2014ACF\n. \n. @note Useful information on SE(3) and Lie Groups can be found in:\n. - A tutorial on SE(3) transformation parameterizations and on-manifold optimization, Jose-Luis Blanco @cite blanco2010tutorial\n. - Lie Groups for 2D and 3D Transformation, Ethan Eade @cite Eade17\n. - A micro Lie theory for state estimation in robotics, Joan Solà, Jérémie Deray, Dinesh Atchuthan @cite Sol2018AML' + ... + + +SIFT = _mod_cv2.SIFT + + +def SIFT_create(nfeatures=..., nOctaveLayers=..., contrastThreshold=..., edgeThreshold=..., sigma=...) -> typing.Any: + 'SIFT_create([, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma]]]]]) -> retval\n. @param nfeatures The number of best features to retain. The features are ranked by their scores\n. (measured in SIFT algorithm as the local contrast)\n. \n. @param nOctaveLayers The number of layers in each octave. 3 is the value used in D. Lowe paper. The\n. number of octaves is computed automatically from the image resolution.\n. \n. @param contrastThreshold The contrast threshold used to filter out weak features in semi-uniform\n. (low-contrast) regions. The larger the threshold, the less features are produced by the detector.\n. \n. @note The contrast threshold will be divided by nOctaveLayers when the filtering is applied. When\n. nOctaveLayers is set to default and if you want to use the value used in D. Lowe paper, 0.03, set\n. this argument to 0.09.\n. \n. @param edgeThreshold The threshold used to filter out edge-like features. Note that the its meaning\n. is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are\n. filtered out (more features are retained).\n. \n. @param sigma The sigma of the Gaussian applied to the input image at the octave \\#0. If your image\n. is captured with a weak camera with soft lenses, you might want to reduce the number.' + ... + + +SOLVELP_MULTI: int +SOLVELP_SINGLE: int +SOLVELP_UNBOUNDED: int +SOLVELP_UNFEASIBLE: int +SOLVEPNP_AP3P: int +SOLVEPNP_DLS: int +SOLVEPNP_EPNP: int +SOLVEPNP_IPPE: int +SOLVEPNP_IPPE_SQUARE: int +SOLVEPNP_ITERATIVE: int +SOLVEPNP_MAX_COUNT: int +SOLVEPNP_P3P: int +SOLVEPNP_UPNP: int +SORT_ASCENDING: int +SORT_DESCENDING: int +SORT_EVERY_COLUMN: int +SORT_EVERY_ROW: int +SPARSE_MAT_HASH_BIT: int +SPARSE_MAT_HASH_SCALE: int +SPARSE_MAT_MAGIC_VAL: int +SPARSE_MAT_MAX_DIM: int +STEREO_BM_PREFILTER_NORMALIZED_RESPONSE: int +STEREO_BM_PREFILTER_XSOBEL: int +STEREO_MATCHER_DISP_SCALE: int +STEREO_MATCHER_DISP_SHIFT: int +STEREO_SGBM_MODE_HH: int +STEREO_SGBM_MODE_HH4: int +STEREO_SGBM_MODE_SGBM: int +STEREO_SGBM_MODE_SGBM_3WAY: int +STITCHER_ERR_CAMERA_PARAMS_ADJUST_FAIL: int +STITCHER_ERR_HOMOGRAPHY_EST_FAIL: int +STITCHER_ERR_NEED_MORE_IMGS: int +STITCHER_OK: int +STITCHER_PANORAMA: int +STITCHER_SCANS: int +SUBDIV2D_NEXT_AROUND_DST: int +SUBDIV2D_NEXT_AROUND_LEFT: int +SUBDIV2D_NEXT_AROUND_ORG: int +SUBDIV2D_NEXT_AROUND_RIGHT: int +SUBDIV2D_PREV_AROUND_DST: int +SUBDIV2D_PREV_AROUND_LEFT: int +SUBDIV2D_PREV_AROUND_ORG: int +SUBDIV2D_PREV_AROUND_RIGHT: int +SUBDIV2D_PTLOC_ERROR: int +SUBDIV2D_PTLOC_INSIDE: int +SUBDIV2D_PTLOC_ON_EDGE: int +SUBDIV2D_PTLOC_OUTSIDE_RECT: int +SUBDIV2D_PTLOC_VERTEX: int + + +def SVBackSubst(w, u, vt, rhs, dts: ndarray = ...) -> typing.Any: + 'SVBackSubst(w, u, vt, rhs[, dst]) -> dst\n. wrap SVD::backSubst' + ... + + +SVD_FULL_UV: int +SVD_MODIFY_A: int +SVD_NO_UV: int + + +def SVDecomp(src: ndarray, w=..., u=..., vt=..., flags: int = ...) -> typing.Any: + 'SVDecomp(src[, w[, u[, vt[, flags]]]]) -> w, u, vt\n. wrap SVD::compute' + ... + + +def Scharr(src: ndarray, ddepth, dx, dy, dts: ndarray = ..., scale=..., delta=..., borderType=...) -> typing.Any: + 'Scharr(src, ddepth, dx, dy[, dst[, scale[, delta[, borderType]]]]) -> dst\n. @brief Calculates the first x- or y- image derivative using Scharr operator.\n. \n. The function computes the first x- or y- spatial image derivative using the Scharr operator. The\n. call\n. \n. \\f[\\texttt{Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)}\\f]\n. \n. is equivalent to\n. \n. \\f[\\texttt{Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)} .\\f]\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src.\n. @param ddepth output image depth, see @ref filter_depths "combinations"\n. @param dx order of the derivative x.\n. @param dy order of the derivative y.\n. @param scale optional scale factor for the computed derivative values; by default, no scaling is\n. applied (see #getDerivKernels for details).\n. @param delta optional delta value that is added to the results prior to storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa cartToPolar' + ... + + +SimpleBlobDetector = _mod_cv2.SimpleBlobDetector +SimpleBlobDetector_Params = _mod_cv2.SimpleBlobDetector_Params + + +def SimpleBlobDetector_create(parameters=...) -> typing.Any: + 'SimpleBlobDetector_create([, parameters]) -> retval\n.' + ... + + +def Sobel(src: ndarray, ddepth, dx, dy, dts: ndarray = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: + 'Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst\n. @brief Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator.\n. \n. In all cases except one, the \\f$\\texttt{ksize} \\times \\texttt{ksize}\\f$ separable kernel is used to\n. calculate the derivative. When \\f$\\texttt{ksize = 1}\\f$, the \\f$3 \\times 1\\f$ or \\f$1 \\times 3\\f$\n. kernel is used (that is, no Gaussian smoothing is done). `ksize = 1` can only be used for the first\n. or the second x- or y- derivatives.\n. \n. There is also the special value `ksize = #FILTER_SCHARR (-1)` that corresponds to the \\f$3\\times3\\f$ Scharr\n. filter that may give more accurate results than the \\f$3\\times3\\f$ Sobel. The Scharr aperture is\n. \n. \\f[\\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\\f]\n. \n. for the x-derivative, or transposed for the y-derivative.\n. \n. The function calculates an image derivative by convolving the image with the appropriate kernel:\n. \n. \\f[\\texttt{dst} = \\frac{\\partial^{xorder+yorder} \\texttt{src}}{\\partial x^{xorder} \\partial y^{yorder}}\\f]\n. \n. The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less\n. resistant to the noise. Most often, the function is called with ( xorder = 1, yorder = 0, ksize = 3)\n. or ( xorder = 0, yorder = 1, ksize = 3) to calculate the first x- or y- image derivative. The first\n. case corresponds to a kernel of:\n. \n. \\f[\\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\\f]\n. \n. The second case corresponds to a kernel of:\n. \n. \\f[\\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\\f]\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src .\n. @param ddepth output image depth, see @ref filter_depths "combinations"; in the case of\n. 8-bit input images it will result in truncated derivatives.\n. @param dx order of the derivative x.\n. @param dy order of the derivative y.\n. @param ksize size of the extended Sobel kernel; it must be 1, 3, 5, or 7.\n. @param scale optional scale factor for the computed derivative values; by default, no scaling is\n. applied (see #getDerivKernels for details).\n. @param delta optional delta value that is added to the results prior to storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa Scharr, Laplacian, sepFilter2D, filter2D, GaussianBlur, cartToPolar' + ... + + +SparseMat_HASH_BIT: int +SparseMat_HASH_SCALE: int +SparseMat_MAGIC_VAL: int +SparseMat_MAX_DIM: int +SparseOpticalFlow = _mod_cv2.SparseOpticalFlow +SparsePyrLKOpticalFlow = _mod_cv2.SparsePyrLKOpticalFlow + + +def SparsePyrLKOpticalFlow_create(winSize=..., maxLevel=..., crit=..., flags: int = ..., minEigThreshold=...) -> typing.Any: + 'SparsePyrLKOpticalFlow_create([, winSize[, maxLevel[, crit[, flags[, minEigThreshold]]]]]) -> retval\n.' + ... + + +StereoBM = _mod_cv2.StereoBM +StereoBM_PREFILTER_NORMALIZED_RESPONSE: int +StereoBM_PREFILTER_XSOBEL: int + + +def StereoBM_create(numDisparities=..., blockSize=...) -> typing.Any: + 'StereoBM_create([, numDisparities[, blockSize]]) -> retval\n. @brief Creates StereoBM object\n. \n. @param numDisparities the disparity search range. For each pixel algorithm will find the best\n. disparity from 0 (default minimum disparity) to numDisparities. The search range can then be\n. shifted by changing the minimum disparity.\n. @param blockSize the linear size of the blocks compared by the algorithm. The size should be odd\n. (as the block is centered at the current pixel). Larger block size implies smoother, though less\n. accurate disparity map. Smaller block size gives more detailed disparity map, but there is higher\n. chance for algorithm to find a wrong correspondence.\n. \n. The function create StereoBM object. You can then call StereoBM::compute() to compute disparity for\n. a specific stereo pair.' + ... + + +StereoMatcher = _mod_cv2.StereoMatcher +StereoMatcher_DISP_SCALE: int +StereoMatcher_DISP_SHIFT: int +StereoSGBM = _mod_cv2.StereoSGBM +StereoSGBM_MODE_HH: int +StereoSGBM_MODE_HH4: int +StereoSGBM_MODE_SGBM: int +StereoSGBM_MODE_SGBM_3WAY: int + + +def StereoSGBM_create(minDisparity=..., numDisparities=..., blockSize=..., P1=..., P2=..., disp12MaxDiff=..., preFilterCap=..., uniquenessRatio=..., speckleWindowSize=..., speckleRange=..., mode=...) -> typing.Any: + 'StereoSGBM_create([, minDisparity[, numDisparities[, blockSize[, P1[, P2[, disp12MaxDiff[, preFilterCap[, uniquenessRatio[, speckleWindowSize[, speckleRange[, mode]]]]]]]]]]]) -> retval\n. @brief Creates StereoSGBM object\n. \n. @param minDisparity Minimum possible disparity value. Normally, it is zero but sometimes\n. rectification algorithms can shift images, so this parameter needs to be adjusted accordingly.\n. @param numDisparities Maximum disparity minus minimum disparity. The value is always greater than\n. zero. In the current implementation, this parameter must be divisible by 16.\n. @param blockSize Matched block size. It must be an odd number \\>=1 . Normally, it should be\n. somewhere in the 3..11 range.\n. @param P1 The first parameter controlling the disparity smoothness. See below.\n. @param P2 The second parameter controlling the disparity smoothness. The larger the values are,\n. the smoother the disparity is. P1 is the penalty on the disparity change by plus or minus 1\n. between neighbor pixels. P2 is the penalty on the disparity change by more than 1 between neighbor\n. pixels. The algorithm requires P2 \\> P1 . See stereo_match.cpp sample where some reasonably good\n. P1 and P2 values are shown (like 8\\*number_of_image_channels\\*blockSize\\*blockSize and\n. 32\\*number_of_image_channels\\*blockSize\\*blockSize , respectively).\n. @param disp12MaxDiff Maximum allowed difference (in integer pixel units) in the left-right\n. disparity check. Set it to a non-positive value to disable the check.\n. @param preFilterCap Truncation value for the prefiltered image pixels. The algorithm first\n. computes x-derivative at each pixel and clips its value by [-preFilterCap, preFilterCap] interval.\n. The result values are passed to the Birchfield-Tomasi pixel cost function.\n. @param uniquenessRatio Margin in percentage by which the best (minimum) computed cost function\n. value should "win" the second best value to consider the found match correct. Normally, a value\n. within the 5-15 range is good enough.\n. @param speckleWindowSize Maximum size of smooth disparity regions to consider their noise speckles\n. and invalidate. Set it to 0 to disable speckle filtering. Otherwise, set it somewhere in the\n. 50-200 range.\n. @param speckleRange Maximum disparity variation within each connected component. If you do speckle\n. filtering, set the parameter to a positive value, it will be implicitly multiplied by 16.\n. Normally, 1 or 2 is good enough.\n. @param mode Set it to StereoSGBM::MODE_HH to run the full-scale two-pass dynamic programming\n. algorithm. It will consume O(W\\*H\\*numDisparities) bytes, which is large for 640x480 stereo and\n. huge for HD-size pictures. By default, it is set to false .\n. \n. The first constructor initializes StereoSGBM with all the default parameters. So, you only have to\n. set StereoSGBM::numDisparities at minimum. The second constructor enables you to set each parameter\n. to a custom value.' + ... + + +Stitcher = _mod_cv2.Stitcher +Stitcher_ERR_CAMERA_PARAMS_ADJUST_FAIL: int +Stitcher_ERR_HOMOGRAPHY_EST_FAIL: int +Stitcher_ERR_NEED_MORE_IMGS: int +Stitcher_OK: int +Stitcher_PANORAMA: int +Stitcher_SCANS: int + + +def Stitcher_create(mode=...) -> typing.Any: + 'Stitcher_create([, mode]) -> retval\n. @brief Creates a Stitcher configured in one of the stitching modes.\n. \n. @param mode Scenario for stitcher operation. This is usually determined by source of images\n. to stitch and their transformation. Default parameters will be chosen for operation in given\n. scenario.\n. @return Stitcher class instance.' + ... + + +Subdiv2D = _mod_cv2.Subdiv2D +Subdiv2D_NEXT_AROUND_DST: int +Subdiv2D_NEXT_AROUND_LEFT: int +Subdiv2D_NEXT_AROUND_ORG: int +Subdiv2D_NEXT_AROUND_RIGHT: int +Subdiv2D_PREV_AROUND_DST: int +Subdiv2D_PREV_AROUND_LEFT: int +Subdiv2D_PREV_AROUND_ORG: int +Subdiv2D_PREV_AROUND_RIGHT: int +Subdiv2D_PTLOC_ERROR: int +Subdiv2D_PTLOC_INSIDE: int +Subdiv2D_PTLOC_ON_EDGE: int +Subdiv2D_PTLOC_OUTSIDE_RECT: int +Subdiv2D_PTLOC_VERTEX: int +TERM_CRITERIA_COUNT: int +TERM_CRITERIA_EPS: int +TERM_CRITERIA_MAX_ITER: int +THRESH_BINARY: int +THRESH_BINARY_INV: int +THRESH_MASK: int +THRESH_OTSU: int +THRESH_TOZERO: int +THRESH_TOZERO_INV: int +THRESH_TRIANGLE: int +THRESH_TRUNC: int +TM_CCOEFF: int +TM_CCOEFF_NORMED: int +TM_CCORR: int +TM_CCORR_NORMED: int +TM_SQDIFF: int +TM_SQDIFF_NORMED: int +TermCriteria_COUNT: int +TermCriteria_EPS: int +TermCriteria_MAX_ITER: int +TickMeter = _mod_cv2.TickMeter +Tonemap = _mod_cv2.Tonemap +TonemapDrago = _mod_cv2.TonemapDrago +TonemapMantiuk = _mod_cv2.TonemapMantiuk +TonemapReinhard = _mod_cv2.TonemapReinhard +UMAT_AUTO_STEP: int +UMAT_CONTINUOUS_FLAG: int +UMAT_DATA_ASYNC_CLEANUP: int +UMAT_DATA_COPY_ON_MAP: int +UMAT_DATA_DEVICE_COPY_OBSOLETE: int +UMAT_DATA_DEVICE_MEM_MAPPED: int +UMAT_DATA_HOST_COPY_OBSOLETE: int +UMAT_DATA_TEMP_COPIED_UMAT: int +UMAT_DATA_TEMP_UMAT: int +UMAT_DATA_USER_ALLOCATED: int +UMAT_DEPTH_MASK: int +UMAT_MAGIC_MASK: int +UMAT_MAGIC_VAL: int +UMAT_SUBMATRIX_FLAG: int +UMAT_TYPE_MASK: int +UMat = _mod_cv2.UMat +UMatData_ASYNC_CLEANUP: int +UMatData_COPY_ON_MAP: int +UMatData_DEVICE_COPY_OBSOLETE: int +UMatData_DEVICE_MEM_MAPPED: int +UMatData_HOST_COPY_OBSOLETE: int +UMatData_TEMP_COPIED_UMAT: int +UMatData_TEMP_UMAT: int +UMatData_USER_ALLOCATED: int +UMat_AUTO_STEP: int +UMat_CONTINUOUS_FLAG: int +UMat_DEPTH_MASK: int +UMat_MAGIC_MASK: int +UMat_MAGIC_VAL: int +UMat_SUBMATRIX_FLAG: int +UMat_TYPE_MASK: int + + +def UMat_context() -> typing.Any: + 'UMat_context() -> retval\n.' + ... + + +def UMat_queue() -> typing.Any: + 'UMat_queue() -> retval\n.' + ... + + +USAGE_ALLOCATE_DEVICE_MEMORY: int +USAGE_ALLOCATE_HOST_MEMORY: int +USAGE_ALLOCATE_SHARED_MEMORY: int +USAGE_DEFAULT: int +VIDEOWRITER_PROP_FRAMEBYTES: int +VIDEOWRITER_PROP_IS_COLOR: int +VIDEOWRITER_PROP_NSTRIPES: int +VIDEOWRITER_PROP_QUALITY: int +VariationalRefinement = _mod_cv2.VariationalRefinement + + +def VariationalRefinement_create() -> typing.Any: + 'VariationalRefinement_create() -> retval\n. @brief Creates an instance of VariationalRefinement' + ... + + +VideoCapture = _mod_cv2.VideoCapture +VideoWriter = _mod_cv2.VideoWriter + + +def VideoWriter_fourcc(c1, c2, c3, c4) -> typing.Any: + 'VideoWriter_fourcc(c1, c2, c3, c4) -> retval\n. @brief Concatenates 4 chars to a fourcc code\n. \n. @return a fourcc code\n. \n. This static method constructs the fourcc code of the codec to be used in the constructor\n. VideoWriter::VideoWriter or VideoWriter::open.' + ... + + +WARP_FILL_OUTLIERS: int +WARP_INVERSE_MAP: int +WARP_POLAR_LINEAR: int +WARP_POLAR_LOG: int +WINDOW_AUTOSIZE: int +WINDOW_FREERATIO: int +WINDOW_FULLSCREEN: int +WINDOW_GUI_EXPANDED: int +WINDOW_GUI_NORMAL: int +WINDOW_KEEPRATIO: int +WINDOW_NORMAL: int +WINDOW_OPENGL: int +WND_PROP_ASPECT_RATIO: int +WND_PROP_AUTOSIZE: int +WND_PROP_FULLSCREEN: int +WND_PROP_OPENGL: int +WND_PROP_TOPMOST: int +WND_PROP_VISIBLE: int +WarperCreator = _mod_cv2.WarperCreator +_INPUT_ARRAY_CUDA_GPU_MAT: int +_INPUT_ARRAY_CUDA_HOST_MEM: int +_INPUT_ARRAY_EXPR: int +_INPUT_ARRAY_FIXED_SIZE: int +_INPUT_ARRAY_FIXED_TYPE: int +_INPUT_ARRAY_KIND_MASK: int +_INPUT_ARRAY_KIND_SHIFT: int +_INPUT_ARRAY_MAT: int +_INPUT_ARRAY_MATX: int +_INPUT_ARRAY_NONE: int +_INPUT_ARRAY_OPENGL_BUFFER: int +_INPUT_ARRAY_STD_ARRAY: int +_INPUT_ARRAY_STD_ARRAY_MAT: int +_INPUT_ARRAY_STD_BOOL_VECTOR: int +_INPUT_ARRAY_STD_VECTOR: int +_INPUT_ARRAY_STD_VECTOR_CUDA_GPU_MAT: int +_INPUT_ARRAY_STD_VECTOR_MAT: int +_INPUT_ARRAY_STD_VECTOR_UMAT: int +_INPUT_ARRAY_STD_VECTOR_VECTOR: int +_INPUT_ARRAY_UMAT: int +_InputArray_CUDA_GPU_MAT: int +_InputArray_CUDA_HOST_MEM: int +_InputArray_EXPR: int +_InputArray_FIXED_SIZE: int +_InputArray_FIXED_TYPE: int +_InputArray_KIND_MASK: int +_InputArray_KIND_SHIFT: int +_InputArray_MAT: int +_InputArray_MATX: int +_InputArray_NONE: int +_InputArray_OPENGL_BUFFER: int +_InputArray_STD_ARRAY: int +_InputArray_STD_ARRAY_MAT: int +_InputArray_STD_BOOL_VECTOR: int +_InputArray_STD_VECTOR: int +_InputArray_STD_VECTOR_CUDA_GPU_MAT: int +_InputArray_STD_VECTOR_MAT: int +_InputArray_STD_VECTOR_UMAT: int +_InputArray_STD_VECTOR_VECTOR: int +_InputArray_UMAT: int +_OUTPUT_ARRAY_DEPTH_MASK_16F: int +_OUTPUT_ARRAY_DEPTH_MASK_16S: int +_OUTPUT_ARRAY_DEPTH_MASK_16U: int +_OUTPUT_ARRAY_DEPTH_MASK_32F: int +_OUTPUT_ARRAY_DEPTH_MASK_32S: int +_OUTPUT_ARRAY_DEPTH_MASK_64F: int +_OUTPUT_ARRAY_DEPTH_MASK_8S: int +_OUTPUT_ARRAY_DEPTH_MASK_8U: int +_OUTPUT_ARRAY_DEPTH_MASK_ALL: int +_OUTPUT_ARRAY_DEPTH_MASK_ALL_16F: int +_OUTPUT_ARRAY_DEPTH_MASK_ALL_BUT_8S: int +_OUTPUT_ARRAY_DEPTH_MASK_FLT: int +_OutputArray_DEPTH_MASK_16F: int +_OutputArray_DEPTH_MASK_16S: int +_OutputArray_DEPTH_MASK_16U: int +_OutputArray_DEPTH_MASK_32F: int +_OutputArray_DEPTH_MASK_32S: int +_OutputArray_DEPTH_MASK_64F: int +_OutputArray_DEPTH_MASK_8S: int +_OutputArray_DEPTH_MASK_8U: int +_OutputArray_DEPTH_MASK_ALL: int +_OutputArray_DEPTH_MASK_ALL_16F: int +_OutputArray_DEPTH_MASK_ALL_BUT_8S: int +_OutputArray_DEPTH_MASK_FLT: int +__UMAT_USAGE_FLAGS_32BIT: int +__doc__: str +__file__: str +__name__: str +__package__: str +__version__: str + + +def absdiff(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: + 'absdiff(src1, src2[, dst]) -> dst\n. @brief Calculates the per-element absolute difference between two arrays or between an array and a scalar.\n. \n. The function cv::absdiff calculates:\n. * Absolute difference between two arrays when they have the same\n. size and type:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1}(I) - \\texttt{src2}(I)|)\\f]\n. * Absolute difference between an array and a scalar when the second\n. array is constructed from Scalar or has as many elements as the\n. number of channels in `src1`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1}(I) - \\texttt{src2} |)\\f]\n. * Absolute difference between a scalar and an array when the first\n. array is constructed from Scalar or has as many elements as the\n. number of channels in `src2`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1} - \\texttt{src2}(I) |)\\f]\n. where I is a multi-dimensional index of array elements. In case of\n. multi-channel arrays, each channel is processed independently.\n. @note Saturation is not applied when the arrays have the depth CV_32S.\n. You may even get a negative value in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as input arrays.\n. @sa cv::abs(const Mat&)' + ... + + +def accumulate(src: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: + 'accumulate(src, dst[, mask]) -> dst\n. @brief Adds an image to the accumulator image.\n. \n. The function adds src or some of its elements to dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. The function cv::accumulate can be used, for example, to collect statistics of a scene background\n. viewed by a still camera and for the further foreground-background segmentation.\n. \n. @param src Input image of type CV_8UC(n), CV_16UC(n), CV_32FC(n) or CV_64FC(n), where n is a positive integer.\n. @param dst %Accumulator image with the same number of channels as input image, and a depth of CV_32F or CV_64F.\n. @param mask Optional operation mask.\n. \n. @sa accumulateSquare, accumulateProduct, accumulateWeighted' + ... + + +def accumulateProduct(src1: ndarray, src2: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: + 'accumulateProduct(src1, src2, dst[, mask]) -> dst\n. @brief Adds the per-element product of two input images to the accumulator image.\n. \n. The function adds the product of two images or their selected regions to the accumulator dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src1} (x,y) \\cdot \\texttt{src2} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src1 First input image, 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param src2 Second input image of the same type and the same size as src1 .\n. @param dst %Accumulator image with the same number of channels as input images, 32-bit or 64-bit\n. floating-point.\n. @param mask Optional operation mask.\n. \n. @sa accumulate, accumulateSquare, accumulateWeighted' + ... + + +def accumulateSquare(src: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: + 'accumulateSquare(src, dst[, mask]) -> dst\n. @brief Adds the square of a source image to the accumulator image.\n. \n. The function adds the input image src or its selected region, raised to a power of 2, to the\n. accumulator dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src} (x,y)^2 \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src Input image as 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param dst %Accumulator image with the same number of channels as input image, 32-bit or 64-bit\n. floating-point.\n. @param mask Optional operation mask.\n. \n. @sa accumulateSquare, accumulateProduct, accumulateWeighted' + ... + + +def accumulateWeighted(src: ndarray, dts: ndarray, alpha, mask: ndarray = ...) -> typing.Any: + 'accumulateWeighted(src, dst, alpha[, mask]) -> dst\n. @brief Updates a running average.\n. \n. The function calculates the weighted sum of the input image src and the accumulator dst so that dst\n. becomes a running average of a frame sequence:\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow (1- \\texttt{alpha} ) \\cdot \\texttt{dst} (x,y) + \\texttt{alpha} \\cdot \\texttt{src} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. That is, alpha regulates the update speed (how fast the accumulator "forgets" about earlier images).\n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src Input image as 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param dst %Accumulator image with the same number of channels as input image, 32-bit or 64-bit\n. floating-point.\n. @param alpha Weight of the input image.\n. @param mask Optional operation mask.\n. \n. @sa accumulate, accumulateSquare, accumulateProduct' + ... + + +def adaptiveThreshold(src: ndarray, maxValue, adaptiveMethod, thresholdType, blockSize, C, dts: ndarray = ...) -> typing.Any: + 'adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) -> dst\n. @brief Applies an adaptive threshold to an array.\n. \n. The function transforms a grayscale image to a binary image according to the formulae:\n. - **THRESH_BINARY**\n. \\f[dst(x,y) = \\fork{\\texttt{maxValue}}{if \\(src(x,y) > T(x,y)\\)}{0}{otherwise}\\f]\n. - **THRESH_BINARY_INV**\n. \\f[dst(x,y) = \\fork{0}{if \\(src(x,y) > T(x,y)\\)}{\\texttt{maxValue}}{otherwise}\\f]\n. where \\f$T(x,y)\\f$ is a threshold calculated individually for each pixel (see adaptiveMethod parameter).\n. \n. The function can process the image in-place.\n. \n. @param src Source 8-bit single-channel image.\n. @param dst Destination image of the same size and the same type as src.\n. @param maxValue Non-zero value assigned to the pixels for which the condition is satisfied\n. @param adaptiveMethod Adaptive thresholding algorithm to use, see #AdaptiveThresholdTypes.\n. The #BORDER_REPLICATE | #BORDER_ISOLATED is used to process boundaries.\n. @param thresholdType Thresholding type that must be either #THRESH_BINARY or #THRESH_BINARY_INV,\n. see #ThresholdTypes.\n. @param blockSize Size of a pixel neighborhood that is used to calculate a threshold value for the\n. pixel: 3, 5, 7, and so on.\n. @param C Constant subtracted from the mean or weighted mean (see the details below). Normally, it\n. is positive but may be zero or negative as well.\n. \n. @sa threshold, blur, GaussianBlur' + ... + + +def add(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ..., dtype=...) -> typing.Any: + 'add(src1, src2[, dst[, mask[, dtype]]]) -> dst\n. @brief Calculates the per-element sum of two arrays or an array and a scalar.\n. \n. The function add calculates:\n. - Sum of two arrays when both input arrays have the same size and the same number of channels:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) + \\texttt{src2}(I)) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Sum of an array and a scalar when src2 is constructed from Scalar or has the same number of\n. elements as `src1.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) + \\texttt{src2} ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Sum of a scalar and an array when src1 is constructed from Scalar or has the same number of\n. elements as `src2.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1} + \\texttt{src2}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. where `I` is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. \n. The first function in the list above can be replaced with matrix expressions:\n. @code{.cpp}\n. dst = src1 + src2;\n. dst += src1; // equivalent to add(dst, src1, dst);\n. @endcode\n. The input arrays and the output array can all have the same or different depths. For example, you\n. can add a 16-bit unsigned array to a 8-bit signed array and store the sum as a 32-bit\n. floating-point array. Depth of the output array is determined by the dtype parameter. In the second\n. and third cases above, as well as in the first case, when src1.depth() == src2.depth(), dtype can\n. be set to the default -1. In this case, the output array will have the same depth as the input\n. array, be it src1, src2 or both.\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and number of channels as the input array(s); the\n. depth is defined by dtype or src1/src2.\n. @param mask optional operation mask - 8-bit single channel array, that specifies elements of the\n. output array to be changed.\n. @param dtype optional depth of the output array (see the discussion below).\n. @sa subtract, addWeighted, scaleAdd, Mat::convertTo' + ... + + +def addText(img: ndarray, text, org, nameFont, pointSize=..., color=..., weight=..., style=..., spacing=...) -> typing.Any: + 'addText(img, text, org, nameFont[, pointSize[, color[, weight[, style[, spacing]]]]]) -> None\n. @brief Draws a text on the image.\n. \n. @param img 8-bit 3-channel image where the text should be drawn.\n. @param text Text to write on an image.\n. @param org Point(x,y) where the text should start on an image.\n. @param nameFont Name of the font. The name should match the name of a system font (such as\n. *Times*). If the font is not found, a default one is used.\n. @param pointSize Size of the font. If not specified, equal zero or negative, the point size of the\n. font is set to a system-dependent default value. Generally, this is 12 points.\n. @param color Color of the font in BGRA where A = 255 is fully transparent.\n. @param weight Font weight. Available operation flags are : cv::QtFontWeights You can also specify a positive integer for better control.\n. @param style Font style. Available operation flags are : cv::QtFontStyles\n. @param spacing Spacing between characters. It can be negative or positive.' + ... + + +def addWeighted(src1: ndarray, alpha, src2: ndarray, beta, gamma, dts: ndarray = ..., dtype=...) -> typing.Any: + 'addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) -> dst\n. @brief Calculates the weighted sum of two arrays.\n. \n. The function addWeighted calculates the weighted sum of two arrays as follows:\n. \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{src1} (I)* \\texttt{alpha} + \\texttt{src2} (I)* \\texttt{beta} + \\texttt{gamma} )\\f]\n. where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. The function can be replaced with a matrix expression:\n. @code{.cpp}\n. dst = src1*alpha + src2*beta + gamma;\n. @endcode\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array.\n. @param alpha weight of the first array elements.\n. @param src2 second input array of the same size and channel number as src1.\n. @param beta weight of the second array elements.\n. @param gamma scalar added to each sum.\n. @param dst output array that has the same size and number of channels as the input arrays.\n. @param dtype optional depth of the output array; when both input arrays have the same depth, dtype\n. can be set to -1, which will be equivalent to src1.depth().\n. @sa add, subtract, scaleAdd, Mat::convertTo' + ... + + +def applyColorMap(src: ndarray, colormap, dts: ndarray = ...) -> typing.Any: + 'applyColorMap(src, colormap[, dst]) -> dst\n. @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image.\n. \n. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.\n. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.\n. @param colormap The colormap to apply, see #ColormapTypes\n\n\n\napplyColorMap(src, userColor[, dst]) -> dst\n. @brief Applies a user colormap on a given image.\n. \n. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.\n. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.\n. @param userColor The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256' + ... + + +def approxPolyDP(curve, epsilon, closed, approxCurve=...) -> typing.Any: + 'approxPolyDP(curve, epsilon, closed[, approxCurve]) -> approxCurve\n. @brief Approximates a polygonal curve(s) with the specified precision.\n. \n. The function cv::approxPolyDP approximates a curve or a polygon with another curve/polygon with less\n. vertices so that the distance between them is less or equal to the specified precision. It uses the\n. Douglas-Peucker algorithm \n. \n. @param curve Input vector of a 2D point stored in std::vector or Mat\n. @param approxCurve Result of the approximation. The type should match the type of the input curve.\n. @param epsilon Parameter specifying the approximation accuracy. This is the maximum distance\n. between the original curve and its approximation.\n. @param closed If true, the approximated curve is closed (its first and last vertices are\n. connected). Otherwise, it is not closed.' + ... + + +def arcLength(curve, closed) -> typing.Any: + 'arcLength(curve, closed) -> retval\n. @brief Calculates a contour perimeter or a curve length.\n. \n. The function computes a curve length or a closed contour perimeter.\n. \n. @param curve Input vector of 2D points, stored in std::vector or Mat.\n. @param closed Flag indicating whether the curve is closed or not.' + ... + + +def arrowedLine(img: ndarray, pt1, pt2, color, thickness=..., line_type=..., shift=..., tipLength=...) -> typing.Any: + 'arrowedLine(img, pt1, pt2, color[, thickness[, line_type[, shift[, tipLength]]]]) -> img\n. @brief Draws a arrow segment pointing from the first point to the second one.\n. \n. The function cv::arrowedLine draws an arrow between pt1 and pt2 points in the image. See also #line.\n. \n. @param img Image.\n. @param pt1 The point the arrow starts from.\n. @param pt2 The point the arrow points to.\n. @param color Line color.\n. @param thickness Line thickness.\n. @param line_type Type of the line. See #LineTypes\n. @param shift Number of fractional bits in the point coordinates.\n. @param tipLength The length of the arrow tip in relation to the arrow length' + ... + + +def batchDistance(src1: ndarray, src2: ndarray, dtype, dist=..., nidx=..., normType: int = ..., K=..., mask: ndarray = ..., update=..., crosscheck=...) -> typing.Any: + 'batchDistance(src1, src2, dtype[, dist[, nidx[, normType[, K[, mask[, update[, crosscheck]]]]]]]) -> dist, nidx\n. @brief naive nearest neighbor finder\n. \n. see http://en.wikipedia.org/wiki/Nearest_neighbor_search\n. @todo document' + ... + + +def bilateralFilter(src: ndarray, d, sigmaColor, sigmaSpace, dts: ndarray = ..., borderType=...) -> typing.Any: + 'bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]]) -> dst\n. @brief Applies the bilateral filter to an image.\n. \n. The function applies bilateral filtering to the input image, as described in\n. http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html\n. bilateralFilter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is\n. very slow compared to most filters.\n. \n. _Sigma values_: For simplicity, you can set the 2 sigma values to be the same. If they are small (\\<\n. 10), the filter will not have much effect, whereas if they are large (\\> 150), they will have a very\n. strong effect, making the image look "cartoonish".\n. \n. _Filter size_: Large filters (d \\> 5) are very slow, so it is recommended to use d=5 for real-time\n. applications, and perhaps d=9 for offline applications that need heavy noise filtering.\n. \n. This filter does not work inplace.\n. @param src Source 8-bit or floating-point, 1-channel or 3-channel image.\n. @param dst Destination image of the same size and type as src .\n. @param d Diameter of each pixel neighborhood that is used during filtering. If it is non-positive,\n. it is computed from sigmaSpace.\n. @param sigmaColor Filter sigma in the color space. A larger value of the parameter means that\n. farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting\n. in larger areas of semi-equal color.\n. @param sigmaSpace Filter sigma in the coordinate space. A larger value of the parameter means that\n. farther pixels will influence each other as long as their colors are close enough (see sigmaColor\n. ). When d\\>0, it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is\n. proportional to sigmaSpace.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes' + ... + + +def bitwise_and(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: + 'bitwise_and(src1, src2[, dst[, mask]]) -> dst\n. @brief computes bitwise conjunction of the two arrays (dst = src1 & src2)\n. Calculates the per-element bit-wise conjunction of two arrays or an\n. array and a scalar.\n. \n. The function cv::bitwise_and calculates the per-element bit-wise logical conjunction for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\wedge \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\wedge \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\wedge \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the second and third cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' + ... + + +def bitwise_not(src: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: + 'bitwise_not(src[, dst[, mask]]) -> dst\n. @brief Inverts every bit of an array.\n. \n. The function cv::bitwise_not calculates per-element bit-wise inversion of the input\n. array:\n. \\f[\\texttt{dst} (I) = \\neg \\texttt{src} (I)\\f]\n. In case of a floating-point input array, its machine-specific bit\n. representation (usually IEEE754-compliant) is used for the operation. In\n. case of multi-channel arrays, each channel is processed independently.\n. @param src input array.\n. @param dst output array that has the same size and type as the input\n. array.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' + ... + + +def bitwise_or(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: + 'bitwise_or(src1, src2[, dst[, mask]]) -> dst\n. @brief Calculates the per-element bit-wise disjunction of two arrays or an\n. array and a scalar.\n. \n. The function cv::bitwise_or calculates the per-element bit-wise logical disjunction for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\vee \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\vee \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\vee \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the second and third cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' + ... + + +def bitwise_xor(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: + 'bitwise_xor(src1, src2[, dst[, mask]]) -> dst\n. @brief Calculates the per-element bit-wise "exclusive or" operation on two\n. arrays or an array and a scalar.\n. \n. The function cv::bitwise_xor calculates the per-element bit-wise logical "exclusive-or"\n. operation for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\oplus \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\oplus \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\oplus \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the 2nd and 3rd cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' + ... + + +def blur(src: ndarray, ksize, dts: ndarray = ..., anchor=..., borderType=...) -> typing.Any: + 'blur(src, ksize[, dst[, anchor[, borderType]]]) -> dst\n. @brief Blurs an image using the normalized box filter.\n. \n. The function smooths an image using the kernel:\n. \n. \\f[\\texttt{K} = \\frac{1}{\\texttt{ksize.width*ksize.height}} \\begin{bmatrix} 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\hdotsfor{6} \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\end{bmatrix}\\f]\n. \n. The call `blur(src, dst, ksize, anchor, borderType)` is equivalent to `boxFilter(src, dst, src.type(), ksize,\n. anchor, true, borderType)`.\n. \n. @param src input image; it can have any number of channels, which are processed independently, but\n. the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param ksize blurring kernel size.\n. @param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel\n. center.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa boxFilter, bilateralFilter, GaussianBlur, medianBlur' + ... + + +def borderInterpolate(p, len, borderType) -> typing.Any: + 'borderInterpolate(p, len, borderType) -> retval\n. @brief Computes the source location of an extrapolated pixel.\n. \n. The function computes and returns the coordinate of a donor pixel corresponding to the specified\n. extrapolated pixel when using the specified extrapolation border mode. For example, if you use\n. cv::BORDER_WRAP mode in the horizontal direction, cv::BORDER_REFLECT_101 in the vertical direction and\n. want to compute value of the "virtual" pixel Point(-5, 100) in a floating-point image img , it\n. looks like:\n. @code{.cpp}\n. float val = img.at(borderInterpolate(100, img.rows, cv::BORDER_REFLECT_101),\n. borderInterpolate(-5, img.cols, cv::BORDER_WRAP));\n. @endcode\n. Normally, the function is not called directly. It is used inside filtering functions and also in\n. copyMakeBorder.\n. @param p 0-based coordinate of the extrapolated pixel along one of the axes, likely \\<0 or \\>= len\n. @param len Length of the array along the corresponding axis.\n. @param borderType Border type, one of the #BorderTypes, except for #BORDER_TRANSPARENT and\n. #BORDER_ISOLATED . When borderType==#BORDER_CONSTANT , the function always returns -1, regardless\n. of p and len.\n. \n. @sa copyMakeBorder' + ... + + +def boundingRect(array) -> typing.Any: + 'boundingRect(array) -> retval\n. @brief Calculates the up-right bounding rectangle of a point set or non-zero pixels of gray-scale image.\n. \n. The function calculates and returns the minimal up-right bounding rectangle for the specified point set or\n. non-zero pixels of gray-scale image.\n. \n. @param array Input gray-scale image or 2D point set, stored in std::vector or Mat.' + ... + + +def boxFilter(src: ndarray, ddepth, ksize, dts: ndarray = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: + 'boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst\n. @brief Blurs an image using the box filter.\n. \n. The function smooths an image using the kernel:\n. \n. \\f[\\texttt{K} = \\alpha \\begin{bmatrix} 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\hdotsfor{6} \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[\\alpha = \\begin{cases} \\frac{1}{\\texttt{ksize.width*ksize.height}} & \\texttt{when } \\texttt{normalize=true} \\\\1 & \\texttt{otherwise}\\end{cases}\\f]\n. \n. Unnormalized box filter is useful for computing various integral characteristics over each pixel\n. neighborhood, such as covariance matrices of image derivatives (used in dense optical flow\n. algorithms, and so on). If you need to compute pixel sums over variable-size windows, use #integral.\n. \n. @param src input image.\n. @param dst output image of the same size and type as src.\n. @param ddepth the output image depth (-1 to use src.depth()).\n. @param ksize blurring kernel size.\n. @param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel\n. center.\n. @param normalize flag, specifying whether the kernel is normalized by its area or not.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa blur, bilateralFilter, GaussianBlur, medianBlur, integral' + ... + + +def boxPoints(box, points=...) -> typing.Any: + 'boxPoints(box[, points]) -> points\n. @brief Finds the four vertices of a rotated rect. Useful to draw the rotated rectangle.\n. \n. The function finds the four vertices of a rotated rectangle. This function is useful to draw the\n. rectangle. In C++, instead of using this function, you can directly use RotatedRect::points method. Please\n. visit the @ref tutorial_bounding_rotated_ellipses "tutorial on Creating Bounding rotated boxes and ellipses for contours" for more information.\n. \n. @param box The input rotated rectangle. It may be the output of\n. @param points The output array of four vertices of rectangles.' + ... + + +def buildOpticalFlowPyramid(img: ndarray, winSize, maxLevel, pyramid=..., withDerivatives=..., pyrBorder=..., derivBorder=..., tryReuseInputImage=...) -> typing.Any: + 'buildOpticalFlowPyramid(img, winSize, maxLevel[, pyramid[, withDerivatives[, pyrBorder[, derivBorder[, tryReuseInputImage]]]]]) -> retval, pyramid\n. @brief Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK.\n. \n. @param img 8-bit input image.\n. @param pyramid output pyramid.\n. @param winSize window size of optical flow algorithm. Must be not less than winSize argument of\n. calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels.\n. @param maxLevel 0-based maximal pyramid level number.\n. @param withDerivatives set to precompute gradients for the every pyramid level. If pyramid is\n. constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally.\n. @param pyrBorder the border mode for pyramid layers.\n. @param derivBorder the border mode for gradients.\n. @param tryReuseInputImage put ROI of input image into the pyramid if possible. You can pass false\n. to force data copying.\n. @return number of levels in constructed pyramid. Can be less than maxLevel.' + ... + + +def calcBackProject(images: typing.List[ndarray], channels: typing.List[int], hist, ranges: typing.List[int], scale, dts: ndarray = ...) -> typing.Any: + 'calcBackProject(images, channels, hist, ranges, scale[, dst]) -> dst\n. @overload' + ... + + +def calcCovarMatrix(samples, mean, flags: int, covar=..., ctype=...) -> typing.Any: + "calcCovarMatrix(samples, mean, flags[, covar[, ctype]]) -> covar, mean\n. @overload\n. @note use #COVAR_ROWS or #COVAR_COLS flag\n. @param samples samples stored as rows/columns of a single matrix.\n. @param covar output covariance matrix of the type ctype and square size.\n. @param mean input or output (depending on the flags) array as the average value of the input vectors.\n. @param flags operation flags as a combination of #CovarFlags\n. @param ctype type of the matrixl; it equals 'CV_64F' by default." + ... + + +def calcHist(images: typing.List[ndarray], channels: typing.List[int], mask: typing.Optional[ndarray], histSize: typing.List[int], ranges: typing.List[int], hist=..., accumulate=...) -> ndarray: + 'calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) -> hist\n. @overload' + ... + + +def calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags: int) -> typing.Any: + "calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags) -> flow\n. @brief Computes a dense optical flow using the Gunnar Farneback's algorithm.\n. \n. @param prev first 8-bit single-channel input image.\n. @param next second input image of the same size and the same type as prev.\n. @param flow computed flow image that has the same size as prev and type CV_32FC2.\n. @param pyr_scale parameter, specifying the image scale (\\<1) to build pyramids for each image;\n. pyr_scale=0.5 means a classical pyramid, where each next layer is twice smaller than the previous\n. one.\n. @param levels number of pyramid layers including the initial image; levels=1 means that no extra\n. layers are created and only the original images are used.\n. @param winsize averaging window size; larger values increase the algorithm robustness to image\n. noise and give more chances for fast motion detection, but yield more blurred motion field.\n. @param iterations number of iterations the algorithm does at each pyramid level.\n. @param poly_n size of the pixel neighborhood used to find polynomial expansion in each pixel;\n. larger values mean that the image will be approximated with smoother surfaces, yielding more\n. robust algorithm and more blurred motion field, typically poly_n =5 or 7.\n. @param poly_sigma standard deviation of the Gaussian that is used to smooth derivatives used as a\n. basis for the polynomial expansion; for poly_n=5, you can set poly_sigma=1.1, for poly_n=7, a\n. good value would be poly_sigma=1.5.\n. @param flags operation flags that can be a combination of the following:\n. - **OPTFLOW_USE_INITIAL_FLOW** uses the input flow as an initial flow approximation.\n. - **OPTFLOW_FARNEBACK_GAUSSIAN** uses the Gaussian \\f$\\texttt{winsize}\\times\\texttt{winsize}\\f$\n. filter instead of a box filter of the same size for optical flow estimation; usually, this\n. option gives z more accurate flow than with a box filter, at the cost of lower speed;\n. normally, winsize for a Gaussian window should be set to a larger value to achieve the same\n. level of robustness.\n. \n. The function finds an optical flow for each prev pixel using the @cite Farneback2003 algorithm so that\n. \n. \\f[\\texttt{prev} (y,x) \\sim \\texttt{next} ( y + \\texttt{flow} (y,x)[1], x + \\texttt{flow} (y,x)[0])\\f]\n. \n. @note\n. \n. - An example using the optical flow algorithm described by Gunnar Farneback can be found at\n. opencv_source_code/samples/cpp/fback.cpp\n. - (Python) An example using the optical flow algorithm described by Gunnar Farneback can be\n. found at opencv_source_code/samples/python/opt_flow.py" + ... + + +def calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status=..., err=..., winSize=..., maxLevel=..., criteria=..., flags: int = ..., minEigThreshold=...) -> typing.Any: + "calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts[, status[, err[, winSize[, maxLevel[, criteria[, flags[, minEigThreshold]]]]]]]) -> nextPts, status, err\n. @brief Calculates an optical flow for a sparse feature set using the iterative Lucas-Kanade method with\n. pyramids.\n. \n. @param prevImg first 8-bit input image or pyramid constructed by buildOpticalFlowPyramid.\n. @param nextImg second input image or pyramid of the same size and the same type as prevImg.\n. @param prevPts vector of 2D points for which the flow needs to be found; point coordinates must be\n. single-precision floating-point numbers.\n. @param nextPts output vector of 2D points (with single-precision floating-point coordinates)\n. containing the calculated new positions of input features in the second image; when\n. OPTFLOW_USE_INITIAL_FLOW flag is passed, the vector must have the same size as in the input.\n. @param status output status vector (of unsigned chars); each element of the vector is set to 1 if\n. the flow for the corresponding features has been found, otherwise, it is set to 0.\n. @param err output vector of errors; each element of the vector is set to an error for the\n. corresponding feature, type of the error measure can be set in flags parameter; if the flow wasn't\n. found then the error is not defined (use the status parameter to find such cases).\n. @param winSize size of the search window at each pyramid level.\n. @param maxLevel 0-based maximal pyramid level number; if set to 0, pyramids are not used (single\n. level), if set to 1, two levels are used, and so on; if pyramids are passed to input then\n. algorithm will use as many levels as pyramids have but no more than maxLevel.\n. @param criteria parameter, specifying the termination criteria of the iterative search algorithm\n. (after the specified maximum number of iterations criteria.maxCount or when the search window\n. moves by less than criteria.epsilon.\n. @param flags operation flags:\n. - **OPTFLOW_USE_INITIAL_FLOW** uses initial estimations, stored in nextPts; if the flag is\n. not set, then prevPts is copied to nextPts and is considered the initial estimate.\n. - **OPTFLOW_LK_GET_MIN_EIGENVALS** use minimum eigen values as an error measure (see\n. minEigThreshold description); if the flag is not set, then L1 distance between patches\n. around the original and a moved point, divided by number of pixels in a window, is used as a\n. error measure.\n. @param minEigThreshold the algorithm calculates the minimum eigen value of a 2x2 normal matrix of\n. optical flow equations (this matrix is called a spatial gradient matrix in @cite Bouguet00), divided\n. by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding\n. feature is filtered out and its flow is not processed, so it allows to remove bad points and get a\n. performance boost.\n. \n. The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See\n. @cite Bouguet00 . The function is parallelized with the TBB library.\n. \n. @note\n. \n. - An example using the Lucas-Kanade optical flow algorithm can be found at\n. opencv_source_code/samples/cpp/lkdemo.cpp\n. - (Python) An example using the Lucas-Kanade optical flow algorithm can be found at\n. opencv_source_code/samples/python/lk_track.py\n. - (Python) An example using the Lucas-Kanade tracker for homography matching can be found at\n. opencv_source_code/samples/python/lk_homography.py" + ... + + +def calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., flags: int = ..., criteria=...) -> typing.Any: + 'calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs\n. @overload' + ... + + +def calibrateCameraExtended(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., stdDeviationsIntrinsics=..., stdDeviationsExtrinsics=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: + "calibrateCameraExtended(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors\n. @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration\n. pattern.\n. \n. @param objectPoints In the new interface it is a vector of vectors of calibration pattern points in\n. the calibration pattern coordinate space (e.g. std::vector>). The outer\n. vector contains as many elements as the number of pattern views. If the same calibration pattern\n. is shown in each view and it is fully visible, all the vectors will be the same. Although, it is\n. possible to use partially occluded patterns or even different patterns in different views. Then,\n. the vectors will be different. Although the points are 3D, they all lie in the calibration pattern's\n. XY coordinate plane (thus 0 in the Z-coordinate), if the used calibration pattern is a planar rig.\n. In the old interface all the vectors of object points from different views are concatenated\n. together.\n. @param imagePoints In the new interface it is a vector of vectors of the projections of calibration\n. pattern points (e.g. std::vector>). imagePoints.size() and\n. objectPoints.size(), and imagePoints[i].size() and objectPoints[i].size() for each i, must be equal,\n. respectively. In the old interface all the vectors of object points from different views are\n. concatenated together.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrix.\n. @param cameraMatrix Input/output 3x3 floating-point camera matrix\n. \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ . If CV\\_CALIB\\_USE\\_INTRINSIC\\_GUESS\n. and/or CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be\n. initialized before calling the function.\n. @param distCoeffs Input/output vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements.\n. @param rvecs Output vector of rotation vectors (@ref Rodrigues ) estimated for each pattern view\n. (e.g. std::vector>). That is, each i-th rotation vector together with the corresponding\n. i-th translation vector (see the next output parameter description) brings the calibration pattern\n. from the object coordinate space (in which object points are specified) to the camera coordinate\n. space. In more technical terms, the tuple of the i-th rotation and translation vector performs\n. a change of basis from object coordinate space to camera coordinate space. Due to its duality, this\n. tuple is equivalent to the position of the calibration pattern with respect to the camera coordinate\n. space.\n. @param tvecs Output vector of translation vectors estimated for each pattern view, see parameter\n. describtion above.\n. @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic\n. parameters. Order of deviations values:\n. \\f$(f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3,\n. s_4, \\tau_x, \\tau_y)\\f$ If one of parameters is not estimated, it's deviation is equals to zero.\n. @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic\n. parameters. Order of deviations values: \\f$(R_0, T_0, \\dotsc , R_{M - 1}, T_{M - 1})\\f$ where M is\n. the number of pattern views. \\f$R_i, T_i\\f$ are concatenated 1x3 vectors.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of the following values:\n. - **CALIB_USE_INTRINSIC_GUESS** cameraMatrix contains valid initial values of\n. fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image\n. center ( imageSize is used), and focal distances are computed in a least-squares fashion.\n. Note, that if intrinsic parameters are known, there is no need to use this function just to\n. estimate extrinsic parameters. Use solvePnP instead.\n. - **CALIB_FIX_PRINCIPAL_POINT** The principal point is not changed during the global\n. optimization. It stays at the center or at a different location specified when\n. CALIB_USE_INTRINSIC_GUESS is set too.\n. - **CALIB_FIX_ASPECT_RATIO** The functions consider only fy as a free parameter. The\n. ratio fx/fy stays the same as in the input cameraMatrix . When\n. CALIB_USE_INTRINSIC_GUESS is not set, the actual input values of fx and fy are\n. ignored, only their ratio is computed and used further.\n. - **CALIB_ZERO_TANGENT_DIST** Tangential distortion coefficients \\f$(p_1, p_2)\\f$ are set\n. to zeros and stay zero.\n. - **CALIB_FIX_K1,...,CALIB_FIX_K6** The corresponding radial distortion\n. coefficient is not changed during the optimization. If CALIB_USE_INTRINSIC_GUESS is\n. set, the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_RATIONAL_MODEL** Coefficients k4, k5, and k6 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the rational model and return 8 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the thin prism model and return 12 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the tilted sensor model and return 14 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. @return the overall RMS re-projection error.\n. \n. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the\n. views. The algorithm is based on @cite Zhang2000 and @cite BouguetMCT . The coordinates of 3D object\n. points and their corresponding 2D projections in each view must be specified. That may be achieved\n. by using an object with known geometry and easily detectable feature points. Such an object is\n. called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as\n. a calibration rig (see @ref findChessboardCorners). Currently, initialization of intrinsic\n. parameters (when CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration\n. patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also\n. be used as long as initial cameraMatrix is provided.\n. \n. The algorithm performs the following steps:\n. \n. - Compute the initial intrinsic parameters (the option only available for planar calibration\n. patterns) or read them from the input parameters. The distortion coefficients are all set to\n. zeros initially unless some of CALIB_FIX_K? are specified.\n. \n. - Estimate the initial camera pose as if the intrinsic parameters have been already known. This is\n. done using solvePnP .\n. \n. - Run the global Levenberg-Marquardt optimization algorithm to minimize the reprojection error,\n. that is, the total sum of squared distances between the observed feature points imagePoints and\n. the projected (using the current estimates for camera parameters and the poses) object points\n. objectPoints. See projectPoints for details.\n. \n. @note\n. If you use a non-square (i.e. non-N-by-N) grid and @ref findChessboardCorners for calibration,\n. and @ref calibrateCamera returns bad values (zero distortion coefficients, \\f$c_x\\f$ and\n. \\f$c_y\\f$ very far from the image center, and/or large differences between \\f$f_x\\f$ and\n. \\f$f_y\\f$ (ratios of 10:1 or more)), then you are probably using patternSize=cvSize(rows,cols)\n. instead of using patternSize=cvSize(cols,rows) in @ref findChessboardCorners.\n. \n. @sa\n. calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate,\n. undistort" + ... + + +def calibrateCameraRO(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., newObjPoints=..., flags: int = ..., criteria=...) -> typing.Any: + 'calibrateCameraRO(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs[, rvecs[, tvecs[, newObjPoints[, flags[, criteria]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, newObjPoints\n. @overload' + ... + + +def calibrateCameraROExtended(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., newObjPoints=..., stdDeviationsIntrinsics=..., stdDeviationsExtrinsics=..., stdDeviationsObjPoints=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: + 'calibrateCameraROExtended(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs[, rvecs[, tvecs[, newObjPoints[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, stdDeviationsObjPoints[, perViewErrors[, flags[, criteria]]]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, newObjPoints, stdDeviationsIntrinsics, stdDeviationsExtrinsics, stdDeviationsObjPoints, perViewErrors\n. @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern.\n. \n. This function is an extension of calibrateCamera() with the method of releasing object which was\n. proposed in @cite strobl2011iccv. In many common cases with inaccurate, unmeasured, roughly planar\n. targets (calibration plates), this method can dramatically improve the precision of the estimated\n. camera parameters. Both the object-releasing method and standard method are supported by this\n. function. Use the parameter **iFixedPoint** for method selection. In the internal implementation,\n. calibrateCamera() is a wrapper for this function.\n. \n. @param objectPoints Vector of vectors of calibration pattern points in the calibration pattern\n. coordinate space. See calibrateCamera() for details. If the method of releasing object to be used,\n. the identical calibration board must be used in each view and it must be fully visible, and all\n. objectPoints[i] must be the same and all points should be roughly close to a plane. **The calibration\n. target has to be rigid, or at least static if the camera (rather than the calibration target) is\n. shifted for grabbing images.**\n. @param imagePoints Vector of vectors of the projections of calibration pattern points. See\n. calibrateCamera() for details.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrix.\n. @param iFixedPoint The index of the 3D object point in objectPoints[0] to be fixed. It also acts as\n. a switch for calibration method selection. If object-releasing method to be used, pass in the\n. parameter in the range of [1, objectPoints[0].size()-2], otherwise a value out of this range will\n. make standard calibration method selected. Usually the top-right corner point of the calibration\n. board grid is recommended to be fixed when object-releasing method being utilized. According to\n. \\cite strobl2011iccv, two other points are also fixed. In this implementation, objectPoints[0].front\n. and objectPoints[0].back.z are used. With object-releasing method, accurate rvecs, tvecs and\n. newObjPoints are only possible if coordinates of these three fixed points are accurate enough.\n. @param cameraMatrix Output 3x3 floating-point camera matrix. See calibrateCamera() for details.\n. @param distCoeffs Output vector of distortion coefficients. See calibrateCamera() for details.\n. @param rvecs Output vector of rotation vectors estimated for each pattern view. See calibrateCamera()\n. for details.\n. @param tvecs Output vector of translation vectors estimated for each pattern view.\n. @param newObjPoints The updated output vector of calibration pattern points. The coordinates might\n. be scaled based on three fixed points. The returned coordinates are accurate only if the above\n. mentioned three fixed points are accurate. If not needed, noArray() can be passed in. This parameter\n. is ignored with standard calibration method.\n. @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters.\n. See calibrateCamera() for details.\n. @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters.\n. See calibrateCamera() for details.\n. @param stdDeviationsObjPoints Output vector of standard deviations estimated for refined coordinates\n. of calibration pattern points. It has the same size and order as objectPoints[0] vector. This\n. parameter is ignored with standard calibration method.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of some predefined values. See\n. calibrateCamera() for details. If the method of releasing object is used, the calibration time may\n. be much longer. CALIB_USE_QR or CALIB_USE_LU could be used for faster calibration with potentially\n. less precise and less stable in some rare cases.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. @return the overall RMS re-projection error.\n. \n. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the\n. views. The algorithm is based on @cite Zhang2000, @cite BouguetMCT and @cite strobl2011iccv. See\n. calibrateCamera() for other detailed explanations.\n. @sa\n. calibrateCamera, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort' + ... + + +def calibrateHandEye(R_gripper2base, t_gripper2base, R_target2cam, t_target2cam, R_cam2gripper=..., t_cam2gripper=..., method: int = ...) -> typing.Any: + 'calibrateHandEye(R_gripper2base, t_gripper2base, R_target2cam, t_target2cam[, R_cam2gripper[, t_cam2gripper[, method]]]) -> R_cam2gripper, t_cam2gripper\n. @brief Computes Hand-Eye calibration: \\f$_{}^{g}\\textrm{T}_c\\f$\n. \n. @param[in] R_gripper2base Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the gripper frame to the robot base frame (\\f$_{}^{b}\\textrm{T}_g\\f$).\n. This is a vector (`vector`) that contains the rotation matrices for all the transformations\n. from gripper frame to robot base frame.\n. @param[in] t_gripper2base Translation part extracted from the homogeneous matrix that transforms a point\n. expressed in the gripper frame to the robot base frame (\\f$_{}^{b}\\textrm{T}_g\\f$).\n. This is a vector (`vector`) that contains the translation vectors for all the transformations\n. from gripper frame to robot base frame.\n. @param[in] R_target2cam Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the target frame to the camera frame (\\f$_{}^{c}\\textrm{T}_t\\f$).\n. This is a vector (`vector`) that contains the rotation matrices for all the transformations\n. from calibration target frame to camera frame.\n. @param[in] t_target2cam Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the target frame to the camera frame (\\f$_{}^{c}\\textrm{T}_t\\f$).\n. This is a vector (`vector`) that contains the translation vectors for all the transformations\n. from calibration target frame to camera frame.\n. @param[out] R_cam2gripper Estimated rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the camera frame to the gripper frame (\\f$_{}^{g}\\textrm{T}_c\\f$).\n. @param[out] t_cam2gripper Estimated translation part extracted from the homogeneous matrix that transforms a point\n. expressed in the camera frame to the gripper frame (\\f$_{}^{g}\\textrm{T}_c\\f$).\n. @param[in] method One of the implemented Hand-Eye calibration method, see cv::HandEyeCalibrationMethod\n. \n. The function performs the Hand-Eye calibration using various methods. One approach consists in estimating the\n. rotation then the translation (separable solutions) and the following methods are implemented:\n. - R. Tsai, R. Lenz A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/EyeCalibration \\cite Tsai89\n. - F. Park, B. Martin Robot Sensor Calibration: Solving AX = XB on the Euclidean Group \\cite Park94\n. - R. Horaud, F. Dornaika Hand-Eye Calibration \\cite Horaud95\n. \n. Another approach consists in estimating simultaneously the rotation and the translation (simultaneous solutions),\n. with the following implemented method:\n. - N. Andreff, R. Horaud, B. Espiau On-line Hand-Eye Calibration \\cite Andreff99\n. - K. Daniilidis Hand-Eye Calibration Using Dual Quaternions \\cite Daniilidis98\n. \n. The following picture describes the Hand-Eye calibration problem where the transformation between a camera ("eye")\n. mounted on a robot gripper ("hand") has to be estimated.\n. \n. ![](pics/hand-eye_figure.png)\n. \n. The calibration procedure is the following:\n. - a static calibration pattern is used to estimate the transformation between the target frame\n. and the camera frame\n. - the robot gripper is moved in order to acquire several poses\n. - for each pose, the homogeneous transformation between the gripper frame and the robot base frame is recorded using for\n. instance the robot kinematics\n. \\f[\n. \\begin{bmatrix}\n. X_b\\\\\n. Y_b\\\\\n. Z_b\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{b}\\textrm{R}_g & _{}^{b}\\textrm{t}_g \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_g\\\\\n. Y_g\\\\\n. Z_g\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. - for each pose, the homogeneous transformation between the calibration target frame and the camera frame is recorded using\n. for instance a pose estimation method (PnP) from 2D-3D point correspondences\n. \\f[\n. \\begin{bmatrix}\n. X_c\\\\\n. Y_c\\\\\n. Z_c\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{c}\\textrm{R}_t & _{}^{c}\\textrm{t}_t \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_t\\\\\n. Y_t\\\\\n. Z_t\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. \n. The Hand-Eye calibration procedure returns the following homogeneous transformation\n. \\f[\n. \\begin{bmatrix}\n. X_g\\\\\n. Y_g\\\\\n. Z_g\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{g}\\textrm{R}_c & _{}^{g}\\textrm{t}_c \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_c\\\\\n. Y_c\\\\\n. Z_c\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. \n. This problem is also known as solving the \\f$\\mathbf{A}\\mathbf{X}=\\mathbf{X}\\mathbf{B}\\f$ equation:\n. \\f[\n. \\begin{align*}\n. ^{b}{\\textrm{T}_g}^{(1)} \\hspace{0.2em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(1)} &=\n. \\hspace{0.1em} ^{b}{\\textrm{T}_g}^{(2)} \\hspace{0.2em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(2)} \\\\\n. \n. (^{b}{\\textrm{T}_g}^{(2)})^{-1} \\hspace{0.2em} ^{b}{\\textrm{T}_g}^{(1)} \\hspace{0.2em} ^{g}\\textrm{T}_c &=\n. \\hspace{0.1em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(2)} (^{c}{\\textrm{T}_t}^{(1)})^{-1} \\\\\n. \n. \\textrm{A}_i \\textrm{X} &= \\textrm{X} \\textrm{B}_i \\\\\n. \\end{align*}\n. \\f]\n. \n. \\note\n. Additional information can be found on this [website](http://campar.in.tum.de/Chair/HandEyeCalibration).\n. \\note\n. A minimum of 2 motions with non parallel rotation axes are necessary to determine the hand-eye transformation.\n. So at least 3 different poses are required, but it is strongly recommended to use many more poses.' + ... + + +def calibrationMatrixValues(cameraMatrix, imageSize, apertureWidth, apertureHeight) -> typing.Any: + "calibrationMatrixValues(cameraMatrix, imageSize, apertureWidth, apertureHeight) -> fovx, fovy, focalLength, principalPoint, aspectRatio\n. @brief Computes useful camera characteristics from the camera matrix.\n. \n. @param cameraMatrix Input camera matrix that can be estimated by calibrateCamera or\n. stereoCalibrate .\n. @param imageSize Input image size in pixels.\n. @param apertureWidth Physical width in mm of the sensor.\n. @param apertureHeight Physical height in mm of the sensor.\n. @param fovx Output field of view in degrees along the horizontal sensor axis.\n. @param fovy Output field of view in degrees along the vertical sensor axis.\n. @param focalLength Focal length of the lens in mm.\n. @param principalPoint Principal point in mm.\n. @param aspectRatio \\f$f_y/f_x\\f$\n. \n. The function computes various useful camera characteristics from the previously estimated camera\n. matrix.\n. \n. @note\n. Do keep in mind that the unity measure 'mm' stands for whatever unit of measure one chooses for\n. the chessboard pitch (it can thus be any value)." + ... + + +def cartToPolar(x, y, magnitude=..., angle=..., angleInDegrees=...) -> typing.Any: + 'cartToPolar(x, y[, magnitude[, angle[, angleInDegrees]]]) -> magnitude, angle\n. @brief Calculates the magnitude and angle of 2D vectors.\n. \n. The function cv::cartToPolar calculates either the magnitude, angle, or both\n. for every 2D vector (x(I),y(I)):\n. \\f[\\begin{array}{l} \\texttt{magnitude} (I)= \\sqrt{\\texttt{x}(I)^2+\\texttt{y}(I)^2} , \\\\ \\texttt{angle} (I)= \\texttt{atan2} ( \\texttt{y} (I), \\texttt{x} (I))[ \\cdot180 / \\pi ] \\end{array}\\f]\n. \n. The angles are calculated with accuracy about 0.3 degrees. For the point\n. (0,0), the angle is set to 0.\n. @param x array of x-coordinates; this must be a single-precision or\n. double-precision floating-point array.\n. @param y array of y-coordinates, that must have the same size and same type as x.\n. @param magnitude output array of magnitudes of the same size and type as x.\n. @param angle output array of angles that has the same size and type as\n. x; the angles are measured in radians (from 0 to 2\\*Pi) or in degrees (0 to 360 degrees).\n. @param angleInDegrees a flag, indicating whether the angles are measured\n. in radians (which is by default), or in degrees.\n. @sa Sobel, Scharr' + ... + + +def checkChessboard(img: ndarray, size) -> typing.Any: + 'checkChessboard(img, size) -> retval\n.' + ... + + +def checkHardwareSupport(feature) -> typing.Any: + 'checkHardwareSupport(feature) -> retval\n. @brief Returns true if the specified feature is supported by the host hardware.\n. \n. The function returns true if the host hardware supports the specified feature. When user calls\n. setUseOptimized(false), the subsequent calls to checkHardwareSupport() will return false until\n. setUseOptimized(true) is called. This way user can dynamically switch on and off the optimized code\n. in OpenCV.\n. @param feature The feature of interest, one of cv::CpuFeatures' + ... + + +def checkRange(a, quiet=..., minVal=..., maxVal=...) -> typing.Any: + 'checkRange(a[, quiet[, minVal[, maxVal]]]) -> retval, pos\n. @brief Checks every element of an input array for invalid values.\n. \n. The function cv::checkRange checks that every array element is neither NaN nor infinite. When minVal \\>\n. -DBL_MAX and maxVal \\< DBL_MAX, the function also checks that each value is between minVal and\n. maxVal. In case of multi-channel arrays, each channel is processed independently. If some values\n. are out of range, position of the first outlier is stored in pos (when pos != NULL). Then, the\n. function either returns false (when quiet=true) or throws an exception.\n. @param a input array.\n. @param quiet a flag, indicating whether the functions quietly return false when the array elements\n. are out of range or they throw an exception.\n. @param pos optional output parameter, when not NULL, must be a pointer to array of src.dims\n. elements.\n. @param minVal inclusive lower boundary of valid values range.\n. @param maxVal exclusive upper boundary of valid values range.' + ... + + +def circle(img: ndarray, center, radius, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'circle(img, center, radius, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a circle.\n. \n. The function cv::circle draws a simple or filled circle with a given center and radius.\n. @param img Image where the circle is drawn.\n. @param center Center of the circle.\n. @param radius Radius of the circle.\n. @param color Circle color.\n. @param thickness Thickness of the circle outline, if positive. Negative values, like #FILLED,\n. mean that a filled circle is to be drawn.\n. @param lineType Type of the circle boundary. See #LineTypes\n. @param shift Number of fractional bits in the coordinates of the center and in the radius value.' + ... + + +def clipLine(imgRect, pt1, pt2) -> typing.Any: + 'clipLine(imgRect, pt1, pt2) -> retval, pt1, pt2\n. @overload\n. @param imgRect Image rectangle.\n. @param pt1 First line point.\n. @param pt2 Second line point.' + ... + + +def colorChange(src: ndarray, mask: ndarray, dts: ndarray = ..., red_mul=..., green_mul=..., blue_mul=...) -> typing.Any: + 'colorChange(src, mask[, dst[, red_mul[, green_mul[, blue_mul]]]]) -> dst\n. @brief Given an original color image, two differently colored versions of this image can be mixed\n. seamlessly.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src .\n. @param red_mul R-channel multiply factor.\n. @param green_mul G-channel multiply factor.\n. @param blue_mul B-channel multiply factor.\n. \n. Multiplication factor is between .5 to 2.5.' + ... + + +def compare(src1: ndarray, src2: ndarray, cmpop, dts: ndarray = ...) -> typing.Any: + 'compare(src1, src2, cmpop[, dst]) -> dst\n. @brief Performs the per-element comparison of two arrays or an array and scalar value.\n. \n. The function compares:\n. * Elements of two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\,\\texttt{cmpop}\\, \\texttt{src2} (I)\\f]\n. * Elements of src1 with a scalar src2 when src2 is constructed from\n. Scalar or has a single element:\n. \\f[\\texttt{dst} (I) = \\texttt{src1}(I) \\,\\texttt{cmpop}\\, \\texttt{src2}\\f]\n. * src1 with elements of src2 when src1 is constructed from Scalar or\n. has a single element:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\,\\texttt{cmpop}\\, \\texttt{src2} (I)\\f]\n. When the comparison result is true, the corresponding element of output\n. array is set to 255. The comparison operations can be replaced with the\n. equivalent matrix expressions:\n. @code{.cpp}\n. Mat dst1 = src1 >= src2;\n. Mat dst2 = src1 < 8;\n. ...\n. @endcode\n. @param src1 first input array or a scalar; when it is an array, it must have a single channel.\n. @param src2 second input array or a scalar; when it is an array, it must have a single channel.\n. @param dst output array of type ref CV_8U that has the same size and the same number of channels as\n. the input arrays.\n. @param cmpop a flag, that specifies correspondence between the arrays (cv::CmpTypes)\n. @sa checkRange, min, max, threshold' + ... + + +def compareHist(H1: ndarray, H2: ndarray, method: int) -> float: + 'compareHist(H1, H2, method) -> retval\n. @brief Compares two histograms.\n. \n. The function cv::compareHist compares two dense or two sparse histograms using the specified method.\n. \n. The function returns \\f$d(H_1, H_2)\\f$ .\n. \n. While the function works well with 1-, 2-, 3-dimensional dense histograms, it may not be suitable\n. for high-dimensional sparse histograms. In such histograms, because of aliasing and sampling\n. problems, the coordinates of non-zero histogram bins can slightly shift. To compare such histograms\n. or more general sparse configurations of weighted points, consider using the #EMD function.\n. \n. @param H1 First compared histogram.\n. @param H2 Second compared histogram of the same size as H1 .\n. @param method Comparison method, see #HistCompMethods' + ... + + +def completeSymm(m, lowerToUpper=...) -> typing.Any: + 'completeSymm(m[, lowerToUpper]) -> m\n. @brief Copies the lower or the upper half of a square matrix to its another half.\n. \n. The function cv::completeSymm copies the lower or the upper half of a square matrix to\n. its another half. The matrix diagonal remains unchanged:\n. - \\f$\\texttt{m}_{ij}=\\texttt{m}_{ji}\\f$ for \\f$i > j\\f$ if\n. lowerToUpper=false\n. - \\f$\\texttt{m}_{ij}=\\texttt{m}_{ji}\\f$ for \\f$i < j\\f$ if\n. lowerToUpper=true\n. \n. @param m input-output floating-point square matrix.\n. @param lowerToUpper operation flag; if true, the lower half is copied to\n. the upper half. Otherwise, the upper half is copied to the lower half.\n. @sa flip, transpose' + ... + + +def composeRT(rvec1, tvec1, rvec2, tvec2, rvec3=..., tvec3=..., dr3dr1=..., dr3dt1=..., dr3dr2=..., dr3dt2=..., dt3dr1=..., dt3dt1=..., dt3dr2=..., dt3dt2=...) -> typing.Any: + 'composeRT(rvec1, tvec1, rvec2, tvec2[, rvec3[, tvec3[, dr3dr1[, dr3dt1[, dr3dr2[, dr3dt2[, dt3dr1[, dt3dt1[, dt3dr2[, dt3dt2]]]]]]]]]]) -> rvec3, tvec3, dr3dr1, dr3dt1, dr3dr2, dr3dt2, dt3dr1, dt3dt1, dt3dr2, dt3dt2\n. @brief Combines two rotation-and-shift transformations.\n. \n. @param rvec1 First rotation vector.\n. @param tvec1 First translation vector.\n. @param rvec2 Second rotation vector.\n. @param tvec2 Second translation vector.\n. @param rvec3 Output rotation vector of the superposition.\n. @param tvec3 Output translation vector of the superposition.\n. @param dr3dr1 Optional output derivative of rvec3 with regard to rvec1\n. @param dr3dt1 Optional output derivative of rvec3 with regard to tvec1\n. @param dr3dr2 Optional output derivative of rvec3 with regard to rvec2\n. @param dr3dt2 Optional output derivative of rvec3 with regard to tvec2\n. @param dt3dr1 Optional output derivative of tvec3 with regard to rvec1\n. @param dt3dt1 Optional output derivative of tvec3 with regard to tvec1\n. @param dt3dr2 Optional output derivative of tvec3 with regard to rvec2\n. @param dt3dt2 Optional output derivative of tvec3 with regard to tvec2\n. \n. The functions compute:\n. \n. \\f[\\begin{array}{l} \\texttt{rvec3} = \\mathrm{rodrigues} ^{-1} \\left ( \\mathrm{rodrigues} ( \\texttt{rvec2} ) \\cdot \\mathrm{rodrigues} ( \\texttt{rvec1} ) \\right ) \\\\ \\texttt{tvec3} = \\mathrm{rodrigues} ( \\texttt{rvec2} ) \\cdot \\texttt{tvec1} + \\texttt{tvec2} \\end{array} ,\\f]\n. \n. where \\f$\\mathrm{rodrigues}\\f$ denotes a rotation vector to a rotation matrix transformation, and\n. \\f$\\mathrm{rodrigues}^{-1}\\f$ denotes the inverse transformation. See Rodrigues for details.\n. \n. Also, the functions can compute the derivatives of the output vectors with regards to the input\n. vectors (see matMulDeriv ). The functions are used inside stereoCalibrate but can also be used in\n. your own code where Levenberg-Marquardt or another gradient-based solver is used to optimize a\n. function that contains a matrix multiplication.' + ... + + +def computeCorrespondEpilines(points, whichImage, F, lines=...) -> typing.Any: + 'computeCorrespondEpilines(points, whichImage, F[, lines]) -> lines\n. @brief For points in an image of a stereo pair, computes the corresponding epilines in the other image.\n. \n. @param points Input points. \\f$N \\times 1\\f$ or \\f$1 \\times N\\f$ matrix of type CV_32FC2 or\n. vector\\ .\n. @param whichImage Index of the image (1 or 2) that contains the points .\n. @param F Fundamental matrix that can be estimated using findFundamentalMat or stereoRectify .\n. @param lines Output vector of the epipolar lines corresponding to the points in the other image.\n. Each line \\f$ax + by + c=0\\f$ is encoded by 3 numbers \\f$(a, b, c)\\f$ .\n. \n. For every point in one of the two images of a stereo pair, the function finds the equation of the\n. corresponding epipolar line in the other image.\n. \n. From the fundamental matrix definition (see findFundamentalMat ), line \\f$l^{(2)}_i\\f$ in the second\n. image for the point \\f$p^{(1)}_i\\f$ in the first image (when whichImage=1 ) is computed as:\n. \n. \\f[l^{(2)}_i = F p^{(1)}_i\\f]\n. \n. And vice versa, when whichImage=2, \\f$l^{(1)}_i\\f$ is computed from \\f$p^{(2)}_i\\f$ as:\n. \n. \\f[l^{(1)}_i = F^T p^{(2)}_i\\f]\n. \n. Line coefficients are defined up to a scale. They are normalized so that \\f$a_i^2+b_i^2=1\\f$ .' + ... + + +def computeECC(templateImage, inputImage, inputMask=...) -> typing.Any: + 'computeECC(templateImage, inputImage[, inputMask]) -> retval\n. @brief Computes the Enhanced Correlation Coefficient value between two images @cite EP08 .\n. \n. @param templateImage single-channel template image; CV_8U or CV_32F array.\n. @param inputImage single-channel input image to be warped to provide an image similar to\n. templateImage, same type as templateImage.\n. @param inputMask An optional mask to indicate valid values of inputImage.\n. \n. @sa\n. findTransformECC' + ... + + +def connectedComponents(image: ndarray, labels=..., connectivity=..., ltype=...) -> typing.Any: + 'connectedComponents(image[, labels[, connectivity[, ltype]]]) -> retval, labels\n. @overload\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.' + ... + + +def connectedComponentsWithAlgorithm(image: ndarray, connectivity, ltype, ccltype, labels=...) -> typing.Any: + "connectedComponentsWithAlgorithm(image, connectivity, ltype, ccltype[, labels]) -> retval, labels\n. @brief computes the connected components labeled image of boolean image\n. \n. image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0\n. represents the background label. ltype specifies the output label image type, an important\n. consideration based on the total number of labels or alternatively the total number of pixels in\n. the source image. ccltype specifies the connected components labeling algorithm to use, currently\n. Grana (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes\n. for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.\n. This function uses parallel version of both Grana and Wu's algorithms if at least one allowed\n. parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.\n. @param ccltype connected components algorithm type (see the #ConnectedComponentsAlgorithmsTypes)." + ... + + +def connectedComponentsWithStats(image: ndarray, labels=..., stats=..., centroids=..., connectivity=..., ltype=...) -> typing.Any: + 'connectedComponentsWithStats(image[, labels[, stats[, centroids[, connectivity[, ltype]]]]]) -> retval, labels, stats, centroids\n. @overload\n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param stats statistics output for each label, including the background label.\n. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of\n. #ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.\n. @param centroids centroid output for each label, including the background label. Centroids are\n. accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.' + ... + + +def connectedComponentsWithStatsWithAlgorithm(image: ndarray, connectivity, ltype, ccltype, labels=..., stats=..., centroids=...) -> typing.Any: + "connectedComponentsWithStatsWithAlgorithm(image, connectivity, ltype, ccltype[, labels[, stats[, centroids]]]) -> retval, labels, stats, centroids\n. @brief computes the connected components labeled image of boolean image and also produces a statistics output for each label\n. \n. image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0\n. represents the background label. ltype specifies the output label image type, an important\n. consideration based on the total number of labels or alternatively the total number of pixels in\n. the source image. ccltype specifies the connected components labeling algorithm to use, currently\n. Grana's (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes\n. for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.\n. This function uses parallel version of both Grana and Wu's algorithms (statistics included) if at least one allowed\n. parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param stats statistics output for each label, including the background label.\n. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of\n. #ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.\n. @param centroids centroid output for each label, including the background label. Centroids are\n. accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.\n. @param ccltype connected components algorithm type (see #ConnectedComponentsAlgorithmsTypes)." + ... + + +def contourArea(contour, oriented=...) -> typing.Any: + 'contourArea(contour[, oriented]) -> retval\n. @brief Calculates a contour area.\n. \n. The function computes a contour area. Similarly to moments , the area is computed using the Green\n. formula. Thus, the returned area and the number of non-zero pixels, if you draw the contour using\n. #drawContours or #fillPoly , can be different. Also, the function will most certainly give a wrong\n. results for contours with self-intersections.\n. \n. Example:\n. @code\n. vector contour;\n. contour.push_back(Point2f(0, 0));\n. contour.push_back(Point2f(10, 0));\n. contour.push_back(Point2f(10, 10));\n. contour.push_back(Point2f(5, 4));\n. \n. double area0 = contourArea(contour);\n. vector approx;\n. approxPolyDP(contour, approx, 5, true);\n. double area1 = contourArea(approx);\n. \n. cout << "area0 =" << area0 << endl <<\n. "area1 =" << area1 << endl <<\n. "approx poly vertices" << approx.size() << endl;\n. @endcode\n. @param contour Input vector of 2D points (contour vertices), stored in std::vector or Mat.\n. @param oriented Oriented area flag. If it is true, the function returns a signed area value,\n. depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can\n. determine orientation of a contour by taking the sign of an area. By default, the parameter is\n. false, which means that the absolute value is returned.' + ... + + +def convertFp16(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'convertFp16(src[, dst]) -> dst\n. @brief Converts an array to half precision floating number.\n. \n. This function converts FP32 (single precision floating point) from/to FP16 (half precision floating point). CV_16S format is used to represent FP16 data.\n. There are two use modes (src -> dst): CV_32F -> CV_16S and CV_16S -> CV_32F. The input array has to have type of CV_32F or\n. CV_16S to represent the bit depth. If the input array is neither of them, the function will raise an error.\n. The format of half precision floating point is defined in IEEE 754-2008.\n. \n. @param src input array.\n. @param dst output array.' + ... + + +def convertMaps(map1, map2, dstmap1type, dstmap1=..., dstmap2=..., nninterpolation=...) -> typing.Any: + 'convertMaps(map1, map2, dstmap1type[, dstmap1[, dstmap2[, nninterpolation]]]) -> dstmap1, dstmap2\n. @brief Converts image transformation maps from one representation to another.\n. \n. The function converts a pair of maps for remap from one representation to another. The following\n. options ( (map1.type(), map2.type()) \\f$\\rightarrow\\f$ (dstmap1.type(), dstmap2.type()) ) are\n. supported:\n. \n. - \\f$\\texttt{(CV_32FC1, CV_32FC1)} \\rightarrow \\texttt{(CV_16SC2, CV_16UC1)}\\f$. This is the\n. most frequently used conversion operation, in which the original floating-point maps (see remap )\n. are converted to a more compact and much faster fixed-point representation. The first output array\n. contains the rounded coordinates and the second array (created only when nninterpolation=false )\n. contains indices in the interpolation tables.\n. \n. - \\f$\\texttt{(CV_32FC2)} \\rightarrow \\texttt{(CV_16SC2, CV_16UC1)}\\f$. The same as above but\n. the original maps are stored in one 2-channel matrix.\n. \n. - Reverse conversion. Obviously, the reconstructed floating-point maps will not be exactly the same\n. as the originals.\n. \n. @param map1 The first input map of type CV_16SC2, CV_32FC1, or CV_32FC2 .\n. @param map2 The second input map of type CV_16UC1, CV_32FC1, or none (empty matrix),\n. respectively.\n. @param dstmap1 The first output map that has the type dstmap1type and the same size as src .\n. @param dstmap2 The second output map.\n. @param dstmap1type Type of the first output map that should be CV_16SC2, CV_32FC1, or\n. CV_32FC2 .\n. @param nninterpolation Flag indicating whether the fixed-point maps are used for the\n. nearest-neighbor or for a more complex interpolation.\n. \n. @sa remap, undistort, initUndistortRectifyMap' + ... + + +def convertPointsFromHomogeneous(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'convertPointsFromHomogeneous(src[, dst]) -> dst\n. @brief Converts points from homogeneous to Euclidean space.\n. \n. @param src Input vector of N-dimensional points.\n. @param dst Output vector of N-1-dimensional points.\n. \n. The function converts points homogeneous to Euclidean space using perspective projection. That is,\n. each point (x1, x2, ... x(n-1), xn) is converted to (x1/xn, x2/xn, ..., x(n-1)/xn). When xn=0, the\n. output point coordinates will be (0,0,0,...).' + ... + + +def convertPointsToHomogeneous(src: ndarray, dts: ndarray = ...) -> typing.Any: + "convertPointsToHomogeneous(src[, dst]) -> dst\n. @brief Converts points from Euclidean to homogeneous space.\n. \n. @param src Input vector of N-dimensional points.\n. @param dst Output vector of N+1-dimensional points.\n. \n. The function converts points from Euclidean to homogeneous space by appending 1's to the tuple of\n. point coordinates. That is, each point (x1, x2, ..., xn) is converted to (x1, x2, ..., xn, 1)." + ... + + +def convertScaleAbs(src: ndarray, dts: ndarray = ..., alpha=..., beta=...) -> typing.Any: + 'convertScaleAbs(src[, dst[, alpha[, beta]]]) -> dst\n. @brief Scales, calculates absolute values, and converts the result to 8-bit.\n. \n. On each element of the input array, the function convertScaleAbs\n. performs three operations sequentially: scaling, taking an absolute\n. value, conversion to an unsigned 8-bit type:\n. \\f[\\texttt{dst} (I)= \\texttt{saturate\\_cast} (| \\texttt{src} (I)* \\texttt{alpha} + \\texttt{beta} |)\\f]\n. In case of multi-channel arrays, the function processes each channel\n. independently. When the output is not 8-bit, the operation can be\n. emulated by calling the Mat::convertTo method (or by using matrix\n. expressions) and then by calculating an absolute value of the result.\n. For example:\n. @code{.cpp}\n. Mat_ A(30,30);\n. randu(A, Scalar(-100), Scalar(100));\n. Mat_ B = A*5 + 3;\n. B = abs(B);\n. // Mat_ B = abs(A*5+3) will also do the job,\n. // but it will allocate a temporary matrix\n. @endcode\n. @param src input array.\n. @param dst output array.\n. @param alpha optional scale factor.\n. @param beta optional delta added to the scaled values.\n. @sa Mat::convertTo, cv::abs(const Mat&)' + ... + + +def convexHull(points, hull=..., clockwise=..., returnPoints=...) -> typing.Any: + 'convexHull(points[, hull[, clockwise[, returnPoints]]]) -> hull\n. @brief Finds the convex hull of a point set.\n. \n. The function cv::convexHull finds the convex hull of a 2D point set using the Sklansky\'s algorithm @cite Sklansky82\n. that has *O(N logN)* complexity in the current implementation.\n. \n. @param points Input 2D point set, stored in std::vector or Mat.\n. @param hull Output convex hull. It is either an integer vector of indices or vector of points. In\n. the first case, the hull elements are 0-based indices of the convex hull points in the original\n. array (since the set of convex hull points is a subset of the original point set). In the second\n. case, hull elements are the convex hull points themselves.\n. @param clockwise Orientation flag. If it is true, the output convex hull is oriented clockwise.\n. Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing\n. to the right, and its Y axis pointing upwards.\n. @param returnPoints Operation flag. In case of a matrix, when the flag is true, the function\n. returns convex hull points. Otherwise, it returns indices of the convex hull points. When the\n. output array is std::vector, the flag is ignored, and the output depends on the type of the\n. vector: std::vector\\ implies returnPoints=false, std::vector\\ implies\n. returnPoints=true.\n. \n. @note `points` and `hull` should be different arrays, inplace processing isn\'t supported.\n. \n. Check @ref tutorial_hull "the corresponding tutorial" for more details.\n. \n. useful links:\n. \n. https://www.learnopencv.com/convex-hull-using-opencv-in-python-and-c/' + ... + + +def convexityDefects(contour, convexhull, convexityDefects=...) -> typing.Any: + 'convexityDefects(contour, convexhull[, convexityDefects]) -> convexityDefects\n. @brief Finds the convexity defects of a contour.\n. \n. The figure below displays convexity defects of a hand contour:\n. \n. ![image](pics/defects.png)\n. \n. @param contour Input contour.\n. @param convexhull Convex hull obtained using convexHull that should contain indices of the contour\n. points that make the hull.\n. @param convexityDefects The output vector of convexity defects. In C++ and the new Python/Java\n. interface each convexity defect is represented as 4-element integer vector (a.k.a. #Vec4i):\n. (start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices\n. in the original contour of the convexity defect beginning, end and the farthest point, and\n. fixpt_depth is fixed-point approximation (with 8 fractional bits) of the distance between the\n. farthest contour point and the hull. That is, to get the floating-point value of the depth will be\n. fixpt_depth/256.0.' + ... + + +def copyMakeBorder(src: ndarray, top, bottom, left, right, borderType, dts: ndarray = ..., value=...) -> typing.Any: + 'copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]]) -> dst\n. @brief Forms a border around an image.\n. \n. The function copies the source image into the middle of the destination image. The areas to the\n. left, to the right, above and below the copied source image will be filled with extrapolated\n. pixels. This is not what filtering functions based on it do (they extrapolate pixels on-fly), but\n. what other more complex functions, including your own, may do to simplify image boundary handling.\n. \n. The function supports the mode when src is already in the middle of dst . In this case, the\n. function does not copy src itself but simply constructs the border, for example:\n. \n. @code{.cpp}\n. // let border be the same in all directions\n. int border=2;\n. // constructs a larger image to fit both the image and the border\n. Mat gray_buf(rgb.rows + border*2, rgb.cols + border*2, rgb.depth());\n. // select the middle part of it w/o copying data\n. Mat gray(gray_canvas, Rect(border, border, rgb.cols, rgb.rows));\n. // convert image from RGB to grayscale\n. cvtColor(rgb, gray, COLOR_RGB2GRAY);\n. // form a border in-place\n. copyMakeBorder(gray, gray_buf, border, border,\n. border, border, BORDER_REPLICATE);\n. // now do some custom filtering ...\n. ...\n. @endcode\n. @note When the source image is a part (ROI) of a bigger image, the function will try to use the\n. pixels outside of the ROI to form a border. To disable this feature and always do extrapolation, as\n. if src was not a ROI, use borderType | #BORDER_ISOLATED.\n. \n. @param src Source image.\n. @param dst Destination image of the same type as src and the size Size(src.cols+left+right,\n. src.rows+top+bottom) .\n. @param top the top pixels\n. @param bottom the bottom pixels\n. @param left the left pixels\n. @param right Parameter specifying how many pixels in each direction from the source image rectangle\n. to extrapolate. For example, top=1, bottom=1, left=1, right=1 mean that 1 pixel-wide border needs\n. to be built.\n. @param borderType Border type. See borderInterpolate for details.\n. @param value Border value if borderType==BORDER_CONSTANT .\n. \n. @sa borderInterpolate' + ... + + +def copyTo(src: ndarray, mask: ndarray, dts: ndarray = ...) -> typing.Any: + 'copyTo(src, mask[, dst]) -> dst\n. @brief This is an overloaded member function, provided for convenience (python)\n. Copies the matrix to another one.\n. When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, the newly allocated matrix is initialized with all zeros before copying the data.\n. @param src source matrix.\n. @param dst Destination matrix. If it does not have a proper size or type before the operation, it is\n. reallocated.\n. @param mask Operation mask of the same size as \\*this. Its non-zero elements indicate which matrix\n. elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels.' + ... + + +def cornerEigenValsAndVecs(src: ndarray, blockSize, ksize, dts: ndarray = ..., borderType=...) -> typing.Any: + 'cornerEigenValsAndVecs(src, blockSize, ksize[, dst[, borderType]]) -> dst\n. @brief Calculates eigenvalues and eigenvectors of image blocks for corner detection.\n. \n. For every pixel \\f$p\\f$ , the function cornerEigenValsAndVecs considers a blockSize \\f$\\times\\f$ blockSize\n. neighborhood \\f$S(p)\\f$ . It calculates the covariation matrix of derivatives over the neighborhood as:\n. \n. \\f[M = \\begin{bmatrix} \\sum _{S(p)}(dI/dx)^2 & \\sum _{S(p)}dI/dx dI/dy \\\\ \\sum _{S(p)}dI/dx dI/dy & \\sum _{S(p)}(dI/dy)^2 \\end{bmatrix}\\f]\n. \n. where the derivatives are computed using the Sobel operator.\n. \n. After that, it finds eigenvectors and eigenvalues of \\f$M\\f$ and stores them in the destination image as\n. \\f$(\\lambda_1, \\lambda_2, x_1, y_1, x_2, y_2)\\f$ where\n. \n. - \\f$\\lambda_1, \\lambda_2\\f$ are the non-sorted eigenvalues of \\f$M\\f$\n. - \\f$x_1, y_1\\f$ are the eigenvectors corresponding to \\f$\\lambda_1\\f$\n. - \\f$x_2, y_2\\f$ are the eigenvectors corresponding to \\f$\\lambda_2\\f$\n. \n. The output of the function can be used for robust edge or corner detection.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the results. It has the same size as src and the type CV_32FC(6) .\n. @param blockSize Neighborhood size (see details below).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.\n. \n. @sa cornerMinEigenVal, cornerHarris, preCornerDetect' + ... + + +def cornerHarris(src: ndarray, blockSize, ksize, k, dts: ndarray = ..., borderType=...) -> typing.Any: + 'cornerHarris(src, blockSize, ksize, k[, dst[, borderType]]) -> dst\n. @brief Harris corner detector.\n. \n. The function runs the Harris corner detector on the image. Similarly to cornerMinEigenVal and\n. cornerEigenValsAndVecs , for each pixel \\f$(x, y)\\f$ it calculates a \\f$2\\times2\\f$ gradient covariance\n. matrix \\f$M^{(x,y)}\\f$ over a \\f$\\texttt{blockSize} \\times \\texttt{blockSize}\\f$ neighborhood. Then, it\n. computes the following characteristic:\n. \n. \\f[\\texttt{dst} (x,y) = \\mathrm{det} M^{(x,y)} - k \\cdot \\left ( \\mathrm{tr} M^{(x,y)} \\right )^2\\f]\n. \n. Corners in the image can be found as the local maxima of this response map.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the Harris detector responses. It has the type CV_32FC1 and the same\n. size as src .\n. @param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param k Harris detector free parameter. See the formula above.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' + ... + + +def cornerMinEigenVal(src: ndarray, blockSize, dts: ndarray = ..., ksize=..., borderType=...) -> typing.Any: + 'cornerMinEigenVal(src, blockSize[, dst[, ksize[, borderType]]]) -> dst\n. @brief Calculates the minimal eigenvalue of gradient matrices for corner detection.\n. \n. The function is similar to cornerEigenValsAndVecs but it calculates and stores only the minimal\n. eigenvalue of the covariance matrix of derivatives, that is, \\f$\\min(\\lambda_1, \\lambda_2)\\f$ in terms\n. of the formulae in the cornerEigenValsAndVecs description.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the minimal eigenvalues. It has the type CV_32FC1 and the same size as\n. src .\n. @param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' + ... + + +def cornerSubPix(image: ndarray, corners, winSize, zeroZone, criteria) -> typing.Any: + 'cornerSubPix(image, corners, winSize, zeroZone, criteria) -> corners\n. @brief Refines the corner locations.\n. \n. The function iterates to find the sub-pixel accurate location of corners or radial saddle points, as\n. shown on the figure below.\n. \n. ![image](pics/cornersubpix.png)\n. \n. Sub-pixel accurate corner locator is based on the observation that every vector from the center \\f$q\\f$\n. to a point \\f$p\\f$ located within a neighborhood of \\f$q\\f$ is orthogonal to the image gradient at \\f$p\\f$\n. subject to image and measurement noise. Consider the expression:\n. \n. \\f[\\epsilon _i = {DI_{p_i}}^T \\cdot (q - p_i)\\f]\n. \n. where \\f${DI_{p_i}}\\f$ is an image gradient at one of the points \\f$p_i\\f$ in a neighborhood of \\f$q\\f$ . The\n. value of \\f$q\\f$ is to be found so that \\f$\\epsilon_i\\f$ is minimized. A system of equations may be set up\n. with \\f$\\epsilon_i\\f$ set to zero:\n. \n. \\f[\\sum _i(DI_{p_i} \\cdot {DI_{p_i}}^T) \\cdot q - \\sum _i(DI_{p_i} \\cdot {DI_{p_i}}^T \\cdot p_i)\\f]\n. \n. where the gradients are summed within a neighborhood ("search window") of \\f$q\\f$ . Calling the first\n. gradient term \\f$G\\f$ and the second gradient term \\f$b\\f$ gives:\n. \n. \\f[q = G^{-1} \\cdot b\\f]\n. \n. The algorithm sets the center of the neighborhood window at this new center \\f$q\\f$ and then iterates\n. until the center stays within a set threshold.\n. \n. @param image Input single-channel, 8-bit or float image.\n. @param corners Initial coordinates of the input corners and refined coordinates provided for\n. output.\n. @param winSize Half of the side length of the search window. For example, if winSize=Size(5,5) ,\n. then a \\f$(5*2+1) \\times (5*2+1) = 11 \\times 11\\f$ search window is used.\n. @param zeroZone Half of the size of the dead region in the middle of the search zone over which\n. the summation in the formula below is not done. It is used sometimes to avoid possible\n. singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such\n. a size.\n. @param criteria Criteria for termination of the iterative process of corner refinement. That is,\n. the process of corner position refinement stops either after criteria.maxCount iterations or when\n. the corner position moves by less than criteria.epsilon on some iteration.' + ... + + +def correctMatches(F, points1, points2, newPoints1=..., newPoints2=...) -> typing.Any: + 'correctMatches(F, points1, points2[, newPoints1[, newPoints2]]) -> newPoints1, newPoints2\n. @brief Refines coordinates of corresponding points.\n. \n. @param F 3x3 fundamental matrix.\n. @param points1 1xN array containing the first set of points.\n. @param points2 1xN array containing the second set of points.\n. @param newPoints1 The optimized points1.\n. @param newPoints2 The optimized points2.\n. \n. The function implements the Optimal Triangulation Method (see Multiple View Geometry for details).\n. For each given point correspondence points1[i] \\<-\\> points2[i], and a fundamental matrix F, it\n. computes the corrected correspondences newPoints1[i] \\<-\\> newPoints2[i] that minimize the geometric\n. error \\f$d(points1[i], newPoints1[i])^2 + d(points2[i],newPoints2[i])^2\\f$ (where \\f$d(a,b)\\f$ is the\n. geometric distance between points \\f$a\\f$ and \\f$b\\f$ ) subject to the epipolar constraint\n. \\f$newPoints2^T * F * newPoints1 = 0\\f$ .' + ... + + +def countNonZero(src) -> typing.Any: + 'countNonZero(src) -> retval\n. @brief Counts non-zero array elements.\n. \n. The function returns the number of non-zero elements in src :\n. \\f[\\sum _{I: \\; \\texttt{src} (I) \\ne0 } 1\\f]\n. @param src single-channel array.\n. @sa mean, meanStdDev, norm, minMaxLoc, calcCovarMatrix' + ... + + +def createAlignMTB(max_bits=..., exclude_range=..., cut=...) -> typing.Any: + 'createAlignMTB([, max_bits[, exclude_range[, cut]]]) -> retval\n. @brief Creates AlignMTB object\n. \n. @param max_bits logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are\n. usually good enough (31 and 63 pixels shift respectively).\n. @param exclude_range range for exclusion bitmap that is constructed to suppress noise around the\n. median value.\n. @param cut if true cuts images, otherwise fills the new regions with zeros.' + ... + + +def createBackgroundSubtractorKNN(history=..., dist2Threshold=..., detectShadows=...) -> typing.Any: + 'createBackgroundSubtractorKNN([, history[, dist2Threshold[, detectShadows]]]) -> retval\n. @brief Creates KNN Background Subtractor\n. \n. @param history Length of the history.\n. @param dist2Threshold Threshold on the squared distance between the pixel and the sample to decide\n. whether a pixel is close to that sample. This parameter does not affect the background update.\n. @param detectShadows If true, the algorithm will detect shadows and mark them. It decreases the\n. speed a bit, so if you do not need this feature, set the parameter to false.' + ... + + +def createBackgroundSubtractorMOG2(history=..., varThreshold=..., detectShadows=...) -> typing.Any: + 'createBackgroundSubtractorMOG2([, history[, varThreshold[, detectShadows]]]) -> retval\n. @brief Creates MOG2 Background Subtractor\n. \n. @param history Length of the history.\n. @param varThreshold Threshold on the squared Mahalanobis distance between the pixel and the model\n. to decide whether a pixel is well described by the background model. This parameter does not\n. affect the background update.\n. @param detectShadows If true, the algorithm will detect shadows and mark them. It decreases the\n. speed a bit, so if you do not need this feature, set the parameter to false.' + ... + + +def createButton(buttonName, onChange, userData=..., buttonType=..., initialButtonState=...) -> typing.Any: + 'createButton(buttonName, onChange [, userData, buttonType, initialButtonState]) -> None' + ... + + +def createCLAHE(clipLimit=..., tileGridSize=...) -> typing.Any: + 'createCLAHE([, clipLimit[, tileGridSize]]) -> retval\n. @brief Creates a smart pointer to a cv::CLAHE class and initializes it.\n. \n. @param clipLimit Threshold for contrast limiting.\n. @param tileGridSize Size of grid for histogram equalization. Input image will be divided into\n. equally sized rectangular tiles. tileGridSize defines the number of tiles in row and column.' + ... + + +def createCalibrateDebevec(samples=..., lambda_=..., random=...) -> typing.Any: + 'createCalibrateDebevec([, samples[, lambda[, random]]]) -> retval\n. @brief Creates CalibrateDebevec object\n. \n. @param samples number of pixel locations to use\n. @param lambda smoothness term weight. Greater values produce smoother results, but can alter the\n. response.\n. @param random if true sample pixel locations are chosen at random, otherwise they form a\n. rectangular grid.' + ... + + +def createCalibrateRobertson(max_iter=..., threshold=...) -> typing.Any: + 'createCalibrateRobertson([, max_iter[, threshold]]) -> retval\n. @brief Creates CalibrateRobertson object\n. \n. @param max_iter maximal number of Gauss-Seidel solver iterations.\n. @param threshold target difference between results of two successive steps of the minimization.' + ... + + +def createGeneralizedHoughBallard() -> typing.Any: + 'createGeneralizedHoughBallard() -> retval\n. @brief Creates a smart pointer to a cv::GeneralizedHoughBallard class and initializes it.' + ... + + +def createGeneralizedHoughGuil() -> typing.Any: + 'createGeneralizedHoughGuil() -> retval\n. @brief Creates a smart pointer to a cv::GeneralizedHoughGuil class and initializes it.' + ... + + +def createHanningWindow(winSize, type, dts: ndarray = ...) -> typing.Any: + 'createHanningWindow(winSize, type[, dst]) -> dst\n. @brief This function computes a Hanning window coefficients in two dimensions.\n. \n. See (http://en.wikipedia.org/wiki/Hann_function) and (http://en.wikipedia.org/wiki/Window_function)\n. for more information.\n. \n. An example is shown below:\n. @code\n. // create hanning window of size 100x100 and type CV_32F\n. Mat hann;\n. createHanningWindow(hann, Size(100, 100), CV_32F);\n. @endcode\n. @param dst Destination array to place Hann coefficients in\n. @param winSize The window size specifications (both width and height must be > 1)\n. @param type Created array type' + ... + + +def createLineSegmentDetector(_refine=..., _scale=..., _sigma_scale=..., _quant=..., _ang_th=..., _log_eps=..., _density_th=..., _n_bins=...) -> typing.Any: + 'createLineSegmentDetector([, _refine[, _scale[, _sigma_scale[, _quant[, _ang_th[, _log_eps[, _density_th[, _n_bins]]]]]]]]) -> retval\n. @brief Creates a smart pointer to a LineSegmentDetector object and initializes it.\n. \n. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want\n. to edit those, as to tailor it for their own application.\n. \n. @param _refine The way found lines will be refined, see #LineSegmentDetectorModes\n. @param _scale The scale of the image that will be used to find the lines. Range (0..1].\n. @param _sigma_scale Sigma for Gaussian filter. It is computed as sigma = _sigma_scale/_scale.\n. @param _quant Bound to the quantization error on the gradient norm.\n. @param _ang_th Gradient angle tolerance in degrees.\n. @param _log_eps Detection threshold: -log10(NFA) \\> log_eps. Used only when advance refinement\n. is chosen.\n. @param _density_th Minimal density of aligned region points in the enclosing rectangle.\n. @param _n_bins Number of bins in pseudo-ordering of gradient modulus.\n. \n. @note Implementation has been removed due original code license conflict' + ... + + +def createMergeDebevec() -> typing.Any: + 'createMergeDebevec() -> retval\n. @brief Creates MergeDebevec object' + ... + + +def createMergeMertens(contrast_weight=..., saturation_weight=..., exposure_weight=...) -> typing.Any: + 'createMergeMertens([, contrast_weight[, saturation_weight[, exposure_weight]]]) -> retval\n. @brief Creates MergeMertens object\n. \n. @param contrast_weight contrast measure weight. See MergeMertens.\n. @param saturation_weight saturation measure weight\n. @param exposure_weight well-exposedness measure weight' + ... + + +def createMergeRobertson() -> typing.Any: + 'createMergeRobertson() -> retval\n. @brief Creates MergeRobertson object' + ... + + +def createTonemap(gamma=...) -> typing.Any: + 'createTonemap([, gamma]) -> retval\n. @brief Creates simple linear mapper with gamma correction\n. \n. @param gamma positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma\n. equal to 2.2f is suitable for most displays.\n. Generally gamma \\> 1 brightens the image and gamma \\< 1 darkens it.' + ... + + +def createTonemapDrago(gamma=..., saturation=..., bias=...) -> typing.Any: + 'createTonemapDrago([, gamma[, saturation[, bias]]]) -> retval\n. @brief Creates TonemapDrago object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param saturation positive saturation enhancement value. 1.0 preserves saturation, values greater\n. than 1 increase saturation and values less than 1 decrease it.\n. @param bias value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best\n. results, default value is 0.85.' + ... + + +def createTonemapMantiuk(gamma=..., scale=..., saturation=...) -> typing.Any: + 'createTonemapMantiuk([, gamma[, scale[, saturation]]]) -> retval\n. @brief Creates TonemapMantiuk object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param scale contrast scale factor. HVS response is multiplied by this parameter, thus compressing\n. dynamic range. Values from 0.6 to 0.9 produce best results.\n. @param saturation saturation enhancement value. See createTonemapDrago' + ... + + +def createTonemapReinhard(gamma=..., intensity=..., light_adapt=..., color_adapt=...) -> typing.Any: + "createTonemapReinhard([, gamma[, intensity[, light_adapt[, color_adapt]]]]) -> retval\n. @brief Creates TonemapReinhard object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param intensity result intensity in [-8, 8] range. Greater intensity produces brighter results.\n. @param light_adapt light adaptation in [0, 1] range. If 1 adaptation is based only on pixel\n. value, if 0 it's global, otherwise it's a weighted mean of this two cases.\n. @param color_adapt chromatic adaptation in [0, 1] range. If 1 channels are treated independently,\n. if 0 adaptation level is the same for each channel." + ... + + +def createTrackbar(trackbarName, windowName, value, count, onChange) -> typing.Any: + 'createTrackbar(trackbarName, windowName, value, count, onChange) -> None' + ... + + +def cubeRoot(val) -> typing.Any: + 'cubeRoot(val) -> retval\n. @brief Computes the cube root of an argument.\n. \n. The function cubeRoot computes \\f$\\sqrt[3]{\\texttt{val}}\\f$. Negative arguments are handled correctly.\n. NaN and Inf are not handled. The accuracy approaches the maximum possible accuracy for\n. single-precision data.\n. @param val A function argument.' + ... + + +cuda_BufferPool = _mod_cv2.cuda_BufferPool +cuda_DeviceInfo = _mod_cv2.cuda_DeviceInfo +cuda_Event = _mod_cv2.cuda_Event +cuda_GpuMat = _mod_cv2.cuda_GpuMat +cuda_GpuMat_Allocator = _mod_cv2.cuda_GpuMat_Allocator +cuda_HostMem = _mod_cv2.cuda_HostMem +cuda_Stream = _mod_cv2.cuda_Stream +cuda_TargetArchs = _mod_cv2.cuda_TargetArchs + + +def cvtColor(src: ndarray, code: int, dts: ndarray = ..., dstCn: int = ...) -> ndarray: + 'cvtColor(src, code[, dst[, dstCn]]) -> dst\n. @brief Converts an image from one color space to another.\n. \n. The function converts an input image from one color space to another. In case of a transformation\n. to-from RGB color space, the order of the channels should be specified explicitly (RGB or BGR). Note\n. that the default color format in OpenCV is often referred to as RGB but it is actually BGR (the\n. bytes are reversed). So the first byte in a standard (24-bit) color image will be an 8-bit Blue\n. component, the second byte will be Green, and the third byte will be Red. The fourth, fifth, and\n. sixth bytes would then be the second pixel (Blue, then Green, then Red), and so on.\n. \n. The conventional ranges for R, G, and B channel values are:\n. - 0 to 255 for CV_8U images\n. - 0 to 65535 for CV_16U images\n. - 0 to 1 for CV_32F images\n. \n. In case of linear transformations, the range does not matter. But in case of a non-linear\n. transformation, an input RGB image should be normalized to the proper value range to get the correct\n. results, for example, for RGB \\f$\\rightarrow\\f$ L\\*u\\*v\\* transformation. For example, if you have a\n. 32-bit floating-point image directly converted from an 8-bit image without any scaling, then it will\n. have the 0..255 value range instead of 0..1 assumed by the function. So, before calling #cvtColor ,\n. you need first to scale the image down:\n. @code\n. img *= 1./255;\n. cvtColor(img, img, COLOR_BGR2Luv);\n. @endcode\n. If you use #cvtColor with 8-bit images, the conversion will have some information lost. For many\n. applications, this will not be noticeable but it is recommended to use 32-bit images in applications\n. that need the full range of colors or that convert an image before an operation and then convert\n. back.\n. \n. If conversion adds the alpha channel, its value will set to the maximum of corresponding channel\n. range: 255 for CV_8U, 65535 for CV_16U, 1 for CV_32F.\n. \n. @param src input image: 8-bit unsigned, 16-bit unsigned ( CV_16UC... ), or single-precision\n. floating-point.\n. @param dst output image of the same size and depth as src.\n. @param code color space conversion code (see #ColorConversionCodes).\n. @param dstCn number of channels in the destination image; if the parameter is 0, the number of the\n. channels is derived automatically from src and code.\n. \n. @see @ref imgproc_color_conversions' + ... + + +def cvtColorTwoPlane(src1: ndarray, src2: ndarray, code: int, dts: ndarray = ...) -> typing.Any: + 'cvtColorTwoPlane(src1, src2, code[, dst]) -> dst\n. @brief Converts an image from one color space to another where the source image is\n. stored in two planes.\n. \n. This function only supports YUV420 to RGB conversion as of now.\n. \n. @param src1: 8-bit image (#CV_8U) of the Y plane.\n. @param src2: image containing interleaved U/V plane.\n. @param dst: output image.\n. @param code: Specifies the type of conversion. It can take any of the following values:\n. - #COLOR_YUV2BGR_NV12\n. - #COLOR_YUV2RGB_NV12\n. - #COLOR_YUV2BGRA_NV12\n. - #COLOR_YUV2RGBA_NV12\n. - #COLOR_YUV2BGR_NV21\n. - #COLOR_YUV2RGB_NV21\n. - #COLOR_YUV2BGRA_NV21\n. - #COLOR_YUV2RGBA_NV21' + ... + + +def dct(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'dct(src[, dst[, flags]]) -> dst\n. @brief Performs a forward or inverse discrete Cosine transform of 1D or 2D array.\n. \n. The function cv::dct performs a forward or inverse discrete Cosine transform (DCT) of a 1D or 2D\n. floating-point array:\n. - Forward Cosine transform of a 1D vector of N elements:\n. \\f[Y = C^{(N)} \\cdot X\\f]\n. where\n. \\f[C^{(N)}_{jk}= \\sqrt{\\alpha_j/N} \\cos \\left ( \\frac{\\pi(2k+1)j}{2N} \\right )\\f]\n. and\n. \\f$\\alpha_0=1\\f$, \\f$\\alpha_j=2\\f$ for *j \\> 0*.\n. - Inverse Cosine transform of a 1D vector of N elements:\n. \\f[X = \\left (C^{(N)} \\right )^{-1} \\cdot Y = \\left (C^{(N)} \\right )^T \\cdot Y\\f]\n. (since \\f$C^{(N)}\\f$ is an orthogonal matrix, \\f$C^{(N)} \\cdot \\left(C^{(N)}\\right)^T = I\\f$ )\n. - Forward 2D Cosine transform of M x N matrix:\n. \\f[Y = C^{(N)} \\cdot X \\cdot \\left (C^{(N)} \\right )^T\\f]\n. - Inverse 2D Cosine transform of M x N matrix:\n. \\f[X = \\left (C^{(N)} \\right )^T \\cdot X \\cdot C^{(N)}\\f]\n. \n. The function chooses the mode of operation by looking at the flags and size of the input array:\n. - If (flags & #DCT_INVERSE) == 0 , the function does a forward 1D or 2D transform. Otherwise, it\n. is an inverse 1D or 2D transform.\n. - If (flags & #DCT_ROWS) != 0 , the function performs a 1D transform of each row.\n. - If the array is a single column or a single row, the function performs a 1D transform.\n. - If none of the above is true, the function performs a 2D transform.\n. \n. @note Currently dct supports even-size arrays (2, 4, 6 ...). For data analysis and approximation, you\n. can pad the array when necessary.\n. Also, the function performance depends very much, and not monotonically, on the array size (see\n. getOptimalDFTSize ). In the current implementation DCT of a vector of size N is calculated via DFT\n. of a vector of size N/2 . Thus, the optimal DCT size N1 \\>= N can be calculated as:\n. @code\n. size_t getOptimalDCTSize(size_t N) { return 2*getOptimalDFTSize((N+1)/2); }\n. N1 = getOptimalDCTSize(N);\n. @endcode\n. @param src input floating-point array.\n. @param dst output array of the same size and type as src .\n. @param flags transformation flags as a combination of cv::DftFlags (DCT_*)\n. @sa dft , getOptimalDFTSize , idct' + ... + + +def decolor(src: ndarray, grayscale=..., color_boost=...) -> typing.Any: + 'decolor(src[, grayscale[, color_boost]]) -> grayscale, color_boost\n. @brief Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized\n. black-and-white photograph rendering, and in many single channel image processing applications\n. @cite CL12 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param grayscale Output 8-bit 1-channel image.\n. @param color_boost Output 8-bit 3-channel image.\n. \n. This function is to be applied on color images.' + ... + + +def decomposeEssentialMat(E, R1=..., R2=..., t=...) -> typing.Any: + "decomposeEssentialMat(E[, R1[, R2[, t]]]) -> R1, R2, t\n. @brief Decompose an essential matrix to possible rotations and translation.\n. \n. @param E The input essential matrix.\n. @param R1 One possible rotation matrix.\n. @param R2 Another possible rotation matrix.\n. @param t One possible translation.\n. \n. This function decomposes the essential matrix E using svd decomposition @cite HartleyZ00. In\n. general, four possible poses exist for the decomposition of E. They are \\f$[R_1, t]\\f$,\n. \\f$[R_1, -t]\\f$, \\f$[R_2, t]\\f$, \\f$[R_2, -t]\\f$.\n. \n. If E gives the epipolar constraint \\f$[p_2; 1]^T A^{-T} E A^{-1} [p_1; 1] = 0\\f$ between the image\n. points \\f$p_1\\f$ in the first image and \\f$p_2\\f$ in second image, then any of the tuples\n. \\f$[R_1, t]\\f$, \\f$[R_1, -t]\\f$, \\f$[R_2, t]\\f$, \\f$[R_2, -t]\\f$ is a change of basis from the first\n. camera's coordinate system to the second camera's coordinate system. However, by decomposing E, one\n. can only get the direction of the translation. For this reason, the translation t is returned with\n. unit length." + ... + + +def decomposeHomographyMat(H, K, rotations=..., translations=..., normals=...) -> typing.Any: + "decomposeHomographyMat(H, K[, rotations[, translations[, normals]]]) -> retval, rotations, translations, normals\n. @brief Decompose a homography matrix to rotation(s), translation(s) and plane normal(s).\n. \n. @param H The input homography matrix between two images.\n. @param K The input intrinsic camera calibration matrix.\n. @param rotations Array of rotation matrices.\n. @param translations Array of translation matrices.\n. @param normals Array of plane normal matrices.\n. \n. This function extracts relative camera motion between two views of a planar object and returns up to\n. four mathematical solution tuples of rotation, translation, and plane normal. The decomposition of\n. the homography matrix H is described in detail in @cite Malis.\n. \n. If the homography H, induced by the plane, gives the constraint\n. \\f[s_i \\vecthree{x'_i}{y'_i}{1} \\sim H \\vecthree{x_i}{y_i}{1}\\f] on the source image points\n. \\f$p_i\\f$ and the destination image points \\f$p'_i\\f$, then the tuple of rotations[k] and\n. translations[k] is a change of basis from the source camera's coordinate system to the destination\n. camera's coordinate system. However, by decomposing H, one can only get the translation normalized\n. by the (typically unknown) depth of the scene, i.e. its direction but with normalized length.\n. \n. If point correspondences are available, at least two solutions may further be invalidated, by\n. applying positive depth constraint, i.e. all points must be in front of the camera." + ... + + +def decomposeProjectionMatrix(projMatrix, cameraMatrix=..., rotMatrix=..., transVect=..., rotMatrixX=..., rotMatrixY=..., rotMatrixZ=..., eulerAngles=...) -> typing.Any: + 'decomposeProjectionMatrix(projMatrix[, cameraMatrix[, rotMatrix[, transVect[, rotMatrixX[, rotMatrixY[, rotMatrixZ[, eulerAngles]]]]]]]) -> cameraMatrix, rotMatrix, transVect, rotMatrixX, rotMatrixY, rotMatrixZ, eulerAngles\n. @brief Decomposes a projection matrix into a rotation matrix and a camera matrix.\n. \n. @param projMatrix 3x4 input projection matrix P.\n. @param cameraMatrix Output 3x3 camera matrix K.\n. @param rotMatrix Output 3x3 external rotation matrix R.\n. @param transVect Output 4x1 translation vector T.\n. @param rotMatrixX Optional 3x3 rotation matrix around x-axis.\n. @param rotMatrixY Optional 3x3 rotation matrix around y-axis.\n. @param rotMatrixZ Optional 3x3 rotation matrix around z-axis.\n. @param eulerAngles Optional three-element vector containing three Euler angles of rotation in\n. degrees.\n. \n. The function computes a decomposition of a projection matrix into a calibration and a rotation\n. matrix and the position of a camera.\n. \n. It optionally returns three rotation matrices, one for each axis, and three Euler angles that could\n. be used in OpenGL. Note, there is always more than one sequence of rotations about the three\n. principal axes that results in the same orientation of an object, e.g. see @cite Slabaugh . Returned\n. tree rotation matrices and corresponding three Euler angles are only one of the possible solutions.\n. \n. The function is based on RQDecomp3x3 .' + ... + + +def demosaicing(src: ndarray, code: int, dts: ndarray = ..., dstCn: int = ...) -> typing.Any: + 'demosaicing(src, code[, dst[, dstCn]]) -> dst\n. @brief main function for all demosaicing processes\n. \n. @param src input image: 8-bit unsigned or 16-bit unsigned.\n. @param dst output image of the same size and depth as src.\n. @param code Color space conversion code (see the description below).\n. @param dstCn number of channels in the destination image; if the parameter is 0, the number of the\n. channels is derived automatically from src and code.\n. \n. The function can do the following transformations:\n. \n. - Demosaicing using bilinear interpolation\n. \n. #COLOR_BayerBG2BGR , #COLOR_BayerGB2BGR , #COLOR_BayerRG2BGR , #COLOR_BayerGR2BGR\n. \n. #COLOR_BayerBG2GRAY , #COLOR_BayerGB2GRAY , #COLOR_BayerRG2GRAY , #COLOR_BayerGR2GRAY\n. \n. - Demosaicing using Variable Number of Gradients.\n. \n. #COLOR_BayerBG2BGR_VNG , #COLOR_BayerGB2BGR_VNG , #COLOR_BayerRG2BGR_VNG , #COLOR_BayerGR2BGR_VNG\n. \n. - Edge-Aware Demosaicing.\n. \n. #COLOR_BayerBG2BGR_EA , #COLOR_BayerGB2BGR_EA , #COLOR_BayerRG2BGR_EA , #COLOR_BayerGR2BGR_EA\n. \n. - Demosaicing with alpha channel\n. \n. #COLOR_BayerBG2BGRA , #COLOR_BayerGB2BGRA , #COLOR_BayerRG2BGRA , #COLOR_BayerGR2BGRA\n. \n. @sa cvtColor' + ... + + +def denoise_TVL1(observations, result, lambda_=..., niters=...) -> typing.Any: + "denoise_TVL1(observations, result[, lambda[, niters]]) -> None\n. @brief Primal-dual algorithm is an algorithm for solving special types of variational problems (that is,\n. finding a function to minimize some functional). As the image denoising, in particular, may be seen\n. as the variational problem, primal-dual algorithm then can be used to perform denoising and this is\n. exactly what is implemented.\n. \n. It should be noted, that this implementation was taken from the July 2013 blog entry\n. @cite MA13 , which also contained (slightly more general) ready-to-use source code on Python.\n. Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end\n. of July 2013 and finally it was slightly adapted by later authors.\n. \n. Although the thorough discussion and justification of the algorithm involved may be found in\n. @cite ChambolleEtAl, it might make sense to skim over it here, following @cite MA13 . To begin\n. with, we consider the 1-byte gray-level images as the functions from the rectangular domain of\n. pixels (it may be seen as set\n. \\f$\\left\\{(x,y)\\in\\mathbb{N}\\times\\mathbb{N}\\mid 1\\leq x\\leq n,\\;1\\leq y\\leq m\\right\\}\\f$ for some\n. \\f$m,\\;n\\in\\mathbb{N}\\f$) into \\f$\\{0,1,\\dots,255\\}\\f$. We shall denote the noised images as \\f$f_i\\f$ and with\n. this view, given some image \\f$x\\f$ of the same size, we may measure how bad it is by the formula\n. \n. \\f[\\left\\|\\left\\|\\nabla x\\right\\|\\right\\| + \\lambda\\sum_i\\left\\|\\left\\|x-f_i\\right\\|\\right\\|\\f]\n. \n. \\f$\\|\\|\\cdot\\|\\|\\f$ here denotes \\f$L_2\\f$-norm and as you see, the first addend states that we want our\n. image to be smooth (ideally, having zero gradient, thus being constant) and the second states that\n. we want our result to be close to the observations we've got. If we treat \\f$x\\f$ as a function, this is\n. exactly the functional what we seek to minimize and here the Primal-Dual algorithm comes into play.\n. \n. @param observations This array should contain one or more noised versions of the image that is to\n. be restored.\n. @param result Here the denoised image will be stored. There is no need to do pre-allocation of\n. storage space, as it will be automatically allocated, if necessary.\n. @param lambda Corresponds to \\f$\\lambda\\f$ in the formulas above. As it is enlarged, the smooth\n. (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly\n. speaking, as it becomes smaller, the result will be more blur but more sever outliers will be\n. removed.\n. @param niters Number of iterations that the algorithm will run. Of course, as more iterations as\n. better, but it is hard to quantitatively refine this statement, so just use the default and\n. increase it if the results are poor." + ... + + +def destroyAllWindows() -> typing.Any: + 'destroyAllWindows() -> None\n. @brief Destroys all of the HighGUI windows.\n. \n. The function destroyAllWindows destroys all of the opened HighGUI windows.' + ... + + +def destroyWindow(winname) -> typing.Any: + 'destroyWindow(winname) -> None\n. @brief Destroys the specified window.\n. \n. The function destroyWindow destroys the window with the given name.\n. \n. @param winname Name of the window to be destroyed.' + ... + + +def detailEnhance(src: ndarray, dts: ndarray = ..., sigma_s=..., sigma_r=...) -> typing.Any: + 'detailEnhance(src[, dst[, sigma_s[, sigma_r]]]) -> dst\n. @brief This filter enhances the details of a particular image.\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' + ... + + +detail_AffineBasedEstimator = _mod_cv2.detail_AffineBasedEstimator +detail_AffineBestOf2NearestMatcher = _mod_cv2.detail_AffineBestOf2NearestMatcher +detail_BestOf2NearestMatcher = _mod_cv2.detail_BestOf2NearestMatcher +detail_BestOf2NearestRangeMatcher = _mod_cv2.detail_BestOf2NearestRangeMatcher +detail_Blender = _mod_cv2.detail_Blender +detail_BlocksChannelsCompensator = _mod_cv2.detail_BlocksChannelsCompensator +detail_BlocksCompensator = _mod_cv2.detail_BlocksCompensator +detail_BlocksGainCompensator = _mod_cv2.detail_BlocksGainCompensator +detail_BundleAdjusterAffine = _mod_cv2.detail_BundleAdjusterAffine +detail_BundleAdjusterAffinePartial = _mod_cv2.detail_BundleAdjusterAffinePartial +detail_BundleAdjusterBase = _mod_cv2.detail_BundleAdjusterBase +detail_BundleAdjusterRay = _mod_cv2.detail_BundleAdjusterRay +detail_BundleAdjusterReproj = _mod_cv2.detail_BundleAdjusterReproj +detail_CameraParams = _mod_cv2.detail_CameraParams +detail_ChannelsCompensator = _mod_cv2.detail_ChannelsCompensator +detail_DpSeamFinder = _mod_cv2.detail_DpSeamFinder +detail_Estimator = _mod_cv2.detail_Estimator +detail_ExposureCompensator = _mod_cv2.detail_ExposureCompensator +detail_FeatherBlender = _mod_cv2.detail_FeatherBlender +detail_FeaturesMatcher = _mod_cv2.detail_FeaturesMatcher +detail_GainCompensator = _mod_cv2.detail_GainCompensator +detail_GraphCutSeamFinder = _mod_cv2.detail_GraphCutSeamFinder +detail_HomographyBasedEstimator = _mod_cv2.detail_HomographyBasedEstimator +detail_ImageFeatures = _mod_cv2.detail_ImageFeatures +detail_MatchesInfo = _mod_cv2.detail_MatchesInfo +detail_MultiBandBlender = _mod_cv2.detail_MultiBandBlender +detail_NoBundleAdjuster = _mod_cv2.detail_NoBundleAdjuster +detail_NoExposureCompensator = _mod_cv2.detail_NoExposureCompensator +detail_NoSeamFinder = _mod_cv2.detail_NoSeamFinder +detail_PairwiseSeamFinder = _mod_cv2.detail_PairwiseSeamFinder +detail_ProjectorBase = _mod_cv2.detail_ProjectorBase +detail_SeamFinder = _mod_cv2.detail_SeamFinder +detail_SphericalProjector = _mod_cv2.detail_SphericalProjector +detail_Timelapser = _mod_cv2.detail_Timelapser +detail_TimelapserCrop = _mod_cv2.detail_TimelapserCrop +detail_VoronoiSeamFinder = _mod_cv2.detail_VoronoiSeamFinder + + +def determinant(mtx) -> typing.Any: + 'determinant(mtx) -> retval\n. @brief Returns the determinant of a square floating-point matrix.\n. \n. The function cv::determinant calculates and returns the determinant of the\n. specified matrix. For small matrices ( mtx.cols=mtx.rows\\<=3 ), the\n. direct method is used. For larger matrices, the function uses LU\n. factorization with partial pivoting.\n. \n. For symmetric positively-determined matrices, it is also possible to use\n. eigen decomposition to calculate the determinant.\n. @param mtx input matrix that must have CV_32FC1 or CV_64FC1 type and\n. square size.\n. @sa trace, invert, solve, eigen, @ref MatrixExpressions' + ... + + +def dft(src: ndarray, dts: ndarray = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: + 'dft(src[, dst[, flags[, nonzeroRows]]]) -> dst\n. @brief Performs a forward or inverse Discrete Fourier transform of a 1D or 2D floating-point array.\n. \n. The function cv::dft performs one of the following:\n. - Forward the Fourier transform of a 1D vector of N elements:\n. \\f[Y = F^{(N)} \\cdot X,\\f]\n. where \\f$F^{(N)}_{jk}=\\exp(-2\\pi i j k/N)\\f$ and \\f$i=\\sqrt{-1}\\f$\n. - Inverse the Fourier transform of a 1D vector of N elements:\n. \\f[\\begin{array}{l} X\'= \\left (F^{(N)} \\right )^{-1} \\cdot Y = \\left (F^{(N)} \\right )^* \\cdot y \\\\ X = (1/N) \\cdot X, \\end{array}\\f]\n. where \\f$F^*=\\left(\\textrm{Re}(F^{(N)})-\\textrm{Im}(F^{(N)})\\right)^T\\f$\n. - Forward the 2D Fourier transform of a M x N matrix:\n. \\f[Y = F^{(M)} \\cdot X \\cdot F^{(N)}\\f]\n. - Inverse the 2D Fourier transform of a M x N matrix:\n. \\f[\\begin{array}{l} X\'= \\left (F^{(M)} \\right )^* \\cdot Y \\cdot \\left (F^{(N)} \\right )^* \\\\ X = \\frac{1}{M \\cdot N} \\cdot X\' \\end{array}\\f]\n. \n. In case of real (single-channel) data, the output spectrum of the forward Fourier transform or input\n. spectrum of the inverse Fourier transform can be represented in a packed format called *CCS*\n. (complex-conjugate-symmetrical). It was borrowed from IPL (Intel\\* Image Processing Library). Here\n. is how 2D *CCS* spectrum looks:\n. \\f[\\begin{bmatrix} Re Y_{0,0} & Re Y_{0,1} & Im Y_{0,1} & Re Y_{0,2} & Im Y_{0,2} & \\cdots & Re Y_{0,N/2-1} & Im Y_{0,N/2-1} & Re Y_{0,N/2} \\\\ Re Y_{1,0} & Re Y_{1,1} & Im Y_{1,1} & Re Y_{1,2} & Im Y_{1,2} & \\cdots & Re Y_{1,N/2-1} & Im Y_{1,N/2-1} & Re Y_{1,N/2} \\\\ Im Y_{1,0} & Re Y_{2,1} & Im Y_{2,1} & Re Y_{2,2} & Im Y_{2,2} & \\cdots & Re Y_{2,N/2-1} & Im Y_{2,N/2-1} & Im Y_{1,N/2} \\\\ \\hdotsfor{9} \\\\ Re Y_{M/2-1,0} & Re Y_{M-3,1} & Im Y_{M-3,1} & \\hdotsfor{3} & Re Y_{M-3,N/2-1} & Im Y_{M-3,N/2-1}& Re Y_{M/2-1,N/2} \\\\ Im Y_{M/2-1,0} & Re Y_{M-2,1} & Im Y_{M-2,1} & \\hdotsfor{3} & Re Y_{M-2,N/2-1} & Im Y_{M-2,N/2-1}& Im Y_{M/2-1,N/2} \\\\ Re Y_{M/2,0} & Re Y_{M-1,1} & Im Y_{M-1,1} & \\hdotsfor{3} & Re Y_{M-1,N/2-1} & Im Y_{M-1,N/2-1}& Re Y_{M/2,N/2} \\end{bmatrix}\\f]\n. \n. In case of 1D transform of a real vector, the output looks like the first row of the matrix above.\n. \n. So, the function chooses an operation mode depending on the flags and size of the input array:\n. - If #DFT_ROWS is set or the input array has a single row or single column, the function\n. performs a 1D forward or inverse transform of each row of a matrix when #DFT_ROWS is set.\n. Otherwise, it performs a 2D transform.\n. - If the input array is real and #DFT_INVERSE is not set, the function performs a forward 1D or\n. 2D transform:\n. - When #DFT_COMPLEX_OUTPUT is set, the output is a complex matrix of the same size as\n. input.\n. - When #DFT_COMPLEX_OUTPUT is not set, the output is a real matrix of the same size as\n. input. In case of 2D transform, it uses the packed format as shown above. In case of a\n. single 1D transform, it looks like the first row of the matrix above. In case of\n. multiple 1D transforms (when using the #DFT_ROWS flag), each row of the output matrix\n. looks like the first row of the matrix above.\n. - If the input array is complex and either #DFT_INVERSE or #DFT_REAL_OUTPUT are not set, the\n. output is a complex array of the same size as input. The function performs a forward or\n. inverse 1D or 2D transform of the whole input array or each row of the input array\n. independently, depending on the flags DFT_INVERSE and DFT_ROWS.\n. - When #DFT_INVERSE is set and the input array is real, or it is complex but #DFT_REAL_OUTPUT\n. is set, the output is a real array of the same size as input. The function performs a 1D or 2D\n. inverse transformation of the whole input array or each individual row, depending on the flags\n. #DFT_INVERSE and #DFT_ROWS.\n. \n. If #DFT_SCALE is set, the scaling is done after the transformation.\n. \n. Unlike dct , the function supports arrays of arbitrary size. But only those arrays are processed\n. efficiently, whose sizes can be factorized in a product of small prime numbers (2, 3, and 5 in the\n. current implementation). Such an efficient DFT size can be calculated using the getOptimalDFTSize\n. method.\n. \n. The sample below illustrates how to calculate a DFT-based convolution of two 2D real arrays:\n. @code\n. void convolveDFT(InputArray A, InputArray B, OutputArray C)\n. {\n. // reallocate the output array if needed\n. C.create(abs(A.rows - B.rows)+1, abs(A.cols - B.cols)+1, A.type());\n. Size dftSize;\n. // calculate the size of DFT transform\n. dftSize.width = getOptimalDFTSize(A.cols + B.cols - 1);\n. dftSize.height = getOptimalDFTSize(A.rows + B.rows - 1);\n. \n. // allocate temporary buffers and initialize them with 0\'s\n. Mat tempA(dftSize, A.type(), Scalar::all(0));\n. Mat tempB(dftSize, B.type(), Scalar::all(0));\n. \n. // copy A and B to the top-left corners of tempA and tempB, respectively\n. Mat roiA(tempA, Rect(0,0,A.cols,A.rows));\n. A.copyTo(roiA);\n. Mat roiB(tempB, Rect(0,0,B.cols,B.rows));\n. B.copyTo(roiB);\n. \n. // now transform the padded A & B in-place;\n. // use "nonzeroRows" hint for faster processing\n. dft(tempA, tempA, 0, A.rows);\n. dft(tempB, tempB, 0, B.rows);\n. \n. // multiply the spectrums;\n. // the function handles packed spectrum representations well\n. mulSpectrums(tempA, tempB, tempA);\n. \n. // transform the product back from the frequency domain.\n. // Even though all the result rows will be non-zero,\n. // you need only the first C.rows of them, and thus you\n. // pass nonzeroRows == C.rows\n. dft(tempA, tempA, DFT_INVERSE + DFT_SCALE, C.rows);\n. \n. // now copy the result back to C.\n. tempA(Rect(0, 0, C.cols, C.rows)).copyTo(C);\n. \n. // all the temporary buffers will be deallocated automatically\n. }\n. @endcode\n. To optimize this sample, consider the following approaches:\n. - Since nonzeroRows != 0 is passed to the forward transform calls and since A and B are copied to\n. the top-left corners of tempA and tempB, respectively, it is not necessary to clear the whole\n. tempA and tempB. It is only necessary to clear the tempA.cols - A.cols ( tempB.cols - B.cols)\n. rightmost columns of the matrices.\n. - This DFT-based convolution does not have to be applied to the whole big arrays, especially if B\n. is significantly smaller than A or vice versa. Instead, you can calculate convolution by parts.\n. To do this, you need to split the output array C into multiple tiles. For each tile, estimate\n. which parts of A and B are required to calculate convolution in this tile. If the tiles in C are\n. too small, the speed will decrease a lot because of repeated work. In the ultimate case, when\n. each tile in C is a single pixel, the algorithm becomes equivalent to the naive convolution\n. algorithm. If the tiles are too big, the temporary arrays tempA and tempB become too big and\n. there is also a slowdown because of bad cache locality. So, there is an optimal tile size\n. somewhere in the middle.\n. - If different tiles in C can be calculated in parallel and, thus, the convolution is done by\n. parts, the loop can be threaded.\n. \n. All of the above improvements have been implemented in #matchTemplate and #filter2D . Therefore, by\n. using them, you can get the performance even better than with the above theoretically optimal\n. implementation. Though, those two functions actually calculate cross-correlation, not convolution,\n. so you need to "flip" the second convolution operand B vertically and horizontally using flip .\n. @note\n. - An example using the discrete fourier transform can be found at\n. opencv_source_code/samples/cpp/dft.cpp\n. - (Python) An example using the dft functionality to perform Wiener deconvolution can be found\n. at opencv_source/samples/python/deconvolution.py\n. - (Python) An example rearranging the quadrants of a Fourier image can be found at\n. opencv_source/samples/python/dft.py\n. @param src input array that could be real or complex.\n. @param dst output array whose size and type depends on the flags .\n. @param flags transformation flags, representing a combination of the #DftFlags\n. @param nonzeroRows when the parameter is not zero, the function assumes that only the first\n. nonzeroRows rows of the input array (#DFT_INVERSE is not set) or only the first nonzeroRows of the\n. output array (#DFT_INVERSE is set) contain non-zeros, thus, the function can handle the rest of the\n. rows more efficiently and save some time; this technique is very useful for calculating array\n. cross-correlation or convolution using DFT.\n. @sa dct , getOptimalDFTSize , mulSpectrums, filter2D , matchTemplate , flip , cartToPolar ,\n. magnitude , phase' + ... + + +def dilate(src: ndarray, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: + "dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Dilates an image by using a specific structuring element.\n. \n. The function dilates the source image using the specified structuring element that determines the\n. shape of a pixel neighborhood over which the maximum is taken:\n. \\f[\\texttt{dst} (x,y) = \\max _{(x',y'): \\, \\texttt{element} (x',y') \\ne0 } \\texttt{src} (x+x',y+y')\\f]\n. \n. The function supports the in-place mode. Dilation can be applied several ( iterations ) times. In\n. case of multi-channel images, each channel is processed independently.\n. \n. @param src input image; the number of channels can be arbitrary, but the depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param kernel structuring element used for dilation; if elemenat=Mat(), a 3 x 3 rectangular\n. structuring element is used. Kernel can be created using #getStructuringElement\n. @param anchor position of the anchor within the element; default value (-1, -1) means that the\n. anchor is at the element center.\n. @param iterations number of times dilation is applied.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not suported.\n. @param borderValue border value in case of a constant border\n. @sa erode, morphologyEx, getStructuringElement" + ... + + +def displayOverlay(winname, text, delayms=...) -> typing.Any: + 'displayOverlay(winname, text[, delayms]) -> None\n. @brief Displays a text on a window image as an overlay for a specified duration.\n. \n. The function displayOverlay displays useful information/tips on top of the window for a certain\n. amount of time *delayms*. The function does not modify the image, displayed in the window, that is,\n. after the specified delay the original content of the window is restored.\n. \n. @param winname Name of the window.\n. @param text Overlay text to write on a window image.\n. @param delayms The period (in milliseconds), during which the overlay text is displayed. If this\n. function is called before the previous overlay text timed out, the timer is restarted and the text\n. is updated. If this value is zero, the text never disappears.' + ... + + +def displayStatusBar(winname, text, delayms=...) -> typing.Any: + 'displayStatusBar(winname, text[, delayms]) -> None\n. @brief Displays a text on the window statusbar during the specified period of time.\n. \n. The function displayStatusBar displays useful information/tips on top of the window for a certain\n. amount of time *delayms* . This information is displayed on the window statusbar (the window must be\n. created with the CV_GUI_EXPANDED flags).\n. \n. @param winname Name of the window.\n. @param text Text to write on the window statusbar.\n. @param delayms Duration (in milliseconds) to display the text. If this function is called before\n. the previous text timed out, the timer is restarted and the text is updated. If this value is\n. zero, the text never disappears.' + ... + + +def distanceTransform(src: ndarray, distanceType, maskSize, dts: ndarray = ..., dstType=...) -> typing.Any: + 'distanceTransform(src, distanceType, maskSize[, dst[, dstType]]) -> dst\n. @overload\n. @param src 8-bit, single-channel (binary) source image.\n. @param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point,\n. single-channel image of the same size as src .\n. @param distanceType Type of distance, see #DistanceTypes\n. @param maskSize Size of the distance transform mask, see #DistanceTransformMasks. In case of the\n. #DIST_L1 or #DIST_C distance type, the parameter is forced to 3 because a \\f$3\\times 3\\f$ mask gives\n. the same result as \\f$5\\times 5\\f$ or any larger aperture.\n. @param dstType Type of output image. It can be CV_8U or CV_32F. Type CV_8U can be used only for\n. the first variant of the function and distanceType == #DIST_L1.' + ... + + +def distanceTransformWithLabels(src: ndarray, distanceType, maskSize, dts: ndarray = ..., labels=..., labelType=...) -> typing.Any: + "distanceTransformWithLabels(src, distanceType, maskSize[, dst[, labels[, labelType]]]) -> dst, labels\n. @brief Calculates the distance to the closest zero pixel for each pixel of the source image.\n. \n. The function cv::distanceTransform calculates the approximate or precise distance from every binary\n. image pixel to the nearest zero pixel. For zero image pixels, the distance will obviously be zero.\n. \n. When maskSize == #DIST_MASK_PRECISE and distanceType == #DIST_L2 , the function runs the\n. algorithm described in @cite Felzenszwalb04 . This algorithm is parallelized with the TBB library.\n. \n. In other cases, the algorithm @cite Borgefors86 is used. This means that for a pixel the function\n. finds the shortest path to the nearest zero pixel consisting of basic shifts: horizontal, vertical,\n. diagonal, or knight's move (the latest is available for a \\f$5\\times 5\\f$ mask). The overall\n. distance is calculated as a sum of these basic distances. Since the distance function should be\n. symmetric, all of the horizontal and vertical shifts must have the same cost (denoted as a ), all\n. the diagonal shifts must have the same cost (denoted as `b`), and all knight's moves must have the\n. same cost (denoted as `c`). For the #DIST_C and #DIST_L1 types, the distance is calculated\n. precisely, whereas for #DIST_L2 (Euclidean distance) the distance can be calculated only with a\n. relative error (a \\f$5\\times 5\\f$ mask gives more accurate results). For `a`,`b`, and `c`, OpenCV\n. uses the values suggested in the original paper:\n. - DIST_L1: `a = 1, b = 2`\n. - DIST_L2:\n. - `3 x 3`: `a=0.955, b=1.3693`\n. - `5 x 5`: `a=1, b=1.4, c=2.1969`\n. - DIST_C: `a = 1, b = 1`\n. \n. Typically, for a fast, coarse distance estimation #DIST_L2, a \\f$3\\times 3\\f$ mask is used. For a\n. more accurate distance estimation #DIST_L2, a \\f$5\\times 5\\f$ mask or the precise algorithm is used.\n. Note that both the precise and the approximate algorithms are linear on the number of pixels.\n. \n. This variant of the function does not only compute the minimum distance for each pixel \\f$(x, y)\\f$\n. but also identifies the nearest connected component consisting of zero pixels\n. (labelType==#DIST_LABEL_CCOMP) or the nearest zero pixel (labelType==#DIST_LABEL_PIXEL). Index of the\n. component/pixel is stored in `labels(x, y)`. When labelType==#DIST_LABEL_CCOMP, the function\n. automatically finds connected components of zero pixels in the input image and marks them with\n. distinct labels. When labelType==#DIST_LABEL_CCOMP, the function scans through the input image and\n. marks all the zero pixels with distinct labels.\n. \n. In this mode, the complexity is still linear. That is, the function provides a very fast way to\n. compute the Voronoi diagram for a binary image. Currently, the second variant can use only the\n. approximate distance transform algorithm, i.e. maskSize=#DIST_MASK_PRECISE is not supported\n. yet.\n. \n. @param src 8-bit, single-channel (binary) source image.\n. @param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point,\n. single-channel image of the same size as src.\n. @param labels Output 2D array of labels (the discrete Voronoi diagram). It has the type\n. CV_32SC1 and the same size as src.\n. @param distanceType Type of distance, see #DistanceTypes\n. @param maskSize Size of the distance transform mask, see #DistanceTransformMasks.\n. #DIST_MASK_PRECISE is not supported by this variant. In case of the #DIST_L1 or #DIST_C distance type,\n. the parameter is forced to 3 because a \\f$3\\times 3\\f$ mask gives the same result as \\f$5\\times\n. 5\\f$ or any larger aperture.\n. @param labelType Type of the label array to build, see #DistanceTransformLabelTypes." + ... + + +def divide(src1: ndarray, src2: ndarray, dts: ndarray = ..., scale=..., dtype=...) -> typing.Any: + 'divide(src1, src2[, dst[, scale[, dtype]]]) -> dst\n. @brief Performs per-element division of two arrays or a scalar by an array.\n. \n. The function cv::divide divides one array by another:\n. \\f[\\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\\f]\n. or a scalar by an array when there is no src1 :\n. \\f[\\texttt{dst(I) = saturate(scale/src2(I))}\\f]\n. \n. Different channels of multi-channel arrays are processed independently.\n. \n. For integer types when src2(I) is zero, dst(I) will also be zero.\n. \n. @note In case of floating point data there is no special defined behavior for zero src2(I) values.\n. Regular floating-point division is used.\n. Expect correct IEEE-754 behaviour for floating-point data (with NaN, Inf result values).\n. \n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1.\n. @param scale scalar factor.\n. @param dst output array of the same size and type as src2.\n. @param dtype optional depth of the output array; if -1, dst will have depth src2.depth(), but in\n. case of an array-by-array division, you can only pass -1 when src1.depth()==src2.depth().\n. @sa multiply, add, subtract\n\n\n\ndivide(scale, src2[, dst[, dtype]]) -> dst\n. @overload' + ... + + +dnn_ClassificationModel = _mod_cv2.dnn_ClassificationModel +dnn_DetectionModel = _mod_cv2.dnn_DetectionModel +dnn_DictValue = _mod_cv2.dnn_DictValue +dnn_KeypointsModel = _mod_cv2.dnn_KeypointsModel +dnn_Layer = _mod_cv2.dnn_Layer +dnn_Model = _mod_cv2.dnn_Model +dnn_Net = _mod_cv2.dnn_Net +dnn_SegmentationModel = _mod_cv2.dnn_SegmentationModel + + +def dnn_registerLayer() -> typing.Any: + 'registerLayer(type, class) -> None' + ... + + +def dnn_unregisterLayer() -> typing.Any: + 'unregisterLayer(type) -> None' + ... + + +def drawChessboardCorners(image: ndarray, patternSize, corners, patternWasFound) -> typing.Any: + 'drawChessboardCorners(image, patternSize, corners, patternWasFound) -> image\n. @brief Renders the detected chessboard corners.\n. \n. @param image Destination image. It must be an 8-bit color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. (patternSize = cv::Size(points_per_row,points_per_column)).\n. @param corners Array of detected corners, the output of findChessboardCorners.\n. @param patternWasFound Parameter indicating whether the complete board was found or not. The\n. return value of findChessboardCorners should be passed here.\n. \n. The function draws individual chessboard corners detected either as red circles if the board was not\n. found, or as colored corners connected with lines if the board was found.' + ... + + +def drawContours(image: ndarray, contours, contourIdx, color, thickness=..., lineType=..., hierarchy=..., maxLevel=..., offset=...) -> typing.Any: + 'drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> image\n. @brief Draws contours outlines or filled contours.\n. \n. The function draws contour outlines in the image if \\f$\\texttt{thickness} \\ge 0\\f$ or fills the area\n. bounded by the contours if \\f$\\texttt{thickness}<0\\f$ . The example below shows how to retrieve\n. connected components from the binary image and label them: :\n. @include snippets/imgproc_drawContours.cpp\n. \n. @param image Destination image.\n. @param contours All the input contours. Each contour is stored as a point vector.\n. @param contourIdx Parameter indicating a contour to draw. If it is negative, all the contours are drawn.\n. @param color Color of the contours.\n. @param thickness Thickness of lines the contours are drawn with. If it is negative (for example,\n. thickness=#FILLED ), the contour interiors are drawn.\n. @param lineType Line connectivity. See #LineTypes\n. @param hierarchy Optional information about hierarchy. It is only needed if you want to draw only\n. some of the contours (see maxLevel ).\n. @param maxLevel Maximal level for drawn contours. If it is 0, only the specified contour is drawn.\n. If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function\n. draws the contours, all the nested contours, all the nested-to-nested contours, and so on. This\n. parameter is only taken into account when there is hierarchy available.\n. @param offset Optional contour shift parameter. Shift all the drawn contours by the specified\n. \\f$\\texttt{offset}=(dx,dy)\\f$ .\n. @note When thickness=#FILLED, the function is designed to handle connected components with holes correctly\n. even when no hierarchy date is provided. This is done by analyzing all the outlines together\n. using even-odd rule. This may give incorrect results if you have a joint collection of separately retrieved\n. contours. In order to solve this problem, you need to call #drawContours separately for each sub-group\n. of contours, or iterate over the collection using contourIdx parameter.' + ... + + +def drawFrameAxes(image: ndarray, cameraMatrix, distCoeffs, rvec, tvec, length, thickness=...) -> typing.Any: + 'drawFrameAxes(image, cameraMatrix, distCoeffs, rvec, tvec, length[, thickness]) -> image\n. @brief Draw axes of the world/object coordinate system from pose estimation. @sa solvePnP\n. \n. @param image Input/output image. It must have 1 or 3 channels. The number of channels is not altered.\n. @param cameraMatrix Input 3x3 floating-point matrix of camera intrinsic parameters.\n. \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.\n. @param rvec Rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Translation vector.\n. @param length Length of the painted axes in the same unit than tvec (usually in meters).\n. @param thickness Line thickness of the painted axes.\n. \n. This function draws the axes of the world/object coordinate system w.r.t. to the camera frame.\n. OX is drawn in red, OY in green and OZ in blue.' + ... + + +def drawKeypoints(image: ndarray, keypoints, outImage, color=..., flags: int = ...) -> typing.Any: + 'drawKeypoints(image, keypoints, outImage[, color[, flags]]) -> outImage\n. @brief Draws keypoints.\n. \n. @param image Source image.\n. @param keypoints Keypoints from the source image.\n. @param outImage Output image. Its content depends on the flags value defining what is drawn in the\n. output image. See possible flags bit values below.\n. @param color Color of keypoints.\n. @param flags Flags setting drawing features. Possible flags bit values are defined by\n. DrawMatchesFlags. See details above in drawMatches .\n. \n. @note\n. For Python API, flags are modified as cv.DRAW_MATCHES_FLAGS_DEFAULT,\n. cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG,\n. cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS' + ... + + +def drawMarker(img: ndarray, position, color, markerType=..., markerSize=..., thickness=..., line_type=...) -> typing.Any: + 'drawMarker(img, position, color[, markerType[, markerSize[, thickness[, line_type]]]]) -> img\n. @brief Draws a marker on a predefined position in an image.\n. \n. The function cv::drawMarker draws a marker on a given position in the image. For the moment several\n. marker types are supported, see #MarkerTypes for more information.\n. \n. @param img Image.\n. @param position The point where the crosshair is positioned.\n. @param color Line color.\n. @param markerType The specific type of marker you want to use, see #MarkerTypes\n. @param thickness Line thickness.\n. @param line_type Type of the line, See #LineTypes\n. @param markerSize The length of the marker axis [default = 20 pixels]' + ... + + +def drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor=..., singlePointColor=..., matchesMask=..., flags: int = ...) -> typing.Any: + 'drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg\n. @brief Draws the found matches of keypoints from two images.\n. \n. @param img1 First source image.\n. @param keypoints1 Keypoints from the first source image.\n. @param img2 Second source image.\n. @param keypoints2 Keypoints from the second source image.\n. @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]\n. has a corresponding point in keypoints2[matches[i]] .\n. @param outImg Output image. Its content depends on the flags value defining what is drawn in the\n. output image. See possible flags bit values below.\n. @param matchColor Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1)\n. , the color is generated randomly.\n. @param singlePointColor Color of single keypoints (circles), which means that keypoints do not\n. have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.\n. @param matchesMask Mask determining which matches are drawn. If the mask is empty, all matches are\n. drawn.\n. @param flags Flags setting drawing features. Possible flags bit values are defined by\n. DrawMatchesFlags.\n. \n. This function draws matches of keypoints from two images in the output image. Match is a line\n. connecting two keypoints (circles). See cv::DrawMatchesFlags.' + ... + + +def drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor=..., singlePointColor=..., matchesMask=..., flags: int = ...) -> typing.Any: + 'drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg\n. @overload' + ... + + +def edgePreservingFilter(src: ndarray, dts: ndarray = ..., flags: int = ..., sigma_s=..., sigma_r=...) -> typing.Any: + 'edgePreservingFilter(src[, dst[, flags[, sigma_s[, sigma_r]]]]) -> dst\n. @brief Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing\n. filters are used in many different applications @cite EM11 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output 8-bit 3-channel image.\n. @param flags Edge preserving filters: cv::RECURS_FILTER or cv::NORMCONV_FILTER\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' + ... + + +def eigen(src: ndarray, eigenvalues=..., eigenvectors=...) -> typing.Any: + 'eigen(src[, eigenvalues[, eigenvectors]]) -> retval, eigenvalues, eigenvectors\n. @brief Calculates eigenvalues and eigenvectors of a symmetric matrix.\n. \n. The function cv::eigen calculates just eigenvalues, or eigenvalues and eigenvectors of the symmetric\n. matrix src:\n. @code\n. src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()\n. @endcode\n. \n. @note Use cv::eigenNonSymmetric for calculation of real eigenvalues and eigenvectors of non-symmetric matrix.\n. \n. @param src input matrix that must have CV_32FC1 or CV_64FC1 type, square size and be symmetrical\n. (src ^T^ == src).\n. @param eigenvalues output vector of eigenvalues of the same type as src; the eigenvalues are stored\n. in the descending order.\n. @param eigenvectors output matrix of eigenvectors; it has the same size and type as src; the\n. eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding\n. eigenvalues.\n. @sa eigenNonSymmetric, completeSymm , PCA' + ... + + +def eigenNonSymmetric(src: ndarray, eigenvalues=..., eigenvectors=...) -> typing.Any: + 'eigenNonSymmetric(src[, eigenvalues[, eigenvectors]]) -> eigenvalues, eigenvectors\n. @brief Calculates eigenvalues and eigenvectors of a non-symmetric matrix (real eigenvalues only).\n. \n. @note Assumes real eigenvalues.\n. \n. The function calculates eigenvalues and eigenvectors (optional) of the square matrix src:\n. @code\n. src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()\n. @endcode\n. \n. @param src input matrix (CV_32FC1 or CV_64FC1 type).\n. @param eigenvalues output vector of eigenvalues (type is the same type as src).\n. @param eigenvectors output matrix of eigenvectors (type is the same type as src). The eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding eigenvalues.\n. @sa eigen' + ... + + +def ellipse(img: ndarray, center, axes, angle, startAngle, endAngle, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a simple or thick elliptic arc or fills an ellipse sector.\n. \n. The function cv::ellipse with more parameters draws an ellipse outline, a filled ellipse, an elliptic\n. arc, or a filled ellipse sector. The drawing code uses general parametric form.\n. A piecewise-linear curve is used to approximate the elliptic arc\n. boundary. If you need more control of the ellipse rendering, you can retrieve the curve using\n. #ellipse2Poly and then render it with #polylines or fill it with #fillPoly. If you use the first\n. variant of the function and want to draw the whole ellipse, not an arc, pass `startAngle=0` and\n. `endAngle=360`. If `startAngle` is greater than `endAngle`, they are swapped. The figure below explains\n. the meaning of the parameters to draw the blue arc.\n. \n. ![Parameters of Elliptic Arc](pics/ellipse.svg)\n. \n. @param img Image.\n. @param center Center of the ellipse.\n. @param axes Half of the size of the ellipse main axes.\n. @param angle Ellipse rotation angle in degrees.\n. @param startAngle Starting angle of the elliptic arc in degrees.\n. @param endAngle Ending angle of the elliptic arc in degrees.\n. @param color Ellipse color.\n. @param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that\n. a filled ellipse sector is to be drawn.\n. @param lineType Type of the ellipse boundary. See #LineTypes\n. @param shift Number of fractional bits in the coordinates of the center and values of axes.\n\n\n\nellipse(img, box, color[, thickness[, lineType]]) -> img\n. @overload\n. @param img Image.\n. @param box Alternative ellipse representation via RotatedRect. This means that the function draws\n. an ellipse inscribed in the rotated rectangle.\n. @param color Ellipse color.\n. @param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that\n. a filled ellipse sector is to be drawn.\n. @param lineType Type of the ellipse boundary. See #LineTypes' + ... + + +def ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> typing.Any: + 'ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> pts\n. @brief Approximates an elliptic arc with a polyline.\n. \n. The function ellipse2Poly computes the vertices of a polyline that approximates the specified\n. elliptic arc. It is used by #ellipse. If `arcStart` is greater than `arcEnd`, they are swapped.\n. \n. @param center Center of the arc.\n. @param axes Half of the size of the ellipse main axes. See #ellipse for details.\n. @param angle Rotation angle of the ellipse in degrees. See #ellipse for details.\n. @param arcStart Starting angle of the elliptic arc in degrees.\n. @param arcEnd Ending angle of the elliptic arc in degrees.\n. @param delta Angle between the subsequent polyline vertices. It defines the approximation\n. accuracy.\n. @param pts Output vector of polyline vertices.' + ... + + +def equalizeHist(src: ndarray, dts: ndarray = ...) -> typing.Any: + "equalizeHist(src[, dst]) -> dst\n. @brief Equalizes the histogram of a grayscale image.\n. \n. The function equalizes the histogram of the input image using the following algorithm:\n. \n. - Calculate the histogram \\f$H\\f$ for src .\n. - Normalize the histogram so that the sum of histogram bins is 255.\n. - Compute the integral of the histogram:\n. \\f[H'_i = \\sum _{0 \\le j < i} H(j)\\f]\n. - Transform the image using \\f$H'\\f$ as a look-up table: \\f$\\texttt{dst}(x,y) = H'(\\texttt{src}(x,y))\\f$\n. \n. The algorithm normalizes the brightness and increases the contrast of the image.\n. \n. @param src Source 8-bit single channel image.\n. @param dst Destination image of the same size and type as src ." + ... + + +def erode(src: ndarray, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: + "erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Erodes an image by using a specific structuring element.\n. \n. The function erodes the source image using the specified structuring element that determines the\n. shape of a pixel neighborhood over which the minimum is taken:\n. \n. \\f[\\texttt{dst} (x,y) = \\min _{(x',y'): \\, \\texttt{element} (x',y') \\ne0 } \\texttt{src} (x+x',y+y')\\f]\n. \n. The function supports the in-place mode. Erosion can be applied several ( iterations ) times. In\n. case of multi-channel images, each channel is processed independently.\n. \n. @param src input image; the number of channels can be arbitrary, but the depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param kernel structuring element used for erosion; if `element=Mat()`, a `3 x 3` rectangular\n. structuring element is used. Kernel can be created using #getStructuringElement.\n. @param anchor position of the anchor within the element; default value (-1, -1) means that the\n. anchor is at the element center.\n. @param iterations number of times erosion is applied.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @param borderValue border value in case of a constant border\n. @sa dilate, morphologyEx, getStructuringElement" + ... + + +error = _mod_cv2.error + + +def estimateAffine2D(from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=...) -> typing.Any: + 'estimateAffine2D(from, to[, inliers[, method[, ransacReprojThreshold[, maxIters[, confidence[, refineIters]]]]]]) -> retval, inliers\n. @brief Computes an optimal affine transformation between two 2D point sets.\n. \n. It computes\n. \\f[\n. \\begin{bmatrix}\n. x\\\\\n. y\\\\\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. a_{11} & a_{12}\\\\\n. a_{21} & a_{22}\\\\\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X\\\\\n. Y\\\\\n. \\end{bmatrix}\n. +\n. \\begin{bmatrix}\n. b_1\\\\\n. b_2\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. @param from First input 2D point set containing \\f$(X,Y)\\f$.\n. @param to Second input 2D point set containing \\f$(x,y)\\f$.\n. @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. @param method Robust method used to compute transformation. The following methods are possible:\n. - cv::RANSAC - RANSAC-based robust method\n. - cv::LMEDS - Least-Median robust method\n. RANSAC is the default method.\n. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider\n. a point as an inlier. Applies only to RANSAC.\n. @param maxIters The maximum number of robust method iterations.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. @param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).\n. Passing 0 will disable refining, so the output matrix will be output of robust method.\n. \n. @return Output 2D affine transformation matrix \\f$2 \\times 3\\f$ or empty matrix if transformation\n. could not be estimated. The returned matrix has the following form:\n. \\f[\n. \\begin{bmatrix}\n. a_{11} & a_{12} & b_1\\\\\n. a_{21} & a_{22} & b_2\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. The function estimates an optimal 2D affine transformation between two 2D point sets using the\n. selected robust algorithm.\n. \n. The computed transformation is then refined further (using only inliers) with the\n. Levenberg-Marquardt method to reduce the re-projection error even more.\n. \n. @note\n. The RANSAC method can handle practically any ratio of outliers but needs a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers.\n. \n. @sa estimateAffinePartial2D, getAffineTransform' + ... + + +def estimateAffine3D(src: ndarray, dts: ndarray, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: + 'estimateAffine3D(src, dst[, out[, inliers[, ransacThreshold[, confidence]]]]) -> retval, out, inliers\n. @brief Computes an optimal affine transformation between two 3D point sets.\n. \n. It computes\n. \\f[\n. \\begin{bmatrix}\n. x\\\\\n. y\\\\\n. z\\\\\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. a_{11} & a_{12} & a_{13}\\\\\n. a_{21} & a_{22} & a_{23}\\\\\n. a_{31} & a_{32} & a_{33}\\\\\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X\\\\\n. Y\\\\\n. Z\\\\\n. \\end{bmatrix}\n. +\n. \\begin{bmatrix}\n. b_1\\\\\n. b_2\\\\\n. b_3\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. @param src First input 3D point set containing \\f$(X,Y,Z)\\f$.\n. @param dst Second input 3D point set containing \\f$(x,y,z)\\f$.\n. @param out Output 3D affine transformation matrix \\f$3 \\times 4\\f$ of the form\n. \\f[\n. \\begin{bmatrix}\n. a_{11} & a_{12} & a_{13} & b_1\\\\\n. a_{21} & a_{22} & a_{23} & b_2\\\\\n. a_{31} & a_{32} & a_{33} & b_3\\\\\n. \\end{bmatrix}\n. \\f]\n. @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as\n. an inlier.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. \n. The function estimates an optimal 3D affine transformation between two 3D point sets using the\n. RANSAC algorithm.' + ... + + +def estimateAffinePartial2D(from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=...) -> typing.Any: + 'estimateAffinePartial2D(from, to[, inliers[, method[, ransacReprojThreshold[, maxIters[, confidence[, refineIters]]]]]]) -> retval, inliers\n. @brief Computes an optimal limited affine transformation with 4 degrees of freedom between\n. two 2D point sets.\n. \n. @param from First input 2D point set.\n. @param to Second input 2D point set.\n. @param inliers Output vector indicating which points are inliers.\n. @param method Robust method used to compute transformation. The following methods are possible:\n. - cv::RANSAC - RANSAC-based robust method\n. - cv::LMEDS - Least-Median robust method\n. RANSAC is the default method.\n. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider\n. a point as an inlier. Applies only to RANSAC.\n. @param maxIters The maximum number of robust method iterations.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. @param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).\n. Passing 0 will disable refining, so the output matrix will be output of robust method.\n. \n. @return Output 2D affine transformation (4 degrees of freedom) matrix \\f$2 \\times 3\\f$ or\n. empty matrix if transformation could not be estimated.\n. \n. The function estimates an optimal 2D affine transformation with 4 degrees of freedom limited to\n. combinations of translation, rotation, and uniform scaling. Uses the selected algorithm for robust\n. estimation.\n. \n. The computed transformation is then refined further (using only inliers) with the\n. Levenberg-Marquardt method to reduce the re-projection error even more.\n. \n. Estimated transformation matrix is:\n. \\f[ \\begin{bmatrix} \\cos(\\theta) \\cdot s & -\\sin(\\theta) \\cdot s & t_x \\\\\n. \\sin(\\theta) \\cdot s & \\cos(\\theta) \\cdot s & t_y\n. \\end{bmatrix} \\f]\n. Where \\f$ \\theta \\f$ is the rotation angle, \\f$ s \\f$ the scaling factor and \\f$ t_x, t_y \\f$ are\n. translations in \\f$ x, y \\f$ axes respectively.\n. \n. @note\n. The RANSAC method can handle practically any ratio of outliers but need a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers.\n. \n. @sa estimateAffine2D, getAffineTransform' + ... + + +def estimateChessboardSharpness(image: ndarray, patternSize, corners, rise_distance=..., vertical=..., sharpness=...) -> typing.Any: + 'estimateChessboardSharpness(image, patternSize, corners[, rise_distance[, vertical[, sharpness]]]) -> retval, sharpness\n. @brief Estimates the sharpness of a detected chessboard.\n. \n. Image sharpness, as well as brightness, are a critical parameter for accuracte\n. camera calibration. For accessing these parameters for filtering out\n. problematic calibraiton images, this method calculates edge profiles by traveling from\n. black to white chessboard cell centers. Based on this, the number of pixels is\n. calculated required to transit from black to white. This width of the\n. transition area is a good indication of how sharp the chessboard is imaged\n. and should be below ~3.0 pixels.\n. \n. @param image Gray image used to find chessboard corners\n. @param patternSize Size of a found chessboard pattern\n. @param corners Corners found by findChessboardCorners(SB)\n. @param rise_distance Rise distance 0.8 means 10% ... 90% of the final signal strength\n. @param vertical By default edge responses for horizontal lines are calculated\n. @param sharpness Optional output array with a sharpness value for calculated edge responses (see description)\n. \n. The optional sharpness array is of type CV_32FC1 and has for each calculated\n. profile one row with the following five entries:\n. * 0 = x coordinate of the underlying edge in the image\n. * 1 = y coordinate of the underlying edge in the image\n. * 2 = width of the transition area (sharpness)\n. * 3 = signal strength in the black cell (min brightness)\n. * 4 = signal strength in the white cell (max brightness)\n. \n. @return Scalar(average sharpness, average min brightness, average max brightness,0)' + ... + + +def estimateTranslation3D(src: ndarray, dts: ndarray, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: + 'estimateTranslation3D(src, dst[, out[, inliers[, ransacThreshold[, confidence]]]]) -> retval, out, inliers\n. @brief Computes an optimal translation between two 3D point sets.\n. *\n. * It computes\n. * \\f[\n. * \\begin{bmatrix}\n. * x\\\\\n. * y\\\\\n. * z\\\\\n. * \\end{bmatrix}\n. * =\n. * \\begin{bmatrix}\n. * X\\\\\n. * Y\\\\\n. * Z\\\\\n. * \\end{bmatrix}\n. * +\n. * \\begin{bmatrix}\n. * b_1\\\\\n. * b_2\\\\\n. * b_3\\\\\n. * \\end{bmatrix}\n. * \\f]\n. *\n. * @param src First input 3D point set containing \\f$(X,Y,Z)\\f$.\n. * @param dst Second input 3D point set containing \\f$(x,y,z)\\f$.\n. * @param out Output 3D translation vector \\f$3 \\times 1\\f$ of the form\n. * \\f[\n. * \\begin{bmatrix}\n. * b_1 \\\\\n. * b_2 \\\\\n. * b_3 \\\\\n. * \\end{bmatrix}\n. * \\f]\n. * @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. * @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as\n. * an inlier.\n. * @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. * between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. * significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. *\n. * The function estimates an optimal 3D translation between two 3D point sets using the\n. * RANSAC algorithm.\n. *' + ... + + +def exp(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'exp(src[, dst]) -> dst\n. @brief Calculates the exponent of every array element.\n. \n. The function cv::exp calculates the exponent of every element of the input\n. array:\n. \\f[\\texttt{dst} [I] = e^{ src(I) }\\f]\n. \n. The maximum relative error is about 7e-6 for single-precision input and\n. less than 1e-10 for double-precision input. Currently, the function\n. converts denormalized values to zeros on output. Special values (NaN,\n. Inf) are not handled.\n. @param src input array.\n. @param dst output array of the same size and type as src.\n. @sa log , cartToPolar , polarToCart , phase , pow , sqrt , magnitude' + ... + + +def extractChannel(src: ndarray, coi, dts: ndarray = ...) -> typing.Any: + 'extractChannel(src, coi[, dst]) -> dst\n. @brief Extracts a single channel from src (coi is 0-based index)\n. @param src input array\n. @param dst output array\n. @param coi index of channel to extract\n. @sa mixChannels, split' + ... + + +def fastAtan2(y, x) -> typing.Any: + 'fastAtan2(y, x) -> retval\n. @brief Calculates the angle of a 2D vector in degrees.\n. \n. The function fastAtan2 calculates the full-range angle of an input 2D vector. The angle is measured\n. in degrees and varies from 0 to 360 degrees. The accuracy is about 0.3 degrees.\n. @param x x-coordinate of the vector.\n. @param y y-coordinate of the vector.' + ... + + +def fastNlMeansDenoising(src: ndarray, dts: ndarray = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: + 'fastNlMeansDenoising(src[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst\n. @brief Perform image denoising using Non-local Means Denoising algorithm\n. with several computational\n. optimizations. Noise expected to be a gaussian white noise\n. \n. @param src Input 8-bit 1-channel, 2-channel, 3-channel or 4-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength. Big h value perfectly removes noise but also\n. removes image details, smaller h value preserves details but also preserves some noise\n. \n. This function expected to be applied to grayscale images. For colored images look at\n. fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored\n. image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting\n. image to CIELAB colorspace and then separately denoise L and AB components with different h\n. parameter.\n\n\n\nfastNlMeansDenoising(src, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst\n. @brief Perform image denoising using Non-local Means Denoising algorithm\n. with several computational\n. optimizations. Noise expected to be a gaussian white noise\n. \n. @param src Input 8-bit or 16-bit (only with NORM_L1) 1-channel,\n. 2-channel, 3-channel or 4-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Array of parameters regulating filter strength, either one\n. parameter applied to all channels or one per channel in dst. Big h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n. @param normType Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1\n. \n. This function expected to be applied to grayscale images. For colored images look at\n. fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored\n. image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting\n. image to CIELAB colorspace and then separately denoise L and AB components with different h\n. parameter.' + ... + + +def fastNlMeansDenoisingColored(src: ndarray, dts: ndarray = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: + 'fastNlMeansDenoisingColored(src[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for colored images\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength for luminance component. Bigger h value perfectly\n. removes noise but also removes image details, smaller h value preserves details but also preserves\n. some noise\n. @param hColor The same as h but for color components. For most images value equals 10\n. will be enough to remove colored noise and do not distort colors\n. \n. The function converts image to CIELAB colorspace and then separately denoise L and AB components\n. with given h parameters using fastNlMeansDenoising function.' + ... + + +def fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: ndarray = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: + 'fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst\n. @brief Modification of fastNlMeansDenoisingMulti function for colored images sequences\n. \n. @param srcImgs Input 8-bit 3-channel images sequence. All images should have the same type and\n. size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength for luminance component. Bigger h value perfectly\n. removes noise but also removes image details, smaller h value preserves details but also preserves\n. some noise.\n. @param hColor The same as h but for color components.\n. \n. The function converts images to CIELAB colorspace and then separately denoise L and AB components\n. with given h parameters using fastNlMeansDenoisingMulti function.' + ... + + +def fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: ndarray = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: + 'fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been\n. captured in small period of time. For example video. This version of the function is for grayscale\n. images or for manual manipulation with colorspaces. For more details see\n. \n. \n. @param srcImgs Input 8-bit 1-channel, 2-channel, 3-channel or\n. 4-channel images sequence. All images should have the same type and\n. size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength. Bigger h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n\n\n\nfastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been\n. captured in small period of time. For example video. This version of the function is for grayscale\n. images or for manual manipulation with colorspaces. For more details see\n. \n. \n. @param srcImgs Input 8-bit or 16-bit (only with NORM_L1) 1-channel,\n. 2-channel, 3-channel or 4-channel images sequence. All images should\n. have the same type and size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Array of parameters regulating filter strength, either one\n. parameter applied to all channels or one per channel in dst. Big h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n. @param normType Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1' + ... + + +def fillConvexPoly(img: ndarray, points, color, lineType=..., shift=...) -> typing.Any: + 'fillConvexPoly(img, points, color[, lineType[, shift]]) -> img\n. @brief Fills a convex polygon.\n. \n. The function cv::fillConvexPoly draws a filled convex polygon. This function is much faster than the\n. function #fillPoly . It can fill not only convex polygons but any monotonic polygon without\n. self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line)\n. twice at the most (though, its top-most and/or the bottom edge could be horizontal).\n. \n. @param img Image.\n. @param points Polygon vertices.\n. @param color Polygon color.\n. @param lineType Type of the polygon boundaries. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.' + ... + + +def fillPoly(img: ndarray, pts, color, lineType=..., shift=..., offset=...) -> typing.Any: + 'fillPoly(img, pts, color[, lineType[, shift[, offset]]]) -> img\n. @brief Fills the area bounded by one or more polygons.\n. \n. The function cv::fillPoly fills an area bounded by several polygonal contours. The function can fill\n. complex areas, for example, areas with holes, contours with self-intersections (some of their\n. parts), and so forth.\n. \n. @param img Image.\n. @param pts Array of polygons where each polygon is represented as an array of points.\n. @param color Polygon color.\n. @param lineType Type of the polygon boundaries. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.\n. @param offset Optional offset of all points of the contours.' + ... + + +def filter2D(src: ndarray, ddepth, kernel, dts: ndarray = ..., anchor=..., delta=..., borderType=...) -> typing.Any: + 'filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]]) -> dst\n. @brief Convolves an image with the kernel.\n. \n. The function applies an arbitrary linear filter to an image. In-place operation is supported. When\n. the aperture is partially outside the image, the function interpolates outlier pixel values\n. according to the specified border mode.\n. \n. The function does actually compute correlation, not the convolution:\n. \n. \\f[\\texttt{dst} (x,y) = \\sum _{ \\substack{0\\leq x\' < \\texttt{kernel.cols}\\\\{0\\leq y\' < \\texttt{kernel.rows}}}} \\texttt{kernel} (x\',y\')* \\texttt{src} (x+x\'- \\texttt{anchor.x} ,y+y\'- \\texttt{anchor.y} )\\f]\n. \n. That is, the kernel is not mirrored around the anchor point. If you need a real convolution, flip\n. the kernel using #flip and set the new anchor to `(kernel.cols - anchor.x - 1, kernel.rows -\n. anchor.y - 1)`.\n. \n. The function uses the DFT-based algorithm in case of sufficiently large kernels (~`11 x 11` or\n. larger) and the direct algorithm for small kernels.\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src.\n. @param ddepth desired depth of the destination image, see @ref filter_depths "combinations"\n. @param kernel convolution kernel (or rather a correlation kernel), a single-channel floating point\n. matrix; if you want to apply different kernels to different channels, split the image into\n. separate color planes using split and process them individually.\n. @param anchor anchor of the kernel that indicates the relative position of a filtered point within\n. the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor\n. is at the kernel center.\n. @param delta optional value added to the filtered pixels before storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa sepFilter2D, dft, matchTemplate' + ... + + +def filterHomographyDecompByVisibleRefpoints(rotations, normals, beforePoints, afterPoints, possibleSolutions=..., pointsMask=...) -> typing.Any: + 'filterHomographyDecompByVisibleRefpoints(rotations, normals, beforePoints, afterPoints[, possibleSolutions[, pointsMask]]) -> possibleSolutions\n. @brief Filters homography decompositions based on additional information.\n. \n. @param rotations Vector of rotation matrices.\n. @param normals Vector of plane normal matrices.\n. @param beforePoints Vector of (rectified) visible reference points before the homography is applied\n. @param afterPoints Vector of (rectified) visible reference points after the homography is applied\n. @param possibleSolutions Vector of int indices representing the viable solution set after filtering\n. @param pointsMask optional Mat/Vector of 8u type representing the mask for the inliers as given by the findHomography function\n. \n. This function is intended to filter the output of the decomposeHomographyMat based on additional\n. information as described in @cite Malis . The summary of the method: the decomposeHomographyMat function\n. returns 2 unique solutions and their "opposites" for a total of 4 solutions. If we have access to the\n. sets of points visible in the camera frame before and after the homography transformation is applied,\n. we can determine which are the true potential solutions and which are the opposites by verifying which\n. homographies are consistent with all visible reference points being in front of the camera. The inputs\n. are left unchanged; the filtered solution set is returned as indices into the existing one.' + ... + + +def filterSpeckles(img: ndarray, newVal, maxSpeckleSize, maxDiff, buf=...) -> typing.Any: + 'filterSpeckles(img, newVal, maxSpeckleSize, maxDiff[, buf]) -> img, buf\n. @brief Filters off small noise blobs (speckles) in the disparity map\n. \n. @param img The input 16-bit signed disparity image\n. @param newVal The disparity value used to paint-off the speckles\n. @param maxSpeckleSize The maximum speckle size to consider it a speckle. Larger blobs are not\n. affected by the algorithm\n. @param maxDiff Maximum difference between neighbor disparity pixels to put them into the same\n. blob. Note that since StereoBM, StereoSGBM and may be other algorithms return a fixed-point\n. disparity map, where disparity values are multiplied by 16, this scale factor should be taken into\n. account when specifying this parameter value.\n. @param buf The optional temporary buffer to avoid memory allocation within the function.' + ... + + +def find4QuadCornerSubpix(img: ndarray, corners, region_size) -> typing.Any: + 'find4QuadCornerSubpix(img, corners, region_size) -> retval, corners\n.' + ... + + +def findChessboardCorners(image: ndarray, patternSize, corners=..., flags: int = ...) -> typing.Any: + 'findChessboardCorners(image, patternSize[, corners[, flags]]) -> retval, corners\n. @brief Finds the positions of internal corners of the chessboard.\n. \n. @param image Source chessboard view. It must be an 8-bit grayscale or color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ).\n. @param corners Output array of detected corners.\n. @param flags Various operation flags that can be zero or a combination of the following values:\n. - **CALIB_CB_ADAPTIVE_THRESH** Use adaptive thresholding to convert the image to black\n. and white, rather than a fixed threshold level (computed from the average image brightness).\n. - **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before\n. applying fixed or adaptive thresholding.\n. - **CALIB_CB_FILTER_QUADS** Use additional criteria (like contour area, perimeter,\n. square-like shape) to filter out false quads extracted at the contour retrieval stage.\n. - **CALIB_CB_FAST_CHECK** Run a fast check on the image that looks for chessboard corners,\n. and shortcut the call if none is found. This can drastically speed up the call in the\n. degenerate condition when no chessboard is observed.\n. \n. The function attempts to determine whether the input image is a view of the chessboard pattern and\n. locate the internal chessboard corners. The function returns a non-zero value if all of the corners\n. are found and they are placed in a certain order (row by row, left to right in every row).\n. Otherwise, if the function fails to find all the corners or reorder them, it returns 0. For example,\n. a regular chessboard has 8 x 8 squares and 7 x 7 internal corners, that is, points where the black\n. squares touch each other. The detected coordinates are approximate, and to determine their positions\n. more accurately, the function calls cornerSubPix. You also may use the function cornerSubPix with\n. different parameters if returned coordinates are not accurate enough.\n. \n. Sample usage of detecting and drawing chessboard corners: :\n. @code\n. Size patternsize(8,6); //interior number of corners\n. Mat gray = ....; //source image\n. vector corners; //this will be filled by the detected corners\n. \n. //CALIB_CB_FAST_CHECK saves a lot of time on images\n. //that do not contain any chessboard corners\n. bool patternfound = findChessboardCorners(gray, patternsize, corners,\n. CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE\n. + CALIB_CB_FAST_CHECK);\n. \n. if(patternfound)\n. cornerSubPix(gray, corners, Size(11, 11), Size(-1, -1),\n. TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1));\n. \n. drawChessboardCorners(img, patternsize, Mat(corners), patternfound);\n. @endcode\n. @note The function requires white space (like a square-thick border, the wider the better) around\n. the board to make the detection more robust in various environments. Otherwise, if there is no\n. border and the background is dark, the outer black squares cannot be segmented properly and so the\n. square grouping and ordering algorithm fails.' + ... + + +def findChessboardCornersSB(image: ndarray, patternSize, corners=..., flags: int = ...) -> typing.Any: + 'findChessboardCornersSB(image, patternSize[, corners[, flags]]) -> retval, corners\n. @overload' + ... + + +def findChessboardCornersSBWithMeta(image: ndarray, patternSize, flags: int, corners=..., meta=...) -> typing.Any: + 'findChessboardCornersSBWithMeta(image, patternSize, flags[, corners[, meta]]) -> retval, corners, meta\n. @brief Finds the positions of internal corners of the chessboard using a sector based approach.\n. \n. @param image Source chessboard view. It must be an 8-bit grayscale or color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ).\n. @param corners Output array of detected corners.\n. @param flags Various operation flags that can be zero or a combination of the following values:\n. - **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before detection.\n. - **CALIB_CB_EXHAUSTIVE** Run an exhaustive search to improve detection rate.\n. - **CALIB_CB_ACCURACY** Up sample input image to improve sub-pixel accuracy due to aliasing effects.\n. - **CALIB_CB_LARGER** The detected pattern is allowed to be larger than patternSize (see description).\n. - **CALIB_CB_MARKER** The detected pattern must have a marker (see description).\n. This should be used if an accurate camera calibration is required.\n. @param meta Optional output arrray of detected corners (CV_8UC1 and size = cv::Size(columns,rows)).\n. Each entry stands for one corner of the pattern and can have one of the following values:\n. - 0 = no meta data attached\n. - 1 = left-top corner of a black cell\n. - 2 = left-top corner of a white cell\n. - 3 = left-top corner of a black cell with a white marker dot\n. - 4 = left-top corner of a white cell with a black marker dot (pattern origin in case of markers otherwise first corner)\n. \n. The function is analog to findchessboardCorners but uses a localized radon\n. transformation approximated by box filters being more robust to all sort of\n. noise, faster on larger images and is able to directly return the sub-pixel\n. position of the internal chessboard corners. The Method is based on the paper\n. @cite duda2018 "Accurate Detection and Localization of Checkerboard Corners for\n. Calibration" demonstrating that the returned sub-pixel positions are more\n. accurate than the one returned by cornerSubPix allowing a precise camera\n. calibration for demanding applications.\n. \n. In the case, the flags **CALIB_CB_LARGER** or **CALIB_CB_MARKER** are given,\n. the result can be recovered from the optional meta array. Both flags are\n. helpful to use calibration patterns exceeding the field of view of the camera.\n. These oversized patterns allow more accurate calibrations as corners can be\n. utilized, which are as close as possible to the image borders. For a\n. consistent coordinate system across all images, the optional marker (see image\n. below) can be used to move the origin of the board to the location where the\n. black circle is located.\n. \n. @note The function requires a white boarder with roughly the same width as one\n. of the checkerboard fields around the whole board to improve the detection in\n. various environments. In addition, because of the localized radon\n. transformation it is beneficial to use round corners for the field corners\n. which are located on the outside of the board. The following figure illustrates\n. a sample checkerboard optimized for the detection. However, any other checkerboard\n. can be used as well.\n. ![Checkerboard](pics/checkerboard_radon.png)' + ... + + +def findCirclesGrid(image: ndarray, patternSize, flags: int, blobDetector, parameters, centers=...) -> typing.Any: + 'findCirclesGrid(image, patternSize, flags, blobDetector, parameters[, centers]) -> retval, centers\n. @brief Finds centers in the grid of circles.\n. \n. @param image grid view of input circles; it must be an 8-bit grayscale or color image.\n. @param patternSize number of circles per row and column\n. ( patternSize = Size(points_per_row, points_per_colum) ).\n. @param centers output array of detected centers.\n. @param flags various operation flags that can be one of the following values:\n. - **CALIB_CB_SYMMETRIC_GRID** uses symmetric pattern of circles.\n. - **CALIB_CB_ASYMMETRIC_GRID** uses asymmetric pattern of circles.\n. - **CALIB_CB_CLUSTERING** uses a special algorithm for grid detection. It is more robust to\n. perspective distortions but much more sensitive to background clutter.\n. @param blobDetector feature detector that finds blobs like dark circles on light background.\n. @param parameters struct for finding circles in a grid pattern.\n. \n. The function attempts to determine whether the input image contains a grid of circles. If it is, the\n. function locates centers of the circles. The function returns a non-zero value if all of the centers\n. have been found and they have been placed in a certain order (row by row, left to right in every\n. row). Otherwise, if the function fails to find all the corners or reorder them, it returns 0.\n. \n. Sample usage of detecting and drawing the centers of circles: :\n. @code\n. Size patternsize(7,7); //number of centers\n. Mat gray = ....; //source image\n. vector centers; //this will be filled by the detected centers\n. \n. bool patternfound = findCirclesGrid(gray, patternsize, centers);\n. \n. drawChessboardCorners(img, patternsize, Mat(centers), patternfound);\n. @endcode\n. @note The function requires white space (like a square-thick border, the wider the better) around\n. the board to make the detection more robust in various environments.\n\n\n\nfindCirclesGrid(image, patternSize[, centers[, flags[, blobDetector]]]) -> retval, centers\n. @overload' + ... + + +def findContours(image: ndarray, mode, method: int, contours=..., hierarchy=..., offset=...) -> typing.Any: + "findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours, hierarchy\n. @brief Finds contours in a binary image.\n. \n. The function retrieves contours from the binary image using the algorithm @cite Suzuki85 . The contours\n. are a useful tool for shape analysis and object detection and recognition. See squares.cpp in the\n. OpenCV sample directory.\n. @note Since opencv 3.2 source image is not modified by this function.\n. \n. @param image Source, an 8-bit single-channel image. Non-zero pixels are treated as 1's. Zero\n. pixels remain 0's, so the image is treated as binary . You can use #compare, #inRange, #threshold ,\n. #adaptiveThreshold, #Canny, and others to create a binary image out of a grayscale or color one.\n. If mode equals to #RETR_CCOMP or #RETR_FLOODFILL, the input can also be a 32-bit integer image of labels (CV_32SC1).\n. @param contours Detected contours. Each contour is stored as a vector of points (e.g.\n. std::vector >).\n. @param hierarchy Optional output vector (e.g. std::vector), containing information about the image topology. It has\n. as many elements as the number of contours. For each i-th contour contours[i], the elements\n. hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , and hierarchy[i][3] are set to 0-based indices\n. in contours of the next and previous contours at the same hierarchical level, the first child\n. contour and the parent contour, respectively. If for the contour i there are no next, previous,\n. parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.\n. @param mode Contour retrieval mode, see #RetrievalModes\n. @param method Contour approximation method, see #ContourApproximationModes\n. @param offset Optional offset by which every contour point is shifted. This is useful if the\n. contours are extracted from the image ROI and then they should be analyzed in the whole image\n. context." + ... + + +def findEssentialMat(points1, points2, cameraMatrix, method: int = ..., prob=..., threshold=..., mask: ndarray = ...) -> typing.Any: + 'findEssentialMat(points1, points2, cameraMatrix[, method[, prob[, threshold[, mask]]]]) -> retval, mask\n. @brief Calculates an essential matrix from the corresponding points in two images.\n. \n. @param points1 Array of N (N \\>= 5) 2D points from the first image. The point coordinates should\n. be floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param cameraMatrix Camera matrix \\f$K = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix. If this assumption does not hold for your use case, use\n. `undistortPoints()` with `P = cv::NoArray()` for both cameras to transform image points\n. to normalized image coordinates, which are valid for the identity camera matrix. When\n. passing these coordinates, pass the identity matrix for this parameter.\n. @param method Method for computing an essential matrix.\n. - **RANSAC** for the RANSAC algorithm.\n. - **LMEDS** for the LMedS algorithm.\n. @param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of\n. confidence (probability) that the estimated matrix is correct.\n. @param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1\n. for the other points. The array is computed only in the RANSAC and LMedS methods.\n. \n. This function estimates essential matrix based on the five-point algorithm solver in @cite Nister03 .\n. @cite SteweniusCFS is also a related. The epipolar geometry is described by the following equation:\n. \n. \\f[[p_2; 1]^T K^{-T} E K^{-1} [p_1; 1] = 0\\f]\n. \n. where \\f$E\\f$ is an essential matrix, \\f$p_1\\f$ and \\f$p_2\\f$ are corresponding points in the first and the\n. second images, respectively. The result of this function may be passed further to\n. decomposeEssentialMat or recoverPose to recover the relative pose between cameras.\n\n\n\nfindEssentialMat(points1, points2[, focal[, pp[, method[, prob[, threshold[, mask]]]]]]) -> retval, mask\n. @overload\n. @param points1 Array of N (N \\>= 5) 2D points from the first image. The point coordinates should\n. be floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param focal focal length of the camera. Note that this function assumes that points1 and points2\n. are feature points from cameras with same focal length and principal point.\n. @param pp principal point of the camera.\n. @param method Method for computing a fundamental matrix.\n. - **RANSAC** for the RANSAC algorithm.\n. - **LMEDS** for the LMedS algorithm.\n. @param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of\n. confidence (probability) that the estimated matrix is correct.\n. @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1\n. for the other points. The array is computed only in the RANSAC and LMedS methods.\n. \n. This function differs from the one above that it computes camera matrix from focal length and\n. principal point:\n. \n. \\f[K =\n. \\begin{bmatrix}\n. f & 0 & x_{pp} \\\\\n. 0 & f & y_{pp} \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\\f]' + ... + + +def findFundamentalMat(points1, points2, method: int, ransacReprojThreshold, confidence, maxIters, mask: ndarray = ...) -> typing.Any: + 'findFundamentalMat(points1, points2, method, ransacReprojThreshold, confidence, maxIters[, mask]) -> retval, mask\n. @brief Calculates a fundamental matrix from the corresponding points in two images.\n. \n. @param points1 Array of N points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param method Method for computing a fundamental matrix.\n. - **CV_FM_7POINT** for a 7-point algorithm. \\f$N = 7\\f$\n. - **CV_FM_8POINT** for an 8-point algorithm. \\f$N \\ge 8\\f$\n. - **CV_FM_RANSAC** for the RANSAC algorithm. \\f$N \\ge 8\\f$\n. - **CV_FM_LMEDS** for the LMedS algorithm. \\f$N \\ge 8\\f$\n. @param ransacReprojThreshold Parameter used only for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param confidence Parameter used for the RANSAC and LMedS methods only. It specifies a desirable level\n. of confidence (probability) that the estimated matrix is correct.\n. @param mask\n. @param maxIters The maximum number of robust method iterations.\n. \n. The epipolar geometry is described by the following equation:\n. \n. \\f[[p_2; 1]^T F [p_1; 1] = 0\\f]\n. \n. where \\f$F\\f$ is a fundamental matrix, \\f$p_1\\f$ and \\f$p_2\\f$ are corresponding points in the first and the\n. second images, respectively.\n. \n. The function calculates the fundamental matrix using one of four methods listed above and returns\n. the found fundamental matrix. Normally just one matrix is found. But in case of the 7-point\n. algorithm, the function may return up to 3 solutions ( \\f$9 \\times 3\\f$ matrix that stores all 3\n. matrices sequentially).\n. \n. The calculated fundamental matrix may be passed further to computeCorrespondEpilines that finds the\n. epipolar lines corresponding to the specified points. It can also be passed to\n. stereoRectifyUncalibrated to compute the rectification transformation. :\n. @code\n. // Example. Estimation of fundamental matrix using the RANSAC algorithm\n. int point_count = 100;\n. vector points1(point_count);\n. vector points2(point_count);\n. \n. // initialize the points here ...\n. for( int i = 0; i < point_count; i++ )\n. {\n. points1[i] = ...;\n. points2[i] = ...;\n. }\n. \n. Mat fundamental_matrix =\n. findFundamentalMat(points1, points2, FM_RANSAC, 3, 0.99);\n. @endcode\n\n\n\nfindFundamentalMat(points1, points2[, method[, ransacReprojThreshold[, confidence[, mask]]]]) -> retval, mask\n. @overload' + ... + + +def findHomography(srcPoints, dstPoints, method: int = ..., ransacReprojThreshold=..., mask: ndarray = ..., maxIters=..., confidence=...) -> typing.Any: + "findHomography(srcPoints, dstPoints[, method[, ransacReprojThreshold[, mask[, maxIters[, confidence]]]]]) -> retval, mask\n. @brief Finds a perspective transformation between two planes.\n. \n. @param srcPoints Coordinates of the points in the original plane, a matrix of the type CV_32FC2\n. or vector\\ .\n. @param dstPoints Coordinates of the points in the target plane, a matrix of the type CV_32FC2 or\n. a vector\\ .\n. @param method Method used to compute a homography matrix. The following methods are possible:\n. - **0** - a regular method using all the points, i.e., the least squares method\n. - **RANSAC** - RANSAC-based robust method\n. - **LMEDS** - Least-Median robust method\n. - **RHO** - PROSAC-based robust method\n. @param ransacReprojThreshold Maximum allowed reprojection error to treat a point pair as an inlier\n. (used in the RANSAC and RHO methods only). That is, if\n. \\f[\\| \\texttt{dstPoints} _i - \\texttt{convertPointsHomogeneous} ( \\texttt{H} * \\texttt{srcPoints} _i) \\|_2 > \\texttt{ransacReprojThreshold}\\f]\n. then the point \\f$i\\f$ is considered as an outlier. If srcPoints and dstPoints are measured in pixels,\n. it usually makes sense to set this parameter somewhere in the range of 1 to 10.\n. @param mask Optional output mask set by a robust method ( RANSAC or LMEDS ). Note that the input\n. mask values are ignored.\n. @param maxIters The maximum number of RANSAC iterations.\n. @param confidence Confidence level, between 0 and 1.\n. \n. The function finds and returns the perspective transformation \\f$H\\f$ between the source and the\n. destination planes:\n. \n. \\f[s_i \\vecthree{x'_i}{y'_i}{1} \\sim H \\vecthree{x_i}{y_i}{1}\\f]\n. \n. so that the back-projection error\n. \n. \\f[\\sum _i \\left ( x'_i- \\frac{h_{11} x_i + h_{12} y_i + h_{13}}{h_{31} x_i + h_{32} y_i + h_{33}} \\right )^2+ \\left ( y'_i- \\frac{h_{21} x_i + h_{22} y_i + h_{23}}{h_{31} x_i + h_{32} y_i + h_{33}} \\right )^2\\f]\n. \n. is minimized. If the parameter method is set to the default value 0, the function uses all the point\n. pairs to compute an initial homography estimate with a simple least-squares scheme.\n. \n. However, if not all of the point pairs ( \\f$srcPoints_i\\f$, \\f$dstPoints_i\\f$ ) fit the rigid perspective\n. transformation (that is, there are some outliers), this initial estimate will be poor. In this case,\n. you can use one of the three robust methods. The methods RANSAC, LMeDS and RHO try many different\n. random subsets of the corresponding point pairs (of four pairs each, collinear pairs are discarded), estimate the homography matrix\n. using this subset and a simple least-squares algorithm, and then compute the quality/goodness of the\n. computed homography (which is the number of inliers for RANSAC or the least median re-projection error for\n. LMeDS). The best subset is then used to produce the initial estimate of the homography matrix and\n. the mask of inliers/outliers.\n. \n. Regardless of the method, robust or not, the computed homography matrix is refined further (using\n. inliers only in case of a robust method) with the Levenberg-Marquardt method to reduce the\n. re-projection error even more.\n. \n. The methods RANSAC and RHO can handle practically any ratio of outliers but need a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers. Finally, if there are no outliers and the\n. noise is rather small, use the default method (method=0).\n. \n. The function is used to find initial intrinsic and extrinsic matrices. Homography matrix is\n. determined up to a scale. Thus, it is normalized so that \\f$h_{33}=1\\f$. Note that whenever an \\f$H\\f$ matrix\n. cannot be estimated, an empty one will be returned.\n. \n. @sa\n. getAffineTransform, estimateAffine2D, estimateAffinePartial2D, getPerspectiveTransform, warpPerspective,\n. perspectiveTransform" + ... + + +def findNonZero(src: ndarray, idx=...) -> typing.Any: + 'findNonZero(src[, idx]) -> idx\n. @brief Returns the list of locations of non-zero pixels\n. \n. Given a binary matrix (likely returned from an operation such\n. as threshold(), compare(), >, ==, etc, return all of\n. the non-zero indices as a cv::Mat or std::vector (x,y)\n. For example:\n. @code{.cpp}\n. cv::Mat binaryImage; // input, binary image\n. cv::Mat locations; // output, locations of non-zero pixels\n. cv::findNonZero(binaryImage, locations);\n. \n. // access pixel coordinates\n. Point pnt = locations.at(i);\n. @endcode\n. or\n. @code{.cpp}\n. cv::Mat binaryImage; // input, binary image\n. vector locations; // output, locations of non-zero pixels\n. cv::findNonZero(binaryImage, locations);\n. \n. // access pixel coordinates\n. Point pnt = locations[i];\n. @endcode\n. @param src single-channel array\n. @param idx the output array, type of cv::Mat or std::vector, corresponding to non-zero indices in the input' + ... + + +def findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize) -> typing.Any: + "findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize) -> retval, warpMatrix\n. @brief Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 .\n. \n. @param templateImage single-channel template image; CV_8U or CV_32F array.\n. @param inputImage single-channel input image which should be warped with the final warpMatrix in\n. order to provide an image similar to templateImage, same type as templateImage.\n. @param warpMatrix floating-point \\f$2\\times 3\\f$ or \\f$3\\times 3\\f$ mapping matrix (warp).\n. @param motionType parameter, specifying the type of motion:\n. - **MOTION_TRANSLATION** sets a translational motion model; warpMatrix is \\f$2\\times 3\\f$ with\n. the first \\f$2\\times 2\\f$ part being the unity matrix and the rest two parameters being\n. estimated.\n. - **MOTION_EUCLIDEAN** sets a Euclidean (rigid) transformation as motion model; three\n. parameters are estimated; warpMatrix is \\f$2\\times 3\\f$.\n. - **MOTION_AFFINE** sets an affine motion model (DEFAULT); six parameters are estimated;\n. warpMatrix is \\f$2\\times 3\\f$.\n. - **MOTION_HOMOGRAPHY** sets a homography as a motion model; eight parameters are\n. estimated;\\`warpMatrix\\` is \\f$3\\times 3\\f$.\n. @param criteria parameter, specifying the termination criteria of the ECC algorithm;\n. criteria.epsilon defines the threshold of the increment in the correlation coefficient between two\n. iterations (a negative criteria.epsilon makes criteria.maxcount the only termination criterion).\n. Default values are shown in the declaration above.\n. @param inputMask An optional mask to indicate valid values of inputImage.\n. @param gaussFiltSize An optional value indicating size of gaussian blur filter; (DEFAULT: 5)\n. \n. The function estimates the optimum transformation (warpMatrix) with respect to ECC criterion\n. (@cite EP08), that is\n. \n. \\f[\\texttt{warpMatrix} = \\arg\\max_{W} \\texttt{ECC}(\\texttt{templateImage}(x,y),\\texttt{inputImage}(x',y'))\\f]\n. \n. where\n. \n. \\f[\\begin{bmatrix} x' \\\\ y' \\end{bmatrix} = W \\cdot \\begin{bmatrix} x \\\\ y \\\\ 1 \\end{bmatrix}\\f]\n. \n. (the equation holds with homogeneous coordinates for homography). It returns the final enhanced\n. correlation coefficient, that is the correlation coefficient between the template image and the\n. final warped input image. When a \\f$3\\times 3\\f$ matrix is given with motionType =0, 1 or 2, the third\n. row is ignored.\n. \n. Unlike findHomography and estimateRigidTransform, the function findTransformECC implements an\n. area-based alignment that builds on intensity similarities. In essence, the function updates the\n. initial transformation that roughly aligns the images. If this information is missing, the identity\n. warp (unity matrix) is used as an initialization. Note that if images undergo strong\n. displacements/rotations, an initial transformation that roughly aligns the images is necessary\n. (e.g., a simple euclidean/similarity transform that allows for the images showing the same image\n. content approximately). Use inverse warping in the second image to take an image close to the first\n. one, i.e. use the flag WARP_INVERSE_MAP with warpAffine or warpPerspective. See also the OpenCV\n. sample image_alignment.cpp that demonstrates the use of the function. Note that the function throws\n. an exception if algorithm does not converges.\n. \n. @sa\n. computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography" + ... + + +def fitEllipse(points) -> typing.Any: + 'fitEllipse(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits (in a least-squares sense) a set of 2D points best of\n. all. It returns the rotated rectangle in which the ellipse is inscribed. The first algorithm described by @cite Fitzgibbon95\n. is used. Developer should keep in mind that it is possible that the returned\n. ellipse/rotatedRect data contains negative indices, due to the data points being close to the\n. border of the containing Mat element.\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' + ... + + +def fitEllipseAMS(points) -> typing.Any: + 'fitEllipseAMS(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits a set of 2D points.\n. It returns the rotated rectangle in which the ellipse is inscribed.\n. The Approximate Mean Square (AMS) proposed by @cite Taubin1991 is used.\n. \n. For an ellipse, this basis set is \\f$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) \\f$,\n. which is a set of six free coefficients \\f$ A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} \\f$.\n. However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \\f$ (a,b) \\f$,\n. the position \\f$ (x_0,y_0) \\f$, and the orientation \\f$ \\theta \\f$. This is because the basis set includes lines,\n. quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits.\n. If the fit is found to be a parabolic or hyperbolic function then the standard #fitEllipse method is used.\n. The AMS method restricts the fit to parabolic, hyperbolic and elliptical curves\n. by imposing the condition that \\f$ A^T ( D_x^T D_x + D_y^T D_y) A = 1 \\f$ where\n. the matrices \\f$ Dx \\f$ and \\f$ Dy \\f$ are the partial derivatives of the design matrix \\f$ D \\f$ with\n. respect to x and y. The matrices are formed row by row applying the following to\n. each of the points in the set:\n. \\f{align*}{\n. D(i,:)&=\\left\\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\\right\\} &\n. D_x(i,:)&=\\left\\{2 x_i,y_i,0,1,0,0\\right\\} &\n. D_y(i,:)&=\\left\\{0,x_i,2 y_i,0,1,0\\right\\}\n. \\f}\n. The AMS method minimizes the cost function\n. \\f{equation*}{\n. \\epsilon ^2=\\frac{ A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T }\n. \\f}\n. \n. The minimum cost is found by solving the generalized eigenvalue problem.\n. \n. \\f{equation*}{\n. D^T D A = \\lambda \\left( D_x^T D_x + D_y^T D_y\\right) A\n. \\f}\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' + ... + + +def fitEllipseDirect(points) -> typing.Any: + 'fitEllipseDirect(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits a set of 2D points.\n. It returns the rotated rectangle in which the ellipse is inscribed.\n. The Direct least square (Direct) method by @cite Fitzgibbon1999 is used.\n. \n. For an ellipse, this basis set is \\f$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) \\f$,\n. which is a set of six free coefficients \\f$ A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} \\f$.\n. However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \\f$ (a,b) \\f$,\n. the position \\f$ (x_0,y_0) \\f$, and the orientation \\f$ \\theta \\f$. This is because the basis set includes lines,\n. quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits.\n. The Direct method confines the fit to ellipses by ensuring that \\f$ 4 A_{xx} A_{yy}- A_{xy}^2 > 0 \\f$.\n. The condition imposed is that \\f$ 4 A_{xx} A_{yy}- A_{xy}^2=1 \\f$ which satisfies the inequality\n. and as the coefficients can be arbitrarily scaled is not overly restrictive.\n. \n. \\f{equation*}{\n. \\epsilon ^2= A^T D^T D A \\quad \\text{with} \\quad A^T C A =1 \\quad \\text{and} \\quad C=\\left(\\begin{matrix}\n. 0 & 0 & 2 & 0 & 0 & 0 \\\\\n. 0 & -1 & 0 & 0 & 0 & 0 \\\\\n. 2 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0\n. \\end{matrix} \\right)\n. \\f}\n. \n. The minimum cost is found by solving the generalized eigenvalue problem.\n. \n. \\f{equation*}{\n. D^T D A = \\lambda \\left( C\\right) A\n. \\f}\n. \n. The system produces only one positive eigenvalue \\f$ \\lambda\\f$ which is chosen as the solution\n. with its eigenvector \\f$\\mathbf{u}\\f$. These are used to find the coefficients\n. \n. \\f{equation*}{\n. A = \\sqrt{\\frac{1}{\\mathbf{u}^T C \\mathbf{u}}} \\mathbf{u}\n. \\f}\n. The scaling factor guarantees that \\f$A^T C A =1\\f$.\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' + ... + + +def fitLine(points, distType, param, reps, aeps, line=...) -> typing.Any: + 'fitLine(points, distType, param, reps, aeps[, line]) -> line\n. @brief Fits a line to a 2D or 3D point set.\n. \n. The function fitLine fits a line to a 2D or 3D point set by minimizing \\f$\\sum_i \\rho(r_i)\\f$ where\n. \\f$r_i\\f$ is a distance between the \\f$i^{th}\\f$ point, the line and \\f$\\rho(r)\\f$ is a distance function, one\n. of the following:\n. - DIST_L2\n. \\f[\\rho (r) = r^2/2 \\quad \\text{(the simplest and the fastest least-squares method)}\\f]\n. - DIST_L1\n. \\f[\\rho (r) = r\\f]\n. - DIST_L12\n. \\f[\\rho (r) = 2 \\cdot ( \\sqrt{1 + \\frac{r^2}{2}} - 1)\\f]\n. - DIST_FAIR\n. \\f[\\rho \\left (r \\right ) = C^2 \\cdot \\left ( \\frac{r}{C} - \\log{\\left(1 + \\frac{r}{C}\\right)} \\right ) \\quad \\text{where} \\quad C=1.3998\\f]\n. - DIST_WELSCH\n. \\f[\\rho \\left (r \\right ) = \\frac{C^2}{2} \\cdot \\left ( 1 - \\exp{\\left(-\\left(\\frac{r}{C}\\right)^2\\right)} \\right ) \\quad \\text{where} \\quad C=2.9846\\f]\n. - DIST_HUBER\n. \\f[\\rho (r) = \\fork{r^2/2}{if \\(r < C\\)}{C \\cdot (r-C/2)}{otherwise} \\quad \\text{where} \\quad C=1.345\\f]\n. \n. The algorithm is based on the M-estimator ( ) technique\n. that iteratively fits the line using the weighted least-squares algorithm. After each iteration the\n. weights \\f$w_i\\f$ are adjusted to be inversely proportional to \\f$\\rho(r_i)\\f$ .\n. \n. @param points Input vector of 2D or 3D points, stored in std::vector\\<\\> or Mat.\n. @param line Output line parameters. In case of 2D fitting, it should be a vector of 4 elements\n. (like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line and\n. (x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements (like\n. Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector collinear to the line\n. and (x0, y0, z0) is a point on the line.\n. @param distType Distance used by the M-estimator, see #DistanceTypes\n. @param param Numerical parameter ( C ) for some types of distances. If it is 0, an optimal value\n. is chosen.\n. @param reps Sufficient accuracy for the radius (distance between the coordinate origin and the line).\n. @param aeps Sufficient accuracy for the angle. 0.01 would be a good default value for reps and aeps.' + ... + + +flann_Index = _mod_cv2.flann_Index + + +def flip(src: ndarray, flipCode, dts: ndarray = ...) -> typing.Any: + 'flip(src, flipCode[, dst]) -> dst\n. @brief Flips a 2D array around vertical, horizontal, or both axes.\n. \n. The function cv::flip flips the array in one of three different ways (row\n. and column indices are 0-based):\n. \\f[\\texttt{dst} _{ij} =\n. \\left\\{\n. \\begin{array}{l l}\n. \\texttt{src} _{\\texttt{src.rows}-i-1,j} & if\\; \\texttt{flipCode} = 0 \\\\\n. \\texttt{src} _{i, \\texttt{src.cols} -j-1} & if\\; \\texttt{flipCode} > 0 \\\\\n. \\texttt{src} _{ \\texttt{src.rows} -i-1, \\texttt{src.cols} -j-1} & if\\; \\texttt{flipCode} < 0 \\\\\n. \\end{array}\n. \\right.\\f]\n. The example scenarios of using the function are the following:\n. * Vertical flipping of the image (flipCode == 0) to switch between\n. top-left and bottom-left image origin. This is a typical operation\n. in video processing on Microsoft Windows\\* OS.\n. * Horizontal flipping of the image with the subsequent horizontal\n. shift and absolute difference calculation to check for a\n. vertical-axis symmetry (flipCode \\> 0).\n. * Simultaneous horizontal and vertical flipping of the image with\n. the subsequent shift and absolute difference calculation to check\n. for a central symmetry (flipCode \\< 0).\n. * Reversing the order of point arrays (flipCode \\> 0 or\n. flipCode == 0).\n. @param src input array.\n. @param dst output array of the same size and type as src.\n. @param flipCode a flag to specify how to flip the array; 0 means\n. flipping around the x-axis and positive value (for example, 1) means\n. flipping around y-axis. Negative value (for example, -1) means flipping\n. around both axes.\n. @sa transpose , repeat , completeSymm' + ... + + +def floodFill(image: ndarray, mask: typing.Optional[ndarray], seedPoint, newVal, loDiff=..., upDiff=..., flags: int = ...) -> typing.Any: + "floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]]) -> retval, image, mask, rect\n. @brief Fills a connected component with the given color.\n. \n. The function cv::floodFill fills a connected component starting from the seed point with the specified\n. color. The connectivity is determined by the color/brightness closeness of the neighbor pixels. The\n. pixel at \\f$(x,y)\\f$ is considered to belong to the repainted domain if:\n. \n. - in case of a grayscale image and floating range\n. \\f[\\texttt{src} (x',y')- \\texttt{loDiff} \\leq \\texttt{src} (x,y) \\leq \\texttt{src} (x',y')+ \\texttt{upDiff}\\f]\n. \n. \n. - in case of a grayscale image and fixed range\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)- \\texttt{loDiff} \\leq \\texttt{src} (x,y) \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)+ \\texttt{upDiff}\\f]\n. \n. \n. - in case of a color image and floating range\n. \\f[\\texttt{src} (x',y')_r- \\texttt{loDiff} _r \\leq \\texttt{src} (x,y)_r \\leq \\texttt{src} (x',y')_r+ \\texttt{upDiff} _r,\\f]\n. \\f[\\texttt{src} (x',y')_g- \\texttt{loDiff} _g \\leq \\texttt{src} (x,y)_g \\leq \\texttt{src} (x',y')_g+ \\texttt{upDiff} _g\\f]\n. and\n. \\f[\\texttt{src} (x',y')_b- \\texttt{loDiff} _b \\leq \\texttt{src} (x,y)_b \\leq \\texttt{src} (x',y')_b+ \\texttt{upDiff} _b\\f]\n. \n. \n. - in case of a color image and fixed range\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_r- \\texttt{loDiff} _r \\leq \\texttt{src} (x,y)_r \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_r+ \\texttt{upDiff} _r,\\f]\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_g- \\texttt{loDiff} _g \\leq \\texttt{src} (x,y)_g \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_g+ \\texttt{upDiff} _g\\f]\n. and\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_b- \\texttt{loDiff} _b \\leq \\texttt{src} (x,y)_b \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_b+ \\texttt{upDiff} _b\\f]\n. \n. \n. where \\f$src(x',y')\\f$ is the value of one of pixel neighbors that is already known to belong to the\n. component. That is, to be added to the connected component, a color/brightness of the pixel should\n. be close enough to:\n. - Color/brightness of one of its neighbors that already belong to the connected component in case\n. of a floating range.\n. - Color/brightness of the seed point in case of a fixed range.\n. \n. Use these functions to either mark a connected component with the specified color in-place, or build\n. a mask and then extract the contour, or copy the region to another image, and so on.\n. \n. @param image Input/output 1- or 3-channel, 8-bit, or floating-point image. It is modified by the\n. function unless the #FLOODFILL_MASK_ONLY flag is set in the second variant of the function. See\n. the details below.\n. @param mask Operation mask that should be a single-channel 8-bit image, 2 pixels wider and 2 pixels\n. taller than image. Since this is both an input and output parameter, you must take responsibility\n. of initializing it. Flood-filling cannot go across non-zero pixels in the input mask. For example,\n. an edge detector output can be used as a mask to stop filling at edges. On output, pixels in the\n. mask corresponding to filled pixels in the image are set to 1 or to the a value specified in flags\n. as described below. Additionally, the function fills the border of the mask with ones to simplify\n. internal processing. It is therefore possible to use the same mask in multiple calls to the function\n. to make sure the filled areas do not overlap.\n. @param seedPoint Starting point.\n. @param newVal New value of the repainted domain pixels.\n. @param loDiff Maximal lower brightness/color difference between the currently observed pixel and\n. one of its neighbors belonging to the component, or a seed pixel being added to the component.\n. @param upDiff Maximal upper brightness/color difference between the currently observed pixel and\n. one of its neighbors belonging to the component, or a seed pixel being added to the component.\n. @param rect Optional output parameter set by the function to the minimum bounding rectangle of the\n. repainted domain.\n. @param flags Operation flags. The first 8 bits contain a connectivity value. The default value of\n. 4 means that only the four nearest neighbor pixels (those that share an edge) are considered. A\n. connectivity value of 8 means that the eight nearest neighbor pixels (those that share a corner)\n. will be considered. The next 8 bits (8-16) contain a value between 1 and 255 with which to fill\n. the mask (the default value is 1). For example, 4 | ( 255 \\<\\< 8 ) will consider 4 nearest\n. neighbours and fill the mask with a value of 255. The following additional options occupy higher\n. bits and therefore may be further combined with the connectivity and mask fill values using\n. bit-wise or (|), see #FloodFillFlags.\n. \n. @note Since the mask is larger than the filled image, a pixel \\f$(x, y)\\f$ in image corresponds to the\n. pixel \\f$(x+1, y+1)\\f$ in the mask .\n. \n. @sa findContours" + ... + + +def gemm(src1: ndarray, src2: ndarray, alpha, src3, beta, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'gemm(src1, src2, alpha, src3, beta[, dst[, flags]]) -> dst\n. @brief Performs generalized matrix multiplication.\n. \n. The function cv::gemm performs generalized matrix multiplication similar to the\n. gemm functions in BLAS level 3. For example,\n. `gemm(src1, src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T)`\n. corresponds to\n. \\f[\\texttt{dst} = \\texttt{alpha} \\cdot \\texttt{src1} ^T \\cdot \\texttt{src2} + \\texttt{beta} \\cdot \\texttt{src3} ^T\\f]\n. \n. In case of complex (two-channel) data, performed a complex matrix\n. multiplication.\n. \n. The function can be replaced with a matrix expression. For example, the\n. above call can be replaced with:\n. @code{.cpp}\n. dst = alpha*src1.t()*src2 + beta*src3.t();\n. @endcode\n. @param src1 first multiplied input matrix that could be real(CV_32FC1,\n. CV_64FC1) or complex(CV_32FC2, CV_64FC2).\n. @param src2 second multiplied input matrix of the same type as src1.\n. @param alpha weight of the matrix product.\n. @param src3 third optional delta matrix added to the matrix product; it\n. should have the same type as src1 and src2.\n. @param beta weight of src3.\n. @param dst output matrix; it has the proper size and the same type as\n. input matrices.\n. @param flags operation flags (cv::GemmFlags)\n. @sa mulTransposed , transform' + ... + + +def getAffineTransform(src: ndarray, dts: ndarray) -> typing.Any: + 'getAffineTransform(src, dst) -> retval\n. @overload' + ... + + +def getBuildInformation() -> typing.Any: + 'getBuildInformation() -> retval\n. @brief Returns full configuration time cmake output.\n. \n. Returned value is raw cmake output including version control system revision, compiler version,\n. compiler flags, enabled modules and third party libraries, etc. Output format depends on target\n. architecture.' + ... + + +def getCPUFeaturesLine() -> typing.Any: + 'getCPUFeaturesLine() -> retval\n. @brief Returns list of CPU features enabled during compilation.\n. \n. Returned value is a string containing space separated list of CPU features with following markers:\n. \n. - no markers - baseline features\n. - prefix `*` - features enabled in dispatcher\n. - suffix `?` - features enabled but not available in HW\n. \n. Example: `SSE SSE2 SSE3 *SSE4.1 *SSE4.2 *FP16 *AVX *AVX2 *AVX512-SKX?`' + ... + + +def getCPUTickCount() -> typing.Any: + 'getCPUTickCount() -> retval\n. @brief Returns the number of CPU ticks.\n. \n. The function returns the current number of CPU ticks on some architectures (such as x86, x64,\n. PowerPC). On other platforms the function is equivalent to getTickCount. It can also be used for\n. very accurate time measurements, as well as for RNG initialization. Note that in case of multi-CPU\n. systems a thread, from which getCPUTickCount is called, can be suspended and resumed at another CPU\n. with its own counter. So, theoretically (and practically) the subsequent calls to the function do\n. not necessary return the monotonously increasing values. Also, since a modern CPU varies the CPU\n. frequency depending on the load, the number of CPU clocks spent in some code cannot be directly\n. converted to time units. Therefore, getTickCount is generally a preferable solution for measuring\n. execution time.' + ... + + +def getDefaultNewCameraMatrix(cameraMatrix, imgsize=..., centerPrincipalPoint=...) -> typing.Any: + 'getDefaultNewCameraMatrix(cameraMatrix[, imgsize[, centerPrincipalPoint]]) -> retval\n. @brief Returns the default new camera matrix.\n. \n. The function returns the camera matrix that is either an exact copy of the input cameraMatrix (when\n. centerPrinicipalPoint=false ), or the modified one (when centerPrincipalPoint=true).\n. \n. In the latter case, the new camera matrix will be:\n. \n. \\f[\\begin{bmatrix} f_x && 0 && ( \\texttt{imgSize.width} -1)*0.5 \\\\ 0 && f_y && ( \\texttt{imgSize.height} -1)*0.5 \\\\ 0 && 0 && 1 \\end{bmatrix} ,\\f]\n. \n. where \\f$f_x\\f$ and \\f$f_y\\f$ are \\f$(0,0)\\f$ and \\f$(1,1)\\f$ elements of cameraMatrix, respectively.\n. \n. By default, the undistortion functions in OpenCV (see #initUndistortRectifyMap, #undistort) do not\n. move the principal point. However, when you work with stereo, it is important to move the principal\n. points in both views to the same y-coordinate (which is required by most of stereo correspondence\n. algorithms), and may be to the same x-coordinate too. So, you can form the new camera matrix for\n. each view where the principal points are located at the center.\n. \n. @param cameraMatrix Input camera matrix.\n. @param imgsize Camera view image size in pixels.\n. @param centerPrincipalPoint Location of the principal point in the new camera matrix. The\n. parameter indicates whether this location should be at the image center or not.' + ... + + +def getDerivKernels(dx, dy, ksize, kx=..., ky=..., normalize=..., ktype=...) -> typing.Any: + 'getDerivKernels(dx, dy, ksize[, kx[, ky[, normalize[, ktype]]]]) -> kx, ky\n. @brief Returns filter coefficients for computing spatial image derivatives.\n. \n. The function computes and returns the filter coefficients for spatial image derivatives. When\n. `ksize=FILTER_SCHARR`, the Scharr \\f$3 \\times 3\\f$ kernels are generated (see #Scharr). Otherwise, Sobel\n. kernels are generated (see #Sobel). The filters are normally passed to #sepFilter2D or to\n. \n. @param kx Output matrix of row filter coefficients. It has the type ktype .\n. @param ky Output matrix of column filter coefficients. It has the type ktype .\n. @param dx Derivative order in respect of x.\n. @param dy Derivative order in respect of y.\n. @param ksize Aperture size. It can be FILTER_SCHARR, 1, 3, 5, or 7.\n. @param normalize Flag indicating whether to normalize (scale down) the filter coefficients or not.\n. Theoretically, the coefficients should have the denominator \\f$=2^{ksize*2-dx-dy-2}\\f$. If you are\n. going to filter floating-point images, you are likely to use the normalized kernels. But if you\n. compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve\n. all the fractional bits, you may want to set normalize=false .\n. @param ktype Type of filter coefficients. It can be CV_32f or CV_64F .' + ... + + +def getFontScaleFromHeight(fontFace, pixelHeight, thickness=...) -> typing.Any: + 'getFontScaleFromHeight(fontFace, pixelHeight[, thickness]) -> retval\n. @brief Calculates the font-specific size to use to achieve a given height in pixels.\n. \n. @param fontFace Font to use, see cv::HersheyFonts.\n. @param pixelHeight Pixel height to compute the fontScale for\n. @param thickness Thickness of lines used to render the text.See putText for details.\n. @return The fontSize to use for cv::putText\n. \n. @see cv::putText' + ... + + +def getGaborKernel(ksize, sigma, theta, lambd, gamma, psi=..., ktype=...) -> typing.Any: + 'getGaborKernel(ksize, sigma, theta, lambd, gamma[, psi[, ktype]]) -> retval\n. @brief Returns Gabor filter coefficients.\n. \n. For more details about gabor filter equations and parameters, see: [Gabor\n. Filter](http://en.wikipedia.org/wiki/Gabor_filter).\n. \n. @param ksize Size of the filter returned.\n. @param sigma Standard deviation of the gaussian envelope.\n. @param theta Orientation of the normal to the parallel stripes of a Gabor function.\n. @param lambd Wavelength of the sinusoidal factor.\n. @param gamma Spatial aspect ratio.\n. @param psi Phase offset.\n. @param ktype Type of filter coefficients. It can be CV_32F or CV_64F .' + ... + + +def getGaussianKernel(ksize, sigma, ktype=...) -> typing.Any: + 'getGaussianKernel(ksize, sigma[, ktype]) -> retval\n. @brief Returns Gaussian filter coefficients.\n. \n. The function computes and returns the \\f$\\texttt{ksize} \\times 1\\f$ matrix of Gaussian filter\n. coefficients:\n. \n. \\f[G_i= \\alpha *e^{-(i-( \\texttt{ksize} -1)/2)^2/(2* \\texttt{sigma}^2)},\\f]\n. \n. where \\f$i=0..\\texttt{ksize}-1\\f$ and \\f$\\alpha\\f$ is the scale factor chosen so that \\f$\\sum_i G_i=1\\f$.\n. \n. Two of such generated kernels can be passed to sepFilter2D. Those functions automatically recognize\n. smoothing kernels (a symmetrical kernel with sum of weights equal to 1) and handle them accordingly.\n. You may also use the higher-level GaussianBlur.\n. @param ksize Aperture size. It should be odd ( \\f$\\texttt{ksize} \\mod 2 = 1\\f$ ) and positive.\n. @param sigma Gaussian standard deviation. If it is non-positive, it is computed from ksize as\n. `sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8`.\n. @param ktype Type of filter coefficients. It can be CV_32F or CV_64F .\n. @sa sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur' + ... + + +def getHardwareFeatureName(feature) -> typing.Any: + 'getHardwareFeatureName(feature) -> retval\n. @brief Returns feature name by ID\n. \n. Returns empty string if feature is not defined' + ... + + +def getNumThreads() -> typing.Any: + 'getNumThreads() -> retval\n. @brief Returns the number of threads used by OpenCV for parallel regions.\n. \n. Always returns 1 if OpenCV is built without threading support.\n. \n. The exact meaning of return value depends on the threading framework used by OpenCV library:\n. - `TBB` - The number of threads, that OpenCV will try to use for parallel regions. If there is\n. any tbb::thread_scheduler_init in user code conflicting with OpenCV, then function returns\n. default number of threads used by TBB library.\n. - `OpenMP` - An upper bound on the number of threads that could be used to form a new team.\n. - `Concurrency` - The number of threads, that OpenCV will try to use for parallel regions.\n. - `GCD` - Unsupported; returns the GCD thread pool limit (512) for compatibility.\n. - `C=` - The number of threads, that OpenCV will try to use for parallel regions, if before\n. called setNumThreads with threads \\> 0, otherwise returns the number of logical CPUs,\n. available for the process.\n. @sa setNumThreads, getThreadNum' + ... + + +def getNumberOfCPUs() -> typing.Any: + 'getNumberOfCPUs() -> retval\n. @brief Returns the number of logical CPUs available for the process.' + ... + + +def getOptimalDFTSize(vecsize) -> typing.Any: + "getOptimalDFTSize(vecsize) -> retval\n. @brief Returns the optimal DFT size for a given vector size.\n. \n. DFT performance is not a monotonic function of a vector size. Therefore, when you calculate\n. convolution of two arrays or perform the spectral analysis of an array, it usually makes sense to\n. pad the input data with zeros to get a bit larger array that can be transformed much faster than the\n. original one. Arrays whose size is a power-of-two (2, 4, 8, 16, 32, ...) are the fastest to process.\n. Though, the arrays whose size is a product of 2's, 3's, and 5's (for example, 300 = 5\\*5\\*3\\*2\\*2)\n. are also processed quite efficiently.\n. \n. The function cv::getOptimalDFTSize returns the minimum number N that is greater than or equal to vecsize\n. so that the DFT of a vector of size N can be processed efficiently. In the current implementation N\n. = 2 ^p^ \\* 3 ^q^ \\* 5 ^r^ for some integer p, q, r.\n. \n. The function returns a negative number if vecsize is too large (very close to INT_MAX ).\n. \n. While the function cannot be used directly to estimate the optimal vector size for DCT transform\n. (since the current DCT implementation supports only even-size vectors), it can be easily processed\n. as getOptimalDFTSize((vecsize+1)/2)\\*2.\n. @param vecsize vector size.\n. @sa dft , dct , idft , idct , mulSpectrums" + ... + + +def getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha, newImgSize=..., centerPrincipalPoint=...) -> typing.Any: + 'getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha[, newImgSize[, centerPrincipalPoint]]) -> retval, validPixROI\n. @brief Returns the new camera matrix based on the free scaling parameter.\n. \n. @param cameraMatrix Input camera matrix.\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param imageSize Original image size.\n. @param alpha Free scaling parameter between 0 (when all the pixels in the undistorted image are\n. valid) and 1 (when all the source image pixels are retained in the undistorted image). See\n. stereoRectify for details.\n. @param newImgSize Image size after rectification. By default, it is set to imageSize .\n. @param validPixROI Optional output rectangle that outlines all-good-pixels region in the\n. undistorted image. See roi1, roi2 description in stereoRectify .\n. @param centerPrincipalPoint Optional flag that indicates whether in the new camera matrix the\n. principal point should be at the image center or not. By default, the principal point is chosen to\n. best fit a subset of the source image (determined by alpha) to the corrected image.\n. @return new_camera_matrix Output new camera matrix.\n. \n. The function computes and returns the optimal new camera matrix based on the free scaling parameter.\n. By varying this parameter, you may retrieve only sensible pixels alpha=0 , keep all the original\n. image pixels if there is valuable information in the corners alpha=1 , or get something in between.\n. When alpha\\>0 , the undistorted result is likely to have some black pixels corresponding to\n. "virtual" pixels outside of the captured distorted image. The original camera matrix, distortion\n. coefficients, the computed new camera matrix, and newImageSize should be passed to\n. initUndistortRectifyMap to produce the maps for remap .' + ... + + +def getPerspectiveTransform(src: ndarray, dts: ndarray, solveMethod=...) -> typing.Any: + "getPerspectiveTransform(src, dst[, solveMethod]) -> retval\n. @brief Calculates a perspective transform from four pairs of the corresponding points.\n. \n. The function calculates the \\f$3 \\times 3\\f$ matrix of a perspective transform so that:\n. \n. \\f[\\begin{bmatrix} t_i x'_i \\\\ t_i y'_i \\\\ t_i \\end{bmatrix} = \\texttt{map_matrix} \\cdot \\begin{bmatrix} x_i \\\\ y_i \\\\ 1 \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2,3\\f]\n. \n. @param src Coordinates of quadrangle vertices in the source image.\n. @param dst Coordinates of the corresponding quadrangle vertices in the destination image.\n. @param solveMethod method passed to cv::solve (#DecompTypes)\n. \n. @sa findHomography, warpPerspective, perspectiveTransform" + ... + + +def getRectSubPix(image: ndarray, patchSize, center, patch=..., patchType=...) -> typing.Any: + 'getRectSubPix(image, patchSize, center[, patch[, patchType]]) -> patch\n. @brief Retrieves a pixel rectangle from an image with sub-pixel accuracy.\n. \n. The function getRectSubPix extracts pixels from src:\n. \n. \\f[patch(x, y) = src(x + \\texttt{center.x} - ( \\texttt{dst.cols} -1)*0.5, y + \\texttt{center.y} - ( \\texttt{dst.rows} -1)*0.5)\\f]\n. \n. where the values of the pixels at non-integer coordinates are retrieved using bilinear\n. interpolation. Every channel of multi-channel images is processed independently. Also\n. the image should be a single channel or three channel image. While the center of the\n. rectangle must be inside the image, parts of the rectangle may be outside.\n. \n. @param image Source image.\n. @param patchSize Size of the extracted patch.\n. @param center Floating point coordinates of the center of the extracted rectangle within the\n. source image. The center must be inside the image.\n. @param patch Extracted patch that has the size patchSize and the same number of channels as src .\n. @param patchType Depth of the extracted pixels. By default, they have the same depth as src .\n. \n. @sa warpAffine, warpPerspective' + ... + + +def getRotationMatrix2D(center, angle, scale) -> typing.Any: + 'getRotationMatrix2D(center, angle, scale) -> retval\n. @brief Calculates an affine matrix of 2D rotation.\n. \n. The function calculates the following matrix:\n. \n. \\f[\\begin{bmatrix} \\alpha & \\beta & (1- \\alpha ) \\cdot \\texttt{center.x} - \\beta \\cdot \\texttt{center.y} \\\\ - \\beta & \\alpha & \\beta \\cdot \\texttt{center.x} + (1- \\alpha ) \\cdot \\texttt{center.y} \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[\\begin{array}{l} \\alpha = \\texttt{scale} \\cdot \\cos \\texttt{angle} , \\\\ \\beta = \\texttt{scale} \\cdot \\sin \\texttt{angle} \\end{array}\\f]\n. \n. The transformation maps the rotation center to itself. If this is not the target, adjust the shift.\n. \n. @param center Center of the rotation in the source image.\n. @param angle Rotation angle in degrees. Positive values mean counter-clockwise rotation (the\n. coordinate origin is assumed to be the top-left corner).\n. @param scale Isotropic scale factor.\n. \n. @sa getAffineTransform, warpAffine, transform' + ... + + +def getStructuringElement(shape, ksize, anchor=...) -> typing.Any: + 'getStructuringElement(shape, ksize[, anchor]) -> retval\n. @brief Returns a structuring element of the specified size and shape for morphological operations.\n. \n. The function constructs and returns the structuring element that can be further passed to #erode,\n. #dilate or #morphologyEx. But you can also construct an arbitrary binary mask yourself and use it as\n. the structuring element.\n. \n. @param shape Element shape that could be one of #MorphShapes\n. @param ksize Size of the structuring element.\n. @param anchor Anchor position within the element. The default value \\f$(-1, -1)\\f$ means that the\n. anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor\n. position. In other cases the anchor just regulates how much the result of the morphological\n. operation is shifted.' + ... + + +def getTextSize(text, fontFace, fontScale, thickness) -> typing.Any: + 'getTextSize(text, fontFace, fontScale, thickness) -> retval, baseLine\n. @brief Calculates the width and height of a text string.\n. \n. The function cv::getTextSize calculates and returns the size of a box that contains the specified text.\n. That is, the following code renders some text, the tight box surrounding it, and the baseline: :\n. @code\n. String text = "Funny text inside the box";\n. int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX;\n. double fontScale = 2;\n. int thickness = 3;\n. \n. Mat img(600, 800, CV_8UC3, Scalar::all(0));\n. \n. int baseline=0;\n. Size textSize = getTextSize(text, fontFace,\n. fontScale, thickness, &baseline);\n. baseline += thickness;\n. \n. // center the text\n. Point textOrg((img.cols - textSize.width)/2,\n. (img.rows + textSize.height)/2);\n. \n. // draw the box\n. rectangle(img, textOrg + Point(0, baseline),\n. textOrg + Point(textSize.width, -textSize.height),\n. Scalar(0,0,255));\n. // ... and the baseline first\n. line(img, textOrg + Point(0, thickness),\n. textOrg + Point(textSize.width, thickness),\n. Scalar(0, 0, 255));\n. \n. // then put the text itself\n. putText(img, text, textOrg, fontFace, fontScale,\n. Scalar::all(255), thickness, 8);\n. @endcode\n. \n. @param text Input text string.\n. @param fontFace Font to use, see #HersheyFonts.\n. @param fontScale Font scale factor that is multiplied by the font-specific base size.\n. @param thickness Thickness of lines used to render the text. See #putText for details.\n. @param[out] baseLine y-coordinate of the baseline relative to the bottom-most text\n. point.\n. @return The size of a box that contains the specified text.\n. \n. @see putText' + ... + + +def getThreadNum() -> typing.Any: + "getThreadNum() -> retval\n. @brief Returns the index of the currently executed thread within the current parallel region. Always\n. returns 0 if called outside of parallel region.\n. \n. @deprecated Current implementation doesn't corresponding to this documentation.\n. \n. The exact meaning of the return value depends on the threading framework used by OpenCV library:\n. - `TBB` - Unsupported with current 4.1 TBB release. Maybe will be supported in future.\n. - `OpenMP` - The thread number, within the current team, of the calling thread.\n. - `Concurrency` - An ID for the virtual processor that the current context is executing on (0\n. for master thread and unique number for others, but not necessary 1,2,3,...).\n. - `GCD` - System calling thread's ID. Never returns 0 inside parallel region.\n. - `C=` - The index of the current parallel task.\n. @sa setNumThreads, getNumThreads" + ... + + +def getTickCount() -> typing.Any: + 'getTickCount() -> retval\n. @brief Returns the number of ticks.\n. \n. The function returns the number of ticks after the certain event (for example, when the machine was\n. turned on). It can be used to initialize RNG or to measure a function execution time by reading the\n. tick count before and after the function call.\n. @sa getTickFrequency, TickMeter' + ... + + +def getTickFrequency() -> typing.Any: + 'getTickFrequency() -> retval\n. @brief Returns the number of ticks per second.\n. \n. The function returns the number of ticks per second. That is, the following code computes the\n. execution time in seconds:\n. @code\n. double t = (double)getTickCount();\n. // do something ...\n. t = ((double)getTickCount() - t)/getTickFrequency();\n. @endcode\n. @sa getTickCount, TickMeter' + ... + + +def getTrackbarPos(trackbarname, winname) -> typing.Any: + 'getTrackbarPos(trackbarname, winname) -> retval\n. @brief Returns the trackbar position.\n. \n. The function returns the current position of the specified trackbar.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of the trackbar.' + ... + + +def getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize) -> typing.Any: + 'getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize) -> retval\n.' + ... + + +def getVersionMajor() -> typing.Any: + 'getVersionMajor() -> retval\n. @brief Returns major library version' + ... + + +def getVersionMinor() -> typing.Any: + 'getVersionMinor() -> retval\n. @brief Returns minor library version' + ... + + +def getVersionRevision() -> typing.Any: + 'getVersionRevision() -> retval\n. @brief Returns revision field of the library version' + ... + + +def getVersionString() -> typing.Any: + 'getVersionString() -> retval\n. @brief Returns library version string\n. \n. For example "3.4.1-dev".\n. \n. @sa getMajorVersion, getMinorVersion, getRevisionVersion' + ... + + +def getWindowImageRect(winname) -> typing.Any: + 'getWindowImageRect(winname) -> retval\n. @brief Provides rectangle of image in the window.\n. \n. The function getWindowImageRect returns the client screen coordinates, width and height of the image rendering area.\n. \n. @param winname Name of the window.\n. \n. @sa resizeWindow moveWindow' + ... + + +def getWindowProperty(winname, prop_id) -> typing.Any: + 'getWindowProperty(winname, prop_id) -> retval\n. @brief Provides parameters of a window.\n. \n. The function getWindowProperty returns properties of a window.\n. \n. @param winname Name of the window.\n. @param prop_id Window property to retrieve. The following operation flags are available: (cv::WindowPropertyFlags)\n. \n. @sa setWindowProperty' + ... + + +def goodFeaturesToTrack(image: ndarray, maxCorners, qualityLevel, minDistance, corners=..., mask: ndarray = ..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: + 'goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) -> corners\n. @brief Determines strong corners on an image.\n. \n. The function finds the most prominent corners in the image or in the specified image region, as\n. described in @cite Shi94\n. \n. - Function calculates the corner quality measure at every source image pixel using the\n. #cornerMinEigenVal or #cornerHarris .\n. - Function performs a non-maximum suppression (the local maximums in *3 x 3* neighborhood are\n. retained).\n. - The corners with the minimal eigenvalue less than\n. \\f$\\texttt{qualityLevel} \\cdot \\max_{x,y} qualityMeasureMap(x,y)\\f$ are rejected.\n. - The remaining corners are sorted by the quality measure in the descending order.\n. - Function throws away each corner for which there is a stronger corner at a distance less than\n. maxDistance.\n. \n. The function can be used to initialize a point-based tracker of an object.\n. \n. @note If the function is called with different values A and B of the parameter qualityLevel , and\n. A \\> B, the vector of returned corners with qualityLevel=A will be the prefix of the output vector\n. with qualityLevel=B .\n. \n. @param image Input 8-bit or floating-point 32-bit, single-channel image.\n. @param corners Output vector of detected corners.\n. @param maxCorners Maximum number of corners to return. If there are more corners than are found,\n. the strongest of them is returned. `maxCorners <= 0` implies that no limit on the maximum is set\n. and all detected corners are returned.\n. @param qualityLevel Parameter characterizing the minimal accepted quality of image corners. The\n. parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue\n. (see #cornerMinEigenVal ) or the Harris function response (see #cornerHarris ). The corners with the\n. quality measure less than the product are rejected. For example, if the best corner has the\n. quality measure = 1500, and the qualityLevel=0.01 , then all the corners with the quality measure\n. less than 15 are rejected.\n. @param minDistance Minimum possible Euclidean distance between the returned corners.\n. @param mask Optional region of interest. If the image is not empty (it needs to have the type\n. CV_8UC1 and the same size as image ), it specifies the region in which the corners are detected.\n. @param blockSize Size of an average block for computing a derivative covariation matrix over each\n. pixel neighborhood. See cornerEigenValsAndVecs .\n. @param useHarrisDetector Parameter indicating whether to use a Harris detector (see #cornerHarris)\n. or #cornerMinEigenVal.\n. @param k Free parameter of the Harris detector.\n. \n. @sa cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform,\n\n\n\ngoodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, mask, blockSize, gradientSize[, corners[, useHarrisDetector[, k]]]) -> corners\n.' + ... + + +def grabCut(img: ndarray, mask: typing.Optional[ndarray], rect, bgdModel, fgdModel, iterCount, mode=...) -> typing.Any: + 'grabCut(img, mask, rect, bgdModel, fgdModel, iterCount[, mode]) -> mask, bgdModel, fgdModel\n. @brief Runs the GrabCut algorithm.\n. \n. The function implements the [GrabCut image segmentation algorithm](http://en.wikipedia.org/wiki/GrabCut).\n. \n. @param img Input 8-bit 3-channel image.\n. @param mask Input/output 8-bit single-channel mask. The mask is initialized by the function when\n. mode is set to #GC_INIT_WITH_RECT. Its elements may have one of the #GrabCutClasses.\n. @param rect ROI containing a segmented object. The pixels outside of the ROI are marked as\n. "obvious background". The parameter is only used when mode==#GC_INIT_WITH_RECT .\n. @param bgdModel Temporary array for the background model. Do not modify it while you are\n. processing the same image.\n. @param fgdModel Temporary arrays for the foreground model. Do not modify it while you are\n. processing the same image.\n. @param iterCount Number of iterations the algorithm should make before returning the result. Note\n. that the result can be refined with further calls with mode==#GC_INIT_WITH_MASK or\n. mode==GC_EVAL .\n. @param mode Operation mode that could be one of the #GrabCutModes' + ... + + +def groupRectangles(rectList, groupThreshold, eps=...) -> typing.Any: + 'groupRectangles(rectList, groupThreshold[, eps]) -> rectList, weights\n. @overload' + ... + + +def haveImageReader(filename: str) -> typing.Any: + 'haveImageReader(filename) -> retval\n. @brief Returns true if the specified image can be decoded by OpenCV\n. \n. @param filename File name of the image' + ... + + +def haveImageWriter(filename: str) -> typing.Any: + 'haveImageWriter(filename) -> retval\n. @brief Returns true if an image with the specified filename can be encoded by OpenCV\n. \n. @param filename File name of the image' + ... + + +def haveOpenVX() -> typing.Any: + 'haveOpenVX() -> retval\n.' + ... + + +def hconcat(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'hconcat(src[, dst]) -> dst\n. @overload\n. @code{.cpp}\n. std::vector matrices = { cv::Mat(4, 1, CV_8UC1, cv::Scalar(1)),\n. cv::Mat(4, 1, CV_8UC1, cv::Scalar(2)),\n. cv::Mat(4, 1, CV_8UC1, cv::Scalar(3)),};\n. \n. cv::Mat out;\n. cv::hconcat( matrices, out );\n. //out:\n. //[1, 2, 3;\n. // 1, 2, 3;\n. // 1, 2, 3;\n. // 1, 2, 3]\n. @endcode\n. @param src input array or vector of matrices. all of the matrices must have the same number of rows and the same depth.\n. @param dst output array. It has the same number of rows and depth as the src, and the sum of cols of the src.\n. same depth.' + ... + + +def idct(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'idct(src[, dst[, flags]]) -> dst\n. @brief Calculates the inverse Discrete Cosine Transform of a 1D or 2D array.\n. \n. idct(src, dst, flags) is equivalent to dct(src, dst, flags | DCT_INVERSE).\n. @param src input floating-point single-channel array.\n. @param dst output array of the same size and type as src.\n. @param flags operation flags.\n. @sa dct, dft, idft, getOptimalDFTSize' + ... + + +def idft(src: ndarray, dts: ndarray = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: + 'idft(src[, dst[, flags[, nonzeroRows]]]) -> dst\n. @brief Calculates the inverse Discrete Fourier Transform of a 1D or 2D array.\n. \n. idft(src, dst, flags) is equivalent to dft(src, dst, flags | #DFT_INVERSE) .\n. @note None of dft and idft scales the result by default. So, you should pass #DFT_SCALE to one of\n. dft or idft explicitly to make these transforms mutually inverse.\n. @sa dft, dct, idct, mulSpectrums, getOptimalDFTSize\n. @param src input floating-point real or complex array.\n. @param dst output array whose size and type depend on the flags.\n. @param flags operation flags (see dft and #DftFlags).\n. @param nonzeroRows number of dst rows to process; the rest of the rows have undefined content (see\n. the convolution sample in dft description.' + ... + + +def illuminationChange(src: ndarray, mask: ndarray, dts: ndarray = ..., alpha=..., beta=...) -> typing.Any: + 'illuminationChange(src, mask[, dst[, alpha[, beta]]]) -> dst\n. @brief Applying an appropriate non-linear transformation to the gradient field inside the selection and\n. then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param alpha Value ranges between 0-2.\n. @param beta Value ranges between 0-2.\n. \n. This is useful to highlight under-exposed foreground objects or to reduce specular reflections.' + ... + + +def imdecode(buf, flags: int) -> typing.Any: + 'imdecode(buf, flags) -> retval\n. @brief Reads an image from a buffer in memory.\n. \n. The function imdecode reads an image from the specified buffer in the memory. If the buffer is too short or\n. contains invalid data, the function returns an empty matrix ( Mat::data==NULL ).\n. \n. See cv::imread for the list of supported formats and flags description.\n. \n. @note In the case of color images, the decoded images will have the channels stored in **B G R** order.\n. @param buf Input array or vector of bytes.\n. @param flags The same flags as in cv::imread, see cv::ImreadModes.' + ... + + +def imencode(ext, img: ndarray, params=...) -> typing.Any: + 'imencode(ext, img[, params]) -> retval, buf\n. @brief Encodes an image into a memory buffer.\n. \n. The function imencode compresses the image and stores it in the memory buffer that is resized to fit the\n. result. See cv::imwrite for the list of supported formats and flags description.\n. \n. @param ext File extension that defines the output format.\n. @param img Image to be written.\n. @param buf Output buffer resized to fit the compressed image.\n. @param params Format-specific parameters. See cv::imwrite and cv::ImwriteFlags.' + ... + + +def imread(filename: str, flags: int = ...) -> ndarray: + 'imread(filename[, flags]) -> retval\n. @brief Loads an image from a file.\n. \n. @anchor imread\n. \n. The function imread loads an image from the specified file and returns it. If the image cannot be\n. read (because of missing file, improper permissions, unsupported or invalid format), the function\n. returns an empty matrix ( Mat::data==NULL ).\n. \n. Currently, the following file formats are supported:\n. \n. - Windows bitmaps - \\*.bmp, \\*.dib (always supported)\n. - JPEG files - \\*.jpeg, \\*.jpg, \\*.jpe (see the *Note* section)\n. - JPEG 2000 files - \\*.jp2 (see the *Note* section)\n. - Portable Network Graphics - \\*.png (see the *Note* section)\n. - WebP - \\*.webp (see the *Note* section)\n. - Portable image format - \\*.pbm, \\*.pgm, \\*.ppm \\*.pxm, \\*.pnm (always supported)\n. - PFM files - \\*.pfm (see the *Note* section)\n. - Sun rasters - \\*.sr, \\*.ras (always supported)\n. - TIFF files - \\*.tiff, \\*.tif (see the *Note* section)\n. - OpenEXR Image files - \\*.exr (see the *Note* section)\n. - Radiance HDR - \\*.hdr, \\*.pic (always supported)\n. - Raster and Vector geospatial data supported by GDAL (see the *Note* section)\n. \n. @note\n. - The function determines the type of an image by the content, not by the file extension.\n. - In the case of color images, the decoded images will have the channels stored in **B G R** order.\n. - When using IMREAD_GRAYSCALE, the codec\'s internal grayscale conversion will be used, if available.\n. Results may differ to the output of cvtColor()\n. - On Microsoft Windows\\* OS and MacOSX\\*, the codecs shipped with an OpenCV image (libjpeg,\n. libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs,\n. and TIFFs. On MacOSX, there is also an option to use native MacOSX image readers. But beware\n. that currently these native image loaders give images with different pixel values because of\n. the color management embedded into MacOSX.\n. - On Linux\\*, BSD flavors and other Unix-like open-source operating systems, OpenCV looks for\n. codecs supplied with an OS image. Install the relevant packages (do not forget the development\n. files, for example, "libjpeg-dev", in Debian\\* and Ubuntu\\*) to get the codec support or turn\n. on the OPENCV_BUILD_3RDPARTY_LIBS flag in CMake.\n. - In the case you set *WITH_GDAL* flag to true in CMake and @ref IMREAD_LOAD_GDAL to load the image,\n. then the [GDAL](http://www.gdal.org) driver will be used in order to decode the image, supporting\n. the following formats: [Raster](http://www.gdal.org/formats_list.html),\n. [Vector](http://www.gdal.org/ogr_formats.html).\n. - If EXIF information is embedded in the image file, the EXIF orientation will be taken into account\n. and thus the image will be rotated accordingly except if the flags @ref IMREAD_IGNORE_ORIENTATION\n. or @ref IMREAD_UNCHANGED are passed.\n. - Use the IMREAD_UNCHANGED flag to keep the floating point values from PFM image.\n. - By default number of pixels must be less than 2^30. Limit can be set using system\n. variable OPENCV_IO_MAX_IMAGE_PIXELS\n. \n. @param filename Name of file to be loaded.\n. @param flags Flag that can take values of cv::ImreadModes' + ... + + +def imreadmulti(filename: str, mats=..., flags: int = ...) -> typing.Any: + 'imreadmulti(filename[, mats[, flags]]) -> retval, mats\n. @brief Loads a multi-page image from a file.\n. \n. The function imreadmulti loads a multi-page image from the specified file into a vector of Mat objects.\n. @param filename Name of file to be loaded.\n. @param flags Flag that can take values of cv::ImreadModes, default with cv::IMREAD_ANYCOLOR.\n. @param mats A vector of Mat objects holding each page, if more than one.\n. @sa cv::imread' + ... + + +def imshow(winname, mat) -> typing.Any: + 'imshow(winname, mat) -> None\n. @brief Displays an image in the specified window.\n. \n. The function imshow displays an image in the specified window. If the window was created with the\n. cv::WINDOW_AUTOSIZE flag, the image is shown with its original size, however it is still limited by the screen resolution.\n. Otherwise, the image is scaled to fit the window. The function may scale the image, depending on its depth:\n. \n. - If the image is 8-bit unsigned, it is displayed as is.\n. - If the image is 16-bit unsigned or 32-bit integer, the pixels are divided by 256. That is, the\n. value range [0,255\\*256] is mapped to [0,255].\n. - If the image is 32-bit or 64-bit floating-point, the pixel values are multiplied by 255. That is, the\n. value range [0,1] is mapped to [0,255].\n. \n. If window was created with OpenGL support, cv::imshow also support ogl::Buffer , ogl::Texture2D and\n. cuda::GpuMat as input.\n. \n. If the window was not created before this function, it is assumed creating a window with cv::WINDOW_AUTOSIZE.\n. \n. If you need to show an image that is bigger than the screen resolution, you will need to call namedWindow("", WINDOW_NORMAL) before the imshow.\n. \n. @note This function should be followed by cv::waitKey function which displays the image for specified\n. milliseconds. Otherwise, it won\'t display the image. For example, **waitKey(0)** will display the window\n. infinitely until any keypress (it is suitable for image display). **waitKey(25)** will display a frame\n. for 25 ms, after which display will be automatically closed. (If you put it in a loop to read\n. videos, it will display the video frame-by-frame)\n. \n. @note\n. \n. [__Windows Backend Only__] Pressing Ctrl+C will copy the image to the clipboard.\n. \n. [__Windows Backend Only__] Pressing Ctrl+S will show a dialog to save the image.\n. \n. @param winname Name of the window.\n. @param mat Image to be shown.' + ... + + +def imwrite(filename: str, img: ndarray, params: typing.List[int] = ...) -> bool: + "imwrite(filename, img[, params]) -> retval\n. @brief Saves an image to a specified file.\n. \n. The function imwrite saves the image to the specified file. The image format is chosen based on the\n. filename extension (see cv::imread for the list of extensions). In general, only 8-bit\n. single-channel or 3-channel (with 'BGR' channel order) images\n. can be saved using this function, with these exceptions:\n. \n. - 16-bit unsigned (CV_16U) images can be saved in the case of PNG, JPEG 2000, and TIFF formats\n. - 32-bit float (CV_32F) images can be saved in PFM, TIFF, OpenEXR, and Radiance HDR formats;\n. 3-channel (CV_32FC3) TIFF images will be saved using the LogLuv high dynamic range encoding\n. (4 bytes per pixel)\n. - PNG images with an alpha channel can be saved using this function. To do this, create\n. 8-bit (or 16-bit) 4-channel image BGRA, where the alpha channel goes last. Fully transparent pixels\n. should have alpha set to 0, fully opaque pixels should have alpha set to 255/65535 (see the code sample below).\n. - Multiple images (vector of Mat) can be saved in TIFF format (see the code sample below).\n. \n. If the format, depth or channel order is different, use\n. Mat::convertTo and cv::cvtColor to convert it before saving. Or, use the universal FileStorage I/O\n. functions to save the image to XML or YAML format.\n. \n. The sample below shows how to create a BGRA image, how to set custom compression parameters and save it to a PNG file.\n. It also demonstrates how to save multiple images in a TIFF file:\n. @include snippets/imgcodecs_imwrite.cpp\n. @param filename Name of the file.\n. @param img (Mat or vector of Mat) Image or Images to be saved.\n. @param params Format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .) see cv::ImwriteFlags" + ... + + +def inRange(src: ndarray, lowerBound: ndarray, upperbBound: ndarray, dts: ndarray = ...) -> ndarray: + 'inRange(src, lowerBound, upperbBound[, dst]) -> dst\n. @brief Checks if array elements lie between the elements of two other arrays.\n. \n. The function checks the range as follows:\n. - For every element of a single-channel input array:\n. \\f[\\texttt{dst} (I)= \\texttt{lowerBound} (I)_0 \\leq \\texttt{src} (I)_0 \\leq \\texttt{upperbBound} (I)_0\\f]\n. - For two-channel arrays:\n. \\f[\\texttt{dst} (I)= \\texttt{lowerBound} (I)_0 \\leq \\texttt{src} (I)_0 \\leq \\texttt{upperbBound} (I)_0 \\land \\texttt{lowerBound} (I)_1 \\leq \\texttt{src} (I)_1 \\leq \\texttt{upperbBound} (I)_1\\f]\n. - and so forth.\n. \n. That is, dst (I) is set to 255 (all 1 -bits) if src (I) is within the\n. specified 1D, 2D, 3D, ... box and 0 otherwise.\n. \n. When the lower and/or upper boundary parameters are scalars, the indexes\n. (I) at lowerBound and upperbBound in the above formulas should be omitted.\n. @param src first input array.\n. @param lowerBound inclusive lower boundary array or a scalar.\n. @param upperbBound inclusive upper boundary array or a scalar.\n. @param dst output array of the same size as src and CV_8U type.' + ... + + +def initCameraMatrix2D(objectPoints, imagePoints, imageSize, aspectRatio=...) -> typing.Any: + 'initCameraMatrix2D(objectPoints, imagePoints, imageSize[, aspectRatio]) -> retval\n. @brief Finds an initial camera matrix from 3D-2D point correspondences.\n. \n. @param objectPoints Vector of vectors of the calibration pattern points in the calibration pattern\n. coordinate space. In the old interface all the per-view vectors are concatenated. See\n. calibrateCamera for details.\n. @param imagePoints Vector of vectors of the projections of the calibration pattern points. In the\n. old interface all the per-view vectors are concatenated.\n. @param imageSize Image size in pixels used to initialize the principal point.\n. @param aspectRatio If it is zero or negative, both \\f$f_x\\f$ and \\f$f_y\\f$ are estimated independently.\n. Otherwise, \\f$f_x = f_y * \\texttt{aspectRatio}\\f$ .\n. \n. The function estimates and returns an initial camera matrix for the camera calibration process.\n. Currently, the function only supports planar calibration patterns, which are patterns where each\n. object point has z-coordinate =0.' + ... + + +def initUndistortRectifyMap(cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type, map1=..., map2=...) -> typing.Any: + "initUndistortRectifyMap(cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type[, map1[, map2]]) -> map1, map2\n. @brief Computes the undistortion and rectification transformation map.\n. \n. The function computes the joint undistortion and rectification transformation and represents the\n. result in the form of maps for remap. The undistorted image looks like original, as if it is\n. captured with a camera using the camera matrix =newCameraMatrix and zero distortion. In case of a\n. monocular camera, newCameraMatrix is usually equal to cameraMatrix, or it can be computed by\n. #getOptimalNewCameraMatrix for a better control over scaling. In case of a stereo camera,\n. newCameraMatrix is normally set to P1 or P2 computed by #stereoRectify .\n. \n. Also, this new camera is oriented differently in the coordinate space, according to R. That, for\n. example, helps to align two heads of a stereo camera so that the epipolar lines on both images\n. become horizontal and have the same y- coordinate (in case of a horizontally aligned stereo camera).\n. \n. The function actually builds the maps for the inverse mapping algorithm that is used by remap. That\n. is, for each pixel \\f$(u, v)\\f$ in the destination (corrected and rectified) image, the function\n. computes the corresponding coordinates in the source image (that is, in the original image from\n. camera). The following process is applied:\n. \\f[\n. \\begin{array}{l}\n. x \\leftarrow (u - {c'}_x)/{f'}_x \\\\\n. y \\leftarrow (v - {c'}_y)/{f'}_y \\\\\n. {[X\\,Y\\,W]} ^T \\leftarrow R^{-1}*[x \\, y \\, 1]^T \\\\\n. x' \\leftarrow X/W \\\\\n. y' \\leftarrow Y/W \\\\\n. r^2 \\leftarrow x'^2 + y'^2 \\\\\n. x'' \\leftarrow x' \\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\n. + 2p_1 x' y' + p_2(r^2 + 2 x'^2) + s_1 r^2 + s_2 r^4\\\\\n. y'' \\leftarrow y' \\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\n. + p_1 (r^2 + 2 y'^2) + 2 p_2 x' y' + s_3 r^2 + s_4 r^4 \\\\\n. s\\vecthree{x'''}{y'''}{1} =\n. \\vecthreethree{R_{33}(\\tau_x, \\tau_y)}{0}{-R_{13}((\\tau_x, \\tau_y)}\n. {0}{R_{33}(\\tau_x, \\tau_y)}{-R_{23}(\\tau_x, \\tau_y)}\n. {0}{0}{1} R(\\tau_x, \\tau_y) \\vecthree{x''}{y''}{1}\\\\\n. map_x(u,v) \\leftarrow x''' f_x + c_x \\\\\n. map_y(u,v) \\leftarrow y''' f_y + c_y\n. \\end{array}\n. \\f]\n. where \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. are the distortion coefficients.\n. \n. In case of a stereo camera, this function is called twice: once for each camera head, after\n. stereoRectify, which in its turn is called after #stereoCalibrate. But if the stereo camera\n. was not calibrated, it is still possible to compute the rectification transformations directly from\n. the fundamental matrix using #stereoRectifyUncalibrated. For each camera, the function computes\n. homography H as the rectification transformation in a pixel domain, not a rotation matrix R in 3D\n. space. R can be computed from H as\n. \\f[\\texttt{R} = \\texttt{cameraMatrix} ^{-1} \\cdot \\texttt{H} \\cdot \\texttt{cameraMatrix}\\f]\n. where cameraMatrix can be chosen arbitrarily.\n. \n. @param cameraMatrix Input camera matrix \\f$A=\\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param R Optional rectification transformation in the object space (3x3 matrix). R1 or R2 ,\n. computed by #stereoRectify can be passed here. If the matrix is empty, the identity transformation\n. is assumed. In cvInitUndistortMap R assumed to be an identity matrix.\n. @param newCameraMatrix New camera matrix \\f$A'=\\vecthreethree{f_x'}{0}{c_x'}{0}{f_y'}{c_y'}{0}{0}{1}\\f$.\n. @param size Undistorted image size.\n. @param m1type Type of the first output map that can be CV_32FC1, CV_32FC2 or CV_16SC2, see #convertMaps\n. @param map1 The first output map.\n. @param map2 The second output map." + ... + + +def inpaint(src: ndarray, inpaintMask, inpaintRadius, flags: int, dts: ndarray = ...) -> typing.Any: + 'inpaint(src, inpaintMask, inpaintRadius, flags[, dst]) -> dst\n. @brief Restores the selected region in an image using the region neighborhood.\n. \n. @param src Input 8-bit, 16-bit unsigned or 32-bit float 1-channel or 8-bit 3-channel image.\n. @param inpaintMask Inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that\n. needs to be inpainted.\n. @param dst Output image with the same size and type as src .\n. @param inpaintRadius Radius of a circular neighborhood of each point inpainted that is considered\n. by the algorithm.\n. @param flags Inpainting method that could be cv::INPAINT_NS or cv::INPAINT_TELEA\n. \n. The function reconstructs the selected image area from the pixel near the area boundary. The\n. function may be used to remove dust and scratches from a scanned photo, or to remove undesirable\n. objects from still images or video. See for more details.\n. \n. @note\n. - An example using the inpainting technique can be found at\n. opencv_source_code/samples/cpp/inpaint.cpp\n. - (Python) An example using the inpainting technique can be found at\n. opencv_source_code/samples/python/inpaint.py' + ... + + +def insertChannel(src: ndarray, dts: ndarray, coi) -> typing.Any: + 'insertChannel(src, dst, coi) -> dst\n. @brief Inserts a single channel to dst (coi is 0-based index)\n. @param src input array\n. @param dst output array\n. @param coi index of channel for insertion\n. @sa mixChannels, merge' + ... + + +def integral(src: ndarray, sum=..., sdepth=...) -> typing.Any: + 'integral(src[, sum[, sdepth]]) -> sum\n. @overload' + ... + + +def integral2(src: ndarray, sum=..., sqsum=..., sdepth=..., sqdepth=...) -> typing.Any: + 'integral2(src[, sum[, sqsum[, sdepth[, sqdepth]]]]) -> sum, sqsum\n. @overload' + ... + + +def integral3(src: ndarray, sum=..., sqsum=..., tilted=..., sdepth=..., sqdepth=...) -> typing.Any: + 'integral3(src[, sum[, sqsum[, tilted[, sdepth[, sqdepth]]]]]) -> sum, sqsum, tilted\n. @brief Calculates the integral of an image.\n. \n. The function calculates one or more integral images for the source image as follows:\n. \n. \\f[\\texttt{sum} (X,Y) = \\sum _{x typing.Any: + "intersectConvexConvex(_p1, _p2[, _p12[, handleNested]]) -> retval, _p12\n. @brief Finds intersection of two convex polygons\n. \n. @param _p1 First polygon\n. @param _p2 Second polygon\n. @param _p12 Output polygon describing the intersecting area\n. @param handleNested When true, an intersection is found if one of the polygons is fully enclosed in the other.\n. When false, no intersection is found. If the polygons share a side or the vertex of one polygon lies on an edge\n. of the other, they are not considered nested and an intersection will be found regardless of the value of handleNested.\n. \n. @returns Absolute value of area of intersecting polygon\n. \n. @note intersectConvexConvex doesn't confirm that both polygons are convex and will return invalid results if they aren't." + ... + + +def invert(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'invert(src[, dst[, flags]]) -> retval, dst\n. @brief Finds the inverse or pseudo-inverse of a matrix.\n. \n. The function cv::invert inverts the matrix src and stores the result in dst\n. . When the matrix src is singular or non-square, the function calculates\n. the pseudo-inverse matrix (the dst matrix) so that norm(src\\*dst - I) is\n. minimal, where I is an identity matrix.\n. \n. In case of the #DECOMP_LU method, the function returns non-zero value if\n. the inverse has been successfully calculated and 0 if src is singular.\n. \n. In case of the #DECOMP_SVD method, the function returns the inverse\n. condition number of src (the ratio of the smallest singular value to the\n. largest singular value) and 0 if src is singular. The SVD method\n. calculates a pseudo-inverse matrix if src is singular.\n. \n. Similarly to #DECOMP_LU, the method #DECOMP_CHOLESKY works only with\n. non-singular square matrices that should also be symmetrical and\n. positively defined. In this case, the function stores the inverted\n. matrix in dst and returns non-zero. Otherwise, it returns 0.\n. \n. @param src input floating-point M x N matrix.\n. @param dst output matrix of N x M size and the same type as src.\n. @param flags inversion method (cv::DecompTypes)\n. @sa solve, SVD' + ... + + +def invertAffineTransform(M, iM=...) -> typing.Any: + 'invertAffineTransform(M[, iM]) -> iM\n. @brief Inverts an affine transformation.\n. \n. The function computes an inverse affine transformation represented by \\f$2 \\times 3\\f$ matrix M:\n. \n. \\f[\\begin{bmatrix} a_{11} & a_{12} & b_1 \\\\ a_{21} & a_{22} & b_2 \\end{bmatrix}\\f]\n. \n. The result is also a \\f$2 \\times 3\\f$ matrix of the same type as M.\n. \n. @param M Original affine transformation.\n. @param iM Output reverse affine transformation.' + ... + + +def isContourConvex(contour) -> typing.Any: + 'isContourConvex(contour) -> retval\n. @brief Tests a contour convexity.\n. \n. The function tests whether the input contour is convex or not. The contour must be simple, that is,\n. without self-intersections. Otherwise, the function output is undefined.\n. \n. @param contour Input vector of 2D points, stored in std::vector\\<\\> or Mat' + ... + + +def kmeans(data, K, bestLabels, criteria, attempts, flags: int, centers=...) -> typing.Any: + 'kmeans(data, K, bestLabels, criteria, attempts, flags[, centers]) -> retval, bestLabels, centers\n. @brief Finds centers of clusters and groups input samples around the clusters.\n. \n. The function kmeans implements a k-means algorithm that finds the centers of cluster_count clusters\n. and groups the input samples around the clusters. As an output, \\f$\\texttt{bestLabels}_i\\f$ contains a\n. 0-based cluster index for the sample stored in the \\f$i^{th}\\f$ row of the samples matrix.\n. \n. @note\n. - (Python) An example on K-means clustering can be found at\n. opencv_source_code/samples/python/kmeans.py\n. @param data Data for clustering. An array of N-Dimensional points with float coordinates is needed.\n. Examples of this array can be:\n. - Mat points(count, 2, CV_32F);\n. - Mat points(count, 1, CV_32FC2);\n. - Mat points(1, count, CV_32FC2);\n. - std::vector\\ points(sampleCount);\n. @param K Number of clusters to split the set by.\n. @param bestLabels Input/output integer array that stores the cluster indices for every sample.\n. @param criteria The algorithm termination criteria, that is, the maximum number of iterations and/or\n. the desired accuracy. The accuracy is specified as criteria.epsilon. As soon as each of the cluster\n. centers moves by less than criteria.epsilon on some iteration, the algorithm stops.\n. @param attempts Flag to specify the number of times the algorithm is executed using different\n. initial labellings. The algorithm returns the labels that yield the best compactness (see the last\n. function parameter).\n. @param flags Flag that can take values of cv::KmeansFlags\n. @param centers Output matrix of the cluster centers, one row per each cluster center.\n. @return The function returns the compactness measure that is computed as\n. \\f[\\sum _i \\| \\texttt{samples} _i - \\texttt{centers} _{ \\texttt{labels} _i} \\| ^2\\f]\n. after every attempt. The best (minimum) value is chosen and the corresponding labels and the\n. compactness value are returned by the function. Basically, you can use only the core of the\n. function, set the number of attempts to 1, initialize labels each time using a custom algorithm,\n. pass them with the ( flags = #KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best\n. (most-compact) clustering.' + ... + + +def line(img: ndarray, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a line segment connecting two points.\n. \n. The function line draws the line segment between pt1 and pt2 points in the image. The line is\n. clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected\n. or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased\n. lines are drawn using Gaussian filtering.\n. \n. @param img Image.\n. @param pt1 First point of the line segment.\n. @param pt2 Second point of the line segment.\n. @param color Line color.\n. @param thickness Line thickness.\n. @param lineType Type of the line. See #LineTypes.\n. @param shift Number of fractional bits in the point coordinates.' + ... + + +def linearPolar(src: ndarray, center, maxRadius, flags: int, dts: ndarray = ...) -> typing.Any: + 'linearPolar(src, center, maxRadius, flags[, dst]) -> dst\n. @brief Remaps an image to polar coordinates space.\n. \n. @deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags)\n. \n. @internal\n. Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image c)"):\n. \\f[\\begin{array}{l}\n. dst( \\rho , \\phi ) = src(x,y) \\\\\n. dst.size() \\leftarrow src.size()\n. \\end{array}\\f]\n. \n. where\n. \\f[\\begin{array}{l}\n. I = (dx,dy) = (x - center.x,y - center.y) \\\\\n. \\rho = Kmag \\cdot \\texttt{magnitude} (I) ,\\\\\n. \\phi = angle \\cdot \\texttt{angle} (I)\n. \\end{array}\\f]\n. \n. and\n. \\f[\\begin{array}{l}\n. Kx = src.cols / maxRadius \\\\\n. Ky = src.rows / 2\\Pi\n. \\end{array}\\f]\n. \n. \n. @param src Source image\n. @param dst Destination image. It will have same size and type as src.\n. @param center The transformation center;\n. @param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.\n. @param flags A combination of interpolation methods, see #InterpolationFlags\n. \n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. \n. @sa cv::logPolar\n. @endinternal' + ... + + +def log(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'log(src[, dst]) -> dst\n. @brief Calculates the natural logarithm of every array element.\n. \n. The function cv::log calculates the natural logarithm of every element of the input array:\n. \\f[\\texttt{dst} (I) = \\log (\\texttt{src}(I)) \\f]\n. \n. Output on zero, negative and special (NaN, Inf) values is undefined.\n. \n. @param src input array.\n. @param dst output array of the same size and type as src .\n. @sa exp, cartToPolar, polarToCart, phase, pow, sqrt, magnitude' + ... + + +def logPolar(src: ndarray, center, M, flags: int, dts: ndarray = ...) -> typing.Any: + 'logPolar(src, center, M, flags[, dst]) -> dst\n. @brief Remaps an image to semilog-polar coordinates space.\n. \n. @deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags+WARP_POLAR_LOG);\n. \n. @internal\n. Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image d)"):\n. \\f[\\begin{array}{l}\n. dst( \\rho , \\phi ) = src(x,y) \\\\\n. dst.size() \\leftarrow src.size()\n. \\end{array}\\f]\n. \n. where\n. \\f[\\begin{array}{l}\n. I = (dx,dy) = (x - center.x,y - center.y) \\\\\n. \\rho = M \\cdot log_e(\\texttt{magnitude} (I)) ,\\\\\n. \\phi = Kangle \\cdot \\texttt{angle} (I) \\\\\n. \\end{array}\\f]\n. \n. and\n. \\f[\\begin{array}{l}\n. M = src.cols / log_e(maxRadius) \\\\\n. Kangle = src.rows / 2\\Pi \\\\\n. \\end{array}\\f]\n. \n. The function emulates the human "foveal" vision and can be used for fast scale and\n. rotation-invariant template matching, for object tracking and so forth.\n. @param src Source image\n. @param dst Destination image. It will have same size and type as src.\n. @param center The transformation center; where the output precision is maximal\n. @param M Magnitude scale parameter. It determines the radius of the bounding circle to transform too.\n. @param flags A combination of interpolation methods, see #InterpolationFlags\n. \n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. \n. @sa cv::linearPolar\n. @endinternal' + ... + + +def magnitude(x, y, magnitude=...) -> typing.Any: + 'magnitude(x, y[, magnitude]) -> magnitude\n. @brief Calculates the magnitude of 2D vectors.\n. \n. The function cv::magnitude calculates the magnitude of 2D vectors formed\n. from the corresponding elements of x and y arrays:\n. \\f[\\texttt{dst} (I) = \\sqrt{\\texttt{x}(I)^2 + \\texttt{y}(I)^2}\\f]\n. @param x floating-point array of x-coordinates of the vectors.\n. @param y floating-point array of y-coordinates of the vectors; it must\n. have the same size as x.\n. @param magnitude output array of the same size and type as x.\n. @sa cartToPolar, polarToCart, phase, sqrt' + ... + + +def matMulDeriv(A, B, dABdA=..., dABdB=...) -> typing.Any: + 'matMulDeriv(A, B[, dABdA[, dABdB]]) -> dABdA, dABdB\n. @brief Computes partial derivatives of the matrix product for each multiplied matrix.\n. \n. @param A First multiplied matrix.\n. @param B Second multiplied matrix.\n. @param dABdA First output derivative matrix d(A\\*B)/dA of size\n. \\f$\\texttt{A.rows*B.cols} \\times {A.rows*A.cols}\\f$ .\n. @param dABdB Second output derivative matrix d(A\\*B)/dB of size\n. \\f$\\texttt{A.rows*B.cols} \\times {B.rows*B.cols}\\f$ .\n. \n. The function computes partial derivatives of the elements of the matrix product \\f$A*B\\f$ with regard to\n. the elements of each of the two input matrices. The function is used to compute the Jacobian\n. matrices in stereoCalibrate but can also be used in any other similar optimization function.' + ... + + +def matchShapes(contour1, contour2, method: int, parameter) -> typing.Any: + 'matchShapes(contour1, contour2, method, parameter) -> retval\n. @brief Compares two shapes.\n. \n. The function compares two shapes. All three implemented methods use the Hu invariants (see #HuMoments)\n. \n. @param contour1 First contour or grayscale image.\n. @param contour2 Second contour or grayscale image.\n. @param method Comparison method, see #ShapeMatchModes\n. @param parameter Method-specific parameter (not supported now).' + ... + + +def matchTemplate(image: ndarray, templ: ndarray, method: int, result: ndarray = ..., mask: typing.Optional[ndarray] = ...) -> ndarray: + "matchTemplate(image, templ, method[, result[, mask]]) -> result\n. @brief Compares a template against overlapped image regions.\n. \n. The function slides through image , compares the overlapped patches of size \\f$w \\times h\\f$ against\n. templ using the specified method and stores the comparison results in result . #TemplateMatchModes\n. describes the formulae for the available comparison methods ( \\f$I\\f$ denotes image, \\f$T\\f$\n. template, \\f$R\\f$ result, \\f$M\\f$ the optional mask ). The summation is done over template and/or\n. the image patch: \\f$x' = 0...w-1, y' = 0...h-1\\f$\n. \n. After the function finishes the comparison, the best matches can be found as global minimums (when\n. #TM_SQDIFF was used) or maximums (when #TM_CCORR or #TM_CCOEFF was used) using the\n. #minMaxLoc function. In case of a color image, template summation in the numerator and each sum in\n. the denominator is done over all of the channels and separate mean values are used for each channel.\n. That is, the function can take a color template and a color image. The result will still be a\n. single-channel image, which is easier to analyze.\n. \n. @param image Image where the search is running. It must be 8-bit or 32-bit floating-point.\n. @param templ Searched template. It must be not greater than the source image and have the same\n. data type.\n. @param result Map of comparison results. It must be single-channel 32-bit floating-point. If image\n. is \\f$W \\times H\\f$ and templ is \\f$w \\times h\\f$ , then result is \\f$(W-w+1) \\times (H-h+1)\\f$ .\n. @param method Parameter specifying the comparison method, see #TemplateMatchModes\n. @param mask Optional mask. It must have the same size as templ. It must either have the same number\n. of channels as template or only one channel, which is then used for all template and\n. image channels. If the data type is #CV_8U, the mask is interpreted as a binary mask,\n. meaning only elements where mask is nonzero are used and are kept unchanged independent\n. of the actual mask value (weight equals 1). For data tpye #CV_32F, the mask values are\n. used as weights. The exact formulas are documented in #TemplateMatchModes." + ... + + +def max(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: + 'max(src1, src2[, dst]) -> dst\n. @brief Calculates per-element maximum of two arrays or an array and a scalar.\n. \n. The function cv::max calculates the per-element maximum of two arrays:\n. \\f[\\texttt{dst} (I)= \\max ( \\texttt{src1} (I), \\texttt{src2} (I))\\f]\n. or array and a scalar:\n. \\f[\\texttt{dst} (I)= \\max ( \\texttt{src1} (I), \\texttt{value} )\\f]\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1 .\n. @param dst output array of the same size and type as src1.\n. @sa min, compare, inRange, minMaxLoc, @ref MatrixExpressions' + ... + + +def mean(src: ndarray, mask: ndarray = ...) -> typing.Any: + "mean(src[, mask]) -> retval\n. @brief Calculates an average (mean) of array elements.\n. \n. The function cv::mean calculates the mean value M of array elements,\n. independently for each channel, and return it:\n. \\f[\\begin{array}{l} N = \\sum _{I: \\; \\texttt{mask} (I) \\ne 0} 1 \\\\ M_c = \\left ( \\sum _{I: \\; \\texttt{mask} (I) \\ne 0}{ \\texttt{mtx} (I)_c} \\right )/N \\end{array}\\f]\n. When all the mask elements are 0's, the function returns Scalar::all(0)\n. @param src input array that should have from 1 to 4 channels so that the result can be stored in\n. Scalar_ .\n. @param mask optional operation mask.\n. @sa countNonZero, meanStdDev, norm, minMaxLoc" + ... + + +def meanShift(probImage, window, criteria) -> typing.Any: + 'meanShift(probImage, window, criteria) -> retval, window\n. @brief Finds an object on a back projection image.\n. \n. @param probImage Back projection of the object histogram. See calcBackProject for details.\n. @param window Initial search window.\n. @param criteria Stop criteria for the iterative search algorithm.\n. returns\n. : Number of iterations CAMSHIFT took to converge.\n. The function implements the iterative object search algorithm. It takes the input back projection of\n. an object and the initial position. The mass center in window of the back projection image is\n. computed and the search window center shifts to the mass center. The procedure is repeated until the\n. specified number of iterations criteria.maxCount is done or until the window center shifts by less\n. than criteria.epsilon. The algorithm is used inside CamShift and, unlike CamShift , the search\n. window size or orientation do not change during the search. You can simply pass the output of\n. calcBackProject to this function. But better results can be obtained if you pre-filter the back\n. projection and remove the noise. For example, you can do this by retrieving connected components\n. with findContours , throwing away contours with small area ( contourArea ), and rendering the\n. remaining contours with drawContours.' + ... + + +def meanStdDev(src: ndarray, mean=..., stddev=..., mask: ndarray = ...) -> typing.Any: + "meanStdDev(src[, mean[, stddev[, mask]]]) -> mean, stddev\n. Calculates a mean and standard deviation of array elements.\n. \n. The function cv::meanStdDev calculates the mean and the standard deviation M\n. of array elements independently for each channel and returns it via the\n. output parameters:\n. \\f[\\begin{array}{l} N = \\sum _{I, \\texttt{mask} (I) \\ne 0} 1 \\\\ \\texttt{mean} _c = \\frac{\\sum_{ I: \\; \\texttt{mask}(I) \\ne 0} \\texttt{src} (I)_c}{N} \\\\ \\texttt{stddev} _c = \\sqrt{\\frac{\\sum_{ I: \\; \\texttt{mask}(I) \\ne 0} \\left ( \\texttt{src} (I)_c - \\texttt{mean} _c \\right )^2}{N}} \\end{array}\\f]\n. When all the mask elements are 0's, the function returns\n. mean=stddev=Scalar::all(0).\n. @note The calculated standard deviation is only the diagonal of the\n. complete normalized covariance matrix. If the full matrix is needed, you\n. can reshape the multi-channel array M x N to the single-channel array\n. M\\*N x mtx.channels() (only possible when the matrix is continuous) and\n. then pass the matrix to calcCovarMatrix .\n. @param src input array that should have from 1 to 4 channels so that the results can be stored in\n. Scalar_ 's.\n. @param mean output parameter: calculated mean value.\n. @param stddev output parameter: calculated standard deviation.\n. @param mask optional operation mask.\n. @sa countNonZero, mean, norm, minMaxLoc, calcCovarMatrix" + ... + + +def medianBlur(src: ndarray, ksize, dts: ndarray = ...) -> typing.Any: + 'medianBlur(src, ksize[, dst]) -> dst\n. @brief Blurs an image using the median filter.\n. \n. The function smoothes an image using the median filter with the \\f$\\texttt{ksize} \\times\n. \\texttt{ksize}\\f$ aperture. Each channel of a multi-channel image is processed independently.\n. In-place operation is supported.\n. \n. @note The median filter uses #BORDER_REPLICATE internally to cope with border pixels, see #BorderTypes\n. \n. @param src input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be\n. CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U.\n. @param dst destination array of the same size and type as src.\n. @param ksize aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ...\n. @sa bilateralFilter, blur, boxFilter, GaussianBlur' + ... + + +def merge(mv, dts: ndarray = ...) -> typing.Any: + 'merge(mv[, dst]) -> dst\n. @overload\n. @param mv input vector of matrices to be merged; all the matrices in mv must have the same\n. size and the same depth.\n. @param dst output array of the same size and the same depth as mv[0]; The number of channels will\n. be the total number of channels in the matrix array.' + ... + + +def min(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: + 'min(src1, src2[, dst]) -> dst\n. @brief Calculates per-element minimum of two arrays or an array and a scalar.\n. \n. The function cv::min calculates the per-element minimum of two arrays:\n. \\f[\\texttt{dst} (I)= \\min ( \\texttt{src1} (I), \\texttt{src2} (I))\\f]\n. or array and a scalar:\n. \\f[\\texttt{dst} (I)= \\min ( \\texttt{src1} (I), \\texttt{value} )\\f]\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1.\n. @param dst output array of the same size and type as src1.\n. @sa max, compare, inRange, minMaxLoc' + ... + + +def minAreaRect(points) -> typing.Any: + 'minAreaRect(points) -> retval\n. @brief Finds a rotated rectangle of the minimum area enclosing the input 2D point set.\n. \n. The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a\n. specified point set. Developer should keep in mind that the returned RotatedRect can contain negative\n. indices when data is close to the containing Mat element boundary.\n. \n. @param points Input vector of 2D points, stored in std::vector\\<\\> or Mat' + ... + + +def minEnclosingCircle(points) -> typing.Any: + 'minEnclosingCircle(points) -> center, radius\n. @brief Finds a circle of the minimum area enclosing a 2D point set.\n. \n. The function finds the minimal enclosing circle of a 2D point set using an iterative algorithm.\n. \n. @param points Input vector of 2D points, stored in std::vector\\<\\> or Mat\n. @param center Output center of the circle.\n. @param radius Output radius of the circle.' + ... + + +def minEnclosingTriangle(points, triangle=...) -> typing.Any: + "minEnclosingTriangle(points[, triangle]) -> retval, triangle\n. @brief Finds a triangle of minimum area enclosing a 2D point set and returns its area.\n. \n. The function finds a triangle of minimum area enclosing the given set of 2D points and returns its\n. area. The output for a given 2D point set is shown in the image below. 2D points are depicted in\n. *red* and the enclosing triangle in *yellow*.\n. \n. ![Sample output of the minimum enclosing triangle function](pics/minenclosingtriangle.png)\n. \n. The implementation of the algorithm is based on O'Rourke's @cite ORourke86 and Klee and Laskowski's\n. @cite KleeLaskowski85 papers. O'Rourke provides a \\f$\\theta(n)\\f$ algorithm for finding the minimal\n. enclosing triangle of a 2D convex polygon with n vertices. Since the #minEnclosingTriangle function\n. takes a 2D point set as input an additional preprocessing step of computing the convex hull of the\n. 2D point set is required. The complexity of the #convexHull function is \\f$O(n log(n))\\f$ which is higher\n. than \\f$\\theta(n)\\f$. Thus the overall complexity of the function is \\f$O(n log(n))\\f$.\n. \n. @param points Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector\\<\\> or Mat\n. @param triangle Output vector of three 2D points defining the vertices of the triangle. The depth\n. of the OutputArray must be CV_32F." + ... + + +def minMaxLoc(src: ndarray, mask: ndarray = ...) -> typing.Tuple[float, float, typing.Tuple[int, int], typing.Tuple[int, int]]: + 'minMaxLoc(src[, mask]) -> minVal, maxVal, minLoc, maxLoc\n. @brief Finds the global minimum and maximum in an array.\n. \n. The function cv::minMaxLoc finds the minimum and maximum element values and their positions. The\n. extremums are searched across the whole array or, if mask is not an empty array, in the specified\n. array region.\n. \n. The function do not work with multi-channel arrays. If you need to find minimum or maximum\n. elements across all the channels, use Mat::reshape first to reinterpret the array as\n. single-channel. Or you may extract the particular channel using either extractImageCOI , or\n. mixChannels , or split .\n. @param src input single-channel array.\n. @param minVal pointer to the returned minimum value; NULL is used if not required.\n. @param maxVal pointer to the returned maximum value; NULL is used if not required.\n. @param minLoc pointer to the returned minimum location (in 2D case); NULL is used if not required.\n. @param maxLoc pointer to the returned maximum location (in 2D case); NULL is used if not required.\n. @param mask optional mask used to select a sub-array.\n. @sa max, min, compare, inRange, extractImageCOI, mixChannels, split, Mat::reshape' + ... + + +def mixChannels(src: ndarray, dts: ndarray, fromTo) -> typing.Any: + 'mixChannels(src, dst, fromTo) -> dst\n. @overload\n. @param src input array or vector of matrices; all of the matrices must have the same size and the\n. same depth.\n. @param dst output array or vector of matrices; all the matrices **must be allocated**; their size and\n. depth must be the same as in src[0].\n. @param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\\*2] is\n. a 0-based index of the input channel in src, fromTo[k\\*2+1] is an index of the output channel in\n. dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to\n. src[0].channels()-1, the second input image channels are indexed from src[0].channels() to\n. src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image\n. channels; as a special case, when fromTo[k\\*2] is negative, the corresponding output channel is\n. filled with zero .' + ... + + +ml_ANN_MLP = _mod_cv2.ml_ANN_MLP +ml_Boost = _mod_cv2.ml_Boost +ml_DTrees = _mod_cv2.ml_DTrees +ml_EM = _mod_cv2.ml_EM +ml_KNearest = _mod_cv2.ml_KNearest +ml_LogisticRegression = _mod_cv2.ml_LogisticRegression +ml_NormalBayesClassifier = _mod_cv2.ml_NormalBayesClassifier +ml_ParamGrid = _mod_cv2.ml_ParamGrid +ml_RTrees = _mod_cv2.ml_RTrees +ml_SVM = _mod_cv2.ml_SVM +ml_SVMSGD = _mod_cv2.ml_SVMSGD +ml_StatModel = _mod_cv2.ml_StatModel +ml_TrainData = _mod_cv2.ml_TrainData + + +def moments(array, binaryImage=...) -> typing.Any: + "moments(array[, binaryImage]) -> retval\n. @brief Calculates all of the moments up to the third order of a polygon or rasterized shape.\n. \n. The function computes moments, up to the 3rd order, of a vector shape or a rasterized shape. The\n. results are returned in the structure cv::Moments.\n. \n. @param array Raster image (single-channel, 8-bit or floating-point 2D array) or an array (\n. \\f$1 \\times N\\f$ or \\f$N \\times 1\\f$ ) of 2D points (Point or Point2f ).\n. @param binaryImage If it is true, all non-zero image pixels are treated as 1's. The parameter is\n. used for images only.\n. @returns moments.\n. \n. @note Only applicable to contour moments calculations from Python bindings: Note that the numpy\n. type for the input array should be either np.int32 or np.float32.\n. \n. @sa contourArea, arcLength" + ... + + +def morphologyEx(src: ndarray, op, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: + 'morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Performs advanced morphological transformations.\n. \n. The function cv::morphologyEx can perform advanced morphological transformations using an erosion and dilation as\n. basic operations.\n. \n. Any of the operations can be done in-place. In case of multi-channel images, each channel is\n. processed independently.\n. \n. @param src Source image. The number of channels can be arbitrary. The depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst Destination image of the same size and type as source image.\n. @param op Type of a morphological operation, see #MorphTypes\n. @param kernel Structuring element. It can be created using #getStructuringElement.\n. @param anchor Anchor position with the kernel. Negative values mean that the anchor is at the\n. kernel center.\n. @param iterations Number of times erosion and dilation are applied.\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @param borderValue Border value in case of a constant border. The default value has a special\n. meaning.\n. @sa dilate, erode, getStructuringElement\n. @note The number of iterations is the number of times erosion or dilatation operation will be applied.\n. For instance, an opening operation (#MORPH_OPEN) with two iterations is equivalent to apply\n. successively: erode -> erode -> dilate -> dilate (and not erode -> dilate -> erode -> dilate).' + ... + + +def moveWindow(winname, x, y) -> typing.Any: + 'moveWindow(winname, x, y) -> None\n. @brief Moves window to the specified position\n. \n. @param winname Name of the window.\n. @param x The new x-coordinate of the window.\n. @param y The new y-coordinate of the window.' + ... + + +def mulSpectrums(a, b, flags: int, c=..., conjB=...) -> typing.Any: + 'mulSpectrums(a, b, flags[, c[, conjB]]) -> c\n. @brief Performs the per-element multiplication of two Fourier spectrums.\n. \n. The function cv::mulSpectrums performs the per-element multiplication of the two CCS-packed or complex\n. matrices that are results of a real or complex Fourier transform.\n. \n. The function, together with dft and idft , may be used to calculate convolution (pass conjB=false )\n. or correlation (pass conjB=true ) of two arrays rapidly. When the arrays are complex, they are\n. simply multiplied (per element) with an optional conjugation of the second-array elements. When the\n. arrays are real, they are assumed to be CCS-packed (see dft for details).\n. @param a first input array.\n. @param b second input array of the same size and type as src1 .\n. @param c output array of the same size and type as src1 .\n. @param flags operation flags; currently, the only supported flag is cv::DFT_ROWS, which indicates that\n. each row of src1 and src2 is an independent 1D Fourier spectrum. If you do not want to use this flag, then simply add a `0` as value.\n. @param conjB optional flag that conjugates the second input array before the multiplication (true)\n. or not (false).' + ... + + +def mulTransposed(src: ndarray, aTa, dts: ndarray = ..., delta=..., scale=..., dtype=...) -> typing.Any: + 'mulTransposed(src, aTa[, dst[, delta[, scale[, dtype]]]]) -> dst\n. @brief Calculates the product of a matrix and its transposition.\n. \n. The function cv::mulTransposed calculates the product of src and its\n. transposition:\n. \\f[\\texttt{dst} = \\texttt{scale} ( \\texttt{src} - \\texttt{delta} )^T ( \\texttt{src} - \\texttt{delta} )\\f]\n. if aTa=true , and\n. \\f[\\texttt{dst} = \\texttt{scale} ( \\texttt{src} - \\texttt{delta} ) ( \\texttt{src} - \\texttt{delta} )^T\\f]\n. otherwise. The function is used to calculate the covariance matrix. With\n. zero delta, it can be used as a faster substitute for general matrix\n. product A\\*B when B=A\'\n. @param src input single-channel matrix. Note that unlike gemm, the\n. function can multiply not only floating-point matrices.\n. @param dst output square matrix.\n. @param aTa Flag specifying the multiplication ordering. See the\n. description below.\n. @param delta Optional delta matrix subtracted from src before the\n. multiplication. When the matrix is empty ( delta=noArray() ), it is\n. assumed to be zero, that is, nothing is subtracted. If it has the same\n. size as src , it is simply subtracted. Otherwise, it is "repeated" (see\n. repeat ) to cover the full src and then subtracted. Type of the delta\n. matrix, when it is not empty, must be the same as the type of created\n. output matrix. See the dtype parameter description below.\n. @param scale Optional scale factor for the matrix product.\n. @param dtype Optional type of the output matrix. When it is negative,\n. the output matrix will have the same type as src . Otherwise, it will be\n. type=CV_MAT_DEPTH(dtype) that should be either CV_32F or CV_64F .\n. @sa calcCovarMatrix, gemm, repeat, reduce' + ... + + +def multiply(src1: ndarray, src2: ndarray, dts: ndarray = ..., scale=..., dtype=...) -> typing.Any: + 'multiply(src1, src2[, dst[, scale[, dtype]]]) -> dst\n. @brief Calculates the per-element scaled product of two arrays.\n. \n. The function multiply calculates the per-element product of two arrays:\n. \n. \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{scale} \\cdot \\texttt{src1} (I) \\cdot \\texttt{src2} (I))\\f]\n. \n. There is also a @ref MatrixExpressions -friendly variant of the first function. See Mat::mul .\n. \n. For a not-per-element matrix product, see gemm .\n. \n. @note Saturation is not applied when the output array has the depth\n. CV_32S. You may even get result of an incorrect sign in the case of\n. overflow.\n. @param src1 first input array.\n. @param src2 second input array of the same size and the same type as src1.\n. @param dst output array of the same size and type as src1.\n. @param scale optional scale factor.\n. @param dtype optional depth of the output array\n. @sa add, subtract, divide, scaleAdd, addWeighted, accumulate, accumulateProduct, accumulateSquare,\n. Mat::convertTo' + ... + + +def namedWindow(winname, flags: int = ...) -> typing.Any: + 'namedWindow(winname[, flags]) -> None\n. @brief Creates a window.\n. \n. The function namedWindow creates a window that can be used as a placeholder for images and\n. trackbars. Created windows are referred to by their names.\n. \n. If a window with the same name already exists, the function does nothing.\n. \n. You can call cv::destroyWindow or cv::destroyAllWindows to close the window and de-allocate any associated\n. memory usage. For a simple program, you do not really have to call these functions because all the\n. resources and windows of the application are closed automatically by the operating system upon exit.\n. \n. @note\n. \n. Qt backend supports additional flags:\n. - **WINDOW_NORMAL or WINDOW_AUTOSIZE:** WINDOW_NORMAL enables you to resize the\n. window, whereas WINDOW_AUTOSIZE adjusts automatically the window size to fit the\n. displayed image (see imshow ), and you cannot change the window size manually.\n. - **WINDOW_FREERATIO or WINDOW_KEEPRATIO:** WINDOW_FREERATIO adjusts the image\n. with no respect to its ratio, whereas WINDOW_KEEPRATIO keeps the image ratio.\n. - **WINDOW_GUI_NORMAL or WINDOW_GUI_EXPANDED:** WINDOW_GUI_NORMAL is the old way to draw the window\n. without statusbar and toolbar, whereas WINDOW_GUI_EXPANDED is a new enhanced GUI.\n. By default, flags == WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED\n. \n. @param winname Name of the window in the window caption that may be used as a window identifier.\n. @param flags Flags of the window. The supported flags are: (cv::WindowFlags)' + ... + + +def norm(src1: ndarray, src2: ndarray, normType: int = ..., mask: ndarray = ...) -> float: + 'norm(src1, src2[, normType[, mask]]) -> retval\n. @brief Calculates the absolute norm of an array.\n. \n. This version of #norm calculates the absolute norm of src1. The type of norm to calculate is specified using #NormTypes.\n. \n. As example for one array consider the function \\f$r(x)= \\begin{pmatrix} x \\\\ 1-x \\end{pmatrix}, x \\in [-1;1]\\f$.\n. The \\f$ L_{1}, L_{2} \\f$ and \\f$ L_{\\infty} \\f$ norm for the sample value \\f$r(-1) = \\begin{pmatrix} -1 \\\\ 2 \\end{pmatrix}\\f$\n. is calculated as follows\n. \\f{align*}\n. \\| r(-1) \\|_{L_1} &= |-1| + |2| = 3 \\\\\n. \\| r(-1) \\|_{L_2} &= \\sqrt{(-1)^{2} + (2)^{2}} = \\sqrt{5} \\\\\n. \\| r(-1) \\|_{L_\\infty} &= \\max(|-1|,|2|) = 2\n. \\f}\n. and for \\f$r(0.5) = \\begin{pmatrix} 0.5 \\\\ 0.5 \\end{pmatrix}\\f$ the calculation is\n. \\f{align*}\n. \\| r(0.5) \\|_{L_1} &= |0.5| + |0.5| = 1 \\\\\n. \\| r(0.5) \\|_{L_2} &= \\sqrt{(0.5)^{2} + (0.5)^{2}} = \\sqrt{0.5} \\\\\n. \\| r(0.5) \\|_{L_\\infty} &= \\max(|0.5|,|0.5|) = 0.5.\n. \\f}\n. The following graphic shows all values for the three norm functions \\f$\\| r(x) \\|_{L_1}, \\| r(x) \\|_{L_2}\\f$ and \\f$\\| r(x) \\|_{L_\\infty}\\f$.\n. It is notable that the \\f$ L_{1} \\f$ norm forms the upper and the \\f$ L_{\\infty} \\f$ norm forms the lower border for the example function \\f$ r(x) \\f$.\n. ![Graphs for the different norm functions from the above example](pics/NormTypes_OneArray_1-2-INF.png)\n. \n. When the mask parameter is specified and it is not empty, the norm is\n. \n. If normType is not specified, #NORM_L2 is used.\n. calculated only over the region specified by the mask.\n. \n. Multi-channel input arrays are treated as single-channel arrays, that is,\n. the results for all channels are combined.\n. \n. Hamming norms can only be calculated with CV_8U depth arrays.\n. \n. @param src1 first input array.\n. @param normType type of the norm (see #NormTypes).\n. @param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.\n\n\n\nnorm(src1, src2[, normType[, mask]]) -> retval\n. @brief Calculates an absolute difference norm or a relative difference norm.\n. \n. This version of cv::norm calculates the absolute difference norm\n. or the relative difference norm of arrays src1 and src2.\n. The type of norm to calculate is specified using #NormTypes.\n. \n. @param src1 first input array.\n. @param src2 second input array of the same size and the same type as src1.\n. @param normType type of the norm (see #NormTypes).\n. @param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.' + ... + + +def normalize(src: ndarray, dts: ndarray, alpha=..., beta=..., normType: int = ..., dtype=..., mask: ndarray = ...) -> ndarray: + 'normalize(src, dst[, alpha[, beta[, normType[, dtype[, mask]]]]]) -> dst\n. @brief Normalizes the norm or value range of an array.\n. \n. The function cv::normalize normalizes scale and shift the input array elements so that\n. \\f[\\| \\texttt{dst} \\| _{L_p}= \\texttt{alpha}\\f]\n. (where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that\n. \\f[\\min _I \\texttt{dst} (I)= \\texttt{alpha} , \\, \\, \\max _I \\texttt{dst} (I)= \\texttt{beta}\\f]\n. \n. when normType=NORM_MINMAX (for dense arrays only). The optional mask specifies a sub-array to be\n. normalized. This means that the norm or min-n-max are calculated over the sub-array, and then this\n. sub-array is modified to be normalized. If you want to only use the mask to calculate the norm or\n. min-max but modify the whole array, you can use norm and Mat::convertTo.\n. \n. In case of sparse matrices, only the non-zero values are analyzed and transformed. Because of this,\n. the range transformation for sparse matrices is not allowed since it can shift the zero level.\n. \n. Possible usage with some positive example data:\n. @code{.cpp}\n. vector positiveData = { 2.0, 8.0, 10.0 };\n. vector normalizedData_l1, normalizedData_l2, normalizedData_inf, normalizedData_minmax;\n. \n. // Norm to probability (total count)\n. // sum(numbers) = 20.0\n. // 2.0 0.1 (2.0/20.0)\n. // 8.0 0.4 (8.0/20.0)\n. // 10.0 0.5 (10.0/20.0)\n. normalize(positiveData, normalizedData_l1, 1.0, 0.0, NORM_L1);\n. \n. // Norm to unit vector: ||positiveData|| = 1.0\n. // 2.0 0.15\n. // 8.0 0.62\n. // 10.0 0.77\n. normalize(positiveData, normalizedData_l2, 1.0, 0.0, NORM_L2);\n. \n. // Norm to max element\n. // 2.0 0.2 (2.0/10.0)\n. // 8.0 0.8 (8.0/10.0)\n. // 10.0 1.0 (10.0/10.0)\n. normalize(positiveData, normalizedData_inf, 1.0, 0.0, NORM_INF);\n. \n. // Norm to range [0.0;1.0]\n. // 2.0 0.0 (shift to left border)\n. // 8.0 0.75 (6.0/8.0)\n. // 10.0 1.0 (shift to right border)\n. normalize(positiveData, normalizedData_minmax, 1.0, 0.0, NORM_MINMAX);\n. @endcode\n. \n. @param src input array.\n. @param dst output array of the same size as src .\n. @param alpha norm value to normalize to or the lower range boundary in case of the range\n. normalization.\n. @param beta upper range boundary in case of the range normalization; it is not used for the norm\n. normalization.\n. @param normType normalization type (see cv::NormTypes).\n. @param dtype when negative, the output array has the same type as src; otherwise, it has the same\n. number of channels as src and the depth =CV_MAT_DEPTH(dtype).\n. @param mask optional operation mask.\n. @sa norm, Mat::convertTo, SparseMat::convertTo' + ... + + +ocl_Device = _mod_cv2.ocl_Device + + +def patchNaNs(a, val=...) -> typing.Any: + "patchNaNs(a[, val]) -> a\n. @brief converts NaN's to the given number" + ... + + +def pencilSketch(src: ndarray, dts1: ndarray = ..., dts2: ndarray = ..., sigma_s=..., sigma_r=..., shade_factor=...) -> typing.Any: + 'pencilSketch(src[, dst1[, dst2[, sigma_s[, sigma_r[, shade_factor]]]]]) -> dst1, dst2\n. @brief Pencil-like non-photorealistic line drawing\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst1 Output 8-bit 1-channel image.\n. @param dst2 Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.\n. @param shade_factor %Range between 0 to 0.1.' + ... + + +def perspectiveTransform(src: ndarray, m, dts: ndarray = ...) -> typing.Any: + "perspectiveTransform(src, m[, dst]) -> dst\n. @brief Performs the perspective matrix transformation of vectors.\n. \n. The function cv::perspectiveTransform transforms every element of src by\n. treating it as a 2D or 3D vector, in the following way:\n. \\f[(x, y, z) \\rightarrow (x'/w, y'/w, z'/w)\\f]\n. where\n. \\f[(x', y', z', w') = \\texttt{mat} \\cdot \\begin{bmatrix} x & y & z & 1 \\end{bmatrix}\\f]\n. and\n. \\f[w = \\fork{w'}{if \\(w' \\ne 0\\)}{\\infty}{otherwise}\\f]\n. \n. Here a 3D vector transformation is shown. In case of a 2D vector\n. transformation, the z component is omitted.\n. \n. @note The function transforms a sparse set of 2D or 3D vectors. If you\n. want to transform an image using perspective transformation, use\n. warpPerspective . If you have an inverse problem, that is, you want to\n. compute the most probable perspective transformation out of several\n. pairs of corresponding points, you can use getPerspectiveTransform or\n. findHomography .\n. @param src input two-channel or three-channel floating-point array; each\n. element is a 2D/3D vector to be transformed.\n. @param dst output array of the same size and type as src.\n. @param m 3x3 or 4x4 floating-point transformation matrix.\n. @sa transform, warpPerspective, getPerspectiveTransform, findHomography" + ... + + +def phase(x, y, angle=..., angleInDegrees=...) -> typing.Any: + 'phase(x, y[, angle[, angleInDegrees]]) -> angle\n. @brief Calculates the rotation angle of 2D vectors.\n. \n. The function cv::phase calculates the rotation angle of each 2D vector that\n. is formed from the corresponding elements of x and y :\n. \\f[\\texttt{angle} (I) = \\texttt{atan2} ( \\texttt{y} (I), \\texttt{x} (I))\\f]\n. \n. The angle estimation accuracy is about 0.3 degrees. When x(I)=y(I)=0 ,\n. the corresponding angle(I) is set to 0.\n. @param x input floating-point array of x-coordinates of 2D vectors.\n. @param y input array of y-coordinates of 2D vectors; it must have the\n. same size and the same type as x.\n. @param angle output array of vector angles; it has the same size and\n. same type as x .\n. @param angleInDegrees when true, the function calculates the angle in\n. degrees, otherwise, they are measured in radians.' + ... + + +def phaseCorrelate(src1: ndarray, src2: ndarray, window=...) -> typing.Any: + 'phaseCorrelate(src1, src2[, window]) -> retval, response\n. @brief The function is used to detect translational shifts that occur between two images.\n. \n. The operation takes advantage of the Fourier shift theorem for detecting the translational shift in\n. the frequency domain. It can be used for fast image registration as well as motion estimation. For\n. more information please see \n. \n. Calculates the cross-power spectrum of two supplied source arrays. The arrays are padded if needed\n. with getOptimalDFTSize.\n. \n. The function performs the following equations:\n. - First it applies a Hanning window (see ) to each\n. image to remove possible edge effects. This window is cached until the array size changes to speed\n. up processing time.\n. - Next it computes the forward DFTs of each source array:\n. \\f[\\mathbf{G}_a = \\mathcal{F}\\{src_1\\}, \\; \\mathbf{G}_b = \\mathcal{F}\\{src_2\\}\\f]\n. where \\f$\\mathcal{F}\\f$ is the forward DFT.\n. - It then computes the cross-power spectrum of each frequency domain array:\n. \\f[R = \\frac{ \\mathbf{G}_a \\mathbf{G}_b^*}{|\\mathbf{G}_a \\mathbf{G}_b^*|}\\f]\n. - Next the cross-correlation is converted back into the time domain via the inverse DFT:\n. \\f[r = \\mathcal{F}^{-1}\\{R\\}\\f]\n. - Finally, it computes the peak location and computes a 5x5 weighted centroid around the peak to\n. achieve sub-pixel accuracy.\n. \\f[(\\Delta x, \\Delta y) = \\texttt{weightedCentroid} \\{\\arg \\max_{(x, y)}\\{r\\}\\}\\f]\n. - If non-zero, the response parameter is computed as the sum of the elements of r within the 5x5\n. centroid around the peak location. It is normalized to a maximum of 1 (meaning there is a single\n. peak) and will be smaller when there are multiple peaks.\n. \n. @param src1 Source floating point array (CV_32FC1 or CV_64FC1)\n. @param src2 Source floating point array (CV_32FC1 or CV_64FC1)\n. @param window Floating point array with windowing coefficients to reduce edge effects (optional).\n. @param response Signal power within the 5x5 centroid around the peak, between 0 and 1 (optional).\n. @returns detected phase shift (sub-pixel) between the two arrays.\n. \n. @sa dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow' + ... + + +def pointPolygonTest(contour, pt, measureDist) -> typing.Any: + 'pointPolygonTest(contour, pt, measureDist) -> retval\n. @brief Performs a point-in-contour test.\n. \n. The function determines whether the point is inside a contour, outside, or lies on an edge (or\n. coincides with a vertex). It returns positive (inside), negative (outside), or zero (on an edge)\n. value, correspondingly. When measureDist=false , the return value is +1, -1, and 0, respectively.\n. Otherwise, the return value is a signed distance between the point and the nearest contour edge.\n. \n. See below a sample output of the function where each image pixel is tested against the contour:\n. \n. ![sample output](pics/pointpolygon.png)\n. \n. @param contour Input contour.\n. @param pt Point tested against the contour.\n. @param measureDist If true, the function estimates the signed distance from the point to the\n. nearest contour edge. Otherwise, the function only checks if the point is inside a contour or not.' + ... + + +def polarToCart(magnitude, angle, x=..., y=..., angleInDegrees=...) -> typing.Any: + 'polarToCart(magnitude, angle[, x[, y[, angleInDegrees]]]) -> x, y\n. @brief Calculates x and y coordinates of 2D vectors from their magnitude and angle.\n. \n. The function cv::polarToCart calculates the Cartesian coordinates of each 2D\n. vector represented by the corresponding elements of magnitude and angle:\n. \\f[\\begin{array}{l} \\texttt{x} (I) = \\texttt{magnitude} (I) \\cos ( \\texttt{angle} (I)) \\\\ \\texttt{y} (I) = \\texttt{magnitude} (I) \\sin ( \\texttt{angle} (I)) \\\\ \\end{array}\\f]\n. \n. The relative accuracy of the estimated coordinates is about 1e-6.\n. @param magnitude input floating-point array of magnitudes of 2D vectors;\n. it can be an empty matrix (=Mat()), in this case, the function assumes\n. that all the magnitudes are =1; if it is not empty, it must have the\n. same size and type as angle.\n. @param angle input floating-point array of angles of 2D vectors.\n. @param x output array of x-coordinates of 2D vectors; it has the same\n. size and type as angle.\n. @param y output array of y-coordinates of 2D vectors; it has the same\n. size and type as angle.\n. @param angleInDegrees when true, the input angles are measured in\n. degrees, otherwise, they are measured in radians.\n. @sa cartToPolar, magnitude, phase, exp, log, pow, sqrt' + ... + + +def polylines(img: ndarray, pts, isClosed, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws several polygonal curves.\n. \n. @param img Image.\n. @param pts Array of polygonal curves.\n. @param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed,\n. the function draws a line from the last vertex of each curve to its first vertex.\n. @param color Polyline color.\n. @param thickness Thickness of the polyline edges.\n. @param lineType Type of the line segments. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.\n. \n. The function cv::polylines draws one or more polygonal curves.' + ... + + +def pow(src: ndarray, power, dts: ndarray = ...) -> typing.Any: + 'pow(src, power[, dst]) -> dst\n. @brief Raises every array element to a power.\n. \n. The function cv::pow raises every element of the input array to power :\n. \\f[\\texttt{dst} (I) = \\fork{\\texttt{src}(I)^{power}}{if \\(\\texttt{power}\\) is integer}{|\\texttt{src}(I)|^{power}}{otherwise}\\f]\n. \n. So, for a non-integer power exponent, the absolute values of input array\n. elements are used. However, it is possible to get true values for\n. negative values using some extra operations. In the example below,\n. computing the 5th root of array src shows:\n. @code{.cpp}\n. Mat mask = src < 0;\n. pow(src, 1./5, dst);\n. subtract(Scalar::all(0), dst, dst, mask);\n. @endcode\n. For some values of power, such as integer values, 0.5 and -0.5,\n. specialized faster algorithms are used.\n. \n. Special values (NaN, Inf) are not handled.\n. @param src input array.\n. @param power exponent of power.\n. @param dst output array of the same size and type as src.\n. @sa sqrt, exp, log, cartToPolar, polarToCart' + ... + + +def preCornerDetect(src: ndarray, ksize, dts: ndarray = ..., borderType=...) -> typing.Any: + 'preCornerDetect(src, ksize[, dst[, borderType]]) -> dst\n. @brief Calculates a feature map for corner detection.\n. \n. The function calculates the complex spatial derivative-based function of the source image\n. \n. \\f[\\texttt{dst} = (D_x \\texttt{src} )^2 \\cdot D_{yy} \\texttt{src} + (D_y \\texttt{src} )^2 \\cdot D_{xx} \\texttt{src} - 2 D_x \\texttt{src} \\cdot D_y \\texttt{src} \\cdot D_{xy} \\texttt{src}\\f]\n. \n. where \\f$D_x\\f$,\\f$D_y\\f$ are the first image derivatives, \\f$D_{xx}\\f$,\\f$D_{yy}\\f$ are the second image\n. derivatives, and \\f$D_{xy}\\f$ is the mixed derivative.\n. \n. The corners can be found as local maximums of the functions, as shown below:\n. @code\n. Mat corners, dilated_corners;\n. preCornerDetect(image, corners, 3);\n. // dilation with 3x3 rectangular structuring element\n. dilate(corners, dilated_corners, Mat(), 1);\n. Mat corner_mask = corners == dilated_corners;\n. @endcode\n. \n. @param src Source single-channel 8-bit of floating-point image.\n. @param dst Output image that has the type CV_32F and the same size as src .\n. @param ksize %Aperture size of the Sobel .\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' + ... + + +def projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs, imagePoints=..., jacobian=..., aspectRatio=...) -> typing.Any: + 'projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs[, imagePoints[, jacobian[, aspectRatio]]]) -> imagePoints, jacobian\n. @brief Projects 3D points to an image plane.\n. \n. @param objectPoints Array of object points expressed wrt. the world coordinate frame. A 3xN/Nx3\n. 1-channel or 1xN/Nx1 3-channel (or vector\\ ), where N is the number of points in the view.\n. @param rvec The rotation vector (@ref Rodrigues) that, together with tvec, performs a change of\n. basis from world to camera coordinate system, see @ref calibrateCamera for details.\n. @param tvec The translation vector, see parameter description above.\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.\n. @param imagePoints Output array of image points, 1xN/Nx1 2-channel, or\n. vector\\ .\n. @param jacobian Optional output 2Nx(10+\\) jacobian matrix of derivatives of image\n. points with respect to components of the rotation vector, translation vector, focal lengths,\n. coordinates of the principal point and the distortion coefficients. In the old interface different\n. components of the jacobian are returned via different output parameters.\n. @param aspectRatio Optional "fixed aspect ratio" parameter. If the parameter is not 0, the\n. function assumes that the aspect ratio (\\f$f_x / f_y\\f$) is fixed and correspondingly adjusts the\n. jacobian matrix.\n. \n. The function computes the 2D projections of 3D points to the image plane, given intrinsic and\n. extrinsic camera parameters. Optionally, the function computes Jacobians -matrices of partial\n. derivatives of image points coordinates (as functions of all the input parameters) with respect to\n. the particular parameters, intrinsic and/or extrinsic. The Jacobians are used during the global\n. optimization in @ref calibrateCamera, @ref solvePnP, and @ref stereoCalibrate. The function itself\n. can also be used to compute a re-projection error, given the current intrinsic and extrinsic\n. parameters.\n. \n. @note By setting rvec = tvec = \\f$[0, 0, 0]\\f$, or by setting cameraMatrix to a 3x3 identity matrix,\n. or by passing zero distortion coefficients, one can get various useful partial cases of the\n. function. This means, one can compute the distorted coordinates for a sparse set of points or apply\n. a perspective transformation (and also compute the derivatives) in the ideal zero-distortion setup.' + ... + + +def putText(img: ndarray, text, org, fontFace, fontScale, color, thickness=..., lineType=..., bottomLeftOrigin=...) -> typing.Any: + 'putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]]) -> img\n. @brief Draws a text string.\n. \n. The function cv::putText renders the specified text string in the image. Symbols that cannot be rendered\n. using the specified font are replaced by question marks. See #getTextSize for a text rendering code\n. example.\n. \n. @param img Image.\n. @param text Text string to be drawn.\n. @param org Bottom-left corner of the text string in the image.\n. @param fontFace Font type, see #HersheyFonts.\n. @param fontScale Font scale factor that is multiplied by the font-specific base size.\n. @param color Text color.\n. @param thickness Thickness of the lines used to draw a text.\n. @param lineType Line type. See #LineTypes\n. @param bottomLeftOrigin When true, the image data origin is at the bottom-left corner. Otherwise,\n. it is at the top-left corner.' + ... + + +def pyrDown(src: ndarray, dts: ndarray = ..., dstsize=..., borderType=...) -> typing.Any: + "pyrDown(src[, dst[, dstsize[, borderType]]]) -> dst\n. @brief Blurs an image and downsamples it.\n. \n. By default, size of the output image is computed as `Size((src.cols+1)/2, (src.rows+1)/2)`, but in\n. any case, the following conditions should be satisfied:\n. \n. \\f[\\begin{array}{l} | \\texttt{dstsize.width} *2-src.cols| \\leq 2 \\\\ | \\texttt{dstsize.height} *2-src.rows| \\leq 2 \\end{array}\\f]\n. \n. The function performs the downsampling step of the Gaussian pyramid construction. First, it\n. convolves the source image with the kernel:\n. \n. \\f[\\frac{1}{256} \\begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\\\ 4 & 16 & 24 & 16 & 4 \\\\ 6 & 24 & 36 & 24 & 6 \\\\ 4 & 16 & 24 & 16 & 4 \\\\ 1 & 4 & 6 & 4 & 1 \\end{bmatrix}\\f]\n. \n. Then, it downsamples the image by rejecting even rows and columns.\n. \n. @param src input image.\n. @param dst output image; it has the specified size and the same type as src.\n. @param dstsize size of the output image.\n. @param borderType Pixel extrapolation method, see #BorderTypes (#BORDER_CONSTANT isn't supported)" + ... + + +def pyrMeanShiftFiltering(src: ndarray, sp, sr, dts: ndarray = ..., maxLevel=..., termcrit=...) -> typing.Any: + 'pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]]) -> dst\n. @brief Performs initial step of meanshift segmentation of an image.\n. \n. The function implements the filtering stage of meanshift segmentation, that is, the output of the\n. function is the filtered "posterized" image with color gradients and fine-grain texture flattened.\n. At every pixel (X,Y) of the input image (or down-sized input image, see below) the function executes\n. meanshift iterations, that is, the pixel (X,Y) neighborhood in the joint space-color hyperspace is\n. considered:\n. \n. \\f[(x,y): X- \\texttt{sp} \\le x \\le X+ \\texttt{sp} , Y- \\texttt{sp} \\le y \\le Y+ \\texttt{sp} , ||(R,G,B)-(r,g,b)|| \\le \\texttt{sr}\\f]\n. \n. where (R,G,B) and (r,g,b) are the vectors of color components at (X,Y) and (x,y), respectively\n. (though, the algorithm does not depend on the color space used, so any 3-component color space can\n. be used instead). Over the neighborhood the average spatial value (X\',Y\') and average color vector\n. (R\',G\',B\') are found and they act as the neighborhood center on the next iteration:\n. \n. \\f[(X,Y)~(X\',Y\'), (R,G,B)~(R\',G\',B\').\\f]\n. \n. After the iterations over, the color components of the initial pixel (that is, the pixel from where\n. the iterations started) are set to the final value (average color at the last iteration):\n. \n. \\f[I(X,Y) <- (R*,G*,B*)\\f]\n. \n. When maxLevel \\> 0, the gaussian pyramid of maxLevel+1 levels is built, and the above procedure is\n. run on the smallest layer first. After that, the results are propagated to the larger layer and the\n. iterations are run again only on those pixels where the layer colors differ by more than sr from the\n. lower-resolution layer of the pyramid. That makes boundaries of color regions sharper. Note that the\n. results will be actually different from the ones obtained by running the meanshift procedure on the\n. whole original image (i.e. when maxLevel==0).\n. \n. @param src The source 8-bit, 3-channel image.\n. @param dst The destination image of the same format and the same size as the source.\n. @param sp The spatial window radius.\n. @param sr The color window radius.\n. @param maxLevel Maximum level of the pyramid for the segmentation.\n. @param termcrit Termination criteria: when to stop meanshift iterations.' + ... + + +def pyrUp(src: ndarray, dts: ndarray = ..., dstsize=..., borderType=...) -> typing.Any: + 'pyrUp(src[, dst[, dstsize[, borderType]]]) -> dst\n. @brief Upsamples an image and then blurs it.\n. \n. By default, size of the output image is computed as `Size(src.cols\\*2, (src.rows\\*2)`, but in any\n. case, the following conditions should be satisfied:\n. \n. \\f[\\begin{array}{l} | \\texttt{dstsize.width} -src.cols*2| \\leq ( \\texttt{dstsize.width} \\mod 2) \\\\ | \\texttt{dstsize.height} -src.rows*2| \\leq ( \\texttt{dstsize.height} \\mod 2) \\end{array}\\f]\n. \n. The function performs the upsampling step of the Gaussian pyramid construction, though it can\n. actually be used to construct the Laplacian pyramid. First, it upsamples the source image by\n. injecting even zero rows and columns and then convolves the result with the same kernel as in\n. pyrDown multiplied by 4.\n. \n. @param src input image.\n. @param dst output image. It has the specified size and the same type as src .\n. @param dstsize size of the output image.\n. @param borderType Pixel extrapolation method, see #BorderTypes (only #BORDER_DEFAULT is supported)' + ... + + +def randShuffle(dts: ndarray, iterFactor=...) -> typing.Any: + 'randShuffle(dst[, iterFactor]) -> dst\n. @brief Shuffles the array elements randomly.\n. \n. The function cv::randShuffle shuffles the specified 1D array by randomly choosing pairs of elements and\n. swapping them. The number of such swap operations will be dst.rows\\*dst.cols\\*iterFactor .\n. @param dst input/output numerical 1D array.\n. @param iterFactor scale factor that determines the number of random swap operations (see the details\n. below).\n. @param rng optional random number generator used for shuffling; if it is zero, theRNG () is used\n. instead.\n. @sa RNG, sort' + ... + + +def randn(dts: ndarray, mean, stddev) -> typing.Any: + 'randn(dst, mean, stddev) -> dst\n. @brief Fills the array with normally distributed random numbers.\n. \n. The function cv::randn fills the matrix dst with normally distributed random numbers with the specified\n. mean vector and the standard deviation matrix. The generated random numbers are clipped to fit the\n. value range of the output array data type.\n. @param dst output array of random numbers; the array must be pre-allocated and have 1 to 4 channels.\n. @param mean mean value (expectation) of the generated random numbers.\n. @param stddev standard deviation of the generated random numbers; it can be either a vector (in\n. which case a diagonal standard deviation matrix is assumed) or a square matrix.\n. @sa RNG, randu' + ... + + +def randu(dts: ndarray, low, high) -> typing.Any: + 'randu(dst, low, high) -> dst\n. @brief Generates a single uniformly-distributed random number or an array of random numbers.\n. \n. Non-template variant of the function fills the matrix dst with uniformly-distributed\n. random numbers from the specified range:\n. \\f[\\texttt{low} _c \\leq \\texttt{dst} (I)_c < \\texttt{high} _c\\f]\n. @param dst output array of random numbers; the array must be pre-allocated.\n. @param low inclusive lower boundary of the generated random numbers.\n. @param high exclusive upper boundary of the generated random numbers.\n. @sa RNG, randn, theRNG' + ... + + +def readOpticalFlow(path) -> typing.Any: + 'readOpticalFlow(path) -> retval\n. @brief Read a .flo file\n. \n. @param path Path to the file to be loaded\n. \n. The function readOpticalFlow loads a flow field from a file and returns it as a single matrix.\n. Resulting Mat has a type CV_32FC2 - floating-point, 2-channel. First channel corresponds to the\n. flow in the horizontal direction (u), second - vertical (v).' + ... + + +def recoverPose(E, points1, points2, cameraMatrix, R=..., t=..., mask: ndarray = ...) -> typing.Any: + "recoverPose(E, points1, points2, cameraMatrix[, R[, t[, mask]]]) -> retval, R, t, mask\n. @brief Recovers the relative camera rotation and the translation from an estimated essential\n. matrix and the corresponding points in two images, using cheirality check. Returns the number of\n. inliers that pass the check.\n. \n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix.\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. described below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. \n. This function decomposes an essential matrix using @ref decomposeEssentialMat and then verifies\n. possible pose hypotheses by doing cheirality check. The cheirality check means that the\n. triangulated 3D points should have positive depth. Some details can be found in @cite Nister03.\n. \n. This function can be used to process the output E and mask from @ref findEssentialMat. In this\n. scenario, points1 and points2 are the same input for findEssentialMat.:\n. @code\n. // Example. Estimation of fundamental matrix using the RANSAC algorithm\n. int point_count = 100;\n. vector points1(point_count);\n. vector points2(point_count);\n. \n. // initialize the points here ...\n. for( int i = 0; i < point_count; i++ )\n. {\n. points1[i] = ...;\n. points2[i] = ...;\n. }\n. \n. // cametra matrix with both focal lengths = 1, and principal point = (0, 0)\n. Mat cameraMatrix = Mat::eye(3, 3, CV_64F);\n. \n. Mat E, R, t, mask;\n. \n. E = findEssentialMat(points1, points2, cameraMatrix, RANSAC, 0.999, 1.0, mask);\n. recoverPose(E, points1, points2, cameraMatrix, R, t, mask);\n. @endcode\n\n\n\nrecoverPose(E, points1, points2[, R[, t[, focal[, pp[, mask]]]]]) -> retval, R, t, mask\n. @overload\n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. description below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param focal Focal length of the camera. Note that this function assumes that points1 and points2\n. are feature points from cameras with same focal length and principal point.\n. @param pp principal point of the camera.\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. \n. This function differs from the one above that it computes camera matrix from focal length and\n. principal point:\n. \n. \\f[A =\n. \\begin{bmatrix}\n. f & 0 & x_{pp} \\\\\n. 0 & f & y_{pp} \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\\f]\n\n\n\nrecoverPose(E, points1, points2, cameraMatrix, distanceThresh[, R[, t[, mask[, triangulatedPoints]]]]) -> retval, R, t, mask, triangulatedPoints\n. @overload\n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1.\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix.\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. description below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param distanceThresh threshold distance which is used to filter out far away points (i.e. infinite\n. points).\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. @param triangulatedPoints 3D points which were reconstructed by triangulation.\n. \n. This function differs from the one above that it outputs the triangulated 3D point that are used for\n. the cheirality check." + ... + + +def rectangle(img: ndarray, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: + 'rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a simple, thick, or filled up-right rectangle.\n. \n. The function cv::rectangle draws a rectangle outline or a filled rectangle whose two opposite corners\n. are pt1 and pt2.\n. \n. @param img Image.\n. @param pt1 Vertex of the rectangle.\n. @param pt2 Vertex of the rectangle opposite to pt1 .\n. @param color Rectangle color or brightness (grayscale image).\n. @param thickness Thickness of lines that make up the rectangle. Negative values, like #FILLED,\n. mean that the function has to draw a filled rectangle.\n. @param lineType Type of the line. See #LineTypes\n. @param shift Number of fractional bits in the point coordinates.\n\n\n\nrectangle(img, rec, color[, thickness[, lineType[, shift]]]) -> img\n. @overload\n. \n. use `rec` parameter as alternative specification of the drawn rectangle: `r.tl() and\n. r.br()-Point(1,1)` are opposite corners' + ... + + +def rectify3Collinear(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, cameraMatrix3, distCoeffs3, imgpt1, imgpt3, imageSize, R12, T12, R13, T13, alpha, newImgSize, flags: int, R1=..., R2=..., R3=..., P1=..., P2=..., P3=..., Q=...) -> typing.Any: + 'rectify3Collinear(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, cameraMatrix3, distCoeffs3, imgpt1, imgpt3, imageSize, R12, T12, R13, T13, alpha, newImgSize, flags[, R1[, R2[, R3[, P1[, P2[, P3[, Q]]]]]]]) -> retval, R1, R2, R3, P1, P2, P3, Q, roi1, roi2\n.' + ... + + +def redirectError(onError) -> typing.Any: + 'redirectError(onError) -> None' + ... + + +def reduce(src: ndarray, dim, rtype, dts: ndarray = ..., dtype=...) -> typing.Any: + 'reduce(src, dim, rtype[, dst[, dtype]]) -> dst\n. @brief Reduces a matrix to a vector.\n. \n. The function #reduce reduces the matrix to a vector by treating the matrix rows/columns as a set of\n. 1D vectors and performing the specified operation on the vectors until a single row/column is\n. obtained. For example, the function can be used to compute horizontal and vertical projections of a\n. raster image. In case of #REDUCE_MAX and #REDUCE_MIN , the output image should have the same type as the source one.\n. In case of #REDUCE_SUM and #REDUCE_AVG , the output may have a larger element bit-depth to preserve accuracy.\n. And multi-channel arrays are also supported in these two reduction modes.\n. \n. The following code demonstrates its usage for a single channel matrix.\n. @snippet snippets/core_reduce.cpp example\n. \n. And the following code demonstrates its usage for a two-channel matrix.\n. @snippet snippets/core_reduce.cpp example2\n. \n. @param src input 2D matrix.\n. @param dst output vector. Its size and type is defined by dim and dtype parameters.\n. @param dim dimension index along which the matrix is reduced. 0 means that the matrix is reduced to\n. a single row. 1 means that the matrix is reduced to a single column.\n. @param rtype reduction operation that could be one of #ReduceTypes\n. @param dtype when negative, the output vector will have the same type as the input matrix,\n. otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()).\n. @sa repeat' + ... + + +def remap(src: ndarray, map1, map2, interpolation: int, dts: ndarray = ..., borderMode=..., borderValue=...) -> typing.Any: + 'remap(src, map1, map2, interpolation[, dst[, borderMode[, borderValue]]]) -> dst\n. @brief Applies a generic geometrical transformation to an image.\n. \n. The function remap transforms the source image using the specified map:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} (map_x(x,y),map_y(x,y))\\f]\n. \n. where values of pixels with non-integer coordinates are computed using one of available\n. interpolation methods. \\f$map_x\\f$ and \\f$map_y\\f$ can be encoded as separate floating-point maps\n. in \\f$map_1\\f$ and \\f$map_2\\f$ respectively, or interleaved floating-point maps of \\f$(x,y)\\f$ in\n. \\f$map_1\\f$, or fixed-point maps created by using convertMaps. The reason you might want to\n. convert from floating to fixed-point representations of a map is that they can yield much faster\n. (\\~2x) remapping operations. In the converted case, \\f$map_1\\f$ contains pairs (cvFloor(x),\n. cvFloor(y)) and \\f$map_2\\f$ contains indices in a table of interpolation coefficients.\n. \n. This function cannot operate in-place.\n. \n. @param src Source image.\n. @param dst Destination image. It has the same size as map1 and the same type as src .\n. @param map1 The first map of either (x,y) points or just x values having the type CV_16SC2 ,\n. CV_32FC1, or CV_32FC2. See convertMaps for details on converting a floating point\n. representation to fixed-point for speed.\n. @param map2 The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map\n. if map1 is (x,y) points), respectively.\n. @param interpolation Interpolation method (see #InterpolationFlags). The method #INTER_AREA is\n. not supported by this function.\n. @param borderMode Pixel extrapolation method (see #BorderTypes). When\n. borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image that\n. corresponds to the "outliers" in the source image are not modified by the function.\n. @param borderValue Value used in case of a constant border. By default, it is 0.\n. @note\n. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.' + ... + + +def repeat(src: ndarray, ny, nx, dts: ndarray = ...) -> typing.Any: + 'repeat(src, ny, nx[, dst]) -> dst\n. @brief Fills the output array with repeated copies of the input array.\n. \n. The function cv::repeat duplicates the input array one or more times along each of the two axes:\n. \\f[\\texttt{dst} _{ij}= \\texttt{src} _{i\\mod src.rows, \\; j\\mod src.cols }\\f]\n. The second variant of the function is more convenient to use with @ref MatrixExpressions.\n. @param src input array to replicate.\n. @param ny Flag to specify how many times the `src` is repeated along the\n. vertical axis.\n. @param nx Flag to specify how many times the `src` is repeated along the\n. horizontal axis.\n. @param dst output array of the same type as `src`.\n. @sa cv::reduce' + ... + + +def reprojectImageTo3D(disparity, Q, _3dImage=..., handleMissingValues=..., ddepth=...) -> typing.Any: + "reprojectImageTo3D(disparity, Q[, _3dImage[, handleMissingValues[, ddepth]]]) -> _3dImage\n. @brief Reprojects a disparity image to 3D space.\n. \n. @param disparity Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit\n. floating-point disparity image. The values of 8-bit / 16-bit signed formats are assumed to have no\n. fractional bits. If the disparity is 16-bit signed format, as computed by @ref StereoBM or\n. @ref StereoSGBM and maybe other algorithms, it should be divided by 16 (and scaled to float) before\n. being used here.\n. @param _3dImage Output 3-channel floating-point image of the same size as disparity. Each element of\n. _3dImage(x,y) contains 3D coordinates of the point (x,y) computed from the disparity map. If one\n. uses Q obtained by @ref stereoRectify, then the returned points are represented in the first\n. camera's rectified coordinate system.\n. @param Q \\f$4 \\times 4\\f$ perspective transformation matrix that can be obtained with\n. @ref stereoRectify.\n. @param handleMissingValues Indicates, whether the function should handle missing values (i.e.\n. points where the disparity was not computed). If handleMissingValues=true, then pixels with the\n. minimal disparity that corresponds to the outliers (see StereoMatcher::compute ) are transformed\n. to 3D points with a very large Z value (currently set to 10000).\n. @param ddepth The optional output array depth. If it is -1, the output image will have CV_32F\n. depth. ddepth can also be set to CV_16S, CV_32S or CV_32F.\n. \n. The function transforms a single-channel disparity map to a 3-channel image representing a 3D\n. surface. That is, for each pixel (x,y) and the corresponding disparity d=disparity(x,y) , it\n. computes:\n. \n. \\f[\\begin{bmatrix}\n. X \\\\\n. Y \\\\\n. Z \\\\\n. W\n. \\end{bmatrix} = Q \\begin{bmatrix}\n. x \\\\\n. y \\\\\n. \\texttt{disparity} (x,y) \\\\\n. z\n. \\end{bmatrix}.\\f]\n. \n. @sa\n. To reproject a sparse set of points {(x,y,d),...} to 3D space, use perspectiveTransform." + ... + + +def resize(src: ndarray, dsize: typing.Tuple[int, int], dts: ndarray = ..., fx: int = ..., fy: int = ..., interpolation: int = ...) -> ndarray: + 'resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) -> dst\n. @brief Resizes an image.\n. \n. The function resize resizes the image src down to or up to the specified size. Note that the\n. initial dst type or size are not taken into account. Instead, the size and type are derived from\n. the `src`,`dsize`,`fx`, and `fy`. If you want to resize src so that it fits the pre-created dst,\n. you may call the function as follows:\n. @code\n. // explicitly specify dsize=dst.size(); fx and fy will be computed from that.\n. resize(src, dst, dst.size(), 0, 0, interpolation);\n. @endcode\n. If you want to decimate the image by factor of 2 in each direction, you can call the function this\n. way:\n. @code\n. // specify fx and fy and let the function compute the destination image size.\n. resize(src, dst, Size(), 0.5, 0.5, interpolation);\n. @endcode\n. To shrink an image, it will generally look best with #INTER_AREA interpolation, whereas to\n. enlarge an image, it will generally look best with c#INTER_CUBIC (slow) or #INTER_LINEAR\n. (faster but still looks OK).\n. \n. @param src input image.\n. @param dst output image; it has the size dsize (when it is non-zero) or the size computed from\n. src.size(), fx, and fy; the type of dst is the same as of src.\n. @param dsize output image size; if it equals zero, it is computed as:\n. \\f[\\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\\f]\n. Either dsize or both fx and fy must be non-zero.\n. @param fx scale factor along the horizontal axis; when it equals 0, it is computed as\n. \\f[\\texttt{(double)dsize.width/src.cols}\\f]\n. @param fy scale factor along the vertical axis; when it equals 0, it is computed as\n. \\f[\\texttt{(double)dsize.height/src.rows}\\f]\n. @param interpolation interpolation method, see #InterpolationFlags\n. \n. @sa warpAffine, warpPerspective, remap' + ... + + +def resizeWindow(winname, width, height) -> typing.Any: + 'resizeWindow(winname, width, height) -> None\n. @brief Resizes window to the specified size\n. \n. @note\n. \n. - The specified window size is for the image area. Toolbars are not counted.\n. - Only windows created without cv::WINDOW_AUTOSIZE flag can be resized.\n. \n. @param winname Window name.\n. @param width The new window width.\n. @param height The new window height.\n\n\n\nresizeWindow(winname, size) -> None\n. @overload\n. @param winname Window name.\n. @param size The new window size.' + ... + + +def rotate(src: ndarray, rotateCode, dts: ndarray = ...) -> typing.Any: + 'rotate(src, rotateCode[, dst]) -> dst\n. @brief Rotates a 2D array in multiples of 90 degrees.\n. The function cv::rotate rotates the array in one of three different ways:\n. * Rotate by 90 degrees clockwise (rotateCode = ROTATE_90_CLOCKWISE).\n. * Rotate by 180 degrees clockwise (rotateCode = ROTATE_180).\n. * Rotate by 270 degrees clockwise (rotateCode = ROTATE_90_COUNTERCLOCKWISE).\n. @param src input array.\n. @param dst output array of the same type as src. The size is the same with ROTATE_180,\n. and the rows and cols are switched for ROTATE_90_CLOCKWISE and ROTATE_90_COUNTERCLOCKWISE.\n. @param rotateCode an enum to specify how to rotate the array; see the enum #RotateFlags\n. @sa transpose , repeat , completeSymm, flip, RotateFlags' + ... + + +def rotatedRectangleIntersection(rect1, rect2, intersectingRegion=...) -> typing.Any: + 'rotatedRectangleIntersection(rect1, rect2[, intersectingRegion]) -> retval, intersectingRegion\n. @brief Finds out if there is any intersection between two rotated rectangles.\n. \n. If there is then the vertices of the intersecting region are returned as well.\n. \n. Below are some examples of intersection configurations. The hatched pattern indicates the\n. intersecting region and the red vertices are returned by the function.\n. \n. ![intersection examples](pics/intersection.png)\n. \n. @param rect1 First rectangle\n. @param rect2 Second rectangle\n. @param intersectingRegion The output array of the vertices of the intersecting region. It returns\n. at most 8 vertices. Stored as std::vector\\ or cv::Mat as Mx1 of type CV_32FC2.\n. @returns One of #RectanglesIntersectTypes' + ... + + +def sampsonDistance(pt1, pt2, F) -> typing.Any: + 'sampsonDistance(pt1, pt2, F) -> retval\n. @brief Calculates the Sampson Distance between two points.\n. \n. The function cv::sampsonDistance calculates and returns the first order approximation of the geometric error as:\n. \\f[\n. sd( \\texttt{pt1} , \\texttt{pt2} )=\n. \\frac{(\\texttt{pt2}^t \\cdot \\texttt{F} \\cdot \\texttt{pt1})^2}\n. {((\\texttt{F} \\cdot \\texttt{pt1})(0))^2 +\n. ((\\texttt{F} \\cdot \\texttt{pt1})(1))^2 +\n. ((\\texttt{F}^t \\cdot \\texttt{pt2})(0))^2 +\n. ((\\texttt{F}^t \\cdot \\texttt{pt2})(1))^2}\n. \\f]\n. The fundamental matrix may be calculated using the cv::findFundamentalMat function. See @cite HartleyZ00 11.4.3 for details.\n. @param pt1 first homogeneous 2d point\n. @param pt2 second homogeneous 2d point\n. @param F fundamental matrix\n. @return The computed Sampson distance.' + ... + + +def scaleAdd(src1: ndarray, alpha, src2: ndarray, dts: ndarray = ...) -> typing.Any: + 'scaleAdd(src1, alpha, src2[, dst]) -> dst\n. @brief Calculates the sum of a scaled array and another array.\n. \n. The function scaleAdd is one of the classical primitive linear algebra operations, known as DAXPY\n. or SAXPY in [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms). It calculates\n. the sum of a scaled array and another array:\n. \\f[\\texttt{dst} (I)= \\texttt{scale} \\cdot \\texttt{src1} (I) + \\texttt{src2} (I)\\f]\n. The function can also be emulated with a matrix expression, for example:\n. @code{.cpp}\n. Mat A(3, 3, CV_64F);\n. ...\n. A.row(0) = A.row(1)*2 + A.row(2);\n. @endcode\n. @param src1 first input array.\n. @param alpha scale factor for the first array.\n. @param src2 second input array of the same size and type as src1.\n. @param dst output array of the same size and type as src1.\n. @sa add, addWeighted, subtract, Mat::dot, Mat::convertTo' + ... + + +def seamlessClone(src: ndarray, dts: ndarray, mask: typing.Optional[ndarray], p, flags: int, blend=...) -> typing.Any: + 'seamlessClone(src, dst, mask, p, flags[, blend]) -> blend\n. @brief Image editing tasks concern either global changes (color/intensity corrections, filters,\n. deformations) or local changes concerned to a selection. Here we are interested in achieving local\n. changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless\n. manner. The extent of the changes ranges from slight distortions to complete replacement by novel\n. content @cite PM03 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param p Point in dst image where object is placed.\n. @param blend Output image with the same size and type as dst.\n. @param flags Cloning method that could be cv::NORMAL_CLONE, cv::MIXED_CLONE or cv::MONOCHROME_TRANSFER' + ... + + +def selectROI(windowName, img: ndarray, showCrosshair=..., fromCenter=...) -> typing.Any: + "selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval\n. @brief Selects ROI on the given image.\n. Function creates a window and allows user to select a ROI using mouse.\n. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).\n. \n. @param windowName name of the window where selection process will be shown.\n. @param img image to select a ROI.\n. @param showCrosshair if true crosshair of selection rectangle will be shown.\n. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of\n. selection rectangle will correspont to the initial mouse position.\n. @return selected ROI or empty rect if selection canceled.\n. \n. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).\n. After finish of work an empty callback will be set for the used window.\n\n\n\nselectROI(img[, showCrosshair[, fromCenter]]) -> retval\n. @overload" + ... + + +def selectROIs(windowName, img: ndarray, showCrosshair=..., fromCenter=...) -> typing.Any: + "selectROIs(windowName, img[, showCrosshair[, fromCenter]]) -> boundingBoxes\n. @brief Selects ROIs on the given image.\n. Function creates a window and allows user to select a ROIs using mouse.\n. Controls: use `space` or `enter` to finish current selection and start a new one,\n. use `esc` to terminate multiple ROI selection process.\n. \n. @param windowName name of the window where selection process will be shown.\n. @param img image to select a ROI.\n. @param boundingBoxes selected ROIs.\n. @param showCrosshair if true crosshair of selection rectangle will be shown.\n. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of\n. selection rectangle will correspont to the initial mouse position.\n. \n. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).\n. After finish of work an empty callback will be set for the used window." + ... + + +def sepFilter2D(src: ndarray, ddepth, kernelX, kernelY, dts: ndarray = ..., anchor=..., delta=..., borderType=...) -> typing.Any: + 'sepFilter2D(src, ddepth, kernelX, kernelY[, dst[, anchor[, delta[, borderType]]]]) -> dst\n. @brief Applies a separable linear filter to an image.\n. \n. The function applies a separable linear filter to the image. That is, first, every row of src is\n. filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D\n. kernel kernelY. The final result shifted by delta is stored in dst .\n. \n. @param src Source image.\n. @param dst Destination image of the same size and the same number of channels as src .\n. @param ddepth Destination image depth, see @ref filter_depths "combinations"\n. @param kernelX Coefficients for filtering each row.\n. @param kernelY Coefficients for filtering each column.\n. @param anchor Anchor position within the kernel. The default value \\f$(-1,-1)\\f$ means that the anchor\n. is at the kernel center.\n. @param delta Value added to the filtered results before storing them.\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa filter2D, Sobel, GaussianBlur, boxFilter, blur' + ... + + +def setIdentity(mtx, s=...) -> typing.Any: + 'setIdentity(mtx[, s]) -> mtx\n. @brief Initializes a scaled identity matrix.\n. \n. The function cv::setIdentity initializes a scaled identity matrix:\n. \\f[\\texttt{mtx} (i,j)= \\fork{\\texttt{value}}{ if \\(i=j\\)}{0}{otherwise}\\f]\n. \n. The function can also be emulated using the matrix initializers and the\n. matrix expressions:\n. @code\n. Mat A = Mat::eye(4, 3, CV_32F)*5;\n. // A will be set to [[5, 0, 0], [0, 5, 0], [0, 0, 5], [0, 0, 0]]\n. @endcode\n. @param mtx matrix to initialize (not necessarily square).\n. @param s value to assign to diagonal elements.\n. @sa Mat::zeros, Mat::ones, Mat::setTo, Mat::operator=' + ... + + +def setMouseCallback(windowName, onMouse, param=...) -> typing.Any: + 'setMouseCallback(windowName, onMouse [, param]) -> None' + ... + + +def setNumThreads(nthreads) -> typing.Any: + "setNumThreads(nthreads) -> None\n. @brief OpenCV will try to set the number of threads for the next parallel region.\n. \n. If threads == 0, OpenCV will disable threading optimizations and run all it's functions\n. sequentially. Passing threads \\< 0 will reset threads number to system default. This function must\n. be called outside of parallel region.\n. \n. OpenCV will try to run its functions with specified threads number, but some behaviour differs from\n. framework:\n. - `TBB` - User-defined parallel constructions will run with the same threads number, if\n. another is not specified. If later on user creates his own scheduler, OpenCV will use it.\n. - `OpenMP` - No special defined behaviour.\n. - `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run its\n. functions sequentially.\n. - `GCD` - Supports only values \\<= 0.\n. - `C=` - No special defined behaviour.\n. @param nthreads Number of threads used by OpenCV.\n. @sa getNumThreads, getThreadNum" + ... + + +def setRNGSeed(seed) -> typing.Any: + 'setRNGSeed(seed) -> None\n. @brief Sets state of default random number generator.\n. \n. The function cv::setRNGSeed sets state of default random number generator to custom value.\n. @param seed new state for default random number generator\n. @sa RNG, randu, randn' + ... + + +def setTrackbarMax(trackbarname, winname, maxval) -> typing.Any: + 'setTrackbarMax(trackbarname, winname, maxval) -> None\n. @brief Sets the trackbar maximum position.\n. \n. The function sets the maximum position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param maxval New maximum position.' + ... + + +def setTrackbarMin(trackbarname, winname, minval) -> typing.Any: + 'setTrackbarMin(trackbarname, winname, minval) -> None\n. @brief Sets the trackbar minimum position.\n. \n. The function sets the minimum position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param minval New minimum position.' + ... + + +def setTrackbarPos(trackbarname, winname, pos) -> typing.Any: + 'setTrackbarPos(trackbarname, winname, pos) -> None\n. @brief Sets the trackbar position.\n. \n. The function sets the position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param pos New position.' + ... + + +def setUseOpenVX(flag) -> typing.Any: + 'setUseOpenVX(flag) -> None\n.' + ... + + +def setUseOptimized(onoff) -> typing.Any: + 'setUseOptimized(onoff) -> None\n. @brief Enables or disables the optimized code.\n. \n. The function can be used to dynamically turn on and off optimized dispatched code (code that uses SSE4.2, AVX/AVX2,\n. and other instructions on the platforms that support it). It sets a global flag that is further\n. checked by OpenCV functions. Since the flag is not checked in the inner OpenCV loops, it is only\n. safe to call the function on the very top level in your application where you can be sure that no\n. other OpenCV function is currently executed.\n. \n. By default, the optimized code is enabled unless you disable it in CMake. The current status can be\n. retrieved using useOptimized.\n. @param onoff The boolean flag specifying whether the optimized code should be used (onoff=true)\n. or not (onoff=false).' + ... + + +def setWindowProperty(winname, prop_id, prop_value) -> typing.Any: + 'setWindowProperty(winname, prop_id, prop_value) -> None\n. @brief Changes parameters of a window dynamically.\n. \n. The function setWindowProperty enables changing properties of a window.\n. \n. @param winname Name of the window.\n. @param prop_id Window property to edit. The supported operation flags are: (cv::WindowPropertyFlags)\n. @param prop_value New value of the window property. The supported flags are: (cv::WindowFlags)' + ... + + +def setWindowTitle(winname, title) -> typing.Any: + 'setWindowTitle(winname, title) -> None\n. @brief Updates window title\n. @param winname Name of the window.\n. @param title New title.' + ... + + +def solve(src1: ndarray, src2: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: + 'solve(src1, src2[, dst[, flags]]) -> retval, dst\n. @brief Solves one or more linear systems or least-squares problems.\n. \n. The function cv::solve solves a linear system or least-squares problem (the\n. latter is possible with SVD or QR methods, or by specifying the flag\n. #DECOMP_NORMAL ):\n. \\f[\\texttt{dst} = \\arg \\min _X \\| \\texttt{src1} \\cdot \\texttt{X} - \\texttt{src2} \\|\\f]\n. \n. If #DECOMP_LU or #DECOMP_CHOLESKY method is used, the function returns 1\n. if src1 (or \\f$\\texttt{src1}^T\\texttt{src1}\\f$ ) is non-singular. Otherwise,\n. it returns 0. In the latter case, dst is not valid. Other methods find a\n. pseudo-solution in case of a singular left-hand side part.\n. \n. @note If you want to find a unity-norm solution of an under-defined\n. singular system \\f$\\texttt{src1}\\cdot\\texttt{dst}=0\\f$ , the function solve\n. will not do the work. Use SVD::solveZ instead.\n. \n. @param src1 input matrix on the left-hand side of the system.\n. @param src2 input matrix on the right-hand side of the system.\n. @param dst output solution.\n. @param flags solution (matrix inversion) method (#DecompTypes)\n. @sa invert, SVD, eigen' + ... + + +def solveCubic(coeffs, roots=...) -> typing.Any: + 'solveCubic(coeffs[, roots]) -> retval, roots\n. @brief Finds the real roots of a cubic equation.\n. \n. The function solveCubic finds the real roots of a cubic equation:\n. - if coeffs is a 4-element vector:\n. \\f[\\texttt{coeffs} [0] x^3 + \\texttt{coeffs} [1] x^2 + \\texttt{coeffs} [2] x + \\texttt{coeffs} [3] = 0\\f]\n. - if coeffs is a 3-element vector:\n. \\f[x^3 + \\texttt{coeffs} [0] x^2 + \\texttt{coeffs} [1] x + \\texttt{coeffs} [2] = 0\\f]\n. \n. The roots are stored in the roots array.\n. @param coeffs equation coefficients, an array of 3 or 4 elements.\n. @param roots output array of real roots that has 1 or 3 elements.\n. @return number of real roots. It can be 0, 1 or 2.' + ... + + +def solveLP(Func, Constr, z=...) -> typing.Any: + 'solveLP(Func, Constr[, z]) -> retval, z\n. @brief Solve given (non-integer) linear programming problem using the Simplex Algorithm (Simplex Method).\n. \n. What we mean here by "linear programming problem" (or LP problem, for short) can be formulated as:\n. \n. \\f[\\mbox{Maximize } c\\cdot x\\\\\n. \\mbox{Subject to:}\\\\\n. Ax\\leq b\\\\\n. x\\geq 0\\f]\n. \n. Where \\f$c\\f$ is fixed `1`-by-`n` row-vector, \\f$A\\f$ is fixed `m`-by-`n` matrix, \\f$b\\f$ is fixed `m`-by-`1`\n. column vector and \\f$x\\f$ is an arbitrary `n`-by-`1` column vector, which satisfies the constraints.\n. \n. Simplex algorithm is one of many algorithms that are designed to handle this sort of problems\n. efficiently. Although it is not optimal in theoretical sense (there exist algorithms that can solve\n. any problem written as above in polynomial time, while simplex method degenerates to exponential\n. time for some special cases), it is well-studied, easy to implement and is shown to work well for\n. real-life purposes.\n. \n. The particular implementation is taken almost verbatim from **Introduction to Algorithms, third\n. edition** by T. H. Cormen, C. E. Leiserson, R. L. Rivest and Clifford Stein. In particular, the\n. Bland\'s rule is used to prevent cycling.\n. \n. @param Func This row-vector corresponds to \\f$c\\f$ in the LP problem formulation (see above). It should\n. contain 32- or 64-bit floating point numbers. As a convenience, column-vector may be also submitted,\n. in the latter case it is understood to correspond to \\f$c^T\\f$.\n. @param Constr `m`-by-`n+1` matrix, whose rightmost column corresponds to \\f$b\\f$ in formulation above\n. and the remaining to \\f$A\\f$. It should contain 32- or 64-bit floating point numbers.\n. @param z The solution will be returned here as a column-vector - it corresponds to \\f$c\\f$ in the\n. formulation above. It will contain 64-bit floating point numbers.\n. @return One of cv::SolveLPResult' + ... + + +def solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags: int, rvecs=..., tvecs=...) -> typing.Any: + 'solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags[, rvecs[, tvecs]]) -> retval, rvecs, tvecs\n. @brief Finds an object pose from 3 3D-2D point correspondences.\n. \n. @param objectPoints Array of object points in the object coordinate space, 3x3 1-channel or\n. 1x3/3x1 3-channel. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, 3x2 1-channel or 1x3/3x1 2-channel.\n. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvecs Output rotation vectors (see @ref Rodrigues ) that, together with tvecs, brings points from\n. the model coordinate system to the camera coordinate system. A P3P problem has up to 4 solutions.\n. @param tvecs Output translation vectors.\n. @param flags Method for solving a P3P problem:\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke and S. Roumeliotis.\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. \n. The function estimates the object pose given 3 object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients.\n. \n. @note\n. The solutions are sorted by reprojection errors (lowest to highest).' + ... + + +def solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., flags: int = ...) -> typing.Any: + 'solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, flags]]]]) -> retval, rvec, tvec\n. @brief Finds an object pose from 3D-2D point correspondences.\n. This function returns the rotation and the translation vectors that transform a 3D point expressed in the object\n. coordinate frame to the camera coordinate frame, using different methods:\n. - P3P methods (@ref SOLVEPNP_P3P, @ref SOLVEPNP_AP3P): need 4 input points to return a unique solution.\n. - @ref SOLVEPNP_IPPE Input points must be >= 4 and object points must be coplanar.\n. - @ref SOLVEPNP_IPPE_SQUARE Special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. - for all the other flags, number of input points must be >= 4 and object points can be in any configuration.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Output translation vector.\n. @param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param flags Method for solving a PnP problem:\n. - **SOLVEPNP_ITERATIVE** Iterative method is based on a Levenberg-Marquardt optimization. In\n. this case the function finds such a pose that minimizes reprojection error, that is the sum\n. of squared distances between the observed projections imagePoints and the projected (using\n. projectPoints ) objectPoints .\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_EPNP** Method has been introduced by F. Moreno-Noguer, V. Lepetit and P. Fua in the\n. paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).\n. - **SOLVEPNP_DLS** Method is based on the paper of J. Hesch and S. Roumeliotis.\n. "A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).\n. - **SOLVEPNP_UPNP** Method is based on the paper of A. Penate-Sanchez, J. Andrade-Cetto,\n. F. Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length\n. Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \\f$f_x\\f$ and \\f$f_y\\f$\n. assuming that both have the same value. Then the cameraMatrix is updated with the estimated\n. focal length.\n. - **SOLVEPNP_IPPE** Method is based on the paper of T. Collins and A. Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method requires coplanar object points.\n. - **SOLVEPNP_IPPE_SQUARE** Method is based on the paper of Toby Collins and Adrien Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method is suitable for marker pose estimation.\n. It requires 4 coplanar object points defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. \n. The function estimates the object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients, see the figure below\n. (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward\n. and the Z-axis forward).\n. \n. ![](pnp.jpg)\n. \n. Points expressed in the world frame \\f$ \\bf{X}_w \\f$ are projected into the image plane \\f$ \\left[ u, v \\right] \\f$\n. using the perspective projection model \\f$ \\Pi \\f$ and the camera intrinsic parameters matrix \\f$ \\bf{A} \\f$:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\bf{A} \\hspace{0.1em} \\Pi \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. f_x & 0 & c_x \\\\\n. 0 & f_y & c_y \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. 1 & 0 & 0 & 0 \\\\\n. 0 & 1 & 0 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow transforming\n. a 3D point expressed in the world frame into the camera frame:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. @note\n. - An example of how to use solvePnP for planar augmented reality can be found at\n. opencv_source_code/samples/python/plane_ar.py\n. - If you are using Python:\n. - Numpy array slices won\'t work as input because solvePnP requires contiguous\n. arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of\n. modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. - The P3P algorithm requires image points to be in an array of shape (N,1,2) due\n. to its calling of cv::undistortPoints (around line 75 of modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. which requires 2-channel information.\n. - Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of\n. it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =\n. np.ascontiguousarray(D[:,:2]).reshape((N,1,2))\n. - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are\n. unstable and sometimes give completely wrong results. If you pass one of these two\n. flags, **SOLVEPNP_EPNP** method will be used instead.\n. - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**\n. methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions\n. of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).\n. - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points\n. are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the\n. global solution to converge.\n. - With **SOLVEPNP_IPPE** input points must be >= 4 and object points must be coplanar.\n. - With **SOLVEPNP_IPPE_SQUARE** this is a special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]' + ... + + +def solvePnPGeneric(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., useExtrinsicGuess=..., flags: int = ..., rvec=..., tvec=..., reprojectionError=...) -> typing.Any: + 'solvePnPGeneric(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvecs[, tvecs[, useExtrinsicGuess[, flags[, rvec[, tvec[, reprojectionError]]]]]]]) -> retval, rvecs, tvecs, reprojectionError\n. @brief Finds an object pose from 3D-2D point correspondences.\n. This function returns a list of all the possible solutions (a solution is a \n. couple), depending on the number of input points and the chosen method:\n. - P3P methods (@ref SOLVEPNP_P3P, @ref SOLVEPNP_AP3P): 3 or 4 input points. Number of returned solutions can be between 0 and 4 with 3 input points.\n. - @ref SOLVEPNP_IPPE Input points must be >= 4 and object points must be coplanar. Returns 2 solutions.\n. - @ref SOLVEPNP_IPPE_SQUARE Special case suitable for marker pose estimation.\n. Number of input points must be 4 and 2 solutions are returned. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. - for all the other flags, number of input points must be >= 4 and object points can be in any configuration.\n. Only 1 solution is returned.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvecs Vector of output rotation vectors (see @ref Rodrigues ) that, together with tvecs, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvecs Vector of output translation vectors.\n. @param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param flags Method for solving a PnP problem:\n. - **SOLVEPNP_ITERATIVE** Iterative method is based on a Levenberg-Marquardt optimization. In\n. this case the function finds such a pose that minimizes reprojection error, that is the sum\n. of squared distances between the observed projections imagePoints and the projected (using\n. projectPoints ) objectPoints .\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_EPNP** Method has been introduced by F.Moreno-Noguer, V.Lepetit and P.Fua in the\n. paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).\n. - **SOLVEPNP_DLS** Method is based on the paper of Joel A. Hesch and Stergios I. Roumeliotis.\n. "A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).\n. - **SOLVEPNP_UPNP** Method is based on the paper of A.Penate-Sanchez, J.Andrade-Cetto,\n. F.Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length\n. Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \\f$f_x\\f$ and \\f$f_y\\f$\n. assuming that both have the same value. Then the cameraMatrix is updated with the estimated\n. focal length.\n. - **SOLVEPNP_IPPE** Method is based on the paper of T. Collins and A. Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method requires coplanar object points.\n. - **SOLVEPNP_IPPE_SQUARE** Method is based on the paper of Toby Collins and Adrien Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method is suitable for marker pose estimation.\n. It requires 4 coplanar object points defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. @param rvec Rotation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE\n. and useExtrinsicGuess is set to true.\n. @param tvec Translation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE\n. and useExtrinsicGuess is set to true.\n. @param reprojectionError Optional vector of reprojection error, that is the RMS error\n. (\\f$ \\text{RMSE} = \\sqrt{\\frac{\\sum_{i}^{N} \\left ( \\hat{y_i} - y_i \\right )^2}{N}} \\f$) between the input image points\n. and the 3D object points projected with the estimated pose.\n. \n. The function estimates the object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients, see the figure below\n. (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward\n. and the Z-axis forward).\n. \n. ![](pnp.jpg)\n. \n. Points expressed in the world frame \\f$ \\bf{X}_w \\f$ are projected into the image plane \\f$ \\left[ u, v \\right] \\f$\n. using the perspective projection model \\f$ \\Pi \\f$ and the camera intrinsic parameters matrix \\f$ \\bf{A} \\f$:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\bf{A} \\hspace{0.1em} \\Pi \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. f_x & 0 & c_x \\\\\n. 0 & f_y & c_y \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. 1 & 0 & 0 & 0 \\\\\n. 0 & 1 & 0 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow transforming\n. a 3D point expressed in the world frame into the camera frame:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. @note\n. - An example of how to use solvePnP for planar augmented reality can be found at\n. opencv_source_code/samples/python/plane_ar.py\n. - If you are using Python:\n. - Numpy array slices won\'t work as input because solvePnP requires contiguous\n. arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of\n. modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. - The P3P algorithm requires image points to be in an array of shape (N,1,2) due\n. to its calling of cv::undistortPoints (around line 75 of modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. which requires 2-channel information.\n. - Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of\n. it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =\n. np.ascontiguousarray(D[:,:2]).reshape((N,1,2))\n. - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are\n. unstable and sometimes give completely wrong results. If you pass one of these two\n. flags, **SOLVEPNP_EPNP** method will be used instead.\n. - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**\n. methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions\n. of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).\n. - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points\n. are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the\n. global solution to converge.\n. - With **SOLVEPNP_IPPE** input points must be >= 4 and object points must be coplanar.\n. - With **SOLVEPNP_IPPE_SQUARE** this is a special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]' + ... + + +def solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., iterationsCount=..., reprojectionError=..., confidence=..., inliers=..., flags: int = ...) -> typing.Any: + 'solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, iterationsCount[, reprojectionError[, confidence[, inliers[, flags]]]]]]]]) -> retval, rvec, tvec, inliers\n. @brief Finds an object pose from 3D-2D point correspondences using the RANSAC scheme.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{fx}{0}{cx}{0}{fy}{cy}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Output translation vector.\n. @param useExtrinsicGuess Parameter used for @ref SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param iterationsCount Number of iterations.\n. @param reprojectionError Inlier threshold value used by the RANSAC procedure. The parameter value\n. is the maximum allowed distance between the observed and computed point projections to consider it\n. an inlier.\n. @param confidence The probability that the algorithm produces a useful result.\n. @param inliers Output vector that contains indices of inliers in objectPoints and imagePoints .\n. @param flags Method for solving a PnP problem (see @ref solvePnP ).\n. \n. The function estimates an object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients. This function finds such\n. a pose that minimizes reprojection error, that is, the sum of squared distances between the observed\n. projections imagePoints and the projected (using @ref projectPoints ) objectPoints. The use of RANSAC\n. makes the function resistant to outliers.\n. \n. @note\n. - An example of how to use solvePNPRansac for object detection can be found at\n. opencv_source_code/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/\n. - The default method used to estimate the camera pose for the Minimal Sample Sets step\n. is #SOLVEPNP_EPNP. Exceptions are:\n. - if you choose #SOLVEPNP_P3P or #SOLVEPNP_AP3P, these methods will be used.\n. - if the number of input points is equal to 4, #SOLVEPNP_P3P is used.\n. - The method used to estimate the camera pose using all the inliers is defined by the\n. flags parameters unless it is equal to #SOLVEPNP_P3P or #SOLVEPNP_AP3P. In this case,\n. the method #SOLVEPNP_EPNP will be used instead.' + ... + + +def solvePnPRefineLM(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=...) -> typing.Any: + 'solvePnPRefineLM(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec[, criteria]) -> rvec, tvec\n. @brief Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame\n. to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Input/Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system. Input values are used as an initial solution.\n. @param tvec Input/Output translation vector. Input values are used as an initial solution.\n. @param criteria Criteria when to stop the Levenberg-Marquard iterative algorithm.\n. \n. The function refines the object pose given at least 3 object points, their corresponding image\n. projections, an initial solution for the rotation and translation vector,\n. as well as the camera matrix and the distortion coefficients.\n. The function minimizes the projection error with respect to the rotation and the translation vectors, according\n. to a Levenberg-Marquardt iterative minimization @cite Madsen04 @cite Eade13 process.' + ... + + +def solvePnPRefineVVS(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=..., VVSlambda=...) -> typing.Any: + 'solvePnPRefineVVS(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec[, criteria[, VVSlambda]]) -> rvec, tvec\n. @brief Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame\n. to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Input/Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system. Input values are used as an initial solution.\n. @param tvec Input/Output translation vector. Input values are used as an initial solution.\n. @param criteria Criteria when to stop the Levenberg-Marquard iterative algorithm.\n. @param VVSlambda Gain for the virtual visual servoing control law, equivalent to the \\f$\\alpha\\f$\n. gain in the Damped Gauss-Newton formulation.\n. \n. The function refines the object pose given at least 3 object points, their corresponding image\n. projections, an initial solution for the rotation and translation vector,\n. as well as the camera matrix and the distortion coefficients.\n. The function minimizes the projection error with respect to the rotation and the translation vectors, using a\n. virtual visual servoing (VVS) @cite Chaumette06 @cite Marchand16 scheme.' + ... + + +def solvePoly(coeffs, roots=..., maxIters=...) -> typing.Any: + 'solvePoly(coeffs[, roots[, maxIters]]) -> retval, roots\n. @brief Finds the real or complex roots of a polynomial equation.\n. \n. The function cv::solvePoly finds real and complex roots of a polynomial equation:\n. \\f[\\texttt{coeffs} [n] x^{n} + \\texttt{coeffs} [n-1] x^{n-1} + ... + \\texttt{coeffs} [1] x + \\texttt{coeffs} [0] = 0\\f]\n. @param coeffs array of polynomial coefficients.\n. @param roots output (complex) array of roots.\n. @param maxIters maximum number of iterations the algorithm does.' + ... + + +def sort(src: ndarray, flags: int, dts: ndarray = ...) -> typing.Any: + 'sort(src, flags[, dst]) -> dst\n. @brief Sorts each row or each column of a matrix.\n. \n. The function cv::sort sorts each matrix row or each matrix column in\n. ascending or descending order. So you should pass two operation flags to\n. get desired behaviour. If you want to sort matrix rows or columns\n. lexicographically, you can use STL std::sort generic function with the\n. proper comparison predicate.\n. \n. @param src input single-channel array.\n. @param dst output array of the same size and type as src.\n. @param flags operation flags, a combination of #SortFlags\n. @sa sortIdx, randShuffle' + ... + + +def sortIdx(src: ndarray, flags: int, dts: ndarray = ...) -> typing.Any: + 'sortIdx(src, flags[, dst]) -> dst\n. @brief Sorts each row or each column of a matrix.\n. \n. The function cv::sortIdx sorts each matrix row or each matrix column in the\n. ascending or descending order. So you should pass two operation flags to\n. get desired behaviour. Instead of reordering the elements themselves, it\n. stores the indices of sorted elements in the output array. For example:\n. @code\n. Mat A = Mat::eye(3,3,CV_32F), B;\n. sortIdx(A, B, SORT_EVERY_ROW + SORT_ASCENDING);\n. // B will probably contain\n. // (because of equal elements in A some permutations are possible):\n. // [[1, 2, 0], [0, 2, 1], [0, 1, 2]]\n. @endcode\n. @param src input single-channel array.\n. @param dst output integer array of the same size as src.\n. @param flags operation flags that could be a combination of cv::SortFlags\n. @sa sort, randShuffle' + ... + + +def spatialGradient(src: ndarray, dx=..., dy=..., ksize=..., borderType=...) -> typing.Any: + 'spatialGradient(src[, dx[, dy[, ksize[, borderType]]]]) -> dx, dy\n. @brief Calculates the first order image derivative in both x and y using a Sobel operator\n. \n. Equivalent to calling:\n. \n. @code\n. Sobel( src, dx, CV_16SC1, 1, 0, 3 );\n. Sobel( src, dy, CV_16SC1, 0, 1, 3 );\n. @endcode\n. \n. @param src input image.\n. @param dx output image with first-order derivative in x.\n. @param dy output image with first-order derivative in y.\n. @param ksize size of Sobel kernel. It must be 3.\n. @param borderType pixel extrapolation method, see #BorderTypes.\n. Only #BORDER_DEFAULT=#BORDER_REFLECT_101 and #BORDER_REPLICATE are supported.\n. \n. @sa Sobel' + ... + + +def split(m, mv=...) -> typing.Any: + 'split(m[, mv]) -> mv\n. @overload\n. @param m input multi-channel array.\n. @param mv output vector of arrays; the arrays themselves are reallocated, if needed.' + ... + + +def sqrBoxFilter(src: ndarray, ddepth, ksize, dts: ndarray = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: + "sqrBoxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst\n. @brief Calculates the normalized sum of squares of the pixel values overlapping the filter.\n. \n. For every pixel \\f$ (x, y) \\f$ in the source image, the function calculates the sum of squares of those neighboring\n. pixel values which overlap the filter placed over the pixel \\f$ (x, y) \\f$.\n. \n. The unnormalized square box filter can be useful in computing local image statistics such as the the local\n. variance and standard deviation around the neighborhood of a pixel.\n. \n. @param src input image\n. @param dst output image of the same size and type as _src\n. @param ddepth the output image depth (-1 to use src.depth())\n. @param ksize kernel size\n. @param anchor kernel anchor point. The default value of Point(-1, -1) denotes that the anchor is at the kernel\n. center.\n. @param normalize flag, specifying whether the kernel is to be normalized by it's area or not.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa boxFilter" + ... + + +def sqrt(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'sqrt(src[, dst]) -> dst\n. @brief Calculates a square root of array elements.\n. \n. The function cv::sqrt calculates a square root of each input array element.\n. In case of multi-channel arrays, each channel is processed\n. independently. The accuracy is approximately the same as of the built-in\n. std::sqrt .\n. @param src input floating-point array.\n. @param dst output array of the same size and type as src.' + ... + + +def startWindowThread() -> typing.Any: + 'startWindowThread() -> retval\n.' + ... + + +def stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R=..., T=..., E=..., F=..., flags: int = ..., criteria=...) -> typing.Any: + 'stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize[, R[, T[, E[, F[, flags[, criteria]]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F\n.' + ... + + +def stereoCalibrateExtended(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, E=..., F=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: + "stereoCalibrateExtended(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T[, E[, F[, perViewErrors[, flags[, criteria]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F, perViewErrors\n. @brief Calibrates a stereo camera set up. This function finds the intrinsic parameters\n. for each of the two cameras and the extrinsic parameters between the two cameras.\n. \n. @param objectPoints Vector of vectors of the calibration pattern points. The same structure as\n. in @ref calibrateCamera. For each pattern view, both cameras need to see the same object\n. points. Therefore, objectPoints.size(), imagePoints1.size(), and imagePoints2.size() need to be\n. equal as well as objectPoints[i].size(), imagePoints1[i].size(), and imagePoints2[i].size() need to\n. be equal for each i.\n. @param imagePoints1 Vector of vectors of the projections of the calibration pattern points,\n. observed by the first camera. The same structure as in @ref calibrateCamera.\n. @param imagePoints2 Vector of vectors of the projections of the calibration pattern points,\n. observed by the second camera. The same structure as in @ref calibrateCamera.\n. @param cameraMatrix1 Input/output camera matrix for the first camera, the same as in\n. @ref calibrateCamera. Furthermore, for the stereo case, additional flags may be used, see below.\n. @param distCoeffs1 Input/output vector of distortion coefficients, the same as in\n. @ref calibrateCamera.\n. @param cameraMatrix2 Input/output second camera matrix for the second camera. See description for\n. cameraMatrix1.\n. @param distCoeffs2 Input/output lens distortion coefficients for the second camera. See\n. description for distCoeffs1.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrices.\n. @param R Output rotation matrix. Together with the translation vector T, this matrix brings\n. points given in the first camera's coordinate system to points in the second camera's\n. coordinate system. In more technical terms, the tuple of R and T performs a change of basis\n. from the first camera's coordinate system to the second camera's coordinate system. Due to its\n. duality, this tuple is equivalent to the position of the first camera with respect to the\n. second camera coordinate system.\n. @param T Output translation vector, see description above.\n. @param E Output essential matrix.\n. @param F Output fundamental matrix.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of the following values:\n. - **CALIB_FIX_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E, and F\n. matrices are estimated.\n. - **CALIB_USE_INTRINSIC_GUESS** Optimize some or all of the intrinsic parameters\n. according to the specified flags. Initial values are provided by the user.\n. - **CALIB_USE_EXTRINSIC_GUESS** R and T contain valid initial values that are optimized further.\n. Otherwise R and T are initialized to the median value of the pattern views (each dimension separately).\n. - **CALIB_FIX_PRINCIPAL_POINT** Fix the principal points during the optimization.\n. - **CALIB_FIX_FOCAL_LENGTH** Fix \\f$f^{(j)}_x\\f$ and \\f$f^{(j)}_y\\f$ .\n. - **CALIB_FIX_ASPECT_RATIO** Optimize \\f$f^{(j)}_y\\f$ . Fix the ratio \\f$f^{(j)}_x/f^{(j)}_y\\f$\n. .\n. - **CALIB_SAME_FOCAL_LENGTH** Enforce \\f$f^{(0)}_x=f^{(1)}_x\\f$ and \\f$f^{(0)}_y=f^{(1)}_y\\f$ .\n. - **CALIB_ZERO_TANGENT_DIST** Set tangential distortion coefficients for each camera to\n. zeros and fix there.\n. - **CALIB_FIX_K1,...,CALIB_FIX_K6** Do not change the corresponding radial\n. distortion coefficient during the optimization. If CALIB_USE_INTRINSIC_GUESS is set,\n. the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_RATIONAL_MODEL** Enable coefficients k4, k5, and k6. To provide the backward\n. compatibility, this extra flag should be explicitly specified to make the calibration\n. function use the rational model and return 8 coefficients. If the flag is not set, the\n. function computes and returns only 5 distortion coefficients.\n. - **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the thin prism model and return 12 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the tilted sensor model and return 14 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. The function estimates the transformation between two cameras making a stereo pair. If one computes\n. the poses of an object relative to the first camera and to the second camera,\n. ( \\f$R_1\\f$,\\f$T_1\\f$ ) and (\\f$R_2\\f$,\\f$T_2\\f$), respectively, for a stereo camera where the\n. relative position and orientation between the two cameras are fixed, then those poses definitely\n. relate to each other. This means, if the relative position and orientation (\\f$R\\f$,\\f$T\\f$) of the\n. two cameras is known, it is possible to compute (\\f$R_2\\f$,\\f$T_2\\f$) when (\\f$R_1\\f$,\\f$T_1\\f$) is\n. given. This is what the described function does. It computes (\\f$R\\f$,\\f$T\\f$) such that:\n. \n. \\f[R_2=R R_1\\f]\n. \\f[T_2=R T_1 + T.\\f]\n. \n. Therefore, one can compute the coordinate representation of a 3D point for the second camera's\n. coordinate system when given the point's coordinate representation in the first camera's coordinate\n. system:\n. \n. \\f[\\begin{bmatrix}\n. X_2 \\\\\n. Y_2 \\\\\n. Z_2 \\\\\n. 1\n. \\end{bmatrix} = \\begin{bmatrix}\n. R & T \\\\\n. 0 & 1\n. \\end{bmatrix} \\begin{bmatrix}\n. X_1 \\\\\n. Y_1 \\\\\n. Z_1 \\\\\n. 1\n. \\end{bmatrix}.\\f]\n. \n. \n. Optionally, it computes the essential matrix E:\n. \n. \\f[E= \\vecthreethree{0}{-T_2}{T_1}{T_2}{0}{-T_0}{-T_1}{T_0}{0} R\\f]\n. \n. where \\f$T_i\\f$ are components of the translation vector \\f$T\\f$ : \\f$T=[T_0, T_1, T_2]^T\\f$ .\n. And the function can also compute the fundamental matrix F:\n. \n. \\f[F = cameraMatrix2^{-T}\\cdot E \\cdot cameraMatrix1^{-1}\\f]\n. \n. Besides the stereo-related information, the function can also perform a full calibration of each of\n. the two cameras. However, due to the high dimensionality of the parameter space and noise in the\n. input data, the function can diverge from the correct solution. If the intrinsic parameters can be\n. estimated with high accuracy for each of the cameras individually (for example, using\n. calibrateCamera ), you are recommended to do so and then pass CALIB_FIX_INTRINSIC flag to the\n. function along with the computed intrinsic parameters. Otherwise, if all the parameters are\n. estimated at once, it makes sense to restrict some parameters, for example, pass\n. CALIB_SAME_FOCAL_LENGTH and CALIB_ZERO_TANGENT_DIST flags, which is usually a\n. reasonable assumption.\n. \n. Similarly to calibrateCamera, the function minimizes the total re-projection error for all the\n. points in all the available views from both cameras. The function returns the final value of the\n. re-projection error." + ... + + +def stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, R1=..., R2=..., P1=..., P2=..., Q=..., flags: int = ..., alpha=..., newImageSize=...) -> typing.Any: + 'stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T[, R1[, R2[, P1[, P2[, Q[, flags[, alpha[, newImageSize]]]]]]]]) -> R1, R2, P1, P2, Q, validPixROI1, validPixROI2\n. @brief Computes rectification transforms for each head of a calibrated stereo camera.\n. \n. @param cameraMatrix1 First camera matrix.\n. @param distCoeffs1 First camera distortion parameters.\n. @param cameraMatrix2 Second camera matrix.\n. @param distCoeffs2 Second camera distortion parameters.\n. @param imageSize Size of the image used for stereo calibration.\n. @param R Rotation matrix from the coordinate system of the first camera to the second camera,\n. see @ref stereoCalibrate.\n. @param T Translation vector from the coordinate system of the first camera to the second camera,\n. see @ref stereoCalibrate.\n. @param R1 Output 3x3 rectification transform (rotation matrix) for the first camera. This matrix\n. brings points given in the unrectified first camera\'s coordinate system to points in the rectified\n. first camera\'s coordinate system. In more technical terms, it performs a change of basis from the\n. unrectified first camera\'s coordinate system to the rectified first camera\'s coordinate system.\n. @param R2 Output 3x3 rectification transform (rotation matrix) for the second camera. This matrix\n. brings points given in the unrectified second camera\'s coordinate system to points in the rectified\n. second camera\'s coordinate system. In more technical terms, it performs a change of basis from the\n. unrectified second camera\'s coordinate system to the rectified second camera\'s coordinate system.\n. @param P1 Output 3x4 projection matrix in the new (rectified) coordinate systems for the first\n. camera, i.e. it projects points given in the rectified first camera coordinate system into the\n. rectified first camera\'s image.\n. @param P2 Output 3x4 projection matrix in the new (rectified) coordinate systems for the second\n. camera, i.e. it projects points given in the rectified first camera coordinate system into the\n. rectified second camera\'s image.\n. @param Q Output \\f$4 \\times 4\\f$ disparity-to-depth mapping matrix (see @ref reprojectImageTo3D).\n. @param flags Operation flags that may be zero or CALIB_ZERO_DISPARITY . If the flag is set,\n. the function makes the principal points of each camera have the same pixel coordinates in the\n. rectified views. And if the flag is not set, the function may still shift the images in the\n. horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the\n. useful image area.\n. @param alpha Free scaling parameter. If it is -1 or absent, the function performs the default\n. scaling. Otherwise, the parameter should be between 0 and 1. alpha=0 means that the rectified\n. images are zoomed and shifted so that only valid pixels are visible (no black areas after\n. rectification). alpha=1 means that the rectified image is decimated and shifted so that all the\n. pixels from the original images from the cameras are retained in the rectified images (no source\n. image pixels are lost). Any intermediate value yields an intermediate result between\n. those two extreme cases.\n. @param newImageSize New image resolution after rectification. The same size should be passed to\n. initUndistortRectifyMap (see the stereo_calib.cpp sample in OpenCV samples directory). When (0,0)\n. is passed (default), it is set to the original imageSize . Setting it to a larger value can help you\n. preserve details in the original image, especially when there is a big radial distortion.\n. @param validPixROI1 Optional output rectangles inside the rectified images where all the pixels\n. are valid. If alpha=0 , the ROIs cover the whole images. Otherwise, they are likely to be smaller\n. (see the picture below).\n. @param validPixROI2 Optional output rectangles inside the rectified images where all the pixels\n. are valid. If alpha=0 , the ROIs cover the whole images. Otherwise, they are likely to be smaller\n. (see the picture below).\n. \n. The function computes the rotation matrices for each camera that (virtually) make both camera image\n. planes the same plane. Consequently, this makes all the epipolar lines parallel and thus simplifies\n. the dense stereo correspondence problem. The function takes the matrices computed by stereoCalibrate\n. as input. As output, it provides two rotation matrices and also two projection matrices in the new\n. coordinates. The function distinguishes the following two cases:\n. \n. - **Horizontal stereo**: the first and the second camera views are shifted relative to each other\n. mainly along the x-axis (with possible small vertical shift). In the rectified images, the\n. corresponding epipolar lines in the left and right cameras are horizontal and have the same\n. y-coordinate. P1 and P2 look like:\n. \n. \\f[\\texttt{P1} = \\begin{bmatrix}\n. f & 0 & cx_1 & 0 \\\\\n. 0 & f & cy & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\\f]\n. \n. \\f[\\texttt{P2} = \\begin{bmatrix}\n. f & 0 & cx_2 & T_x*f \\\\\n. 0 & f & cy & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix} ,\\f]\n. \n. where \\f$T_x\\f$ is a horizontal shift between the cameras and \\f$cx_1=cx_2\\f$ if\n. CALIB_ZERO_DISPARITY is set.\n. \n. - **Vertical stereo**: the first and the second camera views are shifted relative to each other\n. mainly in the vertical direction (and probably a bit in the horizontal direction too). The epipolar\n. lines in the rectified images are vertical and have the same x-coordinate. P1 and P2 look like:\n. \n. \\f[\\texttt{P1} = \\begin{bmatrix}\n. f & 0 & cx & 0 \\\\\n. 0 & f & cy_1 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\\f]\n. \n. \\f[\\texttt{P2} = \\begin{bmatrix}\n. f & 0 & cx & 0 \\\\\n. 0 & f & cy_2 & T_y*f \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix},\\f]\n. \n. where \\f$T_y\\f$ is a vertical shift between the cameras and \\f$cy_1=cy_2\\f$ if\n. CALIB_ZERO_DISPARITY is set.\n. \n. As you can see, the first three columns of P1 and P2 will effectively be the new "rectified" camera\n. matrices. The matrices, together with R1 and R2 , can then be passed to initUndistortRectifyMap to\n. initialize the rectification map for each camera.\n. \n. See below the screenshot from the stereo_calib.cpp sample. Some red horizontal lines pass through\n. the corresponding image regions. This means that the images are well rectified, which is what most\n. stereo correspondence algorithms rely on. The green rectangles are roi1 and roi2 . You see that\n. their interiors are all valid pixels.\n. \n. ![image](pics/stereo_undistort.jpg)' + ... + + +def stereoRectifyUncalibrated(points1, points2, F, imgSize, H1=..., H2=..., threshold=...) -> typing.Any: + 'stereoRectifyUncalibrated(points1, points2, F, imgSize[, H1[, H2[, threshold]]]) -> retval, H1, H2\n. @brief Computes a rectification transform for an uncalibrated stereo camera.\n. \n. @param points1 Array of feature points in the first image.\n. @param points2 The corresponding points in the second image. The same formats as in\n. findFundamentalMat are supported.\n. @param F Input fundamental matrix. It can be computed from the same set of point pairs using\n. findFundamentalMat .\n. @param imgSize Size of the image.\n. @param H1 Output rectification homography matrix for the first image.\n. @param H2 Output rectification homography matrix for the second image.\n. @param threshold Optional threshold used to filter out the outliers. If the parameter is greater\n. than zero, all the point pairs that do not comply with the epipolar geometry (that is, the points\n. for which \\f$|\\texttt{points2[i]}^T*\\texttt{F}*\\texttt{points1[i]}|>\\texttt{threshold}\\f$ ) are\n. rejected prior to computing the homographies. Otherwise, all the points are considered inliers.\n. \n. The function computes the rectification transformations without knowing intrinsic parameters of the\n. cameras and their relative position in the space, which explains the suffix "uncalibrated". Another\n. related difference from stereoRectify is that the function outputs not the rectification\n. transformations in the object (3D) space, but the planar perspective transformations encoded by the\n. homography matrices H1 and H2 . The function implements the algorithm @cite Hartley99 .\n. \n. @note\n. While the algorithm does not need to know the intrinsic parameters of the cameras, it heavily\n. depends on the epipolar geometry. Therefore, if the camera lenses have a significant distortion,\n. it would be better to correct it before computing the fundamental matrix and calling this\n. function. For example, distortion coefficients can be estimated for each head of stereo camera\n. separately by using calibrateCamera . Then, the images can be corrected using undistort , or\n. just the point coordinates can be corrected with undistortPoints .' + ... + + +def stylization(src: ndarray, dts: ndarray = ..., sigma_s=..., sigma_r=...) -> typing.Any: + 'stylization(src[, dst[, sigma_s[, sigma_r]]]) -> dst\n. @brief Stylization aims to produce digital imagery with a wide variety of effects not focused on\n. photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low\n. contrast while preserving, or enhancing, high-contrast features.\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' + ... + + +def subtract(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ..., dtype=...) -> typing.Any: + 'subtract(src1, src2[, dst[, mask[, dtype]]]) -> dst\n. @brief Calculates the per-element difference between two arrays or array and a scalar.\n. \n. The function subtract calculates:\n. - Difference between two arrays, when both input arrays have the same size and the same number of\n. channels:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) - \\texttt{src2}(I)) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Difference between an array and a scalar, when src2 is constructed from Scalar or has the same\n. number of elements as `src1.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) - \\texttt{src2} ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Difference between a scalar and an array, when src1 is constructed from Scalar or has the same\n. number of elements as `src2.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1} - \\texttt{src2}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - The reverse difference between a scalar and an array in the case of `SubRS`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src2} - \\texttt{src1}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. \n. The first function in the list above can be replaced with matrix expressions:\n. @code{.cpp}\n. dst = src1 - src2;\n. dst -= src1; // equivalent to subtract(dst, src1, dst);\n. @endcode\n. The input arrays and the output array can all have the same or different depths. For example, you\n. can subtract to 8-bit unsigned arrays and store the difference in a 16-bit signed array. Depth of\n. the output array is determined by dtype parameter. In the second and third cases above, as well as\n. in the first case, when src1.depth() == src2.depth(), dtype can be set to the default -1. In this\n. case the output array will have the same depth as the input array, be it src1, src2 or both.\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array of the same size and the same number of channels as the input array.\n. @param mask optional operation mask; this is an 8-bit single channel array that specifies elements\n. of the output array to be changed.\n. @param dtype optional depth of the output array\n. @sa add, addWeighted, scaleAdd, Mat::convertTo' + ... + + +def sumElems(src) -> typing.Any: + 'sumElems(src) -> retval\n. @brief Calculates the sum of array elements.\n. \n. The function cv::sum calculates and returns the sum of array elements,\n. independently for each channel.\n. @param src input array that must have from 1 to 4 channels.\n. @sa countNonZero, mean, meanStdDev, norm, minMaxLoc, reduce' + ... + + +def textureFlattening(src: ndarray, mask: ndarray, dts: ndarray = ..., low_threshold=..., high_threshold=..., kernel_size=...) -> typing.Any: + "textureFlattening(src, mask[, dst[, low_threshold[, high_threshold[, kernel_size]]]]) -> dst\n. @brief By retaining only the gradients at edge locations, before integrating with the Poisson solver, one\n. washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param low_threshold %Range from 0 to 100.\n. @param high_threshold Value \\> 100.\n. @param kernel_size The size of the Sobel kernel to be used.\n. \n. @note\n. The algorithm assumes that the color of the source image is close to that of the destination. This\n. assumption means that when the colors don't match, the source image color gets tinted toward the\n. color of the destination image." + ... + + +def threshold(src: ndarray, thresh, maxval, type, dts: ndarray = ...) -> typing.Any: + "threshold(src, thresh, maxval, type[, dst]) -> retval, dst\n. @brief Applies a fixed-level threshold to each array element.\n. \n. The function applies fixed-level thresholding to a multiple-channel array. The function is typically\n. used to get a bi-level (binary) image out of a grayscale image ( #compare could be also used for\n. this purpose) or for removing a noise, that is, filtering out pixels with too small or too large\n. values. There are several types of thresholding supported by the function. They are determined by\n. type parameter.\n. \n. Also, the special values #THRESH_OTSU or #THRESH_TRIANGLE may be combined with one of the\n. above values. In these cases, the function determines the optimal threshold value using the Otsu's\n. or Triangle algorithm and uses it instead of the specified thresh.\n. \n. @note Currently, the Otsu's and Triangle methods are implemented only for 8-bit single-channel images.\n. \n. @param src input array (multiple-channel, 8-bit or 32-bit floating point).\n. @param dst output array of the same size and type and the same number of channels as src.\n. @param thresh threshold value.\n. @param maxval maximum value to use with the #THRESH_BINARY and #THRESH_BINARY_INV thresholding\n. types.\n. @param type thresholding type (see #ThresholdTypes).\n. @return the computed threshold value if Otsu's or Triangle methods used.\n. \n. @sa adaptiveThreshold, findContours, compare, min, max" + ... + + +def trace(mtx) -> typing.Any: + 'trace(mtx) -> retval\n. @brief Returns the trace of a matrix.\n. \n. The function cv::trace returns the sum of the diagonal elements of the\n. matrix mtx .\n. \\f[\\mathrm{tr} ( \\texttt{mtx} ) = \\sum _i \\texttt{mtx} (i,i)\\f]\n. @param mtx input matrix.' + ... + + +def transform(src: ndarray, m, dts: ndarray = ...) -> typing.Any: + 'transform(src, m[, dst]) -> dst\n. @brief Performs the matrix transformation of every array element.\n. \n. The function cv::transform performs the matrix transformation of every\n. element of the array src and stores the results in dst :\n. \\f[\\texttt{dst} (I) = \\texttt{m} \\cdot \\texttt{src} (I)\\f]\n. (when m.cols=src.channels() ), or\n. \\f[\\texttt{dst} (I) = \\texttt{m} \\cdot [ \\texttt{src} (I); 1]\\f]\n. (when m.cols=src.channels()+1 )\n. \n. Every element of the N -channel array src is interpreted as N -element\n. vector that is transformed using the M x N or M x (N+1) matrix m to\n. M-element vector - the corresponding element of the output array dst .\n. \n. The function may be used for geometrical transformation of\n. N -dimensional points, arbitrary linear color space transformation (such\n. as various kinds of RGB to YUV transforms), shuffling the image\n. channels, and so forth.\n. @param src input array that must have as many channels (1 to 4) as\n. m.cols or m.cols-1.\n. @param dst output array of the same size and depth as src; it has as\n. many channels as m.rows.\n. @param m transformation 2x2 or 2x3 floating-point matrix.\n. @sa perspectiveTransform, getAffineTransform, estimateAffine2D, warpAffine, warpPerspective' + ... + + +def transpose(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'transpose(src[, dst]) -> dst\n. @brief Transposes a matrix.\n. \n. The function cv::transpose transposes the matrix src :\n. \\f[\\texttt{dst} (i,j) = \\texttt{src} (j,i)\\f]\n. @note No complex conjugation is done in case of a complex matrix. It\n. should be done separately if needed.\n. @param src input array.\n. @param dst output array of the same type as src.' + ... + + +def triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D=...) -> typing.Any: + "triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2[, points4D]) -> points4D\n. @brief This function reconstructs 3-dimensional points (in homogeneous coordinates) by using\n. their observations with a stereo camera.\n. \n. @param projMatr1 3x4 projection matrix of the first camera, i.e. this matrix projects 3D points\n. given in the world's coordinate system into the first image.\n. @param projMatr2 3x4 projection matrix of the second camera, i.e. this matrix projects 3D points\n. given in the world's coordinate system into the second image.\n. @param projPoints1 2xN array of feature points in the first image. In the case of the c++ version,\n. it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.\n. @param projPoints2 2xN array of corresponding points in the second image. In the case of the c++\n. version, it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.\n. @param points4D 4xN array of reconstructed points in homogeneous coordinates. These points are\n. returned in the world's coordinate system.\n. \n. @note\n. Keep in mind that all input data should be of float type in order for this function to work.\n. \n. @note\n. If the projection matrices from @ref stereoRectify are used, then the returned points are\n. represented in the first camera's rectified coordinate system.\n. \n. @sa\n. reprojectImageTo3D" + ... + + +def undistort(src: ndarray, cameraMatrix, distCoeffs, dts: ndarray = ..., newCameraMatrix=...) -> typing.Any: + 'undistort(src, cameraMatrix, distCoeffs[, dst[, newCameraMatrix]]) -> dst\n. @brief Transforms an image to compensate for lens distortion.\n. \n. The function transforms an image to compensate radial and tangential lens distortion.\n. \n. The function is simply a combination of #initUndistortRectifyMap (with unity R ) and #remap\n. (with bilinear interpolation). See the former function for details of the transformation being\n. performed.\n. \n. Those pixels in the destination image, for which there is no correspondent pixels in the source\n. image, are filled with zeros (black color).\n. \n. A particular subset of the source image that will be visible in the corrected image can be regulated\n. by newCameraMatrix. You can use #getOptimalNewCameraMatrix to compute the appropriate\n. newCameraMatrix depending on your requirements.\n. \n. The camera matrix and the distortion parameters can be determined using #calibrateCamera. If\n. the resolution of images is different from the resolution used at the calibration stage, \\f$f_x,\n. f_y, c_x\\f$ and \\f$c_y\\f$ need to be scaled accordingly, while the distortion coefficients remain\n. the same.\n. \n. @param src Input (distorted) image.\n. @param dst Output (corrected) image that has the same size and type as src .\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param newCameraMatrix Camera matrix of the distorted image. By default, it is the same as\n. cameraMatrix but you may additionally scale and shift the result by using a different matrix.' + ... + + +def undistortPoints(src: ndarray, cameraMatrix, distCoeffs, dts: ndarray = ..., R=..., P=...) -> typing.Any: + 'undistortPoints(src, cameraMatrix, distCoeffs[, dst[, R[, P]]]) -> dst\n. @brief Computes the ideal point coordinates from the observed point coordinates.\n. \n. The function is similar to #undistort and #initUndistortRectifyMap but it operates on a\n. sparse set of points instead of a raster image. Also the function performs a reverse transformation\n. to projectPoints. In case of a 3D object, it does not reconstruct its 3D coordinates, but for a\n. planar object, it does, up to a translation vector, if the proper R is specified.\n. \n. For each observed point coordinate \\f$(u, v)\\f$ the function computes:\n. \\f[\n. \\begin{array}{l}\n. x^{"} \\leftarrow (u - c_x)/f_x \\\\\n. y^{"} \\leftarrow (v - c_y)/f_y \\\\\n. (x\',y\') = undistort(x^{"},y^{"}, \\texttt{distCoeffs}) \\\\\n. {[X\\,Y\\,W]} ^T \\leftarrow R*[x\' \\, y\' \\, 1]^T \\\\\n. x \\leftarrow X/W \\\\\n. y \\leftarrow Y/W \\\\\n. \\text{only performed if P is specified:} \\\\\n. u\' \\leftarrow x {f\'}_x + {c\'}_x \\\\\n. v\' \\leftarrow y {f\'}_y + {c\'}_y\n. \\end{array}\n. \\f]\n. \n. where *undistort* is an approximate iterative algorithm that estimates the normalized original\n. point coordinates out of the normalized distorted point coordinates ("normalized" means that the\n. coordinates do not depend on the camera matrix).\n. \n. The function can be used for both a stereo camera head or a monocular camera (when R is empty).\n. @param src Observed point coordinates, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel (CV_32FC2 or CV_64FC2) (or\n. vector\\ ).\n. @param dst Output ideal point coordinates (1xN/Nx1 2-channel or vector\\ ) after undistortion and reverse perspective\n. transformation. If matrix P is identity or omitted, dst will contain normalized point coordinates.\n. @param cameraMatrix Camera matrix \\f$\\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param R Rectification transformation in the object space (3x3 matrix). R1 or R2 computed by\n. #stereoRectify can be passed here. If the matrix is empty, the identity transformation is used.\n. @param P New camera matrix (3x3) or new projection matrix (3x4) \\f$\\begin{bmatrix} {f\'}_x & 0 & {c\'}_x & t_x \\\\ 0 & {f\'}_y & {c\'}_y & t_y \\\\ 0 & 0 & 1 & t_z \\end{bmatrix}\\f$. P1 or P2 computed by\n. #stereoRectify can be passed here. If the matrix is empty, the identity new camera matrix is used.' + ... + + +def undistortPointsIter(src: ndarray, cameraMatrix, distCoeffs, R, P, criteria, dts: ndarray = ...) -> typing.Any: + 'undistortPointsIter(src, cameraMatrix, distCoeffs, R, P, criteria[, dst]) -> dst\n. @overload\n. @note Default version of #undistortPoints does 5 iterations to compute undistorted points.' + ... + + +def useOpenVX() -> typing.Any: + 'useOpenVX() -> retval\n.' + ... + + +def useOptimized() -> typing.Any: + 'useOptimized() -> retval\n. @brief Returns the status of optimized code usage.\n. \n. The function returns true if the optimized code is enabled. Otherwise, it returns false.' + ... + + +def validateDisparity(disparity, cost, minDisparity, numberOfDisparities, disp12MaxDisp=...) -> typing.Any: + 'validateDisparity(disparity, cost, minDisparity, numberOfDisparities[, disp12MaxDisp]) -> disparity\n.' + ... + + +def vconcat(src: ndarray, dts: ndarray = ...) -> typing.Any: + 'vconcat(src[, dst]) -> dst\n. @overload\n. @code{.cpp}\n. std::vector matrices = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)),\n. cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)),\n. cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),};\n. \n. cv::Mat out;\n. cv::vconcat( matrices, out );\n. //out:\n. //[1, 1, 1, 1;\n. // 2, 2, 2, 2;\n. // 3, 3, 3, 3]\n. @endcode\n. @param src input array or vector of matrices. all of the matrices must have the same number of cols and the same depth\n. @param dst output array. It has the same number of cols and depth as the src, and the sum of rows of the src.\n. same depth.' + ... + + +def waitKey(delay=...) -> typing.Any: + 'waitKey([, delay]) -> retval\n. @brief Waits for a pressed key.\n. \n. The function waitKey waits for a key event infinitely (when \\f$\\texttt{delay}\\leq 0\\f$ ) or for delay\n. milliseconds, when it is positive. Since the OS has a minimum time between switching threads, the\n. function will not wait exactly delay ms, it will wait at least delay ms, depending on what else is\n. running on your computer at that time. It returns the code of the pressed key or -1 if no key was\n. pressed before the specified time had elapsed.\n. \n. @note\n. \n. This function is the only method in HighGUI that can fetch and handle events, so it needs to be\n. called periodically for normal event processing unless HighGUI is used within an environment that\n. takes care of event processing.\n. \n. @note\n. \n. The function only works if there is at least one HighGUI window created and the window is active.\n. If there are several HighGUI windows, any of them can be active.\n. \n. @param delay Delay in milliseconds. 0 is the special value that means "forever".' + ... + + +def waitKeyEx(delay=...) -> typing.Any: + 'waitKeyEx([, delay]) -> retval\n. @brief Similar to #waitKey, but returns full key code.\n. \n. @note\n. \n. Key code is implementation specific and depends on used backend: QT/GTK/Win32/etc' + ... + + +def warpAffine(src: ndarray, M, dsize: typing.Tuple[int, int], dts: ndarray = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: + 'warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst\n. @brief Applies an affine transformation to an image.\n. \n. The function warpAffine transforms the source image using the specified matrix:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} ( \\texttt{M} _{11} x + \\texttt{M} _{12} y + \\texttt{M} _{13}, \\texttt{M} _{21} x + \\texttt{M} _{22} y + \\texttt{M} _{23})\\f]\n. \n. when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted\n. with #invertAffineTransform and then put in the formula above instead of M. The function cannot\n. operate in-place.\n. \n. @param src input image.\n. @param dst output image that has the size dsize and the same type as src .\n. @param M \\f$2\\times 3\\f$ transformation matrix.\n. @param dsize size of the output image.\n. @param flags combination of interpolation methods (see #InterpolationFlags) and the optional\n. flag #WARP_INVERSE_MAP that means that M is the inverse transformation (\n. \\f$\\texttt{dst}\\rightarrow\\texttt{src}\\f$ ).\n. @param borderMode pixel extrapolation method (see #BorderTypes); when\n. borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image corresponding to\n. the "outliers" in the source image are not modified by the function.\n. @param borderValue value used in case of a constant border; by default, it is 0.\n. \n. @sa warpPerspective, resize, remap, getRectSubPix, transform' + ... + + +def warpPerspective(src: ndarray, M, dsize: typing.Tuple[int, int], dts: ndarray = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: + 'warpPerspective(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst\n. @brief Applies a perspective transformation to an image.\n. \n. The function warpPerspective transforms the source image using the specified matrix:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} \\left ( \\frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} ,\n. \\frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \\right )\\f]\n. \n. when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted with invert\n. and then put in the formula above instead of M. The function cannot operate in-place.\n. \n. @param src input image.\n. @param dst output image that has the size dsize and the same type as src .\n. @param M \\f$3\\times 3\\f$ transformation matrix.\n. @param dsize size of the output image.\n. @param flags combination of interpolation methods (#INTER_LINEAR or #INTER_NEAREST) and the\n. optional flag #WARP_INVERSE_MAP, that sets M as the inverse transformation (\n. \\f$\\texttt{dst}\\rightarrow\\texttt{src}\\f$ ).\n. @param borderMode pixel extrapolation method (#BORDER_CONSTANT or #BORDER_REPLICATE).\n. @param borderValue value used in case of a constant border; by default, it equals 0.\n. \n. @sa warpAffine, resize, remap, getRectSubPix, perspectiveTransform' + ... + + +def warpPolar(src: ndarray, dsize: typing.Tuple[int, int], center, maxRadius, flags: int, dts: ndarray = ...) -> typing.Any: + 'warpPolar(src, dsize: typing.Tuple[int, int], center, maxRadius, flags[, dst]) -> dst\n. \\brief Remaps an image to polar or semilog-polar coordinates space\n. \n. @anchor polar_remaps_reference_image\n. ![Polar remaps reference](pics/polar_remap_doc.png)\n. \n. Transform the source image using the following transformation:\n. \\f[\n. dst(\\rho , \\phi ) = src(x,y)\n. \\f]\n. \n. where\n. \\f[\n. \\begin{array}{l}\n. \\vec{I} = (x - center.x, \\;y - center.y) \\\\\n. \\phi = Kangle \\cdot \\texttt{angle} (\\vec{I}) \\\\\n. \\rho = \\left\\{\\begin{matrix}\n. Klin \\cdot \\texttt{magnitude} (\\vec{I}) & default \\\\\n. Klog \\cdot log_e(\\texttt{magnitude} (\\vec{I})) & if \\; semilog \\\\\n. \\end{matrix}\\right.\n. \\end{array}\n. \\f]\n. \n. and\n. \\f[\n. \\begin{array}{l}\n. Kangle = dsize.height / 2\\Pi \\\\\n. Klin = dsize.width / maxRadius \\\\\n. Klog = dsize.width / log_e(maxRadius) \\\\\n. \\end{array}\n. \\f]\n. \n. \n. \\par Linear vs semilog mapping\n. \n. Polar mapping can be linear or semi-log. Add one of #WarpPolarMode to `flags` to specify the polar mapping mode.\n. \n. Linear is the default mode.\n. \n. The semilog mapping emulates the human "foveal" vision that permit very high acuity on the line of sight (central vision)\n. in contrast to peripheral vision where acuity is minor.\n. \n. \\par Option on `dsize`:\n. \n. - if both values in `dsize <=0 ` (default),\n. the destination image will have (almost) same area of source bounding circle:\n. \\f[\\begin{array}{l}\n. dsize.area \\leftarrow (maxRadius^2 \\cdot \\Pi) \\\\\n. dsize.width = \\texttt{cvRound}(maxRadius) \\\\\n. dsize.height = \\texttt{cvRound}(maxRadius \\cdot \\Pi) \\\\\n. \\end{array}\\f]\n. \n. \n. - if only `dsize.height <= 0`,\n. the destination image area will be proportional to the bounding circle area but scaled by `Kx * Kx`:\n. \\f[\\begin{array}{l}\n. dsize.height = \\texttt{cvRound}(dsize.width \\cdot \\Pi) \\\\\n. \\end{array}\n. \\f]\n. \n. - if both values in `dsize > 0 `,\n. the destination image will have the given size therefore the area of the bounding circle will be scaled to `dsize`.\n. \n. \n. \\par Reverse mapping\n. \n. You can get reverse mapping adding #WARP_INVERSE_MAP to `flags`\n. \\snippet polar_transforms.cpp InverseMap\n. \n. In addiction, to calculate the original coordinate from a polar mapped coordinate \\f$(rho, phi)->(x, y)\\f$:\n. \\snippet polar_transforms.cpp InverseCoordinate\n. \n. @param src Source image.\n. @param dst Destination image. It will have same type as src.\n. @param dsize The destination image size (see description for valid options).\n. @param center The transformation center.\n. @param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.\n. @param flags A combination of interpolation methods, #InterpolationFlags + #WarpPolarMode.\n. - Add #WARP_POLAR_LINEAR to select linear polar mapping (default)\n. - Add #WARP_POLAR_LOG to select semilog polar mapping\n. - Add #WARP_INVERSE_MAP for reverse mapping.\n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. - This function uses #remap. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.\n. \n. @sa cv::remap' + ... + + +def watershed(image: ndarray, markers) -> typing.Any: + 'watershed(image, markers) -> markers\n. @brief Performs a marker-based image segmentation using the watershed algorithm.\n. \n. The function implements one of the variants of watershed, non-parametric marker-based segmentation\n. algorithm, described in @cite Meyer92 .\n. \n. Before passing the image to the function, you have to roughly outline the desired regions in the\n. image markers with positive (\\>0) indices. So, every region is represented as one or more connected\n. components with the pixel values 1, 2, 3, and so on. Such markers can be retrieved from a binary\n. mask using #findContours and #drawContours (see the watershed.cpp demo). The markers are "seeds" of\n. the future image regions. All the other pixels in markers , whose relation to the outlined regions\n. is not known and should be defined by the algorithm, should be set to 0\'s. In the function output,\n. each pixel in markers is set to a value of the "seed" components or to -1 at boundaries between the\n. regions.\n. \n. @note Any two neighbor connected components are not necessarily separated by a watershed boundary\n. (-1\'s pixels); for example, they can touch each other in the initial marker image passed to the\n. function.\n. \n. @param image Input 8-bit 3-channel image.\n. @param markers Input/output 32-bit single-channel image (map) of markers. It should have the same\n. size as image .\n. \n. @sa findContours\n. \n. @ingroup imgproc_misc' + ... + + +def writeOpticalFlow(path, flow) -> typing.Any: + 'writeOpticalFlow(path, flow) -> retval\n. @brief Write a .flo to disk\n. \n. @param path Path to the file to be written\n. @param flow Flow field to be stored\n. \n. The function stores a flow field in a file, returns true on success, false otherwise.\n. The flow field must be a 2-channel, floating-point matrix (CV_32FC2). First channel corresponds\n. to the flow in the horizontal direction (u), second - vertical (v).' + ... + + +def __getattr__(name) -> typing.Any: + ... diff --git a/typings/imagehash/__init__.pyi b/typings/imagehash/__init__.pyi new file mode 100644 index 00000000..1ead4a32 --- /dev/null +++ b/typings/imagehash/__init__.pyi @@ -0,0 +1,275 @@ +""" +This type stub file was generated by pyright. +""" +from __future__ import absolute_import, division, print_function, annotations +import numpy +from PIL import Image, ImageFilter + +""" +Image hashing library +====================== + +Example: + +>>> from PIL import Image +>>> import imagehash +>>> hash = imagehash.average_hash(Image.open('test.png')) +>>> print(hash) +d879f8f89b1bbf +>>> otherhash = imagehash.average_hash(Image.open('other.bmp')) +>>> print(otherhash) +ffff3720200ffff +>>> print(hash == otherhash) +False +>>> print(hash - otherhash) +36 +>>> for r in range(1, 30, 5): +... rothash = imagehash.average_hash(Image.open('test.png').rotate(r)) +... print('Rotation by %d: %d Hamming difference' % (r, hash - rothash)) +... +Rotation by 1: 2 Hamming difference +Rotation by 6: 11 Hamming difference +Rotation by 11: 13 Hamming difference +Rotation by 16: 17 Hamming difference +Rotation by 21: 19 Hamming difference +Rotation by 26: 21 Hamming difference +>>> +""" +__version__ = ... + + +class ImageHash: + """ + Hash encapsulation. Can be used for dictionary keys and comparisons. + """ + + def __init__(self, binary_array) -> None: + ... + + def __str__(self) -> str: + ... + + def __repr__(self) -> str: + ... + + def __sub__(self, other: ImageHash) -> int: + ... + + def __eq__(self, other: ImageHash) -> bool: + ... + + def __ne__(self, other: ImageHash) -> bool: + ... + + def __hash__(self) -> int: + ... + + def __len__(self) -> int: + ... + + +def hex_to_hash(hexstr) -> ImageHash: + """ + Convert a stored hash (hex, as retrieved from str(Imagehash)) + back to a Imagehash object. + + Notes: + 1. This algorithm assumes all hashes are either + bidimensional arrays with dimensions hash_size * hash_size, + or onedimensional arrays with dimensions binbits * 14. + 2. This algorithm does not work for hash_size < 2. + """ + ... + + +def hex_to_flathash(hexstr, hashsize) -> ImageHash: + ... + + +def old_hex_to_hash(hexstr, hash_size=...) -> ImageHash: + """ + Convert a stored hash (hex, as retrieved from str(Imagehash)) + back to a Imagehash object. This method should be used for + hashes generated by ImageHash up to version 3.7. For hashes + generated by newer versions of ImageHash, hex_to_hash should + be used instead. + """ + ... + + +def average_hash(image, hash_size=..., mean=...) -> ImageHash: + """ + Average Hash computation + + Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html + + Step by step explanation: https://web.archive.org/web/20171112054354/https://www.safaribooksonline.com/blog/2013/11/26/image-hashing-with-python/ + + @image must be a PIL instance. + @mean how to determine the average luminescence. can try numpy.median instead. + """ + ... + + +def phash(image: Image.Image, hash_size: int = ..., highfreq_factor: int = ...) -> ImageHash: + """ + Perceptual Hash computation. + + Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html + + @image must be a PIL instance. + """ + ... + + +def phash_simple(image, hash_size=..., highfreq_factor=...) -> ImageHash: + """ + Perceptual Hash computation. + + Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html + + @image must be a PIL instance. + """ + ... + + +def dhash(image, hash_size=...) -> ImageHash: + """ + Difference Hash computation. + + following http://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html + + computes differences horizontally + + @image must be a PIL instance. + """ + ... + + +def dhash_vertical(image, hash_size=...) -> ImageHash: + """ + Difference Hash computation. + + following http://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html + + computes differences vertically + + @image must be a PIL instance. + """ + ... + + +def whash(image, hash_size=..., image_scale=..., mode=..., remove_max_haar_ll=...) -> ImageHash: + """ + Wavelet Hash computation. + + based on https://www.kaggle.com/c/avito-duplicate-ads-detection/ + + @image must be a PIL instance. + @hash_size must be a power of 2 and less than @image_scale. + @image_scale must be power of 2 and less than image size. By default is equal to max + power of 2 for an input image. + @mode (see modes in pywt library): + 'haar' - Haar wavelets, by default + 'db4' - Daubechies wavelets + @remove_max_haar_ll - remove the lowest low level (LL) frequency using Haar wavelet. + """ + ... + + +def colorhash(image, binbits=...) -> ImageHash: + """ + Color Hash computation. + + Computes fractions of image in intensity, hue and saturation bins: + + * the first binbits encode the black fraction of the image + * the next binbits encode the gray fraction of the remaining image (low saturation) + * the next 6*binbits encode the fraction in 6 bins of saturation, for highly saturated parts of the remaining image + * the next 6*binbits encode the fraction in 6 bins of saturation, for mildly saturated parts of the remaining image + + @binbits number of bits to use to encode each pixel fractions + """ + ... + + +class ImageMultiHash: + """ + This is an image hash containing a list of individual hashes for segments of the image. + The matching logic is implemented as described in Efficient Cropping-Resistant Robust Image Hashing + """ + + def __init__(self, hashes) -> None: + ... + + def __eq__(self, other) -> bool: + ... + + def __ne__(self, other) -> bool: + ... + + def __sub__(self, other, hamming_cutoff=..., bit_error_rate=...) -> int | float: + ... + + def __hash__(self) -> int: + ... + + def __str__(self) -> str: + ... + + def __repr__(self) -> str: + ... + + def hash_diff(self, other_hash, hamming_cutoff=..., bit_error_rate=...) -> tuple[int, Unknown | int]: + """ + Gets the difference between two multi-hashes, as a tuple. The first element of the tuple is the number of + matching segments, and the second element is the sum of the hamming distances of matching hashes. + NOTE: Do not order directly by this tuple, as higher is better for matches, and worse for hamming cutoff. + :param other_hash: The image multi hash to compare against + :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash + :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. The + default of 0.25 means that the segment hashes can be up to 25% different + """ + ... + + def matches(self, other_hash, region_cutoff=..., hamming_cutoff=..., bit_error_rate=...): + """ + Checks whether this hash matches another crop resistant hash, `other_hash`. + :param other_hash: The image multi hash to compare against + :param region_cutoff: The minimum number of regions which must have a matching hash + :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash + :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. The + default of 0.25 means that the segment hashes can be up to 25% different + """ + ... + + def best_match(self, other_hashes, hamming_cutoff=..., bit_error_rate=...): + """ + Returns the hash in a list which is the best match to the current hash + :param other_hashes: A list of image multi hashes to compare against + :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash + :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. + Defaults to 0.25 if unset, which means the hash can be 25% different + """ + ... + + +def crop_resistant_hash(image, hash_func=..., limit_segments=..., segment_threshold=..., min_segment_size=..., segmentation_image_size=...) -> ImageMultiHash: + """ + Creates a CropResistantHash object, by the algorithm described in the paper "Efficient Cropping-Resistant Robust + Image Hashing". DOI 10.1109/ARES.2014.85 + This algorithm partitions the image into bright and dark segments, using a watershed-like algorithm, and then does + an image hash on each segment. This makes the image much more resistant to cropping than other algorithms, with + the paper claiming resistance to up to 50% cropping, while most other algorithms stop at about 5% cropping. + + Note: Slightly different segmentations are produced when using pillow version 6 vs. >=7, due to a change in + rounding in the greyscale conversion. This leads to a slightly different result. + :param image: The image to hash + :param hash_func: The hashing function to use + :param limit_segments: If you have storage requirements, you can limit to hashing only the M largest segments + :param segment_threshold: Brightness threshold between hills and valleys. This should be static, putting it between + peak and trough dynamically breaks the matching + :param min_segment_size: Minimum number of pixels for a hashable segment + :param segmentation_image_size: Size which the image is resized to before segmentation + """ + ... diff --git a/typings/keyboard/__init__.pyi b/typings/keyboard/__init__.pyi new file mode 100644 index 00000000..18f68af6 --- /dev/null +++ b/typings/keyboard/__init__.pyi @@ -0,0 +1,701 @@ +""" +This type stub file was generated by pyright. +""" +from __future__ import print_function as _print_function +import typing + +import re as _re +import itertools as _itertools +import collections as _collections +import time as _time +import platform as _platform +from threading import Lock as _Lock, Thread as _Thread +from ._keyboard_event import KEY_DOWN, KEY_UP, KeyboardEvent +from ._generic import GenericListener as _GenericListener +from ._canonical_names import all_modifiers, normalize_name, sided_modifiers + +try: + # Python2 + # threading.Event is a function in Python2 wrappin _Event (?!). + from threading import _Event as _UninterruptibleEvent # type: ignore +except NameError: + # Python3 + import queue as _queue + from threading import Event as _UninterruptibleEvent + + +""" +keyboard +======== + +Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more. + +## Features + +- **Global event hook** on all keyboards (captures keys regardless of focus). +- **Listen** and **send** keyboard events. +- Works with **Windows** and **Linux** (requires sudo), with experimental **OS X** support (thanks @glitchassassin!). +- **Pure Python**, no C modules to be compiled. +- **Zero dependencies**. Trivial to install and deploy, just copy the files. +- **Python 2 and 3**. +- Complex hotkey support (e.g. `ctrl+shift+m, ctrl+space`) with controllable timeout. +- Includes **high level API** (e.g. [record](#keyboard.record) and [play](#keyboard.play), [add_abbreviation](#keyboard.add_abbreviation)). +- Maps keys as they actually are in your layout, with **full internationalization support** (e.g. `Ctrl+ç`). +- Events automatically captured in separate thread, doesn't block main program. +- Tested and documented. +- Doesn't break accented dead keys (I'm looking at you, pyHook). +- Mouse support available via project [mouse](https://github.com/boppreh/mouse) (`pip install mouse`). + +## Usage + +Install the [PyPI package](https://pypi.python.org/pypi/keyboard/): + + pip install keyboard + +or clone the repository (no installation required, source files are sufficient): + + git clone https://github.com/boppreh/keyboard + +or [download and extract the zip](https://github.com/boppreh/keyboard/archive/master.zip) into your project folder. + +Then check the [API docs below](https://github.com/boppreh/keyboard#api) to see what features are available. + + +## Example + + +```py +import keyboard + +keyboard.press_and_release('shift+s, space') + +keyboard.write('The quick brown fox jumps over the lazy dog.') + +keyboard.add_hotkey('ctrl+shift+a', print, args=('triggered', 'hotkey')) + +# Press PAGE UP then PAGE DOWN to type "foobar". +keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar')) + +# Blocks until you press esc. +keyboard.wait('esc') + +# Record events until 'esc' is pressed. +recorded = keyboard.record(until='esc') +# Then replay back at three times the speed. +keyboard.play(recorded, speed_factor=3) + +# Type @@ then press space to replace with abbreviation. +keyboard.add_abbreviation('@@', 'my.long.email@example.com') + +# Block forever, like `while True`. +keyboard.wait() +``` + +## Known limitations: + +- Events generated under Windows don't report device id (`event.device == None`). [#21](https://github.com/boppreh/keyboard/issues/21) +- Media keys on Linux may appear nameless (scan-code only) or not at all. [#20](https://github.com/boppreh/keyboard/issues/20) +- Key suppression/blocking only available on Windows. [#22](https://github.com/boppreh/keyboard/issues/22) +- To avoid depending on X, the Linux parts reads raw device files (`/dev/input/input*`) +but this requires root. +- Other applications, such as some games, may register hooks that swallow all +key events. In this case `keyboard` will be unable to report events. +- This program makes no attempt to hide itself, so don't use it for keyloggers or online gaming bots. Be responsible. +""" + +Callback = typing.Callable[[KeyboardEvent], None] + +version: str +_is_str = typing.Callable[[typing.Any], bool] +_is_number = typing.Callable[[typing.Any], bool] +_is_list: typing.Callable[[typing.Any], bool] + + +class _State: + ... + + +class _Event(_UninterruptibleEvent): + def wait(self) -> None: + ... + + +if _platform.system() == 'Windows': + ... +else: + ... +_modifier_scan_codes: set + + +def is_modifier(key) -> bool: + """ + Returns True if `key` is a scan code or name of a modifier key. + """ + ... + + +_pressed_events_lock: _Lock +_pressed_events: dict +_physically_pressed_keys: dict +_logically_pressed_keys: dict + + +class _KeyboardListener(_GenericListener): + transition_table = { + ('free', KEY_UP, 'modifier'): (False, True, 'free'), + ('free', KEY_DOWN, 'modifier'): (False, False, 'pending'), + ('pending', KEY_UP, 'modifier'): (True, True, 'free'), + ('pending', KEY_DOWN, 'modifier'): (False, True, 'allowed'), + ('suppressed', KEY_UP, 'modifier'): (False, False, 'free'), + ('suppressed', KEY_DOWN, 'modifier'): (False, False, 'suppressed'), + ('allowed', KEY_UP, 'modifier'): (False, True, 'free'), + ('allowed', KEY_DOWN, 'modifier'): (False, True, 'allowed'), + + ('free', KEY_UP, 'hotkey'): (False, None, 'free'), + ('free', KEY_DOWN, 'hotkey'): (False, None, 'free'), + ('pending', KEY_UP, 'hotkey'): (False, None, 'suppressed'), + ('pending', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), + ('suppressed', KEY_UP, 'hotkey'): (False, None, 'suppressed'), + ('suppressed', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), + ('allowed', KEY_UP, 'hotkey'): (False, None, 'allowed'), + ('allowed', KEY_DOWN, 'hotkey'): (False, None, 'allowed'), + + ('free', KEY_UP, 'other'): (False, True, 'free'), + ('free', KEY_DOWN, 'other'): (False, True, 'free'), + ('pending', KEY_UP, 'other'): (True, True, 'allowed'), + ('pending', KEY_DOWN, 'other'): (True, True, 'allowed'), + # Necessary when hotkeys are removed after beign triggered, such as + # TestKeyboard.test_add_hotkey_multistep_suppress_modifier. + ('suppressed', KEY_UP, 'other'): (False, False, 'allowed'), + ('suppressed', KEY_DOWN, 'other'): (True, True, 'allowed'), + ('allowed', KEY_UP, 'other'): (False, True, 'allowed'), + ('allowed', KEY_DOWN, 'other'): (False, True, 'allowed'), + } + + def init(self) -> None: + ... + + def pre_process_event(self, event): + ... + + def direct_callback(self, event): + """ + This function is called for every OS keyboard event and decides if the + event should be blocked or not, and passes a copy of the event to + other, non-blocking, listeners. + + There are two ways to block events: remapped keys, which translate + events by suppressing and re-emitting; and blocked hotkeys, which + suppress specific hotkeys. + """ + ... + + def listen(self) -> None: + ... + + +_listener: _KeyboardListener + + +def key_to_scan_codes(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], error_if_missing: bool = ...) -> typing.List[int]: + """ + Returns a list of scan codes associated with this key (name or scan code). + """ + ... + + +def parse_hotkey(hotkey) -> tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...]]] | tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...], ...]] | tuple[Unknown, ...]: + """ + Parses a user-provided hotkey into nested tuples representing the + parsed structure, with the bottom values being lists of scan codes. + Also accepts raw scan codes, which are then wrapped in the required + number of nestings. + + Example: + + parse_hotkey("alt+shift+a, alt+b, c") + # Keys: ^~^ ^~~~^ ^ ^~^ ^ ^ + # Steps: ^~~~~~~~~~^ ^~~~^ ^ + + # ((alt_codes, shift_codes, a_codes), (alt_codes, b_codes), (c_codes,)) + """ + ... + + +def send(hotkey: typing.Union[str, int], do_press: bool = ..., do_release: bool = ...) -> None: + """ + Sends OS events that perform the given *hotkey* hotkey. + + - `hotkey` can be either a scan code (e.g. 57 for space), single key + (e.g. 'space') or multi-key, multi-step hotkey (e.g. 'alt+F4, enter'). + - `do_press` if true then press events are sent. Defaults to True. + - `do_release` if true then release events are sent. Defaults to True. + + send(57) + send('ctrl+alt+del') + send('alt+F4, enter') + send('shift+s') + + Note: keys are released in the opposite order they were pressed. + """ + ... + + +press_and_release = send + + +def press(hotkey) -> None: + """ Presses and holds down a hotkey (see `send`). """ + ... + + +def release(hotkey) -> None: + """ Releases a hotkey (see `send`). """ + ... + + +def is_pressed(hotkey) -> bool: + """ + Returns True if the key is pressed. + + is_pressed(57) #-> True + is_pressed('space') #-> True + is_pressed('ctrl+space') #-> True + """ + ... + + +def call_later(fn, args=..., delay=...) -> None: + """ + Calls the provided function in a new thread after waiting some time. + Useful for giving the system some time to process an event, without blocking + the current execution flow. + """ + ... + + +_hooks: dict[typing.Callable, Unknown] + + +def hook(callback: Callback, suppress=..., on_remove=...) -> typing.Callable[[], None]: + """ + Installs a global listener on all available keyboards, invoking `callback` + each time a key is pressed or released. + + The event passed to the callback is of type `keyboard.KeyboardEvent`, + with the following attributes: + + - `name`: an Unicode representation of the character (e.g. "&") or + description (e.g. "space"). The name is always lower-case. + - `scan_code`: number representing the physical key, e.g. 55. + - `time`: timestamp of the time the event occurred, with as much precision + as given by the OS. + + Returns the given callback for easier development. + """ + ... + + +def on_press(callback: Callback, suppress=...) -> typing.Callable[[], None]: + """ + Invokes `callback` for every KEY_DOWN event. For details see `hook`. + """ + ... + + +def on_release(callback: Callback, suppress=...) -> typing.Callable[[], None]: + """ + Invokes `callback` for every KEY_UP event. For details see `hook`. + """ + ... + + +def hook_key(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], callback: Callback, suppress: bool = ...) -> typing.Callable[[], None]: + """ + Hooks key up and key down events for a single key. Returns the event handler + created. To remove a hooked key use `unhook_key(key)` or + `unhook_key(handler)`. + + Note: this function shares state with hotkeys, so `clear_all_hotkeys` + affects it as well. + """ + ... + + +def on_press_key(key, callback: Callback, suppress=...) -> typing.Callable[[], None]: + """ + Invokes `callback` for KEY_DOWN event related to the given key. For details see `hook`. + """ + ... + + +def on_release_key(key, callback: Callback, suppress=...) -> typing.Callable[[], None]: + """ + Invokes `callback` for KEY_UP event related to the given key. For details see `hook`. + """ + ... + + +def unhook(remove: typing.Callable[[], None]) -> None: + """ + Removes a previously added hook, either by callback or by the return value + of `hook`. + """ + ... + + +unhook_key = unhook + + +def unhook_all() -> None: + """ + Removes all keyboard hooks in use, including hotkeys, abbreviations, word + listeners, `record`ers and `wait`s. + """ + ... + + +def block_key(key) -> typing.Callable[[], None]: + """ + Suppresses all key events of the given key, regardless of modifiers. + """ + ... + + +unblock_key = unhook_key + + +def remap_key(src, dst) -> typing.Callable[[], None]: + """ + Whenever the key `src` is pressed or released, regardless of modifiers, + press or release the hotkey `dst` instead. + """ + ... + + +unremap_key = unhook_key + + +def parse_hotkey_combinations(hotkey) -> tuple[tuple[tuple[Unknown, ...], ...], ...]: + """ + Parses a user-provided hotkey. Differently from `parse_hotkey`, + instead of each step being a list of the different scan codes for each key, + each step is a list of all possible combinations of those scan codes. + """ + ... + + +_hotkeys: dict + + +def add_hotkey(hotkey, callback: Callback, args=..., suppress=..., timeout=..., trigger_on_release=...) -> typing.Callable[[], None]: + """ + Invokes a callback every time a hotkey is pressed. The hotkey must + be in the format `ctrl+shift+a, s`. This would trigger when the user holds + ctrl, shift and "a" at once, releases, and then presses "s". To represent + literal commas, pluses, and spaces, use their names ('comma', 'plus', + 'space'). + + - `args` is an optional list of arguments to passed to the callback during + each invocation. + - `suppress` defines if successful triggers should block the keys from being + sent to other programs. + - `timeout` is the amount of seconds allowed to pass between key presses. + - `trigger_on_release` if true, the callback is invoked on key release instead + of key press. + + The event handler function is returned. To remove a hotkey call + `remove_hotkey(hotkey)` or `remove_hotkey(handler)`. + before the hotkey state is reset. + + Note: hotkeys are activated when the last key is *pressed*, not released. + Note: the callback is executed in a separate thread, asynchronously. For an + example of how to use a callback synchronously, see `wait`. + + Examples: + + # Different but equivalent ways to listen for a spacebar key press. + add_hotkey(' ', print, args=['space was pressed']) + add_hotkey('space', print, args=['space was pressed']) + add_hotkey('Space', print, args=['space was pressed']) + # Here 57 represents the keyboard code for spacebar; so you will be + # pressing 'spacebar', not '57' to activate the print function. + add_hotkey(57, print, args=['space was pressed']) + + add_hotkey('ctrl+q', quit) + add_hotkey('ctrl+alt+enter, space', some_callback) + """ + ... + + +register_hotkey = add_hotkey + + +def remove_hotkey(hotkey_or_callback) -> None: + """ + Removes a previously hooked hotkey. Must be called with the value returned + by `add_hotkey`. + """ + ... + + +unregister_hotkey = clear_hotkey = remove_hotkey + + +def unhook_all_hotkeys() -> None: + """ + Removes all keyboard hotkeys in use, including abbreviations, word listeners, + `record`ers and `wait`s. + """ + ... + + +unregister_all_hotkeys = remove_all_hotkeys = clear_all_hotkeys = unhook_all_hotkeys + + +def remap_hotkey(src, dst, suppress=..., trigger_on_release=...) -> typing.Callable[[], None]: + """ + Whenever the hotkey `src` is pressed, suppress it and send + `dst` instead. + + Example: + + remap('alt+w', 'ctrl+up') + """ + ... + + +unremap_hotkey = remove_hotkey + + +def stash_state() -> list[Unknown]: + """ + Builds a list of all currently pressed scan codes, releases them and returns + the list. Pairs well with `restore_state` and `restore_modifiers`. + """ + ... + + +def restore_state(scan_codes) -> None: + """ + Given a list of scan_codes ensures these keys, and only these keys, are + pressed. Pairs well with `stash_state`, alternative to `restore_modifiers`. + """ + ... + + +def restore_modifiers(scan_codes) -> None: + """ + Like `restore_state`, but only restores modifier keys. + """ + ... + + +def write(text, delay=..., restore_state_after=..., exact=...): + """ + Sends artificial keyboard events to the OS, simulating the typing of a given + text. Characters not available on the keyboard are typed as explicit unicode + characters using OS-specific functionality, such as alt+codepoint. + + To ensure text integrity, all currently pressed keys are released before + the text is typed, and modifiers are restored afterwards. + + - `delay` is the number of seconds to wait between keypresses, defaults to + no delay. + - `restore_state_after` can be used to restore the state of pressed keys + after the text is typed, i.e. presses the keys that were released at the + beginning. Defaults to True. + - `exact` forces typing all characters as explicit unicode (e.g. + alt+codepoint or special events). If None, uses platform-specific suggested + value. + """ + ... + + +def wait(hotkey=..., suppress=..., trigger_on_release=...) -> None: + """ + Blocks the program execution until the given hotkey is pressed or, + if given no parameters, blocks forever. + """ + ... + + +def get_hotkey_name(names=...) -> str: + """ + Returns a string representation of hotkey from the given key names, or + the currently pressed keys if not given. This function: + + - normalizes names; + - removes "left" and "right" prefixes; + - replaces the "+" key name with "plus" to avoid ambiguity; + - puts modifier keys first, in a standardized order; + - sort remaining keys; + - finally, joins everything with "+". + + Example: + + get_hotkey_name(['+', 'left ctrl', 'shift']) + # "ctrl+shift+plus" + """ + ... + + +def read_event(suppress: bool = ...) -> KeyboardEvent: + """ + Blocks until a keyboard event happens, then returns that event. + """ + ... + + +def read_key(suppress=...): + """ + Blocks until a keyboard event happens, then returns that event's name or, + if missing, its scan code. + """ + ... + + +def read_hotkey(suppress=...) -> str: + """ + Similar to `read_key()`, but blocks until the user presses and releases a + hotkey (or single key), then returns a string representing the hotkey + pressed. + + Example: + + read_hotkey() + # "ctrl+shift+p" + """ + ... + + +def get_typed_strings(events, allow_backspace=...): + """ + Given a sequence of events, tries to deduce what strings were typed. + Strings are separated when a non-textual key is pressed (such as tab or + enter). Characters are converted to uppercase according to shift and + capslock status. If `allow_backspace` is True, backspaces remove the last + character typed. + + This function is a generator, so you can pass an infinite stream of events + and convert them to strings in real time. + + Note this functions is merely an heuristic. Windows for example keeps per- + process keyboard state such as keyboard layout, and this information is not + available for our hooks. + + get_type_strings(record()) #-> ['This is what', 'I recorded', ''] + """ + ... + + +_recording: typing.Optional[tuple[Unknown | _queue.Queue[Unknown], typing.Callable[[], None]]] + + +def start_recording(recorded_events_queue=...) -> tuple[Unknown | _queue.Queue[Unknown], typing.Callable[[], None]]: + """ + Starts recording all keyboard events into a global variable, or the given + queue if any. Returns the queue of events and the hooked function. + + Use `stop_recording()` or `unhook(hooked_function)` to stop. + """ + ... + + +def stop_recording() -> list[Unknown | typing.Any]: + """ + Stops the global recording of events and returns a list of the events + captured. + """ + ... + + +def record(until=..., suppress=..., trigger_on_release=...) -> list[Unknown | typing.Any]: + """ + Records all keyboard events from all keyboards until the user presses the + given hotkey. Then returns the list of events recorded, of type + `keyboard.KeyboardEvent`. Pairs well with + `play(events)`. + + Note: this is a blocking function. + Note: for more details on the keyboard hook and events see `hook`. + """ + ... + + +def play(events, speed_factor=...): + """ + Plays a sequence of recorded events, maintaining the relative time + intervals. If speed_factor is <= 0 then the actions are replayed as fast + as the OS allows. Pairs well with `record()`. + + Note: the current keyboard state is cleared at the beginning and restored at + the end of the function. + """ + ... + + +replay = play +_word_listeners: dict + + +def add_word_listener(word, callback: Callback, triggers=..., match_suffix=..., timeout=...) -> typing.Callable[[], None]: + """ + Invokes a callback every time a sequence of characters is typed (e.g. 'pet') + and followed by a trigger key (e.g. space). Modifiers (e.g. alt, ctrl, + shift) are ignored. + + - `word` the typed text to be matched. E.g. 'pet'. + - `callback` is an argument-less function to be invoked each time the word + is typed. + - `triggers` is the list of keys that will cause a match to be checked. If + the user presses some key that is not a character (len>1) and not in + triggers, the characters so far will be discarded. By default the trigger + is only `space`. + - `match_suffix` defines if endings of words should also be checked instead + of only whole words. E.g. if true, typing 'carpet'+space will trigger the + listener for 'pet'. Defaults to false, only whole words are checked. + - `timeout` is the maximum number of seconds between typed characters before + the current word is discarded. Defaults to 2 seconds. + + Returns the event handler created. To remove a word listener use + `remove_word_listener(word)` or `remove_word_listener(handler)`. + + Note: all actions are performed on key down. Key up events are ignored. + Note: word matches are **case sensitive**. + """ + ... + + +def remove_word_listener(word_or_handler) -> None: + """ + Removes a previously registered word listener. Accepts either the word used + during registration (exact string) or the event handler returned by the + `add_word_listener` or `add_abbreviation` functions. + """ + ... + + +def add_abbreviation(source_text, replacement_text, match_suffix=..., timeout=...) -> typing.Callable[[], None]: + """ + Registers a hotkey that replaces one typed text with another. For example + + add_abbreviation('tm', u'™') + + Replaces every "tm" followed by a space with a ™ symbol (and no space). The + replacement is done by sending backspace events. + + - `match_suffix` defines if endings of words should also be checked instead + of only whole words. E.g. if true, typing 'carpet'+space will trigger the + listener for 'pet'. Defaults to false, only whole words are checked. + - `timeout` is the maximum number of seconds between typed characters before + the current word is discarded. Defaults to 2 seconds. + + For more details see `add_word_listener`. + """ + ... + + +register_word_listener = add_word_listener +register_abbreviation = add_abbreviation +remove_abbreviation = remove_word_listener diff --git a/typings/keyboard/_keyboard_event.pyi b/typings/keyboard/_keyboard_event.pyi new file mode 100644 index 00000000..72c73f02 --- /dev/null +++ b/typings/keyboard/_keyboard_event.pyi @@ -0,0 +1,31 @@ +""" +This type stub file was generated by pyright. +""" + +from typing import Literal, Optional, Union + + +KEY_DOWN = Literal['down'] +KEY_UP = Literal['up'] + + +class KeyboardEvent: + event_type: Optional[Union[KEY_DOWN, KEY_UP]] = ... + scan_code: Optional[int] = ... + name: Optional[str] = ... + time: Optional[Unknown] = ... + device: Optional[Unknown] = ... + modifiers: Optional[Unknown] = ... + is_keypad: Optional[bool] = ... + + def __init__(self, event_type: event_type, scan_code, name: name = ..., time: time = ..., device: device = ..., modifiers: modifiers = ..., is_keypad: is_keypad = ...) -> None: + ... + + def to_json(self, ensure_ascii: bool = ...) -> str: + ... + + def __repr__(self) -> str: + ... + + def __eq__(self, other: KeyboardEvent) -> bool: + ... diff --git a/typings/pyautogui/__init__.pyi b/typings/pyautogui/__init__.pyi new file mode 100644 index 00000000..1cccf90e --- /dev/null +++ b/typings/pyautogui/__init__.pyi @@ -0,0 +1,814 @@ +""" +This type stub file was generated by pyright. +""" +from typing import * + +import sys +import time +import datetime +import os +import platform +import re +import functools +import collections +import collections.abc +from __future__ import absolute_import, division, print_function +from contextlib import contextmanager + +__version__ = ... + + +class PyAutoGUIException(Exception): + """ + PyAutoGUI code will raise this exception class for any invalid actions. If PyAutoGUI raises some other exception, + you should assume that this is caused by a bug in PyAutoGUI itself. (Including a failure to catch potential + exceptions raised by PyAutoGUI.) + """ + ... + + +class FailSafeException(PyAutoGUIException): + """ + This exception is raised by PyAutoGUI functions when the user puts the mouse cursor into one of the "failsafe + points" (by default, one of the four corners of the primary monitor). This exception shouldn't be caught; it's + meant to provide a way to terminate a misbehaving script. + """ + ... + + +class ImageNotFoundException(PyAutoGUIException): + """ + This exception is the PyAutoGUI version of PyScreeze's `ImageNotFoundException`, which is raised when a locate*() + function call is unable to find an image. + + Ideally, `pyscreeze.ImageNotFoundException` should never be raised by PyAutoGUI. + """ + ... + + +if sys.version_info[0] == 2 or sys.version_info[0: 2] in ((3, 1), (3, 2)): + collectionsSequence = ... +else: + collectionsSequence = ... + + +def raisePyAutoGUIImageNotFoundException(wrappedFunction) -> Callable: + """ + A decorator that wraps PyScreeze locate*() functions so that the PyAutoGUI user sees them raise PyAutoGUI's + ImageNotFoundException rather than PyScreeze's ImageNotFoundException. This is because PyScreeze should be + invisible to PyAutoGUI users. + """ + ... + + +def useImageNotFoundException(value=...) -> None: + """ + When called with no arguments, PyAutoGUI will raise ImageNotFoundException when the PyScreeze locate*() functions + can't find the image it was told to locate. The default behavior is to return None. Call this function with no + arguments (or with True as the argument) to have exceptions raised, which is a better practice. + + You can also disable raising exceptions by passing False for the argument. + """ + ... + + +if sys.platform == "win32": + ... +KEY_NAMES = ... +KEYBOARD_KEYS = ... +LEFT = ... +MIDDLE = ... +RIGHT = ... +PRIMARY = ... +SECONDARY = ... +QWERTY = ... +QWERTZ = ... + + +def isShiftCharacter(character) -> bool: + """ + Returns True if the ``character`` is a keyboard key that would require the shift key to be held down, such as + uppercase letters or the symbols on the keyboard's number row. + """ + ... + + +if sys.platform.startswith("java"): + ... +else: + ... +MINIMUM_DURATION = ... +MINIMUM_SLEEP = ... +PAUSE = ... +DARWIN_CATCH_UP_TIME = ... +FAILSAFE = bool +FAILSAFE_POINTS = ... +LOG_SCREENSHOTS = ... +LOG_SCREENSHOTS_LIMIT = ... +G_LOG_SCREENSHOTS_FILENAMES = ... +Point = ... +Size = ... + + +def getPointOnLine(x1, y1, x2, y2, n) -> tuple[Unknown, Unknown]: + """ + Returns an (x, y) tuple of the point that has progressed a proportion ``n`` along the line defined by the two + ``x1``, ``y1`` and ``x2``, ``y2`` coordinates. + + This function was copied from pytweening module, so that it can be called even if PyTweening is not installed. + """ + ... + + +def linear(n): + """ + Returns ``n``, where ``n`` is the float argument between ``0.0`` and ``1.0``. This function is for the default + linear tween for mouse moving functions. + + This function was copied from PyTweening module, so that it can be called even if PyTweening is not installed. + """ + ... + + +def position(x=..., y=...) -> Point: + """ + Returns the current xy coordinates of the mouse cursor as a two-integer tuple. + + Args: + x (int, None, optional) - If not None, this argument overrides the x in + the return value. + y (int, None, optional) - If not None, this argument overrides the y in + the return value. + + Returns: + (x, y) tuple of the current xy coordinates of the mouse cursor. + + NOTE: The position() function doesn't check for failsafe. + """ + ... + + +def size() -> Size: + """Returns the width and height of the screen as a two-integer tuple. + + Returns: + (width, height) tuple of the screen size, in pixels. + """ + ... + + +def onScreen(x, y=...) -> bool: + """Returns whether the given xy coordinates are on the primary screen or not. + + Note that this function doesn't work for secondary screens. + + Args: + Either the arguments are two separate values, first arg for x and second + for y, or there is a single argument of a sequence with two values, the + first x and the second y. + Example: onScreen(x, y) or onScreen([x, y]) + + Returns: + bool: True if the xy coordinates are on the screen at its current + resolution, otherwise False. + """ + ... + + +@_genericPyAutoGUIChecks +def mouseDown(x=..., y=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs pressing a mouse button down (but not up). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + mouse down happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + mouse down happens. None by default. + button (str, int, optional): The mouse button pressed down. TODO + + Returns: + None + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, or 3 + """ + ... + + +@_genericPyAutoGUIChecks +def mouseUp(x=..., y=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs releasing a mouse button up (but not down beforehand). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + mouse up happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + mouse up happens. None by default. + button (str, int, optional): The mouse button released. TODO + + Returns: + None + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, or 3 + """ + ... + + +@_genericPyAutoGUIChecks +def click(x=..., y=..., clicks=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """ + Performs pressing a mouse button down and then immediately releasing it. Returns ``None``. + + When no arguments are passed, the primary mouse button is clicked at the mouse cursor's current location. + + If integers for ``x`` and ``y`` are passed, the click will happen at that XY coordinate. If ``x`` is a string, the + string is an image filename that PyAutoGUI will attempt to locate on the screen and click the center of. If ``x`` + is a sequence of two coordinates, those coordinates will be used for the XY coordinate to click on. + + The ``clicks`` argument is an int of how many clicks to make, and defaults to ``1``. + + The ``interval`` argument is an int or float of how many seconds to wait in between each click, if ``clicks`` is + greater than ``1``. It defaults to ``0.0`` for no pause in between clicks. + + The ``button`` argument is one of the constants ``LEFT``, ``MIDDLE``, ``RIGHT``, ``PRIMARY``, or ``SECONDARY``. + It defaults to ``PRIMARY`` (which is the left mouse button, unless the operating system has been set for + left-handed users.) + + If ``x`` and ``y`` are specified, and the click is not happening at the mouse cursor's current location, then + the ``duration`` argument is an int or float of how many seconds it should take to move the mouse to the XY + coordinates. It defaults to ``0`` for an instant move. + + If ``x`` and ``y`` are specified and ``duration`` is not ``0``, the ``tween`` argument is a tweening function + that specifies the movement pattern of the mouse cursor as it moves to the XY coordinates. The default is a + simple linear tween. See the PyTweening module documentation for more details. + + The ``pause`` parameter is deprecated. Call the ``pyautogui.sleep()`` function to implement a pause. + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3 + """ + ... + + +@_genericPyAutoGUIChecks +def leftClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a left mouse button click. + + This is a wrapper function for click('left', x, y). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + interval (float, optional): The number of seconds in between each click, + if the number of clicks is greater than 1. 0.0 by default, for no + pause in between clicks. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def rightClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a right mouse button click. + + This is a wrapper function for click('right', x, y). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + interval (float, optional): The number of seconds in between each click, + if the number of clicks is greater than 1. 0.0 by default, for no + pause in between clicks. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def middleClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a middle mouse button click. + + This is a wrapper function for click('middle', x, y). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def doubleClick(x=..., y=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a double click. + + This is a wrapper function for click('left', x, y, 2, interval). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + interval (float, optional): The number of seconds in between each click, + if the number of clicks is greater than 1. 0.0 by default, for no + pause in between clicks. + button (str, int, optional): The mouse button released. TODO + + Returns: + None + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3, 4, + 5, 6, or 7 + """ + ... + + +@_genericPyAutoGUIChecks +def tripleClick(x=..., y=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Performs a triple click. + + This is a wrapper function for click('left', x, y, 3, interval). + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + interval (float, optional): The number of seconds in between each click, + if the number of clicks is greater than 1. 0.0 by default, for no + pause in between clicks. + button (str, int, optional): The mouse button released. TODO + + Returns: + None + + Raises: + PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3, 4, + 5, 6, or 7 + """ + ... + + +@_genericPyAutoGUIChecks +def scroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: + """Performs a scroll of the mouse scroll wheel. + + Whether this is a vertical or horizontal scroll depends on the underlying + operating system. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + clicks (int, float): The amount of scrolling to perform. + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def hscroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: + """Performs an explicitly horizontal scroll of the mouse scroll wheel, + if this is supported by the operating system. (Currently just Linux.) + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + clicks (int, float): The amount of scrolling to perform. + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def vscroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: + """Performs an explicitly vertical scroll of the mouse scroll wheel, + if this is supported by the operating system. (Currently just Linux.) + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + clicks (int, float): The amount of scrolling to perform. + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def moveTo(x=..., y=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Moves the mouse cursor to a point on the screen. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): The x position on the screen where the + click happens. None by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): The y position on the screen where the + click happens. None by default. + duration (float, optional): The amount of time it takes to move the mouse + cursor to the xy coordinates. If 0, then the mouse cursor is moved + instantaneously. 0.0 by default. + tween (func, optional): The tweening function used if the duration is not + 0. A linear tween is used by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def moveRel(xOffset=..., yOffset=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: + """Moves the mouse cursor to a point on the screen, relative to its current + position. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): How far left (for negative values) or + right (for positive values) to move the cursor. 0 by default. If tuple, this is used for x and y. + y (int, float, None, optional): How far up (for negative values) or + down (for positive values) to move the cursor. 0 by default. + duration (float, optional): The amount of time it takes to move the mouse + cursor to the new xy coordinates. If 0, then the mouse cursor is moved + instantaneously. 0.0 by default. + tween (func, optional): The tweening function used if the duration is not + 0. A linear tween is used by default. + + Returns: + None + """ + ... + + +move = ... + + +@_genericPyAutoGUIChecks +def dragTo(x=..., y=..., duration=..., tween=..., button=..., logScreenshot=..., _pause=..., mouseDownUp=...) -> None: + """Performs a mouse drag (mouse movement while a button is held down) to a + point on the screen. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): How far left (for negative values) or + right (for positive values) to move the cursor. 0 by default. If tuple, this is used for x and y. + If x is a str, it's considered a filename of an image to find on + the screen with locateOnScreen() and click the center of. + y (int, float, None, optional): How far up (for negative values) or + down (for positive values) to move the cursor. 0 by default. + duration (float, optional): The amount of time it takes to move the mouse + cursor to the new xy coordinates. If 0, then the mouse cursor is moved + instantaneously. 0.0 by default. + tween (func, optional): The tweening function used if the duration is not + 0. A linear tween is used by default. + button (str, int, optional): The mouse button released. TODO + mouseDownUp (True, False): When true, the mouseUp/Down actions are not performed. + Which allows dragging over multiple (small) actions. 'True' by default. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def dragRel(xOffset=..., yOffset=..., duration=..., tween=..., button=..., logScreenshot=..., _pause=..., mouseDownUp=...): + """Performs a mouse drag (mouse movement while a button is held down) to a + point on the screen, relative to its current position. + + The x and y parameters detail where the mouse event happens. If None, the + current mouse position is used. If a float value, it is rounded down. If + outside the boundaries of the screen, the event happens at edge of the + screen. + + Args: + x (int, float, None, tuple, optional): How far left (for negative values) or + right (for positive values) to move the cursor. 0 by default. If tuple, this is used for xOffset and yOffset. + y (int, float, None, optional): How far up (for negative values) or + down (for positive values) to move the cursor. 0 by default. + duration (float, optional): The amount of time it takes to move the mouse + cursor to the new xy coordinates. If 0, then the mouse cursor is moved + instantaneously. 0.0 by default. + tween (func, optional): The tweening function used if the duration is not + 0. A linear tween is used by default. + button (str, int, optional): The mouse button released. TODO + mouseDownUp (True, False): When true, the mouseUp/Down actions are not performed. + Which allows dragging over multiple (small) actions. 'True' by default. + + Returns: + None + """ + ... + + +drag = ... + + +def isValidKey(key) -> bool: + """Returns a Boolean value if the given key is a valid value to pass to + PyAutoGUI's keyboard-related functions for the current platform. + + This function is here because passing an invalid value to the PyAutoGUI + keyboard functions currently is a no-op that does not raise an exception. + + Some keys are only valid on some platforms. For example, while 'esc' is + valid for the Escape key on all platforms, 'browserback' is only used on + Windows operating systems. + + Args: + key (str): The key value. + + Returns: + bool: True if key is a valid value, False if not. + """ + ... + + +@_genericPyAutoGUIChecks +def keyDown(key, logScreenshot=..., _pause=...) -> None: + """Performs a keyboard key press without the release. This will put that + key in a held down state. + + NOTE: For some reason, this does not seem to cause key repeats like would + happen if a keyboard key was held down on a text field. + + Args: + key (str): The key to be pressed down. The valid names are listed in + KEYBOARD_KEYS. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def keyUp(key, logScreenshot=..., _pause=...) -> None: + """Performs a keyboard key release (without the press down beforehand). + + Args: + key (str): The key to be released up. The valid names are listed in + KEYBOARD_KEYS. + + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def press(keys, presses=..., interval=..., logScreenshot=..., _pause=...): + """Performs a keyboard key press down, followed by a release. + + Args: + key (str, list): The key to be pressed. The valid names are listed in + KEYBOARD_KEYS. Can also be a list of such strings. + presses (integer, optional): The number of press repetitions. + 1 by default, for just one press. + interval (float, optional): How many seconds between each press. + 0.0 by default, for no pause between presses. + pause (float, optional): How many seconds in the end of function process. + None by default, for no pause in the end of function process. + Returns: + None + """ + ... + + +@contextmanager +@_genericPyAutoGUIChecks +def hold(keys, logScreenshot=..., _pause=...): + """Context manager that performs a keyboard key press down upon entry, + followed by a release upon exit. + + Args: + key (str, list): The key to be pressed. The valid names are listed in + KEYBOARD_KEYS. Can also be a list of such strings. + pause (float, optional): How many seconds in the end of function process. + None by default, for no pause in the end of function process. + Returns: + None + """ + ... + + +@_genericPyAutoGUIChecks +def typewrite(message, interval=..., logScreenshot=..., _pause=...) -> None: + """Performs a keyboard key press down, followed by a release, for each of + the characters in message. + + The message argument can also be list of strings, in which case any valid + keyboard name can be used. + + Since this performs a sequence of keyboard presses and does not hold down + keys, it cannot be used to perform keyboard shortcuts. Use the hotkey() + function for that. + + Args: + message (str, list): If a string, then the characters to be pressed. If a + list, then the key names of the keys to press in order. The valid names + are listed in KEYBOARD_KEYS. + interval (float, optional): The number of seconds in between each press. + 0.0 by default, for no pause in between presses. + + Returns: + None + """ + ... + + +write = ... + + +@_genericPyAutoGUIChecks +def hotkey(*args: str, **kwargs: Union[int, bool, None]) -> None: + """Performs key down presses on the arguments passed in order, then performs + key releases in reverse order. + + The effect is that calling hotkey('ctrl', 'shift', 'c') would perform a + "Ctrl-Shift-C" hotkey/keyboard shortcut press. + + Args: + key(s) (str): The series of keys to press, in order. This can also be a + list of key strings to press. + interval (float, optional): The number of seconds in between each press. + 0.0 by default, for no pause in between presses. + + Returns: + None + """ + ... + + +def failSafeCheck() -> None: + ... + + +def displayMousePosition(xOffset=..., yOffset=...): + """This function is meant to be run from the command line. It will + automatically display the location and RGB of the mouse cursor.""" + ... + + +def sleep(seconds) -> None: + ... + + +def countdown(seconds) -> None: + ... + + +def run(commandStr, _ssCount=...) -> None: + """Run a series of PyAutoGUI function calls according to a mini-language + made for this function. The `commandStr` is composed of character + commands that represent PyAutoGUI function calls. + + For example, `run('ccg-20,+0c')` clicks the mouse twice, then makes + the mouse cursor go 20 pixels to the left, then click again. + + Whitespace between commands and arguments is ignored. Command characters + must be lowercase. Quotes must be single quotes. + + For example, the previous call could also be written as `run('c c g -20, +0 c')`. + + The character commands and their equivalents are here: + + `c` => `click(button=PRIMARY)` + `l` => `click(button=LEFT)` + `m` => `click(button=MIDDLE)` + `r` => `click(button=RIGHT)` + `su` => `scroll(1) # scroll up` + `sd` => `scroll(-1) # scroll down` + `ss` => `screenshot('screenshot1.png') # filename number increases on its own` + + `gX,Y` => `moveTo(X, Y)` + `g+X,-Y` => `move(X, Y) # The + or - prefix is the difference between move() and moveTo()` + `dX,Y` => `dragTo(X, Y)` + `d+X,-Y` => `drag(X, Y) # The + or - prefix is the difference between drag() and dragTo()` + + `k'key'` => `press('key')` + `w'text'` => `write('text')` + `h'key,key,key'` => `hotkey(*'key,key,key'.replace(' ', '').split(','))` + `a'hello'` => `alert('hello')` + + `sN` => `sleep(N) # N can be an int or float` + `pN` => `PAUSE = N # N can be an int or float` + + `fN(commands)` => for i in range(N): run(commands) + + Note that any changes to `PAUSE` with the `p` command will be undone when + this function returns. The original `PAUSE` setting will be reset. + + TODO - This function is under development. + """ + ... + + +def printInfo(dontPrint=...) -> str: + ... + + +def getInfo() -> tuple[str, str, Literal['0.9.53'], str, Size, datetime]: + ... diff --git a/typings/pythonwin-stubs/win32typing.pyi b/typings/pythonwin-stubs/win32typing.pyi new file mode 100644 index 00000000..270cb353 --- /dev/null +++ b/typings/pythonwin-stubs/win32typing.pyi @@ -0,0 +1,51700 @@ +__all__=['', 'COMMTIMEOUTS', 'CopyProgressRoutine', 'DOCINFO', 'ExportCallback', 'FORM_INFO_1', 'ImportCallback', 'LARGE_INTEGER', 'NCB', 'PRINTER_DEFAULTS', 'PyACL', 'PyBITMAP', 'PyBLENDFUNCTION', 'PyCEHANDLE', 'PyCERTSTORE', 'PyCERT_ALT_NAME_ENTRY', 'PyCERT_ALT_NAME_INFO', 'PyCERT_AUTHORITY_KEY_ID_INFO', 'PyCERT_BASIC_CONSTRAINTS2_INFO', 'PyCERT_BASIC_CONSTRAINTS_INFO', 'PyCERT_CONTEXT', 'PyCERT_EXTENSION', 'PyCERT_KEY_ATTRIBUTES_INFO', 'PyCERT_NAME_INFO', 'PyCERT_NAME_VALUE', 'PyCERT_OTHER_NAME', 'PyCERT_POLICY_INFO', 'PyCERT_PUBLIC_KEY_INFO', 'PyCOMSTAT', 'PyCOORD', 'PyCREDENTIAL', 'PyCREDENTIAL_ATTRIBUTE', 'PyCREDENTIAL_TARGET_INFORMATION', 'PyCREDUI_INFO', 'PyCRYPTHASH', 'PyCRYPTKEY', 'PyCRYPTMSG', 'PyCRYPTPROTECT_PROMPTSTRUCT', 'PyCRYPTPROV', 'PyCRYPT_ALGORITHM_IDENTIFIER', 'PyCRYPT_ATTRIBUTE', 'PyCRYPT_BIT_BLOB', 'PyCRYPT_DECRYPT_MESSAGE_PARA', 'PyCRYPT_ENCRYPT_MESSAGE_PARA', 'PyCRYPT_SIGN_MESSAGE_PARA', 'PyCRYPT_VERIFY_MESSAGE_PARA', 'PyCTL_CONTEXT', 'PyCTL_USAGE', 'PyConsoleScreenBuffer', 'PyCredHandle', 'PyCtxtHandle', 'PyDCB', 'PyDEVMODE', 'PyDEVMODEW', 'PyDISPLAY_DEVICE', 'PyDLGITEMTEMPLATE', 'PyDLGTEMPLATE', 'PyDS_HANDLE', 'PyDS_NAME_RESULT_ITEM', 'PyDateTime', 'PyDialogTemplate', 'PyEVTLOG_HANDLE', 'PyEVT_HANDLE', 'PyEVT_RPC_LOGIN', 'PyEventLogRecord', 'PyGROUP_INFO_0', 'PyGROUP_INFO_1', 'PyGROUP_INFO_1002', 'PyGROUP_INFO_1005', 'PyGROUP_INFO_2', 'PyGROUP_USERS_INFO_0', 'PyGROUP_USERS_INFO_1', 'PyGdiHANDLE', 'PyGetSignerCertificate', 'PyHANDLE', 'PyHDESK', 'PyHDEVNOTIFY', 'PyHHNTRACK', 'PyHHN_NOTIFY', 'PyHH_AKLINK', 'PyHH_FTS_QUERY', 'PyHH_POPUP', 'PyHH_WINTYPE', 'PyHINTERNET', 'PyHKEY', 'PyHTHEME', 'PyHWINSTA', 'PyICONINFO', 'PyIID', 'PyINPUT_RECORD', 'PyLOCALGROUP_INFO_0', 'PyLOCALGROUP_INFO_1', 'PyLOCALGROUP_INFO_1002', 'PyLOCALGROUP_MEMBERS_INFO_0', 'PyLOCALGROUP_MEMBERS_INFO_1', 'PyLOCALGROUP_MEMBERS_INFO_2', 'PyLOCALGROUP_MEMBERS_INFO_3', 'PyLOGBRUSH', 'PyLOGFONT', 'PyLSA_HANDLE', 'PyLUID_AND_ATTRIBUTES', 'PyLsaLogon_HANDLE', 'PyMSG', 'PyNETRESOURCE', 'PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG', 'PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG', 'PyNET_VALIDATE_PERSISTED_FIELDS', 'PyNMHDR', 'PyNOTIFYICONDATA', 'PyOVERLAPPED', 'PyOVERLAPPEDReadBuffer', 'PyPERF_COUNTER_DEFINITION', 'PyPERF_OBJECT_TYPE', 'PyPOINT', 'PyPROFILEINFO', 'PyPerfMonManager', 'PyPrinterHANDLE', 'PyRECT', 'PyResourceId', 'PySCROLLINFO', 'PySC_HANDLE', 'PySECURITY_ATTRIBUTES', 'PySECURITY_DESCRIPTOR', 'PySERVER_INFO_100', 'PySERVER_INFO_101', 'PySERVER_INFO_102', 'PySERVER_INFO_402', 'PySERVER_INFO_403', 'PySERVER_INFO_502', 'PySERVER_INFO_503', 'PySHARE_INFO_0', 'PySHARE_INFO_1', 'PySHARE_INFO_2', 'PySHARE_INFO_501', 'PySHARE_INFO_502', 'PySID', 'PySID_AND_ATTRIBUTES', 'PySIZE', 'PySMALL_RECT', 'PySTARTUPINFO', 'PySecBuffer', 'PySecBufferDesc', 'PyTOKEN_GROUPS', 'PyTOKEN_PRIVILEGES', 'PyTRIVERTEX', 'PyTRUSTEE', 'PyTS_HANDLE', 'PyTime', 'PyUSER_INFO_0', 'PyUSER_INFO_1', 'PyUSER_INFO_10', 'PyUSER_INFO_1003', 'PyUSER_INFO_1005', 'PyUSER_INFO_1006', 'PyUSER_INFO_1007', 'PyUSER_INFO_1008', 'PyUSER_INFO_1009', 'PyUSER_INFO_1010', 'PyUSER_INFO_1011', 'PyUSER_INFO_11', 'PyUSER_INFO_2', 'PyUSER_INFO_20', 'PyUSER_INFO_3', 'PyUSER_INFO_4', 'PyUSER_MODALS_INFO_0', 'PyUSER_MODALS_INFO_1', 'PyUSER_MODALS_INFO_2', 'PyUSER_MODALS_INFO_3', 'PyUSE_INFO_0', 'PyUSE_INFO_1', 'PyUSE_INFO_2', 'PyUSE_INFO_3', 'PyUnicode', 'PyUrlCacheHANDLE', 'PyWAVEFORMATEX', 'PyWINHTTP_AUTOPROXY_OPTIONS', 'PyWINHTTP_PROXY_INFO', 'PyWKSTA_INFO_100', 'PyWKSTA_INFO_101', 'PyWKSTA_INFO_102', 'PyWKSTA_INFO_302', 'PyWKSTA_INFO_402', 'PyWKSTA_INFO_502', 'PyWKSTA_TRANSPORT_INFO_0', 'PyWKSTA_USER_INFO_0', 'PyWKSTA_USER_INFO_1', 'PyWNDCLASS', 'PyXFORM', 'Pymmapfile', 'RASDIALEXTENSIONS', 'RASDIALPARAMS', 'SC_ACTION', 'SERVICE_FAILURE_ACTIONS', 'SERVICE_STATUS', 'TRACKMOUSEEVENT', 'ULARGE_INTEGER', 'WIN32_FIND_DATA', 'com_error', 'connection', 'cursor', 'error', 'COMPONENT', 'COMPONENTSOPT', 'COMPPOS', 'COMPSTATEINFO', 'DEFCONTENTMENU', 'ELEMDESC', 'EXP_DARWIN_LINK', 'EXP_SPECIAL_FOLDER', 'EXP_SZ_LINK', 'FUNCDESC', 'IDLDESC', 'MAPIINIT_0', 'NT_CONSOLE_PROPS', 'NT_FE_CONSOLE_PROPS', 'PROPSPEC', 'PyADSVALUE', 'PyADS_ATTR_INFO', 'PyADS_OBJECT_INFO', 'PyADS_SEARCHPREF_INFO', 'PyBIND_OPTS', 'PyCMINVOKECOMMANDINFO', 'PyDSBCAPS', 'PyDSBUFFERDESC', 'PyDSCAPS', 'PyDSCBCAPS', 'PyDSCBUFFERDESC', 'PyDSCCAPS', 'PyDSOP_FILTER_FLAGS', 'PyDSOP_SCOPE_INIT_INFO', 'PyDSOP_SCOPE_INIT_INFOs', 'PyDSOP_UPLEVEL_FILTER_FLAGS', 'PyFORMATETC', 'PyGFileOperationProgressSink', 'PyGSecurityInformation', 'PyIADesktopP2', 'PyIADs', 'PyIADsContainer', 'PyIADsUser', 'PyIActiveDesktop', 'PyIActiveDesktopP', 'PyIActiveScriptDebug', 'PyIActiveScriptError', 'PyIActiveScriptErrorDebug', 'PyIActiveScriptParseProcedure', 'PyIActiveScriptSite', 'PyIActiveScriptSiteDebug', 'PyIAddrBook', 'PyIApplicationDebugger', 'PyIApplicationDestinations', 'PyIApplicationDocumentLists', 'PyIAsyncOperation', 'PyIAttach', 'PyIBindCtx', 'PyIBrowserFrameOptions', 'PyICancelMethodCalls', 'PyICatInformation', 'PyICatRegister', 'PyICategoryProvider', 'PyIClassFactory', 'PyIClientSecurity', 'PyIColumnProvider', 'PyIConnectionPoint', 'PyIConnectionPointContainer', 'PyIContext', 'PyIContextMenu', 'PyICopyHookA', 'PyICopyHookW', 'PyICreateTypeInfo', 'PyICreateTypeLib', 'PyICreateTypeLib2', 'PyICurrentItem', 'PyICustomDestinationList', 'PyIDL', 'PyIDataObject', 'PyIDebugApplication', 'PyIDebugApplicationNode', 'PyIDebugApplicationNodeEvents', 'PyIDebugApplicationThread', 'PyIDebugCodeContext', 'PyIDebugDocument', 'PyIDebugDocumentContext', 'PyIDebugDocumentHelper', 'PyIDebugDocumentHost', 'PyIDebugDocumentInfo', 'PyIDebugDocumentProvider', 'PyIDebugDocumentText', 'PyIDebugDocumentTextAuthor', 'PyIDebugDocumentTextEvents', 'PyIDebugDocumentTextExternalAuthor', 'PyIDebugExpression', 'PyIDebugExpressionCallBack', 'PyIDebugExpressionContext', 'PyIDebugProperty', 'PyIDebugSessionProvider', 'PyIDebugStackFrame', 'PyIDebugStackFrameSniffer', 'PyIDebugStackFrameSnifferEx', 'PyIDebugSyncOperation', 'PyIDefaultExtractIconInit', 'PyIDirectSound', 'PyIDirectSoundBuffer', 'PyIDirectSoundCapture', 'PyIDirectSoundCaptureBuffer', 'PyIDirectSoundNotify', 'PyIDirectoryObject', 'PyIDirectorySearch', 'PyIDispatch', 'PyIDispatchEx', 'PyIDisplayItem', 'PyIDocHostUIHandler', 'PyIDropSource', 'PyIDropTarget', 'PyIDropTargetHelper', 'PyIDsObjectPicker', 'PyIEmptyVolumeCache', 'PyIEmptyVolumeCache2', 'PyIEmptyVolumeCacheCallBack', 'PyIEnumCATEGORYINFO', 'PyIEnumConnectionPoints', 'PyIEnumConnections', 'PyIEnumContextProps', 'PyIEnumDebugApplicationNodes', 'PyIEnumDebugCodeContexts', 'PyIEnumDebugExpressionContexts', 'PyIEnumDebugPropertyInfo', 'PyIEnumDebugStackFrames', 'PyIEnumExplorerCommand', 'PyIEnumFORMATETC', 'PyIEnumGUID', 'PyIEnumIDList', 'PyIEnumMoniker', 'PyIEnumObjects', 'PyIEnumRemoteDebugApplicationThreads', 'PyIEnumRemoteDebugApplications', 'PyIEnumResources', 'PyIEnumSTATPROPSETSTG', 'PyIEnumSTATPROPSTG', 'PyIEnumSTATSTG', 'PyIEnumShellItems', 'PyIEnumString', 'PyIErrorLog', 'PyIExplorerBrowser', 'PyIExplorerBrowserEvents', 'PyIExplorerCommand', 'PyIExplorerCommandProvider', 'PyIExplorerPaneVisibility', 'PyIExternalConnection', 'PyIExtractIcon', 'PyIExtractIconW', 'PyIExtractImage', 'PyIFileOperation', 'PyIIdentityName', 'PyIInitializeWithFile', 'PyIInitializeWithStream', 'PyIInputObject', 'PyIInternetBindInfo', 'PyIInternetPriority', 'PyIInternetProtocol', 'PyIInternetProtocolInfo', 'PyIInternetProtocolRoot', 'PyIInternetProtocolSink', 'PyIInternetSecurityManager', 'PyIKnownFolder', 'PyIKnownFolderManager', 'PyILockBytes', 'PyIMAPIContainer', 'PyIMAPIFolder', 'PyIMAPIProp', 'PyIMAPISession', 'PyIMAPIStatus', 'PyIMAPITable', 'PyIMachineDebugManager', 'PyIMachineDebugManagerEvents', 'PyIMessage', 'PyIMoniker', 'PyIMsgServiceAdmin', 'PyIMsgStore', 'PyINameSpaceTreeControl', 'PyINamedPropertyStore', 'PyIObjectArray', 'PyIObjectCollection', 'PyIObjectWithPropertyKey', 'PyIObjectWithSite', 'PyIOleClientSite', 'PyIOleCommandTarget', 'PyIOleControl', 'PyIOleControlSite', 'PyIOleInPlaceActiveObject', 'PyIOleInPlaceFrame', 'PyIOleInPlaceObject', 'PyIOleInPlaceSite', 'PyIOleInPlaceSiteEx', 'PyIOleInPlaceSiteWindowless', 'PyIOleInPlaceUIWindow', 'PyIOleObject', 'PyIOleWindow', 'PyIPersist', 'PyIPersistFile', 'PyIPersistFolder', 'PyIPersistFolder2', 'PyIPersistPropertyBag', 'PyIPersistSerializedPropStorage', 'PyIPersistStorage', 'PyIPersistStream', 'PyIPersistStreamInit', 'PyIProcessDebugManager', 'PyIProfAdmin', 'PyIPropertyBag', 'PyIPropertyChange', 'PyIPropertyChangeArray', 'PyIPropertyDescription', 'PyIPropertyDescriptionAliasInfo', 'PyIPropertyDescriptionList', 'PyIPropertyDescriptionSearchInfo', 'PyIPropertyEnumType', 'PyIPropertyEnumTypeList', 'PyIPropertySetStorage', 'PyIPropertyStorage', 'PyIPropertyStore', 'PyIPropertyStoreCache', 'PyIPropertyStoreCapabilities', 'PyIPropertySystem', 'PyIProvideClassInfo', 'PyIProvideClassInfo2', 'PyIProvideExpressionContexts', 'PyIProvideTaskPage', 'PyIQueryAssociations', 'PyIRelatedItem', 'PyIRemoteDebugApplication', 'PyIRemoteDebugApplicationEvents', 'PyIRemoteDebugApplicationThread', 'PyIRunningObjectTable', 'PyIScheduledWorkItem', 'PyIServerSecurity', 'PyIServiceProvider', 'PyIShellBrowser', 'PyIShellExtInit', 'PyIShellFolder', 'PyIShellFolder2', 'PyIShellIcon', 'PyIShellIconOverlay', 'PyIShellIconOverlayIdentifier', 'PyIShellIconOverlayManager', 'PyIShellItem', 'PyIShellItem2', 'PyIShellItemArray', 'PyIShellItemResources', 'PyIShellLibrary', 'PyIShellLink', 'PyIShellLinkDataList', 'PyIShellView', 'PyISpecifyPropertyPages', 'PyIStorage', 'PyIStream', 'PyITask', 'PyITaskScheduler', 'PyITaskTrigger', 'PyITaskbarList', 'PyITransferAdviseSink', 'PyITransferDestination', 'PyITransferMediumItem', 'PyITransferSource', 'PyITypeComp', 'PyITypeInfo', 'PyITypeLib', 'PyIUniformResourceLocator', 'PyIUnknown', 'PyIViewObject', 'PyIViewObject2', 'PyMAPINAMEIDArray', 'PyOLEMENUGROUPWIDTHS', 'PyPROPERTYKEY', 'PyPROPVARIANT', 'PySAndRestriction', 'PySBinaryArray', 'PySBitMaskRestriction', 'PySContentRestriction', 'PySExistRestriction', 'PySHELL_ITEM_RESOURCE', 'PySNotRestriction', 'PySOrRestriction', 'PySPropTagArray', 'PySPropValue', 'PySPropValueArray', 'PySPropertyRestriction', 'PySRestriction', 'PySRow', 'PySRowSet', 'PySSortOrderItem', 'PySSortOrderSet', 'PySTGMEDIUM', 'PyTASK_TRIGGER', 'RTF_WCSINFO', 'SHFILEINFO', 'SHFILEOPSTRUCT', 'SI_ACCESS', 'SI_INHERIT_TYPE', 'SI_OBJECT_INFO', 'STATSTG', 'TLIBATTR', 'TYPEATTR', 'TYPEDESC', 'VARDESC', 'CHARFORMAT', 'CREATESTRUCT', 'LV_COLUMN', 'LV_ITEM', 'PARAFORMAT', 'PyAssocCObject', 'PyAssocObject', 'PyCBitmap', 'PyCBrush', 'PyCButton', 'PyCCmdTarget', 'PyCCmdUI', 'PyCColorDialog', 'PyCComboBox', 'PyCCommonDialog', 'PyCControl', 'PyCControlBar', 'PyCCtrlView', 'PyCDC', 'PyCDialog', 'PyCDialogBar', 'PyCDocTemplate', 'PyCDockContext', 'PyCDocument', 'PyCEdit', 'PyCEditView', 'PyCFileDialog', 'PyCFont', 'PyCFontDialog', 'PyCFormView', 'PyCFrameWnd', 'PyCGdiObject', 'PyCImageList', 'PyCListBox', 'PyCListCtrl', 'PyCListView', 'PyCMDIChildWnd', 'PyCMDIFrameWnd', 'PyCMenu', 'PyCOleClientItem', 'PyCOleDialog', 'PyCOleDocument', 'PyCOleInsertDialog', 'PyCPrintDialog', 'PyCPrintInfo', 'PyCProgressCtrl', 'PyCPropertyPage', 'PyCPropertySheet', 'PyCRect', 'PyCRgn', 'PyCRichEditCtrl', 'PyCRichEditDoc', 'PyCRichEditDocTemplate', 'PyCRichEditView', 'PyCScrollView', 'PyCSliderCtrl', 'PyCSpinButtonCtrl', 'PyCSplitterWnd', 'PyCStatusBar', 'PyCStatusBarCtrl', 'PyCTabCtrl', 'PyCToolBar', 'PyCToolBarCtrl', 'PyCToolTipCtrl', 'PyCTreeCtrl', 'PyCTreeView', 'PyCView', 'PyCWinApp', 'PyCWinThread', 'PyCWnd', 'PyDDEConv', 'PyDDEServer', 'PyDDEStringItem', 'PyDDETopic', 'PyDLL', 'SCROLLINFO', 'TV_ITEM', 'EXTENSION_CONTROL_BLOCK', 'HSE_VERSION_INFO', 'HTTP_FILTER_AUTHENT', 'HTTP_FILTER_CONTEXT', 'HTTP_FILTER_LOG', 'HTTP_FILTER_PREPROC_HEADERS', 'HTTP_FILTER_RAW_DATA', 'HTTP_FILTER_URL_MAP', 'HTTP_FILTER_VERSION'] +from typing import * + +class COMMTIMEOUTS(object): + """A tuple representing a COMMTIMEOUTS structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class CopyProgressRoutine(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class DOCINFO(object): + """A tuple of information representing a DOCINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def DocName(self)->'Union[str]': + """Name of document""" + pass + + + @property + def Output(self)->'Union[str]': + """Name of output file when printing to file. Use None for normal printing.""" + pass + + + @property + def DataType(self)->'Union[str]': + """Type of data to be sent to printer, eg RAW, EMF, TEXT. Use None for printer default.""" + pass + + + @property + def Type(self)->'Any': + """Flag specifying mode of operation. Can be DI_APPBANDING, DI_ROPS_READ_DESTINATION, or 0""" + pass + + +class ExportCallback(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class FORM_INFO_1(object): + """A dictionary containing FORM_INFO_1W data""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'Any': + """FORM_USER, FORM_BUILTIN, or FORM_PRINTER""" + pass + + + @property + def Name(self)->'str': + """Name of form""" + pass + + + @property + def Size(self)->'Any': + """A dictionary representing a SIZEL structure {'cx':int,'cy':int}""" + pass + + + @property + def ImageableArea(self)->'Any': + """A dictionary representing a RECTL structure {'left':int, 'top':int, 'right':int, 'bottom':int}""" + pass + + +class ImportCallback(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LARGE_INTEGER(object): + """A Python object used wherever a COM LARGE_INTEGER is used.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class NCB(object): + """A Python object that encapsulates a Win32 NCB structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Command(self)->'Any': + """""" + pass + + + @property + def Retcode(self)->'Any': + """""" + pass + + + @property + def Lsn(self)->'Any': + """""" + pass + + + @property + def Num(self)->'Any': + """""" + pass + + + @property + def Bufflen(self)->'Any': + """read-only""" + pass + + + @property + def Callname(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Name(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Rto(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Sto(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Lana_num(self)->'Any': + """""" + pass + + + @property + def Cmd_cplt(self)->'Any': + """""" + pass + + + @property + def Event(self)->'Any': + """""" + pass + + + @property + def Post(self)->'Any': + """""" + pass + + +class PRINTER_DEFAULTS(object): + """A dictionary representing a PRINTER_DEFAULTS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def pDatatype(self)->'str': + """Data type to be used for print jobs, see win32print::EnumPrintProcessorDatatypes, optional, can be None""" + pass + + + @property + def pDevMode(self)->'PyDEVMODE': + """A PyDEVMODE that specifies default printer parameters, optional, can be None""" + pass + + + @property + def DesiredAccess(self)->'Any': + """An ACCESS_MASK specifying what level of access is needed, eg PRINTER_ACCESS_ADMINISTER, PRINTER_ACCESS_USE""" + pass + + +class PyACL(object): + """A Python object, representing a ACL structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Initialize the ACL. + +Args: + + + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the ACL is valid (IsValidAcl) + +Args: + + + +Returns: + + None + + """ + pass + + + def AddAccessAllowedAce(self,revision:'Any',access:'Any',sid:'PySID',access1:'Any',sid1:'Any') -> 'None': + """ + Adds an access-allowed ACE to an DACL object. The access is granted to a + +specified SID. + +Args: + + revision(Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. + access(Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters + access1(Any):Specifies the mask of access rights to be denied to the specified SID. + sid1(Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. + +Returns: + + None + + """ + pass + + + def AddAccessAllowedAceEx(self,revision:'Any',aceflags:'Any',access:'Any',sid:'PySID') -> 'None': + """ + Add access allowed ACE to an ACL with ACE flags (Requires Win2k or higher) + +Args: + + revision(Any):Must be at least ACL_REVISION_DS + aceflags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + access(Any):Specifies the mask of access rights to be granted to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being granted access. + +Returns: + + None + + """ + pass + + + def AddAccessAllowedObjectAce(self,AceRevision:'Any',AceFlags:'Any',AccessMask:'Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID') -> 'None': + """ + Adds an ACCESS_ALLOWED_OBJECT_ACE to the ACL + +Args: + + AceRevision(Any):Must be at least ACL_REVISION_DS + AceFlags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + AccessMask(Any):Specifies the mask of access rights to be granted to the specified SID + ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None + InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None + sid(PySID):A SID object representing a user, group, or logon account being granted access. + +Returns: + + None + + """ + pass + + + def AddAccessDeniedAce(self,revision:'Any',access:'Any',sid:'PySID',access1:'Any',sid1:'Any') -> 'None': + """ + Adds an access-denied ACE to an ACL object. The access is denied to a specified + +SID. + +Args: + + revision(Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. + access(Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters + access1(Any):Specifies the mask of access rights to be denied to the specified SID. + sid1(Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. + +Returns: + + None + + """ + pass + + + def AddAccessDeniedAceEx(self,revision:'Any',aceflags:'Any',access:'Any',sid:'PySID') -> 'None': + """ + Add access denied ACE to an ACL with ACE flags (Requires Win2k or higher) + +Args: + + revision(Any):Must be at least ACL_REVISION_DS + aceflags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + access(Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access. + +Returns: + + None + + """ + pass + + + def AddMandatoryAce(self,AceRevision:'Any',AceFlags:'Any',MandatoryPolicy:'Any',LabelSid:'PySID') -> 'None': + """ + Adds a mandatory integrity level ACE to a SACL + +Args: + + AceRevision(Any):ACL_REVISION or ACL_REVISION_DS + AceFlags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + MandatoryPolicy(Any):Access policy for processes with lower integrity level, combination of SYSTEM_MANDATORY_LABEL_* flags + LabelSid(PySID):Integrity level SID. This can be created using CreateWellKnownSid with Win*LabelSid. Also can be constructed manually using SECURITY_MANDATORY_LABEL_AUTHORITY and a SECURITY_MANDATORY_*_RID + +Returns: + + None + + """ + pass + + + def AddAuditAccessAce(self,dwAceRevision:'Any',dwAccessMask:'Any',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': + """ + Adds an audit ACE to a Sacl + +Args: + + dwAceRevision(Any):Revision of ACL: Pre-Win2k, must be ACL_REVISION. Win2K on up, can also be ACL_REVISION_DS + dwAccessMask(Any):Bitmask of access types to be audited + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def AddAuditAccessAceEx(self,dwAceRevision:'Any',AceFlags:'Any',dwAccessMask:'Any',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': + """ + Adds an audit ACE to an Sacl, includes ace flags + +Args: + + dwAceRevision(Any):Revision of ACL: Must be at least ACL_REVISION_DS + AceFlags(Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE + dwAccessMask(Any):Bitmask of access types to be audited + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def AddAuditAccessObjectAce(self,dwAceRevision:'Any',AceFlags:'Any',dwAccessMask:'Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': + """ + Adds an audit ACE for an object type identified by GUID + +Args: + + dwAceRevision(Any):Revision of ACL: Must be at least ACL_REVISION_DS + AceFlags(Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE + dwAccessMask(Any):Bitmask of access types to be audited + ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None + InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def GetAclSize(self,) -> 'Any': + """ + Returns the storage size of the ACL. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAclRevision(self,) -> 'Any': + """ + Returns revision of the ACL. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAceCount(self,) -> 'Any': + """ + Returns the number of ACEs in the ACL. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAce(self,index:'Any') -> 'Any': + """ + Gets an Ace from the ACL + +Args: + + index(Any):Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned as a tuple of:Items[0] (int, int) : aceType, AceFlags[1] int : Mask[2] PySID : sidObject ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) are returned as a tuple:[0] (int, int) : aceType, AceFlags[1] int : mask[2] PyIID : ObjectType[3] PyIID : InheritedObjectType[4] PySID : sidFor details see the API documentation. + +Returns: + + Any:Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned + +as a tuple of: +Items[0] (int, int) : aceType, AceFlags + +[1] int : Mask + +[2] PySID : sid +Object ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) + +are returned as a tuple: +[0] (int, int) : aceType, AceFlags + +[1] int : mask + +[2] PyIID : ObjectType + +[3] PyIID : InheritedObjectType + +[4] PySID : sid +For details see the API documentation. + + + """ + pass + + + def DeleteAce(self,index:'Any') -> 'None': + """ + Deletes specified Ace from an ACL. + +Args: + + index(Any):Zero-based index of the ACE to delete. + +Returns: + + None + + """ + pass + + + def GetEffectiveRightsFromAcl(self,trustee:'PyTRUSTEE') -> 'Any': + """ + Return access rights (ACCESS_MASK) that the ACL grants to + +specified trustee + +Args: + + trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structure + +Returns: + + Any + + """ + pass + + + def GetAuditedPermissionsFromAcl(self,trustee:'PyTRUSTEE') -> 'Tuple[Any, Any]': + """ + Return types of access for + +which ACL will generate an audit event for specified trustee + +Args: + + trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structureCommentsThis function is known to return the success and failure access masks in the the wrong order on Windows 2000 service pack 4. Problem has been reported to Microsoft. + +Returns: + + Tuple[Any, Any] + + """ + pass + + +class PyBITMAP(object): + """A Python object, representing an PyBITMAP structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bmType(self)->'int': + """""" + pass + + + @property + def bmWidth(self)->'int': + """""" + pass + + + @property + def bmHeight(self)->'int': + """""" + pass + + + @property + def bmWidthBytes(self)->'int': + """""" + pass + + + @property + def bmPlanes(self)->'int': + """""" + pass + + +class PyBLENDFUNCTION(object): + """Tuple of four small ints used to fill a BLENDFUNCTION struct + +Each int must fit in a byte (0-255).""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCEHANDLE(object): + """A Python object, representing a remote Windows CE handle""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERTSTORE(object): + """Handle to a certificate store""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCERTSTORE(self)->'Any': + """Integer handle""" + pass + + + def CertCloseStore(self,Flags:'Any'=0) -> 'None': + """ + Closes the certificate store + +Args: + + Flags(Any):Combination of CERT_CLOSE_*_FLAG flags + +Returns: + + None + + """ + pass + + + def CertControlStore(self,Flags:'Any',CtrlType:'Any',CtrlPara:'int') -> 'None': + """ + Controls sychronization of the certificate store + +Args: + + Flags(Any):One of the CERT_STORE_CTRL_*_FLAG flags + CtrlType(Any):One of the CERT_STORE_CTRL_* flags + CtrlPara(int):Event handle, can be None (not used with CERT_STORE_CTRL_COMMIT) + +Returns: + + None + + """ + pass + + + def CertEnumCertificatesInStore(self,) -> 'List[PyCERT_CONTEXT]': + """ + Lists all certificates in the store + +Args: + + + +Returns: + + List[PyCERT_CONTEXT] + + """ + pass + + + def CertEnumCTLsInStore(self,) -> 'List[PyCTL_CONTEXT]': + """ + Finds all Certificate Trust Lists in store + +Args: + + + +Returns: + + List[PyCTL_CONTEXT] + + """ + pass + + + def CertSaveStore(self,MsgAndCertEncodingType:'Any',SaveAs:'Any',SaveTo:'Any',SaveToPara:'Union[str, int]',Flags:'Any'=0) -> 'None': + """ + Serializes the store to memory or a file + +Args: + + MsgAndCertEncodingType(Any):Only used when saveas is CERT_STORE_SAVE_AS_PKCS7 - usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING + SaveAs(Any):One of the CERT_STORE_SAVE_AS_* constants + SaveTo(Any):One of the CERT_STORE_SAVE_TO_* constants (CERT_STORE_SAVE_TO_MEMORY not supported yet) + SaveToPara(Union[str, int]):File name or open file handle depending on SaveTo parm + Flags(Any):Reserved, use 0 + +Returns: + + None + + """ + pass + + + def CertAddEncodedCertificateToStore(self,CertEncodingType:'Any',CertEncoded:'Any',AddDisposition:'Any') -> 'PyCERT_CONTEXT': + """ + Imports an encoded certificate into the + +store + +Args: + + CertEncodingType(Any):Usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING + CertEncoded(Any):Data containing a serialized certificate + AddDisposition(Any):Combination of CERT_STORE_ADD_* flags + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCertificateContextToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'Any') -> 'PyCERT_CONTEXT': + """ + Adds a certificate context to the store + +Args: + + CertContext(PyCERT_CONTEXT):Certificate context to be added + AddDisposition(Any):CERT_STORE_ADD_* constant + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCertificateLinkToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'Any') -> 'PyCERT_CONTEXT': + """ + Adds a link to a cert in another store + +Args: + + CertContext(PyCERT_CONTEXT):Certificate context to be linked + AddDisposition(Any):One of the CERT_STORE_ADD_* values + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCTLContextToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'Any') -> 'PyCTL_CONTEXT': + """ + Adds a certificate trust list to the store + +Args: + + CtlContext(PyCTL_CONTEXT):CTL to be added + AddDisposition(Any):CERT_STORE_ADD_* constant + +Returns: + + PyCTL_CONTEXT + + """ + pass + + + def CertAddCTLLinkToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'Any') -> 'PyCTL_CONTEXT': + """ + Adds a link to a CTL in another store + +Args: + + CtlContext(PyCTL_CONTEXT):CTL to be linked + AddDisposition(Any):One of the CERT_STORE_ADD_* values + +Returns: + + PyCTL_CONTEXT + + """ + pass + + + def CertAddStoreToCollection(self,SiblingStore:'PyCERTSTORE',UpdateFlag:'Any'=0,Priority:'Any'=0) -> 'None': + """ + Adds a sibling store to a store collection + +Args: + + SiblingStore(PyCERTSTORE):Store to be added to the collection + UpdateFlag(Any):Can be CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG to enable changes to persist + Priority(Any):Determines order in which store are searched and updatedCommentsA collection store is created by using cryptoapi::CertOpenStore with CERT_STORE_PROV_COLLECTION + +Returns: + + None + + """ + pass + + + def CertRemoveStoreFromCollection(self,SiblingStore:'PyCERTSTORE') -> 'None': + """ + Removes a sibling store from a collection + +Args: + + SiblingStore(PyCERTSTORE):Store to be removed from the collection + +Returns: + + None + + """ + pass + + + def PFXExportCertStoreEx(self,Flags:'Any',Password:'Any'=None) -> 'Any': + """ + Exports certificates and associated private keys in PKCS#12 format + +Args: + + Flags(Any):Options to be used while exporting + Password(Any):Passphrase to be used to encrypt the output + +Returns: + + Any + + """ + pass + + +class PyCERT_ALT_NAME_ENTRY(object): + """Represented as a 2-tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_ALT_NAME_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_AUTHORITY_KEY_ID_INFO(object): + """Dict containing the identity of a CA""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def KeyId(self)->'Any': + """Unique identifier of private key, usually a hash""" + pass + + + @property + def CertIssuer(self)->'Any': + """Encoded DN of the Certificate Authority. Decode using X509_UNICODE_NAME""" + pass + + + @property + def CertSerialNumber(self)->'Any': + """Serial nbr of the CA's signing certificate""" + pass + + +class PyCERT_BASIC_CONSTRAINTS2_INFO(object): + """Dict representing a CERT_BASIC_CONSTRAINTS2_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def fCA(self)->'Any': + """Indicates if cert represents a certificate authority""" + pass + + + @property + def fPathLenConstraint(self)->'Any': + """Indicates if PathLenConstraint member is used""" + pass + + + @property + def PathLenConstraint(self)->'Any': + """Limits number of intermediate CA's between root CA and end user""" + pass + + +class PyCERT_BASIC_CONSTRAINTS_INFO(object): + """Dict representing a CERT_BASIC_CONSTRAINTS_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SubjectType(self)->'PyCRYPT_BIT_BLOB': + """Contains a combination of CERT_CA_SUBJECT_FLAG,CERT_END_ENTITY_SUBJECT_FLAG""" + pass + + + @property + def fPathLenConstraint(self)->'Any': + """Indicates if PathLenConstraint member is used""" + pass + + + @property + def PathLenConstraint(self)->'Any': + """Limits number of intermediate CA's between root CA and end user""" + pass + + + @property + def SubtreesConstraint(self)->'Any': + """Sequence of encoded name blobs""" + pass + + +class PyCERT_CONTEXT(object): + """Handle to a certificate context""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HANDLE(self)->'Any': + """Pointer to CERT_CONTEXT struct""" + pass + + + @property + def CertStore(self)->'PyCERTSTORE': + """Handle to the certificate store that contains this certificate""" + pass + + + @property + def CertEncoded(self)->'Any': + """Content of the certificate as encoded bytes""" + pass + + + @property + def CertEncodingType(self)->'Any': + """Method used to encode the certifcate, usually X509_ASN_ENCODING or PKCS_7_ASN_ENCODING""" + pass + + + @property + def Version(self)->'Any': + """One of the CERT_V* values""" + pass + + + @property + def Subject(self)->'str': + """Encoded CERT_NAME_INFO struct containing the subject name. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_UNICODE_NAME, or formatted using cryptoapi::CertNameToStr""" + pass + + + @property + def Issuer(self)->'str': + """Certificate Authority that issued certificate as encoded CERT_NAME_INFO. Use cryptoapi::CryptDecodeObjectEx to decode into individual components, or cryptoapi::CertNameToStr to return a single formatted string""" + pass + + + @property + def NotBefore(self)->'PyTime': + """Beginning of certificate's period of validity""" + pass + + + @property + def NotAfter(self)->'PyTime': + """End of certificate's period of validity""" + pass + + + @property + def SignatureAlgorithm(self)->'Any': + """Object id of the certifcate's signature algorithm""" + pass + + + @property + def Extension(self)->'Tuple[PyCERT_EXTENSION, ...]': + """Sequence of CERT_EXTENSION dicts containing certificate's extensions""" + pass + + + @property + def SubjectPublicKeyInfo(self)->'PyCERT_PUBLIC_KEY_INFO': + """Encoded public key of certificate""" + pass + + + @property + def SerialNumber(self)->'Any': + """Serial number assigned by the issuer""" + pass + + + def CertFreeCertificateContext(self,) -> 'None': + """ + Frees the certificate context + +Args: + + + +Returns: + + None + + """ + pass + + + def CertEnumCertificateContextProperties(self,) -> 'List[Any]': + """ + Lists property ids for the certificate + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def CryptAcquireCertificatePrivateKey(self,Flags:'Any'=0) -> 'Tuple[Any, PyCRYPTPROV]': + """ + Retrieves the private key associated + +with the certificate + +Args: + + Flags(Any):Combination of CRYPT_ACQUIRE_*_FLAG constantsCommentsOnly the owner of the certificate can use this methodReturn ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key + +Returns: + + Tuple[Any, PyCRYPTPROV]:Combination of CRYPT_ACQUIRE_*_FLAG constants +Comments + +Only the owner of the certificate can use this method +Return ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key + + + """ + pass + + + def CertGetIntendedKeyUsage(self,) -> 'Any': + """ + Returns the intended key usage from the certificate extensions + +(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) + +Args: + + + +Returns: + + Any:PyCERT_CONTEXT.CertGetIntendedKeyUsage + +int = CertGetIntendedKeyUsage()Returns the intended key usage from the certificate extensions + +(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) +Return ValueReturns a combination of CERT_*_KEY_USAGE values + + + """ + pass + + + def CertGetEnhancedKeyUsage(self,Flags:'Any'=0) -> 'Any': + """ + Finds the enhanced key usage property and/or extension for the + +certificate + +Args: + + Flags(Any):CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0Return ValueReturns a sequence of usage OIDs + +Returns: + + Any:CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, + +CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0 +Return ValueReturns a sequence of usage OIDs + + + """ + pass + + + def CertSerializeCertificateStoreElement(self,Flags:'Any'=0) -> 'str': + """ + Serializes the certificate and its properties + +Args: + + Flags(Any):Reserved, use only 0 if passed in + +Returns: + + str + + """ + pass + + + def CertVerifySubjectCertificateContext(self,Issuer:'PyCERT_CONTEXT',Flags:'Any') -> 'Any': + """ + Checks the validity of the certificate + +Args: + + Issuer(PyCERT_CONTEXT):Certificate of authority that issued the certificate + Flags(Any):Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. + +Returns: + + Any:Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and + +CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. + + + """ + pass + + + def CertDeleteCertificateFromStore(self,) -> 'None': + """ + Removes the certificate from its store + +Args: + + + +Returns: + + None + + """ + pass + + + def CertGetCertificateContextProperty(self,PropId:'Any') -> 'Any': + """ + Retrieves the specified property from the + +certificate + +Args: + + PropId(Any):One of the CERT_*_PROP_ID constantsPropIdReturned valueCERT_ARCHIVED_PROP_IDBooleanCERT_DATE_STAMP_PROP_IDPyTimeCERT_ACCESS_STATE_PROP_IDintCERT_KEY_SPEC_PROP_IDintCERT_DESCRIPTION_PROP_IDUnicodeCERT_FRIENDLY_NAME_PROP_IDUnicodeCERT_PVK_FILE_PROP_IDUnicodeCERT_AUTO_ENROLL_PROP_IDUnicodeCERT_HASH_PROP_IDString containing a hashCERT_SHA1_HASH_PROP_IDString containing a hashCERT_MD5_HASH_PROP_IDString containing a hashCERT_SIGNATURE_HASH_PROP_IDString containing a hashCERT_KEY_IDENTIFIER_PROP_IDString containing a hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hashCERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROVCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and CERT_ENHKEY_USAGE are identical)CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_ENHANCED_KEY_USAGECERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dictCERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT structCERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx with szOID_NEXT_UPDATE_LOCATIONReturn ValueType of object returned is dependent on the property id requested. + +Returns: + + Any:One of the CERT_*_PROP_ID constants + + +PropId + + +Returned value + + + +CERT_ARCHIVED_PROP_IDBoolean +CERT_DATE_STAMP_PROP_IDPyTime +CERT_ACCESS_STATE_PROP_IDint +CERT_KEY_SPEC_PROP_IDint +CERT_DESCRIPTION_PROP_IDUnicode +CERT_FRIENDLY_NAME_PROP_IDUnicode +CERT_PVK_FILE_PROP_IDUnicode +CERT_AUTO_ENROLL_PROP_IDUnicode +CERT_HASH_PROP_IDString containing a hash +CERT_SHA1_HASH_PROP_IDString containing a hash +CERT_MD5_HASH_PROP_IDString containing a hash +CERT_SIGNATURE_HASH_PROP_IDString containing a hash +CERT_KEY_IDENTIFIER_PROP_IDString containing a hash +CERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hash +CERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROV +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString + +containing a hash +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString + +containing a hash +CERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and + +CERT_ENHKEY_USAGE are identical) +CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx + + + + + +with X509_ENHANCED_KEY_USAGE +CERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dict +CERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT struct +CERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx + + + + with szOID_NEXT_UPDATE_LOCATION +Return ValueType of object returned is dependent on the property id requested. + + + """ + pass + + + def CertSetCertificateContextProperty(self,PropId:'Any',Data:'Any',Flags:'Any'=0) -> 'None': + """ + Sets a property for a certificate + +Args: + + PropId(Any):Id of property to be set, CERT_*_PROP_ID + Data(Any):The value to be set for the property. Type is dependent on PropId. Use None to delete a property. + Flags(Any):Combination of CERT_SET_* flagsPropIdType of inputCERT_ARCHIVED_PROP_IDNone causes Archived flag to be cleared, any other causes it to be set no actual data, non-NULL pvData indicates presence of flagCERT_DATE_STAMP_PROP_IDPyTime specifying when cert was added to storeCERT_DESCRIPTION_PROP_IDUnicode stringCERT_FRIENDLY_NAME_PROP_IDUnicode stringCERT_PVK_FILE_PROP_IDUnicode stringCERT_AUTO_ENROLL_PROP_IDUnicode stringCERT_KEY_SPEC_PROP_IDInt, usually AT_KEYEXCHANGE or AT_SIGNATURECERT_HASH_PROP_IDString containing the hashCERT_SHA1_HASH_PROP_IDString containing the hashCERT_MD5_HASH_PROP_IDString containingg the hashCERT_SIGNATURE_HASH_PROP_IDString containing the hashCERT_KEY_IDENTIFIER_PROP_IDString containing the key idCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing the hashCERT_RENEWAL_PROP_IDString containing the hashCERT_ENHKEY_USAGE_PROP_IDString containing an encoded PyCTL_USAGE. Use cryptoapi::CryptEncodeObjectEx with X509_ENHANCED_KEY_USAGE.CERT_CTL_USAGE_PROP_IDSame as CERT_ENHKEY_USAGE_PROP_ID + +Returns: + + None + + """ + pass + + +class PyCERT_EXTENSION(object): + """Dict containing a certificate extension""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'Any': + """The OID identifying the type of extension""" + pass + + + @property + def Critical(self)->'Any': + """If true, any contraints or limits contained in the extension should be considered absolute""" + pass + + + @property + def Value(self)->'Any': + """Binary string containing ASN encoded data. To interpret or display extension data, see cryptoapi::CryptDecodeObjectEx and cryptoapi::CryptFormatObject.""" + pass + + +class PyCERT_KEY_ATTRIBUTES_INFO(object): + """Dict representing a CERT_KEY_ATTRIBUTES_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def KeyId(self)->'Any': + """Usually a hash that uniquely identifies the key""" + pass + + + @property + def IntendedKeyUsage(self)->'PyCRYPT_BIT_BLOB': + """Contains a byte with CERT_*_KEY_USAGE flags""" + pass + + + @property + def PrivateKeyUsagePeriod(self)->'Any': + """Private key's begin and end effective dates, may be None""" + pass + + +class PyCERT_NAME_INFO(object): + """Sequence of CERT_RDN's""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_NAME_VALUE(object): + """Dict containing type (CERT_RDN_*) and a unicode string""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_OTHER_NAME(object): + """Dict containing {ObjId, Value}. + +ObjId is one of the string object id's identifying the type of name. + +Value is a binary string containing an encoded CERT_NAME_VALUE that can be decoded + +using X509_UNICODE_NAME_VALUE to return the actual unicode string""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_POLICY_INFO(object): + """Dict containing a certificate policy""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def PolicyIdentifier(self)->'Any': + """OID identifying the policy""" + pass + + + @property + def PolicyQualifier(self)->'Any': + """Sequence of CERT_POLICY_QUALIFIER dicts""" + pass + + +class PyCERT_PUBLIC_KEY_INFO(object): + """Dict containing an exported public key""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Algorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Dict containing OID of the public key algorithm""" + pass + + + @property + def PublicKey(self)->'PyCRYPT_BIT_BLOB': + """Dict containing the encoded public key""" + pass + + +class PyCOMSTAT(object): + """A Python object, representing an COMSTAT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def cbInQue(self)->'int': + """Specifies the number of bytes received by the serial provider but not yet read by a win32file::ReadFile operation""" + pass + + + @property + def cbOutQue(self)->'int': + """Specifies the number of bytes of user data remaining to be transmitted for all write operations. This value will be zero for a nonoverlapped write.""" + pass + + + @property + def fCtsHold(self)->'int': + """Specifies whether transmission is waiting for the CTS (clear-to-send) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fDsrHold(self)->'int': + """Specifies whether transmission is waiting for the DSR (data-set-ready) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fRlsdHold(self)->'int': + """Specifies whether transmission is waiting for the RLSD (receive-line-signal-detect) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fXoffHold(self)->'int': + """Specifies whether transmission is waiting because the XOFF character was received. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fXoffSent(self)->'int': + """Specifies whether transmission is waiting because the XOFF character was transmitted. If this member is TRUE, transmission is waiting. Transmission halts when the XOFF character is transmitted to a system that takes the next character as XON, regardless of the actual character.""" + pass + + + @property + def fEof(self)->'int': + """Specifies whether the end-of-file (EOF) character has been received. If this member is TRUE, the EOF character has been received.""" + pass + + + @property + def fTxim(self)->'int': + """If this member is TRUE, there is a character queued for transmission that has come to the communications device by way of the TransmitCommChar function. The communications device transmits such a character ahead of other characters in the device's output buffer.""" + pass + + + @property + def fReserved(self)->'int': + """Reserved; do not use.""" + pass + + +class PyCOORD(object): + """Wrapper for a COORD struct. Create using PyCOORDType(X,Y)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def X(self)->'Any': + """Horizontal coordinate""" + pass + + + @property + def Y(self)->'Any': + """Vertical coordinate""" + pass + + +class PyCREDENTIAL(object): + """A dictionary containing information for a CREDENTIAL struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'Any': + """Combination of CRED_FLAGS_PROMPT_NOW, CRED_FLAGS_USERNAME_TARGET""" + pass + + + @property + def Type(self)->'Any': + """Type of credential, one of CRED_TYPE_* values""" + pass + + + @property + def TargetName(self)->'str': + """Target of credential, can end with * for wildcard matching""" + pass + + + @property + def Comment(self)->'str': + """Descriptive text""" + pass + + + @property + def LastWritten(self)->'PyTime': + """Modification time, ignored on input""" + pass + + + @property + def CredentialBlob(self)->'str': + """Contains password for username credential, or PIN for certificate credential. This member is write-only.""" + pass + + + @property + def Persist(self)->'Any': + """Specifies scope of persistence, one of CRED_PERSIST_* values""" + pass + + + @property + def Attributes(self)->'Any': + """Tuple of PyCREDENTIAL_ATTRIBUTE dicts containing application-specific data, can be None""" + pass + + + @property + def TargetAlias(self)->'str': + """Alias for TargetName, only valid with CRED_TYPE_GENERIC""" + pass + + + @property + def UserName(self)->'str': + """User to be authenticated by target. Can be of the form username@domain or domain\\username. For CRED_TYPE_DOMAIN_CERTIFICATE, use win32cred::CredMarshalCredential to marshal the SHA1 hash of user's certficate""" + pass + + +class PyCREDENTIAL_ATTRIBUTE(object): + """A dictionary containing information for a CREDENTIAL_ATTRIBUTE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Keyword(self)->'str': + """Attribute name, at most CRED_MAX_STRING_LENGTH chars""" + pass + + + @property + def Flags(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Value(self)->'Any': + """Attribute value, at most CRED_MAX_VALUE_SIZE bytes. Unicode objects are treated as raw bytes.""" + pass + + +class PyCREDENTIAL_TARGET_INFORMATION(object): + """A dictionary representing a CREDENTIAL_TARGET_INFORMATION struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def TargetName(self)->'str': + """Target of credentials""" + pass + + + @property + def NetbiosServerName(self)->'str': + """""" + pass + + + @property + def DnsServerName(self)->'str': + """""" + pass + + + @property + def NetbiosDomainName(self)->'str': + """""" + pass + + + @property + def DnsDomainName(self)->'str': + """""" + pass + + + @property + def DnsTreeName(self)->'str': + """""" + pass + + + @property + def PackageName(self)->'str': + """Name of security package which mapped TargetName""" + pass + + + @property + def Flags(self)->'Any': + """CRED_TI_* flags""" + pass + + + @property + def CredTypes(self)->'Tuple[Any, ...]': + """Tuple of CRED_TYPE_* values indicating which types of credentials are acceptable to target""" + pass + + +class PyCREDUI_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Parent(self)->'int': + """Handle to parent window, can be None""" + pass + + + @property + def MessageText(self)->'str': + """Message to appear in dialog""" + pass + + + @property + def CaptionText(self)->'str': + """Title of the dialog window""" + pass + + + @property + def Banner(self)->'int': + """Handle to a bitmap to be displayed""" + pass + + +class PyCRYPTHASH(object): + """Handle to a cryptographic hash""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CryptDestroyHash(self,) -> 'None': + """ + Frees the hash object + +Args: + + + +Returns: + + None + + """ + pass + + + def CryptDuplicateHash(self,Flags:'Any'=0) -> 'PyCRYPTHASH': + """ + Clones the hash object + +Args: + + Flags(Any):Reserved, use 0 if passed + +Returns: + + PyCRYPTHASH + + """ + pass + + + def CryptHashData(self,Data:'str',Flags:'Any'=0) -> 'None': + """ + Adds data to the hash + +Args: + + Data(str):Data to be hashed + Flags(Any):CRYPT_USERDATA or 0CommentsIf Flags is CRYPT_USERDATA, provider is expected to prompt user to enter data. MSDN says that MS CSPs ignore this flag + +Returns: + + None + + """ + pass + + + def CryptHashSessionKey(self,Key:'PyCRYPTKEY',Flags:'Any'=0) -> 'None': + """ + Hashes a session key + +Args: + + Key(PyCRYPTKEY):The session key to be hashed + Flags(Any):CRYPT_LITTLE_ENDIAN or 0 + +Returns: + + None + + """ + pass + + + def CryptSignHash(self,KeySpec:'Any',Flags:'Any'=0) -> 'str': + """ + Signs the hash + +Args: + + KeySpec(Any):The key to be used to sign the hash, AT_KEYEXCHANGE,AT_SIGNATURE + Flags(Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0CommentsThis methods signs only the hash, not the data that the hash represents + +Returns: + + str + + """ + pass + + + def CryptVerifySignature(self,Signature:'str',PubKey:'PyCRYPTKEY',Flags:'Any'=0) -> 'None': + """ + Verifies that a signature matches hashed data + +Args: + + Signature(str):Signature data to verify + PubKey(PyCRYPTKEY):Public key of signer + Flags(Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0 + +Returns: + + None + + """ + pass + + + def CryptGetHashParam(self,Param:'Any',Flags:'Any'=0) -> 'Union[Any]': + """ + Retrieves the specified attribute of the hash + +Args: + + Param(Any):The parameter to retrieve: HP_ALGID, HP_HASHSIZE, or HP_HASHVAL + Flags(Any):Reserved, use 0 if passed inCommentsAfter this method has been called, no more data can be hashedReturn ValueType of returned object is dependent on the Param passed in + +Returns: + + Union[Any]:Reserved, use 0 if passed in +Comments + +After this method has been called, no more data can be hashed +Return ValueType of returned object is dependent on the Param passed in + + + """ + pass + + +class PyCRYPTKEY(object): + """Handle to a cryptographic key""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCRYPTPROV(self)->'Any': + """CSP used by the key""" + pass + + + @property + def HCRYPTKEY(self)->'Any': + """Plain integer handle to the key""" + pass + + + def CryptDestroyKey(self,) -> 'None': + """ + Releases the handle to the key (does not delete permanent keys) + +Args: + + + +Returns: + + None + + """ + pass + + + def CryptExportKey(self,ExpKey:'PyCRYPTKEY',BlobType:'Any',Flags:'Any'=0) -> 'Any': + """ + Exports key or key pair as an encrypted blob + +Args: + + ExpKey(PyCRYPTKEY):Public key or session key of destination user. Use None if exporting a PUBLICKEYBLOB + BlobType(Any):One of OPAQUEKEYBLOB,PRIVATEKEYBLOB,PUBLICKEYBLOB,SIMPLEBLOB,PLAINTEXTKEYBLOB,SYMMETRICWRAPKEYBLOB + Flags(Any):Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey + +Returns: + + Any:Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0 +Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey + + + """ + pass + + + def CryptGetKeyParam(self,Param:'Any',Flags:'Any'=0) -> 'Any': + """ + Retrieves key parameters + +Args: + + Param(Any):One of the KP_* constants + Flags(Any):Reserved, use only 0Return ValueType of returned object is dependent on the requested attribute + +Returns: + + Any:Reserved, use only 0 +Return ValueType of returned object is dependent on the requested attribute + + + """ + pass + + + def CryptDuplicateKey(self,Reserved:'Any'=0,Flags:'Any'=0) -> 'PyCRYPTKEY': + """ + Creates an independent copy of the key + +Args: + + Reserved(Any):Use 0 if passed in + Flags(Any):Also reserved, use 0 + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptEncrypt(self,Final:'Any',Data:'Any',Hash:'PyCRYPTHASH'=None,Flags:'Any'=0) -> 'Any': + """ + Encrypts and optionally hashes data + +Args: + + Final(Any):Boolean, use True if this is final encryption operation + Data(Any):Data to be encrypted + Hash(PyCRYPTHASH):Hash to be updated with data passed in, can be None + Flags(Any):Reserved, use 0 if passed in + +Returns: + + Any + + """ + pass + + + def CryptDecrypt(self,Final:'Any',Data:'Any',Hash:'PyCRYPTHASH'=None,Flags:'Any'=0) -> 'Any': + """ + Decrypts data + +Args: + + Final(Any):Boolean, use True is this is last (or only) operation + Data(Any):Data to be decrypted + Hash(PyCRYPTHASH):Hash to be used in signature verification, can be None + Flags(Any):Reserved, use only 0 + +Returns: + + Any + + """ + pass + + +class PyCRYPTMSG(object): + """Wrapper for a cryptographic message handle""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCRYPTMSG(self)->'Any': + """Raw message handle""" + pass + + + def CryptMsgClose(self,) -> 'None': + """ + Closes the message handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCRYPTPROTECT_PROMPTSTRUCT(object): + """A tuple representing a CRYPTPROTECT_PROMPTSTRUCT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRYPTPROV(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CryptReleaseContext(self,Flags:'Any'=0) -> 'None': + """ + Releases the CSP handle + +Args: + + Flags(Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def CryptGenKey(self,Algid:'Any',Flags:'Any',KeyLen:'Any'=0) -> 'PyCRYPTKEY': + """ + Generates a key pair or a session key + +Args: + + Algid(Any):Algorithm identifier, one of the CALG_* values, or AT_KEYEXCHANGE/AT_SIGNATURE + Flags(Any):Combination of CRYPT_CREATE_SALT,CRYPT_EXPORTABLE,CRYPT_NO_SALT,CRYPT_PREGEN,CRYPT_USER_PROTECTED,CRYPT_ARCHIVABLE + KeyLen(Any):Length of key to generate, can be 0 to use provider's default key lengthCommentsDiffers from Api call in that the length is passed in separately + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptGetProvParam(self,Param:'Any',Flags:'Any'=0) -> 'None': + """ + Retrieves specified attribute of provider + +Args: + + Param(Any):One of the PP_* values + Flags(Any):If param if PP_KEYSET_SEC_DESCR, can be a combination of OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATIONReturn ValueType of returned object is dependent on the attribute requested + +Returns: + + None:If param if PP_KEYSET_SEC_DESCR, can be a combination of + +OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATION +Return ValueType of returned object is dependent on the attribute requested + + + """ + pass + + + def CryptGetUserKey(self,KeySpec:'Any') -> 'PyCRYPTKEY': + """ + Returns a handle to one of user's key pairs + +Args: + + KeySpec(Any):AT_KEYEXCHANGE or AT_SIGNATURE (some providers may implement extra key specs) + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptGenRandom(self,Len:'Any',SeedData:'str'=None) -> 'str': + """ + Generates random data of specified length + +Args: + + Len(Any):Number of bytes to generate + SeedData(str):Random seed data + +Returns: + + str + + """ + pass + + + def CryptCreateHash(self,Algid:'Any',Key:'PyCRYPTKEY'=None,Flags:'Any'=0) -> 'PyCRYPTHASH': + """ + Creates a hash object for hashing large amounts of data + +Args: + + Algid(Any):An algorithm identifier, CALG_*. + Key(PyCRYPTKEY):Used only for keyed hashes (MAC or HMAC), use None otherwise + Flags(Any):Reserved, use 0 if passed in + +Returns: + + PyCRYPTHASH + + """ + pass + + + def CryptImportKey(self,Data:'Any',PubKey:'PyCRYPTKEY'=None,Flags:'Any'=0) -> 'PyCRYPTKEY': + """ + None + +Args: + + Data(Any):The key blob to be imported + PubKey(PyCRYPTKEY):Key to be used to decrypt the blob, not used for importing public keys + Flags(Any):Combination of CRYPT_EXPORTABLE, CRYPT_OAEP, CRYPT_NO_SALT, CRYPT_USER_PROTECTED + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptExportPublicKeyInfo(self,KeySpec:'Any',CertEncodingType:'Any') -> 'PyCERT_PUBLIC_KEY_INFO': + """ + Exports a public key to send to other users + +Returned dict can be serialized for sending to another python application using pickle.dump + +Args: + + KeySpec(Any):AT_KEYEXCHANGE or AT_SIGNATURE + CertEncodingType(Any):Specifies encoding for exported key info + +Returns: + + PyCERT_PUBLIC_KEY_INFO + + """ + pass + + + def CryptImportPublicKeyInfo(self,Info:'Any',CertEncodingType:'Any') -> 'PyCRYPTKEY': + """ + Imports another user's public key + +Args: + + Info(Any):PyCERT_PUBLIC_KEY_INFO dictionary as returned by PyCRYPTPROV::CryptExportPublicKeyInfo + CertEncodingType(Any):Specifies encoding for exported key info + +Returns: + + PyCRYPTKEY + + """ + pass + + +class PyCRYPT_ALGORITHM_IDENTIFIER(object): + """Dictionary containing information that identifies an encryption + +algorithm and any extra parameters it requires""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'Any': + """An szOID_* string identifying the algorithm""" + pass + + + @property + def Parameters(self)->'Any': + """Blob of binary data containing encoded parameters""" + pass + + +class PyCRYPT_ATTRIBUTE(object): + """Dict representing a CRYPT_ATTRIBUTE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'Any': + """An szOID_* string identifying the attribute""" + pass + + + @property + def Value(self)->'Tuple[Any, ...]': + """A sequence of buffers containing the attribute values""" + pass + + +class PyCRYPT_BIT_BLOB(object): + """Dict containing raw data of a certain bit length""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Data(self)->'Any': + """Binary data""" + pass + + + @property + def UnusedBits(self)->'Any': + """Nbr of bits of last byte that are unused""" + pass + + +class PyCRYPT_DECRYPT_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def CertStores(self)->'Tuple[Any, ...]': + """Sequence of certificate stores to be searched for a certificate with a private key that can be used to decrypt the message""" + pass + + + @property + def MsgAndCertEncodingType(self)->'Any': + """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + + @property + def Flags(self)->'Any': + """Optional. CRYPT_MESSAGE_SILENT_KEYSET_FLAG can be used to suppress any dialogs that might be triggered by accessing a key container, such as a request for a PIN.""" + pass + + +class PyCRYPT_ENCRYPT_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ContentEncryptionAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Identifies the algorithm to be used""" + pass + + + @property + def CryptProv(self)->'PyCRYPTPROV': + """Optional. Handle to provider that will perform encryption, can be None for default provider""" + pass + + + @property + def EncryptionAuxInfo(self)->'Any': + """Optional. Extra info required by some CSP's. Not supported yet, use only None""" + pass + + + @property + def Flags(self)->'Any': + """Optional. Combination of CRYPT_MESSAGE_*_FLAG constants""" + pass + + + @property + def InnerContentType(self)->'Any': + """Optional. Only used if message to be encrypted is already encoded""" + pass + + + @property + def MsgEncodingType(self)->'Any': + """Optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + +class PyCRYPT_SIGN_MESSAGE_PARA(object): + """Dict of parms defining how a message will be signed""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SigningCert(self)->'PyCERT_CONTEXT': + """Certficate to be used to sign message""" + pass + + + @property + def HashAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Algorithm to be used for signed hash""" + pass + + + @property + def HashAuxInfo(self)->'Any': + """Optional. Param is reserved, use only None.""" + pass + + + @property + def MsgCert(self)->'Tuple[PyCERT_CONTEXT, ...]': + """Optional sequence of certificate to be included in the message.""" + pass + + + @property + def MsgCrl(self)->'Tuple[Any, ...]': + """Optional. Sequence of certificate revocation lists. Not yet supported, use only None.""" + pass + + + @property + def AuthAttr(self)->'Tuple[PyCRYPT_ATTRIBUTE, ...]': + """Sequence of canonical attributes to be added to the message""" + pass + + + @property + def UnauthAttr(self)->'Tuple[PyCRYPT_ATTRIBUTE, ...]': + """Sequence of arbitrary attributes""" + pass + + + @property + def Flags(self)->'Any': + """Optional CRYPT_MESSAGE_*_FLAG that indicates content type if output is to be further encoded.""" + pass + + + @property + def InnerContentType(self)->'Any': + """Optional, one of the CMSG_* content types if message is already encoded, .""" + pass + + + @property + def MsgEncodingType(self)->'Any': + """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + +class PyCRYPT_VERIFY_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def MsgAndCertEncodingType(self)->'Any': + """Encoding types, defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + + @property + def CryptProv(self)->'PyCRYPTPROV': + """CSP to be used to verify signature. Use None for default provider.""" + pass + + + @property + def PyGetSignerCertificate(self)->'Any': + """Callback function that locates signer's certificate.""" + pass + + + @property + def GetArg(self)->'Any': + """Argument to be passed to above function, can be any object.""" + pass + + +class PyCTL_CONTEXT(object): + """Object containing a Certificate Trust List""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCTL_CONTEXT(self)->'Any': + """Raw message handle""" + pass + + + def CertFreeCTLContext(self,) -> 'None': + """ + Closes the CTL handle + +Args: + + + +Returns: + + None + + """ + pass + + + def CertEnumCTLContextProperties(self,) -> 'Tuple[Any, ...]': + """ + Lists property id's for the context + +Args: + + + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def CertEnumSubjectInSortedCTL(self,) -> 'Tuple[Tuple[Any, Any], ...]': + """ + Retrieves trusted subjects contained in CRL + +Args: + + + +Returns: + + Tuple[Tuple[Any, Any], ...]:PyCTL_CONTEXT.CertEnumSubjectInSortedCTL + +((str,str),...) = CertEnumSubjectInSortedCTL()Retrieves trusted subjects contained in CRL +Return ValueReturns a sequence of tuples containing two strings (SubjectIdentifier, EncodedAttributes) + + + """ + pass + + + def CertDeleteCTLFromStore(self,) -> 'None': + """ + Removes the CTL from the store that it is contained in + +Args: + + + +Returns: + + None + + """ + pass + + + def CertSerializeCTLStoreElement(self,Flags:'Any'=0) -> 'str': + """ + Serializes the CTL and its properties + +Args: + + Flags(Any):Reserved, use only 0 if passed in + +Returns: + + str + + """ + pass + + +class PyCTL_USAGE(object): + """Sequence of string OIDs (szOID_*). This struct is identical to CERT_ENHKEY_USAGE.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyConsoleScreenBuffer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetConsoleActiveScreenBuffer(self,) -> 'None': + """ + Sets this handle as the currently displayed screen + +buffer + +Args: + + + +Returns: + + None + + """ + pass + + + def GetConsoleCursorInfo(self,) -> 'Tuple[Any, Any]': + """ + Retrieves size and visibility of console's + +cursor + +Args: + + + +Returns: + + Tuple[Any, Any]:PyConsoleScreenBuffer.GetConsoleCursorInfo + +(Size, bVisible) = GetConsoleCursorInfo()Retrieves size and visibility of console's + +cursor +Return ValueReturns the size of the console's cursor expressed as a percentage of character size, and a boolen indicating + +if cursor is visible + + + """ + pass + + + def SetConsoleCursorInfo(self,Size:'Any',Visible:'Any') -> 'None': + """ + Sets the size and visibility of console's cursor + +Args: + + Size(Any):Percentage of character size that cursor will occupy + Visible(Any):Determines if cursor is visible + +Returns: + + None + + """ + pass + + + def GetConsoleMode(self,) -> 'Any': + """ + Returns the input or output mode of the console buffer + +Args: + + + +Returns: + + Any:PyConsoleScreenBuffer.GetConsoleMode + +int = GetConsoleMode()Returns the input or output mode of the console buffer +Return ValueReturns a combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants + + + """ + pass + + + def SetConsoleMode(self,Mode:'Any') -> 'None': + """ + Sets the input or output mode of the console buffer + +Args: + + Mode(Any):Combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants + +Returns: + + None + + """ + pass + + + def ReadConsole(self,NumberOfCharsToRead:'Any') -> 'Any': + """ + Reads characters from the console input buffer + +Args: + + NumberOfCharsToRead(Any):Characters to read + +Returns: + + Any + + """ + pass + + + def WriteConsole(self,Buffer:'Any') -> 'Any': + """ + Writes characters at current cursor position + +Args: + + Buffer(Any):String or Unicode to be written to consoleReturn ValueReturns the number of characters written + +Returns: + + Any:String or Unicode to be written to consoleReturn ValueReturns the number of characters written + + + """ + pass + + + def FlushConsoleInputBuffer(self,) -> 'None': + """ + Flush input buffer + +Args: + + + +Returns: + + None + + """ + pass + + + def SetConsoleTextAttribute(self,Attributes:'Any') -> 'None': + """ + Sets character attributes for subsequent write operations + +Args: + + Attributes(Any):Attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants + +Returns: + + None + + """ + pass + + + def SetConsoleCursorPosition(self,CursorPosition:'PyCOORD') -> 'None': + """ + Sets the console screen buffer's cursor position + +Args: + + CursorPosition(PyCOORD):A PyCOORD containing the new cursor position + +Returns: + + None + + """ + pass + + + def SetConsoleScreenBufferSize(self,Size:'PyCOORD') -> 'None': + """ + Sets the size of the console screen buffer + +Args: + + Size(PyCOORD):COORD object containing the new dimensions + +Returns: + + None + + """ + pass + + + def SetConsoleWindowInfo(self,Absolute:'Any',ConsoleWindow:'PySMALL_RECT') -> 'None': + """ + Changes size and position of a console's window + +Args: + + Absolute(Any):If False, coordinates are relative to current position + ConsoleWindow(PySMALL_RECT):A SMALL_RECT containing the new window coordinates + +Returns: + + None + + """ + pass + + + def GetConsoleScreenBufferInfo(self,) -> 'Any': + """ + Returns the state of the screen buffer + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetLargestConsoleWindowSize(self,) -> 'PyCOORD': + """ + Returns the largest possible size for the + +console's window + +Args: + + + +Returns: + + PyCOORD + + """ + pass + + + def FillConsoleOutputAttribute(self,Attribute:'Any',Length:'Any',WriteCoord:'PyCOORD') -> 'Any': + """ + Set text attributes for a consecutive series of + +characters + +Args: + + Attribute(Any):Text attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants + Length(Any):The number of characters to set + WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set + +Returns: + + Any:The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set + + + """ + pass + + + def FillConsoleOutputCharacter(self,Character:'Any',Length:'Any',WriteCoord:'PyCOORD') -> 'Any': + """ + Sets consecutive character positions to a specified + +character + +Args: + + Character(Any):A single character to be used to fill the specified range + Length(Any):The number of characters positions to fill + WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of characters actually written + +Returns: + + Any:The screen position to begin atReturn ValueReturns the number of characters actually written + + + """ + pass + + + def ReadConsoleOutputCharacter(self,Length:'Any',ReadCoord:'PyCOORD') -> 'str': + """ + Reads consecutive characters from a starting + +position + +Args: + + Length(Any):The number of characters positions to read + ReadCoord(PyCOORD):The screen position start reading from + +Returns: + + str + + """ + pass + + + def ReadConsoleOutputAttribute(self,Length:'Any',ReadCoord:'PyCOORD') -> 'Tuple[Any, ...]': + """ + Retrieves attributes from consecutive character + +cells + +Args: + + Length(Any):The number of attributes to read + ReadCoord(PyCOORD):The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters + +Returns: + + Tuple[Any, ...]:The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters + + + """ + pass + + + def WriteConsoleOutputCharacter(self,Characters:'Any',WriteCoord:'PyCOORD') -> 'Any': + """ + Writes a string of characters at a specified position + +Args: + + Characters(Any):Characters to be written + WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of characters actually written + +Returns: + + Any:The screen position at which to start writingReturn ValueReturns the number of characters actually written + + + """ + pass + + + def WriteConsoleOutputAttribute(self,Attributes:'Tuple[Any, ...]',WriteCoord:'PyCOORD') -> 'Any': + """ + Sets the attributes of a range of character cells + +Args: + + Attributes(Tuple[Any, ...]):A sequence of ints containing the attributes to be set + WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of attributes set + +Returns: + + Any:The screen position at which to start writingReturn ValueReturns the number of attributes set + + + """ + pass + + + def ScrollConsoleScreenBuffer(self,ScrollRectangle:'PySMALL_RECT',ClipRectangle:'PySMALL_RECT',DestinationOrigin:'PyCOORD',FillCharacter:'Any',FillAttribute:'Any') -> 'None': + """ + Scrolls a region of the display + +Args: + + ScrollRectangle(PySMALL_RECT):The region to be scrolled + ClipRectangle(PySMALL_RECT):Rectangle that limits display area affected, can be None + DestinationOrigin(PyCOORD):The position to which ScrollRectangle will be moved + FillCharacter(Any):Character to fill in the area left blank by scrolling operation + FillAttribute(Any):Text attributes to apply to FillCharacter + +Returns: + + None + + """ + pass + + + def GetCurrentConsoleFont(self,MaximumWindow:'Any'=False) -> 'Tuple[Any, PyCOORD]': + """ + Returns currently displayed font + +Args: + + MaximumWindow(Any):If True, retrieves font size for maximum window sizeCommentsOnly exists on XP or later. MSDN docs claim the returned COORD is the font size, but it's actually the window size. Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size.Return ValueReturns the index of current font and window size + +Returns: + + Tuple[Any, PyCOORD]:If True, retrieves font size for maximum window size +Comments + +Only exists on XP or later. + +MSDN docs claim the returned COORD is the font size, but it's actually the window size. + +Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size. +Return ValueReturns the index of current font and window size + + + """ + pass + + + def GetConsoleFontSize(self,Font:'Any') -> 'PyCOORD': + """ + Returns size of specified font for the console + +Args: + + Font(Any):Index of font as returned by GetCurrentConsoleFontCommentsOnly exists on XP or later. + +Returns: + + PyCOORD + + """ + pass + + + def SetConsoleFont(self,Font:'Any') -> 'None': + """ + Changes the font used by the screen buffer + +Args: + + Font(Any):The number of the font to be setCommentsFunction is not documented on MSDN + +Returns: + + None + + """ + pass + + + def SetStdHandle(self,StdHandle:'Any') -> 'None': + """ + Replaces one of calling process's standard handles with this handle + +Args: + + StdHandle(Any):Specifies handle to be replaced - STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE + +Returns: + + None + + """ + pass + + + def SetConsoleDisplayMode(self,Flags:'Any',NewScreenBufferDimensions:'PyCOORD') -> 'None': + """ + Sets the display mode of the console buffer + +Args: + + Flags(Any):CONSOLE_FULLSCREEN_MODE or CONSOLE_WINDOWED_MODE + NewScreenBufferDimensions(PyCOORD):New size of the screen buffer in characters + +Returns: + + None + + """ + pass + + + def WriteConsoleInput(self,Buffer:'Tuple[PyINPUT_RECORD, ...]') -> 'Any': + """ + Places input records in the console's input queue + +Args: + + Buffer(Tuple[PyINPUT_RECORD, ...]):A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written + +Returns: + + Any:A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written + + + """ + pass + + + def ReadConsoleInput(self,Length:'Any') -> 'Tuple[PyINPUT_RECORD, ...]': + """ + Reads input records and removes them from + +the input queue + +Args: + + Length(Any):The number of input records to readCommentsThis functions blocks until at least one record is read. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects + +Returns: + + Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments + +This functions blocks until at least one record is read. + +The number of records returned may be less than the nbr requested +Return ValueReturns a sequence of PyINPUT_RECORD objects + + + """ + pass + + + def PeekConsoleInput(self,Length:'Any') -> 'Tuple[PyINPUT_RECORD, ...]': + """ + Returns pending input records without + +removing them from the input queue + +Args: + + Length(Any):The number of input records to readCommentsThis function does not block as ReadConsoleInput does. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects + +Returns: + + Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments + +This function does not block as ReadConsoleInput does. + +The number of records returned may be less than the nbr requested +Return ValueReturns a sequence of PyINPUT_RECORD objects + + + """ + pass + + + def GetNumberOfConsoleInputEvents(self,) -> 'Any': + """ + Returns the number of unread records in the input + +queue + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCredHandle(object): + """Handle to a set of logon credentials, used with sspi authentication functions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Detach(self,) -> 'Any': + """ + Disassociates object from handle and returns integer value of handle, + +Args: + + + +Returns: + + Any + + """ + pass + + + def FreeCredentialsHandle(self,) -> 'None': + """ + Releases the credentials handle and makes object unusable + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryCredentialsAttributes(self,Attribute:'Any') -> 'None': + """ + Returns information about the credentials + +Args: + + Attribute(Any):SECPKG_* constant specifying which type of information to returnCommentsOnly SECPKG_CRED_ATTR_NAMES currently supportedAttributeReturn typeSECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials representSECPKG_ATTR_SUPPORTED_ALGSNot supported yet SecPkgCred_SupportedAlgs:SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet SecPkgCred_CipherStrengths:SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet SecPkgCred_SupportedProtocols:Return ValueType of returned values is dependent on Attribute + +Returns: + + None:SECPKG_* constant specifying which type of information to returnComments + +Only SECPKG_CRED_ATTR_NAMES currently supported + + + +Attribute + + +Return type + + + +SECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials represent +SECPKG_ATTR_SUPPORTED_ALGSNot supported yet + +SecPkgCred_SupportedAlgs: +SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet + +SecPkgCred_CipherStrengths: +SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet + +SecPkgCred_SupportedProtocols: +Return ValueType of returned values is dependent on Attribute + + + """ + pass + + +class PyCtxtHandle(object): + """Security context handle, as used with sspi functions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Detach(self,) -> 'Any': + """ + Disassociates object from handle and returns integer value of handle + +Args: + + + +Returns: + + Any + + """ + pass + + + def CompleteAuthToken(self,Token:'PySecBufferDesc') -> 'None': + """ + Completes the authentication token + +Args: + + Token(PySecBufferDesc):The buffer that contains the token buffer used when the context was initializedCommentsThis method should be invoked on a context handle if the InitializeSecurityContext call that created it returned SEC_I_COMPLETE_NEEDED or SEC_I_COMPLETE_AND_CONTINUE + +Returns: + + None + + """ + pass + + + def QueryContextAttributes(self,Attribute:'Any') -> 'None': + """ + Retrieves info about a security context + +Args: + + Attribute(Any):SECPKG_ATTR_* constantCommentsNot all attributes are available for every security packageAttributeReturn typeSECPKG_ATTR_ACCESS_TOKENPyHANDLE - returns a handle to the context's access tokenSECPKG_ATTR_AUTHORITYPyUnicode - returns the name of the authenticating entitySECPKG_ATTR_CIPHER_STRENGTHS(int,int) - returns the mininum and maximum cipher strengths allowedSECPKG_ATTR_CONNECTION_INFOReturns a dictionary of connection info representing a SecPkgContext_ConnectionInfo structSECPKG_ATTR_SESSION_KEYstring - returns the session key for the contextSECPKG_ATTR_ISSUER_LIST_EX(int, string) - Returns names of trusted certificate issuersSECPKG_ATTR_FLAGSint - returns flags negotiated when context was establishedSECPKG_ATTR_PACKAGE_INFOdict - returns dictionary containing info for context's security packageSECPKG_ATTR_NEGOTIATION_INFO(int, dict) - returns state of negotiation (SECPKG_NEGOTIATION_COMPLETE, SECPKG_NEGOTIATION_OPTIMISTIC,SECPKG_NEGOTIATION_IN_PROGRESS) and info for negotiated packageSECPKG_ATTR_NAMESPyUnicode - returns the user name for the contextSECPKG_ATTR_SIZESdict containing buffer sizes to be used with the contextSECPKG_ATTR_PASSWORD_EXPIRYPyTime - returns time password expiresSECPKG_ATTR_LIFESPAN(PyTime,PyTime) - returns time period during which context is validSECPKG_ATTR_NATIVE_NAMES(PyUnicode,PyUnicode) - returns client and server namesSECPKG_ATTR_TARGET_INFORMATIONstring - returns the target for the contextSECPKG_ATTR_STREAM_SIZESdict (see SecPkgContext_StreamSizes) containing message buffer sizesSECPKG_ATTR_KEY_INFOdict (see SecPkgContext_KeyInfo) containing encryption key parametersSECPKG_ATTR_DCE_INFOnot supported yet SecPkgContext_DceInfoSECPKG_ATTR_LOCAL_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_REMOTE_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_ROOT_STOREnot supported yet HCERTCONTEXTSECPKG_ATTR_SUPPORTED_ALGSnot supported yet SecPkgCred_SupportedAlgsSECPKG_ATTR_SUPPORTED_PROTOCOLSnot supported yet SecPkgCred_SupportedProtocols + +Returns: + + None + + """ + pass + + + def DeleteSecurityContext(self,) -> 'None': + """ + Frees the security context and invalidates the handle + +Args: + + + +Returns: + + None + + """ + pass + + + def QuerySecurityContextToken(self,) -> 'Any': + """ + Returns the access token for a security context + +Args: + + + +Returns: + + Any + + """ + pass + + + def MakeSignature(self,fqop:'Any',Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': + """ + Creates a crytographic hash of a message using session key of the security + +context + +Args: + + fqop(Any):Flags that indicate quality of protection desired, specific to each security package + Message(PySecBufferDesc):Buffer set that includes buffers for input data and output signature + MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKENReturn ValueReturns None on success, and output buffer in Message will contain the signature + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one input buffer of + +type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKEN +Return ValueReturns None on success, and output buffer in Message will contain the signature + + + """ + pass + + + def VerifySignature(self,Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': + """ + None + +Args: + + Message(PySecBufferDesc):SecBufferDesc that contains data buffer and signature buffer + MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is a data buffer of type SECBUFFER_DATA and a signature buffer of type SECBUFFER_TOKENReturn ValueReturns quality of protection flags used to create signature + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is a data buffer of type + +SECBUFFER_DATA + +and a signature buffer of type SECBUFFER_TOKEN +Return ValueReturns quality of protection flags used to create signature + + + """ + pass + + + def EncryptMessage(self,fqop:'Any',Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': + """ + Encrypts data with session key of security context + +Args: + + fqop(Any):Flags that indicate quality of protection desired, specific to each security package + Message(PySecBufferDesc):PySecBufferDesc that contains data buffer(s) to be encrypted + MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or SECBUFFER_TOKEN to receive signature or padding dataReturn ValueReturns None on success, and buffer(s) will contain encrypted data + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one input buffer + +of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or + +SECBUFFER_TOKEN to receive signature or padding data +Return ValueReturns None on success, and buffer(s) will contain encrypted data + + + """ + pass + + + def DecryptMessage(self,Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': + """ + None + +Args: + + Message(PySecBufferDesc):PySecBufferDesc containing data buffers to be decrypted + MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one buffer of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit in first bufferReturn ValueReturns flags specfic to security package indicating quality of protection + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one buffer + +of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or + +SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit + +in first buffer +Return ValueReturns flags specfic to security package indicating quality of protection + + + """ + pass + + + def ImpersonateSecurityContext(self,) -> 'None': + """ + Impersonates a client security context + +Args: + + + +Returns: + + None + + """ + pass + + + def RevertSecurityContext(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDCB(object): + """A Python object, representing an DCB structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def BaudRate(self)->'int': + """current baud rate""" + pass + + + @property + def wReserved(self)->'int': + """not currently used""" + pass + + + @property + def XonLim(self)->'int': + """transmit XON threshold""" + pass + + + @property + def XoffLim(self)->'int': + """transmit XOFF threshold""" + pass + + + @property + def ByteSize(self)->'int': + """number of bits/byte, 4-8""" + pass + + + @property + def Parity(self)->'int': + """0-4=no,odd,even,mark,space""" + pass + + + @property + def StopBits(self)->'int': + """0,1,2 = 1, 1.5, 2""" + pass + + + @property + def XonChar(self)->'str': + """Tx and Rx XON character""" + pass + + + @property + def XoffChar(self)->'str': + """Tx and Rx XOFF character""" + pass + + + @property + def ErrorChar(self)->'str': + """error replacement character""" + pass + + + @property + def EofChar(self)->'str': + """end of input character""" + pass + + + @property + def EvtChar(self)->'str': + """received event character""" + pass + + + @property + def wReserved1(self)->'int': + """reserved; do not use""" + pass + + + @property + def fBinary(self)->'int': + """binary mode, no EOF check""" + pass + + + @property + def fParity(self)->'int': + """enable parity checking""" + pass + + + @property + def fOutxCtsFlow(self)->'int': + """CTS output flow control""" + pass + + + @property + def fOutxDsrFlow(self)->'int': + """DSR output flow control""" + pass + + + @property + def fDtrControl(self)->'int': + """DTR flow control type""" + pass + + + @property + def fDsrSensitivity(self)->'int': + """DSR sensitivity""" + pass + + + @property + def fTXContinueOnXoff(self)->'int': + """XOFF continues Tx""" + pass + + + @property + def fOutX(self)->'int': + """XON/XOFF out flow control""" + pass + + + @property + def fInX(self)->'int': + """XON/XOFF in flow control""" + pass + + + @property + def fErrorChar(self)->'int': + """enable error replacement""" + pass + + + @property + def fNull(self)->'int': + """enable null stripping""" + pass + + + @property + def fRtsControl(self)->'int': + """RTS flow control""" + pass + + + @property + def fAbortOnError(self)->'int': + """abort on error""" + pass + + + @property + def fDummy2(self)->'int': + """reserved""" + pass + + +class PyDEVMODE(object): + """Python object wrapping a DEVMODE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SpecVersion(self)->'Any': + """Should always be set to DM_SPECVERSION""" + pass + + + @property + def DriverVersion(self)->'Any': + """Version nbr assigned to printer driver by vendor""" + pass + + + @property + def Size(self)->'Any': + """Size of structure""" + pass + + + @property + def DriverExtra(self)->'Any': + """Number of extra bytes allocated for driver data, can only be set when new object is created""" + pass + + + @property + def Fields(self)->'Any': + """Bitmask of win32con.DM_* constants indicating which members are set""" + pass + + + @property + def Orientation(self)->'Any': + """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" + pass + + + @property + def PaperSize(self)->'Any': + """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" + pass + + + @property + def PaperLength(self)->'Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def PaperWidth(self)->'Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def Position_x(self)->'Any': + """Position of display relative to desktop""" + pass + + + @property + def Position_y(self)->'Any': + """Position of display relative to desktop""" + pass + + + @property + def DisplayOrientation(self)->'Any': + """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" + pass + + + @property + def DisplayFixedOutput(self)->'Any': + """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" + pass + + + @property + def Scale(self)->'Any': + """Specified as percentage, eg 50 means half size of original""" + pass + + + @property + def Copies(self)->'Any': + """Nbr of copies to print""" + pass + + + @property + def DefaultSource(self)->'Any': + """DMBIN_* constant, or can be a printer-specific value""" + pass + + + @property + def PrintQuality(self)->'Any': + """DMRES_* constant, interpreted as DPI if positive""" + pass + + + @property + def Color(self)->'Any': + """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" + pass + + + @property + def Duplex(self)->'Any': + """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" + pass + + + @property + def YResolution(self)->'Any': + """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" + pass + + + @property + def TTOption(self)->'Any': + """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" + pass + + + @property + def Collate(self)->'Any': + """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" + pass + + + @property + def LogPixels(self)->'Any': + """Pixels per inch (only for display devices""" + pass + + + @property + def BitsPerPel(self)->'Any': + """Color resolution in bits per pixel""" + pass + + + @property + def PelsWidth(self)->'Any': + """Pixel width of display""" + pass + + + @property + def PelsHeight(self)->'Any': + """Pixel height of display""" + pass + + + @property + def DisplayFlags(self)->'Any': + """Combination of DM_GRAYSCALE and DM_INTERLACED""" + pass + + + @property + def DisplayFrequency(self)->'Any': + """Refresh rate""" + pass + + + @property + def ICMMethod(self)->'Any': + """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" + pass + + + @property + def ICMIntent(self)->'Any': + """Intent of ICM, one of win32con.DMICM_* values""" + pass + + + @property + def MediaType(self)->'Any': + """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" + pass + + + @property + def DitherType(self)->'Any': + """Dithering option, win32con.DMDITHER_*""" + pass + + + @property + def Reserved1(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Reserved2(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Nup(self)->'Any': + """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" + pass + + + @property + def PanningWidth(self)->'Any': + """Not used, leave as 0""" + pass + + + @property + def PanningHeight(self)->'Any': + """Not used, leave as 0""" + pass + + + @property + def DeviceName(self)->'Any': + """String of at most 32 chars""" + pass + + + @property + def FormName(self)->'Any': + """Name of form as returned by win32print::EnumForms, at most 32 chars""" + pass + + + @property + def DriverData(self)->'Any': + """Driver data appended to end of structure""" + pass + + + def Clear(self,) -> 'None': + """ + Resets all members of the structure + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDEVMODEW(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SpecVersion(self)->'Any': + """Should always be set to DM_SPECVERSION""" + pass + + + @property + def DriverVersion(self)->'Any': + """Version nbr assigned to printer driver by vendor""" + pass + + + @property + def Size(self)->'Any': + """Size of structure""" + pass + + + @property + def DriverExtra(self)->'Any': + """Number of extra bytes allocated for driver data, can only be set when new object is created""" + pass + + + @property + def Fields(self)->'Any': + """Bitmask of win32con.DM_* constants indicating which members are set""" + pass + + + @property + def Orientation(self)->'Any': + """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" + pass + + + @property + def PaperSize(self)->'Any': + """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" + pass + + + @property + def PaperLength(self)->'Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def PaperWidth(self)->'Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def Position_x(self)->'Any': + """Position of display relative to desktop""" + pass + + + @property + def Position_y(self)->'Any': + """Position of display relative to desktop""" + pass + + + @property + def DisplayOrientation(self)->'Any': + """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" + pass + + + @property + def DisplayFixedOutput(self)->'Any': + """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" + pass + + + @property + def Scale(self)->'Any': + """Specified as percentage, eg 50 means half size of original""" + pass + + + @property + def Copies(self)->'Any': + """Nbr of copies to print""" + pass + + + @property + def DefaultSource(self)->'Any': + """DMBIN_* constant, or can be a printer-specific value""" + pass + + + @property + def PrintQuality(self)->'Any': + """DMRES_* constant, interpreted as DPI if positive""" + pass + + + @property + def Color(self)->'Any': + """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" + pass + + + @property + def Duplex(self)->'Any': + """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" + pass + + + @property + def YResolution(self)->'Any': + """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" + pass + + + @property + def TTOption(self)->'Any': + """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" + pass + + + @property + def Collate(self)->'Any': + """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" + pass + + + @property + def LogPixels(self)->'Any': + """Pixels per inch (only for display devices""" + pass + + + @property + def BitsPerPel(self)->'Any': + """Color resolution in bits per pixel""" + pass + + + @property + def PelsWidth(self)->'Any': + """Pixel width of display""" + pass + + + @property + def PelsHeight(self)->'Any': + """Pixel height of display""" + pass + + + @property + def DisplayFlags(self)->'Any': + """Combination of DM_GRAYSCALE and DM_INTERLACED""" + pass + + + @property + def DisplayFrequency(self)->'Any': + """Refresh rate""" + pass + + + @property + def ICMMethod(self)->'Any': + """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" + pass + + + @property + def ICMIntent(self)->'Any': + """Intent of ICM, one of win32con.DMICM_* values""" + pass + + + @property + def MediaType(self)->'Any': + """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" + pass + + + @property + def DitherType(self)->'Any': + """Dithering option, win32con.DMDITHER_*""" + pass + + + @property + def Reserved1(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Reserved2(self)->'Any': + """Reserved, use only 0""" + pass + + + @property + def Nup(self)->'Any': + """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" + pass + + + @property + def PanningWidth(self)->'Any': + """Not used, leave as 0""" + pass + + + @property + def PanningHeight(self)->'Any': + """Not used, leave as 0""" + pass + + + @property + def DeviceName(self)->'str': + """String of at most 32 chars""" + pass + + + @property + def FormName(self)->'Any': + """Name of form as returned by win32print::EnumForms, at most 32 chars""" + pass + + + @property + def DriverData(self)->'Any': + """Driver data appended to end of structure""" + pass + + +class PyDISPLAY_DEVICE(object): + """Python object wrapping a DISPLAY_DEVICE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Size(self)->'Any': + """Size of structure""" + pass + + + @property + def DeviceName(self)->'Any': + """String of at most 32 chars""" + pass + + + @property + def DeviceString(self)->'Any': + """String of at most 128 chars""" + pass + + + @property + def StateFlags(self)->'Any': + """Bitmask of win32con.DISPLAY_DEVICE_* constants indicating current device status""" + pass + + + @property + def DeviceID(self)->'Any': + """String of at most 128 chars""" + pass + + + @property + def DeviceKey(self)->'Any': + """String of at most 128 chars""" + pass + + + def Clear(self,) -> 'None': + """ + Resets all members of the structure + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDLGITEMTEMPLATE(object): + """A tuple describing a control in a dialog box.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDLGTEMPLATE(object): + """A tuple of items describing a dialog box, that can be used to create the dialog.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDS_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDS_NAME_RESULT_ITEM(object): + """A tuple representing a DS_NAME_RESULT_ITEM""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDateTime(object): + """A Python object, representing an instant in time.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Format(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyDialogTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVTLOG_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVT_HANDLE(object): + """Handle to an event log, session, query, or any other object used with + +the Evt* event log functions on Vista and later. + +When the object is destroyed, EvtClose is called.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVT_RPC_LOGIN(object): + """Tuple containing login credentials for a remote Event Log connection""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEventLogRecord(object): + """An object containing the data in an EVENTLOGRECORD.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Reserved(self)->'int': + """""" + pass + + + @property + def RecordNumber(self)->'int': + """""" + pass + + + @property + def TimeGenerated(self)->'PyTime': + """""" + pass + + + @property + def TimeWritten(self)->'PyTime': + """""" + pass + + + @property + def EventID(self)->'int': + """""" + pass + + + @property + def EventType(self)->'int': + """""" + pass + + + @property + def EventCategory(self)->'int': + """""" + pass + + + @property + def ReservedFlags(self)->'int': + """""" + pass + + + @property + def ClosingRecordNumber(self)->'int': + """""" + pass + + + @property + def SourceName(self)->'str': + """""" + pass + + + @property + def StringInserts(self)->'Tuple[str, ...]': + """""" + pass + + + @property + def Sid(self)->'PySID': + """""" + pass + + + @property + def Data(self)->'str': + """""" + pass + + + @property + def ComputerName(self)->'str': + """""" + pass + + +class PyGROUP_INFO_0(object): + """A dictionary holding the information in a Win32 GROUP_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + +class PyGROUP_INFO_1(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'Union[str]': + """The group's comment.""" + pass + + +class PyGROUP_INFO_1002(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1002 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'Union[str]': + """""" + pass + + +class PyGROUP_INFO_1005(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1005 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def attributes(self)->'Any': + """""" + pass + + +class PyGROUP_INFO_2(object): + """A dictionary holding the information in a Win32 GROUP_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'Union[str]': + """The group's comment.""" + pass + + + @property + def group_id(self)->'Any': + """""" + pass + + + @property + def attributes(self)->'Any': + """""" + pass + + +class PyGROUP_USERS_INFO_0(object): + """A dictionary holding the information in a Win32 GROUP_USERS_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group or user""" + pass + + +class PyGROUP_USERS_INFO_1(object): + """A dictionary holding the information in a Win32 GROUP_USERS_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group or user""" + pass + + + @property + def attributes(self)->'Any': + """""" + pass + + +class PyGdiHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyGetSignerCertificate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHANDLE(object): + """A Python object, representing a win32 HANDLE.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def handle(self)->'Any': + """Integer value of the handleMethodsCloseCloses the handle closeSynonym for PyHANDLE::Close DetachDetaches the Win32 handle from the handle object. __nonzero__Used for detecting true/false. is nb_bool in Python 3.0 __int__Used when an integer representation of the handle object is required. __print__Used when the object is printed. tp_print __hash__Used when the hash value of an object is required tp_hash __str__Used when a string representation is required tp_str """ + pass + + + def Close(self,) -> 'None': + """ + Closes the underlying Win32 handle. + +Args: + + + +Returns: + + None + + """ + pass + + + def close(self,) -> 'None': + """ + Closes the underlying Win32 handle. + +Args: + + + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'Any': + """ + Detaches the Win32 handle from the handle object. + +Args: + + + +Returns: + + Any:PyHANDLE.Detach + +int = Detach()Detaches the Win32 handle from the handle object. +Comments + +After calling this function, the handle is effectively invalidated, + +but the handle is not closed. You would call this function when you + +need the underlying win32 handle to exist beyond the lifetime of the + +handle object. +Return ValueThe result is the value of the handle before it is detached. If the + +handle is already detached, this will return zero. + + + """ + pass + + +class PyHDESK(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetThreadDesktop(self,) -> 'None': + """ + Assigns this desktop to the calling thread + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumDesktopWindows(self,) -> 'Tuple[int, ...]': + """ + Returns a list of handles to all top-level windows on desktop + +Args: + + + +Returns: + + Tuple[int, ...] + + """ + pass + + + def SwitchDesktop(self,) -> 'None': + """ + Activates the desktop + +Args: + + + +Returns: + + None + + """ + pass + + + def CloseDesktop(self,) -> 'None': + """ + Closes the desktop handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyHDEVNOTIFY(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHHNTRACK(object): + """A Python object, representing an HHNTRACK + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def action(self)->'Any': + """Specifies the action the user is about to take. This is an HHACT_ constant.""" + pass + + + @property + def hdr(self)->'Any': + """Standard WM_NOTIFY header(win32help::NMHDR).""" + pass + + + @property + def curUrl(self)->'str': + """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" + pass + + + @property + def winType(self)->'Any': + """A pointer to the current HH_WINTYPE structure (win32help::HH_WINTYPE).""" + pass + + +class PyHHN_NOTIFY(object): + """A Python object, representing an HHN_NOTIFY + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hdr(self)->'Any': + """Standard WM_NOTIFY header.(win32help::NMHDR)""" + pass + + + @property + def url(self)->'str': + """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" + pass + + +class PyHH_AKLINK(object): + """A Python object, representing an HH_AKLINK structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def indexOnFail(self)->'Any': + """Specifies whether to display the keyword in the Index tab of the HTML Help Viewer if the lookup fails. The value of window specifies the Help Viewer.""" + pass + + + @property + def keywords(self)->'str': + """Specifies one or more ALink names or KLink keywords to look up. Multiple entries are delimited by a semicolon.""" + pass + + + @property + def url(self)->'str': + """Specifies the topic file to navigate to if the lookup fails. url refers to a valid topic within the specified compiled help (.chm) file and does not support Internet protocols that point to an HTML file.""" + pass + + + @property + def msgText(self)->'str': + """Specifies the text to display in a message box if the lookup fails and indexOnFail is FALSE and url is NULL.""" + pass + + + @property + def msgTitle(self)->'str': + """Specifies the caption of the message box in which the msgText parameter appears.""" + pass + + + @property + def window(self)->'str': + """Specifies the name of the window type in which to display one of the following: The selected topic, if the lookup yields one or more matching topics. The topic specified in url, if the lookup fails and a topic is specified in url. The Index tab, if the lookup fails and indexOnFail is specified as TRUE.""" + pass + + +class PyHH_FTS_QUERY(object): + """A Python object, representing an HH_FTS_QUERY + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uniCodeStrings(self)->'Any': + """TRUE if all strings are Unicode.""" + pass + + + @property + def proximity(self)->'Any': + """Word proximity.""" + pass + + + @property + def stemmedSearch(self)->'Any': + """TRUE for StemmedSearch only.""" + pass + + + @property + def titleOnly(self)->'Any': + """TRUE for Title search only.""" + pass + + + @property + def execute(self)->'Any': + """TRUE to initiate the search.""" + pass + + + @property + def searchQuery(self)->'str': + """String containing the search query.""" + pass + + +class PyHH_POPUP(object): + """A Python object, representing an HH_POPUP structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hinst(self)->'Any': + """Instance handle of the program or DLL to retrieve the string resource from. Ignored if idString is zero.""" + pass + + + @property + def idString(self)->'Any': + """Specifies zero, or a resource ID in the program or DLL specified in hinst.""" + pass + + + @property + def clrForeground(self)->'Any': + """Specifies the RGB value to use for the foreground color of the pop-up window. To use the system color for the window text, specify -1.""" + pass + + + @property + def clrBackground(self)->'Any': + """Specifies the RGB value to use for the background color of the pop-up window. To use the system color for the window background, specify -1.""" + pass + + + @property + def text(self)->'str': + """Specifies the text to display if idString is zero.""" + pass + + + @property + def font(self)->'str': + """Specifies the font attributes to use for the text in the pop-up window. Use the following format to specify font family, point size, character set, and font format: facename[, point size[, charset[ BOLD ITALIC UNDERLINE]]] To omit an attribute, enter a comma. For example, to specify bold, 10-pt, MS Sans Serif font, font would be: MS Sans Serif, 10, , BOLD""" + pass + + + @property + def pt(self)->'Any': + """(x,y). Specifies (in pixels) where the top center of the pop-up window should be located.""" + pass + + + @property + def margins(self)->'Any': + """(left,top,right,bottom). Specifies (in pixels) the margins to use on the left, top, right, and bottom sides of the pop-up window. The default for all rectangle members is -1.""" + pass + + +class PyHH_WINTYPE(object): + """A Python object, representing an HH_WINTYPE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uniCodeStrings(self)->'Any': + """Specifies whether the strings used in this structure are UNICODE.""" + pass + + + @property + def validMembers(self)->'Any': + """Specifies which members in the structure are valid.""" + pass + + + @property + def winProperties(self)->'Any': + """Specifies the properties of the window, such as whether it is the standard HTML Help Viewer or whether it includes a Search tab.""" + pass + + + @property + def styles(self)->'Any': + """Specifies the styles used to create the window. These styles can be ignored, combined with extended styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" + pass + + + @property + def exStyles(self)->'Any': + """Specifies the extended styles used to create the window. These styles can be ignored, combined with default styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" + pass + + + @property + def showState(self)->'Any': + """Specifies the initial display state of the window. Valid values are the same as those for the Win32 API ShowWindow function.""" + pass + + + @property + def hwndHelp(self)->'Any': + """Specifies the handle of the window if the window has been created.""" + pass + + + @property + def hwndCaller(self)->'Any': + """Specifies the window that will receive HTML Help notification messages. Notification messages are sent via Windows WM_NOTIFY messages.""" + pass + + + @property + def hwndToolBar(self)->'Any': + """Specifies the handle of the toolbar.""" + pass + + + @property + def hwndNavigation(self)->'Any': + """Specifies the handle of the Navigation pane.""" + pass + + + @property + def hwndHTML(self)->'Any': + """Specifies the handle of the Topic pane, which hosts Shdocvw.dll.""" + pass + + + @property + def navWidth(self)->'Any': + """Specifies the width of the Navigation pane when the Help Viewer is expanded.""" + pass + + + @property + def toolBarFlags(self)->'Any': + """Specifies which buttons to include on the toolbar.""" + pass + + + @property + def notExpanded(self)->'Any': + """Specifies that the Help Viewer open with the Navigation pane closed.""" + pass + + + @property + def curNavType(self)->'Any': + """Specifies the default tab to display on the Navigation pane.""" + pass + + + @property + def idNotify(self)->'Any': + """Specifies a non-zero ID for enabling HTML Help notification messages. This ID is passed as the wParam value of Windows WM_NOTIFY messages.""" + pass + + + @property + def typeName(self)->'str': + """A null-terminated string that specifies the name of the window type.""" + pass + + + @property + def caption(self)->'str': + """A null-terminated string that specifies the caption to display in the title bar of the window.""" + pass + + + @property + def windowPos(self)->'Any': + """(left,top,right,bottom). Specifies the coordinates of the window in pixels.""" + pass + + + @property + def HTMLPos(self)->'Any': + """(left,top,right,bottom). Specifies the coordinates of the Topic pane.""" + pass + + + @property + def toc(self)->'str': + """Specifies the contents (.hhc) file to display in the Navigation pane.""" + pass + + + @property + def index(self)->'str': + """Specifies the index (.hhk) file to display in the Navigation pane.""" + pass + + + @property + def file(self)->'str': + """Specifies the default HTML file to display in the Topic pane.""" + pass + + + @property + def home(self)->'str': + """Specifies the file or URL to display in the Topic pane when the Home button is clicked.""" + pass + + + @property + def jump1(self)->'str': + """Specifies the text to display underneath the Jump1 button.""" + pass + + + @property + def jump2(self)->'str': + """Specifies the text to display underneath the Jump2 button.""" + pass + + + @property + def urlJump1(self)->'str': + """Specifies the URL to jump to when the Jump1 button is clicked.""" + pass + + + @property + def urlJump2(self)->'str': + """Specifies the URL to jump to when the Jump2 button is clicked.""" + pass + + +class PyHINTERNET(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHKEY(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHTHEME(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHWINSTA(object): + """Wrapper for a handle to a window station - returned by CreateWindowStation, OpenWindowStation, or GetProcessWindowStation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumDesktops(self,) -> 'Tuple[Any, ...]': + """ + Lists names of desktops in the window station + +Args: + + + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def SetProcessWindowStation(self,) -> 'None': + """ + Associates the calling process with the window station + +Args: + + + +Returns: + + None + + """ + pass + + + def CloseWindowStation(self,) -> 'None': + """ + Closes the window station handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICONINFO(object): + """Tuple describing an icon or cursor""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIID(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyINPUT_RECORD(object): + """Interface to the INPUT_RECORD struct used with console IO functions. Create using + +PyINPUT_RECORDType(EventType)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def EventType(self)->'Any': + """One of KEY_EVENT, MOUSE_EVENT, WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT. Cannot be changed after object is created""" + pass + + + @property + def KeyDown(self)->'Any': + """True for a key press, False for key release""" + pass + + + @property + def RepeatCount(self)->'Any': + """Nbr of repeats generated (key was held down if >1)""" + pass + + + @property + def VirtualKeyCode(self)->'Any': + """Device-independent key code, win32con.VK_*""" + pass + + + @property + def VirtualScanCode(self)->'Any': + """Device-dependent scan code generated by keyboard""" + pass + + + @property + def Char(self)->'str': + """Single unicode character generated by the keypress""" + pass + + + @property + def ControlKeyState(self)->'Any': + """State of modifier keys, combination of CAPSLOCK_ON, ENHANCED_KEY, LEFT_ALT_PRESSED, LEFT_CTRL_PRESSED, NUMLOCK_ON, RIGHT_ALT_PRESSED, RIGHT_CTRL_PRESSED, SCROLLLOCK_ON, SHIFT_PRESSED""" + pass + + + @property + def ButtonState(self)->'Any': + """Bitmask representing which mouse buttons were pressed.""" + pass + + + @property + def EventFlags(self)->'Any': + """DOUBLE_CLICK, MOUSE_MOVED or MOUSE_WHEELED, or 0. If 0, indicates a mouse button press""" + pass + + + @property + def MousePosition(self)->'PyCOORD': + """Position in character coordinates""" + pass + + + @property + def Size(self)->'PyCOORD': + """New size of screen buffer in character rows/columns""" + pass + + + @property + def SetFocus(self)->'Any': + """Reserved - Used only with type FOCUS_EVENT. This event is Reserved, and should be ignored.""" + pass + + + @property + def CommandId(self)->'Any': + """Used only with event type MENU_EVENT, which is reserved and should not be used""" + pass + + +class PyLOCALGROUP_INFO_0(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + +class PyLOCALGROUP_INFO_1(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'Union[str]': + """The group's comment.""" + pass + + +class PyLOCALGROUP_INFO_1002(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1002 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'Union[str]': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_0(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_0 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_1(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_1 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + + @property + def sidusage(self)->'Any': + """""" + pass + + + @property + def name(self)->'Union[str]': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_2(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_2 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + + @property + def sidusage(self)->'Any': + """""" + pass + + + @property + def domainandname(self)->'Union[str]': + """string containing the name of the member prefixed by the domain name and the "\\" separator character""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_3(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_3 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def domainandname(self)->'Union[str]': + """string containing the name of the member prefixed by the domain name and the "\\" separator character""" + pass + + +class PyLOGBRUSH(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Style(self)->'Any': + """Brush style, one of win32con.BS_* values""" + pass + + + @property + def Color(self)->'Any': + """RGB color value. Can also be DIB_PAL_COLORS or DIB_RGB_COLORS if Style is BS_DIBPATTERN or BS_DIBPATTERNPT=""" + pass + + + @property + def Hatch(self)->'Union[Any, int]': + """For BS_HATCH style, one of win32con.HS_*. Not used For BS_SOLID or BS_HOLLOW. For a pattern brush, this should be a handle to a bitmap""" + pass + + +class PyLOGFONT(object): + """A Python object, representing an PyLOGFONT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def lfHeight(self)->'int': + """""" + pass + + + @property + def lfWidth(self)->'int': + """""" + pass + + + @property + def lfEscapement(self)->'int': + """""" + pass + + + @property + def lfOrientation(self)->'int': + """""" + pass + + + @property + def lfWeight(self)->'int': + """""" + pass + + + @property + def lfItalic(self)->'int': + """""" + pass + + + @property + def lfUnderline(self)->'int': + """""" + pass + + + @property + def lfStrikeOut(self)->'int': + """""" + pass + + + @property + def lfCharSet(self)->'int': + """""" + pass + + + @property + def lfOutPrecision(self)->'int': + """""" + pass + + + @property + def lfClipPrecision(self)->'int': + """""" + pass + + + @property + def lfQuality(self)->'int': + """""" + pass + + + @property + def lfPitchAndFamily(self)->'int': + """""" + pass + + + @property + def lfFaceName(self)->'str': + """Name of the typeface, at most 31 characters""" + pass + + +class PyLSA_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyLUID_AND_ATTRIBUTES(object): + """A sequence containing (LUID,Attributes) representing an LUID_AND_ATTRIBUTES structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyLsaLogon_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyMSG(object): + """A tuple representing a win32 MSG structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNETRESOURCE(object): + """A Python object that encapsulates a Win32 NETRESOURCE structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwScope(self)->'int': + """""" + pass + + + @property + def dwType(self)->'int': + """""" + pass + + + @property + def dwDisplayType(self)->'int': + """""" + pass + + + @property + def dwUsage(self)->'int': + """""" + pass + + + @property + def localName(self)->'str': + """""" + pass + + + @property + def remoteName(self)->'str': + """""" + pass + + + @property + def comment(self)->'str': + """""" + pass + + + @property + def provider(self)->'str': + """""" + pass + + +class PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNET_VALIDATE_PERSISTED_FIELDS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNMHDR(object): + """A Python object, representing an NMHDR + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hwndFrom(self)->'Any': + """Window handle to the control sending a message. ??? 64-bit problem here ???""" + pass + + + @property + def idFrom(self)->'Any': + """Identifier of the control sending a message.""" + pass + + + @property + def code(self)->'Any': + """Notification code. This member can be a control-specific notification code or it can be one of the common notification codes.""" + pass + + +class PyNOTIFYICONDATA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyOVERLAPPED(object): + """A Python object, representing an overlapped structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Offset(self)->'int': + """Specifies a file position at which to start the transfer. The file position is a byte offset from the start of the file. The calling process sets this member before calling the ReadFile or WriteFile function. This member is ignored when reading from or writing to named pipes and communications devices.""" + pass + + + @property + def OffsetHigh(self)->'int': + """Specifies the high word of the byte offset at which to start the transfer.""" + pass + + + @property + def object(self)->'Any': + """Any python object that you want to attach to your overlapped I/O request.""" + pass + + + @property + def dword(self)->'Any': + """An integer buffer that may be used by overlapped functions (eg, win32file::WaitCommEvent)""" + pass + + + @property + def hEvent(self)->'int': + """Identifies an event set to the signaled state when the transfer has been completed. The calling process sets this member before calling the win32file::ReadFile, win32file::WriteFile, win32pipe::ConnectNamedPipe, or win32pipe::TransactNamedPipe function.""" + pass + + + @property + def Internal(self)->'int': + """Reserved for operating system use. (pointer-sized value)""" + pass + + + @property + def InternalHigh(self)->'int': + """Reserved for operating system use. (pointer-sized value)""" + pass + + +class PyOVERLAPPEDReadBuffer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPERF_COUNTER_DEFINITION(object): + """An object encapsulating a Windows NT Performance Monitor counter definition + +(PERF_COUNTER_DEFINITION).""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def DefaultScale(self)->'int': + """The default scale of the counter.""" + pass + + + @property + def DetailLevel(self)->'int': + """The detail level of the counter.""" + pass + + + @property + def CounterType(self)->'int': + """The counter type.""" + pass + + + @property + def CounterNameTitleIndex(self)->'int': + """""" + pass + + + @property + def CounterHelpTitleIndex(self)->'int': + """Sentinel""" + pass + + + def Increment(self,) -> 'None': + """ + Increments the value of the performance counter + +Args: + + + +Returns: + + None + + """ + pass + + + def Decrement(self,) -> 'None': + """ + Decrements the value of the performance counter + +Args: + + + +Returns: + + None + + """ + pass + + + def Set(self,) -> 'None': + """ + Sets the counter to a specific value + +Args: + + + +Returns: + + None + + """ + pass + + + def Get(self,) -> 'None': + """ + Gets the current value of the counter + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPERF_OBJECT_TYPE(object): + """A Python object, representing a PERF_OBJECT_TYPE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjectNameTitleIndex(self)->'int': + """""" + pass + + + @property + def ObjectHelpTitleIndex(self)->'int': + """""" + pass + + + @property + def DefaultCounterIndex(self)->'int': + """""" + pass + + + def Close(self,) -> 'None': + """ + Closes the object. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPOINT(object): + """Tuple of two ints (x,y) representing a POINT struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROFILEINFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def UserName(self)->'str': + """Name of user for which to load profile""" + pass + + + @property + def Flags(self)->'Any': + """Combination of PI_* flags""" + pass + + + @property + def ProfilePath(self)->'str': + """Path to roaming profile, can be None. Use win32net::NetUserGetInfo to retrieve user's profile path""" + pass + + + @property + def DefaultPath(self)->'str': + """Path to Default user profile, can be None""" + pass + + + @property + def ServerName(self)->'str': + """Domain controller, can be None""" + pass + + + @property + def PolicyPath(self)->'str': + """Location of policy file, can be None""" + pass + + + @property + def Profile(self)->'PyHKEY': + """Handle to root of user's registry key. This member is output.""" + pass + + +class PyPerfMonManager(object): + """A Python object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Close(self,) -> 'None': + """ + Closes the performance monitor manager. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPrinterHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyRECT(object): + """Tuple of 4 ints defining a rectangle: (left, top, right, bottom)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyResourceId(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySCROLLINFO(object): + """A tuple representing a SCROLLINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySC_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySECURITY_ATTRIBUTES(object): + """A Python object, representing a SECURITY_ATTRIBUTES structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bInheritHandle(self)->'Any': + """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle.""" + pass + + + @property + def SECURITY_DESCRIPTOR(self)->'PySECURITY_DESCRIPTOR': + """A PySECURITY_DESCRIPTOR, or None""" + pass + + +class PySECURITY_DESCRIPTOR(object): + """A Python object, representing a SECURITY_DESCRIPTOR structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Initialize the SD. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSecurityDescriptorOwner(self,) -> 'PySID': + """ + Return the owner of the security descriptor. + +Args: + + + +Returns: + + PySID + + """ + pass + + + def GetSecurityDescriptorDacl(self,) -> 'PyACL': + """ + Return the discretionary ACL of the security + +descriptor. + +Args: + + + +Returns: + + PyACL + + """ + pass + + + def GetSecurityDescriptorSacl(self,) -> 'PyACL': + """ + Return system access control list (SACL) of SD + +Args: + + + +Returns: + + PyACL + + """ + pass + + + def GetSecurityDescriptorControl(self,) -> 'Tuple[Any, Any]': + """ + Returns tuple of Control bit flags and + +revision of SD. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetSecurityDescriptorOwner(self,sid:'PySID',bOwnerDefaulted:'Any') -> 'None': + """ + Set owner SID. + +Args: + + sid(PySID):The sid to be set as owner in the security descriptor. + bOwnerDefaulted(Any):Normally set to false since this explicitely set the owner. + +Returns: + + None + + """ + pass + + + def SetSecurityDescriptorGroup(self,sid:'PySID',bOwnerDefaulted:'Any') -> 'Any': + """ + Set group SID. + +Args: + + sid(PySID):The group sid to be set in the security descriptor. + bOwnerDefaulted(Any):Normally set to false since this explicitely set the owner. + +Returns: + + Any + + """ + pass + + + def SetSecurityDescriptorSacl(self,bSaclPresent:'Any',SACL:'PyACL',bSaclDefaulted:'Any') -> 'None': + """ + Replaces system access control list (SACL) in the security + +descriptor. + +Args: + + bSaclPresent(Any):A flag indicating if SACL is to be used. If false, last 2 parms are ignored. + SACL(PyACL):The SACL to set in the security descriptor + bSaclDefaulted(Any):Flag, set to false if user has specifically set the SACL. + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the security descriptor is valid. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetLength(self,) -> 'None': + """ + return length of security descriptor (GetSecurityDescriptorLenght). + +Args: + + + +Returns: + + None + + """ + pass + + + def IsSelfRelative(self,) -> 'None': + """ + Returns 1 if security descriptor is self relative, 0 if absolute + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSecurityDescriptorControl(self,ControlBitsOfInterest:'Any',ControlBitsToSet:'Any') -> 'None': + """ + Sets the control bit flags related to inheritance for a + +security descriptor + +Args: + + ControlBitsOfInterest(Any):Bitmask of flags to be modified + ControlBitsToSet(Any):Bitmask containing flag values to setCommentsOnly exists on Windows 2000 or later + +Returns: + + None + + """ + pass + + +class PySERVER_INFO_100(object): + """A dictionary holding the information in a Win32 SERVER_INFO_100 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """""" + pass + + + @property + def name(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_101(object): + """A dictionary holding the information in a Win32 SERVER_INFO_101 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """""" + pass + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def version_major(self)->'Any': + """""" + pass + + + @property + def version_minor(self)->'Any': + """""" + pass + + + @property + def type(self)->'Any': + """one of the SV_TYPE_* constants""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_102(object): + """A dictionary holding the information in a Win32 SERVER_INFO_102 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """""" + pass + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def version_major(self)->'Any': + """""" + pass + + + @property + def version_minor(self)->'Any': + """""" + pass + + + @property + def type(self)->'Any': + """one of the SV_TYPE_* constants""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def users(self)->'Any': + """""" + pass + + + @property + def disc(self)->'Any': + """""" + pass + + + @property + def hidden(self)->'Any': + """""" + pass + + + @property + def announce(self)->'Any': + """""" + pass + + + @property + def anndelta(self)->'Any': + """""" + pass + + + @property + def userpath(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_402(object): + """A dictionary holding the information in a Win32 SERVER_INFO_402 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ulist_mtime(self)->'Any': + """""" + pass + + + @property + def glist_mtime(self)->'Any': + """""" + pass + + + @property + def alist_mtime(self)->'Any': + """""" + pass + + + @property + def security(self)->'Any': + """""" + pass + + + @property + def numadmin(self)->'Any': + """""" + pass + + + @property + def lanmask(self)->'Any': + """""" + pass + + + @property + def guestacct(self)->'Union[str]': + """""" + pass + + + @property + def chdevs(self)->'Any': + """""" + pass + + + @property + def chdevq(self)->'Any': + """""" + pass + + + @property + def chdevjobs(self)->'Any': + """""" + pass + + + @property + def connections(self)->'Any': + """""" + pass + + + @property + def shares(self)->'Any': + """""" + pass + + + @property + def openfiles(self)->'Any': + """""" + pass + + + @property + def sessopens(self)->'Any': + """""" + pass + + + @property + def sessvcs(self)->'Any': + """""" + pass + + + @property + def sessreqs(self)->'Any': + """""" + pass + + + @property + def opensearch(self)->'Any': + """""" + pass + + + @property + def activelocks(self)->'Any': + """""" + pass + + + @property + def numreqbuf(self)->'Any': + """""" + pass + + + @property + def sizreqbuf(self)->'Any': + """""" + pass + + + @property + def numbigbuf(self)->'Any': + """""" + pass + + + @property + def numfiletasks(self)->'Any': + """""" + pass + + + @property + def alertsched(self)->'Any': + """""" + pass + + + @property + def erroralert(self)->'Any': + """""" + pass + + + @property + def logonalert(self)->'Any': + """""" + pass + + + @property + def accessalert(self)->'Any': + """""" + pass + + + @property + def diskalert(self)->'Any': + """""" + pass + + + @property + def netioalert(self)->'Any': + """""" + pass + + + @property + def maxauditsz(self)->'Any': + """""" + pass + + + @property + def srvheuristics(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_403(object): + """A dictionary holding the information in a Win32 SERVER_INFO_403 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ulist_mtime(self)->'Any': + """""" + pass + + + @property + def glist_mtime(self)->'Any': + """""" + pass + + + @property + def alist_mtime(self)->'Any': + """""" + pass + + + @property + def security(self)->'Any': + """""" + pass + + + @property + def numadmin(self)->'Any': + """""" + pass + + + @property + def lanmask(self)->'Any': + """""" + pass + + + @property + def guestacct(self)->'Union[str]': + """""" + pass + + + @property + def chdevs(self)->'Any': + """""" + pass + + + @property + def chdevq(self)->'Any': + """""" + pass + + + @property + def chdevjobs(self)->'Any': + """""" + pass + + + @property + def connections(self)->'Any': + """""" + pass + + + @property + def shares(self)->'Any': + """""" + pass + + + @property + def openfiles(self)->'Any': + """""" + pass + + + @property + def sessopens(self)->'Any': + """""" + pass + + + @property + def sessvcs(self)->'Any': + """""" + pass + + + @property + def sessreqs(self)->'Any': + """""" + pass + + + @property + def opensearch(self)->'Any': + """""" + pass + + + @property + def activelocks(self)->'Any': + """""" + pass + + + @property + def numreqbuf(self)->'Any': + """""" + pass + + + @property + def sizreqbuf(self)->'Any': + """""" + pass + + + @property + def numbigbuf(self)->'Any': + """""" + pass + + + @property + def numfiletasks(self)->'Any': + """""" + pass + + + @property + def alertsched(self)->'Any': + """""" + pass + + + @property + def erroralert(self)->'Any': + """""" + pass + + + @property + def logonalert(self)->'Any': + """""" + pass + + + @property + def accessalert(self)->'Any': + """""" + pass + + + @property + def diskalert(self)->'Any': + """""" + pass + + + @property + def netioalert(self)->'Any': + """""" + pass + + + @property + def maxauditsz(self)->'Any': + """""" + pass + + + @property + def srvheuristics(self)->'Union[str]': + """""" + pass + + + @property + def auditedevents(self)->'Any': + """""" + pass + + + @property + def autoprofile(self)->'Any': + """""" + pass + + + @property + def autopath(self)->'Union[str]': + """""" + pass + + +class PySERVER_INFO_502(object): + """A dictionary holding the information in a Win32 SERVER_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sessopens(self)->'Any': + """""" + pass + + + @property + def sessvcs(self)->'Any': + """""" + pass + + + @property + def opensearch(self)->'Any': + """""" + pass + + + @property + def sizreqbuf(self)->'Any': + """""" + pass + + + @property + def initworkitems(self)->'Any': + """""" + pass + + + @property + def maxworkitems(self)->'Any': + """""" + pass + + + @property + def rawworkitems(self)->'Any': + """""" + pass + + + @property + def irpstacksize(self)->'Any': + """""" + pass + + + @property + def maxrawbuflen(self)->'Any': + """""" + pass + + + @property + def sessusers(self)->'Any': + """""" + pass + + + @property + def sessconns(self)->'Any': + """""" + pass + + + @property + def maxpagedmemoryusage(self)->'Any': + """""" + pass + + + @property + def maxnonpagedmemoryusage(self)->'Any': + """""" + pass + + + @property + def enableforcedlogoff(self)->'Any': + """""" + pass + + + @property + def timesource(self)->'Any': + """""" + pass + + + @property + def acceptdownlevelapis(self)->'Any': + """""" + pass + + + @property + def lmannounce(self)->'Any': + """""" + pass + + +class PySERVER_INFO_503(object): + """A dictionary holding the information in a Win32 SERVER_INFO_503 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sessopens(self)->'Any': + """""" + pass + + + @property + def sessvcs(self)->'Any': + """""" + pass + + + @property + def opensearch(self)->'Any': + """""" + pass + + + @property + def sizreqbuf(self)->'Any': + """""" + pass + + + @property + def initworkitems(self)->'Any': + """""" + pass + + + @property + def maxworkitems(self)->'Any': + """""" + pass + + + @property + def rawworkitems(self)->'Any': + """""" + pass + + + @property + def irpstacksize(self)->'Any': + """""" + pass + + + @property + def maxrawbuflen(self)->'Any': + """""" + pass + + + @property + def sessusers(self)->'Any': + """""" + pass + + + @property + def sessconns(self)->'Any': + """""" + pass + + + @property + def maxpagedmemoryusage(self)->'Any': + """""" + pass + + + @property + def maxnonpagedmemoryusage(self)->'Any': + """""" + pass + + + @property + def enableforcedlogoff(self)->'Any': + """""" + pass + + + @property + def timesource(self)->'Any': + """""" + pass + + + @property + def acceptdownlevelapis(self)->'Any': + """""" + pass + + + @property + def lmannounce(self)->'Any': + """""" + pass + + + @property + def domain(self)->'Union[str]': + """""" + pass + + + @property + def maxkeepsearch(self)->'Any': + """""" + pass + + + @property + def scavtimeout(self)->'Any': + """""" + pass + + + @property + def minrcvqueue(self)->'Any': + """""" + pass + + + @property + def minfreeworkitems(self)->'Any': + """""" + pass + + + @property + def xactmemsize(self)->'Any': + """""" + pass + + + @property + def threadpriority(self)->'Any': + """""" + pass + + + @property + def maxmpxct(self)->'Any': + """""" + pass + + + @property + def oplockbreakwait(self)->'Any': + """""" + pass + + + @property + def oplockbreakresponsewait(self)->'Any': + """""" + pass + + + @property + def enableoplocks(self)->'Any': + """""" + pass + + + @property + def enablefcbopens(self)->'Any': + """""" + pass + + + @property + def enableraw(self)->'Any': + """""" + pass + + + @property + def enablesharednetdrives(self)->'Any': + """""" + pass + + + @property + def minfreeconnections(self)->'Any': + """""" + pass + + + @property + def maxfreeconnections(self)->'Any': + """""" + pass + + +class PySHARE_INFO_0(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + +class PySHARE_INFO_1(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def remark(self)->'Union[str]': + """""" + pass + + +class PySHARE_INFO_2(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def remark(self)->'Union[str]': + """""" + pass + + + @property + def permissions(self)->'Any': + """""" + pass + + + @property + def max_uses(self)->'Any': + """""" + pass + + + @property + def current_uses(self)->'Any': + """""" + pass + + + @property + def path(self)->'Union[str]': + """""" + pass + + + @property + def passwd(self)->'Union[str]': + """""" + pass + + +class PySHARE_INFO_501(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_501 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def remark(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + +class PySHARE_INFO_502(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'Union[str]': + """""" + pass + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def remark(self)->'Union[str]': + """""" + pass + + + @property + def permissions(self)->'Any': + """""" + pass + + + @property + def max_uses(self)->'Any': + """""" + pass + + + @property + def current_uses(self)->'Any': + """""" + pass + + + @property + def path(self)->'Union[str]': + """""" + pass + + + @property + def passwd(self)->'Union[str]': + """""" + pass + + + @property + def reserved(self)->'Any': + """""" + pass + + + @property + def security_descriptor(self)->'PySECURITY_DESCRIPTOR': + """""" + pass + + +class PySID(object): + """A Python object, representing a SID structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,idAuthority:'Any',numSubauthorities:'Any') -> 'None': + """ + Initialize the SID. + +Args: + + idAuthority(Any):The identifier authority. + numSubauthorities(Any):The number of sub authorities to allocate. + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the SID is valid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSubAuthority(self,index:'Any',val:'Any') -> 'None': + """ + Sets a SID SubAuthority + +Args: + + index(Any):The index of the sub authority to set + val(Any):The value for the sub authorityCommentsSee the function SetSidSubAuthority + +Returns: + + None + + """ + pass + + + def GetLength(self,) -> 'Any': + """ + return length of SID (GetLengthSid). + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSubAuthorityCount(self,) -> 'Any': + """ + return nbr of subauthorities from SID + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSubAuthority(self,) -> 'Any': + """ + Returns specified subauthority from SID + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSidIdentifierAuthority(self,) -> 'Tuple[Any, Any, Any, Any, Any, Any]': + """ + Returns a tuple of 6 SID_IDENTIFIER_AUTHORITY + +constants + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any, Any, Any] + + """ + pass + + +class PySID_AND_ATTRIBUTES(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySIZE(object): + """Tuple of two ints (cx,cy) representing a SIZE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySMALL_RECT(object): + """Wrapper for a SMALL_RECT struct + +Create using PySMALL_RECTType(Left, Top, Right, Bottom). All params optional, defaulting to 0""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'Any': + """Left side of rectangle""" + pass + + + @property + def Top(self)->'Any': + """Top edge of rectangle""" + pass + + + @property + def Right(self)->'Any': + """Right edge of rectangle""" + pass + + + @property + def Bottom(self)->'Any': + """Bottome edge of rectangle""" + pass + + +class PySTARTUPINFO(object): + """A Python object, representing an STARTUPINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwX(self)->'int': + """Specifies the x offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" + pass + + + @property + def dwY(self)->'int': + """Specifies the y offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" + pass + + + @property + def dwXSize(self)->'int': + """Specifies the width, in pixels, of the window if a new window is created.""" + pass + + + @property + def dwYSize(self)->'int': + """Specifies the height, in pixels, of the window if a new window is created.""" + pass + + + @property + def dwXCountChars(self)->'int': + """For console processes, if a new console window is created, specifies the screen buffer width in character columns. This value is ignored in a GUI process.""" + pass + + + @property + def dwYCountChars(self)->'int': + """For console processes, if a new console window is created, specifies the screen buffer height in character rows.""" + pass + + + @property + def dwFillAttribute(self)->'int': + """Specifies the initial text and background colors if a new console window is created in a console application. These values are ignored in GUI applications""" + pass + + + @property + def dwFlags(self)->'int': + """This is a bit field that determines whether certain STARTUPINFO attributes are used when the process creates a window. To use many of the additional attributes, you typically must set the appropriate mask in this attribute, and also set the attributes themselves. Any combination of the win32con.STARTF_* flags can be specified.""" + pass + + + @property + def wShowWindow(self)->'int': + """Can be any of the SW_ constants defined in win32con. For GUI processes, this specifies the default value the first time ShowWindow is called.""" + pass + + + @property + def hStdInput(self)->'Union[int]': + """""" + pass + + + @property + def hStdOutput(self)->'Union[int]': + """""" + pass + + + @property + def hStdError(self)->'Union[int]': + """""" + pass + + + @property + def lpDesktop(self)->'Union[Any, str]': + """""" + pass + + + @property + def lpTitle(self)->'Union[Any, str]': + """""" + pass + + +class PySecBuffer(object): + """Python object wrapping a SecBuffer structure + +Created using win32security.PySecBufferType(type,size) where type is a SECBUFFER_* constant""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def BufferType(self)->'Any': + """""" + pass + + + @property + def Buffer(self)->'str': + """""" + pass + + + @property + def BufferSize(self)->'Any': + """""" + pass + + + @property + def MaxBufferSize(self)->'Any': + """""" + pass + + + def Clear(self,) -> 'None': + """ + Resets the buffer to all NULL's, and set the current size to maximum + +Args: + + + +Returns: + + None + + """ + pass + + +class PySecBufferDesc(object): + """Sequence-like object that contains a group of buffers to be used with SSPI functions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def append(self,buffer:'Any') -> 'None': + """ + None + +Args: + + buffer(Any):PySecBuffer object to be attached to the group of buffers + +Returns: + + None + + """ + pass + + +class PyTOKEN_GROUPS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTOKEN_PRIVILEGES(object): + """An object representing Win32 token privileges.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTRIVERTEX(object): + """Dict representing a TRIVERTEX struct containing color information at a point""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def x(self)->'Any': + """X coord in logical units""" + pass + + + @property + def y(self)->'Any': + """Y coord in logical units""" + pass + + + @property + def Red(self)->'Any': + """Red component""" + pass + + + @property + def Green(self)->'Any': + """Green component""" + pass + + + @property + def Blue(self)->'Any': + """Blue component""" + pass + + + @property + def Alpha(self)->'Any': + """Transparency value""" + pass + + +class PyTRUSTEE(object): + """A dictionary representing a TRUSTEE structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def TrusteeForm(self)->'Any': + """""" + pass + + + @property + def TrusteeType(self)->'Any': + """""" + pass + + + @property + def Identifier(self)->'Any': + """Depends on the value of TrusteeForm (string or sid)""" + pass + + + @property + def MultipleTrustee(self)->'Any': + """default is None""" + pass + + + @property + def MultipleTrusteeOperation(self)->'Any': + """default is None""" + pass + + +class PyTS_HANDLE(object): + """Handle to a Terminal Server""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTime(object): + """A Python object, representing an instant in time.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def year(self)->'Any': + """""" + pass + + + @property + def month(self)->'Any': + """""" + pass + + + @property + def weekday(self)->'Any': + """""" + pass + + + @property + def day(self)->'Any': + """""" + pass + + + @property + def hour(self)->'Any': + """""" + pass + + + @property + def minute(self)->'Any': + """""" + pass + + + @property + def second(self)->'Any': + """""" + pass + + + @property + def msec(self)->'Any': + """""" + pass + + + def Format(self,_format:'str') -> 'str': + """ + Formats the time value. + +Args: + + _format(str):The format. See the comments section for a description of the supported flags.CommentsThe following format characters are supported.CharacterDescription%aAbbreviated weekday name%AFull weekday name%bAbbreviated month name%BFull month name%cDate and time representation appropriate for locale%dDay of month as decimal number (01 - 31)%HHour in 24-hour format (00 - 23)%IHour in 12-hour format (01 - 12)%jDay of year as decimal number (001 - 366)%mMonth as decimal number (01 - 12)%MMinute as decimal number (00 - 59)%pCurrent locale's A.M./P.M. indicator for 12-hour clock%SSecond as decimal number (00 - 59)%UWeek of year as decimal number, with Sunday as first day of week (00 - 51)%wWeekday as decimal number (0 - 6; Sunday is 0)%WWeek of year as decimal number, with Monday as first day of week (00 - 51)%xDate representation for current locale%XTime representation for current locale%yYear without century, as decimal number (00 - 99)%YYear with century, as decimal number%z, %ZTime-zone name or abbreviation; no characters if time zone is unknown%%Percent signAs in the printf function, the # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.Format CodeMeaning%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%# flag is ignored.%#cLong date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".%#xLong date representation, appropriate to current locale. For example: "Tuesday, March 14, 1995".%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#YRemove leading zeros (if any). + +Returns: + + str + + """ + pass + + +class PyUSER_INFO_0(object): + """A dictionary holding the information in a Win32 USER_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1(object): + """A dictionary holding the information in a Win32 USER_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[str]': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_10(object): + """A dictionary holding the information in a Win32 USER_INFO_10 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1003(object): + """A dictionary holding the information in a Win32 USER_INFO_1003 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def password(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1005(object): + """A dictionary holding the information in a Win32 USER_INFO_1005 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def priv(self)->'Any': + """""" + pass + + +class PyUSER_INFO_1006(object): + """A dictionary holding the information in a Win32 USER_INFO_1006 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1007(object): + """A dictionary holding the information in a Win32 USER_INFO_1007 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1008(object): + """A dictionary holding the information in a Win32 USER_INFO_1008 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def flags(self)->'Any': + """""" + pass + + +class PyUSER_INFO_1009(object): + """A dictionary holding the information in a Win32 USER_INFO_1009 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_1010(object): + """A dictionary holding the information in a Win32 USER_INFO_1010 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def auth_flags(self)->'Any': + """""" + pass + + +class PyUSER_INFO_1011(object): + """A dictionary holding the information in a Win32 USER_INFO_1011 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + +class PyUSER_INFO_11(object): + """A dictionary holding the information in a Win32 USER_INFO_11 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def auth_flags(self)->'Any': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def parms(self)->'Union[str]': + """""" + pass + + + @property + def last_logon(self)->'Any': + """""" + pass + + + @property + def last_logoff(self)->'Any': + """""" + pass + + + @property + def bad_pw_count(self)->'Any': + """""" + pass + + + @property + def num_logons(self)->'Any': + """""" + pass + + + @property + def logon_server(self)->'Union[str]': + """""" + pass + + + @property + def country_code(self)->'Any': + """""" + pass + + + @property + def workstations(self)->'Union[str]': + """""" + pass + + + @property + def max_storage(self)->'Any': + """""" + pass + + + @property + def units_per_week(self)->'Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def code_page(self)->'Any': + """""" + pass + + +class PyUSER_INFO_2(object): + """A dictionary holding the information in a Win32 USER_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[str]': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'Any': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def parms(self)->'Union[str]': + """""" + pass + + + @property + def workstations(self)->'Union[str]': + """""" + pass + + + @property + def last_logon(self)->'Any': + """""" + pass + + + @property + def last_logoff(self)->'Any': + """""" + pass + + + @property + def acct_expires(self)->'Any': + """""" + pass + + + @property + def max_storage(self)->'Any': + """""" + pass + + + @property + def units_per_week(self)->'Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'Any': + """""" + pass + + + @property + def num_logons(self)->'Any': + """""" + pass + + + @property + def logon_server(self)->'Union[str]': + """""" + pass + + + @property + def country_code(self)->'Any': + """""" + pass + + + @property + def code_page(self)->'Any': + """""" + pass + + +class PyUSER_INFO_20(object): + """A dictionary holding the information in a Win32 USER_INFO_20 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def user_id(self)->'Any': + """""" + pass + + +class PyUSER_INFO_3(object): + """A dictionary holding the information in a Win32 USER_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[str]': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'Any': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def parms(self)->'Union[str]': + """""" + pass + + + @property + def workstations(self)->'Union[str]': + """""" + pass + + + @property + def last_logon(self)->'Any': + """""" + pass + + + @property + def last_logoff(self)->'Any': + """""" + pass + + + @property + def acct_expires(self)->'Any': + """""" + pass + + + @property + def max_storage(self)->'Any': + """""" + pass + + + @property + def units_per_week(self)->'Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'Any': + """""" + pass + + + @property + def num_logons(self)->'Any': + """""" + pass + + + @property + def logon_server(self)->'Union[str]': + """""" + pass + + + @property + def country_code(self)->'Any': + """""" + pass + + + @property + def code_page(self)->'Any': + """""" + pass + + + @property + def user_id(self)->'Any': + """""" + pass + + + @property + def primary_group_id(self)->'Any': + """""" + pass + + + @property + def profile(self)->'Union[str]': + """""" + pass + + + @property + def home_dir_drive(self)->'Union[str]': + """""" + pass + + + @property + def password_expired(self)->'Any': + """""" + pass + + +class PyUSER_INFO_4(object): + """A dictionary holding the information in a Win32 USER_INFO_4 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[str]': + """""" + pass + + + @property + def password_age(self)->'Any': + """""" + pass + + + @property + def priv(self)->'Any': + """""" + pass + + + @property + def home_dir(self)->'Union[str]': + """""" + pass + + + @property + def comment(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + + @property + def script_path(self)->'Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'Any': + """""" + pass + + + @property + def full_name(self)->'Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'Union[str]': + """""" + pass + + + @property + def parms(self)->'Union[str]': + """""" + pass + + + @property + def workstations(self)->'Union[str]': + """""" + pass + + + @property + def last_logon(self)->'Any': + """""" + pass + + + @property + def last_logoff(self)->'Any': + """""" + pass + + + @property + def acct_expires(self)->'Any': + """""" + pass + + + @property + def max_storage(self)->'Any': + """""" + pass + + + @property + def units_per_week(self)->'Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'Any': + """""" + pass + + + @property + def num_logons(self)->'Any': + """""" + pass + + + @property + def logon_server(self)->'Union[str]': + """""" + pass + + + @property + def country_code(self)->'Any': + """""" + pass + + + @property + def code_page(self)->'Any': + """""" + pass + + + @property + def user_sid(self)->'PySID': + """""" + pass + + + @property + def primary_group_id(self)->'Any': + """""" + pass + + + @property + def profile(self)->'Union[str]': + """""" + pass + + + @property + def home_dir_drive(self)->'Union[str]': + """""" + pass + + + @property + def password_expired(self)->'Any': + """""" + pass + + +class PyUSER_MODALS_INFO_0(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def min_passwd_len(self)->'Any': + """""" + pass + + + @property + def max_passwd_age(self)->'Any': + """""" + pass + + + @property + def min_passwd_age(self)->'Any': + """""" + pass + + + @property + def force_logoff(self)->'Any': + """""" + pass + + + @property + def password_hist_len(self)->'Any': + """""" + pass + + +class PyUSER_MODALS_INFO_1(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def role(self)->'Any': + """""" + pass + + + @property + def primary(self)->'Union[str]': + """""" + pass + + +class PyUSER_MODALS_INFO_2(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def domain_name(self)->'Union[str]': + """""" + pass + + + @property + def domain_id(self)->'PySID': + """""" + pass + + +class PyUSER_MODALS_INFO_3(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def lockout_duration(self)->'Any': + """""" + pass + + + @property + def lockout_observation_window(self)->'Any': + """""" + pass + + + @property + def usrmod3_lockout_threshold(self)->'Any': + """""" + pass + + +class PyUSE_INFO_0(object): + """A dictionary holding the infomation in a Win32 USE_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'Union[str]': + """""" + pass + + + @property + def remote(self)->'Union[str]': + """""" + pass + + +class PyUSE_INFO_1(object): + """A dictionary holding the infomation in a Win32 USE_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'Union[str]': + """""" + pass + + + @property + def remote(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[Any, str]': + """""" + pass + + + @property + def status(self)->'Any': + """""" + pass + + + @property + def asg_type(self)->'Any': + """""" + pass + + + @property + def refcount(self)->'Any': + """""" + pass + + + @property + def usecount(self)->'Any': + """""" + pass + + +class PyUSE_INFO_2(object): + """A dictionary holding the infomation in a Win32 USE_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'Union[str]': + """""" + pass + + + @property + def remote(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[Any, str]': + """""" + pass + + + @property + def status(self)->'Any': + """""" + pass + + + @property + def asg_type(self)->'Any': + """""" + pass + + + @property + def refcount(self)->'Any': + """""" + pass + + + @property + def usecount(self)->'Any': + """""" + pass + + + @property + def username(self)->'Union[str]': + """""" + pass + + + @property + def domainname(self)->'Union[str]': + """""" + pass + + +class PyUSE_INFO_3(object): + """A dictionary holding the infomation in a Win32 USE_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'Union[str]': + """""" + pass + + + @property + def remote(self)->'Union[str]': + """""" + pass + + + @property + def password(self)->'Union[Any, str]': + """""" + pass + + + @property + def status(self)->'Any': + """""" + pass + + + @property + def asg_type(self)->'Any': + """""" + pass + + + @property + def refcount(self)->'Any': + """""" + pass + + + @property + def usecount(self)->'Any': + """""" + pass + + + @property + def username(self)->'Union[str]': + """""" + pass + + + @property + def domainname(self)->'Union[str]': + """""" + pass + + + @property + def flags(self)->'Any': + """""" + pass + + +class PyUnicode(object): + """A Python object, representing a Unicode string.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyUrlCacheHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWAVEFORMATEX(object): + """A Python object, representing a WAVEFORMATEX structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def wFormatTag(self)->'int': + """Waveform-audio format type. pywintypes only defines WAVE_FORMAT_PCM as a constant. Other values must be looked up in the mmsystem.h header file.""" + pass + + + @property + def nChannels(self)->'int': + """Number of channels. 1 for Mono, 2 for Stereo, anything, but never 5.1.""" + pass + + + @property + def nSamplesPerSec(self)->'int': + """Sample rate, in samples per second (hertz), that each channel should be played or recorded. If wFormatTag is WAVE_FORMAT_PCM, then common values for nSamplesPerSec are 8000, 11025, 22050, and 44100 Hz""" + pass + + + @property + def nAvgBytesPerSec(self)->'int': + """Required average data-transfer rate, in bytes per second, for the format tag. If wFormatTag is WAVE_FORMAT_PCM, nAvgBytesPerSec should be equal to the product of nSamplesPerSec and nBlockAlign.""" + pass + + + @property + def nBlockAlign(self)->'int': + """Block alignment, in bytes. The block alignment is the minimum atomic unit of data for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, nBlockAlign should be equal to the product of nChannels and wBitsPerSample divided by 8 (bits per byte). For non-PCM formats, this member must be computed according to the manufacturer’s specification of the format tag.""" + pass + + + @property + def wBitsPerSample(self)->'int': + """Bits per sample for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, then wBitsPerSample should be equal to 8 or 16. Sentinel""" + pass + + +class PyWINHTTP_AUTOPROXY_OPTIONS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWINHTTP_PROXY_INFO(object): + """A tuple representing a WINHTTP_PROXY_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWKSTA_INFO_100(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_100 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """Indicates platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'Any': + """Minor version number of operating system running on the computer""" + pass + + +class PyWKSTA_INFO_101(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_101 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """Indicates platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def lanroot(self)->'Union[str]': + """Path to the LANMAN directory""" + pass + + +class PyWKSTA_INFO_102(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_102 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'Any': + """Indicate platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def lanroot(self)->'Union[str]': + """Path to the LANMAN directory""" + pass + + + @property + def logged_on_users(self)->'Any': + """Number of users who are logged on to the local computer""" + pass + + +class PyWKSTA_INFO_302(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_302 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki302_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'Any': + """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" + pass + + + @property + def keep_conn(self)->'Any': + """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" + pass + + + @property + def keep_search(self)->'Any': + """Defines the number of seconds an inactive search will continue.""" + pass + + + @property + def max_cmds(self)->'Any': + """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" + pass + + + @property + def num_work_buf(self)->'Any': + """Specifies the number of internal buffers the computer has.""" + pass + + + @property + def siz_work_buf(self)->'Any': + """Specifies the size, in bytes, of each internal buffer.""" + pass + + + @property + def max_wrk_cache(self)->'Any': + """Specifies the maximum size, in bytes, of an internal cache buffer.""" + pass + + + @property + def siz_error(self)->'Any': + """Specifies the size, in bytes, of an internal error buffer.""" + pass + + + @property + def num_alerts(self)->'Any': + """Specifies the maximum number of clients that can receive alert messages. (This member is not supported under MS-DOS.) The Alerter service registers at least three clients when it begins to run.""" + pass + + + @property + def num_services(self)->'Any': + """Specifies the number of services that can be installed on the computer at any time.""" + pass + + + @property + def errlog_sz(self)->'Any': + """Specifies the maximum size, in kilobytes, of the client's error log file.""" + pass + + + @property + def print_buf_time(self)->'Any': + """Specifies the number of seconds the server waits before closing inactive compatibility-mode print jobs.""" + pass + + + @property + def num_char_buf(self)->'Any': + """Specifies the number of character pipe buffers and device buffers the client can have.""" + pass + + + @property + def siz_char_buf(self)->'Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def wrk_heuristics(self)->'Union[str]': + """Pointer to a Unicode string of flags used to control a client's operation.""" + pass + + + @property + def mailslots(self)->'Any': + """Specifies the maximum number of mailslots allowed.""" + pass + + + @property + def num_dgram_buf(self)->'Any': + """Specifies the number of buffers to allocate for receiving datagrams.""" + pass + + +class PyWKSTA_INFO_402(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_402 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki402_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def keep_conn(self)->'Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def keep_search(self)->'Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def max_cmds(self)->'Any': + """..""" + pass + + + @property + def num_work_buf(self)->'Any': + """Number of users who are logged on to the local computer""" + pass + + + @property + def siz_work_buf(self)->'Any': + """Number of users who are logged on to the local computer""" + pass + + + @property + def max_wrk_cache(self)->'Any': + """..""" + pass + + + @property + def sess_timeout(self)->'Any': + """..""" + pass + + + @property + def siz_error(self)->'Any': + """..""" + pass + + + @property + def num_alerts(self)->'Any': + """..""" + pass + + + @property + def num_services(self)->'Any': + """..""" + pass + + + @property + def errlog_sz(self)->'Any': + """..""" + pass + + + @property + def print_buf_time(self)->'Any': + """..""" + pass + + + @property + def num_char_buf(self)->'Any': + """..""" + pass + + + @property + def siz_char_buf(self)->'Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def mailslots(self)->'Any': + """..""" + pass + + + @property + def num_dgram_buf(self)->'Any': + """..""" + pass + + + @property + def max_threads(self)->'Any': + """Number of threads the computer can dedicate to the network""" + pass + + +class PyWKSTA_INFO_502(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki502_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'Any': + """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" + pass + + + @property + def keep_conn(self)->'Any': + """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" + pass + + + @property + def max_cmds(self)->'Any': + """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" + pass + + + @property + def max_wrk_cache(self)->'Any': + """Indicates the number of seconds the server waits before disconnecting an inactive session.""" + pass + + + @property + def siz_char_buf(self)->'Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def lock_quota(self)->'Any': + """TODO""" + pass + + + @property + def lock_increment(self)->'Any': + """TODO""" + pass + + + @property + def lock_maximum(self)->'Any': + """TODO""" + pass + + + @property + def pipe_increment(self)->'Any': + """TODO""" + pass + + + @property + def pipe_maximum(self)->'Any': + """TODO""" + pass + + + @property + def cache_file_timeout(self)->'Any': + """TODO""" + pass + + + @property + def dormant_file_limit(self)->'Any': + """TODO""" + pass + + + @property + def read_ahead_throughput(self)->'Any': + """TODO""" + pass + + + @property + def num_mailslot_buffers(self)->'Any': + """TODO""" + pass + + + @property + def num_srv_announce_buffers(self)->'Any': + """TODO""" + pass + + + @property + def max_illegal_datagram_events(self)->'Any': + """TODO""" + pass + + + @property + def illegal_datagram_event_reset_frequency(self)->'Any': + """TODO""" + pass + + + @property + def log_election_packets(self)->'Any': + """TODO""" + pass + + + @property + def use_opportunistic_locking(self)->'Any': + """TODO""" + pass + + + @property + def use_unlock_behind(self)->'Any': + """TODO""" + pass + + + @property + def use_close_behind(self)->'Any': + """TODO""" + pass + + + @property + def buf_named_pipes(self)->'Any': + """TODO""" + pass + + + @property + def use_lock_read_unlock(self)->'Any': + """TODO""" + pass + + + @property + def utilize_nt_caching(self)->'Any': + """TODO""" + pass + + + @property + def use_raw_read(self)->'Any': + """TODO""" + pass + + + @property + def use_raw_write(self)->'Any': + """TODO""" + pass + + + @property + def use_write_raw_data(self)->'Any': + """TODO""" + pass + + + @property + def use_encryption(self)->'Any': + """TODO""" + pass + + + @property + def buf_files_deny_write(self)->'Any': + """TODO""" + pass + + + @property + def buf_read_only_files(self)->'Any': + """TODO""" + pass + + + @property + def force_core_create_mode(self)->'Any': + """TODO""" + pass + + + @property + def use_512_byte_max_transfer(self)->'Any': + """TODO""" + pass + + +class PyWKSTA_TRANSPORT_INFO_0(object): + """A dictionary holding the infomation in a Win32 WKSTA_TRANSPORT_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def quality_of_service(self)->'Any': + """Supplies a value that specifies the search order of the transport protocol with respect to other transport protocols. The highest value is searched first.""" + pass + + + @property + def number_of_vcs(self)->'Any': + """Specifies the number of clients communicating with the server using this transport protocol.""" + pass + + + @property + def transport_name(self)->'Union[str]': + """Specifies the device name of the transport protocol.""" + pass + + + @property + def transport_address(self)->'Union[str]': + """Specifies the address of the server on this transport protocol.""" + pass + + + @property + def wan_ish(self)->'Any': + """This member is ignored by the NetWkstaTransportAdd function. For the NetWkstaTransportEnum function, this member indicates that this transport protocol is a WAN transport protocol. This member is set TRUE for NetBIOS/TCIP; it is set FALSE for NetBEUI and NetBIOS/IPX.""" + pass + + +class PyWKSTA_USER_INFO_0(object): + """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def username(self)->'Union[str]': + """Name of user currently logged on to the workstation""" + pass + + +class PyWKSTA_USER_INFO_1(object): + """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def username(self)->'Union[str]': + """Name of user currently logged on to the workstation""" + pass + + + @property + def logon_domain(self)->'Union[str]': + """Returns the domain name of the user account of the user currently logged on to the workstation.""" + pass + + + @property + def oth_domains(self)->'Union[str]': + """Returns the list of other operating system domains browsed by the workstation. The domain names are separated by blanks.""" + pass + + + @property + def logon_server(self)->'Union[str]': + """Returns the name of the computer that authenticated the server.""" + pass + + +class PyWNDCLASS(object): + """A Python object, representing an WNDCLASS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def style(self)->'int': + """""" + pass + + + @property + def cbWndExtra(self)->'int': + """""" + pass + + + @property + def hInstance(self)->'int': + """""" + pass + + + @property + def hIcon(self)->'int': + """""" + pass + + + @property + def hCursor(self)->'int': + """""" + pass + + + @property + def hbrBackground(self)->'int': + """These 3 handled manually in PyWNDCLASS::getattro/setattro. The pymeth below is used as an end tag, so these props will be lost if below it""" + pass + + + @property + def lpszMenuName(self)->'Union[str]': + """""" + pass + + + @property + def lpszClassName(self)->'Union[str]': + """""" + pass + + + @property + def lpfnWndProc(self)->'Any': + """MethodsSetDialogProcSets the WNDCLASS to be for a dialog box. """ + pass + + + def SetDialogProc(self,) -> 'None': + """ + Sets the WNDCLASS to be for a dialog box + +Args: + + + +Returns: + + None + + """ + pass + + +class PyXFORM(object): + """Dict representing an XFORM struct used as a world transformation matrix + +All members are optional, defaulting to 0.0.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def M11(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M12(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M21(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M22(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def Dx(self)->'float': + """Horizontal offset in logical units""" + pass + + + @property + def Dy(self)->'float': + """Vertical offset in logical units""" + pass + + +class Pymmapfile(object): + """Object that provides access to memory-mapped file operations.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def close(self,) -> 'None': + """ + Closes the file mapping handle and releases mapped view + +Args: + + + +Returns: + + None + + """ + pass + + + def find(self,needle:'Any',start:'Any') -> 'Any': + """ + Finds a string in the buffer. + +Args: + + needle(Any):String to be located + start(Any):Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found + +Returns: + + Any:Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found + + + """ + pass + + + def flush(self,offset:'Any'=0,size:'Any'=0) -> 'None': + """ + Flushes memory buffer to disk + +Args: + + offset(Any):Position in buffer at which to flush + size(Any):Number of bytes to flush, 0 to flush remainder of buffer past the offset + +Returns: + + None + + """ + pass + + + def move(self,dest:'Any',src:'Any',count:'Any') -> 'None': + """ + Moves data from one place in buffer to another + +Args: + + dest(Any):Destination position in buffer + src(Any):Source position in buffer + count(Any):Number of bytes to move + +Returns: + + None + + """ + pass + + + def read(self,num_bytes:'Any') -> 'Any': + """ + Returns specified number of bytes from buffer, and advances current position + +Args: + + num_bytes(Any):Number of bytes to read + +Returns: + + Any + + """ + pass + + + def read_byte(self,) -> 'Any': + """ + Reads a single character from current pos + +Args: + + + +Returns: + + Any + + """ + pass + + + def read_line(self,) -> 'Any': + """ + Reads data from current pos up to next EOL. + +Args: + + + +Returns: + + Any + + """ + pass + + + def resize(self,MaximumSize:'Any',FileOffset:'Any'=0,NumberOfBytesToMap:'Any'=0) -> 'None': + """ + Resizes the file mapping and view. + +Args: + + MaximumSize(Any):New size for file mapping. Use a multiple of system page size (see win32api::GetSystemInfo) + FileOffset(Any):Offset into file mapping. Must be multiple of allocation granularity. + NumberOfBytesToMap(Any):New view size. Specify a multiple of system page size.CommentsIf MaximumSize is 0, only the mapped view will be affected.Accepts keyword args. + +Returns: + + None + + """ + pass + + + def seek(self,dist:'Any',how:'Any'=0) -> 'None': + """ + Changes current position + +Args: + + dist(Any):Distance to seek + how(Any):Pos from which to seekhowmeaning0Seek from start of buffer1Seek from current position2Seek backwards from end of buffer + +Returns: + + None + + """ + pass + + + def size(self,) -> 'Any': + """ + Returns size of current view + +Args: + + + +Returns: + + Any + + """ + pass + + + def tell(self,) -> 'Any': + """ + Returns current position in buffer + +Args: + + + +Returns: + + Any + + """ + pass + + + def write(self,data:'Any') -> 'None': + """ + Places data at current pos in buffer. + +Args: + + data(Any):Data to be written + +Returns: + + None + + """ + pass + + + def write_byte(self,char:'Any') -> 'None': + """ + Writes a single character of data + +Args: + + char(Any):Single byte to be placed in buffer + +Returns: + + None + + """ + pass + + +class RASDIALEXTENSIONS(object): + """An object that describes a Win32 RASDIALEXTENSIONS structure + +TRUE*/)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwfOptions(self)->'int': + """(fOptions may also be used)""" + pass + + + @property + def hwndParent(self)->'int': + """""" + pass + + + @property + def reserved(self)->'int': + """""" + pass + + + @property + def reserved1(self)->'int': + """""" + pass + + + @property + def RasEapInfo(self)->'Any': + """""" + pass + + +class RASDIALPARAMS(object): + """A tuple that describes a Win32 RASDIALPARAMS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SC_ACTION(object): + """Tuple of 2 ints (Type,Delay) used to represent an SC_ACTION structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Type(self)->'Any': + """One of SC_ACTION_NONE, SC_ACTION_REBOOT, SC_ACTION_RESTART, SC_ACTION_RUN_COMMAND""" + pass + + + @property + def Delay(self)->'Any': + """Time delay before specified action is taken (in milliseconds)""" + pass + + +class SERVICE_FAILURE_ACTIONS(object): + """A dictionary representing a SERVICE_FAILURE_ACTIONS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ResetPeriod(self)->'Any': + """Indicates how many seconds to wait to reset the failure count, can be INFINITE""" + pass + + + @property + def RebootMsg(self)->'Union[Any, str]': + """Message displayed when reboot action is taken""" + pass + + + @property + def Command(self)->'Union[Any, str]': + """Command line to execute for SC_ACTION_RUN_COMMAND""" + pass + + + @property + def Actions(self)->'Any': + """A tuple of SC_ACTION tuples""" + pass + + +class SERVICE_STATUS(object): + """A Win32 service status object is represented by a tuple:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TRACKMOUSEEVENT(object): + """A tuple of (dwFlags, hwndTrack, dwHoverTime)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class ULARGE_INTEGER(object): + """A Python object used wherever a COM ULARGE_INTEGER is used.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class WIN32_FIND_DATA(object): + """A tuple representing a WIN32_FIND_DATA structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class com_error(object): + """An exception raised when a COM exception occurs.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class connection(object): + """An object representing an ODBC connection""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def setautocommit(self,c:'Any') -> 'None': + """ + Sets the autocommit mode. + +Args: + + c(Any):The boolean autocommit mode. + +Returns: + + None + + """ + pass + + + def commit(self,) -> 'None': + """ + Commits a transaction. + +Args: + + + +Returns: + + None + + """ + pass + + + def rollback(self,) -> 'None': + """ + Rollsback a transaction. + +Args: + + + +Returns: + + None + + """ + pass + + + def cursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def close(self,) -> 'None': + """ + Closes the connection. + +Args: + + + +Returns: + + None + + """ + pass + + +class cursor(object): + """An object representing an ODBC cursor.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def close(self,) -> 'None': + """ + Closes the cursor + +Args: + + + +Returns: + + None + + """ + pass + + + def execute(self,sql:'str',arg:'Any') -> 'Any': + """ + Execute some SQL + +Args: + + sql(str):The SQL to execute + arg(Any):Input variables. + +Returns: + + Any + + """ + pass + + + def fetchone(self,) -> 'Any': + """ + Fetch one row of data + +Args: + + + +Returns: + + Any + + """ + pass + + + def fetchmany(self,) -> 'List[Any]': + """ + Fetch many rows of data + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def fetchall(self,) -> 'List[Any]': + """ + Fetch all rows of data + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def setinputsizes(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def setoutputsize(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class error(object): + """An exception raised when a win32 error occurs""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class COMPONENT(object): + """A dictionary containing data to fill a COMPPOS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ID(self)->'Any': + """Id of component, ignored when adding a new component""" + pass + + + @property + def ComponentType(self)->'Any': + """One of shellcon.COMP_TYPE_* values""" + pass + + + @property + def Checked(self)->'Any': + """True indicates item is currently displayed""" + pass + + + @property + def fDirty(self)->'Any': + """Indicates if unsaved changes exist""" + pass + + + @property + def NoScroll(self)->'Any': + """True disables scrolling""" + pass + + + @property + def Pos(self)->'Any': + """COMPPOS dictionary determining window size and placement""" + pass + + + @property + def FriendlyName(self)->'Any': + """String of at most MAX_PATH-1 characters, truncated if longer""" + pass + + + @property + def Source(self)->'Any': + """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" + pass + + + @property + def SubscribedURL(self)->'Any': + """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" + pass + + + @property + def CurItemState(self)->'Any': + """One of shellcon.IS_* flags""" + pass + + + @property + def Original(self)->'Any': + """COMPSTATEINFO dictionary""" + pass + + + @property + def Restored(self)->'Any': + """COMPSTATEINFO dictionary""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class COMPONENTSOPT(object): + """A dictionary containing data to fill a COMPONENTSOPT struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def EnableComponents(self)->'Any': + """True if components are enabled""" + pass + + + @property + def ActiveDesktop(self)->'Any': + """True if Active Desktop is enabled""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class COMPPOS(object): + """A dictionary containing data to fill a COMPPOS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'Any': + """""" + pass + + + @property + def Top(self)->'Any': + """""" + pass + + + @property + def Width(self)->'Any': + """""" + pass + + + @property + def Height(self)->'Any': + """""" + pass + + + @property + def Index(self)->'Any': + """""" + pass + + + @property + def CanResize(self)->'Any': + """""" + pass + + + @property + def CanResizeX(self)->'Any': + """""" + pass + + + @property + def CanResizeY(self)->'Any': + """""" + pass + + + @property + def PreferredLeftPercent(self)->'Any': + """""" + pass + + + @property + def PreferredTopPercent(self)->'Any': + """""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class COMPSTATEINFO(object): + """A dictionary containing data to fill a COMPSTATEINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'Any': + """Specified as screen coordinates""" + pass + + + @property + def Top(self)->'Any': + """Specified as screen coordinates""" + pass + + + @property + def Width(self)->'Any': + """Measured in pixels""" + pass + + + @property + def Height(self)->'Any': + """Measured in pixels""" + pass + + + @property + def dwItemState(self)->'Any': + """One of IS_NORMAL, IS_FULLSCREEN IS_SPLIT""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class DEFCONTENTMENU(object): + """A tuple representing a DEFCONTEXTMENU structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class ELEMDESC(object): + """An ELEMDESC is respresented as a tuple of""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class EXP_DARWIN_LINK(object): + """Dictionary containing information for a EXP_DARWIN_LINK struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def DarwinID(self)->'Any': + """The Windows Installer id for the link""" + pass + + + @property + def wDarwinID(self)->'Any': + """The installer id as Unicode""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class EXP_SPECIAL_FOLDER(object): + """Dictionary containing information for a EXP_SPECIAL_FOLDER struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def idSpecialFolder(self)->'Any': + """The special folder id of the target (shellcon.CSIDL_*)""" + pass + + + @property + def Offset(self)->'Any': + """Offset into the link's PIDL""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class EXP_SZ_LINK(object): + """Dictionary containing information for an EXP_SZ_LINK or EXP_SZ_ICON struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def Target(self)->'Any': + """The link's target or icon location""" + pass + + + @property + def wTarget(self)->'Any': + """The target in Unicode form""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class FUNCDESC(object): + """A FUNCDESC object represents a COM TYPEATTR structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def memid(self)->'int': + """""" + pass + + + @property + def scodeArray(self)->'Tuple[Any, ...]': + """""" + pass + + + @property + def args(self)->'Tuple[Any, ...]': + """""" + pass + + + @property + def funckind(self)->'Any': + """""" + pass + + + @property + def invkind(self)->'Any': + """""" + pass + + + @property + def callconv(self)->'Any': + """""" + pass + + + @property + def cParamsOpt(self)->'Any': + """""" + pass + + + @property + def oVft(self)->'Any': + """""" + pass + + + @property + def rettype(self)->'Any': + """""" + pass + + + @property + def wFuncFlags(self)->'Any': + """""" + pass + + +class IDLDESC(object): + """An IDLDESC is respresented as""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class MAPIINIT_0(object): + """A MAPIINIT_0 is represented as a tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class NT_CONSOLE_PROPS(object): + """Dictionary containing information for a NT_CONSOLE_PROPS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def FillAttribute(self)->'Any': + """Character attributes for fill operations""" + pass + + + @property + def PopupFillAttribute(self)->'Any': + """Fill attributes for popups""" + pass + + + @property + def ScreenBufferSize(self)->'Tuple[Any, Any]': + """Size of console screen buffer, in character cells""" + pass + + + @property + def WindowSize(self)->'Tuple[Any, Any]': + """Size of console window in character cells""" + pass + + + @property + def WindowOrigin(self)->'Tuple[Any, Any]': + """Window position, in screen coordinates""" + pass + + + @property + def nFont(self)->'Any': + """Number of font to be displayed. See win32console::GetNumberOfConsoleFonts""" + pass + + + @property + def InputBufferSize(self)->'Any': + """Size of console's input buffer""" + pass + + + @property + def FontSize(self)->'Tuple[Any, Any]': + """Size of font""" + pass + + + @property + def FontFamily(self)->'Any': + """Font family""" + pass + + + @property + def FontWeight(self)->'Any': + """Controls thickness of displayed font""" + pass + + + @property + def FaceName(self)->'Any': + """Name of font face, 31 characters at most""" + pass + + + @property + def CursorSize(self)->'Any': + """Relative size of cursor, expressed as percent of character size""" + pass + + + @property + def FullScreen(self)->'Any': + """Causes console to run in full screen mode""" + pass + + + @property + def QuickEdit(self)->'Any': + """""" + pass + + + @property + def InsertMode(self)->'Any': + """""" + pass + + + @property + def AutoPosition(self)->'Any': + """Lets system determine window placement""" + pass + + + @property + def HistoryBufferSize(self)->'Any': + """Size of command line history buffer""" + pass + + + @property + def NumberOfHistoryBuffers(self)->'Any': + """""" + pass + + + @property + def HistoryNoDup(self)->'Any': + """""" + pass + + + @property + def ColorTable(self)->'Any': + """Tuple of 16 ints containing console's color attributes""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class NT_FE_CONSOLE_PROPS(object): + """Dictionary containing information for a NT_FE_CONSOLE_PROPS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def CodePage(self)->'Any': + """The codepage to be used for console text""" + pass + + + @property + def Size(self)->'Any': + """Size of structure, ignored on input""" + pass + + +class PROPSPEC(object): + """Identifies a property. Can be either an int property id, or a str/unicode property name.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyADSVALUE(object): + """A tuple:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyADS_ATTR_INFO(object): + """Represents a ADS_ATTR_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def AttrName(self)->'Any': + """The name""" + pass + + + @property + def ControlCode(self)->'int': + """""" + pass + + + @property + def ADsType(self)->'int': + """""" + pass + + + @property + def Values(self)->'List[Any]': + """""" + pass + + +class PyADS_OBJECT_INFO(object): + """Represents a ADS_OBJECT_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def RDN(self)->'Any': + """The name""" + pass + + + @property + def ObjectDN(self)->'Any': + """""" + pass + + + @property + def ParentDN(self)->'Any': + """""" + pass + + + @property + def ClassName(self)->'Any': + """""" + pass + + +class PyADS_SEARCHPREF_INFO(object): + """A tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyBIND_OPTS(object): + """Dictionary representation of a BIND_OPTS struct + +May eventually be extended to include BIND_OPTS2 members""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'Any': + """Value from BIND_FLAGS enum: BIND_MAYBOTHERUSER, BIND_JUSTTESTEXISTENCE or 0""" + pass + + + @property + def Mode(self)->'Any': + """Combination of storagecon.STGM_* values""" + pass + + + @property + def TickCountDeadline(self)->'Any': + """Operation timeout in milliseconds""" + pass + + + @property + def cbStruct(self)->'Any': + """Size of struct, ignored on input""" + pass + + +class PyCMINVOKECOMMANDINFO(object): + """A tuple of parameters to be converted to a CMINVOKECOMMANDINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDSBCAPS(object): + """A Python object, representing a DSBCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Flags that specify buffer-object capabilities.FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" + pass + + + @property + def nChannels(self)->'int': + """Size of the buffer, in bytes.""" + pass + + + @property + def dwUnlockTransferRate(self)->'int': + """Specifies the rate, in kilobytes per second, at which data is transferred to the buffer memory when IDirectSoundBuffer::Unlock is called. High-performance applications can use this value to determine the time required for IDirectSoundBuffer::Unlock to execute. For software buffers located in system memory, the rate will be very high because no processing is required. For hardware buffers, the rate might be slower because the buffer might have to be downloaded to the sound card, which might have a limited transfer rate.""" + pass + + + @property + def nAvgBytesPerSec(self)->'int': + """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle. Sentinel""" + pass + + +class PyDSBUFFERDESC(object): + """A Python object, representing a DSBUFFERDESC structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Specify one or more of the following:FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" + pass + + + @property + def dwBufferBytes(self)->'int': + """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" + pass + + + @property + def lpwfxFormat(self)->'Any': + """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" + pass + + +class PyDSCAPS(object): + """A Python object, representing a DSCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be one or more of the following:FlagDescriptionDSCAPS_PRIMARYMONOThe device supports monophonic primary buffers.DSCAPS_PRIMARYSTEREOThe device supports stereo primary buffers.DSCAPS_PRIMARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_PRIMARY16BITThe device supports primary sound buffers with 16-bit samples.DSCAPS_CONTINUOUSRATEThe device supports all sample rates between the dwMinSecondarySampleRate and dwMaxSecondarySampleRate member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency.DSCAPS_EMULDRIVERThe device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected.DSCAPS_CERTIFIEDThis driver has been tested and certified by Microsoft.DSCAPS_SECONDARYMONOThe device supports hardware-mixed monophonic secondary buffers.DSCAPS_SECONDARYSTEREOThe device supports hardware-mixed stereo secondary buffers.DSCAPS_SECONDARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_SECONDARY16BITThe device supports hardware-mixed secondary sound buffers with 16-bit samples.""" + pass + + + @property + def dwMinSecondarySampleRate(self)->'int': + """Minimum sample rate supported by this device's hardware secondary sound buffers.""" + pass + + + @property + def dwMaxSecondarySampleRate(self)->'int': + """Maximum sample rate supported by this device's hardware secondary sound buffers.""" + pass + + + @property + def dwPrimaryBuffers(self)->'int': + """Number of primary buffers supported. This value will always be 1.""" + pass + + + @property + def dwMaxHwMixingAllBuffers(self)->'int': + """Specifies the total number of buffers that can be mixed in hardware. This member can be less than the sum of dwMaxHwMixingStaticBuffers and dwMaxHwMixingStreamingBuffers. Resource tradeoffs frequently occur.""" + pass + + + @property + def dwMaxHwMixingStaticBuffers(self)->'int': + """Specifies the maximum number of static sound buffers.""" + pass + + + @property + def dwMaxHwMixingStreamingBuffers(self)->'int': + """Specifies the maximum number of streaming sound buffers.""" + pass + + + @property + def dwFreeHwMixingAllBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwFreeHwMixingStaticBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwFreeHwMixingStreamingBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwMaxHw3DAllBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwMaxHw3DStaticBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwMaxHw3DStreamingBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DAllBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DStaticBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DStreamingBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwTotalHwMemBytes(self)->'int': + """Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.""" + pass + + + @property + def dwFreeHwMemBytes(self)->'int': + """Size, in bytes, of the free memory on the sound card.""" + pass + + + @property + def dwMaxContigFreeHwMemBytes(self)->'int': + """Size, in bytes, of the largest contiguous block of free memory on the sound card.""" + pass + + + @property + def dwUnlockTransferRateHwBuffers(self)->'int': + """Description of the rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the IDirectSoundBuffer::Update method.""" + pass + + + @property + def dwPlayCpuOverheadSwBuffers(self)->'int': + """Description of the processing overhead, as a percentage of the central processing unit, needed to mix software buffers (those located in main system memory). This varies according to the bus type, the processor type, and the clock speed. The unlock transfer rate for software buffers is 0 because the data need not be transferred anywhere. Similarly, the play processing overhead for hardware buffers is 0 because the mixing is done by the sound device.""" + pass + + +class PyDSCBCAPS(object): + """A Python object, representing a DSCBCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be 0 or DSCBCAPS_EMULDRIVER (indicates that no DirectSound Device is available and standard wave audio functions are being used).""" + pass + + + @property + def dwBufferBytes(self)->'int': + """The size, in bytes, of the capture buffer.""" + pass + + +class PyDSCBUFFERDESC(object): + """A Python object, representing a DSCBUFFERDESC structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Can be zero or the following flag:FlagDescriptionDSCBCAPS_WAVEMAPPEDThe Win32 wave mapper will be used for formats not supported by the device.""" + pass + + + @property + def dwBufferBytes(self)->'int': + """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" + pass + + + @property + def lpwfxFormat(self)->'Any': + """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" + pass + + +class PyDSCCAPS(object): + """A Python object, representing a DSCCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be zero or the following flag:FlagDescriptionDSCCAPS_EMULDRIVERIndicates that no DirectSound Device is available and standard wave audio functions are being used.""" + pass + + + @property + def dwFormats(self)->'int': + """Bitset of supported WAVE_FORMAT formats.""" + pass + + + @property + def dwChannels(self)->'int': + """Number of channels supported by the device.""" + pass + + +class PyDSOP_FILTER_FLAGS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uplevel(self)->'Any': + """""" + pass + + + @property + def downlevel(self)->'Any': + """""" + pass + + +class PyDSOP_SCOPE_INIT_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def type(self)->'Any': + """""" + pass + + + @property + def scope(self)->'Any': + """""" + pass + + + @property + def hr(self)->'Any': + """""" + pass + + + @property + def dcName(self)->'str': + """""" + pass + + + @property + def filterFlags(self)->'Any': + """""" + pass + + +class PyDSOP_SCOPE_INIT_INFOs(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDSOP_UPLEVEL_FILTER_FLAGS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bothModes(self)->'Any': + """""" + pass + + + @property + def mixedModeOnly(self)->'Any': + """""" + pass + + + @property + def nativeModeOnly(self)->'Any': + """""" + pass + + +class PyFORMATETC(object): + """Tuple representing a FORMATETC struct describing an OLE data format""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyGFileOperationProgressSink(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def StartOperations(self,) -> 'None': + """ + Called as operation begins, before any modifications are done + +Args: + + + +Returns: + + None + + """ + pass + + + def FinishOperations(self,Result:'Any') -> 'None': + """ + Called after all actions have been performed + +Args: + + Result(Any):HRESULT of last operation performed + +Returns: + + None + + """ + pass + + + def PreRenameItem(self,Flags:'Any',Item:'Any',NewName:'Any') -> 'None': + """ + Called before each file rename + +Args: + + Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(Any):Shell interface of the copied item + NewName(Any):New display name of the item + +Returns: + + None + + """ + pass + + + def PostRenameItem(self,Flags:'Any',Item:'Any',NewName:'Any',hrRename:'Any',NewlyCreated:'Any') -> 'None': + """ + Called after each file rename + +Args: + + Flags(Any):Flags specifying rename behaviour, combination of shellcon.TSF_* flags + Item(Any):Shell interface of item before rename + NewName(Any):The new name of the item, may be mangled to resolve filename conflicts + hrRename(Any):HRESULT of the rename operation + NewlyCreated(Any):Shell interface of the item after rename + +Returns: + + None + + """ + pass + + + def PreMoveItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': + """ + Called before each move operation + +Args: + + Flags(Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags + Item(Any):The item to be moved + DestinationFolder(Any):The folder into which it will be moved + NewName(Any):Name of moved item, may be None if not to be changed + +Returns: + + None + + """ + pass + + + def PostMoveItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any',hrMove:'Any',NewlyCreated:'Any') -> 'None': + """ + Called after each move operation + +Args: + + Flags(Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags + Item(Any):Interface of the item before it was moved + DestinationFolder(Any):The folder into which it was moved + NewName(Any):Name of item in its new location, may be mangled in case of conflict + hrMove(Any):HRESULT of the move operation + NewlyCreated(Any):Shell interface of the item in its new location + +Returns: + + None + + """ + pass + + + def PreCopyItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': + """ + Called before each copy operation + +Args: + + Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(Any):The item to be copied + DestinationFolder(Any):Folder into which it will be copied + NewName(Any):Name to be given to the copy, will be None if keeping original name + +Returns: + + None + + """ + pass + + + def PostCopyItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any',hrCopy:'Any',NewlyCreated:'Any') -> 'None': + """ + Called after each copy operation + +Args: + + Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(Any):The original item + DestinationFolder(Any):Folder into which it was copied + NewName(Any):Name of item after copy, may be mangled in case of name conflict + hrCopy(Any):HRESULT of the copy operation + NewlyCreated(Any):Shell interface of the copy + +Returns: + + None + + """ + pass + + + def PreDeleteItem(self,Flags:'Any',Item:'Any') -> 'None': + """ + Called before each delete operation + +Args: + + Flags(Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags + Item(Any):Item to be deleted + +Returns: + + None + + """ + pass + + + def PostDeleteItem(self,Flags:'Any',Item:'Any',hrDelete:'Any',NewlyCreated:'Any') -> 'None': + """ + Called after each delete operation + +Args: + + Flags(Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags + Item(Any):Item that was deleted + hrDelete(Any):HRESULT of the delete operation + NewlyCreated(Any):Item in the recycle bin, or None if deleted without recycling + +Returns: + + None + + """ + pass + + + def PreNewItem(self,Flags:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': + """ + Called before each new file is created + +Args: + + Flags(Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags + DestinationFolder(Any):Folder where item will be created + NewName(Any):Name of item to be created + +Returns: + + None + + """ + pass + + + def PostNewItem(self,Flags:'Any',DestinationFolder:'Any',NewName:'Any',TemplateName:'Any',FileAttributes:'Any',hrNew:'Any',NewItem:'Any') -> 'None': + """ + Called after each new file is created + +Args: + + Flags(Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags + DestinationFolder(Any):Folder in which item was created + NewName(Any):Name of created item, may be mangled if file name conflicts occurred + TemplateName(Any):Template file used to initialize new item + FileAttributes(Any):File attributes of new item + hrNew(Any):HRESULT of the create operation + NewItem(Any):Shell interface of created item + +Returns: + + None + + """ + pass + + + def UpdateProgress(self,WorkTotal:'Any',WorkSoFar:'Any') -> 'None': + """ + Gives an estimate of total work completed + +Args: + + WorkTotal(Any):Undimensioned number representing total amount of work + WorkSoFar(Any):Undimensioned number representing amount already completed + +Returns: + + None + + """ + pass + + + def ResetTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + + def PauseTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + + def ResumeTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + +class PyGSecurityInformation(object): + """Gateway wrapper for the implement-only ISecurityInformation interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObjectInformation(self,) -> 'Any': + """ + Returns information identifying the object + +whose security is to be editted, and which pages are to appear in the property sheet + +Args: + + + +Returns: + + Any:PyGSecurityInformation.GetObjectInformation +SI_OBJECT_INFO = GetObjectInformation()Returns information identifying the object + +whose security is to be editted, and which pages are to appear in the property sheet +Comments + +Due to peculiarities of the underlying system calls, this method will only be called once, + +and subsequent calls will return the information obtained on the first call. As a consequence, a new + +instance of the interface will need to be created for each object whose security is to be displayed. +Return ValueYour implementation of this method should return a SI_OBJECT_INFO tuple + + + """ + pass + + + def GetSecurity(self,RequestedInformation:'Any',Default:'Any') -> 'PySECURITY_DESCRIPTOR': + """ + Retrieves the object's current security + +settings + +Args: + + RequestedInformation(Any):Combination of SECURITY_INFORMATION flags indicating which components of the object's security descriptor you should return + Default(Any):If true, return a default security descriptor rather than current security. (invoked when 'Reset' button is clicked) + +Returns: + + PySECURITY_DESCRIPTOR + + """ + pass + + + def SetSecurity(self,SecurityInformation:'Any',SecurityDescriptor:'PySECURITY_DESCRIPTOR') -> 'None': + """ + Applies the modified security to the object + +Args: + + SecurityInformation(Any):SECURITY_INFORMATION flags specifying which types of security information are to be applied + SecurityDescriptor(PySECURITY_DESCRIPTOR):The security information to be applied to the objectReturn ValueAny returned value is ignored + +Returns: + + None:The security information to be applied to the objectReturn ValueAny returned value is ignored + + + """ + pass + + + def GetAccessRights(self,ObjectType:'PyIID',Flags:'Any') -> 'Tuple[Any, Any]': + """ + Retrieves permission that can be set + +Args: + + ObjectType(PyIID):GUID representing type of object, may be None + Flags(Any):Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, and a zero-based index indicating which of them is the default + +Returns: + + Tuple[Any, Any]:Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, + +SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, + +and a zero-based index indicating which of them is the default + + + """ + pass + + + def MapGeneric(self,ObjectType:'PyIID',AceFlags:'Any',Mask:'Any') -> 'Any': + """ + Translates generic access rights to specific equivalents + +Args: + + ObjectType(PyIID):Type of object that permissions apply to, None or GUID_NULL indicates object itself + AceFlags(Any):Flags from the ACE that contains the permissions + Mask(Any):Bitmask containing access rightsCommentsSee win32security::MapGenericMaskReturn ValueThis method should return the input bitmask will all generic rights mapped to specific rights + +Returns: + + Any:Bitmask containing access rightsComments + +See win32security::MapGenericMask +Return ValueThis method should return the input bitmask will all generic rights mapped to specific rights + + + """ + pass + + + def GetInheritTypes(self,) -> 'Tuple[Any, ...]': + """ + Requests types of inheritance that your + +implementation supports + +Args: + + + +Returns: + + Tuple[Any, ...]:PyGSecurityInformation.GetInheritTypes + +(SI_INHERIT_TYPE,...) = GetInheritTypes()Requests types of inheritance that your + +implementation supports +Return ValueReturns a sequence of SI_INHERIT_TYPE tuples + + + """ + pass + + + def PropertySheetPageCallback(self,hwnd:'Any',Msg:'Any',Page:'Any') -> 'None': + """ + Called by each page as it is created and destroyed + +Args: + + hwnd(Any):Handle to the window for the page + Msg(Any):Flag indicating type of event, one of PSPCB_CREATE,PSPCB_RELEASE,PSPCB_SI_INITDIALOG + Page(Any):SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored + +Returns: + + None:SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored + + + """ + pass + + +class PyIADesktopP2(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def UpdateAllDesktopSubscriptions(self,) -> 'None': + """ + Updates webpage subscriptions on the desktop + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIADs(object): + """An object representing the IADs interface. + +In most cases you can achieve the same result via IDispatch - however, this + +interface allows you get get and set properties without the IDispatch + +overhead.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ADsPath(self)->'str': + """""" + pass + + + @property + def AdsPath(self)->'str': + """Synonym for ADsPath""" + pass + + + @property + def Class(self)->'str': + """""" + pass + + + @property + def GUID(self)->'str': + """Like the IADs method, this returns a string rather than a GUID object.""" + pass + + + @property + def Name(self)->'str': + """""" + pass + + + @property + def Parent(self)->'str': + """""" + pass + + + @property + def Schema(self)->'str': + """""" + pass + + + def GetInfo(self,) -> 'None': + """ + Description of GetInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetInfo(self,) -> 'None': + """ + Description of SetInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def Get(self,prop:'str') -> 'Any': + """ + Description of Get. + +Args: + + prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. + +Returns: + + Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + +may be an array, or any types supported by COM variant. + + + """ + pass + + + def Put(self,_property:'str',val:'Any') -> 'None': + """ + Description of Put. + +Args: + + _property(str):The property name to set + val(Any):The value to set. + +Returns: + + None + + """ + pass + + + def get(self,prop:'str') -> 'Any': + """ + Description of Get. + +Args: + + prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. + +Returns: + + Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + +may be an array, or any types supported by COM variant. + + + """ + pass + + + def put(self,_property:'str',val:'Any') -> 'None': + """ + Description of Put. + +Args: + + _property(str):The property name to set + val(Any):The value to set. + +Returns: + + None + + """ + pass + + +class PyIADsContainer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObject(self,_class:'str',relativeName:'str') -> 'Any': + """ + None + +Args: + + _class(str):Specifies the name of the object class as known in the underlying directory and identical to the one retrieved through the get_Class property method. If the class name is None, the provider returns the first item found in the container. + relativeName(str):Specifies the name of the object as known in the underlying directory and identical to the one retrieved through the get_Name property method. + +Returns: + + Any + + """ + pass + + + def get_Count(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def get_Filter(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Filter(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_Hints(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Hints(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + +class PyIADsUser(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def get_AccountDisabled(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_AccountDisabled(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_AccountExpirationDate(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_AccountExpirationDate(self,val:'PyTime') -> 'None': + """ + None + +Args: + + val(PyTime): + +Returns: + + None + + """ + pass + + + def get_BadLoginAddress(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def get_BadLoginCount(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def get_Department(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Department(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_Description(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Description(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_Division(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_Division(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_EmailAddress(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_EmailAddress(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_EmployeeID(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_EmployeeID(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_FirstName(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_FirstName(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_FullName(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_FullName(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_HomeDirectory(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_HomeDirectory(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_HomePage(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_HomePage(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def get_LoginScript(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def put_LoginScript(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def SetPassword(self,val:'Any') -> 'None': + """ + None + +Args: + + val(Any): + +Returns: + + None + + """ + pass + + + def ChangePassword(self,oldval:'Any',newval:'Any') -> 'None': + """ + None + +Args: + + oldval(Any): + newval(Any): + +Returns: + + None + + """ + pass + + +class PyIActiveDesktop(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ApplyChanges(self,Flags:'Any') -> 'None': + """ + Applies changes to ActiveDesktop settings and persists them to the registry. + +Args: + + Flags(Any):Combination of shellcon.AD_APPLY_* flags + +Returns: + + None + + """ + pass + + + def GetWallpaper(self,cchWallpaper:'Any',Reserved:'Any'=0) -> 'Any': + """ + Returns the current wallpaper + +Args: + + cchWallpaper(Any):Number of characters to allocate for buffer + Reserved(Any):Use 0 if passed in + +Returns: + + Any + + """ + pass + + + def SetWallpaper(self,Wallpaper:'Any',Reserved:'Any'=0) -> 'None': + """ + Sets the desktop wallpaper + +Args: + + Wallpaper(Any):File to be used as new wallpaper + Reserved(Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetWallpaperOptions(self,Reserved:'Any'=0) -> 'Any': + """ + Returns wallpaper style + +Args: + + Reserved(Any):Use 0 if passed inReturn ValueReturns one of the WPSTYLE_* values + +Returns: + + Any:Use 0 if passed in +Return ValueReturns one of the WPSTYLE_* values + + + """ + pass + + + def SetWallpaperOptions(self,Style:'Any',Reserved:'Any'=0) -> 'None': + """ + Sets wallpaper style + +Args: + + Style(Any):The wallpaper style, one of the WPSTYLE_* constants + Reserved(Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetPattern(self,cchPattern:'Any'=1024,Reserved:'Any'=0) -> 'None': + """ + Returns the wallpaper pattern + +Args: + + cchPattern(Any):Number of characters to allocate for buffer + Reserved(Any):Use 0 if passed inReturn ValueReturns a unicode string containing decimal values representing the pattern + +Returns: + + None:Use 0 if passed in +Return ValueReturns a unicode string containing decimal values representing the pattern + + + """ + pass + + + def SetPattern(self,Pattern:'Any',Reserved:'Any'=0) -> 'None': + """ + Sets the wallpaper pattern + +Args: + + Pattern(Any):String of decimal numbers representing a picture + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetDesktopItemOptions(self,) -> 'Any': + """ + Returns options for Active Desktop. + +Args: + + + +Returns: + + Any:PyIActiveDesktop.GetDesktopItemOptions + +dict = GetDesktopItemOptions()Returns options for Active Desktop. +Return ValueReturns a COMPONENTSOPT dictionary + + + """ + pass + + + def SetDesktopItemOptions(self,comp:'Any',Reserved:'Any'=0) -> 'None': + """ + Sets Active Desktop options + +Args: + + comp(Any):COMPONENTSOPT dictionary + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddDesktopItem(self,comp:'Any',Reserved:'Any'=0) -> 'None': + """ + Creates a new item to display on the desktop + +Args: + + comp(Any):COMPONENT dictionary + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddDesktopItemWithUI(self,hwnd:'int',comp:'Any',Flags:'Any') -> 'None': + """ + Adds a desktop item, allowing user interaction + +Args: + + hwnd(int):Handle to parent window + comp(Any):COMPONENT dictionary + Flags(Any):One of shellcon.DTI_ADDUI_* flags + +Returns: + + None + + """ + pass + + + def ModifyDesktopItem(self,comp:'Any',Flags:'Any') -> 'None': + """ + Changes parameters for a desktop item + +Args: + + comp(Any):COMPONENT dictionary + Flags(Any):Combination of shellcon.COMP_ELEM_* flags + +Returns: + + None + + """ + pass + + + def RemoveDesktopItem(self,comp:'Any',Reserved:'Any'=0) -> 'None': + """ + Removes an item from the Active Desktop + +Args: + + comp(Any):COMPONENT dictionary specifying which component to remove + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetDesktopItemCount(self,) -> 'None': + """ + Returns number of defined desktop items. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDesktopItem(self,Component:'Any',Reserved:'Any'=0) -> 'Any': + """ + Returns desktop item parameters by index + +Args: + + Component(Any):The zero-based index of the component to get + Reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary describing the item + +Returns: + + Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary describing the item + + + """ + pass + + + def GetDesktopItemByID(self,ID:'Any',reserved:'Any'=0) -> 'Any': + """ + Returns desktop item parameters by Id + +Args: + + ID(Any):The Id of the desktop item + reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary + +Returns: + + Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary + + + """ + pass + + + def GenerateDesktopItemHtml(self,FileName:'Any',comp:'Any',Reserved:'Any'=0) -> 'None': + """ + Creates an HTML page for the desktop item + +Args: + + FileName(Any):Name of file to be created + comp(Any):COMPONENT dictionary specifying the desktop item + Reserved(Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddUrl(self,hwnd:'int',Source:'Any',comp:'Any',Flags:'Any') -> 'None': + """ + Adds a web page to desktop, allowing user interaction + +Args: + + hwnd(int):Parent windows for any user interactive + Source(Any):Source URL + comp(Any):COMPONENT dictionary + Flags(Any):ADDURL_SILENT, or 0 + +Returns: + + None + + """ + pass + + + def GetDesktopItemBySource(self,Source:'Any',Reserved:'Any'=0) -> 'Any': + """ + Returns desktop item parameters by URL + +Args: + + Source(Any):The URL address of the item to retrieve + Reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary + +Returns: + + Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary + + + """ + pass + + +class PyIActiveDesktopP(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSafeMode(self,Flags:'Any') -> 'None': + """ + Changes Active Desktop to safe mode + +Args: + + Flags(Any):One of shellcon.SSM_* flags + +Returns: + + None + + """ + pass + + +class PyIActiveScriptDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetScriptTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'Any') -> 'Tuple[Any, ...]': + """ + Returns the text attributes for an arbitrary block + +of script text. + +Args: + + pstrCode(str):The script block text. + pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + dwFlags(Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument.CommentsSmart hosts use this call to delegate GetText calls made on their axscript::PyIDebugDocumentText + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def GetScriptletTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'Any') -> 'None': + """ + Description of GetScriptletTextAttributes. + +Args: + + pstrCode(str):The script block text. + pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + dwFlags(Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + +Returns: + + None + + """ + pass + + + def EnumCodeContextsOfPosition(self,dwSourceContext:'Any',uCharacterOffset:'Any',uNumChars:'Any') -> 'None': + """ + Description of EnumCodeContextsOfPosition. + +Args: + + dwSourceContext(Any):Description for dwSourceContext + uCharacterOffset(Any):Description for uCharacterOffset + uNumChars(Any):Description for uNumChars + +Returns: + + None + + """ + pass + + +class PyIActiveScriptError(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetExceptionInfo(self,) -> 'None': + """ + Description of GetExceptionInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSourcePosition(self,) -> 'None': + """ + Description of GetSourcePosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSourceLineText(self,) -> 'None': + """ + Description of GetSourceLineText. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIActiveScriptErrorDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContext(self,) -> 'None': + """ + Description of GetDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStackFrame(self,) -> 'None': + """ + Description of GetStackFrame. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIActiveScriptParseProcedure(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseProcedureText(self,pstrCode:'Any',pstrFormalParams:'Any',pstrProcedureName:'Any',pstrItemName:'Any',punkContext:'Any',pstrDelimiter:'Any',dwSourceContextCookie:'Any',ulStartingLineNumber:'Any',dwFlags:'Any') -> 'None': + """ + Description of ParseProcedureText. + +Args: + + pstrCode(Any):Description for pstrCode + pstrFormalParams(Any):Description for pstrFormalParams + pstrProcedureName(Any):Description for pstrProcedureName + pstrItemName(Any):Description for pstrItemName + punkContext(Any):Description for punkContext + pstrDelimiter(Any):Description for pstrDelimiter + dwSourceContextCookie(Any):Description for dwSourceContextCookie + ulStartingLineNumber(Any):Description for ulStartingLineNumber + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + +class PyIActiveScriptSite(object): + """An object providing the IActiveScriptSite interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLCID(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemInfo(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDocVersionString(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnStateChange(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnEnterScript(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnLeaveScript(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnScriptError(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnScriptTerminate(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIActiveScriptSiteDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContextFromPosition(self,dwSourceContext:'Any',uCharacterOffset:'Any',uNumChars:'Any') -> 'None': + """ + Description of GetDocumentContextFromPosition. + +Args: + + dwSourceContext(Any):Description for dwSourceContext + uCharacterOffset(Any):Description for uCharacterOffset + uNumChars(Any):Description for uNumChars + +Returns: + + None + + """ + pass + + + def GetApplication(self,) -> 'None': + """ + Description of GetApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootApplicationNode(self,) -> 'None': + """ + Description of GetRootApplicationNode. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnScriptErrorDebug(self,) -> 'Tuple[Any, Any]': + """ + Allows a smart host to control the handling of runtime + +errors + +Args: + + + +Returns: + + Tuple[Any, Any]:PyIActiveScriptSiteDebug.OnScriptErrorDebug + +int, int = OnScriptErrorDebug()Allows a smart host to control the handling of runtime + +errors +Return ValueThe result is a tuple of (bCallDebugger, bCallOnScriptErrorWhenContinuing) + + + """ + pass + + +class PyIAddrBook(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ResolveName(self,uiParm:'Any',flags:'Any',entryTitle:'str',ADRLIST:'Any') -> 'None': + """ + Performs name resolution, assigning entry identifiers to recipients in a recipient list. + +Args: + + uiParm(Any):hwnd of a dialogs parent. + flags(Any):Bitmask of flags that controls whether a dialog box can be displayed. + entryTitle(str): + ADRLIST(Any):Partial addresses to resolve. + +Returns: + + None + + """ + pass + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a folder or message and returns an interface object for further access. + +Args: + + entryId(str):The entryID of the object + iid(PyIID):The IID of the object to return, or None for the default IID + flags(Any):Bitmask of flags that controls how the object is opened. + +Returns: + + Any + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + +class PyIApplicationDebugger(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryAlive(self,) -> 'None': + """ + Returns true if alive, else false. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateInstanceAtDebugger(self,rclsid:'PyIID',pUnkOuter:'Any',dwClsContext:'Any',riid:'PyIID') -> 'None': + """ + Create objects in the application process address space. + +Args: + + rclsid(PyIID):Description for rclsid + pUnkOuter(Any):Description for pUnkOuter + dwClsContext(Any):Description for dwClsContext + riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. + +Returns: + + None + + """ + pass + + + def onDebugOutput(self,pstr:'Any') -> 'None': + """ + None + +Args: + + pstr(Any):Description for pstrCommentsThe debugger can use this to display the string in an output window. + +Returns: + + None + + """ + pass + + + def onHandleBreakPoint(self,prpt:'Any',br:'Any',pError:'Any') -> 'None': + """ + Called when a breakpoint is hit. + +Args: + + prpt(Any):Description for prpt + br(Any):Description for br + pError(Any):Description for pErrorCommentsThe application will remain suspended until the debugger IDE calls PyIDebugApplication::ResumeFromBreakPoint. + +Returns: + + None + + """ + pass + + + def onClose(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def onDebuggerEvent(self,guid:'PyIID',uUnknown:'Any') -> 'None': + """ + Description of onDebuggerEvent. + +Args: + + guid(PyIID): + uUnknown(Any):CommentsThe semantics of guid and unknown are entirely application/debugger defined This method may return E_NOTIMPL. + +Returns: + + None + + """ + pass + + +class PyIApplicationDestinations(object): + """Allows an application to removed items from its jump lists""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'Any') -> 'None': + """ + Specifies the application whose jump list is to be accessed + +Args: + + AppID(Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier + +Returns: + + None + + """ + pass + + + def RemoveDestination(self,punk:'Any') -> 'None': + """ + Removes a single entry from the jump lists + +Args: + + punk(Any):IShellItem or IShellLink representing an item in the application's jump listCommentsDoes not remove pinned items + +Returns: + + None + + """ + pass + + + def RemoveAllDestinations(self,) -> 'None': + """ + Removes all Recent and Frequent jump list entries + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIApplicationDocumentLists(object): + """Interface used to retrieve the jump lists for an application""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'Any') -> 'None': + """ + Specifies the application whose jump list is to be accessed + +Args: + + AppID(Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier + +Returns: + + None + + """ + pass + + + def GetList(self,ListType:'Any',riid:'PyIID',ItemsDesired:'Any'=0) -> 'Any': + """ + Retrieves a list of items in a jump list + +Args: + + ListType(Any):Type of document list to return, shellcon.ADLT_RECENT or ADLT_FREQUENT + riid(PyIID):The interface to return, IID_IEnumObjects or IID_IObjectArray + ItemsDesired(Any):Number of items to return, use 0 for all available + +Returns: + + Any + + """ + pass + + +class PyIAsyncOperation(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAsyncMode(self,fDoOpAsync:'Any') -> 'None': + """ + Description of SetAsyncMode. + +Args: + + fDoOpAsync(Any):Description for fDoOpAsync + +Returns: + + None + + """ + pass + + + def GetAsyncMode(self,) -> 'Any': + """ + Description of GetAsyncMode. + +Args: + + + +Returns: + + Any + + """ + pass + + + def StartOperation(self,pbcReserved:'Any') -> 'None': + """ + Description of StartOperation. + +Args: + + pbcReserved(Any):Description for pbcReserved + +Returns: + + None + + """ + pass + + + def InOperation(self,) -> 'None': + """ + Description of InOperation. + +Args: + + + +Returns: + + None + + """ + pass + + + def EndOperation(self,hResult:'Any',pbcReserved:'Any',dwEffects:'Any') -> 'None': + """ + Description of EndOperation. + +Args: + + hResult(Any):Description for hResult + pbcReserved(Any):Description for pbcReserved + dwEffects(Any):Description for dwEffects + +Returns: + + None + + """ + pass + + +class PyIAttach(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + +class PyIBindCtx(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetRunningObjectTable(self,) -> 'Any': + """ + Retrieves an object interfacing to the Running + +Object Table. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetBindOptions(self,) -> 'Any': + """ + Retrieves the bind options for the bind context + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetBindOptions(self,bindopts:'Any') -> 'None': + """ + Sets the bind options for the context + +Args: + + bindopts(Any):PyBIND_OPTS dictionary containing the binding options + +Returns: + + None + + """ + pass + + + def RegisterObjectParam(self,Key:'str',punk:'Any') -> 'None': + """ + Adds an object to the context's keyed table of associated objects + +Args: + + Key(str):The string key for the object to be registered + punk(Any):COM object to be registered with the bind context + +Returns: + + None + + """ + pass + + + def RevokeObjectParam(self,Key:'str') -> 'None': + """ + Removes one of the bind context's registered objects + +Args: + + Key(str):The string key for the object to be removed + +Returns: + + None + + """ + pass + + + def GetObjectParam(self,Key:'str') -> 'Any': + """ + Returns one of the bind context's associated objects + +Args: + + Key(str):The string key for the object to be returned + +Returns: + + Any + + """ + pass + + + def EnumObjectParam(self,) -> 'Any': + """ + Creates an enumerator to list context's string keys + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIBrowserFrameOptions(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFrameOptions(self,dwMask:'Any') -> 'None': + """ + Description of GetFrameOptions. + +Args: + + dwMask(Any):Description for dwMask + +Returns: + + None + + """ + pass + + +class PyICancelMethodCalls(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Cancel(self,Seconds:'Any') -> 'None': + """ + Cancels a pending call + +Args: + + Seconds(Any):Wait timeout in seconds + +Returns: + + None + + """ + pass + + + def TestCancel(self,) -> 'Any': + """ + Checks if a request has been made to cancel a call + +Args: + + + +Returns: + + Any:PyICancelMethodCalls.TestCancel + +int = TestCancel()Checks if a request has been made to cancel a call +Return ValueCan return RPC_S_CALLPENDING or RPC_E_CALL_CANCELED + + + """ + pass + + +class PyICatInformation(object): + """A Python interface to ICatInformation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumCategories(self,lcid:'Any'=0) -> 'Any': + """ + Returns an enumerator for the component categories + +registered on the system. + +Args: + + lcid(Any):lcid + +Returns: + + Any + + """ + pass + + + def GetCategoryDesc(self,lcid:'Any'=0) -> 'str': + """ + Retrieves the localized description string for a specific category + +ID. + +Args: + + lcid(Any):lcidCommentsThe return type is a unicode object. + +Returns: + + str + + """ + pass + + + def EnumClassesOfCategories(self,listIIdImplemented:'List[PyIID]'=None,listIIdRequired:'Any'=None) -> 'Any': + """ + Returns an enumerator over the classes that + +implement one or more interfaces. + +Args: + + listIIdImplemented(List[PyIID]):A sequence of PyIID objects, or None. + listIIdRequired(Any):A sequence of PyIID objects, or None. + +Returns: + + Any + + """ + pass + + +class PyICatRegister(object): + """An interface to a COM ICatRegister interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def RegisterCategories(self,arg:'List[Any]') -> 'None': + """ + Registers one or more component categories. Each component category + +consists of a CATID and a list of locale-dependent description strings. + +Args: + + arg(List[Any]):A sequence of category descriptions. + +Returns: + + None + + """ + pass + + + def UnRegisterCategories(self,arg:'List[PyIID]') -> 'None': + """ + Unregister one or more previously registered categories. + +Args: + + arg(List[PyIID]):The list of category IDs to be unregistered. + +Returns: + + None + + """ + pass + + + def RegisterClassImplCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': + """ + Registers the class as implementing one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(List[PyIID]):A sequence of category IDs to be associated with the class. + +Returns: + + None + + """ + pass + + + def UnRegisterClassImplCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': + """ + Unregisters the class as implementing one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(List[PyIID]):A sequence of category IDs to be unregistered from the class. + +Returns: + + None + + """ + pass + + + def RegisterClassReqCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': + """ + Registers the class as requiring one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(List[PyIID]):A sequence of category IDs to be associated with the class. + +Returns: + + None + + """ + pass + + + def UnRegisterClassReqCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': + """ + Unregisters the class as requiring one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(List[PyIID]):A sequence of category IDs to be unregistered for the class. + +Returns: + + None + + """ + pass + + +class PyICategoryProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanCategorizeOnSCID(self,pscid:'Any') -> 'None': + """ + Description of CanCategorizeOnSCID. + +Args: + + pscid(Any):Description for pscid + +Returns: + + None + + """ + pass + + + def GetDefaultCategory(self,) -> 'None': + """ + Description of GetDefaultCategory. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCategoryForSCID(self,pscid:'Any') -> 'None': + """ + Description of GetCategoryForSCID. + +Args: + + pscid(Any):Description for pscid + +Returns: + + None + + """ + pass + + + def EnumCategories(self,) -> 'None': + """ + Description of EnumCategories. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCategoryName(self,guid:'PyIID') -> 'None': + """ + Description of GetCategoryName. + +Args: + + guid(PyIID):Description for pguidCommentsThe buffer is always 1024 chars long + +Returns: + + None + + """ + pass + + + def CreateCategory(self,guid:'PyIID',riid:'PyIID') -> 'None': + """ + Description of CreateCategory. + +Args: + + guid(PyIID):Description for pguid + riid(PyIID):Description for riid + +Returns: + + None + + """ + pass + + +class PyIClassFactory(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateInstance(self,outerUnknown:'Any',iid:'PyIID') -> 'Any': + """ + Creates an uninitialized object. + +Args: + + outerUnknown(Any):Usually None, otherwise the outer unknown if the object is being created as part of an aggregate. + iid(PyIID):The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the type specified by iid. + +Returns: + + Any:The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the + +type specified by iid. + + + """ + pass + + + def LockServer(self,bInc:'Any') -> 'None': + """ + Called by the client of a class object to keep a server open in memory, + +allowing instances to be created more quickly. + +Args: + + bInc(Any):1 of the server should be locked, 0 if the server should be unlocked. + +Returns: + + None + + """ + pass + + +class PyIClientSecurity(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryBlanket(self,Proxy:'Any') -> 'Any': + """ + Retrieves the authentication settings for an interface + +Args: + + Proxy(Any):An interface created through a proxy + +Returns: + + Any + + """ + pass + + + def SetBlanket(self,Proxy:'Any',AuthnSvc:'Any',AuthzSvc:'Any',ServerPrincipalName:'str',AuthnLevel:'Any',ImpLevel:'Any',AuthInfo:'Any',Capabilities:'Any') -> 'None': + """ + Changes the authentication options used with an interface + +Args: + + Proxy(Any):The proxy interface for which to set security options + AuthnSvc(Any):Authentication service identifier, pythoncom.RPC_C_AUTHN_* (but not RPC_C_AUTHN_LEVEL_*) + AuthzSvc(Any):Authorization service identifier, pythoncom.RPC_C_AUTHZ_* + ServerPrincipalName(str):SPN that identifies the server, can be None + AuthnLevel(Any):Authentication level, pythoncom.RPC_C_AUTHN_LEVEL_* + ImpLevel(Any):Impersonation level, pythoncom.RPC_C_IMP_LEVEL_* + AuthInfo(Any):Not supported yet, use only None + Capabilities(Any):Combination of pythoncom.EOAC_* flags. Must be a subset of the capabilities of the specified authentication service. + +Returns: + + None + + """ + pass + + + def CopyProxy(self,Proxy:'Any') -> 'Any': + """ + Makes a private copy of a proxy interface + +Args: + + Proxy(Any):The remote interface to be copied + +Returns: + + Any + + """ + pass + + +class PyIColumnProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,psci:'Any') -> 'None': + """ + Description of Initialize. + +Args: + + psci(Any):Description for psci + +Returns: + + None + + """ + pass + + + def GetColumnInfo(self,dwIndex:'Any') -> 'None': + """ + Description of GetColumnInfo. + +Args: + + dwIndex(Any):Description for dwIndex + +Returns: + + None + + """ + pass + + + def GetItemData(self,pscid:'Any',pscd:'Any') -> 'None': + """ + Description of GetItemData. + +Args: + + pscid(Any):Description for pscid + pscd(Any):Description for pscd + +Returns: + + None + + """ + pass + + +class PyIConnectionPoint(object): + """A Python wrapper of a COM IConnectionPoint interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetConnectionInterface(self,) -> 'PyIID': + """ + Retrieves the IID of the interface represented by the + +connection point. + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetConnectionPointContainer(self,) -> 'Any': + """ + Gets the connection point + +container for the object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Advise(self,unk:'Any') -> 'Any': + """ + Establishes a connection between the connection point object and the client's + +sink. + +Args: + + unk(Any):The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise + +Returns: + + Any:The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise + + + """ + pass + + + def Unadvise(self,cookie:'Any') -> 'None': + """ + Terminates an advisory connection previously established through + +IConnectionPoint::Advise. The dwCookie parameter identifies the connection to terminate. + +Args: + + cookie(Any):The connection token + +Returns: + + None + + """ + pass + + + def EnumConnections(self,) -> 'Any': + """ + Creates an enumerator to iterate through the + +connections for the connection point + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIConnectionPointContainer(object): + """A Python wrapper of a COM IConnectionPointContainer interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumConnectionPoints(self,) -> 'Any': + """ + Creates an enumerator object + +to iterate through all the connection points supported in the connectable object, one connection point per outgoing + +IID. + +Args: + + + +Returns: + + Any + + """ + pass + + + def FindConnectionPoint(self,iid:'PyIID') -> 'Any': + """ + Finds a connection point for the + +given IID + +Args: + + iid(PyIID):The IID of the requested connection. + +Returns: + + Any + + """ + pass + + +class PyIContext(object): + """Allows access to properties defined for the current context (Requires win2k or later)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetProperty(self,rpolicyId:'PyIID',flags:'Any',pUnk:'Any') -> 'None': + """ + Sets a property on the context + +Args: + + rpolicyId(PyIID):GUID identifying the property to be set + flags(Any):Reserved, use only 0 + pUnk(Any):The property value + +Returns: + + None + + """ + pass + + + def RemoveProperty(self,rPolicyId:'PyIID') -> 'None': + """ + Removes a property from the context + +Args: + + rPolicyId(PyIID):GUID that identifies a context property + +Returns: + + None + + """ + pass + + + def GetProperty(self,rGuid:'PyIID') -> 'Tuple[Any, Any]': + """ + Retrieves a context property + +Args: + + rGuid(PyIID):GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property + +Returns: + + Tuple[Any, Any]:GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property + + + """ + pass + + + def EnumContextProps(self,) -> 'Any': + """ + Returns an enumerator for the context properties + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIContextMenu(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryContextMenu(self,hmenu:'int',indexMenu:'Any',idCmdFirst:'Any',idCmdLast:'Any',uFlags:'Any') -> 'Any': + """ + Adds options to a context menu + +Args: + + hmenu(int):Handle to menu to which items should be added + indexMenu(Any):Zero-based index at which to add first item + idCmdFirst(Any):Minimum menu item Id + idCmdLast(Any):Max menu item Id + uFlags(Any):Combination of shellcon.CMF_* flags, can be 0 + +Returns: + + Any + + """ + pass + + + def InvokeCommand(self,pici:'Any') -> 'None': + """ + Executes a context menu option + +Args: + + pici(Any):Tuple of parameters representing a CMINVOKECOMMANDINFO struct + +Returns: + + None + + """ + pass + + + def GetCommandString(self,idCmd:'Any',uType:'Any',cchMax:'Any'=2048) -> 'Any': + """ + Retrieves verb or help text for a context menu option + +Args: + + idCmd(Any):Id of the command + uType(Any):One of the shellcon.GCS_* constants + cchMax(Any):Size of buffer to create for returned string + +Returns: + + Any + + """ + pass + + +class PyICopyHookA(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CopyCallback(self,hwnd:'Any',wFunc:'Any',wFlags:'Any',srcFile:'Union[Any, str]',srcAttribs:'Any',destFile:'Union[Any, str]',destAttribs:'Any') -> 'None': + """ + Description of CopyCallback. + +Args: + + hwnd(Any):Description for hwnd + wFunc(Any):Description for wFunc + wFlags(Any):Description for wFlags + srcFile(Union[Any, str]):Description for srcFile + srcAttribs(Any):Description for srcAttribs + destFile(Union[Any, str]):Description for destFile + destAttribs(Any):Description for destAttribs + +Returns: + + None + + """ + pass + + +class PyICopyHookW(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CopyCallback(self,hwnd:'Any',wFunc:'Any',wFlags:'Any',srcFile:'Union[Any, str]',srcAttribs:'Any',destFile:'Union[Any, str]',destAttribs:'Any') -> 'None': + """ + Description of CopyCallback. + +Args: + + hwnd(Any):Description for hwnd + wFunc(Any):Description for wFunc + wFlags(Any):Description for wFlags + srcFile(Union[Any, str]):Description for srcFile + srcAttribs(Any):Description for srcAttribs + destFile(Union[Any, str]):Description for destFile + destAttribs(Any):Description for destAttribs + +Returns: + + None + + """ + pass + + +class PyICreateTypeInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetTypeFlags(self,uTypeFlags:'Any') -> 'None': + """ + Description of SetTypeFlags. + +Args: + + uTypeFlags(Any):Description for uTypeFlags + +Returns: + + None + + """ + pass + + + def SetDocString(self,pStrDoc:'Any') -> 'None': + """ + Description of SetDocString. + +Args: + + pStrDoc(Any):Description for pStrDoc + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(Any):Description for wMajorVerNum + wMinorVerNum(Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def AddRefTypeInfo(self,pTInfo:'Any') -> 'None': + """ + Description of AddRefTypeInfo. + +Args: + + pTInfo(Any):Description for pTInfo + +Returns: + + None + + """ + pass + + + def AddFuncDesc(self,index:'Any') -> 'None': + """ + Description of AddFuncDesc. + +Args: + + index(Any):Description for index + +Returns: + + None + + """ + pass + + + def AddImplType(self,index:'Any',hRefType:'Any') -> 'None': + """ + Description of AddImplType. + +Args: + + index(Any):Description for index + hRefType(Any):A hRefType + +Returns: + + None + + """ + pass + + + def SetImplTypeFlags(self,index:'Any',implTypeFlags:'Any') -> 'None': + """ + Description of SetImplTypeFlags. + +Args: + + index(Any):Description for index + implTypeFlags(Any):Description for implTypeFlags + +Returns: + + None + + """ + pass + + + def SetAlignment(self,cbAlignment:'Any') -> 'None': + """ + Description of SetAlignment. + +Args: + + cbAlignment(Any):Description for cbAlignment + +Returns: + + None + + """ + pass + + + def SetSchema(self,pStrSchema:'Any') -> 'None': + """ + Description of SetSchema. + +Args: + + pStrSchema(Any):Description for pStrSchema + +Returns: + + None + + """ + pass + + + def AddVarDesc(self,index:'Any') -> 'None': + """ + Description of AddVarDesc. + +Args: + + index(Any):Description for index + +Returns: + + None + + """ + pass + + + def SetFuncAndParamNames(self,index:'Any',rgszNames:'Tuple[Any, ...]') -> 'None': + """ + Description of SetFuncAndParamNames. + +Args: + + index(Any):Index of the item to set. + rgszNames(Tuple[Any, ...]):A sequence of unicode or String objects. + +Returns: + + None + + """ + pass + + + def SetVarName(self,index:'Any',szName:'Any') -> 'None': + """ + Description of SetVarName. + +Args: + + index(Any):Description for index + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetTypeDescAlias(self,) -> 'None': + """ + Description of SetTypeDescAlias. + +Args: + + + +Returns: + + None + + """ + pass + + + def DefineFuncAsDllEntry(self,index:'Any',szDllName:'Any',szProcName:'Any') -> 'None': + """ + Description of DefineFuncAsDllEntry. + +Args: + + index(Any):Description for index + szDllName(Any):Description for szDllName + szProcName(Any):Description for szProcName + +Returns: + + None + + """ + pass + + + def SetFuncDocString(self,index:'Any',szDocString:'Any') -> 'None': + """ + Description of SetFuncDocString. + +Args: + + index(Any):Description for index + szDocString(Any):Description for szDocString + +Returns: + + None + + """ + pass + + + def SetVarDocString(self,index:'Any',szDocString:'Any') -> 'None': + """ + Description of SetVarDocString. + +Args: + + index(Any):Description for index + szDocString(Any):Description for szDocString + +Returns: + + None + + """ + pass + + + def SetFuncHelpContext(self,index:'Any',dwHelpContext:'Any') -> 'None': + """ + Description of SetFuncHelpContext. + +Args: + + index(Any):Description for index + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetVarHelpContext(self,index:'Any',dwHelpContext:'Any') -> 'None': + """ + Description of SetVarHelpContext. + +Args: + + index(Any):Description for index + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetMops(self,index:'Any',bstrMops:'Any') -> 'None': + """ + Description of SetMops. + +Args: + + index(Any):Description for index + bstrMops(Any):Description for bstrMops + +Returns: + + None + + """ + pass + + + def LayOut(self,) -> 'None': + """ + Description of LayOut. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICreateTypeLib(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTypeInfo(self,szName:'Any') -> 'None': + """ + Description of CreateTypeInfo. + +Args: + + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetName(self,szName:'Any') -> 'None': + """ + Description of SetName. + +Args: + + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(Any):Description for wMajorVerNum + wMinorVerNum(Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetDocString(self,szDoc:'Any') -> 'None': + """ + Description of SetDocString. + +Args: + + szDoc(Any):Description for szDoc + +Returns: + + None + + """ + pass + + + def SetHelpFileName(self,szHelpFileName:'Any') -> 'None': + """ + Description of SetHelpFileName. + +Args: + + szHelpFileName(Any):Description for szHelpFileName + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetLcid(self,) -> 'None': + """ + Description of SetLcid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetLibFlags(self,uLibFlags:'Any') -> 'None': + """ + Description of SetLibFlags. + +Args: + + uLibFlags(Any):Description for uLibFlags + +Returns: + + None + + """ + pass + + + def SaveAllChanges(self,) -> 'None': + """ + Description of SaveAllChanges. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICreateTypeLib2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTypeInfo(self,szName:'Any') -> 'None': + """ + Description of CreateTypeInfo. + +Args: + + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetName(self,szName:'Any') -> 'None': + """ + Description of SetName. + +Args: + + szName(Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(Any):Description for wMajorVerNum + wMinorVerNum(Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetDocString(self,szDoc:'Any') -> 'None': + """ + Description of SetDocString. + +Args: + + szDoc(Any):Description for szDoc + +Returns: + + None + + """ + pass + + + def SetHelpFileName(self,szHelpFileName:'Any') -> 'None': + """ + Description of SetHelpFileName. + +Args: + + szHelpFileName(Any):Description for szHelpFileName + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetLcid(self,) -> 'None': + """ + Description of SetLcid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetLibFlags(self,uLibFlags:'Any') -> 'None': + """ + Description of SetLibFlags. + +Args: + + uLibFlags(Any):Description for uLibFlags + +Returns: + + None + + """ + pass + + + def SaveAllChanges(self,) -> 'None': + """ + Description of SaveAllChanges. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICurrentItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyICustomDestinationList(object): + """Interface used to customize an application's jump list""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'Any') -> 'None': + """ + Specifies the taskbar identifier for the jump list + +Args: + + AppID(Any):The taskbar identifier of the applicationCommentsOnly needed if the calling app doesn't use the system-assigned default + +Returns: + + None + + """ + pass + + + def BeginList(self,riid:'PyIID') -> 'Tuple[Any, Any]': + """ + Clears the jump list and prepares it to be + +repopulated + +Args: + + riid(PyIID):The interface to returnReturn ValueReturns the number of slots and a collection of all destinations removed from the jump list + +Returns: + + Tuple[Any, Any]:The interface to return +Return ValueReturns the number of slots and a collection of all destinations removed from the jump list + + + """ + pass + + + def AppendCategory(self,Category:'Any',Items:'Any') -> 'None': + """ + Adds a custom category to the jump list + +Args: + + Category(Any):Display name of the category, can also be a dll and resource id for localization + Items(Any):Collection of IShellItem and/or IShellLink interfaces + +Returns: + + None + + """ + pass + + + def AppendKnownCategory(self,Category:'Any') -> 'None': + """ + Adds one of the predefined categories to the custom list + +Args: + + Category(Any):shellcon.KDC_RECENT or KDC_FREQUENT + +Returns: + + None + + """ + pass + + + def AddUserTasks(self,Items:'Any') -> 'None': + """ + Sets the entries shown in the Tasks category + +Args: + + Items(Any):Collection of PyIShellItem and/or PyIShellLink interfaces + +Returns: + + None + + """ + pass + + + def CommitList(self,) -> 'None': + """ + Finalizes changes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRemovedDestinations(self,riid:'PyIID') -> 'Any': + """ + Returns all the items removed from the + +jump list + +Args: + + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def DeleteList(self,AppID:'Any'=None) -> 'None': + """ + Removes any customization, leaving only the system-maintained Recent + +and Frequent lists + +Args: + + AppID(Any):The taskbar identifier of the application + +Returns: + + None + + """ + pass + + + def AbortList(self,) -> 'None': + """ + Discards all changes + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDL(object): + """A Python representation of an IDL. Implemented as a sequence of Python strings. + +FALSE*/, UINT *pcb /* = NULL */)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDataObject(object): + """Used to transfer data in various formats throughout the shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetData(self,pformatetcIn:'Any') -> 'Any': + """ + Retrieves data from the object in specified format + +Args: + + pformatetcIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + Any + + """ + pass + + + def GetDataHere(self,pformatetcIn:'Any') -> 'Any': + """ + Retunrs a copy of the object's data in specified format + +Args: + + pformatetcIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + Any + + """ + pass + + + def QueryGetData(self,pformatetc:'Any') -> 'None': + """ + Checks if the objects supports returning data in a particular format. + +Args: + + pformatetc(Any):Tuple representing a FORMATETC struct describing how the data should be returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. + +Returns: + + None:Tuple representing a FORMATETC struct describing how the data should be + +returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. + + + """ + pass + + + def GetCanonicalFormatEtc(self,pformatectIn:'Any') -> 'Any': + """ + Transforms a FORMATECT data description into a general + +format that the object supports + +Args: + + pformatectIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + Any + + """ + pass + + + def SetData(self,pformatetc:'Any',pmedium:'Any',fRelease:'Any') -> 'None': + """ + Sets the data that the object will return. + +Args: + + pformatetc(Any):Tuple representing a FORMATETC struct describing the type of data to be set + pmedium(Any):The data to be placed in the object + fRelease(Any):If True, transfers ownership of the data to the object. If False, caller is responsible for releasing the STGMEDIUM. + +Returns: + + None + + """ + pass + + + def EnumFormatEtc(self,dwDirection:'Any') -> 'Any': + """ + Returns an enumerator to list the data formats that the + +object supports. + +Args: + + dwDirection(Any):Indicates whether to return formats that can be queried or set (pythoncom.DATADIR_GET or DATADIR_SET) + +Returns: + + Any + + """ + pass + + + def DAdvise(self,pformatetc:'Any',advf:'Any',pAdvSink:'Any') -> 'Any': + """ + Connects the object to an interface that will receive notifications when its data + +changes + +Args: + + pformatetc(Any):Defines the type of data for which the sink will receive notifications. + advf(Any):Combination of values from ADVF enum. (which currently do not appear in any of the constants modules!) + pAdvSink(Any):Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection + +Returns: + + Any:Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection + + + """ + pass + + + def DUnadvise(self,dwConnection:'Any') -> 'None': + """ + Disconnects a notification sink. + +Args: + + dwConnection(Any):Identifier of the connection as returned by DAdvise. + +Returns: + + None + + """ + pass + + + def EnumDAdvise(self,) -> 'Any': + """ + Creates an enumerator to list connected notification sinks. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIDebugApplication(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetName(self,pstrName:'Any') -> 'None': + """ + Sets the name of the application. + +Args: + + pstrName(Any):The name of the application.CommentsThe provided name will be returned in subsequent calls to >om PyIRemoteDebugApplication.GetName>. + +Returns: + + None + + """ + pass + + + def StepOutComplete(self,) -> 'None': + """ + Called by language engines, in single step mode, just before they + +return to their caller. + +Args: + + + +Returns: + + None + + """ + pass + + + def DebugOutput(self,pstr:'Any') -> 'None': + """ + Causes the given string to be displayed by the debugger IDE, normally in + +an output window. + +Args: + + pstr(Any):Description for pstrCommentsThis mechanism provides the means for a language engine to implement language specific debugging output support. Example: Debug.writeln("Help") in JavaScript. + +Returns: + + None + + """ + pass + + + def StartDebugSession(self,) -> 'None': + """ + Causes a default debugger IDE to be started and a debug session to + +be attached to this application if one does not already exist. + +Args: + + + +Returns: + + None + + """ + pass + + + def HandleBreakPoint(self,br:'Any') -> 'Any': + """ + Called by the language engine in the context of a thread that has + +hit a breakpoint. + +Args: + + br(Any):Break reason - one of the BREAKREASON_* constants.CommentsThis method causes the current thread to block and a notification of the breakpoint to be sent to the debugger IDE. When the debugger IDE resumes the application this method returns with the action to be taken.Note: While in the breakpoint the language engine may be called in this thread to do various things such as enumerating stack frames or evaluating expressions.Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. + +Returns: + + Any:Break reason - one of the BREAKREASON_* constants.Comments + +This method causes the current thread to block and a notification of the breakpoint + +to be sent to the debugger IDE. When the debugger IDE resumes the application this + +method returns with the action to be taken. + +Note: While in the breakpoint the language engine may be called in this thread to do + +various things such as enumerating stack frames or evaluating expressions. +Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. + + + """ + pass + + + def Close(self,) -> 'None': + """ + Causes this application to release all references and enter a zombie state. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBreakFlags(self,) -> 'Any': + """ + Returns the current break flags for the application. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCurrentThread(self,) -> 'Any': + """ + Returns the application thread object + +associated with the currently running thread. + +Args: + + + +Returns: + + Any + + """ + pass + + + def CreateAsyncDebugOperation(self,psdo:'Any') -> 'None': + """ + None + +Args: + + psdo(Any):Description for psdoCommentsThis provides a mechanism for language engines to implement asynchronous expression and evaluation, etc. without having to know the details of synchronization with the debugger thread. See the descriptions for PyIDebugSyncOperation and PyIDebugAsyncOperation for more details. + +Returns: + + None + + """ + pass + + + def AddStackFrameSniffer(self,pdsfs:'Any') -> 'Any': + """ + Adds a stack frame sniffer to this application. + +Args: + + pdsfs(Any):Description for pdsfsCommentsGenerally called by a language engine to expose its stack frames to the debugger. It is possible for other entities to expose stack frames.Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer + +Returns: + + Any:Description for pdsfsComments + +Generally called by a language engine + +to expose its stack frames to the debugger. It is possible for other entities to + +expose stack frames. +Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer + + + """ + pass + + + def RemoveStackFrameSniffer(self,dwCookie:'Any') -> 'None': + """ + Removes a stack frame sniffer from this application. + +Args: + + dwCookie(Any):A cookie obtained from PyIDebugApplication::AddStackFrameSniffer + +Returns: + + None + + """ + pass + + + def QueryCurrentThreadIsDebuggerThread(self,) -> 'None': + """ + Determines if the current running thread is the + +debugger thread. + +Args: + + + +Returns: + + None:PyIDebugApplication.QueryCurrentThreadIsDebuggerThread +QueryCurrentThreadIsDebuggerThread()Determines if the current running thread is the + +debugger thread. +Return ValueReturns S_OK if the current running thread is the debugger thread. + +Otherwise, returns S_FALSE. + + + """ + pass + + + def SynchronousCallInDebuggerThread(self,pptc:'Any',dwParam1:'Any',dwParam2:'Any',dwParam3:'Any') -> 'None': + """ + Provides a mechanism for the caller to run code in the + +debugger thread. + +Args: + + pptc(Any):Description for pptc + dwParam1(Any):Description for dwParam1 + dwParam2(Any):Description for dwParam2 + dwParam3(Any):Description for dwParam3CommentsThis is generally used so that language engines and hosts can implement free threaded objects on top of their single threaded implementations. + +Returns: + + None + + """ + pass + + + def CreateApplicationNode(self,) -> 'Any': + """ + Creates a new application node which + +is associated with a specific document provider. + +Args: + + + +Returns: + + Any + + """ + pass + + + def FireDebuggerEvent(self,guid:'Any',unknown:'Any') -> 'None': + """ + Fire a generic event to the IApplicationDebugger (if any) + +Args: + + guid(Any):A GUID. + unknown(Any):An unknown object. + +Returns: + + None + + """ + pass + + + def HandleRuntimeError(self,pErrorDebug:'Any',pScriptSite:'Any') -> 'None': + """ + Description of HandleRuntimeError. + +Args: + + pErrorDebug(Any):Description for pErrorDebug + pScriptSite(Any):Description for pScriptSite + +Returns: + + None + + """ + pass + + + def FCanJitDebug(self,) -> 'None': + """ + Description of FCanJitDebug. + +Args: + + + +Returns: + + None + + """ + pass + + + def FIsAutoJitDebugEnabled(self,) -> 'None': + """ + Description of FIsAutoJitDebugEnabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddGlobalExpressionContextProvider(self,pdsfs:'Any') -> 'None': + """ + Description of AddGlobalExpressionContextProvider. + +Args: + + pdsfs(Any):Description for pdsfs + +Returns: + + None + + """ + pass + + + def RemoveGlobalExpressionContextProvider(self,dwCookie:'Any') -> 'None': + """ + Description of + +RemoveGlobalExpressionContextProvider. + +Args: + + dwCookie(Any):Description for dwCookie + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationNode(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumChildren(self,) -> 'None': + """ + Description of EnumChildren. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetParent(self,) -> 'Any': + """ + Returns the parent node. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetDocumentProvider(self,pddp:'Any') -> 'None': + """ + Description of SetDocumentProvider. + +Args: + + pddp(Any):Description for pddp + +Returns: + + None + + """ + pass + + + def Close(self,) -> 'None': + """ + Description of Close. + +Args: + + + +Returns: + + None + + """ + pass + + + def Attach(self,pdanParent:'Any') -> 'None': + """ + Attach a node to its parent. + +Args: + + pdanParent(Any):The parent node. None is not acceptable. + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'None': + """ + Detach a node from its parent. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationNodeEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onAddChild(self,prddpChild:'Any') -> 'None': + """ + Description of onAddChild. + +Args: + + prddpChild(Any):Description for prddpChild + +Returns: + + None + + """ + pass + + + def onRemoveChild(self,prddpChild:'Any') -> 'None': + """ + Description of onRemoveChild. + +Args: + + prddpChild(Any):Description for prddpChild + +Returns: + + None + + """ + pass + + + def onDetach(self,) -> 'None': + """ + Description of onDetach. + +Args: + + + +Returns: + + None + + """ + pass + + + def onAttach(self,prddpParent:'Any') -> 'None': + """ + Description of onAttach. + +Args: + + prddpParent(Any):Description for prddpParent + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationThread(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SynchronousCallIntoThread(self,pstcb:'Any',dwParam1:'Any',dwParam2:'Any',dwParam3:'Any') -> 'None': + """ + Description of SynchronousCallIntoThread. + +Args: + + pstcb(Any):Description for pstcb + dwParam1(Any):Description for dwParam1 + dwParam2(Any):Description for dwParam2 + dwParam3(Any):Description for dwParam3 + +Returns: + + None + + """ + pass + + + def QueryIsCurrentThread(self,) -> 'None': + """ + Description of QueryIsCurrentThread. + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryIsDebuggerThread(self,) -> 'None': + """ + Description of QueryIsDebuggerThread. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugCodeContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContext(self,) -> 'None': + """ + Description of GetDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetBreakPoint(self,bps:'Any') -> 'None': + """ + Description of SetBreakPoint. + +Args: + + bps(Any):Description for bps + +Returns: + + None + + """ + pass + + +class PyIDebugDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDebugDocumentContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocument(self,) -> 'None': + """ + Description of GetDocument. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumCodeContexts(self,) -> 'None': + """ + Description of EnumCodeContexts. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentHelper(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Init(self,pda:'Any',pszShortName:'Any',pszLongName:'Any',docAttr:'Any') -> 'None': + """ + Description of Init. + +Args: + + pda(Any):Description for pda + pszShortName(Any):Description for pszShortName + pszLongName(Any):Description for pszLongName + docAttr(Any):Description for docAttr + +Returns: + + None + + """ + pass + + + def Attach(self,pddhParent:'Any') -> 'None': + """ + Add the document to the doc tree + +Args: + + pddhParent(Any):Parent item. If none, this item is top level. + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'None': + """ + Description of Detach. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddUnicodeText(self,pszText:'Any') -> 'None': + """ + Description of AddUnicodeText. + +Args: + + pszText(Any):Description for pszText + +Returns: + + None + + """ + pass + + + def AddDBCSText(self,) -> 'None': + """ + Description of AddDBCSText. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDebugDocumentHost(self,pddh:'Any') -> 'None': + """ + Description of SetDebugDocumentHost. + +Args: + + pddh(Any):Description for pddh + +Returns: + + None + + """ + pass + + + def AddDeferredText(self,cChars:'Any',dwTextStartCookie:'Any') -> 'None': + """ + Description of AddDeferredText. + +Args: + + cChars(Any):Description for cChars + dwTextStartCookie(Any):Description for dwTextStartCookie + +Returns: + + None + + """ + pass + + + def DefineScriptBlock(self,ulCharOffset:'Any',cChars:'Any',pas:'Any',fScriptlet:'Any') -> 'None': + """ + Description of DefineScriptBlock. + +Args: + + ulCharOffset(Any):Description for ulCharOffset + cChars(Any):Description for cChars + pas(Any):Description for pas + fScriptlet(Any):Description for fScriptlet + +Returns: + + None + + """ + pass + + + def SetDefaultTextAttr(self,staTextAttr:'Any') -> 'None': + """ + Description of SetDefaultTextAttr. + +Args: + + staTextAttr(Any):Description for staTextAttr + +Returns: + + None + + """ + pass + + + def SetTextAttributes(self,ulCharOffset:'Any',obAttr:'Any') -> 'None': + """ + Description of SetTextAttributes. + +Args: + + ulCharOffset(Any):Description for ulCharOffset + obAttr(Any):A sequence of attributes. + +Returns: + + None + + """ + pass + + + def SetLongName(self,pszLongName:'Any') -> 'None': + """ + Description of SetLongName. + +Args: + + pszLongName(Any):Description for pszLongName + +Returns: + + None + + """ + pass + + + def SetShortName(self,pszShortName:'Any') -> 'None': + """ + Description of SetShortName. + +Args: + + pszShortName(Any):Description for pszShortName + +Returns: + + None + + """ + pass + + + def SetDocumentAttr(self,pszAttributes:'Any') -> 'None': + """ + Description of SetDocumentAttr. + +Args: + + pszAttributes(Any):Description for pszAttributes + +Returns: + + None + + """ + pass + + + def GetDebugApplicationNode(self,) -> 'None': + """ + Description of GetDebugApplicationNode. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetScriptBlockInfo(self,dwSourceContext:'Any') -> 'None': + """ + Description of GetScriptBlockInfo. + +Args: + + dwSourceContext(Any):Description for dwSourceContext + +Returns: + + None + + """ + pass + + + def CreateDebugDocumentContext(self,iCharPos:'Any',cChars:'Any') -> 'None': + """ + Description of CreateDebugDocumentContext. + +Args: + + iCharPos(Any):Description for iCharPos + cChars(Any):Description for cChars + +Returns: + + None + + """ + pass + + + def BringDocumentToTop(self,) -> 'None': + """ + Description of BringDocumentToTop. + +Args: + + + +Returns: + + None + + """ + pass + + + def BringDocumentContextToTop(self,pddc:'Any') -> 'None': + """ + Description of BringDocumentContextToTop. + +Args: + + pddc(Any):Description for pddc + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentHost(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDeferredText(self,dwTextStartCookie:'Any',cMaxChars:'Any') -> 'None': + """ + Description of GetDeferredText. + +Args: + + dwTextStartCookie(Any):Description for dwTextStartCookie + cMaxChars(Any):Description for cMaxChars + +Returns: + + None + + """ + pass + + + def GetScriptTextAttributes(self,pstrCode:'Any',pstrDelimiter:'Any',dwFlags:'Any') -> 'None': + """ + Description of GetScriptTextAttributes. + +Args: + + pstrCode(Any):Description for pstrCode + pstrDelimiter(Any):Description for pstrDelimiter + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def OnCreateDocumentContext(self,) -> 'None': + """ + Description of OnCreateDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPathName(self,) -> 'None': + """ + Description of GetPathName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFileName(self,) -> 'None': + """ + Description of GetFileName. + +Args: + + + +Returns: + + None + + """ + pass + + + def NotifyChanged(self,) -> 'None': + """ + Description of NotifyChanged. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentInfo(object): + """Provides information on a document, which may or may not be instantiated.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetName(self,) -> 'None': + """ + Returns the specified name for the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocumentClassId(self,) -> 'PyIID': + """ + Returns a CLSID describing the document type. + +Args: + + + +Returns: + + PyIID + + """ + pass + + +class PyIDebugDocumentProvider(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocument(self,) -> 'Any': + """ + Causes the document to be instantiated if it does + +not already exist. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIDebugDocumentText(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentAttributes(self,) -> 'None': + """ + Description of GetDocumentAttributes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'None': + """ + Description of GetSize. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPositionOfLine(self,cLineNumber:'Any') -> 'None': + """ + Description of GetPositionOfLine. + +Args: + + cLineNumber(Any):Description for cLineNumber + +Returns: + + None + + """ + pass + + + def GetLineOfPosition(self,cCharacterPosition:'Any') -> 'None': + """ + Description of GetLineOfPosition. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + +Returns: + + None + + """ + pass + + + def GetText(self,cCharacterPosition:'Any',cMaxChars:'Any',bWantAttr:'Any'=1) -> 'None': + """ + Description of GetText. + +Args: + + cCharacterPosition(Any): + cMaxChars(Any):Max chars to return + bWantAttr(Any):Should the attributes be returned? + +Returns: + + None + + """ + pass + + + def GetPositionOfContext(self,psc:'Any') -> 'None': + """ + Description of GetPositionOfContext. + +Args: + + psc(Any):Description for psc + +Returns: + + None + + """ + pass + + + def GetContextOfPosition(self,cCharacterPosition:'Any',cNumChars:'Any') -> 'None': + """ + Description of GetContextOfPosition. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumChars(Any):Description for cNumChars + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextAuthor(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertText(self,cCharacterPosition:'Any',cNumToInsert:'Any',pcharText:'Any') -> 'None': + """ + Description of InsertText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToInsert(Any):Description for cNumToInsert + pcharText(Any):Description for pcharText + +Returns: + + None + + """ + pass + + + def RemoveText(self,cCharacterPosition:'Any',cNumToRemove:'Any') -> 'None': + """ + Description of RemoveText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToRemove(Any):Description for cNumToRemove + +Returns: + + None + + """ + pass + + + def ReplaceText(self,cCharacterPosition:'Any',cNumToReplace:'Any',pcharText:'Any') -> 'None': + """ + Description of ReplaceText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToReplace(Any):Description for cNumToReplace + pcharText(Any):Description for pcharText + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onDestroy(self,) -> 'None': + """ + Description of onDestroy. + +Args: + + + +Returns: + + None + + """ + pass + + + def onInsertText(self,cCharacterPosition:'Any',cNumToInsert:'Any') -> 'None': + """ + Description of onInsertText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToInsert(Any):Description for cNumToInsert + +Returns: + + None + + """ + pass + + + def onRemoveText(self,cCharacterPosition:'Any',cNumToRemove:'Any') -> 'None': + """ + Description of onRemoveText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToRemove(Any):Description for cNumToRemove + +Returns: + + None + + """ + pass + + + def onReplaceText(self,cCharacterPosition:'Any',cNumToReplace:'Any') -> 'None': + """ + Description of onReplaceText. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToReplace(Any):Description for cNumToReplace + +Returns: + + None + + """ + pass + + + def onUpdateTextAttributes(self,cCharacterPosition:'Any',cNumToUpdate:'Any') -> 'None': + """ + Description of onUpdateTextAttributes. + +Args: + + cCharacterPosition(Any):Description for cCharacterPosition + cNumToUpdate(Any):Description for cNumToUpdate + +Returns: + + None + + """ + pass + + + def onUpdateDocumentAttributes(self,textdocattr:'Any') -> 'None': + """ + Description of onUpdateDocumentAttributes. + +Args: + + textdocattr(Any):Description for textdocattr + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextExternalAuthor(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPathName(self,) -> 'None': + """ + Description of GetPathName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFileName(self,) -> 'None': + """ + Description of GetFileName. + +Args: + + + +Returns: + + None + + """ + pass + + + def NotifyChanged(self,) -> 'None': + """ + Description of NotifyChanged. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpression(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Start(self,pdecb:'Any') -> 'None': + """ + Description of Start. + +Args: + + pdecb(Any):Description for pdecb + +Returns: + + None + + """ + pass + + + def Abort(self,) -> 'None': + """ + Description of Abort. + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryIsComplete(self,) -> 'None': + """ + Description of QueryIsComplete. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetResultAsString(self,) -> 'None': + """ + Description of GetResultAsString. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetResultAsDebugProperties(self,) -> 'None': + """ + Description of GetResultAsDebugProperty. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpressionCallBack(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onComplete(self,) -> 'None': + """ + Description of onComplete. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpressionContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseLanguageText(self,pstrCode:'Any',nRadix:'Any',pstrDelimiter:'Any',dwFlags:'Any') -> 'None': + """ + Description of ParseLanguageText. + +Args: + + pstrCode(Any):Description for pstrCode + nRadix(Any):Description for nRadix + pstrDelimiter(Any):Description for pstrDelimiter + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetLanguageInfo(self,) -> 'None': + """ + Description of GetLanguageInfo. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugProperty(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyInfo(self,dwFieldSpec:'Any',nRadix:'Any') -> 'None': + """ + Description of GetPropertyInfo. + +Args: + + dwFieldSpec(Any):Description for dwFieldSpec + nRadix(Any):Description for nRadix + +Returns: + + None + + """ + pass + + + def GetExtendedInfo(self,) -> 'None': + """ + Description of GetExtendedInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetValueAsString(self,pszValue:'Any',nRadix:'Any') -> 'None': + """ + Description of SetValueAsString. + +Args: + + pszValue(Any):Description for pszValue + nRadix(Any):Description for nRadix + +Returns: + + None + + """ + pass + + + def EnumMembers(self,dwFieldSpec:'Any',nRadix:'Any',refiid:'PyIID') -> 'None': + """ + Description of EnumMembers. + +Args: + + dwFieldSpec(Any):Description for dwFieldSpec + nRadix(Any):Description for nRadix + refiid(PyIID):Description for refiid + +Returns: + + None + + """ + pass + + + def GetParent(self,) -> 'None': + """ + Description of GetParent. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugSessionProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def StartDebugSession(self,pda:'Any') -> 'None': + """ + Description of StartDebugSession. + +Args: + + pda(Any):Description for pda + +Returns: + + None + + """ + pass + + +class PyIDebugStackFrame(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCodeContext(self,) -> 'None': + """ + Returns the current code context associated with the stack frame. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDescriptionString(self,fLong:'Any') -> 'Any': + """ + Returns a short or long textual description of the + +stack frame. + +Args: + + fLong(Any):If false, provide only the name of the function associated with the stack frame. When true it may also provide the parameter(s) to the function or whatever else is relevant. + +Returns: + + Any + + """ + pass + + + def GetLanguageString(self,fLong:'Any') -> 'Any': + """ + Returns a short or long textual description of the + +language. + +Args: + + fLong(Any):If False, just the language name should be provided, eg, "Python". If True a full product description may be provided (eg, "Python 1.4 ActiveX Debugging Host") + +Returns: + + Any + + """ + pass + + + def GetThread(self,) -> 'Any': + """ + Returns the thread associated with this stack + +frame. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIDebugStackFrameSniffer(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumStackFrames(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugStackFrameSnifferEx(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumStackFramesEx(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugSyncOperation(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetTargetThread(self,) -> 'None': + """ + Description of GetTargetThread. + +Args: + + + +Returns: + + None + + """ + pass + + + def Execute(self,) -> 'None': + """ + Description of Execute. + +Args: + + + +Returns: + + None + + """ + pass + + + def InProgressAbort(self,) -> 'None': + """ + Description of InProgressAbort. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDefaultExtractIconInit(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetFlags(self,uFlags:'Any') -> 'None': + """ + Description of SetFlags. + +Args: + + uFlags(Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def SetKey(self,hkey:'PyHKEY') -> 'None': + """ + Description of SetKey. + +Args: + + hkey(PyHKEY):Description for hkey + +Returns: + + None + + """ + pass + + + def SetNormalIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': + """ + Description of SetNormalIcon. + +Args: + + pszFile(Any):Description for pszFile + iIcon(Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetOpenIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': + """ + Description of SetOpenIcon. + +Args: + + pszFile(Any):Description for pszFile + iIcon(Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetShortcutIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': + """ + Description of SetShortcutIcon. + +Args: + + pszFile(Any):Description for pszFile + iIcon(Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetDefaultIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': + """ + Description of SetDefaultIcon. + +Args: + + pszFile(Any):Description for pszFile + iIcon(Any):Description for iIcon + +Returns: + + None + + """ + pass + + +class PyIDirectSound(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,guid:'PyIID') -> 'None': + """ + Description of Initialize. + +Args: + + guid(PyIID):Globally unique identifier (GUID) specifying the sound driver to which this DirectSound object binds. Pass None to select the primary sound driver. + +Returns: + + None + + """ + pass + + + def SetCooperativeLevel(self,hwnd:'Any',level:'Any') -> 'None': + """ + The IDirectSound::SetCooperativeLevel method sets the cooperative level + +of the application for this sound device. + +Args: + + hwnd(Any):Window handle to the application or None. + level(Any):Requested priority level. Specify one of the following values:LevelDescriptionDSSCL_NORMALSets the application to a fully cooperative status. Most applications should use this level, because it has the smoothest multitasking and resource-sharing behavior.DSSCL_PRIORITYSets the application to the priority level. Applications with this cooperative level can call the DirectSoundBuffer.setFormat and DirectSound.compact methods.DSSCL_EXCLUSIVESets the application to the exclusive level. When it has the input focus, the application will be the only one audible (sounds from applications with the DSBCAPS_GLOBALFOCUS flag set will be muted). With this level, it also has all the privileges of the DSSCL_PRIORITY level. DirectSound will restore the hardware format, as specified by the most recent call to the DirectSoundBuffer.setFormat method, once the application gains the input focus. (Note that DirectSound will always restore the wave format, no matter what priority level is set.)DSSCL_WRITEPRIMARYThis is the highest priority level. The application has write access to the primary sound buffers. No secondary sound buffers in any application can be played. + +Returns: + + None + + """ + pass + + + def CreateSoundBuffer(self,lpDSCBufferDesc:'Any',unk:'Any'=None) -> 'None': + """ + The IDirectSound::CreateSoundBuffer method creates a DirectSoundBuffer + +object to hold a sequence of audio samples. + +Args: + + lpDSCBufferDesc(Any):a DSBUFFERDESC structure containing values for the sound buffer being created. + unk(Any):The IUnknown for COM aggregation. + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def Compact(self,) -> 'None': + """ + The Compact method moves the unused portions of on-board sound memory, if any, to a + +contiguous block so that the largest portion of free memory will be available. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundBuffer(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Description of Initialize. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Retrieves the current status of the sound buffer. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + Retrieves the capabilities of the DirectSoundBuffer object as a DSBCAPS + +object. + +Args: + + + +Returns: + + None + + """ + pass + + + def Restore(self,) -> 'None': + """ + Restores the memory allocation for a lost sound buffer for the specified + +DirectSoundBuffer object. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentPosition(self,) -> 'None': + """ + Description of GetCurrentPosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def Play(self,) -> 'None': + """ + Description of Play. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCurrentPosition(self,) -> 'None': + """ + Description of SetCurrentPosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def Stop(self,) -> 'None': + """ + Description of Stop. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFrequency(self,) -> 'None': + """ + Description of GetFrequency. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPan(self,) -> 'None': + """ + Description of GetPan. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetVolume(self,) -> 'None': + """ + Description of GetVolume. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFrequency(self,) -> 'None': + """ + Description of SetFrequency. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPan(self,) -> 'None': + """ + Description of SetPan. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetVolume(self,) -> 'None': + """ + Description of SetVolume. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundCapture(object): + """The methods of the IDirectSoundCapture interface are used to create sound capture + +buffers.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Not normally called directly. Use DirectSoundCaptureCreate instead. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundCaptureBuffer(object): + """The methods of the IDirectSoundCaptureBuffer interface are used to manipulate + +sound capture buffers.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Not normally used. Used IDirectSoundCapture.CreateCaptureBuffer + +instead. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Retrieves the current status of the sound capture buffer. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentPosition(self,) -> 'None': + """ + Returns a tuple of the current capture and read position in + +the buffer. The capture position is ahead of the read position. These positions are not always identical due to + +possible buffering of captured data either on the physical device or in the host. The data after the read position up + +to and including the capture position is not necessarily valid data. + +Args: + + + +Returns: + + None + + """ + pass + + + def Stop(self,) -> 'None': + """ + The IDirectSoundCaptureBuffer::Stop method puts the capture buffer into + +the "stop" state and stops capturing data. If the capture buffer is already in the stop state then the method has no + +effect. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundNotify(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDirectoryObject(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObjectInformation(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetObjectAttributes(self,names:'Tuple[str, ...]') -> 'Tuple[Any, ...]': + """ + None + +Args: + + names(Tuple[str, ...]): + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def SetObjectAttributes(self,attrs:'Tuple[Any, ...]') -> 'Any': + """ + None + +Args: + + attrs(Tuple[Any, ...]):The attributes to set + +Returns: + + Any + + """ + pass + + + def CreateDSObject(self,rdn:'str',attrs:'Tuple[Any, ...]') -> 'Any': + """ + None + +Args: + + rdn(str):The relative distinguished name (relative path) of the object to be created. + attrs(Tuple[Any, ...]):The attributes to set. + +Returns: + + Any + + """ + pass + + + def DeleteDSObject(self,rdn:'str') -> 'None': + """ + Deletes a leaf object in a directory tree + +Args: + + rdn(str):The relative distinguished name (relative path) of the object to be deleted. + +Returns: + + None + + """ + pass + + +class PyIDirectorySearch(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSearchPreference(self,prefs:'Any') -> 'Tuple[Any, Any, Any]': + """ + None + +Args: + + prefs(Any):Return ValueThe result is the hresult of the call, and a list of integer status codes for each of the preferences set. + +Returns: + + Tuple[Any, Any, Any]:Return ValueThe result is the hresult of the call, and a list of integer status + +codes for each of the preferences set. + + + """ + pass + + + def ExecuteSearch(self,_filter:'str',attrNames:'List[str]') -> 'Any': + """ + None + +Args: + + _filter(str): + attrNames(List[str]):Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle should be called to close the handle. + +Returns: + + Any:Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle + +should be called to close the handle. + + + """ + pass + + + def GetNextRow(self,handle:'Any') -> 'Any': + """ + None + +Args: + + handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def GetFirstRow(self,handle:'Any') -> 'Any': + """ + None + +Args: + + handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def GetPreviousRow(self,handle:'Any') -> 'Any': + """ + None + +Args: + + handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def CloseSearchHandle(self,handle:'Any') -> 'None': + """ + Closes a previously opened search handle. + +Args: + + handle(Any): + +Returns: + + None + + """ + pass + + + def AdandonSearch(self,handle:'Any') -> 'None': + """ + None + +Args: + + handle(Any): + +Returns: + + None + + """ + pass + + + def GetColumn(self,handle:'Any',name:'str') -> 'Tuple[Any, Any, Any]': + """ + None + +Args: + + handle(Any):Handle to a search + name(str):The column name to fetch + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetNextColumnName(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None:PyIDirectorySearch.GetNextColumnName +GetNextColumnName() +Return ValueReturns None when the underlying ADSI function return S_ADS_NOMORE_COLUMNS. + + + """ + pass + + +class PyIDispatch(object): + """A OLE automation client object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Invoke(self,dispid:'Any',lcid:'Any',flags:'Any',bResultWanted:'Any',arg:'Tuple[Any, ...]') -> 'Any': + """ + Invokes a DISPID, using the passed arguments. + +Args: + + dispid(Any):The dispid to use. Typically this value will come from PyIDispatch::GetIDsOfNames or from a type library. + lcid(Any):The locale id to use. + flags(Any):The flags for the call. The following flags can be used.FlagDescriptionDISPATCH_METHODThe member is invoked as a method. If a property has the same name, both this and the DISPATCH_PROPERTYGET flag may be set.DISPATCH_PROPERTYGETThe member is retrieved as a property or data member.DISPATCH_PROPERTYPUTThe member is changed as a property or data member.DISPATCH_PROPERTYPUTREFThe member is changed by a reference assignment, rather than a value assignment. This flag is valid only when the property accepts a reference to an object. + bResultWanted(Any):Indicates if the result of the call should be requested. + arg(Tuple[Any, ...]):The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. Otherwise, the result is determined by the COM object itself (and may still be None) + +Returns: + + Any:The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. + +Otherwise, the result is determined by the COM object itself (and may still be None) + + + """ + pass + + + def InvokeTypes(self,dispid:'Any',lcid:'Any',wFlags:'Any',resultTypeDesc:'Any',typeDescs:'Tuple[Any, ...]',args:'Tuple[Any, ...]') -> 'Any': + """ + Invokes a DISPID, using the passed arguments and type descriptions. + +Args: + + dispid(Any):The dispid to use. Please see PyIDispatch::Invoke. + lcid(Any):The locale ID. Please see PyIDispatch::Invoke. + wFlags(Any):Flags for the call. Please see PyIDispatch::Invoke. + resultTypeDesc(Any):A tuple describing the type of the result. See the comments for more information. + typeDescs(Tuple[Any, ...]):A sequence of tuples describing the types of the parameters for the function. See the comments for more information. + args(Tuple[Any, ...]):The args to the function.CommentsThe Microsoft documentation for IDispatch should be used for all params except 'resultTypeDesc' and 'typeDescs'. 'resultTypeDesc' describes the return value of the function, and is a tuple of (type_id, flags). 'typeDescs' describes the type of each parameters, and is a list of the same (type_id, flags) tuple.itemDescriptiontype_idA valid "variant type" constant (eg, VT_I4 | VT_ARRAY, VT_DATE, etc - see VARIANT at MSDN).flagsOne of the PARAMFLAG constants (eg, PARAMFLAG_FIN, PARAMFLAG_FOUT etc - see PARAMFLAG at MSDN).ExampleAn example from the makepy generated file for Wordclass Cells(DispatchBaseClass):... def SetWidth(self, ColumnWidth=..., RulerStyle=...): return self._oleobj_.InvokeTypes(202, LCID, 1, (24, 0), ((4, 1), (3, 1)),...)The interesting bits areresultTypeDesc: (24, 0) - (VT_VOID, <no flags>)typeDescs: ((4, 1), (3, 1)) - ((VT_R4, PARAMFLAG_FIN), (VT_I4, PARAMFLAG_FIN))So, in this example, the function returns no value and takes 2 "in" params - ColumnWidth is a float, and RulerStule is an int. + +Returns: + + Any + + """ + pass + + + def GetIDsOfNames(self,name:'str',arg:'Any') -> 'Tuple[Any, Union[Any]]': + """ + Get the DISPID for the passed names. + +Args: + + name(str):A name to query forAlternative Parameters + arg(Any):A sequence of string names to queryCommentsCurrently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used.Return ValueIf the first parameter is a sequence, the result will be a tuple of integers for each name in the sequence. If the first parameter is a single string, the result is a single integer with the ID of requested item. + +Returns: + + Tuple[Any, Union[Any]]:A sequence of string names to query +Comments + +Currently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used. +Return ValueIf the first parameter is a sequence, the result will be a tuple of integers + +for each name in the sequence. If the first parameter is a single string, the result + +is a single integer with the ID of requested item. + + + """ + pass + + + def GetTypeInfo(self,locale:'Any',index:'Any'=0) -> 'Any': + """ + Get type information for the object. + +Args: + + locale(Any):The locale to use. + index(Any):The index of the typelibrary to fetch. Note that these params are reversed from the win32 call. + +Returns: + + Any + + """ + pass + + + def GetTypeInfoCount(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIDispatchEx(object): + """A OLE automation client object that uses the IDispatchEx scripting interface..""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDispID(self,name:'str',fdex:'Any') -> 'Any': + """ + Returns the member id for a name + +Args: + + name(str):Passed in name to be mapped + fdex(Any):Determines the options for obtaining the member identifier. This can be a combination of the fdex* constants: + +Returns: + + Any + + """ + pass + + + def InvokeEx(self,dispid:'Any',lcid:'Any',flags:'Any',args:'List[Any]',types:'List[Any]'=None,returnDesc:'Any'=1,serviceProvider:'Any'=None) -> 'Any': + """ + None + +Args: + + dispid(Any): + lcid(Any): + flags(Any): + args(List[Any]):The arguments. + types(List[Any]):A tuple of type description object, or None if type descriptions are not available. + returnDesc(Any):If types==None, should be a BOOL indicating if the result is needed. If types is a tuple, then should a be type description. + serviceProvider(Any):A service provider object supplied by the caller which allows the object to obtain services from the caller. Can be None. + +Returns: + + Any + + """ + pass + + + def DeleteMemberByName(self,name:'str',fdex:'Any') -> 'None': + """ + None + +Args: + + name(str):Passed in name to be mapped + fdex(Any):Determines the options + +Returns: + + None + + """ + pass + + + def DeleteMemberByDispID(self,dispid:'Any') -> 'None': + """ + None + +Args: + + dispid(Any): + +Returns: + + None + + """ + pass + + + def GetMemberProperties(self,dispid:'Any',fdex:'Any') -> 'Any': + """ + Returns mask of fdex* flags describing a member + +Args: + + dispid(Any):The member id + fdex(Any):fdex* flags specifying which properties to return + +Returns: + + Any + + """ + pass + + + def GetMemberName(self,dispid:'Any') -> 'Any': + """ + Returns the name associated with a member id + +Args: + + dispid(Any):The member id + +Returns: + + Any + + """ + pass + + + def GetNextDispID(self,fdex:'Any',dispid:'Any') -> 'Any': + """ + Enumerates member ids. + +Args: + + fdex(Any):Determines the options + dispid(Any):Current member, or DISPID_STARTENUM to begin enumeration. GetNextDispID will retrieve the item in the enumeration after this one. + +Returns: + + Any + + """ + pass + + +class PyIDisplayItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDocHostUIHandler(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ShowContextMenu(self,dwID:'Any',pt:'Tuple[Any, Any]',pcmdtReserved:'Any',pdispReserved:'Any') -> 'None': + """ + Description of ShowContextMenu. + +Args: + + dwID(Any):Description for dwID + pt(Tuple[Any, Any]):Description for ppt + pcmdtReserved(Any):Description for pcmdtReserved + pdispReserved(Any):Description for pdispReserved + +Returns: + + None + + """ + pass + + + def GetHostInfo(self,) -> 'None': + """ + Description of GetHostInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowUI(self,dwID:'Any',pActiveObject:'Any',pCommandTarget:'Any',pFrame:'Any',pDoc:'Any') -> 'None': + """ + Description of ShowUI. + +Args: + + dwID(Any):Description for dwID + pActiveObject(Any):Description for pActiveObject + pCommandTarget(Any):Description for pCommandTarget + pFrame(Any):Description for pFrame + pDoc(Any):Description for pDoc + +Returns: + + None + + """ + pass + + + def HideUI(self,) -> 'None': + """ + Description of HideUI. + +Args: + + + +Returns: + + None + + """ + pass + + + def UpdateUI(self,) -> 'None': + """ + Description of UpdateUI. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def OnDocWindowActivate(self,fActivate:'Any') -> 'None': + """ + Description of OnDocWindowActivate. + +Args: + + fActivate(Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def OnFrameWindowActivate(self,fActivate:'Any') -> 'None': + """ + Description of OnFrameWindowActivate. + +Args: + + fActivate(Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def ResizeBorder(self,prcBorder:'Tuple[Any, Any, Any, Any]',pUIWindow:'Any',fRameWindow:'Any') -> 'None': + """ + Description of ResizeBorder. + +Args: + + prcBorder(Tuple[Any, Any, Any, Any]):Description for prcBorder + pUIWindow(Any):Description for pUIWindow + fRameWindow(Any):Description for fRameWindow + +Returns: + + None + + """ + pass + + + def TranslateAccelerator(self,lpMsg:'Any',pguidCmdGroup:'PyIID',nCmdID:'Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpMsg(Any):Description for lpMsg + pguidCmdGroup(PyIID):Description for pguidCmdGroup + nCmdID(Any):Description for nCmdID + +Returns: + + None + + """ + pass + + + def GetOptionKeyPath(self,dw:'Any') -> 'None': + """ + Description of GetOptionKeyPath. + +Args: + + dw(Any):Description for dw + +Returns: + + None + + """ + pass + + + def GetDropTarget(self,pDropTarget:'Any') -> 'None': + """ + Description of GetDropTarget. + +Args: + + pDropTarget(Any):Description for pDropTarget + +Returns: + + None + + """ + pass + + + def GetExternal(self,) -> 'None': + """ + Description of GetExternal. + +Args: + + + +Returns: + + None + + """ + pass + + + def TranslateUrl(self,dwTranslate:'Any',pchURLIn:'Any') -> 'None': + """ + Description of TranslateUrl. + +Args: + + dwTranslate(Any):Description for dwTranslate + pchURLIn(Any):Description for pchURLIn + +Returns: + + None + + """ + pass + + + def FilterDataObject(self,pDO:'Any') -> 'None': + """ + Description of FilterDataObject. + +Args: + + pDO(Any):Description for pDO + +Returns: + + None + + """ + pass + + +class PyIDropSource(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryContinueDrag(self,fEscapePressed:'Any',grfKeyState:'Any') -> 'None': + """ + Description of QueryContinueDrag. + +Args: + + fEscapePressed(Any):Description for fEscapePressed + grfKeyState(Any):Description for grfKeyState + +Returns: + + None + + """ + pass + + + def GiveFeedback(self,dwEffect:'Any') -> 'None': + """ + Description of GiveFeedback. + +Args: + + dwEffect(Any):Description for dwEffect + +Returns: + + None + + """ + pass + + +class PyIDropTarget(object): + """Interface that acts as a target of OLE drag and drop operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DragEnter(self,pDataObj:'Any',grfKeyState:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'Any': + """ + Called when an object is initially dragged into a window + +Args: + + pDataObj(Any):IDataObject interface that contains the object being dragged + grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor + pdwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted + +Returns: + + Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can + +be accepted + + + """ + pass + + + def DragOver(self,grfKeyState:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'Any': + """ + Called as the dragged object moves over the window + +Args: + + grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor + pdwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted at the current position + +Returns: + + Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the + +object can be accepted at the current position + + + """ + pass + + + def DragLeave(self,) -> 'None': + """ + Called as the object is dragged back out of the window + +Args: + + + +Returns: + + None + + """ + pass + + + def Drop(self,pDataObj:'Any',grfKeyState:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'Any': + """ + Called when the object is dropped onto the window + +Args: + + pDataObj(Any):IDataObject interface containing the dropped object + grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor + dwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values + +Returns: + + Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values + + + """ + pass + + +class PyIDropTargetHelper(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DragEnter(self,hwnd:'int',pDataObj:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'None': + """ + Description of DragEnter. + +Args: + + hwnd(int):Handle to target window + pDataObj(Any):Object that is dragged onto the window + pt(Tuple[Any, Any]):Coordinates where drag operation entered the window + dwEffect(Any):One of shellcon.DROPEFFECT_* values + +Returns: + + None + + """ + pass + + + def DragOver(self,hwnd:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'None': + """ + Description of DragOver. + +Args: + + hwnd(Any): + pt(Tuple[Any, Any]):Description for pt + pdwEffect(Any):Description for pdwEffect + +Returns: + + None + + """ + pass + + + def DragLeave(self,) -> 'None': + """ + Description of DragLeave. + +Args: + + + +Returns: + + None + + """ + pass + + + def Drop(self,pDataObj:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'None': + """ + Description of Drop. + +Args: + + pDataObj(Any):Description for pDataObj + pt(Tuple[Any, Any]):Description for pt + dwEffect(Any):Description for dwEffect + +Returns: + + None + + """ + pass + + +class PyIDsObjectPicker(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,targetComputer:'str',scopeInfos:'Any',options:'Any'=0,attrNames:'List[str]'=None) -> 'None': + """ + Initializes the IDsObjectPicker interface with information about the scopes, filters, and options used by the object picker dialog box. + +Args: + + targetComputer(str): + scopeInfos(Any): + options(Any): + attrNames(List[str]): + +Returns: + + None + + """ + pass + + + def InvokeDialog(self,hwnd:'Any') -> 'Any': + """ + Displays a modal object picker dialog box and returns the user's selections. + +Args: + + hwnd(Any): + +Returns: + + Any + + """ + pass + + +class PyIEmptyVolumeCache(object): + """Used for cleaning up temporary file ("disk cleanup")""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIEmptyVolumeCache2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIEmptyVolumeCacheCallBack(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ScanProgress(self,dwlSpaceUsed:'Any',dwFlags:'Any',pcwszStatus:'Any') -> 'None': + """ + Description of ScanProgress. + +Args: + + dwlSpaceUsed(Any):Description for dwlSpaceUsed + dwFlags(Any):Description for dwFlags + pcwszStatus(Any):Description for pcwszStatus + +Returns: + + None + + """ + pass + + + def PurgeProgress(self,dwlSpaceFreed:'Any',spaceFreed:'Any',spaceToFree:'Any',flags:'Any',status:'Any') -> 'None': + """ + Description of PurgeProgress. + +Args: + + dwlSpaceFreed(Any):Description for dwlSpaceFreed + spaceFreed(Any): + spaceToFree(Any): + flags(Any): + status(Any): + +Returns: + + None + + """ + pass + + +class PyIEnumCATEGORYINFO(object): + """A Python interface to IEnumCATEGORYINFO""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Tuple[PyIID, Any, str], ...]': + """ + Retrieves a specified number of items in the + +enumeration sequence. + +Args: + + num(Any):Number of items to retrieve.Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, one for each element returned. + +Returns: + + Tuple[Tuple[PyIID, Any, str], ...]:Number of items to retrieve. +Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, + +one for each element returned. + + + """ + pass + + + def Skip(self,num:'Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumConnectionPoints(object): + """A Python interface to IEnumConnectionPoints""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': + """ + Retrieves a specified number of items in the + +enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumConnections(object): + """A Python interface to IEnumConnections""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumContextProps(object): + """A Python interface to IEnumContextProps""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Tuple[PyIID, Any, Any], ...]': + """ + Retrieves a specified number of items in + +the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve.Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the property value + +Returns: + + Tuple[Tuple[PyIID, Any, Any], ...]:Number of items to retrieve. +Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: + + First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the + +property value + + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugApplicationNodes(object): + """A Python interface to IEnumDebugApplicationNodes""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugCodeContexts(object): + """A Python interface to IEnumDebugCodeContexts""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the + +same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugExpressionContexts(object): + """A Python interface to IEnumDebugExpressionContexts""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugPropertyInfo(object): + """A Python interface to IEnumDebugPropertyInfo""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the + +same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Obtains the number of items + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumDebugStackFrames(object): + """A Python interface to IEnumDebugStackFrames""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumExplorerCommand(object): + """A Python interface to IEnumExplorerCommand""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumFORMATETC(object): + """A Python interface to IEnumFORMATETC""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumGUID(object): + """A Python interface to IEnumGUID""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[PyIID, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. + +Returns: + + Tuple[PyIID, ...]:Number of items to retrieve. +Return ValueThe result is a tuple of PyIID objects, + +one for each element returned. Note that if zero elements are returned, it is not considered + +an error condition - an empty tuple is simply returned. + + + """ + pass + + + def Skip(self,num:'Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state as + +the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumIDList(object): + """A Python interface to IEnumIDList""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumMoniker(object): + """A Python interface to IEnumMoniker""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. + +Returns: + + Any:Number of items to retrieve. +Return ValueThe result is a tuple of PyIID objects, + +one for each element returned. Note that if zero elements are returned, it is not considered + +an error condition - an empty tuple is simply returned. + + + """ + pass + + + def Skip(self,num:'Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumObjects(object): + """Iterates through a number of arbitrary interfaces""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,riid:'PyIID',num:'Any'=1) -> 'Tuple[Any, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + riid(PyIID):The interfaces to return + num(Any):Number of items to retrieve. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumRemoteDebugApplicationThreads(object): + """A Python interface to IEnumRemoteDebugApplicationThreads""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another + +enumerator that contains the same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumRemoteDebugApplications(object): + """A Python interface to IEnumRemoteDebugApplications""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumResources(object): + """A Python interface to IEnumResources""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumSTATPROPSETSTG(object): + """A Python interface to IEnumSTATPROPSETSTG""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumSTATPROPSTG(object): + """A Python interface to IEnumSTATPROPSTG""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumSTATSTG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumShellItems(object): + """A Python interface to IEnumShellItems""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIEnumString(object): + """An enumerator interface to list strings""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'Any'=1) -> 'Tuple[str, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(Any):Number of items to retrieve. + +Returns: + + Tuple[str, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIErrorLog(object): + """A Python wrapper for a COM IErrorLog interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddError(self,propName:'str',excepInfo:'Any'=None) -> 'None': + """ + Adds an error to the error log. + +Args: + + propName(str):The name of the error + excepInfo(Any):A COM exception. Must be a complete COM exception (ie, pythoncom.com_error, or win32com.server.exceptions.COMException()) + +Returns: + + None + + """ + pass + + +class PyIExplorerBrowser(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,hwndParent:'Any',prc:'PyRECT',pfs:'Any') -> 'None': + """ + Description of Initialize. + +Args: + + hwndParent(Any):Description for hwndParent + prc(PyRECT):Description for prc + pfs(Any):Description for pfs + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Description of Destroy. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetRect(self,hdwp:'Any',rcBrowser:'PyRECT') -> 'int': + """ + Description of SetRect. + +Args: + + hdwp(Any):Description for phdwp + rcBrowser(PyRECT):Description for rcBrowser + +Returns: + + int + + """ + pass + + + def SetPropertyBag(self,PropertyBag:'Any') -> 'None': + """ + Description of SetPropertyBag. + +Args: + + PropertyBag(Any):Description for pszPropertyBag + +Returns: + + None + + """ + pass + + + def SetEmptyText(self,EmptyText:'Any') -> 'None': + """ + Description of SetEmptyText. + +Args: + + EmptyText(Any):Description for pszEmptyText + +Returns: + + None + + """ + pass + + + def SetFolderSettings(self,pfs:'Any') -> 'None': + """ + Description of SetFolderSettings. + +Args: + + pfs(Any):Description for pfs + +Returns: + + None + + """ + pass + + + def Advise(self,psbe:'Any') -> 'Any': + """ + Description of Advise. + +Args: + + psbe(Any):Description for psbe + +Returns: + + Any + + """ + pass + + + def Unadvise(self,dwCookie:'Any') -> 'None': + """ + Description of Unadvise. + +Args: + + dwCookie(Any):Description for dwCookie + +Returns: + + None + + """ + pass + + + def SetOptions(self,dwFlag:'Any') -> 'None': + """ + Description of SetOptions. + +Args: + + dwFlag(Any):Description for dwFlag + +Returns: + + None + + """ + pass + + + def GetOptions(self,) -> 'Any': + """ + Description of GetOptions. + +Args: + + + +Returns: + + Any + + """ + pass + + + def BrowseToIDList(self,pidl:'Any',uFlags:'Any') -> 'None': + """ + Description of BrowseToIDList. + +Args: + + pidl(Any):Description for pidl + uFlags(Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def BrowseToObject(self,punk:'Any',uFlags:'Any') -> 'None': + """ + Description of BrowseToObject. + +Args: + + punk(Any):Description for punk + uFlags(Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def FillFromObject(self,punk:'Any',dwFlags:'Any') -> 'None': + """ + Description of FillFromObject. + +Args: + + punk(Any):Description for punk + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def RemoveAll(self,) -> 'None': + """ + Description of RemoveAll. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentView(self,riid:'PyIID') -> 'Any': + """ + Description of GetCurrentView. + +Args: + + riid(PyIID):Description for riid + +Returns: + + Any + + """ + pass + + +class PyIExplorerBrowserEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnNavigationPending(self,pidlFolder:'Any') -> 'None': + """ + Description of OnNavigationPending. + +Args: + + pidlFolder(Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + + def OnViewCreated(self,psv:'Any') -> 'None': + """ + Description of OnViewCreated. + +Args: + + psv(Any):Description for psv + +Returns: + + None + + """ + pass + + + def OnNavigationComplete(self,pidlFolder:'Any') -> 'None': + """ + Description of OnNavigationComplete. + +Args: + + pidlFolder(Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + + def OnNavigationFailed(self,pidlFolder:'Any') -> 'None': + """ + Description of OnNavigationFailed. + +Args: + + pidlFolder(Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + +class PyIExplorerCommand(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetTitle(self,psiItemArray:'Any') -> 'Any': + """ + Description of GetTitle. + +Args: + + psiItemArray(Any):Description for psiItemArray + +Returns: + + Any + + """ + pass + + + def GetIcon(self,psiItemArray:'Any') -> 'Any': + """ + Description of GetIcon. + +Args: + + psiItemArray(Any):Description for psiItemArray + +Returns: + + Any + + """ + pass + + + def GetToolTip(self,psiItemArray:'Any') -> 'Any': + """ + Description of GetToolTip. + +Args: + + psiItemArray(Any):Description for psiItemArray + +Returns: + + Any + + """ + pass + + + def GetCanonicalName(self,) -> 'PyIID': + """ + Description of GetCanonicalName. + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetState(self,psiItemArray:'Any',fOkToBeSlow:'Any') -> 'Any': + """ + Description of GetState. + +Args: + + psiItemArray(Any):Description for psiItemArray + fOkToBeSlow(Any):Description for fOkToBeSlow + +Returns: + + Any + + """ + pass + + + def Invoke(self,psiItemArray:'Any',pbc:'Any') -> 'None': + """ + Description of Invoke. + +Args: + + psiItemArray(Any):Description for psiItemArray + pbc(Any):Description for pbc + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'Any': + """ + Description of GetFlags. + +Args: + + + +Returns: + + Any + + """ + pass + + + def EnumSubCommands(self,) -> 'Any': + """ + Description of EnumSubCommands. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIExplorerCommandProvider(object): + """This is a gateway only interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIExplorerPaneVisibility(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIExternalConnection(object): + """A Python wrapper for a COM IExternalConnection interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddConnection(self,extconn:'Any',reserved:'Any'=0) -> 'Any': + """ + Increments an object's count of its strong external connections + +(links). + +Args: + + extconn(Any):Type of external connection to the object. The only type of external connection currently supported by this interface is strong, which means that the object must remain alive as long as this external connection exists. Strong external connections are represented by the value EXTCONN_STRONG = 0x0001, which is defined in the enumeration EXTCON + reserved(Any):A reserved parameterReturn ValueThe result is the number of reference counts on the object; used for debugging purposes only. + +Returns: + + Any:A reserved parameter +Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + + + """ + pass + + + def ReleaseConnection(self,extconn:'Any',reserved:'Any',fLastReleaseCloses:'Any') -> 'Any': + """ + Decrements an object's count of its strong external connections + +(references). + +Args: + + extconn(Any):Type of external connection + reserved(Any):A reserved parameter. + fLastReleaseCloses(Any):TRUE specifies that if the connection being released is the last external lock on the object, the object should close. FALSE specifies that the object should remain open until closed by the user or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + +Returns: + + Any:TRUE specifies that if the connection being released is the last external lock on + +the object, the object should close. FALSE specifies that the object should remain open until closed by the user + +or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + + + """ + pass + + +class PyIExtractIcon(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Extract(self,pszFile:'Any',nIconIndex:'Any',nIconSize:'Any') -> 'None': + """ + Description of Extract. + +Args: + + pszFile(Any):Description for pszFile + nIconIndex(Any):Description for nIconIndex + nIconSize(Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. + +Returns: + + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + +(None,None) if the underlying function returns S_FALSE, indicating + +the calling application should extract it. + + + """ + pass + + + def GetIconLocation(self,uFlags:'Any',cchMax:'Any') -> 'None': + """ + Description of GetIconLocation. + +Args: + + uFlags(Any):Description for uFlags + cchMax(Any):Buffer size to allocate for file name + +Returns: + + None + + """ + pass + + +class PyIExtractIconW(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Extract(self,pszFile:'Any',nIconIndex:'Any',nIconSize:'Any') -> 'None': + """ + Description of Extract. + +Args: + + pszFile(Any):Description for pszFile + nIconIndex(Any):Description for nIconIndex + nIconSize(Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. + +Returns: + + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + +(None,None) if the underlying function returns S_FALSE, indicating + +the calling application should extract it. + + + """ + pass + + + def GetIconLocation(self,uFlags:'Any',cchMax:'Any') -> 'None': + """ + Description of GetIconLocation. + +Args: + + uFlags(Any):Description for uFlags + cchMax(Any):Buffer size to allocate for file name + +Returns: + + None + + """ + pass + + +class PyIExtractImage(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLocation(self,dwPriority:'Any',size:'Tuple[Any, Any]',dwRecClrDepth:'Any',pdwFlags:'Any') -> 'None': + """ + Description of GetLocation. + +Args: + + dwPriority(Any):Description for dwPriority + size(Tuple[Any, Any]):Description for prgSize + dwRecClrDepth(Any):Description for dwRecClrDepth + pdwFlags(Any):Description for pdwFlags + +Returns: + + None + + """ + pass + + + def Extract(self,) -> 'None': + """ + Description of Extract. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIFileOperation(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'Any') -> 'Any': + """ + Connects an event sink to receive updates + +Args: + + Sink(Any):Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect + +Returns: + + Any:Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect + + + """ + pass + + + def Unadvise(self,Cookie:'Any') -> 'None': + """ + Disconnects a progress sink + +Args: + + Cookie(Any):Identifies the sink to disconnect, as returned by PyIFileOperation::Advise + +Returns: + + None + + """ + pass + + + def SetOperationFlags(self,OperationFlags:'Any') -> 'None': + """ + Sets option flags for the operation + +Args: + + OperationFlags(Any):Combination of shellcon.FOF_* and FOFX_* flags + +Returns: + + None + + """ + pass + + + def SetProgressMessage(self,Message:'Any') -> 'None': + """ + Not implemented. + +Args: + + Message(Any):Description for Message + +Returns: + + None + + """ + pass + + + def SetProgressDialog(self,popd:'Any') -> 'None': + """ + Provides an interface used to display a progress dialog + +Args: + + popd(Any):Progress dialog interfaceCommentsIOperationsProgressDialog is not yet supported + +Returns: + + None + + """ + pass + + + def SetProperties(self,proparray:'Any') -> 'None': + """ + Specifies a set of properties to be changed. + +Args: + + proparray(Any):Sequence of property changes to be performed (see propsys::PSCreatePropertyChangeArray)CommentsNote that these properties will be set for *any* files created by the operation, not just items passed to ApplyPropertiesToItem(s). New items created as the result of a rename, copy, or move must have a property handler, or the operation fails with the vague com_error: (-2147467259, 'Unspecified error', None, None) (E_FAIL, or 0x80004005 in hex) even though the given file operation was actually performed. + +Returns: + + None + + """ + pass + + + def SetOwnerWindow(self,Owner:'int') -> 'None': + """ + Sets the parent window for any UI displayed. + +Args: + + Owner(int):Handle to parent window + +Returns: + + None + + """ + pass + + + def ApplyPropertiesToItem(self,Item:'Any') -> 'None': + """ + Specifies the item that will receive property changes + +Args: + + Item(Any):The item to which property changes will be applied + +Returns: + + None + + """ + pass + + + def ApplyPropertiesToItems(self,Items:'Any') -> 'None': + """ + Specifies multiple items that will receive property changes + +Args: + + Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the target items + +Returns: + + None + + """ + pass + + + def RenameItem(self,Item:'Any',NewName:'Any',Sink:'Any'=None) -> 'None': + """ + Adds a rename to the operation sequence + +Args: + + Item(Any):The item to be renamed + NewName(Any):The new name + Sink(Any):Progress sink for this operation only. + +Returns: + + None + + """ + pass + + + def RenameItems(self,pUnkItems:'Any',NewName:'Any') -> 'None': + """ + Adds multiple renames to the operation sequence + +Args: + + pUnkItems(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be renamed + NewName(Any):New name for all items. Collisions handled automatically. + +Returns: + + None + + """ + pass + + + def MoveItem(self,Item:'Any',DestinationFolder:'Any',pszNewName:'Any'=None,Sink:'Any'=None) -> 'None': + """ + Adds a move operation to the configuration + +Args: + + Item(Any):The item to be moved + DestinationFolder(Any):The folder into which it will be moved + pszNewName(Any):Name to be given to moved item, use None to keep original name + Sink(Any):Progress sink to receive notification for just this operation + +Returns: + + None + + """ + pass + + + def MoveItems(self,Items:'Any',DestinationFolder:'Any') -> 'None': + """ + Adds multiple move operations to the configuration + +Args: + + Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be moved + DestinationFolder(Any):Folder into which all items will be moved + +Returns: + + None + + """ + pass + + + def CopyItem(self,Item:'Any',DestinationFolder:'Any',CopyName:'Any'=None,Sink:'Any'=None) -> 'None': + """ + Adds a copy operation to the configuration + +Args: + + Item(Any):Item to be copied + DestinationFolder(Any):Folder into which it will be copied + CopyName(Any):New name for the copied file, use None to keep original name + Sink(Any):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def CopyItems(self,Items:'Any',DestinationFolder:'Any') -> 'None': + """ + Adds multiple copy operations to the configuration + +Args: + + Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be copied + DestinationFolder(Any):Folder into which they will be copied + +Returns: + + None + + """ + pass + + + def DeleteItem(self,Item:'Any',Sink:'Any'=None) -> 'None': + """ + Adds a delete operation to the configuration + +Args: + + Item(Any):Description for psiItem + Sink(Any):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def DeleteItems(self,Items:'Any') -> 'None': + """ + Adds multiple delete operations to the configuration + +Args: + + Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be deleted + +Returns: + + None + + """ + pass + + + def NewItem(self,DestinationFolder:'Any',FileAttributes:'Any',Name:'Any',TemplateName:'Any'=None,Sink:'Any'=None) -> 'None': + """ + Creates a new file as part of the operation + +Args: + + DestinationFolder(Any):Folder in which to create the file + FileAttributes(Any):Combination of win32con.FILE_ATTRIBUTE_* flags + Name(Any):Name of the new file + TemplateName(Any):Template file used to initialize the new file + Sink(Any):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def PerformOperations(self,) -> 'None': + """ + Effects all configured file system modifications + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAnyOperationsAborted(self,) -> 'Any': + """ + Determines if any operations were terminated + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIIdentityName(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIInitializeWithFile(object): + """Initializes a property handler that requires a file path instead of a stream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,FilePath:'Any',Mode:'Any') -> 'None': + """ + Passes a file path to a property handler on startup + +Args: + + FilePath(Any):Full path to the file whose properties are to be accessed + Mode(Any):Indicates if properties can be written, STGM_READ or STGM_READWRITE + +Returns: + + None + + """ + pass + + +class PyIInitializeWithStream(object): + """Interface that initializes a handler capable of reading properties from a stream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,Stream:'Any',Mode:'Any') -> 'None': + """ + Initializes a property handler with a stream + +Args: + + Stream(Any):Stream containing the contents from which to extract properties + Mode(Any):Indicates if stream is writable, STGM_READ or STGM_READWRITE + +Returns: + + None + + """ + pass + + +class PyIInputObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,pmsg:'Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + pmsg(Any):Description for pmsg + +Returns: + + None + + """ + pass + + + def UIActivate(self,uState:'Any') -> 'None': + """ + Description of UIActivate. + +Args: + + uState(Any):Description for uState + +Returns: + + None + + """ + pass + + + def HasFocusIO(self,) -> 'None': + """ + Description of Refresh. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetBindInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetBindInfo(self,) -> 'None': + """ + Description of GetBindInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBindString(self,) -> 'None': + """ + Description of GetBindString. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetPriority(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetPriority(self,nPriority:'Any') -> 'None': + """ + Description of SetPriority. + +Args: + + nPriority(Any):Description for nPriority + +Returns: + + None + + """ + pass + + + def GetPriority(self,) -> 'None': + """ + Description of GetPriority. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocol(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,cb:'Any') -> 'None': + """ + Description of Read. + +Args: + + cb(Any):Description for cb + +Returns: + + None + + """ + pass + + + def Seek(self,dlibMove:'LARGE_INTEGER',dwOrigin:'Any') -> 'None': + """ + Description of Seek. + +Args: + + dlibMove(LARGE_INTEGER):Description for dlibMove + dwOrigin(Any):Description for dwOrigin + +Returns: + + None + + """ + pass + + + def LockRequest(self,dwOptions:'Any') -> 'None': + """ + Description of LockRequest. + +Args: + + dwOptions(Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def UnlockRequest(self,) -> 'None': + """ + Description of UnlockRequest. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocolInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseUrl(self,pwzUrl:'Any',ParseAction:'Any',dwParseFlags:'Any',cchResult:'Any',dwReserved:'Any') -> 'None': + """ + Description of ParseUrl. + +Args: + + pwzUrl(Any):Description for pwzUrl + ParseAction(Any):Description for ParseAction + dwParseFlags(Any):Description for dwParseFlags + cchResult(Any):Description for cchResult + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def CombineUrl(self,pwzBaseUrl:'Any',pwzRelativeUrl:'Any',dwCombineFlags:'Any',cchResult:'Any',dwReserved:'Any') -> 'None': + """ + Description of CombineUrl. + +Args: + + pwzBaseUrl(Any):Description for pwzBaseUrl + pwzRelativeUrl(Any):Description for pwzRelativeUrl + dwCombineFlags(Any):Description for dwCombineFlags + cchResult(Any):Description for cchResult + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def CompareUrl(self,pwzUrl1:'Any',pwzUrl2:'Any',dwCompareFlags:'Any') -> 'None': + """ + Description of CompareUrl. + +Args: + + pwzUrl1(Any):Description for pwzUrl1 + pwzUrl2(Any):Description for pwzUrl2 + dwCompareFlags(Any):Description for dwCompareFlags + +Returns: + + None + + """ + pass + + + def QueryInfo(self,pwzUrl:'Any',OueryOption:'Any',dwQueryFlags:'Any',cbBuffer:'Any',dwReserved:'Any') -> 'Any': + """ + Description of QueryInfo. + +Args: + + pwzUrl(Any):Description for pwzUrl + OueryOption(Any):Description for OueryOption + dwQueryFlags(Any):Description for dwQueryFlags + cbBuffer(Any):Description for cbBuffer + dwReserved(Any):Description for dwReservedCommentsIf the buffer size is the size of an integer, an integer will be returned, otherwise a string. + +Returns: + + Any + + """ + pass + + +class PyIInternetProtocolRoot(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Start(self,szUrl:'Any',pOIProtSink:'Any',pOIBindInfo:'Any',grfPI:'Any',dwReserved:'Any') -> 'None': + """ + Description of Start. + +Args: + + szUrl(Any):Description for szUrl + pOIProtSink(Any):Description for pOIProtSink + pOIBindInfo(Any):Description for pOIBindInfo + grfPI(Any):Description for grfPI + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def Continue(self,) -> 'None': + """ + Description of Continue. + +Args: + + + +Returns: + + None + + """ + pass + + + def Abort(self,hrReason:'Any',dwOptions:'Any') -> 'None': + """ + Description of Abort. + +Args: + + hrReason(Any):Description for hrReason + dwOptions(Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def Terminate(self,dwOptions:'Any') -> 'None': + """ + Description of Terminate. + +Args: + + dwOptions(Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def Suspend(self,) -> 'None': + """ + Description of Suspend. + +Args: + + + +Returns: + + None + + """ + pass + + + def Resume(self,) -> 'None': + """ + Description of Resume. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocolSink(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Switch(self,) -> 'None': + """ + Description of Switch. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReportProgress(self,ulStatusCode:'Any',szStatusText:'Any') -> 'None': + """ + Description of ReportProgress. + +Args: + + ulStatusCode(Any):Description for ulStatusCode + szStatusText(Any):Description for szStatusText + +Returns: + + None + + """ + pass + + + def ReportData(self,grfBSCF:'Any',ulProgress:'Any',ulProgressMax:'Any') -> 'None': + """ + Description of ReportData. + +Args: + + grfBSCF(Any):Description for grfBSCF + ulProgress(Any):Description for ulProgress + ulProgressMax(Any):Description for ulProgressMax + +Returns: + + None + + """ + pass + + + def ReportResult(self,hrResult:'Any',dwError:'Any',szResult:'Any') -> 'None': + """ + Description of ReportResult. + +Args: + + hrResult(Any):Description for hrResult + dwError(Any):Description for dwError + szResult(Any):Description for szResult + +Returns: + + None + + """ + pass + + +class PyIInternetSecurityManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSecuritySite(self,pSite:'Any') -> 'None': + """ + Description of SetSecuritySite. + +Args: + + pSite(Any):Description for pSite + +Returns: + + None + + """ + pass + + + def GetSecuritySite(self,) -> 'None': + """ + Description of GetSecuritySite. + +Args: + + + +Returns: + + None + + """ + pass + + + def MapUrlToZone(self,pwszUrl:'Any',dwFlags:'Any') -> 'None': + """ + Description of MapUrlToZone. + +Args: + + pwszUrl(Any):Description for pwszUrl + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetSecurityId(self,pwszUrl:'Any',pcbSecurityId:'Any') -> 'None': + """ + Description of GetSecurityId. + +Args: + + pwszUrl(Any):Description for pwszUrl + pcbSecurityId(Any):Description for pcbSecurityId + +Returns: + + None + + """ + pass + + + def ProcessUrlAction(self,pwszUrl:'Any',dwAction:'Any',context:'Any',dwFlags:'Any') -> 'None': + """ + Description of ProcessUrlAction. + +Args: + + pwszUrl(Any):Description for pwszUrl + dwAction(Any):Description for dwAction + context(Any): + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def SetZoneMapping(self,dwZone:'Any',lpszPattern:'Any',dwFlags:'Any') -> 'None': + """ + Description of SetZoneMapping. + +Args: + + dwZone(Any):Description for dwZone + lpszPattern(Any):Description for lpszPattern + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetZoneMappings(self,dwZone:'Any',dwFlags:'Any') -> 'None': + """ + Description of GetZoneMappings. + +Args: + + dwZone(Any):Description for dwZone + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + +class PyIKnownFolder(object): + """Interface representing a known folder that serves + +as a replacement for the numeric CSIDL definitions and API functions. + +Requires Vista or later.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetId(self,) -> 'PyIID': + """ + Returns the id of the folder + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetCategory(self,) -> 'Any': + """ + Returns the category for a folder (shellcon.KF_CATEGORY_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetShellItem(self,riid:'PyIID',Flags:'Any'=0) -> 'Any': + """ + Returns a shell interface for the folder + +Args: + + riid(PyIID):The interface to return (IShellItem or IShellItem2) + Flags(Any):Combination of shellcon.KF_FLAG_* values + +Returns: + + Any + + """ + pass + + + def GetPath(self,Flags:'Any'=0) -> 'Any': + """ + Returns the path to the folder + +Args: + + Flags(Any):Combination of shellcon.KF_FLAG_* flags controlling how the path is returned + +Returns: + + Any + + """ + pass + + + def SetPath(self,Flags:'Any',Path:'Any') -> 'None': + """ + Changes the location of the folder + +Args: + + Flags(Any):KF_FLAG_DONT_UNEXPAND, or 0 + Path(Any):New path for known folder + +Returns: + + None + + """ + pass + + + def GetIDList(self,Flags:'Any') -> 'Any': + """ + Returns the folder's location as an item id list. + +Args: + + Flags(Any):Combination of shellcon.KF_FLAG_* values that affect how the operation is performed + +Returns: + + Any + + """ + pass + + + def GetFolderType(self,) -> 'PyIID': + """ + Returns the type of the folder + +Args: + + + +Returns: + + PyIID:PyIKnownFolder.GetFolderType +PyIID = GetFolderType()Returns the type of the folder +Return ValueReturns a folder type guid (shell.FOLDERTYPEID_*) + + + """ + pass + + + def GetRedirectionCapabilities(self,) -> 'Any': + """ + Returns flags indicating how the folder can be redirected + +Args: + + + +Returns: + + Any:PyIKnownFolder.GetRedirectionCapabilities + +int = GetRedirectionCapabilities()Returns flags indicating how the folder can be redirected +Return ValueCombination of shellcon.KF_REDIRECTION_CAPABILITIES_* flags + + + """ + pass + + + def GetFolderDefinition(self,) -> 'Any': + """ + Retrieves detailed information about a known folder + +Args: + + + +Returns: + + Any:PyIKnownFolder.GetFolderDefinition + +dict = GetFolderDefinition()Retrieves detailed information about a known folder +Return ValueReturns a dict containing info from a KNOWNFOLDER_DEFINITION struct + + + """ + pass + + +class PyIKnownFolderManager(object): + """Interface used to manage known folder definitions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def FolderIdFromCsidl(self,Csidl:'Any') -> 'PyIID': + """ + Returns the folder id that corresponds to a CSIDL + +Args: + + Csidl(Any):The legacy CSIDL identifying a folder + +Returns: + + PyIID + + """ + pass + + + def FolderIdToCsidl(self,_id:'PyIID') -> 'Any': + """ + Returns the CSIDL equivalent of a known folder + +Args: + + _id(PyIID):A known folder id (shell.FOLDERID_*) + +Returns: + + Any + + """ + pass + + + def GetFolderIds(self,) -> 'Tuple[PyIID, ...]': + """ + Retrieves all known folder ids. + +Args: + + + +Returns: + + Tuple[PyIID, ...] + + """ + pass + + + def GetFolder(self,_id:'PyIID') -> 'Any': + """ + Returns a folder by its id. + +Args: + + _id(PyIID):A known folder id (shell.FOLDERID_*) + +Returns: + + Any + + """ + pass + + + def GetFolderByName(self,Name:'Any') -> 'Any': + """ + Returns a folder by canonical name + +Args: + + Name(Any):The nonlocalized name of a known folder + +Returns: + + Any + + """ + pass + + + def RegisterFolder(self,_id:'PyIID',Definition:'Any') -> 'None': + """ + Defines a new known folder + +Args: + + _id(PyIID):GUID used to identify the new known folder + Definition(Any):Dictionary containing info to be placed in a KNOWNFOLDER_DEFINITION structCommentsPyIKnownFolder::GetFolderDefinition can be used to get a template dictionary + +Returns: + + None + + """ + pass + + + def UnregisterFolder(self,_id:'PyIID') -> 'None': + """ + Removes the definition of a known folder + +Args: + + _id(PyIID):GUID of a known folder to be unregistered + +Returns: + + None + + """ + pass + + + def FindFolderFromPath(self,Path:'Any',Mode:'Any') -> 'Any': + """ + Retrieves a known folder by path + +Args: + + Path(Any):Path of a folder + Mode(Any):FFFP_EXACTMATCH or FFFP_NEARESTPARENTMATCH + +Returns: + + Any + + """ + pass + + + def FindFolderFromIDList(self,pidl:'Any') -> 'Any': + """ + Retrieves a known folder using its item id + +list. + +Args: + + pidl(Any):Item id list of the folder + +Returns: + + Any + + """ + pass + + + def Redirect(self,_id:'PyIID',hwnd:'int',flags:'Any',TargetPath:'Any',Exclusion:'Tuple[PyIID, ...]') -> 'None': + """ + Redirects a known folder to an alternate location + +Args: + + _id(PyIID):Id of the known folder to be redirected + hwnd(int):Handle of window to be used for user interaction + flags(Any):Combination of KF_REDIRECT_* flags + TargetPath(Any):Path to which the known folder will be redirected + Exclusion(Tuple[PyIID, ...]):Sequence of known folder ids of subfolders to be excluded from redirection + +Returns: + + None + + """ + pass + + +class PyILockBytes(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ReadAt(self,ulOffset:'ULARGE_INTEGER',cb:'Any') -> 'str': + """ + Reads a specified number of bytes starting at a specified offset from the + +beginning of the byte array object. + +Args: + + ulOffset(ULARGE_INTEGER):Offset to start reading + cb(Any):Number of bytes to readCommentsThe result is a binary buffer returned in a string. + +Returns: + + str + + """ + pass + + + def WriteAt(self,ulOffset:'ULARGE_INTEGER',data:'str') -> 'Any': + """ + Writes the specified number of bytes starting at a specified offset from the + +beginning of the byte array. + +Args: + + ulOffset(ULARGE_INTEGER):Offset to write at. + data(str):Data to writeReturn ValueThe result is the number of bytes actually written. + +Returns: + + Any:Data to writeReturn ValueThe result is the number of bytes actually written. + + + """ + pass + + + def Flush(self,) -> 'None': + """ + Ensures that any internal buffers maintained by the byte array object are written out + +to the backing storage. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSize(self,cb:'ULARGE_INTEGER') -> 'None': + """ + Changes the size of the byte array. + +Args: + + cb(ULARGE_INTEGER):The new size. + +Returns: + + None + + """ + pass + + + def LockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'Any') -> 'None': + """ + Restricts access to a specified range of bytes in the byte array. + +Args: + + libOffset(ULARGE_INTEGER):The beginning of the region to lock. + cb(ULARGE_INTEGER):The number of bytes to lock. + dwLockType(Any):Specifies the restrictions being requested on accessing the range. + +Returns: + + None + + """ + pass + + + def UnlockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'Any') -> 'None': + """ + None + +Args: + + libOffset(ULARGE_INTEGER):The beginning of the region to unlock. + cb(ULARGE_INTEGER):The number of bytes to lock. + dwLockType(Any):Specifies the restrictions being requested on accessing the range. + +Returns: + + None + + """ + pass + + + def Stat(self,grfStatFlag:'Any') -> 'Any': + """ + None + +Args: + + grfStatFlag(Any):Specifies that this method does not return some of the fields in the STATSTG structure, thus saving a memory allocation operation. Values are taken from the STATFLAG enumerationg + +Returns: + + Any + + """ + pass + + +class PyIMAPIContainer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens an object and returns an interface object for further access. + +Args: + + entryId(str):The EntryID to open. + iid(PyIID):The IID of the returned interface, or None for the default interface. + flags(Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) + +Returns: + + Any + + """ + pass + + + def GetContentsTable(self,flags:'Any') -> 'Any': + """ + Returns an object representing the container's contents table. + +Args: + + flags(Any):The flags to use. + +Returns: + + Any + + """ + pass + + + def GetHierarchyTable(self,flags:'Any') -> 'Any': + """ + Returns an object representing the container's hierarchy table. + +Args: + + flags(Any):The flags to use. + +Returns: + + Any + + """ + pass + + +class PyIMAPIFolder(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def CreateFolder(self,folderType:'Any',folderName:'str',folderComment:'str'=None,iid:'PyIID'=None,flags:'Any'=0) -> 'Any': + """ + Creates a folder object. + +Args: + + folderType(Any):The type of folder to create + folderName(str):The name of the folder. + folderComment(str):A comment for the folder or None + iid(PyIID):The IID of the object to return. Should usually be None. + flags(Any): + +Returns: + + Any + + """ + pass + + + def CreateMessage(self,iid:'PyIID',flags:'Any') -> 'Any': + """ + Creates a message in a folder + +Args: + + iid(PyIID):The IID of the object to return. Should usually be None. + flags(Any): + +Returns: + + Any + + """ + pass + + + def CopyMessages(self,msgs:'Any',iid:'PyIID',folder:'Any',ulUIParam:'Any',progress:'Any',flags:'Any') -> 'Any': + """ + Copies the specified messages + +Args: + + msgs(Any): + iid(PyIID):IID representing the interface to be used to access the destination folder. Should usually be None. + folder(Any):The destination folder + ulUIParam(Any):Handle of the parent window for any dialog boxes or windows this method displays. + progress(Any):A progress object, or None + flags(Any):A bitmask ofMaskDescriptionMAPI_DECLINE_OKInforms the message store provider to immediately return MAPI_E_DECLINE_COPY if it implements CopyMessage by calling the support object's IMAPISupport::DoCopyTo or IMAPISupport::DoCopyProps method.MESSAGE_DIALOGDisplays a progress indicator as the operation proceeds.MESSAGE_MOVEThe message or messages are to be moved rather than copied. If MESSAGE_MOVE is not set, the messages are copied. + +Returns: + + Any + + """ + pass + + + def DeleteFolder(self,entryId:'str',uiParam:'Any',progress:'Any') -> 'None': + """ + Deletes a subfolder. + +Args: + + entryId(str):The EntryID of the subfolder to delete. + uiParam(Any):Handle of the parent window of the progress indicator. + progress(Any):A progress object, or None + +Returns: + + None + + """ + pass + + + def DeleteMessages(self,msgs:'Any',uiParam:'Any',progress:'Any',flags:'Any') -> 'Any': + """ + Deletes the specified messages. + +Args: + + msgs(Any): + uiParam(Any):A HWND for the progress + progress(Any):A progress object, or None + flags(Any): + +Returns: + + Any + + """ + pass + + + def EmptyFolder(self,uiParam:'Any',progress:'Any',flags:'Any') -> 'Any': + """ + deletes all messages and subfolders from a folder without deleting the folder itself. + +Args: + + uiParam(Any):A HWND for the progress + progress(Any):A progress object, or None + flags(Any): + +Returns: + + Any + + """ + pass + + + def SetReadFlags(self,msgs:'Any',uiParam:'Any',progress:'Any',flag:'Any') -> 'None': + """ + Sets or clears the MSGFLAG_READ flag in the PR_MESSAGE_FLAGS (PidTagMessageFlags) property of one or more of the folder's messages, and manages the sending of read reports. + +Args: + + msgs(Any): + uiParam(Any):A HWND for the progress + progress(Any):A progress object, or None + flag(Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. + +Returns: + + None + + """ + pass + + +class PyIMAPIProp(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetProps(self,propList:'Any',flags:'Any'=0) -> 'Tuple[Any, Any, Any]': + """ + Returns a list of property values. + +Args: + + propList(Any):The list of properties + flags(Any): + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def DeleteProps(self,propList:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': + """ + Deletes a set of properties. + +Args: + + propList(Any):The list of properties + wantProblems(Any):Return detailed error information + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def SetProps(self,propList:'Tuple[Any, Any]',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': + """ + Sets a set of properties. + +Args: + + propList(Tuple[Any, Any]):The list of properties + wantProblems(Any):Return detailed error information + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def CopyTo(self,IIDExcludeList:'Tuple[Any, Any]',propTags:'Any',uiParam:'Any',progress:'Any',resultIID:'PyIID',dest:'Any',flags:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': + """ + Copies an object to another + +Args: + + IIDExcludeList(Tuple[Any, Any]):A sequence of IIDs to exclude. + propTags(Any):The property tags to exclude. + uiParam(Any):Handle to the parent window of the progress object + progress(Any):Reserved - must pass None + resultIID(PyIID):IID of the destination object + dest(Any):The destination object + flags(Any):flags + wantProblems(Any):Return detailed error information + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def CopyProps(self,propTags:'Any',uiParam:'Any',progress:'Any',resultIID:'PyIID',dest:'Any',flags:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': + """ + Copies a set of properties to another object + +Args: + + propTags(Any):The property tags to copy + uiParam(Any):Handle to the parent window of the progress object + progress(Any):Reserved - must pass None + resultIID(PyIID):IID of the destination object + dest(Any):The destination object + flags(Any):flags + wantProblems(Any):Return detailed error information + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def OpenProperty(self,propTag:'Any',iid:'PyIID',interfaceOptions:'Any',flags:'Any') -> 'Any': + """ + Returns an interface object to be used to access a property. + +Args: + + propTag(Any):The property tag to open + iid(PyIID):The IID of the resulting interface. + interfaceOptions(Any):Data that relates to the interface identified by the lpiid parameter. + flags(Any):flags + +Returns: + + Any + + """ + pass + + + def GetIDsFromNames(self,nameIds:'Any',flags:'Any'=0) -> 'Any': + """ + Determines property IDs + +Args: + + nameIds(Any):Sequence of name ids + flags(Any): + +Returns: + + Any + + """ + pass + + + def GetNamesFromIDs(self,propTags:'Any',propSetGuid:'PyIID'=None,flags:'Any'=0) -> 'Tuple[Any, Any, Any]': + """ + Determines property names + +Args: + + propTags(Any):Sequence of property tags, or None + propSetGuid(PyIID):a globally unique identifier, identifying a property set, or None + flags(Any): + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def SaveChanges(self,flags:'Any') -> 'None': + """ + Saves pending changes to the object + +Args: + + flags(Any):flags + +Returns: + + None + + """ + pass + + + def GetPropList(self,flags:'Any') -> 'Any': + """ + Gets a list of properties + +Args: + + flags(Any):flags + +Returns: + + Any + + """ + pass + + +class PyIMAPISession(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens an object and returns an interface object for further access. + +Args: + + entryId(str):The EntryID to open. + iid(PyIID):The IID of the returned interface, or None for the default interface. + flags(Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) + +Returns: + + Any + + """ + pass + + + def OpenMsgStore(self,uiParam:'Any',entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a message store. + +Args: + + uiParam(Any):Handle to the parent window for dialogs. + entryId(str):The entry ID of the message store to open. + iid(PyIID):The IID of the interface returned, or None + flags(Any):Options for the call.CommentsThe result is the interface specified by the IID, or IID_IMsgStore if None is used. + +Returns: + + Any + + """ + pass + + + def QueryIdentity(self,) -> 'str': + """ + Returns the entry identifier of the object that provides the primary identity for the session. + +Args: + + + +Returns: + + str + + """ + pass + + + def Advise(self,entryId:'str',mask:'Any',sink:'Any') -> 'Any': + """ + None + +Args: + + entryId(str):The entryID of the object + mask(Any): + sink(Any):Return ValueThe result is an integer which should be passed to PyIMAPISession::Unadvise + +Returns: + + Any:Return ValueThe result is an integer which should be passed to + +PyIMAPISession::Unadvise + + + """ + pass + + + def Unadvise(self,connection:'Any') -> 'None': + """ + None + +Args: + + connection(Any):Value returned from PyIMAPISession::Advise + +Returns: + + None + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def GetMsgStoresTable(self,flags:'Any') -> 'Any': + """ + Provides access to the message store table - a table with information about all of the message stores in the session profile. + +Args: + + flags(Any):Flags that control the opening. + +Returns: + + Any + + """ + pass + + + def GetStatusTable(self,flags:'Any') -> 'Any': + """ + Provides access to the status table - a table with information about all of the MAPI resources in the session. + +Args: + + flags(Any):Flags that control the opening. + +Returns: + + Any + + """ + pass + + + def Logoff(self,uiParm:'Any',flags:'Any',reserved:'Any') -> 'None': + """ + Ends a MAPI session. + +Args: + + uiParm(Any):hwnd of a dialog is to be displayed. + flags(Any):Bitmask of flags that control the logoff operation. + reserved(Any):Reserved; must be zero. + +Returns: + + None + + """ + pass + + + def OpenAddressBook(self,uiParm:'Any',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens the integrated address book. + +Args: + + uiParm(Any):hwnd of a dialog is to be displayed. + iid(PyIID):The IID of the interface, or None. + flags(Any):Flags that control the opening - AB_NO_DIALOG. + +Returns: + + Any + + """ + pass + + + def OpenProfileSection(self,iidSection:'PyIID',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a section of the current profile and returns an object for futher access + +Args: + + iidSection(PyIID):The MAPIIID of the profile section + iid(PyIID):The IID of the interface, or None. + flags(Any):Flags that control the opening. + +Returns: + + Any + + """ + pass + + + def AdminServices(self,flags:'Any'=0) -> 'Any': + """ + Provides access to a message service administration object for making changes to the message services. + +Args: + + flags(Any):reserved; must be zero. + +Returns: + + Any + + """ + pass + + +class PyIMAPIStatus(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ChangePassword(self,oldPassword:'Any',newPassword:'Any',ulFlags:'Any') -> 'None': + """ + None + +Args: + + oldPassword(Any): + newPassword(Any): + ulFlags(Any): + +Returns: + + None + + """ + pass + + + def SettingsDialog(self,ulUIParam:'Any',ulFlags:'Any') -> 'None': + """ + None + +Args: + + ulUIParam(Any): + ulFlags(Any): + +Returns: + + None + + """ + pass + + + def ValidateState(self,ulUIParam:'Any',ulFlags:'Any') -> 'None': + """ + None + +Args: + + ulUIParam(Any): + ulFlags(Any): + +Returns: + + None + + """ + pass + + + def FlushQueues(self,ulUIParam:'Any',transport:'str',ulFlags:'Any') -> 'None': + """ + None + +Args: + + ulUIParam(Any): + transport(str):Blob of data + ulFlags(Any): + +Returns: + + None + + """ + pass + + +class PyIMAPITable(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def Advise(self,eventMask:'Any',adviseSink:'Any') -> 'Any': + """ + Registers to receive notification of specified events affecting the table. + +Args: + + eventMask(Any): + adviseSink(Any): + +Returns: + + Any + + """ + pass + + + def SeekRow(self,bookmark:'Any',rowCount:'Any') -> 'Any': + """ + Moves the cursor to a specific position in the table. + +Args: + + bookmark(Any):The bookmark. + rowCount(Any):Return ValueThe result is the number of rows processed. + +Returns: + + Any:Return ValueThe result is the number of rows processed. + + + """ + pass + + + def SeekRowApprox(self,numerator:'Any',denominator:'Any') -> 'None': + """ + Moves the cursor to an approximate fractional position in the table. + +Args: + + numerator(Any):The numerator of the fraction representing the table position + denominator(Any):The denominator of the fraction representing the table position. This must not be zero. + +Returns: + + None + + """ + pass + + + def GetRowCount(self,flags:'Any') -> 'Any': + """ + Returns the total number of rows in the table. + +Args: + + flags(Any):Reserved - must be zero + +Returns: + + Any + + """ + pass + + + def QueryRows(self,rowCount:'Any',flags:'Any') -> 'Any': + """ + Returns one or more rows from a table, beginning at the current cursor position. + +Args: + + rowCount(Any):Number of rows to retrieve + flags(Any):Flags. + +Returns: + + Any + + """ + pass + + + def SetColumns(self,propTags:'Any',flags:'Any') -> 'None': + """ + Defines the particular properties and order of properties to appear as columns in the table. + +Args: + + propTags(Any):Sequence of property tags identifying properties to be included as columns in the table. + flags(Any): + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Returns the table's status and type. + +Args: + + + +Returns: + + None:PyIMAPITable.GetStatus +GetStatus()Returns the table's status and type. +Return ValueResult is a tuple of (tableStatus, tableType) + + + """ + pass + + + def QueryPosition(self,) -> 'None': + """ + Retrieves the current table row position of the cursor, based on a fractional value. + +Args: + + + +Returns: + + None:PyIMAPITable.QueryPosition +QueryPosition()Retrieves the current table row position of the cursor, based on a fractional value. +Return ValueResult is a tuple of (row, numerator, denominator) + + + """ + pass + + + def QueryColumns(self,flags:'Any') -> 'Any': + """ + Returns a list of columns for the table. + +Args: + + flags(Any): + +Returns: + + Any + + """ + pass + + + def Abort(self,) -> 'None': + """ + Stops any asynchronous operations currently in progress for the table. + +Args: + + + +Returns: + + None + + """ + pass + + + def FreeBookmark(self,bookmark:'Any') -> 'None': + """ + Releases the memory associated with a bookmark. + +Args: + + bookmark(Any): + +Returns: + + None + + """ + pass + + + def CreateBookmark(self,) -> 'Any': + """ + Marks the table's current position. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Restrict(self,restriction:'Any',flags:'Any') -> 'None': + """ + Applies a filter to a table, reducing the row set to only those rows matching the specified criteria. + +Args: + + restriction(Any): + flags(Any): + +Returns: + + None + + """ + pass + + + def FindRow(self,restriction:'Any',bookmarkOrigin:'Any',flags:'Any') -> 'None': + """ + Finds the next row in a table that matches specific search criteria. + +Args: + + restriction(Any): + bookmarkOrigin(Any): + flags(Any): + +Returns: + + None + + """ + pass + + + def SortTable(self,sortOrderSet:'Any',flags:'Any') -> 'None': + """ + Orders the rows of the table based on sort criteria. + +Args: + + sortOrderSet(Any): + flags(Any): + +Returns: + + None + + """ + pass + + + def Unadvise(self,handle:'Any') -> 'None': + """ + Cancels the sending of notifications previously set up with a call to the IMAPITable::Advise method. + +Args: + + handle(Any):Handle returned from PyIMAPITable::Advise + +Returns: + + None + + """ + pass + + +class PyIMachineDebugManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddApplication(self,pda:'Any') -> 'None': + """ + Description of AddApplication. + +Args: + + pda(Any):Description for pda + +Returns: + + None + + """ + pass + + + def RemoveApplication(self,dwAppCookie:'Any') -> 'None': + """ + Description of RemoveApplication. + +Args: + + dwAppCookie(Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def EnumApplications(self,) -> 'None': + """ + Description of EnumApplications. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIMachineDebugManagerEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onAddApplication(self,pda:'Any',dwAppCookie:'Any') -> 'None': + """ + Description of onAddApplication. + +Args: + + pda(Any):Description for pda + dwAppCookie(Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def onRemoveApplication(self,pda:'Any',dwAppCookie:'Any') -> 'None': + """ + Description of onRemoveApplication. + +Args: + + pda(Any):Description for pda + dwAppCookie(Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + +class PyIMessage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetReadFlag(self,flag:'Any') -> 'None': + """ + Sets the read flags for a message + +Args: + + flag(Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. + +Returns: + + None + + """ + pass + + + def GetAttachmentTable(self,flags:'Any') -> 'Any': + """ + Returns the message's attachment table. + +Args: + + flags(Any):Bitmask of flags that relate to the creation of the table. + +Returns: + + Any + + """ + pass + + + def OpenAttach(self,attachmentNum:'Any',interface:'PyIID',flags:'Any') -> 'Any': + """ + Opens an attachment + +Args: + + attachmentNum(Any): + interface(PyIID):The interface to use, or None + flags(Any):Bitmask of flags that controls how the attachment is opened. + +Returns: + + Any + + """ + pass + + + def CreateAttach(self,interface:'PyIID',flags:'Any') -> 'Tuple[Any, Any]': + """ + Creates an attachment + +Args: + + interface(PyIID):The interface to use, or None + flags(Any):Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) + +Returns: + + Tuple[Any, Any]:Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) + + + """ + pass + + + def DeleteAttach(self,attachmentNum:'Any',ulUIParam:'Any',interface:'Any',flags:'Any') -> 'None': + """ + Deletes an attachment + +Args: + + attachmentNum(Any): + ulUIParam(Any): + interface(Any):The interface to use, or None + flags(Any):Bitmask of flags that controls the display of a user interface. + +Returns: + + None + + """ + pass + + + def ModifyRecipients(self,flags:'Any',mods:'Any') -> 'None': + """ + adds, deletes, or modifies message recipients. + +Args: + + flags(Any):Bitmask of flags that controls the recipient changes. If zero is passed for the ulFlags parameter, ModifyRecipients replaces all existing recipients with the recipient list in the mods parameter. + mods(Any):The list of recipients. + +Returns: + + None + + """ + pass + + + def GetRecipientTable(self,flags:'Any') -> 'Any': + """ + Returns the message's recipient table. + +Args: + + flags(Any):Bitmask of flags that relate to the creation of the table. + +Returns: + + Any + + """ + pass + + + def SubmitMessage(self,flags:'Any') -> 'None': + """ + Saves all of the message's properties and marks the message as ready to be sent. + +Args: + + flags(Any):Flags which specify how the message is submitted. + +Returns: + + None + + """ + pass + + +class PyIMoniker(object): + """A Python interface to IMoniker""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToObject(self,bindCtx:'Any',moniker:'Any',iidResult:'Any') -> 'Any': + """ + Uses the moniker to bind to the object it identifies. + +Args: + + bindCtx(Any):bind context object to be used. + moniker(Any):If the moniker is part of a composite moniker, otherwise None + iidResult(Any):IID of the result object. + +Returns: + + Any + + """ + pass + + + def BindToStorage(self,bindCtx:'Any',moniker:'Any',iidResult:'Any') -> 'Any': + """ + Retrieves an interface object to the storage that contains the + +object identified by the moniker. + +Args: + + bindCtx(Any):bind context object to be used. + moniker(Any):If the moniker is part of a composite moniker, otherwise None + iidResult(Any):IID of the result object. + +Returns: + + Any + + """ + pass + + + def GetDisplayName(self,bindCtx:'Any',moniker:'Any') -> 'str': + """ + Gets the display name , which is a user-readable representation of this + +moniker. + +Args: + + bindCtx(Any):bind context object to be used. + moniker(Any):If the moniker is part of a composite moniker, otherwise None + +Returns: + + str + + """ + pass + + + def ComposeWith(self,mkRight:'Any',fOnlyIfNotGeneric:'Any') -> 'Any': + """ + Combines the current moniker with another moniker, creating a new + +composite moniker. + +Args: + + mkRight(Any):The IMoniker interface on the moniker to compose onto the end of this moniker. + fOnlyIfNotGeneric(Any):If TRUE, the caller requires a non-generic composition, so the operation should proceed only if pmkRight is a moniker class that this moniker can compose with in some way other than forming a generic composite. If FALSE, the method can create a generic composite if necessary. + +Returns: + + Any + + """ + pass + + + def Enum(self,fForward:'Any'=True) -> 'Any': + """ + Supplies an enumerator that can enumerate the components of a composite + +moniker. + +Args: + + fForward(Any):If TRUE, enumerates the monikers from left to right. If FALSE, enumerates from right to left. + +Returns: + + Any + + """ + pass + + + def IsEqual(self,other:'Any') -> 'Any': + """ + Compares this moniker with a specified moniker and indicates whether they are + +identical. + +Args: + + other(Any):The moniker to compare + +Returns: + + Any + + """ + pass + + + def IsSystemMoniker(self,) -> 'Any': + """ + Indicates whether this moniker is of one of the system-supplied moniker + +classes. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Hash(self,) -> 'Any': + """ + Calculates a 32-bit integer using the internal state of the moniker. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIMsgServiceAdmin(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def CreateMsgService(self,serviceName:'str',displayName:'str',flags:'Any',uiParam:'Any'=0) -> 'None': + """ + Creates a message service. + +Args: + + serviceName(str):The name of the service. + displayName(str):Display name of the service, or None + flags(Any):A bitmask of flags that controls how the message service is installed. + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + +Returns: + + None + + """ + pass + + + def ConfigureMsgService(self,iid:'PyIID',ulUIParam:'Any',ulFlags:'Any',arg:'List[Any]') -> 'None': + """ + Reconfigures a message service. + +Args: + + iid(PyIID):The unique identifier for the message service to configure. + ulUIParam(Any):Handle of the parent window for the configuration property sheet. + ulFlags(Any):Bitmask of flags that controls the display of the property sheet. + arg(List[Any]):Property values describing the properties to display in the property sheet. Should not be None if the service is to be configured without a message service. + +Returns: + + None + + """ + pass + + + def GetMsgServiceTable(self,flags:'Any') -> 'Any': + """ + Retrieves a table of services. + +Args: + + flags(Any): + +Returns: + + Any + + """ + pass + + + def GetProviderTable(self,flags:'Any') -> 'Any': + """ + Retrieves a table of service providers. + +Args: + + flags(Any): + +Returns: + + Any + + """ + pass + + + def DeleteMsgService(self,uuid:'PyIID') -> 'None': + """ + Deletes the specified service + +Args: + + uuid(PyIID):The ID of the service + +Returns: + + None + + """ + pass + + + def RenameMsgService(self,uuid:'PyIID',flags:'Any',newName:'str') -> 'None': + """ + Renames the specified service + +Args: + + uuid(PyIID):The ID of the service + flags(Any): + newName(str):The new name for the service.CommentsThis is deprecated, and there is no replacement referenced to use instead. + +Returns: + + None + + """ + pass + + + def OpenProfileSection(self,uuid:'PyIID',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a profile section + +Args: + + uuid(PyIID):The ID of the service + iid(PyIID):The IID of the resulting object, or None for the default + flags(Any): + +Returns: + + Any + + """ + pass + + + def AdminProviders(self,uuid:'PyIID',flags:'Any') -> 'Any': + """ + Returns an object providing access + +to a provider administration object. + +Args: + + uuid(PyIID):The ID of the service + flags(Any): + +Returns: + + Any + + """ + pass + + +class PyIMsgStore(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': + """ + Opens a folder or message and returns an interface object for further access. + +Args: + + entryId(str):The entryID of the object + iid(PyIID):The IID of the object to return, or None for the default IID + flags(Any):Bitmask of flags that controls how the object is opened. + +Returns: + + Any + + """ + pass + + + def GetReceiveFolder(self,messageClass:'str'=None,flags:'Any'=0) -> 'Tuple[PyIID, str]': + """ + Obtains the folder that was established as the destination for incoming messages of a specified message class or the default receive folder for the message store. + +Args: + + messageClass(str):Message class that is associated with a receive folder. If this parameter is set to None or an empty string, GetReceiveFolder returns the default receive folder for the message store. + flags(Any): + +Returns: + + Tuple[PyIID, str] + + """ + pass + + + def GetReceiveFolderTable(self,flags:'Any') -> 'Any': + """ + provides access to the receive folder table, a table that includes information about all of the receive folders for the message store. + +Args: + + flags(Any):Bitmask of flags that controls table access + +Returns: + + Any + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def AbortSubmit(self,entryId:'str',flags:'Any'=0) -> 'Any': + """ + Attempts to remove a message from the outgoing queue. + +Args: + + entryId(str):The entry ID of the item to be aborted. + flags(Any):Reserved - must be zero. + +Returns: + + Any + + """ + pass + + + def Advise(self,entryId:'str',eventMask:'Any',adviseSink:'Any') -> 'None': + """ + Registers to receive notification of specified events that affect the message store. + +Args: + + entryId(str):entry identifier of the folder or message about which notifications should be generated, or None + eventMask(Any):A mask of values that indicate the types of notification events. + adviseSink(Any):An advise sink. + +Returns: + + None + + """ + pass + + + def Unadvise(self,connection:'Any') -> 'None': + """ + Cancels the sending of notifications previously set up with a call to the IMsgStore::Advise method. + +Args: + + connection(Any):Connection number returned from PyIMsgStore::Advise + +Returns: + + None + + """ + pass + + +class PyINameSpaceTreeControl(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,hwndParent:'Union[Any]',prc:'Tuple[Any, Any, Any, Any]',nsctsFlags:'Any') -> 'None': + """ + Description of Initialize. + +Args: + + hwndParent(Union[Any]):Description for hwndParent + prc(Tuple[Any, Any, Any, Any]):Description for prc + nsctsFlags(Any):Description for nsctsFlags + +Returns: + + None + + """ + pass + + + def TreeAdvise(self,punk:'Any') -> 'None': + """ + Description of TreeAdvise. + +Args: + + punk(Any):Description for punk + +Returns: + + None + + """ + pass + + + def TreeUnadvise(self,dwCookie:'Any') -> 'None': + """ + Description of TreeUnadvise. + +Args: + + dwCookie(Any):Description for dwCookie + +Returns: + + None + + """ + pass + + + def AppendRoot(self,psiRoot:'Any',grfEnumFlags:'Any',grfRootStyle:'Any',pif:'Any') -> 'None': + """ + Description of AppendRoot. + +Args: + + psiRoot(Any):Description for psiRoot + grfEnumFlags(Any):Description for grfEnumFlags + grfRootStyle(Any):Description for grfRootStyle + pif(Any):Description for pif + +Returns: + + None + + """ + pass + + + def InsertRoot(self,iIndex:'Any',psiRoot:'Any',grfEnumFlags:'Any',grfRootStyle:'Any',pif:'Any') -> 'None': + """ + Description of InsertRoot. + +Args: + + iIndex(Any):Description for iIndex + psiRoot(Any):Description for psiRoot + grfEnumFlags(Any):Description for grfEnumFlags + grfRootStyle(Any):Description for grfRootStyle + pif(Any):Description for pif + +Returns: + + None + + """ + pass + + + def RemoveRoot(self,psiRoot:'Any') -> 'None': + """ + Description of RemoveRoot. + +Args: + + psiRoot(Any):Description for psiRoot + +Returns: + + None + + """ + pass + + + def RemoveAllRoots(self,) -> 'None': + """ + Description of RemoveAllRoots. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootItems(self,) -> 'None': + """ + Description of GetRootItems. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetItemState(self,psi:'Any',nstcisMask:'Any',nstcisFlags:'Any') -> 'None': + """ + Description of SetItemState. + +Args: + + psi(Any):Description for psi + nstcisMask(Any):Description for nstcisMask + nstcisFlags(Any):Description for nstcisFlags + +Returns: + + None + + """ + pass + + + def GetItemState(self,psi:'Any',nstcisMask:'Any') -> 'None': + """ + Description of GetItemState. + +Args: + + psi(Any):Description for psi + nstcisMask(Any):Description for nstcisMask + +Returns: + + None + + """ + pass + + + def GetSelectedItems(self,) -> 'None': + """ + Description of GetSelectedItems. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetItemCustomState(self,psi:'Any') -> 'None': + """ + Description of GetItemCustomState. + +Args: + + psi(Any):Description for psi + +Returns: + + None + + """ + pass + + + def SetItemCustomState(self,psi:'Any',iStateNumber:'Any') -> 'None': + """ + Description of SetItemCustomState. + +Args: + + psi(Any):Description for psi + iStateNumber(Any):Description for iStateNumber + +Returns: + + None + + """ + pass + + + def EnsureItemVisible(self,psi:'Any') -> 'None': + """ + Description of EnsureItemVisible. + +Args: + + psi(Any):Description for psi + +Returns: + + None + + """ + pass + + + def SetTheme(self,pszTheme:'Any') -> 'None': + """ + Description of SetTheme. + +Args: + + pszTheme(Any):Description for pszTheme + +Returns: + + None + + """ + pass + + + def GetNextItem(self,psi:'Any',nstcgi:'Any') -> 'None': + """ + Description of GetNextItem. + +Args: + + psi(Any):Description for psi + nstcgi(Any):Description for nstcgi + +Returns: + + None + + """ + pass + + + def HitTest(self,pt:'Tuple[Any, Any]') -> 'None': + """ + Description of HitTest. + +Args: + + pt(Tuple[Any, Any]):Description for ppt + +Returns: + + None + + """ + pass + + + def GetItemRect(self,) -> 'None': + """ + Description of GetItemRect. + +Args: + + + +Returns: + + None + + """ + pass + + + def CollapseAll(self,) -> 'None': + """ + Description of CollapseAll. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyINamedPropertyStore(object): + """Contains a collection of properties indentified by name""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetNamedValue(self,Name:'Any') -> 'Any': + """ + Retrieves a property value by name + +Args: + + Name(Any):Name of the property + +Returns: + + Any + + """ + pass + + + def SetNamedValue(self,propvar:'Any') -> 'None': + """ + Sets the value of a property + +Args: + + propvar(Any):Description for propvar + +Returns: + + None + + """ + pass + + + def GetNameCount(self,) -> 'Any': + """ + Retrieves the number of named properties in the store + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNameAt(self,Index:'Any') -> 'Any': + """ + Retrieves a property name by zero-based index + +Args: + + Index(Any):Index of the property name + +Returns: + + Any + + """ + pass + + +class PyIObjectArray(object): + """Holds a collection of interface objects""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Returns number of objects in collection + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,Index:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves an item by zero-based index + +Args: + + Index(Any):Index of item to retrieve + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + +class PyIObjectCollection(object): + """Modifiable container for a number of IUnknown objects""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddObject(self,punk:'Any') -> 'None': + """ + Adds a single object to the collection + +Args: + + punk(Any):Object to be added + +Returns: + + None + + """ + pass + + + def AddFromArray(self,Source:'Any') -> 'None': + """ + None + +Args: + + Source(Any):Objects to be added to the collection + +Returns: + + None + + """ + pass + + + def RemoveObjectAt(self,Index:'Any') -> 'None': + """ + Removes a single object from the collection + +Args: + + Index(Any):Zero-based index of item to remove + +Returns: + + None + + """ + pass + + + def Clear(self,) -> 'None': + """ + Empties the container. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIObjectWithPropertyKey(object): + """Interface implemented by objects that have an associated property id""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetPropertyKey(self,key:'Any') -> 'None': + """ + Sets the property id + +Args: + + key(Any):The identifier of the property + +Returns: + + None + + """ + pass + + + def GetPropertyKey(self,) -> 'Any': + """ + Returns the property id + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIObjectWithSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSite(self,pUnkSite:'Any') -> 'None': + """ + Description of SetSite. + +Args: + + pUnkSite(Any):Description for pUnkSite + +Returns: + + None + + """ + pass + + + def GetSite(self,riid:'PyIID') -> 'None': + """ + Description of GetSite. + +Args: + + riid(PyIID):Description for riid + +Returns: + + None + + """ + pass + + +class PyIOleClientSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SaveObject(self,) -> 'None': + """ + Description of SaveObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMoniker(self,dwAssign:'Any',dwWhichMoniker:'Any') -> 'None': + """ + Description of GetMoniker. + +Args: + + dwAssign(Any):Description for dwAssign + dwWhichMoniker(Any):Description for dwWhichMoniker + +Returns: + + None + + """ + pass + + + def GetContainer(self,) -> 'None': + """ + Description of GetContainer. + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowObject(self,) -> 'None': + """ + Description of ShowObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnShowWindow(self,fShow:'Any') -> 'None': + """ + Description of OnShowWindow. + +Args: + + fShow(Any):Description for fShow + +Returns: + + None + + """ + pass + + + def RequestNewObjectLayout(self,) -> 'None': + """ + Description of RequestNewObjectLayout. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleCommandTarget(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryStatus(self,) -> 'None': + """ + Description of QueryStatus. + +Args: + + + +Returns: + + None + + """ + pass + + + def Exec(self,) -> 'None': + """ + Description of Exec. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleControl(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetControlInfo(self,) -> 'None': + """ + Description of GetControlInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnMnemonic(self,msg:'Any') -> 'None': + """ + Description of OnMnemonic. + +Args: + + msg(Any):A tuple representing a MSG structure. + +Returns: + + None + + """ + pass + + + def OnAmbientPropertyChange(self,dispID:'Any') -> 'None': + """ + Description of OnAmbientPropertyChange. + +Args: + + dispID(Any):Description for dispID + +Returns: + + None + + """ + pass + + + def FreezeEvents(self,bFreeze:'Any') -> 'None': + """ + Description of FreezeEvents. + +Args: + + bFreeze(Any):Description for bFreeze + +Returns: + + None + + """ + pass + + +class PyIOleControlSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnControlInfoChanged(self,) -> 'None': + """ + Description of OnControlInfoChanged. + +Args: + + + +Returns: + + None + + """ + pass + + + def LockInPlaceActive(self,fLock:'Any') -> 'None': + """ + Description of LockInPlaceActive. + +Args: + + fLock(Any):Description for fLock + +Returns: + + None + + """ + pass + + + def GetExtendedControl(self,) -> 'None': + """ + Description of GetExtendedControl. + +Args: + + + +Returns: + + None + + """ + pass + + + def TransformCoords(self,PtlHimetric:'Tuple[Any, Any]',pPtfContainer:'Tuple[float, float]',dwFlags:'Any') -> 'None': + """ + Description of TransformCoords. + +Args: + + PtlHimetric(Tuple[Any, Any]):Description for pPtlHimetric + pPtfContainer(Tuple[float, float]):Description for pPtfContainer + dwFlags(Any):Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, a tuple of ((int, int), (float, float)) + +Returns: + + None:Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, + +a tuple of ((int, int), (float, float)) + + + """ + pass + + + def TranslateAccelerator(self,pMsg:'PyMSG',grfModifiers:'Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + pMsg(PyMSG):Description for pMsg + grfModifiers(Any):Description for grfModifiers + +Returns: + + None + + """ + pass + + + def OnFocus(self,fGotFocus:'Any') -> 'None': + """ + Description of OnFocus. + +Args: + + fGotFocus(Any):Description for fGotFocus + +Returns: + + None + + """ + pass + + + def ShowPropertyFrame(self,) -> 'None': + """ + Description of ShowPropertyFrame. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceActiveObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,lpmsg:'PyMSG') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpmsg(PyMSG):Description for lpmsg + +Returns: + + None + + """ + pass + + + def OnFrameWindowActivate(self,fActivate:'Any') -> 'None': + """ + Description of OnFrameWindowActivate. + +Args: + + fActivate(Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def OnDocWindowActivate(self,fActivate:'Any') -> 'None': + """ + Description of OnDocWindowActivate. + +Args: + + fActivate(Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def ResizeBorder(self,rcBorder:'Tuple[Any, Any, Any, Any]',pUIWindow:'Any',fFrameWindow:'Any') -> 'None': + """ + Description of ResizeBorder. + +Args: + + rcBorder(Tuple[Any, Any, Any, Any]):Description for prcBorder + pUIWindow(Any):Description for pUIWindow + fFrameWindow(Any):Description for fFrameWindow + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(Any):Description for fEnable + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceFrame(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertMenus(self,hmenuShared:'Union[Any]',menuWidths:'Any') -> 'None': + """ + Description of InsertMenus. + +Args: + + hmenuShared(Union[Any]):Description for hmenuShared + menuWidths(Any): + +Returns: + + None + + """ + pass + + + def SetMenu(self,hmenuShared:'Union[Any]',holemenu:'Union[Any]',hwndActiveObject:'Union[Any]') -> 'None': + """ + Description of SetMenu. + +Args: + + hmenuShared(Union[Any]):Description for hmenuShared + holemenu(Union[Any]):Description for holemenu + hwndActiveObject(Union[Any]):Description for hwndActiveObject + +Returns: + + None + + """ + pass + + + def RemoveMenus(self,hmenuShared:'Union[Any]') -> 'None': + """ + Description of RemoveMenus. + +Args: + + hmenuShared(Union[Any]):Description for hmenuShared + +Returns: + + None + + """ + pass + + + def SetStatusText(self,pszStatusText:'Any') -> 'None': + """ + Description of SetStatusText. + +Args: + + pszStatusText(Any):Description for pszStatusText + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def TranslateAccelerator(self,lpmsg:'PyMSG',wID:'Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpmsg(PyMSG):Description for lpmsg + wID(Any):Description for wID + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InPlaceDeactivate(self,) -> 'None': + """ + Description of InPlaceDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def UIDeactivate(self,) -> 'None': + """ + Description of UIDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetObjectRects(self,) -> 'None': + """ + Description of SetObjectRects. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReactivateAndUndo(self,) -> 'None': + """ + Description of ReactivateAndUndo. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanInPlaceActivate(self,) -> 'None': + """ + Description of CanInPlaceActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnInPlaceActivate(self,) -> 'None': + """ + Description of OnInPlaceActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnUIActivate(self,) -> 'None': + """ + Description of OnUIActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetWindowContext(self,) -> 'None': + """ + Description of GetWindowContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def Scroll(self,) -> 'None': + """ + Description of Scroll. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnUIDeactivate(self,fUndoable:'Any') -> 'None': + """ + Description of OnUIDeactivate. + +Args: + + fUndoable(Any):Description for fUndoable + +Returns: + + None + + """ + pass + + + def OnInPlaceDeactivate(self,) -> 'None': + """ + Description of OnInPlaceDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def DiscardUndoState(self,) -> 'None': + """ + Description of DiscardUndoState. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeactivateAndUndo(self,) -> 'None': + """ + Description of DeactivateAndUndo. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnPosRectChange(self,) -> 'None': + """ + Description of OnPosRectChange. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSiteEx(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnInPlaceActivateEx(self,dwFlags:'Any') -> 'None': + """ + Description of OnInPlaceActivateEx. + +Args: + + dwFlags(Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def OnInPlaceDeactivateEx(self,fNoRedraw:'Any') -> 'None': + """ + Description of OnInPlaceDeactivateEx. + +Args: + + fNoRedraw(Any):Description for fNoRedraw + +Returns: + + None + + """ + pass + + + def RequestUIActivate(self,) -> 'None': + """ + Description of RequestUIActivate. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSiteWindowless(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanWindowlessActivate(self,) -> 'None': + """ + Description of CanWindowlessActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCapture(self,) -> 'None': + """ + Description of GetCapture. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCapture(self,fCapture:'Any') -> 'None': + """ + Description of SetCapture. + +Args: + + fCapture(Any):Description for fCapture + +Returns: + + None + + """ + pass + + + def GetFocus(self,) -> 'None': + """ + Description of GetFocus. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFocus(self,fFocus:'Any') -> 'None': + """ + Description of SetFocus. + +Args: + + fFocus(Any):Description for fFocus + +Returns: + + None + + """ + pass + + + def GetDC(self,grfFlags:'Any',rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Description of GetDC. + +Args: + + grfFlags(Any):Description for grfFlags + rect(Tuple[Any, Any, Any, Any]): + +Returns: + + None + + """ + pass + + + def ReleaseDC(self,hDC:'Any') -> 'None': + """ + Description of ReleaseDC. + +Args: + + hDC(Any):Description for hDC + +Returns: + + None + + """ + pass + + + def InvalidateRect(self,rect:'Tuple[Any, Any, Any, Any]',fErase:'Any') -> 'None': + """ + Description of InvalidateRect. + +Args: + + rect(Tuple[Any, Any, Any, Any]): + fErase(Any):Description for fErase + +Returns: + + None + + """ + pass + + + def InvalidateRgn(self,hRgn:'Any',fErase:'Any') -> 'None': + """ + Description of InvalidateRgn. + +Args: + + hRgn(Any):Handle to a region + fErase(Any):Description for fErase + +Returns: + + None + + """ + pass + + + def ScrollRect(self,dx:'Any',dy:'Any') -> 'None': + """ + Description of ScrollRect. + +Args: + + dx(Any):Description for dx + dy(Any):Description for dy + +Returns: + + None + + """ + pass + + + def AdjustRect(self,) -> 'None': + """ + Description of AdjustRect. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnDefWindowMessage(self,msg:'Any',wParam:'Any',lParam:'Any') -> 'None': + """ + Description of OnDefWindowMessage. + +Args: + + msg(Any):Description for msg + wParam(Any):Description for wParam + lParam(Any):Description for lParam + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceUIWindow(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetBorder(self,) -> 'None': + """ + Description of GetBorder. + +Args: + + + +Returns: + + None + + """ + pass + + + def RequestBorderSpace(self,borderwidths:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Description of RequestBorderSpace. + +Args: + + borderwidths(Tuple[Any, Any, Any, Any]):Description for pborderwidths + +Returns: + + None + + """ + pass + + + def SetBorderSpace(self,borderwidths:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Description of SetBorderSpace. + +Args: + + borderwidths(Tuple[Any, Any, Any, Any]):Description for pborderwidths + +Returns: + + None + + """ + pass + + + def SetActiveObject(self,pActiveObject:'Any',pszObjName:'Any') -> 'None': + """ + Description of SetActiveObject. + +Args: + + pActiveObject(Any):Description for pActiveObject + pszObjName(Any):Description for pszObjName + +Returns: + + None + + """ + pass + + +class PyIOleObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetClientSite(self,pClientSite:'Any') -> 'None': + """ + Description of SetClientSite. + +Args: + + pClientSite(Any):Description for pClientSite + +Returns: + + None + + """ + pass + + + def GetClientSite(self,) -> 'None': + """ + Description of GetClientSite. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetHostNames(self,szContainerApp:'Any',szContainerObj:'Any') -> 'None': + """ + Description of SetHostNames. + +Args: + + szContainerApp(Any):Description for szContainerApp + szContainerObj(Any):Description for szContainerObj + +Returns: + + None + + """ + pass + + + def Close(self,dwSaveOption:'Any') -> 'None': + """ + Description of Close. + +Args: + + dwSaveOption(Any):Description for dwSaveOption + +Returns: + + None + + """ + pass + + + def SetMoniker(self,dwWhichMoniker:'Any',pmk:'Any') -> 'None': + """ + Description of SetMoniker. + +Args: + + dwWhichMoniker(Any):Description for dwWhichMoniker + pmk(Any):Description for pmk + +Returns: + + None + + """ + pass + + + def GetMoniker(self,dwAssign:'Any',dwWhichMoniker:'Any') -> 'None': + """ + Description of GetMoniker. + +Args: + + dwAssign(Any):Description for dwAssign + dwWhichMoniker(Any):Description for dwWhichMoniker + +Returns: + + None + + """ + pass + + + def InitFromData(self,pDataObject:'Any',fCreation:'Any',dwReserved:'Any') -> 'None': + """ + Description of InitFromData. + +Args: + + pDataObject(Any):Description for pDataObject + fCreation(Any):Description for fCreation + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def GetClipboardData(self,dwReserved:'Any') -> 'None': + """ + Description of GetClipboardData. + +Args: + + dwReserved(Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def DoVerb(self,iVerb:'Any',msg:'PyMSG',pActiveSite:'Any',lindex:'Any',hwndParent:'Any',rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Description of DoVerb. + +Args: + + iVerb(Any):Description for iVerb + msg(PyMSG):MSG tuple, a-la win32gui etc. + pActiveSite(Any):Description for pActiveSite + lindex(Any):Description for lindex + hwndParent(Any):Description for hwndParent + rect(Tuple[Any, Any, Any, Any]): + +Returns: + + None + + """ + pass + + + def EnumVerbs(self,) -> 'None': + """ + Description of EnumVerbs. + +Args: + + + +Returns: + + None + + """ + pass + + + def Update(self,) -> 'None': + """ + Description of Update. + +Args: + + + +Returns: + + None + + """ + pass + + + def IsUpToDate(self,) -> 'None': + """ + Description of IsUpToDate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserClassID(self,) -> 'None': + """ + Description of GetUserClassID. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserType(self,dwFormOfType:'Any') -> 'None': + """ + Description of GetUserType. + +Args: + + dwFormOfType(Any):Description for dwFormOfType + +Returns: + + None + + """ + pass + + + def SetExtent(self,dwDrawAspect:'Any',size:'Tuple[Any, Any]') -> 'None': + """ + Description of SetExtent. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + size(Tuple[Any, Any]):Size limit for the object. + +Returns: + + None + + """ + pass + + + def GetExtent(self,dwDrawAspect:'Any',size:'Tuple[Any, Any]') -> 'None': + """ + Description of GetExtent. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + size(Tuple[Any, Any]):Size limit for the object. + +Returns: + + None + + """ + pass + + + def Advise(self,pAdvSink:'Any') -> 'None': + """ + Description of Advise. + +Args: + + pAdvSink(Any):Description for pAdvSink + +Returns: + + None + + """ + pass + + + def Unadvise(self,dwConnection:'Any') -> 'None': + """ + Description of Unadvise. + +Args: + + dwConnection(Any):Description for dwConnection + +Returns: + + None + + """ + pass + + + def EnumAdvise(self,) -> 'None': + """ + Description of EnumAdvise. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMiscStatus(self,dwAspect:'Any') -> 'None': + """ + Description of GetMiscStatus. + +Args: + + dwAspect(Any):Description for dwAspect + +Returns: + + None + + """ + pass + + + def SetColorScheme(self,) -> 'None': + """ + Description of SetColorScheme. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleWindow(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetWindow(self,) -> 'None': + """ + Description of GetWindow. + +Args: + + + +Returns: + + None + + """ + pass + + + def ContextSensitiveHelp(self,fEnterMode:'Any') -> 'None': + """ + Description of ContextSensitiveHelp. + +Args: + + fEnterMode(Any):Description for fEnterMode + +Returns: + + None + + """ + pass + + +class PyIPersist(object): + """A Python interface to IPersist""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassID(self,) -> 'PyIID': + """ + Returns the class identifier (CLSID) for the component object. + +Args: + + + +Returns: + + PyIID + + """ + pass + + +class PyIPersistFile(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'None': + """ + Checks an object for changes since it was last saved to its current file. + +Args: + + + +Returns: + + None:PyIPersistFile.IsDirty +IsDirty()Checks an object for changes since it was last saved to its current file. +Return ValueThis method returns the raw COM error code without raising the normal COM exception. + +You should treat any error return codes as an indication that the object has changed. + +Unless this method explicitly returns S_FALSE, assume that the object must be saved. + + + """ + pass + + + def Load(self,FileName:'Any',Mode:'Any') -> 'None': + """ + Opens the specified file and initializes an object from the file contents. + +Args: + + FileName(Any):Absolute path of the file to open + Mode(Any):Specifies the access mode from the STGM enumeration. + +Returns: + + None + + """ + pass + + + def Save(self,FileName:'Any',fRemember:'Any') -> 'None': + """ + Saves the object into the specified file. + +Args: + + FileName(Any):absolute path of the file where the object is saved. + fRemember(Any):Specifies whether the file is to be the current working file or not. + +Returns: + + None + + """ + pass + + + def SaveCompleted(self,FileName:'Any') -> 'None': + """ + Notifies the object that it can revert from NoScribble mode to Normal mode. + +Args: + + FileName(Any):Absolute path of the file where the object was saved. + +Returns: + + None + + """ + pass + + + def GetCurFile(self,) -> 'Any': + """ + Gets the current name of the file associated with the object. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIPersistFolder(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,pidl:'Any') -> 'None': + """ + Description of Initialize. + +Args: + + pidl(Any):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIPersistFolder2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCurFolder(self,) -> 'None': + """ + Description of GetCurFolder. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPersistPropertyBag(object): + """A Python wrapper for a COM IPersistPropertyBag interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InitNew(self,) -> 'None': + """ + Called by the container when the control is initialized to initialize the + +property bag. + +Args: + + + +Returns: + + None + + """ + pass + + + def Load(self,bag:'Any',log:'Any'=None) -> 'None': + """ + Called by the container to load the control's properties. + +Args: + + bag(Any):the caller's property bag. + log(Any):the caller's error log, or None + +Returns: + + None + + """ + pass + + + def Save(self,bag:'Any',clearDirty:'Any',saveProperties:'Any') -> 'None': + """ + Called by the container to save the object's properties. + +Args: + + bag(Any):the caller's property bag. + clearDirty(Any):Specifies whether to clear the dirty flag. + saveProperties(Any):Specifies whether to save all properties or just those that have changed + +Returns: + + None + + """ + pass + + +class PyIPersistSerializedPropStorage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetFlags(self,flags:'Any') -> 'None': + """ + Sets flags for the store + +Args: + + flags(Any):Combination of pscon.FPSPS_* values + +Returns: + + None + + """ + pass + + + def SetPropertyStorage(self,ps:'Any') -> 'None': + """ + Initializes the store with a serialized buffer + +Args: + + ps(Any):Bytes or buffer object containing a serialized property store + +Returns: + + None + + """ + pass + + + def GetPropertyStorage(self,) -> 'Any': + """ + Retrieves the current contents of the property + +store + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIPersistStorage(object): + """A Python wrapper of a COM IPersistStorage interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'Any': + """ + Checks the object for changes since it was last saved. + +Args: + + + +Returns: + + Any + + """ + pass + + + def InitNew(self,PyIStorage:'Any') -> 'None': + """ + Initializes a new object, providing a storage object to be used for the object. + +Args: + + PyIStorage(Any):PyIStorage for the new storage object to be initialized. The container creates a nested storage object in its storage object (see PyIStorage::CreateStorage). Then, the container calls the PyIPersistStorage::WriteClassStg function to initialize the new storage object with the object class identifier (CLSID). + +Returns: + + None + + """ + pass + + + def Load(self,storage:'Any') -> 'None': + """ + Loads an object from its existing storage. + +Args: + + storage(Any):Existing storage for the object. + +Returns: + + None + + """ + pass + + + def Save(self,PyIStorage:'Any',_int:'Any') -> 'None': + """ + None + +Args: + + PyIStorage(Any):Storage for the object + _int(Any):Indicates whether the specified storage object is the current one. This parameter is set to FALSE when performing a Save As or Save A Copy To operation or when performing a full save. In the latter case, this method saves to a temporary file, deletes the original file, and renames the temporary file. This parameter is set to TRUE to perform a full save in a low-memory situation or to perform a fast incremental save in which only the dirty components are saved. + +Returns: + + None + + """ + pass + + + def SaveCompleted(self,PyIStorage:'Any') -> 'None': + """ + None + +Args: + + PyIStorage(Any):The current storage object + +Returns: + + None + + """ + pass + + + def HandsOffStorage(self,) -> 'None': + """ + Instructs the object to release all storage objects that have been + +passed to it by its container and to enter HandsOff mode, in which the object cannot do anything and the only + +operation that works is a close operation. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPersistStream(object): + """A Python interface to IPersistStream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'Any': + """ + Checks the object for changes since it was last saved. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Load(self,stream:'Any') -> 'None': + """ + Initializes an object from the stream where it was previously saved. + +Args: + + stream(Any):Stream object to load from.CommentsThis method loads an object from its associated stream. The seek pointer is set as it was in the most recent PyIPersistStream::Save method. This method can seek and read from the stream, but cannot write to it.On exit, the seek pointer must be in the same position it was in on entry, immediately past the end of the data. + +Returns: + + None + + """ + pass + + + def Save(self,stream:'Any',bClearDirty:'Any') -> 'None': + """ + Saves an object to the specified stream. + +Args: + + stream(Any):The stream to save to. + bClearDirty(Any):Indicates whether to clear the dirty flag after the save is complete + +Returns: + + None + + """ + pass + + + def GetSizeMax(self,) -> 'ULARGE_INTEGER': + """ + Returns the size in bytes of the stream needed to save the + +object. + +Args: + + + +Returns: + + ULARGE_INTEGER + + """ + pass + + +class PyIPersistStreamInit(object): + """A Python interface to IPersistStreamInit""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InitNew(self,) -> 'None': + """ + Initializes the object to a default state. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProcessDebugManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateApplication(self,) -> 'None': + """ + Description of CreateApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDefaultApplication(self,) -> 'None': + """ + Description of GetDefaultApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddApplication(self,pda:'Any') -> 'None': + """ + Description of AddApplication. + +Args: + + pda(Any):Description for pda + +Returns: + + None + + """ + pass + + + def RemoveApplication(self,dwAppCookie:'Any') -> 'None': + """ + Description of RemoveApplication. + +Args: + + dwAppCookie(Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def CreateDebugDocumentHelper(self,unkOuter:'Any') -> 'None': + """ + Description of CreateDebugDocumentHelper. + +Args: + + unkOuter(Any):The outer object for aggregation, or (usually!) None + +Returns: + + None + + """ + pass + + +class PyIProfAdmin(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': + """ + Returns the last error code for the object. + +Args: + + hr(Any):Contains the error code generated in the previous method call. + flags(Any):Indicates for format for the output. + +Returns: + + Any + + """ + pass + + + def CreateProfile(self,oldProfileName:'str',Password:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': + """ + Creates a new profile. + +Args: + + oldProfileName(str):The name of the new profile. + Password(str):Must be None + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(Any): + +Returns: + + None + + """ + pass + + + def DeleteProfile(self,oldProfileName:'str',flags:'Any'=0) -> 'None': + """ + Deletes a profile. + +Args: + + oldProfileName(str):The name of the profile to be deleted. + flags(Any): + +Returns: + + None + + """ + pass + + + def CopyProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': + """ + Copies a profile. + +Args: + + oldProfileName(str):The name of the profile to copy. + Password(str):Must be None + newProfileName(str):The new name of the copied profile. + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(Any): + +Returns: + + None + + """ + pass + + + def RenameProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': + """ + Assigns a new name to a profile. + +Args: + + oldProfileName(str):The current name of the profile to rename. + Password(str):Must be None + newProfileName(str):The new name of the profile to rename. + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(Any): + +Returns: + + None + + """ + pass + + + def SetDefaultProfile(self,profileName:'str',flags:'Any'=0) -> 'None': + """ + Sets or clears a client's default profile. + +Args: + + profileName(str):The name of the profile that will become the default, or None. Setting profileName to None indicates that SetDefaultProfile should remove the existing default profile, leaving the client without a default. + flags(Any): + +Returns: + + None + + """ + pass + + + def AdminServices(self,profileName:'str',Password:'str'=None,uiParam:'Any'=0,flags:'Any'=0) -> 'Any': + """ + Provides access to a message service administration object for making changes to the message services in a profile. + +Args: + + profileName(str):The name of the profile to be modified. + Password(str): + uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(Any): + +Returns: + + Any + + """ + pass + + +class PyIPropertyBag(object): + """A Python wrapper for a COM IPropertyBag interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,propName:'Any',propType:'Any',errorLog:'Any'=None) -> 'Any': + """ + Called by the control to read a property from the storage provided by the + +container. + +Args: + + propName(Any):Name of the property to read. + propType(Any):The type of the object to read. Must be a VT_* Variant Type constant. + errorLog(Any):The caller's PyIErrorLog object in which the property bag stores any errors that occur during reads. Can be None in which case the caller is not interested in errors.CommentsThe result is a Python object, mapped from a COM VARIANT of type as specified in the propType parameter. + +Returns: + + Any + + """ + pass + + + def Write(self,propName:'Any',value:'Any') -> 'None': + """ + Called by the control to write each property in turn to the storage provided by the + +container. + +Args: + + propName(Any):Name of the property to read. + value(Any):The value for the property. The value must be able to be converted to a COM VARIANT. + +Returns: + + None + + """ + pass + + +class PyIPropertyChange(object): + """Interface used to specify a change to a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ApplyToPropVariant(self,OrigVal:'Any') -> 'Any': + """ + Applies the change to a variant value + +Args: + + OrigVal(Any):The value to be modified + +Returns: + + Any + + """ + pass + + +class PyIPropertyChangeArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Returns the number of changes in the array + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,Index:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves a change by zero-based index + +Args: + + Index(Any):Index of the change to retrieve + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def InsertAt(self,Index:'Any',PropChange:'Any') -> 'None': + """ + Inserts a change at a specific position + +Args: + + Index(Any):Position at which to place the change + PropChange(Any):The change to be added + +Returns: + + None + + """ + pass + + + def Append(self,PropChange:'Any') -> 'None': + """ + Adds a change to the end of the array + +Args: + + PropChange(Any):The change to be added + +Returns: + + None + + """ + pass + + + def AppendOrReplace(self,PropChange:'Any') -> 'None': + """ + Adds a change, or replaces if an identical property key is already + +in container + +Args: + + PropChange(Any):The change to be added or replaced + +Returns: + + None + + """ + pass + + + def RemoveAt(self,Index:'Any') -> 'None': + """ + Removes a change from the array + +Args: + + Index(Any):Index of change to be removed + +Returns: + + None + + """ + pass + + + def IsKeyInArray(self,key:'Any') -> 'Any': + """ + Checks if array contains a change to a property + +Args: + + key(Any):Property key to look for + +Returns: + + Any + + """ + pass + + +class PyIPropertyDescription(object): + """Gives access to the details of a property definition""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyKey(self,) -> 'Any': + """ + Returns the unique identifier for a property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCanonicalName(self,) -> 'Any': + """ + Returns the name of the property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPropertyType(self,) -> 'Any': + """ + Returns the variant type of the property (VT_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDisplayName(self,) -> 'Any': + """ + Returns the property name as shown in the UI + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetEditInvitation(self,) -> 'Any': + """ + Returns the input prompt used in edit controls + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTypeFlags(self,mask:'Any') -> 'Any': + """ + Returns type flags for the property + +Args: + + mask(Any):Specifies which flags to retrieve (PDTF_*) + +Returns: + + Any + + """ + pass + + + def GetViewFlags(self,) -> 'Any': + """ + Returns the view flags that control how the property is displayed + +(PDVF_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDefaultColumnWidth(self,) -> 'Any': + """ + Returns the default width in characters + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDisplayType(self,) -> 'Any': + """ + Returns the display type (PDDT_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetColumnState(self,) -> 'Any': + """ + Returns flags that control how property is displayed in column + +(SHCOLSTATE_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetGroupingRange(self,) -> 'Any': + """ + Returns property's grouping attributes (PDGR_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRelativeDescriptionType(self,) -> 'Any': + """ + Returns the relative description type (PDRDT_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRelativeDescription(self,var1:'Any',var2:'Any') -> 'Tuple[Any, Any]': + """ + Compares two values + +Args: + + var1(Any):The first value + var2(Any):The second value + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetSortDescription(self,) -> 'Any': + """ + Returns value that determines how sorting options are + +displayed (PDSD_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSortDescriptionLabel(self,Descending:'Any') -> 'Any': + """ + Returns description of current sort order + +Args: + + Descending(Any):Indicates if order is reversed + +Returns: + + Any + + """ + pass + + + def GetAggregationType(self,) -> 'Any': + """ + Describes how properties for multiple items are displayed + +(PDAT_*) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetConditionType(self,) -> 'Tuple[Any, Any]': + """ + Returns options that determine how the property is used + +to build a search query + +Args: + + + +Returns: + + Tuple[Any, Any]:PyIPropertyDescription.GetConditionType + +(int, int) = GetConditionType()Returns options that determine how the property is used + +to build a search query +Return ValueReturns the condition type (PDCOT_*) and default operation (COP_*) + + + """ + pass + + + def GetEnumTypeList(self,riid:'PyIID') -> 'Any': + """ + Returns an interface used for querying + +valid property range + +Args: + + riid(PyIID):IID of the requested interface + +Returns: + + Any + + """ + pass + + + def CoerceToCanonicalValue(self,Value:'Any') -> 'Any': + """ + Converts a variant value to the exact type expected by + +the property + +Args: + + Value(Any):The property value to be convertedCommentsThis method mutates the PyPROPVARIANT in place. It may be cleared on failure.Return ValueReturns the HRESULT from the operation on success. + +Returns: + + Any:The property value to be convertedComments + +This method mutates the PyPROPVARIANT in place. It may be cleared on failure. +Return ValueReturns the HRESULT from the operation on success. + + + """ + pass + + + def FormatForDisplay(self,Value:'Any',Flags:'Any') -> 'Any': + """ + Converts a value to its string representation + +Args: + + Value(Any):The value to be formatted + Flags(Any):Combination of PROPDESC_FORMAT_FLAGS (PDFF_*) + +Returns: + + Any + + """ + pass + + + def IsValueCanonical(self,Value:'Any') -> 'Any': + """ + Determines if a value exactly matches the specification for + +the property + +Args: + + Value(Any):The value to check + +Returns: + + Any + + """ + pass + + +class PyIPropertyDescriptionAliasInfo(object): + """Interface that gives access to the sorting columns for a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSortByAlias(self,riid:'PyIID') -> 'Any': + """ + Returns the primary column used + +for sorting + +Args: + + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetAdditionalSortByAliases(self,riid:'PyIID') -> 'Any': + """ + Returns secondary + +sorting columns + +Args: + + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + +class PyIPropertyDescriptionList(object): + """Container for a number of property descriptions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Gets the number of properties in the list + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,Elem:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves a description from the list + +Args: + + Elem(Any):Index of the element to return + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + +class PyIPropertyDescriptionSearchInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSearchInfoFlags(self,) -> 'Any': + """ + Returns flags controlling how property is indexed + +Args: + + + +Returns: + + Any:PyIPropertyDescriptionSearchInfo.GetSearchInfoFlags + +int = GetSearchInfoFlags()Returns flags controlling how property is indexed +Return ValueReturns a combination of PROPDESC_SEARCHINFO_FLAGS values + + + """ + pass + + + def GetColumnIndexType(self,) -> 'Any': + """ + Returns flags indicating type of property + +Args: + + + +Returns: + + Any:PyIPropertyDescriptionSearchInfo.GetColumnIndexType + +int = GetColumnIndexType()Returns flags indicating type of property +Return ValueReturns a value from the PROPDESC_COLUMNINDEX_TYPE enum + + + """ + pass + + + def GetProjectionString(self,) -> 'Any': + """ + Returns the canonical name of the property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetMaxSize(self,) -> 'Any': + """ + Returns the maximum size specified in search options + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIPropertyEnumType(object): + """Contains information about an allowable value or range for a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetEnumType(self,) -> 'Any': + """ + Retrieves the type (PROPENUMTYPE) + +Args: + + + +Returns: + + Any:PyIPropertyEnumType.GetEnumType + +int = GetEnumType()Retrieves the type (PROPENUMTYPE) +Return Valuepscon.PET_* + + + """ + pass + + + def GetValue(self,) -> 'Any': + """ + Retrieves the defined value + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRangeMinValue(self,) -> 'Any': + """ + Returns the minimum allowed value for the property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRangeSetValue(self,) -> 'Any': + """ + Returns a fixed value defined for the property + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDisplayText(self,) -> 'None': + """ + Returns the display text for the enumerated type + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPropertyEnumTypeList(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Returns the number of objects in the list + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,itype:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves an item by index + +Args: + + itype(Any):Zero based index of type to return + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def FindMatchingIndex(self,Cmp:'Any') -> 'Any': + """ + Attempts to match the specified value to one of the allowable + +values for the property + +Args: + + Cmp(Any):A value to match against the defined values of the property + +Returns: + + Any + + """ + pass + + +class PyIPropertySetStorage(object): + """Container for a collection of property sets. + +Can be iterated over to enumerate property sets.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Create(self,fmtid:'PyIID',clsid:'PyIID',Flags:'Any',Mode:'Any') -> 'Any': + """ + Creates a new property set in the storage object + +Args: + + fmtid(PyIID):GUID identifying a property set, pythoncom.FMTID_* + clsid(PyIID):CLSID of property set handler, usually same as fmtid + Flags(Any):Specifies behaviour of property set, storagecon.PROPSETFLAG_* + Mode(Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + Any + + """ + pass + + + def Open(self,fmtid:'PyIID',Mode:'Any') -> 'Any': + """ + Opens an existing property set + +Args: + + fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* + Mode(Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + Any + + """ + pass + + + def Delete(self,fmtid:'PyIID') -> 'None': + """ + Removes a property set from this storage object + +Args: + + fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* + +Returns: + + None + + """ + pass + + + def Enum(self,) -> 'Any': + """ + Creates an iterator to enumerate contained property + +sets + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIPropertyStorage(object): + """Structured storage object that contains a set of properties. + +Supports iteration to list properties.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ReadMultiple(self,props:'Tuple[Any, ...]') -> 'Tuple[Any, ...]': + """ + Reads specified properties from the current property set. + +Args: + + props(Tuple[Any, ...]):Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type + +Returns: + + Tuple[Any, ...]:Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type + + + """ + pass + + + def WriteMultiple(self,props:'Tuple[Any, ...]',values:'Tuple[Any, ...]',propidNameFirst:'Any'=2) -> 'None': + """ + Creates or modifies properties in the property set + +Args: + + props(Tuple[Any, ...]):Sequence containing names or integer ids of properties to write + values(Tuple[Any, ...]):The values for the properties. + propidNameFirst(Any):Minimum property id to be assigned to new properties specified by name + +Returns: + + None + + """ + pass + + + def DeleteMultiple(self,props:'Tuple[Any, ...]') -> 'None': + """ + Deletes properties from the property set + +Args: + + props(Tuple[Any, ...]):Sequence containing names or IDs of properties to be deleted + +Returns: + + None + + """ + pass + + + def ReadPropertyNames(self,props:'Tuple[Any, ...]') -> 'Tuple[Any, ...]': + """ + Retrieves any existing string names for the specified + +property identifiers. + +Args: + + props(Tuple[Any, ...]):Sequence of ints containing property IDs. + +Returns: + + Tuple[Any, ...] + + """ + pass + + + def WritePropertyNames(self,props:'Tuple[Any, ...]',names:'Tuple[str, ...]') -> 'None': + """ + Assigns string names to a specified array of property IDs in the + +current property set. + +Args: + + props(Tuple[Any, ...]):Sequence containing the property IDs. + names(Tuple[str, ...]):Equal length sequence of property names. + +Returns: + + None + + """ + pass + + + def DeletePropertyNames(self,props:'Tuple[Any, ...]') -> 'None': + """ + Removes property names from specified properties. + +Args: + + props(Tuple[Any, ...]):Sequence of ints containing property IDs. + +Returns: + + None + + """ + pass + + + def Commit(self,CommitFlags:'Any') -> 'None': + """ + Persists the property set to its base storage + +Args: + + CommitFlags(Any):Combination of storagecon.STGC_* flags + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + Discards any changes that have been made + +Args: + + + +Returns: + + None + + """ + pass + + + def Enum(self,) -> 'Any': + """ + Creates an enumerator for properties in the property set + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetTimes(self,ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': + """ + Sets the creation, last access, and modification time + +Args: + + ctime(PyTime):Creation time, or None for no change + atime(PyTime):Last access time, or None for no change + mtime(PyTime):Modification time, or None for no changeCommentsSome property sets do not support these times. + +Returns: + + None + + """ + pass + + + def SetClass(self,clsid:'PyIID') -> 'None': + """ + Sets the GUID for the property set + +Args: + + clsid(PyIID):Description for clsid + +Returns: + + None + + """ + pass + + + def Stat(self,) -> 'Any': + """ + Returns various infomation about the property set + +Args: + + + +Returns: + + Any:PyIPropertyStorage.Stat + +tuple = Stat()Returns various infomation about the property set +Return ValueReturns a tuple representing a STATPROPSETSTG struct. + + + """ + pass + + +class PyIPropertyStore(object): + """Contains a collection of properties""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'Any': + """ + Returns the number of properties in the store + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAt(self,iProp:'Any') -> 'Any': + """ + Returns the property key for the specified property + +Args: + + iProp(Any):Zero-based index of property + +Returns: + + Any + + """ + pass + + + def GetValue(self,Key:'Any') -> 'Any': + """ + Retrieves the value of a property + +Args: + + Key(Any):Property key as returned by PyIPropertyStore::GetAt + +Returns: + + Any + + """ + pass + + + def SetValue(self,Key:'Any',Value:'Any') -> 'None': + """ + Sets the value of a property + +Args: + + Key(Any):Property key (see PyIPropertyStore::GetAt) + Value(Any):Variant value which can be converted to the appropriate variant type for the property Pass a VT_EMPTY variant to indicate that the property should be removed. + +Returns: + + None + + """ + pass + + + def Commit(self,) -> 'None': + """ + Commits property changes + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPropertyStoreCache(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetState(self,key:'Any') -> 'Any': + """ + Retrieves the current state of a property + +Args: + + key(Any):Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) + +Returns: + + Any:Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) + + + """ + pass + + + def GetValueAndState(self,key:'Any') -> 'Tuple[Any, Any]': + """ + Retrieves the current value and state of a + +property + +Args: + + key(Any):Property identifier + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetState(self,key:'Any',state:'Any') -> 'None': + """ + Sets the state of a property + +Args: + + key(Any):Property identifier + state(Any):Value from the PSC_STATE enum (pscon.PSC_*) + +Returns: + + None + + """ + pass + + + def SetValueAndState(self,key:'Any',value:'Any',state:'Any') -> 'None': + """ + Sets the value and state of a property + +Args: + + key(Any):Property identifier + value(Any):The new value + state(Any):The new state (pscon.PSC_*) + +Returns: + + None + + """ + pass + + +class PyIPropertyStoreCapabilities(object): + """Property providers use this interface to indicate whether properties are + +writeable.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsPropertyWritable(self,key:'Any') -> 'Any': + """ + Asks provider if a property can be editted. + +Args: + + key(Any):Property identifier + +Returns: + + Any + + """ + pass + + +class PyIPropertySystem(object): + """Wraps the IPropertySystem interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyDescription(self,Key:'Any',riid:'PyIID') -> 'Any': + """ + Returns an interface used to describe a + +property + +Args: + + Key(Any):Fmtid and propertyid that uniquely identifies a property + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyDescriptionByName(self,CanonicalName:'Any',riid:'PyIID') -> 'Any': + """ + Returns an interface used to + +describe a property + +Args: + + CanonicalName(Any):Registered name of the property + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyDescriptionListFromString(self,PropList:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves property + +descriptions from a string of property names + +Args: + + PropList(Any):String containing a list of properties and flags + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def EnumeratePropertyDescriptions(self,Filter:'Any',riid:'PyIID') -> 'Any': + """ + Returns an interface used to + +list defined properties + +Args: + + Filter(Any):Value from PROPDESC_ENUMFILTER (pscon.PDEF_*) that limits what types of properties are listed + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def FormatForDisplay(self,Key:'Any',Value:'Any',Flags:'Any') -> 'Any': + """ + Formats a property into a string + +Args: + + Key(Any):Fmtid and property id that identifies the property + Value(Any):The value to format + Flags(Any):Combination of PROPDESC_FORMAT_FLAGS (pscon.PDFF_*) indicating formatting options + +Returns: + + Any + + """ + pass + + + def RegisterPropertySchema(self,Path:'Any') -> 'None': + """ + Registers a set of properties defined in a .propdesc file + +Args: + + Path(Any):Path to a property schema XML file (.propdesc) + +Returns: + + None + + """ + pass + + + def UnregisterPropertySchema(self,Path:'Any') -> 'None': + """ + Removes a set of registered properties + +Args: + + Path(Any):Path to a property schema XML file (.propdesc) + +Returns: + + None + + """ + pass + + + def RefreshPropertySchema(self,) -> 'None': + """ + Not currently implemented by the OS + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProvideClassInfo(object): + """A Python interface to IProvideClassInfo""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassInfo(self,) -> 'Any': + """ + Gets information about the CO_CLASS. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIProvideClassInfo2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetGUID(self,flags:'Any') -> 'PyIID': + """ + Gets the GUID for the object. + +Args: + + flags(Any):The flags for the GUID. + +Returns: + + PyIID + + """ + pass + + +class PyIProvideExpressionContexts(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumExpressionContexts(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProvideTaskPage(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPage(self,tpType:'Any',PersistChanges:'Any') -> 'None': + """ + Return a property sheet page handle for the spedified type + +(TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) + +Args: + + tpType(Any):Type of page to retreive (TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) + PersistChanges(Any):Indicates if changes should be saved automaticallyCommentsThere's not yet anything useful that can be done with this handle - return type subject to change + +Returns: + + None + + """ + pass + + +class PyIQueryAssociations(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Init(self,flags:'Any',assoc:'str',hkeyProgId:'PyHKEY'=None,hwnd:'int'=None) -> 'None': + """ + Initializes the IQueryAssociations interface and sets the root key to the + +appropriate ProgID. + +Args: + + flags(Any):One of shellcon.ASSOCF_* flags + assoc(str):The string data (ie, extension, prog-id, etc) + hkeyProgId(PyHKEY):Root registry key, can be None + hwnd(int):Reserved, must be 0 or None + +Returns: + + None + + """ + pass + + + def GetKey(self,flags:'Any',assocKey:'Any',arg:'str') -> 'Any': + """ + Searches for and retrieves a file association-related key from the + +registry. + +Args: + + flags(Any):Used to control the search. + assocKey(Any):Specifies the type of key that is to be returned. + arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used. + +Returns: + + Any + + """ + pass + + + def GetString(self,flags:'Any',assocStr:'Any',arg:'str') -> 'Any': + """ + Searches for and retrieves a file association-related string from the + +registry. + +Args: + + flags(Any):Used to control the search. + assocStr(Any):Specifies the type of string that is to be returned. + arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used.CommentsNote that ASSOCF_NOTRUNCATE semantics are currently not supported - the buffer passed is 2048 bytes long, and will be truncated by the shell if too small. + +Returns: + + Any + + """ + pass + + +class PyIRelatedItem(object): + """Interface used as the base for objects that have a related shell item + +(eg ITransferMediumItem, IDisplayItem, etc). Should not be used directly.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetItemIDList(self,) -> 'Any': + """ + Returns the ID list of the related item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItem(self,) -> 'Any': + """ + Returns the related item + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIRemoteDebugApplication(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ResumeFromBreakPoint(self,prptFocus:'Any',bra:'Any',era:'Any') -> 'None': + """ + Continue an application which is currently in a breakpoint. + +Args: + + prptFocus(Any):Description for prptFocus + bra(Any):Break resume action + era(Any):Error resume action + +Returns: + + None + + """ + pass + + + def CauseBreak(self,) -> 'None': + """ + Causes the application to break into the debugger at the earliest + +opportunity. + +Args: + + + +Returns: + + None + + """ + pass + + + def ConnectDebugger(self,pad:'Any') -> 'None': + """ + Connects a debugger to the application. + +Args: + + pad(Any):Description for padCommentsOnly one debugger may be connected at a time; this method fails if there is already a debugger connected. + +Returns: + + None + + """ + pass + + + def DisconnectDebugger(self,) -> 'None': + """ + Disconnects the current debugger from the application. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDebugger(self,) -> 'Any': + """ + Returns the current debugger connected to + +the application. + +Args: + + + +Returns: + + Any + + """ + pass + + + def CreateInstanceAtApplication(self,rclsid:'PyIID',pUnkOuter:'Any',dwClsContext:'Any',riid:'PyIID') -> 'Any': + """ + Create objects in the application + +process address space. + +Args: + + rclsid(PyIID):Description for rclsid + pUnkOuter(Any):Description for pUnkOuter + dwClsContext(Any):Description for dwClsContext + riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. + +Returns: + + Any + + """ + pass + + + def QueryAlive(self,) -> 'None': + """ + Returns True if alive, else False. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumThreads(self,) -> 'Any': + """ + Enumerates all threads known + +to be associated with the application. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetName(self,) -> 'None': + """ + Description of GetName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootNode(self,) -> 'Any': + """ + Returns the application node under which + +all nodes associated with the application are added. + +Args: + + + +Returns: + + Any + + """ + pass + + + def EnumGlobalExpressionContexts(self,) -> 'Any': + """ + Enumerates all + +global expression contexts + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIRemoteDebugApplicationEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnConnectDebugger(self,pad:'Any') -> 'None': + """ + Description of OnConnectDebugger. + +Args: + + pad(Any):Description for pad + +Returns: + + None + + """ + pass + + + def OnDisconnectDebugger(self,) -> 'None': + """ + Description of OnDisconnectDebugger. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnSetName(self,pstrName:'Any') -> 'None': + """ + Description of OnSetName. + +Args: + + pstrName(Any):Description for pstrName + +Returns: + + None + + """ + pass + + + def OnDebugOutput(self,pstr:'Any') -> 'None': + """ + Description of OnDebugOutput. + +Args: + + pstr(Any):Description for pstr + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Description of OnClose. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnEnterBreakPoint(self,prdat:'Any') -> 'None': + """ + Description of OnEnterBreakPoint. + +Args: + + prdat(Any):Description for prdat + +Returns: + + None + + """ + pass + + + def OnLeaveBreakPoint(self,prdat:'Any') -> 'None': + """ + Description of OnLeaveBreakPoint. + +Args: + + prdat(Any):Description for prdat + +Returns: + + None + + """ + pass + + + def OnCreateThread(self,prdat:'Any') -> 'None': + """ + Description of OnCreateThread. + +Args: + + prdat(Any):Description for prdat + +Returns: + + None + + """ + pass + + + def OnDestroyThread(self,prdat:'Any') -> 'None': + """ + Description of OnDestroyThread. + +Args: + + prdat(Any):Description for prdat + +Returns: + + None + + """ + pass + + + def OnBreakFlagChange(self,abf:'Any',prdatSteppingThread:'Any') -> 'None': + """ + Description of OnBreakFlagChange. + +Args: + + abf(Any):Description for abf + prdatSteppingThread(Any):Description for prdatSteppingThread + +Returns: + + None + + """ + pass + + +class PyIRemoteDebugApplicationThread(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSystemThreadId(self,) -> 'None': + """ + Description of GetSystemThreadId. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetApplication(self,) -> 'None': + """ + Description of GetApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumStackFrames(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDescription(self,) -> 'None': + """ + Description of GetDescription. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetNextStatement(self,pStackFrame:'Any',pCodeContext:'Any') -> 'None': + """ + Description of SetNextStatement. + +Args: + + pStackFrame(Any):Description for pStackFrame + pCodeContext(Any):Description for pCodeContext + +Returns: + + None + + """ + pass + + + def GetState(self,) -> 'None': + """ + Description of GetState. + +Args: + + + +Returns: + + None + + """ + pass + + + def Suspend(self,) -> 'None': + """ + Description of Suspend. + +Args: + + + +Returns: + + None + + """ + pass + + + def Resume(self,) -> 'None': + """ + Description of Resume. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSuspendCount(self,) -> 'None': + """ + Description of GetSuspendCount. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIRunningObjectTable(object): + """A Python interface to IRunningObjectTable""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Register(self,) -> 'Any': + """ + Registers an object and its identifying moniker in the Running Object + +Table (ROT). + +Args: + + + +Returns: + + Any + + """ + pass + + + def Revoke(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsRunning(self,objectName:'Any') -> 'Any': + """ + Checks whether an object is running. + +Args: + + objectName(Any):The PyIMoniker interface on the moniker to search for in the Running Object Table.Return ValueDescriptionS_OK (ie, 0)The object identified by objectName is running.S_FALSE (ie, 1)There is no entry for objectName in the ROT, or that the object it identifies is no longer running (in which case, the entry is revoked). + +Returns: + + Any + + """ + pass + + + def GetObject(self,objectName:'Any') -> 'Any': + """ + Checks whether an object is running. + +Args: + + objectName(Any):The PyIMoniker interface on the moniker to search for in the Running Object Table. + +Returns: + + Any + + """ + pass + + + def EnumRunning(self,) -> 'Any': + """ + Creates an enumerator that can list the monikers of + +all the objects currently registered in the Running Object Table (ROT). + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIScheduledWorkItem(object): + """Python object that encapsulates the IScheduledWorkItem interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTrigger(self,) -> 'Tuple[Any, Any]': + """ + Creates a new trigger for a task, returns index and + +new ITaskTrigger interface + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def DeleteTrigger(self,Trigger:'Any') -> 'None': + """ + Deletes specified trigger + +Args: + + Trigger(Any):Index of trigger to delete + +Returns: + + None + + """ + pass + + + def GetTriggerCount(self,) -> 'Any': + """ + Returns number of triggers defined for the task + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTrigger(self,iTrigger:'Any') -> 'Any': + """ + Retrieves ITaskTrigger interface for specified trigger + +index + +Args: + + iTrigger(Any):Index of trigger to retrieve + +Returns: + + Any + + """ + pass + + + def GetTriggerString(self,) -> 'Any': + """ + Creates a human-readable summary of specified trigger + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRunTimes(self,Count:'Any',Begin:'PyTime',End:'PyTime') -> 'Tuple[PyTime, Any, Any, Any]': + """ + Return specified number of run times within given time + +frame + +Args: + + Count(Any):Number of run times to retrieve + Begin(PyTime):Start time, defaults to current time if not passed or None + End(PyTime):End time, defaults to unlimited if not passed or None + +Returns: + + Tuple[PyTime, Any, Any, Any] + + """ + pass + + + def GetNextRunTime(self,) -> 'PyTime': + """ + Returns next time that task is scheduled to run + +Args: + + + +Returns: + + PyTime + + """ + pass + + + def SetIdleWait(self,wIdleMinutes:'Any',wDeadlineMinutes:'Any') -> 'None': + """ + Sets idle parms for task with trigger of type TASK_EVENT_TRIGGER_ON_IDLE + +Args: + + wIdleMinutes(Any):Nbr of minutes computer must be idle before task fires + wDeadlineMinutes(Any):Maximum nbr of minutes task will wait for computer to become idle + +Returns: + + None + + """ + pass + + + def GetIdleWait(self,) -> 'Tuple[Any, Any]': + """ + Gets IdleMinutes and DeadlineMinutes parms for task with trigger + +of type TASK_EVENT_TRIGGER_ON_IDLE + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def Run(self,) -> 'None': + """ + Starts task + +Args: + + + +Returns: + + None + + """ + pass + + + def Terminate(self,) -> 'None': + """ + Terminate process if task is running + +Args: + + + +Returns: + + None + + """ + pass + + + def EditWorkItem(self,hParent:'int',dwReserved:'Any') -> 'None': + """ + Brings up standard Scheduled Task dialog + +Args: + + hParent(int):Reserved, use 0 or None if passed + dwReserved(Any):Reserved, use 0 if passed + +Returns: + + None + + """ + pass + + + def GetMostRecentRunTime(self,) -> 'PyTime': + """ + Returns last time task ran + +Args: + + + +Returns: + + PyTime + + """ + pass + + + def GetStatus(self,) -> 'Any': + """ + Returns status (SCHED_S_TASK... constants) + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetExitCode(self,) -> 'Tuple[Any, Any]': + """ + Returns tuple of task's exit code and error returned to Task + +Scheduler if process could not start + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetComment(self,Comment:'Any') -> 'None': + """ + Set comment string for task + +Args: + + Comment(Any):Freeform comment string + +Returns: + + None + + """ + pass + + + def GetComment(self,) -> 'str': + """ + Return comment string associated with task. + +Args: + + + +Returns: + + str + + """ + pass + + + def SetCreator(self,Creator:'Any') -> 'None': + """ + Specify who (or what) created task, can be any string + +Args: + + Creator(Any):Originator of task, does not have to be valid username + +Returns: + + None + + """ + pass + + + def GetCreator(self,) -> 'None': + """ + Returns creator info, can be any string data + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWorkItemData(self,Data:'str') -> 'None': + """ + Set data associated with task (treated as uninterpreted bytes) + +Args: + + Data(str):Character data, treated as uninterpreted bytes + +Returns: + + None + + """ + pass + + + def GetWorkItemData(self,) -> 'str': + """ + Retrieve data associated with task + +Args: + + + +Returns: + + str + + """ + pass + + + def SetErrorRetryCount(self,wRetryCount:'Any') -> 'None': + """ + Specify nbr of times to attempt to run task if it can't start (not + +currently implemented) + +Args: + + wRetryCount(Any):Nbr of attemps to start task + +Returns: + + None + + """ + pass + + + def GetErrorRetryCount(self,) -> 'None': + """ + Return nbr of times Task scheduler should try to run task (not + +currently implemented) + +Args: + + + +Returns: + + None + + """ + pass + + + def SetErrorRetryInterval(self,RetryInterval:'Any') -> 'None': + """ + Interval in minutes between attempts to run task. Not + +implemented according to SDK + +Args: + + RetryInterval(Any):Interval in minutes + +Returns: + + None + + """ + pass + + + def GetErrorRetryInterval(self,) -> 'None': + """ + Returns nbr of minutes between attempts to run task. Not + +implemented according to SDK + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFlags(self,dwFlags:'Any') -> 'None': + """ + Set flags for task + +Args: + + dwFlags(Any):Combination of TASK_FLAG_* constants + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'Any': + """ + Returns flags for task (TASK_FLAG_* constants) + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetAccountInformation(self,AccountName:'Any',Password:'Any') -> 'None': + """ + Set username and password under which task will run + +Args: + + AccountName(Any):AccountName, use "" for local system account (can only be used by Administrators) + Password(Any):Password - Can be None for local System account, or if TASK_FLAG_RUN_ONLY_IF_LOGGED_ON is setCommentsOn some systems, username and password are verified at the time the task is saved, on others when the task tries to run + +Returns: + + None + + """ + pass + + + def GetAccountInformation(self,) -> 'Any': + """ + Returns username that task will run under + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIServerSecurity(object): + """Interface used to access client security settings and perform impersonation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryBlanket(self,Capabilities:'Any'=0) -> 'Any': + """ + Retrieves security settings specified by the client + +Args: + + Capabilities(Any):Can be EOAC_MAKE_FULLSIC for SChannel provider + +Returns: + + Any + + """ + pass + + + def ImpersonateClient(self,) -> 'None': + """ + Initiates impersonation of client + +Args: + + + +Returns: + + None + + """ + pass + + + def RevertToSelf(self,) -> 'None': + """ + Ends impersonation of client + +Args: + + + +Returns: + + None + + """ + pass + + + def IsImpersonating(self,) -> 'Any': + """ + Determines if server is currently impersonating a client + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIServiceProvider(object): + """A Python interface to IServiceProvider""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryService(self,clsid:'PyIID',iid:'PyIID') -> 'Any': + """ + Creates or accesses the specified service and returns an + +interface object to the specified interface for the service. + +Args: + + clsid(PyIID):Unique identifier for the requested service. + iid(PyIID):Unique identifier for the requested interface on the service. + +Returns: + + Any + + """ + pass + + +class PyIShellBrowser(object): + """Exposed by Windows Explorer and the Open File common dialog box to provide services for + +namespace extensions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertMenusSB(self,hmenuShared:'int',lpMenuWidths:'Any') -> 'Any': + """ + Updates a composite menu with container's options + +Args: + + hmenuShared(int):Newly created menu that contains no items + lpMenuWidths(Any):Tuple of 6 ints. Items 0,2,and 4 are updated when the tuple is returned. + +Returns: + + Any + + """ + pass + + + def SetMenuSB(self,hmenuShared:'int',holemenuRes:'int',hwndActiveObject:'int') -> 'None': + """ + Attaches a shared menu to a shell view window + +Args: + + hmenuShared(int):Handle to the shared menu + holemenuRes(int):Reserved, use only None (or 0) + hwndActiveObject(int):Handle to the shell window + +Returns: + + None + + """ + pass + + + def RemoveMenusSB(self,hmenuShared:'int') -> 'None': + """ + Asks container to remove any items it added to a composite menu + +Args: + + hmenuShared(int):Handle to the composite menu + +Returns: + + None + + """ + pass + + + def SetStatusTextSB(self,pszStatusText:'Any') -> 'None': + """ + Sets the status text in view's status bar + +Args: + + pszStatusText(Any):New status to be displayed + +Returns: + + None + + """ + pass + + + def EnableModelessSB(self,fEnable:'Any') -> 'None': + """ + Enables or disables modeless dialogs + +Args: + + fEnable(Any):Use True to enable or False to disable modeless dialog boxes + +Returns: + + None + + """ + pass + + + def TranslateAcceleratorSB(self,pmsg:'PyMSG',wID:'Any') -> 'None': + """ + Translates keystrokes used as menu item activators + +Args: + + pmsg(PyMSG):Keystroke message to be translated + wID(Any):Menu command id for the keystroke + +Returns: + + None + + """ + pass + + + def BrowseObject(self,pidl:'Any',wFlags:'Any') -> 'None': + """ + Navigates to a different location + +Args: + + pidl(Any):Item id list that specifies the new browse location, can be None + wFlags(Any):Combination of shellcon.SBSP_* flags + +Returns: + + None + + """ + pass + + + def GetViewStateStream(self,grfMode:'Any') -> 'Any': + """ + Returns a stream that can be used to access view state + +information + +Args: + + grfMode(Any):Read/write mode, one of STGM_READ,STGM_WRITE,STGM_READWRITE + +Returns: + + Any + + """ + pass + + + def GetControlWindow(self,_id:'Any') -> 'None': + """ + Returns a handle to one of the browser's control elements + +Args: + + _id(Any):One of shellcon.FCW_* values + +Returns: + + None + + """ + pass + + + def SendControlMsg(self,_id:'Any',uMsg:'Any',wParam:'Any',lParam:'Any') -> 'Any': + """ + Sends a control msg to browser's toolbar or status bar + +Args: + + _id(Any):shellcon.FCW_TOOLBAR or FCW_STATUS + uMsg(Any):The message to send + wParam(Any):Value is dependent on the message + lParam(Any):Value is dependent on the message + +Returns: + + Any + + """ + pass + + + def QueryActiveShellView(self,) -> 'Any': + """ + Returns the currently displayed view + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnViewWindowActive(self,pshv:'Any') -> 'None': + """ + Callback triggered when a view window is activated + +Args: + + pshv(Any):The activated view object + +Returns: + + None + + """ + pass + + + def SetToolbarItems(self,lpButtons:'Any',uFlags:'Any') -> 'None': + """ + Adds toolbar buttons to the browser's toolbar + +Args: + + lpButtons(Any):Sequence of tuples describing the buttons to be added + uFlags(Any):Indicates button positions, combination of shellcon.FCT_* + +Returns: + + None + + """ + pass + + +class PyIShellExtInit(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,pFolder:'Any',pDataObject:'Any',hkey:'int') -> 'None': + """ + Description of Initialize. + +Args: + + pFolder(Any):Description for pFolder + pDataObject(Any):Description for pDataObject + hkey(int):Description for hkey + +Returns: + + None + + """ + pass + + +class PyIShellFolder(object): + """Interface that represents an Explorer folder""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseDisplayName(self,hwndOwner:'int',pbc:'Any',DisplayName:'Any',Attributes:'Any'=0) -> 'Any': + """ + Returns the PIDL of an item in a shell folder + +Args: + + hwndOwner(int):Window in which to display any dialogs or message boxes, can be 0 + pbc(Any):Bind context that affects how parsing is performed, can be None + DisplayName(Any):Display name to parse, format is dependent on the shell folder. Desktop folder will accept a file path, as well as guids of the form ::{guid} Example: '::%s\\::%s' %(shell.CLSID_MyComputer,shell.CLSID_ControlPanel) + Attributes(Any):Combination of shellcon.SFGAO_* constants specifying which attributes should be returnedReturn ValueThe result is a tuple of cchEaten, pidl, attrItems[0] int : cchEatenthe number of characters of the input name that were parsed[1] PyIDL : pidlspecifies the relative path from the parsing folder to the object[2] int : Attributesreturns any requested attributes + +Returns: + + Any:Combination of shellcon.SFGAO_* constants specifying which attributes should be returned +Return ValueThe result is a tuple of cchEaten, pidl, attr +Items[0] int : cchEaten +the number of characters of the input name that were parsed +[1] PyIDL : pidl +specifies the relative path from the parsing folder to the object +[2] int : Attributes +returns any requested attributes + + + """ + pass + + + def EnumObjects(self,grfFlags:'Any',hwndOwner:'int'=None) -> 'Any': + """ + Creates an enumerator to list the contents of the shell folder + +Args: + + grfFlags(Any):Combination of shellcon.SHCONTF_* constants + hwndOwner(int):Window to use if any user interaction is required + +Returns: + + Any + + """ + pass + + + def BindToObject(self,pidl:'Any',pbc:'Any',riid:'PyIID') -> 'Any': + """ + Returns an IShellFolder interface for a subfolder + +Args: + + pidl(Any):Relative item id list that identifies the subfolder, can be multi-level + pbc(Any):Bind context to be used, can be None + riid(PyIID):IID of the desired interface, usually IID_IShellFolder + +Returns: + + Any + + """ + pass + + + def BindToStorage(self,pidl:'Any',pbc:'Any',riid:'PyIID') -> 'Any': + """ + Returns an interface to a storage object in a shell folder + +Args: + + pidl(Any):Relative pidl for the folder item, must be a single item id + pbc(Any):Bind context that affects how binding is performed, can be None + riid(PyIID):IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in + +Returns: + + Any:IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in + + + """ + pass + + + def CompareIDs(self,lparam:'Any',pidl1:'Any',pidl2:'Any') -> 'Any': + """ + Determines the sorting order of 2 items in shell folder + +Args: + + lparam(Any):Lower 16 bits specify folder-dependent sorting rules, 0 means to sort by display name. System folder view uses these as a column number. Upper sixteen bits is used for flags SHCIDS_ALLFIELDS or SHCIDS_CANONICALONLY + pidl1(Any):Item id list that idenfies an object relative to the folder + pidl2(Any):Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first + +Returns: + + Any:Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first + + + """ + pass + + + def CreateViewObject(self,hwndOwner:'Any',riid:'PyIID') -> 'Any': + """ + Creates a view object for a shell folder. + +Args: + + hwndOwner(Any):Parent window for a custom folder view, or 0 + riid(PyIID):IID of the desired interface, usually IID_IShellView + +Returns: + + Any + + """ + pass + + + def GetAttributesOf(self,pidl:'Tuple[Any, ...]',rgfInOut:'Any') -> 'Any': + """ + Queries attributes of items within the shell folder + +Args: + + pidl(Tuple[Any, ...]):A sequence of single-level pidls identifying items directly contained by the folder + rgfInOut(Any):Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items + +Returns: + + Any:Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items + + + """ + pass + + + def GetUIObjectOf(self,hwndOwner:'int',pidl:'Tuple[Any, ...]',riid:'PyIID',iidout:'PyIID',Reserved:'Any'=0) -> 'Tuple[Any, Any]': + """ + Creates an interface to one or more items in a shell + +folder + +Args: + + hwndOwner(int):Specifies a window in which to display any required dialogs or errors, can be 0 + pidl(Tuple[Any, ...]):A sequence of single-level pidls identifying items in the folder + riid(PyIID):The interface to create, one of IID_IContextMenu, IID_IContextMenu2, IID_IDataObject, IID_IDropTarget, IID_IExtractIcon, IID_IQueryInfo + iidout(PyIID):The interface to return. Can be used in the case where there is not a python wrapper for the desired interface. You must make certain that the interface identified by riid actually supports the iidout interface, or Bad Things Will Happen. It should always be safe to return PyIUnknown, which is the base for all interfaces.Return ValueReturns the Reserved parameter and the requested interface + Reserved(Any):Reserved, use 0 if passed in + +Returns: + + Tuple[Any, Any]:The interface to return. Can be used in the case where there is not a + +python wrapper for the desired interface. You must make certain that the interface identified by riid + +actually supports the iidout interface, or Bad Things Will Happen. + +It should always be safe to return PyIUnknown, which is the base for all interfaces. +Return ValueReturns the Reserved parameter and the requested interface + + + """ + pass + + + def GetDisplayNameOf(self,pidl:'Any',uFlags:'Any') -> 'Any': + """ + Returns the display name of an item within this shell folder + +Args: + + pidl(Any):PIDL that identifies the item relative to the parent folder + uFlags(Any):Combination of shellcon.SHGDN_* flags + +Returns: + + Any + + """ + pass + + + def SetNameOf(self,hwndOwner:'Any',pidl:'Any',Name:'Any',Flags:'Any') -> 'Any': + """ + Sets the display name of an item and changes its PIDL + +Args: + + hwndOwner(Any):Window in which to display any message boxes or dialogs, can be 0 + pidl(Any):PIDL that identifies the item relative to the parent folder + Name(Any):New name for the item + Flags(Any):Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item + +Returns: + + Any:Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item + + + """ + pass + + +class PyIShellFolder2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDefaultSearchGUID(self,pguid:'PyIID') -> 'PyIID': + """ + Retrieves the default search for the folder + +Args: + + pguid(PyIID):Description for pguid + +Returns: + + PyIID + + """ + pass + + + def EnumSearches(self,) -> 'Any': + """ + Returns an interface that lists searches defined for + +the folder + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDefaultColumn(self,) -> 'Tuple[Any, Any]': + """ + Returns the columns used for sorting and display + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetDefaultColumnState(self,iColumn:'Any') -> 'Any': + """ + Returns flags indicating the default behaviour of the column + +Args: + + iColumn(Any):Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags + +Returns: + + Any:Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags + + + """ + pass + + + def GetDetailsEx(self,pidl:'Any',pscid:'Any') -> 'Any': + """ + Returns the details of an item by Column ID + +Args: + + pidl(Any):Relative id list of an item in the folder + pscid(Any):The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column + +Returns: + + Any:The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column + + + """ + pass + + + def GetDetailsOf(self,pidl:'Any',iColumn:'Any') -> 'Tuple[Any, Any, Any]': + """ + Returns the value or title of a column in the folder's Details + +view. + +Args: + + pidl(Any):The relative idl of an item in the folder. Use None to retrieve column title. + iColumn(Any):Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in characters, and string representation of the requested value + +Returns: + + Tuple[Any, Any, Any]:Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in + +characters, + +and string representation of the requested value + + + """ + pass + + + def MapColumnToSCID(self,Column:'Any') -> 'Any': + """ + Returns the unique identifier (FMTID, pid) of a column + +Args: + + Column(Any):The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. For Vista and later, this is the Property Key used with the property system interfaces. + +Returns: + + Any:The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. + +For Vista and later, this is the Property Key used with the property system interfaces. + + + """ + pass + + +class PyIShellIcon(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetIconOf(self,pidl:'Any') -> 'None': + """ + Description of GetIconOf. + +Args: + + pidl(Any):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIShellIconOverlay(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetOverlayIndex(self,pidl:'Any') -> 'None': + """ + Description of GetOverlayIndex. + +Args: + + pidl(Any):Description for pidl + +Returns: + + None + + """ + pass + + + def GetOverlayIconIndex(self,pidl:'Any') -> 'None': + """ + Description of GetOverlayIconIndex. + +Args: + + pidl(Any):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIShellIconOverlayIdentifier(object): + """Interface that supplies icon overlay information to the shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsMemberOf(self,path:'str',attrib:'Any') -> 'Any': + """ + Determines if a shell object should have an icon overlay + +Args: + + path(str):Fully qualified path of the shell object + attrib(Any):Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. The client implementation of this function returns the same values - ie, Python's True and False should not be used, as S_OK==0==False. + +Returns: + + Any:Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to + +display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. + +The client implementation of this function returns the same values - ie, + +Python's True and False should not be used, as S_OK==0==False. + + + """ + pass + + + def GetOverlayInfo(self,) -> 'Tuple[str, Any, Any]': + """ + Retrieves the path to the overlay + +icon + +Args: + + + +Returns: + + Tuple[str, Any, Any]:PyIShellIconOverlayIdentifier.GetOverlayInfo + +(PyUnicode, int, int) = GetOverlayInfo()Retrieves the path to the overlay + +icon +Return ValueReturns the path to the icon file, the index of icon within the file, and Flags containing + +combination of shellcon.ISIOI_ICON* flags + + + """ + pass + + + def GetPriority(self,) -> 'Any': + """ + Retrieves the relative priority of the overlay + +Args: + + + +Returns: + + Any:PyIShellIconOverlayIdentifier.GetPriority + +int = GetPriority()Retrieves the relative priority of the overlay +Return ValueImplementation of this function should return a number in the range 0-100 (0 is highest priority) + + + """ + pass + + +class PyIShellIconOverlayManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFileOverlayInfo(self,path:'Any',attrib:'Any',flags:'Any') -> 'Any': + """ + Returns an index into the system image list for the icon + +image or overlay image + +Args: + + path(Any):Full path to the file + attrib(Any):File attributes (win32com.FILE_ATTRIBUTE_*) + flags(Any):SIOM_OVERLAYINDEX (1) or SIOM_ICONINDEX (2) + +Returns: + + Any + + """ + pass + + + def GetReservedOverlayInfo(self,path:'Any',attrib:'Any',flags:'Any',ireservedID:'Any') -> 'None': + """ + Description of GetReservedOverlayInfo. + +Args: + + path(Any):Description for path + attrib(Any):Description for attrib + flags(Any):Description for flags + ireservedID(Any):Description for ireservedID + +Returns: + + None + + """ + pass + + + def RefreshOverlayImages(self,flags:'Any') -> 'None': + """ + Description of RefreshOverlayImages. + +Args: + + flags(Any):Description for flags + +Returns: + + None + + """ + pass + + + def LoadNonloadedOverlayIdentifiers(self,) -> 'None': + """ + Description of LoadNonloadedOverlayIdentifiers. + +Args: + + + +Returns: + + None + + """ + pass + + + def OverlayIndexFromImageIndex(self,iImage:'Any',fAdd:'Any') -> 'None': + """ + Description of OverlayIndexFromImageIndex. + +Args: + + iImage(Any):Description for iImage + fAdd(Any):Description for fAdd + +Returns: + + None + + """ + pass + + +class PyIShellItem(object): + """Interface that represents an item in the Explorer shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToHandler(self,pbc:'Any',bhid:'PyIID',riid:'PyIID') -> 'Any': + """ + Creates an instance of one of the item's handlers + +Args: + + pbc(Any):Used to pass parameters that influence the binding operation, can be None + bhid(PyIID):GUID that identifies a handler (shell.BHID_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetParent(self,) -> 'Any': + """ + Retrieves the parent of this item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDisplayName(self,sigdnName:'Any') -> 'Any': + """ + Returns the display name of the item in the specified format + +Args: + + sigdnName(Any):Format of name to return, shellcon.SIGDN_* + +Returns: + + Any + + """ + pass + + + def GetAttributes(self,Mask:'Any') -> 'Any': + """ + Returns shell attributes of the item + +Args: + + Mask(Any):Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values + +Returns: + + Any:Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values + + + """ + pass + + + def Compare(self,psi:'Any',hint:'Any') -> 'Any': + """ + Compares another shell item with this item + +Args: + + psi(Any):A shell item to be compared with this item + hint(Any):shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise + +Returns: + + Any:shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise + + + """ + pass + + +class PyIShellItem2(object): + """Extends the IShellItem interface, giving access to an item's properties""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyStore(self,Flags:'Any',riid:'PyIID') -> 'Any': + """ + Returns a collection of the item's properties + +Args: + + Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyStoreForKeys(self,Keys:'Tuple[Any, ...]',Flags:'Any',riid:'PyIID') -> 'Any': + """ + Creates a property store containing just the + +specified properties of the item + +Args: + + Keys(Tuple[Any, ...]):A sequence of property identifiers + Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyStoreWithCreateObject(self,Flags:'Any',CreateObject:'Any',riid:'PyIID') -> 'Any': + """ + Returns the property store for the + +item, with alternate handler instantiation + +Args: + + Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + CreateObject(Any):An interface that implements ICreateObject, used to create the property handler + riid(PyIID):The interface to be createdCommentsPrimarily used to create a handler in a separate process with reduced privileges + +Returns: + + Any + + """ + pass + + + def GetPropertyDescriptionList(self,Type:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves descriptions of + +properties in a particular group + +Args: + + Type(Any):Property list identifier (pscon.PKEY_PropList_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def Update(self,BindCtx:'Any'=None) -> 'None': + """ + Refreshes properties that have been modified since interface was created + +Args: + + BindCtx(Any):Bind context used when requesting the interface, or None + +Returns: + + None + + """ + pass + + + def GetProperty(self,key:'Any') -> 'Any': + """ + Retrieves the value of a property, converted to an appropriate python type + +Args: + + key(Any):The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property + +Returns: + + Any:The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property + + + """ + pass + + + def GetCLSID(self,key:'Any') -> 'PyIID': + """ + Retrieves the value of a property as a CLSID (VT_CLSID) + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + PyIID + + """ + pass + + + def GetFileTime(self,key:'Any') -> 'PyTime': + """ + Retrieves the value of a property as a FILETIME + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + PyTime + + """ + pass + + + def GetInt32(self,key:'Any') -> 'Any': + """ + Retrieves the value of a property as a 32 bit int. + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + + def GetString(self,key:'Any') -> 'Any': + """ + Retrieves the value of a property as a string + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + + def GetUInt32(self,key:'Any') -> 'Any': + """ + Returns the value of a property as a 32 bit unsigned int + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + + def GetUInt64(self,key:'Any') -> 'Any': + """ + Returns the value of a property as an unsigned 64-bit int + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + + def GetBool(self,key:'Any') -> 'Any': + """ + Returns the value of a property as a boolean + +Args: + + key(Any):The id of the property to retrieve + +Returns: + + Any + + """ + pass + + +class PyIShellItemArray(object): + """Container for a number of shell items""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToHandler(self,pbc:'Any',rbhid:'PyIID',riid:'PyIID') -> 'Any': + """ + Creates an instance of a handler for the items in the container + +Args: + + pbc(Any):Bind context, can be None + rbhid(PyIID):Bind handler GUID (shell.BHID_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetPropertyStore(self,flags:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves a store containing consolidated + +properties of items in container + +Args: + + flags(Any):Flags indicating how the properties are retrieved (shellcon.GPS_*) + riid(PyIID):The interface to return, IID_IPropertyStore or related interface + +Returns: + + Any + + """ + pass + + + def GetPropertyDescriptionList(self,Type:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves descriptions for a + +defined group of properties + +Args: + + Type(Any):Property list identifier (pscon.PKEY_PropList_*) + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetAttributes(self,AttribFlags:'Any',Mask:'Any') -> 'Any': + """ + Retrieves shell attributes of contained items + +Args: + + AttribFlags(Any):SIATTRIBFLAGS value (shellcon.SIATTRIBFLAGS_*) specifying how to combine attributes of multiple items + Mask(Any):Combination of SFGAOF flags (shellcon.SFGAO_*) specifying which attributes to return + +Returns: + + Any + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Returns the number of items in the container + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemAt(self,dwIndex:'Any') -> 'Any': + """ + Retrieves an item by index + +Args: + + dwIndex(Any):Zero-based index of item to retrieve + +Returns: + + Any + + """ + pass + + + def EnumItems(self,) -> 'Any': + """ + Returns an enumeration interface to list contained items + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyIShellItemResources(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetAttributes(self,) -> 'None': + """ + Description of GetAttributes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'Any': + """ + Description of GetSize. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTimes(self,) -> 'None': + """ + Description of GetTimes. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetTimes(self,pftCreation:'PyTime',pftWrite:'PyTime',pftAccess:'PyTime') -> 'None': + """ + Description of SetTimes. + +Args: + + pftCreation(PyTime):Description for pftCreation + pftWrite(PyTime):Description for pftWrite + pftAccess(PyTime):Description for pftAccess + +Returns: + + None + + """ + pass + + + def GetResourceDescription(self,pcsir:'Any') -> 'None': + """ + Description of GetResourceDescription. + +Args: + + pcsir(Any):Description for pcsir + +Returns: + + None + + """ + pass + + + def EnumResources(self,) -> 'Any': + """ + Description of EnumResources. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SupportsResource(self,pcsir:'Any') -> 'Any': + """ + Description of SupportsResource. + +Args: + + pcsir(Any):Description for pcsir + +Returns: + + Any + + """ + pass + + + def OpenResource(self,pcsir:'Any',riid:'PyIID') -> 'Any': + """ + Description of OpenResource. + +Args: + + pcsir(Any):Description for pcsir + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def CreateResource(self,sir:'Any',riid:'PyIID') -> 'Any': + """ + Description of CreateResource. + +Args: + + sir(Any):Resource identifier + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def MarkForDelete(self,) -> 'None': + """ + Description of MarkForDelete. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIShellLibrary(object): + """Interface used to access Libraries""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def LoadLibraryFromItem(self,Library:'Any',Mode:'Any') -> 'None': + """ + Loads an existing library file + +Args: + + Library(Any):Shell item interface representing the library file + Mode(Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + None + + """ + pass + + + def LoadLibraryFromKnownFolder(self,Library:'PyIID',Mode:'Any') -> 'None': + """ + Initializes library from a known folder + +Args: + + Library(PyIID):Known folder id, shell.FOLDERID_* + Mode(Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + None + + """ + pass + + + def AddFolder(self,Location:'Any') -> 'None': + """ + Includes a folder + +Args: + + Location(Any):Shell item interface representing the folder + +Returns: + + None + + """ + pass + + + def RemoveFolder(self,Location:'Any') -> 'None': + """ + Removes a folder + +Args: + + Location(Any):Shell item interface representing the folder + +Returns: + + None + + """ + pass + + + def GetFolders(self,Filter:'Any',riid:'PyIID') -> 'Any': + """ + Retrieves a collection of folders in the library + +Args: + + Filter(Any):Specifies what types of folder to return (shellcon.LFF_*) + riid(PyIID):The interface to return, IObjectCollection and IObjectArray also accepted. + +Returns: + + Any + + """ + pass + + + def ResolveFolder(self,FolderToResolve:'Any',Timeout:'Any',riid:'PyIID') -> 'Any': + """ + Attempts to locate a folder that has been moved or renamed + +Args: + + FolderToResolve(Any):Library item whose location has changed + Timeout(Any):Max search time, specified in milliseconds + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def GetDefaultSaveFolder(self,Type:'Any',riid:'PyIID') -> 'Any': + """ + Returns the default folder in which new items are + +saved + +Args: + + Type(Any):Specifies whether to return public or private save location, shellcon.DSFT_* + riid(PyIID):The interface to return + +Returns: + + Any + + """ + pass + + + def SetDefaultSaveFolder(self,Type:'Any',SaveFolder:'Any') -> 'None': + """ + Sets the default save location + +Args: + + Type(Any):Specifies public or private save location, shellcon.DSFT_* + SaveFolder(Any):New default location, must be in the library + +Returns: + + None + + """ + pass + + + def GetOptions(self,) -> 'Any': + """ + Retrieves library option flags + +Args: + + + +Returns: + + Any:PyIShellLibrary.GetOptions + +int = GetOptions()Retrieves library option flags +Return ValueReturns a combination of shellcon.LOF_* flags + + + """ + pass + + + def SetOptions(self,Mask:'Any',Options:'Any') -> 'None': + """ + Sets library option flags + +Args: + + Mask(Any):Bitmask of flags to be changed, combination of shellcon.LOF_* values + Options(Any):New options, combination of shellcon.LOF_* values + +Returns: + + None + + """ + pass + + + def GetFolderType(self,) -> 'PyIID': + """ + Returns the library type, shell.FOLDERTYPEID_* + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def SetFolderType(self,Type:'PyIID') -> 'None': + """ + Sets the folder type for the library + +Args: + + Type(PyIID):New type, shell.FOLDERTYPEID_* + +Returns: + + None + + """ + pass + + + def GetIcon(self,) -> 'Any': + """ + Returns the location of the library's icon + +Args: + + + +Returns: + + Any:PyIShellLibrary.GetIcon + +str = GetIcon()Returns the location of the library's icon +Return ValueUses "module,resource" format + + + """ + pass + + + def SetIcon(self,Icon:'Any') -> 'None': + """ + Sets the library icon + +Args: + + Icon(Any):Icon location in "module,resource" syntax + +Returns: + + None + + """ + pass + + + def Commit(self,) -> 'None': + """ + Saves changes (only if loaded from an existing library) + +Args: + + + +Returns: + + None + + """ + pass + + + def Save(self,FolderToSaveIn:'Any',LibraryName:'Any',Flags:'Any') -> 'Any': + """ + Saves the library to a specific location + +Args: + + FolderToSaveIn(Any):The destination folder, use None to save in current user's Libraries folder + LibraryName(Any):Filename for the new library, without file extension + Flags(Any):Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. + +Returns: + + Any:Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. + + + """ + pass + + + def SaveInKnownFolder(self,FolderToSaveIn:'PyIID',LibraryName:'Any',Flags:'Any') -> 'Any': + """ + Saves the library in a known folder + +Args: + + FolderToSaveIn(PyIID):The destination folder, shell.FOLDERID_* + LibraryName(Any):Filename for the new library, without file extension + Flags(Any):Determines behaviour if file already exists, shellcon.LSF_* + +Returns: + + Any + + """ + pass + + +class PyIShellLink(object): + """Interface used to access the properties of a shell link file (*.lnk)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPath(self,fFlags:'Any',cchMaxPath:'Any') -> 'Tuple[Any, WIN32_FIND_DATA]': + """ + Retrieves the target path and file name of a shell link + +object + +Args: + + fFlags(Any):One of the following values:ValueDescriptionSLGP_SHORTPATHRetrieves the standard short (8.3 format) file name.SLGP_UNCPRIORITYRetrieves the Universal Naming Convention (UNC) path name of the file.SLGP_RAWPATHRetrieves the raw path name. A raw path is something that might not exist and may include environment variables that need to be expanded. + cchMaxPath(Any):Number of characters to allocate for returned filenameCommentsThe AlternateFileName (8.3) member of WIN32_FIND_DATA does not return information + +Returns: + + Tuple[Any, WIN32_FIND_DATA] + + """ + pass + + + def GetIDList(self,) -> 'Any': + """ + Retrieves the item id list that identifies the target of the shell link. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetIDList(self,pidl:'Any') -> 'None': + """ + Sets the target of the link using an item id list + +Args: + + pidl(Any):Absolute item id list that identifies the target + +Returns: + + None + + """ + pass + + + def GetDescription(self,cchMaxName:'Any'=1024) -> 'Any': + """ + Retrieves the description of the link (displays as Comment in the UI) + +Args: + + cchMaxName(Any):Number of character to allocate for the retrieved text + +Returns: + + Any + + """ + pass + + + def SetDescription(self,Name:'Any') -> 'None': + """ + Sets the description of the link (displays as Comment in the UI) + +Args: + + Name(Any):The description for the link + +Returns: + + None + + """ + pass + + + def GetWorkingDirectory(self,cchMaxName:'Any'=1024) -> 'Any': + """ + Retrieves the working directory for the link + +Args: + + cchMaxName(Any):Number of characters to allocate for returned text + +Returns: + + Any + + """ + pass + + + def SetWorkingDirectory(self,Dir:'Any') -> 'None': + """ + Sets the working directory for the link. + +Args: + + Dir(Any):The working directory for the link + +Returns: + + None + + """ + pass + + + def GetArguments(self,cchMaxName:'Any'=1024) -> 'Any': + """ + Retrieves the command-line arguments associated with a shell link object. + +Args: + + cchMaxName(Any):Number of characters to fetch. + +Returns: + + Any + + """ + pass + + + def SetArguments(self,args:'Any') -> 'None': + """ + Sets the command-line arguments associated with a shell link object. + +Args: + + args(Any):The new arguments. + +Returns: + + None + + """ + pass + + + def GetHotkey(self,) -> 'Any': + """ + Retrieves the hot key for a shell link object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetHotkey(self,wHotkey:'Any') -> 'None': + """ + Sets the hot key for a shell link object. + +Args: + + wHotkey(Any):The virtual key code is in the low-order byte, and the modifier flags are in the high-order byte. The modifier flags can be a combination of the values specified in the description of the PyIShellLink::GetHotkey method. + +Returns: + + None + + """ + pass + + + def GetShowCmd(self,) -> 'Any': + """ + Retrieves the show (SW_) command for a shell link object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetShowCmd(self,iShowCmd:'Any') -> 'None': + """ + Sets the show (SW_) command for a shell link object. + +Args: + + iShowCmd(Any):The new show command value. + +Returns: + + None + + """ + pass + + + def GetIconLocation(self,cchMaxPath:'Any') -> 'Any': + """ + Retrieves the location (path and index) of the icon for a shell link + +object. + +Args: + + cchMaxPath(Any):Number of characters to allocate for the result string. + +Returns: + + Any + + """ + pass + + + def SetIconLocation(self,iconPath:'str',iIcon:'Any') -> 'None': + """ + Sets the location (path and index) of the icon for a shell link object. + +Args: + + iconPath(str):Path to the file with the icon. + iIcon(Any):Index of the icon. + +Returns: + + None + + """ + pass + + + def SetRelativePath(self,relPath:'str',reserved:'Any'=0) -> 'None': + """ + Sets the relative path for a shell link object. + +Args: + + relPath(str):The relative path. + reserved(Any):Reserved - must be zero.CommentsThis mechanism allows for moved link files to reestablish connection with relative files through similar-prefix comparisons + +Returns: + + None + + """ + pass + + + def Resolve(self,hwnd:'Any',fFlags:'Any') -> 'None': + """ + Resolves a shell link by searching for the shell link object and updating the + +shell link path and its list of identifiers (if necessary) + +Args: + + hwnd(Any):The parent window of a dialog which will pop up if resolution fails. + fFlags(Any):One of the following constants:ValueDescriptionSLR_INVOKE_MSICall the Microsoft Windows Installer.SLR_NOLINKINFODisable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting SLR_NOLINKINFO disables both types of tracking.SLR_NO_UIDo not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, the high-order word of fFlags can be set to a time-out value that specifies the maximum amount of time to be spent resolving the link. The function returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration will be set to the default value of 3,000 milliseconds (3 seconds). To specify a value, set the high word of fFlags to the desired time-out duration, in milliseconds.SLR_NOUPDATEDo not update the link information.SLR_NOSEARCHDo not execute the search heuristics.SLR_NOTRACKDo not use distributed link tracking.SLR_UPDATEIf the link object has changed, update its path and list of identifiers. If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine whether or not the link object has changed. + +Returns: + + None + + """ + pass + + + def SetPath(self,path:'str') -> 'None': + """ + Sets the path and file name of a shell link object. + +Args: + + path(str):The path and filename of the link. + +Returns: + + None + + """ + pass + + +class PyIShellLinkDataList(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddDataBlock(self,DataBlock:'Any') -> 'None': + """ + Inserts a data block into the link + +Args: + + DataBlock(Any):Contents are dependent on type of data block being addedCommentsInput should be one of NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS, EXP_SPECIAL_FOLDER, EXP_DARWIN_LINK, or EXP_SZ_LINK. Expected form is indicated by the Signature member. + +Returns: + + None + + """ + pass + + + def CopyDataBlock(self,Sig:'Any') -> 'Any': + """ + Retrieves the specified data block from the link + +Args: + + Sig(Any):The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in + +Returns: + + Any:The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in + + + """ + pass + + + def GetFlags(self,) -> 'Any': + """ + Retrieves the link's flags + +Args: + + + +Returns: + + Any:PyIShellLinkDataList.GetFlags + +int = GetFlags()Retrieves the link's flags +Return ValueReturns combination of shellcon.SLDF_* flags + + + """ + pass + + + def RemoveDataBlock(self,Sig:'Any') -> 'None': + """ + Deletes one of the link's data blocks + +Args: + + Sig(Any):Identifies which block is to be removed, one of shellcon.*_SIG constants + +Returns: + + None + + """ + pass + + + def SetFlags(self,Flags:'Any') -> 'None': + """ + Sets the flags indicating which data blocks are present + +Args: + + Flags(Any):Combination of shellcon.SLDF_* flags + +Returns: + + None + + """ + pass + + +class PyIShellView(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,pmsg:'Any') -> 'Any': + """ + Description of TranslateAccelerator. + +Args: + + pmsg(Any):Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call + +Returns: + + Any:Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call + + + """ + pass + + + def EnableModeless(self,fEnable:'Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def UIActivate(self,uState:'Any') -> 'None': + """ + Description of UIActivate. + +Args: + + uState(Any):Description for uState + +Returns: + + None + + """ + pass + + + def Refresh(self,) -> 'None': + """ + Description of Refresh. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateViewWindow(self,psvPrevious:'Any',pfs:'Tuple[Any, Any]',psb:'Any',prcView:'Tuple[Any, Any, Any, Any]') -> 'Any': + """ + Description of CreateViewWindow. + +Args: + + psvPrevious(Any):Description for psvPrevious + pfs(Tuple[Any, Any]):Description for pfs + psb(Any):Description for psb + prcView(Tuple[Any, Any, Any, Any]):Description for prcViewReturn ValueThe result is an integer handle to the new window. + +Returns: + + Any:Description for prcViewReturn ValueThe result is an integer handle to the new window. + + + """ + pass + + + def DestroyViewWindow(self,) -> 'None': + """ + Description of DestroyViewWindow. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentInfo(self,) -> 'Any': + """ + Description of GetCurrentInfo. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SaveViewState(self,) -> 'None': + """ + Description of SaveViewState. + +Args: + + + +Returns: + + None + + """ + pass + + + def SelectItem(self,pidlItem:'Any',uFlags:'Any') -> 'None': + """ + Description of SelectItem. + +Args: + + pidlItem(Any):Description for pidlItem + uFlags(Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def GetItemObject(self,uItem:'Any',riid:'PyIID') -> 'Any': + """ + Description of GetItemObject. + +Args: + + uItem(Any):Description for uItem + riid(PyIID):Description for riid + +Returns: + + Any + + """ + pass + + +class PyISpecifyPropertyPages(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPages(self,) -> 'None': + """ + Description of GetPages. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIStorage(object): + """Structured storage compound storage object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateStream(self,Name:'Any',Mode:'Any',reserved1:'Any'=0,reserved2:'Any'=0) -> 'Any': + """ + Creates and opens a stream object with the specified name contained + +in this storage object. All elements within a storage object — both streams and other storage objects — are kept in + +the same name space. + +Args: + + Name(Any):Name of the new stream + Mode(Any):Access mode, storagecon.STGM_* + reserved1(Any):Reserved - must be zero. + reserved2(Any):Reserved - must be zero. + +Returns: + + Any + + """ + pass + + + def OpenStream(self,Name:'Any',reserved1:'Any',Mode:'Any',reserved2:'Any'=0) -> 'Any': + """ + Opens an existing stream object within this storage object in the + +specified access mode. + +Args: + + Name(Any):Name of stream to be opened + reserved1(Any):A reserved param. Always pass None. NULL is always passed to the COM function + Mode(Any):Access mode, storagecon.STGM_* + reserved2(Any):Reserved - must be zero. + +Returns: + + Any + + """ + pass + + + def CreateStorage(self,Name:'Any',Mode:'Any',StgFmt:'Any',reserved2:'Any'=0) -> 'Any': + """ + Creates and opens a new storage object nested within this storage + +object. + +Args: + + Name(Any):The name of the newly created stream. + Mode(Any):Access mode - combination of storagecon.STGM_* flags + StgFmt(Any):Documented as "reserved"! + reserved2(Any):Description for reserved2 + +Returns: + + Any + + """ + pass + + + def OpenStorage(self,Name:'Any',Priority:'Any',Mode:'Any',snbExclude:'Any',reserved:'Any'=0) -> 'Any': + """ + Opens an existing storage object with the specified name in the + +specified access mode. + +Args: + + Name(Any):Name of the storage, or None. + Priority(Any):If the pstgPriority parameter is not None, it is a PyIStorage object to a previous opening of an element of the storage object, usually one that was opened in priority mode. The storage object should be closed and re-opened according to grfMode. When the PyIStorage::OpenStorage method returns, pstgPriority is no longer valid - use the result value. If the pstgPriority parameter is None, it is ignored. + Mode(Any):Access mode - combination of storagecon.STGM_* flags (must include STGM_SHARE_EXCLUSIVE) + snbExclude(Any):Reserved for later - Must be None + reserved(Any):Reserved integer param. + +Returns: + + Any + + """ + pass + + + def CopyTo(self,rgiidExclude:'Tuple[Any, Any]',snbExclude:'Any',stgDest:'Any') -> 'None': + """ + Copies the entire contents of an open storage object to another storage object. + +Args: + + rgiidExclude(Tuple[Any, Any]):List of IID's to be excluded. Use empty seq to exclude all objects, or None to indicate no excludes. + snbExclude(Any):Reserved for later - Must be None + stgDest(Any):The open storage object into which this storage object is to be copied. The destination storage object can be a different implementation of the PyIStorage interface from the source storage object. Thus, IStorage::CopyTo can only use publicly available methods of the destination storage object. If stgDest is open in transacted mode, it can be reverted by calling its PyIStorage::Revert method. + +Returns: + + None + + """ + pass + + + def MoveElementTo(self,Name:'Any',stgDest:'Any',NewName:'Any',Flags:'Any') -> 'None': + """ + Copies or moves a substorage or stream from this storage object to another + +storage object. + +Args: + + Name(Any):A string that contains the name of the element in this storage object to be moved or copied. + stgDest(Any):PyIStorage for the destination storage object. + NewName(Any):A string that contains the new name for the element in its new storage object. + Flags(Any):Specifies whether to move or copy (storagecon.STGMOVE_MOVE or STGMOVE_COPY) + +Returns: + + None + + """ + pass + + + def Commit(self,grfCommitFlags:'Any') -> 'None': + """ + Ensures that any changes made to a storage object open in transacted mode are reflected + +in the parent storage; for a root storage, reflects the changes in the actual device, for example, a file on disk. + +For a root storage object opened in direct mode, this method has no effect except to flush all memory buffers to the + +disk. For non-root storage objects in direct mode, this method has no effect. + +Args: + + grfCommitFlags(Any):Controls how the changes are committed to the storage object. See the STGC enumeration for a definition of these values. + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + Discards all changes that have been made to the storage object since the last commit. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumElements(self,reserved1:'Any'=0,reserved2:'Any'=None,reserved3:'Any'=0) -> 'Any': + """ + Retrieves an enumerator object that can be used to enumerate the + +storage and stream objects contained within this storage object. + +Args: + + reserved1(Any):Reserved - must be zero. + reserved2(Any):A reserved param. Always pass None. NULL is always passed to the COM function + reserved3(Any):Reserved - must be zero. + +Returns: + + Any + + """ + pass + + + def DestroyElement(self,name:'str') -> 'None': + """ + Removes the specified storage or stream from this storage object. + +Args: + + name(str):The name of the element to be removed. + +Returns: + + None + + """ + pass + + + def RenameElement(self,OldName:'Any',NewName:'Any') -> 'None': + """ + Renames the specified substorage or stream in this storage object. + +Args: + + OldName(Any):The name of the substorage or stream to be changed. + NewName(Any):The new name for the specified sustorage or stream. + +Returns: + + None + + """ + pass + + + def SetElementTimes(self,name:'Any',ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': + """ + Sets the modification, access, and creation times of the specified storage + +element, if supported by the underlying file system. + +Args: + + name(Any):The name of the storage object element whose times are to be modified. If NULL, the time is set on the root storage rather than one of its elements. + ctime(PyTime):Either the new creation time for the element or None if the creation time is not to be modified. + atime(PyTime):Either the new access time for the element or None if the access time is not to be modified. + mtime(PyTime):Either the new modification time for the element or None if the modification time is not to be modified. + +Returns: + + None + + """ + pass + + + def SetClass(self,clsid:'PyIID') -> 'None': + """ + Assigns the specified CLSID to this storage object. + +Args: + + clsid(PyIID):The class identifier (CLSID) that is to be associated with the storage object. + +Returns: + + None + + """ + pass + + + def SetStateBits(self,grfStateBits:'Any',grfMask:'Any') -> 'None': + """ + Stores up to 32 bits of state information in this storage object. + +Args: + + grfStateBits(Any):Specifies the new values of the bits to set. No legal values are defined for these bits; they are all reserved for future use and must not be used by applications. + grfMask(Any):A binary mask indicating which bits in grfStateBits are significant in this call. + +Returns: + + None + + """ + pass + + + def Stat(self,grfStatFlag:'Any') -> 'Any': + """ + Retrieves the STATSTG structure for this open storage object. + +Args: + + grfStatFlag(Any):Specifies that some of the fields in the STATSTG structure are not returned, thus saving a memory allocation operation. Values are taken from the STATFLAG enumeration. + +Returns: + + Any + + """ + pass + + +class PyIStream(object): + """A Python interface to IStream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,numBytes:'Any') -> 'str': + """ + Read the specified number of bytes from the string. + +Args: + + numBytes(Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + +Returns: + + str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + + + """ + pass + + + def read(self,numBytes:'Any') -> 'str': + """ + Read the specified number of bytes from the string. + +Args: + + numBytes(Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + +Returns: + + str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + + + """ + pass + + + def Write(self,data:'str') -> 'None': + """ + Write data to a stream + +Args: + + data(str):The binary data to write. + +Returns: + + None + + """ + pass + + + def write(self,data:'str') -> 'None': + """ + Write data to a stream + +Args: + + data(str):The binary data to write. + +Returns: + + None + + """ + pass + + + def Seek(self,offset:'Any',origin:'Any') -> 'ULARGE_INTEGER': + """ + Changes the seek pointer to a new location. + +Args: + + offset(Any):The new location + origin(Any):Relative to where? + +Returns: + + ULARGE_INTEGER + + """ + pass + + + def SetSize(self,newSize:'ULARGE_INTEGER') -> 'None': + """ + Changes the size of the stream object. + +Args: + + newSize(ULARGE_INTEGER):The new size + +Returns: + + None + + """ + pass + + + def CopyTo(self,stream:'Any',cb:'ULARGE_INTEGER') -> 'ULARGE_INTEGER': + """ + Copies a specified number of bytes from the current seek pointer in the + +stream to the current seek pointer in another stream. + +Args: + + stream(Any):The stream to write to. + cb(ULARGE_INTEGER):The number of bytes to write.Return ValueThe return value is the number of bytes actually written. + +Returns: + + ULARGE_INTEGER:The number of bytes to write.Return ValueThe return value is the number of bytes actually written. + + + """ + pass + + + def Commit(self,flags:'Any') -> 'None': + """ + Ensures that any changes made to a stream object open in transacted mode are reflected in + +the parent storage. + +Args: + + flags(Any):Controls how changes are performed. + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def LockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'Any') -> 'None': + """ + Restricts access to a specified range of bytes in the stream. + +Args: + + offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. + cb(ULARGE_INTEGER):The number of bytes to restrict. + lockType(Any):Restrictions requested. + +Returns: + + None + + """ + pass + + + def UnLockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'Any') -> 'None': + """ + None + +Args: + + offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. + cb(ULARGE_INTEGER):The number of bytes to restrict. + lockType(Any):Restrictions requested. + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'Any': + """ + Creates a new stream object with its own seek pointer that references the + +same bytes as the original stream. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Stat(self,grfStatFlag:'Any'=0) -> 'Any': + """ + Returns information about the stream + +Args: + + grfStatFlag(Any):Flags. + +Returns: + + Any + + """ + pass + + +class PyITask(object): + """Python object that encapsulates the ITask interface, inherits all the methods of PyIScheduledWorkItem""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetApplicationName(self,ApplicationName:'Any') -> 'None': + """ + Specify which program the task will run + +Args: + + ApplicationName(Any):Program to execute + +Returns: + + None + + """ + pass + + + def GetApplicationName(self,) -> 'Any': + """ + Retrieve name of program that task will run + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetParameters(self,Parameters:'Any') -> 'None': + """ + Sets command line parameters + +Args: + + Parameters(Any):String containing command line parameters + +Returns: + + None + + """ + pass + + + def GetParameters(self,) -> 'Any': + """ + Returns command line parameters for task + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetWorkingDirectory(self,WorkingDirectory:'Any') -> 'None': + """ + Sets initial working directory for task + +Args: + + WorkingDirectory(Any):Initial working directory + +Returns: + + None + + """ + pass + + + def GetWorkingDirectory(self,) -> 'Any': + """ + Return working directory that the task will start out in + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetPriority(self,Priority:'Any') -> 'None': + """ + Sets priority for task + +Args: + + Priority(Any):One of REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS + +Returns: + + None + + """ + pass + + + def GetPriority(self,) -> 'Any': + """ + Gets priority that will be assigned to process when task starts + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetTaskFlags(self,dwFlags:'Any') -> 'None': + """ + Sets flag for task. + +Args: + + dwFlags(Any):None currently defined + +Returns: + + None + + """ + pass + + + def GetTaskFlags(self,) -> 'Any': + """ + Retrieve task flags (None currently defined) + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetMaxRunTime(self,MaxRunTimeMS:'Any') -> 'None': + """ + Sets maximun run time for task, use -1 to disable + +Args: + + MaxRunTimeMS(Any):Specified in milliseconds (use -1 to disable, not 0) + +Returns: + + None + + """ + pass + + + def GetMaxRunTime(self,) -> 'Any': + """ + Returns maximun run time for task + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyITaskScheduler(object): + """Interface to the Windows Task Scheduler""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetTargetComputer(self,Computer:'Any') -> 'None': + """ + Connect to another machine to manage its tasks + +Args: + + Computer(Any):Name of system to connect toCommentsLeading backslashes are required. Call will succeed without them, but no other methods will work. + +Returns: + + None + + """ + pass + + + def GetTargetComputer(self,) -> 'Any': + """ + Returns name of computer that the Task Scheduler is + +connected to + +Args: + + + +Returns: + + Any + + """ + pass + + + def Enum(self,) -> 'Tuple[str, ...]': + """ + Retrieve list of task names + +Args: + + + +Returns: + + Tuple[str, ...] + + """ + pass + + + def Activate(self,Name:'Any',riid:'PyIID') -> 'Any': + """ + Opens the specified task and returns an ITask interface for it + +Args: + + Name(Any):Name of task to retreive + riid(PyIID):IID to return, currently only IID_ITask accepted + +Returns: + + Any + + """ + pass + + + def Delete(self,TaskName:'Any') -> 'None': + """ + Delete task by name + +Args: + + TaskName(Any):Name of task to delete + +Returns: + + None + + """ + pass + + + def NewWorkItem(self,TaskName:'Any',rclsid:'PyIID',riid:'PyIID') -> 'Any': + """ + Creates a new task + +Args: + + TaskName(Any):Name of new task + rclsid(PyIID):Class id of work item, currently only CLSID_CTask (defaults if not passed in) + riid(PyIID):Interface IID to return, currently only IID_ITask (defaults if not passed in) + +Returns: + + Any + + """ + pass + + + def AddWorkItem(self,TaskName:'Any',WorkItem:'Any') -> 'None': + """ + Create a new scheduled task from PyITask object + +Args: + + TaskName(Any):Name of task to be created + WorkItem(Any):Existing PyITask objectCommentsThe PyItask passed in is modified in place and on success is associated with the new task, not the old one + +Returns: + + None + + """ + pass + + + def IsOfType(self,Name:'Any',riid:'PyIID') -> 'None': + """ + Check if named object supports specified interface + +Args: + + Name(Any):Name of object + riid(PyIID):Named object is checked that it supports the interface of this IID + +Returns: + + None + + """ + pass + + +class PyITaskTrigger(object): + """Python object that encapsulates the ITaskTrigger interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetTrigger(self,Trigger:'Any') -> 'None': + """ + Set trigger parameters from a PyTASK_TRIGGER object + +Args: + + Trigger(Any):Python object representing a TASK_TRIGGER struct + +Returns: + + None + + """ + pass + + + def GetTrigger(self,) -> 'Any': + """ + Retrieves trigger parms as a PyTASK_TRIGGER object + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTriggerString(self,) -> 'str': + """ + Build text summary of trigger + +Args: + + + +Returns: + + str + + """ + pass + + +class PyITaskbarList(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def HrInit(self,) -> 'None': + """ + Intializes the interface before use + +Args: + + + +Returns: + + None + + """ + pass + + + def AddTab(self,hwnd:'int') -> 'None': + """ + Places a window on the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def DeleteTab(self,hwnd:'int') -> 'None': + """ + Removes a window from the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def ActivateTab(self,hwnd:'int') -> 'None': + """ + Marks a window as the active tab on the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def SetActiveAlt(self,hwnd:'int') -> 'None': + """ + Sets the window as the active tab, without displaying it as pressed on the + +taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + +class PyITransferAdviseSink(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def UpdateProgress(self,SizeCurrent:'Any',SizeTotal:'Any',FilesCurrent:'Any',FilesTotal:'Any',FoldersCurrent:'Any',FoldersTotal:'Any') -> 'None': + """ + Gives an estimate of amount of work completed + +Args: + + SizeCurrent(Any):Bytes transferred so far + SizeTotal(Any):Total number of bytes + FilesCurrent(Any):Number of files processed already + FilesTotal(Any):Total number of files + FoldersCurrent(Any):Number of folders processed already + FoldersTotal(Any):Total number of folder + +Returns: + + None + + """ + pass + + + def UpdateTransferState(self,State:'Any') -> 'None': + """ + Notifies client of current operation state + +Args: + + State(Any):A TRANSFER_ADVISE_STATE value (shellcon.TS_*) + +Returns: + + None + + """ + pass + + + def ConfirmOverwrite(self,Source:'Any',DestParent:'Any',Name:'Any') -> 'Any': + """ + Asks user for permission to overwrite an existing item + +Args: + + Source(Any):The item that will replace existing item + DestParent(Any):Folder into which item will be placed + Name(Any):New name for item, or None if item is to keep original name + +Returns: + + Any + + """ + pass + + + def ConfirmEncryptionLoss(self,Source:'Any') -> 'Any': + """ + Notifies user when an item can't be encrypted at + +destination + +Args: + + Source(Any):Item that failed to be encrypted + +Returns: + + Any + + """ + pass + + + def FileFailure(self,Item:'Any',ItemName:'Any',Error:'Any') -> 'Tuple[Any, Any]': + """ + Notifies user of failure, and queries how to proceed + +Args: + + Item(Any):The shell item that caused the failure + ItemName(Any):Name of item if different than above, can be None + Error(Any):HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure + +Returns: + + Tuple[Any, Any]:HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure + + + """ + pass + + + def SubStreamFailure(self,Item:'Any',StreamName:'Any',Error:'Any') -> 'Any': + """ + Notifies user of failure on a substream, and queries how to + +proceed + +Args: + + Item(Any):The item whose stream couldn't be created + StreamName(Any):Name of the failed stream + Error(Any):HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled + +Returns: + + Any:HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled + + + """ + pass + + + def PropertyFailure(self,Item:'Any',key:'Any',Error:'Any') -> 'Any': + """ + Notifies user of failure to set an item's properties + +Args: + + Item(Any):The item whose property could not be set + key(Any):Identifies the property that caused the error, or None if all properties failed + Error(Any):HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or COPYENGINE_E_USERCANCELLED to cancel pending operations + +Returns: + + Any:HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or + +COPYENGINE_E_USERCANCELLED to cancel pending operations + + + """ + pass + + +class PyITransferDestination(object): + """Implemented by shell extensions that act as targets for item copy or move operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'Any') -> 'Any': + """ + Connects an advise sink + +Args: + + Sink(Any):Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise + +Returns: + + Any:Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise + + + """ + pass + + + def Unadvise(self,Cookie:'Any') -> 'None': + """ + Disconnects an advise sink + +Args: + + Cookie(Any):Connection identifier as returned by PyITransferDestination::Advise + +Returns: + + None + + """ + pass + + + def CreateItem(self,Name:'Any',Attributes:'Any',Size:'Any',Flags:'Any',riidItem:'PyIID',riidResources:'PyIID') -> 'Tuple[Any, Any, Any]': + """ + Requests that a new item be created + +Args: + + Name(Any):Filename to be created + Attributes(Any):File attributes + Size(Any):Size of file + Flags(Any):Combination of shellcon.TSF_* flags + riidItem(PyIID):Item interface to return + riidResources(PyIID):Resource interface to returnReturn ValueReturns the HRESULT and requested interfaces. Interfaces may be None if function returns one of the informational codes (shellcon.COPYENGINE_S_*) + +Returns: + + Tuple[Any, Any, Any]:Resource interface to return +Return ValueReturns the HRESULT and requested interfaces. Interfaces may be None if + +function returns one of the informational codes (shellcon.COPYENGINE_S_*) + + + """ + pass + + +class PyITransferMediumItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyITransferSource(object): + """Implemented by shell folders that can act as the source of shell item operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'Any') -> 'Any': + """ + Connects an advise sink to receive notifications + +Args: + + Sink(Any):Event sink to respond to notifications + +Returns: + + Any + + """ + pass + + + def Unadvise(self,Cookie:'Any') -> 'None': + """ + Disconnects an event sink + +Args: + + Cookie(Any):Connection id as returned by PyITransferSource::Advise + +Returns: + + None + + """ + pass + + + def SetProperties(self,proparray:'Any') -> 'None': + """ + Specifies changes to be applied to items' properties + +Args: + + proparray(Any):Property changes to be applied by PyITransferSource::ApplyPropertiesToItem + +Returns: + + None + + """ + pass + + + def OpenItem(self,Item:'Any',flags:'Any',riid:'PyIID') -> 'Tuple[Any, Any]': + """ + Initiates the copying of an item + +Args: + + Item(Any):The item to be copied. + flags(Any):Combination of shellcon.TSF_* flags + riid(PyIID):The interface to return + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def MoveItem(self,Item:'Any',ParentDst:'Any',NameDst:'Any',flags:'Any') -> 'Tuple[Any, Any]': + """ + Moves a shell item into another folder + +Args: + + Item(Any):Item to be moved + ParentDst(Any):The folder into which it will be moved + NameDst(Any):New name for item after move, None to keep same name + flags(Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions of expected actions for specific error codes. + +Returns: + + Tuple[Any, Any]:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None + +when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions + +of expected actions for specific error codes. + + + """ + pass + + + def RecycleItem(self,Source:'Any',ParentDest:'Any',flags:'Any') -> 'Tuple[Any, Any]': + """ + Moves an item to the recycle bin + +Args: + + Source(Any):The item to be recycled + ParentDest(Any):Shell item representing the recycle bin + flags(Any):Combination of shellcon.TSF_* flags + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def RemoveItem(self,Source:'Any',flags:'Any') -> 'Any': + """ + Deletes an item without recycling + +Args: + + Source(Any):The item to be deleted + flags(Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation + +Returns: + + Any:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation + + + """ + pass + + + def RenameItem(self,Source:'Any',NewName:'Any',flags:'Any') -> 'Tuple[Any, Any]': + """ + Renames a shell item + +Args: + + Source(Any):Item to be renamed + NewName(Any):The name to be given to the item + flags(Any):Combination of shellcon.TSF_* flags + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def LinkItem(self,Source:'Any',ParentDest:'Any',NewName:'Any',flags:'Any') -> 'Tuple[Any, Any]': + """ + Not implemented, according to MSDN + +Args: + + Source(Any):Description for psiSource + ParentDest(Any):Description for psiParentDest + NewName(Any):Description for NewName + flags(Any):Combination of shellcon.TSF_* flags + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def ApplyPropertiesToItem(self,Source:'Any') -> 'Any': + """ + None + +Args: + + Source(Any):Item whose properties are to be changed + +Returns: + + Any + + """ + pass + + + def GetDefaultDestinationName(self,Source:'Any',ParentDest:'Any') -> 'Any': + """ + Determines the name of an item as it would appear in a + +given folder + +Args: + + Source(Any):The item whose name is wanted + ParentDest(Any):The destination folder + +Returns: + + Any + + """ + pass + + + def EnterFolder(self,ChildFolderDest:'Any') -> 'Any': + """ + Informs the copy engine that a folder will be the target of a file + +operation + +Args: + + ChildFolderDest(Any):The destination folder for the operation + +Returns: + + Any + + """ + pass + + + def LeaveFolder(self,ChildFolderDest:'Any') -> 'Any': + """ + Informs the copy engine that the operation on a destination folder is + +finished + +Args: + + ChildFolderDest(Any):Destination folder + +Returns: + + Any + + """ + pass + + +class PyITypeComp(object): + """An object that implements the ITypeComp interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Bind(self,szName:'str',wflags:'Any'=0) -> 'Any': + """ + binds to a variable/type + +Args: + + szName(str):The name to bind to + wflags(Any):the bind flags + +Returns: + + Any + + """ + pass + + + def BindType(self,szName:'str') -> 'Any': + """ + binds to a type + +Args: + + szName(str):The name to bind to + +Returns: + + Any + + """ + pass + + +class PyITypeInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetContainingTypeLib(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the containing type library and the index of + +the type description within that type library. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetDocumentation(self,memberId:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the documentation string, + +the complete Help file name and path, and the context ID for the Help topic for a specified type description. + +Args: + + memberId(Any): + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetFuncDesc(self,memberId:'Any') -> 'Any': + """ + None + +Args: + + memberId(Any): + +Returns: + + Any + + """ + pass + + + def GetImplTypeFlags(self,index:'Any') -> 'Any': + """ + Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or + +base interface in a type description. + +Args: + + index(Any): + +Returns: + + Any + + """ + pass + + + def GetIDsOfNames(self,) -> 'Any': + """ + Maps between member names and member IDs, and parameter names and parameter + +IDs. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNames(self,memberId:'Any') -> 'Any': + """ + Retrieves the variable with the specified member ID (or the name of + +the property or method and its parameters) that correspond to the specified function ID. + +Args: + + memberId(Any): + +Returns: + + Any + + """ + pass + + + def GetTypeAttr(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRefTypeInfo(self,hRefType:'Any') -> 'Any': + """ + If a type description references other type descriptions, it + +retrieves the referenced type descriptions. + +Args: + + hRefType(Any): + +Returns: + + Any + + """ + pass + + + def GetRefTypeOfImplType(self,hRefType:'Any') -> 'Any': + """ + Retrieves the type description of the implemented interface types. + +Args: + + hRefType(Any):CommentsIf a type description describes a COM class, it retrieves the type description of the implemented interface types. For an interface, GetRefTypeOfImplType returns the type information for inherited interfaces, if any exist. + +Returns: + + Any + + """ + pass + + + def GetVarDesc(self,memberId:'Any') -> 'Any': + """ + None + +Args: + + memberId(Any): + +Returns: + + Any + + """ + pass + + + def GetTypeComp(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyITypeLib(object): + """An object that implements the ITypeLib interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentation(self,index:'Any') -> 'Any': + """ + Retrieves documentation information about the library. + +Args: + + index(Any):The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) + +Returns: + + Any:The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) + + + """ + pass + + + def GetLibAttr(self,) -> 'Any': + """ + Retrieves the libraries attributes + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTypeComp(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTypeInfo(self,index:'Any') -> 'Any': + """ + Retrieves the specified type description in the library. + +Args: + + index(Any):The index of the type description within the library + +Returns: + + Any + + """ + pass + + + def GetTypeInfoCount(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTypeInfoOfGuid(self,iid:'PyIID') -> 'Any': + """ + Retrieves the type info of the specified GUID. + +Args: + + iid(PyIID):GUID of the type description. + +Returns: + + Any + + """ + pass + + + def GetTypeInfoType(self,index:'Any') -> 'Any': + """ + Retrieves the type of a type description. + +Args: + + index(Any):The index of the type description within the library + +Returns: + + Any + + """ + pass + + +class PyIUniformResourceLocator(object): + """Interface to an internet shortcut""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetURL(self,) -> 'Any': + """ + Returns the URL for the shortcut + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetURL(self,URL:'Any',InFlags:'Any'=0) -> 'None': + """ + Sets the URL for the shortcut + +Args: + + URL(Any):The url to be set + InFlags(Any):One of the shellcon.IURL_SETURL* flags + +Returns: + + None + + """ + pass + + + def InvokeCommand(self,Verb:'Any',Flags:'Any'=0,hwndParent:'int'=0) -> 'Any': + """ + Performs one of the object's predefined actions + +Args: + + Verb(Any):The verb to be invoked + Flags(Any):Combination of shellcon.IURL_INVOKECOMMAND_* flags + hwndParent(int):Handle to parent window + +Returns: + + Any + + """ + pass + + +class PyIUnknown(object): + """The base object for all PythonCOM objects. Wraps a COM IUnknown object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryInterface(self,iid:'Any',useIID:'Any'=None) -> 'Any': + """ + Queries an object for a specific interface. + +Args: + + iid(Any):The IID requested. + useIID(Any):If provided and not None, will return an interface for the specified IID if (and only if) a native interface can not be supported. If the interface specified by iid is natively supported, this option is ignored.CommentsThe useIID parameter is a very dangerous option, and should only be used when you are sure you need it! By specifying this parameter, you are telling the COM framework that regardless of the true type of the result (as specified by iid), a Python wrapper of type useIID will be created. If iid does not derive from useIID, then it is almost certain that using the object will cause an Access Violation. For example, this option can be used to obtain a PyIUnknown object if pythoncom does not natively support the interface. Another example might be to return an unsupported persistence interface as a PyIPersist instance. For backwards compatibility: the integer 0 implies None, and the integer 1 implies IID_IUnknown.Return ValueThe result is always an object derived from PyIUnknown. Any error (including E_NOINTERFACE) will generate a com_error exception. + +Returns: + + Any:If provided and not None, will return an + +interface for the specified IID if (and only if) a native interface can not be supported. + +If the interface specified by iid is natively supported, this option is ignored. +Comments + +The useIID parameter is a very dangerous option, and should only + +be used when you are sure you need it! + +By specifying this parameter, you are telling the COM framework that regardless + +of the true type of the result (as specified by iid), a Python wrapper + +of type useIID will be created. If iid does not derive from useIID, + +then it is almost certain that using the object will cause an Access Violation. + +For example, this option can be used to obtain a PyIUnknown object if + +pythoncom does not natively support the interface. + +Another example might be to return an unsupported persistence interface as a + +PyIPersist instance. + +For backwards compatibility: the integer 0 implies None, and the + +integer 1 implies IID_IUnknown. +Return ValueThe result is always an object derived from PyIUnknown. + +Any error (including E_NOINTERFACE) will generate a com_error exception. + + + """ + pass + + +class PyIViewObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Draw(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any',hdcTargetDev:'Any',hdcDraw:'Any',arg:'Tuple[Any, Any, Any, Any]',arg1:'Tuple[Any, Any, Any, Any]',funcContinue:'Any',obContinue:'Any') -> 'None': + """ + Description of Draw. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + lindex(Any):Description for lindex + aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + hdcTargetDev(Any):Description for hdcTargetDev + hdcDraw(Any):Description for hdcDraw + arg(Tuple[Any, Any, Any, Any]):Bounds rectangle. + arg1(Tuple[Any, Any, Any, Any]):WBounds rectangle. + funcContinue(Any):A continue function. + obContinue(Any):Value passed to the function. + +Returns: + + None + + """ + pass + + + def GetColorSet(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any',hicTargetDev:'Any') -> 'None': + """ + Description of GetColorSet. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + lindex(Any):Description for lindex + aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + hicTargetDev(Any):Description for hicTargetDev + +Returns: + + None + + """ + pass + + + def Freeze(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any') -> 'None': + """ + Description of Freeze. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + lindex(Any):Description for lindex + aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + +Returns: + + None + + """ + pass + + + def Unfreeze(self,dwFreeze:'Any') -> 'None': + """ + Description of Unfreeze. + +Args: + + dwFreeze(Any):Description for dwFreeze + +Returns: + + None + + """ + pass + + + def SetAdvise(self,aspects:'Any',advf:'Any',pAdvSink:'Any') -> 'None': + """ + Description of SetAdvise. + +Args: + + aspects(Any):Description for aspects + advf(Any):Description for advf + pAdvSink(Any):Description for pAdvSink + +Returns: + + None + + """ + pass + + + def GetAdvise(self,) -> 'None': + """ + Description of GetAdvise. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIViewObject2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetExtent(self,dwDrawAspect:'Any',lindex:'Any',targetDevice:'Any') -> 'None': + """ + Description of GetExtent. + +Args: + + dwDrawAspect(Any):Description for dwDrawAspect + lindex(Any):Description for lindex + targetDevice(Any):Description for lindex + +Returns: + + None + + """ + pass + + +class PyMAPINAMEIDArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyOLEMENUGROUPWIDTHS(object): + """Tuple containing 6 ints indicating nbr of options in each menu group""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROPERTYKEY(object): + """A tuple of a fmtid and property id (IID, int) that uniquely identifies a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROPVARIANT(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def vt(self)->'Any': + """The variant type, a combination of VARENUM values including flags. (read only)MethodsGetValueReturns an object representing the variant value ToStringReturns the value as a string ChangeTypeCoerce to a different variant type """ + pass + + + def GetValue(self,) -> 'Any': + """ + Returns an object representing the variant value + +Args: + + + +Returns: + + Any + + """ + pass + + + def ToString(self,) -> 'Any': + """ + Returns the value as a string + +Args: + + + +Returns: + + Any + + """ + pass + + + def ChangeType(self,Type:'Any',Flags:'Any'=0) -> 'Any': + """ + Coerce to a different variant type + +Args: + + Type(Any):New variant type, combination of pythoncom.VT_* values + Flags(Any):Reserved (PROPVAR_CHANGE_FLAGS)Win32 API References + +Returns: + + Any + + """ + pass + + +class PySAndRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySBinaryArray(object): + """A sequence of strings containing binary data.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySBitMaskRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySContentRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySExistRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySHELL_ITEM_RESOURCE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySNotRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySOrRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropTagArray(object): + """A sequence of integers""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropValue(object): + """A MAPI property value. Property values can either be passed from + +python into MAPI functions, or returned from MAPI functions to Python.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropValueArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropertyRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRow(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRowSet(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySSortOrderItem(object): + """An item in a SortOrderSet.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySSortOrderSet(object): + """An object describing a SortOrderSet.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySTGMEDIUM(object): + """A STGMEDIUM object represents a COM STGMEDIUM structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def tymed(self)->'Any': + """An integer indicating the type of data in the stgmedium""" + pass + + + @property + def data(self)->'Any': + """The data in the stgmedium. The result depends on the value of the 'tymed' property of the PySTGMEDIUM object.tymedResult TypeTYMED_GDIAn integer GDI handleTYMED_MFPICTAn integer METAFILE handleTYMED_ENHMFAn integer ENHMETAFILE handleTYMED_HGLOBALA string with the bytes of the global memory object.TYMED_FILEA string/unicode filenameTYMED_ISTREAMA PyIStream objectTYMED_ISTORAGEA PyIStorage object""" + pass + + + @property + def data_handle(self)->'Any': + """The raw 'integer' representation of the data. For TYMED_HGLOBAL, this is the handle rather than the string data. For the string and interface types, this is an integer holding the pointer.""" + pass + + + def set(self,tymed:'Any',data:'Any') -> 'None': + """ + Sets the type and data of the object. + +Args: + + tymed(Any):The type of the data + data(Any): + +Returns: + + None + + """ + pass + + +class PyTASK_TRIGGER(object): + """Python object representing a TASK_TRIGGER structure via the structmember Api""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class RTF_WCSINFO(object): + """A tuple representing a RTF_WCSINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SHFILEINFO(object): + """A tuple representing a SHFILEINFO structure + +Represented as a tuple of (hIcon, iIcon, dwAttributes, displayName, typeName)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SHFILEOPSTRUCT(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_ACCESS(object): + """Tuple of 4 items representing SI_ACCESS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_INHERIT_TYPE(object): + """Tuple of 3 items describing a method of inheritance""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_OBJECT_INFO(object): + """Six-tuple representing SI_OBJECT_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class STATSTG(object): + """A tuple representing a STATSTG structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TLIBATTR(object): + """Type library attributes are represented as a tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TYPEATTR(object): + """A TYPEATTR object represents a COM TYPEATTR structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def iid(self)->'PyIID': + """The IID""" + pass + + + @property + def lcid(self)->'Any': + """The lcid""" + pass + + + @property + def memidConstructor(self)->'Any': + """ID of constructor""" + pass + + + @property + def memidDestructor(self)->'Any': + """ID of destructor""" + pass + + + @property + def cbSizeInstance(self)->'Any': + """The size of an instance of this type""" + pass + + + @property + def typekind(self)->'Any': + """The kind of type this information describes. One of the win32con.TKIND_* constants.""" + pass + + + @property + def cFuncs(self)->'Any': + """Number of functions.""" + pass + + + @property + def cVars(self)->'Any': + """Number of variables/data members.""" + pass + + + @property + def cImplTypes(self)->'Any': + """Number of implemented interfaces.""" + pass + + + @property + def cbSizeVft(self)->'Any': + """The size of this type's VTBL""" + pass + + + @property + def cbAlignment(self)->'Any': + """Byte alignment for an instance of this type.""" + pass + + + @property + def wTypeFlags(self)->'Any': + """One of the pythoncom TYPEFLAG_""" + pass + + + @property + def wMajorVerNum(self)->'Any': + """Major version number.""" + pass + + + @property + def wMinorVerNum(self)->'Any': + """Minor version number.""" + pass + + + @property + def tdescAlias(self)->'Any': + """If TypeKind == pythoncom.TKIND_ALIAS, specifies the type for which this type is an alias.""" + pass + + + @property + def idldeskType(self)->'Any': + """IDL attributes of the described type.""" + pass + + +class TYPEDESC(object): + """A typedesc is a complicated, recursive object, + +It may be either a simple Python type, or a tuple of (indirectType, object), where object + +may be a simple Python type, or a tuple of etc ...""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class VARDESC(object): + """A VARDESC object represents a COM VARDESC structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def memid(self)->'Any': + """The dispid of the member""" + pass + + + @property + def value(self)->'Union[Any]': + """A value for the variant. If PERINSTANCE then an offset into the instance, otherwise a variant converted to a Python object.""" + pass + + + @property + def elemdescVar(self)->'Any': + """Object describing the member.""" + pass + + + @property + def varFlags(self)->'Any': + """Variable flags""" + pass + + + @property + def varkind(self)->'Any': + """Kind flags.""" + pass + + +class CHARFORMAT(object): + """Describes a CHARFORMAT tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class CREATESTRUCT(object): + """A representation of a Windows CREATESTRUCT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LV_COLUMN(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LV_ITEM(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PARAFORMAT(object): + """Describes a PARAFORMAT tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyAssocCObject(object): + """An internal class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyAssocObject(object): + """An internal class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AttachObject(self,) -> 'None': + """ + Attaches a Python object for lookup of "virtual" functions. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAttachedObject(self,) -> 'Any': + """ + Returned the attached Python object, or None. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCBitmap(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateCompatibleBitmap(self,dc:'Any',width:'Any',height:'Any') -> 'None': + """ + Creates a bitmap compatible with the specified device context. + +Args: + + dc(Any):Specifies the device context. + width(Any):The width (in bits) of the bitmap + height(Any):The height (in bits) of the bitmap. + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'Tuple[Any, Any]': + """ + Returns the size of the bitmap object. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetHandle(self,) -> 'Any': + """ + Returns the HBITMAP for a bitmap object + +Args: + + + +Returns: + + Any + + """ + pass + + + def LoadBitmap(self,idRes:'Any',obDLL:'Any'=None) -> 'None': + """ + Loads a bitmap from a DLL object. + +Args: + + idRes(Any):The resource ID of the bitmap + obDLL(Any):The DLL object to load from. + +Returns: + + None + + """ + pass + + + def LoadBitmapFile(self,fileObject:'Any') -> 'None': + """ + Loads a bitmap (.BMP) format + +from a file object. + +Args: + + fileObject(Any):The file object to load the .BMP format file from. + +Returns: + + None + + """ + pass + + + def LoadPPMFile(self,fileObject:'Any',cols:'Any',rows:'Any') -> 'None': + """ + Loads a bitmap in Portable Pix Map (PPM) format + +from a file object. + +Args: + + fileObject(Any):The file object to load the PPM format file from. + cols(Any):The number of columns in the bitmap. + rows(Any):The number of rows in the bitmap. + +Returns: + + None + + """ + pass + + + def Paint(self,dcObject:'Any',arg:'Tuple[Any, Any, Any, Any]',arg1:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Paint a bitmap. + +Args: + + dcObject(Any):The DC object to paint the bitmap to. + arg(Tuple[Any, Any, Any, Any]):The destination rectangle to paint to. + arg1(Tuple[Any, Any, Any, Any]):The source rectangle to paint from. + +Returns: + + None + + """ + pass + + + def GetInfo(self,) -> 'Any': + """ + Returns the BITMAP structure info + +Args: + + + +Returns: + + Any:PyCBitmap.GetInfo + +dict = GetInfo()Returns the BITMAP structure info +Return ValueA dictionary of integers, keyed by the following strings: + +bmType + +bmWidth + +bmHeight + +bmWidthBytes + +bmPlanes + +bmBitsPixel + + + """ + pass + + + def GetBitmapBits(self,asString:'Any'=0) -> 'Union[Any, str]': + """ + Returns the bitmap bits. + +Args: + + asString(Any):If False, the result is a tuple of integers, if True, the result is a Python string + +Returns: + + Union[Any, str] + + """ + pass + + + def SaveBitmapFile(self,dcObject:'Any',Filename:'str') -> 'Any': + """ + Saves a bitmap to a file. + +Args: + + dcObject(Any):The DC object that has rendered the bitmap. + Filename(str):The file to save the bitmap to + +Returns: + + Any + + """ + pass + + +class PyCBrush(object): + """An object encapsulating an MFC PyCBrush class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateSolidBrush(self,) -> 'None': + """ + Initializes a brush with a specified solid color. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSafeHandle(self,) -> 'Any': + """ + Retrieves the HBRUSH for the brush as an integer + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCButton(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,caption:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the window for a new button object. + +Args: + + caption(str):The caption (text) for the button. + style(Any):The style for the button. Use any of the win32con.BS_* constants. + rect(Tuple[Any, Any, Any, Any]):The size and position of the button. + parent(Any):The parent window of the button. Usually a PyCDialog. + _id(Any):The buttons control ID. + +Returns: + + None + + """ + pass + + + def GetBitmap(self,) -> 'Any': + """ + Get the button's bitmap + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetBitmap(self,hBitmap:'Any'=1) -> 'Any': + """ + Set the button's bitmap + +Args: + + hBitmap(Any):Handle of the new bitmap + +Returns: + + Any + + """ + pass + + + def GetCheck(self,) -> 'Any': + """ + Retrieves the check state of a radio button or check box. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetCheck(self,idCheck:'Any') -> 'None': + """ + Sets or resets the state of a radio button or check box. + +Args: + + idCheck(Any):The ID of the button. + +Returns: + + None + + """ + pass + + + def GetState(self,) -> 'Any': + """ + Returns the state of the button. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetState(self,bHighlight:'Any') -> 'Any': + """ + Sets the state of the button. + +Args: + + bHighlight(Any):The new state for the button.CommentsHighlighting affects the exterior of a button control. It has no effect on the check state of a radio button or check box. + +Returns: + + Any + + """ + pass + + + def GetButtonStyle(self,) -> 'Any': + """ + Gets the style of the button. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetButtonStyle(self,style:'Any',bRedraw:'Any'=1) -> 'Any': + """ + Sets the style of the button. + +Args: + + style(Any):The new style for the button. + bRedraw(Any):Should the button be redrawn? + +Returns: + + Any + + """ + pass + + +class PyCCmdTarget(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BeginWaitCursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def EndWaitCursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def HookCommand(self,obHandler:'Any',_id:'Any') -> 'Any': + """ + Hook a windows command handler. + +Args: + + obHandler(Any):The handler for the command message. This must be a callable object. + _id(Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives command notification messages with the specified ID. Command notification messages are usually sent in response to menu or toolbar commands. When updating a user interface element, Pythonwin will first check if a handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone determines the state of the interface object. If no Update handler exists, PythonWin will automatically enable a menu/toolbar item if a command handler exists The handler will be called with 2 arguments * The command id being handled. * The command notification code. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed. This method is best suited to handling messages from user interface elements, such as menus, toolbars, etc. To handle notification messages from a control, you should use PyCCmdTarget::HookNotifyReturn ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID of the command to be handled, or zero to handle all command messages.Comments + +obHandler will be called as the application receives command notification messages with the specified ID. + +Command notification messages are usually sent in response to menu or toolbar commands. + +When updating a user interface element, Pythonwin will first check if a + +handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone + +determines the state of the interface object. If no Update handler exists, + +PythonWin will automatically enable a menu/toolbar item if a command handler exists + +The handler will be called with 2 arguments + +* The command id being handled. + +* The command notification code. + +If the handler returns TRUE, then the command will be passed on to the + +default handler, otherwise the message will be consumed. + +This method is best suited to handling messages from user interface + +elements, such as menus, toolbars, etc. To handle notification messages from a control, + +you should use PyCCmdTarget::HookNotify +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookCommandUpdate(self,obHandler:'Any',_id:'Any') -> 'Any': + """ + Hook a windows command update handler. + +Args: + + obHandler(Any):The handler for the command message. This must be a callable object. + _id(Any):The ID of the command to be handled.CommentsThe handler object passed will be called as the application updates user interface elements with the specified ID. See PyCCmdTarget::HookCommand for a description of the rules used to determine command routing and updating.Return ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID of the command to be handled.Comments + +The handler object passed will be called as + +the application updates user interface elements + +with the specified ID. + +See PyCCmdTarget::HookCommand for a description + +of the rules used to determine command routing and updating. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookOleEvent(self,) -> 'Any': + """ + Hook an OLE Event. + +Args: + + + +Returns: + + Any:PyCCmdTarget.HookOleEvent + +object = HookOleEvent()Hook an OLE Event. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookNotify(self,obHandler:'Any',_id:'Any') -> 'Any': + """ + Hook a windows command handler. + +Args: + + obHandler(Any):The handler for the command message. This must be a callable object. + _id(Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives control notification messages. These may also be handled via PyCCmdTarget::HookCommand, but this method is specific to control notifications, and therefore provides more information.The handler will be called with 2 arguments A tuple describing standard notification information. A tuple describing extra notification params, or an integer containing the address of the first byte of the extended information. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed.Certain notification codes are recognised internally, and these are converted to a Python tuple. If the extra information is not recognised, the address is passed. These addresses could be extracted using win32ui::GetBytes and the struct module, or using Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program can install certain knowledge about handlers, but this has not been implemented.)Return ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID of the command to be handled, or zero to handle all command messages.Comments + +obHandler will be called as the application receives control notification messages. + +These may also be handled via PyCCmdTarget::HookCommand, but this method is specific + +to control notifications, and therefore provides more information. + +The handler will be called with 2 arguments + +A tuple describing standard notification information. + +A tuple describing extra notification params, or an integer containing the address of the first byte of the + +extended information. If the handler returns TRUE, then the command will be passed on to the default handler, + +otherwise the message will be consumed. + +Certain notification codes are recognised internally, and these are converted to a Python tuple. + +If the extra information is not recognised, the address is passed. These addresses could be + +extracted using win32ui::GetBytes and the struct module, or using + +Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program + +can install certain knowledge about handlers, but this has not been implemented.) +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def RestoreWaitCursor(self,) -> 'None': + """ + Restores the appropriate hourglass cursor after the system cursor has + +changed. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCCmdUI(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def m_nIndex(self)->'Any': + """""" + pass + + + @property + def m_nID(self)->'Any': + """""" + pass + + + @property + def m_pMenu(self)->'Any': + """""" + pass + + + @property + def m_pSubMenu(self)->'Any': + """""" + pass + + + def Enable(self,bEnable:'Any'=1) -> 'None': + """ + Enables or disables the user-interface item for this command. + +Args: + + bEnable(Any):TRUE if the item should be enabled, false otherwise. + +Returns: + + None + + """ + pass + + + def SetCheck(self,state:'Any'=1) -> 'None': + """ + Sets the check state of the user-interface item for this command. + +Args: + + state(Any):0 for unchecked, 1 for checked, or 2 for indeterminate. + +Returns: + + None + + """ + pass + + + def SetRadio(self,bOn:'Any'=1) -> 'None': + """ + Like the SetCheck member function, but operates on radio groups. + +Args: + + bOn(Any):TRUE if the item should be enabled, false otherwise. + +Returns: + + None + + """ + pass + + + def SetText(self,text:'str') -> 'None': + """ + Sets the text for the user-interface item for this command. + +Args: + + text(str):The text for the interface element. + +Returns: + + None + + """ + pass + + + def ContinueRouting(self,) -> 'None': + """ + Tells the command-routing mechanism to continue routing the current message down + +the chain of handlers. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCColorDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetColor(self,) -> 'Any': + """ + Determines the selected color. + +Args: + + + +Returns: + + Any + + """ + pass + + + def DoModal(self,) -> 'Any': + """ + Displays a dialog and allows the user to make a selection. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSavedCustomColors(self,) -> 'Any': + """ + Returns the saved custom colors. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetCurrentColor(self,color:'Any') -> 'None': + """ + Sets the currently selected color. + +Args: + + color(Any):The color to set.MFC References + +Returns: + + None + + """ + pass + + + def SetCustomColors(self,) -> 'None': + """ + Sets one or more custom colors + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCustomColors(self,) -> 'Tuple[Any, ...]': + """ + Gets the 16 currently defined custom colors + +Args: + + + +Returns: + + Tuple[Any, ...] + + """ + pass + + +class PyCComboBox(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddString(self,_object:'Any') -> 'Any': + """ + Adds a string to a combobox. + +Args: + + _object(Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References + +Returns: + + Any:CComboBox::AddString +Return ValueThe zero based index of the new string. + + + """ + pass + + + def DeleteString(self,pos:'Any') -> 'Any': + """ + Deletes an item from a combobox. + +Args: + + pos(Any):The zero based index of the item to delete.MFC References + +Returns: + + Any:CComboBox::DeleteString +Return ValueThe count of the items remaining in the list. + + + """ + pass + + + def Dir(self,attr:'Any',wild:'str') -> 'Any': + """ + Fills the list portion of a combobox with a directory listing. + +Args: + + attr(Any):The attributes of the files to locate + wild(str):A file specification string - eg, *.*MFC References + +Returns: + + Any:CComboBox::Dir +Return ValueThe index of the last file name added to the list. + + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Returns the count of items in the combobox. + +Args: + + + +Returns: + + Any:CListBox::GetCount +Return ValueReturns the number of items currently in the combobox. + + + """ + pass + + + def GetCurSel(self,) -> 'Any': + """ + Returns the index of the currently selected item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetEditSel(self,) -> 'Any': + """ + Returns the selection of the edit control portion of a combo box. + +Args: + + + +Returns: + + Any:CComboBox::GetEditSel +Return ValueA 32-bit value that contains the starting position in the low-order word and + +the position of the first nonselected character after the end of + +the selection in the high-order word. If this function is used on a combo box + +without an edit control, an exception is raised. + + + """ + pass + + + def GetExtendedUI(self,) -> 'Any': + """ + Indicates if the combo has the extended interface. + +Args: + + + +Returns: + + Any:CComboBox::GetExtendedUI +Return ValueNonzero if the combo box has the extended user interface; otherwise 0. + + + """ + pass + + + def GetItemData(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific object associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetItemValue(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetLBText(self,index:'Any') -> 'str': + """ + Gets the string from the list of a combo box. + +Args: + + index(Any):The index of the item to return the string for.Return ValueThe requested string. If index does not specify a valid index, no exception is raised. + +Returns: + + str:The index of the item to return the string for.Return ValueThe requested string. If index does + +not specify a valid index, no exception is raised. + + + """ + pass + + + def GetLBTextLen(self,index:'Any') -> 'Any': + """ + Returns the length of a string in the list of a combobox. + +Args: + + index(Any):The index of the item to return the length of.MFC References + +Returns: + + Any + + """ + pass + + + def InsertString(self,pos:'Any',_object:'Any') -> 'Any': + """ + Insert a string into a combobox. + +Args: + + pos(Any):The zero based index in the combobox to insert the new string + _object(Any):The object to be added to the comboboxMFC References + +Returns: + + Any:CComboBox::InsertString +Return ValueThe zero based index of the new string added. + + + """ + pass + + + def LimitText(self,_max:'Any') -> 'Any': + """ + Limits the amount of text the edit portion of a combo box can hold. + +Args: + + _max(Any):The maximum number of characters the user can enter. If zero, the size is set to (virtually) unlimited.MFC References + +Returns: + + Any + + """ + pass + + + def ResetContent(self,) -> 'None': + """ + Clear all the items from a combobox. + +Args: + + + +Returns: + + None + + """ + pass + + + def SelectString(self,after:'Any',string:'str') -> 'None': + """ + Searches for a combobox item that matches the specified string, and selects it. + +Args: + + after(Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire combobox. + string(str):The string to search for.MFC References + +Returns: + + None:CComboBoxBox::SelectString +Return ValueThe return value is always None - an exception is raised if the string can not be located. + + + """ + pass + + + def SetCurSel(self,index:'Any') -> 'None': + """ + Selects an item in a combobox. + +Args: + + index(Any):The zero based index of the item to select.MFC References + +Returns: + + None + + """ + pass + + + def SetEditSel(self,start:'Any',end:'Any') -> 'None': + """ + Sets the selection in the edit control portion of a combo box. + +Args: + + start(Any):Specifies the starting position. If the starting position is set to -1, then any existing selection is removed. + end(Any):Specifies the ending position. If the ending position is set to -1, then all text from the starting position to the last character in the edit control is selected.MFC References + +Returns: + + None:PyCComboBox::SetEditSel +Return ValueThe return value is always None - an exception is raised if the combo is a dropdown style, or does not + +have an edit control. + + + """ + pass + + + def SetExtendedUI(self,bExtended:'Any'=1) -> 'None': + """ + Selects the Extended UI mode for a combo box. + +Args: + + bExtended(Any):Indicates if the combo should have the extended user interface.CommentsA combo box with the Extended UI flag set can be identified in the following ways:~ Clicking the static control displays the list box only for combo boxes with the CBS_DROPDOWNLIST style.~ Pressing the DOWN ARROW key displays the list box (F4 is disabled).~ Scrolling in the static control is disabled when the item list is not visible (the arrow keys are disabled).MFC References + +Returns: + + None + + """ + pass + + + def SetItemData(self,item:'Any',Data:'Any') -> 'Any': + """ + Sets the item's application-specific object value. + +Args: + + item(Any):Index of the item whose Data is to be set. + Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + Any + + """ + pass + + + def SetItemValue(self,item:'Any',data:'Any') -> 'Any': + """ + Sets the item's application-specific value. + +Args: + + item(Any):Index of the item whose Data is to be set. + data(Any):New value for the data. + +Returns: + + Any + + """ + pass + + + def ShowDropDown(self,bShowIt:'Any'=1) -> 'None': + """ + Shows or hides the listbox portion of a combo box. + +Args: + + bShowIt(Any):Indicates if the listbox should be shown or hidden. + +Returns: + + None + + """ + pass + + +class PyCCommonDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCControl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCControlBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dockSite(self)->'Any': + """Current dock site, if dockable""" + pass + + + @property + def dockBar(self)->'Any': + """Current dock bar, if dockable""" + pass + + + @property + def dockContext(self)->'Any': + """Used during dragging""" + pass + + + @property + def dwStyle(self)->'Any': + """creation style (used for layout)""" + pass + + + @property + def dwDockStyle(self)->'Any': + """indicates how bar can be docked""" + pass + + + def CalcDynamicLayout(self,length:'Any',dwMode:'Any') -> 'Any': + """ + The framework calls this member function to calculate the dimensions of + +a dynamic toolbar. + +Args: + + length(Any):The requested dimension of the control bar, either horizontal or vertical, depending on dwMode. + dwMode(Any):A combination of flags. + +Returns: + + Any + + """ + pass + + + def CalcFixedLayout(self,bStretch:'Any',bHorz:'Any') -> 'Any': + """ + Calculates the horizontal size of a control bar + +Args: + + bStretch(Any):Indicates whether the bar should be stretched to the size of the frame. The bStretch parameter is nonzero when the bar is not a docking bar (not available for docking) and is 0 when it is docked or floating (available for docking). + bHorz(Any):Indicates that the bar is horizontally or vertically oriented. + +Returns: + + Any + + """ + pass + + + def EnableDocking(self,style:'Any') -> 'None': + """ + pecifies whether the control bar supports docking and the sides of its parent + +window. + +Args: + + style(Any):Enables a control bar to be docked. + +Returns: + + None + + """ + pass + + + def EraseNonClient(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBarStyle(self,) -> 'Any': + """ + Retrieves the control bar style settings. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Returns the number of non-HWND elements in the control bar. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDockingFrame(self,) -> 'Any': + """ + Returns the frame window to which a control bar is docked. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsFloating(self,) -> 'Any': + """ + Returns a nonzero value if the control bar in question is a floating control + +bar. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetBarStyle(self,style:'Any') -> 'None': + """ + Modifies the control bar style settings. + +Args: + + style(Any):The new style + +Returns: + + None + + """ + pass + + + def ShowWindow(self,) -> 'Any': + """ + Shows the toolbar, and recalculates the button layout. + +Args: + + + +Returns: + + Any:PyCControlBar.ShowWindow + +int = ShowWindow()Shows the toolbar, and recalculates the button layout. +Comments + +This method is provided for convenience. For further details, see + +PyCWnd::ShowWindow and PyCFrameWnd::RecalcLayout +Return ValueThe return value is that returned from PyCWnd::ShowWindow + + + """ + pass + + +class PyCCtrlView(object): + """A class which implementes a CCtrlView (ie, a view based on a dialog resource.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCDC(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AbortDoc(self,) -> 'None': + """ + Aborts a print job + +Args: + + + +Returns: + + None + + """ + pass + + + def Arc(self,rect:'Tuple[Any, Any, Any, Any]',pointStart:'Tuple[Any, Any]',pointEnd:'Tuple[Any, Any]') -> 'None': + """ + Draws an eliptical arc. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangle + pointStart(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. + pointEnd(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsThe arc drawn by using the function is a segment of the ellipse defined by the specified bounding rectangle. The actual starting point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified starting point intersects the ellipse. The actual ending point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified ending point intersects the ellipse. The arc is drawn in a counterclockwise direction. Since an arc is not a closed figure, it is not filled. Both the width and height of the rectangle must be greater than 2 units and less than 32,767 units.MFC References + +Returns: + + None:CDC::Arc +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def BeginPath(self,) -> 'None': + """ + Opens a path bracket in the device context + +Args: + + + +Returns: + + None + + """ + pass + + + def BitBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',dc:'Any',srcPos:'Tuple[Any, Any]',rop:'Any') -> 'None': + """ + Copies a bitmap from the source device context to this device context. + +Args: + + destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + dc(Any):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. + srcPos(Tuple[Any, Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. + rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def Chord(self,rect:'Tuple[Any, Any, Any, Any]',pointStart:'Tuple[Any, Any]',pointEnd:'Tuple[Any, Any]') -> 'None': + """ + Draws a chord. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangle + pointStart(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. + pointEnd(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsDraws a chord (a closed figure bounded by the intersection of an ellipse and a line segment). The rect parameter specify the upper-left and lower-right corners, respectively, of a rectangle bounding the ellipse that is part of the chord. The pointStart and pointEnd parameters specify the endpoints of a line that intersects the ellipse. The chord is drawn by using the selected pen and filled by using the selected brush.MFC References + +Returns: + + None:CDC::Chord +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def CreateCompatibleDC(self,dcFrom:'Any'=None) -> PyCDC: + """ + Creates a memory device context that is compatible with this DC. + +Args: + + dcFrom(Any):The source DC, or None to make a screen compatible DC.CommentsNote that unlike the MFC version, this function calls the global CreateCompatibleDC function and returns a new PyCDC object.MFC References + +Returns: + + None + + """ + pass + + + def CreatePrinterDC(self,printerName:'str'=None) -> 'None': + """ + Creates a device context for a specific printer + +Args: + + printerName(str):The printer name, or None for the default printerMFC References + +Returns: + + None + + """ + pass + + + def DeleteDC(self,) -> 'None': + """ + Deletes all resources associated with a device context. + +Args: + + + +Returns: + + None + + """ + pass + + + def DPtoLP(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': + """ + Converts device units into logical units. + +Args: + + point(Tuple[Any, Any]):The point to convertAlternative Parameters + x(Any):The x coordinate to convert. + y(Any):The y coordinate to convert.MFC References + +Returns: + + Tuple[Any, Any]:CDC::DPtoLP + To Do Should really handle list of (x,y) points +Return ValueThe converted coordinates. + + + """ + pass + + + def Draw3dRect(self,rect:'Tuple[Any, Any, Any, Any]',colorTopLeft:'Any',colorBotRight:'Any') -> 'None': + """ + Draws a three-dimensional rectangle. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + colorTopLeft(Any):Specifies the color of the top and left sides of the three-dimensional rectangle. + colorBotRight(Any):Specifies the color of the bottom and right sides of the three-dimensional rectangle.MFC References + +Returns: + + None + + """ + pass + + + def DrawFocusRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Draws a rectangle in the style used to + +indicate the rectangle has focus + +Args: + + rect(Tuple[Any, Any, Any, Any]):The coordinates of the rectangleMFC References + +Returns: + + None + + """ + pass + + + def DrawFrameControl(self,rect:'Tuple[Any, Any, Any, Any]',typ:'Any',state:'Any') -> 'None': + """ + Draws a frame control of the specified type and style. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + typ(Any): + state(Any):MFC References + +Returns: + + None + + """ + pass + + + def DrawIcon(self,point:'Tuple[Any, Any]',hIcon:'int') -> 'None': + """ + Draws an icon on the DC. + +Args: + + point(Tuple[Any, Any]):The point coordinate to draw to. + hIcon(int):The handle of the icon to draw.MFC References + +Returns: + + None + + """ + pass + + + def DrawText(self,s:'str',_tuple:'Tuple[Any, Any, Any, Any]',_format:'Any') -> 'Tuple[Any, Any, Any]': + """ + Formats text in the given rectangle + +Args: + + s(str):The desired output string + _tuple(Tuple[Any, Any, Any, Any]):The bounding rectangle in the form: (left, top, right, bottom) expressed in logical units (depending on selected coordinate system - see PyCDC::SetMapMode) + _format(Any):Specifies one or more bit-or'd format values, such as DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see the Microsoft Win32 API documentation.ExampleExampleimport win32ui<nl> import win32con<nl> INCH = 1440 # twips - 1440 per inch allows fine res<nl> def drawtext_test():<nl> dc = win32ui.CreateDC()<nl> dc.CreatePrinterDC() # ties to default printer<nl> dc.StartDoc('My Python Document')<nl> dc.StartPage()<nl> <nl> # note: upper left is 0,0 with x increasing to the right,<nl> # and y decreasing (negative) moving down<nl> dc.SetMapMode(win32con.MM_TWIPS)<nl> <nl> # Centers "TEST" about an inch down on page<nl> dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> dc.EndPage()<nl> dc.EndDoc()<nl> del dc<nl>Return ValueHeight of text in pixelsThe return value is the height of the text, in logical units. If DT_VCENTER or DT_BOTTOM is specified, the return value is the offset from rect.top to the bottom of the drawn text. If the function fails, the return value is zero (no Python exception is thrown) + +Returns: + + Tuple[Any, Any, Any]:Specifies one or more bit-or'd format values, such as + +DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see + +the Microsoft Win32 API documentation.ExampleExample +import win32ui<nl> + + import win32con<nl> + + INCH = 1440 # twips - 1440 per inch allows fine res<nl> + + def drawtext_test():<nl> + + dc = win32ui.CreateDC()<nl> + + dc.CreatePrinterDC() # ties to default printer<nl> + + dc.StartDoc('My Python Document')<nl> + + dc.StartPage()<nl> + + <nl> + + # note: upper left is 0,0 with x increasing to the right,<nl> + + # and y decreasing (negative) moving down<nl> + + dc.SetMapMode(win32con.MM_TWIPS)<nl> + + <nl> + + # Centers "TEST" about an inch down on page<nl> + + dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> + + dc.EndPage()<nl> + + dc.EndDoc()<nl> + + del dc<nl> + + +Return ValueHeight of text in pixels + + + +The return value is the height of the text, in logical units. + +If DT_VCENTER or DT_BOTTOM is specified, the return value is the + +offset from rect.top to the bottom of the drawn text. + +If the function fails, the return value is zero (no Python exception is thrown) + + + """ + pass + + + def Ellipse(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Draws an Ellipse. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangleCommentsThe center of the ellipse is the center of the bounding rectangle specified by rect. The ellipse is drawn with the current pen, and its interior is filled with the current brush.MFC References + +Returns: + + None:CDC::Ellipse +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def EndDoc(self,) -> 'None': + """ + Finishes spooling the document and starts printing it + +Args: + + + +Returns: + + None + + """ + pass + + + def EndPage(self,) -> 'None': + """ + Finishes a page on a printer DC + +Args: + + + +Returns: + + None + + """ + pass + + + def EndPath(self,) -> 'None': + """ + Closes a path bracket and selects the path defined by the bracket into the specified device + +context + +Args: + + + +Returns: + + None + + """ + pass + + + def ExtTextOut(self,_int:'Any',_int1:'Any',_int2:'Any',rect:'Tuple[Any, Any, Any, Any]',string:'Any',_tuple:'Tuple[Tuple[Any, Any], ...]') -> 'None': + """ + Writes text to the DC. + +Args: + + _int(Any):The x coordinate to write the text to. + _int1(Any):The y coordinate to write the text to. + _int2(Any):Specifies the rectangle type. This parameter can be one, both, or neither of ETO_CLIPPED and ETO_OPAQUE + rect(Tuple[Any, Any, Any, Any]):Specifies the text's bounding rectangle. (Can be None.) + string(Any):The text to write. + _tuple(Tuple[Tuple[Any, Any], ...]):Optional array of values that indicate distance between origins of character cells.MFC References + +Returns: + + None:CDC::ExtTextOut +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def FillPath(self,) -> 'None': + """ + Closes any open figures in the current path and fills the path's interior by using the + +current brush and polygon-filling mode. After its interior is filled, the path is discarded from the device context. + +Args: + + + +Returns: + + None + + """ + pass + + + def FillRect(self,rect:'Tuple[Any, Any, Any, Any]',brush:'Any') -> 'None': + """ + Fills a given rectangle with the specified brush + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + brush(Any):Specifies the brush to use.MFC References + +Returns: + + None + + """ + pass + + + def FillSolidRect(self,rect:'Tuple[Any, Any, Any, Any]',color:'Any') -> 'None': + """ + Fills the given rectangle with the specified solid color. + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + color(Any):Specifies the color to use.MFC References + +Returns: + + None + + """ + pass + + + def FrameRect(self,rect:'Tuple[Any, Any, Any, Any]',brush:'Any') -> 'None': + """ + Draws a border around the rectangle specified by rect + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. + brush(Any):Specifies the brush to use.MFC References + +Returns: + + None + + """ + pass + + + def GetBrushOrg(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the origin (in device units) of the brush currently selected for the + +device context. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetClipBox(self,) -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the dimensions of the smallest bounding rectangle + +around the current clipping boundary. + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any]:CDC::GetClipBox +Return ValueA tuple of integers specifying the rectangle. + + + """ + pass + + + def GetCurrentPosition(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the current position (in logical coordinates). + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetDeviceCaps(self,index:'Any') -> 'Any': + """ + Retrieves a capability of the device context. + +Args: + + index(Any):The information requested. See the win32api documentation for details.MFC References + +Returns: + + Any:CDC::GetDeviceCaps +Return ValueThe value of the requested capability + + + """ + pass + + + def GetHandleAttrib(self,) -> 'Any': + """ + Retrieves the handle of the attribute device context. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetHandleOutput(self,) -> 'Any': + """ + Retrieves the handle of the output device context. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetMapMode(self,) -> 'Any': + """ + Gets the mapping mode for the device context. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNearestColor(self,color:'Any') -> 'Any': + """ + Returns the closest color a device can map. + +Args: + + color(Any):Specifies the color to be matched. + +Returns: + + Any + + """ + pass + + + def GetPixel(self,x:'Any',y:'Any') -> 'None': + """ + Gets a pixel at a local in a device context + +Args: + + x(Any):Horizontal coordinate. + y(Any):Vertical coordinate. + +Returns: + + None + + """ + pass + + + def GetSafeHdc(self,) -> 'Any': + """ + Returns the HDC of this DC object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTextExtent(self,text:'str') -> 'Tuple[Any, Any]': + """ + Calculates the width and height of a line of text using the current font to + +determine the dimensions. + +Args: + + text(str):The text to calculate for.MFC References + +Returns: + + Tuple[Any, Any]:CFC::GetTextExtent +Return ValueA tuple of integers with the size of the string, in logical units. + + + """ + pass + + + def GetTextExtentPoint(self,text:'str') -> 'Tuple[Any, Any]': + """ + None + +Args: + + text(str):The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. + +Returns: + + Tuple[Any, Any]:The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. + + + """ + pass + + + def GetTextFace(self,) -> 'str': + """ + Returns typeface name of the current font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTextMetrics(self,) -> 'Any': + """ + Retrieves the metrics for the current font in this device context. + +Args: + + + +Returns: + + Any:CDC::GetTextMetrics +Return ValueA dictionary of integers, keyed by the following strings: + +tmHeight + +tmAscent + +tmDescent + +tmInternalLeading + +tmExternalLeading + +tmAveCharWidth + +tmMaxCharWidth + +tmWeight + +tmItalic + +tmUnderlined + +tmStruckOut + +tmFirstChar + +tmLastChar + +tmDefaultChar + +tmBreakChar + +tmPitchAndFamily + +tmCharSet + +tmOverhang + +tmDigitizedAspectX + +tmDigitizedAspectY + + + """ + pass + + + def GetViewportExt(self,) -> 'Tuple[Any, Any]': + """ + Gets the viewport extent of the device context + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetViewportOrg(self,) -> 'Tuple[Any, Any]': + """ + Gets the viewport origin of the device context + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetWindowExt(self,) -> 'Tuple[Any, Any]': + """ + Gets the window extent of the device context + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetWindowOrg(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the x- and y-coordinates of the origin of the window associated with the + +device context. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def IntersectClipRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Creates a new clipping region by forming the intersection of the current region + +and the rectangle specified + +Args: + + rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units.MFC References + +Returns: + + None:CDC::IntersectClipRect +Return Valueregion type as integer + + + """ + pass + + + def IsPrinting(self,) -> 'Any': + """ + Returns 1 if the DC is currently printing, else 0 + +Args: + + + +Returns: + + Any + + """ + pass + + + def LineTo(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'None': + """ + Draws a line to a specified point, using the currently selected pen. + +Args: + + point(Tuple[Any, Any]):The point coordinate to draw to.Alternative Parameters + x(Any):The x coordinate to draw to. + y(Any):The y coordinate to draw to.MFC References + +Returns: + + None + + """ + pass + + + def LPtoDP(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': + """ + Converts logical units into device units. + +Args: + + point(Tuple[Any, Any]):The point coordinate to convert.Alternative Parameters + x(Any):The x coordinate to convert. + y(Any):The y coordinate to convert.MFC References + +Returns: + + Tuple[Any, Any]:CDC::LPtoDP +Return ValueThe converted coordinates. + + + """ + pass + + + def MoveTo(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': + """ + Moves the current position to a specified point. + +Args: + + point(Tuple[Any, Any]):The point coordinate to move to.Alternative Parameters + x(Any):The x coordinate to move to. + y(Any):The y coordinate to move to.MFC References + +Returns: + + Tuple[Any, Any]:CDC::MoveTo +Return ValueThe previous position. + + + """ + pass + + + def OffsetWindowOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Modifies the coordinates of the window origin relative to the coordinates of the + +current window origin. + +Args: + + arg(Tuple[Any, Any]):The new origin offset.Return ValueThe previous origin as a tuple (x,y) + +Returns: + + Tuple[Any, Any]:The new origin offset.Return ValueThe previous origin as a tuple (x,y) + + + """ + pass + + + def OffsetViewportOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Modifies the coordinates of the viewport origin relative to the coordinates of + +the current viewport origin + +Args: + + arg(Tuple[Any, Any]):The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) + +Returns: + + Tuple[Any, Any]:The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) + + + """ + pass + + + def PatBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',rop:'Any') -> 'None': + """ + Creates a bit pattern on the device. + +Args: + + destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def Pie(self,x1:'Any',y1:'Any',x2:'Any',y2:'Any',x3:'Any',y3:'Any',x4:'Any',y4:'Any') -> 'None': + """ + Draws a pie slice in a device context + +Args: + + x1(Any):X coordinate of upper left corner + y1(Any):Y coordinate of upper left corner + x2(Any):X coordinate of lower right corner + y2(Any):Y coordinate of lower right corner + x3(Any):X coordinate of starting point of arc + y3(Any):Y coordinate of starting point of arc + x4(Any):X coordinate of ending point of arc + y4(Any):Y coordinate of ending point of arc + +Returns: + + None + + """ + pass + + + def PolyBezier(self,) -> 'None': + """ + Draws one or more Bezier splines. + +Args: + + + +Returns: + + None + + """ + pass + + + def Polygon(self,) -> 'None': + """ + Draws an Polygon. + +Args: + + + +Returns: + + None + + """ + pass + + + def Polyline(self,points:'List[Any]') -> 'None': + """ + Draws a Polyline. + +Args: + + points(List[Any]):A sequence of points + +Returns: + + None + + """ + pass + + + def RealizePalette(self,) -> 'Any': + """ + Maps palette entries in the current logical palette to the system palette. + +Args: + + + +Returns: + + Any:PyCDC.RealizePalette + +int = RealizePalette()Maps palette entries in the current logical palette to the system palette. +Return ValueIndicates how many entries in the logical palette were mapped to different entries + +in the system palette. This represents the number of entries that this function + +remapped to accommodate changes in the system palette since the logical palette + +was last realized. + + + """ + pass + + + def Rectangle(self,) -> 'Any': + """ + Draws a rectangle using the current pen. The interior of the rectangle is filled using + +the current brush. + +Args: + + + +Returns: + + Any + + """ + pass + + + def RectVisible(self,rect:'Tuple[Any, Any, Any, Any]') -> 'Any': + """ + Determines whether any part of the given rectangle lies within the clipping region of + +the display context. + +Args: + + rect(Tuple[Any, Any, Any, Any]):The coordinates of the reactangle to be checked.MFC References + +Returns: + + Any:CDC::RectVisible +Return ValueNon zero if any part of the rectangle lies within the clipping region, else zero. + + + """ + pass + + + def RestoreDC(self,saved:'Any') -> 'None': + """ + Restores the state of the device context. + +Args: + + saved(Any):The id of a previously saved device context. See PyCDC::SaveDCMFC References + +Returns: + + None + + """ + pass + + + def SaveDC(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any:CDC::SaveDC +Return ValueAn integer identifying the context, which can be used by PyCDC::RestoreDC. + +An exception is raised if this function fails. + + + """ + pass + + + def ScaleWindowExt(self,) -> 'Tuple[Any, Any]': + """ + Modifies the window extents relative to the current values. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def ScaleViewportExt(self,) -> 'Tuple[Any, Any]': + """ + Modifies the viewport extents relative to the current values. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SelectClipRgn(self,) -> 'Any': + """ + Selects the given region as the current clipping region for the device context + +Args: + + + +Returns: + + Any:PyCDC.SelectClipRgn + +obRgn = SelectClipRgn()Selects the given region as the current clipping region for the device context +Return ValueThe return value specifies the region's complexity (integer) + + + """ + pass + + + def SelectObject(self,ob:'Any') -> 'Any': + """ + None + +Args: + + ob(Any):The object to select.MFC References + +Returns: + + Any:CDC::SelectObject +Return ValueThe previously selected object. This will be the same type as the object parameter. + + + """ + pass + + + def SetBkColor(self,color:'Any') -> 'Any': + """ + Sets the current background color to the specified color. + +Args: + + color(Any):A windows color specification. See the win32api documentation for details.CommentsIf the background mode is OPAQUE, the system uses the background color to fill the gaps in styled lines, the gaps between hatched lines in brushes, and the background in character cells. The system also uses the background color when converting bitmaps between color and monochrome device contexts.MFC References + +Returns: + + Any:CDC::SetBkColor +Return ValueThe return value is the previous background color. + + + """ + pass + + + def SetBkMode(self,mode:'Any') -> 'Any': + """ + Sets the current background mode to the specified mode. + +Args: + + mode(Any):A background mode. May be either TRANSPARENT or OPAQUE.CommentsSpecifies the mode to be set. This parameter can be either OPAQUE or TRANSPARENTMFC References + +Returns: + + Any:CDC::SetBkMode +Return ValueThe return value is the previous background mode. + + + """ + pass + + + def SetBrushOrg(self,point:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Specifies the origin that GDI will assign to the next brush that the + +application selects into the device context. + +Args: + + point(Tuple[Any, Any]):The new origin in device units.MFC References + +Returns: + + Tuple[Any, Any]:CDC::SetBrushOrg +Return ValueThe previous origin in device units. + + + """ + pass + + + def SetGraphicsMode(self,mode:'Any') -> 'Any': + """ + Sets the graphics mode for the specified device context + +Args: + + mode(Any):The new mode. + +Returns: + + Any + + """ + pass + + + def SetMapMode(self,newMode:'Any') -> 'Any': + """ + Sets the mapping mode for the device context. + +Args: + + newMode(Any):The new mode. Can be one of MM_ANISOTROPIC, MM_HIENGLISH, MM_HIMETRIC, MM_ISOTROPIC, MM_LOENGLISH, MM_LOMETRIC, MM_TEXT, MM_TWIPSMFC References + +Returns: + + Any:CDC::SetMapMode +Return ValueThe previous mapping mode. + + + """ + pass + + + def SetPixel(self,x:'Any',y:'Any',color:'Any') -> 'None': + """ + Sets a pixel in a device context + +Args: + + x(Any):Horizontal coordinate. + y(Any):Vertical coordinate. + color(Any):The brush color. + +Returns: + + None + + """ + pass + + + def SetPolyFillMode(self,point:'Tuple[Any, Any]') -> 'Any': + """ + Sets the polygon-filling mode. + +Args: + + point(Tuple[Any, Any]):The new origin in device units.MFC References + +Returns: + + Any:CDC::SetPolyFillMode +Return ValueThe previous PolyFillMode as integer + + + +The previous PolyFillMode. + + + """ + pass + + + def SetROP2(self,mode:'Any') -> 'Any': + """ + Sets the current drawing mode. + +Args: + + mode(Any):The new drawing mode.MFC References + +Returns: + + Any + + """ + pass + + + def SetTextAlign(self,newFlags:'Any') -> 'Any': + """ + Sets the text-alignment flags. + +Args: + + newFlags(Any):The new alignment flags. Can be a combination of (TA_CENTER, TA_LEFT, TA_RIGHT), (TA_BASELINE, TA_BOTTOM, TA_TOP) and (TA_NOUPDATECP, TA_UPDATECP) The default is TA_LEFT|TA_TOP|TA_NOUPDATECPMFC References + +Returns: + + Any:CDC::SetTextAlign +Return ValueThe old alignment flags. + + + """ + pass + + + def SetTextColor(self,color:'Any') -> 'Any': + """ + Sets the text color to the specified color. + +Args: + + color(Any):A windows color specification. See the win32api documentation for details.CommentsThis text color is used when writing text to this device context and also when converting bitmaps between color and monochrome device contexts. If the device cannot represent the specified color, the system sets the text color to the nearest physical color. The background color for a character is specified by the SetBkColor and SetBkMode member functions.MFC References + +Returns: + + Any:CDC::SetTextColor +Return ValueThe return value is the previous text color. + + + """ + pass + + + def SetWindowExt(self,size:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Sets the x,y extents of the window associated with the device context. + +Args: + + size(Tuple[Any, Any]):The new size.MFC References + +Returns: + + Tuple[Any, Any]:CDC::SetWindowExt +Return ValueThe previous extents of the window (in logical units). + + + """ + pass + + + def SetWindowOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Sets the window origin of the device context + +Args: + + arg(Tuple[Any, Any]):The new origin. + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetViewportExt(self,size:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Sets the x,y extents of the viewport of the device context. + +Args: + + size(Tuple[Any, Any]):The new size.MFC References + +Returns: + + Tuple[Any, Any]:CDC::SetViewportExt +Return ValueThe previous extents of the viewport (in logical units). + + + """ + pass + + + def SetViewportOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': + """ + Sets the viewport origin of the device context + +Args: + + arg(Tuple[Any, Any]):The new origin. + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetWorldTransform(self,) -> 'Any': + """ + sets a two-dimensional linear transformation between world space and page space + +for the specified device context. This transformation can be used to scale, rotate, shear, or translate graphics + +output. + +Args: + + + +Returns: + + Any + + """ + pass + + + def StartDoc(self,docName:'str',outputFile:'str') -> 'None': + """ + Starts spooling a document to a printer DC + +Args: + + docName(str):The document name + outputFile(str):The output file name. Use this to spool to a file. Omit to send to the printer. + +Returns: + + None + + """ + pass + + + def StartPage(self,) -> 'None': + """ + Starts a new page on a printer DC + +Args: + + + +Returns: + + None + + """ + pass + + + def StretchBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',dc:'Any',srcPos:'Tuple[Any, Any]',size1:'Tuple[Any, Any]',rop:'Any') -> 'None': + """ + Copies a bitmap from the source device context to this device context. + +Args: + + destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + dc(Any):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. + srcPos(Tuple[Any, Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. + size1(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def StrokeAndFillPath(self,) -> 'None': + """ + Closes any open figures in a path, strokes the outline of the path by using the + +current pen, and fills its interior by using the current brush. The device context must contain a closed path. + +Args: + + + +Returns: + + None + + """ + pass + + + def StrokePath(self,) -> 'None': + """ + Renders the specified path by using the current pen. + +Args: + + + +Returns: + + None + + """ + pass + + + def TextOut(self,_int:'Any',_int1:'Any',string:'Any') -> 'None': + """ + Outputs text to the display context, using the currently selected font. + +Args: + + _int(Any):The x coordinate to write the text to. + _int1(Any):The y coordinate to write the text to. + string(Any):The text to write.MFC References + +Returns: + + None:CDC::TextOut +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + +class PyCDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,obParent:'Any'=None) -> 'None': + """ + Create a modeless window for the dialog box. + +Args: + + obParent(Any):The parent window for the new windowMFC References + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'Any': + """ + Create a modal window for the dialog box. + +Args: + + + +Returns: + + Any:CDialog::DoModal +Return ValueThe return value from the dialog. This is the value passed to PyCDialog::EndDialog. + + + """ + pass + + + def EndDialog(self,result:'Any') -> 'None': + """ + Ends a modal dialog box. + +Args: + + result(Any):The value to be returned by the PyCDialog::DoModal method.MFC References + +Returns: + + None + + """ + pass + + + def GotoDlgCtrl(self,control:'Any') -> 'None': + """ + Moves the focus to the specified control in the dialog box. + +Args: + + control(Any):The control to get the focus. + +Returns: + + None + + """ + pass + + + def MapDialogRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'Tuple[Any, Any, Any, Any]': + """ + Converts the dialog-box units of a rectangle to screen + +units. + +Args: + + rect(Tuple[Any, Any, Any, Any]):The rect to be converted + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def OnCancel(self,) -> 'None': + """ + Calls the default MFC OnCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOK(self,) -> 'None': + """ + Calls the default MFC OnOK handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnInitDialog(self,) -> 'Any': + """ + Calls the default MFC OnInitDialog handler. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCDialogBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'Any',template:'PyResourceId',style:'Any',_id:'Any') -> 'None': + """ + None + +Args: + + parent(Any):The parent window + template(PyResourceId):Template name or integer resource id + style(Any):The style for the window + _id(Any):The ID of the window + +Returns: + + None + + """ + pass + + +class PyCDocTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoCreateDoc(self,fileName:'str'=None) -> 'Any': + """ + Creates an underlying document object. + +Args: + + fileName(str):The name of the file to load. + +Returns: + + Any + + """ + pass + + + def FindOpenDocument(self,fileName:'str') -> 'Any': + """ + Returns an existing document with the specified file name. + +Args: + + fileName(str):The fully qualified filename to search for. + +Returns: + + Any + + """ + pass + + + def GetDocString(self,docIndex:'Any') -> 'str': + """ + Retrieves a specific substring describing the document type. + +Args: + + docIndex(Any):The document index. Must be one of the win32ui.CDocTemplate_* constants.CommentsFor more information on the doc strings, please see PyCDocTemplate::SetDocStrings + +Returns: + + str + + """ + pass + + + def GetDocumentList(self,) -> 'Any': + """ + Return a list of all open documents. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetResourceID(self,) -> 'None': + """ + Returns the resource ID in use. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSharedMenu(self,) -> 'Any': + """ + Returns the shared menu object for all frames using this template. + +Args: + + + +Returns: + + Any + + """ + pass + + + def InitialUpdateFrame(self,frame:'Any'=None,doc:'Any'=None,bMakeVisible:'Any'=1) -> 'None': + """ + Calls the default OnInitialFrame handler. + +Args: + + frame(Any):The frame window. + doc(Any):A document for the frame. + bMakeVisible(Any):Indicates of the frame should be shown.See Also + +Returns: + + None + + """ + pass + + + def SetContainerInfo(self,_id:'Any') -> 'None': + """ + Sets the resources to be used when an OLE 2 object is in-place activated. + +Args: + + _id(Any):The resource ID. + +Returns: + + None + + """ + pass + + + def SetDocStrings(self,docStrings:'str') -> 'None': + """ + Assigns the document strings for the template. + +Args: + + docStrings(str):The document strings.CommentsThe string must be a \\n seperated list of docstrings. The elements are:elementNameDescriptionwindowTitleTitle used for the window (only for SDI applications)docNameRoot for the default document name.fileNewNameName of the document type, as displayed in the "File/New" dialogfilterNameDescription of the document type and a wildcard spec for the file open dialog.filterExtExtension for documents of this file type.regFileTypeIdInternal Id of the document as registered in the registry. Used to associate the extension with the file type.regFileTypeNameName of the document, as stored in the reigstry. This is the name presented to the user. + +Returns: + + None + + """ + pass + + + def OpenDocumentFile(self,filename:'str',bMakeVisible:'Any'=1) -> 'None': + """ + Opens a document file, creating a view and frame. + +Args: + + filename(str):Name of file to open, or None + bMakeVisible(Any):Indicates if the document should be created visible. + +Returns: + + None + + """ + pass + + +class PyCDockContext(object): + """A class which encapsulates an MFC CDockContext object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ptLast(self)->'Tuple[Any, Any]': + """""" + pass + + + @property + def rectLast(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def sizeLast(self)->'Tuple[Any, Any]': + """""" + pass + + + @property + def bDitherLast(self)->'Any': + """""" + pass + + + @property + def rectDragHorz(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def rectDragVert(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def rectFrameDragHorz(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def rectFrameDragVert(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def dwDockStyle(self)->'Any': + """allowable dock styles for bar""" + pass + + + @property + def dwOverDockStyle(self)->'Any': + """style of dock that rect is over""" + pass + + + @property + def dwStyle(self)->'Any': + """style of control bar""" + pass + + + @property + def bFlip(self)->'Any': + """if shift key is down""" + pass + + + @property + def bForceFrame(self)->'Any': + """if ctrl key is down CDC* m_pDC; // where to draw during drag""" + pass + + + @property + def bDragging(self)->'Any': + """""" + pass + + + @property + def nHitTest(self)->'Any': + """""" + pass + + + @property + def uMRUDockID(self)->'Any': + """""" + pass + + + @property + def rectMRUDockPos(self)->'Tuple[Any, Any, Any, Any]': + """""" + pass + + + @property + def dwMRUFloatStyle(self)->'Any': + """""" + pass + + + @property + def ptMRUFloatPos(self)->'Tuple[Any, Any]': + """Sentinel""" + pass + + + def EndDrag(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def StartDrag(self,pt:'Tuple[Any, Any]') -> 'Any': + """ + None + +Args: + + pt(Tuple[Any, Any]): + +Returns: + + Any + + """ + pass + + + def EndResize(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def StartResize(self,hittest:'Any',pt:'Tuple[Any, Any]') -> 'Any': + """ + None + +Args: + + hittest(Any): + pt(Tuple[Any, Any]): + +Returns: + + Any + + """ + pass + + + def ToggleDocking(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DeleteContents(self,) -> 'None': + """ + Call the MFC DeleteContents method. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoSave(self,fileName:'str',bReplace:'Any'=1) -> 'None': + """ + Calls the underlying MFC DoSave method. + +Args: + + fileName(str):The name of the file to save to. + bReplace(Any):Should an existing file be silently replaced?.CommentsIf invalid or no filename, will prompt for a name, else will perform the actual saving of the document.See Also + +Returns: + + None + + """ + pass + + + def DoFileSave(self,) -> 'None': + """ + Checks the file attributes. + +If the file is read only, a new name is prompted, else the + +file is saved (by calling DoSave) + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocTemplate(self,) -> 'Any': + """ + Returns the template for the document. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetAllViews(self,) -> 'List[Any]': + """ + Returns a list of all views for the current document. + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def GetFirstView(self,) -> 'Any': + """ + Returns the first view object attached to this document. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPathName(self,) -> 'str': + """ + Returns the full path name of the current document. + +The string will be empty if no path name has been set. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTitle(self,) -> 'str': + """ + Returns the title of the current document. + +This will often be the file name portion of the path name. + +Args: + + + +Returns: + + str + + """ + pass + + + def IsModified(self,) -> 'Any': + """ + Return a flag indicating if the document has been modified. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnChangedViewList(self,) -> 'None': + """ + Informs the document when a view is added or removed. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCloseDocument(self,) -> 'None': + """ + Call the MFC OnCloseDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnNewDocument(self,) -> 'None': + """ + Call the MFC OnNewDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOpenDocument(self,pathName:'str') -> 'None': + """ + Call the MFC OnOpenDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + pathName(str):The full path of the file to open.MFC References + +Returns: + + None + + """ + pass + + + def OnSaveDocument(self,pathName:'str') -> 'None': + """ + Call the MFC OnSaveDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + pathName(str):The full path of the file to save.MFC References + +Returns: + + None + + """ + pass + + + def SetModifiedFlag(self,bModified:'Any'=1) -> 'None': + """ + Set the "dirty" flag for the document. + +Args: + + bModified(Any):Set dirty flagMFC References + +Returns: + + None + + """ + pass + + + def SaveModified(self,) -> 'Any': + """ + Call the underlying MFC method. + +Args: + + + +Returns: + + Any:CDocument::SaveModified +Return ValueNonzero if it is safe to continue and close the document; 0 if the document should not be closed. + + + """ + pass + + + def SetPathName(self,path:'str') -> 'None': + """ + Set the full path name for the document. + +Args: + + path(str):The full path of the file.MFC References + +Returns: + + None + + """ + pass + + + def SetTitle(self,title:'str') -> 'None': + """ + Set the title of the document (ie, the name + +to appear in the window caption for the document. + +Args: + + title(str):The new title.MFC References + +Returns: + + None + + """ + pass + + + def UpdateAllViews(self,sender:'Any',hint:'Any'=None) -> 'None': + """ + Informs each view when a document changes. + +Args: + + sender(Any):The view who initiated the update + hint(Any):A hint for the update.MFC References + +Returns: + + None + + """ + pass + + +class PyCEdit(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the window for a new Edit object. + +Args: + + style(Any):The style for the Edit. Use any of the win32con.BS_* constants. + rect(Tuple[Any, Any, Any, Any]):The size and position of the Edit. + parent(Any):The parent window of the Edit. Usually a PyCDialog. + _id(Any):The Edits control ID. + +Returns: + + None + + """ + pass + + + def Clear(self,) -> 'Any': + """ + Clears all text in an edit control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Copy(self,) -> 'None': + """ + Copys the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def Cut(self,) -> 'None': + """ + Cuts the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def FmtLines(self,bAddEOL:'Any') -> 'Any': + """ + Sets the formatting options for the control. + +Args: + + bAddEOL(Any):Specifies whether soft line-break characters are to be inserted. A value of TRUE inserts the characters; a value of FALSE removes them.MFC References + +Returns: + + Any:CEdit::FmtLines +Return ValueNonzero if any formatting occurs; otherwise 0. + + + """ + pass + + + def GetFirstVisibleLine(self,) -> 'Any': + """ + Returns zero-based index of the topmost visible line. + +Args: + + + +Returns: + + Any:CEdit::GetFirstVisibleLine +Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. + + + """ + pass + + + def GetSel(self,) -> 'Tuple[Any, Any]': + """ + Returns the start and end of the current selection. + +Args: + + + +Returns: + + Tuple[Any, Any]:CEdit::GetSel +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the + +end of the current selection) + + + """ + pass + + + def GetLine(self,lineNo:'Any') -> 'Any': + """ + Returns the text in a specified line. + +Args: + + lineNo(Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. + +Returns: + + Any + + """ + pass + + + def GetLineCount(self,) -> 'Any': + """ + Gets the number of lines in an edit control. + +Args: + + + +Returns: + + Any:CEdit::GetLineCount +Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. + + + """ + pass + + + def LimitText(self,nChars:'Any'=0) -> 'None': + """ + Sets max length of text that user can enter + +Args: + + nChars(Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References + +Returns: + + None + + """ + pass + + + def LineFromChar(self,charNo:'Any'=-1) -> 'Any': + """ + Returns the line number of the specified character. + +Args: + + charNo(Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References + +Returns: + + Any:CEdit::LineFromChar +Return ValueThe zero-based line number of the line containing the character index specified by charNo. + +If charNo is -1, the number of the line that contains the first character of the selection is returned. + +If there is no selection, the current line number is returned. + + + """ + pass + + + def LineIndex(self,lineNo:'Any'=-1) -> 'Any': + """ + Retrieves the character index of a line within a multiple-line edit control. + +Args: + + lineNo(Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + Any:CEdit::LineIndex +Return ValueThe character index of the line specified in lineNo, or -1 if + +the specified line number is greater then the number of lines in + +the edit control. + + + """ + pass + + + def LineScroll(self,nLines:'Any',nChars:'Any'=0) -> 'Any': + """ + Scroll the control vertically and horizontally + +Args: + + nLines(Any):Specifies the number of lines to scroll vertically. + nChars(Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + Any + + """ + pass + + + def Paste(self,) -> 'None': + """ + Pastes the contents of the clipboard into the control. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReplaceSel(self,text:'str') -> 'None': + """ + Replaces the selection with the specified text. + +Args: + + text(str):The text to replace the selection with.MFC References + +Returns: + + None + + """ + pass + + + def SetReadOnly(self,bReadOnly:'Any'=1) -> 'None': + """ + Sets or clears the read-only status of the listbox. + +Args: + + bReadOnly(Any):The read-only state to set.MFC References + +Returns: + + None + + """ + pass + + + def SetSel(self,start:'Any',end:'Any',arg:'Any',bNoScroll1:'Any',bNoScroll:'Any'=0) -> 'None': + """ + Sets the selection in the edit control. + +Args: + + start(Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. + end(Any):Specifies the ending position. + arg(Any):As for normal start, end args. + bNoScroll1(Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.MFC References + bNoScroll(Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.Alternative Parameters + +Returns: + + None + + """ + pass + + +class PyCEditView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsModified(self,) -> 'Any': + """ + Indicates if the view's document has the modified flag set. + +Args: + + + +Returns: + + Any + + """ + pass + + + def LoadFile(self,fileName:'str') -> 'None': + """ + Loads a file into the view. + +Args: + + fileName(str):The name of the file to be loaded. + +Returns: + + None + + """ + pass + + + def SetModifiedFlag(self,bModified:'Any'=1) -> 'None': + """ + Sets the modified flag for the view's document. + +Args: + + bModified(Any):The modified state to set. + +Returns: + + None + + """ + pass + + + def GetEditCtrl(self,) -> 'Any': + """ + returns the underlying edit control object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + Any + + """ + pass + + + def SaveFile(self,fileName:'str') -> 'None': + """ + Saves the view to a file. + +Args: + + fileName(str):The name of the file to be written. + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCFileDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPathName(self,) -> 'str': + """ + Retrives the path name from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileName(self,) -> 'str': + """ + Retrives the file name from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileExt(self,) -> 'str': + """ + Retrives the file extension from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileTitle(self,) -> 'str': + """ + Retrives the file title from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetPathNames(self,) -> 'str': + """ + Retrieves the list of path names from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetReadOnlyPref(self,) -> 'Any': + """ + Retrives the value of the "Read Only" checkbox on the file dialog. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetOFNTitle(self,title:'str') -> 'None': + """ + Sets the Title for the dialog. + +Args: + + title(str):The title for the dialog box. May be None. + +Returns: + + None + + """ + pass + + + def SetOFNInitialDir(self,title:'str') -> 'None': + """ + Sets the initial directory for the dialog. + +Args: + + title(str):The initial directory for the dialog box. May be None. + +Returns: + + None + + """ + pass + + +class PyCFont(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSafeHandle(self,) -> 'Any': + """ + Retrieves the HFONT for the font as an integer + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCFontDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoModal(self,) -> 'Any': + """ + Displays a dialog and allows the user to make a selection. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCurrentFont(self,) -> 'Any': + """ + Returns a dictionary describing the current font. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCharFormat(self,) -> 'Any': + """ + Returns the font selection in a CHARFORMAT tuple. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetColor(self,) -> 'Any': + """ + Determines the color of the selected font. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetFaceName(self,) -> 'str': + """ + Returns the face name of the selected font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetStyleName(self,) -> 'str': + """ + Returns the style name of the selected font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetSize(self,) -> 'Any': + """ + Returns he font's size, in tenths of a point. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetWeight(self,) -> 'Any': + """ + Returns the font's weight. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsStrikeOut(self,) -> 'Any': + """ + Determines whether the font is displayed with strikeout. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsUnderline(self,) -> 'Any': + """ + Determines whether the font is displayed with underline. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsBold(self,) -> 'Any': + """ + Determines whether the font is displayed bold. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsItalic(self,) -> 'Any': + """ + Determines whether the font is displayed with italic. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCFormView(object): + """A class which implementes a CFormView (ie, a view based on a dialog resource.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCFrameWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BeginModalState(self,) -> 'None': + """ + Sets the frame window to modal. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateWindow(self,wndClass:'str',title:'str',style:'Any',PyCWnd:'Any',menuId:'Any',styleEx:'Any',rect:'Tuple[Any, Any, Any, Any]'=None,createContext:'Any'=None) -> 'Any': + """ + Creates the actual window for the PyCFrameWnd object. + +Args: + + wndClass(str):The window class name, or None + title(str):The window title + style(Any):The window style + PyCWnd(Any):The parent window + menuId(Any):The string or integer id for the menu. + styleEx(Any):The extended style of the window being created.MFC References + rect(Tuple[Any, Any, Any, Any]):The default rectangle + createContext(Any):A tuple representing a CREATECONTEXT structure. + +Returns: + + Any + + """ + pass + + + def EndModalState(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def DockControlBar(self,controlBar:'Any',arg:'Tuple[Any, Any, Any, Any]',dockBarId:'Any'=0) -> 'None': + """ + Docks a control bar. + +Args: + + controlBar(Any):The control bar to dock. + arg(Tuple[Any, Any, Any, Any]):Determines, in screen coordinates, where the control bar will be docked in the nonclient area of the destination frame window.MFC References + dockBarId(Any):Determines which sides of the frame window to consider for docking. + +Returns: + + None + + """ + pass + + + def EnableDocking(self,style:'Any') -> 'None': + """ + Enable dockable control bars in a frame window + +Args: + + style(Any):Specifies which sides of the frame window can serve as docking sites for control bars.CommentsBy default, control bars will be docked to a side of the frame window in the following order: top, bottom, left, right. + +Returns: + + None + + """ + pass + + + def FloatControlBar(self,controlBar:'Any',arg:'Tuple[Any, Any]',style:'Any') -> 'None': + """ + Floats a control bar. + +Args: + + controlBar(Any):The control bar to dock. + arg(Tuple[Any, Any]):The location, in screen coordinates, where the top left corner of the control bar will be placed. + style(Any):Determines which sides of the frame window to consider for docking.MFC References + +Returns: + + None + + """ + pass + + + def GetActiveDocument(self,) -> 'Any': + """ + Gets the currently active document, else None + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetControlBar(self,_id:'Any') -> 'Any': + """ + Retrieves the specified control bar. + +Args: + + _id(Any):The ID of the toolbar to be retrieved + +Returns: + + Any + + """ + pass + + + def GetMessageString(self,_id:'Any') -> 'str': + """ + Retrieves message corresponding to a command ID. + +Args: + + _id(Any):The ID to be retrievedSee Also + +Returns: + + str + + """ + pass + + + def GetMessageBar(self,) -> 'Any': + """ + Retrieves the message bar for the frame. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsTracking(self,) -> 'Any': + """ + Determines if splitter bar is currently being moved. + +Args: + + + +Returns: + + Any + + """ + pass + + + def InModalState(self,) -> 'Any': + """ + Returns a value indicating whether or not a frame window is in a modal state. + +Args: + + + +Returns: + + Any + + """ + pass + + + def LoadAccelTable(self,_id:'PyResourceId') -> 'None': + """ + Loads an accelerator table. + +Args: + + _id(PyResourceId):Name or id of the resource that contains the table + +Returns: + + None + + """ + pass + + + def LoadFrame(self,idResource:'Any',style:'Any'=-1,wndParent:'Any'=None,context:'Any'=None) -> 'None': + """ + Loads a Windows frame window and associated resources + +Args: + + idResource(Any):The Id of the resources (menu, icon, etc) for this window + style(Any):The window style. Note -1 implies win32con.WS_OVERLAPPEDWINDOW|win32con.FWS_ADDTOTITLE + wndParent(Any):The parent of the window, or None. + context(Any):An object passed to the OnCreateClient for the frame,MFC References + +Returns: + + None + + """ + pass + + + def LoadBarState(self,profileName:'str') -> 'None': + """ + Loads a control bars settings + +Args: + + profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def SaveBarState(self,profileName:'str') -> 'None': + """ + Saves a control bars settings + +Args: + + profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References + +Returns: + + None + + """ + pass + + + def ShowControlBar(self,controlBar:'Any',bShow:'Any',bDelay:'Any') -> 'None': + """ + Shows a control bar. + +Args: + + controlBar(Any):The control bar to dock. + bShow(Any):Show or hide flag. + bDelay(Any):If TRUE, delay showing the control bar. If FALSE, show the control bar immediately.MFC References + +Returns: + + None + + """ + pass + + + def RecalcLayout(self,bNotify:'Any'=1) -> 'None': + """ + Called by the framework when the standard control bars are toggled on or off or + +when the frame window is resized. + +Args: + + bNotify(Any):Notify flagMFC References + +Returns: + + None + + """ + pass + + + def GetActiveView(self,) -> 'Any': + """ + Retrieves the active view. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnBarCheck(self,_id:'Any') -> 'Any': + """ + Changes the state of the specified controlbar. + +Args: + + _id(Any):The control ID of the control bar. + +Returns: + + Any + + """ + pass + + + def OnUpdateControlBarMenu(self,cmdUI:'Any') -> 'Any': + """ + Checks the state of a menu item + +Args: + + cmdUI(Any):A cmdui object + +Returns: + + Any + + """ + pass + + + def SetActiveView(self,view:'Any',bNotify:'Any'=1) -> 'None': + """ + Sets the active view for a frame. + +Args: + + view(Any):The view to set active. + bNotify(Any):Specifies whether the view is to be notified of activation. If TRUE, OnActivateView is called for the new view; if FALSE, it is not. + +Returns: + + None + + """ + pass + + +class PyCGdiObject(object): + """A class which encapsulates an MFC CGdiObject.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCImageList(object): + """A Python type encapsulating an MFC CImageList class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Add(self,arg:'Tuple[Any, Any]',bitmap:'Any',color:'Any',hIcon:'Any') -> 'Any': + """ + Adds an image to the list. + +Args: + + arg(Tuple[Any, Any]):2 Bitmaps to use (primary and mask)Alternative Parameters + bitmap(Any):Bitmap to use + color(Any):Color to use for the mask.Alternative Parameters + hIcon(Any):Handle of an icon to add.Return ValueZero-based index of the first new image. + +Returns: + + Any:Handle of an icon to add. +Return ValueZero-based index of the first new image. + + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Destroys the underlying CImageList + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteImageList(self,) -> 'None': + """ + Deletes an image list. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBkColor(self,) -> 'Any': + """ + Retrieves the background color of an Image List. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSafeHandle(self,) -> 'Any': + """ + Retrieves the HIMAGELIST for the object + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetImageCount(self,) -> 'Any': + """ + Retrieves the number of images in an image list. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetImageInfo(self,index:'Any') -> 'Any': + """ + Retrieves information about an image. + +Args: + + index(Any):Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. + +Returns: + + Any:Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. + + + """ + pass + + + def SetBkColor(self,color:'Any') -> 'None': + """ + Sets the background color for an Image List. + +Args: + + color(Any):The new background color. + +Returns: + + None + + """ + pass + + +class PyCListBox(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddString(self,_object:'Any') -> 'Any': + """ + Adds a string to a listbox. + +Args: + + _object(Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References + +Returns: + + Any:CListBox::AddString +Return ValueThe zero based index of the new string. + + + """ + pass + + + def DeleteString(self,pos:'Any') -> 'Any': + """ + Deletes an item from a listbox. + +Args: + + pos(Any):The zero based index of the item to delete.MFC References + +Returns: + + Any:CListBox::DeleteString +Return ValueThe count of the items remaining in the list. + + + """ + pass + + + def Dir(self,attr:'Any',wild:'str') -> 'Any': + """ + Fills a listbox with a directory listing. + +Args: + + attr(Any):The attributes of the files to locate + wild(str):A file specification string - eg, *.*MFC References + +Returns: + + Any:CListBox::Dir +Return ValueThe index of the last file name added to the list. + + + """ + pass + + + def GetCaretIndex(self,) -> 'Any': + """ + Returns the index of the item which has focus. + +Args: + + + +Returns: + + Any:PyCListBox.GetCaretIndex + +int = GetCaretIndex()Returns the index of the item which has focus. +Return ValueThe zero-based index of the item that has the focus rectangle in a list box. + +If the list box is a single-selection list box, the return value is the index of the item that is selected, if + +any. + + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Returns the count of items in the listbox. + +Args: + + + +Returns: + + Any:CListBox::GetCount +Return ValueReturns the number of items currently in the listbox. + + + """ + pass + + + def GetCurSel(self,) -> 'Any': + """ + Returns the index of the currently selected item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemData(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific object associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetItemValue(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetSel(self,index:'Any') -> 'Any': + """ + Returns the selection state of a specified item. + +Args: + + index(Any):The index of the item to return the state for.MFC References + +Returns: + + Any:CListBox::GetSel +Return ValueA +ve number if the item is selected, else zero. + + + """ + pass + + + def GetSelCount(self,) -> 'Any': + """ + Returns the number of selected items in a multiple selection listbox. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelItems(self,) -> 'Any': + """ + Returns a list of the indexes of the currently selected items in a multiple + +selection listbox. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelTextItems(self,) -> 'Any': + """ + Returns a list of the strings of the currently selected items in a multiple + +selection listbox. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTopIndex(self,) -> 'Any': + """ + Returns the index of the top most visible item. + +Args: + + + +Returns: + + Any:CListBox::GetTopIndex +Return ValueThe zero based index of the top most visible item. + + + """ + pass + + + def GetText(self,index:'Any') -> 'str': + """ + Returns the string for a specified item. + +Args: + + index(Any):The index of the item to retrieve the text of + +Returns: + + str + + """ + pass + + + def GetTextLen(self,index:'Any') -> 'Any': + """ + Returns the length of the string for a specified item. + +Args: + + index(Any):The index of the item to retrieve the length of the text.MFC References + +Returns: + + Any + + """ + pass + + + def InsertString(self,pos:'Any',_object:'Any') -> 'Any': + """ + Insert a string into a listbox. + +Args: + + pos(Any):The zero based index in the listbox to insert the new string + _object(Any):The object to be added to the listboxMFC References + +Returns: + + Any:CListBox::InsertString +Return ValueThe zero based index of the new string added. + + + """ + pass + + + def ResetContent(self,) -> 'None': + """ + Clear all the items from a listbox. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCaretIndex(self,index:'Any',bScroll:'Any'=1) -> 'None': + """ + Sets the focus rectange to a specified item. + +Args: + + index(Any):The zero based index of the item. + bScroll(Any):Should the listbox scroll to the item?MFC References + +Returns: + + None + + """ + pass + + + def SelectString(self,after:'Any',string:'str') -> 'None': + """ + Searches for a list-box item that matches the specified string, and selects it. + +Args: + + after(Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire listbox. + string(str):The string to search for.MFC References + +Returns: + + None:CListBox::SelectString +Return ValueThe return value is always None - an exception is raised if the string can not be located. + + + """ + pass + + + def SelItemRange(self,bSel:'Any',start:'Any',end:'Any') -> 'None': + """ + Selects an item range. + +Args: + + bSel(Any):Should the selection specified be set or cleared? + start(Any):The zero based index of the first item to select. + end(Any):The zero based index of the last item to select. + +Returns: + + None + + """ + pass + + + def SetCurSel(self,index:'Any') -> 'None': + """ + Selects an item in a single selection listbox. + +Args: + + index(Any):The zero based index of the item to select.MFC References + +Returns: + + None + + """ + pass + + + def SetItemData(self,item:'Any',Data:'Any') -> 'Any': + """ + Sets the item's application-specific object value. + +Args: + + item(Any):Index of the item whose Data is to be set. + Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + Any + + """ + pass + + + def SetItemValue(self,item:'Any',data:'Any') -> 'Any': + """ + Sets the item's application-specific value. + +Args: + + item(Any):Index of the item whose Data is to be set. + data(Any):New value for the data. + +Returns: + + Any + + """ + pass + + + def SetSel(self,index:'Any',bSel:'Any'=1) -> 'None': + """ + Selects an item in a multiple selection listbox. + +Args: + + index(Any):The zero based index of the item to select. + bSel(Any):Should the item be selected or deselected?MFC References + +Returns: + + None + + """ + pass + + + def SetTabStops(self,eachTabStop:'Any',tabStops:'Any') -> 'None': + """ + Sets the tab stops for a listbox. + +Args: + + eachTabStop(Any):The position for each tab stop.Alternative Parameters + tabStops(Any):Each individual tab stop. + +Returns: + + None + + """ + pass + + + def SetTopIndex(self,index:'Any') -> 'None': + """ + Sets the top index (top most visible item) of the listbox. + +Args: + + index(Any):The zero based index of the item to place at the top of the list.MFC References + +Returns: + + None + + """ + pass + + +class PyCListCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Arrange(self,code:'Any') -> 'None': + """ + Aligns items on a grid. + +Args: + + code(Any):Specifies the alignment style for the items + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',PyCWnd:'Any',_id:'Any') -> 'None': + """ + Creates the actual window for the object. + +Args: + + style(Any):The window style + rect(Tuple[Any, Any, Any, Any]):The default rectangle + PyCWnd(Any):The parent window + _id(Any):The control IDMFC References + +Returns: + + None + + """ + pass + + + def DeleteAllItems(self,) -> 'None': + """ + Deletes all items from the list. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteItem(self,item:'Any') -> 'None': + """ + Deletes the specified item. + +Args: + + item(Any):The item to delete. + +Returns: + + None + + """ + pass + + + def GetTextColor(self,) -> 'Any': + """ + Retrieves the text color of a list view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetTextColor(self,color:'Any') -> 'None': + """ + Sets the text color of a list view control. + +Args: + + color(Any):The new color. + +Returns: + + None + + """ + pass + + + def GetBkColor(self,) -> 'Any': + """ + Retrieves the background color of the control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetBkColor(self,color:'Any') -> 'None': + """ + Sets the background color of the control. + +Args: + + color(Any):The new background color. + +Returns: + + None + + """ + pass + + + def GetItem(self,item:'Any',sub:'Any') -> 'Any': + """ + Retrieves the details of an items attributes. + +Args: + + item(Any):The index of the item whose attributes are to be retrieved. + sub(Any):Specifies the subitem whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetItemCount(self,) -> 'Any': + """ + Retrieves the number of items in a list view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemRect(self,item:'Any',bTextOnly:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the bounding rectangle of a list view item. + +Args: + + item(Any):Index of the item whose Data is to be set. + bTextOnly(Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the list view control. + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetEditControl(self,) -> 'Any': + """ + Retrieves the handle of the edit control used to edit the specified + +list view item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def EditLabel(self,item:'Any') -> 'Any': + """ + Edits a specified list view item in-place. + +Args: + + item(Any):The index of item to edit. + +Returns: + + Any + + """ + pass + + + def EnsureVisible(self,item:'Any',bPartialOK:'Any') -> 'Any': + """ + Ensures that a list view item is visible in its list view control. + +Args: + + item(Any):The index of item to edit. + bPartialOK(Any):Specifies whether partial visibility is acceptable. + +Returns: + + Any + + """ + pass + + + def CreateDragImage(self,item:'Any') -> 'Tuple[Any, Any, Any]': + """ + Creates a dragging bitmap for the specified list view + +item. + +Args: + + item(Any):The index of the item to edit. + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetImageList(self,nImageList:'Any') -> 'Any': + """ + Retrieves the current image list. + +Args: + + nImageList(Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. + +Returns: + + Any + + """ + pass + + + def GetNextItem(self,item:'Any',flags:'Any') -> 'Any': + """ + Searches for a list view item with specified properties and with specified + +relationship to a given item. + +Args: + + item(Any):Index of the item to begin the searching with, or -1 to find the first item that matches the specified flags. The specified item itself is excluded from the search. + flags(Any):Geometric relation of the requested item to the specified item, and the state of the requested item. The geometric relation can be one of these values: LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT The state can be zero, or it can be one or more of these values: LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED If an item does not have all of the specified state flags set, the search continues with the next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. + +Returns: + + Any:Geometric relation of the requested item to the specified item, + +and the state of the requested item. The geometric relation can be one of these values: + +LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT + +The state can be zero, or it can be one or more of these values: + +LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED + +If an item does not have all of the specified state flags set, the search continues with the + +next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. + + + """ + pass + + + def InsertColumn(self,colNo:'Any',item:'Any') -> 'Any': + """ + Inserts a column into a list control when in report view. + +Args: + + colNo(Any):The new column number + item(Any):A tuple describing the new column. + +Returns: + + Any + + """ + pass + + + def InsertItem(self,item:'Any',item1:'Any',text:'Any',image:'Any',item2:'Any',text1:'Any') -> 'Any': + """ + Inserts an item into the list. + +Args: + + item(Any):A tuple describing the new item.Alternative Parameters + item1(Any):The index of the item. + text(Any):The text of the item. + image(Any):The index of the image to use.Alternative Parameters + item2(Any):The index of the item. + text1(Any):The text of the item. + +Returns: + + Any + + """ + pass + + + def SetImageList(self,imageList:'Any',imageType:'Any') -> 'Any': + """ + Assigns an image list to a list view control. + +Args: + + imageList(Any):The Image List to use. + imageType(Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE + +Returns: + + Any + + """ + pass + + + def GetColumn(self,column:'Any') -> 'Any': + """ + Retrieves the details of a column in the control. + +Args: + + column(Any):The index of the column whose attributes are to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetTextBkColor(self,) -> 'Any': + """ + Retrieves the text background color of a list view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetTextBkColor(self,color:'Any') -> 'None': + """ + Sets the text background color of a list view control. + +Args: + + color(Any):The new background color. + +Returns: + + None + + """ + pass + + + def GetTopIndex(self,) -> 'Any': + """ + Retrieves the index of the topmost visible item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetCountPerPage(self,) -> 'Any': + """ + Calculates the number of items that can fit vertically in a list view + +control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelectedCount(self,) -> 'Any': + """ + Retrieves the number of selected items in the list view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetItem(self,item:'Any') -> 'Any': + """ + Sets some of all of an items attributes. + +Args: + + item(Any):A tuple describing the new item. + +Returns: + + Any + + """ + pass + + + def SetItemState(self,item:'Any',state:'Any',mask:'Any') -> 'Any': + """ + Changes the state of an item in a list view control. + +Args: + + item(Any):Index of the item whose state is to be set. + state(Any):New values for the state bits. + mask(Any):Mask specifying which state bits to change. + +Returns: + + Any + + """ + pass + + + def GetItemState(self,item:'Any',mask:'Any') -> 'Any': + """ + Retrieves the state of a list view item. + +Args: + + item(Any):The index of the item whose position is to be retrieved. + mask(Any):Mask specifying which of the item's state flags to return. + +Returns: + + Any + + """ + pass + + + def SetItemData(self,item:'Any',Data:'Any') -> 'Any': + """ + Sets the item's application-specific value. + +Args: + + item(Any):Index of the item whose Data is to be set. + Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + Any + + """ + pass + + + def GetItemData(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def SetItemCount(self,count:'Any') -> 'None': + """ + Prepares a list view control for adding a large number of items. + +Args: + + count(Any):Number of items that the control will ultimately contain.CommentsBy calling this function before adding a large number of items, you enable a list view control to reallocate its internal data structures only once rather than every time you add an item. + +Returns: + + None + + """ + pass + + + def SetItemText(self,item:'Any',sub:'Any',text:'str') -> 'Any': + """ + Changes the text of a list view item or subitem. + +Args: + + item(Any):Index of the item whose text is to be set. + sub(Any):Index of the subitem, or zero to set the item label. + text(str):String that contains the new item text. + +Returns: + + Any + + """ + pass + + + def GetItemText(self,item:'Any',sub:'Any') -> 'Any': + """ + Retrieves the text of a list view item or subitem. + +Args: + + item(Any):The index of the item whose text is to be retrieved. + sub(Any):Specifies the subitem whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def RedrawItems(self,first:'Any',first1:'Any') -> 'Any': + """ + Forces a listview to repaint a range of items. + +Args: + + first(Any):Index of the first item to be repainted. + first1(Any):Index of the last item to be repainted.CommentsThe specified items are not actually repainted until the list view window receives a WM_PAINT message. To repaint immediately, call the Windows UpdateWindow function after using this function. + +Returns: + + Any + + """ + pass + + + def Update(self,item:'Any') -> 'None': + """ + Forces the control to repaint a specified item. + +Args: + + item(Any):The new color. + +Returns: + + None + + """ + pass + + + def SetColumn(self,colNo:'Any',item:'Any') -> 'Any': + """ + Changes column state in a list control when in report view. + +Args: + + colNo(Any):The to be modified column number + item(Any):A tuple describing the modified column. + +Returns: + + Any + + """ + pass + + + def DeleteColumn(self,first:'Any') -> 'Any': + """ + Deletes the specified column from the list control. + +Args: + + first(Any):Index of the column to be removed. + +Returns: + + Any + + """ + pass + + + def GetColumnWidth(self,first:'Any') -> 'Any': + """ + Gets the width of the specified column in the list control. + +Args: + + first(Any):Index of the column whose width is to be retrieved. + +Returns: + + Any + + """ + pass + + + def SetColumnWidth(self,first:'Any',first1:'Any') -> 'Any': + """ + Sets the width of the specified column in the list control. + +Args: + + first(Any):Index of the column to be changed. + first1(Any):New width of the column. + +Returns: + + Any + + """ + pass + + + def GetStringWidth(self,first:'Any') -> 'Any': + """ + Gets the necessary column width to fully display this text in a column. + +Args: + + first(Any):String that contains the text whose width is to be determined.CommentsDoesn't take the size of an included Image in account, only the size of the text is determined. + +Returns: + + Any + + """ + pass + + + def HitTest(self,arg:'Any') -> 'Tuple[Any, Any, Any]': + """ + Determines which list view item, if any, is at a specified position. + +Args: + + arg(Any):The point to test.Return ValueThe result is a tuple of (flags, item, subItem). flags may be a combination of the following values:ValueDescriptioncommctrl.LVHT_ABOVEThe position is above the control's client area.commctrl.LVHT_BELOWThe position is below the control's client area.commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a list item.commctrl.LVHT_ONITEMICONThe position is over a list view item's icon.commctrl.LVHT_ONITEMLABELThe position is over a list view item's text.commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item.commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area.commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. + +Returns: + + Tuple[Any, Any, Any]:The point to test.Return ValueThe result is a tuple of (flags, item, subItem). + +flags may be a combination of the following values: + + + +Value + + +Description + + + +commctrl.LVHT_ABOVEThe position is above the control's client area. +commctrl.LVHT_BELOWThe position is below the control's client area. +commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a + +list item. +commctrl.LVHT_ONITEMICONThe position is over a list view item's icon. +commctrl.LVHT_ONITEMLABELThe position is over a list view item's text. +commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item. +commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area. +commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. + + + """ + pass + + + def GetItemPosition(self,item:'Any') -> 'Tuple[Any, Any]': + """ + Determines the position of the specified item. + +Args: + + item(Any):The item to determine the position for. + +Returns: + + Tuple[Any, Any] + + """ + pass + + +class PyCListView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + Any + + """ + pass + + + def GetListCtrl(self,) -> 'Any': + """ + Returns the underlying list control object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCMDIChildWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ActivateFrame(self,cmdShow:'Any'=-1) -> 'None': + """ + Calls the underlying MFC ActivateFrame method. + +Args: + + cmdShow(Any):The status of the window.See Also + +Returns: + + None + + """ + pass + + + def CreateWindow(self,wndClass:'str',title:'str',style:'Any',PyCWnd:'Any',rect:'Tuple[Any, Any, Any, Any]'=None,createContext:'Any'=None) -> 'Any': + """ + Creates the actual window for the PyCWnd object. + +Args: + + wndClass(str):The window class name, or None + title(str):The window title + style(Any):The window style + PyCWnd(Any):The parent window + rect(Tuple[Any, Any, Any, Any]):The default rectangle + createContext(Any):A tuple representing a CREATECONTEXT structure.CommentsYou do not need to call this method if you use the MFC Document/View framework. + +Returns: + + Any + + """ + pass + + + def GetMDIFrame(self,) -> 'None': + """ + Returns the MDI parent frame + +Args: + + + +Returns: + + None + + """ + pass + + + def MDIActivate(self,cmdShow:'Any'=-1) -> 'None': + """ + Activates the MDI frame independent of the main frame. + +Args: + + cmdShow(Any):The status of the window.See Also + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def PreTranslateMessage(self,) -> 'None': + """ + Calls the base PreTranslateMessage handler + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Calls the standard Python framework OnClose handler + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCMDIFrameWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetMDIClient(self,) -> 'Any': + """ + Returns the MDI client window + +Args: + + + +Returns: + + Any + + """ + pass + + + def MDIGetActive(self,) -> 'Tuple[Any, Any]': + """ + Retrieves the current active MDI child window, along + +with a flag indicating whether the child window is maximized. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def MDIActivate(self,window:'Any') -> 'Any': + """ + Activate an MDI child window + +Args: + + window(Any):The window to activate. + +Returns: + + Any + + """ + pass + + + def MDINext(self,fNext:'Any'=0) -> 'None': + """ + Activates the next MDI window + +Args: + + fNext(Any):Indicates if the next (0) or previous (non-zero) window is requested.CommentsUnlike MFC, this version supports the fNext param in the WM_MDINEXT message. + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def PreTranslateMessage(self,) -> 'None': + """ + Calls the base PreTranslateMessage handler + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + + def OnContextHelp(self,) -> 'Any': + """ + Calls the underlying MFC OnContextHelp method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Calls the standard Python framework OnClose handler + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCMenu(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AppendMenu(self,flags:'Any',_id:'Any'=0,value:'Union[Any, str]'=None) -> 'None': + """ + Appends a new item to the end of a menu. Python can specify the state of the menu item + +by setting values in nFlags. + +Args: + + flags(Any):Specifies information about the state of the new menu item when it is added to the menu. May be a combination of the win32con.MF_* values. + _id(Any):Specifies either the command ID of the new menu item. + value(Union[Any, str]):Specifies the content of the new menu item. If used, flags must contain win32con.MF_STRING. + +Returns: + + None + + """ + pass + + + def DeleteMenu(self,_id:'Any',flags:'Any') -> 'str': + """ + Deletes the specified menu item. + +Args: + + _id(Any):The id of the item being deleted. + flags(Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. + +Returns: + + str + + """ + pass + + + def EnableMenuItem(self,_id:'Any',flags:'Any') -> 'Any': + """ + Enables, disables, or dims a menu item. + +Args: + + _id(Any):Specifies the command ID of the menu item. This parameter can specify pop-up menu items as well as standard menu items. + flags(Any):Specifies the action to take. It can be a combination of MF_DISABLED, MF_ENABLED, or MF_GRAYED, with MF_BYCOMMAND or MF_BYPOSITIONCommentsThe PyCMenu::CreateMenu, PyCMenu::InsertMenu, PyCMenu::ModifyMenu, and PyCMenu::LoadMenuIndirect member functions can also set the state (enabled, disabled, or dimmed) of a menu item. + +Returns: + + Any + + """ + pass + + + def GetHandle(self,) -> 'Any': + """ + Returns the menu object's underlying hMenu. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetMenuItemCount(self,) -> 'Any': + """ + Determines the number of items in a menu. + +Args: + + + +Returns: + + Any:PyCMenu.GetMenuItemCount + +int = GetMenuItemCount()Determines the number of items in a menu. +Return ValueThe number of items in the menu if the function is successful; otherwise -1. + + + """ + pass + + + def GetMenuItemID(self,pos:'Any') -> 'Any': + """ + Returns the item ID for the specified item in a pop-up menu. + +Args: + + pos(Any):The position (zero-based) of the menu item whose ID is being retrieved.CommentsIf the specified item is a pop-up menu (as opposed to an item within the pop-up menu), the return value is -1. If nPos corresponds to a SEPARATOR menu item, the return value is 0. + +Returns: + + Any + + """ + pass + + + def GetMenuString(self,_id:'Any',arg:'Any') -> 'str': + """ + Returns the string for a specified menu item. + +Args: + + _id(Any):The id of the item being requested. + arg(Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. + +Returns: + + str + + """ + pass + + + def GetSubMenu(self,pos:'Any') -> 'Any': + """ + Returns a submenu. + +Args: + + pos(Any):The position (zero-based) of the menu item being retrieved. + +Returns: + + Any + + """ + pass + + + def InsertMenu(self,pos:'Any',flags:'Any',_id:'Union[Any]'=0,value:'Union[Any, str]'=None) -> 'None': + """ + Inserts an item into a menu. + +Args: + + pos(Any):The position (zero-based) the item should be inserted. + flags(Any):Flags for the new item. + _id(Union[Any]):The ID for a new menu item, or handle to a submenu + value(Union[Any, str]):A string for the menu item. + +Returns: + + None + + """ + pass + + + def ModifyMenu(self,pos:'Any',flags:'Any',_id:'Any'=0,value:'Union[Any, str]'=None) -> 'None': + """ + Modify an item in a menu. + +Args: + + pos(Any):The position (zero-based) the item to be changed. + flags(Any):Flags for the item. + _id(Any):The ID for the item. + value(Union[Any, str]):A string for the menu item. + +Returns: + + None + + """ + pass + + + def TrackPopupMenu(self,arg:'Tuple[Any, Any]',arg1:'Any',arg2:'Any') -> 'None': + """ + Creates a popup menu anywhere on the screen. + +Args: + + arg(Tuple[Any, Any]):The position for the menu.. + arg1(Any):Flags for the menu. + arg2(Any):The owner of the menu.CommentsThe TrackPopupMenu function displays a floating pop-up menu at the specified location and tracks the selection of items on the pop-up menu. The floating pop-up menu can appear anywhere on the screen.Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is returned instead of the normal exception. + +Returns: + + None:The owner of the menu. +Comments + +The TrackPopupMenu function displays a floating pop-up menu at the + +specified location and tracks the selection of items on the pop-up menu. + +The floating pop-up menu can appear anywhere on the screen. +Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is + +returned instead of the normal exception. + + + """ + pass + + +class PyCOleClientItem(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateNewItem(self,) -> 'None': + """ + Creates an embedded item. + +Args: + + + +Returns: + + None + + """ + pass + + + def Close(self,) -> 'None': + """ + Closes the item + +Args: + + + +Returns: + + None + + """ + pass + + + def DoVerb(self,) -> 'None': + """ + Executes the specified verb. + +Args: + + + +Returns: + + None + + """ + pass + + + def Draw(self,) -> 'None': + """ + Draws the OLE item into the specified bounding rectangle using the specified device + +context. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetActiveView(self,) -> 'Any': + """ + Obtains the active view for the item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDocument(self,) -> 'Any': + """ + Obtains the current document for the item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetInPlaceWindow(self,) -> 'Any': + """ + Obtains the window in which the item has been opened for + +in-place editing. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemState(self,) -> 'None': + """ + Obtains the OLE item's current state + +Args: + + + +Returns: + + None + + """ + pass + + + def GetObject(self,) -> 'Any': + """ + Returns the COM object to the item. This is the m_lpObject + +variable in MFC. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetStorage(self,) -> 'None': + """ + Returns the COM object used for storage + +Args: + + + +Returns: + + None + + """ + pass + + + def OnActivate(self,) -> 'None': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnChange(self,) -> 'None': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnChangeItemPosition(self,) -> 'Any': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + Any:PyCOleClientItem.OnChangeItemPosition + +int = OnChangeItemPosition()Calls the underlying MFC method. +Return ValueThe result is a BOOL indicating if the function succeeded. No exception is thrown. + + + """ + pass + + + def OnDeactivateUI(self,) -> 'Any': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Run(self,) -> 'None': + """ + Runs the application associated with this item. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetItemRects(self,) -> 'None': + """ + Sets the bounding rectangle or the visible rectangle of the OLE item. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCOleDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCOleDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnableCompoundFile(self,bEnable:'Any'=1) -> 'None': + """ + Call this function if you want to store the document using the + +compound-file format. + +Args: + + bEnable(Any):Specifies whether compound file support is enabled or disabled. + +Returns: + + None + + """ + pass + + + def GetStartPosition(self,) -> 'Any': + """ + Obtains the position of the first item in the document. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNextItem(self,pos:'Any') -> 'Tuple[Any, Any]': + """ + Call this function repeatedly to access each of + +the items in your document. + +Args: + + pos(Any):The position to iterate from. + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetInPlaceActiveItem(self,wnd:'Any') -> 'Any': + """ + Obtains the OLE item that is currently activated + +in place in the frame window containing the view identified by obWnd. + +Args: + + wnd(Any):The window. + +Returns: + + Any + + """ + pass + + +class PyCOleInsertDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassID(self,) -> 'Any': + """ + Returns the CLSID associated with the selected item + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelectionType(self,) -> 'Any': + """ + Returns the type of selection made + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPathName(self,) -> 'Any': + """ + Returns the full path to the file selected in the dialog box + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCPrintDialog(object): + """An object which encapsulates an MFC CPrintDialog object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCPrintInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DocObject(self,) -> 'None': + """ + Return true if the document being printed is a DocObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDwFlags(self,) -> 'None': + """ + A flags specifying DocObject printing operations. Valid only if data member + +m_bDocObject is TRUE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDwFlags(self,) -> 'None': + """ + Set a flag specifying DocObject printing operations. Valid only if data member + +m_bDocObject is TRUE. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocOffsetPage(self,) -> 'None': + """ + Get the number of pages preceding the first page of a particular DocObject + +in a combined DocObject print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDocOffsetPage(self,) -> 'None': + """ + Set the number of pages preceding the first page of a particular DocObject + +in a combined DocObject print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPrintDialog(self,) -> 'None': + """ + Set a pointer to the CPrintDialog object used to display the Print dialog box + +for the print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDirect(self,) -> 'None': + """ + TRUE if the Print dialog box will be bypassed for direct printing; FALSE otherwise. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDirect(self,) -> 'None': + """ + Sets to TRUE if the Print dialog box will be bypassed for direct printing; FALSE + +otherwise. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPreview(self,) -> 'None': + """ + A flag indicating whether the document is being previewed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPreview(self,) -> 'None': + """ + Set whether the document is being previewed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetContinuePrinting(self,) -> 'None': + """ + A flag indicating whether the framework should continue the print loop. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetContinuePrinting(self,) -> 'None': + """ + Set whether the framework should continue the print loop. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurPage(self,) -> 'None': + """ + Get the number of the current page. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCurPage(self,) -> 'None': + """ + Set the number of the current page. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetNumPreviewPages(self,) -> 'None': + """ + Get the number of pages displayed in preview mode. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetNumPreviewPages(self,) -> 'None': + """ + Set the number of pages displayed in preview mode. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserData(self,) -> 'None': + """ + Get a user-created structure. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetUserData(self,) -> 'None': + """ + Set a user-created structure. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDraw(self,) -> 'None': + """ + Get the usable drawing area of the page in logical coordinates. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDraw(self,) -> 'None': + """ + Set the usable drawing area of the page in logical coordinates. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPageDesc(self,) -> 'None': + """ + Get the format string used to display the page numbers during print preview + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPageDesc(self,) -> 'None': + """ + Set the format string used to display the page numbers during print preview + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMinPage(self,) -> 'None': + """ + Get the number of the first page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetMinPage(self,) -> 'None': + """ + Set the number of the first page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMaxPage(self,) -> 'None': + """ + Get the number of the last page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetMaxPage(self,) -> 'None': + """ + Set the number of the last page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetOffsetPage(self,) -> 'None': + """ + Get the number of pages preceding the first page of a DocObject item being + +printed in a combined DocObject print job. This currently does NOT work, as, if I include the symbol + +pInfo->GetOffsetPage(), the link fails to find its definition. Allways returns 0. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFromPage(self,) -> 'None': + """ + The number of the first page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetToPage(self,) -> 'None': + """ + The number of the last page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetHDC(self,hdc:'Any') -> 'None': + """ + Sets the printer DC compatible with the users choices, call after the print dialog + +DoModal finishes. + +Args: + + hdc(Any):The DC.MFC References + +Returns: + + None + + """ + pass + + + def CreatePrinterDC(self,) -> 'None': + """ + Handle to the newly created printer device context, call only after DoModal + +finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'None': + """ + Call DoModal on the dialog. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCopies(self,) -> 'None': + """ + The number of copies requested, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDefaults(self,) -> 'None': + """ + Nonzero if the function was successful; otherwise 0. Call this function to + +retrieve the device defaults of the default printer without displaying a dialog box. The retrieved values are placed + +in the m_pd structure. In some cases, a call to this function will call the constructor for CPrintDialog with + +bPrintSetupOnly set to FALSE. In these cases, a printer DC and hDevNames and hDevMode (two handles located in the + +m_pd data member) are automatically allocated. If the constructor for CPrintDialog was called with bPrintSetupOnly + +set to FALSE, this function will not only return hDevNames and hDevMode (located in m_pd.hDevNames and m_pd.hDevMode) + +to the caller, but will also return a printer DC in m_pd.hDC. It is the responsibility of the caller to delete the + +printer DC and call the WindowsGlobalFree function on the handles when you are finished with the CPrintDialog object. + +Args: + + + +Returns: + + None + + """ + pass + + + def FreeDefaults(self,) -> 'None': + """ + After a call to GetDefaults, and you are through with the CPrintDialog object, + +this call deletes the printer DC and calls GlobalFree function on the handles. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDeviceName(self,) -> 'None': + """ + The name of the currently selected printer, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDriverName(self,) -> 'None': + """ + The name of the currently selected printer device driver, call only after + +DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDlgFromPage(self,) -> 'None': + """ + Retrieves the starting page of the print range. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDlgToPage(self,) -> 'None': + """ + Retrieves the ending page of the print range. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPortName(self,) -> 'None': + """ + The name of the currently selected printer port, call only after DoModal + +finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPrinterDC(self,) -> 'None': + """ + A handle to the printer device context if successful; otherwise NULL. If the + +bPrintSetupOnly parameter of the CPrintDialog constructor was FALSE (indicating that the Print dialog box is + +displayed), then GetPrinterDC returns a handle to the printer device context. You must call the WindowsDeleteDC + +function to delete the device context when you are done using it. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintAll(self,) -> 'None': + """ + Nonzero if all pages in the document are to be printed; otherwise 0, call only after + +DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintCollate(self,) -> 'None': + """ + Nonzero if the user selects the collate check box in the dialog box; otherwise + +0, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintRange(self,) -> 'None': + """ + Nonzero if only a range of pages in the document are to be printed; otherwise 0, + +call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintSelection(self,) -> 'None': + """ + Nonzero if only the selected items are to be printed; otherwise 0., call only + +after DoModal finishes + +Args: + + + +Returns: + + None + + """ + pass + + + def GetHDC(self,) -> 'None': + """ + Identifies a device context or an information context, depending on whether the Flags + +member specifies the PD_RETURNDC or PC_RETURNIC flag. If neither flag is specified, the value of this member is + +undefined. If both flags are specified, PD_RETURNDC has priority. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'None': + """ + A set of bit flags that you can use to initialize the Print common dialog box. When + +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the + +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, + +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, + +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, + +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, + +PD_USEDEVMODECOPIESANDCOLLATE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFlags(self,) -> 'None': + """ + A set of bit flags that you can use to initialize the Print common dialog box. When + +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the + +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, + +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, + +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, + +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, + +PD_USEDEVMODECOPIESANDCOLLATE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFromPage(self,) -> 'None': + """ + The number of the first page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetToPage(self,) -> 'None': + """ + The number of the last page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPRINTDLGMinPage(self,) -> 'None': + """ + Get the minimum value for the page range specified in the From and To page + +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are + +disabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPRINTDLGMinPage(self,) -> 'None': + """ + Set the minimum value for the page range specified in the From and To page + +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are + +disabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPRINTDLGCopies(self,) -> 'None': + """ + Get the initial number of copies for the Copies edit control if hDevMode is + +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, + +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer + +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags + +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the + +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more + +information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPRINTDLGCopies(self,) -> 'None': + """ + Set the initial number of copies for the Copies edit control if hDevMode is + +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, + +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer + +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags + +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the + +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more + +information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCProgressCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(Any):The style for the control. + rect(Tuple[Any, Any, Any, Any]):The size and position of the control. + parent(Any):The parent window of the control. Usually a PyCDialog. + _id(Any):The control's ID. + +Returns: + + None + + """ + pass + + + def SetRange(self,nLower:'Any'=1,nUpper:'Any'=1) -> 'None': + """ + Set the control's bounds + +Args: + + nLower(Any):Specifies the lower limit of the range (default is zero). + nUpper(Any):Specifies the upper limit of the range (default is 100). + +Returns: + + None + + """ + pass + + + def SetPos(self,nPos:'Any'=1) -> 'Any': + """ + Set the control's position + +Args: + + nPos(Any):New position of the progress bar control. + +Returns: + + Any + + """ + pass + + + def OffsetPos(self,nPos:'Any'=1) -> 'Any': + """ + Advances the progress bar control's current position by the increment + +specified + +Args: + + nPos(Any):Amount to advance the position. + +Returns: + + Any + + """ + pass + + + def SetStep(self,nStep:'Any'=1) -> 'Any': + """ + Specifies the step increment for a progress bar control. + +Args: + + nStep(Any):New step increment. + +Returns: + + Any + + """ + pass + + + def StepIt(self,) -> 'Any': + """ + Advances the current position for a progress bar control by the step increment. + +Returns previous position. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCPropertyPage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CancelToClose(self,) -> 'None': + """ + Changes the Cancel button to Close. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCancel(self,) -> 'None': + """ + Calls the default MFC OnCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOK(self,) -> 'None': + """ + Calls the default MFC OnOK handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnApply(self,) -> 'None': + """ + Calls the default MFC OnApply handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnReset(self,) -> 'None': + """ + Calls the default MFC OnReset handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnQueryCancel(self,) -> 'None': + """ + Calls the default MFC OnQueryCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardBack(self,) -> 'None': + """ + Calls the default MFC OnWizardBack handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardNext(self,) -> 'None': + """ + Calls the default MFC OnWizardNext handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardFinish(self,) -> 'None': + """ + Calls the default MFC OnWizardFinish handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnSetActive(self,) -> 'Any': + """ + Calls the default MFC OnSetActive handler. + +Args: + + + +Returns: + + Any:PyCPropertyPage.OnSetActive virtual method +Return ValueThe result is true if the page should be made active. + +Typically this result should be passed to the original OnSetActive handler. + + + """ + pass + + + def OnKillActive(self,) -> 'Any': + """ + Calls the default MFC OnKillActive handler. + +Args: + + + +Returns: + + Any:PyCPropertyPage.OnKillActive virtual method +Return ValueThe result is true if the page should be deselected. + +Typically this result should be passed to the original OnSetActive handler. + + + """ + pass + + + def SetModified(self,bChanged:'Any'=1) -> 'None': + """ + Sets the modified flag. + +Args: + + bChanged(Any):A flag to indicate the new modified state. + +Returns: + + None + + """ + pass + + + def SetPSPBit(self,bitMask:'Any',bitValue:'Any') -> 'None': + """ + Sets or clears a bit in m_psp.dwFlags + +Args: + + bitMask(Any):The PSP_* bit mask constant + bitValue(Any):1 to set, 0 to clear + +Returns: + + None + + """ + pass + + +class PyCPropertySheet(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddPage(self,page:'Any') -> 'None': + """ + Adds the supplied page with the rightmost tab in the property sheet. + +Args: + + page(Any):The page to be added.CommentsAdd pages to the property sheet in the left-to-right order you want them to appear.MFC References + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'Any',exStyle:'Any',parent:'Any'=None) -> 'None': + """ + Displays the property sheet as a modeless dialog. + +Args: + + style(Any):The style for the window. + exStyle(Any):The extended style for the window. + parent(Any):The parent of the dialog. + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'Any': + """ + Displays the property sheet as a modal dialog. + +Args: + + + +Returns: + + Any + + """ + pass + + + def EnableStackedTabs(self,stacked:'Any') -> 'Any': + """ + Enables or disables stacked tabs. + +Args: + + stacked(Any):A boolean flag + +Returns: + + Any + + """ + pass + + + def EndDialog(self,result:'Any') -> 'None': + """ + Closes the dialog, with the specified result. + +Args: + + result(Any):The result to be returned by DoModal. + +Returns: + + None + + """ + pass + + + def GetActiveIndex(self,) -> 'Any': + """ + Retrieves the index of the active page of the property sheet. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetActivePage(self,) -> 'Any': + """ + Returns the currently active property page. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPage(self,pageNo:'Any') -> 'Any': + """ + Returns the specified property page. + +Args: + + pageNo(Any):The index of the page toretrieve.MFC References + +Returns: + + Any + + """ + pass + + + def GetPageIndex(self,page:'Any') -> 'Any': + """ + Retrieves the index of the specified page of the property sheet. + +Args: + + page(Any):The page. + +Returns: + + Any + + """ + pass + + + def GetPageCount(self,) -> 'Any': + """ + Returns the number of pages. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTabCtrl(self,) -> 'Any': + """ + Returns the tab control used by the sheet. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnInitDialog(self,) -> 'Any': + """ + Calls the default MFC OnInitDialog handler. + +Args: + + + +Returns: + + Any + + """ + pass + + + def PressButton(self,button:'Any') -> 'None': + """ + Simulates the choice of the specified button in a property sheet. + +Args: + + button(Any):The button to press + +Returns: + + None + + """ + pass + + + def RemovePage(self,offset:'Any',page:'Any') -> 'None': + """ + Removes the specified page from the sheet. + +Args: + + offset(Any):The page number to removeAlternative Parameters + page(Any):The page to remove + +Returns: + + None + + """ + pass + + + def SetActivePage(self,page:'Any') -> 'None': + """ + Programmatically sets the active page object. + +Args: + + page(Any):The page. + +Returns: + + None + + """ + pass + + + def SetTitle(self,title:'str') -> 'None': + """ + Sets the caption for the property sheet. + +Args: + + title(str):The new caption + +Returns: + + None + + """ + pass + + + def SetFinishText(self,text:'str') -> 'None': + """ + Sets the text for the Finish button + +Args: + + text(str):The next for the button + +Returns: + + None + + """ + pass + + + def SetWizardMode(self,) -> 'None': + """ + Enables the wizard mode + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWizardButtons(self,flags:'Any') -> 'None': + """ + Enables the wizard buttons + +Args: + + flags(Any):The wizard flags + +Returns: + + None + + """ + pass + + + def SetPSHBit(self,bitMask:'Any',bitValue:'Any') -> 'None': + """ + Sets or clears a bit in m_psh.dwFlags + +Args: + + bitMask(Any):The PSH_* bit mask constant + bitValue(Any):1 to set, 0 to clear + +Returns: + + None + + """ + pass + + +class PyCRect(object): + """A Python interface the the MFC CRect class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRgn(object): + """An object encapsulating an MFC PyCRgn class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRichEditCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Clear(self,) -> 'Any': + """ + Clears all text in an edit control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def Copy(self,) -> 'None': + """ + Copys the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates a rich edit control window. + +Args: + + style(Any):The control style + rect(Tuple[Any, Any, Any, Any]):The position of the control + parent(Any):The parent window. Must not be None + _id(Any):The control ID + +Returns: + + None + + """ + pass + + + def Cut(self,) -> 'None': + """ + Cuts the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def FindText(self,charPos:'Any') -> 'Tuple[Any, Any, Any]': + """ + Finds text in the control + +Args: + + charPos(Any):The character position + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetCharPos(self,charPos:'Any') -> 'Any': + """ + Returns the location of the top-left corner of the character specified + +by charPos. + +Args: + + charPos(Any):The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple + +Returns: + + Any:The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple + + + + """ + pass + + + def GetDefaultCharFormat(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any:CRichEditCtrl::GetDefaultCharFormat +Return ValueThe return value is a win32ui::CHARFORMAT tuple + + + + """ + pass + + + def GetEventMask(self,) -> 'Any': + """ + Returns the current event mask. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSelectionCharFormat(self,) -> 'Any': + """ + Returns the character formatting of the selection. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetFirstVisibleLine(self,) -> 'Any': + """ + Returns zero-based index of the topmost visible line. + +Args: + + + +Returns: + + Any:CRichEditCtrl::GetFirstVisibleLine +Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. + + + """ + pass + + + def GetParaFormat(self,) -> 'Any': + """ + Returns the current paragraph formatting attributes. + +Args: + + + +Returns: + + Any:CRichEditCtrl::GetParaFormat +Return ValueThe return value is a win32ui::PARAFORMAT tuple + + + + """ + pass + + + def GetSel(self,) -> 'Tuple[Any, Any]': + """ + Returns the start and end of the current selection. + +Args: + + + +Returns: + + Tuple[Any, Any]:CRichEditCtrl::GetSel +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the + +end of the current selection) + + + """ + pass + + + def GetSelText(self,) -> 'str': + """ + Returns the currently selected text + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTextLength(self,) -> 'Any': + """ + Returns the length of the text in the control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetLine(self,lineNo:'Any') -> 'Any': + """ + Returns the text in a specified line. + +Args: + + lineNo(Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. + +Returns: + + Any + + """ + pass + + + def GetModify(self,) -> 'Any': + """ + Nonzero if the text in this control has been modified; otherwise 0. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetLineCount(self,) -> 'Any': + """ + Gets the number of lines in an edit control. + +Args: + + + +Returns: + + Any:CRichEditCtrl::GetLineCount +Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. + + + """ + pass + + + def LimitText(self,nChars:'Any'=0) -> 'None': + """ + Sets max length of text that user can enter + +Args: + + nChars(Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References + +Returns: + + None + + """ + pass + + + def LineFromChar(self,charNo:'Any'=-1) -> 'Any': + """ + Returns the line number of the specified character. + +Args: + + charNo(Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References + +Returns: + + Any:CRichEditCtrl::LineFromChar +Return ValueThe zero-based line number of the line containing the character index specified by charNo. + +If charNo is -1, the number of the line that contains the first character of the selection is returned. + +If there is no selection, the current line number is returned. + + + """ + pass + + + def LineIndex(self,lineNo:'Any'=-1) -> 'Any': + """ + Retrieves the character index of a line within a multiple-line edit control. + +Args: + + lineNo(Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + Any:CRichEditCtrl::LineIndex +Return ValueThe character index of the line specified in lineNo, or -1 if + +the specified line number is greater then the number of lines in + +the edit control. + + + """ + pass + + + def LineScroll(self,nLines:'Any',nChars:'Any'=0) -> 'Any': + """ + Scroll the control vertically and horizontally + +Args: + + nLines(Any):Specifies the number of lines to scroll vertically. + nChars(Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + Any + + """ + pass + + + def Paste(self,) -> 'None': + """ + Pastes the contents of the clipboard into the control. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReplaceSel(self,text:'str') -> 'None': + """ + Replaces the selection with the specified text. + +Args: + + text(str):The text to replace the selection with.MFC References + +Returns: + + None + + """ + pass + + + def SetBackgroundColor(self,bSysColor:'Any',cr:'Any'=0) -> 'Any': + """ + Sets the background color for the control. + +Args: + + bSysColor(Any):Indicates if the background color should be set to the system value. If this value is TRUE, cr is ignored. + cr(Any):The requested background color. Used only if bSysColor is FALSE.MFC References + +Returns: + + Any:CRichEditCtrl::SetEventMask +Return ValueThe return value is the previous background color. + + + """ + pass + + + def SetDefaultCharFormat(self,charFormat:'Any') -> 'None': + """ + None + +Args: + + charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References + +Returns: + + None + + """ + pass + + + def SetEventMask(self,eventMask:'Any') -> 'Any': + """ + Sets the event motification mask. + +Args: + + eventMask(Any):The new event mask. Must be one of the win32con.ENM_* flags.MFC References + +Returns: + + Any:CRichEditCtrl::SetEventMask +Return ValueThe return value is the previous event mask. + + + """ + pass + + + def SetSelectionCharFormat(self,charFormat:'Any') -> 'None': + """ + Sets the current selections character formatting attributes. + +Args: + + charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References + +Returns: + + None + + """ + pass + + + def SetModify(self,modified:'Any'=1) -> 'None': + """ + Sets the modified flag for this control + +Args: + + modified(Any):Indicates the new value for the modified flag.MFC References + +Returns: + + None + + """ + pass + + + def SetOptions(self,op:'Any',flags:'Any') -> 'None': + """ + Sets options for the control. + +Args: + + op(Any):Indicates the operation. Must be one of the win32con.ECOOP_* flags. + flags(Any):Indicates the options. Must be one a combination of win32con.ECO_* flags.MFC References + +Returns: + + None + + """ + pass + + + def SetParaFormat(self,paraFormat:'Any') -> 'Any': + """ + Sets the paragraph formatting + +Args: + + paraFormat(Any):A charformat tuple. See win32ui::PARAFORMAT tuple for details.MFC References + +Returns: + + Any:CRichEditCtrl::SetParaFormat +Return ValueThis function seems to return occasionally return failure, but + +the formatting is applied. Therefore an exception is not raised on failure, + +but the BOOL return code is passed back. + + + """ + pass + + + def SetReadOnly(self,bReadOnly:'Any'=1) -> 'None': + """ + Sets or clears the read-only status of the listbox. + +Args: + + bReadOnly(Any):The read-only state to set.MFC References + +Returns: + + None + + """ + pass + + + def SetSel(self,start:'Any',end:'Any',arg:'Any') -> 'None': + """ + Sets the selection in the edit control. + +Args: + + start(Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. + end(Any):Specifies the ending position.Alternative Parameters + arg(Any):As for normal start, end args.MFC References + +Returns: + + None + + """ + pass + + + def SetSelAndCharFormat(self,charFormat:'Any') -> 'None': + """ + Sets the selection and char format. + +Args: + + charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.CommentsHighly optimised for speed for color editors.MFC References + +Returns: + + None + + """ + pass + + + def SetTargetDevice(self,dc:'Any',lineWidth:'Any') -> 'None': + """ + Sets the target device for the control + +Args: + + dc(Any):The new DC - may be None + lineWidth(Any):Line width to use for formatting.MFC References + +Returns: + + None + + """ + pass + + + def StreamIn(self,_format:'Any',method:'Any') -> 'Tuple[Any, Any]': + """ + Invokes a callback to stream data into the control. + +Args: + + _format(Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) + method(Any):A callable object (eg, a method or function) This method is called with a single integer param, which is the maximum number of bytes to fetch. The method should return a zero length string, or None to finish the operation, and a string otherwise.MFC References + +Returns: + + Tuple[Any, Any]:CRichEditCtrl::StreamIn +Return ValueThe return value is a tuple of (no bytes written, error code) + + + """ + pass + + + def StreamOut(self,_format:'Any',method:'Any') -> 'Tuple[Any, Any]': + """ + Invokes a callback to stream data into the control. + +Args: + + _format(Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) and may also combine SFF_SELECTION. + method(Any):A callable object (eg, a method or function) This method is called with a string parameter. It should return an integer, zero to abort, non zero otherwise.MFC References + +Returns: + + Tuple[Any, Any]:CRichEditCtrl::StreamOut +Return ValueThe return value is a tuple of (no bytes written, error code) + + + """ + pass + + +class PyCRichEditDoc(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCloseDocument(self,) -> 'None': + """ + Call the MFC OnCloseDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCRichEditDocTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoCreateRichEditDoc(self,fileName:'str'=None) -> 'Any': + """ + Creates an underlying document object. + +Args: + + fileName(str):The name of the file to load. + +Returns: + + Any + + """ + pass + + +class PyCRichEditView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetRichEditCtrl(self,) -> 'Any': + """ + Returns the underlying rich edit control object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetWordWrap(self,wordWrap:'Any') -> 'Any': + """ + Sets the wordwrap state for the control. + +Args: + + wordWrap(Any):The new word-wrap state.MFC References + +Returns: + + Any + + """ + pass + + + def WrapChanged(self,) -> 'Any': + """ + Calls the underlying WrapChanged method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SaveTextFile(self,FileName:'Any') -> 'Any': + """ + Saves the contents of the control as a test file + +Args: + + FileName(Any):Name of file to saveCommentsTheere is no equivilent MFC method. This is implemented in this module for performance reasons. + +Returns: + + Any + + """ + pass + + +class PyCScrollView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDeviceScrollPosition(self,) -> 'Tuple[Any, Any]': + """ + Returns the positon of the scroll bars in device units. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetDC(self,) -> 'Any': + """ + Gets the view's current DC. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetScrollPosition(self,) -> 'Tuple[Any, Any]': + """ + Returns the current position of the scroll bars (in logical units). + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def GetTotalSize(self,) -> 'Tuple[Any, Any]': + """ + Returns the total size of the view in logical units. + +Args: + + + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + + def ResizeParentToFit(self,bShrinkOnly:'Any'=1) -> 'Any': + """ + Lets the size of a view dictate the size of its frame window. + +Args: + + bShrinkOnly(Any):The kind of resizing to perform. The default value, TRUE, shrinks the frame window if appropriate.CommentsThis is recommended only for views in MDI child frame windows. Use ResizeParentToFit in the OnInitialUpdate handler function of your View class. You must ensure the parent's PyCFrameWnd::RecalcLayout is called before using this method. + +Returns: + + Any + + """ + pass + + + def SetScaleToFitSize(self,size:'Tuple[Any, Any]') -> 'None': + """ + Scales the viewport size to the current window size automatically. + +Args: + + size(Tuple[Any, Any]):The horizontal and vertical sizes to which the view is to be scaled. The scroll view's size is measured in logical units. + +Returns: + + None + + """ + pass + + + def ScrollToPosition(self,position:'Tuple[Any, Any]') -> 'None': + """ + Scrolls to a given point in the view. + +Args: + + position(Tuple[Any, Any]):The position to scroll to. + +Returns: + + None + + """ + pass + + + def SetScrollSizes(self,mapMode:'Any',sizeTotal:'Tuple[Any, Any]',arg:'Tuple[Any, Any]',arg1:'Tuple[Any, Any]') -> 'None': + """ + Sets the sizes of the scroll bars + +Args: + + mapMode(Any):The mapping mode for this view. + sizeTotal(Tuple[Any, Any]):The total size of the view. Sizes are in logical units. Both x and y must be greater than zero. + arg(Tuple[Any, Any]):The number of untils to scroll in response to a page-down command. + arg1(Tuple[Any, Any]):The number of untils to scroll in response to a line-down command. + +Returns: + + None + + """ + pass + + + def UpdateBars(self,) -> 'None': + """ + Update the scroll bars state + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCSliderCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(Any):The style for the control. + rect(Tuple[Any, Any, Any, Any]):The size and position of the control. + parent(Any):The parent window of the control. Usually a PyCDialog. + _id(Any):The control's ID. + +Returns: + + None + + """ + pass + + + def GetLineSize(self,) -> 'Any': + """ + Get the control's position + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetLineSize(self,nLineSize:'Any'=1) -> 'Any': + """ + Set the control's line size. Returns the previous line size. + +Args: + + nLineSize(Any):New line size of the Slider bar control + +Returns: + + Any + + """ + pass + + + def GetPageSize(self,) -> 'Any': + """ + Get the control's position + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetPageSize(self,nPageSize:'Any'=1) -> 'Any': + """ + Set the control's page size Returns the previous page size. + +Args: + + nPageSize(Any):New page size of the Slider bar control. + +Returns: + + Any + + """ + pass + + + def GetRangeMax(self,) -> 'Any': + """ + Get the control's Maximum + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRangeMin(self,) -> 'Any': + """ + Get the control's Minimum + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRange(self,) -> 'Any': + """ + Get the control's min and max + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetRange(self,nRangeMin:'Any'=1,nRangeMax:'Any'=1,bRedraw:'Any'=1) -> 'Any': + """ + Set the control's min and max + +Args: + + nRangeMin(Any):New minimum of the Slider bar control. + nRangeMax(Any):New maximum of the Slider bar control. + bRedraw(Any):Should slider be redrawn? + +Returns: + + Any + + """ + pass + + + def GetSelection(self,) -> 'Any': + """ + Get the control's selection start and end positions + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetSelection(self,nRangeMin:'Any'=1,nRangeMax:'Any'=1) -> 'Any': + """ + Set the control's selection start and end positions + +Args: + + nRangeMin(Any):New start of the Slider's selection. + nRangeMax(Any):New end of the Slider's selection. + +Returns: + + Any + + """ + pass + + + def GetChannelRect(self,) -> 'Any': + """ + Get the control's channel rectangle + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetThumbRect(self,) -> 'Any': + """ + Get the control's thumb rectangle + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetPos(self,) -> 'Any': + """ + Get the control's position + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetPos(self,nPos:'Any'=1) -> 'Any': + """ + Set the control's position + +Args: + + nPos(Any):New position of the Slider bar control. + +Returns: + + Any + + """ + pass + + + def GetNumTics(self,) -> 'Any': + """ + Get number of tics in the slider + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTicArray(self,) -> 'Any': + """ + Get a tuple of slider tic positions + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTic(self,nTic:'Any'=1) -> 'Any': + """ + Get the position of the specified tic number + +Args: + + nTic(Any):Zero based index of the tic mark + +Returns: + + Any + + """ + pass + + + def GetTicPos(self,nTic:'Any'=1) -> 'Any': + """ + Get the position of the specified tic number in client coordinates + +Args: + + nTic(Any):Zero based index of the tic mark + +Returns: + + Any + + """ + pass + + + def SetTic(self,nTic:'Any'=1) -> 'Any': + """ + Set a tic at the specified position + +Args: + + nTic(Any):Position of the desired tic mark + +Returns: + + Any + + """ + pass + + + def SetTicFreq(self,nFreq:'Any'=1) -> 'Any': + """ + Set the tic frequency + +Args: + + nFreq(Any):Frequency of tic marks + +Returns: + + Any + + """ + pass + + + def ClearSel(self,bRedraw:'Any'=1) -> 'Any': + """ + Clear the selection + +Args: + + bRedraw(Any):Redraw the control? + +Returns: + + Any + + """ + pass + + + def VerifyPos(self,) -> 'Any': + """ + Verify the position is between configured min and max + +Args: + + + +Returns: + + Any + + """ + pass + + + def ClearTics(self,bRedraw:'Any'=1) -> 'Any': + """ + Clear the control's tic marks + +Args: + + bRedraw(Any):Redraw the control? + +Returns: + + Any + + """ + pass + + +class PyCSpinButtonCtrl(object): + """A windows spin button control. Encapsulates an MFC CSpinButtonCtrl object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPos(self,) -> 'Any': + """ + Obtains the current position for a spin button control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetPos(self,pos:'Any') -> 'Any': + """ + Sets the current position for a spin button control. + +Args: + + pos(Any):The new position.Return ValueThe result is the previous position. + +Returns: + + Any:The new position.Return ValueThe result is the previous position. + + + """ + pass + + + def SetRange(self,) -> 'Any': + """ + Sets the upper and lower limits (range) for a spin button control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetRange32(self,) -> 'Any': + """ + Sets the 32 bit upper and lower limits (range) for a spin button control. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCSplitterWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPane(self,row:'Any',col:'Any') -> 'Any': + """ + None + +Args: + + row(Any):The row in the splitter. + col(Any):The column in the splitter.CommentsTheoretically the return value can be a PyCWnd object, but currently it will always be a PyCView or derived object. + +Returns: + + Any + + """ + pass + + + def CreateView(self,view:'Any',row:'Any',col:'Any',arg:'Tuple[Any, Any]') -> 'None': + """ + Creates a view in a splitter window + +Args: + + view(Any):The view to place in the splitter pane. + row(Any):The row in the splitter to place the view. + col(Any):The column in the splitter to place the view. + arg(Tuple[Any, Any]):The initial size of the new view.MFC References + +Returns: + + None + + """ + pass + + + def CreateStatic(self,parent:'Any',rows:'Any',cols:'Any',style:'Any',_id:'Any') -> 'None': + """ + Creates a static splitter window. + +Args: + + parent(Any):The parent window. + rows(Any):The number of rows in the splitter. + cols(Any):The number of columns in the splitter. + style(Any):Specifies the window style + _id(Any):The child window ID of the window. The ID can be AFX_IDW_PANE_FIRST unless the splitter window is nested inside another splitter window.CommentsA static splitter window is a splitter where the number of panes are fixed at window creation time. Currently this is the only splitter window supported by win32ui.MFC References + +Returns: + + None + + """ + pass + + + def SetColumnInfo(self,column:'Any',ideal:'Any',_min:'Any') -> 'None': + """ + Sets a new minimum height and ideal height for a column + +Args: + + column(Any):The column in the splitter. + ideal(Any):Specifies an ideal height for the splitter window column in pixels. + _min(Any):Specifies a minimum height for the splitter window column in pixels. + +Returns: + + None + + """ + pass + + + def SetRowInfo(self,row:'Any',ideal:'Any',_min:'Any') -> 'None': + """ + Sets a new minimum height and ideal height for a row. + +Args: + + row(Any):The row in the splitter. + ideal(Any):Specifies an ideal height for the splitter window row in pixels. + _min(Any):Specifies a minimum height for the splitter window row in pixels. + +Returns: + + None + + """ + pass + + + def IdFromRowCol(self,row:'Any',col:'Any') -> 'None': + """ + Gets the child window ID for the specified child. + +Args: + + row(Any):The row in the splitter. + col(Any):The col in the splitter + +Returns: + + None + + """ + pass + + + def DoKeyboardSplit(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCStatusBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPaneInfo(self,index:'Any') -> 'Tuple[Any, Any, Any]': + """ + Returns the id, style, and width of the indicator pane at the + +location specified by index. + +Args: + + index(Any):Index of the pane whose information is to be retrieved.MFC References + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetStatusBarCtrl(self,) -> 'Any': + """ + Gets the statusbar control object for the statusbar. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetIndicators(self,indicators:'Any') -> 'None': + """ + Sets each indicator's ID. + +Args: + + indicators(Any):A tuple containing the ID's of the indicators. + +Returns: + + None + + """ + pass + + + def SetPaneInfo(self,index:'Any',_id:'Any',style:'Any',width:'Any') -> 'None': + """ + Sets the specified indicator pane to a new ID, style, and width. + +Args: + + index(Any):Index of the indicator pane whose style is to be set. + _id(Any):New ID for the indicator pane. + style(Any):New style for the indicator pane.The following indicator styles are supported:afxres.SBPS_NOBORDERS - No 3-D border around the pane.afxres.SBPS_POPOUT - Reverse border so that text "pops out."afxres.SBPS_DISABLED - Do not draw text.afxres.SBPS_STRETCH - Stretch pane to fill unused space. Only one pane per status bar can have this style.afxres.SBPS_NORMAL - No stretch, borders, or pop-out. + width(Any):New width for the indicator pane.MFC References + +Returns: + + None + + """ + pass + + +class PyCStatusBarCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(Any):The style for the control. + rect(Tuple[Any, Any, Any, Any]):The size and position of the control. + parent(Any):The parent window of the control. Usually a PyCDialog. + _id(Any):The control's ID. + +Returns: + + None + + """ + pass + + + def GetBorders(self,) -> 'Tuple[Any, Any, Any]': + """ + Retrieve the status bar control's current widths of + +the horizontal and vertical borders and of the space between rectangles. + +Args: + + + +Returns: + + Tuple[Any, Any, Any] + + """ + pass + + + def GetParts(self,nParts:'Any') -> 'Any': + """ + Retrieve coordinates of the parts in a status bar control. + +Args: + + nParts(Any):The number of coordinates to retrieveCommentsThis function, as designed in MFC, returns both the *number* of parts, and, through an OUT parameter, an array of ints giving the coordinates of the parts. There is also an IN parameter saying how many coordinates to give back. Here, we're explicitly changing the semantics a bit.GetParts() -> Tuple of all coordinates GetParts(n) -> Tuple of the first n coordinates (or all coordinates, if fewer than n)So, in Python, you can't simultaneously find out how many coordinates there are, and retrieve a subset of them. In a reasonable universe, there would have been GetParts() -> int, and GetCoords() -> List. This means that I need to call the MFC method twice; once to find out how many there are, and another time to get them. + +Returns: + + Any + + """ + pass + + + def GetRect(self,nPane:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the bounding rectangle of a part in a status + +bar control. + +Args: + + nPane(Any):Zero-based index of the part whose bounding rectangle is to be retrieved. + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetText(self,nPane:'Any') -> 'Any': + """ + Retrieve the text from the given part of a status bar control. + +Args: + + nPane(Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetTextAttr(self,nPane:'Any') -> 'Any': + """ + Retrieve the attributes of the text in the given part of a status bar + +control. + +Args: + + nPane(Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetTextLength(self,nPane:'Any') -> 'Any': + """ + Retrieve the length the text in the given part of a status bar control. + +Args: + + nPane(Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def SetMinHeight(self,nHeight:'Any') -> 'None': + """ + Set the minimum height of a status bar control's drawing area. + +Args: + + nHeight(Any):Minimum height + +Returns: + + None + + """ + pass + + + def SetParts(self,coord:'Any') -> 'None': + """ + Sets the number of parts in a status bar control and the coordinate of the right + +edge of each part. + +Args: + + coord(Any):Coordinates of each part + +Returns: + + None + + """ + pass + + + def SetText(self,text:'str',nPane:'Any',nType:'Any') -> 'None': + """ + Set the text in the given part of a status bar control. + +Args: + + text(str):The text to display + nPane(Any):Zero-based index of the part to set. + nType(Any):Type of drawing operation.CommentsThe drawing type can be set to one of:~ 0 - The text is drawn with a border to appear lower than the plane of the status bar.~ win32con.SBT_NOBORDERS - The text is drawn without borders.~ win32con.SBT_OWNERDRAW - The text is drawn by the parent window.~ win32con.SBT_POPOUT - The text is drawn with a border to appear higher than the plane of the status bar. + +Returns: + + None + + """ + pass + + + def SetTipText(self,nPane:'Any',text:'str') -> 'None': + """ + Sets the tooltip text for a pane in a status bar. The status bar must have + +been created with the afxres.SBT_TOOLTIPS control style to enable ToolTips. + +Args: + + nPane(Any):The zero-based index of status bar pane to receive the tooltip text. + text(str):The string containing the tooltip text.CommentsPay attention, this tooltip text is ONLY displayed in two situations: 1. When the corresponding pane in the status bar contains only an icon. 2. When the corresponding pane in the status bar contains text that is truncated due to the size of the pane. To make the tooltip appear even if the text is not truncated, you could add additional spaces to the end of the pane text.MFC References + +Returns: + + None + + """ + pass + + +class PyCTabCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCurSel(self,) -> 'Any': + """ + Gets the current selection of a tab control. + +Args: + + + +Returns: + + Any:PyCTabCtrl.GetCurSel + +int = GetCurSel()Gets the current selection of a tab control. +Return ValueThe zero-based index of the currently selected item, or -1 if no selection. + + + """ + pass + + + def GetItemCountl(self,) -> 'Any': + """ + Returns the number of tabs in the control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetCurSel(self,index:'Any') -> 'Any': + """ + Sets the current selection of a tab control. + +Args: + + index(Any):The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. + +Returns: + + Any:The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. + + + """ + pass + + +class PyCToolBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetButtonStyle(self,index:'Any') -> 'None': + """ + Retrieves the style for a button. + +Args: + + index(Any):Index of the item whose style is to be retrieved. + +Returns: + + None + + """ + pass + + + def GetButtonText(self,index:'Any') -> 'str': + """ + Gets the text for a button. + +Args: + + index(Any):Index of the item whose text is to be retrieved. + +Returns: + + str + + """ + pass + + + def GetItemID(self,index:'Any') -> 'None': + """ + Returns the command ID of a button or separator at the given index. + +Args: + + index(Any):Index of the item whose ID is to be retrieved. + +Returns: + + None + + """ + pass + + + def SetButtonInfo(self,index:'Any',ID:'Any',style:'Any',imageIx:'Any') -> 'None': + """ + Sets the button's command ID, style, and image number. + +Args: + + index(Any):Index of the button or separator whose information is to be set. + ID(Any):The value to which the button's command ID is set. + style(Any):The new button style + imageIx(Any):New index for the button's image within the bitmap + +Returns: + + None + + """ + pass + + + def GetToolBarCtrl(self,) -> 'Any': + """ + Gets the toolbar control object for the toolbar + +Args: + + + +Returns: + + Any + + """ + pass + + + def LoadBitmap(self,_id:'PyResourceId') -> 'None': + """ + Loads the bitmap containing bitmap-button images. + +Args: + + _id(PyResourceId):Name or id of the resource that contains the bitmap.CommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. + +Returns: + + None + + """ + pass + + + def LoadToolBar(self,_id:'PyResourceId') -> 'None': + """ + Loads a toolbar from a toolbar resource. + +Args: + + _id(PyResourceId):Name or resource id of the resourceCommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. + +Returns: + + None + + """ + pass + + + def SetBarStyle(self,style:'Any') -> 'None': + """ + Sets the toolbar part of style + +Args: + + style(Any):The toolbar style to set. + +Returns: + + None + + """ + pass + + + def SetBitmap(self,hBitmap:'Any') -> 'None': + """ + Sets a bitmapped image. + +Args: + + hBitmap(Any):The handle to a bitmap resource.CommentsCall this method to set the bitmap image for the toolbar. For example, call SetBitmap to change the bitmapped image after the user takes an action on a document that changes the action of a button. + +Returns: + + None + + """ + pass + + + def SetButtons(self,buttons:'Any',numButtons:'Any') -> 'None': + """ + Sets button styles and an index of button images within the bitmap. + +Args: + + buttons(Any):A tuple containing the ID's of the buttons.Alternative Parameters + numButtons(Any):The number of buttons to pre-allocate. If this option is used, then PyCToolBar::PySetButtonInfo must be used. + +Returns: + + None + + """ + pass + + + def SetButtonStyle(self,index:'Any',style:'Any') -> 'None': + """ + Sets the style for a button. + +Args: + + index(Any):Index of the item whose style is to be set + style(Any):The new style + +Returns: + + None + + """ + pass + + + def SetHeight(self,height:'Any') -> 'None': + """ + Sets the height of the toolbar. + +Args: + + height(Any):The height in pixels of the toolbar. + +Returns: + + None + + """ + pass + + + def SetSizes(self,sizeButton:'Tuple[Any, Any]',sizeButton1:'Tuple[Any, Any]') -> 'None': + """ + Sets the size of each button. + +Args: + + sizeButton(Tuple[Any, Any]):The size of each button. + sizeButton1(Tuple[Any, Any]):The size of each bitmap. + +Returns: + + None + + """ + pass + + +class PyCToolBarCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddBitmap(self,numButtons:'Any',bitmap:'Any') -> 'Any': + """ + Add one or more button images to the list of button images + +Args: + + numButtons(Any):Number of button images in the bitmap. + bitmap(Any):Bitmap containing button or buttons to be addedMFC References + +Returns: + + Any + + """ + pass + + + def AddButtons(self,) -> 'Any': + """ + Add one or more buttons to the toolbar + +Args: + + + +Returns: + + Any + + """ + pass + + + def AddStrings(self,strings:'Any') -> 'Any': + """ + Add one or more strings to the toolbar + +Args: + + strings(Any):Strings to add. Can give more than one string. + +Returns: + + Any + + """ + pass + + + def AutoSize(self,) -> 'None': + """ + Resize the entire toolbar control + +Args: + + + +Returns: + + None + + """ + pass + + + def CheckButton(self,nID:'Any',bCheck:'Any'=1) -> 'Any': + """ + Check or clear a given button in a toolbar control + +Args: + + nID(Any):Command identifier of the button to check or clear. + bCheck(Any):1 to check, 0 to clear the buttonMFC References + +Returns: + + Any + + """ + pass + + + def CommandToIndex(self,nID:'Any') -> 'Any': + """ + Retrieve the zero-based index for the button associated with the + +specified command identifier. + +Args: + + nID(Any):Command identifier of the button you want to find.MFC References + +Returns: + + Any + + """ + pass + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': + """ + Creates the window for a new toolbar object + +Args: + + style(Any):The style for the button. Use any of the win32con.BS_* constants. + rect(Tuple[Any, Any, Any, Any]):The size and position of the button. + parent(Any):The parent window of the button. Usually a PyCDialog. + _id(Any):The buttons control ID.MFC References + +Returns: + + None + + """ + pass + + + def Customize(self,) -> 'None': + """ + Display the Customize Toolbar dialog box. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteButton(self,nID:'Any') -> 'None': + """ + Delete a button from the toolbar control. + +Args: + + nID(Any):ID of the button to delete.MFC References + +Returns: + + None + + """ + pass + + + def EnableButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': + """ + Enable or disable a toolbar control button. + +Args: + + nID(Any):ID of the button to enable or disable. + bEnable(Any):1 to enable, 0 to disableMFC References + +Returns: + + None + + """ + pass + + + def GetBitmapFlags(self,) -> 'Any': + """ + retrieve the bitmap flags from the toolbar. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetButton(self,nID:'Any') -> 'Any': + """ + Retrieve information about the specified button in a + +toolbar control. + +Args: + + nID(Any):ID of the button to retrieve.MFC References + +Returns: + + Any + + """ + pass + + + def GetButtonCount(self,) -> 'Any': + """ + Retrieve a count of the buttons currently in the toolbar control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItemRect(self,nID:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieve the bounding rectangle of a button in a + +toolbar control. + +Args: + + nID(Any):ID of the button.MFC References + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetRows(self,) -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieve the number of rows of buttons currently displayed + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def HideButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': + """ + Hide or show the specified button in a toolbar control. + +Args: + + nID(Any):ID of the button to hide. + bEnable(Any):1 to hide, 0 to show.MFC References + +Returns: + + None + + """ + pass + + + def Indeterminate(self,nID:'Any',bEnable:'Any'=1) -> 'None': + """ + Mark or unmark the specified button as indeterminate + +Args: + + nID(Any):ID of the button to mark. + bEnable(Any):1 to hide, 0 to show.MFC References + +Returns: + + None + + """ + pass + + + def InsertButton(self,nID:'Any',button:'Any') -> 'Any': + """ + Insert a button in a toolbar control. + +Args: + + nID(Any):Zero-based index of a button. This function inserts the new button to the left of this button. + button(Any):Bitmap containing button to be insertedCommentsThe image and/or string whose index you provide must have previously been added to the toolbar control's list using PyCToolBarCtrl::AddBitmap, PyCToolBarCtrl::AddString, and/or PyCToolBarCtrl::AddStrings.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonChecked(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is checked. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonEnabled(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is enabled. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonHidden(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is hidden. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonIndeterminate(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is + +indeterminate. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsButtonPressed(self,nID:'Any') -> 'Any': + """ + Determine whether the specified button in a toolbar control is pressed. + +Args: + + nID(Any):ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def PressButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': + """ + Mark or unmark the specified button as pressed. + +Args: + + nID(Any):ID of the button to mark. + bEnable(Any):1 to mark, 0 to unmark.MFC References + +Returns: + + None + + """ + pass + + + def SetBitmapSize(self,width1:'Any',height1:'Any',width:'Any'=16,height:'Any'=15) -> 'None': + """ + Set the size of the actual bitmapped images to be added to a toolbar control. + +Args: + + width1(Any):Width of bitmap images. + height1(Any):Height of bitmap images.MFC References + width(Any):Width of bitmap images. + height(Any):Height of bitmap images.Alternative Parameters + +Returns: + + None + + """ + pass + + + def SetButtonSize(self,width1:'Any',height1:'Any',width:'Any'=16,height:'Any'=15) -> 'None': + """ + Set the size of the buttons to be added to a toolbar control. + +Args: + + width1(Any):Width of bitmap images. + height1(Any):Height of bitmap images.MFC References + width(Any):Width of buttons + height(Any):Height of buttonsAlternative Parameters + +Returns: + + None + + """ + pass + + + def SetCmdID(self,nIndex:'Any',nID:'Any') -> 'None': + """ + Set the command identifier which will be sent to the owner window when the + +specified button is pressed. + +Args: + + nIndex(Any):The zero-based index of the button whose command ID is to be set. + nID(Any):The command ID to set the selected button to.MFC References + +Returns: + + None + + """ + pass + + + def SetRows(self,nRows:'Any',bLarger:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Ask the toolbar control to resize itself to the requested + +number of rows. + +Args: + + nRows(Any):Requested number of rows. + bLarger(Any):Tells whether to use more rows or fewer rows if the toolbar cannot be resized to the requested number of rows.MFC References + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + +class PyCToolTipCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'Any',style:'Any') -> 'None': + """ + Creates the actual control. + +Args: + + parent(Any):The parent window of the control. + style(Any):The style for the control. + +Returns: + + None + + """ + pass + + + def UpdateTipText(self,text:'str',wnd:'Any',_id:'Any') -> 'None': + """ + Update the tool tip text for a control's tools + +Args: + + text(str):The text for the tool. + wnd(Any):The window of the tool. + _id(Any):The id of the tool + +Returns: + + None + + """ + pass + + + def AddTool(self,wnd:'Any',text:'str',_id:'Any',rect:'Tuple[Any, Any, Any, Any]'=None) -> 'None': + """ + Adds a tool to tooltip control. + +Args: + + wnd(Any):The window of the tool. + text(str):The text for the tool. + _id(Any):The id of the tool + rect(Tuple[Any, Any, Any, Any]):The default rectangle + +Returns: + + None + + """ + pass + + + def SetMaxTipWidth(self,width:'Any') -> 'Any': + """ + None + +Args: + + width(Any):The new width + +Returns: + + Any + + """ + pass + + +class PyCTreeCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',PyCWnd:'Any',_id:'Any') -> 'None': + """ + Creates the actual window for the object. + +Args: + + style(Any):The window style + rect(Tuple[Any, Any, Any, Any]):The default rectangle + PyCWnd(Any):The parent window + _id(Any):The control IDMFC References + +Returns: + + None + + """ + pass + + + def GetCount(self,) -> 'Any': + """ + Retrieves the number of tree items associated with a tree view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetIndent(self,) -> 'Any': + """ + Retrieves the offset (in pixels) of a tree view item from its parent. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetIndent(self,indent:'Any') -> 'None': + """ + Sets the offset (in pixels) of a tree view item from its parent. + +Args: + + indent(Any):The new indent. + +Returns: + + None + + """ + pass + + + def GetImageList(self,nImageList:'Any') -> 'Any': + """ + Retrieves the current image list. + +Args: + + nImageList(Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. + +Returns: + + Any + + """ + pass + + + def SetImageList(self,imageList:'Any',imageType:'Any') -> 'Any': + """ + Assigns an image list to a list view control. + +Args: + + imageList(Any):The Image List to use. + imageType(Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE + +Returns: + + Any + + """ + pass + + + def GetNextItem(self,item:'Any',code:'Any') -> 'Any': + """ + Retrieves the next item. + +Args: + + item(Any):The specified item + code(Any):Specifies the relationship of the item to fetch. + +Returns: + + Any + + """ + pass + + + def ItemHasChildren(self,item:'Any') -> 'Any': + """ + Returns nonzero if the specified item has child items. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetChildItem(self,item:'Any') -> 'Any': + """ + Retrieves the first child item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetNextSiblingItem(self,item:'Any') -> 'Any': + """ + Retrieves the next sibling of the specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetPrevSiblingItem(self,item:'Any') -> 'Any': + """ + Retrieves the previous sibling of the specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetParentItem(self,item:'Any') -> 'Any': + """ + Retrieves the parent item of the specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetFirstVisibleItem(self,) -> 'Any': + """ + Retrieves the first visible item of the tree view control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetNextVisibleItem(self,item:'Any') -> 'Any': + """ + Retrieves the next visible item of the specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + Any + + """ + pass + + + def GetSelectedItem(self,) -> 'Any': + """ + Retrieves the currently selected tree view item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDropHilightItem(self,) -> 'Any': + """ + Retrieves the target of a drag-and-drop operation. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetRootItem(self,) -> 'Any': + """ + Retrieves the root of the specified tree view item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetToolTips(self,) -> 'Any': + """ + Returns the tooltip control + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetItem(self,item:'Any',arg:'Any') -> 'Any': + """ + Retrieves the details of an items attributes. + +Args: + + item(Any):The item whose attributes are to be retrieved. + arg(Any):The requested attributes. + +Returns: + + Any + + """ + pass + + + def SetItem(self,item:'Any') -> 'Any': + """ + Sets some of all of an items attributes. + +Args: + + item(Any):A tuple describing the new item. + +Returns: + + Any + + """ + pass + + + def GetItemState(self,item:'Any',stateMask:'Any') -> 'Tuple[Any, Any]': + """ + Retrieves the state and mask of an item. + +Args: + + item(Any):The specified item + stateMask(Any):The mask for the result. + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetItemState(self,item:'Any',state:'Any',stateMask:'Any') -> 'None': + """ + Sets the state of item. + +Args: + + item(Any):The specified item + state(Any):The new state + stateMask(Any):The mask for the new state + +Returns: + + None + + """ + pass + + + def GetItemImage(self,item:'Any') -> 'Tuple[Any, Any]': + """ + Retrieves the index of an items images. + +Args: + + item(Any):The specified item + +Returns: + + Tuple[Any, Any] + + """ + pass + + + def SetItemImage(self,item:'Any',iImage:'Any',iSelectedImage:'Any') -> 'None': + """ + Sets the index of an items images. + +Args: + + item(Any):The specified item + iImage(Any):The offset of the image. + iSelectedImage(Any):The offset of the selected image. + +Returns: + + None + + """ + pass + + + def SetItemText(self,item:'Any',text:'str') -> 'Any': + """ + Changes the text of a list view item or subitem. + +Args: + + item(Any):The item whose text is to be retrieved. + text(str):String that contains the new item text. + +Returns: + + Any + + """ + pass + + + def GetItemText(self,item:'Any') -> 'Any': + """ + Retrieves the text of a list view item or subitem. + +Args: + + item(Any):The item whose text is to be retrieved. + +Returns: + + Any + + """ + pass + + + def GetItemData(self,item:'Any') -> 'Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(Any):The index of the item whose data is to be retrieved. + +Returns: + + Any + + """ + pass + + + def SetItemData(self,item:'Any',Data:'Any') -> 'Any': + """ + Sets the item's application-specific value. + +Args: + + item(Any):The item whose Data is to be set. + Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + Any + + """ + pass + + + def GetItemRect(self,item:'Any',bTextOnly:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Retrieves the bounding rectangle of a tree view item. + +Args: + + item(Any):The item whose Data is to be set. + bTextOnly(Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the tree view control. + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetEditControl(self,) -> 'Any': + """ + Retrieves the handle of the edit control used to edit the specified + +tree view item. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetVisibleCount(self,) -> 'Any': + """ + Retrieves the number of visible tree items associated with a tree view + +control. + +Args: + + + +Returns: + + Any + + """ + pass + + + def InsertItem(self,hParent:'Any',hInsertAfter:'Any',item:'Any',mask:'Any',text:'Any',image:'Any',selectedImage:'Any',state:'Any',stateMask:'Any',lParam:'Any',parent:'Any',parent1:'Any',text1:'Any',image1:'Any',selectedImage1:'Any',parent2:'Any',insertAfter:'Any',text2:'Any',parent3:'Any',parent4:'Any') -> 'Any': + """ + Inserts an item into the list. + +Args: + + hParent(Any):The parent item. If commctrl.TVI_ROOT or 0, it is added to the root. + hInsertAfter(Any):The item to insert after. Can be an item or TVI_FIRST, TVI_LAST or TVI_SORT + item(Any):A tuple describing the new item.Alternative Parameters + mask(Any):Integer specifying which attributes to set + text(Any):The text of the item. + image(Any):The index of the image to use. + selectedImage(Any):The index of the items selected image. + state(Any):The initial state of the item. + stateMask(Any):Specifies which bits of the state are valid. + lParam(Any):A user defined object for the item. + parent(Any):The parent of the item. + parent1(Any):The parent of the item.Alternative Parameters + text1(Any):The text for the item. + image1(Any):The index of the image to use. + selectedImage1(Any):The index of the items selected image. + parent2(Any):The parent of the item. + insertAfter(Any):The item to insert the new item after, or TVI_FIRST, TVI_LAST or TVI_SORTAlternative Parameters + text2(Any):The text for the item. + parent3(Any):The parent of the item. + parent4(Any):The parent of the item. + +Returns: + + Any + + """ + pass + + + def DeleteItem(self,item:'Any') -> 'None': + """ + Deletes the specified item. + +Args: + + item(Any):The specified item + +Returns: + + None + + """ + pass + + + def DeleteAllItems(self,) -> 'Any': + """ + Deletes all items in the control + +Args: + + + +Returns: + + Any + + """ + pass + + + def Expand(self,item:'Any',code:'Any') -> 'None': + """ + Expands, or collapses, the child items of the specified tree view item. + +Args: + + item(Any):The specified item + code(Any):The action to take + +Returns: + + None + + """ + pass + + + def Select(self,item:'Any',code:'Any') -> 'None': + """ + Selects, scrolls into view, or redraws a specified tree view item. + +Args: + + item(Any):The specified item + code(Any):The action to take + +Returns: + + None + + """ + pass + + + def SelectItem(self,item:'Any') -> 'None': + """ + Selects a specified tree view item. + +Args: + + item(Any):The specified item + +Returns: + + None + + """ + pass + + + def SelectDropTarget(self,item:'Any') -> 'None': + """ + Redraws the tree item as the target of a drag-and-drop operation. + +Args: + + item(Any):The specified item + +Returns: + + None + + """ + pass + + + def SelectSetFirstVisible(self,item:'Any') -> 'None': + """ + Selects a specified tree view item as the first visible item. + +Args: + + item(Any):The specified item + +Returns: + + None + + """ + pass + + + def EditLabel(self,item:'Any') -> 'Any': + """ + Edits a specified tree view item in-place. + +Args: + + item(Any):The item to edit. + +Returns: + + Any + + """ + pass + + + def CreateDragImage(self,item:'Any') -> 'Any': + """ + Creates a dragging bitmap for the specified tree view item. + +Args: + + item(Any):The item to edit. + +Returns: + + Any + + """ + pass + + + def SortChildren(self,item:'Any') -> 'None': + """ + Sorts the children of a given parent item. + +Args: + + item(Any):The specified parent item + +Returns: + + None + + """ + pass + + + def EnsureVisible(self,item:'Any') -> 'Any': + """ + Ensures that a tree view item is visible in its tree view control. + +Args: + + item(Any):The item to edit. + +Returns: + + Any + + """ + pass + + + def HitTest(self,arg:'Any') -> 'Tuple[Any, Any]': + """ + Determines which tree view item, if any, is at a specified position. + +Args: + + arg(Any):The point to test.Return ValueThe result is a tuple of (flags, hItem). flags may be a combination of the following values:ValueDescriptioncommctrl.TVHT_ABOVEAbove the client area.commctrl.TVHT_BELOWBelow the client area.commctrl.TVHT_NOWHEREIn the client area, but below the last item.commctrl.TVHT_ONITEMOn the bitmap or label associated with an item.commctrl.TVHT_ONITEMBUTTONOn the button associated with an item.commctrl.TVHT_ONITEMICONOn the bitmap associated with an item.commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item.commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item.commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item.commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state.commctrl.TVHT_TOLEFTTo the left of the client area.commctrl.TVHT_TORIGHTTo the right of the client area. + +Returns: + + Tuple[Any, Any]:The point to test.Return ValueThe result is a tuple of (flags, hItem). + +flags may be a combination of the following values: + + + +Value + + +Description + + + +commctrl.TVHT_ABOVEAbove the client area. +commctrl.TVHT_BELOWBelow the client area. +commctrl.TVHT_NOWHEREIn the client area, but below the last item. +commctrl.TVHT_ONITEMOn the bitmap or label associated with an item. +commctrl.TVHT_ONITEMBUTTONOn the button associated with an item. +commctrl.TVHT_ONITEMICONOn the bitmap associated with an item. +commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item. +commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item. +commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item. +commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state. +commctrl.TVHT_TOLEFTTo the left of the client area. +commctrl.TVHT_TORIGHTTo the right of the client area. + + + """ + pass + + +class PyCTreeView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + Any + + """ + pass + + + def GetTreeCtrl(self,) -> 'Any': + """ + Returns the underlying tree control object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(Any): + lparam(Any):See Also + +Returns: + + None + + """ + pass + + +class PyCView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'Any',arg:'Any',arg1:'Any',arg2:'Tuple[Any, Any, Any, Any]') -> 'None': + """ + Creates the window for a view. + +Args: + + parent(Any):The parent window (usually a frame) + arg(Any):The child ID for the view + arg1(Any):The style for the view + arg2(Tuple[Any, Any, Any, Any]):The default position of the window. + +Returns: + + None + + """ + pass + + + def GetDocument(self,) -> 'Any': + """ + Returns the document for a view. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnActivateView(self,activate:'Any',activateView:'Any',DeactivateView:'Any') -> 'Any': + """ + Calls the underlying MFC OnActivateView method. + +Args: + + activate(Any):Indicates whether the view is being activated or deactivated. + activateView(Any):The view object that is being activated. + DeactivateView(Any):The view object that is being deactivated.See Also + +Returns: + + Any + + """ + pass + + + def OnInitialUpdate(self,) -> 'None': + """ + Calls the underlying MFC OnInitialUpdate method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnMouseActivate(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': + """ + Calls the base MFC OnMouseActivate function. + +Args: + + wnd(Any): + hittest(Any): + message(Any):See Also + +Returns: + + Any + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def OnFilePrint(self,) -> 'None': + """ + Calls the underlying MFC OnFilePrint method. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoPreparePrinting(self,) -> 'Any': + """ + Invoke the Print dialog box and create a printer device context. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnBeginPrinting(self,) -> 'None': + """ + Calls the underlying MFC OnBeginPrinting method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnEndPrinting(self,) -> 'None': + """ + Calls the underlying MFC OnEndPrinting method. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCWinApp(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddDocTemplate(self,template:'Any') -> 'None': + """ + Adds a template to the application list. + +Args: + + template(Any):The template to be added. + +Returns: + + None + + """ + pass + + + def FindOpenDocument(self,fileName:'str') -> 'Any': + """ + Returns an existing document with the specified file name. + +Args: + + fileName(str):The fully qualified filename to search for. + +Returns: + + Any + + """ + pass + + + def GetDocTemplateList(self,) -> 'List[Any]': + """ + Returns a list of all document templates. + +Args: + + + +Returns: + + List[Any] + + """ + pass + + + def InitDlgInstance(self,dialog:'Any') -> 'None': + """ + Calls critical InitInstance processing for a dialog based application. + +Args: + + dialog(Any):The dialog object to be used as the main window for the application. + +Returns: + + None + + """ + pass + + + def LoadCursor(self,cursorId:'PyResourceId') -> 'Any': + """ + Loads a cursor. + +Args: + + cursorId(PyResourceId):The resource id or name of the cursor to load. + +Returns: + + Any + + """ + pass + + + def LoadStandardCursor(self,cursorId:'PyResourceId') -> 'Any': + """ + Loads a standard cursor. + +Args: + + cursorId(PyResourceId):The resource ID or name of the cursor to load. + +Returns: + + Any + + """ + pass + + + def LoadOEMCursor(self,cursorId:'Any') -> 'Any': + """ + Loads an OEM cursor. + +Args: + + cursorId(Any):The ID of the cursor to load. + +Returns: + + Any + + """ + pass + + + def LoadIcon(self,idResource:'Any') -> 'Any': + """ + Loads an icon resource. + +Args: + + idResource(Any):The ID of the icon to load. + +Returns: + + Any + + """ + pass + + + def LoadStandardIcon(self,resourceName:'PyResourceId') -> 'Any': + """ + Loads an icon resource. + +Args: + + resourceName(PyResourceId):The resource name or id of the standard icon to load. + +Returns: + + Any + + """ + pass + + + def OpenDocumentFile(self,fileName:'str') -> 'None': + """ + Opens a document file by name. + +Args: + + fileName(str):The name of the document to open. + +Returns: + + None + + """ + pass + + + def OnFileNew(self,) -> 'None': + """ + Calls the underlying OnFileNew MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnFileOpen(self,) -> 'None': + """ + Calls the underlying OnFileOpen MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def RemoveDocTemplate(self,template:'Any') -> 'None': + """ + Removes a template to the application list. + +Args: + + template(Any):The template to be removed. Must have previously been added by PyCWinApp::AddDocTemplate.CommentsNote that MFC does not provide an equivilent function. + +Returns: + + None + + """ + pass + + + def Run(self,) -> 'Any': + """ + Starts the message pump. Advanced users only + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsInproc(self,) -> 'Any': + """ + Returns a flag to indicate if the created CWinApp was in the DLL, or an external + +EXE. + +Args: + + + +Returns: + + Any + + """ + pass + + +class PyCWinThread(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateThread(self,) -> 'None': + """ + Creates the actual thread behind the thread object. + +Args: + + + +Returns: + + None + + """ + pass + + + def PumpIdle(self,) -> 'None': + """ + Pumps all idle messages. + +Args: + + + +Returns: + + None + + """ + pass + + + def PumpMessages(self,) -> 'None': + """ + Pumps all messages to the application until a WM_QUIT message is received. + +Args: + + + +Returns: + + None + + """ + pass + + + def Run(self,) -> 'Any': + """ + Starts the message pump. Advanced users only + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetMainFrame(self,mainFrame:'Any') -> 'None': + """ + Sets the threads main frame + +Args: + + mainFrame(Any):The applications main frame.CommentsYou can pass None to this function to reset the main frame. Should I free this? I dont think so! + +Returns: + + None + + """ + pass + + + def SetThreadPriority(self,priority:'Any') -> 'None': + """ + Sets the threads priority. Returns TRUE if successful. + +Args: + + priority(Any):The threads priority. + +Returns: + + None + + """ + pass + + +class PyCWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ActivateFrame(self,cmdShow:'Any') -> 'None': + """ + Searches upwards for a parent window which has + +a frame, and activates it. + +Args: + + cmdShow(Any):The param passed to CFrameWnd::ShowWindow. See also PyCWnd::ShowWindow.MFC References + +Returns: + + None + + """ + pass + + + def BringWindowToTop(self,) -> 'None': + """ + Brings the window to the top of a stack of overlapping windows. + +Args: + + + +Returns: + + None + + """ + pass + + + def BeginPaint(self,) -> 'Tuple[Any, Any]': + """ + Prepares a window for painting + +Args: + + + +Returns: + + Tuple[Any, Any]:PyCWnd.BeginPaint +PyCDC, PAINTSTRUCT + + = BeginPaint()Prepares a window for painting +Return ValueYou must pass the PAINTSTRUCT param to the PyCWnd::EndPaint method. + + + """ + pass + + + def CalcWindowRect(self,rect:'Tuple[Any, Any, Any, Any]',nAdjustType:'Any') -> 'Tuple[Any, Any, Any, Any]': + """ + Computes the size of the window rectangle based on the desired client + +rectangle size. The resulting size can then be used as the initial + +size for the window object. + +Args: + + rect(Tuple[Any, Any, Any, Any]):The size to calculate from + nAdjustType(Any):An enumerated type used for in-place editing. It can have the following values: CWnd::adjustBorder = 0, which means that scrollbar sizes are ignored in calculation; and CWnd::adjustOutside = 1, which means that they are added into the final measurements of the rectangle.MFC References + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def CenterWindow(self,altwin:'Any'=None) -> 'None': + """ + Centers a window relative to its parent. + +Args: + + altwin(Any):alternate window relative to which it will be centered (other than the parent window).MFC References + +Returns: + + None + + """ + pass + + + def CheckRadioButton(self,idFirst:'Any',idLast:'Any',idCheck:'Any') -> 'None': + """ + Selects the specified radio button, and clears + +all others in the group. + +Args: + + idFirst(Any):The identifier of the first radio button in the group. + idLast(Any):The identifier of the last radio button in the group. + idCheck(Any):The identifier of the radio button to be checked.MFC References + +Returns: + + None + + """ + pass + + + def ChildWindowFromPoint(self,x:'Any',y:'Any',flag:'Any'=0) -> 'Any': + """ + Returns the child window that contains the point + +Args: + + x(Any):x coordinate of point + y(Any):y coordinate of point + flag(Any):Specifies which child windows to skipMFC References + +Returns: + + Any + + """ + pass + + + def ClientToScreen(self,point:'Tuple[Any, Any]',rect:'Any') -> 'Tuple[Any, Any, Any, Any, Any]': + """ + Converts the client coordinates of a given point on the display + +to screen coordinates. + +Args: + + point(Tuple[Any, Any]):The client coordinates.Alternative Parameters + rect(Any):The client coordinates.CommentsThe new screen coordinates are relative to the upper-left corner of the system display. This function assumes that the given pointis in client coordinates.MFC References + +Returns: + + Tuple[Any, Any, Any, Any, Any] + + """ + pass + + + def CreateWindow(self,classId:'str',windowName:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any',context:'Any'=None) -> 'None': + """ + Creates the actual window + +Args: + + classId(str):The class ID for the window, or None + windowName(str):The title for the window, or None + style(Any):The style for the window. + rect(Tuple[Any, Any, Any, Any]):The size and position of the window. + parent(Any):The parent window of the new window.. + _id(Any):The control's ID. + context(Any):A CreateContext object.MFC References + +Returns: + + None + + """ + pass + + + def CreateWindowEx(self,styleEx:'Any',classId:'str',windowName:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any',createStruct1:'Any',createStruct:'Any'=None) -> 'None': + """ + Creates the actual window using extended capabilities. + +Args: + + styleEx(Any):The extended style of the window being created. + classId(str):The class ID for the window. May not be None. + windowName(str):The title for the window, or None + style(Any):The style for the window. + rect(Tuple[Any, Any, Any, Any]):The size and position of the window. + parent(Any):The parent window of the new window.. + _id(Any):The control's ID. + createStruct1(Any):A tuple representing a CREATESTRUCT structure.MFC References + createStruct(Any):A CreateStruct object (ie, a tuple) + +Returns: + + None + + """ + pass + + + def DefWindowProc(self,message:'Any',idLast:'Any',idCheck:'Any') -> 'Any': + """ + Calls the default message handler. + +Args: + + message(Any):The Windows message. + idLast(Any):The lParam for the message. + idCheck(Any):The wParam for the message.MFC References + +Returns: + + Any + + """ + pass + + + def DestroyWindow(self,) -> 'None': + """ + Destroy the window attached to the object. + +Args: + + + +Returns: + + None + + """ + pass + + + def DlgDirList(self,defPath:'str',idListbox:'Any',idStaticPath:'Any',fileType:'Any') -> 'None': + """ + Fill a list box with a file or directory listing. + +Args: + + defPath(str):The file spec to fill the list box with + idListbox(Any):The Id of the listbox control to fill. + idStaticPath(Any):The Id of the static control used to display the current drive and directory. If idStaticPath is 0, it is assumed that no such control exists. + fileType(Any):Specifies the attributes of the files to be displayed. It can be any combination of DDL_READWRITE, DDL_READONLY, DDL_HIDDEN, DDL_SYSTEM, DDL_DIRECTORY, DDL_ARCHIVE, DDL_POSTMSGS, DDL_DRIVES or DDL_EXCLUSIVEMFC References + +Returns: + + None + + """ + pass + + + def DlgDirListComboBox(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def DlgDirSelect(self,idListbox:'Any') -> 'str': + """ + None + +Args: + + idListbox(Any):The Id of the listbox.MFC References + +Returns: + + str + + """ + pass + + + def DlgDirSelectComboBox(self,idListbox:'Any') -> 'str': + """ + None + +Args: + + idListbox(Any):The Id of the combobox.MFC References + +Returns: + + str + + """ + pass + + + def DragAcceptFiles(self,bAccept:'Any'=1) -> 'None': + """ + Indicates that the window and children supports files dropped from file manager + +Args: + + bAccept(Any):A flag indicating if files are accepted.MFC References + +Returns: + + None + + """ + pass + + + def DrawMenuBar(self,) -> 'None': + """ + Redraws the menu bar. Can be called if the menu changes. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnableWindow(self,bEnable:'Any'=1) -> 'Any': + """ + Enables or disables the window. Typically used for dialog controls. + +Args: + + bEnable(Any):A flag indicating if the window is to be enabled or disabled.MFC References + +Returns: + + Any:CWnd::EnableWindow +Return ValueReturns the state before the EnableWindow member function was called + + + """ + pass + + + def EndModalLoop(self,result:'Any') -> 'None': + """ + Ends a modal loop. + +Args: + + result(Any):The result as returned to RunModalLoop + +Returns: + + None + + """ + pass + + + def EndPaint(self,paintStruct:'Any') -> 'None': + """ + Ends painting + +Args: + + paintStruct(Any):The object returned from PyCWnd::BeginPaint + +Returns: + + None + + """ + pass + + + def GetCheckedRadioButton(self,idFirst:'Any',idLast:'Any') -> 'Any': + """ + Returns the ID of the checked radio button, or 0 if none is selected. + +Args: + + idFirst(Any):The Id of the first radio button in the group. + idLast(Any):The Id of the last radio button in the group.MFC References + +Returns: + + Any + + """ + pass + + + def GetClientRect(self,) -> 'Tuple[Any, Any, Any, Any]': + """ + Returns the client coordinates of the window. left and top + +will be zero. + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetDC(self,) -> 'Any': + """ + Gets the windows current DC object. + +Args: + + + +Returns: + + Any:PyCWnd.GetDC +PyCDC = GetDC()Gets the windows current DC object. +Return ValueThe result is a PyCDC, or a win32ui.error exception is raised. + + + """ + pass + + + def GetDCEx(self,) -> 'Any': + """ + Gets the windows current DC object with extended caps. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDlgCtrlID(self,) -> 'Any': + """ + Returns the ID of this child window. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetDlgItem(self,idControl:'Any') -> 'Any': + """ + None + +Args: + + idControl(Any):The Id of the control to be retrieved.MFC References + +Returns: + + Any:CWnd::GetDlgItem +Return ValueThe result is a PyCWnd (or derived) object, or a win32ui.error exception is raised. + + + """ + pass + + + def GetDlgItemInt(self,idControl:'Any',bUnsigned:'Any'=1) -> 'Any': + """ + Returns the integer value of a child window or control with the specified ID. + +Args: + + idControl(Any):The Id of the control to be retrieved. + bUnsigned(Any):Should the function check for a minus signMFC References + +Returns: + + Any:CWnd::GetDlgItemInt +Return ValueIf the value can not be converted, a ValueError is raised. + + + """ + pass + + + def GetDlgItemText(self,idControl:'Any') -> 'str': + """ + Returns the text of child window or control with the specified ID. + +Args: + + idControl(Any):The Id of the control to be retrieved.MFC References + +Returns: + + str + + """ + pass + + + def GetLastActivePopup(self,) -> 'Any': + """ + Returns the last active popup Window, or the Window itself. + +Args: + + + +Returns: + + Any:CWnd::GetLastActivePopup +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetMenu(self,) -> 'Any': + """ + Returns the menu object for the window's menu. + +Args: + + + +Returns: + + Any:CWnd::GetMenu +Return ValueThe result is a PyMenu + + object, or an exception is thrown. + + + """ + pass + + + def GetParent(self,) -> 'Any': + """ + Returns the window's parent. + +Args: + + + +Returns: + + Any:CWnd::GetParent +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetParentFrame(self,) -> 'Any': + """ + Returns the window's frame. + +Args: + + + +Returns: + + Any:CWnd::GetParentFrame +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetSafeHwnd(self,) -> 'Any': + """ + Returns the HWnd of this window. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetScrollInfo(self,nBar:'Any',mask:'Any') -> 'Any': + """ + Returns information about a scroll bar + +Args: + + nBar(Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ + mask(Any):The mask for attributes to retrieve. + +Returns: + + Any + + """ + pass + + + def GetScrollPos(self,nBar:'Any') -> 'Any': + """ + Retrieves the current position of the scroll box of a scroll bar. + +Args: + + nBar(Any):The scroll bar to examine. Can be one of win32con.SB_VERT or win32con.SB_HORZ + +Returns: + + Any + + """ + pass + + + def GetStyle(self,) -> 'Any': + """ + Retrieves the window style + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetExStyle(self,) -> 'Any': + """ + Retrieves the window's extended style + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetSystemMenu(self,) -> 'Any': + """ + Returns the menu object for the window's system menu. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetTopLevelFrame(self,) -> 'Any': + """ + Returns the top-level frame of the window. + +Args: + + + +Returns: + + Any:CWnd::GetTopLevelFrame +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopLevelOwner(self,) -> 'Any': + """ + Returns the top-level owner of the window. + +Args: + + + +Returns: + + Any:CWnd::GetTopLevelOwner +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopLevelParent(self,) -> 'Any': + """ + Returns the top-level parent of the window. + +Args: + + + +Returns: + + Any:CWnd::GetTopLevelParent +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopWindow(self,) -> 'Any': + """ + Identifies the top-level child window in a linked list of child windows. + +Args: + + + +Returns: + + Any:CWnd::GetTopWindow +Return ValueIf no child windows exist, the value is None. + + + """ + pass + + + def GetWindow(self,_type:'Any') -> 'Any': + """ + Returns a window, with the specified relationship to this window. + +Args: + + _type(Any):Specifies the relationship between the current and the returned window. It can take one of the following values: GW_CHILD, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV or GW_OWNERMFC References + +Returns: + + Any:CWnd::GetWindow +Return ValueThe result is a PyCWnd or None if no Window can be found. + + + """ + pass + + + def GetWindowDC(self,) -> 'Any': + """ + Gets the windows current DC object. + +Args: + + + +Returns: + + Any + + """ + pass + + + def GetWindowPlacement(self,) -> 'Any': + """ + Returns placement information about the current window. + +Args: + + + +Returns: + + Any:CWnd::GetWindowPlacement +Return ValueThe result is a tuple of + +(flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) + + + +Item + + +Description + + + +flagsOne of the WPF_* constants +showCmdCurrent state - one of the SW_* constants. +minposSpecifies the coordinates of the window's upper-left corner when the window is minimized. +maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. +normalposSpecifies the window's coordinates when the window is in the restored position. + + + """ + pass + + + def GetWindowRect(self,) -> 'Tuple[Any, Any, Any, Any]': + """ + Returns the screen coordinates of the windows upper left + +corner + +Args: + + + +Returns: + + Tuple[Any, Any, Any, Any] + + """ + pass + + + def GetWindowText(self,) -> 'str': + """ + Returns the windows text. + +Args: + + + +Returns: + + str + + """ + pass + + + def HideCaret(self,) -> 'None': + """ + Hides the caret + +Args: + + + +Returns: + + None + + """ + pass + + + def HookAllKeyStrokes(self,obHandler:'Any') -> 'None': + """ + Hook a key stroke handler for all key strokes. + +Args: + + obHandler(Any):The handler for the keystrokes. This must be a callable object.CommentsThe handler object passed will be called as the application receives WM_CHAR messages. The handler will be called with 2 arguments The handler object (as per all hook functions). The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise it will be consumed. Note: This handler will prevent any PyCWnd::HookKeyStroke hooks from being called. + +Returns: + + None + + """ + pass + + + def HookKeyStroke(self,obHandler:'Any',ch:'Any') -> 'Any': + """ + Hook a key stroke handler + +Args: + + obHandler(Any):The handler of the keystroke. This must be a callable object. + ch(Any):The ID for the keystroke to be handled. This may be an ascii code, or a virtual key code.CommentsThe handler object passed will be called as the application receives WM_CHAR message for the specified character code. The handler will be called with 2 arguments The handler object (as per all hook functions) The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise the keystroke will be consumed. Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place.Return ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID for the keystroke to be handled. + +This may be an ascii code, or a virtual key code.Comments + +The handler object passed will be called as the application receives WM_CHAR message for the specified + +character code. The handler will be called with 2 arguments + +The handler object (as per all hook functions) + +The keystroke being handled. + +If the handler returns TRUE, then the keystroke will be passed on to the + +default handler, otherwise the keystroke will be consumed. + +Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookMessage(self,obHandler:'Any',message:'Any') -> 'Any': + """ + Hook a message notification handler + +Args: + + obHandler(Any):The handler for the message notification. This must be a callable object. + message(Any):The ID of the message to be handled.CommentsThe handler object passed will be called as the application receives messages with the specified ID. Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. The handler will be called with 2 arguments The handler object (as per all hook functions). A tuple representing the message. The message tuple is in the following format:Items[0] int : hwndThe hwnd of the window.[1] int : messageThe message.[2] int : wParamThe wParam sent with the message.[3] int : lParamThe lParam sent with the message.[4] int : timeThe time the message was posted.[5] int, int : pointThe point where the mouse was when the message was posted.Return ValueThe return value is the previous handler, or None. + +Returns: + + Any:The ID of the message to be handled.Comments + +The handler object passed will be called as the application receives messages with the specified ID. + +Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. + +The handler will be called with 2 arguments + +The handler object (as per all hook functions). + +A tuple representing the message. + +The message tuple is in the following format: +Items[0] int : hwnd +The hwnd of the window. +[1] int : message +The message. +[2] int : wParam +The wParam sent with the message. +[3] int : lParam +The lParam sent with the message. +[4] int : time +The time the message was posted. +[5] int, int : point +The point where the mouse was when the message was posted. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def InvalidateRect(self,arg:'Tuple[Any, Any, Any, Any]',bErase:'Any'=1) -> 'None': + """ + Invalidates an area of a window. + +Args: + + arg(Tuple[Any, Any, Any, Any]):Rectangle to be updated. If default param is used, the entire window is invalidated. + bErase(Any):Specifies whether the background within the update region is to be erased.MFC References + +Returns: + + None + + """ + pass + + + def InvalidateRgn(self,region:'Any',bErase:'Any'=1) -> 'None': + """ + Invalidates a region of the window + +Args: + + region(Any):The region to erase. + bErase(Any):Indicates if the region should be erased. + +Returns: + + None + + """ + pass + + + def IsChild(self,obWnd:'Any') -> 'Any': + """ + Determines if a given window is a child of this window. + +Args: + + obWnd(Any):The window to be checkedMFC References + +Returns: + + Any + + """ + pass + + + def IsDlgButtonChecked(self,idCtl:'Any') -> 'Any': + """ + Determines if a dialog button is checked. + +Args: + + idCtl(Any):The ID of the button to check.MFC References + +Returns: + + Any + + """ + pass + + + def IsIconic(self,) -> 'Any': + """ + Determines if the window is currently displayed as an icon. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsZoomed(self,) -> 'Any': + """ + Determines if the window is currently maximised. + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsWindow(self,) -> 'Any': + """ + determines whether the specified window handle identifies an existing window + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsWindowVisible(self,) -> 'Any': + """ + Determines if the window is currently visible. + +Args: + + + +Returns: + + Any + + """ + pass + + + def KillTimer(self,) -> 'Any': + """ + Kills a system timer + +Args: + + + +Returns: + + Any + + """ + pass + + + def LockWindowUpdate(self,) -> 'None': + """ + Disables drawing in the given window + +Args: + + + +Returns: + + None + + """ + pass + + + def MapWindowPoints(self,wnd:'Any',points:'List[Any]') -> 'None': + """ + Converts (maps) a set of points from the coordinate space of a window to the + +coordinate space of another window. + +Args: + + wnd(Any): + points(List[Any]):The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another window. + +Returns: + + None:The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another + +window. + + + """ + pass + + + def MouseCaptured(self,) -> 'Any': + """ + Returns 1 if the window has the mouse capture, else 0 + +Args: + + + +Returns: + + Any + + """ + pass + + + def MessageBox(self,message:'str',arg:'Any',title:'Union[Any, str]'=None) -> 'None': + """ + Display a message box. + +Args: + + message(str):The message to be displayed in the message box. + arg(Any):The style of the message box.MFC References + title(Union[Any, str]):The title for the message box. If None, the applications title will be used. + +Returns: + + None:CWnd::MessageBox +Return ValueAn integer identifying the button pressed to dismiss the dialog. + + + """ + pass + + + def ModifyStyle(self,remove:'Any',add:'Any',flags:'Any'=0) -> 'Any': + """ + Modifies the style of a window. + +Args: + + remove(Any):Specifies window styles to be removed during style modification. + add(Any):Specifies window styles to be added during style modification. + flags(Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyle calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleExMFC References + +Returns: + + Any:CWnd::ModifyStyle +Return ValueThe result is true if the style was changed, or false if the style + +is already the same as requested and no change was made. + + + """ + pass + + + def ModifyStyleEx(self,remove:'Any',add:'Any',flags:'Any'=0) -> 'Any': + """ + Modifies the extended style of a window. + +Args: + + remove(Any):Specifies extended window styles to be removed during style modification. + add(Any):Specifies extended extended window styles to be added during style modification. + flags(Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyleEx calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleMFC References + +Returns: + + Any:CWnd::ModifyStyleEx +Return ValueThe result is true if the style was changed, or false if the style + +is already the same as requested and no change was made. + + + """ + pass + + + def MoveWindow(self,rect:'Tuple[Any, Any, Any, Any]',bRepaint:'Any'=1) -> 'None': + """ + Move a window to a new location. + +Args: + + rect(Tuple[Any, Any, Any, Any]):The new location of the window, relative to the parent. + bRepaint(Any):Indicates if the window should be repainted after the move.MFC References + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'Any': + """ + Calls the default MFC OnClose handler. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnCtlColor(self,dc:'Any',control:'Any',_type:'Any') -> 'Any': + """ + Calls the default MFC OnCtlColor handler. + +Args: + + dc(Any):The dc + control(Any):The control that want's it's color changed + _type(Any):Type of controlSee Also + +Returns: + + Any + + """ + pass + + + def OnEraseBkgnd(self,dc:'Any') -> 'Any': + """ + Calls the default MFC OnEraseBkgnd handler. + +Args: + + dc(Any):The dcSee Also + +Returns: + + Any + + """ + pass + + + def OnNcHitTest(self,arg:'Tuple[Any, Any]') -> 'Any': + """ + Calls the base MFC OnNcHitTest function. + +Args: + + arg(Tuple[Any, Any]):The pointSee Also + +Returns: + + Any + + """ + pass + + + def OnPaint(self,) -> 'Any': + """ + Calls the default MFC OnPaint handler. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnQueryDragIcon(self,) -> 'Any': + """ + Calls the default MFC OnQueryDragIcon handler. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnQueryNewPalette(self,) -> 'Any': + """ + Calls the underlying MFC OnQueryNewPalette method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def OnSetCursor(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': + """ + Calls the base MFC OnSetCursor function. + +Args: + + wnd(Any): + hittest(Any): + message(Any):See Also + +Returns: + + Any + + """ + pass + + + def OnMouseActivate(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': + """ + Calls the base MFC OnMouseActivate function. + +Args: + + wnd(Any): + hittest(Any): + message(Any):See Also + +Returns: + + Any + + """ + pass + + + def OnWndMsg(self,msg:'Any',wParam:'Any',lParam:'Any') -> 'Tuple[Any, Any]': + """ + Calls the default MFC Window Message handler. + +Args: + + msg(Any):The message + wParam(Any):The wParam for the message + lParam(Any):The lParam for the messageMFC References + +Returns: + + Tuple[Any, Any]:CWnd::OnWndMsg +Return ValueThe return value is a tuple of (int, int), being the + +return value from the MFC function call, and the value of the + +lResult param. Please see the MFC documentation for more details. + + + """ + pass + + + def PreCreateWindow(self,createStruct:'Any') -> 'Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + Any + + """ + pass + + + def PumpWaitingMessages(self,firstMsg:'Any',lastMsg:'Any') -> 'None': + """ + Pump messages associate with a window. + +Args: + + firstMsg(Any):First message ID to process + lastMsg(Any):First message ID to processMFC References + +Returns: + + None + + """ + pass + + + def RedrawWindow(self,_object:'Any',flags:'Any',rect:'Tuple[Any, Any, Any, Any]'=None) -> 'None': + """ + Updates the specified rectangle or region in the given window's client area. + +Args: + + _object(Any):A region + flags(Any):MFC References + rect(Tuple[Any, Any, Any, Any]):A rect, or None + +Returns: + + None + + """ + pass + + + def ReleaseCapture(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def ReleaseDC(self,dc:'Any') -> 'None': + """ + Releases a device context, freeing it for use by other applications. + +Args: + + dc(Any):The DC to be released. + +Returns: + + None + + """ + pass + + + def RepositionBars(self,idFirst:'Any',idLast:'Any',idLeftOver:'Any') -> 'None': + """ + Repositions the windows control bars.( UINT nIDFirst, UINT nIDLast, UINT + +nIDLeftOver, UINT nFlag = CWnd::reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = + +TRUE ); + +Args: + + idFirst(Any):The ID of the first control to reposition. + idLast(Any):The ID of the last control to reposition. + idLeftOver(Any): + +Returns: + + None + + """ + pass + + + def RunModalLoop(self,flags:'Any') -> 'Any': + """ + Begins a modal loop for the window. + +Args: + + flags(Any): + +Returns: + + Any + + """ + pass + + + def PostMessage(self,idMessage:'Any',wParam:'Any'=0,lParam:'Any'=0) -> 'None': + """ + Post a message to the window. + +Args: + + idMessage(Any):The ID of the message to post. + wParam(Any):The wParam for the message + lParam(Any):The lParam for the messageMFC References + +Returns: + + None + + """ + pass + + + def SendMessageToDescendants(self,idMessage:'Any',wParam:'Any'=0,lParam:'Any'=0,bDeep:'Any'=1) -> 'None': + """ + Send a message to all descendant windows. + +Args: + + idMessage(Any):The ID of the message to send. + wParam(Any):The wParam for the message + lParam(Any):The lParam for the message + bDeep(Any):Indicates if the message should be recursively sent to all childrenMFC References + +Returns: + + None + + """ + pass + + + def SendMessage(self,idMessage:'Any',idMessage1:'Any',ob:'Any',wParam:'Any'=0,lParam:'Any'=0) -> 'None': + """ + Send a message to the window. + +Args: + + idMessage(Any):The ID of the message to send. + idMessage1(Any):The ID of the message to send. + ob(Any):A buffer whose size is passed in wParam, and address is passed in lParamMFC References + wParam(Any):The wParam for the message + lParam(Any):The lParam for the messageAlternative Parameters + +Returns: + + None + + """ + pass + + + def SetActiveWindow(self,) -> 'Any': + """ + Sets the window active. Returns the previously active window, or None. + +Args: + + + +Returns: + + Any:PyCWnd.SetActiveWindow +PyCWnd = SetActiveWindow()Sets the window active. Returns the previously active window, or None. +Return ValueThe result is the previous window with focus, or None. + + + """ + pass + + + def SetForegroundWindow(self,) -> 'None': + """ + Puts the window into the foreground and activates the window. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWindowPos(self,hWndInsertAfter:'Any',position:'Tuple[Any, Any, Any, Any]',flags:'Any') -> 'None': + """ + Sets the windows position information + +Args: + + hWndInsertAfter(Any):A hwnd, else one of the win32con.HWND_* constants. + position(Tuple[Any, Any, Any, Any]):The new position of the window. + flags(Any):Window positioning flags.MFC References + +Returns: + + None + + """ + pass + + + def ScreenToClient(self,rect:'Tuple[Any, Any, Any, Any, Any]',pnt:'Any') -> 'Tuple[Any, Any, Any, Any, Any]': + """ + Converts the screen coordinates of a given point + +or rectangle on the display to client coordinates. + +Args: + + rect(Tuple[Any, Any, Any, Any, Any]):The coordinates to convert.Alternative Parameters + pnt(Any):The coordinates to convert.MFC References + +Returns: + + Tuple[Any, Any, Any, Any, Any]:CWnd::ScreenToClient +Return ValueThe result is the same size as the input argument. + + + """ + pass + + + def SetCapture(self,) -> 'None': + """ + Causes all subsequent mouse input to be sent to the window object regardless of the + +position of the cursor. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDlgItemText(self,idControl:'Any',text:'str') -> 'None': + """ + Sets the text for the child window or control with the specified ID. + +Args: + + idControl(Any):The Id of the control + text(str):The new textMFC References + +Returns: + + None + + """ + pass + + + def SetFocus(self,) -> 'None': + """ + Claims the input focus. The object that previously had the focus loses it. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFont(self,font:'Any',bRedraw:'Any'=1) -> 'None': + """ + Sets the window's current font to the specified font. + +Args: + + font(Any):The new font to use. + bRedraw(Any):If TRUE, redraw the window. + +Returns: + + None + + """ + pass + + + def SetIcon(self,) -> 'Any': + """ + Calls the underlying MFC SetIcon method. + +Args: + + + +Returns: + + Any + + """ + pass + + + def SetMenu(self,menuObj:'Any') -> 'None': + """ + Sets the menu for a window. + +Args: + + menuObj(Any):The menu object to set, or None to remove the window. + +Returns: + + None + + """ + pass + + + def SetRedraw(self,bState:'Any'=1) -> 'None': + """ + Allows changes to be redrawn or to prevent changes from being redrawn. + +Args: + + bState(Any):Specifies the state of the redraw flag.MFC References + +Returns: + + None + + """ + pass + + + def SetScrollPos(self,nBar:'Any',nPos:'Any',redraw:'Any'=1) -> 'Any': + """ + Sets the current position of the scroll box of a scroll bar. + +Args: + + nBar(Any):The scroll bar to set. Can be one of win32con.SB_VERT or win32con.SB_HORZ + nPos(Any):The new position + redraw(Any):A flag indicating if the scrollbar should be redrawn. + +Returns: + + Any + + """ + pass + + + def SetScrollInfo(self,nBar:'Any',ScrollInfo:'Any',redraw:'Any'=1) -> 'Any': + """ + Set information about a scroll bar + +Args: + + nBar(Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ + ScrollInfo(Any):The information to set + redraw(Any):A flag indicating if the scrollbar should be re-drawn. + +Returns: + + Any + + """ + pass + + + def SetTimer(self,idEvent:'Any',elapse:'Any') -> 'Any': + """ + Installs a system timer + +Args: + + idEvent(Any):The ID of the event + elapse(Any):How often the timer should fire.MFC References + +Returns: + + Any + + """ + pass + + + def SetWindowPlacement(self,placement:'Any') -> 'None': + """ + Sets the windows placement + +Args: + + placement(Any):A tuple representing the WINDOWPLACEMENT structure.MFC References + +Returns: + + None + + """ + pass + + + def SetWindowText(self,text:'str') -> 'None': + """ + Sets the window's text. + +Args: + + text(str):The windows text.MFC References + +Returns: + + None + + """ + pass + + + def ShowCaret(self,) -> 'None': + """ + Shows the caret + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowScrollBar(self,nBar:'Any',bShow:'Any'=1) -> 'None': + """ + Shows or hides a scroll bar. + +An application should not call ShowScrollBar to hide a scroll bar while processing a scroll-bar notification message. + +Args: + + nBar(Any):Specifies whether the scroll bar is a control or part of a window's nonclient area. If it is part of the nonclient area, nBar also indicates whether the scroll bar is positioned horizontally, vertically, or both. It must be one of win32con.SB_BOTH, win32con.SB_HORZ or win32con.SB_VERT. + bShow(Any):Indicates if the scroll bar should be shown or hidden.MFC References + +Returns: + + None + + """ + pass + + + def ShowWindow(self,arg:'Any') -> 'Any': + """ + Sets the visibility state of the window. + +Args: + + arg(Any):Specifies how the window is to be shown. It must be one of win32con.SW_HIDE, win32con.SW_MINIMIZE, win32con.SW_RESTORE, win32con.SW_SHOW, win32con.SW_SHOWMAXIMIZED win32con.SW_SHOWMINIMIZED, win32con.SW_SHOWMINNOACTIVE, win32con.SW_SHOWNA, win32con.SW_SHOWNOACTIVATE, or win32con.SW_SHOWNORMALMFC References + +Returns: + + Any:CWnd::ShowWindow +Return ValueReturns TRUE is the window was previously visible. + + + """ + pass + + + def UnLockWindowUpdate(self,) -> 'None': + """ + Unlocks a window that was locked with LockWindowUpdate + +Args: + + + +Returns: + + None + + """ + pass + + + def UpdateData(self,bSaveAndValidate:'Any'=1) -> 'Any': + """ + Initialises data in a dialog box, or to retrieves and validates dialog data. + +Returns nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of + +nonzero means that the data is successfully validated. + +Args: + + bSaveAndValidate(Any):Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).MFC References + +Returns: + + Any + + """ + pass + + + def UpdateDialogControls(self,pTarget:'Any',disableIfNoHandler:'Any') -> 'Any': + """ + None + +Args: + + pTarget(Any):The main frame window of the application, and is used for routing update messages. + disableIfNoHandler(Any):Flag that indicates whether a control that has no update handler should be automatically displayed as disabled. + +Returns: + + Any + + """ + pass + + + def UpdateWindow(self,) -> 'None': + """ + Updates a window. This forces a paint message to be sent to the window, if any part + +of the window is marked as invalid. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEConv(object): + """A DDE topic.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ConnectTo(self,service:'str',topic:'str') -> 'None': + """ + Connects to a server + +Args: + + service(str):The service to connect to + topic(str):The topic to connect to + +Returns: + + None + + """ + pass + + + def Connected(self,) -> 'None': + """ + Determines if the conversation is connected. + +Args: + + + +Returns: + + None + + """ + pass + + + def Exec(self,Cmd:'str') -> 'None': + """ + Executes a command. + +Args: + + Cmd(str):The Python statement to execute + +Returns: + + None + + """ + pass + + + def Request(self,) -> 'None': + """ + Sends a request. + +Args: + + + +Returns: + + None + + """ + pass + + + def Poke(self,) -> 'None': + """ + Sends a poke. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEServer(object): + """A DDE server.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddTopic(self,topic:'Any') -> 'None': + """ + None + +Args: + + topic(Any):The topic to add. + +Returns: + + None + + """ + pass + + + def Create(self,name:'str',filterFlags:'Any'=0) -> 'None': + """ + Create a server + +Args: + + name(str):Name of the server to start. + filterFlags(Any):Filter flags.CommentsNote there can only be one server per application. + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetLastError(self,) -> 'Any': + """ + None + +Args: + + + +Returns: + + Any + + """ + pass + + + def Shutdown(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEStringItem(object): + """A DDE string item.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetData(self,data:'str') -> 'None': + """ + Sets an items data, and causes any underlying notification. + +Args: + + data(str):The data to set. + +Returns: + + None + + """ + pass + + +class PyDDETopic(object): + """A DDE topic.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddItem(self,item:'Any') -> 'None': + """ + Add an item to the topic. + +Args: + + item(Any):The item to add + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Destroys an item + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDLL(object): + """A DLL object. A general utility object, and not associated with an MFC object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFileName(self,) -> 'str': + """ + Returns the name of the module associated with the DLL. + +Args: + + + +Returns: + + str + + """ + pass + + + def AttachToMFC(self,) -> 'None': + """ + Attaches the DLL object to the MFC list of DLL's. + +Args: + + + +Returns: + + None + + """ + pass + + +class SCROLLINFO(object): + """Tuple representing a SCROLLINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TV_ITEM(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class EXTENSION_CONTROL_BLOCK(object): + """A python representation of an ISAPI + +EXTENSION_CONTROL_BLOCK.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Version(self)->'int': + """Version info of this spec (read-only)""" + pass + + + @property + def TotalBytes(self)->'Any': + """Total bytes indicated from client""" + pass + + + @property + def AvailableBytes(self)->'Any': + """Available number of bytes""" + pass + + + @property + def HttpStatusCode(self)->'Any': + """The status of the current transaction when the request is completed.""" + pass + + + @property + def Method(self)->'Any': + """REQUEST_METHOD""" + pass + + + @property + def ConnID(self)->'Any': + """Context number (read-only)""" + pass + + + @property + def QueryString(self)->'Any': + """QUERY_STRING""" + pass + + + @property + def PathInfo(self)->'Any': + """PATH_INFO""" + pass + + + @property + def PathTranslated(self)->'Any': + """PATH_TRANSLATED""" + pass + + + @property + def AvailableData(self)->'Any': + """Pointer to cbAvailable bytes""" + pass + + + @property + def ContentType(self)->'Any': + """Content type of client data""" + pass + + + @property + def LogData(self)->'Any': + """log data string""" + pass + + + def WriteClient(self,data:'Union[Any, str]',reserved:'Any'=0) -> 'Any': + """ + None + +Args: + + data(Union[Any, str]):The data to write + reserved(Any):Return Valuethe result is the number of bytes written. + +Returns: + + Any: +Return Valuethe result is the number of bytes written. + + + """ + pass + + + def GetServerVariable(self,variable:'str',default:'Any') -> 'str': + """ + None + +Args: + + variable(str): + default(Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. + +Returns: + + str:If specified, the function will return this + +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name + +begins with 'UNICODE_', in which case it is a unicode object - see the + +ISAPI docs for more details. + + + """ + pass + + + def ReadClient(self,nbytes:'Any') -> 'str': + """ + None + +Args: + + nbytes(Any):Default is to read all available data. + +Returns: + + str + + """ + pass + + + def SendResponseHeaders(self,reply:'str',headers:'str',keepAlive:'Any'=False) -> 'None': + """ + Calls ServerSupportFunction with + +HSE_REQ_SEND_RESPONSE_HEADER_EX + +Args: + + reply(str): + headers(str): + keepAlive(Any): + +Returns: + + None + + """ + pass + + + def SetFlushFlag(self,flag:'Any') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_SET_FLUSH_FLAG. + +Args: + + flag(Any): + +Returns: + + None + + """ + pass + + + def TransmitFile(self,callback:'Any',param:'Any',hFile:'Any',statusCode:'str',BytesToWrite:'Any',Offset:'Any',head:'str',tail:'str',flags:'Any') -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_TRANSMIT_FILE + +Args: + + callback(Any): + param(Any):Any object - passed as 2nd arg to callback. + hFile(Any): + statusCode(str): + BytesToWrite(Any): + Offset(Any): + head(str): + tail(str): + flags(Any):CommentsThe callback is called with 4 args - (PyECB, param, cbIO, dwErrCode) + +Returns: + + Any + + """ + pass + + + def MapURLToPath(self,) -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_MAP_URL_TO_PATH + +Args: + + + +Returns: + + None + + """ + pass + + + def DoneWithSession(self,status:'Any') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_DONE_WITH_SESSION + +Args: + + status(Any):An optional status. HSE_STATUS_SUCCESS_AND_KEEP_CONN is supported by IIS to keep the connection alive. + +Returns: + + None + + """ + pass + + + def Redirect(self,url:'str') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_SEND_URL_REDIRECT_RESP + +Args: + + url(str):The URL to redirect to + +Returns: + + None + + """ + pass + + + def IsKeepAlive(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAnonymousToken(self,metabase_path:'Union[Any, str]') -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_GET_ANONYMOUS_TOKEN + +or HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN + +Args: + + metabase_path(Union[Any, str]): + +Returns: + + Any + + """ + pass + + + def GetImpersonationToken(self,) -> 'Any': + """ + Calls ServerSupportFunction with + +HSE_REQ_GET_IMPERSONATION_TOKEN + +Args: + + + +Returns: + + Any + + """ + pass + + + def IsKeepConn(self,) -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_IS_KEEP_CONN + +Args: + + + +Returns: + + Any + + """ + pass + + + def ExecURL(self,url:'str',method:'str',clientHeaders:'str',info:'Any',entity:'Any',flags:'Any') -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_EXEC_URL + +Args: + + url(str): + method(str): + clientHeaders(str): + info(Any):Must be None + entity(Any):Must be None + flags(Any):CommentsThis function is only available in IIS6 and later. + +Returns: + + Any + + """ + pass + + + def GetExecURLStatus(self,) -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_GET_EXEC_URL_STATUS + +Args: + + + +Returns: + + Any:Search for HSE_EXEC_URL_STATUS at msdn, google or google groups. +Return ValueThe result of a tuple of 3 integers - (uHttpStatusCode, uHttpSubStatus, dwWin32Error) + + + """ + pass + + + def IOCompletion(self,func:'Any',arg:'Any'=None) -> 'Any': + """ + Set a callback that will be used for handling asynchronous I/O + +operations. + +Args: + + func(Any):The function to call, as described by the EXTENSION_CONTROL_BLOCK::IOCallback method. + arg(Any):Any object which will be supplied as an argument to the callback function.CommentsIf you call this multiple times, the previous callback will be discarded.A reference to the callback and args are held until EXTENSION_CONTROL_BLOCK::DoneWithSession is called. If the callback function fails, DoneWithSession(HSE_STATUS_ERROR) will automatically be called and no further callbacks for the ECB will be made. + +Returns: + + Any + + """ + pass + + + def ReportUnhealthy(self,reason:'str'=None) -> 'Any': + """ + Calls ServerSupportFunction with HSE_REQ_REPORT_UNHEALTHY + +Args: + + reason(str):An optional reason to be written to the log. + +Returns: + + Any + + """ + pass + + + def IOCallback(self,ecb:'Any',arg:'Any',cbIO:'Any',dwError:'Any') -> 'Any': + """ + A placeholder for a user-supplied callback function. + +Args: + + ecb(Any):The extension control block that is associated with the current, active request. + arg(Any):The user-supplied argument supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function. + cbIO(Any):An integer that contains the number of bytes of I/O in the last call. + dwError(Any):The error code returned.CommentsThis is not a function you can call, it describes the signature of the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function.Return ValueThe result of this function is ignored. + +Returns: + + Any:The error code returned.Comments + +This is not a function you can call, it describes the signature of + +the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion + +function. +Return ValueThe result of this function is ignored. + + + """ + pass + + +class HSE_VERSION_INFO(object): + """An object used by ISAPI GetExtensionVersion""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ExtensionDesc(self)->'str': + """The description of the extension.""" + pass + + +class HTTP_FILTER_AUTHENT(object): + """A Python representation of an ISAPI + +HTTP_FILTER_AUTHENT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def User(self)->'str': + """""" + pass + + + @property + def Password(self)->'str': + """""" + pass + + +class HTTP_FILTER_CONTEXT(object): + """A Python representation of an ISAPI + +HTTP_FILTER_CONTEXT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Revision(self)->'Any': + """(read-only)""" + pass + + + @property + def fIsSecurePort(self)->'Any': + """(read-only)""" + pass + + + @property + def NotificationType(self)->'Any': + """(read-only)""" + pass + + + @property + def FilterContext(self)->'Any': + """Any object you wish to associate with the request.""" + pass + + + def GetData(self,) -> 'Any': + """ + Obtains the data passed to + +The HttpFilterProc function. This is not techinally part of the + +HTTP_FILTER_CONTEXT structure, but packaged here for convenience. + +Args: + + + +Returns: + + Any:HTTP_FILTER_CONTEXT.GetData + +object = GetData()Obtains the data passed to + +The HttpFilterProc function. This is not techinally part of the + +HTTP_FILTER_CONTEXT structure, but packaged here for convenience. +Return ValueThe result depends on the value of HTTP_FILTER_CONTEXT::NotificationType + + + + +NotificationType + + +Result type + + + +SF_NOTIFY_URL_MAPHTTP_FILTER_URL_MAP +SF_NOTIFY_PREPROC_HEADERSHTTP_FILTER_PREPROC_HEADERS +SF_NOTIFY_LOGHTTP_FILTER_LOG +SF_NOTIFY_SEND_RAW_DATAHTTP_FILTER_RAW_DATA +SF_NOTIFY_READ_RAW_DATAHTTP_FILTER_RAW_DATA +SF_NOTIFY_AUTHENTICATIONHTTP_FILTER_AUTHENT + + + """ + pass + + + def GetServerVariable(self,variable:'str',default:'Any') -> 'str': + """ + None + +Args: + + variable(str): + default(Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. + +Returns: + + str:If specified, the function will return this + +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name + +begins with 'UNICODE_', in which case it is a unicode object - see the + +ISAPI docs for more details. + + + """ + pass + + + def WriteClient(self,data:'str',reserverd:'Any'=0) -> 'None': + """ + None + +Args: + + data(str): + reserverd(Any): + +Returns: + + None + + """ + pass + + + def AddResponseHeaders(self,data:'str',reserverd:'Any'=0) -> 'None': + """ + None + +Args: + + data(str): + reserverd(Any): + +Returns: + + None + + """ + pass + + + def SendResponseHeader(self,status:'str',header:'str') -> 'None': + """ + None + +Args: + + status(str): + header(str): + +Returns: + + None + + """ + pass + + + def DisableNotifications(self,flags:'Any') -> 'None': + """ + None + +Args: + + flags(Any): + +Returns: + + None + + """ + pass + + +class HTTP_FILTER_LOG(object): + """A Python representation of an ISAPI + +HTTP_FILTER_LOG structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ClientHostName(self)->'str': + """""" + pass + + + @property + def ClientUserName(self)->'str': + """""" + pass + + + @property + def ServerName(self)->'str': + """""" + pass + + + @property + def Operation(self)->'str': + """""" + pass + + + @property + def Target(self)->'str': + """""" + pass + + + @property + def Parameters(self)->'str': + """""" + pass + + + @property + def HttpStatus(self)->'Any': + """""" + pass + + +class HTTP_FILTER_PREPROC_HEADERS(object): + """A Python representation of an ISAPI + +HTTP_FILTER_PREPROC_HEADERS structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetHeader(self,header:'str',default:'Any') -> 'str': + """ + None + +Args: + + header(str): + default(Any):If specified, this will be returned on error. + +Returns: + + str + + """ + pass + + + def SetHeader(self,name:'str',val:'str') -> 'None': + """ + None + +Args: + + name(str): + val(str): + +Returns: + + None + + """ + pass + + + def AddHeader(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class HTTP_FILTER_RAW_DATA(object): + """A Python representation of an ISAPI + +HTTP_FILTER_RAW_DATA structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def InData(self)->'str': + """""" + pass + + +class HTTP_FILTER_URL_MAP(object): + """A Python representation of an ISAPI + +HTTP_FILTER_URL_MAP structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def URL(self)->'str': + """""" + pass + + + @property + def PhysicalPath(self)->'str': + """""" + pass + + +class HTTP_FILTER_VERSION(object): + """A Python interface to the ISAPI HTTP_FILTER_VERSION + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ServerFilterVersion(self)->'Any': + """(read-only)""" + pass + + + @property + def FilterVersion(self)->'Any': + """""" + pass + + + @property + def Flags(self)->'Any': + """""" + pass + + + @property + def FilterDesc(self)->'str': + """""" + pass diff --git a/typings/win32con/__init__.pyi b/typings/win32con/__init__.pyi new file mode 100644 index 00000000..92e62fdc --- /dev/null +++ b/typings/win32con/__init__.pyi @@ -0,0 +1,5045 @@ +""" +This type stub file was generated by pyright. +""" + +# Generated by h2py from commdlg.h (plus modifications 4jan98) +WINVER = 1280 +WM_USER = 1024 +PY_0U = 0 +OFN_READONLY = 1 +OFN_OVERWRITEPROMPT = 2 +OFN_HIDEREADONLY = 4 +OFN_NOCHANGEDIR = 8 +OFN_SHOWHELP = 16 +OFN_ENABLEHOOK = 32 +OFN_ENABLETEMPLATE = 64 +OFN_ENABLETEMPLATEHANDLE = 128 +OFN_NOVALIDATE = 256 +OFN_ALLOWMULTISELECT = 512 +OFN_EXTENSIONDIFFERENT = 1024 +OFN_PATHMUSTEXIST = 2048 +OFN_FILEMUSTEXIST = 4096 +OFN_CREATEPROMPT = 8192 +OFN_SHAREAWARE = 16384 +OFN_NOREADONLYRETURN = 32768 +OFN_NOTESTFILECREATE = 65536 +OFN_NONETWORKBUTTON = 131072 +OFN_NOLONGNAMES = 262144 +OFN_EXPLORER = 524288 # new look commdlg +OFN_NODEREFERENCELINKS = 1048576 +OFN_LONGNAMES = 2097152 # force long names for 3.x modules +OFN_ENABLEINCLUDENOTIFY = 4194304 # send include message to callback +OFN_ENABLESIZING = 8388608 +OFN_DONTADDTORECENT = 33554432 +OFN_FORCESHOWHIDDEN = 268435456 # Show All files including System and hidden files +OFN_EX_NOPLACESBAR = 1 +OFN_SHAREFALLTHROUGH = 2 +OFN_SHARENOWARN = 1 +OFN_SHAREWARN = 0 +CDN_FIRST = (PY_0U-601) +CDN_LAST = (PY_0U-699) +CDN_INITDONE = (CDN_FIRST - 0) +CDN_SELCHANGE = (CDN_FIRST - 1) +CDN_FOLDERCHANGE = (CDN_FIRST - 2) +CDN_SHAREVIOLATION = (CDN_FIRST - 3) +CDN_HELP = (CDN_FIRST - 4) +CDN_FILEOK = (CDN_FIRST - 5) +CDN_TYPECHANGE = (CDN_FIRST - 6) +CDN_INCLUDEITEM = (CDN_FIRST - 7) +CDM_FIRST = (WM_USER + 100) +CDM_LAST = (WM_USER + 200) +CDM_GETSPEC = (CDM_FIRST + 0) +CDM_GETFILEPATH = (CDM_FIRST + 1) +CDM_GETFOLDERPATH = (CDM_FIRST + 2) +CDM_GETFOLDERIDLIST = (CDM_FIRST + 3) +CDM_SETCONTROLTEXT = (CDM_FIRST + 4) +CDM_HIDECONTROL = (CDM_FIRST + 5) +CDM_SETDEFEXT = (CDM_FIRST + 6) +CC_RGBINIT = 1 +CC_FULLOPEN = 2 +CC_PREVENTFULLOPEN = 4 +CC_SHOWHELP = 8 +CC_ENABLEHOOK = 16 +CC_ENABLETEMPLATE = 32 +CC_ENABLETEMPLATEHANDLE = 64 +CC_SOLIDCOLOR = 128 +CC_ANYCOLOR = 256 +FR_DOWN = 1 +FR_WHOLEWORD = 2 +FR_MATCHCASE = 4 +FR_FINDNEXT = 8 +FR_REPLACE = 16 +FR_REPLACEALL = 32 +FR_DIALOGTERM = 64 +FR_SHOWHELP = 128 +FR_ENABLEHOOK = 256 +FR_ENABLETEMPLATE = 512 +FR_NOUPDOWN = 1024 +FR_NOMATCHCASE = 2048 +FR_NOWHOLEWORD = 4096 +FR_ENABLETEMPLATEHANDLE = 8192 +FR_HIDEUPDOWN = 16384 +FR_HIDEMATCHCASE = 32768 +FR_HIDEWHOLEWORD = 65536 +CF_SCREENFONTS = 1 +CF_PRINTERFONTS = 2 +CF_BOTH = (CF_SCREENFONTS | CF_PRINTERFONTS) +CF_SHOWHELP = 4 +CF_ENABLEHOOK = 8 +CF_ENABLETEMPLATE = 16 +CF_ENABLETEMPLATEHANDLE = 32 +CF_INITTOLOGFONTSTRUCT = 64 +CF_USESTYLE = 128 +CF_EFFECTS = 256 +CF_APPLY = 512 +CF_ANSIONLY = 1024 +CF_SCRIPTSONLY = CF_ANSIONLY +CF_NOVECTORFONTS = 2048 +CF_NOOEMFONTS = CF_NOVECTORFONTS +CF_NOSIMULATIONS = 4096 +CF_LIMITSIZE = 8192 +CF_FIXEDPITCHONLY = 16384 +CF_WYSIWYG = 32768 # must also have CF_SCREENFONTS & CF_PRINTERFONTS +CF_FORCEFONTEXIST = 65536 +CF_SCALABLEONLY = 131072 +CF_TTONLY = 262144 +CF_NOFACESEL = 524288 +CF_NOSTYLESEL = 1048576 +CF_NOSIZESEL = 2097152 +CF_SELECTSCRIPT = 4194304 +CF_NOSCRIPTSEL = 8388608 +CF_NOVERTFONTS = 16777216 +SIMULATED_FONTTYPE = 32768 +PRINTER_FONTTYPE = 16384 +SCREEN_FONTTYPE = 8192 +BOLD_FONTTYPE = 256 +ITALIC_FONTTYPE = 512 +REGULAR_FONTTYPE = 1024 +OPENTYPE_FONTTYPE = 65536 +TYPE1_FONTTYPE = 131072 +DSIG_FONTTYPE = 262144 +WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1) +WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101) +WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102) +LBSELCHSTRINGA = "commdlg_LBSelChangedNotify" +SHAREVISTRINGA = "commdlg_ShareViolation" +FILEOKSTRINGA = "commdlg_FileNameOK" +COLOROKSTRINGA = "commdlg_ColorOK" +SETRGBSTRINGA = "commdlg_SetRGBColor" +HELPMSGSTRINGA = "commdlg_help" +FINDMSGSTRINGA = "commdlg_FindReplace" +LBSELCHSTRING = LBSELCHSTRINGA +SHAREVISTRING = SHAREVISTRINGA +FILEOKSTRING = FILEOKSTRINGA +COLOROKSTRING = COLOROKSTRINGA +SETRGBSTRING = SETRGBSTRINGA +HELPMSGSTRING = HELPMSGSTRINGA +FINDMSGSTRING = FINDMSGSTRINGA +CD_LBSELNOITEMS = -1 +CD_LBSELCHANGE = 0 +CD_LBSELSUB = 1 +CD_LBSELADD = 2 +PD_ALLPAGES = 0 +PD_SELECTION = 1 +PD_PAGENUMS = 2 +PD_NOSELECTION = 4 +PD_NOPAGENUMS = 8 +PD_COLLATE = 16 +PD_PRINTTOFILE = 32 +PD_PRINTSETUP = 64 +PD_NOWARNING = 128 +PD_RETURNDC = 256 +PD_RETURNIC = 512 +PD_RETURNDEFAULT = 1024 +PD_SHOWHELP = 2048 +PD_ENABLEPRINTHOOK = 4096 +PD_ENABLESETUPHOOK = 8192 +PD_ENABLEPRINTTEMPLATE = 16384 +PD_ENABLESETUPTEMPLATE = 32768 +PD_ENABLEPRINTTEMPLATEHANDLE = 65536 +PD_ENABLESETUPTEMPLATEHANDLE = 131072 +PD_USEDEVMODECOPIES = 262144 +PD_DISABLEPRINTTOFILE = 524288 +PD_HIDEPRINTTOFILE = 1048576 +PD_NONETWORKBUTTON = 2097152 +DN_DEFAULTPRN = 1 +WM_PSD_PAGESETUPDLG = (WM_USER ) +WM_PSD_FULLPAGERECT = (WM_USER+1) +WM_PSD_MINMARGINRECT = (WM_USER+2) +WM_PSD_MARGINRECT = (WM_USER+3) +WM_PSD_GREEKTEXTRECT = (WM_USER+4) +WM_PSD_ENVSTAMPRECT = (WM_USER+5) +WM_PSD_YAFULLPAGERECT = (WM_USER+6) +PSD_DEFAULTMINMARGINS = 0 # default (printer's) +PSD_INWININIINTLMEASURE = 0 # 1st of 4 possible +PSD_MINMARGINS = 1 # use caller's +PSD_MARGINS = 2 # use caller's +PSD_INTHOUSANDTHSOFINCHES = 4 # 2nd of 4 possible +PSD_INHUNDREDTHSOFMILLIMETERS = 8 # 3rd of 4 possible +PSD_DISABLEMARGINS = 16 +PSD_DISABLEPRINTER = 32 +PSD_NOWARNING = 128 # must be same as PD_* +PSD_DISABLEORIENTATION = 256 +PSD_RETURNDEFAULT = 1024 # must be same as PD_* +PSD_DISABLEPAPER = 512 +PSD_SHOWHELP = 2048 # must be same as PD_* +PSD_ENABLEPAGESETUPHOOK = 8192 # must be same as PD_* +PSD_ENABLEPAGESETUPTEMPLATE = 32768 # must be same as PD_* +PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 131072 # must be same as PD_* +PSD_ENABLEPAGEPAINTHOOK = 262144 +PSD_DISABLEPAGEPAINTING = 524288 +PSD_NONETWORKBUTTON = 2097152 # must be same as PD_* + +# Generated by h2py from winreg.h +HKEY_CLASSES_ROOT = -2147483648 +HKEY_CURRENT_USER = -2147483647 +HKEY_LOCAL_MACHINE = -2147483646 +HKEY_USERS = -2147483645 +HKEY_PERFORMANCE_DATA = -2147483644 +HKEY_CURRENT_CONFIG = -2147483643 +HKEY_DYN_DATA = -2147483642 +HKEY_PERFORMANCE_TEXT = -2147483568 # ?? 4Jan98 +HKEY_PERFORMANCE_NLSTEXT = -2147483552 # ?? 4Jan98 + +# Generated by h2py from winuser.h +HWND_BROADCAST = 65535 +HWND_DESKTOP = 0 +HWND_TOP = 0 +HWND_BOTTOM = 1 +HWND_TOPMOST = -1 +HWND_NOTOPMOST = -2 +HWND_MESSAGE = -3 + +# winuser.h line 4601 +SM_CXSCREEN = 0 +SM_CYSCREEN = 1 +SM_CXVSCROLL = 2 +SM_CYHSCROLL = 3 +SM_CYCAPTION = 4 +SM_CXBORDER = 5 +SM_CYBORDER = 6 +SM_CXDLGFRAME = 7 +SM_CYDLGFRAME = 8 +SM_CYVTHUMB = 9 +SM_CXHTHUMB = 10 +SM_CXICON = 11 +SM_CYICON = 12 +SM_CXCURSOR = 13 +SM_CYCURSOR = 14 +SM_CYMENU = 15 +SM_CXFULLSCREEN = 16 +SM_CYFULLSCREEN = 17 +SM_CYKANJIWINDOW = 18 +SM_MOUSEPRESENT = 19 +SM_CYVSCROLL = 20 +SM_CXHSCROLL = 21 +SM_DEBUG = 22 +SM_SWAPBUTTON = 23 +SM_RESERVED1 = 24 +SM_RESERVED2 = 25 +SM_RESERVED3 = 26 +SM_RESERVED4 = 27 +SM_CXMIN = 28 +SM_CYMIN = 29 +SM_CXSIZE = 30 +SM_CYSIZE = 31 +SM_CXFRAME = 32 +SM_CYFRAME = 33 +SM_CXMINTRACK = 34 +SM_CYMINTRACK = 35 +SM_CXDOUBLECLK = 36 +SM_CYDOUBLECLK = 37 +SM_CXICONSPACING = 38 +SM_CYICONSPACING = 39 +SM_MENUDROPALIGNMENT = 40 +SM_PENWINDOWS = 41 +SM_DBCSENABLED = 42 +SM_CMOUSEBUTTONS = 43 +SM_CXFIXEDFRAME = SM_CXDLGFRAME +SM_CYFIXEDFRAME = SM_CYDLGFRAME +SM_CXSIZEFRAME = SM_CXFRAME +SM_CYSIZEFRAME = SM_CYFRAME +SM_SECURE = 44 +SM_CXEDGE = 45 +SM_CYEDGE = 46 +SM_CXMINSPACING = 47 +SM_CYMINSPACING = 48 +SM_CXSMICON = 49 +SM_CYSMICON = 50 +SM_CYSMCAPTION = 51 +SM_CXSMSIZE = 52 +SM_CYSMSIZE = 53 +SM_CXMENUSIZE = 54 +SM_CYMENUSIZE = 55 +SM_ARRANGE = 56 +SM_CXMINIMIZED = 57 +SM_CYMINIMIZED = 58 +SM_CXMAXTRACK = 59 +SM_CYMAXTRACK = 60 +SM_CXMAXIMIZED = 61 +SM_CYMAXIMIZED = 62 +SM_NETWORK = 63 +SM_CLEANBOOT = 67 +SM_CXDRAG = 68 +SM_CYDRAG = 69 +SM_SHOWSOUNDS = 70 +SM_CXMENUCHECK = 71 +SM_CYMENUCHECK = 72 +SM_SLOWMACHINE = 73 +SM_MIDEASTENABLED = 74 +SM_MOUSEWHEELPRESENT = 75 +SM_XVIRTUALSCREEN = 76 +SM_YVIRTUALSCREEN = 77 +SM_CXVIRTUALSCREEN = 78 +SM_CYVIRTUALSCREEN = 79 +SM_CMONITORS = 80 +SM_SAMEDISPLAYFORMAT = 81 +SM_CMETRICS = 83 +MNC_IGNORE = 0 +MNC_CLOSE = 1 +MNC_EXECUTE = 2 +MNC_SELECT = 3 +MNS_NOCHECK = -2147483648 +MNS_MODELESS = 1073741824 +MNS_DRAGDROP = 536870912 +MNS_AUTODISMISS = 268435456 +MNS_NOTIFYBYPOS = 134217728 +MNS_CHECKORBMP = 67108864 +MIM_MAXHEIGHT = 1 +MIM_BACKGROUND = 2 +MIM_HELPID = 4 +MIM_MENUDATA = 8 +MIM_STYLE = 16 +MIM_APPLYTOSUBMENUS = -2147483648 +MND_CONTINUE = 0 +MND_ENDMENU = 1 +MNGOF_GAP = 3 +MNGO_NOINTERFACE = 0 +MNGO_NOERROR = 1 +MIIM_STATE = 1 +MIIM_ID = 2 +MIIM_SUBMENU = 4 +MIIM_CHECKMARKS = 8 +MIIM_TYPE = 16 +MIIM_DATA = 32 +MIIM_STRING = 64 +MIIM_BITMAP = 128 +MIIM_FTYPE = 256 +HBMMENU_CALLBACK = -1 +HBMMENU_SYSTEM = 1 +HBMMENU_MBAR_RESTORE = 2 +HBMMENU_MBAR_MINIMIZE = 3 +HBMMENU_MBAR_CLOSE = 5 +HBMMENU_MBAR_CLOSE_D = 6 +HBMMENU_MBAR_MINIMIZE_D = 7 +HBMMENU_POPUP_CLOSE = 8 +HBMMENU_POPUP_RESTORE = 9 +HBMMENU_POPUP_MAXIMIZE = 10 +HBMMENU_POPUP_MINIMIZE = 11 +GMDI_USEDISABLED = 1 +GMDI_GOINTOPOPUPS = 2 +TPM_LEFTBUTTON = 0 +TPM_RIGHTBUTTON = 2 +TPM_LEFTALIGN = 0 +TPM_CENTERALIGN = 4 +TPM_RIGHTALIGN = 8 +TPM_TOPALIGN = 0 +TPM_VCENTERALIGN = 16 +TPM_BOTTOMALIGN = 32 +TPM_HORIZONTAL = 0 +TPM_VERTICAL = 64 +TPM_NONOTIFY = 128 +TPM_RETURNCMD = 256 +TPM_RECURSE = 1 +DOF_EXECUTABLE = 32769 +DOF_DOCUMENT = 32770 +DOF_DIRECTORY = 32771 +DOF_MULTIPLE = 32772 +DOF_PROGMAN = 1 +DOF_SHELLDATA = 2 +DO_DROPFILE = 1162627398 +DO_PRINTFILE = 1414419024 +DT_TOP = 0 +DT_LEFT = 0 +DT_CENTER = 1 +DT_RIGHT = 2 +DT_VCENTER = 4 +DT_BOTTOM = 8 +DT_WORDBREAK = 16 +DT_SINGLELINE = 32 +DT_EXPANDTABS = 64 +DT_TABSTOP = 128 +DT_NOCLIP = 256 +DT_EXTERNALLEADING = 512 +DT_CALCRECT = 1024 +DT_NOPREFIX = 2048 +DT_INTERNAL = 4096 +DT_EDITCONTROL = 8192 +DT_PATH_ELLIPSIS = 16384 +DT_END_ELLIPSIS = 32768 +DT_MODIFYSTRING = 65536 +DT_RTLREADING = 131072 +DT_WORD_ELLIPSIS = 262144 +DST_COMPLEX = 0 +DST_TEXT = 1 +DST_PREFIXTEXT = 2 +DST_ICON = 3 +DST_BITMAP = 4 +DSS_NORMAL = 0 +DSS_UNION = 16 +DSS_DISABLED = 32 +DSS_MONO = 128 +DSS_RIGHT = 32768 +DCX_WINDOW = 1 +DCX_CACHE = 2 +DCX_NORESETATTRS = 4 +DCX_CLIPCHILDREN = 8 +DCX_CLIPSIBLINGS = 16 +DCX_PARENTCLIP = 32 +DCX_EXCLUDERGN = 64 +DCX_INTERSECTRGN = 128 +DCX_EXCLUDEUPDATE = 256 +DCX_INTERSECTUPDATE = 512 +DCX_LOCKWINDOWUPDATE = 1024 +DCX_VALIDATE = 2097152 +CUDR_NORMAL = 0 +CUDR_NOSNAPTOGRID = 1 +CUDR_NORESOLVEPOSITIONS = 2 +CUDR_NOCLOSEGAPS = 4 +CUDR_NEGATIVECOORDS = 8 +CUDR_NOPRIMARY = 16 +RDW_INVALIDATE = 1 +RDW_INTERNALPAINT = 2 +RDW_ERASE = 4 +RDW_VALIDATE = 8 +RDW_NOINTERNALPAINT = 16 +RDW_NOERASE = 32 +RDW_NOCHILDREN = 64 +RDW_ALLCHILDREN = 128 +RDW_UPDATENOW = 256 +RDW_ERASENOW = 512 +RDW_FRAME = 1024 +RDW_NOFRAME = 2048 +SW_SCROLLCHILDREN = 1 +SW_INVALIDATE = 2 +SW_ERASE = 4 +SW_SMOOTHSCROLL = 16 # Use smooth scrolling +ESB_ENABLE_BOTH = 0 +ESB_DISABLE_BOTH = 3 +ESB_DISABLE_LEFT = 1 +ESB_DISABLE_RIGHT = 2 +ESB_DISABLE_UP = 1 +ESB_DISABLE_DOWN = 2 +ESB_DISABLE_LTUP = ESB_DISABLE_LEFT +ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT +HELPINFO_WINDOW = 1 +HELPINFO_MENUITEM = 2 +MB_OK = 0 +MB_OKCANCEL = 1 +MB_ABORTRETRYIGNORE = 2 +MB_YESNOCANCEL = 3 +MB_YESNO = 4 +MB_RETRYCANCEL = 5 +MB_ICONHAND = 16 +MB_ICONQUESTION = 32 +MB_ICONEXCLAMATION = 48 +MB_ICONASTERISK = 64 +MB_ICONWARNING = MB_ICONEXCLAMATION +MB_ICONERROR = MB_ICONHAND +MB_ICONINFORMATION = MB_ICONASTERISK +MB_ICONSTOP = MB_ICONHAND +MB_DEFBUTTON1 = 0 +MB_DEFBUTTON2 = 256 +MB_DEFBUTTON3 = 512 +MB_DEFBUTTON4 = 768 +MB_APPLMODAL = 0 +MB_SYSTEMMODAL = 4096 +MB_TASKMODAL = 8192 +MB_HELP = 16384 +MB_NOFOCUS = 32768 +MB_SETFOREGROUND = 65536 +MB_DEFAULT_DESKTOP_ONLY = 131072 +MB_TOPMOST = 262144 +MB_RIGHT = 524288 +MB_RTLREADING = 1048576 +MB_SERVICE_NOTIFICATION = 2097152 +MB_TYPEMASK = 15 +MB_USERICON = 128 +MB_ICONMASK = 240 +MB_DEFMASK = 3840 +MB_MODEMASK = 12288 +MB_MISCMASK = 49152 +# winuser.h line 6373 +CWP_ALL = 0 +CWP_SKIPINVISIBLE = 1 +CWP_SKIPDISABLED = 2 +CWP_SKIPTRANSPARENT = 4 +CTLCOLOR_MSGBOX = 0 +CTLCOLOR_EDIT = 1 +CTLCOLOR_LISTBOX = 2 +CTLCOLOR_BTN = 3 +CTLCOLOR_DLG = 4 +CTLCOLOR_SCROLLBAR = 5 +CTLCOLOR_STATIC = 6 +CTLCOLOR_MAX = 7 +COLOR_SCROLLBAR = 0 +COLOR_BACKGROUND = 1 +COLOR_ACTIVECAPTION = 2 +COLOR_INACTIVECAPTION = 3 +COLOR_MENU = 4 +COLOR_WINDOW = 5 +COLOR_WINDOWFRAME = 6 +COLOR_MENUTEXT = 7 +COLOR_WINDOWTEXT = 8 +COLOR_CAPTIONTEXT = 9 +COLOR_ACTIVEBORDER = 10 +COLOR_INACTIVEBORDER = 11 +COLOR_APPWORKSPACE = 12 +COLOR_HIGHLIGHT = 13 +COLOR_HIGHLIGHTTEXT = 14 +COLOR_BTNFACE = 15 +COLOR_BTNSHADOW = 16 +COLOR_GRAYTEXT = 17 +COLOR_BTNTEXT = 18 +COLOR_INACTIVECAPTIONTEXT = 19 +COLOR_BTNHIGHLIGHT = 20 +COLOR_3DDKSHADOW = 21 +COLOR_3DLIGHT = 22 +COLOR_INFOTEXT = 23 +COLOR_INFOBK = 24 +COLOR_HOTLIGHT = 26 +COLOR_GRADIENTACTIVECAPTION = 27 +COLOR_GRADIENTINACTIVECAPTION = 28 +COLOR_DESKTOP = COLOR_BACKGROUND +COLOR_3DFACE = COLOR_BTNFACE +COLOR_3DSHADOW = COLOR_BTNSHADOW +COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT +COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT +COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT +GW_HWNDFIRST = 0 +GW_HWNDLAST = 1 +GW_HWNDNEXT = 2 +GW_HWNDPREV = 3 +GW_OWNER = 4 +GW_CHILD = 5 +GW_ENABLEDPOPUP = 6 +GW_MAX = 6 +MF_INSERT = 0 +MF_CHANGE = 128 +MF_APPEND = 256 +MF_DELETE = 512 +MF_REMOVE = 4096 +MF_BYCOMMAND = 0 +MF_BYPOSITION = 1024 +MF_SEPARATOR = 2048 +MF_ENABLED = 0 +MF_GRAYED = 1 +MF_DISABLED = 2 +MF_UNCHECKED = 0 +MF_CHECKED = 8 +MF_USECHECKBITMAPS = 512 +MF_STRING = 0 +MF_BITMAP = 4 +MF_OWNERDRAW = 256 +MF_POPUP = 16 +MF_MENUBARBREAK = 32 +MF_MENUBREAK = 64 +MF_UNHILITE = 0 +MF_HILITE = 128 +MF_DEFAULT = 4096 +MF_SYSMENU = 8192 +MF_HELP = 16384 +MF_RIGHTJUSTIFY = 16384 +MF_MOUSESELECT = 32768 +MF_END = 128 +MFT_STRING = MF_STRING +MFT_BITMAP = MF_BITMAP +MFT_MENUBARBREAK = MF_MENUBARBREAK +MFT_MENUBREAK = MF_MENUBREAK +MFT_OWNERDRAW = MF_OWNERDRAW +MFT_RADIOCHECK = 512 +MFT_SEPARATOR = MF_SEPARATOR +MFT_RIGHTORDER = 8192 +MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY +MFS_GRAYED = 3 +MFS_DISABLED = MFS_GRAYED +MFS_CHECKED = MF_CHECKED +MFS_HILITE = MF_HILITE +MFS_ENABLED = MF_ENABLED +MFS_UNCHECKED = MF_UNCHECKED +MFS_UNHILITE = MF_UNHILITE +MFS_DEFAULT = MF_DEFAULT +MFS_MASK = 4235 +MFS_HOTTRACKDRAWN = 268435456 +MFS_CACHEDBMP = 536870912 +MFS_BOTTOMGAPDROP = 1073741824 +MFS_TOPGAPDROP = -2147483648 +MFS_GAPDROP = -1073741824 +SC_SIZE = 61440 +SC_MOVE = 61456 +SC_MINIMIZE = 61472 +SC_MAXIMIZE = 61488 +SC_NEXTWINDOW = 61504 +SC_PREVWINDOW = 61520 +SC_CLOSE = 61536 +SC_VSCROLL = 61552 +SC_HSCROLL = 61568 +SC_MOUSEMENU = 61584 +SC_KEYMENU = 61696 +SC_ARRANGE = 61712 +SC_RESTORE = 61728 +SC_TASKLIST = 61744 +SC_SCREENSAVE = 61760 +SC_HOTKEY = 61776 +SC_DEFAULT = 61792 +SC_MONITORPOWER = 61808 +SC_CONTEXTHELP = 61824 +SC_SEPARATOR = 61455 +SC_ICON = SC_MINIMIZE +SC_ZOOM = SC_MAXIMIZE +IDC_ARROW = 32512 +IDC_IBEAM = 32513 +IDC_WAIT = 32514 +IDC_CROSS = 32515 +IDC_UPARROW = 32516 +IDC_SIZE = 32640 # OBSOLETE: use IDC_SIZEALL +IDC_ICON = 32641 # OBSOLETE: use IDC_ARROW +IDC_SIZENWSE = 32642 +IDC_SIZENESW = 32643 +IDC_SIZEWE = 32644 +IDC_SIZENS = 32645 +IDC_SIZEALL = 32646 +IDC_NO = 32648 +IDC_HAND = 32649 +IDC_APPSTARTING = 32650 +IDC_HELP = 32651 +IMAGE_BITMAP = 0 +IMAGE_ICON = 1 +IMAGE_CURSOR = 2 +IMAGE_ENHMETAFILE = 3 +LR_DEFAULTCOLOR = 0 +LR_MONOCHROME = 1 +LR_COLOR = 2 +LR_COPYRETURNORG = 4 +LR_COPYDELETEORG = 8 +LR_LOADFROMFILE = 16 +LR_LOADTRANSPARENT = 32 +LR_DEFAULTSIZE = 64 +LR_LOADREALSIZE = 128 +LR_LOADMAP3DCOLORS = 4096 +LR_CREATEDIBSECTION = 8192 +LR_COPYFROMRESOURCE = 16384 +LR_SHARED = 32768 +DI_MASK = 1 +DI_IMAGE = 2 +DI_NORMAL = 3 +DI_COMPAT = 4 +DI_DEFAULTSIZE = 8 +RES_ICON = 1 +RES_CURSOR = 2 +OBM_CLOSE = 32754 +OBM_UPARROW = 32753 +OBM_DNARROW = 32752 +OBM_RGARROW = 32751 +OBM_LFARROW = 32750 +OBM_REDUCE = 32749 +OBM_ZOOM = 32748 +OBM_RESTORE = 32747 +OBM_REDUCED = 32746 +OBM_ZOOMD = 32745 +OBM_RESTORED = 32744 +OBM_UPARROWD = 32743 +OBM_DNARROWD = 32742 +OBM_RGARROWD = 32741 +OBM_LFARROWD = 32740 +OBM_MNARROW = 32739 +OBM_COMBO = 32738 +OBM_UPARROWI = 32737 +OBM_DNARROWI = 32736 +OBM_RGARROWI = 32735 +OBM_LFARROWI = 32734 +OBM_OLD_CLOSE = 32767 +OBM_SIZE = 32766 +OBM_OLD_UPARROW = 32765 +OBM_OLD_DNARROW = 32764 +OBM_OLD_RGARROW = 32763 +OBM_OLD_LFARROW = 32762 +OBM_BTSIZE = 32761 +OBM_CHECK = 32760 +OBM_CHECKBOXES = 32759 +OBM_BTNCORNERS = 32758 +OBM_OLD_REDUCE = 32757 +OBM_OLD_ZOOM = 32756 +OBM_OLD_RESTORE = 32755 +OCR_NORMAL = 32512 +OCR_IBEAM = 32513 +OCR_WAIT = 32514 +OCR_CROSS = 32515 +OCR_UP = 32516 +OCR_SIZE = 32640 +OCR_ICON = 32641 +OCR_SIZENWSE = 32642 +OCR_SIZENESW = 32643 +OCR_SIZEWE = 32644 +OCR_SIZENS = 32645 +OCR_SIZEALL = 32646 +OCR_ICOCUR = 32647 +OCR_NO = 32648 +OCR_HAND = 32649 +OCR_APPSTARTING = 32650 +# winuser.h line 7455 +OIC_SAMPLE = 32512 +OIC_HAND = 32513 +OIC_QUES = 32514 +OIC_BANG = 32515 +OIC_NOTE = 32516 +OIC_WINLOGO = 32517 +OIC_WARNING = OIC_BANG +OIC_ERROR = OIC_HAND +OIC_INFORMATION = OIC_NOTE +ORD_LANGDRIVER = 1 +IDI_APPLICATION = 32512 +IDI_HAND = 32513 +IDI_QUESTION = 32514 +IDI_EXCLAMATION = 32515 +IDI_ASTERISK = 32516 +IDI_WINLOGO = 32517 +IDI_WARNING = IDI_EXCLAMATION +IDI_ERROR = IDI_HAND +IDI_INFORMATION = IDI_ASTERISK +IDOK = 1 +IDCANCEL = 2 +IDABORT = 3 +IDRETRY = 4 +IDIGNORE = 5 +IDYES = 6 +IDNO = 7 +IDCLOSE = 8 +IDHELP = 9 +ES_LEFT = 0 +ES_CENTER = 1 +ES_RIGHT = 2 +ES_MULTILINE = 4 +ES_UPPERCASE = 8 +ES_LOWERCASE = 16 +ES_PASSWORD = 32 +ES_AUTOVSCROLL = 64 +ES_AUTOHSCROLL = 128 +ES_NOHIDESEL = 256 +ES_OEMCONVERT = 1024 +ES_READONLY = 2048 +ES_WANTRETURN = 4096 +ES_NUMBER = 8192 +EN_SETFOCUS = 256 +EN_KILLFOCUS = 512 +EN_CHANGE = 768 +EN_UPDATE = 1024 +EN_ERRSPACE = 1280 +EN_MAXTEXT = 1281 +EN_HSCROLL = 1537 +EN_VSCROLL = 1538 +EC_LEFTMARGIN = 1 +EC_RIGHTMARGIN = 2 +EC_USEFONTINFO = 65535 +EMSIS_COMPOSITIONSTRING = 1 +EIMES_GETCOMPSTRATONCE = 1 +EIMES_CANCELCOMPSTRINFOCUS = 2 +EIMES_COMPLETECOMPSTRKILLFOCUS = 4 +EM_GETSEL = 176 +EM_SETSEL = 177 +EM_GETRECT = 178 +EM_SETRECT = 179 +EM_SETRECTNP = 180 +EM_SCROLL = 181 +EM_LINESCROLL = 182 +EM_SCROLLCARET = 183 +EM_GETMODIFY = 184 +EM_SETMODIFY = 185 +EM_GETLINECOUNT = 186 +EM_LINEINDEX = 187 +EM_SETHANDLE = 188 +EM_GETHANDLE = 189 +EM_GETTHUMB = 190 +EM_LINELENGTH = 193 +EM_REPLACESEL = 194 +EM_GETLINE = 196 +EM_LIMITTEXT = 197 +EM_CANUNDO = 198 +EM_UNDO = 199 +EM_FMTLINES = 200 +EM_LINEFROMCHAR = 201 +EM_SETTABSTOPS = 203 +EM_SETPASSWORDCHAR = 204 +EM_EMPTYUNDOBUFFER = 205 +EM_GETFIRSTVISIBLELINE = 206 +EM_SETREADONLY = 207 +EM_SETWORDBREAKPROC = 208 +EM_GETWORDBREAKPROC = 209 +EM_GETPASSWORDCHAR = 210 +EM_SETMARGINS = 211 +EM_GETMARGINS = 212 +EM_SETLIMITTEXT = EM_LIMITTEXT +EM_GETLIMITTEXT = 213 +EM_POSFROMCHAR = 214 +EM_CHARFROMPOS = 215 +EM_SETIMESTATUS = 216 +EM_GETIMESTATUS = 217 +WB_LEFT = 0 +WB_RIGHT = 1 +WB_ISDELIMITER = 2 +BS_PUSHBUTTON = 0 +BS_DEFPUSHBUTTON = 1 +BS_CHECKBOX = 2 +BS_AUTOCHECKBOX = 3 +BS_RADIOBUTTON = 4 +BS_3STATE = 5 +BS_AUTO3STATE = 6 +BS_GROUPBOX = 7 +BS_USERBUTTON = 8 +BS_AUTORADIOBUTTON = 9 +BS_OWNERDRAW = 11 +BS_LEFTTEXT = 32 +BS_TEXT = 0 +BS_ICON = 64 +BS_BITMAP = 128 +BS_LEFT = 256 +BS_RIGHT = 512 +BS_CENTER = 768 +BS_TOP = 1024 +BS_BOTTOM = 2048 +BS_VCENTER = 3072 +BS_PUSHLIKE = 4096 +BS_MULTILINE = 8192 +BS_NOTIFY = 16384 +BS_FLAT = 32768 +BS_RIGHTBUTTON = BS_LEFTTEXT +BN_CLICKED = 0 +BN_PAINT = 1 +BN_HILITE = 2 +BN_UNHILITE = 3 +BN_DISABLE = 4 +BN_DOUBLECLICKED = 5 +BN_PUSHED = BN_HILITE +BN_UNPUSHED = BN_UNHILITE +BN_DBLCLK = BN_DOUBLECLICKED +BN_SETFOCUS = 6 +BN_KILLFOCUS = 7 +BM_GETCHECK = 240 +BM_SETCHECK = 241 +BM_GETSTATE = 242 +BM_SETSTATE = 243 +BM_SETSTYLE = 244 +BM_CLICK = 245 +BM_GETIMAGE = 246 +BM_SETIMAGE = 247 +BST_UNCHECKED = 0 +BST_CHECKED = 1 +BST_INDETERMINATE = 2 +BST_PUSHED = 4 +BST_FOCUS = 8 +SS_LEFT = 0 +SS_CENTER = 1 +SS_RIGHT = 2 +SS_ICON = 3 +SS_BLACKRECT = 4 +SS_GRAYRECT = 5 +SS_WHITERECT = 6 +SS_BLACKFRAME = 7 +SS_GRAYFRAME = 8 +SS_WHITEFRAME = 9 +SS_USERITEM = 10 +SS_SIMPLE = 11 +SS_LEFTNOWORDWRAP = 12 +SS_BITMAP = 14 +SS_OWNERDRAW = 13 +SS_ENHMETAFILE = 15 +SS_ETCHEDHORZ = 16 +SS_ETCHEDVERT = 17 +SS_ETCHEDFRAME = 18 +SS_TYPEMASK = 31 +SS_NOPREFIX = 128 +SS_NOTIFY = 256 +SS_CENTERIMAGE = 512 +SS_RIGHTJUST = 1024 +SS_REALSIZEIMAGE = 2048 +SS_SUNKEN = 4096 +SS_ENDELLIPSIS = 16384 +SS_PATHELLIPSIS = 32768 +SS_WORDELLIPSIS = 49152 +SS_ELLIPSISMASK = 49152 +STM_SETICON = 368 +STM_GETICON = 369 +STM_SETIMAGE = 370 +STM_GETIMAGE = 371 +STN_CLICKED = 0 +STN_DBLCLK = 1 +STN_ENABLE = 2 +STN_DISABLE = 3 +STM_MSGMAX = 372 +DWL_MSGRESULT = 0 +DWL_DLGPROC = 4 +DWL_USER = 8 +DDL_READWRITE = 0 +DDL_READONLY = 1 +DDL_HIDDEN = 2 +DDL_SYSTEM = 4 +DDL_DIRECTORY = 16 +DDL_ARCHIVE = 32 +DDL_POSTMSGS = 8192 +DDL_DRIVES = 16384 +DDL_EXCLUSIVE = 32768 + +#from winuser.h line 153 +RT_CURSOR = 1 +RT_BITMAP = 2 +RT_ICON = 3 +RT_MENU = 4 +RT_DIALOG = 5 +RT_STRING = 6 +RT_FONTDIR = 7 +RT_FONT = 8 +RT_ACCELERATOR = 9 +RT_RCDATA = 10 +RT_MESSAGETABLE = 11 +DIFFERENCE = 11 +RT_GROUP_CURSOR = (RT_CURSOR + DIFFERENCE) +RT_GROUP_ICON = (RT_ICON + DIFFERENCE) +RT_VERSION = 16 +RT_DLGINCLUDE = 17 +RT_PLUGPLAY = 19 +RT_VXD = 20 +RT_ANICURSOR = 21 +RT_ANIICON = 22 +RT_HTML = 23 +# from winuser.h line 218 +SB_HORZ = 0 +SB_VERT = 1 +SB_CTL = 2 +SB_BOTH = 3 +SB_LINEUP = 0 +SB_LINELEFT = 0 +SB_LINEDOWN = 1 +SB_LINERIGHT = 1 +SB_PAGEUP = 2 +SB_PAGELEFT = 2 +SB_PAGEDOWN = 3 +SB_PAGERIGHT = 3 +SB_THUMBPOSITION = 4 +SB_THUMBTRACK = 5 +SB_TOP = 6 +SB_LEFT = 6 +SB_BOTTOM = 7 +SB_RIGHT = 7 +SB_ENDSCROLL = 8 +SW_HIDE = 0 +SW_SHOWNORMAL = 1 +SW_NORMAL = 1 +SW_SHOWMINIMIZED = 2 +SW_SHOWMAXIMIZED = 3 +SW_MAXIMIZE = 3 +SW_SHOWNOACTIVATE = 4 +SW_SHOW = 5 +SW_MINIMIZE = 6 +SW_SHOWMINNOACTIVE = 7 +SW_SHOWNA = 8 +SW_RESTORE = 9 +SW_SHOWDEFAULT = 10 +SW_FORCEMINIMIZE = 11 +SW_MAX = 11 +HIDE_WINDOW = 0 +SHOW_OPENWINDOW = 1 +SHOW_ICONWINDOW = 2 +SHOW_FULLSCREEN = 3 +SHOW_OPENNOACTIVATE = 4 +SW_PARENTCLOSING = 1 +SW_OTHERZOOM = 2 +SW_PARENTOPENING = 3 +SW_OTHERUNZOOM = 4 +AW_HOR_POSITIVE = 1 +AW_HOR_NEGATIVE = 2 +AW_VER_POSITIVE = 4 +AW_VER_NEGATIVE = 8 +AW_CENTER = 16 +AW_HIDE = 65536 +AW_ACTIVATE = 131072 +AW_SLIDE = 262144 +AW_BLEND = 524288 +KF_EXTENDED = 256 +KF_DLGMODE = 2048 +KF_MENUMODE = 4096 +KF_ALTDOWN = 8192 +KF_REPEAT = 16384 +KF_UP = 32768 +VK_LBUTTON = 1 +VK_RBUTTON = 2 +VK_CANCEL = 3 +VK_MBUTTON = 4 +VK_BACK = 8 +VK_TAB = 9 +VK_CLEAR = 12 +VK_RETURN = 13 +VK_SHIFT = 16 +VK_CONTROL = 17 +VK_MENU = 18 +VK_PAUSE = 19 +VK_CAPITAL = 20 +VK_KANA = 21 +VK_HANGEUL = 21 # old name - should be here for compatibility +VK_HANGUL = 21 +VK_JUNJA = 23 +VK_FINAL = 24 +VK_HANJA = 25 +VK_KANJI = 25 +VK_ESCAPE = 27 +VK_CONVERT = 28 +VK_NONCONVERT = 29 +VK_ACCEPT = 30 +VK_MODECHANGE = 31 +VK_SPACE = 32 +VK_PRIOR = 33 +VK_NEXT = 34 +VK_END = 35 +VK_HOME = 36 +VK_LEFT = 37 +VK_UP = 38 +VK_RIGHT = 39 +VK_DOWN = 40 +VK_SELECT = 41 +VK_PRINT = 42 +VK_EXECUTE = 43 +VK_SNAPSHOT = 44 +VK_INSERT = 45 +VK_DELETE = 46 +VK_HELP = 47 +VK_LWIN = 91 +VK_RWIN = 92 +VK_APPS = 93 +VK_NUMPAD0 = 96 +VK_NUMPAD1 = 97 +VK_NUMPAD2 = 98 +VK_NUMPAD3 = 99 +VK_NUMPAD4 = 100 +VK_NUMPAD5 = 101 +VK_NUMPAD6 = 102 +VK_NUMPAD7 = 103 +VK_NUMPAD8 = 104 +VK_NUMPAD9 = 105 +VK_MULTIPLY = 106 +VK_ADD = 107 +VK_SEPARATOR = 108 +VK_SUBTRACT = 109 +VK_DECIMAL = 110 +VK_DIVIDE = 111 +VK_F1 = 112 +VK_F2 = 113 +VK_F3 = 114 +VK_F4 = 115 +VK_F5 = 116 +VK_F6 = 117 +VK_F7 = 118 +VK_F8 = 119 +VK_F9 = 120 +VK_F10 = 121 +VK_F11 = 122 +VK_F12 = 123 +VK_F13 = 124 +VK_F14 = 125 +VK_F15 = 126 +VK_F16 = 127 +VK_F17 = 128 +VK_F18 = 129 +VK_F19 = 130 +VK_F20 = 131 +VK_F21 = 132 +VK_F22 = 133 +VK_F23 = 134 +VK_F24 = 135 +VK_NUMLOCK = 144 +VK_SCROLL = 145 +VK_LSHIFT = 160 +VK_RSHIFT = 161 +VK_LCONTROL = 162 +VK_RCONTROL = 163 +VK_LMENU = 164 +VK_RMENU = 165 +VK_PROCESSKEY = 229 +VK_ATTN = 246 +VK_CRSEL = 247 +VK_EXSEL = 248 +VK_EREOF = 249 +VK_PLAY = 250 +VK_ZOOM = 251 +VK_NONAME = 252 +VK_PA1 = 253 +VK_OEM_CLEAR = 254 +# multi-media related "keys" +MOUSEEVENTF_XDOWN = 0x0080 +MOUSEEVENTF_XUP = 0x0100 +MOUSEEVENTF_WHEEL = 0x0800 +VK_XBUTTON1 = 0x05 +VK_XBUTTON2 = 0x06 +VK_VOLUME_MUTE = 0xAD +VK_VOLUME_DOWN = 0xAE +VK_VOLUME_UP = 0xAF +VK_MEDIA_NEXT_TRACK = 0xB0 +VK_MEDIA_PREV_TRACK = 0xB1 +VK_MEDIA_PLAY_PAUSE = 0xB3 +VK_BROWSER_BACK = 0xA6 +VK_BROWSER_FORWARD = 0xA7 +WH_MIN = (-1) +WH_MSGFILTER = (-1) +WH_JOURNALRECORD = 0 +WH_JOURNALPLAYBACK = 1 +WH_KEYBOARD = 2 +WH_GETMESSAGE = 3 +WH_CALLWNDPROC = 4 +WH_CBT = 5 +WH_SYSMSGFILTER = 6 +WH_MOUSE = 7 +WH_HARDWARE = 8 +WH_DEBUG = 9 +WH_SHELL = 10 +WH_FOREGROUNDIDLE = 11 +WH_CALLWNDPROCRET = 12 +WH_KEYBOARD_LL = 13 +WH_MOUSE_LL = 14 +WH_MAX = 14 +WH_MINHOOK = WH_MIN +WH_MAXHOOK = WH_MAX +HC_ACTION = 0 +HC_GETNEXT = 1 +HC_SKIP = 2 +HC_NOREMOVE = 3 +HC_NOREM = HC_NOREMOVE +HC_SYSMODALON = 4 +HC_SYSMODALOFF = 5 +HCBT_MOVESIZE = 0 +HCBT_MINMAX = 1 +HCBT_QS = 2 +HCBT_CREATEWND = 3 +HCBT_DESTROYWND = 4 +HCBT_ACTIVATE = 5 +HCBT_CLICKSKIPPED = 6 +HCBT_KEYSKIPPED = 7 +HCBT_SYSCOMMAND = 8 +HCBT_SETFOCUS = 9 +MSGF_DIALOGBOX = 0 +MSGF_MESSAGEBOX = 1 +MSGF_MENU = 2 +#MSGF_MOVE = 3 +#MSGF_SIZE = 4 +MSGF_SCROLLBAR = 5 +MSGF_NEXTWINDOW = 6 +#MSGF_MAINLOOP = 8 +MSGF_MAX = 8 +MSGF_USER = 4096 +HSHELL_WINDOWCREATED = 1 +HSHELL_WINDOWDESTROYED = 2 +HSHELL_ACTIVATESHELLWINDOW = 3 +HSHELL_WINDOWACTIVATED = 4 +HSHELL_GETMINRECT = 5 +HSHELL_REDRAW = 6 +HSHELL_TASKMAN = 7 +HSHELL_LANGUAGE = 8 +HSHELL_ACCESSIBILITYSTATE = 11 +ACCESS_STICKYKEYS = 1 +ACCESS_FILTERKEYS = 2 +ACCESS_MOUSEKEYS = 3 +# winuser.h line 624 +LLKHF_EXTENDED = 1 +LLKHF_INJECTED = 16 +LLKHF_ALTDOWN = 32 +LLKHF_UP = 128 +LLKHF_LOWER_IL_INJECTED = 2 +LLMHF_INJECTED = 1 +LLMHF_LOWER_IL_INJECTED = 2 +# line 692 +HKL_PREV = 0 +HKL_NEXT = 1 +KLF_ACTIVATE = 1 +KLF_SUBSTITUTE_OK = 2 +KLF_UNLOADPREVIOUS = 4 +KLF_REORDER = 8 +KLF_REPLACELANG = 16 +KLF_NOTELLSHELL = 128 +KLF_SETFORPROCESS = 256 +KL_NAMELENGTH = 9 +DESKTOP_READOBJECTS = 1 +DESKTOP_CREATEWINDOW = 2 +DESKTOP_CREATEMENU = 4 +DESKTOP_HOOKCONTROL = 8 +DESKTOP_JOURNALRECORD = 16 +DESKTOP_JOURNALPLAYBACK = 32 +DESKTOP_ENUMERATE = 64 +DESKTOP_WRITEOBJECTS = 128 +DESKTOP_SWITCHDESKTOP = 256 +DF_ALLOWOTHERACCOUNTHOOK = 1 +WINSTA_ENUMDESKTOPS = 1 +WINSTA_READATTRIBUTES = 2 +WINSTA_ACCESSCLIPBOARD = 4 +WINSTA_CREATEDESKTOP = 8 +WINSTA_WRITEATTRIBUTES = 16 +WINSTA_ACCESSGLOBALATOMS = 32 +WINSTA_EXITWINDOWS = 64 +WINSTA_ENUMERATE = 256 +WINSTA_READSCREEN = 512 +WSF_VISIBLE = 1 +UOI_FLAGS = 1 +UOI_NAME = 2 +UOI_TYPE = 3 +UOI_USER_SID = 4 +GWL_WNDPROC = (-4) +GWL_HINSTANCE = (-6) +GWL_HWNDPARENT = (-8) +GWL_STYLE = (-16) +GWL_EXSTYLE = (-20) +GWL_USERDATA = (-21) +GWL_ID = (-12) +GCL_MENUNAME = (-8) +GCL_HBRBACKGROUND = (-10) +GCL_HCURSOR = (-12) +GCL_HICON = (-14) +GCL_HMODULE = (-16) +GCL_CBWNDEXTRA = (-18) +GCL_CBCLSEXTRA = (-20) +GCL_WNDPROC = (-24) +GCL_STYLE = (-26) +GCW_ATOM = (-32) +GCL_HICONSM = (-34) +# line 1291 +WM_NULL = 0 +WM_CREATE = 1 +WM_DESTROY = 2 +WM_MOVE = 3 +WM_SIZE = 5 +WM_ACTIVATE = 6 +WA_INACTIVE = 0 +WA_ACTIVE = 1 +WA_CLICKACTIVE = 2 +WM_SETFOCUS = 7 +WM_KILLFOCUS = 8 +WM_ENABLE = 10 +WM_SETREDRAW = 11 +WM_SETTEXT = 12 +WM_GETTEXT = 13 +WM_GETTEXTLENGTH = 14 +WM_PAINT = 15 +WM_CLOSE = 16 +WM_QUERYENDSESSION = 17 +WM_QUIT = 18 +WM_QUERYOPEN = 19 +WM_ERASEBKGND = 20 +WM_SYSCOLORCHANGE = 21 +WM_ENDSESSION = 22 +WM_SHOWWINDOW = 24 +WM_WININICHANGE = 26 +WM_SETTINGCHANGE = WM_WININICHANGE +WM_DEVMODECHANGE = 27 +WM_ACTIVATEAPP = 28 +WM_FONTCHANGE = 29 +WM_TIMECHANGE = 30 +WM_CANCELMODE = 31 +WM_SETCURSOR = 32 +WM_MOUSEACTIVATE = 33 +WM_CHILDACTIVATE = 34 +WM_QUEUESYNC = 35 +WM_GETMINMAXINFO = 36 +WM_PAINTICON = 38 +WM_ICONERASEBKGND = 39 +WM_NEXTDLGCTL = 40 +WM_SPOOLERSTATUS = 42 +WM_DRAWITEM = 43 +WM_MEASUREITEM = 44 +WM_DELETEITEM = 45 +WM_VKEYTOITEM = 46 +WM_CHARTOITEM = 47 +WM_SETFONT = 48 +WM_GETFONT = 49 +WM_SETHOTKEY = 50 +WM_GETHOTKEY = 51 +WM_QUERYDRAGICON = 55 +WM_COMPAREITEM = 57 +WM_GETOBJECT = 61 +WM_COMPACTING = 65 +WM_COMMNOTIFY = 68 +WM_WINDOWPOSCHANGING = 70 +WM_WINDOWPOSCHANGED = 71 +WM_POWER = 72 +PWR_OK = 1 +PWR_FAIL = (-1) +PWR_SUSPENDREQUEST = 1 +PWR_SUSPENDRESUME = 2 +PWR_CRITICALRESUME = 3 +WM_COPYDATA = 74 +WM_CANCELJOURNAL = 75 +WM_NOTIFY = 78 +WM_INPUTLANGCHANGEREQUEST = 80 +WM_INPUTLANGCHANGE = 81 +WM_TCARD = 82 +WM_HELP = 83 +WM_USERCHANGED = 84 +WM_NOTIFYFORMAT = 85 +NFR_ANSI = 1 +NFR_UNICODE = 2 +NF_QUERY = 3 +NF_REQUERY = 4 +WM_CONTEXTMENU = 123 +WM_STYLECHANGING = 124 +WM_STYLECHANGED = 125 +WM_DISPLAYCHANGE = 126 +WM_GETICON = 127 +WM_SETICON = 128 +WM_NCCREATE = 129 +WM_NCDESTROY = 130 +WM_NCCALCSIZE = 131 +WM_NCHITTEST = 132 +WM_NCPAINT = 133 +WM_NCACTIVATE = 134 +WM_GETDLGCODE = 135 +WM_SYNCPAINT = 136 +WM_NCMOUSEMOVE = 160 +WM_NCLBUTTONDOWN = 161 +WM_NCLBUTTONUP = 162 +WM_NCLBUTTONDBLCLK = 163 +WM_NCRBUTTONDOWN = 164 +WM_NCRBUTTONUP = 165 +WM_NCRBUTTONDBLCLK = 166 +WM_NCMBUTTONDOWN = 167 +WM_NCMBUTTONUP = 168 +WM_NCMBUTTONDBLCLK = 169 +WM_KEYFIRST = 256 +WM_KEYDOWN = 256 +WM_KEYUP = 257 +WM_CHAR = 258 +WM_DEADCHAR = 259 +WM_SYSKEYDOWN = 260 +WM_SYSKEYUP = 261 +WM_SYSCHAR = 262 +WM_SYSDEADCHAR = 263 +WM_KEYLAST = 264 +WM_IME_STARTCOMPOSITION = 269 +WM_IME_ENDCOMPOSITION = 270 +WM_IME_COMPOSITION = 271 +WM_IME_KEYLAST = 271 +WM_INITDIALOG = 272 +WM_COMMAND = 273 +WM_SYSCOMMAND = 274 +WM_TIMER = 275 +WM_HSCROLL = 276 +WM_VSCROLL = 277 +WM_INITMENU = 278 +WM_INITMENUPOPUP = 279 +WM_MENUSELECT = 287 +WM_MENUCHAR = 288 +WM_ENTERIDLE = 289 +WM_MENURBUTTONUP = 290 +WM_MENUDRAG = 291 +WM_MENUGETOBJECT = 292 +WM_UNINITMENUPOPUP = 293 +WM_MENUCOMMAND = 294 +WM_CTLCOLORMSGBOX = 306 +WM_CTLCOLOREDIT = 307 +WM_CTLCOLORLISTBOX = 308 +WM_CTLCOLORBTN = 309 +WM_CTLCOLORDLG = 310 +WM_CTLCOLORSCROLLBAR = 311 +WM_CTLCOLORSTATIC = 312 +WM_MOUSEFIRST = 512 +WM_MOUSEMOVE = 512 +WM_LBUTTONDOWN = 513 +WM_LBUTTONUP = 514 +WM_LBUTTONDBLCLK = 515 +WM_RBUTTONDOWN = 516 +WM_RBUTTONUP = 517 +WM_RBUTTONDBLCLK = 518 +WM_MBUTTONDOWN = 519 +WM_MBUTTONUP = 520 +WM_MBUTTONDBLCLK = 521 +WM_MOUSEWHEEL = 522 +WM_MOUSELAST = 522 +WHEEL_DELTA = 120 # Value for rolling one detent +WHEEL_PAGESCROLL = -1 # Scroll one page +WM_PARENTNOTIFY = 528 +MENULOOP_WINDOW = 0 +MENULOOP_POPUP = 1 +WM_ENTERMENULOOP = 529 +WM_EXITMENULOOP = 530 +WM_NEXTMENU = 531 +WM_SIZING = 532 +WM_CAPTURECHANGED = 533 +WM_MOVING = 534 +WM_POWERBROADCAST = 536 +PBT_APMQUERYSUSPEND = 0 +PBT_APMQUERYSTANDBY = 1 +PBT_APMQUERYSUSPENDFAILED = 2 +PBT_APMQUERYSTANDBYFAILED = 3 +PBT_APMSUSPEND = 4 +PBT_APMSTANDBY = 5 +PBT_APMRESUMECRITICAL = 6 +PBT_APMRESUMESUSPEND = 7 +PBT_APMRESUMESTANDBY = 8 +PBTF_APMRESUMEFROMFAILURE = 1 +PBT_APMBATTERYLOW = 9 +PBT_APMPOWERSTATUSCHANGE = 10 +PBT_APMOEMEVENT = 11 +PBT_APMRESUMEAUTOMATIC = 18 +WM_DEVICECHANGE = 537 +WM_MDICREATE = 544 +WM_MDIDESTROY = 545 +WM_MDIACTIVATE = 546 +WM_MDIRESTORE = 547 +WM_MDINEXT = 548 +WM_MDIMAXIMIZE = 549 +WM_MDITILE = 550 +WM_MDICASCADE = 551 +WM_MDIICONARRANGE = 552 +WM_MDIGETACTIVE = 553 +WM_MDISETMENU = 560 +WM_ENTERSIZEMOVE = 561 +WM_EXITSIZEMOVE = 562 +WM_DROPFILES = 563 +WM_MDIREFRESHMENU = 564 +WM_IME_SETCONTEXT = 641 +WM_IME_NOTIFY = 642 +WM_IME_CONTROL = 643 +WM_IME_COMPOSITIONFULL = 644 +WM_IME_SELECT = 645 +WM_IME_CHAR = 646 +WM_IME_REQUEST = 648 +WM_IME_KEYDOWN = 656 +WM_IME_KEYUP = 657 +WM_MOUSEHOVER = 673 +WM_MOUSELEAVE = 675 +WM_CUT = 768 +WM_COPY = 769 +WM_PASTE = 770 +WM_CLEAR = 771 +WM_UNDO = 772 +WM_RENDERFORMAT = 773 +WM_RENDERALLFORMATS = 774 +WM_DESTROYCLIPBOARD = 775 +WM_DRAWCLIPBOARD = 776 +WM_PAINTCLIPBOARD = 777 +WM_VSCROLLCLIPBOARD = 778 +WM_SIZECLIPBOARD = 779 +WM_ASKCBFORMATNAME = 780 +WM_CHANGECBCHAIN = 781 +WM_HSCROLLCLIPBOARD = 782 +WM_QUERYNEWPALETTE = 783 +WM_PALETTEISCHANGING = 784 +WM_PALETTECHANGED = 785 +WM_HOTKEY = 786 +WM_PRINT = 791 +WM_PRINTCLIENT = 792 +WM_HANDHELDFIRST = 856 +WM_HANDHELDLAST = 863 +WM_AFXFIRST = 864 +WM_AFXLAST = 895 +WM_PENWINFIRST = 896 +WM_PENWINLAST = 911 +WM_APP = 32768 +WMSZ_LEFT = 1 +WMSZ_RIGHT = 2 +WMSZ_TOP = 3 +WMSZ_TOPLEFT = 4 +WMSZ_TOPRIGHT = 5 +WMSZ_BOTTOM = 6 +WMSZ_BOTTOMLEFT = 7 +WMSZ_BOTTOMRIGHT = 8 +#ST_BEGINSWP = 0 +#ST_ENDSWP = 1 +HTERROR = (-2) +HTTRANSPARENT = (-1) +HTNOWHERE = 0 +HTCLIENT = 1 +HTCAPTION = 2 +HTSYSMENU = 3 +HTGROWBOX = 4 +HTSIZE = HTGROWBOX +HTMENU = 5 +HTHSCROLL = 6 +HTVSCROLL = 7 +HTMINBUTTON = 8 +HTMAXBUTTON = 9 +HTLEFT = 10 +HTRIGHT = 11 +HTTOP = 12 +HTTOPLEFT = 13 +HTTOPRIGHT = 14 +HTBOTTOM = 15 +HTBOTTOMLEFT = 16 +HTBOTTOMRIGHT = 17 +HTBORDER = 18 +HTREDUCE = HTMINBUTTON +HTZOOM = HTMAXBUTTON +HTSIZEFIRST = HTLEFT +HTSIZELAST = HTBOTTOMRIGHT +HTOBJECT = 19 +HTCLOSE = 20 +HTHELP = 21 +SMTO_NORMAL = 0 +SMTO_BLOCK = 1 +SMTO_ABORTIFHUNG = 2 +SMTO_NOTIMEOUTIFNOTHUNG = 8 +MA_ACTIVATE = 1 +MA_ACTIVATEANDEAT = 2 +MA_NOACTIVATE = 3 +MA_NOACTIVATEANDEAT = 4 +ICON_SMALL = 0 +ICON_BIG = 1 +SIZE_RESTORED = 0 +SIZE_MINIMIZED = 1 +SIZE_MAXIMIZED = 2 +SIZE_MAXSHOW = 3 +SIZE_MAXHIDE = 4 +SIZENORMAL = SIZE_RESTORED +SIZEICONIC = SIZE_MINIMIZED +SIZEFULLSCREEN = SIZE_MAXIMIZED +SIZEZOOMSHOW = SIZE_MAXSHOW +SIZEZOOMHIDE = SIZE_MAXHIDE +WVR_ALIGNTOP = 16 +WVR_ALIGNLEFT = 32 +WVR_ALIGNBOTTOM = 64 +WVR_ALIGNRIGHT = 128 +WVR_HREDRAW = 256 +WVR_VREDRAW = 512 +WVR_REDRAW = (WVR_HREDRAW | WVR_VREDRAW) +WVR_VALIDRECTS = 1024 +MK_LBUTTON = 1 +MK_RBUTTON = 2 +MK_SHIFT = 4 +MK_CONTROL = 8 +MK_MBUTTON = 16 +TME_HOVER = 1 +TME_LEAVE = 2 +TME_QUERY = 1073741824 +TME_CANCEL = -2147483648 +HOVER_DEFAULT = -1 +WS_OVERLAPPED = 0 +WS_POPUP = -2147483648 +WS_CHILD = 1073741824 +WS_MINIMIZE = 536870912 +WS_VISIBLE = 268435456 +WS_DISABLED = 134217728 +WS_CLIPSIBLINGS = 67108864 +WS_CLIPCHILDREN = 33554432 +WS_MAXIMIZE = 16777216 +WS_CAPTION = 12582912 +WS_BORDER = 8388608 +WS_DLGFRAME = 4194304 +WS_VSCROLL = 2097152 +WS_HSCROLL = 1048576 +WS_SYSMENU = 524288 +WS_THICKFRAME = 262144 +WS_GROUP = 131072 +WS_TABSTOP = 65536 +WS_MINIMIZEBOX = 131072 +WS_MAXIMIZEBOX = 65536 +WS_TILED = WS_OVERLAPPED +WS_ICONIC = WS_MINIMIZE +WS_SIZEBOX = WS_THICKFRAME +WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED | \ + WS_CAPTION | \ + WS_SYSMENU | \ + WS_THICKFRAME | \ + WS_MINIMIZEBOX | \ + WS_MAXIMIZEBOX) +WS_POPUPWINDOW = (WS_POPUP | \ + WS_BORDER | \ + WS_SYSMENU) +WS_CHILDWINDOW = (WS_CHILD) +WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW +WS_EX_DLGMODALFRAME = 1 +WS_EX_NOPARENTNOTIFY = 4 +WS_EX_TOPMOST = 8 +WS_EX_ACCEPTFILES = 16 +WS_EX_TRANSPARENT = 32 +WS_EX_MDICHILD = 64 +WS_EX_TOOLWINDOW = 128 +WS_EX_WINDOWEDGE = 256 +WS_EX_CLIENTEDGE = 512 +WS_EX_CONTEXTHELP = 1024 +WS_EX_RIGHT = 4096 +WS_EX_LEFT = 0 +WS_EX_RTLREADING = 8192 +WS_EX_LTRREADING = 0 +WS_EX_LEFTSCROLLBAR = 16384 +WS_EX_RIGHTSCROLLBAR = 0 +WS_EX_CONTROLPARENT = 65536 +WS_EX_STATICEDGE = 131072 +WS_EX_APPWINDOW = 262144 +WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE) +WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST) +WS_EX_LAYERED = 0x00080000 +WS_EX_NOINHERITLAYOUT = 0x00100000 +WS_EX_LAYOUTRTL = 0x00400000 +WS_EX_COMPOSITED = 0x02000000 +WS_EX_NOACTIVATE = 0x08000000 + +CS_VREDRAW = 1 +CS_HREDRAW = 2 +#CS_KEYCVTWINDOW = 0x0004 +CS_DBLCLKS = 8 +CS_OWNDC = 32 +CS_CLASSDC = 64 +CS_PARENTDC = 128 +#CS_NOKEYCVT = 0x0100 +CS_NOCLOSE = 512 +CS_SAVEBITS = 2048 +CS_BYTEALIGNCLIENT = 4096 +CS_BYTEALIGNWINDOW = 8192 +CS_GLOBALCLASS = 16384 +CS_IME = 65536 +PRF_CHECKVISIBLE = 1 +PRF_NONCLIENT = 2 +PRF_CLIENT = 4 +PRF_ERASEBKGND = 8 +PRF_CHILDREN = 16 +PRF_OWNED = 32 +BDR_RAISEDOUTER = 1 +BDR_SUNKENOUTER = 2 +BDR_RAISEDINNER = 4 +BDR_SUNKENINNER = 8 +BDR_OUTER = 3 +BDR_INNER = 12 +#BDR_RAISED = 0x0005 +#BDR_SUNKEN = 0x000a +EDGE_RAISED = (BDR_RAISEDOUTER | BDR_RAISEDINNER) +EDGE_SUNKEN = (BDR_SUNKENOUTER | BDR_SUNKENINNER) +EDGE_ETCHED = (BDR_SUNKENOUTER | BDR_RAISEDINNER) +EDGE_BUMP = (BDR_RAISEDOUTER | BDR_SUNKENINNER) + +# winuser.h line 2879 +ISMEX_NOSEND = 0 +ISMEX_SEND = 1 +ISMEX_NOTIFY = 2 +ISMEX_CALLBACK = 4 +ISMEX_REPLIED = 8 +CW_USEDEFAULT = -2147483648 +FLASHW_STOP = 0 +FLASHW_CAPTION = 1 +FLASHW_TRAY = 2 +FLASHW_ALL = (FLASHW_CAPTION | FLASHW_TRAY) +FLASHW_TIMER = 4 +FLASHW_TIMERNOFG = 12 + +# winuser.h line 7963 +DS_ABSALIGN = 1 +DS_SYSMODAL = 2 +DS_LOCALEDIT = 32 +DS_SETFONT = 64 +DS_MODALFRAME = 128 +DS_NOIDLEMSG = 256 +DS_SETFOREGROUND = 512 +DS_3DLOOK = 4 +DS_FIXEDSYS = 8 +DS_NOFAILCREATE = 16 +DS_CONTROL = 1024 +DS_CENTER = 2048 +DS_CENTERMOUSE = 4096 +DS_CONTEXTHELP = 8192 +DM_GETDEFID = (WM_USER+0) +DM_SETDEFID = (WM_USER+1) +DM_REPOSITION = (WM_USER+2) +#PSM_PAGEINFO = (WM_USER+100) +#PSM_SHEETINFO = (WM_USER+101) +#PSI_SETACTIVE = 0x0001 +#PSI_KILLACTIVE = 0x0002 +#PSI_APPLY = 0x0003 +#PSI_RESET = 0x0004 +#PSI_HASHELP = 0x0005 +#PSI_HELP = 0x0006 +#PSI_CHANGED = 0x0001 +#PSI_GUISTART = 0x0002 +#PSI_REBOOT = 0x0003 +#PSI_GETSIBLINGS = 0x0004 +DC_HASDEFID = 21323 +DLGC_WANTARROWS = 1 +DLGC_WANTTAB = 2 +DLGC_WANTALLKEYS = 4 +DLGC_WANTMESSAGE = 4 +DLGC_HASSETSEL = 8 +DLGC_DEFPUSHBUTTON = 16 +DLGC_UNDEFPUSHBUTTON = 32 +DLGC_RADIOBUTTON = 64 +DLGC_WANTCHARS = 128 +DLGC_STATIC = 256 +DLGC_BUTTON = 8192 +LB_CTLCODE = 0 +LB_OKAY = 0 +LB_ERR = (-1) +LB_ERRSPACE = (-2) +LBN_ERRSPACE = (-2) +LBN_SELCHANGE = 1 +LBN_DBLCLK = 2 +LBN_SELCANCEL = 3 +LBN_SETFOCUS = 4 +LBN_KILLFOCUS = 5 +LB_ADDSTRING = 384 +LB_INSERTSTRING = 385 +LB_DELETESTRING = 386 +LB_SELITEMRANGEEX = 387 +LB_RESETCONTENT = 388 +LB_SETSEL = 389 +LB_SETCURSEL = 390 +LB_GETSEL = 391 +LB_GETCURSEL = 392 +LB_GETTEXT = 393 +LB_GETTEXTLEN = 394 +LB_GETCOUNT = 395 +LB_SELECTSTRING = 396 +LB_DIR = 397 +LB_GETTOPINDEX = 398 +LB_FINDSTRING = 399 +LB_GETSELCOUNT = 400 +LB_GETSELITEMS = 401 +LB_SETTABSTOPS = 402 +LB_GETHORIZONTALEXTENT = 403 +LB_SETHORIZONTALEXTENT = 404 +LB_SETCOLUMNWIDTH = 405 +LB_ADDFILE = 406 +LB_SETTOPINDEX = 407 +LB_GETITEMRECT = 408 +LB_GETITEMDATA = 409 +LB_SETITEMDATA = 410 +LB_SELITEMRANGE = 411 +LB_SETANCHORINDEX = 412 +LB_GETANCHORINDEX = 413 +LB_SETCARETINDEX = 414 +LB_GETCARETINDEX = 415 +LB_SETITEMHEIGHT = 416 +LB_GETITEMHEIGHT = 417 +LB_FINDSTRINGEXACT = 418 +LB_SETLOCALE = 421 +LB_GETLOCALE = 422 +LB_SETCOUNT = 423 +LB_INITSTORAGE = 424 +LB_ITEMFROMPOINT = 425 +LB_MSGMAX = 432 +LBS_NOTIFY = 1 +LBS_SORT = 2 +LBS_NOREDRAW = 4 +LBS_MULTIPLESEL = 8 +LBS_OWNERDRAWFIXED = 16 +LBS_OWNERDRAWVARIABLE = 32 +LBS_HASSTRINGS = 64 +LBS_USETABSTOPS = 128 +LBS_NOINTEGRALHEIGHT = 256 +LBS_MULTICOLUMN = 512 +LBS_WANTKEYBOARDINPUT = 1024 +LBS_EXTENDEDSEL = 2048 +LBS_DISABLENOSCROLL = 4096 +LBS_NODATA = 8192 +LBS_NOSEL = 16384 +LBS_STANDARD = (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) +CB_OKAY = 0 +CB_ERR = (-1) +CB_ERRSPACE = (-2) +CBN_ERRSPACE = (-1) +CBN_SELCHANGE = 1 +CBN_DBLCLK = 2 +CBN_SETFOCUS = 3 +CBN_KILLFOCUS = 4 +CBN_EDITCHANGE = 5 +CBN_EDITUPDATE = 6 +CBN_DROPDOWN = 7 +CBN_CLOSEUP = 8 +CBN_SELENDOK = 9 +CBN_SELENDCANCEL = 10 +CBS_SIMPLE = 1 +CBS_DROPDOWN = 2 +CBS_DROPDOWNLIST = 3 +CBS_OWNERDRAWFIXED = 16 +CBS_OWNERDRAWVARIABLE = 32 +CBS_AUTOHSCROLL = 64 +CBS_OEMCONVERT = 128 +CBS_SORT = 256 +CBS_HASSTRINGS = 512 +CBS_NOINTEGRALHEIGHT = 1024 +CBS_DISABLENOSCROLL = 2048 +CBS_UPPERCASE = 8192 +CBS_LOWERCASE = 16384 +CB_GETEDITSEL = 320 +CB_LIMITTEXT = 321 +CB_SETEDITSEL = 322 +CB_ADDSTRING = 323 +CB_DELETESTRING = 324 +CB_DIR = 325 +CB_GETCOUNT = 326 +CB_GETCURSEL = 327 +CB_GETLBTEXT = 328 +CB_GETLBTEXTLEN = 329 +CB_INSERTSTRING = 330 +CB_RESETCONTENT = 331 +CB_FINDSTRING = 332 +CB_SELECTSTRING = 333 +CB_SETCURSEL = 334 +CB_SHOWDROPDOWN = 335 +CB_GETITEMDATA = 336 +CB_SETITEMDATA = 337 +CB_GETDROPPEDCONTROLRECT = 338 +CB_SETITEMHEIGHT = 339 +CB_GETITEMHEIGHT = 340 +CB_SETEXTENDEDUI = 341 +CB_GETEXTENDEDUI = 342 +CB_GETDROPPEDSTATE = 343 +CB_FINDSTRINGEXACT = 344 +CB_SETLOCALE = 345 +CB_GETLOCALE = 346 +CB_GETTOPINDEX = 347 +CB_SETTOPINDEX = 348 +CB_GETHORIZONTALEXTENT = 349 +CB_SETHORIZONTALEXTENT = 350 +CB_GETDROPPEDWIDTH = 351 +CB_SETDROPPEDWIDTH = 352 +CB_INITSTORAGE = 353 +CB_MSGMAX = 354 +SBS_HORZ = 0 +SBS_VERT = 1 +SBS_TOPALIGN = 2 +SBS_LEFTALIGN = 2 +SBS_BOTTOMALIGN = 4 +SBS_RIGHTALIGN = 4 +SBS_SIZEBOXTOPLEFTALIGN = 2 +SBS_SIZEBOXBOTTOMRIGHTALIGN = 4 +SBS_SIZEBOX = 8 +SBS_SIZEGRIP = 16 +SBM_SETPOS = 224 +SBM_GETPOS = 225 +SBM_SETRANGE = 226 +SBM_SETRANGEREDRAW = 230 +SBM_GETRANGE = 227 +SBM_ENABLE_ARROWS = 228 +SBM_SETSCROLLINFO = 233 +SBM_GETSCROLLINFO = 234 +SIF_RANGE = 1 +SIF_PAGE = 2 +SIF_POS = 4 +SIF_DISABLENOSCROLL = 8 +SIF_TRACKPOS = 16 +SIF_ALL = (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS) +MDIS_ALLCHILDSTYLES = 1 +MDITILE_VERTICAL = 0 +MDITILE_HORIZONTAL = 1 +MDITILE_SKIPDISABLED = 2 + +IMC_GETCANDIDATEPOS = 7 +IMC_SETCANDIDATEPOS = 8 +IMC_GETCOMPOSITIONFONT = 9 +IMC_SETCOMPOSITIONFONT = 10 +IMC_GETCOMPOSITIONWINDOW = 11 +IMC_SETCOMPOSITIONWINDOW = 12 +IMC_GETSTATUSWINDOWPOS = 15 +IMC_SETSTATUSWINDOWPOS = 16 +IMC_CLOSESTATUSWINDOW = 33 +IMC_OPENSTATUSWINDOW = 34 +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. +DELETE = (65536) +READ_CONTROL = (131072) +WRITE_DAC = (262144) +WRITE_OWNER = (524288) +SYNCHRONIZE = (1048576) +STANDARD_RIGHTS_REQUIRED = (983040) +STANDARD_RIGHTS_READ = (READ_CONTROL) +STANDARD_RIGHTS_WRITE = (READ_CONTROL) +STANDARD_RIGHTS_EXECUTE = (READ_CONTROL) +STANDARD_RIGHTS_ALL = (2031616) +SPECIFIC_RIGHTS_ALL = (65535) +ACCESS_SYSTEM_SECURITY = (16777216) +MAXIMUM_ALLOWED = (33554432) +GENERIC_READ = (-2147483648) +GENERIC_WRITE = (1073741824) +GENERIC_EXECUTE = (536870912) +GENERIC_ALL = (268435456) + +SERVICE_KERNEL_DRIVER = 1 +SERVICE_FILE_SYSTEM_DRIVER = 2 +SERVICE_ADAPTER = 4 +SERVICE_RECOGNIZER_DRIVER = 8 +SERVICE_DRIVER = (SERVICE_KERNEL_DRIVER | \ + SERVICE_FILE_SYSTEM_DRIVER | \ + SERVICE_RECOGNIZER_DRIVER) +SERVICE_WIN32_OWN_PROCESS = 16 +SERVICE_WIN32_SHARE_PROCESS = 32 +SERVICE_WIN32 = (SERVICE_WIN32_OWN_PROCESS | \ + SERVICE_WIN32_SHARE_PROCESS) +SERVICE_INTERACTIVE_PROCESS = 256 +SERVICE_TYPE_ALL = (SERVICE_WIN32 | \ + SERVICE_ADAPTER | \ + SERVICE_DRIVER | \ + SERVICE_INTERACTIVE_PROCESS) +SERVICE_BOOT_START = 0 +SERVICE_SYSTEM_START = 1 +SERVICE_AUTO_START = 2 +SERVICE_DEMAND_START = 3 +SERVICE_DISABLED = 4 +SERVICE_ERROR_IGNORE = 0 +SERVICE_ERROR_NORMAL = 1 +SERVICE_ERROR_SEVERE = 2 +SERVICE_ERROR_CRITICAL = 3 +TAPE_ERASE_SHORT = 0 +TAPE_ERASE_LONG = 1 +TAPE_LOAD = 0 +TAPE_UNLOAD = 1 +TAPE_TENSION = 2 +TAPE_LOCK = 3 +TAPE_UNLOCK = 4 +TAPE_FORMAT = 5 +TAPE_SETMARKS = 0 +TAPE_FILEMARKS = 1 +TAPE_SHORT_FILEMARKS = 2 +TAPE_LONG_FILEMARKS = 3 +TAPE_ABSOLUTE_POSITION = 0 +TAPE_LOGICAL_POSITION = 1 +TAPE_PSEUDO_LOGICAL_POSITION = 2 +TAPE_REWIND = 0 +TAPE_ABSOLUTE_BLOCK = 1 +TAPE_LOGICAL_BLOCK = 2 +TAPE_PSEUDO_LOGICAL_BLOCK = 3 +TAPE_SPACE_END_OF_DATA = 4 +TAPE_SPACE_RELATIVE_BLOCKS = 5 +TAPE_SPACE_FILEMARKS = 6 +TAPE_SPACE_SEQUENTIAL_FMKS = 7 +TAPE_SPACE_SETMARKS = 8 +TAPE_SPACE_SEQUENTIAL_SMKS = 9 +TAPE_DRIVE_FIXED = 1 +TAPE_DRIVE_SELECT = 2 +TAPE_DRIVE_INITIATOR = 4 +TAPE_DRIVE_ERASE_SHORT = 16 +TAPE_DRIVE_ERASE_LONG = 32 +TAPE_DRIVE_ERASE_BOP_ONLY = 64 +TAPE_DRIVE_ERASE_IMMEDIATE = 128 +TAPE_DRIVE_TAPE_CAPACITY = 256 +TAPE_DRIVE_TAPE_REMAINING = 512 +TAPE_DRIVE_FIXED_BLOCK = 1024 +TAPE_DRIVE_VARIABLE_BLOCK = 2048 +TAPE_DRIVE_WRITE_PROTECT = 4096 +TAPE_DRIVE_EOT_WZ_SIZE = 8192 +TAPE_DRIVE_ECC = 65536 +TAPE_DRIVE_COMPRESSION = 131072 +TAPE_DRIVE_PADDING = 262144 +TAPE_DRIVE_REPORT_SMKS = 524288 +TAPE_DRIVE_GET_ABSOLUTE_BLK = 1048576 +TAPE_DRIVE_GET_LOGICAL_BLK = 2097152 +TAPE_DRIVE_SET_EOT_WZ_SIZE = 4194304 +TAPE_DRIVE_LOAD_UNLOAD = -2147483647 +TAPE_DRIVE_TENSION = -2147483646 +TAPE_DRIVE_LOCK_UNLOCK = -2147483644 +TAPE_DRIVE_REWIND_IMMEDIATE = -2147483640 +TAPE_DRIVE_SET_BLOCK_SIZE = -2147483632 +TAPE_DRIVE_LOAD_UNLD_IMMED = -2147483616 +TAPE_DRIVE_TENSION_IMMED = -2147483584 +TAPE_DRIVE_LOCK_UNLK_IMMED = -2147483520 +TAPE_DRIVE_SET_ECC = -2147483392 +TAPE_DRIVE_SET_COMPRESSION = -2147483136 +TAPE_DRIVE_SET_PADDING = -2147482624 +TAPE_DRIVE_SET_REPORT_SMKS = -2147481600 +TAPE_DRIVE_ABSOLUTE_BLK = -2147479552 +TAPE_DRIVE_ABS_BLK_IMMED = -2147475456 +TAPE_DRIVE_LOGICAL_BLK = -2147467264 +TAPE_DRIVE_LOG_BLK_IMMED = -2147450880 +TAPE_DRIVE_END_OF_DATA = -2147418112 +TAPE_DRIVE_RELATIVE_BLKS = -2147352576 +TAPE_DRIVE_FILEMARKS = -2147221504 +TAPE_DRIVE_SEQUENTIAL_FMKS = -2146959360 +TAPE_DRIVE_SETMARKS = -2146435072 +TAPE_DRIVE_SEQUENTIAL_SMKS = -2145386496 +TAPE_DRIVE_REVERSE_POSITION = -2143289344 +TAPE_DRIVE_SPACE_IMMEDIATE = -2139095040 +TAPE_DRIVE_WRITE_SETMARKS = -2130706432 +TAPE_DRIVE_WRITE_FILEMARKS = -2113929216 +TAPE_DRIVE_WRITE_SHORT_FMKS = -2080374784 +TAPE_DRIVE_WRITE_LONG_FMKS = -2013265920 +TAPE_DRIVE_WRITE_MARK_IMMED = -1879048192 +TAPE_DRIVE_FORMAT = -1610612736 +TAPE_DRIVE_FORMAT_IMMEDIATE = -1073741824 +TAPE_FIXED_PARTITIONS = 0 +TAPE_SELECT_PARTITIONS = 1 +TAPE_INITIATOR_PARTITIONS = 2 +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. + +APPLICATION_ERROR_MASK = 536870912 +ERROR_SEVERITY_SUCCESS = 0 +ERROR_SEVERITY_INFORMATIONAL = 1073741824 +ERROR_SEVERITY_WARNING = -2147483648 +ERROR_SEVERITY_ERROR = -1073741824 +MINCHAR = 128 +MAXCHAR = 127 +MINSHORT = 32768 +MAXSHORT = 32767 +MINLONG = -2147483648 +MAXLONG = 2147483647 +MAXBYTE = 255 +MAXWORD = 65535 +MAXDWORD = -1 +LANG_NEUTRAL = 0 +LANG_BULGARIAN = 2 +LANG_CHINESE = 4 +LANG_CROATIAN = 26 +LANG_CZECH = 5 +LANG_DANISH = 6 +LANG_DUTCH = 19 +LANG_ENGLISH = 9 +LANG_FINNISH = 11 +LANG_FRENCH = 12 +LANG_GERMAN = 7 +LANG_GREEK = 8 +LANG_HUNGARIAN = 14 +LANG_ICELANDIC = 15 +LANG_ITALIAN = 16 +LANG_JAPANESE = 17 +LANG_KOREAN = 18 +LANG_NORWEGIAN = 20 +LANG_POLISH = 21 +LANG_PORTUGUESE = 22 +LANG_ROMANIAN = 24 +LANG_RUSSIAN = 25 +LANG_SLOVAK = 27 +LANG_SLOVENIAN = 36 +LANG_SPANISH = 10 +LANG_SWEDISH = 29 +LANG_TURKISH = 31 +SUBLANG_NEUTRAL = 0 +SUBLANG_DEFAULT = 1 +SUBLANG_SYS_DEFAULT = 2 +SUBLANG_CHINESE_TRADITIONAL = 1 +SUBLANG_CHINESE_SIMPLIFIED = 2 +SUBLANG_CHINESE_HONGKONG = 3 +SUBLANG_CHINESE_SINGAPORE = 4 +SUBLANG_DUTCH = 1 +SUBLANG_DUTCH_BELGIAN = 2 +SUBLANG_ENGLISH_US = 1 +SUBLANG_ENGLISH_UK = 2 +SUBLANG_ENGLISH_AUS = 3 +SUBLANG_ENGLISH_CAN = 4 +SUBLANG_ENGLISH_NZ = 5 +SUBLANG_ENGLISH_EIRE = 6 +SUBLANG_FRENCH = 1 +SUBLANG_FRENCH_BELGIAN = 2 +SUBLANG_FRENCH_CANADIAN = 3 +SUBLANG_FRENCH_SWISS = 4 +SUBLANG_GERMAN = 1 +SUBLANG_GERMAN_SWISS = 2 +SUBLANG_GERMAN_AUSTRIAN = 3 +SUBLANG_ITALIAN = 1 +SUBLANG_ITALIAN_SWISS = 2 +SUBLANG_NORWEGIAN_BOKMAL = 1 +SUBLANG_NORWEGIAN_NYNORSK = 2 +SUBLANG_PORTUGUESE = 2 +SUBLANG_PORTUGUESE_BRAZILIAN = 1 +SUBLANG_SPANISH = 1 +SUBLANG_SPANISH_MEXICAN = 2 +SUBLANG_SPANISH_MODERN = 3 +SORT_DEFAULT = 0 +SORT_JAPANESE_XJIS = 0 +SORT_JAPANESE_UNICODE = 1 +SORT_CHINESE_BIG5 = 0 +SORT_CHINESE_UNICODE = 1 +SORT_KOREAN_KSC = 0 +SORT_KOREAN_UNICODE = 1 +def PRIMARYLANGID(lgid): return ((lgid) & 1023) + +def SUBLANGID(lgid): return ((lgid) >> 10) + +NLS_VALID_LOCALE_MASK = 1048575 +CONTEXT_PORTABLE_32BIT = 1048576 +CONTEXT_ALPHA = 131072 +CONTEXT_CONTROL = (CONTEXT_ALPHA | 1) +CONTEXT_FLOATING_POINT = (CONTEXT_ALPHA | 2) +CONTEXT_INTEGER = (CONTEXT_ALPHA | 4) +CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) +SIZE_OF_80387_REGISTERS = 80 +CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) +CONTEXT_CONTROL = 1 +CONTEXT_FLOATING_POINT = 2 +CONTEXT_INTEGER = 4 +CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) +PROCESS_TERMINATE = (1) +PROCESS_CREATE_THREAD = (2) +PROCESS_VM_OPERATION = (8) +PROCESS_VM_READ = (16) +PROCESS_VM_WRITE = (32) +PROCESS_DUP_HANDLE = (64) +PROCESS_CREATE_PROCESS = (128) +PROCESS_SET_QUOTA = (256) +PROCESS_SET_INFORMATION = (512) +PROCESS_QUERY_INFORMATION = (1024) +PROCESS_SUSPEND_RESUME = (2048) +PROCESS_QUERY_LIMITED_INFORMATION = (4096) +PROCESS_SET_LIMITED_INFORMATION = (8192) +PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 4095) +THREAD_TERMINATE = (1) +THREAD_SUSPEND_RESUME = (2) +THREAD_GET_CONTEXT = (8) +THREAD_SET_CONTEXT = (16) +THREAD_SET_INFORMATION = (32) +THREAD_QUERY_INFORMATION = (64) +THREAD_SET_THREAD_TOKEN = (128) +THREAD_IMPERSONATE = (256) +THREAD_DIRECT_IMPERSONATION = (512) +THREAD_SET_LIMITED_INFORMATION = (1024) +THREAD_QUERY_LIMITED_INFORMATION = (2048) +THREAD_RESUME = (4096) +TLS_MINIMUM_AVAILABLE = 64 +EVENT_MODIFY_STATE = 2 +MUTANT_QUERY_STATE = 1 +SEMAPHORE_MODIFY_STATE = 2 +TIME_ZONE_ID_UNKNOWN = 0 +TIME_ZONE_ID_STANDARD = 1 +TIME_ZONE_ID_DAYLIGHT = 2 +PROCESSOR_INTEL_386 = 386 +PROCESSOR_INTEL_486 = 486 +PROCESSOR_INTEL_PENTIUM = 586 +PROCESSOR_INTEL_860 = 860 +PROCESSOR_MIPS_R2000 = 2000 +PROCESSOR_MIPS_R3000 = 3000 +PROCESSOR_MIPS_R4000 = 4000 +PROCESSOR_ALPHA_21064 = 21064 +PROCESSOR_PPC_601 = 601 +PROCESSOR_PPC_603 = 603 +PROCESSOR_PPC_604 = 604 +PROCESSOR_PPC_620 = 620 +SECTION_QUERY = 1 +SECTION_MAP_WRITE = 2 +SECTION_MAP_READ = 4 +SECTION_MAP_EXECUTE = 8 +SECTION_EXTEND_SIZE = 16 +PAGE_NOACCESS = 1 +PAGE_READONLY = 2 +PAGE_READWRITE = 4 +PAGE_WRITECOPY = 8 +PAGE_EXECUTE = 16 +PAGE_EXECUTE_READ = 32 +PAGE_EXECUTE_READWRITE = 64 +PAGE_EXECUTE_WRITECOPY = 128 +PAGE_GUARD = 256 +PAGE_NOCACHE = 512 +MEM_COMMIT = 4096 +MEM_RESERVE = 8192 +MEM_DECOMMIT = 16384 +MEM_RELEASE = 32768 +MEM_FREE = 65536 +MEM_PRIVATE = 131072 +MEM_MAPPED = 262144 +MEM_TOP_DOWN = 1048576 + +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. +SEC_FILE = 8388608 +SEC_IMAGE = 16777216 +SEC_RESERVE = 67108864 +SEC_COMMIT = 134217728 +SEC_NOCACHE = 268435456 +MEM_IMAGE = SEC_IMAGE +FILE_SHARE_READ = 1 +FILE_SHARE_WRITE = 2 +FILE_SHARE_DELETE = 4 +FILE_ATTRIBUTE_READONLY = 1 +FILE_ATTRIBUTE_HIDDEN = 2 +FILE_ATTRIBUTE_SYSTEM = 4 +FILE_ATTRIBUTE_DIRECTORY = 16 +FILE_ATTRIBUTE_ARCHIVE = 32 +FILE_ATTRIBUTE_DEVICE = 64 +FILE_ATTRIBUTE_NORMAL = 128 +FILE_ATTRIBUTE_TEMPORARY = 256 +FILE_ATTRIBUTE_SPARSE_FILE = 512 +FILE_ATTRIBUTE_REPARSE_POINT = 1024 +FILE_ATTRIBUTE_COMPRESSED = 2048 +FILE_ATTRIBUTE_OFFLINE = 4096 +FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 +FILE_ATTRIBUTE_ENCRYPTED = 16384 +FILE_ATTRIBUTE_VIRTUAL = 65536 +# These FILE_ATTRIBUTE_* flags are apparently old definitions from Windows 95 +# and conflict with current values above - but they live on for b/w compat... +FILE_ATTRIBUTE_ATOMIC_WRITE = 512 +FILE_ATTRIBUTE_XACTION_WRITE = 1024 + +FILE_NOTIFY_CHANGE_FILE_NAME = 1 +FILE_NOTIFY_CHANGE_DIR_NAME = 2 +FILE_NOTIFY_CHANGE_ATTRIBUTES = 4 +FILE_NOTIFY_CHANGE_SIZE = 8 +FILE_NOTIFY_CHANGE_LAST_WRITE = 16 +FILE_NOTIFY_CHANGE_SECURITY = 256 +FILE_CASE_SENSITIVE_SEARCH = 1 +FILE_CASE_PRESERVED_NAMES = 2 +FILE_UNICODE_ON_DISK = 4 +FILE_PERSISTENT_ACLS = 8 +FILE_FILE_COMPRESSION = 16 +FILE_VOLUME_IS_COMPRESSED = 32768 +IO_COMPLETION_MODIFY_STATE = 2 +DUPLICATE_CLOSE_SOURCE = 1 +DUPLICATE_SAME_ACCESS = 2 +SID_MAX_SUB_AUTHORITIES = (15) +SECURITY_NULL_RID = (0) +SECURITY_WORLD_RID = (0) +SECURITY_LOCAL_RID = (0X00000000) +SECURITY_CREATOR_OWNER_RID = (0) +SECURITY_CREATOR_GROUP_RID = (1) +SECURITY_DIALUP_RID = (1) +SECURITY_NETWORK_RID = (2) +SECURITY_BATCH_RID = (3) +SECURITY_INTERACTIVE_RID = (4) +SECURITY_SERVICE_RID = (6) +SECURITY_ANONYMOUS_LOGON_RID = (7) +SECURITY_LOGON_IDS_RID = (5) +SECURITY_LOGON_IDS_RID_COUNT = (3) +SECURITY_LOCAL_SYSTEM_RID = (18) +SECURITY_NT_NON_UNIQUE = (21) +SECURITY_BUILTIN_DOMAIN_RID = (32) +DOMAIN_USER_RID_ADMIN = (500) +DOMAIN_USER_RID_GUEST = (501) +DOMAIN_GROUP_RID_ADMINS = (512) +DOMAIN_GROUP_RID_USERS = (513) +DOMAIN_GROUP_RID_GUESTS = (514) +DOMAIN_ALIAS_RID_ADMINS = (544) +DOMAIN_ALIAS_RID_USERS = (545) +DOMAIN_ALIAS_RID_GUESTS = (546) +DOMAIN_ALIAS_RID_POWER_USERS = (547) +DOMAIN_ALIAS_RID_ACCOUNT_OPS = (548) +DOMAIN_ALIAS_RID_SYSTEM_OPS = (549) +DOMAIN_ALIAS_RID_PRINT_OPS = (550) +DOMAIN_ALIAS_RID_BACKUP_OPS = (551) +DOMAIN_ALIAS_RID_REPLICATOR = (552) +SE_GROUP_MANDATORY = (1) +SE_GROUP_ENABLED_BY_DEFAULT = (2) +SE_GROUP_ENABLED = (4) +SE_GROUP_OWNER = (8) +SE_GROUP_LOGON_ID = (-1073741824) +ACL_REVISION = (2) +ACL_REVISION1 = (1) +ACL_REVISION2 = (2) +ACCESS_ALLOWED_ACE_TYPE = (0) +ACCESS_DENIED_ACE_TYPE = (1) +SYSTEM_AUDIT_ACE_TYPE = (2) +SYSTEM_ALARM_ACE_TYPE = (3) +OBJECT_INHERIT_ACE = (1) +CONTAINER_INHERIT_ACE = (2) +NO_PROPAGATE_INHERIT_ACE = (4) +INHERIT_ONLY_ACE = (8) +VALID_INHERIT_FLAGS = (15) +SUCCESSFUL_ACCESS_ACE_FLAG = (64) +FAILED_ACCESS_ACE_FLAG = (128) +SECURITY_DESCRIPTOR_REVISION = (1) +SECURITY_DESCRIPTOR_REVISION1 = (1) +SECURITY_DESCRIPTOR_MIN_LENGTH = (20) +SE_OWNER_DEFAULTED = (1) +SE_GROUP_DEFAULTED = (2) +SE_DACL_PRESENT = (4) +SE_DACL_DEFAULTED = (8) +SE_SACL_PRESENT = (16) +SE_SACL_DEFAULTED = (32) +SE_SELF_RELATIVE = (32768) +SE_PRIVILEGE_ENABLED_BY_DEFAULT = (1) +SE_PRIVILEGE_ENABLED = (2) +SE_PRIVILEGE_USED_FOR_ACCESS = (-2147483648) +PRIVILEGE_SET_ALL_NECESSARY = (1) +SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" +SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" +SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" +SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" +SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" +SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" +SE_TCB_NAME = "SeTcbPrivilege" +SE_SECURITY_NAME = "SeSecurityPrivilege" +SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" +SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" +SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" +SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" +SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" +SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" +SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" +SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" +SE_BACKUP_NAME = "SeBackupPrivilege" +SE_RESTORE_NAME = "SeRestorePrivilege" +SE_SHUTDOWN_NAME = "SeShutdownPrivilege" +SE_DEBUG_NAME = "SeDebugPrivilege" +SE_AUDIT_NAME = "SeAuditPrivilege" +SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" +SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" +SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" + +TOKEN_ASSIGN_PRIMARY = (1) +TOKEN_DUPLICATE = (2) +TOKEN_IMPERSONATE = (4) +TOKEN_QUERY = (8) +TOKEN_QUERY_SOURCE = (16) +TOKEN_ADJUST_PRIVILEGES = (32) +TOKEN_ADJUST_GROUPS = (64) +TOKEN_ADJUST_DEFAULT = (128) +TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED |\ + TOKEN_ASSIGN_PRIMARY |\ + TOKEN_DUPLICATE |\ + TOKEN_IMPERSONATE |\ + TOKEN_QUERY |\ + TOKEN_QUERY_SOURCE |\ + TOKEN_ADJUST_PRIVILEGES |\ + TOKEN_ADJUST_GROUPS |\ + TOKEN_ADJUST_DEFAULT) +TOKEN_READ = (STANDARD_RIGHTS_READ |\ + TOKEN_QUERY) +TOKEN_WRITE = (STANDARD_RIGHTS_WRITE |\ + TOKEN_ADJUST_PRIVILEGES |\ + TOKEN_ADJUST_GROUPS |\ + TOKEN_ADJUST_DEFAULT) +TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE) +TOKEN_SOURCE_LENGTH = 8 + +KEY_QUERY_VALUE = (1) +KEY_SET_VALUE = (2) +KEY_CREATE_SUB_KEY = (4) +KEY_ENUMERATE_SUB_KEYS = (8) +KEY_NOTIFY = (16) +KEY_CREATE_LINK = (32) +KEY_WOW64_32KEY = 512 +KEY_WOW64_64KEY = 256 +KEY_WOW64_RES = 768 +KEY_READ = ((STANDARD_RIGHTS_READ |\ + KEY_QUERY_VALUE |\ + KEY_ENUMERATE_SUB_KEYS |\ + KEY_NOTIFY) \ + & \ + (~SYNCHRONIZE)) +KEY_WRITE = ((STANDARD_RIGHTS_WRITE |\ + KEY_SET_VALUE |\ + KEY_CREATE_SUB_KEY) \ + & \ + (~SYNCHRONIZE)) +KEY_EXECUTE = ((KEY_READ) \ + & \ + (~SYNCHRONIZE)) +KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL |\ + KEY_QUERY_VALUE |\ + KEY_SET_VALUE |\ + KEY_CREATE_SUB_KEY |\ + KEY_ENUMERATE_SUB_KEYS |\ + KEY_NOTIFY |\ + KEY_CREATE_LINK) \ + & \ + (~SYNCHRONIZE)) +REG_NOTIFY_CHANGE_ATTRIBUTES = (2) +REG_NOTIFY_CHANGE_SECURITY = (8) +REG_RESOURCE_REQUIREMENTS_LIST = ( 10 ) +REG_NONE = ( 0 ) # No value type +REG_SZ = ( 1 ) # Unicode nul terminated string +REG_EXPAND_SZ = ( 2 ) # Unicode nul terminated string + # (with environment variable references) +REG_BINARY = ( 3 ) # Free form binary +REG_DWORD = ( 4 ) # 32-bit number +REG_DWORD_LITTLE_ENDIAN = ( 4 ) # 32-bit number (same as REG_DWORD) +REG_DWORD_BIG_ENDIAN = ( 5 ) # 32-bit number +REG_LINK = ( 6 ) # Symbolic Link (unicode) +REG_MULTI_SZ = ( 7 ) # Multiple Unicode strings +REG_RESOURCE_LIST = ( 8 ) # Resource list in the resource map +REG_FULL_RESOURCE_DESCRIPTOR =( 9 ) # Resource list in the hardware description +REG_RESOURCE_REQUIREMENTS_LIST = ( 10 ) +REG_QWORD = ( 11 ) # 64-bit number +REG_QWORD_LITTLE_ENDIAN = ( 11 ) # 64-bit number (same as REG_QWORD) + + +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. +# Included from string.h +_NLSCMPERROR = 2147483647 +NULL = 0 +HEAP_NO_SERIALIZE = 1 +HEAP_GROWABLE = 2 +HEAP_GENERATE_EXCEPTIONS = 4 +HEAP_ZERO_MEMORY = 8 +HEAP_REALLOC_IN_PLACE_ONLY = 16 +HEAP_TAIL_CHECKING_ENABLED = 32 +HEAP_FREE_CHECKING_ENABLED = 64 +HEAP_DISABLE_COALESCE_ON_FREE = 128 +IS_TEXT_UNICODE_ASCII16 = 1 +IS_TEXT_UNICODE_REVERSE_ASCII16 = 16 +IS_TEXT_UNICODE_STATISTICS = 2 +IS_TEXT_UNICODE_REVERSE_STATISTICS = 32 +IS_TEXT_UNICODE_CONTROLS = 4 +IS_TEXT_UNICODE_REVERSE_CONTROLS = 64 +IS_TEXT_UNICODE_SIGNATURE = 8 +IS_TEXT_UNICODE_REVERSE_SIGNATURE = 128 +IS_TEXT_UNICODE_ILLEGAL_CHARS = 256 +IS_TEXT_UNICODE_ODD_LENGTH = 512 +IS_TEXT_UNICODE_DBCS_LEADBYTE = 1024 +IS_TEXT_UNICODE_NULL_BYTES = 4096 +IS_TEXT_UNICODE_UNICODE_MASK = 15 +IS_TEXT_UNICODE_REVERSE_MASK = 240 +IS_TEXT_UNICODE_NOT_UNICODE_MASK = 3840 +IS_TEXT_UNICODE_NOT_ASCII_MASK = 61440 +COMPRESSION_FORMAT_NONE = (0) +COMPRESSION_FORMAT_DEFAULT = (1) +COMPRESSION_FORMAT_LZNT1 = (2) +COMPRESSION_ENGINE_STANDARD = (0) +COMPRESSION_ENGINE_MAXIMUM = (256) +MESSAGE_RESOURCE_UNICODE = 1 +RTL_CRITSECT_TYPE = 0 +RTL_RESOURCE_TYPE = 1 +DLL_PROCESS_ATTACH = 1 +DLL_THREAD_ATTACH = 2 +DLL_THREAD_DETACH = 3 +DLL_PROCESS_DETACH = 0 +EVENTLOG_SEQUENTIAL_READ = 0X0001 +EVENTLOG_SEEK_READ = 0X0002 +EVENTLOG_FORWARDS_READ = 0X0004 +EVENTLOG_BACKWARDS_READ = 0X0008 +EVENTLOG_SUCCESS = 0X0000 +EVENTLOG_ERROR_TYPE = 1 +EVENTLOG_WARNING_TYPE = 2 +EVENTLOG_INFORMATION_TYPE = 4 +EVENTLOG_AUDIT_SUCCESS = 8 +EVENTLOG_AUDIT_FAILURE = 16 +EVENTLOG_START_PAIRED_EVENT = 1 +EVENTLOG_END_PAIRED_EVENT = 2 +EVENTLOG_END_ALL_PAIRED_EVENTS = 4 +EVENTLOG_PAIRED_EVENT_ACTIVE = 8 +EVENTLOG_PAIRED_EVENT_INACTIVE = 16 +# Generated by h2py from \msvc20\include\winnt.h +# hacked and split by mhammond. +OWNER_SECURITY_INFORMATION = (0X00000001) +GROUP_SECURITY_INFORMATION = (0X00000002) +DACL_SECURITY_INFORMATION = (0X00000004) +SACL_SECURITY_INFORMATION = (0X00000008) +IMAGE_SIZEOF_FILE_HEADER = 20 +IMAGE_FILE_MACHINE_UNKNOWN = 0 +IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 +IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 +IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 +IMAGE_SIZEOF_NT_OPTIONAL_HEADER = 224 +IMAGE_NT_OPTIONAL_HDR_MAGIC = 267 +IMAGE_ROM_OPTIONAL_HDR_MAGIC = 263 +IMAGE_SIZEOF_SHORT_NAME = 8 +IMAGE_SIZEOF_SECTION_HEADER = 40 +IMAGE_SIZEOF_SYMBOL = 18 +IMAGE_SYM_CLASS_NULL = 0 +IMAGE_SYM_CLASS_AUTOMATIC = 1 +IMAGE_SYM_CLASS_EXTERNAL = 2 +IMAGE_SYM_CLASS_STATIC = 3 +IMAGE_SYM_CLASS_REGISTER = 4 +IMAGE_SYM_CLASS_EXTERNAL_DEF = 5 +IMAGE_SYM_CLASS_LABEL = 6 +IMAGE_SYM_CLASS_UNDEFINED_LABEL = 7 +IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 8 +IMAGE_SYM_CLASS_ARGUMENT = 9 +IMAGE_SYM_CLASS_STRUCT_TAG = 10 +IMAGE_SYM_CLASS_MEMBER_OF_UNION = 11 +IMAGE_SYM_CLASS_UNION_TAG = 12 +IMAGE_SYM_CLASS_TYPE_DEFINITION = 13 +IMAGE_SYM_CLASS_UNDEFINED_STATIC = 14 +IMAGE_SYM_CLASS_ENUM_TAG = 15 +IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 16 +IMAGE_SYM_CLASS_REGISTER_PARAM = 17 +IMAGE_SYM_CLASS_BIT_FIELD = 18 +IMAGE_SYM_CLASS_BLOCK = 100 +IMAGE_SYM_CLASS_FUNCTION = 101 +IMAGE_SYM_CLASS_END_OF_STRUCT = 102 +IMAGE_SYM_CLASS_FILE = 103 +IMAGE_SYM_CLASS_SECTION = 104 +IMAGE_SYM_CLASS_WEAK_EXTERNAL = 105 +N_BTMASK = 15 +N_TMASK = 48 +N_TMASK1 = 192 +N_TMASK2 = 240 +N_BTSHFT = 4 +N_TSHIFT = 2 +IMAGE_SIZEOF_AUX_SYMBOL = 18 +IMAGE_COMDAT_SELECT_NODUPLICATES = 1 +IMAGE_COMDAT_SELECT_ANY = 2 +IMAGE_COMDAT_SELECT_SAME_SIZE = 3 +IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 +IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 +IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 +IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 +IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 +IMAGE_SIZEOF_RELOCATION = 10 +IMAGE_REL_I386_SECTION = 10 +IMAGE_REL_I386_SECREL = 11 +IMAGE_REL_MIPS_REFHALF = 1 +IMAGE_REL_MIPS_REFWORD = 2 +IMAGE_REL_MIPS_JMPADDR = 3 +IMAGE_REL_MIPS_REFHI = 4 +IMAGE_REL_MIPS_REFLO = 5 +IMAGE_REL_MIPS_GPREL = 6 +IMAGE_REL_MIPS_LITERAL = 7 +IMAGE_REL_MIPS_SECTION = 10 +IMAGE_REL_MIPS_SECREL = 11 +IMAGE_REL_MIPS_REFWORDNB = 34 +IMAGE_REL_MIPS_PAIR = 37 +IMAGE_REL_ALPHA_ABSOLUTE = 0 +IMAGE_REL_ALPHA_REFLONG = 1 +IMAGE_REL_ALPHA_REFQUAD = 2 +IMAGE_REL_ALPHA_GPREL32 = 3 +IMAGE_REL_ALPHA_LITERAL = 4 +IMAGE_REL_ALPHA_LITUSE = 5 +IMAGE_REL_ALPHA_GPDISP = 6 +IMAGE_REL_ALPHA_BRADDR = 7 +IMAGE_REL_ALPHA_HINT = 8 +IMAGE_REL_ALPHA_INLINE_REFLONG = 9 +IMAGE_REL_ALPHA_REFHI = 10 +IMAGE_REL_ALPHA_REFLO = 11 +IMAGE_REL_ALPHA_PAIR = 12 +IMAGE_REL_ALPHA_MATCH = 13 +IMAGE_REL_ALPHA_SECTION = 14 +IMAGE_REL_ALPHA_SECREL = 15 +IMAGE_REL_ALPHA_REFLONGNB = 16 +IMAGE_SIZEOF_BASE_RELOCATION = 8 +IMAGE_REL_BASED_ABSOLUTE = 0 +IMAGE_REL_BASED_HIGH = 1 +IMAGE_REL_BASED_LOW = 2 +IMAGE_REL_BASED_HIGHLOW = 3 +IMAGE_REL_BASED_HIGHADJ = 4 +IMAGE_REL_BASED_MIPS_JMPADDR = 5 +IMAGE_SIZEOF_LINENUMBER = 6 +IMAGE_ARCHIVE_START_SIZE = 8 +IMAGE_ARCHIVE_START = "!\n" +IMAGE_ARCHIVE_END = "`\n" +IMAGE_ARCHIVE_PAD = "\n" +IMAGE_ARCHIVE_LINKER_MEMBER = "/ " +IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// " +IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 +IMAGE_ORDINAL_FLAG = -2147483648 +def IMAGE_SNAP_BY_ORDINAL(Ordinal): return ((Ordinal & IMAGE_ORDINAL_FLAG) != 0) + +def IMAGE_ORDINAL(Ordinal): return (Ordinal & 65535) + +IMAGE_RESOURCE_NAME_IS_STRING = -2147483648 +IMAGE_RESOURCE_DATA_IS_DIRECTORY = -2147483648 +IMAGE_DEBUG_TYPE_UNKNOWN = 0 +IMAGE_DEBUG_TYPE_COFF = 1 +IMAGE_DEBUG_TYPE_CODEVIEW = 2 +IMAGE_DEBUG_TYPE_FPO = 3 +IMAGE_DEBUG_TYPE_MISC = 4 +IMAGE_DEBUG_TYPE_EXCEPTION = 5 +IMAGE_DEBUG_TYPE_FIXUP = 6 +IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 +IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 +FRAME_FPO = 0 +FRAME_TRAP = 1 +FRAME_TSS = 2 +SIZEOF_RFPO_DATA = 16 +IMAGE_DEBUG_MISC_EXENAME = 1 +IMAGE_SEPARATE_DEBUG_SIGNATURE = 18756 +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. +NEWFRAME = 1 +ABORTDOC = 2 +NEXTBAND = 3 +SETCOLORTABLE = 4 +GETCOLORTABLE = 5 +FLUSHOUTPUT = 6 +DRAFTMODE = 7 +QUERYESCSUPPORT = 8 +SETABORTPROC = 9 +STARTDOC = 10 +ENDDOC = 11 +GETPHYSPAGESIZE = 12 +GETPRINTINGOFFSET = 13 +GETSCALINGFACTOR = 14 +MFCOMMENT = 15 +GETPENWIDTH = 16 +SETCOPYCOUNT = 17 +SELECTPAPERSOURCE = 18 +DEVICEDATA = 19 +PASSTHROUGH = 19 +GETTECHNOLGY = 20 +GETTECHNOLOGY = 20 +SETLINECAP = 21 +SETLINEJOIN = 22 +SETMITERLIMIT = 23 +BANDINFO = 24 +DRAWPATTERNRECT = 25 +GETVECTORPENSIZE = 26 +GETVECTORBRUSHSIZE = 27 +ENABLEDUPLEX = 28 +GETSETPAPERBINS = 29 +GETSETPRINTORIENT = 30 +ENUMPAPERBINS = 31 +SETDIBSCALING = 32 +EPSPRINTING = 33 +ENUMPAPERMETRICS = 34 +GETSETPAPERMETRICS = 35 +POSTSCRIPT_DATA = 37 +POSTSCRIPT_IGNORE = 38 +MOUSETRAILS = 39 +GETDEVICEUNITS = 42 +GETEXTENDEDTEXTMETRICS = 256 +GETEXTENTTABLE = 257 +GETPAIRKERNTABLE = 258 +GETTRACKKERNTABLE = 259 +EXTTEXTOUT = 512 +GETFACENAME = 513 +DOWNLOADFACE = 514 +ENABLERELATIVEWIDTHS = 768 +ENABLEPAIRKERNING = 769 +SETKERNTRACK = 770 +SETALLJUSTVALUES = 771 +SETCHARSET = 772 +STRETCHBLT = 2048 +GETSETSCREENPARAMS = 3072 +BEGIN_PATH = 4096 +CLIP_TO_PATH = 4097 +END_PATH = 4098 +EXT_DEVICE_CAPS = 4099 +RESTORE_CTM = 4100 +SAVE_CTM = 4101 +SET_ARC_DIRECTION = 4102 +SET_BACKGROUND_COLOR = 4103 +SET_POLY_MODE = 4104 +SET_SCREEN_ANGLE = 4105 +SET_SPREAD = 4106 +TRANSFORM_CTM = 4107 +SET_CLIP_BOX = 4108 +SET_BOUNDS = 4109 +SET_MIRROR_MODE = 4110 +OPENCHANNEL = 4110 +DOWNLOADHEADER = 4111 +CLOSECHANNEL = 4112 +POSTSCRIPT_PASSTHROUGH = 4115 +ENCAPSULATED_POSTSCRIPT = 4116 +SP_NOTREPORTED = 16384 +SP_ERROR = (-1) +SP_APPABORT = (-2) +SP_USERABORT = (-3) +SP_OUTOFDISK = (-4) +SP_OUTOFMEMORY = (-5) +PR_JOBSTATUS = 0 + +## GDI object types +OBJ_PEN = 1 +OBJ_BRUSH = 2 +OBJ_DC = 3 +OBJ_METADC = 4 +OBJ_PAL = 5 +OBJ_FONT = 6 +OBJ_BITMAP = 7 +OBJ_REGION = 8 +OBJ_METAFILE = 9 +OBJ_MEMDC = 10 +OBJ_EXTPEN = 11 +OBJ_ENHMETADC = 12 +OBJ_ENHMETAFILE = 13 +OBJ_COLORSPACE = 14 + +MWT_IDENTITY = 1 +MWT_LEFTMULTIPLY = 2 +MWT_RIGHTMULTIPLY = 3 +MWT_MIN = MWT_IDENTITY +MWT_MAX = MWT_RIGHTMULTIPLY +BI_RGB = 0 +BI_RLE8 = 1 +BI_RLE4 = 2 +BI_BITFIELDS = 3 +TMPF_FIXED_PITCH = 1 +TMPF_VECTOR = 2 +TMPF_DEVICE = 8 +TMPF_TRUETYPE = 4 +NTM_REGULAR = 64 +NTM_BOLD = 32 +NTM_ITALIC = 1 +LF_FACESIZE = 32 +LF_FULLFACESIZE = 64 +OUT_DEFAULT_PRECIS = 0 +OUT_STRING_PRECIS = 1 +OUT_CHARACTER_PRECIS = 2 +OUT_STROKE_PRECIS = 3 +OUT_TT_PRECIS = 4 +OUT_DEVICE_PRECIS = 5 +OUT_RASTER_PRECIS = 6 +OUT_TT_ONLY_PRECIS = 7 +OUT_OUTLINE_PRECIS = 8 +CLIP_DEFAULT_PRECIS = 0 +CLIP_CHARACTER_PRECIS = 1 +CLIP_STROKE_PRECIS = 2 +CLIP_MASK = 15 +CLIP_LH_ANGLES = (1<<4) +CLIP_TT_ALWAYS = (2<<4) +CLIP_EMBEDDED = (8<<4) +DEFAULT_QUALITY = 0 +DRAFT_QUALITY = 1 +PROOF_QUALITY = 2 +NONANTIALIASED_QUALITY = 3 +ANTIALIASED_QUALITY = 4 +CLEARTYPE_QUALITY = 5 +CLEARTYPE_NATURAL_QUALITY = 6 +DEFAULT_PITCH = 0 +FIXED_PITCH = 1 +VARIABLE_PITCH = 2 +ANSI_CHARSET = 0 +DEFAULT_CHARSET = 1 +SYMBOL_CHARSET = 2 +SHIFTJIS_CHARSET = 128 +HANGEUL_CHARSET = 129 +CHINESEBIG5_CHARSET = 136 +OEM_CHARSET = 255 +JOHAB_CHARSET = 130 +HEBREW_CHARSET = 177 +ARABIC_CHARSET = 178 +GREEK_CHARSET = 161 +TURKISH_CHARSET = 162 +VIETNAMESE_CHARSET = 163 +THAI_CHARSET = 222 +EASTEUROPE_CHARSET = 238 +RUSSIAN_CHARSET = 204 +MAC_CHARSET = 77 +BALTIC_CHARSET = 186 +FF_DONTCARE = (0<<4) +FF_ROMAN = (1<<4) +FF_SWISS = (2<<4) +FF_MODERN = (3<<4) +FF_SCRIPT = (4<<4) +FF_DECORATIVE = (5<<4) +FW_DONTCARE = 0 +FW_THIN = 100 +FW_EXTRALIGHT = 200 +FW_LIGHT = 300 +FW_NORMAL = 400 +FW_MEDIUM = 500 +FW_SEMIBOLD = 600 +FW_BOLD = 700 +FW_EXTRABOLD = 800 +FW_HEAVY = 900 +FW_ULTRALIGHT = FW_EXTRALIGHT +FW_REGULAR = FW_NORMAL +FW_DEMIBOLD = FW_SEMIBOLD +FW_ULTRABOLD = FW_EXTRABOLD +FW_BLACK = FW_HEAVY +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. +BS_SOLID = 0 +BS_NULL = 1 +BS_HOLLOW = BS_NULL +BS_HATCHED = 2 +BS_PATTERN = 3 +BS_INDEXED = 4 +BS_DIBPATTERN = 5 +BS_DIBPATTERNPT = 6 +BS_PATTERN8X8 = 7 +BS_DIBPATTERN8X8 = 8 +HS_HORIZONTAL = 0 +HS_VERTICAL = 1 +HS_FDIAGONAL = 2 +HS_BDIAGONAL = 3 +HS_CROSS = 4 +HS_DIAGCROSS = 5 +HS_FDIAGONAL1 = 6 +HS_BDIAGONAL1 = 7 +HS_SOLID = 8 +HS_DENSE1 = 9 +HS_DENSE2 = 10 +HS_DENSE3 = 11 +HS_DENSE4 = 12 +HS_DENSE5 = 13 +HS_DENSE6 = 14 +HS_DENSE7 = 15 +HS_DENSE8 = 16 +HS_NOSHADE = 17 +HS_HALFTONE = 18 +HS_SOLIDCLR = 19 +HS_DITHEREDCLR = 20 +HS_SOLIDTEXTCLR = 21 +HS_DITHEREDTEXTCLR = 22 +HS_SOLIDBKCLR = 23 +HS_DITHEREDBKCLR = 24 +HS_API_MAX = 25 +PS_SOLID = 0 +PS_DASH = 1 +PS_DOT = 2 +PS_DASHDOT = 3 +PS_DASHDOTDOT = 4 +PS_NULL = 5 +PS_INSIDEFRAME = 6 +PS_USERSTYLE = 7 +PS_ALTERNATE = 8 +PS_STYLE_MASK = 15 +PS_ENDCAP_ROUND = 0 +PS_ENDCAP_SQUARE = 256 +PS_ENDCAP_FLAT = 512 +PS_ENDCAP_MASK = 3840 +PS_JOIN_ROUND = 0 +PS_JOIN_BEVEL = 4096 +PS_JOIN_MITER = 8192 +PS_JOIN_MASK = 61440 +PS_COSMETIC = 0 +PS_GEOMETRIC = 65536 +PS_TYPE_MASK = 983040 +AD_COUNTERCLOCKWISE = 1 +AD_CLOCKWISE = 2 +DRIVERVERSION = 0 +TECHNOLOGY = 2 +HORZSIZE = 4 +VERTSIZE = 6 +HORZRES = 8 +VERTRES = 10 +BITSPIXEL = 12 +PLANES = 14 +NUMBRUSHES = 16 +NUMPENS = 18 +NUMMARKERS = 20 +NUMFONTS = 22 +NUMCOLORS = 24 +PDEVICESIZE = 26 +CURVECAPS = 28 +LINECAPS = 30 +POLYGONALCAPS = 32 +TEXTCAPS = 34 +CLIPCAPS = 36 +RASTERCAPS = 38 +ASPECTX = 40 +ASPECTY = 42 +ASPECTXY = 44 +LOGPIXELSX = 88 +LOGPIXELSY = 90 +SIZEPALETTE = 104 +NUMRESERVED = 106 +COLORRES = 108 + +PHYSICALWIDTH = 110 +PHYSICALHEIGHT = 111 +PHYSICALOFFSETX = 112 +PHYSICALOFFSETY = 113 +SCALINGFACTORX = 114 +SCALINGFACTORY = 115 +VREFRESH = 116 +DESKTOPVERTRES = 117 +DESKTOPHORZRES = 118 +BLTALIGNMENT = 119 +SHADEBLENDCAPS = 120 +COLORMGMTCAPS = 121 + +DT_PLOTTER = 0 +DT_RASDISPLAY = 1 +DT_RASPRINTER = 2 +DT_RASCAMERA = 3 +DT_CHARSTREAM = 4 +DT_METAFILE = 5 +DT_DISPFILE = 6 +CC_NONE = 0 +CC_CIRCLES = 1 +CC_PIE = 2 +CC_CHORD = 4 +CC_ELLIPSES = 8 +CC_WIDE = 16 +CC_STYLED = 32 +CC_WIDESTYLED = 64 +CC_INTERIORS = 128 +CC_ROUNDRECT = 256 +LC_NONE = 0 +LC_POLYLINE = 2 +LC_MARKER = 4 +LC_POLYMARKER = 8 +LC_WIDE = 16 +LC_STYLED = 32 +LC_WIDESTYLED = 64 +LC_INTERIORS = 128 +PC_NONE = 0 +PC_POLYGON = 1 +PC_RECTANGLE = 2 +PC_WINDPOLYGON = 4 +PC_TRAPEZOID = 4 +PC_SCANLINE = 8 +PC_WIDE = 16 +PC_STYLED = 32 +PC_WIDESTYLED = 64 +PC_INTERIORS = 128 +CP_NONE = 0 +CP_RECTANGLE = 1 +CP_REGION = 2 +TC_OP_CHARACTER = 1 +TC_OP_STROKE = 2 +TC_CP_STROKE = 4 +TC_CR_90 = 8 +TC_CR_ANY = 16 +TC_SF_X_YINDEP = 32 +TC_SA_DOUBLE = 64 +TC_SA_INTEGER = 128 +TC_SA_CONTIN = 256 +TC_EA_DOUBLE = 512 +TC_IA_ABLE = 1024 +TC_UA_ABLE = 2048 +TC_SO_ABLE = 4096 +TC_RA_ABLE = 8192 +TC_VA_ABLE = 16384 +TC_RESERVED = 32768 +TC_SCROLLBLT = 65536 +RC_BITBLT = 1 +RC_BANDING = 2 +RC_SCALING = 4 +RC_BITMAP64 = 8 +RC_GDI20_OUTPUT = 16 +RC_GDI20_STATE = 32 +RC_SAVEBITMAP = 64 +RC_DI_BITMAP = 128 +RC_PALETTE = 256 +RC_DIBTODEV = 512 +RC_BIGFONT = 1024 +RC_STRETCHBLT = 2048 +RC_FLOODFILL = 4096 +RC_STRETCHDIB = 8192 +RC_OP_DX_OUTPUT = 16384 +RC_DEVBITS = 32768 +DIB_RGB_COLORS = 0 +DIB_PAL_COLORS = 1 +DIB_PAL_INDICES = 2 +DIB_PAL_PHYSINDICES = 2 +DIB_PAL_LOGINDICES = 4 +SYSPAL_ERROR = 0 +SYSPAL_STATIC = 1 +SYSPAL_NOSTATIC = 2 +CBM_CREATEDIB = 2 +CBM_INIT = 4 +FLOODFILLBORDER = 0 +FLOODFILLSURFACE = 1 +CCHDEVICENAME = 32 +CCHFORMNAME = 32 +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. + +# DEVMODE.dmFields +DM_SPECVERSION = 800 +DM_ORIENTATION = 1 +DM_PAPERSIZE = 2 +DM_PAPERLENGTH = 4 +DM_PAPERWIDTH = 8 +DM_SCALE = 16 +DM_POSITION = 32 +DM_NUP = 64 +DM_DISPLAYORIENTATION = 128 +DM_COPIES = 256 +DM_DEFAULTSOURCE = 512 +DM_PRINTQUALITY = 1024 +DM_COLOR = 2048 +DM_DUPLEX = 4096 +DM_YRESOLUTION = 8192 +DM_TTOPTION = 16384 +DM_COLLATE = 32768 +DM_FORMNAME = 65536 +DM_LOGPIXELS = 131072 +DM_BITSPERPEL = 262144 +DM_PELSWIDTH = 524288 +DM_PELSHEIGHT = 1048576 +DM_DISPLAYFLAGS = 2097152 +DM_DISPLAYFREQUENCY = 4194304 +DM_ICMMETHOD = 8388608 +DM_ICMINTENT = 16777216 +DM_MEDIATYPE = 33554432 +DM_DITHERTYPE = 67108864 +DM_PANNINGWIDTH = 134217728 +DM_PANNINGHEIGHT = 268435456 +DM_DISPLAYFIXEDOUTPUT = 536870912 + +# DEVMODE.dmOrientation +DMORIENT_PORTRAIT = 1 +DMORIENT_LANDSCAPE = 2 + +# DEVMODE.dmDisplayOrientation +DMDO_DEFAULT = 0 +DMDO_90 = 1 +DMDO_180 = 2 +DMDO_270 = 3 + +# DEVMODE.dmDisplayFixedOutput +DMDFO_DEFAULT = 0 +DMDFO_STRETCH = 1 +DMDFO_CENTER = 2 + +# DEVMODE.dmPaperSize +DMPAPER_LETTER = 1 +DMPAPER_LETTERSMALL = 2 +DMPAPER_TABLOID = 3 +DMPAPER_LEDGER = 4 +DMPAPER_LEGAL = 5 +DMPAPER_STATEMENT = 6 +DMPAPER_EXECUTIVE = 7 +DMPAPER_A3 = 8 +DMPAPER_A4 = 9 +DMPAPER_A4SMALL = 10 +DMPAPER_A5 = 11 +DMPAPER_B4 = 12 +DMPAPER_B5 = 13 +DMPAPER_FOLIO = 14 +DMPAPER_QUARTO = 15 +DMPAPER_10X14 = 16 +DMPAPER_11X17 = 17 +DMPAPER_NOTE = 18 +DMPAPER_ENV_9 = 19 +DMPAPER_ENV_10 = 20 +DMPAPER_ENV_11 = 21 +DMPAPER_ENV_12 = 22 +DMPAPER_ENV_14 = 23 +DMPAPER_CSHEET = 24 +DMPAPER_DSHEET = 25 +DMPAPER_ESHEET = 26 +DMPAPER_ENV_DL = 27 +DMPAPER_ENV_C5 = 28 +DMPAPER_ENV_C3 = 29 +DMPAPER_ENV_C4 = 30 +DMPAPER_ENV_C6 = 31 +DMPAPER_ENV_C65 = 32 +DMPAPER_ENV_B4 = 33 +DMPAPER_ENV_B5 = 34 +DMPAPER_ENV_B6 = 35 +DMPAPER_ENV_ITALY = 36 +DMPAPER_ENV_MONARCH = 37 +DMPAPER_ENV_PERSONAL = 38 +DMPAPER_FANFOLD_US = 39 +DMPAPER_FANFOLD_STD_GERMAN = 40 +DMPAPER_FANFOLD_LGL_GERMAN = 41 +DMPAPER_ISO_B4 = 42 +DMPAPER_JAPANESE_POSTCARD = 43 +DMPAPER_9X11 = 44 +DMPAPER_10X11 = 45 +DMPAPER_15X11 = 46 +DMPAPER_ENV_INVITE = 47 +DMPAPER_RESERVED_48 = 48 +DMPAPER_RESERVED_49 = 49 +DMPAPER_LETTER_EXTRA = 50 +DMPAPER_LEGAL_EXTRA = 51 +DMPAPER_TABLOID_EXTRA = 52 +DMPAPER_A4_EXTRA = 53 +DMPAPER_LETTER_TRANSVERSE = 54 +DMPAPER_A4_TRANSVERSE = 55 +DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 +DMPAPER_A_PLUS = 57 +DMPAPER_B_PLUS = 58 +DMPAPER_LETTER_PLUS = 59 +DMPAPER_A4_PLUS = 60 +DMPAPER_A5_TRANSVERSE = 61 +DMPAPER_B5_TRANSVERSE = 62 +DMPAPER_A3_EXTRA = 63 +DMPAPER_A5_EXTRA = 64 +DMPAPER_B5_EXTRA = 65 +DMPAPER_A2 = 66 +DMPAPER_A3_TRANSVERSE = 67 +DMPAPER_A3_EXTRA_TRANSVERSE = 68 +DMPAPER_DBL_JAPANESE_POSTCARD = 69 +DMPAPER_A6 = 70 +DMPAPER_JENV_KAKU2 = 71 +DMPAPER_JENV_KAKU3 = 72 +DMPAPER_JENV_CHOU3 = 73 +DMPAPER_JENV_CHOU4 = 74 +DMPAPER_LETTER_ROTATED = 75 +DMPAPER_A3_ROTATED = 76 +DMPAPER_A4_ROTATED = 77 +DMPAPER_A5_ROTATED = 78 +DMPAPER_B4_JIS_ROTATED = 79 +DMPAPER_B5_JIS_ROTATED = 80 +DMPAPER_JAPANESE_POSTCARD_ROTATED = 81 +DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82 +DMPAPER_A6_ROTATED = 83 +DMPAPER_JENV_KAKU2_ROTATED = 84 +DMPAPER_JENV_KAKU3_ROTATED = 85 +DMPAPER_JENV_CHOU3_ROTATED = 86 +DMPAPER_JENV_CHOU4_ROTATED = 87 +DMPAPER_B6_JIS = 88 +DMPAPER_B6_JIS_ROTATED = 89 +DMPAPER_12X11 = 90 +DMPAPER_JENV_YOU4 = 91 +DMPAPER_JENV_YOU4_ROTATED = 92 +DMPAPER_P16K = 93 +DMPAPER_P32K = 94 +DMPAPER_P32KBIG = 95 +DMPAPER_PENV_1 = 96 +DMPAPER_PENV_2 = 97 +DMPAPER_PENV_3 = 98 +DMPAPER_PENV_4 = 99 +DMPAPER_PENV_5 = 100 +DMPAPER_PENV_6 = 101 +DMPAPER_PENV_7 = 102 +DMPAPER_PENV_8 = 103 +DMPAPER_PENV_9 = 104 +DMPAPER_PENV_10 = 105 +DMPAPER_P16K_ROTATED = 106 +DMPAPER_P32K_ROTATED = 107 +DMPAPER_P32KBIG_ROTATED = 108 +DMPAPER_PENV_1_ROTATED = 109 +DMPAPER_PENV_2_ROTATED = 110 +DMPAPER_PENV_3_ROTATED = 111 +DMPAPER_PENV_4_ROTATED = 112 +DMPAPER_PENV_5_ROTATED = 113 +DMPAPER_PENV_6_ROTATED = 114 +DMPAPER_PENV_7_ROTATED = 115 +DMPAPER_PENV_8_ROTATED = 116 +DMPAPER_PENV_9_ROTATED = 117 +DMPAPER_PENV_10_ROTATED = 118 +DMPAPER_LAST = DMPAPER_PENV_10_ROTATED +DMPAPER_USER = 256 + +# DEVMODE.dmDefaultSource +DMBIN_UPPER = 1 +DMBIN_ONLYONE = 1 +DMBIN_LOWER = 2 +DMBIN_MIDDLE = 3 +DMBIN_MANUAL = 4 +DMBIN_ENVELOPE = 5 +DMBIN_ENVMANUAL = 6 +DMBIN_AUTO = 7 +DMBIN_TRACTOR = 8 +DMBIN_SMALLFMT = 9 +DMBIN_LARGEFMT = 10 +DMBIN_LARGECAPACITY = 11 +DMBIN_CASSETTE = 14 +DMBIN_FORMSOURCE = 15 +DMBIN_LAST = DMBIN_FORMSOURCE +DMBIN_USER = 256 + +# DEVMODE.dmPrintQuality +DMRES_DRAFT = (-1) +DMRES_LOW = (-2) +DMRES_MEDIUM = (-3) +DMRES_HIGH = (-4) + +# DEVMODE.dmColor +DMCOLOR_MONOCHROME = 1 +DMCOLOR_COLOR = 2 + +# DEVMODE.dmDuplex +DMDUP_SIMPLEX = 1 +DMDUP_VERTICAL = 2 +DMDUP_HORIZONTAL = 3 + +# DEVMODE.dmTTOption +DMTT_BITMAP = 1 +DMTT_DOWNLOAD = 2 +DMTT_SUBDEV = 3 +DMTT_DOWNLOAD_OUTLINE = 4 + +# DEVMODE.dmCollate +DMCOLLATE_FALSE = 0 +DMCOLLATE_TRUE = 1 + +# DEVMODE.dmDisplayFlags +DM_GRAYSCALE = 1 +DM_INTERLACED = 2 + +# DEVMODE.dmICMMethod +DMICMMETHOD_NONE = 1 +DMICMMETHOD_SYSTEM = 2 +DMICMMETHOD_DRIVER = 3 +DMICMMETHOD_DEVICE = 4 +DMICMMETHOD_USER = 256 + +# DEVMODE.dmICMIntent +DMICM_SATURATE = 1 +DMICM_CONTRAST = 2 +DMICM_COLORIMETRIC = 3 +DMICM_ABS_COLORIMETRIC = 4 +DMICM_USER = 256 + +# DEVMODE.dmMediaType +DMMEDIA_STANDARD = 1 +DMMEDIA_TRANSPARENCY = 2 +DMMEDIA_GLOSSY = 3 +DMMEDIA_USER = 256 + +# DEVMODE.dmDitherType +DMDITHER_NONE = 1 +DMDITHER_COARSE = 2 +DMDITHER_FINE = 3 +DMDITHER_LINEART = 4 +DMDITHER_ERRORDIFFUSION = 5 +DMDITHER_RESERVED6 = 6 +DMDITHER_RESERVED7 = 7 +DMDITHER_RESERVED8 = 8 +DMDITHER_RESERVED9 = 9 +DMDITHER_GRAYSCALE = 10 +DMDITHER_USER = 256 + +# DEVMODE.dmNup +DMNUP_SYSTEM = 1 +DMNUP_ONEUP = 2 + +# used with ExtEscape +FEATURESETTING_NUP = 0 +FEATURESETTING_OUTPUT = 1 +FEATURESETTING_PSLEVEL = 2 +FEATURESETTING_CUSTPAPER = 3 +FEATURESETTING_MIRROR = 4 +FEATURESETTING_NEGATIVE = 5 +FEATURESETTING_PROTOCOL = 6 +FEATURESETTING_PRIVATE_BEGIN = 0x1000 +FEATURESETTING_PRIVATE_END = 0x1FFF + +RDH_RECTANGLES = 1 +GGO_METRICS = 0 +GGO_BITMAP = 1 +GGO_NATIVE = 2 +TT_POLYGON_TYPE = 24 +TT_PRIM_LINE = 1 +TT_PRIM_QSPLINE = 2 +TT_AVAILABLE = 1 +TT_ENABLED = 2 +DM_UPDATE = 1 +DM_COPY = 2 +DM_PROMPT = 4 +DM_MODIFY = 8 +DM_IN_BUFFER = DM_MODIFY +DM_IN_PROMPT = DM_PROMPT +DM_OUT_BUFFER = DM_COPY +DM_OUT_DEFAULT = DM_UPDATE + +# DISPLAY_DEVICE.StateFlags +DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 1 +DISPLAY_DEVICE_MULTI_DRIVER = 2 +DISPLAY_DEVICE_PRIMARY_DEVICE = 4 +DISPLAY_DEVICE_MIRRORING_DRIVER = 8 +DISPLAY_DEVICE_VGA_COMPATIBLE = 16 +DISPLAY_DEVICE_REMOVABLE = 32 +DISPLAY_DEVICE_MODESPRUNED = 134217728 +DISPLAY_DEVICE_REMOTE = 67108864 +DISPLAY_DEVICE_DISCONNECT = 33554432 + +# DeviceCapabilities types +DC_FIELDS = 1 +DC_PAPERS = 2 +DC_PAPERSIZE = 3 +DC_MINEXTENT = 4 +DC_MAXEXTENT = 5 +DC_BINS = 6 +DC_DUPLEX = 7 +DC_SIZE = 8 +DC_EXTRA = 9 +DC_VERSION = 10 +DC_DRIVER = 11 +DC_BINNAMES = 12 +DC_ENUMRESOLUTIONS = 13 +DC_FILEDEPENDENCIES = 14 +DC_TRUETYPE = 15 +DC_PAPERNAMES = 16 +DC_ORIENTATION = 17 +DC_COPIES = 18 +DC_BINADJUST = 19 +DC_EMF_COMPLIANT = 20 +DC_DATATYPE_PRODUCED = 21 +DC_COLLATE = 22 +DC_MANUFACTURER = 23 +DC_MODEL = 24 +DC_PERSONALITY = 25 +DC_PRINTRATE = 26 +DC_PRINTRATEUNIT = 27 +DC_PRINTERMEM = 28 +DC_MEDIAREADY = 29 +DC_STAPLE = 30 +DC_PRINTRATEPPM = 31 +DC_COLORDEVICE = 32 +DC_NUP = 33 +DC_MEDIATYPENAMES = 34 +DC_MEDIATYPES = 35 + +PRINTRATEUNIT_PPM = 1 +PRINTRATEUNIT_CPS = 2 +PRINTRATEUNIT_LPM = 3 +PRINTRATEUNIT_IPM = 4 + +# TrueType constants +DCTT_BITMAP = 1 +DCTT_DOWNLOAD = 2 +DCTT_SUBDEV = 4 +DCTT_DOWNLOAD_OUTLINE = 8 + +DCBA_FACEUPNONE = 0 +DCBA_FACEUPCENTER = 1 +DCBA_FACEUPLEFT = 2 +DCBA_FACEUPRIGHT = 3 +DCBA_FACEDOWNNONE = 256 +DCBA_FACEDOWNCENTER = 257 +DCBA_FACEDOWNLEFT = 258 +DCBA_FACEDOWNRIGHT = 259 + +CA_NEGATIVE = 1 +CA_LOG_FILTER = 2 +ILLUMINANT_DEVICE_DEFAULT = 0 +ILLUMINANT_A = 1 +ILLUMINANT_B = 2 +ILLUMINANT_C = 3 +ILLUMINANT_D50 = 4 +ILLUMINANT_D55 = 5 +ILLUMINANT_D65 = 6 +ILLUMINANT_D75 = 7 +ILLUMINANT_F2 = 8 +ILLUMINANT_MAX_INDEX = ILLUMINANT_F2 +ILLUMINANT_TUNGSTEN = ILLUMINANT_A +ILLUMINANT_DAYLIGHT = ILLUMINANT_C +ILLUMINANT_FLUORESCENT = ILLUMINANT_F2 +ILLUMINANT_NTSC = ILLUMINANT_C + +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. +FONTMAPPER_MAX = 10 +ENHMETA_SIGNATURE = 1179469088 +ENHMETA_STOCK_OBJECT = -2147483648 +EMR_HEADER = 1 +EMR_POLYBEZIER = 2 +EMR_POLYGON = 3 +EMR_POLYLINE = 4 +EMR_POLYBEZIERTO = 5 +EMR_POLYLINETO = 6 +EMR_POLYPOLYLINE = 7 +EMR_POLYPOLYGON = 8 +EMR_SETWINDOWEXTEX = 9 +EMR_SETWINDOWORGEX = 10 +EMR_SETVIEWPORTEXTEX = 11 +EMR_SETVIEWPORTORGEX = 12 +EMR_SETBRUSHORGEX = 13 +EMR_EOF = 14 +EMR_SETPIXELV = 15 +EMR_SETMAPPERFLAGS = 16 +EMR_SETMAPMODE = 17 +EMR_SETBKMODE = 18 +EMR_SETPOLYFILLMODE = 19 +EMR_SETROP2 = 20 +EMR_SETSTRETCHBLTMODE = 21 +EMR_SETTEXTALIGN = 22 +EMR_SETCOLORADJUSTMENT = 23 +EMR_SETTEXTCOLOR = 24 +EMR_SETBKCOLOR = 25 +EMR_OFFSETCLIPRGN = 26 +EMR_MOVETOEX = 27 +EMR_SETMETARGN = 28 +EMR_EXCLUDECLIPRECT = 29 +EMR_INTERSECTCLIPRECT = 30 +EMR_SCALEVIEWPORTEXTEX = 31 +EMR_SCALEWINDOWEXTEX = 32 +EMR_SAVEDC = 33 +EMR_RESTOREDC = 34 +EMR_SETWORLDTRANSFORM = 35 +EMR_MODIFYWORLDTRANSFORM = 36 +EMR_SELECTOBJECT = 37 +EMR_CREATEPEN = 38 +EMR_CREATEBRUSHINDIRECT = 39 +EMR_DELETEOBJECT = 40 +EMR_ANGLEARC = 41 +EMR_ELLIPSE = 42 +EMR_RECTANGLE = 43 +EMR_ROUNDRECT = 44 +EMR_ARC = 45 +EMR_CHORD = 46 +EMR_PIE = 47 +EMR_SELECTPALETTE = 48 +EMR_CREATEPALETTE = 49 +EMR_SETPALETTEENTRIES = 50 +EMR_RESIZEPALETTE = 51 +EMR_REALIZEPALETTE = 52 +EMR_EXTFLOODFILL = 53 +EMR_LINETO = 54 +EMR_ARCTO = 55 +EMR_POLYDRAW = 56 +EMR_SETARCDIRECTION = 57 +EMR_SETMITERLIMIT = 58 +EMR_BEGINPATH = 59 +EMR_ENDPATH = 60 +EMR_CLOSEFIGURE = 61 +EMR_FILLPATH = 62 +EMR_STROKEANDFILLPATH = 63 +EMR_STROKEPATH = 64 +EMR_FLATTENPATH = 65 +EMR_WIDENPATH = 66 +EMR_SELECTCLIPPATH = 67 +EMR_ABORTPATH = 68 +EMR_GDICOMMENT = 70 +EMR_FILLRGN = 71 +EMR_FRAMERGN = 72 +EMR_INVERTRGN = 73 +EMR_PAINTRGN = 74 +EMR_EXTSELECTCLIPRGN = 75 +EMR_BITBLT = 76 +EMR_STRETCHBLT = 77 +EMR_MASKBLT = 78 +EMR_PLGBLT = 79 +EMR_SETDIBITSTODEVICE = 80 +EMR_STRETCHDIBITS = 81 +EMR_EXTCREATEFONTINDIRECTW = 82 +EMR_EXTTEXTOUTA = 83 +EMR_EXTTEXTOUTW = 84 +EMR_POLYBEZIER16 = 85 +EMR_POLYGON16 = 86 +EMR_POLYLINE16 = 87 +EMR_POLYBEZIERTO16 = 88 +EMR_POLYLINETO16 = 89 +EMR_POLYPOLYLINE16 = 90 +EMR_POLYPOLYGON16 = 91 +EMR_POLYDRAW16 = 92 +EMR_CREATEMONOBRUSH = 93 +EMR_CREATEDIBPATTERNBRUSHPT = 94 +EMR_EXTCREATEPEN = 95 +EMR_POLYTEXTOUTA = 96 +EMR_POLYTEXTOUTW = 97 +EMR_MIN = 1 +EMR_MAX = 97 +# Generated by h2py from \msvcnt\include\wingdi.h +# hacked and split manually by mhammond. +PANOSE_COUNT = 10 +PAN_FAMILYTYPE_INDEX = 0 +PAN_SERIFSTYLE_INDEX = 1 +PAN_WEIGHT_INDEX = 2 +PAN_PROPORTION_INDEX = 3 +PAN_CONTRAST_INDEX = 4 +PAN_STROKEVARIATION_INDEX = 5 +PAN_ARMSTYLE_INDEX = 6 +PAN_LETTERFORM_INDEX = 7 +PAN_MIDLINE_INDEX = 8 +PAN_XHEIGHT_INDEX = 9 +PAN_CULTURE_LATIN = 0 +PAN_ANY = 0 +PAN_NO_FIT = 1 +PAN_FAMILY_TEXT_DISPLAY = 2 +PAN_FAMILY_SCRIPT = 3 +PAN_FAMILY_DECORATIVE = 4 +PAN_FAMILY_PICTORIAL = 5 +PAN_SERIF_COVE = 2 +PAN_SERIF_OBTUSE_COVE = 3 +PAN_SERIF_SQUARE_COVE = 4 +PAN_SERIF_OBTUSE_SQUARE_COVE = 5 +PAN_SERIF_SQUARE = 6 +PAN_SERIF_THIN = 7 +PAN_SERIF_BONE = 8 +PAN_SERIF_EXAGGERATED = 9 +PAN_SERIF_TRIANGLE = 10 +PAN_SERIF_NORMAL_SANS = 11 +PAN_SERIF_OBTUSE_SANS = 12 +PAN_SERIF_PERP_SANS = 13 +PAN_SERIF_FLARED = 14 +PAN_SERIF_ROUNDED = 15 +PAN_WEIGHT_VERY_LIGHT = 2 +PAN_WEIGHT_LIGHT = 3 +PAN_WEIGHT_THIN = 4 +PAN_WEIGHT_BOOK = 5 +PAN_WEIGHT_MEDIUM = 6 +PAN_WEIGHT_DEMI = 7 +PAN_WEIGHT_BOLD = 8 +PAN_WEIGHT_HEAVY = 9 +PAN_WEIGHT_BLACK = 10 +PAN_WEIGHT_NORD = 11 +PAN_PROP_OLD_STYLE = 2 +PAN_PROP_MODERN = 3 +PAN_PROP_EVEN_WIDTH = 4 +PAN_PROP_EXPANDED = 5 +PAN_PROP_CONDENSED = 6 +PAN_PROP_VERY_EXPANDED = 7 +PAN_PROP_VERY_CONDENSED = 8 +PAN_PROP_MONOSPACED = 9 +PAN_CONTRAST_NONE = 2 +PAN_CONTRAST_VERY_LOW = 3 +PAN_CONTRAST_LOW = 4 +PAN_CONTRAST_MEDIUM_LOW = 5 +PAN_CONTRAST_MEDIUM = 6 +PAN_CONTRAST_MEDIUM_HIGH = 7 +PAN_CONTRAST_HIGH = 8 +PAN_CONTRAST_VERY_HIGH = 9 +PAN_STROKE_GRADUAL_DIAG = 2 +PAN_STROKE_GRADUAL_TRAN = 3 +PAN_STROKE_GRADUAL_VERT = 4 +PAN_STROKE_GRADUAL_HORZ = 5 +PAN_STROKE_RAPID_VERT = 6 +PAN_STROKE_RAPID_HORZ = 7 +PAN_STROKE_INSTANT_VERT = 8 +PAN_STRAIGHT_ARMS_HORZ = 2 +PAN_STRAIGHT_ARMS_WEDGE = 3 +PAN_STRAIGHT_ARMS_VERT = 4 +PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 +PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 +PAN_BENT_ARMS_HORZ = 7 +PAN_BENT_ARMS_WEDGE = 8 +PAN_BENT_ARMS_VERT = 9 +PAN_BENT_ARMS_SINGLE_SERIF = 10 +PAN_BENT_ARMS_DOUBLE_SERIF = 11 +PAN_LETT_NORMAL_CONTACT = 2 +PAN_LETT_NORMAL_WEIGHTED = 3 +PAN_LETT_NORMAL_BOXED = 4 +PAN_LETT_NORMAL_FLATTENED = 5 +PAN_LETT_NORMAL_ROUNDED = 6 +PAN_LETT_NORMAL_OFF_CENTER = 7 +PAN_LETT_NORMAL_SQUARE = 8 +PAN_LETT_OBLIQUE_CONTACT = 9 +PAN_LETT_OBLIQUE_WEIGHTED = 10 +PAN_LETT_OBLIQUE_BOXED = 11 +PAN_LETT_OBLIQUE_FLATTENED = 12 +PAN_LETT_OBLIQUE_ROUNDED = 13 +PAN_LETT_OBLIQUE_OFF_CENTER = 14 +PAN_LETT_OBLIQUE_SQUARE = 15 +PAN_MIDLINE_STANDARD_TRIMMED = 2 +PAN_MIDLINE_STANDARD_POINTED = 3 +PAN_MIDLINE_STANDARD_SERIFED = 4 +PAN_MIDLINE_HIGH_TRIMMED = 5 +PAN_MIDLINE_HIGH_POINTED = 6 +PAN_MIDLINE_HIGH_SERIFED = 7 +PAN_MIDLINE_CONSTANT_TRIMMED = 8 +PAN_MIDLINE_CONSTANT_POINTED = 9 +PAN_MIDLINE_CONSTANT_SERIFED = 10 +PAN_MIDLINE_LOW_TRIMMED = 11 +PAN_MIDLINE_LOW_POINTED = 12 +PAN_MIDLINE_LOW_SERIFED = 13 +PAN_XHEIGHT_CONSTANT_SMALL = 2 +PAN_XHEIGHT_CONSTANT_STD = 3 +PAN_XHEIGHT_CONSTANT_LARGE = 4 +PAN_XHEIGHT_DUCKING_SMALL = 5 +PAN_XHEIGHT_DUCKING_STD = 6 +PAN_XHEIGHT_DUCKING_LARGE = 7 +ELF_VENDOR_SIZE = 4 +ELF_VERSION = 0 +ELF_CULTURE_LATIN = 0 +RASTER_FONTTYPE = 1 +DEVICE_FONTTYPE = 2 +TRUETYPE_FONTTYPE = 4 +def PALETTEINDEX(i): return ((16777216 | (i))) + +PC_RESERVED = 1 +PC_EXPLICIT = 2 +PC_NOCOLLAPSE = 4 +def GetRValue(rgb): return rgb & 0xff + +def GetGValue(rgb): return (rgb >> 8) & 0xff + +def GetBValue(rgb): return (rgb >> 16) & 0xff + +TRANSPARENT = 1 +OPAQUE = 2 +BKMODE_LAST = 2 +GM_COMPATIBLE = 1 +GM_ADVANCED = 2 +GM_LAST = 2 +PT_CLOSEFIGURE = 1 +PT_LINETO = 2 +PT_BEZIERTO = 4 +PT_MOVETO = 6 +MM_TEXT = 1 +MM_LOMETRIC = 2 +MM_HIMETRIC = 3 +MM_LOENGLISH = 4 +MM_HIENGLISH = 5 +MM_TWIPS = 6 +MM_ISOTROPIC = 7 +MM_ANISOTROPIC = 8 +MM_MIN = MM_TEXT +MM_MAX = MM_ANISOTROPIC +MM_MAX_FIXEDSCALE = MM_TWIPS +ABSOLUTE = 1 +RELATIVE = 2 +WHITE_BRUSH = 0 +LTGRAY_BRUSH = 1 +GRAY_BRUSH = 2 +DKGRAY_BRUSH = 3 +BLACK_BRUSH = 4 +NULL_BRUSH = 5 +HOLLOW_BRUSH = NULL_BRUSH +WHITE_PEN = 6 +BLACK_PEN = 7 +NULL_PEN = 8 +OEM_FIXED_FONT = 10 +ANSI_FIXED_FONT = 11 +ANSI_VAR_FONT = 12 +SYSTEM_FONT = 13 +DEVICE_DEFAULT_FONT = 14 +DEFAULT_PALETTE = 15 +SYSTEM_FIXED_FONT = 16 +STOCK_LAST = 16 +CLR_INVALID = -1 + +DC_BRUSH = 18 +DC_PEN = 19 + +# Exception/Status codes from winuser.h and winnt.h +STATUS_WAIT_0 = 0 +STATUS_ABANDONED_WAIT_0 = 128 +STATUS_USER_APC = 192 +STATUS_TIMEOUT = 258 +STATUS_PENDING = 259 +STATUS_SEGMENT_NOTIFICATION = 1073741829 +STATUS_GUARD_PAGE_VIOLATION = -2147483647 +STATUS_DATATYPE_MISALIGNMENT = -2147483646 +STATUS_BREAKPOINT = -2147483645 +STATUS_SINGLE_STEP = -2147483644 +STATUS_ACCESS_VIOLATION = -1073741819 +STATUS_IN_PAGE_ERROR = -1073741818 +STATUS_INVALID_HANDLE = -1073741816 +STATUS_NO_MEMORY = -1073741801 +STATUS_ILLEGAL_INSTRUCTION = -1073741795 +STATUS_NONCONTINUABLE_EXCEPTION = -1073741787 +STATUS_INVALID_DISPOSITION = -1073741786 +STATUS_ARRAY_BOUNDS_EXCEEDED = -1073741684 +STATUS_FLOAT_DENORMAL_OPERAND = -1073741683 +STATUS_FLOAT_DIVIDE_BY_ZERO = -1073741682 +STATUS_FLOAT_INEXACT_RESULT = -1073741681 +STATUS_FLOAT_INVALID_OPERATION = -1073741680 +STATUS_FLOAT_OVERFLOW = -1073741679 +STATUS_FLOAT_STACK_CHECK = -1073741678 +STATUS_FLOAT_UNDERFLOW = -1073741677 +STATUS_INTEGER_DIVIDE_BY_ZERO = -1073741676 +STATUS_INTEGER_OVERFLOW = -1073741675 +STATUS_PRIVILEGED_INSTRUCTION = -1073741674 +STATUS_STACK_OVERFLOW = -1073741571 +STATUS_CONTROL_C_EXIT = -1073741510 + + +WAIT_FAILED = -1 +WAIT_OBJECT_0 = STATUS_WAIT_0 + 0 + +WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0 + 0 +WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0 + 0 + +WAIT_TIMEOUT = STATUS_TIMEOUT +WAIT_IO_COMPLETION = STATUS_USER_APC +STILL_ACTIVE = STATUS_PENDING +EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION +EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT +EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT +EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP +EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED +EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND +EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO +EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT +EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION +EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW +EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK +EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW +EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO +EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW +EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION +EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR +EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION +EXCEPTION_NONCONTINUABLE_EXCEPTION = STATUS_NONCONTINUABLE_EXCEPTION +EXCEPTION_STACK_OVERFLOW = STATUS_STACK_OVERFLOW +EXCEPTION_INVALID_DISPOSITION = STATUS_INVALID_DISPOSITION +EXCEPTION_GUARD_PAGE = STATUS_GUARD_PAGE_VIOLATION +EXCEPTION_INVALID_HANDLE = STATUS_INVALID_HANDLE +CONTROL_C_EXIT = STATUS_CONTROL_C_EXIT + +# winuser.h line 8594 +# constants used with SystemParametersInfo +SPI_GETBEEP = 1 +SPI_SETBEEP = 2 +SPI_GETMOUSE = 3 +SPI_SETMOUSE = 4 +SPI_GETBORDER = 5 +SPI_SETBORDER = 6 +SPI_GETKEYBOARDSPEED = 10 +SPI_SETKEYBOARDSPEED = 11 +SPI_LANGDRIVER = 12 +SPI_ICONHORIZONTALSPACING = 13 +SPI_GETSCREENSAVETIMEOUT = 14 +SPI_SETSCREENSAVETIMEOUT = 15 +SPI_GETSCREENSAVEACTIVE = 16 +SPI_SETSCREENSAVEACTIVE = 17 +SPI_GETGRIDGRANULARITY = 18 +SPI_SETGRIDGRANULARITY = 19 +SPI_SETDESKWALLPAPER = 20 +SPI_SETDESKPATTERN = 21 +SPI_GETKEYBOARDDELAY = 22 +SPI_SETKEYBOARDDELAY = 23 +SPI_ICONVERTICALSPACING = 24 +SPI_GETICONTITLEWRAP = 25 +SPI_SETICONTITLEWRAP = 26 +SPI_GETMENUDROPALIGNMENT = 27 +SPI_SETMENUDROPALIGNMENT = 28 +SPI_SETDOUBLECLKWIDTH = 29 +SPI_SETDOUBLECLKHEIGHT = 30 +SPI_GETICONTITLELOGFONT = 31 +SPI_SETDOUBLECLICKTIME = 32 +SPI_SETMOUSEBUTTONSWAP = 33 +SPI_SETICONTITLELOGFONT = 34 +SPI_GETFASTTASKSWITCH = 35 +SPI_SETFASTTASKSWITCH = 36 +SPI_SETDRAGFULLWINDOWS = 37 +SPI_GETDRAGFULLWINDOWS = 38 +SPI_GETNONCLIENTMETRICS = 41 +SPI_SETNONCLIENTMETRICS = 42 +SPI_GETMINIMIZEDMETRICS = 43 +SPI_SETMINIMIZEDMETRICS = 44 +SPI_GETICONMETRICS = 45 +SPI_SETICONMETRICS = 46 +SPI_SETWORKAREA = 47 +SPI_GETWORKAREA = 48 +SPI_SETPENWINDOWS = 49 +SPI_GETFILTERKEYS = 50 +SPI_SETFILTERKEYS = 51 +SPI_GETTOGGLEKEYS = 52 +SPI_SETTOGGLEKEYS = 53 +SPI_GETMOUSEKEYS = 54 +SPI_SETMOUSEKEYS = 55 +SPI_GETSHOWSOUNDS = 56 +SPI_SETSHOWSOUNDS = 57 +SPI_GETSTICKYKEYS = 58 +SPI_SETSTICKYKEYS = 59 +SPI_GETACCESSTIMEOUT = 60 +SPI_SETACCESSTIMEOUT = 61 +SPI_GETSERIALKEYS = 62 +SPI_SETSERIALKEYS = 63 +SPI_GETSOUNDSENTRY = 64 +SPI_SETSOUNDSENTRY = 65 +SPI_GETHIGHCONTRAST = 66 +SPI_SETHIGHCONTRAST = 67 +SPI_GETKEYBOARDPREF = 68 +SPI_SETKEYBOARDPREF = 69 +SPI_GETSCREENREADER = 70 +SPI_SETSCREENREADER = 71 +SPI_GETANIMATION = 72 +SPI_SETANIMATION = 73 +SPI_GETFONTSMOOTHING = 74 +SPI_SETFONTSMOOTHING = 75 +SPI_SETDRAGWIDTH = 76 +SPI_SETDRAGHEIGHT = 77 +SPI_SETHANDHELD = 78 +SPI_GETLOWPOWERTIMEOUT = 79 +SPI_GETPOWEROFFTIMEOUT = 80 +SPI_SETLOWPOWERTIMEOUT = 81 +SPI_SETPOWEROFFTIMEOUT = 82 +SPI_GETLOWPOWERACTIVE = 83 +SPI_GETPOWEROFFACTIVE = 84 +SPI_SETLOWPOWERACTIVE = 85 +SPI_SETPOWEROFFACTIVE = 86 +SPI_SETCURSORS = 87 +SPI_SETICONS = 88 +SPI_GETDEFAULTINPUTLANG = 89 +SPI_SETDEFAULTINPUTLANG = 90 +SPI_SETLANGTOGGLE = 91 +SPI_GETWINDOWSEXTENSION = 92 +SPI_SETMOUSETRAILS = 93 +SPI_GETMOUSETRAILS = 94 +SPI_GETSNAPTODEFBUTTON = 95 +SPI_SETSNAPTODEFBUTTON = 96 +SPI_SETSCREENSAVERRUNNING = 97 +SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING +SPI_GETMOUSEHOVERWIDTH = 98 +SPI_SETMOUSEHOVERWIDTH = 99 +SPI_GETMOUSEHOVERHEIGHT = 100 +SPI_SETMOUSEHOVERHEIGHT = 101 +SPI_GETMOUSEHOVERTIME = 102 +SPI_SETMOUSEHOVERTIME = 103 +SPI_GETWHEELSCROLLLINES = 104 +SPI_SETWHEELSCROLLLINES = 105 +SPI_GETMENUSHOWDELAY = 106 +SPI_SETMENUSHOWDELAY = 107 + +SPI_GETSHOWIMEUI = 110 +SPI_SETSHOWIMEUI = 111 +SPI_GETMOUSESPEED = 112 +SPI_SETMOUSESPEED = 113 +SPI_GETSCREENSAVERRUNNING = 114 +SPI_GETDESKWALLPAPER = 115 + +SPI_GETACTIVEWINDOWTRACKING = 4096 +SPI_SETACTIVEWINDOWTRACKING = 4097 +SPI_GETMENUANIMATION = 4098 +SPI_SETMENUANIMATION = 4099 +SPI_GETCOMBOBOXANIMATION = 4100 +SPI_SETCOMBOBOXANIMATION = 4101 +SPI_GETLISTBOXSMOOTHSCROLLING = 4102 +SPI_SETLISTBOXSMOOTHSCROLLING = 4103 +SPI_GETGRADIENTCAPTIONS = 4104 +SPI_SETGRADIENTCAPTIONS = 4105 +SPI_GETKEYBOARDCUES = 4106 +SPI_SETKEYBOARDCUES = 4107 +SPI_GETMENUUNDERLINES = 4106 +SPI_SETMENUUNDERLINES = 4107 +SPI_GETACTIVEWNDTRKZORDER = 4108 +SPI_SETACTIVEWNDTRKZORDER = 4109 +SPI_GETHOTTRACKING = 4110 +SPI_SETHOTTRACKING = 4111 + +SPI_GETMENUFADE = 4114 +SPI_SETMENUFADE = 4115 +SPI_GETSELECTIONFADE = 4116 +SPI_SETSELECTIONFADE = 4117 +SPI_GETTOOLTIPANIMATION = 4118 +SPI_SETTOOLTIPANIMATION = 4119 +SPI_GETTOOLTIPFADE = 4120 +SPI_SETTOOLTIPFADE = 4121 +SPI_GETCURSORSHADOW = 4122 +SPI_SETCURSORSHADOW = 4123 +SPI_GETMOUSESONAR = 4124 +SPI_SETMOUSESONAR = 4125 +SPI_GETMOUSECLICKLOCK = 4126 +SPI_SETMOUSECLICKLOCK = 4127 +SPI_GETMOUSEVANISH = 4128 +SPI_SETMOUSEVANISH = 4129 +SPI_GETFLATMENU = 4130 +SPI_SETFLATMENU = 4131 +SPI_GETDROPSHADOW = 4132 +SPI_SETDROPSHADOW = 4133 +SPI_GETBLOCKSENDINPUTRESETS = 4134 +SPI_SETBLOCKSENDINPUTRESETS = 4135 +SPI_GETUIEFFECTS = 4158 +SPI_SETUIEFFECTS = 4159 + +SPI_GETFOREGROUNDLOCKTIMEOUT = 8192 +SPI_SETFOREGROUNDLOCKTIMEOUT = 8193 +SPI_GETACTIVEWNDTRKTIMEOUT = 8194 +SPI_SETACTIVEWNDTRKTIMEOUT = 8195 +SPI_GETFOREGROUNDFLASHCOUNT = 8196 +SPI_SETFOREGROUNDFLASHCOUNT = 8197 +SPI_GETCARETWIDTH = 8198 +SPI_SETCARETWIDTH = 8199 +SPI_GETMOUSECLICKLOCKTIME = 8200 +SPI_SETMOUSECLICKLOCKTIME = 8201 +SPI_GETFONTSMOOTHINGTYPE = 8202 +SPI_SETFONTSMOOTHINGTYPE = 8203 +SPI_GETFONTSMOOTHINGCONTRAST = 8204 +SPI_SETFONTSMOOTHINGCONTRAST = 8205 +SPI_GETFOCUSBORDERWIDTH = 8206 +SPI_SETFOCUSBORDERWIDTH = 8207 +SPI_GETFOCUSBORDERHEIGHT = 8208 +SPI_SETFOCUSBORDERHEIGHT = 8209 +SPI_GETFONTSMOOTHINGORIENTATION = 8210 +SPI_SETFONTSMOOTHINGORIENTATION = 8211 + +# fWinIni flags for SystemParametersInfo +SPIF_UPDATEINIFILE = 1 +SPIF_SENDWININICHANGE = 2 +SPIF_SENDCHANGE = SPIF_SENDWININICHANGE + +# used with SystemParametersInfo and SPI_GETFONTSMOOTHINGTYPE/SPI_SETFONTSMOOTHINGTYPE +FE_FONTSMOOTHINGSTANDARD = 1 +FE_FONTSMOOTHINGCLEARTYPE = 2 +FE_FONTSMOOTHINGDOCKING = 32768 + +METRICS_USEDEFAULT = -1 +ARW_BOTTOMLEFT = 0 +ARW_BOTTOMRIGHT = 1 +ARW_TOPLEFT = 2 +ARW_TOPRIGHT = 3 +ARW_STARTMASK = 3 +ARW_STARTRIGHT = 1 +ARW_STARTTOP = 2 +ARW_LEFT = 0 +ARW_RIGHT = 0 +ARW_UP = 4 +ARW_DOWN = 4 +ARW_HIDE = 8 +#ARW_VALID = 0x000F +SERKF_SERIALKEYSON = 1 +SERKF_AVAILABLE = 2 +SERKF_INDICATOR = 4 +HCF_HIGHCONTRASTON = 1 +HCF_AVAILABLE = 2 +HCF_HOTKEYACTIVE = 4 +HCF_CONFIRMHOTKEY = 8 +HCF_HOTKEYSOUND = 16 +HCF_INDICATOR = 32 +HCF_HOTKEYAVAILABLE = 64 +CDS_UPDATEREGISTRY = 1 +CDS_TEST = 2 +CDS_FULLSCREEN = 4 +CDS_GLOBAL = 8 +CDS_SET_PRIMARY = 16 +CDS_RESET = 1073741824 +CDS_SETRECT = 536870912 +CDS_NORESET = 268435456 + +# return values from ChangeDisplaySettings and ChangeDisplaySettingsEx +DISP_CHANGE_SUCCESSFUL = 0 +DISP_CHANGE_RESTART = 1 +DISP_CHANGE_FAILED = -1 +DISP_CHANGE_BADMODE = -2 +DISP_CHANGE_NOTUPDATED = -3 +DISP_CHANGE_BADFLAGS = -4 +DISP_CHANGE_BADPARAM = -5 +DISP_CHANGE_BADDUALVIEW = -6 + +ENUM_CURRENT_SETTINGS = -1 +ENUM_REGISTRY_SETTINGS = -2 +FKF_FILTERKEYSON = 1 +FKF_AVAILABLE = 2 +FKF_HOTKEYACTIVE = 4 +FKF_CONFIRMHOTKEY = 8 +FKF_HOTKEYSOUND = 16 +FKF_INDICATOR = 32 +FKF_CLICKON = 64 +SKF_STICKYKEYSON = 1 +SKF_AVAILABLE = 2 +SKF_HOTKEYACTIVE = 4 +SKF_CONFIRMHOTKEY = 8 +SKF_HOTKEYSOUND = 16 +SKF_INDICATOR = 32 +SKF_AUDIBLEFEEDBACK = 64 +SKF_TRISTATE = 128 +SKF_TWOKEYSOFF = 256 +SKF_LALTLATCHED = 268435456 +SKF_LCTLLATCHED = 67108864 +SKF_LSHIFTLATCHED = 16777216 +SKF_RALTLATCHED = 536870912 +SKF_RCTLLATCHED = 134217728 +SKF_RSHIFTLATCHED = 33554432 +SKF_LWINLATCHED = 1073741824 +SKF_RWINLATCHED = -2147483648 +SKF_LALTLOCKED = 1048576 +SKF_LCTLLOCKED = 262144 +SKF_LSHIFTLOCKED = 65536 +SKF_RALTLOCKED = 2097152 +SKF_RCTLLOCKED = 524288 +SKF_RSHIFTLOCKED = 131072 +SKF_LWINLOCKED = 4194304 +SKF_RWINLOCKED = 8388608 +MKF_MOUSEKEYSON = 1 +MKF_AVAILABLE = 2 +MKF_HOTKEYACTIVE = 4 +MKF_CONFIRMHOTKEY = 8 +MKF_HOTKEYSOUND = 16 +MKF_INDICATOR = 32 +MKF_MODIFIERS = 64 +MKF_REPLACENUMBERS = 128 +MKF_LEFTBUTTONSEL = 268435456 +MKF_RIGHTBUTTONSEL = 536870912 +MKF_LEFTBUTTONDOWN = 16777216 +MKF_RIGHTBUTTONDOWN = 33554432 +MKF_MOUSEMODE = -2147483648 +ATF_TIMEOUTON = 1 +ATF_ONOFFFEEDBACK = 2 +SSGF_NONE = 0 +SSGF_DISPLAY = 3 +SSTF_NONE = 0 +SSTF_CHARS = 1 +SSTF_BORDER = 2 +SSTF_DISPLAY = 3 +SSWF_NONE = 0 +SSWF_TITLE = 1 +SSWF_WINDOW = 2 +SSWF_DISPLAY = 3 +SSWF_CUSTOM = 4 +SSF_SOUNDSENTRYON = 1 +SSF_AVAILABLE = 2 +SSF_INDICATOR = 4 +TKF_TOGGLEKEYSON = 1 +TKF_AVAILABLE = 2 +TKF_HOTKEYACTIVE = 4 +TKF_CONFIRMHOTKEY = 8 +TKF_HOTKEYSOUND = 16 +TKF_INDICATOR = 32 +SLE_ERROR = 1 +SLE_MINORERROR = 2 +SLE_WARNING = 3 +MONITOR_DEFAULTTONULL = 0 +MONITOR_DEFAULTTOPRIMARY = 1 +MONITOR_DEFAULTTONEAREST = 2 +MONITORINFOF_PRIMARY = 1 +CCHDEVICENAME = 32 +CHILDID_SELF = 0 +INDEXID_OBJECT = 0 +INDEXID_CONTAINER = 0 +OBJID_WINDOW = 0 +OBJID_SYSMENU = -1 +OBJID_TITLEBAR = -2 +OBJID_MENU = -3 +OBJID_CLIENT = -4 +OBJID_VSCROLL = -5 +OBJID_HSCROLL = -6 +OBJID_SIZEGRIP = -7 +OBJID_CARET = -8 +OBJID_CURSOR = -9 +OBJID_ALERT = -10 +OBJID_SOUND = -11 +EVENT_MIN = 1 +EVENT_MAX = 2147483647 +EVENT_SYSTEM_SOUND = 1 +EVENT_SYSTEM_ALERT = 2 +EVENT_SYSTEM_FOREGROUND = 3 +EVENT_SYSTEM_MENUSTART = 4 +EVENT_SYSTEM_MENUEND = 5 +EVENT_SYSTEM_MENUPOPUPSTART = 6 +EVENT_SYSTEM_MENUPOPUPEND = 7 +EVENT_SYSTEM_CAPTURESTART = 8 +EVENT_SYSTEM_CAPTUREEND = 9 +EVENT_SYSTEM_MOVESIZESTART = 10 +EVENT_SYSTEM_MOVESIZEEND = 11 +EVENT_SYSTEM_CONTEXTHELPSTART = 12 +EVENT_SYSTEM_CONTEXTHELPEND = 13 +EVENT_SYSTEM_DRAGDROPSTART = 14 +EVENT_SYSTEM_DRAGDROPEND = 15 +EVENT_SYSTEM_DIALOGSTART = 16 +EVENT_SYSTEM_DIALOGEND = 17 +EVENT_SYSTEM_SCROLLINGSTART = 18 +EVENT_SYSTEM_SCROLLINGEND = 19 +EVENT_SYSTEM_SWITCHSTART = 20 +EVENT_SYSTEM_SWITCHEND = 21 +EVENT_SYSTEM_MINIMIZESTART = 22 +EVENT_SYSTEM_MINIMIZEEND = 23 +EVENT_OBJECT_CREATE = 32768 +EVENT_OBJECT_DESTROY = 32769 +EVENT_OBJECT_SHOW = 32770 +EVENT_OBJECT_HIDE = 32771 +EVENT_OBJECT_REORDER = 32772 +EVENT_OBJECT_FOCUS = 32773 +EVENT_OBJECT_SELECTION = 32774 +EVENT_OBJECT_SELECTIONADD = 32775 +EVENT_OBJECT_SELECTIONREMOVE = 32776 +EVENT_OBJECT_SELECTIONWITHIN = 32777 +EVENT_OBJECT_STATECHANGE = 32778 +EVENT_OBJECT_LOCATIONCHANGE = 32779 +EVENT_OBJECT_NAMECHANGE = 32780 +EVENT_OBJECT_DESCRIPTIONCHANGE = 32781 +EVENT_OBJECT_VALUECHANGE = 32782 +EVENT_OBJECT_PARENTCHANGE = 32783 +EVENT_OBJECT_HELPCHANGE = 32784 +EVENT_OBJECT_DEFACTIONCHANGE = 32785 +EVENT_OBJECT_ACCELERATORCHANGE = 32786 +SOUND_SYSTEM_STARTUP = 1 +SOUND_SYSTEM_SHUTDOWN = 2 +SOUND_SYSTEM_BEEP = 3 +SOUND_SYSTEM_ERROR = 4 +SOUND_SYSTEM_QUESTION = 5 +SOUND_SYSTEM_WARNING = 6 +SOUND_SYSTEM_INFORMATION = 7 +SOUND_SYSTEM_MAXIMIZE = 8 +SOUND_SYSTEM_MINIMIZE = 9 +SOUND_SYSTEM_RESTOREUP = 10 +SOUND_SYSTEM_RESTOREDOWN = 11 +SOUND_SYSTEM_APPSTART = 12 +SOUND_SYSTEM_FAULT = 13 +SOUND_SYSTEM_APPEND = 14 +SOUND_SYSTEM_MENUCOMMAND = 15 +SOUND_SYSTEM_MENUPOPUP = 16 +CSOUND_SYSTEM = 16 +ALERT_SYSTEM_INFORMATIONAL = 1 +ALERT_SYSTEM_WARNING = 2 +ALERT_SYSTEM_ERROR = 3 +ALERT_SYSTEM_QUERY = 4 +ALERT_SYSTEM_CRITICAL = 5 +CALERT_SYSTEM = 6 +WINEVENT_OUTOFCONTEXT = 0 +WINEVENT_SKIPOWNTHREAD = 1 +WINEVENT_SKIPOWNPROCESS = 2 +WINEVENT_INCONTEXT = 4 +GUI_CARETBLINKING = 1 +GUI_INMOVESIZE = 2 +GUI_INMENUMODE = 4 +GUI_SYSTEMMENUMODE = 8 +GUI_POPUPMENUMODE = 16 +STATE_SYSTEM_UNAVAILABLE = 1 +STATE_SYSTEM_SELECTED = 2 +STATE_SYSTEM_FOCUSED = 4 +STATE_SYSTEM_PRESSED = 8 +STATE_SYSTEM_CHECKED = 16 +STATE_SYSTEM_MIXED = 32 +STATE_SYSTEM_READONLY = 64 +STATE_SYSTEM_HOTTRACKED = 128 +STATE_SYSTEM_DEFAULT = 256 +STATE_SYSTEM_EXPANDED = 512 +STATE_SYSTEM_COLLAPSED = 1024 +STATE_SYSTEM_BUSY = 2048 +STATE_SYSTEM_FLOATING = 4096 +STATE_SYSTEM_MARQUEED = 8192 +STATE_SYSTEM_ANIMATED = 16384 +STATE_SYSTEM_INVISIBLE = 32768 +STATE_SYSTEM_OFFSCREEN = 65536 +STATE_SYSTEM_SIZEABLE = 131072 +STATE_SYSTEM_MOVEABLE = 262144 +STATE_SYSTEM_SELFVOICING = 524288 +STATE_SYSTEM_FOCUSABLE = 1048576 +STATE_SYSTEM_SELECTABLE = 2097152 +STATE_SYSTEM_LINKED = 4194304 +STATE_SYSTEM_TRAVERSED = 8388608 +STATE_SYSTEM_MULTISELECTABLE = 16777216 +STATE_SYSTEM_EXTSELECTABLE = 33554432 +STATE_SYSTEM_ALERT_LOW = 67108864 +STATE_SYSTEM_ALERT_MEDIUM = 134217728 +STATE_SYSTEM_ALERT_HIGH = 268435456 +STATE_SYSTEM_VALID = 536870911 +CCHILDREN_TITLEBAR = 5 +CCHILDREN_SCROLLBAR = 5 +CURSOR_SHOWING = 1 +WS_ACTIVECAPTION = 1 +GA_MIC = 1 +GA_PARENT = 1 +GA_ROOT = 2 +GA_ROOTOWNER = 3 +GA_MAC = 4 + +# winuser.h line 1979 +BF_LEFT = 1 +BF_TOP = 2 +BF_RIGHT = 4 +BF_BOTTOM = 8 +BF_TOPLEFT = (BF_TOP | BF_LEFT) +BF_TOPRIGHT = (BF_TOP | BF_RIGHT) +BF_BOTTOMLEFT = (BF_BOTTOM | BF_LEFT) +BF_BOTTOMRIGHT = (BF_BOTTOM | BF_RIGHT) +BF_RECT = (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM) +BF_DIAGONAL = 16 +BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL | BF_TOP | BF_RIGHT) +BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL | BF_TOP | BF_LEFT) +BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL | BF_BOTTOM | BF_LEFT) +BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT) +BF_MIDDLE = 2048 +BF_SOFT = 4096 +BF_ADJUST = 8192 +BF_FLAT = 16384 +BF_MONO = 32768 +DFC_CAPTION = 1 +DFC_MENU = 2 +DFC_SCROLL = 3 +DFC_BUTTON = 4 +DFC_POPUPMENU = 5 +DFCS_CAPTIONCLOSE = 0 +DFCS_CAPTIONMIN = 1 +DFCS_CAPTIONMAX = 2 +DFCS_CAPTIONRESTORE = 3 +DFCS_CAPTIONHELP = 4 +DFCS_MENUARROW = 0 +DFCS_MENUCHECK = 1 +DFCS_MENUBULLET = 2 +DFCS_MENUARROWRIGHT = 4 +DFCS_SCROLLUP = 0 +DFCS_SCROLLDOWN = 1 +DFCS_SCROLLLEFT = 2 +DFCS_SCROLLRIGHT = 3 +DFCS_SCROLLCOMBOBOX = 5 +DFCS_SCROLLSIZEGRIP = 8 +DFCS_SCROLLSIZEGRIPRIGHT = 16 +DFCS_BUTTONCHECK = 0 +DFCS_BUTTONRADIOIMAGE = 1 +DFCS_BUTTONRADIOMASK = 2 +DFCS_BUTTONRADIO = 4 +DFCS_BUTTON3STATE = 8 +DFCS_BUTTONPUSH = 16 +DFCS_INACTIVE = 256 +DFCS_PUSHED = 512 +DFCS_CHECKED = 1024 +DFCS_TRANSPARENT = 2048 +DFCS_HOT = 4096 +DFCS_ADJUSTRECT = 8192 +DFCS_FLAT = 16384 +DFCS_MONO = 32768 +DC_ACTIVE = 1 +DC_SMALLCAP = 2 +DC_ICON = 4 +DC_TEXT = 8 +DC_INBUTTON = 16 +DC_GRADIENT = 32 +IDANI_OPEN = 1 +IDANI_CLOSE = 2 +IDANI_CAPTION = 3 +CF_TEXT = 1 +CF_BITMAP = 2 +CF_METAFILEPICT = 3 +CF_SYLK = 4 +CF_DIF = 5 +CF_TIFF = 6 +CF_OEMTEXT = 7 +CF_DIB = 8 +CF_PALETTE = 9 +CF_PENDATA = 10 +CF_RIFF = 11 +CF_WAVE = 12 +CF_UNICODETEXT = 13 +CF_ENHMETAFILE = 14 +CF_HDROP = 15 +CF_LOCALE = 16 +CF_DIBV5 = 17 +CF_MAX = 18 +CF_OWNERDISPLAY = 128 +CF_DSPTEXT = 129 +CF_DSPBITMAP = 130 +CF_DSPMETAFILEPICT = 131 +CF_DSPENHMETAFILE = 142 +CF_PRIVATEFIRST = 512 +CF_PRIVATELAST = 767 +CF_GDIOBJFIRST = 768 +CF_GDIOBJLAST = 1023 +FVIRTKEY =1 +FNOINVERT = 2 +FSHIFT = 4 +FCONTROL = 8 +FALT = 16 +WPF_SETMINPOSITION = 1 +WPF_RESTORETOMAXIMIZED = 2 +ODT_MENU = 1 +ODT_LISTBOX = 2 +ODT_COMBOBOX = 3 +ODT_BUTTON = 4 +ODT_STATIC = 5 +ODA_DRAWENTIRE = 1 +ODA_SELECT = 2 +ODA_FOCUS = 4 +ODS_SELECTED = 1 +ODS_GRAYED = 2 +ODS_DISABLED = 4 +ODS_CHECKED = 8 +ODS_FOCUS = 16 +ODS_DEFAULT = 32 +ODS_COMBOBOXEDIT = 4096 +ODS_HOTLIGHT = 64 +ODS_INACTIVE = 128 +PM_NOREMOVE = 0 +PM_REMOVE = 1 +PM_NOYIELD = 2 +MOD_ALT = 1 +MOD_CONTROL = 2 +MOD_SHIFT = 4 +MOD_WIN = 8 +IDHOT_SNAPWINDOW = (-1) +IDHOT_SNAPDESKTOP = (-2) +#EW_RESTARTWINDOWS = 0x0042 +#EW_REBOOTSYSTEM = 0x0043 +#EW_EXITANDEXECAPP = 0x0044 +ENDSESSION_LOGOFF = -2147483648 +EWX_LOGOFF = 0 +EWX_SHUTDOWN = 1 +EWX_REBOOT = 2 +EWX_FORCE = 4 +EWX_POWEROFF = 8 +EWX_FORCEIFHUNG = 16 +BSM_ALLCOMPONENTS = 0 +BSM_VXDS = 1 +BSM_NETDRIVER = 2 +BSM_INSTALLABLEDRIVERS = 4 +BSM_APPLICATIONS = 8 +BSM_ALLDESKTOPS = 16 +BSF_QUERY = 1 +BSF_IGNORECURRENTTASK = 2 +BSF_FLUSHDISK = 4 +BSF_NOHANG = 8 +BSF_POSTMESSAGE = 16 +BSF_FORCEIFHUNG = 32 +BSF_NOTIMEOUTIFNOTHUNG = 64 +BROADCAST_QUERY_DENY = 1112363332 # Return this value to deny a query. + +DBWF_LPARAMPOINTER = 32768 + +# winuser.h line 3232 +SWP_NOSIZE = 1 +SWP_NOMOVE = 2 +SWP_NOZORDER = 4 +SWP_NOREDRAW = 8 +SWP_NOACTIVATE = 16 +SWP_FRAMECHANGED = 32 +SWP_SHOWWINDOW = 64 +SWP_HIDEWINDOW = 128 +SWP_NOCOPYBITS = 256 +SWP_NOOWNERZORDER = 512 +SWP_NOSENDCHANGING = 1024 +SWP_DRAWFRAME = SWP_FRAMECHANGED +SWP_NOREPOSITION = SWP_NOOWNERZORDER +SWP_DEFERERASE = 8192 +SWP_ASYNCWINDOWPOS = 16384 + +DLGWINDOWEXTRA = 30 +# winuser.h line 4249 +KEYEVENTF_EXTENDEDKEY = 1 +KEYEVENTF_KEYUP = 2 +MOUSEEVENTF_MOVE = 1 +MOUSEEVENTF_LEFTDOWN = 2 +MOUSEEVENTF_LEFTUP = 4 +MOUSEEVENTF_RIGHTDOWN = 8 +MOUSEEVENTF_RIGHTUP = 16 +MOUSEEVENTF_MIDDLEDOWN = 32 +MOUSEEVENTF_MIDDLEUP = 64 +MOUSEEVENTF_ABSOLUTE = 32768 +INPUT_MOUSE = 0 +INPUT_KEYBOARD = 1 +INPUT_HARDWARE = 2 +MWMO_WAITALL = 1 +MWMO_ALERTABLE = 2 +MWMO_INPUTAVAILABLE = 4 +QS_KEY = 1 +QS_MOUSEMOVE = 2 +QS_MOUSEBUTTON = 4 +QS_POSTMESSAGE = 8 +QS_TIMER = 16 +QS_PAINT = 32 +QS_SENDMESSAGE = 64 +QS_HOTKEY = 128 +QS_MOUSE = (QS_MOUSEMOVE | \ + QS_MOUSEBUTTON) +QS_INPUT = (QS_MOUSE | \ + QS_KEY) +QS_ALLEVENTS = (QS_INPUT | \ + QS_POSTMESSAGE | \ + QS_TIMER | \ + QS_PAINT | \ + QS_HOTKEY) +QS_ALLINPUT = (QS_INPUT | \ + QS_POSTMESSAGE | \ + QS_TIMER | \ + QS_PAINT | \ + QS_HOTKEY | \ + QS_SENDMESSAGE) + + +IMN_CLOSESTATUSWINDOW = 1 +IMN_OPENSTATUSWINDOW = 2 +IMN_CHANGECANDIDATE = 3 +IMN_CLOSECANDIDATE = 4 +IMN_OPENCANDIDATE = 5 +IMN_SETCONVERSIONMODE = 6 +IMN_SETSENTENCEMODE = 7 +IMN_SETOPENSTATUS = 8 +IMN_SETCANDIDATEPOS = 9 +IMN_SETCOMPOSITIONFONT = 10 +IMN_SETCOMPOSITIONWINDOW = 11 +IMN_SETSTATUSWINDOWPOS = 12 +IMN_GUIDELINE = 13 +IMN_PRIVATE = 14 + +# winuser.h line 8518 +HELP_CONTEXT = 1 +HELP_QUIT = 2 +HELP_INDEX = 3 +HELP_CONTENTS = 3 +HELP_HELPONHELP = 4 +HELP_SETINDEX = 5 +HELP_SETCONTENTS = 5 +HELP_CONTEXTPOPUP = 8 +HELP_FORCEFILE = 9 +HELP_KEY = 257 +HELP_COMMAND = 258 +HELP_PARTIALKEY = 261 +HELP_MULTIKEY = 513 +HELP_SETWINPOS = 515 +HELP_CONTEXTMENU = 10 +HELP_FINDER = 11 +HELP_WM_HELP = 12 +HELP_SETPOPUP_POS = 13 +HELP_TCARD = 32768 +HELP_TCARD_DATA = 16 +HELP_TCARD_OTHER_CALLER = 17 +IDH_NO_HELP = 28440 +IDH_MISSING_CONTEXT = 28441 # Control doesn't have matching help context +IDH_GENERIC_HELP_BUTTON = 28442 # Property sheet help button +IDH_OK = 28443 +IDH_CANCEL = 28444 +IDH_HELP = 28445 +GR_GDIOBJECTS = 0 # Count of GDI objects +GR_USEROBJECTS = 1 # Count of USER objects +# Generated by h2py from \msvcnt\include\wingdi.h +# manually added (missed by generation some how! +SRCCOPY = 13369376 # dest = source +SRCPAINT = 15597702 # dest = source OR dest +SRCAND = 8913094 # dest = source AND dest +SRCINVERT = 6684742 # dest = source XOR dest +SRCERASE = 4457256 # dest = source AND (NOT dest ) +NOTSRCCOPY = 3342344 # dest = (NOT source) +NOTSRCERASE = 1114278 # dest = (NOT src) AND (NOT dest) +MERGECOPY = 12583114 # dest = (source AND pattern) +MERGEPAINT = 12255782 # dest = (NOT source) OR dest +PATCOPY = 15728673 # dest = pattern +PATPAINT = 16452105 # dest = DPSnoo +PATINVERT = 5898313 # dest = pattern XOR dest +DSTINVERT = 5570569 # dest = (NOT dest) +BLACKNESS = 66 # dest = BLACK +WHITENESS = 16711778 # dest = WHITE + +# hacked and split manually by mhammond. +R2_BLACK = 1 +R2_NOTMERGEPEN = 2 +R2_MASKNOTPEN = 3 +R2_NOTCOPYPEN = 4 +R2_MASKPENNOT = 5 +R2_NOT = 6 +R2_XORPEN = 7 +R2_NOTMASKPEN = 8 +R2_MASKPEN = 9 +R2_NOTXORPEN = 10 +R2_NOP = 11 +R2_MERGENOTPEN = 12 +R2_COPYPEN = 13 +R2_MERGEPENNOT = 14 +R2_MERGEPEN = 15 +R2_WHITE = 16 +R2_LAST = 16 +GDI_ERROR = (-1) +ERROR = 0 +NULLREGION = 1 +SIMPLEREGION = 2 +COMPLEXREGION = 3 +RGN_ERROR = ERROR +RGN_AND = 1 +RGN_OR = 2 +RGN_XOR = 3 +RGN_DIFF = 4 +RGN_COPY = 5 +RGN_MIN = RGN_AND +RGN_MAX = RGN_COPY + +## Stretching modes used with Get/SetStretchBltMode +BLACKONWHITE = 1 +WHITEONBLACK = 2 +COLORONCOLOR = 3 +HALFTONE = 4 +MAXSTRETCHBLTMODE = 4 +STRETCH_ANDSCANS = BLACKONWHITE +STRETCH_ORSCANS = WHITEONBLACK +STRETCH_DELETESCANS = COLORONCOLOR +STRETCH_HALFTONE = HALFTONE + +ALTERNATE = 1 +WINDING = 2 +POLYFILL_LAST = 2 + +## flags used with SetLayout +LAYOUT_RTL = 1 +LAYOUT_BTT = 2 +LAYOUT_VBH = 4 +LAYOUT_ORIENTATIONMASK = LAYOUT_RTL|LAYOUT_BTT|LAYOUT_VBH +LAYOUT_BITMAPORIENTATIONPRESERVED = 8 + +TA_NOUPDATECP = 0 +TA_UPDATECP = 1 +TA_LEFT = 0 +TA_RIGHT = 2 +TA_CENTER = 6 +TA_TOP = 0 +TA_BOTTOM = 8 +TA_BASELINE = 24 +TA_MASK = (TA_BASELINE+TA_CENTER+TA_UPDATECP) +VTA_BASELINE = TA_BASELINE +VTA_LEFT = TA_BOTTOM +VTA_RIGHT = TA_TOP +VTA_CENTER = TA_CENTER +VTA_BOTTOM = TA_RIGHT +VTA_TOP = TA_LEFT +ETO_GRAYED = 1 +ETO_OPAQUE = 2 +ETO_CLIPPED = 4 +ASPECT_FILTERING = 1 +DCB_RESET = 1 +DCB_ACCUMULATE = 2 +DCB_DIRTY = DCB_ACCUMULATE +DCB_SET = (DCB_RESET | DCB_ACCUMULATE) +DCB_ENABLE = 4 +DCB_DISABLE = 8 +META_SETBKCOLOR = 513 +META_SETBKMODE = 258 +META_SETMAPMODE = 259 +META_SETROP2 = 260 +META_SETRELABS = 261 +META_SETPOLYFILLMODE = 262 +META_SETSTRETCHBLTMODE = 263 +META_SETTEXTCHAREXTRA = 264 +META_SETTEXTCOLOR = 521 +META_SETTEXTJUSTIFICATION = 522 +META_SETWINDOWORG = 523 +META_SETWINDOWEXT = 524 +META_SETVIEWPORTORG = 525 +META_SETVIEWPORTEXT = 526 +META_OFFSETWINDOWORG = 527 +META_SCALEWINDOWEXT = 1040 +META_OFFSETVIEWPORTORG = 529 +META_SCALEVIEWPORTEXT = 1042 +META_LINETO = 531 +META_MOVETO = 532 +META_EXCLUDECLIPRECT = 1045 +META_INTERSECTCLIPRECT = 1046 +META_ARC = 2071 +META_ELLIPSE = 1048 +META_FLOODFILL = 1049 +META_PIE = 2074 +META_RECTANGLE = 1051 +META_ROUNDRECT = 1564 +META_PATBLT = 1565 +META_SAVEDC = 30 +META_SETPIXEL = 1055 +META_OFFSETCLIPRGN = 544 +META_TEXTOUT = 1313 +META_BITBLT = 2338 +META_STRETCHBLT = 2851 +META_POLYGON = 804 +META_POLYLINE = 805 +META_ESCAPE = 1574 +META_RESTOREDC = 295 +META_FILLREGION = 552 +META_FRAMEREGION = 1065 +META_INVERTREGION = 298 +META_PAINTREGION = 299 +META_SELECTCLIPREGION = 300 +META_SELECTOBJECT = 301 +META_SETTEXTALIGN = 302 +META_CHORD = 2096 +META_SETMAPPERFLAGS = 561 +META_EXTTEXTOUT = 2610 +META_SETDIBTODEV = 3379 +META_SELECTPALETTE = 564 +META_REALIZEPALETTE = 53 +META_ANIMATEPALETTE = 1078 +META_SETPALENTRIES = 55 +META_POLYPOLYGON = 1336 +META_RESIZEPALETTE = 313 +META_DIBBITBLT = 2368 +META_DIBSTRETCHBLT = 2881 +META_DIBCREATEPATTERNBRUSH = 322 +META_STRETCHDIB = 3907 +META_EXTFLOODFILL = 1352 +META_DELETEOBJECT = 496 +META_CREATEPALETTE = 247 +META_CREATEPATTERNBRUSH = 505 +META_CREATEPENINDIRECT = 762 +META_CREATEFONTINDIRECT = 763 +META_CREATEBRUSHINDIRECT = 764 +META_CREATEREGION = 1791 +FILE_BEGIN = 0 +FILE_CURRENT = 1 +FILE_END = 2 +FILE_FLAG_WRITE_THROUGH = -2147483648 +FILE_FLAG_OVERLAPPED = 1073741824 +FILE_FLAG_NO_BUFFERING = 536870912 +FILE_FLAG_RANDOM_ACCESS = 268435456 +FILE_FLAG_SEQUENTIAL_SCAN = 134217728 +FILE_FLAG_DELETE_ON_CLOSE = 67108864 +FILE_FLAG_BACKUP_SEMANTICS = 33554432 +FILE_FLAG_POSIX_SEMANTICS = 16777216 +CREATE_NEW = 1 +CREATE_ALWAYS = 2 +OPEN_EXISTING = 3 +OPEN_ALWAYS = 4 +TRUNCATE_EXISTING = 5 +PIPE_ACCESS_INBOUND = 1 +PIPE_ACCESS_OUTBOUND = 2 +PIPE_ACCESS_DUPLEX = 3 +PIPE_CLIENT_END = 0 +PIPE_SERVER_END = 1 +PIPE_WAIT = 0 +PIPE_NOWAIT = 1 +PIPE_READMODE_BYTE = 0 +PIPE_READMODE_MESSAGE = 2 +PIPE_TYPE_BYTE = 0 +PIPE_TYPE_MESSAGE = 4 +PIPE_UNLIMITED_INSTANCES = 255 +SECURITY_CONTEXT_TRACKING = 262144 +SECURITY_EFFECTIVE_ONLY = 524288 +SECURITY_SQOS_PRESENT = 1048576 +SECURITY_VALID_SQOS_FLAGS = 2031616 +DTR_CONTROL_DISABLE = 0 +DTR_CONTROL_ENABLE = 1 +DTR_CONTROL_HANDSHAKE = 2 +RTS_CONTROL_DISABLE = 0 +RTS_CONTROL_ENABLE = 1 +RTS_CONTROL_HANDSHAKE = 2 +RTS_CONTROL_TOGGLE = 3 +GMEM_FIXED = 0 +GMEM_MOVEABLE = 2 +GMEM_NOCOMPACT = 16 +GMEM_NODISCARD = 32 +GMEM_ZEROINIT = 64 +GMEM_MODIFY = 128 +GMEM_DISCARDABLE = 256 +GMEM_NOT_BANKED = 4096 +GMEM_SHARE = 8192 +GMEM_DDESHARE = 8192 +GMEM_NOTIFY = 16384 +GMEM_LOWER = GMEM_NOT_BANKED +GMEM_VALID_FLAGS = 32626 +GMEM_INVALID_HANDLE = 32768 +GHND = (GMEM_MOVEABLE | GMEM_ZEROINIT) +GPTR = (GMEM_FIXED | GMEM_ZEROINIT) +GMEM_DISCARDED = 16384 +GMEM_LOCKCOUNT = 255 +LMEM_FIXED = 0 +LMEM_MOVEABLE = 2 +LMEM_NOCOMPACT = 16 +LMEM_NODISCARD = 32 +LMEM_ZEROINIT = 64 +LMEM_MODIFY = 128 +LMEM_DISCARDABLE = 3840 +LMEM_VALID_FLAGS = 3954 +LMEM_INVALID_HANDLE = 32768 +LHND = (LMEM_MOVEABLE | LMEM_ZEROINIT) +LPTR = (LMEM_FIXED | LMEM_ZEROINIT) +NONZEROLHND = (LMEM_MOVEABLE) +NONZEROLPTR = (LMEM_FIXED) +LMEM_DISCARDED = 16384 +LMEM_LOCKCOUNT = 255 +DEBUG_PROCESS = 1 +DEBUG_ONLY_THIS_PROCESS = 2 +CREATE_SUSPENDED = 4 +DETACHED_PROCESS = 8 +CREATE_NEW_CONSOLE = 16 +NORMAL_PRIORITY_CLASS = 32 +IDLE_PRIORITY_CLASS = 64 +HIGH_PRIORITY_CLASS = 128 +REALTIME_PRIORITY_CLASS = 256 +CREATE_NEW_PROCESS_GROUP = 512 +CREATE_UNICODE_ENVIRONMENT = 1024 +CREATE_SEPARATE_WOW_VDM = 2048 +CREATE_SHARED_WOW_VDM = 4096 +CREATE_DEFAULT_ERROR_MODE = 67108864 +CREATE_NO_WINDOW = 134217728 +PROFILE_USER = 268435456 +PROFILE_KERNEL = 536870912 +PROFILE_SERVER = 1073741824 +THREAD_BASE_PRIORITY_LOWRT = 15 +THREAD_BASE_PRIORITY_MAX = 2 +THREAD_BASE_PRIORITY_MIN = -2 +THREAD_BASE_PRIORITY_IDLE = -15 +THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN +THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1 +THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX +THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1 +THREAD_PRIORITY_ERROR_RETURN = MAXLONG +THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT +THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE +THREAD_PRIORITY_NORMAL = 0 +THREAD_MODE_BACKGROUND_BEGIN = 0x00010000 +THREAD_MODE_BACKGROUND_END = 0x00020000 + +EXCEPTION_DEBUG_EVENT = 1 +CREATE_THREAD_DEBUG_EVENT = 2 +CREATE_PROCESS_DEBUG_EVENT = 3 +EXIT_THREAD_DEBUG_EVENT = 4 +EXIT_PROCESS_DEBUG_EVENT = 5 +LOAD_DLL_DEBUG_EVENT = 6 +UNLOAD_DLL_DEBUG_EVENT = 7 +OUTPUT_DEBUG_STRING_EVENT = 8 +RIP_EVENT = 9 +DRIVE_UNKNOWN = 0 +DRIVE_NO_ROOT_DIR = 1 +DRIVE_REMOVABLE = 2 +DRIVE_FIXED = 3 +DRIVE_REMOTE = 4 +DRIVE_CDROM = 5 +DRIVE_RAMDISK = 6 +FILE_TYPE_UNKNOWN = 0 +FILE_TYPE_DISK = 1 +FILE_TYPE_CHAR = 2 +FILE_TYPE_PIPE = 3 +FILE_TYPE_REMOTE = 32768 +NOPARITY = 0 +ODDPARITY = 1 +EVENPARITY = 2 +MARKPARITY = 3 +SPACEPARITY = 4 +ONESTOPBIT = 0 +ONE5STOPBITS = 1 +TWOSTOPBITS = 2 +CBR_110 = 110 +CBR_300 = 300 +CBR_600 = 600 +CBR_1200 = 1200 +CBR_2400 = 2400 +CBR_4800 = 4800 +CBR_9600 = 9600 +CBR_14400 = 14400 +CBR_19200 = 19200 +CBR_38400 = 38400 +CBR_56000 = 56000 +CBR_57600 = 57600 +CBR_115200 = 115200 +CBR_128000 = 128000 +CBR_256000 = 256000 +S_QUEUEEMPTY = 0 +S_THRESHOLD = 1 +S_ALLTHRESHOLD = 2 +S_NORMAL = 0 +S_LEGATO = 1 +S_STACCATO = 2 +NMPWAIT_WAIT_FOREVER = -1 +NMPWAIT_NOWAIT = 1 +NMPWAIT_USE_DEFAULT_WAIT = 0 +OF_READ = 0 +OF_WRITE = 1 +OF_READWRITE = 2 +OF_SHARE_COMPAT = 0 +OF_SHARE_EXCLUSIVE = 16 +OF_SHARE_DENY_WRITE = 32 +OF_SHARE_DENY_READ = 48 +OF_SHARE_DENY_NONE = 64 +OF_PARSE = 256 +OF_DELETE = 512 +OF_VERIFY = 1024 +OF_CANCEL = 2048 +OF_CREATE = 4096 +OF_PROMPT = 8192 +OF_EXIST = 16384 +OF_REOPEN = 32768 +OFS_MAXPATHNAME = 128 +MAXINTATOM = 49152 + +# winbase.h +PROCESS_HEAP_REGION = 1 +PROCESS_HEAP_UNCOMMITTED_RANGE = 2 +PROCESS_HEAP_ENTRY_BUSY = 4 +PROCESS_HEAP_ENTRY_MOVEABLE = 16 +PROCESS_HEAP_ENTRY_DDESHARE = 32 +SCS_32BIT_BINARY = 0 +SCS_DOS_BINARY = 1 +SCS_WOW_BINARY = 2 +SCS_PIF_BINARY = 3 +SCS_POSIX_BINARY = 4 +SCS_OS216_BINARY = 5 +SEM_FAILCRITICALERRORS = 1 +SEM_NOGPFAULTERRORBOX = 2 +SEM_NOALIGNMENTFAULTEXCEPT = 4 +SEM_NOOPENFILEERRORBOX = 32768 +LOCKFILE_FAIL_IMMEDIATELY = 1 +LOCKFILE_EXCLUSIVE_LOCK = 2 +HANDLE_FLAG_INHERIT = 1 +HANDLE_FLAG_PROTECT_FROM_CLOSE = 2 +HINSTANCE_ERROR = 32 +GET_TAPE_MEDIA_INFORMATION = 0 +GET_TAPE_DRIVE_INFORMATION = 1 +SET_TAPE_MEDIA_INFORMATION = 0 +SET_TAPE_DRIVE_INFORMATION = 1 +FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 +FORMAT_MESSAGE_IGNORE_INSERTS = 512 +FORMAT_MESSAGE_FROM_STRING = 1024 +FORMAT_MESSAGE_FROM_HMODULE = 2048 +FORMAT_MESSAGE_FROM_SYSTEM = 4096 +FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 +FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 +BACKUP_INVALID = 0 +BACKUP_DATA = 1 +BACKUP_EA_DATA = 2 +BACKUP_SECURITY_DATA = 3 +BACKUP_ALTERNATE_DATA = 4 +BACKUP_LINK = 5 +BACKUP_PROPERTY_DATA = 6 +BACKUP_OBJECT_ID = 7 +BACKUP_REPARSE_DATA = 8 +BACKUP_SPARSE_BLOCK = 9 + +STREAM_NORMAL_ATTRIBUTE = 0 +STREAM_MODIFIED_WHEN_READ = 1 +STREAM_CONTAINS_SECURITY = 2 +STREAM_CONTAINS_PROPERTIES = 4 +STARTF_USESHOWWINDOW = 1 +STARTF_USESIZE = 2 +STARTF_USEPOSITION = 4 +STARTF_USECOUNTCHARS = 8 +STARTF_USEFILLATTRIBUTE = 16 +STARTF_FORCEONFEEDBACK = 64 +STARTF_FORCEOFFFEEDBACK = 128 +STARTF_USESTDHANDLES = 256 +STARTF_USEHOTKEY = 512 +SHUTDOWN_NORETRY = 1 +DONT_RESOLVE_DLL_REFERENCES = 1 +LOAD_LIBRARY_AS_DATAFILE = 2 +LOAD_WITH_ALTERED_SEARCH_PATH = 8 +DDD_RAW_TARGET_PATH = 1 +DDD_REMOVE_DEFINITION = 2 +DDD_EXACT_MATCH_ON_REMOVE = 4 +MOVEFILE_REPLACE_EXISTING = 1 +MOVEFILE_COPY_ALLOWED = 2 +MOVEFILE_DELAY_UNTIL_REBOOT = 4 +MAX_COMPUTERNAME_LENGTH = 15 +LOGON32_LOGON_INTERACTIVE = 2 +LOGON32_LOGON_NETWORK = 3 +LOGON32_LOGON_BATCH = 4 +LOGON32_LOGON_SERVICE = 5 +LOGON32_LOGON_UNLOCK = 7 +LOGON32_LOGON_NETWORK_CLEARTEXT = 8 +LOGON32_LOGON_NEW_CREDENTIALS = 9 +LOGON32_PROVIDER_DEFAULT = 0 +LOGON32_PROVIDER_WINNT35 = 1 +LOGON32_PROVIDER_WINNT40 = 2 +LOGON32_PROVIDER_WINNT50 = 3 +VER_PLATFORM_WIN32s = 0 +VER_PLATFORM_WIN32_WINDOWS = 1 +VER_PLATFORM_WIN32_NT = 2 +TC_NORMAL = 0 +TC_HARDERR = 1 +TC_GP_TRAP = 2 +TC_SIGNAL = 3 +AC_LINE_OFFLINE = 0 +AC_LINE_ONLINE = 1 +AC_LINE_BACKUP_POWER = 2 +AC_LINE_UNKNOWN = 255 +BATTERY_FLAG_HIGH = 1 +BATTERY_FLAG_LOW = 2 +BATTERY_FLAG_CRITICAL = 4 +BATTERY_FLAG_CHARGING = 8 +BATTERY_FLAG_NO_BATTERY = 128 +BATTERY_FLAG_UNKNOWN = 255 +BATTERY_PERCENTAGE_UNKNOWN = 255 +BATTERY_LIFE_UNKNOWN = -1 + +# Generated by h2py from d:\msdev\include\richedit.h +cchTextLimitDefault = 32767 +WM_CONTEXTMENU = 123 +WM_PRINTCLIENT = 792 +EN_MSGFILTER = 1792 +EN_REQUESTRESIZE = 1793 +EN_SELCHANGE = 1794 +EN_DROPFILES = 1795 +EN_PROTECTED = 1796 +EN_CORRECTTEXT = 1797 +EN_STOPNOUNDO = 1798 +EN_IMECHANGE = 1799 +EN_SAVECLIPBOARD = 1800 +EN_OLEOPFAILED = 1801 +ENM_NONE = 0 +ENM_CHANGE = 1 +ENM_UPDATE = 2 +ENM_SCROLL = 4 +ENM_KEYEVENTS = 65536 +ENM_MOUSEEVENTS = 131072 +ENM_REQUESTRESIZE = 262144 +ENM_SELCHANGE = 524288 +ENM_DROPFILES = 1048576 +ENM_PROTECTED = 2097152 +ENM_CORRECTTEXT = 4194304 +ENM_IMECHANGE = 8388608 +ES_SAVESEL = 32768 +ES_SUNKEN = 16384 +ES_DISABLENOSCROLL = 8192 +ES_SELECTIONBAR = 16777216 +ES_EX_NOCALLOLEINIT = 16777216 +ES_VERTICAL = 4194304 +ES_NOIME = 524288 +ES_SELFIME = 262144 +ECO_AUTOWORDSELECTION = 1 +ECO_AUTOVSCROLL = 64 +ECO_AUTOHSCROLL = 128 +ECO_NOHIDESEL = 256 +ECO_READONLY = 2048 +ECO_WANTRETURN = 4096 +ECO_SAVESEL = 32768 +ECO_SELECTIONBAR = 16777216 +ECO_VERTICAL = 4194304 +ECOOP_SET = 1 +ECOOP_OR = 2 +ECOOP_AND = 3 +ECOOP_XOR = 4 +WB_CLASSIFY = 3 +WB_MOVEWORDLEFT = 4 +WB_MOVEWORDRIGHT = 5 +WB_LEFTBREAK = 6 +WB_RIGHTBREAK = 7 +WB_MOVEWORDPREV = 4 +WB_MOVEWORDNEXT = 5 +WB_PREVBREAK = 6 +WB_NEXTBREAK = 7 +PC_FOLLOWING = 1 +PC_LEADING = 2 +PC_OVERFLOW = 3 +PC_DELIMITER = 4 +WBF_WORDWRAP = 16 +WBF_WORDBREAK = 32 +WBF_OVERFLOW = 64 +WBF_LEVEL1 = 128 +WBF_LEVEL2 = 256 +WBF_CUSTOM = 512 +CFM_BOLD = 1 +CFM_ITALIC = 2 +CFM_UNDERLINE = 4 +CFM_STRIKEOUT = 8 +CFM_PROTECTED = 16 +CFM_SIZE = -2147483648 +CFM_COLOR = 1073741824 +CFM_FACE = 536870912 +CFM_OFFSET = 268435456 +CFM_CHARSET = 134217728 +CFE_BOLD = 1 +CFE_ITALIC = 2 +CFE_UNDERLINE = 4 +CFE_STRIKEOUT = 8 +CFE_PROTECTED = 16 +CFE_AUTOCOLOR = 1073741824 +yHeightCharPtsMost = 1638 +SCF_SELECTION = 1 +SCF_WORD = 2 +SF_TEXT = 1 +SF_RTF = 2 +SF_RTFNOOBJS = 3 +SF_TEXTIZED = 4 +SFF_SELECTION = 32768 +SFF_PLAINRTF = 16384 +MAX_TAB_STOPS = 32 +lDefaultTab = 720 +PFM_STARTINDENT = 1 +PFM_RIGHTINDENT = 2 +PFM_OFFSET = 4 +PFM_ALIGNMENT = 8 +PFM_TABSTOPS = 16 +PFM_NUMBERING = 32 +PFM_OFFSETINDENT = -2147483648 +PFN_BULLET = 1 +PFA_LEFT = 1 +PFA_RIGHT = 2 +PFA_CENTER = 3 +WM_NOTIFY = 78 +SEL_EMPTY = 0 +SEL_TEXT = 1 +SEL_OBJECT = 2 +SEL_MULTICHAR = 4 +SEL_MULTIOBJECT = 8 +OLEOP_DOVERB = 1 +CF_RTF = "Rich Text Format" +CF_RTFNOOBJS = "Rich Text Format Without Objects" +CF_RETEXTOBJ = "RichEdit Text and Objects" + +# From wincon.h +RIGHT_ALT_PRESSED = 1 # the right alt key is pressed. +LEFT_ALT_PRESSED = 2 # the left alt key is pressed. +RIGHT_CTRL_PRESSED = 4 # the right ctrl key is pressed. +LEFT_CTRL_PRESSED = 8 # the left ctrl key is pressed. +SHIFT_PRESSED = 16 # the shift key is pressed. +NUMLOCK_ON = 32 # the numlock light is on. +SCROLLLOCK_ON = 64 # the scrolllock light is on. +CAPSLOCK_ON = 128 # the capslock light is on. +ENHANCED_KEY = 256 # the key is enhanced. +NLS_DBCSCHAR = 65536 # DBCS for JPN: SBCS/DBCS mode. +NLS_ALPHANUMERIC = 0 # DBCS for JPN: Alphanumeric mode. +NLS_KATAKANA = 131072 # DBCS for JPN: Katakana mode. +NLS_HIRAGANA = 262144 # DBCS for JPN: Hiragana mode. +NLS_ROMAN = 4194304 # DBCS for JPN: Roman/Noroman mode. +NLS_IME_CONVERSION = 8388608 # DBCS for JPN: IME conversion. +NLS_IME_DISABLE = 536870912 # DBCS for JPN: IME enable/disable. + +FROM_LEFT_1ST_BUTTON_PRESSED = 1 +RIGHTMOST_BUTTON_PRESSED = 2 +FROM_LEFT_2ND_BUTTON_PRESSED = 4 +FROM_LEFT_3RD_BUTTON_PRESSED = 8 +FROM_LEFT_4TH_BUTTON_PRESSED = 16 + +CTRL_C_EVENT = 0 +CTRL_BREAK_EVENT = 1 +CTRL_CLOSE_EVENT = 2 +CTRL_LOGOFF_EVENT = 5 +CTRL_SHUTDOWN_EVENT = 6 + +MOUSE_MOVED = 1 +DOUBLE_CLICK = 2 +MOUSE_WHEELED = 4 + +#property sheet window messages from prsht.h +PSM_SETCURSEL = (WM_USER + 101) +PSM_REMOVEPAGE = (WM_USER + 102) +PSM_ADDPAGE = (WM_USER + 103) +PSM_CHANGED = (WM_USER + 104) +PSM_RESTARTWINDOWS = (WM_USER + 105) +PSM_REBOOTSYSTEM = (WM_USER + 106) +PSM_CANCELTOCLOSE = (WM_USER + 107) +PSM_QUERYSIBLINGS = (WM_USER + 108) +PSM_UNCHANGED = (WM_USER + 109) +PSM_APPLY = (WM_USER + 110) +PSM_SETTITLEA = (WM_USER + 111) +PSM_SETTITLEW = (WM_USER + 120) +PSM_SETWIZBUTTONS = (WM_USER + 112) +PSM_PRESSBUTTON = (WM_USER + 113) +PSM_SETCURSELID = (WM_USER + 114) +PSM_SETFINISHTEXTA = (WM_USER + 115) +PSM_SETFINISHTEXTW = (WM_USER + 121) +PSM_GETTABCONTROL = (WM_USER + 116) +PSM_ISDIALOGMESSAGE = (WM_USER + 117) +PSM_GETCURRENTPAGEHWND = (WM_USER + 118) +PSM_INSERTPAGE = (WM_USER + 119) +PSM_SETHEADERTITLEA = (WM_USER + 125) +PSM_SETHEADERTITLEW = (WM_USER + 126) +PSM_SETHEADERSUBTITLEA = (WM_USER + 127) +PSM_SETHEADERSUBTITLEW = (WM_USER + 128) +PSM_HWNDTOINDEX = (WM_USER + 129) +PSM_INDEXTOHWND = (WM_USER + 130) +PSM_PAGETOINDEX = (WM_USER + 131) +PSM_INDEXTOPAGE = (WM_USER + 132) +PSM_IDTOINDEX = (WM_USER + 133) +PSM_INDEXTOID = (WM_USER + 134) +PSM_GETRESULT = (WM_USER + 135) +PSM_RECALCPAGESIZES = (WM_USER + 136) + +# GetUserNameEx/GetComputerNameEx +NameUnknown = 0 +NameFullyQualifiedDN = 1 +NameSamCompatible = 2 +NameDisplay = 3 +NameUniqueId = 6 +NameCanonical = 7 +NameUserPrincipal = 8 +NameCanonicalEx = 9 +NameServicePrincipal = 10 +NameDnsDomain = 12 + +ComputerNameNetBIOS = 0 +ComputerNameDnsHostname = 1 +ComputerNameDnsDomain = 2 +ComputerNameDnsFullyQualified = 3 +ComputerNamePhysicalNetBIOS = 4 +ComputerNamePhysicalDnsHostname = 5 +ComputerNamePhysicalDnsDomain = 6 +ComputerNamePhysicalDnsFullyQualified = 7 + +LWA_COLORKEY = 0x00000001 +LWA_ALPHA = 0x00000002 +ULW_COLORKEY = 0x00000001 +ULW_ALPHA = 0x00000002 +ULW_OPAQUE = 0x00000004 + +# WinDef.h +TRUE = 1 +FALSE = 0 +MAX_PATH = 260 +# WinGDI.h +AC_SRC_OVER = 0 +AC_SRC_ALPHA = 1 +GRADIENT_FILL_RECT_H = 0 +GRADIENT_FILL_RECT_V = 1 +GRADIENT_FILL_TRIANGLE = 2 +GRADIENT_FILL_OP_FLAG = 255 + +## flags used with Get/SetSystemFileCacheSize +MM_WORKING_SET_MAX_HARD_ENABLE = 1 +MM_WORKING_SET_MAX_HARD_DISABLE = 2 +MM_WORKING_SET_MIN_HARD_ENABLE = 4 +MM_WORKING_SET_MIN_HARD_DISABLE = 8 + +## Flags for GetFinalPathNameByHandle +VOLUME_NAME_DOS = 0 +VOLUME_NAME_GUID = 1 +VOLUME_NAME_NT = 2 +VOLUME_NAME_NONE = 4 +FILE_NAME_NORMALIZED = 0 +FILE_NAME_OPENED = 8 + +DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000 +DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 + +# From Dbt.h +# Generated by h2py from Dbt.h +WM_DEVICECHANGE = 0x0219 +BSF_QUERY = 0x00000001 +BSF_IGNORECURRENTTASK = 0x00000002 +BSF_FLUSHDISK = 0x00000004 +BSF_NOHANG = 0x00000008 +BSF_POSTMESSAGE = 0x00000010 +BSF_FORCEIFHUNG = 0x00000020 +BSF_NOTIMEOUTIFNOTHUNG = 0x00000040 +BSF_MSGSRV32ISOK = (-2147483648) +BSF_MSGSRV32ISOK_BIT = 31 +BSM_ALLCOMPONENTS = 0x00000000 +BSM_VXDS = 0x00000001 +BSM_NETDRIVER = 0x00000002 +BSM_INSTALLABLEDRIVERS = 0x00000004 +BSM_APPLICATIONS = 0x00000008 +DBT_APPYBEGIN = 0x0000 +DBT_APPYEND = 0x0001 +DBT_DEVNODES_CHANGED = 0x0007 +DBT_QUERYCHANGECONFIG = 0x0017 +DBT_CONFIGCHANGED = 0x0018 +DBT_CONFIGCHANGECANCELED = 0x0019 +DBT_MONITORCHANGE = 0x001B +DBT_SHELLLOGGEDON = 0x0020 +DBT_CONFIGMGAPI32 = 0x0022 +DBT_VXDINITCOMPLETE = 0x0023 +DBT_VOLLOCKQUERYLOCK = 0x8041 +DBT_VOLLOCKLOCKTAKEN = 0x8042 +DBT_VOLLOCKLOCKFAILED = 0x8043 +DBT_VOLLOCKQUERYUNLOCK = 0x8044 +DBT_VOLLOCKLOCKRELEASED = 0x8045 +DBT_VOLLOCKUNLOCKFAILED = 0x8046 +LOCKP_ALLOW_WRITES = 0x01 +LOCKP_FAIL_WRITES = 0x00 +LOCKP_FAIL_MEM_MAPPING = 0x02 +LOCKP_ALLOW_MEM_MAPPING = 0x00 +LOCKP_USER_MASK = 0x03 +LOCKP_LOCK_FOR_FORMAT = 0x04 +LOCKF_LOGICAL_LOCK = 0x00 +LOCKF_PHYSICAL_LOCK = 0x01 +DBT_NO_DISK_SPACE = 0x0047 +DBT_LOW_DISK_SPACE = 0x0048 +DBT_CONFIGMGPRIVATE = 0x7FFF +DBT_DEVICEARRIVAL = 0x8000 +DBT_DEVICEQUERYREMOVE = 0x8001 +DBT_DEVICEQUERYREMOVEFAILED = 0x8002 +DBT_DEVICEREMOVEPENDING = 0x8003 +DBT_DEVICEREMOVECOMPLETE = 0x8004 +DBT_DEVICETYPESPECIFIC = 0x8005 +DBT_CUSTOMEVENT = 0x8006 +DBT_DEVTYP_OEM = 0x00000000 +DBT_DEVTYP_DEVNODE = 0x00000001 +DBT_DEVTYP_VOLUME = 0x00000002 +DBT_DEVTYP_PORT = 0x00000003 +DBT_DEVTYP_NET = 0x00000004 +DBT_DEVTYP_DEVICEINTERFACE = 0x00000005 +DBT_DEVTYP_HANDLE = 0x00000006 +DBTF_MEDIA = 0x0001 +DBTF_NET = 0x0002 +DBTF_RESOURCE = 0x00000001 +DBTF_XPORT = 0x00000002 +DBTF_SLOWNET = 0x00000004 +DBT_VPOWERDAPI = 0x8100 +DBT_USERDEFINED = 0xFFFF diff --git a/typings/win32helper/__init__.pyi b/typings/win32helper/__init__.pyi new file mode 100644 index 00000000..e69de29b diff --git a/typings/win32helper/ntsecuritycon.pyi b/typings/win32helper/ntsecuritycon.pyi new file mode 100644 index 00000000..716d811d --- /dev/null +++ b/typings/win32helper/ntsecuritycon.pyi @@ -0,0 +1,689 @@ +# Hacked from winnt.h + +DELETE = (65536) +READ_CONTROL = (131072) +WRITE_DAC = (262144) +WRITE_OWNER = (524288) +SYNCHRONIZE = (1048576) +STANDARD_RIGHTS_REQUIRED = (983040) +STANDARD_RIGHTS_READ = (READ_CONTROL) +STANDARD_RIGHTS_WRITE = (READ_CONTROL) +STANDARD_RIGHTS_EXECUTE = (READ_CONTROL) +STANDARD_RIGHTS_ALL = (2031616) +SPECIFIC_RIGHTS_ALL = (65535) +ACCESS_SYSTEM_SECURITY = (16777216) +MAXIMUM_ALLOWED = (33554432) +GENERIC_READ = (-2147483648) +GENERIC_WRITE = (1073741824) +GENERIC_EXECUTE = (536870912) +GENERIC_ALL = (268435456) + +# file security permissions +FILE_READ_DATA= ( 1 ) +FILE_LIST_DIRECTORY= ( 1 ) +FILE_WRITE_DATA= ( 2 ) +FILE_ADD_FILE= ( 2 ) +FILE_APPEND_DATA= ( 4 ) +FILE_ADD_SUBDIRECTORY= ( 4 ) +FILE_CREATE_PIPE_INSTANCE= ( 4 ) +FILE_READ_EA= ( 8 ) +FILE_WRITE_EA= ( 16 ) +FILE_EXECUTE= ( 32 ) +FILE_TRAVERSE= ( 32 ) +FILE_DELETE_CHILD= ( 64 ) +FILE_READ_ATTRIBUTES= ( 128 ) +FILE_WRITE_ATTRIBUTES= ( 256 ) +FILE_ALL_ACCESS= (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 511) +FILE_GENERIC_READ= (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE) +FILE_GENERIC_WRITE= (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE) +FILE_GENERIC_EXECUTE= (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE) + + +SECURITY_NULL_SID_AUTHORITY = (0,0,0,0,0,0) +SECURITY_WORLD_SID_AUTHORITY = (0,0,0,0,0,1) +SECURITY_LOCAL_SID_AUTHORITY = (0,0,0,0,0,2) +SECURITY_CREATOR_SID_AUTHORITY = (0,0,0,0,0,3) +SECURITY_NON_UNIQUE_AUTHORITY = (0,0,0,0,0,4) +SECURITY_RESOURCE_MANAGER_AUTHORITY = (0,0,0,0,0,9) + +SECURITY_NULL_RID = 0 +SECURITY_WORLD_RID = 0 +SECURITY_LOCAL_RID = 0X00000000 + +SECURITY_CREATOR_OWNER_RID = 0 +SECURITY_CREATOR_GROUP_RID = 1 + +SECURITY_CREATOR_OWNER_SERVER_RID = 2 +SECURITY_CREATOR_GROUP_SERVER_RID = 3 +SECURITY_CREATOR_OWNER_RIGHTS_RID = 4 + +# NT well-known SIDs +SECURITY_NT_AUTHORITY = (0,0,0,0,0,5) + +SECURITY_DIALUP_RID = 1 +SECURITY_NETWORK_RID = 2 +SECURITY_BATCH_RID = 3 +SECURITY_INTERACTIVE_RID = 4 +SECURITY_SERVICE_RID = 6 +SECURITY_ANONYMOUS_LOGON_RID = 7 +SECURITY_PROXY_RID = 8 +SECURITY_SERVER_LOGON_RID = 9 + +SECURITY_LOGON_IDS_RID = 5 +SECURITY_LOGON_IDS_RID_COUNT = 3 + +SECURITY_LOCAL_SYSTEM_RID = 18 + +SECURITY_NT_NON_UNIQUE = 21 + +SECURITY_BUILTIN_DOMAIN_RID = 32 + +# well-known domain relative sub-authority values (RIDs)... +DOMAIN_USER_RID_ADMIN = 500 +DOMAIN_USER_RID_GUEST = 501 +DOMAIN_USER_RID_KRBTGT = 502 +DOMAIN_USER_RID_MAX = 999 + +# well-known groups ... +DOMAIN_GROUP_RID_ADMINS = 512 +DOMAIN_GROUP_RID_USERS = 513 +DOMAIN_GROUP_RID_GUESTS = 514 +DOMAIN_GROUP_RID_COMPUTERS = 515 +DOMAIN_GROUP_RID_CONTROLLERS = 516 +DOMAIN_GROUP_RID_CERT_ADMINS = 517 +DOMAIN_GROUP_RID_SCHEMA_ADMINS = 518 +DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 519 +DOMAIN_GROUP_RID_POLICY_ADMINS = 520 +DOMAIN_GROUP_RID_READONLY_CONTROLLERS = 521 + +# well-known aliases ... +DOMAIN_ALIAS_RID_ADMINS = 544 +DOMAIN_ALIAS_RID_USERS = 545 +DOMAIN_ALIAS_RID_GUESTS = 546 +DOMAIN_ALIAS_RID_POWER_USERS = 547 +DOMAIN_ALIAS_RID_ACCOUNT_OPS = 548 +DOMAIN_ALIAS_RID_SYSTEM_OPS = 549 +DOMAIN_ALIAS_RID_PRINT_OPS = 550 +DOMAIN_ALIAS_RID_BACKUP_OPS = 551 +DOMAIN_ALIAS_RID_REPLICATOR = 552 +DOMAIN_ALIAS_RID_RAS_SERVERS = 553 +DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 554 +DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 555 +DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 556 +DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 557 +DOMAIN_ALIAS_RID_MONITORING_USERS = 558 +DOMAIN_ALIAS_RID_LOGGING_USERS = 559 +DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 560 +DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 561 +DOMAIN_ALIAS_RID_DCOM_USERS = 562 +DOMAIN_ALIAS_RID_IUSERS = 568 +DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 569 +DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 571 +DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 572 +DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 573 + +SECURITY_MANDATORY_LABEL_AUTHORITY = (0,0,0,0,0,16) +SECURITY_MANDATORY_UNTRUSTED_RID = 0x00000000 +SECURITY_MANDATORY_LOW_RID = 0x00001000 +SECURITY_MANDATORY_MEDIUM_RID = 0x00002000 +SECURITY_MANDATORY_HIGH_RID = 0x00003000 +SECURITY_MANDATORY_SYSTEM_RID = 0x00004000 +SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 0x00005000 +SECURITY_MANDATORY_MAXIMUM_USER_RID = SECURITY_MANDATORY_SYSTEM_RID + +SYSTEM_LUID = (999, 0) +ANONYMOUS_LOGON_LUID = (998, 0) +LOCALSERVICE_LUID = (997, 0) +NETWORKSERVICE_LUID = (996, 0) +IUSER_LUID = (995, 0) + +# Group attributes + +SE_GROUP_MANDATORY = 1 +SE_GROUP_ENABLED_BY_DEFAULT = 2 +SE_GROUP_ENABLED = 4 +SE_GROUP_OWNER = 8 +SE_GROUP_USE_FOR_DENY_ONLY = 16 +SE_GROUP_INTEGRITY = 32 +SE_GROUP_INTEGRITY_ENABLED = 64 +SE_GROUP_RESOURCE = 536870912 +SE_GROUP_LOGON_ID = -1073741824 + + +# User attributes +# (None yet defined.) + +# ACE types +ACCESS_MIN_MS_ACE_TYPE = (0) +ACCESS_ALLOWED_ACE_TYPE = (0) +ACCESS_DENIED_ACE_TYPE = (1) +SYSTEM_AUDIT_ACE_TYPE = (2) +SYSTEM_ALARM_ACE_TYPE = (3) +ACCESS_MAX_MS_V2_ACE_TYPE = (3) +ACCESS_ALLOWED_COMPOUND_ACE_TYPE = (4) +ACCESS_MAX_MS_V3_ACE_TYPE = (4) +ACCESS_MIN_MS_OBJECT_ACE_TYPE = (5) +ACCESS_ALLOWED_OBJECT_ACE_TYPE = (5) +ACCESS_DENIED_OBJECT_ACE_TYPE = (6) +SYSTEM_AUDIT_OBJECT_ACE_TYPE = (7) +SYSTEM_ALARM_OBJECT_ACE_TYPE = (8) +ACCESS_MAX_MS_OBJECT_ACE_TYPE = (8) +ACCESS_MAX_MS_V4_ACE_TYPE = (8) +ACCESS_MAX_MS_ACE_TYPE = (8) +ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 9 +ACCESS_DENIED_CALLBACK_ACE_TYPE = 10 +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 11 +ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 12 +SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 13 +SYSTEM_ALARM_CALLBACK_ACE_TYPE = 14 +SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 15 +SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 16 +SYSTEM_MANDATORY_LABEL_ACE_TYPE = 17 +ACCESS_MAX_MS_V5_ACE_TYPE = 17 + +# The following are the inherit flags that go into the AceFlags field +# of an Ace header. + +OBJECT_INHERIT_ACE = 1 +CONTAINER_INHERIT_ACE = 2 +NO_PROPAGATE_INHERIT_ACE = 4 +INHERIT_ONLY_ACE = 8 +VALID_INHERIT_FLAGS = 15 + + +SUCCESSFUL_ACCESS_ACE_FLAG = 64 +FAILED_ACCESS_ACE_FLAG = 128 + +SE_OWNER_DEFAULTED = 1 +SE_GROUP_DEFAULTED = 2 +SE_DACL_PRESENT = 4 +SE_DACL_DEFAULTED = 8 +SE_SACL_PRESENT = 16 +SE_SACL_DEFAULTED = 32 +SE_SELF_RELATIVE = 32768 + + +SE_PRIVILEGE_ENABLED_BY_DEFAULT = 1 +SE_PRIVILEGE_ENABLED = 2 +SE_PRIVILEGE_USED_FOR_ACCESS = -2147483648 + +PRIVILEGE_SET_ALL_NECESSARY = 1 + +# NT Defined Privileges + +SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" +SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" +SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" +SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" +SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" +SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" +SE_TCB_NAME = "SeTcbPrivilege" +SE_SECURITY_NAME = "SeSecurityPrivilege" +SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" +SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" +SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" +SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" +SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" +SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" +SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" +SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" +SE_BACKUP_NAME = "SeBackupPrivilege" +SE_RESTORE_NAME = "SeRestorePrivilege" +SE_SHUTDOWN_NAME = "SeShutdownPrivilege" +SE_DEBUG_NAME = "SeDebugPrivilege" +SE_AUDIT_NAME = "SeAuditPrivilege" +SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" +SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" +SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" + + +# Enum SECURITY_IMPERSONATION_LEVEL: +SecurityAnonymous = 0 +SecurityIdentification = 1 +SecurityImpersonation = 2 +SecurityDelegation = 3 + +SECURITY_MAX_IMPERSONATION_LEVEL = SecurityDelegation + +DEFAULT_IMPERSONATION_LEVEL = SecurityImpersonation + +TOKEN_ASSIGN_PRIMARY = 1 +TOKEN_DUPLICATE = 2 +TOKEN_IMPERSONATE = 4 +TOKEN_QUERY = 8 +TOKEN_QUERY_SOURCE = 16 +TOKEN_ADJUST_PRIVILEGES = 32 +TOKEN_ADJUST_GROUPS = 64 +TOKEN_ADJUST_DEFAULT = 128 + +TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED |\ + TOKEN_ASSIGN_PRIMARY |\ + TOKEN_DUPLICATE |\ + TOKEN_IMPERSONATE |\ + TOKEN_QUERY |\ + TOKEN_QUERY_SOURCE |\ + TOKEN_ADJUST_PRIVILEGES |\ + TOKEN_ADJUST_GROUPS |\ + TOKEN_ADJUST_DEFAULT) + + +TOKEN_READ = (STANDARD_RIGHTS_READ |\ + TOKEN_QUERY) + + +TOKEN_WRITE = (STANDARD_RIGHTS_WRITE |\ + TOKEN_ADJUST_PRIVILEGES |\ + TOKEN_ADJUST_GROUPS |\ + TOKEN_ADJUST_DEFAULT) + +TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE) + +SidTypeUser = 1 +SidTypeGroup = 2 +SidTypeDomain =3 +SidTypeAlias = 4 +SidTypeWellKnownGroup = 5 +SidTypeDeletedAccount = 6 +SidTypeInvalid = 7 +SidTypeUnknown = 8 +SidTypeComputer = 9 +SidTypeLabel = 10 + +# Token types +TokenPrimary = 1 +TokenImpersonation = 2 + +# TOKEN_INFORMATION_CLASS, used with Get/SetTokenInformation +TokenUser = 1 +TokenGroups = 2 +TokenPrivileges = 3 +TokenOwner = 4 +TokenPrimaryGroup = 5 +TokenDefaultDacl = 6 +TokenSource = 7 +TokenType = 8 +TokenImpersonationLevel = 9 +TokenStatistics = 10 +TokenRestrictedSids = 11 +TokenSessionId = 12 +TokenGroupsAndPrivileges = 13 +TokenSessionReference = 14 +TokenSandBoxInert = 15 +TokenAuditPolicy = 16 +TokenOrigin = 17 +TokenElevationType = 18 +TokenLinkedToken = 19 +TokenElevation = 20 +TokenHasRestrictions = 21 +TokenAccessInformation = 22 +TokenVirtualizationAllowed = 23 +TokenVirtualizationEnabled = 24 +TokenIntegrityLevel = 25 +TokenUIAccess = 26 +TokenMandatoryPolicy = 27 +TokenLogonSid = 28 + +# DirectoryService related constants. +# Generated by h2py from NtDsAPI.h +DS_BEHAVIOR_WIN2000 = 0 +DS_BEHAVIOR_WIN2003_WITH_MIXED_DOMAINS = 1 +DS_BEHAVIOR_WIN2003 = 2 +DS_SYNCED_EVENT_NAME = "NTDSInitialSyncsCompleted" +ACTRL_DS_OPEN = 0x00000000 +ACTRL_DS_CREATE_CHILD = 0x00000001 +ACTRL_DS_DELETE_CHILD = 0x00000002 +ACTRL_DS_LIST = 0x00000004 +ACTRL_DS_SELF = 0x00000008 +ACTRL_DS_READ_PROP = 0x00000010 +ACTRL_DS_WRITE_PROP = 0x00000020 +ACTRL_DS_DELETE_TREE = 0x00000040 +ACTRL_DS_LIST_OBJECT = 0x00000080 +ACTRL_DS_CONTROL_ACCESS = 0x00000100 +NTDSAPI_BIND_ALLOW_DELEGATION = (0x00000001) +DS_REPSYNC_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPSYNC_WRITEABLE = 0x00000002 +DS_REPSYNC_PERIODIC = 0x00000004 +DS_REPSYNC_INTERSITE_MESSAGING = 0x00000008 +DS_REPSYNC_ALL_SOURCES = 0x00000010 +DS_REPSYNC_FULL = 0x00000020 +DS_REPSYNC_URGENT = 0x00000040 +DS_REPSYNC_NO_DISCARD = 0x00000080 +DS_REPSYNC_FORCE = 0x00000100 +DS_REPSYNC_ADD_REFERENCE = 0x00000200 +DS_REPSYNC_NEVER_COMPLETED = 0x00000400 +DS_REPSYNC_TWO_WAY = 0x00000800 +DS_REPSYNC_NEVER_NOTIFY = 0x00001000 +DS_REPSYNC_INITIAL = 0x00002000 +DS_REPSYNC_USE_COMPRESSION = 0x00004000 +DS_REPSYNC_ABANDONED = 0x00008000 +DS_REPSYNC_INITIAL_IN_PROGRESS = 0x00010000 +DS_REPSYNC_PARTIAL_ATTRIBUTE_SET = 0x00020000 +DS_REPSYNC_REQUEUE = 0x00040000 +DS_REPSYNC_NOTIFICATION = 0x00080000 +DS_REPSYNC_ASYNCHRONOUS_REPLICA = 0x00100000 +DS_REPSYNC_CRITICAL = 0x00200000 +DS_REPSYNC_FULL_IN_PROGRESS = 0x00400000 +DS_REPSYNC_PREEMPTED = 0x00800000 +DS_REPADD_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPADD_WRITEABLE = 0x00000002 +DS_REPADD_INITIAL = 0x00000004 +DS_REPADD_PERIODIC = 0x00000008 +DS_REPADD_INTERSITE_MESSAGING = 0x00000010 +DS_REPADD_ASYNCHRONOUS_REPLICA = 0x00000020 +DS_REPADD_DISABLE_NOTIFICATION = 0x00000040 +DS_REPADD_DISABLE_PERIODIC = 0x00000080 +DS_REPADD_USE_COMPRESSION = 0x00000100 +DS_REPADD_NEVER_NOTIFY = 0x00000200 +DS_REPADD_TWO_WAY = 0x00000400 +DS_REPADD_CRITICAL = 0x00000800 +DS_REPDEL_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPDEL_WRITEABLE = 0x00000002 +DS_REPDEL_INTERSITE_MESSAGING = 0x00000004 +DS_REPDEL_IGNORE_ERRORS = 0x00000008 +DS_REPDEL_LOCAL_ONLY = 0x00000010 +DS_REPDEL_NO_SOURCE = 0x00000020 +DS_REPDEL_REF_OK = 0x00000040 +DS_REPMOD_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPMOD_WRITEABLE = 0x00000002 +DS_REPMOD_UPDATE_FLAGS = 0x00000001 +DS_REPMOD_UPDATE_ADDRESS = 0x00000002 +DS_REPMOD_UPDATE_SCHEDULE = 0x00000004 +DS_REPMOD_UPDATE_RESULT = 0x00000008 +DS_REPMOD_UPDATE_TRANSPORT = 0x00000010 +DS_REPUPD_ASYNCHRONOUS_OPERATION = 0x00000001 +DS_REPUPD_WRITEABLE = 0x00000002 +DS_REPUPD_ADD_REFERENCE = 0x00000004 +DS_REPUPD_DELETE_REFERENCE = 0x00000008 +DS_INSTANCETYPE_IS_NC_HEAD = 0x00000001 +DS_INSTANCETYPE_NC_IS_WRITEABLE = 0x00000004 +DS_INSTANCETYPE_NC_COMING = 0x00000010 +DS_INSTANCETYPE_NC_GOING = 0x00000020 +NTDSDSA_OPT_IS_GC = ( 1 << 0 ) +NTDSDSA_OPT_DISABLE_INBOUND_REPL = ( 1 << 1 ) +NTDSDSA_OPT_DISABLE_OUTBOUND_REPL = ( 1 << 2 ) +NTDSDSA_OPT_DISABLE_NTDSCONN_XLATE = ( 1 << 3 ) +NTDSCONN_OPT_IS_GENERATED = ( 1 << 0 ) +NTDSCONN_OPT_TWOWAY_SYNC = ( 1 << 1 ) +NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT = (1 << 2 ) +NTDSCONN_OPT_USE_NOTIFY = (1 << 3) +NTDSCONN_OPT_DISABLE_INTERSITE_COMPRESSION = (1 << 4) +NTDSCONN_OPT_USER_OWNED_SCHEDULE = (1 << 5) +NTDSCONN_KCC_NO_REASON = ( 0 ) +NTDSCONN_KCC_GC_TOPOLOGY = ( 1 << 0 ) +NTDSCONN_KCC_RING_TOPOLOGY = ( 1 << 1 ) +NTDSCONN_KCC_MINIMIZE_HOPS_TOPOLOGY = ( 1 << 2 ) +NTDSCONN_KCC_STALE_SERVERS_TOPOLOGY = ( 1 << 3 ) +NTDSCONN_KCC_OSCILLATING_CONNECTION_TOPOLOGY = ( 1 << 4 ) +NTDSCONN_KCC_INTERSITE_GC_TOPOLOGY = (1 << 5) +NTDSCONN_KCC_INTERSITE_TOPOLOGY = (1 << 6) +NTDSCONN_KCC_SERVER_FAILOVER_TOPOLOGY = (1 << 7) +NTDSCONN_KCC_SITE_FAILOVER_TOPOLOGY = (1 << 8) +NTDSCONN_KCC_REDUNDANT_SERVER_TOPOLOGY = (1 << 9) +FRSCONN_PRIORITY_MASK = 0x70000000 +FRSCONN_MAX_PRIORITY = 0x8 +NTDSCONN_OPT_IGNORE_SCHEDULE_MASK = (-2147483648) + +NTDSSETTINGS_OPT_IS_AUTO_TOPOLOGY_DISABLED = ( 1 << 0 ) +NTDSSETTINGS_OPT_IS_TOPL_CLEANUP_DISABLED = ( 1 << 1 ) +NTDSSETTINGS_OPT_IS_TOPL_MIN_HOPS_DISABLED = ( 1 << 2 ) +NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED = ( 1 << 3 ) +NTDSSETTINGS_OPT_IS_INTER_SITE_AUTO_TOPOLOGY_DISABLED = ( 1 << 4 ) +NTDSSETTINGS_OPT_IS_GROUP_CACHING_ENABLED = ( 1 << 5 ) +NTDSSETTINGS_OPT_FORCE_KCC_WHISTLER_BEHAVIOR = ( 1 << 6 ) +NTDSSETTINGS_OPT_FORCE_KCC_W2K_ELECTION = ( 1 << 7 ) +NTDSSETTINGS_OPT_IS_RAND_BH_SELECTION_DISABLED = ( 1 << 8 ) +NTDSSETTINGS_OPT_IS_SCHEDULE_HASHING_ENABLED = ( 1 << 9 ) +NTDSSETTINGS_OPT_IS_REDUNDANT_SERVER_TOPOLOGY_ENABLED = ( 1 << 10 ) +NTDSSETTINGS_DEFAULT_SERVER_REDUNDANCY = 2 +NTDSTRANSPORT_OPT_IGNORE_SCHEDULES = ( 1 << 0 ) +NTDSTRANSPORT_OPT_BRIDGES_REQUIRED = (1 << 1 ) +NTDSSITECONN_OPT_USE_NOTIFY = ( 1 << 0 ) +NTDSSITECONN_OPT_TWOWAY_SYNC = ( 1 << 1 ) +NTDSSITECONN_OPT_DISABLE_COMPRESSION = ( 1 << 2 ) +NTDSSITELINK_OPT_USE_NOTIFY = ( 1 << 0 ) +NTDSSITELINK_OPT_TWOWAY_SYNC = ( 1 << 1 ) +NTDSSITELINK_OPT_DISABLE_COMPRESSION = ( 1 << 2 ) +GUID_USERS_CONTAINER_A = "a9d1ca15768811d1aded00c04fd8d5cd" +GUID_COMPUTRS_CONTAINER_A = "aa312825768811d1aded00c04fd8d5cd" +GUID_SYSTEMS_CONTAINER_A = "ab1d30f3768811d1aded00c04fd8d5cd" +GUID_DOMAIN_CONTROLLERS_CONTAINER_A = "a361b2ffffd211d1aa4b00c04fd7d83a" +GUID_INFRASTRUCTURE_CONTAINER_A = "2fbac1870ade11d297c400c04fd8d5cd" +GUID_DELETED_OBJECTS_CONTAINER_A = "18e2ea80684f11d2b9aa00c04f79f805" +GUID_LOSTANDFOUND_CONTAINER_A = "ab8153b7768811d1aded00c04fd8d5cd" +GUID_FOREIGNSECURITYPRINCIPALS_CONTAINER_A = "22b70c67d56e4efb91e9300fca3dc1aa" +GUID_PROGRAM_DATA_CONTAINER_A = "09460c08ae1e4a4ea0f64aee7daa1e5a" +GUID_MICROSOFT_PROGRAM_DATA_CONTAINER_A = "f4be92a4c777485e878e9421d53087db" +GUID_NTDS_QUOTAS_CONTAINER_A = "6227f0af1fc2410d8e3bb10615bb5b0f" +GUID_USERS_CONTAINER_BYTE = "\xa9\xd1\xca\x15\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" +GUID_COMPUTRS_CONTAINER_BYTE = "\xaa\x31\x28\x25\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" +GUID_SYSTEMS_CONTAINER_BYTE = "\xab\x1d\x30\xf3\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" +GUID_DOMAIN_CONTROLLERS_CONTAINER_BYTE = "\xa3\x61\xb2\xff\xff\xd2\x11\xd1\xaa\x4b\x00\xc0\x4f\xd7\xd8\x3a" +GUID_INFRASTRUCTURE_CONTAINER_BYTE = "\x2f\xba\xc1\x87\x0a\xde\x11\xd2\x97\xc4\x00\xc0\x4f\xd8\xd5\xcd" +GUID_DELETED_OBJECTS_CONTAINER_BYTE = "\x18\xe2\xea\x80\x68\x4f\x11\xd2\xb9\xaa\x00\xc0\x4f\x79\xf8\x05" +GUID_LOSTANDFOUND_CONTAINER_BYTE = "\xab\x81\x53\xb7\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" +GUID_FOREIGNSECURITYPRINCIPALS_CONTAINER_BYTE = "\x22\xb7\x0c\x67\xd5\x6e\x4e\xfb\x91\xe9\x30\x0f\xca\x3d\xc1\xaa" +GUID_PROGRAM_DATA_CONTAINER_BYTE = "\x09\x46\x0c\x08\xae\x1e\x4a\x4e\xa0\xf6\x4a\xee\x7d\xaa\x1e\x5a" +GUID_MICROSOFT_PROGRAM_DATA_CONTAINER_BYTE = "\xf4\xbe\x92\xa4\xc7\x77\x48\x5e\x87\x8e\x94\x21\xd5\x30\x87\xdb" +GUID_NTDS_QUOTAS_CONTAINER_BYTE = "\x62\x27\xf0\xaf\x1f\xc2\x41\x0d\x8e\x3b\xb1\x06\x15\xbb\x5b\x0f" +DS_REPSYNCALL_NO_OPTIONS = 0x00000000 +DS_REPSYNCALL_ABORT_IF_SERVER_UNAVAILABLE = 0x00000001 +DS_REPSYNCALL_SYNC_ADJACENT_SERVERS_ONLY = 0x00000002 +DS_REPSYNCALL_ID_SERVERS_BY_DN = 0x00000004 +DS_REPSYNCALL_DO_NOT_SYNC = 0x00000008 +DS_REPSYNCALL_SKIP_INITIAL_CHECK = 0x00000010 +DS_REPSYNCALL_PUSH_CHANGES_OUTWARD = 0x00000020 +DS_REPSYNCALL_CROSS_SITE_BOUNDARIES = 0x00000040 +DS_LIST_DSA_OBJECT_FOR_SERVER = 0 +DS_LIST_DNS_HOST_NAME_FOR_SERVER = 1 +DS_LIST_ACCOUNT_OBJECT_FOR_SERVER = 2 +DS_ROLE_SCHEMA_OWNER = 0 +DS_ROLE_DOMAIN_OWNER = 1 +DS_ROLE_PDC_OWNER = 2 +DS_ROLE_RID_OWNER = 3 +DS_ROLE_INFRASTRUCTURE_OWNER = 4 +DS_SCHEMA_GUID_NOT_FOUND = 0 +DS_SCHEMA_GUID_ATTR = 1 +DS_SCHEMA_GUID_ATTR_SET = 2 +DS_SCHEMA_GUID_CLASS = 3 +DS_SCHEMA_GUID_CONTROL_RIGHT = 4 +DS_KCC_FLAG_ASYNC_OP = (1 << 0) +DS_KCC_FLAG_DAMPED = (1 << 1) +DS_EXIST_ADVISORY_MODE = (0x1) +DS_REPL_INFO_FLAG_IMPROVE_LINKED_ATTRS = (0x00000001) +DS_REPL_NBR_WRITEABLE = (0x00000010) +DS_REPL_NBR_SYNC_ON_STARTUP = (0x00000020) +DS_REPL_NBR_DO_SCHEDULED_SYNCS = (0x00000040) +DS_REPL_NBR_USE_ASYNC_INTERSITE_TRANSPORT = (0x00000080) +DS_REPL_NBR_TWO_WAY_SYNC = (0x00000200) +DS_REPL_NBR_RETURN_OBJECT_PARENTS = (0x00000800) +DS_REPL_NBR_FULL_SYNC_IN_PROGRESS = (0x00010000) +DS_REPL_NBR_FULL_SYNC_NEXT_PACKET = (0x00020000) +DS_REPL_NBR_NEVER_SYNCED = (0x00200000) +DS_REPL_NBR_PREEMPTED = (0x01000000) +DS_REPL_NBR_IGNORE_CHANGE_NOTIFICATIONS = (0x04000000) +DS_REPL_NBR_DISABLE_SCHEDULED_SYNC = (0x08000000) +DS_REPL_NBR_COMPRESS_CHANGES = (0x10000000) +DS_REPL_NBR_NO_CHANGE_NOTIFICATIONS = (0x20000000) +DS_REPL_NBR_PARTIAL_ATTRIBUTE_SET = (0x40000000) +DS_REPL_NBR_MODIFIABLE_MASK = \ + ( \ + DS_REPL_NBR_SYNC_ON_STARTUP | \ + DS_REPL_NBR_DO_SCHEDULED_SYNCS | \ + DS_REPL_NBR_TWO_WAY_SYNC | \ + DS_REPL_NBR_IGNORE_CHANGE_NOTIFICATIONS | \ + DS_REPL_NBR_DISABLE_SCHEDULED_SYNC | \ + DS_REPL_NBR_COMPRESS_CHANGES | \ + DS_REPL_NBR_NO_CHANGE_NOTIFICATIONS \ + ) + +# from enum DS_NAME_FORMAT +DS_UNKNOWN_NAME = 0 +DS_FQDN_1779_NAME = 1 +DS_NT4_ACCOUNT_NAME = 2 +DS_DISPLAY_NAME = 3 +DS_UNIQUE_ID_NAME = 6 +DS_CANONICAL_NAME = 7 +DS_USER_PRINCIPAL_NAME = 8 +DS_CANONICAL_NAME_EX = 9 +DS_SERVICE_PRINCIPAL_NAME = 10 +DS_SID_OR_SID_HISTORY_NAME = 11 +DS_DNS_DOMAIN_NAME = 12 + +DS_DOMAIN_SIMPLE_NAME = DS_USER_PRINCIPAL_NAME +DS_ENTERPRISE_SIMPLE_NAME = DS_USER_PRINCIPAL_NAME + +# from enum DS_NAME_FLAGS +DS_NAME_NO_FLAGS = 0x0 +DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1 +DS_NAME_FLAG_EVAL_AT_DC = 0x2 +DS_NAME_FLAG_GCVERIFY = 0x4 +DS_NAME_FLAG_TRUST_REFERRAL = 0x8 + +# from enum DS_NAME_ERROR +DS_NAME_NO_ERROR = 0 +DS_NAME_ERROR_RESOLVING = 1 +DS_NAME_ERROR_NOT_FOUND = 2 +DS_NAME_ERROR_NOT_UNIQUE = 3 +DS_NAME_ERROR_NO_MAPPING = 4 +DS_NAME_ERROR_DOMAIN_ONLY = 5 +DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 6 +DS_NAME_ERROR_TRUST_REFERRAL = 7 + + +# from enum DS_SPN_NAME_TYPE +DS_SPN_DNS_HOST = 0 +DS_SPN_DN_HOST = 1 +DS_SPN_NB_HOST = 2 +DS_SPN_DOMAIN = 3 +DS_SPN_NB_DOMAIN = 4 +DS_SPN_SERVICE = 5 + +# from enum DS_SPN_WRITE_OP +DS_SPN_ADD_SPN_OP = 0 +DS_SPN_REPLACE_SPN_OP = 1 +DS_SPN_DELETE_SPN_OP = 2 + +# Generated by h2py from DsGetDC.h +DS_FORCE_REDISCOVERY = 0x00000001 +DS_DIRECTORY_SERVICE_REQUIRED = 0x00000010 +DS_DIRECTORY_SERVICE_PREFERRED = 0x00000020 +DS_GC_SERVER_REQUIRED = 0x00000040 +DS_PDC_REQUIRED = 0x00000080 +DS_BACKGROUND_ONLY = 0x00000100 +DS_IP_REQUIRED = 0x00000200 +DS_KDC_REQUIRED = 0x00000400 +DS_TIMESERV_REQUIRED = 0x00000800 +DS_WRITABLE_REQUIRED = 0x00001000 +DS_GOOD_TIMESERV_PREFERRED = 0x00002000 +DS_AVOID_SELF = 0x00004000 +DS_ONLY_LDAP_NEEDED = 0x00008000 +DS_IS_FLAT_NAME = 0x00010000 +DS_IS_DNS_NAME = 0x00020000 +DS_RETURN_DNS_NAME = 0x40000000 +DS_RETURN_FLAT_NAME = (-2147483648) +DSGETDC_VALID_FLAGS = ( \ + DS_FORCE_REDISCOVERY | \ + DS_DIRECTORY_SERVICE_REQUIRED | \ + DS_DIRECTORY_SERVICE_PREFERRED | \ + DS_GC_SERVER_REQUIRED | \ + DS_PDC_REQUIRED | \ + DS_BACKGROUND_ONLY | \ + DS_IP_REQUIRED | \ + DS_KDC_REQUIRED | \ + DS_TIMESERV_REQUIRED | \ + DS_WRITABLE_REQUIRED | \ + DS_GOOD_TIMESERV_PREFERRED | \ + DS_AVOID_SELF | \ + DS_ONLY_LDAP_NEEDED | \ + DS_IS_FLAT_NAME | \ + DS_IS_DNS_NAME | \ + DS_RETURN_FLAT_NAME | \ + DS_RETURN_DNS_NAME ) +DS_INET_ADDRESS = 1 +DS_NETBIOS_ADDRESS = 2 +DS_PDC_FLAG = 0x00000001 +DS_GC_FLAG = 0x00000004 +DS_LDAP_FLAG = 0x00000008 +DS_DS_FLAG = 0x00000010 +DS_KDC_FLAG = 0x00000020 +DS_TIMESERV_FLAG = 0x00000040 +DS_CLOSEST_FLAG = 0x00000080 +DS_WRITABLE_FLAG = 0x00000100 +DS_GOOD_TIMESERV_FLAG = 0x00000200 +DS_NDNC_FLAG = 0x00000400 +DS_PING_FLAGS = 0x0000FFFF +DS_DNS_CONTROLLER_FLAG = 0x20000000 +DS_DNS_DOMAIN_FLAG = 0x40000000 +DS_DNS_FOREST_FLAG = (-2147483648) +DS_DOMAIN_IN_FOREST = 0x0001 +DS_DOMAIN_DIRECT_OUTBOUND = 0x0002 +DS_DOMAIN_TREE_ROOT = 0x0004 +DS_DOMAIN_PRIMARY = 0x0008 +DS_DOMAIN_NATIVE_MODE = 0x0010 +DS_DOMAIN_DIRECT_INBOUND = 0x0020 +DS_DOMAIN_VALID_FLAGS = ( \ + DS_DOMAIN_IN_FOREST | \ + DS_DOMAIN_DIRECT_OUTBOUND | \ + DS_DOMAIN_TREE_ROOT | \ + DS_DOMAIN_PRIMARY | \ + DS_DOMAIN_NATIVE_MODE | \ + DS_DOMAIN_DIRECT_INBOUND ) +DS_GFTI_UPDATE_TDO = 0x1 +DS_GFTI_VALID_FLAGS = 0x1 +DS_ONLY_DO_SITE_NAME = 0x01 +DS_NOTIFY_AFTER_SITE_RECORDS = 0x02 +DS_OPEN_VALID_OPTION_FLAGS = ( DS_ONLY_DO_SITE_NAME | DS_NOTIFY_AFTER_SITE_RECORDS ) +DS_OPEN_VALID_FLAGS = ( \ + DS_FORCE_REDISCOVERY | \ + DS_ONLY_LDAP_NEEDED | \ + DS_KDC_REQUIRED | \ + DS_PDC_REQUIRED | \ + DS_GC_SERVER_REQUIRED | \ + DS_WRITABLE_REQUIRED ) + +## from aclui.h +# SI_OBJECT_INFO.dwFlags +SI_EDIT_PERMS = 0x00000000 +SI_EDIT_OWNER = 0x00000001 +SI_EDIT_AUDITS = 0x00000002 +SI_CONTAINER = 0x00000004 +SI_READONLY = 0x00000008 +SI_ADVANCED = 0x00000010 +SI_RESET = 0x00000020 +SI_OWNER_READONLY = 0x00000040 +SI_EDIT_PROPERTIES = 0x00000080 +SI_OWNER_RECURSE = 0x00000100 +SI_NO_ACL_PROTECT = 0x00000200 +SI_NO_TREE_APPLY = 0x00000400 +SI_PAGE_TITLE = 0x00000800 +SI_SERVER_IS_DC = 0x00001000 +SI_RESET_DACL_TREE = 0x00004000 +SI_RESET_SACL_TREE = 0x00008000 +SI_OBJECT_GUID = 0x00010000 +SI_EDIT_EFFECTIVE = 0x00020000 +SI_RESET_DACL = 0x00040000 +SI_RESET_SACL = 0x00080000 +SI_RESET_OWNER = 0x00100000 +SI_NO_ADDITIONAL_PERMISSION = 0x00200000 +SI_MAY_WRITE = 0x10000000 +SI_EDIT_ALL = (SI_EDIT_PERMS | SI_EDIT_OWNER | SI_EDIT_AUDITS) +SI_AUDITS_ELEVATION_REQUIRED = 0x02000000 +SI_VIEW_ONLY = 0x00400000 +SI_OWNER_ELEVATION_REQUIRED = 0x04000000 +SI_PERMS_ELEVATION_REQUIRED = 0x01000000 + +# SI_ACCESS.dwFlags +SI_ACCESS_SPECIFIC = 0x00010000 +SI_ACCESS_GENERAL = 0x00020000 +SI_ACCESS_CONTAINER = 0x00040000 +SI_ACCESS_PROPERTY = 0x00080000 + +# SI_PAGE_TYPE enum +SI_PAGE_PERM = 0 +SI_PAGE_ADVPERM = 1 +SI_PAGE_AUDIT = 2 +SI_PAGE_OWNER = 3 +SI_PAGE_EFFECTIVE =4 + +CFSTR_ACLUI_SID_INFO_LIST = "CFSTR_ACLUI_SID_INFO_LIST" +PSPCB_SI_INITDIALOG = 1025 ## WM_USER+1 diff --git a/typings/win32helper/sspicon.pyi b/typings/win32helper/sspicon.pyi new file mode 100644 index 00000000..1e61d498 --- /dev/null +++ b/typings/win32helper/sspicon.pyi @@ -0,0 +1,479 @@ +# Generated by h2py from c:\microsoft sdk\include\sspi.h +ISSP_LEVEL = 32 +ISSP_MODE = 1 +ISSP_LEVEL = 32 +ISSP_MODE = 0 +ISSP_LEVEL = 32 +ISSP_MODE = 1 +def SEC_SUCCESS(Status): return ((Status) >= 0) + +SECPKG_FLAG_INTEGRITY = 1 +SECPKG_FLAG_PRIVACY = 2 +SECPKG_FLAG_TOKEN_ONLY = 4 +SECPKG_FLAG_DATAGRAM = 8 +SECPKG_FLAG_CONNECTION = 16 +SECPKG_FLAG_MULTI_REQUIRED = 32 +SECPKG_FLAG_CLIENT_ONLY = 64 +SECPKG_FLAG_EXTENDED_ERROR = 128 +SECPKG_FLAG_IMPERSONATION = 256 +SECPKG_FLAG_ACCEPT_WIN32_NAME = 512 +SECPKG_FLAG_STREAM = 1024 +SECPKG_FLAG_NEGOTIABLE = 2048 +SECPKG_FLAG_GSS_COMPATIBLE = 4096 +SECPKG_FLAG_LOGON = 8192 +SECPKG_FLAG_ASCII_BUFFERS = 16384 +SECPKG_FLAG_FRAGMENT = 32768 +SECPKG_FLAG_MUTUAL_AUTH = 65536 +SECPKG_FLAG_DELEGATION = 131072 +SECPKG_FLAG_READONLY_WITH_CHECKSUM = 262144 +SECPKG_ID_NONE = 65535 + +SECBUFFER_VERSION = 0 +SECBUFFER_EMPTY = 0 +SECBUFFER_DATA = 1 +SECBUFFER_TOKEN = 2 +SECBUFFER_PKG_PARAMS = 3 +SECBUFFER_MISSING = 4 +SECBUFFER_EXTRA = 5 +SECBUFFER_STREAM_TRAILER = 6 +SECBUFFER_STREAM_HEADER = 7 +SECBUFFER_NEGOTIATION_INFO = 8 +SECBUFFER_PADDING = 9 +SECBUFFER_STREAM = 10 +SECBUFFER_MECHLIST = 11 +SECBUFFER_MECHLIST_SIGNATURE = 12 +SECBUFFER_TARGET = 13 +SECBUFFER_CHANNEL_BINDINGS = 14 +SECBUFFER_ATTRMASK = (-268435456) +SECBUFFER_READONLY = (-2147483648) +SECBUFFER_READONLY_WITH_CHECKSUM = 268435456 +SECBUFFER_RESERVED = 1610612736 + +SECURITY_NATIVE_DREP = 16 +SECURITY_NETWORK_DREP = 0 + +SECPKG_CRED_INBOUND = 1 +SECPKG_CRED_OUTBOUND = 2 +SECPKG_CRED_BOTH = 3 +SECPKG_CRED_DEFAULT = 4 +SECPKG_CRED_RESERVED = -268435456 + +ISC_REQ_DELEGATE = 1 +ISC_REQ_MUTUAL_AUTH = 2 +ISC_REQ_REPLAY_DETECT = 4 +ISC_REQ_SEQUENCE_DETECT = 8 +ISC_REQ_CONFIDENTIALITY = 16 +ISC_REQ_USE_SESSION_KEY = 32 +ISC_REQ_PROMPT_FOR_CREDS = 64 +ISC_REQ_USE_SUPPLIED_CREDS = 128 +ISC_REQ_ALLOCATE_MEMORY = 256 +ISC_REQ_USE_DCE_STYLE = 512 +ISC_REQ_DATAGRAM = 1024 +ISC_REQ_CONNECTION = 2048 +ISC_REQ_CALL_LEVEL = 4096 +ISC_REQ_FRAGMENT_SUPPLIED = 8192 +ISC_REQ_EXTENDED_ERROR = 16384 +ISC_REQ_STREAM = 32768 +ISC_REQ_INTEGRITY = 65536 +ISC_REQ_IDENTIFY = 131072 +ISC_REQ_NULL_SESSION = 262144 +ISC_REQ_MANUAL_CRED_VALIDATION = 524288 +ISC_REQ_RESERVED1 = 1048576 +ISC_REQ_FRAGMENT_TO_FIT = 2097152 +ISC_REQ_HTTP = 0x10000000 +ISC_RET_DELEGATE = 1 +ISC_RET_MUTUAL_AUTH = 2 +ISC_RET_REPLAY_DETECT = 4 +ISC_RET_SEQUENCE_DETECT = 8 +ISC_RET_CONFIDENTIALITY = 16 +ISC_RET_USE_SESSION_KEY = 32 +ISC_RET_USED_COLLECTED_CREDS = 64 +ISC_RET_USED_SUPPLIED_CREDS = 128 +ISC_RET_ALLOCATED_MEMORY = 256 +ISC_RET_USED_DCE_STYLE = 512 +ISC_RET_DATAGRAM = 1024 +ISC_RET_CONNECTION = 2048 +ISC_RET_INTERMEDIATE_RETURN = 4096 +ISC_RET_CALL_LEVEL = 8192 +ISC_RET_EXTENDED_ERROR = 16384 +ISC_RET_STREAM = 32768 +ISC_RET_INTEGRITY = 65536 +ISC_RET_IDENTIFY = 131072 +ISC_RET_NULL_SESSION = 262144 +ISC_RET_MANUAL_CRED_VALIDATION = 524288 +ISC_RET_RESERVED1 = 1048576 +ISC_RET_FRAGMENT_ONLY = 2097152 + +ASC_REQ_DELEGATE = 1 +ASC_REQ_MUTUAL_AUTH = 2 +ASC_REQ_REPLAY_DETECT = 4 +ASC_REQ_SEQUENCE_DETECT = 8 +ASC_REQ_CONFIDENTIALITY = 16 +ASC_REQ_USE_SESSION_KEY = 32 +ASC_REQ_ALLOCATE_MEMORY = 256 +ASC_REQ_USE_DCE_STYLE = 512 +ASC_REQ_DATAGRAM = 1024 +ASC_REQ_CONNECTION = 2048 +ASC_REQ_CALL_LEVEL = 4096 +ASC_REQ_EXTENDED_ERROR = 32768 +ASC_REQ_STREAM = 65536 +ASC_REQ_INTEGRITY = 131072 +ASC_REQ_LICENSING = 262144 +ASC_REQ_IDENTIFY = 524288 +ASC_REQ_ALLOW_NULL_SESSION = 1048576 +ASC_REQ_ALLOW_NON_USER_LOGONS = 2097152 +ASC_REQ_ALLOW_CONTEXT_REPLAY = 4194304 +ASC_REQ_FRAGMENT_TO_FIT = 8388608 +ASC_REQ_FRAGMENT_SUPPLIED = 8192 +ASC_REQ_NO_TOKEN = 16777216 +ASC_RET_DELEGATE = 1 +ASC_RET_MUTUAL_AUTH = 2 +ASC_RET_REPLAY_DETECT = 4 +ASC_RET_SEQUENCE_DETECT = 8 +ASC_RET_CONFIDENTIALITY = 16 +ASC_RET_USE_SESSION_KEY = 32 +ASC_RET_ALLOCATED_MEMORY = 256 +ASC_RET_USED_DCE_STYLE = 512 +ASC_RET_DATAGRAM = 1024 +ASC_RET_CONNECTION = 2048 +ASC_RET_CALL_LEVEL = 8192 +ASC_RET_THIRD_LEG_FAILED = 16384 +ASC_RET_EXTENDED_ERROR = 32768 +ASC_RET_STREAM = 65536 +ASC_RET_INTEGRITY = 131072 +ASC_RET_LICENSING = 262144 +ASC_RET_IDENTIFY = 524288 +ASC_RET_NULL_SESSION = 1048576 +ASC_RET_ALLOW_NON_USER_LOGONS = 2097152 +ASC_RET_ALLOW_CONTEXT_REPLAY = 4194304 +ASC_RET_FRAGMENT_ONLY = 8388608 + +SECPKG_CRED_ATTR_NAMES = 1 +SECPKG_ATTR_SIZES = 0 +SECPKG_ATTR_NAMES = 1 +SECPKG_ATTR_LIFESPAN = 2 +SECPKG_ATTR_DCE_INFO = 3 +SECPKG_ATTR_STREAM_SIZES = 4 +SECPKG_ATTR_KEY_INFO = 5 +SECPKG_ATTR_AUTHORITY = 6 +SECPKG_ATTR_PROTO_INFO = 7 +SECPKG_ATTR_PASSWORD_EXPIRY = 8 +SECPKG_ATTR_SESSION_KEY = 9 +SECPKG_ATTR_PACKAGE_INFO = 10 +SECPKG_ATTR_USER_FLAGS = 11 +SECPKG_ATTR_NEGOTIATION_INFO = 12 +SECPKG_ATTR_NATIVE_NAMES = 13 +SECPKG_ATTR_FLAGS = 14 +SECPKG_ATTR_USE_VALIDATED = 15 +SECPKG_ATTR_CREDENTIAL_NAME = 16 +SECPKG_ATTR_TARGET_INFORMATION = 17 +SECPKG_ATTR_ACCESS_TOKEN = 18 +SECPKG_ATTR_TARGET = 19 +SECPKG_ATTR_AUTHENTICATION_ID = 20 + +## attributes from schannel.h +SECPKG_ATTR_REMOTE_CERT_CONTEXT = 83 +SECPKG_ATTR_LOCAL_CERT_CONTEXT = 84 +SECPKG_ATTR_ROOT_STORE = 85 +SECPKG_ATTR_SUPPORTED_ALGS = 86 +SECPKG_ATTR_CIPHER_STRENGTHS = 87 +SECPKG_ATTR_SUPPORTED_PROTOCOLS = 88 +SECPKG_ATTR_ISSUER_LIST_EX = 89 +SECPKG_ATTR_CONNECTION_INFO = 90 +SECPKG_ATTR_EAP_KEY_BLOCK = 91 +SECPKG_ATTR_MAPPED_CRED_ATTR = 92 +SECPKG_ATTR_SESSION_INFO = 93 +SECPKG_ATTR_APP_DATA = 94 + +SECPKG_NEGOTIATION_COMPLETE = 0 +SECPKG_NEGOTIATION_OPTIMISTIC = 1 +SECPKG_NEGOTIATION_IN_PROGRESS = 2 +SECPKG_NEGOTIATION_DIRECT = 3 +SECPKG_NEGOTIATION_TRY_MULTICRED = 4 +SECPKG_CONTEXT_EXPORT_RESET_NEW = 1 +SECPKG_CONTEXT_EXPORT_DELETE_OLD = 2 +SECQOP_WRAP_NO_ENCRYPT = (-2147483647) +SECURITY_ENTRYPOINT_ANSIW = "InitSecurityInterfaceW" +SECURITY_ENTRYPOINT_ANSIA = "InitSecurityInterfaceA" +SECURITY_ENTRYPOINT16 = "INITSECURITYINTERFACEA" +SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT_ANSIW +SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT_ANSIA +SECURITY_ENTRYPOINT = SECURITY_ENTRYPOINT16 +SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT16 +SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION = 1 +SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 = 2 +SASL_OPTION_SEND_SIZE = 1 +SASL_OPTION_RECV_SIZE = 2 +SASL_OPTION_AUTHZ_STRING = 3 +SASL_OPTION_AUTHZ_PROCESSING = 4 +SEC_WINNT_AUTH_IDENTITY_ANSI = 1 +SEC_WINNT_AUTH_IDENTITY_UNICODE = 2 +SEC_WINNT_AUTH_IDENTITY_VERSION = 512 +SEC_WINNT_AUTH_IDENTITY_MARSHALLED = 4 +SEC_WINNT_AUTH_IDENTITY_ONLY = 8 +SECPKG_OPTIONS_TYPE_UNKNOWN = 0 +SECPKG_OPTIONS_TYPE_LSA = 1 +SECPKG_OPTIONS_TYPE_SSPI = 2 +SECPKG_OPTIONS_PERMANENT = 1 + +SEC_E_INSUFFICIENT_MEMORY = -2146893056 +SEC_E_INVALID_HANDLE = -2146893055 +SEC_E_UNSUPPORTED_FUNCTION = -2146893054 +SEC_E_TARGET_UNKNOWN = -2146893053 +SEC_E_INTERNAL_ERROR = -2146893052 +SEC_E_SECPKG_NOT_FOUND = -2146893051 +SEC_E_NOT_OWNER = -2146893050 +SEC_E_CANNOT_INSTALL = -2146893049 +SEC_E_INVALID_TOKEN = -2146893048 +SEC_E_CANNOT_PACK = -2146893047 +SEC_E_QOP_NOT_SUPPORTED = -2146893046 +SEC_E_NO_IMPERSONATION = -2146893045 +SEC_E_LOGON_DENIED = -2146893044 +SEC_E_UNKNOWN_CREDENTIALS = -2146893043 +SEC_E_NO_CREDENTIALS = -2146893042 +SEC_E_MESSAGE_ALTERED = -2146893041 +SEC_E_OUT_OF_SEQUENCE = -2146893040 +SEC_E_NO_AUTHENTICATING_AUTHORITY = -2146893039 +SEC_I_CONTINUE_NEEDED = 590610 +SEC_I_COMPLETE_NEEDED = 590611 +SEC_I_COMPLETE_AND_CONTINUE = 590612 +SEC_I_LOCAL_LOGON = 590613 +SEC_E_BAD_PKGID = -2146893034 +SEC_E_CONTEXT_EXPIRED = -2146893033 +SEC_I_CONTEXT_EXPIRED = 590615 +SEC_E_INCOMPLETE_MESSAGE = -2146893032 +SEC_E_INCOMPLETE_CREDENTIALS = -2146893024 +SEC_E_BUFFER_TOO_SMALL = -2146893023 +SEC_I_INCOMPLETE_CREDENTIALS = 590624 +SEC_I_RENEGOTIATE = 590625 +SEC_E_WRONG_PRINCIPAL = -2146893022 +SEC_I_NO_LSA_CONTEXT = 590627 +SEC_E_TIME_SKEW = -2146893020 +SEC_E_UNTRUSTED_ROOT = -2146893019 +SEC_E_ILLEGAL_MESSAGE = -2146893018 +SEC_E_CERT_UNKNOWN = -2146893017 +SEC_E_CERT_EXPIRED = -2146893016 +SEC_E_ENCRYPT_FAILURE = -2146893015 +SEC_E_DECRYPT_FAILURE = -2146893008 +SEC_E_ALGORITHM_MISMATCH = -2146893007 +SEC_E_SECURITY_QOS_FAILED = -2146893006 +SEC_E_UNFINISHED_CONTEXT_DELETED = -2146893005 +SEC_E_NO_TGT_REPLY = -2146893004 +SEC_E_NO_IP_ADDRESSES = -2146893003 +SEC_E_WRONG_CREDENTIAL_HANDLE = -2146893002 +SEC_E_CRYPTO_SYSTEM_INVALID = -2146893001 +SEC_E_MAX_REFERRALS_EXCEEDED = -2146893000 +SEC_E_MUST_BE_KDC = -2146892999 +SEC_E_STRONG_CRYPTO_NOT_SUPPORTED = -2146892998 +SEC_E_TOO_MANY_PRINCIPALS = -2146892997 +SEC_E_NO_PA_DATA = -2146892996 +SEC_E_PKINIT_NAME_MISMATCH = -2146892995 +SEC_E_SMARTCARD_LOGON_REQUIRED = -2146892994 +SEC_E_SHUTDOWN_IN_PROGRESS = -2146892993 +SEC_E_KDC_INVALID_REQUEST = -2146892992 +SEC_E_KDC_UNABLE_TO_REFER = -2146892991 +SEC_E_KDC_UNKNOWN_ETYPE = -2146892990 +SEC_E_UNSUPPORTED_PREAUTH = -2146892989 +SEC_E_DELEGATION_REQUIRED = -2146892987 +SEC_E_BAD_BINDINGS = -2146892986 +SEC_E_MULTIPLE_ACCOUNTS = -2146892985 +SEC_E_NO_KERB_KEY = -2146892984 + +ERROR_IPSEC_QM_POLICY_EXISTS = 13000 +ERROR_IPSEC_QM_POLICY_NOT_FOUND = 13001 +ERROR_IPSEC_QM_POLICY_IN_USE = 13002 +ERROR_IPSEC_MM_POLICY_EXISTS = 13003 +ERROR_IPSEC_MM_POLICY_NOT_FOUND = 13004 +ERROR_IPSEC_MM_POLICY_IN_USE = 13005 +ERROR_IPSEC_MM_FILTER_EXISTS = 13006 +ERROR_IPSEC_MM_FILTER_NOT_FOUND = 13007 +ERROR_IPSEC_TRANSPORT_FILTER_EXISTS = 13008 +ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND = 13009 +ERROR_IPSEC_MM_AUTH_EXISTS = 13010 +ERROR_IPSEC_MM_AUTH_NOT_FOUND = 13011 +ERROR_IPSEC_MM_AUTH_IN_USE = 13012 +ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND = 13013 +ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND = 13014 +ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND = 13015 +ERROR_IPSEC_TUNNEL_FILTER_EXISTS = 13016 +ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND = 13017 +ERROR_IPSEC_MM_FILTER_PENDING_DELETION = 13018 +ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION = 13019 +ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION = 13020 +ERROR_IPSEC_MM_POLICY_PENDING_DELETION = 13021 +ERROR_IPSEC_MM_AUTH_PENDING_DELETION = 13022 +ERROR_IPSEC_QM_POLICY_PENDING_DELETION = 13023 +WARNING_IPSEC_MM_POLICY_PRUNED = 13024 +WARNING_IPSEC_QM_POLICY_PRUNED = 13025 +ERROR_IPSEC_IKE_NEG_STATUS_BEGIN = 13800 +ERROR_IPSEC_IKE_AUTH_FAIL = 13801 +ERROR_IPSEC_IKE_ATTRIB_FAIL = 13802 +ERROR_IPSEC_IKE_NEGOTIATION_PENDING = 13803 +ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR = 13804 +ERROR_IPSEC_IKE_TIMED_OUT = 13805 +ERROR_IPSEC_IKE_NO_CERT = 13806 +ERROR_IPSEC_IKE_SA_DELETED = 13807 +ERROR_IPSEC_IKE_SA_REAPED = 13808 +ERROR_IPSEC_IKE_MM_ACQUIRE_DROP = 13809 +ERROR_IPSEC_IKE_QM_ACQUIRE_DROP = 13810 +ERROR_IPSEC_IKE_QUEUE_DROP_MM = 13811 +ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM = 13812 +ERROR_IPSEC_IKE_DROP_NO_RESPONSE = 13813 +ERROR_IPSEC_IKE_MM_DELAY_DROP = 13814 +ERROR_IPSEC_IKE_QM_DELAY_DROP = 13815 +ERROR_IPSEC_IKE_ERROR = 13816 +ERROR_IPSEC_IKE_CRL_FAILED = 13817 +ERROR_IPSEC_IKE_INVALID_KEY_USAGE = 13818 +ERROR_IPSEC_IKE_INVALID_CERT_TYPE = 13819 +ERROR_IPSEC_IKE_NO_PRIVATE_KEY = 13820 +ERROR_IPSEC_IKE_DH_FAIL = 13822 +ERROR_IPSEC_IKE_INVALID_HEADER = 13824 +ERROR_IPSEC_IKE_NO_POLICY = 13825 +ERROR_IPSEC_IKE_INVALID_SIGNATURE = 13826 +ERROR_IPSEC_IKE_KERBEROS_ERROR = 13827 +ERROR_IPSEC_IKE_NO_PUBLIC_KEY = 13828 +ERROR_IPSEC_IKE_PROCESS_ERR = 13829 +ERROR_IPSEC_IKE_PROCESS_ERR_SA = 13830 +ERROR_IPSEC_IKE_PROCESS_ERR_PROP = 13831 +ERROR_IPSEC_IKE_PROCESS_ERR_TRANS = 13832 +ERROR_IPSEC_IKE_PROCESS_ERR_KE = 13833 +ERROR_IPSEC_IKE_PROCESS_ERR_ID = 13834 +ERROR_IPSEC_IKE_PROCESS_ERR_CERT = 13835 +ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ = 13836 +ERROR_IPSEC_IKE_PROCESS_ERR_HASH = 13837 +ERROR_IPSEC_IKE_PROCESS_ERR_SIG = 13838 +ERROR_IPSEC_IKE_PROCESS_ERR_NONCE = 13839 +ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY = 13840 +ERROR_IPSEC_IKE_PROCESS_ERR_DELETE = 13841 +ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR = 13842 +ERROR_IPSEC_IKE_INVALID_PAYLOAD = 13843 +ERROR_IPSEC_IKE_LOAD_SOFT_SA = 13844 +ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN = 13845 +ERROR_IPSEC_IKE_INVALID_COOKIE = 13846 +ERROR_IPSEC_IKE_NO_PEER_CERT = 13847 +ERROR_IPSEC_IKE_PEER_CRL_FAILED = 13848 +ERROR_IPSEC_IKE_POLICY_CHANGE = 13849 +ERROR_IPSEC_IKE_NO_MM_POLICY = 13850 +ERROR_IPSEC_IKE_NOTCBPRIV = 13851 +ERROR_IPSEC_IKE_SECLOADFAIL = 13852 +ERROR_IPSEC_IKE_FAILSSPINIT = 13853 +ERROR_IPSEC_IKE_FAILQUERYSSP = 13854 +ERROR_IPSEC_IKE_SRVACQFAIL = 13855 +ERROR_IPSEC_IKE_SRVQUERYCRED = 13856 +ERROR_IPSEC_IKE_GETSPIFAIL = 13857 +ERROR_IPSEC_IKE_INVALID_FILTER = 13858 +ERROR_IPSEC_IKE_OUT_OF_MEMORY = 13859 +ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED = 13860 +ERROR_IPSEC_IKE_INVALID_POLICY = 13861 +ERROR_IPSEC_IKE_UNKNOWN_DOI = 13862 +ERROR_IPSEC_IKE_INVALID_SITUATION = 13863 +ERROR_IPSEC_IKE_DH_FAILURE = 13864 +ERROR_IPSEC_IKE_INVALID_GROUP = 13865 +ERROR_IPSEC_IKE_ENCRYPT = 13866 +ERROR_IPSEC_IKE_DECRYPT = 13867 +ERROR_IPSEC_IKE_POLICY_MATCH = 13868 +ERROR_IPSEC_IKE_UNSUPPORTED_ID = 13869 +ERROR_IPSEC_IKE_INVALID_HASH = 13870 +ERROR_IPSEC_IKE_INVALID_HASH_ALG = 13871 +ERROR_IPSEC_IKE_INVALID_HASH_SIZE = 13872 +ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG = 13873 +ERROR_IPSEC_IKE_INVALID_AUTH_ALG = 13874 +ERROR_IPSEC_IKE_INVALID_SIG = 13875 +ERROR_IPSEC_IKE_LOAD_FAILED = 13876 +ERROR_IPSEC_IKE_RPC_DELETE = 13877 +ERROR_IPSEC_IKE_BENIGN_REINIT = 13878 +ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY = 13879 +ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN = 13881 +ERROR_IPSEC_IKE_MM_LIMIT = 13882 +ERROR_IPSEC_IKE_NEGOTIATION_DISABLED = 13883 +ERROR_IPSEC_IKE_NEG_STATUS_END = 13884 +CRYPT_E_MSG_ERROR = ((-2146889727)) +CRYPT_E_UNKNOWN_ALGO = ((-2146889726)) +CRYPT_E_OID_FORMAT = ((-2146889725)) +CRYPT_E_INVALID_MSG_TYPE = ((-2146889724)) +CRYPT_E_UNEXPECTED_ENCODING = ((-2146889723)) +CRYPT_E_AUTH_ATTR_MISSING = ((-2146889722)) +CRYPT_E_HASH_VALUE = ((-2146889721)) +CRYPT_E_INVALID_INDEX = ((-2146889720)) +CRYPT_E_ALREADY_DECRYPTED = ((-2146889719)) +CRYPT_E_NOT_DECRYPTED = ((-2146889718)) +CRYPT_E_RECIPIENT_NOT_FOUND = ((-2146889717)) +CRYPT_E_CONTROL_TYPE = ((-2146889716)) +CRYPT_E_ISSUER_SERIALNUMBER = ((-2146889715)) +CRYPT_E_SIGNER_NOT_FOUND = ((-2146889714)) +CRYPT_E_ATTRIBUTES_MISSING = ((-2146889713)) +CRYPT_E_STREAM_MSG_NOT_READY = ((-2146889712)) +CRYPT_E_STREAM_INSUFFICIENT_DATA = ((-2146889711)) +CRYPT_I_NEW_PROTECTION_REQUIRED = (593938) +CRYPT_E_BAD_LEN = ((-2146885631)) +CRYPT_E_BAD_ENCODE = ((-2146885630)) +CRYPT_E_FILE_ERROR = ((-2146885629)) +CRYPT_E_NOT_FOUND = ((-2146885628)) +CRYPT_E_EXISTS = ((-2146885627)) +CRYPT_E_NO_PROVIDER = ((-2146885626)) +CRYPT_E_SELF_SIGNED = ((-2146885625)) +CRYPT_E_DELETED_PREV = ((-2146885624)) +CRYPT_E_NO_MATCH = ((-2146885623)) +CRYPT_E_UNEXPECTED_MSG_TYPE = ((-2146885622)) +CRYPT_E_NO_KEY_PROPERTY = ((-2146885621)) +CRYPT_E_NO_DECRYPT_CERT = ((-2146885620)) +CRYPT_E_BAD_MSG = ((-2146885619)) +CRYPT_E_NO_SIGNER = ((-2146885618)) +CRYPT_E_PENDING_CLOSE = ((-2146885617)) +CRYPT_E_REVOKED = ((-2146885616)) +CRYPT_E_NO_REVOCATION_DLL = ((-2146885615)) +CRYPT_E_NO_REVOCATION_CHECK = ((-2146885614)) +CRYPT_E_REVOCATION_OFFLINE = ((-2146885613)) +CRYPT_E_NOT_IN_REVOCATION_DATABASE = ((-2146885612)) +CRYPT_E_INVALID_NUMERIC_STRING = ((-2146885600)) +CRYPT_E_INVALID_PRINTABLE_STRING = ((-2146885599)) +CRYPT_E_INVALID_IA5_STRING = ((-2146885598)) +CRYPT_E_INVALID_X500_STRING = ((-2146885597)) +CRYPT_E_NOT_CHAR_STRING = ((-2146885596)) +CRYPT_E_FILERESIZED = ((-2146885595)) +CRYPT_E_SECURITY_SETTINGS = ((-2146885594)) +CRYPT_E_NO_VERIFY_USAGE_DLL = ((-2146885593)) +CRYPT_E_NO_VERIFY_USAGE_CHECK = ((-2146885592)) +CRYPT_E_VERIFY_USAGE_OFFLINE = ((-2146885591)) +CRYPT_E_NOT_IN_CTL = ((-2146885590)) +CRYPT_E_NO_TRUSTED_SIGNER = ((-2146885589)) +CRYPT_E_MISSING_PUBKEY_PARA = ((-2146885588)) +CRYPT_E_OSS_ERROR = ((-2146881536)) + +## Kerberos message types for LsaCallAuthenticationPackage (from ntsecapi.h) +KerbDebugRequestMessage = 0 +KerbQueryTicketCacheMessage = 1 +KerbChangeMachinePasswordMessage = 2 +KerbVerifyPacMessage = 3 +KerbRetrieveTicketMessage = 4 +KerbUpdateAddressesMessage = 5 +KerbPurgeTicketCacheMessage = 6 +KerbChangePasswordMessage = 7 +KerbRetrieveEncodedTicketMessage = 8 +KerbDecryptDataMessage = 9 +KerbAddBindingCacheEntryMessage = 10 +KerbSetPasswordMessage = 11 +KerbSetPasswordExMessage = 12 +KerbVerifyCredentialsMessage = 13 +KerbQueryTicketCacheExMessage = 14 +KerbPurgeTicketCacheExMessage = 15 +KerbRefreshSmartcardCredentialsMessage = 16 +KerbAddExtraCredentialsMessage = 17 +KerbQuerySupplementalCredentialsMessage = 18 + +## messages used with msv1_0 from ntsecapi.h +MsV1_0Lm20ChallengeRequest = 0 +MsV1_0Lm20GetChallengeResponse = 1 +MsV1_0EnumerateUsers = 2 +MsV1_0GetUserInfo = 3 +MsV1_0ReLogonUsers = 4 +MsV1_0ChangePassword = 5 +MsV1_0ChangeCachedPassword = 6 +MsV1_0GenericPassthrough = 7 +MsV1_0CacheLogon = 8 +MsV1_0SubAuth = 9 +MsV1_0DeriveCredential = 10 +MsV1_0CacheLookup = 11 +MsV1_0SetProcessOption = 12 + +SEC_E_OK = 0 diff --git a/typings/win32helper/win32cryptcon.pyi b/typings/win32helper/win32cryptcon.pyi new file mode 100644 index 00000000..7ad7ed81 --- /dev/null +++ b/typings/win32helper/win32cryptcon.pyi @@ -0,0 +1,1900 @@ +# Generated by h2py from WinCrypt.h +def GET_ALG_CLASS(x): return (x & (7 << 13)) + +def GET_ALG_TYPE(x): return (x & (15 << 9)) + +def GET_ALG_SID(x): return (x & (511)) + +ALG_CLASS_ANY = (0) +ALG_CLASS_SIGNATURE = (1 << 13) +ALG_CLASS_MSG_ENCRYPT = (2 << 13) +ALG_CLASS_DATA_ENCRYPT = (3 << 13) +ALG_CLASS_HASH = (4 << 13) +ALG_CLASS_KEY_EXCHANGE = (5 << 13) +ALG_CLASS_ALL = (7 << 13) +ALG_TYPE_ANY = (0) +ALG_TYPE_DSS = (1 << 9) +ALG_TYPE_RSA = (2 << 9) +ALG_TYPE_BLOCK = (3 << 9) +ALG_TYPE_STREAM = (4 << 9) +ALG_TYPE_DH = (5 << 9) +ALG_TYPE_SECURECHANNEL = (6 << 9) +ALG_SID_ANY = (0) +ALG_SID_RSA_ANY = 0 +ALG_SID_RSA_PKCS = 1 +ALG_SID_RSA_MSATWORK = 2 +ALG_SID_RSA_ENTRUST = 3 +ALG_SID_RSA_PGP = 4 +ALG_SID_DSS_ANY = 0 +ALG_SID_DSS_PKCS = 1 +ALG_SID_DSS_DMS = 2 +ALG_SID_DES = 1 +ALG_SID_3DES = 3 +ALG_SID_DESX = 4 +ALG_SID_IDEA = 5 +ALG_SID_CAST = 6 +ALG_SID_SAFERSK64 = 7 +ALG_SID_SAFERSK128 = 8 +ALG_SID_3DES_112 = 9 +ALG_SID_CYLINK_MEK = 12 +ALG_SID_RC5 = 13 +ALG_SID_AES_128 = 14 +ALG_SID_AES_192 = 15 +ALG_SID_AES_256 = 16 +ALG_SID_AES = 17 +ALG_SID_SKIPJACK = 10 +ALG_SID_TEK = 11 +CRYPT_MODE_CBCI = 6 +CRYPT_MODE_CFBP = 7 +CRYPT_MODE_OFBP = 8 +CRYPT_MODE_CBCOFM = 9 +CRYPT_MODE_CBCOFMI = 10 +ALG_SID_RC2 = 2 +ALG_SID_RC4 = 1 +ALG_SID_SEAL = 2 +ALG_SID_DH_SANDF = 1 +ALG_SID_DH_EPHEM = 2 +ALG_SID_AGREED_KEY_ANY = 3 +ALG_SID_KEA = 4 +ALG_SID_MD2 = 1 +ALG_SID_MD4 = 2 +ALG_SID_MD5 = 3 +ALG_SID_SHA = 4 +ALG_SID_SHA1 = 4 +ALG_SID_MAC = 5 +ALG_SID_RIPEMD = 6 +ALG_SID_RIPEMD160 = 7 +ALG_SID_SSL3SHAMD5 = 8 +ALG_SID_HMAC = 9 +ALG_SID_TLS1PRF = 10 +ALG_SID_HASH_REPLACE_OWF = 11 +ALG_SID_SHA_256 = 12 +ALG_SID_SHA_384 = 13 +ALG_SID_SHA_512 = 14 +ALG_SID_SSL3_MASTER = 1 +ALG_SID_SCHANNEL_MASTER_HASH = 2 +ALG_SID_SCHANNEL_MAC_KEY = 3 +ALG_SID_PCT1_MASTER = 4 +ALG_SID_SSL2_MASTER = 5 +ALG_SID_TLS1_MASTER = 6 +ALG_SID_SCHANNEL_ENC_KEY = 7 +ALG_SID_EXAMPLE = 80 +CALG_MD2 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2) +CALG_MD4 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4) +CALG_MD5 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5) +CALG_SHA = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA) +CALG_SHA1 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA1) +CALG_MAC = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC) +CALG_RSA_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) +CALG_DSS_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY) +CALG_NO_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY) +CALG_RSA_KEYX = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) +CALG_DES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DES) +CALG_3DES_112 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_3DES_112) +CALG_3DES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_3DES) +CALG_DESX = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DESX) +CALG_RC2 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC2) +CALG_RC4 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_RC4) +CALG_SEAL = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_SEAL) +CALG_DH_SF = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_DH_SANDF) +CALG_DH_EPHEM = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_DH_EPHEM) +CALG_AGREEDKEY_ANY = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_AGREED_KEY_ANY) +CALG_KEA_KEYX = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_KEA) +CALG_HUGHES_MD5 = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_ANY|ALG_SID_MD5) +CALG_SKIPJACK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_SKIPJACK) +CALG_TEK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_TEK) +CALG_CYLINK_MEK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_CYLINK_MEK) +CALG_SSL3_SHAMD5 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5) +CALG_SSL3_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SSL3_MASTER) +CALG_SCHANNEL_MASTER_HASH = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_MASTER_HASH) +CALG_SCHANNEL_MAC_KEY = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_MAC_KEY) +CALG_SCHANNEL_ENC_KEY = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_ENC_KEY) +CALG_PCT1_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_PCT1_MASTER) +CALG_SSL2_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SSL2_MASTER) +CALG_TLS1_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_TLS1_MASTER) +CALG_RC5 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC5) +CALG_HMAC = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC) +CALG_TLS1PRF = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF) +CALG_HASH_REPLACE_OWF = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF) +CALG_AES_128 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_128) +CALG_AES_192 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_192) +CALG_AES_256 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_256) +CALG_AES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES) +CALG_SHA_256 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256) +CALG_SHA_384 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384) +CALG_SHA_512 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512) +CRYPT_VERIFYCONTEXT = (-268435456) +CRYPT_NEWKEYSET = 0x00000008 +CRYPT_DELETEKEYSET = 0x00000010 +CRYPT_MACHINE_KEYSET = 0x00000020 +CRYPT_SILENT = 0x00000040 +CRYPT_EXPORTABLE = 0x00000001 +CRYPT_USER_PROTECTED = 0x00000002 +CRYPT_CREATE_SALT = 0x00000004 +CRYPT_UPDATE_KEY = 0x00000008 +CRYPT_NO_SALT = 0x00000010 +CRYPT_PREGEN = 0x00000040 +CRYPT_RECIPIENT = 0x00000010 +CRYPT_INITIATOR = 0x00000040 +CRYPT_ONLINE = 0x00000080 +CRYPT_SF = 0x00000100 +CRYPT_CREATE_IV = 0x00000200 +CRYPT_KEK = 0x00000400 +CRYPT_DATA_KEY = 0x00000800 +CRYPT_VOLATILE = 0x00001000 +CRYPT_SGCKEY = 0x00002000 +CRYPT_ARCHIVABLE = 0x00004000 +RSA1024BIT_KEY = 0x04000000 +CRYPT_SERVER = 0x00000400 +KEY_LENGTH_MASK = (-65536) +CRYPT_Y_ONLY = 0x00000001 +CRYPT_SSL2_FALLBACK = 0x00000002 +CRYPT_DESTROYKEY = 0x00000004 +CRYPT_OAEP = 0x00000040 +CRYPT_BLOB_VER3 = 0x00000080 +CRYPT_IPSEC_HMAC_KEY = 0x00000100 +CRYPT_DECRYPT_RSA_NO_PADDING_CHECK = 0x00000020 +CRYPT_SECRETDIGEST = 0x00000001 +CRYPT_OWF_REPL_LM_HASH = 0x00000001 +CRYPT_LITTLE_ENDIAN = 0x00000001 +CRYPT_NOHASHOID = 0x00000001 +CRYPT_TYPE2_FORMAT = 0x00000002 +CRYPT_X931_FORMAT = 0x00000004 +CRYPT_MACHINE_DEFAULT = 0x00000001 +CRYPT_USER_DEFAULT = 0x00000002 +CRYPT_DELETE_DEFAULT = 0x00000004 +SIMPLEBLOB = 0x1 +PUBLICKEYBLOB = 0x6 +PRIVATEKEYBLOB = 0x7 +PLAINTEXTKEYBLOB = 0x8 +OPAQUEKEYBLOB = 0x9 +PUBLICKEYBLOBEX = 0xA +SYMMETRICWRAPKEYBLOB = 0xB +AT_KEYEXCHANGE = 1 +AT_SIGNATURE = 2 +CRYPT_USERDATA = 1 +KP_IV = 1 +KP_SALT = 2 +KP_PADDING = 3 +KP_MODE = 4 +KP_MODE_BITS = 5 +KP_PERMISSIONS = 6 +KP_ALGID = 7 +KP_BLOCKLEN = 8 +KP_KEYLEN = 9 +KP_SALT_EX = 10 +KP_P = 11 +KP_G = 12 +KP_Q = 13 +KP_X = 14 +KP_Y = 15 +KP_RA = 16 +KP_RB = 17 +KP_INFO = 18 +KP_EFFECTIVE_KEYLEN = 19 +KP_SCHANNEL_ALG = 20 +KP_CLIENT_RANDOM = 21 +KP_SERVER_RANDOM = 22 +KP_RP = 23 +KP_PRECOMP_MD5 = 24 +KP_PRECOMP_SHA = 25 +KP_CERTIFICATE = 26 +KP_CLEAR_KEY = 27 +KP_PUB_EX_LEN = 28 +KP_PUB_EX_VAL = 29 +KP_KEYVAL = 30 +KP_ADMIN_PIN = 31 +KP_KEYEXCHANGE_PIN = 32 +KP_SIGNATURE_PIN = 33 +KP_PREHASH = 34 +KP_ROUNDS = 35 +KP_OAEP_PARAMS = 36 +KP_CMS_KEY_INFO = 37 +KP_CMS_DH_KEY_INFO = 38 +KP_PUB_PARAMS = 39 +KP_VERIFY_PARAMS = 40 +KP_HIGHEST_VERSION = 41 +KP_GET_USE_COUNT = 42 +PKCS5_PADDING = 1 +RANDOM_PADDING = 2 +ZERO_PADDING = 3 +CRYPT_MODE_CBC = 1 +CRYPT_MODE_ECB = 2 +CRYPT_MODE_OFB = 3 +CRYPT_MODE_CFB = 4 +CRYPT_MODE_CTS = 5 +CRYPT_ENCRYPT = 0x0001 +CRYPT_DECRYPT = 0x0002 +CRYPT_EXPORT = 0x0004 +CRYPT_READ = 0x0008 +CRYPT_WRITE = 0x0010 +CRYPT_MAC = 0x0020 +CRYPT_EXPORT_KEY = 0x0040 +CRYPT_IMPORT_KEY = 0x0080 +CRYPT_ARCHIVE = 0x0100 +HP_ALGID = 0x0001 +HP_HASHVAL = 0x0002 +HP_HASHSIZE = 0x0004 +HP_HMAC_INFO = 0x0005 +HP_TLS1PRF_LABEL = 0x0006 +HP_TLS1PRF_SEED = 0x0007 + +CRYPT_FAILED = 0 +CRYPT_SUCCEED = 1 +def RCRYPT_SUCCEEDED(rt): return ((rt) == CRYPT_SUCCEED) +def RCRYPT_FAILED(rt): return ((rt) == CRYPT_FAILED) + +PP_ENUMALGS = 1 +PP_ENUMCONTAINERS = 2 +PP_IMPTYPE = 3 +PP_NAME = 4 +PP_VERSION = 5 +PP_CONTAINER = 6 +PP_CHANGE_PASSWORD = 7 +PP_KEYSET_SEC_DESCR = 8 +PP_CERTCHAIN = 9 +PP_KEY_TYPE_SUBTYPE = 10 +PP_PROVTYPE = 16 +PP_KEYSTORAGE = 17 +PP_APPLI_CERT = 18 +PP_SYM_KEYSIZE = 19 +PP_SESSION_KEYSIZE = 20 +PP_UI_PROMPT = 21 +PP_ENUMALGS_EX = 22 +PP_ENUMMANDROOTS = 25 +PP_ENUMELECTROOTS = 26 +PP_KEYSET_TYPE = 27 +PP_ADMIN_PIN = 31 +PP_KEYEXCHANGE_PIN = 32 +PP_SIGNATURE_PIN = 33 +PP_SIG_KEYSIZE_INC = 34 +PP_KEYX_KEYSIZE_INC = 35 +PP_UNIQUE_CONTAINER = 36 +PP_SGC_INFO = 37 +PP_USE_HARDWARE_RNG = 38 +PP_KEYSPEC = 39 +PP_ENUMEX_SIGNING_PROT = 40 +PP_CRYPT_COUNT_KEY_USE = 41 +CRYPT_FIRST = 1 +CRYPT_NEXT = 2 +CRYPT_SGC_ENUM = 4 +CRYPT_IMPL_HARDWARE = 1 +CRYPT_IMPL_SOFTWARE = 2 +CRYPT_IMPL_MIXED = 3 +CRYPT_IMPL_UNKNOWN = 4 +CRYPT_IMPL_REMOVABLE = 8 +CRYPT_SEC_DESCR = 0x00000001 +CRYPT_PSTORE = 0x00000002 +CRYPT_UI_PROMPT = 0x00000004 +CRYPT_FLAG_PCT1 = 0x0001 +CRYPT_FLAG_SSL2 = 0x0002 +CRYPT_FLAG_SSL3 = 0x0004 +CRYPT_FLAG_TLS1 = 0x0008 +CRYPT_FLAG_IPSEC = 0x0010 +CRYPT_FLAG_SIGNING = 0x0020 +CRYPT_SGC = 0x0001 +CRYPT_FASTSGC = 0x0002 +PP_CLIENT_HWND = 1 +PP_CONTEXT_INFO = 11 +PP_KEYEXCHANGE_KEYSIZE = 12 +PP_SIGNATURE_KEYSIZE = 13 +PP_KEYEXCHANGE_ALG = 14 +PP_SIGNATURE_ALG = 15 +PP_DELETEKEY = 24 +PROV_RSA_FULL = 1 +PROV_RSA_SIG = 2 +PROV_DSS = 3 +PROV_FORTEZZA = 4 +PROV_MS_EXCHANGE = 5 +PROV_SSL = 6 +PROV_RSA_SCHANNEL = 12 +PROV_DSS_DH = 13 +PROV_EC_ECDSA_SIG = 14 +PROV_EC_ECNRA_SIG = 15 +PROV_EC_ECDSA_FULL = 16 +PROV_EC_ECNRA_FULL = 17 +PROV_DH_SCHANNEL = 18 +PROV_SPYRUS_LYNKS = 20 +PROV_RNG = 21 +PROV_INTEL_SEC = 22 +PROV_REPLACE_OWF = 23 +PROV_RSA_AES = 24 +MS_DEF_PROV_A = "Microsoft Base Cryptographic Provider v1.0" +MS_DEF_PROV = MS_DEF_PROV_A +MS_ENHANCED_PROV_A = "Microsoft Enhanced Cryptographic Provider v1.0" +MS_ENHANCED_PROV = MS_ENHANCED_PROV_A +MS_STRONG_PROV_A = "Microsoft Strong Cryptographic Provider" +MS_STRONG_PROV = MS_STRONG_PROV_A +MS_DEF_RSA_SIG_PROV_A = "Microsoft RSA Signature Cryptographic Provider" +MS_DEF_RSA_SIG_PROV = MS_DEF_RSA_SIG_PROV_A +MS_DEF_RSA_SCHANNEL_PROV_A = "Microsoft RSA SChannel Cryptographic Provider" +MS_DEF_RSA_SCHANNEL_PROV = MS_DEF_RSA_SCHANNEL_PROV_A +MS_DEF_DSS_PROV_A = "Microsoft Base DSS Cryptographic Provider" +MS_DEF_DSS_PROV = MS_DEF_DSS_PROV_A +MS_DEF_DSS_DH_PROV_A = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" +MS_DEF_DSS_DH_PROV = MS_DEF_DSS_DH_PROV_A +MS_ENH_DSS_DH_PROV_A = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" +MS_ENH_DSS_DH_PROV = MS_ENH_DSS_DH_PROV_A +MS_DEF_DH_SCHANNEL_PROV_A = "Microsoft DH SChannel Cryptographic Provider" +MS_DEF_DH_SCHANNEL_PROV = MS_DEF_DH_SCHANNEL_PROV_A +MS_SCARD_PROV_A = "Microsoft Base Smart Card Crypto Provider" +MS_SCARD_PROV = MS_SCARD_PROV_A +MS_ENH_RSA_AES_PROV_A = "Microsoft Enhanced RSA and AES Cryptographic Provider" +MS_ENH_RSA_AES_PROV = MS_ENH_RSA_AES_PROV_A +MAXUIDLEN = 64 +EXPO_OFFLOAD_REG_VALUE = "ExpoOffload" +EXPO_OFFLOAD_FUNC_NAME = "OffloadModExpo" +szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS = \ + "Software\\Policies\\Microsoft\\Cryptography" +szFORCE_KEY_PROTECTION = "ForceKeyProtection" +dwFORCE_KEY_PROTECTION_DISABLED = 0x0 +dwFORCE_KEY_PROTECTION_USER_SELECT = 0x1 +dwFORCE_KEY_PROTECTION_HIGH = 0x2 +szKEY_CACHE_ENABLED = "CachePrivateKeys" +szKEY_CACHE_SECONDS = "PrivateKeyLifetimeSeconds" +CUR_BLOB_VERSION = 2 +SCHANNEL_MAC_KEY = 0x00000000 +SCHANNEL_ENC_KEY = 0x00000001 +INTERNATIONAL_USAGE = 0x00000001 +szOID_RSA = "1.2.840.113549" +szOID_PKCS = "1.2.840.113549.1" +szOID_RSA_HASH = "1.2.840.113549.2" +szOID_RSA_ENCRYPT = "1.2.840.113549.3" +szOID_PKCS_1 = "1.2.840.113549.1.1" +szOID_PKCS_2 = "1.2.840.113549.1.2" +szOID_PKCS_3 = "1.2.840.113549.1.3" +szOID_PKCS_4 = "1.2.840.113549.1.4" +szOID_PKCS_5 = "1.2.840.113549.1.5" +szOID_PKCS_6 = "1.2.840.113549.1.6" +szOID_PKCS_7 = "1.2.840.113549.1.7" +szOID_PKCS_8 = "1.2.840.113549.1.8" +szOID_PKCS_9 = "1.2.840.113549.1.9" +szOID_PKCS_10 = "1.2.840.113549.1.10" +szOID_PKCS_12 = "1.2.840.113549.1.12" +szOID_RSA_RSA = "1.2.840.113549.1.1.1" +szOID_RSA_MD2RSA = "1.2.840.113549.1.1.2" +szOID_RSA_MD4RSA = "1.2.840.113549.1.1.3" +szOID_RSA_MD5RSA = "1.2.840.113549.1.1.4" +szOID_RSA_SHA1RSA = "1.2.840.113549.1.1.5" +szOID_RSA_SETOAEP_RSA = "1.2.840.113549.1.1.6" +szOID_RSA_DH = "1.2.840.113549.1.3.1" +szOID_RSA_data = "1.2.840.113549.1.7.1" +szOID_RSA_signedData = "1.2.840.113549.1.7.2" +szOID_RSA_envelopedData = "1.2.840.113549.1.7.3" +szOID_RSA_signEnvData = "1.2.840.113549.1.7.4" +szOID_RSA_digestedData = "1.2.840.113549.1.7.5" +szOID_RSA_hashedData = "1.2.840.113549.1.7.5" +szOID_RSA_encryptedData = "1.2.840.113549.1.7.6" +szOID_RSA_emailAddr = "1.2.840.113549.1.9.1" +szOID_RSA_unstructName = "1.2.840.113549.1.9.2" +szOID_RSA_contentType = "1.2.840.113549.1.9.3" +szOID_RSA_messageDigest = "1.2.840.113549.1.9.4" +szOID_RSA_signingTime = "1.2.840.113549.1.9.5" +szOID_RSA_counterSign = "1.2.840.113549.1.9.6" +szOID_RSA_challengePwd = "1.2.840.113549.1.9.7" +szOID_RSA_unstructAddr = "1.2.840.113549.1.9.8" +szOID_RSA_extCertAttrs = "1.2.840.113549.1.9.9" +szOID_RSA_certExtensions = "1.2.840.113549.1.9.14" +szOID_RSA_SMIMECapabilities = "1.2.840.113549.1.9.15" +szOID_RSA_preferSignedData = "1.2.840.113549.1.9.15.1" +szOID_RSA_SMIMEalg = "1.2.840.113549.1.9.16.3" +szOID_RSA_SMIMEalgESDH = "1.2.840.113549.1.9.16.3.5" +szOID_RSA_SMIMEalgCMS3DESwrap = "1.2.840.113549.1.9.16.3.6" +szOID_RSA_SMIMEalgCMSRC2wrap = "1.2.840.113549.1.9.16.3.7" +szOID_RSA_MD2 = "1.2.840.113549.2.2" +szOID_RSA_MD4 = "1.2.840.113549.2.4" +szOID_RSA_MD5 = "1.2.840.113549.2.5" +szOID_RSA_RC2CBC = "1.2.840.113549.3.2" +szOID_RSA_RC4 = "1.2.840.113549.3.4" +szOID_RSA_DES_EDE3_CBC = "1.2.840.113549.3.7" +szOID_RSA_RC5_CBCPad = "1.2.840.113549.3.9" +szOID_ANSI_X942 = "1.2.840.10046" +szOID_ANSI_X942_DH = "1.2.840.10046.2.1" +szOID_X957 = "1.2.840.10040" +szOID_X957_DSA = "1.2.840.10040.4.1" +szOID_X957_SHA1DSA = "1.2.840.10040.4.3" +szOID_DS = "2.5" +szOID_DSALG = "2.5.8" +szOID_DSALG_CRPT = "2.5.8.1" +szOID_DSALG_HASH = "2.5.8.2" +szOID_DSALG_SIGN = "2.5.8.3" +szOID_DSALG_RSA = "2.5.8.1.1" +szOID_OIW = "1.3.14" +szOID_OIWSEC = "1.3.14.3.2" +szOID_OIWSEC_md4RSA = "1.3.14.3.2.2" +szOID_OIWSEC_md5RSA = "1.3.14.3.2.3" +szOID_OIWSEC_md4RSA2 = "1.3.14.3.2.4" +szOID_OIWSEC_desECB = "1.3.14.3.2.6" +szOID_OIWSEC_desCBC = "1.3.14.3.2.7" +szOID_OIWSEC_desOFB = "1.3.14.3.2.8" +szOID_OIWSEC_desCFB = "1.3.14.3.2.9" +szOID_OIWSEC_desMAC = "1.3.14.3.2.10" +szOID_OIWSEC_rsaSign = "1.3.14.3.2.11" +szOID_OIWSEC_dsa = "1.3.14.3.2.12" +szOID_OIWSEC_shaDSA = "1.3.14.3.2.13" +szOID_OIWSEC_mdc2RSA = "1.3.14.3.2.14" +szOID_OIWSEC_shaRSA = "1.3.14.3.2.15" +szOID_OIWSEC_dhCommMod = "1.3.14.3.2.16" +szOID_OIWSEC_desEDE = "1.3.14.3.2.17" +szOID_OIWSEC_sha = "1.3.14.3.2.18" +szOID_OIWSEC_mdc2 = "1.3.14.3.2.19" +szOID_OIWSEC_dsaComm = "1.3.14.3.2.20" +szOID_OIWSEC_dsaCommSHA = "1.3.14.3.2.21" +szOID_OIWSEC_rsaXchg = "1.3.14.3.2.22" +szOID_OIWSEC_keyHashSeal = "1.3.14.3.2.23" +szOID_OIWSEC_md2RSASign = "1.3.14.3.2.24" +szOID_OIWSEC_md5RSASign = "1.3.14.3.2.25" +szOID_OIWSEC_sha1 = "1.3.14.3.2.26" +szOID_OIWSEC_dsaSHA1 = "1.3.14.3.2.27" +szOID_OIWSEC_dsaCommSHA1 = "1.3.14.3.2.28" +szOID_OIWSEC_sha1RSASign = "1.3.14.3.2.29" +szOID_OIWDIR = "1.3.14.7.2" +szOID_OIWDIR_CRPT = "1.3.14.7.2.1" +szOID_OIWDIR_HASH = "1.3.14.7.2.2" +szOID_OIWDIR_SIGN = "1.3.14.7.2.3" +szOID_OIWDIR_md2 = "1.3.14.7.2.2.1" +szOID_OIWDIR_md2RSA = "1.3.14.7.2.3.1" +szOID_INFOSEC = "2.16.840.1.101.2.1" +szOID_INFOSEC_sdnsSignature = "2.16.840.1.101.2.1.1.1" +szOID_INFOSEC_mosaicSignature = "2.16.840.1.101.2.1.1.2" +szOID_INFOSEC_sdnsConfidentiality = "2.16.840.1.101.2.1.1.3" +szOID_INFOSEC_mosaicConfidentiality = "2.16.840.1.101.2.1.1.4" +szOID_INFOSEC_sdnsIntegrity = "2.16.840.1.101.2.1.1.5" +szOID_INFOSEC_mosaicIntegrity = "2.16.840.1.101.2.1.1.6" +szOID_INFOSEC_sdnsTokenProtection = "2.16.840.1.101.2.1.1.7" +szOID_INFOSEC_mosaicTokenProtection = "2.16.840.1.101.2.1.1.8" +szOID_INFOSEC_sdnsKeyManagement = "2.16.840.1.101.2.1.1.9" +szOID_INFOSEC_mosaicKeyManagement = "2.16.840.1.101.2.1.1.10" +szOID_INFOSEC_sdnsKMandSig = "2.16.840.1.101.2.1.1.11" +szOID_INFOSEC_mosaicKMandSig = "2.16.840.1.101.2.1.1.12" +szOID_INFOSEC_SuiteASignature = "2.16.840.1.101.2.1.1.13" +szOID_INFOSEC_SuiteAConfidentiality = "2.16.840.1.101.2.1.1.14" +szOID_INFOSEC_SuiteAIntegrity = "2.16.840.1.101.2.1.1.15" +szOID_INFOSEC_SuiteATokenProtection = "2.16.840.1.101.2.1.1.16" +szOID_INFOSEC_SuiteAKeyManagement = "2.16.840.1.101.2.1.1.17" +szOID_INFOSEC_SuiteAKMandSig = "2.16.840.1.101.2.1.1.18" +szOID_INFOSEC_mosaicUpdatedSig = "2.16.840.1.101.2.1.1.19" +szOID_INFOSEC_mosaicKMandUpdSig = "2.16.840.1.101.2.1.1.20" +szOID_INFOSEC_mosaicUpdatedInteg = "2.16.840.1.101.2.1.1.21" +szOID_COMMON_NAME = "2.5.4.3" +szOID_SUR_NAME = "2.5.4.4" +szOID_DEVICE_SERIAL_NUMBER = "2.5.4.5" +szOID_COUNTRY_NAME = "2.5.4.6" +szOID_LOCALITY_NAME = "2.5.4.7" +szOID_STATE_OR_PROVINCE_NAME = "2.5.4.8" +szOID_STREET_ADDRESS = "2.5.4.9" +szOID_ORGANIZATION_NAME = "2.5.4.10" +szOID_ORGANIZATIONAL_UNIT_NAME = "2.5.4.11" +szOID_TITLE = "2.5.4.12" +szOID_DESCRIPTION = "2.5.4.13" +szOID_SEARCH_GUIDE = "2.5.4.14" +szOID_BUSINESS_CATEGORY = "2.5.4.15" +szOID_POSTAL_ADDRESS = "2.5.4.16" +szOID_POSTAL_CODE = "2.5.4.17" +szOID_POST_OFFICE_BOX = "2.5.4.18" +szOID_PHYSICAL_DELIVERY_OFFICE_NAME = "2.5.4.19" +szOID_TELEPHONE_NUMBER = "2.5.4.20" +szOID_TELEX_NUMBER = "2.5.4.21" +szOID_TELETEXT_TERMINAL_IDENTIFIER = "2.5.4.22" +szOID_FACSIMILE_TELEPHONE_NUMBER = "2.5.4.23" +szOID_X21_ADDRESS = "2.5.4.24" +szOID_INTERNATIONAL_ISDN_NUMBER = "2.5.4.25" +szOID_REGISTERED_ADDRESS = "2.5.4.26" +szOID_DESTINATION_INDICATOR = "2.5.4.27" +szOID_PREFERRED_DELIVERY_METHOD = "2.5.4.28" +szOID_PRESENTATION_ADDRESS = "2.5.4.29" +szOID_SUPPORTED_APPLICATION_CONTEXT = "2.5.4.30" +szOID_MEMBER = "2.5.4.31" +szOID_OWNER = "2.5.4.32" +szOID_ROLE_OCCUPANT = "2.5.4.33" +szOID_SEE_ALSO = "2.5.4.34" +szOID_USER_PASSWORD = "2.5.4.35" +szOID_USER_CERTIFICATE = "2.5.4.36" +szOID_CA_CERTIFICATE = "2.5.4.37" +szOID_AUTHORITY_REVOCATION_LIST = "2.5.4.38" +szOID_CERTIFICATE_REVOCATION_LIST = "2.5.4.39" +szOID_CROSS_CERTIFICATE_PAIR = "2.5.4.40" +szOID_GIVEN_NAME = "2.5.4.42" +szOID_INITIALS = "2.5.4.43" +szOID_DN_QUALIFIER = "2.5.4.46" +szOID_DOMAIN_COMPONENT = "0.9.2342.19200300.100.1.25" +szOID_PKCS_12_FRIENDLY_NAME_ATTR = "1.2.840.113549.1.9.20" +szOID_PKCS_12_LOCAL_KEY_ID = "1.2.840.113549.1.9.21" +szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR = "1.3.6.1.4.1.311.17.1" +szOID_LOCAL_MACHINE_KEYSET = "1.3.6.1.4.1.311.17.2" +szOID_KEYID_RDN = "1.3.6.1.4.1.311.10.7.1" +CERT_RDN_ANY_TYPE = 0 +CERT_RDN_ENCODED_BLOB = 1 +CERT_RDN_OCTET_STRING = 2 +CERT_RDN_NUMERIC_STRING = 3 +CERT_RDN_PRINTABLE_STRING = 4 +CERT_RDN_TELETEX_STRING = 5 +CERT_RDN_T61_STRING = 5 +CERT_RDN_VIDEOTEX_STRING = 6 +CERT_RDN_IA5_STRING = 7 +CERT_RDN_GRAPHIC_STRING = 8 +CERT_RDN_VISIBLE_STRING = 9 +CERT_RDN_ISO646_STRING = 9 +CERT_RDN_GENERAL_STRING = 10 +CERT_RDN_UNIVERSAL_STRING = 11 +CERT_RDN_INT4_STRING = 11 +CERT_RDN_BMP_STRING = 12 +CERT_RDN_UNICODE_STRING = 12 +CERT_RDN_UTF8_STRING = 13 +CERT_RDN_TYPE_MASK = 0x000000FF +CERT_RDN_FLAGS_MASK = (-16777216) +CERT_RDN_ENABLE_T61_UNICODE_FLAG = (-2147483648) +CERT_RDN_ENABLE_UTF8_UNICODE_FLAG = 0x20000000 +CERT_RDN_DISABLE_CHECK_TYPE_FLAG = 0x40000000 +CERT_RDN_DISABLE_IE4_UTF8_FLAG = 0x01000000 +CERT_RSA_PUBLIC_KEY_OBJID = szOID_RSA_RSA +CERT_DEFAULT_OID_PUBLIC_KEY_SIGN = szOID_RSA_RSA +CERT_DEFAULT_OID_PUBLIC_KEY_XCHG = szOID_RSA_RSA +CERT_V1 = 0 +CERT_V2 = 1 +CERT_V3 = 2 +CERT_INFO_VERSION_FLAG = 1 +CERT_INFO_SERIAL_NUMBER_FLAG = 2 +CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 +CERT_INFO_ISSUER_FLAG = 4 +CERT_INFO_NOT_BEFORE_FLAG = 5 +CERT_INFO_NOT_AFTER_FLAG = 6 +CERT_INFO_SUBJECT_FLAG = 7 +CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 +CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 +CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 +CERT_INFO_EXTENSION_FLAG = 11 +CRL_V1 = 0 +CRL_V2 = 1 +CERT_REQUEST_V1 = 0 +CERT_KEYGEN_REQUEST_V1 = 0 +CTL_V1 = 0 +CERT_ENCODING_TYPE_MASK = 0x0000FFFF +CMSG_ENCODING_TYPE_MASK = (-65536) +def GET_CERT_ENCODING_TYPE(X): return (X & CERT_ENCODING_TYPE_MASK) + +def GET_CMSG_ENCODING_TYPE(X): return (X & CMSG_ENCODING_TYPE_MASK) + +CRYPT_ASN_ENCODING = 0x00000001 +CRYPT_NDR_ENCODING = 0x00000002 +X509_ASN_ENCODING = 0x00000001 +X509_NDR_ENCODING = 0x00000002 +PKCS_7_ASN_ENCODING = 0x00010000 +PKCS_7_NDR_ENCODING = 0x00020000 +CRYPT_FORMAT_STR_MULTI_LINE = 0x0001 +CRYPT_FORMAT_STR_NO_HEX = 0x0010 +CRYPT_FORMAT_SIMPLE = 0x0001 +CRYPT_FORMAT_X509 = 0x0002 +CRYPT_FORMAT_OID = 0x0004 +CRYPT_FORMAT_RDN_SEMICOLON = 0x0100 +CRYPT_FORMAT_RDN_CRLF = 0x0200 +CRYPT_FORMAT_RDN_UNQUOTE = 0x0400 +CRYPT_FORMAT_RDN_REVERSE = 0x0800 +CRYPT_FORMAT_COMMA = 0x1000 +CRYPT_FORMAT_SEMICOLON = CRYPT_FORMAT_RDN_SEMICOLON +CRYPT_FORMAT_CRLF = CRYPT_FORMAT_RDN_CRLF +CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG = 0x8 +CRYPT_ENCODE_ALLOC_FLAG = 0x8000 +CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG = \ + CERT_RDN_ENABLE_T61_UNICODE_FLAG +CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG = \ + CERT_RDN_ENABLE_UTF8_UNICODE_FLAG +CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG = \ + CERT_RDN_DISABLE_CHECK_TYPE_FLAG +CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x10000 +CRYPT_DECODE_NOCOPY_FLAG = 0x1 +CRYPT_DECODE_TO_BE_SIGNED_FLAG = 0x2 +CRYPT_DECODE_SHARE_OID_STRING_FLAG = 0x4 +CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG = 0x8 +CRYPT_DECODE_ALLOC_FLAG = 0x8000 +CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG = \ + CERT_RDN_DISABLE_IE4_UTF8_FLAG + +CRYPT_ENCODE_DECODE_NONE = 0 +X509_CERT = 1 +X509_CERT_TO_BE_SIGNED = 2 +X509_CERT_CRL_TO_BE_SIGNED = 3 +X509_CERT_REQUEST_TO_BE_SIGNED = 4 +X509_EXTENSIONS = 5 +X509_NAME_VALUE = 6 +X509_NAME = 7 +X509_PUBLIC_KEY_INFO = 8 +X509_AUTHORITY_KEY_ID = 9 +X509_KEY_ATTRIBUTES = 10 +X509_KEY_USAGE_RESTRICTION = 11 +X509_ALTERNATE_NAME = 12 +X509_BASIC_CONSTRAINTS = 13 +X509_KEY_USAGE = 14 +X509_BASIC_CONSTRAINTS2 = 15 +X509_CERT_POLICIES = 16 +PKCS_UTC_TIME = 17 +PKCS_TIME_REQUEST = 18 +RSA_CSP_PUBLICKEYBLOB = 19 +X509_UNICODE_NAME = 20 +X509_KEYGEN_REQUEST_TO_BE_SIGNED = 21 +PKCS_ATTRIBUTE = 22 +PKCS_CONTENT_INFO_SEQUENCE_OF_ANY = 23 +X509_UNICODE_NAME_VALUE = 24 +X509_ANY_STRING = X509_NAME_VALUE +X509_UNICODE_ANY_STRING = X509_UNICODE_NAME_VALUE +X509_OCTET_STRING = 25 +X509_BITS = 26 +X509_INTEGER = 27 +X509_MULTI_BYTE_INTEGER = 28 +X509_ENUMERATED = 29 +X509_CHOICE_OF_TIME = 30 +X509_AUTHORITY_KEY_ID2 = 31 +X509_AUTHORITY_INFO_ACCESS = 32 +X509_SUBJECT_INFO_ACCESS = X509_AUTHORITY_INFO_ACCESS +X509_CRL_REASON_CODE = X509_ENUMERATED +PKCS_CONTENT_INFO = 33 +X509_SEQUENCE_OF_ANY = 34 +X509_CRL_DIST_POINTS = 35 +X509_ENHANCED_KEY_USAGE = 36 +PKCS_CTL = 37 +X509_MULTI_BYTE_UINT = 38 +X509_DSS_PUBLICKEY = X509_MULTI_BYTE_UINT +X509_DSS_PARAMETERS = 39 +X509_DSS_SIGNATURE = 40 +PKCS_RC2_CBC_PARAMETERS = 41 +PKCS_SMIME_CAPABILITIES = 42 +X509_QC_STATEMENTS_EXT = 42 +PKCS_RSA_PRIVATE_KEY = 43 +PKCS_PRIVATE_KEY_INFO = 44 +PKCS_ENCRYPTED_PRIVATE_KEY_INFO = 45 +X509_PKIX_POLICY_QUALIFIER_USERNOTICE = 46 +X509_DH_PUBLICKEY = X509_MULTI_BYTE_UINT +X509_DH_PARAMETERS = 47 +PKCS_ATTRIBUTES = 48 +PKCS_SORTED_CTL = 49 +X509_ECC_SIGNATURE = 47 +X942_DH_PARAMETERS = 50 +X509_BITS_WITHOUT_TRAILING_ZEROES = 51 +X942_OTHER_INFO = 52 +X509_CERT_PAIR = 53 +X509_ISSUING_DIST_POINT = 54 +X509_NAME_CONSTRAINTS = 55 +X509_POLICY_MAPPINGS = 56 +X509_POLICY_CONSTRAINTS = 57 +X509_CROSS_CERT_DIST_POINTS = 58 +CMC_DATA = 59 +CMC_RESPONSE = 60 +CMC_STATUS = 61 +CMC_ADD_EXTENSIONS = 62 +CMC_ADD_ATTRIBUTES = 63 +X509_CERTIFICATE_TEMPLATE = 64 +OCSP_SIGNED_REQUEST = 65 +OCSP_REQUEST = 66 +OCSP_RESPONSE = 67 +OCSP_BASIC_SIGNED_RESPONSE = 68 +OCSP_BASIC_RESPONSE = 69 +X509_LOGOTYPE_EXT = 70 +X509_BIOMETRIC_EXT = 71 +CNG_RSA_PUBLIC_KEY_BLOB = 72 +X509_OBJECT_IDENTIFIER = 73 +X509_ALGORITHM_IDENTIFIER = 74 +PKCS_RSA_SSA_PSS_PARAMETERS = 75 +PKCS_RSAES_OAEP_PARAMETERS = 76 +ECC_CMS_SHARED_INFO = 77 +TIMESTAMP_REQUEST = 78 +TIMESTAMP_RESPONSE = 79 +TIMESTAMP_INFO = 80 +X509_CERT_BUNDLE = 81 +PKCS7_SIGNER_INFO = 500 +CMS_SIGNER_INFO = 501 + +szOID_AUTHORITY_KEY_IDENTIFIER = "2.5.29.1" +szOID_KEY_ATTRIBUTES = "2.5.29.2" +szOID_CERT_POLICIES_95 = "2.5.29.3" +szOID_KEY_USAGE_RESTRICTION = "2.5.29.4" +szOID_SUBJECT_ALT_NAME = "2.5.29.7" +szOID_ISSUER_ALT_NAME = "2.5.29.8" +szOID_BASIC_CONSTRAINTS = "2.5.29.10" +szOID_KEY_USAGE = "2.5.29.15" +szOID_PRIVATEKEY_USAGE_PERIOD = "2.5.29.16" +szOID_BASIC_CONSTRAINTS2 = "2.5.29.19" +szOID_CERT_POLICIES = "2.5.29.32" +szOID_ANY_CERT_POLICY = "2.5.29.32.0" +szOID_AUTHORITY_KEY_IDENTIFIER2 = "2.5.29.35" +szOID_SUBJECT_KEY_IDENTIFIER = "2.5.29.14" +szOID_SUBJECT_ALT_NAME2 = "2.5.29.17" +szOID_ISSUER_ALT_NAME2 = "2.5.29.18" +szOID_CRL_REASON_CODE = "2.5.29.21" +szOID_REASON_CODE_HOLD = "2.5.29.23" +szOID_CRL_DIST_POINTS = "2.5.29.31" +szOID_ENHANCED_KEY_USAGE = "2.5.29.37" +szOID_CRL_NUMBER = "2.5.29.20" +szOID_DELTA_CRL_INDICATOR = "2.5.29.27" +szOID_ISSUING_DIST_POINT = "2.5.29.28" +szOID_FRESHEST_CRL = "2.5.29.46" +szOID_NAME_CONSTRAINTS = "2.5.29.30" +szOID_POLICY_MAPPINGS = "2.5.29.33" +szOID_LEGACY_POLICY_MAPPINGS = "2.5.29.5" +szOID_POLICY_CONSTRAINTS = "2.5.29.36" +szOID_RENEWAL_CERTIFICATE = "1.3.6.1.4.1.311.13.1" +szOID_ENROLLMENT_NAME_VALUE_PAIR = "1.3.6.1.4.1.311.13.2.1" +szOID_ENROLLMENT_CSP_PROVIDER = "1.3.6.1.4.1.311.13.2.2" +szOID_OS_VERSION = "1.3.6.1.4.1.311.13.2.3" +szOID_ENROLLMENT_AGENT = "1.3.6.1.4.1.311.20.2.1" +szOID_PKIX = "1.3.6.1.5.5.7" +szOID_PKIX_PE = "1.3.6.1.5.5.7.1" +szOID_AUTHORITY_INFO_ACCESS = "1.3.6.1.5.5.7.1.1" +szOID_CERT_EXTENSIONS = "1.3.6.1.4.1.311.2.1.14" +szOID_NEXT_UPDATE_LOCATION = "1.3.6.1.4.1.311.10.2" +szOID_REMOVE_CERTIFICATE = "1.3.6.1.4.1.311.10.8.1" +szOID_CROSS_CERT_DIST_POINTS = "1.3.6.1.4.1.311.10.9.1" +szOID_CTL = "1.3.6.1.4.1.311.10.1" +szOID_SORTED_CTL = "1.3.6.1.4.1.311.10.1.1" +szOID_SERIALIZED = "1.3.6.1.4.1.311.10.3.3.1" +szOID_NT_PRINCIPAL_NAME = "1.3.6.1.4.1.311.20.2.3" +szOID_PRODUCT_UPDATE = "1.3.6.1.4.1.311.31.1" +szOID_ANY_APPLICATION_POLICY = "1.3.6.1.4.1.311.10.12.1" +szOID_AUTO_ENROLL_CTL_USAGE = "1.3.6.1.4.1.311.20.1" +szOID_ENROLL_CERTTYPE_EXTENSION = "1.3.6.1.4.1.311.20.2" +szOID_CERT_MANIFOLD = "1.3.6.1.4.1.311.20.3" +szOID_CERTSRV_CA_VERSION = "1.3.6.1.4.1.311.21.1" +szOID_CERTSRV_PREVIOUS_CERT_HASH = "1.3.6.1.4.1.311.21.2" +szOID_CRL_VIRTUAL_BASE = "1.3.6.1.4.1.311.21.3" +szOID_CRL_NEXT_PUBLISH = "1.3.6.1.4.1.311.21.4" +szOID_KP_CA_EXCHANGE = "1.3.6.1.4.1.311.21.5" +szOID_KP_KEY_RECOVERY_AGENT = "1.3.6.1.4.1.311.21.6" +szOID_CERTIFICATE_TEMPLATE = "1.3.6.1.4.1.311.21.7" +szOID_ENTERPRISE_OID_ROOT = "1.3.6.1.4.1.311.21.8" +szOID_RDN_DUMMY_SIGNER = "1.3.6.1.4.1.311.21.9" +szOID_APPLICATION_CERT_POLICIES = "1.3.6.1.4.1.311.21.10" +szOID_APPLICATION_POLICY_MAPPINGS = "1.3.6.1.4.1.311.21.11" +szOID_APPLICATION_POLICY_CONSTRAINTS = "1.3.6.1.4.1.311.21.12" +szOID_ARCHIVED_KEY_ATTR = "1.3.6.1.4.1.311.21.13" +szOID_CRL_SELF_CDP = "1.3.6.1.4.1.311.21.14" +szOID_REQUIRE_CERT_CHAIN_POLICY = "1.3.6.1.4.1.311.21.15" +szOID_ARCHIVED_KEY_CERT_HASH = "1.3.6.1.4.1.311.21.16" +szOID_ISSUED_CERT_HASH = "1.3.6.1.4.1.311.21.17" +szOID_DS_EMAIL_REPLICATION = "1.3.6.1.4.1.311.21.19" +szOID_REQUEST_CLIENT_INFO = "1.3.6.1.4.1.311.21.20" +szOID_ENCRYPTED_KEY_HASH = "1.3.6.1.4.1.311.21.21" +szOID_CERTSRV_CROSSCA_VERSION = "1.3.6.1.4.1.311.21.22" +szOID_NTDS_REPLICATION = "1.3.6.1.4.1.311.25.1" +szOID_SUBJECT_DIR_ATTRS = "2.5.29.9" +szOID_PKIX_KP = "1.3.6.1.5.5.7.3" +szOID_PKIX_KP_SERVER_AUTH = "1.3.6.1.5.5.7.3.1" +szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2" +szOID_PKIX_KP_CODE_SIGNING = "1.3.6.1.5.5.7.3.3" +szOID_PKIX_KP_EMAIL_PROTECTION = "1.3.6.1.5.5.7.3.4" +szOID_PKIX_KP_IPSEC_END_SYSTEM = "1.3.6.1.5.5.7.3.5" +szOID_PKIX_KP_IPSEC_TUNNEL = "1.3.6.1.5.5.7.3.6" +szOID_PKIX_KP_IPSEC_USER = "1.3.6.1.5.5.7.3.7" +szOID_PKIX_KP_TIMESTAMP_SIGNING = "1.3.6.1.5.5.7.3.8" +szOID_IPSEC_KP_IKE_INTERMEDIATE = "1.3.6.1.5.5.8.2.2" +szOID_KP_CTL_USAGE_SIGNING = "1.3.6.1.4.1.311.10.3.1" +szOID_KP_TIME_STAMP_SIGNING = "1.3.6.1.4.1.311.10.3.2" +szOID_SERVER_GATED_CRYPTO = "1.3.6.1.4.1.311.10.3.3" +szOID_SGC_NETSCAPE = "2.16.840.1.113730.4.1" +szOID_KP_EFS = "1.3.6.1.4.1.311.10.3.4" +szOID_EFS_RECOVERY = "1.3.6.1.4.1.311.10.3.4.1" +szOID_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.5" +szOID_NT5_CRYPTO = "1.3.6.1.4.1.311.10.3.6" +szOID_OEM_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.7" +szOID_EMBEDDED_NT_CRYPTO = "1.3.6.1.4.1.311.10.3.8" +szOID_ROOT_LIST_SIGNER = "1.3.6.1.4.1.311.10.3.9" +szOID_KP_QUALIFIED_SUBORDINATION = "1.3.6.1.4.1.311.10.3.10" +szOID_KP_KEY_RECOVERY = "1.3.6.1.4.1.311.10.3.11" +szOID_KP_DOCUMENT_SIGNING = "1.3.6.1.4.1.311.10.3.12" +szOID_KP_LIFETIME_SIGNING = "1.3.6.1.4.1.311.10.3.13" +szOID_KP_MOBILE_DEVICE_SOFTWARE = "1.3.6.1.4.1.311.10.3.14" +szOID_DRM = "1.3.6.1.4.1.311.10.5.1" +szOID_DRM_INDIVIDUALIZATION = "1.3.6.1.4.1.311.10.5.2" +szOID_LICENSES = "1.3.6.1.4.1.311.10.6.1" +szOID_LICENSE_SERVER = "1.3.6.1.4.1.311.10.6.2" +szOID_KP_SMARTCARD_LOGON = "1.3.6.1.4.1.311.20.2.2" +szOID_YESNO_TRUST_ATTR = "1.3.6.1.4.1.311.10.4.1" +szOID_PKIX_POLICY_QUALIFIER_CPS = "1.3.6.1.5.5.7.2.1" +szOID_PKIX_POLICY_QUALIFIER_USERNOTICE = "1.3.6.1.5.5.7.2.2" +szOID_CERT_POLICIES_95_QUALIFIER1 = "2.16.840.1.113733.1.7.1.1" +CERT_UNICODE_RDN_ERR_INDEX_MASK = 0x3FF +CERT_UNICODE_RDN_ERR_INDEX_SHIFT = 22 +CERT_UNICODE_ATTR_ERR_INDEX_MASK = 0x003F +CERT_UNICODE_ATTR_ERR_INDEX_SHIFT = 16 +CERT_UNICODE_VALUE_ERR_INDEX_MASK = 0x0000FFFF +CERT_UNICODE_VALUE_ERR_INDEX_SHIFT = 0 +CERT_DIGITAL_SIGNATURE_KEY_USAGE = 0x80 +CERT_NON_REPUDIATION_KEY_USAGE = 0x40 +CERT_KEY_ENCIPHERMENT_KEY_USAGE = 0x20 +CERT_DATA_ENCIPHERMENT_KEY_USAGE = 0x10 +CERT_KEY_AGREEMENT_KEY_USAGE = 0x08 +CERT_KEY_CERT_SIGN_KEY_USAGE = 0x04 +CERT_OFFLINE_CRL_SIGN_KEY_USAGE = 0x02 +CERT_CRL_SIGN_KEY_USAGE = 0x02 +CERT_ENCIPHER_ONLY_KEY_USAGE = 0x01 +CERT_DECIPHER_ONLY_KEY_USAGE = 0x80 +CERT_ALT_NAME_OTHER_NAME = 1 +CERT_ALT_NAME_RFC822_NAME = 2 +CERT_ALT_NAME_DNS_NAME = 3 +CERT_ALT_NAME_X400_ADDRESS = 4 +CERT_ALT_NAME_DIRECTORY_NAME = 5 +CERT_ALT_NAME_EDI_PARTY_NAME = 6 +CERT_ALT_NAME_URL = 7 +CERT_ALT_NAME_IP_ADDRESS = 8 +CERT_ALT_NAME_REGISTERED_ID = 9 +CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK = 0xFF +CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT = 16 +CERT_ALT_NAME_VALUE_ERR_INDEX_MASK = 0x0000FFFF +CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT = 0 +CERT_CA_SUBJECT_FLAG = 0x80 +CERT_END_ENTITY_SUBJECT_FLAG = 0x40 +szOID_PKIX_ACC_DESCR = "1.3.6.1.5.5.7.48" +szOID_PKIX_OCSP = "1.3.6.1.5.5.7.48.1" +szOID_PKIX_CA_ISSUERS = "1.3.6.1.5.5.7.48.2" +CRL_REASON_UNSPECIFIED = 0 +CRL_REASON_KEY_COMPROMISE = 1 +CRL_REASON_CA_COMPROMISE = 2 +CRL_REASON_AFFILIATION_CHANGED = 3 +CRL_REASON_SUPERSEDED = 4 +CRL_REASON_CESSATION_OF_OPERATION = 5 +CRL_REASON_CERTIFICATE_HOLD = 6 +CRL_REASON_REMOVE_FROM_CRL = 8 +CRL_DIST_POINT_NO_NAME = 0 +CRL_DIST_POINT_FULL_NAME = 1 +CRL_DIST_POINT_ISSUER_RDN_NAME = 2 +CRL_REASON_UNUSED_FLAG = 0x80 +CRL_REASON_KEY_COMPROMISE_FLAG = 0x40 +CRL_REASON_CA_COMPROMISE_FLAG = 0x20 +CRL_REASON_AFFILIATION_CHANGED_FLAG = 0x10 +CRL_REASON_SUPERSEDED_FLAG = 0x08 +CRL_REASON_CESSATION_OF_OPERATION_FLAG = 0x04 +CRL_REASON_CERTIFICATE_HOLD_FLAG = 0x02 +CRL_DIST_POINT_ERR_INDEX_MASK = 0x7F +CRL_DIST_POINT_ERR_INDEX_SHIFT = 24 + +CRL_DIST_POINT_ERR_CRL_ISSUER_BIT = (-2147483648) + +CROSS_CERT_DIST_POINT_ERR_INDEX_MASK = 0xFF +CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT = 24 + +CERT_EXCLUDED_SUBTREE_BIT = (-2147483648) + +SORTED_CTL_EXT_FLAGS_OFFSET = (0*4) +SORTED_CTL_EXT_COUNT_OFFSET = (1*4) +SORTED_CTL_EXT_MAX_COLLISION_OFFSET = (2*4) +SORTED_CTL_EXT_HASH_BUCKET_OFFSET = (3*4) +SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x1 +CERT_DSS_R_LEN = 20 +CERT_DSS_S_LEN = 20 +CERT_DSS_SIGNATURE_LEN = (CERT_DSS_R_LEN + CERT_DSS_S_LEN) +CERT_MAX_ASN_ENCODED_DSS_SIGNATURE_LEN = (2 + 2*(2 + 20 +1)) +CRYPT_X942_COUNTER_BYTE_LENGTH = 4 +CRYPT_X942_KEY_LENGTH_BYTE_LENGTH = 4 +CRYPT_X942_PUB_INFO_BYTE_LENGTH = (512/8) +CRYPT_RC2_40BIT_VERSION = 160 +CRYPT_RC2_56BIT_VERSION = 52 +CRYPT_RC2_64BIT_VERSION = 120 +CRYPT_RC2_128BIT_VERSION = 58 +szOID_VERISIGN_PRIVATE_6_9 = "2.16.840.1.113733.1.6.9" +szOID_VERISIGN_ONSITE_JURISDICTION_HASH = "2.16.840.1.113733.1.6.11" +szOID_VERISIGN_BITSTRING_6_13 = "2.16.840.1.113733.1.6.13" +szOID_VERISIGN_ISS_STRONG_CRYPTO = "2.16.840.1.113733.1.8.1" +szOID_NETSCAPE = "2.16.840.1.113730" +szOID_NETSCAPE_CERT_EXTENSION = "2.16.840.1.113730.1" +szOID_NETSCAPE_CERT_TYPE = "2.16.840.1.113730.1.1" +szOID_NETSCAPE_BASE_URL = "2.16.840.1.113730.1.2" +szOID_NETSCAPE_REVOCATION_URL = "2.16.840.1.113730.1.3" +szOID_NETSCAPE_CA_REVOCATION_URL = "2.16.840.1.113730.1.4" +szOID_NETSCAPE_CERT_RENEWAL_URL = "2.16.840.1.113730.1.7" +szOID_NETSCAPE_CA_POLICY_URL = "2.16.840.1.113730.1.8" +szOID_NETSCAPE_SSL_SERVER_NAME = "2.16.840.1.113730.1.12" +szOID_NETSCAPE_COMMENT = "2.16.840.1.113730.1.13" +szOID_NETSCAPE_DATA_TYPE = "2.16.840.1.113730.2" +szOID_NETSCAPE_CERT_SEQUENCE = "2.16.840.1.113730.2.5" +NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE = 0x80 +NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE = 0x40 +NETSCAPE_SMIME_CERT_TYPE = 0x20 +NETSCAPE_SIGN_CERT_TYPE = 0x10 +NETSCAPE_SSL_CA_CERT_TYPE = 0x04 +NETSCAPE_SMIME_CA_CERT_TYPE = 0x02 +NETSCAPE_SIGN_CA_CERT_TYPE = 0x01 +szOID_CT_PKI_DATA = "1.3.6.1.5.5.7.12.2" +szOID_CT_PKI_RESPONSE = "1.3.6.1.5.5.7.12.3" +szOID_PKIX_NO_SIGNATURE = "1.3.6.1.5.5.7.6.2" +szOID_CMC = "1.3.6.1.5.5.7.7" +szOID_CMC_STATUS_INFO = "1.3.6.1.5.5.7.7.1" +szOID_CMC_IDENTIFICATION = "1.3.6.1.5.5.7.7.2" +szOID_CMC_IDENTITY_PROOF = "1.3.6.1.5.5.7.7.3" +szOID_CMC_DATA_RETURN = "1.3.6.1.5.5.7.7.4" +szOID_CMC_TRANSACTION_ID = "1.3.6.1.5.5.7.7.5" +szOID_CMC_SENDER_NONCE = "1.3.6.1.5.5.7.7.6" +szOID_CMC_RECIPIENT_NONCE = "1.3.6.1.5.5.7.7.7" +szOID_CMC_ADD_EXTENSIONS = "1.3.6.1.5.5.7.7.8" +szOID_CMC_ENCRYPTED_POP = "1.3.6.1.5.5.7.7.9" +szOID_CMC_DECRYPTED_POP = "1.3.6.1.5.5.7.7.10" +szOID_CMC_LRA_POP_WITNESS = "1.3.6.1.5.5.7.7.11" +szOID_CMC_GET_CERT = "1.3.6.1.5.5.7.7.15" +szOID_CMC_GET_CRL = "1.3.6.1.5.5.7.7.16" +szOID_CMC_REVOKE_REQUEST = "1.3.6.1.5.5.7.7.17" +szOID_CMC_REG_INFO = "1.3.6.1.5.5.7.7.18" +szOID_CMC_RESPONSE_INFO = "1.3.6.1.5.5.7.7.19" +szOID_CMC_QUERY_PENDING = "1.3.6.1.5.5.7.7.21" +szOID_CMC_ID_POP_LINK_RANDOM = "1.3.6.1.5.5.7.7.22" +szOID_CMC_ID_POP_LINK_WITNESS = "1.3.6.1.5.5.7.7.23" +szOID_CMC_ID_CONFIRM_CERT_ACCEPTANCE = "1.3.6.1.5.5.7.7.24" +szOID_CMC_ADD_ATTRIBUTES = "1.3.6.1.4.1.311.10.10.1" +CMC_TAGGED_CERT_REQUEST_CHOICE = 1 +CMC_OTHER_INFO_NO_CHOICE = 0 +CMC_OTHER_INFO_FAIL_CHOICE = 1 +CMC_OTHER_INFO_PEND_CHOICE = 2 +CMC_STATUS_SUCCESS = 0 +CMC_STATUS_FAILED = 2 +CMC_STATUS_PENDING = 3 +CMC_STATUS_NO_SUPPORT = 4 +CMC_STATUS_CONFIRM_REQUIRED = 5 +CMC_FAIL_BAD_ALG = 0 +CMC_FAIL_BAD_MESSAGE_CHECK = 1 +CMC_FAIL_BAD_REQUEST = 2 +CMC_FAIL_BAD_TIME = 3 +CMC_FAIL_BAD_CERT_ID = 4 +CMC_FAIL_UNSUPORTED_EXT = 5 +CMC_FAIL_MUST_ARCHIVE_KEYS = 6 +CMC_FAIL_BAD_IDENTITY = 7 +CMC_FAIL_POP_REQUIRED = 8 +CMC_FAIL_POP_FAILED = 9 +CMC_FAIL_NO_KEY_REUSE = 10 +CMC_FAIL_INTERNAL_CA_ERROR = 11 +CMC_FAIL_TRY_LATER = 12 +CRYPT_OID_ENCODE_OBJECT_FUNC = "CryptDllEncodeObject" +CRYPT_OID_DECODE_OBJECT_FUNC = "CryptDllDecodeObject" +CRYPT_OID_ENCODE_OBJECT_EX_FUNC = "CryptDllEncodeObjectEx" +CRYPT_OID_DECODE_OBJECT_EX_FUNC = "CryptDllDecodeObjectEx" +CRYPT_OID_CREATE_COM_OBJECT_FUNC = "CryptDllCreateCOMObject" +CRYPT_OID_VERIFY_REVOCATION_FUNC = "CertDllVerifyRevocation" +CRYPT_OID_VERIFY_CTL_USAGE_FUNC = "CertDllVerifyCTLUsage" +CRYPT_OID_FORMAT_OBJECT_FUNC = "CryptDllFormatObject" +CRYPT_OID_FIND_OID_INFO_FUNC = "CryptDllFindOIDInfo" +CRYPT_OID_FIND_LOCALIZED_NAME_FUNC = "CryptDllFindLocalizedName" + +CRYPT_OID_REGPATH = "Software\\Microsoft\\Cryptography\\OID" +CRYPT_OID_REG_ENCODING_TYPE_PREFIX = "EncodingType " +CRYPT_OID_REG_DLL_VALUE_NAME = "Dll" +CRYPT_OID_REG_FUNC_NAME_VALUE_NAME = "FuncName" +CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A = "FuncName" +CRYPT_OID_REG_FLAGS_VALUE_NAME = "CryptFlags" +CRYPT_DEFAULT_OID = "DEFAULT" +CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG = 1 +CRYPT_GET_INSTALLED_OID_FUNC_FLAG = 0x1 +CRYPT_REGISTER_FIRST_INDEX = 0 +CRYPT_REGISTER_LAST_INDEX = (-1) +CRYPT_MATCH_ANY_ENCODING_TYPE = (-1) +CRYPT_HASH_ALG_OID_GROUP_ID = 1 +CRYPT_ENCRYPT_ALG_OID_GROUP_ID = 2 +CRYPT_PUBKEY_ALG_OID_GROUP_ID = 3 +CRYPT_SIGN_ALG_OID_GROUP_ID = 4 +CRYPT_RDN_ATTR_OID_GROUP_ID = 5 +CRYPT_EXT_OR_ATTR_OID_GROUP_ID = 6 +CRYPT_ENHKEY_USAGE_OID_GROUP_ID = 7 +CRYPT_POLICY_OID_GROUP_ID = 8 +CRYPT_TEMPLATE_OID_GROUP_ID = 9 +CRYPT_LAST_OID_GROUP_ID = 9 +CRYPT_FIRST_ALG_OID_GROUP_ID = CRYPT_HASH_ALG_OID_GROUP_ID +CRYPT_LAST_ALG_OID_GROUP_ID = CRYPT_SIGN_ALG_OID_GROUP_ID +CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG = 0x1 +CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG = 0x2 +CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG = 0x4 +CRYPT_OID_INFO_OID_KEY = 1 +CRYPT_OID_INFO_NAME_KEY = 2 +CRYPT_OID_INFO_ALGID_KEY = 3 +CRYPT_OID_INFO_SIGN_KEY = 4 +CRYPT_INSTALL_OID_INFO_BEFORE_FLAG = 1 +CRYPT_LOCALIZED_NAME_ENCODING_TYPE = 0 +CRYPT_LOCALIZED_NAME_OID = "LocalizedNames" +szOID_PKCS_7_DATA = "1.2.840.113549.1.7.1" +szOID_PKCS_7_SIGNED = "1.2.840.113549.1.7.2" +szOID_PKCS_7_ENVELOPED = "1.2.840.113549.1.7.3" +szOID_PKCS_7_SIGNEDANDENVELOPED = "1.2.840.113549.1.7.4" +szOID_PKCS_7_DIGESTED = "1.2.840.113549.1.7.5" +szOID_PKCS_7_ENCRYPTED = "1.2.840.113549.1.7.6" +szOID_PKCS_9_CONTENT_TYPE = "1.2.840.113549.1.9.3" +szOID_PKCS_9_MESSAGE_DIGEST = "1.2.840.113549.1.9.4" +CMSG_DATA = 1 +CMSG_SIGNED = 2 +CMSG_ENVELOPED = 3 +CMSG_SIGNED_AND_ENVELOPED = 4 +CMSG_HASHED = 5 +CMSG_ENCRYPTED = 6 + +CMSG_ALL_FLAGS = -1 +CMSG_DATA_FLAG = (1 << CMSG_DATA) +CMSG_SIGNED_FLAG = (1 << CMSG_SIGNED) +CMSG_ENVELOPED_FLAG = (1 << CMSG_ENVELOPED) +CMSG_SIGNED_AND_ENVELOPED_FLAG = (1 << CMSG_SIGNED_AND_ENVELOPED) +CMSG_HASHED_FLAG = (1 << CMSG_HASHED) +CMSG_ENCRYPTED_FLAG = (1 << CMSG_ENCRYPTED) +CERT_ID_ISSUER_SERIAL_NUMBER = 1 +CERT_ID_KEY_IDENTIFIER = 2 +CERT_ID_SHA1_HASH = 3 +CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE = 1 +CMSG_KEY_AGREE_STATIC_KEY_CHOICE = 2 +CMSG_MAIL_LIST_HANDLE_KEY_CHOICE = 1 +CMSG_KEY_TRANS_RECIPIENT = 1 +CMSG_KEY_AGREE_RECIPIENT = 2 +CMSG_MAIL_LIST_RECIPIENT = 3 +CMSG_SP3_COMPATIBLE_ENCRYPT_FLAG = (-2147483648) +CMSG_RC4_NO_SALT_FLAG = 0x40000000 +CMSG_INDEFINITE_LENGTH = ((-1)) +CMSG_BARE_CONTENT_FLAG = 0x00000001 +CMSG_LENGTH_ONLY_FLAG = 0x00000002 +CMSG_DETACHED_FLAG = 0x00000004 +CMSG_AUTHENTICATED_ATTRIBUTES_FLAG = 0x00000008 +CMSG_CONTENTS_OCTETS_FLAG = 0x00000010 +CMSG_MAX_LENGTH_FLAG = 0x00000020 +CMSG_CMS_ENCAPSULATED_CONTENT_FLAG = 0x00000040 +CMSG_CRYPT_RELEASE_CONTEXT_FLAG = 0x00008000 +CMSG_TYPE_PARAM = 1 +CMSG_CONTENT_PARAM = 2 +CMSG_BARE_CONTENT_PARAM = 3 +CMSG_INNER_CONTENT_TYPE_PARAM = 4 +CMSG_SIGNER_COUNT_PARAM = 5 +CMSG_SIGNER_INFO_PARAM = 6 +CMSG_SIGNER_CERT_INFO_PARAM = 7 +CMSG_SIGNER_HASH_ALGORITHM_PARAM = 8 +CMSG_SIGNER_AUTH_ATTR_PARAM = 9 +CMSG_SIGNER_UNAUTH_ATTR_PARAM = 10 +CMSG_CERT_COUNT_PARAM = 11 +CMSG_CERT_PARAM = 12 +CMSG_CRL_COUNT_PARAM = 13 +CMSG_CRL_PARAM = 14 +CMSG_ENVELOPE_ALGORITHM_PARAM = 15 +CMSG_RECIPIENT_COUNT_PARAM = 17 +CMSG_RECIPIENT_INDEX_PARAM = 18 +CMSG_RECIPIENT_INFO_PARAM = 19 +CMSG_HASH_ALGORITHM_PARAM = 20 +CMSG_HASH_DATA_PARAM = 21 +CMSG_COMPUTED_HASH_PARAM = 22 +CMSG_ENCRYPT_PARAM = 26 +CMSG_ENCRYPTED_DIGEST = 27 +CMSG_ENCODED_SIGNER = 28 +CMSG_ENCODED_MESSAGE = 29 +CMSG_VERSION_PARAM = 30 +CMSG_ATTR_CERT_COUNT_PARAM = 31 +CMSG_ATTR_CERT_PARAM = 32 +CMSG_CMS_RECIPIENT_COUNT_PARAM = 33 +CMSG_CMS_RECIPIENT_INDEX_PARAM = 34 +CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM = 35 +CMSG_CMS_RECIPIENT_INFO_PARAM = 36 +CMSG_UNPROTECTED_ATTR_PARAM = 37 +CMSG_SIGNER_CERT_ID_PARAM = 38 +CMSG_CMS_SIGNER_INFO_PARAM = 39 +CMSG_SIGNED_DATA_V1 = 1 +CMSG_SIGNED_DATA_V3 = 3 +CMSG_SIGNED_DATA_PKCS_1_5_VERSION = CMSG_SIGNED_DATA_V1 +CMSG_SIGNED_DATA_CMS_VERSION = CMSG_SIGNED_DATA_V3 +CMSG_SIGNER_INFO_V1 = 1 +CMSG_SIGNER_INFO_V3 = 3 +CMSG_SIGNER_INFO_PKCS_1_5_VERSION = CMSG_SIGNER_INFO_V1 +CMSG_SIGNER_INFO_CMS_VERSION = CMSG_SIGNER_INFO_V3 +CMSG_HASHED_DATA_V0 = 0 +CMSG_HASHED_DATA_V2 = 2 +CMSG_HASHED_DATA_PKCS_1_5_VERSION = CMSG_HASHED_DATA_V0 +CMSG_HASHED_DATA_CMS_VERSION = CMSG_HASHED_DATA_V2 +CMSG_ENVELOPED_DATA_V0 = 0 +CMSG_ENVELOPED_DATA_V2 = 2 +CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION = CMSG_ENVELOPED_DATA_V0 +CMSG_ENVELOPED_DATA_CMS_VERSION = CMSG_ENVELOPED_DATA_V2 +CMSG_KEY_AGREE_ORIGINATOR_CERT = 1 +CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY = 2 +CMSG_ENVELOPED_RECIPIENT_V0 = 0 +CMSG_ENVELOPED_RECIPIENT_V2 = 2 +CMSG_ENVELOPED_RECIPIENT_V3 = 3 +CMSG_ENVELOPED_RECIPIENT_V4 = 4 +CMSG_KEY_TRANS_PKCS_1_5_VERSION = CMSG_ENVELOPED_RECIPIENT_V0 +CMSG_KEY_TRANS_CMS_VERSION = CMSG_ENVELOPED_RECIPIENT_V2 +CMSG_KEY_AGREE_VERSION = CMSG_ENVELOPED_RECIPIENT_V3 +CMSG_MAIL_LIST_VERSION = CMSG_ENVELOPED_RECIPIENT_V4 +CMSG_CTRL_VERIFY_SIGNATURE = 1 +CMSG_CTRL_DECRYPT = 2 +CMSG_CTRL_VERIFY_HASH = 5 +CMSG_CTRL_ADD_SIGNER = 6 +CMSG_CTRL_DEL_SIGNER = 7 +CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR = 8 +CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR = 9 +CMSG_CTRL_ADD_CERT = 10 +CMSG_CTRL_DEL_CERT = 11 +CMSG_CTRL_ADD_CRL = 12 +CMSG_CTRL_DEL_CRL = 13 +CMSG_CTRL_ADD_ATTR_CERT = 14 +CMSG_CTRL_DEL_ATTR_CERT = 15 +CMSG_CTRL_KEY_TRANS_DECRYPT = 16 +CMSG_CTRL_KEY_AGREE_DECRYPT = 17 +CMSG_CTRL_MAIL_LIST_DECRYPT = 18 +CMSG_CTRL_VERIFY_SIGNATURE_EX = 19 +CMSG_CTRL_ADD_CMS_SIGNER_INFO = 20 +CMSG_VERIFY_SIGNER_PUBKEY = 1 +CMSG_VERIFY_SIGNER_CERT = 2 +CMSG_VERIFY_SIGNER_CHAIN = 3 +CMSG_VERIFY_SIGNER_NULL = 4 +CMSG_OID_GEN_ENCRYPT_KEY_FUNC = "CryptMsgDllGenEncryptKey" +CMSG_OID_EXPORT_ENCRYPT_KEY_FUNC = "CryptMsgDllExportEncryptKey" +CMSG_OID_IMPORT_ENCRYPT_KEY_FUNC = "CryptMsgDllImportEncryptKey" +CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG = 0x00000001 +CMSG_DEFAULT_INSTALLABLE_FUNC_OID = 1 +CMSG_CONTENT_ENCRYPT_FREE_PARA_FLAG = 0x00000001 +CMSG_CONTENT_ENCRYPT_RELEASE_CONTEXT_FLAG = 0x00008000 +CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC = "CryptMsgDllGenContentEncryptKey" +CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG = 0x00000001 +CMSG_OID_EXPORT_KEY_TRANS_FUNC = "CryptMsgDllExportKeyTrans" +CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG = 0x00000001 +CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG = 0x00000002 +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG = 0x00000004 +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG = 0x00000008 +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG = 0x00000010 +CMSG_OID_EXPORT_KEY_AGREE_FUNC = "CryptMsgDllExportKeyAgree" +CMSG_MAIL_LIST_ENCRYPT_FREE_PARA_FLAG = 0x00000001 +CMSG_OID_EXPORT_MAIL_LIST_FUNC = "CryptMsgDllExportMailList" +CMSG_OID_IMPORT_KEY_TRANS_FUNC = "CryptMsgDllImportKeyTrans" +CMSG_OID_IMPORT_KEY_AGREE_FUNC = "CryptMsgDllImportKeyAgree" +CMSG_OID_IMPORT_MAIL_LIST_FUNC = "CryptMsgDllImportMailList" + +# Certificate property id's used with CertGetCertificateContextProperty +CERT_KEY_PROV_HANDLE_PROP_ID = 1 +CERT_KEY_PROV_INFO_PROP_ID = 2 +CERT_SHA1_HASH_PROP_ID = 3 +CERT_MD5_HASH_PROP_ID = 4 +CERT_HASH_PROP_ID = CERT_SHA1_HASH_PROP_ID +CERT_KEY_CONTEXT_PROP_ID = 5 +CERT_KEY_SPEC_PROP_ID = 6 +CERT_IE30_RESERVED_PROP_ID = 7 +CERT_PUBKEY_HASH_RESERVED_PROP_ID = 8 +CERT_ENHKEY_USAGE_PROP_ID = 9 +CERT_CTL_USAGE_PROP_ID = CERT_ENHKEY_USAGE_PROP_ID +CERT_NEXT_UPDATE_LOCATION_PROP_ID = 10 +CERT_FRIENDLY_NAME_PROP_ID = 11 +CERT_PVK_FILE_PROP_ID = 12 +CERT_DESCRIPTION_PROP_ID = 13 +CERT_ACCESS_STATE_PROP_ID = 14 +CERT_SIGNATURE_HASH_PROP_ID = 15 +CERT_SMART_CARD_DATA_PROP_ID = 16 +CERT_EFS_PROP_ID = 17 +CERT_FORTEZZA_DATA_PROP_ID = 18 +CERT_ARCHIVED_PROP_ID = 19 +CERT_KEY_IDENTIFIER_PROP_ID = 20 +CERT_AUTO_ENROLL_PROP_ID = 21 +CERT_PUBKEY_ALG_PARA_PROP_ID = 22 +CERT_CROSS_CERT_DIST_POINTS_PROP_ID = 23 +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID = 24 +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID = 25 +CERT_ENROLLMENT_PROP_ID = 26 +CERT_DATE_STAMP_PROP_ID = 27 +CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = 28 +CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = 29 +CERT_EXTENDED_ERROR_INFO_PROP_ID = 30 +CERT_RENEWAL_PROP_ID = 64 +CERT_ARCHIVED_KEY_HASH_PROP_ID = 65 +CERT_AUTO_ENROLL_RETRY_PROP_ID = 66 +CERT_AIA_URL_RETRIEVED_PROP_ID = 67 +CERT_AUTHORITY_INFO_ACCESS_PROP_ID = 68 +CERT_BACKED_UP_PROP_ID = 69 +CERT_OCSP_RESPONSE_PROP_ID = 70 +CERT_REQUEST_ORIGINATOR_PROP_ID = 71 +CERT_SOURCE_LOCATION_PROP_ID = 72 +CERT_SOURCE_URL_PROP_ID = 73 +CERT_NEW_KEY_PROP_ID = 74 +CERT_OCSP_CACHE_PREFIX_PROP_ID = 75 +CERT_SMART_CARD_ROOT_INFO_PROP_ID = 76 +CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID = 77 +CERT_NCRYPT_KEY_HANDLE_PROP_ID = 78 +CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID = 79 +CERT_SUBJECT_INFO_ACCESS_PROP_ID = 80 +CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID = 81 +CERT_CA_DISABLE_CRL_PROP_ID = 82 +CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID = 83 +CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID = 84 +CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID = 85 +CERT_SUBJECT_DISABLE_CRL_PROP_ID = 86 +CERT_CEP_PROP_ID = 87 +CERT_SIGN_HASH_CNG_ALG_PROP_ID = 89 +CERT_SCARD_PIN_ID_PROP_ID = 90 +CERT_SCARD_PIN_INFO_PROP_ID = 91 +CERT_FIRST_RESERVED_PROP_ID = 92 +CERT_LAST_RESERVED_PROP_ID = 0x00007FFF +CERT_FIRST_USER_PROP_ID = 0x00008000 +CERT_LAST_USER_PROP_ID = 0x0000FFFF + +szOID_CERT_PROP_ID_PREFIX = "1.3.6.1.4.1.311.10.11." +szOID_CERT_KEY_IDENTIFIER_PROP_ID = "1.3.6.1.4.1.311.10.11.20" +szOID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = \ + "1.3.6.1.4.1.311.10.11.28" +szOID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = \ + "1.3.6.1.4.1.311.10.11.29" +CERT_ACCESS_STATE_WRITE_PERSIST_FLAG = 0x1 +CERT_ACCESS_STATE_SYSTEM_STORE_FLAG = 0x2 +CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG = 0x4 +CERT_SET_KEY_PROV_HANDLE_PROP_ID = 0x00000001 +CERT_SET_KEY_CONTEXT_PROP_ID = 0x00000001 +sz_CERT_STORE_PROV_MEMORY = "Memory" +sz_CERT_STORE_PROV_FILENAME_W = "File" +sz_CERT_STORE_PROV_FILENAME = sz_CERT_STORE_PROV_FILENAME_W +sz_CERT_STORE_PROV_SYSTEM_W = "System" +sz_CERT_STORE_PROV_SYSTEM = sz_CERT_STORE_PROV_SYSTEM_W +sz_CERT_STORE_PROV_PKCS7 = "PKCS7" +sz_CERT_STORE_PROV_SERIALIZED = "Serialized" +sz_CERT_STORE_PROV_COLLECTION = "Collection" +sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W = "SystemRegistry" +sz_CERT_STORE_PROV_SYSTEM_REGISTRY = sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W +sz_CERT_STORE_PROV_PHYSICAL_W = "Physical" +sz_CERT_STORE_PROV_PHYSICAL = sz_CERT_STORE_PROV_PHYSICAL_W +sz_CERT_STORE_PROV_SMART_CARD_W = "SmartCard" +sz_CERT_STORE_PROV_SMART_CARD = sz_CERT_STORE_PROV_SMART_CARD_W +sz_CERT_STORE_PROV_LDAP_W = "Ldap" +sz_CERT_STORE_PROV_LDAP = sz_CERT_STORE_PROV_LDAP_W +CERT_STORE_SIGNATURE_FLAG = 0x00000001 +CERT_STORE_TIME_VALIDITY_FLAG = 0x00000002 +CERT_STORE_REVOCATION_FLAG = 0x00000004 +CERT_STORE_NO_CRL_FLAG = 0x00010000 +CERT_STORE_NO_ISSUER_FLAG = 0x00020000 +CERT_STORE_BASE_CRL_FLAG = 0x00000100 +CERT_STORE_DELTA_CRL_FLAG = 0x00000200 +CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 +CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 +CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 +CERT_STORE_DELETE_FLAG = 0x00000010 +CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 +CERT_STORE_SHARE_STORE_FLAG = 0x00000040 +CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 +CERT_STORE_MANIFOLD_FLAG = 0x00000100 +CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 +CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 +CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 +CERT_STORE_READONLY_FLAG = 0x00008000 +CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 +CERT_STORE_CREATE_NEW_FLAG = 0x00002000 +CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 +CERT_SYSTEM_STORE_MASK = (-65536) +CERT_SYSTEM_STORE_RELOCATE_FLAG = (-2147483648) +CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 +CERT_SYSTEM_STORE_LOCATION_MASK = 0x00FF0000 +CERT_SYSTEM_STORE_LOCATION_SHIFT = 16 +CERT_SYSTEM_STORE_CURRENT_USER_ID = 1 +CERT_SYSTEM_STORE_LOCAL_MACHINE_ID = 2 +CERT_SYSTEM_STORE_CURRENT_SERVICE_ID = 4 +CERT_SYSTEM_STORE_SERVICES_ID = 5 +CERT_SYSTEM_STORE_USERS_ID = 6 +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID = 7 +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID = 8 +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID = 9 +CERT_SYSTEM_STORE_CURRENT_USER = \ + (CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_LOCAL_MACHINE = \ + (CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_CURRENT_SERVICE = \ + (CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_SERVICES = \ + (CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_USERS = \ + (CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = \ + (CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << \ + CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = \ + (CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << \ + CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = \ + (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << \ + CERT_SYSTEM_STORE_LOCATION_SHIFT) +CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG = 0x1 +CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG = 0x2 +CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG = 0x4 +CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG = 0x8 +CERT_PROT_ROOT_ONLY_LM_GPT_FLAG = 0x8 +CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG = 0x10 +CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG = 0x20 +CERT_TRUST_PUB_ALLOW_TRUST_MASK = 0x00000003 +CERT_TRUST_PUB_ALLOW_END_USER_TRUST = 0x00000000 +CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST = 0x00000001 +CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST = 0x00000002 +CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG = 0x00000100 +CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG = 0x00000200 + +CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH = r"Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate" +CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG = 0x1 +CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_PARTIAL_CHAIN_LOGGING_FLAG = 0x2 +CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME = "RootDirUrl" +CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME = "SyncDeltaTime" +CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME = "Flags" +CERT_AUTH_ROOT_CTL_FILENAME = "authroot.stl" +CERT_AUTH_ROOT_CTL_FILENAME_A = "authroot.stl" +CERT_AUTH_ROOT_CAB_FILENAME = "authrootstl.cab" +CERT_AUTH_ROOT_SEQ_FILENAME = "authrootseq.txt" +CERT_AUTH_ROOT_CERT_EXT = ".crt" + +CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH = r"Software\Policies\Microsoft\SystemCertificates" +CERT_EFSBLOB_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\EFS" +CERT_EFSBLOB_VALUE_NAME = "EFSBlob" +CERT_PROT_ROOT_FLAGS_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH +r"\Root\ProtectedRoots" +CERT_PROT_ROOT_FLAGS_VALUE_NAME = "Flags" +CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\TrustedPublisher\Safer" +CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH = r"Software\Microsoft\SystemCertificates" +CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH + r"\TrustedPublisher\Safer" +CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME = "AuthenticodeFlags" +CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OC Manager\Subcomponents" +CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME = r"RootAutoUpdate" +CERT_DISABLE_ROOT_AUTO_UPDATE_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\AuthRoot" +CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME = "DisableRootAutoUpdate" +CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH + r"\AuthRoot\AutoUpdate" + +CERT_REGISTRY_STORE_REMOTE_FLAG = 0x10000 +CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x20000 +CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = (-2147483648) +CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 +CERT_REGISTRY_STORE_ROAMING_FLAG = 0x40000 +CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x80000 +CERT_IE_DIRTY_FLAGS_REGPATH = r"Software\Microsoft\Cryptography\IEDirtyFlags" + +CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x10000 +CERT_LDAP_STORE_SIGN_FLAG = 0x10000 +CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x20000 +CERT_LDAP_STORE_OPENED_FLAG = 0x40000 +CERT_LDAP_STORE_UNBIND_FLAG = 0x80000 +CRYPT_OID_OPEN_STORE_PROV_FUNC = "CertDllOpenStoreProv" + +CERT_STORE_PROV_EXTERNAL_FLAG = 0x1 +CERT_STORE_PROV_DELETED_FLAG = 0x2 +CERT_STORE_PROV_NO_PERSIST_FLAG = 0x4 +CERT_STORE_PROV_SYSTEM_STORE_FLAG = 0x8 +CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG = 0x10 +CERT_STORE_PROV_CLOSE_FUNC = 0 +CERT_STORE_PROV_READ_CERT_FUNC = 1 +CERT_STORE_PROV_WRITE_CERT_FUNC = 2 +CERT_STORE_PROV_DELETE_CERT_FUNC = 3 +CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC = 4 +CERT_STORE_PROV_READ_CRL_FUNC = 5 +CERT_STORE_PROV_WRITE_CRL_FUNC = 6 +CERT_STORE_PROV_DELETE_CRL_FUNC = 7 +CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC = 8 +CERT_STORE_PROV_READ_CTL_FUNC = 9 +CERT_STORE_PROV_WRITE_CTL_FUNC = 10 +CERT_STORE_PROV_DELETE_CTL_FUNC = 11 +CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC = 12 +CERT_STORE_PROV_CONTROL_FUNC = 13 +CERT_STORE_PROV_FIND_CERT_FUNC = 14 +CERT_STORE_PROV_FREE_FIND_CERT_FUNC = 15 +CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC = 16 +CERT_STORE_PROV_FIND_CRL_FUNC = 17 +CERT_STORE_PROV_FREE_FIND_CRL_FUNC = 18 +CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC = 19 +CERT_STORE_PROV_FIND_CTL_FUNC = 20 +CERT_STORE_PROV_FREE_FIND_CTL_FUNC = 21 +CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC = 22 +CERT_STORE_PROV_WRITE_ADD_FLAG = 0x1 +CERT_STORE_SAVE_AS_STORE = 1 +CERT_STORE_SAVE_AS_PKCS7 = 2 +CERT_STORE_SAVE_TO_FILE = 1 +CERT_STORE_SAVE_TO_MEMORY = 2 +CERT_STORE_SAVE_TO_FILENAME_A = 3 +CERT_STORE_SAVE_TO_FILENAME_W = 4 +CERT_STORE_SAVE_TO_FILENAME = CERT_STORE_SAVE_TO_FILENAME_W +CERT_CLOSE_STORE_FORCE_FLAG = 0x00000001 +CERT_CLOSE_STORE_CHECK_FLAG = 0x00000002 +CERT_COMPARE_MASK = 0xFFFF +CERT_COMPARE_SHIFT = 16 +CERT_COMPARE_ANY = 0 +CERT_COMPARE_SHA1_HASH = 1 +CERT_COMPARE_NAME = 2 +CERT_COMPARE_ATTR = 3 +CERT_COMPARE_MD5_HASH = 4 +CERT_COMPARE_PROPERTY = 5 +CERT_COMPARE_PUBLIC_KEY = 6 +CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH +CERT_COMPARE_NAME_STR_A = 7 +CERT_COMPARE_NAME_STR_W = 8 +CERT_COMPARE_KEY_SPEC = 9 +CERT_COMPARE_ENHKEY_USAGE = 10 +CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE +CERT_COMPARE_SUBJECT_CERT = 11 +CERT_COMPARE_ISSUER_OF = 12 +CERT_COMPARE_EXISTING = 13 +CERT_COMPARE_SIGNATURE_HASH = 14 +CERT_COMPARE_KEY_IDENTIFIER = 15 +CERT_COMPARE_CERT_ID = 16 +CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 +CERT_COMPARE_PUBKEY_MD5_HASH = 18 +CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) +CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) +CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) +CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) +CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) +CERT_FIND_HASH = CERT_FIND_SHA1_HASH +CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) +CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) +CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | \ + CERT_INFO_SUBJECT_FLAG) +CERT_FIND_SUBJECT_ATTR = (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | \ + CERT_INFO_SUBJECT_FLAG) +CERT_FIND_ISSUER_NAME = (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | \ + CERT_INFO_ISSUER_FLAG) +CERT_FIND_ISSUER_ATTR = (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | \ + CERT_INFO_ISSUER_FLAG) +CERT_FIND_SUBJECT_STR_A = (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | \ + CERT_INFO_SUBJECT_FLAG) +CERT_FIND_SUBJECT_STR_W = (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | \ + CERT_INFO_SUBJECT_FLAG) +CERT_FIND_SUBJECT_STR = CERT_FIND_SUBJECT_STR_W +CERT_FIND_ISSUER_STR_A = (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | \ + CERT_INFO_ISSUER_FLAG) +CERT_FIND_ISSUER_STR_W = (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | \ + CERT_INFO_ISSUER_FLAG) +CERT_FIND_ISSUER_STR = CERT_FIND_ISSUER_STR_W +CERT_FIND_KEY_SPEC = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT) +CERT_FIND_ENHKEY_USAGE = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT) +CERT_FIND_CTL_USAGE = CERT_FIND_ENHKEY_USAGE +CERT_FIND_SUBJECT_CERT = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT) +CERT_FIND_ISSUER_OF = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT) +CERT_FIND_EXISTING = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT) +CERT_FIND_CERT_ID = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT) +CERT_FIND_CROSS_CERT_DIST_POINTS = \ + (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT) +CERT_FIND_PUBKEY_MD5_HASH = \ + (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT) +CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 0x1 +CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 0x2 +CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4 +CERT_FIND_NO_ENHKEY_USAGE_FLAG = 0x8 +CERT_FIND_OR_ENHKEY_USAGE_FLAG = 0x10 +CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 0x20 +CERT_FIND_OPTIONAL_CTL_USAGE_FLAG = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG +CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG = \ + CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG +CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG = \ + CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG +CERT_FIND_NO_CTL_USAGE_FLAG = CERT_FIND_NO_ENHKEY_USAGE_FLAG +CERT_FIND_OR_CTL_USAGE_FLAG = CERT_FIND_OR_ENHKEY_USAGE_FLAG +CERT_FIND_VALID_CTL_USAGE_FLAG = CERT_FIND_VALID_ENHKEY_USAGE_FLAG +CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG = (-2147483648) +CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG = 0x40000000 +CTL_ENTRY_FROM_PROP_CHAIN_FLAG = 0x1 +CRL_FIND_ANY = 0 +CRL_FIND_ISSUED_BY = 1 +CRL_FIND_EXISTING = 2 +CRL_FIND_ISSUED_FOR = 3 +CRL_FIND_ISSUED_BY_AKI_FLAG = 0x1 +CRL_FIND_ISSUED_BY_SIGNATURE_FLAG = 0x2 +CRL_FIND_ISSUED_BY_DELTA_FLAG = 0x4 +CRL_FIND_ISSUED_BY_BASE_FLAG = 0x8 +CERT_STORE_ADD_NEW = 1 +CERT_STORE_ADD_USE_EXISTING = 2 +CERT_STORE_ADD_REPLACE_EXISTING = 3 +CERT_STORE_ADD_ALWAYS = 4 +CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 +CERT_STORE_ADD_NEWER = 6 +CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 +CERT_STORE_CERTIFICATE_CONTEXT = 1 +CERT_STORE_CRL_CONTEXT = 2 +CERT_STORE_CTL_CONTEXT = 3 + +CERT_STORE_ALL_CONTEXT_FLAG = -1 +CERT_STORE_CERTIFICATE_CONTEXT_FLAG = \ + (1 << CERT_STORE_CERTIFICATE_CONTEXT) +CERT_STORE_CRL_CONTEXT_FLAG = \ + (1 << CERT_STORE_CRL_CONTEXT) +CERT_STORE_CTL_CONTEXT_FLAG = \ + (1 << CERT_STORE_CTL_CONTEXT) +CTL_ANY_SUBJECT_TYPE = 1 +CTL_CERT_SUBJECT_TYPE = 2 +CTL_FIND_ANY = 0 +CTL_FIND_SHA1_HASH = 1 +CTL_FIND_MD5_HASH = 2 +CTL_FIND_USAGE = 3 +CTL_FIND_SUBJECT = 4 +CTL_FIND_EXISTING = 5 +CTL_FIND_NO_LIST_ID_CBDATA = (-1) +CTL_FIND_SAME_USAGE_FLAG = 0x1 +CERT_STORE_CTRL_RESYNC = 1 +CERT_STORE_CTRL_NOTIFY_CHANGE = 2 +CERT_STORE_CTRL_COMMIT = 3 +CERT_STORE_CTRL_AUTO_RESYNC = 4 +CERT_STORE_CTRL_CANCEL_NOTIFY = 5 +CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG = 0x1 +CERT_STORE_CTRL_COMMIT_FORCE_FLAG = 0x1 +CERT_STORE_CTRL_COMMIT_CLEAR_FLAG = 0x2 +CERT_STORE_LOCALIZED_NAME_PROP_ID = 0x1000 +CERT_CREATE_CONTEXT_NOCOPY_FLAG = 0x1 +CERT_CREATE_CONTEXT_SORTED_FLAG = 0x2 +CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG = 0x4 +CERT_CREATE_CONTEXT_NO_ENTRY_FLAG = 0x8 + +CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG = 0x1 +CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG = 0x2 +CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG = 0x4 +CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG = 0x8 +CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG = 0x1 + +# Names of physical cert stores +CERT_PHYSICAL_STORE_DEFAULT_NAME = ".Default" +CERT_PHYSICAL_STORE_GROUP_POLICY_NAME = ".GroupPolicy" +CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME = ".LocalMachine" +CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME = ".UserCertificate" +CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME = ".LocalMachineGroupPolicy" +CERT_PHYSICAL_STORE_ENTERPRISE_NAME = ".Enterprise" +CERT_PHYSICAL_STORE_AUTH_ROOT_NAME = ".AuthRoot" +CERT_PHYSICAL_STORE_SMART_CARD_NAME = ".SmartCard" + +CRYPT_OID_OPEN_SYSTEM_STORE_PROV_FUNC = "CertDllOpenSystemStoreProv" +CRYPT_OID_REGISTER_SYSTEM_STORE_FUNC = "CertDllRegisterSystemStore" +CRYPT_OID_UNREGISTER_SYSTEM_STORE_FUNC = "CertDllUnregisterSystemStore" +CRYPT_OID_ENUM_SYSTEM_STORE_FUNC = "CertDllEnumSystemStore" +CRYPT_OID_REGISTER_PHYSICAL_STORE_FUNC = "CertDllRegisterPhysicalStore" +CRYPT_OID_UNREGISTER_PHYSICAL_STORE_FUNC = "CertDllUnregisterPhysicalStore" +CRYPT_OID_ENUM_PHYSICAL_STORE_FUNC = "CertDllEnumPhysicalStore" +CRYPT_OID_SYSTEM_STORE_LOCATION_VALUE_NAME = "SystemStoreLocation" + +CMSG_TRUSTED_SIGNER_FLAG = 0x1 +CMSG_SIGNER_ONLY_FLAG = 0x2 +CMSG_USE_SIGNER_INDEX_FLAG = 0x4 +CMSG_CMS_ENCAPSULATED_CTL_FLAG = 0x00008000 +CMSG_ENCODE_SORTED_CTL_FLAG = 0x1 +CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x2 +CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG = 0x1 +CERT_VERIFY_TRUSTED_SIGNERS_FLAG = 0x2 +CERT_VERIFY_NO_TIME_CHECK_FLAG = 0x4 +CERT_VERIFY_ALLOW_MORE_USAGE_FLAG = 0x8 +CERT_VERIFY_UPDATED_CTL_FLAG = 0x1 +CERT_CONTEXT_REVOCATION_TYPE = 1 +CERT_VERIFY_REV_CHAIN_FLAG = 0x00000001 +CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION = 0x00000002 +CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG = 0x00000004 +CERT_UNICODE_IS_RDN_ATTRS_FLAG = 0x1 +CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG = 0x2 +CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB = 1 +CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT = 2 +CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL = 3 +CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY = 1 +CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT = 2 +CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN = 3 +CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL = 4 +CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG = 0x00000001 +CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG = 0x00000002 +CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID = 1 +CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID = 2 +CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC = "CryptDllExportPublicKeyInfoEx" +CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC = "CryptDllImportPublicKeyInfoEx" +CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 +CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 +CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 +CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 +CRYPT_FIND_USER_KEYSET_FLAG = 0x00000001 +CRYPT_FIND_MACHINE_KEYSET_FLAG = 0x00000002 +CRYPT_FIND_SILENT_KEYSET_FLAG = 0x00000040 +CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC = "CryptDllImportPrivateKeyInfoEx" +CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC = "CryptDllExportPrivateKeyInfoEx" +CRYPT_DELETE_KEYSET = CRYPT_DELETEKEYSET +CERT_SIMPLE_NAME_STR = 1 +CERT_OID_NAME_STR = 2 +CERT_X500_NAME_STR = 3 +CERT_NAME_STR_SEMICOLON_FLAG = 0x40000000 +CERT_NAME_STR_NO_PLUS_FLAG = 0x20000000 +CERT_NAME_STR_NO_QUOTING_FLAG = 0x10000000 +CERT_NAME_STR_CRLF_FLAG = 0x08000000 +CERT_NAME_STR_COMMA_FLAG = 0x04000000 +CERT_NAME_STR_REVERSE_FLAG = 0x02000000 +CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG = 0x00010000 +CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG = 0x00020000 +CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG = 0x00040000 +CERT_NAME_EMAIL_TYPE = 1 +CERT_NAME_RDN_TYPE = 2 +CERT_NAME_ATTR_TYPE = 3 +CERT_NAME_SIMPLE_DISPLAY_TYPE = 4 +CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5 +CERT_NAME_DNS_TYPE = 6 +CERT_NAME_URL_TYPE = 7 +CERT_NAME_UPN_TYPE = 8 +CERT_NAME_ISSUER_FLAG = 0x1 +CERT_NAME_DISABLE_IE4_UTF8_FLAG = 0x00010000 +CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG = 0x00000001 +CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG = 0x00000002 +CRYPT_MESSAGE_KEYID_SIGNER_FLAG = 0x00000004 +CRYPT_MESSAGE_SILENT_KEYSET_FLAG = 0x00000040 +CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG = 0x4 +CERT_QUERY_OBJECT_FILE = 0x00000001 +CERT_QUERY_OBJECT_BLOB = 0x00000002 +CERT_QUERY_CONTENT_CERT = 1 +CERT_QUERY_CONTENT_CTL = 2 +CERT_QUERY_CONTENT_CRL = 3 +CERT_QUERY_CONTENT_SERIALIZED_STORE = 4 +CERT_QUERY_CONTENT_SERIALIZED_CERT = 5 +CERT_QUERY_CONTENT_SERIALIZED_CTL = 6 +CERT_QUERY_CONTENT_SERIALIZED_CRL = 7 +CERT_QUERY_CONTENT_PKCS7_SIGNED = 8 +CERT_QUERY_CONTENT_PKCS7_UNSIGNED = 9 +CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = 10 +CERT_QUERY_CONTENT_PKCS10 = 11 +CERT_QUERY_CONTENT_PFX = 12 +CERT_QUERY_CONTENT_CERT_PAIR = 13 +CERT_QUERY_CONTENT_FLAG_CERT = \ + ( 1 << CERT_QUERY_CONTENT_CERT) +CERT_QUERY_CONTENT_FLAG_CTL = \ + ( 1 << CERT_QUERY_CONTENT_CTL) +CERT_QUERY_CONTENT_FLAG_CRL = \ + ( 1 << CERT_QUERY_CONTENT_CRL) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = \ + ( 1 << CERT_QUERY_CONTENT_SERIALIZED_STORE) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = \ + ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CERT) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = \ + ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CTL) +CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = \ + ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CRL) +CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = \ + ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED) +CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = \ + ( 1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED) +CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = \ + ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED) +CERT_QUERY_CONTENT_FLAG_PKCS10 = \ + ( 1 << CERT_QUERY_CONTENT_PKCS10) +CERT_QUERY_CONTENT_FLAG_PFX = \ + ( 1 << CERT_QUERY_CONTENT_PFX) +CERT_QUERY_CONTENT_FLAG_CERT_PAIR = \ + ( 1 << CERT_QUERY_CONTENT_CERT_PAIR) +CERT_QUERY_CONTENT_FLAG_ALL = \ + CERT_QUERY_CONTENT_FLAG_CERT | \ + CERT_QUERY_CONTENT_FLAG_CTL | \ + CERT_QUERY_CONTENT_FLAG_CRL | \ + CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | \ + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | \ + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | \ + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | \ + CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | \ + CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | \ + CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | \ + CERT_QUERY_CONTENT_FLAG_PKCS10 | \ + CERT_QUERY_CONTENT_FLAG_PFX | \ + CERT_QUERY_CONTENT_FLAG_CERT_PAIR +CERT_QUERY_FORMAT_BINARY = 1 +CERT_QUERY_FORMAT_BASE64_ENCODED = 2 +CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = 3 +CERT_QUERY_FORMAT_FLAG_BINARY = \ + ( 1 << CERT_QUERY_FORMAT_BINARY) +CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = \ + ( 1 << CERT_QUERY_FORMAT_BASE64_ENCODED) +CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = \ + ( 1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED) +CERT_QUERY_FORMAT_FLAG_ALL = \ + CERT_QUERY_FORMAT_FLAG_BINARY | \ + CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | \ + CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED + +CREDENTIAL_OID_PASSWORD_CREDENTIALS_A = 1 +CREDENTIAL_OID_PASSWORD_CREDENTIALS_W = 2 +CREDENTIAL_OID_PASSWORD_CREDENTIALS = CREDENTIAL_OID_PASSWORD_CREDENTIALS_W + +SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC = "SchemeDllRetrieveEncodedObject" +SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC = "SchemeDllRetrieveEncodedObjectW" +CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC = "ContextDllCreateObjectContext" +CONTEXT_OID_CERTIFICATE = 1 +CONTEXT_OID_CRL = 2 +CONTEXT_OID_CTL = 3 +CONTEXT_OID_PKCS7 = 4 +CONTEXT_OID_CAPI2_ANY = 5 +CONTEXT_OID_OCSP_RESP = 6 + +CRYPT_RETRIEVE_MULTIPLE_OBJECTS = 0x00000001 +CRYPT_CACHE_ONLY_RETRIEVAL = 0x00000002 +CRYPT_WIRE_ONLY_RETRIEVAL = 0x00000004 +CRYPT_DONT_CACHE_RESULT = 0x00000008 +CRYPT_ASYNC_RETRIEVAL = 0x00000010 +CRYPT_STICKY_CACHE_RETRIEVAL = 0x00001000 +CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL = 0x00002000 +CRYPT_OFFLINE_CHECK_RETRIEVAL = 0x00004000 +CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE = 0x00008000 +CRYPT_LDAP_SIGN_RETRIEVAL = 0x00010000 +CRYPT_NO_AUTH_RETRIEVAL = 0x00020000 +CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL = 0x00040000 +CRYPT_AIA_RETRIEVAL = 0x00080000 +CRYPT_VERIFY_CONTEXT_SIGNATURE = 0x00000020 +CRYPT_VERIFY_DATA_HASH = 0x00000040 +CRYPT_KEEP_TIME_VALID = 0x00000080 +CRYPT_DONT_VERIFY_SIGNATURE = 0x00000100 +CRYPT_DONT_CHECK_TIME_VALIDITY = 0x00000200 +CRYPT_CHECK_FRESHNESS_TIME_VALIDITY = 0x00000400 +CRYPT_ACCUMULATIVE_TIMEOUT = 0x00000800 +CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION = 1 +CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL = 2 +CRYPT_GET_URL_FROM_PROPERTY = 0x00000001 +CRYPT_GET_URL_FROM_EXTENSION = 0x00000002 +CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE = 0x00000004 +CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE = 0x00000008 +URL_OID_GET_OBJECT_URL_FUNC = "UrlDllGetObjectUrl" +TIME_VALID_OID_GET_OBJECT_FUNC = "TimeValidDllGetObject" +TIME_VALID_OID_FLUSH_OBJECT_FUNC = "TimeValidDllFlushObject" + +TIME_VALID_OID_GET_CTL = 1 +TIME_VALID_OID_GET_CRL = 2 +TIME_VALID_OID_GET_CRL_FROM_CERT = 3 +TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT = 4 +TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL = 5 + +TIME_VALID_OID_FLUSH_CTL = 1 +TIME_VALID_OID_FLUSH_CRL = 2 +TIME_VALID_OID_FLUSH_CRL_FROM_CERT = 3 +TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT = 4 +TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL = 5 + +CRYPTPROTECT_PROMPT_ON_UNPROTECT = 0x1 +CRYPTPROTECT_PROMPT_ON_PROTECT = 0x2 +CRYPTPROTECT_PROMPT_RESERVED = 0x04 +CRYPTPROTECT_PROMPT_STRONG = 0x08 +CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 0x10 +CRYPTPROTECT_UI_FORBIDDEN = 0x1 +CRYPTPROTECT_LOCAL_MACHINE = 0x4 +CRYPTPROTECT_CRED_SYNC = 0x8 +CRYPTPROTECT_AUDIT = 0x10 +CRYPTPROTECT_NO_RECOVERY = 0x20 +CRYPTPROTECT_VERIFY_PROTECTION = 0x40 +CRYPTPROTECT_CRED_REGENERATE = 0x80 +CRYPTPROTECT_FIRST_RESERVED_FLAGVAL = 0x0FFFFFFF +CRYPTPROTECT_LAST_RESERVED_FLAGVAL = (-1) +CRYPTPROTECTMEMORY_BLOCK_SIZE = 16 +CRYPTPROTECTMEMORY_SAME_PROCESS = 0x00 +CRYPTPROTECTMEMORY_CROSS_PROCESS = 0x01 +CRYPTPROTECTMEMORY_SAME_LOGON = 0x02 +CERT_CREATE_SELFSIGN_NO_SIGN = 1 +CERT_CREATE_SELFSIGN_NO_KEY_INFO = 2 +CRYPT_KEYID_MACHINE_FLAG = 0x00000020 +CRYPT_KEYID_ALLOC_FLAG = 0x00008000 +CRYPT_KEYID_DELETE_FLAG = 0x00000010 +CRYPT_KEYID_SET_NEW_FLAG = 0x00002000 +CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT = 5 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT = 10 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT = 100000 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT = 10 +CERT_CHAIN_CACHE_END_CERT = 0x00000001 +CERT_CHAIN_THREAD_STORE_SYNC = 0x00000002 +CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL = 0x00000004 +CERT_CHAIN_USE_LOCAL_MACHINE_STORE = 0x00000008 +CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE = 0x00000010 +CERT_CHAIN_ENABLE_SHARE_STORE = 0x00000020 +CERT_TRUST_NO_ERROR = 0x00000000 +CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 +CERT_TRUST_IS_NOT_TIME_NESTED = 0x00000002 +CERT_TRUST_IS_REVOKED = 0x00000004 +CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 +CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 +CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 +CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 +CERT_TRUST_IS_CYCLIC = 0x00000080 +CERT_TRUST_INVALID_EXTENSION = 0x00000100 +CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 +CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 +CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 +CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 +CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 +CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 +CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 +CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 +CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 +CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 +CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 +CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 +CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 +CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 +CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 +CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 +CERT_TRUST_IS_SELF_SIGNED = 0x00000008 +CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 +CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000200 +CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 +CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 +USAGE_MATCH_TYPE_AND = 0x00000000 +USAGE_MATCH_TYPE_OR = 0x00000001 +CERT_CHAIN_REVOCATION_CHECK_END_CERT = 0x10000000 +CERT_CHAIN_REVOCATION_CHECK_CHAIN = 0x20000000 +CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x40000000 +CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY = (-2147483648) +CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT = 0x08000000 +CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING = 0x00000040 +CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS = 0x00000080 +CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE = 0x00000100 +CERT_CHAIN_TIMESTAMP_TIME = 0x00000200 +REVOCATION_OID_CRL_REVOCATION = 1 +CERT_CHAIN_FIND_BY_ISSUER = 1 +CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 0x0001 +CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 0x0002 +CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004 +CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 0x0008 +CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 0x4000 +CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 0x8000 +CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG = 0x00000001 +CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG = 0x00000002 +CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG = 0x00000004 +CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG = 0x00000008 +CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS = ( \ + CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG \ + ) +CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG = 0x00000010 +CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG = 0x00000020 +CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG = 0x00000040 +CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG = 0x00000080 +CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG = 0x00000100 +CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG = 0x00000200 +CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG = 0x00000400 +CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG = 0x00000800 +CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS = ( \ + CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG | \ + CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG \ + ) +CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG = 0x00008000 +CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG = 0x00004000 +CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC = \ + "CertDllVerifyCertificateChainPolicy" +AUTHTYPE_CLIENT = 1 +AUTHTYPE_SERVER = 2 +BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG = (-2147483648) +BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG = 0x40000000 +MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG = 0x00010000 +CRYPT_STRING_BASE64HEADER = 0x00000000 +CRYPT_STRING_BASE64 = 0x00000001 +CRYPT_STRING_BINARY = 0x00000002 +CRYPT_STRING_BASE64REQUESTHEADER = 0x00000003 +CRYPT_STRING_HEX = 0x00000004 +CRYPT_STRING_HEXASCII = 0x00000005 +CRYPT_STRING_BASE64_ANY = 0x00000006 +CRYPT_STRING_ANY = 0x00000007 +CRYPT_STRING_HEX_ANY = 0x00000008 +CRYPT_STRING_BASE64X509CRLHEADER = 0x00000009 +CRYPT_STRING_HEXADDR = 0x0000000a +CRYPT_STRING_HEXASCIIADDR = 0x0000000b +CRYPT_STRING_NOCR = (-2147483648) +CRYPT_USER_KEYSET = 0x00001000 +PKCS12_IMPORT_RESERVED_MASK = (-65536) +REPORT_NO_PRIVATE_KEY = 0x0001 +REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY = 0x0002 +EXPORT_PRIVATE_KEYS = 0x0004 +PKCS12_EXPORT_RESERVED_MASK = (-65536) + +# Certificate store provider types used with CertOpenStore +CERT_STORE_PROV_MSG = 1 +CERT_STORE_PROV_MEMORY = 2 +CERT_STORE_PROV_FILE = 3 +CERT_STORE_PROV_REG = 4 +CERT_STORE_PROV_PKCS7 = 5 +CERT_STORE_PROV_SERIALIZED = 6 +CERT_STORE_PROV_FILENAME = 8 +CERT_STORE_PROV_SYSTEM = 10 +CERT_STORE_PROV_COLLECTION = 11 +CERT_STORE_PROV_SYSTEM_REGISTRY = 13 +CERT_STORE_PROV_PHYSICAL = 14 +CERT_STORE_PROV_SMART_CARD = 15 +CERT_STORE_PROV_LDAP = 16 + +URL_OID_CERTIFICATE_ISSUER = 1 +URL_OID_CERTIFICATE_CRL_DIST_POINT = 2 +URL_OID_CTL_ISSUER = 3 +URL_OID_CTL_NEXT_UPDATE = 4 +URL_OID_CRL_ISSUER = 5 +URL_OID_CERTIFICATE_FRESHEST_CRL = 6 +URL_OID_CRL_FRESHEST_CRL = 7 +URL_OID_CROSS_CERT_DIST_POINT = 8 +URL_OID_CERTIFICATE_OCSP = 9 +URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT = 10 +URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP = 11 +URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS = 12 +URL_OID_CERTIFICATE_ONLY_OCSP = 13 diff --git a/typings/win32helper/win32inetcon.pyi b/typings/win32helper/win32inetcon.pyi new file mode 100644 index 00000000..3338fe25 --- /dev/null +++ b/typings/win32helper/win32inetcon.pyi @@ -0,0 +1,1103 @@ +# Generated by h2py from \mssdk\include\WinInet.h + +INTERNET_INVALID_PORT_NUMBER = 0 +INTERNET_DEFAULT_FTP_PORT = 21 +INTERNET_DEFAULT_GOPHER_PORT = 70 +INTERNET_DEFAULT_HTTP_PORT = 80 +INTERNET_DEFAULT_HTTPS_PORT = 443 +INTERNET_DEFAULT_SOCKS_PORT = 1080 +INTERNET_MAX_HOST_NAME_LENGTH = 256 +INTERNET_MAX_USER_NAME_LENGTH = 128 +INTERNET_MAX_PASSWORD_LENGTH = 128 +INTERNET_MAX_PORT_NUMBER_LENGTH = 5 +INTERNET_MAX_PORT_NUMBER_VALUE = 65535 +INTERNET_MAX_PATH_LENGTH = 2048 +INTERNET_MAX_SCHEME_LENGTH = 32 +INTERNET_KEEP_ALIVE_ENABLED = 1 +INTERNET_KEEP_ALIVE_DISABLED = 0 +INTERNET_REQFLAG_FROM_CACHE = 0x00000001 +INTERNET_REQFLAG_ASYNC = 0x00000002 +INTERNET_REQFLAG_VIA_PROXY = 0x00000004 +INTERNET_REQFLAG_NO_HEADERS = 0x00000008 +INTERNET_REQFLAG_PASSIVE = 0x00000010 +INTERNET_REQFLAG_CACHE_WRITE_DISABLED = 0x00000040 +INTERNET_REQFLAG_NET_TIMEOUT = 0x00000080 +INTERNET_FLAG_RELOAD = (-2147483648) +INTERNET_FLAG_RAW_DATA = 0x40000000 +INTERNET_FLAG_EXISTING_CONNECT = 0x20000000 +INTERNET_FLAG_ASYNC = 0x10000000 +INTERNET_FLAG_PASSIVE = 0x08000000 +INTERNET_FLAG_NO_CACHE_WRITE = 0x04000000 +INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE +INTERNET_FLAG_MAKE_PERSISTENT = 0x02000000 +INTERNET_FLAG_FROM_CACHE = 0x01000000 +INTERNET_FLAG_OFFLINE = INTERNET_FLAG_FROM_CACHE +INTERNET_FLAG_SECURE = 0x00800000 +INTERNET_FLAG_KEEP_CONNECTION = 0x00400000 +INTERNET_FLAG_NO_AUTO_REDIRECT = 0x00200000 +INTERNET_FLAG_READ_PREFETCH = 0x00100000 +INTERNET_FLAG_NO_COOKIES = 0x00080000 +INTERNET_FLAG_NO_AUTH = 0x00040000 +INTERNET_FLAG_RESTRICTED_ZONE = 0x00020000 +INTERNET_FLAG_CACHE_IF_NET_FAIL = 0x00010000 +INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = 0x00008000 +INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = 0x00004000 +INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 +INTERNET_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000 +INTERNET_FLAG_RESYNCHRONIZE = 0x00000800 +INTERNET_FLAG_HYPERLINK = 0x00000400 +INTERNET_FLAG_NO_UI = 0x00000200 +INTERNET_FLAG_PRAGMA_NOCACHE = 0x00000100 +INTERNET_FLAG_CACHE_ASYNC = 0x00000080 +INTERNET_FLAG_FORMS_SUBMIT = 0x00000040 +INTERNET_FLAG_FWD_BACK = 0x00000020 +INTERNET_FLAG_NEED_FILE = 0x00000010 +INTERNET_FLAG_MUST_CACHE_REQUEST = INTERNET_FLAG_NEED_FILE +SECURITY_INTERNET_MASK = (INTERNET_FLAG_IGNORE_CERT_CN_INVALID | \ + INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | \ + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | \ + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP ) +INTERNET_ERROR_MASK_INSERT_CDROM = 0x1 +INTERNET_ERROR_MASK_COMBINED_SEC_CERT = 0x2 +INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG = 0X4 +INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = 0x8 +WININET_API_FLAG_ASYNC = 0x00000001 +WININET_API_FLAG_SYNC = 0x00000004 +WININET_API_FLAG_USE_CONTEXT = 0x00000008 +INTERNET_NO_CALLBACK = 0 +IDSI_FLAG_KEEP_ALIVE = 0x00000001 +IDSI_FLAG_SECURE = 0x00000002 +IDSI_FLAG_PROXY = 0x00000004 +IDSI_FLAG_TUNNEL = 0x00000008 +INTERNET_PER_CONN_FLAGS = 1 +INTERNET_PER_CONN_PROXY_SERVER = 2 +INTERNET_PER_CONN_PROXY_BYPASS = 3 +INTERNET_PER_CONN_AUTOCONFIG_URL = 4 +INTERNET_PER_CONN_AUTODISCOVERY_FLAGS = 5 +INTERNET_PER_CONN_AUTOCONFIG_SECONDARY_URL = 6 +INTERNET_PER_CONN_AUTOCONFIG_RELOAD_DELAY_MINS = 7 +INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_TIME = 8 +INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_URL = 9 +PROXY_TYPE_DIRECT = 0x00000001 +PROXY_TYPE_PROXY = 0x00000002 +PROXY_TYPE_AUTO_PROXY_URL = 0x00000004 +PROXY_TYPE_AUTO_DETECT = 0x00000008 +AUTO_PROXY_FLAG_USER_SET = 0x00000001 +AUTO_PROXY_FLAG_ALWAYS_DETECT = 0x00000002 +AUTO_PROXY_FLAG_DETECTION_RUN = 0x00000004 +AUTO_PROXY_FLAG_MIGRATED = 0x00000008 +AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT = 0x00000010 +AUTO_PROXY_FLAG_CACHE_INIT_RUN = 0x00000020 +AUTO_PROXY_FLAG_DETECTION_SUSPECT = 0x00000040 +ISO_FORCE_DISCONNECTED = 0x00000001 +INTERNET_RFC1123_FORMAT = 0 +INTERNET_RFC1123_BUFSIZE = 30 +ICU_ESCAPE = (-2147483648) +ICU_USERNAME = 0x40000000 +ICU_NO_ENCODE = 0x20000000 +ICU_DECODE = 0x10000000 +ICU_NO_META = 0x08000000 +ICU_ENCODE_SPACES_ONLY = 0x04000000 +ICU_BROWSER_MODE = 0x02000000 +ICU_ENCODE_PERCENT = 0x00001000 +INTERNET_OPEN_TYPE_PRECONFIG = 0 +INTERNET_OPEN_TYPE_DIRECT = 1 +INTERNET_OPEN_TYPE_PROXY = 3 +INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4 +PRE_CONFIG_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PRECONFIG +LOCAL_INTERNET_ACCESS = INTERNET_OPEN_TYPE_DIRECT +CERN_PROXY_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PROXY +INTERNET_SERVICE_FTP = 1 +INTERNET_SERVICE_GOPHER = 2 +INTERNET_SERVICE_HTTP = 3 +IRF_ASYNC = WININET_API_FLAG_ASYNC +IRF_SYNC = WININET_API_FLAG_SYNC +IRF_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT +IRF_NO_WAIT = 0x00000008 +ISO_GLOBAL = 0x00000001 +ISO_REGISTRY = 0x00000002 +ISO_VALID_FLAGS = (ISO_GLOBAL | ISO_REGISTRY) +INTERNET_OPTION_CALLBACK = 1 +INTERNET_OPTION_CONNECT_TIMEOUT = 2 +INTERNET_OPTION_CONNECT_RETRIES = 3 +INTERNET_OPTION_CONNECT_BACKOFF = 4 +INTERNET_OPTION_SEND_TIMEOUT = 5 +INTERNET_OPTION_CONTROL_SEND_TIMEOUT = INTERNET_OPTION_SEND_TIMEOUT +INTERNET_OPTION_RECEIVE_TIMEOUT = 6 +INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT = INTERNET_OPTION_RECEIVE_TIMEOUT +INTERNET_OPTION_DATA_SEND_TIMEOUT = 7 +INTERNET_OPTION_DATA_RECEIVE_TIMEOUT = 8 +INTERNET_OPTION_HANDLE_TYPE = 9 +INTERNET_OPTION_LISTEN_TIMEOUT = 11 +INTERNET_OPTION_READ_BUFFER_SIZE = 12 +INTERNET_OPTION_WRITE_BUFFER_SIZE = 13 +INTERNET_OPTION_ASYNC_ID = 15 +INTERNET_OPTION_ASYNC_PRIORITY = 16 +INTERNET_OPTION_PARENT_HANDLE = 21 +INTERNET_OPTION_KEEP_CONNECTION = 22 +INTERNET_OPTION_REQUEST_FLAGS = 23 +INTERNET_OPTION_EXTENDED_ERROR = 24 +INTERNET_OPTION_OFFLINE_MODE = 26 +INTERNET_OPTION_CACHE_STREAM_HANDLE = 27 +INTERNET_OPTION_USERNAME = 28 +INTERNET_OPTION_PASSWORD = 29 +INTERNET_OPTION_ASYNC = 30 +INTERNET_OPTION_SECURITY_FLAGS = 31 +INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT = 32 +INTERNET_OPTION_DATAFILE_NAME = 33 +INTERNET_OPTION_URL = 34 +INTERNET_OPTION_SECURITY_CERTIFICATE = 35 +INTERNET_OPTION_SECURITY_KEY_BITNESS = 36 +INTERNET_OPTION_REFRESH = 37 +INTERNET_OPTION_PROXY = 38 +INTERNET_OPTION_SETTINGS_CHANGED = 39 +INTERNET_OPTION_VERSION = 40 +INTERNET_OPTION_USER_AGENT = 41 +INTERNET_OPTION_END_BROWSER_SESSION = 42 +INTERNET_OPTION_PROXY_USERNAME = 43 +INTERNET_OPTION_PROXY_PASSWORD = 44 +INTERNET_OPTION_CONTEXT_VALUE = 45 +INTERNET_OPTION_CONNECT_LIMIT = 46 +INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT = 47 +INTERNET_OPTION_POLICY = 48 +INTERNET_OPTION_DISCONNECTED_TIMEOUT = 49 +INTERNET_OPTION_CONNECTED_STATE = 50 +INTERNET_OPTION_IDLE_STATE = 51 +INTERNET_OPTION_OFFLINE_SEMANTICS = 52 +INTERNET_OPTION_SECONDARY_CACHE_KEY = 53 +INTERNET_OPTION_CALLBACK_FILTER = 54 +INTERNET_OPTION_CONNECT_TIME = 55 +INTERNET_OPTION_SEND_THROUGHPUT = 56 +INTERNET_OPTION_RECEIVE_THROUGHPUT = 57 +INTERNET_OPTION_REQUEST_PRIORITY = 58 +INTERNET_OPTION_HTTP_VERSION = 59 +INTERNET_OPTION_RESET_URLCACHE_SESSION = 60 +INTERNET_OPTION_ERROR_MASK = 62 +INTERNET_OPTION_FROM_CACHE_TIMEOUT = 63 +INTERNET_OPTION_BYPASS_EDITED_ENTRY = 64 +INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO = 67 +INTERNET_OPTION_CODEPAGE = 68 +INTERNET_OPTION_CACHE_TIMESTAMPS = 69 +INTERNET_OPTION_DISABLE_AUTODIAL = 70 +INTERNET_OPTION_MAX_CONNS_PER_SERVER = 73 +INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER = 74 +INTERNET_OPTION_PER_CONNECTION_OPTION = 75 +INTERNET_OPTION_DIGEST_AUTH_UNLOAD = 76 +INTERNET_OPTION_IGNORE_OFFLINE = 77 +INTERNET_OPTION_IDENTITY = 78 +INTERNET_OPTION_REMOVE_IDENTITY = 79 +INTERNET_OPTION_ALTER_IDENTITY = 80 +INTERNET_OPTION_SUPPRESS_BEHAVIOR = 81 +INTERNET_OPTION_AUTODIAL_MODE = 82 +INTERNET_OPTION_AUTODIAL_CONNECTION = 83 +INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84 +INTERNET_OPTION_AUTH_FLAGS = 85 +INTERNET_OPTION_COOKIES_3RD_PARTY = 86 +INTERNET_OPTION_DISABLE_PASSPORT_AUTH = 87 +INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY = 88 +INTERNET_OPTION_EXEMPT_CONNECTION_LIMIT = 89 +INTERNET_OPTION_ENABLE_PASSPORT_AUTH = 90 +INTERNET_OPTION_HIBERNATE_INACTIVE_WORKER_THREADS = 91 +INTERNET_OPTION_ACTIVATE_WORKER_THREADS = 92 +INTERNET_OPTION_RESTORE_WORKER_THREAD_DEFAULTS = 93 +INTERNET_OPTION_SOCKET_SEND_BUFFER_LENGTH = 94 +INTERNET_OPTION_PROXY_SETTINGS_CHANGED = 95 +INTERNET_FIRST_OPTION = INTERNET_OPTION_CALLBACK +INTERNET_LAST_OPTION = INTERNET_OPTION_PROXY_SETTINGS_CHANGED +INTERNET_PRIORITY_FOREGROUND = 1000 +INTERNET_HANDLE_TYPE_INTERNET = 1 +INTERNET_HANDLE_TYPE_CONNECT_FTP = 2 +INTERNET_HANDLE_TYPE_CONNECT_GOPHER = 3 +INTERNET_HANDLE_TYPE_CONNECT_HTTP = 4 +INTERNET_HANDLE_TYPE_FTP_FIND = 5 +INTERNET_HANDLE_TYPE_FTP_FIND_HTML = 6 +INTERNET_HANDLE_TYPE_FTP_FILE = 7 +INTERNET_HANDLE_TYPE_FTP_FILE_HTML = 8 +INTERNET_HANDLE_TYPE_GOPHER_FIND = 9 +INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML = 10 +INTERNET_HANDLE_TYPE_GOPHER_FILE = 11 +INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML = 12 +INTERNET_HANDLE_TYPE_HTTP_REQUEST = 13 +INTERNET_HANDLE_TYPE_FILE_REQUEST = 14 +AUTH_FLAG_DISABLE_NEGOTIATE = 0x00000001 +AUTH_FLAG_ENABLE_NEGOTIATE = 0x00000002 +SECURITY_FLAG_SECURE = 0x00000001 +SECURITY_FLAG_STRENGTH_WEAK = 0x10000000 +SECURITY_FLAG_STRENGTH_MEDIUM = 0x40000000 +SECURITY_FLAG_STRENGTH_STRONG = 0x20000000 +SECURITY_FLAG_UNKNOWNBIT = (-2147483648) +SECURITY_FLAG_FORTEZZA = 0x08000000 +SECURITY_FLAG_NORMALBITNESS = SECURITY_FLAG_STRENGTH_WEAK +SECURITY_FLAG_SSL = 0x00000002 +SECURITY_FLAG_SSL3 = 0x00000004 +SECURITY_FLAG_PCT = 0x00000008 +SECURITY_FLAG_PCT4 = 0x00000010 +SECURITY_FLAG_IETFSSL4 = 0x00000020 +SECURITY_FLAG_40BIT = SECURITY_FLAG_STRENGTH_WEAK +SECURITY_FLAG_128BIT = SECURITY_FLAG_STRENGTH_STRONG +SECURITY_FLAG_56BIT = SECURITY_FLAG_STRENGTH_MEDIUM +SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080 +SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100 +SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200 +SECURITY_FLAG_IGNORE_CERT_CN_INVALID = INTERNET_FLAG_IGNORE_CERT_CN_INVALID +SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID +SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS +SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP +SECURITY_SET_MASK = (SECURITY_FLAG_IGNORE_REVOCATION |\ + SECURITY_FLAG_IGNORE_UNKNOWN_CA |\ + SECURITY_FLAG_IGNORE_CERT_CN_INVALID |\ + SECURITY_FLAG_IGNORE_CERT_DATE_INVALID |\ + SECURITY_FLAG_IGNORE_WRONG_USAGE) +AUTODIAL_MODE_NEVER = 1 +AUTODIAL_MODE_ALWAYS = 2 +AUTODIAL_MODE_NO_NETWORK_PRESENT = 4 +INTERNET_STATUS_RESOLVING_NAME = 10 +INTERNET_STATUS_NAME_RESOLVED = 11 +INTERNET_STATUS_CONNECTING_TO_SERVER = 20 +INTERNET_STATUS_CONNECTED_TO_SERVER = 21 +INTERNET_STATUS_SENDING_REQUEST = 30 +INTERNET_STATUS_REQUEST_SENT = 31 +INTERNET_STATUS_RECEIVING_RESPONSE = 40 +INTERNET_STATUS_RESPONSE_RECEIVED = 41 +INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42 +INTERNET_STATUS_PREFETCH = 43 +INTERNET_STATUS_CLOSING_CONNECTION = 50 +INTERNET_STATUS_CONNECTION_CLOSED = 51 +INTERNET_STATUS_HANDLE_CREATED = 60 +INTERNET_STATUS_HANDLE_CLOSING = 70 +INTERNET_STATUS_DETECTING_PROXY = 80 +INTERNET_STATUS_REQUEST_COMPLETE = 100 +INTERNET_STATUS_REDIRECT = 110 +INTERNET_STATUS_INTERMEDIATE_RESPONSE = 120 +INTERNET_STATUS_USER_INPUT_REQUIRED = 140 +INTERNET_STATUS_STATE_CHANGE = 200 +INTERNET_STATUS_COOKIE_SENT = 320 +INTERNET_STATUS_COOKIE_RECEIVED = 321 +INTERNET_STATUS_PRIVACY_IMPACTED = 324 +INTERNET_STATUS_P3P_HEADER = 325 +INTERNET_STATUS_P3P_POLICYREF = 326 +INTERNET_STATUS_COOKIE_HISTORY = 327 +INTERNET_STATE_CONNECTED = 0x00000001 +INTERNET_STATE_DISCONNECTED = 0x00000002 +INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010 +INTERNET_STATE_IDLE = 0x00000100 +INTERNET_STATE_BUSY = 0x00000200 +FTP_TRANSFER_TYPE_UNKNOWN = 0x00000000 +FTP_TRANSFER_TYPE_ASCII = 0x00000001 +FTP_TRANSFER_TYPE_BINARY = 0x00000002 +FTP_TRANSFER_TYPE_MASK = (FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY) +MAX_GOPHER_DISPLAY_TEXT = 128 +MAX_GOPHER_SELECTOR_TEXT = 256 +MAX_GOPHER_HOST_NAME = INTERNET_MAX_HOST_NAME_LENGTH +MAX_GOPHER_LOCATOR_LENGTH = (1 \ + + MAX_GOPHER_DISPLAY_TEXT \ + + 1 \ + + MAX_GOPHER_SELECTOR_TEXT \ + + 1 \ + + MAX_GOPHER_HOST_NAME \ + + 1 \ + + INTERNET_MAX_PORT_NUMBER_LENGTH \ + + 1 \ + + 1 \ + + 2 \ + ) +GOPHER_TYPE_TEXT_FILE = 0x00000001 +GOPHER_TYPE_DIRECTORY = 0x00000002 +GOPHER_TYPE_CSO = 0x00000004 +GOPHER_TYPE_ERROR = 0x00000008 +GOPHER_TYPE_MAC_BINHEX = 0x00000010 +GOPHER_TYPE_DOS_ARCHIVE = 0x00000020 +GOPHER_TYPE_UNIX_UUENCODED = 0x00000040 +GOPHER_TYPE_INDEX_SERVER = 0x00000080 +GOPHER_TYPE_TELNET = 0x00000100 +GOPHER_TYPE_BINARY = 0x00000200 +GOPHER_TYPE_REDUNDANT = 0x00000400 +GOPHER_TYPE_TN3270 = 0x00000800 +GOPHER_TYPE_GIF = 0x00001000 +GOPHER_TYPE_IMAGE = 0x00002000 +GOPHER_TYPE_BITMAP = 0x00004000 +GOPHER_TYPE_MOVIE = 0x00008000 +GOPHER_TYPE_SOUND = 0x00010000 +GOPHER_TYPE_HTML = 0x00020000 +GOPHER_TYPE_PDF = 0x00040000 +GOPHER_TYPE_CALENDAR = 0x00080000 +GOPHER_TYPE_INLINE = 0x00100000 +GOPHER_TYPE_UNKNOWN = 0x20000000 +GOPHER_TYPE_ASK = 0x40000000 +GOPHER_TYPE_GOPHER_PLUS = (-2147483648) +GOPHER_TYPE_FILE_MASK = (GOPHER_TYPE_TEXT_FILE \ + | GOPHER_TYPE_MAC_BINHEX \ + | GOPHER_TYPE_DOS_ARCHIVE \ + | GOPHER_TYPE_UNIX_UUENCODED \ + | GOPHER_TYPE_BINARY \ + | GOPHER_TYPE_GIF \ + | GOPHER_TYPE_IMAGE \ + | GOPHER_TYPE_BITMAP \ + | GOPHER_TYPE_MOVIE \ + | GOPHER_TYPE_SOUND \ + | GOPHER_TYPE_HTML \ + | GOPHER_TYPE_PDF \ + | GOPHER_TYPE_CALENDAR \ + | GOPHER_TYPE_INLINE \ + ) +MAX_GOPHER_CATEGORY_NAME = 128 +MAX_GOPHER_ATTRIBUTE_NAME = 128 +MIN_GOPHER_ATTRIBUTE_LENGTH = 256 +GOPHER_ATTRIBUTE_ID_BASE = (-1412641792) +GOPHER_CATEGORY_ID_ALL = (GOPHER_ATTRIBUTE_ID_BASE + 1) +GOPHER_CATEGORY_ID_INFO = (GOPHER_ATTRIBUTE_ID_BASE + 2) +GOPHER_CATEGORY_ID_ADMIN = (GOPHER_ATTRIBUTE_ID_BASE + 3) +GOPHER_CATEGORY_ID_VIEWS = (GOPHER_ATTRIBUTE_ID_BASE + 4) +GOPHER_CATEGORY_ID_ABSTRACT = (GOPHER_ATTRIBUTE_ID_BASE + 5) +GOPHER_CATEGORY_ID_VERONICA = (GOPHER_ATTRIBUTE_ID_BASE + 6) +GOPHER_CATEGORY_ID_ASK = (GOPHER_ATTRIBUTE_ID_BASE + 7) +GOPHER_CATEGORY_ID_UNKNOWN = (GOPHER_ATTRIBUTE_ID_BASE + 8) +GOPHER_ATTRIBUTE_ID_ALL = (GOPHER_ATTRIBUTE_ID_BASE + 9) +GOPHER_ATTRIBUTE_ID_ADMIN = (GOPHER_ATTRIBUTE_ID_BASE + 10) +GOPHER_ATTRIBUTE_ID_MOD_DATE = (GOPHER_ATTRIBUTE_ID_BASE + 11) +GOPHER_ATTRIBUTE_ID_TTL = (GOPHER_ATTRIBUTE_ID_BASE + 12) +GOPHER_ATTRIBUTE_ID_SCORE = (GOPHER_ATTRIBUTE_ID_BASE + 13) +GOPHER_ATTRIBUTE_ID_RANGE = (GOPHER_ATTRIBUTE_ID_BASE + 14) +GOPHER_ATTRIBUTE_ID_SITE = (GOPHER_ATTRIBUTE_ID_BASE + 15) +GOPHER_ATTRIBUTE_ID_ORG = (GOPHER_ATTRIBUTE_ID_BASE + 16) +GOPHER_ATTRIBUTE_ID_LOCATION = (GOPHER_ATTRIBUTE_ID_BASE + 17) +GOPHER_ATTRIBUTE_ID_GEOG = (GOPHER_ATTRIBUTE_ID_BASE + 18) +GOPHER_ATTRIBUTE_ID_TIMEZONE = (GOPHER_ATTRIBUTE_ID_BASE + 19) +GOPHER_ATTRIBUTE_ID_PROVIDER = (GOPHER_ATTRIBUTE_ID_BASE + 20) +GOPHER_ATTRIBUTE_ID_VERSION = (GOPHER_ATTRIBUTE_ID_BASE + 21) +GOPHER_ATTRIBUTE_ID_ABSTRACT = (GOPHER_ATTRIBUTE_ID_BASE + 22) +GOPHER_ATTRIBUTE_ID_VIEW = (GOPHER_ATTRIBUTE_ID_BASE + 23) +GOPHER_ATTRIBUTE_ID_TREEWALK = (GOPHER_ATTRIBUTE_ID_BASE + 24) +GOPHER_ATTRIBUTE_ID_UNKNOWN = (GOPHER_ATTRIBUTE_ID_BASE + 25) +HTTP_MAJOR_VERSION = 1 +HTTP_MINOR_VERSION = 0 +HTTP_VERSIONA = "HTTP/1.0" +HTTP_VERSION = HTTP_VERSIONA +HTTP_QUERY_MIME_VERSION = 0 +HTTP_QUERY_CONTENT_TYPE = 1 +HTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2 +HTTP_QUERY_CONTENT_ID = 3 +HTTP_QUERY_CONTENT_DESCRIPTION = 4 +HTTP_QUERY_CONTENT_LENGTH = 5 +HTTP_QUERY_CONTENT_LANGUAGE = 6 +HTTP_QUERY_ALLOW = 7 +HTTP_QUERY_PUBLIC = 8 +HTTP_QUERY_DATE = 9 +HTTP_QUERY_EXPIRES = 10 +HTTP_QUERY_LAST_MODIFIED = 11 +HTTP_QUERY_MESSAGE_ID = 12 +HTTP_QUERY_URI = 13 +HTTP_QUERY_DERIVED_FROM = 14 +HTTP_QUERY_COST = 15 +HTTP_QUERY_LINK = 16 +HTTP_QUERY_PRAGMA = 17 +HTTP_QUERY_VERSION = 18 +HTTP_QUERY_STATUS_CODE = 19 +HTTP_QUERY_STATUS_TEXT = 20 +HTTP_QUERY_RAW_HEADERS = 21 +HTTP_QUERY_RAW_HEADERS_CRLF = 22 +HTTP_QUERY_CONNECTION = 23 +HTTP_QUERY_ACCEPT = 24 +HTTP_QUERY_ACCEPT_CHARSET = 25 +HTTP_QUERY_ACCEPT_ENCODING = 26 +HTTP_QUERY_ACCEPT_LANGUAGE = 27 +HTTP_QUERY_AUTHORIZATION = 28 +HTTP_QUERY_CONTENT_ENCODING = 29 +HTTP_QUERY_FORWARDED = 30 +HTTP_QUERY_FROM = 31 +HTTP_QUERY_IF_MODIFIED_SINCE = 32 +HTTP_QUERY_LOCATION = 33 +HTTP_QUERY_ORIG_URI = 34 +HTTP_QUERY_REFERER = 35 +HTTP_QUERY_RETRY_AFTER = 36 +HTTP_QUERY_SERVER = 37 +HTTP_QUERY_TITLE = 38 +HTTP_QUERY_USER_AGENT = 39 +HTTP_QUERY_WWW_AUTHENTICATE = 40 +HTTP_QUERY_PROXY_AUTHENTICATE = 41 +HTTP_QUERY_ACCEPT_RANGES = 42 +HTTP_QUERY_SET_COOKIE = 43 +HTTP_QUERY_COOKIE = 44 +HTTP_QUERY_REQUEST_METHOD = 45 +HTTP_QUERY_REFRESH = 46 +HTTP_QUERY_CONTENT_DISPOSITION = 47 +HTTP_QUERY_AGE = 48 +HTTP_QUERY_CACHE_CONTROL = 49 +HTTP_QUERY_CONTENT_BASE = 50 +HTTP_QUERY_CONTENT_LOCATION = 51 +HTTP_QUERY_CONTENT_MD5 = 52 +HTTP_QUERY_CONTENT_RANGE = 53 +HTTP_QUERY_ETAG = 54 +HTTP_QUERY_HOST = 55 +HTTP_QUERY_IF_MATCH = 56 +HTTP_QUERY_IF_NONE_MATCH = 57 +HTTP_QUERY_IF_RANGE = 58 +HTTP_QUERY_IF_UNMODIFIED_SINCE = 59 +HTTP_QUERY_MAX_FORWARDS = 60 +HTTP_QUERY_PROXY_AUTHORIZATION = 61 +HTTP_QUERY_RANGE = 62 +HTTP_QUERY_TRANSFER_ENCODING = 63 +HTTP_QUERY_UPGRADE = 64 +HTTP_QUERY_VARY = 65 +HTTP_QUERY_VIA = 66 +HTTP_QUERY_WARNING = 67 +HTTP_QUERY_EXPECT = 68 +HTTP_QUERY_PROXY_CONNECTION = 69 +HTTP_QUERY_UNLESS_MODIFIED_SINCE = 70 +HTTP_QUERY_ECHO_REQUEST = 71 +HTTP_QUERY_ECHO_REPLY = 72 +HTTP_QUERY_ECHO_HEADERS = 73 +HTTP_QUERY_ECHO_HEADERS_CRLF = 74 +HTTP_QUERY_PROXY_SUPPORT = 75 +HTTP_QUERY_AUTHENTICATION_INFO = 76 +HTTP_QUERY_PASSPORT_URLS = 77 +HTTP_QUERY_PASSPORT_CONFIG = 78 +HTTP_QUERY_MAX = 78 +HTTP_QUERY_CUSTOM = 65535 +HTTP_QUERY_FLAG_REQUEST_HEADERS = (-2147483648) +HTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000 +HTTP_QUERY_FLAG_NUMBER = 0x20000000 +HTTP_QUERY_FLAG_COALESCE = 0x10000000 +HTTP_QUERY_MODIFIER_FLAGS_MASK = (HTTP_QUERY_FLAG_REQUEST_HEADERS \ + | HTTP_QUERY_FLAG_SYSTEMTIME \ + | HTTP_QUERY_FLAG_NUMBER \ + | HTTP_QUERY_FLAG_COALESCE \ + ) +HTTP_QUERY_HEADER_MASK = (~HTTP_QUERY_MODIFIER_FLAGS_MASK) +HTTP_STATUS_CONTINUE = 100 +HTTP_STATUS_SWITCH_PROTOCOLS = 101 +HTTP_STATUS_OK = 200 +HTTP_STATUS_CREATED = 201 +HTTP_STATUS_ACCEPTED = 202 +HTTP_STATUS_PARTIAL = 203 +HTTP_STATUS_NO_CONTENT = 204 +HTTP_STATUS_RESET_CONTENT = 205 +HTTP_STATUS_PARTIAL_CONTENT = 206 +HTTP_STATUS_AMBIGUOUS = 300 +HTTP_STATUS_MOVED = 301 +HTTP_STATUS_REDIRECT = 302 +HTTP_STATUS_REDIRECT_METHOD = 303 +HTTP_STATUS_NOT_MODIFIED = 304 +HTTP_STATUS_USE_PROXY = 305 +HTTP_STATUS_REDIRECT_KEEP_VERB = 307 +HTTP_STATUS_BAD_REQUEST = 400 +HTTP_STATUS_DENIED = 401 +HTTP_STATUS_PAYMENT_REQ = 402 +HTTP_STATUS_FORBIDDEN = 403 +HTTP_STATUS_NOT_FOUND = 404 +HTTP_STATUS_BAD_METHOD = 405 +HTTP_STATUS_NONE_ACCEPTABLE = 406 +HTTP_STATUS_PROXY_AUTH_REQ = 407 +HTTP_STATUS_REQUEST_TIMEOUT = 408 +HTTP_STATUS_CONFLICT = 409 +HTTP_STATUS_GONE = 410 +HTTP_STATUS_LENGTH_REQUIRED = 411 +HTTP_STATUS_PRECOND_FAILED = 412 +HTTP_STATUS_REQUEST_TOO_LARGE = 413 +HTTP_STATUS_URI_TOO_LONG = 414 +HTTP_STATUS_UNSUPPORTED_MEDIA = 415 +HTTP_STATUS_RETRY_WITH = 449 +HTTP_STATUS_SERVER_ERROR = 500 +HTTP_STATUS_NOT_SUPPORTED = 501 +HTTP_STATUS_BAD_GATEWAY = 502 +HTTP_STATUS_SERVICE_UNAVAIL = 503 +HTTP_STATUS_GATEWAY_TIMEOUT = 504 +HTTP_STATUS_VERSION_NOT_SUP = 505 +HTTP_STATUS_FIRST = HTTP_STATUS_CONTINUE +HTTP_STATUS_LAST = HTTP_STATUS_VERSION_NOT_SUP +HTTP_ADDREQ_INDEX_MASK = 0x0000FFFF +HTTP_ADDREQ_FLAGS_MASK = (-65536) +HTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000 +HTTP_ADDREQ_FLAG_ADD = 0x20000000 +HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000 +HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000 +HTTP_ADDREQ_FLAG_COALESCE = HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA +HTTP_ADDREQ_FLAG_REPLACE = (-2147483648) +HSR_ASYNC = WININET_API_FLAG_ASYNC +HSR_SYNC = WININET_API_FLAG_SYNC +HSR_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT +HSR_INITIATE = 0x00000008 +HSR_DOWNLOAD = 0x00000010 +HSR_CHUNKED = 0x00000020 +INTERNET_COOKIE_IS_SECURE = 0x01 +INTERNET_COOKIE_IS_SESSION = 0x02 +INTERNET_COOKIE_THIRD_PARTY = 0x10 +INTERNET_COOKIE_PROMPT_REQUIRED = 0x20 +INTERNET_COOKIE_EVALUATE_P3P = 0x40 +INTERNET_COOKIE_APPLY_P3P = 0x80 +INTERNET_COOKIE_P3P_ENABLED = 0x100 +INTERNET_COOKIE_IS_RESTRICTED = 0x200 +INTERNET_COOKIE_IE6 = 0x400 +INTERNET_COOKIE_IS_LEGACY = 0x800 +FLAG_ICC_FORCE_CONNECTION = 0x00000001 +FLAGS_ERROR_UI_FILTER_FOR_ERRORS = 0x01 +FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = 0x02 +FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = 0x04 +FLAGS_ERROR_UI_FLAGS_NO_UI = 0x08 +FLAGS_ERROR_UI_SERIALIZE_DIALOGS = 0x10 +INTERNET_ERROR_BASE = 12000 +ERROR_INTERNET_OUT_OF_HANDLES = (INTERNET_ERROR_BASE + 1) +ERROR_INTERNET_TIMEOUT = (INTERNET_ERROR_BASE + 2) +ERROR_INTERNET_EXTENDED_ERROR = (INTERNET_ERROR_BASE + 3) +ERROR_INTERNET_INTERNAL_ERROR = (INTERNET_ERROR_BASE + 4) +ERROR_INTERNET_INVALID_URL = (INTERNET_ERROR_BASE + 5) +ERROR_INTERNET_UNRECOGNIZED_SCHEME = (INTERNET_ERROR_BASE + 6) +ERROR_INTERNET_NAME_NOT_RESOLVED = (INTERNET_ERROR_BASE + 7) +ERROR_INTERNET_PROTOCOL_NOT_FOUND = (INTERNET_ERROR_BASE + 8) +ERROR_INTERNET_INVALID_OPTION = (INTERNET_ERROR_BASE + 9) +ERROR_INTERNET_BAD_OPTION_LENGTH = (INTERNET_ERROR_BASE + 10) +ERROR_INTERNET_OPTION_NOT_SETTABLE = (INTERNET_ERROR_BASE + 11) +ERROR_INTERNET_SHUTDOWN = (INTERNET_ERROR_BASE + 12) +ERROR_INTERNET_INCORRECT_USER_NAME = (INTERNET_ERROR_BASE + 13) +ERROR_INTERNET_INCORRECT_PASSWORD = (INTERNET_ERROR_BASE + 14) +ERROR_INTERNET_LOGIN_FAILURE = (INTERNET_ERROR_BASE + 15) +ERROR_INTERNET_INVALID_OPERATION = (INTERNET_ERROR_BASE + 16) +ERROR_INTERNET_OPERATION_CANCELLED = (INTERNET_ERROR_BASE + 17) +ERROR_INTERNET_INCORRECT_HANDLE_TYPE = (INTERNET_ERROR_BASE + 18) +ERROR_INTERNET_INCORRECT_HANDLE_STATE = (INTERNET_ERROR_BASE + 19) +ERROR_INTERNET_NOT_PROXY_REQUEST = (INTERNET_ERROR_BASE + 20) +ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND = (INTERNET_ERROR_BASE + 21) +ERROR_INTERNET_BAD_REGISTRY_PARAMETER = (INTERNET_ERROR_BASE + 22) +ERROR_INTERNET_NO_DIRECT_ACCESS = (INTERNET_ERROR_BASE + 23) +ERROR_INTERNET_NO_CONTEXT = (INTERNET_ERROR_BASE + 24) +ERROR_INTERNET_NO_CALLBACK = (INTERNET_ERROR_BASE + 25) +ERROR_INTERNET_REQUEST_PENDING = (INTERNET_ERROR_BASE + 26) +ERROR_INTERNET_INCORRECT_FORMAT = (INTERNET_ERROR_BASE + 27) +ERROR_INTERNET_ITEM_NOT_FOUND = (INTERNET_ERROR_BASE + 28) +ERROR_INTERNET_CANNOT_CONNECT = (INTERNET_ERROR_BASE + 29) +ERROR_INTERNET_CONNECTION_ABORTED = (INTERNET_ERROR_BASE + 30) +ERROR_INTERNET_CONNECTION_RESET = (INTERNET_ERROR_BASE + 31) +ERROR_INTERNET_FORCE_RETRY = (INTERNET_ERROR_BASE + 32) +ERROR_INTERNET_INVALID_PROXY_REQUEST = (INTERNET_ERROR_BASE + 33) +ERROR_INTERNET_NEED_UI = (INTERNET_ERROR_BASE + 34) +ERROR_INTERNET_HANDLE_EXISTS = (INTERNET_ERROR_BASE + 36) +ERROR_INTERNET_SEC_CERT_DATE_INVALID = (INTERNET_ERROR_BASE + 37) +ERROR_INTERNET_SEC_CERT_CN_INVALID = (INTERNET_ERROR_BASE + 38) +ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR = (INTERNET_ERROR_BASE + 39) +ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR = (INTERNET_ERROR_BASE + 40) +ERROR_INTERNET_MIXED_SECURITY = (INTERNET_ERROR_BASE + 41) +ERROR_INTERNET_CHG_POST_IS_NON_SECURE = (INTERNET_ERROR_BASE + 42) +ERROR_INTERNET_POST_IS_NON_SECURE = (INTERNET_ERROR_BASE + 43) +ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED = (INTERNET_ERROR_BASE + 44) +ERROR_INTERNET_INVALID_CA = (INTERNET_ERROR_BASE + 45) +ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP = (INTERNET_ERROR_BASE + 46) +ERROR_INTERNET_ASYNC_THREAD_FAILED = (INTERNET_ERROR_BASE + 47) +ERROR_INTERNET_REDIRECT_SCHEME_CHANGE = (INTERNET_ERROR_BASE + 48) +ERROR_INTERNET_DIALOG_PENDING = (INTERNET_ERROR_BASE + 49) +ERROR_INTERNET_RETRY_DIALOG = (INTERNET_ERROR_BASE + 50) +ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR = (INTERNET_ERROR_BASE + 52) +ERROR_INTERNET_INSERT_CDROM = (INTERNET_ERROR_BASE + 53) +ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED = (INTERNET_ERROR_BASE + 54) +ERROR_INTERNET_SEC_CERT_ERRORS = (INTERNET_ERROR_BASE + 55) +ERROR_INTERNET_SEC_CERT_NO_REV = (INTERNET_ERROR_BASE + 56) +ERROR_INTERNET_SEC_CERT_REV_FAILED = (INTERNET_ERROR_BASE + 57) +ERROR_FTP_TRANSFER_IN_PROGRESS = (INTERNET_ERROR_BASE + 110) +ERROR_FTP_DROPPED = (INTERNET_ERROR_BASE + 111) +ERROR_FTP_NO_PASSIVE_MODE = (INTERNET_ERROR_BASE + 112) +ERROR_GOPHER_PROTOCOL_ERROR = (INTERNET_ERROR_BASE + 130) +ERROR_GOPHER_NOT_FILE = (INTERNET_ERROR_BASE + 131) +ERROR_GOPHER_DATA_ERROR = (INTERNET_ERROR_BASE + 132) +ERROR_GOPHER_END_OF_DATA = (INTERNET_ERROR_BASE + 133) +ERROR_GOPHER_INVALID_LOCATOR = (INTERNET_ERROR_BASE + 134) +ERROR_GOPHER_INCORRECT_LOCATOR_TYPE = (INTERNET_ERROR_BASE + 135) +ERROR_GOPHER_NOT_GOPHER_PLUS = (INTERNET_ERROR_BASE + 136) +ERROR_GOPHER_ATTRIBUTE_NOT_FOUND = (INTERNET_ERROR_BASE + 137) +ERROR_GOPHER_UNKNOWN_LOCATOR = (INTERNET_ERROR_BASE + 138) +ERROR_HTTP_HEADER_NOT_FOUND = (INTERNET_ERROR_BASE + 150) +ERROR_HTTP_DOWNLEVEL_SERVER = (INTERNET_ERROR_BASE + 151) +ERROR_HTTP_INVALID_SERVER_RESPONSE = (INTERNET_ERROR_BASE + 152) +ERROR_HTTP_INVALID_HEADER = (INTERNET_ERROR_BASE + 153) +ERROR_HTTP_INVALID_QUERY_REQUEST = (INTERNET_ERROR_BASE + 154) +ERROR_HTTP_HEADER_ALREADY_EXISTS = (INTERNET_ERROR_BASE + 155) +ERROR_HTTP_REDIRECT_FAILED = (INTERNET_ERROR_BASE + 156) +ERROR_HTTP_NOT_REDIRECTED = (INTERNET_ERROR_BASE + 160) +ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION = (INTERNET_ERROR_BASE + 161) +ERROR_HTTP_COOKIE_DECLINED = (INTERNET_ERROR_BASE + 162) +ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION = (INTERNET_ERROR_BASE + 168) +ERROR_INTERNET_SECURITY_CHANNEL_ERROR = (INTERNET_ERROR_BASE + 157) +ERROR_INTERNET_UNABLE_TO_CACHE_FILE = (INTERNET_ERROR_BASE + 158) +ERROR_INTERNET_TCPIP_NOT_INSTALLED = (INTERNET_ERROR_BASE + 159) +ERROR_INTERNET_DISCONNECTED = (INTERNET_ERROR_BASE + 163) +ERROR_INTERNET_SERVER_UNREACHABLE = (INTERNET_ERROR_BASE + 164) +ERROR_INTERNET_PROXY_SERVER_UNREACHABLE = (INTERNET_ERROR_BASE + 165) +ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT = (INTERNET_ERROR_BASE + 166) +ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT = (INTERNET_ERROR_BASE + 167) +ERROR_INTERNET_SEC_INVALID_CERT = (INTERNET_ERROR_BASE + 169) +ERROR_INTERNET_SEC_CERT_REVOKED = (INTERNET_ERROR_BASE + 170) +ERROR_INTERNET_FAILED_DUETOSECURITYCHECK = (INTERNET_ERROR_BASE + 171) +ERROR_INTERNET_NOT_INITIALIZED = (INTERNET_ERROR_BASE + 172) +ERROR_INTERNET_NEED_MSN_SSPI_PKG = (INTERNET_ERROR_BASE + 173) +ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = (INTERNET_ERROR_BASE + 174) +INTERNET_ERROR_LAST = ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY +NORMAL_CACHE_ENTRY = 0x00000001 +STICKY_CACHE_ENTRY = 0x00000004 +EDITED_CACHE_ENTRY = 0x00000008 +TRACK_OFFLINE_CACHE_ENTRY = 0x00000010 +TRACK_ONLINE_CACHE_ENTRY = 0x00000020 +SPARSE_CACHE_ENTRY = 0x00010000 +COOKIE_CACHE_ENTRY = 0x00100000 +URLHISTORY_CACHE_ENTRY = 0x00200000 +URLCACHE_FIND_DEFAULT_FILTER = NORMAL_CACHE_ENTRY \ + | COOKIE_CACHE_ENTRY \ + | URLHISTORY_CACHE_ENTRY \ + | TRACK_OFFLINE_CACHE_ENTRY \ + | TRACK_ONLINE_CACHE_ENTRY \ + | STICKY_CACHE_ENTRY +CACHEGROUP_ATTRIBUTE_GET_ALL = (-1) +CACHEGROUP_ATTRIBUTE_BASIC = 0x00000001 +CACHEGROUP_ATTRIBUTE_FLAG = 0x00000002 +CACHEGROUP_ATTRIBUTE_TYPE = 0x00000004 +CACHEGROUP_ATTRIBUTE_QUOTA = 0x00000008 +CACHEGROUP_ATTRIBUTE_GROUPNAME = 0x00000010 +CACHEGROUP_ATTRIBUTE_STORAGE = 0x00000020 +CACHEGROUP_FLAG_NONPURGEABLE = 0x00000001 +CACHEGROUP_FLAG_GIDONLY = 0x00000004 +CACHEGROUP_FLAG_FLUSHURL_ONDELETE = 0x00000002 +CACHEGROUP_SEARCH_ALL = 0x00000000 +CACHEGROUP_SEARCH_BYURL = 0x00000001 +CACHEGROUP_TYPE_INVALID = 0x00000001 +CACHEGROUP_READWRITE_MASK = \ + CACHEGROUP_ATTRIBUTE_TYPE \ + | CACHEGROUP_ATTRIBUTE_QUOTA \ + | CACHEGROUP_ATTRIBUTE_GROUPNAME \ + | CACHEGROUP_ATTRIBUTE_STORAGE +GROUPNAME_MAX_LENGTH = 120 +GROUP_OWNER_STORAGE_SIZE = 4 +CACHE_ENTRY_ATTRIBUTE_FC = 0x00000004 +CACHE_ENTRY_HITRATE_FC = 0x00000010 +CACHE_ENTRY_MODTIME_FC = 0x00000040 +CACHE_ENTRY_EXPTIME_FC = 0x00000080 +CACHE_ENTRY_ACCTIME_FC = 0x00000100 +CACHE_ENTRY_SYNCTIME_FC = 0x00000200 +CACHE_ENTRY_HEADERINFO_FC = 0x00000400 +CACHE_ENTRY_EXEMPT_DELTA_FC = 0x00000800 +INTERNET_CACHE_GROUP_ADD = 0 +INTERNET_CACHE_GROUP_REMOVE = 1 +INTERNET_DIAL_FORCE_PROMPT = 0x2000 +INTERNET_DIAL_SHOW_OFFLINE = 0x4000 +INTERNET_DIAL_UNATTENDED = 0x8000 +INTERENT_GOONLINE_REFRESH = 0x00000001 +INTERENT_GOONLINE_MASK = 0x00000001 +INTERNET_AUTODIAL_FORCE_ONLINE = 1 +INTERNET_AUTODIAL_FORCE_UNATTENDED = 2 +INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4 +INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT = 8 +INTERNET_AUTODIAL_FLAGS_MASK = (INTERNET_AUTODIAL_FORCE_ONLINE | INTERNET_AUTODIAL_FORCE_UNATTENDED | INTERNET_AUTODIAL_FAILIFSECURITYCHECK | INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT) +PROXY_AUTO_DETECT_TYPE_DHCP = 1 +PROXY_AUTO_DETECT_TYPE_DNS_A = 2 +INTERNET_CONNECTION_MODEM = 0x01 +INTERNET_CONNECTION_LAN = 0x02 +INTERNET_CONNECTION_PROXY = 0x04 +INTERNET_CONNECTION_MODEM_BUSY = 0x08 +INTERNET_RAS_INSTALLED = 0x10 +INTERNET_CONNECTION_OFFLINE = 0x20 +INTERNET_CONNECTION_CONFIGURED = 0x40 +INTERNET_CUSTOMDIAL_CONNECT = 0 +INTERNET_CUSTOMDIAL_UNATTENDED = 1 +INTERNET_CUSTOMDIAL_DISCONNECT = 2 +INTERNET_CUSTOMDIAL_SHOWOFFLINE = 4 +INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED = 1 +INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE = 2 +INTERNET_CUSTOMDIAL_CAN_HANGUP = 4 +INTERNET_DIALSTATE_DISCONNECTED = 1 +INTERNET_IDENTITY_FLAG_PRIVATE_CACHE = 0x01 +INTERNET_IDENTITY_FLAG_SHARED_CACHE = 0x02 +INTERNET_IDENTITY_FLAG_CLEAR_DATA = 0x04 +INTERNET_IDENTITY_FLAG_CLEAR_COOKIES = 0x08 +INTERNET_IDENTITY_FLAG_CLEAR_HISTORY = 0x10 +INTERNET_IDENTITY_FLAG_CLEAR_CONTENT = 0x20 +INTERNET_SUPPRESS_RESET_ALL = 0x00 +INTERNET_SUPPRESS_COOKIE_POLICY = 0x01 +INTERNET_SUPPRESS_COOKIE_POLICY_RESET = 0x02 +PRIVACY_TEMPLATE_NO_COOKIES = 0 +PRIVACY_TEMPLATE_HIGH = 1 +PRIVACY_TEMPLATE_MEDIUM_HIGH = 2 +PRIVACY_TEMPLATE_MEDIUM = 3 +PRIVACY_TEMPLATE_MEDIUM_LOW = 4 +PRIVACY_TEMPLATE_LOW = 5 +PRIVACY_TEMPLATE_CUSTOM = 100 +PRIVACY_TEMPLATE_ADVANCED = 101 +PRIVACY_TEMPLATE_MAX = PRIVACY_TEMPLATE_LOW +PRIVACY_TYPE_FIRST_PARTY = 0 +PRIVACY_TYPE_THIRD_PARTY = 1 + +# Generated by h2py from winhttp.h +INTERNET_DEFAULT_PORT = 0 +INTERNET_DEFAULT_HTTP_PORT = 80 +INTERNET_DEFAULT_HTTPS_PORT = 443 +WINHTTP_FLAG_ASYNC = 0x10000000 +WINHTTP_FLAG_SECURE = 0x00800000 +WINHTTP_FLAG_ESCAPE_PERCENT = 0x00000004 +WINHTTP_FLAG_NULL_CODEPAGE = 0x00000008 +WINHTTP_FLAG_BYPASS_PROXY_CACHE = 0x00000100 +WINHTTP_FLAG_REFRESH = WINHTTP_FLAG_BYPASS_PROXY_CACHE +WINHTTP_FLAG_ESCAPE_DISABLE = 0x00000040 +WINHTTP_FLAG_ESCAPE_DISABLE_QUERY = 0x00000080 +SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100 +SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 +SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000 +SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE = 0x00000200 +INTERNET_SCHEME_HTTP = (1) +INTERNET_SCHEME_HTTPS = (2) +WINHTTP_AUTOPROXY_AUTO_DETECT = 0x00000001 +WINHTTP_AUTOPROXY_CONFIG_URL = 0x00000002 +WINHTTP_AUTOPROXY_RUN_INPROCESS = 0x00010000 +WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY = 0x00020000 +WINHTTP_AUTO_DETECT_TYPE_DHCP = 0x00000001 +WINHTTP_AUTO_DETECT_TYPE_DNS_A = 0x00000002 +WINHTTP_TIME_FORMAT_BUFSIZE = 62 +ICU_NO_ENCODE = 0x20000000 +ICU_DECODE = 0x10000000 +ICU_NO_META = 0x08000000 +ICU_ENCODE_SPACES_ONLY = 0x04000000 +ICU_BROWSER_MODE = 0x02000000 +ICU_ENCODE_PERCENT = 0x00001000 +ICU_ESCAPE = (-2147483648) +ICU_ESCAPE_AUTHORITY = 0x00002000 +ICU_REJECT_USERPWD = 0x00004000 +WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0 +WINHTTP_ACCESS_TYPE_NO_PROXY = 1 +WINHTTP_ACCESS_TYPE_NAMED_PROXY = 3 +WINHTTP_OPTION_CALLBACK = 1 +WINHTTP_OPTION_RESOLVE_TIMEOUT = 2 +WINHTTP_OPTION_CONNECT_TIMEOUT = 3 +WINHTTP_OPTION_CONNECT_RETRIES = 4 +WINHTTP_OPTION_SEND_TIMEOUT = 5 +WINHTTP_OPTION_RECEIVE_TIMEOUT = 6 +WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT = 7 +WINHTTP_OPTION_HANDLE_TYPE = 9 +WINHTTP_OPTION_READ_BUFFER_SIZE = 12 +WINHTTP_OPTION_WRITE_BUFFER_SIZE = 13 +WINHTTP_OPTION_PARENT_HANDLE = 21 +WINHTTP_OPTION_EXTENDED_ERROR = 24 +WINHTTP_OPTION_SECURITY_FLAGS = 31 +WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT = 32 +WINHTTP_OPTION_URL = 34 +WINHTTP_OPTION_SECURITY_KEY_BITNESS = 36 +WINHTTP_OPTION_PROXY = 38 +WINHTTP_OPTION_USER_AGENT = 41 +WINHTTP_OPTION_CONTEXT_VALUE = 45 +WINHTTP_OPTION_CLIENT_CERT_CONTEXT = 47 +WINHTTP_OPTION_REQUEST_PRIORITY = 58 +WINHTTP_OPTION_HTTP_VERSION = 59 +WINHTTP_OPTION_DISABLE_FEATURE = 63 +WINHTTP_OPTION_CODEPAGE = 68 +WINHTTP_OPTION_MAX_CONNS_PER_SERVER = 73 +WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER = 74 +WINHTTP_OPTION_AUTOLOGON_POLICY = 77 +WINHTTP_OPTION_SERVER_CERT_CONTEXT = 78 +WINHTTP_OPTION_ENABLE_FEATURE = 79 +WINHTTP_OPTION_WORKER_THREAD_COUNT = 80 +WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT = 81 +WINHTTP_OPTION_PASSPORT_COBRANDING_URL = 82 +WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH = 83 +WINHTTP_OPTION_SECURE_PROTOCOLS = 84 +WINHTTP_OPTION_ENABLETRACING = 85 +WINHTTP_OPTION_PASSPORT_SIGN_OUT = 86 +WINHTTP_OPTION_PASSPORT_RETURN_URL = 87 +WINHTTP_OPTION_REDIRECT_POLICY = 88 +WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS = 89 +WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE = 90 +WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE = 91 +WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE = 92 +WINHTTP_OPTION_CONNECTION_INFO = 93 +WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST = 94 +WINHTTP_OPTION_SPN = 96 +WINHTTP_OPTION_GLOBAL_PROXY_CREDS = 97 +WINHTTP_OPTION_GLOBAL_SERVER_CREDS = 98 +WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT = 99 +WINHTTP_OPTION_REJECT_USERPWD_IN_URL = 100 +WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS = 101 +WINHTTP_LAST_OPTION = WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS +WINHTTP_OPTION_USERNAME = 0x1000 +WINHTTP_OPTION_PASSWORD = 0x1001 +WINHTTP_OPTION_PROXY_USERNAME = 0x1002 +WINHTTP_OPTION_PROXY_PASSWORD = 0x1003 +WINHTTP_CONNS_PER_SERVER_UNLIMITED = (-1) +WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM = 0 +WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW = 1 +WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH = 2 +WINHTTP_AUTOLOGON_SECURITY_LEVEL_DEFAULT = WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM +WINHTTP_OPTION_REDIRECT_POLICY_NEVER = 0 +WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP = 1 +WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS = 2 +WINHTTP_OPTION_REDIRECT_POLICY_LAST = WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS +WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT = WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP +WINHTTP_DISABLE_PASSPORT_AUTH = 0x00000000 +WINHTTP_ENABLE_PASSPORT_AUTH = 0x10000000 +WINHTTP_DISABLE_PASSPORT_KEYRING = 0x20000000 +WINHTTP_ENABLE_PASSPORT_KEYRING = 0x40000000 +WINHTTP_DISABLE_COOKIES = 0x00000001 +WINHTTP_DISABLE_REDIRECTS = 0x00000002 +WINHTTP_DISABLE_AUTHENTICATION = 0x00000004 +WINHTTP_DISABLE_KEEP_ALIVE = 0x00000008 +WINHTTP_ENABLE_SSL_REVOCATION = 0x00000001 +WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION = 0x00000002 +WINHTTP_DISABLE_SPN_SERVER_PORT = 0x00000000 +WINHTTP_ENABLE_SPN_SERVER_PORT = 0x00000001 +WINHTTP_OPTION_SPN_MASK = WINHTTP_ENABLE_SPN_SERVER_PORT +WINHTTP_HANDLE_TYPE_SESSION = 1 +WINHTTP_HANDLE_TYPE_CONNECT = 2 +WINHTTP_HANDLE_TYPE_REQUEST = 3 +WINHTTP_AUTH_SCHEME_BASIC = 0x00000001 +WINHTTP_AUTH_SCHEME_NTLM = 0x00000002 +WINHTTP_AUTH_SCHEME_PASSPORT = 0x00000004 +WINHTTP_AUTH_SCHEME_DIGEST = 0x00000008 +WINHTTP_AUTH_SCHEME_NEGOTIATE = 0x00000010 +WINHTTP_AUTH_TARGET_SERVER = 0x00000000 +WINHTTP_AUTH_TARGET_PROXY = 0x00000001 +SECURITY_FLAG_SECURE = 0x00000001 +SECURITY_FLAG_STRENGTH_WEAK = 0x10000000 +SECURITY_FLAG_STRENGTH_MEDIUM = 0x40000000 +SECURITY_FLAG_STRENGTH_STRONG = 0x20000000 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_REV_FAILED = 0x00000001 +WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CERT = 0x00000002 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_REVOKED = 0x00000004 +WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA = 0x00000008 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID = 0x00000010 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID = 0x00000020 +WINHTTP_CALLBACK_STATUS_FLAG_CERT_WRONG_USAGE = 0x00000040 +WINHTTP_CALLBACK_STATUS_FLAG_SECURITY_CHANNEL_ERROR = (-2147483648) +WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 = 0x00000008 +WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 = 0x00000020 +WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 = 0x00000080 +WINHTTP_FLAG_SECURE_PROTOCOL_ALL = (WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | \ + WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | \ + WINHTTP_FLAG_SECURE_PROTOCOL_TLS1) +WINHTTP_CALLBACK_STATUS_RESOLVING_NAME = 0x00000001 +WINHTTP_CALLBACK_STATUS_NAME_RESOLVED = 0x00000002 +WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER = 0x00000004 +WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER = 0x00000008 +WINHTTP_CALLBACK_STATUS_SENDING_REQUEST = 0x00000010 +WINHTTP_CALLBACK_STATUS_REQUEST_SENT = 0x00000020 +WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE = 0x00000040 +WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED = 0x00000080 +WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION = 0x00000100 +WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED = 0x00000200 +WINHTTP_CALLBACK_STATUS_HANDLE_CREATED = 0x00000400 +WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING = 0x00000800 +WINHTTP_CALLBACK_STATUS_DETECTING_PROXY = 0x00001000 +WINHTTP_CALLBACK_STATUS_REDIRECT = 0x00004000 +WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE = 0x00008000 +WINHTTP_CALLBACK_STATUS_SECURE_FAILURE = 0x00010000 +WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE = 0x00020000 +WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE = 0x00040000 +WINHTTP_CALLBACK_STATUS_READ_COMPLETE = 0x00080000 +WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE = 0x00100000 +WINHTTP_CALLBACK_STATUS_REQUEST_ERROR = 0x00200000 +WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE = 0x00400000 +API_RECEIVE_RESPONSE = (1) +API_QUERY_DATA_AVAILABLE = (2) +API_READ_DATA = (3) +API_WRITE_DATA = (4) +API_SEND_REQUEST = (5) +WINHTTP_CALLBACK_FLAG_RESOLVE_NAME = (WINHTTP_CALLBACK_STATUS_RESOLVING_NAME | WINHTTP_CALLBACK_STATUS_NAME_RESOLVED) +WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER = (WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER | WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER) +WINHTTP_CALLBACK_FLAG_SEND_REQUEST = (WINHTTP_CALLBACK_STATUS_SENDING_REQUEST | WINHTTP_CALLBACK_STATUS_REQUEST_SENT) +WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE = (WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE | WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED) +WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION = (WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION | WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED) +WINHTTP_CALLBACK_FLAG_HANDLES = (WINHTTP_CALLBACK_STATUS_HANDLE_CREATED | WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING) +WINHTTP_CALLBACK_FLAG_DETECTING_PROXY = WINHTTP_CALLBACK_STATUS_DETECTING_PROXY +WINHTTP_CALLBACK_FLAG_REDIRECT = WINHTTP_CALLBACK_STATUS_REDIRECT +WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE = WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE +WINHTTP_CALLBACK_FLAG_SECURE_FAILURE = WINHTTP_CALLBACK_STATUS_SECURE_FAILURE +WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE = WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE +WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE = WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE +WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE = WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE +WINHTTP_CALLBACK_FLAG_READ_COMPLETE = WINHTTP_CALLBACK_STATUS_READ_COMPLETE +WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE = WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE +WINHTTP_CALLBACK_FLAG_REQUEST_ERROR = WINHTTP_CALLBACK_STATUS_REQUEST_ERROR +WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS = (WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE \ + | WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE \ + | WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE \ + | WINHTTP_CALLBACK_STATUS_READ_COMPLETE \ + | WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE \ + | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR) +WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS = (-1) +WINHTTP_QUERY_MIME_VERSION = 0 +WINHTTP_QUERY_CONTENT_TYPE = 1 +WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2 +WINHTTP_QUERY_CONTENT_ID = 3 +WINHTTP_QUERY_CONTENT_DESCRIPTION = 4 +WINHTTP_QUERY_CONTENT_LENGTH = 5 +WINHTTP_QUERY_CONTENT_LANGUAGE = 6 +WINHTTP_QUERY_ALLOW = 7 +WINHTTP_QUERY_PUBLIC = 8 +WINHTTP_QUERY_DATE = 9 +WINHTTP_QUERY_EXPIRES = 10 +WINHTTP_QUERY_LAST_MODIFIED = 11 +WINHTTP_QUERY_MESSAGE_ID = 12 +WINHTTP_QUERY_URI = 13 +WINHTTP_QUERY_DERIVED_FROM = 14 +WINHTTP_QUERY_COST = 15 +WINHTTP_QUERY_LINK = 16 +WINHTTP_QUERY_PRAGMA = 17 +WINHTTP_QUERY_VERSION = 18 +WINHTTP_QUERY_STATUS_CODE = 19 +WINHTTP_QUERY_STATUS_TEXT = 20 +WINHTTP_QUERY_RAW_HEADERS = 21 +WINHTTP_QUERY_RAW_HEADERS_CRLF = 22 +WINHTTP_QUERY_CONNECTION = 23 +WINHTTP_QUERY_ACCEPT = 24 +WINHTTP_QUERY_ACCEPT_CHARSET = 25 +WINHTTP_QUERY_ACCEPT_ENCODING = 26 +WINHTTP_QUERY_ACCEPT_LANGUAGE = 27 +WINHTTP_QUERY_AUTHORIZATION = 28 +WINHTTP_QUERY_CONTENT_ENCODING = 29 +WINHTTP_QUERY_FORWARDED = 30 +WINHTTP_QUERY_FROM = 31 +WINHTTP_QUERY_IF_MODIFIED_SINCE = 32 +WINHTTP_QUERY_LOCATION = 33 +WINHTTP_QUERY_ORIG_URI = 34 +WINHTTP_QUERY_REFERER = 35 +WINHTTP_QUERY_RETRY_AFTER = 36 +WINHTTP_QUERY_SERVER = 37 +WINHTTP_QUERY_TITLE = 38 +WINHTTP_QUERY_USER_AGENT = 39 +WINHTTP_QUERY_WWW_AUTHENTICATE = 40 +WINHTTP_QUERY_PROXY_AUTHENTICATE = 41 +WINHTTP_QUERY_ACCEPT_RANGES = 42 +WINHTTP_QUERY_SET_COOKIE = 43 +WINHTTP_QUERY_COOKIE = 44 +WINHTTP_QUERY_REQUEST_METHOD = 45 +WINHTTP_QUERY_REFRESH = 46 +WINHTTP_QUERY_CONTENT_DISPOSITION = 47 +WINHTTP_QUERY_AGE = 48 +WINHTTP_QUERY_CACHE_CONTROL = 49 +WINHTTP_QUERY_CONTENT_BASE = 50 +WINHTTP_QUERY_CONTENT_LOCATION = 51 +WINHTTP_QUERY_CONTENT_MD5 = 52 +WINHTTP_QUERY_CONTENT_RANGE = 53 +WINHTTP_QUERY_ETAG = 54 +WINHTTP_QUERY_HOST = 55 +WINHTTP_QUERY_IF_MATCH = 56 +WINHTTP_QUERY_IF_NONE_MATCH = 57 +WINHTTP_QUERY_IF_RANGE = 58 +WINHTTP_QUERY_IF_UNMODIFIED_SINCE = 59 +WINHTTP_QUERY_MAX_FORWARDS = 60 +WINHTTP_QUERY_PROXY_AUTHORIZATION = 61 +WINHTTP_QUERY_RANGE = 62 +WINHTTP_QUERY_TRANSFER_ENCODING = 63 +WINHTTP_QUERY_UPGRADE = 64 +WINHTTP_QUERY_VARY = 65 +WINHTTP_QUERY_VIA = 66 +WINHTTP_QUERY_WARNING = 67 +WINHTTP_QUERY_EXPECT = 68 +WINHTTP_QUERY_PROXY_CONNECTION = 69 +WINHTTP_QUERY_UNLESS_MODIFIED_SINCE = 70 +WINHTTP_QUERY_PROXY_SUPPORT = 75 +WINHTTP_QUERY_AUTHENTICATION_INFO = 76 +WINHTTP_QUERY_PASSPORT_URLS = 77 +WINHTTP_QUERY_PASSPORT_CONFIG = 78 +WINHTTP_QUERY_MAX = 78 +WINHTTP_QUERY_CUSTOM = 65535 +WINHTTP_QUERY_FLAG_REQUEST_HEADERS = (-2147483648) +WINHTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000 +WINHTTP_QUERY_FLAG_NUMBER = 0x20000000 +HTTP_STATUS_CONTINUE = 100 +HTTP_STATUS_SWITCH_PROTOCOLS = 101 +HTTP_STATUS_OK = 200 +HTTP_STATUS_CREATED = 201 +HTTP_STATUS_ACCEPTED = 202 +HTTP_STATUS_PARTIAL = 203 +HTTP_STATUS_NO_CONTENT = 204 +HTTP_STATUS_RESET_CONTENT = 205 +HTTP_STATUS_PARTIAL_CONTENT = 206 +HTTP_STATUS_WEBDAV_MULTI_STATUS = 207 +HTTP_STATUS_AMBIGUOUS = 300 +HTTP_STATUS_MOVED = 301 +HTTP_STATUS_REDIRECT = 302 +HTTP_STATUS_REDIRECT_METHOD = 303 +HTTP_STATUS_NOT_MODIFIED = 304 +HTTP_STATUS_USE_PROXY = 305 +HTTP_STATUS_REDIRECT_KEEP_VERB = 307 +HTTP_STATUS_BAD_REQUEST = 400 +HTTP_STATUS_DENIED = 401 +HTTP_STATUS_PAYMENT_REQ = 402 +HTTP_STATUS_FORBIDDEN = 403 +HTTP_STATUS_NOT_FOUND = 404 +HTTP_STATUS_BAD_METHOD = 405 +HTTP_STATUS_NONE_ACCEPTABLE = 406 +HTTP_STATUS_PROXY_AUTH_REQ = 407 +HTTP_STATUS_REQUEST_TIMEOUT = 408 +HTTP_STATUS_CONFLICT = 409 +HTTP_STATUS_GONE = 410 +HTTP_STATUS_LENGTH_REQUIRED = 411 +HTTP_STATUS_PRECOND_FAILED = 412 +HTTP_STATUS_REQUEST_TOO_LARGE = 413 +HTTP_STATUS_URI_TOO_LONG = 414 +HTTP_STATUS_UNSUPPORTED_MEDIA = 415 +HTTP_STATUS_RETRY_WITH = 449 +HTTP_STATUS_SERVER_ERROR = 500 +HTTP_STATUS_NOT_SUPPORTED = 501 +HTTP_STATUS_BAD_GATEWAY = 502 +HTTP_STATUS_SERVICE_UNAVAIL = 503 +HTTP_STATUS_GATEWAY_TIMEOUT = 504 +HTTP_STATUS_VERSION_NOT_SUP = 505 +HTTP_STATUS_FIRST = HTTP_STATUS_CONTINUE +HTTP_STATUS_LAST = HTTP_STATUS_VERSION_NOT_SUP +WINHTTP_ADDREQ_INDEX_MASK = 0x0000FFFF +WINHTTP_ADDREQ_FLAGS_MASK = (-65536) +WINHTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000 +WINHTTP_ADDREQ_FLAG_ADD = 0x20000000 +WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000 +WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000 +WINHTTP_ADDREQ_FLAG_COALESCE = WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA +WINHTTP_ADDREQ_FLAG_REPLACE = (-2147483648) +WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH = 0 +WINHTTP_ERROR_BASE = 12000 +ERROR_WINHTTP_OUT_OF_HANDLES = (WINHTTP_ERROR_BASE + 1) +ERROR_WINHTTP_TIMEOUT = (WINHTTP_ERROR_BASE + 2) +ERROR_WINHTTP_INTERNAL_ERROR = (WINHTTP_ERROR_BASE + 4) +ERROR_WINHTTP_INVALID_URL = (WINHTTP_ERROR_BASE + 5) +ERROR_WINHTTP_UNRECOGNIZED_SCHEME = (WINHTTP_ERROR_BASE + 6) +ERROR_WINHTTP_NAME_NOT_RESOLVED = (WINHTTP_ERROR_BASE + 7) +ERROR_WINHTTP_INVALID_OPTION = (WINHTTP_ERROR_BASE + 9) +ERROR_WINHTTP_OPTION_NOT_SETTABLE = (WINHTTP_ERROR_BASE + 11) +ERROR_WINHTTP_SHUTDOWN = (WINHTTP_ERROR_BASE + 12) +ERROR_WINHTTP_LOGIN_FAILURE = (WINHTTP_ERROR_BASE + 15) +ERROR_WINHTTP_OPERATION_CANCELLED = (WINHTTP_ERROR_BASE + 17) +ERROR_WINHTTP_INCORRECT_HANDLE_TYPE = (WINHTTP_ERROR_BASE + 18) +ERROR_WINHTTP_INCORRECT_HANDLE_STATE = (WINHTTP_ERROR_BASE + 19) +ERROR_WINHTTP_CANNOT_CONNECT = (WINHTTP_ERROR_BASE + 29) +ERROR_WINHTTP_CONNECTION_ERROR = (WINHTTP_ERROR_BASE + 30) +ERROR_WINHTTP_RESEND_REQUEST = (WINHTTP_ERROR_BASE + 32) +ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED = (WINHTTP_ERROR_BASE + 44) +ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN = (WINHTTP_ERROR_BASE + 100) +ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND = (WINHTTP_ERROR_BASE + 101) +ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND = (WINHTTP_ERROR_BASE + 102) +ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN = (WINHTTP_ERROR_BASE + 103) +ERROR_WINHTTP_HEADER_NOT_FOUND = (WINHTTP_ERROR_BASE + 150) +ERROR_WINHTTP_INVALID_SERVER_RESPONSE = (WINHTTP_ERROR_BASE + 152) +ERROR_WINHTTP_INVALID_HEADER = (WINHTTP_ERROR_BASE + 153) +ERROR_WINHTTP_INVALID_QUERY_REQUEST = (WINHTTP_ERROR_BASE + 154) +ERROR_WINHTTP_HEADER_ALREADY_EXISTS = (WINHTTP_ERROR_BASE + 155) +ERROR_WINHTTP_REDIRECT_FAILED = (WINHTTP_ERROR_BASE + 156) +ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR = (WINHTTP_ERROR_BASE + 178) +ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT = (WINHTTP_ERROR_BASE + 166) +ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT = (WINHTTP_ERROR_BASE + 167) +ERROR_WINHTTP_NOT_INITIALIZED = (WINHTTP_ERROR_BASE + 172) +ERROR_WINHTTP_SECURE_FAILURE = (WINHTTP_ERROR_BASE + 175) +ERROR_WINHTTP_SECURE_CERT_DATE_INVALID = (WINHTTP_ERROR_BASE + 37) +ERROR_WINHTTP_SECURE_CERT_CN_INVALID = (WINHTTP_ERROR_BASE + 38) +ERROR_WINHTTP_SECURE_INVALID_CA = (WINHTTP_ERROR_BASE + 45) +ERROR_WINHTTP_SECURE_CERT_REV_FAILED = (WINHTTP_ERROR_BASE + 57) +ERROR_WINHTTP_SECURE_CHANNEL_ERROR = (WINHTTP_ERROR_BASE + 157) +ERROR_WINHTTP_SECURE_INVALID_CERT = (WINHTTP_ERROR_BASE + 169) +ERROR_WINHTTP_SECURE_CERT_REVOKED = (WINHTTP_ERROR_BASE + 170) +ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE = (WINHTTP_ERROR_BASE + 179) +ERROR_WINHTTP_AUTODETECTION_FAILED = (WINHTTP_ERROR_BASE + 180) +ERROR_WINHTTP_HEADER_COUNT_EXCEEDED = (WINHTTP_ERROR_BASE + 181) +ERROR_WINHTTP_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 182) +ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 183) +ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW = (WINHTTP_ERROR_BASE + 184) +ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY = (WINHTTP_ERROR_BASE + 185) +ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY = (WINHTTP_ERROR_BASE + 186) +WINHTTP_ERROR_LAST = (WINHTTP_ERROR_BASE + 186) + +WINHTTP_NO_PROXY_NAME = None +WINHTTP_NO_PROXY_BYPASS = None +WINHTTP_NO_REFERER = None +WINHTTP_DEFAULT_ACCEPT_TYPES = None +WINHTTP_NO_ADDITIONAL_HEADERS = None +WINHTTP_NO_REQUEST_DATA = None diff --git a/typings/win32helper/win32netcon.pyi b/typings/win32helper/win32netcon.pyi new file mode 100644 index 00000000..73795969 --- /dev/null +++ b/typings/win32helper/win32netcon.pyi @@ -0,0 +1,655 @@ +# Generated by h2py from lmaccess.h + +# Included from lmcons.h +CNLEN = 15 +LM20_CNLEN = 15 +DNLEN = CNLEN +LM20_DNLEN = LM20_CNLEN +UNCLEN = (CNLEN+2) +LM20_UNCLEN = (LM20_CNLEN+2) +NNLEN = 80 +LM20_NNLEN = 12 +RMLEN = (UNCLEN+1+NNLEN) +LM20_RMLEN = (LM20_UNCLEN+1+LM20_NNLEN) +SNLEN = 80 +LM20_SNLEN = 15 +STXTLEN = 256 +LM20_STXTLEN = 63 +PATHLEN = 256 +LM20_PATHLEN = 256 +DEVLEN = 80 +LM20_DEVLEN = 8 +EVLEN = 16 +UNLEN = 256 +LM20_UNLEN = 20 +GNLEN = UNLEN +LM20_GNLEN = LM20_UNLEN +PWLEN = 256 +LM20_PWLEN = 14 +SHPWLEN = 8 +CLTYPE_LEN = 12 +MAXCOMMENTSZ = 256 +LM20_MAXCOMMENTSZ = 48 +QNLEN = NNLEN +LM20_QNLEN = LM20_NNLEN +ALERTSZ = 128 +NETBIOS_NAME_LEN = 16 +CRYPT_KEY_LEN = 7 +CRYPT_TXT_LEN = 8 +ENCRYPTED_PWLEN = 16 +SESSION_PWLEN = 24 +SESSION_CRYPT_KLEN = 21 +PARMNUM_ALL = 0 +PARM_ERROR_NONE = 0 +PARMNUM_BASE_INFOLEVEL = 1000 +NULL = 0 +PLATFORM_ID_DOS = 300 +PLATFORM_ID_OS2 = 400 +PLATFORM_ID_NT = 500 +PLATFORM_ID_OSF = 600 +PLATFORM_ID_VMS = 700 +MAX_LANMAN_MESSAGE_ID = 5799 +UF_SCRIPT = 1 +UF_ACCOUNTDISABLE = 2 +UF_HOMEDIR_REQUIRED = 8 +UF_LOCKOUT = 16 +UF_PASSWD_NOTREQD = 32 +UF_PASSWD_CANT_CHANGE = 64 +UF_TEMP_DUPLICATE_ACCOUNT = 256 +UF_NORMAL_ACCOUNT = 512 +UF_INTERDOMAIN_TRUST_ACCOUNT = 2048 +UF_WORKSTATION_TRUST_ACCOUNT = 4096 +UF_SERVER_TRUST_ACCOUNT = 8192 +UF_MACHINE_ACCOUNT_MASK = ( UF_INTERDOMAIN_TRUST_ACCOUNT | \ + UF_WORKSTATION_TRUST_ACCOUNT | \ + UF_SERVER_TRUST_ACCOUNT ) +UF_ACCOUNT_TYPE_MASK = ( \ + UF_TEMP_DUPLICATE_ACCOUNT | \ + UF_NORMAL_ACCOUNT | \ + UF_INTERDOMAIN_TRUST_ACCOUNT | \ + UF_WORKSTATION_TRUST_ACCOUNT | \ + UF_SERVER_TRUST_ACCOUNT \ + ) +UF_DONT_EXPIRE_PASSWD = 65536 +UF_MNS_LOGON_ACCOUNT = 131072 +UF_SETTABLE_BITS = ( \ + UF_SCRIPT | \ + UF_ACCOUNTDISABLE | \ + UF_LOCKOUT | \ + UF_HOMEDIR_REQUIRED | \ + UF_PASSWD_NOTREQD | \ + UF_PASSWD_CANT_CHANGE | \ + UF_ACCOUNT_TYPE_MASK | \ + UF_DONT_EXPIRE_PASSWD | \ + UF_MNS_LOGON_ACCOUNT \ + ) +FILTER_TEMP_DUPLICATE_ACCOUNT = (1) +FILTER_NORMAL_ACCOUNT = (2) +FILTER_INTERDOMAIN_TRUST_ACCOUNT = (8) +FILTER_WORKSTATION_TRUST_ACCOUNT = (16) +FILTER_SERVER_TRUST_ACCOUNT = (32) +LG_INCLUDE_INDIRECT = (1) +AF_OP_PRINT = 1 +AF_OP_COMM = 2 +AF_OP_SERVER = 4 +AF_OP_ACCOUNTS = 8 +AF_SETTABLE_BITS = (AF_OP_PRINT | AF_OP_COMM | \ + AF_OP_SERVER | AF_OP_ACCOUNTS) +UAS_ROLE_STANDALONE = 0 +UAS_ROLE_MEMBER = 1 +UAS_ROLE_BACKUP = 2 +UAS_ROLE_PRIMARY = 3 +USER_NAME_PARMNUM = 1 +USER_PASSWORD_PARMNUM = 3 +USER_PASSWORD_AGE_PARMNUM = 4 +USER_PRIV_PARMNUM = 5 +USER_HOME_DIR_PARMNUM = 6 +USER_COMMENT_PARMNUM = 7 +USER_FLAGS_PARMNUM = 8 +USER_SCRIPT_PATH_PARMNUM = 9 +USER_AUTH_FLAGS_PARMNUM = 10 +USER_FULL_NAME_PARMNUM = 11 +USER_USR_COMMENT_PARMNUM = 12 +USER_PARMS_PARMNUM = 13 +USER_WORKSTATIONS_PARMNUM = 14 +USER_LAST_LOGON_PARMNUM = 15 +USER_LAST_LOGOFF_PARMNUM = 16 +USER_ACCT_EXPIRES_PARMNUM = 17 +USER_MAX_STORAGE_PARMNUM = 18 +USER_UNITS_PER_WEEK_PARMNUM = 19 +USER_LOGON_HOURS_PARMNUM = 20 +USER_PAD_PW_COUNT_PARMNUM = 21 +USER_NUM_LOGONS_PARMNUM = 22 +USER_LOGON_SERVER_PARMNUM = 23 +USER_COUNTRY_CODE_PARMNUM = 24 +USER_CODE_PAGE_PARMNUM = 25 +USER_PRIMARY_GROUP_PARMNUM = 51 +USER_PROFILE = 52 +USER_PROFILE_PARMNUM = 52 +USER_HOME_DIR_DRIVE_PARMNUM = 53 +USER_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_NAME_PARMNUM) +USER_PASSWORD_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_PARMNUM) +USER_PASSWORD_AGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_AGE_PARMNUM) +USER_PRIV_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PRIV_PARMNUM) +USER_HOME_DIR_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_PARMNUM) +USER_COMMENT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_COMMENT_PARMNUM) +USER_FLAGS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_FLAGS_PARMNUM) +USER_SCRIPT_PATH_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_SCRIPT_PATH_PARMNUM) +USER_AUTH_FLAGS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_AUTH_FLAGS_PARMNUM) +USER_FULL_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_FULL_NAME_PARMNUM) +USER_USR_COMMENT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_USR_COMMENT_PARMNUM) +USER_PARMS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PARMS_PARMNUM) +USER_WORKSTATIONS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_WORKSTATIONS_PARMNUM) +USER_LAST_LOGON_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGON_PARMNUM) +USER_LAST_LOGOFF_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGOFF_PARMNUM) +USER_ACCT_EXPIRES_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_ACCT_EXPIRES_PARMNUM) +USER_MAX_STORAGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_MAX_STORAGE_PARMNUM) +USER_UNITS_PER_WEEK_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_UNITS_PER_WEEK_PARMNUM) +USER_LOGON_HOURS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_LOGON_HOURS_PARMNUM) +USER_PAD_PW_COUNT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PAD_PW_COUNT_PARMNUM) +USER_NUM_LOGONS_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_NUM_LOGONS_PARMNUM) +USER_LOGON_SERVER_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_LOGON_SERVER_PARMNUM) +USER_COUNTRY_CODE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_COUNTRY_CODE_PARMNUM) +USER_CODE_PAGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_CODE_PAGE_PARMNUM) +USER_PRIMARY_GROUP_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_PRIMARY_GROUP_PARMNUM) +USER_HOME_DIR_DRIVE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_DRIVE_PARMNUM) +NULL_USERSETINFO_PASSWD = " " +UNITS_PER_DAY = 24 +UNITS_PER_WEEK = UNITS_PER_DAY * 7 +USER_PRIV_MASK = 3 +USER_PRIV_GUEST = 0 +USER_PRIV_USER = 1 +USER_PRIV_ADMIN = 2 +MAX_PASSWD_LEN = PWLEN +DEF_MIN_PWLEN = 6 +DEF_PWUNIQUENESS = 5 +DEF_MAX_PWHIST = 8 +DEF_MAX_BADPW = 0 +VALIDATED_LOGON = 0 +PASSWORD_EXPIRED = 2 +NON_VALIDATED_LOGON = 3 +VALID_LOGOFF = 1 +MODALS_MIN_PASSWD_LEN_PARMNUM = 1 +MODALS_MAX_PASSWD_AGE_PARMNUM = 2 +MODALS_MIN_PASSWD_AGE_PARMNUM = 3 +MODALS_FORCE_LOGOFF_PARMNUM = 4 +MODALS_PASSWD_HIST_LEN_PARMNUM = 5 +MODALS_ROLE_PARMNUM = 6 +MODALS_PRIMARY_PARMNUM = 7 +MODALS_DOMAIN_NAME_PARMNUM = 8 +MODALS_DOMAIN_ID_PARMNUM = 9 +MODALS_LOCKOUT_DURATION_PARMNUM = 10 +MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM = 11 +MODALS_LOCKOUT_THRESHOLD_PARMNUM = 12 +MODALS_MIN_PASSWD_LEN_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_LEN_PARMNUM) +MODALS_MAX_PASSWD_AGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_MAX_PASSWD_AGE_PARMNUM) +MODALS_MIN_PASSWD_AGE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_AGE_PARMNUM) +MODALS_FORCE_LOGOFF_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_FORCE_LOGOFF_PARMNUM) +MODALS_PASSWD_HIST_LEN_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_PASSWD_HIST_LEN_PARMNUM) +MODALS_ROLE_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_ROLE_PARMNUM) +MODALS_PRIMARY_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_PRIMARY_PARMNUM) +MODALS_DOMAIN_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_NAME_PARMNUM) +MODALS_DOMAIN_ID_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_ID_PARMNUM) +GROUPIDMASK = 32768 +GROUP_ALL_PARMNUM = 0 +GROUP_NAME_PARMNUM = 1 +GROUP_COMMENT_PARMNUM = 2 +GROUP_ATTRIBUTES_PARMNUM = 3 +GROUP_ALL_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + GROUP_ALL_PARMNUM) +GROUP_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + GROUP_NAME_PARMNUM) +GROUP_COMMENT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + GROUP_COMMENT_PARMNUM) +GROUP_ATTRIBUTES_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + GROUP_ATTRIBUTES_PARMNUM) +LOCALGROUP_NAME_PARMNUM = 1 +LOCALGROUP_COMMENT_PARMNUM = 2 +MAXPERMENTRIES = 64 +ACCESS_NONE = 0 +ACCESS_READ = 1 +ACCESS_WRITE = 2 +ACCESS_CREATE = 4 +ACCESS_EXEC = 8 +ACCESS_DELETE = 16 +ACCESS_ATRIB = 32 +ACCESS_PERM = 64 +ACCESS_GROUP = 32768 +ACCESS_AUDIT = 1 +ACCESS_SUCCESS_OPEN = 16 +ACCESS_SUCCESS_WRITE = 32 +ACCESS_SUCCESS_DELETE = 64 +ACCESS_SUCCESS_ACL = 128 +ACCESS_SUCCESS_MASK = 240 +ACCESS_FAIL_OPEN = 256 +ACCESS_FAIL_WRITE = 512 +ACCESS_FAIL_DELETE = 1024 +ACCESS_FAIL_ACL = 2048 +ACCESS_FAIL_MASK = 3840 +ACCESS_FAIL_SHIFT = 4 +ACCESS_RESOURCE_NAME_PARMNUM = 1 +ACCESS_ATTR_PARMNUM = 2 +ACCESS_COUNT_PARMNUM = 3 +ACCESS_ACCESS_LIST_PARMNUM = 4 +ACCESS_RESOURCE_NAME_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + ACCESS_RESOURCE_NAME_PARMNUM) +ACCESS_ATTR_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + ACCESS_ATTR_PARMNUM) +ACCESS_COUNT_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + ACCESS_COUNT_PARMNUM) +ACCESS_ACCESS_LIST_INFOLEVEL = \ + (PARMNUM_BASE_INFOLEVEL + ACCESS_ACCESS_LIST_PARMNUM) +ACCESS_LETTERS = "RWCXDAP " +NETLOGON_CONTROL_QUERY = 1 +NETLOGON_CONTROL_REPLICATE = 2 +NETLOGON_CONTROL_SYNCHRONIZE = 3 +NETLOGON_CONTROL_PDC_REPLICATE = 4 +NETLOGON_CONTROL_REDISCOVER = 5 +NETLOGON_CONTROL_TC_QUERY = 6 +NETLOGON_CONTROL_TRANSPORT_NOTIFY = 7 +NETLOGON_CONTROL_FIND_USER = 8 +NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL = 65531 +NETLOGON_CONTROL_BACKUP_CHANGE_LOG = 65532 +NETLOGON_CONTROL_TRUNCATE_LOG = 65533 +NETLOGON_CONTROL_SET_DBFLAG = 65534 +NETLOGON_CONTROL_BREAKPOINT = 65535 +NETLOGON_REPLICATION_NEEDED = 1 +NETLOGON_REPLICATION_IN_PROGRESS = 2 +NETLOGON_FULL_SYNC_REPLICATION = 4 +NETLOGON_REDO_NEEDED = 8 + +###################### +# Manual stuff + +TEXT=lambda x:x + +MAX_PREFERRED_LENGTH = -1 +PARM_ERROR_UNKNOWN = -1 +MESSAGE_FILENAME = TEXT("NETMSG") +OS2MSG_FILENAME = TEXT("BASE") +HELP_MSG_FILENAME = TEXT("NETH") +BACKUP_MSG_FILENAME = TEXT("BAK.MSG") +TIMEQ_FOREVER = -1 +USER_MAXSTORAGE_UNLIMITED = -1 +USER_NO_LOGOFF = -1 +DEF_MAX_PWAGE = TIMEQ_FOREVER +DEF_MIN_PWAGE = 0 +DEF_FORCE_LOGOFF = -1 +ONE_DAY = 1*24*3600 +GROUP_SPECIALGRP_USERS = "USERS" +GROUP_SPECIALGRP_ADMINS = "ADMINS" +GROUP_SPECIALGRP_GUESTS = "GUESTS" +GROUP_SPECIALGRP_LOCAL = "LOCAL" +ACCESS_ALL = ( ACCESS_READ | ACCESS_WRITE | ACCESS_CREATE | ACCESS_EXEC | ACCESS_DELETE | ACCESS_ATRIB | ACCESS_PERM ) + +# From lmserver.h +SV_PLATFORM_ID_OS2 = 400 +SV_PLATFORM_ID_NT = 500 +MAJOR_VERSION_MASK = 15 +SV_TYPE_WORKSTATION = 1 +SV_TYPE_SERVER = 2 +SV_TYPE_SQLSERVER = 4 +SV_TYPE_DOMAIN_CTRL = 8 +SV_TYPE_DOMAIN_BAKCTRL = 16 +SV_TYPE_TIME_SOURCE = 32 +SV_TYPE_AFP = 64 +SV_TYPE_NOVELL = 128 +SV_TYPE_DOMAIN_MEMBER = 256 +SV_TYPE_PRINTQ_SERVER = 512 +SV_TYPE_DIALIN_SERVER = 1024 +SV_TYPE_XENIX_SERVER = 2048 +SV_TYPE_SERVER_UNIX = SV_TYPE_XENIX_SERVER +SV_TYPE_NT = 4096 +SV_TYPE_WFW = 8192 +SV_TYPE_SERVER_MFPN = 16384 +SV_TYPE_SERVER_NT = 32768 +SV_TYPE_POTENTIAL_BROWSER = 65536 +SV_TYPE_BACKUP_BROWSER = 131072 +SV_TYPE_MASTER_BROWSER = 262144 +SV_TYPE_DOMAIN_MASTER = 524288 +SV_TYPE_SERVER_OSF = 1048576 +SV_TYPE_SERVER_VMS = 2097152 +SV_TYPE_WINDOWS = 4194304 +SV_TYPE_DFS = 8388608 +SV_TYPE_CLUSTER_NT = 16777216 +SV_TYPE_DCE = 268435456 +SV_TYPE_ALTERNATE_XPORT = 536870912 +SV_TYPE_LOCAL_LIST_ONLY = 1073741824 +SV_TYPE_DOMAIN_ENUM = -2147483648 +SV_TYPE_ALL = -1 +SV_NODISC = -1 +SV_USERSECURITY = 1 +SV_SHARESECURITY = 0 +SV_HIDDEN = 1 +SV_VISIBLE = 0 +SV_PLATFORM_ID_PARMNUM = 101 +SV_NAME_PARMNUM = 102 +SV_VERSION_MAJOR_PARMNUM = 103 +SV_VERSION_MINOR_PARMNUM = 104 +SV_TYPE_PARMNUM = 105 +SV_COMMENT_PARMNUM = 5 +SV_USERS_PARMNUM = 107 +SV_DISC_PARMNUM = 10 +SV_HIDDEN_PARMNUM = 16 +SV_ANNOUNCE_PARMNUM = 17 +SV_ANNDELTA_PARMNUM = 18 +SV_USERPATH_PARMNUM = 112 +SV_ULIST_MTIME_PARMNUM = 401 +SV_GLIST_MTIME_PARMNUM = 402 +SV_ALIST_MTIME_PARMNUM = 403 +SV_ALERTS_PARMNUM = 11 +SV_SECURITY_PARMNUM = 405 +SV_NUMADMIN_PARMNUM = 406 +SV_LANMASK_PARMNUM = 407 +SV_GUESTACC_PARMNUM = 408 +SV_CHDEVQ_PARMNUM = 410 +SV_CHDEVJOBS_PARMNUM = 411 +SV_CONNECTIONS_PARMNUM = 412 +SV_SHARES_PARMNUM = 413 +SV_OPENFILES_PARMNUM = 414 +SV_SESSREQS_PARMNUM = 417 +SV_ACTIVELOCKS_PARMNUM = 419 +SV_NUMREQBUF_PARMNUM = 420 +SV_NUMBIGBUF_PARMNUM = 422 +SV_NUMFILETASKS_PARMNUM = 423 +SV_ALERTSCHED_PARMNUM = 37 +SV_ERRORALERT_PARMNUM = 38 +SV_LOGONALERT_PARMNUM = 39 +SV_ACCESSALERT_PARMNUM = 40 +SV_DISKALERT_PARMNUM = 41 +SV_NETIOALERT_PARMNUM = 42 +SV_MAXAUDITSZ_PARMNUM = 43 +SV_SRVHEURISTICS_PARMNUM = 431 +SV_SESSOPENS_PARMNUM = 501 +SV_SESSVCS_PARMNUM = 502 +SV_OPENSEARCH_PARMNUM = 503 +SV_SIZREQBUF_PARMNUM = 504 +SV_INITWORKITEMS_PARMNUM = 505 +SV_MAXWORKITEMS_PARMNUM = 506 +SV_RAWWORKITEMS_PARMNUM = 507 +SV_IRPSTACKSIZE_PARMNUM = 508 +SV_MAXRAWBUFLEN_PARMNUM = 509 +SV_SESSUSERS_PARMNUM = 510 +SV_SESSCONNS_PARMNUM = 511 +SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM = 512 +SV_MAXPAGEDMEMORYUSAGE_PARMNUM = 513 +SV_ENABLESOFTCOMPAT_PARMNUM = 514 +SV_ENABLEFORCEDLOGOFF_PARMNUM = 515 +SV_TIMESOURCE_PARMNUM = 516 +SV_ACCEPTDOWNLEVELAPIS_PARMNUM = 517 +SV_LMANNOUNCE_PARMNUM = 518 +SV_DOMAIN_PARMNUM = 519 +SV_MAXCOPYREADLEN_PARMNUM = 520 +SV_MAXCOPYWRITELEN_PARMNUM = 521 +SV_MINKEEPSEARCH_PARMNUM = 522 +SV_MAXKEEPSEARCH_PARMNUM = 523 +SV_MINKEEPCOMPLSEARCH_PARMNUM = 524 +SV_MAXKEEPCOMPLSEARCH_PARMNUM = 525 +SV_THREADCOUNTADD_PARMNUM = 526 +SV_NUMBLOCKTHREADS_PARMNUM = 527 +SV_SCAVTIMEOUT_PARMNUM = 528 +SV_MINRCVQUEUE_PARMNUM = 529 +SV_MINFREEWORKITEMS_PARMNUM = 530 +SV_XACTMEMSIZE_PARMNUM = 531 +SV_THREADPRIORITY_PARMNUM = 532 +SV_MAXMPXCT_PARMNUM = 533 +SV_OPLOCKBREAKWAIT_PARMNUM = 534 +SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM = 535 +SV_ENABLEOPLOCKS_PARMNUM = 536 +SV_ENABLEOPLOCKFORCECLOSE_PARMNUM = 537 +SV_ENABLEFCBOPENS_PARMNUM = 538 +SV_ENABLERAW_PARMNUM = 539 +SV_ENABLESHAREDNETDRIVES_PARMNUM = 540 +SV_MINFREECONNECTIONS_PARMNUM = 541 +SV_MAXFREECONNECTIONS_PARMNUM = 542 +SV_INITSESSTABLE_PARMNUM = 543 +SV_INITCONNTABLE_PARMNUM = 544 +SV_INITFILETABLE_PARMNUM = 545 +SV_INITSEARCHTABLE_PARMNUM = 546 +SV_ALERTSCHEDULE_PARMNUM = 547 +SV_ERRORTHRESHOLD_PARMNUM = 548 +SV_NETWORKERRORTHRESHOLD_PARMNUM = 549 +SV_DISKSPACETHRESHOLD_PARMNUM = 550 +SV_MAXLINKDELAY_PARMNUM = 552 +SV_MINLINKTHROUGHPUT_PARMNUM = 553 +SV_LINKINFOVALIDTIME_PARMNUM = 554 +SV_SCAVQOSINFOUPDATETIME_PARMNUM = 555 +SV_MAXWORKITEMIDLETIME_PARMNUM = 556 +SV_MAXRAWWORKITEMS_PARMNUM = 557 +SV_PRODUCTTYPE_PARMNUM = 560 +SV_SERVERSIZE_PARMNUM = 561 +SV_CONNECTIONLESSAUTODISC_PARMNUM = 562 +SV_SHARINGVIOLATIONRETRIES_PARMNUM = 563 +SV_SHARINGVIOLATIONDELAY_PARMNUM = 564 +SV_MAXGLOBALOPENSEARCH_PARMNUM = 565 +SV_REMOVEDUPLICATESEARCHES_PARMNUM = 566 +SV_LOCKVIOLATIONRETRIES_PARMNUM = 567 +SV_LOCKVIOLATIONOFFSET_PARMNUM = 568 +SV_LOCKVIOLATIONDELAY_PARMNUM = 569 +SV_MDLREADSWITCHOVER_PARMNUM = 570 +SV_CACHEDOPENLIMIT_PARMNUM = 571 +SV_CRITICALTHREADS_PARMNUM = 572 +SV_RESTRICTNULLSESSACCESS_PARMNUM = 573 +SV_ENABLEWFW311DIRECTIPX_PARMNUM = 574 +SV_OTHERQUEUEAFFINITY_PARMNUM = 575 +SV_QUEUESAMPLESECS_PARMNUM = 576 +SV_BALANCECOUNT_PARMNUM = 577 +SV_PREFERREDAFFINITY_PARMNUM = 578 +SV_MAXFREERFCBS_PARMNUM = 579 +SV_MAXFREEMFCBS_PARMNUM = 580 +SV_MAXFREELFCBS_PARMNUM = 581 +SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM = 582 +SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM = 583 +SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM = 584 +SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM = 585 +SV_MAXTHREADSPERQUEUE_PARMNUM = 586 +SV_CACHEDDIRECTORYLIMIT_PARMNUM = 587 +SV_MAXCOPYLENGTH_PARMNUM = 588 +SV_ENABLEBULKTRANSFER_PARMNUM = 589 +SV_ENABLECOMPRESSION_PARMNUM = 590 +SV_AUTOSHAREWKS_PARMNUM = 591 +SV_AUTOSHARESERVER_PARMNUM = 592 +SV_ENABLESECURITYSIGNATURE_PARMNUM = 593 +SV_REQUIRESECURITYSIGNATURE_PARMNUM = 594 +SV_MINCLIENTBUFFERSIZE_PARMNUM = 595 +SV_CONNECTIONNOSESSIONSTIMEOUT_PARMNUM = 596 +SVI1_NUM_ELEMENTS = 5 +SVI2_NUM_ELEMENTS = 40 +SVI3_NUM_ELEMENTS = 44 +SW_AUTOPROF_LOAD_MASK = 1 +SW_AUTOPROF_SAVE_MASK = 2 +SV_MAX_SRV_HEUR_LEN = 32 +SV_USERS_PER_LICENSE = 5 +SVTI2_REMAP_PIPE_NAMES = 2 + +# Generated by h2py from lmshare.h +SHARE_NETNAME_PARMNUM = 1 +SHARE_TYPE_PARMNUM = 3 +SHARE_REMARK_PARMNUM = 4 +SHARE_PERMISSIONS_PARMNUM = 5 +SHARE_MAX_USES_PARMNUM = 6 +SHARE_CURRENT_USES_PARMNUM = 7 +SHARE_PATH_PARMNUM = 8 +SHARE_PASSWD_PARMNUM = 9 +SHARE_FILE_SD_PARMNUM = 501 +SHI1_NUM_ELEMENTS = 4 +SHI2_NUM_ELEMENTS = 10 +STYPE_DISKTREE = 0 +STYPE_PRINTQ = 1 +STYPE_DEVICE = 2 +STYPE_IPC = 3 +STYPE_SPECIAL = -2147483648 +SHI1005_FLAGS_DFS = 1 +SHI1005_FLAGS_DFS_ROOT = 2 +COW_PERMACHINE = 4 +COW_PERUSER = 8 +CSC_CACHEABLE = 16 +CSC_NOFLOWOPS = 32 +CSC_AUTO_INWARD = 64 +CSC_AUTO_OUTWARD = 128 +SHI1005_VALID_FLAGS_SET = ( CSC_CACHEABLE | \ + CSC_NOFLOWOPS | \ + CSC_AUTO_INWARD | \ + CSC_AUTO_OUTWARD| \ + COW_PERMACHINE | \ + COW_PERUSER ) +SHI1007_VALID_FLAGS_SET = SHI1005_VALID_FLAGS_SET +SESS_GUEST = 1 +SESS_NOENCRYPTION = 2 +SESI1_NUM_ELEMENTS = 8 +SESI2_NUM_ELEMENTS = 9 +PERM_FILE_READ = 1 +PERM_FILE_WRITE = 2 +PERM_FILE_CREATE = 4 + +# Generated by h2py from d:\mssdk\include\winnetwk.h +WNNC_NET_MSNET = 65536 +WNNC_NET_LANMAN = 131072 +WNNC_NET_NETWARE = 196608 +WNNC_NET_VINES = 262144 +WNNC_NET_10NET = 327680 +WNNC_NET_LOCUS = 393216 +WNNC_NET_SUN_PC_NFS = 458752 +WNNC_NET_LANSTEP = 524288 +WNNC_NET_9TILES = 589824 +WNNC_NET_LANTASTIC = 655360 +WNNC_NET_AS400 = 720896 +WNNC_NET_FTP_NFS = 786432 +WNNC_NET_PATHWORKS = 851968 +WNNC_NET_LIFENET = 917504 +WNNC_NET_POWERLAN = 983040 +WNNC_NET_BWNFS = 1048576 +WNNC_NET_COGENT = 1114112 +WNNC_NET_FARALLON = 1179648 +WNNC_NET_APPLETALK = 1245184 +WNNC_NET_INTERGRAPH = 1310720 +WNNC_NET_SYMFONET = 1376256 +WNNC_NET_CLEARCASE = 1441792 +WNNC_NET_FRONTIER = 1507328 +WNNC_NET_BMC = 1572864 +WNNC_NET_DCE = 1638400 +WNNC_NET_DECORB = 2097152 +WNNC_NET_PROTSTOR = 2162688 +WNNC_NET_FJ_REDIR = 2228224 +WNNC_NET_DISTINCT = 2293760 +WNNC_NET_TWINS = 2359296 +WNNC_NET_RDR2SAMPLE = 2424832 +RESOURCE_CONNECTED = 1 +RESOURCE_GLOBALNET = 2 +RESOURCE_REMEMBERED = 3 +RESOURCE_RECENT = 4 +RESOURCE_CONTEXT = 5 +RESOURCETYPE_ANY = 0 +RESOURCETYPE_DISK = 1 +RESOURCETYPE_PRINT = 2 +RESOURCETYPE_RESERVED = 8 +RESOURCETYPE_UNKNOWN = -1 +RESOURCEUSAGE_CONNECTABLE = 1 +RESOURCEUSAGE_CONTAINER = 2 +RESOURCEUSAGE_NOLOCALDEVICE = 4 +RESOURCEUSAGE_SIBLING = 8 +RESOURCEUSAGE_ATTACHED = 16 +RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED) +RESOURCEUSAGE_RESERVED = -2147483648 +RESOURCEDISPLAYTYPE_GENERIC = 0 +RESOURCEDISPLAYTYPE_DOMAIN = 1 +RESOURCEDISPLAYTYPE_SERVER = 2 +RESOURCEDISPLAYTYPE_SHARE = 3 +RESOURCEDISPLAYTYPE_FILE = 4 +RESOURCEDISPLAYTYPE_GROUP = 5 +RESOURCEDISPLAYTYPE_NETWORK = 6 +RESOURCEDISPLAYTYPE_ROOT = 7 +RESOURCEDISPLAYTYPE_SHAREADMIN = 8 +RESOURCEDISPLAYTYPE_DIRECTORY = 9 +RESOURCEDISPLAYTYPE_TREE = 10 +RESOURCEDISPLAYTYPE_NDSCONTAINER = 11 +NETPROPERTY_PERSISTENT = 1 +CONNECT_UPDATE_PROFILE = 1 +CONNECT_UPDATE_RECENT = 2 +CONNECT_TEMPORARY = 4 +CONNECT_INTERACTIVE = 8 +CONNECT_PROMPT = 16 +CONNECT_NEED_DRIVE = 32 +CONNECT_REFCOUNT = 64 +CONNECT_REDIRECT = 128 +CONNECT_LOCALDRIVE = 256 +CONNECT_CURRENT_MEDIA = 512 +CONNECT_DEFERRED = 1024 +CONNECT_RESERVED = -16777216 +CONNDLG_RO_PATH = 1 +CONNDLG_CONN_POINT = 2 +CONNDLG_USE_MRU = 4 +CONNDLG_HIDE_BOX = 8 +CONNDLG_PERSIST = 16 +CONNDLG_NOT_PERSIST = 32 +DISC_UPDATE_PROFILE = 1 +DISC_NO_FORCE = 64 +UNIVERSAL_NAME_INFO_LEVEL = 1 +REMOTE_NAME_INFO_LEVEL = 2 +WNFMT_MULTILINE = 1 +WNFMT_ABBREVIATED = 2 +WNFMT_INENUM = 16 +WNFMT_CONNECTION = 32 +NETINFO_DLL16 = 1 +NETINFO_DISKRED = 4 +NETINFO_PRINTERRED = 8 +RP_LOGON = 1 +RP_INIFILE = 2 +PP_DISPLAYERRORS = 1 +WNCON_FORNETCARD = 1 +WNCON_NOTROUTED = 2 +WNCON_SLOWLINK = 4 +WNCON_DYNAMIC = 8 + +## NETSETUP_NAME_TYPE, used with NetValidateName +NetSetupUnknown = 0 +NetSetupMachine = 1 +NetSetupWorkgroup = 2 +NetSetupDomain = 3 +NetSetupNonExistentDomain = 4 +NetSetupDnsMachine = 5 + +## NETSETUP_JOIN_STATUS, use with NetGetJoinInformation +NetSetupUnknownStatus = 0 +NetSetupUnjoined = 1 +NetSetupWorkgroupName = 2 +NetSetupDomainName = 3 + +NetValidateAuthentication = 1 +NetValidatePasswordChange = 2 +NetValidatePasswordReset = 3 diff --git a/typings/win32helper/winioctlcon.pyi b/typings/win32helper/winioctlcon.pyi new file mode 100644 index 00000000..673ea4e5 --- /dev/null +++ b/typings/win32helper/winioctlcon.pyi @@ -0,0 +1,711 @@ +## flags, enums, guids used with DeviceIoControl from WinIoCtl.h + +import pywintypes +from ntsecuritycon import FILE_READ_DATA,FILE_WRITE_DATA +def CTL_CODE(DeviceType, Function, Method, Access): + return (DeviceType << 16) | (Access << 14) | (Function << 2) | Method + +def DEVICE_TYPE_FROM_CTL_CODE(ctrlCode): + return (ctrlCode & 0xffff0000) >> 16 + +FILE_DEVICE_BEEP = 0x00000001 +FILE_DEVICE_CD_ROM = 0x00000002 +FILE_DEVICE_CD_ROM_FILE_SYSTEM = 0x00000003 +FILE_DEVICE_CONTROLLER = 0x00000004 +FILE_DEVICE_DATALINK = 0x00000005 +FILE_DEVICE_DFS = 0x00000006 +FILE_DEVICE_DISK = 0x00000007 +FILE_DEVICE_DISK_FILE_SYSTEM = 0x00000008 +FILE_DEVICE_FILE_SYSTEM = 0x00000009 +FILE_DEVICE_INPORT_PORT = 0x0000000a +FILE_DEVICE_KEYBOARD = 0x0000000b +FILE_DEVICE_MAILSLOT = 0x0000000c +FILE_DEVICE_MIDI_IN = 0x0000000d +FILE_DEVICE_MIDI_OUT = 0x0000000e +FILE_DEVICE_MOUSE = 0x0000000f +FILE_DEVICE_MULTI_UNC_PROVIDER = 0x00000010 +FILE_DEVICE_NAMED_PIPE = 0x00000011 +FILE_DEVICE_NETWORK = 0x00000012 +FILE_DEVICE_NETWORK_BROWSER = 0x00000013 +FILE_DEVICE_NETWORK_FILE_SYSTEM = 0x00000014 +FILE_DEVICE_NULL = 0x00000015 +FILE_DEVICE_PARALLEL_PORT = 0x00000016 +FILE_DEVICE_PHYSICAL_NETCARD = 0x00000017 +FILE_DEVICE_PRINTER = 0x00000018 +FILE_DEVICE_SCANNER = 0x00000019 +FILE_DEVICE_SERIAL_MOUSE_PORT = 0x0000001a +FILE_DEVICE_SERIAL_PORT = 0x0000001b +FILE_DEVICE_SCREEN = 0x0000001c +FILE_DEVICE_SOUND = 0x0000001d +FILE_DEVICE_STREAMS = 0x0000001e +FILE_DEVICE_TAPE = 0x0000001f +FILE_DEVICE_TAPE_FILE_SYSTEM = 0x00000020 +FILE_DEVICE_TRANSPORT = 0x00000021 +FILE_DEVICE_UNKNOWN = 0x00000022 +FILE_DEVICE_VIDEO = 0x00000023 +FILE_DEVICE_VIRTUAL_DISK = 0x00000024 +FILE_DEVICE_WAVE_IN = 0x00000025 +FILE_DEVICE_WAVE_OUT = 0x00000026 +FILE_DEVICE_8042_PORT = 0x00000027 +FILE_DEVICE_NETWORK_REDIRECTOR = 0x00000028 +FILE_DEVICE_BATTERY = 0x00000029 +FILE_DEVICE_BUS_EXTENDER = 0x0000002a +FILE_DEVICE_MODEM = 0x0000002b +FILE_DEVICE_VDM = 0x0000002c +FILE_DEVICE_MASS_STORAGE = 0x0000002d +FILE_DEVICE_SMB = 0x0000002e +FILE_DEVICE_KS = 0x0000002f +FILE_DEVICE_CHANGER = 0x00000030 +FILE_DEVICE_SMARTCARD = 0x00000031 +FILE_DEVICE_ACPI = 0x00000032 +FILE_DEVICE_DVD = 0x00000033 +FILE_DEVICE_FULLSCREEN_VIDEO = 0x00000034 +FILE_DEVICE_DFS_FILE_SYSTEM = 0x00000035 +FILE_DEVICE_DFS_VOLUME = 0x00000036 +FILE_DEVICE_SERENUM = 0x00000037 +FILE_DEVICE_TERMSRV = 0x00000038 +FILE_DEVICE_KSEC = 0x00000039 +FILE_DEVICE_FIPS = 0x0000003A +FILE_DEVICE_INFINIBAND = 0x0000003B + +METHOD_BUFFERED = 0 +METHOD_IN_DIRECT = 1 +METHOD_OUT_DIRECT = 2 +METHOD_NEITHER = 3 +METHOD_DIRECT_TO_HARDWARE = METHOD_IN_DIRECT +METHOD_DIRECT_FROM_HARDWARE = METHOD_OUT_DIRECT +FILE_ANY_ACCESS = 0 +FILE_SPECIAL_ACCESS = FILE_ANY_ACCESS +FILE_READ_ACCESS = 0x0001 +FILE_WRITE_ACCESS = 0x0002 +IOCTL_STORAGE_BASE = FILE_DEVICE_MASS_STORAGE +RECOVERED_WRITES_VALID = 0x00000001 +UNRECOVERED_WRITES_VALID = 0x00000002 +RECOVERED_READS_VALID = 0x00000004 +UNRECOVERED_READS_VALID = 0x00000008 +WRITE_COMPRESSION_INFO_VALID = 0x00000010 +READ_COMPRESSION_INFO_VALID = 0x00000020 +TAPE_RETURN_STATISTICS = 0 +TAPE_RETURN_ENV_INFO = 1 +TAPE_RESET_STATISTICS = 2 +MEDIA_ERASEABLE = 0x00000001 +MEDIA_WRITE_ONCE = 0x00000002 +MEDIA_READ_ONLY = 0x00000004 +MEDIA_READ_WRITE = 0x00000008 +MEDIA_WRITE_PROTECTED = 0x00000100 +MEDIA_CURRENTLY_MOUNTED = 0x80000000 +IOCTL_DISK_BASE = FILE_DEVICE_DISK +PARTITION_ENTRY_UNUSED = 0x00 +PARTITION_FAT_12 = 0x01 +PARTITION_XENIX_1 = 0x02 +PARTITION_XENIX_2 = 0x03 +PARTITION_FAT_16 = 0x04 +PARTITION_EXTENDED = 0x05 +PARTITION_HUGE = 0x06 +PARTITION_IFS = 0x07 +PARTITION_OS2BOOTMGR = 0x0A +PARTITION_FAT32 = 0x0B +PARTITION_FAT32_XINT13 = 0x0C +PARTITION_XINT13 = 0x0E +PARTITION_XINT13_EXTENDED = 0x0F +PARTITION_PREP = 0x41 +PARTITION_LDM = 0x42 +PARTITION_UNIX = 0x63 +VALID_NTFT = 0xC0 +PARTITION_NTFT = 0x80 + +GPT_ATTRIBUTE_PLATFORM_REQUIRED = 0x0000000000000001 +GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER = 0x8000000000000000 +GPT_BASIC_DATA_ATTRIBUTE_HIDDEN = 0x4000000000000000 +GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY = 0x2000000000000000 +GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY = 0x1000000000000000 + +HIST_NO_OF_BUCKETS = 24 +DISK_LOGGING_START = 0 +DISK_LOGGING_STOP = 1 +DISK_LOGGING_DUMP = 2 +DISK_BINNING = 3 +CAP_ATA_ID_CMD = 1 +CAP_ATAPI_ID_CMD = 2 +CAP_SMART_CMD = 4 +ATAPI_ID_CMD = 0xA1 +ID_CMD = 0xEC +SMART_CMD = 0xB0 +SMART_CYL_LOW = 0x4F +SMART_CYL_HI = 0xC2 +SMART_NO_ERROR = 0 +SMART_IDE_ERROR = 1 +SMART_INVALID_FLAG = 2 +SMART_INVALID_COMMAND = 3 +SMART_INVALID_BUFFER = 4 +SMART_INVALID_DRIVE = 5 +SMART_INVALID_IOCTL = 6 +SMART_ERROR_NO_MEM = 7 +SMART_INVALID_REGISTER = 8 +SMART_NOT_SUPPORTED = 9 +SMART_NO_IDE_DEVICE = 10 +SMART_OFFLINE_ROUTINE_OFFLINE = 0 +SMART_SHORT_SELFTEST_OFFLINE = 1 +SMART_EXTENDED_SELFTEST_OFFLINE = 2 +SMART_ABORT_OFFLINE_SELFTEST = 127 +SMART_SHORT_SELFTEST_CAPTIVE = 129 +SMART_EXTENDED_SELFTEST_CAPTIVE = 130 +READ_ATTRIBUTE_BUFFER_SIZE = 512 +IDENTIFY_BUFFER_SIZE = 512 +READ_THRESHOLD_BUFFER_SIZE = 512 +SMART_LOG_SECTOR_SIZE = 512 +READ_ATTRIBUTES = 0xD0 +READ_THRESHOLDS = 0xD1 +ENABLE_DISABLE_AUTOSAVE = 0xD2 +SAVE_ATTRIBUTE_VALUES = 0xD3 +EXECUTE_OFFLINE_DIAGS = 0xD4 +SMART_READ_LOG = 0xD5 +SMART_WRITE_LOG = 0xd6 +ENABLE_SMART = 0xD8 +DISABLE_SMART = 0xD9 +RETURN_SMART_STATUS = 0xDA +ENABLE_DISABLE_AUTO_OFFLINE = 0xDB +IOCTL_CHANGER_BASE = FILE_DEVICE_CHANGER +MAX_VOLUME_ID_SIZE = 36 +MAX_VOLUME_TEMPLATE_SIZE = 40 +VENDOR_ID_LENGTH = 8 +PRODUCT_ID_LENGTH = 16 +REVISION_LENGTH = 4 +SERIAL_NUMBER_LENGTH = 32 +CHANGER_BAR_CODE_SCANNER_INSTALLED = 0x00000001 +CHANGER_INIT_ELEM_STAT_WITH_RANGE = 0x00000002 +CHANGER_CLOSE_IEPORT = 0x00000004 +CHANGER_OPEN_IEPORT = 0x00000008 +CHANGER_STATUS_NON_VOLATILE = 0x00000010 +CHANGER_EXCHANGE_MEDIA = 0x00000020 +CHANGER_CLEANER_SLOT = 0x00000040 +CHANGER_LOCK_UNLOCK = 0x00000080 +CHANGER_CARTRIDGE_MAGAZINE = 0x00000100 +CHANGER_MEDIUM_FLIP = 0x00000200 +CHANGER_POSITION_TO_ELEMENT = 0x00000400 +CHANGER_REPORT_IEPORT_STATE = 0x00000800 +CHANGER_STORAGE_DRIVE = 0x00001000 +CHANGER_STORAGE_IEPORT = 0x00002000 +CHANGER_STORAGE_SLOT = 0x00004000 +CHANGER_STORAGE_TRANSPORT = 0x00008000 +CHANGER_DRIVE_CLEANING_REQUIRED = 0x00010000 +CHANGER_PREDISMOUNT_EJECT_REQUIRED = 0x00020000 +CHANGER_CLEANER_ACCESS_NOT_VALID = 0x00040000 +CHANGER_PREMOUNT_EJECT_REQUIRED = 0x00080000 +CHANGER_VOLUME_IDENTIFICATION = 0x00100000 +CHANGER_VOLUME_SEARCH = 0x00200000 +CHANGER_VOLUME_ASSERT = 0x00400000 +CHANGER_VOLUME_REPLACE = 0x00800000 +CHANGER_VOLUME_UNDEFINE = 0x01000000 +CHANGER_SERIAL_NUMBER_VALID = 0x04000000 +CHANGER_DEVICE_REINITIALIZE_CAPABLE = 0x08000000 +CHANGER_KEYPAD_ENABLE_DISABLE = 0x10000000 +CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS = 0x20000000 + +CHANGER_RESERVED_BIT = 0x80000000 +CHANGER_PREDISMOUNT_ALIGN_TO_SLOT = 0x80000001 +CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE = 0x80000002 +CHANGER_CLEANER_AUTODISMOUNT = 0x80000004 +CHANGER_TRUE_EXCHANGE_CAPABLE = 0x80000008 +CHANGER_SLOTS_USE_TRAYS = 0x80000010 +CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR = 0x80000020 +CHANGER_CLEANER_OPS_NOT_SUPPORTED = 0x80000040 +CHANGER_IEPORT_USER_CONTROL_OPEN = 0x80000080 +CHANGER_IEPORT_USER_CONTROL_CLOSE = 0x80000100 +CHANGER_MOVE_EXTENDS_IEPORT = 0x80000200 +CHANGER_MOVE_RETRACTS_IEPORT = 0x80000400 + + +CHANGER_TO_TRANSPORT = 0x01 +CHANGER_TO_SLOT = 0x02 +CHANGER_TO_IEPORT = 0x04 +CHANGER_TO_DRIVE = 0x08 +LOCK_UNLOCK_IEPORT = 0x01 +LOCK_UNLOCK_DOOR = 0x02 +LOCK_UNLOCK_KEYPAD = 0x04 +LOCK_ELEMENT = 0 +UNLOCK_ELEMENT = 1 +EXTEND_IEPORT = 2 +RETRACT_IEPORT = 3 +ELEMENT_STATUS_FULL = 0x00000001 +ELEMENT_STATUS_IMPEXP = 0x00000002 +ELEMENT_STATUS_EXCEPT = 0x00000004 +ELEMENT_STATUS_ACCESS = 0x00000008 +ELEMENT_STATUS_EXENAB = 0x00000010 +ELEMENT_STATUS_INENAB = 0x00000020 +ELEMENT_STATUS_PRODUCT_DATA = 0x00000040 +ELEMENT_STATUS_LUN_VALID = 0x00001000 +ELEMENT_STATUS_ID_VALID = 0x00002000 +ELEMENT_STATUS_NOT_BUS = 0x00008000 +ELEMENT_STATUS_INVERT = 0x00400000 +ELEMENT_STATUS_SVALID = 0x00800000 +ELEMENT_STATUS_PVOLTAG = 0x10000000 +ELEMENT_STATUS_AVOLTAG = 0x20000000 +ERROR_LABEL_UNREADABLE = 0x00000001 +ERROR_LABEL_QUESTIONABLE = 0x00000002 +ERROR_SLOT_NOT_PRESENT = 0x00000004 +ERROR_DRIVE_NOT_INSTALLED = 0x00000008 +ERROR_TRAY_MALFUNCTION = 0x00000010 +ERROR_INIT_STATUS_NEEDED = 0x00000011 +ERROR_UNHANDLED_ERROR = 0xFFFFFFFF +SEARCH_ALL = 0x0 +SEARCH_PRIMARY = 0x1 +SEARCH_ALTERNATE = 0x2 +SEARCH_ALL_NO_SEQ = 0x4 +SEARCH_PRI_NO_SEQ = 0x5 +SEARCH_ALT_NO_SEQ = 0x6 +ASSERT_PRIMARY = 0x8 +ASSERT_ALTERNATE = 0x9 +REPLACE_PRIMARY = 0xA +REPLACE_ALTERNATE = 0xB +UNDEFINE_PRIMARY = 0xC +UNDEFINE_ALTERNATE = 0xD +USN_PAGE_SIZE = 0x1000 +USN_REASON_DATA_OVERWRITE = 0x00000001 +USN_REASON_DATA_EXTEND = 0x00000002 +USN_REASON_DATA_TRUNCATION = 0x00000004 +USN_REASON_NAMED_DATA_OVERWRITE = 0x00000010 +USN_REASON_NAMED_DATA_EXTEND = 0x00000020 +USN_REASON_NAMED_DATA_TRUNCATION = 0x00000040 +USN_REASON_FILE_CREATE = 0x00000100 +USN_REASON_FILE_DELETE = 0x00000200 +USN_REASON_EA_CHANGE = 0x00000400 +USN_REASON_SECURITY_CHANGE = 0x00000800 +USN_REASON_RENAME_OLD_NAME = 0x00001000 +USN_REASON_RENAME_NEW_NAME = 0x00002000 +USN_REASON_INDEXABLE_CHANGE = 0x00004000 +USN_REASON_BASIC_INFO_CHANGE = 0x00008000 +USN_REASON_HARD_LINK_CHANGE = 0x00010000 +USN_REASON_COMPRESSION_CHANGE = 0x00020000 +USN_REASON_ENCRYPTION_CHANGE = 0x00040000 +USN_REASON_OBJECT_ID_CHANGE = 0x00080000 +USN_REASON_REPARSE_POINT_CHANGE = 0x00100000 +USN_REASON_STREAM_CHANGE = 0x00200000 +USN_REASON_TRANSACTED_CHANGE = 0x00400000 +USN_REASON_CLOSE = 0x80000000 +USN_DELETE_FLAG_DELETE = 0x00000001 +USN_DELETE_FLAG_NOTIFY = 0x00000002 +USN_DELETE_VALID_FLAGS = 0x00000003 +USN_SOURCE_DATA_MANAGEMENT = 0x00000001 +USN_SOURCE_AUXILIARY_DATA = 0x00000002 +USN_SOURCE_REPLICATION_MANAGEMENT = 0x00000004 + +MARK_HANDLE_PROTECT_CLUSTERS = 1 +MARK_HANDLE_TXF_SYSTEM_LOG = 4 +MARK_HANDLE_NOT_TXF_SYSTEM_LOG = 8 + +VOLUME_IS_DIRTY = 0x00000001 +VOLUME_UPGRADE_SCHEDULED = 0x00000002 +VOLUME_SESSION_OPEN = 4 + +FILE_PREFETCH_TYPE_FOR_CREATE = 1 +FILE_PREFETCH_TYPE_FOR_DIRENUM = 2 +FILE_PREFETCH_TYPE_FOR_CREATE_EX = 3 +FILE_PREFETCH_TYPE_FOR_DIRENUM_EX = 4 +FILE_PREFETCH_TYPE_MAX = 4 + +FILESYSTEM_STATISTICS_TYPE_NTFS = 1 +FILESYSTEM_STATISTICS_TYPE_FAT = 2 +FILE_SET_ENCRYPTION = 0x00000001 +FILE_CLEAR_ENCRYPTION = 0x00000002 +STREAM_SET_ENCRYPTION = 0x00000003 +STREAM_CLEAR_ENCRYPTION = 0x00000004 +MAXIMUM_ENCRYPTION_VALUE = 0x00000004 +ENCRYPTION_FORMAT_DEFAULT = 0x01 +COMPRESSION_FORMAT_SPARSE = 0x4000 +COPYFILE_SIS_LINK = 0x0001 +COPYFILE_SIS_REPLACE = 0x0002 +COPYFILE_SIS_FLAGS = 0x0003 + +WMI_DISK_GEOMETRY_GUID = pywintypes.IID("{25007F51-57C2-11D1-A528-00A0C9062910}") +GUID_DEVINTERFACE_CDROM = pywintypes.IID("{53F56308-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_FLOPPY = pywintypes.IID("{53F56311-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR = pywintypes.IID("{4D36E978-E325-11CE-BFC1-08002BE10318}") +GUID_DEVINTERFACE_COMPORT = pywintypes.IID("{86E0D1E0-8089-11D0-9CE4-08003E301F73}") +GUID_DEVINTERFACE_DISK = pywintypes.IID("{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_STORAGEPORT = pywintypes.IID("{2ACCFE60-C130-11D2-B082-00A0C91EFB8B}") +GUID_DEVINTERFACE_CDCHANGER = pywintypes.IID("{53F56312-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_PARTITION = pywintypes.IID("{53F5630A-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_VOLUME = pywintypes.IID("{53F5630D-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_WRITEONCEDISK = pywintypes.IID("{53F5630C-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_TAPE = pywintypes.IID("{53F5630B-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_DEVINTERFACE_MEDIUMCHANGER = pywintypes.IID("{53F56310-B6BF-11D0-94F2-00A0C91EFB8B}") +GUID_SERENUM_BUS_ENUMERATOR = GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR +GUID_CLASS_COMPORT = GUID_DEVINTERFACE_COMPORT + +DiskClassGuid = GUID_DEVINTERFACE_DISK +CdRomClassGuid = GUID_DEVINTERFACE_CDROM +PartitionClassGuid = GUID_DEVINTERFACE_PARTITION +TapeClassGuid = GUID_DEVINTERFACE_TAPE +WriteOnceDiskClassGuid = GUID_DEVINTERFACE_WRITEONCEDISK +VolumeClassGuid = GUID_DEVINTERFACE_VOLUME +MediumChangerClassGuid = GUID_DEVINTERFACE_MEDIUMCHANGER +FloppyClassGuid = GUID_DEVINTERFACE_FLOPPY +CdChangerClassGuid = GUID_DEVINTERFACE_CDCHANGER +StoragePortClassGuid = GUID_DEVINTERFACE_STORAGEPORT + + +IOCTL_STORAGE_CHECK_VERIFY = CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_CHECK_VERIFY2 = CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_MEDIA_REMOVAL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_EJECT_MEDIA = CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_LOAD_MEDIA = CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_LOAD_MEDIA2 = CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_RESERVE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_RELEASE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_FIND_NEW_DEVICES = CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_EJECTION_CONTROL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_MCN_CONTROL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_GET_MEDIA_TYPES = CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_GET_MEDIA_TYPES_EX = CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER = CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_GET_HOTPLUG_INFO = CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_SET_HOTPLUG_INFO = CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_STORAGE_RESET_BUS = CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_RESET_DEVICE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_BREAK_RESERVATION = CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_STORAGE_GET_DEVICE_NUMBER = CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_STORAGE_PREDICT_FAILURE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_GET_DRIVE_GEOMETRY = CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_GET_PARTITION_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_SET_PARTITION_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_SET_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_VERIFY = CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_FORMAT_TRACKS = CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_REASSIGN_BLOCKS = CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_PERFORMANCE = CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_IS_WRITABLE = CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_LOGGING = CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_FORMAT_TRACKS_EX = CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_HISTOGRAM_STRUCTURE = CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_HISTOGRAM_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_HISTOGRAM_RESET = CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_REQUEST_STRUCTURE = CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_REQUEST_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_PERFORMANCE_OFF = CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_CONTROLLER_NUMBER = CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS) +SMART_GET_VERSION = CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS) +SMART_SEND_DRIVE_COMMAND = CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +SMART_RCV_DRIVE_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_PARTITION_INFO_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_SET_PARTITION_INFO_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_DRIVE_LAYOUT_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_SET_DRIVE_LAYOUT_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_CREATE_DISK = CTL_CODE(IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_LENGTH_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_GET_DRIVE_GEOMETRY_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_REASSIGN_BLOCKS_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0029, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + +IOCTL_DISK_UPDATE_DRIVE_SIZE = CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GROW_PARTITION = CTL_CODE(IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_GET_CACHE_INFORMATION = CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_SET_CACHE_INFORMATION = CTL_CODE(IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) + +OBSOLETE_IOCTL_STORAGE_RESET_BUS = CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +OBSOLETE_IOCTL_STORAGE_RESET_DEVICE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +## the original define no longer exists in winioctl.h +OBSOLETE_DISK_GET_WRITE_CACHE_STATE = CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_GET_WRITE_CACHE_STATE=OBSOLETE_DISK_GET_WRITE_CACHE_STATE + + +IOCTL_DISK_DELETE_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_UPDATE_PROPERTIES = CTL_CODE(IOCTL_DISK_BASE, 0x0050, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_FORMAT_DRIVE = CTL_CODE(IOCTL_DISK_BASE, 0x00f3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_DISK_SENSE_DEVICE = CTL_CODE(IOCTL_DISK_BASE, 0x00f8, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_DISK_CHECK_VERIFY = CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_MEDIA_REMOVAL = CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_EJECT_MEDIA = CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_LOAD_MEDIA = CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_RESERVE = CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_RELEASE = CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_FIND_NEW_DEVICES = CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_DISK_GET_MEDIA_TYPES = CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) + +DISK_HISTOGRAM_SIZE = 72 +HISTOGRAM_BUCKET_SIZE = 8 + +IOCTL_CHANGER_GET_PARAMETERS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_GET_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_GET_PRODUCT_DATA = CTL_CODE(IOCTL_CHANGER_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_SET_ACCESS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_CHANGER_GET_ELEMENT_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_SET_POSITION = CTL_CODE(IOCTL_CHANGER_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_EXCHANGE_MEDIUM = CTL_CODE(IOCTL_CHANGER_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_MOVE_MEDIUM = CTL_CODE(IOCTL_CHANGER_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_REINITIALIZE_TRANSPORT = CTL_CODE(IOCTL_CHANGER_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS) +IOCTL_CHANGER_QUERY_VOLUME_TAGS = CTL_CODE(IOCTL_CHANGER_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_SERIAL_LSRMST_INSERT = CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS) +IOCTL_SERENUM_EXPOSE_HARDWARE = CTL_CODE(FILE_DEVICE_SERENUM,128,METHOD_BUFFERED,FILE_ANY_ACCESS) +IOCTL_SERENUM_REMOVE_HARDWARE = CTL_CODE(FILE_DEVICE_SERENUM,129,METHOD_BUFFERED,FILE_ANY_ACCESS) +IOCTL_SERENUM_PORT_DESC = CTL_CODE(FILE_DEVICE_SERENUM,130,METHOD_BUFFERED,FILE_ANY_ACCESS) +IOCTL_SERENUM_GET_PORT_NAME = CTL_CODE(FILE_DEVICE_SERENUM,131,METHOD_BUFFERED,FILE_ANY_ACCESS) + +## ??? can't find where FILE_DEVICE_AVIO is defined ??? +## IOCTL_AVIO_ALLOCATE_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +## IOCTL_AVIO_FREE_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +## IOCTL_AVIO_MODIFY_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + +SERIAL_LSRMST_ESCAPE = 0x00 +SERIAL_LSRMST_LSR_DATA = 0x01 +SERIAL_LSRMST_LSR_NODATA = 0x02 +SERIAL_LSRMST_MST = 0x03 +SERIAL_IOC_FCR_FIFO_ENABLE = 0x00000001 +SERIAL_IOC_FCR_RCVR_RESET = 0x00000002 +SERIAL_IOC_FCR_XMIT_RESET = 0x00000004 +SERIAL_IOC_FCR_DMA_MODE = 0x00000008 +SERIAL_IOC_FCR_RES1 = 0x00000010 +SERIAL_IOC_FCR_RES2 = 0x00000020 +SERIAL_IOC_FCR_RCVR_TRIGGER_LSB = 0x00000040 +SERIAL_IOC_FCR_RCVR_TRIGGER_MSB = 0x00000080 +SERIAL_IOC_MCR_DTR = 0x00000001 +SERIAL_IOC_MCR_RTS = 0x00000002 +SERIAL_IOC_MCR_OUT1 = 0x00000004 +SERIAL_IOC_MCR_OUT2 = 0x00000008 +SERIAL_IOC_MCR_LOOP = 0x00000010 +FSCTL_REQUEST_OPLOCK_LEVEL_1 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_REQUEST_OPLOCK_LEVEL_2 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_REQUEST_BATCH_OPLOCK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_OPLOCK_BREAK_ACKNOWLEDGE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_OPBATCH_ACK_CLOSE_PENDING = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_OPLOCK_BREAK_NOTIFY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_LOCK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_UNLOCK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DISMOUNT_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_IS_VOLUME_MOUNTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_IS_PATHNAME_VALID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_MARK_VOLUME_DIRTY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_QUERY_RETRIEVAL_POINTERS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_GET_COMPRESSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SET_COMPRESSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) +FSCTL_MARK_AS_SYSTEM_HIVE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_OPLOCK_BREAK_ACK_NO_2 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_INVALIDATE_VOLUMES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_QUERY_FAT_BPB = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_REQUEST_FILTER_OPLOCK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_FILESYSTEM_GET_STATISTICS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_GET_NTFS_VOLUME_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_GET_NTFS_FILE_RECORD = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_GET_VOLUME_BITMAP = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_GET_RETRIEVAL_POINTERS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_MOVE_FILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_IS_VOLUME_DIRTY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_ALLOW_EXTENDED_DASD_IO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_FIND_FILES_BY_SID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_SET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_GET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DELETE_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_SET_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_GET_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DELETE_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_ENUM_USN_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_SECURITY_ID_CHECK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA) +FSCTL_READ_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_SET_OBJECT_ID_EXTENDED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_CREATE_OR_GET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SET_SPARSE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_SET_ZERO_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_QUERY_ALLOCATED_RANGES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA) +FSCTL_SET_ENCRYPTION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_ENCRYPTION_FSCTL_IO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_WRITE_RAW_ENCRYPTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS) +FSCTL_READ_RAW_ENCRYPTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS) +FSCTL_CREATE_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_READ_FILE_USN_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_WRITE_USN_CLOSE_RECORD = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_EXTEND_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_QUERY_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DELETE_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_MARK_HANDLE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SIS_COPYFILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SIS_LINK_FILES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) +FSCTL_HSM_MSG = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) +FSCTL_HSM_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA) +FSCTL_RECALL_FILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_READ_FROM_PLEX = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA) +FSCTL_FILE_PREFETCH = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_MAKE_MEDIA_COMPATIBLE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_SET_DEFECT_MANAGEMENT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_QUERY_SPARING_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_QUERY_ON_DISK_VOLUME_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_SET_VOLUME_COMPRESSION_STATE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_TXFS_MODIFY_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_QUERY_RM_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_ROLLFORWARD_REDO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_ROLLFORWARD_UNDO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_START_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_SHUTDOWN_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_READ_BACKUP_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_WRITE_BACKUP_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_CREATE_SECONDARY_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_GET_METADATA_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_GET_TRANSACTED_VERSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_CREATE_MINIVERSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA) +FSCTL_TXFS_TRANSACTION_ACTIVE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_SET_ZERO_ON_DEALLOCATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_SET_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_GET_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_WAIT_FOR_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_INITIATE_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_CSC_INTERNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS) +FSCTL_SHRINK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +FSCTL_SET_SHORT_NAME_BEHAVIOR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_DFSR_SET_GHOST_HANDLE_STATE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS) +FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_TXFS_LIST_TRANSACTIONS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA) +FSCTL_QUERY_PAGEFILE_ENCRYPTION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS) + +IOCTL_VOLUME_BASE = ord('V') +IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS = CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_VOLUME_ONLINE = CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_VOLUME_OFFLINE = CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) +IOCTL_VOLUME_IS_CLUSTERED = CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) +IOCTL_VOLUME_GET_GPT_ATTRIBUTES = CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS) + +## enums +## STORAGE_MEDIA_TYPE +DDS_4mm = 32 +MiniQic = 33 +Travan = 34 +QIC = 35 +MP_8mm = 36 +AME_8mm = 37 +AIT1_8mm = 38 +DLT = 39 +NCTP = 40 +IBM_3480 = 41 +IBM_3490E = 42 +IBM_Magstar_3590 = 43 +IBM_Magstar_MP = 44 +STK_DATA_D3 = 45 +SONY_DTF = 46 +DV_6mm = 47 +DMI = 48 +SONY_D2 = 49 +CLEANER_CARTRIDGE = 50 +CD_ROM = 51 +CD_R = 52 +CD_RW = 53 +DVD_ROM = 54 +DVD_R = 55 +DVD_RW = 56 +MO_3_RW = 57 +MO_5_WO = 58 +MO_5_RW = 59 +MO_5_LIMDOW = 60 +PC_5_WO = 61 +PC_5_RW = 62 +PD_5_RW = 63 +ABL_5_WO = 64 +PINNACLE_APEX_5_RW = 65 +SONY_12_WO = 66 +PHILIPS_12_WO = 67 +HITACHI_12_WO = 68 +CYGNET_12_WO = 69 +KODAK_14_WO = 70 +MO_NFR_525 = 71 +NIKON_12_RW = 72 +IOMEGA_ZIP = 73 +IOMEGA_JAZ = 74 +SYQUEST_EZ135 = 75 +SYQUEST_EZFLYER = 76 +SYQUEST_SYJET = 77 +AVATAR_F2 = 78 +MP2_8mm = 79 +DST_S = 80 +DST_M = 81 +DST_L = 82 +VXATape_1 = 83 +VXATape_2 = 84 +STK_9840 = 85 +LTO_Ultrium = 86 +LTO_Accelis = 87 +DVD_RAM = 88 +AIT_8mm = 89 +ADR_1 = 90 +ADR_2 = 91 +STK_9940 = 92 + +## STORAGE_BUS_TYPE +BusTypeUnknown = 0 +BusTypeScsi = 1 +BusTypeAtapi = 2 +BusTypeAta = 3 +BusType1394 = 4 +BusTypeSsa = 5 +BusTypeFibre = 6 +BusTypeUsb = 7 +BusTypeRAID = 8 +BusTypeiScsi = 9 +BusTypeSas = 10 +BusTypeSata = 11 +BusTypeMaxReserved = 127 + +## MEDIA_TYPE +Unknown = 0 +F5_1Pt2_512 = 1 +F3_1Pt44_512 = 2 +F3_2Pt88_512 = 3 +F3_20Pt8_512 = 4 +F3_720_512 = 5 +F5_360_512 = 6 +F5_320_512 = 7 +F5_320_1024 = 8 +F5_180_512 = 9 +F5_160_512 = 10 +RemovableMedia = 11 +FixedMedia = 12 +F3_120M_512 = 13 +F3_640_512 = 14 +F5_640_512 = 15 +F5_720_512 = 16 +F3_1Pt2_512 = 17 +F3_1Pt23_1024 = 18 +F5_1Pt23_1024 = 19 +F3_128Mb_512 = 20 +F3_230Mb_512 = 21 +F8_256_128 = 22 +F3_200Mb_512 = 23 +F3_240M_512 = 24 +F3_32M_512 = 25 + +## PARTITION_STYLE +PARTITION_STYLE_MBR = 0 +PARTITION_STYLE_GPT = 1 +PARTITION_STYLE_RAW = 2 + +## DETECTION_TYPE +DetectNone = 0 +DetectInt13 = 1 +DetectExInt13 = 2 + +## DISK_CACHE_RETENTION_PRIORITY +EqualPriority = 0 +KeepPrefetchedData = 1 +KeepReadData = 2 + +## DISK_WRITE_CACHE_STATE - ?????? this enum has disappeared from winioctl.h in windows 2003 SP1 sdk ?????? +DiskWriteCacheNormal = 0 +DiskWriteCacheForceDisable = 1 +DiskWriteCacheDisableNotSupported = 2 + +## BIN_TYPES +RequestSize = 0 +RequestLocation = 1 + +## CHANGER_DEVICE_PROBLEM_TYPE +DeviceProblemNone = 0 +DeviceProblemHardware = 1 +DeviceProblemCHMError = 2 +DeviceProblemDoorOpen = 3 +DeviceProblemCalibrationError = 4 +DeviceProblemTargetFailure = 5 +DeviceProblemCHMMoveError = 6 +DeviceProblemCHMZeroError = 7 +DeviceProblemCartridgeInsertError = 8 +DeviceProblemPositionError = 9 +DeviceProblemSensorError = 10 +DeviceProblemCartridgeEjectError = 11 +DeviceProblemGripperError = 12 +DeviceProblemDriveError = 13 diff --git a/typings/win32typing/__init__.pyi b/typings/win32typing/__init__.pyi new file mode 100644 index 00000000..f11a35e4 --- /dev/null +++ b/typings/win32typing/__init__.pyi @@ -0,0 +1,51704 @@ +""" +This type stub file was generated by pyright. +""" + +__all__=['', 'COMMTIMEOUTS', 'CopyProgressRoutine', 'DOCINFO', 'ExportCallback', 'FORM_INFO_1', 'ImportCallback', 'LARGE_INTEGER', 'NCB', 'PRINTER_DEFAULTS', 'PyACL', 'PyBITMAP', 'PyBLENDFUNCTION', 'PyCEHANDLE', 'PyCERTSTORE', 'PyCERT_ALT_NAME_ENTRY', 'PyCERT_ALT_NAME_INFO', 'PyCERT_AUTHORITY_KEY_ID_INFO', 'PyCERT_BASIC_CONSTRAINTS2_INFO', 'PyCERT_BASIC_CONSTRAINTS_INFO', 'PyCERT_CONTEXT', 'PyCERT_EXTENSION', 'PyCERT_KEY_ATTRIBUTES_INFO', 'PyCERT_NAME_INFO', 'PyCERT_NAME_VALUE', 'PyCERT_OTHER_NAME', 'PyCERT_POLICY_INFO', 'PyCERT_PUBLIC_KEY_INFO', 'PyCOMSTAT', 'PyCOORD', 'PyCREDENTIAL', 'PyCREDENTIAL_ATTRIBUTE', 'PyCREDENTIAL_TARGET_INFORMATION', 'PyCREDUI_INFO', 'PyCRYPTHASH', 'PyCRYPTKEY', 'PyCRYPTMSG', 'PyCRYPTPROTECT_PROMPTSTRUCT', 'PyCRYPTPROV', 'PyCRYPT_ALGORITHM_IDENTIFIER', 'PyCRYPT_ATTRIBUTE', 'PyCRYPT_BIT_BLOB', 'PyCRYPT_DECRYPT_MESSAGE_PARA', 'PyCRYPT_ENCRYPT_MESSAGE_PARA', 'PyCRYPT_SIGN_MESSAGE_PARA', 'PyCRYPT_VERIFY_MESSAGE_PARA', 'PyCTL_CONTEXT', 'PyCTL_USAGE', 'PyConsoleScreenBuffer', 'PyCredHandle', 'PyCtxtHandle', 'PyDCB', 'PyDEVMODE', 'PyDEVMODEW', 'PyDISPLAY_DEVICE', 'PyDLGITEMTEMPLATE', 'PyDLGTEMPLATE', 'PyDS_HANDLE', 'PyDS_NAME_RESULT_ITEM', 'PyDateTime', 'PyDialogTemplate', 'PyEVTLOG_HANDLE', 'PyEVT_HANDLE', 'PyEVT_RPC_LOGIN', 'PyEventLogRecord', 'PyGROUP_INFO_0', 'PyGROUP_INFO_1', 'PyGROUP_INFO_1002', 'PyGROUP_INFO_1005', 'PyGROUP_INFO_2', 'PyGROUP_USERS_INFO_0', 'PyGROUP_USERS_INFO_1', 'PyGdiHANDLE', 'PyGetSignerCertificate', 'PyHANDLE', 'PyHDESK', 'PyHDEVNOTIFY', 'PyHHNTRACK', 'PyHHN_NOTIFY', 'PyHH_AKLINK', 'PyHH_FTS_QUERY', 'PyHH_POPUP', 'PyHH_WINTYPE', 'PyHINTERNET', 'PyHKEY', 'PyHTHEME', 'PyHWINSTA', 'PyICONINFO', 'PyIID', 'PyINPUT_RECORD', 'PyLOCALGROUP_INFO_0', 'PyLOCALGROUP_INFO_1', 'PyLOCALGROUP_INFO_1002', 'PyLOCALGROUP_MEMBERS_INFO_0', 'PyLOCALGROUP_MEMBERS_INFO_1', 'PyLOCALGROUP_MEMBERS_INFO_2', 'PyLOCALGROUP_MEMBERS_INFO_3', 'PyLOGBRUSH', 'PyLOGFONT', 'PyLSA_HANDLE', 'PyLUID_AND_ATTRIBUTES', 'PyLsaLogon_HANDLE', 'PyMSG', 'PyNETRESOURCE', 'PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG', 'PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG', 'PyNET_VALIDATE_PERSISTED_FIELDS', 'PyNMHDR', 'PyNOTIFYICONDATA', 'PyOVERLAPPED', 'PyOVERLAPPEDReadBuffer', 'PyPERF_COUNTER_DEFINITION', 'PyPERF_OBJECT_TYPE', 'PyPOINT', 'PyPROFILEINFO', 'PyPerfMonManager', 'PyPrinterHANDLE', 'PyRECT', 'PyResourceId', 'PySCROLLINFO', 'PySC_HANDLE', 'PySECURITY_ATTRIBUTES', 'PySECURITY_DESCRIPTOR', 'PySERVER_INFO_100', 'PySERVER_INFO_101', 'PySERVER_INFO_102', 'PySERVER_INFO_402', 'PySERVER_INFO_403', 'PySERVER_INFO_502', 'PySERVER_INFO_503', 'PySHARE_INFO_0', 'PySHARE_INFO_1', 'PySHARE_INFO_2', 'PySHARE_INFO_501', 'PySHARE_INFO_502', 'PySID', 'PySID_AND_ATTRIBUTES', 'PySIZE', 'PySMALL_RECT', 'PySTARTUPINFO', 'PySecBuffer', 'PySecBufferDesc', 'PyTOKEN_GROUPS', 'PyTOKEN_PRIVILEGES', 'PyTRIVERTEX', 'PyTRUSTEE', 'PyTS_HANDLE', 'PyTime', 'PyUSER_INFO_0', 'PyUSER_INFO_1', 'PyUSER_INFO_10', 'PyUSER_INFO_1003', 'PyUSER_INFO_1005', 'PyUSER_INFO_1006', 'PyUSER_INFO_1007', 'PyUSER_INFO_1008', 'PyUSER_INFO_1009', 'PyUSER_INFO_1010', 'PyUSER_INFO_1011', 'PyUSER_INFO_11', 'PyUSER_INFO_2', 'PyUSER_INFO_20', 'PyUSER_INFO_3', 'PyUSER_INFO_4', 'PyUSER_MODALS_INFO_0', 'PyUSER_MODALS_INFO_1', 'PyUSER_MODALS_INFO_2', 'PyUSER_MODALS_INFO_3', 'PyUSE_INFO_0', 'PyUSE_INFO_1', 'PyUSE_INFO_2', 'PyUSE_INFO_3', 'PyUnicode', 'PyUrlCacheHANDLE', 'PyWAVEFORMATEX', 'PyWINHTTP_AUTOPROXY_OPTIONS', 'PyWINHTTP_PROXY_INFO', 'PyWKSTA_INFO_100', 'PyWKSTA_INFO_101', 'PyWKSTA_INFO_102', 'PyWKSTA_INFO_302', 'PyWKSTA_INFO_402', 'PyWKSTA_INFO_502', 'PyWKSTA_TRANSPORT_INFO_0', 'PyWKSTA_USER_INFO_0', 'PyWKSTA_USER_INFO_1', 'PyWNDCLASS', 'PyXFORM', 'Pymmapfile', 'RASDIALEXTENSIONS', 'RASDIALPARAMS', 'SC_ACTION', 'SERVICE_FAILURE_ACTIONS', 'SERVICE_STATUS', 'TRACKMOUSEEVENT', 'ULARGE_INTEGER', 'WIN32_FIND_DATA', 'com_error', 'connection', 'cursor', 'error', 'COMPONENT', 'COMPONENTSOPT', 'COMPPOS', 'COMPSTATEINFO', 'DEFCONTENTMENU', 'ELEMDESC', 'EXP_DARWIN_LINK', 'EXP_SPECIAL_FOLDER', 'EXP_SZ_LINK', 'FUNCDESC', 'IDLDESC', 'MAPIINIT_0', 'NT_CONSOLE_PROPS', 'NT_FE_CONSOLE_PROPS', 'PROPSPEC', 'PyADSVALUE', 'PyADS_ATTR_INFO', 'PyADS_OBJECT_INFO', 'PyADS_SEARCHPREF_INFO', 'PyBIND_OPTS', 'PyCMINVOKECOMMANDINFO', 'PyDSBCAPS', 'PyDSBUFFERDESC', 'PyDSCAPS', 'PyDSCBCAPS', 'PyDSCBUFFERDESC', 'PyDSCCAPS', 'PyDSOP_FILTER_FLAGS', 'PyDSOP_SCOPE_INIT_INFO', 'PyDSOP_SCOPE_INIT_INFOs', 'PyDSOP_UPLEVEL_FILTER_FLAGS', 'PyFORMATETC', 'PyGFileOperationProgressSink', 'PyGSecurityInformation', 'PyIADesktopP2', 'PyIADs', 'PyIADsContainer', 'PyIADsUser', 'PyIActiveDesktop', 'PyIActiveDesktopP', 'PyIActiveScriptDebug', 'PyIActiveScriptError', 'PyIActiveScriptErrorDebug', 'PyIActiveScriptParseProcedure', 'PyIActiveScriptSite', 'PyIActiveScriptSiteDebug', 'PyIAddrBook', 'PyIApplicationDebugger', 'PyIApplicationDestinations', 'PyIApplicationDocumentLists', 'PyIAsyncOperation', 'PyIAttach', 'PyIBindCtx', 'PyIBrowserFrameOptions', 'PyICancelMethodCalls', 'PyICatInformation', 'PyICatRegister', 'PyICategoryProvider', 'PyIClassFactory', 'PyIClientSecurity', 'PyIColumnProvider', 'PyIConnectionPoint', 'PyIConnectionPointContainer', 'PyIContext', 'PyIContextMenu', 'PyICopyHookA', 'PyICopyHookW', 'PyICreateTypeInfo', 'PyICreateTypeLib', 'PyICreateTypeLib2', 'PyICurrentItem', 'PyICustomDestinationList', 'PyIDL', 'PyIDataObject', 'PyIDebugApplication', 'PyIDebugApplicationNode', 'PyIDebugApplicationNodeEvents', 'PyIDebugApplicationThread', 'PyIDebugCodeContext', 'PyIDebugDocument', 'PyIDebugDocumentContext', 'PyIDebugDocumentHelper', 'PyIDebugDocumentHost', 'PyIDebugDocumentInfo', 'PyIDebugDocumentProvider', 'PyIDebugDocumentText', 'PyIDebugDocumentTextAuthor', 'PyIDebugDocumentTextEvents', 'PyIDebugDocumentTextExternalAuthor', 'PyIDebugExpression', 'PyIDebugExpressionCallBack', 'PyIDebugExpressionContext', 'PyIDebugProperty', 'PyIDebugSessionProvider', 'PyIDebugStackFrame', 'PyIDebugStackFrameSniffer', 'PyIDebugStackFrameSnifferEx', 'PyIDebugSyncOperation', 'PyIDefaultExtractIconInit', 'PyIDirectSound', 'PyIDirectSoundBuffer', 'PyIDirectSoundCapture', 'PyIDirectSoundCaptureBuffer', 'PyIDirectSoundNotify', 'PyIDirectoryObject', 'PyIDirectorySearch', 'PyIDispatch', 'PyIDispatchEx', 'PyIDisplayItem', 'PyIDocHostUIHandler', 'PyIDropSource', 'PyIDropTarget', 'PyIDropTargetHelper', 'PyIDsObjectPicker', 'PyIEmptyVolumeCache', 'PyIEmptyVolumeCache2', 'PyIEmptyVolumeCacheCallBack', 'PyIEnumCATEGORYINFO', 'PyIEnumConnectionPoints', 'PyIEnumConnections', 'PyIEnumContextProps', 'PyIEnumDebugApplicationNodes', 'PyIEnumDebugCodeContexts', 'PyIEnumDebugExpressionContexts', 'PyIEnumDebugPropertyInfo', 'PyIEnumDebugStackFrames', 'PyIEnumExplorerCommand', 'PyIEnumFORMATETC', 'PyIEnumGUID', 'PyIEnumIDList', 'PyIEnumMoniker', 'PyIEnumObjects', 'PyIEnumRemoteDebugApplicationThreads', 'PyIEnumRemoteDebugApplications', 'PyIEnumResources', 'PyIEnumSTATPROPSETSTG', 'PyIEnumSTATPROPSTG', 'PyIEnumSTATSTG', 'PyIEnumShellItems', 'PyIEnumString', 'PyIErrorLog', 'PyIExplorerBrowser', 'PyIExplorerBrowserEvents', 'PyIExplorerCommand', 'PyIExplorerCommandProvider', 'PyIExplorerPaneVisibility', 'PyIExternalConnection', 'PyIExtractIcon', 'PyIExtractIconW', 'PyIExtractImage', 'PyIFileOperation', 'PyIIdentityName', 'PyIInitializeWithFile', 'PyIInitializeWithStream', 'PyIInputObject', 'PyIInternetBindInfo', 'PyIInternetPriority', 'PyIInternetProtocol', 'PyIInternetProtocolInfo', 'PyIInternetProtocolRoot', 'PyIInternetProtocolSink', 'PyIInternetSecurityManager', 'PyIKnownFolder', 'PyIKnownFolderManager', 'PyILockBytes', 'PyIMAPIContainer', 'PyIMAPIFolder', 'PyIMAPIProp', 'PyIMAPISession', 'PyIMAPIStatus', 'PyIMAPITable', 'PyIMachineDebugManager', 'PyIMachineDebugManagerEvents', 'PyIMessage', 'PyIMoniker', 'PyIMsgServiceAdmin', 'PyIMsgStore', 'PyINameSpaceTreeControl', 'PyINamedPropertyStore', 'PyIObjectArray', 'PyIObjectCollection', 'PyIObjectWithPropertyKey', 'PyIObjectWithSite', 'PyIOleClientSite', 'PyIOleCommandTarget', 'PyIOleControl', 'PyIOleControlSite', 'PyIOleInPlaceActiveObject', 'PyIOleInPlaceFrame', 'PyIOleInPlaceObject', 'PyIOleInPlaceSite', 'PyIOleInPlaceSiteEx', 'PyIOleInPlaceSiteWindowless', 'PyIOleInPlaceUIWindow', 'PyIOleObject', 'PyIOleWindow', 'PyIPersist', 'PyIPersistFile', 'PyIPersistFolder', 'PyIPersistFolder2', 'PyIPersistPropertyBag', 'PyIPersistSerializedPropStorage', 'PyIPersistStorage', 'PyIPersistStream', 'PyIPersistStreamInit', 'PyIProcessDebugManager', 'PyIProfAdmin', 'PyIPropertyBag', 'PyIPropertyChange', 'PyIPropertyChangeArray', 'PyIPropertyDescription', 'PyIPropertyDescriptionAliasInfo', 'PyIPropertyDescriptionList', 'PyIPropertyDescriptionSearchInfo', 'PyIPropertyEnumType', 'PyIPropertyEnumTypeList', 'PyIPropertySetStorage', 'PyIPropertyStorage', 'PyIPropertyStore', 'PyIPropertyStoreCache', 'PyIPropertyStoreCapabilities', 'PyIPropertySystem', 'PyIProvideClassInfo', 'PyIProvideClassInfo2', 'PyIProvideExpressionContexts', 'PyIProvideTaskPage', 'PyIQueryAssociations', 'PyIRelatedItem', 'PyIRemoteDebugApplication', 'PyIRemoteDebugApplicationEvents', 'PyIRemoteDebugApplicationThread', 'PyIRunningObjectTable', 'PyIScheduledWorkItem', 'PyIServerSecurity', 'PyIServiceProvider', 'PyIShellBrowser', 'PyIShellExtInit', 'PyIShellFolder', 'PyIShellFolder2', 'PyIShellIcon', 'PyIShellIconOverlay', 'PyIShellIconOverlayIdentifier', 'PyIShellIconOverlayManager', 'PyIShellItem', 'PyIShellItem2', 'PyIShellItemArray', 'PyIShellItemResources', 'PyIShellLibrary', 'PyIShellLink', 'PyIShellLinkDataList', 'PyIShellView', 'PyISpecifyPropertyPages', 'PyIStorage', 'PyIStream', 'PyITask', 'PyITaskScheduler', 'PyITaskTrigger', 'PyITaskbarList', 'PyITransferAdviseSink', 'PyITransferDestination', 'PyITransferMediumItem', 'PyITransferSource', 'PyITypeComp', 'PyITypeInfo', 'PyITypeLib', 'PyIUniformResourceLocator', 'PyIUnknown', 'PyIViewObject', 'PyIViewObject2', 'PyMAPINAMEIDArray', 'PyOLEMENUGROUPWIDTHS', 'PyPROPERTYKEY', 'PyPROPVARIANT', 'PySAndRestriction', 'PySBinaryArray', 'PySBitMaskRestriction', 'PySContentRestriction', 'PySExistRestriction', 'PySHELL_ITEM_RESOURCE', 'PySNotRestriction', 'PySOrRestriction', 'PySPropTagArray', 'PySPropValue', 'PySPropValueArray', 'PySPropertyRestriction', 'PySRestriction', 'PySRow', 'PySRowSet', 'PySSortOrderItem', 'PySSortOrderSet', 'PySTGMEDIUM', 'PyTASK_TRIGGER', 'RTF_WCSINFO', 'SHFILEINFO', 'SHFILEOPSTRUCT', 'SI_ACCESS', 'SI_INHERIT_TYPE', 'SI_OBJECT_INFO', 'STATSTG', 'TLIBATTR', 'TYPEATTR', 'TYPEDESC', 'VARDESC', 'CHARFORMAT', 'CREATESTRUCT', 'LV_COLUMN', 'LV_ITEM', 'PARAFORMAT', 'PyAssocCObject', 'PyAssocObject', 'PyCBitmap', 'PyCBrush', 'PyCButton', 'PyCCmdTarget', 'PyCCmdUI', 'PyCColorDialog', 'PyCComboBox', 'PyCCommonDialog', 'PyCControl', 'PyCControlBar', 'PyCCtrlView', 'PyCDC', 'PyCDialog', 'PyCDialogBar', 'PyCDocTemplate', 'PyCDockContext', 'PyCDocument', 'PyCEdit', 'PyCEditView', 'PyCFileDialog', 'PyCFont', 'PyCFontDialog', 'PyCFormView', 'PyCFrameWnd', 'PyCGdiObject', 'PyCImageList', 'PyCListBox', 'PyCListCtrl', 'PyCListView', 'PyCMDIChildWnd', 'PyCMDIFrameWnd', 'PyCMenu', 'PyCOleClientItem', 'PyCOleDialog', 'PyCOleDocument', 'PyCOleInsertDialog', 'PyCPrintDialog', 'PyCPrintInfo', 'PyCProgressCtrl', 'PyCPropertyPage', 'PyCPropertySheet', 'PyCRect', 'PyCRgn', 'PyCRichEditCtrl', 'PyCRichEditDoc', 'PyCRichEditDocTemplate', 'PyCRichEditView', 'PyCScrollView', 'PyCSliderCtrl', 'PyCSpinButtonCtrl', 'PyCSplitterWnd', 'PyCStatusBar', 'PyCStatusBarCtrl', 'PyCTabCtrl', 'PyCToolBar', 'PyCToolBarCtrl', 'PyCToolTipCtrl', 'PyCTreeCtrl', 'PyCTreeView', 'PyCView', 'PyCWinApp', 'PyCWinThread', 'PyCWnd', 'PyDDEConv', 'PyDDEServer', 'PyDDEStringItem', 'PyDDETopic', 'PyDLL', 'SCROLLINFO', 'TV_ITEM', 'EXTENSION_CONTROL_BLOCK', 'HSE_VERSION_INFO', 'HTTP_FILTER_AUTHENT', 'HTTP_FILTER_CONTEXT', 'HTTP_FILTER_LOG', 'HTTP_FILTER_PREPROC_HEADERS', 'HTTP_FILTER_RAW_DATA', 'HTTP_FILTER_URL_MAP', 'HTTP_FILTER_VERSION'] +import typing + +class COMMTIMEOUTS(object): + """A tuple representing a COMMTIMEOUTS structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class CopyProgressRoutine(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class DOCINFO(object): + """A tuple of information representing a DOCINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def DocName(self)->'typing.Union[str]': + """Name of document""" + pass + + + @property + def Output(self)->'typing.Union[str]': + """Name of output file when printing to file. Use None for normal printing.""" + pass + + + @property + def DataType(self)->'typing.Union[str]': + """Type of data to be sent to printer, eg RAW, EMF, TEXT. Use None for printer default.""" + pass + + + @property + def Type(self)->'typing.Any': + """Flag specifying mode of operation. Can be DI_APPBANDING, DI_ROPS_READ_DESTINATION, or 0""" + pass + + +class ExportCallback(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class FORM_INFO_1(object): + """A dictionary containing FORM_INFO_1W data""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'typing.Any': + """FORM_USER, FORM_BUILTIN, or FORM_PRINTER""" + pass + + + @property + def Name(self)->'str': + """Name of form""" + pass + + + @property + def Size(self)->'typing.Any': + """A dictionary representing a SIZEL structure {'cx':int,'cy':int}""" + pass + + + @property + def ImageableArea(self)->'typing.Any': + """A dictionary representing a RECTL structure {'left':int, 'top':int, 'right':int, 'bottom':int}""" + pass + + +class ImportCallback(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LARGE_INTEGER(object): + """A Python object used wherever a COM LARGE_INTEGER is used.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class NCB(object): + """A Python object that encapsulates a Win32 NCB structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Command(self)->'typing.Any': + """""" + pass + + + @property + def Retcode(self)->'typing.Any': + """""" + pass + + + @property + def Lsn(self)->'typing.Any': + """""" + pass + + + @property + def Num(self)->'typing.Any': + """""" + pass + + + @property + def Bufflen(self)->'typing.Any': + """read-only""" + pass + + + @property + def Callname(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Name(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Rto(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Sto(self)->'str': + """- The strings need to be space padded to 16 chars exactly""" + pass + + + @property + def Lana_num(self)->'typing.Any': + """""" + pass + + + @property + def Cmd_cplt(self)->'typing.Any': + """""" + pass + + + @property + def Event(self)->'typing.Any': + """""" + pass + + + @property + def Post(self)->'typing.Any': + """""" + pass + + +class PRINTER_DEFAULTS(object): + """A dictionary representing a PRINTER_DEFAULTS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def pDatatype(self)->'str': + """Data type to be used for print jobs, see win32print::EnumPrintProcessorDatatypes, optional, can be None""" + pass + + + @property + def pDevMode(self)->'PyDEVMODE': + """A PyDEVMODE that specifies default printer parameters, optional, can be None""" + pass + + + @property + def DesiredAccess(self)->'typing.Any': + """An ACCESS_MASK specifying what level of access is needed, eg PRINTER_ACCESS_ADMINISTER, PRINTER_ACCESS_USE""" + pass + + +class PyACL(object): + """A Python object, representing a ACL structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Initialize the ACL. + +Args: + + + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the ACL is valid (IsValidAcl) + +Args: + + + +Returns: + + None + + """ + pass + + + def AddAccessAllowedAce(self,revision:'typing.Any',access:'typing.Any',sid:'PySID',access1:'typing.Any',sid1:'typing.Any') -> 'None': + """ + Adds an access-allowed ACE to an DACL object. The access is granted to a + +specified SID. + +Args: + + revision(typing.Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. + access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters + access1(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid1(typing.Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. + +Returns: + + None + + """ + pass + + + def AddAccessAllowedAceEx(self,revision:'typing.Any',aceflags:'typing.Any',access:'typing.Any',sid:'PySID') -> 'None': + """ + Add access allowed ACE to an ACL with ACE flags (Requires Win2k or higher) + +Args: + + revision(typing.Any):Must be at least ACL_REVISION_DS + aceflags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + access(typing.Any):Specifies the mask of access rights to be granted to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being granted access. + +Returns: + + None + + """ + pass + + + def AddAccessAllowedObjectAce(self,AceRevision:'typing.Any',AceFlags:'typing.Any',AccessMask:'typing.Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID') -> 'None': + """ + Adds an ACCESS_ALLOWED_OBJECT_ACE to the ACL + +Args: + + AceRevision(typing.Any):Must be at least ACL_REVISION_DS + AceFlags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + AccessMask(typing.Any):Specifies the mask of access rights to be granted to the specified SID + ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None + InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None + sid(PySID):A SID object representing a user, group, or logon account being granted access. + +Returns: + + None + + """ + pass + + + def AddAccessDeniedAce(self,revision:'typing.Any',access:'typing.Any',sid:'PySID',access1:'typing.Any',sid1:'typing.Any') -> 'None': + """ + Adds an access-denied ACE to an ACL object. The access is denied to a specified + +SID. + +Args: + + revision(typing.Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. + access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters + access1(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid1(typing.Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. + +Returns: + + None + + """ + pass + + + def AddAccessDeniedAceEx(self,revision:'typing.Any',aceflags:'typing.Any',access:'typing.Any',sid:'PySID') -> 'None': + """ + Add access denied ACE to an ACL with ACE flags (Requires Win2k or higher) + +Args: + + revision(typing.Any):Must be at least ACL_REVISION_DS + aceflags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. + sid(PySID):A SID object representing a user, group, or logon account being denied access. + +Returns: + + None + + """ + pass + + + def AddMandatoryAce(self,AceRevision:'typing.Any',AceFlags:'typing.Any',MandatoryPolicy:'typing.Any',LabelSid:'PySID') -> 'None': + """ + Adds a mandatory integrity level ACE to a SACL + +Args: + + AceRevision(typing.Any):ACL_REVISION or ACL_REVISION_DS + AceFlags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) + MandatoryPolicy(typing.Any):Access policy for processes with lower integrity level, combination of SYSTEM_MANDATORY_LABEL_* flags + LabelSid(PySID):Integrity level SID. This can be created using CreateWellKnownSid with Win*LabelSid. Also can be constructed manually using SECURITY_MANDATORY_LABEL_AUTHORITY and a SECURITY_MANDATORY_*_RID + +Returns: + + None + + """ + pass + + + def AddAuditAccessAce(self,dwAceRevision:'typing.Any',dwAccessMask:'typing.Any',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': + """ + Adds an audit ACE to a Sacl + +Args: + + dwAceRevision(typing.Any):Revision of ACL: Pre-Win2k, must be ACL_REVISION. Win2K on up, can also be ACL_REVISION_DS + dwAccessMask(typing.Any):Bitmask of access types to be audited + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def AddAuditAccessAceEx(self,dwAceRevision:'typing.Any',AceFlags:'typing.Any',dwAccessMask:'typing.Any',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': + """ + Adds an audit ACE to an Sacl, includes ace flags + +Args: + + dwAceRevision(typing.Any):Revision of ACL: Must be at least ACL_REVISION_DS + AceFlags(typing.Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE + dwAccessMask(typing.Any):Bitmask of access types to be audited + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def AddAuditAccessObjectAce(self,dwAceRevision:'typing.Any',AceFlags:'typing.Any',dwAccessMask:'typing.Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': + """ + Adds an audit ACE for an object type identified by GUID + +Args: + + dwAceRevision(typing.Any):Revision of ACL: Must be at least ACL_REVISION_DS + AceFlags(typing.Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE + dwAccessMask(typing.Any):Bitmask of access types to be audited + ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None + InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None + sid(PySID):SID for whom system audit messages will be generated + bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 + bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 + +Returns: + + None + + """ + pass + + + def GetAclSize(self,) -> 'typing.Any': + """ + Returns the storage size of the ACL. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAclRevision(self,) -> 'typing.Any': + """ + Returns revision of the ACL. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAceCount(self,) -> 'typing.Any': + """ + Returns the number of ACEs in the ACL. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAce(self,index:'typing.Any') -> 'typing.Any': + """ + Gets an Ace from the ACL + +Args: + + index(typing.Any):Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned as a tuple of:Items[0] (int, int) : aceType, AceFlags[1] int : Mask[2] PySID : sidObject ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) are returned as a tuple:[0] (int, int) : aceType, AceFlags[1] int : mask[2] PyIID : ObjectType[3] PyIID : InheritedObjectType[4] PySID : sidFor details see the API documentation. + +Returns: + + typing.Any:Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned + +as a tuple of: +Items[0] (int, int) : aceType, AceFlags + +[1] int : Mask + +[2] PySID : sid +Object ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) + +are returned as a tuple: +[0] (int, int) : aceType, AceFlags + +[1] int : mask + +[2] PyIID : ObjectType + +[3] PyIID : InheritedObjectType + +[4] PySID : sid +For details see the API documentation. + + + """ + pass + + + def DeleteAce(self,index:'typing.Any') -> 'None': + """ + Deletes specified Ace from an ACL. + +Args: + + index(typing.Any):Zero-based index of the ACE to delete. + +Returns: + + None + + """ + pass + + + def GetEffectiveRightsFromAcl(self,trustee:'PyTRUSTEE') -> 'typing.Any': + """ + Return access rights (ACCESS_MASK) that the ACL grants to + +specified trustee + +Args: + + trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structure + +Returns: + + typing.Any + + """ + pass + + + def GetAuditedPermissionsFromAcl(self,trustee:'PyTRUSTEE') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Return types of access for + +which ACL will generate an audit event for specified trustee + +Args: + + trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structureCommentsThis function is known to return the success and failure access masks in the the wrong order on Windows 2000 service pack 4. Problem has been reported to Microsoft. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + +class PyBITMAP(object): + """A Python object, representing an PyBITMAP structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bmType(self)->'int': + """""" + pass + + + @property + def bmWidth(self)->'int': + """""" + pass + + + @property + def bmHeight(self)->'int': + """""" + pass + + + @property + def bmWidthBytes(self)->'int': + """""" + pass + + + @property + def bmPlanes(self)->'int': + """""" + pass + + +class PyBLENDFUNCTION(object): + """Tuple of four small ints used to fill a BLENDFUNCTION struct + +Each int must fit in a byte (0-255).""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCEHANDLE(object): + """A Python object, representing a remote Windows CE handle""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERTSTORE(object): + """Handle to a certificate store""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCERTSTORE(self)->'typing.Any': + """Integer handle""" + pass + + + def CertCloseStore(self,Flags:'typing.Any'=0) -> 'None': + """ + Closes the certificate store + +Args: + + Flags(typing.Any):Combination of CERT_CLOSE_*_FLAG flags + +Returns: + + None + + """ + pass + + + def CertControlStore(self,Flags:'typing.Any',CtrlType:'typing.Any',CtrlPara:'int') -> 'None': + """ + Controls sychronization of the certificate store + +Args: + + Flags(typing.Any):One of the CERT_STORE_CTRL_*_FLAG flags + CtrlType(typing.Any):One of the CERT_STORE_CTRL_* flags + CtrlPara(int):Event handle, can be None (not used with CERT_STORE_CTRL_COMMIT) + +Returns: + + None + + """ + pass + + + def CertEnumCertificatesInStore(self,) -> 'typing.List[typing.Any]': + """ + Lists all certificates in the store + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def CertEnumCTLsInStore(self,) -> 'typing.List[typing.Any]': + """ + Finds all Certificate Trust Lists in store + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def CertSaveStore(self,MsgAndCertEncodingType:'typing.Any',SaveAs:'typing.Any',SaveTo:'typing.Any',SaveToPara:'typing.Union[str, int]',Flags:'typing.Any'=0) -> 'None': + """ + Serializes the store to memory or a file + +Args: + + MsgAndCertEncodingType(typing.Any):Only used when saveas is CERT_STORE_SAVE_AS_PKCS7 - usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING + SaveAs(typing.Any):One of the CERT_STORE_SAVE_AS_* constants + SaveTo(typing.Any):One of the CERT_STORE_SAVE_TO_* constants (CERT_STORE_SAVE_TO_MEMORY not supported yet) + SaveToPara(typing.Union[str, int]):File name or open file handle depending on SaveTo parm + Flags(typing.Any):Reserved, use 0 + +Returns: + + None + + """ + pass + + + def CertAddEncodedCertificateToStore(self,CertEncodingType:'typing.Any',CertEncoded:'typing.Any',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': + """ + Imports an encoded certificate into the + +store + +Args: + + CertEncodingType(typing.Any):Usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING + CertEncoded(typing.Any):Data containing a serialized certificate + AddDisposition(typing.Any):Combination of CERT_STORE_ADD_* flags + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCertificateContextToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': + """ + Adds a certificate context to the store + +Args: + + CertContext(PyCERT_CONTEXT):Certificate context to be added + AddDisposition(typing.Any):CERT_STORE_ADD_* constant + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCertificateLinkToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': + """ + Adds a link to a cert in another store + +Args: + + CertContext(PyCERT_CONTEXT):Certificate context to be linked + AddDisposition(typing.Any):One of the CERT_STORE_ADD_* values + +Returns: + + PyCERT_CONTEXT + + """ + pass + + + def CertAddCTLContextToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'typing.Any') -> 'PyCTL_CONTEXT': + """ + Adds a certificate trust list to the store + +Args: + + CtlContext(PyCTL_CONTEXT):CTL to be added + AddDisposition(typing.Any):CERT_STORE_ADD_* constant + +Returns: + + PyCTL_CONTEXT + + """ + pass + + + def CertAddCTLLinkToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'typing.Any') -> 'PyCTL_CONTEXT': + """ + Adds a link to a CTL in another store + +Args: + + CtlContext(PyCTL_CONTEXT):CTL to be linked + AddDisposition(typing.Any):One of the CERT_STORE_ADD_* values + +Returns: + + PyCTL_CONTEXT + + """ + pass + + + def CertAddStoreToCollection(self,SiblingStore:'PyCERTSTORE',UpdateFlag:'typing.Any'=0,Priority:'typing.Any'=0) -> 'None': + """ + Adds a sibling store to a store collection + +Args: + + SiblingStore(PyCERTSTORE):Store to be added to the collection + UpdateFlag(typing.Any):Can be CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG to enable changes to persist + Priority(typing.Any):Determines order in which store are searched and updatedCommentsA collection store is created by using cryptoapi::CertOpenStore with CERT_STORE_PROV_COLLECTION + +Returns: + + None + + """ + pass + + + def CertRemoveStoreFromCollection(self,SiblingStore:'PyCERTSTORE') -> 'None': + """ + Removes a sibling store from a collection + +Args: + + SiblingStore(PyCERTSTORE):Store to be removed from the collection + +Returns: + + None + + """ + pass + + + def PFXExportCertStoreEx(self,Flags:'typing.Any',Password:'typing.Any'=None) -> 'typing.Any': + """ + Exports certificates and associated private keys in PKCS#12 format + +Args: + + Flags(typing.Any):Options to be used while exporting + Password(typing.Any):Passphrase to be used to encrypt the output + +Returns: + + typing.Any + + """ + pass + + +class PyCERT_ALT_NAME_ENTRY(object): + """Represented as a 2-tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_ALT_NAME_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_AUTHORITY_KEY_ID_INFO(object): + """Dict containing the identity of a CA""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def KeyId(self)->'typing.Any': + """Unique identifier of private key, usually a hash""" + pass + + + @property + def CertIssuer(self)->'typing.Any': + """Encoded DN of the Certificate Authority. Decode using X509_UNICODE_NAME""" + pass + + + @property + def CertSerialNumber(self)->'typing.Any': + """Serial nbr of the CA's signing certificate""" + pass + + +class PyCERT_BASIC_CONSTRAINTS2_INFO(object): + """Dict representing a CERT_BASIC_CONSTRAINTS2_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def fCA(self)->'typing.Any': + """Indicates if cert represents a certificate authority""" + pass + + + @property + def fPathLenConstraint(self)->'typing.Any': + """Indicates if PathLenConstraint member is used""" + pass + + + @property + def PathLenConstraint(self)->'typing.Any': + """Limits number of intermediate CA's between root CA and end user""" + pass + + +class PyCERT_BASIC_CONSTRAINTS_INFO(object): + """Dict representing a CERT_BASIC_CONSTRAINTS_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SubjectType(self)->'PyCRYPT_BIT_BLOB': + """Contains a combination of CERT_CA_SUBJECT_FLAG,CERT_END_ENTITY_SUBJECT_FLAG""" + pass + + + @property + def fPathLenConstraint(self)->'typing.Any': + """Indicates if PathLenConstraint member is used""" + pass + + + @property + def PathLenConstraint(self)->'typing.Any': + """Limits number of intermediate CA's between root CA and end user""" + pass + + + @property + def SubtreesConstraint(self)->'typing.Any': + """Sequence of encoded name blobs""" + pass + + +class PyCERT_CONTEXT(object): + """Handle to a certificate context""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HANDLE(self)->'typing.Any': + """Pointer to CERT_CONTEXT struct""" + pass + + + @property + def CertStore(self)->'PyCERTSTORE': + """Handle to the certificate store that contains this certificate""" + pass + + + @property + def CertEncoded(self)->'typing.Any': + """Content of the certificate as encoded bytes""" + pass + + + @property + def CertEncodingType(self)->'typing.Any': + """Method used to encode the certifcate, usually X509_ASN_ENCODING or PKCS_7_ASN_ENCODING""" + pass + + + @property + def Version(self)->'typing.Any': + """One of the CERT_V* values""" + pass + + + @property + def Subject(self)->'str': + """Encoded CERT_NAME_INFO struct containing the subject name. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_UNICODE_NAME, or formatted using cryptoapi::CertNameToStr""" + pass + + + @property + def Issuer(self)->'str': + """Certificate Authority that issued certificate as encoded CERT_NAME_INFO. Use cryptoapi::CryptDecodeObjectEx to decode into individual components, or cryptoapi::CertNameToStr to return a single formatted string""" + pass + + + @property + def NotBefore(self)->'PyTime': + """Beginning of certificate's period of validity""" + pass + + + @property + def NotAfter(self)->'PyTime': + """End of certificate's period of validity""" + pass + + + @property + def SignatureAlgorithm(self)->'typing.Any': + """Object id of the certifcate's signature algorithm""" + pass + + + @property + def Extension(self)->'typing.Tuple[PyCERT_EXTENSION, ...]': + """Sequence of CERT_EXTENSION dicts containing certificate's extensions""" + pass + + + @property + def SubjectPublicKeyInfo(self)->'PyCERT_PUBLIC_KEY_INFO': + """Encoded public key of certificate""" + pass + + + @property + def SerialNumber(self)->'typing.Any': + """Serial number assigned by the issuer""" + pass + + + def CertFreeCertificateContext(self,) -> 'None': + """ + Frees the certificate context + +Args: + + + +Returns: + + None + + """ + pass + + + def CertEnumCertificateContextProperties(self,) -> 'typing.List[typing.Any]': + """ + Lists property ids for the certificate + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def CryptAcquireCertificatePrivateKey(self,Flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PyCRYPTPROV]': + """ + Retrieves the private key associated + +with the certificate + +Args: + + Flags(typing.Any):Combination of CRYPT_ACQUIRE_*_FLAG constantsCommentsOnly the owner of the certificate can use this methodReturn ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key + +Returns: + + typing.Tuple[typing.Any, PyCRYPTPROV]:Combination of CRYPT_ACQUIRE_*_FLAG constants +Comments + +Only the owner of the certificate can use this method +Return ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key + + + """ + pass + + + def CertGetIntendedKeyUsage(self,) -> 'typing.Any': + """ + Returns the intended key usage from the certificate extensions + +(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) + +Args: + + + +Returns: + + typing.Any:PyCERT_CONTEXT.CertGetIntendedKeyUsage + +int = CertGetIntendedKeyUsage()Returns the intended key usage from the certificate extensions + +(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) +Return ValueReturns a combination of CERT_*_KEY_USAGE values + + + """ + pass + + + def CertGetEnhancedKeyUsage(self,Flags:'typing.Any'=0) -> 'typing.Any': + """ + Finds the enhanced key usage property and/or extension for the + +certificate + +Args: + + Flags(typing.Any):CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0Return ValueReturns a sequence of usage OIDs + +Returns: + + typing.Any:CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, + +CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0 +Return ValueReturns a sequence of usage OIDs + + + """ + pass + + + def CertSerializeCertificateStoreElement(self,Flags:'typing.Any'=0) -> 'str': + """ + Serializes the certificate and its properties + +Args: + + Flags(typing.Any):Reserved, use only 0 if passed in + +Returns: + + str + + """ + pass + + + def CertVerifySubjectCertificateContext(self,Issuer:'PyCERT_CONTEXT',Flags:'typing.Any') -> 'typing.Any': + """ + Checks the validity of the certificate + +Args: + + Issuer(PyCERT_CONTEXT):Certificate of authority that issued the certificate + Flags(typing.Any):Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. + +Returns: + + typing.Any:Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and + +CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. + + + """ + pass + + + def CertDeleteCertificateFromStore(self,) -> 'None': + """ + Removes the certificate from its store + +Args: + + + +Returns: + + None + + """ + pass + + + def CertGetCertificateContextProperty(self,PropId:'typing.Any') -> 'typing.Any': + """ + Retrieves the specified property from the + +certificate + +Args: + + PropId(typing.Any):One of the CERT_*_PROP_ID constantsPropIdReturned valueCERT_ARCHIVED_PROP_IDBooleanCERT_DATE_STAMP_PROP_IDPyTimeCERT_ACCESS_STATE_PROP_IDintCERT_KEY_SPEC_PROP_IDintCERT_DESCRIPTION_PROP_IDUnicodeCERT_FRIENDLY_NAME_PROP_IDUnicodeCERT_PVK_FILE_PROP_IDUnicodeCERT_AUTO_ENROLL_PROP_IDUnicodeCERT_HASH_PROP_IDString containing a hashCERT_SHA1_HASH_PROP_IDString containing a hashCERT_MD5_HASH_PROP_IDString containing a hashCERT_SIGNATURE_HASH_PROP_IDString containing a hashCERT_KEY_IDENTIFIER_PROP_IDString containing a hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hashCERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROVCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and CERT_ENHKEY_USAGE are identical)CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_ENHANCED_KEY_USAGECERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dictCERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT structCERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx with szOID_NEXT_UPDATE_LOCATIONReturn ValueType of object returned is dependent on the property id requested. + +Returns: + + typing.Any:One of the CERT_*_PROP_ID constants + + +PropId + + +Returned value + + + +CERT_ARCHIVED_PROP_IDBoolean +CERT_DATE_STAMP_PROP_IDPyTime +CERT_ACCESS_STATE_PROP_IDint +CERT_KEY_SPEC_PROP_IDint +CERT_DESCRIPTION_PROP_IDUnicode +CERT_FRIENDLY_NAME_PROP_IDUnicode +CERT_PVK_FILE_PROP_IDUnicode +CERT_AUTO_ENROLL_PROP_IDUnicode +CERT_HASH_PROP_IDString containing a hash +CERT_SHA1_HASH_PROP_IDString containing a hash +CERT_MD5_HASH_PROP_IDString containing a hash +CERT_SIGNATURE_HASH_PROP_IDString containing a hash +CERT_KEY_IDENTIFIER_PROP_IDString containing a hash +CERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hash +CERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROV +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString + +containing a hash +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString + +containing a hash +CERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and + +CERT_ENHKEY_USAGE are identical) +CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx + + + + + +with X509_ENHANCED_KEY_USAGE +CERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dict +CERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT struct +CERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx + + + + with szOID_NEXT_UPDATE_LOCATION +Return ValueType of object returned is dependent on the property id requested. + + + """ + pass + + + def CertSetCertificateContextProperty(self,PropId:'typing.Any',Data:'typing.Any',Flags:'typing.Any'=0) -> 'None': + """ + Sets a property for a certificate + +Args: + + PropId(typing.Any):Id of property to be set, CERT_*_PROP_ID + Data(typing.Any):The value to be set for the property. Type is dependent on PropId. Use None to delete a property. + Flags(typing.Any):Combination of CERT_SET_* flagsPropIdType of inputCERT_ARCHIVED_PROP_IDNone causes Archived flag to be cleared, any other causes it to be set no actual data, non-NULL pvData indicates presence of flagCERT_DATE_STAMP_PROP_IDPyTime specifying when cert was added to storeCERT_DESCRIPTION_PROP_IDUnicode stringCERT_FRIENDLY_NAME_PROP_IDUnicode stringCERT_PVK_FILE_PROP_IDUnicode stringCERT_AUTO_ENROLL_PROP_IDUnicode stringCERT_KEY_SPEC_PROP_IDInt, usually AT_KEYEXCHANGE or AT_SIGNATURECERT_HASH_PROP_IDString containing the hashCERT_SHA1_HASH_PROP_IDString containing the hashCERT_MD5_HASH_PROP_IDString containingg the hashCERT_SIGNATURE_HASH_PROP_IDString containing the hashCERT_KEY_IDENTIFIER_PROP_IDString containing the key idCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing the hashCERT_RENEWAL_PROP_IDString containing the hashCERT_ENHKEY_USAGE_PROP_IDString containing an encoded PyCTL_USAGE. Use cryptoapi::CryptEncodeObjectEx with X509_ENHANCED_KEY_USAGE.CERT_CTL_USAGE_PROP_IDSame as CERT_ENHKEY_USAGE_PROP_ID + +Returns: + + None + + """ + pass + + +class PyCERT_EXTENSION(object): + """Dict containing a certificate extension""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'typing.Any': + """The OID identifying the type of extension""" + pass + + + @property + def Critical(self)->'typing.Any': + """If true, any contraints or limits contained in the extension should be considered absolute""" + pass + + + @property + def Value(self)->'typing.Any': + """Binary string containing ASN encoded data. To interpret or display extension data, see cryptoapi::CryptDecodeObjectEx and cryptoapi::CryptFormatObject.""" + pass + + +class PyCERT_KEY_ATTRIBUTES_INFO(object): + """Dict representing a CERT_KEY_ATTRIBUTES_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def KeyId(self)->'typing.Any': + """Usually a hash that uniquely identifies the key""" + pass + + + @property + def IntendedKeyUsage(self)->'PyCRYPT_BIT_BLOB': + """Contains a byte with CERT_*_KEY_USAGE flags""" + pass + + + @property + def PrivateKeyUsagePeriod(self)->'typing.Any': + """Private key's begin and end effective dates, may be None""" + pass + + +class PyCERT_NAME_INFO(object): + """Sequence of CERT_RDN's""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_NAME_VALUE(object): + """Dict containing type (CERT_RDN_*) and a unicode string""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_OTHER_NAME(object): + """Dict containing {ObjId, Value}. + +ObjId is one of the string object id's identifying the type of name. + +Value is a binary string containing an encoded CERT_NAME_VALUE that can be decoded + +using X509_UNICODE_NAME_VALUE to return the actual unicode string""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCERT_POLICY_INFO(object): + """Dict containing a certificate policy""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def PolicyIdentifier(self)->'typing.Any': + """OID identifying the policy""" + pass + + + @property + def PolicyQualifier(self)->'typing.Any': + """Sequence of CERT_POLICY_QUALIFIER dicts""" + pass + + +class PyCERT_PUBLIC_KEY_INFO(object): + """Dict containing an exported public key""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Algorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Dict containing OID of the public key algorithm""" + pass + + + @property + def PublicKey(self)->'PyCRYPT_BIT_BLOB': + """Dict containing the encoded public key""" + pass + + +class PyCOMSTAT(object): + """A Python object, representing an COMSTAT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def cbInQue(self)->'int': + """Specifies the number of bytes received by the serial provider but not yet read by a win32file::ReadFile operation""" + pass + + + @property + def cbOutQue(self)->'int': + """Specifies the number of bytes of user data remaining to be transmitted for all write operations. This value will be zero for a nonoverlapped write.""" + pass + + + @property + def fCtsHold(self)->'int': + """Specifies whether transmission is waiting for the CTS (clear-to-send) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fDsrHold(self)->'int': + """Specifies whether transmission is waiting for the DSR (data-set-ready) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fRlsdHold(self)->'int': + """Specifies whether transmission is waiting for the RLSD (receive-line-signal-detect) signal to be sent. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fXoffHold(self)->'int': + """Specifies whether transmission is waiting because the XOFF character was received. If this member is TRUE, transmission is waiting.""" + pass + + + @property + def fXoffSent(self)->'int': + """Specifies whether transmission is waiting because the XOFF character was transmitted. If this member is TRUE, transmission is waiting. Transmission halts when the XOFF character is transmitted to a system that takes the next character as XON, regardless of the actual character.""" + pass + + + @property + def fEof(self)->'int': + """Specifies whether the end-of-file (EOF) character has been received. If this member is TRUE, the EOF character has been received.""" + pass + + + @property + def fTxim(self)->'int': + """If this member is TRUE, there is a character queued for transmission that has come to the communications device by way of the TransmitCommChar function. The communications device transmits such a character ahead of other characters in the device's output buffer.""" + pass + + + @property + def fReserved(self)->'int': + """Reserved; do not use.""" + pass + + +class PyCOORD(object): + """Wrapper for a COORD struct. Create using PyCOORDType(X,Y)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def X(self)->'typing.Any': + """Horizontal coordinate""" + pass + + + @property + def Y(self)->'typing.Any': + """Vertical coordinate""" + pass + + +class PyCREDENTIAL(object): + """A dictionary containing information for a CREDENTIAL struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'typing.Any': + """Combination of CRED_FLAGS_PROMPT_NOW, CRED_FLAGS_USERNAME_TARGET""" + pass + + + @property + def Type(self)->'typing.Any': + """Type of credential, one of CRED_TYPE_* values""" + pass + + + @property + def TargetName(self)->'str': + """Target of credential, can end with * for wildcard matching""" + pass + + + @property + def Comment(self)->'str': + """Descriptive text""" + pass + + + @property + def LastWritten(self)->'PyTime': + """Modification time, ignored on input""" + pass + + + @property + def CredentialBlob(self)->'str': + """Contains password for username credential, or PIN for certificate credential. This member is write-only.""" + pass + + + @property + def Persist(self)->'typing.Any': + """Specifies scope of persistence, one of CRED_PERSIST_* values""" + pass + + + @property + def Attributes(self)->'typing.Any': + """Tuple of PyCREDENTIAL_ATTRIBUTE dicts containing application-specific data, can be None""" + pass + + + @property + def TargetAlias(self)->'str': + """Alias for TargetName, only valid with CRED_TYPE_GENERIC""" + pass + + + @property + def UserName(self)->'str': + """User to be authenticated by target. Can be of the form username@domain or domain\\username. For CRED_TYPE_DOMAIN_CERTIFICATE, use win32cred::CredMarshalCredential to marshal the SHA1 hash of user's certficate""" + pass + + +class PyCREDENTIAL_ATTRIBUTE(object): + """A dictionary containing information for a CREDENTIAL_ATTRIBUTE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Keyword(self)->'str': + """Attribute name, at most CRED_MAX_STRING_LENGTH chars""" + pass + + + @property + def Flags(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Value(self)->'typing.Any': + """Attribute value, at most CRED_MAX_VALUE_SIZE bytes. Unicode objects are treated as raw bytes.""" + pass + + +class PyCREDENTIAL_TARGET_INFORMATION(object): + """A dictionary representing a CREDENTIAL_TARGET_INFORMATION struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def TargetName(self)->'str': + """Target of credentials""" + pass + + + @property + def NetbiosServerName(self)->'str': + """""" + pass + + + @property + def DnsServerName(self)->'str': + """""" + pass + + + @property + def NetbiosDomainName(self)->'str': + """""" + pass + + + @property + def DnsDomainName(self)->'str': + """""" + pass + + + @property + def DnsTreeName(self)->'str': + """""" + pass + + + @property + def PackageName(self)->'str': + """Name of security package which mapped TargetName""" + pass + + + @property + def Flags(self)->'typing.Any': + """CRED_TI_* flags""" + pass + + + @property + def CredTypes(self)->'typing.Tuple[typing.Any, ...]': + """Tuple of CRED_TYPE_* values indicating which types of credentials are acceptable to target""" + pass + + +class PyCREDUI_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Parent(self)->'int': + """Handle to parent window, can be None""" + pass + + + @property + def MessageText(self)->'str': + """Message to appear in dialog""" + pass + + + @property + def CaptionText(self)->'str': + """Title of the dialog window""" + pass + + + @property + def Banner(self)->'int': + """Handle to a bitmap to be displayed""" + pass + + +class PyCRYPTHASH(object): + """Handle to a cryptographic hash""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CryptDestroyHash(self,) -> 'None': + """ + Frees the hash object + +Args: + + + +Returns: + + None + + """ + pass + + + def CryptDuplicateHash(self,Flags:'typing.Any'=0) -> 'PyCRYPTHASH': + """ + Clones the hash object + +Args: + + Flags(typing.Any):Reserved, use 0 if passed + +Returns: + + PyCRYPTHASH + + """ + pass + + + def CryptHashData(self,Data:'str',Flags:'typing.Any'=0) -> 'None': + """ + Adds data to the hash + +Args: + + Data(str):Data to be hashed + Flags(typing.Any):CRYPT_USERDATA or 0CommentsIf Flags is CRYPT_USERDATA, provider is expected to prompt user to enter data. MSDN says that MS CSPs ignore this flag + +Returns: + + None + + """ + pass + + + def CryptHashSessionKey(self,Key:'PyCRYPTKEY',Flags:'typing.Any'=0) -> 'None': + """ + Hashes a session key + +Args: + + Key(PyCRYPTKEY):The session key to be hashed + Flags(typing.Any):CRYPT_LITTLE_ENDIAN or 0 + +Returns: + + None + + """ + pass + + + def CryptSignHash(self,KeySpec:'typing.Any',Flags:'typing.Any'=0) -> 'str': + """ + Signs the hash + +Args: + + KeySpec(typing.Any):The key to be used to sign the hash, AT_KEYEXCHANGE,AT_SIGNATURE + Flags(typing.Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0CommentsThis methods signs only the hash, not the data that the hash represents + +Returns: + + str + + """ + pass + + + def CryptVerifySignature(self,Signature:'str',PubKey:'PyCRYPTKEY',Flags:'typing.Any'=0) -> 'None': + """ + Verifies that a signature matches hashed data + +Args: + + Signature(str):Signature data to verify + PubKey(PyCRYPTKEY):Public key of signer + Flags(typing.Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0 + +Returns: + + None + + """ + pass + + + def CryptGetHashParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Union[typing.Any]': + """ + Retrieves the specified attribute of the hash + +Args: + + Param(typing.Any):The parameter to retrieve: HP_ALGID, HP_HASHSIZE, or HP_HASHVAL + Flags(typing.Any):Reserved, use 0 if passed inCommentsAfter this method has been called, no more data can be hashedReturn ValueType of returned object is dependent on the Param passed in + +Returns: + + typing.Union[typing.Any]:Reserved, use 0 if passed in +Comments + +After this method has been called, no more data can be hashed +Return ValueType of returned object is dependent on the Param passed in + + + """ + pass + + +class PyCRYPTKEY(object): + """Handle to a cryptographic key""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCRYPTPROV(self)->'typing.Any': + """CSP used by the key""" + pass + + + @property + def HCRYPTKEY(self)->'typing.Any': + """Plain integer handle to the key""" + pass + + + def CryptDestroyKey(self,) -> 'None': + """ + Releases the handle to the key (does not delete permanent keys) + +Args: + + + +Returns: + + None + + """ + pass + + + def CryptExportKey(self,ExpKey:'PyCRYPTKEY',BlobType:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Any': + """ + Exports key or key pair as an encrypted blob + +Args: + + ExpKey(PyCRYPTKEY):Public key or session key of destination user. Use None if exporting a PUBLICKEYBLOB + BlobType(typing.Any):One of OPAQUEKEYBLOB,PRIVATEKEYBLOB,PUBLICKEYBLOB,SIMPLEBLOB,PLAINTEXTKEYBLOB,SYMMETRICWRAPKEYBLOB + Flags(typing.Any):Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey + +Returns: + + typing.Any:Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0 +Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey + + + """ + pass + + + def CryptGetKeyParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Any': + """ + Retrieves key parameters + +Args: + + Param(typing.Any):One of the KP_* constants + Flags(typing.Any):Reserved, use only 0Return ValueType of returned object is dependent on the requested attribute + +Returns: + + typing.Any:Reserved, use only 0 +Return ValueType of returned object is dependent on the requested attribute + + + """ + pass + + + def CryptDuplicateKey(self,Reserved:'typing.Any'=0,Flags:'typing.Any'=0) -> 'PyCRYPTKEY': + """ + Creates an independent copy of the key + +Args: + + Reserved(typing.Any):Use 0 if passed in + Flags(typing.Any):Also reserved, use 0 + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptEncrypt(self,Final:'typing.Any',Data:'typing.Any',Hash:'PyCRYPTHASH'=None,Flags:'typing.Any'=0) -> 'typing.Any': + """ + Encrypts and optionally hashes data + +Args: + + Final(typing.Any):Boolean, use True if this is final encryption operation + Data(typing.Any):Data to be encrypted + Hash(PyCRYPTHASH):Hash to be updated with data passed in, can be None + Flags(typing.Any):Reserved, use 0 if passed in + +Returns: + + typing.Any + + """ + pass + + + def CryptDecrypt(self,Final:'typing.Any',Data:'typing.Any',Hash:'PyCRYPTHASH'=None,Flags:'typing.Any'=0) -> 'typing.Any': + """ + Decrypts data + +Args: + + Final(typing.Any):Boolean, use True is this is last (or only) operation + Data(typing.Any):Data to be decrypted + Hash(PyCRYPTHASH):Hash to be used in signature verification, can be None + Flags(typing.Any):Reserved, use only 0 + +Returns: + + typing.Any + + """ + pass + + +class PyCRYPTMSG(object): + """Wrapper for a cryptographic message handle""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCRYPTMSG(self)->'typing.Any': + """Raw message handle""" + pass + + + def CryptMsgClose(self,) -> 'None': + """ + Closes the message handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCRYPTPROTECT_PROMPTSTRUCT(object): + """A tuple representing a CRYPTPROTECT_PROMPTSTRUCT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRYPTPROV(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CryptReleaseContext(self,Flags:'typing.Any'=0) -> 'None': + """ + Releases the CSP handle + +Args: + + Flags(typing.Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def CryptGenKey(self,Algid:'typing.Any',Flags:'typing.Any',KeyLen:'typing.Any'=0) -> 'PyCRYPTKEY': + """ + Generates a key pair or a session key + +Args: + + Algid(typing.Any):Algorithm identifier, one of the CALG_* values, or AT_KEYEXCHANGE/AT_SIGNATURE + Flags(typing.Any):Combination of CRYPT_CREATE_SALT,CRYPT_EXPORTABLE,CRYPT_NO_SALT,CRYPT_PREGEN,CRYPT_USER_PROTECTED,CRYPT_ARCHIVABLE + KeyLen(typing.Any):Length of key to generate, can be 0 to use provider's default key lengthCommentsDiffers from Api call in that the length is passed in separately + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptGetProvParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'None': + """ + Retrieves specified attribute of provider + +Args: + + Param(typing.Any):One of the PP_* values + Flags(typing.Any):If param if PP_KEYSET_SEC_DESCR, can be a combination of OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATIONReturn ValueType of returned object is dependent on the attribute requested + +Returns: + + None:If param if PP_KEYSET_SEC_DESCR, can be a combination of + +OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATION +Return ValueType of returned object is dependent on the attribute requested + + + """ + pass + + + def CryptGetUserKey(self,KeySpec:'typing.Any') -> 'PyCRYPTKEY': + """ + Returns a handle to one of user's key pairs + +Args: + + KeySpec(typing.Any):AT_KEYEXCHANGE or AT_SIGNATURE (some providers may implement extra key specs) + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptGenRandom(self,Len:'typing.Any',SeedData:'str'=None) -> 'str': + """ + Generates random data of specified length + +Args: + + Len(typing.Any):Number of bytes to generate + SeedData(str):Random seed data + +Returns: + + str + + """ + pass + + + def CryptCreateHash(self,Algid:'typing.Any',Key:'PyCRYPTKEY'=None,Flags:'typing.Any'=0) -> 'PyCRYPTHASH': + """ + Creates a hash object for hashing large amounts of data + +Args: + + Algid(typing.Any):An algorithm identifier, CALG_*. + Key(PyCRYPTKEY):Used only for keyed hashes (MAC or HMAC), use None otherwise + Flags(typing.Any):Reserved, use 0 if passed in + +Returns: + + PyCRYPTHASH + + """ + pass + + + def CryptImportKey(self,Data:'typing.Any',PubKey:'PyCRYPTKEY'=None,Flags:'typing.Any'=0) -> 'PyCRYPTKEY': + """ + None + +Args: + + Data(typing.Any):The key blob to be imported + PubKey(PyCRYPTKEY):Key to be used to decrypt the blob, not used for importing public keys + Flags(typing.Any):Combination of CRYPT_EXPORTABLE, CRYPT_OAEP, CRYPT_NO_SALT, CRYPT_USER_PROTECTED + +Returns: + + PyCRYPTKEY + + """ + pass + + + def CryptExportPublicKeyInfo(self,KeySpec:'typing.Any',CertEncodingType:'typing.Any') -> 'PyCERT_PUBLIC_KEY_INFO': + """ + Exports a public key to send to other users + +Returned dict can be serialized for sending to another python application using pickle.dump + +Args: + + KeySpec(typing.Any):AT_KEYEXCHANGE or AT_SIGNATURE + CertEncodingType(typing.Any):Specifies encoding for exported key info + +Returns: + + PyCERT_PUBLIC_KEY_INFO + + """ + pass + + + def CryptImportPublicKeyInfo(self,Info:'typing.Any',CertEncodingType:'typing.Any') -> 'PyCRYPTKEY': + """ + Imports another user's public key + +Args: + + Info(typing.Any):PyCERT_PUBLIC_KEY_INFO dictionary as returned by PyCRYPTPROV::CryptExportPublicKeyInfo + CertEncodingType(typing.Any):Specifies encoding for exported key info + +Returns: + + PyCRYPTKEY + + """ + pass + + +class PyCRYPT_ALGORITHM_IDENTIFIER(object): + """Dictionary containing information that identifies an encryption + +algorithm and any extra parameters it requires""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'typing.Any': + """An szOID_* string identifying the algorithm""" + pass + + + @property + def Parameters(self)->'typing.Any': + """Blob of binary data containing encoded parameters""" + pass + + +class PyCRYPT_ATTRIBUTE(object): + """Dict representing a CRYPT_ATTRIBUTE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjId(self)->'typing.Any': + """An szOID_* string identifying the attribute""" + pass + + + @property + def Value(self)->'typing.Tuple[typing.Any, ...]': + """A sequence of buffers containing the attribute values""" + pass + + +class PyCRYPT_BIT_BLOB(object): + """Dict containing raw data of a certain bit length""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Data(self)->'typing.Any': + """Binary data""" + pass + + + @property + def UnusedBits(self)->'typing.Any': + """Nbr of bits of last byte that are unused""" + pass + + +class PyCRYPT_DECRYPT_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def CertStores(self)->'typing.Tuple[typing.Any, ...]': + """Sequence of certificate stores to be searched for a certificate with a private key that can be used to decrypt the message""" + pass + + + @property + def MsgAndCertEncodingType(self)->'typing.Any': + """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + + @property + def Flags(self)->'typing.Any': + """Optional. CRYPT_MESSAGE_SILENT_KEYSET_FLAG can be used to suppress any dialogs that might be triggered by accessing a key container, such as a request for a PIN.""" + pass + + +class PyCRYPT_ENCRYPT_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ContentEncryptionAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Identifies the algorithm to be used""" + pass + + + @property + def CryptProv(self)->'PyCRYPTPROV': + """Optional. Handle to provider that will perform encryption, can be None for default provider""" + pass + + + @property + def EncryptionAuxInfo(self)->'typing.Any': + """Optional. Extra info required by some CSP's. Not supported yet, use only None""" + pass + + + @property + def Flags(self)->'typing.Any': + """Optional. Combination of CRYPT_MESSAGE_*_FLAG constants""" + pass + + + @property + def InnerContentType(self)->'typing.Any': + """Optional. Only used if message to be encrypted is already encoded""" + pass + + + @property + def MsgEncodingType(self)->'typing.Any': + """Optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + +class PyCRYPT_SIGN_MESSAGE_PARA(object): + """Dict of parms defining how a message will be signed""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SigningCert(self)->'PyCERT_CONTEXT': + """Certficate to be used to sign message""" + pass + + + @property + def HashAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': + """Algorithm to be used for signed hash""" + pass + + + @property + def HashAuxInfo(self)->'typing.Any': + """Optional. Param is reserved, use only None.""" + pass + + + @property + def MsgCert(self)->'typing.Tuple[PyCERT_CONTEXT, ...]': + """Optional sequence of certificate to be included in the message.""" + pass + + + @property + def MsgCrl(self)->'typing.Tuple[typing.Any, ...]': + """Optional. Sequence of certificate revocation lists. Not yet supported, use only None.""" + pass + + + @property + def AuthAttr(self)->'typing.Tuple[PyCRYPT_ATTRIBUTE, ...]': + """Sequence of canonical attributes to be added to the message""" + pass + + + @property + def UnauthAttr(self)->'typing.Tuple[PyCRYPT_ATTRIBUTE, ...]': + """Sequence of arbitrary attributes""" + pass + + + @property + def Flags(self)->'typing.Any': + """Optional CRYPT_MESSAGE_*_FLAG that indicates content type if output is to be further encoded.""" + pass + + + @property + def InnerContentType(self)->'typing.Any': + """Optional, one of the CMSG_* content types if message is already encoded, .""" + pass + + + @property + def MsgEncodingType(self)->'typing.Any': + """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + +class PyCRYPT_VERIFY_MESSAGE_PARA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def MsgAndCertEncodingType(self)->'typing.Any': + """Encoding types, defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" + pass + + + @property + def CryptProv(self)->'PyCRYPTPROV': + """CSP to be used to verify signature. Use None for default provider.""" + pass + + + @property + def PyGetSignerCertificate(self)->'typing.Any': + """Callback function that locates signer's certificate.""" + pass + + + @property + def GetArg(self)->'typing.Any': + """Argument to be passed to above function, can be any object.""" + pass + + +class PyCTL_CONTEXT(object): + """Object containing a Certificate Trust List""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def HCTL_CONTEXT(self)->'typing.Any': + """Raw message handle""" + pass + + + def CertFreeCTLContext(self,) -> 'None': + """ + Closes the CTL handle + +Args: + + + +Returns: + + None + + """ + pass + + + def CertEnumCTLContextProperties(self,) -> 'typing.Tuple[typing.Any, ...]': + """ + Lists property id's for the context + +Args: + + + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + + def CertEnumSubjectInSortedCTL(self,) -> 'typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]': + """ + Retrieves trusted subjects contained in CRL + +Args: + + + +Returns: + + typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]:PyCTL_CONTEXT.CertEnumSubjectInSortedCTL + +((str,str),...) = CertEnumSubjectInSortedCTL()Retrieves trusted subjects contained in CRL +Return ValueReturns a sequence of tuples containing two strings (SubjectIdentifier, EncodedAttributes) + + + """ + pass + + + def CertDeleteCTLFromStore(self,) -> 'None': + """ + Removes the CTL from the store that it is contained in + +Args: + + + +Returns: + + None + + """ + pass + + + def CertSerializeCTLStoreElement(self,Flags:'typing.Any'=0) -> 'str': + """ + Serializes the CTL and its properties + +Args: + + Flags(typing.Any):Reserved, use only 0 if passed in + +Returns: + + str + + """ + pass + + +class PyCTL_USAGE(object): + """Sequence of string OIDs (szOID_*). This struct is identical to CERT_ENHKEY_USAGE.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyConsoleScreenBuffer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetConsoleActiveScreenBuffer(self,) -> 'None': + """ + Sets this handle as the currently displayed screen + +buffer + +Args: + + + +Returns: + + None + + """ + pass + + + def GetConsoleCursorInfo(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves size and visibility of console's + +cursor + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:PyConsoleScreenBuffer.GetConsoleCursorInfo + +(Size, bVisible) = GetConsoleCursorInfo()Retrieves size and visibility of console's + +cursor +Return ValueReturns the size of the console's cursor expressed as a percentage of character size, and a boolen indicating + +if cursor is visible + + + """ + pass + + + def SetConsoleCursorInfo(self,Size:'typing.Any',Visible:'typing.Any') -> 'None': + """ + Sets the size and visibility of console's cursor + +Args: + + Size(typing.Any):Percentage of character size that cursor will occupy + Visible(typing.Any):Determines if cursor is visible + +Returns: + + None + + """ + pass + + + def GetConsoleMode(self,) -> 'typing.Any': + """ + Returns the input or output mode of the console buffer + +Args: + + + +Returns: + + typing.Any:PyConsoleScreenBuffer.GetConsoleMode + +int = GetConsoleMode()Returns the input or output mode of the console buffer +Return ValueReturns a combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants + + + """ + pass + + + def SetConsoleMode(self,Mode:'typing.Any') -> 'None': + """ + Sets the input or output mode of the console buffer + +Args: + + Mode(typing.Any):Combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants + +Returns: + + None + + """ + pass + + + def ReadConsole(self,NumberOfCharsToRead:'typing.Any') -> 'typing.Any': + """ + Reads characters from the console input buffer + +Args: + + NumberOfCharsToRead(typing.Any):Characters to read + +Returns: + + typing.Any + + """ + pass + + + def WriteConsole(self,Buffer:'typing.Any') -> 'typing.Any': + """ + Writes characters at current cursor position + +Args: + + Buffer(typing.Any):String or Unicode to be written to consoleReturn ValueReturns the number of characters written + +Returns: + + typing.Any:String or Unicode to be written to consoleReturn ValueReturns the number of characters written + + + """ + pass + + + def FlushConsoleInputBuffer(self,) -> 'None': + """ + Flush input buffer + +Args: + + + +Returns: + + None + + """ + pass + + + def SetConsoleTextAttribute(self,Attributes:'typing.Any') -> 'None': + """ + Sets character attributes for subsequent write operations + +Args: + + Attributes(typing.Any):Attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants + +Returns: + + None + + """ + pass + + + def SetConsoleCursorPosition(self,CursorPosition:'PyCOORD') -> 'None': + """ + Sets the console screen buffer's cursor position + +Args: + + CursorPosition(PyCOORD):A PyCOORD containing the new cursor position + +Returns: + + None + + """ + pass + + + def SetConsoleScreenBufferSize(self,Size:'PyCOORD') -> 'None': + """ + Sets the size of the console screen buffer + +Args: + + Size(PyCOORD):COORD object containing the new dimensions + +Returns: + + None + + """ + pass + + + def SetConsoleWindowInfo(self,Absolute:'typing.Any',ConsoleWindow:'PySMALL_RECT') -> 'None': + """ + Changes size and position of a console's window + +Args: + + Absolute(typing.Any):If False, coordinates are relative to current position + ConsoleWindow(PySMALL_RECT):A SMALL_RECT containing the new window coordinates + +Returns: + + None + + """ + pass + + + def GetConsoleScreenBufferInfo(self,) -> 'typing.Any': + """ + Returns the state of the screen buffer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetLargestConsoleWindowSize(self,) -> 'PyCOORD': + """ + Returns the largest possible size for the + +console's window + +Args: + + + +Returns: + + PyCOORD + + """ + pass + + + def FillConsoleOutputAttribute(self,Attribute:'typing.Any',Length:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': + """ + Set text attributes for a consecutive series of + +characters + +Args: + + Attribute(typing.Any):Text attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants + Length(typing.Any):The number of characters to set + WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set + +Returns: + + typing.Any:The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set + + + """ + pass + + + def FillConsoleOutputCharacter(self,Character:'typing.Any',Length:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': + """ + Sets consecutive character positions to a specified + +character + +Args: + + Character(typing.Any):A single character to be used to fill the specified range + Length(typing.Any):The number of characters positions to fill + WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of characters actually written + +Returns: + + typing.Any:The screen position to begin atReturn ValueReturns the number of characters actually written + + + """ + pass + + + def ReadConsoleOutputCharacter(self,Length:'typing.Any',ReadCoord:'PyCOORD') -> 'str': + """ + Reads consecutive characters from a starting + +position + +Args: + + Length(typing.Any):The number of characters positions to read + ReadCoord(PyCOORD):The screen position start reading from + +Returns: + + str + + """ + pass + + + def ReadConsoleOutputAttribute(self,Length:'typing.Any',ReadCoord:'PyCOORD') -> 'typing.Tuple[typing.Any, ...]': + """ + Retrieves attributes from consecutive character + +cells + +Args: + + Length(typing.Any):The number of attributes to read + ReadCoord(PyCOORD):The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters + +Returns: + + typing.Tuple[typing.Any, ...]:The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters + + + """ + pass + + + def WriteConsoleOutputCharacter(self,Characters:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': + """ + Writes a string of characters at a specified position + +Args: + + Characters(typing.Any):Characters to be written + WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of characters actually written + +Returns: + + typing.Any:The screen position at which to start writingReturn ValueReturns the number of characters actually written + + + """ + pass + + + def WriteConsoleOutputAttribute(self,Attributes:'typing.Tuple[typing.Any, ...]',WriteCoord:'PyCOORD') -> 'typing.Any': + """ + Sets the attributes of a range of character cells + +Args: + + Attributes(typing.Tuple[typing.Any, ...]):A sequence of ints containing the attributes to be set + WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of attributes set + +Returns: + + typing.Any:The screen position at which to start writingReturn ValueReturns the number of attributes set + + + """ + pass + + + def ScrollConsoleScreenBuffer(self,ScrollRectangle:'PySMALL_RECT',ClipRectangle:'PySMALL_RECT',DestinationOrigin:'PyCOORD',FillCharacter:'typing.Any',FillAttribute:'typing.Any') -> 'None': + """ + Scrolls a region of the display + +Args: + + ScrollRectangle(PySMALL_RECT):The region to be scrolled + ClipRectangle(PySMALL_RECT):Rectangle that limits display area affected, can be None + DestinationOrigin(PyCOORD):The position to which ScrollRectangle will be moved + FillCharacter(typing.Any):Character to fill in the area left blank by scrolling operation + FillAttribute(typing.Any):Text attributes to apply to FillCharacter + +Returns: + + None + + """ + pass + + + def GetCurrentConsoleFont(self,MaximumWindow:'typing.Any'=False) -> 'typing.Tuple[typing.Any, PyCOORD]': + """ + Returns currently displayed font + +Args: + + MaximumWindow(typing.Any):If True, retrieves font size for maximum window sizeCommentsOnly exists on XP or later. MSDN docs claim the returned COORD is the font size, but it's actually the window size. Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size.Return ValueReturns the index of current font and window size + +Returns: + + typing.Tuple[typing.Any, PyCOORD]:If True, retrieves font size for maximum window size +Comments + +Only exists on XP or later. + +MSDN docs claim the returned COORD is the font size, but it's actually the window size. + +Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size. +Return ValueReturns the index of current font and window size + + + """ + pass + + + def GetConsoleFontSize(self,Font:'typing.Any') -> 'PyCOORD': + """ + Returns size of specified font for the console + +Args: + + Font(typing.Any):Index of font as returned by GetCurrentConsoleFontCommentsOnly exists on XP or later. + +Returns: + + PyCOORD + + """ + pass + + + def SetConsoleFont(self,Font:'typing.Any') -> 'None': + """ + Changes the font used by the screen buffer + +Args: + + Font(typing.Any):The number of the font to be setCommentsFunction is not documented on MSDN + +Returns: + + None + + """ + pass + + + def SetStdHandle(self,StdHandle:'typing.Any') -> 'None': + """ + Replaces one of calling process's standard handles with this handle + +Args: + + StdHandle(typing.Any):Specifies handle to be replaced - STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE + +Returns: + + None + + """ + pass + + + def SetConsoleDisplayMode(self,Flags:'typing.Any',NewScreenBufferDimensions:'PyCOORD') -> 'None': + """ + Sets the display mode of the console buffer + +Args: + + Flags(typing.Any):CONSOLE_FULLSCREEN_MODE or CONSOLE_WINDOWED_MODE + NewScreenBufferDimensions(PyCOORD):New size of the screen buffer in characters + +Returns: + + None + + """ + pass + + + def WriteConsoleInput(self,Buffer:'typing.Tuple[PyINPUT_RECORD, ...]') -> 'typing.Any': + """ + Places input records in the console's input queue + +Args: + + Buffer(typing.Tuple[PyINPUT_RECORD, ...]):A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written + +Returns: + + typing.Any:A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written + + + """ + pass + + + def ReadConsoleInput(self,Length:'typing.Any') -> 'typing.Tuple[PyINPUT_RECORD, ...]': + """ + Reads input records and removes them from + +the input queue + +Args: + + Length(typing.Any):The number of input records to readCommentsThis functions blocks until at least one record is read. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects + +Returns: + + typing.Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments + +This functions blocks until at least one record is read. + +The number of records returned may be less than the nbr requested +Return ValueReturns a sequence of PyINPUT_RECORD objects + + + """ + pass + + + def PeekConsoleInput(self,Length:'typing.Any') -> 'typing.Tuple[PyINPUT_RECORD, ...]': + """ + Returns pending input records without + +removing them from the input queue + +Args: + + Length(typing.Any):The number of input records to readCommentsThis function does not block as ReadConsoleInput does. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects + +Returns: + + typing.Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments + +This function does not block as ReadConsoleInput does. + +The number of records returned may be less than the nbr requested +Return ValueReturns a sequence of PyINPUT_RECORD objects + + + """ + pass + + + def GetNumberOfConsoleInputEvents(self,) -> 'typing.Any': + """ + Returns the number of unread records in the input + +queue + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCredHandle(object): + """Handle to a set of logon credentials, used with sspi authentication functions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Detach(self,) -> 'typing.Any': + """ + Disassociates object from handle and returns integer value of handle, + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def FreeCredentialsHandle(self,) -> 'None': + """ + Releases the credentials handle and makes object unusable + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryCredentialsAttributes(self,Attribute:'typing.Any') -> 'None': + """ + Returns information about the credentials + +Args: + + Attribute(typing.Any):SECPKG_* constant specifying which type of information to returnCommentsOnly SECPKG_CRED_ATTR_NAMES currently supportedAttributeReturn typeSECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials representSECPKG_ATTR_SUPPORTED_ALGSNot supported yet SecPkgCred_SupportedAlgs:SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet SecPkgCred_CipherStrengths:SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet SecPkgCred_SupportedProtocols:Return ValueType of returned values is dependent on Attribute + +Returns: + + None:SECPKG_* constant specifying which type of information to returnComments + +Only SECPKG_CRED_ATTR_NAMES currently supported + + + +Attribute + + +Return type + + + +SECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials represent +SECPKG_ATTR_SUPPORTED_ALGSNot supported yet + +SecPkgCred_SupportedAlgs: +SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet + +SecPkgCred_CipherStrengths: +SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet + +SecPkgCred_SupportedProtocols: +Return ValueType of returned values is dependent on Attribute + + + """ + pass + + +class PyCtxtHandle(object): + """Security context handle, as used with sspi functions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Detach(self,) -> 'typing.Any': + """ + Disassociates object from handle and returns integer value of handle + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def CompleteAuthToken(self,Token:'PySecBufferDesc') -> 'None': + """ + Completes the authentication token + +Args: + + Token(PySecBufferDesc):The buffer that contains the token buffer used when the context was initializedCommentsThis method should be invoked on a context handle if the InitializeSecurityContext call that created it returned SEC_I_COMPLETE_NEEDED or SEC_I_COMPLETE_AND_CONTINUE + +Returns: + + None + + """ + pass + + + def QueryContextAttributes(self,Attribute:'typing.Any') -> 'None': + """ + Retrieves info about a security context + +Args: + + Attribute(typing.Any):SECPKG_ATTR_* constantCommentsNot all attributes are available for every security packageAttributeReturn typeSECPKG_ATTR_ACCESS_TOKENPyHANDLE - returns a handle to the context's access tokenSECPKG_ATTR_AUTHORITYPyUnicode - returns the name of the authenticating entitySECPKG_ATTR_CIPHER_STRENGTHS(int,int) - returns the mininum and maximum cipher strengths allowedSECPKG_ATTR_CONNECTION_INFOReturns a dictionary of connection info representing a SecPkgContext_ConnectionInfo structSECPKG_ATTR_SESSION_KEYstring - returns the session key for the contextSECPKG_ATTR_ISSUER_LIST_EX(int, string) - Returns names of trusted certificate issuersSECPKG_ATTR_FLAGSint - returns flags negotiated when context was establishedSECPKG_ATTR_PACKAGE_INFOdict - returns dictionary containing info for context's security packageSECPKG_ATTR_NEGOTIATION_INFO(int, dict) - returns state of negotiation (SECPKG_NEGOTIATION_COMPLETE, SECPKG_NEGOTIATION_OPTIMISTIC,SECPKG_NEGOTIATION_IN_PROGRESS) and info for negotiated packageSECPKG_ATTR_NAMESPyUnicode - returns the user name for the contextSECPKG_ATTR_SIZESdict containing buffer sizes to be used with the contextSECPKG_ATTR_PASSWORD_EXPIRYPyTime - returns time password expiresSECPKG_ATTR_LIFESPAN(PyTime,PyTime) - returns time period during which context is validSECPKG_ATTR_NATIVE_NAMES(PyUnicode,PyUnicode) - returns client and server namesSECPKG_ATTR_TARGET_INFORMATIONstring - returns the target for the contextSECPKG_ATTR_STREAM_SIZESdict (see SecPkgContext_StreamSizes) containing message buffer sizesSECPKG_ATTR_KEY_INFOdict (see SecPkgContext_KeyInfo) containing encryption key parametersSECPKG_ATTR_DCE_INFOnot supported yet SecPkgContext_DceInfoSECPKG_ATTR_LOCAL_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_REMOTE_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_ROOT_STOREnot supported yet HCERTCONTEXTSECPKG_ATTR_SUPPORTED_ALGSnot supported yet SecPkgCred_SupportedAlgsSECPKG_ATTR_SUPPORTED_PROTOCOLSnot supported yet SecPkgCred_SupportedProtocols + +Returns: + + None + + """ + pass + + + def DeleteSecurityContext(self,) -> 'None': + """ + Frees the security context and invalidates the handle + +Args: + + + +Returns: + + None + + """ + pass + + + def QuerySecurityContextToken(self,) -> 'typing.Any': + """ + Returns the access token for a security context + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def MakeSignature(self,fqop:'typing.Any',Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': + """ + Creates a crytographic hash of a message using session key of the security + +context + +Args: + + fqop(typing.Any):Flags that indicate quality of protection desired, specific to each security package + Message(PySecBufferDesc):Buffer set that includes buffers for input data and output signature + MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKENReturn ValueReturns None on success, and output buffer in Message will contain the signature + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one input buffer of + +type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKEN +Return ValueReturns None on success, and output buffer in Message will contain the signature + + + """ + pass + + + def VerifySignature(self,Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': + """ + None + +Args: + + Message(PySecBufferDesc):SecBufferDesc that contains data buffer and signature buffer + MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is a data buffer of type SECBUFFER_DATA and a signature buffer of type SECBUFFER_TOKENReturn ValueReturns quality of protection flags used to create signature + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is a data buffer of type + +SECBUFFER_DATA + +and a signature buffer of type SECBUFFER_TOKEN +Return ValueReturns quality of protection flags used to create signature + + + """ + pass + + + def EncryptMessage(self,fqop:'typing.Any',Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': + """ + Encrypts data with session key of security context + +Args: + + fqop(typing.Any):Flags that indicate quality of protection desired, specific to each security package + Message(PySecBufferDesc):PySecBufferDesc that contains data buffer(s) to be encrypted + MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or SECBUFFER_TOKEN to receive signature or padding dataReturn ValueReturns None on success, and buffer(s) will contain encrypted data + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one input buffer + +of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or + +SECBUFFER_TOKEN to receive signature or padding data +Return ValueReturns None on success, and buffer(s) will contain encrypted data + + + """ + pass + + + def DecryptMessage(self,Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': + """ + None + +Args: + + Message(PySecBufferDesc):PySecBufferDesc containing data buffers to be decrypted + MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one buffer of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit in first bufferReturn ValueReturns flags specfic to security package indicating quality of protection + +Returns: + + None:A sequential number used by some packages to verify that no extraneous messages have + +been receivedComments + +The buffer configuration is dependent on the security package. Usually there is one buffer + +of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or + +SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit + +in first buffer +Return ValueReturns flags specfic to security package indicating quality of protection + + + """ + pass + + + def ImpersonateSecurityContext(self,) -> 'None': + """ + Impersonates a client security context + +Args: + + + +Returns: + + None + + """ + pass + + + def RevertSecurityContext(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDCB(object): + """A Python object, representing an DCB structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def BaudRate(self)->'int': + """current baud rate""" + pass + + + @property + def wReserved(self)->'int': + """not currently used""" + pass + + + @property + def XonLim(self)->'int': + """transmit XON threshold""" + pass + + + @property + def XoffLim(self)->'int': + """transmit XOFF threshold""" + pass + + + @property + def ByteSize(self)->'int': + """number of bits/byte, 4-8""" + pass + + + @property + def Parity(self)->'int': + """0-4=no,odd,even,mark,space""" + pass + + + @property + def StopBits(self)->'int': + """0,1,2 = 1, 1.5, 2""" + pass + + + @property + def XonChar(self)->'str': + """Tx and Rx XON character""" + pass + + + @property + def XoffChar(self)->'str': + """Tx and Rx XOFF character""" + pass + + + @property + def ErrorChar(self)->'str': + """error replacement character""" + pass + + + @property + def EofChar(self)->'str': + """end of input character""" + pass + + + @property + def EvtChar(self)->'str': + """received event character""" + pass + + + @property + def wReserved1(self)->'int': + """reserved; do not use""" + pass + + + @property + def fBinary(self)->'int': + """binary mode, no EOF check""" + pass + + + @property + def fParity(self)->'int': + """enable parity checking""" + pass + + + @property + def fOutxCtsFlow(self)->'int': + """CTS output flow control""" + pass + + + @property + def fOutxDsrFlow(self)->'int': + """DSR output flow control""" + pass + + + @property + def fDtrControl(self)->'int': + """DTR flow control type""" + pass + + + @property + def fDsrSensitivity(self)->'int': + """DSR sensitivity""" + pass + + + @property + def fTXContinueOnXoff(self)->'int': + """XOFF continues Tx""" + pass + + + @property + def fOutX(self)->'int': + """XON/XOFF out flow control""" + pass + + + @property + def fInX(self)->'int': + """XON/XOFF in flow control""" + pass + + + @property + def fErrorChar(self)->'int': + """enable error replacement""" + pass + + + @property + def fNull(self)->'int': + """enable null stripping""" + pass + + + @property + def fRtsControl(self)->'int': + """RTS flow control""" + pass + + + @property + def fAbortOnError(self)->'int': + """abort on error""" + pass + + + @property + def fDummy2(self)->'int': + """reserved""" + pass + + +class PyDEVMODE(object): + """Python object wrapping a DEVMODE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SpecVersion(self)->'typing.Any': + """Should always be set to DM_SPECVERSION""" + pass + + + @property + def DriverVersion(self)->'typing.Any': + """Version nbr assigned to printer driver by vendor""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure""" + pass + + + @property + def DriverExtra(self)->'typing.Any': + """Number of extra bytes allocated for driver data, can only be set when new object is created""" + pass + + + @property + def Fields(self)->'typing.Any': + """Bitmask of win32con.DM_* constants indicating which members are set""" + pass + + + @property + def Orientation(self)->'typing.Any': + """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" + pass + + + @property + def PaperSize(self)->'typing.Any': + """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" + pass + + + @property + def PaperLength(self)->'typing.Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def PaperWidth(self)->'typing.Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def Position_x(self)->'typing.Any': + """Position of display relative to desktop""" + pass + + + @property + def Position_y(self)->'typing.Any': + """Position of display relative to desktop""" + pass + + + @property + def DisplayOrientation(self)->'typing.Any': + """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" + pass + + + @property + def DisplayFixedOutput(self)->'typing.Any': + """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" + pass + + + @property + def Scale(self)->'typing.Any': + """Specified as percentage, eg 50 means half size of original""" + pass + + + @property + def Copies(self)->'typing.Any': + """Nbr of copies to print""" + pass + + + @property + def DefaultSource(self)->'typing.Any': + """DMBIN_* constant, or can be a printer-specific value""" + pass + + + @property + def PrintQuality(self)->'typing.Any': + """DMRES_* constant, interpreted as DPI if positive""" + pass + + + @property + def Color(self)->'typing.Any': + """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" + pass + + + @property + def Duplex(self)->'typing.Any': + """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" + pass + + + @property + def YResolution(self)->'typing.Any': + """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" + pass + + + @property + def TTOption(self)->'typing.Any': + """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" + pass + + + @property + def Collate(self)->'typing.Any': + """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" + pass + + + @property + def LogPixels(self)->'typing.Any': + """Pixels per inch (only for display devices""" + pass + + + @property + def BitsPerPel(self)->'typing.Any': + """Color resolution in bits per pixel""" + pass + + + @property + def PelsWidth(self)->'typing.Any': + """Pixel width of display""" + pass + + + @property + def PelsHeight(self)->'typing.Any': + """Pixel height of display""" + pass + + + @property + def DisplayFlags(self)->'typing.Any': + """Combination of DM_GRAYSCALE and DM_INTERLACED""" + pass + + + @property + def DisplayFrequency(self)->'typing.Any': + """Refresh rate""" + pass + + + @property + def ICMMethod(self)->'typing.Any': + """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" + pass + + + @property + def ICMIntent(self)->'typing.Any': + """Intent of ICM, one of win32con.DMICM_* values""" + pass + + + @property + def MediaType(self)->'typing.Any': + """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" + pass + + + @property + def DitherType(self)->'typing.Any': + """Dithering option, win32con.DMDITHER_*""" + pass + + + @property + def Reserved1(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Reserved2(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Nup(self)->'typing.Any': + """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" + pass + + + @property + def PanningWidth(self)->'typing.Any': + """Not used, leave as 0""" + pass + + + @property + def PanningHeight(self)->'typing.Any': + """Not used, leave as 0""" + pass + + + @property + def DeviceName(self)->'typing.Any': + """String of at most 32 chars""" + pass + + + @property + def FormName(self)->'typing.Any': + """Name of form as returned by win32print::EnumForms, at most 32 chars""" + pass + + + @property + def DriverData(self)->'typing.Any': + """Driver data appended to end of structure""" + pass + + + def Clear(self,) -> 'None': + """ + Resets all members of the structure + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDEVMODEW(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def SpecVersion(self)->'typing.Any': + """Should always be set to DM_SPECVERSION""" + pass + + + @property + def DriverVersion(self)->'typing.Any': + """Version nbr assigned to printer driver by vendor""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure""" + pass + + + @property + def DriverExtra(self)->'typing.Any': + """Number of extra bytes allocated for driver data, can only be set when new object is created""" + pass + + + @property + def Fields(self)->'typing.Any': + """Bitmask of win32con.DM_* constants indicating which members are set""" + pass + + + @property + def Orientation(self)->'typing.Any': + """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" + pass + + + @property + def PaperSize(self)->'typing.Any': + """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" + pass + + + @property + def PaperLength(self)->'typing.Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def PaperWidth(self)->'typing.Any': + """Specified in 1/10 millimeters""" + pass + + + @property + def Position_x(self)->'typing.Any': + """Position of display relative to desktop""" + pass + + + @property + def Position_y(self)->'typing.Any': + """Position of display relative to desktop""" + pass + + + @property + def DisplayOrientation(self)->'typing.Any': + """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" + pass + + + @property + def DisplayFixedOutput(self)->'typing.Any': + """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" + pass + + + @property + def Scale(self)->'typing.Any': + """Specified as percentage, eg 50 means half size of original""" + pass + + + @property + def Copies(self)->'typing.Any': + """Nbr of copies to print""" + pass + + + @property + def DefaultSource(self)->'typing.Any': + """DMBIN_* constant, or can be a printer-specific value""" + pass + + + @property + def PrintQuality(self)->'typing.Any': + """DMRES_* constant, interpreted as DPI if positive""" + pass + + + @property + def Color(self)->'typing.Any': + """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" + pass + + + @property + def Duplex(self)->'typing.Any': + """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" + pass + + + @property + def YResolution(self)->'typing.Any': + """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" + pass + + + @property + def TTOption(self)->'typing.Any': + """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" + pass + + + @property + def Collate(self)->'typing.Any': + """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" + pass + + + @property + def LogPixels(self)->'typing.Any': + """Pixels per inch (only for display devices""" + pass + + + @property + def BitsPerPel(self)->'typing.Any': + """Color resolution in bits per pixel""" + pass + + + @property + def PelsWidth(self)->'typing.Any': + """Pixel width of display""" + pass + + + @property + def PelsHeight(self)->'typing.Any': + """Pixel height of display""" + pass + + + @property + def DisplayFlags(self)->'typing.Any': + """Combination of DM_GRAYSCALE and DM_INTERLACED""" + pass + + + @property + def DisplayFrequency(self)->'typing.Any': + """Refresh rate""" + pass + + + @property + def ICMMethod(self)->'typing.Any': + """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" + pass + + + @property + def ICMIntent(self)->'typing.Any': + """Intent of ICM, one of win32con.DMICM_* values""" + pass + + + @property + def MediaType(self)->'typing.Any': + """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" + pass + + + @property + def DitherType(self)->'typing.Any': + """Dithering option, win32con.DMDITHER_*""" + pass + + + @property + def Reserved1(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Reserved2(self)->'typing.Any': + """Reserved, use only 0""" + pass + + + @property + def Nup(self)->'typing.Any': + """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" + pass + + + @property + def PanningWidth(self)->'typing.Any': + """Not used, leave as 0""" + pass + + + @property + def PanningHeight(self)->'typing.Any': + """Not used, leave as 0""" + pass + + + @property + def DeviceName(self)->'str': + """String of at most 32 chars""" + pass + + + @property + def FormName(self)->'typing.Any': + """Name of form as returned by win32print::EnumForms, at most 32 chars""" + pass + + + @property + def DriverData(self)->'typing.Any': + """Driver data appended to end of structure""" + pass + + +class PyDISPLAY_DEVICE(object): + """Python object wrapping a DISPLAY_DEVICE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Size(self)->'typing.Any': + """Size of structure""" + pass + + + @property + def DeviceName(self)->'typing.Any': + """String of at most 32 chars""" + pass + + + @property + def DeviceString(self)->'typing.Any': + """String of at most 128 chars""" + pass + + + @property + def StateFlags(self)->'typing.Any': + """Bitmask of win32con.DISPLAY_DEVICE_* constants indicating current device status""" + pass + + + @property + def DeviceID(self)->'typing.Any': + """String of at most 128 chars""" + pass + + + @property + def DeviceKey(self)->'typing.Any': + """String of at most 128 chars""" + pass + + + def Clear(self,) -> 'None': + """ + Resets all members of the structure + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDLGITEMTEMPLATE(object): + """A tuple describing a control in a dialog box.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDLGTEMPLATE(object): + """A tuple of items describing a dialog box, that can be used to create the dialog.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDS_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDS_NAME_RESULT_ITEM(object): + """A tuple representing a DS_NAME_RESULT_ITEM""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDateTime(object): + """A Python object, representing an instant in time.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Format(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyDialogTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVTLOG_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVT_HANDLE(object): + """Handle to an event log, session, query, or any other object used with + +the Evt* event log functions on Vista and later. + +When the object is destroyed, EvtClose is called.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEVT_RPC_LOGIN(object): + """Tuple containing login credentials for a remote Event Log connection""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyEventLogRecord(object): + """An object containing the data in an EVENTLOGRECORD.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Reserved(self)->'int': + """""" + pass + + + @property + def RecordNumber(self)->'int': + """""" + pass + + + @property + def TimeGenerated(self)->'PyTime': + """""" + pass + + + @property + def TimeWritten(self)->'PyTime': + """""" + pass + + + @property + def EventID(self)->'int': + """""" + pass + + + @property + def EventType(self)->'int': + """""" + pass + + + @property + def EventCategory(self)->'int': + """""" + pass + + + @property + def ReservedFlags(self)->'int': + """""" + pass + + + @property + def ClosingRecordNumber(self)->'int': + """""" + pass + + + @property + def SourceName(self)->'str': + """""" + pass + + + @property + def StringInserts(self)->'typing.Tuple[str, ...]': + """""" + pass + + + @property + def Sid(self)->'PySID': + """""" + pass + + + @property + def Data(self)->'str': + """""" + pass + + + @property + def ComputerName(self)->'str': + """""" + pass + + +class PyGROUP_INFO_0(object): + """A dictionary holding the information in a Win32 GROUP_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + +class PyGROUP_INFO_1(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """The group's comment.""" + pass + + +class PyGROUP_INFO_1002(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1002 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + +class PyGROUP_INFO_1005(object): + """A dictionary holding the information in a Win32 GROUP_INFO_1005 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def attributes(self)->'typing.Any': + """""" + pass + + +class PyGROUP_INFO_2(object): + """A dictionary holding the information in a Win32 GROUP_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """The group's comment.""" + pass + + + @property + def group_id(self)->'typing.Any': + """""" + pass + + + @property + def attributes(self)->'typing.Any': + """""" + pass + + +class PyGROUP_USERS_INFO_0(object): + """A dictionary holding the information in a Win32 GROUP_USERS_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group or user""" + pass + + +class PyGROUP_USERS_INFO_1(object): + """A dictionary holding the information in a Win32 GROUP_USERS_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group or user""" + pass + + + @property + def attributes(self)->'typing.Any': + """""" + pass + + +class PyGdiHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyGetSignerCertificate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHANDLE(object): + """A Python object, representing a win32 HANDLE.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def handle(self)->'typing.Any': + """Integer value of the handleMethodsCloseCloses the handle closeSynonym for PyHANDLE::Close DetachDetaches the Win32 handle from the handle object. __nonzero__Used for detecting true/false. is nb_bool in Python 3.0 __int__Used when an integer representation of the handle object is required. __print__Used when the object is printed. tp_print __hash__Used when the hash value of an object is required tp_hash __str__Used when a string representation is required tp_str """ + pass + + + def Close(self,) -> 'None': + """ + Closes the underlying Win32 handle. + +Args: + + + +Returns: + + None + + """ + pass + + + def close(self,) -> 'None': + """ + Closes the underlying Win32 handle. + +Args: + + + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'typing.Any': + """ + Detaches the Win32 handle from the handle object. + +Args: + + + +Returns: + + typing.Any:PyHANDLE.Detach + +int = Detach()Detaches the Win32 handle from the handle object. +Comments + +After calling this function, the handle is effectively invalidated, + +but the handle is not closed. You would call this function when you + +need the underlying win32 handle to exist beyond the lifetime of the + +handle object. +Return ValueThe result is the value of the handle before it is detached. If the + +handle is already detached, this will return zero. + + + """ + pass + + +class PyHDESK(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetThreadDesktop(self,) -> 'None': + """ + Assigns this desktop to the calling thread + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumDesktopWindows(self,) -> 'typing.Tuple[int, ...]': + """ + Returns a list of handles to all top-level windows on desktop + +Args: + + + +Returns: + + typing.Tuple[int, ...] + + """ + pass + + + def SwitchDesktop(self,) -> 'None': + """ + Activates the desktop + +Args: + + + +Returns: + + None + + """ + pass + + + def CloseDesktop(self,) -> 'None': + """ + Closes the desktop handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyHDEVNOTIFY(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHHNTRACK(object): + """A Python object, representing an HHNTRACK + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def action(self)->'typing.Any': + """Specifies the action the user is about to take. This is an HHACT_ constant.""" + pass + + + @property + def hdr(self)->'typing.Any': + """Standard WM_NOTIFY header(win32help::NMHDR).""" + pass + + + @property + def curUrl(self)->'str': + """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" + pass + + + @property + def winType(self)->'typing.Any': + """A pointer to the current HH_WINTYPE structure (win32help::HH_WINTYPE).""" + pass + + +class PyHHN_NOTIFY(object): + """A Python object, representing an HHN_NOTIFY + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hdr(self)->'typing.Any': + """Standard WM_NOTIFY header.(win32help::NMHDR)""" + pass + + + @property + def url(self)->'str': + """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" + pass + + +class PyHH_AKLINK(object): + """A Python object, representing an HH_AKLINK structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def indexOnFail(self)->'typing.Any': + """Specifies whether to display the keyword in the Index tab of the HTML Help Viewer if the lookup fails. The value of window specifies the Help Viewer.""" + pass + + + @property + def keywords(self)->'str': + """Specifies one or more ALink names or KLink keywords to look up. Multiple entries are delimited by a semicolon.""" + pass + + + @property + def url(self)->'str': + """Specifies the topic file to navigate to if the lookup fails. url refers to a valid topic within the specified compiled help (.chm) file and does not support Internet protocols that point to an HTML file.""" + pass + + + @property + def msgText(self)->'str': + """Specifies the text to display in a message box if the lookup fails and indexOnFail is FALSE and url is NULL.""" + pass + + + @property + def msgTitle(self)->'str': + """Specifies the caption of the message box in which the msgText parameter appears.""" + pass + + + @property + def window(self)->'str': + """Specifies the name of the window type in which to display one of the following: The selected topic, if the lookup yields one or more matching topics. The topic specified in url, if the lookup fails and a topic is specified in url. The Index tab, if the lookup fails and indexOnFail is specified as TRUE.""" + pass + + +class PyHH_FTS_QUERY(object): + """A Python object, representing an HH_FTS_QUERY + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uniCodeStrings(self)->'typing.Any': + """TRUE if all strings are Unicode.""" + pass + + + @property + def proximity(self)->'typing.Any': + """Word proximity.""" + pass + + + @property + def stemmedSearch(self)->'typing.Any': + """TRUE for StemmedSearch only.""" + pass + + + @property + def titleOnly(self)->'typing.Any': + """TRUE for Title search only.""" + pass + + + @property + def execute(self)->'typing.Any': + """TRUE to initiate the search.""" + pass + + + @property + def searchQuery(self)->'str': + """String containing the search query.""" + pass + + +class PyHH_POPUP(object): + """A Python object, representing an HH_POPUP structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hinst(self)->'typing.Any': + """Instance handle of the program or DLL to retrieve the string resource from. Ignored if idString is zero.""" + pass + + + @property + def idString(self)->'typing.Any': + """Specifies zero, or a resource ID in the program or DLL specified in hinst.""" + pass + + + @property + def clrForeground(self)->'typing.Any': + """Specifies the RGB value to use for the foreground color of the pop-up window. To use the system color for the window text, specify -1.""" + pass + + + @property + def clrBackground(self)->'typing.Any': + """Specifies the RGB value to use for the background color of the pop-up window. To use the system color for the window background, specify -1.""" + pass + + + @property + def text(self)->'str': + """Specifies the text to display if idString is zero.""" + pass + + + @property + def font(self)->'str': + """Specifies the font attributes to use for the text in the pop-up window. Use the following format to specify font family, point size, character set, and font format: facename[, point size[, charset[ BOLD ITALIC UNDERLINE]]] To omit an attribute, enter a comma. For example, to specify bold, 10-pt, MS Sans Serif font, font would be: MS Sans Serif, 10, , BOLD""" + pass + + + @property + def pt(self)->'typing.Any': + """(x,y). Specifies (in pixels) where the top center of the pop-up window should be located.""" + pass + + + @property + def margins(self)->'typing.Any': + """(left,top,right,bottom). Specifies (in pixels) the margins to use on the left, top, right, and bottom sides of the pop-up window. The default for all rectangle members is -1.""" + pass + + +class PyHH_WINTYPE(object): + """A Python object, representing an HH_WINTYPE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uniCodeStrings(self)->'typing.Any': + """Specifies whether the strings used in this structure are UNICODE.""" + pass + + + @property + def validMembers(self)->'typing.Any': + """Specifies which members in the structure are valid.""" + pass + + + @property + def winProperties(self)->'typing.Any': + """Specifies the properties of the window, such as whether it is the standard HTML Help Viewer or whether it includes a Search tab.""" + pass + + + @property + def styles(self)->'typing.Any': + """Specifies the styles used to create the window. These styles can be ignored, combined with extended styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" + pass + + + @property + def exStyles(self)->'typing.Any': + """Specifies the extended styles used to create the window. These styles can be ignored, combined with default styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" + pass + + + @property + def showState(self)->'typing.Any': + """Specifies the initial display state of the window. Valid values are the same as those for the Win32 API ShowWindow function.""" + pass + + + @property + def hwndHelp(self)->'typing.Any': + """Specifies the handle of the window if the window has been created.""" + pass + + + @property + def hwndCaller(self)->'typing.Any': + """Specifies the window that will receive HTML Help notification messages. Notification messages are sent via Windows WM_NOTIFY messages.""" + pass + + + @property + def hwndToolBar(self)->'typing.Any': + """Specifies the handle of the toolbar.""" + pass + + + @property + def hwndNavigation(self)->'typing.Any': + """Specifies the handle of the Navigation pane.""" + pass + + + @property + def hwndHTML(self)->'typing.Any': + """Specifies the handle of the Topic pane, which hosts Shdocvw.dll.""" + pass + + + @property + def navWidth(self)->'typing.Any': + """Specifies the width of the Navigation pane when the Help Viewer is expanded.""" + pass + + + @property + def toolBarFlags(self)->'typing.Any': + """Specifies which buttons to include on the toolbar.""" + pass + + + @property + def notExpanded(self)->'typing.Any': + """Specifies that the Help Viewer open with the Navigation pane closed.""" + pass + + + @property + def curNavType(self)->'typing.Any': + """Specifies the default tab to display on the Navigation pane.""" + pass + + + @property + def idNotify(self)->'typing.Any': + """Specifies a non-zero ID for enabling HTML Help notification messages. This ID is passed as the wParam value of Windows WM_NOTIFY messages.""" + pass + + + @property + def typeName(self)->'str': + """A null-terminated string that specifies the name of the window type.""" + pass + + + @property + def caption(self)->'str': + """A null-terminated string that specifies the caption to display in the title bar of the window.""" + pass + + + @property + def windowPos(self)->'typing.Any': + """(left,top,right,bottom). Specifies the coordinates of the window in pixels.""" + pass + + + @property + def HTMLPos(self)->'typing.Any': + """(left,top,right,bottom). Specifies the coordinates of the Topic pane.""" + pass + + + @property + def toc(self)->'str': + """Specifies the contents (.hhc) file to display in the Navigation pane.""" + pass + + + @property + def index(self)->'str': + """Specifies the index (.hhk) file to display in the Navigation pane.""" + pass + + + @property + def file(self)->'str': + """Specifies the default HTML file to display in the Topic pane.""" + pass + + + @property + def home(self)->'str': + """Specifies the file or URL to display in the Topic pane when the Home button is clicked.""" + pass + + + @property + def jump1(self)->'str': + """Specifies the text to display underneath the Jump1 button.""" + pass + + + @property + def jump2(self)->'str': + """Specifies the text to display underneath the Jump2 button.""" + pass + + + @property + def urlJump1(self)->'str': + """Specifies the URL to jump to when the Jump1 button is clicked.""" + pass + + + @property + def urlJump2(self)->'str': + """Specifies the URL to jump to when the Jump2 button is clicked.""" + pass + + +class PyHINTERNET(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHKEY(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHTHEME(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyHWINSTA(object): + """Wrapper for a handle to a window station - returned by CreateWindowStation, OpenWindowStation, or GetProcessWindowStation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumDesktops(self,) -> 'typing.Tuple[typing.Any, ...]': + """ + Lists names of desktops in the window station + +Args: + + + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + + def SetProcessWindowStation(self,) -> 'None': + """ + Associates the calling process with the window station + +Args: + + + +Returns: + + None + + """ + pass + + + def CloseWindowStation(self,) -> 'None': + """ + Closes the window station handle + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICONINFO(object): + """Tuple describing an icon or cursor""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIID(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyINPUT_RECORD(object): + """Interface to the INPUT_RECORD struct used with console IO functions. Create using + +PyINPUT_RECORDType(EventType)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def EventType(self)->'typing.Any': + """One of KEY_EVENT, MOUSE_EVENT, WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT. Cannot be changed after object is created""" + pass + + + @property + def KeyDown(self)->'typing.Any': + """True for a key press, False for key release""" + pass + + + @property + def RepeatCount(self)->'typing.Any': + """Nbr of repeats generated (key was held down if >1)""" + pass + + + @property + def VirtualKeyCode(self)->'typing.Any': + """Device-independent key code, win32con.VK_*""" + pass + + + @property + def VirtualScanCode(self)->'typing.Any': + """Device-dependent scan code generated by keyboard""" + pass + + + @property + def Char(self)->'str': + """Single unicode character generated by the keypress""" + pass + + + @property + def ControlKeyState(self)->'typing.Any': + """State of modifier keys, combination of CAPSLOCK_ON, ENHANCED_KEY, LEFT_ALT_PRESSED, LEFT_CTRL_PRESSED, NUMLOCK_ON, RIGHT_ALT_PRESSED, RIGHT_CTRL_PRESSED, SCROLLLOCK_ON, SHIFT_PRESSED""" + pass + + + @property + def ButtonState(self)->'typing.Any': + """Bitmask representing which mouse buttons were pressed.""" + pass + + + @property + def EventFlags(self)->'typing.Any': + """DOUBLE_CLICK, MOUSE_MOVED or MOUSE_WHEELED, or 0. If 0, indicates a mouse button press""" + pass + + + @property + def MousePosition(self)->'PyCOORD': + """Position in character coordinates""" + pass + + + @property + def Size(self)->'PyCOORD': + """New size of screen buffer in character rows/columns""" + pass + + + @property + def SetFocus(self)->'typing.Any': + """Reserved - Used only with type FOCUS_EVENT. This event is Reserved, and should be ignored.""" + pass + + + @property + def CommandId(self)->'typing.Any': + """Used only with event type MENU_EVENT, which is reserved and should not be used""" + pass + + +class PyLOCALGROUP_INFO_0(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + +class PyLOCALGROUP_INFO_1(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """Name of the group""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """The group's comment.""" + pass + + +class PyLOCALGROUP_INFO_1002(object): + """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1002 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_0(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_0 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_1(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_1 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + + @property + def sidusage(self)->'typing.Any': + """""" + pass + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_2(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_2 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sid(self)->'PySID': + """""" + pass + + + @property + def sidusage(self)->'typing.Any': + """""" + pass + + + @property + def domainandname(self)->'typing.Union[str]': + """string containing the name of the member prefixed by the domain name and the "\\" separator character""" + pass + + +class PyLOCALGROUP_MEMBERS_INFO_3(object): + """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_3 + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def domainandname(self)->'typing.Union[str]': + """string containing the name of the member prefixed by the domain name and the "\\" separator character""" + pass + + +class PyLOGBRUSH(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Style(self)->'typing.Any': + """Brush style, one of win32con.BS_* values""" + pass + + + @property + def Color(self)->'typing.Any': + """RGB color value. Can also be DIB_PAL_COLORS or DIB_RGB_COLORS if Style is BS_DIBPATTERN or BS_DIBPATTERNPT=""" + pass + + + @property + def Hatch(self)->'typing.Union[int, typing.Any]': + """For BS_HATCH style, one of win32con.HS_*. Not used For BS_SOLID or BS_HOLLOW. For a pattern brush, this should be a handle to a bitmap""" + pass + + +class PyLOGFONT(object): + """A Python object, representing an PyLOGFONT structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def lfHeight(self)->'int': + """""" + pass + + + @property + def lfWidth(self)->'int': + """""" + pass + + + @property + def lfEscapement(self)->'int': + """""" + pass + + + @property + def lfOrientation(self)->'int': + """""" + pass + + + @property + def lfWeight(self)->'int': + """""" + pass + + + @property + def lfItalic(self)->'int': + """""" + pass + + + @property + def lfUnderline(self)->'int': + """""" + pass + + + @property + def lfStrikeOut(self)->'int': + """""" + pass + + + @property + def lfCharSet(self)->'int': + """""" + pass + + + @property + def lfOutPrecision(self)->'int': + """""" + pass + + + @property + def lfClipPrecision(self)->'int': + """""" + pass + + + @property + def lfQuality(self)->'int': + """""" + pass + + + @property + def lfPitchAndFamily(self)->'int': + """""" + pass + + + @property + def lfFaceName(self)->'str': + """Name of the typeface, at most 31 characters""" + pass + + +class PyLSA_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyLUID_AND_ATTRIBUTES(object): + """A sequence containing (LUID,Attributes) representing an LUID_AND_ATTRIBUTES structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyLsaLogon_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyMSG(object): + """A tuple representing a win32 MSG structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNETRESOURCE(object): + """A Python object that encapsulates a Win32 NETRESOURCE structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwScope(self)->'int': + """""" + pass + + + @property + def dwType(self)->'int': + """""" + pass + + + @property + def dwDisplayType(self)->'int': + """""" + pass + + + @property + def dwUsage(self)->'int': + """""" + pass + + + @property + def localName(self)->'str': + """""" + pass + + + @property + def remoteName(self)->'str': + """""" + pass + + + @property + def comment(self)->'str': + """""" + pass + + + @property + def provider(self)->'str': + """""" + pass + + +class PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNET_VALIDATE_PERSISTED_FIELDS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyNMHDR(object): + """A Python object, representing an NMHDR + +structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def hwndFrom(self)->'typing.Any': + """Window handle to the control sending a message. ??? 64-bit problem here ???""" + pass + + + @property + def idFrom(self)->'typing.Any': + """Identifier of the control sending a message.""" + pass + + + @property + def code(self)->'typing.Any': + """Notification code. This member can be a control-specific notification code or it can be one of the common notification codes.""" + pass + + +class PyNOTIFYICONDATA(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyOVERLAPPED(object): + """A Python object, representing an overlapped structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Offset(self)->'int': + """Specifies a file position at which to start the transfer. The file position is a byte offset from the start of the file. The calling process sets this member before calling the ReadFile or WriteFile function. This member is ignored when reading from or writing to named pipes and communications devices.""" + pass + + + @property + def OffsetHigh(self)->'int': + """Specifies the high word of the byte offset at which to start the transfer.""" + pass + + + @property + def object(self)->'typing.Any': + """Any python object that you want to attach to your overlapped I/O request.""" + pass + + + @property + def dword(self)->'typing.Any': + """An integer buffer that may be used by overlapped functions (eg, win32file::WaitCommEvent)""" + pass + + + @property + def hEvent(self)->'int': + """Identifies an event set to the signaled state when the transfer has been completed. The calling process sets this member before calling the win32file::ReadFile, win32file::WriteFile, win32pipe::ConnectNamedPipe, or win32pipe::TransactNamedPipe function.""" + pass + + + @property + def Internal(self)->'int': + """Reserved for operating system use. (pointer-sized value)""" + pass + + + @property + def InternalHigh(self)->'int': + """Reserved for operating system use. (pointer-sized value)""" + pass + + +class PyOVERLAPPEDReadBuffer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPERF_COUNTER_DEFINITION(object): + """An object encapsulating a Windows NT Performance Monitor counter definition + +(PERF_COUNTER_DEFINITION).""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def DefaultScale(self)->'int': + """The default scale of the counter.""" + pass + + + @property + def DetailLevel(self)->'int': + """The detail level of the counter.""" + pass + + + @property + def CounterType(self)->'int': + """The counter type.""" + pass + + + @property + def CounterNameTitleIndex(self)->'int': + """""" + pass + + + @property + def CounterHelpTitleIndex(self)->'int': + """Sentinel""" + pass + + + def Increment(self,) -> 'None': + """ + Increments the value of the performance counter + +Args: + + + +Returns: + + None + + """ + pass + + + def Decrement(self,) -> 'None': + """ + Decrements the value of the performance counter + +Args: + + + +Returns: + + None + + """ + pass + + + def Set(self,) -> 'None': + """ + Sets the counter to a specific value + +Args: + + + +Returns: + + None + + """ + pass + + + def Get(self,) -> 'None': + """ + Gets the current value of the counter + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPERF_OBJECT_TYPE(object): + """A Python object, representing a PERF_OBJECT_TYPE structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ObjectNameTitleIndex(self)->'int': + """""" + pass + + + @property + def ObjectHelpTitleIndex(self)->'int': + """""" + pass + + + @property + def DefaultCounterIndex(self)->'int': + """""" + pass + + + def Close(self,) -> 'None': + """ + Closes the object. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPOINT(object): + """Tuple of two ints (x,y) representing a POINT struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROFILEINFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def UserName(self)->'str': + """Name of user for which to load profile""" + pass + + + @property + def Flags(self)->'typing.Any': + """Combination of PI_* flags""" + pass + + + @property + def ProfilePath(self)->'str': + """Path to roaming profile, can be None. Use win32net::NetUserGetInfo to retrieve user's profile path""" + pass + + + @property + def DefaultPath(self)->'str': + """Path to Default user profile, can be None""" + pass + + + @property + def ServerName(self)->'str': + """Domain controller, can be None""" + pass + + + @property + def PolicyPath(self)->'str': + """Location of policy file, can be None""" + pass + + + @property + def Profile(self)->'PyHKEY': + """Handle to root of user's registry key. This member is output.""" + pass + + +class PyPerfMonManager(object): + """A Python object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Close(self,) -> 'None': + """ + Closes the performance monitor manager. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyPrinterHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyRECT(object): + """Tuple of 4 ints defining a rectangle: (left, top, right, bottom)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyResourceId(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySCROLLINFO(object): + """A tuple representing a SCROLLINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySC_HANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySECURITY_ATTRIBUTES(object): + """A Python object, representing a SECURITY_ATTRIBUTES structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bInheritHandle(self)->'typing.Any': + """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle.""" + pass + + + @property + def SECURITY_DESCRIPTOR(self)->'PySECURITY_DESCRIPTOR': + """A PySECURITY_DESCRIPTOR, or None""" + pass + + +class PySECURITY_DESCRIPTOR(object): + """A Python object, representing a SECURITY_DESCRIPTOR structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Initialize the SD. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSecurityDescriptorOwner(self,) -> 'PySID': + """ + Return the owner of the security descriptor. + +Args: + + + +Returns: + + PySID + + """ + pass + + + def GetSecurityDescriptorDacl(self,) -> 'PyACL': + """ + Return the discretionary ACL of the security + +descriptor. + +Args: + + + +Returns: + + PyACL + + """ + pass + + + def GetSecurityDescriptorSacl(self,) -> 'PyACL': + """ + Return system access control list (SACL) of SD + +Args: + + + +Returns: + + PyACL + + """ + pass + + + def GetSecurityDescriptorControl(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns tuple of Control bit flags and + +revision of SD. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetSecurityDescriptorOwner(self,sid:'PySID',bOwnerDefaulted:'typing.Any') -> 'None': + """ + Set owner SID. + +Args: + + sid(PySID):The sid to be set as owner in the security descriptor. + bOwnerDefaulted(typing.Any):Normally set to false since this explicitely set the owner. + +Returns: + + None + + """ + pass + + + def SetSecurityDescriptorGroup(self,sid:'PySID',bOwnerDefaulted:'typing.Any') -> 'typing.Any': + """ + Set group SID. + +Args: + + sid(PySID):The group sid to be set in the security descriptor. + bOwnerDefaulted(typing.Any):Normally set to false since this explicitely set the owner. + +Returns: + + typing.Any + + """ + pass + + + def SetSecurityDescriptorSacl(self,bSaclPresent:'typing.Any',SACL:'PyACL',bSaclDefaulted:'typing.Any') -> 'None': + """ + Replaces system access control list (SACL) in the security + +descriptor. + +Args: + + bSaclPresent(typing.Any):A flag indicating if SACL is to be used. If false, last 2 parms are ignored. + SACL(PyACL):The SACL to set in the security descriptor + bSaclDefaulted(typing.Any):Flag, set to false if user has specifically set the SACL. + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the security descriptor is valid. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetLength(self,) -> 'None': + """ + return length of security descriptor (GetSecurityDescriptorLenght). + +Args: + + + +Returns: + + None + + """ + pass + + + def IsSelfRelative(self,) -> 'None': + """ + Returns 1 if security descriptor is self relative, 0 if absolute + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSecurityDescriptorControl(self,ControlBitsOfInterest:'typing.Any',ControlBitsToSet:'typing.Any') -> 'None': + """ + Sets the control bit flags related to inheritance for a + +security descriptor + +Args: + + ControlBitsOfInterest(typing.Any):Bitmask of flags to be modified + ControlBitsToSet(typing.Any):Bitmask containing flag values to setCommentsOnly exists on Windows 2000 or later + +Returns: + + None + + """ + pass + + +class PySERVER_INFO_100(object): + """A dictionary holding the information in a Win32 SERVER_INFO_100 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """""" + pass + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_101(object): + """A dictionary holding the information in a Win32 SERVER_INFO_101 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """""" + pass + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def version_major(self)->'typing.Any': + """""" + pass + + + @property + def version_minor(self)->'typing.Any': + """""" + pass + + + @property + def type(self)->'typing.Any': + """one of the SV_TYPE_* constants""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_102(object): + """A dictionary holding the information in a Win32 SERVER_INFO_102 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """""" + pass + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def version_major(self)->'typing.Any': + """""" + pass + + + @property + def version_minor(self)->'typing.Any': + """""" + pass + + + @property + def type(self)->'typing.Any': + """one of the SV_TYPE_* constants""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def users(self)->'typing.Any': + """""" + pass + + + @property + def disc(self)->'typing.Any': + """""" + pass + + + @property + def hidden(self)->'typing.Any': + """""" + pass + + + @property + def announce(self)->'typing.Any': + """""" + pass + + + @property + def anndelta(self)->'typing.Any': + """""" + pass + + + @property + def userpath(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_402(object): + """A dictionary holding the information in a Win32 SERVER_INFO_402 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ulist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def glist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def alist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def security(self)->'typing.Any': + """""" + pass + + + @property + def numadmin(self)->'typing.Any': + """""" + pass + + + @property + def lanmask(self)->'typing.Any': + """""" + pass + + + @property + def guestacct(self)->'typing.Union[str]': + """""" + pass + + + @property + def chdevs(self)->'typing.Any': + """""" + pass + + + @property + def chdevq(self)->'typing.Any': + """""" + pass + + + @property + def chdevjobs(self)->'typing.Any': + """""" + pass + + + @property + def connections(self)->'typing.Any': + """""" + pass + + + @property + def shares(self)->'typing.Any': + """""" + pass + + + @property + def openfiles(self)->'typing.Any': + """""" + pass + + + @property + def sessopens(self)->'typing.Any': + """""" + pass + + + @property + def sessvcs(self)->'typing.Any': + """""" + pass + + + @property + def sessreqs(self)->'typing.Any': + """""" + pass + + + @property + def opensearch(self)->'typing.Any': + """""" + pass + + + @property + def activelocks(self)->'typing.Any': + """""" + pass + + + @property + def numreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def sizreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def numbigbuf(self)->'typing.Any': + """""" + pass + + + @property + def numfiletasks(self)->'typing.Any': + """""" + pass + + + @property + def alertsched(self)->'typing.Any': + """""" + pass + + + @property + def erroralert(self)->'typing.Any': + """""" + pass + + + @property + def logonalert(self)->'typing.Any': + """""" + pass + + + @property + def accessalert(self)->'typing.Any': + """""" + pass + + + @property + def diskalert(self)->'typing.Any': + """""" + pass + + + @property + def netioalert(self)->'typing.Any': + """""" + pass + + + @property + def maxauditsz(self)->'typing.Any': + """""" + pass + + + @property + def srvheuristics(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_403(object): + """A dictionary holding the information in a Win32 SERVER_INFO_403 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ulist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def glist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def alist_mtime(self)->'typing.Any': + """""" + pass + + + @property + def security(self)->'typing.Any': + """""" + pass + + + @property + def numadmin(self)->'typing.Any': + """""" + pass + + + @property + def lanmask(self)->'typing.Any': + """""" + pass + + + @property + def guestacct(self)->'typing.Union[str]': + """""" + pass + + + @property + def chdevs(self)->'typing.Any': + """""" + pass + + + @property + def chdevq(self)->'typing.Any': + """""" + pass + + + @property + def chdevjobs(self)->'typing.Any': + """""" + pass + + + @property + def connections(self)->'typing.Any': + """""" + pass + + + @property + def shares(self)->'typing.Any': + """""" + pass + + + @property + def openfiles(self)->'typing.Any': + """""" + pass + + + @property + def sessopens(self)->'typing.Any': + """""" + pass + + + @property + def sessvcs(self)->'typing.Any': + """""" + pass + + + @property + def sessreqs(self)->'typing.Any': + """""" + pass + + + @property + def opensearch(self)->'typing.Any': + """""" + pass + + + @property + def activelocks(self)->'typing.Any': + """""" + pass + + + @property + def numreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def sizreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def numbigbuf(self)->'typing.Any': + """""" + pass + + + @property + def numfiletasks(self)->'typing.Any': + """""" + pass + + + @property + def alertsched(self)->'typing.Any': + """""" + pass + + + @property + def erroralert(self)->'typing.Any': + """""" + pass + + + @property + def logonalert(self)->'typing.Any': + """""" + pass + + + @property + def accessalert(self)->'typing.Any': + """""" + pass + + + @property + def diskalert(self)->'typing.Any': + """""" + pass + + + @property + def netioalert(self)->'typing.Any': + """""" + pass + + + @property + def maxauditsz(self)->'typing.Any': + """""" + pass + + + @property + def srvheuristics(self)->'typing.Union[str]': + """""" + pass + + + @property + def auditedevents(self)->'typing.Any': + """""" + pass + + + @property + def autoprofile(self)->'typing.Any': + """""" + pass + + + @property + def autopath(self)->'typing.Union[str]': + """""" + pass + + +class PySERVER_INFO_502(object): + """A dictionary holding the information in a Win32 SERVER_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sessopens(self)->'typing.Any': + """""" + pass + + + @property + def sessvcs(self)->'typing.Any': + """""" + pass + + + @property + def opensearch(self)->'typing.Any': + """""" + pass + + + @property + def sizreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def initworkitems(self)->'typing.Any': + """""" + pass + + + @property + def maxworkitems(self)->'typing.Any': + """""" + pass + + + @property + def rawworkitems(self)->'typing.Any': + """""" + pass + + + @property + def irpstacksize(self)->'typing.Any': + """""" + pass + + + @property + def maxrawbuflen(self)->'typing.Any': + """""" + pass + + + @property + def sessusers(self)->'typing.Any': + """""" + pass + + + @property + def sessconns(self)->'typing.Any': + """""" + pass + + + @property + def maxpagedmemoryusage(self)->'typing.Any': + """""" + pass + + + @property + def maxnonpagedmemoryusage(self)->'typing.Any': + """""" + pass + + + @property + def enableforcedlogoff(self)->'typing.Any': + """""" + pass + + + @property + def timesource(self)->'typing.Any': + """""" + pass + + + @property + def acceptdownlevelapis(self)->'typing.Any': + """""" + pass + + + @property + def lmannounce(self)->'typing.Any': + """""" + pass + + +class PySERVER_INFO_503(object): + """A dictionary holding the information in a Win32 SERVER_INFO_503 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def sessopens(self)->'typing.Any': + """""" + pass + + + @property + def sessvcs(self)->'typing.Any': + """""" + pass + + + @property + def opensearch(self)->'typing.Any': + """""" + pass + + + @property + def sizreqbuf(self)->'typing.Any': + """""" + pass + + + @property + def initworkitems(self)->'typing.Any': + """""" + pass + + + @property + def maxworkitems(self)->'typing.Any': + """""" + pass + + + @property + def rawworkitems(self)->'typing.Any': + """""" + pass + + + @property + def irpstacksize(self)->'typing.Any': + """""" + pass + + + @property + def maxrawbuflen(self)->'typing.Any': + """""" + pass + + + @property + def sessusers(self)->'typing.Any': + """""" + pass + + + @property + def sessconns(self)->'typing.Any': + """""" + pass + + + @property + def maxpagedmemoryusage(self)->'typing.Any': + """""" + pass + + + @property + def maxnonpagedmemoryusage(self)->'typing.Any': + """""" + pass + + + @property + def enableforcedlogoff(self)->'typing.Any': + """""" + pass + + + @property + def timesource(self)->'typing.Any': + """""" + pass + + + @property + def acceptdownlevelapis(self)->'typing.Any': + """""" + pass + + + @property + def lmannounce(self)->'typing.Any': + """""" + pass + + + @property + def domain(self)->'typing.Union[str]': + """""" + pass + + + @property + def maxkeepsearch(self)->'typing.Any': + """""" + pass + + + @property + def scavtimeout(self)->'typing.Any': + """""" + pass + + + @property + def minrcvqueue(self)->'typing.Any': + """""" + pass + + + @property + def minfreeworkitems(self)->'typing.Any': + """""" + pass + + + @property + def xactmemsize(self)->'typing.Any': + """""" + pass + + + @property + def threadpriority(self)->'typing.Any': + """""" + pass + + + @property + def maxmpxct(self)->'typing.Any': + """""" + pass + + + @property + def oplockbreakwait(self)->'typing.Any': + """""" + pass + + + @property + def oplockbreakresponsewait(self)->'typing.Any': + """""" + pass + + + @property + def enableoplocks(self)->'typing.Any': + """""" + pass + + + @property + def enablefcbopens(self)->'typing.Any': + """""" + pass + + + @property + def enableraw(self)->'typing.Any': + """""" + pass + + + @property + def enablesharednetdrives(self)->'typing.Any': + """""" + pass + + + @property + def minfreeconnections(self)->'typing.Any': + """""" + pass + + + @property + def maxfreeconnections(self)->'typing.Any': + """""" + pass + + +class PySHARE_INFO_0(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + +class PySHARE_INFO_1(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def remark(self)->'typing.Union[str]': + """""" + pass + + +class PySHARE_INFO_2(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def remark(self)->'typing.Union[str]': + """""" + pass + + + @property + def permissions(self)->'typing.Any': + """""" + pass + + + @property + def max_uses(self)->'typing.Any': + """""" + pass + + + @property + def current_uses(self)->'typing.Any': + """""" + pass + + + @property + def path(self)->'typing.Union[str]': + """""" + pass + + + @property + def passwd(self)->'typing.Union[str]': + """""" + pass + + +class PySHARE_INFO_501(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_501 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def remark(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + +class PySHARE_INFO_502(object): + """A dictionary holding the infomation in a Win32 SHARE_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def netname(self)->'typing.Union[str]': + """""" + pass + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def remark(self)->'typing.Union[str]': + """""" + pass + + + @property + def permissions(self)->'typing.Any': + """""" + pass + + + @property + def max_uses(self)->'typing.Any': + """""" + pass + + + @property + def current_uses(self)->'typing.Any': + """""" + pass + + + @property + def path(self)->'typing.Union[str]': + """""" + pass + + + @property + def passwd(self)->'typing.Union[str]': + """""" + pass + + + @property + def reserved(self)->'typing.Any': + """""" + pass + + + @property + def security_descriptor(self)->'PySECURITY_DESCRIPTOR': + """""" + pass + + +class PySID(object): + """A Python object, representing a SID structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,idAuthority:'typing.Any',numSubauthorities:'typing.Any') -> 'None': + """ + Initialize the SID. + +Args: + + idAuthority(typing.Any):The identifier authority. + numSubauthorities(typing.Any):The number of sub authorities to allocate. + +Returns: + + None + + """ + pass + + + def IsValid(self,) -> 'None': + """ + Determines if the SID is valid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSubAuthority(self,index:'typing.Any',val:'typing.Any') -> 'None': + """ + Sets a SID SubAuthority + +Args: + + index(typing.Any):The index of the sub authority to set + val(typing.Any):The value for the sub authorityCommentsSee the function SetSidSubAuthority + +Returns: + + None + + """ + pass + + + def GetLength(self,) -> 'typing.Any': + """ + return length of SID (GetLengthSid). + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSubAuthorityCount(self,) -> 'typing.Any': + """ + return nbr of subauthorities from SID + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSubAuthority(self,) -> 'typing.Any': + """ + Returns specified subauthority from SID + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSidIdentifierAuthority(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Returns a tuple of 6 SID_IDENTIFIER_AUTHORITY + +constants + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + +class PySID_AND_ATTRIBUTES(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySIZE(object): + """Tuple of two ints (cx,cy) representing a SIZE struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySMALL_RECT(object): + """Wrapper for a SMALL_RECT struct + +Create using PySMALL_RECTType(Left, Top, Right, Bottom). All params optional, defaulting to 0""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'typing.Any': + """Left side of rectangle""" + pass + + + @property + def Top(self)->'typing.Any': + """Top edge of rectangle""" + pass + + + @property + def Right(self)->'typing.Any': + """Right edge of rectangle""" + pass + + + @property + def Bottom(self)->'typing.Any': + """Bottome edge of rectangle""" + pass + + +class PySTARTUPINFO(object): + """A Python object, representing an STARTUPINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwX(self)->'int': + """Specifies the x offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" + pass + + + @property + def dwY(self)->'int': + """Specifies the y offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" + pass + + + @property + def dwXSize(self)->'int': + """Specifies the width, in pixels, of the window if a new window is created.""" + pass + + + @property + def dwYSize(self)->'int': + """Specifies the height, in pixels, of the window if a new window is created.""" + pass + + + @property + def dwXCountChars(self)->'int': + """For console processes, if a new console window is created, specifies the screen buffer width in character columns. This value is ignored in a GUI process.""" + pass + + + @property + def dwYCountChars(self)->'int': + """For console processes, if a new console window is created, specifies the screen buffer height in character rows.""" + pass + + + @property + def dwFillAttribute(self)->'int': + """Specifies the initial text and background colors if a new console window is created in a console application. These values are ignored in GUI applications""" + pass + + + @property + def dwFlags(self)->'int': + """This is a bit field that determines whether certain STARTUPINFO attributes are used when the process creates a window. To use many of the additional attributes, you typically must set the appropriate mask in this attribute, and also set the attributes themselves. Any combination of the win32con.STARTF_* flags can be specified.""" + pass + + + @property + def wShowWindow(self)->'int': + """Can be any of the SW_ constants defined in win32con. For GUI processes, this specifies the default value the first time ShowWindow is called.""" + pass + + + @property + def hStdInput(self)->'typing.Union[int]': + """""" + pass + + + @property + def hStdOutput(self)->'typing.Union[int]': + """""" + pass + + + @property + def hStdError(self)->'typing.Union[int]': + """""" + pass + + + @property + def lpDesktop(self)->'typing.Union[str, typing.Any]': + """""" + pass + + + @property + def lpTitle(self)->'typing.Union[str, typing.Any]': + """""" + pass + + +class PySecBuffer(object): + """Python object wrapping a SecBuffer structure + +Created using win32security.PySecBufferType(type,size) where type is a SECBUFFER_* constant""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def BufferType(self)->'typing.Any': + """""" + pass + + + @property + def Buffer(self)->'str': + """""" + pass + + + @property + def BufferSize(self)->'typing.Any': + """""" + pass + + + @property + def MaxBufferSize(self)->'typing.Any': + """""" + pass + + + def Clear(self,) -> 'None': + """ + Resets the buffer to all NULL's, and set the current size to maximum + +Args: + + + +Returns: + + None + + """ + pass + + +class PySecBufferDesc(object): + """Sequence-like object that contains a group of buffers to be used with SSPI functions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def append(self,buffer:'typing.Any') -> 'None': + """ + None + +Args: + + buffer(typing.Any):PySecBuffer object to be attached to the group of buffers + +Returns: + + None + + """ + pass + + +class PyTOKEN_GROUPS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTOKEN_PRIVILEGES(object): + """An object representing Win32 token privileges.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTRIVERTEX(object): + """Dict representing a TRIVERTEX struct containing color information at a point""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def x(self)->'typing.Any': + """X coord in logical units""" + pass + + + @property + def y(self)->'typing.Any': + """Y coord in logical units""" + pass + + + @property + def Red(self)->'typing.Any': + """Red component""" + pass + + + @property + def Green(self)->'typing.Any': + """Green component""" + pass + + + @property + def Blue(self)->'typing.Any': + """Blue component""" + pass + + + @property + def Alpha(self)->'typing.Any': + """Transparency value""" + pass + + +class PyTRUSTEE(object): + """A dictionary representing a TRUSTEE structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def TrusteeForm(self)->'typing.Any': + """""" + pass + + + @property + def TrusteeType(self)->'typing.Any': + """""" + pass + + + @property + def Identifier(self)->'typing.Any': + """Depends on the value of TrusteeForm (string or sid)""" + pass + + + @property + def MultipleTrustee(self)->'typing.Any': + """default is None""" + pass + + + @property + def MultipleTrusteeOperation(self)->'typing.Any': + """default is None""" + pass + + +class PyTS_HANDLE(object): + """Handle to a Terminal Server""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyTime(object): + """A Python object, representing an instant in time.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def year(self)->'typing.Any': + """""" + pass + + + @property + def month(self)->'typing.Any': + """""" + pass + + + @property + def weekday(self)->'typing.Any': + """""" + pass + + + @property + def day(self)->'typing.Any': + """""" + pass + + + @property + def hour(self)->'typing.Any': + """""" + pass + + + @property + def minute(self)->'typing.Any': + """""" + pass + + + @property + def second(self)->'typing.Any': + """""" + pass + + + @property + def msec(self)->'typing.Any': + """""" + pass + + + def Format(self,_format:'str') -> 'str': + """ + Formats the time value. + +Args: + + _format(str):The format. See the comments section for a description of the supported flags.CommentsThe following format characters are supported.CharacterDescription%aAbbreviated weekday name%AFull weekday name%bAbbreviated month name%BFull month name%cDate and time representation appropriate for locale%dDay of month as decimal number (01 - 31)%HHour in 24-hour format (00 - 23)%IHour in 12-hour format (01 - 12)%jDay of year as decimal number (001 - 366)%mMonth as decimal number (01 - 12)%MMinute as decimal number (00 - 59)%pCurrent locale's A.M./P.M. indicator for 12-hour clock%SSecond as decimal number (00 - 59)%UWeek of year as decimal number, with Sunday as first day of week (00 - 51)%wWeekday as decimal number (0 - 6; Sunday is 0)%WWeek of year as decimal number, with Monday as first day of week (00 - 51)%xDate representation for current locale%XTime representation for current locale%yYear without century, as decimal number (00 - 99)%YYear with century, as decimal number%z, %ZTime-zone name or abbreviation; no characters if time zone is unknown%%Percent signAs in the printf function, the # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.Format CodeMeaning%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%# flag is ignored.%#cLong date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".%#xLong date representation, appropriate to current locale. For example: "Tuesday, March 14, 1995".%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#YRemove leading zeros (if any). + +Returns: + + str + + """ + pass + + +class PyUSER_INFO_0(object): + """A dictionary holding the information in a Win32 USER_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1(object): + """A dictionary holding the information in a Win32 USER_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_10(object): + """A dictionary holding the information in a Win32 USER_INFO_10 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1003(object): + """A dictionary holding the information in a Win32 USER_INFO_1003 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1005(object): + """A dictionary holding the information in a Win32 USER_INFO_1005 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def priv(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_1006(object): + """A dictionary holding the information in a Win32 USER_INFO_1006 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1007(object): + """A dictionary holding the information in a Win32 USER_INFO_1007 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1008(object): + """A dictionary holding the information in a Win32 USER_INFO_1008 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def flags(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_1009(object): + """A dictionary holding the information in a Win32 USER_INFO_1009 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_1010(object): + """A dictionary holding the information in a Win32 USER_INFO_1010 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_1011(object): + """A dictionary holding the information in a Win32 USER_INFO_1011 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_INFO_11(object): + """A dictionary holding the information in a Win32 USER_INFO_11 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def parms(self)->'typing.Union[str]': + """""" + pass + + + @property + def last_logon(self)->'typing.Any': + """""" + pass + + + @property + def last_logoff(self)->'typing.Any': + """""" + pass + + + @property + def bad_pw_count(self)->'typing.Any': + """""" + pass + + + @property + def num_logons(self)->'typing.Any': + """""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """""" + pass + + + @property + def country_code(self)->'typing.Any': + """""" + pass + + + @property + def workstations(self)->'typing.Union[str]': + """""" + pass + + + @property + def max_storage(self)->'typing.Any': + """""" + pass + + + @property + def units_per_week(self)->'typing.Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def code_page(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_2(object): + """A dictionary holding the information in a Win32 USER_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def parms(self)->'typing.Union[str]': + """""" + pass + + + @property + def workstations(self)->'typing.Union[str]': + """""" + pass + + + @property + def last_logon(self)->'typing.Any': + """""" + pass + + + @property + def last_logoff(self)->'typing.Any': + """""" + pass + + + @property + def acct_expires(self)->'typing.Any': + """""" + pass + + + @property + def max_storage(self)->'typing.Any': + """""" + pass + + + @property + def units_per_week(self)->'typing.Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'typing.Any': + """""" + pass + + + @property + def num_logons(self)->'typing.Any': + """""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """""" + pass + + + @property + def country_code(self)->'typing.Any': + """""" + pass + + + @property + def code_page(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_20(object): + """A dictionary holding the information in a Win32 USER_INFO_20 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def user_id(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_3(object): + """A dictionary holding the information in a Win32 USER_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def parms(self)->'typing.Union[str]': + """""" + pass + + + @property + def workstations(self)->'typing.Union[str]': + """""" + pass + + + @property + def last_logon(self)->'typing.Any': + """""" + pass + + + @property + def last_logoff(self)->'typing.Any': + """""" + pass + + + @property + def acct_expires(self)->'typing.Any': + """""" + pass + + + @property + def max_storage(self)->'typing.Any': + """""" + pass + + + @property + def units_per_week(self)->'typing.Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'typing.Any': + """""" + pass + + + @property + def num_logons(self)->'typing.Any': + """""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """""" + pass + + + @property + def country_code(self)->'typing.Any': + """""" + pass + + + @property + def code_page(self)->'typing.Any': + """""" + pass + + + @property + def user_id(self)->'typing.Any': + """""" + pass + + + @property + def primary_group_id(self)->'typing.Any': + """""" + pass + + + @property + def profile(self)->'typing.Union[str]': + """""" + pass + + + @property + def home_dir_drive(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_expired(self)->'typing.Any': + """""" + pass + + +class PyUSER_INFO_4(object): + """A dictionary holding the information in a Win32 USER_INFO_4 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def name(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_age(self)->'typing.Any': + """""" + pass + + + @property + def priv(self)->'typing.Any': + """""" + pass + + + @property + def home_dir(self)->'typing.Union[str]': + """""" + pass + + + @property + def comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + + @property + def script_path(self)->'typing.Union[str]': + """""" + pass + + + @property + def auth_flags(self)->'typing.Any': + """""" + pass + + + @property + def full_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def usr_comment(self)->'typing.Union[str]': + """""" + pass + + + @property + def parms(self)->'typing.Union[str]': + """""" + pass + + + @property + def workstations(self)->'typing.Union[str]': + """""" + pass + + + @property + def last_logon(self)->'typing.Any': + """""" + pass + + + @property + def last_logoff(self)->'typing.Any': + """""" + pass + + + @property + def acct_expires(self)->'typing.Any': + """""" + pass + + + @property + def max_storage(self)->'typing.Any': + """""" + pass + + + @property + def units_per_week(self)->'typing.Any': + """""" + pass + + + @property + def logon_hours(self)->'str': + """""" + pass + + + @property + def bad_pw_count(self)->'typing.Any': + """""" + pass + + + @property + def num_logons(self)->'typing.Any': + """""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """""" + pass + + + @property + def country_code(self)->'typing.Any': + """""" + pass + + + @property + def code_page(self)->'typing.Any': + """""" + pass + + + @property + def user_sid(self)->'PySID': + """""" + pass + + + @property + def primary_group_id(self)->'typing.Any': + """""" + pass + + + @property + def profile(self)->'typing.Union[str]': + """""" + pass + + + @property + def home_dir_drive(self)->'typing.Union[str]': + """""" + pass + + + @property + def password_expired(self)->'typing.Any': + """""" + pass + + +class PyUSER_MODALS_INFO_0(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def min_passwd_len(self)->'typing.Any': + """""" + pass + + + @property + def max_passwd_age(self)->'typing.Any': + """""" + pass + + + @property + def min_passwd_age(self)->'typing.Any': + """""" + pass + + + @property + def force_logoff(self)->'typing.Any': + """""" + pass + + + @property + def password_hist_len(self)->'typing.Any': + """""" + pass + + +class PyUSER_MODALS_INFO_1(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def role(self)->'typing.Any': + """""" + pass + + + @property + def primary(self)->'typing.Union[str]': + """""" + pass + + +class PyUSER_MODALS_INFO_2(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def domain_name(self)->'typing.Union[str]': + """""" + pass + + + @property + def domain_id(self)->'PySID': + """""" + pass + + +class PyUSER_MODALS_INFO_3(object): + """A dictionary holding the information in a Win32 USER_MODALS_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def lockout_duration(self)->'typing.Any': + """""" + pass + + + @property + def lockout_observation_window(self)->'typing.Any': + """""" + pass + + + @property + def usrmod3_lockout_threshold(self)->'typing.Any': + """""" + pass + + +class PyUSE_INFO_0(object): + """A dictionary holding the infomation in a Win32 USE_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'typing.Union[str]': + """""" + pass + + + @property + def remote(self)->'typing.Union[str]': + """""" + pass + + +class PyUSE_INFO_1(object): + """A dictionary holding the infomation in a Win32 USE_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'typing.Union[str]': + """""" + pass + + + @property + def remote(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str, typing.Any]': + """""" + pass + + + @property + def status(self)->'typing.Any': + """""" + pass + + + @property + def asg_type(self)->'typing.Any': + """""" + pass + + + @property + def refcount(self)->'typing.Any': + """""" + pass + + + @property + def usecount(self)->'typing.Any': + """""" + pass + + +class PyUSE_INFO_2(object): + """A dictionary holding the infomation in a Win32 USE_INFO_2 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'typing.Union[str]': + """""" + pass + + + @property + def remote(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str, typing.Any]': + """""" + pass + + + @property + def status(self)->'typing.Any': + """""" + pass + + + @property + def asg_type(self)->'typing.Any': + """""" + pass + + + @property + def refcount(self)->'typing.Any': + """""" + pass + + + @property + def usecount(self)->'typing.Any': + """""" + pass + + + @property + def username(self)->'typing.Union[str]': + """""" + pass + + + @property + def domainname(self)->'typing.Union[str]': + """""" + pass + + +class PyUSE_INFO_3(object): + """A dictionary holding the infomation in a Win32 USE_INFO_3 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def local(self)->'typing.Union[str]': + """""" + pass + + + @property + def remote(self)->'typing.Union[str]': + """""" + pass + + + @property + def password(self)->'typing.Union[str, typing.Any]': + """""" + pass + + + @property + def status(self)->'typing.Any': + """""" + pass + + + @property + def asg_type(self)->'typing.Any': + """""" + pass + + + @property + def refcount(self)->'typing.Any': + """""" + pass + + + @property + def usecount(self)->'typing.Any': + """""" + pass + + + @property + def username(self)->'typing.Union[str]': + """""" + pass + + + @property + def domainname(self)->'typing.Union[str]': + """""" + pass + + + @property + def flags(self)->'typing.Any': + """""" + pass + + +class PyUnicode(object): + """A Python object, representing a Unicode string.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyUrlCacheHANDLE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWAVEFORMATEX(object): + """A Python object, representing a WAVEFORMATEX structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def wFormatTag(self)->'int': + """Waveform-audio format type. pywintypes only defines WAVE_FORMAT_PCM as a constant. Other values must be looked up in the mmsystem.h header file.""" + pass + + + @property + def nChannels(self)->'int': + """Number of channels. 1 for Mono, 2 for Stereo, anything, but never 5.1.""" + pass + + + @property + def nSamplesPerSec(self)->'int': + """Sample rate, in samples per second (hertz), that each channel should be played or recorded. If wFormatTag is WAVE_FORMAT_PCM, then common values for nSamplesPerSec are 8000, 11025, 22050, and 44100 Hz""" + pass + + + @property + def nAvgBytesPerSec(self)->'int': + """Required average data-transfer rate, in bytes per second, for the format tag. If wFormatTag is WAVE_FORMAT_PCM, nAvgBytesPerSec should be equal to the product of nSamplesPerSec and nBlockAlign.""" + pass + + + @property + def nBlockAlign(self)->'int': + """Block alignment, in bytes. The block alignment is the minimum atomic unit of data for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, nBlockAlign should be equal to the product of nChannels and wBitsPerSample divided by 8 (bits per byte). For non-PCM formats, this member must be computed according to the manufacturer’s specification of the format tag.""" + pass + + + @property + def wBitsPerSample(self)->'int': + """Bits per sample for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, then wBitsPerSample should be equal to 8 or 16. Sentinel""" + pass + + +class PyWINHTTP_AUTOPROXY_OPTIONS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWINHTTP_PROXY_INFO(object): + """A tuple representing a WINHTTP_PROXY_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyWKSTA_INFO_100(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_100 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """Indicates platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'typing.Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'typing.Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'typing.Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'typing.Any': + """Minor version number of operating system running on the computer""" + pass + + +class PyWKSTA_INFO_101(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_101 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """Indicates platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'typing.Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'typing.Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'typing.Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'typing.Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def lanroot(self)->'typing.Union[str]': + """Path to the LANMAN directory""" + pass + + +class PyWKSTA_INFO_102(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_102 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def platform_id(self)->'typing.Any': + """Indicate platform level to use to retrieve platform specific information""" + pass + + + @property + def computername(self)->'typing.Union[str]': + """Name of the local computer""" + pass + + + @property + def langroup(self)->'typing.Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def ver_major(self)->'typing.Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def ver_minor(self)->'typing.Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def lanroot(self)->'typing.Union[str]': + """Path to the LANMAN directory""" + pass + + + @property + def logged_on_users(self)->'typing.Any': + """Number of users who are logged on to the local computer""" + pass + + +class PyWKSTA_INFO_302(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_302 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'typing.Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'typing.Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki302_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'typing.Any': + """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" + pass + + + @property + def keep_conn(self)->'typing.Any': + """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" + pass + + + @property + def keep_search(self)->'typing.Any': + """Defines the number of seconds an inactive search will continue.""" + pass + + + @property + def max_cmds(self)->'typing.Any': + """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" + pass + + + @property + def num_work_buf(self)->'typing.Any': + """Specifies the number of internal buffers the computer has.""" + pass + + + @property + def siz_work_buf(self)->'typing.Any': + """Specifies the size, in bytes, of each internal buffer.""" + pass + + + @property + def max_wrk_cache(self)->'typing.Any': + """Specifies the maximum size, in bytes, of an internal cache buffer.""" + pass + + + @property + def siz_error(self)->'typing.Any': + """Specifies the size, in bytes, of an internal error buffer.""" + pass + + + @property + def num_alerts(self)->'typing.Any': + """Specifies the maximum number of clients that can receive alert messages. (This member is not supported under MS-DOS.) The Alerter service registers at least three clients when it begins to run.""" + pass + + + @property + def num_services(self)->'typing.Any': + """Specifies the number of services that can be installed on the computer at any time.""" + pass + + + @property + def errlog_sz(self)->'typing.Any': + """Specifies the maximum size, in kilobytes, of the client's error log file.""" + pass + + + @property + def print_buf_time(self)->'typing.Any': + """Specifies the number of seconds the server waits before closing inactive compatibility-mode print jobs.""" + pass + + + @property + def num_char_buf(self)->'typing.Any': + """Specifies the number of character pipe buffers and device buffers the client can have.""" + pass + + + @property + def siz_char_buf(self)->'typing.Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def wrk_heuristics(self)->'typing.Union[str]': + """Pointer to a Unicode string of flags used to control a client's operation.""" + pass + + + @property + def mailslots(self)->'typing.Any': + """Specifies the maximum number of mailslots allowed.""" + pass + + + @property + def num_dgram_buf(self)->'typing.Any': + """Specifies the number of buffers to allocate for receiving datagrams.""" + pass + + +class PyWKSTA_INFO_402(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_402 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'typing.Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'typing.Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki402_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'typing.Union[str]': + """Name of the domain to which computer belongs""" + pass + + + @property + def keep_conn(self)->'typing.Any': + """Major version number of operating system running on the computer""" + pass + + + @property + def keep_search(self)->'typing.Any': + """Minor version number of operating system running on the computer""" + pass + + + @property + def max_cmds(self)->'typing.Any': + """..""" + pass + + + @property + def num_work_buf(self)->'typing.Any': + """Number of users who are logged on to the local computer""" + pass + + + @property + def siz_work_buf(self)->'typing.Any': + """Number of users who are logged on to the local computer""" + pass + + + @property + def max_wrk_cache(self)->'typing.Any': + """..""" + pass + + + @property + def sess_timeout(self)->'typing.Any': + """..""" + pass + + + @property + def siz_error(self)->'typing.Any': + """..""" + pass + + + @property + def num_alerts(self)->'typing.Any': + """..""" + pass + + + @property + def num_services(self)->'typing.Any': + """..""" + pass + + + @property + def errlog_sz(self)->'typing.Any': + """..""" + pass + + + @property + def print_buf_time(self)->'typing.Any': + """..""" + pass + + + @property + def num_char_buf(self)->'typing.Any': + """..""" + pass + + + @property + def siz_char_buf(self)->'typing.Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def mailslots(self)->'typing.Any': + """..""" + pass + + + @property + def num_dgram_buf(self)->'typing.Any': + """..""" + pass + + + @property + def max_threads(self)->'typing.Any': + """Number of threads the computer can dedicate to the network""" + pass + + +class PyWKSTA_INFO_502(object): + """A dictionary holding the infomation in a Win32 WKSTA_INFO_502 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def char_wait(self)->'typing.Any': + """number of seconds the computer will wait for a remote resource to become available""" + pass + + + @property + def collection_time(self)->'typing.Any': + """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki502_maximum_collection_count, whichever comes first.""" + pass + + + @property + def maximum_collection_count(self)->'typing.Any': + """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" + pass + + + @property + def keep_conn(self)->'typing.Any': + """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" + pass + + + @property + def max_cmds(self)->'typing.Any': + """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" + pass + + + @property + def max_wrk_cache(self)->'typing.Any': + """Indicates the number of seconds the server waits before disconnecting an inactive session.""" + pass + + + @property + def siz_char_buf(self)->'typing.Any': + """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" + pass + + + @property + def lock_quota(self)->'typing.Any': + """TODO""" + pass + + + @property + def lock_increment(self)->'typing.Any': + """TODO""" + pass + + + @property + def lock_maximum(self)->'typing.Any': + """TODO""" + pass + + + @property + def pipe_increment(self)->'typing.Any': + """TODO""" + pass + + + @property + def pipe_maximum(self)->'typing.Any': + """TODO""" + pass + + + @property + def cache_file_timeout(self)->'typing.Any': + """TODO""" + pass + + + @property + def dormant_file_limit(self)->'typing.Any': + """TODO""" + pass + + + @property + def read_ahead_throughput(self)->'typing.Any': + """TODO""" + pass + + + @property + def num_mailslot_buffers(self)->'typing.Any': + """TODO""" + pass + + + @property + def num_srv_announce_buffers(self)->'typing.Any': + """TODO""" + pass + + + @property + def max_illegal_datagram_events(self)->'typing.Any': + """TODO""" + pass + + + @property + def illegal_datagram_event_reset_frequency(self)->'typing.Any': + """TODO""" + pass + + + @property + def log_election_packets(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_opportunistic_locking(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_unlock_behind(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_close_behind(self)->'typing.Any': + """TODO""" + pass + + + @property + def buf_named_pipes(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_lock_read_unlock(self)->'typing.Any': + """TODO""" + pass + + + @property + def utilize_nt_caching(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_raw_read(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_raw_write(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_write_raw_data(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_encryption(self)->'typing.Any': + """TODO""" + pass + + + @property + def buf_files_deny_write(self)->'typing.Any': + """TODO""" + pass + + + @property + def buf_read_only_files(self)->'typing.Any': + """TODO""" + pass + + + @property + def force_core_create_mode(self)->'typing.Any': + """TODO""" + pass + + + @property + def use_512_byte_max_transfer(self)->'typing.Any': + """TODO""" + pass + + +class PyWKSTA_TRANSPORT_INFO_0(object): + """A dictionary holding the infomation in a Win32 WKSTA_TRANSPORT_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def quality_of_service(self)->'typing.Any': + """Supplies a value that specifies the search order of the transport protocol with respect to other transport protocols. The highest value is searched first.""" + pass + + + @property + def number_of_vcs(self)->'typing.Any': + """Specifies the number of clients communicating with the server using this transport protocol.""" + pass + + + @property + def transport_name(self)->'typing.Union[str]': + """Specifies the device name of the transport protocol.""" + pass + + + @property + def transport_address(self)->'typing.Union[str]': + """Specifies the address of the server on this transport protocol.""" + pass + + + @property + def wan_ish(self)->'typing.Any': + """This member is ignored by the NetWkstaTransportAdd function. For the NetWkstaTransportEnum function, this member indicates that this transport protocol is a WAN transport protocol. This member is set TRUE for NetBIOS/TCIP; it is set FALSE for NetBEUI and NetBIOS/IPX.""" + pass + + +class PyWKSTA_USER_INFO_0(object): + """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_0 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def username(self)->'typing.Union[str]': + """Name of user currently logged on to the workstation""" + pass + + +class PyWKSTA_USER_INFO_1(object): + """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_1 structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def username(self)->'typing.Union[str]': + """Name of user currently logged on to the workstation""" + pass + + + @property + def logon_domain(self)->'typing.Union[str]': + """Returns the domain name of the user account of the user currently logged on to the workstation.""" + pass + + + @property + def oth_domains(self)->'typing.Union[str]': + """Returns the list of other operating system domains browsed by the workstation. The domain names are separated by blanks.""" + pass + + + @property + def logon_server(self)->'typing.Union[str]': + """Returns the name of the computer that authenticated the server.""" + pass + + +class PyWNDCLASS(object): + """A Python object, representing an WNDCLASS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def style(self)->'int': + """""" + pass + + + @property + def cbWndExtra(self)->'int': + """""" + pass + + + @property + def hInstance(self)->'int': + """""" + pass + + + @property + def hIcon(self)->'int': + """""" + pass + + + @property + def hCursor(self)->'int': + """""" + pass + + + @property + def hbrBackground(self)->'int': + """These 3 handled manually in PyWNDCLASS::getattro/setattro. The pymeth below is used as an end tag, so these props will be lost if below it""" + pass + + + @property + def lpszMenuName(self)->'typing.Union[str]': + """""" + pass + + + @property + def lpszClassName(self)->'typing.Union[str]': + """""" + pass + + + @property + def lpfnWndProc(self)->'typing.Any': + """MethodsSetDialogProcSets the WNDCLASS to be for a dialog box. """ + pass + + + def SetDialogProc(self,) -> 'None': + """ + Sets the WNDCLASS to be for a dialog box + +Args: + + + +Returns: + + None + + """ + pass + + +class PyXFORM(object): + """Dict representing an XFORM struct used as a world transformation matrix + +All members are optional, defaulting to 0.0.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def M11(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M12(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M21(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def M22(self)->'float': + """Usage is dependent on operation performed, see MSDN docs""" + pass + + + @property + def Dx(self)->'float': + """Horizontal offset in logical units""" + pass + + + @property + def Dy(self)->'float': + """Vertical offset in logical units""" + pass + + +class Pymmapfile(object): + """Object that provides access to memory-mapped file operations.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def close(self,) -> 'None': + """ + Closes the file mapping handle and releases mapped view + +Args: + + + +Returns: + + None + + """ + pass + + + def find(self,needle:'typing.Any',start:'typing.Any') -> 'typing.Any': + """ + Finds a string in the buffer. + +Args: + + needle(typing.Any):String to be located + start(typing.Any):Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found + +Returns: + + typing.Any:Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found + + + """ + pass + + + def flush(self,offset:'typing.Any'=0,size:'typing.Any'=0) -> 'None': + """ + Flushes memory buffer to disk + +Args: + + offset(typing.Any):Position in buffer at which to flush + size(typing.Any):Number of bytes to flush, 0 to flush remainder of buffer past the offset + +Returns: + + None + + """ + pass + + + def move(self,dest:'typing.Any',src:'typing.Any',count:'typing.Any') -> 'None': + """ + Moves data from one place in buffer to another + +Args: + + dest(typing.Any):Destination position in buffer + src(typing.Any):Source position in buffer + count(typing.Any):Number of bytes to move + +Returns: + + None + + """ + pass + + + def read(self,num_bytes:'typing.Any') -> 'typing.Any': + """ + Returns specified number of bytes from buffer, and advances current position + +Args: + + num_bytes(typing.Any):Number of bytes to read + +Returns: + + typing.Any + + """ + pass + + + def read_byte(self,) -> 'typing.Any': + """ + Reads a single character from current pos + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def read_line(self,) -> 'typing.Any': + """ + Reads data from current pos up to next EOL. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def resize(self,MaximumSize:'typing.Any',FileOffset:'typing.Any'=0,NumberOfBytesToMap:'typing.Any'=0) -> 'None': + """ + Resizes the file mapping and view. + +Args: + + MaximumSize(typing.Any):New size for file mapping. Use a multiple of system page size (see win32api::GetSystemInfo) + FileOffset(typing.Any):Offset into file mapping. Must be multiple of allocation granularity. + NumberOfBytesToMap(typing.Any):New view size. Specify a multiple of system page size.CommentsIf MaximumSize is 0, only the mapped view will be affected.Accepts keyword args. + +Returns: + + None + + """ + pass + + + def seek(self,dist:'typing.Any',how:'typing.Any'=0) -> 'None': + """ + Changes current position + +Args: + + dist(typing.Any):Distance to seek + how(typing.Any):Pos from which to seekhowmeaning0Seek from start of buffer1Seek from current position2Seek backwards from end of buffer + +Returns: + + None + + """ + pass + + + def size(self,) -> 'typing.Any': + """ + Returns size of current view + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def tell(self,) -> 'typing.Any': + """ + Returns current position in buffer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def write(self,data:'typing.Any') -> 'None': + """ + Places data at current pos in buffer. + +Args: + + data(typing.Any):Data to be written + +Returns: + + None + + """ + pass + + + def write_byte(self,char:'typing.Any') -> 'None': + """ + Writes a single character of data + +Args: + + char(typing.Any):Single byte to be placed in buffer + +Returns: + + None + + """ + pass + + +class RASDIALEXTENSIONS(object): + """An object that describes a Win32 RASDIALEXTENSIONS structure + +TRUE*/)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwfOptions(self)->'int': + """(fOptions may also be used)""" + pass + + + @property + def hwndParent(self)->'int': + """""" + pass + + + @property + def reserved(self)->'int': + """""" + pass + + + @property + def reserved1(self)->'int': + """""" + pass + + + @property + def RasEapInfo(self)->'typing.Any': + """""" + pass + + +class RASDIALPARAMS(object): + """A tuple that describes a Win32 RASDIALPARAMS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SC_ACTION(object): + """Tuple of 2 ints (Type,Delay) used to represent an SC_ACTION structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Type(self)->'typing.Any': + """One of SC_ACTION_NONE, SC_ACTION_REBOOT, SC_ACTION_RESTART, SC_ACTION_RUN_COMMAND""" + pass + + + @property + def Delay(self)->'typing.Any': + """Time delay before specified action is taken (in milliseconds)""" + pass + + +class SERVICE_FAILURE_ACTIONS(object): + """A dictionary representing a SERVICE_FAILURE_ACTIONS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ResetPeriod(self)->'typing.Any': + """Indicates how many seconds to wait to reset the failure count, can be INFINITE""" + pass + + + @property + def RebootMsg(self)->'typing.Union[str, typing.Any]': + """Message displayed when reboot action is taken""" + pass + + + @property + def Command(self)->'typing.Union[str, typing.Any]': + """Command line to execute for SC_ACTION_RUN_COMMAND""" + pass + + + @property + def Actions(self)->'typing.Any': + """A tuple of SC_ACTION tuples""" + pass + + +class SERVICE_STATUS(object): + """A Win32 service status object is represented by a tuple:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TRACKMOUSEEVENT(object): + """A tuple of (dwFlags, hwndTrack, dwHoverTime)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class ULARGE_INTEGER(object): + """A Python object used wherever a COM ULARGE_INTEGER is used.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class WIN32_FIND_DATA(object): + """A tuple representing a WIN32_FIND_DATA structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class com_error(object): + """An exception raised when a COM exception occurs.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class connection(object): + """An object representing an ODBC connection""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def setautocommit(self,c:'typing.Any') -> 'None': + """ + Sets the autocommit mode. + +Args: + + c(typing.Any):The boolean autocommit mode. + +Returns: + + None + + """ + pass + + + def commit(self,) -> 'None': + """ + Commits a transaction. + +Args: + + + +Returns: + + None + + """ + pass + + + def rollback(self,) -> 'None': + """ + Rollsback a transaction. + +Args: + + + +Returns: + + None + + """ + pass + + + def cursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def close(self,) -> 'None': + """ + Closes the connection. + +Args: + + + +Returns: + + None + + """ + pass + + +class cursor(object): + """An object representing an ODBC cursor.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def close(self,) -> 'None': + """ + Closes the cursor + +Args: + + + +Returns: + + None + + """ + pass + + + def execute(self,sql:'str',arg:'typing.Any') -> 'typing.Any': + """ + Execute some SQL + +Args: + + sql(str):The SQL to execute + arg(typing.Any):Input variables. + +Returns: + + typing.Any + + """ + pass + + + def fetchone(self,) -> 'typing.Any': + """ + Fetch one row of data + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def fetchmany(self,) -> 'typing.List[typing.Any]': + """ + Fetch many rows of data + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def fetchall(self,) -> 'typing.List[typing.Any]': + """ + Fetch all rows of data + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def setinputsizes(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def setoutputsize(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class error(object): + """An exception raised when a win32 error occurs""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class COMPONENT(object): + """A dictionary containing data to fill a COMPPOS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ID(self)->'typing.Any': + """Id of component, ignored when adding a new component""" + pass + + + @property + def ComponentType(self)->'typing.Any': + """One of shellcon.COMP_TYPE_* values""" + pass + + + @property + def Checked(self)->'typing.Any': + """True indicates item is currently displayed""" + pass + + + @property + def fDirty(self)->'typing.Any': + """Indicates if unsaved changes exist""" + pass + + + @property + def NoScroll(self)->'typing.Any': + """True disables scrolling""" + pass + + + @property + def Pos(self)->'typing.Any': + """COMPPOS dictionary determining window size and placement""" + pass + + + @property + def FriendlyName(self)->'typing.Any': + """String of at most MAX_PATH-1 characters, truncated if longer""" + pass + + + @property + def Source(self)->'typing.Any': + """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" + pass + + + @property + def SubscribedURL(self)->'typing.Any': + """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" + pass + + + @property + def CurItemState(self)->'typing.Any': + """One of shellcon.IS_* flags""" + pass + + + @property + def Original(self)->'typing.Any': + """COMPSTATEINFO dictionary""" + pass + + + @property + def Restored(self)->'typing.Any': + """COMPSTATEINFO dictionary""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class COMPONENTSOPT(object): + """A dictionary containing data to fill a COMPONENTSOPT struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def EnableComponents(self)->'typing.Any': + """True if components are enabled""" + pass + + + @property + def ActiveDesktop(self)->'typing.Any': + """True if Active Desktop is enabled""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class COMPPOS(object): + """A dictionary containing data to fill a COMPPOS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'typing.Any': + """""" + pass + + + @property + def Top(self)->'typing.Any': + """""" + pass + + + @property + def Width(self)->'typing.Any': + """""" + pass + + + @property + def Height(self)->'typing.Any': + """""" + pass + + + @property + def Index(self)->'typing.Any': + """""" + pass + + + @property + def CanResize(self)->'typing.Any': + """""" + pass + + + @property + def CanResizeX(self)->'typing.Any': + """""" + pass + + + @property + def CanResizeY(self)->'typing.Any': + """""" + pass + + + @property + def PreferredLeftPercent(self)->'typing.Any': + """""" + pass + + + @property + def PreferredTopPercent(self)->'typing.Any': + """""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class COMPSTATEINFO(object): + """A dictionary containing data to fill a COMPSTATEINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Left(self)->'typing.Any': + """Specified as screen coordinates""" + pass + + + @property + def Top(self)->'typing.Any': + """Specified as screen coordinates""" + pass + + + @property + def Width(self)->'typing.Any': + """Measured in pixels""" + pass + + + @property + def Height(self)->'typing.Any': + """Measured in pixels""" + pass + + + @property + def dwItemState(self)->'typing.Any': + """One of IS_NORMAL, IS_FULLSCREEN IS_SPLIT""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class DEFCONTENTMENU(object): + """A tuple representing a DEFCONTEXTMENU structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class ELEMDESC(object): + """An ELEMDESC is respresented as a tuple of""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class EXP_DARWIN_LINK(object): + """Dictionary containing information for a EXP_DARWIN_LINK struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def DarwinID(self)->'typing.Any': + """The Windows Installer id for the link""" + pass + + + @property + def wDarwinID(self)->'typing.Any': + """The installer id as Unicode""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class EXP_SPECIAL_FOLDER(object): + """Dictionary containing information for a EXP_SPECIAL_FOLDER struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def idSpecialFolder(self)->'typing.Any': + """The special folder id of the target (shellcon.CSIDL_*)""" + pass + + + @property + def Offset(self)->'typing.Any': + """Offset into the link's PIDL""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class EXP_SZ_LINK(object): + """Dictionary containing information for an EXP_SZ_LINK or EXP_SZ_ICON struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def Target(self)->'typing.Any': + """The link's target or icon location""" + pass + + + @property + def wTarget(self)->'typing.Any': + """The target in Unicode form""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class FUNCDESC(object): + """A FUNCDESC object represents a COM TYPEATTR structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def memid(self)->'int': + """""" + pass + + + @property + def scodeArray(self)->'typing.Tuple[typing.Any, ...]': + """""" + pass + + + @property + def args(self)->'typing.Tuple[ELEMDESC, ...]': + """""" + pass + + + @property + def funckind(self)->'typing.Any': + """""" + pass + + + @property + def invkind(self)->'typing.Any': + """""" + pass + + + @property + def callconv(self)->'typing.Any': + """""" + pass + + + @property + def cParamsOpt(self)->'typing.Any': + """""" + pass + + + @property + def oVft(self)->'typing.Any': + """""" + pass + + + @property + def rettype(self)->'ELEMDESC': + """""" + pass + + + @property + def wFuncFlags(self)->'typing.Any': + """""" + pass + + +class IDLDESC(object): + """An IDLDESC is respresented as""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class MAPIINIT_0(object): + """A MAPIINIT_0 is represented as a tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class NT_CONSOLE_PROPS(object): + """Dictionary containing information for a NT_CONSOLE_PROPS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def FillAttribute(self)->'typing.Any': + """Character attributes for fill operations""" + pass + + + @property + def PopupFillAttribute(self)->'typing.Any': + """Fill attributes for popups""" + pass + + + @property + def ScreenBufferSize(self)->'typing.Tuple[typing.Any, typing.Any]': + """Size of console screen buffer, in character cells""" + pass + + + @property + def WindowSize(self)->'typing.Tuple[typing.Any, typing.Any]': + """Size of console window in character cells""" + pass + + + @property + def WindowOrigin(self)->'typing.Tuple[typing.Any, typing.Any]': + """Window position, in screen coordinates""" + pass + + + @property + def nFont(self)->'typing.Any': + """Number of font to be displayed. See win32console::GetNumberOfConsoleFonts""" + pass + + + @property + def InputBufferSize(self)->'typing.Any': + """Size of console's input buffer""" + pass + + + @property + def FontSize(self)->'typing.Tuple[typing.Any, typing.Any]': + """Size of font""" + pass + + + @property + def FontFamily(self)->'typing.Any': + """Font family""" + pass + + + @property + def FontWeight(self)->'typing.Any': + """Controls thickness of displayed font""" + pass + + + @property + def FaceName(self)->'typing.Any': + """Name of font face, 31 characters at most""" + pass + + + @property + def CursorSize(self)->'typing.Any': + """Relative size of cursor, expressed as percent of character size""" + pass + + + @property + def FullScreen(self)->'typing.Any': + """Causes console to run in full screen mode""" + pass + + + @property + def QuickEdit(self)->'typing.Any': + """""" + pass + + + @property + def InsertMode(self)->'typing.Any': + """""" + pass + + + @property + def AutoPosition(self)->'typing.Any': + """Lets system determine window placement""" + pass + + + @property + def HistoryBufferSize(self)->'typing.Any': + """Size of command line history buffer""" + pass + + + @property + def NumberOfHistoryBuffers(self)->'typing.Any': + """""" + pass + + + @property + def HistoryNoDup(self)->'typing.Any': + """""" + pass + + + @property + def ColorTable(self)->'typing.Any': + """Tuple of 16 ints containing console's color attributes""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class NT_FE_CONSOLE_PROPS(object): + """Dictionary containing information for a NT_FE_CONSOLE_PROPS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Signature(self)->'typing.Any': + """The type of data block, one of shellcon.*_SIG values""" + pass + + + @property + def CodePage(self)->'typing.Any': + """The codepage to be used for console text""" + pass + + + @property + def Size(self)->'typing.Any': + """Size of structure, ignored on input""" + pass + + +class PROPSPEC(object): + """Identifies a property. Can be either an int property id, or a str/unicode property name.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyADSVALUE(object): + """A tuple:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyADS_ATTR_INFO(object): + """Represents a ADS_ATTR_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def AttrName(self)->'typing.Any': + """The name""" + pass + + + @property + def ControlCode(self)->'int': + """""" + pass + + + @property + def ADsType(self)->'int': + """""" + pass + + + @property + def Values(self)->'typing.List[typing.Any]': + """""" + pass + + +class PyADS_OBJECT_INFO(object): + """Represents a ADS_OBJECT_INFO structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def RDN(self)->'typing.Any': + """The name""" + pass + + + @property + def ObjectDN(self)->'typing.Any': + """""" + pass + + + @property + def ParentDN(self)->'typing.Any': + """""" + pass + + + @property + def ClassName(self)->'typing.Any': + """""" + pass + + +class PyADS_SEARCHPREF_INFO(object): + """A tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyBIND_OPTS(object): + """Dictionary representation of a BIND_OPTS struct + +May eventually be extended to include BIND_OPTS2 members""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Flags(self)->'typing.Any': + """Value from BIND_FLAGS enum: BIND_MAYBOTHERUSER, BIND_JUSTTESTEXISTENCE or 0""" + pass + + + @property + def Mode(self)->'typing.Any': + """Combination of storagecon.STGM_* values""" + pass + + + @property + def TickCountDeadline(self)->'typing.Any': + """Operation timeout in milliseconds""" + pass + + + @property + def cbStruct(self)->'typing.Any': + """Size of struct, ignored on input""" + pass + + +class PyCMINVOKECOMMANDINFO(object): + """A tuple of parameters to be converted to a CMINVOKECOMMANDINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDSBCAPS(object): + """A Python object, representing a DSBCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Flags that specify buffer-object capabilities.FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" + pass + + + @property + def nChannels(self)->'int': + """Size of the buffer, in bytes.""" + pass + + + @property + def dwUnlockTransferRate(self)->'int': + """Specifies the rate, in kilobytes per second, at which data is transferred to the buffer memory when IDirectSoundBuffer::Unlock is called. High-performance applications can use this value to determine the time required for IDirectSoundBuffer::Unlock to execute. For software buffers located in system memory, the rate will be very high because no processing is required. For hardware buffers, the rate might be slower because the buffer might have to be downloaded to the sound card, which might have a limited transfer rate.""" + pass + + + @property + def nAvgBytesPerSec(self)->'int': + """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle. Sentinel""" + pass + + +class PyDSBUFFERDESC(object): + """A Python object, representing a DSBUFFERDESC structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Specify one or more of the following:FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" + pass + + + @property + def dwBufferBytes(self)->'int': + """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" + pass + + + @property + def lpwfxFormat(self)->'typing.Any': + """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" + pass + + +class PyDSCAPS(object): + """A Python object, representing a DSCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be one or more of the following:FlagDescriptionDSCAPS_PRIMARYMONOThe device supports monophonic primary buffers.DSCAPS_PRIMARYSTEREOThe device supports stereo primary buffers.DSCAPS_PRIMARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_PRIMARY16BITThe device supports primary sound buffers with 16-bit samples.DSCAPS_CONTINUOUSRATEThe device supports all sample rates between the dwMinSecondarySampleRate and dwMaxSecondarySampleRate member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency.DSCAPS_EMULDRIVERThe device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected.DSCAPS_CERTIFIEDThis driver has been tested and certified by Microsoft.DSCAPS_SECONDARYMONOThe device supports hardware-mixed monophonic secondary buffers.DSCAPS_SECONDARYSTEREOThe device supports hardware-mixed stereo secondary buffers.DSCAPS_SECONDARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_SECONDARY16BITThe device supports hardware-mixed secondary sound buffers with 16-bit samples.""" + pass + + + @property + def dwMinSecondarySampleRate(self)->'int': + """Minimum sample rate supported by this device's hardware secondary sound buffers.""" + pass + + + @property + def dwMaxSecondarySampleRate(self)->'int': + """Maximum sample rate supported by this device's hardware secondary sound buffers.""" + pass + + + @property + def dwPrimaryBuffers(self)->'int': + """Number of primary buffers supported. This value will always be 1.""" + pass + + + @property + def dwMaxHwMixingAllBuffers(self)->'int': + """Specifies the total number of buffers that can be mixed in hardware. This member can be less than the sum of dwMaxHwMixingStaticBuffers and dwMaxHwMixingStreamingBuffers. Resource tradeoffs frequently occur.""" + pass + + + @property + def dwMaxHwMixingStaticBuffers(self)->'int': + """Specifies the maximum number of static sound buffers.""" + pass + + + @property + def dwMaxHwMixingStreamingBuffers(self)->'int': + """Specifies the maximum number of streaming sound buffers.""" + pass + + + @property + def dwFreeHwMixingAllBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwFreeHwMixingStaticBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwFreeHwMixingStreamingBuffers(self)->'int': + """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" + pass + + + @property + def dwMaxHw3DAllBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwMaxHw3DStaticBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwMaxHw3DStreamingBuffers(self)->'int': + """Description of the hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DAllBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DStaticBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwFreeHw3DStreamingBuffers(self)->'int': + """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" + pass + + + @property + def dwTotalHwMemBytes(self)->'int': + """Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.""" + pass + + + @property + def dwFreeHwMemBytes(self)->'int': + """Size, in bytes, of the free memory on the sound card.""" + pass + + + @property + def dwMaxContigFreeHwMemBytes(self)->'int': + """Size, in bytes, of the largest contiguous block of free memory on the sound card.""" + pass + + + @property + def dwUnlockTransferRateHwBuffers(self)->'int': + """Description of the rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the IDirectSoundBuffer::Update method.""" + pass + + + @property + def dwPlayCpuOverheadSwBuffers(self)->'int': + """Description of the processing overhead, as a percentage of the central processing unit, needed to mix software buffers (those located in main system memory). This varies according to the bus type, the processor type, and the clock speed. The unlock transfer rate for software buffers is 0 because the data need not be transferred anywhere. Similarly, the play processing overhead for hardware buffers is 0 because the mixing is done by the sound device.""" + pass + + +class PyDSCBCAPS(object): + """A Python object, representing a DSCBCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be 0 or DSCBCAPS_EMULDRIVER (indicates that no DirectSound Device is available and standard wave audio functions are being used).""" + pass + + + @property + def dwBufferBytes(self)->'int': + """The size, in bytes, of the capture buffer.""" + pass + + +class PyDSCBUFFERDESC(object): + """A Python object, representing a DSCBUFFERDESC structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Can be zero or the following flag:FlagDescriptionDSCBCAPS_WAVEMAPPEDThe Win32 wave mapper will be used for formats not supported by the device.""" + pass + + + @property + def dwBufferBytes(self)->'int': + """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" + pass + + + @property + def lpwfxFormat(self)->'typing.Any': + """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" + pass + + +class PyDSCCAPS(object): + """A Python object, representing a DSCCAPS structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dwFlags(self)->'int': + """Specifies device capabilities. Can be zero or the following flag:FlagDescriptionDSCCAPS_EMULDRIVERIndicates that no DirectSound Device is available and standard wave audio functions are being used.""" + pass + + + @property + def dwFormats(self)->'int': + """Bitset of supported WAVE_FORMAT formats.""" + pass + + + @property + def dwChannels(self)->'int': + """Number of channels supported by the device.""" + pass + + +class PyDSOP_FILTER_FLAGS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def uplevel(self)->'PyDSOP_UPLEVEL_FILTER_FLAGS': + """""" + pass + + + @property + def downlevel(self)->'typing.Any': + """""" + pass + + +class PyDSOP_SCOPE_INIT_INFO(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def type(self)->'typing.Any': + """""" + pass + + + @property + def scope(self)->'typing.Any': + """""" + pass + + + @property + def hr(self)->'typing.Any': + """""" + pass + + + @property + def dcName(self)->'str': + """""" + pass + + + @property + def filterFlags(self)->'PyDSOP_FILTER_FLAGS': + """""" + pass + + +class PyDSOP_SCOPE_INIT_INFOs(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyDSOP_UPLEVEL_FILTER_FLAGS(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def bothModes(self)->'typing.Any': + """""" + pass + + + @property + def mixedModeOnly(self)->'typing.Any': + """""" + pass + + + @property + def nativeModeOnly(self)->'typing.Any': + """""" + pass + + +class PyFORMATETC(object): + """Tuple representing a FORMATETC struct describing an OLE data format""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyGFileOperationProgressSink(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def StartOperations(self,) -> 'None': + """ + Called as operation begins, before any modifications are done + +Args: + + + +Returns: + + None + + """ + pass + + + def FinishOperations(self,Result:'typing.Any') -> 'None': + """ + Called after all actions have been performed + +Args: + + Result(typing.Any):HRESULT of last operation performed + +Returns: + + None + + """ + pass + + + def PreRenameItem(self,Flags:'typing.Any',Item:'PyIShellItem',NewName:'typing.Any') -> 'None': + """ + Called before each file rename + +Args: + + Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Shell interface of the copied item + NewName(typing.Any):New display name of the item + +Returns: + + None + + """ + pass + + + def PostRenameItem(self,Flags:'typing.Any',Item:'PyIShellItem',NewName:'typing.Any',hrRename:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': + """ + Called after each file rename + +Args: + + Flags(typing.Any):Flags specifying rename behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Shell interface of item before rename + NewName(typing.Any):The new name of the item, may be mangled to resolve filename conflicts + hrRename(typing.Any):HRESULT of the rename operation + NewlyCreated(PyIShellItem):Shell interface of the item after rename + +Returns: + + None + + """ + pass + + + def PreMoveItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': + """ + Called before each move operation + +Args: + + Flags(typing.Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):The item to be moved + DestinationFolder(PyIShellItem):The folder into which it will be moved + NewName(typing.Any):Name of moved item, may be None if not to be changed + +Returns: + + None + + """ + pass + + + def PostMoveItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any',hrMove:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': + """ + Called after each move operation + +Args: + + Flags(typing.Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Interface of the item before it was moved + DestinationFolder(PyIShellItem):The folder into which it was moved + NewName(typing.Any):Name of item in its new location, may be mangled in case of conflict + hrMove(typing.Any):HRESULT of the move operation + NewlyCreated(PyIShellItem):Shell interface of the item in its new location + +Returns: + + None + + """ + pass + + + def PreCopyItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': + """ + Called before each copy operation + +Args: + + Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):The item to be copied + DestinationFolder(PyIShellItem):Folder into which it will be copied + NewName(typing.Any):Name to be given to the copy, will be None if keeping original name + +Returns: + + None + + """ + pass + + + def PostCopyItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any',hrCopy:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': + """ + Called after each copy operation + +Args: + + Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):The original item + DestinationFolder(PyIShellItem):Folder into which it was copied + NewName(typing.Any):Name of item after copy, may be mangled in case of name conflict + hrCopy(typing.Any):HRESULT of the copy operation + NewlyCreated(PyIShellItem):Shell interface of the copy + +Returns: + + None + + """ + pass + + + def PreDeleteItem(self,Flags:'typing.Any',Item:'PyIShellItem') -> 'None': + """ + Called before each delete operation + +Args: + + Flags(typing.Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Item to be deleted + +Returns: + + None + + """ + pass + + + def PostDeleteItem(self,Flags:'typing.Any',Item:'PyIShellItem',hrDelete:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': + """ + Called after each delete operation + +Args: + + Flags(typing.Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags + Item(PyIShellItem):Item that was deleted + hrDelete(typing.Any):HRESULT of the delete operation + NewlyCreated(PyIShellItem):Item in the recycle bin, or None if deleted without recycling + +Returns: + + None + + """ + pass + + + def PreNewItem(self,Flags:'typing.Any',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': + """ + Called before each new file is created + +Args: + + Flags(typing.Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags + DestinationFolder(PyIShellItem):Folder where item will be created + NewName(typing.Any):Name of item to be created + +Returns: + + None + + """ + pass + + + def PostNewItem(self,Flags:'typing.Any',DestinationFolder:'PyIShellItem',NewName:'typing.Any',TemplateName:'typing.Any',FileAttributes:'typing.Any',hrNew:'typing.Any',NewItem:'PyIShellItem') -> 'None': + """ + Called after each new file is created + +Args: + + Flags(typing.Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags + DestinationFolder(PyIShellItem):Folder in which item was created + NewName(typing.Any):Name of created item, may be mangled if file name conflicts occurred + TemplateName(typing.Any):Template file used to initialize new item + FileAttributes(typing.Any):File attributes of new item + hrNew(typing.Any):HRESULT of the create operation + NewItem(PyIShellItem):Shell interface of created item + +Returns: + + None + + """ + pass + + + def UpdateProgress(self,WorkTotal:'typing.Any',WorkSoFar:'typing.Any') -> 'None': + """ + Gives an estimate of total work completed + +Args: + + WorkTotal(typing.Any):Undimensioned number representing total amount of work + WorkSoFar(typing.Any):Undimensioned number representing amount already completed + +Returns: + + None + + """ + pass + + + def ResetTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + + def PauseTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + + def ResumeTimer(self,) -> 'None': + """ + Not implemented, according to MSDN + +Args: + + + +Returns: + + None + + """ + pass + + +class PyGSecurityInformation(object): + """Gateway wrapper for the implement-only ISecurityInformation interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObjectInformation(self,) -> 'SI_OBJECT_INFO': + """ + Returns information identifying the object + +whose security is to be editted, and which pages are to appear in the property sheet + +Args: + + + +Returns: + + SI_OBJECT_INFO:PyGSecurityInformation.GetObjectInformation +SI_OBJECT_INFO = GetObjectInformation()Returns information identifying the object + +whose security is to be editted, and which pages are to appear in the property sheet +Comments + +Due to peculiarities of the underlying system calls, this method will only be called once, + +and subsequent calls will return the information obtained on the first call. As a consequence, a new + +instance of the interface will need to be created for each object whose security is to be displayed. +Return ValueYour implementation of this method should return a SI_OBJECT_INFO tuple + + + """ + pass + + + def GetSecurity(self,RequestedInformation:'typing.Any',Default:'typing.Any') -> 'PySECURITY_DESCRIPTOR': + """ + Retrieves the object's current security + +settings + +Args: + + RequestedInformation(typing.Any):Combination of SECURITY_INFORMATION flags indicating which components of the object's security descriptor you should return + Default(typing.Any):If true, return a default security descriptor rather than current security. (invoked when 'Reset' button is clicked) + +Returns: + + PySECURITY_DESCRIPTOR + + """ + pass + + + def SetSecurity(self,SecurityInformation:'typing.Any',SecurityDescriptor:'PySECURITY_DESCRIPTOR') -> 'None': + """ + Applies the modified security to the object + +Args: + + SecurityInformation(typing.Any):SECURITY_INFORMATION flags specifying which types of security information are to be applied + SecurityDescriptor(PySECURITY_DESCRIPTOR):The security information to be applied to the objectReturn ValueAny returned value is ignored + +Returns: + + None:The security information to be applied to the objectReturn ValueAny returned value is ignored + + + """ + pass + + + def GetAccessRights(self,ObjectType:'PyIID',Flags:'typing.Any') -> 'typing.Tuple[SI_ACCESS, typing.Any]': + """ + Retrieves permission that can be set + +Args: + + ObjectType(PyIID):GUID representing type of object, may be None + Flags(typing.Any):Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, and a zero-based index indicating which of them is the default + +Returns: + + typing.Tuple[SI_ACCESS, typing.Any]:Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, + +SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, + +and a zero-based index indicating which of them is the default + + + """ + pass + + + def MapGeneric(self,ObjectType:'PyIID',AceFlags:'typing.Any',Mask:'typing.Any') -> 'typing.Any': + """ + Translates generic access rights to specific equivalents + +Args: + + ObjectType(PyIID):Type of object that permissions apply to, None or GUID_NULL indicates object itself + AceFlags(typing.Any):Flags from the ACE that contains the permissions + Mask(typing.Any):Bitmask containing access rightsCommentsSee win32security::MapGenericMaskReturn ValueThis method should return the input bitmask will all generic rights mapped to specific rights + +Returns: + + typing.Any:Bitmask containing access rightsComments + +See win32security::MapGenericMask +Return ValueThis method should return the input bitmask will all generic rights mapped to specific rights + + + """ + pass + + + def GetInheritTypes(self,) -> 'typing.Tuple[SI_INHERIT_TYPE, ...]': + """ + Requests types of inheritance that your + +implementation supports + +Args: + + + +Returns: + + typing.Tuple[SI_INHERIT_TYPE, ...]:PyGSecurityInformation.GetInheritTypes + +(SI_INHERIT_TYPE,...) = GetInheritTypes()Requests types of inheritance that your + +implementation supports +Return ValueReturns a sequence of SI_INHERIT_TYPE tuples + + + """ + pass + + + def PropertySheetPageCallback(self,hwnd:'typing.Any',Msg:'typing.Any',Page:'typing.Any') -> 'None': + """ + Called by each page as it is created and destroyed + +Args: + + hwnd(typing.Any):Handle to the window for the page + Msg(typing.Any):Flag indicating type of event, one of PSPCB_CREATE,PSPCB_RELEASE,PSPCB_SI_INITDIALOG + Page(typing.Any):SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored + +Returns: + + None:SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored + + + """ + pass + + +class PyIADesktopP2(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def UpdateAllDesktopSubscriptions(self,) -> 'None': + """ + Updates webpage subscriptions on the desktop + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIADs(object): + """An object representing the IADs interface. + +In most cases you can achieve the same result via IDispatch - however, this + +interface allows you get get and set properties without the IDispatch + +overhead.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ADsPath(self)->'str': + """""" + pass + + + @property + def AdsPath(self)->'str': + """Synonym for ADsPath""" + pass + + + @property + def Class(self)->'str': + """""" + pass + + + @property + def GUID(self)->'str': + """Like the IADs method, this returns a string rather than a GUID object.""" + pass + + + @property + def Name(self)->'str': + """""" + pass + + + @property + def Parent(self)->'str': + """""" + pass + + + @property + def Schema(self)->'str': + """""" + pass + + + def GetInfo(self,) -> 'None': + """ + Description of GetInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetInfo(self,) -> 'None': + """ + Description of SetInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def Get(self,prop:'str') -> 'typing.Any': + """ + Description of Get. + +Args: + + prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. + +Returns: + + typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + +may be an array, or any types supported by COM variant. + + + """ + pass + + + def Put(self,_property:'str',val:'typing.Any') -> 'None': + """ + Description of Put. + +Args: + + _property(str):The property name to set + val(typing.Any):The value to set. + +Returns: + + None + + """ + pass + + + def get(self,prop:'str') -> 'typing.Any': + """ + Description of Get. + +Args: + + prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. + +Returns: + + typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It + +may be an array, or any types supported by COM variant. + + + """ + pass + + + def put(self,_property:'str',val:'typing.Any') -> 'None': + """ + Description of Put. + +Args: + + _property(str):The property name to set + val(typing.Any):The value to set. + +Returns: + + None + + """ + pass + + +class PyIADsContainer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObject(self,_class:'str',relativeName:'str') -> 'PyIDispatch': + """ + None + +Args: + + _class(str):Specifies the name of the object class as known in the underlying directory and identical to the one retrieved through the get_Class property method. If the class name is None, the provider returns the first item found in the container. + relativeName(str):Specifies the name of the object as known in the underlying directory and identical to the one retrieved through the get_Name property method. + +Returns: + + PyIDispatch + + """ + pass + + + def get_Count(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def get_Filter(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Filter(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_Hints(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Hints(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + +class PyIADsUser(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def get_AccountDisabled(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_AccountDisabled(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_AccountExpirationDate(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_AccountExpirationDate(self,val:'PyTime') -> 'None': + """ + None + +Args: + + val(PyTime): + +Returns: + + None + + """ + pass + + + def get_BadLoginAddress(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def get_BadLoginCount(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def get_Department(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Department(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_Description(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Description(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_Division(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_Division(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_EmailAddress(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_EmailAddress(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_EmployeeID(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_EmployeeID(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_FirstName(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_FirstName(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_FullName(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_FullName(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_HomeDirectory(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_HomeDirectory(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_HomePage(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_HomePage(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def get_LoginScript(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def put_LoginScript(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def SetPassword(self,val:'typing.Any') -> 'None': + """ + None + +Args: + + val(typing.Any): + +Returns: + + None + + """ + pass + + + def ChangePassword(self,oldval:'typing.Any',newval:'typing.Any') -> 'None': + """ + None + +Args: + + oldval(typing.Any): + newval(typing.Any): + +Returns: + + None + + """ + pass + + +class PyIActiveDesktop(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ApplyChanges(self,Flags:'typing.Any') -> 'None': + """ + Applies changes to ActiveDesktop settings and persists them to the registry. + +Args: + + Flags(typing.Any):Combination of shellcon.AD_APPLY_* flags + +Returns: + + None + + """ + pass + + + def GetWallpaper(self,cchWallpaper:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns the current wallpaper + +Args: + + cchWallpaper(typing.Any):Number of characters to allocate for buffer + Reserved(typing.Any):Use 0 if passed in + +Returns: + + typing.Any + + """ + pass + + + def SetWallpaper(self,Wallpaper:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Sets the desktop wallpaper + +Args: + + Wallpaper(typing.Any):File to be used as new wallpaper + Reserved(typing.Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetWallpaperOptions(self,Reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns wallpaper style + +Args: + + Reserved(typing.Any):Use 0 if passed inReturn ValueReturns one of the WPSTYLE_* values + +Returns: + + typing.Any:Use 0 if passed in +Return ValueReturns one of the WPSTYLE_* values + + + """ + pass + + + def SetWallpaperOptions(self,Style:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Sets wallpaper style + +Args: + + Style(typing.Any):The wallpaper style, one of the WPSTYLE_* constants + Reserved(typing.Any):Reserved, use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetPattern(self,cchPattern:'typing.Any'=1024,Reserved:'typing.Any'=0) -> 'None': + """ + Returns the wallpaper pattern + +Args: + + cchPattern(typing.Any):Number of characters to allocate for buffer + Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a unicode string containing decimal values representing the pattern + +Returns: + + None:Use 0 if passed in +Return ValueReturns a unicode string containing decimal values representing the pattern + + + """ + pass + + + def SetPattern(self,Pattern:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Sets the wallpaper pattern + +Args: + + Pattern(typing.Any):String of decimal numbers representing a picture + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetDesktopItemOptions(self,) -> 'typing.Any': + """ + Returns options for Active Desktop. + +Args: + + + +Returns: + + typing.Any:PyIActiveDesktop.GetDesktopItemOptions + +dict = GetDesktopItemOptions()Returns options for Active Desktop. +Return ValueReturns a COMPONENTSOPT dictionary + + + """ + pass + + + def SetDesktopItemOptions(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Sets Active Desktop options + +Args: + + comp(typing.Any):COMPONENTSOPT dictionary + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddDesktopItem(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Creates a new item to display on the desktop + +Args: + + comp(typing.Any):COMPONENT dictionary + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddDesktopItemWithUI(self,hwnd:'int',comp:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Adds a desktop item, allowing user interaction + +Args: + + hwnd(int):Handle to parent window + comp(typing.Any):COMPONENT dictionary + Flags(typing.Any):One of shellcon.DTI_ADDUI_* flags + +Returns: + + None + + """ + pass + + + def ModifyDesktopItem(self,comp:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Changes parameters for a desktop item + +Args: + + comp(typing.Any):COMPONENT dictionary + Flags(typing.Any):Combination of shellcon.COMP_ELEM_* flags + +Returns: + + None + + """ + pass + + + def RemoveDesktopItem(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Removes an item from the Active Desktop + +Args: + + comp(typing.Any):COMPONENT dictionary specifying which component to remove + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def GetDesktopItemCount(self,) -> 'None': + """ + Returns number of defined desktop items. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDesktopItem(self,Component:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns desktop item parameters by index + +Args: + + Component(typing.Any):The zero-based index of the component to get + Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary describing the item + +Returns: + + typing.Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary describing the item + + + """ + pass + + + def GetDesktopItemByID(self,ID:'typing.Any',reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns desktop item parameters by Id + +Args: + + ID(typing.Any):The Id of the desktop item + reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary + +Returns: + + typing.Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary + + + """ + pass + + + def GenerateDesktopItemHtml(self,FileName:'typing.Any',comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': + """ + Creates an HTML page for the desktop item + +Args: + + FileName(typing.Any):Name of file to be created + comp(typing.Any):COMPONENT dictionary specifying the desktop item + Reserved(typing.Any):Use 0 if passed in + +Returns: + + None + + """ + pass + + + def AddUrl(self,hwnd:'int',Source:'typing.Any',comp:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Adds a web page to desktop, allowing user interaction + +Args: + + hwnd(int):Parent windows for any user interactive + Source(typing.Any):Source URL + comp(typing.Any):COMPONENT dictionary + Flags(typing.Any):ADDURL_SILENT, or 0 + +Returns: + + None + + """ + pass + + + def GetDesktopItemBySource(self,Source:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': + """ + Returns desktop item parameters by URL + +Args: + + Source(typing.Any):The URL address of the item to retrieve + Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary + +Returns: + + typing.Any:Use 0 if passed in +Return ValueReturns a COMPONENT dictionary + + + """ + pass + + +class PyIActiveDesktopP(object): + """An interface to the ActiveDesktop""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSafeMode(self,Flags:'typing.Any') -> 'None': + """ + Changes Active Desktop to safe mode + +Args: + + Flags(typing.Any):One of shellcon.SSM_* flags + +Returns: + + None + + """ + pass + + +class PyIActiveScriptDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetScriptTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'typing.Any') -> 'typing.Tuple[typing.Any, ...]': + """ + Returns the text attributes for an arbitrary block + +of script text. + +Args: + + pstrCode(str):The script block text. + pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + dwFlags(typing.Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument.CommentsSmart hosts use this call to delegate GetText calls made on their axscript::PyIDebugDocumentText + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + + def GetScriptletTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'typing.Any') -> 'None': + """ + Description of GetScriptletTextAttributes. + +Args: + + pstrCode(str):The script block text. + pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + dwFlags(typing.Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument. + +Returns: + + None + + """ + pass + + + def EnumCodeContextsOfPosition(self,dwSourceContext:'typing.Any',uCharacterOffset:'typing.Any',uNumChars:'typing.Any') -> 'None': + """ + Description of EnumCodeContextsOfPosition. + +Args: + + dwSourceContext(typing.Any):Description for dwSourceContext + uCharacterOffset(typing.Any):Description for uCharacterOffset + uNumChars(typing.Any):Description for uNumChars + +Returns: + + None + + """ + pass + + +class PyIActiveScriptError(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetExceptionInfo(self,) -> 'None': + """ + Description of GetExceptionInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSourcePosition(self,) -> 'None': + """ + Description of GetSourcePosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSourceLineText(self,) -> 'None': + """ + Description of GetSourceLineText. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIActiveScriptErrorDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContext(self,) -> 'None': + """ + Description of GetDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStackFrame(self,) -> 'None': + """ + Description of GetStackFrame. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIActiveScriptParseProcedure(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseProcedureText(self,pstrCode:'typing.Any',pstrFormalParams:'typing.Any',pstrProcedureName:'typing.Any',pstrItemName:'typing.Any',punkContext:'PyIUnknown',pstrDelimiter:'typing.Any',dwSourceContextCookie:'typing.Any',ulStartingLineNumber:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of ParseProcedureText. + +Args: + + pstrCode(typing.Any):Description for pstrCode + pstrFormalParams(typing.Any):Description for pstrFormalParams + pstrProcedureName(typing.Any):Description for pstrProcedureName + pstrItemName(typing.Any):Description for pstrItemName + punkContext(PyIUnknown):Description for punkContext + pstrDelimiter(typing.Any):Description for pstrDelimiter + dwSourceContextCookie(typing.Any):Description for dwSourceContextCookie + ulStartingLineNumber(typing.Any):Description for ulStartingLineNumber + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + +class PyIActiveScriptSite(object): + """An object providing the IActiveScriptSite interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLCID(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemInfo(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDocVersionString(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnStateChange(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnEnterScript(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnLeaveScript(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnScriptError(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnScriptTerminate(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIActiveScriptSiteDebug(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContextFromPosition(self,dwSourceContext:'typing.Any',uCharacterOffset:'typing.Any',uNumChars:'typing.Any') -> 'None': + """ + Description of GetDocumentContextFromPosition. + +Args: + + dwSourceContext(typing.Any):Description for dwSourceContext + uCharacterOffset(typing.Any):Description for uCharacterOffset + uNumChars(typing.Any):Description for uNumChars + +Returns: + + None + + """ + pass + + + def GetApplication(self,) -> 'None': + """ + Description of GetApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootApplicationNode(self,) -> 'None': + """ + Description of GetRootApplicationNode. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnScriptErrorDebug(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Allows a smart host to control the handling of runtime + +errors + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:PyIActiveScriptSiteDebug.OnScriptErrorDebug + +int, int = OnScriptErrorDebug()Allows a smart host to control the handling of runtime + +errors +Return ValueThe result is a tuple of (bCallDebugger, bCallOnScriptErrorWhenContinuing) + + + """ + pass + + +class PyIAddrBook(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ResolveName(self,uiParm:'typing.Any',flags:'typing.Any',entryTitle:'str',ADRLIST:'typing.Any') -> 'None': + """ + Performs name resolution, assigning entry identifiers to recipients in a recipient list. + +Args: + + uiParm(typing.Any):hwnd of a dialogs parent. + flags(typing.Any):Bitmask of flags that controls whether a dialog box can be displayed. + entryTitle(str): + ADRLIST(typing.Any):Partial addresses to resolve. + +Returns: + + None + + """ + pass + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens a folder or message and returns an interface object for further access. + +Args: + + entryId(str):The entryID of the object + iid(PyIID):The IID of the object to return, or None for the default IID + flags(typing.Any):Bitmask of flags that controls how the object is opened. + +Returns: + + typing.Any + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + typing.Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + +class PyIApplicationDebugger(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryAlive(self,) -> 'None': + """ + Returns true if alive, else false. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateInstanceAtDebugger(self,rclsid:'PyIID',pUnkOuter:'PyIUnknown',dwClsContext:'typing.Any',riid:'PyIID') -> 'None': + """ + Create objects in the application process address space. + +Args: + + rclsid(PyIID):Description for rclsid + pUnkOuter(PyIUnknown):Description for pUnkOuter + dwClsContext(typing.Any):Description for dwClsContext + riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. + +Returns: + + None + + """ + pass + + + def onDebugOutput(self,pstr:'typing.Any') -> 'None': + """ + None + +Args: + + pstr(typing.Any):Description for pstrCommentsThe debugger can use this to display the string in an output window. + +Returns: + + None + + """ + pass + + + def onHandleBreakPoint(self,prpt:'PyIRemoteDebugApplicationThread',br:'typing.Any',pError:'typing.Any') -> 'None': + """ + Called when a breakpoint is hit. + +Args: + + prpt(PyIRemoteDebugApplicationThread):Description for prpt + br(typing.Any):Description for br + pError(typing.Any):Description for pErrorCommentsThe application will remain suspended until the debugger IDE calls PyIDebugApplication::ResumeFromBreakPoint. + +Returns: + + None + + """ + pass + + + def onClose(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def onDebuggerEvent(self,guid:'PyIID',uUnknown:'PyIUnknown') -> 'None': + """ + Description of onDebuggerEvent. + +Args: + + guid(PyIID): + uUnknown(PyIUnknown):CommentsThe semantics of guid and unknown are entirely application/debugger defined This method may return E_NOTIMPL. + +Returns: + + None + + """ + pass + + +class PyIApplicationDestinations(object): + """Allows an application to removed items from its jump lists""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'typing.Any') -> 'None': + """ + Specifies the application whose jump list is to be accessed + +Args: + + AppID(typing.Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier + +Returns: + + None + + """ + pass + + + def RemoveDestination(self,punk:'PyIUnknown') -> 'None': + """ + Removes a single entry from the jump lists + +Args: + + punk(PyIUnknown):IShellItem or IShellLink representing an item in the application's jump listCommentsDoes not remove pinned items + +Returns: + + None + + """ + pass + + + def RemoveAllDestinations(self,) -> 'None': + """ + Removes all Recent and Frequent jump list entries + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIApplicationDocumentLists(object): + """Interface used to retrieve the jump lists for an application""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'typing.Any') -> 'None': + """ + Specifies the application whose jump list is to be accessed + +Args: + + AppID(typing.Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier + +Returns: + + None + + """ + pass + + + def GetList(self,ListType:'typing.Any',riid:'PyIID',ItemsDesired:'typing.Any'=0) -> 'PyIEnumObjects': + """ + Retrieves a list of items in a jump list + +Args: + + ListType(typing.Any):Type of document list to return, shellcon.ADLT_RECENT or ADLT_FREQUENT + riid(PyIID):The interface to return, IID_IEnumObjects or IID_IObjectArray + ItemsDesired(typing.Any):Number of items to return, use 0 for all available + +Returns: + + PyIEnumObjects + + """ + pass + + +class PyIAsyncOperation(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAsyncMode(self,fDoOpAsync:'typing.Any') -> 'None': + """ + Description of SetAsyncMode. + +Args: + + fDoOpAsync(typing.Any):Description for fDoOpAsync + +Returns: + + None + + """ + pass + + + def GetAsyncMode(self,) -> 'typing.Any': + """ + Description of GetAsyncMode. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def StartOperation(self,pbcReserved:'PyIBindCtx') -> 'None': + """ + Description of StartOperation. + +Args: + + pbcReserved(PyIBindCtx):Description for pbcReserved + +Returns: + + None + + """ + pass + + + def InOperation(self,) -> 'None': + """ + Description of InOperation. + +Args: + + + +Returns: + + None + + """ + pass + + + def EndOperation(self,hResult:'typing.Any',pbcReserved:'PyIBindCtx',dwEffects:'typing.Any') -> 'None': + """ + Description of EndOperation. + +Args: + + hResult(typing.Any):Description for hResult + pbcReserved(PyIBindCtx):Description for pbcReserved + dwEffects(typing.Any):Description for dwEffects + +Returns: + + None + + """ + pass + + +class PyIAttach(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + +class PyIBindCtx(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetRunningObjectTable(self,) -> 'PyIRunningObjectTable': + """ + Retrieves an object interfacing to the Running + +Object Table. + +Args: + + + +Returns: + + PyIRunningObjectTable + + """ + pass + + + def GetBindOptions(self,) -> 'PyBIND_OPTS': + """ + Retrieves the bind options for the bind context + +Args: + + + +Returns: + + PyBIND_OPTS + + """ + pass + + + def SetBindOptions(self,bindopts:'typing.Any') -> 'None': + """ + Sets the bind options for the context + +Args: + + bindopts(typing.Any):PyBIND_OPTS dictionary containing the binding options + +Returns: + + None + + """ + pass + + + def RegisterObjectParam(self,Key:'str',punk:'PyIUnknown') -> 'None': + """ + Adds an object to the context's keyed table of associated objects + +Args: + + Key(str):The string key for the object to be registered + punk(PyIUnknown):COM object to be registered with the bind context + +Returns: + + None + + """ + pass + + + def RevokeObjectParam(self,Key:'str') -> 'None': + """ + Removes one of the bind context's registered objects + +Args: + + Key(str):The string key for the object to be removed + +Returns: + + None + + """ + pass + + + def GetObjectParam(self,Key:'str') -> 'PyIUnknown': + """ + Returns one of the bind context's associated objects + +Args: + + Key(str):The string key for the object to be returned + +Returns: + + PyIUnknown + + """ + pass + + + def EnumObjectParam(self,) -> 'PyIEnumString': + """ + Creates an enumerator to list context's string keys + +Args: + + + +Returns: + + PyIEnumString + + """ + pass + + +class PyIBrowserFrameOptions(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFrameOptions(self,dwMask:'typing.Any') -> 'None': + """ + Description of GetFrameOptions. + +Args: + + dwMask(typing.Any):Description for dwMask + +Returns: + + None + + """ + pass + + +class PyICancelMethodCalls(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Cancel(self,Seconds:'typing.Any') -> 'None': + """ + Cancels a pending call + +Args: + + Seconds(typing.Any):Wait timeout in seconds + +Returns: + + None + + """ + pass + + + def TestCancel(self,) -> 'typing.Any': + """ + Checks if a request has been made to cancel a call + +Args: + + + +Returns: + + typing.Any:PyICancelMethodCalls.TestCancel + +int = TestCancel()Checks if a request has been made to cancel a call +Return ValueCan return RPC_S_CALLPENDING or RPC_E_CALL_CANCELED + + + """ + pass + + +class PyICatInformation(object): + """A Python interface to ICatInformation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumCategories(self,lcid:'typing.Any'=0) -> 'PyIEnumCATEGORYINFO': + """ + Returns an enumerator for the component categories + +registered on the system. + +Args: + + lcid(typing.Any):lcid + +Returns: + + PyIEnumCATEGORYINFO + + """ + pass + + + def GetCategoryDesc(self,lcid:'typing.Any'=0) -> 'str': + """ + Retrieves the localized description string for a specific category + +ID. + +Args: + + lcid(typing.Any):lcidCommentsThe return type is a unicode object. + +Returns: + + str + + """ + pass + + + def EnumClassesOfCategories(self,listIIdImplemented:'typing.List[PyIID]'=None,listIIdRequired:'typing.Any'=None) -> 'PyIEnumGUID': + """ + Returns an enumerator over the classes that + +implement one or more interfaces. + +Args: + + listIIdImplemented(typing.List[PyIID]):A sequence of PyIID objects, or None. + listIIdRequired(typing.Any):A sequence of PyIID objects, or None. + +Returns: + + PyIEnumGUID + + """ + pass + + +class PyICatRegister(object): + """An interface to a COM ICatRegister interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def RegisterCategories(self,arg:'typing.List[typing.Tuple[PyIID, typing.Any, str]]') -> 'None': + """ + Registers one or more component categories. Each component category + +consists of a CATID and a list of locale-dependent description strings. + +Args: + + arg(typing.List[typing.Tuple[PyIID, typing.Any, str]]):A sequence of category descriptions. + +Returns: + + None + + """ + pass + + + def UnRegisterCategories(self,arg:'typing.List[PyIID]') -> 'None': + """ + Unregister one or more previously registered categories. + +Args: + + arg(typing.List[PyIID]):The list of category IDs to be unregistered. + +Returns: + + None + + """ + pass + + + def RegisterClassImplCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': + """ + Registers the class as implementing one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(typing.List[PyIID]):A sequence of category IDs to be associated with the class. + +Returns: + + None + + """ + pass + + + def UnRegisterClassImplCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': + """ + Unregisters the class as implementing one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(typing.List[PyIID]):A sequence of category IDs to be unregistered from the class. + +Returns: + + None + + """ + pass + + + def RegisterClassReqCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': + """ + Registers the class as requiring one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(typing.List[PyIID]):A sequence of category IDs to be associated with the class. + +Returns: + + None + + """ + pass + + + def UnRegisterClassReqCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': + """ + Unregisters the class as requiring one or more component + +categories. + +Args: + + clsid(PyIID):Class ID of the relevent class + arg(typing.List[PyIID]):A sequence of category IDs to be unregistered for the class. + +Returns: + + None + + """ + pass + + +class PyICategoryProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanCategorizeOnSCID(self,pscid:'typing.Any') -> 'None': + """ + Description of CanCategorizeOnSCID. + +Args: + + pscid(typing.Any):Description for pscid + +Returns: + + None + + """ + pass + + + def GetDefaultCategory(self,) -> 'None': + """ + Description of GetDefaultCategory. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCategoryForSCID(self,pscid:'typing.Any') -> 'None': + """ + Description of GetCategoryForSCID. + +Args: + + pscid(typing.Any):Description for pscid + +Returns: + + None + + """ + pass + + + def EnumCategories(self,) -> 'None': + """ + Description of EnumCategories. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCategoryName(self,guid:'PyIID') -> 'None': + """ + Description of GetCategoryName. + +Args: + + guid(PyIID):Description for pguidCommentsThe buffer is always 1024 chars long + +Returns: + + None + + """ + pass + + + def CreateCategory(self,guid:'PyIID',riid:'PyIID') -> 'None': + """ + Description of CreateCategory. + +Args: + + guid(PyIID):Description for pguid + riid(PyIID):Description for riid + +Returns: + + None + + """ + pass + + +class PyIClassFactory(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateInstance(self,outerUnknown:'PyIUnknown',iid:'PyIID') -> 'PyIUnknown': + """ + Creates an uninitialized object. + +Args: + + outerUnknown(PyIUnknown):Usually None, otherwise the outer unknown if the object is being created as part of an aggregate. + iid(PyIID):The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the type specified by iid. + +Returns: + + PyIUnknown:The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the + +type specified by iid. + + + """ + pass + + + def LockServer(self,bInc:'typing.Any') -> 'None': + """ + Called by the client of a class object to keep a server open in memory, + +allowing instances to be created more quickly. + +Args: + + bInc(typing.Any):1 of the server should be locked, 0 if the server should be unlocked. + +Returns: + + None + + """ + pass + + +class PyIClientSecurity(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryBlanket(self,Proxy:'PyIUnknown') -> 'typing.Any': + """ + Retrieves the authentication settings for an interface + +Args: + + Proxy(PyIUnknown):An interface created through a proxy + +Returns: + + typing.Any + + """ + pass + + + def SetBlanket(self,Proxy:'PyIUnknown',AuthnSvc:'typing.Any',AuthzSvc:'typing.Any',ServerPrincipalName:'str',AuthnLevel:'typing.Any',ImpLevel:'typing.Any',AuthInfo:'typing.Any',Capabilities:'typing.Any') -> 'None': + """ + Changes the authentication options used with an interface + +Args: + + Proxy(PyIUnknown):The proxy interface for which to set security options + AuthnSvc(typing.Any):Authentication service identifier, pythoncom.RPC_C_AUTHN_* (but not RPC_C_AUTHN_LEVEL_*) + AuthzSvc(typing.Any):Authorization service identifier, pythoncom.RPC_C_AUTHZ_* + ServerPrincipalName(str):SPN that identifies the server, can be None + AuthnLevel(typing.Any):Authentication level, pythoncom.RPC_C_AUTHN_LEVEL_* + ImpLevel(typing.Any):Impersonation level, pythoncom.RPC_C_IMP_LEVEL_* + AuthInfo(typing.Any):Not supported yet, use only None + Capabilities(typing.Any):Combination of pythoncom.EOAC_* flags. Must be a subset of the capabilities of the specified authentication service. + +Returns: + + None + + """ + pass + + + def CopyProxy(self,Proxy:'PyIUnknown') -> 'PyIUnknown': + """ + Makes a private copy of a proxy interface + +Args: + + Proxy(PyIUnknown):The remote interface to be copied + +Returns: + + PyIUnknown + + """ + pass + + +class PyIColumnProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,psci:'typing.Any') -> 'None': + """ + Description of Initialize. + +Args: + + psci(typing.Any):Description for psci + +Returns: + + None + + """ + pass + + + def GetColumnInfo(self,dwIndex:'typing.Any') -> 'None': + """ + Description of GetColumnInfo. + +Args: + + dwIndex(typing.Any):Description for dwIndex + +Returns: + + None + + """ + pass + + + def GetItemData(self,pscid:'typing.Any',pscd:'typing.Any') -> 'None': + """ + Description of GetItemData. + +Args: + + pscid(typing.Any):Description for pscid + pscd(typing.Any):Description for pscd + +Returns: + + None + + """ + pass + + +class PyIConnectionPoint(object): + """A Python wrapper of a COM IConnectionPoint interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetConnectionInterface(self,) -> 'PyIID': + """ + Retrieves the IID of the interface represented by the + +connection point. + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetConnectionPointContainer(self,) -> 'PyIConnectionPointContainer': + """ + Gets the connection point + +container for the object. + +Args: + + + +Returns: + + PyIConnectionPointContainer + + """ + pass + + + def Advise(self,unk:'PyIUnknown') -> 'typing.Any': + """ + Establishes a connection between the connection point object and the client's + +sink. + +Args: + + unk(PyIUnknown):The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise + +Returns: + + typing.Any:The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise + + + """ + pass + + + def Unadvise(self,cookie:'typing.Any') -> 'None': + """ + Terminates an advisory connection previously established through + +IConnectionPoint::Advise. The dwCookie parameter identifies the connection to terminate. + +Args: + + cookie(typing.Any):The connection token + +Returns: + + None + + """ + pass + + + def EnumConnections(self,) -> 'PyIEnumConnections': + """ + Creates an enumerator to iterate through the + +connections for the connection point + +Args: + + + +Returns: + + PyIEnumConnections + + """ + pass + + +class PyIConnectionPointContainer(object): + """A Python wrapper of a COM IConnectionPointContainer interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumConnectionPoints(self,) -> 'PyIEnumConnectionPoints': + """ + Creates an enumerator object + +to iterate through all the connection points supported in the connectable object, one connection point per outgoing + +IID. + +Args: + + + +Returns: + + PyIEnumConnectionPoints + + """ + pass + + + def FindConnectionPoint(self,iid:'PyIID') -> 'PyIConnectionPoint': + """ + Finds a connection point for the + +given IID + +Args: + + iid(PyIID):The IID of the requested connection. + +Returns: + + PyIConnectionPoint + + """ + pass + + +class PyIContext(object): + """Allows access to properties defined for the current context (Requires win2k or later)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetProperty(self,rpolicyId:'PyIID',flags:'typing.Any',pUnk:'PyIUnknown') -> 'None': + """ + Sets a property on the context + +Args: + + rpolicyId(PyIID):GUID identifying the property to be set + flags(typing.Any):Reserved, use only 0 + pUnk(PyIUnknown):The property value + +Returns: + + None + + """ + pass + + + def RemoveProperty(self,rPolicyId:'PyIID') -> 'None': + """ + Removes a property from the context + +Args: + + rPolicyId(PyIID):GUID that identifies a context property + +Returns: + + None + + """ + pass + + + def GetProperty(self,rGuid:'PyIID') -> 'typing.Tuple[typing.Any, PyIUnknown]': + """ + Retrieves a context property + +Args: + + rGuid(PyIID):GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property + +Returns: + + typing.Tuple[typing.Any, PyIUnknown]:GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property + + + """ + pass + + + def EnumContextProps(self,) -> 'PyIEnumContextProps': + """ + Returns an enumerator for the context properties + +Args: + + + +Returns: + + PyIEnumContextProps + + """ + pass + + +class PyIContextMenu(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryContextMenu(self,hmenu:'int',indexMenu:'typing.Any',idCmdFirst:'typing.Any',idCmdLast:'typing.Any',uFlags:'typing.Any') -> 'typing.Any': + """ + Adds options to a context menu + +Args: + + hmenu(int):Handle to menu to which items should be added + indexMenu(typing.Any):Zero-based index at which to add first item + idCmdFirst(typing.Any):Minimum menu item Id + idCmdLast(typing.Any):Max menu item Id + uFlags(typing.Any):Combination of shellcon.CMF_* flags, can be 0 + +Returns: + + typing.Any + + """ + pass + + + def InvokeCommand(self,pici:'PyCMINVOKECOMMANDINFO') -> 'None': + """ + Executes a context menu option + +Args: + + pici(PyCMINVOKECOMMANDINFO):Tuple of parameters representing a CMINVOKECOMMANDINFO struct + +Returns: + + None + + """ + pass + + + def GetCommandString(self,idCmd:'typing.Any',uType:'typing.Any',cchMax:'typing.Any'=2048) -> 'typing.Any': + """ + Retrieves verb or help text for a context menu option + +Args: + + idCmd(typing.Any):Id of the command + uType(typing.Any):One of the shellcon.GCS_* constants + cchMax(typing.Any):Size of buffer to create for returned string + +Returns: + + typing.Any + + """ + pass + + +class PyICopyHookA(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CopyCallback(self,hwnd:'typing.Any',wFunc:'typing.Any',wFlags:'typing.Any',srcFile:'typing.Union[str, typing.Any]',srcAttribs:'typing.Any',destFile:'typing.Union[str, typing.Any]',destAttribs:'typing.Any') -> 'None': + """ + Description of CopyCallback. + +Args: + + hwnd(typing.Any):Description for hwnd + wFunc(typing.Any):Description for wFunc + wFlags(typing.Any):Description for wFlags + srcFile(typing.Union[str, typing.Any]):Description for srcFile + srcAttribs(typing.Any):Description for srcAttribs + destFile(typing.Union[str, typing.Any]):Description for destFile + destAttribs(typing.Any):Description for destAttribs + +Returns: + + None + + """ + pass + + +class PyICopyHookW(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CopyCallback(self,hwnd:'typing.Any',wFunc:'typing.Any',wFlags:'typing.Any',srcFile:'typing.Union[str, typing.Any]',srcAttribs:'typing.Any',destFile:'typing.Union[str, typing.Any]',destAttribs:'typing.Any') -> 'None': + """ + Description of CopyCallback. + +Args: + + hwnd(typing.Any):Description for hwnd + wFunc(typing.Any):Description for wFunc + wFlags(typing.Any):Description for wFlags + srcFile(typing.Union[str, typing.Any]):Description for srcFile + srcAttribs(typing.Any):Description for srcAttribs + destFile(typing.Union[str, typing.Any]):Description for destFile + destAttribs(typing.Any):Description for destAttribs + +Returns: + + None + + """ + pass + + +class PyICreateTypeInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetTypeFlags(self,uTypeFlags:'typing.Any') -> 'None': + """ + Description of SetTypeFlags. + +Args: + + uTypeFlags(typing.Any):Description for uTypeFlags + +Returns: + + None + + """ + pass + + + def SetDocString(self,pStrDoc:'typing.Any') -> 'None': + """ + Description of SetDocString. + +Args: + + pStrDoc(typing.Any):Description for pStrDoc + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(typing.Any):Description for wMajorVerNum + wMinorVerNum(typing.Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def AddRefTypeInfo(self,pTInfo:'PyITypeInfo') -> 'None': + """ + Description of AddRefTypeInfo. + +Args: + + pTInfo(PyITypeInfo):Description for pTInfo + +Returns: + + None + + """ + pass + + + def AddFuncDesc(self,index:'typing.Any') -> 'None': + """ + Description of AddFuncDesc. + +Args: + + index(typing.Any):Description for index + +Returns: + + None + + """ + pass + + + def AddImplType(self,index:'typing.Any',hRefType:'typing.Any') -> 'None': + """ + Description of AddImplType. + +Args: + + index(typing.Any):Description for index + hRefType(typing.Any):A hRefType + +Returns: + + None + + """ + pass + + + def SetImplTypeFlags(self,index:'typing.Any',implTypeFlags:'typing.Any') -> 'None': + """ + Description of SetImplTypeFlags. + +Args: + + index(typing.Any):Description for index + implTypeFlags(typing.Any):Description for implTypeFlags + +Returns: + + None + + """ + pass + + + def SetAlignment(self,cbAlignment:'typing.Any') -> 'None': + """ + Description of SetAlignment. + +Args: + + cbAlignment(typing.Any):Description for cbAlignment + +Returns: + + None + + """ + pass + + + def SetSchema(self,pStrSchema:'typing.Any') -> 'None': + """ + Description of SetSchema. + +Args: + + pStrSchema(typing.Any):Description for pStrSchema + +Returns: + + None + + """ + pass + + + def AddVarDesc(self,index:'typing.Any') -> 'None': + """ + Description of AddVarDesc. + +Args: + + index(typing.Any):Description for index + +Returns: + + None + + """ + pass + + + def SetFuncAndParamNames(self,index:'typing.Any',rgszNames:'typing.Tuple[typing.Any, ...]') -> 'None': + """ + Description of SetFuncAndParamNames. + +Args: + + index(typing.Any):Index of the item to set. + rgszNames(typing.Tuple[typing.Any, ...]):A sequence of unicode or String objects. + +Returns: + + None + + """ + pass + + + def SetVarName(self,index:'typing.Any',szName:'typing.Any') -> 'None': + """ + Description of SetVarName. + +Args: + + index(typing.Any):Description for index + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetTypeDescAlias(self,) -> 'None': + """ + Description of SetTypeDescAlias. + +Args: + + + +Returns: + + None + + """ + pass + + + def DefineFuncAsDllEntry(self,index:'typing.Any',szDllName:'typing.Any',szProcName:'typing.Any') -> 'None': + """ + Description of DefineFuncAsDllEntry. + +Args: + + index(typing.Any):Description for index + szDllName(typing.Any):Description for szDllName + szProcName(typing.Any):Description for szProcName + +Returns: + + None + + """ + pass + + + def SetFuncDocString(self,index:'typing.Any',szDocString:'typing.Any') -> 'None': + """ + Description of SetFuncDocString. + +Args: + + index(typing.Any):Description for index + szDocString(typing.Any):Description for szDocString + +Returns: + + None + + """ + pass + + + def SetVarDocString(self,index:'typing.Any',szDocString:'typing.Any') -> 'None': + """ + Description of SetVarDocString. + +Args: + + index(typing.Any):Description for index + szDocString(typing.Any):Description for szDocString + +Returns: + + None + + """ + pass + + + def SetFuncHelpContext(self,index:'typing.Any',dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetFuncHelpContext. + +Args: + + index(typing.Any):Description for index + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetVarHelpContext(self,index:'typing.Any',dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetVarHelpContext. + +Args: + + index(typing.Any):Description for index + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetMops(self,index:'typing.Any',bstrMops:'typing.Any') -> 'None': + """ + Description of SetMops. + +Args: + + index(typing.Any):Description for index + bstrMops(typing.Any):Description for bstrMops + +Returns: + + None + + """ + pass + + + def LayOut(self,) -> 'None': + """ + Description of LayOut. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICreateTypeLib(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTypeInfo(self,szName:'typing.Any') -> 'None': + """ + Description of CreateTypeInfo. + +Args: + + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetName(self,szName:'typing.Any') -> 'None': + """ + Description of SetName. + +Args: + + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(typing.Any):Description for wMajorVerNum + wMinorVerNum(typing.Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetDocString(self,szDoc:'typing.Any') -> 'None': + """ + Description of SetDocString. + +Args: + + szDoc(typing.Any):Description for szDoc + +Returns: + + None + + """ + pass + + + def SetHelpFileName(self,szHelpFileName:'typing.Any') -> 'None': + """ + Description of SetHelpFileName. + +Args: + + szHelpFileName(typing.Any):Description for szHelpFileName + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetLcid(self,) -> 'None': + """ + Description of SetLcid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetLibFlags(self,uLibFlags:'typing.Any') -> 'None': + """ + Description of SetLibFlags. + +Args: + + uLibFlags(typing.Any):Description for uLibFlags + +Returns: + + None + + """ + pass + + + def SaveAllChanges(self,) -> 'None': + """ + Description of SaveAllChanges. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICreateTypeLib2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTypeInfo(self,szName:'typing.Any') -> 'None': + """ + Description of CreateTypeInfo. + +Args: + + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetName(self,szName:'typing.Any') -> 'None': + """ + Description of SetName. + +Args: + + szName(typing.Any):Description for szName + +Returns: + + None + + """ + pass + + + def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': + """ + Description of SetVersion. + +Args: + + wMajorVerNum(typing.Any):Description for wMajorVerNum + wMinorVerNum(typing.Any):Description for wMinorVerNum + +Returns: + + None + + """ + pass + + + def SetGuid(self,guid:'PyIID') -> 'None': + """ + Description of SetGuid. + +Args: + + guid(PyIID):Description for guid + +Returns: + + None + + """ + pass + + + def SetDocString(self,szDoc:'typing.Any') -> 'None': + """ + Description of SetDocString. + +Args: + + szDoc(typing.Any):Description for szDoc + +Returns: + + None + + """ + pass + + + def SetHelpFileName(self,szHelpFileName:'typing.Any') -> 'None': + """ + Description of SetHelpFileName. + +Args: + + szHelpFileName(typing.Any):Description for szHelpFileName + +Returns: + + None + + """ + pass + + + def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': + """ + Description of SetHelpContext. + +Args: + + dwHelpContext(typing.Any):Description for dwHelpContext + +Returns: + + None + + """ + pass + + + def SetLcid(self,) -> 'None': + """ + Description of SetLcid. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetLibFlags(self,uLibFlags:'typing.Any') -> 'None': + """ + Description of SetLibFlags. + +Args: + + uLibFlags(typing.Any):Description for uLibFlags + +Returns: + + None + + """ + pass + + + def SaveAllChanges(self,) -> 'None': + """ + Description of SaveAllChanges. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyICurrentItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyICustomDestinationList(object): + """Interface used to customize an application's jump list""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetAppID(self,AppID:'typing.Any') -> 'None': + """ + Specifies the taskbar identifier for the jump list + +Args: + + AppID(typing.Any):The taskbar identifier of the applicationCommentsOnly needed if the calling app doesn't use the system-assigned default + +Returns: + + None + + """ + pass + + + def BeginList(self,riid:'PyIID') -> 'typing.Tuple[typing.Any, PyIObjectArray]': + """ + Clears the jump list and prepares it to be + +repopulated + +Args: + + riid(PyIID):The interface to returnReturn ValueReturns the number of slots and a collection of all destinations removed from the jump list + +Returns: + + typing.Tuple[typing.Any, PyIObjectArray]:The interface to return +Return ValueReturns the number of slots and a collection of all destinations removed from the jump list + + + """ + pass + + + def AppendCategory(self,Category:'typing.Any',Items:'PyIObjectArray') -> 'None': + """ + Adds a custom category to the jump list + +Args: + + Category(typing.Any):Display name of the category, can also be a dll and resource id for localization + Items(PyIObjectArray):Collection of IShellItem and/or IShellLink interfaces + +Returns: + + None + + """ + pass + + + def AppendKnownCategory(self,Category:'typing.Any') -> 'None': + """ + Adds one of the predefined categories to the custom list + +Args: + + Category(typing.Any):shellcon.KDC_RECENT or KDC_FREQUENT + +Returns: + + None + + """ + pass + + + def AddUserTasks(self,Items:'PyIObjectArray') -> 'None': + """ + Sets the entries shown in the Tasks category + +Args: + + Items(PyIObjectArray):Collection of PyIShellItem and/or PyIShellLink interfaces + +Returns: + + None + + """ + pass + + + def CommitList(self,) -> 'None': + """ + Finalizes changes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRemovedDestinations(self,riid:'PyIID') -> 'PyIObjectArray': + """ + Returns all the items removed from the + +jump list + +Args: + + riid(PyIID):The interface to return + +Returns: + + PyIObjectArray + + """ + pass + + + def DeleteList(self,AppID:'typing.Any'=None) -> 'None': + """ + Removes any customization, leaving only the system-maintained Recent + +and Frequent lists + +Args: + + AppID(typing.Any):The taskbar identifier of the application + +Returns: + + None + + """ + pass + + + def AbortList(self,) -> 'None': + """ + Discards all changes + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDL(object): + """A Python representation of an IDL. Implemented as a sequence of Python strings. + +FALSE*/, UINT *pcb /* = NULL */)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDataObject(object): + """Used to transfer data in various formats throughout the shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetData(self,pformatetcIn:'PyFORMATETC') -> 'PySTGMEDIUM': + """ + Retrieves data from the object in specified format + +Args: + + pformatetcIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + PySTGMEDIUM + + """ + pass + + + def GetDataHere(self,pformatetcIn:'PyFORMATETC') -> 'PySTGMEDIUM': + """ + Retunrs a copy of the object's data in specified format + +Args: + + pformatetcIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + PySTGMEDIUM + + """ + pass + + + def QueryGetData(self,pformatetc:'PyFORMATETC') -> 'None': + """ + Checks if the objects supports returning data in a particular format. + +Args: + + pformatetc(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. + +Returns: + + None:Tuple representing a FORMATETC struct describing how the data should be + +returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. + + + """ + pass + + + def GetCanonicalFormatEtc(self,pformatectIn:'PyFORMATETC') -> 'PyFORMATETC': + """ + Transforms a FORMATECT data description into a general + +format that the object supports + +Args: + + pformatectIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned + +Returns: + + PyFORMATETC + + """ + pass + + + def SetData(self,pformatetc:'PyFORMATETC',pmedium:'PySTGMEDIUM',fRelease:'typing.Any') -> 'None': + """ + Sets the data that the object will return. + +Args: + + pformatetc(PyFORMATETC):Tuple representing a FORMATETC struct describing the type of data to be set + pmedium(PySTGMEDIUM):The data to be placed in the object + fRelease(typing.Any):If True, transfers ownership of the data to the object. If False, caller is responsible for releasing the STGMEDIUM. + +Returns: + + None + + """ + pass + + + def EnumFormatEtc(self,dwDirection:'typing.Any') -> 'PyIEnumFORMATETC': + """ + Returns an enumerator to list the data formats that the + +object supports. + +Args: + + dwDirection(typing.Any):Indicates whether to return formats that can be queried or set (pythoncom.DATADIR_GET or DATADIR_SET) + +Returns: + + PyIEnumFORMATETC + + """ + pass + + + def DAdvise(self,pformatetc:'PyFORMATETC',advf:'typing.Any',pAdvSink:'typing.Any') -> 'typing.Any': + """ + Connects the object to an interface that will receive notifications when its data + +changes + +Args: + + pformatetc(PyFORMATETC):Defines the type of data for which the sink will receive notifications. + advf(typing.Any):Combination of values from ADVF enum. (which currently do not appear in any of the constants modules!) + pAdvSink(typing.Any):Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection + +Returns: + + typing.Any:Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection + + + """ + pass + + + def DUnadvise(self,dwConnection:'typing.Any') -> 'None': + """ + Disconnects a notification sink. + +Args: + + dwConnection(typing.Any):Identifier of the connection as returned by DAdvise. + +Returns: + + None + + """ + pass + + + def EnumDAdvise(self,) -> 'typing.Any': + """ + Creates an enumerator to list connected notification sinks. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIDebugApplication(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetName(self,pstrName:'typing.Any') -> 'None': + """ + Sets the name of the application. + +Args: + + pstrName(typing.Any):The name of the application.CommentsThe provided name will be returned in subsequent calls to >om PyIRemoteDebugApplication.GetName>. + +Returns: + + None + + """ + pass + + + def StepOutComplete(self,) -> 'None': + """ + Called by language engines, in single step mode, just before they + +return to their caller. + +Args: + + + +Returns: + + None + + """ + pass + + + def DebugOutput(self,pstr:'typing.Any') -> 'None': + """ + Causes the given string to be displayed by the debugger IDE, normally in + +an output window. + +Args: + + pstr(typing.Any):Description for pstrCommentsThis mechanism provides the means for a language engine to implement language specific debugging output support. Example: Debug.writeln("Help") in JavaScript. + +Returns: + + None + + """ + pass + + + def StartDebugSession(self,) -> 'None': + """ + Causes a default debugger IDE to be started and a debug session to + +be attached to this application if one does not already exist. + +Args: + + + +Returns: + + None + + """ + pass + + + def HandleBreakPoint(self,br:'typing.Any') -> 'typing.Any': + """ + Called by the language engine in the context of a thread that has + +hit a breakpoint. + +Args: + + br(typing.Any):Break reason - one of the BREAKREASON_* constants.CommentsThis method causes the current thread to block and a notification of the breakpoint to be sent to the debugger IDE. When the debugger IDE resumes the application this method returns with the action to be taken.Note: While in the breakpoint the language engine may be called in this thread to do various things such as enumerating stack frames or evaluating expressions.Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. + +Returns: + + typing.Any:Break reason - one of the BREAKREASON_* constants.Comments + +This method causes the current thread to block and a notification of the breakpoint + +to be sent to the debugger IDE. When the debugger IDE resumes the application this + +method returns with the action to be taken. + +Note: While in the breakpoint the language engine may be called in this thread to do + +various things such as enumerating stack frames or evaluating expressions. +Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. + + + """ + pass + + + def Close(self,) -> 'None': + """ + Causes this application to release all references and enter a zombie state. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBreakFlags(self,) -> 'typing.Any': + """ + Returns the current break flags for the application. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCurrentThread(self,) -> 'PyIDebugApplicationThread': + """ + Returns the application thread object + +associated with the currently running thread. + +Args: + + + +Returns: + + PyIDebugApplicationThread + + """ + pass + + + def CreateAsyncDebugOperation(self,psdo:'PyIDebugSyncOperation') -> 'None': + """ + None + +Args: + + psdo(PyIDebugSyncOperation):Description for psdoCommentsThis provides a mechanism for language engines to implement asynchronous expression and evaluation, etc. without having to know the details of synchronization with the debugger thread. See the descriptions for PyIDebugSyncOperation and PyIDebugAsyncOperation for more details. + +Returns: + + None + + """ + pass + + + def AddStackFrameSniffer(self,pdsfs:'PyIDebugStackFrameSniffer') -> 'typing.Any': + """ + Adds a stack frame sniffer to this application. + +Args: + + pdsfs(PyIDebugStackFrameSniffer):Description for pdsfsCommentsGenerally called by a language engine to expose its stack frames to the debugger. It is possible for other entities to expose stack frames.Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer + +Returns: + + typing.Any:Description for pdsfsComments + +Generally called by a language engine + +to expose its stack frames to the debugger. It is possible for other entities to + +expose stack frames. +Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer + + + """ + pass + + + def RemoveStackFrameSniffer(self,dwCookie:'typing.Any') -> 'None': + """ + Removes a stack frame sniffer from this application. + +Args: + + dwCookie(typing.Any):A cookie obtained from PyIDebugApplication::AddStackFrameSniffer + +Returns: + + None + + """ + pass + + + def QueryCurrentThreadIsDebuggerThread(self,) -> 'None': + """ + Determines if the current running thread is the + +debugger thread. + +Args: + + + +Returns: + + None:PyIDebugApplication.QueryCurrentThreadIsDebuggerThread +QueryCurrentThreadIsDebuggerThread()Determines if the current running thread is the + +debugger thread. +Return ValueReturns S_OK if the current running thread is the debugger thread. + +Otherwise, returns S_FALSE. + + + """ + pass + + + def SynchronousCallInDebuggerThread(self,pptc:'typing.Any',dwParam1:'typing.Any',dwParam2:'typing.Any',dwParam3:'typing.Any') -> 'None': + """ + Provides a mechanism for the caller to run code in the + +debugger thread. + +Args: + + pptc(typing.Any):Description for pptc + dwParam1(typing.Any):Description for dwParam1 + dwParam2(typing.Any):Description for dwParam2 + dwParam3(typing.Any):Description for dwParam3CommentsThis is generally used so that language engines and hosts can implement free threaded objects on top of their single threaded implementations. + +Returns: + + None + + """ + pass + + + def CreateApplicationNode(self,) -> 'PyIDebugApplicationNode': + """ + Creates a new application node which + +is associated with a specific document provider. + +Args: + + + +Returns: + + PyIDebugApplicationNode + + """ + pass + + + def FireDebuggerEvent(self,guid:'typing.Any',unknown:'PyIUnknown') -> 'None': + """ + Fire a generic event to the IApplicationDebugger (if any) + +Args: + + guid(typing.Any):A GUID. + unknown(PyIUnknown):An unknown object. + +Returns: + + None + + """ + pass + + + def HandleRuntimeError(self,pErrorDebug:'PyIActiveScriptErrorDebug',pScriptSite:'PyIActiveScriptSite') -> 'None': + """ + Description of HandleRuntimeError. + +Args: + + pErrorDebug(PyIActiveScriptErrorDebug):Description for pErrorDebug + pScriptSite(PyIActiveScriptSite):Description for pScriptSite + +Returns: + + None + + """ + pass + + + def FCanJitDebug(self,) -> 'None': + """ + Description of FCanJitDebug. + +Args: + + + +Returns: + + None + + """ + pass + + + def FIsAutoJitDebugEnabled(self,) -> 'None': + """ + Description of FIsAutoJitDebugEnabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddGlobalExpressionContextProvider(self,pdsfs:'PyIProvideExpressionContexts') -> 'None': + """ + Description of AddGlobalExpressionContextProvider. + +Args: + + pdsfs(PyIProvideExpressionContexts):Description for pdsfs + +Returns: + + None + + """ + pass + + + def RemoveGlobalExpressionContextProvider(self,dwCookie:'typing.Any') -> 'None': + """ + Description of + +RemoveGlobalExpressionContextProvider. + +Args: + + dwCookie(typing.Any):Description for dwCookie + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationNode(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumChildren(self,) -> 'None': + """ + Description of EnumChildren. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetParent(self,) -> 'PyIDebugApplicationNode': + """ + Returns the parent node. + +Args: + + + +Returns: + + PyIDebugApplicationNode + + """ + pass + + + def SetDocumentProvider(self,pddp:'PyIDebugDocumentProvider') -> 'None': + """ + Description of SetDocumentProvider. + +Args: + + pddp(PyIDebugDocumentProvider):Description for pddp + +Returns: + + None + + """ + pass + + + def Close(self,) -> 'None': + """ + Description of Close. + +Args: + + + +Returns: + + None + + """ + pass + + + def Attach(self,pdanParent:'PyIDebugApplicationNode') -> 'None': + """ + Attach a node to its parent. + +Args: + + pdanParent(PyIDebugApplicationNode):The parent node. None is not acceptable. + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'None': + """ + Detach a node from its parent. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationNodeEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onAddChild(self,prddpChild:'PyIDebugApplicationNode') -> 'None': + """ + Description of onAddChild. + +Args: + + prddpChild(PyIDebugApplicationNode):Description for prddpChild + +Returns: + + None + + """ + pass + + + def onRemoveChild(self,prddpChild:'PyIDebugApplicationNode') -> 'None': + """ + Description of onRemoveChild. + +Args: + + prddpChild(PyIDebugApplicationNode):Description for prddpChild + +Returns: + + None + + """ + pass + + + def onDetach(self,) -> 'None': + """ + Description of onDetach. + +Args: + + + +Returns: + + None + + """ + pass + + + def onAttach(self,prddpParent:'PyIDebugApplicationNode') -> 'None': + """ + Description of onAttach. + +Args: + + prddpParent(PyIDebugApplicationNode):Description for prddpParent + +Returns: + + None + + """ + pass + + +class PyIDebugApplicationThread(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SynchronousCallIntoThread(self,pstcb:'typing.Any',dwParam1:'typing.Any',dwParam2:'typing.Any',dwParam3:'typing.Any') -> 'None': + """ + Description of SynchronousCallIntoThread. + +Args: + + pstcb(typing.Any):Description for pstcb + dwParam1(typing.Any):Description for dwParam1 + dwParam2(typing.Any):Description for dwParam2 + dwParam3(typing.Any):Description for dwParam3 + +Returns: + + None + + """ + pass + + + def QueryIsCurrentThread(self,) -> 'None': + """ + Description of QueryIsCurrentThread. + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryIsDebuggerThread(self,) -> 'None': + """ + Description of QueryIsDebuggerThread. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugCodeContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentContext(self,) -> 'None': + """ + Description of GetDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetBreakPoint(self,bps:'typing.Any') -> 'None': + """ + Description of SetBreakPoint. + +Args: + + bps(typing.Any):Description for bps + +Returns: + + None + + """ + pass + + +class PyIDebugDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDebugDocumentContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocument(self,) -> 'None': + """ + Description of GetDocument. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumCodeContexts(self,) -> 'None': + """ + Description of EnumCodeContexts. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentHelper(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Init(self,pda:'PyIDebugApplication',pszShortName:'typing.Any',pszLongName:'typing.Any',docAttr:'typing.Any') -> 'None': + """ + Description of Init. + +Args: + + pda(PyIDebugApplication):Description for pda + pszShortName(typing.Any):Description for pszShortName + pszLongName(typing.Any):Description for pszLongName + docAttr(typing.Any):Description for docAttr + +Returns: + + None + + """ + pass + + + def Attach(self,pddhParent:'PyIDebugDocumentHelper') -> 'None': + """ + Add the document to the doc tree + +Args: + + pddhParent(PyIDebugDocumentHelper):Parent item. If none, this item is top level. + +Returns: + + None + + """ + pass + + + def Detach(self,) -> 'None': + """ + Description of Detach. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddUnicodeText(self,pszText:'typing.Any') -> 'None': + """ + Description of AddUnicodeText. + +Args: + + pszText(typing.Any):Description for pszText + +Returns: + + None + + """ + pass + + + def AddDBCSText(self,) -> 'None': + """ + Description of AddDBCSText. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDebugDocumentHost(self,pddh:'PyIDebugDocumentHost') -> 'None': + """ + Description of SetDebugDocumentHost. + +Args: + + pddh(PyIDebugDocumentHost):Description for pddh + +Returns: + + None + + """ + pass + + + def AddDeferredText(self,cChars:'typing.Any',dwTextStartCookie:'typing.Any') -> 'None': + """ + Description of AddDeferredText. + +Args: + + cChars(typing.Any):Description for cChars + dwTextStartCookie(typing.Any):Description for dwTextStartCookie + +Returns: + + None + + """ + pass + + + def DefineScriptBlock(self,ulCharOffset:'typing.Any',cChars:'typing.Any',pas:'typing.Any',fScriptlet:'typing.Any') -> 'None': + """ + Description of DefineScriptBlock. + +Args: + + ulCharOffset(typing.Any):Description for ulCharOffset + cChars(typing.Any):Description for cChars + pas(typing.Any):Description for pas + fScriptlet(typing.Any):Description for fScriptlet + +Returns: + + None + + """ + pass + + + def SetDefaultTextAttr(self,staTextAttr:'typing.Any') -> 'None': + """ + Description of SetDefaultTextAttr. + +Args: + + staTextAttr(typing.Any):Description for staTextAttr + +Returns: + + None + + """ + pass + + + def SetTextAttributes(self,ulCharOffset:'typing.Any',obAttr:'typing.Any') -> 'None': + """ + Description of SetTextAttributes. + +Args: + + ulCharOffset(typing.Any):Description for ulCharOffset + obAttr(typing.Any):A sequence of attributes. + +Returns: + + None + + """ + pass + + + def SetLongName(self,pszLongName:'typing.Any') -> 'None': + """ + Description of SetLongName. + +Args: + + pszLongName(typing.Any):Description for pszLongName + +Returns: + + None + + """ + pass + + + def SetShortName(self,pszShortName:'typing.Any') -> 'None': + """ + Description of SetShortName. + +Args: + + pszShortName(typing.Any):Description for pszShortName + +Returns: + + None + + """ + pass + + + def SetDocumentAttr(self,pszAttributes:'typing.Any') -> 'None': + """ + Description of SetDocumentAttr. + +Args: + + pszAttributes(typing.Any):Description for pszAttributes + +Returns: + + None + + """ + pass + + + def GetDebugApplicationNode(self,) -> 'None': + """ + Description of GetDebugApplicationNode. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetScriptBlockInfo(self,dwSourceContext:'typing.Any') -> 'None': + """ + Description of GetScriptBlockInfo. + +Args: + + dwSourceContext(typing.Any):Description for dwSourceContext + +Returns: + + None + + """ + pass + + + def CreateDebugDocumentContext(self,iCharPos:'typing.Any',cChars:'typing.Any') -> 'None': + """ + Description of CreateDebugDocumentContext. + +Args: + + iCharPos(typing.Any):Description for iCharPos + cChars(typing.Any):Description for cChars + +Returns: + + None + + """ + pass + + + def BringDocumentToTop(self,) -> 'None': + """ + Description of BringDocumentToTop. + +Args: + + + +Returns: + + None + + """ + pass + + + def BringDocumentContextToTop(self,pddc:'PyIDebugDocumentContext') -> 'None': + """ + Description of BringDocumentContextToTop. + +Args: + + pddc(PyIDebugDocumentContext):Description for pddc + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentHost(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDeferredText(self,dwTextStartCookie:'typing.Any',cMaxChars:'typing.Any') -> 'None': + """ + Description of GetDeferredText. + +Args: + + dwTextStartCookie(typing.Any):Description for dwTextStartCookie + cMaxChars(typing.Any):Description for cMaxChars + +Returns: + + None + + """ + pass + + + def GetScriptTextAttributes(self,pstrCode:'typing.Any',pstrDelimiter:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of GetScriptTextAttributes. + +Args: + + pstrCode(typing.Any):Description for pstrCode + pstrDelimiter(typing.Any):Description for pstrDelimiter + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def OnCreateDocumentContext(self,) -> 'None': + """ + Description of OnCreateDocumentContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPathName(self,) -> 'None': + """ + Description of GetPathName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFileName(self,) -> 'None': + """ + Description of GetFileName. + +Args: + + + +Returns: + + None + + """ + pass + + + def NotifyChanged(self,) -> 'None': + """ + Description of NotifyChanged. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentInfo(object): + """Provides information on a document, which may or may not be instantiated.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetName(self,) -> 'None': + """ + Returns the specified name for the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocumentClassId(self,) -> 'PyIID': + """ + Returns a CLSID describing the document type. + +Args: + + + +Returns: + + PyIID + + """ + pass + + +class PyIDebugDocumentProvider(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocument(self,) -> 'PyIDebugDocument': + """ + Causes the document to be instantiated if it does + +not already exist. + +Args: + + + +Returns: + + PyIDebugDocument + + """ + pass + + +class PyIDebugDocumentText(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentAttributes(self,) -> 'None': + """ + Description of GetDocumentAttributes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'None': + """ + Description of GetSize. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPositionOfLine(self,cLineNumber:'typing.Any') -> 'None': + """ + Description of GetPositionOfLine. + +Args: + + cLineNumber(typing.Any):Description for cLineNumber + +Returns: + + None + + """ + pass + + + def GetLineOfPosition(self,cCharacterPosition:'typing.Any') -> 'None': + """ + Description of GetLineOfPosition. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + +Returns: + + None + + """ + pass + + + def GetText(self,cCharacterPosition:'typing.Any',cMaxChars:'typing.Any',bWantAttr:'typing.Any'=1) -> 'None': + """ + Description of GetText. + +Args: + + cCharacterPosition(typing.Any): + cMaxChars(typing.Any):Max chars to return + bWantAttr(typing.Any):Should the attributes be returned? + +Returns: + + None + + """ + pass + + + def GetPositionOfContext(self,psc:'PyIDebugDocumentContext') -> 'None': + """ + Description of GetPositionOfContext. + +Args: + + psc(PyIDebugDocumentContext):Description for psc + +Returns: + + None + + """ + pass + + + def GetContextOfPosition(self,cCharacterPosition:'typing.Any',cNumChars:'typing.Any') -> 'None': + """ + Description of GetContextOfPosition. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumChars(typing.Any):Description for cNumChars + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextAuthor(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertText(self,cCharacterPosition:'typing.Any',cNumToInsert:'typing.Any',pcharText:'typing.Any') -> 'None': + """ + Description of InsertText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToInsert(typing.Any):Description for cNumToInsert + pcharText(typing.Any):Description for pcharText + +Returns: + + None + + """ + pass + + + def RemoveText(self,cCharacterPosition:'typing.Any',cNumToRemove:'typing.Any') -> 'None': + """ + Description of RemoveText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToRemove(typing.Any):Description for cNumToRemove + +Returns: + + None + + """ + pass + + + def ReplaceText(self,cCharacterPosition:'typing.Any',cNumToReplace:'typing.Any',pcharText:'typing.Any') -> 'None': + """ + Description of ReplaceText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToReplace(typing.Any):Description for cNumToReplace + pcharText(typing.Any):Description for pcharText + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onDestroy(self,) -> 'None': + """ + Description of onDestroy. + +Args: + + + +Returns: + + None + + """ + pass + + + def onInsertText(self,cCharacterPosition:'typing.Any',cNumToInsert:'typing.Any') -> 'None': + """ + Description of onInsertText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToInsert(typing.Any):Description for cNumToInsert + +Returns: + + None + + """ + pass + + + def onRemoveText(self,cCharacterPosition:'typing.Any',cNumToRemove:'typing.Any') -> 'None': + """ + Description of onRemoveText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToRemove(typing.Any):Description for cNumToRemove + +Returns: + + None + + """ + pass + + + def onReplaceText(self,cCharacterPosition:'typing.Any',cNumToReplace:'typing.Any') -> 'None': + """ + Description of onReplaceText. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToReplace(typing.Any):Description for cNumToReplace + +Returns: + + None + + """ + pass + + + def onUpdateTextAttributes(self,cCharacterPosition:'typing.Any',cNumToUpdate:'typing.Any') -> 'None': + """ + Description of onUpdateTextAttributes. + +Args: + + cCharacterPosition(typing.Any):Description for cCharacterPosition + cNumToUpdate(typing.Any):Description for cNumToUpdate + +Returns: + + None + + """ + pass + + + def onUpdateDocumentAttributes(self,textdocattr:'typing.Any') -> 'None': + """ + Description of onUpdateDocumentAttributes. + +Args: + + textdocattr(typing.Any):Description for textdocattr + +Returns: + + None + + """ + pass + + +class PyIDebugDocumentTextExternalAuthor(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPathName(self,) -> 'None': + """ + Description of GetPathName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFileName(self,) -> 'None': + """ + Description of GetFileName. + +Args: + + + +Returns: + + None + + """ + pass + + + def NotifyChanged(self,) -> 'None': + """ + Description of NotifyChanged. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpression(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Start(self,pdecb:'PyIDebugExpressionCallBack') -> 'None': + """ + Description of Start. + +Args: + + pdecb(PyIDebugExpressionCallBack):Description for pdecb + +Returns: + + None + + """ + pass + + + def Abort(self,) -> 'None': + """ + Description of Abort. + +Args: + + + +Returns: + + None + + """ + pass + + + def QueryIsComplete(self,) -> 'None': + """ + Description of QueryIsComplete. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetResultAsString(self,) -> 'None': + """ + Description of GetResultAsString. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetResultAsDebugProperties(self,) -> 'None': + """ + Description of GetResultAsDebugProperty. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpressionCallBack(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onComplete(self,) -> 'None': + """ + Description of onComplete. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugExpressionContext(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseLanguageText(self,pstrCode:'typing.Any',nRadix:'typing.Any',pstrDelimiter:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of ParseLanguageText. + +Args: + + pstrCode(typing.Any):Description for pstrCode + nRadix(typing.Any):Description for nRadix + pstrDelimiter(typing.Any):Description for pstrDelimiter + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetLanguageInfo(self,) -> 'None': + """ + Description of GetLanguageInfo. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugProperty(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyInfo(self,dwFieldSpec:'typing.Any',nRadix:'typing.Any') -> 'None': + """ + Description of GetPropertyInfo. + +Args: + + dwFieldSpec(typing.Any):Description for dwFieldSpec + nRadix(typing.Any):Description for nRadix + +Returns: + + None + + """ + pass + + + def GetExtendedInfo(self,) -> 'None': + """ + Description of GetExtendedInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetValueAsString(self,pszValue:'typing.Any',nRadix:'typing.Any') -> 'None': + """ + Description of SetValueAsString. + +Args: + + pszValue(typing.Any):Description for pszValue + nRadix(typing.Any):Description for nRadix + +Returns: + + None + + """ + pass + + + def EnumMembers(self,dwFieldSpec:'typing.Any',nRadix:'typing.Any',refiid:'PyIID') -> 'None': + """ + Description of EnumMembers. + +Args: + + dwFieldSpec(typing.Any):Description for dwFieldSpec + nRadix(typing.Any):Description for nRadix + refiid(PyIID):Description for refiid + +Returns: + + None + + """ + pass + + + def GetParent(self,) -> 'None': + """ + Description of GetParent. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugSessionProvider(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def StartDebugSession(self,pda:'PyIRemoteDebugApplication') -> 'None': + """ + Description of StartDebugSession. + +Args: + + pda(PyIRemoteDebugApplication):Description for pda + +Returns: + + None + + """ + pass + + +class PyIDebugStackFrame(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCodeContext(self,) -> 'None': + """ + Returns the current code context associated with the stack frame. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDescriptionString(self,fLong:'typing.Any') -> 'typing.Any': + """ + Returns a short or long textual description of the + +stack frame. + +Args: + + fLong(typing.Any):If false, provide only the name of the function associated with the stack frame. When true it may also provide the parameter(s) to the function or whatever else is relevant. + +Returns: + + typing.Any + + """ + pass + + + def GetLanguageString(self,fLong:'typing.Any') -> 'typing.Any': + """ + Returns a short or long textual description of the + +language. + +Args: + + fLong(typing.Any):If False, just the language name should be provided, eg, "Python". If True a full product description may be provided (eg, "Python 1.4 ActiveX Debugging Host") + +Returns: + + typing.Any + + """ + pass + + + def GetThread(self,) -> 'PyIDebugApplicationThread': + """ + Returns the thread associated with this stack + +frame. + +Args: + + + +Returns: + + PyIDebugApplicationThread + + """ + pass + + +class PyIDebugStackFrameSniffer(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumStackFrames(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugStackFrameSnifferEx(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumStackFramesEx(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDebugSyncOperation(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetTargetThread(self,) -> 'None': + """ + Description of GetTargetThread. + +Args: + + + +Returns: + + None + + """ + pass + + + def Execute(self,) -> 'None': + """ + Description of Execute. + +Args: + + + +Returns: + + None + + """ + pass + + + def InProgressAbort(self,) -> 'None': + """ + Description of InProgressAbort. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDefaultExtractIconInit(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetFlags(self,uFlags:'typing.Any') -> 'None': + """ + Description of SetFlags. + +Args: + + uFlags(typing.Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def SetKey(self,hkey:'PyHKEY') -> 'None': + """ + Description of SetKey. + +Args: + + hkey(PyHKEY):Description for hkey + +Returns: + + None + + """ + pass + + + def SetNormalIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': + """ + Description of SetNormalIcon. + +Args: + + pszFile(typing.Any):Description for pszFile + iIcon(typing.Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetOpenIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': + """ + Description of SetOpenIcon. + +Args: + + pszFile(typing.Any):Description for pszFile + iIcon(typing.Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetShortcutIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': + """ + Description of SetShortcutIcon. + +Args: + + pszFile(typing.Any):Description for pszFile + iIcon(typing.Any):Description for iIcon + +Returns: + + None + + """ + pass + + + def SetDefaultIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': + """ + Description of SetDefaultIcon. + +Args: + + pszFile(typing.Any):Description for pszFile + iIcon(typing.Any):Description for iIcon + +Returns: + + None + + """ + pass + + +class PyIDirectSound(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,guid:'PyIID') -> 'None': + """ + Description of Initialize. + +Args: + + guid(PyIID):Globally unique identifier (GUID) specifying the sound driver to which this DirectSound object binds. Pass None to select the primary sound driver. + +Returns: + + None + + """ + pass + + + def SetCooperativeLevel(self,hwnd:'typing.Any',level:'typing.Any') -> 'None': + """ + The IDirectSound::SetCooperativeLevel method sets the cooperative level + +of the application for this sound device. + +Args: + + hwnd(typing.Any):Window handle to the application or None. + level(typing.Any):Requested priority level. Specify one of the following values:LevelDescriptionDSSCL_NORMALSets the application to a fully cooperative status. Most applications should use this level, because it has the smoothest multitasking and resource-sharing behavior.DSSCL_PRIORITYSets the application to the priority level. Applications with this cooperative level can call the DirectSoundBuffer.setFormat and DirectSound.compact methods.DSSCL_EXCLUSIVESets the application to the exclusive level. When it has the input focus, the application will be the only one audible (sounds from applications with the DSBCAPS_GLOBALFOCUS flag set will be muted). With this level, it also has all the privileges of the DSSCL_PRIORITY level. DirectSound will restore the hardware format, as specified by the most recent call to the DirectSoundBuffer.setFormat method, once the application gains the input focus. (Note that DirectSound will always restore the wave format, no matter what priority level is set.)DSSCL_WRITEPRIMARYThis is the highest priority level. The application has write access to the primary sound buffers. No secondary sound buffers in any application can be played. + +Returns: + + None + + """ + pass + + + def CreateSoundBuffer(self,lpDSCBufferDesc:'PyDSCBUFFERDESC',unk:'typing.Any'=None) -> 'None': + """ + The IDirectSound::CreateSoundBuffer method creates a DirectSoundBuffer + +object to hold a sequence of audio samples. + +Args: + + lpDSCBufferDesc(PyDSCBUFFERDESC):a DSBUFFERDESC structure containing values for the sound buffer being created. + unk(typing.Any):The IUnknown for COM aggregation. + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def Compact(self,) -> 'None': + """ + The Compact method moves the unused portions of on-board sound memory, if any, to a + +contiguous block so that the largest portion of free memory will be available. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundBuffer(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Description of Initialize. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Retrieves the current status of the sound buffer. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + Retrieves the capabilities of the DirectSoundBuffer object as a DSBCAPS + +object. + +Args: + + + +Returns: + + None + + """ + pass + + + def Restore(self,) -> 'None': + """ + Restores the memory allocation for a lost sound buffer for the specified + +DirectSoundBuffer object. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentPosition(self,) -> 'None': + """ + Description of GetCurrentPosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def Play(self,) -> 'None': + """ + Description of Play. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCurrentPosition(self,) -> 'None': + """ + Description of SetCurrentPosition. + +Args: + + + +Returns: + + None + + """ + pass + + + def Stop(self,) -> 'None': + """ + Description of Stop. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFrequency(self,) -> 'None': + """ + Description of GetFrequency. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPan(self,) -> 'None': + """ + Description of GetPan. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetVolume(self,) -> 'None': + """ + Description of GetVolume. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFrequency(self,) -> 'None': + """ + Description of SetFrequency. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPan(self,) -> 'None': + """ + Description of SetPan. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetVolume(self,) -> 'None': + """ + Description of SetVolume. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundCapture(object): + """The methods of the IDirectSoundCapture interface are used to create sound capture + +buffers.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Not normally called directly. Use DirectSoundCaptureCreate instead. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCaps(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundCaptureBuffer(object): + """The methods of the IDirectSoundCaptureBuffer interface are used to manipulate + +sound capture buffers.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,) -> 'None': + """ + Not normally used. Used IDirectSoundCapture.CreateCaptureBuffer + +instead. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Retrieves the current status of the sound capture buffer. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentPosition(self,) -> 'None': + """ + Returns a tuple of the current capture and read position in + +the buffer. The capture position is ahead of the read position. These positions are not always identical due to + +possible buffering of captured data either on the physical device or in the host. The data after the read position up + +to and including the capture position is not necessarily valid data. + +Args: + + + +Returns: + + None + + """ + pass + + + def Stop(self,) -> 'None': + """ + The IDirectSoundCaptureBuffer::Stop method puts the capture buffer into + +the "stop" state and stops capturing data. If the capture buffer is already in the stop state then the method has no + +effect. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIDirectSoundNotify(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDirectoryObject(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetObjectInformation(self,) -> 'PyADS_OBJECT_INFO': + """ + None + +Args: + + + +Returns: + + PyADS_OBJECT_INFO + + """ + pass + + + def GetObjectAttributes(self,names:'typing.Tuple[str, ...]') -> 'typing.Tuple[PyADS_ATTR_INFO, ...]': + """ + None + +Args: + + names(typing.Tuple[str, ...]): + +Returns: + + typing.Tuple[PyADS_ATTR_INFO, ...] + + """ + pass + + + def SetObjectAttributes(self,attrs:'typing.Tuple[PyADS_ATTR_INFO, ...]') -> 'typing.Any': + """ + None + +Args: + + attrs(typing.Tuple[PyADS_ATTR_INFO, ...]):The attributes to set + +Returns: + + typing.Any + + """ + pass + + + def CreateDSObject(self,rdn:'str',attrs:'typing.Tuple[PyADS_ATTR_INFO, ...]') -> 'PyIDispatch': + """ + None + +Args: + + rdn(str):The relative distinguished name (relative path) of the object to be created. + attrs(typing.Tuple[PyADS_ATTR_INFO, ...]):The attributes to set. + +Returns: + + PyIDispatch + + """ + pass + + + def DeleteDSObject(self,rdn:'str') -> 'None': + """ + Deletes a leaf object in a directory tree + +Args: + + rdn(str):The relative distinguished name (relative path) of the object to be deleted. + +Returns: + + None + + """ + pass + + +class PyIDirectorySearch(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSearchPreference(self,prefs:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + None + +Args: + + prefs(typing.Any):Return ValueThe result is the hresult of the call, and a list of integer status codes for each of the preferences set. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:Return ValueThe result is the hresult of the call, and a list of integer status + +codes for each of the preferences set. + + + """ + pass + + + def ExecuteSearch(self,_filter:'str',attrNames:'typing.List[str]') -> 'typing.Any': + """ + None + +Args: + + _filter(str): + attrNames(typing.List[str]):Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle should be called to close the handle. + +Returns: + + typing.Any:Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle + +should be called to close the handle. + + + """ + pass + + + def GetNextRow(self,handle:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def GetFirstRow(self,handle:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def GetPreviousRow(self,handle:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown + +Returns: + + typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown + + + """ + pass + + + def CloseSearchHandle(self,handle:'typing.Any') -> 'None': + """ + Closes a previously opened search handle. + +Args: + + handle(typing.Any): + +Returns: + + None + + """ + pass + + + def AdandonSearch(self,handle:'typing.Any') -> 'None': + """ + None + +Args: + + handle(typing.Any): + +Returns: + + None + + """ + pass + + + def GetColumn(self,handle:'typing.Any',name:'str') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + None + +Args: + + handle(typing.Any):Handle to a search + name(str):The column name to fetch + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetNextColumnName(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None:PyIDirectorySearch.GetNextColumnName +GetNextColumnName() +Return ValueReturns None when the underlying ADSI function return S_ADS_NOMORE_COLUMNS. + + + """ + pass + + +class PyIDispatch(object): + """A OLE automation client object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Invoke(self,dispid:'typing.Any',lcid:'typing.Any',flags:'typing.Any',bResultWanted:'typing.Any',arg:'typing.Tuple[typing.Any, ...]') -> 'typing.Any': + """ + Invokes a DISPID, using the passed arguments. + +Args: + + dispid(typing.Any):The dispid to use. Typically this value will come from PyIDispatch::GetIDsOfNames or from a type library. + lcid(typing.Any):The locale id to use. + flags(typing.Any):The flags for the call. The following flags can be used.FlagDescriptionDISPATCH_METHODThe member is invoked as a method. If a property has the same name, both this and the DISPATCH_PROPERTYGET flag may be set.DISPATCH_PROPERTYGETThe member is retrieved as a property or data member.DISPATCH_PROPERTYPUTThe member is changed as a property or data member.DISPATCH_PROPERTYPUTREFThe member is changed by a reference assignment, rather than a value assignment. This flag is valid only when the property accepts a reference to an object. + bResultWanted(typing.Any):Indicates if the result of the call should be requested. + arg(typing.Tuple[typing.Any, ...]):The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. Otherwise, the result is determined by the COM object itself (and may still be None) + +Returns: + + typing.Any:The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. + +Otherwise, the result is determined by the COM object itself (and may still be None) + + + """ + pass + + + def InvokeTypes(self,dispid:'typing.Any',lcid:'typing.Any',wFlags:'typing.Any',resultTypeDesc:'typing.Any',typeDescs:'typing.Tuple[typing.Any, ...]',args:'typing.Tuple[typing.Any, ...]') -> 'typing.Any': + """ + Invokes a DISPID, using the passed arguments and type descriptions. + +Args: + + dispid(typing.Any):The dispid to use. Please see PyIDispatch::Invoke. + lcid(typing.Any):The locale ID. Please see PyIDispatch::Invoke. + wFlags(typing.Any):Flags for the call. Please see PyIDispatch::Invoke. + resultTypeDesc(typing.Any):A tuple describing the type of the result. See the comments for more information. + typeDescs(typing.Tuple[typing.Any, ...]):A sequence of tuples describing the types of the parameters for the function. See the comments for more information. + args(typing.Tuple[typing.Any, ...]):The args to the function.CommentsThe Microsoft documentation for IDispatch should be used for all params except 'resultTypeDesc' and 'typeDescs'. 'resultTypeDesc' describes the return value of the function, and is a tuple of (type_id, flags). 'typeDescs' describes the type of each parameters, and is a list of the same (type_id, flags) tuple.itemDescriptiontype_idA valid "variant type" constant (eg, VT_I4 | VT_ARRAY, VT_DATE, etc - see VARIANT at MSDN).flagsOne of the PARAMFLAG constants (eg, PARAMFLAG_FIN, PARAMFLAG_FOUT etc - see PARAMFLAG at MSDN).ExampleAn example from the makepy generated file for Wordclass Cells(DispatchBaseClass):... def SetWidth(self, ColumnWidth=..., RulerStyle=...): return self._oleobj_.InvokeTypes(202, LCID, 1, (24, 0), ((4, 1), (3, 1)),...)The interesting bits areresultTypeDesc: (24, 0) - (VT_VOID, <no flags>)typeDescs: ((4, 1), (3, 1)) - ((VT_R4, PARAMFLAG_FIN), (VT_I4, PARAMFLAG_FIN))So, in this example, the function returns no value and takes 2 "in" params - ColumnWidth is a float, and RulerStule is an int. + +Returns: + + typing.Any + + """ + pass + + + def GetIDsOfNames(self,name:'str',arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Union[typing.Any]]': + """ + Get the DISPID for the passed names. + +Args: + + name(str):A name to query forAlternative Parameters + arg(typing.Any):A sequence of string names to queryCommentsCurrently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used.Return ValueIf the first parameter is a sequence, the result will be a tuple of integers for each name in the sequence. If the first parameter is a single string, the result is a single integer with the ID of requested item. + +Returns: + + typing.Tuple[typing.Any, typing.Union[typing.Any]]:A sequence of string names to query +Comments + +Currently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used. +Return ValueIf the first parameter is a sequence, the result will be a tuple of integers + +for each name in the sequence. If the first parameter is a single string, the result + +is a single integer with the ID of requested item. + + + """ + pass + + + def GetTypeInfo(self,locale:'typing.Any',index:'typing.Any'=0) -> 'PyITypeInfo': + """ + Get type information for the object. + +Args: + + locale(typing.Any):The locale to use. + index(typing.Any):The index of the typelibrary to fetch. Note that these params are reversed from the win32 call. + +Returns: + + PyITypeInfo + + """ + pass + + + def GetTypeInfoCount(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIDispatchEx(object): + """A OLE automation client object that uses the IDispatchEx scripting interface..""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDispID(self,name:'str',fdex:'typing.Any') -> 'typing.Any': + """ + Returns the member id for a name + +Args: + + name(str):Passed in name to be mapped + fdex(typing.Any):Determines the options for obtaining the member identifier. This can be a combination of the fdex* constants: + +Returns: + + typing.Any + + """ + pass + + + def InvokeEx(self,dispid:'typing.Any',lcid:'typing.Any',flags:'typing.Any',args:'typing.List[typing.Any]',types:'typing.List[typing.Any]'=None,returnDesc:'typing.Any'=1,serviceProvider:'PyIServiceProvider'=None) -> 'typing.Any': + """ + None + +Args: + + dispid(typing.Any): + lcid(typing.Any): + flags(typing.Any): + args(typing.List[typing.Any]):The arguments. + types(typing.List[typing.Any]):A tuple of type description object, or None if type descriptions are not available. + returnDesc(typing.Any):If types==None, should be a BOOL indicating if the result is needed. If types is a tuple, then should a be type description. + serviceProvider(PyIServiceProvider):A service provider object supplied by the caller which allows the object to obtain services from the caller. Can be None. + +Returns: + + typing.Any + + """ + pass + + + def DeleteMemberByName(self,name:'str',fdex:'typing.Any') -> 'None': + """ + None + +Args: + + name(str):Passed in name to be mapped + fdex(typing.Any):Determines the options + +Returns: + + None + + """ + pass + + + def DeleteMemberByDispID(self,dispid:'typing.Any') -> 'None': + """ + None + +Args: + + dispid(typing.Any): + +Returns: + + None + + """ + pass + + + def GetMemberProperties(self,dispid:'typing.Any',fdex:'typing.Any') -> 'typing.Any': + """ + Returns mask of fdex* flags describing a member + +Args: + + dispid(typing.Any):The member id + fdex(typing.Any):fdex* flags specifying which properties to return + +Returns: + + typing.Any + + """ + pass + + + def GetMemberName(self,dispid:'typing.Any') -> 'typing.Any': + """ + Returns the name associated with a member id + +Args: + + dispid(typing.Any):The member id + +Returns: + + typing.Any + + """ + pass + + + def GetNextDispID(self,fdex:'typing.Any',dispid:'typing.Any') -> 'typing.Any': + """ + Enumerates member ids. + +Args: + + fdex(typing.Any):Determines the options + dispid(typing.Any):Current member, or DISPID_STARTENUM to begin enumeration. GetNextDispID will retrieve the item in the enumeration after this one. + +Returns: + + typing.Any + + """ + pass + + +class PyIDisplayItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIDocHostUIHandler(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ShowContextMenu(self,dwID:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pcmdtReserved:'PyIUnknown',pdispReserved:'PyIDispatch') -> 'None': + """ + Description of ShowContextMenu. + +Args: + + dwID(typing.Any):Description for dwID + pt(typing.Tuple[typing.Any, typing.Any]):Description for ppt + pcmdtReserved(PyIUnknown):Description for pcmdtReserved + pdispReserved(PyIDispatch):Description for pdispReserved + +Returns: + + None + + """ + pass + + + def GetHostInfo(self,) -> 'None': + """ + Description of GetHostInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowUI(self,dwID:'typing.Any',pActiveObject:'PyIOleInPlaceActiveObject',pCommandTarget:'PyIOleCommandTarget',pFrame:'PyIOleInPlaceFrame',pDoc:'PyIOleInPlaceUIWindow') -> 'None': + """ + Description of ShowUI. + +Args: + + dwID(typing.Any):Description for dwID + pActiveObject(PyIOleInPlaceActiveObject):Description for pActiveObject + pCommandTarget(PyIOleCommandTarget):Description for pCommandTarget + pFrame(PyIOleInPlaceFrame):Description for pFrame + pDoc(PyIOleInPlaceUIWindow):Description for pDoc + +Returns: + + None + + """ + pass + + + def HideUI(self,) -> 'None': + """ + Description of HideUI. + +Args: + + + +Returns: + + None + + """ + pass + + + def UpdateUI(self,) -> 'None': + """ + Description of UpdateUI. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'typing.Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(typing.Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def OnDocWindowActivate(self,fActivate:'typing.Any') -> 'None': + """ + Description of OnDocWindowActivate. + +Args: + + fActivate(typing.Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def OnFrameWindowActivate(self,fActivate:'typing.Any') -> 'None': + """ + Description of OnFrameWindowActivate. + +Args: + + fActivate(typing.Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def ResizeBorder(self,prcBorder:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pUIWindow:'PyIOleInPlaceUIWindow',fRameWindow:'typing.Any') -> 'None': + """ + Description of ResizeBorder. + +Args: + + prcBorder(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcBorder + pUIWindow(PyIOleInPlaceUIWindow):Description for pUIWindow + fRameWindow(typing.Any):Description for fRameWindow + +Returns: + + None + + """ + pass + + + def TranslateAccelerator(self,lpMsg:'typing.Any',pguidCmdGroup:'PyIID',nCmdID:'typing.Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpMsg(typing.Any):Description for lpMsg + pguidCmdGroup(PyIID):Description for pguidCmdGroup + nCmdID(typing.Any):Description for nCmdID + +Returns: + + None + + """ + pass + + + def GetOptionKeyPath(self,dw:'typing.Any') -> 'None': + """ + Description of GetOptionKeyPath. + +Args: + + dw(typing.Any):Description for dw + +Returns: + + None + + """ + pass + + + def GetDropTarget(self,pDropTarget:'PyIDropTarget') -> 'None': + """ + Description of GetDropTarget. + +Args: + + pDropTarget(PyIDropTarget):Description for pDropTarget + +Returns: + + None + + """ + pass + + + def GetExternal(self,) -> 'None': + """ + Description of GetExternal. + +Args: + + + +Returns: + + None + + """ + pass + + + def TranslateUrl(self,dwTranslate:'typing.Any',pchURLIn:'typing.Any') -> 'None': + """ + Description of TranslateUrl. + +Args: + + dwTranslate(typing.Any):Description for dwTranslate + pchURLIn(typing.Any):Description for pchURLIn + +Returns: + + None + + """ + pass + + + def FilterDataObject(self,pDO:'PyIDataObject') -> 'None': + """ + Description of FilterDataObject. + +Args: + + pDO(PyIDataObject):Description for pDO + +Returns: + + None + + """ + pass + + +class PyIDropSource(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryContinueDrag(self,fEscapePressed:'typing.Any',grfKeyState:'typing.Any') -> 'None': + """ + Description of QueryContinueDrag. + +Args: + + fEscapePressed(typing.Any):Description for fEscapePressed + grfKeyState(typing.Any):Description for grfKeyState + +Returns: + + None + + """ + pass + + + def GiveFeedback(self,dwEffect:'typing.Any') -> 'None': + """ + Description of GiveFeedback. + +Args: + + dwEffect(typing.Any):Description for dwEffect + +Returns: + + None + + """ + pass + + +class PyIDropTarget(object): + """Interface that acts as a target of OLE drag and drop operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DragEnter(self,pDataObj:'PyIDataObject',grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'typing.Any': + """ + Called when an object is initially dragged into a window + +Args: + + pDataObj(PyIDataObject):IDataObject interface that contains the object being dragged + grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor + pdwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted + +Returns: + + typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can + +be accepted + + + """ + pass + + + def DragOver(self,grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'typing.Any': + """ + Called as the dragged object moves over the window + +Args: + + grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor + pdwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted at the current position + +Returns: + + typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the + +object can be accepted at the current position + + + """ + pass + + + def DragLeave(self,) -> 'None': + """ + Called as the object is dragged back out of the window + +Args: + + + +Returns: + + None + + """ + pass + + + def Drop(self,pDataObj:'PyIDataObject',grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'typing.Any': + """ + Called when the object is dropped onto the window + +Args: + + pDataObj(PyIDataObject):IDataObject interface containing the dropped object + grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state + pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor + dwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values + +Returns: + + typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values + + + """ + pass + + +class PyIDropTargetHelper(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DragEnter(self,hwnd:'int',pDataObj:'PyIDataObject',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'None': + """ + Description of DragEnter. + +Args: + + hwnd(int):Handle to target window + pDataObj(PyIDataObject):Object that is dragged onto the window + pt(typing.Tuple[typing.Any, typing.Any]):Coordinates where drag operation entered the window + dwEffect(typing.Any):One of shellcon.DROPEFFECT_* values + +Returns: + + None + + """ + pass + + + def DragOver(self,hwnd:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'None': + """ + Description of DragOver. + +Args: + + hwnd(typing.Any): + pt(typing.Tuple[typing.Any, typing.Any]):Description for pt + pdwEffect(typing.Any):Description for pdwEffect + +Returns: + + None + + """ + pass + + + def DragLeave(self,) -> 'None': + """ + Description of DragLeave. + +Args: + + + +Returns: + + None + + """ + pass + + + def Drop(self,pDataObj:'PyIDataObject',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'None': + """ + Description of Drop. + +Args: + + pDataObj(PyIDataObject):Description for pDataObj + pt(typing.Tuple[typing.Any, typing.Any]):Description for pt + dwEffect(typing.Any):Description for dwEffect + +Returns: + + None + + """ + pass + + +class PyIDsObjectPicker(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,targetComputer:'str',scopeInfos:'PyDSOP_SCOPE_INIT_INFOs',options:'typing.Any'=0,attrNames:'typing.List[str]'=None) -> 'None': + """ + Initializes the IDsObjectPicker interface with information about the scopes, filters, and options used by the object picker dialog box. + +Args: + + targetComputer(str): + scopeInfos(PyDSOP_SCOPE_INIT_INFOs): + options(typing.Any): + attrNames(typing.List[str]): + +Returns: + + None + + """ + pass + + + def InvokeDialog(self,hwnd:'typing.Any') -> 'PyIDataObject': + """ + Displays a modal object picker dialog box and returns the user's selections. + +Args: + + hwnd(typing.Any): + +Returns: + + PyIDataObject + + """ + pass + + +class PyIEmptyVolumeCache(object): + """Used for cleaning up temporary file ("disk cleanup")""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIEmptyVolumeCache2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIEmptyVolumeCacheCallBack(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ScanProgress(self,dwlSpaceUsed:'typing.Any',dwFlags:'typing.Any',pcwszStatus:'typing.Any') -> 'None': + """ + Description of ScanProgress. + +Args: + + dwlSpaceUsed(typing.Any):Description for dwlSpaceUsed + dwFlags(typing.Any):Description for dwFlags + pcwszStatus(typing.Any):Description for pcwszStatus + +Returns: + + None + + """ + pass + + + def PurgeProgress(self,dwlSpaceFreed:'typing.Any',spaceFreed:'typing.Any',spaceToFree:'typing.Any',flags:'typing.Any',status:'typing.Any') -> 'None': + """ + Description of PurgeProgress. + +Args: + + dwlSpaceFreed(typing.Any):Description for dwlSpaceFreed + spaceFreed(typing.Any): + spaceToFree(typing.Any): + flags(typing.Any): + status(typing.Any): + +Returns: + + None + + """ + pass + + +class PyIEnumCATEGORYINFO(object): + """A Python interface to IEnumCATEGORYINFO""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[typing.Tuple[PyIID, typing.Any, str], ...]': + """ + Retrieves a specified number of items in the + +enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, one for each element returned. + +Returns: + + typing.Tuple[typing.Tuple[PyIID, typing.Any, str], ...]:Number of items to retrieve. +Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, + +one for each element returned. + + + """ + pass + + + def Skip(self,num:'typing.Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(typing.Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumCATEGORYINFO': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumCATEGORYINFO + + """ + pass + + +class PyIEnumConnectionPoints(object): + """A Python interface to IEnumConnectionPoints""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIConnectionPoint, ...]': + """ + Retrieves a specified number of items in the + +enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[PyIConnectionPoint, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumConnectionPoints': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumConnectionPoints + + """ + pass + + +class PyIEnumConnections(object): + """A Python interface to IEnumConnections""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumConnections': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumConnections + + """ + pass + + +class PyIEnumContextProps(object): + """A Python interface to IEnumContextProps""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[typing.Tuple[PyIID, typing.Any, PyIUnknown], ...]': + """ + Retrieves a specified number of items in + +the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve.Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the property value + +Returns: + + typing.Tuple[typing.Tuple[PyIID, typing.Any, PyIUnknown], ...]:Number of items to retrieve. +Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: + + First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the + +property value + + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumContextProps': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumContextProps + + """ + pass + + +class PyIEnumDebugApplicationNodes(object): + """A Python interface to IEnumDebugApplicationNodes""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugApplicationNodes': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugApplicationNodes + + """ + pass + + +class PyIEnumDebugCodeContexts(object): + """A Python interface to IEnumDebugCodeContexts""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugCodeContexts': + """ + Creates another enumerator that contains the + +same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugCodeContexts + + """ + pass + + +class PyIEnumDebugExpressionContexts(object): + """A Python interface to IEnumDebugExpressionContexts""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugExpressionContexts': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugExpressionContexts + + """ + pass + + +class PyIEnumDebugPropertyInfo(object): + """A Python interface to IEnumDebugPropertyInfo""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugPropertyInfo': + """ + Creates another enumerator that contains the + +same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugPropertyInfo + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Obtains the number of items + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIEnumDebugStackFrames(object): + """A Python interface to IEnumDebugStackFrames""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumDebugStackFrames': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumDebugStackFrames + + """ + pass + + +class PyIEnumExplorerCommand(object): + """A Python interface to IEnumExplorerCommand""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumExplorerCommand': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumExplorerCommand + + """ + pass + + +class PyIEnumFORMATETC(object): + """A Python interface to IEnumFORMATETC""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumFORMATETC': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + PyIEnumFORMATETC + + """ + pass + + +class PyIEnumGUID(object): + """A Python interface to IEnumGUID""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIID, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. + +Returns: + + typing.Tuple[PyIID, ...]:Number of items to retrieve. +Return ValueThe result is a tuple of PyIID objects, + +one for each element returned. Note that if zero elements are returned, it is not considered + +an error condition - an empty tuple is simply returned. + + + """ + pass + + + def Skip(self,num:'typing.Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(typing.Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumGUID': + """ + Creates another enumerator that contains the same enumeration state as + +the current one + +Args: + + + +Returns: + + PyIEnumGUID + + """ + pass + + +class PyIEnumIDList(object): + """A Python interface to IEnumIDList""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumIDList': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumIDList + + """ + pass + + +class PyIEnumMoniker(object): + """A Python interface to IEnumMoniker""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'PyIMoniker': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. + +Returns: + + PyIMoniker:Number of items to retrieve. +Return ValueThe result is a tuple of PyIID objects, + +one for each element returned. Note that if zero elements are returned, it is not considered + +an error condition - an empty tuple is simply returned. + + + """ + pass + + + def Skip(self,num:'typing.Any') -> 'None': + """ + Skips over the next specified elementes. + +Args: + + num(typing.Any):The number of elements being requested. + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumMoniker': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumMoniker + + """ + pass + + +class PyIEnumObjects(object): + """Iterates through a number of arbitrary interfaces""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,riid:'PyIID',num:'typing.Any'=1) -> 'typing.Tuple[PyIUnknown, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + riid(PyIID):The interfaces to return + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[PyIUnknown, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumObjects': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumObjects + + """ + pass + + +class PyIEnumRemoteDebugApplicationThreads(object): + """A Python interface to IEnumRemoteDebugApplicationThreads""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumRemoteDebugApplicationThreads': + """ + Creates another + +enumerator that contains the same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumRemoteDebugApplicationThreads + + """ + pass + + +class PyIEnumRemoteDebugApplications(object): + """A Python interface to IEnumRemoteDebugApplications""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumRemoteDebugApplications': + """ + Creates another enumerator that + +contains the same enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumRemoteDebugApplications + + """ + pass + + +class PyIEnumResources(object): + """A Python interface to IEnumResources""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumResources': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + PyIEnumResources + + """ + pass + + +class PyIEnumSTATPROPSETSTG(object): + """A Python interface to IEnumSTATPROPSETSTG""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumSTATPROPSETSTG': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumSTATPROPSETSTG + + """ + pass + + +class PyIEnumSTATPROPSTG(object): + """A Python interface to IEnumSTATPROPSTG""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Any': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumSTATPROPSTG': + """ + Creates another enumerator that contains the same + +enumeration state as the current one + +Args: + + + +Returns: + + PyIEnumSTATPROPSTG + + """ + pass + + +class PyIEnumSTATSTG(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[STATSTG, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[STATSTG, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumSTATSTG': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumSTATSTG + + """ + pass + + +class PyIEnumShellItems(object): + """A Python interface to IEnumShellItems""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIShellItem, ...]': + """ + Retrieves a specified number of items in the enumeration + +sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[PyIShellItem, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumShellItems': + """ + Creates another enumerator that contains the same enumeration + +state as the current one + +Args: + + + +Returns: + + PyIEnumShellItems + + """ + pass + + +class PyIEnumString(object): + """An enumerator interface to list strings""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[str, ...]': + """ + Retrieves a specified number of items in the enumeration sequence. + +Args: + + num(typing.Any):Number of items to retrieve. + +Returns: + + typing.Tuple[str, ...] + + """ + pass + + + def Skip(self,) -> 'None': + """ + Skips over the next specified elementes. + +Args: + + + +Returns: + + None + + """ + pass + + + def Reset(self,) -> 'None': + """ + Resets the enumeration sequence to the beginning. + +Args: + + + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIEnumString': + """ + Creates another enumerator that contains the same enumeration state + +as the current one + +Args: + + + +Returns: + + PyIEnumString + + """ + pass + + +class PyIErrorLog(object): + """A Python wrapper for a COM IErrorLog interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddError(self,propName:'str',excepInfo:'typing.Any'=None) -> 'None': + """ + Adds an error to the error log. + +Args: + + propName(str):The name of the error + excepInfo(typing.Any):A COM exception. Must be a complete COM exception (ie, pythoncom.com_error, or win32com.server.exceptions.COMException()) + +Returns: + + None + + """ + pass + + +class PyIExplorerBrowser(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,hwndParent:'typing.Any',prc:'PyRECT',pfs:'typing.Any') -> 'None': + """ + Description of Initialize. + +Args: + + hwndParent(typing.Any):Description for hwndParent + prc(PyRECT):Description for prc + pfs(typing.Any):Description for pfs + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Description of Destroy. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetRect(self,hdwp:'typing.Any',rcBrowser:'PyRECT') -> 'int': + """ + Description of SetRect. + +Args: + + hdwp(typing.Any):Description for phdwp + rcBrowser(PyRECT):Description for rcBrowser + +Returns: + + int + + """ + pass + + + def SetPropertyBag(self,PropertyBag:'typing.Any') -> 'None': + """ + Description of SetPropertyBag. + +Args: + + PropertyBag(typing.Any):Description for pszPropertyBag + +Returns: + + None + + """ + pass + + + def SetEmptyText(self,EmptyText:'typing.Any') -> 'None': + """ + Description of SetEmptyText. + +Args: + + EmptyText(typing.Any):Description for pszEmptyText + +Returns: + + None + + """ + pass + + + def SetFolderSettings(self,pfs:'typing.Any') -> 'None': + """ + Description of SetFolderSettings. + +Args: + + pfs(typing.Any):Description for pfs + +Returns: + + None + + """ + pass + + + def Advise(self,psbe:'PyIExplorerBrowserEvents') -> 'typing.Any': + """ + Description of Advise. + +Args: + + psbe(PyIExplorerBrowserEvents):Description for psbe + +Returns: + + typing.Any + + """ + pass + + + def Unadvise(self,dwCookie:'typing.Any') -> 'None': + """ + Description of Unadvise. + +Args: + + dwCookie(typing.Any):Description for dwCookie + +Returns: + + None + + """ + pass + + + def SetOptions(self,dwFlag:'typing.Any') -> 'None': + """ + Description of SetOptions. + +Args: + + dwFlag(typing.Any):Description for dwFlag + +Returns: + + None + + """ + pass + + + def GetOptions(self,) -> 'typing.Any': + """ + Description of GetOptions. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def BrowseToIDList(self,pidl:'typing.Any',uFlags:'typing.Any') -> 'None': + """ + Description of BrowseToIDList. + +Args: + + pidl(typing.Any):Description for pidl + uFlags(typing.Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def BrowseToObject(self,punk:'PyIUnknown',uFlags:'typing.Any') -> 'None': + """ + Description of BrowseToObject. + +Args: + + punk(PyIUnknown):Description for punk + uFlags(typing.Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def FillFromObject(self,punk:'PyIUnknown',dwFlags:'typing.Any') -> 'None': + """ + Description of FillFromObject. + +Args: + + punk(PyIUnknown):Description for punk + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def RemoveAll(self,) -> 'None': + """ + Description of RemoveAll. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentView(self,riid:'PyIID') -> 'PyIUnknown': + """ + Description of GetCurrentView. + +Args: + + riid(PyIID):Description for riid + +Returns: + + PyIUnknown + + """ + pass + + +class PyIExplorerBrowserEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnNavigationPending(self,pidlFolder:'typing.Any') -> 'None': + """ + Description of OnNavigationPending. + +Args: + + pidlFolder(typing.Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + + def OnViewCreated(self,psv:'PyIShellView') -> 'None': + """ + Description of OnViewCreated. + +Args: + + psv(PyIShellView):Description for psv + +Returns: + + None + + """ + pass + + + def OnNavigationComplete(self,pidlFolder:'typing.Any') -> 'None': + """ + Description of OnNavigationComplete. + +Args: + + pidlFolder(typing.Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + + def OnNavigationFailed(self,pidlFolder:'typing.Any') -> 'None': + """ + Description of OnNavigationFailed. + +Args: + + pidlFolder(typing.Any):Description for pidlFolder + +Returns: + + None + + """ + pass + + +class PyIExplorerCommand(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetTitle(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': + """ + Description of GetTitle. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + +Returns: + + typing.Any + + """ + pass + + + def GetIcon(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': + """ + Description of GetIcon. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + +Returns: + + typing.Any + + """ + pass + + + def GetToolTip(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': + """ + Description of GetToolTip. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + +Returns: + + typing.Any + + """ + pass + + + def GetCanonicalName(self,) -> 'PyIID': + """ + Description of GetCanonicalName. + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetState(self,psiItemArray:'PyIShellItemArray',fOkToBeSlow:'typing.Any') -> 'typing.Any': + """ + Description of GetState. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + fOkToBeSlow(typing.Any):Description for fOkToBeSlow + +Returns: + + typing.Any + + """ + pass + + + def Invoke(self,psiItemArray:'PyIShellItemArray',pbc:'PyIBindCtx') -> 'None': + """ + Description of Invoke. + +Args: + + psiItemArray(PyIShellItemArray):Description for psiItemArray + pbc(PyIBindCtx):Description for pbc + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'typing.Any': + """ + Description of GetFlags. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def EnumSubCommands(self,) -> 'PyIEnumExplorerCommand': + """ + Description of EnumSubCommands. + +Args: + + + +Returns: + + PyIEnumExplorerCommand + + """ + pass + + +class PyIExplorerCommandProvider(object): + """This is a gateway only interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIExplorerPaneVisibility(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIExternalConnection(object): + """A Python wrapper for a COM IExternalConnection interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddConnection(self,extconn:'typing.Any',reserved:'typing.Any'=0) -> 'typing.Any': + """ + Increments an object's count of its strong external connections + +(links). + +Args: + + extconn(typing.Any):Type of external connection to the object. The only type of external connection currently supported by this interface is strong, which means that the object must remain alive as long as this external connection exists. Strong external connections are represented by the value EXTCONN_STRONG = 0x0001, which is defined in the enumeration EXTCON + reserved(typing.Any):A reserved parameterReturn ValueThe result is the number of reference counts on the object; used for debugging purposes only. + +Returns: + + typing.Any:A reserved parameter +Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + + + """ + pass + + + def ReleaseConnection(self,extconn:'typing.Any',reserved:'typing.Any',fLastReleaseCloses:'typing.Any') -> 'typing.Any': + """ + Decrements an object's count of its strong external connections + +(references). + +Args: + + extconn(typing.Any):Type of external connection + reserved(typing.Any):A reserved parameter. + fLastReleaseCloses(typing.Any):TRUE specifies that if the connection being released is the last external lock on the object, the object should close. FALSE specifies that the object should remain open until closed by the user or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + +Returns: + + typing.Any:TRUE specifies that if the connection being released is the last external lock on + +the object, the object should close. FALSE specifies that the object should remain open until closed by the user + +or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. + + + """ + pass + + +class PyIExtractIcon(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Extract(self,pszFile:'typing.Any',nIconIndex:'typing.Any',nIconSize:'typing.Any') -> 'None': + """ + Description of Extract. + +Args: + + pszFile(typing.Any):Description for pszFile + nIconIndex(typing.Any):Description for nIconIndex + nIconSize(typing.Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. + +Returns: + + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + +(None,None) if the underlying function returns S_FALSE, indicating + +the calling application should extract it. + + + """ + pass + + + def GetIconLocation(self,uFlags:'typing.Any',cchMax:'typing.Any') -> 'None': + """ + Description of GetIconLocation. + +Args: + + uFlags(typing.Any):Description for uFlags + cchMax(typing.Any):Buffer size to allocate for file name + +Returns: + + None + + """ + pass + + +class PyIExtractIconW(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Extract(self,pszFile:'typing.Any',nIconIndex:'typing.Any',nIconSize:'typing.Any') -> 'None': + """ + Description of Extract. + +Args: + + pszFile(typing.Any):Description for pszFile + nIconIndex(typing.Any):Description for nIconIndex + nIconSize(typing.Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. + +Returns: + + None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or + +(None,None) if the underlying function returns S_FALSE, indicating + +the calling application should extract it. + + + """ + pass + + + def GetIconLocation(self,uFlags:'typing.Any',cchMax:'typing.Any') -> 'None': + """ + Description of GetIconLocation. + +Args: + + uFlags(typing.Any):Description for uFlags + cchMax(typing.Any):Buffer size to allocate for file name + +Returns: + + None + + """ + pass + + +class PyIExtractImage(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLocation(self,dwPriority:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]',dwRecClrDepth:'typing.Any',pdwFlags:'typing.Any') -> 'None': + """ + Description of GetLocation. + +Args: + + dwPriority(typing.Any):Description for dwPriority + size(typing.Tuple[typing.Any, typing.Any]):Description for prgSize + dwRecClrDepth(typing.Any):Description for dwRecClrDepth + pdwFlags(typing.Any):Description for pdwFlags + +Returns: + + None + + """ + pass + + + def Extract(self,) -> 'None': + """ + Description of Extract. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIFileOperation(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'PyGFileOperationProgressSink') -> 'typing.Any': + """ + Connects an event sink to receive updates + +Args: + + Sink(PyGFileOperationProgressSink):Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect + +Returns: + + typing.Any:Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect + + + """ + pass + + + def Unadvise(self,Cookie:'typing.Any') -> 'None': + """ + Disconnects a progress sink + +Args: + + Cookie(typing.Any):Identifies the sink to disconnect, as returned by PyIFileOperation::Advise + +Returns: + + None + + """ + pass + + + def SetOperationFlags(self,OperationFlags:'typing.Any') -> 'None': + """ + Sets option flags for the operation + +Args: + + OperationFlags(typing.Any):Combination of shellcon.FOF_* and FOFX_* flags + +Returns: + + None + + """ + pass + + + def SetProgressMessage(self,Message:'typing.Any') -> 'None': + """ + Not implemented. + +Args: + + Message(typing.Any):Description for Message + +Returns: + + None + + """ + pass + + + def SetProgressDialog(self,popd:'typing.Any') -> 'None': + """ + Provides an interface used to display a progress dialog + +Args: + + popd(typing.Any):Progress dialog interfaceCommentsIOperationsProgressDialog is not yet supported + +Returns: + + None + + """ + pass + + + def SetProperties(self,proparray:'PyIPropertyChangeArray') -> 'None': + """ + Specifies a set of properties to be changed. + +Args: + + proparray(PyIPropertyChangeArray):Sequence of property changes to be performed (see propsys::PSCreatePropertyChangeArray)CommentsNote that these properties will be set for *any* files created by the operation, not just items passed to ApplyPropertiesToItem(s). New items created as the result of a rename, copy, or move must have a property handler, or the operation fails with the vague com_error: (-2147467259, 'Unspecified error', None, None) (E_FAIL, or 0x80004005 in hex) even though the given file operation was actually performed. + +Returns: + + None + + """ + pass + + + def SetOwnerWindow(self,Owner:'int') -> 'None': + """ + Sets the parent window for any UI displayed. + +Args: + + Owner(int):Handle to parent window + +Returns: + + None + + """ + pass + + + def ApplyPropertiesToItem(self,Item:'PyIShellItem') -> 'None': + """ + Specifies the item that will receive property changes + +Args: + + Item(PyIShellItem):The item to which property changes will be applied + +Returns: + + None + + """ + pass + + + def ApplyPropertiesToItems(self,Items:'PyIUnknown') -> 'None': + """ + Specifies multiple items that will receive property changes + +Args: + + Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the target items + +Returns: + + None + + """ + pass + + + def RenameItem(self,Item:'PyIShellItem',NewName:'typing.Any',Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Adds a rename to the operation sequence + +Args: + + Item(PyIShellItem):The item to be renamed + NewName(typing.Any):The new name + Sink(PyGFileOperationProgressSink):Progress sink for this operation only. + +Returns: + + None + + """ + pass + + + def RenameItems(self,pUnkItems:'PyIUnknown',NewName:'typing.Any') -> 'None': + """ + Adds multiple renames to the operation sequence + +Args: + + pUnkItems(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be renamed + NewName(typing.Any):New name for all items. Collisions handled automatically. + +Returns: + + None + + """ + pass + + + def MoveItem(self,Item:'PyIShellItem',DestinationFolder:'PyIShellItem',pszNewName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Adds a move operation to the configuration + +Args: + + Item(PyIShellItem):The item to be moved + DestinationFolder(PyIShellItem):The folder into which it will be moved + pszNewName(typing.Any):Name to be given to moved item, use None to keep original name + Sink(PyGFileOperationProgressSink):Progress sink to receive notification for just this operation + +Returns: + + None + + """ + pass + + + def MoveItems(self,Items:'PyIUnknown',DestinationFolder:'PyIShellItem') -> 'None': + """ + Adds multiple move operations to the configuration + +Args: + + Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be moved + DestinationFolder(PyIShellItem):Folder into which all items will be moved + +Returns: + + None + + """ + pass + + + def CopyItem(self,Item:'PyIShellItem',DestinationFolder:'PyIShellItem',CopyName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Adds a copy operation to the configuration + +Args: + + Item(PyIShellItem):Item to be copied + DestinationFolder(PyIShellItem):Folder into which it will be copied + CopyName(typing.Any):New name for the copied file, use None to keep original name + Sink(PyGFileOperationProgressSink):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def CopyItems(self,Items:'PyIUnknown',DestinationFolder:'PyIShellItem') -> 'None': + """ + Adds multiple copy operations to the configuration + +Args: + + Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be copied + DestinationFolder(PyIShellItem):Folder into which they will be copied + +Returns: + + None + + """ + pass + + + def DeleteItem(self,Item:'PyIShellItem',Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Adds a delete operation to the configuration + +Args: + + Item(PyIShellItem):Description for psiItem + Sink(PyGFileOperationProgressSink):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def DeleteItems(self,Items:'PyIUnknown') -> 'None': + """ + Adds multiple delete operations to the configuration + +Args: + + Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be deleted + +Returns: + + None + + """ + pass + + + def NewItem(self,DestinationFolder:'PyIShellItem',FileAttributes:'typing.Any',Name:'typing.Any',TemplateName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': + """ + Creates a new file as part of the operation + +Args: + + DestinationFolder(PyIShellItem):Folder in which to create the file + FileAttributes(typing.Any):Combination of win32con.FILE_ATTRIBUTE_* flags + Name(typing.Any):Name of the new file + TemplateName(typing.Any):Template file used to initialize the new file + Sink(PyGFileOperationProgressSink):Progress sink for just this operation + +Returns: + + None + + """ + pass + + + def PerformOperations(self,) -> 'None': + """ + Effects all configured file system modifications + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAnyOperationsAborted(self,) -> 'typing.Any': + """ + Determines if any operations were terminated + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIIdentityName(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyIInitializeWithFile(object): + """Initializes a property handler that requires a file path instead of a stream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,FilePath:'typing.Any',Mode:'typing.Any') -> 'None': + """ + Passes a file path to a property handler on startup + +Args: + + FilePath(typing.Any):Full path to the file whose properties are to be accessed + Mode(typing.Any):Indicates if properties can be written, STGM_READ or STGM_READWRITE + +Returns: + + None + + """ + pass + + +class PyIInitializeWithStream(object): + """Interface that initializes a handler capable of reading properties from a stream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,Stream:'PyIStream',Mode:'typing.Any') -> 'None': + """ + Initializes a property handler with a stream + +Args: + + Stream(PyIStream):Stream containing the contents from which to extract properties + Mode(typing.Any):Indicates if stream is writable, STGM_READ or STGM_READWRITE + +Returns: + + None + + """ + pass + + +class PyIInputObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,pmsg:'typing.Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + pmsg(typing.Any):Description for pmsg + +Returns: + + None + + """ + pass + + + def UIActivate(self,uState:'typing.Any') -> 'None': + """ + Description of UIActivate. + +Args: + + uState(typing.Any):Description for uState + +Returns: + + None + + """ + pass + + + def HasFocusIO(self,) -> 'None': + """ + Description of Refresh. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetBindInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetBindInfo(self,) -> 'None': + """ + Description of GetBindInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBindString(self,) -> 'None': + """ + Description of GetBindString. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetPriority(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetPriority(self,nPriority:'typing.Any') -> 'None': + """ + Description of SetPriority. + +Args: + + nPriority(typing.Any):Description for nPriority + +Returns: + + None + + """ + pass + + + def GetPriority(self,) -> 'None': + """ + Description of GetPriority. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocol(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,cb:'typing.Any') -> 'None': + """ + Description of Read. + +Args: + + cb(typing.Any):Description for cb + +Returns: + + None + + """ + pass + + + def Seek(self,dlibMove:'LARGE_INTEGER',dwOrigin:'typing.Any') -> 'None': + """ + Description of Seek. + +Args: + + dlibMove(LARGE_INTEGER):Description for dlibMove + dwOrigin(typing.Any):Description for dwOrigin + +Returns: + + None + + """ + pass + + + def LockRequest(self,dwOptions:'typing.Any') -> 'None': + """ + Description of LockRequest. + +Args: + + dwOptions(typing.Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def UnlockRequest(self,) -> 'None': + """ + Description of UnlockRequest. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocolInfo(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseUrl(self,pwzUrl:'typing.Any',ParseAction:'typing.Any',dwParseFlags:'typing.Any',cchResult:'typing.Any',dwReserved:'typing.Any') -> 'None': + """ + Description of ParseUrl. + +Args: + + pwzUrl(typing.Any):Description for pwzUrl + ParseAction(typing.Any):Description for ParseAction + dwParseFlags(typing.Any):Description for dwParseFlags + cchResult(typing.Any):Description for cchResult + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def CombineUrl(self,pwzBaseUrl:'typing.Any',pwzRelativeUrl:'typing.Any',dwCombineFlags:'typing.Any',cchResult:'typing.Any',dwReserved:'typing.Any') -> 'None': + """ + Description of CombineUrl. + +Args: + + pwzBaseUrl(typing.Any):Description for pwzBaseUrl + pwzRelativeUrl(typing.Any):Description for pwzRelativeUrl + dwCombineFlags(typing.Any):Description for dwCombineFlags + cchResult(typing.Any):Description for cchResult + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def CompareUrl(self,pwzUrl1:'typing.Any',pwzUrl2:'typing.Any',dwCompareFlags:'typing.Any') -> 'None': + """ + Description of CompareUrl. + +Args: + + pwzUrl1(typing.Any):Description for pwzUrl1 + pwzUrl2(typing.Any):Description for pwzUrl2 + dwCompareFlags(typing.Any):Description for dwCompareFlags + +Returns: + + None + + """ + pass + + + def QueryInfo(self,pwzUrl:'typing.Any',OueryOption:'typing.Any',dwQueryFlags:'typing.Any',cbBuffer:'typing.Any',dwReserved:'typing.Any') -> 'typing.Any': + """ + Description of QueryInfo. + +Args: + + pwzUrl(typing.Any):Description for pwzUrl + OueryOption(typing.Any):Description for OueryOption + dwQueryFlags(typing.Any):Description for dwQueryFlags + cbBuffer(typing.Any):Description for cbBuffer + dwReserved(typing.Any):Description for dwReservedCommentsIf the buffer size is the size of an integer, an integer will be returned, otherwise a string. + +Returns: + + typing.Any + + """ + pass + + +class PyIInternetProtocolRoot(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Start(self,szUrl:'typing.Any',pOIProtSink:'PyIInternetProtocolSink',pOIBindInfo:'PyIInternetBindInfo',grfPI:'typing.Any',dwReserved:'typing.Any') -> 'None': + """ + Description of Start. + +Args: + + szUrl(typing.Any):Description for szUrl + pOIProtSink(PyIInternetProtocolSink):Description for pOIProtSink + pOIBindInfo(PyIInternetBindInfo):Description for pOIBindInfo + grfPI(typing.Any):Description for grfPI + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def Continue(self,) -> 'None': + """ + Description of Continue. + +Args: + + + +Returns: + + None + + """ + pass + + + def Abort(self,hrReason:'typing.Any',dwOptions:'typing.Any') -> 'None': + """ + Description of Abort. + +Args: + + hrReason(typing.Any):Description for hrReason + dwOptions(typing.Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def Terminate(self,dwOptions:'typing.Any') -> 'None': + """ + Description of Terminate. + +Args: + + dwOptions(typing.Any):Description for dwOptions + +Returns: + + None + + """ + pass + + + def Suspend(self,) -> 'None': + """ + Description of Suspend. + +Args: + + + +Returns: + + None + + """ + pass + + + def Resume(self,) -> 'None': + """ + Description of Resume. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIInternetProtocolSink(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Switch(self,) -> 'None': + """ + Description of Switch. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReportProgress(self,ulStatusCode:'typing.Any',szStatusText:'typing.Any') -> 'None': + """ + Description of ReportProgress. + +Args: + + ulStatusCode(typing.Any):Description for ulStatusCode + szStatusText(typing.Any):Description for szStatusText + +Returns: + + None + + """ + pass + + + def ReportData(self,grfBSCF:'typing.Any',ulProgress:'typing.Any',ulProgressMax:'typing.Any') -> 'None': + """ + Description of ReportData. + +Args: + + grfBSCF(typing.Any):Description for grfBSCF + ulProgress(typing.Any):Description for ulProgress + ulProgressMax(typing.Any):Description for ulProgressMax + +Returns: + + None + + """ + pass + + + def ReportResult(self,hrResult:'typing.Any',dwError:'typing.Any',szResult:'typing.Any') -> 'None': + """ + Description of ReportResult. + +Args: + + hrResult(typing.Any):Description for hrResult + dwError(typing.Any):Description for dwError + szResult(typing.Any):Description for szResult + +Returns: + + None + + """ + pass + + +class PyIInternetSecurityManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSecuritySite(self,pSite:'typing.Any') -> 'None': + """ + Description of SetSecuritySite. + +Args: + + pSite(typing.Any):Description for pSite + +Returns: + + None + + """ + pass + + + def GetSecuritySite(self,) -> 'None': + """ + Description of GetSecuritySite. + +Args: + + + +Returns: + + None + + """ + pass + + + def MapUrlToZone(self,pwszUrl:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of MapUrlToZone. + +Args: + + pwszUrl(typing.Any):Description for pwszUrl + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetSecurityId(self,pwszUrl:'typing.Any',pcbSecurityId:'typing.Any') -> 'None': + """ + Description of GetSecurityId. + +Args: + + pwszUrl(typing.Any):Description for pwszUrl + pcbSecurityId(typing.Any):Description for pcbSecurityId + +Returns: + + None + + """ + pass + + + def ProcessUrlAction(self,pwszUrl:'typing.Any',dwAction:'typing.Any',context:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of ProcessUrlAction. + +Args: + + pwszUrl(typing.Any):Description for pwszUrl + dwAction(typing.Any):Description for dwAction + context(typing.Any): + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def SetZoneMapping(self,dwZone:'typing.Any',lpszPattern:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of SetZoneMapping. + +Args: + + dwZone(typing.Any):Description for dwZone + lpszPattern(typing.Any):Description for lpszPattern + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def GetZoneMappings(self,dwZone:'typing.Any',dwFlags:'typing.Any') -> 'None': + """ + Description of GetZoneMappings. + +Args: + + dwZone(typing.Any):Description for dwZone + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + +class PyIKnownFolder(object): + """Interface representing a known folder that serves + +as a replacement for the numeric CSIDL definitions and API functions. + +Requires Vista or later.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetId(self,) -> 'PyIID': + """ + Returns the id of the folder + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def GetCategory(self,) -> 'typing.Any': + """ + Returns the category for a folder (shellcon.KF_CATEGORY_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetShellItem(self,riid:'PyIID',Flags:'typing.Any'=0) -> 'PyIShellItem': + """ + Returns a shell interface for the folder + +Args: + + riid(PyIID):The interface to return (IShellItem or IShellItem2) + Flags(typing.Any):Combination of shellcon.KF_FLAG_* values + +Returns: + + PyIShellItem + + """ + pass + + + def GetPath(self,Flags:'typing.Any'=0) -> 'typing.Any': + """ + Returns the path to the folder + +Args: + + Flags(typing.Any):Combination of shellcon.KF_FLAG_* flags controlling how the path is returned + +Returns: + + typing.Any + + """ + pass + + + def SetPath(self,Flags:'typing.Any',Path:'typing.Any') -> 'None': + """ + Changes the location of the folder + +Args: + + Flags(typing.Any):KF_FLAG_DONT_UNEXPAND, or 0 + Path(typing.Any):New path for known folder + +Returns: + + None + + """ + pass + + + def GetIDList(self,Flags:'typing.Any') -> 'PyIDL': + """ + Returns the folder's location as an item id list. + +Args: + + Flags(typing.Any):Combination of shellcon.KF_FLAG_* values that affect how the operation is performed + +Returns: + + PyIDL + + """ + pass + + + def GetFolderType(self,) -> 'PyIID': + """ + Returns the type of the folder + +Args: + + + +Returns: + + PyIID:PyIKnownFolder.GetFolderType +PyIID = GetFolderType()Returns the type of the folder +Return ValueReturns a folder type guid (shell.FOLDERTYPEID_*) + + + """ + pass + + + def GetRedirectionCapabilities(self,) -> 'typing.Any': + """ + Returns flags indicating how the folder can be redirected + +Args: + + + +Returns: + + typing.Any:PyIKnownFolder.GetRedirectionCapabilities + +int = GetRedirectionCapabilities()Returns flags indicating how the folder can be redirected +Return ValueCombination of shellcon.KF_REDIRECTION_CAPABILITIES_* flags + + + """ + pass + + + def GetFolderDefinition(self,) -> 'typing.Any': + """ + Retrieves detailed information about a known folder + +Args: + + + +Returns: + + typing.Any:PyIKnownFolder.GetFolderDefinition + +dict = GetFolderDefinition()Retrieves detailed information about a known folder +Return ValueReturns a dict containing info from a KNOWNFOLDER_DEFINITION struct + + + """ + pass + + +class PyIKnownFolderManager(object): + """Interface used to manage known folder definitions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def FolderIdFromCsidl(self,Csidl:'typing.Any') -> 'PyIID': + """ + Returns the folder id that corresponds to a CSIDL + +Args: + + Csidl(typing.Any):The legacy CSIDL identifying a folder + +Returns: + + PyIID + + """ + pass + + + def FolderIdToCsidl(self,_id:'PyIID') -> 'typing.Any': + """ + Returns the CSIDL equivalent of a known folder + +Args: + + _id(PyIID):A known folder id (shell.FOLDERID_*) + +Returns: + + typing.Any + + """ + pass + + + def GetFolderIds(self,) -> 'typing.Tuple[PyIID, ...]': + """ + Retrieves all known folder ids. + +Args: + + + +Returns: + + typing.Tuple[PyIID, ...] + + """ + pass + + + def GetFolder(self,_id:'PyIID') -> 'PyIKnownFolder': + """ + Returns a folder by its id. + +Args: + + _id(PyIID):A known folder id (shell.FOLDERID_*) + +Returns: + + PyIKnownFolder + + """ + pass + + + def GetFolderByName(self,Name:'typing.Any') -> 'PyIKnownFolder': + """ + Returns a folder by canonical name + +Args: + + Name(typing.Any):The nonlocalized name of a known folder + +Returns: + + PyIKnownFolder + + """ + pass + + + def RegisterFolder(self,_id:'PyIID',Definition:'typing.Any') -> 'None': + """ + Defines a new known folder + +Args: + + _id(PyIID):GUID used to identify the new known folder + Definition(typing.Any):Dictionary containing info to be placed in a KNOWNFOLDER_DEFINITION structCommentsPyIKnownFolder::GetFolderDefinition can be used to get a template dictionary + +Returns: + + None + + """ + pass + + + def UnregisterFolder(self,_id:'PyIID') -> 'None': + """ + Removes the definition of a known folder + +Args: + + _id(PyIID):GUID of a known folder to be unregistered + +Returns: + + None + + """ + pass + + + def FindFolderFromPath(self,Path:'typing.Any',Mode:'typing.Any') -> 'PyIKnownFolder': + """ + Retrieves a known folder by path + +Args: + + Path(typing.Any):Path of a folder + Mode(typing.Any):FFFP_EXACTMATCH or FFFP_NEARESTPARENTMATCH + +Returns: + + PyIKnownFolder + + """ + pass + + + def FindFolderFromIDList(self,pidl:'PyIDL') -> 'PyIKnownFolder': + """ + Retrieves a known folder using its item id + +list. + +Args: + + pidl(PyIDL):Item id list of the folder + +Returns: + + PyIKnownFolder + + """ + pass + + + def Redirect(self,_id:'PyIID',hwnd:'int',flags:'typing.Any',TargetPath:'typing.Any',Exclusion:'typing.Tuple[PyIID, ...]') -> 'None': + """ + Redirects a known folder to an alternate location + +Args: + + _id(PyIID):Id of the known folder to be redirected + hwnd(int):Handle of window to be used for user interaction + flags(typing.Any):Combination of KF_REDIRECT_* flags + TargetPath(typing.Any):Path to which the known folder will be redirected + Exclusion(typing.Tuple[PyIID, ...]):Sequence of known folder ids of subfolders to be excluded from redirection + +Returns: + + None + + """ + pass + + +class PyILockBytes(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ReadAt(self,ulOffset:'ULARGE_INTEGER',cb:'typing.Any') -> 'str': + """ + Reads a specified number of bytes starting at a specified offset from the + +beginning of the byte array object. + +Args: + + ulOffset(ULARGE_INTEGER):Offset to start reading + cb(typing.Any):Number of bytes to readCommentsThe result is a binary buffer returned in a string. + +Returns: + + str + + """ + pass + + + def WriteAt(self,ulOffset:'ULARGE_INTEGER',data:'str') -> 'typing.Any': + """ + Writes the specified number of bytes starting at a specified offset from the + +beginning of the byte array. + +Args: + + ulOffset(ULARGE_INTEGER):Offset to write at. + data(str):Data to writeReturn ValueThe result is the number of bytes actually written. + +Returns: + + typing.Any:Data to writeReturn ValueThe result is the number of bytes actually written. + + + """ + pass + + + def Flush(self,) -> 'None': + """ + Ensures that any internal buffers maintained by the byte array object are written out + +to the backing storage. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetSize(self,cb:'ULARGE_INTEGER') -> 'None': + """ + Changes the size of the byte array. + +Args: + + cb(ULARGE_INTEGER):The new size. + +Returns: + + None + + """ + pass + + + def LockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'typing.Any') -> 'None': + """ + Restricts access to a specified range of bytes in the byte array. + +Args: + + libOffset(ULARGE_INTEGER):The beginning of the region to lock. + cb(ULARGE_INTEGER):The number of bytes to lock. + dwLockType(typing.Any):Specifies the restrictions being requested on accessing the range. + +Returns: + + None + + """ + pass + + + def UnlockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'typing.Any') -> 'None': + """ + None + +Args: + + libOffset(ULARGE_INTEGER):The beginning of the region to unlock. + cb(ULARGE_INTEGER):The number of bytes to lock. + dwLockType(typing.Any):Specifies the restrictions being requested on accessing the range. + +Returns: + + None + + """ + pass + + + def Stat(self,grfStatFlag:'typing.Any') -> 'STATSTG': + """ + None + +Args: + + grfStatFlag(typing.Any):Specifies that this method does not return some of the fields in the STATSTG structure, thus saving a memory allocation operation. Values are taken from the STATFLAG enumerationg + +Returns: + + STATSTG + + """ + pass + + +class PyIMAPIContainer(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens an object and returns an interface object for further access. + +Args: + + entryId(str):The EntryID to open. + iid(PyIID):The IID of the returned interface, or None for the default interface. + flags(typing.Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) + +Returns: + + typing.Any + + """ + pass + + + def GetContentsTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Returns an object representing the container's contents table. + +Args: + + flags(typing.Any):The flags to use. + +Returns: + + PyIMAPITable + + """ + pass + + + def GetHierarchyTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Returns an object representing the container's hierarchy table. + +Args: + + flags(typing.Any):The flags to use. + +Returns: + + PyIMAPITable + + """ + pass + + +class PyIMAPIFolder(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def CreateFolder(self,folderType:'typing.Any',folderName:'str',folderComment:'str'=None,iid:'PyIID'=None,flags:'typing.Any'=0) -> 'PyIMAPIFolder': + """ + Creates a folder object. + +Args: + + folderType(typing.Any):The type of folder to create + folderName(str):The name of the folder. + folderComment(str):A comment for the folder or None + iid(PyIID):The IID of the object to return. Should usually be None. + flags(typing.Any): + +Returns: + + PyIMAPIFolder + + """ + pass + + + def CreateMessage(self,iid:'PyIID',flags:'typing.Any') -> 'PyIMessage': + """ + Creates a message in a folder + +Args: + + iid(PyIID):The IID of the object to return. Should usually be None. + flags(typing.Any): + +Returns: + + PyIMessage + + """ + pass + + + def CopyMessages(self,msgs:'PySBinaryArray',iid:'PyIID',folder:'PyIMAPIFolder',ulUIParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Copies the specified messages + +Args: + + msgs(PySBinaryArray): + iid(PyIID):IID representing the interface to be used to access the destination folder. Should usually be None. + folder(PyIMAPIFolder):The destination folder + ulUIParam(typing.Any):Handle of the parent window for any dialog boxes or windows this method displays. + progress(typing.Any):A progress object, or None + flags(typing.Any):A bitmask ofMaskDescriptionMAPI_DECLINE_OKInforms the message store provider to immediately return MAPI_E_DECLINE_COPY if it implements CopyMessage by calling the support object's IMAPISupport::DoCopyTo or IMAPISupport::DoCopyProps method.MESSAGE_DIALOGDisplays a progress indicator as the operation proceeds.MESSAGE_MOVEThe message or messages are to be moved rather than copied. If MESSAGE_MOVE is not set, the messages are copied. + +Returns: + + typing.Any + + """ + pass + + + def DeleteFolder(self,entryId:'str',uiParam:'typing.Any',progress:'typing.Any') -> 'None': + """ + Deletes a subfolder. + +Args: + + entryId(str):The EntryID of the subfolder to delete. + uiParam(typing.Any):Handle of the parent window of the progress indicator. + progress(typing.Any):A progress object, or None + +Returns: + + None + + """ + pass + + + def DeleteMessages(self,msgs:'PySBinaryArray',uiParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Deletes the specified messages. + +Args: + + msgs(PySBinaryArray): + uiParam(typing.Any):A HWND for the progress + progress(typing.Any):A progress object, or None + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def EmptyFolder(self,uiParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + deletes all messages and subfolders from a folder without deleting the folder itself. + +Args: + + uiParam(typing.Any):A HWND for the progress + progress(typing.Any):A progress object, or None + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def SetReadFlags(self,msgs:'PySBinaryArray',uiParam:'typing.Any',progress:'typing.Any',flag:'typing.Any') -> 'None': + """ + Sets or clears the MSGFLAG_READ flag in the PR_MESSAGE_FLAGS (PidTagMessageFlags) property of one or more of the folder's messages, and manages the sending of read reports. + +Args: + + msgs(PySBinaryArray): + uiParam(typing.Any):A HWND for the progress + progress(typing.Any):A progress object, or None + flag(typing.Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. + +Returns: + + None + + """ + pass + + +class PyIMAPIProp(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetProps(self,propList:'PySPropTagArray',flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Returns a list of property values. + +Args: + + propList(PySPropTagArray):The list of properties + flags(typing.Any): + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def DeleteProps(self,propList:'PySPropTagArray',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Deletes a set of properties. + +Args: + + propList(PySPropTagArray):The list of properties + wantProblems(typing.Any):Return detailed error information + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def SetProps(self,propList:'typing.Tuple[typing.Any, typing.Any]',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Sets a set of properties. + +Args: + + propList(typing.Tuple[typing.Any, typing.Any]):The list of properties + wantProblems(typing.Any):Return detailed error information + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def CopyTo(self,IIDExcludeList:'typing.Tuple[typing.Any, typing.Any]',propTags:'PySPropTagArray',uiParam:'typing.Any',progress:'typing.Any',resultIID:'PyIID',dest:'PyIMAPIProp',flags:'typing.Any',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Copies an object to another + +Args: + + IIDExcludeList(typing.Tuple[typing.Any, typing.Any]):A sequence of IIDs to exclude. + propTags(PySPropTagArray):The property tags to exclude. + uiParam(typing.Any):Handle to the parent window of the progress object + progress(typing.Any):Reserved - must pass None + resultIID(PyIID):IID of the destination object + dest(PyIMAPIProp):The destination object + flags(typing.Any):flags + wantProblems(typing.Any):Return detailed error information + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def CopyProps(self,propTags:'PySPropTagArray',uiParam:'typing.Any',progress:'typing.Any',resultIID:'PyIID',dest:'PyIMAPIProp',flags:'typing.Any',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Copies a set of properties to another object + +Args: + + propTags(PySPropTagArray):The property tags to copy + uiParam(typing.Any):Handle to the parent window of the progress object + progress(typing.Any):Reserved - must pass None + resultIID(PyIID):IID of the destination object + dest(PyIMAPIProp):The destination object + flags(typing.Any):flags + wantProblems(typing.Any):Return detailed error information + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def OpenProperty(self,propTag:'typing.Any',iid:'PyIID',interfaceOptions:'typing.Any',flags:'typing.Any') -> 'PyIUnknown': + """ + Returns an interface object to be used to access a property. + +Args: + + propTag(typing.Any):The property tag to open + iid(PyIID):The IID of the resulting interface. + interfaceOptions(typing.Any):Data that relates to the interface identified by the lpiid parameter. + flags(typing.Any):flags + +Returns: + + PyIUnknown + + """ + pass + + + def GetIDsFromNames(self,nameIds:'PyMAPINAMEIDArray',flags:'typing.Any'=0) -> 'PySPropTagArray': + """ + Determines property IDs + +Args: + + nameIds(PyMAPINAMEIDArray):Sequence of name ids + flags(typing.Any): + +Returns: + + PySPropTagArray + + """ + pass + + + def GetNamesFromIDs(self,propTags:'PySPropTagArray',propSetGuid:'PyIID'=None,flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PySPropTagArray, PyMAPINAMEIDArray]': + """ + Determines property names + +Args: + + propTags(PySPropTagArray):Sequence of property tags, or None + propSetGuid(PyIID):a globally unique identifier, identifying a property set, or None + flags(typing.Any): + +Returns: + + typing.Tuple[typing.Any, PySPropTagArray, PyMAPINAMEIDArray] + + """ + pass + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def SaveChanges(self,flags:'typing.Any') -> 'None': + """ + Saves pending changes to the object + +Args: + + flags(typing.Any):flags + +Returns: + + None + + """ + pass + + + def GetPropList(self,flags:'typing.Any') -> 'PySPropTagArray': + """ + Gets a list of properties + +Args: + + flags(typing.Any):flags + +Returns: + + PySPropTagArray + + """ + pass + + +class PyIMAPISession(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens an object and returns an interface object for further access. + +Args: + + entryId(str):The EntryID to open. + iid(PyIID):The IID of the returned interface, or None for the default interface. + flags(typing.Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) + +Returns: + + typing.Any + + """ + pass + + + def OpenMsgStore(self,uiParam:'typing.Any',entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'PyIUnknown': + """ + Opens a message store. + +Args: + + uiParam(typing.Any):Handle to the parent window for dialogs. + entryId(str):The entry ID of the message store to open. + iid(PyIID):The IID of the interface returned, or None + flags(typing.Any):Options for the call.CommentsThe result is the interface specified by the IID, or IID_IMsgStore if None is used. + +Returns: + + PyIUnknown + + """ + pass + + + def QueryIdentity(self,) -> 'str': + """ + Returns the entry identifier of the object that provides the primary identity for the session. + +Args: + + + +Returns: + + str + + """ + pass + + + def Advise(self,entryId:'str',mask:'typing.Any',sink:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + entryId(str):The entryID of the object + mask(typing.Any): + sink(typing.Any):Return ValueThe result is an integer which should be passed to PyIMAPISession::Unadvise + +Returns: + + typing.Any:Return ValueThe result is an integer which should be passed to + +PyIMAPISession::Unadvise + + + """ + pass + + + def Unadvise(self,connection:'typing.Any') -> 'None': + """ + None + +Args: + + connection(typing.Any):Value returned from PyIMAPISession::Advise + +Returns: + + None + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + typing.Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def GetMsgStoresTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Provides access to the message store table - a table with information about all of the message stores in the session profile. + +Args: + + flags(typing.Any):Flags that control the opening. + +Returns: + + PyIMAPITable + + """ + pass + + + def GetStatusTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Provides access to the status table - a table with information about all of the MAPI resources in the session. + +Args: + + flags(typing.Any):Flags that control the opening. + +Returns: + + PyIMAPITable + + """ + pass + + + def Logoff(self,uiParm:'typing.Any',flags:'typing.Any',reserved:'typing.Any') -> 'None': + """ + Ends a MAPI session. + +Args: + + uiParm(typing.Any):hwnd of a dialog is to be displayed. + flags(typing.Any):Bitmask of flags that control the logoff operation. + reserved(typing.Any):Reserved; must be zero. + +Returns: + + None + + """ + pass + + + def OpenAddressBook(self,uiParm:'typing.Any',iid:'PyIID',flags:'typing.Any') -> 'PyIAddrBook': + """ + Opens the integrated address book. + +Args: + + uiParm(typing.Any):hwnd of a dialog is to be displayed. + iid(PyIID):The IID of the interface, or None. + flags(typing.Any):Flags that control the opening - AB_NO_DIALOG. + +Returns: + + PyIAddrBook + + """ + pass + + + def OpenProfileSection(self,iidSection:'PyIID',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens a section of the current profile and returns an object for futher access + +Args: + + iidSection(PyIID):The MAPIIID of the profile section + iid(PyIID):The IID of the interface, or None. + flags(typing.Any):Flags that control the opening. + +Returns: + + typing.Any + + """ + pass + + + def AdminServices(self,flags:'typing.Any'=0) -> 'PyIMsgServiceAdmin': + """ + Provides access to a message service administration object for making changes to the message services. + +Args: + + flags(typing.Any):reserved; must be zero. + +Returns: + + PyIMsgServiceAdmin + + """ + pass + + +class PyIMAPIStatus(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ChangePassword(self,oldPassword:'typing.Any',newPassword:'typing.Any',ulFlags:'typing.Any') -> 'None': + """ + None + +Args: + + oldPassword(typing.Any): + newPassword(typing.Any): + ulFlags(typing.Any): + +Returns: + + None + + """ + pass + + + def SettingsDialog(self,ulUIParam:'typing.Any',ulFlags:'typing.Any') -> 'None': + """ + None + +Args: + + ulUIParam(typing.Any): + ulFlags(typing.Any): + +Returns: + + None + + """ + pass + + + def ValidateState(self,ulUIParam:'typing.Any',ulFlags:'typing.Any') -> 'None': + """ + None + +Args: + + ulUIParam(typing.Any): + ulFlags(typing.Any): + +Returns: + + None + + """ + pass + + + def FlushQueues(self,ulUIParam:'typing.Any',transport:'str',ulFlags:'typing.Any') -> 'None': + """ + None + +Args: + + ulUIParam(typing.Any): + transport(str):Blob of data + ulFlags(typing.Any): + +Returns: + + None + + """ + pass + + +class PyIMAPITable(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def Advise(self,eventMask:'typing.Any',adviseSink:'typing.Any') -> 'typing.Any': + """ + Registers to receive notification of specified events affecting the table. + +Args: + + eventMask(typing.Any): + adviseSink(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def SeekRow(self,bookmark:'typing.Any',rowCount:'typing.Any') -> 'typing.Any': + """ + Moves the cursor to a specific position in the table. + +Args: + + bookmark(typing.Any):The bookmark. + rowCount(typing.Any):Return ValueThe result is the number of rows processed. + +Returns: + + typing.Any:Return ValueThe result is the number of rows processed. + + + """ + pass + + + def SeekRowApprox(self,numerator:'typing.Any',denominator:'typing.Any') -> 'None': + """ + Moves the cursor to an approximate fractional position in the table. + +Args: + + numerator(typing.Any):The numerator of the fraction representing the table position + denominator(typing.Any):The denominator of the fraction representing the table position. This must not be zero. + +Returns: + + None + + """ + pass + + + def GetRowCount(self,flags:'typing.Any') -> 'typing.Any': + """ + Returns the total number of rows in the table. + +Args: + + flags(typing.Any):Reserved - must be zero + +Returns: + + typing.Any + + """ + pass + + + def QueryRows(self,rowCount:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns one or more rows from a table, beginning at the current cursor position. + +Args: + + rowCount(typing.Any):Number of rows to retrieve + flags(typing.Any):Flags. + +Returns: + + typing.Any + + """ + pass + + + def SetColumns(self,propTags:'typing.Any',flags:'typing.Any') -> 'None': + """ + Defines the particular properties and order of properties to appear as columns in the table. + +Args: + + propTags(typing.Any):Sequence of property tags identifying properties to be included as columns in the table. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def GetStatus(self,) -> 'None': + """ + Returns the table's status and type. + +Args: + + + +Returns: + + None:PyIMAPITable.GetStatus +GetStatus()Returns the table's status and type. +Return ValueResult is a tuple of (tableStatus, tableType) + + + """ + pass + + + def QueryPosition(self,) -> 'None': + """ + Retrieves the current table row position of the cursor, based on a fractional value. + +Args: + + + +Returns: + + None:PyIMAPITable.QueryPosition +QueryPosition()Retrieves the current table row position of the cursor, based on a fractional value. +Return ValueResult is a tuple of (row, numerator, denominator) + + + """ + pass + + + def QueryColumns(self,flags:'typing.Any') -> 'typing.Any': + """ + Returns a list of columns for the table. + +Args: + + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def Abort(self,) -> 'None': + """ + Stops any asynchronous operations currently in progress for the table. + +Args: + + + +Returns: + + None + + """ + pass + + + def FreeBookmark(self,bookmark:'typing.Any') -> 'None': + """ + Releases the memory associated with a bookmark. + +Args: + + bookmark(typing.Any): + +Returns: + + None + + """ + pass + + + def CreateBookmark(self,) -> 'typing.Any': + """ + Marks the table's current position. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Restrict(self,restriction:'PySRestriction',flags:'typing.Any') -> 'None': + """ + Applies a filter to a table, reducing the row set to only those rows matching the specified criteria. + +Args: + + restriction(PySRestriction): + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def FindRow(self,restriction:'PySRestriction',bookmarkOrigin:'typing.Any',flags:'typing.Any') -> 'None': + """ + Finds the next row in a table that matches specific search criteria. + +Args: + + restriction(PySRestriction): + bookmarkOrigin(typing.Any): + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def SortTable(self,sortOrderSet:'PySSortOrderSet',flags:'typing.Any') -> 'None': + """ + Orders the rows of the table based on sort criteria. + +Args: + + sortOrderSet(PySSortOrderSet): + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def Unadvise(self,handle:'typing.Any') -> 'None': + """ + Cancels the sending of notifications previously set up with a call to the IMAPITable::Advise method. + +Args: + + handle(typing.Any):Handle returned from PyIMAPITable::Advise + +Returns: + + None + + """ + pass + + +class PyIMachineDebugManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddApplication(self,pda:'PyIRemoteDebugApplication') -> 'None': + """ + Description of AddApplication. + +Args: + + pda(PyIRemoteDebugApplication):Description for pda + +Returns: + + None + + """ + pass + + + def RemoveApplication(self,dwAppCookie:'typing.Any') -> 'None': + """ + Description of RemoveApplication. + +Args: + + dwAppCookie(typing.Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def EnumApplications(self,) -> 'None': + """ + Description of EnumApplications. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIMachineDebugManagerEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def onAddApplication(self,pda:'PyIRemoteDebugApplication',dwAppCookie:'typing.Any') -> 'None': + """ + Description of onAddApplication. + +Args: + + pda(PyIRemoteDebugApplication):Description for pda + dwAppCookie(typing.Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def onRemoveApplication(self,pda:'PyIRemoteDebugApplication',dwAppCookie:'typing.Any') -> 'None': + """ + Description of onRemoveApplication. + +Args: + + pda(PyIRemoteDebugApplication):Description for pda + dwAppCookie(typing.Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + +class PyIMessage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetReadFlag(self,flag:'typing.Any') -> 'None': + """ + Sets the read flags for a message + +Args: + + flag(typing.Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. + +Returns: + + None + + """ + pass + + + def GetAttachmentTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Returns the message's attachment table. + +Args: + + flags(typing.Any):Bitmask of flags that relate to the creation of the table. + +Returns: + + PyIMAPITable + + """ + pass + + + def OpenAttach(self,attachmentNum:'typing.Any',interface:'PyIID',flags:'typing.Any') -> 'PyIAttach': + """ + Opens an attachment + +Args: + + attachmentNum(typing.Any): + interface(PyIID):The interface to use, or None + flags(typing.Any):Bitmask of flags that controls how the attachment is opened. + +Returns: + + PyIAttach + + """ + pass + + + def CreateAttach(self,interface:'PyIID',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIAttach]': + """ + Creates an attachment + +Args: + + interface(PyIID):The interface to use, or None + flags(typing.Any):Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) + +Returns: + + typing.Tuple[typing.Any, PyIAttach]:Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) + + + """ + pass + + + def DeleteAttach(self,attachmentNum:'typing.Any',ulUIParam:'typing.Any',interface:'typing.Any',flags:'typing.Any') -> 'None': + """ + Deletes an attachment + +Args: + + attachmentNum(typing.Any): + ulUIParam(typing.Any): + interface(typing.Any):The interface to use, or None + flags(typing.Any):Bitmask of flags that controls the display of a user interface. + +Returns: + + None + + """ + pass + + + def ModifyRecipients(self,flags:'typing.Any',mods:'typing.Any') -> 'None': + """ + adds, deletes, or modifies message recipients. + +Args: + + flags(typing.Any):Bitmask of flags that controls the recipient changes. If zero is passed for the ulFlags parameter, ModifyRecipients replaces all existing recipients with the recipient list in the mods parameter. + mods(typing.Any):The list of recipients. + +Returns: + + None + + """ + pass + + + def GetRecipientTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Returns the message's recipient table. + +Args: + + flags(typing.Any):Bitmask of flags that relate to the creation of the table. + +Returns: + + PyIMAPITable + + """ + pass + + + def SubmitMessage(self,flags:'typing.Any') -> 'None': + """ + Saves all of the message's properties and marks the message as ready to be sent. + +Args: + + flags(typing.Any):Flags which specify how the message is submitted. + +Returns: + + None + + """ + pass + + +class PyIMoniker(object): + """A Python interface to IMoniker""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToObject(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker',iidResult:'typing.Any') -> 'PyIUnknown': + """ + Uses the moniker to bind to the object it identifies. + +Args: + + bindCtx(PyIBindCtx):bind context object to be used. + moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None + iidResult(typing.Any):IID of the result object. + +Returns: + + PyIUnknown + + """ + pass + + + def BindToStorage(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker',iidResult:'typing.Any') -> 'PyIUnknown': + """ + Retrieves an interface object to the storage that contains the + +object identified by the moniker. + +Args: + + bindCtx(PyIBindCtx):bind context object to be used. + moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None + iidResult(typing.Any):IID of the result object. + +Returns: + + PyIUnknown + + """ + pass + + + def GetDisplayName(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker') -> 'str': + """ + Gets the display name , which is a user-readable representation of this + +moniker. + +Args: + + bindCtx(PyIBindCtx):bind context object to be used. + moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None + +Returns: + + str + + """ + pass + + + def ComposeWith(self,mkRight:'PyIMoniker',fOnlyIfNotGeneric:'typing.Any') -> 'PyIMoniker': + """ + Combines the current moniker with another moniker, creating a new + +composite moniker. + +Args: + + mkRight(PyIMoniker):The IMoniker interface on the moniker to compose onto the end of this moniker. + fOnlyIfNotGeneric(typing.Any):If TRUE, the caller requires a non-generic composition, so the operation should proceed only if pmkRight is a moniker class that this moniker can compose with in some way other than forming a generic composite. If FALSE, the method can create a generic composite if necessary. + +Returns: + + PyIMoniker + + """ + pass + + + def Enum(self,fForward:'typing.Any'=True) -> 'PyIEnumMoniker': + """ + Supplies an enumerator that can enumerate the components of a composite + +moniker. + +Args: + + fForward(typing.Any):If TRUE, enumerates the monikers from left to right. If FALSE, enumerates from right to left. + +Returns: + + PyIEnumMoniker + + """ + pass + + + def IsEqual(self,other:'PyIMoniker') -> 'typing.Any': + """ + Compares this moniker with a specified moniker and indicates whether they are + +identical. + +Args: + + other(PyIMoniker):The moniker to compare + +Returns: + + typing.Any + + """ + pass + + + def IsSystemMoniker(self,) -> 'typing.Any': + """ + Indicates whether this moniker is of one of the system-supplied moniker + +classes. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Hash(self,) -> 'typing.Any': + """ + Calculates a 32-bit integer using the internal state of the moniker. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIMsgServiceAdmin(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def CreateMsgService(self,serviceName:'str',displayName:'str',flags:'typing.Any',uiParam:'typing.Any'=0) -> 'None': + """ + Creates a message service. + +Args: + + serviceName(str):The name of the service. + displayName(str):Display name of the service, or None + flags(typing.Any):A bitmask of flags that controls how the message service is installed. + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + +Returns: + + None + + """ + pass + + + def ConfigureMsgService(self,iid:'PyIID',ulUIParam:'typing.Any',ulFlags:'typing.Any',arg:'typing.List[typing.Any]') -> 'None': + """ + Reconfigures a message service. + +Args: + + iid(PyIID):The unique identifier for the message service to configure. + ulUIParam(typing.Any):Handle of the parent window for the configuration property sheet. + ulFlags(typing.Any):Bitmask of flags that controls the display of the property sheet. + arg(typing.List[typing.Any]):Property values describing the properties to display in the property sheet. Should not be None if the service is to be configured without a message service. + +Returns: + + None + + """ + pass + + + def GetMsgServiceTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Retrieves a table of services. + +Args: + + flags(typing.Any): + +Returns: + + PyIMAPITable + + """ + pass + + + def GetProviderTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + Retrieves a table of service providers. + +Args: + + flags(typing.Any): + +Returns: + + PyIMAPITable + + """ + pass + + + def DeleteMsgService(self,uuid:'PyIID') -> 'None': + """ + Deletes the specified service + +Args: + + uuid(PyIID):The ID of the service + +Returns: + + None + + """ + pass + + + def RenameMsgService(self,uuid:'PyIID',flags:'typing.Any',newName:'str') -> 'None': + """ + Renames the specified service + +Args: + + uuid(PyIID):The ID of the service + flags(typing.Any): + newName(str):The new name for the service.CommentsThis is deprecated, and there is no replacement referenced to use instead. + +Returns: + + None + + """ + pass + + + def OpenProfileSection(self,uuid:'PyIID',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens a profile section + +Args: + + uuid(PyIID):The ID of the service + iid(PyIID):The IID of the resulting object, or None for the default + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def AdminProviders(self,uuid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Returns an object providing access + +to a provider administration object. + +Args: + + uuid(PyIID):The ID of the service + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +class PyIMsgStore(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': + """ + Opens a folder or message and returns an interface object for further access. + +Args: + + entryId(str):The entryID of the object + iid(PyIID):The IID of the object to return, or None for the default IID + flags(typing.Any):Bitmask of flags that controls how the object is opened. + +Returns: + + typing.Any + + """ + pass + + + def GetReceiveFolder(self,messageClass:'str'=None,flags:'typing.Any'=0) -> 'typing.Tuple[PyIID, str]': + """ + Obtains the folder that was established as the destination for incoming messages of a specified message class or the default receive folder for the message store. + +Args: + + messageClass(str):Message class that is associated with a receive folder. If this parameter is set to None or an empty string, GetReceiveFolder returns the default receive folder for the message store. + flags(typing.Any): + +Returns: + + typing.Tuple[PyIID, str] + + """ + pass + + + def GetReceiveFolderTable(self,flags:'typing.Any') -> 'PyIMAPITable': + """ + provides access to the receive folder table, a table that includes information about all of the receive folders for the message store. + +Args: + + flags(typing.Any):Bitmask of flags that controls table access + +Returns: + + PyIMAPITable + + """ + pass + + + def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': + """ + Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object + +Args: + + entryId(str):The first entry ID to be compared + entryId1(str):The second entry ID to be compared + flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + +Returns: + + typing.Any:Reserved - must be zero. +Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. + + + """ + pass + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def AbortSubmit(self,entryId:'str',flags:'typing.Any'=0) -> 'typing.Any': + """ + Attempts to remove a message from the outgoing queue. + +Args: + + entryId(str):The entry ID of the item to be aborted. + flags(typing.Any):Reserved - must be zero. + +Returns: + + typing.Any + + """ + pass + + + def Advise(self,entryId:'str',eventMask:'typing.Any',adviseSink:'typing.Any') -> 'None': + """ + Registers to receive notification of specified events that affect the message store. + +Args: + + entryId(str):entry identifier of the folder or message about which notifications should be generated, or None + eventMask(typing.Any):A mask of values that indicate the types of notification events. + adviseSink(typing.Any):An advise sink. + +Returns: + + None + + """ + pass + + + def Unadvise(self,connection:'typing.Any') -> 'None': + """ + Cancels the sending of notifications previously set up with a call to the IMsgStore::Advise method. + +Args: + + connection(typing.Any):Connection number returned from PyIMsgStore::Advise + +Returns: + + None + + """ + pass + + +class PyINameSpaceTreeControl(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,hwndParent:'typing.Union[typing.Any]',prc:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',nsctsFlags:'typing.Any') -> 'None': + """ + Description of Initialize. + +Args: + + hwndParent(typing.Union[typing.Any]):Description for hwndParent + prc(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prc + nsctsFlags(typing.Any):Description for nsctsFlags + +Returns: + + None + + """ + pass + + + def TreeAdvise(self,punk:'PyIUnknown') -> 'None': + """ + Description of TreeAdvise. + +Args: + + punk(PyIUnknown):Description for punk + +Returns: + + None + + """ + pass + + + def TreeUnadvise(self,dwCookie:'typing.Any') -> 'None': + """ + Description of TreeUnadvise. + +Args: + + dwCookie(typing.Any):Description for dwCookie + +Returns: + + None + + """ + pass + + + def AppendRoot(self,psiRoot:'PyIShellItem',grfEnumFlags:'typing.Any',grfRootStyle:'typing.Any',pif:'typing.Any') -> 'None': + """ + Description of AppendRoot. + +Args: + + psiRoot(PyIShellItem):Description for psiRoot + grfEnumFlags(typing.Any):Description for grfEnumFlags + grfRootStyle(typing.Any):Description for grfRootStyle + pif(typing.Any):Description for pif + +Returns: + + None + + """ + pass + + + def InsertRoot(self,iIndex:'typing.Any',psiRoot:'PyIShellItem',grfEnumFlags:'typing.Any',grfRootStyle:'typing.Any',pif:'typing.Any') -> 'None': + """ + Description of InsertRoot. + +Args: + + iIndex(typing.Any):Description for iIndex + psiRoot(PyIShellItem):Description for psiRoot + grfEnumFlags(typing.Any):Description for grfEnumFlags + grfRootStyle(typing.Any):Description for grfRootStyle + pif(typing.Any):Description for pif + +Returns: + + None + + """ + pass + + + def RemoveRoot(self,psiRoot:'PyIShellItem') -> 'None': + """ + Description of RemoveRoot. + +Args: + + psiRoot(PyIShellItem):Description for psiRoot + +Returns: + + None + + """ + pass + + + def RemoveAllRoots(self,) -> 'None': + """ + Description of RemoveAllRoots. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootItems(self,) -> 'None': + """ + Description of GetRootItems. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetItemState(self,psi:'PyIShellItem',nstcisMask:'typing.Any',nstcisFlags:'typing.Any') -> 'None': + """ + Description of SetItemState. + +Args: + + psi(PyIShellItem):Description for psi + nstcisMask(typing.Any):Description for nstcisMask + nstcisFlags(typing.Any):Description for nstcisFlags + +Returns: + + None + + """ + pass + + + def GetItemState(self,psi:'PyIShellItem',nstcisMask:'typing.Any') -> 'None': + """ + Description of GetItemState. + +Args: + + psi(PyIShellItem):Description for psi + nstcisMask(typing.Any):Description for nstcisMask + +Returns: + + None + + """ + pass + + + def GetSelectedItems(self,) -> 'None': + """ + Description of GetSelectedItems. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetItemCustomState(self,psi:'PyIShellItem') -> 'None': + """ + Description of GetItemCustomState. + +Args: + + psi(PyIShellItem):Description for psi + +Returns: + + None + + """ + pass + + + def SetItemCustomState(self,psi:'PyIShellItem',iStateNumber:'typing.Any') -> 'None': + """ + Description of SetItemCustomState. + +Args: + + psi(PyIShellItem):Description for psi + iStateNumber(typing.Any):Description for iStateNumber + +Returns: + + None + + """ + pass + + + def EnsureItemVisible(self,psi:'PyIShellItem') -> 'None': + """ + Description of EnsureItemVisible. + +Args: + + psi(PyIShellItem):Description for psi + +Returns: + + None + + """ + pass + + + def SetTheme(self,pszTheme:'typing.Any') -> 'None': + """ + Description of SetTheme. + +Args: + + pszTheme(typing.Any):Description for pszTheme + +Returns: + + None + + """ + pass + + + def GetNextItem(self,psi:'PyIShellItem',nstcgi:'typing.Any') -> 'None': + """ + Description of GetNextItem. + +Args: + + psi(PyIShellItem):Description for psi + nstcgi(typing.Any):Description for nstcgi + +Returns: + + None + + """ + pass + + + def HitTest(self,pt:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Description of HitTest. + +Args: + + pt(typing.Tuple[typing.Any, typing.Any]):Description for ppt + +Returns: + + None + + """ + pass + + + def GetItemRect(self,) -> 'None': + """ + Description of GetItemRect. + +Args: + + + +Returns: + + None + + """ + pass + + + def CollapseAll(self,) -> 'None': + """ + Description of CollapseAll. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyINamedPropertyStore(object): + """Contains a collection of properties indentified by name""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetNamedValue(self,Name:'typing.Any') -> 'PyPROPVARIANT': + """ + Retrieves a property value by name + +Args: + + Name(typing.Any):Name of the property + +Returns: + + PyPROPVARIANT + + """ + pass + + + def SetNamedValue(self,propvar:'typing.Any') -> 'None': + """ + Sets the value of a property + +Args: + + propvar(typing.Any):Description for propvar + +Returns: + + None + + """ + pass + + + def GetNameCount(self,) -> 'typing.Any': + """ + Retrieves the number of named properties in the store + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNameAt(self,Index:'typing.Any') -> 'typing.Any': + """ + Retrieves a property name by zero-based index + +Args: + + Index(typing.Any):Index of the property name + +Returns: + + typing.Any + + """ + pass + + +class PyIObjectArray(object): + """Holds a collection of interface objects""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Returns number of objects in collection + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,Index:'typing.Any',riid:'PyIID') -> 'PyIUnknown': + """ + Retrieves an item by zero-based index + +Args: + + Index(typing.Any):Index of item to retrieve + riid(PyIID):The interface to return + +Returns: + + PyIUnknown + + """ + pass + + +class PyIObjectCollection(object): + """Modifiable container for a number of IUnknown objects""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddObject(self,punk:'PyIUnknown') -> 'None': + """ + Adds a single object to the collection + +Args: + + punk(PyIUnknown):Object to be added + +Returns: + + None + + """ + pass + + + def AddFromArray(self,Source:'PyIObjectArray') -> 'None': + """ + None + +Args: + + Source(PyIObjectArray):Objects to be added to the collection + +Returns: + + None + + """ + pass + + + def RemoveObjectAt(self,Index:'typing.Any') -> 'None': + """ + Removes a single object from the collection + +Args: + + Index(typing.Any):Zero-based index of item to remove + +Returns: + + None + + """ + pass + + + def Clear(self,) -> 'None': + """ + Empties the container. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIObjectWithPropertyKey(object): + """Interface implemented by objects that have an associated property id""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetPropertyKey(self,key:'PyPROPERTYKEY') -> 'None': + """ + Sets the property id + +Args: + + key(PyPROPERTYKEY):The identifier of the property + +Returns: + + None + + """ + pass + + + def GetPropertyKey(self,) -> 'PyPROPERTYKEY': + """ + Returns the property id + +Args: + + + +Returns: + + PyPROPERTYKEY + + """ + pass + + +class PyIObjectWithSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetSite(self,pUnkSite:'typing.Any') -> 'None': + """ + Description of SetSite. + +Args: + + pUnkSite(typing.Any):Description for pUnkSite + +Returns: + + None + + """ + pass + + + def GetSite(self,riid:'PyIID') -> 'None': + """ + Description of GetSite. + +Args: + + riid(PyIID):Description for riid + +Returns: + + None + + """ + pass + + +class PyIOleClientSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SaveObject(self,) -> 'None': + """ + Description of SaveObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMoniker(self,dwAssign:'typing.Any',dwWhichMoniker:'typing.Any') -> 'None': + """ + Description of GetMoniker. + +Args: + + dwAssign(typing.Any):Description for dwAssign + dwWhichMoniker(typing.Any):Description for dwWhichMoniker + +Returns: + + None + + """ + pass + + + def GetContainer(self,) -> 'None': + """ + Description of GetContainer. + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowObject(self,) -> 'None': + """ + Description of ShowObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnShowWindow(self,fShow:'typing.Any') -> 'None': + """ + Description of OnShowWindow. + +Args: + + fShow(typing.Any):Description for fShow + +Returns: + + None + + """ + pass + + + def RequestNewObjectLayout(self,) -> 'None': + """ + Description of RequestNewObjectLayout. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleCommandTarget(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryStatus(self,) -> 'None': + """ + Description of QueryStatus. + +Args: + + + +Returns: + + None + + """ + pass + + + def Exec(self,) -> 'None': + """ + Description of Exec. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleControl(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetControlInfo(self,) -> 'None': + """ + Description of GetControlInfo. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnMnemonic(self,msg:'typing.Any') -> 'None': + """ + Description of OnMnemonic. + +Args: + + msg(typing.Any):A tuple representing a MSG structure. + +Returns: + + None + + """ + pass + + + def OnAmbientPropertyChange(self,dispID:'typing.Any') -> 'None': + """ + Description of OnAmbientPropertyChange. + +Args: + + dispID(typing.Any):Description for dispID + +Returns: + + None + + """ + pass + + + def FreezeEvents(self,bFreeze:'typing.Any') -> 'None': + """ + Description of FreezeEvents. + +Args: + + bFreeze(typing.Any):Description for bFreeze + +Returns: + + None + + """ + pass + + +class PyIOleControlSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnControlInfoChanged(self,) -> 'None': + """ + Description of OnControlInfoChanged. + +Args: + + + +Returns: + + None + + """ + pass + + + def LockInPlaceActive(self,fLock:'typing.Any') -> 'None': + """ + Description of LockInPlaceActive. + +Args: + + fLock(typing.Any):Description for fLock + +Returns: + + None + + """ + pass + + + def GetExtendedControl(self,) -> 'None': + """ + Description of GetExtendedControl. + +Args: + + + +Returns: + + None + + """ + pass + + + def TransformCoords(self,PtlHimetric:'typing.Tuple[typing.Any, typing.Any]',pPtfContainer:'typing.Tuple[float, float]',dwFlags:'typing.Any') -> 'None': + """ + Description of TransformCoords. + +Args: + + PtlHimetric(typing.Tuple[typing.Any, typing.Any]):Description for pPtlHimetric + pPtfContainer(typing.Tuple[float, float]):Description for pPtfContainer + dwFlags(typing.Any):Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, a tuple of ((int, int), (float, float)) + +Returns: + + None:Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, + +a tuple of ((int, int), (float, float)) + + + """ + pass + + + def TranslateAccelerator(self,pMsg:'PyMSG',grfModifiers:'typing.Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + pMsg(PyMSG):Description for pMsg + grfModifiers(typing.Any):Description for grfModifiers + +Returns: + + None + + """ + pass + + + def OnFocus(self,fGotFocus:'typing.Any') -> 'None': + """ + Description of OnFocus. + +Args: + + fGotFocus(typing.Any):Description for fGotFocus + +Returns: + + None + + """ + pass + + + def ShowPropertyFrame(self,) -> 'None': + """ + Description of ShowPropertyFrame. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceActiveObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,lpmsg:'PyMSG') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpmsg(PyMSG):Description for lpmsg + +Returns: + + None + + """ + pass + + + def OnFrameWindowActivate(self,fActivate:'typing.Any') -> 'None': + """ + Description of OnFrameWindowActivate. + +Args: + + fActivate(typing.Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def OnDocWindowActivate(self,fActivate:'typing.Any') -> 'None': + """ + Description of OnDocWindowActivate. + +Args: + + fActivate(typing.Any):Description for fActivate + +Returns: + + None + + """ + pass + + + def ResizeBorder(self,rcBorder:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pUIWindow:'PyIOleInPlaceUIWindow',fFrameWindow:'typing.Any') -> 'None': + """ + Description of ResizeBorder. + +Args: + + rcBorder(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcBorder + pUIWindow(PyIOleInPlaceUIWindow):Description for pUIWindow + fFrameWindow(typing.Any):Description for fFrameWindow + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'typing.Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(typing.Any):Description for fEnable + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceFrame(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertMenus(self,hmenuShared:'typing.Union[typing.Any]',menuWidths:'PyOLEMENUGROUPWIDTHS') -> 'None': + """ + Description of InsertMenus. + +Args: + + hmenuShared(typing.Union[typing.Any]):Description for hmenuShared + menuWidths(PyOLEMENUGROUPWIDTHS): + +Returns: + + None + + """ + pass + + + def SetMenu(self,hmenuShared:'typing.Union[typing.Any]',holemenu:'typing.Union[typing.Any]',hwndActiveObject:'typing.Union[typing.Any]') -> 'None': + """ + Description of SetMenu. + +Args: + + hmenuShared(typing.Union[typing.Any]):Description for hmenuShared + holemenu(typing.Union[typing.Any]):Description for holemenu + hwndActiveObject(typing.Union[typing.Any]):Description for hwndActiveObject + +Returns: + + None + + """ + pass + + + def RemoveMenus(self,hmenuShared:'typing.Union[typing.Any]') -> 'None': + """ + Description of RemoveMenus. + +Args: + + hmenuShared(typing.Union[typing.Any]):Description for hmenuShared + +Returns: + + None + + """ + pass + + + def SetStatusText(self,pszStatusText:'typing.Any') -> 'None': + """ + Description of SetStatusText. + +Args: + + pszStatusText(typing.Any):Description for pszStatusText + +Returns: + + None + + """ + pass + + + def EnableModeless(self,fEnable:'typing.Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(typing.Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def TranslateAccelerator(self,lpmsg:'PyMSG',wID:'typing.Any') -> 'None': + """ + Description of TranslateAccelerator. + +Args: + + lpmsg(PyMSG):Description for lpmsg + wID(typing.Any):Description for wID + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InPlaceDeactivate(self,) -> 'None': + """ + Description of InPlaceDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def UIDeactivate(self,) -> 'None': + """ + Description of UIDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetObjectRects(self,) -> 'None': + """ + Description of SetObjectRects. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReactivateAndUndo(self,) -> 'None': + """ + Description of ReactivateAndUndo. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSite(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanInPlaceActivate(self,) -> 'None': + """ + Description of CanInPlaceActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnInPlaceActivate(self,) -> 'None': + """ + Description of OnInPlaceActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnUIActivate(self,) -> 'None': + """ + Description of OnUIActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetWindowContext(self,) -> 'None': + """ + Description of GetWindowContext. + +Args: + + + +Returns: + + None + + """ + pass + + + def Scroll(self,) -> 'None': + """ + Description of Scroll. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnUIDeactivate(self,fUndoable:'typing.Any') -> 'None': + """ + Description of OnUIDeactivate. + +Args: + + fUndoable(typing.Any):Description for fUndoable + +Returns: + + None + + """ + pass + + + def OnInPlaceDeactivate(self,) -> 'None': + """ + Description of OnInPlaceDeactivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def DiscardUndoState(self,) -> 'None': + """ + Description of DiscardUndoState. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeactivateAndUndo(self,) -> 'None': + """ + Description of DeactivateAndUndo. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnPosRectChange(self,) -> 'None': + """ + Description of OnPosRectChange. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSiteEx(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnInPlaceActivateEx(self,dwFlags:'typing.Any') -> 'None': + """ + Description of OnInPlaceActivateEx. + +Args: + + dwFlags(typing.Any):Description for dwFlags + +Returns: + + None + + """ + pass + + + def OnInPlaceDeactivateEx(self,fNoRedraw:'typing.Any') -> 'None': + """ + Description of OnInPlaceDeactivateEx. + +Args: + + fNoRedraw(typing.Any):Description for fNoRedraw + +Returns: + + None + + """ + pass + + + def RequestUIActivate(self,) -> 'None': + """ + Description of RequestUIActivate. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceSiteWindowless(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CanWindowlessActivate(self,) -> 'None': + """ + Description of CanWindowlessActivate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCapture(self,) -> 'None': + """ + Description of GetCapture. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCapture(self,fCapture:'typing.Any') -> 'None': + """ + Description of SetCapture. + +Args: + + fCapture(typing.Any):Description for fCapture + +Returns: + + None + + """ + pass + + + def GetFocus(self,) -> 'None': + """ + Description of GetFocus. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFocus(self,fFocus:'typing.Any') -> 'None': + """ + Description of SetFocus. + +Args: + + fFocus(typing.Any):Description for fFocus + +Returns: + + None + + """ + pass + + + def GetDC(self,grfFlags:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Description of GetDC. + +Args: + + grfFlags(typing.Any):Description for grfFlags + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): + +Returns: + + None + + """ + pass + + + def ReleaseDC(self,hDC:'typing.Any') -> 'None': + """ + Description of ReleaseDC. + +Args: + + hDC(typing.Any):Description for hDC + +Returns: + + None + + """ + pass + + + def InvalidateRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',fErase:'typing.Any') -> 'None': + """ + Description of InvalidateRect. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): + fErase(typing.Any):Description for fErase + +Returns: + + None + + """ + pass + + + def InvalidateRgn(self,hRgn:'typing.Any',fErase:'typing.Any') -> 'None': + """ + Description of InvalidateRgn. + +Args: + + hRgn(typing.Any):Handle to a region + fErase(typing.Any):Description for fErase + +Returns: + + None + + """ + pass + + + def ScrollRect(self,dx:'typing.Any',dy:'typing.Any') -> 'None': + """ + Description of ScrollRect. + +Args: + + dx(typing.Any):Description for dx + dy(typing.Any):Description for dy + +Returns: + + None + + """ + pass + + + def AdjustRect(self,) -> 'None': + """ + Description of AdjustRect. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnDefWindowMessage(self,msg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'None': + """ + Description of OnDefWindowMessage. + +Args: + + msg(typing.Any):Description for msg + wParam(typing.Any):Description for wParam + lParam(typing.Any):Description for lParam + +Returns: + + None + + """ + pass + + +class PyIOleInPlaceUIWindow(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetBorder(self,) -> 'None': + """ + Description of GetBorder. + +Args: + + + +Returns: + + None + + """ + pass + + + def RequestBorderSpace(self,borderwidths:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Description of RequestBorderSpace. + +Args: + + borderwidths(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for pborderwidths + +Returns: + + None + + """ + pass + + + def SetBorderSpace(self,borderwidths:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Description of SetBorderSpace. + +Args: + + borderwidths(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for pborderwidths + +Returns: + + None + + """ + pass + + + def SetActiveObject(self,pActiveObject:'PyIOleInPlaceActiveObject',pszObjName:'typing.Any') -> 'None': + """ + Description of SetActiveObject. + +Args: + + pActiveObject(PyIOleInPlaceActiveObject):Description for pActiveObject + pszObjName(typing.Any):Description for pszObjName + +Returns: + + None + + """ + pass + + +class PyIOleObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetClientSite(self,pClientSite:'PyIOleClientSite') -> 'None': + """ + Description of SetClientSite. + +Args: + + pClientSite(PyIOleClientSite):Description for pClientSite + +Returns: + + None + + """ + pass + + + def GetClientSite(self,) -> 'None': + """ + Description of GetClientSite. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetHostNames(self,szContainerApp:'typing.Any',szContainerObj:'typing.Any') -> 'None': + """ + Description of SetHostNames. + +Args: + + szContainerApp(typing.Any):Description for szContainerApp + szContainerObj(typing.Any):Description for szContainerObj + +Returns: + + None + + """ + pass + + + def Close(self,dwSaveOption:'typing.Any') -> 'None': + """ + Description of Close. + +Args: + + dwSaveOption(typing.Any):Description for dwSaveOption + +Returns: + + None + + """ + pass + + + def SetMoniker(self,dwWhichMoniker:'typing.Any',pmk:'PyIMoniker') -> 'None': + """ + Description of SetMoniker. + +Args: + + dwWhichMoniker(typing.Any):Description for dwWhichMoniker + pmk(PyIMoniker):Description for pmk + +Returns: + + None + + """ + pass + + + def GetMoniker(self,dwAssign:'typing.Any',dwWhichMoniker:'typing.Any') -> 'None': + """ + Description of GetMoniker. + +Args: + + dwAssign(typing.Any):Description for dwAssign + dwWhichMoniker(typing.Any):Description for dwWhichMoniker + +Returns: + + None + + """ + pass + + + def InitFromData(self,pDataObject:'PyIDataObject',fCreation:'typing.Any',dwReserved:'typing.Any') -> 'None': + """ + Description of InitFromData. + +Args: + + pDataObject(PyIDataObject):Description for pDataObject + fCreation(typing.Any):Description for fCreation + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def GetClipboardData(self,dwReserved:'typing.Any') -> 'None': + """ + Description of GetClipboardData. + +Args: + + dwReserved(typing.Any):Description for dwReserved + +Returns: + + None + + """ + pass + + + def DoVerb(self,iVerb:'typing.Any',msg:'PyMSG',pActiveSite:'PyIOleClientSite',lindex:'typing.Any',hwndParent:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Description of DoVerb. + +Args: + + iVerb(typing.Any):Description for iVerb + msg(PyMSG):MSG tuple, a-la win32gui etc. + pActiveSite(PyIOleClientSite):Description for pActiveSite + lindex(typing.Any):Description for lindex + hwndParent(typing.Any):Description for hwndParent + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): + +Returns: + + None + + """ + pass + + + def EnumVerbs(self,) -> 'None': + """ + Description of EnumVerbs. + +Args: + + + +Returns: + + None + + """ + pass + + + def Update(self,) -> 'None': + """ + Description of Update. + +Args: + + + +Returns: + + None + + """ + pass + + + def IsUpToDate(self,) -> 'None': + """ + Description of IsUpToDate. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserClassID(self,) -> 'None': + """ + Description of GetUserClassID. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserType(self,dwFormOfType:'typing.Any') -> 'None': + """ + Description of GetUserType. + +Args: + + dwFormOfType(typing.Any):Description for dwFormOfType + +Returns: + + None + + """ + pass + + + def SetExtent(self,dwDrawAspect:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Description of SetExtent. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + size(typing.Tuple[typing.Any, typing.Any]):Size limit for the object. + +Returns: + + None + + """ + pass + + + def GetExtent(self,dwDrawAspect:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Description of GetExtent. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + size(typing.Tuple[typing.Any, typing.Any]):Size limit for the object. + +Returns: + + None + + """ + pass + + + def Advise(self,pAdvSink:'typing.Any') -> 'None': + """ + Description of Advise. + +Args: + + pAdvSink(typing.Any):Description for pAdvSink + +Returns: + + None + + """ + pass + + + def Unadvise(self,dwConnection:'typing.Any') -> 'None': + """ + Description of Unadvise. + +Args: + + dwConnection(typing.Any):Description for dwConnection + +Returns: + + None + + """ + pass + + + def EnumAdvise(self,) -> 'None': + """ + Description of EnumAdvise. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMiscStatus(self,dwAspect:'typing.Any') -> 'None': + """ + Description of GetMiscStatus. + +Args: + + dwAspect(typing.Any):Description for dwAspect + +Returns: + + None + + """ + pass + + + def SetColorScheme(self,) -> 'None': + """ + Description of SetColorScheme. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIOleWindow(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetWindow(self,) -> 'None': + """ + Description of GetWindow. + +Args: + + + +Returns: + + None + + """ + pass + + + def ContextSensitiveHelp(self,fEnterMode:'typing.Any') -> 'None': + """ + Description of ContextSensitiveHelp. + +Args: + + fEnterMode(typing.Any):Description for fEnterMode + +Returns: + + None + + """ + pass + + +class PyIPersist(object): + """A Python interface to IPersist""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassID(self,) -> 'PyIID': + """ + Returns the class identifier (CLSID) for the component object. + +Args: + + + +Returns: + + PyIID + + """ + pass + + +class PyIPersistFile(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'None': + """ + Checks an object for changes since it was last saved to its current file. + +Args: + + + +Returns: + + None:PyIPersistFile.IsDirty +IsDirty()Checks an object for changes since it was last saved to its current file. +Return ValueThis method returns the raw COM error code without raising the normal COM exception. + +You should treat any error return codes as an indication that the object has changed. + +Unless this method explicitly returns S_FALSE, assume that the object must be saved. + + + """ + pass + + + def Load(self,FileName:'typing.Any',Mode:'typing.Any') -> 'None': + """ + Opens the specified file and initializes an object from the file contents. + +Args: + + FileName(typing.Any):Absolute path of the file to open + Mode(typing.Any):Specifies the access mode from the STGM enumeration. + +Returns: + + None + + """ + pass + + + def Save(self,FileName:'typing.Any',fRemember:'typing.Any') -> 'None': + """ + Saves the object into the specified file. + +Args: + + FileName(typing.Any):absolute path of the file where the object is saved. + fRemember(typing.Any):Specifies whether the file is to be the current working file or not. + +Returns: + + None + + """ + pass + + + def SaveCompleted(self,FileName:'typing.Any') -> 'None': + """ + Notifies the object that it can revert from NoScribble mode to Normal mode. + +Args: + + FileName(typing.Any):Absolute path of the file where the object was saved. + +Returns: + + None + + """ + pass + + + def GetCurFile(self,) -> 'typing.Any': + """ + Gets the current name of the file associated with the object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIPersistFolder(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,pidl:'PyIDL') -> 'None': + """ + Description of Initialize. + +Args: + + pidl(PyIDL):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIPersistFolder2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCurFolder(self,) -> 'None': + """ + Description of GetCurFolder. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPersistPropertyBag(object): + """A Python wrapper for a COM IPersistPropertyBag interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InitNew(self,) -> 'None': + """ + Called by the container when the control is initialized to initialize the + +property bag. + +Args: + + + +Returns: + + None + + """ + pass + + + def Load(self,bag:'PyIPropertyBag',log:'PyIErrorLog'=None) -> 'None': + """ + Called by the container to load the control's properties. + +Args: + + bag(PyIPropertyBag):the caller's property bag. + log(PyIErrorLog):the caller's error log, or None + +Returns: + + None + + """ + pass + + + def Save(self,bag:'PyIPropertyBag',clearDirty:'typing.Any',saveProperties:'typing.Any') -> 'None': + """ + Called by the container to save the object's properties. + +Args: + + bag(PyIPropertyBag):the caller's property bag. + clearDirty(typing.Any):Specifies whether to clear the dirty flag. + saveProperties(typing.Any):Specifies whether to save all properties or just those that have changed + +Returns: + + None + + """ + pass + + +class PyIPersistSerializedPropStorage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetFlags(self,flags:'typing.Any') -> 'None': + """ + Sets flags for the store + +Args: + + flags(typing.Any):Combination of pscon.FPSPS_* values + +Returns: + + None + + """ + pass + + + def SetPropertyStorage(self,ps:'typing.Any') -> 'None': + """ + Initializes the store with a serialized buffer + +Args: + + ps(typing.Any):Bytes or buffer object containing a serialized property store + +Returns: + + None + + """ + pass + + + def GetPropertyStorage(self,) -> 'typing.Any': + """ + Retrieves the current contents of the property + +store + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIPersistStorage(object): + """A Python wrapper of a COM IPersistStorage interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'typing.Any': + """ + Checks the object for changes since it was last saved. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def InitNew(self,PyIStorage:'PyIStorage') -> 'None': + """ + Initializes a new object, providing a storage object to be used for the object. + +Args: + + PyIStorage(PyIStorage):PyIStorage for the new storage object to be initialized. The container creates a nested storage object in its storage object (see PyIStorage::CreateStorage). Then, the container calls the PyIPersistStorage::WriteClassStg function to initialize the new storage object with the object class identifier (CLSID). + +Returns: + + None + + """ + pass + + + def Load(self,storage:'PyIStorage') -> 'None': + """ + Loads an object from its existing storage. + +Args: + + storage(PyIStorage):Existing storage for the object. + +Returns: + + None + + """ + pass + + + def Save(self,PyIStorage:'PyIStorage',_int:'typing.Any') -> 'None': + """ + None + +Args: + + PyIStorage(PyIStorage):Storage for the object + _int(typing.Any):Indicates whether the specified storage object is the current one. This parameter is set to FALSE when performing a Save As or Save A Copy To operation or when performing a full save. In the latter case, this method saves to a temporary file, deletes the original file, and renames the temporary file. This parameter is set to TRUE to perform a full save in a low-memory situation or to perform a fast incremental save in which only the dirty components are saved. + +Returns: + + None + + """ + pass + + + def SaveCompleted(self,PyIStorage:'PyIStorage') -> 'None': + """ + None + +Args: + + PyIStorage(PyIStorage):The current storage object + +Returns: + + None + + """ + pass + + + def HandsOffStorage(self,) -> 'None': + """ + Instructs the object to release all storage objects that have been + +passed to it by its container and to enter HandsOff mode, in which the object cannot do anything and the only + +operation that works is a close operation. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPersistStream(object): + """A Python interface to IPersistStream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsDirty(self,) -> 'typing.Any': + """ + Checks the object for changes since it was last saved. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Load(self,stream:'PyIStream') -> 'None': + """ + Initializes an object from the stream where it was previously saved. + +Args: + + stream(PyIStream):Stream object to load from.CommentsThis method loads an object from its associated stream. The seek pointer is set as it was in the most recent PyIPersistStream::Save method. This method can seek and read from the stream, but cannot write to it.On exit, the seek pointer must be in the same position it was in on entry, immediately past the end of the data. + +Returns: + + None + + """ + pass + + + def Save(self,stream:'PyIStream',bClearDirty:'typing.Any') -> 'None': + """ + Saves an object to the specified stream. + +Args: + + stream(PyIStream):The stream to save to. + bClearDirty(typing.Any):Indicates whether to clear the dirty flag after the save is complete + +Returns: + + None + + """ + pass + + + def GetSizeMax(self,) -> 'ULARGE_INTEGER': + """ + Returns the size in bytes of the stream needed to save the + +object. + +Args: + + + +Returns: + + ULARGE_INTEGER + + """ + pass + + +class PyIPersistStreamInit(object): + """A Python interface to IPersistStreamInit""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InitNew(self,) -> 'None': + """ + Initializes the object to a default state. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProcessDebugManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateApplication(self,) -> 'None': + """ + Description of CreateApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDefaultApplication(self,) -> 'None': + """ + Description of GetDefaultApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def AddApplication(self,pda:'PyIDebugApplication') -> 'None': + """ + Description of AddApplication. + +Args: + + pda(PyIDebugApplication):Description for pda + +Returns: + + None + + """ + pass + + + def RemoveApplication(self,dwAppCookie:'typing.Any') -> 'None': + """ + Description of RemoveApplication. + +Args: + + dwAppCookie(typing.Any):Description for dwAppCookie + +Returns: + + None + + """ + pass + + + def CreateDebugDocumentHelper(self,unkOuter:'typing.Any') -> 'None': + """ + Description of CreateDebugDocumentHelper. + +Args: + + unkOuter(typing.Any):The outer object for aggregation, or (usually!) None + +Returns: + + None + + """ + pass + + +class PyIProfAdmin(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns the last error code for the object. + +Args: + + hr(typing.Any):Contains the error code generated in the previous method call. + flags(typing.Any):Indicates for format for the output. + +Returns: + + typing.Any + + """ + pass + + + def CreateProfile(self,oldProfileName:'str',Password:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': + """ + Creates a new profile. + +Args: + + oldProfileName(str):The name of the new profile. + Password(str):Must be None + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def DeleteProfile(self,oldProfileName:'str',flags:'typing.Any'=0) -> 'None': + """ + Deletes a profile. + +Args: + + oldProfileName(str):The name of the profile to be deleted. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def CopyProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': + """ + Copies a profile. + +Args: + + oldProfileName(str):The name of the profile to copy. + Password(str):Must be None + newProfileName(str):The new name of the copied profile. + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def RenameProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': + """ + Assigns a new name to a profile. + +Args: + + oldProfileName(str):The current name of the profile to rename. + Password(str):Must be None + newProfileName(str):The new name of the profile to rename. + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def SetDefaultProfile(self,profileName:'str',flags:'typing.Any'=0) -> 'None': + """ + Sets or clears a client's default profile. + +Args: + + profileName(str):The name of the profile that will become the default, or None. Setting profileName to None indicates that SetDefaultProfile should remove the existing default profile, leaving the client without a default. + flags(typing.Any): + +Returns: + + None + + """ + pass + + + def AdminServices(self,profileName:'str',Password:'str'=None,uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'PyIProfAdmin': + """ + Provides access to a message service administration object for making changes to the message services in a profile. + +Args: + + profileName(str):The name of the profile to be modified. + Password(str): + uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. + flags(typing.Any): + +Returns: + + PyIProfAdmin + + """ + pass + + +class PyIPropertyBag(object): + """A Python wrapper for a COM IPropertyBag interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,propName:'typing.Any',propType:'typing.Any',errorLog:'PyIErrorLog'=None) -> 'typing.Any': + """ + Called by the control to read a property from the storage provided by the + +container. + +Args: + + propName(typing.Any):Name of the property to read. + propType(typing.Any):The type of the object to read. Must be a VT_* Variant Type constant. + errorLog(PyIErrorLog):The caller's PyIErrorLog object in which the property bag stores any errors that occur during reads. Can be None in which case the caller is not interested in errors.CommentsThe result is a Python object, mapped from a COM VARIANT of type as specified in the propType parameter. + +Returns: + + typing.Any + + """ + pass + + + def Write(self,propName:'typing.Any',value:'typing.Any') -> 'None': + """ + Called by the control to write each property in turn to the storage provided by the + +container. + +Args: + + propName(typing.Any):Name of the property to read. + value(typing.Any):The value for the property. The value must be able to be converted to a COM VARIANT. + +Returns: + + None + + """ + pass + + +class PyIPropertyChange(object): + """Interface used to specify a change to a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ApplyToPropVariant(self,OrigVal:'PyPROPVARIANT') -> 'PyPROPVARIANT': + """ + Applies the change to a variant value + +Args: + + OrigVal(PyPROPVARIANT):The value to be modified + +Returns: + + PyPROPVARIANT + + """ + pass + + +class PyIPropertyChangeArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of changes in the array + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,Index:'typing.Any',riid:'PyIID') -> 'PyIPropertyChange': + """ + Retrieves a change by zero-based index + +Args: + + Index(typing.Any):Index of the change to retrieve + riid(PyIID):The interface to return + +Returns: + + PyIPropertyChange + + """ + pass + + + def InsertAt(self,Index:'typing.Any',PropChange:'PyIPropertyChange') -> 'None': + """ + Inserts a change at a specific position + +Args: + + Index(typing.Any):Position at which to place the change + PropChange(PyIPropertyChange):The change to be added + +Returns: + + None + + """ + pass + + + def Append(self,PropChange:'PyIPropertyChange') -> 'None': + """ + Adds a change to the end of the array + +Args: + + PropChange(PyIPropertyChange):The change to be added + +Returns: + + None + + """ + pass + + + def AppendOrReplace(self,PropChange:'PyIPropertyChange') -> 'None': + """ + Adds a change, or replaces if an identical property key is already + +in container + +Args: + + PropChange(PyIPropertyChange):The change to be added or replaced + +Returns: + + None + + """ + pass + + + def RemoveAt(self,Index:'typing.Any') -> 'None': + """ + Removes a change from the array + +Args: + + Index(typing.Any):Index of change to be removed + +Returns: + + None + + """ + pass + + + def IsKeyInArray(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Checks if array contains a change to a property + +Args: + + key(PyPROPERTYKEY):Property key to look for + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertyDescription(object): + """Gives access to the details of a property definition""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyKey(self,) -> 'PyPROPERTYKEY': + """ + Returns the unique identifier for a property + +Args: + + + +Returns: + + PyPROPERTYKEY + + """ + pass + + + def GetCanonicalName(self,) -> 'typing.Any': + """ + Returns the name of the property + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetPropertyType(self,) -> 'typing.Any': + """ + Returns the variant type of the property (VT_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDisplayName(self,) -> 'typing.Any': + """ + Returns the property name as shown in the UI + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetEditInvitation(self,) -> 'typing.Any': + """ + Returns the input prompt used in edit controls + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTypeFlags(self,mask:'typing.Any') -> 'typing.Any': + """ + Returns type flags for the property + +Args: + + mask(typing.Any):Specifies which flags to retrieve (PDTF_*) + +Returns: + + typing.Any + + """ + pass + + + def GetViewFlags(self,) -> 'typing.Any': + """ + Returns the view flags that control how the property is displayed + +(PDVF_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDefaultColumnWidth(self,) -> 'typing.Any': + """ + Returns the default width in characters + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDisplayType(self,) -> 'typing.Any': + """ + Returns the display type (PDDT_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetColumnState(self,) -> 'typing.Any': + """ + Returns flags that control how property is displayed in column + +(SHCOLSTATE_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetGroupingRange(self,) -> 'typing.Any': + """ + Returns property's grouping attributes (PDGR_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRelativeDescriptionType(self,) -> 'typing.Any': + """ + Returns the relative description type (PDRDT_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRelativeDescription(self,var1:'PyPROPVARIANT',var2:'PyPROPVARIANT') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Compares two values + +Args: + + var1(PyPROPVARIANT):The first value + var2(PyPROPVARIANT):The second value + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetSortDescription(self,) -> 'typing.Any': + """ + Returns value that determines how sorting options are + +displayed (PDSD_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSortDescriptionLabel(self,Descending:'typing.Any') -> 'typing.Any': + """ + Returns description of current sort order + +Args: + + Descending(typing.Any):Indicates if order is reversed + +Returns: + + typing.Any + + """ + pass + + + def GetAggregationType(self,) -> 'typing.Any': + """ + Describes how properties for multiple items are displayed + +(PDAT_*) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetConditionType(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns options that determine how the property is used + +to build a search query + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:PyIPropertyDescription.GetConditionType + +(int, int) = GetConditionType()Returns options that determine how the property is used + +to build a search query +Return ValueReturns the condition type (PDCOT_*) and default operation (COP_*) + + + """ + pass + + + def GetEnumTypeList(self,riid:'PyIID') -> 'PyIPropertyEnumTypeList': + """ + Returns an interface used for querying + +valid property range + +Args: + + riid(PyIID):IID of the requested interface + +Returns: + + PyIPropertyEnumTypeList + + """ + pass + + + def CoerceToCanonicalValue(self,Value:'PyPROPVARIANT') -> 'typing.Any': + """ + Converts a variant value to the exact type expected by + +the property + +Args: + + Value(PyPROPVARIANT):The property value to be convertedCommentsThis method mutates the PyPROPVARIANT in place. It may be cleared on failure.Return ValueReturns the HRESULT from the operation on success. + +Returns: + + typing.Any:The property value to be convertedComments + +This method mutates the PyPROPVARIANT in place. It may be cleared on failure. +Return ValueReturns the HRESULT from the operation on success. + + + """ + pass + + + def FormatForDisplay(self,Value:'PyPROPVARIANT',Flags:'typing.Any') -> 'typing.Any': + """ + Converts a value to its string representation + +Args: + + Value(PyPROPVARIANT):The value to be formatted + Flags(typing.Any):Combination of PROPDESC_FORMAT_FLAGS (PDFF_*) + +Returns: + + typing.Any + + """ + pass + + + def IsValueCanonical(self,Value:'typing.Any') -> 'typing.Any': + """ + Determines if a value exactly matches the specification for + +the property + +Args: + + Value(typing.Any):The value to check + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertyDescriptionAliasInfo(object): + """Interface that gives access to the sorting columns for a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSortByAlias(self,riid:'PyIID') -> 'PyIPropertyDescription': + """ + Returns the primary column used + +for sorting + +Args: + + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescription + + """ + pass + + + def GetAdditionalSortByAliases(self,riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Returns secondary + +sorting columns + +Args: + + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + +class PyIPropertyDescriptionList(object): + """Container for a number of property descriptions""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Gets the number of properties in the list + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,Elem:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescription': + """ + Retrieves a description from the list + +Args: + + Elem(typing.Any):Index of the element to return + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescription + + """ + pass + + +class PyIPropertyDescriptionSearchInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSearchInfoFlags(self,) -> 'typing.Any': + """ + Returns flags controlling how property is indexed + +Args: + + + +Returns: + + typing.Any:PyIPropertyDescriptionSearchInfo.GetSearchInfoFlags + +int = GetSearchInfoFlags()Returns flags controlling how property is indexed +Return ValueReturns a combination of PROPDESC_SEARCHINFO_FLAGS values + + + """ + pass + + + def GetColumnIndexType(self,) -> 'typing.Any': + """ + Returns flags indicating type of property + +Args: + + + +Returns: + + typing.Any:PyIPropertyDescriptionSearchInfo.GetColumnIndexType + +int = GetColumnIndexType()Returns flags indicating type of property +Return ValueReturns a value from the PROPDESC_COLUMNINDEX_TYPE enum + + + """ + pass + + + def GetProjectionString(self,) -> 'typing.Any': + """ + Returns the canonical name of the property + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetMaxSize(self,) -> 'typing.Any': + """ + Returns the maximum size specified in search options + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertyEnumType(object): + """Contains information about an allowable value or range for a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetEnumType(self,) -> 'typing.Any': + """ + Retrieves the type (PROPENUMTYPE) + +Args: + + + +Returns: + + typing.Any:PyIPropertyEnumType.GetEnumType + +int = GetEnumType()Retrieves the type (PROPENUMTYPE) +Return Valuepscon.PET_* + + + """ + pass + + + def GetValue(self,) -> 'PyPROPVARIANT': + """ + Retrieves the defined value + +Args: + + + +Returns: + + PyPROPVARIANT + + """ + pass + + + def GetRangeMinValue(self,) -> 'PyPROPVARIANT': + """ + Returns the minimum allowed value for the property + +Args: + + + +Returns: + + PyPROPVARIANT + + """ + pass + + + def GetRangeSetValue(self,) -> 'PyPROPVARIANT': + """ + Returns a fixed value defined for the property + +Args: + + + +Returns: + + PyPROPVARIANT + + """ + pass + + + def GetDisplayText(self,) -> 'None': + """ + Returns the display text for the enumerated type + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPropertyEnumTypeList(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of objects in the list + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,itype:'typing.Any',riid:'PyIID') -> 'PyIPropertyEnumType': + """ + Retrieves an item by index + +Args: + + itype(typing.Any):Zero based index of type to return + riid(PyIID):The interface to return + +Returns: + + PyIPropertyEnumType + + """ + pass + + + def FindMatchingIndex(self,Cmp:'PyPROPVARIANT') -> 'typing.Any': + """ + Attempts to match the specified value to one of the allowable + +values for the property + +Args: + + Cmp(PyPROPVARIANT):A value to match against the defined values of the property + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertySetStorage(object): + """Container for a collection of property sets. + +Can be iterated over to enumerate property sets.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Create(self,fmtid:'PyIID',clsid:'PyIID',Flags:'typing.Any',Mode:'typing.Any') -> 'PyIPropertyStorage': + """ + Creates a new property set in the storage object + +Args: + + fmtid(PyIID):GUID identifying a property set, pythoncom.FMTID_* + clsid(PyIID):CLSID of property set handler, usually same as fmtid + Flags(typing.Any):Specifies behaviour of property set, storagecon.PROPSETFLAG_* + Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + PyIPropertyStorage + + """ + pass + + + def Open(self,fmtid:'PyIID',Mode:'typing.Any') -> 'PyIPropertyStorage': + """ + Opens an existing property set + +Args: + + fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* + Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + PyIPropertyStorage + + """ + pass + + + def Delete(self,fmtid:'PyIID') -> 'None': + """ + Removes a property set from this storage object + +Args: + + fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* + +Returns: + + None + + """ + pass + + + def Enum(self,) -> 'PyIEnumSTATPROPSETSTG': + """ + Creates an iterator to enumerate contained property + +sets + +Args: + + + +Returns: + + PyIEnumSTATPROPSETSTG + + """ + pass + + +class PyIPropertyStorage(object): + """Structured storage object that contains a set of properties. + +Supports iteration to list properties.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ReadMultiple(self,props:'typing.Tuple[PROPSPEC, ...]') -> 'typing.Tuple[typing.Any, ...]': + """ + Reads specified properties from the current property set. + +Args: + + props(typing.Tuple[PROPSPEC, ...]):Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type + +Returns: + + typing.Tuple[typing.Any, ...]:Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type + + + """ + pass + + + def WriteMultiple(self,props:'typing.Tuple[PROPSPEC, ...]',values:'typing.Tuple[typing.Any, ...]',propidNameFirst:'typing.Any'=2) -> 'None': + """ + Creates or modifies properties in the property set + +Args: + + props(typing.Tuple[PROPSPEC, ...]):Sequence containing names or integer ids of properties to write + values(typing.Tuple[typing.Any, ...]):The values for the properties. + propidNameFirst(typing.Any):Minimum property id to be assigned to new properties specified by name + +Returns: + + None + + """ + pass + + + def DeleteMultiple(self,props:'typing.Tuple[PROPSPEC, ...]') -> 'None': + """ + Deletes properties from the property set + +Args: + + props(typing.Tuple[PROPSPEC, ...]):Sequence containing names or IDs of properties to be deleted + +Returns: + + None + + """ + pass + + + def ReadPropertyNames(self,props:'typing.Tuple[typing.Any, ...]') -> 'typing.Tuple[typing.Any, ...]': + """ + Retrieves any existing string names for the specified + +property identifiers. + +Args: + + props(typing.Tuple[typing.Any, ...]):Sequence of ints containing property IDs. + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + + def WritePropertyNames(self,props:'typing.Tuple[typing.Any, ...]',names:'typing.Tuple[str, ...]') -> 'None': + """ + Assigns string names to a specified array of property IDs in the + +current property set. + +Args: + + props(typing.Tuple[typing.Any, ...]):Sequence containing the property IDs. + names(typing.Tuple[str, ...]):Equal length sequence of property names. + +Returns: + + None + + """ + pass + + + def DeletePropertyNames(self,props:'typing.Tuple[typing.Any, ...]') -> 'None': + """ + Removes property names from specified properties. + +Args: + + props(typing.Tuple[typing.Any, ...]):Sequence of ints containing property IDs. + +Returns: + + None + + """ + pass + + + def Commit(self,CommitFlags:'typing.Any') -> 'None': + """ + Persists the property set to its base storage + +Args: + + CommitFlags(typing.Any):Combination of storagecon.STGC_* flags + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + Discards any changes that have been made + +Args: + + + +Returns: + + None + + """ + pass + + + def Enum(self,) -> 'PyIEnumSTATPROPSTG': + """ + Creates an enumerator for properties in the property set + +Args: + + + +Returns: + + PyIEnumSTATPROPSTG + + """ + pass + + + def SetTimes(self,ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': + """ + Sets the creation, last access, and modification time + +Args: + + ctime(PyTime):Creation time, or None for no change + atime(PyTime):Last access time, or None for no change + mtime(PyTime):Modification time, or None for no changeCommentsSome property sets do not support these times. + +Returns: + + None + + """ + pass + + + def SetClass(self,clsid:'PyIID') -> 'None': + """ + Sets the GUID for the property set + +Args: + + clsid(PyIID):Description for clsid + +Returns: + + None + + """ + pass + + + def Stat(self,) -> 'typing.Any': + """ + Returns various infomation about the property set + +Args: + + + +Returns: + + typing.Any:PyIPropertyStorage.Stat + +tuple = Stat()Returns various infomation about the property set +Return ValueReturns a tuple representing a STATPROPSETSTG struct. + + + """ + pass + + +class PyIPropertyStore(object): + """Contains a collection of properties""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of properties in the store + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetAt(self,iProp:'typing.Any') -> 'PyPROPERTYKEY': + """ + Returns the property key for the specified property + +Args: + + iProp(typing.Any):Zero-based index of property + +Returns: + + PyPROPERTYKEY + + """ + pass + + + def GetValue(self,Key:'PyPROPERTYKEY') -> 'PyPROPVARIANT': + """ + Retrieves the value of a property + +Args: + + Key(PyPROPERTYKEY):Property key as returned by PyIPropertyStore::GetAt + +Returns: + + PyPROPVARIANT + + """ + pass + + + def SetValue(self,Key:'PyPROPERTYKEY',Value:'PyPROPVARIANT') -> 'None': + """ + Sets the value of a property + +Args: + + Key(PyPROPERTYKEY):Property key (see PyIPropertyStore::GetAt) + Value(PyPROPVARIANT):Variant value which can be converted to the appropriate variant type for the property Pass a VT_EMPTY variant to indicate that the property should be removed. + +Returns: + + None + + """ + pass + + + def Commit(self,) -> 'None': + """ + Commits property changes + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIPropertyStoreCache(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetState(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Retrieves the current state of a property + +Args: + + key(PyPROPERTYKEY):Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) + +Returns: + + typing.Any:Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) + + + """ + pass + + + def GetValueAndState(self,key:'PyPROPERTYKEY') -> 'typing.Tuple[PyPROPVARIANT, typing.Any]': + """ + Retrieves the current value and state of a + +property + +Args: + + key(PyPROPERTYKEY):Property identifier + +Returns: + + typing.Tuple[PyPROPVARIANT, typing.Any] + + """ + pass + + + def SetState(self,key:'PyPROPERTYKEY',state:'typing.Any') -> 'None': + """ + Sets the state of a property + +Args: + + key(PyPROPERTYKEY):Property identifier + state(typing.Any):Value from the PSC_STATE enum (pscon.PSC_*) + +Returns: + + None + + """ + pass + + + def SetValueAndState(self,key:'PyPROPERTYKEY',value:'PyPROPVARIANT',state:'typing.Any') -> 'None': + """ + Sets the value and state of a property + +Args: + + key(PyPROPERTYKEY):Property identifier + value(PyPROPVARIANT):The new value + state(typing.Any):The new state (pscon.PSC_*) + +Returns: + + None + + """ + pass + + +class PyIPropertyStoreCapabilities(object): + """Property providers use this interface to indicate whether properties are + +writeable.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsPropertyWritable(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Asks provider if a property can be editted. + +Args: + + key(PyPROPERTYKEY):Property identifier + +Returns: + + typing.Any + + """ + pass + + +class PyIPropertySystem(object): + """Wraps the IPropertySystem interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyDescription(self,Key:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescription': + """ + Returns an interface used to describe a + +property + +Args: + + Key(PyPROPERTYKEY):Fmtid and propertyid that uniquely identifies a property + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescription + + """ + pass + + + def GetPropertyDescriptionByName(self,CanonicalName:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescription': + """ + Returns an interface used to + +describe a property + +Args: + + CanonicalName(typing.Any):Registered name of the property + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescription + + """ + pass + + + def GetPropertyDescriptionListFromString(self,PropList:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Retrieves property + +descriptions from a string of property names + +Args: + + PropList(typing.Any):String containing a list of properties and flags + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + + def EnumeratePropertyDescriptions(self,Filter:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Returns an interface used to + +list defined properties + +Args: + + Filter(typing.Any):Value from PROPDESC_ENUMFILTER (pscon.PDEF_*) that limits what types of properties are listed + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + + def FormatForDisplay(self,Key:'PyPROPERTYKEY',Value:'PyPROPVARIANT',Flags:'typing.Any') -> 'typing.Any': + """ + Formats a property into a string + +Args: + + Key(PyPROPERTYKEY):Fmtid and property id that identifies the property + Value(PyPROPVARIANT):The value to format + Flags(typing.Any):Combination of PROPDESC_FORMAT_FLAGS (pscon.PDFF_*) indicating formatting options + +Returns: + + typing.Any + + """ + pass + + + def RegisterPropertySchema(self,Path:'typing.Any') -> 'None': + """ + Registers a set of properties defined in a .propdesc file + +Args: + + Path(typing.Any):Path to a property schema XML file (.propdesc) + +Returns: + + None + + """ + pass + + + def UnregisterPropertySchema(self,Path:'typing.Any') -> 'None': + """ + Removes a set of registered properties + +Args: + + Path(typing.Any):Path to a property schema XML file (.propdesc) + +Returns: + + None + + """ + pass + + + def RefreshPropertySchema(self,) -> 'None': + """ + Not currently implemented by the OS + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProvideClassInfo(object): + """A Python interface to IProvideClassInfo""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassInfo(self,) -> 'PyITypeInfo': + """ + Gets information about the CO_CLASS. + +Args: + + + +Returns: + + PyITypeInfo + + """ + pass + + +class PyIProvideClassInfo2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetGUID(self,flags:'typing.Any') -> 'PyIID': + """ + Gets the GUID for the object. + +Args: + + flags(typing.Any):The flags for the GUID. + +Returns: + + PyIID + + """ + pass + + +class PyIProvideExpressionContexts(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnumExpressionContexts(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIProvideTaskPage(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPage(self,tpType:'typing.Any',PersistChanges:'typing.Any') -> 'None': + """ + Return a property sheet page handle for the spedified type + +(TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) + +Args: + + tpType(typing.Any):Type of page to retreive (TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) + PersistChanges(typing.Any):Indicates if changes should be saved automaticallyCommentsThere's not yet anything useful that can be done with this handle - return type subject to change + +Returns: + + None + + """ + pass + + +class PyIQueryAssociations(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Init(self,flags:'typing.Any',assoc:'str',hkeyProgId:'PyHKEY'=None,hwnd:'int'=None) -> 'None': + """ + Initializes the IQueryAssociations interface and sets the root key to the + +appropriate ProgID. + +Args: + + flags(typing.Any):One of shellcon.ASSOCF_* flags + assoc(str):The string data (ie, extension, prog-id, etc) + hkeyProgId(PyHKEY):Root registry key, can be None + hwnd(int):Reserved, must be 0 or None + +Returns: + + None + + """ + pass + + + def GetKey(self,flags:'typing.Any',assocKey:'typing.Any',arg:'str') -> 'typing.Any': + """ + Searches for and retrieves a file association-related key from the + +registry. + +Args: + + flags(typing.Any):Used to control the search. + assocKey(typing.Any):Specifies the type of key that is to be returned. + arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used. + +Returns: + + typing.Any + + """ + pass + + + def GetString(self,flags:'typing.Any',assocStr:'typing.Any',arg:'str') -> 'typing.Any': + """ + Searches for and retrieves a file association-related string from the + +registry. + +Args: + + flags(typing.Any):Used to control the search. + assocStr(typing.Any):Specifies the type of string that is to be returned. + arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used.CommentsNote that ASSOCF_NOTRUNCATE semantics are currently not supported - the buffer passed is 2048 bytes long, and will be truncated by the shell if too small. + +Returns: + + typing.Any + + """ + pass + + +class PyIRelatedItem(object): + """Interface used as the base for objects that have a related shell item + +(eg ITransferMediumItem, IDisplayItem, etc). Should not be used directly.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetItemIDList(self,) -> 'PyIDL': + """ + Returns the ID list of the related item + +Args: + + + +Returns: + + PyIDL + + """ + pass + + + def GetItem(self,) -> 'PyIShellItem': + """ + Returns the related item + +Args: + + + +Returns: + + PyIShellItem + + """ + pass + + +class PyIRemoteDebugApplication(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ResumeFromBreakPoint(self,prptFocus:'PyIRemoteDebugApplicationThread',bra:'typing.Any',era:'typing.Any') -> 'None': + """ + Continue an application which is currently in a breakpoint. + +Args: + + prptFocus(PyIRemoteDebugApplicationThread):Description for prptFocus + bra(typing.Any):Break resume action + era(typing.Any):Error resume action + +Returns: + + None + + """ + pass + + + def CauseBreak(self,) -> 'None': + """ + Causes the application to break into the debugger at the earliest + +opportunity. + +Args: + + + +Returns: + + None + + """ + pass + + + def ConnectDebugger(self,pad:'PyIApplicationDebugger') -> 'None': + """ + Connects a debugger to the application. + +Args: + + pad(PyIApplicationDebugger):Description for padCommentsOnly one debugger may be connected at a time; this method fails if there is already a debugger connected. + +Returns: + + None + + """ + pass + + + def DisconnectDebugger(self,) -> 'None': + """ + Disconnects the current debugger from the application. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDebugger(self,) -> 'PyIApplicationDebugger': + """ + Returns the current debugger connected to + +the application. + +Args: + + + +Returns: + + PyIApplicationDebugger + + """ + pass + + + def CreateInstanceAtApplication(self,rclsid:'PyIID',pUnkOuter:'PyIUnknown',dwClsContext:'typing.Any',riid:'PyIID') -> 'PyIUnknown': + """ + Create objects in the application + +process address space. + +Args: + + rclsid(PyIID):Description for rclsid + pUnkOuter(PyIUnknown):Description for pUnkOuter + dwClsContext(typing.Any):Description for dwClsContext + riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. + +Returns: + + PyIUnknown + + """ + pass + + + def QueryAlive(self,) -> 'None': + """ + Returns True if alive, else False. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumThreads(self,) -> 'PyIEnumRemoteDebugApplicationThreads': + """ + Enumerates all threads known + +to be associated with the application. + +Args: + + + +Returns: + + PyIEnumRemoteDebugApplicationThreads + + """ + pass + + + def GetName(self,) -> 'None': + """ + Description of GetName. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetRootNode(self,) -> 'PyIDebugApplicationNode': + """ + Returns the application node under which + +all nodes associated with the application are added. + +Args: + + + +Returns: + + PyIDebugApplicationNode + + """ + pass + + + def EnumGlobalExpressionContexts(self,) -> 'typing.Any': + """ + Enumerates all + +global expression contexts + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIRemoteDebugApplicationEvents(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnConnectDebugger(self,pad:'PyIApplicationDebugger') -> 'None': + """ + Description of OnConnectDebugger. + +Args: + + pad(PyIApplicationDebugger):Description for pad + +Returns: + + None + + """ + pass + + + def OnDisconnectDebugger(self,) -> 'None': + """ + Description of OnDisconnectDebugger. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnSetName(self,pstrName:'typing.Any') -> 'None': + """ + Description of OnSetName. + +Args: + + pstrName(typing.Any):Description for pstrName + +Returns: + + None + + """ + pass + + + def OnDebugOutput(self,pstr:'typing.Any') -> 'None': + """ + Description of OnDebugOutput. + +Args: + + pstr(typing.Any):Description for pstr + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Description of OnClose. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnEnterBreakPoint(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnEnterBreakPoint. + +Args: + + prdat(PyIRemoteDebugApplicationThread):Description for prdat + +Returns: + + None + + """ + pass + + + def OnLeaveBreakPoint(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnLeaveBreakPoint. + +Args: + + prdat(PyIRemoteDebugApplicationThread):Description for prdat + +Returns: + + None + + """ + pass + + + def OnCreateThread(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnCreateThread. + +Args: + + prdat(PyIRemoteDebugApplicationThread):Description for prdat + +Returns: + + None + + """ + pass + + + def OnDestroyThread(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnDestroyThread. + +Args: + + prdat(PyIRemoteDebugApplicationThread):Description for prdat + +Returns: + + None + + """ + pass + + + def OnBreakFlagChange(self,abf:'typing.Any',prdatSteppingThread:'PyIRemoteDebugApplicationThread') -> 'None': + """ + Description of OnBreakFlagChange. + +Args: + + abf(typing.Any):Description for abf + prdatSteppingThread(PyIRemoteDebugApplicationThread):Description for prdatSteppingThread + +Returns: + + None + + """ + pass + + +class PyIRemoteDebugApplicationThread(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSystemThreadId(self,) -> 'None': + """ + Description of GetSystemThreadId. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetApplication(self,) -> 'None': + """ + Description of GetApplication. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumStackFrames(self,) -> 'None': + """ + Description of EnumStackFrames. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDescription(self,) -> 'None': + """ + Description of GetDescription. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetNextStatement(self,pStackFrame:'PyIDebugStackFrame',pCodeContext:'PyIDebugCodeContext') -> 'None': + """ + Description of SetNextStatement. + +Args: + + pStackFrame(PyIDebugStackFrame):Description for pStackFrame + pCodeContext(PyIDebugCodeContext):Description for pCodeContext + +Returns: + + None + + """ + pass + + + def GetState(self,) -> 'None': + """ + Description of GetState. + +Args: + + + +Returns: + + None + + """ + pass + + + def Suspend(self,) -> 'None': + """ + Description of Suspend. + +Args: + + + +Returns: + + None + + """ + pass + + + def Resume(self,) -> 'None': + """ + Description of Resume. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSuspendCount(self,) -> 'None': + """ + Description of GetSuspendCount. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIRunningObjectTable(object): + """A Python interface to IRunningObjectTable""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Register(self,) -> 'typing.Any': + """ + Registers an object and its identifying moniker in the Running Object + +Table (ROT). + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Revoke(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsRunning(self,objectName:'PyIMoniker') -> 'typing.Any': + """ + Checks whether an object is running. + +Args: + + objectName(PyIMoniker):The PyIMoniker interface on the moniker to search for in the Running Object Table.Return ValueDescriptionS_OK (ie, 0)The object identified by objectName is running.S_FALSE (ie, 1)There is no entry for objectName in the ROT, or that the object it identifies is no longer running (in which case, the entry is revoked). + +Returns: + + typing.Any + + """ + pass + + + def GetObject(self,objectName:'PyIMoniker') -> 'PyIUnknown': + """ + Checks whether an object is running. + +Args: + + objectName(PyIMoniker):The PyIMoniker interface on the moniker to search for in the Running Object Table. + +Returns: + + PyIUnknown + + """ + pass + + + def EnumRunning(self,) -> 'PyIEnumMoniker': + """ + Creates an enumerator that can list the monikers of + +all the objects currently registered in the Running Object Table (ROT). + +Args: + + + +Returns: + + PyIEnumMoniker + + """ + pass + + +class PyIScheduledWorkItem(object): + """Python object that encapsulates the IScheduledWorkItem interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateTrigger(self,) -> 'typing.Tuple[typing.Any, PyITaskTrigger]': + """ + Creates a new trigger for a task, returns index and + +new ITaskTrigger interface + +Args: + + + +Returns: + + typing.Tuple[typing.Any, PyITaskTrigger] + + """ + pass + + + def DeleteTrigger(self,Trigger:'typing.Any') -> 'None': + """ + Deletes specified trigger + +Args: + + Trigger(typing.Any):Index of trigger to delete + +Returns: + + None + + """ + pass + + + def GetTriggerCount(self,) -> 'typing.Any': + """ + Returns number of triggers defined for the task + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTrigger(self,iTrigger:'typing.Any') -> 'PyITaskTrigger': + """ + Retrieves ITaskTrigger interface for specified trigger + +index + +Args: + + iTrigger(typing.Any):Index of trigger to retrieve + +Returns: + + PyITaskTrigger + + """ + pass + + + def GetTriggerString(self,) -> 'typing.Any': + """ + Creates a human-readable summary of specified trigger + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRunTimes(self,Count:'typing.Any',Begin:'PyTime',End:'PyTime') -> 'typing.Tuple[PyTime, typing.Any, typing.Any, typing.Any]': + """ + Return specified number of run times within given time + +frame + +Args: + + Count(typing.Any):Number of run times to retrieve + Begin(PyTime):Start time, defaults to current time if not passed or None + End(PyTime):End time, defaults to unlimited if not passed or None + +Returns: + + typing.Tuple[PyTime, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetNextRunTime(self,) -> 'PyTime': + """ + Returns next time that task is scheduled to run + +Args: + + + +Returns: + + PyTime + + """ + pass + + + def SetIdleWait(self,wIdleMinutes:'typing.Any',wDeadlineMinutes:'typing.Any') -> 'None': + """ + Sets idle parms for task with trigger of type TASK_EVENT_TRIGGER_ON_IDLE + +Args: + + wIdleMinutes(typing.Any):Nbr of minutes computer must be idle before task fires + wDeadlineMinutes(typing.Any):Maximum nbr of minutes task will wait for computer to become idle + +Returns: + + None + + """ + pass + + + def GetIdleWait(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Gets IdleMinutes and DeadlineMinutes parms for task with trigger + +of type TASK_EVENT_TRIGGER_ON_IDLE + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def Run(self,) -> 'None': + """ + Starts task + +Args: + + + +Returns: + + None + + """ + pass + + + def Terminate(self,) -> 'None': + """ + Terminate process if task is running + +Args: + + + +Returns: + + None + + """ + pass + + + def EditWorkItem(self,hParent:'int',dwReserved:'typing.Any') -> 'None': + """ + Brings up standard Scheduled Task dialog + +Args: + + hParent(int):Reserved, use 0 or None if passed + dwReserved(typing.Any):Reserved, use 0 if passed + +Returns: + + None + + """ + pass + + + def GetMostRecentRunTime(self,) -> 'PyTime': + """ + Returns last time task ran + +Args: + + + +Returns: + + PyTime + + """ + pass + + + def GetStatus(self,) -> 'typing.Any': + """ + Returns status (SCHED_S_TASK... constants) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetExitCode(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns tuple of task's exit code and error returned to Task + +Scheduler if process could not start + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetComment(self,Comment:'typing.Any') -> 'None': + """ + Set comment string for task + +Args: + + Comment(typing.Any):Freeform comment string + +Returns: + + None + + """ + pass + + + def GetComment(self,) -> 'str': + """ + Return comment string associated with task. + +Args: + + + +Returns: + + str + + """ + pass + + + def SetCreator(self,Creator:'typing.Any') -> 'None': + """ + Specify who (or what) created task, can be any string + +Args: + + Creator(typing.Any):Originator of task, does not have to be valid username + +Returns: + + None + + """ + pass + + + def GetCreator(self,) -> 'None': + """ + Returns creator info, can be any string data + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWorkItemData(self,Data:'str') -> 'None': + """ + Set data associated with task (treated as uninterpreted bytes) + +Args: + + Data(str):Character data, treated as uninterpreted bytes + +Returns: + + None + + """ + pass + + + def GetWorkItemData(self,) -> 'str': + """ + Retrieve data associated with task + +Args: + + + +Returns: + + str + + """ + pass + + + def SetErrorRetryCount(self,wRetryCount:'typing.Any') -> 'None': + """ + Specify nbr of times to attempt to run task if it can't start (not + +currently implemented) + +Args: + + wRetryCount(typing.Any):Nbr of attemps to start task + +Returns: + + None + + """ + pass + + + def GetErrorRetryCount(self,) -> 'None': + """ + Return nbr of times Task scheduler should try to run task (not + +currently implemented) + +Args: + + + +Returns: + + None + + """ + pass + + + def SetErrorRetryInterval(self,RetryInterval:'typing.Any') -> 'None': + """ + Interval in minutes between attempts to run task. Not + +implemented according to SDK + +Args: + + RetryInterval(typing.Any):Interval in minutes + +Returns: + + None + + """ + pass + + + def GetErrorRetryInterval(self,) -> 'None': + """ + Returns nbr of minutes between attempts to run task. Not + +implemented according to SDK + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFlags(self,dwFlags:'typing.Any') -> 'None': + """ + Set flags for task + +Args: + + dwFlags(typing.Any):Combination of TASK_FLAG_* constants + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'typing.Any': + """ + Returns flags for task (TASK_FLAG_* constants) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetAccountInformation(self,AccountName:'typing.Any',Password:'typing.Any') -> 'None': + """ + Set username and password under which task will run + +Args: + + AccountName(typing.Any):AccountName, use "" for local system account (can only be used by Administrators) + Password(typing.Any):Password - Can be None for local System account, or if TASK_FLAG_RUN_ONLY_IF_LOGGED_ON is setCommentsOn some systems, username and password are verified at the time the task is saved, on others when the task tries to run + +Returns: + + None + + """ + pass + + + def GetAccountInformation(self,) -> 'typing.Any': + """ + Returns username that task will run under + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIServerSecurity(object): + """Interface used to access client security settings and perform impersonation""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryBlanket(self,Capabilities:'typing.Any'=0) -> 'typing.Any': + """ + Retrieves security settings specified by the client + +Args: + + Capabilities(typing.Any):Can be EOAC_MAKE_FULLSIC for SChannel provider + +Returns: + + typing.Any + + """ + pass + + + def ImpersonateClient(self,) -> 'None': + """ + Initiates impersonation of client + +Args: + + + +Returns: + + None + + """ + pass + + + def RevertToSelf(self,) -> 'None': + """ + Ends impersonation of client + +Args: + + + +Returns: + + None + + """ + pass + + + def IsImpersonating(self,) -> 'typing.Any': + """ + Determines if server is currently impersonating a client + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyIServiceProvider(object): + """A Python interface to IServiceProvider""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryService(self,clsid:'PyIID',iid:'PyIID') -> 'PyIUnknown': + """ + Creates or accesses the specified service and returns an + +interface object to the specified interface for the service. + +Args: + + clsid(PyIID):Unique identifier for the requested service. + iid(PyIID):Unique identifier for the requested interface on the service. + +Returns: + + PyIUnknown + + """ + pass + + +class PyIShellBrowser(object): + """Exposed by Windows Explorer and the Open File common dialog box to provide services for + +namespace extensions.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def InsertMenusSB(self,hmenuShared:'int',lpMenuWidths:'PyOLEMENUGROUPWIDTHS') -> 'PyOLEMENUGROUPWIDTHS': + """ + Updates a composite menu with container's options + +Args: + + hmenuShared(int):Newly created menu that contains no items + lpMenuWidths(PyOLEMENUGROUPWIDTHS):Tuple of 6 ints. Items 0,2,and 4 are updated when the tuple is returned. + +Returns: + + PyOLEMENUGROUPWIDTHS + + """ + pass + + + def SetMenuSB(self,hmenuShared:'int',holemenuRes:'int',hwndActiveObject:'int') -> 'None': + """ + Attaches a shared menu to a shell view window + +Args: + + hmenuShared(int):Handle to the shared menu + holemenuRes(int):Reserved, use only None (or 0) + hwndActiveObject(int):Handle to the shell window + +Returns: + + None + + """ + pass + + + def RemoveMenusSB(self,hmenuShared:'int') -> 'None': + """ + Asks container to remove any items it added to a composite menu + +Args: + + hmenuShared(int):Handle to the composite menu + +Returns: + + None + + """ + pass + + + def SetStatusTextSB(self,pszStatusText:'typing.Any') -> 'None': + """ + Sets the status text in view's status bar + +Args: + + pszStatusText(typing.Any):New status to be displayed + +Returns: + + None + + """ + pass + + + def EnableModelessSB(self,fEnable:'typing.Any') -> 'None': + """ + Enables or disables modeless dialogs + +Args: + + fEnable(typing.Any):Use True to enable or False to disable modeless dialog boxes + +Returns: + + None + + """ + pass + + + def TranslateAcceleratorSB(self,pmsg:'PyMSG',wID:'typing.Any') -> 'None': + """ + Translates keystrokes used as menu item activators + +Args: + + pmsg(PyMSG):Keystroke message to be translated + wID(typing.Any):Menu command id for the keystroke + +Returns: + + None + + """ + pass + + + def BrowseObject(self,pidl:'PyIDL',wFlags:'typing.Any') -> 'None': + """ + Navigates to a different location + +Args: + + pidl(PyIDL):Item id list that specifies the new browse location, can be None + wFlags(typing.Any):Combination of shellcon.SBSP_* flags + +Returns: + + None + + """ + pass + + + def GetViewStateStream(self,grfMode:'typing.Any') -> 'PyIStream': + """ + Returns a stream that can be used to access view state + +information + +Args: + + grfMode(typing.Any):Read/write mode, one of STGM_READ,STGM_WRITE,STGM_READWRITE + +Returns: + + PyIStream + + """ + pass + + + def GetControlWindow(self,_id:'typing.Any') -> 'None': + """ + Returns a handle to one of the browser's control elements + +Args: + + _id(typing.Any):One of shellcon.FCW_* values + +Returns: + + None + + """ + pass + + + def SendControlMsg(self,_id:'typing.Any',uMsg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'typing.Any': + """ + Sends a control msg to browser's toolbar or status bar + +Args: + + _id(typing.Any):shellcon.FCW_TOOLBAR or FCW_STATUS + uMsg(typing.Any):The message to send + wParam(typing.Any):Value is dependent on the message + lParam(typing.Any):Value is dependent on the message + +Returns: + + typing.Any + + """ + pass + + + def QueryActiveShellView(self,) -> 'PyIShellView': + """ + Returns the currently displayed view + +Args: + + + +Returns: + + PyIShellView + + """ + pass + + + def OnViewWindowActive(self,pshv:'PyIShellView') -> 'None': + """ + Callback triggered when a view window is activated + +Args: + + pshv(PyIShellView):The activated view object + +Returns: + + None + + """ + pass + + + def SetToolbarItems(self,lpButtons:'typing.Any',uFlags:'typing.Any') -> 'None': + """ + Adds toolbar buttons to the browser's toolbar + +Args: + + lpButtons(typing.Any):Sequence of tuples describing the buttons to be added + uFlags(typing.Any):Indicates button positions, combination of shellcon.FCT_* + +Returns: + + None + + """ + pass + + +class PyIShellExtInit(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Initialize(self,pFolder:'PyIDL',pDataObject:'PyIDataObject',hkey:'int') -> 'None': + """ + Description of Initialize. + +Args: + + pFolder(PyIDL):Description for pFolder + pDataObject(PyIDataObject):Description for pDataObject + hkey(int):Description for hkey + +Returns: + + None + + """ + pass + + +class PyIShellFolder(object): + """Interface that represents an Explorer folder""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ParseDisplayName(self,hwndOwner:'int',pbc:'PyIBindCtx',DisplayName:'typing.Any',Attributes:'typing.Any'=0) -> 'typing.Any': + """ + Returns the PIDL of an item in a shell folder + +Args: + + hwndOwner(int):Window in which to display any dialogs or message boxes, can be 0 + pbc(PyIBindCtx):Bind context that affects how parsing is performed, can be None + DisplayName(typing.Any):Display name to parse, format is dependent on the shell folder. Desktop folder will accept a file path, as well as guids of the form ::{guid} Example: '::%s\\::%s' %(shell.CLSID_MyComputer,shell.CLSID_ControlPanel) + Attributes(typing.Any):Combination of shellcon.SFGAO_* constants specifying which attributes should be returnedReturn ValueThe result is a tuple of cchEaten, pidl, attrItems[0] int : cchEatenthe number of characters of the input name that were parsed[1] PyIDL : pidlspecifies the relative path from the parsing folder to the object[2] int : Attributesreturns any requested attributes + +Returns: + + typing.Any:Combination of shellcon.SFGAO_* constants specifying which attributes should be returned +Return ValueThe result is a tuple of cchEaten, pidl, attr +Items[0] int : cchEaten +the number of characters of the input name that were parsed +[1] PyIDL : pidl +specifies the relative path from the parsing folder to the object +[2] int : Attributes +returns any requested attributes + + + """ + pass + + + def EnumObjects(self,grfFlags:'typing.Any',hwndOwner:'int'=None) -> 'PyIEnumIDList': + """ + Creates an enumerator to list the contents of the shell folder + +Args: + + grfFlags(typing.Any):Combination of shellcon.SHCONTF_* constants + hwndOwner(int):Window to use if any user interaction is required + +Returns: + + PyIEnumIDList + + """ + pass + + + def BindToObject(self,pidl:'PyIDL',pbc:'PyIBindCtx',riid:'PyIID') -> 'PyIShellFolder': + """ + Returns an IShellFolder interface for a subfolder + +Args: + + pidl(PyIDL):Relative item id list that identifies the subfolder, can be multi-level + pbc(PyIBindCtx):Bind context to be used, can be None + riid(PyIID):IID of the desired interface, usually IID_IShellFolder + +Returns: + + PyIShellFolder + + """ + pass + + + def BindToStorage(self,pidl:'PyIDL',pbc:'PyIBindCtx',riid:'PyIID') -> 'typing.Any': + """ + Returns an interface to a storage object in a shell folder + +Args: + + pidl(PyIDL):Relative pidl for the folder item, must be a single item id + pbc(PyIBindCtx):Bind context that affects how binding is performed, can be None + riid(PyIID):IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in + +Returns: + + typing.Any:IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in + + + """ + pass + + + def CompareIDs(self,lparam:'typing.Any',pidl1:'PyIDL',pidl2:'PyIDL') -> 'typing.Any': + """ + Determines the sorting order of 2 items in shell folder + +Args: + + lparam(typing.Any):Lower 16 bits specify folder-dependent sorting rules, 0 means to sort by display name. System folder view uses these as a column number. Upper sixteen bits is used for flags SHCIDS_ALLFIELDS or SHCIDS_CANONICALONLY + pidl1(PyIDL):Item id list that idenfies an object relative to the folder + pidl2(PyIDL):Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first + +Returns: + + typing.Any:Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first + + + """ + pass + + + def CreateViewObject(self,hwndOwner:'typing.Any',riid:'PyIID') -> 'PyIShellView': + """ + Creates a view object for a shell folder. + +Args: + + hwndOwner(typing.Any):Parent window for a custom folder view, or 0 + riid(PyIID):IID of the desired interface, usually IID_IShellView + +Returns: + + PyIShellView + + """ + pass + + + def GetAttributesOf(self,pidl:'typing.Tuple[PyIDL, ...]',rgfInOut:'typing.Any') -> 'typing.Any': + """ + Queries attributes of items within the shell folder + +Args: + + pidl(typing.Tuple[PyIDL, ...]):A sequence of single-level pidls identifying items directly contained by the folder + rgfInOut(typing.Any):Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items + +Returns: + + typing.Any:Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items + + + """ + pass + + + def GetUIObjectOf(self,hwndOwner:'int',pidl:'typing.Tuple[PyIDL, ...]',riid:'PyIID',iidout:'PyIID',Reserved:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PyIUnknown]': + """ + Creates an interface to one or more items in a shell + +folder + +Args: + + hwndOwner(int):Specifies a window in which to display any required dialogs or errors, can be 0 + pidl(typing.Tuple[PyIDL, ...]):A sequence of single-level pidls identifying items in the folder + riid(PyIID):The interface to create, one of IID_IContextMenu, IID_IContextMenu2, IID_IDataObject, IID_IDropTarget, IID_IExtractIcon, IID_IQueryInfo + iidout(PyIID):The interface to return. Can be used in the case where there is not a python wrapper for the desired interface. You must make certain that the interface identified by riid actually supports the iidout interface, or Bad Things Will Happen. It should always be safe to return PyIUnknown, which is the base for all interfaces.Return ValueReturns the Reserved parameter and the requested interface + Reserved(typing.Any):Reserved, use 0 if passed in + +Returns: + + typing.Tuple[typing.Any, PyIUnknown]:The interface to return. Can be used in the case where there is not a + +python wrapper for the desired interface. You must make certain that the interface identified by riid + +actually supports the iidout interface, or Bad Things Will Happen. + +It should always be safe to return PyIUnknown, which is the base for all interfaces. +Return ValueReturns the Reserved parameter and the requested interface + + + """ + pass + + + def GetDisplayNameOf(self,pidl:'PyIDL',uFlags:'typing.Any') -> 'typing.Any': + """ + Returns the display name of an item within this shell folder + +Args: + + pidl(PyIDL):PIDL that identifies the item relative to the parent folder + uFlags(typing.Any):Combination of shellcon.SHGDN_* flags + +Returns: + + typing.Any + + """ + pass + + + def SetNameOf(self,hwndOwner:'typing.Any',pidl:'PyIDL',Name:'typing.Any',Flags:'typing.Any') -> 'PyIDL': + """ + Sets the display name of an item and changes its PIDL + +Args: + + hwndOwner(typing.Any):Window in which to display any message boxes or dialogs, can be 0 + pidl(PyIDL):PIDL that identifies the item relative to the parent folder + Name(typing.Any):New name for the item + Flags(typing.Any):Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item + +Returns: + + PyIDL:Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item + + + """ + pass + + +class PyIShellFolder2(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDefaultSearchGUID(self,pguid:'PyIID') -> 'PyIID': + """ + Retrieves the default search for the folder + +Args: + + pguid(PyIID):Description for pguid + +Returns: + + PyIID + + """ + pass + + + def EnumSearches(self,) -> 'typing.Any': + """ + Returns an interface that lists searches defined for + +the folder + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDefaultColumn(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the columns used for sorting and display + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetDefaultColumnState(self,iColumn:'typing.Any') -> 'typing.Any': + """ + Returns flags indicating the default behaviour of the column + +Args: + + iColumn(typing.Any):Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags + +Returns: + + typing.Any:Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags + + + """ + pass + + + def GetDetailsEx(self,pidl:'PyIDL',pscid:'typing.Any') -> 'typing.Any': + """ + Returns the details of an item by Column ID + +Args: + + pidl(PyIDL):Relative id list of an item in the folder + pscid(typing.Any):The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column + +Returns: + + typing.Any:The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column + + + """ + pass + + + def GetDetailsOf(self,pidl:'PyIDL',iColumn:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Returns the value or title of a column in the folder's Details + +view. + +Args: + + pidl(PyIDL):The relative idl of an item in the folder. Use None to retrieve column title. + iColumn(typing.Any):Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in characters, and string representation of the requested value + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in + +characters, + +and string representation of the requested value + + + """ + pass + + + def MapColumnToSCID(self,Column:'typing.Any') -> 'typing.Any': + """ + Returns the unique identifier (FMTID, pid) of a column + +Args: + + Column(typing.Any):The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. For Vista and later, this is the Property Key used with the property system interfaces. + +Returns: + + typing.Any:The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. + +For Vista and later, this is the Property Key used with the property system interfaces. + + + """ + pass + + +class PyIShellIcon(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetIconOf(self,pidl:'PyIDL') -> 'None': + """ + Description of GetIconOf. + +Args: + + pidl(PyIDL):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIShellIconOverlay(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetOverlayIndex(self,pidl:'PyIDL') -> 'None': + """ + Description of GetOverlayIndex. + +Args: + + pidl(PyIDL):Description for pidl + +Returns: + + None + + """ + pass + + + def GetOverlayIconIndex(self,pidl:'PyIDL') -> 'None': + """ + Description of GetOverlayIconIndex. + +Args: + + pidl(PyIDL):Description for pidl + +Returns: + + None + + """ + pass + + +class PyIShellIconOverlayIdentifier(object): + """Interface that supplies icon overlay information to the shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsMemberOf(self,path:'str',attrib:'typing.Any') -> 'typing.Any': + """ + Determines if a shell object should have an icon overlay + +Args: + + path(str):Fully qualified path of the shell object + attrib(typing.Any):Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. The client implementation of this function returns the same values - ie, Python's True and False should not be used, as S_OK==0==False. + +Returns: + + typing.Any:Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to + +display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. + +The client implementation of this function returns the same values - ie, + +Python's True and False should not be used, as S_OK==0==False. + + + """ + pass + + + def GetOverlayInfo(self,) -> 'typing.Tuple[str, typing.Any, typing.Any]': + """ + Retrieves the path to the overlay + +icon + +Args: + + + +Returns: + + typing.Tuple[str, typing.Any, typing.Any]:PyIShellIconOverlayIdentifier.GetOverlayInfo + +(PyUnicode, int, int) = GetOverlayInfo()Retrieves the path to the overlay + +icon +Return ValueReturns the path to the icon file, the index of icon within the file, and Flags containing + +combination of shellcon.ISIOI_ICON* flags + + + """ + pass + + + def GetPriority(self,) -> 'typing.Any': + """ + Retrieves the relative priority of the overlay + +Args: + + + +Returns: + + typing.Any:PyIShellIconOverlayIdentifier.GetPriority + +int = GetPriority()Retrieves the relative priority of the overlay +Return ValueImplementation of this function should return a number in the range 0-100 (0 is highest priority) + + + """ + pass + + +class PyIShellIconOverlayManager(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFileOverlayInfo(self,path:'typing.Any',attrib:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Returns an index into the system image list for the icon + +image or overlay image + +Args: + + path(typing.Any):Full path to the file + attrib(typing.Any):File attributes (win32com.FILE_ATTRIBUTE_*) + flags(typing.Any):SIOM_OVERLAYINDEX (1) or SIOM_ICONINDEX (2) + +Returns: + + typing.Any + + """ + pass + + + def GetReservedOverlayInfo(self,path:'typing.Any',attrib:'typing.Any',flags:'typing.Any',ireservedID:'typing.Any') -> 'None': + """ + Description of GetReservedOverlayInfo. + +Args: + + path(typing.Any):Description for path + attrib(typing.Any):Description for attrib + flags(typing.Any):Description for flags + ireservedID(typing.Any):Description for ireservedID + +Returns: + + None + + """ + pass + + + def RefreshOverlayImages(self,flags:'typing.Any') -> 'None': + """ + Description of RefreshOverlayImages. + +Args: + + flags(typing.Any):Description for flags + +Returns: + + None + + """ + pass + + + def LoadNonloadedOverlayIdentifiers(self,) -> 'None': + """ + Description of LoadNonloadedOverlayIdentifiers. + +Args: + + + +Returns: + + None + + """ + pass + + + def OverlayIndexFromImageIndex(self,iImage:'typing.Any',fAdd:'typing.Any') -> 'None': + """ + Description of OverlayIndexFromImageIndex. + +Args: + + iImage(typing.Any):Description for iImage + fAdd(typing.Any):Description for fAdd + +Returns: + + None + + """ + pass + + +class PyIShellItem(object): + """Interface that represents an item in the Explorer shell""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToHandler(self,pbc:'PyIBindCtx',bhid:'PyIID',riid:'PyIID') -> 'typing.Any': + """ + Creates an instance of one of the item's handlers + +Args: + + pbc(PyIBindCtx):Used to pass parameters that influence the binding operation, can be None + bhid(PyIID):GUID that identifies a handler (shell.BHID_*) + riid(PyIID):The interface to return + +Returns: + + typing.Any + + """ + pass + + + def GetParent(self,) -> 'PyIShellItem': + """ + Retrieves the parent of this item + +Args: + + + +Returns: + + PyIShellItem + + """ + pass + + + def GetDisplayName(self,sigdnName:'typing.Any') -> 'typing.Any': + """ + Returns the display name of the item in the specified format + +Args: + + sigdnName(typing.Any):Format of name to return, shellcon.SIGDN_* + +Returns: + + typing.Any + + """ + pass + + + def GetAttributes(self,Mask:'typing.Any') -> 'typing.Any': + """ + Returns shell attributes of the item + +Args: + + Mask(typing.Any):Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values + +Returns: + + typing.Any:Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values + + + """ + pass + + + def Compare(self,psi:'PyIShellItem',hint:'typing.Any') -> 'typing.Any': + """ + Compares another shell item with this item + +Args: + + psi(PyIShellItem):A shell item to be compared with this item + hint(typing.Any):shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise + +Returns: + + typing.Any:shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise + + + """ + pass + + +class PyIShellItem2(object): + """Extends the IShellItem interface, giving access to an item's properties""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPropertyStore(self,Flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': + """ + Returns a collection of the item's properties + +Args: + + Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + riid(PyIID):The interface to return + +Returns: + + PyIPropertyStore + + """ + pass + + + def GetPropertyStoreForKeys(self,Keys:'typing.Tuple[typing.Any, ...]',Flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': + """ + Creates a property store containing just the + +specified properties of the item + +Args: + + Keys(typing.Tuple[typing.Any, ...]):A sequence of property identifiers + Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + riid(PyIID):The interface to return + +Returns: + + PyIPropertyStore + + """ + pass + + + def GetPropertyStoreWithCreateObject(self,Flags:'typing.Any',CreateObject:'PyIUnknown',riid:'PyIID') -> 'PyIPropertyStore': + """ + Returns the property store for the + +item, with alternate handler instantiation + +Args: + + Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) + CreateObject(PyIUnknown):An interface that implements ICreateObject, used to create the property handler + riid(PyIID):The interface to be createdCommentsPrimarily used to create a handler in a separate process with reduced privileges + +Returns: + + PyIPropertyStore + + """ + pass + + + def GetPropertyDescriptionList(self,Type:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Retrieves descriptions of + +properties in a particular group + +Args: + + Type(PyPROPERTYKEY):Property list identifier (pscon.PKEY_PropList_*) + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + + def Update(self,BindCtx:'typing.Any'=None) -> 'None': + """ + Refreshes properties that have been modified since interface was created + +Args: + + BindCtx(typing.Any):Bind context used when requesting the interface, or None + +Returns: + + None + + """ + pass + + + def GetProperty(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Retrieves the value of a property, converted to an appropriate python type + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property + +Returns: + + typing.Any:The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property + + + """ + pass + + + def GetCLSID(self,key:'PyPROPERTYKEY') -> 'PyIID': + """ + Retrieves the value of a property as a CLSID (VT_CLSID) + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + PyIID + + """ + pass + + + def GetFileTime(self,key:'PyPROPERTYKEY') -> 'PyTime': + """ + Retrieves the value of a property as a FILETIME + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + PyTime + + """ + pass + + + def GetInt32(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Retrieves the value of a property as a 32 bit int. + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + + def GetString(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Retrieves the value of a property as a string + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + + def GetUInt32(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Returns the value of a property as a 32 bit unsigned int + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + + def GetUInt64(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Returns the value of a property as an unsigned 64-bit int + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + + def GetBool(self,key:'PyPROPERTYKEY') -> 'typing.Any': + """ + Returns the value of a property as a boolean + +Args: + + key(PyPROPERTYKEY):The id of the property to retrieve + +Returns: + + typing.Any + + """ + pass + + +class PyIShellItemArray(object): + """Container for a number of shell items""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BindToHandler(self,pbc:'PyIBindCtx',rbhid:'PyIID',riid:'PyIID') -> 'typing.Any': + """ + Creates an instance of a handler for the items in the container + +Args: + + pbc(PyIBindCtx):Bind context, can be None + rbhid(PyIID):Bind handler GUID (shell.BHID_*) + riid(PyIID):The interface to return + +Returns: + + typing.Any + + """ + pass + + + def GetPropertyStore(self,flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': + """ + Retrieves a store containing consolidated + +properties of items in container + +Args: + + flags(typing.Any):Flags indicating how the properties are retrieved (shellcon.GPS_*) + riid(PyIID):The interface to return, IID_IPropertyStore or related interface + +Returns: + + PyIPropertyStore + + """ + pass + + + def GetPropertyDescriptionList(self,Type:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescriptionList': + """ + Retrieves descriptions for a + +defined group of properties + +Args: + + Type(PyPROPERTYKEY):Property list identifier (pscon.PKEY_PropList_*) + riid(PyIID):The interface to return + +Returns: + + PyIPropertyDescriptionList + + """ + pass + + + def GetAttributes(self,AttribFlags:'typing.Any',Mask:'typing.Any') -> 'typing.Any': + """ + Retrieves shell attributes of contained items + +Args: + + AttribFlags(typing.Any):SIATTRIBFLAGS value (shellcon.SIATTRIBFLAGS_*) specifying how to combine attributes of multiple items + Mask(typing.Any):Combination of SFGAOF flags (shellcon.SFGAO_*) specifying which attributes to return + +Returns: + + typing.Any + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of items in the container + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemAt(self,dwIndex:'typing.Any') -> 'PyIShellItem': + """ + Retrieves an item by index + +Args: + + dwIndex(typing.Any):Zero-based index of item to retrieve + +Returns: + + PyIShellItem + + """ + pass + + + def EnumItems(self,) -> 'PyIEnumShellItems': + """ + Returns an enumeration interface to list contained items + +Args: + + + +Returns: + + PyIEnumShellItems + + """ + pass + + +class PyIShellItemResources(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetAttributes(self,) -> 'None': + """ + Description of GetAttributes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'typing.Any': + """ + Description of GetSize. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTimes(self,) -> 'None': + """ + Description of GetTimes. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetTimes(self,pftCreation:'PyTime',pftWrite:'PyTime',pftAccess:'PyTime') -> 'None': + """ + Description of SetTimes. + +Args: + + pftCreation(PyTime):Description for pftCreation + pftWrite(PyTime):Description for pftWrite + pftAccess(PyTime):Description for pftAccess + +Returns: + + None + + """ + pass + + + def GetResourceDescription(self,pcsir:'PySHELL_ITEM_RESOURCE') -> 'None': + """ + Description of GetResourceDescription. + +Args: + + pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir + +Returns: + + None + + """ + pass + + + def EnumResources(self,) -> 'PyIEnumResources': + """ + Description of EnumResources. + +Args: + + + +Returns: + + PyIEnumResources + + """ + pass + + + def SupportsResource(self,pcsir:'PySHELL_ITEM_RESOURCE') -> 'typing.Any': + """ + Description of SupportsResource. + +Args: + + pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir + +Returns: + + typing.Any + + """ + pass + + + def OpenResource(self,pcsir:'PySHELL_ITEM_RESOURCE',riid:'PyIID') -> 'PyIUnknown': + """ + Description of OpenResource. + +Args: + + pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir + riid(PyIID):The interface to return + +Returns: + + PyIUnknown + + """ + pass + + + def CreateResource(self,sir:'PySHELL_ITEM_RESOURCE',riid:'PyIID') -> 'typing.Any': + """ + Description of CreateResource. + +Args: + + sir(PySHELL_ITEM_RESOURCE):Resource identifier + riid(PyIID):The interface to return + +Returns: + + typing.Any + + """ + pass + + + def MarkForDelete(self,) -> 'None': + """ + Description of MarkForDelete. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIShellLibrary(object): + """Interface used to access Libraries""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def LoadLibraryFromItem(self,Library:'PyIShellItem',Mode:'typing.Any') -> 'None': + """ + Loads an existing library file + +Args: + + Library(PyIShellItem):Shell item interface representing the library file + Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + None + + """ + pass + + + def LoadLibraryFromKnownFolder(self,Library:'PyIID',Mode:'typing.Any') -> 'None': + """ + Initializes library from a known folder + +Args: + + Library(PyIID):Known folder id, shell.FOLDERID_* + Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags + +Returns: + + None + + """ + pass + + + def AddFolder(self,Location:'PyIShellItem') -> 'None': + """ + Includes a folder + +Args: + + Location(PyIShellItem):Shell item interface representing the folder + +Returns: + + None + + """ + pass + + + def RemoveFolder(self,Location:'PyIShellItem') -> 'None': + """ + Removes a folder + +Args: + + Location(PyIShellItem):Shell item interface representing the folder + +Returns: + + None + + """ + pass + + + def GetFolders(self,Filter:'typing.Any',riid:'PyIID') -> 'PyIShellItemArray': + """ + Retrieves a collection of folders in the library + +Args: + + Filter(typing.Any):Specifies what types of folder to return (shellcon.LFF_*) + riid(PyIID):The interface to return, IObjectCollection and IObjectArray also accepted. + +Returns: + + PyIShellItemArray + + """ + pass + + + def ResolveFolder(self,FolderToResolve:'PyIShellItem',Timeout:'typing.Any',riid:'PyIID') -> 'PyIShellItem': + """ + Attempts to locate a folder that has been moved or renamed + +Args: + + FolderToResolve(PyIShellItem):Library item whose location has changed + Timeout(typing.Any):Max search time, specified in milliseconds + riid(PyIID):The interface to return + +Returns: + + PyIShellItem + + """ + pass + + + def GetDefaultSaveFolder(self,Type:'typing.Any',riid:'PyIID') -> 'PyIShellItem': + """ + Returns the default folder in which new items are + +saved + +Args: + + Type(typing.Any):Specifies whether to return public or private save location, shellcon.DSFT_* + riid(PyIID):The interface to return + +Returns: + + PyIShellItem + + """ + pass + + + def SetDefaultSaveFolder(self,Type:'typing.Any',SaveFolder:'PyIShellItem') -> 'None': + """ + Sets the default save location + +Args: + + Type(typing.Any):Specifies public or private save location, shellcon.DSFT_* + SaveFolder(PyIShellItem):New default location, must be in the library + +Returns: + + None + + """ + pass + + + def GetOptions(self,) -> 'typing.Any': + """ + Retrieves library option flags + +Args: + + + +Returns: + + typing.Any:PyIShellLibrary.GetOptions + +int = GetOptions()Retrieves library option flags +Return ValueReturns a combination of shellcon.LOF_* flags + + + """ + pass + + + def SetOptions(self,Mask:'typing.Any',Options:'typing.Any') -> 'None': + """ + Sets library option flags + +Args: + + Mask(typing.Any):Bitmask of flags to be changed, combination of shellcon.LOF_* values + Options(typing.Any):New options, combination of shellcon.LOF_* values + +Returns: + + None + + """ + pass + + + def GetFolderType(self,) -> 'PyIID': + """ + Returns the library type, shell.FOLDERTYPEID_* + +Args: + + + +Returns: + + PyIID + + """ + pass + + + def SetFolderType(self,Type:'PyIID') -> 'None': + """ + Sets the folder type for the library + +Args: + + Type(PyIID):New type, shell.FOLDERTYPEID_* + +Returns: + + None + + """ + pass + + + def GetIcon(self,) -> 'typing.Any': + """ + Returns the location of the library's icon + +Args: + + + +Returns: + + typing.Any:PyIShellLibrary.GetIcon + +str = GetIcon()Returns the location of the library's icon +Return ValueUses "module,resource" format + + + """ + pass + + + def SetIcon(self,Icon:'typing.Any') -> 'None': + """ + Sets the library icon + +Args: + + Icon(typing.Any):Icon location in "module,resource" syntax + +Returns: + + None + + """ + pass + + + def Commit(self,) -> 'None': + """ + Saves changes (only if loaded from an existing library) + +Args: + + + +Returns: + + None + + """ + pass + + + def Save(self,FolderToSaveIn:'PyIShellItem',LibraryName:'typing.Any',Flags:'typing.Any') -> 'PyIShellItem': + """ + Saves the library to a specific location + +Args: + + FolderToSaveIn(PyIShellItem):The destination folder, use None to save in current user's Libraries folder + LibraryName(typing.Any):Filename for the new library, without file extension + Flags(typing.Any):Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. + +Returns: + + PyIShellItem:Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. + + + """ + pass + + + def SaveInKnownFolder(self,FolderToSaveIn:'PyIID',LibraryName:'typing.Any',Flags:'typing.Any') -> 'PyIShellItem': + """ + Saves the library in a known folder + +Args: + + FolderToSaveIn(PyIID):The destination folder, shell.FOLDERID_* + LibraryName(typing.Any):Filename for the new library, without file extension + Flags(typing.Any):Determines behaviour if file already exists, shellcon.LSF_* + +Returns: + + PyIShellItem + + """ + pass + + +class PyIShellLink(object): + """Interface used to access the properties of a shell link file (*.lnk)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPath(self,fFlags:'typing.Any',cchMaxPath:'typing.Any') -> 'typing.Tuple[typing.Any, WIN32_FIND_DATA]': + """ + Retrieves the target path and file name of a shell link + +object + +Args: + + fFlags(typing.Any):One of the following values:ValueDescriptionSLGP_SHORTPATHRetrieves the standard short (8.3 format) file name.SLGP_UNCPRIORITYRetrieves the Universal Naming Convention (UNC) path name of the file.SLGP_RAWPATHRetrieves the raw path name. A raw path is something that might not exist and may include environment variables that need to be expanded. + cchMaxPath(typing.Any):Number of characters to allocate for returned filenameCommentsThe AlternateFileName (8.3) member of WIN32_FIND_DATA does not return information + +Returns: + + typing.Tuple[typing.Any, WIN32_FIND_DATA] + + """ + pass + + + def GetIDList(self,) -> 'PyIDL': + """ + Retrieves the item id list that identifies the target of the shell link. + +Args: + + + +Returns: + + PyIDL + + """ + pass + + + def SetIDList(self,pidl:'PyIDL') -> 'None': + """ + Sets the target of the link using an item id list + +Args: + + pidl(PyIDL):Absolute item id list that identifies the target + +Returns: + + None + + """ + pass + + + def GetDescription(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': + """ + Retrieves the description of the link (displays as Comment in the UI) + +Args: + + cchMaxName(typing.Any):Number of character to allocate for the retrieved text + +Returns: + + typing.Any + + """ + pass + + + def SetDescription(self,Name:'typing.Any') -> 'None': + """ + Sets the description of the link (displays as Comment in the UI) + +Args: + + Name(typing.Any):The description for the link + +Returns: + + None + + """ + pass + + + def GetWorkingDirectory(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': + """ + Retrieves the working directory for the link + +Args: + + cchMaxName(typing.Any):Number of characters to allocate for returned text + +Returns: + + typing.Any + + """ + pass + + + def SetWorkingDirectory(self,Dir:'typing.Any') -> 'None': + """ + Sets the working directory for the link. + +Args: + + Dir(typing.Any):The working directory for the link + +Returns: + + None + + """ + pass + + + def GetArguments(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': + """ + Retrieves the command-line arguments associated with a shell link object. + +Args: + + cchMaxName(typing.Any):Number of characters to fetch. + +Returns: + + typing.Any + + """ + pass + + + def SetArguments(self,args:'typing.Any') -> 'None': + """ + Sets the command-line arguments associated with a shell link object. + +Args: + + args(typing.Any):The new arguments. + +Returns: + + None + + """ + pass + + + def GetHotkey(self,) -> 'typing.Any': + """ + Retrieves the hot key for a shell link object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetHotkey(self,wHotkey:'typing.Any') -> 'None': + """ + Sets the hot key for a shell link object. + +Args: + + wHotkey(typing.Any):The virtual key code is in the low-order byte, and the modifier flags are in the high-order byte. The modifier flags can be a combination of the values specified in the description of the PyIShellLink::GetHotkey method. + +Returns: + + None + + """ + pass + + + def GetShowCmd(self,) -> 'typing.Any': + """ + Retrieves the show (SW_) command for a shell link object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetShowCmd(self,iShowCmd:'typing.Any') -> 'None': + """ + Sets the show (SW_) command for a shell link object. + +Args: + + iShowCmd(typing.Any):The new show command value. + +Returns: + + None + + """ + pass + + + def GetIconLocation(self,cchMaxPath:'typing.Any') -> 'typing.Any': + """ + Retrieves the location (path and index) of the icon for a shell link + +object. + +Args: + + cchMaxPath(typing.Any):Number of characters to allocate for the result string. + +Returns: + + typing.Any + + """ + pass + + + def SetIconLocation(self,iconPath:'str',iIcon:'typing.Any') -> 'None': + """ + Sets the location (path and index) of the icon for a shell link object. + +Args: + + iconPath(str):Path to the file with the icon. + iIcon(typing.Any):Index of the icon. + +Returns: + + None + + """ + pass + + + def SetRelativePath(self,relPath:'str',reserved:'typing.Any'=0) -> 'None': + """ + Sets the relative path for a shell link object. + +Args: + + relPath(str):The relative path. + reserved(typing.Any):Reserved - must be zero.CommentsThis mechanism allows for moved link files to reestablish connection with relative files through similar-prefix comparisons + +Returns: + + None + + """ + pass + + + def Resolve(self,hwnd:'typing.Any',fFlags:'typing.Any') -> 'None': + """ + Resolves a shell link by searching for the shell link object and updating the + +shell link path and its list of identifiers (if necessary) + +Args: + + hwnd(typing.Any):The parent window of a dialog which will pop up if resolution fails. + fFlags(typing.Any):One of the following constants:ValueDescriptionSLR_INVOKE_MSICall the Microsoft Windows Installer.SLR_NOLINKINFODisable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting SLR_NOLINKINFO disables both types of tracking.SLR_NO_UIDo not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, the high-order word of fFlags can be set to a time-out value that specifies the maximum amount of time to be spent resolving the link. The function returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration will be set to the default value of 3,000 milliseconds (3 seconds). To specify a value, set the high word of fFlags to the desired time-out duration, in milliseconds.SLR_NOUPDATEDo not update the link information.SLR_NOSEARCHDo not execute the search heuristics.SLR_NOTRACKDo not use distributed link tracking.SLR_UPDATEIf the link object has changed, update its path and list of identifiers. If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine whether or not the link object has changed. + +Returns: + + None + + """ + pass + + + def SetPath(self,path:'str') -> 'None': + """ + Sets the path and file name of a shell link object. + +Args: + + path(str):The path and filename of the link. + +Returns: + + None + + """ + pass + + +class PyIShellLinkDataList(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddDataBlock(self,DataBlock:'typing.Any') -> 'None': + """ + Inserts a data block into the link + +Args: + + DataBlock(typing.Any):Contents are dependent on type of data block being addedCommentsInput should be one of NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS, EXP_SPECIAL_FOLDER, EXP_DARWIN_LINK, or EXP_SZ_LINK. Expected form is indicated by the Signature member. + +Returns: + + None + + """ + pass + + + def CopyDataBlock(self,Sig:'typing.Any') -> 'typing.Any': + """ + Retrieves the specified data block from the link + +Args: + + Sig(typing.Any):The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in + +Returns: + + typing.Any:The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in + + + """ + pass + + + def GetFlags(self,) -> 'typing.Any': + """ + Retrieves the link's flags + +Args: + + + +Returns: + + typing.Any:PyIShellLinkDataList.GetFlags + +int = GetFlags()Retrieves the link's flags +Return ValueReturns combination of shellcon.SLDF_* flags + + + """ + pass + + + def RemoveDataBlock(self,Sig:'typing.Any') -> 'None': + """ + Deletes one of the link's data blocks + +Args: + + Sig(typing.Any):Identifies which block is to be removed, one of shellcon.*_SIG constants + +Returns: + + None + + """ + pass + + + def SetFlags(self,Flags:'typing.Any') -> 'None': + """ + Sets the flags indicating which data blocks are present + +Args: + + Flags(typing.Any):Combination of shellcon.SLDF_* flags + +Returns: + + None + + """ + pass + + +class PyIShellView(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def TranslateAccelerator(self,pmsg:'typing.Any') -> 'typing.Any': + """ + Description of TranslateAccelerator. + +Args: + + pmsg(typing.Any):Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call + +Returns: + + typing.Any:Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call + + + """ + pass + + + def EnableModeless(self,fEnable:'typing.Any') -> 'None': + """ + Description of EnableModeless. + +Args: + + fEnable(typing.Any):Description for fEnable + +Returns: + + None + + """ + pass + + + def UIActivate(self,uState:'typing.Any') -> 'None': + """ + Description of UIActivate. + +Args: + + uState(typing.Any):Description for uState + +Returns: + + None + + """ + pass + + + def Refresh(self,) -> 'None': + """ + Description of Refresh. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateViewWindow(self,psvPrevious:'PyIShellView',pfs:'typing.Tuple[typing.Any, typing.Any]',psb:'PyIShellBrowser',prcView:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Any': + """ + Description of CreateViewWindow. + +Args: + + psvPrevious(PyIShellView):Description for psvPrevious + pfs(typing.Tuple[typing.Any, typing.Any]):Description for pfs + psb(PyIShellBrowser):Description for psb + prcView(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcViewReturn ValueThe result is an integer handle to the new window. + +Returns: + + typing.Any:Description for prcViewReturn ValueThe result is an integer handle to the new window. + + + """ + pass + + + def DestroyViewWindow(self,) -> 'None': + """ + Description of DestroyViewWindow. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurrentInfo(self,) -> 'typing.Any': + """ + Description of GetCurrentInfo. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SaveViewState(self,) -> 'None': + """ + Description of SaveViewState. + +Args: + + + +Returns: + + None + + """ + pass + + + def SelectItem(self,pidlItem:'PyIDL',uFlags:'typing.Any') -> 'None': + """ + Description of SelectItem. + +Args: + + pidlItem(PyIDL):Description for pidlItem + uFlags(typing.Any):Description for uFlags + +Returns: + + None + + """ + pass + + + def GetItemObject(self,uItem:'typing.Any',riid:'PyIID') -> 'PyIUnknown': + """ + Description of GetItemObject. + +Args: + + uItem(typing.Any):Description for uItem + riid(PyIID):Description for riid + +Returns: + + PyIUnknown + + """ + pass + + +class PyISpecifyPropertyPages(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPages(self,) -> 'None': + """ + Description of GetPages. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIStorage(object): + """Structured storage compound storage object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateStream(self,Name:'typing.Any',Mode:'typing.Any',reserved1:'typing.Any'=0,reserved2:'typing.Any'=0) -> 'PyIStream': + """ + Creates and opens a stream object with the specified name contained + +in this storage object. All elements within a storage object — both streams and other storage objects — are kept in + +the same name space. + +Args: + + Name(typing.Any):Name of the new stream + Mode(typing.Any):Access mode, storagecon.STGM_* + reserved1(typing.Any):Reserved - must be zero. + reserved2(typing.Any):Reserved - must be zero. + +Returns: + + PyIStream + + """ + pass + + + def OpenStream(self,Name:'typing.Any',reserved1:'typing.Any',Mode:'typing.Any',reserved2:'typing.Any'=0) -> 'PyIStream': + """ + Opens an existing stream object within this storage object in the + +specified access mode. + +Args: + + Name(typing.Any):Name of stream to be opened + reserved1(typing.Any):A reserved param. Always pass None. NULL is always passed to the COM function + Mode(typing.Any):Access mode, storagecon.STGM_* + reserved2(typing.Any):Reserved - must be zero. + +Returns: + + PyIStream + + """ + pass + + + def CreateStorage(self,Name:'typing.Any',Mode:'typing.Any',StgFmt:'typing.Any',reserved2:'typing.Any'=0) -> 'PyIStorage': + """ + Creates and opens a new storage object nested within this storage + +object. + +Args: + + Name(typing.Any):The name of the newly created stream. + Mode(typing.Any):Access mode - combination of storagecon.STGM_* flags + StgFmt(typing.Any):Documented as "reserved"! + reserved2(typing.Any):Description for reserved2 + +Returns: + + PyIStorage + + """ + pass + + + def OpenStorage(self,Name:'typing.Any',Priority:'PyIStorage',Mode:'typing.Any',snbExclude:'typing.Any',reserved:'typing.Any'=0) -> 'PyIStorage': + """ + Opens an existing storage object with the specified name in the + +specified access mode. + +Args: + + Name(typing.Any):Name of the storage, or None. + Priority(PyIStorage):If the pstgPriority parameter is not None, it is a PyIStorage object to a previous opening of an element of the storage object, usually one that was opened in priority mode. The storage object should be closed and re-opened according to grfMode. When the PyIStorage::OpenStorage method returns, pstgPriority is no longer valid - use the result value. If the pstgPriority parameter is None, it is ignored. + Mode(typing.Any):Access mode - combination of storagecon.STGM_* flags (must include STGM_SHARE_EXCLUSIVE) + snbExclude(typing.Any):Reserved for later - Must be None + reserved(typing.Any):Reserved integer param. + +Returns: + + PyIStorage + + """ + pass + + + def CopyTo(self,rgiidExclude:'typing.Tuple[typing.Any, typing.Any]',snbExclude:'typing.Any',stgDest:'PyIStorage') -> 'None': + """ + Copies the entire contents of an open storage object to another storage object. + +Args: + + rgiidExclude(typing.Tuple[typing.Any, typing.Any]):List of IID's to be excluded. Use empty seq to exclude all objects, or None to indicate no excludes. + snbExclude(typing.Any):Reserved for later - Must be None + stgDest(PyIStorage):The open storage object into which this storage object is to be copied. The destination storage object can be a different implementation of the PyIStorage interface from the source storage object. Thus, IStorage::CopyTo can only use publicly available methods of the destination storage object. If stgDest is open in transacted mode, it can be reverted by calling its PyIStorage::Revert method. + +Returns: + + None + + """ + pass + + + def MoveElementTo(self,Name:'typing.Any',stgDest:'PyIStorage',NewName:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Copies or moves a substorage or stream from this storage object to another + +storage object. + +Args: + + Name(typing.Any):A string that contains the name of the element in this storage object to be moved or copied. + stgDest(PyIStorage):PyIStorage for the destination storage object. + NewName(typing.Any):A string that contains the new name for the element in its new storage object. + Flags(typing.Any):Specifies whether to move or copy (storagecon.STGMOVE_MOVE or STGMOVE_COPY) + +Returns: + + None + + """ + pass + + + def Commit(self,grfCommitFlags:'typing.Any') -> 'None': + """ + Ensures that any changes made to a storage object open in transacted mode are reflected + +in the parent storage; for a root storage, reflects the changes in the actual device, for example, a file on disk. + +For a root storage object opened in direct mode, this method has no effect except to flush all memory buffers to the + +disk. For non-root storage objects in direct mode, this method has no effect. + +Args: + + grfCommitFlags(typing.Any):Controls how the changes are committed to the storage object. See the STGC enumeration for a definition of these values. + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + Discards all changes that have been made to the storage object since the last commit. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnumElements(self,reserved1:'typing.Any'=0,reserved2:'typing.Any'=None,reserved3:'typing.Any'=0) -> 'PyIEnumSTATSTG': + """ + Retrieves an enumerator object that can be used to enumerate the + +storage and stream objects contained within this storage object. + +Args: + + reserved1(typing.Any):Reserved - must be zero. + reserved2(typing.Any):A reserved param. Always pass None. NULL is always passed to the COM function + reserved3(typing.Any):Reserved - must be zero. + +Returns: + + PyIEnumSTATSTG + + """ + pass + + + def DestroyElement(self,name:'str') -> 'None': + """ + Removes the specified storage or stream from this storage object. + +Args: + + name(str):The name of the element to be removed. + +Returns: + + None + + """ + pass + + + def RenameElement(self,OldName:'typing.Any',NewName:'typing.Any') -> 'None': + """ + Renames the specified substorage or stream in this storage object. + +Args: + + OldName(typing.Any):The name of the substorage or stream to be changed. + NewName(typing.Any):The new name for the specified sustorage or stream. + +Returns: + + None + + """ + pass + + + def SetElementTimes(self,name:'typing.Any',ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': + """ + Sets the modification, access, and creation times of the specified storage + +element, if supported by the underlying file system. + +Args: + + name(typing.Any):The name of the storage object element whose times are to be modified. If NULL, the time is set on the root storage rather than one of its elements. + ctime(PyTime):Either the new creation time for the element or None if the creation time is not to be modified. + atime(PyTime):Either the new access time for the element or None if the access time is not to be modified. + mtime(PyTime):Either the new modification time for the element or None if the modification time is not to be modified. + +Returns: + + None + + """ + pass + + + def SetClass(self,clsid:'PyIID') -> 'None': + """ + Assigns the specified CLSID to this storage object. + +Args: + + clsid(PyIID):The class identifier (CLSID) that is to be associated with the storage object. + +Returns: + + None + + """ + pass + + + def SetStateBits(self,grfStateBits:'typing.Any',grfMask:'typing.Any') -> 'None': + """ + Stores up to 32 bits of state information in this storage object. + +Args: + + grfStateBits(typing.Any):Specifies the new values of the bits to set. No legal values are defined for these bits; they are all reserved for future use and must not be used by applications. + grfMask(typing.Any):A binary mask indicating which bits in grfStateBits are significant in this call. + +Returns: + + None + + """ + pass + + + def Stat(self,grfStatFlag:'typing.Any') -> 'STATSTG': + """ + Retrieves the STATSTG structure for this open storage object. + +Args: + + grfStatFlag(typing.Any):Specifies that some of the fields in the STATSTG structure are not returned, thus saving a memory allocation operation. Values are taken from the STATFLAG enumeration. + +Returns: + + STATSTG + + """ + pass + + +class PyIStream(object): + """A Python interface to IStream""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Read(self,numBytes:'typing.Any') -> 'str': + """ + Read the specified number of bytes from the string. + +Args: + + numBytes(typing.Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + +Returns: + + str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + + + """ + pass + + + def read(self,numBytes:'typing.Any') -> 'str': + """ + Read the specified number of bytes from the string. + +Args: + + numBytes(typing.Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + +Returns: + + str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. + + + """ + pass + + + def Write(self,data:'str') -> 'None': + """ + Write data to a stream + +Args: + + data(str):The binary data to write. + +Returns: + + None + + """ + pass + + + def write(self,data:'str') -> 'None': + """ + Write data to a stream + +Args: + + data(str):The binary data to write. + +Returns: + + None + + """ + pass + + + def Seek(self,offset:'typing.Any',origin:'typing.Any') -> 'ULARGE_INTEGER': + """ + Changes the seek pointer to a new location. + +Args: + + offset(typing.Any):The new location + origin(typing.Any):Relative to where? + +Returns: + + ULARGE_INTEGER + + """ + pass + + + def SetSize(self,newSize:'ULARGE_INTEGER') -> 'None': + """ + Changes the size of the stream object. + +Args: + + newSize(ULARGE_INTEGER):The new size + +Returns: + + None + + """ + pass + + + def CopyTo(self,stream:'PyIStream',cb:'ULARGE_INTEGER') -> 'ULARGE_INTEGER': + """ + Copies a specified number of bytes from the current seek pointer in the + +stream to the current seek pointer in another stream. + +Args: + + stream(PyIStream):The stream to write to. + cb(ULARGE_INTEGER):The number of bytes to write.Return ValueThe return value is the number of bytes actually written. + +Returns: + + ULARGE_INTEGER:The number of bytes to write.Return ValueThe return value is the number of bytes actually written. + + + """ + pass + + + def Commit(self,flags:'typing.Any') -> 'None': + """ + Ensures that any changes made to a stream object open in transacted mode are reflected in + +the parent storage. + +Args: + + flags(typing.Any):Controls how changes are performed. + +Returns: + + None + + """ + pass + + + def Revert(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def LockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'typing.Any') -> 'None': + """ + Restricts access to a specified range of bytes in the stream. + +Args: + + offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. + cb(ULARGE_INTEGER):The number of bytes to restrict. + lockType(typing.Any):Restrictions requested. + +Returns: + + None + + """ + pass + + + def UnLockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'typing.Any') -> 'None': + """ + None + +Args: + + offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. + cb(ULARGE_INTEGER):The number of bytes to restrict. + lockType(typing.Any):Restrictions requested. + +Returns: + + None + + """ + pass + + + def Clone(self,) -> 'PyIStream': + """ + Creates a new stream object with its own seek pointer that references the + +same bytes as the original stream. + +Args: + + + +Returns: + + PyIStream + + """ + pass + + + def Stat(self,grfStatFlag:'typing.Any'=0) -> 'STATSTG': + """ + Returns information about the stream + +Args: + + grfStatFlag(typing.Any):Flags. + +Returns: + + STATSTG + + """ + pass + + +class PyITask(object): + """Python object that encapsulates the ITask interface, inherits all the methods of PyIScheduledWorkItem""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetApplicationName(self,ApplicationName:'typing.Any') -> 'None': + """ + Specify which program the task will run + +Args: + + ApplicationName(typing.Any):Program to execute + +Returns: + + None + + """ + pass + + + def GetApplicationName(self,) -> 'typing.Any': + """ + Retrieve name of program that task will run + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetParameters(self,Parameters:'typing.Any') -> 'None': + """ + Sets command line parameters + +Args: + + Parameters(typing.Any):String containing command line parameters + +Returns: + + None + + """ + pass + + + def GetParameters(self,) -> 'typing.Any': + """ + Returns command line parameters for task + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetWorkingDirectory(self,WorkingDirectory:'typing.Any') -> 'None': + """ + Sets initial working directory for task + +Args: + + WorkingDirectory(typing.Any):Initial working directory + +Returns: + + None + + """ + pass + + + def GetWorkingDirectory(self,) -> 'typing.Any': + """ + Return working directory that the task will start out in + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetPriority(self,Priority:'typing.Any') -> 'None': + """ + Sets priority for task + +Args: + + Priority(typing.Any):One of REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS + +Returns: + + None + + """ + pass + + + def GetPriority(self,) -> 'typing.Any': + """ + Gets priority that will be assigned to process when task starts + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetTaskFlags(self,dwFlags:'typing.Any') -> 'None': + """ + Sets flag for task. + +Args: + + dwFlags(typing.Any):None currently defined + +Returns: + + None + + """ + pass + + + def GetTaskFlags(self,) -> 'typing.Any': + """ + Retrieve task flags (None currently defined) + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetMaxRunTime(self,MaxRunTimeMS:'typing.Any') -> 'None': + """ + Sets maximun run time for task, use -1 to disable + +Args: + + MaxRunTimeMS(typing.Any):Specified in milliseconds (use -1 to disable, not 0) + +Returns: + + None + + """ + pass + + + def GetMaxRunTime(self,) -> 'typing.Any': + """ + Returns maximun run time for task + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyITaskScheduler(object): + """Interface to the Windows Task Scheduler""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetTargetComputer(self,Computer:'typing.Any') -> 'None': + """ + Connect to another machine to manage its tasks + +Args: + + Computer(typing.Any):Name of system to connect toCommentsLeading backslashes are required. Call will succeed without them, but no other methods will work. + +Returns: + + None + + """ + pass + + + def GetTargetComputer(self,) -> 'typing.Any': + """ + Returns name of computer that the Task Scheduler is + +connected to + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Enum(self,) -> 'typing.Tuple[str, ...]': + """ + Retrieve list of task names + +Args: + + + +Returns: + + typing.Tuple[str, ...] + + """ + pass + + + def Activate(self,Name:'typing.Any',riid:'PyIID') -> 'PyITask': + """ + Opens the specified task and returns an ITask interface for it + +Args: + + Name(typing.Any):Name of task to retreive + riid(PyIID):IID to return, currently only IID_ITask accepted + +Returns: + + PyITask + + """ + pass + + + def Delete(self,TaskName:'typing.Any') -> 'None': + """ + Delete task by name + +Args: + + TaskName(typing.Any):Name of task to delete + +Returns: + + None + + """ + pass + + + def NewWorkItem(self,TaskName:'typing.Any',rclsid:'PyIID',riid:'PyIID') -> 'PyITask': + """ + Creates a new task + +Args: + + TaskName(typing.Any):Name of new task + rclsid(PyIID):Class id of work item, currently only CLSID_CTask (defaults if not passed in) + riid(PyIID):Interface IID to return, currently only IID_ITask (defaults if not passed in) + +Returns: + + PyITask + + """ + pass + + + def AddWorkItem(self,TaskName:'typing.Any',WorkItem:'PyITask') -> 'None': + """ + Create a new scheduled task from PyITask object + +Args: + + TaskName(typing.Any):Name of task to be created + WorkItem(PyITask):Existing PyITask objectCommentsThe PyItask passed in is modified in place and on success is associated with the new task, not the old one + +Returns: + + None + + """ + pass + + + def IsOfType(self,Name:'typing.Any',riid:'PyIID') -> 'None': + """ + Check if named object supports specified interface + +Args: + + Name(typing.Any):Name of object + riid(PyIID):Named object is checked that it supports the interface of this IID + +Returns: + + None + + """ + pass + + +class PyITaskTrigger(object): + """Python object that encapsulates the ITaskTrigger interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetTrigger(self,Trigger:'PyTASK_TRIGGER') -> 'None': + """ + Set trigger parameters from a PyTASK_TRIGGER object + +Args: + + Trigger(PyTASK_TRIGGER):Python object representing a TASK_TRIGGER struct + +Returns: + + None + + """ + pass + + + def GetTrigger(self,) -> 'PyTASK_TRIGGER': + """ + Retrieves trigger parms as a PyTASK_TRIGGER object + +Args: + + + +Returns: + + PyTASK_TRIGGER + + """ + pass + + + def GetTriggerString(self,) -> 'str': + """ + Build text summary of trigger + +Args: + + + +Returns: + + str + + """ + pass + + +class PyITaskbarList(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def HrInit(self,) -> 'None': + """ + Intializes the interface before use + +Args: + + + +Returns: + + None + + """ + pass + + + def AddTab(self,hwnd:'int') -> 'None': + """ + Places a window on the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def DeleteTab(self,hwnd:'int') -> 'None': + """ + Removes a window from the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def ActivateTab(self,hwnd:'int') -> 'None': + """ + Marks a window as the active tab on the taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + + def SetActiveAlt(self,hwnd:'int') -> 'None': + """ + Sets the window as the active tab, without displaying it as pressed on the + +taskbar + +Args: + + hwnd(int):Handle to window, should have WS_CAPTION style + +Returns: + + None + + """ + pass + + +class PyITransferAdviseSink(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def UpdateProgress(self,SizeCurrent:'typing.Any',SizeTotal:'typing.Any',FilesCurrent:'typing.Any',FilesTotal:'typing.Any',FoldersCurrent:'typing.Any',FoldersTotal:'typing.Any') -> 'None': + """ + Gives an estimate of amount of work completed + +Args: + + SizeCurrent(typing.Any):Bytes transferred so far + SizeTotal(typing.Any):Total number of bytes + FilesCurrent(typing.Any):Number of files processed already + FilesTotal(typing.Any):Total number of files + FoldersCurrent(typing.Any):Number of folders processed already + FoldersTotal(typing.Any):Total number of folder + +Returns: + + None + + """ + pass + + + def UpdateTransferState(self,State:'typing.Any') -> 'None': + """ + Notifies client of current operation state + +Args: + + State(typing.Any):A TRANSFER_ADVISE_STATE value (shellcon.TS_*) + +Returns: + + None + + """ + pass + + + def ConfirmOverwrite(self,Source:'PyIShellItem',DestParent:'PyIShellItem',Name:'typing.Any') -> 'typing.Any': + """ + Asks user for permission to overwrite an existing item + +Args: + + Source(PyIShellItem):The item that will replace existing item + DestParent(PyIShellItem):Folder into which item will be placed + Name(typing.Any):New name for item, or None if item is to keep original name + +Returns: + + typing.Any + + """ + pass + + + def ConfirmEncryptionLoss(self,Source:'PyIShellItem') -> 'typing.Any': + """ + Notifies user when an item can't be encrypted at + +destination + +Args: + + Source(PyIShellItem):Item that failed to be encrypted + +Returns: + + typing.Any + + """ + pass + + + def FileFailure(self,Item:'PyIShellItem',ItemName:'typing.Any',Error:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Notifies user of failure, and queries how to proceed + +Args: + + Item(PyIShellItem):The shell item that caused the failure + ItemName(typing.Any):Name of item if different than above, can be None + Error(typing.Any):HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure + +Returns: + + typing.Tuple[typing.Any, typing.Any]:HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure + + + """ + pass + + + def SubStreamFailure(self,Item:'PyIShellItem',StreamName:'typing.Any',Error:'typing.Any') -> 'typing.Any': + """ + Notifies user of failure on a substream, and queries how to + +proceed + +Args: + + Item(PyIShellItem):The item whose stream couldn't be created + StreamName(typing.Any):Name of the failed stream + Error(typing.Any):HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled + +Returns: + + typing.Any:HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled + + + """ + pass + + + def PropertyFailure(self,Item:'PyIShellItem',key:'PyPROPERTYKEY',Error:'typing.Any') -> 'typing.Any': + """ + Notifies user of failure to set an item's properties + +Args: + + Item(PyIShellItem):The item whose property could not be set + key(PyPROPERTYKEY):Identifies the property that caused the error, or None if all properties failed + Error(typing.Any):HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or COPYENGINE_E_USERCANCELLED to cancel pending operations + +Returns: + + typing.Any:HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or + +COPYENGINE_E_USERCANCELLED to cancel pending operations + + + """ + pass + + +class PyITransferDestination(object): + """Implemented by shell extensions that act as targets for item copy or move operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'PyITransferAdviseSink') -> 'typing.Any': + """ + Connects an advise sink + +Args: + + Sink(PyITransferAdviseSink):Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise + +Returns: + + typing.Any:Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise + + + """ + pass + + + def Unadvise(self,Cookie:'typing.Any') -> 'None': + """ + Disconnects an advise sink + +Args: + + Cookie(typing.Any):Connection identifier as returned by PyITransferDestination::Advise + +Returns: + + None + + """ + pass + + + def CreateItem(self,Name:'typing.Any',Attributes:'typing.Any',Size:'typing.Any',Flags:'typing.Any',riidItem:'PyIID',riidResources:'PyIID') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Requests that a new item be created + +Args: + + Name(typing.Any):Filename to be created + Attributes(typing.Any):File attributes + Size(typing.Any):Size of file + Flags(typing.Any):Combination of shellcon.TSF_* flags + riidItem(PyIID):Item interface to return + riidResources(PyIID):Resource interface to returnReturn ValueReturns the HRESULT and requested interfaces. Interfaces may be None if function returns one of the informational codes (shellcon.COPYENGINE_S_*) + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:Resource interface to return +Return ValueReturns the HRESULT and requested interfaces. Interfaces may be None if + +function returns one of the informational codes (shellcon.COPYENGINE_S_*) + + + """ + pass + + +class PyITransferMediumItem(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyITransferSource(object): + """Implemented by shell folders that can act as the source of shell item operations""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Advise(self,Sink:'PyITransferAdviseSink') -> 'typing.Any': + """ + Connects an advise sink to receive notifications + +Args: + + Sink(PyITransferAdviseSink):Event sink to respond to notifications + +Returns: + + typing.Any + + """ + pass + + + def Unadvise(self,Cookie:'typing.Any') -> 'None': + """ + Disconnects an event sink + +Args: + + Cookie(typing.Any):Connection id as returned by PyITransferSource::Advise + +Returns: + + None + + """ + pass + + + def SetProperties(self,proparray:'PyIPropertyChangeArray') -> 'None': + """ + Specifies changes to be applied to items' properties + +Args: + + proparray(PyIPropertyChangeArray):Property changes to be applied by PyITransferSource::ApplyPropertiesToItem + +Returns: + + None + + """ + pass + + + def OpenItem(self,Item:'PyIShellItem',flags:'typing.Any',riid:'PyIID') -> 'typing.Tuple[typing.Any, PyIShellItemResources]': + """ + Initiates the copying of an item + +Args: + + Item(PyIShellItem):The item to be copied. + flags(typing.Any):Combination of shellcon.TSF_* flags + riid(PyIID):The interface to return + +Returns: + + typing.Tuple[typing.Any, PyIShellItemResources] + + """ + pass + + + def MoveItem(self,Item:'PyIShellItem',ParentDst:'PyIShellItem',NameDst:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': + """ + Moves a shell item into another folder + +Args: + + Item(PyIShellItem):Item to be moved + ParentDst(PyIShellItem):The folder into which it will be moved + NameDst(typing.Any):New name for item after move, None to keep same name + flags(typing.Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions of expected actions for specific error codes. + +Returns: + + typing.Tuple[typing.Any, PyIShellItem]:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None + +when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions + +of expected actions for specific error codes. + + + """ + pass + + + def RecycleItem(self,Source:'PyIShellItem',ParentDest:'PyIShellItem',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': + """ + Moves an item to the recycle bin + +Args: + + Source(PyIShellItem):The item to be recycled + ParentDest(PyIShellItem):Shell item representing the recycle bin + flags(typing.Any):Combination of shellcon.TSF_* flags + +Returns: + + typing.Tuple[typing.Any, PyIShellItem] + + """ + pass + + + def RemoveItem(self,Source:'PyIShellItem',flags:'typing.Any') -> 'typing.Any': + """ + Deletes an item without recycling + +Args: + + Source(PyIShellItem):The item to be deleted + flags(typing.Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation + +Returns: + + typing.Any:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation + + + """ + pass + + + def RenameItem(self,Source:'PyIShellItem',NewName:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': + """ + Renames a shell item + +Args: + + Source(PyIShellItem):Item to be renamed + NewName(typing.Any):The name to be given to the item + flags(typing.Any):Combination of shellcon.TSF_* flags + +Returns: + + typing.Tuple[typing.Any, PyIShellItem] + + """ + pass + + + def LinkItem(self,Source:'PyIShellItem',ParentDest:'PyIShellItem',NewName:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': + """ + Not implemented, according to MSDN + +Args: + + Source(PyIShellItem):Description for psiSource + ParentDest(PyIShellItem):Description for psiParentDest + NewName(typing.Any):Description for NewName + flags(typing.Any):Combination of shellcon.TSF_* flags + +Returns: + + typing.Tuple[typing.Any, PyIShellItem] + + """ + pass + + + def ApplyPropertiesToItem(self,Source:'PyIShellItem') -> 'PyIShellItem': + """ + None + +Args: + + Source(PyIShellItem):Item whose properties are to be changed + +Returns: + + PyIShellItem + + """ + pass + + + def GetDefaultDestinationName(self,Source:'PyIShellItem',ParentDest:'PyIShellItem') -> 'typing.Any': + """ + Determines the name of an item as it would appear in a + +given folder + +Args: + + Source(PyIShellItem):The item whose name is wanted + ParentDest(PyIShellItem):The destination folder + +Returns: + + typing.Any + + """ + pass + + + def EnterFolder(self,ChildFolderDest:'PyIShellItem') -> 'typing.Any': + """ + Informs the copy engine that a folder will be the target of a file + +operation + +Args: + + ChildFolderDest(PyIShellItem):The destination folder for the operation + +Returns: + + typing.Any + + """ + pass + + + def LeaveFolder(self,ChildFolderDest:'PyIShellItem') -> 'typing.Any': + """ + Informs the copy engine that the operation on a destination folder is + +finished + +Args: + + ChildFolderDest(PyIShellItem):Destination folder + +Returns: + + typing.Any + + """ + pass + + +class PyITypeComp(object): + """An object that implements the ITypeComp interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Bind(self,szName:'str',wflags:'typing.Any'=0) -> 'typing.Any': + """ + binds to a variable/type + +Args: + + szName(str):The name to bind to + wflags(typing.Any):the bind flags + +Returns: + + typing.Any + + """ + pass + + + def BindType(self,szName:'str') -> 'typing.Any': + """ + binds to a type + +Args: + + szName(str):The name to bind to + +Returns: + + typing.Any + + """ + pass + + +class PyITypeInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetContainingTypeLib(self,) -> 'typing.Tuple[PyITypeLib, typing.Any]': + """ + Retrieves the containing type library and the index of + +the type description within that type library. + +Args: + + + +Returns: + + typing.Tuple[PyITypeLib, typing.Any] + + """ + pass + + + def GetDocumentation(self,memberId:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the documentation string, + +the complete Help file name and path, and the context ID for the Help topic for a specified type description. + +Args: + + memberId(typing.Any): + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetFuncDesc(self,memberId:'typing.Any') -> 'FUNCDESC': + """ + None + +Args: + + memberId(typing.Any): + +Returns: + + FUNCDESC + + """ + pass + + + def GetImplTypeFlags(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or + +base interface in a type description. + +Args: + + index(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def GetIDsOfNames(self,) -> 'typing.Any': + """ + Maps between member names and member IDs, and parameter names and parameter + +IDs. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNames(self,memberId:'typing.Any') -> 'typing.Any': + """ + Retrieves the variable with the specified member ID (or the name of + +the property or method and its parameters) that correspond to the specified function ID. + +Args: + + memberId(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def GetTypeAttr(self,) -> 'TYPEATTR': + """ + None + +Args: + + + +Returns: + + TYPEATTR + + """ + pass + + + def GetRefTypeInfo(self,hRefType:'typing.Any') -> 'PyITypeInfo': + """ + If a type description references other type descriptions, it + +retrieves the referenced type descriptions. + +Args: + + hRefType(typing.Any): + +Returns: + + PyITypeInfo + + """ + pass + + + def GetRefTypeOfImplType(self,hRefType:'typing.Any') -> 'typing.Any': + """ + Retrieves the type description of the implemented interface types. + +Args: + + hRefType(typing.Any):CommentsIf a type description describes a COM class, it retrieves the type description of the implemented interface types. For an interface, GetRefTypeOfImplType returns the type information for inherited interfaces, if any exist. + +Returns: + + typing.Any + + """ + pass + + + def GetVarDesc(self,memberId:'typing.Any') -> 'VARDESC': + """ + None + +Args: + + memberId(typing.Any): + +Returns: + + VARDESC + + """ + pass + + + def GetTypeComp(self,) -> 'PyITypeComp': + """ + None + +Args: + + + +Returns: + + PyITypeComp + + """ + pass + + +class PyITypeLib(object): + """An object that implements the ITypeLib interface.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDocumentation(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves documentation information about the library. + +Args: + + index(typing.Any):The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) + +Returns: + + typing.Any:The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) + + + """ + pass + + + def GetLibAttr(self,) -> 'TLIBATTR': + """ + Retrieves the libraries attributes + +Args: + + + +Returns: + + TLIBATTR + + """ + pass + + + def GetTypeComp(self,) -> 'PyITypeComp': + """ + None + +Args: + + + +Returns: + + PyITypeComp + + """ + pass + + + def GetTypeInfo(self,index:'typing.Any') -> 'PyITypeInfo': + """ + Retrieves the specified type description in the library. + +Args: + + index(typing.Any):The index of the type description within the library + +Returns: + + PyITypeInfo + + """ + pass + + + def GetTypeInfoCount(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTypeInfoOfGuid(self,iid:'PyIID') -> 'PyITypeInfo': + """ + Retrieves the type info of the specified GUID. + +Args: + + iid(PyIID):GUID of the type description. + +Returns: + + PyITypeInfo + + """ + pass + + + def GetTypeInfoType(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves the type of a type description. + +Args: + + index(typing.Any):The index of the type description within the library + +Returns: + + typing.Any + + """ + pass + + +class PyIUniformResourceLocator(object): + """Interface to an internet shortcut""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetURL(self,) -> 'typing.Any': + """ + Returns the URL for the shortcut + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetURL(self,URL:'typing.Any',InFlags:'typing.Any'=0) -> 'None': + """ + Sets the URL for the shortcut + +Args: + + URL(typing.Any):The url to be set + InFlags(typing.Any):One of the shellcon.IURL_SETURL* flags + +Returns: + + None + + """ + pass + + + def InvokeCommand(self,Verb:'typing.Any',Flags:'typing.Any'=0,hwndParent:'int'=0) -> 'typing.Any': + """ + Performs one of the object's predefined actions + +Args: + + Verb(typing.Any):The verb to be invoked + Flags(typing.Any):Combination of shellcon.IURL_INVOKECOMMAND_* flags + hwndParent(int):Handle to parent window + +Returns: + + typing.Any + + """ + pass + + +class PyIUnknown(object): + """The base object for all PythonCOM objects. Wraps a COM IUnknown object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def QueryInterface(self,iid:'typing.Any',useIID:'typing.Any'=None) -> 'PyIUnknown': + """ + Queries an object for a specific interface. + +Args: + + iid(typing.Any):The IID requested. + useIID(typing.Any):If provided and not None, will return an interface for the specified IID if (and only if) a native interface can not be supported. If the interface specified by iid is natively supported, this option is ignored.CommentsThe useIID parameter is a very dangerous option, and should only be used when you are sure you need it! By specifying this parameter, you are telling the COM framework that regardless of the true type of the result (as specified by iid), a Python wrapper of type useIID will be created. If iid does not derive from useIID, then it is almost certain that using the object will cause an Access Violation. For example, this option can be used to obtain a PyIUnknown object if pythoncom does not natively support the interface. Another example might be to return an unsupported persistence interface as a PyIPersist instance. For backwards compatibility: the integer 0 implies None, and the integer 1 implies IID_IUnknown.Return ValueThe result is always an object derived from PyIUnknown. Any error (including E_NOINTERFACE) will generate a com_error exception. + +Returns: + + PyIUnknown:If provided and not None, will return an + +interface for the specified IID if (and only if) a native interface can not be supported. + +If the interface specified by iid is natively supported, this option is ignored. +Comments + +The useIID parameter is a very dangerous option, and should only + +be used when you are sure you need it! + +By specifying this parameter, you are telling the COM framework that regardless + +of the true type of the result (as specified by iid), a Python wrapper + +of type useIID will be created. If iid does not derive from useIID, + +then it is almost certain that using the object will cause an Access Violation. + +For example, this option can be used to obtain a PyIUnknown object if + +pythoncom does not natively support the interface. + +Another example might be to return an unsupported persistence interface as a + +PyIPersist instance. + +For backwards compatibility: the integer 0 implies None, and the + +integer 1 implies IID_IUnknown. +Return ValueThe result is always an object derived from PyIUnknown. + +Any error (including E_NOINTERFACE) will generate a com_error exception. + + + """ + pass + + +class PyIViewObject(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Draw(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any',hdcTargetDev:'typing.Any',hdcDraw:'typing.Any',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',funcContinue:'typing.Any',obContinue:'typing.Any') -> 'None': + """ + Description of Draw. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + lindex(typing.Any):Description for lindex + aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + hdcTargetDev(typing.Any):Description for hdcTargetDev + hdcDraw(typing.Any):Description for hdcDraw + arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Bounds rectangle. + arg1(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):WBounds rectangle. + funcContinue(typing.Any):A continue function. + obContinue(typing.Any):Value passed to the function. + +Returns: + + None + + """ + pass + + + def GetColorSet(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any',hicTargetDev:'typing.Any') -> 'None': + """ + Description of GetColorSet. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + lindex(typing.Any):Description for lindex + aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + hicTargetDev(typing.Any):Description for hicTargetDev + +Returns: + + None + + """ + pass + + + def Freeze(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any') -> 'None': + """ + Description of Freeze. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + lindex(typing.Any):Description for lindex + aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. + +Returns: + + None + + """ + pass + + + def Unfreeze(self,dwFreeze:'typing.Any') -> 'None': + """ + Description of Unfreeze. + +Args: + + dwFreeze(typing.Any):Description for dwFreeze + +Returns: + + None + + """ + pass + + + def SetAdvise(self,aspects:'typing.Any',advf:'typing.Any',pAdvSink:'typing.Any') -> 'None': + """ + Description of SetAdvise. + +Args: + + aspects(typing.Any):Description for aspects + advf(typing.Any):Description for advf + pAdvSink(typing.Any):Description for pAdvSink + +Returns: + + None + + """ + pass + + + def GetAdvise(self,) -> 'None': + """ + Description of GetAdvise. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyIViewObject2(object): + """Description of the interface""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetExtent(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',targetDevice:'typing.Any') -> 'None': + """ + Description of GetExtent. + +Args: + + dwDrawAspect(typing.Any):Description for dwDrawAspect + lindex(typing.Any):Description for lindex + targetDevice(typing.Any):Description for lindex + +Returns: + + None + + """ + pass + + +class PyMAPINAMEIDArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyOLEMENUGROUPWIDTHS(object): + """Tuple containing 6 ints indicating nbr of options in each menu group""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROPERTYKEY(object): + """A tuple of a fmtid and property id (IID, int) that uniquely identifies a property""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyPROPVARIANT(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def vt(self)->'typing.Any': + """The variant type, a combination of VARENUM values including flags. (read only)MethodsGetValueReturns an object representing the variant value ToStringReturns the value as a string ChangeTypeCoerce to a different variant type """ + pass + + + def GetValue(self,) -> 'typing.Any': + """ + Returns an object representing the variant value + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def ToString(self,) -> 'typing.Any': + """ + Returns the value as a string + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def ChangeType(self,Type:'typing.Any',Flags:'typing.Any'=0) -> 'PyPROPVARIANT': + """ + Coerce to a different variant type + +Args: + + Type(typing.Any):New variant type, combination of pythoncom.VT_* values + Flags(typing.Any):Reserved (PROPVAR_CHANGE_FLAGS)Win32 API References + +Returns: + + PyPROPVARIANT + + """ + pass + + +class PySAndRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySBinaryArray(object): + """A sequence of strings containing binary data.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySBitMaskRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySContentRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySExistRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySHELL_ITEM_RESOURCE(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySNotRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySOrRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropTagArray(object): + """A sequence of integers""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropValue(object): + """A MAPI property value. Property values can either be passed from + +python into MAPI functions, or returned from MAPI functions to Python.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropValueArray(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySPropertyRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRestriction(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRow(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySRowSet(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySSortOrderItem(object): + """An item in a SortOrderSet.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySSortOrderSet(object): + """An object describing a SortOrderSet.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PySTGMEDIUM(object): + """A STGMEDIUM object represents a COM STGMEDIUM structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def tymed(self)->'typing.Any': + """An integer indicating the type of data in the stgmedium""" + pass + + + @property + def data(self)->'typing.Any': + """The data in the stgmedium. The result depends on the value of the 'tymed' property of the PySTGMEDIUM object.tymedResult TypeTYMED_GDIAn integer GDI handleTYMED_MFPICTAn integer METAFILE handleTYMED_ENHMFAn integer ENHMETAFILE handleTYMED_HGLOBALA string with the bytes of the global memory object.TYMED_FILEA string/unicode filenameTYMED_ISTREAMA PyIStream objectTYMED_ISTORAGEA PyIStorage object""" + pass + + + @property + def data_handle(self)->'typing.Any': + """The raw 'integer' representation of the data. For TYMED_HGLOBAL, this is the handle rather than the string data. For the string and interface types, this is an integer holding the pointer.""" + pass + + + def set(self,tymed:'typing.Any',data:'typing.Any') -> 'None': + """ + Sets the type and data of the object. + +Args: + + tymed(typing.Any):The type of the data + data(typing.Any): + +Returns: + + None + + """ + pass + + +class PyTASK_TRIGGER(object): + """Python object representing a TASK_TRIGGER structure via the structmember Api""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class RTF_WCSINFO(object): + """A tuple representing a RTF_WCSINFO structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SHFILEINFO(object): + """A tuple representing a SHFILEINFO structure + +Represented as a tuple of (hIcon, iIcon, dwAttributes, displayName, typeName)""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SHFILEOPSTRUCT(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_ACCESS(object): + """Tuple of 4 items representing SI_ACCESS struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_INHERIT_TYPE(object): + """Tuple of 3 items describing a method of inheritance""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class SI_OBJECT_INFO(object): + """Six-tuple representing SI_OBJECT_INFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class STATSTG(object): + """A tuple representing a STATSTG structure""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TLIBATTR(object): + """Type library attributes are represented as a tuple of:""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TYPEATTR(object): + """A TYPEATTR object represents a COM TYPEATTR structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def iid(self)->'PyIID': + """The IID""" + pass + + + @property + def lcid(self)->'typing.Any': + """The lcid""" + pass + + + @property + def memidConstructor(self)->'typing.Any': + """ID of constructor""" + pass + + + @property + def memidDestructor(self)->'typing.Any': + """ID of destructor""" + pass + + + @property + def cbSizeInstance(self)->'typing.Any': + """The size of an instance of this type""" + pass + + + @property + def typekind(self)->'typing.Any': + """The kind of type this information describes. One of the win32con.TKIND_* constants.""" + pass + + + @property + def cFuncs(self)->'typing.Any': + """Number of functions.""" + pass + + + @property + def cVars(self)->'typing.Any': + """Number of variables/data members.""" + pass + + + @property + def cImplTypes(self)->'typing.Any': + """Number of implemented interfaces.""" + pass + + + @property + def cbSizeVft(self)->'typing.Any': + """The size of this type's VTBL""" + pass + + + @property + def cbAlignment(self)->'typing.Any': + """Byte alignment for an instance of this type.""" + pass + + + @property + def wTypeFlags(self)->'typing.Any': + """One of the pythoncom TYPEFLAG_""" + pass + + + @property + def wMajorVerNum(self)->'typing.Any': + """Major version number.""" + pass + + + @property + def wMinorVerNum(self)->'typing.Any': + """Minor version number.""" + pass + + + @property + def tdescAlias(self)->'TYPEDESC': + """If TypeKind == pythoncom.TKIND_ALIAS, specifies the type for which this type is an alias.""" + pass + + + @property + def idldeskType(self)->'IDLDESC': + """IDL attributes of the described type.""" + pass + + +class TYPEDESC(object): + """A typedesc is a complicated, recursive object, + +It may be either a simple Python type, or a tuple of (indirectType, object), where object + +may be a simple Python type, or a tuple of etc ...""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class VARDESC(object): + """A VARDESC object represents a COM VARDESC structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def memid(self)->'typing.Any': + """The dispid of the member""" + pass + + + @property + def value(self)->'typing.Union[typing.Any]': + """A value for the variant. If PERINSTANCE then an offset into the instance, otherwise a variant converted to a Python object.""" + pass + + + @property + def elemdescVar(self)->'ELEMDESC': + """Object describing the member.""" + pass + + + @property + def varFlags(self)->'typing.Any': + """Variable flags""" + pass + + + @property + def varkind(self)->'typing.Any': + """Kind flags.""" + pass + + +class CHARFORMAT(object): + """Describes a CHARFORMAT tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class CREATESTRUCT(object): + """A representation of a Windows CREATESTRUCT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LV_COLUMN(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class LV_ITEM(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PARAFORMAT(object): + """Describes a PARAFORMAT tuple""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyAssocCObject(object): + """An internal class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyAssocObject(object): + """An internal class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AttachObject(self,) -> 'None': + """ + Attaches a Python object for lookup of "virtual" functions. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAttachedObject(self,) -> 'typing.Any': + """ + Returned the attached Python object, or None. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCBitmap(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateCompatibleBitmap(self,dc:'PyCDC',width:'typing.Any',height:'typing.Any') -> 'None': + """ + Creates a bitmap compatible with the specified device context. + +Args: + + dc(PyCDC):Specifies the device context. + width(typing.Any):The width (in bits) of the bitmap + height(typing.Any):The height (in bits) of the bitmap. + +Returns: + + None + + """ + pass + + + def GetSize(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the size of the bitmap object. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetHandle(self,) -> 'typing.Any': + """ + Returns the HBITMAP for a bitmap object + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LoadBitmap(self,idRes:'typing.Any',obDLL:'PyDLL'=None) -> 'None': + """ + Loads a bitmap from a DLL object. + +Args: + + idRes(typing.Any):The resource ID of the bitmap + obDLL(PyDLL):The DLL object to load from. + +Returns: + + None + + """ + pass + + + def LoadBitmapFile(self,fileObject:'typing.Any') -> 'None': + """ + Loads a bitmap (.BMP) format + +from a file object. + +Args: + + fileObject(typing.Any):The file object to load the .BMP format file from. + +Returns: + + None + + """ + pass + + + def LoadPPMFile(self,fileObject:'typing.Any',cols:'typing.Any',rows:'typing.Any') -> 'None': + """ + Loads a bitmap in Portable Pix Map (PPM) format + +from a file object. + +Args: + + fileObject(typing.Any):The file object to load the PPM format file from. + cols(typing.Any):The number of columns in the bitmap. + rows(typing.Any):The number of rows in the bitmap. + +Returns: + + None + + """ + pass + + + def Paint(self,dcObject:'PyCDC',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Paint a bitmap. + +Args: + + dcObject(PyCDC):The DC object to paint the bitmap to. + arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The destination rectangle to paint to. + arg1(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The source rectangle to paint from. + +Returns: + + None + + """ + pass + + + def GetInfo(self,) -> 'typing.Any': + """ + Returns the BITMAP structure info + +Args: + + + +Returns: + + typing.Any:PyCBitmap.GetInfo + +dict = GetInfo()Returns the BITMAP structure info +Return ValueA dictionary of integers, keyed by the following strings: + +bmType + +bmWidth + +bmHeight + +bmWidthBytes + +bmPlanes + +bmBitsPixel + + + """ + pass + + + def GetBitmapBits(self,asString:'typing.Any'=0) -> 'typing.Union[str, typing.Any]': + """ + Returns the bitmap bits. + +Args: + + asString(typing.Any):If False, the result is a tuple of integers, if True, the result is a Python string + +Returns: + + typing.Union[str, typing.Any] + + """ + pass + + + def SaveBitmapFile(self,dcObject:'PyCDC',Filename:'str') -> 'typing.Any': + """ + Saves a bitmap to a file. + +Args: + + dcObject(PyCDC):The DC object that has rendered the bitmap. + Filename(str):The file to save the bitmap to + +Returns: + + typing.Any + + """ + pass + + +class PyCBrush(object): + """An object encapsulating an MFC PyCBrush class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateSolidBrush(self,) -> 'None': + """ + Initializes a brush with a specified solid color. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSafeHandle(self,) -> 'typing.Any': + """ + Retrieves the HBRUSH for the brush as an integer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCButton(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,caption:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the window for a new button object. + +Args: + + caption(str):The caption (text) for the button. + style(typing.Any):The style for the button. Use any of the win32con.BS_* constants. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the button. + parent(PyCWnd):The parent window of the button. Usually a PyCDialog. + _id(typing.Any):The buttons control ID. + +Returns: + + None + + """ + pass + + + def GetBitmap(self,) -> 'typing.Any': + """ + Get the button's bitmap + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetBitmap(self,hBitmap:'typing.Any'=1) -> 'typing.Any': + """ + Set the button's bitmap + +Args: + + hBitmap(typing.Any):Handle of the new bitmap + +Returns: + + typing.Any + + """ + pass + + + def GetCheck(self,) -> 'typing.Any': + """ + Retrieves the check state of a radio button or check box. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetCheck(self,idCheck:'typing.Any') -> 'None': + """ + Sets or resets the state of a radio button or check box. + +Args: + + idCheck(typing.Any):The ID of the button. + +Returns: + + None + + """ + pass + + + def GetState(self,) -> 'typing.Any': + """ + Returns the state of the button. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetState(self,bHighlight:'typing.Any') -> 'typing.Any': + """ + Sets the state of the button. + +Args: + + bHighlight(typing.Any):The new state for the button.CommentsHighlighting affects the exterior of a button control. It has no effect on the check state of a radio button or check box. + +Returns: + + typing.Any + + """ + pass + + + def GetButtonStyle(self,) -> 'typing.Any': + """ + Gets the style of the button. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetButtonStyle(self,style:'typing.Any',bRedraw:'typing.Any'=1) -> 'typing.Any': + """ + Sets the style of the button. + +Args: + + style(typing.Any):The new style for the button. + bRedraw(typing.Any):Should the button be redrawn? + +Returns: + + typing.Any + + """ + pass + + +class PyCCmdTarget(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BeginWaitCursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def EndWaitCursor(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def HookCommand(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': + """ + Hook a windows command handler. + +Args: + + obHandler(typing.Any):The handler for the command message. This must be a callable object. + _id(typing.Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives command notification messages with the specified ID. Command notification messages are usually sent in response to menu or toolbar commands. When updating a user interface element, Pythonwin will first check if a handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone determines the state of the interface object. If no Update handler exists, PythonWin will automatically enable a menu/toolbar item if a command handler exists The handler will be called with 2 arguments * The command id being handled. * The command notification code. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed. This method is best suited to handling messages from user interface elements, such as menus, toolbars, etc. To handle notification messages from a control, you should use PyCCmdTarget::HookNotifyReturn ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID of the command to be handled, or zero to handle all command messages.Comments + +obHandler will be called as the application receives command notification messages with the specified ID. + +Command notification messages are usually sent in response to menu or toolbar commands. + +When updating a user interface element, Pythonwin will first check if a + +handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone + +determines the state of the interface object. If no Update handler exists, + +PythonWin will automatically enable a menu/toolbar item if a command handler exists + +The handler will be called with 2 arguments + +* The command id being handled. + +* The command notification code. + +If the handler returns TRUE, then the command will be passed on to the + +default handler, otherwise the message will be consumed. + +This method is best suited to handling messages from user interface + +elements, such as menus, toolbars, etc. To handle notification messages from a control, + +you should use PyCCmdTarget::HookNotify +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookCommandUpdate(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': + """ + Hook a windows command update handler. + +Args: + + obHandler(typing.Any):The handler for the command message. This must be a callable object. + _id(typing.Any):The ID of the command to be handled.CommentsThe handler object passed will be called as the application updates user interface elements with the specified ID. See PyCCmdTarget::HookCommand for a description of the rules used to determine command routing and updating.Return ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID of the command to be handled.Comments + +The handler object passed will be called as + +the application updates user interface elements + +with the specified ID. + +See PyCCmdTarget::HookCommand for a description + +of the rules used to determine command routing and updating. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookOleEvent(self,) -> 'typing.Any': + """ + Hook an OLE Event. + +Args: + + + +Returns: + + typing.Any:PyCCmdTarget.HookOleEvent + +object = HookOleEvent()Hook an OLE Event. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookNotify(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': + """ + Hook a windows command handler. + +Args: + + obHandler(typing.Any):The handler for the command message. This must be a callable object. + _id(typing.Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives control notification messages. These may also be handled via PyCCmdTarget::HookCommand, but this method is specific to control notifications, and therefore provides more information.The handler will be called with 2 arguments A tuple describing standard notification information. A tuple describing extra notification params, or an integer containing the address of the first byte of the extended information. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed.Certain notification codes are recognised internally, and these are converted to a Python tuple. If the extra information is not recognised, the address is passed. These addresses could be extracted using win32ui::GetBytes and the struct module, or using Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program can install certain knowledge about handlers, but this has not been implemented.)Return ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID of the command to be handled, or zero to handle all command messages.Comments + +obHandler will be called as the application receives control notification messages. + +These may also be handled via PyCCmdTarget::HookCommand, but this method is specific + +to control notifications, and therefore provides more information. + +The handler will be called with 2 arguments + +A tuple describing standard notification information. + +A tuple describing extra notification params, or an integer containing the address of the first byte of the + +extended information. If the handler returns TRUE, then the command will be passed on to the default handler, + +otherwise the message will be consumed. + +Certain notification codes are recognised internally, and these are converted to a Python tuple. + +If the extra information is not recognised, the address is passed. These addresses could be + +extracted using win32ui::GetBytes and the struct module, or using + +Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program + +can install certain knowledge about handlers, but this has not been implemented.) +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def RestoreWaitCursor(self,) -> 'None': + """ + Restores the appropriate hourglass cursor after the system cursor has + +changed. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCCmdUI(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def m_nIndex(self)->'typing.Any': + """""" + pass + + + @property + def m_nID(self)->'typing.Any': + """""" + pass + + + @property + def m_pMenu(self)->'PyCMenu': + """""" + pass + + + @property + def m_pSubMenu(self)->'PyCMenu': + """""" + pass + + + def Enable(self,bEnable:'typing.Any'=1) -> 'None': + """ + Enables or disables the user-interface item for this command. + +Args: + + bEnable(typing.Any):TRUE if the item should be enabled, false otherwise. + +Returns: + + None + + """ + pass + + + def SetCheck(self,state:'typing.Any'=1) -> 'None': + """ + Sets the check state of the user-interface item for this command. + +Args: + + state(typing.Any):0 for unchecked, 1 for checked, or 2 for indeterminate. + +Returns: + + None + + """ + pass + + + def SetRadio(self,bOn:'typing.Any'=1) -> 'None': + """ + Like the SetCheck member function, but operates on radio groups. + +Args: + + bOn(typing.Any):TRUE if the item should be enabled, false otherwise. + +Returns: + + None + + """ + pass + + + def SetText(self,text:'str') -> 'None': + """ + Sets the text for the user-interface item for this command. + +Args: + + text(str):The text for the interface element. + +Returns: + + None + + """ + pass + + + def ContinueRouting(self,) -> 'None': + """ + Tells the command-routing mechanism to continue routing the current message down + +the chain of handlers. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCColorDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetColor(self,) -> 'typing.Any': + """ + Determines the selected color. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def DoModal(self,) -> 'typing.Any': + """ + Displays a dialog and allows the user to make a selection. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSavedCustomColors(self,) -> 'typing.Any': + """ + Returns the saved custom colors. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetCurrentColor(self,color:'typing.Any') -> 'None': + """ + Sets the currently selected color. + +Args: + + color(typing.Any):The color to set.MFC References + +Returns: + + None + + """ + pass + + + def SetCustomColors(self,) -> 'None': + """ + Sets one or more custom colors + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCustomColors(self,) -> 'typing.Tuple[typing.Any, ...]': + """ + Gets the 16 currently defined custom colors + +Args: + + + +Returns: + + typing.Tuple[typing.Any, ...] + + """ + pass + + +class PyCComboBox(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddString(self,_object:'typing.Any') -> 'typing.Any': + """ + Adds a string to a combobox. + +Args: + + _object(typing.Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References + +Returns: + + typing.Any:CComboBox::AddString +Return ValueThe zero based index of the new string. + + + """ + pass + + + def DeleteString(self,pos:'typing.Any') -> 'typing.Any': + """ + Deletes an item from a combobox. + +Args: + + pos(typing.Any):The zero based index of the item to delete.MFC References + +Returns: + + typing.Any:CComboBox::DeleteString +Return ValueThe count of the items remaining in the list. + + + """ + pass + + + def Dir(self,attr:'typing.Any',wild:'str') -> 'typing.Any': + """ + Fills the list portion of a combobox with a directory listing. + +Args: + + attr(typing.Any):The attributes of the files to locate + wild(str):A file specification string - eg, *.*MFC References + +Returns: + + typing.Any:CComboBox::Dir +Return ValueThe index of the last file name added to the list. + + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the count of items in the combobox. + +Args: + + + +Returns: + + typing.Any:CListBox::GetCount +Return ValueReturns the number of items currently in the combobox. + + + """ + pass + + + def GetCurSel(self,) -> 'typing.Any': + """ + Returns the index of the currently selected item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetEditSel(self,) -> 'typing.Any': + """ + Returns the selection of the edit control portion of a combo box. + +Args: + + + +Returns: + + typing.Any:CComboBox::GetEditSel +Return ValueA 32-bit value that contains the starting position in the low-order word and + +the position of the first nonselected character after the end of + +the selection in the high-order word. If this function is used on a combo box + +without an edit control, an exception is raised. + + + """ + pass + + + def GetExtendedUI(self,) -> 'typing.Any': + """ + Indicates if the combo has the extended interface. + +Args: + + + +Returns: + + typing.Any:CComboBox::GetExtendedUI +Return ValueNonzero if the combo box has the extended user interface; otherwise 0. + + + """ + pass + + + def GetItemData(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific object associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetItemValue(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetLBText(self,index:'typing.Any') -> 'str': + """ + Gets the string from the list of a combo box. + +Args: + + index(typing.Any):The index of the item to return the string for.Return ValueThe requested string. If index does not specify a valid index, no exception is raised. + +Returns: + + str:The index of the item to return the string for.Return ValueThe requested string. If index does + +not specify a valid index, no exception is raised. + + + """ + pass + + + def GetLBTextLen(self,index:'typing.Any') -> 'typing.Any': + """ + Returns the length of a string in the list of a combobox. + +Args: + + index(typing.Any):The index of the item to return the length of.MFC References + +Returns: + + typing.Any + + """ + pass + + + def InsertString(self,pos:'typing.Any',_object:'typing.Any') -> 'typing.Any': + """ + Insert a string into a combobox. + +Args: + + pos(typing.Any):The zero based index in the combobox to insert the new string + _object(typing.Any):The object to be added to the comboboxMFC References + +Returns: + + typing.Any:CComboBox::InsertString +Return ValueThe zero based index of the new string added. + + + """ + pass + + + def LimitText(self,_max:'typing.Any') -> 'typing.Any': + """ + Limits the amount of text the edit portion of a combo box can hold. + +Args: + + _max(typing.Any):The maximum number of characters the user can enter. If zero, the size is set to (virtually) unlimited.MFC References + +Returns: + + typing.Any + + """ + pass + + + def ResetContent(self,) -> 'None': + """ + Clear all the items from a combobox. + +Args: + + + +Returns: + + None + + """ + pass + + + def SelectString(self,after:'typing.Any',string:'str') -> 'None': + """ + Searches for a combobox item that matches the specified string, and selects it. + +Args: + + after(typing.Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire combobox. + string(str):The string to search for.MFC References + +Returns: + + None:CComboBoxBox::SelectString +Return ValueThe return value is always None - an exception is raised if the string can not be located. + + + """ + pass + + + def SetCurSel(self,index:'typing.Any') -> 'None': + """ + Selects an item in a combobox. + +Args: + + index(typing.Any):The zero based index of the item to select.MFC References + +Returns: + + None + + """ + pass + + + def SetEditSel(self,start:'typing.Any',end:'typing.Any') -> 'None': + """ + Sets the selection in the edit control portion of a combo box. + +Args: + + start(typing.Any):Specifies the starting position. If the starting position is set to -1, then any existing selection is removed. + end(typing.Any):Specifies the ending position. If the ending position is set to -1, then all text from the starting position to the last character in the edit control is selected.MFC References + +Returns: + + None:PyCComboBox::SetEditSel +Return ValueThe return value is always None - an exception is raised if the combo is a dropdown style, or does not + +have an edit control. + + + """ + pass + + + def SetExtendedUI(self,bExtended:'typing.Any'=1) -> 'None': + """ + Selects the Extended UI mode for a combo box. + +Args: + + bExtended(typing.Any):Indicates if the combo should have the extended user interface.CommentsA combo box with the Extended UI flag set can be identified in the following ways:~ Clicking the static control displays the list box only for combo boxes with the CBS_DROPDOWNLIST style.~ Pressing the DOWN ARROW key displays the list box (F4 is disabled).~ Scrolling in the static control is disabled when the item list is not visible (the arrow keys are disabled).MFC References + +Returns: + + None + + """ + pass + + + def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific object value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + typing.Any + + """ + pass + + + def SetItemValue(self,item:'typing.Any',data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + data(typing.Any):New value for the data. + +Returns: + + typing.Any + + """ + pass + + + def ShowDropDown(self,bShowIt:'typing.Any'=1) -> 'None': + """ + Shows or hides the listbox portion of a combo box. + +Args: + + bShowIt(typing.Any):Indicates if the listbox should be shown or hidden. + +Returns: + + None + + """ + pass + + +class PyCCommonDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCControl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCControlBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def dockSite(self)->'PyCFrameWnd': + """Current dock site, if dockable""" + pass + + + @property + def dockBar(self)->'PyCWnd': + """Current dock bar, if dockable""" + pass + + + @property + def dockContext(self)->'PyCDockContext': + """Used during dragging""" + pass + + + @property + def dwStyle(self)->'typing.Any': + """creation style (used for layout)""" + pass + + + @property + def dwDockStyle(self)->'typing.Any': + """indicates how bar can be docked""" + pass + + + def CalcDynamicLayout(self,length:'typing.Any',dwMode:'typing.Any') -> 'typing.Any': + """ + The framework calls this member function to calculate the dimensions of + +a dynamic toolbar. + +Args: + + length(typing.Any):The requested dimension of the control bar, either horizontal or vertical, depending on dwMode. + dwMode(typing.Any):A combination of flags. + +Returns: + + typing.Any + + """ + pass + + + def CalcFixedLayout(self,bStretch:'typing.Any',bHorz:'typing.Any') -> 'typing.Any': + """ + Calculates the horizontal size of a control bar + +Args: + + bStretch(typing.Any):Indicates whether the bar should be stretched to the size of the frame. The bStretch parameter is nonzero when the bar is not a docking bar (not available for docking) and is 0 when it is docked or floating (available for docking). + bHorz(typing.Any):Indicates that the bar is horizontally or vertically oriented. + +Returns: + + typing.Any + + """ + pass + + + def EnableDocking(self,style:'typing.Any') -> 'None': + """ + pecifies whether the control bar supports docking and the sides of its parent + +window. + +Args: + + style(typing.Any):Enables a control bar to be docked. + +Returns: + + None + + """ + pass + + + def EraseNonClient(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBarStyle(self,) -> 'typing.Any': + """ + Retrieves the control bar style settings. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the number of non-HWND elements in the control bar. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDockingFrame(self,) -> 'PyCFrameWnd': + """ + Returns the frame window to which a control bar is docked. + +Args: + + + +Returns: + + PyCFrameWnd + + """ + pass + + + def IsFloating(self,) -> 'typing.Any': + """ + Returns a nonzero value if the control bar in question is a floating control + +bar. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetBarStyle(self,style:'typing.Any') -> 'None': + """ + Modifies the control bar style settings. + +Args: + + style(typing.Any):The new style + +Returns: + + None + + """ + pass + + + def ShowWindow(self,) -> 'typing.Any': + """ + Shows the toolbar, and recalculates the button layout. + +Args: + + + +Returns: + + typing.Any:PyCControlBar.ShowWindow + +int = ShowWindow()Shows the toolbar, and recalculates the button layout. +Comments + +This method is provided for convenience. For further details, see + +PyCWnd::ShowWindow and PyCFrameWnd::RecalcLayout +Return ValueThe return value is that returned from PyCWnd::ShowWindow + + + """ + pass + + +class PyCCtrlView(object): + """A class which implementes a CCtrlView (ie, a view based on a dialog resource.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCDC(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AbortDoc(self,) -> 'None': + """ + Aborts a print job + +Args: + + + +Returns: + + None + + """ + pass + + + def Arc(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pointStart:'typing.Tuple[typing.Any, typing.Any]',pointEnd:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Draws an eliptical arc. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangle + pointStart(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. + pointEnd(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsThe arc drawn by using the function is a segment of the ellipse defined by the specified bounding rectangle. The actual starting point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified starting point intersects the ellipse. The actual ending point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified ending point intersects the ellipse. The arc is drawn in a counterclockwise direction. Since an arc is not a closed figure, it is not filled. Both the width and height of the rectangle must be greater than 2 units and less than 32,767 units.MFC References + +Returns: + + None:CDC::Arc +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def BeginPath(self,) -> 'None': + """ + Opens a path bracket in the device context + +Args: + + + +Returns: + + None + + """ + pass + + + def BitBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',dc:'PyCDC',srcPos:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': + """ + Copies a bitmap from the source device context to this device context. + +Args: + + destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + dc(PyCDC):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. + srcPos(typing.Tuple[typing.Any, typing.Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. + rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def Chord(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pointStart:'typing.Tuple[typing.Any, typing.Any]',pointEnd:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Draws a chord. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangle + pointStart(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. + pointEnd(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsDraws a chord (a closed figure bounded by the intersection of an ellipse and a line segment). The rect parameter specify the upper-left and lower-right corners, respectively, of a rectangle bounding the ellipse that is part of the chord. The pointStart and pointEnd parameters specify the endpoints of a line that intersects the ellipse. The chord is drawn by using the selected pen and filled by using the selected brush.MFC References + +Returns: + + None:CDC::Chord +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def CreateCompatibleDC(self,dcFrom:'PyCDC'=None) -> 'None': + """ + Creates a memory device context that is compatible with this DC. + +Args: + + dcFrom(PyCDC):The source DC, or None to make a screen compatible DC.CommentsNote that unlike the MFC version, this function calls the global CreateCompatibleDC function and returns a new PyCDC object.MFC References + +Returns: + + None + + """ + pass + + + def CreatePrinterDC(self,printerName:'str'=None) -> 'None': + """ + Creates a device context for a specific printer + +Args: + + printerName(str):The printer name, or None for the default printerMFC References + +Returns: + + None + + """ + pass + + + def DeleteDC(self,) -> 'None': + """ + Deletes all resources associated with a device context. + +Args: + + + +Returns: + + None + + """ + pass + + + def DPtoLP(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Converts device units into logical units. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point to convertAlternative Parameters + x(typing.Any):The x coordinate to convert. + y(typing.Any):The y coordinate to convert.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::DPtoLP + To Do Should really handle list of (x,y) points +Return ValueThe converted coordinates. + + + """ + pass + + + def Draw3dRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',colorTopLeft:'typing.Any',colorBotRight:'typing.Any') -> 'None': + """ + Draws a three-dimensional rectangle. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + colorTopLeft(typing.Any):Specifies the color of the top and left sides of the three-dimensional rectangle. + colorBotRight(typing.Any):Specifies the color of the bottom and right sides of the three-dimensional rectangle.MFC References + +Returns: + + None + + """ + pass + + + def DrawFocusRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Draws a rectangle in the style used to + +indicate the rectangle has focus + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates of the rectangleMFC References + +Returns: + + None + + """ + pass + + + def DrawFrameControl(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',typ:'typing.Any',state:'typing.Any') -> 'None': + """ + Draws a frame control of the specified type and style. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + typ(typing.Any): + state(typing.Any):MFC References + +Returns: + + None + + """ + pass + + + def DrawIcon(self,point:'typing.Tuple[typing.Any, typing.Any]',hIcon:'int') -> 'None': + """ + Draws an icon on the DC. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to draw to. + hIcon(int):The handle of the icon to draw.MFC References + +Returns: + + None + + """ + pass + + + def DrawText(self,s:'str',_tuple:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',_format:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Formats text in the given rectangle + +Args: + + s(str):The desired output string + _tuple(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The bounding rectangle in the form: (left, top, right, bottom) expressed in logical units (depending on selected coordinate system - see PyCDC::SetMapMode) + _format(typing.Any):Specifies one or more bit-or'd format values, such as DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see the Microsoft Win32 API documentation.ExampleExampleimport win32ui<nl> import win32con<nl> INCH = 1440 # twips - 1440 per inch allows fine res<nl> def drawtext_test():<nl> dc = win32ui.CreateDC()<nl> dc.CreatePrinterDC() # ties to default printer<nl> dc.StartDoc('My Python Document')<nl> dc.StartPage()<nl> <nl> # note: upper left is 0,0 with x increasing to the right,<nl> # and y decreasing (negative) moving down<nl> dc.SetMapMode(win32con.MM_TWIPS)<nl> <nl> # Centers "TEST" about an inch down on page<nl> dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> dc.EndPage()<nl> dc.EndDoc()<nl> del dc<nl>Return ValueHeight of text in pixelsThe return value is the height of the text, in logical units. If DT_VCENTER or DT_BOTTOM is specified, the return value is the offset from rect.top to the bottom of the drawn text. If the function fails, the return value is zero (no Python exception is thrown) + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:Specifies one or more bit-or'd format values, such as + +DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see + +the Microsoft Win32 API documentation.ExampleExample +import win32ui<nl> + + import win32con<nl> + + INCH = 1440 # twips - 1440 per inch allows fine res<nl> + + def drawtext_test():<nl> + + dc = win32ui.CreateDC()<nl> + + dc.CreatePrinterDC() # ties to default printer<nl> + + dc.StartDoc('My Python Document')<nl> + + dc.StartPage()<nl> + + <nl> + + # note: upper left is 0,0 with x increasing to the right,<nl> + + # and y decreasing (negative) moving down<nl> + + dc.SetMapMode(win32con.MM_TWIPS)<nl> + + <nl> + + # Centers "TEST" about an inch down on page<nl> + + dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> + + dc.EndPage()<nl> + + dc.EndDoc()<nl> + + del dc<nl> + + +Return ValueHeight of text in pixels + + + +The return value is the height of the text, in logical units. + +If DT_VCENTER or DT_BOTTOM is specified, the return value is the + +offset from rect.top to the bottom of the drawn text. + +If the function fails, the return value is zero (no Python exception is thrown) + + + """ + pass + + + def Ellipse(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Draws an Ellipse. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangleCommentsThe center of the ellipse is the center of the bounding rectangle specified by rect. The ellipse is drawn with the current pen, and its interior is filled with the current brush.MFC References + +Returns: + + None:CDC::Ellipse +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def EndDoc(self,) -> 'None': + """ + Finishes spooling the document and starts printing it + +Args: + + + +Returns: + + None + + """ + pass + + + def EndPage(self,) -> 'None': + """ + Finishes a page on a printer DC + +Args: + + + +Returns: + + None + + """ + pass + + + def EndPath(self,) -> 'None': + """ + Closes a path bracket and selects the path defined by the bracket into the specified device + +context + +Args: + + + +Returns: + + None + + """ + pass + + + def ExtTextOut(self,_int:'typing.Any',_int1:'typing.Any',_int2:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',string:'typing.Any',_tuple:'typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]') -> 'None': + """ + Writes text to the DC. + +Args: + + _int(typing.Any):The x coordinate to write the text to. + _int1(typing.Any):The y coordinate to write the text to. + _int2(typing.Any):Specifies the rectangle type. This parameter can be one, both, or neither of ETO_CLIPPED and ETO_OPAQUE + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the text's bounding rectangle. (Can be None.) + string(typing.Any):The text to write. + _tuple(typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]):Optional array of values that indicate distance between origins of character cells.MFC References + +Returns: + + None:CDC::ExtTextOut +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + + def FillPath(self,) -> 'None': + """ + Closes any open figures in the current path and fills the path's interior by using the + +current brush and polygon-filling mode. After its interior is filled, the path is discarded from the device context. + +Args: + + + +Returns: + + None + + """ + pass + + + def FillRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',brush:'PyCBrush') -> 'None': + """ + Fills a given rectangle with the specified brush + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + brush(PyCBrush):Specifies the brush to use.MFC References + +Returns: + + None + + """ + pass + + + def FillSolidRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',color:'typing.Any') -> 'None': + """ + Fills the given rectangle with the specified solid color. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + color(typing.Any):Specifies the color to use.MFC References + +Returns: + + None + + """ + pass + + + def FrameRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',brush:'PyCBrush') -> 'None': + """ + Draws a border around the rectangle specified by rect + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. + brush(PyCBrush):Specifies the brush to use.MFC References + +Returns: + + None + + """ + pass + + + def GetBrushOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the origin (in device units) of the brush currently selected for the + +device context. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetClipBox(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the dimensions of the smallest bounding rectangle + +around the current clipping boundary. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]:CDC::GetClipBox +Return ValueA tuple of integers specifying the rectangle. + + + """ + pass + + + def GetCurrentPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the current position (in logical coordinates). + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetDeviceCaps(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves a capability of the device context. + +Args: + + index(typing.Any):The information requested. See the win32api documentation for details.MFC References + +Returns: + + typing.Any:CDC::GetDeviceCaps +Return ValueThe value of the requested capability + + + """ + pass + + + def GetHandleAttrib(self,) -> 'typing.Any': + """ + Retrieves the handle of the attribute device context. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetHandleOutput(self,) -> 'typing.Any': + """ + Retrieves the handle of the output device context. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetMapMode(self,) -> 'typing.Any': + """ + Gets the mapping mode for the device context. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNearestColor(self,color:'typing.Any') -> 'typing.Any': + """ + Returns the closest color a device can map. + +Args: + + color(typing.Any):Specifies the color to be matched. + +Returns: + + typing.Any + + """ + pass + + + def GetPixel(self,x:'typing.Any',y:'typing.Any') -> 'None': + """ + Gets a pixel at a local in a device context + +Args: + + x(typing.Any):Horizontal coordinate. + y(typing.Any):Vertical coordinate. + +Returns: + + None + + """ + pass + + + def GetSafeHdc(self,) -> 'typing.Any': + """ + Returns the HDC of this DC object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTextExtent(self,text:'str') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Calculates the width and height of a line of text using the current font to + +determine the dimensions. + +Args: + + text(str):The text to calculate for.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CFC::GetTextExtent +Return ValueA tuple of integers with the size of the string, in logical units. + + + """ + pass + + + def GetTextExtentPoint(self,text:'str') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + None + +Args: + + text(str):The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. + +Returns: + + typing.Tuple[typing.Any, typing.Any]:The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. + + + """ + pass + + + def GetTextFace(self,) -> 'str': + """ + Returns typeface name of the current font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTextMetrics(self,) -> 'typing.Any': + """ + Retrieves the metrics for the current font in this device context. + +Args: + + + +Returns: + + typing.Any:CDC::GetTextMetrics +Return ValueA dictionary of integers, keyed by the following strings: + +tmHeight + +tmAscent + +tmDescent + +tmInternalLeading + +tmExternalLeading + +tmAveCharWidth + +tmMaxCharWidth + +tmWeight + +tmItalic + +tmUnderlined + +tmStruckOut + +tmFirstChar + +tmLastChar + +tmDefaultChar + +tmBreakChar + +tmPitchAndFamily + +tmCharSet + +tmOverhang + +tmDigitizedAspectX + +tmDigitizedAspectY + + + """ + pass + + + def GetViewportExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Gets the viewport extent of the device context + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetViewportOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Gets the viewport origin of the device context + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetWindowExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Gets the window extent of the device context + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetWindowOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the x- and y-coordinates of the origin of the window associated with the + +device context. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def IntersectClipRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Creates a new clipping region by forming the intersection of the current region + +and the rectangle specified + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units.MFC References + +Returns: + + None:CDC::IntersectClipRect +Return Valueregion type as integer + + + """ + pass + + + def IsPrinting(self,) -> 'typing.Any': + """ + Returns 1 if the DC is currently printing, else 0 + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LineTo(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'None': + """ + Draws a line to a specified point, using the currently selected pen. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to draw to.Alternative Parameters + x(typing.Any):The x coordinate to draw to. + y(typing.Any):The y coordinate to draw to.MFC References + +Returns: + + None + + """ + pass + + + def LPtoDP(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Converts logical units into device units. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to convert.Alternative Parameters + x(typing.Any):The x coordinate to convert. + y(typing.Any):The y coordinate to convert.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::LPtoDP +Return ValueThe converted coordinates. + + + """ + pass + + + def MoveTo(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Moves the current position to a specified point. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to move to.Alternative Parameters + x(typing.Any):The x coordinate to move to. + y(typing.Any):The y coordinate to move to.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::MoveTo +Return ValueThe previous position. + + + """ + pass + + + def OffsetWindowOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Modifies the coordinates of the window origin relative to the coordinates of the + +current window origin. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The new origin offset.Return ValueThe previous origin as a tuple (x,y) + +Returns: + + typing.Tuple[typing.Any, typing.Any]:The new origin offset.Return ValueThe previous origin as a tuple (x,y) + + + """ + pass + + + def OffsetViewportOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Modifies the coordinates of the viewport origin relative to the coordinates of + +the current viewport origin + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) + +Returns: + + typing.Tuple[typing.Any, typing.Any]:The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) + + + """ + pass + + + def PatBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': + """ + Creates a bit pattern on the device. + +Args: + + destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def Pie(self,x1:'typing.Any',y1:'typing.Any',x2:'typing.Any',y2:'typing.Any',x3:'typing.Any',y3:'typing.Any',x4:'typing.Any',y4:'typing.Any') -> 'None': + """ + Draws a pie slice in a device context + +Args: + + x1(typing.Any):X coordinate of upper left corner + y1(typing.Any):Y coordinate of upper left corner + x2(typing.Any):X coordinate of lower right corner + y2(typing.Any):Y coordinate of lower right corner + x3(typing.Any):X coordinate of starting point of arc + y3(typing.Any):Y coordinate of starting point of arc + x4(typing.Any):X coordinate of ending point of arc + y4(typing.Any):Y coordinate of ending point of arc + +Returns: + + None + + """ + pass + + + def PolyBezier(self,) -> 'None': + """ + Draws one or more Bezier splines. + +Args: + + + +Returns: + + None + + """ + pass + + + def Polygon(self,) -> 'None': + """ + Draws an Polygon. + +Args: + + + +Returns: + + None + + """ + pass + + + def Polyline(self,points:'typing.List[typing.Tuple[typing.Any, typing.Any]]') -> 'None': + """ + Draws a Polyline. + +Args: + + points(typing.List[typing.Tuple[typing.Any, typing.Any]]):A sequence of points + +Returns: + + None + + """ + pass + + + def RealizePalette(self,) -> 'typing.Any': + """ + Maps palette entries in the current logical palette to the system palette. + +Args: + + + +Returns: + + typing.Any:PyCDC.RealizePalette + +int = RealizePalette()Maps palette entries in the current logical palette to the system palette. +Return ValueIndicates how many entries in the logical palette were mapped to different entries + +in the system palette. This represents the number of entries that this function + +remapped to accommodate changes in the system palette since the logical palette + +was last realized. + + + """ + pass + + + def Rectangle(self,) -> 'typing.Any': + """ + Draws a rectangle using the current pen. The interior of the rectangle is filled using + +the current brush. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def RectVisible(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Any': + """ + Determines whether any part of the given rectangle lies within the clipping region of + +the display context. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates of the reactangle to be checked.MFC References + +Returns: + + typing.Any:CDC::RectVisible +Return ValueNon zero if any part of the rectangle lies within the clipping region, else zero. + + + """ + pass + + + def RestoreDC(self,saved:'typing.Any') -> 'None': + """ + Restores the state of the device context. + +Args: + + saved(typing.Any):The id of a previously saved device context. See PyCDC::SaveDCMFC References + +Returns: + + None + + """ + pass + + + def SaveDC(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any:CDC::SaveDC +Return ValueAn integer identifying the context, which can be used by PyCDC::RestoreDC. + +An exception is raised if this function fails. + + + """ + pass + + + def ScaleWindowExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Modifies the window extents relative to the current values. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def ScaleViewportExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Modifies the viewport extents relative to the current values. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SelectClipRgn(self,) -> 'typing.Any': + """ + Selects the given region as the current clipping region for the device context + +Args: + + + +Returns: + + typing.Any:PyCDC.SelectClipRgn + +obRgn = SelectClipRgn()Selects the given region as the current clipping region for the device context +Return ValueThe return value specifies the region's complexity (integer) + + + """ + pass + + + def SelectObject(self,ob:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + ob(typing.Any):The object to select.MFC References + +Returns: + + typing.Any:CDC::SelectObject +Return ValueThe previously selected object. This will be the same type as the object parameter. + + + """ + pass + + + def SetBkColor(self,color:'typing.Any') -> 'typing.Any': + """ + Sets the current background color to the specified color. + +Args: + + color(typing.Any):A windows color specification. See the win32api documentation for details.CommentsIf the background mode is OPAQUE, the system uses the background color to fill the gaps in styled lines, the gaps between hatched lines in brushes, and the background in character cells. The system also uses the background color when converting bitmaps between color and monochrome device contexts.MFC References + +Returns: + + typing.Any:CDC::SetBkColor +Return ValueThe return value is the previous background color. + + + """ + pass + + + def SetBkMode(self,mode:'typing.Any') -> 'typing.Any': + """ + Sets the current background mode to the specified mode. + +Args: + + mode(typing.Any):A background mode. May be either TRANSPARENT or OPAQUE.CommentsSpecifies the mode to be set. This parameter can be either OPAQUE or TRANSPARENTMFC References + +Returns: + + typing.Any:CDC::SetBkMode +Return ValueThe return value is the previous background mode. + + + """ + pass + + + def SetBrushOrg(self,point:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Specifies the origin that GDI will assign to the next brush that the + +application selects into the device context. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The new origin in device units.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::SetBrushOrg +Return ValueThe previous origin in device units. + + + """ + pass + + + def SetGraphicsMode(self,mode:'typing.Any') -> 'typing.Any': + """ + Sets the graphics mode for the specified device context + +Args: + + mode(typing.Any):The new mode. + +Returns: + + typing.Any + + """ + pass + + + def SetMapMode(self,newMode:'typing.Any') -> 'typing.Any': + """ + Sets the mapping mode for the device context. + +Args: + + newMode(typing.Any):The new mode. Can be one of MM_ANISOTROPIC, MM_HIENGLISH, MM_HIMETRIC, MM_ISOTROPIC, MM_LOENGLISH, MM_LOMETRIC, MM_TEXT, MM_TWIPSMFC References + +Returns: + + typing.Any:CDC::SetMapMode +Return ValueThe previous mapping mode. + + + """ + pass + + + def SetPixel(self,x:'typing.Any',y:'typing.Any',color:'typing.Any') -> 'None': + """ + Sets a pixel in a device context + +Args: + + x(typing.Any):Horizontal coordinate. + y(typing.Any):Vertical coordinate. + color(typing.Any):The brush color. + +Returns: + + None + + """ + pass + + + def SetPolyFillMode(self,point:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + Sets the polygon-filling mode. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The new origin in device units.MFC References + +Returns: + + typing.Any:CDC::SetPolyFillMode +Return ValueThe previous PolyFillMode as integer + + + +The previous PolyFillMode. + + + """ + pass + + + def SetROP2(self,mode:'typing.Any') -> 'typing.Any': + """ + Sets the current drawing mode. + +Args: + + mode(typing.Any):The new drawing mode.MFC References + +Returns: + + typing.Any + + """ + pass + + + def SetTextAlign(self,newFlags:'typing.Any') -> 'typing.Any': + """ + Sets the text-alignment flags. + +Args: + + newFlags(typing.Any):The new alignment flags. Can be a combination of (TA_CENTER, TA_LEFT, TA_RIGHT), (TA_BASELINE, TA_BOTTOM, TA_TOP) and (TA_NOUPDATECP, TA_UPDATECP) The default is TA_LEFT|TA_TOP|TA_NOUPDATECPMFC References + +Returns: + + typing.Any:CDC::SetTextAlign +Return ValueThe old alignment flags. + + + """ + pass + + + def SetTextColor(self,color:'typing.Any') -> 'typing.Any': + """ + Sets the text color to the specified color. + +Args: + + color(typing.Any):A windows color specification. See the win32api documentation for details.CommentsThis text color is used when writing text to this device context and also when converting bitmaps between color and monochrome device contexts. If the device cannot represent the specified color, the system sets the text color to the nearest physical color. The background color for a character is specified by the SetBkColor and SetBkMode member functions.MFC References + +Returns: + + typing.Any:CDC::SetTextColor +Return ValueThe return value is the previous text color. + + + """ + pass + + + def SetWindowExt(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Sets the x,y extents of the window associated with the device context. + +Args: + + size(typing.Tuple[typing.Any, typing.Any]):The new size.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::SetWindowExt +Return ValueThe previous extents of the window (in logical units). + + + """ + pass + + + def SetWindowOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Sets the window origin of the device context + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The new origin. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetViewportExt(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Sets the x,y extents of the viewport of the device context. + +Args: + + size(typing.Tuple[typing.Any, typing.Any]):The new size.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CDC::SetViewportExt +Return ValueThe previous extents of the viewport (in logical units). + + + """ + pass + + + def SetViewportOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Sets the viewport origin of the device context + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The new origin. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetWorldTransform(self,) -> 'typing.Any': + """ + sets a two-dimensional linear transformation between world space and page space + +for the specified device context. This transformation can be used to scale, rotate, shear, or translate graphics + +output. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def StartDoc(self,docName:'str',outputFile:'str') -> 'None': + """ + Starts spooling a document to a printer DC + +Args: + + docName(str):The document name + outputFile(str):The output file name. Use this to spool to a file. Omit to send to the printer. + +Returns: + + None + + """ + pass + + + def StartPage(self,) -> 'None': + """ + Starts a new page on a printer DC + +Args: + + + +Returns: + + None + + """ + pass + + + def StretchBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',dc:'PyCDC',srcPos:'typing.Tuple[typing.Any, typing.Any]',size1:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': + """ + Copies a bitmap from the source device context to this device context. + +Args: + + destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. + size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + dc(PyCDC):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. + srcPos(typing.Tuple[typing.Any, typing.Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. + size1(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. + rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References + +Returns: + + None + + """ + pass + + + def StrokeAndFillPath(self,) -> 'None': + """ + Closes any open figures in a path, strokes the outline of the path by using the + +current pen, and fills its interior by using the current brush. The device context must contain a closed path. + +Args: + + + +Returns: + + None + + """ + pass + + + def StrokePath(self,) -> 'None': + """ + Renders the specified path by using the current pen. + +Args: + + + +Returns: + + None + + """ + pass + + + def TextOut(self,_int:'typing.Any',_int1:'typing.Any',string:'typing.Any') -> 'None': + """ + Outputs text to the display context, using the currently selected font. + +Args: + + _int(typing.Any):The x coordinate to write the text to. + _int1(typing.Any):The y coordinate to write the text to. + string(typing.Any):The text to write.MFC References + +Returns: + + None:CDC::TextOut +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + +class PyCDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,obParent:'PyCWnd'=None) -> 'None': + """ + Create a modeless window for the dialog box. + +Args: + + obParent(PyCWnd):The parent window for the new windowMFC References + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'typing.Any': + """ + Create a modal window for the dialog box. + +Args: + + + +Returns: + + typing.Any:CDialog::DoModal +Return ValueThe return value from the dialog. This is the value passed to PyCDialog::EndDialog. + + + """ + pass + + + def EndDialog(self,result:'typing.Any') -> 'None': + """ + Ends a modal dialog box. + +Args: + + result(typing.Any):The value to be returned by the PyCDialog::DoModal method.MFC References + +Returns: + + None + + """ + pass + + + def GotoDlgCtrl(self,control:'PyCWnd') -> 'None': + """ + Moves the focus to the specified control in the dialog box. + +Args: + + control(PyCWnd):The control to get the focus. + +Returns: + + None + + """ + pass + + + def MapDialogRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Converts the dialog-box units of a rectangle to screen + +units. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The rect to be converted + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def OnCancel(self,) -> 'None': + """ + Calls the default MFC OnCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOK(self,) -> 'None': + """ + Calls the default MFC OnOK handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnInitDialog(self,) -> 'typing.Any': + """ + Calls the default MFC OnInitDialog handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCDialogBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'PyCWnd',template:'PyResourceId',style:'typing.Any',_id:'typing.Any') -> 'None': + """ + None + +Args: + + parent(PyCWnd):The parent window + template(PyResourceId):Template name or integer resource id + style(typing.Any):The style for the window + _id(typing.Any):The ID of the window + +Returns: + + None + + """ + pass + + +class PyCDocTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoCreateDoc(self,fileName:'str'=None) -> 'PyCDocument': + """ + Creates an underlying document object. + +Args: + + fileName(str):The name of the file to load. + +Returns: + + PyCDocument + + """ + pass + + + def FindOpenDocument(self,fileName:'str') -> 'PyCDocument': + """ + Returns an existing document with the specified file name. + +Args: + + fileName(str):The fully qualified filename to search for. + +Returns: + + PyCDocument + + """ + pass + + + def GetDocString(self,docIndex:'typing.Any') -> 'str': + """ + Retrieves a specific substring describing the document type. + +Args: + + docIndex(typing.Any):The document index. Must be one of the win32ui.CDocTemplate_* constants.CommentsFor more information on the doc strings, please see PyCDocTemplate::SetDocStrings + +Returns: + + str + + """ + pass + + + def GetDocumentList(self,) -> 'typing.Any': + """ + Return a list of all open documents. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetResourceID(self,) -> 'None': + """ + Returns the resource ID in use. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetSharedMenu(self,) -> 'PyCMenu': + """ + Returns the shared menu object for all frames using this template. + +Args: + + + +Returns: + + PyCMenu + + """ + pass + + + def InitialUpdateFrame(self,frame:'PyCFrameWnd'=None,doc:'PyCDocument'=None,bMakeVisible:'typing.Any'=1) -> 'None': + """ + Calls the default OnInitialFrame handler. + +Args: + + frame(PyCFrameWnd):The frame window. + doc(PyCDocument):A document for the frame. + bMakeVisible(typing.Any):Indicates of the frame should be shown.See Also + +Returns: + + None + + """ + pass + + + def SetContainerInfo(self,_id:'typing.Any') -> 'None': + """ + Sets the resources to be used when an OLE 2 object is in-place activated. + +Args: + + _id(typing.Any):The resource ID. + +Returns: + + None + + """ + pass + + + def SetDocStrings(self,docStrings:'str') -> 'None': + """ + Assigns the document strings for the template. + +Args: + + docStrings(str):The document strings.CommentsThe string must be a \\n seperated list of docstrings. The elements are:elementNameDescriptionwindowTitleTitle used for the window (only for SDI applications)docNameRoot for the default document name.fileNewNameName of the document type, as displayed in the "File/New" dialogfilterNameDescription of the document type and a wildcard spec for the file open dialog.filterExtExtension for documents of this file type.regFileTypeIdInternal Id of the document as registered in the registry. Used to associate the extension with the file type.regFileTypeNameName of the document, as stored in the reigstry. This is the name presented to the user. + +Returns: + + None + + """ + pass + + + def OpenDocumentFile(self,filename:'str',bMakeVisible:'typing.Any'=1) -> 'None': + """ + Opens a document file, creating a view and frame. + +Args: + + filename(str):Name of file to open, or None + bMakeVisible(typing.Any):Indicates if the document should be created visible. + +Returns: + + None + + """ + pass + + +class PyCDockContext(object): + """A class which encapsulates an MFC CDockContext object""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ptLast(self)->'typing.Tuple[typing.Any, typing.Any]': + """""" + pass + + + @property + def rectLast(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def sizeLast(self)->'typing.Tuple[typing.Any, typing.Any]': + """""" + pass + + + @property + def bDitherLast(self)->'typing.Any': + """""" + pass + + + @property + def rectDragHorz(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def rectDragVert(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def rectFrameDragHorz(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def rectFrameDragVert(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def dwDockStyle(self)->'typing.Any': + """allowable dock styles for bar""" + pass + + + @property + def dwOverDockStyle(self)->'typing.Any': + """style of dock that rect is over""" + pass + + + @property + def dwStyle(self)->'typing.Any': + """style of control bar""" + pass + + + @property + def bFlip(self)->'typing.Any': + """if shift key is down""" + pass + + + @property + def bForceFrame(self)->'typing.Any': + """if ctrl key is down CDC* m_pDC; // where to draw during drag""" + pass + + + @property + def bDragging(self)->'typing.Any': + """""" + pass + + + @property + def nHitTest(self)->'typing.Any': + """""" + pass + + + @property + def uMRUDockID(self)->'typing.Any': + """""" + pass + + + @property + def rectMRUDockPos(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """""" + pass + + + @property + def dwMRUFloatStyle(self)->'typing.Any': + """""" + pass + + + @property + def ptMRUFloatPos(self)->'typing.Tuple[typing.Any, typing.Any]': + """Sentinel""" + pass + + + def EndDrag(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def StartDrag(self,pt:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + None + +Args: + + pt(typing.Tuple[typing.Any, typing.Any]): + +Returns: + + typing.Any + + """ + pass + + + def EndResize(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def StartResize(self,hittest:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + None + +Args: + + hittest(typing.Any): + pt(typing.Tuple[typing.Any, typing.Any]): + +Returns: + + typing.Any + + """ + pass + + + def ToggleDocking(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DeleteContents(self,) -> 'None': + """ + Call the MFC DeleteContents method. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoSave(self,fileName:'str',bReplace:'typing.Any'=1) -> 'None': + """ + Calls the underlying MFC DoSave method. + +Args: + + fileName(str):The name of the file to save to. + bReplace(typing.Any):Should an existing file be silently replaced?.CommentsIf invalid or no filename, will prompt for a name, else will perform the actual saving of the document.See Also + +Returns: + + None + + """ + pass + + + def DoFileSave(self,) -> 'None': + """ + Checks the file attributes. + +If the file is read only, a new name is prompted, else the + +file is saved (by calling DoSave) + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocTemplate(self,) -> 'PyCDocTemplate': + """ + Returns the template for the document. + +Args: + + + +Returns: + + PyCDocTemplate + + """ + pass + + + def GetAllViews(self,) -> 'typing.List[typing.Any]': + """ + Returns a list of all views for the current document. + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def GetFirstView(self,) -> 'PyCView': + """ + Returns the first view object attached to this document. + +Args: + + + +Returns: + + PyCView + + """ + pass + + + def GetPathName(self,) -> 'str': + """ + Returns the full path name of the current document. + +The string will be empty if no path name has been set. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTitle(self,) -> 'str': + """ + Returns the title of the current document. + +This will often be the file name portion of the path name. + +Args: + + + +Returns: + + str + + """ + pass + + + def IsModified(self,) -> 'typing.Any': + """ + Return a flag indicating if the document has been modified. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnChangedViewList(self,) -> 'None': + """ + Informs the document when a view is added or removed. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCloseDocument(self,) -> 'None': + """ + Call the MFC OnCloseDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnNewDocument(self,) -> 'None': + """ + Call the MFC OnNewDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOpenDocument(self,pathName:'str') -> 'None': + """ + Call the MFC OnOpenDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + pathName(str):The full path of the file to open.MFC References + +Returns: + + None + + """ + pass + + + def OnSaveDocument(self,pathName:'str') -> 'None': + """ + Call the MFC OnSaveDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + pathName(str):The full path of the file to save.MFC References + +Returns: + + None + + """ + pass + + + def SetModifiedFlag(self,bModified:'typing.Any'=1) -> 'None': + """ + Set the "dirty" flag for the document. + +Args: + + bModified(typing.Any):Set dirty flagMFC References + +Returns: + + None + + """ + pass + + + def SaveModified(self,) -> 'typing.Any': + """ + Call the underlying MFC method. + +Args: + + + +Returns: + + typing.Any:CDocument::SaveModified +Return ValueNonzero if it is safe to continue and close the document; 0 if the document should not be closed. + + + """ + pass + + + def SetPathName(self,path:'str') -> 'None': + """ + Set the full path name for the document. + +Args: + + path(str):The full path of the file.MFC References + +Returns: + + None + + """ + pass + + + def SetTitle(self,title:'str') -> 'None': + """ + Set the title of the document (ie, the name + +to appear in the window caption for the document. + +Args: + + title(str):The new title.MFC References + +Returns: + + None + + """ + pass + + + def UpdateAllViews(self,sender:'PyCView',hint:'typing.Any'=None) -> 'None': + """ + Informs each view when a document changes. + +Args: + + sender(PyCView):The view who initiated the update + hint(typing.Any):A hint for the update.MFC References + +Returns: + + None + + """ + pass + + +class PyCEdit(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the window for a new Edit object. + +Args: + + style(typing.Any):The style for the Edit. Use any of the win32con.BS_* constants. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the Edit. + parent(PyCWnd):The parent window of the Edit. Usually a PyCDialog. + _id(typing.Any):The Edits control ID. + +Returns: + + None + + """ + pass + + + def Clear(self,) -> 'typing.Any': + """ + Clears all text in an edit control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Copy(self,) -> 'None': + """ + Copys the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def Cut(self,) -> 'None': + """ + Cuts the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def FmtLines(self,bAddEOL:'typing.Any') -> 'typing.Any': + """ + Sets the formatting options for the control. + +Args: + + bAddEOL(typing.Any):Specifies whether soft line-break characters are to be inserted. A value of TRUE inserts the characters; a value of FALSE removes them.MFC References + +Returns: + + typing.Any:CEdit::FmtLines +Return ValueNonzero if any formatting occurs; otherwise 0. + + + """ + pass + + + def GetFirstVisibleLine(self,) -> 'typing.Any': + """ + Returns zero-based index of the topmost visible line. + +Args: + + + +Returns: + + typing.Any:CEdit::GetFirstVisibleLine +Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. + + + """ + pass + + + def GetSel(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the start and end of the current selection. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CEdit::GetSel +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the + +end of the current selection) + + + """ + pass + + + def GetLine(self,lineNo:'typing.Any') -> 'typing.Any': + """ + Returns the text in a specified line. + +Args: + + lineNo(typing.Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. + +Returns: + + typing.Any + + """ + pass + + + def GetLineCount(self,) -> 'typing.Any': + """ + Gets the number of lines in an edit control. + +Args: + + + +Returns: + + typing.Any:CEdit::GetLineCount +Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. + + + """ + pass + + + def LimitText(self,nChars:'typing.Any'=0) -> 'None': + """ + Sets max length of text that user can enter + +Args: + + nChars(typing.Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References + +Returns: + + None + + """ + pass + + + def LineFromChar(self,charNo:'typing.Any'=-1) -> 'typing.Any': + """ + Returns the line number of the specified character. + +Args: + + charNo(typing.Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References + +Returns: + + typing.Any:CEdit::LineFromChar +Return ValueThe zero-based line number of the line containing the character index specified by charNo. + +If charNo is -1, the number of the line that contains the first character of the selection is returned. + +If there is no selection, the current line number is returned. + + + """ + pass + + + def LineIndex(self,lineNo:'typing.Any'=-1) -> 'typing.Any': + """ + Retrieves the character index of a line within a multiple-line edit control. + +Args: + + lineNo(typing.Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + typing.Any:CEdit::LineIndex +Return ValueThe character index of the line specified in lineNo, or -1 if + +the specified line number is greater then the number of lines in + +the edit control. + + + """ + pass + + + def LineScroll(self,nLines:'typing.Any',nChars:'typing.Any'=0) -> 'typing.Any': + """ + Scroll the control vertically and horizontally + +Args: + + nLines(typing.Any):Specifies the number of lines to scroll vertically. + nChars(typing.Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + typing.Any + + """ + pass + + + def Paste(self,) -> 'None': + """ + Pastes the contents of the clipboard into the control. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReplaceSel(self,text:'str') -> 'None': + """ + Replaces the selection with the specified text. + +Args: + + text(str):The text to replace the selection with.MFC References + +Returns: + + None + + """ + pass + + + def SetReadOnly(self,bReadOnly:'typing.Any'=1) -> 'None': + """ + Sets or clears the read-only status of the listbox. + +Args: + + bReadOnly(typing.Any):The read-only state to set.MFC References + +Returns: + + None + + """ + pass + + + def SetSel(self,start:'typing.Any',end:'typing.Any',arg:'typing.Any',bNoScroll1:'typing.Any',bNoScroll:'typing.Any'=0) -> 'None': + """ + Sets the selection in the edit control. + +Args: + + start(typing.Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. + end(typing.Any):Specifies the ending position. + arg(typing.Any):As for normal start, end args. + bNoScroll1(typing.Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.MFC References + bNoScroll(typing.Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.Alternative Parameters + +Returns: + + None + + """ + pass + + +class PyCEditView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def IsModified(self,) -> 'typing.Any': + """ + Indicates if the view's document has the modified flag set. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LoadFile(self,fileName:'str') -> 'None': + """ + Loads a file into the view. + +Args: + + fileName(str):The name of the file to be loaded. + +Returns: + + None + + """ + pass + + + def SetModifiedFlag(self,bModified:'typing.Any'=1) -> 'None': + """ + Sets the modified flag for the view's document. + +Args: + + bModified(typing.Any):The modified state to set. + +Returns: + + None + + """ + pass + + + def GetEditCtrl(self,) -> 'typing.Any': + """ + returns the underlying edit control object. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + typing.Any + + """ + pass + + + def SaveFile(self,fileName:'str') -> 'None': + """ + Saves the view to a file. + +Args: + + fileName(str):The name of the file to be written. + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCFileDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPathName(self,) -> 'str': + """ + Retrives the path name from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileName(self,) -> 'str': + """ + Retrives the file name from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileExt(self,) -> 'str': + """ + Retrives the file extension from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetFileTitle(self,) -> 'str': + """ + Retrives the file title from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetPathNames(self,) -> 'str': + """ + Retrieves the list of path names from the file dialog. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetReadOnlyPref(self,) -> 'typing.Any': + """ + Retrives the value of the "Read Only" checkbox on the file dialog. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetOFNTitle(self,title:'str') -> 'None': + """ + Sets the Title for the dialog. + +Args: + + title(str):The title for the dialog box. May be None. + +Returns: + + None + + """ + pass + + + def SetOFNInitialDir(self,title:'str') -> 'None': + """ + Sets the initial directory for the dialog. + +Args: + + title(str):The initial directory for the dialog box. May be None. + +Returns: + + None + + """ + pass + + +class PyCFont(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetSafeHandle(self,) -> 'typing.Any': + """ + Retrieves the HFONT for the font as an integer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCFontDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoModal(self,) -> 'typing.Any': + """ + Displays a dialog and allows the user to make a selection. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCurrentFont(self,) -> 'typing.Any': + """ + Returns a dictionary describing the current font. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCharFormat(self,) -> 'typing.Any': + """ + Returns the font selection in a CHARFORMAT tuple. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetColor(self,) -> 'typing.Any': + """ + Determines the color of the selected font. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetFaceName(self,) -> 'str': + """ + Returns the face name of the selected font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetStyleName(self,) -> 'str': + """ + Returns the style name of the selected font. + +Args: + + + +Returns: + + str + + """ + pass + + + def GetSize(self,) -> 'typing.Any': + """ + Returns he font's size, in tenths of a point. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetWeight(self,) -> 'typing.Any': + """ + Returns the font's weight. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsStrikeOut(self,) -> 'typing.Any': + """ + Determines whether the font is displayed with strikeout. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsUnderline(self,) -> 'typing.Any': + """ + Determines whether the font is displayed with underline. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsBold(self,) -> 'typing.Any': + """ + Determines whether the font is displayed bold. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsItalic(self,) -> 'typing.Any': + """ + Determines whether the font is displayed with italic. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCFormView(object): + """A class which implementes a CFormView (ie, a view based on a dialog resource.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCFrameWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def BeginModalState(self,) -> 'None': + """ + Sets the frame window to modal. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateWindow(self,wndClass:'str',title:'str',style:'typing.Any',PyCWnd:'typing.Any',menuId:'typing.Any',styleEx:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None,createContext:'typing.Any'=None) -> 'typing.Any': + """ + Creates the actual window for the PyCFrameWnd object. + +Args: + + wndClass(str):The window class name, or None + title(str):The window title + style(typing.Any):The window style + PyCWnd(typing.Any):The parent window + menuId(typing.Any):The string or integer id for the menu. + styleEx(typing.Any):The extended style of the window being created.MFC References + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + createContext(typing.Any):A tuple representing a CREATECONTEXT structure. + +Returns: + + typing.Any + + """ + pass + + + def EndModalState(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def DockControlBar(self,controlBar:'PyCControlBar',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',dockBarId:'typing.Any'=0) -> 'None': + """ + Docks a control bar. + +Args: + + controlBar(PyCControlBar):The control bar to dock. + arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Determines, in screen coordinates, where the control bar will be docked in the nonclient area of the destination frame window.MFC References + dockBarId(typing.Any):Determines which sides of the frame window to consider for docking. + +Returns: + + None + + """ + pass + + + def EnableDocking(self,style:'typing.Any') -> 'None': + """ + Enable dockable control bars in a frame window + +Args: + + style(typing.Any):Specifies which sides of the frame window can serve as docking sites for control bars.CommentsBy default, control bars will be docked to a side of the frame window in the following order: top, bottom, left, right. + +Returns: + + None + + """ + pass + + + def FloatControlBar(self,controlBar:'PyCControlBar',arg:'typing.Tuple[typing.Any, typing.Any]',style:'typing.Any') -> 'None': + """ + Floats a control bar. + +Args: + + controlBar(PyCControlBar):The control bar to dock. + arg(typing.Tuple[typing.Any, typing.Any]):The location, in screen coordinates, where the top left corner of the control bar will be placed. + style(typing.Any):Determines which sides of the frame window to consider for docking.MFC References + +Returns: + + None + + """ + pass + + + def GetActiveDocument(self,) -> 'PyCDocument': + """ + Gets the currently active document, else None + +Args: + + + +Returns: + + PyCDocument + + """ + pass + + + def GetControlBar(self,_id:'typing.Any') -> 'PyCControlBar': + """ + Retrieves the specified control bar. + +Args: + + _id(typing.Any):The ID of the toolbar to be retrieved + +Returns: + + PyCControlBar + + """ + pass + + + def GetMessageString(self,_id:'typing.Any') -> 'str': + """ + Retrieves message corresponding to a command ID. + +Args: + + _id(typing.Any):The ID to be retrievedSee Also + +Returns: + + str + + """ + pass + + + def GetMessageBar(self,) -> 'PyCWnd': + """ + Retrieves the message bar for the frame. + +Args: + + + +Returns: + + PyCWnd + + """ + pass + + + def IsTracking(self,) -> 'typing.Any': + """ + Determines if splitter bar is currently being moved. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def InModalState(self,) -> 'typing.Any': + """ + Returns a value indicating whether or not a frame window is in a modal state. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LoadAccelTable(self,_id:'PyResourceId') -> 'None': + """ + Loads an accelerator table. + +Args: + + _id(PyResourceId):Name or id of the resource that contains the table + +Returns: + + None + + """ + pass + + + def LoadFrame(self,idResource:'typing.Any',style:'typing.Any'=-1,wndParent:'PyCWnd'=None,context:'typing.Any'=None) -> 'None': + """ + Loads a Windows frame window and associated resources + +Args: + + idResource(typing.Any):The Id of the resources (menu, icon, etc) for this window + style(typing.Any):The window style. Note -1 implies win32con.WS_OVERLAPPEDWINDOW|win32con.FWS_ADDTOTITLE + wndParent(PyCWnd):The parent of the window, or None. + context(typing.Any):An object passed to the OnCreateClient for the frame,MFC References + +Returns: + + None + + """ + pass + + + def LoadBarState(self,profileName:'str') -> 'None': + """ + Loads a control bars settings + +Args: + + profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def SaveBarState(self,profileName:'str') -> 'None': + """ + Saves a control bars settings + +Args: + + profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References + +Returns: + + None + + """ + pass + + + def ShowControlBar(self,controlBar:'PyCControlBar',bShow:'typing.Any',bDelay:'typing.Any') -> 'None': + """ + Shows a control bar. + +Args: + + controlBar(PyCControlBar):The control bar to dock. + bShow(typing.Any):Show or hide flag. + bDelay(typing.Any):If TRUE, delay showing the control bar. If FALSE, show the control bar immediately.MFC References + +Returns: + + None + + """ + pass + + + def RecalcLayout(self,bNotify:'typing.Any'=1) -> 'None': + """ + Called by the framework when the standard control bars are toggled on or off or + +when the frame window is resized. + +Args: + + bNotify(typing.Any):Notify flagMFC References + +Returns: + + None + + """ + pass + + + def GetActiveView(self,) -> 'PyCView': + """ + Retrieves the active view. + +Args: + + + +Returns: + + PyCView + + """ + pass + + + def OnBarCheck(self,_id:'typing.Any') -> 'typing.Any': + """ + Changes the state of the specified controlbar. + +Args: + + _id(typing.Any):The control ID of the control bar. + +Returns: + + typing.Any + + """ + pass + + + def OnUpdateControlBarMenu(self,cmdUI:'PyCCmdUI') -> 'typing.Any': + """ + Checks the state of a menu item + +Args: + + cmdUI(PyCCmdUI):A cmdui object + +Returns: + + typing.Any + + """ + pass + + + def SetActiveView(self,view:'PyCView',bNotify:'typing.Any'=1) -> 'None': + """ + Sets the active view for a frame. + +Args: + + view(PyCView):The view to set active. + bNotify(typing.Any):Specifies whether the view is to be notified of activation. If TRUE, OnActivateView is called for the new view; if FALSE, it is not. + +Returns: + + None + + """ + pass + + +class PyCGdiObject(object): + """A class which encapsulates an MFC CGdiObject.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCImageList(object): + """A Python type encapsulating an MFC CImageList class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Add(self,arg:'typing.Tuple[typing.Any, typing.Any]',bitmap:'typing.Any',color:'typing.Any',hIcon:'typing.Any') -> 'typing.Any': + """ + Adds an image to the list. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):2 Bitmaps to use (primary and mask)Alternative Parameters + bitmap(typing.Any):Bitmap to use + color(typing.Any):Color to use for the mask.Alternative Parameters + hIcon(typing.Any):Handle of an icon to add.Return ValueZero-based index of the first new image. + +Returns: + + typing.Any:Handle of an icon to add. +Return ValueZero-based index of the first new image. + + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Destroys the underlying CImageList + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteImageList(self,) -> 'None': + """ + Deletes an image list. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetBkColor(self,) -> 'typing.Any': + """ + Retrieves the background color of an Image List. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSafeHandle(self,) -> 'typing.Any': + """ + Retrieves the HIMAGELIST for the object + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetImageCount(self,) -> 'typing.Any': + """ + Retrieves the number of images in an image list. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetImageInfo(self,index:'typing.Any') -> 'typing.Any': + """ + Retrieves information about an image. + +Args: + + index(typing.Any):Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. + +Returns: + + typing.Any:Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. + + + """ + pass + + + def SetBkColor(self,color:'typing.Any') -> 'None': + """ + Sets the background color for an Image List. + +Args: + + color(typing.Any):The new background color. + +Returns: + + None + + """ + pass + + +class PyCListBox(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddString(self,_object:'typing.Any') -> 'typing.Any': + """ + Adds a string to a listbox. + +Args: + + _object(typing.Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References + +Returns: + + typing.Any:CListBox::AddString +Return ValueThe zero based index of the new string. + + + """ + pass + + + def DeleteString(self,pos:'typing.Any') -> 'typing.Any': + """ + Deletes an item from a listbox. + +Args: + + pos(typing.Any):The zero based index of the item to delete.MFC References + +Returns: + + typing.Any:CListBox::DeleteString +Return ValueThe count of the items remaining in the list. + + + """ + pass + + + def Dir(self,attr:'typing.Any',wild:'str') -> 'typing.Any': + """ + Fills a listbox with a directory listing. + +Args: + + attr(typing.Any):The attributes of the files to locate + wild(str):A file specification string - eg, *.*MFC References + +Returns: + + typing.Any:CListBox::Dir +Return ValueThe index of the last file name added to the list. + + + """ + pass + + + def GetCaretIndex(self,) -> 'typing.Any': + """ + Returns the index of the item which has focus. + +Args: + + + +Returns: + + typing.Any:PyCListBox.GetCaretIndex + +int = GetCaretIndex()Returns the index of the item which has focus. +Return ValueThe zero-based index of the item that has the focus rectangle in a list box. + +If the list box is a single-selection list box, the return value is the index of the item that is selected, if + +any. + + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Returns the count of items in the listbox. + +Args: + + + +Returns: + + typing.Any:CListBox::GetCount +Return ValueReturns the number of items currently in the listbox. + + + """ + pass + + + def GetCurSel(self,) -> 'typing.Any': + """ + Returns the index of the currently selected item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemData(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific object associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetItemValue(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetSel(self,index:'typing.Any') -> 'typing.Any': + """ + Returns the selection state of a specified item. + +Args: + + index(typing.Any):The index of the item to return the state for.MFC References + +Returns: + + typing.Any:CListBox::GetSel +Return ValueA +ve number if the item is selected, else zero. + + + """ + pass + + + def GetSelCount(self,) -> 'typing.Any': + """ + Returns the number of selected items in a multiple selection listbox. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelItems(self,) -> 'typing.Any': + """ + Returns a list of the indexes of the currently selected items in a multiple + +selection listbox. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelTextItems(self,) -> 'typing.Any': + """ + Returns a list of the strings of the currently selected items in a multiple + +selection listbox. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTopIndex(self,) -> 'typing.Any': + """ + Returns the index of the top most visible item. + +Args: + + + +Returns: + + typing.Any:CListBox::GetTopIndex +Return ValueThe zero based index of the top most visible item. + + + """ + pass + + + def GetText(self,index:'typing.Any') -> 'str': + """ + Returns the string for a specified item. + +Args: + + index(typing.Any):The index of the item to retrieve the text of + +Returns: + + str + + """ + pass + + + def GetTextLen(self,index:'typing.Any') -> 'typing.Any': + """ + Returns the length of the string for a specified item. + +Args: + + index(typing.Any):The index of the item to retrieve the length of the text.MFC References + +Returns: + + typing.Any + + """ + pass + + + def InsertString(self,pos:'typing.Any',_object:'typing.Any') -> 'typing.Any': + """ + Insert a string into a listbox. + +Args: + + pos(typing.Any):The zero based index in the listbox to insert the new string + _object(typing.Any):The object to be added to the listboxMFC References + +Returns: + + typing.Any:CListBox::InsertString +Return ValueThe zero based index of the new string added. + + + """ + pass + + + def ResetContent(self,) -> 'None': + """ + Clear all the items from a listbox. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCaretIndex(self,index:'typing.Any',bScroll:'typing.Any'=1) -> 'None': + """ + Sets the focus rectange to a specified item. + +Args: + + index(typing.Any):The zero based index of the item. + bScroll(typing.Any):Should the listbox scroll to the item?MFC References + +Returns: + + None + + """ + pass + + + def SelectString(self,after:'typing.Any',string:'str') -> 'None': + """ + Searches for a list-box item that matches the specified string, and selects it. + +Args: + + after(typing.Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire listbox. + string(str):The string to search for.MFC References + +Returns: + + None:CListBox::SelectString +Return ValueThe return value is always None - an exception is raised if the string can not be located. + + + """ + pass + + + def SelItemRange(self,bSel:'typing.Any',start:'typing.Any',end:'typing.Any') -> 'None': + """ + Selects an item range. + +Args: + + bSel(typing.Any):Should the selection specified be set or cleared? + start(typing.Any):The zero based index of the first item to select. + end(typing.Any):The zero based index of the last item to select. + +Returns: + + None + + """ + pass + + + def SetCurSel(self,index:'typing.Any') -> 'None': + """ + Selects an item in a single selection listbox. + +Args: + + index(typing.Any):The zero based index of the item to select.MFC References + +Returns: + + None + + """ + pass + + + def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific object value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + typing.Any + + """ + pass + + + def SetItemValue(self,item:'typing.Any',data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + data(typing.Any):New value for the data. + +Returns: + + typing.Any + + """ + pass + + + def SetSel(self,index:'typing.Any',bSel:'typing.Any'=1) -> 'None': + """ + Selects an item in a multiple selection listbox. + +Args: + + index(typing.Any):The zero based index of the item to select. + bSel(typing.Any):Should the item be selected or deselected?MFC References + +Returns: + + None + + """ + pass + + + def SetTabStops(self,eachTabStop:'typing.Any',tabStops:'typing.Any') -> 'None': + """ + Sets the tab stops for a listbox. + +Args: + + eachTabStop(typing.Any):The position for each tab stop.Alternative Parameters + tabStops(typing.Any):Each individual tab stop. + +Returns: + + None + + """ + pass + + + def SetTopIndex(self,index:'typing.Any') -> 'None': + """ + Sets the top index (top most visible item) of the listbox. + +Args: + + index(typing.Any):The zero based index of the item to place at the top of the list.MFC References + +Returns: + + None + + """ + pass + + +class PyCListCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Arrange(self,code:'typing.Any') -> 'None': + """ + Aligns items on a grid. + +Args: + + code(typing.Any):Specifies the alignment style for the items + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',PyCWnd:'typing.Any',_id:'typing.Any') -> 'None': + """ + Creates the actual window for the object. + +Args: + + style(typing.Any):The window style + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + PyCWnd(typing.Any):The parent window + _id(typing.Any):The control IDMFC References + +Returns: + + None + + """ + pass + + + def DeleteAllItems(self,) -> 'None': + """ + Deletes all items from the list. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteItem(self,item:'typing.Any') -> 'None': + """ + Deletes the specified item. + +Args: + + item(typing.Any):The item to delete. + +Returns: + + None + + """ + pass + + + def GetTextColor(self,) -> 'typing.Any': + """ + Retrieves the text color of a list view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetTextColor(self,color:'typing.Any') -> 'None': + """ + Sets the text color of a list view control. + +Args: + + color(typing.Any):The new color. + +Returns: + + None + + """ + pass + + + def GetBkColor(self,) -> 'typing.Any': + """ + Retrieves the background color of the control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetBkColor(self,color:'typing.Any') -> 'None': + """ + Sets the background color of the control. + +Args: + + color(typing.Any):The new background color. + +Returns: + + None + + """ + pass + + + def GetItem(self,item:'typing.Any',sub:'typing.Any') -> 'LV_ITEM': + """ + Retrieves the details of an items attributes. + +Args: + + item(typing.Any):The index of the item whose attributes are to be retrieved. + sub(typing.Any):Specifies the subitem whose text is to be retrieved. + +Returns: + + LV_ITEM + + """ + pass + + + def GetItemCount(self,) -> 'typing.Any': + """ + Retrieves the number of items in a list view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemRect(self,item:'typing.Any',bTextOnly:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the bounding rectangle of a list view item. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + bTextOnly(typing.Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the list view control. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetEditControl(self,) -> 'PyCEdit': + """ + Retrieves the handle of the edit control used to edit the specified + +list view item. + +Args: + + + +Returns: + + PyCEdit + + """ + pass + + + def EditLabel(self,item:'typing.Any') -> 'PyCEdit': + """ + Edits a specified list view item in-place. + +Args: + + item(typing.Any):The index of item to edit. + +Returns: + + PyCEdit + + """ + pass + + + def EnsureVisible(self,item:'typing.Any',bPartialOK:'typing.Any') -> 'typing.Any': + """ + Ensures that a list view item is visible in its list view control. + +Args: + + item(typing.Any):The index of item to edit. + bPartialOK(typing.Any):Specifies whether partial visibility is acceptable. + +Returns: + + typing.Any + + """ + pass + + + def CreateDragImage(self,item:'typing.Any') -> 'typing.Tuple[PyCImageList, typing.Any, typing.Any]': + """ + Creates a dragging bitmap for the specified list view + +item. + +Args: + + item(typing.Any):The index of the item to edit. + +Returns: + + typing.Tuple[PyCImageList, typing.Any, typing.Any] + + """ + pass + + + def GetImageList(self,nImageList:'typing.Any') -> 'PyCImageList': + """ + Retrieves the current image list. + +Args: + + nImageList(typing.Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. + +Returns: + + PyCImageList + + """ + pass + + + def GetNextItem(self,item:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Searches for a list view item with specified properties and with specified + +relationship to a given item. + +Args: + + item(typing.Any):Index of the item to begin the searching with, or -1 to find the first item that matches the specified flags. The specified item itself is excluded from the search. + flags(typing.Any):Geometric relation of the requested item to the specified item, and the state of the requested item. The geometric relation can be one of these values: LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT The state can be zero, or it can be one or more of these values: LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED If an item does not have all of the specified state flags set, the search continues with the next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. + +Returns: + + typing.Any:Geometric relation of the requested item to the specified item, + +and the state of the requested item. The geometric relation can be one of these values: + +LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT + +The state can be zero, or it can be one or more of these values: + +LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED + +If an item does not have all of the specified state flags set, the search continues with the + +next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. + + + """ + pass + + + def InsertColumn(self,colNo:'typing.Any',item:'LV_COLUMN') -> 'typing.Any': + """ + Inserts a column into a list control when in report view. + +Args: + + colNo(typing.Any):The new column number + item(LV_COLUMN):A tuple describing the new column. + +Returns: + + typing.Any + + """ + pass + + + def InsertItem(self,item:'LV_ITEM',item1:'typing.Any',text:'typing.Any',image:'typing.Any',item2:'typing.Any',text1:'typing.Any') -> 'typing.Any': + """ + Inserts an item into the list. + +Args: + + item(LV_ITEM):A tuple describing the new item.Alternative Parameters + item1(typing.Any):The index of the item. + text(typing.Any):The text of the item. + image(typing.Any):The index of the image to use.Alternative Parameters + item2(typing.Any):The index of the item. + text1(typing.Any):The text of the item. + +Returns: + + typing.Any + + """ + pass + + + def SetImageList(self,imageList:'PyCImageList',imageType:'typing.Any') -> 'typing.Any': + """ + Assigns an image list to a list view control. + +Args: + + imageList(PyCImageList):The Image List to use. + imageType(typing.Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE + +Returns: + + typing.Any + + """ + pass + + + def GetColumn(self,column:'typing.Any') -> 'LV_COLUMN': + """ + Retrieves the details of a column in the control. + +Args: + + column(typing.Any):The index of the column whose attributes are to be retrieved. + +Returns: + + LV_COLUMN + + """ + pass + + + def GetTextBkColor(self,) -> 'typing.Any': + """ + Retrieves the text background color of a list view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetTextBkColor(self,color:'typing.Any') -> 'None': + """ + Sets the text background color of a list view control. + +Args: + + color(typing.Any):The new background color. + +Returns: + + None + + """ + pass + + + def GetTopIndex(self,) -> 'typing.Any': + """ + Retrieves the index of the topmost visible item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetCountPerPage(self,) -> 'typing.Any': + """ + Calculates the number of items that can fit vertically in a list view + +control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelectedCount(self,) -> 'typing.Any': + """ + Retrieves the number of selected items in the list view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetItem(self,item:'LV_ITEM') -> 'typing.Any': + """ + Sets some of all of an items attributes. + +Args: + + item(LV_ITEM):A tuple describing the new item. + +Returns: + + typing.Any + + """ + pass + + + def SetItemState(self,item:'typing.Any',state:'typing.Any',mask:'typing.Any') -> 'typing.Any': + """ + Changes the state of an item in a list view control. + +Args: + + item(typing.Any):Index of the item whose state is to be set. + state(typing.Any):New values for the state bits. + mask(typing.Any):Mask specifying which state bits to change. + +Returns: + + typing.Any + + """ + pass + + + def GetItemState(self,item:'typing.Any',mask:'typing.Any') -> 'typing.Any': + """ + Retrieves the state of a list view item. + +Args: + + item(typing.Any):The index of the item whose position is to be retrieved. + mask(typing.Any):Mask specifying which of the item's state flags to return. + +Returns: + + typing.Any + + """ + pass + + + def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific value. + +Args: + + item(typing.Any):Index of the item whose Data is to be set. + Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + typing.Any + + """ + pass + + + def GetItemData(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def SetItemCount(self,count:'typing.Any') -> 'None': + """ + Prepares a list view control for adding a large number of items. + +Args: + + count(typing.Any):Number of items that the control will ultimately contain.CommentsBy calling this function before adding a large number of items, you enable a list view control to reallocate its internal data structures only once rather than every time you add an item. + +Returns: + + None + + """ + pass + + + def SetItemText(self,item:'typing.Any',sub:'typing.Any',text:'str') -> 'typing.Any': + """ + Changes the text of a list view item or subitem. + +Args: + + item(typing.Any):Index of the item whose text is to be set. + sub(typing.Any):Index of the subitem, or zero to set the item label. + text(str):String that contains the new item text. + +Returns: + + typing.Any + + """ + pass + + + def GetItemText(self,item:'typing.Any',sub:'typing.Any') -> 'typing.Any': + """ + Retrieves the text of a list view item or subitem. + +Args: + + item(typing.Any):The index of the item whose text is to be retrieved. + sub(typing.Any):Specifies the subitem whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def RedrawItems(self,first:'typing.Any',first1:'typing.Any') -> 'typing.Any': + """ + Forces a listview to repaint a range of items. + +Args: + + first(typing.Any):Index of the first item to be repainted. + first1(typing.Any):Index of the last item to be repainted.CommentsThe specified items are not actually repainted until the list view window receives a WM_PAINT message. To repaint immediately, call the Windows UpdateWindow function after using this function. + +Returns: + + typing.Any + + """ + pass + + + def Update(self,item:'typing.Any') -> 'None': + """ + Forces the control to repaint a specified item. + +Args: + + item(typing.Any):The new color. + +Returns: + + None + + """ + pass + + + def SetColumn(self,colNo:'typing.Any',item:'LV_COLUMN') -> 'typing.Any': + """ + Changes column state in a list control when in report view. + +Args: + + colNo(typing.Any):The to be modified column number + item(LV_COLUMN):A tuple describing the modified column. + +Returns: + + typing.Any + + """ + pass + + + def DeleteColumn(self,first:'typing.Any') -> 'typing.Any': + """ + Deletes the specified column from the list control. + +Args: + + first(typing.Any):Index of the column to be removed. + +Returns: + + typing.Any + + """ + pass + + + def GetColumnWidth(self,first:'typing.Any') -> 'typing.Any': + """ + Gets the width of the specified column in the list control. + +Args: + + first(typing.Any):Index of the column whose width is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def SetColumnWidth(self,first:'typing.Any',first1:'typing.Any') -> 'typing.Any': + """ + Sets the width of the specified column in the list control. + +Args: + + first(typing.Any):Index of the column to be changed. + first1(typing.Any):New width of the column. + +Returns: + + typing.Any + + """ + pass + + + def GetStringWidth(self,first:'typing.Any') -> 'typing.Any': + """ + Gets the necessary column width to fully display this text in a column. + +Args: + + first(typing.Any):String that contains the text whose width is to be determined.CommentsDoesn't take the size of an included Image in account, only the size of the text is determined. + +Returns: + + typing.Any + + """ + pass + + + def HitTest(self,arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Determines which list view item, if any, is at a specified position. + +Args: + + arg(typing.Any):The point to test.Return ValueThe result is a tuple of (flags, item, subItem). flags may be a combination of the following values:ValueDescriptioncommctrl.LVHT_ABOVEThe position is above the control's client area.commctrl.LVHT_BELOWThe position is below the control's client area.commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a list item.commctrl.LVHT_ONITEMICONThe position is over a list view item's icon.commctrl.LVHT_ONITEMLABELThe position is over a list view item's text.commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item.commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area.commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, item, subItem). + +flags may be a combination of the following values: + + + +Value + + +Description + + + +commctrl.LVHT_ABOVEThe position is above the control's client area. +commctrl.LVHT_BELOWThe position is below the control's client area. +commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a + +list item. +commctrl.LVHT_ONITEMICONThe position is over a list view item's icon. +commctrl.LVHT_ONITEMLABELThe position is over a list view item's text. +commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item. +commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area. +commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. + + + """ + pass + + + def GetItemPosition(self,item:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Determines the position of the specified item. + +Args: + + item(typing.Any):The item to determine the position for. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + +class PyCListView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + typing.Any + + """ + pass + + + def GetListCtrl(self,) -> 'PyCListCtrl': + """ + Returns the underlying list control object. + +Args: + + + +Returns: + + PyCListCtrl + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCMDIChildWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ActivateFrame(self,cmdShow:'typing.Any'=-1) -> 'None': + """ + Calls the underlying MFC ActivateFrame method. + +Args: + + cmdShow(typing.Any):The status of the window.See Also + +Returns: + + None + + """ + pass + + + def CreateWindow(self,wndClass:'str',title:'str',style:'typing.Any',PyCWnd:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None,createContext:'typing.Any'=None) -> 'typing.Any': + """ + Creates the actual window for the PyCWnd object. + +Args: + + wndClass(str):The window class name, or None + title(str):The window title + style(typing.Any):The window style + PyCWnd(typing.Any):The parent window + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + createContext(typing.Any):A tuple representing a CREATECONTEXT structure.CommentsYou do not need to call this method if you use the MFC Document/View framework. + +Returns: + + typing.Any + + """ + pass + + + def GetMDIFrame(self,) -> 'None': + """ + Returns the MDI parent frame + +Args: + + + +Returns: + + None + + """ + pass + + + def MDIActivate(self,cmdShow:'typing.Any'=-1) -> 'None': + """ + Activates the MDI frame independent of the main frame. + +Args: + + cmdShow(typing.Any):The status of the window.See Also + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def PreTranslateMessage(self,) -> 'None': + """ + Calls the base PreTranslateMessage handler + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Calls the standard Python framework OnClose handler + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCMDIFrameWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetMDIClient(self,) -> 'PyCMDIFrameWnd': + """ + Returns the MDI client window + +Args: + + + +Returns: + + PyCMDIFrameWnd + + """ + pass + + + def MDIGetActive(self,) -> 'typing.Tuple[PyCMDIChildWnd, typing.Any]': + """ + Retrieves the current active MDI child window, along + +with a flag indicating whether the child window is maximized. + +Args: + + + +Returns: + + typing.Tuple[PyCMDIChildWnd, typing.Any] + + """ + pass + + + def MDIActivate(self,window:'PyCWnd') -> 'PyCMDIFrameWnd': + """ + Activate an MDI child window + +Args: + + window(PyCWnd):The window to activate. + +Returns: + + PyCMDIFrameWnd + + """ + pass + + + def MDINext(self,fNext:'typing.Any'=0) -> 'None': + """ + Activates the next MDI window + +Args: + + fNext(typing.Any):Indicates if the next (0) or previous (non-zero) window is requested.CommentsUnlike MFC, this version supports the fNext param in the WM_MDINEXT message. + +Returns: + + None + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def PreTranslateMessage(self,) -> 'None': + """ + Calls the base PreTranslateMessage handler + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + + def OnContextHelp(self,) -> 'typing.Any': + """ + Calls the underlying MFC OnContextHelp method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnClose(self,) -> 'None': + """ + Calls the standard Python framework OnClose handler + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCMenu(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AppendMenu(self,flags:'typing.Any',_id:'typing.Any'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': + """ + Appends a new item to the end of a menu. Python can specify the state of the menu item + +by setting values in nFlags. + +Args: + + flags(typing.Any):Specifies information about the state of the new menu item when it is added to the menu. May be a combination of the win32con.MF_* values. + _id(typing.Any):Specifies either the command ID of the new menu item. + value(typing.Union[str, typing.Any]):Specifies the content of the new menu item. If used, flags must contain win32con.MF_STRING. + +Returns: + + None + + """ + pass + + + def DeleteMenu(self,_id:'typing.Any',flags:'typing.Any') -> 'str': + """ + Deletes the specified menu item. + +Args: + + _id(typing.Any):The id of the item being deleted. + flags(typing.Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. + +Returns: + + str + + """ + pass + + + def EnableMenuItem(self,_id:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Enables, disables, or dims a menu item. + +Args: + + _id(typing.Any):Specifies the command ID of the menu item. This parameter can specify pop-up menu items as well as standard menu items. + flags(typing.Any):Specifies the action to take. It can be a combination of MF_DISABLED, MF_ENABLED, or MF_GRAYED, with MF_BYCOMMAND or MF_BYPOSITIONCommentsThe PyCMenu::CreateMenu, PyCMenu::InsertMenu, PyCMenu::ModifyMenu, and PyCMenu::LoadMenuIndirect member functions can also set the state (enabled, disabled, or dimmed) of a menu item. + +Returns: + + typing.Any + + """ + pass + + + def GetHandle(self,) -> 'typing.Any': + """ + Returns the menu object's underlying hMenu. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetMenuItemCount(self,) -> 'typing.Any': + """ + Determines the number of items in a menu. + +Args: + + + +Returns: + + typing.Any:PyCMenu.GetMenuItemCount + +int = GetMenuItemCount()Determines the number of items in a menu. +Return ValueThe number of items in the menu if the function is successful; otherwise -1. + + + """ + pass + + + def GetMenuItemID(self,pos:'typing.Any') -> 'typing.Any': + """ + Returns the item ID for the specified item in a pop-up menu. + +Args: + + pos(typing.Any):The position (zero-based) of the menu item whose ID is being retrieved.CommentsIf the specified item is a pop-up menu (as opposed to an item within the pop-up menu), the return value is -1. If nPos corresponds to a SEPARATOR menu item, the return value is 0. + +Returns: + + typing.Any + + """ + pass + + + def GetMenuString(self,_id:'typing.Any',arg:'typing.Any') -> 'str': + """ + Returns the string for a specified menu item. + +Args: + + _id(typing.Any):The id of the item being requested. + arg(typing.Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. + +Returns: + + str + + """ + pass + + + def GetSubMenu(self,pos:'typing.Any') -> 'PyCMenu': + """ + Returns a submenu. + +Args: + + pos(typing.Any):The position (zero-based) of the menu item being retrieved. + +Returns: + + PyCMenu + + """ + pass + + + def InsertMenu(self,pos:'typing.Any',flags:'typing.Any',_id:'typing.Union[PyCMenu, typing.Any]'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': + """ + Inserts an item into a menu. + +Args: + + pos(typing.Any):The position (zero-based) the item should be inserted. + flags(typing.Any):Flags for the new item. + _id(typing.Union[PyCMenu, typing.Any]):The ID for a new menu item, or handle to a submenu + value(typing.Union[str, typing.Any]):A string for the menu item. + +Returns: + + None + + """ + pass + + + def ModifyMenu(self,pos:'typing.Any',flags:'typing.Any',_id:'typing.Any'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': + """ + Modify an item in a menu. + +Args: + + pos(typing.Any):The position (zero-based) the item to be changed. + flags(typing.Any):Flags for the item. + _id(typing.Any):The ID for the item. + value(typing.Union[str, typing.Any]):A string for the menu item. + +Returns: + + None + + """ + pass + + + def TrackPopupMenu(self,arg:'typing.Tuple[typing.Any, typing.Any]',arg1:'typing.Any',arg2:'PyCWnd') -> 'None': + """ + Creates a popup menu anywhere on the screen. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The position for the menu.. + arg1(typing.Any):Flags for the menu. + arg2(PyCWnd):The owner of the menu.CommentsThe TrackPopupMenu function displays a floating pop-up menu at the specified location and tracks the selection of items on the pop-up menu. The floating pop-up menu can appear anywhere on the screen.Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is returned instead of the normal exception. + +Returns: + + None:The owner of the menu. +Comments + +The TrackPopupMenu function displays a floating pop-up menu at the + +specified location and tracks the selection of items on the pop-up menu. + +The floating pop-up menu can appear anywhere on the screen. +Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is + +returned instead of the normal exception. + + + """ + pass + + +class PyCOleClientItem(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateNewItem(self,) -> 'None': + """ + Creates an embedded item. + +Args: + + + +Returns: + + None + + """ + pass + + + def Close(self,) -> 'None': + """ + Closes the item + +Args: + + + +Returns: + + None + + """ + pass + + + def DoVerb(self,) -> 'None': + """ + Executes the specified verb. + +Args: + + + +Returns: + + None + + """ + pass + + + def Draw(self,) -> 'None': + """ + Draws the OLE item into the specified bounding rectangle using the specified device + +context. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetActiveView(self,) -> 'PyCView': + """ + Obtains the active view for the item + +Args: + + + +Returns: + + PyCView + + """ + pass + + + def GetDocument(self,) -> 'PyCDocument': + """ + Obtains the current document for the item + +Args: + + + +Returns: + + PyCDocument + + """ + pass + + + def GetInPlaceWindow(self,) -> 'PyCWnd': + """ + Obtains the window in which the item has been opened for + +in-place editing. + +Args: + + + +Returns: + + PyCWnd + + """ + pass + + + def GetItemState(self,) -> 'None': + """ + Obtains the OLE item's current state + +Args: + + + +Returns: + + None + + """ + pass + + + def GetObject(self,) -> 'PyIUnknown': + """ + Returns the COM object to the item. This is the m_lpObject + +variable in MFC. + +Args: + + + +Returns: + + PyIUnknown + + """ + pass + + + def GetStorage(self,) -> 'None': + """ + Returns the COM object used for storage + +Args: + + + +Returns: + + None + + """ + pass + + + def OnActivate(self,) -> 'None': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnChange(self,) -> 'None': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnChangeItemPosition(self,) -> 'typing.Any': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + typing.Any:PyCOleClientItem.OnChangeItemPosition + +int = OnChangeItemPosition()Calls the underlying MFC method. +Return ValueThe result is a BOOL indicating if the function succeeded. No exception is thrown. + + + """ + pass + + + def OnDeactivateUI(self,) -> 'typing.Any': + """ + Calls the underlying MFC method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Run(self,) -> 'None': + """ + Runs the application associated with this item. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetItemRects(self,) -> 'None': + """ + Sets the bounding rectangle or the visible rectangle of the OLE item. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCOleDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCOleDocument(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def EnableCompoundFile(self,bEnable:'typing.Any'=1) -> 'None': + """ + Call this function if you want to store the document using the + +compound-file format. + +Args: + + bEnable(typing.Any):Specifies whether compound file support is enabled or disabled. + +Returns: + + None + + """ + pass + + + def GetStartPosition(self,) -> 'typing.Any': + """ + Obtains the position of the first item in the document. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNextItem(self,pos:'typing.Any') -> 'typing.Tuple[typing.Any, PyCOleClientItem]': + """ + Call this function repeatedly to access each of + +the items in your document. + +Args: + + pos(typing.Any):The position to iterate from. + +Returns: + + typing.Tuple[typing.Any, PyCOleClientItem] + + """ + pass + + + def GetInPlaceActiveItem(self,wnd:'PyCWnd') -> 'PyCOleClientItem': + """ + Obtains the OLE item that is currently activated + +in place in the frame window containing the view identified by obWnd. + +Args: + + wnd(PyCWnd):The window. + +Returns: + + PyCOleClientItem + + """ + pass + + +class PyCOleInsertDialog(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetClassID(self,) -> 'typing.Any': + """ + Returns the CLSID associated with the selected item + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelectionType(self,) -> 'typing.Any': + """ + Returns the type of selection made + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetPathName(self,) -> 'typing.Any': + """ + Returns the full path to the file selected in the dialog box + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCPrintDialog(object): + """An object which encapsulates an MFC CPrintDialog object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCPrintInfo(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DocObject(self,) -> 'None': + """ + Return true if the document being printed is a DocObject. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDwFlags(self,) -> 'None': + """ + A flags specifying DocObject printing operations. Valid only if data member + +m_bDocObject is TRUE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDwFlags(self,) -> 'None': + """ + Set a flag specifying DocObject printing operations. Valid only if data member + +m_bDocObject is TRUE. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDocOffsetPage(self,) -> 'None': + """ + Get the number of pages preceding the first page of a particular DocObject + +in a combined DocObject print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDocOffsetPage(self,) -> 'None': + """ + Set the number of pages preceding the first page of a particular DocObject + +in a combined DocObject print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPrintDialog(self,) -> 'None': + """ + Set a pointer to the CPrintDialog object used to display the Print dialog box + +for the print job. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDirect(self,) -> 'None': + """ + TRUE if the Print dialog box will be bypassed for direct printing; FALSE otherwise. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDirect(self,) -> 'None': + """ + Sets to TRUE if the Print dialog box will be bypassed for direct printing; FALSE + +otherwise. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPreview(self,) -> 'None': + """ + A flag indicating whether the document is being previewed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPreview(self,) -> 'None': + """ + Set whether the document is being previewed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetContinuePrinting(self,) -> 'None': + """ + A flag indicating whether the framework should continue the print loop. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetContinuePrinting(self,) -> 'None': + """ + Set whether the framework should continue the print loop. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCurPage(self,) -> 'None': + """ + Get the number of the current page. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetCurPage(self,) -> 'None': + """ + Set the number of the current page. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetNumPreviewPages(self,) -> 'None': + """ + Get the number of pages displayed in preview mode. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetNumPreviewPages(self,) -> 'None': + """ + Set the number of pages displayed in preview mode. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetUserData(self,) -> 'None': + """ + Get a user-created structure. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetUserData(self,) -> 'None': + """ + Set a user-created structure. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDraw(self,) -> 'None': + """ + Get the usable drawing area of the page in logical coordinates. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDraw(self,) -> 'None': + """ + Set the usable drawing area of the page in logical coordinates. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPageDesc(self,) -> 'None': + """ + Get the format string used to display the page numbers during print preview + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPageDesc(self,) -> 'None': + """ + Set the format string used to display the page numbers during print preview + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMinPage(self,) -> 'None': + """ + Get the number of the first page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetMinPage(self,) -> 'None': + """ + Set the number of the first page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetMaxPage(self,) -> 'None': + """ + Get the number of the last page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetMaxPage(self,) -> 'None': + """ + Set the number of the last page of the document. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetOffsetPage(self,) -> 'None': + """ + Get the number of pages preceding the first page of a DocObject item being + +printed in a combined DocObject print job. This currently does NOT work, as, if I include the symbol + +pInfo->GetOffsetPage(), the link fails to find its definition. Allways returns 0. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFromPage(self,) -> 'None': + """ + The number of the first page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetToPage(self,) -> 'None': + """ + The number of the last page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetHDC(self,hdc:'typing.Any') -> 'None': + """ + Sets the printer DC compatible with the users choices, call after the print dialog + +DoModal finishes. + +Args: + + hdc(typing.Any):The DC.MFC References + +Returns: + + None + + """ + pass + + + def CreatePrinterDC(self,) -> 'None': + """ + Handle to the newly created printer device context, call only after DoModal + +finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'None': + """ + Call DoModal on the dialog. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetCopies(self,) -> 'None': + """ + The number of copies requested, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDefaults(self,) -> 'None': + """ + Nonzero if the function was successful; otherwise 0. Call this function to + +retrieve the device defaults of the default printer without displaying a dialog box. The retrieved values are placed + +in the m_pd structure. In some cases, a call to this function will call the constructor for CPrintDialog with + +bPrintSetupOnly set to FALSE. In these cases, a printer DC and hDevNames and hDevMode (two handles located in the + +m_pd data member) are automatically allocated. If the constructor for CPrintDialog was called with bPrintSetupOnly + +set to FALSE, this function will not only return hDevNames and hDevMode (located in m_pd.hDevNames and m_pd.hDevMode) + +to the caller, but will also return a printer DC in m_pd.hDC. It is the responsibility of the caller to delete the + +printer DC and call the WindowsGlobalFree function on the handles when you are finished with the CPrintDialog object. + +Args: + + + +Returns: + + None + + """ + pass + + + def FreeDefaults(self,) -> 'None': + """ + After a call to GetDefaults, and you are through with the CPrintDialog object, + +this call deletes the printer DC and calls GlobalFree function on the handles. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDeviceName(self,) -> 'None': + """ + The name of the currently selected printer, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDriverName(self,) -> 'None': + """ + The name of the currently selected printer device driver, call only after + +DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDlgFromPage(self,) -> 'None': + """ + Retrieves the starting page of the print range. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetDlgToPage(self,) -> 'None': + """ + Retrieves the ending page of the print range. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPortName(self,) -> 'None': + """ + The name of the currently selected printer port, call only after DoModal + +finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPrinterDC(self,) -> 'None': + """ + A handle to the printer device context if successful; otherwise NULL. If the + +bPrintSetupOnly parameter of the CPrintDialog constructor was FALSE (indicating that the Print dialog box is + +displayed), then GetPrinterDC returns a handle to the printer device context. You must call the WindowsDeleteDC + +function to delete the device context when you are done using it. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintAll(self,) -> 'None': + """ + Nonzero if all pages in the document are to be printed; otherwise 0, call only after + +DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintCollate(self,) -> 'None': + """ + Nonzero if the user selects the collate check box in the dialog box; otherwise + +0, call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintRange(self,) -> 'None': + """ + Nonzero if only a range of pages in the document are to be printed; otherwise 0, + +call only after DoModal finishes. + +Args: + + + +Returns: + + None + + """ + pass + + + def PrintSelection(self,) -> 'None': + """ + Nonzero if only the selected items are to be printed; otherwise 0., call only + +after DoModal finishes + +Args: + + + +Returns: + + None + + """ + pass + + + def GetHDC(self,) -> 'None': + """ + Identifies a device context or an information context, depending on whether the Flags + +member specifies the PD_RETURNDC or PC_RETURNIC flag. If neither flag is specified, the value of this member is + +undefined. If both flags are specified, PD_RETURNDC has priority. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetFlags(self,) -> 'None': + """ + A set of bit flags that you can use to initialize the Print common dialog box. When + +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the + +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, + +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, + +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, + +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, + +PD_USEDEVMODECOPIESANDCOLLATE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFlags(self,) -> 'None': + """ + A set of bit flags that you can use to initialize the Print common dialog box. When + +the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the + +following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, + +PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, + +PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, + +PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, + +PD_USEDEVMODECOPIESANDCOLLATE. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFromPage(self,) -> 'None': + """ + The number of the first page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetToPage(self,) -> 'None': + """ + The number of the last page to be printed. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPRINTDLGMinPage(self,) -> 'None': + """ + Get the minimum value for the page range specified in the From and To page + +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are + +disabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPRINTDLGMinPage(self,) -> 'None': + """ + Set the minimum value for the page range specified in the From and To page + +edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are + +disabled. + +Args: + + + +Returns: + + None + + """ + pass + + + def GetPRINTDLGCopies(self,) -> 'None': + """ + Get the initial number of copies for the Copies edit control if hDevMode is + +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, + +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer + +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags + +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the + +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more + +information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetPRINTDLGCopies(self,) -> 'None': + """ + Set the initial number of copies for the Copies edit control if hDevMode is + +NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, + +nCopies contains the actual number of copies to print. This value depends on whether the application or the printer + +driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags + +member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the + +flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more + +information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCProgressCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(typing.Any):The style for the control. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. + parent(PyCWnd):The parent window of the control. Usually a PyCDialog. + _id(typing.Any):The control's ID. + +Returns: + + None + + """ + pass + + + def SetRange(self,nLower:'typing.Any'=1,nUpper:'typing.Any'=1) -> 'None': + """ + Set the control's bounds + +Args: + + nLower(typing.Any):Specifies the lower limit of the range (default is zero). + nUpper(typing.Any):Specifies the upper limit of the range (default is 100). + +Returns: + + None + + """ + pass + + + def SetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's position + +Args: + + nPos(typing.Any):New position of the progress bar control. + +Returns: + + typing.Any + + """ + pass + + + def OffsetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': + """ + Advances the progress bar control's current position by the increment + +specified + +Args: + + nPos(typing.Any):Amount to advance the position. + +Returns: + + typing.Any + + """ + pass + + + def SetStep(self,nStep:'typing.Any'=1) -> 'typing.Any': + """ + Specifies the step increment for a progress bar control. + +Args: + + nStep(typing.Any):New step increment. + +Returns: + + typing.Any + + """ + pass + + + def StepIt(self,) -> 'typing.Any': + """ + Advances the current position for a progress bar control by the step increment. + +Returns previous position. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCPropertyPage(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CancelToClose(self,) -> 'None': + """ + Changes the Cancel button to Close. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnCancel(self,) -> 'None': + """ + Calls the default MFC OnCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnOK(self,) -> 'None': + """ + Calls the default MFC OnOK handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnApply(self,) -> 'None': + """ + Calls the default MFC OnApply handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnReset(self,) -> 'None': + """ + Calls the default MFC OnReset handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnQueryCancel(self,) -> 'None': + """ + Calls the default MFC OnQueryCancel handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardBack(self,) -> 'None': + """ + Calls the default MFC OnWizardBack handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardNext(self,) -> 'None': + """ + Calls the default MFC OnWizardNext handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnWizardFinish(self,) -> 'None': + """ + Calls the default MFC OnWizardFinish handler. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnSetActive(self,) -> 'typing.Any': + """ + Calls the default MFC OnSetActive handler. + +Args: + + + +Returns: + + typing.Any:PyCPropertyPage.OnSetActive virtual method +Return ValueThe result is true if the page should be made active. + +Typically this result should be passed to the original OnSetActive handler. + + + """ + pass + + + def OnKillActive(self,) -> 'typing.Any': + """ + Calls the default MFC OnKillActive handler. + +Args: + + + +Returns: + + typing.Any:PyCPropertyPage.OnKillActive virtual method +Return ValueThe result is true if the page should be deselected. + +Typically this result should be passed to the original OnSetActive handler. + + + """ + pass + + + def SetModified(self,bChanged:'typing.Any'=1) -> 'None': + """ + Sets the modified flag. + +Args: + + bChanged(typing.Any):A flag to indicate the new modified state. + +Returns: + + None + + """ + pass + + + def SetPSPBit(self,bitMask:'typing.Any',bitValue:'typing.Any') -> 'None': + """ + Sets or clears a bit in m_psp.dwFlags + +Args: + + bitMask(typing.Any):The PSP_* bit mask constant + bitValue(typing.Any):1 to set, 0 to clear + +Returns: + + None + + """ + pass + + +class PyCPropertySheet(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddPage(self,page:'PyCPropertyPage') -> 'None': + """ + Adds the supplied page with the rightmost tab in the property sheet. + +Args: + + page(PyCPropertyPage):The page to be added.CommentsAdd pages to the property sheet in the left-to-right order you want them to appear.MFC References + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'typing.Any',exStyle:'typing.Any',parent:'PyCWnd'=None) -> 'None': + """ + Displays the property sheet as a modeless dialog. + +Args: + + style(typing.Any):The style for the window. + exStyle(typing.Any):The extended style for the window. + parent(PyCWnd):The parent of the dialog. + +Returns: + + None + + """ + pass + + + def DoModal(self,) -> 'typing.Any': + """ + Displays the property sheet as a modal dialog. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def EnableStackedTabs(self,stacked:'typing.Any') -> 'PyCPropertyPage': + """ + Enables or disables stacked tabs. + +Args: + + stacked(typing.Any):A boolean flag + +Returns: + + PyCPropertyPage + + """ + pass + + + def EndDialog(self,result:'typing.Any') -> 'None': + """ + Closes the dialog, with the specified result. + +Args: + + result(typing.Any):The result to be returned by DoModal. + +Returns: + + None + + """ + pass + + + def GetActiveIndex(self,) -> 'typing.Any': + """ + Retrieves the index of the active page of the property sheet. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetActivePage(self,) -> 'PyCPropertyPage': + """ + Returns the currently active property page. + +Args: + + + +Returns: + + PyCPropertyPage + + """ + pass + + + def GetPage(self,pageNo:'typing.Any') -> 'PyCPropertyPage': + """ + Returns the specified property page. + +Args: + + pageNo(typing.Any):The index of the page toretrieve.MFC References + +Returns: + + PyCPropertyPage + + """ + pass + + + def GetPageIndex(self,page:'PyCPropertyPage') -> 'typing.Any': + """ + Retrieves the index of the specified page of the property sheet. + +Args: + + page(PyCPropertyPage):The page. + +Returns: + + typing.Any + + """ + pass + + + def GetPageCount(self,) -> 'typing.Any': + """ + Returns the number of pages. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTabCtrl(self,) -> 'PyCTabCtrl': + """ + Returns the tab control used by the sheet. + +Args: + + + +Returns: + + PyCTabCtrl + + """ + pass + + + def OnInitDialog(self,) -> 'typing.Any': + """ + Calls the default MFC OnInitDialog handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def PressButton(self,button:'typing.Any') -> 'None': + """ + Simulates the choice of the specified button in a property sheet. + +Args: + + button(typing.Any):The button to press + +Returns: + + None + + """ + pass + + + def RemovePage(self,offset:'typing.Any',page:'typing.Any') -> 'None': + """ + Removes the specified page from the sheet. + +Args: + + offset(typing.Any):The page number to removeAlternative Parameters + page(typing.Any):The page to remove + +Returns: + + None + + """ + pass + + + def SetActivePage(self,page:'PyCPropertyPage') -> 'None': + """ + Programmatically sets the active page object. + +Args: + + page(PyCPropertyPage):The page. + +Returns: + + None + + """ + pass + + + def SetTitle(self,title:'str') -> 'None': + """ + Sets the caption for the property sheet. + +Args: + + title(str):The new caption + +Returns: + + None + + """ + pass + + + def SetFinishText(self,text:'str') -> 'None': + """ + Sets the text for the Finish button + +Args: + + text(str):The next for the button + +Returns: + + None + + """ + pass + + + def SetWizardMode(self,) -> 'None': + """ + Enables the wizard mode + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWizardButtons(self,flags:'typing.Any') -> 'None': + """ + Enables the wizard buttons + +Args: + + flags(typing.Any):The wizard flags + +Returns: + + None + + """ + pass + + + def SetPSHBit(self,bitMask:'typing.Any',bitValue:'typing.Any') -> 'None': + """ + Sets or clears a bit in m_psh.dwFlags + +Args: + + bitMask(typing.Any):The PSH_* bit mask constant + bitValue(typing.Any):1 to set, 0 to clear + +Returns: + + None + + """ + pass + + +class PyCRect(object): + """A Python interface the the MFC CRect class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRgn(object): + """An object encapsulating an MFC PyCRgn class.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class PyCRichEditCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def Clear(self,) -> 'typing.Any': + """ + Clears all text in an edit control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Copy(self,) -> 'None': + """ + Copys the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates a rich edit control window. + +Args: + + style(typing.Any):The control style + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The position of the control + parent(PyCWnd):The parent window. Must not be None + _id(typing.Any):The control ID + +Returns: + + None + + """ + pass + + + def Cut(self,) -> 'None': + """ + Cuts the current selection to the clipboard. + +Args: + + + +Returns: + + None + + """ + pass + + + def FindText(self,charPos:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Finds text in the control + +Args: + + charPos(typing.Any):The character position + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetCharPos(self,charPos:'typing.Any') -> 'typing.Any': + """ + Returns the location of the top-left corner of the character specified + +by charPos. + +Args: + + charPos(typing.Any):The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple + +Returns: + + typing.Any:The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple + + + + """ + pass + + + def GetDefaultCharFormat(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any:CRichEditCtrl::GetDefaultCharFormat +Return ValueThe return value is a win32ui::CHARFORMAT tuple + + + + """ + pass + + + def GetEventMask(self,) -> 'typing.Any': + """ + Returns the current event mask. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSelectionCharFormat(self,) -> 'typing.Any': + """ + Returns the character formatting of the selection. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetFirstVisibleLine(self,) -> 'typing.Any': + """ + Returns zero-based index of the topmost visible line. + +Args: + + + +Returns: + + typing.Any:CRichEditCtrl::GetFirstVisibleLine +Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. + + + """ + pass + + + def GetParaFormat(self,) -> 'typing.Any': + """ + Returns the current paragraph formatting attributes. + +Args: + + + +Returns: + + typing.Any:CRichEditCtrl::GetParaFormat +Return ValueThe return value is a win32ui::PARAFORMAT tuple + + + + """ + pass + + + def GetSel(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the start and end of the current selection. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::GetSel +Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the + +end of the current selection) + + + """ + pass + + + def GetSelText(self,) -> 'str': + """ + Returns the currently selected text + +Args: + + + +Returns: + + str + + """ + pass + + + def GetTextLength(self,) -> 'typing.Any': + """ + Returns the length of the text in the control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetLine(self,lineNo:'typing.Any') -> 'typing.Any': + """ + Returns the text in a specified line. + +Args: + + lineNo(typing.Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. + +Returns: + + typing.Any + + """ + pass + + + def GetModify(self,) -> 'typing.Any': + """ + Nonzero if the text in this control has been modified; otherwise 0. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetLineCount(self,) -> 'typing.Any': + """ + Gets the number of lines in an edit control. + +Args: + + + +Returns: + + typing.Any:CRichEditCtrl::GetLineCount +Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. + + + """ + pass + + + def LimitText(self,nChars:'typing.Any'=0) -> 'None': + """ + Sets max length of text that user can enter + +Args: + + nChars(typing.Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References + +Returns: + + None + + """ + pass + + + def LineFromChar(self,charNo:'typing.Any'=-1) -> 'typing.Any': + """ + Returns the line number of the specified character. + +Args: + + charNo(typing.Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References + +Returns: + + typing.Any:CRichEditCtrl::LineFromChar +Return ValueThe zero-based line number of the line containing the character index specified by charNo. + +If charNo is -1, the number of the line that contains the first character of the selection is returned. + +If there is no selection, the current line number is returned. + + + """ + pass + + + def LineIndex(self,lineNo:'typing.Any'=-1) -> 'typing.Any': + """ + Retrieves the character index of a line within a multiple-line edit control. + +Args: + + lineNo(typing.Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + typing.Any:CRichEditCtrl::LineIndex +Return ValueThe character index of the line specified in lineNo, or -1 if + +the specified line number is greater then the number of lines in + +the edit control. + + + """ + pass + + + def LineScroll(self,nLines:'typing.Any',nChars:'typing.Any'=0) -> 'typing.Any': + """ + Scroll the control vertically and horizontally + +Args: + + nLines(typing.Any):Specifies the number of lines to scroll vertically. + nChars(typing.Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References + +Returns: + + typing.Any + + """ + pass + + + def Paste(self,) -> 'None': + """ + Pastes the contents of the clipboard into the control. + +Args: + + + +Returns: + + None + + """ + pass + + + def ReplaceSel(self,text:'str') -> 'None': + """ + Replaces the selection with the specified text. + +Args: + + text(str):The text to replace the selection with.MFC References + +Returns: + + None + + """ + pass + + + def SetBackgroundColor(self,bSysColor:'typing.Any',cr:'typing.Any'=0) -> 'typing.Any': + """ + Sets the background color for the control. + +Args: + + bSysColor(typing.Any):Indicates if the background color should be set to the system value. If this value is TRUE, cr is ignored. + cr(typing.Any):The requested background color. Used only if bSysColor is FALSE.MFC References + +Returns: + + typing.Any:CRichEditCtrl::SetEventMask +Return ValueThe return value is the previous background color. + + + """ + pass + + + def SetDefaultCharFormat(self,charFormat:'typing.Any') -> 'None': + """ + None + +Args: + + charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References + +Returns: + + None + + """ + pass + + + def SetEventMask(self,eventMask:'typing.Any') -> 'typing.Any': + """ + Sets the event motification mask. + +Args: + + eventMask(typing.Any):The new event mask. Must be one of the win32con.ENM_* flags.MFC References + +Returns: + + typing.Any:CRichEditCtrl::SetEventMask +Return ValueThe return value is the previous event mask. + + + """ + pass + + + def SetSelectionCharFormat(self,charFormat:'typing.Any') -> 'None': + """ + Sets the current selections character formatting attributes. + +Args: + + charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References + +Returns: + + None + + """ + pass + + + def SetModify(self,modified:'typing.Any'=1) -> 'None': + """ + Sets the modified flag for this control + +Args: + + modified(typing.Any):Indicates the new value for the modified flag.MFC References + +Returns: + + None + + """ + pass + + + def SetOptions(self,op:'typing.Any',flags:'typing.Any') -> 'None': + """ + Sets options for the control. + +Args: + + op(typing.Any):Indicates the operation. Must be one of the win32con.ECOOP_* flags. + flags(typing.Any):Indicates the options. Must be one a combination of win32con.ECO_* flags.MFC References + +Returns: + + None + + """ + pass + + + def SetParaFormat(self,paraFormat:'typing.Any') -> 'typing.Any': + """ + Sets the paragraph formatting + +Args: + + paraFormat(typing.Any):A charformat tuple. See win32ui::PARAFORMAT tuple for details.MFC References + +Returns: + + typing.Any:CRichEditCtrl::SetParaFormat +Return ValueThis function seems to return occasionally return failure, but + +the formatting is applied. Therefore an exception is not raised on failure, + +but the BOOL return code is passed back. + + + """ + pass + + + def SetReadOnly(self,bReadOnly:'typing.Any'=1) -> 'None': + """ + Sets or clears the read-only status of the listbox. + +Args: + + bReadOnly(typing.Any):The read-only state to set.MFC References + +Returns: + + None + + """ + pass + + + def SetSel(self,start:'typing.Any',end:'typing.Any',arg:'typing.Any') -> 'None': + """ + Sets the selection in the edit control. + +Args: + + start(typing.Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. + end(typing.Any):Specifies the ending position.Alternative Parameters + arg(typing.Any):As for normal start, end args.MFC References + +Returns: + + None + + """ + pass + + + def SetSelAndCharFormat(self,charFormat:'typing.Any') -> 'None': + """ + Sets the selection and char format. + +Args: + + charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.CommentsHighly optimised for speed for color editors.MFC References + +Returns: + + None + + """ + pass + + + def SetTargetDevice(self,dc:'PyCDC',lineWidth:'typing.Any') -> 'None': + """ + Sets the target device for the control + +Args: + + dc(PyCDC):The new DC - may be None + lineWidth(typing.Any):Line width to use for formatting.MFC References + +Returns: + + None + + """ + pass + + + def StreamIn(self,_format:'typing.Any',method:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Invokes a callback to stream data into the control. + +Args: + + _format(typing.Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) + method(typing.Any):A callable object (eg, a method or function) This method is called with a single integer param, which is the maximum number of bytes to fetch. The method should return a zero length string, or None to finish the operation, and a string otherwise.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::StreamIn +Return ValueThe return value is a tuple of (no bytes written, error code) + + + """ + pass + + + def StreamOut(self,_format:'typing.Any',method:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Invokes a callback to stream data into the control. + +Args: + + _format(typing.Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) and may also combine SFF_SELECTION. + method(typing.Any):A callable object (eg, a method or function) This method is called with a string parameter. It should return an integer, zero to abort, non zero otherwise.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::StreamOut +Return ValueThe return value is a tuple of (no bytes written, error code) + + + """ + pass + + +class PyCRichEditDoc(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def OnCloseDocument(self,) -> 'None': + """ + Call the MFC OnCloseDocument handler. + +This routine is provided so a document object which overrides this method + +can call the original MFC version if required. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCRichEditDocTemplate(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def DoCreateRichEditDoc(self,fileName:'str'=None) -> 'PyCRichEditDoc': + """ + Creates an underlying document object. + +Args: + + fileName(str):The name of the file to load. + +Returns: + + PyCRichEditDoc + + """ + pass + + +class PyCRichEditView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetRichEditCtrl(self,) -> 'PyCRichEditCtrl': + """ + Returns the underlying rich edit control object. + +Args: + + + +Returns: + + PyCRichEditCtrl + + """ + pass + + + def SetWordWrap(self,wordWrap:'typing.Any') -> 'typing.Any': + """ + Sets the wordwrap state for the control. + +Args: + + wordWrap(typing.Any):The new word-wrap state.MFC References + +Returns: + + typing.Any + + """ + pass + + + def WrapChanged(self,) -> 'typing.Any': + """ + Calls the underlying WrapChanged method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SaveTextFile(self,FileName:'typing.Any') -> 'typing.Any': + """ + Saves the contents of the control as a test file + +Args: + + FileName(typing.Any):Name of file to saveCommentsTheere is no equivilent MFC method. This is implemented in this module for performance reasons. + +Returns: + + typing.Any + + """ + pass + + +class PyCScrollView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetDeviceScrollPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the positon of the scroll bars in device units. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetDC(self,) -> 'PyCDC': + """ + Gets the view's current DC. + +Args: + + + +Returns: + + PyCDC + + """ + pass + + + def GetScrollPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the current position of the scroll bars (in logical units). + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def GetTotalSize(self,) -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Returns the total size of the view in logical units. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + + def ResizeParentToFit(self,bShrinkOnly:'typing.Any'=1) -> 'typing.Any': + """ + Lets the size of a view dictate the size of its frame window. + +Args: + + bShrinkOnly(typing.Any):The kind of resizing to perform. The default value, TRUE, shrinks the frame window if appropriate.CommentsThis is recommended only for views in MDI child frame windows. Use ResizeParentToFit in the OnInitialUpdate handler function of your View class. You must ensure the parent's PyCFrameWnd::RecalcLayout is called before using this method. + +Returns: + + typing.Any + + """ + pass + + + def SetScaleToFitSize(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Scales the viewport size to the current window size automatically. + +Args: + + size(typing.Tuple[typing.Any, typing.Any]):The horizontal and vertical sizes to which the view is to be scaled. The scroll view's size is measured in logical units. + +Returns: + + None + + """ + pass + + + def ScrollToPosition(self,position:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Scrolls to a given point in the view. + +Args: + + position(typing.Tuple[typing.Any, typing.Any]):The position to scroll to. + +Returns: + + None + + """ + pass + + + def SetScrollSizes(self,mapMode:'typing.Any',sizeTotal:'typing.Tuple[typing.Any, typing.Any]',arg:'typing.Tuple[typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Sets the sizes of the scroll bars + +Args: + + mapMode(typing.Any):The mapping mode for this view. + sizeTotal(typing.Tuple[typing.Any, typing.Any]):The total size of the view. Sizes are in logical units. Both x and y must be greater than zero. + arg(typing.Tuple[typing.Any, typing.Any]):The number of untils to scroll in response to a page-down command. + arg1(typing.Tuple[typing.Any, typing.Any]):The number of untils to scroll in response to a line-down command. + +Returns: + + None + + """ + pass + + + def UpdateBars(self,) -> 'None': + """ + Update the scroll bars state + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCSliderCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(typing.Any):The style for the control. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. + parent(PyCWnd):The parent window of the control. Usually a PyCDialog. + _id(typing.Any):The control's ID. + +Returns: + + None + + """ + pass + + + def GetLineSize(self,) -> 'typing.Any': + """ + Get the control's position + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetLineSize(self,nLineSize:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's line size. Returns the previous line size. + +Args: + + nLineSize(typing.Any):New line size of the Slider bar control + +Returns: + + typing.Any + + """ + pass + + + def GetPageSize(self,) -> 'typing.Any': + """ + Get the control's position + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetPageSize(self,nPageSize:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's page size Returns the previous page size. + +Args: + + nPageSize(typing.Any):New page size of the Slider bar control. + +Returns: + + typing.Any + + """ + pass + + + def GetRangeMax(self,) -> 'typing.Any': + """ + Get the control's Maximum + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRangeMin(self,) -> 'typing.Any': + """ + Get the control's Minimum + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRange(self,) -> 'typing.Any': + """ + Get the control's min and max + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetRange(self,nRangeMin:'typing.Any'=1,nRangeMax:'typing.Any'=1,bRedraw:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's min and max + +Args: + + nRangeMin(typing.Any):New minimum of the Slider bar control. + nRangeMax(typing.Any):New maximum of the Slider bar control. + bRedraw(typing.Any):Should slider be redrawn? + +Returns: + + typing.Any + + """ + pass + + + def GetSelection(self,) -> 'typing.Any': + """ + Get the control's selection start and end positions + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetSelection(self,nRangeMin:'typing.Any'=1,nRangeMax:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's selection start and end positions + +Args: + + nRangeMin(typing.Any):New start of the Slider's selection. + nRangeMax(typing.Any):New end of the Slider's selection. + +Returns: + + typing.Any + + """ + pass + + + def GetChannelRect(self,) -> 'typing.Any': + """ + Get the control's channel rectangle + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetThumbRect(self,) -> 'typing.Any': + """ + Get the control's thumb rectangle + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetPos(self,) -> 'typing.Any': + """ + Get the control's position + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': + """ + Set the control's position + +Args: + + nPos(typing.Any):New position of the Slider bar control. + +Returns: + + typing.Any + + """ + pass + + + def GetNumTics(self,) -> 'typing.Any': + """ + Get number of tics in the slider + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTicArray(self,) -> 'typing.Any': + """ + Get a tuple of slider tic positions + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetTic(self,nTic:'typing.Any'=1) -> 'typing.Any': + """ + Get the position of the specified tic number + +Args: + + nTic(typing.Any):Zero based index of the tic mark + +Returns: + + typing.Any + + """ + pass + + + def GetTicPos(self,nTic:'typing.Any'=1) -> 'typing.Any': + """ + Get the position of the specified tic number in client coordinates + +Args: + + nTic(typing.Any):Zero based index of the tic mark + +Returns: + + typing.Any + + """ + pass + + + def SetTic(self,nTic:'typing.Any'=1) -> 'typing.Any': + """ + Set a tic at the specified position + +Args: + + nTic(typing.Any):Position of the desired tic mark + +Returns: + + typing.Any + + """ + pass + + + def SetTicFreq(self,nFreq:'typing.Any'=1) -> 'typing.Any': + """ + Set the tic frequency + +Args: + + nFreq(typing.Any):Frequency of tic marks + +Returns: + + typing.Any + + """ + pass + + + def ClearSel(self,bRedraw:'typing.Any'=1) -> 'typing.Any': + """ + Clear the selection + +Args: + + bRedraw(typing.Any):Redraw the control? + +Returns: + + typing.Any + + """ + pass + + + def VerifyPos(self,) -> 'typing.Any': + """ + Verify the position is between configured min and max + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def ClearTics(self,bRedraw:'typing.Any'=1) -> 'typing.Any': + """ + Clear the control's tic marks + +Args: + + bRedraw(typing.Any):Redraw the control? + +Returns: + + typing.Any + + """ + pass + + +class PyCSpinButtonCtrl(object): + """A windows spin button control. Encapsulates an MFC CSpinButtonCtrl object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPos(self,) -> 'typing.Any': + """ + Obtains the current position for a spin button control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetPos(self,pos:'typing.Any') -> 'typing.Any': + """ + Sets the current position for a spin button control. + +Args: + + pos(typing.Any):The new position.Return ValueThe result is the previous position. + +Returns: + + typing.Any:The new position.Return ValueThe result is the previous position. + + + """ + pass + + + def SetRange(self,) -> 'typing.Any': + """ + Sets the upper and lower limits (range) for a spin button control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetRange32(self,) -> 'typing.Any': + """ + Sets the 32 bit upper and lower limits (range) for a spin button control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCSplitterWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPane(self,row:'typing.Any',col:'typing.Any') -> 'PyCWnd': + """ + None + +Args: + + row(typing.Any):The row in the splitter. + col(typing.Any):The column in the splitter.CommentsTheoretically the return value can be a PyCWnd object, but currently it will always be a PyCView or derived object. + +Returns: + + PyCWnd + + """ + pass + + + def CreateView(self,view:'PyCView',row:'typing.Any',col:'typing.Any',arg:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Creates a view in a splitter window + +Args: + + view(PyCView):The view to place in the splitter pane. + row(typing.Any):The row in the splitter to place the view. + col(typing.Any):The column in the splitter to place the view. + arg(typing.Tuple[typing.Any, typing.Any]):The initial size of the new view.MFC References + +Returns: + + None + + """ + pass + + + def CreateStatic(self,parent:'typing.Any',rows:'typing.Any',cols:'typing.Any',style:'typing.Any',_id:'typing.Any') -> 'None': + """ + Creates a static splitter window. + +Args: + + parent(typing.Any):The parent window. + rows(typing.Any):The number of rows in the splitter. + cols(typing.Any):The number of columns in the splitter. + style(typing.Any):Specifies the window style + _id(typing.Any):The child window ID of the window. The ID can be AFX_IDW_PANE_FIRST unless the splitter window is nested inside another splitter window.CommentsA static splitter window is a splitter where the number of panes are fixed at window creation time. Currently this is the only splitter window supported by win32ui.MFC References + +Returns: + + None + + """ + pass + + + def SetColumnInfo(self,column:'typing.Any',ideal:'typing.Any',_min:'typing.Any') -> 'None': + """ + Sets a new minimum height and ideal height for a column + +Args: + + column(typing.Any):The column in the splitter. + ideal(typing.Any):Specifies an ideal height for the splitter window column in pixels. + _min(typing.Any):Specifies a minimum height for the splitter window column in pixels. + +Returns: + + None + + """ + pass + + + def SetRowInfo(self,row:'typing.Any',ideal:'typing.Any',_min:'typing.Any') -> 'None': + """ + Sets a new minimum height and ideal height for a row. + +Args: + + row(typing.Any):The row in the splitter. + ideal(typing.Any):Specifies an ideal height for the splitter window row in pixels. + _min(typing.Any):Specifies a minimum height for the splitter window row in pixels. + +Returns: + + None + + """ + pass + + + def IdFromRowCol(self,row:'typing.Any',col:'typing.Any') -> 'None': + """ + Gets the child window ID for the specified child. + +Args: + + row(typing.Any):The row in the splitter. + col(typing.Any):The col in the splitter + +Returns: + + None + + """ + pass + + + def DoKeyboardSplit(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCStatusBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetPaneInfo(self,index:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Returns the id, style, and width of the indicator pane at the + +location specified by index. + +Args: + + index(typing.Any):Index of the pane whose information is to be retrieved.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetStatusBarCtrl(self,) -> 'PyCStatusBarCtrl': + """ + Gets the statusbar control object for the statusbar. + +Args: + + + +Returns: + + PyCStatusBarCtrl + + """ + pass + + + def SetIndicators(self,indicators:'typing.Any') -> 'None': + """ + Sets each indicator's ID. + +Args: + + indicators(typing.Any):A tuple containing the ID's of the indicators. + +Returns: + + None + + """ + pass + + + def SetPaneInfo(self,index:'typing.Any',_id:'typing.Any',style:'typing.Any',width:'typing.Any') -> 'None': + """ + Sets the specified indicator pane to a new ID, style, and width. + +Args: + + index(typing.Any):Index of the indicator pane whose style is to be set. + _id(typing.Any):New ID for the indicator pane. + style(typing.Any):New style for the indicator pane.The following indicator styles are supported:afxres.SBPS_NOBORDERS - No 3-D border around the pane.afxres.SBPS_POPOUT - Reverse border so that text "pops out."afxres.SBPS_DISABLED - Do not draw text.afxres.SBPS_STRETCH - Stretch pane to fill unused space. Only one pane per status bar can have this style.afxres.SBPS_NORMAL - No stretch, borders, or pop-out. + width(typing.Any):New width for the indicator pane.MFC References + +Returns: + + None + + """ + pass + + +class PyCStatusBarCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the actual control. + +Args: + + style(typing.Any):The style for the control. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. + parent(PyCWnd):The parent window of the control. Usually a PyCDialog. + _id(typing.Any):The control's ID. + +Returns: + + None + + """ + pass + + + def GetBorders(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': + """ + Retrieve the status bar control's current widths of + +the horizontal and vertical borders and of the space between rectangles. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetParts(self,nParts:'typing.Any') -> 'typing.Any': + """ + Retrieve coordinates of the parts in a status bar control. + +Args: + + nParts(typing.Any):The number of coordinates to retrieveCommentsThis function, as designed in MFC, returns both the *number* of parts, and, through an OUT parameter, an array of ints giving the coordinates of the parts. There is also an IN parameter saying how many coordinates to give back. Here, we're explicitly changing the semantics a bit.GetParts() -> Tuple of all coordinates GetParts(n) -> Tuple of the first n coordinates (or all coordinates, if fewer than n)So, in Python, you can't simultaneously find out how many coordinates there are, and retrieve a subset of them. In a reasonable universe, there would have been GetParts() -> int, and GetCoords() -> List. This means that I need to call the MFC method twice; once to find out how many there are, and another time to get them. + +Returns: + + typing.Any + + """ + pass + + + def GetRect(self,nPane:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the bounding rectangle of a part in a status + +bar control. + +Args: + + nPane(typing.Any):Zero-based index of the part whose bounding rectangle is to be retrieved. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetText(self,nPane:'typing.Any') -> 'typing.Any': + """ + Retrieve the text from the given part of a status bar control. + +Args: + + nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetTextAttr(self,nPane:'typing.Any') -> 'typing.Any': + """ + Retrieve the attributes of the text in the given part of a status bar + +control. + +Args: + + nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetTextLength(self,nPane:'typing.Any') -> 'typing.Any': + """ + Retrieve the length the text in the given part of a status bar control. + +Args: + + nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def SetMinHeight(self,nHeight:'typing.Any') -> 'None': + """ + Set the minimum height of a status bar control's drawing area. + +Args: + + nHeight(typing.Any):Minimum height + +Returns: + + None + + """ + pass + + + def SetParts(self,coord:'typing.Any') -> 'None': + """ + Sets the number of parts in a status bar control and the coordinate of the right + +edge of each part. + +Args: + + coord(typing.Any):Coordinates of each part + +Returns: + + None + + """ + pass + + + def SetText(self,text:'str',nPane:'typing.Any',nType:'typing.Any') -> 'None': + """ + Set the text in the given part of a status bar control. + +Args: + + text(str):The text to display + nPane(typing.Any):Zero-based index of the part to set. + nType(typing.Any):Type of drawing operation.CommentsThe drawing type can be set to one of:~ 0 - The text is drawn with a border to appear lower than the plane of the status bar.~ win32con.SBT_NOBORDERS - The text is drawn without borders.~ win32con.SBT_OWNERDRAW - The text is drawn by the parent window.~ win32con.SBT_POPOUT - The text is drawn with a border to appear higher than the plane of the status bar. + +Returns: + + None + + """ + pass + + + def SetTipText(self,nPane:'typing.Any',text:'str') -> 'None': + """ + Sets the tooltip text for a pane in a status bar. The status bar must have + +been created with the afxres.SBT_TOOLTIPS control style to enable ToolTips. + +Args: + + nPane(typing.Any):The zero-based index of status bar pane to receive the tooltip text. + text(str):The string containing the tooltip text.CommentsPay attention, this tooltip text is ONLY displayed in two situations: 1. When the corresponding pane in the status bar contains only an icon. 2. When the corresponding pane in the status bar contains text that is truncated due to the size of the pane. To make the tooltip appear even if the text is not truncated, you could add additional spaces to the end of the pane text.MFC References + +Returns: + + None + + """ + pass + + +class PyCTabCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetCurSel(self,) -> 'typing.Any': + """ + Gets the current selection of a tab control. + +Args: + + + +Returns: + + typing.Any:PyCTabCtrl.GetCurSel + +int = GetCurSel()Gets the current selection of a tab control. +Return ValueThe zero-based index of the currently selected item, or -1 if no selection. + + + """ + pass + + + def GetItemCountl(self,) -> 'typing.Any': + """ + Returns the number of tabs in the control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetCurSel(self,index:'typing.Any') -> 'typing.Any': + """ + Sets the current selection of a tab control. + +Args: + + index(typing.Any):The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. + +Returns: + + typing.Any:The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. + + + """ + pass + + +class PyCToolBar(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetButtonStyle(self,index:'typing.Any') -> 'None': + """ + Retrieves the style for a button. + +Args: + + index(typing.Any):Index of the item whose style is to be retrieved. + +Returns: + + None + + """ + pass + + + def GetButtonText(self,index:'typing.Any') -> 'str': + """ + Gets the text for a button. + +Args: + + index(typing.Any):Index of the item whose text is to be retrieved. + +Returns: + + str + + """ + pass + + + def GetItemID(self,index:'typing.Any') -> 'None': + """ + Returns the command ID of a button or separator at the given index. + +Args: + + index(typing.Any):Index of the item whose ID is to be retrieved. + +Returns: + + None + + """ + pass + + + def SetButtonInfo(self,index:'typing.Any',ID:'typing.Any',style:'typing.Any',imageIx:'typing.Any') -> 'None': + """ + Sets the button's command ID, style, and image number. + +Args: + + index(typing.Any):Index of the button or separator whose information is to be set. + ID(typing.Any):The value to which the button's command ID is set. + style(typing.Any):The new button style + imageIx(typing.Any):New index for the button's image within the bitmap + +Returns: + + None + + """ + pass + + + def GetToolBarCtrl(self,) -> 'PyCToolBarCtrl': + """ + Gets the toolbar control object for the toolbar + +Args: + + + +Returns: + + PyCToolBarCtrl + + """ + pass + + + def LoadBitmap(self,_id:'PyResourceId') -> 'None': + """ + Loads the bitmap containing bitmap-button images. + +Args: + + _id(PyResourceId):Name or id of the resource that contains the bitmap.CommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. + +Returns: + + None + + """ + pass + + + def LoadToolBar(self,_id:'PyResourceId') -> 'None': + """ + Loads a toolbar from a toolbar resource. + +Args: + + _id(PyResourceId):Name or resource id of the resourceCommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. + +Returns: + + None + + """ + pass + + + def SetBarStyle(self,style:'typing.Any') -> 'None': + """ + Sets the toolbar part of style + +Args: + + style(typing.Any):The toolbar style to set. + +Returns: + + None + + """ + pass + + + def SetBitmap(self,hBitmap:'typing.Any') -> 'None': + """ + Sets a bitmapped image. + +Args: + + hBitmap(typing.Any):The handle to a bitmap resource.CommentsCall this method to set the bitmap image for the toolbar. For example, call SetBitmap to change the bitmapped image after the user takes an action on a document that changes the action of a button. + +Returns: + + None + + """ + pass + + + def SetButtons(self,buttons:'typing.Any',numButtons:'typing.Any') -> 'None': + """ + Sets button styles and an index of button images within the bitmap. + +Args: + + buttons(typing.Any):A tuple containing the ID's of the buttons.Alternative Parameters + numButtons(typing.Any):The number of buttons to pre-allocate. If this option is used, then PyCToolBar::PySetButtonInfo must be used. + +Returns: + + None + + """ + pass + + + def SetButtonStyle(self,index:'typing.Any',style:'typing.Any') -> 'None': + """ + Sets the style for a button. + +Args: + + index(typing.Any):Index of the item whose style is to be set + style(typing.Any):The new style + +Returns: + + None + + """ + pass + + + def SetHeight(self,height:'typing.Any') -> 'None': + """ + Sets the height of the toolbar. + +Args: + + height(typing.Any):The height in pixels of the toolbar. + +Returns: + + None + + """ + pass + + + def SetSizes(self,sizeButton:'typing.Tuple[typing.Any, typing.Any]',sizeButton1:'typing.Tuple[typing.Any, typing.Any]') -> 'None': + """ + Sets the size of each button. + +Args: + + sizeButton(typing.Tuple[typing.Any, typing.Any]):The size of each button. + sizeButton1(typing.Tuple[typing.Any, typing.Any]):The size of each bitmap. + +Returns: + + None + + """ + pass + + +class PyCToolBarCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddBitmap(self,numButtons:'typing.Any',bitmap:'typing.Any') -> 'typing.Any': + """ + Add one or more button images to the list of button images + +Args: + + numButtons(typing.Any):Number of button images in the bitmap. + bitmap(typing.Any):Bitmap containing button or buttons to be addedMFC References + +Returns: + + typing.Any + + """ + pass + + + def AddButtons(self,) -> 'typing.Any': + """ + Add one or more buttons to the toolbar + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def AddStrings(self,strings:'typing.Any') -> 'typing.Any': + """ + Add one or more strings to the toolbar + +Args: + + strings(typing.Any):Strings to add. Can give more than one string. + +Returns: + + typing.Any + + """ + pass + + + def AutoSize(self,) -> 'None': + """ + Resize the entire toolbar control + +Args: + + + +Returns: + + None + + """ + pass + + + def CheckButton(self,nID:'typing.Any',bCheck:'typing.Any'=1) -> 'typing.Any': + """ + Check or clear a given button in a toolbar control + +Args: + + nID(typing.Any):Command identifier of the button to check or clear. + bCheck(typing.Any):1 to check, 0 to clear the buttonMFC References + +Returns: + + typing.Any + + """ + pass + + + def CommandToIndex(self,nID:'typing.Any') -> 'typing.Any': + """ + Retrieve the zero-based index for the button associated with the + +specified command identifier. + +Args: + + nID(typing.Any):Command identifier of the button you want to find.MFC References + +Returns: + + typing.Any + + """ + pass + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Creates the window for a new toolbar object + +Args: + + style(typing.Any):The style for the button. Use any of the win32con.BS_* constants. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the button. + parent(PyCWnd):The parent window of the button. Usually a PyCDialog. + _id(typing.Any):The buttons control ID.MFC References + +Returns: + + None + + """ + pass + + + def Customize(self,) -> 'None': + """ + Display the Customize Toolbar dialog box. + +Args: + + + +Returns: + + None + + """ + pass + + + def DeleteButton(self,nID:'typing.Any') -> 'None': + """ + Delete a button from the toolbar control. + +Args: + + nID(typing.Any):ID of the button to delete.MFC References + +Returns: + + None + + """ + pass + + + def EnableButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': + """ + Enable or disable a toolbar control button. + +Args: + + nID(typing.Any):ID of the button to enable or disable. + bEnable(typing.Any):1 to enable, 0 to disableMFC References + +Returns: + + None + + """ + pass + + + def GetBitmapFlags(self,) -> 'typing.Any': + """ + retrieve the bitmap flags from the toolbar. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetButton(self,nID:'typing.Any') -> 'typing.Any': + """ + Retrieve information about the specified button in a + +toolbar control. + +Args: + + nID(typing.Any):ID of the button to retrieve.MFC References + +Returns: + + typing.Any + + """ + pass + + + def GetButtonCount(self,) -> 'typing.Any': + """ + Retrieve a count of the buttons currently in the toolbar control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItemRect(self,nID:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieve the bounding rectangle of a button in a + +toolbar control. + +Args: + + nID(typing.Any):ID of the button.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetRows(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieve the number of rows of buttons currently displayed + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def HideButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': + """ + Hide or show the specified button in a toolbar control. + +Args: + + nID(typing.Any):ID of the button to hide. + bEnable(typing.Any):1 to hide, 0 to show.MFC References + +Returns: + + None + + """ + pass + + + def Indeterminate(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': + """ + Mark or unmark the specified button as indeterminate + +Args: + + nID(typing.Any):ID of the button to mark. + bEnable(typing.Any):1 to hide, 0 to show.MFC References + +Returns: + + None + + """ + pass + + + def InsertButton(self,nID:'typing.Any',button:'PyCToolBarCtrl') -> 'typing.Any': + """ + Insert a button in a toolbar control. + +Args: + + nID(typing.Any):Zero-based index of a button. This function inserts the new button to the left of this button. + button(PyCToolBarCtrl):Bitmap containing button to be insertedCommentsThe image and/or string whose index you provide must have previously been added to the toolbar control's list using PyCToolBarCtrl::AddBitmap, PyCToolBarCtrl::AddString, and/or PyCToolBarCtrl::AddStrings.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonChecked(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is checked. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonEnabled(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is enabled. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonHidden(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is hidden. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonIndeterminate(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is + +indeterminate. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsButtonPressed(self,nID:'typing.Any') -> 'typing.Any': + """ + Determine whether the specified button in a toolbar control is pressed. + +Args: + + nID(typing.Any):ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def PressButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': + """ + Mark or unmark the specified button as pressed. + +Args: + + nID(typing.Any):ID of the button to mark. + bEnable(typing.Any):1 to mark, 0 to unmark.MFC References + +Returns: + + None + + """ + pass + + + def SetBitmapSize(self,width1:'typing.Any',height1:'typing.Any',width:'typing.Any'=16,height:'typing.Any'=15) -> 'None': + """ + Set the size of the actual bitmapped images to be added to a toolbar control. + +Args: + + width1(typing.Any):Width of bitmap images. + height1(typing.Any):Height of bitmap images.MFC References + width(typing.Any):Width of bitmap images. + height(typing.Any):Height of bitmap images.Alternative Parameters + +Returns: + + None + + """ + pass + + + def SetButtonSize(self,width1:'typing.Any',height1:'typing.Any',width:'typing.Any'=16,height:'typing.Any'=15) -> 'None': + """ + Set the size of the buttons to be added to a toolbar control. + +Args: + + width1(typing.Any):Width of bitmap images. + height1(typing.Any):Height of bitmap images.MFC References + width(typing.Any):Width of buttons + height(typing.Any):Height of buttonsAlternative Parameters + +Returns: + + None + + """ + pass + + + def SetCmdID(self,nIndex:'typing.Any',nID:'typing.Any') -> 'None': + """ + Set the command identifier which will be sent to the owner window when the + +specified button is pressed. + +Args: + + nIndex(typing.Any):The zero-based index of the button whose command ID is to be set. + nID(typing.Any):The command ID to set the selected button to.MFC References + +Returns: + + None + + """ + pass + + + def SetRows(self,nRows:'typing.Any',bLarger:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Ask the toolbar control to resize itself to the requested + +number of rows. + +Args: + + nRows(typing.Any):Requested number of rows. + bLarger(typing.Any):Tells whether to use more rows or fewer rows if the toolbar cannot be resized to the requested number of rows.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + +class PyCToolTipCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'PyCWnd',style:'typing.Any') -> 'None': + """ + Creates the actual control. + +Args: + + parent(PyCWnd):The parent window of the control. + style(typing.Any):The style for the control. + +Returns: + + None + + """ + pass + + + def UpdateTipText(self,text:'str',wnd:'PyCWnd',_id:'typing.Any') -> 'None': + """ + Update the tool tip text for a control's tools + +Args: + + text(str):The text for the tool. + wnd(PyCWnd):The window of the tool. + _id(typing.Any):The id of the tool + +Returns: + + None + + """ + pass + + + def AddTool(self,wnd:'PyCWnd',text:'str',_id:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None) -> 'None': + """ + Adds a tool to tooltip control. + +Args: + + wnd(PyCWnd):The window of the tool. + text(str):The text for the tool. + _id(typing.Any):The id of the tool + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + +Returns: + + None + + """ + pass + + + def SetMaxTipWidth(self,width:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + width(typing.Any):The new width + +Returns: + + typing.Any + + """ + pass + + +class PyCTreeCtrl(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',PyCWnd:'typing.Any',_id:'typing.Any') -> 'None': + """ + Creates the actual window for the object. + +Args: + + style(typing.Any):The window style + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle + PyCWnd(typing.Any):The parent window + _id(typing.Any):The control IDMFC References + +Returns: + + None + + """ + pass + + + def GetCount(self,) -> 'typing.Any': + """ + Retrieves the number of tree items associated with a tree view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetIndent(self,) -> 'typing.Any': + """ + Retrieves the offset (in pixels) of a tree view item from its parent. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetIndent(self,indent:'typing.Any') -> 'None': + """ + Sets the offset (in pixels) of a tree view item from its parent. + +Args: + + indent(typing.Any):The new indent. + +Returns: + + None + + """ + pass + + + def GetImageList(self,nImageList:'typing.Any') -> 'PyCImageList': + """ + Retrieves the current image list. + +Args: + + nImageList(typing.Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. + +Returns: + + PyCImageList + + """ + pass + + + def SetImageList(self,imageList:'PyCImageList',imageType:'typing.Any') -> 'typing.Any': + """ + Assigns an image list to a list view control. + +Args: + + imageList(PyCImageList):The Image List to use. + imageType(typing.Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE + +Returns: + + typing.Any + + """ + pass + + + def GetNextItem(self,item:'typing.Any',code:'typing.Any') -> 'typing.Any': + """ + Retrieves the next item. + +Args: + + item(typing.Any):The specified item + code(typing.Any):Specifies the relationship of the item to fetch. + +Returns: + + typing.Any + + """ + pass + + + def ItemHasChildren(self,item:'typing.Any') -> 'typing.Any': + """ + Returns nonzero if the specified item has child items. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetChildItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the first child item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetNextSiblingItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the next sibling of the specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetPrevSiblingItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the previous sibling of the specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetParentItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the parent item of the specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetFirstVisibleItem(self,) -> 'typing.Any': + """ + Retrieves the first visible item of the tree view control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetNextVisibleItem(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the next visible item of the specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Any + + """ + pass + + + def GetSelectedItem(self,) -> 'typing.Any': + """ + Retrieves the currently selected tree view item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDropHilightItem(self,) -> 'typing.Any': + """ + Retrieves the target of a drag-and-drop operation. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetRootItem(self,) -> 'typing.Any': + """ + Retrieves the root of the specified tree view item. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetToolTips(self,) -> 'typing.Any': + """ + Returns the tooltip control + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetItem(self,item:'typing.Any',arg:'typing.Any') -> 'TV_ITEM': + """ + Retrieves the details of an items attributes. + +Args: + + item(typing.Any):The item whose attributes are to be retrieved. + arg(typing.Any):The requested attributes. + +Returns: + + TV_ITEM + + """ + pass + + + def SetItem(self,item:'TV_ITEM') -> 'typing.Any': + """ + Sets some of all of an items attributes. + +Args: + + item(TV_ITEM):A tuple describing the new item. + +Returns: + + typing.Any + + """ + pass + + + def GetItemState(self,item:'typing.Any',stateMask:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the state and mask of an item. + +Args: + + item(typing.Any):The specified item + stateMask(typing.Any):The mask for the result. + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetItemState(self,item:'typing.Any',state:'typing.Any',stateMask:'typing.Any') -> 'None': + """ + Sets the state of item. + +Args: + + item(typing.Any):The specified item + state(typing.Any):The new state + stateMask(typing.Any):The mask for the new state + +Returns: + + None + + """ + pass + + + def GetItemImage(self,item:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Retrieves the index of an items images. + +Args: + + item(typing.Any):The specified item + +Returns: + + typing.Tuple[typing.Any, typing.Any] + + """ + pass + + + def SetItemImage(self,item:'typing.Any',iImage:'typing.Any',iSelectedImage:'typing.Any') -> 'None': + """ + Sets the index of an items images. + +Args: + + item(typing.Any):The specified item + iImage(typing.Any):The offset of the image. + iSelectedImage(typing.Any):The offset of the selected image. + +Returns: + + None + + """ + pass + + + def SetItemText(self,item:'typing.Any',text:'str') -> 'typing.Any': + """ + Changes the text of a list view item or subitem. + +Args: + + item(typing.Any):The item whose text is to be retrieved. + text(str):String that contains the new item text. + +Returns: + + typing.Any + + """ + pass + + + def GetItemText(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the text of a list view item or subitem. + +Args: + + item(typing.Any):The item whose text is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def GetItemData(self,item:'typing.Any') -> 'typing.Any': + """ + Retrieves the application-specific value associated with an item. + +Args: + + item(typing.Any):The index of the item whose data is to be retrieved. + +Returns: + + typing.Any + + """ + pass + + + def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': + """ + Sets the item's application-specific value. + +Args: + + item(typing.Any):The item whose Data is to be set. + Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. + +Returns: + + typing.Any + + """ + pass + + + def GetItemRect(self,item:'typing.Any',bTextOnly:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Retrieves the bounding rectangle of a tree view item. + +Args: + + item(typing.Any):The item whose Data is to be set. + bTextOnly(typing.Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the tree view control. + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetEditControl(self,) -> 'PyCEdit': + """ + Retrieves the handle of the edit control used to edit the specified + +tree view item. + +Args: + + + +Returns: + + PyCEdit + + """ + pass + + + def GetVisibleCount(self,) -> 'typing.Any': + """ + Retrieves the number of visible tree items associated with a tree view + +control. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def InsertItem(self,hParent:'typing.Any',hInsertAfter:'typing.Any',item:'TV_ITEM',mask:'typing.Any',text:'typing.Any',image:'typing.Any',selectedImage:'typing.Any',state:'typing.Any',stateMask:'typing.Any',lParam:'typing.Any',parent:'typing.Any',parent1:'typing.Any',text1:'typing.Any',image1:'typing.Any',selectedImage1:'typing.Any',parent2:'typing.Any',insertAfter:'typing.Any',text2:'typing.Any',parent3:'typing.Any',parent4:'typing.Any') -> 'typing.Any': + """ + Inserts an item into the list. + +Args: + + hParent(typing.Any):The parent item. If commctrl.TVI_ROOT or 0, it is added to the root. + hInsertAfter(typing.Any):The item to insert after. Can be an item or TVI_FIRST, TVI_LAST or TVI_SORT + item(TV_ITEM):A tuple describing the new item.Alternative Parameters + mask(typing.Any):Integer specifying which attributes to set + text(typing.Any):The text of the item. + image(typing.Any):The index of the image to use. + selectedImage(typing.Any):The index of the items selected image. + state(typing.Any):The initial state of the item. + stateMask(typing.Any):Specifies which bits of the state are valid. + lParam(typing.Any):A user defined object for the item. + parent(typing.Any):The parent of the item. + parent1(typing.Any):The parent of the item.Alternative Parameters + text1(typing.Any):The text for the item. + image1(typing.Any):The index of the image to use. + selectedImage1(typing.Any):The index of the items selected image. + parent2(typing.Any):The parent of the item. + insertAfter(typing.Any):The item to insert the new item after, or TVI_FIRST, TVI_LAST or TVI_SORTAlternative Parameters + text2(typing.Any):The text for the item. + parent3(typing.Any):The parent of the item. + parent4(typing.Any):The parent of the item. + +Returns: + + typing.Any + + """ + pass + + + def DeleteItem(self,item:'typing.Any') -> 'None': + """ + Deletes the specified item. + +Args: + + item(typing.Any):The specified item + +Returns: + + None + + """ + pass + + + def DeleteAllItems(self,) -> 'typing.Any': + """ + Deletes all items in the control + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Expand(self,item:'typing.Any',code:'typing.Any') -> 'None': + """ + Expands, or collapses, the child items of the specified tree view item. + +Args: + + item(typing.Any):The specified item + code(typing.Any):The action to take + +Returns: + + None + + """ + pass + + + def Select(self,item:'typing.Any',code:'typing.Any') -> 'None': + """ + Selects, scrolls into view, or redraws a specified tree view item. + +Args: + + item(typing.Any):The specified item + code(typing.Any):The action to take + +Returns: + + None + + """ + pass + + + def SelectItem(self,item:'typing.Any') -> 'None': + """ + Selects a specified tree view item. + +Args: + + item(typing.Any):The specified item + +Returns: + + None + + """ + pass + + + def SelectDropTarget(self,item:'typing.Any') -> 'None': + """ + Redraws the tree item as the target of a drag-and-drop operation. + +Args: + + item(typing.Any):The specified item + +Returns: + + None + + """ + pass + + + def SelectSetFirstVisible(self,item:'typing.Any') -> 'None': + """ + Selects a specified tree view item as the first visible item. + +Args: + + item(typing.Any):The specified item + +Returns: + + None + + """ + pass + + + def EditLabel(self,item:'typing.Any') -> 'PyCEdit': + """ + Edits a specified tree view item in-place. + +Args: + + item(typing.Any):The item to edit. + +Returns: + + PyCEdit + + """ + pass + + + def CreateDragImage(self,item:'typing.Any') -> 'PyCImageList': + """ + Creates a dragging bitmap for the specified tree view item. + +Args: + + item(typing.Any):The item to edit. + +Returns: + + PyCImageList + + """ + pass + + + def SortChildren(self,item:'typing.Any') -> 'None': + """ + Sorts the children of a given parent item. + +Args: + + item(typing.Any):The specified parent item + +Returns: + + None + + """ + pass + + + def EnsureVisible(self,item:'typing.Any') -> 'typing.Any': + """ + Ensures that a tree view item is visible in its tree view control. + +Args: + + item(typing.Any):The item to edit. + +Returns: + + typing.Any + + """ + pass + + + def HitTest(self,arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Determines which tree view item, if any, is at a specified position. + +Args: + + arg(typing.Any):The point to test.Return ValueThe result is a tuple of (flags, hItem). flags may be a combination of the following values:ValueDescriptioncommctrl.TVHT_ABOVEAbove the client area.commctrl.TVHT_BELOWBelow the client area.commctrl.TVHT_NOWHEREIn the client area, but below the last item.commctrl.TVHT_ONITEMOn the bitmap or label associated with an item.commctrl.TVHT_ONITEMBUTTONOn the button associated with an item.commctrl.TVHT_ONITEMICONOn the bitmap associated with an item.commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item.commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item.commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item.commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state.commctrl.TVHT_TOLEFTTo the left of the client area.commctrl.TVHT_TORIGHTTo the right of the client area. + +Returns: + + typing.Tuple[typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, hItem). + +flags may be a combination of the following values: + + + +Value + + +Description + + + +commctrl.TVHT_ABOVEAbove the client area. +commctrl.TVHT_BELOWBelow the client area. +commctrl.TVHT_NOWHEREIn the client area, but below the last item. +commctrl.TVHT_ONITEMOn the bitmap or label associated with an item. +commctrl.TVHT_ONITEMBUTTONOn the button associated with an item. +commctrl.TVHT_ONITEMICONOn the bitmap associated with an item. +commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item. +commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item. +commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item. +commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state. +commctrl.TVHT_TOLEFTTo the left of the client area. +commctrl.TVHT_TORIGHTTo the right of the client area. + + + """ + pass + + +class PyCTreeView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. + +Returns: + + typing.Any + + """ + pass + + + def GetTreeCtrl(self,) -> 'PyCTreeCtrl': + """ + Returns the underlying tree control object. + +Args: + + + +Returns: + + PyCTreeCtrl + + """ + pass + + + def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + Calls the standard Python framework OnCommand handler + +Args: + + wparam(typing.Any): + lparam(typing.Any):See Also + +Returns: + + None + + """ + pass + + +class PyCView(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateWindow(self,parent:'PyCWnd',arg:'typing.Any',arg1:'typing.Any',arg2:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': + """ + Creates the window for a view. + +Args: + + parent(PyCWnd):The parent window (usually a frame) + arg(typing.Any):The child ID for the view + arg1(typing.Any):The style for the view + arg2(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default position of the window. + +Returns: + + None + + """ + pass + + + def GetDocument(self,) -> 'PyCDocument': + """ + Returns the document for a view. + +Args: + + + +Returns: + + PyCDocument + + """ + pass + + + def OnActivateView(self,activate:'typing.Any',activateView:'PyCView',DeactivateView:'PyCView') -> 'typing.Any': + """ + Calls the underlying MFC OnActivateView method. + +Args: + + activate(typing.Any):Indicates whether the view is being activated or deactivated. + activateView(PyCView):The view object that is being activated. + DeactivateView(PyCView):The view object that is being deactivated.See Also + +Returns: + + typing.Any + + """ + pass + + + def OnInitialUpdate(self,) -> 'None': + """ + Calls the underlying MFC OnInitialUpdate method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnMouseActivate(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': + """ + Calls the base MFC OnMouseActivate function. + +Args: + + wnd(PyCWnd): + hittest(typing.Any): + message(typing.Any):See Also + +Returns: + + typing.Any + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def OnFilePrint(self,) -> 'None': + """ + Calls the underlying MFC OnFilePrint method. + +Args: + + + +Returns: + + None + + """ + pass + + + def DoPreparePrinting(self,) -> 'typing.Any': + """ + Invoke the Print dialog box and create a printer device context. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnBeginPrinting(self,) -> 'None': + """ + Calls the underlying MFC OnBeginPrinting method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnEndPrinting(self,) -> 'None': + """ + Calls the underlying MFC OnEndPrinting method. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyCWinApp(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddDocTemplate(self,template:'PyCDocTemplate') -> 'None': + """ + Adds a template to the application list. + +Args: + + template(PyCDocTemplate):The template to be added. + +Returns: + + None + + """ + pass + + + def FindOpenDocument(self,fileName:'str') -> 'PyCDocument': + """ + Returns an existing document with the specified file name. + +Args: + + fileName(str):The fully qualified filename to search for. + +Returns: + + PyCDocument + + """ + pass + + + def GetDocTemplateList(self,) -> 'typing.List[typing.Any]': + """ + Returns a list of all document templates. + +Args: + + + +Returns: + + typing.List[typing.Any] + + """ + pass + + + def InitDlgInstance(self,dialog:'PyCDialog') -> 'None': + """ + Calls critical InitInstance processing for a dialog based application. + +Args: + + dialog(PyCDialog):The dialog object to be used as the main window for the application. + +Returns: + + None + + """ + pass + + + def LoadCursor(self,cursorId:'PyResourceId') -> 'typing.Any': + """ + Loads a cursor. + +Args: + + cursorId(PyResourceId):The resource id or name of the cursor to load. + +Returns: + + typing.Any + + """ + pass + + + def LoadStandardCursor(self,cursorId:'PyResourceId') -> 'typing.Any': + """ + Loads a standard cursor. + +Args: + + cursorId(PyResourceId):The resource ID or name of the cursor to load. + +Returns: + + typing.Any + + """ + pass + + + def LoadOEMCursor(self,cursorId:'typing.Any') -> 'typing.Any': + """ + Loads an OEM cursor. + +Args: + + cursorId(typing.Any):The ID of the cursor to load. + +Returns: + + typing.Any + + """ + pass + + + def LoadIcon(self,idResource:'typing.Any') -> 'typing.Any': + """ + Loads an icon resource. + +Args: + + idResource(typing.Any):The ID of the icon to load. + +Returns: + + typing.Any + + """ + pass + + + def LoadStandardIcon(self,resourceName:'PyResourceId') -> 'typing.Any': + """ + Loads an icon resource. + +Args: + + resourceName(PyResourceId):The resource name or id of the standard icon to load. + +Returns: + + typing.Any + + """ + pass + + + def OpenDocumentFile(self,fileName:'str') -> 'None': + """ + Opens a document file by name. + +Args: + + fileName(str):The name of the document to open. + +Returns: + + None + + """ + pass + + + def OnFileNew(self,) -> 'None': + """ + Calls the underlying OnFileNew MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def OnFileOpen(self,) -> 'None': + """ + Calls the underlying OnFileOpen MFC method. + +Args: + + + +Returns: + + None + + """ + pass + + + def RemoveDocTemplate(self,template:'PyCDocTemplate') -> 'None': + """ + Removes a template to the application list. + +Args: + + template(PyCDocTemplate):The template to be removed. Must have previously been added by PyCWinApp::AddDocTemplate.CommentsNote that MFC does not provide an equivilent function. + +Returns: + + None + + """ + pass + + + def Run(self,) -> 'typing.Any': + """ + Starts the message pump. Advanced users only + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsInproc(self,) -> 'typing.Any': + """ + Returns a flag to indicate if the created CWinApp was in the DLL, or an external + +EXE. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +class PyCWinThread(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def CreateThread(self,) -> 'None': + """ + Creates the actual thread behind the thread object. + +Args: + + + +Returns: + + None + + """ + pass + + + def PumpIdle(self,) -> 'None': + """ + Pumps all idle messages. + +Args: + + + +Returns: + + None + + """ + pass + + + def PumpMessages(self,) -> 'None': + """ + Pumps all messages to the application until a WM_QUIT message is received. + +Args: + + + +Returns: + + None + + """ + pass + + + def Run(self,) -> 'typing.Any': + """ + Starts the message pump. Advanced users only + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetMainFrame(self,mainFrame:'PyCWnd') -> 'None': + """ + Sets the threads main frame + +Args: + + mainFrame(PyCWnd):The applications main frame.CommentsYou can pass None to this function to reset the main frame. Should I free this? I dont think so! + +Returns: + + None + + """ + pass + + + def SetThreadPriority(self,priority:'PyCWnd') -> 'None': + """ + Sets the threads priority. Returns TRUE if successful. + +Args: + + priority(PyCWnd):The threads priority. + +Returns: + + None + + """ + pass + + +class PyCWnd(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ActivateFrame(self,cmdShow:'typing.Any') -> 'None': + """ + Searches upwards for a parent window which has + +a frame, and activates it. + +Args: + + cmdShow(typing.Any):The param passed to CFrameWnd::ShowWindow. See also PyCWnd::ShowWindow.MFC References + +Returns: + + None + + """ + pass + + + def BringWindowToTop(self,) -> 'None': + """ + Brings the window to the top of a stack of overlapping windows. + +Args: + + + +Returns: + + None + + """ + pass + + + def BeginPaint(self,) -> 'typing.Tuple[PyCDC, typing.Any]': + """ + Prepares a window for painting + +Args: + + + +Returns: + + typing.Tuple[PyCDC, typing.Any]:PyCWnd.BeginPaint +PyCDC, PAINTSTRUCT + + = BeginPaint()Prepares a window for painting +Return ValueYou must pass the PAINTSTRUCT param to the PyCWnd::EndPaint method. + + + """ + pass + + + def CalcWindowRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',nAdjustType:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Computes the size of the window rectangle based on the desired client + +rectangle size. The resulting size can then be used as the initial + +size for the window object. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size to calculate from + nAdjustType(typing.Any):An enumerated type used for in-place editing. It can have the following values: CWnd::adjustBorder = 0, which means that scrollbar sizes are ignored in calculation; and CWnd::adjustOutside = 1, which means that they are added into the final measurements of the rectangle.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def CenterWindow(self,altwin:'PyCWnd'=None) -> 'None': + """ + Centers a window relative to its parent. + +Args: + + altwin(PyCWnd):alternate window relative to which it will be centered (other than the parent window).MFC References + +Returns: + + None + + """ + pass + + + def CheckRadioButton(self,idFirst:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any') -> 'None': + """ + Selects the specified radio button, and clears + +all others in the group. + +Args: + + idFirst(typing.Any):The identifier of the first radio button in the group. + idLast(typing.Any):The identifier of the last radio button in the group. + idCheck(typing.Any):The identifier of the radio button to be checked.MFC References + +Returns: + + None + + """ + pass + + + def ChildWindowFromPoint(self,x:'typing.Any',y:'typing.Any',flag:'typing.Any'=0) -> 'PyCWnd': + """ + Returns the child window that contains the point + +Args: + + x(typing.Any):x coordinate of point + y(typing.Any):y coordinate of point + flag(typing.Any):Specifies which child windows to skipMFC References + +Returns: + + PyCWnd + + """ + pass + + + def ClientToScreen(self,point:'typing.Tuple[typing.Any, typing.Any]',rect:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Converts the client coordinates of a given point on the display + +to screen coordinates. + +Args: + + point(typing.Tuple[typing.Any, typing.Any]):The client coordinates.Alternative Parameters + rect(typing.Any):The client coordinates.CommentsThe new screen coordinates are relative to the upper-left corner of the system display. This function assumes that the given pointis in client coordinates.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def CreateWindow(self,classId:'str',windowName:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any',context:'typing.Any'=None) -> 'None': + """ + Creates the actual window + +Args: + + classId(str):The class ID for the window, or None + windowName(str):The title for the window, or None + style(typing.Any):The style for the window. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the window. + parent(PyCWnd):The parent window of the new window.. + _id(typing.Any):The control's ID. + context(typing.Any):A CreateContext object.MFC References + +Returns: + + None + + """ + pass + + + def CreateWindowEx(self,styleEx:'typing.Any',classId:'str',windowName:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any',createStruct1:'typing.Any',createStruct:'CREATESTRUCT'=None) -> 'None': + """ + Creates the actual window using extended capabilities. + +Args: + + styleEx(typing.Any):The extended style of the window being created. + classId(str):The class ID for the window. May not be None. + windowName(str):The title for the window, or None + style(typing.Any):The style for the window. + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the window. + parent(PyCWnd):The parent window of the new window.. + _id(typing.Any):The control's ID. + createStruct1(typing.Any):A tuple representing a CREATESTRUCT structure.MFC References + createStruct(CREATESTRUCT):A CreateStruct object (ie, a tuple) + +Returns: + + None + + """ + pass + + + def DefWindowProc(self,message:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any') -> 'typing.Any': + """ + Calls the default message handler. + +Args: + + message(typing.Any):The Windows message. + idLast(typing.Any):The lParam for the message. + idCheck(typing.Any):The wParam for the message.MFC References + +Returns: + + typing.Any + + """ + pass + + + def DestroyWindow(self,) -> 'None': + """ + Destroy the window attached to the object. + +Args: + + + +Returns: + + None + + """ + pass + + + def DlgDirList(self,defPath:'str',idListbox:'typing.Any',idStaticPath:'typing.Any',fileType:'typing.Any') -> 'None': + """ + Fill a list box with a file or directory listing. + +Args: + + defPath(str):The file spec to fill the list box with + idListbox(typing.Any):The Id of the listbox control to fill. + idStaticPath(typing.Any):The Id of the static control used to display the current drive and directory. If idStaticPath is 0, it is assumed that no such control exists. + fileType(typing.Any):Specifies the attributes of the files to be displayed. It can be any combination of DDL_READWRITE, DDL_READONLY, DDL_HIDDEN, DDL_SYSTEM, DDL_DIRECTORY, DDL_ARCHIVE, DDL_POSTMSGS, DDL_DRIVES or DDL_EXCLUSIVEMFC References + +Returns: + + None + + """ + pass + + + def DlgDirListComboBox(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def DlgDirSelect(self,idListbox:'typing.Any') -> 'str': + """ + None + +Args: + + idListbox(typing.Any):The Id of the listbox.MFC References + +Returns: + + str + + """ + pass + + + def DlgDirSelectComboBox(self,idListbox:'typing.Any') -> 'str': + """ + None + +Args: + + idListbox(typing.Any):The Id of the combobox.MFC References + +Returns: + + str + + """ + pass + + + def DragAcceptFiles(self,bAccept:'typing.Any'=1) -> 'None': + """ + Indicates that the window and children supports files dropped from file manager + +Args: + + bAccept(typing.Any):A flag indicating if files are accepted.MFC References + +Returns: + + None + + """ + pass + + + def DrawMenuBar(self,) -> 'None': + """ + Redraws the menu bar. Can be called if the menu changes. + +Args: + + + +Returns: + + None + + """ + pass + + + def EnableWindow(self,bEnable:'typing.Any'=1) -> 'typing.Any': + """ + Enables or disables the window. Typically used for dialog controls. + +Args: + + bEnable(typing.Any):A flag indicating if the window is to be enabled or disabled.MFC References + +Returns: + + typing.Any:CWnd::EnableWindow +Return ValueReturns the state before the EnableWindow member function was called + + + """ + pass + + + def EndModalLoop(self,result:'typing.Any') -> 'None': + """ + Ends a modal loop. + +Args: + + result(typing.Any):The result as returned to RunModalLoop + +Returns: + + None + + """ + pass + + + def EndPaint(self,paintStruct:'typing.Any') -> 'None': + """ + Ends painting + +Args: + + paintStruct(typing.Any):The object returned from PyCWnd::BeginPaint + +Returns: + + None + + """ + pass + + + def GetCheckedRadioButton(self,idFirst:'typing.Any',idLast:'typing.Any') -> 'typing.Any': + """ + Returns the ID of the checked radio button, or 0 if none is selected. + +Args: + + idFirst(typing.Any):The Id of the first radio button in the group. + idLast(typing.Any):The Id of the last radio button in the group.MFC References + +Returns: + + typing.Any + + """ + pass + + + def GetClientRect(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Returns the client coordinates of the window. left and top + +will be zero. + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetDC(self,) -> 'PyCDC': + """ + Gets the windows current DC object. + +Args: + + + +Returns: + + PyCDC:PyCWnd.GetDC +PyCDC = GetDC()Gets the windows current DC object. +Return ValueThe result is a PyCDC, or a win32ui.error exception is raised. + + + """ + pass + + + def GetDCEx(self,) -> 'PyCDC': + """ + Gets the windows current DC object with extended caps. + +Args: + + + +Returns: + + PyCDC + + """ + pass + + + def GetDlgCtrlID(self,) -> 'typing.Any': + """ + Returns the ID of this child window. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetDlgItem(self,idControl:'typing.Any') -> 'PyCWnd': + """ + None + +Args: + + idControl(typing.Any):The Id of the control to be retrieved.MFC References + +Returns: + + PyCWnd:CWnd::GetDlgItem +Return ValueThe result is a PyCWnd (or derived) object, or a win32ui.error exception is raised. + + + """ + pass + + + def GetDlgItemInt(self,idControl:'typing.Any',bUnsigned:'typing.Any'=1) -> 'typing.Any': + """ + Returns the integer value of a child window or control with the specified ID. + +Args: + + idControl(typing.Any):The Id of the control to be retrieved. + bUnsigned(typing.Any):Should the function check for a minus signMFC References + +Returns: + + typing.Any:CWnd::GetDlgItemInt +Return ValueIf the value can not be converted, a ValueError is raised. + + + """ + pass + + + def GetDlgItemText(self,idControl:'typing.Any') -> 'str': + """ + Returns the text of child window or control with the specified ID. + +Args: + + idControl(typing.Any):The Id of the control to be retrieved.MFC References + +Returns: + + str + + """ + pass + + + def GetLastActivePopup(self,) -> 'PyCWnd': + """ + Returns the last active popup Window, or the Window itself. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetLastActivePopup +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetMenu(self,) -> 'PyCMenu': + """ + Returns the menu object for the window's menu. + +Args: + + + +Returns: + + PyCMenu:CWnd::GetMenu +Return ValueThe result is a PyMenu + + object, or an exception is thrown. + + + """ + pass + + + def GetParent(self,) -> 'PyCWnd': + """ + Returns the window's parent. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetParent +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetParentFrame(self,) -> 'PyCWnd': + """ + Returns the window's frame. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetParentFrame +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetSafeHwnd(self,) -> 'typing.Any': + """ + Returns the HWnd of this window. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetScrollInfo(self,nBar:'typing.Any',mask:'typing.Any') -> 'typing.Any': + """ + Returns information about a scroll bar + +Args: + + nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ + mask(typing.Any):The mask for attributes to retrieve. + +Returns: + + typing.Any + + """ + pass + + + def GetScrollPos(self,nBar:'typing.Any') -> 'typing.Any': + """ + Retrieves the current position of the scroll box of a scroll bar. + +Args: + + nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_VERT or win32con.SB_HORZ + +Returns: + + typing.Any + + """ + pass + + + def GetStyle(self,) -> 'typing.Any': + """ + Retrieves the window style + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetExStyle(self,) -> 'typing.Any': + """ + Retrieves the window's extended style + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def GetSystemMenu(self,) -> 'PyCMenu': + """ + Returns the menu object for the window's system menu. + +Args: + + + +Returns: + + PyCMenu + + """ + pass + + + def GetTopLevelFrame(self,) -> 'PyCWnd': + """ + Returns the top-level frame of the window. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetTopLevelFrame +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopLevelOwner(self,) -> 'PyCWnd': + """ + Returns the top-level owner of the window. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetTopLevelOwner +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopLevelParent(self,) -> 'PyCWnd': + """ + Returns the top-level parent of the window. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetTopLevelParent +Return ValueThe result is a PyCWnd object, or None if no Window can be found. + + + """ + pass + + + def GetTopWindow(self,) -> 'PyCWnd': + """ + Identifies the top-level child window in a linked list of child windows. + +Args: + + + +Returns: + + PyCWnd:CWnd::GetTopWindow +Return ValueIf no child windows exist, the value is None. + + + """ + pass + + + def GetWindow(self,_type:'typing.Any') -> 'PyCWnd': + """ + Returns a window, with the specified relationship to this window. + +Args: + + _type(typing.Any):Specifies the relationship between the current and the returned window. It can take one of the following values: GW_CHILD, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV or GW_OWNERMFC References + +Returns: + + PyCWnd:CWnd::GetWindow +Return ValueThe result is a PyCWnd or None if no Window can be found. + + + """ + pass + + + def GetWindowDC(self,) -> 'PyCDC': + """ + Gets the windows current DC object. + +Args: + + + +Returns: + + PyCDC + + """ + pass + + + def GetWindowPlacement(self,) -> 'typing.Any': + """ + Returns placement information about the current window. + +Args: + + + +Returns: + + typing.Any:CWnd::GetWindowPlacement +Return ValueThe result is a tuple of + +(flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) + + + +Item + + +Description + + + +flagsOne of the WPF_* constants +showCmdCurrent state - one of the SW_* constants. +minposSpecifies the coordinates of the window's upper-left corner when the window is minimized. +maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. +normalposSpecifies the window's coordinates when the window is in the restored position. + + + """ + pass + + + def GetWindowRect(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Returns the screen coordinates of the windows upper left + +corner + +Args: + + + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] + + """ + pass + + + def GetWindowText(self,) -> 'str': + """ + Returns the windows text. + +Args: + + + +Returns: + + str + + """ + pass + + + def HideCaret(self,) -> 'None': + """ + Hides the caret + +Args: + + + +Returns: + + None + + """ + pass + + + def HookAllKeyStrokes(self,obHandler:'typing.Any') -> 'None': + """ + Hook a key stroke handler for all key strokes. + +Args: + + obHandler(typing.Any):The handler for the keystrokes. This must be a callable object.CommentsThe handler object passed will be called as the application receives WM_CHAR messages. The handler will be called with 2 arguments The handler object (as per all hook functions). The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise it will be consumed. Note: This handler will prevent any PyCWnd::HookKeyStroke hooks from being called. + +Returns: + + None + + """ + pass + + + def HookKeyStroke(self,obHandler:'typing.Any',ch:'typing.Any') -> 'typing.Any': + """ + Hook a key stroke handler + +Args: + + obHandler(typing.Any):The handler of the keystroke. This must be a callable object. + ch(typing.Any):The ID for the keystroke to be handled. This may be an ascii code, or a virtual key code.CommentsThe handler object passed will be called as the application receives WM_CHAR message for the specified character code. The handler will be called with 2 arguments The handler object (as per all hook functions) The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise the keystroke will be consumed. Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place.Return ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID for the keystroke to be handled. + +This may be an ascii code, or a virtual key code.Comments + +The handler object passed will be called as the application receives WM_CHAR message for the specified + +character code. The handler will be called with 2 arguments + +The handler object (as per all hook functions) + +The keystroke being handled. + +If the handler returns TRUE, then the keystroke will be passed on to the + +default handler, otherwise the keystroke will be consumed. + +Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def HookMessage(self,obHandler:'typing.Any',message:'typing.Any') -> 'typing.Any': + """ + Hook a message notification handler + +Args: + + obHandler(typing.Any):The handler for the message notification. This must be a callable object. + message(typing.Any):The ID of the message to be handled.CommentsThe handler object passed will be called as the application receives messages with the specified ID. Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. The handler will be called with 2 arguments The handler object (as per all hook functions). A tuple representing the message. The message tuple is in the following format:Items[0] int : hwndThe hwnd of the window.[1] int : messageThe message.[2] int : wParamThe wParam sent with the message.[3] int : lParamThe lParam sent with the message.[4] int : timeThe time the message was posted.[5] int, int : pointThe point where the mouse was when the message was posted.Return ValueThe return value is the previous handler, or None. + +Returns: + + typing.Any:The ID of the message to be handled.Comments + +The handler object passed will be called as the application receives messages with the specified ID. + +Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. + +The handler will be called with 2 arguments + +The handler object (as per all hook functions). + +A tuple representing the message. + +The message tuple is in the following format: +Items[0] int : hwnd +The hwnd of the window. +[1] int : message +The message. +[2] int : wParam +The wParam sent with the message. +[3] int : lParam +The lParam sent with the message. +[4] int : time +The time the message was posted. +[5] int, int : point +The point where the mouse was when the message was posted. +Return ValueThe return value is the previous handler, or None. + + + """ + pass + + + def InvalidateRect(self,arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',bErase:'typing.Any'=1) -> 'None': + """ + Invalidates an area of a window. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Rectangle to be updated. If default param is used, the entire window is invalidated. + bErase(typing.Any):Specifies whether the background within the update region is to be erased.MFC References + +Returns: + + None + + """ + pass + + + def InvalidateRgn(self,region:'PyCRgn',bErase:'typing.Any'=1) -> 'None': + """ + Invalidates a region of the window + +Args: + + region(PyCRgn):The region to erase. + bErase(typing.Any):Indicates if the region should be erased. + +Returns: + + None + + """ + pass + + + def IsChild(self,obWnd:'PyCWnd') -> 'typing.Any': + """ + Determines if a given window is a child of this window. + +Args: + + obWnd(PyCWnd):The window to be checkedMFC References + +Returns: + + typing.Any + + """ + pass + + + def IsDlgButtonChecked(self,idCtl:'typing.Any') -> 'typing.Any': + """ + Determines if a dialog button is checked. + +Args: + + idCtl(typing.Any):The ID of the button to check.MFC References + +Returns: + + typing.Any + + """ + pass + + + def IsIconic(self,) -> 'typing.Any': + """ + Determines if the window is currently displayed as an icon. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsZoomed(self,) -> 'typing.Any': + """ + Determines if the window is currently maximised. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsWindow(self,) -> 'typing.Any': + """ + determines whether the specified window handle identifies an existing window + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsWindowVisible(self,) -> 'typing.Any': + """ + Determines if the window is currently visible. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def KillTimer(self,) -> 'typing.Any': + """ + Kills a system timer + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def LockWindowUpdate(self,) -> 'None': + """ + Disables drawing in the given window + +Args: + + + +Returns: + + None + + """ + pass + + + def MapWindowPoints(self,wnd:'PyCWnd',points:'typing.List[typing.Tuple[typing.Any, typing.Any]]') -> 'None': + """ + Converts (maps) a set of points from the coordinate space of a window to the + +coordinate space of another window. + +Args: + + wnd(PyCWnd): + points(typing.List[typing.Tuple[typing.Any, typing.Any]]):The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another window. + +Returns: + + None:The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another + +window. + + + """ + pass + + + def MouseCaptured(self,) -> 'typing.Any': + """ + Returns 1 if the window has the mouse capture, else 0 + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def MessageBox(self,message:'str',arg:'typing.Any',title:'typing.Union[str, typing.Any]'=None) -> 'None': + """ + Display a message box. + +Args: + + message(str):The message to be displayed in the message box. + arg(typing.Any):The style of the message box.MFC References + title(typing.Union[str, typing.Any]):The title for the message box. If None, the applications title will be used. + +Returns: + + None:CWnd::MessageBox +Return ValueAn integer identifying the button pressed to dismiss the dialog. + + + """ + pass + + + def ModifyStyle(self,remove:'typing.Any',add:'typing.Any',flags:'typing.Any'=0) -> 'typing.Any': + """ + Modifies the style of a window. + +Args: + + remove(typing.Any):Specifies window styles to be removed during style modification. + add(typing.Any):Specifies window styles to be added during style modification. + flags(typing.Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyle calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleExMFC References + +Returns: + + typing.Any:CWnd::ModifyStyle +Return ValueThe result is true if the style was changed, or false if the style + +is already the same as requested and no change was made. + + + """ + pass + + + def ModifyStyleEx(self,remove:'typing.Any',add:'typing.Any',flags:'typing.Any'=0) -> 'typing.Any': + """ + Modifies the extended style of a window. + +Args: + + remove(typing.Any):Specifies extended window styles to be removed during style modification. + add(typing.Any):Specifies extended extended window styles to be added during style modification. + flags(typing.Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyleEx calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleMFC References + +Returns: + + typing.Any:CWnd::ModifyStyleEx +Return ValueThe result is true if the style was changed, or false if the style + +is already the same as requested and no change was made. + + + """ + pass + + + def MoveWindow(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',bRepaint:'typing.Any'=1) -> 'None': + """ + Move a window to a new location. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The new location of the window, relative to the parent. + bRepaint(typing.Any):Indicates if the window should be repainted after the move.MFC References + +Returns: + + None + + """ + pass + + + def OnClose(self,) -> 'typing.Any': + """ + Calls the default MFC OnClose handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnCtlColor(self,dc:'PyCDC',control:'typing.Any',_type:'typing.Any') -> 'typing.Any': + """ + Calls the default MFC OnCtlColor handler. + +Args: + + dc(PyCDC):The dc + control(typing.Any):The control that want's it's color changed + _type(typing.Any):Type of controlSee Also + +Returns: + + typing.Any + + """ + pass + + + def OnEraseBkgnd(self,dc:'PyCDC') -> 'typing.Any': + """ + Calls the default MFC OnEraseBkgnd handler. + +Args: + + dc(PyCDC):The dcSee Also + +Returns: + + typing.Any + + """ + pass + + + def OnNcHitTest(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + Calls the base MFC OnNcHitTest function. + +Args: + + arg(typing.Tuple[typing.Any, typing.Any]):The pointSee Also + +Returns: + + typing.Any + + """ + pass + + + def OnPaint(self,) -> 'typing.Any': + """ + Calls the default MFC OnPaint handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnQueryDragIcon(self,) -> 'typing.Any': + """ + Calls the default MFC OnQueryDragIcon handler. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnQueryNewPalette(self,) -> 'typing.Any': + """ + Calls the underlying MFC OnQueryNewPalette method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def OnSetCursor(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': + """ + Calls the base MFC OnSetCursor function. + +Args: + + wnd(PyCWnd): + hittest(typing.Any): + message(typing.Any):See Also + +Returns: + + typing.Any + + """ + pass + + + def OnMouseActivate(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': + """ + Calls the base MFC OnMouseActivate function. + +Args: + + wnd(PyCWnd): + hittest(typing.Any): + message(typing.Any):See Also + +Returns: + + typing.Any + + """ + pass + + + def OnWndMsg(self,msg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': + """ + Calls the default MFC Window Message handler. + +Args: + + msg(typing.Any):The message + wParam(typing.Any):The wParam for the message + lParam(typing.Any):The lParam for the messageMFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any]:CWnd::OnWndMsg +Return ValueThe return value is a tuple of (int, int), being the + +return value from the MFC function call, and the value of the + +lResult param. Please see the MFC documentation for more details. + + + """ + pass + + + def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': + """ + Calls the underlying MFC PreCreateWindow method. + +Args: + + createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also + +Returns: + + typing.Any + + """ + pass + + + def PumpWaitingMessages(self,firstMsg:'typing.Any',lastMsg:'typing.Any') -> 'None': + """ + Pump messages associate with a window. + +Args: + + firstMsg(typing.Any):First message ID to process + lastMsg(typing.Any):First message ID to processMFC References + +Returns: + + None + + """ + pass + + + def RedrawWindow(self,_object:'PyCRgn',flags:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None) -> 'None': + """ + Updates the specified rectangle or region in the given window's client area. + +Args: + + _object(PyCRgn):A region + flags(typing.Any):MFC References + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):A rect, or None + +Returns: + + None + + """ + pass + + + def ReleaseCapture(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def ReleaseDC(self,dc:'PyCDC') -> 'None': + """ + Releases a device context, freeing it for use by other applications. + +Args: + + dc(PyCDC):The DC to be released. + +Returns: + + None + + """ + pass + + + def RepositionBars(self,idFirst:'typing.Any',idLast:'typing.Any',idLeftOver:'typing.Any') -> 'None': + """ + Repositions the windows control bars.( UINT nIDFirst, UINT nIDLast, UINT + +nIDLeftOver, UINT nFlag = CWnd::reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = + +TRUE ); + +Args: + + idFirst(typing.Any):The ID of the first control to reposition. + idLast(typing.Any):The ID of the last control to reposition. + idLeftOver(typing.Any): + +Returns: + + None + + """ + pass + + + def RunModalLoop(self,flags:'typing.Any') -> 'typing.Any': + """ + Begins a modal loop for the window. + +Args: + + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + + def PostMessage(self,idMessage:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0) -> 'None': + """ + Post a message to the window. + +Args: + + idMessage(typing.Any):The ID of the message to post. + wParam(typing.Any):The wParam for the message + lParam(typing.Any):The lParam for the messageMFC References + +Returns: + + None + + """ + pass + + + def SendMessageToDescendants(self,idMessage:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0,bDeep:'typing.Any'=1) -> 'None': + """ + Send a message to all descendant windows. + +Args: + + idMessage(typing.Any):The ID of the message to send. + wParam(typing.Any):The wParam for the message + lParam(typing.Any):The lParam for the message + bDeep(typing.Any):Indicates if the message should be recursively sent to all childrenMFC References + +Returns: + + None + + """ + pass + + + def SendMessage(self,idMessage:'typing.Any',idMessage1:'typing.Any',ob:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0) -> 'None': + """ + Send a message to the window. + +Args: + + idMessage(typing.Any):The ID of the message to send. + idMessage1(typing.Any):The ID of the message to send. + ob(typing.Any):A buffer whose size is passed in wParam, and address is passed in lParamMFC References + wParam(typing.Any):The wParam for the message + lParam(typing.Any):The lParam for the messageAlternative Parameters + +Returns: + + None + + """ + pass + + + def SetActiveWindow(self,) -> 'PyCWnd': + """ + Sets the window active. Returns the previously active window, or None. + +Args: + + + +Returns: + + PyCWnd:PyCWnd.SetActiveWindow +PyCWnd = SetActiveWindow()Sets the window active. Returns the previously active window, or None. +Return ValueThe result is the previous window with focus, or None. + + + """ + pass + + + def SetForegroundWindow(self,) -> 'None': + """ + Puts the window into the foreground and activates the window. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetWindowPos(self,hWndInsertAfter:'typing.Any',position:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',flags:'typing.Any') -> 'None': + """ + Sets the windows position information + +Args: + + hWndInsertAfter(typing.Any):A hwnd, else one of the win32con.HWND_* constants. + position(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The new position of the window. + flags(typing.Any):Window positioning flags.MFC References + +Returns: + + None + + """ + pass + + + def ScreenToClient(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]',pnt:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': + """ + Converts the screen coordinates of a given point + +or rectangle on the display to client coordinates. + +Args: + + rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates to convert.Alternative Parameters + pnt(typing.Any):The coordinates to convert.MFC References + +Returns: + + typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]:CWnd::ScreenToClient +Return ValueThe result is the same size as the input argument. + + + """ + pass + + + def SetCapture(self,) -> 'None': + """ + Causes all subsequent mouse input to be sent to the window object regardless of the + +position of the cursor. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetDlgItemText(self,idControl:'typing.Any',text:'str') -> 'None': + """ + Sets the text for the child window or control with the specified ID. + +Args: + + idControl(typing.Any):The Id of the control + text(str):The new textMFC References + +Returns: + + None + + """ + pass + + + def SetFocus(self,) -> 'None': + """ + Claims the input focus. The object that previously had the focus loses it. + +Args: + + + +Returns: + + None + + """ + pass + + + def SetFont(self,font:'PyCFont',bRedraw:'typing.Any'=1) -> 'None': + """ + Sets the window's current font to the specified font. + +Args: + + font(PyCFont):The new font to use. + bRedraw(typing.Any):If TRUE, redraw the window. + +Returns: + + None + + """ + pass + + + def SetIcon(self,) -> 'typing.Any': + """ + Calls the underlying MFC SetIcon method. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def SetMenu(self,menuObj:'PyCMenu') -> 'None': + """ + Sets the menu for a window. + +Args: + + menuObj(PyCMenu):The menu object to set, or None to remove the window. + +Returns: + + None + + """ + pass + + + def SetRedraw(self,bState:'typing.Any'=1) -> 'None': + """ + Allows changes to be redrawn or to prevent changes from being redrawn. + +Args: + + bState(typing.Any):Specifies the state of the redraw flag.MFC References + +Returns: + + None + + """ + pass + + + def SetScrollPos(self,nBar:'typing.Any',nPos:'typing.Any',redraw:'typing.Any'=1) -> 'typing.Any': + """ + Sets the current position of the scroll box of a scroll bar. + +Args: + + nBar(typing.Any):The scroll bar to set. Can be one of win32con.SB_VERT or win32con.SB_HORZ + nPos(typing.Any):The new position + redraw(typing.Any):A flag indicating if the scrollbar should be redrawn. + +Returns: + + typing.Any + + """ + pass + + + def SetScrollInfo(self,nBar:'typing.Any',ScrollInfo:'typing.Any',redraw:'typing.Any'=1) -> 'typing.Any': + """ + Set information about a scroll bar + +Args: + + nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ + ScrollInfo(typing.Any):The information to set + redraw(typing.Any):A flag indicating if the scrollbar should be re-drawn. + +Returns: + + typing.Any + + """ + pass + + + def SetTimer(self,idEvent:'typing.Any',elapse:'typing.Any') -> 'typing.Any': + """ + Installs a system timer + +Args: + + idEvent(typing.Any):The ID of the event + elapse(typing.Any):How often the timer should fire.MFC References + +Returns: + + typing.Any + + """ + pass + + + def SetWindowPlacement(self,placement:'typing.Any') -> 'None': + """ + Sets the windows placement + +Args: + + placement(typing.Any):A tuple representing the WINDOWPLACEMENT structure.MFC References + +Returns: + + None + + """ + pass + + + def SetWindowText(self,text:'str') -> 'None': + """ + Sets the window's text. + +Args: + + text(str):The windows text.MFC References + +Returns: + + None + + """ + pass + + + def ShowCaret(self,) -> 'None': + """ + Shows the caret + +Args: + + + +Returns: + + None + + """ + pass + + + def ShowScrollBar(self,nBar:'typing.Any',bShow:'typing.Any'=1) -> 'None': + """ + Shows or hides a scroll bar. + +An application should not call ShowScrollBar to hide a scroll bar while processing a scroll-bar notification message. + +Args: + + nBar(typing.Any):Specifies whether the scroll bar is a control or part of a window's nonclient area. If it is part of the nonclient area, nBar also indicates whether the scroll bar is positioned horizontally, vertically, or both. It must be one of win32con.SB_BOTH, win32con.SB_HORZ or win32con.SB_VERT. + bShow(typing.Any):Indicates if the scroll bar should be shown or hidden.MFC References + +Returns: + + None + + """ + pass + + + def ShowWindow(self,arg:'typing.Any') -> 'typing.Any': + """ + Sets the visibility state of the window. + +Args: + + arg(typing.Any):Specifies how the window is to be shown. It must be one of win32con.SW_HIDE, win32con.SW_MINIMIZE, win32con.SW_RESTORE, win32con.SW_SHOW, win32con.SW_SHOWMAXIMIZED win32con.SW_SHOWMINIMIZED, win32con.SW_SHOWMINNOACTIVE, win32con.SW_SHOWNA, win32con.SW_SHOWNOACTIVATE, or win32con.SW_SHOWNORMALMFC References + +Returns: + + typing.Any:CWnd::ShowWindow +Return ValueReturns TRUE is the window was previously visible. + + + """ + pass + + + def UnLockWindowUpdate(self,) -> 'None': + """ + Unlocks a window that was locked with LockWindowUpdate + +Args: + + + +Returns: + + None + + """ + pass + + + def UpdateData(self,bSaveAndValidate:'typing.Any'=1) -> 'typing.Any': + """ + Initialises data in a dialog box, or to retrieves and validates dialog data. + +Returns nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of + +nonzero means that the data is successfully validated. + +Args: + + bSaveAndValidate(typing.Any):Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).MFC References + +Returns: + + typing.Any + + """ + pass + + + def UpdateDialogControls(self,pTarget:'PyCCmdTarget',disableIfNoHandler:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + pTarget(PyCCmdTarget):The main frame window of the application, and is used for routing update messages. + disableIfNoHandler(typing.Any):Flag that indicates whether a control that has no update handler should be automatically displayed as disabled. + +Returns: + + typing.Any + + """ + pass + + + def UpdateWindow(self,) -> 'None': + """ + Updates a window. This forces a paint message to be sent to the window, if any part + +of the window is marked as invalid. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEConv(object): + """A DDE topic.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def ConnectTo(self,service:'str',topic:'str') -> 'None': + """ + Connects to a server + +Args: + + service(str):The service to connect to + topic(str):The topic to connect to + +Returns: + + None + + """ + pass + + + def Connected(self,) -> 'None': + """ + Determines if the conversation is connected. + +Args: + + + +Returns: + + None + + """ + pass + + + def Exec(self,Cmd:'str') -> 'None': + """ + Executes a command. + +Args: + + Cmd(str):The Python statement to execute + +Returns: + + None + + """ + pass + + + def Request(self,) -> 'None': + """ + Sends a request. + +Args: + + + +Returns: + + None + + """ + pass + + + def Poke(self,) -> 'None': + """ + Sends a poke. + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEServer(object): + """A DDE server.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddTopic(self,topic:'PyDDETopic') -> 'None': + """ + None + +Args: + + topic(PyDDETopic):The topic to add. + +Returns: + + None + + """ + pass + + + def Create(self,name:'str',filterFlags:'typing.Any'=0) -> 'None': + """ + Create a server + +Args: + + name(str):Name of the server to start. + filterFlags(typing.Any):Filter flags.CommentsNote there can only be one server per application. + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetLastError(self,) -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def Shutdown(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDDEStringItem(object): + """A DDE string item.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def SetData(self,data:'str') -> 'None': + """ + Sets an items data, and causes any underlying notification. + +Args: + + data(str):The data to set. + +Returns: + + None + + """ + pass + + +class PyDDETopic(object): + """A DDE topic.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def AddItem(self,item:'typing.Any') -> 'None': + """ + Add an item to the topic. + +Args: + + item(typing.Any):The item to add + +Returns: + + None + + """ + pass + + + def Destroy(self,) -> 'None': + """ + Destroys an item + +Args: + + + +Returns: + + None + + """ + pass + + +class PyDLL(object): + """A DLL object. A general utility object, and not associated with an MFC object.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetFileName(self,) -> 'str': + """ + Returns the name of the module associated with the DLL. + +Args: + + + +Returns: + + str + + """ + pass + + + def AttachToMFC(self,) -> 'None': + """ + Attaches the DLL object to the MFC list of DLL's. + +Args: + + + +Returns: + + None + + """ + pass + + +class SCROLLINFO(object): + """Tuple representing a SCROLLINFO struct""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class TV_ITEM(object): + """""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + +class EXTENSION_CONTROL_BLOCK(object): + """A python representation of an ISAPI + +EXTENSION_CONTROL_BLOCK.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Version(self)->'int': + """Version info of this spec (read-only)""" + pass + + + @property + def TotalBytes(self)->'typing.Any': + """Total bytes indicated from client""" + pass + + + @property + def AvailableBytes(self)->'typing.Any': + """Available number of bytes""" + pass + + + @property + def HttpStatusCode(self)->'typing.Any': + """The status of the current transaction when the request is completed.""" + pass + + + @property + def Method(self)->'typing.Any': + """REQUEST_METHOD""" + pass + + + @property + def ConnID(self)->'typing.Any': + """Context number (read-only)""" + pass + + + @property + def QueryString(self)->'typing.Any': + """QUERY_STRING""" + pass + + + @property + def PathInfo(self)->'typing.Any': + """PATH_INFO""" + pass + + + @property + def PathTranslated(self)->'typing.Any': + """PATH_TRANSLATED""" + pass + + + @property + def AvailableData(self)->'typing.Any': + """Pointer to cbAvailable bytes""" + pass + + + @property + def ContentType(self)->'typing.Any': + """Content type of client data""" + pass + + + @property + def LogData(self)->'typing.Any': + """log data string""" + pass + + + def WriteClient(self,data:'typing.Union[str, typing.Any]',reserved:'typing.Any'=0) -> 'typing.Any': + """ + None + +Args: + + data(typing.Union[str, typing.Any]):The data to write + reserved(typing.Any):Return Valuethe result is the number of bytes written. + +Returns: + + typing.Any: +Return Valuethe result is the number of bytes written. + + + """ + pass + + + def GetServerVariable(self,variable:'str',default:'typing.Any') -> 'str': + """ + None + +Args: + + variable(str): + default(typing.Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. + +Returns: + + str:If specified, the function will return this + +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name + +begins with 'UNICODE_', in which case it is a unicode object - see the + +ISAPI docs for more details. + + + """ + pass + + + def ReadClient(self,nbytes:'typing.Any') -> 'str': + """ + None + +Args: + + nbytes(typing.Any):Default is to read all available data. + +Returns: + + str + + """ + pass + + + def SendResponseHeaders(self,reply:'str',headers:'str',keepAlive:'typing.Any'=False) -> 'None': + """ + Calls ServerSupportFunction with + +HSE_REQ_SEND_RESPONSE_HEADER_EX + +Args: + + reply(str): + headers(str): + keepAlive(typing.Any): + +Returns: + + None + + """ + pass + + + def SetFlushFlag(self,flag:'typing.Any') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_SET_FLUSH_FLAG. + +Args: + + flag(typing.Any): + +Returns: + + None + + """ + pass + + + def TransmitFile(self,callback:'typing.Any',param:'typing.Any',hFile:'typing.Any',statusCode:'str',BytesToWrite:'typing.Any',Offset:'typing.Any',head:'str',tail:'str',flags:'typing.Any') -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_TRANSMIT_FILE + +Args: + + callback(typing.Any): + param(typing.Any):Any object - passed as 2nd arg to callback. + hFile(typing.Any): + statusCode(str): + BytesToWrite(typing.Any): + Offset(typing.Any): + head(str): + tail(str): + flags(typing.Any):CommentsThe callback is called with 4 args - (PyECB, param, cbIO, dwErrCode) + +Returns: + + typing.Any + + """ + pass + + + def MapURLToPath(self,) -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_MAP_URL_TO_PATH + +Args: + + + +Returns: + + None + + """ + pass + + + def DoneWithSession(self,status:'typing.Any') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_DONE_WITH_SESSION + +Args: + + status(typing.Any):An optional status. HSE_STATUS_SUCCESS_AND_KEEP_CONN is supported by IIS to keep the connection alive. + +Returns: + + None + + """ + pass + + + def Redirect(self,url:'str') -> 'None': + """ + Calls ServerSupportFunction with HSE_REQ_SEND_URL_REDIRECT_RESP + +Args: + + url(str):The URL to redirect to + +Returns: + + None + + """ + pass + + + def IsKeepAlive(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + + def GetAnonymousToken(self,metabase_path:'typing.Union[str, typing.Any]') -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_GET_ANONYMOUS_TOKEN + +or HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN + +Args: + + metabase_path(typing.Union[str, typing.Any]): + +Returns: + + typing.Any + + """ + pass + + + def GetImpersonationToken(self,) -> 'typing.Any': + """ + Calls ServerSupportFunction with + +HSE_REQ_GET_IMPERSONATION_TOKEN + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def IsKeepConn(self,) -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_IS_KEEP_CONN + +Args: + + + +Returns: + + typing.Any + + """ + pass + + + def ExecURL(self,url:'str',method:'str',clientHeaders:'str',info:'typing.Any',entity:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_EXEC_URL + +Args: + + url(str): + method(str): + clientHeaders(str): + info(typing.Any):Must be None + entity(typing.Any):Must be None + flags(typing.Any):CommentsThis function is only available in IIS6 and later. + +Returns: + + typing.Any + + """ + pass + + + def GetExecURLStatus(self,) -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_GET_EXEC_URL_STATUS + +Args: + + + +Returns: + + typing.Any:Search for HSE_EXEC_URL_STATUS at msdn, google or google groups. +Return ValueThe result of a tuple of 3 integers - (uHttpStatusCode, uHttpSubStatus, dwWin32Error) + + + """ + pass + + + def IOCompletion(self,func:'typing.Any',arg:'typing.Any'=None) -> 'typing.Any': + """ + Set a callback that will be used for handling asynchronous I/O + +operations. + +Args: + + func(typing.Any):The function to call, as described by the EXTENSION_CONTROL_BLOCK::IOCallback method. + arg(typing.Any):Any object which will be supplied as an argument to the callback function.CommentsIf you call this multiple times, the previous callback will be discarded.A reference to the callback and args are held until EXTENSION_CONTROL_BLOCK::DoneWithSession is called. If the callback function fails, DoneWithSession(HSE_STATUS_ERROR) will automatically be called and no further callbacks for the ECB will be made. + +Returns: + + typing.Any + + """ + pass + + + def ReportUnhealthy(self,reason:'str'=None) -> 'typing.Any': + """ + Calls ServerSupportFunction with HSE_REQ_REPORT_UNHEALTHY + +Args: + + reason(str):An optional reason to be written to the log. + +Returns: + + typing.Any + + """ + pass + + + def IOCallback(self,ecb:'EXTENSION_CONTROL_BLOCK',arg:'typing.Any',cbIO:'typing.Any',dwError:'typing.Any') -> 'typing.Any': + """ + A placeholder for a user-supplied callback function. + +Args: + + ecb(EXTENSION_CONTROL_BLOCK):The extension control block that is associated with the current, active request. + arg(typing.Any):The user-supplied argument supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function. + cbIO(typing.Any):An integer that contains the number of bytes of I/O in the last call. + dwError(typing.Any):The error code returned.CommentsThis is not a function you can call, it describes the signature of the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function.Return ValueThe result of this function is ignored. + +Returns: + + typing.Any:The error code returned.Comments + +This is not a function you can call, it describes the signature of + +the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion + +function. +Return ValueThe result of this function is ignored. + + + """ + pass + + +class HSE_VERSION_INFO(object): + """An object used by ISAPI GetExtensionVersion""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ExtensionDesc(self)->'str': + """The description of the extension.""" + pass + + +class HTTP_FILTER_AUTHENT(object): + """A Python representation of an ISAPI + +HTTP_FILTER_AUTHENT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def User(self)->'str': + """""" + pass + + + @property + def Password(self)->'str': + """""" + pass + + +class HTTP_FILTER_CONTEXT(object): + """A Python representation of an ISAPI + +HTTP_FILTER_CONTEXT structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def Revision(self)->'typing.Any': + """(read-only)""" + pass + + + @property + def fIsSecurePort(self)->'typing.Any': + """(read-only)""" + pass + + + @property + def NotificationType(self)->'typing.Any': + """(read-only)""" + pass + + + @property + def FilterContext(self)->'typing.Any': + """Any object you wish to associate with the request.""" + pass + + + def GetData(self,) -> 'typing.Any': + """ + Obtains the data passed to + +The HttpFilterProc function. This is not techinally part of the + +HTTP_FILTER_CONTEXT structure, but packaged here for convenience. + +Args: + + + +Returns: + + typing.Any:HTTP_FILTER_CONTEXT.GetData + +object = GetData()Obtains the data passed to + +The HttpFilterProc function. This is not techinally part of the + +HTTP_FILTER_CONTEXT structure, but packaged here for convenience. +Return ValueThe result depends on the value of HTTP_FILTER_CONTEXT::NotificationType + + + + +NotificationType + + +Result type + + + +SF_NOTIFY_URL_MAPHTTP_FILTER_URL_MAP +SF_NOTIFY_PREPROC_HEADERSHTTP_FILTER_PREPROC_HEADERS +SF_NOTIFY_LOGHTTP_FILTER_LOG +SF_NOTIFY_SEND_RAW_DATAHTTP_FILTER_RAW_DATA +SF_NOTIFY_READ_RAW_DATAHTTP_FILTER_RAW_DATA +SF_NOTIFY_AUTHENTICATIONHTTP_FILTER_AUTHENT + + + """ + pass + + + def GetServerVariable(self,variable:'str',default:'typing.Any') -> 'str': + """ + None + +Args: + + variable(str): + default(typing.Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. + +Returns: + + str:If specified, the function will return this + +value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name + +begins with 'UNICODE_', in which case it is a unicode object - see the + +ISAPI docs for more details. + + + """ + pass + + + def WriteClient(self,data:'str',reserverd:'typing.Any'=0) -> 'None': + """ + None + +Args: + + data(str): + reserverd(typing.Any): + +Returns: + + None + + """ + pass + + + def AddResponseHeaders(self,data:'str',reserverd:'typing.Any'=0) -> 'None': + """ + None + +Args: + + data(str): + reserverd(typing.Any): + +Returns: + + None + + """ + pass + + + def SendResponseHeader(self,status:'str',header:'str') -> 'None': + """ + None + +Args: + + status(str): + header(str): + +Returns: + + None + + """ + pass + + + def DisableNotifications(self,flags:'typing.Any') -> 'None': + """ + None + +Args: + + flags(typing.Any): + +Returns: + + None + + """ + pass + + +class HTTP_FILTER_LOG(object): + """A Python representation of an ISAPI + +HTTP_FILTER_LOG structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ClientHostName(self)->'str': + """""" + pass + + + @property + def ClientUserName(self)->'str': + """""" + pass + + + @property + def ServerName(self)->'str': + """""" + pass + + + @property + def Operation(self)->'str': + """""" + pass + + + @property + def Target(self)->'str': + """""" + pass + + + @property + def Parameters(self)->'str': + """""" + pass + + + @property + def HttpStatus(self)->'typing.Any': + """""" + pass + + +class HTTP_FILTER_PREPROC_HEADERS(object): + """A Python representation of an ISAPI + +HTTP_FILTER_PREPROC_HEADERS structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + def GetHeader(self,header:'str',default:'typing.Any') -> 'str': + """ + None + +Args: + + header(str): + default(typing.Any):If specified, this will be returned on error. + +Returns: + + str + + """ + pass + + + def SetHeader(self,name:'str',val:'str') -> 'None': + """ + None + +Args: + + name(str): + val(str): + +Returns: + + None + + """ + pass + + + def AddHeader(self,) -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +class HTTP_FILTER_RAW_DATA(object): + """A Python representation of an ISAPI + +HTTP_FILTER_RAW_DATA structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def InData(self)->'str': + """""" + pass + + +class HTTP_FILTER_URL_MAP(object): + """A Python representation of an ISAPI + +HTTP_FILTER_URL_MAP structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def URL(self)->'str': + """""" + pass + + + @property + def PhysicalPath(self)->'str': + """""" + pass + + +class HTTP_FILTER_VERSION(object): + """A Python interface to the ISAPI HTTP_FILTER_VERSION + +structure.""" + + def __new__(cls): + raise Exception('This class just for typing, can not be instanced!') + + + @property + def ServerFilterVersion(self)->'typing.Any': + """(read-only)""" + pass + + + @property + def FilterVersion(self)->'typing.Any': + """""" + pass + + + @property + def Flags(self)->'typing.Any': + """""" + pass + + + @property + def FilterDesc(self)->'str': + """""" + pass From fdcffa9cb931a680c95b2591dbaf8c0779cad00f Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 4 Dec 2021 22:14:54 -0500 Subject: [PATCH 09/54] Fixed certificate error and random crash on open when compiled --- PyInstaller/hooks/hook-requests.py | 4 ++++ scripts/build.bat | 2 +- src/AutoSplit.py | 15 ++++++++++----- src/menu_bar.py | 2 +- src/settings_file.py | 2 +- 5 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 PyInstaller/hooks/hook-requests.py diff --git a/PyInstaller/hooks/hook-requests.py b/PyInstaller/hooks/hook-requests.py new file mode 100644 index 00000000..13de4b6b --- /dev/null +++ b/PyInstaller/hooks/hook-requests.py @@ -0,0 +1,4 @@ +from PyInstaller.utils.hooks import collect_data_files + +# Get the cacert.pem +datas = collect_data_files("certifi") diff --git a/scripts/build.bat b/scripts/build.bat index f8a5f6b8..bfc6d7ee 100644 --- a/scripts/build.bat +++ b/scripts/build.bat @@ -1,2 +1,2 @@ CALL "%~p0compile_resources.bat" -pyinstaller -w -F --icon=res\icon.ico "%~p0..\src\AutoSplit.py" +pyinstaller --windowed --onefile --additional-hooks-dir=Pyinstaller\hooks --icon=res\icon.ico "%~p0..\src\AutoSplit.py" diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 854a5a6a..465c9682 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -19,6 +19,7 @@ from copy import copy from time import time +import certifi import cv2 import numpy as np from PyQt6 import QtCore, QtGui, QtTest @@ -50,6 +51,9 @@ CREATE_NEW_ISSUE_MESSAGE = "Please create a New Issue at " \ "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" +# Needed when compiled, along with the custom hook-requests PyInstaller hook +os.environ["REQUESTS_CA_BUNDLE"] = certifi.where() + def make_excepthook(main_window: AutoSplit): def excepthook(exception_type: type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): @@ -1188,13 +1192,14 @@ def main(): app.setWindowIcon(QtGui.QIcon(":/resources/icon.ico")) AutoSplit() - # Kickoff the event loop every so often so we can handle KeyboardInterrupt (^C) - timer = QtCore.QTimer() - timer.timeout.connect(lambda: None) - timer.start(500) + if not FROZEN: + # Kickoff the event loop every so often so we can handle KeyboardInterrupt (^C) + timer = QtCore.QTimer() + timer.timeout.connect(lambda: None) + timer.start(500) exit_code = app.exec() - except Exception as exception: # pylint: disable=broad-except + except Exception as exception: # pylint: disable=broad-except # We really want to catch everything here message = f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}" # Print error to console if not running in executable if FROZEN: diff --git a/src/menu_bar.py b/src/menu_bar.py index 9c9dbd1a..15e6e82d 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -81,7 +81,7 @@ def __init__(self, autosplit: AutoSplit, check_on_open: bool): def run(self): try: - response = requests.get("https://duckduckgo.com/?q=pyright+generate+stub+file&t=opera&ia=web") + response = requests.get("https://api.github.com/repos/Toufool/Auto-Split/releases/latest") latest_version = response.json()["name"].split("v")[1] self.autosplit.updateCheckerWidgetSignal.emit(latest_version, self.check_on_open) except (RequestException, KeyError, JSONDecodeError): diff --git a/src/settings_file.py b/src/settings_file.py index b5aff428..9a30cb37 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -16,7 +16,7 @@ from hotkeys import _hotkey_action # type: ignore # Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller -FROZEN = getattr(sys, "frozen", False) +FROZEN = hasattr(sys, "frozen") # Get the directory of either AutoSplit.exe or AutoSplit.py auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) From f621fac31b3afc82892b68aff34689f23ae50b6e Mon Sep 17 00:00:00 2001 From: Avasam Date: Sun, 5 Dec 2021 15:12:47 -0500 Subject: [PATCH 10/54] Using python/typeshed/pull/6492 --- scripts/requirements.txt | 2 ++ typings/simplejson/errors.pyi | 34 ---------------------------------- 2 files changed, 2 insertions(+), 34 deletions(-) delete mode 100644 typings/simplejson/errors.pyi diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 4a438a17..e07a35a5 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -28,6 +28,8 @@ flake8 flake8-quotes pylint pywin32-stubs +simplejson +types-simplejson>=3.17.2 types-requests # # Comment this out if you don't want to build AutoSplit.exe: diff --git a/typings/simplejson/errors.pyi b/typings/simplejson/errors.pyi deleted file mode 100644 index d98b7495..00000000 --- a/typings/simplejson/errors.pyi +++ /dev/null @@ -1,34 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -"""Error classes used by simplejson -""" -__all__ = ['JSONDecodeError'] -def linecol(doc, pos): # -> tuple[Unknown, Unknown]: - ... - -def errmsg(msg, doc, pos, end=...): # -> str: - ... - -class JSONDecodeError(ValueError): - """Subclass of ValueError with the following additional properties: - - msg: The unformatted error message - doc: The JSON document being parsed - pos: The start index of doc where parsing failed - end: The end index of doc where parsing failed (may be None) - lineno: The line corresponding to pos - colno: The column corresponding to pos - endlineno: The line corresponding to end (may be None) - endcolno: The column corresponding to end (may be None) - - """ - def __init__(self, msg, doc, pos, end=...) -> None: - ... - - def __reduce__(self): # -> tuple[Type[Self@JSONDecodeError], tuple[Unknown, Unknown, Unknown, Unknown]]: - ... - - - From f0fa0e2aa4c0d03485819b80b0a7daece1cea0e3 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sun, 5 Dec 2021 15:13:17 -0500 Subject: [PATCH 11/54] PEP8 naming convention --- .flake8 | 17 +- .github/workflows/lint-and-build.yml | 1 + PyInstaller/hooks/hook-cv2.py | 23 + pyproject.toml | 21 +- res/about.ui | 20 +- res/design.ui | 351 +++++----- res/update_checker.ui | 20 +- scripts/requirements.txt | 2 +- src/AutoControlledWorker.py | 14 +- src/AutoSplit.py | 659 +++++++++---------- src/capture_windows.py | 24 +- src/compare.py | 18 +- src/error_messages.py | 114 ++-- src/gen/about.pyi | 4 +- src/gen/design.pyi | 2 +- src/hotkeys.py | 173 ++--- src/menu_bar.py | 42 +- src/screen_region.py | 78 +-- src/settings_file.py | 168 ++--- src/split_parser.py | 44 +- typings/PyInstaller/utils/hooks/__init__.pyi | 129 ++++ typings/imagehash/__init__.pyi | 175 +---- 22 files changed, 1050 insertions(+), 1049 deletions(-) create mode 100644 PyInstaller/hooks/hook-cv2.py create mode 100644 typings/PyInstaller/utils/hooks/__init__.pyi diff --git a/.flake8 b/.flake8 index e6aff2b6..cf559c33 100644 --- a/.flake8 +++ b/.flake8 @@ -3,13 +3,12 @@ color=always max-line-length=120 ; Auto generated exclude=src/gen/ -; TODO: We want to configure this -ignore=W503,N801,N802,N803,N806,N815,N816 -per-file-ignores = - ; imported but unused - ; line too long - ; mixed case - __init__.pyi:F401,E501,N816 -; TODO: Bring WAY down +ignores=Y015 +per-file-ignores= + ; Quotes + __init__.pyi:Q000 +; PyQt methods +ignore-names=closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent +; TODO: Bring down to 15, same as SonarLint max-complexity=55 -inline-quotes = " +inline-quotes=" diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 775b7925..2cb777c5 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -16,6 +16,7 @@ on: - master - dev - dev* + - 2.0.0 paths: - '**.py' - '**.pyi' diff --git a/PyInstaller/hooks/hook-cv2.py b/PyInstaller/hooks/hook-cv2.py new file mode 100644 index 00000000..172c078c --- /dev/null +++ b/PyInstaller/hooks/hook-cv2.py @@ -0,0 +1,23 @@ +# ------------------------------------------------------------------ +# Copyright (c) 2020 PyInstaller Development Team. +# +# This file is distributed under the terms of the GNU General Public +# License (version 2.0 or later). +# +# The full license is available in LICENSE.GPL.txt, distributed with +# this software. +# +# SPDX-License-Identifier: GPL-2.0-or-later +# ------------------------------------------------------------------ +# https://github.com/pyinstaller/pyinstaller-hooks-contrib/blob/master/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cv2.py + +from PyInstaller.utils.hooks import collect_dynamic_libs, collect_data_files + +hiddenimports = ["numpy"] + +# Include any DLLs from site-packages/cv2 (opencv_videoio_ffmpeg*.dll can be found there in the PyPI version) +binaries = collect_dynamic_libs("cv2") + +# https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 +# OpenCV loader from 4.5.4.60 requires extra config files and modules +datas = collect_data_files("cv2", include_py_files=True, includes=["**/*.py"]) diff --git a/pyproject.toml b/pyproject.toml index 9b35cb8f..dc307dc4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,9 +36,9 @@ reportUnknownMemberType = "none" # https://pylint.pycqa.org/en/latest/technical_reference/features.html [tool.pylint.REPORTS] # Just like default but any error will make drop to 9 or less -evaluation="10.0 - error - ((float(warning + refactor + convention) / statement) * 10)" +evaluation = "10.0 - error - ((float(warning + refactor + convention) / statement) * 10)" [tool.pylint.MASTER] -fail-under=9.0 +fail-under = 9.0 # https://pylint.pycqa.org/en/latest/technical_reference/extensions.html load-plugins = [ "pylint.extensions.emptystring", @@ -71,18 +71,27 @@ ignore-paths = [ "^src/gen/.*$", ] # No need to mention the fixmes -disable=["fixme"] +disable = ["fixme"] extension-pkg-allow-list = ["PyQt6", "win32ui"] [tool.pylint.FORMAT] max-line-length = 120 [tool.pylint.'MESSAGES CONTROL'] +# Same as SonarLint +max-complexity = 15 +max-branches = 15 +# https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles +module-naming-style = "any" +# Can't make private class with PascalCase +class-rgx = "_?_?[a-zA-Z]+?$" +good-names = [ + # PyQt methods + "closeEvent", "paintEvent", "keyPressEvent", "mousePressEvent", "mouseMoveEvent", "mouseReleaseEvent", + # https://github.com/PyCQA/pylint/issues/2018 + "x", "y", "a0", "i", "t0", "t1"] disable = [ "missing-docstring", - # TODO: We want to configure this - # https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles - "invalid-name", # We group imports "wrong-import-position", # Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride diff --git a/res/about.ui b/res/about.ui index d963f5e2..4cb2cc3d 100644 --- a/res/about.ui +++ b/res/about.ui @@ -1,7 +1,7 @@ - aboutAutoSplitWidget - + AboutAutoSplitWidget + 0 @@ -34,7 +34,7 @@ :/resources/icon.ico:/resources/icon.ico - + 180 @@ -47,7 +47,7 @@ OK - + 10 @@ -60,7 +60,7 @@ <html><head/><body><p>Created by <a href="https://twitter.com/toufool"><span style=" text-decoration: underline; color:#0000ff;">Toufool</span></a> and <a href="https://twitter.com/faschz"><span style=" text-decoration: underline; color:#0000ff;">Faschz</span></a><br/>Maintained by <a href="https://twitter.com/Avasam06"><span style=" text-decoration: underline; color:#0000ff;">Avasam</span></a></p></body></html> - + 10 @@ -73,7 +73,7 @@ Version: - + 30 @@ -90,7 +90,7 @@ consider donating. Thank you! Qt::AlignCenter - + 60 @@ -109,7 +109,7 @@ consider donating. Thank you! Qt::AlignCenter - + 190 @@ -131,9 +131,9 @@ consider donating. Thank you!
- okButton + ok_button clicked() - aboutAutoSplitWidget + AboutAutoSplitWidget close() diff --git a/res/design.ui b/res/design.ui index af4e7559..41e7316c 100644 --- a/res/design.ui +++ b/res/design.ui @@ -46,8 +46,8 @@ Qt::LeftToRight - - + + 20 @@ -60,7 +60,7 @@ Split Image Folder: - + 130 @@ -73,7 +73,7 @@ true - + 540 @@ -89,7 +89,7 @@ Browse... - + 25 @@ -102,7 +102,7 @@ X - + true @@ -124,7 +124,7 @@ false
- + 5 @@ -140,7 +140,7 @@ Select Region - + 7 @@ -153,7 +153,7 @@ Default similarity threshold: - + 155 @@ -172,7 +172,7 @@ 0.900000000000000 - + 500 @@ -188,7 +188,7 @@ Start Auto Splitter - + 500 @@ -204,7 +204,7 @@ Reset - + 494 @@ -220,7 +220,7 @@ Undo Split - + 560 @@ -236,7 +236,7 @@ Skip Split - + 7 @@ -249,7 +249,7 @@ Default pause time (sec): - + 5 @@ -265,7 +265,7 @@ Max FPS - + 87 @@ -278,7 +278,7 @@ FPS - + true @@ -300,7 +300,7 @@ false
- + true @@ -322,7 +322,7 @@ false
- + 171 @@ -335,7 +335,7 @@ - + 171 @@ -348,7 +348,7 @@ - + 230 @@ -361,7 +361,7 @@ Start / Split - + 230 @@ -374,7 +374,7 @@ Reset - + 230 @@ -387,7 +387,7 @@ Skip Split - + 230 @@ -400,7 +400,7 @@ Undo Split - + 300 @@ -413,7 +413,7 @@ true - + 300 @@ -429,7 +429,7 @@ true - + 300 @@ -442,7 +442,7 @@ true - + 300 @@ -455,7 +455,7 @@ true - + 390 @@ -471,7 +471,7 @@ Set Hotkey - + 390 @@ -487,7 +487,7 @@ Set Hotkey - + 390 @@ -503,7 +503,7 @@ Set Hotkey - + 390 @@ -519,7 +519,7 @@ Set Hotkey - + 220 @@ -538,7 +538,7 @@ Qt::Vertical - + 230 @@ -554,7 +554,7 @@ Qt::AlignCenter - + 490 @@ -573,7 +573,7 @@ Qt::Vertical - + 120 @@ -592,7 +592,7 @@ Qt::AlignCenter - + 380 @@ -611,7 +611,7 @@ Qt::AlignCenter - + 450 @@ -624,7 +624,7 @@ Current Split Image - + 12 @@ -637,7 +637,7 @@ Width - + 66 @@ -650,7 +650,7 @@ Height - + 58 @@ -663,7 +663,7 @@ - + 6 @@ -682,7 +682,7 @@ 640 - + 62 @@ -701,7 +701,7 @@ 480 - + 200 @@ -714,7 +714,7 @@ Capture Region - + 8 @@ -727,7 +727,7 @@ FPS Limit: - + 62 @@ -755,7 +755,7 @@ 60.000000000000000 - + 380 @@ -771,7 +771,7 @@ Qt::AlignCenter - + 260 @@ -787,7 +787,7 @@ Take Screenshot - + 6 @@ -815,7 +815,7 @@ 0 - + 62 @@ -840,7 +840,7 @@ 0 - + 81 @@ -853,7 +853,7 @@ Y - + 125 @@ -878,7 +878,7 @@ - + 155 @@ -897,7 +897,7 @@ 10.000000000000000 - + 7 @@ -910,7 +910,7 @@ Comparison Method - + 5 @@ -926,7 +926,7 @@ Align Region - + 230 @@ -942,7 +942,7 @@ false - + 5 @@ -958,7 +958,7 @@ Select Window - + 379 @@ -971,7 +971,7 @@ Image Loop: - + 230 @@ -984,7 +984,7 @@ Pause - + 300 @@ -1000,7 +1000,7 @@ true - + 390 @@ -1016,7 +1016,7 @@ Set Hotkey - + true @@ -1038,7 +1038,7 @@ false
- + 500 @@ -1057,7 +1057,7 @@ false - + 500 @@ -1073,7 +1073,7 @@ Reload Start Image - + 440 @@ -1086,7 +1086,7 @@ Start image: - + 7 @@ -1099,7 +1099,7 @@ Current similarity threshold: - + 171 @@ -1112,7 +1112,7 @@ - + 120 @@ -1128,7 +1128,7 @@ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter - + true @@ -1144,76 +1144,76 @@ Force Full Content Rendering (slower)
- splitimagefolderLabel - splitimagefolderLineEdit - browseButton - xLabel - liveimageCheckBox - selectregionButton - similaritythresholdLabel - similaritythresholdDoubleSpinBox - startautosplitterButton - resetButton - undosplitButton - skipsplitButton - pauseLabel - checkfpsButton - fpsLabel - showlivesimilarityCheckBox - showhighestsimilarityCheckBox - livesimilarityLabel - highestsimilarityLabel - splitLabel - resetLabel - skiptsplitLabel - undosplitLabel - splitLineEdit - undosplitLineEdit - skipsplitLineEdit - resetLineEdit - setsplithotkeyButton - setresethotkeyButton - setskipsplithotkeyButton - setundosplithotkeyButton - line_left - timerglobalhotkeysLabel - line_right - currentsplitimageLabel - liveImage - currentSplitImage - widthLabel - heightLabel - fpsvalueLabel - widthSpinBox - heightSpinBox - captureregionLabel - fpslimitLabel - fpslimitSpinBox - currentsplitimagefileLabel - takescreenshotButton - xSpinBox - ySpinBox - yLabel - comparisonmethodComboBox - pauseDoubleSpinBox - comparisonmethodLabel - alignregionButton - groupDummySplitsCheckBox - selectwindowButton - imageloopLabel - pausehotkeyLabel - pausehotkeyLineEdit - setpausehotkeyButton - loopCheckBox - autostartonresetCheckBox - startImageReloadButton - startImageLabel - currentsimilaritythresholdLabel - currentsimilaritythresholdnumberLabel - captureregionwindowLabel - forcePrintWindowCheckBox + split_image_folder_label + split_image_folder_input + browse_button + x_label + live_image_checkbox + select_region_button + similarity_threshold_label + similarity_threshold_spinbox + start_auto_splitter_button + reset_button + undo_split_button + skip_split_button + pause_label + check_fps_button + fps_label + show_live_similarity_checkbox + show_highest_similarity_checkbox + live_similarity_label + highest_similarity_label + split_label + reset_label + skip_split_label + undo_split_label + split_input + undo_split_input + skip_split_input + reset_input + set_split_hotkey_button + set_reset_hotkey_button + set_skip_split_hotkey_button + set_undo_split_hotkey_button + left_line + timer_global_hotkeys_label + right_line + current_split_image_label + live_image + current_split_image + width_label + height_label + fps_value_label + width_spinbox + height_spinbox + capture_region_label + fps_limit_label + fps_limit_spinbox + current_split_image_file_label + take_screenshot_button + x_spinbox + y_spinbox + y_label + comparison_method_combobox + pause_spinbox + comparison_method_label + align_region_button + group_dummy_splits_checkbox + select_window_button + image_loop_label + pause_hotkey_label + pause_hotkey_input + set_pause_hotkey_button + loop_checkbox + auto_start_on_reset_checkbox + start_image_reload_button + start_image_label + current_similarity_threshold_label + current_similarity_threshold_number_label + capture_region_window_label + force_print_window_checkbox - + 0 @@ -1222,62 +1222,57 @@ 22 - + Help - - - - + + + + - + File - - - + + + - - + + - + View Help - + About - - - Split Image Settings - - - + Save Settings - + Load Settings - + Save Settings As... - + Check for Updates... - + true @@ -1293,23 +1288,23 @@ - splitimagefolderLineEdit - xSpinBox - ySpinBox - widthSpinBox - heightSpinBox - fpslimitSpinBox - liveimageCheckBox - comparisonmethodComboBox - showlivesimilarityCheckBox - showhighestsimilarityCheckBox - similaritythresholdDoubleSpinBox - pauseDoubleSpinBox - splitLineEdit - resetLineEdit - skipsplitLineEdit - undosplitLineEdit - groupDummySplitsCheckBox + split_image_folder_input + x_spinbox + y_spinbox + width_spinbox + height_spinbox + fps_limit_spinbox + live_image_checkbox + comparison_method_combobox + show_live_similarity_checkbox + show_highest_similarity_checkbox + similarity_threshold_spinbox + pause_spinbox + split_input + reset_input + skip_split_input + undo_split_input + group_dummy_splits_checkbox diff --git a/res/update_checker.ui b/res/update_checker.ui index a2f767ae..53567fc1 100644 --- a/res/update_checker.ui +++ b/res/update_checker.ui @@ -46,7 +46,7 @@ :/resources/icon.ico:/resources/icon.ico
- + 20 @@ -65,7 +65,7 @@ There is an update available for AutoSplit. - + 20 @@ -78,7 +78,7 @@ Current Version: - + 20 @@ -91,7 +91,7 @@ Latest Version: - + 20 @@ -104,7 +104,7 @@ Open download page? - + 150 @@ -120,7 +120,7 @@ Open - + 230 @@ -133,7 +133,7 @@ Later - + 120 @@ -146,7 +146,7 @@ - + 120 @@ -159,7 +159,7 @@ - + 20 @@ -178,7 +178,7 @@
- pushButtonRight + right_button clicked() UpdateChecker close() diff --git a/scripts/requirements.txt b/scripts/requirements.txt index e07a35a5..30eb0766 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -13,7 +13,7 @@ ImageHash keyboard numpy>=1.22.0rc1 -opencv-python<=4.5.3.56 # https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 +opencv-python packaging Pillow PyQt6 diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index 7ef33a0c..219a93be 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -18,7 +18,7 @@ def run(self): try: line = input() except RuntimeError: - self.autosplit.showErrorSignal.emit(error_messages.stdinLostError) + self.autosplit.show_error_signal.emit(error_messages.stdin_lost) break # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" @@ -27,17 +27,17 @@ def run(self): self.autosplit.closeEvent() break if line == "start": - self.autosplit.startAutoSplitter() + self.autosplit.start_suto_splitter() elif line in {"split", "skip"}: - self.autosplit.startSkipSplit() + self.autosplit.start_skip_split() elif line == "undo": - self.autosplit.startUndoSplit() + self.autosplit.start_undo_split() elif line == "reset": - self.autosplit.startReset() + self.autosplit.start_reset() elif line.startswith("settings"): # Allow for any split character between "settings" and the path self.autosplit.load_settings_file_path = line[9:] - settings.loadSettings(self.autosplit, load_settings_from_livesplit=True) + settings.load_settings(self.autosplit, load_settings_from_livesplit=True) # TODO: Not yet implemented in AutoSplit Integration # elif line == 'pause': - # self.startPause() + # self.start_pause() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 465c9682..b0a20359 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -32,12 +32,12 @@ import split_parser from AutoControlledWorker import AutoControlledWorker from capture_windows import capture_region, Rect -from compare import checkIfImageHasTransparency, compareImage +from compare import check_if_image_has_transparency, compare_image from gen import about, design, update_checker -from hotkeys import send_command, afterSettingHotkey, setSplitHotkey, setResetHotkey, setSkipSplitHotkey, \ - setUndoSplitHotkey, setPauseHotkey -from menu_bar import open_about, VERSION, viewHelp, checkForUpdates, open_update_checker -from screen_region import selectRegion, selectWindow, alignRegion, validateBeforeComparison +from hotkeys import send_command, after_setting_hotkey, set_split_hotkey, set_reset_hotkey, set_skip_split_hotkey, \ + set_undo_split_hotkey, set_pause_hotkey +from menu_bar import open_about, VERSION, view_help, check_for_updates, open_update_checker +from screen_region import select_region, select_window, align_region, validate_before_comparison from settings_file import FROZEN from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG @@ -50,6 +50,8 @@ DISPLAY_RESIZE = (DISPLAY_RESIZE_WIDTH, DISPLAY_RESIZE_HEIGHT) CREATE_NEW_ISSUE_MESSAGE = "Please create a New Issue at " \ "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" +START_IMAGE_TEXT = "Start Image" +START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" # Needed when compiled, along with the custom hook-requests PyInstaller hook os.environ["REQUESTS_CA_BUNDLE"] = certifi.where() @@ -60,7 +62,7 @@ def excepthook(exception_type: type[BaseException], exception: BaseException, _t # Catch Keyboard Interrupts for a clean close if exception_type is KeyboardInterrupt or isinstance(exception, KeyboardInterrupt): sys.exit(0) - main_window.showErrorSignal.emit(lambda: error_messages.exceptionTraceback( + main_window.show_error_signal.emit(lambda: error_messages.exception_traceback( "AutoSplit encountered an unhandled exception and will try to recover, " f"however, there is no guarantee everything will work properly. {CREATE_NEW_ISSUE_MESSAGE}", exception)) @@ -75,23 +77,23 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): is_auto_controlled = "--auto-controlled" in sys.argv # Signals - updateCurrentSplitImage = QtCore.pyqtSignal(QtGui.QImage) - startAutoSplitterSignal = QtCore.pyqtSignal() - resetSignal = QtCore.pyqtSignal() - skipSplitSignal = QtCore.pyqtSignal() - undoSplitSignal = QtCore.pyqtSignal() - pauseSignal = QtCore.pyqtSignal() - afterSettingHotkeySignal = QtCore.pyqtSignal() - updateCheckerWidgetSignal = QtCore.pyqtSignal(str, bool) + update_current_split_image = QtCore.pyqtSignal(QtGui.QImage) + start_auto_splitter_signal = QtCore.pyqtSignal() + reset_signal = QtCore.pyqtSignal() + skip_split_signal = QtCore.pyqtSignal() + undo_split_signal = QtCore.pyqtSignal() + pause_signal = QtCore.pyqtSignal() + after_setting_hotkey_signal = QtCore.pyqtSignal() + update_checker_widget_signal = QtCore.pyqtSignal(str, bool) # Use this signal when trying to show an error from outside the main thread - showErrorSignal = QtCore.pyqtSignal(FunctionType) + show_error_signal = QtCore.pyqtSignal(FunctionType) # Timers - timerLiveImage = QtCore.QTimer() - timerStartImage = QtCore.QTimer() + timer_live_image = QtCore.QTimer() + timer_start_image = QtCore.QTimer() # Windows - AboutWidget: about.Ui_aboutAutoSplitWidget + AboutWidget: about.Ui_AboutAutoSplitWidget UpdateCheckerWidget: update_checker.Ui_UpdateChecker CheckForUpdatesThread: QtCore.QThread @@ -137,14 +139,14 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): last_successfully_loaded_settings_file_path: Optional[str] = None # Automatic timer start - timerStartImage_is_running = False + timer_start_image_is_running = False start_image = None highest_similarity = 0.0 check_start_image_timestamp = 0.0 # Define all other attributes setting_check_for_updates_on_open: QtCore.QSettings - imageHasTransparency: bool + image_has_transparency: bool start_image_split_below_threshold: bool waiting_for_split_delay: bool split_below_threshold: bool @@ -168,40 +170,40 @@ def __init__(self, parent: Optional[QWidget] = None): super().__init__(parent) # Setup global error handling - self.showErrorSignal.connect(lambda errorMessageBox: errorMessageBox()) + self.show_error_signal.connect(lambda errorMessageBox: errorMessageBox()) # Whithin LiveSplit excepthook needs to use main_window's signals to show errors sys.excepthook = make_excepthook(self) self.setupUi(self) - settings.loadPyQtSettings(self) + settings.load_pyqt_settings(self) # close all processes when closing window - self.actionView_Help.triggered.connect(viewHelp) - self.actionAbout.triggered.connect(lambda: open_about(self)) - self.actionCheck_for_Updates.triggered.connect(lambda: checkForUpdates(self)) - self.actionSave_Settings.triggered.connect(lambda: settings.saveSettings(self)) - self.actionSave_Settings_As.triggered.connect(lambda: settings.saveSettingsAs(self)) - self.actionLoad_Settings.triggered.connect(lambda: settings.loadSettings(self)) + self.action_view_help.triggered.connect(view_help) + self.action_about.triggered.connect(lambda: open_about(self)) + self.action_check_for_updates.triggered.connect(lambda: check_for_updates(self)) + self.action_save_settings.triggered.connect(lambda: settings.save_settings(self)) + self.action_save_settings_as.triggered.connect(lambda: settings.save_settings_as(self)) + self.action_load_settings.triggered.connect(lambda: settings.load_settings(self)) # disable buttons upon open - self.undosplitButton.setEnabled(False) - self.skipsplitButton.setEnabled(False) - self.resetButton.setEnabled(False) + self.undo_split_button.setEnabled(False) + self.skip_split_button.setEnabled(False) + self.reset_button.setEnabled(False) if self.is_auto_controlled: - self.setsplithotkeyButton.setEnabled(False) - self.setresethotkeyButton.setEnabled(False) - self.setskipsplithotkeyButton.setEnabled(False) - self.setundosplithotkeyButton.setEnabled(False) - self.setpausehotkeyButton.setEnabled(False) - self.startautosplitterButton.setEnabled(False) - self.splitLineEdit.setEnabled(False) - self.resetLineEdit.setEnabled(False) - self.skipsplitLineEdit.setEnabled(False) - self.undosplitLineEdit.setEnabled(False) - self.pausehotkeyLineEdit.setEnabled(False) - self.timerglobalhotkeysLabel.setText("Hotkeys Inactive - Use LiveSplit Hotkeys") + self.set_split_hotkey_button.setEnabled(False) + self.set_reset_hotkey_button.setEnabled(False) + self.set_skip_split_hotkey_button.setEnabled(False) + self.set_undo_split_hotkey_button.setEnabled(False) + self.set_pause_hotkey_button.setEnabled(False) + self.start_auto_splitter_button.setEnabled(False) + self.split_input.setEnabled(False) + self.reset_input.setEnabled(False) + self.skip_split_input.setEnabled(False) + self.undo_split_input.setEnabled(False) + self.pause_hotkey_input.setEnabled(False) + self.timer_global_hotkeys_label.setText("Hotkeys Inactive - Use LiveSplit Hotkeys") # Send version and process ID to stdout print(f"{VERSION}\n{os.getpid()}", flush=True) @@ -214,69 +216,69 @@ def __init__(self, parent: Optional[QWidget] = None): self.update_auto_control.start() # split image folder line edit text - self.splitimagefolderLineEdit.setText("No Folder Selected") + self.split_image_folder_input.setText("No Folder Selected") # Connecting button clicks to functions - self.browseButton.clicked.connect(self.browse) - self.selectregionButton.clicked.connect(lambda: selectRegion(self)) - self.takescreenshotButton.clicked.connect(self.takeScreenshot) - self.startautosplitterButton.clicked.connect(self.autoSplitter) - self.checkfpsButton.clicked.connect(self.checkFPS) - self.resetButton.clicked.connect(self.reset) - self.skipsplitButton.clicked.connect(self.skipSplit) - self.undosplitButton.clicked.connect(self.undoSplit) - self.setsplithotkeyButton.clicked.connect(lambda: setSplitHotkey(self)) - self.setresethotkeyButton.clicked.connect(lambda: setResetHotkey(self)) - self.setskipsplithotkeyButton.clicked.connect(lambda: setSkipSplitHotkey(self)) - self.setundosplithotkeyButton.clicked.connect(lambda: setUndoSplitHotkey(self)) - self.setpausehotkeyButton.clicked.connect(lambda: setPauseHotkey(self)) - self.alignregionButton.clicked.connect(lambda: alignRegion(self)) - self.selectwindowButton.clicked.connect(lambda: selectWindow(self)) - self.startImageReloadButton.clicked.connect(lambda: self.loadStartImage(True, True)) - self.actionCheck_for_Updates_on_Open.changed.connect(lambda: settings.set_check_for_updates_on_open( + self.browse_button.clicked.connect(self.browse) + self.select_region_button.clicked.connect(lambda: select_region(self)) + self.take_screenshot_button.clicked.connect(self.take_screenshot) + self.start_auto_splitter_button.clicked.connect(self.auto_splitter) + self.check_fps_button.clicked.connect(self.check_fps) + self.reset_button.clicked.connect(self.reset) + self.skip_split_button.clicked.connect(self.skip_split) + self.undo_split_button.clicked.connect(self.undo_split) + self.set_split_hotkey_button.clicked.connect(lambda: set_split_hotkey(self)) + self.set_reset_hotkey_button.clicked.connect(lambda: set_reset_hotkey(self)) + self.set_skip_split_hotkey_button.clicked.connect(lambda: set_skip_split_hotkey(self)) + self.set_undo_split_hotkey_button.clicked.connect(lambda: set_undo_split_hotkey(self)) + self.set_pause_hotkey_button.clicked.connect(lambda: set_pause_hotkey(self)) + self.align_region_button.clicked.connect(lambda: align_region(self)) + self.select_window_button.clicked.connect(lambda: select_window(self)) + self.start_image_reload_button.clicked.connect(lambda: self.load_start_image(True, True)) + self.action_check_for_updates_on_open.changed.connect(lambda: settings.set_check_for_updates_on_open( self, - self.actionCheck_for_Updates_on_Open.isChecked()) + self.action_check_for_updates_on_open.isChecked()) ) # update x, y, width, and height when changing the value of these spinbox's are changed - self.xSpinBox.valueChanged.connect(self.updateX) - self.ySpinBox.valueChanged.connect(self.updateY) - self.widthSpinBox.valueChanged.connect(self.updateWidth) - self.heightSpinBox.valueChanged.connect(self.updateHeight) + self.x_spinbox.valueChanged.connect(self.update_x) + self.y_spinbox.valueChanged.connect(self.update_y) + self.width_spinbox.valueChanged.connect(self.update_width) + self.height_spinbox.valueChanged.connect(self.update_height) # connect signals to functions - self.updateCurrentSplitImage.connect(self.updateSplitImageGUI) - self.afterSettingHotkeySignal.connect(lambda: afterSettingHotkey(self)) - self.startAutoSplitterSignal.connect(self.autoSplitter) - self.updateCheckerWidgetSignal.connect(lambda latest_version, check_on_open: - open_update_checker(self, latest_version, check_on_open)) - self.resetSignal.connect(self.reset) - self.skipSplitSignal.connect(self.skipSplit) - self.undoSplitSignal.connect(self.undoSplit) + self.update_current_split_image.connect(self.update_split_image_gui) + self.after_setting_hotkey_signal.connect(lambda: after_setting_hotkey(self)) + self.start_auto_splitter_signal.connect(self.auto_splitter) + self.update_checker_widget_signal.connect(lambda latest_version, check_on_open: + open_update_checker(self, latest_version, check_on_open)) + self.reset_signal.connect(self.reset) + self.skip_split_signal.connect(self.skip_split) + self.undo_split_signal.connect(self.undo_split) # live image checkbox - self.liveimageCheckBox.clicked.connect(self.checkLiveImage) - self.timerLiveImage.timeout.connect(self.liveImageFunction) + self.live_image_checkbox.clicked.connect(self.check_live_image) + self.timer_live_image.timeout.connect(self.live_image_function) # Automatic timer start - self.timerStartImage.timeout.connect(self.startImageFunction) + self.timer_start_image.timeout.connect(self.start_image_function) # Last loaded settings and last successful loaded settings file path to None until we try to load them self.last_loaded_settings = None self.last_successfully_loaded_settings_file_path = None if not self.is_auto_controlled: - settings.loadSettings(self, load_settings_on_open=True) + settings.load_settings(self, load_settings_on_open=True) self.show() # Needs to be after Ui_MainWindow.show() to be shown overtop - if self.actionCheck_for_Updates_on_Open.isChecked(): - checkForUpdates(self, check_on_open=True) + if self.action_check_for_updates_on_open.isChecked(): + check_for_updates(self, check_on_open=True) # FUNCTIONS - def getGlobalSettingsValues(self): + def get_global_settings_values(self): self.setting_check_for_updates_on_open = QtCore.QSettings("AutoSplit", "Check For Updates On Open") # TODO add checkbox for going back to image 1 when resetting. @@ -291,53 +293,53 @@ def browse(self): if new_split_image_directory: # set the split image folder line to the directory text self.split_image_directory = new_split_image_directory - self.splitimagefolderLineEdit.setText(f"{new_split_image_directory}/") - self.loadStartImage() + self.split_image_folder_input.setText(f"{new_split_image_directory}/") + self.load_start_image() - def checkLiveImage(self): - if self.liveimageCheckBox.isChecked(): - self.timerLiveImage.start(int(1000 / 60)) + def check_live_image(self): + if self.live_image_checkbox.isChecked(): + self.timer_live_image.start(int(1000 / 60)) else: - self.timerLiveImage.stop() - self.liveImageFunction() + self.timer_live_image.stop() + self.live_image_function() - def liveImageFunction(self): + def live_image_function(self): try: - windowText = win32gui.GetWindowText(self.hwnd) - self.captureregionwindowLabel.setText(windowText) - if not windowText: - self.timerLiveImage.stop() - self.liveImage.clear() + window_text = win32gui.GetWindowText(self.hwnd) + self.capture_region_window_label.setText(window_text) + if not window_text: + self.timer_live_image.stop() + self.live_image.clear() if self.live_image_function_on_open: self.live_image_function_on_open = False else: - error_messages.regionError() + error_messages.region() return - capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) + capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) capture = cv2.resize(capture, DISPLAY_RESIZE, interpolation=cv2.INTER_NEAREST) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) # Convert to set it on the label - qImage = QtGui.QImage(cast(bytes, capture), + qimage = QtGui.QImage(cast(bytes, capture), capture.shape[1], capture.shape[0], capture.shape[1] * 3, QtGui.QImage.Format.Format_RGB888) - pix = QtGui.QPixmap(qImage) - self.liveImage.setPixmap(pix) + pix = QtGui.QPixmap(qimage) + self.live_image.setPixmap(pix) except AttributeError: pass - def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = True): - self.timerStartImage.stop() - self.currentsplitimagefileLabel.setText(" ") - self.startImageLabel.setText("Start image: not found") + def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool = True): + self.timer_start_image.stop() + self.current_split_image_file_label.setText(" ") + self.start_image_label.setText(f"{START_IMAGE_TEXT}: not found") QApplication.processEvents() - if not validateBeforeComparison(self, started_by_button): + if not validate_before_comparison(self, started_by_button): return self.start_image_name = None @@ -347,20 +349,20 @@ def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = self.start_image_name = image else: if started_by_button: - error_messages.multipleKeywordImagesError("start_auto_splitter") + error_messages.multiple_keyword_images("start_auto_splitter") return if self.start_image_name is None: if started_by_button: - error_messages.noKeywordImageError("start_auto_splitter") + error_messages.no_keyword_image("start_auto_splitter") return if self.start_image_name is not None \ and not self.is_auto_controlled \ - and (not self.splitLineEdit.text() - or not self.resetLineEdit.text() - or not self.pausehotkeyLineEdit.text()): - error_messages.loadStartImageError() + and (not self.split_input.text() + or not self.reset_input.text() + or not self.pause_hotkey_input.text()): + error_messages.load_start_image() return self.split_image_filenames = os.listdir(self.split_image_directory) @@ -370,11 +372,11 @@ def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = self.start_image = cv2.imread(path, cv2.IMREAD_UNCHANGED) if self.start_image is None: - error_messages.imageTypeError(path) + error_messages.image_type(path) return # if image has transparency, create a mask - self.imageHasTransparency = checkIfImageHasTransparency(self.start_image) - if self.imageHasTransparency: + self.image_has_transparency = check_if_image_has_transparency(self.start_image) + if self.image_has_transparency: self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Create mask based on resized, nearest neighbor interpolated split image lower = np.array([0, 0, 0, 1], dtype="uint8") @@ -392,61 +394,60 @@ def loadStartImage(self, started_by_button: bool = False, wait_for_delay: bool = start_image_pause = split_parser.pause_from_filename(self.start_image_name) if not wait_for_delay and start_image_pause is not None and start_image_pause > 0: self.check_start_image_timestamp = time() + start_image_pause - self.startImageLabel.setText("Start image: paused") - self.highestsimilarityLabel.setText(" ") - self.currentsimilaritythresholdnumberLabel.setText(" ") + self.start_image_label.setText(f"{START_IMAGE_TEXT}: paused") + self.highest_similarity_label.setText(" ") + self.current_similarity_threshold_number_label.setText(" ") else: self.check_start_image_timestamp = 0.0 - self.startImageLabel.setText("Start image: ready") - self.updateSplitImage(self.start_image_name, from_start_image=True) + self.start_image_label.setText(f"{START_IMAGE_TEXT}: ready") + self.update_split_image(self.start_image_name, from_start_image=True) self.highest_similarity = 0.0 self.start_image_split_below_threshold = False - self.timerStartImage.start(int(1000 / self.fpslimitSpinBox.value())) + self.timer_start_image.start(int(1000 / self.fps_limit_spinbox.value())) QApplication.processEvents() - def startImageFunction(self): - + def start_image_function(self): if self.start_image is None \ or not self.start_image_name \ or time() < self.check_start_image_timestamp \ - or (not self.splitLineEdit.text() and not self.is_auto_controlled): + or (not self.split_input.text() and not self.is_auto_controlled): pause_time_left = f"{self.check_start_image_timestamp - time():.1f}" - self.currentSplitImage.setText( - f"None\n (Paused before loading Start Image).\n {pause_time_left} sec remaining") + self.current_split_image.setText( + f"None\n (Paused before loading {START_IMAGE_TEXT}).\n {pause_time_left} sec remaining") return if self.check_start_image_timestamp > 0: self.check_start_image_timestamp = 0.0 - self.startImageLabel.setText("Start image: ready") - self.updateSplitImage(self.start_image_name, from_start_image=True) + self.start_image_label.setText(f"{START_IMAGE_TEXT}: ready") + self.update_split_image(self.start_image_name, from_start_image=True) - capture = self.getCaptureForComparison() - start_image_similarity = compareImage( - self.comparisonmethodComboBox.currentIndex(), + capture = self.get_capture_for_comparison() + start_image_similarity = compare_image( + self.comparison_method_combobox.currentIndex(), self.start_image, capture, self.start_image_mask) start_image_threshold = split_parser.threshold_from_filename(self.start_image_name) \ - or self.similaritythresholdDoubleSpinBox.value() - self.currentsimilaritythresholdnumberLabel.setText(f"{start_image_threshold:.2f}") + or self.similarity_threshold_spinbox.value() + self.current_similarity_threshold_number_label.setText(f"{start_image_threshold:.2f}") start_image_flags = split_parser.flags_from_filename(self.start_image_name) start_image_delay = split_parser.delay_from_filename(self.start_image_name) # Show live similarity if the checkbox is checked - self.livesimilarityLabel.setText(str(start_image_similarity)[:4] - if self.showlivesimilarityCheckBox.isChecked() - else " ") + self.live_similarity_label.setText(str(start_image_similarity)[:4] + if self.show_live_similarity_checkbox.isChecked() + else " ") # If the similarity becomes higher than highest similarity, set it as such. if start_image_similarity > self.highest_similarity: self.highest_similarity = start_image_similarity # Show live highest similarity if the checkbox is checked - self.highestsimilarityLabel.setText(str(self.highest_similarity)[:4] - if self.showlivesimilarityCheckBox.isChecked() - else " ") + self.highest_similarity_label.setText(str(self.highest_similarity)[:4] + if self.show_live_similarity_checkbox.isChecked() + else " ") # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold @@ -462,71 +463,72 @@ def startImageFunction(self): def split(): send_command(self, "start") # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(1 / self.fpslimitSpinBox.value()) # type: ignore - self.startAutoSplitter() + QtTest.QTest.qWait(1 / self.fps_limit_spinbox.value()) # type: ignore + self.start_suto_splitter() - self.timerStartImage.stop() + self.timer_start_image.stop() self.start_image_split_below_threshold = False # delay start image if needed if start_image_delay > 0: - self.startImageLabel.setText("Start image: delaying start...") + self.start_image_label.setText(f"{START_IMAGE_TEXT}: delaying start...") delay_start_time = time() while time() - delay_start_time < (start_image_delay / 1000): delay_time_left = round((start_image_delay / 1000) - (time() - delay_start_time), 1) - self.currentSplitImage.setText(f"Delayed Before Starting:\n {delay_time_left} sec remaining") + self.current_split_image.setText( + f"Delayed Before Starting:\n {delay_time_left} sec remaining") # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore - self.startImageLabel.setText("Start image: started") + self.start_image_label.setText(f"{START_IMAGE_TEXT}: started") split() # update x, y, width, height when spinbox values are changed - def updateX(self): + def update_x(self): try: - self.selection.left = self.xSpinBox.value() - self.selection.right = self.selection.left + self.widthSpinBox.value() - self.checkLiveImage() + self.selection.left = self.x_spinbox.value() + self.selection.right = self.selection.left + self.width_spinbox.value() + self.check_live_image() except AttributeError: pass - def updateY(self): + def update_y(self): try: - self.selection.top = self.ySpinBox.value() - self.selection.bottom = self.selection.top + self.heightSpinBox.value() - self.checkLiveImage() + self.selection.top = self.y_spinbox.value() + self.selection.bottom = self.selection.top + self.height_spinbox.value() + self.check_live_image() except AttributeError: pass - def updateWidth(self): - self.selection.right = self.selection.left + self.widthSpinBox.value() - self.checkLiveImage() + def update_width(self): + self.selection.right = self.selection.left + self.width_spinbox.value() + self.check_live_image() - def updateHeight(self): - self.selection.bottom = self.selection.top + self.heightSpinBox.value() - self.checkLiveImage() + def update_height(self): + self.selection.bottom = self.selection.top + self.height_spinbox.value() + self.check_live_image() # update current split image. needed this to avoid updating it through the hotkey thread. - def updateSplitImageGUI(self, qImage: QtGui.QImage): - pix = QtGui.QPixmap(qImage) - self.currentSplitImage.setPixmap(pix) + def update_split_image_gui(self, qimage: QtGui.QImage): + pix = QtGui.QPixmap(qimage) + self.current_split_image.setPixmap(pix) - def takeScreenshot(self): - if not validateBeforeComparison(self, check_empty_directory=False): + def take_screenshot(self): + if not validate_before_comparison(self, check_empty_directory=False): return take_screenshot_filename = "001_SplitImage" # check if file exists and rename it if it does - # Below starts the FileNameNumber at #001 up to #999. After that it will go to 1000, + # Below starts the file_name_number at #001 up to #999. After that it will go to 1000, # which is a problem, but I doubt anyone will get to 1000 split images... i = 1 while os.path.exists(os.path.join(self.split_image_directory, f"{take_screenshot_filename}.png")): - FileNameNumber = (f"{i:03}") - take_screenshot_filename = f"{FileNameNumber}_SplitImage" + file_name_number = (f"{i:03}") + take_screenshot_filename = f"{file_name_number}_SplitImage" i += 1 # grab screenshot of capture region - capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) + capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # save and open image @@ -535,8 +537,8 @@ def takeScreenshot(self): # check max FPS button connects here. # TODO: Average on all images and check for transparency (cv2.COLOR_BGRA2RGB and cv2.IMREAD_UNCHANGED) - def checkFPS(self): - if not validateBeforeComparison(self): + def check_fps(self): + if not validate_before_comparison(self): return split_image_filenames = os.listdir(self.split_image_directory) @@ -546,7 +548,7 @@ def checkFPS(self): in split_image_filenames] for i, image in enumerate(split_images): if image is None: - error_messages.imageTypeError(split_image_filenames[i]) + error_messages.image_type(split_image_filenames[i]) return # grab first image in the split image folder @@ -558,32 +560,32 @@ def checkFPS(self): count = 0 t0 = time() while count < 10: - capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) + capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) - compareImage(self.comparisonmethodComboBox.currentIndex(), split_image, capture) + compare_image(self.comparison_method_combobox.currentIndex(), split_image, capture) count += 1 # calculate FPS t1 = time() fps = str(int(10 / (t1 - t0))) - self.fpsvalueLabel.setText(fps) + self.fps_value_label.setText(fps) def is_current_split_out_of_range(self): return self.split_image_number < 0 \ or self.split_image_number > len(self.split_image_filenames_including_loops) - 1 # undo split button and hotkey connect to here - def undoSplit(self): + def undo_split(self): # Can't undo until timer is started # or Undoing past the first image - if self.startautosplitterButton.text() == "Start Auto Splitter" \ - or "Delayed Split" in self.currentSplitImage.text() \ - or (not self.undosplitButton.isEnabled() and not self.is_auto_controlled) \ + if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ + or "Delayed Split" in self.current_split_image.text() \ + or (not self.undo_split_button.isEnabled() and not self.is_auto_controlled) \ or self.is_current_split_out_of_range(): return - if self.groupDummySplitsCheckBox.isChecked(): + if self.group_dummy_splits_checkbox.isChecked(): for i, group in enumerate(self.split_groups): if i > 0 and self.split_image_number in group: self.split_image_number = self.split_groups[i - 1][0] @@ -591,21 +593,19 @@ def undoSplit(self): else: self.split_image_number -= 1 - self.updateSplitImage() - - return + self.update_split_image() # skip split button and hotkey connect to here - def skipSplit(self): + def skip_split(self): # Can't skip or split until timer is started # or Splitting/skipping when there are no images left - if self.startautosplitterButton.text() == "Start Auto Splitter" \ - or "Delayed Split" in self.currentSplitImage.text() \ - or (not self.skipsplitButton.isEnabled() and not self.is_auto_controlled) \ + if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ + or "Delayed Split" in self.current_split_image.text() \ + or (not self.skip_split_button.isEnabled() and not self.is_auto_controlled) \ or self.is_current_split_out_of_range(): return - if self.groupDummySplitsCheckBox.isChecked(): + if self.group_dummy_splits_checkbox.isChecked(): for group in self.split_groups: if self.split_image_number in group: self.split_image_number = group[-1] + 1 @@ -613,59 +613,58 @@ def skipSplit(self): else: self.split_image_number += 1 - self.updateSplitImage() - - return + self.update_split_image() # def pause(self): # TODO add what to do when you hit pause hotkey, if this even needs to be done def reset(self): # When the reset button or hotkey is pressed, it will change this text, - # which will trigger in the autoSplitter function, if running, to abort and change GUI. - self.startautosplitterButton.setText("Start Auto Splitter") + # which will trigger in the auto_splitter function, if running, to abort and change GUI. + self.start_auto_splitter_button.setText(START_AUTO_SPLITTER_TEXT) # Functions for the hotkeys to return to the main thread from signals and start their corresponding functions - def startAutoSplitter(self): + def start_suto_splitter(self): # If the auto splitter is already running or the button is disabled, don't emit the signal to start it. - if self.startautosplitterButton.text() == "Running..." \ - or (not self.startautosplitterButton.isEnabled() and not self.is_auto_controlled): + if self.start_auto_splitter_button.text() == "Running..." \ + or (not self.start_auto_splitter_button.isEnabled() and not self.is_auto_controlled): return - if self.startImageLabel.text() == "Start image: ready" or self.startImageLabel.text() == "Start image: paused": - self.startImageLabel.setText("Start image: not ready") + if self.start_image_label.text() == f"{START_IMAGE_TEXT}: ready" or self.start_image_label.text( + ) == f"{START_IMAGE_TEXT}: paused": + self.start_image_label.setText(f"{START_IMAGE_TEXT}: not ready") - self.startAutoSplitterSignal.emit() + self.start_auto_splitter_signal.emit() - def startReset(self): - self.resetSignal.emit() + def start_reset(self): + self.reset_signal.emit() - def startSkipSplit(self): - self.skipSplitSignal.emit() + def start_skip_split(self): + self.skip_split_signal.emit() - def startUndoSplit(self): - self.undoSplitSignal.emit() + def start_undo_split(self): + self.undo_split_signal.emit() - def startPause(self): - self.pauseSignal.emit() + def start_pause(self): + self.pause_signal.emit() - def checkForReset(self): - if self.startautosplitterButton.text() == "Start Auto Splitter": - if self.autostartonresetCheckBox.isChecked(): - self.startAutoSplitterSignal.emit() + def check_for_reset(self): + if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT: + if self.auto_start_on_reset_checkbox.isChecked(): + self.start_auto_splitter_signal.emit() else: - self.guiChangesOnReset() + self.gui_changes_on_reset() return True return False - def autoSplitter(self): - if not validateBeforeComparison(self): - self.guiChangesOnReset() + def auto_splitter(self): + if not validate_before_comparison(self): + self.gui_changes_on_reset() return - if not self.splitLineEdit.text() and not self.is_auto_controlled: - self.guiChangesOnReset() - error_messages.splitHotkeyError() + if not self.split_input.text() and not self.is_auto_controlled: + self.gui_changes_on_reset() + error_messages.split_hotkey() return # get split image filenames @@ -674,10 +673,10 @@ def autoSplitter(self): split_parser.validate_images_before_parsing(self) # find reset image then remove it from the list - self.findResetImage() + self.find_reset_image() # Find start_auto_splitter_image and then remove it from the list - split_parser.removeStartAutoSplitterImage(self.split_image_filenames) + split_parser.remove_start_auto_splitter_image(self.split_image_filenames) # region TODO I feel this entire region could be simplified @@ -716,7 +715,7 @@ def autoSplitter(self): # construct groups of splits if needed self.split_groups: list[list[int]] = [] - if self.groupDummySplitsCheckBox.isChecked(): + if self.group_dummy_splits_checkbox.isChecked(): current_group: list[int] = [] self.split_groups.append(current_group) @@ -730,7 +729,7 @@ def autoSplitter(self): # endregion - self.guiChangesOnStart() + self.gui_changes_on_start() # Initialize a few attributes self.split_image_number = 0 @@ -743,7 +742,7 @@ def autoSplitter(self): for image in self.split_image_filenames_including_loops] self.run_start_time = time() - windowText = win32gui.GetWindowText(self.hwnd) + window_text = win32gui.GetWindowText(self.hwnd) # First while loop: stays in this loop until all of the split images have been split while self.split_image_number < number_of_split_images: @@ -755,25 +754,25 @@ def autoSplitter(self): QApplication.processEvents() continue - self.updateSplitImage() + self.update_split_image() # second while loop: stays in this loop until similarity threshold is met # skip loop if we just finished waiting for the split delay and need to press the split key! start = time() while True: # reset if the set screen region window was closed - if not windowText: + if not window_text: self.reset() - if self.checkForReset(): + if self.check_for_reset(): return # calculate similarity for reset image - capture = self.getCaptureForComparison() + capture = self.get_capture_for_comparison() - if self.shouldCheckResetImage(): - reset_similarity = compareImage( - self.comparisonmethodComboBox.currentIndex(), + if self.should_check_reset_image(): + reset_similarity = compare_image( + self.comparison_method_combobox.currentIndex(), self.reset_image, capture, self.reset_mask) @@ -781,46 +780,46 @@ def autoSplitter(self): send_command(self, "reset") self.reset() - if self.checkForReset(): + if self.check_for_reset(): return # TODO: Check is this actually still needed? # get capture again if current and reset image have different mask flags - if self.imageHasTransparency != (self.reset_mask is not None): - capture = self.getCaptureForComparison() + if self.image_has_transparency != (self.reset_mask is not None): + capture = self.get_capture_for_comparison() # calculate similarity for split image - self.similarity = compareImage( - self.comparisonmethodComboBox.currentIndex(), + self.similarity = compare_image( + self.comparison_method_combobox.currentIndex(), self.split_image, capture, self.image_mask) # show live similarity if the checkbox is checked - if self.showlivesimilarityCheckBox.isChecked(): - self.livesimilarityLabel.setText(str(self.similarity)[:4]) + if self.show_live_similarity_checkbox.isChecked(): + self.live_similarity_label.setText(str(self.similarity)[:4]) else: - self.livesimilarityLabel.setText(" ") + self.live_similarity_label.setText(" ") # if the similarity becomes higher than highest similarity, set it as such. if self.similarity > self.highest_similarity: self.highest_similarity = self.similarity # show live highest similarity if the checkbox is checked - if self.showhighestsimilarityCheckBox.isChecked(): - self.highestsimilarityLabel.setText(str(self.highest_similarity)[:4]) + if self.show_highest_similarity_checkbox.isChecked(): + self.highest_similarity_label.setText(str(self.highest_similarity)[:4]) else: - self.highestsimilarityLabel.setText(" ") + self.highest_similarity_label.setText(" ") if not self.is_auto_controlled: # if its the last split image or can't skip due to grouped dummy splits, disable skip split button is_last = self.split_image_number == number_of_split_images - 1 \ - or (self.groupDummySplitsCheckBox.isChecked() + or (self.group_dummy_splits_checkbox.isChecked() and dummy_splits_array[self.split_image_number:].count(False) <= 1) - self.skipsplitButton.setEnabled(not is_last) + self.skip_split_button.setEnabled(not is_last) # if its the first split image, disable the undo split button - self.undosplitButton.setEnabled(self.split_image_number != 0) + self.undo_split_button.setEnabled(self.split_image_number != 0) # if the b flag is set, let similarity go above threshold first, # then split on similarity below threshold. @@ -838,7 +837,7 @@ def autoSplitter(self): break # limit the number of time the comparison runs to reduce cpu usage - frame_interval = 1 / self.fpslimitSpinBox.value() + frame_interval = 1 / self.fps_limit_spinbox.value() # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(frame_interval - (time() - start) % frame_interval) # type: ignore QApplication.processEvents() @@ -853,28 +852,28 @@ def autoSplitter(self): if self.split_delay > 0 and not self.waiting_for_split_delay: split_time = int(round(time() * 1000) + self.split_delay) self.waiting_for_split_delay = True - self.undosplitButton.setEnabled(False) - self.skipsplitButton.setEnabled(False) - self.currentsplitimagefileLabel.setText(" ") + self.undo_split_button.setEnabled(False) + self.skip_split_button.setEnabled(False) + self.current_split_image_file_label.setText(" ") # check for reset while delayed and display a counter of the remaining split delay time delay_start_time = time() split_delay = self.split_delay / 1000 while time() - delay_start_time < split_delay: delay_time_left = round(split_delay - (time() - delay_start_time), 1) - self.currentSplitImage.setText(f"Delayed Split: {delay_time_left} sec remaining") + self.current_split_image.setText(f"Delayed Split: {delay_time_left} sec remaining") # check for reset - if not windowText: + if not window_text: self.reset() - if self.checkForReset(): + if self.check_for_reset(): return # calculate similarity for reset image - if self.shouldCheckResetImage(): - capture = self.getCaptureForComparison() + if self.should_check_reset_image(): + capture = self.get_capture_for_comparison() - reset_similarity = compareImage( - self.comparisonmethodComboBox.currentIndex(), + reset_similarity = compare_image( + self.comparison_method_combobox.currentIndex(), self.reset_image, capture, self.reset_mask) @@ -892,7 +891,7 @@ def autoSplitter(self): # if loop check box is checked and its the last split, go to first split. # else go to the next split image. - if self.loopCheckBox.isChecked() and self.split_image_number == number_of_split_images - 1: + if self.loop_checkbox.isChecked() and self.split_image_number == number_of_split_images - 1: self.split_image_number = 0 else: self.split_image_number += 1 @@ -907,28 +906,28 @@ def autoSplitter(self): if not self.is_auto_controlled: # if its the last split image and last loop number, disable skip split button is_last = self.split_image_number == number_of_split_images - 1 \ - or (self.groupDummySplitsCheckBox.isChecked() + or (self.group_dummy_splits_checkbox.isChecked() and dummy_splits_array[self.split_image_number:].count(False) <= 1) - self.skipsplitButton.setEnabled(not is_last) + self.skip_split_button.setEnabled(not is_last) # if its the first split image, disable the undo split button - self.undosplitButton.setEnabled(self.split_image_number != 0) + self.undo_split_button.setEnabled(self.split_image_number != 0) QApplication.processEvents() # A pause loop to check if the user presses skip split, undo split, or reset here. # Also updates the current split image text, counting down the time until the next split image if self.pause > 0: - self.currentsplitimagefileLabel.setText(" ") - self.imageloopLabel.setText("Image Loop: -") + self.current_split_image_file_label.setText(" ") + self.image_loop_label.setText("Image Loop: -") pause_start_time = time() while time() - pause_start_time < self.pause: pause_time_left = round(self.pause - (time() - pause_start_time), 1) - self.currentSplitImage.setText(f"None (Paused). {pause_time_left} sec remaining") + self.current_split_image.setText(f"None (Paused). {pause_time_left} sec remaining") # check for reset - if not windowText: + if not window_text: self.reset() - if self.checkForReset(): + if self.check_for_reset(): return # check for skip/undo split: @@ -936,11 +935,11 @@ def autoSplitter(self): break # calculate similarity for reset image - if self.shouldCheckResetImage(): - capture = self.getCaptureForComparison() + if self.should_check_reset_image(): + capture = self.get_capture_for_comparison() - reset_similarity = compareImage( - self.comparisonmethodComboBox.currentIndex(), + reset_similarity = compare_image( + self.comparison_method_combobox.currentIndex(), self.reset_image, capture, self.reset_mask) @@ -952,65 +951,65 @@ def autoSplitter(self): QtTest.QTest.qWait(1) # type: ignore # loop breaks to here when the last image splits - self.guiChangesOnReset() + self.gui_changes_on_reset() - def guiChangesOnStart(self): - self.timerStartImage.stop() - self.startautosplitterButton.setText("Running...") - self.browseButton.setEnabled(False) - self.groupDummySplitsCheckBox.setEnabled(False) - self.startImageReloadButton.setEnabled(False) + def gui_changes_on_start(self): + self.timer_start_image.stop() + self.start_auto_splitter_button.setText("Running...") + self.browse_button.setEnabled(False) + self.group_dummy_splits_checkbox.setEnabled(False) + self.start_image_reload_button.setEnabled(False) if not self.is_auto_controlled: - self.startautosplitterButton.setEnabled(False) - self.resetButton.setEnabled(True) - self.undosplitButton.setEnabled(True) - self.skipsplitButton.setEnabled(True) - self.setsplithotkeyButton.setEnabled(False) - self.setresethotkeyButton.setEnabled(False) - self.setskipsplithotkeyButton.setEnabled(False) - self.setundosplithotkeyButton.setEnabled(False) - self.setpausehotkeyButton.setEnabled(False) + self.start_auto_splitter_button.setEnabled(False) + self.reset_button.setEnabled(True) + self.undo_split_button.setEnabled(True) + self.skip_split_button.setEnabled(True) + self.set_split_hotkey_button.setEnabled(False) + self.set_reset_hotkey_button.setEnabled(False) + self.set_skip_split_hotkey_button.setEnabled(False) + self.set_undo_split_hotkey_button.setEnabled(False) + self.set_pause_hotkey_button.setEnabled(False) QApplication.processEvents() - def guiChangesOnReset(self): - self.startautosplitterButton.setText("Start Auto Splitter") - self.imageloopLabel.setText("Image Loop: -") - self.currentSplitImage.setText(" ") - self.currentsplitimagefileLabel.setText(" ") - self.livesimilarityLabel.setText(" ") - self.highestsimilarityLabel.setText(" ") - self.currentsimilaritythresholdnumberLabel.setText(" ") - self.browseButton.setEnabled(True) - self.groupDummySplitsCheckBox.setEnabled(True) - self.startImageReloadButton.setEnabled(True) + def gui_changes_on_reset(self): + self.start_auto_splitter_button.setText(START_AUTO_SPLITTER_TEXT) + self.image_loop_label.setText("Image Loop: -") + self.current_split_image.setText(" ") + self.current_split_image_file_label.setText(" ") + self.live_similarity_label.setText(" ") + self.highest_similarity_label.setText(" ") + self.current_similarity_threshold_number_label.setText(" ") + self.browse_button.setEnabled(True) + self.group_dummy_splits_checkbox.setEnabled(True) + self.start_image_reload_button.setEnabled(True) if not self.is_auto_controlled: - self.startautosplitterButton.setEnabled(True) - self.resetButton.setEnabled(False) - self.undosplitButton.setEnabled(False) - self.skipsplitButton.setEnabled(False) - self.setsplithotkeyButton.setEnabled(True) - self.setresethotkeyButton.setEnabled(True) - self.setskipsplithotkeyButton.setEnabled(True) - self.setundosplithotkeyButton.setEnabled(True) - self.setpausehotkeyButton.setEnabled(True) + self.start_auto_splitter_button.setEnabled(True) + self.reset_button.setEnabled(False) + self.undo_split_button.setEnabled(False) + self.skip_split_button.setEnabled(False) + self.set_split_hotkey_button.setEnabled(True) + self.set_reset_hotkey_button.setEnabled(True) + self.set_skip_split_hotkey_button.setEnabled(True) + self.set_undo_split_hotkey_button.setEnabled(True) + self.set_pause_hotkey_button.setEnabled(True) QApplication.processEvents() - self.loadStartImage(False, False) + self.load_start_image(False, False) - def getCaptureForComparison(self): + def get_capture_for_comparison(self): # grab screenshot of capture region - capture = capture_region(self.hwnd, self.selection, self.forcePrintWindowCheckBox.isChecked()) + capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # convert to BGR return cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) - def shouldCheckResetImage(self): + def should_check_reset_image(self): return self.reset_image is not None and time() - self.run_start_time > self.reset_image_pause_time - def findResetImage(self): + def find_reset_image(self): self.reset_image = None self.reset_mask = None @@ -1030,20 +1029,20 @@ def findResetImage(self): # Override values if they have been specified on the file pause_from_filename = split_parser.pause_from_filename(reset_image_file) - self.reset_image_pause_time = self.pauseDoubleSpinBox.value() \ + self.reset_image_pause_time = self.pause_spinbox.value() \ if pause_from_filename is None \ else pause_from_filename threshold_from_filename = split_parser.threshold_from_filename(reset_image_file) - self.reset_image_threshold = self.similaritythresholdDoubleSpinBox.value() \ + self.reset_image_threshold = self.similarity_threshold_spinbox.value() \ if threshold_from_filename is None \ else threshold_from_filename self.reset_image = cv2.imread(path, cv2.IMREAD_UNCHANGED) if self.reset_image is None: - error_messages.imageTypeError(path) + error_messages.image_type(path) return # if image has transparency, create a mask - if checkIfImageHasTransparency(self.reset_image): + if check_if_image_has_transparency(self.reset_image): self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Create mask based on resized, nearest neighbor interpolated split image lower = np.array([0, 0, 0, 1], dtype="uint8") @@ -1058,7 +1057,7 @@ def findResetImage(self): self.reset_image = cv2.imread(path, cv2.IMREAD_COLOR) self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - def updateSplitImage(self, custom_image_file: str = "", from_start_image: bool = False): + def update_split_image(self, custom_image_file: str = "", from_start_image: bool = False): # Splitting/skipping when there are no images left or Undoing past the first image # Start image is expected to be out of range (index 0 of 0-length array) if "START_AUTO_SPLITTER" not in custom_image_file.upper() and self.is_current_split_out_of_range(): @@ -1074,11 +1073,11 @@ def updateSplitImage(self, custom_image_file: str = "", from_start_image: bool = self.split_image = cv2.imread(self.split_image_path, cv2.IMREAD_UNCHANGED) if self.split_image is None: - error_messages.imageTypeError(self.split_image_path) + error_messages.image_type(self.split_image_path) return - self.imageHasTransparency = checkIfImageHasTransparency(self.split_image) + self.image_has_transparency = check_if_image_has_transparency(self.split_image) # if image has transparency, create a mask - if self.imageHasTransparency: + if self.image_has_transparency: split_image_display = copy(self.split_image) # Transform transparency into UI's gray BG color transparent_mask = split_image_display[:, :, 3] == 0 @@ -1103,24 +1102,24 @@ def updateSplitImage(self, custom_image_file: str = "", from_start_image: bool = split_image_display = cv2.resize(split_image_display, DISPLAY_RESIZE) # Set current split image in UI - qImage = QtGui.QImage(cast(bytes, split_image_display), + qimage = QtGui.QImage(cast(bytes, split_image_display), split_image_display.shape[1], split_image_display.shape[0], split_image_display.shape[1] * 3, QtGui.QImage.Format.Format_RGB888) - self.updateCurrentSplitImage.emit(qImage) - self.currentsplitimagefileLabel.setText(split_image_file) + self.update_current_split_image.emit(qimage) + self.current_split_image_file_label.setText(split_image_file) # Override values if they have been specified on the file pause_from_filename = split_parser.pause_from_filename(split_image_file) - self.pause = self.pauseDoubleSpinBox.value() \ + self.pause = self.pause_spinbox.value() \ if pause_from_filename is None \ else pause_from_filename threshold_from_filename = split_parser.threshold_from_filename(split_image_file) - self.similarity_threshold = self.similaritythresholdDoubleSpinBox.value() \ + self.similarity_threshold = self.similarity_threshold_spinbox.value() \ if threshold_from_filename is None \ else threshold_from_filename - self.currentsimilaritythresholdnumberLabel.setText(f"{self.similarity_threshold:.2f}") + self.current_similarity_threshold_number_label.setText(f"{self.similarity_threshold:.2f}") # Get delay for split, if any self.split_delay = split_parser.delay_from_filename(split_image_file) @@ -1128,9 +1127,9 @@ def updateSplitImage(self, custom_image_file: str = "", from_start_image: bool = # Set Image Loop # if not from_start_image: loop_tuple = self.split_image_filenames_and_loop_number[self.split_image_number] - self.imageloopLabel.setText(f"Image Loop: {loop_tuple[1]}/{loop_tuple[2]}") + self.image_loop_label.setText(f"Image Loop: {loop_tuple[1]}/{loop_tuple[2]}") else: - self.imageloopLabel.setText("Image Loop: 1/1") + self.image_loop_label.setText("Image Loop: 1/1") # need to set split below threshold to false each time an image updates. self.split_below_threshold = False @@ -1143,7 +1142,7 @@ def closeEvent(self, a0: Optional[QtGui.QCloseEvent] = None): Exit safely when closing the window """ - def exitProgram(): + def exit_program(): if a0 is not None: a0.accept() if self.is_auto_controlled: @@ -1157,9 +1156,9 @@ def exitProgram(): # This also more gracefully exits LiveSplit # Users can still manually save their settings if a0 is None: - exitProgram() + exit_program() - if settings.haveSettingsChanged(self): + if settings.have_settings_changed(self): # Give a different warning if there was never a settings file that was loaded successfully, # and "save as" instead of "save". settings_file_name = "Untitled" \ @@ -1175,14 +1174,14 @@ def exitProgram(): if warning is QMessageBox.StandardButton.Yes: # TODO: Don't close if user cancelled the save - self.saveSettingsAs() - exitProgram() + self.save_settings_as() + exit_program() if warning is QMessageBox.StandardButton.No: - exitProgram() + exit_program() if warning is QMessageBox.StandardButton.Cancel: a0.ignore() else: - exitProgram() + exit_program() def main(): @@ -1203,7 +1202,7 @@ def main(): message = f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}" # Print error to console if not running in executable if FROZEN: - error_messages.exceptionTraceback(message, exception) + error_messages.exception_traceback(message, exception) else: print(message) traceback.print_exception(type(exception), exception, exception.__traceback__) diff --git a/src/capture_windows.py b/src/capture_windows.py index 2f6fe1aa..605f964f 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -30,7 +30,7 @@ class Rect(ctypes.wintypes.RECT): bottom: int = -1 # type: ignore -def capture_region(hwnd: int, selection: Rect, forcePrintWindow: bool): +def capture_region(hwnd: int, selection: Rect, force_print_window: bool): """ Captures an image of the region for a window matching the given parameters of the bounding box @@ -42,7 +42,7 @@ def capture_region(hwnd: int, selection: Rect, forcePrintWindow: bool): # Windows 11 has some jank, and we're not ready to fully investigate it # for now let's ensure it works at the cost of performance - is_accelerated_window = forcePrintWindow or is_windows_11 or accelerated_windows.get(hwnd) + is_accelerated_window = force_print_window or is_windows_11 or accelerated_windows.get(hwnd) # The window type is not yet known, let's find out! if is_accelerated_window is None: @@ -61,19 +61,19 @@ def __get_image(hwnd: int, selection: Rect, print_window: bool = False): height: int = selection.bottom - selection.top # If the window closes while it's being manipulated, it could cause a crash try: - windowDC: int = win32gui.GetWindowDC(hwnd) + window_dc: int = win32gui.GetWindowDC(hwnd) # https://github.com/kaluluosi/pywin32-stubs/issues/6 - dcObject: PyCDC = win32ui.CreateDCFromHandle(windowDC) # type: ignore + dc_object: PyCDC = win32ui.CreateDCFromHandle(window_dc) # type: ignore # Causes a 10-15x performance drop. But allows recording hardware accelerated windows if print_window: - ctypes.windll.user32.PrintWindow(hwnd, dcObject.GetSafeHdc(), PW_RENDERFULLCONTENT) + ctypes.windll.user32.PrintWindow(hwnd, dc_object.GetSafeHdc(), PW_RENDERFULLCONTENT) - compatibleDC = cast(PyCDC, dcObject.CreateCompatibleDC()) + compatible_dc = cast(PyCDC, dc_object.CreateCompatibleDC()) bitmap: PyCBitmap = win32ui.CreateBitmap() - bitmap.CreateCompatibleBitmap(dcObject, width, height) - compatibleDC.SelectObject(bitmap) - compatibleDC.BitBlt((0, 0), (width, height), dcObject, (selection.left, selection.top), win32con.SRCCOPY) + bitmap.CreateCompatibleBitmap(dc_object, width, height) + compatible_dc.SelectObject(bitmap) + compatible_dc.BitBlt((0, 0), (width, height), dc_object, (selection.left, selection.top), win32con.SRCCOPY) # https://github.com/kaluluosi/pywin32-stubs/issues/5 # pylint: disable=no-member except (win32ui.error, pywintypes.error): # type: ignore @@ -83,9 +83,9 @@ def __get_image(hwnd: int, selection: Rect, print_window: bool = False): image.shape = (height, width, 4) try: - dcObject.DeleteDC() - compatibleDC.DeleteDC() - win32gui.ReleaseDC(hwnd, windowDC) + dc_object.DeleteDC() + compatible_dc.DeleteDC() + win32gui.ReleaseDC(hwnd, window_dc) win32gui.DeleteObject(bitmap.GetHandle()) # https://github.com/kaluluosi/pywin32-stubs/issues/5 except win32ui.error: # type: ignore diff --git a/src/compare.py b/src/compare.py index 7faae841..cb422108 100644 --- a/src/compare.py +++ b/src/compare.py @@ -8,23 +8,23 @@ MAXRANGE = MAXBYTE + 1 channels = [0, 1, 2] -histSize = [8, 8, 8] +histogram_size = [8, 8, 8] ranges = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] -def compareImage( - comparisonMethod: int, +def compare_image( + comparison_method: int, image: Optional[cv2.ndarray], capture: Optional[cv2.ndarray], mask: Optional[cv2.ndarray] = None ): if image is None or capture is None: return 0.0 - if comparisonMethod == 0: + if comparison_method == 0: return compare_l2_norm(image, capture, mask) - if comparisonMethod == 1: + if comparison_method == 1: return compare_histograms(image, capture, mask) - if comparisonMethod == 2: + if comparison_method == 2: return compare_phash(image, capture, mask) return 0.0 @@ -40,8 +40,8 @@ def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional @return: The similarity between the histograms as a number 0 to 1. """ - source_hist = cv2.calcHist([source], channels, mask, histSize, ranges) - capture_hist = cv2.calcHist([capture], channels, mask, histSize, ranges) + source_hist = cv2.calcHist([source], channels, mask, histogram_size, ranges) + capture_hist = cv2.calcHist([capture], channels, mask, histogram_size, ranges) cv2.normalize(source_hist, source_hist) cv2.normalize(capture_hist, capture_hist) @@ -122,7 +122,7 @@ def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2. return 1 - (hash_diff / 64.0) -def checkIfImageHasTransparency(image: cv2.ndarray) -> bool: +def check_if_image_has_transparency(image: cv2.ndarray) -> bool: # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) if image.shape[2] != 4: return False diff --git a/src/error_messages.py b/src/error_messages.py index bad19bd9..c8a674e2 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -3,107 +3,107 @@ from PyQt6 import QtCore, QtWidgets -def setTextMessage(message: str, details: str = ""): - messageBox = QtWidgets.QMessageBox() - messageBox.setWindowTitle("Error") - messageBox.setTextFormat(QtCore.Qt.TextFormat.RichText) - messageBox.setText(message) +def set_text_message(message: str, details: str = ""): + message_box = QtWidgets.QMessageBox() + message_box.setWindowTitle("Error") + message_box.setTextFormat(QtCore.Qt.TextFormat.RichText) + message_box.setText(message) if details: - messageBox.setDetailedText(details) - for button in messageBox.buttons(): - if messageBox.buttonRole(button) == QtWidgets.QMessageBox.ButtonRole.ActionRole: + message_box.setDetailedText(details) + for button in message_box.buttons(): + if message_box.buttonRole(button) == QtWidgets.QMessageBox.ButtonRole.ActionRole: button.click() break - messageBox.exec() + message_box.exec() -def splitImageDirectoryError(): - setTextMessage("No split image folder is selected.") +def split_image_directory(): + set_text_message("No split image folder is selected.") -def splitImageDirectoryNotFoundError(): - setTextMessage("The Split Image Folder does not exist.") +def split_image_directory_not_found(): + set_text_message("The Split Image Folder does not exist.") -def splitImageDirectoryEmpty(): - setTextMessage("The Split Image Folder is empty.") +def split_image_directory_empty(): + set_text_message("The Split Image Folder is empty.") -def imageTypeError(image: str): - setTextMessage(f'"{image}" is not a valid image file, does not exist, ' - "or the full image file path contains a special character.") +def image_type(image: str): + set_text_message(f'"{image}" is not a valid image file, does not exist, ' + "or the full image file path contains a special character.") -def regionError(): - setTextMessage("No region is selected or the Capture Region window is not open. " - "Select a region or load settings while the Capture Region window is open.") +def region(): + set_text_message("No region is selected or the Capture Region window is not open. " + "Select a region or load settings while the Capture Region window is open.") -def splitHotkeyError(): - setTextMessage("No split hotkey has been set.") +def split_hotkey(): + set_text_message("No split hotkey has been set.") -def pauseHotkeyError(): - setTextMessage("Your split image folder contains an image filename with a pause flag {p}, " - "but no pause hotkey is set.") +def pause_hotkey(): + set_text_message("Your split image folder contains an image filename with a pause flag {p}, " + "but no pause hotkey is set.") -def alignRegionImageTypeError(): - setTextMessage("File not a valid image file") +def align_region_image_type(): + set_text_message("File not a valid image file") -def alignmentNotMatchedError(): - setTextMessage("No area in capture region matched reference image. Alignment failed.") +def alignment_not_matched(): + set_text_message("No area in capture region matched reference image. Alignment failed.") -def noKeywordImageError(keyword: str): - setTextMessage(f'Your split image folder does not contain an image with the keyword "{keyword}".') +def no_keyword_image(keyword: str): + set_text_message(f'Your split image folder does not contain an image with the keyword "{keyword}".') -def multipleKeywordImagesError(keyword: str): - setTextMessage(f'Only one image with the keyword "{keyword}" is allowed.') +def multiple_keyword_images(keyword: str): + set_text_message(f'Only one image with the keyword "{keyword}" is allowed.') -def resetHotkeyError(): - setTextMessage("Your split image folder contains a reset image, but no reset hotkey is set.") +def reset_hotkey(): + set_text_message("Your split image folder contains a reset image, but no reset hotkey is set.") -def dummySplitsError(): - setTextMessage("Group dummy splits when undoing/skipping cannot be checked " - "if any split image has a loop parameter greater than 1") +def dummy_splits(): + set_text_message("Group dummy splits when undoing/skipping cannot be checked " + "if any split image has a loop parameter greater than 1") -def oldVersionSettingsFileError(): - setTextMessage("Old version settings file detected. This version allows settings files from v1.3 and above.") +def old_version_settings_file(): + set_text_message("Old version settings file detected. This version allows settings files from v1.3 and above.") -def invalidSettingsError(): - setTextMessage("Invalid settings file.") +def invalid_settings(): + set_text_message("Invalid settings file.") -def noSettingsFileOnOpenError(): - setTextMessage("No settings file found. One can be loaded on open if placed in the same folder as AutoSplit.exe") +def no_settings_file_on_open(): + set_text_message("No settings file found. One can be loaded on open if placed in the same folder as AutoSplit.exe") -def tooManySettingsFilesOnOpenError(): - setTextMessage("Too many settings files found. " - "Only one can be loaded on open if placed in the same folder as AutoSplit.exe") +def too_many_settings_files_on_open(): + set_text_message("Too many settings files found. " + "Only one can be loaded on open if placed in the same folder as AutoSplit.exe") -def checkForUpdatesError(): - setTextMessage("An error occurred while attempting to check for updates. Please check your connection.") +def check_for_updates(): + set_text_message("An error occurred while attempting to check for updates. Please check your connection.") -def loadStartImageError(): - setTextMessage("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. " - "Please set these hotkeys, and then click the Reload Start Image button.") +def load_start_image(): + set_text_message("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. " + "Please set these hotkeys, and then click the Reload Start Image button.") -def stdinLostError(): - setTextMessage("stdin not supported or lost, external control like LiveSplit integration will not work.") +def stdin_lost(): + set_text_message("stdin not supported or lost, external control like LiveSplit integration will not work.") -def exceptionTraceback(message: str, exception: BaseException): - setTextMessage( +def exception_traceback(message: str, exception: BaseException): + set_text_message( message, "\n".join(traceback.format_exception(None, exception, exception.__traceback__))) diff --git a/src/gen/about.pyi b/src/gen/about.pyi index c686e0ea..703befdf 100644 --- a/src/gen/about.pyi +++ b/src/gen/about.pyi @@ -1,6 +1,6 @@ from PyQt6.QtWidgets import QWidget -class Ui_aboutAutoSplitWidget(): - def setupUi(self, aboutAutoSplitWidget: QWidget) -> None: +class Ui_AboutAutoSplitWidget(): + def setupUi(self, AboutAutoSplitWidget: QWidget) -> None: ... diff --git a/src/gen/design.pyi b/src/gen/design.pyi index a7a38ee1..f927169b 100644 --- a/src/gen/design.pyi +++ b/src/gen/design.pyi @@ -3,7 +3,7 @@ from PyQt6.QtWidgets import QMainWindow class Ui_MainWindow(): - actionCheck_for_Updates_on_Open: QAction + action_check_for_updates_on_open: QAction def setupUi(self, MainWindow: QMainWindow) -> None: ... diff --git a/src/hotkeys.py b/src/hotkeys.py index b586272b..6ab0362d 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -8,34 +8,37 @@ from keyboard._keyboard_event import KeyboardEvent, KEY_DOWN import keyboard # https://github.com/boppreh/keyboard/issues/505 import pyautogui # https://github.com/asweigart/pyautogui/issues/645 -# While not usually recommended, we don't manipulate the mouse, and we don't want the extra delay +# While not usually recommended, we don'thread manipulate the mouse, and we don'thread want the extra delay pyautogui.FAILSAFE = False +SET_HOTKEY_TEXT = "Set Hotkey" +PRESS_A_KEY_TEXT = "Press a key..." -# do all of these after you click "set hotkey" but before you type the hotkey. -def beforeSettingHotkey(autosplit: AutoSplit): - autosplit.startautosplitterButton.setEnabled(False) - autosplit.setsplithotkeyButton.setEnabled(False) - autosplit.setresethotkeyButton.setEnabled(False) - autosplit.setskipsplithotkeyButton.setEnabled(False) - autosplit.setundosplithotkeyButton.setEnabled(False) - autosplit.setpausehotkeyButton.setEnabled(False) + +# do all of these after you click "Set Hotkey" but before you type the hotkey. +def before_setting_hotkey(autosplit: AutoSplit): + autosplit.start_auto_splitter_button.setEnabled(False) + autosplit.set_split_hotkey_button.setEnabled(False) + autosplit.set_reset_hotkey_button.setEnabled(False) + autosplit.set_skip_split_hotkey_button.setEnabled(False) + autosplit.set_undo_split_hotkey_button.setEnabled(False) + autosplit.set_pause_hotkey_button.setEnabled(False) # do all of these things after you set a hotkey. a signal connects to this because # changing GUI stuff in the hotkey thread was causing problems -def afterSettingHotkey(autosplit: AutoSplit): - autosplit.setsplithotkeyButton.setText("Set Hotkey") - autosplit.setresethotkeyButton.setText("Set Hotkey") - autosplit.setskipsplithotkeyButton.setText("Set Hotkey") - autosplit.setundosplithotkeyButton.setText("Set Hotkey") - autosplit.setpausehotkeyButton.setText("Set Hotkey") - autosplit.startautosplitterButton.setEnabled(True) - autosplit.setsplithotkeyButton.setEnabled(True) - autosplit.setresethotkeyButton.setEnabled(True) - autosplit.setskipsplithotkeyButton.setEnabled(True) - autosplit.setundosplithotkeyButton.setEnabled(True) - autosplit.setpausehotkeyButton.setEnabled(True) +def after_setting_hotkey(autosplit: AutoSplit): + autosplit.set_split_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.set_reset_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.set_skip_split_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.set_undo_split_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.set_pause_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.start_auto_splitter_button.setEnabled(True) + autosplit.set_split_hotkey_button.setEnabled(True) + autosplit.set_reset_hotkey_button.setEnabled(True) + autosplit.set_skip_split_hotkey_button.setEnabled(True) + autosplit.set_undo_split_hotkey_button.setEnabled(True) + autosplit.set_pause_hotkey_button.setEnabled(True) def is_digit(key: Optional[str]): @@ -51,11 +54,11 @@ def send_command(autosplit: AutoSplit, command: str): if autosplit.is_auto_controlled: print(command, flush=True) elif command in {"split", "start"}: - _send_hotkey(autosplit.splitLineEdit.text()) + _send_hotkey(autosplit.split_input.text()) elif command == "pause": - _send_hotkey(autosplit.pausehotkeyLineEdit.text()) + _send_hotkey(autosplit.pause_hotkey_input.text()) elif command == "reset": - _send_hotkey(autosplit.resetLineEdit.text()) + _send_hotkey(autosplit.reset_input.text()) else: raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") @@ -80,7 +83,7 @@ def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # Prevent "(keypad)delete", "(keypad)./decimal" and "del" from triggering each other # as well as "." and "(keypad)./decimal" if keyboard_event.scan_code in {83, 52}: - # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) + # TODO: "del" won'thread work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) return expected_key == keyboard_event.name # Prevent "action keys" from triggering "keypad keys" if keyboard_event.name and is_digit(keyboard_event.name[-1]): @@ -101,9 +104,9 @@ def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # We're doing the check here instead of saving the key code because it'll # cause issues with save files and the non-keypad shared keys are localized -# while the keypad ones aren't. +# while the keypad ones aren'thread. -# Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". +# Since we reuse the key string we set to send to LiveSplit, we can'thread use fake names like "num home". # We're also trying to achieve the same hotkey behaviour as LiveSplit has. def _hotkey_action(keyboard_event: KeyboardEvent, key_name: str, action: Callable[[], None]): if keyboard_event.event_type == KEY_DOWN and __validate_keypad(key_name, keyboard_event): @@ -117,21 +120,21 @@ def __get_key_name(keyboard_event: KeyboardEvent): def __is_key_already_set(autosplit: AutoSplit, key_name: str): - return key_name in (autosplit.splitLineEdit.text(), - autosplit.resetLineEdit.text(), - autosplit.skipsplitLineEdit.text(), - autosplit.undosplitLineEdit.text(), - autosplit.pausehotkeyLineEdit.text()) + return key_name in (autosplit.split_input.text(), + autosplit.reset_input.text(), + autosplit.skip_split_input.text(), + autosplit.undo_split_input.text(), + autosplit.pause_hotkey_input.text()) # --------------------HOTKEYS-------------------------- # TODO: Refactor to de-duplicate all this code, including settings_file.py # Going to comment on one func, and others will be similar. -def setSplitHotkey(autosplit: AutoSplit): - autosplit.setsplithotkeyButton.setText("Press a key...") +def set_split_hotkey(autosplit: AutoSplit): + autosplit.set_split_hotkey_button.setText(PRESS_A_KEY_TEXT) # disable some buttons - beforeSettingHotkey(autosplit) + before_setting_hotkey(autosplit) # new thread points to callback. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey @@ -143,7 +146,7 @@ def callback(hotkey: Callable[[], None]): # the lineEdit area was empty (no hotkey set), then you # set one, reload the setting once back to blank works, # but if you click reload settings again, it errors - # we can just have it pass, but don't want to throw in + # we can just have it pass, but don'thread want to throw in # generic exception here in case another one of these # pops up somewhere. except (AttributeError, KeyError): @@ -159,17 +162,17 @@ def callback(hotkey: Callable[[], None]): # keyboard module allows you to hit multiple keys for a hotkey. they are joined # together by +. If user hits two keys at the same time, make no changes to the - # hotkey. A try and except is needed if a hotkey hasn't been set yet. I'm not + # hotkey. A try and except is needed if a hotkey hasn'thread been set yet. I'm not # allowing for these multiple-key hotkeys because it can cause crashes, and # not many people are going to really use or need this. if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return except AttributeError: - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return - # add the key as the hotkey, set the text into the LineEdit, set it as old_xxx_key, + # add the key as the hotkey, set the text into the _input, set it as old_xxx_key, # then emite a signal to re-enable some buttons and change some text in GUI. # We need to inspect the event to know if it comes from numpad because of _canonial_names. @@ -178,18 +181,18 @@ def callback(hotkey: Callable[[], None]): # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 autosplit.split_hotkey = keyboard.hook_key( key_name, - lambda e: _hotkey_action(e, key_name, autosplit.startAutoSplitter)) - autosplit.splitLineEdit.setText(key_name) + lambda error: _hotkey_action(error, key_name, autosplit.start_suto_splitter)) + autosplit.split_input.setText(key_name) autosplit.split_key = key_name - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() - t = threading.Thread(target=callback, args=(autosplit.split_hotkey,)) - t.start() + thread = threading.Thread(target=callback, args=(autosplit.split_hotkey,)) + thread.start() -def setResetHotkey(autosplit: AutoSplit): - autosplit.setresethotkeyButton.setText("Press a key...") - beforeSettingHotkey(autosplit) +def set_reset_hotkey(autosplit: AutoSplit): + autosplit.set_reset_hotkey_button.setText(PRESS_A_KEY_TEXT) + before_setting_hotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -201,26 +204,26 @@ def callback(hotkey: Callable[[], None]): try: if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return except AttributeError: - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return autosplit.reset_hotkey = keyboard.hook_key( key_name, - lambda e: _hotkey_action(e, key_name, autosplit.startReset)) - autosplit.resetLineEdit.setText(key_name) + lambda error: _hotkey_action(error, key_name, autosplit.start_reset)) + autosplit.reset_input.setText(key_name) autosplit.reset_key = key_name - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() - t = threading.Thread(target=callback, args=(autosplit.reset_hotkey,)) - t.start() + thread = threading.Thread(target=callback, args=(autosplit.reset_hotkey,)) + thread.start() -def setSkipSplitHotkey(autosplit: AutoSplit): - autosplit.setskipsplithotkeyButton.setText("Press a key...") - beforeSettingHotkey(autosplit) +def set_skip_split_hotkey(autosplit: AutoSplit): + autosplit.set_skip_split_hotkey_button.setText(PRESS_A_KEY_TEXT) + before_setting_hotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -232,26 +235,26 @@ def callback(hotkey: Callable[[], None]): try: if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return except AttributeError: - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return autosplit.skip_split_hotkey = keyboard.hook_key( key_name, - lambda e: _hotkey_action(e, key_name, autosplit.startSkipSplit)) - autosplit.skipsplitLineEdit.setText(key_name) + lambda error: _hotkey_action(error, key_name, autosplit.start_skip_split)) + autosplit.skip_split_input.setText(key_name) autosplit.skip_split_key = key_name - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() - t = threading.Thread(target=callback, args=(autosplit.skip_split_hotkey,)) - t.start() + thread = threading.Thread(target=callback, args=(autosplit.skip_split_hotkey,)) + thread.start() -def setUndoSplitHotkey(autosplit: AutoSplit): - autosplit.setundosplithotkeyButton.setText("Press a key...") - beforeSettingHotkey(autosplit) +def set_undo_split_hotkey(autosplit: AutoSplit): + autosplit.set_undo_split_hotkey_button.setText(PRESS_A_KEY_TEXT) + before_setting_hotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -263,26 +266,26 @@ def callback(hotkey: Callable[[], None]): try: if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return except AttributeError: - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return autosplit.undo_split_hotkey = keyboard.hook_key( key_name, - lambda e: _hotkey_action(e, key_name, autosplit.startUndoSplit)) - autosplit.undosplitLineEdit.setText(key_name) + lambda error: _hotkey_action(error, key_name, autosplit.start_undo_split)) + autosplit.undo_split_input.setText(key_name) autosplit.undo_split_key = key_name - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() - t = threading.Thread(target=callback, args=(autosplit.undo_split_hotkey,)) - t.start() + thread = threading.Thread(target=callback, args=(autosplit.undo_split_hotkey,)) + thread.start() -def setPauseHotkey(autosplit: AutoSplit): - autosplit.setpausehotkeyButton.setText("Press a key...") - beforeSettingHotkey(autosplit) +def set_pause_hotkey(autosplit: AutoSplit): + autosplit.set_pause_hotkey_button.setText(PRESS_A_KEY_TEXT) + before_setting_hotkey(autosplit) def callback(hotkey: Callable[[], None]): try: @@ -294,18 +297,18 @@ def callback(hotkey: Callable[[], None]): try: if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return except AttributeError: - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() return autosplit.pause_hotkey = keyboard.hook_key( key_name, - lambda e: _hotkey_action(e, key_name, autosplit.startPause)) - autosplit.pausehotkeyLineEdit.setText(key_name) + lambda error: _hotkey_action(error, key_name, autosplit.start_pause)) + autosplit.pause_hotkey_input.setText(key_name) autosplit.undo_split_key = key_name - autosplit.afterSettingHotkeySignal.emit() + autosplit.after_setting_hotkey_signal.emit() - t = threading.Thread(target=callback, args=(autosplit.pause_hotkey,)) - t.start() + thread = threading.Thread(target=callback, args=(autosplit.pause_hotkey,)) + thread.start() diff --git a/src/menu_bar.py b/src/menu_bar.py index 15e6e82d..6acfdc9e 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -21,13 +21,13 @@ # About Window -class __AboutWidget(QtWidgets.QWidget, about.Ui_aboutAutoSplitWidget): +class __AboutWidget(QtWidgets.QWidget, about.Ui_AboutAutoSplitWidget): def __init__(self): super().__init__() self.setupUi(self) - self.createdbyLabel.setOpenExternalLinks(True) - self.donatebuttonLabel.setOpenExternalLinks(True) - self.versionLabel.setText(f"Version: {VERSION}") + self.created_by_label.setOpenExternalLinks(True) + self.donate_button_label.setOpenExternalLinks(True) + self.version_label.setText(f"Version: {VERSION}") self.show() @@ -39,37 +39,37 @@ class __UpdateCheckerWidget(QtWidgets.QWidget, update_checker.Ui_UpdateChecker): def __init__(self, latest_version: str, design_window: design.Ui_MainWindow, check_on_open: bool = False): super().__init__() self.setupUi(self) - self.labelCurrentVersionNumber.setText(VERSION) - self.labelLatestVersionNumber.setText(latest_version) - self.pushButtonLeft.clicked.connect(self.openUpdate) - self.checkBoxDoNotAskMeAgain.stateChanged.connect(self.doNotAskMeAgainStateChanged) + self.current_version_number_label.setText(VERSION) + self.latest_version_number_label.setText(latest_version) + self.left_button.clicked.connect(self.open_update) + self.do_not_ask_again_checkbox.stateChanged.connect(self.do_not_ask_me_again_state_changed) self.design_window = design_window if version.parse(latest_version) > version.parse(VERSION): - self.checkBoxDoNotAskMeAgain.setVisible(check_on_open) + self.do_not_ask_again_checkbox.setVisible(check_on_open) self.show() elif not check_on_open: - self.labelUpdateStatus.setText("You are on the latest AutoSplit version.") - self.labelGoToDownload.setVisible(False) - self.pushButtonLeft.setVisible(False) - self.pushButtonRight.setText("OK") - self.checkBoxDoNotAskMeAgain.setVisible(False) + self.update_status_label.setText("You are on the latest AutoSplit version.") + self.go_to_download_label.setVisible(False) + self.left_button.setVisible(False) + self.right_button.setText("OK") + self.do_not_ask_again_checkbox.setVisible(False) self.show() - def openUpdate(self): + def open_update(self): os.system('start "" https://github.com/Toufool/Auto-Split/releases/latest') self.close() - def doNotAskMeAgainStateChanged(self): + def do_not_ask_me_again_state_changed(self): settings.set_check_for_updates_on_open( self.design_window, - self.checkBoxDoNotAskMeAgain.isChecked()) + self.do_not_ask_again_checkbox.isChecked()) def open_update_checker(autosplit: AutoSplit, latest_version: str, check_on_open: bool): autosplit.UpdateCheckerWidget = __UpdateCheckerWidget(latest_version, autosplit, check_on_open) -def viewHelp(): +def view_help(): os.system('start "" https://github.com/Toufool/Auto-Split#tutorial') @@ -83,12 +83,12 @@ def run(self): try: response = requests.get("https://api.github.com/repos/Toufool/Auto-Split/releases/latest") latest_version = response.json()["name"].split("v")[1] - self.autosplit.updateCheckerWidgetSignal.emit(latest_version, self.check_on_open) + self.autosplit.update_checker_widget_signal.emit(latest_version, self.check_on_open) except (RequestException, KeyError, JSONDecodeError): if not self.check_on_open: - self.autosplit.showErrorSignal.emit(error_messages.checkForUpdatesError) + self.autosplit.show_error_signal.emit(error_messages.check_for_updates) -def checkForUpdates(autosplit: AutoSplit, check_on_open: bool = False): +def check_for_updates(autosplit: AutoSplit, check_on_open: bool = False): autosplit.CheckForUpdatesThread = __CheckForUpdatesThread(autosplit, check_on_open) autosplit.CheckForUpdatesThread.start() diff --git a/src/screen_region.py b/src/screen_region.py index 88c4ae3f..d208ac12 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -19,7 +19,7 @@ user32 = ctypes.windll.user32 -def selectRegion(autosplit: AutoSplit): +def select_region(autosplit: AutoSplit): # Create a screen selector widget selector = SelectRegionWidget() @@ -41,9 +41,9 @@ def selectRegion(autosplit: AutoSplit): while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - windowText = win32gui.GetWindowText(autosplit.hwnd) - if autosplit.hwnd > 0 or windowText: - autosplit.hwnd_title = windowText + window_text = win32gui.GetWindowText(autosplit.hwnd) + if autosplit.hwnd > 0 or window_text: + autosplit.hwnd_title = window_text # Convert the Desktop Coordinates to Window Coordinates # Pull the window's coordinates relative to desktop into selection @@ -57,9 +57,9 @@ def selectRegion(autosplit: AutoSplit): # TODO: Since this occurs on Windows 10, is DwmGetWindowAttribute even required over GetWindowRect alone? # Research needs to be done to figure out why it was used it over win32gui in the first place... # I have a feeling it was due to a misunderstanding and not getting the correct parent window before. - windowRect = win32gui.GetWindowRect(autosplit.hwnd) - offset_left = autosplit.selection.left - windowRect[0] - offset_top = autosplit.selection.top - windowRect[1] + window_rect = win32gui.GetWindowRect(autosplit.hwnd) + offset_left = autosplit.selection.left - window_rect[0] + offset_top = autosplit.selection.top - window_rect[1] autosplit.selection.left = selector.left - (autosplit.selection.left - offset_left) autosplit.selection.top = selector.top - (autosplit.selection.top - offset_top) @@ -69,16 +69,16 @@ def selectRegion(autosplit: AutoSplit): # Delete that widget since it is no longer used from here on out del selector - autosplit.widthSpinBox.setValue(width) - autosplit.heightSpinBox.setValue(height) - autosplit.xSpinBox.setValue(autosplit.selection.left) - autosplit.ySpinBox.setValue(autosplit.selection.top) + autosplit.width_spinbox.setValue(width) + autosplit.height_spinbox.setValue(height) + autosplit.x_spinbox.setValue(autosplit.selection.left) + autosplit.y_spinbox.setValue(autosplit.selection.top) # check if live image needs to be turned on or just set a single image - autosplit.checkLiveImage() + autosplit.check_live_image() -def selectWindow(autosplit: AutoSplit): +def select_window(autosplit: AutoSplit): # Create a screen selector widget selector = SelectWindowWidget() @@ -102,9 +102,9 @@ def selectWindow(autosplit: AutoSplit): while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - windowText = win32gui.GetWindowText(autosplit.hwnd) - if autosplit.hwnd > 0 or windowText: - autosplit.hwnd_title = windowText + window_text = win32gui.GetWindowText(autosplit.hwnd) + if autosplit.hwnd > 0 or window_text: + autosplit.hwnd_title = window_text # getting window bounds # on windows there are some invisble pixels that are not accounted for @@ -117,18 +117,18 @@ def selectWindow(autosplit: AutoSplit): autosplit.selection.right = 8 + selection[2] autosplit.selection.bottom = 31 + selection[3] - autosplit.widthSpinBox.setValue(selection[2]) - autosplit.heightSpinBox.setValue(selection[3]) - autosplit.xSpinBox.setValue(autosplit.selection.left) - autosplit.ySpinBox.setValue(autosplit.selection.top) + autosplit.width_spinbox.setValue(selection[2]) + autosplit.height_spinbox.setValue(selection[3]) + autosplit.x_spinbox.setValue(autosplit.selection.left) + autosplit.y_spinbox.setValue(autosplit.selection.top) - autosplit.checkLiveImage() + autosplit.check_live_image() -def alignRegion(autosplit: AutoSplit): +def align_region(autosplit: AutoSplit): # check to see if a region has been set if autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): - error_messages.regionError() + error_messages.region() return # This is the image used for aligning the capture region # to the best fit for the user. @@ -146,7 +146,7 @@ def alignRegion(autosplit: AutoSplit): # shouldn't need this, but just for caution, throw a type error if file is not a valid image file if template is None: - error_messages.alignRegionImageTypeError() + error_messages.align_region_image_type() return # Obtaining the capture of a region which contains the @@ -154,7 +154,7 @@ def alignRegion(autosplit: AutoSplit): capture = capture_windows.capture_region( autosplit.hwnd, autosplit.selection, - autosplit.forcePrintWindowCheckBox.isChecked()) + autosplit.force_print_window_checkbox.isChecked()) capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # Obtain the best matching point for the template within the @@ -197,7 +197,7 @@ def alignRegion(autosplit: AutoSplit): # Go ahead and check if this satisfies our requirement before setting the region # We don't want a low similarity image to be aligned. if best_match < 0.9: - error_messages.alignmentNotMatchedError() + error_messages.alignment_not_matched() return # The new region can be defined by using the min_loc point and the @@ -207,22 +207,22 @@ def alignRegion(autosplit: AutoSplit): autosplit.selection.right = autosplit.selection.left + best_width autosplit.selection.bottom = autosplit.selection.top + best_height - autosplit.xSpinBox.setValue(autosplit.selection.left) - autosplit.ySpinBox.setValue(autosplit.selection.top) - autosplit.widthSpinBox.setValue(best_width) - autosplit.heightSpinBox.setValue(best_height) + autosplit.x_spinbox.setValue(autosplit.selection.left) + autosplit.y_spinbox.setValue(autosplit.selection.top) + autosplit.width_spinbox.setValue(best_width) + autosplit.height_spinbox.setValue(best_height) -def validateBeforeComparison(autosplit: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): +def validate_before_comparison(autosplit: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): error = None if not autosplit.split_image_directory: - error = error_messages.splitImageDirectoryError + error = error_messages.split_image_directory elif not os.path.isdir(autosplit.split_image_directory): - error = error_messages.splitImageDirectoryNotFoundError + error = error_messages.split_image_directory_not_found elif check_empty_directory and not os.listdir(autosplit.split_image_directory): - error = error_messages.splitImageDirectoryEmpty + error = error_messages.split_image_directory_empty elif autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): - error = error_messages.regionError + error = error_messages.region if error and show_error: error() return not error @@ -287,10 +287,10 @@ def width(self): def paintEvent(self, a0: QtGui.QPaintEvent): if self.__begin != self.__end: - qPainter = QtGui.QPainter(self) - qPainter.setPen(QtGui.QPen(QtGui.QColor("red"), 2)) - qPainter.setBrush(QtGui.QColor("opaque")) - qPainter.drawRect(QtCore.QRect(self.__begin, self.__end)) + qpainter = QtGui.QPainter(self) + qpainter.setPen(QtGui.QPen(QtGui.QColor("red"), 2)) + qpainter.setBrush(QtGui.QColor("opaque")) + qpainter.drawRect(QtCore.QRect(self.__begin, self.__end)) def mousePressEvent(self, a0: QtGui.QMouseEvent): self.__begin = a0.position().toPoint() diff --git a/src/settings_file.py b/src/settings_file.py index 9a30cb37..a8e8bcbe 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -28,40 +28,40 @@ def find_class(self, module: str, name: str): raise pickle.UnpicklingError(f"'{module}.{name}' is forbidden") -def loadPyQtSettings(autosplit: AutoSplit): +def load_pyqt_settings(autosplit: AutoSplit): # These are only global settings values. They are not *pkl settings values. - autosplit.getGlobalSettingsValues() + autosplit.get_global_settings_values() check_for_updates_on_open = autosplit.setting_check_for_updates_on_open.value( "check_for_updates_on_open", True, type=bool) - autosplit.actionCheck_for_Updates_on_Open.setChecked(check_for_updates_on_open) + autosplit.action_check_for_updates_on_open.setChecked(check_for_updates_on_open) -def getSaveSettingsValues(autosplit: AutoSplit): +def get_save_settings_values(autosplit: AutoSplit): # get values to be able to save settings - autosplit.similarity_threshold = autosplit.similaritythresholdDoubleSpinBox.value() - autosplit.comparison_index = autosplit.comparisonmethodComboBox.currentIndex() - autosplit.pause = autosplit.pauseDoubleSpinBox.value() - autosplit.fps_limit = int(autosplit.fpslimitSpinBox.value()) - autosplit.split_key = autosplit.splitLineEdit.text() - autosplit.reset_key = autosplit.resetLineEdit.text() - autosplit.skip_split_key = autosplit.skipsplitLineEdit.text() - autosplit.undo_split_key = autosplit.undosplitLineEdit.text() - autosplit.pause_key = autosplit.pausehotkeyLineEdit.text() + autosplit.similarity_threshold = autosplit.similarity_threshold_spinbox.value() + autosplit.comparison_index = autosplit.comparison_method_combobox.currentIndex() + autosplit.pause = autosplit.pause_spinbox.value() + autosplit.fps_limit = int(autosplit.fps_limit_spinbox.value()) + autosplit.split_key = autosplit.split_input.text() + autosplit.reset_key = autosplit.reset_input.text() + autosplit.skip_split_key = autosplit.skip_split_input.text() + autosplit.undo_split_key = autosplit.undo_split_input.text() + autosplit.pause_key = autosplit.pause_hotkey_input.text() autosplit.group_dummy_splits_undo_skip_setting = cast( Literal[0, 1], - int(autosplit.groupDummySplitsCheckBox.isChecked())) + int(autosplit.group_dummy_splits_checkbox.isChecked())) autosplit.loop_setting = cast( Literal[0, 1], - int(autosplit.loopCheckBox.isChecked())) + int(autosplit.loop_checkbox.isChecked())) autosplit.auto_start_on_reset_setting = cast( Literal[0, 1], - int(autosplit.autostartonresetCheckBox.isChecked())) + int(autosplit.auto_start_on_reset_checkbox.isChecked())) -def haveSettingsChanged(autosplit: AutoSplit): - getSaveSettingsValues(autosplit) +def have_settings_changed(autosplit: AutoSplit): + get_save_settings_values(autosplit) current_save_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, @@ -73,17 +73,17 @@ def haveSettingsChanged(autosplit: AutoSplit): autosplit.skip_split_key, autosplit.undo_split_key, autosplit.pause_key, - autosplit.xSpinBox.value(), - autosplit.ySpinBox.value(), - autosplit.widthSpinBox.value(), - autosplit.heightSpinBox.value(), + autosplit.x_spinbox.value(), + autosplit.y_spinbox.value(), + autosplit.width_spinbox.value(), + autosplit.height_spinbox.value(), autosplit.hwnd_title, 0, 0, autosplit.group_dummy_splits_undo_skip_setting, autosplit.loop_setting, autosplit.auto_start_on_reset_setting, - autosplit.forcePrintWindowCheckBox.isChecked()] + autosplit.force_print_window_checkbox.isChecked()] # One small caveat in this: if you load a settings file from an old version, but dont change settings, # the current save settings and last load settings will have different # of elements and it will ask @@ -91,11 +91,11 @@ def haveSettingsChanged(autosplit: AutoSplit): return current_save_settings not in (autosplit.last_loaded_settings, autosplit.last_saved_settings) -def saveSettings(autosplit: AutoSplit): +def save_settings(autosplit: AutoSplit): if not autosplit.last_successfully_loaded_settings_file_path: - saveSettingsAs(autosplit) + save_settings_as(autosplit) else: - getSaveSettingsValues(autosplit) + get_save_settings_values(autosplit) autosplit.last_saved_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, @@ -107,23 +107,23 @@ def saveSettings(autosplit: AutoSplit): autosplit.skip_split_key, autosplit.undo_split_key, autosplit.pause_key, - autosplit.xSpinBox.value(), - autosplit.ySpinBox.value(), - autosplit.widthSpinBox.value(), - autosplit.heightSpinBox.value(), + autosplit.x_spinbox.value(), + autosplit.y_spinbox.value(), + autosplit.width_spinbox.value(), + autosplit.height_spinbox.value(), autosplit.hwnd_title, 0, 0, autosplit.group_dummy_splits_undo_skip_setting, autosplit.loop_setting, autosplit.auto_start_on_reset_setting, - autosplit.forcePrintWindowCheckBox.isChecked()] + autosplit.force_print_window_checkbox.isChecked()] # save settings to a .pkl file - with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as f: - pickle.dump(autosplit.last_saved_settings, f) + with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as file: + pickle.dump(autosplit.last_saved_settings, file) -def saveSettingsAs(autosplit: AutoSplit): +def save_settings_as(autosplit: AutoSplit): # User picks save destination autosplit.save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( autosplit, @@ -135,7 +135,7 @@ def saveSettingsAs(autosplit: AutoSplit): if not autosplit.save_settings_file_path: return - getSaveSettingsValues(autosplit) + get_save_settings_values(autosplit) autosplit.last_saved_settings = [ autosplit.split_image_directory, autosplit.similarity_threshold, @@ -147,28 +147,31 @@ def saveSettingsAs(autosplit: AutoSplit): autosplit.skip_split_key, autosplit.undo_split_key, autosplit.pause_key, - autosplit.xSpinBox.value(), - autosplit.ySpinBox.value(), - autosplit.widthSpinBox.value(), - autosplit.heightSpinBox.value(), + autosplit.x_spinbox.value(), + autosplit.y_spinbox.value(), + autosplit.width_spinbox.value(), + autosplit.height_spinbox.value(), autosplit.hwnd_title, 0, 0, autosplit.group_dummy_splits_undo_skip_setting, autosplit.loop_setting, autosplit.auto_start_on_reset_setting, - autosplit.forcePrintWindowCheckBox.isChecked()] + autosplit.force_print_window_checkbox.isChecked()] # save settings to a .pkl file - with open(autosplit.save_settings_file_path, "wb") as f: - pickle.dump(autosplit.last_saved_settings, f) + with open(autosplit.save_settings_file_path, "wb") as file: + pickle.dump(autosplit.last_saved_settings, file) # Wording is kinda off here but this needs to be here for an edge case: # for when a file has never loaded, but you save file as successfully. autosplit.last_successfully_loaded_settings_file_path = autosplit.save_settings_file_path -def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load_settings_from_livesplit: bool = False): +def load_settings( + autosplit: AutoSplit, + load_settings_on_open: bool = False, + load_settings_from_livesplit: bool = False): if load_settings_on_open: settings_files = [ file for file @@ -177,11 +180,11 @@ def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load # find all .pkls in AutoSplit folder, error if there is none or more than 1 if len(settings_files) < 1: - error_messages.noSettingsFileOnOpenError() + error_messages.no_settings_file_on_open() autosplit.last_loaded_settings = None return if len(settings_files) > 1: - error_messages.tooManySettingsFilesOnOpenError() + error_messages.too_many_settings_files_on_open() autosplit.last_loaded_settings = None return autosplit.load_settings_file_path = os.path.join(auto_split_directory, settings_files[0]) @@ -198,11 +201,11 @@ def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load return try: - with open(autosplit.load_settings_file_path, "rb") as f: - settings: list[Any] = RestrictedUnpickler(f).load() + with open(autosplit.load_settings_file_path, "rb") as file: + settings: list[Any] = RestrictedUnpickler(file).load() settings_count = len(settings) if settings_count < 18: - autosplit.showErrorSignal.emit(error_messages.oldVersionSettingsFileError) + autosplit.show_error_signal.emit(error_messages.old_version_settings_file) return # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting if settings_count == 18: @@ -214,7 +217,7 @@ def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load # v1.6.X settings elif settings_count != 21: if not load_settings_from_livesplit: - autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) + autosplit.show_error_signal.emit(error_messages.invalid_settings) return autosplit.last_loaded_settings = [ autosplit.split_image_directory, @@ -237,95 +240,94 @@ def loadSettings(autosplit: AutoSplit, load_settings_on_open: bool = False, load autosplit.group_dummy_splits_undo_skip_setting, autosplit.loop_setting, autosplit.auto_start_on_reset_setting, - forcePrintWindowCheckBox] = settings + force_print_window_checkbox] = settings - autosplit.forcePrintWindowCheckBox.setChecked(forcePrintWindowCheckBox) - except (FileNotFoundError, MemoryError, pickle.UnpicklingError) as e: - print(e) - autosplit.showErrorSignal.emit(error_messages.invalidSettingsError) + autosplit.force_print_window_checkbox.setChecked(force_print_window_checkbox) + except (FileNotFoundError, MemoryError, pickle.UnpicklingError): + autosplit.show_error_signal.emit(error_messages.invalid_settings) return - autosplit.splitimagefolderLineEdit.setText(autosplit.split_image_directory) - autosplit.similaritythresholdDoubleSpinBox.setValue(autosplit.similarity_threshold) - autosplit.pauseDoubleSpinBox.setValue(autosplit.pause) - autosplit.fpslimitSpinBox.setValue(autosplit.fps_limit) - autosplit.xSpinBox.setValue(region_x) - autosplit.ySpinBox.setValue(region_y) - autosplit.widthSpinBox.setValue(region_width) - autosplit.heightSpinBox.setValue(region_height) - autosplit.comparisonmethodComboBox.setCurrentIndex(autosplit.comparison_index) + autosplit.split_image_folder_input.setText(autosplit.split_image_directory) + autosplit.similarity_threshold_spinbox.setValue(autosplit.similarity_threshold) + autosplit.pause_spinbox.setValue(autosplit.pause) + autosplit.fps_limit_spinbox.setValue(autosplit.fps_limit) + autosplit.x_spinbox.setValue(region_x) + autosplit.y_spinbox.setValue(region_y) + autosplit.width_spinbox.setValue(region_width) + autosplit.height_spinbox.setValue(region_height) + autosplit.comparison_method_combobox.setCurrentIndex(autosplit.comparison_index) # https://github.com/kaluluosi/pywin32-stubs/issues/7 autosplit.hwnd = win32gui.FindWindow(None, autosplit.hwnd_title) # type: ignore # set custom checkbox's accordingly - autosplit.groupDummySplitsCheckBox.setChecked(bool(autosplit.group_dummy_splits_undo_skip_setting)) - autosplit.loopCheckBox.setChecked(bool(autosplit.loop_setting)) - autosplit.autostartonresetCheckBox.setChecked(bool(autosplit.auto_start_on_reset_setting)) - autosplit.autostartonresetCheckBox.setChecked(bool(autosplit.auto_start_on_reset_setting)) + autosplit.group_dummy_splits_checkbox.setChecked(bool(autosplit.group_dummy_splits_undo_skip_setting)) + autosplit.loop_checkbox.setChecked(bool(autosplit.loop_setting)) + autosplit.auto_start_on_reset_checkbox.setChecked(bool(autosplit.auto_start_on_reset_setting)) + autosplit.auto_start_on_reset_checkbox.setChecked(bool(autosplit.auto_start_on_reset_setting)) # TODO: Reuse code from hotkeys rather than duplicating here # try to set hotkeys from when user last closed the window if autosplit.split_hotkey: keyboard.unhook_key(autosplit.split_hotkey) try: - autosplit.splitLineEdit.setText(autosplit.split_key) + autosplit.split_input.setText(autosplit.split_key) if not autosplit.is_auto_controlled: autosplit.split_hotkey = keyboard.hook_key( autosplit.split_key, - lambda e: _hotkey_action(e, autosplit.split_key, autosplit.startAutoSplitter)) + lambda error: _hotkey_action(error, autosplit.split_key, autosplit.start_suto_splitter)) except (ValueError, KeyError): pass if autosplit.reset_hotkey: keyboard.unhook_key(autosplit.reset_hotkey) try: - autosplit.resetLineEdit.setText(autosplit.reset_key) + autosplit.reset_input.setText(autosplit.reset_key) if not autosplit.is_auto_controlled: autosplit.reset_hotkey = keyboard.hook_key( autosplit.reset_key, - lambda e: _hotkey_action(e, autosplit.reset_key, autosplit.startReset)) + lambda error: _hotkey_action(error, autosplit.reset_key, autosplit.start_reset)) except (ValueError, KeyError): pass if autosplit.skip_split_hotkey: keyboard.unhook_key(autosplit.skip_split_hotkey) try: - autosplit.skipsplitLineEdit.setText(autosplit.skip_split_key) + autosplit.skip_split_input.setText(autosplit.skip_split_key) if not autosplit.is_auto_controlled: autosplit.skip_split_hotkey = keyboard.hook_key( autosplit.skip_split_key, - lambda e: _hotkey_action(e, autosplit.skip_split_key, autosplit.startSkipSplit)) + lambda error: _hotkey_action(error, autosplit.skip_split_key, autosplit.start_skip_split)) except (ValueError, KeyError): pass if autosplit.skip_split_hotkey: keyboard.unhook_key(autosplit.skip_split_hotkey) try: - autosplit.undosplitLineEdit.setText(autosplit.undo_split_key) + autosplit.undo_split_input.setText(autosplit.undo_split_key) if not autosplit.is_auto_controlled: autosplit.undo_split_hotkey = keyboard.hook_key( autosplit.undo_split_key, - lambda e: _hotkey_action(e, autosplit.undo_split_key, autosplit.startUndoSplit)) + lambda error: _hotkey_action(error, autosplit.undo_split_key, autosplit.start_undo_split)) except (ValueError, KeyError): pass if autosplit.pause_hotkey: keyboard.unhook_key(autosplit.pause_hotkey) try: - autosplit.pausehotkeyLineEdit.setText(autosplit.pause_key) + autosplit.pause_hotkey_input.setText(autosplit.pause_key) if not autosplit.is_auto_controlled: autosplit.pause_hotkey = keyboard.hook_key( autosplit.pause_key, - lambda e: _hotkey_action(e, autosplit.pause_key, autosplit.startPause)) + lambda error: _hotkey_action(error, autosplit.pause_key, autosplit.start_pause)) except (ValueError, KeyError): pass autosplit.last_successfully_loaded_settings_file_path = autosplit.load_settings_file_path - autosplit.checkLiveImage() - autosplit.loadStartImage() + autosplit.check_live_image() + autosplit.load_start_image() -def load_check_for_updates_on_open(designWindow: design.Ui_MainWindow): +def load_check_for_updates_on_open(design_window: design.Ui_MainWindow): """ Retrieve the "Check For Updates On Open" QSettings and set the checkbox state These are only global settings values. They are not *pkl settings values. @@ -334,15 +336,15 @@ def load_check_for_updates_on_open(designWindow: design.Ui_MainWindow): value = QtCore \ .QSettings("AutoSplit", "Check For Updates On Open") \ .value("check_for_updates_on_open", True, type=bool) - designWindow.actionCheck_for_Updates_on_Open.setChecked(value) + design_window.action_check_for_updates_on_open.setChecked(value) -def set_check_for_updates_on_open(designWindow: design.Ui_MainWindow, value: bool): +def set_check_for_updates_on_open(design_window: design.Ui_MainWindow, value: bool): """ Sets the "Check For Updates On Open" QSettings value and the checkbox state """ - designWindow.actionCheck_for_Updates_on_Open.setChecked(value) + design_window.action_check_for_updates_on_open.setChecked(value) QtCore \ .QSettings("AutoSplit", "Check For Updates On Open") \ .setValue("check_for_updates_on_open", value) diff --git a/src/split_parser.py b/src/split_parser.py index 5e24c78a..2601befe 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -10,11 +10,9 @@ [DUMMY_FLAG, - # Legacy flag. Allows support for {md}, {mp}, or {mb} flags previously required to detect transparency. - MASK_FLAG, BELOW_FLAG, PAUSE_FLAG, - *_] = [1 << i for i in range(31)] + *_] = [1 << i for i in range(31)] # 32 bits of flags def threshold_from_filename(filename: str): @@ -119,15 +117,17 @@ def flags_from_filename(filename: str): flags = 0x00 - for c in flags_str: - if c.upper() == "D": + for character in flags_str: + character = character.upper() + if character == "D": flags |= DUMMY_FLAG - elif c.upper() == "M": - flags |= MASK_FLAG - elif c.upper() == "B": + elif character == "B": flags |= BELOW_FLAG - elif c.upper() == "P": + elif character == "P": flags |= PAUSE_FLAG + # Legacy flags + elif character == "M": + continue else: # An invalid flag was caught, this filename was written incorrectly # return 0. We don't want to interpret any misleading filenames @@ -161,7 +161,7 @@ def is_start_auto_splitter_image(filename: str): return "START_AUTO_SPLITTER" in filename.upper() -def removeStartAutoSplitterImage(split_image_filenames: list[str]): +def remove_start_auto_splitter_image(split_image_filenames: list[str]): start_auto_splitter_image_file = None for image in split_image_filenames: if is_start_auto_splitter_image(image): @@ -188,35 +188,35 @@ def validate_images_before_parsing(autosplit: AutoSplit): and cv2.imread(os.path.join(autosplit.split_image_directory, image), cv2.IMREAD_UNCHANGED) is None): # Opencv couldn't open this file as an image, this isn't a correct # file format that is supported - autosplit.guiChangesOnReset() - error_messages.imageTypeError(image) + autosplit.gui_changes_on_reset() + error_messages.image_type(image) return # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. - if (not autosplit.pausehotkeyLineEdit.text() + if (not autosplit.pause_hotkey_input.text() and flags_from_filename(image) & PAUSE_FLAG == PAUSE_FLAG and not autosplit.is_auto_controlled): - autosplit.guiChangesOnReset() - error_messages.pauseHotkeyError() + autosplit.gui_changes_on_reset() + error_messages.pause_hotkey() return # Check that there's only one reset image if is_reset_image(image): # If there is no reset hotkey set but a reset image is present, and is not auto controlled, throw an error. - if not autosplit.resetLineEdit.text() and not autosplit.is_auto_controlled: - autosplit.guiChangesOnReset() - error_messages.resetHotkeyError() + if not autosplit.reset_input.text() and not autosplit.is_auto_controlled: + autosplit.gui_changes_on_reset() + error_messages.reset_hotkey() return if already_found_reset_image: - autosplit.guiChangesOnReset() - error_messages.multipleKeywordImagesError("reset") + autosplit.gui_changes_on_reset() + error_messages.multiple_keyword_images("reset") return already_found_reset_image = True # Check that there's only one auto_start_autosplitter image if is_start_auto_splitter_image(image): if already_found_start_image: - autosplit.guiChangesOnReset() - error_messages.multipleKeywordImagesError("start_auto_splitter") + autosplit.gui_changes_on_reset() + error_messages.multiple_keyword_images("start_auto_splitter") return already_found_start_image = True diff --git a/typings/PyInstaller/utils/hooks/__init__.pyi b/typings/PyInstaller/utils/hooks/__init__.pyi new file mode 100644 index 00000000..154d59ca --- /dev/null +++ b/typings/PyInstaller/utils/hooks/__init__.pyi @@ -0,0 +1,129 @@ +""" +This type stub file was generated by pyright. +""" +from typing import Any, Literal, Optional, Union +from collections.abc import Callable + +logger = ... +PY_IGNORE_EXTENSIONS: set +hook_variables: dict + + +def exec_statement(statement): + ... + + +def exec_statement_rc(statement): + ... + + +def exec_script(script_filename, *args, env=...): + ... + + +def exec_script_rc(script_filename, *args, env=...): + ... + + +def eval_statement(statement) -> Union[Any, Literal[""]]: + ... + + +def eval_script(scriptfilename, *args, env=...) -> Union[Any, Literal[""]]: + ... + + +def get_pyextension_imports(modname) -> Union[Any, list]: + ... + + +def get_homebrew_path(formula=...) -> Optional[str]: + ... + + +def remove_prefix(string, prefix): + ... + + +def remove_suffix(string, suffix): + ... + + +def remove_file_extension(filename): + ... + + +def can_import_module(module_name): + ... + + +def get_module_attribute(module_name, attr_name): + ... + + +def get_module_file_attribute(package): + ... + + +def is_module_satisfies(requirements, version=..., version_attr=...): + ... + + +def is_package(module_name) -> Literal[False]: + ... + + +def get_package_paths(package) -> tuple[str, str]: + ... + + +def collect_submodules(package: str, filter: Optional[Callable[[str], bool]] = ...) -> list[str]: + ... + + +def is_module_or_submodule(name, mod_or_submod): + ... + + +PY_DYLIB_PATTERNS = [ + "*.dll", + "*.dylib", + "lib*.so", +] + + +def collect_dynamic_libs(package: str, destdir: Optional[str] = ...) -> list[tuple[str, str]]: + ... + + +def collect_data_files(package, include_py_files=..., subdir=..., excludes=..., includes=...) -> list[tuple[str, str]]: + ... + + +def collect_system_data_files(path, destdir=..., include_py_files=...): + ... + + +def copy_metadata(package_name, recursive=...) -> list: + ... + + +def get_installer(module) -> Optional[str]: + ... + + +def requirements_for_package(package_name) -> list: + ... + + +def collect_all(package_name, include_py_files=..., filter_submodules=..., + exclude_datas=..., include_datas=...) -> tuple[list, list, list]: + ... + + +def collect_entry_point(name: str) -> tuple[list, list]: + ... + + +def get_hook_config(hook_api, module_name, key) -> None: + ... diff --git a/typings/imagehash/__init__.pyi b/typings/imagehash/__init__.pyi index 1ead4a32..4f60001d 100644 --- a/typings/imagehash/__init__.pyi +++ b/typings/imagehash/__init__.pyi @@ -2,47 +2,13 @@ This type stub file was generated by pyright. """ from __future__ import absolute_import, division, print_function, annotations -import numpy from PIL import Image, ImageFilter +import numpy -""" -Image hashing library -====================== - -Example: - ->>> from PIL import Image ->>> import imagehash ->>> hash = imagehash.average_hash(Image.open('test.png')) ->>> print(hash) -d879f8f89b1bbf ->>> otherhash = imagehash.average_hash(Image.open('other.bmp')) ->>> print(otherhash) -ffff3720200ffff ->>> print(hash == otherhash) -False ->>> print(hash - otherhash) -36 ->>> for r in range(1, 30, 5): -... rothash = imagehash.average_hash(Image.open('test.png').rotate(r)) -... print('Rotation by %d: %d Hamming difference' % (r, hash - rothash)) -... -Rotation by 1: 2 Hamming difference -Rotation by 6: 11 Hamming difference -Rotation by 11: 13 Hamming difference -Rotation by 16: 17 Hamming difference -Rotation by 21: 19 Hamming difference -Rotation by 26: 21 Hamming difference ->>> -""" __version__ = ... class ImageHash: - """ - Hash encapsulation. Can be used for dictionary keys and comparisons. - """ - def __init__(self, binary_array) -> None: ... @@ -69,16 +35,6 @@ class ImageHash: def hex_to_hash(hexstr) -> ImageHash: - """ - Convert a stored hash (hex, as retrieved from str(Imagehash)) - back to a Imagehash object. - - Notes: - 1. This algorithm assumes all hashes are either - bidimensional arrays with dimensions hash_size * hash_size, - or onedimensional arrays with dimensions binbits * 14. - 2. This algorithm does not work for hash_size < 2. - """ ... @@ -87,118 +43,38 @@ def hex_to_flathash(hexstr, hashsize) -> ImageHash: def old_hex_to_hash(hexstr, hash_size=...) -> ImageHash: - """ - Convert a stored hash (hex, as retrieved from str(Imagehash)) - back to a Imagehash object. This method should be used for - hashes generated by ImageHash up to version 3.7. For hashes - generated by newer versions of ImageHash, hex_to_hash should - be used instead. - """ ... def average_hash(image, hash_size=..., mean=...) -> ImageHash: - """ - Average Hash computation - - Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html - - Step by step explanation: https://web.archive.org/web/20171112054354/https://www.safaribooksonline.com/blog/2013/11/26/image-hashing-with-python/ - - @image must be a PIL instance. - @mean how to determine the average luminescence. can try numpy.median instead. - """ ... def phash(image: Image.Image, hash_size: int = ..., highfreq_factor: int = ...) -> ImageHash: - """ - Perceptual Hash computation. - - Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html - - @image must be a PIL instance. - """ ... def phash_simple(image, hash_size=..., highfreq_factor=...) -> ImageHash: - """ - Perceptual Hash computation. - - Implementation follows http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html - - @image must be a PIL instance. - """ ... def dhash(image, hash_size=...) -> ImageHash: - """ - Difference Hash computation. - - following http://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html - - computes differences horizontally - - @image must be a PIL instance. - """ ... def dhash_vertical(image, hash_size=...) -> ImageHash: - """ - Difference Hash computation. - - following http://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html - - computes differences vertically - - @image must be a PIL instance. - """ ... def whash(image, hash_size=..., image_scale=..., mode=..., remove_max_haar_ll=...) -> ImageHash: - """ - Wavelet Hash computation. - - based on https://www.kaggle.com/c/avito-duplicate-ads-detection/ - - @image must be a PIL instance. - @hash_size must be a power of 2 and less than @image_scale. - @image_scale must be power of 2 and less than image size. By default is equal to max - power of 2 for an input image. - @mode (see modes in pywt library): - 'haar' - Haar wavelets, by default - 'db4' - Daubechies wavelets - @remove_max_haar_ll - remove the lowest low level (LL) frequency using Haar wavelet. - """ ... def colorhash(image, binbits=...) -> ImageHash: - """ - Color Hash computation. - - Computes fractions of image in intensity, hue and saturation bins: - - * the first binbits encode the black fraction of the image - * the next binbits encode the gray fraction of the remaining image (low saturation) - * the next 6*binbits encode the fraction in 6 bins of saturation, for highly saturated parts of the remaining image - * the next 6*binbits encode the fraction in 6 bins of saturation, for mildly saturated parts of the remaining image - - @binbits number of bits to use to encode each pixel fractions - """ ... class ImageMultiHash: - """ - This is an image hash containing a list of individual hashes for segments of the image. - The matching logic is implemented as described in Efficient Cropping-Resistant Robust Image Hashing - """ - def __init__(self, hashes) -> None: ... @@ -221,55 +97,20 @@ class ImageMultiHash: ... def hash_diff(self, other_hash, hamming_cutoff=..., bit_error_rate=...) -> tuple[int, Unknown | int]: - """ - Gets the difference between two multi-hashes, as a tuple. The first element of the tuple is the number of - matching segments, and the second element is the sum of the hamming distances of matching hashes. - NOTE: Do not order directly by this tuple, as higher is better for matches, and worse for hamming cutoff. - :param other_hash: The image multi hash to compare against - :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash - :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. The - default of 0.25 means that the segment hashes can be up to 25% different - """ ... def matches(self, other_hash, region_cutoff=..., hamming_cutoff=..., bit_error_rate=...): - """ - Checks whether this hash matches another crop resistant hash, `other_hash`. - :param other_hash: The image multi hash to compare against - :param region_cutoff: The minimum number of regions which must have a matching hash - :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash - :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. The - default of 0.25 means that the segment hashes can be up to 25% different - """ ... def best_match(self, other_hashes, hamming_cutoff=..., bit_error_rate=...): - """ - Returns the hash in a list which is the best match to the current hash - :param other_hashes: A list of image multi hashes to compare against - :param hamming_cutoff: The maximum hamming distance to a region hash in the target hash - :param bit_error_rate: Percentage of bits which can be incorrect, an alternative to the hamming cutoff. - Defaults to 0.25 if unset, which means the hash can be 25% different - """ ... -def crop_resistant_hash(image, hash_func=..., limit_segments=..., segment_threshold=..., min_segment_size=..., segmentation_image_size=...) -> ImageMultiHash: - """ - Creates a CropResistantHash object, by the algorithm described in the paper "Efficient Cropping-Resistant Robust - Image Hashing". DOI 10.1109/ARES.2014.85 - This algorithm partitions the image into bright and dark segments, using a watershed-like algorithm, and then does - an image hash on each segment. This makes the image much more resistant to cropping than other algorithms, with - the paper claiming resistance to up to 50% cropping, while most other algorithms stop at about 5% cropping. - - Note: Slightly different segmentations are produced when using pillow version 6 vs. >=7, due to a change in - rounding in the greyscale conversion. This leads to a slightly different result. - :param image: The image to hash - :param hash_func: The hashing function to use - :param limit_segments: If you have storage requirements, you can limit to hashing only the M largest segments - :param segment_threshold: Brightness threshold between hills and valleys. This should be static, putting it between - peak and trough dynamically breaks the matching - :param min_segment_size: Minimum number of pixels for a hashable segment - :param segmentation_image_size: Size which the image is resized to before segmentation - """ +def crop_resistant_hash( + image, + hash_func=..., + limit_segments=..., + segment_threshold=..., + min_segment_size=..., + segmentation_image_size=...) -> ImageMultiHash: ... From fd97eba6c5481eebada9260ce0fdc3c24dfe2c32 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 6 Dec 2021 16:25:30 -0500 Subject: [PATCH 12/54] Added build artifact --- .github/workflows/lint-and-build.yml | 5 +++++ src/AutoControlledWorker.py | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 2cb777c5..5879d5bf 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -118,3 +118,8 @@ jobs: python -m pip install --upgrade pip pip install -r "scripts/requirements.txt" - run: scripts/build.bat + - name: Upload Build Artifact + uses: actions/upload-artifact@v2 + with: + name: AutoSplit + path: /dist/AutoSplit.exe diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index 219a93be..df26d267 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -21,7 +21,6 @@ def run(self): self.autosplit.show_error_signal.emit(error_messages.stdin_lost) break # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. - # TODO: See if we can also get LiveSplit to wait on Exit in "AutoSplit Integration" # For now this can only used in a Development environment if line == "kill": self.autosplit.closeEvent() From 7c92122aa3ffe4b35f37e81a65a3ed80ff557407 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sun, 5 Dec 2021 22:59:03 -0500 Subject: [PATCH 13/54] AutoSplitImage Class and simplified code Simplified and reduced image conversions Reduced duplicated code, especially in settings Build Artifact --- .flake8 | 5 +- .github/workflows/lint-and-build.yml | 9 +- pyproject.toml | 4 + res/design.ui | 25 +- scripts/compile_resources.bat | 1 + src/AutoControlledWorker.py | 10 +- src/AutoSplit.py | 699 ++++++++------------------- src/AutoSplitImage.py | 126 +++++ src/capture_windows.py | 8 +- src/compare.py | 33 +- src/gen/about.pyi | 6 - src/gen/design.pyi | 9 - src/gen/update_checker.pyi | 6 - src/hotkeys.py | 107 ++-- src/screen_region.py | 11 +- src/settings_file.py | 301 ++++-------- src/split_parser.py | 91 ++-- 17 files changed, 546 insertions(+), 905 deletions(-) create mode 100644 src/AutoSplitImage.py delete mode 100644 src/gen/about.pyi delete mode 100644 src/gen/design.pyi delete mode 100644 src/gen/update_checker.pyi diff --git a/.flake8 b/.flake8 index cf559c33..1abd4c9f 100644 --- a/.flake8 +++ b/.flake8 @@ -3,7 +3,10 @@ color=always max-line-length=120 ; Auto generated exclude=src/gen/ -ignores=Y015 +; Linebreak before binary operator +; Allow default value other than "..." +; Allow imports at the bottom of file +ignore=W503,Y015,E402 per-file-ignores= ; Quotes __init__.pyi:Q000 diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 5879d5bf..77eced8b 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -39,6 +39,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip + pip install wheel pip install -r "scripts/requirements.txt" npm install -g pyright - run: scripts/compile_resources.bat @@ -59,6 +60,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip + pip install wheel pip install -r "scripts/requirements.txt" - run: scripts/compile_resources.bat - name: Analysing the code with ${{ job.name }} @@ -78,6 +80,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip + pip install wheel pip install -r "scripts/requirements.txt" - run: scripts/compile_resources.bat - name: Analysing the code with ${{ job.name }} @@ -97,6 +100,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip + pip install wheel pip install -r "scripts/requirements.txt" - run: scripts/compile_resources.bat - name: Analysing the code with ${{ job.name }} @@ -116,10 +120,11 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip + pip install wheel pip install -r "scripts/requirements.txt" - run: scripts/build.bat - name: Upload Build Artifact uses: actions/upload-artifact@v2 with: - name: AutoSplit - path: /dist/AutoSplit.exe + name: AutoSplit (Python ${{ matrix.python-version }}) + path: dist/AutoSplit.exe diff --git a/pyproject.toml b/pyproject.toml index dc307dc4..116b94b3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -77,9 +77,13 @@ extension-pkg-allow-list = ["PyQt6", "win32ui"] [tool.pylint.FORMAT] max-line-length = 120 +[tool.pylint.DESIGN] +max-attributes = 15 + [tool.pylint.'MESSAGES CONTROL'] # Same as SonarLint max-complexity = 15 +# At least same as max-complexity max-branches = 15 # https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles module-naming-style = "any" diff --git a/res/design.ui b/res/design.ui index 41e7316c..86efbcce 100644 --- a/res/design.ui +++ b/res/design.ui @@ -189,6 +189,9 @@ + + false + 500 @@ -205,6 +208,9 @@ + + false + 494 @@ -221,6 +227,9 @@ + + false + 560 @@ -727,7 +736,7 @@ FPS Limit: - + 62 @@ -739,20 +748,20 @@ - - 0 - - 30.000000000000000 + 30 - 5000.000000000000000 + 5000 - 1.000000000000000 + 1 - 60.000000000000000 + 60 + + + 0 diff --git a/scripts/compile_resources.bat b/scripts/compile_resources.bat index a6c092aa..3c1398ff 100644 --- a/scripts/compile_resources.bat +++ b/scripts/compile_resources.bat @@ -1,4 +1,5 @@ cd "%~dp0.." +md .\src\gen pyuic6 ".\res\about.ui" -o ".\src\gen\about.py" pyuic6 ".\res\design.ui" -o ".\src\gen\design.py" pyuic6 ".\res\update_checker.ui" -o ".\src\gen\update_checker.py" diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index df26d267..3894a5d8 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -26,17 +26,17 @@ def run(self): self.autosplit.closeEvent() break if line == "start": - self.autosplit.start_suto_splitter() + self.autosplit.start_auto_splitter() elif line in {"split", "skip"}: - self.autosplit.start_skip_split() + self.autosplit.skip_split_signal.emit() elif line == "undo": - self.autosplit.start_undo_split() + self.autosplit.undo_split_signal.emit() elif line == "reset": - self.autosplit.start_reset() + self.autosplit.reset_signal.emit() elif line.startswith("settings"): # Allow for any split character between "settings" and the path self.autosplit.load_settings_file_path = line[9:] settings.load_settings(self.autosplit, load_settings_from_livesplit=True) # TODO: Not yet implemented in AutoSplit Integration # elif line == 'pause': - # self.start_pause() + # self.pause_signal.emit() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index b0a20359..52cfb687 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -9,45 +9,34 @@ from __future__ import annotations from collections.abc import Callable from types import FunctionType, TracebackType -from typing import Literal, Optional, Union, cast +from typing import Optional, Union import sys import os import ctypes import signal import traceback -from copy import copy from time import time import certifi import cv2 -import numpy as np from PyQt6 import QtCore, QtGui, QtTest from PyQt6.QtWidgets import QApplication, QFileDialog, QMainWindow, QMessageBox, QWidget from win32 import win32gui -from win32con import MAXBYTE +from AutoSplitImage import COMPARISON_RESIZE, AutoSplitImage, ImageType import error_messages import settings_file as settings -import split_parser from AutoControlledWorker import AutoControlledWorker from capture_windows import capture_region, Rect -from compare import check_if_image_has_transparency, compare_image from gen import about, design, update_checker from hotkeys import send_command, after_setting_hotkey, set_split_hotkey, set_reset_hotkey, set_skip_split_hotkey, \ set_undo_split_hotkey, set_pause_hotkey from menu_bar import open_about, VERSION, view_help, check_for_updates, open_update_checker -from screen_region import select_region, select_window, align_region, validate_before_comparison +from screen_region import select_region, select_window, align_region, validate_before_parsing from settings_file import FROZEN -from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG - -# Resize to these width and height so that FPS performance increases -COMPARISON_RESIZE_WIDTH = 320 -COMPARISON_RESIZE_HEIGHT = 240 -COMPARISON_RESIZE = (COMPARISON_RESIZE_WIDTH, COMPARISON_RESIZE_HEIGHT) -DISPLAY_RESIZE_WIDTH = 240 -DISPLAY_RESIZE_HEIGHT = 180 -DISPLAY_RESIZE = (DISPLAY_RESIZE_WIDTH, DISPLAY_RESIZE_HEIGHT) +from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images + CREATE_NEW_ISSUE_MESSAGE = "Please create a New Issue at " \ "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" START_IMAGE_TEXT = "Start Image" @@ -77,7 +66,6 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): is_auto_controlled = "--auto-controlled" in sys.argv # Signals - update_current_split_image = QtCore.pyqtSignal(QtGui.QImage) start_auto_splitter_signal = QtCore.pyqtSignal() reset_signal = QtCore.pyqtSignal() skip_split_signal = QtCore.pyqtSignal() @@ -92,31 +80,11 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): timer_live_image = QtCore.QTimer() timer_start_image = QtCore.QTimer() - # Windows + # Widgets AboutWidget: about.Ui_AboutAutoSplitWidget UpdateCheckerWidget: update_checker.Ui_UpdateChecker CheckForUpdatesThread: QtCore.QThread - # Settings - split_image_directory = "" - similarity_threshold: float - comparison_index: int - pause: float - fps_limit: int - split_key = "" - reset_key = "" - skip_split_key = "" - undo_split_key = "" - pause_key = "" - hwnd_title = "" - group_dummy_splits_undo_skip_setting: Literal[0, 1] - loop_setting: Literal[0, 1] - auto_start_on_reset_setting: Literal[0, 1] - - # Default Settings for the region capture - hwnd = 0 - selection = Rect() - # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py # and for type safety in both hotkeys.py and settings_file.py split_hotkey: Optional[Callable[[], None]] = None @@ -126,45 +94,37 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): pause_hotkey: Optional[Callable[[], None]] = None # Initialize a few attributes - last_saved_settings: Optional[list[Union[str, float, int]]] = None + split_image_directory = "" + hwnd = 0 + selection = Rect() + last_saved_settings: list[Union[str, float, int, bool]] = [] save_settings_file_path = "" load_settings_file_path = "" live_image_function_on_open = True - split_image_loop_amount: list[int] = [] split_image_number = 0 - loop_number = 1 + split_images_and_loop_number: list[tuple[AutoSplitImage, int]] = [] + split_groups: list[list[int]] = [] # Last loaded settings and last successful loaded settings file path to None until we try to load them - last_loaded_settings: Optional[list[Union[str, float, int]]] = None + last_loaded_settings: list[Union[str, float, int]] = [] last_successfully_loaded_settings_file_path: Optional[str] = None # Automatic timer start - timer_start_image_is_running = False - start_image = None highest_similarity = 0.0 check_start_image_timestamp = 0.0 # Define all other attributes setting_check_for_updates_on_open: QtCore.QSettings - image_has_transparency: bool start_image_split_below_threshold: bool waiting_for_split_delay: bool split_below_threshold: bool - split_image_path: str - split_image_filenames: list[str] - split_image_filenames_including_loops: list[str] - split_image_filenames_and_loop_number: list[tuple[str, int, int]] - split_groups: list[list[int]] run_start_time: float similarity: float - reset_image_threshold: float - reset_image_pause_time: float split_delay: float - flags: int - reset_image: Optional[cv2.ndarray] - reset_mask: Optional[cv2.ndarray] - split_image: cv2.ndarray - image_mask: Optional[cv2.ndarray] + start_image: Optional[AutoSplitImage] = None + reset_image: Optional[AutoSplitImage] = None + split_images: list[AutoSplitImage] = [] + split_image: AutoSplitImage def __init__(self, parent: Optional[QWidget] = None): super().__init__(parent) @@ -186,11 +146,6 @@ def __init__(self, parent: Optional[QWidget] = None): self.action_save_settings_as.triggered.connect(lambda: settings.save_settings_as(self)) self.action_load_settings.triggered.connect(lambda: settings.load_settings(self)) - # disable buttons upon open - self.undo_split_button.setEnabled(False) - self.skip_split_button.setEnabled(False) - self.reset_button.setEnabled(False) - if self.is_auto_controlled: self.set_split_hotkey_button.setEnabled(False) self.set_reset_hotkey_button.setEnabled(False) @@ -219,14 +174,14 @@ def __init__(self, parent: Optional[QWidget] = None): self.split_image_folder_input.setText("No Folder Selected") # Connecting button clicks to functions - self.browse_button.clicked.connect(self.browse) + self.browse_button.clicked.connect(self.__browse) self.select_region_button.clicked.connect(lambda: select_region(self)) - self.take_screenshot_button.clicked.connect(self.take_screenshot) - self.start_auto_splitter_button.clicked.connect(self.auto_splitter) - self.check_fps_button.clicked.connect(self.check_fps) + self.take_screenshot_button.clicked.connect(self.__take_screenshot) + self.start_auto_splitter_button.clicked.connect(self.__auto_splitter) + self.check_fps_button.clicked.connect(self.__check_fps) self.reset_button.clicked.connect(self.reset) - self.skip_split_button.clicked.connect(self.skip_split) - self.undo_split_button.clicked.connect(self.undo_split) + self.skip_split_button.clicked.connect(self.__skip_split) + self.undo_split_button.clicked.connect(self.__undo_split) self.set_split_hotkey_button.clicked.connect(lambda: set_split_hotkey(self)) self.set_reset_hotkey_button.clicked.connect(lambda: set_reset_hotkey(self)) self.set_skip_split_hotkey_button.clicked.connect(lambda: set_skip_split_hotkey(self)) @@ -241,31 +196,27 @@ def __init__(self, parent: Optional[QWidget] = None): ) # update x, y, width, and height when changing the value of these spinbox's are changed - self.x_spinbox.valueChanged.connect(self.update_x) - self.y_spinbox.valueChanged.connect(self.update_y) - self.width_spinbox.valueChanged.connect(self.update_width) - self.height_spinbox.valueChanged.connect(self.update_height) + self.x_spinbox.valueChanged.connect(self.__update_x) + self.y_spinbox.valueChanged.connect(self.__update_y) + self.width_spinbox.valueChanged.connect(self.__update_width) + self.height_spinbox.valueChanged.connect(self.__update_height) # connect signals to functions - self.update_current_split_image.connect(self.update_split_image_gui) self.after_setting_hotkey_signal.connect(lambda: after_setting_hotkey(self)) - self.start_auto_splitter_signal.connect(self.auto_splitter) + self.start_auto_splitter_signal.connect(self.__auto_splitter) self.update_checker_widget_signal.connect(lambda latest_version, check_on_open: open_update_checker(self, latest_version, check_on_open)) self.reset_signal.connect(self.reset) - self.skip_split_signal.connect(self.skip_split) - self.undo_split_signal.connect(self.undo_split) + self.skip_split_signal.connect(self.__skip_split) + self.undo_split_signal.connect(self.__undo_split) + self.pause_signal.connect(self.pause) # live image checkbox self.live_image_checkbox.clicked.connect(self.check_live_image) - self.timer_live_image.timeout.connect(self.live_image_function) + self.timer_live_image.timeout.connect(self.__live_image_function) # Automatic timer start - self.timer_start_image.timeout.connect(self.start_image_function) - - # Last loaded settings and last successful loaded settings file path to None until we try to load them - self.last_loaded_settings = None - self.last_successfully_loaded_settings_file_path = None + self.timer_start_image.timeout.connect(self.__start_image_function) if not self.is_auto_controlled: settings.load_settings(self, load_settings_on_open=True) @@ -278,11 +229,8 @@ def __init__(self, parent: Optional[QWidget] = None): # FUNCTIONS - def get_global_settings_values(self): - self.setting_check_for_updates_on_open = QtCore.QSettings("AutoSplit", "Check For Updates On Open") - # TODO add checkbox for going back to image 1 when resetting. - def browse(self): + def __browse(self): # User selects the file with the split images in it. new_split_image_directory = QFileDialog.getExistingDirectory( self, @@ -301,9 +249,9 @@ def check_live_image(self): self.timer_live_image.start(int(1000 / 60)) else: self.timer_live_image.stop() - self.live_image_function() + self.__live_image_function() - def live_image_function(self): + def __live_image_function(self): try: window_text = win32gui.GetWindowText(self.hwnd) self.capture_region_window_label.setText(window_text) @@ -317,18 +265,17 @@ def live_image_function(self): return capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) - capture = cv2.resize(capture, DISPLAY_RESIZE, interpolation=cv2.INTER_NEAREST) - capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) - - # Convert to set it on the label - qimage = QtGui.QImage(cast(bytes, capture), + # Set live image in UI + capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) + qimage = QtGui.QImage(capture.data, capture.shape[1], capture.shape[0], - capture.shape[1] * 3, - QtGui.QImage.Format.Format_RGB888) - pix = QtGui.QPixmap(qimage) - self.live_image.setPixmap(pix) + capture.shape[1] * capture.shape[2], + QtGui.QImage.Format.Format_BGR888) + self.live_image.setPixmap(QtGui.QPixmap(qimage).scaled( + self.live_image.size(), + QtCore.Qt.AspectRatioMode.IgnoreAspectRatio)) except AttributeError: pass @@ -339,68 +286,32 @@ def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool self.start_image_label.setText(f"{START_IMAGE_TEXT}: not found") QApplication.processEvents() - if not validate_before_comparison(self, started_by_button): + if not self.is_auto_controlled \ + and (not self.split_input.text() + or not self.reset_input.text() + or not self.pause_hotkey_input.text()): + error_messages.load_start_image() return - - self.start_image_name = None - for image in os.listdir(self.split_image_directory): - if "start_auto_splitter" in image.lower(): - if self.start_image_name is None: - self.start_image_name = image - else: - if started_by_button: - error_messages.multiple_keyword_images("start_auto_splitter") - return - - if self.start_image_name is None: + if self.start_image is None: if started_by_button: error_messages.no_keyword_image("start_auto_splitter") return - if self.start_image_name is not None \ - and not self.is_auto_controlled \ - and (not self.split_input.text() - or not self.reset_input.text() - or not self.pause_hotkey_input.text()): - error_messages.load_start_image() + if not (validate_before_parsing(self, started_by_button) and parse_and_validate_images(self)): return - self.split_image_filenames = os.listdir(self.split_image_directory) self.split_image_number = 0 - self.start_image_mask = None - path = os.path.join(self.split_image_directory, self.start_image_name) - self.start_image = cv2.imread(path, cv2.IMREAD_UNCHANGED) - if self.start_image is None: - error_messages.image_type(path) - return - # if image has transparency, create a mask - self.image_has_transparency = check_if_image_has_transparency(self.start_image) - if self.image_has_transparency: - self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - # Create mask based on resized, nearest neighbor interpolated split image - lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") - self.start_image_mask = cv2.inRange(self.start_image, lower, upper) - - # set split image as BGR - self.start_image = cv2.cvtColor(self.start_image, cv2.COLOR_BGRA2BGR) - - # otherwise, open image normally. - else: - self.start_image = cv2.imread(path, cv2.IMREAD_COLOR) - self.start_image = cv2.resize(self.start_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - - start_image_pause = split_parser.pause_from_filename(self.start_image_name) - if not wait_for_delay and start_image_pause is not None and start_image_pause > 0: - self.check_start_image_timestamp = time() + start_image_pause + start_pause_time = self.start_image.get_pause_time(self) + if not wait_for_delay and start_pause_time > 0: + self.check_start_image_timestamp = time() + start_pause_time self.start_image_label.setText(f"{START_IMAGE_TEXT}: paused") self.highest_similarity_label.setText(" ") self.current_similarity_threshold_number_label.setText(" ") else: self.check_start_image_timestamp = 0.0 self.start_image_label.setText(f"{START_IMAGE_TEXT}: ready") - self.update_split_image(self.start_image_name, from_start_image=True) + self.__update_split_image(self.start_image, from_start_image=True) self.highest_similarity = 0.0 self.start_image_split_below_threshold = False @@ -408,9 +319,9 @@ def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool QApplication.processEvents() - def start_image_function(self): + def __start_image_function(self): if self.start_image is None \ - or not self.start_image_name \ + or not self.start_image \ or time() < self.check_start_image_timestamp \ or (not self.split_input.text() and not self.is_auto_controlled): pause_time_left = f"{self.check_start_image_timestamp - time():.1f}" @@ -421,19 +332,12 @@ def start_image_function(self): if self.check_start_image_timestamp > 0: self.check_start_image_timestamp = 0.0 self.start_image_label.setText(f"{START_IMAGE_TEXT}: ready") - self.update_split_image(self.start_image_name, from_start_image=True) - - capture = self.get_capture_for_comparison() - start_image_similarity = compare_image( - self.comparison_method_combobox.currentIndex(), - self.start_image, - capture, - self.start_image_mask) - start_image_threshold = split_parser.threshold_from_filename(self.start_image_name) \ - or self.similarity_threshold_spinbox.value() + self.__update_split_image(self.start_image, from_start_image=True) + + capture = self.__get_capture_for_comparison() + start_image_threshold = self.start_image.get_similarity_threshold(self) + start_image_similarity = self.start_image.compare_with_capture(self, capture) self.current_similarity_threshold_number_label.setText(f"{start_image_threshold:.2f}") - start_image_flags = split_parser.flags_from_filename(self.start_image_name) - start_image_delay = split_parser.delay_from_filename(self.start_image_name) # Show live similarity if the checkbox is checked self.live_similarity_label.setText(str(start_image_similarity)[:4] @@ -451,40 +355,40 @@ def start_image_function(self): # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold - if start_image_flags & BELOW_FLAG == BELOW_FLAG \ + below_flag = self.start_image.check_flag(BELOW_FLAG) + if below_flag \ and not self.start_image_split_below_threshold \ and start_image_similarity >= start_image_threshold: self.start_image_split_below_threshold = True return - if (start_image_flags & BELOW_FLAG == BELOW_FLAG + if (below_flag and self.start_image_split_below_threshold and start_image_similarity < start_image_threshold) \ - or (start_image_similarity >= start_image_threshold and not start_image_flags & BELOW_FLAG): - def split(): - send_command(self, "start") - # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(1 / self.fps_limit_spinbox.value()) # type: ignore - self.start_suto_splitter() + or (start_image_similarity >= start_image_threshold and not below_flag): self.timer_start_image.stop() self.start_image_split_below_threshold = False # delay start image if needed - if start_image_delay > 0: + if self.start_image.delay > 0: self.start_image_label.setText(f"{START_IMAGE_TEXT}: delaying start...") delay_start_time = time() - while time() - delay_start_time < (start_image_delay / 1000): - delay_time_left = round((start_image_delay / 1000) - (time() - delay_start_time), 1) + start_delay = self.start_image.delay / 1000 + while time() - delay_start_time < start_delay: + delay_time_left = round(start_delay - (time() - delay_start_time), 1) self.current_split_image.setText( f"Delayed Before Starting:\n {delay_time_left} sec remaining") # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore self.start_image_label.setText(f"{START_IMAGE_TEXT}: started") - split() + send_command(self, "start") + # Email sent to pyqt@riverbankcomputing.com + QtTest.QTest.qWait(1 / self.fps_limit_spinbox.value()) # type: ignore + self.start_auto_splitter() # update x, y, width, height when spinbox values are changed - def update_x(self): + def __update_x(self): try: self.selection.left = self.x_spinbox.value() self.selection.right = self.selection.left + self.width_spinbox.value() @@ -492,7 +396,7 @@ def update_x(self): except AttributeError: pass - def update_y(self): + def __update_y(self): try: self.selection.top = self.y_spinbox.value() self.selection.bottom = self.selection.top + self.height_spinbox.value() @@ -500,70 +404,51 @@ def update_y(self): except AttributeError: pass - def update_width(self): + def __update_width(self): self.selection.right = self.selection.left + self.width_spinbox.value() self.check_live_image() - def update_height(self): + def __update_height(self): self.selection.bottom = self.selection.top + self.height_spinbox.value() self.check_live_image() - # update current split image. needed this to avoid updating it through the hotkey thread. - def update_split_image_gui(self, qimage: QtGui.QImage): - pix = QtGui.QPixmap(qimage) - self.current_split_image.setPixmap(pix) - - def take_screenshot(self): - if not validate_before_comparison(self, check_empty_directory=False): + def __take_screenshot(self): + if not validate_before_parsing(self, check_empty_directory=False): return - take_screenshot_filename = "001_SplitImage" # check if file exists and rename it if it does # Below starts the file_name_number at #001 up to #999. After that it will go to 1000, # which is a problem, but I doubt anyone will get to 1000 split images... - i = 1 - while os.path.exists(os.path.join(self.split_image_directory, f"{take_screenshot_filename}.png")): - file_name_number = (f"{i:03}") - take_screenshot_filename = f"{file_name_number}_SplitImage" - i += 1 + screenshot_index = 1 + while True: + screenshot_path = os.path.join(self.split_image_directory, f"{screenshot_index:03}_SplitImage.png") + if not os.path.exists(screenshot_path): + break + screenshot_index += 1 # grab screenshot of capture region capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) - capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # save and open image - cv2.imwrite(os.path.join(self.split_image_directory, f"{take_screenshot_filename}.png"), capture) - os.startfile(os.path.join(self.split_image_directory, f"{take_screenshot_filename}.png")) + cv2.imwrite(screenshot_path, capture) + os.startfile(screenshot_path) - # check max FPS button connects here. - # TODO: Average on all images and check for transparency (cv2.COLOR_BGRA2RGB and cv2.IMREAD_UNCHANGED) - def check_fps(self): - if not validate_before_comparison(self): + def __check_fps(self): + self.fps_value_label.setText(" ") + if not (validate_before_parsing(self) and parse_and_validate_images(self)): return - split_image_filenames = os.listdir(self.split_image_directory) - split_images = [ - cv2.imread(os.path.join(self.split_image_directory, image), cv2.IMREAD_COLOR) - for image - in split_image_filenames] - for i, image in enumerate(split_images): - if image is None: - error_messages.image_type(split_image_filenames[i]) - return - - # grab first image in the split image folder - split_image = split_images[0] - split_image = cv2.cvtColor(split_image, cv2.COLOR_BGR2RGB) - split_image = cv2.resize(split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) + images = self.split_images + if self.start_image: + images.append(self.start_image) + if self.reset_image: + images.append(self.reset_image) - # run 10 iterations of screenshotting capture region + comparison. - count = 0 + # run X iterations of screenshotting capture region + comparison + displaying. t0 = time() while count < 10: - capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) - capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2RGB) - compare_image(self.comparison_method_combobox.currentIndex(), split_image, capture) + capture = self.__get_capture_for_comparison() + _ = image.compare_with_capture(self, capture) count += 1 # calculate FPS @@ -571,18 +456,18 @@ def check_fps(self): fps = str(int(10 / (t1 - t0))) self.fps_value_label.setText(fps) - def is_current_split_out_of_range(self): + def __is_current_split_out_of_range(self): return self.split_image_number < 0 \ - or self.split_image_number > len(self.split_image_filenames_including_loops) - 1 + or self.split_image_number > len(self.split_images_and_loop_number) - 1 # undo split button and hotkey connect to here - def undo_split(self): + def __undo_split(self): # Can't undo until timer is started # or Undoing past the first image if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ or "Delayed Split" in self.current_split_image.text() \ or (not self.undo_split_button.isEnabled() and not self.is_auto_controlled) \ - or self.is_current_split_out_of_range(): + or self.__is_current_split_out_of_range(): return if self.group_dummy_splits_checkbox.isChecked(): @@ -593,16 +478,16 @@ def undo_split(self): else: self.split_image_number -= 1 - self.update_split_image() + self.__update_split_image() # skip split button and hotkey connect to here - def skip_split(self): + def __skip_split(self): # Can't skip or split until timer is started # or Splitting/skipping when there are no images left if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ or "Delayed Split" in self.current_split_image.text() \ or (not self.skip_split_button.isEnabled() and not self.is_auto_controlled) \ - or self.is_current_split_out_of_range(): + or self.__is_current_split_out_of_range(): return if self.group_dummy_splits_checkbox.isChecked(): @@ -613,42 +498,31 @@ def skip_split(self): else: self.split_image_number += 1 - self.update_split_image() + self.__update_split_image() - # def pause(self): + def pause(self): # TODO add what to do when you hit pause hotkey, if this even needs to be done + pass def reset(self): # When the reset button or hotkey is pressed, it will change this text, - # which will trigger in the auto_splitter function, if running, to abort and change GUI. + # which will trigger in the __auto_splitter function, if running, to abort and change GUI. self.start_auto_splitter_button.setText(START_AUTO_SPLITTER_TEXT) # Functions for the hotkeys to return to the main thread from signals and start their corresponding functions - def start_suto_splitter(self): + def start_auto_splitter(self): # If the auto splitter is already running or the button is disabled, don't emit the signal to start it. if self.start_auto_splitter_button.text() == "Running..." \ or (not self.start_auto_splitter_button.isEnabled() and not self.is_auto_controlled): return - if self.start_image_label.text() == f"{START_IMAGE_TEXT}: ready" or self.start_image_label.text( - ) == f"{START_IMAGE_TEXT}: paused": + start_label: str = self.start_image_label.text() + if start_label.endswith("ready") or start_label.endswith("paused"): self.start_image_label.setText(f"{START_IMAGE_TEXT}: not ready") self.start_auto_splitter_signal.emit() - def start_reset(self): - self.reset_signal.emit() - - def start_skip_split(self): - self.skip_split_signal.emit() - - def start_undo_split(self): - self.undo_split_signal.emit() - - def start_pause(self): - self.pause_signal.emit() - - def check_for_reset(self): + def __check_for_reset(self): if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT: if self.auto_start_on_reset_checkbox.isChecked(): self.start_auto_splitter_signal.emit() @@ -657,78 +531,36 @@ def check_for_reset(self): return True return False - def auto_splitter(self): - if not validate_before_comparison(self): - self.gui_changes_on_reset() - return - + def __auto_splitter(self): if not self.split_input.text() and not self.is_auto_controlled: self.gui_changes_on_reset() error_messages.split_hotkey() return - # get split image filenames - self.split_image_filenames = os.listdir(self.split_image_directory) - - split_parser.validate_images_before_parsing(self) - - # find reset image then remove it from the list - self.find_reset_image() - - # Find start_auto_splitter_image and then remove it from the list - split_parser.remove_start_auto_splitter_image(self.split_image_filenames) - -# region TODO I feel this entire region could be simplified - - # construct loop amounts for each split image - split_image_loop_amount = [ - split_parser.loop_from_filename(image) - for image - in self.split_image_filenames] - - # construct a list of filenames, each filename copied with # of loops it has. - self.split_image_filenames_including_loops: list[str] = [] - for i, filename in enumerate(self.split_image_filenames): - current_loop = 1 - while split_image_loop_amount[i] >= current_loop: - self.split_image_filenames_including_loops.append(filename) - current_loop = current_loop + 1 - - # construct a list of corresponding loop number to the filenames - loop_numbers: list[int] = [] - loop_count = 1 - for i, filename in enumerate(self.split_image_filenames_including_loops): - if i == 0: - loop_numbers.append(1) - else: - if self.split_image_filenames_including_loops[i] != self.split_image_filenames_including_loops[i - 1]: - loop_count = 1 - else: - loop_count += 1 - loop_numbers.append(loop_count) + if not (validate_before_parsing(self) and parse_and_validate_images(self)): + self.gui_changes_on_reset() + return - # Merge them - self.split_image_filenames_and_loop_number = [ - (filename, loop_numbers[i], self.split_image_filenames_including_loops.count(filename)) - for i, filename in enumerate(self.split_image_filenames_including_loops) - ] + # Construct a list of images + loop count tuples. + self.split_images_and_loop_number = [ + item for flattenlist + in [[(split_image, i + 1) for i in range(split_image.loops)] + for split_image + in self.split_images] + for item in flattenlist] - # construct groups of splits if needed - self.split_groups: list[list[int]] = [] + # Construct groups of splits if needed + self.split_groups = [] if self.group_dummy_splits_checkbox.isChecked(): current_group: list[int] = [] self.split_groups.append(current_group) - for i, image in enumerate(self.split_image_filenames_including_loops): + for i, image in enumerate(self.split_images): current_group.append(i) - flags = split_parser.flags_from_filename(image) - if flags & DUMMY_FLAG != DUMMY_FLAG and i < len(self.split_image_filenames_including_loops) - 1: + if not image.check_flag(DUMMY_FLAG) and i < len(self.split_images) - 1: current_group = [] self.split_groups.append(current_group) - -# endregion - self.gui_changes_on_start() # Initialize a few attributes @@ -736,11 +568,8 @@ def auto_splitter(self): self.waiting_for_split_delay = False self.split_below_threshold = False split_time = 0 - number_of_split_images = len(self.split_image_filenames_including_loops) - dummy_splits_array = [ - split_parser.flags_from_filename(image) & DUMMY_FLAG == DUMMY_FLAG - for image - in self.split_image_filenames_including_loops] + number_of_split_images = len(self.split_images_and_loop_number) + dummy_splits_array = [image.check_flag(DUMMY_FLAG) for image in self.split_images] self.run_start_time = time() window_text = win32gui.GetWindowText(self.hwnd) @@ -754,7 +583,7 @@ def auto_splitter(self): QApplication.processEvents() continue - self.update_split_image() + self.__update_split_image() # second while loop: stays in this loop until similarity threshold is met # skip loop if we just finished waiting for the split delay and need to press the split key! @@ -764,52 +593,35 @@ def auto_splitter(self): if not window_text: self.reset() - if self.check_for_reset(): + if self.__check_for_reset(): return # calculate similarity for reset image - capture = self.get_capture_for_comparison() - - if self.should_check_reset_image(): - reset_similarity = compare_image( - self.comparison_method_combobox.currentIndex(), - self.reset_image, - capture, - self.reset_mask) - if reset_similarity >= self.reset_image_threshold: - send_command(self, "reset") - self.reset() + capture = self.__get_capture_for_comparison() - if self.check_for_reset(): - return + _ = self.__reset_if_should(capture) - # TODO: Check is this actually still needed? - # get capture again if current and reset image have different mask flags - if self.image_has_transparency != (self.reset_mask is not None): - capture = self.get_capture_for_comparison() + if self.__check_for_reset(): + return # calculate similarity for split image - self.similarity = compare_image( - self.comparison_method_combobox.currentIndex(), - self.split_image, - capture, - self.image_mask) + self.similarity = self.split_image.compare_with_capture(self, capture) # show live similarity if the checkbox is checked - if self.show_live_similarity_checkbox.isChecked(): - self.live_similarity_label.setText(str(self.similarity)[:4]) - else: - self.live_similarity_label.setText(" ") + self.live_similarity_label.setText( + str(self.similarity)[:4] + if self.show_live_similarity_checkbox.isChecked() + else " ") # if the similarity becomes higher than highest similarity, set it as such. if self.similarity > self.highest_similarity: self.highest_similarity = self.similarity # show live highest similarity if the checkbox is checked - if self.show_highest_similarity_checkbox.isChecked(): - self.highest_similarity_label.setText(str(self.highest_similarity)[:4]) - else: - self.highest_similarity_label.setText(" ") + self.highest_similarity_label.setText( + str(self.highest_similarity)[:4] + if self.show_highest_similarity_checkbox.isChecked() + else " ") if not self.is_auto_controlled: # if its the last split image or can't skip due to grouped dummy splits, disable skip split button @@ -825,28 +637,27 @@ def auto_splitter(self): # then split on similarity below threshold. # if no b flag, just split when similarity goes above threshold. if not self.waiting_for_split_delay: - if self.flags & BELOW_FLAG == BELOW_FLAG: - if self.split_below_threshold: - if self.similarity < self.similarity_threshold: - self.split_below_threshold = False - break - elif self.similarity >= self.similarity_threshold: + if self.similarity >= self.split_image.get_similarity_threshold(self): + if not self.split_image.check_flag(BELOW_FLAG): + break + if not self.split_below_threshold: self.split_below_threshold = True continue - elif self.similarity >= self.similarity_threshold: + elif self.split_image.check_flag(BELOW_FLAG) and self.split_below_threshold: + self.split_below_threshold = False break # limit the number of time the comparison runs to reduce cpu usage - frame_interval = 1 / self.fps_limit_spinbox.value() + frame_interval: float = 1 / self.fps_limit_spinbox.value() # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(frame_interval - (time() - start) % frame_interval) # type: ignore + QtTest.QTest.qWait(int(frame_interval - (time() - start) % frame_interval)) # type: ignore QApplication.processEvents() # comes here when threshold gets met # We need to make sure that this isn't a dummy split before sending # the key press. - if self.flags & DUMMY_FLAG != DUMMY_FLAG: + if not self.split_image.check_flag(DUMMY_FLAG): # If it's a delayed split, check if the delay has passed # Otherwise calculate the split time for the key press if self.split_delay > 0 and not self.waiting_for_split_delay: @@ -865,29 +676,20 @@ def auto_splitter(self): # check for reset if not window_text: self.reset() - if self.check_for_reset(): + if self.__check_for_reset(): return # calculate similarity for reset image - if self.should_check_reset_image(): - capture = self.get_capture_for_comparison() - - reset_similarity = compare_image( - self.comparison_method_combobox.currentIndex(), - self.reset_image, - capture, - self.reset_mask) - if reset_similarity >= self.reset_image_threshold: - send_command(self, "reset") - self.reset() - continue + capture = self.__get_capture_for_comparison() + if self.__reset_if_should(capture): + continue # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore self.waiting_for_split_delay = False # if {p} flag hit pause key, otherwise hit split hotkey - send_command(self, "pause" if self.flags & PAUSE_FLAG == PAUSE_FLAG else "split") + send_command(self, "pause" if self.split_image.check_flag(PAUSE_FLAG) else "split") # if loop check box is checked and its the last split, go to first split. # else go to the next split image. @@ -916,18 +718,19 @@ def auto_splitter(self): # A pause loop to check if the user presses skip split, undo split, or reset here. # Also updates the current split image text, counting down the time until the next split image - if self.pause > 0: + pause_time = self.split_image.get_pause_time(self) + if pause_time > 0: self.current_split_image_file_label.setText(" ") self.image_loop_label.setText("Image Loop: -") pause_start_time = time() - while time() - pause_start_time < self.pause: - pause_time_left = round(self.pause - (time() - pause_start_time), 1) + while time() - pause_start_time < pause_time: + pause_time_left = round(pause_time - (time() - pause_start_time), 1) self.current_split_image.setText(f"None (Paused). {pause_time_left} sec remaining") # check for reset if not window_text: self.reset() - if self.check_for_reset(): + if self.__check_for_reset(): return # check for skip/undo split: @@ -935,18 +738,11 @@ def auto_splitter(self): break # calculate similarity for reset image - if self.should_check_reset_image(): - capture = self.get_capture_for_comparison() - - reset_similarity = compare_image( - self.comparison_method_combobox.currentIndex(), - self.reset_image, - capture, - self.reset_mask) - if reset_similarity >= self.reset_image_threshold: - send_command(self, "reset") - self.reset() - continue + capture = self.__get_capture_for_comparison() + if self.__reset_if_should(capture): + send_command(self, "reset") + self.reset() + continue # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore @@ -999,137 +795,58 @@ def gui_changes_on_reset(self): QApplication.processEvents() self.load_start_image(False, False) - def get_capture_for_comparison(self): - # grab screenshot of capture region + def __get_capture_for_comparison(self): + # Grab screenshot of capture region capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) - capture = cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - # convert to BGR - return cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) - - def should_check_reset_image(self): - return self.reset_image is not None and time() - self.run_start_time > self.reset_image_pause_time - - def find_reset_image(self): - self.reset_image = None - self.reset_mask = None - - reset_image_file = None - for image in self.split_image_filenames: - if split_parser.is_reset_image(image): - reset_image_file = image - break - - if reset_image_file is None: - return + return cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - self.split_image_filenames.remove(reset_image_file) - - # create reset image and keep in memory - path = os.path.join(self.split_image_directory, reset_image_file) + def __reset_if_should(self, capture: cv2.ndarray): + """ + Check if we should reset, resets if it's the case, and returns the result + """ + if not self.reset_image: + return False - # Override values if they have been specified on the file - pause_from_filename = split_parser.pause_from_filename(reset_image_file) - self.reset_image_pause_time = self.pause_spinbox.value() \ - if pause_from_filename is None \ - else pause_from_filename - threshold_from_filename = split_parser.threshold_from_filename(reset_image_file) - self.reset_image_threshold = self.similarity_threshold_spinbox.value() \ - if threshold_from_filename is None \ - else threshold_from_filename + reset_similarity = self.reset_image.compare_with_capture(self, capture) + should_reset = reset_similarity >= self.reset_image.get_similarity_threshold(self) \ + and time() - self.run_start_time > self.reset_image.get_pause_time(self) - self.reset_image = cv2.imread(path, cv2.IMREAD_UNCHANGED) - if self.reset_image is None: - error_messages.image_type(path) - return - # if image has transparency, create a mask - if check_if_image_has_transparency(self.reset_image): - self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - # Create mask based on resized, nearest neighbor interpolated split image - lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") - self.reset_mask = cv2.inRange(self.reset_image, lower, upper) - - # set split image as BGR - self.reset_image = cv2.cvtColor(self.reset_image, cv2.COLOR_BGRA2BGR) - - # otherwise, open image normally. - else: - self.reset_image = cv2.imread(path, cv2.IMREAD_COLOR) - self.reset_image = cv2.resize(self.reset_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) + if should_reset: + send_command(self, "reset") + self.reset() + return should_reset - def update_split_image(self, custom_image_file: str = "", from_start_image: bool = False): + def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None, from_start_image: bool = False): # Splitting/skipping when there are no images left or Undoing past the first image # Start image is expected to be out of range (index 0 of 0-length array) - if "START_AUTO_SPLITTER" not in custom_image_file.upper() and self.is_current_split_out_of_range(): + if (not specific_image or specific_image.image_type != ImageType.START) \ + and self.__is_current_split_out_of_range(): self.reset() return - # get split image path - split_image_file = custom_image_file or self.split_image_filenames_including_loops[0 + self.split_image_number] - self.split_image_path = os.path.join(self.split_image_directory, split_image_file) - - # get flags - self.flags = split_parser.flags_from_filename(split_image_file) - - self.split_image = cv2.imread(self.split_image_path, cv2.IMREAD_UNCHANGED) - if self.split_image is None: - error_messages.image_type(self.split_image_path) - return - self.image_has_transparency = check_if_image_has_transparency(self.split_image) - # if image has transparency, create a mask - if self.image_has_transparency: - split_image_display = copy(self.split_image) - # Transform transparency into UI's gray BG color - transparent_mask = split_image_display[:, :, 3] == 0 - split_image_display[transparent_mask] = [240, 240, 240, MAXBYTE] - split_image_display = cv2.cvtColor(split_image_display, cv2.COLOR_BGRA2RGB) - - self.split_image = cv2.resize(self.split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - # Create mask based on resized, nearest neighbor interpolated split image - lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") - self.image_mask = cv2.inRange(self.split_image, lower, upper) - - # set split image as BGR - self.split_image = cv2.cvtColor(self.split_image, cv2.COLOR_BGRA2BGR) - - # otherwise, open image normally. - else: - self.split_image = cv2.imread(self.split_image_path, cv2.IMREAD_COLOR) - split_image_display = cv2.cvtColor(copy(self.split_image), cv2.COLOR_BGR2RGB) - self.split_image = cv2.resize(self.split_image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - self.image_mask = None - - split_image_display = cv2.resize(split_image_display, DISPLAY_RESIZE) - # Set current split image in UI - qimage = QtGui.QImage(cast(bytes, split_image_display), - split_image_display.shape[1], - split_image_display.shape[0], - split_image_display.shape[1] * 3, - QtGui.QImage.Format.Format_RGB888) - self.update_current_split_image.emit(qimage) - self.current_split_image_file_label.setText(split_image_file) - - # Override values if they have been specified on the file - pause_from_filename = split_parser.pause_from_filename(split_image_file) - self.pause = self.pause_spinbox.value() \ - if pause_from_filename is None \ - else pause_from_filename - threshold_from_filename = split_parser.threshold_from_filename(split_image_file) - self.similarity_threshold = self.similarity_threshold_spinbox.value() \ - if threshold_from_filename is None \ - else threshold_from_filename - self.current_similarity_threshold_number_label.setText(f"{self.similarity_threshold:.2f}") - - # Get delay for split, if any - self.split_delay = split_parser.delay_from_filename(split_image_file) + # Get split image + self.split_image = specific_image or self.split_images_and_loop_number[0 + self.split_image_number][0] + if self.split_image.bytes is not None: + # Set current split image in UI + split_image_display = cv2.cvtColor(self.split_image.bytes, cv2.COLOR_BGRA2RGBA) + qimage = QtGui.QImage(split_image_display.data, + split_image_display.shape[1], + split_image_display.shape[0], + split_image_display.shape[1] * split_image_display.shape[2], + QtGui.QImage.Format.Format_RGBA8888) + self.current_split_image.setPixmap(QtGui.QPixmap(qimage).scaled( + self.current_split_image.size(), + QtCore.Qt.AspectRatioMode.IgnoreAspectRatio)) + + self.current_split_image_file_label.setText(self.split_image.filename) + self.current_similarity_threshold_number_label.setText(f"{self.split_image.get_similarity_threshold(self):.2f}") # Set Image Loop # if not from_start_image: - loop_tuple = self.split_image_filenames_and_loop_number[self.split_image_number] - self.image_loop_label.setText(f"Image Loop: {loop_tuple[1]}/{loop_tuple[2]}") + loop_tuple = self.split_images_and_loop_number[self.split_image_number] + self.image_loop_label.setText(f"Image Loop: {loop_tuple[1]}/{loop_tuple[0].loops}") else: - self.image_loop_label.setText("Image Loop: 1/1") + self.image_loop_label.setText("Image Loop: N/A") # need to set split below threshold to false each time an image updates. self.split_below_threshold = False diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py new file mode 100644 index 00000000..bb066537 --- /dev/null +++ b/src/AutoSplitImage.py @@ -0,0 +1,126 @@ +from __future__ import annotations + +from enum import Enum +import os +from typing import Optional, Union, TYPE_CHECKING +if TYPE_CHECKING: + from AutoSplit import AutoSplit + +import cv2 +import numpy as np +from win32con import MAXBYTE +import error_messages +from compare import check_if_image_has_transparency, compare_histograms, compare_l2_norm, compare_phash + + +# Resize to these width and height so that FPS performance increases +COMPARISON_RESIZE_WIDTH = 320 +COMPARISON_RESIZE_HEIGHT = 240 +COMPARISON_RESIZE = (COMPARISON_RESIZE_WIDTH, COMPARISON_RESIZE_HEIGHT) + + +class ImageType(Enum): + SPLIT = 0 + RESET = 1 + START = 2 + + +class AutoSplitImage(): + path: str + filename: str + flags: int + loops: int + delay: float + image_type: ImageType + bytes: Optional[cv2.ndarray] = None + mask: Optional[cv2.ndarray] = None + # This value is internal, check for mask instead + _has_transparency: bool + # These values should be overriden by defaults if null, use getters instead + __pause_time: Optional[float] = None + __similarity_threshold: Optional[float] = None + + def get_pause_time(self, default: Union[AutoSplit, float]): + """ + Get image's pause time or fallback to the default value from spinbox + """ + default_value: float = default \ + if isinstance(default, float) \ + else default.pause_spinbox.value() + return default_value if self.__pause_time is None else self.__pause_time + + def get_similarity_threshold(self, default: Union[AutoSplit, float]): + """ + Get image's similarity threashold or fallback to the default value from spinbox + """ + default_value: float = default \ + if isinstance(default, float) \ + else default.similarity_threshold_spinbox.value() + return default_value if self.__similarity_threshold is None else self.__similarity_threshold + + def __init__(self, path: str): + self.path = path + self.filename = os.path.split(path)[-1].lower() + self.flags = flags_from_filename(self.filename) + self.loops = loop_from_filename(self.filename) + self.delay = delay_from_filename(self.filename) + self._pause_time = pause_from_filename(self.filename) + self.__similarity_threshold = threshold_from_filename(self.filename) + self.__read_image_bytes(path) + + if "start_auto_splitter" in self.filename: + self.image_type = ImageType.START + elif "reset" in self.filename: + self.image_type = ImageType.RESET + else: + self.image_type = ImageType.SPLIT + + def __read_image_bytes(self, path: str): + image = cv2.imread(path, cv2.IMREAD_UNCHANGED) + if image is None: + self.bytes = None + error_messages.image_type(path) + return + + image = cv2.resize(image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) + self._has_transparency = check_if_image_has_transparency(image) + # If image has transparency, create a mask + if self._has_transparency: + # Create mask based on resized, nearest neighbor interpolated split image + lower = np.array([0, 0, 0, 1], dtype="uint8") + upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") + self.mask = cv2.inRange(image, lower, upper) + # Add Alpha channel if missing + elif image.shape[2] == 3: + image = cv2.cvtColor(image, cv2.COLOR_BGR2BGRA) + + self.bytes = image + + def check_flag(self, flag: int): + return self.flags & flag == flag + + def compare_with_capture( + self, + comparison: Union[AutoSplit, int], + capture: Optional[cv2.ndarray] + ): + """ + Compare image with capture using comparison method from combobox + """ + comparison_method: int = comparison \ + if isinstance(comparison, int) \ + else comparison.comparison_method_combobox.currentIndex() + + if self.bytes is None or capture is None: + return 0.0 + if comparison_method == 0: + return compare_l2_norm(self.bytes, capture, self.mask) + if comparison_method == 1: + return compare_histograms(self.bytes, capture, self.mask) + if comparison_method == 2: + return compare_phash(self.bytes, capture, self.mask) + return 0.0 + + +from split_parser import delay_from_filename, flags_from_filename, loop_from_filename, pause_from_filename, \ + threshold_from_filename diff --git a/src/capture_windows.py b/src/capture_windows.py index 605f964f..1da044ae 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -47,16 +47,16 @@ def capture_region(hwnd: int, selection: Rect, force_print_window: bool): # The window type is not yet known, let's find out! if is_accelerated_window is None: # We need to get the image at least once to check if it's full black - image = __get_image(hwnd, selection, False) + image = __get_capture_image(hwnd, selection, False) # TODO check for first non-black pixel, no need to iterate through the whole image is_accelerated_window = not np.count_nonzero(image) accelerated_windows[hwnd] = is_accelerated_window - return __get_image(hwnd, selection, True) if is_accelerated_window else image + return __get_capture_image(hwnd, selection, True) if is_accelerated_window else image - return __get_image(hwnd, selection, is_accelerated_window) + return __get_capture_image(hwnd, selection, is_accelerated_window) -def __get_image(hwnd: int, selection: Rect, print_window: bool = False): +def __get_capture_image(hwnd: int, selection: Rect, print_window: bool = False): width: int = selection.right - selection.left height: int = selection.bottom - selection.top # If the window closes while it's being manipulated, it could cause a crash diff --git a/src/compare.py b/src/compare.py index cb422108..9a5a9e1c 100644 --- a/src/compare.py +++ b/src/compare.py @@ -12,24 +12,7 @@ ranges = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] -def compare_image( - comparison_method: int, - image: Optional[cv2.ndarray], - capture: Optional[cv2.ndarray], - mask: Optional[cv2.ndarray] = None -): - if image is None or capture is None: - return 0.0 - if comparison_method == 0: - return compare_l2_norm(image, capture, mask) - if comparison_method == 1: - return compare_histograms(image, capture, mask) - if comparison_method == 2: - return compare_phash(image, capture, mask) - return 0.0 - - -def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: +def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): """ Compares two images by calculating their histograms, normalizing them, and then comparing them using Bhattacharyya distance. @@ -67,11 +50,11 @@ def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv else (3 * np.count_nonzero(mask) * MAXBYTE * MAXBYTE) ** 0.5 if not max_error: - return 0 + return 0.0 return 1 - (error / max_error) -def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: +def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): """ Checks if the source is located within the capture by using the sum of square differences. The mask is used to search for non-rectangular images within the capture @@ -95,7 +78,7 @@ def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[c return 1 - (min_val / max_error) -def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None) -> float: +def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): """ Compares the pHash of the two given images and returns the similarity between the two. @@ -110,7 +93,7 @@ def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2. # each of the images. As a result of this, this function is not going to be very # helpful for large masks as the images when shrinked down to 8x8 will mostly be # the same - if mask: + if mask is not None: source = cv2.bitwise_and(source, source, mask=mask) capture = cv2.bitwise_and(capture, capture, mask=mask) @@ -118,15 +101,15 @@ def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2. capture_hash = imagehash.phash(Image.fromarray(capture)) hash_diff = source_hash - capture_hash if not hash_diff: - return 0 + return 0.0 return 1 - (hash_diff / 64.0) -def check_if_image_has_transparency(image: cv2.ndarray) -> bool: +def check_if_image_has_transparency(image: cv2.ndarray): # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) if image.shape[2] != 4: return False - mean = np.mean(image[:, :, 3]) + mean: float = np.mean(image[:, :, 3]) if mean == 0: # Non-transparent images code path is usually faster and simpler, so let's return that return False diff --git a/src/gen/about.pyi b/src/gen/about.pyi deleted file mode 100644 index 703befdf..00000000 --- a/src/gen/about.pyi +++ /dev/null @@ -1,6 +0,0 @@ -from PyQt6.QtWidgets import QWidget - - -class Ui_AboutAutoSplitWidget(): - def setupUi(self, AboutAutoSplitWidget: QWidget) -> None: - ... diff --git a/src/gen/design.pyi b/src/gen/design.pyi deleted file mode 100644 index f927169b..00000000 --- a/src/gen/design.pyi +++ /dev/null @@ -1,9 +0,0 @@ -from PyQt6.QtGui import QAction -from PyQt6.QtWidgets import QMainWindow - - -class Ui_MainWindow(): - action_check_for_updates_on_open: QAction - - def setupUi(self, MainWindow: QMainWindow) -> None: - ... diff --git a/src/gen/update_checker.pyi b/src/gen/update_checker.pyi deleted file mode 100644 index 027afe46..00000000 --- a/src/gen/update_checker.pyi +++ /dev/null @@ -1,6 +0,0 @@ -from PyQt6.QtWidgets import QWidget - - -class Ui_UpdateChecker(): - def setupUi(self, UpdateChecker: QWidget) -> None: - ... diff --git a/src/hotkeys.py b/src/hotkeys.py index 6ab0362d..e3d60553 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -63,8 +63,18 @@ def send_command(autosplit: AutoSplit, command: str): raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") -# Supports sending the appropriate scan code for all the special cases +def _unhook(hotkey: Optional[Callable[[], None]]): + try: + if hotkey: + keyboard.unhook_key(hotkey) + except (AttributeError, KeyError, ValueError): + pass + + def _send_hotkey(key_or_scan_code: Union[int, str]): + """ + Supports sending the appropriate scan code for all the special cases + """ if not key_or_scan_code: return @@ -130,7 +140,7 @@ def __is_key_already_set(autosplit: AutoSplit, key_name: str): # --------------------HOTKEYS-------------------------- # TODO: Refactor to de-duplicate all this code, including settings_file.py # Going to comment on one func, and others will be similar. -def set_split_hotkey(autosplit: AutoSplit): +def set_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): autosplit.set_split_hotkey_button.setText(PRESS_A_KEY_TEXT) # disable some buttons @@ -138,22 +148,10 @@ def set_split_hotkey(autosplit: AutoSplit): # new thread points to callback. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey - def callback(hotkey: Callable[[], None]): - # try to remove the previously set hotkey if there is one. - try: - keyboard.unhook_key(hotkey) - # KeyError was coming up when loading the program and - # the lineEdit area was empty (no hotkey set), then you - # set one, reload the setting once back to blank works, - # but if you click reload settings again, it errors - # we can just have it pass, but don'thread want to throw in - # generic exception here in case another one of these - # pops up somewhere. - except (AttributeError, KeyError): - pass - + def callback(): + # use the selected key OR # wait until user presses the hotkey, then keyboard module reads the input - key_name = __get_key_name(keyboard.read_event(True)) + key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) try: # If the key the user presses is equal to itself or another hotkey already set, # this causes issues. so here, it catches that, and will make no changes to the hotkey. @@ -181,26 +179,22 @@ def callback(hotkey: Callable[[], None]): # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 autosplit.split_hotkey = keyboard.hook_key( key_name, - lambda error: _hotkey_action(error, key_name, autosplit.start_suto_splitter)) + lambda error: _hotkey_action(error, key_name, autosplit.start_auto_splitter)) autosplit.split_input.setText(key_name) - autosplit.split_key = key_name autosplit.after_setting_hotkey_signal.emit() - thread = threading.Thread(target=callback, args=(autosplit.split_hotkey,)) + # try to remove the previously set hotkey if there is one. + _unhook(autosplit.split_hotkey) + thread = threading.Thread(target=callback) thread.start() -def set_reset_hotkey(autosplit: AutoSplit): +def set_reset_hotkey(autosplit: AutoSplit, preselected_key: str = ""): autosplit.set_reset_hotkey_button.setText(PRESS_A_KEY_TEXT) before_setting_hotkey(autosplit) - def callback(hotkey: Callable[[], None]): - try: - keyboard.unhook_key(hotkey) - except (AttributeError, KeyError): - pass - - key_name = __get_key_name(keyboard.read_event(True)) + def callback(): + key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) try: if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): @@ -212,26 +206,21 @@ def callback(hotkey: Callable[[], None]): autosplit.reset_hotkey = keyboard.hook_key( key_name, - lambda error: _hotkey_action(error, key_name, autosplit.start_reset)) + lambda error: _hotkey_action(error, key_name, autosplit.reset_signal.emit)) autosplit.reset_input.setText(key_name) - autosplit.reset_key = key_name autosplit.after_setting_hotkey_signal.emit() - thread = threading.Thread(target=callback, args=(autosplit.reset_hotkey,)) + _unhook(autosplit.reset_hotkey) + thread = threading.Thread(target=callback) thread.start() -def set_skip_split_hotkey(autosplit: AutoSplit): +def set_skip_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): autosplit.set_skip_split_hotkey_button.setText(PRESS_A_KEY_TEXT) before_setting_hotkey(autosplit) - def callback(hotkey: Callable[[], None]): - try: - keyboard.unhook_key(hotkey) - except (AttributeError, KeyError): - pass - - key_name = __get_key_name(keyboard.read_event(True)) + def callback(): + key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) try: if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): @@ -243,26 +232,21 @@ def callback(hotkey: Callable[[], None]): autosplit.skip_split_hotkey = keyboard.hook_key( key_name, - lambda error: _hotkey_action(error, key_name, autosplit.start_skip_split)) + lambda error: _hotkey_action(error, key_name, autosplit.skip_split_signal.emit)) autosplit.skip_split_input.setText(key_name) - autosplit.skip_split_key = key_name autosplit.after_setting_hotkey_signal.emit() - thread = threading.Thread(target=callback, args=(autosplit.skip_split_hotkey,)) + _unhook(autosplit.skip_split_hotkey) + thread = threading.Thread(target=callback) thread.start() -def set_undo_split_hotkey(autosplit: AutoSplit): +def set_undo_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): autosplit.set_undo_split_hotkey_button.setText(PRESS_A_KEY_TEXT) before_setting_hotkey(autosplit) - def callback(hotkey: Callable[[], None]): - try: - keyboard.unhook_key(hotkey) - except (AttributeError, KeyError): - pass - - key_name = __get_key_name(keyboard.read_event(True)) + def callback(): + key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) try: if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): @@ -274,26 +258,21 @@ def callback(hotkey: Callable[[], None]): autosplit.undo_split_hotkey = keyboard.hook_key( key_name, - lambda error: _hotkey_action(error, key_name, autosplit.start_undo_split)) + lambda error: _hotkey_action(error, key_name, autosplit.undo_split_signal.emit)) autosplit.undo_split_input.setText(key_name) - autosplit.undo_split_key = key_name autosplit.after_setting_hotkey_signal.emit() - thread = threading.Thread(target=callback, args=(autosplit.undo_split_hotkey,)) + _unhook(autosplit.undo_split_hotkey) + thread = threading.Thread(target=callback) thread.start() -def set_pause_hotkey(autosplit: AutoSplit): +def set_pause_hotkey(autosplit: AutoSplit, preselected_key: str = ""): autosplit.set_pause_hotkey_button.setText(PRESS_A_KEY_TEXT) before_setting_hotkey(autosplit) - def callback(hotkey: Callable[[], None]): - try: - keyboard.unhook_key(hotkey) - except (AttributeError, KeyError): - pass - - key_name = __get_key_name(keyboard.read_event(True)) + def callback(): + key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) try: if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): @@ -305,10 +284,10 @@ def callback(hotkey: Callable[[], None]): autosplit.pause_hotkey = keyboard.hook_key( key_name, - lambda error: _hotkey_action(error, key_name, autosplit.start_pause)) + lambda error: _hotkey_action(error, key_name, autosplit.pause_signal.emit)) autosplit.pause_hotkey_input.setText(key_name) - autosplit.undo_split_key = key_name autosplit.after_setting_hotkey_signal.emit() - thread = threading.Thread(target=callback, args=(autosplit.pause_hotkey,)) + _unhook(autosplit.pause_hotkey) + thread = threading.Thread(target=callback) thread.start() diff --git a/src/screen_region.py b/src/screen_region.py index d208ac12..e2492a62 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -41,10 +41,6 @@ def select_region(autosplit: AutoSplit): while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - window_text = win32gui.GetWindowText(autosplit.hwnd) - if autosplit.hwnd > 0 or window_text: - autosplit.hwnd_title = window_text - # Convert the Desktop Coordinates to Window Coordinates # Pull the window's coordinates relative to desktop into selection ctypes.windll.dwmapi.DwmGetWindowAttribute( @@ -102,10 +98,6 @@ def select_window(autosplit: AutoSplit): while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - window_text = win32gui.GetWindowText(autosplit.hwnd) - if autosplit.hwnd > 0 or window_text: - autosplit.hwnd_title = window_text - # getting window bounds # on windows there are some invisble pixels that are not accounted for # also the top bar with the window name is not accounted for @@ -155,7 +147,6 @@ def align_region(autosplit: AutoSplit): autosplit.hwnd, autosplit.selection, autosplit.force_print_window_checkbox.isChecked()) - capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) # Obtain the best matching point for the template within the # capture. This assumes that the template is actually smaller @@ -213,7 +204,7 @@ def align_region(autosplit: AutoSplit): autosplit.height_spinbox.setValue(best_height) -def validate_before_comparison(autosplit: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): +def validate_before_parsing(autosplit: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): error = None if not autosplit.split_image_directory: error = error_messages.split_image_directory diff --git a/src/settings_file.py b/src/settings_file.py index a8e8bcbe..8879377d 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,5 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Literal, cast +from typing import TYPE_CHECKING, Any + if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -12,8 +13,7 @@ import error_messages from gen import design -# TODO with settings refactoring -from hotkeys import _hotkey_action # type: ignore +from hotkeys import set_pause_hotkey, set_reset_hotkey, set_skip_split_hotkey, set_split_hotkey, set_undo_split_hotkey # Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller FROZEN = hasattr(sys, "frozen") @@ -30,7 +30,7 @@ def find_class(self, module: str, name: str): def load_pyqt_settings(autosplit: AutoSplit): # These are only global settings values. They are not *pkl settings values. - autosplit.get_global_settings_values() + autosplit.setting_check_for_updates_on_open = QtCore.QSettings("AutoSplit", "Check For Updates On Open") check_for_updates_on_open = autosplit.setting_check_for_updates_on_open.value( "check_for_updates_on_open", True, @@ -39,85 +39,42 @@ def load_pyqt_settings(autosplit: AutoSplit): def get_save_settings_values(autosplit: AutoSplit): - # get values to be able to save settings - autosplit.similarity_threshold = autosplit.similarity_threshold_spinbox.value() - autosplit.comparison_index = autosplit.comparison_method_combobox.currentIndex() - autosplit.pause = autosplit.pause_spinbox.value() - autosplit.fps_limit = int(autosplit.fps_limit_spinbox.value()) - autosplit.split_key = autosplit.split_input.text() - autosplit.reset_key = autosplit.reset_input.text() - autosplit.skip_split_key = autosplit.skip_split_input.text() - autosplit.undo_split_key = autosplit.undo_split_input.text() - autosplit.pause_key = autosplit.pause_hotkey_input.text() - autosplit.group_dummy_splits_undo_skip_setting = cast( - Literal[0, 1], - int(autosplit.group_dummy_splits_checkbox.isChecked())) - autosplit.loop_setting = cast( - Literal[0, 1], - int(autosplit.loop_checkbox.isChecked())) - autosplit.auto_start_on_reset_setting = cast( - Literal[0, 1], - int(autosplit.auto_start_on_reset_checkbox.isChecked())) - - -def have_settings_changed(autosplit: AutoSplit): - get_save_settings_values(autosplit) - current_save_settings = [ + return [ autosplit.split_image_directory, - autosplit.similarity_threshold, - autosplit.comparison_index, - autosplit.pause, - autosplit.fps_limit, - autosplit.split_key, - autosplit.reset_key, - autosplit.skip_split_key, - autosplit.undo_split_key, - autosplit.pause_key, + autosplit.similarity_threshold_spinbox.value(), + autosplit.comparison_method_combobox.currentIndex(), + autosplit.pause_spinbox.value(), + int(autosplit.fps_limit_spinbox.value()), + autosplit.split_input.text(), + autosplit.reset_input.text(), + autosplit.skip_split_input.text(), + autosplit.undo_split_input.text(), + autosplit.pause_hotkey_input.text(), autosplit.x_spinbox.value(), autosplit.y_spinbox.value(), autosplit.width_spinbox.value(), autosplit.height_spinbox.value(), - autosplit.hwnd_title, + win32gui.GetWindowText(autosplit.hwnd), 0, 0, - autosplit.group_dummy_splits_undo_skip_setting, - autosplit.loop_setting, - autosplit.auto_start_on_reset_setting, + int(autosplit.group_dummy_splits_checkbox.isChecked()), + int(autosplit.loop_checkbox.isChecked()), + int(autosplit.auto_start_on_reset_checkbox.isChecked()), autosplit.force_print_window_checkbox.isChecked()] + +def have_settings_changed(autosplit: AutoSplit): # One small caveat in this: if you load a settings file from an old version, but dont change settings, # the current save settings and last load settings will have different # of elements and it will ask # the user to save changes upon closing even though there were none - return current_save_settings not in (autosplit.last_loaded_settings, autosplit.last_saved_settings) + return get_save_settings_values(autosplit) not in (autosplit.last_loaded_settings, autosplit.last_saved_settings) def save_settings(autosplit: AutoSplit): if not autosplit.last_successfully_loaded_settings_file_path: save_settings_as(autosplit) else: - get_save_settings_values(autosplit) - autosplit.last_saved_settings = [ - autosplit.split_image_directory, - autosplit.similarity_threshold, - autosplit.comparison_index, - autosplit.pause, - autosplit.fps_limit, - autosplit.split_key, - autosplit.reset_key, - autosplit.skip_split_key, - autosplit.undo_split_key, - autosplit.pause_key, - autosplit.x_spinbox.value(), - autosplit.y_spinbox.value(), - autosplit.width_spinbox.value(), - autosplit.height_spinbox.value(), - autosplit.hwnd_title, - 0, - 0, - autosplit.group_dummy_splits_undo_skip_setting, - autosplit.loop_setting, - autosplit.auto_start_on_reset_setting, - autosplit.force_print_window_checkbox.isChecked()] + autosplit.last_saved_settings = get_save_settings_values(autosplit) # save settings to a .pkl file with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as file: pickle.dump(autosplit.last_saved_settings, file) @@ -135,29 +92,7 @@ def save_settings_as(autosplit: AutoSplit): if not autosplit.save_settings_file_path: return - get_save_settings_values(autosplit) - autosplit.last_saved_settings = [ - autosplit.split_image_directory, - autosplit.similarity_threshold, - autosplit.comparison_index, - autosplit.pause, - autosplit.fps_limit, - autosplit.split_key, - autosplit.reset_key, - autosplit.skip_split_key, - autosplit.undo_split_key, - autosplit.pause_key, - autosplit.x_spinbox.value(), - autosplit.y_spinbox.value(), - autosplit.width_spinbox.value(), - autosplit.height_spinbox.value(), - autosplit.hwnd_title, - 0, - 0, - autosplit.group_dummy_splits_undo_skip_setting, - autosplit.loop_setting, - autosplit.auto_start_on_reset_setting, - autosplit.force_print_window_checkbox.isChecked()] + autosplit.last_saved_settings = get_save_settings_values(autosplit) # save settings to a .pkl file with open(autosplit.save_settings_file_path, "wb") as file: @@ -168,10 +103,66 @@ def save_settings_as(autosplit: AutoSplit): autosplit.last_successfully_loaded_settings_file_path = autosplit.save_settings_file_path +def __load_settings_from_file(autosplit: AutoSplit): + try: + with open(autosplit.load_settings_file_path, "rb") as file: + settings: list[Any] = RestrictedUnpickler(file).load() + settings_count = len(settings) + if settings_count < 18: + autosplit.show_error_signal.emit(error_messages.old_version_settings_file) + return + # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting + if settings_count == 18: + settings.insert(9, "") + settings.insert(20, 0) + # v1.5 settings + if settings_count == 20: + settings.insert(21, False) + # v1.6.X settings + elif settings_count != 21: + autosplit.show_error_signal.emit(error_messages.invalid_settings) + return + autosplit.last_loaded_settings = settings + except (FileNotFoundError, MemoryError, pickle.UnpicklingError): + autosplit.show_error_signal.emit(error_messages.invalid_settings) + return + + autosplit.split_image_directory = settings[0] + autosplit.split_image_folder_input.setText(settings[0]) + autosplit.similarity_threshold_spinbox.setValue(settings[1]) + autosplit.comparison_method_combobox.setCurrentIndex(settings[2]) + autosplit.pause_spinbox.setValue(settings[3]) + autosplit.fps_limit_spinbox.setValue(settings[4]) + autosplit.split_input.setText(settings[5]) + autosplit.reset_input.setText(settings[6]) + autosplit.skip_split_input.setText(settings[7]) + autosplit.undo_split_input.setText(settings[8]) + autosplit.pause_hotkey_input.setText(settings[9]) + autosplit.x_spinbox.setValue(settings[10]) + autosplit.y_spinbox.setValue(settings[11]) + autosplit.width_spinbox.setValue(settings[12]) + autosplit.height_spinbox.setValue(settings[13]) + # https://github.com/kaluluosi/pywin32-stubs/issues/7 + autosplit.hwnd = win32gui.FindWindow(None, settings[14]) # type: ignore + autosplit.group_dummy_splits_checkbox.setChecked(bool(settings[17])) + autosplit.loop_checkbox.setChecked(bool(settings[18])) + autosplit.auto_start_on_reset_checkbox.setChecked(bool(settings[19])) + autosplit.force_print_window_checkbox.setChecked(settings[20]) + + keyboard.unhook_all() + if not autosplit.is_auto_controlled: + set_split_hotkey(autosplit, settings[5]) + set_reset_hotkey(autosplit, settings[6]) + set_skip_split_hotkey(autosplit, settings[7]) + set_undo_split_hotkey(autosplit, settings[8]) + set_pause_hotkey(autosplit, settings[9]) + + def load_settings( - autosplit: AutoSplit, - load_settings_on_open: bool = False, - load_settings_from_livesplit: bool = False): + autosplit: AutoSplit, + load_settings_on_open: bool = False, + load_settings_from_livesplit: bool = False +): if load_settings_on_open: settings_files = [ file for file @@ -181,146 +172,24 @@ def load_settings( # find all .pkls in AutoSplit folder, error if there is none or more than 1 if len(settings_files) < 1: error_messages.no_settings_file_on_open() - autosplit.last_loaded_settings = None + autosplit.last_loaded_settings = [] return if len(settings_files) > 1: error_messages.too_many_settings_files_on_open() - autosplit.last_loaded_settings = None + autosplit.last_loaded_settings = [] return autosplit.load_settings_file_path = os.path.join(auto_split_directory, settings_files[0]) elif not load_settings_on_open and not load_settings_from_livesplit: - autosplit.load_settings_file_path = QtWidgets.QFileDialog.getOpenFileName( autosplit, "Load Settings", os.path.join(auto_split_directory, "settings.pkl"), "PKL (*.pkl)")[0] - if not autosplit.load_settings_file_path: return - try: - with open(autosplit.load_settings_file_path, "rb") as file: - settings: list[Any] = RestrictedUnpickler(file).load() - settings_count = len(settings) - if settings_count < 18: - autosplit.show_error_signal.emit(error_messages.old_version_settings_file) - return - # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting - if settings_count == 18: - settings.insert(9, "") - settings.insert(20, 0) - # v1.5 settings - if settings_count == 20: - settings.insert(21, False) - # v1.6.X settings - elif settings_count != 21: - if not load_settings_from_livesplit: - autosplit.show_error_signal.emit(error_messages.invalid_settings) - return - autosplit.last_loaded_settings = [ - autosplit.split_image_directory, - autosplit.similarity_threshold, - autosplit.comparison_index, - autosplit.pause, - autosplit.fps_limit, - autosplit.split_key, - autosplit.reset_key, - autosplit.skip_split_key, - autosplit.undo_split_key, - autosplit.pause_key, - region_x, - region_y, - region_width, - region_height, - autosplit.hwnd_title, - _, - _, - autosplit.group_dummy_splits_undo_skip_setting, - autosplit.loop_setting, - autosplit.auto_start_on_reset_setting, - force_print_window_checkbox] = settings - - autosplit.force_print_window_checkbox.setChecked(force_print_window_checkbox) - except (FileNotFoundError, MemoryError, pickle.UnpicklingError): - autosplit.show_error_signal.emit(error_messages.invalid_settings) - return - - autosplit.split_image_folder_input.setText(autosplit.split_image_directory) - autosplit.similarity_threshold_spinbox.setValue(autosplit.similarity_threshold) - autosplit.pause_spinbox.setValue(autosplit.pause) - autosplit.fps_limit_spinbox.setValue(autosplit.fps_limit) - autosplit.x_spinbox.setValue(region_x) - autosplit.y_spinbox.setValue(region_y) - autosplit.width_spinbox.setValue(region_width) - autosplit.height_spinbox.setValue(region_height) - autosplit.comparison_method_combobox.setCurrentIndex(autosplit.comparison_index) - # https://github.com/kaluluosi/pywin32-stubs/issues/7 - autosplit.hwnd = win32gui.FindWindow(None, autosplit.hwnd_title) # type: ignore - - # set custom checkbox's accordingly - autosplit.group_dummy_splits_checkbox.setChecked(bool(autosplit.group_dummy_splits_undo_skip_setting)) - autosplit.loop_checkbox.setChecked(bool(autosplit.loop_setting)) - autosplit.auto_start_on_reset_checkbox.setChecked(bool(autosplit.auto_start_on_reset_setting)) - autosplit.auto_start_on_reset_checkbox.setChecked(bool(autosplit.auto_start_on_reset_setting)) - - # TODO: Reuse code from hotkeys rather than duplicating here - # try to set hotkeys from when user last closed the window - if autosplit.split_hotkey: - keyboard.unhook_key(autosplit.split_hotkey) - try: - autosplit.split_input.setText(autosplit.split_key) - if not autosplit.is_auto_controlled: - autosplit.split_hotkey = keyboard.hook_key( - autosplit.split_key, - lambda error: _hotkey_action(error, autosplit.split_key, autosplit.start_suto_splitter)) - except (ValueError, KeyError): - pass - - if autosplit.reset_hotkey: - keyboard.unhook_key(autosplit.reset_hotkey) - try: - autosplit.reset_input.setText(autosplit.reset_key) - if not autosplit.is_auto_controlled: - autosplit.reset_hotkey = keyboard.hook_key( - autosplit.reset_key, - lambda error: _hotkey_action(error, autosplit.reset_key, autosplit.start_reset)) - except (ValueError, KeyError): - pass - - if autosplit.skip_split_hotkey: - keyboard.unhook_key(autosplit.skip_split_hotkey) - try: - autosplit.skip_split_input.setText(autosplit.skip_split_key) - if not autosplit.is_auto_controlled: - autosplit.skip_split_hotkey = keyboard.hook_key( - autosplit.skip_split_key, - lambda error: _hotkey_action(error, autosplit.skip_split_key, autosplit.start_skip_split)) - except (ValueError, KeyError): - pass - - if autosplit.skip_split_hotkey: - keyboard.unhook_key(autosplit.skip_split_hotkey) - try: - autosplit.undo_split_input.setText(autosplit.undo_split_key) - if not autosplit.is_auto_controlled: - autosplit.undo_split_hotkey = keyboard.hook_key( - autosplit.undo_split_key, - lambda error: _hotkey_action(error, autosplit.undo_split_key, autosplit.start_undo_split)) - except (ValueError, KeyError): - pass - - if autosplit.pause_hotkey: - keyboard.unhook_key(autosplit.pause_hotkey) - try: - autosplit.pause_hotkey_input.setText(autosplit.pause_key) - if not autosplit.is_auto_controlled: - autosplit.pause_hotkey = keyboard.hook_key( - autosplit.pause_key, - lambda error: _hotkey_action(error, autosplit.pause_key, autosplit.start_pause)) - except (ValueError, KeyError): - pass + __load_settings_from_file(autosplit) autosplit.last_successfully_loaded_settings_file_path = autosplit.load_settings_file_path autosplit.check_live_image() diff --git a/src/split_parser.py b/src/split_parser.py index 2601befe..feca0803 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -4,9 +4,9 @@ from AutoSplit import AutoSplit import os -import cv2 import error_messages +from AutoSplitImage import AutoSplitImage, ImageType [DUMMY_FLAG, @@ -141,82 +141,57 @@ def flags_from_filename(filename: str): return flags -def is_reset_image(filename: str): - """ - Checks if the image is used for resetting - - @param filename: String containing the file's name - @return: True if its a reset image - """ - return "RESET" in filename.upper() +def __pop_image_type(split_image: list[AutoSplitImage], image_type: ImageType): + for image in split_image: + if image.image_type == image_type: + split_image.remove(image) + return image + return None -def is_start_auto_splitter_image(filename: str): - """ - Checks if the image is used to start AutoSplit - - @param filename: String containing the file's name - @return: True if its a reset image - """ - return "START_AUTO_SPLITTER" in filename.upper() +def parse_and_validate_images(autosplit: AutoSplit): + # Get split images + all_images = [ + AutoSplitImage(os.path.join(autosplit.split_image_directory, image_name)) + for image_name + in os.listdir(autosplit.split_image_directory)] -def remove_start_auto_splitter_image(split_image_filenames: list[str]): - start_auto_splitter_image_file = None - for image in split_image_filenames: - if is_start_auto_splitter_image(image): - start_auto_splitter_image_file = image - break + # Find non-split images and then remove them from the list + autosplit.start_image = __pop_image_type(all_images, ImageType.START) + autosplit.reset_image = __pop_image_type(all_images, ImageType.RESET) + autosplit.split_images = all_images - if start_auto_splitter_image_file is None: - return - - split_image_filenames.remove(start_auto_splitter_image_file) - - -# TODO: When split, reset and start image are all a proper class -# let's also extract reset and start from the list here and return them -def validate_images_before_parsing(autosplit: AutoSplit): - already_found_reset_image = False - already_found_start_image = False # Make sure that each of the images follows the guidelines for correct format # according to all of the settings selected by the user. - for image in autosplit.split_image_filenames: + for image in autosplit.split_images: # Test for image without transparency - if (cv2.imread(os.path.join(autosplit.split_image_directory, image), cv2.IMREAD_COLOR) is None - # Test for image with transparency - and cv2.imread(os.path.join(autosplit.split_image_directory, image), cv2.IMREAD_UNCHANGED) is None): - # Opencv couldn't open this file as an image, this isn't a correct - # file format that is supported + if image.bytes is None: autosplit.gui_changes_on_reset() - error_messages.image_type(image) - return + return False # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. if (not autosplit.pause_hotkey_input.text() - and flags_from_filename(image) & PAUSE_FLAG == PAUSE_FLAG + and image.check_flag(PAUSE_FLAG) and not autosplit.is_auto_controlled): autosplit.gui_changes_on_reset() error_messages.pause_hotkey() - return + return False # Check that there's only one reset image - if is_reset_image(image): + if image.image_type == ImageType.RESET: # If there is no reset hotkey set but a reset image is present, and is not auto controlled, throw an error. if not autosplit.reset_input.text() and not autosplit.is_auto_controlled: autosplit.gui_changes_on_reset() error_messages.reset_hotkey() - return - if already_found_reset_image: - autosplit.gui_changes_on_reset() - error_messages.multiple_keyword_images("reset") - return - already_found_reset_image = True + return False + autosplit.gui_changes_on_reset() + error_messages.multiple_keyword_images("reset") + return False - # Check that there's only one auto_start_autosplitter image - if is_start_auto_splitter_image(image): - if already_found_start_image: - autosplit.gui_changes_on_reset() - error_messages.multiple_keyword_images("start_auto_splitter") - return - already_found_start_image = True + # Check that there's only one start image + if image.image_type == ImageType.START: + autosplit.gui_changes_on_reset() + error_messages.multiple_keyword_images("start_auto_splitter") + return False + return True From e1e77ea2cbe52d761abcaa88727a83588e015d47 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 6 Dec 2021 03:42:27 -0500 Subject: [PATCH 14/54] Average FPS over all images with all actions --- res/design.ui | 8 ++++---- src/AutoSplit.py | 28 ++++++++++++++++++++++------ 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/res/design.ui b/res/design.ui index 86efbcce..3b0caf42 100644 --- a/res/design.ui +++ b/res/design.ui @@ -263,15 +263,15 @@ 5 225 - 53 - 21 + 54 + 23 Qt::NoFocus - Max FPS + Avg. FPS @@ -662,7 +662,7 @@ - 58 + 60 225 26 20 diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 52cfb687..0381ae6b 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -41,6 +41,7 @@ "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" START_IMAGE_TEXT = "Start Image" START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" +CHECK_FPS_ITERATIONS = 10 # Needed when compiled, along with the custom hook-requests PyInstaller hook os.environ["REQUESTS_CA_BUNDLE"] = certifi.where() @@ -446,15 +447,30 @@ def __check_fps(self): # run X iterations of screenshotting capture region + comparison + displaying. t0 = time() - while count < 10: - capture = self.__get_capture_for_comparison() - _ = image.compare_with_capture(self, capture) - count += 1 + for image in images: + count = 0 + while count < CHECK_FPS_ITERATIONS: + capture = self.__get_capture_for_comparison() + _ = image.compare_with_capture(self, capture) + # Fallback to capture bytes just for test and type safety + numpy_array = image.bytes if image.bytes is not None else capture + # Set current split image in UI + split_image_display = cv2.cvtColor(numpy_array, cv2.COLOR_BGRA2RGBA) + qimage = QtGui.QImage(split_image_display.data, + split_image_display.shape[1], + split_image_display.shape[0], + split_image_display.shape[1] * split_image_display.shape[2], + QtGui.QImage.Format.Format_RGBA8888) + self.current_split_image.setPixmap(QtGui.QPixmap(qimage).scaled( + self.current_split_image.size(), + QtCore.Qt.AspectRatioMode.IgnoreAspectRatio)) + count += 1 + self.current_split_image.clear() # calculate FPS t1 = time() - fps = str(int(10 / (t1 - t0))) - self.fps_value_label.setText(fps) + fps = int((CHECK_FPS_ITERATIONS * len(images)) / (t1 - t0)) + self.fps_value_label.setText(str(fps)) def __is_current_split_out_of_range(self): return self.split_image_number < 0 \ From e4566ea74b2055e2a0d3c3de58ac080719a13c48 Mon Sep 17 00:00:00 2001 From: Avasam Date: Mon, 6 Dec 2021 19:54:43 -0500 Subject: [PATCH 15/54] Added badges --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a4896bc..c0eaedf3 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ -# LiveSplit AutoSplit [![Build and lint](/../../actions/workflows/build-and-lint.yml/badge.svg)](/../../actions/workflows/build-and-lint.yml) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=security_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) +# LiveSplit AutoSplit [![CodeQL](/../../actions/workflows/codeql-analysis.yml/badge.svg)](/../../actions/workflows/codeql-analysis.yml) [![Lint and build](/../../actions/workflows/lint-and-build.yml/badge.svg)](/../../actions/workflows/lint-and-build.yml) + +[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) +[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) +[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=security_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) +[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) +[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=Avasam_Auto-Split) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Avasam_Auto-Split) Easy to use image comparison based auto splitter for speedrunning on console or PC. From c07b771dd260267f2cf53315f68c3e98d7ea7eb1 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 7 Dec 2021 19:13:21 -0500 Subject: [PATCH 16/54] Fixed "Select Window" not working for windows with negative coordinates Split screen_region in smaller functions WIP towards #94: No pop-up on loading settings with no capture window Don't stop/reset AutoSplit upon loosing capture window No pop-up on loosing capture window Don't allow selecting desktop. --- .github/workflows/lint-and-build.yml | 2 +- pyproject.toml | 6 +- scripts/lint.ps1 | 27 +- scripts/start.bat | 2 +- src/AutoSplit.py | 75 +- src/capture_windows.py | 33 +- src/menu_bar.py | 6 +- src/screen_region.py | 188 +- typings/win32-stubs/win32gui.pyi | 6238 ++++++++++++++++++++++++++ 9 files changed, 6418 insertions(+), 159 deletions(-) create mode 100644 typings/win32-stubs/win32gui.pyi diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 77eced8b..37f7f367 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -44,7 +44,7 @@ jobs: npm install -g pyright - run: scripts/compile_resources.bat - name: Analysing the code with ${{ job.name }} - run: pyright + run: pyright --warnings Pylint: runs-on: windows-latest strategy: diff --git a/pyproject.toml b/pyproject.toml index 116b94b3..7268cfee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,7 +78,11 @@ extension-pkg-allow-list = ["PyQt6", "win32ui"] max-line-length = 120 [tool.pylint.DESIGN] -max-attributes = 15 +# Same as SonarLint +max-args = 7 +# Arbitrary to 2 bytes +max-attributes = 16 +max-locals = 16 [tool.pylint.'MESSAGES CONTROL'] # Same as SonarLint diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index 6f66ff32..1d6d6683 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -1,11 +1,28 @@ -echo "`nRunning Pyright..." -pyright +$originalDirectory = $pwd +cd "$PSScriptRoot\.." +Write-Host $Script:MyInvocation.MyCommand.Path +$exitCodes = 0 -echo "`nRunning Pylint..." +Write-Host "`nRunning Pyright..." +pyright --warnings +$exitCodes += $LastExitCode + +Write-Host "`nRunning Pylint..." pylint --score=n --output-format=colorized $(git ls-files '**/*.py*') +$exitCodes += $LastExitCode -echo "`nRunning Flake8..." +Write-Host "`nRunning Flake8..." flake8 +$exitCodes += $LastExitCode -echo "`nRunning Bandit..." +Write-Host "`nRunning Bandit..." bandit -f custom --silent --recursive src +# $exitCodes += $LastExitCode # Returns 1 on low + +if ($exitCodes -gt 0) { + Write-Host "`nLinting failed ($exitCodes)" -ForegroundColor Red +} else { + Write-Host "`nLinting passed" -ForegroundColor Green +} + +cd $originalDirectory diff --git a/scripts/start.bat b/scripts/start.bat index 3b428f1d..cd894a28 100644 --- a/scripts/start.bat +++ b/scripts/start.bat @@ -1,2 +1,2 @@ CALL "%~p0compile_resources.bat" -py -3.9 "%~p0..\src\AutoSplit.py" +py -3.9 "%~p0..\src\AutoSplit.py" %* diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 0381ae6b..a7c5175d 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -28,7 +28,7 @@ import error_messages import settings_file as settings from AutoControlledWorker import AutoControlledWorker -from capture_windows import capture_region, Rect +from capture_windows import capture_region, Rect, set_ui_image from gen import about, design, update_checker from hotkeys import send_command, after_setting_hotkey, set_split_hotkey, set_reset_hotkey, set_skip_split_hotkey, \ set_undo_split_hotkey, set_pause_hotkey @@ -97,6 +97,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): # Initialize a few attributes split_image_directory = "" hwnd = 0 + """Window Handle used for Capture Region""" selection = Rect() last_saved_settings: list[Union[str, float, int, bool]] = [] save_settings_file_path = "" @@ -261,22 +262,11 @@ def __live_image_function(self): self.live_image.clear() if self.live_image_function_on_open: self.live_image_function_on_open = False - else: - error_messages.region() return - capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) - # Set live image in UI - capture = cv2.cvtColor(capture, cv2.COLOR_BGRA2BGR) - qimage = QtGui.QImage(capture.data, - capture.shape[1], - capture.shape[0], - capture.shape[1] * capture.shape[2], - QtGui.QImage.Format.Format_BGR888) - self.live_image.setPixmap(QtGui.QPixmap(qimage).scaled( - self.live_image.size(), - QtCore.Qt.AspectRatioMode.IgnoreAspectRatio)) + capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) + set_ui_image(self.live_image, capture, False) except AttributeError: pass @@ -293,14 +283,15 @@ def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool or not self.pause_hotkey_input.text()): error_messages.load_start_image() return + + if not (validate_before_parsing(self, started_by_button) and parse_and_validate_images(self)): + return + if self.start_image is None: if started_by_button: error_messages.no_keyword_image("start_auto_splitter") return - if not (validate_before_parsing(self, started_by_button) and parse_and_validate_images(self)): - return - self.split_image_number = 0 start_pause_time = self.start_image.get_pause_time(self) @@ -417,7 +408,7 @@ def __take_screenshot(self): if not validate_before_parsing(self, check_empty_directory=False): return - # check if file exists and rename it if it does + # Check if file exists and rename it if it does. # Below starts the file_name_number at #001 up to #999. After that it will go to 1000, # which is a problem, but I doubt anyone will get to 1000 split images... screenshot_index = 1 @@ -427,8 +418,11 @@ def __take_screenshot(self): break screenshot_index += 1 - # grab screenshot of capture region + # Grab screenshot of capture region capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) + if capture is None: + error_messages.region() + return # save and open image cv2.imwrite(screenshot_path, capture) @@ -452,18 +446,7 @@ def __check_fps(self): while count < CHECK_FPS_ITERATIONS: capture = self.__get_capture_for_comparison() _ = image.compare_with_capture(self, capture) - # Fallback to capture bytes just for test and type safety - numpy_array = image.bytes if image.bytes is not None else capture - # Set current split image in UI - split_image_display = cv2.cvtColor(numpy_array, cv2.COLOR_BGRA2RGBA) - qimage = QtGui.QImage(split_image_display.data, - split_image_display.shape[1], - split_image_display.shape[0], - split_image_display.shape[1] * split_image_display.shape[2], - QtGui.QImage.Format.Format_RGBA8888) - self.current_split_image.setPixmap(QtGui.QPixmap(qimage).scaled( - self.current_split_image.size(), - QtCore.Qt.AspectRatioMode.IgnoreAspectRatio)) + set_ui_image(self.current_split_image, image.bytes, True) count += 1 self.current_split_image.clear() @@ -587,7 +570,6 @@ def __auto_splitter(self): number_of_split_images = len(self.split_images_and_loop_number) dummy_splits_array = [image.check_flag(DUMMY_FLAG) for image in self.split_images] self.run_start_time = time() - window_text = win32gui.GetWindowText(self.hwnd) # First while loop: stays in this loop until all of the split images have been split while self.split_image_number < number_of_split_images: @@ -605,10 +587,6 @@ def __auto_splitter(self): # skip loop if we just finished waiting for the split delay and need to press the split key! start = time() while True: - # reset if the set screen region window was closed - if not window_text: - self.reset() - if self.__check_for_reset(): return @@ -689,9 +667,6 @@ def __auto_splitter(self): while time() - delay_start_time < split_delay: delay_time_left = round(split_delay - (time() - delay_start_time), 1) self.current_split_image.setText(f"Delayed Split: {delay_time_left} sec remaining") - # check for reset - if not window_text: - self.reset() if self.__check_for_reset(): return @@ -743,9 +718,6 @@ def __auto_splitter(self): pause_time_left = round(pause_time - (time() - pause_start_time), 1) self.current_split_image.setText(f"None (Paused). {pause_time_left} sec remaining") - # check for reset - if not window_text: - self.reset() if self.__check_for_reset(): return @@ -812,11 +784,13 @@ def gui_changes_on_reset(self): self.load_start_image(False, False) def __get_capture_for_comparison(self): - # Grab screenshot of capture region + """ + Grab capture region and resize for comparison + """ capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) - return cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) + return None if capture is None else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - def __reset_if_should(self, capture: cv2.ndarray): + def __reset_if_should(self, capture: Optional[cv2.ndarray]): """ Check if we should reset, resets if it's the case, and returns the result """ @@ -843,16 +817,7 @@ def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None, # Get split image self.split_image = specific_image or self.split_images_and_loop_number[0 + self.split_image_number][0] if self.split_image.bytes is not None: - # Set current split image in UI - split_image_display = cv2.cvtColor(self.split_image.bytes, cv2.COLOR_BGRA2RGBA) - qimage = QtGui.QImage(split_image_display.data, - split_image_display.shape[1], - split_image_display.shape[0], - split_image_display.shape[1] * split_image_display.shape[2], - QtGui.QImage.Format.Format_RGBA8888) - self.current_split_image.setPixmap(QtGui.QPixmap(qimage).scaled( - self.current_split_image.size(), - QtCore.Qt.AspectRatioMode.IgnoreAspectRatio)) + set_ui_image(self.current_split_image, self.split_image.bytes, True) self.current_split_image_file_label.setText(self.split_image.filename) self.current_similarity_threshold_number_label.setText(f"{self.split_image.get_similarity_threshold(self):.2f}") diff --git a/src/capture_windows.py b/src/capture_windows.py index 1da044ae..71161a51 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -1,10 +1,12 @@ from __future__ import annotations -from typing import cast +from typing import Optional, cast import ctypes import ctypes.wintypes import platform from dataclasses import dataclass +from PyQt6 import QtCore, QtGui +from PyQt6.QtWidgets import QLabel import cv2 import numpy as np @@ -51,9 +53,12 @@ def capture_region(hwnd: int, selection: Rect, force_print_window: bool): # TODO check for first non-black pixel, no need to iterate through the whole image is_accelerated_window = not np.count_nonzero(image) accelerated_windows[hwnd] = is_accelerated_window - return __get_capture_image(hwnd, selection, True) if is_accelerated_window else image + if is_accelerated_window: + image = __get_capture_image(hwnd, selection, True) + else: + image = __get_capture_image(hwnd, selection, is_accelerated_window) - return __get_capture_image(hwnd, selection, is_accelerated_window) + return None if image.size == 0 else image def __get_capture_image(hwnd: int, selection: Rect, print_window: bool = False): @@ -79,7 +84,7 @@ def __get_capture_image(hwnd: int, selection: Rect, print_window: bool = False): except (win32ui.error, pywintypes.error): # type: ignore return np.array([0, 0, 0, 1], dtype="uint8") - image: cv2.ndarray = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") + image = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") image.shape = (height, width, 4) try: @@ -92,3 +97,23 @@ def __get_capture_image(hwnd: int, selection: Rect, print_window: bool = False): pass return image + + +def set_ui_image(qlabel: QLabel, image: Optional[cv2.ndarray], transparency: bool): + if image is None: + qlabel.clear() + else: + if transparency: + color_code = cv2.COLOR_BGRA2RGBA + image_format = QtGui.QImage.Format.Format_RGBA8888 + else: + color_code = cv2.COLOR_BGRA2BGR + image_format = QtGui.QImage.Format.Format_BGR888 + + capture = cv2.cvtColor(image, color_code) + height, width, channels = capture.shape + qimage = QtGui.QImage(capture.data, width, height, width * channels, image_format) + qlabel.setPixmap(QtGui.QPixmap(qimage).scaled( + qlabel.size(), + QtCore.Qt.AspectRatioMode.IgnoreAspectRatio, + QtCore.Qt.TransformationMode.SmoothTransformation)) diff --git a/src/menu_bar.py b/src/menu_bar.py index 6acfdc9e..66cb9c85 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -3,7 +3,7 @@ if TYPE_CHECKING: from AutoSplit import AutoSplit -import os +import webbrowser import requests from simplejson.errors import JSONDecodeError @@ -56,7 +56,7 @@ def __init__(self, latest_version: str, design_window: design.Ui_MainWindow, che self.show() def open_update(self): - os.system('start "" https://github.com/Toufool/Auto-Split/releases/latest') + webbrowser.open("https://github.com/Toufool/Auto-Split/releases/latest") self.close() def do_not_ask_me_again_state_changed(self): @@ -70,7 +70,7 @@ def open_update_checker(autosplit: AutoSplit, latest_version: str, check_on_open def view_help(): - os.system('start "" https://github.com/Toufool/Auto-Split#tutorial') + webbrowser.open("https://github.com/Toufool/Auto-Split#tutorial") class __CheckForUpdatesThread(QThread): diff --git a/src/screen_region.py b/src/screen_region.py index e2492a62..1fd2e480 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -7,6 +7,7 @@ import ctypes import ctypes.wintypes import cv2 + import numpy as np from PyQt6 import QtCore, QtGui, QtTest, QtWidgets from win32 import win32gui @@ -15,7 +16,9 @@ import capture_windows import error_messages -DWMWA_EXTENDED_FRAME_BOUNDS = 9 + +WINDOWS_SHADOW_SIZE = 8 +WINDOWS_TOPBAR_SIZE = 24 user32 = ctypes.windll.user32 @@ -28,50 +31,25 @@ def select_region(autosplit: AutoSplit): while True: width = selector.width() height = selector.height() + left = selector.left + top = selector.top if width > 0 and height > 0: break # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore - - # Grab the window handle from the coordinates selected by the widget - autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.left, selector.top))) - # Want to pull the parent window from the window handle - # By using GetAncestor we are able to get the parent window instead - # of the owner window. - while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): - autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - - # Convert the Desktop Coordinates to Window Coordinates - # Pull the window's coordinates relative to desktop into selection - ctypes.windll.dwmapi.DwmGetWindowAttribute( - autosplit.hwnd, - ctypes.wintypes.DWORD(DWMWA_EXTENDED_FRAME_BOUNDS), - ctypes.byref(autosplit.selection), - ctypes.sizeof(autosplit.selection)) - - # On Windows 10 the windows have offsets due to invisible pixels not accounted for in DwmGetWindowAttribute - # TODO: Since this occurs on Windows 10, is DwmGetWindowAttribute even required over GetWindowRect alone? - # Research needs to be done to figure out why it was used it over win32gui in the first place... - # I have a feeling it was due to a misunderstanding and not getting the correct parent window before. - window_rect = win32gui.GetWindowRect(autosplit.hwnd) - offset_left = autosplit.selection.left - window_rect[0] - offset_top = autosplit.selection.top - window_rect[1] - - autosplit.selection.left = selector.left - (autosplit.selection.left - offset_left) - autosplit.selection.top = selector.top - (autosplit.selection.top - offset_top) - autosplit.selection.right = autosplit.selection.left + width - autosplit.selection.bottom = autosplit.selection.top + height - - # Delete that widget since it is no longer used from here on out del selector - autosplit.width_spinbox.setValue(width) - autosplit.height_spinbox.setValue(height) - autosplit.x_spinbox.setValue(autosplit.selection.left) - autosplit.y_spinbox.setValue(autosplit.selection.top) + hwnd = __window_handle_from_point(left, top) + if not hwnd: + return + autosplit.hwnd = hwnd - # check if live image needs to be turned on or just set a single image - autosplit.check_live_image() + offset_x, offset_y, *_ = win32gui.GetWindowRect(autosplit.hwnd) + __set_region_values(autosplit, + left=left - offset_x, + top=top - offset_y, + width=width, + height=height) def select_window(autosplit: AutoSplit): @@ -80,63 +58,73 @@ def select_window(autosplit: AutoSplit): # Need to wait until the user has selected a region using the widget before moving on with # selecting the window settings - while selector.x() == -1 and selector.y() == -1: + while True: + x = selector.x() + y = selector.y() + if x and y: + break # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore - - # Grab the window handle from the coordinates selected by the widget - autosplit.hwnd = cast(int, win32gui.WindowFromPoint((selector.x(), selector.y()))) - del selector - if autosplit.hwnd <= 0: + hwnd = __window_handle_from_point(x, y) + if not hwnd: return + autosplit.hwnd = hwnd + + # Getting window bounds + # On Windows there is a shadow around the windows that we need to account for. + # The top bar with the window name is also not accounted for. + # This is not an ideal solution because it assumes every window will have a top bar and shadows of default size. + # Which results in cutting *into* windows which don't have shadows or have a smaller top bars + _, __, width, height = win32gui.GetClientRect(autosplit.hwnd) + __set_region_values(autosplit, + left=WINDOWS_SHADOW_SIZE, + top=WINDOWS_SHADOW_SIZE + WINDOWS_TOPBAR_SIZE, + width=width, + height=height - WINDOWS_TOPBAR_SIZE) + + +def __window_handle_from_point(x: int, y: int): + # Grab the window handle from the coordinates selected by the widget + hwnd = cast(int, win32gui.WindowFromPoint((x, y))) # Want to pull the parent window from the window handle # By using GetAncestor we are able to get the parent window instead # of the owner window. - while win32gui.IsChild(win32gui.GetParent(autosplit.hwnd), autosplit.hwnd): - autosplit.hwnd = user32.GetAncestor(autosplit.hwnd, GA_ROOT) - - # getting window bounds - # on windows there are some invisble pixels that are not accounted for - # also the top bar with the window name is not accounted for - # I hardcoded the x and y coordinates to fix this - # This is not an ideal solution because it assumes every window will have a top bar - selection: tuple[int, int, int, int] = win32gui.GetClientRect(autosplit.hwnd) - autosplit.selection.left = 8 - autosplit.selection.top = 31 - autosplit.selection.right = 8 + selection[2] - autosplit.selection.bottom = 31 + selection[3] - - autosplit.width_spinbox.setValue(selection[2]) - autosplit.height_spinbox.setValue(selection[3]) - autosplit.x_spinbox.setValue(autosplit.selection.left) - autosplit.y_spinbox.setValue(autosplit.selection.top) + while win32gui.IsChild(win32gui.GetParent(hwnd), hwnd): + hwnd = cast(int, user32.GetAncestor(hwnd, GA_ROOT)) - autosplit.check_live_image() + window_text = win32gui.GetWindowText(hwnd) + + # Don't select desktop + if not window_text: + error_messages.region() + return 0 + + return hwnd def align_region(autosplit: AutoSplit): - # check to see if a region has been set + # Check to see if a region has been set if autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): error_messages.region() return - # This is the image used for aligning the capture region - # to the best fit for the user. + # This is the image used for aligning the capture region to the best fit for the user. template_filename = QtWidgets.QFileDialog.getOpenFileName( autosplit, "Select Reference Image", "", - "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)")[0] + "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)" + )[0] - # return if the user presses cancel + # Return if the user presses cancel if not template_filename: return template = cv2.imread(template_filename, cv2.IMREAD_COLOR) - # shouldn't need this, but just for caution, throw a type error if file is not a valid image file + # Validate template is a valid image file if template is None: error_messages.align_region_image_type() return @@ -148,6 +136,45 @@ def align_region(autosplit: AutoSplit): autosplit.selection, autosplit.force_print_window_checkbox.isChecked()) + if capture is None: + error_messages.region() + return + + best_match, best_height, best_width, best_loc = __test_alignment(capture, template) + + # Go ahead and check if this satisfies our requirement before setting the region + # We don't want a low similarity image to be aligned. + if best_match < 0.9: + error_messages.alignment_not_matched() + return + + # The new region can be defined by using the min_loc point and the best_height and best_width of the template. + __set_region_values(autosplit, + left=autosplit.selection.left + best_loc[0], + top=autosplit.selection.top + best_loc[1], + width=best_width, + height=best_height) + + +def __set_region_values(autosplit: AutoSplit, left: int, top: int, width: int, height: int): + """ + left and top values are based on the virtual screen and can be negative + width and height are the action selection's size + """ + autosplit.selection.left = left + autosplit.selection.top = top + autosplit.selection.right = left + width + autosplit.selection.bottom = top + height + + autosplit.x_spinbox.setValue(left) + autosplit.y_spinbox.setValue(top) + autosplit.width_spinbox.setValue(width) + autosplit.height_spinbox.setValue(height) + + autosplit.check_live_image() + + +def __test_alignment(capture: cv2.ndarray, template: cv2.ndarray): # Obtain the best matching point for the template within the # capture. This assumes that the template is actually smaller # than the dimensions of the capture. Since we are using SQDIFF @@ -184,24 +211,7 @@ def align_region(autosplit: AutoSplit): best_width = width best_height = height best_loc = min_loc - - # Go ahead and check if this satisfies our requirement before setting the region - # We don't want a low similarity image to be aligned. - if best_match < 0.9: - error_messages.alignment_not_matched() - return - - # The new region can be defined by using the min_loc point and the - # height and width of the template. - autosplit.selection.left = autosplit.selection.left + best_loc[0] - autosplit.selection.top = autosplit.selection.top + best_loc[1] - autosplit.selection.right = autosplit.selection.left + best_width - autosplit.selection.bottom = autosplit.selection.top + best_height - - autosplit.x_spinbox.setValue(autosplit.selection.left) - autosplit.y_spinbox.setValue(autosplit.selection.top) - autosplit.width_spinbox.setValue(best_width) - autosplit.height_spinbox.setValue(best_height) + return best_match, best_height, best_width, best_loc def validate_before_parsing(autosplit: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): @@ -241,8 +251,8 @@ def keyPressEvent(self, a0: QtGui.QKeyEvent): # Widget to select a window and obtain its bounds class SelectWindowWidget(BaseSelectWidget): - __x = -1 - __y = -1 + __x = 0 + __y = 0 def x(self): return self.__x diff --git a/typings/win32-stubs/win32gui.pyi b/typings/win32-stubs/win32gui.pyi new file mode 100644 index 00000000..46d7019c --- /dev/null +++ b/typings/win32-stubs/win32gui.pyi @@ -0,0 +1,6238 @@ +__all__=['', 'EnumFontFamilies', 'set_logger', 'LOGFONT', 'CreateFontIndirect', 'GetObject', 'GetObjectType', 'PyGetMemory', 'PyGetString', 'PySetString', 'PySetMemory', 'PyGetArraySignedLong', 'PyGetBufferAddressAndLen', 'FlashWindow', 'FlashWindowEx', 'GetWindowLong', 'GetClassLong', 'SetWindowLong', 'CallWindowProc', 'SendMessage', 'SendMessageTimeout', 'PostMessage', 'PostThreadMessage', 'ReplyMessage', 'RegisterWindowMessage', 'DefWindowProc', 'EnumWindows', 'EnumThreadWindows', 'EnumChildWindows', 'DialogBox', 'DialogBoxParam', 'DialogBoxIndirect', 'DialogBoxIndirectParam', 'CreateDialogIndirect', 'DialogBoxIndirectParam', 'EndDialog', 'GetDlgItem', 'GetDlgItemInt', 'SetDlgItemInt', 'GetDlgCtrlID', 'GetDlgItemText', 'SetDlgItemText', 'GetNextDlgTabItem', 'GetNextDlgGroupItem', 'SetWindowText', 'GetWindowText', 'InitCommonControls', 'InitCommonControlsEx', 'LoadCursor', 'SetCursor', 'GetCursor', 'GetCursorInfo', 'CreateAcceleratorTable', 'DestroyAccleratorTable', 'LoadMenu', 'DestroyMenu', 'SetMenu', 'GetMenu', 'LoadIcon', 'CopyIcon', 'DrawIcon', 'DrawIconEx', 'CreateIconIndirect', 'CreateIconFromResource', 'LoadImage', 'DeleteObject', 'BitBlt', 'StretchBlt', 'PatBlt', 'SetStretchBltMode', 'GetStretchBltMode', 'TransparentBlt', 'MaskBlt', 'AlphaBlend', 'ImageList_Add', 'ImageList_Create', 'ImageList_Destroy', 'ImageList_Draw', 'ImageList_DrawEx', 'ImageList_GetIcon', 'ImageList_GetImageCount', 'ImageList_LoadImage', 'ImageList_LoadBitmap', 'ImageList_Remove', 'ImageList_Replace', 'ImageList_ReplaceIcon', 'ImageList_SetBkColor', 'ImageList_SetOverlayImage', 'MessageBox', 'MessageBeep', 'CreateWindow', 'DestroyWindow', 'EnableWindow', 'FindWindow', 'FindWindowEx', 'DragAcceptFiles', 'DragDetect', 'SetDoubleClickTime', 'GetDoubleClickTime', 'HideCaret', 'SetCaretPos', 'GetCaretPos', 'ShowCaret', 'ShowWindow', 'IsWindowVisible', 'IsWindowEnabled', 'SetFocus', 'GetFocus', 'UpdateWindow', 'BringWindowToTop', 'SetActiveWindow', 'GetActiveWindow', 'SetForegroundWindow', 'GetForegroundWindow', 'GetClientRect', 'GetDC', 'SaveDC', 'RestoreDC', 'DeleteDC', 'CreateCompatibleDC', 'CreateCompatibleBitmap', 'CreateBitmap', 'SelectObject', 'GetCurrentObject', 'GetWindowRect', 'GetStockObject', 'PostQuitMessage', 'WaitMessage', 'SetWindowPos', 'GetWindowPlacement', 'SetWindowPlacement', 'RegisterClass', 'UnregisterClass', 'PumpMessages', 'PumpWaitingMessages', 'GetMessage', 'TranslateMessage', 'DispatchMessage', 'TranslateAccelerator', 'PeekMessage', 'Shell_NotifyIcon', 'GetSystemMenu', 'DrawMenuBar', 'MoveWindow', 'CloseWindow', 'DeleteMenu', 'RemoveMenu', 'CreateMenu', 'CreatePopupMenu', 'TrackPopupMenu', 'CommDlgExtendedError', 'ExtractIcon', 'ExtractIconEx', 'DestroyIcon', 'GetIconInfo', 'ScreenToClient', 'ClientToScreen', 'PaintDesktop', 'RedrawWindow', 'GetTextExtentPoint32', 'GetTextMetrics', 'GetTextCharacterExtra', 'SetTextCharacterExtra', 'GetTextAlign', 'SetTextAlign', 'GetTextFace', 'GetMapMode', 'SetMapMode', 'GetGraphicsMode', 'SetGraphicsMode', 'GetLayout', 'SetLayout', 'GetPolyFillMode', 'SetPolyFillMode', 'GetWorldTransform', 'SetWorldTransform', 'ModifyWorldTransform', 'CombineTransform', 'GetWindowOrgEx', 'SetWindowOrgEx', 'GetViewportOrgEx', 'SetViewportOrgEx', 'GetWindowExtEx', 'SetWindowExtEx', 'GetViewportExtEx', 'SetViewportExtEx', 'GradientFill', 'GetOpenFileName', 'InsertMenuItem', 'SetMenuItemInfo', 'GetMenuItemInfo', 'GetMenuItemCount', 'GetMenuItemRect', 'GetMenuState', 'SetMenuDefaultItem', 'GetMenuDefaultItem', 'AppendMenu', 'InsertMenu', 'EnableMenuItem', 'CheckMenuItem', 'GetSubMenu', 'ModifyMenu', 'GetMenuItemID', 'SetMenuItemBitmaps', 'CheckMenuRadioItem', 'SetMenuInfo', 'GetMenuInfo', 'DrawFocusRect', 'DrawText', 'LineTo', 'Ellipse', 'Pie', 'Arc', 'ArcTo', 'AngleArc', 'Chord', 'ExtFloodFill', 'SetPixel', 'GetPixel', 'GetROP2', 'SetROP2', 'SetPixelV', 'MoveToEx', 'GetCurrentPositionEx', 'GetArcDirection', 'SetArcDirection', 'Polygon', 'Polyline', 'PolylineTo', 'PolyBezier', 'PolyBezierTo', 'PlgBlt', 'CreatePolygonRgn', 'ExtTextOut', 'GetTextColor', 'SetTextColor', 'GetBkMode', 'SetBkMode', 'GetBkColor', 'SetBkColor', 'DrawEdge', 'FillRect', 'FillRgn', 'PaintRgn', 'FrameRgn', 'InvertRgn', 'EqualRgn', 'PtInRegion', 'PtInRect', 'RectInRegion', 'SetRectRgn', 'CombineRgn', 'DrawAnimatedRects', 'CreateSolidBrush', 'CreatePatternBrush', 'CreateHatchBrush', 'CreatePen', 'GetSysColor', 'GetSysColorBrush', 'InvalidateRect', 'FrameRect', 'InvertRect', 'WindowFromDC', 'GetUpdateRgn', 'GetWindowRgn', 'SetWindowRgn', 'GetWindowRgnBox', 'ValidateRgn', 'InvalidateRgn', 'GetRgnBox', 'OffsetRgn', 'Rectangle', 'RoundRect', 'BeginPaint', 'EndPaint', 'BeginPath', 'EndPath', 'AbortPath', 'CloseFigure', 'FlattenPath', 'FillPath', 'WidenPath', 'StrokePath', 'StrokeAndFillPath', 'GetMiterLimit', 'SetMiterLimit', 'PathToRegion', 'GetPath', 'CreateRoundRectRgn', 'CreateRectRgnIndirect', 'CreateEllipticRgnIndirect', 'CreateWindowEx', 'GetParent', 'SetParent', 'GetCursorPos', 'GetDesktopWindow', 'GetWindow', 'GetWindowDC', 'IsIconic', 'IsWindow', 'IsChild', 'ReleaseCapture', 'GetCapture', 'SetCapture', '_TrackMouseEvent', 'ReleaseDC', 'CreateCaret', 'DestroyCaret', 'ScrollWindowEx', 'SetScrollInfo', 'GetScrollInfo', 'GetClassName', 'WindowFromPoint', 'ChildWindowFromPoint', 'ChildWindowFromPoint', 'ListView_SortItems', 'ListView_SortItemsEx', 'CreateDC', 'GetSaveFileNameW', 'GetOpenFileNameW', 'SystemParametersInfo', 'SetLayeredWindowAttributes', 'GetLayeredWindowAttributes', 'UpdateLayeredWindow', 'AnimateWindow', 'CreateBrushIndirect', 'ExtCreatePen', 'DrawTextW', 'EnumPropsEx', 'RegisterDeviceNotification', 'UnregisterDeviceNotification', 'RegisterHotKey', 'CLR_NONE', 'ILC_COLOR', 'ILC_COLOR16', 'ILC_COLOR24', 'ILC_COLOR32', 'ILC_COLOR4', 'ILC_COLOR8', 'ILC_COLORDDB', 'ILC_MASK', 'ILD_BLEND', 'ILD_BLEND25', 'ILD_BLEND50', 'ILD_FOCUS', 'ILD_MASK', 'ILD_NORMAL', 'ILD_SELECTED', 'ILD_TRANSPARENT', 'IMAGE_BITMAP', 'IMAGE_CURSOR', 'IMAGE_ICON', 'LR_CREATEDIBSECTION', 'LR_DEFAULTCOLOR', 'LR_DEFAULTSIZE', 'LR_LOADFROMFILE', 'LR_LOADMAP3DCOLORS', 'LR_LOADTRANSPARENT', 'LR_MONOCHROME', 'LR_SHARED', 'LR_VGACOLOR', 'NIF_ICON', 'NIF_INFO', 'NIF_MESSAGE', 'NIF_STATE', 'NIF_TIP', 'NIIF_ERROR', 'NIIF_ICON_MASK', 'NIIF_INFO', 'NIIF_NONE', 'NIIF_NOSOUND', 'NIIF_WARNING', 'NIM_ADD', 'NIM_DELETE', 'NIM_MODIFY', 'NIM_SETFOCUS', 'NIM_SETVERSION', 'TPM_BOTTOMALIGN', 'TPM_CENTERALIGN', 'TPM_LEFTALIGN', 'TPM_LEFTBUTTON', 'TPM_NONOTIFY', 'TPM_RETURNCMD', 'TPM_RIGHTALIGN', 'TPM_RIGHTBUTTON', 'TPM_TOPALIGN', 'TPM_VCENTERALIGN'] +import typing +import win32typing +"""""" + + +def EnumFontFamilies(hdc:'int',Family:'typing.Union[str]',EnumFontFamProc:'typing.Any',Param:'typing.Any') -> 'typing.Any': + """ + Enumerates the available font families. + +Args: + + hdc(int):Handle to a device context for which to enumerate available fonts + Family(typing.Union[str]):Family of fonts to enumerate. If none, first member of each font family will be returned. + EnumFontFamProc(typing.Any):The Python function called with each font family. This function is called with 4 arguments. + Param(typing.Any):An arbitrary object to be passed to the callback functionCommentsThe parameters that the callback function will receive are as follows:PyLOGFONT - contains the font parameters None - Placeholder for a TEXTMETRIC structure, not supported yet int - Font type, combination of DEVICE_FONTTYPE, RASTER_FONTTYPE, TRUETYPE_FONTTYPE object - The Param originally passed in to EnumFontFamilies + +Returns: + + typing.Any + + """ + pass + + +def set_logger(logger:'typing.Any') -> 'None': + """ + Sets a logger object for exceptions and error information + +Args: + + logger(typing.Any):A logger object, generally from the standard logger package.CommentsOnce a logger has been set for the module, unhandled exceptions, such as from a window's WNDPROC, will be written (via logger.exception()) to the log instead of to stderr. Note that using this with the Python 2.3 logging package will prevent the traceback from being written to the log. However, it is possible to use the Python 2.4 logging package directly with Python 2.3 + +Returns: + + None + + """ + pass + + +def LOGFONT() -> 'win32typing.PyLOGFONT': + """ + Creates a LOGFONT object. + +Args: + + + +Returns: + + win32typing.PyLOGFONT + + """ + pass + + +def CreateFontIndirect(lplf:'win32typing.PyLOGFONT') -> 'typing.Any': + """ + function creates a logical font that has the specified characteristics. + +The font can subsequently be selected as the current font for any device context. + +Args: + + lplf(win32typing.PyLOGFONT):A LOGFONT object as returned by win32gui::LOGFONT + +Returns: + + typing.Any + + """ + pass + + +def GetObject(handle:'int') -> 'typing.Any': + """ + Returns a struct containing the parameters used to create a GDI object + +Args: + + handle(int):Handle to the object.CommentsThe result depends on the type of the handle.Object type as determined by win32gui::GetObjectTypeReturned objectOBJ_FONTPyLOGFONTOBJ_BITMAPPyBITMAPOBJ_PENDict representing a LOGPEN struct + +Returns: + + typing.Any + + """ + pass + + +def GetObjectType(h:'int') -> 'typing.Any': + """ + Returns the type (OBJ_* constant) of a GDI handle + +Args: + + h(int):A handle to a GDI object + +Returns: + + typing.Any + + """ + pass + + +def PyGetMemory(addr:'typing.Any',_len:'typing.Any') -> 'typing.Any': + """ + Returns a buffer object from and address and length + +Args: + + addr(typing.Any):Address of the memory to reference. + _len(typing.Any):Number of bytes to return.CommentsIf zero is passed a ValueError will be raised. + +Returns: + + typing.Any + + """ + pass + + +def PyGetString(addr:'typing.Any',_len:'typing.Any') -> 'str': + """ + Returns a string from an address. + +Args: + + addr(typing.Any):Address of the memory to reference + _len(typing.Any):Number of characters to read. If not specified, the string must be NULL terminated.Return ValueIf win32gui.UNICODE is True, this will return a unicode object. + +Returns: + + str:Number of characters to read. If not specified, the + +string must be NULL terminated.Return ValueIf win32gui.UNICODE is True, this will return a unicode object. + + + """ + pass + + +def PySetString(addr:'typing.Any',String:'typing.Any',maxLen:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + addr(typing.Any):Address of the memory to reference + String(typing.Any):The string to copy + maxLen(typing.Any):Maximum number of chars to copy (optional) + +Returns: + + typing.Any + + """ + pass + + +def PySetMemory(addr:'typing.Any',String:'typing.Any') -> 'typing.Any': + """ + Copies bytes to an address. + +Args: + + addr(typing.Any):Address of the memory to reference + String(typing.Any):The string to copy + +Returns: + + typing.Any + + """ + pass + + +def PyGetArraySignedLong(array:'typing.Any',index:'typing.Any') -> 'typing.Any': + """ + Returns a signed long from an array object at specified index + +Args: + + array(typing.Any):array object to use + index(typing.Any):index of offset + +Returns: + + typing.Any + + """ + pass + + +def PyGetBufferAddressAndLen(obj:'typing.Any') -> 'typing.Any': + """ + Returns a buffer object address and len + +Args: + + obj(typing.Any):the buffer object + +Returns: + + typing.Any + + """ + pass + + +def FlashWindow(hwnd:'int',bInvert:'typing.Any') -> 'typing.Any': + """ + The FlashWindow function flashes the specified window one time. It does not change the active state of the window. + +Args: + + hwnd(int):Handle to a window + bInvert(typing.Any):Indicates if window should toggle between active and inactive + +Returns: + + typing.Any + + """ + pass + + +def FlashWindowEx(hwnd:'int',dwFlags:'typing.Any',uCount:'typing.Any',dwTimeout:'typing.Any') -> 'typing.Any': + """ + The FlashWindowEx function flashes the specified window a specified number of times. + +Args: + + hwnd(int):Handle to a window + dwFlags(typing.Any):Combination of win32con.FLASHW_* flags + uCount(typing.Any):Nbr of times to flash + dwTimeout(typing.Any):Elapsed time between flashes, in milliseconds + +Returns: + + typing.Any + + """ + pass + + +def GetWindowLong(hwnd:'int',index:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any): + index(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def GetClassLong(hwnd:'int',index:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any): + index(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def SetWindowLong(hwnd:'int',index:'typing.Any',value:'typing.Any') -> 'typing.Any': + """ + Places a long value at the specified offset into the extra window memory of the given window. + +Args: + + hwnd(int):The handle to the window + index(typing.Any):The index of the item to set. + value(typing.Any):The value to set.CommentsThis function calls the SetWindowLongPtr Api functionIf index is GWLP_WNDPROC, then the value parameter must be a callable object (or a dictionary) to use as the new window procedure. + +Returns: + + typing.Any + + """ + pass + + +def CallWindowProc(wndproc:'typing.Any',hwnd:'int',msg:'typing.Any',wparam:'typing.Union[typing.Any]',lparam:'typing.Union[typing.Any]') -> 'typing.Any': + """ + None + +Args: + + wndproc(typing.Any):The wndproc to call - this is generally the return value of SetWindowLong(GWL_WNDPROC) + hwnd(int):Handle to the window + msg(typing.Any):A window message + wparam(typing.Union[typing.Any]):Type is dependent on the message + lparam(typing.Union[typing.Any]):Type is dependent on the message + +Returns: + + typing.Any + + """ + pass + + +def SendMessage(hwnd:'int',message:'typing.Any',wparam:'typing.Union[typing.Any]'=None,lparam:'typing.Union[typing.Any]'=None) -> 'typing.Any': + """ + Sends a message to the window. + +Args: + + hwnd(typing.Any):The handle to the Window + message(typing.Any):The ID of the message to post + wparam(typing.Union[typing.Any]):Type depends on the message + lparam(typing.Union[typing.Any]):Type depends on the message + +Returns: + + typing.Any + + """ + pass + + +def SendMessageTimeout(hwnd:'int',message:'typing.Any',wparam:'typing.Any',lparam:'typing.Any',flags:'typing.Any',timeout:'typing.Any') -> 'tuple[typing.Any, typing.Any]': + """ + Sends a message to the window. + +Args: + + hwnd(typing.Any):The handle to the Window + message(typing.Any):The ID of the message to post + wparam(typing.Any):An integer whose value depends on the message + lparam(typing.Any):An integer whose value depends on the message + flags(typing.Any):Send options + timeout(typing.Any):Timeout duration in milliseconds.Return ValueThe result is the result of the SendMessageTimeout call, plus the last 'result' param. If the timeout period expires, a pywintypes.error exception will be thrown, with zero as the error code. See the Microsoft documentation for more information. + +Returns: + + tuple[typing.Any, typing.Any]:Timeout duration in milliseconds.Return ValueThe result is the result of the SendMessageTimeout call, plus the last 'result' param. + +If the timeout period expires, a pywintypes.error exception will be thrown, + +with zero as the error code. See the Microsoft documentation for more information. + + + """ + pass + + +def PostMessage(hwnd:'int',message:'typing.Any',wparam:'typing.Any'=0,lparam:'typing.Any'=0) -> 'None': + """ + None + +Args: + + hwnd(typing.Any):The handle to the Window + message(typing.Any):The ID of the message to post + wparam(typing.Any):An integer whose value depends on the message + lparam(typing.Any):An integer whose value depends on the message + +Returns: + + None + + """ + pass + + +def PostThreadMessage(threadId:'typing.Any',message:'typing.Any',wparam:'typing.Any',lparam:'typing.Any') -> 'None': + """ + None + +Args: + + threadId(typing.Any):The ID of the thread to post the message to. + message(typing.Any):The ID of the message to post + wparam(typing.Any):An integer whose value depends on the message + lparam(typing.Any):An integer whose value depends on the message + +Returns: + + None + + """ + pass + + +def ReplyMessage(result:'typing.Any') -> 'typing.Any': + """ + Used to reply to a message sent through the SendMessage function without returning control to the function that called SendMessage. + +Args: + + result(typing.Any):Specifies the result of the message processing. The possible values are based on the message sent. + +Returns: + + typing.Any + + """ + pass + + +def RegisterWindowMessage(name:'typing.Union[str, typing.Any]') -> 'typing.Any': + """ + Defines a new window message that is guaranteed to be unique throughout the system. The message value can be used when sending or posting messages. + +Args: + + name(typing.Union[str, typing.Any]):The string + +Returns: + + typing.Any + + """ + pass + + +def DefWindowProc(hwnd:'int',message:'typing.Any',wparam:'typing.Any',lparam:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any):The handle to the Window + message(typing.Any):The ID of the message to send + wparam(typing.Any):An integer whose value depends on the message + lparam(typing.Any):An integer whose value depends on the message + +Returns: + + typing.Any + + """ + pass + + +def EnumWindows(callback:'typing.Any',extra:'typing.Any') -> 'None': + """ + Enumerates all top-level windows on the screen by passing the handle to each window, in turn, to an application-defined callback function. + +Args: + + callback(typing.Any):A Python function to be used as the callback. Function can return False to stop enumeration, or raise an exception. + extra(typing.Any):Any python object - this is passed to the callback function as the second param (first is the hwnd). + +Returns: + + None + + """ + pass + + +def EnumThreadWindows(dwThreadId:'typing.Any',callback:'typing.Any',extra:'typing.Any') -> 'None': + """ + Enumerates all top-level windows associated with a thread on the screen by passing the handle to each window, in turn, to an application-defined callback function. EnumThreadWindows continues until the last top-level window associated with the thread is enumerated or the callback function returns FALSE + +Args: + + dwThreadId(typing.Any):The id of the thread for which the windows need to be enumerated. + callback(typing.Any):A Python function to be used as the callback. + extra(typing.Any):Any python object - this is passed to the callback function as the second param (first is the hwnd). + +Returns: + + None + + """ + pass + + +def EnumChildWindows(hwnd:'int',callback:'typing.Any',extra:'typing.Any') -> 'None': + """ + Enumerates the child windows that belong to the specified parent window by passing the handle to each child window, in turn, to an application-defined callback function. EnumChildWindows continues until the last child window is enumerated or the callback function returns FALSE. + +Args: + + hwnd(int):The handle to the window to enumerate. + callback(typing.Any):A Python function to be used as the callback. + extra(typing.Any):Any python object - this is passed to the callback function as the second param (first is the hwnd). + +Returns: + + None + + """ + pass + + +def DialogBox(hInstance:'int',TemplateName:'win32typing.PyResourceId',hWndParent:'int',DialogFunc:'typing.Any',InitParam:'typing.Any'=0) -> 'typing.Any': + """ + Creates a modal dialog box. + +Args: + + hInstance(int):Handle to module that contains the dialog template + TemplateName(win32typing.PyResourceId):Name or resource id of the dialog resource + hWndParent(int):Handle to dialog's parent window + DialogFunc(typing.Any):Dialog box procedure to process messages + InitParam(typing.Any):Initialization data to be passed to above procedure during WM_INITDIALOG processing + +Returns: + + typing.Any + + """ + pass + + +def DialogBoxParam() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def DialogBoxIndirect(hInstance:'int',controlList:'win32typing.PyDialogTemplate',hWndParent:'int',DialogFunc:'typing.Any',InitParam:'typing.Any'=0) -> 'typing.Any': + """ + None + +Args: + + hInstance(int):Handle to module creating the dialog box + controlList(win32typing.PyDialogTemplate):Sequence of items defining the dialog box and subcontrols + hWndParent(int):Handle to dialog's parent window + DialogFunc(typing.Any):Dialog box procedure to process messages + InitParam(typing.Any):Initialization data to be passed to above procedure during WM_INITDIALOG processing + +Returns: + + typing.Any + + """ + pass + + +def DialogBoxIndirectParam() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def CreateDialogIndirect(hInstance:'int',controlList:'win32typing.PyDialogTemplate',hWndParent:'int',DialogFunc:'typing.Any',InitParam:'typing.Any'=0) -> 'typing.Any': + """ + None + +Args: + + hInstance(int):Handle to module creating the dialog box + controlList(win32typing.PyDialogTemplate):Sequence containing a PyDLGTEMPLATE, followed by variable number of PyDLGITEMTEMPLATEs + hWndParent(int):Handle to dialog's parent window + DialogFunc(typing.Any):Dialog box procedure to process messages + InitParam(typing.Any):Initialization data to be passed to above procedure during WM_INITDIALOG processing + +Returns: + + typing.Any + + """ + pass + + +def DialogBoxIndirectParam() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def EndDialog(hwnd:'int',result:'typing.Any') -> 'None': + """ + Ends a dialog box. + +Args: + + hwnd(typing.Any):Handle to the window. + result(typing.Any):result + +Returns: + + None + + """ + pass + + +def GetDlgItem(hDlg:'int',IDDlgItem:'typing.Any') -> 'typing.Any': + """ + Retrieves the handle to a control in the specified dialog box. + +Args: + + hDlg(int):Handle to a dialog window + IDDlgItem(typing.Any):Identifier of one of the dialog's controls + +Returns: + + typing.Any + + """ + pass + + +def GetDlgItemInt(hDlg:'int',IDDlgItem:'typing.Any',Signed:'typing.Any') -> 'None': + """ + Returns the integer value of a dialog control + +Args: + + hDlg(int):Handle to a dialog window + IDDlgItem(typing.Any):Identifier of one of the dialog's controls + Signed(typing.Any):Indicates whether control value should be interpreted as signed + +Returns: + + None + + """ + pass + + +def SetDlgItemInt(hDlg:'int',IDDlgItem:'typing.Any',Value:'typing.Any',Signed:'typing.Any') -> 'None': + """ + Places an integer value in a dialog control + +Args: + + hDlg(int):Handle to a dialog window + IDDlgItem(typing.Any):Identifier of one of the dialog's controls + Value(typing.Any):Value to placed in the control + Signed(typing.Any):Indicates if the input value is signed + +Returns: + + None + + """ + pass + + +def GetDlgCtrlID(hwnd:'int') -> 'typing.Any': + """ + Retrieves the identifier of the specified control. + +Args: + + hwnd(typing.Any):The handle to the control + +Returns: + + typing.Any + + """ + pass + + +def GetDlgItemText(hDlg:'int',IDDlgItem:'typing.Any') -> 'str': + """ + Returns the text of a dialog control + +Args: + + hDlg(int):Handle to a dialog window + IDDlgItem(typing.Any):The Id of a control within the dialog + +Returns: + + str + + """ + pass + + +def SetDlgItemText(hDlg:'int',IDDlgItem:'typing.Any',String:'typing.Union[typing.Any]') -> 'None': + """ + Sets the text for a window or control + +Args: + + hDlg(int):Handle to a dialog window + IDDlgItem(typing.Any):The Id of a control within the dialog + String(typing.Union[typing.Any]):The text to put in the control + +Returns: + + None + + """ + pass + + +def GetNextDlgTabItem(hDlg:'typing.Any',hCtl:'typing.Any',bPrevious:'typing.Any') -> 'typing.Any': + """ + Retrieves a handle to the first control that has the WS_TABSTOP style that precedes (or follows) the specified control. + +Args: + + hDlg(typing.Any):handle to dialog box + hCtl(typing.Any):handle to known control + bPrevious(typing.Any):direction flag + +Returns: + + typing.Any + + """ + pass + + +def GetNextDlgGroupItem(hDlg:'typing.Any',hCtl:'typing.Any',bPrevious:'typing.Any') -> 'typing.Any': + """ + Retrieves a handle to the first control in a group of controls that precedes (or follows) the specified control in a dialog box. + +Args: + + hDlg(typing.Any):handle to dialog box + hCtl(typing.Any):handle to known control + bPrevious(typing.Any):direction flag + +Returns: + + typing.Any + + """ + pass + + +def SetWindowText() -> 'None': + """ + Sets the window text. + +Args: + + + +Returns: + + None + + """ + pass + + +def GetWindowText(hwnd:'int') -> 'str': + """ + Get the window text. + +Args: + + hwnd(int):The handle to the windowCommentsNote that previous versions of PyWin32 returned a (empty) Unicode object when the string was empty, or an MBCS encoded string value otherwise. A String is now returned in all cases. + +Returns: + + str + + """ + pass + + +def InitCommonControls() -> 'None': + """ + Initializes the common controls. + +Args: + + + +Returns: + + None + + """ + pass + + +def InitCommonControlsEx(flag:'typing.Any') -> 'None': + """ + Initializes specific common controls. + +Args: + + flag(typing.Any):One of the ICC_ constants + +Returns: + + None + + """ + pass + + +def LoadCursor(hinstance:'typing.Any',resid:'typing.Any') -> 'typing.Any': + """ + Loads a cursor. + +Args: + + hinstance(typing.Any):The module to load from + resid(typing.Any):The resource ID + +Returns: + + typing.Any + + """ + pass + + +def SetCursor(hcursor:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hcursor(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def GetCursor() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def GetCursorInfo() -> 'tuple[int, int, int, int]': + """ + Retrieves information about the global cursor. + +Args: + + + +Returns: + + tuple[int, int, int, int] + + """ + pass + + +def CreateAcceleratorTable(accels:'tuple[tuple[typing.Any, typing.Any, typing.Any], ...]') -> 'typing.Any': + """ + Creates an accelerator table + +Args: + + accels(tuple[tuple[typing.Any, typing.Any, typing.Any], ...]):A sequence of (fVirt, key, cmd), as per the Win32 ACCEL structure. + +Returns: + + typing.Any + + """ + pass + + +def DestroyAccleratorTable(haccel:'typing.Any') -> 'None': + """ + Destroys an accelerator table + +Args: + + haccel(typing.Any): + +Returns: + + None + + """ + pass + + +def LoadMenu(hinstance:'typing.Any',resource_id:'typing.Union[str, typing.Any]') -> 'typing.Any': + """ + Loads a menu + +Args: + + hinstance(typing.Any): + resource_id(typing.Union[str, typing.Any]): + +Returns: + + typing.Any + + """ + pass + + +def DestroyMenu() -> 'None': + """ + Destroys a previously loaded menu. + +Args: + + + +Returns: + + None + + """ + pass + + +def SetMenu(hwnd:'int',hmenu:'typing.Any') -> 'None': + """ + Sets the menu for the specified window. + +Args: + + hwnd(typing.Any): + hmenu(typing.Any): + +Returns: + + None + + """ + pass + + +def GetMenu() -> 'None': + """ + Gets the menu for the specified window. + +Args: + + + +Returns: + + None + + """ + pass + + +def LoadIcon(hinstance:'typing.Any',resource_id:'typing.Union[str, typing.Any]') -> 'typing.Any': + """ + Loads an icon + +Args: + + hinstance(typing.Any): + resource_id(typing.Union[str, typing.Any]): + +Returns: + + typing.Any + + """ + pass + + +def CopyIcon(hicon:'typing.Any') -> 'typing.Any': + """ + Copies an icon + +Args: + + hicon(typing.Any):Existing icon + +Returns: + + typing.Any + + """ + pass + + +def DrawIcon(hDC:'typing.Any',X:'typing.Any',Y:'typing.Any',hicon:'typing.Any') -> 'None': + """ + None + +Args: + + hDC(typing.Any):handle to DC + X(typing.Any):x-coordinate of upper-left corner + Y(typing.Any):y-coordinate of upper-left corner + hicon(typing.Any):handle to icon + +Returns: + + None + + """ + pass + + +def DrawIconEx(hDC:'typing.Any',xLeft:'typing.Any',yTop:'typing.Any',hIcon:'typing.Any',cxWidth:'typing.Any',cyWidth:'typing.Any',istepIfAniCur:'typing.Any',hbrFlickerFreeDraw:'win32typing.PyGdiHANDLE',diFlags:'typing.Any') -> 'None': + """ + Draws an icon or cursor into the specified device context, + +performing the specified raster operations, and stretching or compressing the + +icon or cursor as specified. + +Args: + + hDC(typing.Any):handle to device context + xLeft(typing.Any):x-coord of upper left corner + yTop(typing.Any):y-coord of upper left corner + hIcon(typing.Any):handle to icon + cxWidth(typing.Any):icon width + cyWidth(typing.Any):icon height + istepIfAniCur(typing.Any):frame index, animated cursor + hbrFlickerFreeDraw(win32typing.PyGdiHANDLE):handle to background brush, can be None + diFlags(typing.Any):icon-drawing flags (win32con.DI_*) + +Returns: + + None + + """ + pass + + +def CreateIconIndirect(iconinfo:'win32typing.PyICONINFO') -> 'typing.Any': + """ + Creates an icon or cursor from an ICONINFO structure. + +Args: + + iconinfo(win32typing.PyICONINFO):Tuple defining the icon parameters + +Returns: + + typing.Any + + """ + pass + + +def CreateIconFromResource(bits:'str',fIcon:'typing.Any',ver:'typing.Any'=0x00030000) -> 'int': + """ + Creates an icon or cursor from resource bits describing the icon. + +Args: + + bits(str):The bits + fIcon(typing.Any):True if an icon, False if a cursor. + ver(typing.Any):Specifies the version number of the icon or cursor format for the resource bits pointed to by the presbits parameter. This parameter can be 0x00030000. + +Returns: + + int + + """ + pass + + +def LoadImage(hinst:'typing.Any',name:'typing.Union[str, typing.Any]',_type:'typing.Any',cxDesired:'typing.Any',cyDesired:'typing.Any',fuLoad:'typing.Any') -> 'typing.Any': + """ + Loads a bitmap, cursor or icon + +Args: + + hinst(typing.Any):Handle to an instance of the module that contains the image to be loaded. To load an OEM image, set this parameter to zero. + name(typing.Union[str, typing.Any]):Specifies the image to load. If the hInst parameter is non-zero and the fuLoad parameter omits LR_LOADFROMFILE, name specifies the image resource in the hInst module. If the image resource is to be loaded by name, the name parameter is a string that contains the name of the image resource. + _type(typing.Any):Specifies the type of image to be loaded. + cxDesired(typing.Any):Specifies the width, in pixels, of the icon or cursor. If this parameter is zero and the fuLoad parameter is LR_DEFAULTSIZE, the function uses the SM_CXICON or SM_CXCURSOR system metric value to set the width. If this parameter is zero and LR_DEFAULTSIZE is not used, the function uses the actual resource width. + cyDesired(typing.Any):Specifies the height, in pixels, of the icon or cursor. If this parameter is zero and the fuLoad parameter is LR_DEFAULTSIZE, the function uses the SM_CYICON or SM_CYCURSOR system metric value to set the height. If this parameter is zero and LR_DEFAULTSIZE is not used, the function uses the actual resource height. + fuLoad(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def DeleteObject(handle:'win32typing.PyGdiHANDLE') -> 'None': + """ + Deletes a logical pen, brush, font, bitmap, region, or palette, freeing all system resources associated with the object. After the object is deleted, the specified handle is no longer valid. + +Args: + + handle(win32typing.PyGdiHANDLE):handle to the object to delete. + +Returns: + + None + + """ + pass + + +def BitBlt(hdcDest:'typing.Any',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',hdcSrc:'typing.Any',nXSrc:'typing.Any',nYSrc:'typing.Any',dwRop:'typing.Any') -> 'None': + """ + Performs a bit-block transfer of the color data corresponding + +to a rectangle of pixels from the specified source device context into a + +destination device context. + +Args: + + hdcDest(typing.Any):handle to destination DC + x(typing.Any):x-coord of destination upper-left corner + y(typing.Any):y-coord of destination upper-left corner + width(typing.Any):width of destination rectangle + height(typing.Any):height of destination rectangle + hdcSrc(typing.Any):handle to source DC + nXSrc(typing.Any):x-coordinate of source upper-left corner + nYSrc(typing.Any):y-coordinate of source upper-left corner + dwRop(typing.Any):raster operation code + +Returns: + + None + + """ + pass + + +def StretchBlt(hdcDest:'typing.Any',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',hdcSrc:'typing.Any',nXSrc:'typing.Any',nYSrc:'typing.Any',nWidthSrc:'typing.Any',nHeightSrc:'typing.Any',dwRop:'typing.Any') -> 'None': + """ + Copies a bitmap from a source rectangle into a destination + +rectangle, stretching or compressing the bitmap to fit the dimensions of the + +destination rectangle, if necessary + +Args: + + hdcDest(typing.Any):handle to destination DC + x(typing.Any):x-coord of destination upper-left corner + y(typing.Any):y-coord of destination upper-left corner + width(typing.Any):width of destination rectangle + height(typing.Any):height of destination rectangle + hdcSrc(typing.Any):handle to source DC + nXSrc(typing.Any):x-coord of source upper-left corner + nYSrc(typing.Any):y-coord of source upper-left corner + nWidthSrc(typing.Any):width of source rectangle + nHeightSrc(typing.Any):height of source rectangle + dwRop(typing.Any):raster operation code + +Returns: + + None + + """ + pass + + +def PatBlt(hdc:'int',XLeft:'typing.Any',YLeft:'typing.Any',Width:'typing.Any',Height:'typing.Any',Rop:'typing.Any') -> 'None': + """ + Paints a rectangle by combining the current brush with existing colors + +Args: + + hdc(int):Handle to a device context + XLeft(typing.Any):Horizontal pos + YLeft(typing.Any):Vertical pos + Width(typing.Any):Width of rectangular area + Height(typing.Any):Height of rectangular area + Rop(typing.Any):Raster operation, one of PATCOPY,PATINVERT,DSTINVERT,BLACKNESS,WHITENESS + +Returns: + + None + + """ + pass + + +def SetStretchBltMode(hdc:'int',StretchMode:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hdc(int):Handle to a device context + StretchMode(typing.Any):One of BLACKONWHITE,COLORONCOLOR,HALFTONE,STRETCH_ANDSCANS,STRETCH_DELETESCANS,STRETCH_HALFTONE,STRETCH_ORSCANS, or WHITEONBLACK (from win32con)Return ValueIf the function succeeds, the return value is the previous stretching mode. If the function fails, the return value is zero. + +Returns: + + typing.Any:One of BLACKONWHITE,COLORONCOLOR,HALFTONE,STRETCH_ANDSCANS,STRETCH_DELETESCANS,STRETCH_HALFTONE,STRETCH_ORSCANS, or WHITEONBLACK (from win32con)Return ValueIf the function succeeds, the return value is the previous stretching mode. + +If the function fails, the return value is zero. + + + """ + pass + + +def GetStretchBltMode(hdc:'int') -> 'typing.Any': + """ + None + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns one of BLACKONWHITE,COLORONCOLOR,HALFTONE,STRETCH_ANDSCANS,STRETCH_DELETESCANS,STRETCH_HALFTONE,STRETCH_ORSCANS,WHITEONBLACK, or 0 on error. + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns one of BLACKONWHITE,COLORONCOLOR,HALFTONE,STRETCH_ANDSCANS,STRETCH_DELETESCANS,STRETCH_HALFTONE,STRETCH_ORSCANS,WHITEONBLACK, or 0 on error. + + + """ + pass + + +def TransparentBlt(Dest:'int',XOriginDest:'typing.Any',YOriginDest:'typing.Any',WidthDest:'typing.Any',HeightDest:'typing.Any',Src:'int',XOriginSrc:'typing.Any',YOriginSrc:'typing.Any',WidthSrc:'typing.Any',HeightSrc:'typing.Any',Transparent:'typing.Any') -> 'None': + """ + Transfers color from one DC to another, with one color treated as transparent + +Args: + + Dest(int):Destination device context handle + XOriginDest(typing.Any):X pos of dest rect + YOriginDest(typing.Any):Y pos of dest rect + WidthDest(typing.Any):Width of dest rect + HeightDest(typing.Any):Height of dest rect + Src(int):Source DC handle + XOriginSrc(typing.Any):X pos of src rect + YOriginSrc(typing.Any):Y pos of src rect + WidthSrc(typing.Any):Width of src rect + HeightSrc(typing.Any):Height of src rect + Transparent(typing.Any):RGB color value that will be transparent + +Returns: + + None + + """ + pass + + +def MaskBlt(Dest:'int',XDest:'typing.Any',YDest:'typing.Any',Width:'typing.Any',Height:'typing.Any',Src:'int',XSrc:'typing.Any',YSrc:'typing.Any',Mask:'win32typing.PyGdiHANDLE',xMask:'typing.Any',yMask:'typing.Any',Rop:'typing.Any') -> 'None': + """ + Combines the color data for the source and destination + +bitmaps using the specified mask and raster operation. + +Args: + + Dest(int):Destination device context handle + XDest(typing.Any):X pos of dest rect + YDest(typing.Any):Y pos of dest rect + Width(typing.Any):Width of rect to be copied + Height(typing.Any):Height of rect to be copied + Src(int):Source DC handle + XSrc(typing.Any):X pos of src rect + YSrc(typing.Any):Y pos of src rect + Mask(win32typing.PyGdiHANDLE):Handle to monochrome bitmap used to mask color + xMask(typing.Any):X pos in mask + yMask(typing.Any):Y pos in mask + Rop(typing.Any):Foreground and background raster operations. See MSDN docs for how to construct this value.CommentsThis function is not supported on Win9x.Win32 API References + +Returns: + + None + + """ + pass + + +def AlphaBlend(Dest:'int',XOriginDest:'typing.Any',YOriginDest:'typing.Any',WidthDest:'typing.Any',HeightDest:'typing.Any',Src:'int',XOriginSrc:'typing.Any',YOriginSrc:'typing.Any',WidthSrc:'typing.Any',HeightSrc:'typing.Any',blendFunction:'win32typing.PyBLENDFUNCTION') -> 'None': + """ + Transfers color information using alpha blending + +Args: + + Dest(int):Destination device context handle + XOriginDest(typing.Any):X pos of dest rect + YOriginDest(typing.Any):Y pos of dest rect + WidthDest(typing.Any):Width of dest rect + HeightDest(typing.Any):Height of dest rect + Src(int):Source DC handle + XOriginSrc(typing.Any):X pos of src rect + YOriginSrc(typing.Any):Y pos of src rect + WidthSrc(typing.Any):Width of src rect + HeightSrc(typing.Any):Height of src rect + blendFunction(win32typing.PyBLENDFUNCTION):Alpha blending parameters + +Returns: + + None + + """ + pass + + +def ImageList_Add(himl:'typing.Any',hbmImage:'win32typing.PyGdiHANDLE',hbmMask:'win32typing.PyGdiHANDLE') -> 'typing.Any': + """ + Adds an image or images to an image list. + +Args: + + himl(typing.Any):Handle to the image list. + hbmImage(win32typing.PyGdiHANDLE):Handle to the bitmap that contains the image or images. The number of images is inferred from the width of the bitmap. + hbmMask(win32typing.PyGdiHANDLE):Handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignoredReturn ValueReturns the index of the first new image if successful, or -1 otherwise. + +Returns: + + typing.Any:Handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignoredReturn ValueReturns the index of the first new image if successful, or -1 otherwise. + + + """ + pass + + +def ImageList_Create() -> 'typing.Any': + """ + Create an image list + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_Destroy() -> 'typing.Any': + """ + Destroy an imagelist + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_Draw() -> 'typing.Any': + """ + Draw an image on an HDC + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_DrawEx() -> 'typing.Any': + """ + Draw an image on an HDC + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_GetIcon() -> 'typing.Any': + """ + Extract an icon from an imagelist + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_GetImageCount() -> 'typing.Any': + """ + Return count of images in imagelist + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_LoadImage() -> 'typing.Any': + """ + Loads bitmaps, cursors or icons, creates imagelist + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_LoadBitmap() -> 'typing.Any': + """ + Creates an image list from the specified bitmap resource. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_Remove() -> 'typing.Any': + """ + Remove an image from an imagelist + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_Replace() -> 'typing.Any': + """ + Replace an image in an imagelist with a bitmap image + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_ReplaceIcon() -> 'typing.Any': + """ + Replace an image in an imagelist with an icon image + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_SetBkColor() -> 'typing.Any': + """ + Set the background color for the imagelist + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ImageList_SetOverlayImage(hImageList:'typing.Any',iImage:'typing.Any',iOverlay:'typing.Any') -> 'None': + """ + Adds a specified image to the list of images to be used as overlay masks. An image list can have up to four overlay masks in version 4.70 and earlier and up to 15 in version 4.71. The function assigns an overlay mask index to the specified image. + +Args: + + hImageList(typing.Any): + iImage(typing.Any): + iOverlay(typing.Any): + +Returns: + + None + + """ + pass + + +def MessageBox(parent:'typing.Any',text:'typing.Union[str]',caption:'typing.Union[str]',flags:'typing.Any') -> 'typing.Any': + """ + Displays a message box + +Args: + + parent(typing.Any):The parent window + text(typing.Union[str]):The text for the message box + caption(typing.Union[str]):The caption for the message box + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def MessageBeep(_type:'typing.Any') -> 'None': + """ + Plays a waveform sound. + +Args: + + _type(typing.Any):The type of the beep + +Returns: + + None + + """ + pass + + +def CreateWindow(className:'typing.Union[str, typing.Any]',windowTitle:'str',style:'typing.Any',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',parent:'typing.Any',menu:'typing.Any',hinstance:'typing.Any',reserved:'typing.Any') -> 'typing.Any': + """ + Creates a new window. + +Args: + + className(typing.Union[str, typing.Any]): + windowTitle(str): + style(typing.Any):The style for the window. + x(typing.Any): + y(typing.Any): + width(typing.Any): + height(typing.Any): + parent(typing.Any):Handle to the parent window. + menu(typing.Any):Handle to the menu to use for this window. + hinstance(typing.Any): + reserved(typing.Any):Must be None + +Returns: + + typing.Any + + """ + pass + + +def DestroyWindow(hwnd:'int') -> 'None': + """ + None + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + None + + """ + pass + + +def EnableWindow(hWnd:'int',bEnable:'typing.Any') -> 'typing.Any': + """ + Enables and disables keyboard and mouse input to a window + +Args: + + hWnd(int):Handle to window + bEnable(typing.Any):True to enable input to the window, False to disable inputReturn ValueReturns True if window was already disabled when call was made, False otherwise + +Returns: + + typing.Any:True to enable input to the window, False to disable inputReturn ValueReturns True if window was already disabled when call was made, False otherwise + + + """ + pass + + +def FindWindow(ClassName:'win32typing.PyResourceId',WindowName:'str') -> 'int': + """ + Retrieves a handle to the top-level window whose class name and window name match the specified strings. + +Args: + + ClassName(win32typing.PyResourceId):Name or atom of window class to find, can be None + WindowName(str):Title of window to find, can be None + +Returns: + + int + + """ + pass + + +def FindWindowEx(Parent:'int',ChildAfter:'int',ClassName:'win32typing.PyResourceId',WindowName:'str') -> 'int': + """ + Retrieves a handle to the top-level window whose class name and window name match the specified strings. + +Args: + + Parent(int):Window whose child windows will be searched. If 0, desktop window is assumed. + ChildAfter(int):Child window after which to search in Z-order, can be 0 to search all + ClassName(win32typing.PyResourceId):Name or atom of window class to find, can be None + WindowName(str):Title of window to find, can be None + +Returns: + + int + + """ + pass + + +def DragAcceptFiles(hwnd:'int',fAccept:'typing.Any') -> 'None': + """ + Registers whether a window accepts dropped files. + +Args: + + hwnd(typing.Any):Handle to the Window + fAccept(typing.Any):Value that indicates if the window identified by the hWnd parameter accepts dropped files. This value is True to accept dropped files or False to discontinue accepting dropped files. + +Returns: + + None + + """ + pass + + +def DragDetect(hwnd:'int',point:'tuple[typing.Any, typing.Any]') -> 'None': + """ + captures the mouse and tracks its movement until the user releases the left button, presses the ESC key, or moves the mouse outside the drag rectangle around the specified point. + +Args: + + hwnd(typing.Any):Handle to the Window + point(tuple[typing.Any, typing.Any]):Initial position of the mouse, in screen coordinates. The function determines the coordinates of the drag rectangle by using this point.Return ValueIf the user moved the mouse outside of the drag rectangle while holding down the left button , the return value is nonzero. If the user did not move the mouse outside of the drag rectangle while holding down the left button , the return value is zero. + +Returns: + + None:Initial position of the mouse, in screen coordinates. The function determines the coordinates of the drag rectangle by using this point.Return ValueIf the user moved the mouse outside of the drag rectangle while holding down the left button , the return value is nonzero. + +If the user did not move the mouse outside of the drag rectangle while holding down the left button , the return value is zero. + + + """ + pass + + +def SetDoubleClickTime(newVal:'typing.Any') -> 'None': + """ + None + +Args: + + newVal(typing.Any): + +Returns: + + None + + """ + pass + + +def GetDoubleClickTime() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def HideCaret(hWnd:'int') -> 'None': + """ + Hides the caret + +Args: + + hWnd(int):Window that owns the caret, can be 0. + +Returns: + + None + + """ + pass + + +def SetCaretPos(x:'typing.Any',y:'typing.Any') -> 'None': + """ + Changes the position of the caret + +Args: + + x(typing.Any):horizontal position + y(typing.Any):vertical position + +Returns: + + None + + """ + pass + + +def GetCaretPos() -> 'tuple[typing.Any, typing.Any]': + """ + Returns the current caret position + +Args: + + + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def ShowCaret(hWnd:'int') -> 'None': + """ + Shows the caret at its current position + +Args: + + hWnd(int):Window that owns the caret, can be 0. + +Returns: + + None + + """ + pass + + +def ShowWindow(hWnd:'typing.Any',cmdShow:'typing.Any') -> 'typing.Any': + """ + Shows or hides a window and changes its state + +Args: + + hWnd(typing.Any):The handle to the window + cmdShow(typing.Any):Combination of win32con.SW_* flags + +Returns: + + typing.Any + + """ + pass + + +def IsWindowVisible(hwnd:'int') -> 'typing.Any': + """ + Indicates if the window has the WS_VISIBLE style. + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + typing.Any + + """ + pass + + +def IsWindowEnabled(hwnd:'int') -> 'typing.Any': + """ + Indicates if the window is enabled. + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + typing.Any + + """ + pass + + +def SetFocus(hwnd:'int') -> 'None': + """ + Sets focus to the specified window. + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + None + + """ + pass + + +def GetFocus() -> 'None': + """ + Returns the HWND of the window with focus. + +Args: + + + +Returns: + + None + + """ + pass + + +def UpdateWindow(hwnd:'int') -> 'None': + """ + None + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + None + + """ + pass + + +def BringWindowToTop(hwnd:'int') -> 'None': + """ + None + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + None + + """ + pass + + +def SetActiveWindow(hwnd:'int') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + typing.Any + + """ + pass + + +def GetActiveWindow() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def SetForegroundWindow(hwnd:'int') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + typing.Any + + """ + pass + + +def GetForegroundWindow() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def GetClientRect(hwnd:'int') -> 'tuple[int, int, int, int]': + """ + Returns the rectangle of the client area of a window, in client coordinates + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + tuple[int, int, int, int] + + """ + pass + + +def GetDC(hwnd:'int') -> 'typing.Any': + """ + Gets the device context for the window. + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + typing.Any + + """ + pass + + +def SaveDC(hdc:'int') -> 'typing.Any': + """ + Save the state of a device context + +Args: + + hdc(int):Handle to device contextReturn ValueReturns a value identifying the state that can be passed to win32gui::RestoreDC. On error, returns 0. + +Returns: + + typing.Any:Handle to device contextReturn ValueReturns a value identifying the state that can be passed to win32gui::RestoreDC. On error, returns 0. + + + """ + pass + + +def RestoreDC(hdc:'int',SavedDC:'typing.Any') -> 'None': + """ + Restores a device context state + +Args: + + hdc(int):Handle to a device context + SavedDC(typing.Any):Identifier of state to be restored, as returned by win32gui::SaveDC. + +Returns: + + None + + """ + pass + + +def DeleteDC(hdc:'typing.Any') -> 'None': + """ + Deletes a DC + +Args: + + hdc(typing.Any):The source DC + +Returns: + + None + + """ + pass + + +def CreateCompatibleDC(dc:'typing.Any') -> 'typing.Any': + """ + Creates a memory device context (DC) compatible with the specified device. + +Args: + + dc(typing.Any):handle to DC + +Returns: + + typing.Any + + """ + pass + + +def CreateCompatibleBitmap(hdc:'typing.Any',width:'typing.Any',height:'typing.Any') -> 'win32typing.PyGdiHANDLE': + """ + Creates a bitmap compatible with the device that is associated with the specified device context. + +Args: + + hdc(typing.Any):handle to DC + width(typing.Any):width of bitmap, in pixels + height(typing.Any):height of bitmap, in pixels + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def CreateBitmap(width:'typing.Any',height:'typing.Any',cPlanes:'typing.Any',cBitsPerPixel:'typing.Any',bitmap_bits:'typing.Any') -> 'win32typing.PyGdiHANDLE': + """ + Creates a bitmap + +Args: + + width(typing.Any):bitmap width, in pixels + height(typing.Any):bitmap height, in pixels + cPlanes(typing.Any):number of color planes + cBitsPerPixel(typing.Any):number of bits to identify color + bitmap_bits(typing.Any):Must be None + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def SelectObject(hdc:'typing.Any',_object:'typing.Any') -> 'typing.Any': + """ + Selects an object into the specified device context (DC). The new object replaces the previous object of the same type. + +Args: + + hdc(typing.Any):handle to DC + _object(typing.Any):The GDI object + +Returns: + + typing.Any + + """ + pass + + +def GetCurrentObject(hdc:'int',ObjectType:'typing.Any') -> 'int': + """ + Retrieves currently selected object from a DC + +Args: + + hdc(int):Handle to a device context + ObjectType(typing.Any):Type of object to retrieve, one of win32con.OBJ_*; + +Returns: + + int + + """ + pass + + +def GetWindowRect(hwnd:'int') -> 'tuple[int, int, int, int]': + """ + Returns the rectangle for a window in screen coordinates + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + tuple[int, int, int, int] + + """ + pass + + +def GetStockObject(Object:'typing.Any') -> 'int': + """ + Creates a handle to one of the standard system Gdi objects + +Args: + + Object(typing.Any):One of *_BRUSH, *_PEN, *_FONT, or *_PALLETTE constants + +Returns: + + int + + """ + pass + + +def PostQuitMessage(rc:'typing.Any') -> 'None': + """ + None + +Args: + + rc(typing.Any): + +Returns: + + None + + """ + pass + + +def WaitMessage() -> 'None': + """ + Waits for a message + +Args: + + + +Returns: + + None + + """ + pass + + +def SetWindowPos(hWnd:'int',InsertAfter:'int',X:'typing.Any',Y:'typing.Any',cx:'typing.Any',cy:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Sets the position and size of a window + +Args: + + hWnd(int):Handle to the window + InsertAfter(int):Window that hWnd will be placed below. Can be a window handle or one of HWND_BOTTOM,HWND_NOTOPMOST,HWND_TOP, or HWND_TOPMOST + X(typing.Any):New X coord + Y(typing.Any):New Y coord + cx(typing.Any):New width of window + cy(typing.Any):New height of window + Flags(typing.Any):Combination of win32con.SWP_* flags + +Returns: + + None + + """ + pass + + +def GetWindowPlacement() -> 'typing.Any': + """ + Returns placement information about the current window. + +Args: + + + +Returns: + + typing.Any:win32gui.GetWindowPlacement + +tuple = GetWindowPlacement()Returns placement information about the current window. +Return ValueThe result is a tuple of + +(flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) + + + +Item + + +Description + + + +flagsOne of the WPF_* constants +showCmdCurrent state - one of the SW_* constants. +minposSpecifies the coordinates of the window's upper-left corner when the window is minimized. +maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. +normalposSpecifies the window's coordinates when the window is in the restored position. + + + """ + pass + + +def SetWindowPlacement(hWnd:'int',placement:'typing.Any') -> 'None': + """ + Sets the windows placement + +Args: + + hWnd(int):Handle to a window + placement(typing.Any):A tuple representing the WINDOWPLACEMENT structure. + +Returns: + + None + + """ + pass + + +def RegisterClass(wndClass:'win32typing.PyWNDCLASS') -> 'typing.Any': + """ + Registers a window class. + +Args: + + wndClass(win32typing.PyWNDCLASS):An object describing the window class. + +Returns: + + typing.Any + + """ + pass + + +def UnregisterClass(atom:'win32typing.PyResourceId',hinst:'int') -> 'None': + """ + None + +Args: + + atom(win32typing.PyResourceId):The atom or classname identifying the class previously registered. + hinst(int):The handle to the instance unregistering the class, can be None + +Returns: + + None + + """ + pass + + +def PumpMessages() -> 'None': + """ + Runs a message loop until a WM_QUIT message is received. + +Args: + + + +Returns: + + None:win32gui::PumpWaitingMessages +Return ValueReturns exit code from PostQuitMessage when a WM_QUIT message is received + + + """ + pass + + +def PumpWaitingMessages() -> 'typing.Any': + """ + Pumps all waiting messages for the current thread. + +Args: + + + +Returns: + + typing.Any:Search for PeekMessage and DispatchMessage at msdn, google or google groups. +Return ValueReturns non-zero (exit code from PostQuitMessage) if a WM_QUIT message was received, else 0 + + + """ + pass + + +def GetMessage(hwnd:'int',_min:'typing.Any',_max:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any): + _min(typing.Any): + _max(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def TranslateMessage(msg:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + msg(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def DispatchMessage(msg:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + msg(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def TranslateAccelerator(hwnd:'int',haccel:'typing.Any',msg:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any): + haccel(typing.Any): + msg(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def PeekMessage(hwnd:'int',filterMin:'typing.Any',filterMax:'typing.Any',removalOptions:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any): + filterMin(typing.Any): + filterMax(typing.Any): + removalOptions(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def Shell_NotifyIcon(Message:'typing.Any',nid:'win32typing.PyNOTIFYICONDATA') -> 'None': + """ + Adds, removes or modifies a taskbar icon. + +Args: + + Message(typing.Any):One of win32gui.NIM_* flags + nid(win32typing.PyNOTIFYICONDATA):Tuple containing NOTIFYICONDATA info + +Returns: + + None + + """ + pass + + +def GetSystemMenu(hwnd:'int',bRevert:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hwnd(typing.Any):The handle to the window + bRevert(typing.Any):Return ValueThe result is a HMENU to the menu. + +Returns: + + typing.Any:Return ValueThe result is a HMENU to the menu. + + + """ + pass + + +def DrawMenuBar(hwnd:'int') -> 'None': + """ + None + +Args: + + hwnd(typing.Any):The handle to the window + +Returns: + + None + + """ + pass + + +def MoveWindow(hwnd:'int',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',bRepaint:'typing.Any') -> 'None': + """ + None + +Args: + + hwnd(typing.Any):The handle to the window + x(typing.Any): + y(typing.Any): + width(typing.Any): + height(typing.Any): + bRepaint(typing.Any): + +Returns: + + None + + """ + pass + + +def CloseWindow() -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +def DeleteMenu(hmenu:'typing.Any',position:'typing.Any',flags:'typing.Any') -> 'None': + """ + None + +Args: + + hmenu(typing.Any):The handle to the menu + position(typing.Any):The position to delete. + flags(typing.Any): + +Returns: + + None + + """ + pass + + +def RemoveMenu(hmenu:'typing.Any',position:'typing.Any',flags:'typing.Any') -> 'None': + """ + None + +Args: + + hmenu(typing.Any):The handle to the menu + position(typing.Any):The position to delete. + flags(typing.Any): + +Returns: + + None + + """ + pass + + +def CreateMenu() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any:win32gui.CreateMenu + +int = CreateMenu() +Return ValueThe result is a HMENU to the new menu. + + + """ + pass + + +def CreatePopupMenu() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any:win32gui.CreatePopupMenu + +int = CreatePopupMenu() +Return ValueThe result is a HMENU to the new menu. + + + """ + pass + + +def TrackPopupMenu(hmenu:'typing.Any',flags:'typing.Any',x:'typing.Any',y:'typing.Any',reserved:'typing.Any',hwnd:'int',prcRect:'win32typing.PyRECT') -> 'typing.Any': + """ + Display popup shortcut menu + +Args: + + hmenu(typing.Any):The handle to the menu + flags(typing.Any):flags + x(typing.Any):x pos + y(typing.Any):y pos + reserved(typing.Any):reserved + hwnd(typing.Any):owner window + prcRect(win32typing.PyRECT):Pointer to rec (can be None) + +Returns: + + typing.Any + + """ + pass + + +def CommDlgExtendedError() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def ExtractIcon(hinstance:'typing.Any',moduleName:'typing.Union[str]',index:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hinstance(typing.Any): + moduleName(typing.Union[str]): + index(typing.Any):CommentsYou must destroy the icon handle returned by calling the win32gui::DestroyIcon function.Return ValueThe result is a HICON. + +Returns: + + typing.Any:Comments + +You must destroy the icon handle returned by calling the win32gui::DestroyIcon function. +Return ValueThe result is a HICON. + + + """ + pass + + +def ExtractIconEx(moduleName:'str',index:'typing.Any',numIcons:'typing.Any'=1) -> 'typing.Any': + """ + None + +Args: + + moduleName(str): + index(typing.Any): + numIcons(typing.Any):CommentsYou must destroy each icon handle returned by calling the win32gui::DestroyIcon function.Return ValueIf index==-1, the result is an integer with the number of icons in the file, otherwise it is 2 arrays of icon handles. + +Returns: + + typing.Any: +Comments + +You must destroy each icon handle returned by calling the win32gui::DestroyIcon function. +Return ValueIf index==-1, the result is an integer with the number of icons in + +the file, otherwise it is 2 arrays of icon handles. + + + """ + pass + + +def DestroyIcon(hicon:'typing.Any') -> 'None': + """ + None + +Args: + + hicon(typing.Any):The icon to destroy. + +Returns: + + None + + """ + pass + + +def GetIconInfo(hicon:'int') -> 'win32typing.PyICONINFO': + """ + Returns parameters for an icon or cursor + +Args: + + hicon(int):The icon to queryReturn ValueThe result is a tuple of (fIcon, xHotspot, yHotspot, hbmMask, hbmColor) The hbmMask and hbmColor items are bitmaps created for the caller, so must be freed. + +Returns: + + win32typing.PyICONINFO:The icon to queryReturn ValueThe result is a tuple of (fIcon, xHotspot, yHotspot, hbmMask, hbmColor) + +The hbmMask and hbmColor items are bitmaps created for the caller, so must be freed. + + + """ + pass + + +def ScreenToClient(hWnd:'int',Point:'tuple[typing.Any, typing.Any]') -> 'tuple[typing.Any, typing.Any]': + """ + Convert screen coordinates to client coords + +Args: + + hWnd(int):Handle to a window + Point(tuple[typing.Any, typing.Any]):Screen coordinates to be converted + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def ClientToScreen(hWnd:'int',Point:'tuple[typing.Any, typing.Any]') -> 'tuple[typing.Any, typing.Any]': + """ + Convert client coordinates to screen coords + +Args: + + hWnd(int):Handle to a window + Point(tuple[typing.Any, typing.Any]):Client coordinates to be converted + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def PaintDesktop(hdc:'int') -> 'None': + """ + Fills a DC with the destop background + +Args: + + hdc(int):Handle to a device context + +Returns: + + None + + """ + pass + + +def RedrawWindow(hWnd:'int',rcUpdate:'tuple[int, int, int, int]',hrgnUpdate:'win32typing.PyGdiHANDLE',flags:'typing.Any') -> 'None': + """ + Causes a portion of a window to be redrawn + +Args: + + hWnd(int):Handle to window to be redrawn + rcUpdate(tuple[int, int, int, int]):Rectangle (left, top, right, bottom) identifying part of window to be redrawn, can be None + hrgnUpdate(win32typing.PyGdiHANDLE):Handle to region to be redrawn, can be None to indicate entire client area + flags(typing.Any):Combination of win32con.RDW_* flags + +Returns: + + None + + """ + pass + + +def GetTextExtentPoint32(hdc:'int',_str:'str') -> 'tuple[typing.Any, typing.Any]': + """ + Computes the width and height of the specified string of text. + +Args: + + hdc(int):The device context + _str(str):The string to measure. + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def GetTextMetrics() -> 'typing.Any': + """ + Returns info for the font selected into a DC + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def GetTextCharacterExtra(hdc:'int') -> 'typing.Any': + """ + Returns the space between characters + +Args: + + hdc(int):Handle to a device context + +Returns: + + typing.Any + + """ + pass + + +def SetTextCharacterExtra(hdc:'int',CharExtra:'typing.Any') -> 'typing.Any': + """ + Sets the spacing between characters + +Args: + + hdc(int):Handle to a device context + CharExtra(typing.Any):Space between adjacent chars, in logical unitsReturn ValueReturns the previous spacing + +Returns: + + typing.Any:Space between adjacent chars, in logical unitsReturn ValueReturns the previous spacing + + + """ + pass + + +def GetTextAlign(hdc:'int') -> 'typing.Any': + """ + Returns horizontal and vertical alignment for text in a device context + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns combination of win32con.TA_* flags + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns combination of win32con.TA_* flags + + + """ + pass + + +def SetTextAlign(hdc:'int',Mode:'typing.Any') -> 'typing.Any': + """ + Sets horizontal and vertical alignment for text in a device context + +Args: + + hdc(int):Handle to a device context + Mode(typing.Any):Combination of win32con.TA_* constantsReturn ValueReturns the previous alignment flags + +Returns: + + typing.Any:Combination of win32con.TA_* constantsReturn ValueReturns the previous alignment flags + + + """ + pass + + +def GetTextFace(hdc:'int') -> 'str': + """ + Retrieves the name of the font currently selected in a DC + +Args: + + hdc(int):Handle to a device contextCommentsCalls unicode api function (GetTextFaceW) + +Returns: + + str + + """ + pass + + +def GetMapMode(hdc:'int') -> 'typing.Any': + """ + Returns the method a device context uses to translate logical units to physical units + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns one of win32con.MM_* values + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns one of win32con.MM_* values + + + """ + pass + + +def SetMapMode(hdc:'int',MapMode:'typing.Any') -> 'typing.Any': + """ + Sets the method used for translating logical units to device units + +Args: + + hdc(int):Handle to a device context + MapMode(typing.Any):The new mapping mode (win32con.MM_*)Return ValueReturns the previous mapping mode, one of win32con.MM_* constants + +Returns: + + typing.Any:The new mapping mode (win32con.MM_*)Return ValueReturns the previous mapping mode, one of win32con.MM_* constants + + + """ + pass + + +def GetGraphicsMode(hdc:'int') -> 'typing.Any': + """ + Determines if advanced GDI features are enabled for a device context + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns GM_COMPATIBLE or GM_ADVANCED + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns GM_COMPATIBLE or GM_ADVANCED + + + """ + pass + + +def SetGraphicsMode(hdc:'int',Mode:'typing.Any') -> 'typing.Any': + """ + Enables or disables advanced graphics features for a DC + +Args: + + hdc(int):Handle to a device context + Mode(typing.Any):GM_COMPATIBLE or GM_ADVANCED (from win32con)Return ValueReturns the previous mode, one of win32con.GM_COMPATIBLE or win32con.GM_ADVANCED + +Returns: + + typing.Any:GM_COMPATIBLE or GM_ADVANCED (from win32con)Return ValueReturns the previous mode, one of win32con.GM_COMPATIBLE or win32con.GM_ADVANCED + + + """ + pass + + +def GetLayout(hdc:'int') -> 'typing.Any': + """ + Retrieves the layout mode of a device context + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns one of win32con.LAYOUT_* + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns one of win32con.LAYOUT_* + + + """ + pass + + +def SetLayout(hdc:'int',Layout:'typing.Any') -> 'typing.Any': + """ + Sets the layout for a device context + +Args: + + hdc(int):Handle to a device context + Layout(typing.Any):One of win32con.LAYOUT_* constantsReturn ValueReturns the previous layout mode + +Returns: + + typing.Any:One of win32con.LAYOUT_* constantsReturn ValueReturns the previous layout mode + + + """ + pass + + +def GetPolyFillMode(hdc:'int') -> 'typing.Any': + """ + Returns the polygon filling mode for a device context + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns win32con.ALTERNATE or win32con.WINDING + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns win32con.ALTERNATE or win32con.WINDING + + + """ + pass + + +def SetPolyFillMode(hdc:'int',PolyFillMode:'typing.Any') -> 'typing.Any': + """ + Sets the polygon filling mode for a device context + +Args: + + hdc(int):Handle to a device context + PolyFillMode(typing.Any):One of ALTERNATE or WINDINGReturn ValueReturns the previous mode, one of win32con.ALTERNATE or win32con.WINDING + +Returns: + + typing.Any:One of ALTERNATE or WINDINGReturn ValueReturns the previous mode, one of win32con.ALTERNATE or win32con.WINDING + + + """ + pass + + +def GetWorldTransform(hdc:'int') -> 'win32typing.PyXFORM': + """ + Retrieves a device context's coordinate space translation matrix + +Args: + + hdc(int):Handle to a device contextCommentsDC's mode must be set to GM_ADVANCED. See win32gui::SetGraphicsMode. + +Returns: + + win32typing.PyXFORM + + """ + pass + + +def SetWorldTransform(hdc:'int',Xform:'win32typing.PyXFORM') -> 'None': + """ + Transforms a device context's coordinate space + +Args: + + hdc(int):Handle to a device context + Xform(win32typing.PyXFORM):Matrix defining the transformationCommentsDC's mode must be set to GM_ADVANCED. See win32gui::SetGraphicsMode. + +Returns: + + None + + """ + pass + + +def ModifyWorldTransform(hdc:'int',Xform:'win32typing.PyXFORM',Mode:'typing.Any') -> 'None': + """ + Combines a coordinate tranformation with device context's current transformation + +Args: + + hdc(int):Handle to a device context + Xform(win32typing.PyXFORM):Transformation to be applied. Ignored if Mode is MWT_IDENTITY. + Mode(typing.Any):One of win32con.MWT_* values specifying how transformations will be combinedCommentsDC's mode must be set to GM_ADVANCED. See win32gui::SetGraphicsMode. + +Returns: + + None + + """ + pass + + +def CombineTransform(xform1:'win32typing.PyXFORM',xform2:'win32typing.PyXFORM') -> 'win32typing.PyXFORM': + """ + Combines two coordinate space transformations + +Args: + + xform1(win32typing.PyXFORM):First transformation + xform2(win32typing.PyXFORM):Second transformation + +Returns: + + win32typing.PyXFORM + + """ + pass + + +def GetWindowOrgEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': + """ + Retrievs the window origin for a DC + +Args: + + hdc(int):Handle to a device context + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def SetWindowOrgEx(hdc:'int',X:'typing.Any',Y:'typing.Any') -> 'tuple[typing.Any, typing.Any]': + """ + Changes the window origin for a DC + +Args: + + hdc(int):Handle to a device context + X(typing.Any):New X coord in logical units + Y(typing.Any):New Y coord in logical unitsReturn ValueReturns the previous origin + +Returns: + + tuple[typing.Any, typing.Any]:New Y coord in logical unitsReturn ValueReturns the previous origin + + + """ + pass + + +def GetViewportOrgEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': + """ + Retrievs the origin for a DC's viewport + +Args: + + hdc(int):Handle to a device context + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def SetViewportOrgEx(hdc:'int',X:'typing.Any',Y:'typing.Any') -> 'tuple[typing.Any, typing.Any]': + """ + Changes the viewport origin for a DC + +Args: + + hdc(int):Handle to a device context + X(typing.Any):New X coord in logical units + Y(typing.Any):New Y coord in logical unitsReturn ValueReturns the previous origin as (x,y) + +Returns: + + tuple[typing.Any, typing.Any]:New Y coord in logical unitsReturn ValueReturns the previous origin as (x,y) + + + """ + pass + + +def GetWindowExtEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': + """ + Retrieves the window extents for a DC + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns the extents as (x,y) in logical units + +Returns: + + tuple[typing.Any, typing.Any]:Handle to a device contextReturn ValueReturns the extents as (x,y) in logical units + + + """ + pass + + +def SetWindowExtEx(hdc:'int',XExtent:'typing.Any',YExtent:'typing.Any') -> 'tuple[typing.Any, typing.Any]': + """ + Changes the window extents for a DC + +Args: + + hdc(int):Handle to a device context + XExtent(typing.Any):New X extent in logical units + YExtent(typing.Any):New Y extent in logical unitsReturn ValueReturns the previous extents + +Returns: + + tuple[typing.Any, typing.Any]:New Y extent in logical unitsReturn ValueReturns the previous extents + + + """ + pass + + +def GetViewportExtEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': + """ + Retrieves the viewport extents for a DC + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns the extents as (x,y) in logical units + +Returns: + + tuple[typing.Any, typing.Any]:Handle to a device contextReturn ValueReturns the extents as (x,y) in logical units + + + """ + pass + + +def SetViewportExtEx(hdc:'int',XExtent:'typing.Any',YExtent:'typing.Any') -> 'tuple[typing.Any, typing.Any]': + """ + Changes the viewport extents for a DC + +Args: + + hdc(int):Handle to a device context + XExtent(typing.Any):New X extent in logical units + YExtent(typing.Any):New Y extent in logical unitsReturn ValueReturns the previous extents as (x,y) in logical units + +Returns: + + tuple[typing.Any, typing.Any]:New Y extent in logical unitsReturn ValueReturns the previous extents as (x,y) in logical units + + + """ + pass + + +def GradientFill(hdc:'typing.Any',Vertex:'tuple[win32typing.PyTRIVERTEX, ...]',Mesh:'typing.Any',Mode:'typing.Any') -> 'None': + """ + Shades triangles or rectangles by interpolating between vertex colors + +Args: + + hdc(typing.Any):Handle to device context + Vertex(tuple[win32typing.PyTRIVERTEX, ...]):Sequence of TRIVERTEX dicts defining color info + Mesh(typing.Any):Sequence of tuples containing either 2 or 3 ints that index into the trivertex array to define either triangles or rectangles + Mode(typing.Any):win32con.GRADIENT_FILL_* value defining whether to fill by triangle or by rectangle + +Returns: + + None + + """ + pass + + +def GetOpenFileName(OPENFILENAME:'typing.Union[str, typing.Any]') -> 'typing.Any': + """ + Creates an Open dialog box that lets the user specify the drive, directory, and the name of a file or set of files to open. + +Args: + + OPENFILENAME(typing.Union[str, typing.Any]):A string packed into an OPENFILENAME structure, probably via the struct module.CommentsThe win32gui::GetOpenFileNameW function is far more convenient to use.Return ValueIf the user presses OK, the function returns TRUE. Otherwise, use CommDlgExtendedError for error details (ie, a win32gui.error is raised). If the user cancels the dialog, the winerror attribute of the exception will be zero. + +Returns: + + typing.Any:A string packed into an OPENFILENAME structure, probably via the struct module.Comments + +The win32gui::GetOpenFileNameW function is far more convenient to use. +Return ValueIf the user presses OK, the function returns TRUE. Otherwise, use CommDlgExtendedError for error details + +(ie, a win32gui.error is raised). If the user cancels the dialog, the winerror attribute of the exception will be zero. + + + """ + pass + + +def InsertMenuItem(hMenu:'typing.Any',uItem:'typing.Any',fByPosition:'typing.Any',menuItem:'typing.Any') -> 'None': + """ + Inserts a menu item + +Args: + + hMenu(typing.Any):Handle to the menu + uItem(typing.Any):The menu item identifier or the menu item position. + fByPosition(typing.Any):Boolean value of True if uItem is set to a menu item position. This parameter is set to False if uItem is set to a menu item identifier. + menuItem(typing.Any):A string or buffer in the format of a MENUITEMINFO structure. + +Returns: + + None + + """ + pass + + +def SetMenuItemInfo(hMenu:'typing.Any',uItem:'typing.Any',fByPosition:'typing.Any',menuItem:'typing.Any') -> 'None': + """ + Sets menu information + +Args: + + hMenu(typing.Any):Handle to the menu + uItem(typing.Any):The menu item identifier or the menu item position. + fByPosition(typing.Any):Boolean value of True if uItem is set to a menu item position. This parameter is set to False if uItem is set to a menu item identifier. + menuItem(typing.Any):A string or buffer in the format of a MENUITEMINFO structure. + +Returns: + + None + + """ + pass + + +def GetMenuItemInfo(hMenu:'typing.Any',uItem:'typing.Any',fByPosition:'typing.Any',menuItem:'typing.Any') -> 'None': + """ + Gets menu information + +Args: + + hMenu(typing.Any):Handle to the menu + uItem(typing.Any):The menu item identifier or the menu item position. + fByPosition(typing.Any):Boolean value of True if uItem is set to a menu item position. This parameter is set to False if uItem is set to a menu item identifier. + menuItem(typing.Any):A string or buffer in the format of a MENUITEMINFO structure. + +Returns: + + None + + """ + pass + + +def GetMenuItemCount(hMenu:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hMenu(typing.Any):Handle to the menu + +Returns: + + typing.Any + + """ + pass + + +def GetMenuItemRect(hWnd:'typing.Any',hMenu:'typing.Any',uItem:'typing.Any') -> 'tuple[int, int, int, int]': + """ + None + +Args: + + hWnd(typing.Any): + hMenu(typing.Any):Handle to the menu + uItem(typing.Any): + +Returns: + + tuple[int, int, int, int] + + """ + pass + + +def GetMenuState(hMenu:'typing.Any',uID:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hMenu(typing.Any):Handle to the menu + uID(typing.Any): + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def SetMenuDefaultItem(hMenu:'typing.Any',uItem:'typing.Any',fByPos:'typing.Any') -> 'None': + """ + None + +Args: + + hMenu(typing.Any):Handle to the menu + uItem(typing.Any): + fByPos(typing.Any): + +Returns: + + None + + """ + pass + + +def GetMenuDefaultItem(hMenu:'typing.Any',fByPos:'typing.Any',flags:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hMenu(typing.Any):Handle to the menu + fByPos(typing.Any): + flags(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def AppendMenu() -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +def InsertMenu() -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +def EnableMenuItem() -> 'None': + """ + None + +Args: + + + +Returns: + + None + + """ + pass + + +def CheckMenuItem() -> 'typing.Any': + """ + None + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def GetSubMenu(hMenu:'typing.Any',nPos:'typing.Any') -> 'typing.Any': + """ + None + +Args: + + hMenu(typing.Any):Handle to the menu + nPos(typing.Any): + +Returns: + + typing.Any + + """ + pass + + +def ModifyMenu(hMnu:'typing.Any',uPosition:'typing.Any',uFlags:'typing.Any',uIDNewItem:'typing.Any',newItem:'str') -> 'None': + """ + Changes an existing menu item. This function is used to specify the content, appearance, and behavior of the menu item. + +Args: + + hMnu(typing.Any):handle to menu + uPosition(typing.Any):menu item to modify + uFlags(typing.Any):options + uIDNewItem(typing.Any):identifier, menu, or submenu + newItem(str):menu item content + +Returns: + + None + + """ + pass + + +def GetMenuItemID(hMenu:'typing.Any',nPos:'typing.Any') -> 'typing.Any': + """ + Retrieves the menu item identifier of a menu item located at the specified position in a menu. + +Args: + + hMenu(typing.Any):handle to menu + nPos(typing.Any):position of menu item + +Returns: + + typing.Any + + """ + pass + + +def SetMenuItemBitmaps(hMenu:'typing.Any',uPosition:'typing.Any',uFlags:'typing.Any',hBitmapUnchecked:'win32typing.PyGdiHANDLE',hBitmapChecked:'win32typing.PyGdiHANDLE') -> 'None': + """ + Associates the specified bitmap with a menu item. Whether the menu item is selected or clear, the system displays the appropriate bitmap next to the menu item. + +Args: + + hMenu(typing.Any):handle to menu + uPosition(typing.Any):menu item + uFlags(typing.Any):options + hBitmapUnchecked(win32typing.PyGdiHANDLE):handle to unchecked bitmap, can be None + hBitmapChecked(win32typing.PyGdiHANDLE):handle to checked bitmap, can be None + +Returns: + + None + + """ + pass + + +def CheckMenuRadioItem(hMenu:'typing.Any',idFirst:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any',uFlags:'typing.Any') -> 'None': + """ + Checks a specified menu item and makes it a + +radio item. At the same time, the function clears all other menu items in + +the associated group and clears the radio-item type flag for those items. + +Args: + + hMenu(typing.Any):handle to menu + idFirst(typing.Any):identifier or position of first item + idLast(typing.Any):identifier or position of last item + idCheck(typing.Any):identifier or position of item to check + uFlags(typing.Any):options + +Returns: + + None + + """ + pass + + +def SetMenuInfo(hmenu:'typing.Any',info:'typing.Any') -> 'None': + """ + Sets information for a specified menu. + +Args: + + hmenu(typing.Any):handle to menu + info(typing.Any):menu information in the format of a buffer.CommentsSee win32gui_struct for helper functions.This function will raise NotImplementedError on early platforms (eg, Windows NT.) + +Returns: + + None + + """ + pass + + +def GetMenuInfo(hmenu:'typing.Any',info:'typing.Any') -> 'None': + """ + Gets information about a specified menu. + +Args: + + hmenu(typing.Any):handle to menu + info(typing.Any):A buffer to fill with the information.CommentsSee win32gui_struct for helper functions.This function will raise NotImplementedError on early platforms (eg, Windows NT.) + +Returns: + + None + + """ + pass + + +def DrawFocusRect(hDC:'int',rc:'tuple[int, int, int, int]') -> 'None': + """ + Draws a standard focus outline around a rectangle + +Args: + + hDC(int):Handle to a device context + rc(tuple[int, int, int, int]):Tuple of (left,top,right,bottom) defining the rectangle + +Returns: + + None + + """ + pass + + +def DrawText(hDC:'typing.Union[typing.Any, int]',String:'typing.Any',nCount:'typing.Any',Rect:'win32typing.PyRECT',Format:'typing.Any') -> 'tuple[typing.Any, win32typing.PyRECT]': + """ + Draws formatted text on a device context + +Args: + + hDC(typing.Union[typing.Any, int]):The device context on which to draw + String(typing.Any):The text to be drawn + nCount(typing.Any):The number of characters, use -1 for simple null-terminated string + Rect(win32typing.PyRECT):Tuple of 4 ints specifying the position (left, top, right, bottom) + Format(typing.Any):Formatting flags, combination of win32con.DT_* valuesReturn ValueReturns the height of the drawn text, and the rectangle coordinates + +Returns: + + tuple[typing.Any, win32typing.PyRECT]:Formatting flags, combination of win32con.DT_* valuesReturn ValueReturns the height of the drawn text, and the rectangle coordinates + + + """ + pass + + +def LineTo(hdc:'int',XEnd:'typing.Any',YEnd:'typing.Any') -> 'None': + """ + Draw a line from current position to specified point + +Args: + + hdc(int):Handle to a device context + XEnd(typing.Any):Horizontal position in logical units + YEnd(typing.Any):Vertical position in logical units + +Returns: + + None + + """ + pass + + +def Ellipse(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any') -> 'None': + """ + Draws a filled ellipse on a device context + +Args: + + hdc(int):Device context on which to draw + LeftRect(typing.Any):Left limit of ellipse + TopRect(typing.Any):Top limit of ellipse + RightRect(typing.Any):Right limit of ellipse + BottomRect(typing.Any):Bottom limit of ellipse + +Returns: + + None + + """ + pass + + +def Pie(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',XRadial1:'typing.Any',YRadial1:'typing.Any',XRadial2:'typing.Any',YRadial2:'typing.Any') -> 'None': + """ + Draws a section of an ellipse cut by 2 radials + +Args: + + hdc(int):Device context on which to draw + LeftRect(typing.Any):Left limit of ellipse + TopRect(typing.Any):Top limit of ellipse + RightRect(typing.Any):Right limit of ellipse + BottomRect(typing.Any):Bottom limit of ellipse + XRadial1(typing.Any):Horizontal pos of Radial1 endpoint + YRadial1(typing.Any):Vertical pos of Radial1 endpoint + XRadial2(typing.Any):Horizontal pos of Radial2 endpoint + YRadial2(typing.Any):Vertical pos of Radial2 endpoint + +Returns: + + None + + """ + pass + + +def Arc(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',XRadial1:'typing.Any',YRadial1:'typing.Any',XRadial2:'typing.Any',YRadial2:'typing.Any') -> 'None': + """ + Draws an arc defined by an ellipse and 2 radials + +Args: + + hdc(int):Device context on which to draw + LeftRect(typing.Any):Left limit of ellipse + TopRect(typing.Any):Top limit of ellipse + RightRect(typing.Any):Right limit of ellipse + BottomRect(typing.Any):Bottom limit of ellipse + XRadial1(typing.Any):Horizontal pos of Radial1 endpoint + YRadial1(typing.Any):Vertical pos of Radial1 endpoint + XRadial2(typing.Any):Horizontal pos of Radial2 endpoint + YRadial2(typing.Any):Vertical pos of Radial2 endpoint + +Returns: + + None + + """ + pass + + +def ArcTo(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',XRadial1:'typing.Any',YRadial1:'typing.Any',XRadial2:'typing.Any',YRadial2:'typing.Any') -> 'None': + """ + Draws an arc defined by an ellipse and 2 radials + +Args: + + hdc(int):Device context on which to draw + LeftRect(typing.Any):Left limit of ellipse + TopRect(typing.Any):Top limit of ellipse + RightRect(typing.Any):Right limit of ellipse + BottomRect(typing.Any):Bottom limit of ellipse + XRadial1(typing.Any):Horizontal pos of Radial1 endpoint + YRadial1(typing.Any):Vertical pos of Radial1 endpoint + XRadial2(typing.Any):Horizontal pos of Radial2 endpoint + YRadial2(typing.Any):Vertical pos of Radial2 endpointCommentsDraws exactly as win32gui::Arc, but changes current drawing position + +Returns: + + None + + """ + pass + + +def AngleArc(hdc:'int',Y:'typing.Any',Y1:'typing.Any',Radius:'typing.Any',StartAngle:'float',SweepAngle:'float') -> 'None': + """ + Draws a line from current pos and a section of a circle's arc + +Args: + + hdc(int):Handle to a device context + Y(typing.Any):x pos of circle + Y1(typing.Any):y pos of circle + Radius(typing.Any):Radius of circle + StartAngle(float):Angle where arc starts, in degrees + SweepAngle(float):Angle that arc covers, in degrees + +Returns: + + None + + """ + pass + + +def Chord(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',XRadial1:'typing.Any',YRadial1:'typing.Any',XRadial2:'typing.Any',YRadial2:'typing.Any') -> 'None': + """ + Draws a chord defined by an ellipse and 2 radials + +Args: + + hdc(int):Device context on which to draw + LeftRect(typing.Any):Left limit of ellipse + TopRect(typing.Any):Top limit of ellipse + RightRect(typing.Any):Right limit of ellipse + BottomRect(typing.Any):Bottom limit of ellipse + XRadial1(typing.Any):Horizontal pos of Radial1 endpoint + YRadial1(typing.Any):Vertical pos of Radial1 endpoint + XRadial2(typing.Any):Horizontal pos of Radial2 endpoint + YRadial2(typing.Any):Vertical pos of Radial2 endpoint + +Returns: + + None + + """ + pass + + +def ExtFloodFill(arg:'int',XStart:'typing.Any',YStart:'typing.Any',Color:'typing.Any',FillType:'typing.Any') -> 'None': + """ + Fills an area with current brush + +Args: + + arg(int):Handle to a device context + XStart(typing.Any):Horizontal starting pos + YStart(typing.Any):Vertical starting pos + Color(typing.Any):RGB color value. See win32api::RGB. + FillType(typing.Any):One of win32con.FLOODFILL* values + +Returns: + + None + + """ + pass + + +def SetPixel(hdc:'int',X:'typing.Any',Y:'typing.Any',Color:'typing.Any') -> 'typing.Any': + """ + Set the color of a single pixel + +Args: + + hdc(int):Handle to a device context + X(typing.Any):Horizontal pos + Y(typing.Any):Vertical pos + Color(typing.Any):RGB color to be set.Return ValueReturns the RGB color actually set, which may be different from the one passed in + +Returns: + + typing.Any:RGB color to be set.Return ValueReturns the RGB color actually set, which may be different from the one passed in + + + """ + pass + + +def GetPixel(hdc:'int',XPos:'typing.Any',YPos:'typing.Any') -> 'typing.Any': + """ + Returns the RGB color of a single pixel + +Args: + + hdc(int):Handle to a device context + XPos(typing.Any):Horizontal pos + YPos(typing.Any):Vertical pos + +Returns: + + typing.Any + + """ + pass + + +def GetROP2(hdc:'int') -> 'typing.Any': + """ + Returns the foreground mixing mode of a DC + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns one of win32con.R2_* values + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns one of win32con.R2_* values + + + """ + pass + + +def SetROP2(hdc:'int',DrawMode:'typing.Any') -> 'typing.Any': + """ + Sets the foreground mixing mode of a DC + +Args: + + hdc(int):Handle to a device context + DrawMode(typing.Any):Mixing mode, one of win32con.R2_*.Return ValueReturns previous mode + +Returns: + + typing.Any:Mixing mode, one of win32con.R2_*.Return ValueReturns previous mode + + + """ + pass + + +def SetPixelV(hdc:'int',X:'typing.Any',Y:'typing.Any',Color:'typing.Any') -> 'None': + """ + Sets the color of a single pixel to an approximation of specified color + +Args: + + hdc(int):Handle to a device context + X(typing.Any):Horizontal pos + Y(typing.Any):Vertical pos + Color(typing.Any):RGB color to be set. + +Returns: + + None + + """ + pass + + +def MoveToEx(hdc:'int',X:'typing.Any',Y:'typing.Any') -> 'tuple[typing.Any, typing.Any]': + """ + Changes the current drawing position + +Args: + + hdc(int):Device context handle + X(typing.Any):Horizontal pos in logical units + Y(typing.Any):Vertical pos in logical unitsReturn ValueReturns the previous position as (X, Y) + +Returns: + + tuple[typing.Any, typing.Any]:Vertical pos in logical unitsReturn ValueReturns the previous position as (X, Y) + + + """ + pass + + +def GetCurrentPositionEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': + """ + Returns a device context's current drawing position + +Args: + + hdc(int):Device context + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def GetArcDirection(hdc:'int') -> 'typing.Any': + """ + Returns the direction in which rectangles and arcs are drawn + +Args: + + hdc(int):Handle to a device contextReturn ValueRecturns one of win32con.AD_* values + +Returns: + + typing.Any:Handle to a device contextReturn ValueRecturns one of win32con.AD_* values + + + """ + pass + + +def SetArcDirection(hdc:'int',ArcDirection:'typing.Any') -> 'typing.Any': + """ + Sets the drawing direction for arcs and rectangles + +Args: + + hdc(int):Handle to a device context + ArcDirection(typing.Any):One of win32con.AD_* constantsReturn ValueReturns the previous direction, or 0 on error. + +Returns: + + typing.Any:One of win32con.AD_* constantsReturn ValueReturns the previous direction, or 0 on error. + + + """ + pass + + +def Polygon(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': + """ + Draws a closed filled polygon defined by a sequence of points + +Args: + + hdc(int):Handle to a device context + Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...) + +Returns: + + None + + """ + pass + + +def Polyline(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': + """ + Connects a sequence of points using currently selected pen + +Args: + + hdc(int):Handle to a device context + Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...) + +Returns: + + None + + """ + pass + + +def PolylineTo(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': + """ + Draws a series of lines starting from current position. Updates current position with end point. + +Args: + + hdc(int):Handle to a device context + Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...) + +Returns: + + None + + """ + pass + + +def PolyBezier(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': + """ + Draws a series of Bezier curves starting from first point specified. + +Args: + + hdc(int):Handle to a device context + Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...).CommentsNumber of points must be a multiple of 3 plus 1. + +Returns: + + None + + """ + pass + + +def PolyBezierTo(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': + """ + Draws a series of Bezier curves starting from current drawing position. + +Args: + + hdc(int):Handle to a device context + Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...).CommentsPoints must contain 3 points for each curve. Current position is updated with last endpoint. + +Returns: + + None + + """ + pass + + +def PlgBlt(Dest:'int',Point:'typing.Any',Src:'int',XSrc:'typing.Any',YSrc:'typing.Any',Width:'typing.Any',Height:'typing.Any',Mask:'win32typing.PyGdiHANDLE'=None,xMask:'typing.Any'=0,yMask:'typing.Any'=0) -> 'None': + """ + Copies color from a rectangle into a parallelogram + +Args: + + Dest(int):Destination DC + Point(typing.Any):Sequence of 3 POINT tuples (x,y) describing a paralellogram + Src(int):Source device context + XSrc(typing.Any):Left edge of source rectangle + YSrc(typing.Any):Top of source rectangle + Width(typing.Any):Width of source rectangle + Height(typing.Any):Height of source rectangle + Mask(win32typing.PyGdiHANDLE):Handle to monochrome bitmap to mask source, can be None + xMask(typing.Any):x pos in mask + yMask(typing.Any):y pos in mask + +Returns: + + None + + """ + pass + + +def CreatePolygonRgn(Points:'typing.List[tuple[typing.Any, typing.Any]]',PolyFillMode:'typing.Any') -> 'win32typing.PyGdiHANDLE': + """ + Creates a region from a sequence of vertices + +Args: + + Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...). + PolyFillMode(typing.Any):Filling mode, one of ALTERNATE, WINDING + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def ExtTextOut(hdc:'int',_int:'typing.Any',_int1:'typing.Any',_int2:'typing.Any',rect:'win32typing.PyRECT',string:'typing.Any',_tuple:'tuple[tuple[typing.Any, typing.Any], ...]') -> 'typing.Any': + """ + Writes text to a DC. + +Args: + + hdc(int):Handle to a device context + _int(typing.Any):The x coordinate to write the text to. + _int1(typing.Any):The y coordinate to write the text to. + _int2(typing.Any):Specifies the rectangle type. This parameter can be one, both, or neither of ETO_CLIPPED and ETO_OPAQUE + rect(win32typing.PyRECT):Specifies the text's bounding rectangle. (Can be None.) + string(typing.Any):The text to write. + _tuple(tuple[tuple[typing.Any, typing.Any], ...]):Optional array of values that indicate distance between origins of character cells.Win32 API References + +Returns: + + typing.Any:Search for ExtTextOut at msdn, google or google groups. +Return ValueAlways none. If the function fails, an exception is raised. + + + """ + pass + + +def GetTextColor(hdc:'typing.Any') -> 'typing.Any': + """ + Returns the text color for a DC + +Args: + + hdc(typing.Any):Handle to a device contextReturn ValueReturns an RGB color. On error, returns CLR_INVALID + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns an RGB color. On error, returns CLR_INVALID + + + """ + pass + + +def SetTextColor(hdc:'typing.Any',color:'typing.Any') -> 'typing.Any': + """ + Changes the text color for a device context + +Args: + + hdc(typing.Any):Handle to a device context + color(typing.Any):The RGB color value - see win32api::RGBReturn ValueReturns the previous color, or CLR_INVALID on failure + +Returns: + + typing.Any:The RGB color value - see win32api::RGBReturn ValueReturns the previous color, or CLR_INVALID on failure + + + """ + pass + + +def GetBkMode(hdc:'int') -> 'typing.Any': + """ + Returns the background mode for a device context + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns OPAQUE, TRANSPARENT, or 0 on failure + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns OPAQUE, TRANSPARENT, or 0 on failure + + + """ + pass + + +def SetBkMode(hdc:'typing.Union[typing.Any, int]',BkMode:'typing.Any') -> 'typing.Any': + """ + Sets the background mode for a device context + +Args: + + hdc(typing.Union[typing.Any, int]):Handle to a device context + BkMode(typing.Any):OPAQUE or TRANSPARENTReturn ValueReturns the previous mode, or 0 on failure + +Returns: + + typing.Any:OPAQUE or TRANSPARENTReturn ValueReturns the previous mode, or 0 on failure + + + """ + pass + + +def GetBkColor(hdc:'int') -> 'typing.Any': + """ + Returns the background color for a device context + +Args: + + hdc(int):Handle to a device contextReturn ValueReturns an RGB color value. On error, returns CLR_INVALID. + +Returns: + + typing.Any:Handle to a device contextReturn ValueReturns an RGB color value. On error, returns CLR_INVALID. + + + """ + pass + + +def SetBkColor(hdc:'typing.Union[typing.Any, int]',color:'typing.Any') -> 'typing.Any': + """ + Sets the background color for a device context + +Args: + + hdc(typing.Union[typing.Any, int]):Handle to a device context + color(typing.Any):Return ValueReturns the previous color, or CLR_INVALID on failure + +Returns: + + typing.Any:Return ValueReturns the previous color, or CLR_INVALID on failure + + + """ + pass + + +def DrawEdge(hdc:'int',rc:'win32typing.PyRECT',edge:'typing.Any',Flags:'typing.Any') -> 'win32typing.PyRECT': + """ + Draws edge(s) of a rectangle + +Args: + + hdc(int):Handle to a device context + rc(win32typing.PyRECT):Rectangle whose edge(s) will be drawn + edge(typing.Any):Combination of win32con.BDR_* flags, or one of win32con.EDGE_* flags + Flags(typing.Any):Combination of win32con.BF_* flagsReturn ValueBF_ADJUST flag causes input rectange to be shrunk by size of border.. Rectangle is always returned. + +Returns: + + win32typing.PyRECT:Combination of win32con.BF_* flagsReturn ValueBF_ADJUST flag causes input rectange to be shrunk by size of border.. Rectangle is always returned. + + + """ + pass + + +def FillRect(hDC:'int',rc:'win32typing.PyRECT',hbr:'win32typing.PyGdiHANDLE') -> 'None': + """ + Fills a rectangular area with specified brush + +Args: + + hDC(int):Handle to a device context + rc(win32typing.PyRECT):Rectangle to be filled + hbr(win32typing.PyGdiHANDLE):Handle to brush to be used to fill area + +Returns: + + None + + """ + pass + + +def FillRgn(hdc:'int',hrgn:'win32typing.PyGdiHANDLE',hbr:'win32typing.PyGdiHANDLE') -> 'None': + """ + Fills a region with specified brush + +Args: + + hdc(int):Handle to the device context + hrgn(win32typing.PyGdiHANDLE):Handle to the region + hbr(win32typing.PyGdiHANDLE):Brush to be used + +Returns: + + None + + """ + pass + + +def PaintRgn(hdc:'int',hrgn:'win32typing.PyGdiHANDLE') -> 'None': + """ + Paints a region with current brush + +Args: + + hdc(int):Handle to the device context + hrgn(win32typing.PyGdiHANDLE):Handle to the region + +Returns: + + None + + """ + pass + + +def FrameRgn(hdc:'int',hrgn:'typing.Any',hbr:'typing.Any',Width:'typing.Any',Height:'typing.Any') -> 'None': + """ + Draws a frame around a region + +Args: + + hdc(int):Handle to the device context + hrgn(typing.Any):Handle to the region + hbr(typing.Any):Handle to brush to be used + Width(typing.Any):Frame width + Height(typing.Any):Frame height + +Returns: + + None + + """ + pass + + +def InvertRgn(hdc:'int',hrgn:'typing.Any') -> 'None': + """ + Inverts the colors in a region + +Args: + + hdc(int):Handle to the device context + hrgn(typing.Any):Handle to the region + +Returns: + + None + + """ + pass + + +def EqualRgn(SrcRgn1:'typing.Any',SrcRgn2:'typing.Any') -> 'typing.Any': + """ + Determines if 2 regions are equal + +Args: + + SrcRgn1(typing.Any):Handle to a region + SrcRgn2(typing.Any):Handle to a region + +Returns: + + typing.Any + + """ + pass + + +def PtInRegion(hrgn:'typing.Any',X:'typing.Any',Y:'typing.Any') -> 'typing.Any': + """ + Determines if a region contains a point + +Args: + + hrgn(typing.Any):Handle to a region + X(typing.Any):X coord + Y(typing.Any):Y coord + +Returns: + + typing.Any + + """ + pass + + +def PtInRect(rect:'tuple[int, int, int, int]',point:'tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + Determines if a rectangle contains a point + +Args: + + rect(tuple[int, int, int, int]):The rect to check + point(tuple[typing.Any, typing.Any]):The point + +Returns: + + typing.Any + + """ + pass + + +def RectInRegion(hrgn:'typing.Any',rc:'win32typing.PyRECT') -> 'typing.Any': + """ + Determines if a region and rectangle overlap at any point + +Args: + + hrgn(typing.Any):Handle to a region + rc(win32typing.PyRECT):Rectangle coordinates in logical units + +Returns: + + typing.Any + + """ + pass + + +def SetRectRgn(hrgn:'typing.Any',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any') -> 'None': + """ + Makes an existing region rectangular + +Args: + + hrgn(typing.Any):Handle to a region + LeftRect(typing.Any):Left edge in logical units + TopRect(typing.Any):Top edge in logical units + RightRect(typing.Any):Right edge in logical units + BottomRect(typing.Any):Bottom edge in logical units + +Returns: + + None + + """ + pass + + +def CombineRgn(Dest:'typing.Any',Src1:'typing.Any',Src2:'typing.Any',CombineMode:'typing.Any') -> 'typing.Any': + """ + Combines two regions + +Args: + + Dest(typing.Any):Handle to existing region that will receive combined region + Src1(typing.Any):Handle to first region + Src2(typing.Any):Handle to second region + CombineMode(typing.Any):One of RGN_AND,RGN_COPY,RGN_DIFF,RGN_OR,RGN_XORReturn ValueReturns the type of region created, one of NULLREGION, SIMPLEREGION, COMPLEXREGION + +Returns: + + typing.Any:One of RGN_AND,RGN_COPY,RGN_DIFF,RGN_OR,RGN_XORReturn ValueReturns the type of region created, one of NULLREGION, SIMPLEREGION, COMPLEXREGION + + + """ + pass + + +def DrawAnimatedRects(hwnd:'int',idAni:'typing.Any',minCoords:'win32typing.PyRECT',restCoords:'win32typing.PyRECT') -> 'None': + """ + Animates a rectangle in the manner of minimizing, mazimizing, or opening + +Args: + + hwnd(typing.Any):handle to clipping window + idAni(typing.Any):type of animation, win32con.IDANI_* + minCoords(win32typing.PyRECT):rectangle coordinates (minimized) + restCoords(win32typing.PyRECT):rectangle coordinates (restored) + +Returns: + + None + + """ + pass + + +def CreateSolidBrush(Color:'typing.Any') -> 'win32typing.PyGdiHANDLE': + """ + Creates a solid brush of specified color + +Args: + + Color(typing.Any):RGB color value. See win32api::RGB. + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def CreatePatternBrush(hbmp:'win32typing.PyGdiHANDLE') -> 'win32typing.PyGdiHANDLE': + """ + Creates a brush using a bitmap as a pattern + +Args: + + hbmp(win32typing.PyGdiHANDLE):Handle to a bitmap + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def CreateHatchBrush(Style:'typing.Any',clrref:'typing.Any') -> 'win32typing.PyGdiHANDLE': + """ + Creates a hatch brush with specified style and color + +Args: + + Style(typing.Any):Hatch style, one of win32con.HS_* constants + clrref(typing.Any):Rgb color value. See win32api::RGB. + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def CreatePen(PenStyle:'typing.Any',Width:'typing.Any',Color:'typing.Any') -> 'win32typing.PyGdiHANDLE': + """ + Create a GDI pen + +Args: + + PenStyle(typing.Any):One of win32con.PS_* pen styles + Width(typing.Any):Drawing width in logical units. Use zero for single pixel. + Color(typing.Any):RGB color value. See win32api::RGB. + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def GetSysColor(Index:'typing.Any') -> 'typing.Any': + """ + Returns the color of a window element + +Args: + + Index(typing.Any):One of win32con.COLOR_* values + +Returns: + + typing.Any + + """ + pass + + +def GetSysColorBrush(Index:'typing.Any') -> 'win32typing.PyGdiHANDLE': + """ + Creates a handle to a system color brush + +Args: + + Index(typing.Any):Index of a window element color (win32con.COLOR_*) + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def InvalidateRect(hWnd:'int',Rect:'win32typing.PyRECT',Erase:'typing.Any') -> 'None': + """ + Invalidates a rectangular area of a window and adds it to the window's update region + +Args: + + hWnd(int):Handle to the window + Rect(win32typing.PyRECT):Client coordinates defining area to be redrawn. Use None for entire client area. + Erase(typing.Any):Indicates if background should be erased + +Returns: + + None + + """ + pass + + +def FrameRect(hDC:'int',rc:'win32typing.PyRECT',hbr:'win32typing.PyGdiHANDLE') -> 'None': + """ + Draws an outline around a rectangle + +Args: + + hDC(int):Handle to a device context + rc(win32typing.PyRECT):Rectangle around which to draw + hbr(win32typing.PyGdiHANDLE):Handle to brush created using CreateHatchBrush, CreatePatternBrush, CreateSolidBrush, or GetStockObject + +Returns: + + None + + """ + pass + + +def InvertRect(hDC:'int',rc:'win32typing.PyRECT') -> 'None': + """ + Inverts the colors in a regtangular region + +Args: + + hDC(int):Handle to a device context + rc(win32typing.PyRECT):Coordinates of rectangle to invert + +Returns: + + None + + """ + pass + + +def WindowFromDC(hDC:'int') -> 'int': + """ + Finds the window associated with a device context + +Args: + + hDC(int):Handle to a device contextReturn ValueReturns a handle to the window, or 0 if the DC is not associated with a window + +Returns: + + int:Handle to a device contextReturn ValueReturns a handle to the window, or 0 if the DC is not associated with a window + + + """ + pass + + +def GetUpdateRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE',Erase:'typing.Any') -> 'typing.Any': + """ + Copies the update region of a window into an existing region + +Args: + + hWnd(int):Handle to a window + hRgn(win32typing.PyGdiHANDLE):Handle to an existing region to receive update area + Erase(typing.Any):Indicates if window background is to be erasedReturn ValueReturns type of region, one of COMPLEXREGION, NULLREGION, or SIMPLEREGION + +Returns: + + typing.Any:Indicates if window background is to be erasedReturn ValueReturns type of region, one of COMPLEXREGION, NULLREGION, or SIMPLEREGION + + + """ + pass + + +def GetWindowRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE') -> 'typing.Any': + """ + Copies the window region of a window into an existing region + +Args: + + hWnd(int):Handle to a window + hRgn(win32typing.PyGdiHANDLE):Handle to an existing region that receives window regionReturn ValueReturns type of region, one of COMPLEXREGION, NULLREGION, or SIMPLEREGION + +Returns: + + typing.Any:Handle to an existing region that receives window regionReturn ValueReturns type of region, one of COMPLEXREGION, NULLREGION, or SIMPLEREGION + + + """ + pass + + +def SetWindowRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE',Redraw:'typing.Any') -> 'None': + """ + Sets the visible region of a window + +Args: + + hWnd(int):Handle to a window + hRgn(win32typing.PyGdiHANDLE):Handle to region to be set, can be None + Redraw(typing.Any):Indicates if window should be completely redrawnCommentsOn success, the system assumes ownership of the region so you should call the handle's Detach() method to prevent it from being automatically closed. + +Returns: + + None + + """ + pass + + +def GetWindowRgnBox(hWnd:'int') -> 'tuple[typing.Any, win32typing.PyRECT]': + """ + Returns the bounding box for a window's region + +Args: + + hWnd(int):Handle to a window that has a window region. (see win32gui::SetWindowRgn)CommentsOnly available in winxpguiReturn ValueReturns type of region and rectangle coordinates in device units + +Returns: + + tuple[typing.Any, win32typing.PyRECT]:Handle to a window that has a window region. (see win32gui::SetWindowRgn)Comments + +Only available in winxpgui +Return ValueReturns type of region and rectangle coordinates in device units + + + """ + pass + + +def ValidateRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE') -> 'None': + """ + Removes a region from a window's update region + +Args: + + hWnd(int):Handle to the window + hRgn(win32typing.PyGdiHANDLE):Region to be validated + +Returns: + + None + + """ + pass + + +def InvalidateRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE',Erase:'typing.Any') -> 'None': + """ + Adds a region to a window's update region + +Args: + + hWnd(int):Handle to the window + hRgn(win32typing.PyGdiHANDLE):Region to be redrawn + Erase(typing.Any):Indidates if background should be erased + +Returns: + + None + + """ + pass + + +def GetRgnBox(hrgn:'win32typing.PyGdiHANDLE') -> 'tuple[typing.Any, win32typing.PyRECT]': + """ + Calculates the bounding box of a region + +Args: + + hrgn(win32typing.PyGdiHANDLE):Handle to a regionReturn ValueReturns type of region (COMPLEXREGION, NULLREGION, or SIMPLEREGION) and rectangle in logical units + +Returns: + + tuple[typing.Any, win32typing.PyRECT]:Handle to a regionReturn ValueReturns type of region (COMPLEXREGION, NULLREGION, or SIMPLEREGION) and rectangle in logical units + + + """ + pass + + +def OffsetRgn(hrgn:'win32typing.PyGdiHANDLE',XOffset:'typing.Any',YOffset:'typing.Any') -> 'typing.Any': + """ + Relocates a region + +Args: + + hrgn(win32typing.PyGdiHANDLE):Handle to a region + XOffset(typing.Any):Horizontal offset + YOffset(typing.Any):Vertical offsetReturn ValueReturns type of region (COMPLEXREGION, NULLREGION, or SIMPLEREGION) + +Returns: + + typing.Any:Vertical offsetReturn ValueReturns type of region (COMPLEXREGION, NULLREGION, or SIMPLEREGION) + + + """ + pass + + +def Rectangle(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any') -> 'None': + """ + Creates a solid rectangle using currently selected pen and brush + +Args: + + hdc(int):Handle to device context + LeftRect(typing.Any):Position of left edge of rectangle + TopRect(typing.Any):Position of top edge of rectangle + RightRect(typing.Any):Position of right edge of rectangle + BottomRect(typing.Any):Position of bottom edge of rectangle + +Returns: + + None + + """ + pass + + +def RoundRect(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',Width:'typing.Any',Height:'typing.Any') -> 'None': + """ + Draws a rectangle with elliptically rounded corners, filled using using current brush + +Args: + + hdc(int):Handle to device context + LeftRect(typing.Any):Position of left edge of rectangle + TopRect(typing.Any):Position of top edge of rectangle + RightRect(typing.Any):Position of right edge of rectangle + BottomRect(typing.Any):Position of bottom edge of rectangle + Width(typing.Any):Width of ellipse + Height(typing.Any):Height of ellipse + +Returns: + + None + + """ + pass + + +def BeginPaint() -> 'tuple[typing.Any, typing.Any]': + """ + None + +Args: + + + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def EndPaint(hwnd:'int',ps:'typing.Any') -> 'None': + """ + None + +Args: + + hwnd(typing.Any): + ps(typing.Any):As returned from win32gui::BeginPaint + +Returns: + + None + + """ + pass + + +def BeginPath(hdc:'int') -> 'None': + """ + Initializes a path in a DC + +Args: + + hdc(int):Handle to a device context + +Returns: + + None + + """ + pass + + +def EndPath(hdc:'int') -> 'None': + """ + None + +Args: + + hdc(int):Handle to a device context + +Returns: + + None + + """ + pass + + +def AbortPath(hdc:'int') -> 'None': + """ + None + +Args: + + hdc(int):Handle to a device context + +Returns: + + None + + """ + pass + + +def CloseFigure(hdc:'int') -> 'None': + """ + Closes a section of a path by connecting the beginning pos with the current pos + +Args: + + hdc(int):Handle to a device context that contains an open path. See win32gui::BeginPath. + +Returns: + + None + + """ + pass + + +def FlattenPath(hdc:'int') -> 'None': + """ + Flattens any curves in current path into a series of lines + +Args: + + hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath. + +Returns: + + None + + """ + pass + + +def FillPath(hdc:'int') -> 'None': + """ + Fills a path with currently selected brush + +Args: + + hdc(int):Handle to a device context that contains a finalized path. See win32gui::EndPath.CommentsAny open figures are closed and path is deselected from the DC. + +Returns: + + None + + """ + pass + + +def WidenPath(hdc:'int') -> 'None': + """ + Widens current path by amount it would increase by if drawn with currently selected pen + +Args: + + hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath. + +Returns: + + None + + """ + pass + + +def StrokePath(hdc:'int') -> 'None': + """ + Draws current path with currently selected pen + +Args: + + hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath. + +Returns: + + None + + """ + pass + + +def StrokeAndFillPath(hdc:'int') -> 'None': + """ + Combines operations of StrokePath and FillPath with no overlap + +Args: + + hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath. + +Returns: + + None + + """ + pass + + +def GetMiterLimit(hdc:'int') -> 'float': + """ + Retrieves the limit of miter joins for a DC + +Args: + + hdc(int):Handle to a device context + +Returns: + + float + + """ + pass + + +def SetMiterLimit(hdc:'int',NewLimit:'float') -> 'float': + """ + Set the limit of miter joins for a DC + +Args: + + hdc(int):Handle to a device context + NewLimit(float):New limit to be setReturn ValueReturns the previous limit + +Returns: + + float:New limit to be setReturn ValueReturns the previous limit + + + """ + pass + + +def PathToRegion(hdc:'int') -> 'win32typing.PyGdiHANDLE': + """ + Converts a closed path in a DC to a region + +Args: + + hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath.CommentsOn success, the path is deselected from the DC + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def GetPath(hdc:'int') -> 'tuple[typing.Any, typing.Any]': + """ + Returns a sequence of points that describe the current path + +Args: + + hdc(int):Handle to a device context containing a finalized path. See win32gui::EndPathReturn ValueReturns a sequence of POINT tuples, and a sequence of ints designating each point's function (combination of win32con.PT_* values) + +Returns: + + tuple[typing.Any, typing.Any]:Handle to a device context containing a finalized path. See win32gui::EndPathReturn ValueReturns a sequence of POINT tuples, and a sequence of ints designating each point's function (combination of win32con.PT_* values) + + + """ + pass + + +def CreateRoundRectRgn(LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',WidthEllipse:'typing.Any',HeightEllipse:'typing.Any') -> 'typing.Any': + """ + Create a rectangular region with elliptically rounded corners, + +Args: + + LeftRect(typing.Any):Position of left edge of rectangle + TopRect(typing.Any):Position of top edge of rectangle + RightRect(typing.Any):Position of right edge of rectangle + BottomRect(typing.Any):Position of bottom edge of rectangle + WidthEllipse(typing.Any):Width of ellipse + HeightEllipse(typing.Any):Height of ellipse + +Returns: + + typing.Any + + """ + pass + + +def CreateRectRgnIndirect(rc:'win32typing.PyRECT') -> 'typing.Any': + """ + Creates a rectangular region, + +Args: + + rc(win32typing.PyRECT):Coordinates of rectangle + +Returns: + + typing.Any + + """ + pass + + +def CreateEllipticRgnIndirect(rc:'win32typing.PyRECT') -> 'typing.Any': + """ + Creates an ellipse region, + +Args: + + rc(win32typing.PyRECT):Coordinates of bounding rectangle in logical units + +Returns: + + typing.Any + + """ + pass + + +def CreateWindowEx(dwExStyle:'typing.Any',className:'typing.Union[str, typing.Any]',windowTitle:'str',style:'typing.Any',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',parent:'typing.Any',menu:'typing.Any',hinstance:'typing.Any',reserved:'typing.Any') -> 'typing.Any': + """ + Creates a new window with Extended Style. + +Args: + + dwExStyle(typing.Any):extended window style + className(typing.Union[str, typing.Any]): + windowTitle(str): + style(typing.Any):The style for the window. + x(typing.Any): + y(typing.Any): + width(typing.Any): + height(typing.Any): + parent(typing.Any):Handle to the parent window. + menu(typing.Any):Handle to the menu to use for this window. + hinstance(typing.Any): + reserved(typing.Any):Must be None + +Returns: + + typing.Any + + """ + pass + + +def GetParent(child:'typing.Any') -> 'typing.Any': + """ + Retrieves a handle to the specified child window's parent window. + +Args: + + child(typing.Any):handle to child window + +Returns: + + typing.Any + + """ + pass + + +def SetParent(child:'typing.Any',child1:'typing.Any') -> 'typing.Any': + """ + changes the parent window of the specified child window. + +Args: + + child(typing.Any):handle to window whose parent is changing + child1(typing.Any):handle to new parent window + +Returns: + + typing.Any + + """ + pass + + +def GetCursorPos() -> 'tuple[typing.Any, typing.Any]': + """ + retrieves the cursor's position, in screen coordinates. + +Args: + + + +Returns: + + tuple[typing.Any, typing.Any] + + """ + pass + + +def GetDesktopWindow() -> 'typing.Any': + """ + returns the desktop window + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def GetWindow(hWnd:'typing.Any',uCmd:'typing.Any') -> 'typing.Any': + """ + returns a window that has the specified relationship (Z order or owner) to the specified window. + +Args: + + hWnd(typing.Any):handle to original window + uCmd(typing.Any):relationship flag + +Returns: + + typing.Any + + """ + pass + + +def GetWindowDC(hWnd:'typing.Any') -> 'typing.Any': + """ + returns the device context (DC) for the entire window, including title bar, menus, and scroll bars. + +Args: + + hWnd(typing.Any):handle of window + +Returns: + + typing.Any + + """ + pass + + +def IsIconic(hWnd:'typing.Any') -> 'None': + """ + determines whether the specified window is minimized (iconic). + +Args: + + hWnd(typing.Any):handle to window + +Returns: + + None + + """ + pass + + +def IsWindow(hWnd:'typing.Any') -> 'None': + """ + determines whether the specified window handle identifies an existing window. + +Args: + + hWnd(typing.Any):handle to window + +Returns: + + None + + """ + pass + + +def IsChild(hWndParent:'typing.Any',hWnd:'typing.Any') -> 'None': + """ + Tests whether a window is a child window or descendant window of a specified parent window + +Args: + + hWndParent(typing.Any):handle to parent window + hWnd(typing.Any):handle to window to test + +Returns: + + None + + """ + pass + + +def ReleaseCapture() -> 'None': + """ + Releases the moust capture for a window. + +Args: + + + +Returns: + + None + + """ + pass + + +def GetCapture() -> 'typing.Any': + """ + Returns the window with the mouse capture. + +Args: + + + +Returns: + + typing.Any + + """ + pass + + +def SetCapture() -> 'None': + """ + Captures the mouse for the specified window. + +Args: + + + +Returns: + + None + + """ + pass + + +def _TrackMouseEvent(tme:'win32typing.TRACKMOUSEEVENT') -> 'None': + """ + Posts messages when the mouse pointer leaves a window or hovers over a window for a specified amount of time. + +Args: + + tme(win32typing.TRACKMOUSEEVENT): + +Returns: + + None + + """ + pass + + +def ReleaseDC(hWnd:'typing.Any',hDC:'typing.Any') -> 'typing.Any': + """ + Releases a device context. + +Args: + + hWnd(typing.Any):handle to window + hDC(typing.Any):handle to device context + +Returns: + + typing.Any + + """ + pass + + +def CreateCaret(hWnd:'typing.Any',hBitmap:'win32typing.PyGdiHANDLE',nWidth:'typing.Any',nHeight:'typing.Any') -> 'None': + """ + Creates a new caret for a window + +Args: + + hWnd(typing.Any):handle to owner window + hBitmap(win32typing.PyGdiHANDLE):handle to bitmap for caret shape + nWidth(typing.Any):caret width + nHeight(typing.Any):caret height + +Returns: + + None + + """ + pass + + +def DestroyCaret() -> 'None': + """ + Destroys caret for current task + +Args: + + + +Returns: + + None + + """ + pass + + +def ScrollWindowEx(hWnd:'typing.Any',dx:'typing.Any',dy:'typing.Any',rcScroll:'win32typing.PyRECT',rcClip:'win32typing.PyRECT',hrgnUpdate:'typing.Any',flags:'typing.Any') -> 'tuple[typing.Any, win32typing.PyRECT]': + """ + scrolls the content of the specified window's client area. + +Args: + + hWnd(typing.Any):handle to window to scroll + dx(typing.Any):Amount of horizontal scrolling, in device units + dy(typing.Any):Amount of vertical scrolling, in device units + rcScroll(win32typing.PyRECT):Scroll rectangle, can be None for entire client area + rcClip(win32typing.PyRECT):Clipping rectangle, can be None + hrgnUpdate(typing.Any):Handle to region which will be updated with area invalidated by scroll operation, can be None + flags(typing.Any):Scrolling flags, combination of SW_ERASE,SW_INVALIDATE,SW_SCROLLCHILDREN,SW_SMOOTHSCROLL. If SW_SMOOTHSCROLL is specified, use upper 16 bits to specify time in milliseconds.Return ValueReturns the type of region invalidated by scrolling, and a rectangle defining the affected area. + +Returns: + + tuple[typing.Any, win32typing.PyRECT]:Scrolling flags, combination of SW_ERASE,SW_INVALIDATE,SW_SCROLLCHILDREN,SW_SMOOTHSCROLL. + +If SW_SMOOTHSCROLL is specified, use upper 16 bits to specify time in milliseconds.Return ValueReturns the type of region invalidated by scrolling, and a rectangle defining the affected area. + + + """ + pass + + +def SetScrollInfo(hwnd:'int',nBar:'typing.Any',scollInfo:'win32typing.PySCROLLINFO',bRedraw:'typing.Any'=1) -> 'None': + """ + Sets information about a scroll-bar + +Args: + + hwnd(typing.Any):The handle to the window. + nBar(typing.Any):Identifies the bar. + scollInfo(win32typing.PySCROLLINFO):Scollbar info. + bRedraw(typing.Any):Should the bar be redrawn?Return ValueReturns an int with the current position of the scroll box. + +Returns: + + None:Should the bar be redrawn? +Return ValueReturns an int with the current position of the scroll box. + + + """ + pass + + +def GetScrollInfo(hwnd:'int',nBar:'typing.Any',mask:'typing.Any') -> 'win32typing.PySCROLLINFO': + """ + Returns information about a scroll bar + +Args: + + hwnd(typing.Any):The handle to the window. + nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_CTL, win32con.SB_VERT or win32con.SB_HORZ + mask(typing.Any):The mask for attributes to retrieve. + +Returns: + + win32typing.PySCROLLINFO + + """ + pass + + +def GetClassName(hwnd:'int') -> 'str': + """ + Retrieves the name of the class to which the specified window belongs. + +Args: + + hwnd(int):The handle to the window + +Returns: + + str + + """ + pass + + +def WindowFromPoint(point:'tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + Retrieves a handle to the window that contains the specified point. + +Args: + + point(tuple[typing.Any, typing.Any]):The point. + +Returns: + + typing.Any + + """ + pass + + +def ChildWindowFromPoint(hwndParent:'typing.Any',point:'tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + Determines which, if any, of the child windows belonging to a parent window contains the specified point. + +Args: + + hwndParent(typing.Any):The parent. + point(tuple[typing.Any, typing.Any]):The point. + +Returns: + + typing.Any + + """ + pass + + +def ChildWindowFromPoint(hwndParent:'typing.Any',point:'tuple[typing.Any, typing.Any]') -> 'typing.Any': + """ + Determines which, if any, of the child windows belonging to a parent window contains the specified point. + +Args: + + hwndParent(typing.Any):The parent. + point(tuple[typing.Any, typing.Any]):The point. + +Returns: + + typing.Any + + """ + pass + + +def ListView_SortItems(hwnd:'int',callback:'typing.Any',param:'typing.Any'=None) -> 'None': + """ + Uses an application-defined comparison function to sort the items of a list view control. + +Args: + + hwnd(typing.Any):The handle to the window + callback(typing.Any):A callback object, taking 3 params. + param(typing.Any):The third param to the callback function. + +Returns: + + None + + """ + pass + + +def ListView_SortItemsEx(hwnd:'int',callback:'typing.Any',param:'typing.Any'=None) -> 'None': + """ + Uses an application-defined comparison function to sort the items of a list view control. + +Args: + + hwnd(typing.Any):The handle to the window + callback(typing.Any):A callback object, taking 3 params. + param(typing.Any):The third param to the callback function. + +Returns: + + None + + """ + pass + + +def CreateDC(Driver:'str',Device:'str',InitData:'win32typing.PyDEVMODE') -> 'typing.Any': + """ + Creates a device context for a printer or display device + +Args: + + Driver(str):Name of display or print provider, usually DISPLAY or WINSPOOL + Device(str):Name of specific device, eg printer name returned from GetDefaultPrinter + InitData(win32typing.PyDEVMODE):A PyDEVMODE that specifies printing parameters, use None for printer defaults + +Returns: + + typing.Any + + """ + pass + + +def GetSaveFileNameW(hwndOwner:'int'=None,hInstance:'int'=None,Filter:'typing.Any'=None,CustomFilter:'typing.Any'=None,FilterIndex:'typing.Any'=0,File:'typing.Any'=None,MaxFile:'typing.Any'=1024,InitialDir:'typing.Any'=None,Title:'typing.Any'=None,Flags:'typing.Any'=0,DefExt:'typing.Any'=None,TemplateName:'win32typing.PyResourceId'=None) -> 'tuple[typing.Any, typing.Any, typing.Any]': + """ + Creates a dialog for user to specify location to save a file or files + +Args: + + hwndOwner(int):Handle to window that owns dialog + hInstance(int):Handle to module that contains dialog template + Filter(typing.Any):Contains pairs of descriptions and filespecs separated by NULLS, with a final trailing NULL. Example: 'Python Scripts\\0*.py;*.pyw;*.pys\\0Text files\\0*.txt\\0' + CustomFilter(typing.Any):Description to be used for filter that user selected or typed, can also contain a filespec as above + FilterIndex(typing.Any):Specifies which of the filters is initially selected, use 0 for CustomFilter + File(typing.Any):The file name initially displayed + MaxFile(typing.Any):Number of characters to allocate for selected filename(s), override if large number of files expected + InitialDir(typing.Any):The starting directory + Title(typing.Any):The title of the dialog box + Flags(typing.Any):Combination of win32con.OFN_* constants + DefExt(typing.Any):The default extension to use + TemplateName(win32typing.PyResourceId):Name or resource id of dialog box templateCommentsAccepts keyword arguments, all arguments optionalReturn ValueReturns a tuple of 3 values (PyUNICODE, PyUNICODE, int): First is the selected file(s). If multiple files are selected, returned string will be the directory followed by files names separated by nulls, otherwise it will be the full path. In other words, if you use the OFN_ALLOWMULTISELECT flag you should split this value on \\0 characters and if the length of the result list is 1, it will be the full path, otherwise element 0 will be the directory and the rest of the elements will be filenames in this directory. Second is a unicode string containing user-selected filter, will be None if CustomFilter was not specified Third item contains flags pertaining to users input, such as OFN_READONLY and OFN_EXTENSIONDIFFERENT If the user presses cancel or an error occurs, a win32gui.error is raised. If the user pressed cancel, the error number (ie, the winerror attribute of the exception) will be zero. + +Returns: + + tuple[typing.Any, typing.Any, typing.Any]:Name or resource id of dialog box template +Comments + +Accepts keyword arguments, all arguments optional +Return ValueReturns a tuple of 3 values (PyUNICODE, PyUNICODE, int): + +First is the selected file(s). If multiple files are selected, returned string will be the directory followed by files names + +separated by nulls, otherwise it will be the full path. In other words, if you use the OFN_ALLOWMULTISELECT flag + +you should split this value on \\0 characters and if the length of the result list is 1, it will be + +the full path, otherwise element 0 will be the directory and the rest of the elements will be filenames in + +this directory. + +Second is a unicode string containing user-selected filter, will be None if CustomFilter was not specified + +Third item contains flags pertaining to users input, such as OFN_READONLY and OFN_EXTENSIONDIFFERENT + +If the user presses cancel or an error occurs, a + +win32gui.error is raised. If the user pressed cancel, the error number (ie, the winerror attribute of the exception) will be zero. + + + """ + pass + + +def GetOpenFileNameW(hwndOwner:'int'=None,hInstance:'int'=None,Filter:'typing.Any'=None,CustomFilter:'typing.Any'=None,FilterIndex:'typing.Any'=0,File:'typing.Any'=None,MaxFile:'typing.Any'=1024,InitialDir:'typing.Any'=None,Title:'typing.Any'=None,Flags:'typing.Any'=0,DefExt:'typing.Any'=None,TemplateName:'win32typing.PyResourceId'=None) -> 'tuple[typing.Any, typing.Any, typing.Any]': + """ + Creates a dialog to allow user to select file(s) to open + +Args: + + hwndOwner(int):Handle to window that owns dialog + hInstance(int):Handle to module that contains dialog template + Filter(typing.Any):Contains pairs of descriptions and filespecs separated by NULLS, with a final trailing NULL. Example: 'Python Scripts\\0*.py;*.pyw;*.pys\\0Text files\\0*.txt\\0' + CustomFilter(typing.Any):Description to be used for filter that user selected or typed, can also contain a filespec as above + FilterIndex(typing.Any):Specifies which of the filters is initially selected, use 0 for CustomFilter + File(typing.Any):The file name initially displayed + MaxFile(typing.Any):Number of characters to allocate for selected filename, override if large number of files expected + InitialDir(typing.Any):The starting directory + Title(typing.Any):The title of the dialog box + Flags(typing.Any):Combination of win32con.OFN_* constants + DefExt(typing.Any):The default extension to use + TemplateName(win32typing.PyResourceId):Name or resource id of dialog box templateCommentsAccepts keyword arguments, all arguments optional Input parameters and return values are identical to win32gui::GetSaveFileNameW + +Returns: + + tuple[typing.Any, typing.Any, typing.Any] + + """ + pass + + +def SystemParametersInfo(Action:'typing.Any',Param:'typing.Any'=None,WinIni:'typing.Any'=0) -> 'None': + """ + Queries or sets system-wide parameters. This function can also update the user profile while setting a parameter. + +Args: + + Action(typing.Any):System parameter to query or set, one of the SPI_GET* or SPI_SET* constants + Param(typing.Any):depends on action to be taken + WinIni(typing.Any):Flags specifying whether change should be permanent, and if all windows should be notified of change. Combination of SPIF_UPDATEINIFILE, SPIF_SENDCHANGE, SPIF_SENDWININICHANGEActionInput/return typeSPI_GETDESKWALLPAPERReturns the path to the bmp used as wallpaperSPI_SETDESKWALLPAPERParam should be a string specifying a .bmp fileSPI_GETDROPSHADOWReturns a booleanSPI_GETFLATMENUReturns a booleanSPI_GETFONTSMOOTHINGReturns a booleanSPI_GETICONTITLEWRAPReturns a booleanSPI_GETSNAPTODEFBUTTONReturns a booleanSPI_GETBEEPReturns a booleanSPI_GETBLOCKSENDINPUTRESETSReturns a booleanSPI_GETMENUUNDERLINESReturns a booleanSPI_GETKEYBOARDCUESReturns a booleanSPI_GETKEYBOARDPREFReturns a booleanSPI_GETSCREENSAVEACTIVEReturns a booleanSPI_GETSCREENSAVERRUNNINGReturns a booleanSPI_GETMENUDROPALIGNMENTReturns a boolean (True indicates left aligned, False right aligned)SPI_GETMENUFADEReturns a booleanSPI_GETLOWPOWERACTIVEReturns a booleanSPI_GETPOWEROFFACTIVEReturns a booleanSPI_GETCOMBOBOXANIMATIONReturns a booleanSPI_GETCURSORSHADOWReturns a booleanSPI_GETGRADIENTCAPTIONSReturns a booleanSPI_GETHOTTRACKINGReturns a booleanSPI_GETLISTBOXSMOOTHSCROLLINGReturns a booleanSPI_GETMENUANIMATIONReturns a booleanSPI_GETSELECTIONFADEReturns a booleanSPI_GETTOOLTIPANIMATIONReturns a booleanSPI_GETTOOLTIPFADEReturns a boolean (TRUE=fade, False=slide)SPI_GETUIEFFECTSReturns a booleanSPI_GETACTIVEWINDOWTRACKINGReturns a booleanSPI_GETACTIVEWNDTRKZORDERReturns a booleanSPI_GETDRAGFULLWINDOWSReturns a booleanSPI_GETSHOWIMEUIReturns a booleanSPI_GETMOUSECLICKLOCKReturns a booleanSPI_GETMOUSESONARReturns a booleanSPI_GETMOUSEVANISHReturns a booleanSPI_GETSCREENREADERReturns a booleanSPI_GETSHOWSOUNDSReturns a booleanSPI_SETDROPSHADOWParam must be a booleanSPI_SETDROPSHADOWParam must be a booleanSPI_SETMENUUNDERLINESParam must be a booleanSPI_SETKEYBOARDCUESParam must be a booleanSPI_SETMENUFADEParam must be a booleanSPI_SETCOMBOBOXANIMATIONParam must be a booleanSPI_SETCURSORSHADOWParam must be a booleanSPI_SETGRADIENTCAPTIONSParam must be a booleanSPI_SETHOTTRACKINGParam must be a booleanSPI_SETLISTBOXSMOOTHSCROLLINGParam must be a booleanSPI_SETMENUANIMATIONParam must be a booleanSPI_SETSELECTIONFADEParam must be a booleanSPI_SETTOOLTIPANIMATIONParam must be a booleanSPI_SETTOOLTIPFADEParam must be a booleanSPI_SETUIEFFECTSParam must be a booleanSPI_SETACTIVEWINDOWTRACKINGParam must be a booleanSPI_SETACTIVEWNDTRKZORDERParam must be a booleanSPI_SETMOUSESONARParam must be a booleanSPI_SETMOUSEVANISHParam must be a booleanSPI_SETMOUSECLICKLOCKParam must be a booleanSPI_SETFONTSMOOTHINGParam should specify a booleanSPI_SETICONTITLEWRAPParam should specify a booleanSPI_SETSNAPTODEFBUTTONParam is a booleanSPI_SETBEEPParam is a booleanSPI_SETBLOCKSENDINPUTRESETSParam is a booleanSPI_SETKEYBOARDPREFParam is a booleanSPI_SETMOUSEBUTTONSWAPParam is a booleanSPI_SETSCREENSAVEACTIVEParam is a booleanSPI_SETMENUDROPALIGNMENTParam is a boolean (True=left aligned, False=right aligned)SPI_SETLOWPOWERACTIVEParam is a booleanSPI_SETPOWEROFFACTIVEParam is a booleanSPI_SETDRAGFULLWINDOWSParam is a booleanSPI_SETSHOWIMEUIParam is a booleanSPI_SETSCREENREADERParam is a booleanSPI_SETSHOWSOUNDSParam is a booleanSPI_SETMOUSETRAILSParam should be an int specifying the nbr of cursors in the trail (0 or 1 means disabled)SPI_SETWHEELSCROLLLINESParam is an int specifying nbr of linesSPI_SETKEYBOARDDELAYParam is an int in the range 0 - 3SPI_SETKEYBOARDSPEEDParam is an int in the range 0 - 31SPI_SETDOUBLECLICKTIMEParam is an int (in milliseconds), Use win32gui::GetDoubleClickTime to retrieve the value.SPI_SETDOUBLECLKWIDTHParam is an int. Use win32api.GetSystemMetrics(SM_CXDOUBLECLK) to retrieve the value.SPI_SETDOUBLECLKHEIGHTParam is an int, Use win32api.GetSystemMetrics(SM_CYDOUBLECLK) to retrieve the value.SPI_SETMOUSEHOVERHEIGHTParam is an intSPI_SETMOUSEHOVERWIDTHParam is an intSPI_SETMOUSEHOVERTIMEParam is an intSPI_SETSCREENSAVETIMEOUTParam is an int specifying the timeout in secondsSPI_SETMENUSHOWDELAYParam is an int specifying the shortcut menu delay in millisecondsSPI_SETLOWPOWERTIMEOUTParam is an int (in seconds)SPI_SETPOWEROFFTIMEOUTParam is an int (in seconds)SPI_SETDRAGHEIGHTParam is an int. Use win32api.GetSystemMetrics(SM_CYDRAG) to retrieve the value.SPI_SETDRAGWIDTHParam is an int. Use win32api.GetSystemMetrics(SM_CXDRAG) to retrieve the value.SPI_SETBORDERParam is an intSPI_GETFONTSMOOTHINGCONTRASTReturns an intSPI_GETFONTSMOOTHINGTYPEReturns an intSPI_GETMOUSETRAILSReturns an int specifying the nbr of cursor images in the trail, 0 or 1 indicates disabledSPI_GETWHEELSCROLLLINESReturns the nbr of lines to scroll for the mouse wheelSPI_GETKEYBOARDDELAYReturns an intSPI_GETKEYBOARDSPEEDReturns an intSPI_GETMOUSESPEEDReturns an intSPI_GETMOUSEHOVERHEIGHTReturns an intSPI_GETMOUSEHOVERWIDTHReturns an intSPI_GETMOUSEHOVERTIMEReturns an intSPI_GETSCREENSAVETIMEOUTReturns an int (idle time in seconds)SPI_GETMENUSHOWDELAYReturns an int (shortcut delay in milliseconds)SPI_GETLOWPOWERTIMEOUTReturns an int (in seconds)SPI_GETPOWEROFFTIMEOUTReturns an int (in seconds)SPI_GETACTIVEWNDTRKTIMEOUTReturns an int (milliseconds)SPI_GETBORDERReturns an intSPI_GETCARETWIDTHReturns an intSPI_GETFOREGROUNDFLASHCOUNTReturns an intSPI_GETFOREGROUNDLOCKTIMEOUTReturns an intSPI_GETFOCUSBORDERHEIGHTReturns an intSPI_GETFOCUSBORDERWIDTHReturns an intSPI_GETMOUSECLICKLOCKTIMEReturns an int (in milliseconds)SPI_SETFONTSMOOTHINGCONTRASTParam should be an int in the range 1000 to 2200SPI_SETFONTSMOOTHINGTYPEParam should be one of the FE_FONTSMOOTHING* constantsSPI_SETMOUSESPEEDParam should be an int in the range 1 - 20SPI_SETACTIVEWNDTRKTIMEOUTParam is an int (in milliseconds)SPI_SETCARETWIDTHParam is an int (in pixels)SPI_SETFOREGROUNDFLASHCOUNTParam is an intSPI_SETFOREGROUNDLOCKTIMEOUTParam is an int (in milliseconds)SPI_SETFOCUSBORDERHEIGHTReturns an intSPI_SETFOCUSBORDERWIDTHReturns an intSPI_SETMOUSECLICKLOCKTIMEParam is an int (in milliseconds)SPI_GETICONTITLELOGFONTReturns a PyLOGFONT,SPI_SETICONTITLELOGFONTParam must be a PyLOGFONT,SPI_SETLANGTOGGLEParam is ignored. Sets the language toggle hotkey from registry key HKCU\\keyboard layout\\toggleSPI_SETICONSReloads the system icons. Param is not usedSPI_GETMOUSEReturns a tuple of 3 ints containing the x and y mouse thresholds and the acceleration factor.SPI_SETMOUSEParam should be a sequence of 3 intsSPI_GETDEFAULTINPUTLANGReturns an int (locale id for default language)SPI_SETDEFAULTINPUTLANGParam is an int containing a locale idSPI_GETANIMATIONReturns an intSPI_SETANIMATIONParam is an intSPI_ICONHORIZONTALSPACINGFunctions as both a get and set operation. If Param is None, functions as a get operation, otherwise Param is an int to be set as the new valueSPI_ICONVERTICALSPACINGFunctions as both a get and set operation. If Param is None, functions as a get operation, otherwise Param is an int to be set as the new valueSPI_GETNONCLIENTMETRICSParam must be None. The result is a dict.SPI_SETNONCLIENTMETRICSParam is a dict in the form of a NONCLIENTMETRICS struct, as returned by SPI_GETNONCLIENTMETRICS operationSPI_GETMINIMIZEDMETRICSReturns a dict representing a MINIMIZEDMETRICS struct. Param is not used.SPI_SETMINIMIZEDMETRICSParam should be a MINIMIZEDMETRICS dict as returned by SPI_GETMINIMIZEDMETRICS actionSPI_SETDESKPATTERNUnsupported (obsolete)SPI_GETFASTTASKSWITCHUnsupported (obsolete)SPI_SETFASTTASKSWITCHUnsupported (obsolete)SPI_SETSCREENSAVERRUNNINGUnsupported (documented as internal use only)SPI_SCREENSAVERRUNNINGSame as SPI_SETSCREENSAVERRUNNINGSPI_SETPENWINDOWSUnsupported (only relevant for win95)SPI_GETWINDOWSEXTENSIONUnsupported (only relevant for win95)SPI_GETGRIDGRANULARITYUnsupported (obsolete)SPI_SETGRIDGRANULARITYUnsupported (obsolete)SPI_LANGDRIVERUnsupported (use is not documented)SPI_GETFONTSMOOTHINGORIENTATIONUnsupported (use is not documented)SPI_SETFONTSMOOTHINGORIENTATIONUnsupported (use is not documented)SPI_SETHANDHELDUnsupported (use is not documented)SPI_GETICONMETRICSNot implemented yetSPI_SETICONMETRICSNot implemented yetSPI_GETWORKAREANot implemented yetSPI_SETWORKAREANot implemented yetSPI_GETSERIALKEYSNot implemented yetSPI_SETSERIALKEYSNot implemented yetSPI_SETMOUSEKEYSNot implemented yetSPI_GETMOUSEKEYSNot implemented yetSPI_GETHIGHCONTRASTNot implemented yetSPI_SETHIGHCONTRASTNot implemented yetSPI_GETSOUNDSENTRYNot implemented yetSPI_SETSOUNDSENTRYNot implemented yetSPI_GETSTICKYKEYSNot implemented yetSPI_SETSTICKYKEYSNot implemented yetSPI_GETTOGGLEKEYSNot implemented yetSPI_SETTOGGLEKEYSNot implemented yetSPI_GETACCESSTIMEOUTNot implemented yetSPI_SETACCESSTIMEOUTNot implemented yetSPI_GETFILTERKEYSNot implemented yetSPI_SETFILTERKEYSNot implemented yetCommentsParam and WinIni are not used with any of the SPI_GET operations Boolean parameters can be any object that can be evaluated as True or FalseReturn ValueSPI_SET functions all return None on success. Types returned by SPI_GET functions are dependent on the operation + +Returns: + + None:Flags specifying whether change should be permanent, and if all windows should be notified of change. Combination of SPIF_UPDATEINIFILE, SPIF_SENDCHANGE, SPIF_SENDWININICHANGE + + + +Action + + +Input/return type + + + +SPI_GETDESKWALLPAPERReturns the path to the bmp used as wallpaper +SPI_SETDESKWALLPAPERParam should be a string specifying a .bmp file +SPI_GETDROPSHADOWReturns a boolean +SPI_GETFLATMENUReturns a boolean +SPI_GETFONTSMOOTHINGReturns a boolean +SPI_GETICONTITLEWRAPReturns a boolean +SPI_GETSNAPTODEFBUTTONReturns a boolean +SPI_GETBEEPReturns a boolean +SPI_GETBLOCKSENDINPUTRESETSReturns a boolean +SPI_GETMENUUNDERLINESReturns a boolean +SPI_GETKEYBOARDCUESReturns a boolean +SPI_GETKEYBOARDPREFReturns a boolean +SPI_GETSCREENSAVEACTIVEReturns a boolean +SPI_GETSCREENSAVERRUNNINGReturns a boolean +SPI_GETMENUDROPALIGNMENTReturns a boolean (True indicates left aligned, False right aligned) +SPI_GETMENUFADEReturns a boolean +SPI_GETLOWPOWERACTIVEReturns a boolean +SPI_GETPOWEROFFACTIVEReturns a boolean +SPI_GETCOMBOBOXANIMATIONReturns a boolean +SPI_GETCURSORSHADOWReturns a boolean +SPI_GETGRADIENTCAPTIONSReturns a boolean +SPI_GETHOTTRACKINGReturns a boolean +SPI_GETLISTBOXSMOOTHSCROLLINGReturns a boolean +SPI_GETMENUANIMATIONReturns a boolean +SPI_GETSELECTIONFADEReturns a boolean +SPI_GETTOOLTIPANIMATIONReturns a boolean +SPI_GETTOOLTIPFADEReturns a boolean (TRUE=fade, False=slide) +SPI_GETUIEFFECTSReturns a boolean +SPI_GETACTIVEWINDOWTRACKINGReturns a boolean +SPI_GETACTIVEWNDTRKZORDERReturns a boolean +SPI_GETDRAGFULLWINDOWSReturns a boolean +SPI_GETSHOWIMEUIReturns a boolean +SPI_GETMOUSECLICKLOCKReturns a boolean +SPI_GETMOUSESONARReturns a boolean +SPI_GETMOUSEVANISHReturns a boolean +SPI_GETSCREENREADERReturns a boolean +SPI_GETSHOWSOUNDSReturns a boolean +SPI_SETDROPSHADOWParam must be a boolean +SPI_SETDROPSHADOWParam must be a boolean +SPI_SETMENUUNDERLINESParam must be a boolean +SPI_SETKEYBOARDCUESParam must be a boolean +SPI_SETMENUFADEParam must be a boolean +SPI_SETCOMBOBOXANIMATIONParam must be a boolean +SPI_SETCURSORSHADOWParam must be a boolean +SPI_SETGRADIENTCAPTIONSParam must be a boolean +SPI_SETHOTTRACKINGParam must be a boolean +SPI_SETLISTBOXSMOOTHSCROLLINGParam must be a boolean +SPI_SETMENUANIMATIONParam must be a boolean +SPI_SETSELECTIONFADEParam must be a boolean +SPI_SETTOOLTIPANIMATIONParam must be a boolean +SPI_SETTOOLTIPFADEParam must be a boolean +SPI_SETUIEFFECTSParam must be a boolean +SPI_SETACTIVEWINDOWTRACKINGParam must be a boolean +SPI_SETACTIVEWNDTRKZORDERParam must be a boolean +SPI_SETMOUSESONARParam must be a boolean +SPI_SETMOUSEVANISHParam must be a boolean +SPI_SETMOUSECLICKLOCKParam must be a boolean +SPI_SETFONTSMOOTHINGParam should specify a boolean +SPI_SETICONTITLEWRAPParam should specify a boolean +SPI_SETSNAPTODEFBUTTONParam is a boolean +SPI_SETBEEPParam is a boolean +SPI_SETBLOCKSENDINPUTRESETSParam is a boolean +SPI_SETKEYBOARDPREFParam is a boolean +SPI_SETMOUSEBUTTONSWAPParam is a boolean +SPI_SETSCREENSAVEACTIVEParam is a boolean +SPI_SETMENUDROPALIGNMENTParam is a boolean (True=left aligned, False=right aligned) +SPI_SETLOWPOWERACTIVEParam is a boolean +SPI_SETPOWEROFFACTIVEParam is a boolean +SPI_SETDRAGFULLWINDOWSParam is a boolean +SPI_SETSHOWIMEUIParam is a boolean +SPI_SETSCREENREADERParam is a boolean +SPI_SETSHOWSOUNDSParam is a boolean +SPI_SETMOUSETRAILSParam should be an int specifying the nbr of cursors in the trail (0 or 1 means disabled) +SPI_SETWHEELSCROLLLINESParam is an int specifying nbr of lines +SPI_SETKEYBOARDDELAYParam is an int in the range 0 - 3 +SPI_SETKEYBOARDSPEEDParam is an int in the range 0 - 31 +SPI_SETDOUBLECLICKTIMEParam is an int (in milliseconds), Use win32gui::GetDoubleClickTime to retrieve the value. +SPI_SETDOUBLECLKWIDTHParam is an int. Use win32api.GetSystemMetrics(SM_CXDOUBLECLK) to retrieve the value. +SPI_SETDOUBLECLKHEIGHTParam is an int, Use win32api.GetSystemMetrics(SM_CYDOUBLECLK) to retrieve the value. +SPI_SETMOUSEHOVERHEIGHTParam is an int +SPI_SETMOUSEHOVERWIDTHParam is an int +SPI_SETMOUSEHOVERTIMEParam is an int +SPI_SETSCREENSAVETIMEOUTParam is an int specifying the timeout in seconds +SPI_SETMENUSHOWDELAYParam is an int specifying the shortcut menu delay in milliseconds +SPI_SETLOWPOWERTIMEOUTParam is an int (in seconds) +SPI_SETPOWEROFFTIMEOUTParam is an int (in seconds) +SPI_SETDRAGHEIGHTParam is an int. Use win32api.GetSystemMetrics(SM_CYDRAG) to retrieve the value. +SPI_SETDRAGWIDTHParam is an int. Use win32api.GetSystemMetrics(SM_CXDRAG) to retrieve the value. +SPI_SETBORDERParam is an int +SPI_GETFONTSMOOTHINGCONTRASTReturns an int +SPI_GETFONTSMOOTHINGTYPEReturns an int +SPI_GETMOUSETRAILSReturns an int specifying the nbr of cursor images in the trail, 0 or 1 indicates disabled +SPI_GETWHEELSCROLLLINESReturns the nbr of lines to scroll for the mouse wheel +SPI_GETKEYBOARDDELAYReturns an int +SPI_GETKEYBOARDSPEEDReturns an int +SPI_GETMOUSESPEEDReturns an int +SPI_GETMOUSEHOVERHEIGHTReturns an int +SPI_GETMOUSEHOVERWIDTHReturns an int +SPI_GETMOUSEHOVERTIMEReturns an int +SPI_GETSCREENSAVETIMEOUTReturns an int (idle time in seconds) +SPI_GETMENUSHOWDELAYReturns an int (shortcut delay in milliseconds) +SPI_GETLOWPOWERTIMEOUTReturns an int (in seconds) +SPI_GETPOWEROFFTIMEOUTReturns an int (in seconds) +SPI_GETACTIVEWNDTRKTIMEOUTReturns an int (milliseconds) +SPI_GETBORDERReturns an int +SPI_GETCARETWIDTHReturns an int +SPI_GETFOREGROUNDFLASHCOUNTReturns an int +SPI_GETFOREGROUNDLOCKTIMEOUTReturns an int +SPI_GETFOCUSBORDERHEIGHTReturns an int +SPI_GETFOCUSBORDERWIDTHReturns an int +SPI_GETMOUSECLICKLOCKTIMEReturns an int (in milliseconds) +SPI_SETFONTSMOOTHINGCONTRASTParam should be an int in the range 1000 to 2200 +SPI_SETFONTSMOOTHINGTYPEParam should be one of the FE_FONTSMOOTHING* constants +SPI_SETMOUSESPEEDParam should be an int in the range 1 - 20 +SPI_SETACTIVEWNDTRKTIMEOUTParam is an int (in milliseconds) +SPI_SETCARETWIDTHParam is an int (in pixels) +SPI_SETFOREGROUNDFLASHCOUNTParam is an int +SPI_SETFOREGROUNDLOCKTIMEOUTParam is an int (in milliseconds) +SPI_SETFOCUSBORDERHEIGHTReturns an int +SPI_SETFOCUSBORDERWIDTHReturns an int +SPI_SETMOUSECLICKLOCKTIMEParam is an int (in milliseconds) +SPI_GETICONTITLELOGFONTReturns a PyLOGFONT, +SPI_SETICONTITLELOGFONTParam must be a PyLOGFONT, +SPI_SETLANGTOGGLEParam is ignored. Sets the language toggle hotkey from registry key HKCU\\keyboard layout\\toggle +SPI_SETICONSReloads the system icons. Param is not used +SPI_GETMOUSEReturns a tuple of 3 ints containing the x and y mouse thresholds and the acceleration factor. +SPI_SETMOUSEParam should be a sequence of 3 ints +SPI_GETDEFAULTINPUTLANGReturns an int (locale id for default language) +SPI_SETDEFAULTINPUTLANGParam is an int containing a locale id +SPI_GETANIMATIONReturns an int +SPI_SETANIMATIONParam is an int +SPI_ICONHORIZONTALSPACINGFunctions as both a get and set operation. If Param is None, functions as a get operation, otherwise Param is an int to be set as the new value +SPI_ICONVERTICALSPACINGFunctions as both a get and set operation. If Param is None, functions as a get operation, otherwise Param is an int to be set as the new value +SPI_GETNONCLIENTMETRICSParam must be None. The result is a dict. +SPI_SETNONCLIENTMETRICSParam is a dict in the form of a NONCLIENTMETRICS struct, as returned by SPI_GETNONCLIENTMETRICS operation +SPI_GETMINIMIZEDMETRICSReturns a dict representing a MINIMIZEDMETRICS struct. Param is not used. +SPI_SETMINIMIZEDMETRICSParam should be a MINIMIZEDMETRICS dict as returned by SPI_GETMINIMIZEDMETRICS action +SPI_SETDESKPATTERNUnsupported (obsolete) +SPI_GETFASTTASKSWITCHUnsupported (obsolete) +SPI_SETFASTTASKSWITCHUnsupported (obsolete) +SPI_SETSCREENSAVERRUNNINGUnsupported (documented as internal use only) +SPI_SCREENSAVERRUNNINGSame as SPI_SETSCREENSAVERRUNNING +SPI_SETPENWINDOWSUnsupported (only relevant for win95) +SPI_GETWINDOWSEXTENSIONUnsupported (only relevant for win95) +SPI_GETGRIDGRANULARITYUnsupported (obsolete) +SPI_SETGRIDGRANULARITYUnsupported (obsolete) +SPI_LANGDRIVERUnsupported (use is not documented) +SPI_GETFONTSMOOTHINGORIENTATIONUnsupported (use is not documented) +SPI_SETFONTSMOOTHINGORIENTATIONUnsupported (use is not documented) +SPI_SETHANDHELDUnsupported (use is not documented) +SPI_GETICONMETRICSNot implemented yet +SPI_SETICONMETRICSNot implemented yet +SPI_GETWORKAREANot implemented yet +SPI_SETWORKAREANot implemented yet +SPI_GETSERIALKEYSNot implemented yet +SPI_SETSERIALKEYSNot implemented yet +SPI_SETMOUSEKEYSNot implemented yet +SPI_GETMOUSEKEYSNot implemented yet +SPI_GETHIGHCONTRASTNot implemented yet +SPI_SETHIGHCONTRASTNot implemented yet +SPI_GETSOUNDSENTRYNot implemented yet +SPI_SETSOUNDSENTRYNot implemented yet +SPI_GETSTICKYKEYSNot implemented yet +SPI_SETSTICKYKEYSNot implemented yet +SPI_GETTOGGLEKEYSNot implemented yet +SPI_SETTOGGLEKEYSNot implemented yet +SPI_GETACCESSTIMEOUTNot implemented yet +SPI_SETACCESSTIMEOUTNot implemented yet +SPI_GETFILTERKEYSNot implemented yet +SPI_SETFILTERKEYSNot implemented yet +Comments + +Param and WinIni are not used with any of the SPI_GET operations + +Boolean parameters can be any object that can be evaluated as True or False +Return ValueSPI_SET functions all return None on success. Types returned by SPI_GET functions are dependent on the operation + + + """ + pass + + +def SetLayeredWindowAttributes(hwnd:'int',Key:'typing.Any',Alpha:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Sets the opacity and transparency color key of a layered window. + +Args: + + hwnd(int):handle to the layered window + Key(typing.Any):Specifies the color key. Use win32api::RGB to generate value. + Alpha(typing.Any):Opacity, in the range 0-255 + Flags(typing.Any):Combination of win32con.LWA_* valuesCommentsThis function only exists on Win2k and laterAccepts keyword arguments + +Returns: + + None + + """ + pass + + +def GetLayeredWindowAttributes(hwnd:'int') -> 'tuple[typing.Any, typing.Any, typing.Any]': + """ + Retrieves the layering parameters of a window with the WS_EX_LAYERED extended style + +Args: + + hwnd(int):Handle to a layered windowCommentsThis function only exists on WinXP and later.Accepts keyword arguments.Return ValueReturns a tuple of (color key, alpha, flags) + +Returns: + + tuple[typing.Any, typing.Any, typing.Any]:Handle to a layered windowComments + +This function only exists on WinXP and later. + +Accepts keyword arguments. +Return ValueReturns a tuple of (color key, alpha, flags) + + + """ + pass + + +def UpdateLayeredWindow(hwnd:'int',arg:'tuple[int, int, int, int]',hdcDst:'int'=None,ptDst:'tuple[typing.Any, typing.Any]'=None,size:'tuple[typing.Any, typing.Any]'=None,hdcSrc:'typing.Any'=None,ptSrc:'tuple[typing.Any, typing.Any]'=None,Key:'typing.Any'=0,Flags:'typing.Any'=0) -> 'None': + """ + Updates the position, size, shape, content, and translucency of a layered window. + +Args: + + hwnd(int):handle to layered window + arg(tuple[int, int, int, int]):PyBLENDFUNCTION specifying alpha blending parameters + hdcDst(int):handle to screen DC, can be None. *Must* be None if hdcSrc is None + ptDst(tuple[typing.Any, typing.Any]):New screen position, can be None. + size(tuple[typing.Any, typing.Any]):New size of the layered window, can be None. *Must* be None if hdcSrc is None. + hdcSrc(typing.Any):handle to surface DC for the window, can be None + ptSrc(tuple[typing.Any, typing.Any]):layer position, can be None. *Must* be None if hdcSrc is None. + Key(typing.Any):Color key, generate using win32api::RGB + Flags(typing.Any):One of the win32con.ULW_* values. Use 0 if hdcSrc is None.CommentsThis function is only available on Windows 2000 and laterAccepts keyword arguments. + +Returns: + + None + + """ + pass + + +def AnimateWindow(hwnd:'int',Time:'typing.Any',Flags:'typing.Any') -> 'None': + """ + Enables you to produce special effects when showing or hiding windows. There are three types of animation: roll, slide, and alpha-blended fade. + +Args: + + hwnd(int):handle to window + Time(typing.Any):Duration of animation in ms + Flags(typing.Any):Animation type, combination of win32con.AW_* flagsCommentsThis function is available on Win2k and laterAccepts keyword args + +Returns: + + None + + """ + pass + + +def CreateBrushIndirect(lb:'win32typing.PyLOGBRUSH') -> 'win32typing.PyGdiHANDLE': + """ + Creates a GDI brush from a LOGBRUSH struct + +Args: + + lb(win32typing.PyLOGBRUSH):Dict containing brush creation parameters + +Returns: + + win32typing.PyGdiHANDLE + + """ + pass + + +def ExtCreatePen(PenStyle:'typing.Any',Width:'typing.Any',lb:'win32typing.PyLOGBRUSH',Style:'tuple[typing.Any, ...]'=None) -> 'int': + """ + Creates a GDI pen object + +Args: + + PenStyle(typing.Any):Combination of win32con.PS_*. Must contain either PS_GEOMETRIC or PS_COSMETIC. + Width(typing.Any):Width of pen in logical units. Must be 1 for PS_COSMETIC. + lb(win32typing.PyLOGBRUSH):Dict containing brush creation parameters + Style(tuple[typing.Any, ...]):Sequence containing lengths of dashes and spaces Used only with PS_USERSTYLE, otherwise must be None. + +Returns: + + int + + """ + pass + + +def DrawTextW(hDC:'int',String:'str',Count:'typing.Any',Rect:'win32typing.PyRECT',Format:'typing.Any') -> 'tuple[typing.Any, win32typing.PyRECT]': + """ + Draws Unicode text on a device context. + +Args: + + hDC(int):Handle to a device context + String(str):Text to be drawn + Count(typing.Any):Number of characters to draw, use -1 for entire null terminated string + Rect(win32typing.PyRECT):Rectangle in which to draw text + Format(typing.Any):Formatting flags, combination of win32con.DT_* valuesCommentsAccepts keyword args.Return ValueReturns the height of the drawn text, and the rectangle coordinates + +Returns: + + tuple[typing.Any, win32typing.PyRECT]:Formatting flags, combination of win32con.DT_* valuesComments + +Accepts keyword args. +Return ValueReturns the height of the drawn text, and the rectangle coordinates + + + """ + pass + + +def EnumPropsEx(hWnd:'int',EnumFunc:'typing.Any',Param:'typing.Any') -> 'None': + """ + None + +Args: + + hWnd(int):Handle to a window + EnumFunc(typing.Any):Callback function + Param(typing.Any):Arbitrary object to be passed to callback function + +Returns: + + None + + """ + pass + + +def RegisterDeviceNotification(handle:'int',_filter:'typing.Any',flags:'typing.Any') -> 'win32typing.PyHDEVNOTIFY': + """ + Registers the device or type of device for which a window will receive notifications. + +Args: + + handle(int):The handle to a window or a service + _filter(typing.Any):A buffer laid out like one of the DEV_BROADCAST_* structures, generally built by one of the win32gui_struct helpers. + flags(typing.Any):Win32 API References + +Returns: + + win32typing.PyHDEVNOTIFY + + """ + pass + + +def UnregisterDeviceNotification() -> 'None': + """ + Unregisters a Device Notification handle. + +It is generally not necessary to call this function manually, but in some cases, + +handle values may be extracted via the struct module and need to be closed explicitly. + +Args: + + + +Returns: + + None + + """ + pass + + +def RegisterHotKey(hWnd:'int',_id:'typing.Any',Modifiers:'typing.Any',vk:'typing.Any') -> 'None': + """ + Registers a hotkey for a window + +Args: + + hWnd(int):Handle to window that will receive WM_HOTKEY messages + _id(typing.Any):Unique id to be used for the hot key + Modifiers(typing.Any):Control keys, combination of win32con.MOD_* + vk(typing.Any):Virtual key codeWin32 API References + +Returns: + + None + + """ + pass + +CLR_NONE = ... +ILC_COLOR = ... +ILC_COLOR16 = ... +ILC_COLOR24 = ... +ILC_COLOR32 = ... +ILC_COLOR4 = ... +ILC_COLOR8 = ... +ILC_COLORDDB = ... +ILC_MASK = ... +ILD_BLEND = ... +ILD_BLEND25 = ... +ILD_BLEND50 = ... +ILD_FOCUS = ... +ILD_MASK = ... +ILD_NORMAL = ... +ILD_SELECTED = ... +ILD_TRANSPARENT = ... +IMAGE_BITMAP = ... +IMAGE_CURSOR = ... +IMAGE_ICON = ... +LR_CREATEDIBSECTION = ... +LR_DEFAULTCOLOR = ... +LR_DEFAULTSIZE = ... +LR_LOADFROMFILE = ... +LR_LOADMAP3DCOLORS = ... +LR_LOADTRANSPARENT = ... +LR_MONOCHROME = ... +LR_SHARED = ... +LR_VGACOLOR = ... +NIF_ICON = ... +NIF_INFO = ... +NIF_MESSAGE = ... +NIF_STATE = ... +NIF_TIP = ... +NIIF_ERROR = ... +NIIF_ICON_MASK = ... +NIIF_INFO = ... +NIIF_NONE = ... +NIIF_NOSOUND = ... +NIIF_WARNING = ... +NIM_ADD = ... +NIM_DELETE = ... +NIM_MODIFY = ... +NIM_SETFOCUS = ... +NIM_SETVERSION = ... +TPM_BOTTOMALIGN = ... +TPM_CENTERALIGN = ... +TPM_LEFTALIGN = ... +TPM_LEFTBUTTON = ... +TPM_NONOTIFY = ... +TPM_RETURNCMD = ... +TPM_RIGHTALIGN = ... +TPM_RIGHTBUTTON = ... +TPM_TOPALIGN = ... +TPM_VCENTERALIGN = ... From 84a5bb48e45cf4383a22d859a12bf94404d51141 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 7 Dec 2021 20:01:46 -0500 Subject: [PATCH 17/54] Ability to recover window Fixed regressions: Fix crash on clising window mid-run Forgot to migrate split_delay to image.delay Removed dead load_pyqt_settings code Fixed dummy groups Pause time from filename not set correctly Setting hotkeys on load --- .flake8 | 5 ++- pyproject.toml | 7 ++-- scripts/lint.ps1 | 21 +++++++++++ src/AutoSplit.py | 44 ++++++++++++---------- src/AutoSplitImage.py | 4 +- src/capture_windows.py | 36 ++++-------------- src/screen_region.py | 83 ++++++++++++++++++++---------------------- src/settings_file.py | 51 +++++++++++--------------- 8 files changed, 123 insertions(+), 128 deletions(-) diff --git a/.flake8 b/.flake8 index 1abd4c9f..65910611 100644 --- a/.flake8 +++ b/.flake8 @@ -12,6 +12,7 @@ per-file-ignores= __init__.pyi:Q000 ; PyQt methods ignore-names=closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent -; TODO: Bring down to 15, same as SonarLint -max-complexity=55 +; McCabe max-complexity is also taken care of by Pylint and doesn't fail teh build there +; So this is the hard limit +max-complexity=32 inline-quotes=" diff --git a/pyproject.toml b/pyproject.toml index 7268cfee..8001ad5f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,7 @@ typeCheckingMode = "strict" ignore = [ # Auto generated "src/gen/", + # We expect stub files to be incomplete or contain useless statements as they're external "typings/", ] reportMissingTypeStubs = "information" @@ -36,7 +37,7 @@ reportUnknownMemberType = "none" # https://pylint.pycqa.org/en/latest/technical_reference/features.html [tool.pylint.REPORTS] # Just like default but any error will make drop to 9 or less -evaluation = "10.0 - error - ((float(warning + refactor + convention) / statement) * 10)" +evaluation = "10.0 - error - ((float(warning * 10 + refactor + convention) / statement) * 10)" [tool.pylint.MASTER] fail-under = 9.0 # https://pylint.pycqa.org/en/latest/technical_reference/extensions.html @@ -65,10 +66,10 @@ load-plugins = [ # "pylint.extensions.for_any_all", ] ignore-paths = [ - # Haven't looked into disabling specific rules per file - "^typings/.*$", # Auto generated "^src/gen/.*$", + # We expect stub files to be incomplete or contain useless statements as they're external + "^typings/.*$", ] # No need to mention the fixmes disable = ["fixme"] diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index 1d6d6683..b7c100a7 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -6,18 +6,39 @@ $exitCodes = 0 Write-Host "`nRunning Pyright..." pyright --warnings $exitCodes += $LastExitCode +if ($LastExitCode -gt 0) { + Write-Host "`Pyright failed ($LastExitCode)" -ForegroundColor Red +} else { + Write-Host "`Pyright passed" -ForegroundColor Green +} Write-Host "`nRunning Pylint..." pylint --score=n --output-format=colorized $(git ls-files '**/*.py*') $exitCodes += $LastExitCode +if ($LastExitCode -gt 0) { + Write-Host "`Pylint failed ($LastExitCode)" -ForegroundColor Red +} else { + Write-Host "`Pylint passed" -ForegroundColor Green +} Write-Host "`nRunning Flake8..." flake8 $exitCodes += $LastExitCode +if ($LastExitCode -gt 0) { + Write-Host "`Flake8 failed ($LastExitCode)" -ForegroundColor Red +} else { + Write-Host "`Flake8 passed" -ForegroundColor Green +} Write-Host "`nRunning Bandit..." bandit -f custom --silent --recursive src # $exitCodes += $LastExitCode # Returns 1 on low +if ($LastExitCode -gt 0) { + Write-Host "`Bandit warning ($LastExitCode)" -ForegroundColor Yellow +} else { + Write-Host "`Bandit passed" -ForegroundColor Green +} + if ($exitCodes -gt 0) { Write-Host "`nLinting failed ($exitCodes)" -ForegroundColor Red diff --git a/src/AutoSplit.py b/src/AutoSplit.py index a7c5175d..9444e241 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -98,6 +98,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): split_image_directory = "" hwnd = 0 """Window Handle used for Capture Region""" + window_text = "" selection = Rect() last_saved_settings: list[Union[str, float, int, bool]] = [] save_settings_file_path = "" @@ -116,13 +117,11 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): check_start_image_timestamp = 0.0 # Define all other attributes - setting_check_for_updates_on_open: QtCore.QSettings start_image_split_below_threshold: bool waiting_for_split_delay: bool split_below_threshold: bool run_start_time: float similarity: float - split_delay: float start_image: Optional[AutoSplitImage] = None reset_image: Optional[AutoSplitImage] = None split_images: list[AutoSplitImage] = [] @@ -138,7 +137,7 @@ def __init__(self, parent: Optional[QWidget] = None): self.setupUi(self) - settings.load_pyqt_settings(self) + settings.load_check_for_updates_on_open(self) # close all processes when closing window self.action_view_help.triggered.connect(view_help) @@ -255,18 +254,17 @@ def check_live_image(self): def __live_image_function(self): try: - window_text = win32gui.GetWindowText(self.hwnd) - self.capture_region_window_label.setText(window_text) - if not window_text: + self.capture_region_window_label.setText(self.window_text) + if not self.window_text: self.timer_live_image.stop() self.live_image.clear() if self.live_image_function_on_open: self.live_image_function_on_open = False return - # Set live image in UI - capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) - set_ui_image(self.live_image, capture, False) + if self.hwnd: + capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) + set_ui_image(self.live_image, capture, False) except AttributeError: pass @@ -376,7 +374,7 @@ def __start_image_function(self): self.start_image_label.setText(f"{START_IMAGE_TEXT}: started") send_command(self, "start") # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(1 / self.fps_limit_spinbox.value()) # type: ignore + QtTest.QTest.qWait(int(1 / self.fps_limit_spinbox.value())) # type: ignore self.start_auto_splitter() # update x, y, width, height when spinbox values are changed @@ -554,10 +552,10 @@ def __auto_splitter(self): current_group: list[int] = [] self.split_groups.append(current_group) - for i, image in enumerate(self.split_images): + for i, image in enumerate(self.split_images_and_loop_number): current_group.append(i) - if not image.check_flag(DUMMY_FLAG) and i < len(self.split_images) - 1: + if not image[0].check_flag(DUMMY_FLAG) and i < len(self.split_images_and_loop_number) - 1: current_group = [] self.split_groups.append(current_group) self.gui_changes_on_start() @@ -654,8 +652,9 @@ def __auto_splitter(self): if not self.split_image.check_flag(DUMMY_FLAG): # If it's a delayed split, check if the delay has passed # Otherwise calculate the split time for the key press - if self.split_delay > 0 and not self.waiting_for_split_delay: - split_time = int(round(time() * 1000) + self.split_delay) + split_delay = self.split_image.delay / 1000 + if split_delay > 0 and not self.waiting_for_split_delay: + split_time = round(time() + split_delay * 1000) self.waiting_for_split_delay = True self.undo_split_button.setEnabled(False) self.skip_split_button.setEnabled(False) @@ -663,7 +662,6 @@ def __auto_splitter(self): # check for reset while delayed and display a counter of the remaining split delay time delay_start_time = time() - split_delay = self.split_delay / 1000 while time() - delay_start_time < split_delay: delay_time_left = round(split_delay - (time() - delay_start_time), 1) self.current_split_image.setText(f"Delayed Split: {delay_time_left} sec remaining") @@ -711,8 +709,6 @@ def __auto_splitter(self): # Also updates the current split image text, counting down the time until the next split image pause_time = self.split_image.get_pause_time(self) if pause_time > 0: - self.current_split_image_file_label.setText(" ") - self.image_loop_label.setText("Image Loop: -") pause_start_time = time() while time() - pause_start_time < pause_time: pause_time_left = round(pause_time - (time() - pause_start_time), 1) @@ -788,6 +784,17 @@ def __get_capture_for_comparison(self): Grab capture region and resize for comparison """ capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) + + # This most likely means we lost capture (ie the captured window was closed, crashed, etc.) + if capture is None: + # Try to recover by using the window name + self.live_image.setText("Trying to recover window...") + # https://github.com/kaluluosi/pywin32-stubs/issues/7 + hwnd = win32gui.FindWindow(None, self.window_text) # type: ignore + # Don't fallback to desktop + if hwnd: + self.hwnd = hwnd + capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) return None if capture is None else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) def __reset_if_should(self, capture: Optional[cv2.ndarray]): @@ -872,7 +879,7 @@ def exit_program(): if warning is QMessageBox.StandardButton.Yes: # TODO: Don't close if user cancelled the save - self.save_settings_as() + settings.save_settings_as(self) exit_program() if warning is QMessageBox.StandardButton.No: exit_program() @@ -902,7 +909,6 @@ def main(): if FROZEN: error_messages.exception_traceback(message, exception) else: - print(message) traceback.print_exception(type(exception), exception, exception.__traceback__) sys.exit(1) diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index bb066537..126f2abe 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -36,7 +36,7 @@ class AutoSplitImage(): mask: Optional[cv2.ndarray] = None # This value is internal, check for mask instead _has_transparency: bool - # These values should be overriden by defaults if null, use getters instead + # These values should be overriden by Defaults if None. Use getters instead __pause_time: Optional[float] = None __similarity_threshold: Optional[float] = None @@ -64,7 +64,7 @@ def __init__(self, path: str): self.flags = flags_from_filename(self.filename) self.loops = loop_from_filename(self.filename) self.delay = delay_from_filename(self.filename) - self._pause_time = pause_from_filename(self.filename) + self.__pause_time = pause_from_filename(self.filename) self.__similarity_threshold = threshold_from_filename(self.filename) self.__read_image_bytes(path) diff --git a/src/capture_windows.py b/src/capture_windows.py index 71161a51..c991cc38 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -3,7 +3,6 @@ import ctypes import ctypes.wintypes -import platform from dataclasses import dataclass from PyQt6 import QtCore, QtGui from PyQt6.QtWidgets import QLabel @@ -13,26 +12,25 @@ import win32con import win32ui import pywintypes -from packaging import version from win32 import win32gui from win32typing import PyCBitmap, PyCDC # This is an undocumented nFlag value for PrintWindow PW_RENDERFULLCONTENT = 0x00000002 -accelerated_windows: dict[int, bool] = {} -is_windows_11 = version.parse(platform.version()) >= version.parse("10.0.22000") -# ctypes.wintypes.RECT has c_long which doesn't have math operators implemented @dataclass class Rect(ctypes.wintypes.RECT): + """ + Overrides `ctypes.wintypes.RECT` to replace c_long with int for math operators + """ left: int = -1 # type: ignore top: int = -1 # type: ignore right: int = -1 # type: ignore bottom: int = -1 # type: ignore -def capture_region(hwnd: int, selection: Rect, force_print_window: bool): +def capture_region(hwnd: int, selection: Rect, print_window: bool): """ Captures an image of the region for a window matching the given parameters of the bounding box @@ -42,26 +40,6 @@ def capture_region(hwnd: int, selection: Rect, force_print_window: bool): @return: The image of the region in the window in BGRA format """ - # Windows 11 has some jank, and we're not ready to fully investigate it - # for now let's ensure it works at the cost of performance - is_accelerated_window = force_print_window or is_windows_11 or accelerated_windows.get(hwnd) - - # The window type is not yet known, let's find out! - if is_accelerated_window is None: - # We need to get the image at least once to check if it's full black - image = __get_capture_image(hwnd, selection, False) - # TODO check for first non-black pixel, no need to iterate through the whole image - is_accelerated_window = not np.count_nonzero(image) - accelerated_windows[hwnd] = is_accelerated_window - if is_accelerated_window: - image = __get_capture_image(hwnd, selection, True) - else: - image = __get_capture_image(hwnd, selection, is_accelerated_window) - - return None if image.size == 0 else image - - -def __get_capture_image(hwnd: int, selection: Rect, print_window: bool = False): width: int = selection.right - selection.left height: int = selection.bottom - selection.top # If the window closes while it's being manipulated, it could cause a crash @@ -82,7 +60,7 @@ def __get_capture_image(hwnd: int, selection: Rect, print_window: bool = False): # https://github.com/kaluluosi/pywin32-stubs/issues/5 # pylint: disable=no-member except (win32ui.error, pywintypes.error): # type: ignore - return np.array([0, 0, 0, 1], dtype="uint8") + return None image = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") image.shape = (height, width, 4) @@ -101,7 +79,9 @@ def __get_capture_image(hwnd: int, selection: Rect, print_window: bool = False): def set_ui_image(qlabel: QLabel, image: Optional[cv2.ndarray], transparency: bool): if image is None: - qlabel.clear() + # Clear current pixmap if image is None. But don't clear text + if not qlabel.text(): + qlabel.clear() else: if transparency: color_code = cv2.COLOR_BGRA2RGBA diff --git a/src/screen_region.py b/src/screen_region.py index 1fd2e480..03bbf85e 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -31,23 +31,26 @@ def select_region(autosplit: AutoSplit): while True: width = selector.width() height = selector.height() - left = selector.left - top = selector.top + x = selector.x() + y = selector.y() if width > 0 and height > 0: break # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore del selector - hwnd = __window_handle_from_point(left, top) - if not hwnd: + hwnd, window_text = __get_window_from_point(x, y) + # Don't select desktop + if not hwnd or not window_text: + error_messages.region() return autosplit.hwnd = hwnd + autosplit.window_text = window_text offset_x, offset_y, *_ = win32gui.GetWindowRect(autosplit.hwnd) __set_region_values(autosplit, - left=left - offset_x, - top=top - offset_y, + left=x - offset_x, + top=y - offset_y, width=width, height=height) @@ -67,16 +70,19 @@ def select_window(autosplit: AutoSplit): QtTest.QTest.qWait(1) # type: ignore del selector - hwnd = __window_handle_from_point(x, y) - if not hwnd: + hwnd, window_text = __get_window_from_point(x, y) + # Don't select desktop + if not hwnd or not window_text: + error_messages.region() return autosplit.hwnd = hwnd + autosplit.window_text = window_text # Getting window bounds - # On Windows there is a shadow around the windows that we need to account for. - # The top bar with the window name is also not accounted for. - # This is not an ideal solution because it assumes every window will have a top bar and shadows of default size. - # Which results in cutting *into* windows which don't have shadows or have a smaller top bars + # On Windows there is a shadow around the windows that we need to account for + # The top bar with the window name is also not accounted for + # HACK: This isn't an ideal solution because it assumes every window will have a top bar and shadows of default size + # FIXME: Which results in cutting *into* windows which don't have shadows or have a smaller top bars _, __, width, height = win32gui.GetClientRect(autosplit.hwnd) __set_region_values(autosplit, left=WINDOWS_SHADOW_SIZE, @@ -85,7 +91,7 @@ def select_window(autosplit: AutoSplit): height=height - WINDOWS_TOPBAR_SIZE) -def __window_handle_from_point(x: int, y: int): +def __get_window_from_point(x: int, y: int): # Grab the window handle from the coordinates selected by the widget hwnd = cast(int, win32gui.WindowFromPoint((x, y))) @@ -97,12 +103,7 @@ def __window_handle_from_point(x: int, y: int): window_text = win32gui.GetWindowText(hwnd) - # Don't select desktop - if not window_text: - error_messages.region() - return 0 - - return hwnd + return hwnd, window_text def align_region(autosplit: AutoSplit): @@ -157,10 +158,6 @@ def align_region(autosplit: AutoSplit): def __set_region_values(autosplit: AutoSplit, left: int, top: int, width: int, height: int): - """ - left and top values are based on the virtual screen and can be negative - width and height are the action selection's size - """ autosplit.selection.left = left autosplit.selection.top = top autosplit.selection.right = left + width @@ -230,6 +227,15 @@ def validate_before_parsing(autosplit: AutoSplit, show_error: bool = True, check class BaseSelectWidget(QtWidgets.QWidget): + _x = 0 + _y = 0 + + def x(self): + return self._x + + def y(self): + return self._y + def __init__(self): super().__init__() # We need to pull the monitor information to correctly draw the geometry covering all portions @@ -251,28 +257,17 @@ def keyPressEvent(self, a0: QtGui.QKeyEvent): # Widget to select a window and obtain its bounds class SelectWindowWidget(BaseSelectWidget): - __x = 0 - __y = 0 - - def x(self): - return self.__x - - def y(self): - return self.__y - def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): - self.__x = int(a0.position().x()) + self.geometry().x() - self.__y = int(a0.position().y()) + self.geometry().y() + self._x = int(a0.position().x()) + self.geometry().x() + self._y = int(a0.position().y()) + self.geometry().y() self.close() # Widget for dragging screen region # https://github.com/harupy/snipping-tool class SelectRegionWidget(BaseSelectWidget): - left: int = -1 - top: int = -1 - right: int = -1 - bottom: int = -1 + _right: int = 0 + _bottom: int = 0 __begin = QtCore.QPoint() __end = QtCore.QPoint() @@ -281,10 +276,10 @@ def __init__(self): super().__init__() def height(self): - return self.bottom - self.top + return self._bottom - self._y def width(self): - return self.right - self.left + return self._right - self._x def paintEvent(self, a0: QtGui.QPaintEvent): if self.__begin != self.__end: @@ -306,10 +301,10 @@ def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): if self.__begin != self.__end: # The coordinates are pulled relative to the top left of the set geometry, # so the added virtual screen offsets convert them back to the virtual screen coordinates - self.left = min(self.__begin.x(), self.__end.x()) + self.geometry().x() - self.top = min(self.__begin.y(), self.__end.y()) + self.geometry().y() - self.right = max(self.__begin.x(), self.__end.x()) + self.geometry().x() - self.bottom = max(self.__begin.y(), self.__end.y()) + self.geometry().y() + self._x = min(self.__begin.x(), self.__end.x()) + self.geometry().x() + self._y = min(self.__begin.y(), self.__end.y()) + self.geometry().y() + self._right = max(self.__begin.x(), self.__end.x()) + self.geometry().x() + self._bottom = max(self.__begin.y(), self.__end.y()) + self.geometry().y() self.close() diff --git a/src/settings_file.py b/src/settings_file.py index 8879377d..8219fbb4 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,12 +1,12 @@ from __future__ import annotations from typing import TYPE_CHECKING, Any - if TYPE_CHECKING: from AutoSplit import AutoSplit import os import sys import pickle + import keyboard # https://github.com/boppreh/keyboard/issues/505 from win32 import win32gui from PyQt6 import QtCore, QtWidgets @@ -17,7 +17,6 @@ # Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller FROZEN = hasattr(sys, "frozen") - # Get the directory of either AutoSplit.exe or AutoSplit.py auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) @@ -28,16 +27,6 @@ def find_class(self, module: str, name: str): raise pickle.UnpicklingError(f"'{module}.{name}' is forbidden") -def load_pyqt_settings(autosplit: AutoSplit): - # These are only global settings values. They are not *pkl settings values. - autosplit.setting_check_for_updates_on_open = QtCore.QSettings("AutoSplit", "Check For Updates On Open") - check_for_updates_on_open = autosplit.setting_check_for_updates_on_open.value( - "check_for_updates_on_open", - True, - type=bool) - autosplit.action_check_for_updates_on_open.setChecked(check_for_updates_on_open) - - def get_save_settings_values(autosplit: AutoSplit): return [ autosplit.split_image_directory, @@ -54,7 +43,7 @@ def get_save_settings_values(autosplit: AutoSplit): autosplit.y_spinbox.value(), autosplit.width_spinbox.value(), autosplit.height_spinbox.value(), - win32gui.GetWindowText(autosplit.hwnd), + autosplit.window_text, 0, 0, int(autosplit.group_dummy_splits_checkbox.isChecked()), @@ -133,29 +122,32 @@ def __load_settings_from_file(autosplit: AutoSplit): autosplit.comparison_method_combobox.setCurrentIndex(settings[2]) autosplit.pause_spinbox.setValue(settings[3]) autosplit.fps_limit_spinbox.setValue(settings[4]) - autosplit.split_input.setText(settings[5]) - autosplit.reset_input.setText(settings[6]) - autosplit.skip_split_input.setText(settings[7]) - autosplit.undo_split_input.setText(settings[8]) - autosplit.pause_hotkey_input.setText(settings[9]) + keyboard.unhook_all() + if not autosplit.is_auto_controlled: + set_split_hotkey(autosplit, settings[5]) + set_reset_hotkey(autosplit, settings[6]) + set_skip_split_hotkey(autosplit, settings[7]) + set_undo_split_hotkey(autosplit, settings[8]) + set_pause_hotkey(autosplit, settings[9]) autosplit.x_spinbox.setValue(settings[10]) autosplit.y_spinbox.setValue(settings[11]) autosplit.width_spinbox.setValue(settings[12]) autosplit.height_spinbox.setValue(settings[13]) - # https://github.com/kaluluosi/pywin32-stubs/issues/7 - autosplit.hwnd = win32gui.FindWindow(None, settings[14]) # type: ignore + autosplit.window_text = settings[14] autosplit.group_dummy_splits_checkbox.setChecked(bool(settings[17])) autosplit.loop_checkbox.setChecked(bool(settings[18])) autosplit.auto_start_on_reset_checkbox.setChecked(bool(settings[19])) autosplit.force_print_window_checkbox.setChecked(settings[20]) - keyboard.unhook_all() - if not autosplit.is_auto_controlled: - set_split_hotkey(autosplit, settings[5]) - set_reset_hotkey(autosplit, settings[6]) - set_skip_split_hotkey(autosplit, settings[7]) - set_undo_split_hotkey(autosplit, settings[8]) - set_pause_hotkey(autosplit, settings[9]) + if autosplit.window_text: + # https://github.com/kaluluosi/pywin32-stubs/issues/7 + hwnd = win32gui.FindWindow(None, autosplit.window_text) # type: ignore + if hwnd: + autosplit.hwnd = hwnd + else: + autosplit.live_image.setText("Reload settings after opening" + f'\n"{autosplit.window_text}"' + "\nto automatically load Live Capture") def load_settings( @@ -196,16 +188,15 @@ def load_settings( autosplit.load_start_image() -def load_check_for_updates_on_open(design_window: design.Ui_MainWindow): +def load_check_for_updates_on_open(autosplit: AutoSplit): """ Retrieve the "Check For Updates On Open" QSettings and set the checkbox state These are only global settings values. They are not *pkl settings values. """ - value = QtCore \ .QSettings("AutoSplit", "Check For Updates On Open") \ .value("check_for_updates_on_open", True, type=bool) - design_window.action_check_for_updates_on_open.setChecked(value) + autosplit.action_check_for_updates_on_open.setChecked(value) def set_check_for_updates_on_open(design_window: design.Ui_MainWindow, value: bool): From 69ffb11764a0fce89d37ec258371eb0a2902e6e8 Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 10 Dec 2021 16:24:57 -0500 Subject: [PATCH 18/54] Differentiate "undo/skip split" from "previous/next image" Skip/udo will now actually call command This makes grouping option obsolete as user now has finer control anyway UI is a bit cramped, but that should be resolved with UI revamp Updated README --- README.md | 20 ++++----- res/design.ui | 80 ++++++++++++++++++++++------------- src/AutoSplit.py | 97 +++++++++++++++++++++++-------------------- src/error_messages.py | 5 --- src/hotkeys.py | 18 +++++--- src/settings_file.py | 5 +-- src/split_parser.py | 2 +- 7 files changed, 129 insertions(+), 98 deletions(-) diff --git a/README.md b/README.md index e4a3d5b7..2e43e50d 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,9 @@ This program can be used to automatically start, split, and reset your preferred - Microsoft Visual C++ 14.0 or greater may be required to build the executable. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) - Node is optional, but required for complete linting (using Pyright). -- Read [requirements.txt](/scripts/requirements.txt) for information on how to install, run and build the python code +- Read [requirements.txt](/scripts/requirements.txt) for more information on how to install, run and build the python code - Run `.\scripts\install.bat` to install all dependencies - - Run the app directly with `py .\src\AutoSplit.py [--auto-controlled]` + - Run the app directly with `.\scripts\start.bat [--auto-controlled]` - Run `.\scripts\build.bat` to build an executable - Recompile resources after modifications by running `.\scripts\compile_resources.bat` @@ -59,9 +59,9 @@ This program can be used to automatically start, split, and reset your preferred - Once you are happy with your capture region, you may unselect Live Capture Region to decrease CPU usage if you wish. - You can save a screenshot of the capture region to your split image folder using the Take Screenshot button. -## Max FPS +## Avg. FPS -- Calculates the maximum comparison rate of the capture region to split images. This value will likely be much higher than needed, so it is highly recommended to limit your FPS depending on the frame rate of the game you are capturing. +- Calculates the average comparison rate of the capture region to split images. This value will likely be much higher than needed (unless you [Force Full-Content-Rendering](#Full-Content-Rendering)), so it is highly recommended to limit your FPS depending on the frame rate of the game you are capturing. ## OPTIONS @@ -72,6 +72,10 @@ This program can be used to automatically start, split, and reset your preferred - Histograms: An explanation on Histograms comparison can be found [here](https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html). This is a great method to use if you are using several masked images. - pHash: An explanation on pHash comparison can be found [here](http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html). It is highly recommended to NOT use pHash if you use masked images. It is very inaccurate. +### Full Content Rendering + +- Certain windows (namely hardware accelerated ones) won't always render their content. To work around this, you can "Force Full Content Rendering". This option is not recommended unless you really need it. It will cause a 10-15x performance drop based on the size of the complete window that's being captured (not the selected region, but rather the actual window size). It can also mess with some applications' rendering pipeline. + ### Show Live Similarity - Displays the live similarity between the capture region and the current split image. This number is between 0 and 1, with 1 being a perfect match. @@ -142,11 +146,9 @@ The start image is similar to the reset image. You can only have one start image - All of these actions can also be handled by their corresponding buttons. - Note that pressing your Pause Hotkey does not serve any function in AutoSplit itself and is strictly used for the Pause flag. -### Group dummy splits when undoing / skipping - -If this option is disabled, AutoSplit will not account for dummy splits when undoing/skipping. Meaning it will cycle through the images normally even if they have the dummy flag `{d}` applied to them. +### Dummy splits when undoing / skipping -If it is enabled, AutoSplit will group dummy splits together with a real split when undoing/skipping. This basically allows you to tie one or more dummy splits to a real split to keep it as in sync as possible with the real splits in LiveSplit/wsplit. +AutoSplit will group dummy splits together with a real split when undoing/skipping. This basically allows you to tie one or more dummy splits to a real split to keep it as in sync as possible with the real splits in LiveSplit/wsplit. If they are out of sync, you can always use "Previous Image" and "Next Image". Examples: Given these splits: 1 dummy, 2 normal, 3 dummy, 4 dummy, 5 normal, 6 normal. @@ -192,13 +194,11 @@ The AutoSplit LiveSplit Component will directly connect AutoSplit with LiveSplit - Click the Browse buttons to locate your AutoSplit Path (path to AutoSplit.exe) and Settings Path (path to your AutoSplit `.pkl` settings file) respectively. - If you have not yet set saved a settings file, you can do so using AutoSplit, and then go back and set your Settings Path. - Once set, click OK, and then OK again to close the Layout Editor. Right click LiveSplit -> Save Layout to save your layout. AutoSplit and its settings will now open automatically when opening that LiveSplit Layout `.lsl` file. -- If you are using any dummy splits, it is recommended that you check the "Group dummy splits when undoing / skipping" checkbox when using LiveSplit integration so that your LiveSplit splits stay in sync with AutoSplit. ## Known Limitations - For many games, it will be difficult to find a split image for the last split of the run. - The window of the capture region cannot be minimized. -- Capturing a hardware accelerated window or using Windows 11 altogether will cause performance drops. But as long as the window you are capturing (not the selected region, but rather the actual window size) is not too large, you should still be able to obtain a Max FPS of over 60. ## Resources diff --git a/res/design.ui b/res/design.ui index 3b0caf42..fea8611c 100644 --- a/res/design.ui +++ b/res/design.ui @@ -213,10 +213,10 @@ - 494 - 250 + 340 + 440 64 - 24 + 21 @@ -232,10 +232,10 @@ - 560 - 250 + 410 + 440 61 - 24 + 21 @@ -786,7 +786,7 @@ 260 250 101 - 24 + 23 @@ -866,9 +866,9 @@ 125 - 296 + 295 91 - 22 + 23 @@ -935,22 +935,6 @@ Align Region - - - - 230 - 442 - 261 - 20 - - - - Group dummy splits when undoing/skipping - - - false - - @@ -993,7 +977,7 @@ Pause - + 300 @@ -1153,6 +1137,44 @@ Force Full Content Rendering (slower) + + + false + + + + 560 + 250 + 61 + 23 + + + + Qt::NoFocus + + + Next Img. + + + + + false + + + + 494 + 250 + 64 + 23 + + + + Qt::NoFocus + + + Prev. Img. + + split_image_folder_label split_image_folder_input browse_button @@ -1207,11 +1229,10 @@ pause_spinbox comparison_method_label align_region_button - group_dummy_splits_checkbox select_window_button image_loop_label pause_hotkey_label - pause_hotkey_input + pause_input set_pause_hotkey_button loop_checkbox auto_start_on_reset_checkbox @@ -1221,6 +1242,8 @@ current_similarity_threshold_number_label capture_region_window_label force_print_window_checkbox + next_image_button + previous_image_button @@ -1313,7 +1336,6 @@ reset_input skip_split_input undo_split_input - group_dummy_splits_checkbox diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 9444e241..0987199c 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -121,7 +121,6 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): waiting_for_split_delay: bool split_below_threshold: bool run_start_time: float - similarity: float start_image: Optional[AutoSplitImage] = None reset_image: Optional[AutoSplitImage] = None split_images: list[AutoSplitImage] = [] @@ -158,7 +157,7 @@ def __init__(self, parent: Optional[QWidget] = None): self.reset_input.setEnabled(False) self.skip_split_input.setEnabled(False) self.undo_split_input.setEnabled(False) - self.pause_hotkey_input.setEnabled(False) + self.pause_input.setEnabled(False) self.timer_global_hotkeys_label.setText("Hotkeys Inactive - Use LiveSplit Hotkeys") # Send version and process ID to stdout @@ -183,6 +182,8 @@ def __init__(self, parent: Optional[QWidget] = None): self.reset_button.clicked.connect(self.reset) self.skip_split_button.clicked.connect(self.__skip_split) self.undo_split_button.clicked.connect(self.__undo_split) + self.next_image_button.clicked.connect(lambda: self.__skip_split(True)) + self.previous_image_button.clicked.connect(lambda: self.__undo_split(True)) self.set_split_hotkey_button.clicked.connect(lambda: set_split_hotkey(self)) self.set_reset_hotkey_button.clicked.connect(lambda: set_reset_hotkey(self)) self.set_skip_split_hotkey_button.clicked.connect(lambda: set_skip_split_hotkey(self)) @@ -278,7 +279,7 @@ def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool if not self.is_auto_controlled \ and (not self.split_input.text() or not self.reset_input.text() - or not self.pause_hotkey_input.text()): + or not self.pause_input.text()): error_messages.load_start_image() return @@ -301,7 +302,7 @@ def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool else: self.check_start_image_timestamp = 0.0 self.start_image_label.setText(f"{START_IMAGE_TEXT}: ready") - self.__update_split_image(self.start_image, from_start_image=True) + self.__update_split_image(self.start_image) self.highest_similarity = 0.0 self.start_image_split_below_threshold = False @@ -322,7 +323,7 @@ def __start_image_function(self): if self.check_start_image_timestamp > 0: self.check_start_image_timestamp = 0.0 self.start_image_label.setText(f"{START_IMAGE_TEXT}: ready") - self.__update_split_image(self.start_image, from_start_image=True) + self.__update_split_image(self.start_image) capture = self.__get_capture_for_comparison() start_image_threshold = self.start_image.get_similarity_threshold(self) @@ -340,7 +341,7 @@ def __start_image_function(self): # Show live highest similarity if the checkbox is checked self.highest_similarity_label.setText(str(self.highest_similarity)[:4] - if self.show_live_similarity_checkbox.isChecked() + if self.show_highest_similarity_checkbox.isChecked() else " ") # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold @@ -457,8 +458,10 @@ def __is_current_split_out_of_range(self): return self.split_image_number < 0 \ or self.split_image_number > len(self.split_images_and_loop_number) - 1 - # undo split button and hotkey connect to here - def __undo_split(self): + def __undo_split(self, navigate_image_only: bool = False): + """ + "Undo Split" and "Prev. Img." buttons and hotkey connect to here + """ # Can't undo until timer is started # or Undoing past the first image if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ @@ -467,7 +470,7 @@ def __undo_split(self): or self.__is_current_split_out_of_range(): return - if self.group_dummy_splits_checkbox.isChecked(): + if not navigate_image_only: for i, group in enumerate(self.split_groups): if i > 0 and self.split_image_number in group: self.split_image_number = self.split_groups[i - 1][0] @@ -476,9 +479,13 @@ def __undo_split(self): self.split_image_number -= 1 self.__update_split_image() + if not navigate_image_only: + send_command(self, "undo") - # skip split button and hotkey connect to here - def __skip_split(self): + def __skip_split(self, navigate_image_only: bool = False): + """ + "Skip Split" and "Next Img." buttons and hotkey connect to here + """ # Can't skip or split until timer is started # or Splitting/skipping when there are no images left if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ @@ -487,7 +494,7 @@ def __skip_split(self): or self.__is_current_split_out_of_range(): return - if self.group_dummy_splits_checkbox.isChecked(): + if not navigate_image_only: for group in self.split_groups: if self.split_image_number in group: self.split_image_number = group[-1] + 1 @@ -496,6 +503,8 @@ def __skip_split(self): self.split_image_number += 1 self.__update_split_image() + if not navigate_image_only: + send_command(self, "skip") def pause(self): # TODO add what to do when you hit pause hotkey, if this even needs to be done @@ -546,18 +555,16 @@ def __auto_splitter(self): in self.split_images] for item in flattenlist] - # Construct groups of splits if needed + # Construct groups of splits self.split_groups = [] - if self.group_dummy_splits_checkbox.isChecked(): - current_group: list[int] = [] - self.split_groups.append(current_group) + current_group: list[int] = [] + self.split_groups.append(current_group) + for i, image in enumerate(self.split_images_and_loop_number): + current_group.append(i) + if not image[0].check_flag(DUMMY_FLAG) and i < len(self.split_images_and_loop_number) - 1: + current_group = [] + self.split_groups.append(current_group) - for i, image in enumerate(self.split_images_and_loop_number): - current_group.append(i) - - if not image[0].check_flag(DUMMY_FLAG) and i < len(self.split_images_and_loop_number) - 1: - current_group = [] - self.split_groups.append(current_group) self.gui_changes_on_start() # Initialize a few attributes @@ -566,7 +573,7 @@ def __auto_splitter(self): self.split_below_threshold = False split_time = 0 number_of_split_images = len(self.split_images_and_loop_number) - dummy_splits_array = [image.check_flag(DUMMY_FLAG) for image in self.split_images] + dummy_splits_array = [image_loop[0].check_flag(DUMMY_FLAG) for image_loop in self.split_images_and_loop_number] self.run_start_time = time() # First while loop: stays in this loop until all of the split images have been split @@ -615,14 +622,13 @@ def __auto_splitter(self): if self.show_highest_similarity_checkbox.isChecked() else " ") + # If its the last split image and last loop number, disable the next image button + # If its the first split image, disable the undo split and previous image buttons + self.next_image_button.setEnabled(self.split_image_number != number_of_split_images - 1) + self.previous_image_button.setEnabled(self.split_image_number != 0) if not self.is_auto_controlled: - # if its the last split image or can't skip due to grouped dummy splits, disable skip split button - is_last = self.split_image_number == number_of_split_images - 1 \ - or (self.group_dummy_splits_checkbox.isChecked() - and dummy_splits_array[self.split_image_number:].count(False) <= 1) - self.skip_split_button.setEnabled(not is_last) - - # if its the first split image, disable the undo split button + # If its the last non-dummy split image and last loop number, disable the skip split button + self.skip_split_button.setEnabled(dummy_splits_array[self.split_image_number:].count(False) > 1) self.undo_split_button.setEnabled(self.split_image_number != 0) # if the b flag is set, let similarity go above threshold first, @@ -694,15 +700,15 @@ def __auto_splitter(self): # if its not the last split image, pause for the amount set by the user if number_of_split_images != self.split_image_number: + # If its the last split image and last loop number, disable the next image button + # If its the first split image, disable the undo split and previous image buttons + self.next_image_button.setEnabled(self.split_image_number != number_of_split_images - 1) + self.previous_image_button.setEnabled(self.split_image_number != 0) if not self.is_auto_controlled: - # if its the last split image and last loop number, disable skip split button - is_last = self.split_image_number == number_of_split_images - 1 \ - or (self.group_dummy_splits_checkbox.isChecked() - and dummy_splits_array[self.split_image_number:].count(False) <= 1) - self.skip_split_button.setEnabled(not is_last) - - # if its the first split image, disable the undo split button + # If its the last non-dummy split image and last loop number, disable the skip split button + self.skip_split_button.setEnabled(dummy_splits_array[self.split_image_number:].count(False) > 1) self.undo_split_button.setEnabled(self.split_image_number != 0) + QApplication.processEvents() # A pause loop to check if the user presses skip split, undo split, or reset here. @@ -737,8 +743,9 @@ def gui_changes_on_start(self): self.timer_start_image.stop() self.start_auto_splitter_button.setText("Running...") self.browse_button.setEnabled(False) - self.group_dummy_splits_checkbox.setEnabled(False) self.start_image_reload_button.setEnabled(False) + self.previous_image_button.setEnabled(True) + self.next_image_button.setEnabled(True) if not self.is_auto_controlled: self.start_auto_splitter_button.setEnabled(False) @@ -762,8 +769,9 @@ def gui_changes_on_reset(self): self.highest_similarity_label.setText(" ") self.current_similarity_threshold_number_label.setText(" ") self.browse_button.setEnabled(True) - self.group_dummy_splits_checkbox.setEnabled(True) self.start_image_reload_button.setEnabled(True) + self.previous_image_button.setEnabled(False) + self.next_image_button.setEnabled(False) if not self.is_auto_controlled: self.start_auto_splitter_button.setEnabled(True) @@ -813,7 +821,7 @@ def __reset_if_should(self, capture: Optional[cv2.ndarray]): self.reset() return should_reset - def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None, from_start_image: bool = False): + def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None): # Splitting/skipping when there are no images left or Undoing past the first image # Start image is expected to be out of range (index 0 of 0-length array) if (not specific_image or specific_image.image_type != ImageType.START) \ @@ -830,17 +838,16 @@ def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None, self.current_similarity_threshold_number_label.setText(f"{self.split_image.get_similarity_threshold(self):.2f}") # Set Image Loop # - if not from_start_image: + if specific_image and specific_image.image_type == ImageType.START: + self.image_loop_label.setText("Image Loop: N/A") + else: loop_tuple = self.split_images_and_loop_number[self.split_image_number] self.image_loop_label.setText(f"Image Loop: {loop_tuple[1]}/{loop_tuple[0].loops}") - else: - self.image_loop_label.setText("Image Loop: N/A") # need to set split below threshold to false each time an image updates. self.split_below_threshold = False - self.similarity = 0 - self.highest_similarity = 0.001 + self.highest_similarity = 0.0 def closeEvent(self, a0: Optional[QtGui.QCloseEvent] = None): """ diff --git a/src/error_messages.py b/src/error_messages.py index c8a674e2..5d8bd382 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -68,11 +68,6 @@ def reset_hotkey(): set_text_message("Your split image folder contains a reset image, but no reset hotkey is set.") -def dummy_splits(): - set_text_message("Group dummy splits when undoing/skipping cannot be checked " - "if any split image has a loop parameter greater than 1") - - def old_version_settings_file(): set_text_message("Old version settings file detected. This version allows settings files from v1.3 and above.") diff --git a/src/hotkeys.py b/src/hotkeys.py index e3d60553..80701127 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import Optional, TYPE_CHECKING, Union +from typing import Literal, Optional, TYPE_CHECKING, Union from collections.abc import Callable if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -50,15 +50,23 @@ def is_digit(key: Optional[str]): return False -def send_command(autosplit: AutoSplit, command: str): +Commands = Literal["split", "start", "pause", "reset", "skip", "undo"] + + +def send_command(autosplit: AutoSplit, command: Commands): if autosplit.is_auto_controlled: print(command, flush=True) elif command in {"split", "start"}: _send_hotkey(autosplit.split_input.text()) elif command == "pause": - _send_hotkey(autosplit.pause_hotkey_input.text()) + _send_hotkey(autosplit.pause_input.text()) elif command == "reset": _send_hotkey(autosplit.reset_input.text()) + elif command == "skip": + _send_hotkey(autosplit.skip_split_input.text()) + elif command == "undo": + _send_hotkey(autosplit.undo_split_input.text()) + else: raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") @@ -134,7 +142,7 @@ def __is_key_already_set(autosplit: AutoSplit, key_name: str): autosplit.reset_input.text(), autosplit.skip_split_input.text(), autosplit.undo_split_input.text(), - autosplit.pause_hotkey_input.text()) + autosplit.pause_input.text()) # --------------------HOTKEYS-------------------------- @@ -285,7 +293,7 @@ def callback(): autosplit.pause_hotkey = keyboard.hook_key( key_name, lambda error: _hotkey_action(error, key_name, autosplit.pause_signal.emit)) - autosplit.pause_hotkey_input.setText(key_name) + autosplit.pause_input.setText(key_name) autosplit.after_setting_hotkey_signal.emit() _unhook(autosplit.pause_hotkey) diff --git a/src/settings_file.py b/src/settings_file.py index 8219fbb4..cff0d894 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -38,7 +38,7 @@ def get_save_settings_values(autosplit: AutoSplit): autosplit.reset_input.text(), autosplit.skip_split_input.text(), autosplit.undo_split_input.text(), - autosplit.pause_hotkey_input.text(), + autosplit.pause_input.text(), autosplit.x_spinbox.value(), autosplit.y_spinbox.value(), autosplit.width_spinbox.value(), @@ -46,7 +46,7 @@ def get_save_settings_values(autosplit: AutoSplit): autosplit.window_text, 0, 0, - int(autosplit.group_dummy_splits_checkbox.isChecked()), + 1, int(autosplit.loop_checkbox.isChecked()), int(autosplit.auto_start_on_reset_checkbox.isChecked()), autosplit.force_print_window_checkbox.isChecked()] @@ -134,7 +134,6 @@ def __load_settings_from_file(autosplit: AutoSplit): autosplit.width_spinbox.setValue(settings[12]) autosplit.height_spinbox.setValue(settings[13]) autosplit.window_text = settings[14] - autosplit.group_dummy_splits_checkbox.setChecked(bool(settings[17])) autosplit.loop_checkbox.setChecked(bool(settings[18])) autosplit.auto_start_on_reset_checkbox.setChecked(bool(settings[19])) autosplit.force_print_window_checkbox.setChecked(settings[20]) diff --git a/src/split_parser.py b/src/split_parser.py index feca0803..27862ed9 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -171,7 +171,7 @@ def parse_and_validate_images(autosplit: AutoSplit): return False # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. - if (not autosplit.pause_hotkey_input.text() + if (not autosplit.pause_input.text() and image.check_flag(PAUSE_FLAG) and not autosplit.is_auto_controlled): autosplit.gui_changes_on_reset() From 93b089f66c028bc0a012bc5759410d52243d72a9 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 11 Dec 2021 11:39:03 -0500 Subject: [PATCH 19/54] Make Save Settings more intuitive Don't close if user has cancelled "saving sattings as" Removed more attributes from AutoSplit class Don't update last_successfully_loaded_settings_file_path if load was not successful "Save Settings As" defaults to the last_successfully_loaded_settings_file_path THEN the .exe When closing app, ue save_settings instead of save_settings_as --- src/AutoControlledWorker.py | 3 +- src/AutoSplit.py | 20 +++---- src/settings_file.py | 107 +++++++++++++++++++----------------- 3 files changed, 66 insertions(+), 64 deletions(-) diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index 3894a5d8..0c252d44 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -35,8 +35,7 @@ def run(self): self.autosplit.reset_signal.emit() elif line.startswith("settings"): # Allow for any split character between "settings" and the path - self.autosplit.load_settings_file_path = line[9:] - settings.load_settings(self.autosplit, load_settings_from_livesplit=True) + settings.load_settings(self.autosplit, line[9:]) # TODO: Not yet implemented in AutoSplit Integration # elif line == 'pause': # self.pause_signal.emit() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 0987199c..97031748 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -101,16 +101,15 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): window_text = "" selection = Rect() last_saved_settings: list[Union[str, float, int, bool]] = [] - save_settings_file_path = "" - load_settings_file_path = "" live_image_function_on_open = True split_image_number = 0 split_images_and_loop_number: list[tuple[AutoSplitImage, int]] = [] split_groups: list[list[int]] = [] - # Last loaded settings and last successful loaded settings file path to None until we try to load them + # Last loaded settings empty and last successful loaded settings file path to None until we try to load them last_loaded_settings: list[Union[str, float, int]] = [] last_successfully_loaded_settings_file_path: Optional[str] = None + """For when a file has never loaded, but you successfully "Save File As".""" # Automatic timer start highest_similarity = 0.0 @@ -221,7 +220,7 @@ def __init__(self, parent: Optional[QWidget] = None): self.timer_start_image.timeout.connect(self.__start_image_function) if not self.is_auto_controlled: - settings.load_settings(self, load_settings_on_open=True) + settings.load_settings_on_open(self) self.show() @@ -844,11 +843,10 @@ def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None): loop_tuple = self.split_images_and_loop_number[self.split_image_number] self.image_loop_label.setText(f"Image Loop: {loop_tuple[1]}/{loop_tuple[0].loops}") + self.highest_similarity = 0.0 # need to set split below threshold to false each time an image updates. self.split_below_threshold = False - self.highest_similarity = 0.0 - def closeEvent(self, a0: Optional[QtGui.QCloseEvent] = None): """ Exit safely when closing the window @@ -876,18 +874,18 @@ def exit_program(): settings_file_name = "Untitled" \ if self.last_successfully_loaded_settings_file_path is None \ else os.path.basename(self.last_successfully_loaded_settings_file_path) - warning_message = f"Do you want to save changes made to settings file {settings_file_name}?" warning = QMessageBox.warning( self, "AutoSplit", - warning_message, + f"Do you want to save changes made to settings file {settings_file_name}?", QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No | QMessageBox.StandardButton.Cancel) if warning is QMessageBox.StandardButton.Yes: - # TODO: Don't close if user cancelled the save - settings.save_settings_as(self) - exit_program() + if settings.save_settings(self): + exit_program() + else: + a0.ignore() if warning is QMessageBox.StandardButton.No: exit_program() if warning is QMessageBox.StandardButton.Cancel: diff --git a/src/settings_file.py b/src/settings_file.py index cff0d894..c0315c23 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -60,46 +60,53 @@ def have_settings_changed(autosplit: AutoSplit): def save_settings(autosplit: AutoSplit): + """ + @return: The save settings filepath. Or None if "Save Settings As" is cancelled + """ if not autosplit.last_successfully_loaded_settings_file_path: - save_settings_as(autosplit) - else: - autosplit.last_saved_settings = get_save_settings_values(autosplit) - # save settings to a .pkl file - with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as file: - pickle.dump(autosplit.last_saved_settings, file) + return save_settings_as(autosplit) + + autosplit.last_saved_settings = get_save_settings_values(autosplit) + # Save settings to a .pkl file + with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as file: + pickle.dump(autosplit.last_saved_settings, file) + return autosplit.last_successfully_loaded_settings_file_path def save_settings_as(autosplit: AutoSplit): + """ + @return: The save settings filepath selected. Empty if cancelled + """ # User picks save destination - autosplit.save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( + save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( autosplit, "Save Settings As", - os.path.join(auto_split_directory, "settings.pkl"), + autosplit.last_successfully_loaded_settings_file_path + or os.path.join(auto_split_directory, "settings.pkl"), "PKL (*.pkl)")[0] # If user cancels save destination window, don't save settings - if not autosplit.save_settings_file_path: - return + if not save_settings_file_path: + return "" autosplit.last_saved_settings = get_save_settings_values(autosplit) - # save settings to a .pkl file - with open(autosplit.save_settings_file_path, "wb") as file: + # Save settings to a .pkl file + with open(save_settings_file_path, "wb") as file: pickle.dump(autosplit.last_saved_settings, file) - # Wording is kinda off here but this needs to be here for an edge case: - # for when a file has never loaded, but you save file as successfully. - autosplit.last_successfully_loaded_settings_file_path = autosplit.save_settings_file_path + autosplit.last_successfully_loaded_settings_file_path = save_settings_file_path + return save_settings_file_path -def __load_settings_from_file(autosplit: AutoSplit): +def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str): try: - with open(autosplit.load_settings_file_path, "rb") as file: + with open(load_settings_file_path, "rb") as file: settings: list[Any] = RestrictedUnpickler(file).load() settings_count = len(settings) if settings_count < 18: autosplit.show_error_signal.emit(error_messages.old_version_settings_file) - return + return False # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting if settings_count == 18: settings.insert(9, "") @@ -110,11 +117,11 @@ def __load_settings_from_file(autosplit: AutoSplit): # v1.6.X settings elif settings_count != 21: autosplit.show_error_signal.emit(error_messages.invalid_settings) - return + return False autosplit.last_loaded_settings = settings except (FileNotFoundError, MemoryError, pickle.UnpicklingError): autosplit.show_error_signal.emit(error_messages.invalid_settings) - return + return False autosplit.split_image_directory = settings[0] autosplit.split_image_folder_input.setText(settings[0]) @@ -147,46 +154,44 @@ def __load_settings_from_file(autosplit: AutoSplit): autosplit.live_image.setText("Reload settings after opening" f'\n"{autosplit.window_text}"' "\nto automatically load Live Capture") + return True def load_settings( autosplit: AutoSplit, - load_settings_on_open: bool = False, - load_settings_from_livesplit: bool = False + from_path: str = "" ): - if load_settings_on_open: - settings_files = [ - file for file - in os.listdir(auto_split_directory) - if file.endswith(".pkl")] - - # find all .pkls in AutoSplit folder, error if there is none or more than 1 - if len(settings_files) < 1: - error_messages.no_settings_file_on_open() - autosplit.last_loaded_settings = [] - return - if len(settings_files) > 1: - error_messages.too_many_settings_files_on_open() - autosplit.last_loaded_settings = [] - return - autosplit.load_settings_file_path = os.path.join(auto_split_directory, settings_files[0]) - - elif not load_settings_on_open and not load_settings_from_livesplit: - autosplit.load_settings_file_path = QtWidgets.QFileDialog.getOpenFileName( - autosplit, - "Load Settings", - os.path.join(auto_split_directory, "settings.pkl"), - "PKL (*.pkl)")[0] - if not autosplit.load_settings_file_path: - return - - __load_settings_from_file(autosplit) - - autosplit.last_successfully_loaded_settings_file_path = autosplit.load_settings_file_path + load_settings_file_path = from_path or QtWidgets.QFileDialog.getOpenFileName( + autosplit, + "Load Settings", + os.path.join(auto_split_directory, "settings.pkl"), + "PKL (*.pkl)")[0] + if not (load_settings_file_path and __load_settings_from_file(autosplit, load_settings_file_path)): + return + + autosplit.last_successfully_loaded_settings_file_path = load_settings_file_path autosplit.check_live_image() autosplit.load_start_image() +def load_settings_on_open(autosplit: AutoSplit): + settings_files = [ + file for file + in os.listdir(auto_split_directory) + if file.endswith(".pkl")] + + # find all .pkls in AutoSplit folder, error if there is none or more than 1 + if len(settings_files) < 1: + error_messages.no_settings_file_on_open() + autosplit.last_loaded_settings = [] + return + if len(settings_files) > 1: + error_messages.too_many_settings_files_on_open() + autosplit.last_loaded_settings = [] + return + load_settings(autosplit, os.path.join(auto_split_directory, settings_files[0])) + + def load_check_for_updates_on_open(autosplit: AutoSplit): """ Retrieve the "Check For Updates On Open" QSettings and set the checkbox state From bbb257fdb5ab3c6c5187c7f6a1635fbe70224960 Mon Sep 17 00:00:00 2001 From: Austin <37423484+Toufool@users.noreply.github.com> Date: Mon, 13 Dec 2021 19:44:50 -0500 Subject: [PATCH 20/54] Initial UI update for 2.0.0. Add settings window. --- res/design.ui | 1261 ++++++++++++++++++----------------------------- res/settings.ui | 717 +++++++++++++++++++++++++++ 2 files changed, 1192 insertions(+), 786 deletions(-) create mode 100644 res/settings.ui diff --git a/res/design.ui b/res/design.ui index fea8611c..80334881 100644 --- a/res/design.ui +++ b/res/design.ui @@ -1,13 +1,13 @@ - MainWindow - + main_window + 0 0 - 632 - 490 + 777 + 424 @@ -18,14 +18,14 @@ - 632 - 490 + 777 + 424 - 632 - 490 + 777 + 424 @@ -37,7 +37,7 @@ AutoSplit - + :/resources/icon.ico:/resources/icon.ico @@ -47,53 +47,11 @@ Qt::LeftToRight - - - - 20 - 12 - 98 - 16 - - - - Split Image Folder: - - - - - - 130 - 10 - 412 - 22 - - - - true - - - - - - 540 - 9 - 75 - 24 - - - - Qt::NoFocus - - - Browse... - - - 25 - 145 + 30 + 143 7 16 @@ -102,33 +60,11 @@ X - - - true - - - - 120 - 252 - 129 - 20 - - - - Live Capture Region - - - true - - - false - - - 5 - 70 + 10 + 67 101 23 @@ -140,45 +76,13 @@ Select Region - - - - 7 - 410 - 151 - 16 - - - - Default similarity threshold: - - - - - - 155 - 408 - 61 - 22 - - - - 1.000000000000000 - - - 0.010000000000000 - - - 0.900000000000000 - - - 500 - 425 + 650 + 369 121 - 31 + 27 @@ -189,15 +93,12 @@ - - false - - 500 - 390 + 650 + 339 121 - 31 + 27 @@ -207,78 +108,62 @@ Reset - - - false - + - 340 - 440 - 64 - 21 + 650 + 310 + 59 + 27 Qt::NoFocus - Undo Split + Undo - - - false - + - 410 - 440 - 61 - 21 + 712 + 310 + 59 + 27 Qt::NoFocus - Skip Split - - - - - - 7 - 439 - 131 - 16 - - - - Default pause time (sec): + Skip - 5 - 225 - 54 + 10 + 253 + 53 23 Qt::NoFocus + + calculate the average max FPS of the set capture region + - Avg. FPS + Max FPS - 87 - 225 + 92 + 255 20 20 @@ -287,290 +172,17 @@ FPS - - - true - - - - 7 - 323 - 124 - 20 - - - - Show live similarity - - - true - - - false - - - - - true - - - - 7 - 350 - 145 - 20 - - - - Show highest similarity - - - true - - - false - - - - - - 171 - 326 - 46 - 16 - - - - - - - - - - 171 - 352 - 46 - 16 - - - - - - - - - - 230 - 317 - 58 - 16 - - - - Start / Split - - - - - - 230 - 341 - 28 - 16 - - - - Reset - - - - - - 230 - 367 - 48 - 16 - - - - Skip Split - - - - - - 230 - 393 - 55 - 16 - - - - Undo Split - - - - - - 300 - 314 - 81 - 20 - - - - true - - - - - - 300 - 391 - 81 - 20 - - - - Qt::StrongFocus - - - true - - - - - - 300 - 365 - 81 - 20 - - - - true - - - - - - 300 - 339 - 81 - 20 - - - - true - - - - - - 390 - 314 - 81 - 21 - - - - Qt::NoFocus - - - Set Hotkey - - - - - - 390 - 339 - 81 - 21 - - - - Qt::NoFocus - - - Set Hotkey - - - - - - 390 - 365 - 81 - 21 - - - - Qt::NoFocus - - - Set Hotkey - - - - - - 390 - 391 - 81 - 21 - - - - Qt::NoFocus - - - Set Hotkey - - - - - - 220 - 296 - 2 - 163 - - - - QFrame::Plain - - - 1 - - - Qt::Vertical - - - + - 230 - 291 - 251 - 20 + 119 + 68 + 320 + 240 - - Timer Global Hotkeys - - - Qt::AlignCenter - - - - - - 490 - 296 - 2 - 163 - + + QFrame::Box QFrame::Plain @@ -578,36 +190,20 @@ 1 - - Qt::Vertical - - - - - - 120 - 70 - 240 - 180 - - - - QFrame::Box + + 0 - - Qt::AlignCenter - - 380 - 70 - 240 - 180 + 450 + 68 + 320 + 240 @@ -616,28 +212,28 @@ - - Qt::AlignCenter - - + - 450 - 38 - 102 - 16 + 451 + 31 + 318 + 20 - Current Split Image + Current Image + + + Qt::AlignCenter - 12 - 185 + 17 + 183 33 16 @@ -649,8 +245,8 @@ - 66 - 185 + 70 + 183 41 16 @@ -662,20 +258,20 @@ - 60 - 225 + 65 + 255 26 20 - + 9999 - 6 + 11 200 44 22 @@ -694,7 +290,7 @@ - 62 + 66 200 44 22 @@ -713,68 +309,30 @@ - 200 - 38 - 82 - 16 + 119 + 31 + 319 + 20 Capture Region - - - - - 8 - 252 - 51 - 16 - - - - FPS Limit: - - - - - - 62 - 250 - 44 - 22 - - - - - - - 30 - - - 5000 - - - 1 - - - 60 - - - 0 + + Qt::AlignCenter - + - 380 - 50 - 241 + 478 + 49 + 264 20 - + Image Filename Qt::AlignCenter @@ -783,8 +341,8 @@ - 260 - 250 + 10 + 227 101 23 @@ -799,7 +357,7 @@ - 6 + 11 160 44 22 @@ -827,7 +385,7 @@ - 62 + 66 160 44 22 @@ -852,8 +410,8 @@ - 81 - 145 + 85 + 143 7 16 @@ -862,68 +420,11 @@ Y - - - - 125 - 295 - 91 - 23 - - - - - L2 Norm - - - - - Histograms - - - - - pHash - - - - - - - 155 - 437 - 61 - 22 - - - - 999999999.000000000000000 - - - 1.000000000000000 - - - 10.000000000000000 - - - - - - 7 - 298 - 110 - 16 - - - - Comparison Method - - - 5 - 95 + 10 + 119 101 23 @@ -931,6 +432,9 @@ Qt::NoFocus + + Align the capture region using a reference image + Align Region @@ -938,8 +442,8 @@ - 5 - 120 + 10 + 93 101 23 @@ -951,112 +455,335 @@ Select Window - + - 379 - 252 - 113 - 20 + 696 + 5 + 75 + 24 + + Qt::NoFocus + - Image Loop: + Browse... - + - 230 - 418 - 31 + 10 + 9 + 98 16 - Pause + Split Image Folder: - + - 300 - 416 - 81 - 20 + 119 + 6 + 574 + 22 - - Qt::StrongFocus - true - + - 390 - 416 - 81 - 21 + 120 + 49 + 318 + 20 - - Qt::NoFocus - - Set Hotkey + Window Name - - - - true + + Qt::AlignCenter + + - 500 - 340 - 117 + 450 + 309 + 67 20 - Loop Split Images - - - false - - - false + Image Loop: - + - 500 - 360 - 126 - 20 + 120 + 312 + 321 + 84 - - Auto Start On Reset - - - false + + Similarity Viewer - - false + + Qt::AlignCenter + + + + 133 + 22 + 57 + 16 + + + + Live + + + Qt::AlignCenter + + + + + + 197 + 22 + 57 + 16 + + + + Highest + + + Qt::AlignCenter + + + + + + 261 + 22 + 56 + 16 + + + + Threshold + + + Qt::AlignCenter + + + + + + 0 + 39 + 322 + 3 + + + + Qt::Horizontal + + + + + + 10 + 42 + 111 + 16 + + + + Current Image + + + + + + 10 + 64 + 111 + 16 + + + + Reset Image + + + + + + 0 + 61 + 322 + 3 + + + + Qt::Horizontal + + + + + + 129 + 20 + 3 + 62 + + + + Qt::Vertical + + + + + + 193 + 20 + 3 + 95 + + + + Qt::Vertical + + + + + + 257 + 20 + 3 + 95 + + + + Qt::Vertical + + + + + + 133 + 43 + 57 + 16 + + + + - + + + Qt::AlignCenter + + + + + + 197 + 43 + 57 + 16 + + + + - + + + Qt::AlignCenter + + + + + + 260 + 43 + 57 + 16 + + + + - + + + Qt::AlignCenter + + + + + + 133 + 64 + 57 + 16 + + + + - + + + Qt::AlignCenter + + + + + + 197 + 64 + 57 + 16 + + + + - + + + Qt::AlignCenter + + + + + + 260 + 64 + 57 + 16 + + + + - + + + Qt::AlignCenter + + - + - 500 - 302 + 450 + 369 121 - 31 + 27 @@ -1066,150 +793,92 @@ Reload Start Image - - - - 440 - 270 - 181 - 20 - - - - Start image: - - - + - 7 - 380 - 151 + 450 + 345 + 98 16 - Current similarity threshold: + Start Image Status: - + - 171 - 380 - 46 + 551 + 345 + 98 16 - - - - - - - 120 - 50 - 241 - 20 - - - - - - - Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + status - - - true - + - 120 - 270 - 221 + 519 + 309 + 131 20 - Force Full Content Rendering (slower) + x/x - - - false - + - 560 - 250 - 61 - 23 + 449 + 49 + 27 + 18 Qt::NoFocus + + Previous image + - Next Img. + < - - - false - + - 494 - 250 - 64 - 23 + 744 + 49 + 27 + 18 Qt::NoFocus + + Next image + - Prev. Img. + > - split_image_folder_label - split_image_folder_input - browse_button x_label - live_image_checkbox select_region_button - similarity_threshold_label - similarity_threshold_spinbox start_auto_splitter_button reset_button - undo_split_button - skip_split_button - pause_label + undo_button + skip_button check_fps_button fps_label - show_live_similarity_checkbox - show_highest_similarity_checkbox - live_similarity_label - highest_similarity_label - split_label - reset_label - skip_split_label - undo_split_label - split_input - undo_split_input - skip_split_input - reset_input - set_split_hotkey_button - set_reset_hotkey_button - set_skip_split_hotkey_button - set_undo_split_hotkey_button - left_line - timer_global_hotkeys_label - right_line - current_split_image_label + current_image_label live_image current_split_image width_label @@ -1218,39 +887,32 @@ width_spinbox height_spinbox capture_region_label - fps_limit_label - fps_limit_spinbox - current_split_image_file_label + current_image_file_label take_screenshot_button x_spinbox y_spinbox y_label - comparison_method_combobox - pause_spinbox - comparison_method_label align_region_button select_window_button - image_loop_label - pause_hotkey_label - pause_input - set_pause_hotkey_button - loop_checkbox - auto_start_on_reset_checkbox - start_image_reload_button - start_image_label - current_similarity_threshold_label - current_similarity_threshold_number_label + browse_button + split_image_folder_label + split_image_folder_input capture_region_window_label - force_print_window_checkbox - next_image_button + image_loop_label + similarity_viewer_groupbox + reload_start_image_button + start_image_status_label + start_image_status_value_label + image_loop_value_label previous_image_button + next_image_button 0 0 - 632 + 777 22 @@ -1259,17 +921,19 @@ Help - + File - - - + + + + + @@ -1284,27 +948,32 @@ About - + + + Split Image Settings + + + - Save Settings + Save Profile - + - Load Settings + Load Profile - + - Save Settings As... + Save Profile As... - Check for Updates... + Check For Updates - + true @@ -1318,6 +987,37 @@ Check for Updates on Open + + + Force Full Render + + + + + Check For Updates On Open + + + + + Dummy Splits When Undoing/Skipping + + + + + Settings + + + + + true + + + true + + + Check For Updates On Open + + split_image_folder_input @@ -1325,20 +1025,9 @@ y_spinbox width_spinbox height_spinbox - fps_limit_spinbox - live_image_checkbox - comparison_method_combobox - show_live_similarity_checkbox - show_highest_similarity_checkbox - similarity_threshold_spinbox - pause_spinbox - split_input - reset_input - skip_split_input - undo_split_input - + diff --git a/res/settings.ui b/res/settings.ui new file mode 100644 index 00000000..22aa4a35 --- /dev/null +++ b/res/settings.ui @@ -0,0 +1,717 @@ + + + dialog_settings + + + + 0 + 0 + 289 + 570 + + + + + 0 + 0 + + + + + 289 + 570 + + + + + 289 + 570 + + + + ArrowCursor + + + Settings + + + false + + + false + + + + + 127 + 538 + 156 + 24 + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Save + + + + + + 10 + 180 + 271 + 101 + + + + Capture Settings + + + + true + + + + 6 + 73 + 204 + 20 + + + + Force a full render of the capture window, which is required for some applications to be captured + + + + + + Force Full Render (slower Max FPS) + + + false + + + false + + + + + + 138 + 25 + 51 + 22 + + + + + + + 0 + + + 30.000000000000000 + + + 5000.000000000000000 + + + 1.000000000000000 + + + 60.000000000000000 + + + + + + 6 + 27 + 121 + 16 + + + + This value will limit the amount of frames per second that AutoSplit will run comparisons + + + + + + Comparison FPS Limit: + + + + + true + + + + 6 + 49 + 129 + 20 + + + + Live Capture Region + + + true + + + false + + + + + + + 10 + 290 + 271 + 241 + + + + Image Settings + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + false + + + + + 167 + 26 + 88 + 22 + + + + + + + + + + + L2 Norm + + + + + Histograms + + + + + pHash + + + + + + + 6 + 29 + 161 + 16 + + + + Default Comparison Method: + + + + + + 6 + 117 + 161 + 16 + + + + + + + Default Pause Time (sec): + + + + + + 167 + 114 + 87 + 22 + + + + The amount of time in seconds that comparison will be paused before moving to the next image. + + + 2 + + + 999999999.000000000000000 + + + 1.000000000000000 + + + 10.000000000000000 + + + + + + 6 + 58 + 151 + 16 + + + + + + + + + + Default Similarity Threshold: + + + + + + 167 + 56 + 52 + 22 + + + + Threshold that the live similarity will need to go above to consider the image a match. + + + 1.000000000000000 + + + 0.010000000000000 + + + 0.900000000000000 + + + + + true + + + + 6 + 144 + 235 + 20 + + + + Loop Last Split Image to First Split Image + + + false + + + false + + + + + + 6 + 173 + 261 + 61 + + + + + 8 + true + + + + teset + + + <html><head/><body><p>Custom image settings and flags are set in the <br></br> image file name. These will override the default <br></br> values. View the <a href="https://github.com/Toufool/Auto-Split#readme"><span style=" text-decoration: underline; color:#0000ff;">README</span></a> for full details on all <br></br> available custom image settings</p></body></html> + + + + + + 6 + 88 + 161 + 16 + + + + + + + + + + Default Delay Time (ms): + + + + + + 167 + 85 + 87 + 22 + + + + After an image is matched, this is the amount of time in millseconds that will be delayed before splitting. + + + + + + 0 + + + 0.000000000000000 + + + 36000000.000000000000000 + + + 1.000000000000000 + + + 0.000000000000000 + + + + + + + 10 + 10 + 271 + 161 + + + + Hotkeys + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + false + + + false + + + + + 180 + 133 + 81 + 21 + + + + Qt::NoFocus + + + Set Hotkey + + + + + + 76 + 28 + 94 + 20 + + + + + + + false + + + + + + 76 + 80 + 94 + 20 + + + + Qt::StrongFocus + + + + + + true + + + + + + 6 + 31 + 71 + 16 + + + + Start / Split: + + + + + + 76 + 53 + 94 + 20 + + + + IBeamCursor + + + + + + true + + + true + + + + + + 180 + 80 + 81 + 21 + + + + Qt::NoFocus + + + Set Hotkey + + + + + + 6 + 55 + 41 + 16 + + + + Reset: + + + + + + 180 + 53 + 81 + 21 + + + + Qt::NoFocus + + + Set Hotkey + + + + + + 180 + 28 + 81 + 21 + + + + Qt::NoFocus + + + Set Hotkey + + + + + + 6 + 132 + 41 + 16 + + + + Pause: + + + + + + 76 + 133 + 94 + 20 + + + + Qt::StrongFocus + + + + + + true + + + + + + 6 + 82 + 71 + 16 + + + + Undo Split: + + + + + + 180 + 106 + 81 + 21 + + + + Qt::NoFocus + + + Set Hotkey + + + + + + 6 + 108 + 61 + 16 + + + + Skip Split: + + + + + + 76 + 106 + 94 + 20 + + + + + + + true + + + + + + split_input + reset_input + undo_split_input + skip_split_input + pause_input + default_comparison_method + default_similarity_threshold_double_spinbox + default_pause_time_double_spinbox + loop_splits_checkbox + fps_limit_spinbox + live_capture_region_checkbox + force_print_window_checkbox + + + + + save_cancel_dialog_button_box + accepted() + dialog_settings + accept() + + + 194 + 541 + + + 140 + 282 + + + + + save_cancel_dialog_button_box + rejected() + dialog_settings + reject() + + + 194 + 541 + + + 140 + 282 + + + + + From 65441baa43a3634cac95a7f6f547e35d21e9e85a Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sat, 6 Aug 2022 10:50:04 -0400 Subject: [PATCH 21/54] Hooked new settings window to actual values (#151) * Initial UI update for 2.0.0. Add settings window. * hooked new settings window to actual values * Better "seconds remaining" text * Undo split goes to the end of the group Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> --- .flake8 | 2 +- README.md | 5 +- pyproject.toml | 5 + res/design.ui | 61 ++++-- res/settings.ui | 140 ++++--------- scripts/compile_resources.bat | 1 + scripts/designer.bat | 7 +- src/AutoControlledWorker.py | 2 + src/AutoSplit.py | 286 ++++++++++++-------------- src/AutoSplitImage.py | 6 +- src/capture_windows.py | 25 +-- src/error_messages.py | 10 +- src/hotkeys.py | 106 ++++++---- src/menu_bar.py | 113 +++++++++- src/screen_region.py | 28 ++- src/settings_file.py | 86 +++++--- src/split_parser.py | 8 +- typings/keyboard/__init__.pyi | 62 +++--- typings/keyboard/_canonical_names.pyi | 11 + 19 files changed, 532 insertions(+), 432 deletions(-) create mode 100644 typings/keyboard/_canonical_names.pyi diff --git a/.flake8 b/.flake8 index 65910611..2715e740 100644 --- a/.flake8 +++ b/.flake8 @@ -12,7 +12,7 @@ per-file-ignores= __init__.pyi:Q000 ; PyQt methods ignore-names=closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent -; McCabe max-complexity is also taken care of by Pylint and doesn't fail teh build there +; McCabe max-complexity is also taken care of by Pylint and doesn't fail the build there ; So this is the hard limit max-complexity=32 inline-quotes=" diff --git a/README.md b/README.md index 2e43e50d..4c9e24c4 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,6 @@ This program can be used to automatically start, split, and reset your preferred - {d} dummy split image. When matched, it moves to the next image without hitting your split hotkey. - {b} split when similarity goes below the threshold rather than above. When a split image filename has this flag, the split image similarity will go above the threshold, do nothing, and then split the next time the similarity goes below the threshold. - {p} pause flag. When a split image filename has this flag, it will hit your pause hotkey rather than your split hokey. - - A pause flag and a dummy flag `{pd}` cannot be used together - Filename examples: - `001_SplitName_(0.9)_[10].png` is a split image with a threshold of 0.9 and a pause time of 10 seconds. - `002_SplitName_(0.9)_[10]_{d}.png` is the second split image with a threshold of 0.9, pause time of 10, and is a dummy split. @@ -156,9 +155,9 @@ Given these splits: 1 dummy, 2 normal, 3 dummy, 4 dummy, 5 normal, 6 normal. In this situation you would have only 3 splits in LiveSplit/wsplit (even though there are 6 split images, only 3 are "real" splits). This basically results in 3 groups of splits: 1st split is images 1 and 2. 2nd split is images 3, 4 and 5. 3rd split is image 6. - If you are in the 1st or 2nd image and press the skip key, it will end up on the 3rd image -- If you are in the 3rd, 4th or 5th image and press the undo key, it will end up on the 1st image +- If you are in the 3rd, 4th or 5th image and press the undo key, it will end up on the 2nd image - If you are in the 3rd, 4th or 5th image and press the skip key, it will end up on the 6th image -- If you are in the 6th image and press the undo key, it will end up on the 3rd image +- If you are in the 6th image and press the undo key, it will end up on the 5th image ### Loop Split Images diff --git a/pyproject.toml b/pyproject.toml index 8001ad5f..3f71a85f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,6 +15,11 @@ aggressive = 3 [tool.pyright] pythonPlatform = "Windows" typeCheckingMode = "strict" +# Extra strict +reportPropertyTypeMismatch=true +reportUninitializedInstanceVariable=true +reportCallInDefaultInitializer=true +reportImplicitStringConcatenation=true ignore = [ # Auto generated "src/gen/", diff --git a/res/design.ui b/res/design.ui index 80334881..ea0037ef 100644 --- a/res/design.ui +++ b/res/design.ui @@ -1,7 +1,7 @@ - main_window - + MainWindow + 0 @@ -37,7 +37,7 @@ AutoSplit - + :/resources/icon.ico:/resources/icon.ico @@ -93,6 +93,9 @@ + + false + 650 @@ -108,7 +111,10 @@ Reset - + + + false + 650 @@ -124,7 +130,10 @@ Undo - + + + false + 712 @@ -196,6 +205,9 @@ + + Qt::AlignCenter + @@ -212,6 +224,9 @@ + + Qt::AlignCenter + @@ -265,7 +280,7 @@ - 9999 + @@ -332,7 +347,7 @@ - Image Filename + - Qt::AlignCenter @@ -507,7 +522,7 @@ - Window Name + - Qt::AlignCenter @@ -516,8 +531,8 @@ - 450 - 309 + 451 + 313 67 20 @@ -796,8 +811,8 @@ - 450 - 345 + 449 + 344 98 16 @@ -809,8 +824,8 @@ - 551 - 345 + 550 + 344 98 16 @@ -822,17 +837,20 @@ - 519 - 309 + 520 + 313 131 20 - x/x + N/A + + false + 449 @@ -852,6 +870,9 @@ + + false + 744 @@ -874,8 +895,8 @@ select_region_button start_auto_splitter_button reset_button - undo_button - skip_button + undo_split_button + skip_split_button check_fps_button fps_label current_image_label @@ -1027,7 +1048,7 @@ height_spinbox - + diff --git a/res/settings.ui b/res/settings.ui index 22aa4a35..ee4dfd38 100644 --- a/res/settings.ui +++ b/res/settings.ui @@ -1,13 +1,13 @@ - dialog_settings - + DialogSettings + 0 0 289 - 570 + 540 @@ -19,13 +19,13 @@ 289 - 570 + 540 289 - 570 + 540 @@ -40,19 +40,6 @@ false - - - - 127 - 538 - 156 - 24 - - - - QDialogButtonBox::Cancel|QDialogButtonBox::Save - - @@ -93,7 +80,7 @@ false - + 138 @@ -102,23 +89,17 @@ 22 - - - - - 0 + + ArrowCursor - 30.000000000000000 + 20 - 5000.000000000000000 - - - 1.000000000000000 + 240 - 60.000000000000000 + 60 @@ -244,7 +225,7 @@ Default Pause Time (sec): - + 167 @@ -288,7 +269,7 @@ Default Similarity Threshold: - + 167 @@ -332,7 +313,7 @@ false - + 6 @@ -351,10 +332,10 @@ teset - <html><head/><body><p>Custom image settings and flags are set in the <br></br> image file name. These will override the default <br></br> values. View the <a href="https://github.com/Toufool/Auto-Split#readme"><span style=" text-decoration: underline; color:#0000ff;">README</span></a> for full details on all <br></br> available custom image settings</p></body></html> + <html><head/><body><p>Custom image settings and flags are set in the <br></br> image file name. These will override the default <br></br> values. View the <a href="https://github.com/Toufool/Auto-Split#readme"><span style=" text-decoration: underline; color:#0000ff;">README</span></a> for full details on all <br></br> available custom image settings.</p></body></html> - + 6 @@ -373,7 +354,7 @@ Default Delay Time (ms): - + 167 @@ -382,26 +363,14 @@ 22 + + ArrowCursor + After an image is matched, this is the amount of time in millseconds that will be delayed before splitting. - - - - - 0 - - - 0.000000000000000 - - 36000000.000000000000000 - - - 1.000000000000000 - - - 0.000000000000000 + 999999999 @@ -430,7 +399,7 @@ 180 - 133 + 130 81 21 @@ -443,10 +412,13 @@ + + true + 76 - 28 + 30 94 20 @@ -455,7 +427,7 @@ - false + true @@ -481,7 +453,7 @@ 6 - 31 + 32 71 16 @@ -494,7 +466,7 @@ 76 - 53 + 55 94 20 @@ -505,9 +477,6 @@ - - true - true @@ -532,7 +501,7 @@ 6 - 55 + 57 41 16 @@ -545,7 +514,7 @@ 180 - 53 + 55 81 21 @@ -590,7 +559,7 @@ 76 - 133 + 130 94 20 @@ -622,7 +591,7 @@ 180 - 106 + 105 81 21 @@ -638,7 +607,7 @@ 6 - 108 + 107 61 16 @@ -651,7 +620,7 @@ 76 - 106 + 105 94 20 @@ -672,46 +641,13 @@ skip_split_input pause_input default_comparison_method - default_similarity_threshold_double_spinbox - default_pause_time_double_spinbox + default_similarity_threshold_spinbox + default_pause_time_spinbox loop_splits_checkbox fps_limit_spinbox live_capture_region_checkbox force_print_window_checkbox - - - save_cancel_dialog_button_box - accepted() - dialog_settings - accept() - - - 194 - 541 - - - 140 - 282 - - - - - save_cancel_dialog_button_box - rejected() - dialog_settings - reject() - - - 194 - 541 - - - 140 - 282 - - - - + diff --git a/scripts/compile_resources.bat b/scripts/compile_resources.bat index 3c1398ff..d5ef6cf0 100644 --- a/scripts/compile_resources.bat +++ b/scripts/compile_resources.bat @@ -2,5 +2,6 @@ cd "%~dp0.." md .\src\gen pyuic6 ".\res\about.ui" -o ".\src\gen\about.py" pyuic6 ".\res\design.ui" -o ".\src\gen\design.py" +pyuic6 ".\res\settings.ui" -o ".\src\gen\settings.py" pyuic6 ".\res\update_checker.ui" -o ".\src\gen\update_checker.py" pyside6-rcc ".\res\resources.qrc" -o ".\src\gen\resources_rc.py" diff --git a/scripts/designer.bat b/scripts/designer.bat index 3b7af65e..d3b61064 100644 --- a/scripts/designer.bat +++ b/scripts/designer.bat @@ -11,4 +11,9 @@ IF NOT DEFINED PYTHONPATH ( SET PYTHONPATH=!pythonFiles[0]! ) -START "Qt Designer" "%PYTHONPATH:~0,-11%\Lib\site-packages\qt6_applications\Qt\bin\designer.exe" "%~d0%~p0..\res\design.ui" "%~d0%~p0..\res\about.ui" "%~d0%~p0..\res\update_checker.ui" +START "Qt Designer" "%PYTHONPATH:~0,-11%\Lib\site-packages\qt6_applications\Qt\bin\designer.exe"^ + "%~d0%~p0..\res\design.ui"^ + "%~d0%~p0..\res\about.ui"^ + "%~d0%~p0..\res\settings.ui"^ + "%~d0%~p0..\res\update_checker.ui" + diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index 0c252d44..36b231d9 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -20,6 +20,8 @@ def run(self): except RuntimeError: self.autosplit.show_error_signal.emit(error_messages.stdin_lost) break + except EOFError: + continue # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. # For now this can only used in a Development environment if line == "kill": diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 97031748..91d8b88f 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -28,18 +28,18 @@ import error_messages import settings_file as settings from AutoControlledWorker import AutoControlledWorker -from capture_windows import capture_region, Rect, set_ui_image -from gen import about, design, update_checker -from hotkeys import send_command, after_setting_hotkey, set_split_hotkey, set_reset_hotkey, set_skip_split_hotkey, \ - set_undo_split_hotkey, set_pause_hotkey -from menu_bar import open_about, VERSION, view_help, check_for_updates, open_update_checker +from capture_windows import capture_region, set_ui_image +from gen import about, design, settings as settings_ui, update_checker +from hotkeys import send_command, after_setting_hotkey +from menu_bar import get_default_settings_from_ui, open_about, VERSION, open_settings, view_help, check_for_updates, \ + open_update_checker from screen_region import select_region, select_window, align_region, validate_before_parsing from settings_file import FROZEN from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images -CREATE_NEW_ISSUE_MESSAGE = "Please create a New Issue at " \ - "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below" -START_IMAGE_TEXT = "Start Image" +CREATE_NEW_ISSUE_MESSAGE = ( + "Please create a New Issue at " + + "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below") START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" CHECK_FPS_ITERATIONS = 10 @@ -47,14 +47,14 @@ os.environ["REQUESTS_CA_BUNDLE"] = certifi.where() -def make_excepthook(main_window: AutoSplit): +def make_excepthook(autosplit: AutoSplit): def excepthook(exception_type: type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): # Catch Keyboard Interrupts for a clean close if exception_type is KeyboardInterrupt or isinstance(exception, KeyboardInterrupt): sys.exit(0) - main_window.show_error_signal.emit(lambda: error_messages.exception_traceback( + autosplit.show_error_signal.emit(lambda: error_messages.exception_traceback( "AutoSplit encountered an unhandled exception and will try to recover, " - f"however, there is no guarantee everything will work properly. {CREATE_NEW_ISSUE_MESSAGE}", + + f"however, there is no guarantee it will keep working properly. {CREATE_NEW_ISSUE_MESSAGE}", exception)) return excepthook @@ -82,9 +82,10 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): timer_start_image = QtCore.QTimer() # Widgets - AboutWidget: about.Ui_AboutAutoSplitWidget - UpdateCheckerWidget: update_checker.Ui_UpdateChecker - CheckForUpdatesThread: QtCore.QThread + AboutWidget: Optional[about.Ui_AboutAutoSplitWidget] = None + UpdateCheckerWidget: Optional[update_checker.Ui_UpdateChecker] = None + CheckForUpdatesThread: Optional[QtCore.QThread] = None + SettingsWidget: Optional[settings_ui.Ui_DialogSettings] = None # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py # and for type safety in both hotkeys.py and settings_file.py @@ -95,13 +96,10 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): pause_hotkey: Optional[Callable[[], None]] = None # Initialize a few attributes - split_image_directory = "" hwnd = 0 """Window Handle used for Capture Region""" - window_text = "" - selection = Rect() last_saved_settings: list[Union[str, float, int, bool]] = [] - live_image_function_on_open = True + similarity = 0.0 split_image_number = 0 split_images_and_loop_number: list[tuple[AutoSplitImage, int]] = [] split_groups: list[list[int]] = [] @@ -130,34 +128,32 @@ def __init__(self, parent: Optional[QWidget] = None): # Setup global error handling self.show_error_signal.connect(lambda errorMessageBox: errorMessageBox()) - # Whithin LiveSplit excepthook needs to use main_window's signals to show errors + # Whithin LiveSplit excepthook needs to use MainWindow's signals to show errors sys.excepthook = make_excepthook(self) self.setupUi(self) + # Get default values defined in SettingsDialog + self.settings_dict = get_default_settings_from_ui(self) settings.load_check_for_updates_on_open(self) - # close all processes when closing window self.action_view_help.triggered.connect(view_help) self.action_about.triggered.connect(lambda: open_about(self)) self.action_check_for_updates.triggered.connect(lambda: check_for_updates(self)) - self.action_save_settings.triggered.connect(lambda: settings.save_settings(self)) - self.action_save_settings_as.triggered.connect(lambda: settings.save_settings_as(self)) - self.action_load_settings.triggered.connect(lambda: settings.load_settings(self)) + self.action_settings.triggered.connect(lambda: open_settings(self)) + self.action_save_profile.triggered.connect(lambda: settings.save_settings(self)) + self.action_save_profile_as.triggered.connect(lambda: settings.save_settings_as(self)) + self.action_load_profile.triggered.connect(lambda: settings.load_settings(self)) + + if self.SettingsWidget: + self.SettingsWidget.split_input.setEnabled(False) + self.SettingsWidget.reset_input.setEnabled(False) + self.SettingsWidget.skip_split_input.setEnabled(False) + self.SettingsWidget.undo_split_input.setEnabled(False) + self.SettingsWidget.pause_input.setEnabled(False) if self.is_auto_controlled: - self.set_split_hotkey_button.setEnabled(False) - self.set_reset_hotkey_button.setEnabled(False) - self.set_skip_split_hotkey_button.setEnabled(False) - self.set_undo_split_hotkey_button.setEnabled(False) - self.set_pause_hotkey_button.setEnabled(False) self.start_auto_splitter_button.setEnabled(False) - self.split_input.setEnabled(False) - self.reset_input.setEnabled(False) - self.skip_split_input.setEnabled(False) - self.undo_split_input.setEnabled(False) - self.pause_input.setEnabled(False) - self.timer_global_hotkeys_label.setText("Hotkeys Inactive - Use LiveSplit Hotkeys") # Send version and process ID to stdout print(f"{VERSION}\n{os.getpid()}", flush=True) @@ -183,14 +179,9 @@ def __init__(self, parent: Optional[QWidget] = None): self.undo_split_button.clicked.connect(self.__undo_split) self.next_image_button.clicked.connect(lambda: self.__skip_split(True)) self.previous_image_button.clicked.connect(lambda: self.__undo_split(True)) - self.set_split_hotkey_button.clicked.connect(lambda: set_split_hotkey(self)) - self.set_reset_hotkey_button.clicked.connect(lambda: set_reset_hotkey(self)) - self.set_skip_split_hotkey_button.clicked.connect(lambda: set_skip_split_hotkey(self)) - self.set_undo_split_hotkey_button.clicked.connect(lambda: set_undo_split_hotkey(self)) - self.set_pause_hotkey_button.clicked.connect(lambda: set_pause_hotkey(self)) self.align_region_button.clicked.connect(lambda: align_region(self)) self.select_window_button.clicked.connect(lambda: select_window(self)) - self.start_image_reload_button.clicked.connect(lambda: self.load_start_image(True, True)) + self.reload_start_image_button.clicked.connect(lambda: self.load_start_image(True, True)) self.action_check_for_updates_on_open.changed.connect(lambda: settings.set_check_for_updates_on_open( self, self.action_check_for_updates_on_open.isChecked()) @@ -213,7 +204,7 @@ def __init__(self, parent: Optional[QWidget] = None): self.pause_signal.connect(self.pause) # live image checkbox - self.live_image_checkbox.clicked.connect(self.check_live_image) + self.timer_live_image.start(int(1000 / 60)) self.timer_live_image.timeout.connect(self.__live_image_function) # Automatic timer start @@ -236,49 +227,37 @@ def __browse(self): new_split_image_directory = QFileDialog.getExistingDirectory( self, "Select Split Image Directory", - os.path.join(self.split_image_directory or settings.auto_split_directory, "..")) + os.path.join(self.settings_dict["split_image_directory"] or settings.auto_split_directory, "..")) # If the user doesn't select a folder, it defaults to "". if new_split_image_directory: # set the split image folder line to the directory text - self.split_image_directory = new_split_image_directory + self.settings_dict["split_image_directory"] = new_split_image_directory self.split_image_folder_input.setText(f"{new_split_image_directory}/") self.load_start_image() - def check_live_image(self): - if self.live_image_checkbox.isChecked(): - self.timer_live_image.start(int(1000 / 60)) - else: - self.timer_live_image.stop() - self.__live_image_function() - def __live_image_function(self): - try: - self.capture_region_window_label.setText(self.window_text) - if not self.window_text: - self.timer_live_image.stop() - self.live_image.clear() - if self.live_image_function_on_open: - self.live_image_function_on_open = False - return - # Set live image in UI - if self.hwnd: - capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) - set_ui_image(self.live_image, capture, False) - - except AttributeError: - pass + self.capture_region_window_label.setText(self.settings_dict["captured_window_title"]) + if not (self.settings_dict["live_capture_region"] and self.settings_dict["captured_window_title"]): + self.live_image.clear() + return + # Set live image in UI + if self.hwnd: + capture = capture_region(self.hwnd, + self.settings_dict["capture_region"], + self.settings_dict["force_print_window"]) + set_ui_image(self.live_image, capture, False) def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool = True): self.timer_start_image.stop() - self.current_split_image_file_label.setText(" ") - self.start_image_label.setText(f"{START_IMAGE_TEXT}: not found") + self.current_image_file_label.setText("-") + self.start_image_status_value_label.setText("not found") QApplication.processEvents() if not self.is_auto_controlled \ - and (not self.split_input.text() - or not self.reset_input.text() - or not self.pause_input.text()): + and (not self.settings_dict["split_hotkey"] + or not self.settings_dict["reset_hotkey"] + or not self.settings_dict["pause_hotkey"]): error_messages.load_start_image() return @@ -295,17 +274,17 @@ def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool start_pause_time = self.start_image.get_pause_time(self) if not wait_for_delay and start_pause_time > 0: self.check_start_image_timestamp = time() + start_pause_time - self.start_image_label.setText(f"{START_IMAGE_TEXT}: paused") - self.highest_similarity_label.setText(" ") - self.current_similarity_threshold_number_label.setText(" ") + self.start_image_status_value_label.setText("paused") + self.table_current_image_highest_label.setText("-") + self.table_current_image_threshold_label.setText("-") else: self.check_start_image_timestamp = 0.0 - self.start_image_label.setText(f"{START_IMAGE_TEXT}: ready") + self.start_image_status_value_label.setText("ready") self.__update_split_image(self.start_image) self.highest_similarity = 0.0 self.start_image_split_below_threshold = False - self.timer_start_image.start(int(1000 / self.fps_limit_spinbox.value())) + self.timer_start_image.start(int(1000 / self.settings_dict["fps_limit"])) QApplication.processEvents() @@ -313,35 +292,31 @@ def __start_image_function(self): if self.start_image is None \ or not self.start_image \ or time() < self.check_start_image_timestamp \ - or (not self.split_input.text() and not self.is_auto_controlled): - pause_time_left = f"{self.check_start_image_timestamp - time():.1f}" + or (not self.settings_dict["split_hotkey"] and not self.is_auto_controlled): + pause_time_left = self.check_start_image_timestamp - time() self.current_split_image.setText( - f"None\n (Paused before loading {START_IMAGE_TEXT}).\n {pause_time_left} sec remaining") + f"None\n (Paused before loading Start Image).\n {seconds_remaining_text(pause_time_left)}") return if self.check_start_image_timestamp > 0: self.check_start_image_timestamp = 0.0 - self.start_image_label.setText(f"{START_IMAGE_TEXT}: ready") + self.start_image_status_value_label.setText("ready") self.__update_split_image(self.start_image) capture = self.__get_capture_for_comparison() start_image_threshold = self.start_image.get_similarity_threshold(self) start_image_similarity = self.start_image.compare_with_capture(self, capture) - self.current_similarity_threshold_number_label.setText(f"{start_image_threshold:.2f}") + self.table_current_image_threshold_label.setText(f"{start_image_threshold:.2f}") # Show live similarity if the checkbox is checked - self.live_similarity_label.setText(str(start_image_similarity)[:4] - if self.show_live_similarity_checkbox.isChecked() - else " ") + self.table_current_image_live_label.setText(str(start_image_similarity)[:4]) # If the similarity becomes higher than highest similarity, set it as such. if start_image_similarity > self.highest_similarity: self.highest_similarity = start_image_similarity # Show live highest similarity if the checkbox is checked - self.highest_similarity_label.setText(str(self.highest_similarity)[:4] - if self.show_highest_similarity_checkbox.isChecked() - else " ") + self.table_current_image_highest_label.setText(str(self.highest_similarity)[:4]) # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold @@ -361,46 +336,34 @@ def __start_image_function(self): # delay start image if needed if self.start_image.delay > 0: - self.start_image_label.setText(f"{START_IMAGE_TEXT}: delaying start...") + self.start_image_status_value_label.setText("delaying start...") delay_start_time = time() start_delay = self.start_image.delay / 1000 while time() - delay_start_time < start_delay: - delay_time_left = round(start_delay - (time() - delay_start_time), 1) + delay_time_left = start_delay - (time() - delay_start_time) self.current_split_image.setText( - f"Delayed Before Starting:\n {delay_time_left} sec remaining") + f"Delayed Before Starting:\n {seconds_remaining_text(delay_time_left)}") # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(1) # type: ignore - self.start_image_label.setText(f"{START_IMAGE_TEXT}: started") + self.start_image_status_value_label.setText("started") send_command(self, "start") # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(int(1 / self.fps_limit_spinbox.value())) # type: ignore + QtTest.QTest.qWait(int(1 / self.settings_dict["fps_limit"])) # type: ignore self.start_auto_splitter() # update x, y, width, height when spinbox values are changed def __update_x(self): - try: - self.selection.left = self.x_spinbox.value() - self.selection.right = self.selection.left + self.width_spinbox.value() - self.check_live_image() - except AttributeError: - pass + self.settings_dict["capture_region"].x = self.x_spinbox.value() def __update_y(self): - try: - self.selection.top = self.y_spinbox.value() - self.selection.bottom = self.selection.top + self.height_spinbox.value() - self.check_live_image() - except AttributeError: - pass + self.settings_dict["capture_region"].y = self.y_spinbox.value() def __update_width(self): - self.selection.right = self.selection.left + self.width_spinbox.value() - self.check_live_image() + self.settings_dict["capture_region"].width = self.width_spinbox.value() def __update_height(self): - self.selection.bottom = self.selection.top + self.height_spinbox.value() - self.check_live_image() + self.settings_dict["capture_region"].height = self.height_spinbox.value() def __take_screenshot(self): if not validate_before_parsing(self, check_empty_directory=False): @@ -411,13 +374,17 @@ def __take_screenshot(self): # which is a problem, but I doubt anyone will get to 1000 split images... screenshot_index = 1 while True: - screenshot_path = os.path.join(self.split_image_directory, f"{screenshot_index:03}_SplitImage.png") + screenshot_path = os.path.join( + self.settings_dict["split_image_directory"], + f"{screenshot_index:03}_SplitImage.png") if not os.path.exists(screenshot_path): break screenshot_index += 1 # Grab screenshot of capture region - capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) + capture = capture_region(self.hwnd, + self.settings_dict["capture_region"], + self.settings_dict["force_print_window"]) if capture is None: error_messages.region() return @@ -427,7 +394,7 @@ def __take_screenshot(self): os.startfile(screenshot_path) def __check_fps(self): - self.fps_value_label.setText(" ") + self.fps_value_label.clear() if not (validate_before_parsing(self) and parse_and_validate_images(self)): return @@ -444,9 +411,7 @@ def __check_fps(self): while count < CHECK_FPS_ITERATIONS: capture = self.__get_capture_for_comparison() _ = image.compare_with_capture(self, capture) - set_ui_image(self.current_split_image, image.bytes, True) count += 1 - self.current_split_image.clear() # calculate FPS t1 = time() @@ -470,9 +435,9 @@ def __undo_split(self, navigate_image_only: bool = False): return if not navigate_image_only: - for i, group in enumerate(self.split_groups): + for i, group in enumerate(self.split_groups,): if i > 0 and self.split_image_number in group: - self.split_image_number = self.split_groups[i - 1][0] + self.split_image_number = self.split_groups[i - 1][-1] break else: self.split_image_number -= 1 @@ -521,15 +486,15 @@ def start_auto_splitter(self): or (not self.start_auto_splitter_button.isEnabled() and not self.is_auto_controlled): return - start_label: str = self.start_image_label.text() + start_label: str = self.start_image_status_value_label.text() if start_label.endswith("ready") or start_label.endswith("paused"): - self.start_image_label.setText(f"{START_IMAGE_TEXT}: not ready") + self.start_image_status_value_label.setText("not ready") self.start_auto_splitter_signal.emit() def __check_for_reset(self): if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT: - if self.auto_start_on_reset_checkbox.isChecked(): + if self.settings_dict["loop_splits"]: self.start_auto_splitter_signal.emit() else: self.gui_changes_on_reset() @@ -537,7 +502,7 @@ def __check_for_reset(self): return False def __auto_splitter(self): - if not self.split_input.text() and not self.is_auto_controlled: + if not self.settings_dict["split_hotkey"] and not self.is_auto_controlled: self.gui_changes_on_reset() error_messages.split_hotkey() return @@ -606,20 +571,14 @@ def __auto_splitter(self): self.similarity = self.split_image.compare_with_capture(self, capture) # show live similarity if the checkbox is checked - self.live_similarity_label.setText( - str(self.similarity)[:4] - if self.show_live_similarity_checkbox.isChecked() - else " ") + self.table_current_image_live_label.setText(str(self.similarity)[:4]) # if the similarity becomes higher than highest similarity, set it as such. if self.similarity > self.highest_similarity: self.highest_similarity = self.similarity # show live highest similarity if the checkbox is checked - self.highest_similarity_label.setText( - str(self.highest_similarity)[:4] - if self.show_highest_similarity_checkbox.isChecked() - else " ") + self.table_current_image_highest_label.setText(str(self.highest_similarity)[:4]) # If its the last split image and last loop number, disable the next image button # If its the first split image, disable the undo split and previous image buttons @@ -645,7 +604,7 @@ def __auto_splitter(self): break # limit the number of time the comparison runs to reduce cpu usage - frame_interval: float = 1 / self.fps_limit_spinbox.value() + frame_interval: float = 1 / self.settings_dict["fps_limit"] # Email sent to pyqt@riverbankcomputing.com QtTest.QTest.qWait(int(frame_interval - (time() - start) % frame_interval)) # type: ignore QApplication.processEvents() @@ -663,13 +622,13 @@ def __auto_splitter(self): self.waiting_for_split_delay = True self.undo_split_button.setEnabled(False) self.skip_split_button.setEnabled(False) - self.current_split_image_file_label.setText(" ") + self.current_image_file_label.clear() # check for reset while delayed and display a counter of the remaining split delay time delay_start_time = time() while time() - delay_start_time < split_delay: - delay_time_left = round(split_delay - (time() - delay_start_time), 1) - self.current_split_image.setText(f"Delayed Split: {delay_time_left} sec remaining") + delay_time_left = split_delay - (time() - delay_start_time) + self.current_split_image.setText(f"Delayed Split: {seconds_remaining_text(delay_time_left)}") if self.__check_for_reset(): return @@ -687,7 +646,7 @@ def __auto_splitter(self): # if loop check box is checked and its the last split, go to first split. # else go to the next split image. - if self.loop_checkbox.isChecked() and self.split_image_number == number_of_split_images - 1: + if self.settings_dict["loop_splits"] and self.split_image_number == number_of_split_images - 1: self.split_image_number = 0 else: self.split_image_number += 1 @@ -716,8 +675,8 @@ def __auto_splitter(self): if pause_time > 0: pause_start_time = time() while time() - pause_start_time < pause_time: - pause_time_left = round(pause_time - (time() - pause_start_time), 1) - self.current_split_image.setText(f"None (Paused). {pause_time_left} sec remaining") + pause_time_left = pause_time - (time() - pause_start_time) + self.current_split_image.setText(f"None (Paused). {seconds_remaining_text(pause_time_left)}") if self.__check_for_reset(): return @@ -742,46 +701,49 @@ def gui_changes_on_start(self): self.timer_start_image.stop() self.start_auto_splitter_button.setText("Running...") self.browse_button.setEnabled(False) - self.start_image_reload_button.setEnabled(False) + self.reload_start_image_button.setEnabled(False) self.previous_image_button.setEnabled(True) self.next_image_button.setEnabled(True) + if self.SettingsWidget: + self.SettingsWidget.set_split_hotkey_button.setEnabled(False) + self.SettingsWidget.set_reset_hotkey_button.setEnabled(False) + self.SettingsWidget.set_skip_split_hotkey_button.setEnabled(False) + self.SettingsWidget.set_undo_split_hotkey_button.setEnabled(False) + self.SettingsWidget.set_pause_hotkey_button.setEnabled(False) + if not self.is_auto_controlled: self.start_auto_splitter_button.setEnabled(False) self.reset_button.setEnabled(True) self.undo_split_button.setEnabled(True) self.skip_split_button.setEnabled(True) - self.set_split_hotkey_button.setEnabled(False) - self.set_reset_hotkey_button.setEnabled(False) - self.set_skip_split_hotkey_button.setEnabled(False) - self.set_undo_split_hotkey_button.setEnabled(False) - self.set_pause_hotkey_button.setEnabled(False) QApplication.processEvents() def gui_changes_on_reset(self): self.start_auto_splitter_button.setText(START_AUTO_SPLITTER_TEXT) - self.image_loop_label.setText("Image Loop: -") - self.current_split_image.setText(" ") - self.current_split_image_file_label.setText(" ") - self.live_similarity_label.setText(" ") - self.highest_similarity_label.setText(" ") - self.current_similarity_threshold_number_label.setText(" ") + self.image_loop_value_label.setText("N/A") + self.current_split_image.clear() + self.current_image_file_label.clear() + self.table_current_image_live_label.setText("-") + self.table_current_image_highest_label.setText("-") + self.table_current_image_threshold_label.setText("-") self.browse_button.setEnabled(True) - self.start_image_reload_button.setEnabled(True) + self.reload_start_image_button.setEnabled(True) self.previous_image_button.setEnabled(False) self.next_image_button.setEnabled(False) + if self.SettingsWidget: + self.SettingsWidget.set_split_hotkey_button.setEnabled(True) + self.SettingsWidget.set_reset_hotkey_button.setEnabled(True) + self.SettingsWidget.set_skip_split_hotkey_button.setEnabled(True) + self.SettingsWidget.set_undo_split_hotkey_button.setEnabled(True) + self.SettingsWidget.set_pause_hotkey_button.setEnabled(True) if not self.is_auto_controlled: self.start_auto_splitter_button.setEnabled(True) self.reset_button.setEnabled(False) self.undo_split_button.setEnabled(False) self.skip_split_button.setEnabled(False) - self.set_split_hotkey_button.setEnabled(True) - self.set_reset_hotkey_button.setEnabled(True) - self.set_skip_split_hotkey_button.setEnabled(True) - self.set_undo_split_hotkey_button.setEnabled(True) - self.set_pause_hotkey_button.setEnabled(True) QApplication.processEvents() self.load_start_image(False, False) @@ -790,18 +752,22 @@ def __get_capture_for_comparison(self): """ Grab capture region and resize for comparison """ - capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) + capture = capture_region(self.hwnd, + self.settings_dict["capture_region"], + self.settings_dict["force_print_window"]) # This most likely means we lost capture (ie the captured window was closed, crashed, etc.) if capture is None: # Try to recover by using the window name self.live_image.setText("Trying to recover window...") # https://github.com/kaluluosi/pywin32-stubs/issues/7 - hwnd = win32gui.FindWindow(None, self.window_text) # type: ignore + hwnd = win32gui.FindWindow(None, self.settings_dict["captured_window_title"]) # type: ignore # Don't fallback to desktop if hwnd: self.hwnd = hwnd - capture = capture_region(self.hwnd, self.selection, self.force_print_window_checkbox.isChecked()) + capture = capture_region(self.hwnd, + self.settings_dict["capture_region"], + self.settings_dict["force_print_window"]) return None if capture is None else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) def __reset_if_should(self, capture: Optional[cv2.ndarray]): @@ -833,15 +799,15 @@ def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None): if self.split_image.bytes is not None: set_ui_image(self.current_split_image, self.split_image.bytes, True) - self.current_split_image_file_label.setText(self.split_image.filename) - self.current_similarity_threshold_number_label.setText(f"{self.split_image.get_similarity_threshold(self):.2f}") + self.current_image_file_label.setText(self.split_image.filename) + self.table_current_image_threshold_label.setText(f"{self.split_image.get_similarity_threshold(self):.2f}") # Set Image Loop # if specific_image and specific_image.image_type == ImageType.START: - self.image_loop_label.setText("Image Loop: N/A") + self.image_loop_value_label.setText("N/A") else: loop_tuple = self.split_images_and_loop_number[self.split_image_number] - self.image_loop_label.setText(f"Image Loop: {loop_tuple[1]}/{loop_tuple[0].loops}") + self.image_loop_value_label.setText(f"{loop_tuple[1]}/{loop_tuple[0].loops}") self.highest_similarity = 0.0 # need to set split below threshold to false each time an image updates. @@ -894,6 +860,10 @@ def exit_program(): exit_program() +def seconds_remaining_text(seconds: float): + return f"{seconds:.1f} second{'' if 0 < seconds <= 1 else 's'} remaining" + + def main(): # Call to QApplication outside the try-except so we can show error messages app = QApplication(sys.argv) diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index 126f2abe..9eeaf8a9 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -46,7 +46,7 @@ def get_pause_time(self, default: Union[AutoSplit, float]): """ default_value: float = default \ if isinstance(default, float) \ - else default.pause_spinbox.value() + else default.settings_dict["default_pause_time"] return default_value if self.__pause_time is None else self.__pause_time def get_similarity_threshold(self, default: Union[AutoSplit, float]): @@ -55,7 +55,7 @@ def get_similarity_threshold(self, default: Union[AutoSplit, float]): """ default_value: float = default \ if isinstance(default, float) \ - else default.similarity_threshold_spinbox.value() + else default.settings_dict["default_similarity_threshold"] return default_value if self.__similarity_threshold is None else self.__similarity_threshold def __init__(self, path: str): @@ -109,7 +109,7 @@ def compare_with_capture( """ comparison_method: int = comparison \ if isinstance(comparison, int) \ - else comparison.comparison_method_combobox.currentIndex() + else comparison.settings_dict["default_comparison_method"] if self.bytes is None or capture is None: return 0.0 diff --git a/src/capture_windows.py b/src/capture_windows.py index c991cc38..c6401efa 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -20,17 +20,15 @@ @dataclass -class Rect(ctypes.wintypes.RECT): - """ - Overrides `ctypes.wintypes.RECT` to replace c_long with int for math operators - """ - left: int = -1 # type: ignore - top: int = -1 # type: ignore - right: int = -1 # type: ignore - bottom: int = -1 # type: ignore +class Region(): + def __init__(self, x: int, y: int, width: int, height: int): + self.x = x + self.y = y + self.width = width + self.height = height -def capture_region(hwnd: int, selection: Rect, print_window: bool): +def capture_region(hwnd: int, selection: Region, print_window: bool): """ Captures an image of the region for a window matching the given parameters of the bounding box @@ -40,8 +38,6 @@ def capture_region(hwnd: int, selection: Rect, print_window: bool): @return: The image of the region in the window in BGRA format """ - width: int = selection.right - selection.left - height: int = selection.bottom - selection.top # If the window closes while it's being manipulated, it could cause a crash try: window_dc: int = win32gui.GetWindowDC(hwnd) @@ -54,16 +50,17 @@ def capture_region(hwnd: int, selection: Rect, print_window: bool): compatible_dc = cast(PyCDC, dc_object.CreateCompatibleDC()) bitmap: PyCBitmap = win32ui.CreateBitmap() - bitmap.CreateCompatibleBitmap(dc_object, width, height) + bitmap.CreateCompatibleBitmap(dc_object, selection.width, selection.height) compatible_dc.SelectObject(bitmap) - compatible_dc.BitBlt((0, 0), (width, height), dc_object, (selection.left, selection.top), win32con.SRCCOPY) + compatible_dc.BitBlt((0, 0), (selection.width, selection.height), dc_object, + (selection.x, selection.y), win32con.SRCCOPY) # https://github.com/kaluluosi/pywin32-stubs/issues/5 # pylint: disable=no-member except (win32ui.error, pywintypes.error): # type: ignore return None image = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") - image.shape = (height, width, 4) + image.shape = (selection.height, selection.width, 4) try: dc_object.DeleteDC() diff --git a/src/error_messages.py b/src/error_messages.py index 5d8bd382..cb437f36 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -31,12 +31,12 @@ def split_image_directory_empty(): def image_type(image: str): set_text_message(f'"{image}" is not a valid image file, does not exist, ' - "or the full image file path contains a special character.") + + "or the full image file path contains a special character.") def region(): set_text_message("No region is selected or the Capture Region window is not open. " - "Select a region or load settings while the Capture Region window is open.") + + "Select a region or load settings while the Capture Region window is open.") def split_hotkey(): @@ -45,7 +45,7 @@ def split_hotkey(): def pause_hotkey(): set_text_message("Your split image folder contains an image filename with a pause flag {p}, " - "but no pause hotkey is set.") + + "but no pause hotkey is set.") def align_region_image_type(): @@ -82,7 +82,7 @@ def no_settings_file_on_open(): def too_many_settings_files_on_open(): set_text_message("Too many settings files found. " - "Only one can be loaded on open if placed in the same folder as AutoSplit.exe") + + "Only one can be loaded on open if placed in the same folder as AutoSplit.exe") def check_for_updates(): @@ -91,7 +91,7 @@ def check_for_updates(): def load_start_image(): set_text_message("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. " - "Please set these hotkeys, and then click the Reload Start Image button.") + + "Please set these hotkeys, and then click the Reload Start Image button.") def stdin_lost(): diff --git a/src/hotkeys.py b/src/hotkeys.py index 80701127..9fcdf23c 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,14 +1,15 @@ from __future__ import annotations from typing import Literal, Optional, TYPE_CHECKING, Union from collections.abc import Callable + if TYPE_CHECKING: from AutoSplit import AutoSplit import threading -from keyboard._keyboard_event import KeyboardEvent, KEY_DOWN + import keyboard # https://github.com/boppreh/keyboard/issues/505 import pyautogui # https://github.com/asweigart/pyautogui/issues/645 -# While not usually recommended, we don'thread manipulate the mouse, and we don'thread want the extra delay +# While not usually recommended, we don't manipulate the mouse, and we don't want the extra delay pyautogui.FAILSAFE = False SET_HOTKEY_TEXT = "Set Hotkey" @@ -18,27 +19,29 @@ # do all of these after you click "Set Hotkey" but before you type the hotkey. def before_setting_hotkey(autosplit: AutoSplit): autosplit.start_auto_splitter_button.setEnabled(False) - autosplit.set_split_hotkey_button.setEnabled(False) - autosplit.set_reset_hotkey_button.setEnabled(False) - autosplit.set_skip_split_hotkey_button.setEnabled(False) - autosplit.set_undo_split_hotkey_button.setEnabled(False) - autosplit.set_pause_hotkey_button.setEnabled(False) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.set_split_hotkey_button.setEnabled(False) + autosplit.SettingsWidget.set_reset_hotkey_button.setEnabled(False) + autosplit.SettingsWidget.set_skip_split_hotkey_button.setEnabled(False) + autosplit.SettingsWidget.set_undo_split_hotkey_button.setEnabled(False) + autosplit.SettingsWidget.set_pause_hotkey_button.setEnabled(False) # do all of these things after you set a hotkey. a signal connects to this because # changing GUI stuff in the hotkey thread was causing problems def after_setting_hotkey(autosplit: AutoSplit): - autosplit.set_split_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.set_reset_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.set_skip_split_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.set_undo_split_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.set_pause_hotkey_button.setText(SET_HOTKEY_TEXT) autosplit.start_auto_splitter_button.setEnabled(True) - autosplit.set_split_hotkey_button.setEnabled(True) - autosplit.set_reset_hotkey_button.setEnabled(True) - autosplit.set_skip_split_hotkey_button.setEnabled(True) - autosplit.set_undo_split_hotkey_button.setEnabled(True) - autosplit.set_pause_hotkey_button.setEnabled(True) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.set_split_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.SettingsWidget.set_reset_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.SettingsWidget.set_skip_split_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.SettingsWidget.set_undo_split_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.SettingsWidget.set_pause_hotkey_button.setText(SET_HOTKEY_TEXT) + autosplit.SettingsWidget.set_split_hotkey_button.setEnabled(True) + autosplit.SettingsWidget.set_reset_hotkey_button.setEnabled(True) + autosplit.SettingsWidget.set_skip_split_hotkey_button.setEnabled(True) + autosplit.SettingsWidget.set_undo_split_hotkey_button.setEnabled(True) + autosplit.SettingsWidget.set_pause_hotkey_button.setEnabled(True) def is_digit(key: Optional[str]): @@ -57,15 +60,15 @@ def send_command(autosplit: AutoSplit, command: Commands): if autosplit.is_auto_controlled: print(command, flush=True) elif command in {"split", "start"}: - _send_hotkey(autosplit.split_input.text()) + _send_hotkey(autosplit.settings_dict["split_hotkey"]) elif command == "pause": - _send_hotkey(autosplit.pause_input.text()) + _send_hotkey(autosplit.settings_dict["pause_hotkey"]) elif command == "reset": - _send_hotkey(autosplit.reset_input.text()) + _send_hotkey(autosplit.settings_dict["reset_hotkey"]) elif command == "skip": - _send_hotkey(autosplit.skip_split_input.text()) + _send_hotkey(autosplit.settings_dict["skip_split_hotkey"]) elif command == "undo": - _send_hotkey(autosplit.undo_split_input.text()) + _send_hotkey(autosplit.settings_dict["undo_split_hotkey"]) else: raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") @@ -97,11 +100,11 @@ def _send_hotkey(key_or_scan_code: Union[int, str]): pyautogui.hotkey(key_or_scan_code.replace(" ", "")) -def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: +def __validate_keypad(expected_key: str, keyboard_event: keyboard.KeyboardEvent) -> bool: # Prevent "(keypad)delete", "(keypad)./decimal" and "del" from triggering each other # as well as "." and "(keypad)./decimal" if keyboard_event.scan_code in {83, 52}: - # TODO: "del" won'thread work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) + # TODO: "del" won't work with "(keypad)delete" if localized in non-english (ie: "suppr" in french) return expected_key == keyboard_event.name # Prevent "action keys" from triggering "keypad keys" if keyboard_event.name and is_digit(keyboard_event.name[-1]): @@ -122,34 +125,35 @@ def __validate_keypad(expected_key: str, keyboard_event: KeyboardEvent) -> bool: # We're doing the check here instead of saving the key code because it'll # cause issues with save files and the non-keypad shared keys are localized -# while the keypad ones aren'thread. +# while the keypad ones aren't. -# Since we reuse the key string we set to send to LiveSplit, we can'thread use fake names like "num home". +# Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". # We're also trying to achieve the same hotkey behaviour as LiveSplit has. -def _hotkey_action(keyboard_event: KeyboardEvent, key_name: str, action: Callable[[], None]): - if keyboard_event.event_type == KEY_DOWN and __validate_keypad(key_name, keyboard_event): +def _hotkey_action(keyboard_event: keyboard.KeyboardEvent, key_name: str, action: Callable[[], None]): + if keyboard_event.event_type == keyboard.KEY_DOWN and __validate_keypad(key_name, keyboard_event): action() -def __get_key_name(keyboard_event: KeyboardEvent): +def __get_key_name(keyboard_event: keyboard.KeyboardEvent): return f"num {keyboard_event.name}" \ if keyboard_event.is_keypad and is_digit(keyboard_event.name) \ else str(keyboard_event.name) def __is_key_already_set(autosplit: AutoSplit, key_name: str): - return key_name in (autosplit.split_input.text(), - autosplit.reset_input.text(), - autosplit.skip_split_input.text(), - autosplit.undo_split_input.text(), - autosplit.pause_input.text()) + return key_name in (autosplit.settings_dict["split_hotkey"], + autosplit.settings_dict["reset_hotkey"], + autosplit.settings_dict["skip_split_hotkey"], + autosplit.settings_dict["undo_split_hotkey"], + autosplit.settings_dict["pause_hotkey"]) # --------------------HOTKEYS-------------------------- # TODO: Refactor to de-duplicate all this code, including settings_file.py # Going to comment on one func, and others will be similar. def set_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - autosplit.set_split_hotkey_button.setText(PRESS_A_KEY_TEXT) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.set_split_hotkey_button.setText(PRESS_A_KEY_TEXT) # disable some buttons before_setting_hotkey(autosplit) @@ -188,7 +192,9 @@ def callback(): autosplit.split_hotkey = keyboard.hook_key( key_name, lambda error: _hotkey_action(error, key_name, autosplit.start_auto_splitter)) - autosplit.split_input.setText(key_name) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.split_input.setText(key_name) + autosplit.settings_dict["split_hotkey"] = key_name autosplit.after_setting_hotkey_signal.emit() # try to remove the previously set hotkey if there is one. @@ -198,7 +204,8 @@ def callback(): def set_reset_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - autosplit.set_reset_hotkey_button.setText(PRESS_A_KEY_TEXT) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.set_reset_hotkey_button.setText(PRESS_A_KEY_TEXT) before_setting_hotkey(autosplit) def callback(): @@ -215,7 +222,9 @@ def callback(): autosplit.reset_hotkey = keyboard.hook_key( key_name, lambda error: _hotkey_action(error, key_name, autosplit.reset_signal.emit)) - autosplit.reset_input.setText(key_name) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.reset_input.setText(key_name) + autosplit.settings_dict["reset_hotkey"] = key_name autosplit.after_setting_hotkey_signal.emit() _unhook(autosplit.reset_hotkey) @@ -224,7 +233,8 @@ def callback(): def set_skip_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - autosplit.set_skip_split_hotkey_button.setText(PRESS_A_KEY_TEXT) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.set_skip_split_hotkey_button.setText(PRESS_A_KEY_TEXT) before_setting_hotkey(autosplit) def callback(): @@ -241,7 +251,9 @@ def callback(): autosplit.skip_split_hotkey = keyboard.hook_key( key_name, lambda error: _hotkey_action(error, key_name, autosplit.skip_split_signal.emit)) - autosplit.skip_split_input.setText(key_name) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.skip_split_input.setText(key_name) + autosplit.settings_dict["skip_split_hotkey"] = key_name autosplit.after_setting_hotkey_signal.emit() _unhook(autosplit.skip_split_hotkey) @@ -250,7 +262,8 @@ def callback(): def set_undo_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - autosplit.set_undo_split_hotkey_button.setText(PRESS_A_KEY_TEXT) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.set_undo_split_hotkey_button.setText(PRESS_A_KEY_TEXT) before_setting_hotkey(autosplit) def callback(): @@ -267,7 +280,9 @@ def callback(): autosplit.undo_split_hotkey = keyboard.hook_key( key_name, lambda error: _hotkey_action(error, key_name, autosplit.undo_split_signal.emit)) - autosplit.undo_split_input.setText(key_name) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.undo_split_input.setText(key_name) + autosplit.settings_dict["undo_split_hotkey"] = key_name autosplit.after_setting_hotkey_signal.emit() _unhook(autosplit.undo_split_hotkey) @@ -276,7 +291,8 @@ def callback(): def set_pause_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - autosplit.set_pause_hotkey_button.setText(PRESS_A_KEY_TEXT) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.set_pause_hotkey_button.setText(PRESS_A_KEY_TEXT) before_setting_hotkey(autosplit) def callback(): @@ -293,7 +309,9 @@ def callback(): autosplit.pause_hotkey = keyboard.hook_key( key_name, lambda error: _hotkey_action(error, key_name, autosplit.pause_signal.emit)) - autosplit.pause_input.setText(key_name) + if autosplit.SettingsWidget: + autosplit.SettingsWidget.pause_input.setText(key_name) + autosplit.settings_dict["pause_hotkey"] = key_name autosplit.after_setting_hotkey_signal.emit() _unhook(autosplit.pause_hotkey) diff --git a/src/menu_bar.py b/src/menu_bar.py index 66cb9c85..d90c1e8c 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -1,5 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any + if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -14,7 +15,9 @@ import error_messages import settings_file as settings -from gen import about, design, resources_rc, update_checker # noqa: F401 +from capture_windows import Region +from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa: F401 +from hotkeys import set_split_hotkey, set_reset_hotkey, set_skip_split_hotkey, set_undo_split_hotkey, set_pause_hotkey # AutoSplit Version number VERSION = "1.6.1" @@ -82,7 +85,7 @@ def __init__(self, autosplit: AutoSplit, check_on_open: bool): def run(self): try: response = requests.get("https://api.github.com/repos/Toufool/Auto-Split/releases/latest") - latest_version = response.json()["name"].split("v")[1] + latest_version = str(response.json()["name"]).split("v")[1] self.autosplit.update_checker_widget_signal.emit(latest_version, self.check_on_open) except (RequestException, KeyError, JSONDecodeError): if not self.check_on_open: @@ -92,3 +95,107 @@ def run(self): def check_for_updates(autosplit: AutoSplit, check_on_open: bool = False): autosplit.CheckForUpdatesThread = __CheckForUpdatesThread(autosplit, check_on_open) autosplit.CheckForUpdatesThread.start() + + +class __SettingsWidget(QtWidgets.QDialog, settings_ui.Ui_DialogSettings): + def __init__(self, autosplit: AutoSplit): + super().__init__() + self.setupUi(self) + self.autosplit = autosplit + + def set_value(key: str, value: Any): + autosplit.settings_dict[key] = value + +# region Set initial values + # Hotkeys + self.split_input.setText(autosplit.settings_dict["split_hotkey"]) + self.reset_input.setText(autosplit.settings_dict["reset_hotkey"]) + self.undo_split_input.setText(autosplit.settings_dict["undo_split_hotkey"]) + self.skip_split_input.setText(autosplit.settings_dict["skip_split_hotkey"]) + self.pause_input.setText(autosplit.settings_dict["pause_hotkey"]) + + # Capture Settings + self.fps_limit_spinbox.setValue(autosplit.settings_dict["fps_limit"]) + self.live_capture_region_checkbox.setChecked(autosplit.settings_dict["live_capture_region"]) + self.force_print_window_checkbox.setChecked(autosplit.settings_dict["force_print_window"]) + + # Image Settings + self.default_comparison_method.setCurrentIndex(autosplit.settings_dict["default_comparison_method"]) + self.default_similarity_threshold_spinbox.setValue(autosplit.settings_dict["default_similarity_threshold"]) + self.default_delay_time_spinbox.setValue(autosplit.settings_dict["default_delay_time"]) + self.default_pause_time_spinbox.setValue(autosplit.settings_dict["default_pause_time"]) + self.loop_splits_checkbox.setChecked(autosplit.settings_dict["loop_splits"]) +# endregion +# region Binding + # Hotkeys + self.set_split_hotkey_button.clicked.connect(lambda: set_split_hotkey(self.autosplit)) + self.set_reset_hotkey_button.clicked.connect(lambda: set_reset_hotkey(self.autosplit)) + self.set_skip_split_hotkey_button.clicked.connect(lambda: set_skip_split_hotkey(self.autosplit)) + self.set_undo_split_hotkey_button.clicked.connect(lambda: set_undo_split_hotkey(self.autosplit)) + self.set_pause_hotkey_button.clicked.connect(lambda: set_pause_hotkey(self.autosplit)) + + # Capture Settings + self.fps_limit_spinbox.valueChanged.connect(lambda: set_value( + "fps_limit", + self.fps_limit_spinbox.value())) + self.live_capture_region_checkbox.stateChanged.connect(lambda: set_value( + "live_capture_region", + self.live_capture_region_checkbox.isChecked())) + self.force_print_window_checkbox.stateChanged.connect(lambda: set_value( + "force_print_window", + self.force_print_window_checkbox.isChecked())) + + # Image Settings + self.default_comparison_method.currentIndexChanged.connect(lambda: set_value( + "default_comparison_method", + self.default_comparison_method.currentIndex())) + self.default_similarity_threshold_spinbox.valueChanged.connect(lambda: set_value( + "default_similarity_threshold", + self.default_similarity_threshold_spinbox.value())) + self.default_delay_time_spinbox.valueChanged.connect(lambda: set_value( + "default_delay_time", + self.default_delay_time_spinbox.value())) + self.default_pause_time_spinbox.valueChanged.connect(lambda: set_value( + "default_pause_time", + self.default_pause_time_spinbox.value())) + self.loop_splits_checkbox.stateChanged.connect(lambda: set_value( + "loop_splits", + self.loop_splits_checkbox.isChecked())) +# endregion + + self.show() + + +def open_settings(autosplit: AutoSplit): + autosplit.SettingsWidget = __SettingsWidget(autosplit) + + +def get_default_settings_from_ui(autosplit: AutoSplit): + temp_dialog = QtWidgets.QDialog() + default_settings_dialog = settings_ui.Ui_DialogSettings() + default_settings_dialog.setupUi(temp_dialog) + default_settings: settings.SettingsDict = { + "split_hotkey": default_settings_dialog.split_input.text(), + "reset_hotkey": default_settings_dialog.reset_input.text(), + "undo_split_hotkey": default_settings_dialog.undo_split_input.text(), + "skip_split_hotkey": default_settings_dialog.skip_split_input.text(), + "pause_hotkey": default_settings_dialog.pause_input.text(), + "fps_limit": default_settings_dialog.fps_limit_spinbox.value(), + "live_capture_region": default_settings_dialog.live_capture_region_checkbox.isChecked(), + "force_print_window": default_settings_dialog.force_print_window_checkbox.isChecked(), + "default_comparison_method": default_settings_dialog.default_comparison_method.currentIndex(), + "default_similarity_threshold": default_settings_dialog.default_similarity_threshold_spinbox.value(), + "default_delay_time": default_settings_dialog.default_delay_time_spinbox.value(), + "default_pause_time": default_settings_dialog.default_pause_time_spinbox.value(), + "loop_splits": default_settings_dialog.loop_splits_checkbox.isChecked(), + + "split_image_directory": autosplit.split_image_folder_input.text(), + "captured_window_title": "", + "capture_region": Region( + autosplit.x_spinbox.value(), + autosplit.y_spinbox.value(), + autosplit.width_spinbox.value(), + autosplit.height_spinbox.value()) + } + del temp_dialog + return default_settings diff --git a/src/screen_region.py b/src/screen_region.py index 03bbf85e..2342dd8d 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -45,7 +45,7 @@ def select_region(autosplit: AutoSplit): error_messages.region() return autosplit.hwnd = hwnd - autosplit.window_text = window_text + autosplit.settings_dict["captured_window_title"] = window_text offset_x, offset_y, *_ = win32gui.GetWindowRect(autosplit.hwnd) __set_region_values(autosplit, @@ -76,7 +76,7 @@ def select_window(autosplit: AutoSplit): error_messages.region() return autosplit.hwnd = hwnd - autosplit.window_text = window_text + autosplit.settings_dict["captured_window_title"] = window_text # Getting window bounds # On Windows there is a shadow around the windows that we need to account for @@ -134,8 +134,8 @@ def align_region(autosplit: AutoSplit): # subregion being searched for to align the image. capture = capture_windows.capture_region( autosplit.hwnd, - autosplit.selection, - autosplit.force_print_window_checkbox.isChecked()) + autosplit.settings_dict["capture_region"], + autosplit.settings_dict["force_print_window"]) if capture is None: error_messages.region() @@ -151,25 +151,23 @@ def align_region(autosplit: AutoSplit): # The new region can be defined by using the min_loc point and the best_height and best_width of the template. __set_region_values(autosplit, - left=autosplit.selection.left + best_loc[0], - top=autosplit.selection.top + best_loc[1], + left=autosplit.settings_dict["capture_region"].x + best_loc[0], + top=autosplit.settings_dict["capture_region"].y + best_loc[1], width=best_width, height=best_height) def __set_region_values(autosplit: AutoSplit, left: int, top: int, width: int, height: int): - autosplit.selection.left = left - autosplit.selection.top = top - autosplit.selection.right = left + width - autosplit.selection.bottom = top + height + autosplit.settings_dict["capture_region"].x = left + autosplit.settings_dict["capture_region"].y = top + autosplit.settings_dict["capture_region"].width = width + autosplit.settings_dict["capture_region"].height = height autosplit.x_spinbox.setValue(left) autosplit.y_spinbox.setValue(top) autosplit.width_spinbox.setValue(width) autosplit.height_spinbox.setValue(height) - autosplit.check_live_image() - def __test_alignment(capture: cv2.ndarray, template: cv2.ndarray): # Obtain the best matching point for the template within the @@ -213,11 +211,11 @@ def __test_alignment(capture: cv2.ndarray, template: cv2.ndarray): def validate_before_parsing(autosplit: AutoSplit, show_error: bool = True, check_empty_directory: bool = True): error = None - if not autosplit.split_image_directory: + if not autosplit.settings_dict["split_image_directory"]: error = error_messages.split_image_directory - elif not os.path.isdir(autosplit.split_image_directory): + elif not os.path.isdir(autosplit.settings_dict["split_image_directory"]): error = error_messages.split_image_directory_not_found - elif check_empty_directory and not os.listdir(autosplit.split_image_directory): + elif check_empty_directory and not os.listdir(autosplit.settings_dict["split_image_directory"]): error = error_messages.split_image_directory_empty elif autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): error = error_messages.region diff --git a/src/settings_file.py b/src/settings_file.py index c0315c23..cc6fec44 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,5 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, TypedDict + if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -12,6 +13,7 @@ from PyQt6 import QtCore, QtWidgets import error_messages +from capture_windows import Region from gen import design from hotkeys import set_pause_hotkey, set_reset_hotkey, set_skip_split_hotkey, set_split_hotkey, set_undo_split_hotkey @@ -21,6 +23,26 @@ auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) +class SettingsDict(TypedDict): + split_hotkey: str + reset_hotkey: str + undo_split_hotkey: str + skip_split_hotkey: str + pause_hotkey: str + fps_limit: int + live_capture_region: bool + force_print_window: bool + default_comparison_method: int + default_similarity_threshold: float + default_delay_time: int + default_pause_time: float + loop_splits: bool + + split_image_directory: str + captured_window_title: str + capture_region: Region + + class RestrictedUnpickler(pickle.Unpickler): def find_class(self, module: str, name: str): @@ -29,27 +51,27 @@ def find_class(self, module: str, name: str): def get_save_settings_values(autosplit: AutoSplit): return [ - autosplit.split_image_directory, - autosplit.similarity_threshold_spinbox.value(), - autosplit.comparison_method_combobox.currentIndex(), - autosplit.pause_spinbox.value(), - int(autosplit.fps_limit_spinbox.value()), - autosplit.split_input.text(), - autosplit.reset_input.text(), - autosplit.skip_split_input.text(), - autosplit.undo_split_input.text(), - autosplit.pause_input.text(), - autosplit.x_spinbox.value(), - autosplit.y_spinbox.value(), - autosplit.width_spinbox.value(), - autosplit.height_spinbox.value(), - autosplit.window_text, + autosplit.settings_dict["split_image_directory"], + autosplit.settings_dict["default_similarity_threshold"], + autosplit.settings_dict["default_comparison_method"], + autosplit.settings_dict["default_pause_time"], + autosplit.settings_dict["fps_limit"], + autosplit.settings_dict["split_hotkey"], + autosplit.settings_dict["reset_hotkey"], + autosplit.settings_dict["skip_split_hotkey"], + autosplit.settings_dict["undo_split_hotkey"], + autosplit.settings_dict["pause_hotkey"], + autosplit.settings_dict["capture_region"].x, + autosplit.settings_dict["capture_region"].y, + autosplit.settings_dict["capture_region"].width, + autosplit.settings_dict["capture_region"].height, + autosplit.settings_dict["captured_window_title"], 0, 0, 1, - int(autosplit.loop_checkbox.isChecked()), - int(autosplit.auto_start_on_reset_checkbox.isChecked()), - autosplit.force_print_window_checkbox.isChecked()] + autosplit.settings_dict["loop_splits"], + 0, + autosplit.settings_dict["force_print_window"]] def have_settings_changed(autosplit: AutoSplit): @@ -123,12 +145,12 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str autosplit.show_error_signal.emit(error_messages.invalid_settings) return False - autosplit.split_image_directory = settings[0] + autosplit.settings_dict["split_image_directory"] = settings[0] autosplit.split_image_folder_input.setText(settings[0]) - autosplit.similarity_threshold_spinbox.setValue(settings[1]) - autosplit.comparison_method_combobox.setCurrentIndex(settings[2]) - autosplit.pause_spinbox.setValue(settings[3]) - autosplit.fps_limit_spinbox.setValue(settings[4]) + autosplit.settings_dict["default_similarity_threshold"] = settings[1] + autosplit.settings_dict["default_comparison_method"] = settings[2] + autosplit.settings_dict["default_pause_time"] = settings[3] + autosplit.settings_dict["fps_limit"] = settings[4] keyboard.unhook_all() if not autosplit.is_auto_controlled: set_split_hotkey(autosplit, settings[5]) @@ -140,20 +162,19 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str autosplit.y_spinbox.setValue(settings[11]) autosplit.width_spinbox.setValue(settings[12]) autosplit.height_spinbox.setValue(settings[13]) - autosplit.window_text = settings[14] - autosplit.loop_checkbox.setChecked(bool(settings[18])) - autosplit.auto_start_on_reset_checkbox.setChecked(bool(settings[19])) - autosplit.force_print_window_checkbox.setChecked(settings[20]) + autosplit.settings_dict["captured_window_title"] = settings[14] + autosplit.settings_dict["loop_splits"] = settings[18] + autosplit.settings_dict["force_print_window"] = settings[20] - if autosplit.window_text: + if autosplit.settings_dict["captured_window_title"]: # https://github.com/kaluluosi/pywin32-stubs/issues/7 - hwnd = win32gui.FindWindow(None, autosplit.window_text) # type: ignore + hwnd = win32gui.FindWindow(None, autosplit.settings_dict["captured_window_title"]) # type: ignore if hwnd: autosplit.hwnd = hwnd else: autosplit.live_image.setText("Reload settings after opening" - f'\n"{autosplit.window_text}"' - "\nto automatically load Live Capture") + + f'\n"{autosplit.settings_dict["captured_window_title"]}"' + + "\nto automatically load Capture Region") return True @@ -170,7 +191,6 @@ def load_settings( return autosplit.last_successfully_loaded_settings_file_path = load_settings_file_path - autosplit.check_live_image() autosplit.load_start_image() diff --git a/src/split_parser.py b/src/split_parser.py index 27862ed9..6e4a584f 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -153,9 +153,9 @@ def __pop_image_type(split_image: list[AutoSplitImage], image_type: ImageType): def parse_and_validate_images(autosplit: AutoSplit): # Get split images all_images = [ - AutoSplitImage(os.path.join(autosplit.split_image_directory, image_name)) + AutoSplitImage(os.path.join(autosplit.settings_dict["split_image_directory"], image_name)) for image_name - in os.listdir(autosplit.split_image_directory)] + in os.listdir(autosplit.settings_dict["split_image_directory"])] # Find non-split images and then remove them from the list autosplit.start_image = __pop_image_type(all_images, ImageType.START) @@ -171,7 +171,7 @@ def parse_and_validate_images(autosplit: AutoSplit): return False # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. - if (not autosplit.pause_input.text() + if (not autosplit.settings_dict["pause_hotkey"] and image.check_flag(PAUSE_FLAG) and not autosplit.is_auto_controlled): autosplit.gui_changes_on_reset() @@ -181,7 +181,7 @@ def parse_and_validate_images(autosplit: AutoSplit): # Check that there's only one reset image if image.image_type == ImageType.RESET: # If there is no reset hotkey set but a reset image is present, and is not auto controlled, throw an error. - if not autosplit.reset_input.text() and not autosplit.is_auto_controlled: + if not autosplit.settings_dict["reset_hotkey"] and not autosplit.is_auto_controlled: autosplit.gui_changes_on_reset() error_messages.reset_hotkey() return False diff --git a/typings/keyboard/__init__.pyi b/typings/keyboard/__init__.pyi index 18f68af6..86bd06ec 100644 --- a/typings/keyboard/__init__.pyi +++ b/typings/keyboard/__init__.pyi @@ -3,6 +3,7 @@ This type stub file was generated by pyright. """ from __future__ import print_function as _print_function import typing +import collections.abc import re as _re import itertools as _itertools @@ -13,6 +14,7 @@ from threading import Lock as _Lock, Thread as _Thread from ._keyboard_event import KEY_DOWN, KEY_UP, KeyboardEvent from ._generic import GenericListener as _GenericListener from ._canonical_names import all_modifiers, normalize_name, sided_modifiers +__all__ = ["all_modifiers", "normalize_name", "sided_modifiers", "KEY_DOWN", "KEY_UP", "KeyboardEvent"] try: # Python2 @@ -103,12 +105,12 @@ key events. In this case `keyboard` will be unable to report events. - This program makes no attempt to hide itself, so don't use it for keyloggers or online gaming bots. Be responsible. """ -Callback = typing.Callable[[KeyboardEvent], None] +Callback = collections.abc.Callable[[KeyboardEvent], None] version: str -_is_str = typing.Callable[[typing.Any], bool] -_is_number = typing.Callable[[typing.Any], bool] -_is_list: typing.Callable[[typing.Any], bool] +_is_str = collections.abc.Callable[[typing.Any], bool] +_is_number = collections.abc.Callable[[typing.Any], bool] +_is_list: collections.abc.Callable[[typing.Any], bool] class _State: @@ -120,10 +122,6 @@ class _Event(_UninterruptibleEvent): ... -if _platform.system() == 'Windows': - ... -else: - ... _modifier_scan_codes: set @@ -197,14 +195,16 @@ class _KeyboardListener(_GenericListener): _listener: _KeyboardListener -def key_to_scan_codes(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], error_if_missing: bool = ...) -> typing.List[int]: +def key_to_scan_codes(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], + error_if_missing: bool = ...) -> typing.List[int]: """ Returns a list of scan codes associated with this key (name or scan code). """ ... -def parse_hotkey(hotkey) -> tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...]]] | tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...], ...]] | tuple[Unknown, ...]: +def parse_hotkey(hotkey) -> tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...]] + ] | tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...], ...]] | tuple[Unknown, ...]: """ Parses a user-provided hotkey into nested tuples representing the parsed structure, with the bottom values being lists of scan codes. @@ -274,10 +274,10 @@ def call_later(fn, args=..., delay=...) -> None: ... -_hooks: dict[typing.Callable, Unknown] +_hooks: dict[collections.abc.Callable, Unknown] -def hook(callback: Callback, suppress=..., on_remove=...) -> typing.Callable[[], None]: +def hook(callback: Callback, suppress=..., on_remove=...) -> collections.abc.Callable[[], None]: """ Installs a global listener on all available keyboards, invoking `callback` each time a key is pressed or released. @@ -296,21 +296,22 @@ def hook(callback: Callback, suppress=..., on_remove=...) -> typing.Callable[[], ... -def on_press(callback: Callback, suppress=...) -> typing.Callable[[], None]: +def on_press(callback: Callback, suppress=...) -> collections.abc.Callable[[], None]: """ Invokes `callback` for every KEY_DOWN event. For details see `hook`. """ ... -def on_release(callback: Callback, suppress=...) -> typing.Callable[[], None]: +def on_release(callback: Callback, suppress=...) -> collections.abc.Callable[[], None]: """ Invokes `callback` for every KEY_UP event. For details see `hook`. """ ... -def hook_key(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], callback: Callback, suppress: bool = ...) -> typing.Callable[[], None]: +def hook_key(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], + callback: Callback, suppress: bool = ...) -> collections.abc.Callable[[], None]: """ Hooks key up and key down events for a single key. Returns the event handler created. To remove a hooked key use `unhook_key(key)` or @@ -322,21 +323,21 @@ def hook_key(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], c ... -def on_press_key(key, callback: Callback, suppress=...) -> typing.Callable[[], None]: +def on_press_key(key, callback: Callback, suppress=...) -> collections.abc.Callable[[], None]: """ Invokes `callback` for KEY_DOWN event related to the given key. For details see `hook`. """ ... -def on_release_key(key, callback: Callback, suppress=...) -> typing.Callable[[], None]: +def on_release_key(key, callback: Callback, suppress=...) -> collections.abc.Callable[[], None]: """ Invokes `callback` for KEY_UP event related to the given key. For details see `hook`. """ ... -def unhook(remove: typing.Callable[[], None]) -> None: +def unhook(remove: collections.abc.Callable[[], None]) -> None: """ Removes a previously added hook, either by callback or by the return value of `hook`. @@ -355,7 +356,7 @@ def unhook_all() -> None: ... -def block_key(key) -> typing.Callable[[], None]: +def block_key(key) -> collections.abc.Callable[[], None]: """ Suppresses all key events of the given key, regardless of modifiers. """ @@ -365,7 +366,7 @@ def block_key(key) -> typing.Callable[[], None]: unblock_key = unhook_key -def remap_key(src, dst) -> typing.Callable[[], None]: +def remap_key(src, dst) -> collections.abc.Callable[[], None]: """ Whenever the key `src` is pressed or released, regardless of modifiers, press or release the hotkey `dst` instead. @@ -388,7 +389,8 @@ def parse_hotkey_combinations(hotkey) -> tuple[tuple[tuple[Unknown, ...], ...], _hotkeys: dict -def add_hotkey(hotkey, callback: Callback, args=..., suppress=..., timeout=..., trigger_on_release=...) -> typing.Callable[[], None]: +def add_hotkey(hotkey, callback: collections.abc.Callable, args=..., suppress=..., timeout=..., + trigger_on_release=...) -> collections.abc.Callable[[], None]: """ Invokes a callback every time a hotkey is pressed. The hotkey must be in the format `ctrl+shift+a, s`. This would trigger when the user holds @@ -453,7 +455,7 @@ def unhook_all_hotkeys() -> None: unregister_all_hotkeys = remove_all_hotkeys = clear_all_hotkeys = unhook_all_hotkeys -def remap_hotkey(src, dst, suppress=..., trigger_on_release=...) -> typing.Callable[[], None]: +def remap_hotkey(src, dst, suppress=..., trigger_on_release=...) -> collections.abc.Callable[[], None]: """ Whenever the hotkey `src` is pressed, suppress it and send `dst` instead. @@ -589,10 +591,11 @@ def get_typed_strings(events, allow_backspace=...): ... -_recording: typing.Optional[tuple[Unknown | _queue.Queue[Unknown], typing.Callable[[], None]]] +_recording: typing.Optional[tuple[Unknown | _queue.Queue[Unknown], collections.abc.Callable[[], None]]] -def start_recording(recorded_events_queue=...) -> tuple[Unknown | _queue.Queue[Unknown], typing.Callable[[], None]]: +def start_recording(recorded_events_queue=...) -> tuple[Unknown + | _queue.Queue[Unknown], collections.abc.Callable[[], None]]: """ Starts recording all keyboard events into a global variable, or the given queue if any. Returns the queue of events and the hooked function. @@ -639,7 +642,13 @@ replay = play _word_listeners: dict -def add_word_listener(word, callback: Callback, triggers=..., match_suffix=..., timeout=...) -> typing.Callable[[], None]: +def add_word_listener( + word, + callback: Callback, + triggers=..., + match_suffix=..., + timeout=...) -> collections.abc.Callable[[], + None]: """ Invokes a callback every time a sequence of characters is typed (e.g. 'pet') and followed by a trigger key (e.g. space). Modifiers (e.g. alt, ctrl, @@ -676,7 +685,8 @@ def remove_word_listener(word_or_handler) -> None: ... -def add_abbreviation(source_text, replacement_text, match_suffix=..., timeout=...) -> typing.Callable[[], None]: +def add_abbreviation(source_text, replacement_text, match_suffix=..., + timeout=...) -> collections.abc.Callable[[], None]: """ Registers a hotkey that replaces one typed text with another. For example diff --git a/typings/keyboard/_canonical_names.pyi b/typings/keyboard/_canonical_names.pyi new file mode 100644 index 00000000..94cb7a64 --- /dev/null +++ b/typings/keyboard/_canonical_names.pyi @@ -0,0 +1,11 @@ +""" +This type stub file was generated by pyright. +""" + +canonical_names = ... +sided_modifiers = ... +all_modifiers = ... + + +def normalize_name(name: str) -> str: + ... From 86351faeb774fdaab437fc8fd4e7082c7b32dfec Mon Sep 17 00:00:00 2001 From: Samuel T Date: Fri, 2 Sep 2022 19:58:21 -0400 Subject: [PATCH 22/54] Image comparison method and default delay time (#135) * hooked new settings window to actual values * Implemented image specific comparison method and default delay time. Closes #26 * Initial UI update for 2.0.0. Add settings window. * hooked new settings window to actual values * Better "seconds remaining" text * Undo split goes to the end of the group * Fixed images comparison method defaulting to 0 rather than none Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> --- .gitignore | 5 +++ src/AutoSplit.py | 8 ++--- src/AutoSplitImage.py | 40 +++++++++++++++++------- src/split_parser.py | 71 ++++++++++++++++++++++++++++--------------- 4 files changed, 84 insertions(+), 40 deletions(-) diff --git a/.gitignore b/.gitignore index 76ff082c..84c492a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +# Caches +.cache/ + # Byte-compiled / optimized / DLL files __pycache__/ @@ -7,6 +10,7 @@ __pycache__/ env/ build/ dist/ +*.prof # Generated **/gen/*.py !**/gen/*.pyi @@ -19,3 +23,4 @@ dist/ # Dev settings *.pkl +settings.toml diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 91d8b88f..09c99697 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -335,10 +335,10 @@ def __start_image_function(self): self.start_image_split_below_threshold = False # delay start image if needed - if self.start_image.delay > 0: + if self.start_image.get_delay_time(self) > 0: self.start_image_status_value_label.setText("delaying start...") delay_start_time = time() - start_delay = self.start_image.delay / 1000 + start_delay = self.start_image.get_delay_time(self) / 1000 while time() - delay_start_time < start_delay: delay_time_left = start_delay - (time() - delay_start_time) self.current_split_image.setText( @@ -391,7 +391,7 @@ def __take_screenshot(self): # save and open image cv2.imwrite(screenshot_path, capture) - os.startfile(screenshot_path) + os.startfile(screenshot_path) # nosec def __check_fps(self): self.fps_value_label.clear() @@ -616,7 +616,7 @@ def __auto_splitter(self): if not self.split_image.check_flag(DUMMY_FLAG): # If it's a delayed split, check if the delay has passed # Otherwise calculate the split time for the key press - split_delay = self.split_image.delay / 1000 + split_delay = self.split_image.get_delay_time(self) / 1000 if split_delay > 0 and not self.waiting_for_split_delay: split_time = round(time() + split_delay * 1000) self.waiting_for_split_delay = True diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index 9eeaf8a9..ec9c2b69 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -30,21 +30,40 @@ class AutoSplitImage(): filename: str flags: int loops: int - delay: float image_type: ImageType bytes: Optional[cv2.ndarray] = None mask: Optional[cv2.ndarray] = None # This value is internal, check for mask instead _has_transparency: bool # These values should be overriden by Defaults if None. Use getters instead + __delay_time: Optional[float] = None + __comparison_method: Optional[int] = None __pause_time: Optional[float] = None __similarity_threshold: Optional[float] = None + def get_delay_time(self, default: Union[AutoSplit, int]): + """ + Get image's delay time or fallback to the default value from spinbox + """ + default_value = default \ + if isinstance(default, int) \ + else default.settings_dict["default_delay_time"] + return default_value if self.__delay_time is None else self.__delay_time + + def __get_comparison_method(self, default: Union[AutoSplit, int]): + """ + Get image's comparison or fallback to the default value from combobox + """ + default_value = default \ + if isinstance(default, int) \ + else default.settings_dict["default_comparison_method"] + return default_value if self.__comparison_method is None else self.__comparison_method + def get_pause_time(self, default: Union[AutoSplit, float]): """ Get image's pause time or fallback to the default value from spinbox """ - default_value: float = default \ + default_value = default \ if isinstance(default, float) \ else default.settings_dict["default_pause_time"] return default_value if self.__pause_time is None else self.__pause_time @@ -53,7 +72,7 @@ def get_similarity_threshold(self, default: Union[AutoSplit, float]): """ Get image's similarity threashold or fallback to the default value from spinbox """ - default_value: float = default \ + default_value = default \ if isinstance(default, float) \ else default.settings_dict["default_similarity_threshold"] return default_value if self.__similarity_threshold is None else self.__similarity_threshold @@ -63,7 +82,8 @@ def __init__(self, path: str): self.filename = os.path.split(path)[-1].lower() self.flags = flags_from_filename(self.filename) self.loops = loop_from_filename(self.filename) - self.delay = delay_from_filename(self.filename) + self.__delay_time = delay_time_from_filename(self.filename) + self.__comparison_method = comparison_method_from_filename(self.filename) self.__pause_time = pause_from_filename(self.filename) self.__similarity_threshold = threshold_from_filename(self.filename) self.__read_image_bytes(path) @@ -101,18 +121,16 @@ def check_flag(self, flag: int): def compare_with_capture( self, - comparison: Union[AutoSplit, int], + default: Union[AutoSplit, int], capture: Optional[cv2.ndarray] ): """ - Compare image with capture using comparison method from combobox + Compare image with capture using image's comparison method. Falls back to combobox """ - comparison_method: int = comparison \ - if isinstance(comparison, int) \ - else comparison.settings_dict["default_comparison_method"] if self.bytes is None or capture is None: return 0.0 + comparison_method = self.__get_comparison_method(default) if comparison_method == 0: return compare_l2_norm(self.bytes, capture, self.mask) if comparison_method == 1: @@ -122,5 +140,5 @@ def compare_with_capture( return 0.0 -from split_parser import delay_from_filename, flags_from_filename, loop_from_filename, pause_from_filename, \ - threshold_from_filename +from split_parser import comparison_method_from_filename, delay_time_from_filename, flags_from_filename, \ + loop_from_filename, pause_from_filename, threshold_from_filename diff --git a/src/split_parser.py b/src/split_parser.py index 6e4a584f..ee96f1e9 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -1,5 +1,5 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, TypeVar if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -14,6 +14,22 @@ PAUSE_FLAG, *_] = [1 << i for i in range(31)] # 32 bits of flags +T = TypeVar("T", str, int, float) + + +def __value_from_filename( + filename: str, + delimiters: str, + default_value: T +) -> T: + if len(delimiters) != 2: + raise ValueError("delimiters parameter must contain exactly 2 characters") + try: + value_type = type(default_value) + return value_type(filename.split(delimiters[0], 1)[1].split(delimiters[1])[0]) + except (IndexError, ValueError): + return default_value + def threshold_from_filename(filename: str): """ @@ -26,13 +42,10 @@ def threshold_from_filename(filename: str): # Check to make sure there is a valid floating point number between # parentheses of the filename - try: - threshold = float(filename.split("(", 1)[1].split(")")[0]) - except (IndexError, ValueError): - return None + value = __value_from_filename(filename, "()", -1.0) # Check to make sure if it is a valid threshold - return threshold if 0.0 < threshold < 1.0 else None + return value if 0.0 < value < 1.0 else None def pause_from_filename(filename: str): @@ -46,16 +59,13 @@ def pause_from_filename(filename: str): # Check to make sure there is a valid pause time between brackets # of the filename - try: - pause = float(filename.split("[", 1)[1].split("]")[0]) - except (IndexError, ValueError): - return None + value = __value_from_filename(filename, "[]", -1.0) # Pause times should always be positive or zero - return pause if pause >= 0.0 else None + return value if value >= 0.0 else None -def delay_from_filename(filename: str): +def delay_time_from_filename(filename: str): """ Retrieve the delay time from the filename, if there is no delay time or the delay time isn't a valid number, then 0 is returned @@ -66,13 +76,10 @@ def delay_from_filename(filename: str): # Check to make sure there is a valid delay time between brackets # of the filename - try: - delay = float(filename.split("#", 1)[1].split("#")[0]) - except (IndexError, ValueError): - return 0.0 + value = __value_from_filename(filename, "##", 0) # Delay times should always be positive or zero - return delay if delay >= 0.0 else 0.0 + return value if value >= 0 else None def loop_from_filename(filename: str): @@ -86,13 +93,27 @@ def loop_from_filename(filename: str): # Check to make sure there is a valid delay time between brackets # of the filename - try: - loop = int(filename.split("@", 1)[1].split("@")[0]) - except (IndexError, ValueError): - return 1 + value = __value_from_filename(filename, "@@", 1) # Loop should always be positive - return loop if loop >= 1 else 1 + return value if value >= 1 else 1 + + +def comparison_method_from_filename(filename: str): + """ + Retrieve the number of loops from filename, if there is no loop number or the loop number isn't valid, + then 1 is returned. + + @param filename: String containing the file's name + @return: A valid loop number, if not then 1 + """ + + # Check to make sure there is a valid delay time between brackets + # of the filename + value = __value_from_filename(filename, "<>", -1) + + # Comparison method should always be positive or zero + return value if value >= 0 else None def flags_from_filename(filename: str): @@ -110,9 +131,9 @@ def flags_from_filename(filename: str): # Check to make sure there are flags between curly braces # of the filename - try: - flags_str = filename.split("{", 1)[1].split("}")[0] - except (IndexError, ValueError): + flags_str = __value_from_filename(filename, "{}", "") + + if not flags_str: return 0 flags = 0x00 From 60a1277bde6da170200501713b63d190c20c18a3 Mon Sep 17 00:00:00 2001 From: Samuel T Date: Fri, 2 Sep 2022 19:58:43 -0400 Subject: [PATCH 23/54] Support hotkeys with modifiers (#136) * hooked new settings window to actual values * Better "seconds remaining" text * Support modifiers the same way LiveSplit does. Closes #34 * Initial UI update for 2.0.0. Add settings window. * hooked new settings window to actual values * Better "seconds remaining" text * Undo split goes to the end of the group Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> --- .vscode/settings.json | 4 +- src/hotkeys.py | 325 +++++++++++++++++------------------------- src/menu_bar.py | 15 +- src/settings_file.py | 12 +- 4 files changed, 145 insertions(+), 211 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6252fc0e..05ea5a89 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,9 @@ "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll": true, - "source.fixAll.markdownlint": true, + "source.fixAll.unusedImports": false, + "source.fixAll.convertImportFormat": true, + "source.organizeImports": true, }, "files.insertFinalNewline": true, "trailing-spaces.includeEmptyLines": true, diff --git a/src/hotkeys.py b/src/hotkeys.py index 9fcdf23c..f7608b2b 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,6 +1,7 @@ from __future__ import annotations -from typing import Literal, Optional, TYPE_CHECKING, Union + from collections.abc import Callable +from typing import TYPE_CHECKING, Literal, Optional, Union if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -9,42 +10,44 @@ import keyboard # https://github.com/boppreh/keyboard/issues/505 import pyautogui # https://github.com/asweigart/pyautogui/issues/645 + # While not usually recommended, we don't manipulate the mouse, and we don't want the extra delay pyautogui.FAILSAFE = False SET_HOTKEY_TEXT = "Set Hotkey" PRESS_A_KEY_TEXT = "Press a key..." +Commands = Literal["split", "start", "pause", "reset", "skip", "undo"] +Hotkeys = Literal["split", "reset", "skip_split", "undo_split", "pause"] +HOTKEYS: list[Hotkeys] = ["split", "reset", "skip_split", "undo_split", "pause"] + -# do all of these after you click "Set Hotkey" but before you type the hotkey. def before_setting_hotkey(autosplit: AutoSplit): + """ + Do all of these after you click "Set Hotkey" but before you type the hotkey + """ autosplit.start_auto_splitter_button.setEnabled(False) if autosplit.SettingsWidget: - autosplit.SettingsWidget.set_split_hotkey_button.setEnabled(False) - autosplit.SettingsWidget.set_reset_hotkey_button.setEnabled(False) - autosplit.SettingsWidget.set_skip_split_hotkey_button.setEnabled(False) - autosplit.SettingsWidget.set_undo_split_hotkey_button.setEnabled(False) - autosplit.SettingsWidget.set_pause_hotkey_button.setEnabled(False) + for hotkey in HOTKEYS: + getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setEnabled(False) -# do all of these things after you set a hotkey. a signal connects to this because -# changing GUI stuff in the hotkey thread was causing problems def after_setting_hotkey(autosplit: AutoSplit): + """ + Do all of these things after you set a hotkey. + A signal connects to this because changing GUI stuff is only possible in the main thread + """ autosplit.start_auto_splitter_button.setEnabled(True) if autosplit.SettingsWidget: - autosplit.SettingsWidget.set_split_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.SettingsWidget.set_reset_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.SettingsWidget.set_skip_split_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.SettingsWidget.set_undo_split_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.SettingsWidget.set_pause_hotkey_button.setText(SET_HOTKEY_TEXT) - autosplit.SettingsWidget.set_split_hotkey_button.setEnabled(True) - autosplit.SettingsWidget.set_reset_hotkey_button.setEnabled(True) - autosplit.SettingsWidget.set_skip_split_hotkey_button.setEnabled(True) - autosplit.SettingsWidget.set_undo_split_hotkey_button.setEnabled(True) - autosplit.SettingsWidget.set_pause_hotkey_button.setEnabled(True) + for hotkey in HOTKEYS: + getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setText(SET_HOTKEY_TEXT) + getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setEnabled(True) def is_digit(key: Optional[str]): + """ + Checks if `key` is a single-digit string from 0-9 + """ if key is None: return False try: @@ -53,9 +56,6 @@ def is_digit(key: Optional[str]): return False -Commands = Literal["split", "start", "pause", "reset", "skip", "undo"] - - def send_command(autosplit: AutoSplit, command: Commands): if autosplit.is_auto_controlled: print(command, flush=True) @@ -74,33 +74,48 @@ def send_command(autosplit: AutoSplit, command: Commands): raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") -def _unhook(hotkey: Optional[Callable[[], None]]): +def _unhook(hotkey_callback: Optional[Callable[[], None]]): try: - if hotkey: - keyboard.unhook_key(hotkey) + if hotkey_callback: + keyboard.unhook_key(hotkey_callback) except (AttributeError, KeyError, ValueError): pass -def _send_hotkey(key_or_scan_code: Union[int, str]): +def _send_hotkey(hotkey_or_scan_code: Union[int, str, None]): """ Supports sending the appropriate scan code for all the special cases """ - if not key_or_scan_code: + if not hotkey_or_scan_code: return # Deal with regular inputs - if isinstance(key_or_scan_code, int) \ - or not (key_or_scan_code.startswith("num ") or key_or_scan_code == "decimal"): - keyboard.send(key_or_scan_code) + # If an int or does not contain the following strings + if isinstance(hotkey_or_scan_code, int) \ + or not ("num " in hotkey_or_scan_code or "decimal" in hotkey_or_scan_code or "+" in hotkey_or_scan_code): + keyboard.send(hotkey_or_scan_code) return + # FIXME: Localized keys won't work here # Deal with problematic keys. Even by sending specific scan code "keyboard" still sends the default (wrong) key + # keyboard also has issues with capitalization modifier (shift+A) # keyboard.send(keyboard.key_to_scan_codes(key_or_scan_code)[1]) - pyautogui.hotkey(key_or_scan_code.replace(" ", "")) + pyautogui.hotkey(*[ + "+" if key == "plus" else key + for key + in hotkey_or_scan_code.replace(" ", "").split("+")]) def __validate_keypad(expected_key: str, keyboard_event: keyboard.KeyboardEvent) -> bool: + """ + NOTE: This is a workaround very specific to numpads. + Windows reports different physical keys with the same scan code. + For example, "Home", "Num Home" and "Num 7" are all `71`. + See: https://github.com/boppreh/keyboard/issues/171#issuecomment-390437684 + + Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". + We're also trying to achieve the same hotkey behaviour as LiveSplit has. + """ # Prevent "(keypad)delete", "(keypad)./decimal" and "del" from triggering each other # as well as "." and "(keypad)./decimal" if keyboard_event.scan_code in {83, 52}: @@ -118,202 +133,118 @@ def __validate_keypad(expected_key: str, keyboard_event: keyboard.KeyboardEvent) return not is_digit(expected_key[-1]) -# NOTE: This is a workaround very specific to numpads. -# Windows reports different physical keys with the same scan code. -# For example, "Home", "Num Home" and "Num 7" are all "71". -# See: https://github.com/boppreh/keyboard/issues/171#issuecomment-390437684 - -# We're doing the check here instead of saving the key code because it'll -# cause issues with save files and the non-keypad shared keys are localized -# while the keypad ones aren't. - -# Since we reuse the key string we set to send to LiveSplit, we can't use fake names like "num home". -# We're also trying to achieve the same hotkey behaviour as LiveSplit has. def _hotkey_action(keyboard_event: keyboard.KeyboardEvent, key_name: str, action: Callable[[], None]): + """ + We're doing the check here instead of saving the key code because + the non-keypad shared keys are localized while the keypad ones aren't. + They also share scan codes on Windows + """ if keyboard_event.event_type == keyboard.KEY_DOWN and __validate_keypad(key_name, keyboard_event): action() def __get_key_name(keyboard_event: keyboard.KeyboardEvent): + """ + Ensures proper keypad name + """ + event_name = str(keyboard_event.name) + # Normally this is done by keyboard.get_hotkey_name. But our code won't always get there. + if event_name == "+": + return "plus" return f"num {keyboard_event.name}" \ if keyboard_event.is_keypad and is_digit(keyboard_event.name) \ - else str(keyboard_event.name) - + else event_name -def __is_key_already_set(autosplit: AutoSplit, key_name: str): - return key_name in (autosplit.settings_dict["split_hotkey"], - autosplit.settings_dict["reset_hotkey"], - autosplit.settings_dict["skip_split_hotkey"], - autosplit.settings_dict["undo_split_hotkey"], - autosplit.settings_dict["pause_hotkey"]) - - -# --------------------HOTKEYS-------------------------- -# TODO: Refactor to de-duplicate all this code, including settings_file.py -# Going to comment on one func, and others will be similar. -def set_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - if autosplit.SettingsWidget: - autosplit.SettingsWidget.set_split_hotkey_button.setText(PRESS_A_KEY_TEXT) - - # disable some buttons - before_setting_hotkey(autosplit) - - # new thread points to callback. this thread is needed or GUI will freeze - # while the program waits for user input on the hotkey - def callback(): - # use the selected key OR - # wait until user presses the hotkey, then keyboard module reads the input - key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) - try: - # If the key the user presses is equal to itself or another hotkey already set, - # this causes issues. so here, it catches that, and will make no changes to the hotkey. - - # or - - # keyboard module allows you to hit multiple keys for a hotkey. they are joined - # together by +. If user hits two keys at the same time, make no changes to the - # hotkey. A try and except is needed if a hotkey hasn'thread been set yet. I'm not - # allowing for these multiple-key hotkeys because it can cause crashes, and - # not many people are going to really use or need this. - if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.after_setting_hotkey_signal.emit() - return - except AttributeError: - autosplit.after_setting_hotkey_signal.emit() - return - - # add the key as the hotkey, set the text into the _input, set it as old_xxx_key, - # then emite a signal to re-enable some buttons and change some text in GUI. - # We need to inspect the event to know if it comes from numpad because of _canonial_names. - # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 - # The best way to achieve this is make our own hotkey handling on top of hook - # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 - autosplit.split_hotkey = keyboard.hook_key( - key_name, - lambda error: _hotkey_action(error, key_name, autosplit.start_auto_splitter)) - if autosplit.SettingsWidget: - autosplit.SettingsWidget.split_input.setText(key_name) - autosplit.settings_dict["split_hotkey"] = key_name - autosplit.after_setting_hotkey_signal.emit() +def __get_hotkey_name(names: list[str]): + """ + Uses keyboard.get_hotkey_name but works with non-english modifiers and keypad + See: https://github.com/boppreh/keyboard/issues/516 + """ + def sorting_key(key: str): + return not keyboard.is_modifier(keyboard.key_to_scan_codes(key)[0]) - # try to remove the previously set hotkey if there is one. - _unhook(autosplit.split_hotkey) - thread = threading.Thread(target=callback) - thread.start() + if len(names) == 1: + return names[0] + clean_names = sorted(keyboard.get_hotkey_name(names).split("+"), key=sorting_key) + # Replace the last key in hotkey_name with what we actually got as a last key_name + # This ensures we keep proper keypad names + return "+".join(clean_names[:-1] + names[-1:]) -def set_reset_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - if autosplit.SettingsWidget: - autosplit.SettingsWidget.set_reset_hotkey_button.setText(PRESS_A_KEY_TEXT) - before_setting_hotkey(autosplit) - - def callback(): - key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) +def __read_hotkey(): + """ + Blocks until a hotkey combination is read. + Returns the hotkey_name and last KeyboardEvent + """ + names: list[str] = [] + while True: + keyboard_event = keyboard.read_event(True) + # LiveSplit supports modifier keys as the last key, so any keyup means end of hotkey + if keyboard_event.event_type == keyboard.KEY_UP: + break + key_name = __get_key_name(keyboard_event) + print(key_name) + # Ignore long presses + if names and names[-1] == key_name: + continue + names.append(__get_key_name(keyboard_event)) + # Stop at the first non-modifier to prevent registering a hotkey with multiple regular keys + if not keyboard.is_modifier(keyboard_event.scan_code): + break + return __get_hotkey_name(names) - try: - if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.after_setting_hotkey_signal.emit() - return - except AttributeError: - autosplit.after_setting_hotkey_signal.emit() - return - autosplit.reset_hotkey = keyboard.hook_key( - key_name, - lambda error: _hotkey_action(error, key_name, autosplit.reset_signal.emit)) - if autosplit.SettingsWidget: - autosplit.SettingsWidget.reset_input.setText(key_name) - autosplit.settings_dict["reset_hotkey"] = key_name - autosplit.after_setting_hotkey_signal.emit() +def __is_key_already_set(autosplit: AutoSplit, key_name: str): + return key_name in [autosplit.settings_dict[f"{hotkey}_hotkey"] for hotkey in HOTKEYS] - _unhook(autosplit.reset_hotkey) - thread = threading.Thread(target=callback) - thread.start() +# TODO: using getattr/setattr is NOT a good way to go about this. It was only temporarily done to +# reduce duplicated code. We should use a dictionary of hotkey class or something. -def set_skip_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): +def set_hotkey(autosplit: AutoSplit, hotkey: Hotkeys, preselected_hotkey_name: str = ""): if autosplit.SettingsWidget: - autosplit.SettingsWidget.set_skip_split_hotkey_button.setText(PRESS_A_KEY_TEXT) - before_setting_hotkey(autosplit) - - def callback(): - key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) - - try: - if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.after_setting_hotkey_signal.emit() - return - except AttributeError: - autosplit.after_setting_hotkey_signal.emit() - return + getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setText(PRESS_A_KEY_TEXT) - autosplit.skip_split_hotkey = keyboard.hook_key( - key_name, - lambda error: _hotkey_action(error, key_name, autosplit.skip_split_signal.emit)) - if autosplit.SettingsWidget: - autosplit.SettingsWidget.skip_split_input.setText(key_name) - autosplit.settings_dict["skip_split_hotkey"] = key_name - autosplit.after_setting_hotkey_signal.emit() - - _unhook(autosplit.skip_split_hotkey) - thread = threading.Thread(target=callback) - thread.start() - - -def set_undo_split_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - if autosplit.SettingsWidget: - autosplit.SettingsWidget.set_undo_split_hotkey_button.setText(PRESS_A_KEY_TEXT) + # Disable some buttons before_setting_hotkey(autosplit) + # New thread points to callback. this thread is needed or GUI will freeze + # while the program waits for user input on the hotkey def callback(): - key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) + hotkey_name = preselected_hotkey_name if preselected_hotkey_name else __read_hotkey() - try: - if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.after_setting_hotkey_signal.emit() - return - except AttributeError: + # If the key the user presses is equal to itself or another hotkey already set, + # this causes issues. so here, it catches that, and will make no changes to the hotkey. + if __is_key_already_set(autosplit, hotkey_name): autosplit.after_setting_hotkey_signal.emit() return - autosplit.undo_split_hotkey = keyboard.hook_key( - key_name, - lambda error: _hotkey_action(error, key_name, autosplit.undo_split_signal.emit)) - if autosplit.SettingsWidget: - autosplit.SettingsWidget.undo_split_input.setText(key_name) - autosplit.settings_dict["undo_split_hotkey"] = key_name - autosplit.after_setting_hotkey_signal.emit() - - _unhook(autosplit.undo_split_hotkey) - thread = threading.Thread(target=callback) - thread.start() - - -def set_pause_hotkey(autosplit: AutoSplit, preselected_key: str = ""): - if autosplit.SettingsWidget: - autosplit.SettingsWidget.set_pause_hotkey_button.setText(PRESS_A_KEY_TEXT) - before_setting_hotkey(autosplit) - - def callback(): - key_name = preselected_key if preselected_key else __get_key_name(keyboard.read_event(True)) - - try: - if __is_key_already_set(autosplit, key_name) or (key_name != "+" and "+" in key_name): - autosplit.after_setting_hotkey_signal.emit() - return - except AttributeError: - autosplit.after_setting_hotkey_signal.emit() - return + # We need to inspect the event to know if it comes from numpad because of _canonial_names. + # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 + # The best way to achieve this is make our own hotkey handling on top of hook + # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 + action = autosplit.start_auto_splitter if hotkey == "split" else getattr(autosplit, f"{hotkey}_signal").emit + setattr( + autosplit, + f"{hotkey}_hotkey", + # keyboard.add_hotkey doesn't give the last keyboard event, so we can't __validate_keypad. + # This means "ctrl + num 5" and "ctrl + 5" will both be registered. + # For that reason, we still prefer keyboard.hook_key for single keys. + # keyboard module allows you to hit multiple keys for a hotkey. they are joined together by +. + keyboard.add_hotkey(hotkey_name, action) + if "+" in hotkey_name + else keyboard.hook_key( + hotkey_name, + lambda keyboard_event: _hotkey_action(keyboard_event, hotkey_name, action)) + ) - autosplit.pause_hotkey = keyboard.hook_key( - key_name, - lambda error: _hotkey_action(error, key_name, autosplit.pause_signal.emit)) if autosplit.SettingsWidget: - autosplit.SettingsWidget.pause_input.setText(key_name) - autosplit.settings_dict["pause_hotkey"] = key_name + getattr(autosplit.SettingsWidget, f"{hotkey}_input").setText(hotkey_name) + autosplit.settings_dict[f"{hotkey}_hotkey"] = hotkey_name autosplit.after_setting_hotkey_signal.emit() - _unhook(autosplit.pause_hotkey) + # Try to remove the previously set hotkey if there is one. + _unhook(getattr(autosplit, f"{hotkey}_hotkey")) thread = threading.Thread(target=callback) thread.start() diff --git a/src/menu_bar.py b/src/menu_bar.py index d90c1e8c..6337d570 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -1,4 +1,5 @@ from __future__ import annotations + from typing import TYPE_CHECKING, Any if TYPE_CHECKING: @@ -7,17 +8,17 @@ import webbrowser import requests -from simplejson.errors import JSONDecodeError from packaging import version from PyQt6 import QtWidgets from PyQt6.QtCore import QThread from requests.exceptions import RequestException +from simplejson.errors import JSONDecodeError import error_messages import settings_file as settings from capture_windows import Region from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa: F401 -from hotkeys import set_split_hotkey, set_reset_hotkey, set_skip_split_hotkey, set_undo_split_hotkey, set_pause_hotkey +from hotkeys import set_hotkey # AutoSplit Version number VERSION = "1.6.1" @@ -128,11 +129,11 @@ def set_value(key: str, value: Any): # endregion # region Binding # Hotkeys - self.set_split_hotkey_button.clicked.connect(lambda: set_split_hotkey(self.autosplit)) - self.set_reset_hotkey_button.clicked.connect(lambda: set_reset_hotkey(self.autosplit)) - self.set_skip_split_hotkey_button.clicked.connect(lambda: set_skip_split_hotkey(self.autosplit)) - self.set_undo_split_hotkey_button.clicked.connect(lambda: set_undo_split_hotkey(self.autosplit)) - self.set_pause_hotkey_button.clicked.connect(lambda: set_pause_hotkey(self.autosplit)) + self.set_split_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "split")) + self.set_reset_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "reset")) + self.set_skip_split_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "skip_split")) + self.set_undo_split_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "undo_split")) + self.set_pause_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "pause")) # Capture Settings self.fps_limit_spinbox.valueChanged.connect(lambda: set_value( diff --git a/src/settings_file.py b/src/settings_file.py index cc6fec44..dc4338b9 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -15,7 +15,7 @@ import error_messages from capture_windows import Region from gen import design -from hotkeys import set_pause_hotkey, set_reset_hotkey, set_skip_split_hotkey, set_split_hotkey, set_undo_split_hotkey +from hotkeys import set_hotkey # Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller FROZEN = hasattr(sys, "frozen") @@ -153,11 +153,11 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str autosplit.settings_dict["fps_limit"] = settings[4] keyboard.unhook_all() if not autosplit.is_auto_controlled: - set_split_hotkey(autosplit, settings[5]) - set_reset_hotkey(autosplit, settings[6]) - set_skip_split_hotkey(autosplit, settings[7]) - set_undo_split_hotkey(autosplit, settings[8]) - set_pause_hotkey(autosplit, settings[9]) + set_hotkey(autosplit, "split", settings[5]) + set_hotkey(autosplit, "reset", settings[6]) + set_hotkey(autosplit, "skip_split", settings[7]) + set_hotkey(autosplit, "undo_split", settings[8]) + set_hotkey(autosplit, "pause", settings[9]) autosplit.x_spinbox.setValue(settings[10]) autosplit.y_spinbox.setValue(settings[11]) autosplit.width_spinbox.setValue(settings[12]) From 88d7d6a2e79c6ad6ba56a2ffda0d63ae07c48f9b Mon Sep 17 00:00:00 2001 From: Samuel T Date: Fri, 2 Sep 2022 20:11:48 -0400 Subject: [PATCH 24/54] Linted pyi files (#137) * hooked new settings window to actual values * Linted pyi files * Initial UI update for 2.0.0. Add settings window. * hooked new settings window to actual values * Better "seconds remaining" text * Undo split goes to the end of the group * Turn off pyright(reportFunctionMemberAccess) in favor of pylint(no-member) * Massively sped up Flake tests Removed 400+kb of type stubs * Centralized qWait typing fix * Autosort imports * Resynced settings Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> --- .flake8 | 24 +- .github/workflows/lint-and-build.yml | 2 +- .vscode/settings.json | 19 +- PyInstaller/hooks/hook-cv2.py | 29 +- README.md | 4 +- pyproject.toml | 51 +- res/settings.ui | 2 +- scripts/install.bat | 6 +- scripts/lint.ps1 | 2 +- scripts/requirements.txt | 9 +- src/AutoControlledWorker.py | 7 +- src/AutoSplit.py | 41 +- src/AutoSplitImage.py | 15 +- src/capture_windows.py | 29 +- src/compare.py | 8 +- src/error_messages.py | 2 +- src/hotkeys.py | 9 +- src/menu_bar.py | 9 +- src/screen_region.py | 21 +- src/settings_file.py | 22 +- src/split_parser.py | 6 +- typings/PyInstaller/utils/hooks/__init__.pyi | 11 +- typings/PyQt6/QtTest.pyi | 13 + typings/cv2-stubs/__init__.pyi | 4 +- typings/imagehash/__init__.pyi | 24 +- typings/keyboard/__init__.pyi | 570 +- typings/keyboard/_canonical_names.pyi | 8 +- typings/keyboard/_generic.pyi | 39 + typings/keyboard/_keyboard_event.pyi | 32 +- typings/pyautogui/__init__.pyi | 655 +- typings/pythonwin-stubs/win32typing.pyi | 51700 ---------------- typings/win32-stubs/win32gui.pyi | 6238 -- typings/win32con/__init__.pyi | 5045 -- typings/win32helper/__init__.pyi | 0 typings/win32helper/ntsecuritycon.pyi | 689 - typings/win32helper/sspicon.pyi | 479 - typings/win32helper/win32cryptcon.pyi | 1900 - typings/win32helper/win32inetcon.pyi | 1103 - typings/win32helper/win32netcon.pyi | 655 - typings/win32helper/winioctlcon.pyi | 711 - typings/win32typing/__init__.pyi | 51704 ----------------- 41 files changed, 389 insertions(+), 121508 deletions(-) create mode 100644 typings/PyQt6/QtTest.pyi create mode 100644 typings/keyboard/_generic.pyi delete mode 100644 typings/pythonwin-stubs/win32typing.pyi delete mode 100644 typings/win32-stubs/win32gui.pyi delete mode 100644 typings/win32con/__init__.pyi delete mode 100644 typings/win32helper/__init__.pyi delete mode 100644 typings/win32helper/ntsecuritycon.pyi delete mode 100644 typings/win32helper/sspicon.pyi delete mode 100644 typings/win32helper/win32cryptcon.pyi delete mode 100644 typings/win32helper/win32inetcon.pyi delete mode 100644 typings/win32helper/win32netcon.pyi delete mode 100644 typings/win32helper/winioctlcon.pyi delete mode 100644 typings/win32typing/__init__.pyi diff --git a/.flake8 b/.flake8 index 2715e740..595b400e 100644 --- a/.flake8 +++ b/.flake8 @@ -1,15 +1,25 @@ [flake8] color=always max-line-length=120 -; Auto generated -exclude=src/gen/ -; Linebreak before binary operator -; Allow default value other than "..." -; Allow imports at the bottom of file -ignore=W503,Y015,E402 +exclude= + src/gen/, ; Auto generated + typings/cv2-stubs/__init__.pyi, ; External existing stub +ignore= + W503, ; Linebreak before binary operator + E402, ; Allow imports at the bottom of file + Y026, ; Not using typing_extensions per-file-ignores= + ; Docstrings in type stubs + ; Function bodys contain other than just ... (eg: raise) + ; Single quote docstrings + typings/cv2-stubs/__init__.pyi: Q000,N8,E704, Y021,Y010,Q002 + ; Quotes - __init__.pyi:Q000 + ; Allow ... on same line as def + ; Line too long + ; Naming conventions can't be controlled for external libraries + typings/**: Q000,E704,E501,N8 + ; PyQt methods ignore-names=closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent ; McCabe max-complexity is also taken care of by Pylint and doesn't fail the build there diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 37f7f367..1b13d5da 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -64,7 +64,7 @@ jobs: pip install -r "scripts/requirements.txt" - run: scripts/compile_resources.bat - name: Analysing the code with ${{ job.name }} - run: pylint --reports=y --output-format=colorized $(git ls-files '**/*.py*') + run: pylint --reports=y --output-format=colorized $(git ls-files '**/*.py') Flake8: runs-on: windows-latest strategy: diff --git a/.vscode/settings.json b/.vscode/settings.json index 05ea5a89..4b96d023 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -59,7 +59,14 @@ "python.linting.pylintCategorySeverity.convention": "Warning", "python.linting.pylintCategorySeverity.refactor": "Warning", "python.linting.flake8Enabled": true, + // pycodestyles "python.linting.flake8CategorySeverity.E": "Warning", + // Pyflakes + "python.linting.flake8CategorySeverity.F": "Warning", + // PEP8 Naming convention + "python.linting.flake8CategorySeverity.N": "Warning", + // PYI + "python.linting.flake8CategorySeverity.Y": "Warning", // PyRight obsoletes mypy "python.linting.mypyEnabled": false, // Is already wrapped by Flake8, prospector and pylama @@ -69,16 +76,4 @@ // Just another wrapper, use Flake8 OR this "python.linting.pylamaEnabled": false, "python.linting.banditEnabled": true, - // Copy those over to your user settings - "sonarlint.rules": { - "python:S1192": { - "level": "off" - }, - "python:S3776": { - "level": "off" - }, - "python:S107": { - "level": "off" - }, - }, } diff --git a/PyInstaller/hooks/hook-cv2.py b/PyInstaller/hooks/hook-cv2.py index 172c078c..620319d3 100644 --- a/PyInstaller/hooks/hook-cv2.py +++ b/PyInstaller/hooks/hook-cv2.py @@ -1,17 +1,18 @@ -# ------------------------------------------------------------------ -# Copyright (c) 2020 PyInstaller Development Team. -# -# This file is distributed under the terms of the GNU General Public -# License (version 2.0 or later). -# -# The full license is available in LICENSE.GPL.txt, distributed with -# this software. -# -# SPDX-License-Identifier: GPL-2.0-or-later -# ------------------------------------------------------------------ -# https://github.com/pyinstaller/pyinstaller-hooks-contrib/blob/master/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cv2.py - -from PyInstaller.utils.hooks import collect_dynamic_libs, collect_data_files +""" +Copyright (c) 2020 PyInstaller Development Team. + +This file is distributed under the terms of the GNU General Public +License (version 2.0 or later). + +The full license is available in LICENSE.GPL.txt, distributed with +this software. + +SPDX-License-Identifier: GPL-2.0-or-later + +https://github.com/pyinstaller/pyinstaller-hooks-contrib/blob/master/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cv2.py +""" + +from PyInstaller.utils.hooks import collect_data_files, collect_dynamic_libs hiddenimports = ["numpy"] diff --git a/README.md b/README.md index 4c9e24c4..ea90d068 100644 --- a/README.md +++ b/README.md @@ -67,10 +67,10 @@ This program can be used to automatically start, split, and reset your preferred ### Comparison Method -- There are three comparison methods to choose from: L2 Norm, Histograms, and pHash. +- There are three comparison methods to choose from: L2 Norm, Histograms, and Perceptual Hash (or pHash). - L2 Norm: This method should be fine to use for most cases. it finds the difference between each pixel, squares it, and sums it over the entire image and takes the square root. This is very fast but is a problem if your image is high frequency. Any translational movement or rotation can cause similarity to be very different. - Histograms: An explanation on Histograms comparison can be found [here](https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html). This is a great method to use if you are using several masked images. - - pHash: An explanation on pHash comparison can be found [here](http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html). It is highly recommended to NOT use pHash if you use masked images. It is very inaccurate. + - Perceptual Hash: An explanation on pHash comparison can be found [here](http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html). It is highly recommended to NOT use pHash if you use masked images. It is very inaccurate. ### Full Content Rendering diff --git a/pyproject.toml b/pyproject.toml index 3f71a85f..4daa124b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,21 +16,24 @@ aggressive = 3 pythonPlatform = "Windows" typeCheckingMode = "strict" # Extra strict -reportPropertyTypeMismatch=true -reportUninitializedInstanceVariable=true -reportCallInDefaultInitializer=true -reportImplicitStringConcatenation=true +reportImplicitStringConcatenation="error" +reportCallInDefaultInitializer="error" +reportMissingSuperCall="none" # False positives on base classes +reportPropertyTypeMismatch="error" +reportUninitializedInstanceVariable="error" +reportUnnecessaryTypeIgnoreComment="error" +reportUnusedCallResult="none" ignore = [ # Auto generated "src/gen/", - # We expect stub files to be incomplete or contain useless statements as they're external + # We expect stub files to be incomplete or contain useless statements "typings/", ] -reportMissingTypeStubs = "information" +reportMissingTypeStubs = "warning" # False positives with TYPE_CHECKING reportImportCycles = "information" -# PyQt .connect -reportFunctionMemberAccess = "information" +# False positives with PyQt .connect . pylint(no-member) works instead +reportFunctionMemberAccess = "none" # Extra runtime safety reportUnnecessaryComparison = "warning" # Flake8 does a better job @@ -42,7 +45,7 @@ reportUnknownMemberType = "none" # https://pylint.pycqa.org/en/latest/technical_reference/features.html [tool.pylint.REPORTS] # Just like default but any error will make drop to 9 or less -evaluation = "10.0 - error - ((float(warning * 10 + refactor + convention) / statement) * 10)" +evaluation = "10.0 - error - ((float((warning + convention) * 10 + refactor ) / statement) * 10)" [tool.pylint.MASTER] fail-under = 9.0 # https://pylint.pycqa.org/en/latest/technical_reference/extensions.html @@ -70,14 +73,18 @@ load-plugins = [ # "pylint.extensions.comparison_placement", # "pylint.extensions.for_any_all", ] -ignore-paths = [ +# Auto generated (doesn't work) +ignore-paths = ["src/gen/.*"] + # We expect stub files to be incomplete or contain useless statements +ignore-patterns = [ + ".*\\.pyi", # Auto generated - "^src/gen/.*$", - # We expect stub files to be incomplete or contain useless statements as they're external - "^typings/.*$", + "about.py", + "design.py", + "resources_rc.py", + "settings.py", + "update_checker.py", ] -# No need to mention the fixmes -disable = ["fixme"] extension-pkg-allow-list = ["PyQt6", "win32ui"] [tool.pylint.FORMAT] @@ -87,8 +94,8 @@ max-line-length = 120 # Same as SonarLint max-args = 7 # Arbitrary to 2 bytes -max-attributes = 16 -max-locals = 16 +max-attributes = 15 +max-locals = 15 [tool.pylint.'MESSAGES CONTROL'] # Same as SonarLint @@ -103,8 +110,10 @@ good-names = [ # PyQt methods "closeEvent", "paintEvent", "keyPressEvent", "mousePressEvent", "mouseMoveEvent", "mouseReleaseEvent", # https://github.com/PyCQA/pylint/issues/2018 - "x", "y", "a0", "i", "t0", "t1"] + "id", "x", "y", "a0", "i", "t0", "t1"] disable = [ + # No need to mention the fixmes + "fixme", "missing-docstring", # We group imports "wrong-import-position", @@ -112,7 +121,13 @@ disable = [ "unused-argument", # Already taken care of by Flake8 "unused-import", + # Similar lines in 2 files, doesn't really work + "R0801", ] [tool.pylint.TYPECHECK] generated-members = "cv2" + +[tool.isort] +line_length = 120 +combine_as_imports = true diff --git a/res/settings.ui b/res/settings.ui index ee4dfd38..0546658c 100644 --- a/res/settings.ui +++ b/res/settings.ui @@ -192,7 +192,7 @@ - pHash + Perceptual Hash diff --git a/scripts/install.bat b/scripts/install.bat index b32ff99e..1b61fb02 100644 --- a/scripts/install.bat +++ b/scripts/install.bat @@ -1,4 +1,4 @@ -py -3.9 -m pip install wheel -py -3.9 -m pip install -r "%~p0requirements.txt" -npm install -g pyright +py -3.9 -m pip install wheel --upgrade +py -3.9 -m pip install -r "%~p0requirements.txt" --upgrade +npm install -g pyright@latest CALL "%~p0compile_resources.bat" diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index b7c100a7..03b3d774 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -13,7 +13,7 @@ if ($LastExitCode -gt 0) { } Write-Host "`nRunning Pylint..." -pylint --score=n --output-format=colorized $(git ls-files '**/*.py*') +pylint --score=n --output-format=colorized $(git ls-files '**/*.py') $exitCodes += $LastExitCode if ($LastExitCode -gt 0) { Write-Host "`Pylint failed ($LastExitCode)" -ForegroundColor Red diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 30eb0766..db47cb05 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -22,12 +22,15 @@ PySide6 pyautogui pywin32 requests -# Linting and Types +# Linting, formatters and Types bandit +isort flake8 +flake8-pyi flake8-quotes -pylint -pywin32-stubs +flake8-isort +pylint>=2.13 +git+https://github.com/Avasam/pywin32-stubs.git#egg=pywin32-stubs # https://github.com/kaluluosi/pywin32-stubs/pull/4 simplejson types-simplejson>=3.17.2 types-requests diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index 36b231d9..61cf678b 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -1,12 +1,15 @@ from __future__ import annotations + from typing import TYPE_CHECKING -if TYPE_CHECKING: - from AutoSplit import AutoSplit + from PyQt6 import QtCore import error_messages import settings_file as settings +if TYPE_CHECKING: + from AutoSplit import AutoSplit + class AutoControlledWorker(QtCore.QObject): def __init__(self, autosplit: AutoSplit): diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 09c99697..c8fe95b0 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -7,33 +7,34 @@ # - Externals # - Internals from __future__ import annotations -from collections.abc import Callable -from types import FunctionType, TracebackType -from typing import Optional, Union -import sys -import os import ctypes +import os import signal +import sys import traceback +from collections.abc import Callable from time import time +from types import FunctionType, TracebackType +from typing import Optional, Union import certifi import cv2 -from PyQt6 import QtCore, QtGui, QtTest +from PyQt6 import QtCore, QtGui +from PyQt6.QtTest import QTest from PyQt6.QtWidgets import QApplication, QFileDialog, QMainWindow, QMessageBox, QWidget from win32 import win32gui -from AutoSplitImage import COMPARISON_RESIZE, AutoSplitImage, ImageType import error_messages import settings_file as settings from AutoControlledWorker import AutoControlledWorker +from AutoSplitImage import COMPARISON_RESIZE, AutoSplitImage, ImageType from capture_windows import capture_region, set_ui_image from gen import about, design, settings as settings_ui, update_checker -from hotkeys import send_command, after_setting_hotkey -from menu_bar import get_default_settings_from_ui, open_about, VERSION, open_settings, view_help, check_for_updates, \ - open_update_checker -from screen_region import select_region, select_window, align_region, validate_before_parsing +from hotkeys import after_setting_hotkey, send_command +from menu_bar import (VERSION, check_for_updates, get_default_settings_from_ui, open_about, open_settings, + open_update_checker, view_help) +from screen_region import align_region, select_region, select_window, validate_before_parsing from settings_file import FROZEN from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images @@ -343,13 +344,11 @@ def __start_image_function(self): delay_time_left = start_delay - (time() - delay_start_time) self.current_split_image.setText( f"Delayed Before Starting:\n {seconds_remaining_text(delay_time_left)}") - # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(1) # type: ignore + QTest.qWait(1) self.start_image_status_value_label.setText("started") send_command(self, "start") - # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(int(1 / self.settings_dict["fps_limit"])) # type: ignore + QTest.qWait(int(1 / self.settings_dict["fps_limit"])) self.start_auto_splitter() # update x, y, width, height when spinbox values are changed @@ -605,8 +604,7 @@ def __auto_splitter(self): # limit the number of time the comparison runs to reduce cpu usage frame_interval: float = 1 / self.settings_dict["fps_limit"] - # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(int(frame_interval - (time() - start) % frame_interval)) # type: ignore + QTest.qWait(int(frame_interval - (time() - start) % frame_interval)) QApplication.processEvents() # comes here when threshold gets met @@ -636,8 +634,7 @@ def __auto_splitter(self): capture = self.__get_capture_for_comparison() if self.__reset_if_should(capture): continue - # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(1) # type: ignore + QTest.qWait(1) self.waiting_for_split_delay = False @@ -691,8 +688,7 @@ def __auto_splitter(self): send_command(self, "reset") self.reset() continue - # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(1) # type: ignore + QTest.qWait(1) # loop breaks to here when the last image splits self.gui_changes_on_reset() @@ -760,8 +756,7 @@ def __get_capture_for_comparison(self): if capture is None: # Try to recover by using the window name self.live_image.setText("Trying to recover window...") - # https://github.com/kaluluosi/pywin32-stubs/issues/7 - hwnd = win32gui.FindWindow(None, self.settings_dict["captured_window_title"]) # type: ignore + hwnd = win32gui.FindWindow(None, self.settings_dict["captured_window_title"]) # Don't fallback to desktop if hwnd: self.hwnd = hwnd diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index ec9c2b69..8b281e6e 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -1,17 +1,20 @@ from __future__ import annotations -from enum import Enum import os -from typing import Optional, Union, TYPE_CHECKING -if TYPE_CHECKING: - from AutoSplit import AutoSplit +from enum import Enum +from typing import TYPE_CHECKING, Optional, Union import cv2 import numpy as np from win32con import MAXBYTE + import error_messages from compare import check_if_image_has_transparency, compare_histograms, compare_l2_norm, compare_phash +from split_parser import (comparison_method_from_filename, delay_time_from_filename, flags_from_filename, + loop_from_filename, pause_from_filename, threshold_from_filename) +if TYPE_CHECKING: + from AutoSplit import AutoSplit # Resize to these width and height so that FPS performance increases COMPARISON_RESIZE_WIDTH = 320 @@ -138,7 +141,3 @@ def compare_with_capture( if comparison_method == 2: return compare_phash(self.bytes, capture, self.mask) return 0.0 - - -from split_parser import comparison_method_from_filename, delay_time_from_filename, flags_from_filename, \ - loop_from_filename, pause_from_filename, threshold_from_filename diff --git a/src/capture_windows.py b/src/capture_windows.py index c6401efa..3eb9e8dd 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -1,19 +1,18 @@ from __future__ import annotations -from typing import Optional, cast import ctypes import ctypes.wintypes from dataclasses import dataclass -from PyQt6 import QtCore, QtGui -from PyQt6.QtWidgets import QLabel +from typing import Optional, cast import cv2 import numpy as np +import pywintypes import win32con import win32ui -import pywintypes +from PyQt6 import QtCore, QtGui +from PyQt6.QtWidgets import QLabel from win32 import win32gui -from win32typing import PyCBitmap, PyCDC # This is an undocumented nFlag value for PrintWindow PW_RENDERFULLCONTENT = 0x00000002 @@ -40,23 +39,23 @@ def capture_region(hwnd: int, selection: Region, print_window: bool): # If the window closes while it's being manipulated, it could cause a crash try: - window_dc: int = win32gui.GetWindowDC(hwnd) - # https://github.com/kaluluosi/pywin32-stubs/issues/6 - dc_object: PyCDC = win32ui.CreateDCFromHandle(window_dc) # type: ignore + window_dc = win32gui.GetWindowDC(hwnd) + dc_object = win32ui.CreateDCFromHandle(window_dc) # Causes a 10-15x performance drop. But allows recording hardware accelerated windows if print_window: ctypes.windll.user32.PrintWindow(hwnd, dc_object.GetSafeHdc(), PW_RENDERFULLCONTENT) - compatible_dc = cast(PyCDC, dc_object.CreateCompatibleDC()) - bitmap: PyCBitmap = win32ui.CreateBitmap() + compatible_dc = dc_object.CreateCompatibleDC() + bitmap = win32ui.CreateBitmap() bitmap.CreateCompatibleBitmap(dc_object, selection.width, selection.height) compatible_dc.SelectObject(bitmap) - compatible_dc.BitBlt((0, 0), (selection.width, selection.height), dc_object, - (selection.x, selection.y), win32con.SRCCOPY) - # https://github.com/kaluluosi/pywin32-stubs/issues/5 - # pylint: disable=no-member - except (win32ui.error, pywintypes.error): # type: ignore + compatible_dc.BitBlt((0, 0), + (selection.width, selection.height), + dc_object, + (selection.x, selection.y), + win32con.SRCCOPY) + except (win32ui.error, pywintypes.error): return None image = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") diff --git a/src/compare.py b/src/compare.py index 9a5a9e1c..b9b31ed3 100644 --- a/src/compare.py +++ b/src/compare.py @@ -1,10 +1,12 @@ from __future__ import annotations + from typing import Optional -from PIL import Image -from win32con import MAXBYTE + import cv2 import imagehash # https://github.com/JohannesBuchner/imagehash/issues/151 import numpy as np +from PIL import Image +from win32con import MAXBYTE MAXRANGE = MAXBYTE + 1 channels = [0, 1, 2] @@ -80,7 +82,7 @@ def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[c def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): """ - Compares the pHash of the two given images and returns the similarity between the two. + Compares the Perceptual Hash of the two given images and returns the similarity between the two. @param source: Image of any given shape as a numpy array @param capture: Image of any given shape as a numpy array diff --git a/src/error_messages.py b/src/error_messages.py index cb437f36..006d1fc9 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -1,5 +1,5 @@ -# Error messages import traceback + from PyQt6 import QtCore, QtWidgets diff --git a/src/hotkeys.py b/src/hotkeys.py index f7608b2b..b8207db0 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,16 +1,15 @@ from __future__ import annotations +import threading from collections.abc import Callable from typing import TYPE_CHECKING, Literal, Optional, Union -if TYPE_CHECKING: - from AutoSplit import AutoSplit - -import threading - import keyboard # https://github.com/boppreh/keyboard/issues/505 import pyautogui # https://github.com/asweigart/pyautogui/issues/645 +if TYPE_CHECKING: + from AutoSplit import AutoSplit + # While not usually recommended, we don't manipulate the mouse, and we don't want the extra delay pyautogui.FAILSAFE = False diff --git a/src/menu_bar.py b/src/menu_bar.py index 6337d570..547d88ca 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -1,11 +1,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any - -if TYPE_CHECKING: - from AutoSplit import AutoSplit - import webbrowser +from typing import TYPE_CHECKING, Any import requests from packaging import version @@ -20,6 +16,9 @@ from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa: F401 from hotkeys import set_hotkey +if TYPE_CHECKING: + from AutoSplit import AutoSplit + # AutoSplit Version number VERSION = "1.6.1" diff --git a/src/screen_region.py b/src/screen_region.py index 2342dd8d..e4eb4e79 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -1,21 +1,22 @@ from __future__ import annotations -from typing import cast, TYPE_CHECKING -if TYPE_CHECKING: - from AutoSplit import AutoSplit -import os import ctypes import ctypes.wintypes -import cv2 +import os +from typing import TYPE_CHECKING, cast +import cv2 import numpy as np -from PyQt6 import QtCore, QtGui, QtTest, QtWidgets +from PyQt6 import QtCore, QtGui, QtWidgets +from PyQt6.QtTest import QTest from win32 import win32gui -from win32con import GA_ROOT, MAXBYTE, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN, SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN +from win32con import GA_ROOT, MAXBYTE, SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN import capture_windows import error_messages +if TYPE_CHECKING: + from AutoSplit import AutoSplit WINDOWS_SHADOW_SIZE = 8 WINDOWS_TOPBAR_SIZE = 24 @@ -35,8 +36,7 @@ def select_region(autosplit: AutoSplit): y = selector.y() if width > 0 and height > 0: break - # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(1) # type: ignore + QTest.qWait(1) del selector hwnd, window_text = __get_window_from_point(x, y) @@ -66,8 +66,7 @@ def select_window(autosplit: AutoSplit): y = selector.y() if x and y: break - # Email sent to pyqt@riverbankcomputing.com - QtTest.QTest.qWait(1) # type: ignore + QTest.qWait(1) del selector hwnd, window_text = __get_window_from_point(x, y) diff --git a/src/settings_file.py b/src/settings_file.py index dc4338b9..c0e848be 100644 --- a/src/settings_file.py +++ b/src/settings_file.py @@ -1,22 +1,22 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, TypedDict - -if TYPE_CHECKING: - from AutoSplit import AutoSplit import os -import sys import pickle +import sys +from typing import TYPE_CHECKING, Any, TypedDict import keyboard # https://github.com/boppreh/keyboard/issues/505 -from win32 import win32gui from PyQt6 import QtCore, QtWidgets +from win32 import win32gui import error_messages from capture_windows import Region from gen import design from hotkeys import set_hotkey +if TYPE_CHECKING: + from AutoSplit import AutoSplit + # Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller FROZEN = hasattr(sys, "frozen") # Get the directory of either AutoSplit.exe or AutoSplit.py @@ -167,14 +167,14 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str autosplit.settings_dict["force_print_window"] = settings[20] if autosplit.settings_dict["captured_window_title"]: - # https://github.com/kaluluosi/pywin32-stubs/issues/7 - hwnd = win32gui.FindWindow(None, autosplit.settings_dict["captured_window_title"]) # type: ignore + hwnd = win32gui.FindWindow(None, autosplit.settings_dict["captured_window_title"]) if hwnd: autosplit.hwnd = hwnd else: - autosplit.live_image.setText("Reload settings after opening" - + f'\n"{autosplit.settings_dict["captured_window_title"]}"' - + "\nto automatically load Capture Region") + autosplit.live_image.setText( + "Reload settings after opening" + + f'\n"{autosplit.settings_dict["captured_window_title"]}"' + + "\nto automatically load Capture Region") return True diff --git a/src/split_parser.py b/src/split_parser.py index ee96f1e9..ef84beeb 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -1,13 +1,13 @@ from __future__ import annotations -from typing import TYPE_CHECKING, TypeVar -if TYPE_CHECKING: - from AutoSplit import AutoSplit import os +from typing import TYPE_CHECKING, TypeVar import error_messages from AutoSplitImage import AutoSplitImage, ImageType +if TYPE_CHECKING: + from AutoSplit import AutoSplit [DUMMY_FLAG, BELOW_FLAG, diff --git a/typings/PyInstaller/utils/hooks/__init__.pyi b/typings/PyInstaller/utils/hooks/__init__.pyi index 154d59ca..2e09bc15 100644 --- a/typings/PyInstaller/utils/hooks/__init__.pyi +++ b/typings/PyInstaller/utils/hooks/__init__.pyi @@ -1,8 +1,7 @@ -""" +""" # noqa: Y021 This type stub file was generated by pyright. """ -from typing import Any, Literal, Optional, Union -from collections.abc import Callable +from typing import Any, Callable, Literal, Optional, Union logger = ... PY_IGNORE_EXTENSIONS: set @@ -85,11 +84,7 @@ def is_module_or_submodule(name, mod_or_submod): ... -PY_DYLIB_PATTERNS = [ - "*.dll", - "*.dylib", - "lib*.so", -] +PY_DYLIB_PATTERNS: str def collect_dynamic_libs(package: str, destdir: Optional[str] = ...) -> list[tuple[str, str]]: diff --git a/typings/PyQt6/QtTest.pyi b/typings/PyQt6/QtTest.pyi new file mode 100644 index 00000000..83a6c435 --- /dev/null +++ b/typings/PyQt6/QtTest.pyi @@ -0,0 +1,13 @@ +import typing + +import PyQt6.sip + +# Email sent to pyqt@riverbankcomputing.com + + +class QTest(PyQt6.sip.simplewrapper): + @typing.overload + @staticmethod + def qWait(ms: int) -> None: ... + @typing.overload + def qWait(self, ms: int) -> None: ... diff --git a/typings/cv2-stubs/__init__.pyi b/typings/cv2-stubs/__init__.pyi index 2d471883..3a682025 100644 --- a/typings/cv2-stubs/__init__.pyi +++ b/typings/cv2-stubs/__init__.pyi @@ -3,7 +3,6 @@ # Module: cv2.cv2, version: 4.4.0 # https://github.com/microsoft/python-type-stubs/pull/112 import typing -import builtins as _mod_builtins import cv2 as _mod_cv2 import numpy @@ -29,7 +28,8 @@ AKAZE_DESCRIPTOR_MLDB: int AKAZE_DESCRIPTOR_MLDB_UPRIGHT: int -def AKAZE_create(descriptor_type=..., descriptor_size=..., descriptor_channels=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: +def AKAZE_create(descriptor_type=..., descriptor_size=..., descriptor_channels=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=... +) -> typing.Any: 'AKAZE_create([, descriptor_type[, descriptor_size[, descriptor_channels[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]]) -> retval\n. @brief The AKAZE constructor\n. \n. @param descriptor_type Type of the extracted descriptor: DESCRIPTOR_KAZE,\n. DESCRIPTOR_KAZE_UPRIGHT, DESCRIPTOR_MLDB or DESCRIPTOR_MLDB_UPRIGHT.\n. @param descriptor_size Size of the descriptor in bits. 0 -\\> Full size\n. @param descriptor_channels Number of channels in the descriptor (1, 2, 3)\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' ... diff --git a/typings/imagehash/__init__.pyi b/typings/imagehash/__init__.pyi index 4f60001d..3d255b19 100644 --- a/typings/imagehash/__init__.pyi +++ b/typings/imagehash/__init__.pyi @@ -1,23 +1,17 @@ -""" +""" # noqa: Y021 This type stub file was generated by pyright. """ -from __future__ import absolute_import, division, print_function, annotations -from PIL import Image, ImageFilter -import numpy +from __future__ import absolute_import, annotations, division, print_function + +from PIL import Image -__version__ = ... +__version__: str class ImageHash: def __init__(self, binary_array) -> None: ... - def __str__(self) -> str: - ... - - def __repr__(self) -> str: - ... - def __sub__(self, other: ImageHash) -> int: ... @@ -90,13 +84,7 @@ class ImageMultiHash: def __hash__(self) -> int: ... - def __str__(self) -> str: - ... - - def __repr__(self) -> str: - ... - - def hash_diff(self, other_hash, hamming_cutoff=..., bit_error_rate=...) -> tuple[int, Unknown | int]: + def hash_diff(self, other_hash, hamming_cutoff=..., bit_error_rate=...) -> tuple[int, int]: ... def matches(self, other_hash, region_cutoff=..., hamming_cutoff=..., bit_error_rate=...): diff --git a/typings/keyboard/__init__.pyi b/typings/keyboard/__init__.pyi index 86bd06ec..82be3f32 100644 --- a/typings/keyboard/__init__.pyi +++ b/typings/keyboard/__init__.pyi @@ -1,20 +1,24 @@ -""" +""" # noqa: Y021 This type stub file was generated by pyright. """ from __future__ import print_function as _print_function -import typing -import collections.abc - -import re as _re -import itertools as _itertools -import collections as _collections -import time as _time -import platform as _platform -from threading import Lock as _Lock, Thread as _Thread -from ._keyboard_event import KEY_DOWN, KEY_UP, KeyboardEvent -from ._generic import GenericListener as _GenericListener -from ._canonical_names import all_modifiers, normalize_name, sided_modifiers -__all__ = ["all_modifiers", "normalize_name", "sided_modifiers", "KEY_DOWN", "KEY_UP", "KeyboardEvent"] + +from collections.abc import Callable +from threading import Lock as _Lock +from typing import Any, Optional, Union + +from keyboard._canonical_names import all_modifiers, normalize_name, sided_modifiers +from keyboard._generic import GenericListener as _GenericListener +from keyboard._keyboard_event import KEY_DOWN, KEY_UP, KeyboardEvent + +__all__ = [ + "KEY_DOWN", + "KEY_UP", + "KeyboardEvent", + "_GenericListener", + "all_modifiers", + "normalize_name", + "sided_modifiers"] try: # Python2 @@ -25,92 +29,13 @@ except NameError: import queue as _queue from threading import Event as _UninterruptibleEvent - -""" -keyboard -======== - -Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more. - -## Features - -- **Global event hook** on all keyboards (captures keys regardless of focus). -- **Listen** and **send** keyboard events. -- Works with **Windows** and **Linux** (requires sudo), with experimental **OS X** support (thanks @glitchassassin!). -- **Pure Python**, no C modules to be compiled. -- **Zero dependencies**. Trivial to install and deploy, just copy the files. -- **Python 2 and 3**. -- Complex hotkey support (e.g. `ctrl+shift+m, ctrl+space`) with controllable timeout. -- Includes **high level API** (e.g. [record](#keyboard.record) and [play](#keyboard.play), [add_abbreviation](#keyboard.add_abbreviation)). -- Maps keys as they actually are in your layout, with **full internationalization support** (e.g. `Ctrl+ç`). -- Events automatically captured in separate thread, doesn't block main program. -- Tested and documented. -- Doesn't break accented dead keys (I'm looking at you, pyHook). -- Mouse support available via project [mouse](https://github.com/boppreh/mouse) (`pip install mouse`). - -## Usage - -Install the [PyPI package](https://pypi.python.org/pypi/keyboard/): - - pip install keyboard - -or clone the repository (no installation required, source files are sufficient): - - git clone https://github.com/boppreh/keyboard - -or [download and extract the zip](https://github.com/boppreh/keyboard/archive/master.zip) into your project folder. - -Then check the [API docs below](https://github.com/boppreh/keyboard#api) to see what features are available. - - -## Example - - -```py -import keyboard - -keyboard.press_and_release('shift+s, space') - -keyboard.write('The quick brown fox jumps over the lazy dog.') - -keyboard.add_hotkey('ctrl+shift+a', print, args=('triggered', 'hotkey')) - -# Press PAGE UP then PAGE DOWN to type "foobar". -keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar')) - -# Blocks until you press esc. -keyboard.wait('esc') - -# Record events until 'esc' is pressed. -recorded = keyboard.record(until='esc') -# Then replay back at three times the speed. -keyboard.play(recorded, speed_factor=3) - -# Type @@ then press space to replace with abbreviation. -keyboard.add_abbreviation('@@', 'my.long.email@example.com') - -# Block forever, like `while True`. -keyboard.wait() -``` - -## Known limitations: - -- Events generated under Windows don't report device id (`event.device == None`). [#21](https://github.com/boppreh/keyboard/issues/21) -- Media keys on Linux may appear nameless (scan-code only) or not at all. [#20](https://github.com/boppreh/keyboard/issues/20) -- Key suppression/blocking only available on Windows. [#22](https://github.com/boppreh/keyboard/issues/22) -- To avoid depending on X, the Linux parts reads raw device files (`/dev/input/input*`) -but this requires root. -- Other applications, such as some games, may register hooks that swallow all -key events. In this case `keyboard` will be unable to report events. -- This program makes no attempt to hide itself, so don't use it for keyloggers or online gaming bots. Be responsible. -""" - -Callback = collections.abc.Callable[[KeyboardEvent], None] +Callback = Callable[[KeyboardEvent], None] +Unknown = ... version: str -_is_str = collections.abc.Callable[[typing.Any], bool] -_is_number = collections.abc.Callable[[typing.Any], bool] -_is_list: collections.abc.Callable[[typing.Any], bool] +_is_str = Callable[[Any], bool] +_is_number = Callable[[Any], bool] +_is_list: Callable[[Any], bool] class _State: @@ -126,9 +51,6 @@ _modifier_scan_codes: set def is_modifier(key) -> bool: - """ - Returns True if `key` is a scan code or name of a modifier key. - """ ... @@ -140,34 +62,34 @@ _logically_pressed_keys: dict class _KeyboardListener(_GenericListener): transition_table = { - ('free', KEY_UP, 'modifier'): (False, True, 'free'), - ('free', KEY_DOWN, 'modifier'): (False, False, 'pending'), - ('pending', KEY_UP, 'modifier'): (True, True, 'free'), - ('pending', KEY_DOWN, 'modifier'): (False, True, 'allowed'), - ('suppressed', KEY_UP, 'modifier'): (False, False, 'free'), - ('suppressed', KEY_DOWN, 'modifier'): (False, False, 'suppressed'), - ('allowed', KEY_UP, 'modifier'): (False, True, 'free'), - ('allowed', KEY_DOWN, 'modifier'): (False, True, 'allowed'), - - ('free', KEY_UP, 'hotkey'): (False, None, 'free'), - ('free', KEY_DOWN, 'hotkey'): (False, None, 'free'), - ('pending', KEY_UP, 'hotkey'): (False, None, 'suppressed'), - ('pending', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), - ('suppressed', KEY_UP, 'hotkey'): (False, None, 'suppressed'), - ('suppressed', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), - ('allowed', KEY_UP, 'hotkey'): (False, None, 'allowed'), - ('allowed', KEY_DOWN, 'hotkey'): (False, None, 'allowed'), - - ('free', KEY_UP, 'other'): (False, True, 'free'), - ('free', KEY_DOWN, 'other'): (False, True, 'free'), - ('pending', KEY_UP, 'other'): (True, True, 'allowed'), - ('pending', KEY_DOWN, 'other'): (True, True, 'allowed'), + ('free', KEY_UP, 'modifier'): (False, True, 'free'), # noqa: Y020 + ('free', KEY_DOWN, 'modifier'): (False, False, 'pending'), # noqa: Y020 + ('pending', KEY_UP, 'modifier'): (True, True, 'free'), # noqa: Y020 + ('pending', KEY_DOWN, 'modifier'): (False, True, 'allowed'), # noqa: Y020 + ('suppressed', KEY_UP, 'modifier'): (False, False, 'free'), # noqa: Y020 + ('suppressed', KEY_DOWN, 'modifier'): (False, False, 'suppressed'), # noqa: Y020 + ('allowed', KEY_UP, 'modifier'): (False, True, 'free'), # noqa: Y020 + ('allowed', KEY_DOWN, 'modifier'): (False, True, 'allowed'), # noqa: Y020 + + ('free', KEY_UP, 'hotkey'): (False, None, 'free'), # noqa: Y020 + ('free', KEY_DOWN, 'hotkey'): (False, None, 'free'), # noqa: Y020 + ('pending', KEY_UP, 'hotkey'): (False, None, 'suppressed'), # noqa: Y020 + ('pending', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), # noqa: Y020 + ('suppressed', KEY_UP, 'hotkey'): (False, None, 'suppressed'), # noqa: Y020 + ('suppressed', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), # noqa: Y020 + ('allowed', KEY_UP, 'hotkey'): (False, None, 'allowed'), # noqa: Y020 + ('allowed', KEY_DOWN, 'hotkey'): (False, None, 'allowed'), # noqa: Y020 + + ('free', KEY_UP, 'other'): (False, True, 'free'), # noqa: Y020 + ('free', KEY_DOWN, 'other'): (False, True, 'free'), # noqa: Y020 + ('pending', KEY_UP, 'other'): (True, True, 'allowed'), # noqa: Y020 + ('pending', KEY_DOWN, 'other'): (True, True, 'allowed'), # noqa: Y020 # Necessary when hotkeys are removed after beign triggered, such as # TestKeyboard.test_add_hotkey_multistep_suppress_modifier. - ('suppressed', KEY_UP, 'other'): (False, False, 'allowed'), - ('suppressed', KEY_DOWN, 'other'): (True, True, 'allowed'), - ('allowed', KEY_UP, 'other'): (False, True, 'allowed'), - ('allowed', KEY_DOWN, 'other'): (False, True, 'allowed'), + ('suppressed', KEY_UP, 'other'): (False, False, 'allowed'), # noqa: Y020 + ('suppressed', KEY_DOWN, 'other'): (True, True, 'allowed'), # noqa: Y020 + ('allowed', KEY_UP, 'other'): (False, True, 'allowed'), # noqa: Y020 + ('allowed', KEY_DOWN, 'other'): (False, True, 'allowed'), # noqa: Y020 } def init(self) -> None: @@ -177,15 +99,6 @@ class _KeyboardListener(_GenericListener): ... def direct_callback(self, event): - """ - This function is called for every OS keyboard event and decides if the - event should be blocked or not, and passes a copy of the event to - other, non-blocking, listeners. - - There are two ways to block events: remapped keys, which translate - events by suppressing and re-emitting; and blocked hotkeys, which - suppress specific hotkeys. - """ ... def listen(self) -> None: @@ -195,49 +108,19 @@ class _KeyboardListener(_GenericListener): _listener: _KeyboardListener -def key_to_scan_codes(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], - error_if_missing: bool = ...) -> typing.List[int]: - """ - Returns a list of scan codes associated with this key (name or scan code). - """ +def key_to_scan_codes(key: Union[int, str, list[Union[int, str]]], error_if_missing: bool = ...) -> list[int]: ... -def parse_hotkey(hotkey) -> tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...]] - ] | tuple[tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...], ...]] | tuple[Unknown, ...]: - """ - Parses a user-provided hotkey into nested tuples representing the - parsed structure, with the bottom values being lists of scan codes. - Also accepts raw scan codes, which are then wrapped in the required - number of nestings. - - Example: - - parse_hotkey("alt+shift+a, alt+b, c") - # Keys: ^~^ ^~~~^ ^ ^~^ ^ ^ - # Steps: ^~~~~~~~~~^ ^~~~^ ^ - - # ((alt_codes, shift_codes, a_codes), (alt_codes, b_codes), (c_codes,)) - """ +def parse_hotkey(hotkey) -> tuple[ + tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...]] +] | tuple[ + tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...], ...] +] | tuple[Unknown, ...]: ... -def send(hotkey: typing.Union[str, int], do_press: bool = ..., do_release: bool = ...) -> None: - """ - Sends OS events that perform the given *hotkey* hotkey. - - - `hotkey` can be either a scan code (e.g. 57 for space), single key - (e.g. 'space') or multi-key, multi-step hotkey (e.g. 'alt+F4, enter'). - - `do_press` if true then press events are sent. Defaults to True. - - `do_release` if true then release events are sent. Defaults to True. - - send(57) - send('ctrl+alt+del') - send('alt+F4, enter') - send('shift+s') - - Note: keys are released in the opposite order they were pressed. - """ +def send(hotkey: Union[str, int], do_press: bool = ..., do_release: bool = ...) -> None: ... @@ -245,103 +128,53 @@ press_and_release = send def press(hotkey) -> None: - """ Presses and holds down a hotkey (see `send`). """ ... def release(hotkey) -> None: - """ Releases a hotkey (see `send`). """ ... def is_pressed(hotkey) -> bool: - """ - Returns True if the key is pressed. - - is_pressed(57) #-> True - is_pressed('space') #-> True - is_pressed('ctrl+space') #-> True - """ ... def call_later(fn, args=..., delay=...) -> None: - """ - Calls the provided function in a new thread after waiting some time. - Useful for giving the system some time to process an event, without blocking - the current execution flow. - """ ... -_hooks: dict[collections.abc.Callable, Unknown] - +_hooks: dict[Callable, Unknown] -def hook(callback: Callback, suppress=..., on_remove=...) -> collections.abc.Callable[[], None]: - """ - Installs a global listener on all available keyboards, invoking `callback` - each time a key is pressed or released. - The event passed to the callback is of type `keyboard.KeyboardEvent`, - with the following attributes: - - - `name`: an Unicode representation of the character (e.g. "&") or - description (e.g. "space"). The name is always lower-case. - - `scan_code`: number representing the physical key, e.g. 55. - - `time`: timestamp of the time the event occurred, with as much precision - as given by the OS. - - Returns the given callback for easier development. - """ +def hook(callback: Callback, suppress=..., on_remove=...) -> Callable[[], None]: ... -def on_press(callback: Callback, suppress=...) -> collections.abc.Callable[[], None]: - """ - Invokes `callback` for every KEY_DOWN event. For details see `hook`. - """ +def on_press(callback: Callback, suppress=...) -> Callable[[], None]: ... -def on_release(callback: Callback, suppress=...) -> collections.abc.Callable[[], None]: - """ - Invokes `callback` for every KEY_UP event. For details see `hook`. - """ +def on_release(callback: Callback, suppress=...) -> Callable[[], None]: ... -def hook_key(key: typing.Union[int, str, typing.List[typing.Union[int, str]]], - callback: Callback, suppress: bool = ...) -> collections.abc.Callable[[], None]: - """ - Hooks key up and key down events for a single key. Returns the event handler - created. To remove a hooked key use `unhook_key(key)` or - `unhook_key(handler)`. - - Note: this function shares state with hotkeys, so `clear_all_hotkeys` - affects it as well. - """ +def hook_key( + key: Union[int, str, list[Union[int, str]]], + callback: Callback, + suppress: bool = ... +) -> Callable[[], None]: ... -def on_press_key(key, callback: Callback, suppress=...) -> collections.abc.Callable[[], None]: - """ - Invokes `callback` for KEY_DOWN event related to the given key. For details see `hook`. - """ +def on_press_key(key, callback: Callback, suppress=...) -> Callable[[], None]: ... -def on_release_key(key, callback: Callback, suppress=...) -> collections.abc.Callable[[], None]: - """ - Invokes `callback` for KEY_UP event related to the given key. For details see `hook`. - """ +def on_release_key(key, callback: Callback, suppress=...) -> Callable[[], None]: ... -def unhook(remove: collections.abc.Callable[[], None]) -> None: - """ - Removes a previously added hook, either by callback or by the return value - of `hook`. - """ +def unhook(remove: Callable[[], None]) -> None: ... @@ -349,28 +182,17 @@ unhook_key = unhook def unhook_all() -> None: - """ - Removes all keyboard hooks in use, including hotkeys, abbreviations, word - listeners, `record`ers and `wait`s. - """ ... -def block_key(key) -> collections.abc.Callable[[], None]: - """ - Suppresses all key events of the given key, regardless of modifiers. - """ +def block_key(key) -> Callable[[], None]: ... unblock_key = unhook_key -def remap_key(src, dst) -> collections.abc.Callable[[], None]: - """ - Whenever the key `src` is pressed or released, regardless of modifiers, - press or release the hotkey `dst` instead. - """ +def remap_key(src, dst) -> Callable[[], None]: ... @@ -378,55 +200,20 @@ unremap_key = unhook_key def parse_hotkey_combinations(hotkey) -> tuple[tuple[tuple[Unknown, ...], ...], ...]: - """ - Parses a user-provided hotkey. Differently from `parse_hotkey`, - instead of each step being a list of the different scan codes for each key, - each step is a list of all possible combinations of those scan codes. - """ ... _hotkeys: dict -def add_hotkey(hotkey, callback: collections.abc.Callable, args=..., suppress=..., timeout=..., - trigger_on_release=...) -> collections.abc.Callable[[], None]: - """ - Invokes a callback every time a hotkey is pressed. The hotkey must - be in the format `ctrl+shift+a, s`. This would trigger when the user holds - ctrl, shift and "a" at once, releases, and then presses "s". To represent - literal commas, pluses, and spaces, use their names ('comma', 'plus', - 'space'). - - - `args` is an optional list of arguments to passed to the callback during - each invocation. - - `suppress` defines if successful triggers should block the keys from being - sent to other programs. - - `timeout` is the amount of seconds allowed to pass between key presses. - - `trigger_on_release` if true, the callback is invoked on key release instead - of key press. - - The event handler function is returned. To remove a hotkey call - `remove_hotkey(hotkey)` or `remove_hotkey(handler)`. - before the hotkey state is reset. - - Note: hotkeys are activated when the last key is *pressed*, not released. - Note: the callback is executed in a separate thread, asynchronously. For an - example of how to use a callback synchronously, see `wait`. - - Examples: - - # Different but equivalent ways to listen for a spacebar key press. - add_hotkey(' ', print, args=['space was pressed']) - add_hotkey('space', print, args=['space was pressed']) - add_hotkey('Space', print, args=['space was pressed']) - # Here 57 represents the keyboard code for spacebar; so you will be - # pressing 'spacebar', not '57' to activate the print function. - add_hotkey(57, print, args=['space was pressed']) - - add_hotkey('ctrl+q', quit) - add_hotkey('ctrl+alt+enter, space', some_callback) - """ +def add_hotkey( + hotkey, + callback: Callable, + args=..., + suppress=..., + timeout=..., + trigger_on_release=... +) -> Callable[[], None]: ... @@ -434,207 +221,85 @@ register_hotkey = add_hotkey def remove_hotkey(hotkey_or_callback) -> None: - """ - Removes a previously hooked hotkey. Must be called with the value returned - by `add_hotkey`. - """ ... -unregister_hotkey = clear_hotkey = remove_hotkey +unregister_hotkey = remove_hotkey +clear_hotkey = remove_hotkey def unhook_all_hotkeys() -> None: - """ - Removes all keyboard hotkeys in use, including abbreviations, word listeners, - `record`ers and `wait`s. - """ ... -unregister_all_hotkeys = remove_all_hotkeys = clear_all_hotkeys = unhook_all_hotkeys - +unregister_all_hotkeys = unhook_all_hotkeys +remove_all_hotkeys = unhook_all_hotkeys +clear_all_hotkeys = unhook_all_hotkeys -def remap_hotkey(src, dst, suppress=..., trigger_on_release=...) -> collections.abc.Callable[[], None]: - """ - Whenever the hotkey `src` is pressed, suppress it and send - `dst` instead. - Example: - - remap('alt+w', 'ctrl+up') - """ +def remap_hotkey(src, dst, suppress=..., trigger_on_release=...) -> Callable[[], None]: ... unremap_hotkey = remove_hotkey -def stash_state() -> list[Unknown]: - """ - Builds a list of all currently pressed scan codes, releases them and returns - the list. Pairs well with `restore_state` and `restore_modifiers`. - """ +def stash_state() -> list: ... def restore_state(scan_codes) -> None: - """ - Given a list of scan_codes ensures these keys, and only these keys, are - pressed. Pairs well with `stash_state`, alternative to `restore_modifiers`. - """ ... def restore_modifiers(scan_codes) -> None: - """ - Like `restore_state`, but only restores modifier keys. - """ ... def write(text, delay=..., restore_state_after=..., exact=...): - """ - Sends artificial keyboard events to the OS, simulating the typing of a given - text. Characters not available on the keyboard are typed as explicit unicode - characters using OS-specific functionality, such as alt+codepoint. - - To ensure text integrity, all currently pressed keys are released before - the text is typed, and modifiers are restored afterwards. - - - `delay` is the number of seconds to wait between keypresses, defaults to - no delay. - - `restore_state_after` can be used to restore the state of pressed keys - after the text is typed, i.e. presses the keys that were released at the - beginning. Defaults to True. - - `exact` forces typing all characters as explicit unicode (e.g. - alt+codepoint or special events). If None, uses platform-specific suggested - value. - """ ... def wait(hotkey=..., suppress=..., trigger_on_release=...) -> None: - """ - Blocks the program execution until the given hotkey is pressed or, - if given no parameters, blocks forever. - """ ... def get_hotkey_name(names=...) -> str: - """ - Returns a string representation of hotkey from the given key names, or - the currently pressed keys if not given. This function: - - - normalizes names; - - removes "left" and "right" prefixes; - - replaces the "+" key name with "plus" to avoid ambiguity; - - puts modifier keys first, in a standardized order; - - sort remaining keys; - - finally, joins everything with "+". - - Example: - - get_hotkey_name(['+', 'left ctrl', 'shift']) - # "ctrl+shift+plus" - """ ... def read_event(suppress: bool = ...) -> KeyboardEvent: - """ - Blocks until a keyboard event happens, then returns that event. - """ ... def read_key(suppress=...): - """ - Blocks until a keyboard event happens, then returns that event's name or, - if missing, its scan code. - """ ... def read_hotkey(suppress=...) -> str: - """ - Similar to `read_key()`, but blocks until the user presses and releases a - hotkey (or single key), then returns a string representing the hotkey - pressed. - - Example: - - read_hotkey() - # "ctrl+shift+p" - """ ... def get_typed_strings(events, allow_backspace=...): - """ - Given a sequence of events, tries to deduce what strings were typed. - Strings are separated when a non-textual key is pressed (such as tab or - enter). Characters are converted to uppercase according to shift and - capslock status. If `allow_backspace` is True, backspaces remove the last - character typed. - - This function is a generator, so you can pass an infinite stream of events - and convert them to strings in real time. - - Note this functions is merely an heuristic. Windows for example keeps per- - process keyboard state such as keyboard layout, and this information is not - available for our hooks. - - get_type_strings(record()) #-> ['This is what', 'I recorded', ''] - """ ... -_recording: typing.Optional[tuple[Unknown | _queue.Queue[Unknown], collections.abc.Callable[[], None]]] +_recording: Optional[tuple[Unknown | _queue.Queue, Callable[[], None]]] -def start_recording(recorded_events_queue=...) -> tuple[Unknown - | _queue.Queue[Unknown], collections.abc.Callable[[], None]]: - """ - Starts recording all keyboard events into a global variable, or the given - queue if any. Returns the queue of events and the hooked function. - - Use `stop_recording()` or `unhook(hooked_function)` to stop. - """ +def start_recording(recorded_events_queue=...) -> tuple[Unknown | _queue.Queue, Callable[[], None]]: ... -def stop_recording() -> list[Unknown | typing.Any]: - """ - Stops the global recording of events and returns a list of the events - captured. - """ +def stop_recording() -> list: ... -def record(until=..., suppress=..., trigger_on_release=...) -> list[Unknown | typing.Any]: - """ - Records all keyboard events from all keyboards until the user presses the - given hotkey. Then returns the list of events recorded, of type - `keyboard.KeyboardEvent`. Pairs well with - `play(events)`. - - Note: this is a blocking function. - Note: for more details on the keyboard hook and events see `hook`. - """ +def record(until=..., suppress=..., trigger_on_release=...) -> list: ... def play(events, speed_factor=...): - """ - Plays a sequence of recorded events, maintaining the relative time - intervals. If speed_factor is <= 0 then the actions are replayed as fast - as the OS allows. Pairs well with `record()`. - - Note: the current keyboard state is cleared at the beginning and restored at - the end of the function. - """ ... @@ -647,62 +312,21 @@ def add_word_listener( callback: Callback, triggers=..., match_suffix=..., - timeout=...) -> collections.abc.Callable[[], - None]: - """ - Invokes a callback every time a sequence of characters is typed (e.g. 'pet') - and followed by a trigger key (e.g. space). Modifiers (e.g. alt, ctrl, - shift) are ignored. - - - `word` the typed text to be matched. E.g. 'pet'. - - `callback` is an argument-less function to be invoked each time the word - is typed. - - `triggers` is the list of keys that will cause a match to be checked. If - the user presses some key that is not a character (len>1) and not in - triggers, the characters so far will be discarded. By default the trigger - is only `space`. - - `match_suffix` defines if endings of words should also be checked instead - of only whole words. E.g. if true, typing 'carpet'+space will trigger the - listener for 'pet'. Defaults to false, only whole words are checked. - - `timeout` is the maximum number of seconds between typed characters before - the current word is discarded. Defaults to 2 seconds. - - Returns the event handler created. To remove a word listener use - `remove_word_listener(word)` or `remove_word_listener(handler)`. - - Note: all actions are performed on key down. Key up events are ignored. - Note: word matches are **case sensitive**. - """ + timeout=... +) -> Callable[[], None]: ... def remove_word_listener(word_or_handler) -> None: - """ - Removes a previously registered word listener. Accepts either the word used - during registration (exact string) or the event handler returned by the - `add_word_listener` or `add_abbreviation` functions. - """ ... -def add_abbreviation(source_text, replacement_text, match_suffix=..., - timeout=...) -> collections.abc.Callable[[], None]: - """ - Registers a hotkey that replaces one typed text with another. For example - - add_abbreviation('tm', u'™') - - Replaces every "tm" followed by a space with a ™ symbol (and no space). The - replacement is done by sending backspace events. - - - `match_suffix` defines if endings of words should also be checked instead - of only whole words. E.g. if true, typing 'carpet'+space will trigger the - listener for 'pet'. Defaults to false, only whole words are checked. - - `timeout` is the maximum number of seconds between typed characters before - the current word is discarded. Defaults to 2 seconds. - - For more details see `add_word_listener`. - """ +def add_abbreviation( + source_text, + replacement_text, + match_suffix=..., + timeout=... +) -> Callable[[], None]: ... diff --git a/typings/keyboard/_canonical_names.pyi b/typings/keyboard/_canonical_names.pyi index 94cb7a64..e27d5381 100644 --- a/typings/keyboard/_canonical_names.pyi +++ b/typings/keyboard/_canonical_names.pyi @@ -1,10 +1,10 @@ -""" +""" # noqa: Y021 This type stub file was generated by pyright. """ -canonical_names = ... -sided_modifiers = ... -all_modifiers = ... +canonical_names: dict[str, str] +sided_modifiers: set[str] +all_modifiers: set[str] def normalize_name(name: str) -> str: diff --git a/typings/keyboard/_generic.pyi b/typings/keyboard/_generic.pyi new file mode 100644 index 00000000..c594fab0 --- /dev/null +++ b/typings/keyboard/_generic.pyi @@ -0,0 +1,39 @@ +""" # noqa: Y021 +This type stub file was generated by pyright. +""" + +from threading import Lock +from typing import NoReturn + +try: + from queue import Queue +except ImportError: + from Queue import Queue + + +class GenericListener: + lock: Lock + handlers: list + listening: bool + queue: Queue + + def __init__(self) -> None: + ... + + def invoke_handlers(self, event): + ... + + def start_if_necessary(self) -> None: + ... + + def pre_process_event(self, event): + ... + + def process(self) -> NoReturn: + ... + + def add_handler(self, handler) -> None: + ... + + def remove_handler(self, handler) -> None: + ... diff --git a/typings/keyboard/_keyboard_event.pyi b/typings/keyboard/_keyboard_event.pyi index 72c73f02..4a6bfec5 100644 --- a/typings/keyboard/_keyboard_event.pyi +++ b/typings/keyboard/_keyboard_event.pyi @@ -1,31 +1,37 @@ -""" +""" # noqa: Y021 This type stub file was generated by pyright. """ +from __future__ import annotations -from typing import Literal, Optional, Union - +from typing import Literal, Optional -KEY_DOWN = Literal['down'] -KEY_UP = Literal['up'] +KEY_DOWN: Literal["down"] +KEY_UP: Literal["up"] class KeyboardEvent: - event_type: Optional[Union[KEY_DOWN, KEY_UP]] = ... + event_type: Optional[Literal["down", "up"]] = ... scan_code: Optional[int] = ... name: Optional[str] = ... - time: Optional[Unknown] = ... - device: Optional[Unknown] = ... - modifiers: Optional[Unknown] = ... + time: Optional = ... + device: Optional = ... + modifiers: Optional = ... is_keypad: Optional[bool] = ... - def __init__(self, event_type: event_type, scan_code, name: name = ..., time: time = ..., device: device = ..., modifiers: modifiers = ..., is_keypad: is_keypad = ...) -> None: + def __init__( + self, + event_type: Optional[Literal["down", "up"]], + scan_code: Optional[int], + name: Optional[str] = ..., + time: Optional = ..., + device: Optional = ..., + modifiers: Optional = ..., + is_keypad: Optional[bool] = ... + ) -> None: ... def to_json(self, ensure_ascii: bool = ...) -> str: ... - def __repr__(self) -> str: - ... - def __eq__(self, other: KeyboardEvent) -> bool: ... diff --git a/typings/pyautogui/__init__.pyi b/typings/pyautogui/__init__.pyi index 1cccf90e..afe75bb4 100644 --- a/typings/pyautogui/__init__.pyi +++ b/typings/pyautogui/__init__.pyi @@ -1,79 +1,49 @@ -""" +"""# noqa: Y021 This type stub file was generated by pyright. """ -from typing import * +from __future__ import absolute_import, division, print_function import sys -import time -import datetime -import os -import platform -import re -import functools -import collections -import collections.abc -from __future__ import absolute_import, division, print_function +from collections.abc import Callable from contextlib import contextmanager +from datetime import datetime +from typing import Literal, Union -__version__ = ... +__version__: str class PyAutoGUIException(Exception): - """ - PyAutoGUI code will raise this exception class for any invalid actions. If PyAutoGUI raises some other exception, - you should assume that this is caused by a bug in PyAutoGUI itself. (Including a failure to catch potential - exceptions raised by PyAutoGUI.) - """ ... class FailSafeException(PyAutoGUIException): - """ - This exception is raised by PyAutoGUI functions when the user puts the mouse cursor into one of the "failsafe - points" (by default, one of the four corners of the primary monitor). This exception shouldn't be caught; it's - meant to provide a way to terminate a misbehaving script. - """ ... class ImageNotFoundException(PyAutoGUIException): - """ - This exception is the PyAutoGUI version of PyScreeze's `ImageNotFoundException`, which is raised when a locate*() - function call is unable to find an image. - - Ideally, `pyscreeze.ImageNotFoundException` should never be raised by PyAutoGUI. - """ ... -if sys.version_info[0] == 2 or sys.version_info[0: 2] in ((3, 1), (3, 2)): - collectionsSequence = ... +if sys.version_info[0] == 2 or sys.version_info[0:2] in ((3, 1), (3, 2)): # noqa: Y003 + # Python 2 and 3.1 and 3.2 uses collections.Sequence + import collections + + collectionsSequence = collections.Sequence else: - collectionsSequence = ... + # Python 3.3+ uses collections.abc.Sequence + import collections.abc + + collectionsSequence = collections.abc.Sequence def raisePyAutoGUIImageNotFoundException(wrappedFunction) -> Callable: - """ - A decorator that wraps PyScreeze locate*() functions so that the PyAutoGUI user sees them raise PyAutoGUI's - ImageNotFoundException rather than PyScreeze's ImageNotFoundException. This is because PyScreeze should be - invisible to PyAutoGUI users. - """ ... def useImageNotFoundException(value=...) -> None: - """ - When called with no arguments, PyAutoGUI will raise ImageNotFoundException when the PyScreeze locate*() functions - can't find the image it was told to locate. The default behavior is to return None. Call this function with no - arguments (or with True as the argument) to have exceptions raised, which is a better practice. - - You can also disable raising exceptions by passing False for the argument. - """ ... -if sys.platform == "win32": - ... KEY_NAMES = ... KEYBOARD_KEYS = ... LEFT = ... @@ -86,17 +56,9 @@ QWERTZ = ... def isShiftCharacter(character) -> bool: - """ - Returns True if the ``character`` is a keyboard key that would require the shift key to be held down, such as - uppercase letters or the symbols on the keyboard's number row. - """ ... -if sys.platform.startswith("java"): - ... -else: - ... MINIMUM_DURATION = ... MINIMUM_SLEEP = ... PAUSE = ... @@ -110,635 +72,138 @@ Point = ... Size = ... -def getPointOnLine(x1, y1, x2, y2, n) -> tuple[Unknown, Unknown]: - """ - Returns an (x, y) tuple of the point that has progressed a proportion ``n`` along the line defined by the two - ``x1``, ``y1`` and ``x2``, ``y2`` coordinates. - - This function was copied from pytweening module, so that it can be called even if PyTweening is not installed. - """ +def getPointOnLine(x1: int, y1: int, x2: int, y2: int, n: float) -> tuple[int, int]: ... def linear(n): - """ - Returns ``n``, where ``n`` is the float argument between ``0.0`` and ``1.0``. This function is for the default - linear tween for mouse moving functions. - - This function was copied from PyTweening module, so that it can be called even if PyTweening is not installed. - """ ... def position(x=..., y=...) -> Point: - """ - Returns the current xy coordinates of the mouse cursor as a two-integer tuple. - - Args: - x (int, None, optional) - If not None, this argument overrides the x in - the return value. - y (int, None, optional) - If not None, this argument overrides the y in - the return value. - - Returns: - (x, y) tuple of the current xy coordinates of the mouse cursor. - - NOTE: The position() function doesn't check for failsafe. - """ ... def size() -> Size: - """Returns the width and height of the screen as a two-integer tuple. - - Returns: - (width, height) tuple of the screen size, in pixels. - """ ... def onScreen(x, y=...) -> bool: - """Returns whether the given xy coordinates are on the primary screen or not. - - Note that this function doesn't work for secondary screens. - - Args: - Either the arguments are two separate values, first arg for x and second - for y, or there is a single argument of a sequence with two values, the - first x and the second y. - Example: onScreen(x, y) or onScreen([x, y]) - - Returns: - bool: True if the xy coordinates are on the screen at its current - resolution, otherwise False. - """ ... -@_genericPyAutoGUIChecks def mouseDown(x=..., y=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Performs pressing a mouse button down (but not up). - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): The x position on the screen where the - mouse down happens. None by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): The y position on the screen where the - mouse down happens. None by default. - button (str, int, optional): The mouse button pressed down. TODO - - Returns: - None - - Raises: - PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, or 3 - """ ... -@_genericPyAutoGUIChecks def mouseUp(x=..., y=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Performs releasing a mouse button up (but not down beforehand). - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): The x position on the screen where the - mouse up happens. None by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): The y position on the screen where the - mouse up happens. None by default. - button (str, int, optional): The mouse button released. TODO - - Returns: - None - - Raises: - PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, or 3 - """ ... -@_genericPyAutoGUIChecks -def click(x=..., y=..., clicks=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """ - Performs pressing a mouse button down and then immediately releasing it. Returns ``None``. - - When no arguments are passed, the primary mouse button is clicked at the mouse cursor's current location. - - If integers for ``x`` and ``y`` are passed, the click will happen at that XY coordinate. If ``x`` is a string, the - string is an image filename that PyAutoGUI will attempt to locate on the screen and click the center of. If ``x`` - is a sequence of two coordinates, those coordinates will be used for the XY coordinate to click on. - - The ``clicks`` argument is an int of how many clicks to make, and defaults to ``1``. - - The ``interval`` argument is an int or float of how many seconds to wait in between each click, if ``clicks`` is - greater than ``1``. It defaults to ``0.0`` for no pause in between clicks. - - The ``button`` argument is one of the constants ``LEFT``, ``MIDDLE``, ``RIGHT``, ``PRIMARY``, or ``SECONDARY``. - It defaults to ``PRIMARY`` (which is the left mouse button, unless the operating system has been set for - left-handed users.) - - If ``x`` and ``y`` are specified, and the click is not happening at the mouse cursor's current location, then - the ``duration`` argument is an int or float of how many seconds it should take to move the mouse to the XY - coordinates. It defaults to ``0`` for an instant move. - - If ``x`` and ``y`` are specified and ``duration`` is not ``0``, the ``tween`` argument is a tweening function - that specifies the movement pattern of the mouse cursor as it moves to the XY coordinates. The default is a - simple linear tween. See the PyTweening module documentation for more details. - - The ``pause`` parameter is deprecated. Call the ``pyautogui.sleep()`` function to implement a pause. - - Raises: - PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3 - """ +def click( + x=..., + y=..., + clicks=..., + interval=..., + button=..., + duration=..., + tween=..., + logScreenshot=..., + _pause=...) -> None: ... -@_genericPyAutoGUIChecks def leftClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Performs a left mouse button click. - - This is a wrapper function for click('left', x, y). - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - interval (float, optional): The number of seconds in between each click, - if the number of clicks is greater than 1. 0.0 by default, for no - pause in between clicks. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def rightClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Performs a right mouse button click. - - This is a wrapper function for click('right', x, y). - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - interval (float, optional): The number of seconds in between each click, - if the number of clicks is greater than 1. 0.0 by default, for no - pause in between clicks. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def middleClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Performs a middle mouse button click. - - This is a wrapper function for click('middle', x, y). - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def doubleClick(x=..., y=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Performs a double click. - - This is a wrapper function for click('left', x, y, 2, interval). - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - interval (float, optional): The number of seconds in between each click, - if the number of clicks is greater than 1. 0.0 by default, for no - pause in between clicks. - button (str, int, optional): The mouse button released. TODO - - Returns: - None - - Raises: - PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3, 4, - 5, 6, or 7 - """ ... -@_genericPyAutoGUIChecks def tripleClick(x=..., y=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Performs a triple click. - - This is a wrapper function for click('left', x, y, 3, interval). - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - interval (float, optional): The number of seconds in between each click, - if the number of clicks is greater than 1. 0.0 by default, for no - pause in between clicks. - button (str, int, optional): The mouse button released. TODO - - Returns: - None - - Raises: - PyAutoGUIException: If button is not one of 'left', 'middle', 'right', 1, 2, 3, 4, - 5, 6, or 7 - """ ... -@_genericPyAutoGUIChecks def scroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: - """Performs a scroll of the mouse scroll wheel. - - Whether this is a vertical or horizontal scroll depends on the underlying - operating system. - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - clicks (int, float): The amount of scrolling to perform. - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def hscroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: - """Performs an explicitly horizontal scroll of the mouse scroll wheel, - if this is supported by the operating system. (Currently just Linux.) - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - clicks (int, float): The amount of scrolling to perform. - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def vscroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: - """Performs an explicitly vertical scroll of the mouse scroll wheel, - if this is supported by the operating system. (Currently just Linux.) - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - clicks (int, float): The amount of scrolling to perform. - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def moveTo(x=..., y=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Moves the mouse cursor to a point on the screen. - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): The x position on the screen where the - click happens. None by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): The y position on the screen where the - click happens. None by default. - duration (float, optional): The amount of time it takes to move the mouse - cursor to the xy coordinates. If 0, then the mouse cursor is moved - instantaneously. 0.0 by default. - tween (func, optional): The tweening function used if the duration is not - 0. A linear tween is used by default. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def moveRel(xOffset=..., yOffset=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - """Moves the mouse cursor to a point on the screen, relative to its current - position. - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): How far left (for negative values) or - right (for positive values) to move the cursor. 0 by default. If tuple, this is used for x and y. - y (int, float, None, optional): How far up (for negative values) or - down (for positive values) to move the cursor. 0 by default. - duration (float, optional): The amount of time it takes to move the mouse - cursor to the new xy coordinates. If 0, then the mouse cursor is moved - instantaneously. 0.0 by default. - tween (func, optional): The tweening function used if the duration is not - 0. A linear tween is used by default. - - Returns: - None - """ ... move = ... -@_genericPyAutoGUIChecks def dragTo(x=..., y=..., duration=..., tween=..., button=..., logScreenshot=..., _pause=..., mouseDownUp=...) -> None: - """Performs a mouse drag (mouse movement while a button is held down) to a - point on the screen. - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): How far left (for negative values) or - right (for positive values) to move the cursor. 0 by default. If tuple, this is used for x and y. - If x is a str, it's considered a filename of an image to find on - the screen with locateOnScreen() and click the center of. - y (int, float, None, optional): How far up (for negative values) or - down (for positive values) to move the cursor. 0 by default. - duration (float, optional): The amount of time it takes to move the mouse - cursor to the new xy coordinates. If 0, then the mouse cursor is moved - instantaneously. 0.0 by default. - tween (func, optional): The tweening function used if the duration is not - 0. A linear tween is used by default. - button (str, int, optional): The mouse button released. TODO - mouseDownUp (True, False): When true, the mouseUp/Down actions are not performed. - Which allows dragging over multiple (small) actions. 'True' by default. - - Returns: - None - """ - ... - - -@_genericPyAutoGUIChecks -def dragRel(xOffset=..., yOffset=..., duration=..., tween=..., button=..., logScreenshot=..., _pause=..., mouseDownUp=...): - """Performs a mouse drag (mouse movement while a button is held down) to a - point on the screen, relative to its current position. - - The x and y parameters detail where the mouse event happens. If None, the - current mouse position is used. If a float value, it is rounded down. If - outside the boundaries of the screen, the event happens at edge of the - screen. - - Args: - x (int, float, None, tuple, optional): How far left (for negative values) or - right (for positive values) to move the cursor. 0 by default. If tuple, this is used for xOffset and yOffset. - y (int, float, None, optional): How far up (for negative values) or - down (for positive values) to move the cursor. 0 by default. - duration (float, optional): The amount of time it takes to move the mouse - cursor to the new xy coordinates. If 0, then the mouse cursor is moved - instantaneously. 0.0 by default. - tween (func, optional): The tweening function used if the duration is not - 0. A linear tween is used by default. - button (str, int, optional): The mouse button released. TODO - mouseDownUp (True, False): When true, the mouseUp/Down actions are not performed. - Which allows dragging over multiple (small) actions. 'True' by default. - - Returns: - None - """ ... -drag = ... - - -def isValidKey(key) -> bool: - """Returns a Boolean value if the given key is a valid value to pass to - PyAutoGUI's keyboard-related functions for the current platform. +def dragRel( + xOffset=..., + yOffset=..., + duration=..., + tween=..., + button=..., + logScreenshot=..., + _pause=..., + mouseDownUp=...): + ... - This function is here because passing an invalid value to the PyAutoGUI - keyboard functions currently is a no-op that does not raise an exception. - Some keys are only valid on some platforms. For example, while 'esc' is - valid for the Escape key on all platforms, 'browserback' is only used on - Windows operating systems. +drag = ... - Args: - key (str): The key value. - Returns: - bool: True if key is a valid value, False if not. - """ +def isValidKey(key) -> bool: ... -@_genericPyAutoGUIChecks def keyDown(key, logScreenshot=..., _pause=...) -> None: - """Performs a keyboard key press without the release. This will put that - key in a held down state. - - NOTE: For some reason, this does not seem to cause key repeats like would - happen if a keyboard key was held down on a text field. - - Args: - key (str): The key to be pressed down. The valid names are listed in - KEYBOARD_KEYS. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def keyUp(key, logScreenshot=..., _pause=...) -> None: - """Performs a keyboard key release (without the press down beforehand). - - Args: - key (str): The key to be released up. The valid names are listed in - KEYBOARD_KEYS. - - Returns: - None - """ ... -@_genericPyAutoGUIChecks def press(keys, presses=..., interval=..., logScreenshot=..., _pause=...): - """Performs a keyboard key press down, followed by a release. - - Args: - key (str, list): The key to be pressed. The valid names are listed in - KEYBOARD_KEYS. Can also be a list of such strings. - presses (integer, optional): The number of press repetitions. - 1 by default, for just one press. - interval (float, optional): How many seconds between each press. - 0.0 by default, for no pause between presses. - pause (float, optional): How many seconds in the end of function process. - None by default, for no pause in the end of function process. - Returns: - None - """ ... @contextmanager -@_genericPyAutoGUIChecks def hold(keys, logScreenshot=..., _pause=...): - """Context manager that performs a keyboard key press down upon entry, - followed by a release upon exit. - - Args: - key (str, list): The key to be pressed. The valid names are listed in - KEYBOARD_KEYS. Can also be a list of such strings. - pause (float, optional): How many seconds in the end of function process. - None by default, for no pause in the end of function process. - Returns: - None - """ ... -@_genericPyAutoGUIChecks def typewrite(message, interval=..., logScreenshot=..., _pause=...) -> None: - """Performs a keyboard key press down, followed by a release, for each of - the characters in message. - - The message argument can also be list of strings, in which case any valid - keyboard name can be used. - - Since this performs a sequence of keyboard presses and does not hold down - keys, it cannot be used to perform keyboard shortcuts. Use the hotkey() - function for that. - - Args: - message (str, list): If a string, then the characters to be pressed. If a - list, then the key names of the keys to press in order. The valid names - are listed in KEYBOARD_KEYS. - interval (float, optional): The number of seconds in between each press. - 0.0 by default, for no pause in between presses. - - Returns: - None - """ ... write = ... -@_genericPyAutoGUIChecks def hotkey(*args: str, **kwargs: Union[int, bool, None]) -> None: - """Performs key down presses on the arguments passed in order, then performs - key releases in reverse order. - - The effect is that calling hotkey('ctrl', 'shift', 'c') would perform a - "Ctrl-Shift-C" hotkey/keyboard shortcut press. - - Args: - key(s) (str): The series of keys to press, in order. This can also be a - list of key strings to press. - interval (float, optional): The number of seconds in between each press. - 0.0 by default, for no pause in between presses. - - Returns: - None - """ ... @@ -747,8 +212,6 @@ def failSafeCheck() -> None: def displayMousePosition(xOffset=..., yOffset=...): - """This function is meant to be run from the command line. It will - automatically display the location and RGB of the mouse cursor.""" ... @@ -761,48 +224,6 @@ def countdown(seconds) -> None: def run(commandStr, _ssCount=...) -> None: - """Run a series of PyAutoGUI function calls according to a mini-language - made for this function. The `commandStr` is composed of character - commands that represent PyAutoGUI function calls. - - For example, `run('ccg-20,+0c')` clicks the mouse twice, then makes - the mouse cursor go 20 pixels to the left, then click again. - - Whitespace between commands and arguments is ignored. Command characters - must be lowercase. Quotes must be single quotes. - - For example, the previous call could also be written as `run('c c g -20, +0 c')`. - - The character commands and their equivalents are here: - - `c` => `click(button=PRIMARY)` - `l` => `click(button=LEFT)` - `m` => `click(button=MIDDLE)` - `r` => `click(button=RIGHT)` - `su` => `scroll(1) # scroll up` - `sd` => `scroll(-1) # scroll down` - `ss` => `screenshot('screenshot1.png') # filename number increases on its own` - - `gX,Y` => `moveTo(X, Y)` - `g+X,-Y` => `move(X, Y) # The + or - prefix is the difference between move() and moveTo()` - `dX,Y` => `dragTo(X, Y)` - `d+X,-Y` => `drag(X, Y) # The + or - prefix is the difference between drag() and dragTo()` - - `k'key'` => `press('key')` - `w'text'` => `write('text')` - `h'key,key,key'` => `hotkey(*'key,key,key'.replace(' ', '').split(','))` - `a'hello'` => `alert('hello')` - - `sN` => `sleep(N) # N can be an int or float` - `pN` => `PAUSE = N # N can be an int or float` - - `fN(commands)` => for i in range(N): run(commands) - - Note that any changes to `PAUSE` with the `p` command will be undone when - this function returns. The original `PAUSE` setting will be reset. - - TODO - This function is under development. - """ ... diff --git a/typings/pythonwin-stubs/win32typing.pyi b/typings/pythonwin-stubs/win32typing.pyi deleted file mode 100644 index 270cb353..00000000 --- a/typings/pythonwin-stubs/win32typing.pyi +++ /dev/null @@ -1,51700 +0,0 @@ -__all__=['', 'COMMTIMEOUTS', 'CopyProgressRoutine', 'DOCINFO', 'ExportCallback', 'FORM_INFO_1', 'ImportCallback', 'LARGE_INTEGER', 'NCB', 'PRINTER_DEFAULTS', 'PyACL', 'PyBITMAP', 'PyBLENDFUNCTION', 'PyCEHANDLE', 'PyCERTSTORE', 'PyCERT_ALT_NAME_ENTRY', 'PyCERT_ALT_NAME_INFO', 'PyCERT_AUTHORITY_KEY_ID_INFO', 'PyCERT_BASIC_CONSTRAINTS2_INFO', 'PyCERT_BASIC_CONSTRAINTS_INFO', 'PyCERT_CONTEXT', 'PyCERT_EXTENSION', 'PyCERT_KEY_ATTRIBUTES_INFO', 'PyCERT_NAME_INFO', 'PyCERT_NAME_VALUE', 'PyCERT_OTHER_NAME', 'PyCERT_POLICY_INFO', 'PyCERT_PUBLIC_KEY_INFO', 'PyCOMSTAT', 'PyCOORD', 'PyCREDENTIAL', 'PyCREDENTIAL_ATTRIBUTE', 'PyCREDENTIAL_TARGET_INFORMATION', 'PyCREDUI_INFO', 'PyCRYPTHASH', 'PyCRYPTKEY', 'PyCRYPTMSG', 'PyCRYPTPROTECT_PROMPTSTRUCT', 'PyCRYPTPROV', 'PyCRYPT_ALGORITHM_IDENTIFIER', 'PyCRYPT_ATTRIBUTE', 'PyCRYPT_BIT_BLOB', 'PyCRYPT_DECRYPT_MESSAGE_PARA', 'PyCRYPT_ENCRYPT_MESSAGE_PARA', 'PyCRYPT_SIGN_MESSAGE_PARA', 'PyCRYPT_VERIFY_MESSAGE_PARA', 'PyCTL_CONTEXT', 'PyCTL_USAGE', 'PyConsoleScreenBuffer', 'PyCredHandle', 'PyCtxtHandle', 'PyDCB', 'PyDEVMODE', 'PyDEVMODEW', 'PyDISPLAY_DEVICE', 'PyDLGITEMTEMPLATE', 'PyDLGTEMPLATE', 'PyDS_HANDLE', 'PyDS_NAME_RESULT_ITEM', 'PyDateTime', 'PyDialogTemplate', 'PyEVTLOG_HANDLE', 'PyEVT_HANDLE', 'PyEVT_RPC_LOGIN', 'PyEventLogRecord', 'PyGROUP_INFO_0', 'PyGROUP_INFO_1', 'PyGROUP_INFO_1002', 'PyGROUP_INFO_1005', 'PyGROUP_INFO_2', 'PyGROUP_USERS_INFO_0', 'PyGROUP_USERS_INFO_1', 'PyGdiHANDLE', 'PyGetSignerCertificate', 'PyHANDLE', 'PyHDESK', 'PyHDEVNOTIFY', 'PyHHNTRACK', 'PyHHN_NOTIFY', 'PyHH_AKLINK', 'PyHH_FTS_QUERY', 'PyHH_POPUP', 'PyHH_WINTYPE', 'PyHINTERNET', 'PyHKEY', 'PyHTHEME', 'PyHWINSTA', 'PyICONINFO', 'PyIID', 'PyINPUT_RECORD', 'PyLOCALGROUP_INFO_0', 'PyLOCALGROUP_INFO_1', 'PyLOCALGROUP_INFO_1002', 'PyLOCALGROUP_MEMBERS_INFO_0', 'PyLOCALGROUP_MEMBERS_INFO_1', 'PyLOCALGROUP_MEMBERS_INFO_2', 'PyLOCALGROUP_MEMBERS_INFO_3', 'PyLOGBRUSH', 'PyLOGFONT', 'PyLSA_HANDLE', 'PyLUID_AND_ATTRIBUTES', 'PyLsaLogon_HANDLE', 'PyMSG', 'PyNETRESOURCE', 'PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG', 'PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG', 'PyNET_VALIDATE_PERSISTED_FIELDS', 'PyNMHDR', 'PyNOTIFYICONDATA', 'PyOVERLAPPED', 'PyOVERLAPPEDReadBuffer', 'PyPERF_COUNTER_DEFINITION', 'PyPERF_OBJECT_TYPE', 'PyPOINT', 'PyPROFILEINFO', 'PyPerfMonManager', 'PyPrinterHANDLE', 'PyRECT', 'PyResourceId', 'PySCROLLINFO', 'PySC_HANDLE', 'PySECURITY_ATTRIBUTES', 'PySECURITY_DESCRIPTOR', 'PySERVER_INFO_100', 'PySERVER_INFO_101', 'PySERVER_INFO_102', 'PySERVER_INFO_402', 'PySERVER_INFO_403', 'PySERVER_INFO_502', 'PySERVER_INFO_503', 'PySHARE_INFO_0', 'PySHARE_INFO_1', 'PySHARE_INFO_2', 'PySHARE_INFO_501', 'PySHARE_INFO_502', 'PySID', 'PySID_AND_ATTRIBUTES', 'PySIZE', 'PySMALL_RECT', 'PySTARTUPINFO', 'PySecBuffer', 'PySecBufferDesc', 'PyTOKEN_GROUPS', 'PyTOKEN_PRIVILEGES', 'PyTRIVERTEX', 'PyTRUSTEE', 'PyTS_HANDLE', 'PyTime', 'PyUSER_INFO_0', 'PyUSER_INFO_1', 'PyUSER_INFO_10', 'PyUSER_INFO_1003', 'PyUSER_INFO_1005', 'PyUSER_INFO_1006', 'PyUSER_INFO_1007', 'PyUSER_INFO_1008', 'PyUSER_INFO_1009', 'PyUSER_INFO_1010', 'PyUSER_INFO_1011', 'PyUSER_INFO_11', 'PyUSER_INFO_2', 'PyUSER_INFO_20', 'PyUSER_INFO_3', 'PyUSER_INFO_4', 'PyUSER_MODALS_INFO_0', 'PyUSER_MODALS_INFO_1', 'PyUSER_MODALS_INFO_2', 'PyUSER_MODALS_INFO_3', 'PyUSE_INFO_0', 'PyUSE_INFO_1', 'PyUSE_INFO_2', 'PyUSE_INFO_3', 'PyUnicode', 'PyUrlCacheHANDLE', 'PyWAVEFORMATEX', 'PyWINHTTP_AUTOPROXY_OPTIONS', 'PyWINHTTP_PROXY_INFO', 'PyWKSTA_INFO_100', 'PyWKSTA_INFO_101', 'PyWKSTA_INFO_102', 'PyWKSTA_INFO_302', 'PyWKSTA_INFO_402', 'PyWKSTA_INFO_502', 'PyWKSTA_TRANSPORT_INFO_0', 'PyWKSTA_USER_INFO_0', 'PyWKSTA_USER_INFO_1', 'PyWNDCLASS', 'PyXFORM', 'Pymmapfile', 'RASDIALEXTENSIONS', 'RASDIALPARAMS', 'SC_ACTION', 'SERVICE_FAILURE_ACTIONS', 'SERVICE_STATUS', 'TRACKMOUSEEVENT', 'ULARGE_INTEGER', 'WIN32_FIND_DATA', 'com_error', 'connection', 'cursor', 'error', 'COMPONENT', 'COMPONENTSOPT', 'COMPPOS', 'COMPSTATEINFO', 'DEFCONTENTMENU', 'ELEMDESC', 'EXP_DARWIN_LINK', 'EXP_SPECIAL_FOLDER', 'EXP_SZ_LINK', 'FUNCDESC', 'IDLDESC', 'MAPIINIT_0', 'NT_CONSOLE_PROPS', 'NT_FE_CONSOLE_PROPS', 'PROPSPEC', 'PyADSVALUE', 'PyADS_ATTR_INFO', 'PyADS_OBJECT_INFO', 'PyADS_SEARCHPREF_INFO', 'PyBIND_OPTS', 'PyCMINVOKECOMMANDINFO', 'PyDSBCAPS', 'PyDSBUFFERDESC', 'PyDSCAPS', 'PyDSCBCAPS', 'PyDSCBUFFERDESC', 'PyDSCCAPS', 'PyDSOP_FILTER_FLAGS', 'PyDSOP_SCOPE_INIT_INFO', 'PyDSOP_SCOPE_INIT_INFOs', 'PyDSOP_UPLEVEL_FILTER_FLAGS', 'PyFORMATETC', 'PyGFileOperationProgressSink', 'PyGSecurityInformation', 'PyIADesktopP2', 'PyIADs', 'PyIADsContainer', 'PyIADsUser', 'PyIActiveDesktop', 'PyIActiveDesktopP', 'PyIActiveScriptDebug', 'PyIActiveScriptError', 'PyIActiveScriptErrorDebug', 'PyIActiveScriptParseProcedure', 'PyIActiveScriptSite', 'PyIActiveScriptSiteDebug', 'PyIAddrBook', 'PyIApplicationDebugger', 'PyIApplicationDestinations', 'PyIApplicationDocumentLists', 'PyIAsyncOperation', 'PyIAttach', 'PyIBindCtx', 'PyIBrowserFrameOptions', 'PyICancelMethodCalls', 'PyICatInformation', 'PyICatRegister', 'PyICategoryProvider', 'PyIClassFactory', 'PyIClientSecurity', 'PyIColumnProvider', 'PyIConnectionPoint', 'PyIConnectionPointContainer', 'PyIContext', 'PyIContextMenu', 'PyICopyHookA', 'PyICopyHookW', 'PyICreateTypeInfo', 'PyICreateTypeLib', 'PyICreateTypeLib2', 'PyICurrentItem', 'PyICustomDestinationList', 'PyIDL', 'PyIDataObject', 'PyIDebugApplication', 'PyIDebugApplicationNode', 'PyIDebugApplicationNodeEvents', 'PyIDebugApplicationThread', 'PyIDebugCodeContext', 'PyIDebugDocument', 'PyIDebugDocumentContext', 'PyIDebugDocumentHelper', 'PyIDebugDocumentHost', 'PyIDebugDocumentInfo', 'PyIDebugDocumentProvider', 'PyIDebugDocumentText', 'PyIDebugDocumentTextAuthor', 'PyIDebugDocumentTextEvents', 'PyIDebugDocumentTextExternalAuthor', 'PyIDebugExpression', 'PyIDebugExpressionCallBack', 'PyIDebugExpressionContext', 'PyIDebugProperty', 'PyIDebugSessionProvider', 'PyIDebugStackFrame', 'PyIDebugStackFrameSniffer', 'PyIDebugStackFrameSnifferEx', 'PyIDebugSyncOperation', 'PyIDefaultExtractIconInit', 'PyIDirectSound', 'PyIDirectSoundBuffer', 'PyIDirectSoundCapture', 'PyIDirectSoundCaptureBuffer', 'PyIDirectSoundNotify', 'PyIDirectoryObject', 'PyIDirectorySearch', 'PyIDispatch', 'PyIDispatchEx', 'PyIDisplayItem', 'PyIDocHostUIHandler', 'PyIDropSource', 'PyIDropTarget', 'PyIDropTargetHelper', 'PyIDsObjectPicker', 'PyIEmptyVolumeCache', 'PyIEmptyVolumeCache2', 'PyIEmptyVolumeCacheCallBack', 'PyIEnumCATEGORYINFO', 'PyIEnumConnectionPoints', 'PyIEnumConnections', 'PyIEnumContextProps', 'PyIEnumDebugApplicationNodes', 'PyIEnumDebugCodeContexts', 'PyIEnumDebugExpressionContexts', 'PyIEnumDebugPropertyInfo', 'PyIEnumDebugStackFrames', 'PyIEnumExplorerCommand', 'PyIEnumFORMATETC', 'PyIEnumGUID', 'PyIEnumIDList', 'PyIEnumMoniker', 'PyIEnumObjects', 'PyIEnumRemoteDebugApplicationThreads', 'PyIEnumRemoteDebugApplications', 'PyIEnumResources', 'PyIEnumSTATPROPSETSTG', 'PyIEnumSTATPROPSTG', 'PyIEnumSTATSTG', 'PyIEnumShellItems', 'PyIEnumString', 'PyIErrorLog', 'PyIExplorerBrowser', 'PyIExplorerBrowserEvents', 'PyIExplorerCommand', 'PyIExplorerCommandProvider', 'PyIExplorerPaneVisibility', 'PyIExternalConnection', 'PyIExtractIcon', 'PyIExtractIconW', 'PyIExtractImage', 'PyIFileOperation', 'PyIIdentityName', 'PyIInitializeWithFile', 'PyIInitializeWithStream', 'PyIInputObject', 'PyIInternetBindInfo', 'PyIInternetPriority', 'PyIInternetProtocol', 'PyIInternetProtocolInfo', 'PyIInternetProtocolRoot', 'PyIInternetProtocolSink', 'PyIInternetSecurityManager', 'PyIKnownFolder', 'PyIKnownFolderManager', 'PyILockBytes', 'PyIMAPIContainer', 'PyIMAPIFolder', 'PyIMAPIProp', 'PyIMAPISession', 'PyIMAPIStatus', 'PyIMAPITable', 'PyIMachineDebugManager', 'PyIMachineDebugManagerEvents', 'PyIMessage', 'PyIMoniker', 'PyIMsgServiceAdmin', 'PyIMsgStore', 'PyINameSpaceTreeControl', 'PyINamedPropertyStore', 'PyIObjectArray', 'PyIObjectCollection', 'PyIObjectWithPropertyKey', 'PyIObjectWithSite', 'PyIOleClientSite', 'PyIOleCommandTarget', 'PyIOleControl', 'PyIOleControlSite', 'PyIOleInPlaceActiveObject', 'PyIOleInPlaceFrame', 'PyIOleInPlaceObject', 'PyIOleInPlaceSite', 'PyIOleInPlaceSiteEx', 'PyIOleInPlaceSiteWindowless', 'PyIOleInPlaceUIWindow', 'PyIOleObject', 'PyIOleWindow', 'PyIPersist', 'PyIPersistFile', 'PyIPersistFolder', 'PyIPersistFolder2', 'PyIPersistPropertyBag', 'PyIPersistSerializedPropStorage', 'PyIPersistStorage', 'PyIPersistStream', 'PyIPersistStreamInit', 'PyIProcessDebugManager', 'PyIProfAdmin', 'PyIPropertyBag', 'PyIPropertyChange', 'PyIPropertyChangeArray', 'PyIPropertyDescription', 'PyIPropertyDescriptionAliasInfo', 'PyIPropertyDescriptionList', 'PyIPropertyDescriptionSearchInfo', 'PyIPropertyEnumType', 'PyIPropertyEnumTypeList', 'PyIPropertySetStorage', 'PyIPropertyStorage', 'PyIPropertyStore', 'PyIPropertyStoreCache', 'PyIPropertyStoreCapabilities', 'PyIPropertySystem', 'PyIProvideClassInfo', 'PyIProvideClassInfo2', 'PyIProvideExpressionContexts', 'PyIProvideTaskPage', 'PyIQueryAssociations', 'PyIRelatedItem', 'PyIRemoteDebugApplication', 'PyIRemoteDebugApplicationEvents', 'PyIRemoteDebugApplicationThread', 'PyIRunningObjectTable', 'PyIScheduledWorkItem', 'PyIServerSecurity', 'PyIServiceProvider', 'PyIShellBrowser', 'PyIShellExtInit', 'PyIShellFolder', 'PyIShellFolder2', 'PyIShellIcon', 'PyIShellIconOverlay', 'PyIShellIconOverlayIdentifier', 'PyIShellIconOverlayManager', 'PyIShellItem', 'PyIShellItem2', 'PyIShellItemArray', 'PyIShellItemResources', 'PyIShellLibrary', 'PyIShellLink', 'PyIShellLinkDataList', 'PyIShellView', 'PyISpecifyPropertyPages', 'PyIStorage', 'PyIStream', 'PyITask', 'PyITaskScheduler', 'PyITaskTrigger', 'PyITaskbarList', 'PyITransferAdviseSink', 'PyITransferDestination', 'PyITransferMediumItem', 'PyITransferSource', 'PyITypeComp', 'PyITypeInfo', 'PyITypeLib', 'PyIUniformResourceLocator', 'PyIUnknown', 'PyIViewObject', 'PyIViewObject2', 'PyMAPINAMEIDArray', 'PyOLEMENUGROUPWIDTHS', 'PyPROPERTYKEY', 'PyPROPVARIANT', 'PySAndRestriction', 'PySBinaryArray', 'PySBitMaskRestriction', 'PySContentRestriction', 'PySExistRestriction', 'PySHELL_ITEM_RESOURCE', 'PySNotRestriction', 'PySOrRestriction', 'PySPropTagArray', 'PySPropValue', 'PySPropValueArray', 'PySPropertyRestriction', 'PySRestriction', 'PySRow', 'PySRowSet', 'PySSortOrderItem', 'PySSortOrderSet', 'PySTGMEDIUM', 'PyTASK_TRIGGER', 'RTF_WCSINFO', 'SHFILEINFO', 'SHFILEOPSTRUCT', 'SI_ACCESS', 'SI_INHERIT_TYPE', 'SI_OBJECT_INFO', 'STATSTG', 'TLIBATTR', 'TYPEATTR', 'TYPEDESC', 'VARDESC', 'CHARFORMAT', 'CREATESTRUCT', 'LV_COLUMN', 'LV_ITEM', 'PARAFORMAT', 'PyAssocCObject', 'PyAssocObject', 'PyCBitmap', 'PyCBrush', 'PyCButton', 'PyCCmdTarget', 'PyCCmdUI', 'PyCColorDialog', 'PyCComboBox', 'PyCCommonDialog', 'PyCControl', 'PyCControlBar', 'PyCCtrlView', 'PyCDC', 'PyCDialog', 'PyCDialogBar', 'PyCDocTemplate', 'PyCDockContext', 'PyCDocument', 'PyCEdit', 'PyCEditView', 'PyCFileDialog', 'PyCFont', 'PyCFontDialog', 'PyCFormView', 'PyCFrameWnd', 'PyCGdiObject', 'PyCImageList', 'PyCListBox', 'PyCListCtrl', 'PyCListView', 'PyCMDIChildWnd', 'PyCMDIFrameWnd', 'PyCMenu', 'PyCOleClientItem', 'PyCOleDialog', 'PyCOleDocument', 'PyCOleInsertDialog', 'PyCPrintDialog', 'PyCPrintInfo', 'PyCProgressCtrl', 'PyCPropertyPage', 'PyCPropertySheet', 'PyCRect', 'PyCRgn', 'PyCRichEditCtrl', 'PyCRichEditDoc', 'PyCRichEditDocTemplate', 'PyCRichEditView', 'PyCScrollView', 'PyCSliderCtrl', 'PyCSpinButtonCtrl', 'PyCSplitterWnd', 'PyCStatusBar', 'PyCStatusBarCtrl', 'PyCTabCtrl', 'PyCToolBar', 'PyCToolBarCtrl', 'PyCToolTipCtrl', 'PyCTreeCtrl', 'PyCTreeView', 'PyCView', 'PyCWinApp', 'PyCWinThread', 'PyCWnd', 'PyDDEConv', 'PyDDEServer', 'PyDDEStringItem', 'PyDDETopic', 'PyDLL', 'SCROLLINFO', 'TV_ITEM', 'EXTENSION_CONTROL_BLOCK', 'HSE_VERSION_INFO', 'HTTP_FILTER_AUTHENT', 'HTTP_FILTER_CONTEXT', 'HTTP_FILTER_LOG', 'HTTP_FILTER_PREPROC_HEADERS', 'HTTP_FILTER_RAW_DATA', 'HTTP_FILTER_URL_MAP', 'HTTP_FILTER_VERSION'] -from typing import * - -class COMMTIMEOUTS(object): - """A tuple representing a COMMTIMEOUTS structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class CopyProgressRoutine(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class DOCINFO(object): - """A tuple of information representing a DOCINFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def DocName(self)->'Union[str]': - """Name of document""" - pass - - - @property - def Output(self)->'Union[str]': - """Name of output file when printing to file. Use None for normal printing.""" - pass - - - @property - def DataType(self)->'Union[str]': - """Type of data to be sent to printer, eg RAW, EMF, TEXT. Use None for printer default.""" - pass - - - @property - def Type(self)->'Any': - """Flag specifying mode of operation. Can be DI_APPBANDING, DI_ROPS_READ_DESTINATION, or 0""" - pass - - -class ExportCallback(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class FORM_INFO_1(object): - """A dictionary containing FORM_INFO_1W data""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Flags(self)->'Any': - """FORM_USER, FORM_BUILTIN, or FORM_PRINTER""" - pass - - - @property - def Name(self)->'str': - """Name of form""" - pass - - - @property - def Size(self)->'Any': - """A dictionary representing a SIZEL structure {'cx':int,'cy':int}""" - pass - - - @property - def ImageableArea(self)->'Any': - """A dictionary representing a RECTL structure {'left':int, 'top':int, 'right':int, 'bottom':int}""" - pass - - -class ImportCallback(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class LARGE_INTEGER(object): - """A Python object used wherever a COM LARGE_INTEGER is used.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class NCB(object): - """A Python object that encapsulates a Win32 NCB structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Command(self)->'Any': - """""" - pass - - - @property - def Retcode(self)->'Any': - """""" - pass - - - @property - def Lsn(self)->'Any': - """""" - pass - - - @property - def Num(self)->'Any': - """""" - pass - - - @property - def Bufflen(self)->'Any': - """read-only""" - pass - - - @property - def Callname(self)->'str': - """- The strings need to be space padded to 16 chars exactly""" - pass - - - @property - def Name(self)->'str': - """- The strings need to be space padded to 16 chars exactly""" - pass - - - @property - def Rto(self)->'str': - """- The strings need to be space padded to 16 chars exactly""" - pass - - - @property - def Sto(self)->'str': - """- The strings need to be space padded to 16 chars exactly""" - pass - - - @property - def Lana_num(self)->'Any': - """""" - pass - - - @property - def Cmd_cplt(self)->'Any': - """""" - pass - - - @property - def Event(self)->'Any': - """""" - pass - - - @property - def Post(self)->'Any': - """""" - pass - - -class PRINTER_DEFAULTS(object): - """A dictionary representing a PRINTER_DEFAULTS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def pDatatype(self)->'str': - """Data type to be used for print jobs, see win32print::EnumPrintProcessorDatatypes, optional, can be None""" - pass - - - @property - def pDevMode(self)->'PyDEVMODE': - """A PyDEVMODE that specifies default printer parameters, optional, can be None""" - pass - - - @property - def DesiredAccess(self)->'Any': - """An ACCESS_MASK specifying what level of access is needed, eg PRINTER_ACCESS_ADMINISTER, PRINTER_ACCESS_USE""" - pass - - -class PyACL(object): - """A Python object, representing a ACL structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Initialize the ACL. - -Args: - - - -Returns: - - None - - """ - pass - - - def IsValid(self,) -> 'None': - """ - Determines if the ACL is valid (IsValidAcl) - -Args: - - - -Returns: - - None - - """ - pass - - - def AddAccessAllowedAce(self,revision:'Any',access:'Any',sid:'PySID',access1:'Any',sid1:'Any') -> 'None': - """ - Adds an access-allowed ACE to an DACL object. The access is granted to a - -specified SID. - -Args: - - revision(Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. - access(Any):Specifies the mask of access rights to be denied to the specified SID. - sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters - access1(Any):Specifies the mask of access rights to be denied to the specified SID. - sid1(Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. - -Returns: - - None - - """ - pass - - - def AddAccessAllowedAceEx(self,revision:'Any',aceflags:'Any',access:'Any',sid:'PySID') -> 'None': - """ - Add access allowed ACE to an ACL with ACE flags (Requires Win2k or higher) - -Args: - - revision(Any):Must be at least ACL_REVISION_DS - aceflags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) - access(Any):Specifies the mask of access rights to be granted to the specified SID. - sid(PySID):A SID object representing a user, group, or logon account being granted access. - -Returns: - - None - - """ - pass - - - def AddAccessAllowedObjectAce(self,AceRevision:'Any',AceFlags:'Any',AccessMask:'Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID') -> 'None': - """ - Adds an ACCESS_ALLOWED_OBJECT_ACE to the ACL - -Args: - - AceRevision(Any):Must be at least ACL_REVISION_DS - AceFlags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) - AccessMask(Any):Specifies the mask of access rights to be granted to the specified SID - ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None - InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None - sid(PySID):A SID object representing a user, group, or logon account being granted access. - -Returns: - - None - - """ - pass - - - def AddAccessDeniedAce(self,revision:'Any',access:'Any',sid:'PySID',access1:'Any',sid1:'Any') -> 'None': - """ - Adds an access-denied ACE to an ACL object. The access is denied to a specified - -SID. - -Args: - - revision(Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. - access(Any):Specifies the mask of access rights to be denied to the specified SID. - sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters - access1(Any):Specifies the mask of access rights to be denied to the specified SID. - sid1(Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. - -Returns: - - None - - """ - pass - - - def AddAccessDeniedAceEx(self,revision:'Any',aceflags:'Any',access:'Any',sid:'PySID') -> 'None': - """ - Add access denied ACE to an ACL with ACE flags (Requires Win2k or higher) - -Args: - - revision(Any):Must be at least ACL_REVISION_DS - aceflags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) - access(Any):Specifies the mask of access rights to be denied to the specified SID. - sid(PySID):A SID object representing a user, group, or logon account being denied access. - -Returns: - - None - - """ - pass - - - def AddMandatoryAce(self,AceRevision:'Any',AceFlags:'Any',MandatoryPolicy:'Any',LabelSid:'PySID') -> 'None': - """ - Adds a mandatory integrity level ACE to a SACL - -Args: - - AceRevision(Any):ACL_REVISION or ACL_REVISION_DS - AceFlags(Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) - MandatoryPolicy(Any):Access policy for processes with lower integrity level, combination of SYSTEM_MANDATORY_LABEL_* flags - LabelSid(PySID):Integrity level SID. This can be created using CreateWellKnownSid with Win*LabelSid. Also can be constructed manually using SECURITY_MANDATORY_LABEL_AUTHORITY and a SECURITY_MANDATORY_*_RID - -Returns: - - None - - """ - pass - - - def AddAuditAccessAce(self,dwAceRevision:'Any',dwAccessMask:'Any',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': - """ - Adds an audit ACE to a Sacl - -Args: - - dwAceRevision(Any):Revision of ACL: Pre-Win2k, must be ACL_REVISION. Win2K on up, can also be ACL_REVISION_DS - dwAccessMask(Any):Bitmask of access types to be audited - sid(PySID):SID for whom system audit messages will be generated - bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 - bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 - -Returns: - - None - - """ - pass - - - def AddAuditAccessAceEx(self,dwAceRevision:'Any',AceFlags:'Any',dwAccessMask:'Any',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': - """ - Adds an audit ACE to an Sacl, includes ace flags - -Args: - - dwAceRevision(Any):Revision of ACL: Must be at least ACL_REVISION_DS - AceFlags(Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE - dwAccessMask(Any):Bitmask of access types to be audited - sid(PySID):SID for whom system audit messages will be generated - bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 - bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 - -Returns: - - None - - """ - pass - - - def AddAuditAccessObjectAce(self,dwAceRevision:'Any',AceFlags:'Any',dwAccessMask:'Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID',bAuditSuccess:'Any',bAuditFailure:'Any') -> 'None': - """ - Adds an audit ACE for an object type identified by GUID - -Args: - - dwAceRevision(Any):Revision of ACL: Must be at least ACL_REVISION_DS - AceFlags(Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE - dwAccessMask(Any):Bitmask of access types to be audited - ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None - InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None - sid(PySID):SID for whom system audit messages will be generated - bAuditSuccess(Any):Set to 1 if access success should be audited, else 0 - bAuditFailure(Any):Set to 1 if access failure should be audited, else 0 - -Returns: - - None - - """ - pass - - - def GetAclSize(self,) -> 'Any': - """ - Returns the storage size of the ACL. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAclRevision(self,) -> 'Any': - """ - Returns revision of the ACL. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAceCount(self,) -> 'Any': - """ - Returns the number of ACEs in the ACL. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAce(self,index:'Any') -> 'Any': - """ - Gets an Ace from the ACL - -Args: - - index(Any):Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned as a tuple of:Items[0] (int, int) : aceType, AceFlags[1] int : Mask[2] PySID : sidObject ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) are returned as a tuple:[0] (int, int) : aceType, AceFlags[1] int : mask[2] PyIID : ObjectType[3] PyIID : InheritedObjectType[4] PySID : sidFor details see the API documentation. - -Returns: - - Any:Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned - -as a tuple of: -Items[0] (int, int) : aceType, AceFlags - -[1] int : Mask - -[2] PySID : sid -Object ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) - -are returned as a tuple: -[0] (int, int) : aceType, AceFlags - -[1] int : mask - -[2] PyIID : ObjectType - -[3] PyIID : InheritedObjectType - -[4] PySID : sid -For details see the API documentation. - - - """ - pass - - - def DeleteAce(self,index:'Any') -> 'None': - """ - Deletes specified Ace from an ACL. - -Args: - - index(Any):Zero-based index of the ACE to delete. - -Returns: - - None - - """ - pass - - - def GetEffectiveRightsFromAcl(self,trustee:'PyTRUSTEE') -> 'Any': - """ - Return access rights (ACCESS_MASK) that the ACL grants to - -specified trustee - -Args: - - trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structure - -Returns: - - Any - - """ - pass - - - def GetAuditedPermissionsFromAcl(self,trustee:'PyTRUSTEE') -> 'Tuple[Any, Any]': - """ - Return types of access for - -which ACL will generate an audit event for specified trustee - -Args: - - trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structureCommentsThis function is known to return the success and failure access masks in the the wrong order on Windows 2000 service pack 4. Problem has been reported to Microsoft. - -Returns: - - Tuple[Any, Any] - - """ - pass - - -class PyBITMAP(object): - """A Python object, representing an PyBITMAP structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def bmType(self)->'int': - """""" - pass - - - @property - def bmWidth(self)->'int': - """""" - pass - - - @property - def bmHeight(self)->'int': - """""" - pass - - - @property - def bmWidthBytes(self)->'int': - """""" - pass - - - @property - def bmPlanes(self)->'int': - """""" - pass - - -class PyBLENDFUNCTION(object): - """Tuple of four small ints used to fill a BLENDFUNCTION struct - -Each int must fit in a byte (0-255).""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCEHANDLE(object): - """A Python object, representing a remote Windows CE handle""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERTSTORE(object): - """Handle to a certificate store""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HCERTSTORE(self)->'Any': - """Integer handle""" - pass - - - def CertCloseStore(self,Flags:'Any'=0) -> 'None': - """ - Closes the certificate store - -Args: - - Flags(Any):Combination of CERT_CLOSE_*_FLAG flags - -Returns: - - None - - """ - pass - - - def CertControlStore(self,Flags:'Any',CtrlType:'Any',CtrlPara:'int') -> 'None': - """ - Controls sychronization of the certificate store - -Args: - - Flags(Any):One of the CERT_STORE_CTRL_*_FLAG flags - CtrlType(Any):One of the CERT_STORE_CTRL_* flags - CtrlPara(int):Event handle, can be None (not used with CERT_STORE_CTRL_COMMIT) - -Returns: - - None - - """ - pass - - - def CertEnumCertificatesInStore(self,) -> 'List[PyCERT_CONTEXT]': - """ - Lists all certificates in the store - -Args: - - - -Returns: - - List[PyCERT_CONTEXT] - - """ - pass - - - def CertEnumCTLsInStore(self,) -> 'List[PyCTL_CONTEXT]': - """ - Finds all Certificate Trust Lists in store - -Args: - - - -Returns: - - List[PyCTL_CONTEXT] - - """ - pass - - - def CertSaveStore(self,MsgAndCertEncodingType:'Any',SaveAs:'Any',SaveTo:'Any',SaveToPara:'Union[str, int]',Flags:'Any'=0) -> 'None': - """ - Serializes the store to memory or a file - -Args: - - MsgAndCertEncodingType(Any):Only used when saveas is CERT_STORE_SAVE_AS_PKCS7 - usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING - SaveAs(Any):One of the CERT_STORE_SAVE_AS_* constants - SaveTo(Any):One of the CERT_STORE_SAVE_TO_* constants (CERT_STORE_SAVE_TO_MEMORY not supported yet) - SaveToPara(Union[str, int]):File name or open file handle depending on SaveTo parm - Flags(Any):Reserved, use 0 - -Returns: - - None - - """ - pass - - - def CertAddEncodedCertificateToStore(self,CertEncodingType:'Any',CertEncoded:'Any',AddDisposition:'Any') -> 'PyCERT_CONTEXT': - """ - Imports an encoded certificate into the - -store - -Args: - - CertEncodingType(Any):Usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING - CertEncoded(Any):Data containing a serialized certificate - AddDisposition(Any):Combination of CERT_STORE_ADD_* flags - -Returns: - - PyCERT_CONTEXT - - """ - pass - - - def CertAddCertificateContextToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'Any') -> 'PyCERT_CONTEXT': - """ - Adds a certificate context to the store - -Args: - - CertContext(PyCERT_CONTEXT):Certificate context to be added - AddDisposition(Any):CERT_STORE_ADD_* constant - -Returns: - - PyCERT_CONTEXT - - """ - pass - - - def CertAddCertificateLinkToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'Any') -> 'PyCERT_CONTEXT': - """ - Adds a link to a cert in another store - -Args: - - CertContext(PyCERT_CONTEXT):Certificate context to be linked - AddDisposition(Any):One of the CERT_STORE_ADD_* values - -Returns: - - PyCERT_CONTEXT - - """ - pass - - - def CertAddCTLContextToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'Any') -> 'PyCTL_CONTEXT': - """ - Adds a certificate trust list to the store - -Args: - - CtlContext(PyCTL_CONTEXT):CTL to be added - AddDisposition(Any):CERT_STORE_ADD_* constant - -Returns: - - PyCTL_CONTEXT - - """ - pass - - - def CertAddCTLLinkToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'Any') -> 'PyCTL_CONTEXT': - """ - Adds a link to a CTL in another store - -Args: - - CtlContext(PyCTL_CONTEXT):CTL to be linked - AddDisposition(Any):One of the CERT_STORE_ADD_* values - -Returns: - - PyCTL_CONTEXT - - """ - pass - - - def CertAddStoreToCollection(self,SiblingStore:'PyCERTSTORE',UpdateFlag:'Any'=0,Priority:'Any'=0) -> 'None': - """ - Adds a sibling store to a store collection - -Args: - - SiblingStore(PyCERTSTORE):Store to be added to the collection - UpdateFlag(Any):Can be CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG to enable changes to persist - Priority(Any):Determines order in which store are searched and updatedCommentsA collection store is created by using cryptoapi::CertOpenStore with CERT_STORE_PROV_COLLECTION - -Returns: - - None - - """ - pass - - - def CertRemoveStoreFromCollection(self,SiblingStore:'PyCERTSTORE') -> 'None': - """ - Removes a sibling store from a collection - -Args: - - SiblingStore(PyCERTSTORE):Store to be removed from the collection - -Returns: - - None - - """ - pass - - - def PFXExportCertStoreEx(self,Flags:'Any',Password:'Any'=None) -> 'Any': - """ - Exports certificates and associated private keys in PKCS#12 format - -Args: - - Flags(Any):Options to be used while exporting - Password(Any):Passphrase to be used to encrypt the output - -Returns: - - Any - - """ - pass - - -class PyCERT_ALT_NAME_ENTRY(object): - """Represented as a 2-tuple""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_ALT_NAME_INFO(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_AUTHORITY_KEY_ID_INFO(object): - """Dict containing the identity of a CA""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def KeyId(self)->'Any': - """Unique identifier of private key, usually a hash""" - pass - - - @property - def CertIssuer(self)->'Any': - """Encoded DN of the Certificate Authority. Decode using X509_UNICODE_NAME""" - pass - - - @property - def CertSerialNumber(self)->'Any': - """Serial nbr of the CA's signing certificate""" - pass - - -class PyCERT_BASIC_CONSTRAINTS2_INFO(object): - """Dict representing a CERT_BASIC_CONSTRAINTS2_INFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def fCA(self)->'Any': - """Indicates if cert represents a certificate authority""" - pass - - - @property - def fPathLenConstraint(self)->'Any': - """Indicates if PathLenConstraint member is used""" - pass - - - @property - def PathLenConstraint(self)->'Any': - """Limits number of intermediate CA's between root CA and end user""" - pass - - -class PyCERT_BASIC_CONSTRAINTS_INFO(object): - """Dict representing a CERT_BASIC_CONSTRAINTS_INFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def SubjectType(self)->'PyCRYPT_BIT_BLOB': - """Contains a combination of CERT_CA_SUBJECT_FLAG,CERT_END_ENTITY_SUBJECT_FLAG""" - pass - - - @property - def fPathLenConstraint(self)->'Any': - """Indicates if PathLenConstraint member is used""" - pass - - - @property - def PathLenConstraint(self)->'Any': - """Limits number of intermediate CA's between root CA and end user""" - pass - - - @property - def SubtreesConstraint(self)->'Any': - """Sequence of encoded name blobs""" - pass - - -class PyCERT_CONTEXT(object): - """Handle to a certificate context""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HANDLE(self)->'Any': - """Pointer to CERT_CONTEXT struct""" - pass - - - @property - def CertStore(self)->'PyCERTSTORE': - """Handle to the certificate store that contains this certificate""" - pass - - - @property - def CertEncoded(self)->'Any': - """Content of the certificate as encoded bytes""" - pass - - - @property - def CertEncodingType(self)->'Any': - """Method used to encode the certifcate, usually X509_ASN_ENCODING or PKCS_7_ASN_ENCODING""" - pass - - - @property - def Version(self)->'Any': - """One of the CERT_V* values""" - pass - - - @property - def Subject(self)->'str': - """Encoded CERT_NAME_INFO struct containing the subject name. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_UNICODE_NAME, or formatted using cryptoapi::CertNameToStr""" - pass - - - @property - def Issuer(self)->'str': - """Certificate Authority that issued certificate as encoded CERT_NAME_INFO. Use cryptoapi::CryptDecodeObjectEx to decode into individual components, or cryptoapi::CertNameToStr to return a single formatted string""" - pass - - - @property - def NotBefore(self)->'PyTime': - """Beginning of certificate's period of validity""" - pass - - - @property - def NotAfter(self)->'PyTime': - """End of certificate's period of validity""" - pass - - - @property - def SignatureAlgorithm(self)->'Any': - """Object id of the certifcate's signature algorithm""" - pass - - - @property - def Extension(self)->'Tuple[PyCERT_EXTENSION, ...]': - """Sequence of CERT_EXTENSION dicts containing certificate's extensions""" - pass - - - @property - def SubjectPublicKeyInfo(self)->'PyCERT_PUBLIC_KEY_INFO': - """Encoded public key of certificate""" - pass - - - @property - def SerialNumber(self)->'Any': - """Serial number assigned by the issuer""" - pass - - - def CertFreeCertificateContext(self,) -> 'None': - """ - Frees the certificate context - -Args: - - - -Returns: - - None - - """ - pass - - - def CertEnumCertificateContextProperties(self,) -> 'List[Any]': - """ - Lists property ids for the certificate - -Args: - - - -Returns: - - List[Any] - - """ - pass - - - def CryptAcquireCertificatePrivateKey(self,Flags:'Any'=0) -> 'Tuple[Any, PyCRYPTPROV]': - """ - Retrieves the private key associated - -with the certificate - -Args: - - Flags(Any):Combination of CRYPT_ACQUIRE_*_FLAG constantsCommentsOnly the owner of the certificate can use this methodReturn ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key - -Returns: - - Tuple[Any, PyCRYPTPROV]:Combination of CRYPT_ACQUIRE_*_FLAG constants -Comments - -Only the owner of the certificate can use this method -Return ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key - - - """ - pass - - - def CertGetIntendedKeyUsage(self,) -> 'Any': - """ - Returns the intended key usage from the certificate extensions - -(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) - -Args: - - - -Returns: - - Any:PyCERT_CONTEXT.CertGetIntendedKeyUsage - -int = CertGetIntendedKeyUsage()Returns the intended key usage from the certificate extensions - -(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) -Return ValueReturns a combination of CERT_*_KEY_USAGE values - - - """ - pass - - - def CertGetEnhancedKeyUsage(self,Flags:'Any'=0) -> 'Any': - """ - Finds the enhanced key usage property and/or extension for the - -certificate - -Args: - - Flags(Any):CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0Return ValueReturns a sequence of usage OIDs - -Returns: - - Any:CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, - -CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0 -Return ValueReturns a sequence of usage OIDs - - - """ - pass - - - def CertSerializeCertificateStoreElement(self,Flags:'Any'=0) -> 'str': - """ - Serializes the certificate and its properties - -Args: - - Flags(Any):Reserved, use only 0 if passed in - -Returns: - - str - - """ - pass - - - def CertVerifySubjectCertificateContext(self,Issuer:'PyCERT_CONTEXT',Flags:'Any') -> 'Any': - """ - Checks the validity of the certificate - -Args: - - Issuer(PyCERT_CONTEXT):Certificate of authority that issued the certificate - Flags(Any):Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. - -Returns: - - Any:Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and - -CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. - - - """ - pass - - - def CertDeleteCertificateFromStore(self,) -> 'None': - """ - Removes the certificate from its store - -Args: - - - -Returns: - - None - - """ - pass - - - def CertGetCertificateContextProperty(self,PropId:'Any') -> 'Any': - """ - Retrieves the specified property from the - -certificate - -Args: - - PropId(Any):One of the CERT_*_PROP_ID constantsPropIdReturned valueCERT_ARCHIVED_PROP_IDBooleanCERT_DATE_STAMP_PROP_IDPyTimeCERT_ACCESS_STATE_PROP_IDintCERT_KEY_SPEC_PROP_IDintCERT_DESCRIPTION_PROP_IDUnicodeCERT_FRIENDLY_NAME_PROP_IDUnicodeCERT_PVK_FILE_PROP_IDUnicodeCERT_AUTO_ENROLL_PROP_IDUnicodeCERT_HASH_PROP_IDString containing a hashCERT_SHA1_HASH_PROP_IDString containing a hashCERT_MD5_HASH_PROP_IDString containing a hashCERT_SIGNATURE_HASH_PROP_IDString containing a hashCERT_KEY_IDENTIFIER_PROP_IDString containing a hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hashCERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROVCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and CERT_ENHKEY_USAGE are identical)CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_ENHANCED_KEY_USAGECERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dictCERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT structCERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx with szOID_NEXT_UPDATE_LOCATIONReturn ValueType of object returned is dependent on the property id requested. - -Returns: - - Any:One of the CERT_*_PROP_ID constants - - -PropId - - -Returned value - - - -CERT_ARCHIVED_PROP_IDBoolean -CERT_DATE_STAMP_PROP_IDPyTime -CERT_ACCESS_STATE_PROP_IDint -CERT_KEY_SPEC_PROP_IDint -CERT_DESCRIPTION_PROP_IDUnicode -CERT_FRIENDLY_NAME_PROP_IDUnicode -CERT_PVK_FILE_PROP_IDUnicode -CERT_AUTO_ENROLL_PROP_IDUnicode -CERT_HASH_PROP_IDString containing a hash -CERT_SHA1_HASH_PROP_IDString containing a hash -CERT_MD5_HASH_PROP_IDString containing a hash -CERT_SIGNATURE_HASH_PROP_IDString containing a hash -CERT_KEY_IDENTIFIER_PROP_IDString containing a hash -CERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hash -CERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROV -CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString - -containing a hash -CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString - -containing a hash -CERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and - -CERT_ENHKEY_USAGE are identical) -CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx - - - - - -with X509_ENHANCED_KEY_USAGE -CERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dict -CERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT struct -CERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx - - - - with szOID_NEXT_UPDATE_LOCATION -Return ValueType of object returned is dependent on the property id requested. - - - """ - pass - - - def CertSetCertificateContextProperty(self,PropId:'Any',Data:'Any',Flags:'Any'=0) -> 'None': - """ - Sets a property for a certificate - -Args: - - PropId(Any):Id of property to be set, CERT_*_PROP_ID - Data(Any):The value to be set for the property. Type is dependent on PropId. Use None to delete a property. - Flags(Any):Combination of CERT_SET_* flagsPropIdType of inputCERT_ARCHIVED_PROP_IDNone causes Archived flag to be cleared, any other causes it to be set no actual data, non-NULL pvData indicates presence of flagCERT_DATE_STAMP_PROP_IDPyTime specifying when cert was added to storeCERT_DESCRIPTION_PROP_IDUnicode stringCERT_FRIENDLY_NAME_PROP_IDUnicode stringCERT_PVK_FILE_PROP_IDUnicode stringCERT_AUTO_ENROLL_PROP_IDUnicode stringCERT_KEY_SPEC_PROP_IDInt, usually AT_KEYEXCHANGE or AT_SIGNATURECERT_HASH_PROP_IDString containing the hashCERT_SHA1_HASH_PROP_IDString containing the hashCERT_MD5_HASH_PROP_IDString containingg the hashCERT_SIGNATURE_HASH_PROP_IDString containing the hashCERT_KEY_IDENTIFIER_PROP_IDString containing the key idCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing the hashCERT_RENEWAL_PROP_IDString containing the hashCERT_ENHKEY_USAGE_PROP_IDString containing an encoded PyCTL_USAGE. Use cryptoapi::CryptEncodeObjectEx with X509_ENHANCED_KEY_USAGE.CERT_CTL_USAGE_PROP_IDSame as CERT_ENHKEY_USAGE_PROP_ID - -Returns: - - None - - """ - pass - - -class PyCERT_EXTENSION(object): - """Dict containing a certificate extension""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ObjId(self)->'Any': - """The OID identifying the type of extension""" - pass - - - @property - def Critical(self)->'Any': - """If true, any contraints or limits contained in the extension should be considered absolute""" - pass - - - @property - def Value(self)->'Any': - """Binary string containing ASN encoded data. To interpret or display extension data, see cryptoapi::CryptDecodeObjectEx and cryptoapi::CryptFormatObject.""" - pass - - -class PyCERT_KEY_ATTRIBUTES_INFO(object): - """Dict representing a CERT_KEY_ATTRIBUTES_INFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def KeyId(self)->'Any': - """Usually a hash that uniquely identifies the key""" - pass - - - @property - def IntendedKeyUsage(self)->'PyCRYPT_BIT_BLOB': - """Contains a byte with CERT_*_KEY_USAGE flags""" - pass - - - @property - def PrivateKeyUsagePeriod(self)->'Any': - """Private key's begin and end effective dates, may be None""" - pass - - -class PyCERT_NAME_INFO(object): - """Sequence of CERT_RDN's""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_NAME_VALUE(object): - """Dict containing type (CERT_RDN_*) and a unicode string""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_OTHER_NAME(object): - """Dict containing {ObjId, Value}. - -ObjId is one of the string object id's identifying the type of name. - -Value is a binary string containing an encoded CERT_NAME_VALUE that can be decoded - -using X509_UNICODE_NAME_VALUE to return the actual unicode string""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_POLICY_INFO(object): - """Dict containing a certificate policy""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def PolicyIdentifier(self)->'Any': - """OID identifying the policy""" - pass - - - @property - def PolicyQualifier(self)->'Any': - """Sequence of CERT_POLICY_QUALIFIER dicts""" - pass - - -class PyCERT_PUBLIC_KEY_INFO(object): - """Dict containing an exported public key""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Algorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': - """Dict containing OID of the public key algorithm""" - pass - - - @property - def PublicKey(self)->'PyCRYPT_BIT_BLOB': - """Dict containing the encoded public key""" - pass - - -class PyCOMSTAT(object): - """A Python object, representing an COMSTAT structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def cbInQue(self)->'int': - """Specifies the number of bytes received by the serial provider but not yet read by a win32file::ReadFile operation""" - pass - - - @property - def cbOutQue(self)->'int': - """Specifies the number of bytes of user data remaining to be transmitted for all write operations. This value will be zero for a nonoverlapped write.""" - pass - - - @property - def fCtsHold(self)->'int': - """Specifies whether transmission is waiting for the CTS (clear-to-send) signal to be sent. If this member is TRUE, transmission is waiting.""" - pass - - - @property - def fDsrHold(self)->'int': - """Specifies whether transmission is waiting for the DSR (data-set-ready) signal to be sent. If this member is TRUE, transmission is waiting.""" - pass - - - @property - def fRlsdHold(self)->'int': - """Specifies whether transmission is waiting for the RLSD (receive-line-signal-detect) signal to be sent. If this member is TRUE, transmission is waiting.""" - pass - - - @property - def fXoffHold(self)->'int': - """Specifies whether transmission is waiting because the XOFF character was received. If this member is TRUE, transmission is waiting.""" - pass - - - @property - def fXoffSent(self)->'int': - """Specifies whether transmission is waiting because the XOFF character was transmitted. If this member is TRUE, transmission is waiting. Transmission halts when the XOFF character is transmitted to a system that takes the next character as XON, regardless of the actual character.""" - pass - - - @property - def fEof(self)->'int': - """Specifies whether the end-of-file (EOF) character has been received. If this member is TRUE, the EOF character has been received.""" - pass - - - @property - def fTxim(self)->'int': - """If this member is TRUE, there is a character queued for transmission that has come to the communications device by way of the TransmitCommChar function. The communications device transmits such a character ahead of other characters in the device's output buffer.""" - pass - - - @property - def fReserved(self)->'int': - """Reserved; do not use.""" - pass - - -class PyCOORD(object): - """Wrapper for a COORD struct. Create using PyCOORDType(X,Y)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def X(self)->'Any': - """Horizontal coordinate""" - pass - - - @property - def Y(self)->'Any': - """Vertical coordinate""" - pass - - -class PyCREDENTIAL(object): - """A dictionary containing information for a CREDENTIAL struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Flags(self)->'Any': - """Combination of CRED_FLAGS_PROMPT_NOW, CRED_FLAGS_USERNAME_TARGET""" - pass - - - @property - def Type(self)->'Any': - """Type of credential, one of CRED_TYPE_* values""" - pass - - - @property - def TargetName(self)->'str': - """Target of credential, can end with * for wildcard matching""" - pass - - - @property - def Comment(self)->'str': - """Descriptive text""" - pass - - - @property - def LastWritten(self)->'PyTime': - """Modification time, ignored on input""" - pass - - - @property - def CredentialBlob(self)->'str': - """Contains password for username credential, or PIN for certificate credential. This member is write-only.""" - pass - - - @property - def Persist(self)->'Any': - """Specifies scope of persistence, one of CRED_PERSIST_* values""" - pass - - - @property - def Attributes(self)->'Any': - """Tuple of PyCREDENTIAL_ATTRIBUTE dicts containing application-specific data, can be None""" - pass - - - @property - def TargetAlias(self)->'str': - """Alias for TargetName, only valid with CRED_TYPE_GENERIC""" - pass - - - @property - def UserName(self)->'str': - """User to be authenticated by target. Can be of the form username@domain or domain\\username. For CRED_TYPE_DOMAIN_CERTIFICATE, use win32cred::CredMarshalCredential to marshal the SHA1 hash of user's certficate""" - pass - - -class PyCREDENTIAL_ATTRIBUTE(object): - """A dictionary containing information for a CREDENTIAL_ATTRIBUTE struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Keyword(self)->'str': - """Attribute name, at most CRED_MAX_STRING_LENGTH chars""" - pass - - - @property - def Flags(self)->'Any': - """Reserved, use only 0""" - pass - - - @property - def Value(self)->'Any': - """Attribute value, at most CRED_MAX_VALUE_SIZE bytes. Unicode objects are treated as raw bytes.""" - pass - - -class PyCREDENTIAL_TARGET_INFORMATION(object): - """A dictionary representing a CREDENTIAL_TARGET_INFORMATION struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def TargetName(self)->'str': - """Target of credentials""" - pass - - - @property - def NetbiosServerName(self)->'str': - """""" - pass - - - @property - def DnsServerName(self)->'str': - """""" - pass - - - @property - def NetbiosDomainName(self)->'str': - """""" - pass - - - @property - def DnsDomainName(self)->'str': - """""" - pass - - - @property - def DnsTreeName(self)->'str': - """""" - pass - - - @property - def PackageName(self)->'str': - """Name of security package which mapped TargetName""" - pass - - - @property - def Flags(self)->'Any': - """CRED_TI_* flags""" - pass - - - @property - def CredTypes(self)->'Tuple[Any, ...]': - """Tuple of CRED_TYPE_* values indicating which types of credentials are acceptable to target""" - pass - - -class PyCREDUI_INFO(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Parent(self)->'int': - """Handle to parent window, can be None""" - pass - - - @property - def MessageText(self)->'str': - """Message to appear in dialog""" - pass - - - @property - def CaptionText(self)->'str': - """Title of the dialog window""" - pass - - - @property - def Banner(self)->'int': - """Handle to a bitmap to be displayed""" - pass - - -class PyCRYPTHASH(object): - """Handle to a cryptographic hash""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CryptDestroyHash(self,) -> 'None': - """ - Frees the hash object - -Args: - - - -Returns: - - None - - """ - pass - - - def CryptDuplicateHash(self,Flags:'Any'=0) -> 'PyCRYPTHASH': - """ - Clones the hash object - -Args: - - Flags(Any):Reserved, use 0 if passed - -Returns: - - PyCRYPTHASH - - """ - pass - - - def CryptHashData(self,Data:'str',Flags:'Any'=0) -> 'None': - """ - Adds data to the hash - -Args: - - Data(str):Data to be hashed - Flags(Any):CRYPT_USERDATA or 0CommentsIf Flags is CRYPT_USERDATA, provider is expected to prompt user to enter data. MSDN says that MS CSPs ignore this flag - -Returns: - - None - - """ - pass - - - def CryptHashSessionKey(self,Key:'PyCRYPTKEY',Flags:'Any'=0) -> 'None': - """ - Hashes a session key - -Args: - - Key(PyCRYPTKEY):The session key to be hashed - Flags(Any):CRYPT_LITTLE_ENDIAN or 0 - -Returns: - - None - - """ - pass - - - def CryptSignHash(self,KeySpec:'Any',Flags:'Any'=0) -> 'str': - """ - Signs the hash - -Args: - - KeySpec(Any):The key to be used to sign the hash, AT_KEYEXCHANGE,AT_SIGNATURE - Flags(Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0CommentsThis methods signs only the hash, not the data that the hash represents - -Returns: - - str - - """ - pass - - - def CryptVerifySignature(self,Signature:'str',PubKey:'PyCRYPTKEY',Flags:'Any'=0) -> 'None': - """ - Verifies that a signature matches hashed data - -Args: - - Signature(str):Signature data to verify - PubKey(PyCRYPTKEY):Public key of signer - Flags(Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0 - -Returns: - - None - - """ - pass - - - def CryptGetHashParam(self,Param:'Any',Flags:'Any'=0) -> 'Union[Any]': - """ - Retrieves the specified attribute of the hash - -Args: - - Param(Any):The parameter to retrieve: HP_ALGID, HP_HASHSIZE, or HP_HASHVAL - Flags(Any):Reserved, use 0 if passed inCommentsAfter this method has been called, no more data can be hashedReturn ValueType of returned object is dependent on the Param passed in - -Returns: - - Union[Any]:Reserved, use 0 if passed in -Comments - -After this method has been called, no more data can be hashed -Return ValueType of returned object is dependent on the Param passed in - - - """ - pass - - -class PyCRYPTKEY(object): - """Handle to a cryptographic key""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HCRYPTPROV(self)->'Any': - """CSP used by the key""" - pass - - - @property - def HCRYPTKEY(self)->'Any': - """Plain integer handle to the key""" - pass - - - def CryptDestroyKey(self,) -> 'None': - """ - Releases the handle to the key (does not delete permanent keys) - -Args: - - - -Returns: - - None - - """ - pass - - - def CryptExportKey(self,ExpKey:'PyCRYPTKEY',BlobType:'Any',Flags:'Any'=0) -> 'Any': - """ - Exports key or key pair as an encrypted blob - -Args: - - ExpKey(PyCRYPTKEY):Public key or session key of destination user. Use None if exporting a PUBLICKEYBLOB - BlobType(Any):One of OPAQUEKEYBLOB,PRIVATEKEYBLOB,PUBLICKEYBLOB,SIMPLEBLOB,PLAINTEXTKEYBLOB,SYMMETRICWRAPKEYBLOB - Flags(Any):Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey - -Returns: - - Any:Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0 -Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey - - - """ - pass - - - def CryptGetKeyParam(self,Param:'Any',Flags:'Any'=0) -> 'Any': - """ - Retrieves key parameters - -Args: - - Param(Any):One of the KP_* constants - Flags(Any):Reserved, use only 0Return ValueType of returned object is dependent on the requested attribute - -Returns: - - Any:Reserved, use only 0 -Return ValueType of returned object is dependent on the requested attribute - - - """ - pass - - - def CryptDuplicateKey(self,Reserved:'Any'=0,Flags:'Any'=0) -> 'PyCRYPTKEY': - """ - Creates an independent copy of the key - -Args: - - Reserved(Any):Use 0 if passed in - Flags(Any):Also reserved, use 0 - -Returns: - - PyCRYPTKEY - - """ - pass - - - def CryptEncrypt(self,Final:'Any',Data:'Any',Hash:'PyCRYPTHASH'=None,Flags:'Any'=0) -> 'Any': - """ - Encrypts and optionally hashes data - -Args: - - Final(Any):Boolean, use True if this is final encryption operation - Data(Any):Data to be encrypted - Hash(PyCRYPTHASH):Hash to be updated with data passed in, can be None - Flags(Any):Reserved, use 0 if passed in - -Returns: - - Any - - """ - pass - - - def CryptDecrypt(self,Final:'Any',Data:'Any',Hash:'PyCRYPTHASH'=None,Flags:'Any'=0) -> 'Any': - """ - Decrypts data - -Args: - - Final(Any):Boolean, use True is this is last (or only) operation - Data(Any):Data to be decrypted - Hash(PyCRYPTHASH):Hash to be used in signature verification, can be None - Flags(Any):Reserved, use only 0 - -Returns: - - Any - - """ - pass - - -class PyCRYPTMSG(object): - """Wrapper for a cryptographic message handle""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HCRYPTMSG(self)->'Any': - """Raw message handle""" - pass - - - def CryptMsgClose(self,) -> 'None': - """ - Closes the message handle - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCRYPTPROTECT_PROMPTSTRUCT(object): - """A tuple representing a CRYPTPROTECT_PROMPTSTRUCT structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCRYPTPROV(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CryptReleaseContext(self,Flags:'Any'=0) -> 'None': - """ - Releases the CSP handle - -Args: - - Flags(Any):Reserved, use 0 if passed in - -Returns: - - None - - """ - pass - - - def CryptGenKey(self,Algid:'Any',Flags:'Any',KeyLen:'Any'=0) -> 'PyCRYPTKEY': - """ - Generates a key pair or a session key - -Args: - - Algid(Any):Algorithm identifier, one of the CALG_* values, or AT_KEYEXCHANGE/AT_SIGNATURE - Flags(Any):Combination of CRYPT_CREATE_SALT,CRYPT_EXPORTABLE,CRYPT_NO_SALT,CRYPT_PREGEN,CRYPT_USER_PROTECTED,CRYPT_ARCHIVABLE - KeyLen(Any):Length of key to generate, can be 0 to use provider's default key lengthCommentsDiffers from Api call in that the length is passed in separately - -Returns: - - PyCRYPTKEY - - """ - pass - - - def CryptGetProvParam(self,Param:'Any',Flags:'Any'=0) -> 'None': - """ - Retrieves specified attribute of provider - -Args: - - Param(Any):One of the PP_* values - Flags(Any):If param if PP_KEYSET_SEC_DESCR, can be a combination of OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATIONReturn ValueType of returned object is dependent on the attribute requested - -Returns: - - None:If param if PP_KEYSET_SEC_DESCR, can be a combination of - -OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATION -Return ValueType of returned object is dependent on the attribute requested - - - """ - pass - - - def CryptGetUserKey(self,KeySpec:'Any') -> 'PyCRYPTKEY': - """ - Returns a handle to one of user's key pairs - -Args: - - KeySpec(Any):AT_KEYEXCHANGE or AT_SIGNATURE (some providers may implement extra key specs) - -Returns: - - PyCRYPTKEY - - """ - pass - - - def CryptGenRandom(self,Len:'Any',SeedData:'str'=None) -> 'str': - """ - Generates random data of specified length - -Args: - - Len(Any):Number of bytes to generate - SeedData(str):Random seed data - -Returns: - - str - - """ - pass - - - def CryptCreateHash(self,Algid:'Any',Key:'PyCRYPTKEY'=None,Flags:'Any'=0) -> 'PyCRYPTHASH': - """ - Creates a hash object for hashing large amounts of data - -Args: - - Algid(Any):An algorithm identifier, CALG_*. - Key(PyCRYPTKEY):Used only for keyed hashes (MAC or HMAC), use None otherwise - Flags(Any):Reserved, use 0 if passed in - -Returns: - - PyCRYPTHASH - - """ - pass - - - def CryptImportKey(self,Data:'Any',PubKey:'PyCRYPTKEY'=None,Flags:'Any'=0) -> 'PyCRYPTKEY': - """ - None - -Args: - - Data(Any):The key blob to be imported - PubKey(PyCRYPTKEY):Key to be used to decrypt the blob, not used for importing public keys - Flags(Any):Combination of CRYPT_EXPORTABLE, CRYPT_OAEP, CRYPT_NO_SALT, CRYPT_USER_PROTECTED - -Returns: - - PyCRYPTKEY - - """ - pass - - - def CryptExportPublicKeyInfo(self,KeySpec:'Any',CertEncodingType:'Any') -> 'PyCERT_PUBLIC_KEY_INFO': - """ - Exports a public key to send to other users - -Returned dict can be serialized for sending to another python application using pickle.dump - -Args: - - KeySpec(Any):AT_KEYEXCHANGE or AT_SIGNATURE - CertEncodingType(Any):Specifies encoding for exported key info - -Returns: - - PyCERT_PUBLIC_KEY_INFO - - """ - pass - - - def CryptImportPublicKeyInfo(self,Info:'Any',CertEncodingType:'Any') -> 'PyCRYPTKEY': - """ - Imports another user's public key - -Args: - - Info(Any):PyCERT_PUBLIC_KEY_INFO dictionary as returned by PyCRYPTPROV::CryptExportPublicKeyInfo - CertEncodingType(Any):Specifies encoding for exported key info - -Returns: - - PyCRYPTKEY - - """ - pass - - -class PyCRYPT_ALGORITHM_IDENTIFIER(object): - """Dictionary containing information that identifies an encryption - -algorithm and any extra parameters it requires""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ObjId(self)->'Any': - """An szOID_* string identifying the algorithm""" - pass - - - @property - def Parameters(self)->'Any': - """Blob of binary data containing encoded parameters""" - pass - - -class PyCRYPT_ATTRIBUTE(object): - """Dict representing a CRYPT_ATTRIBUTE struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ObjId(self)->'Any': - """An szOID_* string identifying the attribute""" - pass - - - @property - def Value(self)->'Tuple[Any, ...]': - """A sequence of buffers containing the attribute values""" - pass - - -class PyCRYPT_BIT_BLOB(object): - """Dict containing raw data of a certain bit length""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Data(self)->'Any': - """Binary data""" - pass - - - @property - def UnusedBits(self)->'Any': - """Nbr of bits of last byte that are unused""" - pass - - -class PyCRYPT_DECRYPT_MESSAGE_PARA(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def CertStores(self)->'Tuple[Any, ...]': - """Sequence of certificate stores to be searched for a certificate with a private key that can be used to decrypt the message""" - pass - - - @property - def MsgAndCertEncodingType(self)->'Any': - """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" - pass - - - @property - def Flags(self)->'Any': - """Optional. CRYPT_MESSAGE_SILENT_KEYSET_FLAG can be used to suppress any dialogs that might be triggered by accessing a key container, such as a request for a PIN.""" - pass - - -class PyCRYPT_ENCRYPT_MESSAGE_PARA(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ContentEncryptionAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': - """Identifies the algorithm to be used""" - pass - - - @property - def CryptProv(self)->'PyCRYPTPROV': - """Optional. Handle to provider that will perform encryption, can be None for default provider""" - pass - - - @property - def EncryptionAuxInfo(self)->'Any': - """Optional. Extra info required by some CSP's. Not supported yet, use only None""" - pass - - - @property - def Flags(self)->'Any': - """Optional. Combination of CRYPT_MESSAGE_*_FLAG constants""" - pass - - - @property - def InnerContentType(self)->'Any': - """Optional. Only used if message to be encrypted is already encoded""" - pass - - - @property - def MsgEncodingType(self)->'Any': - """Optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" - pass - - -class PyCRYPT_SIGN_MESSAGE_PARA(object): - """Dict of parms defining how a message will be signed""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def SigningCert(self)->'PyCERT_CONTEXT': - """Certficate to be used to sign message""" - pass - - - @property - def HashAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': - """Algorithm to be used for signed hash""" - pass - - - @property - def HashAuxInfo(self)->'Any': - """Optional. Param is reserved, use only None.""" - pass - - - @property - def MsgCert(self)->'Tuple[PyCERT_CONTEXT, ...]': - """Optional sequence of certificate to be included in the message.""" - pass - - - @property - def MsgCrl(self)->'Tuple[Any, ...]': - """Optional. Sequence of certificate revocation lists. Not yet supported, use only None.""" - pass - - - @property - def AuthAttr(self)->'Tuple[PyCRYPT_ATTRIBUTE, ...]': - """Sequence of canonical attributes to be added to the message""" - pass - - - @property - def UnauthAttr(self)->'Tuple[PyCRYPT_ATTRIBUTE, ...]': - """Sequence of arbitrary attributes""" - pass - - - @property - def Flags(self)->'Any': - """Optional CRYPT_MESSAGE_*_FLAG that indicates content type if output is to be further encoded.""" - pass - - - @property - def InnerContentType(self)->'Any': - """Optional, one of the CMSG_* content types if message is already encoded, .""" - pass - - - @property - def MsgEncodingType(self)->'Any': - """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" - pass - - -class PyCRYPT_VERIFY_MESSAGE_PARA(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def MsgAndCertEncodingType(self)->'Any': - """Encoding types, defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" - pass - - - @property - def CryptProv(self)->'PyCRYPTPROV': - """CSP to be used to verify signature. Use None for default provider.""" - pass - - - @property - def PyGetSignerCertificate(self)->'Any': - """Callback function that locates signer's certificate.""" - pass - - - @property - def GetArg(self)->'Any': - """Argument to be passed to above function, can be any object.""" - pass - - -class PyCTL_CONTEXT(object): - """Object containing a Certificate Trust List""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HCTL_CONTEXT(self)->'Any': - """Raw message handle""" - pass - - - def CertFreeCTLContext(self,) -> 'None': - """ - Closes the CTL handle - -Args: - - - -Returns: - - None - - """ - pass - - - def CertEnumCTLContextProperties(self,) -> 'Tuple[Any, ...]': - """ - Lists property id's for the context - -Args: - - - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def CertEnumSubjectInSortedCTL(self,) -> 'Tuple[Tuple[Any, Any], ...]': - """ - Retrieves trusted subjects contained in CRL - -Args: - - - -Returns: - - Tuple[Tuple[Any, Any], ...]:PyCTL_CONTEXT.CertEnumSubjectInSortedCTL - -((str,str),...) = CertEnumSubjectInSortedCTL()Retrieves trusted subjects contained in CRL -Return ValueReturns a sequence of tuples containing two strings (SubjectIdentifier, EncodedAttributes) - - - """ - pass - - - def CertDeleteCTLFromStore(self,) -> 'None': - """ - Removes the CTL from the store that it is contained in - -Args: - - - -Returns: - - None - - """ - pass - - - def CertSerializeCTLStoreElement(self,Flags:'Any'=0) -> 'str': - """ - Serializes the CTL and its properties - -Args: - - Flags(Any):Reserved, use only 0 if passed in - -Returns: - - str - - """ - pass - - -class PyCTL_USAGE(object): - """Sequence of string OIDs (szOID_*). This struct is identical to CERT_ENHKEY_USAGE.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyConsoleScreenBuffer(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetConsoleActiveScreenBuffer(self,) -> 'None': - """ - Sets this handle as the currently displayed screen - -buffer - -Args: - - - -Returns: - - None - - """ - pass - - - def GetConsoleCursorInfo(self,) -> 'Tuple[Any, Any]': - """ - Retrieves size and visibility of console's - -cursor - -Args: - - - -Returns: - - Tuple[Any, Any]:PyConsoleScreenBuffer.GetConsoleCursorInfo - -(Size, bVisible) = GetConsoleCursorInfo()Retrieves size and visibility of console's - -cursor -Return ValueReturns the size of the console's cursor expressed as a percentage of character size, and a boolen indicating - -if cursor is visible - - - """ - pass - - - def SetConsoleCursorInfo(self,Size:'Any',Visible:'Any') -> 'None': - """ - Sets the size and visibility of console's cursor - -Args: - - Size(Any):Percentage of character size that cursor will occupy - Visible(Any):Determines if cursor is visible - -Returns: - - None - - """ - pass - - - def GetConsoleMode(self,) -> 'Any': - """ - Returns the input or output mode of the console buffer - -Args: - - - -Returns: - - Any:PyConsoleScreenBuffer.GetConsoleMode - -int = GetConsoleMode()Returns the input or output mode of the console buffer -Return ValueReturns a combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants - - - """ - pass - - - def SetConsoleMode(self,Mode:'Any') -> 'None': - """ - Sets the input or output mode of the console buffer - -Args: - - Mode(Any):Combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants - -Returns: - - None - - """ - pass - - - def ReadConsole(self,NumberOfCharsToRead:'Any') -> 'Any': - """ - Reads characters from the console input buffer - -Args: - - NumberOfCharsToRead(Any):Characters to read - -Returns: - - Any - - """ - pass - - - def WriteConsole(self,Buffer:'Any') -> 'Any': - """ - Writes characters at current cursor position - -Args: - - Buffer(Any):String or Unicode to be written to consoleReturn ValueReturns the number of characters written - -Returns: - - Any:String or Unicode to be written to consoleReturn ValueReturns the number of characters written - - - """ - pass - - - def FlushConsoleInputBuffer(self,) -> 'None': - """ - Flush input buffer - -Args: - - - -Returns: - - None - - """ - pass - - - def SetConsoleTextAttribute(self,Attributes:'Any') -> 'None': - """ - Sets character attributes for subsequent write operations - -Args: - - Attributes(Any):Attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants - -Returns: - - None - - """ - pass - - - def SetConsoleCursorPosition(self,CursorPosition:'PyCOORD') -> 'None': - """ - Sets the console screen buffer's cursor position - -Args: - - CursorPosition(PyCOORD):A PyCOORD containing the new cursor position - -Returns: - - None - - """ - pass - - - def SetConsoleScreenBufferSize(self,Size:'PyCOORD') -> 'None': - """ - Sets the size of the console screen buffer - -Args: - - Size(PyCOORD):COORD object containing the new dimensions - -Returns: - - None - - """ - pass - - - def SetConsoleWindowInfo(self,Absolute:'Any',ConsoleWindow:'PySMALL_RECT') -> 'None': - """ - Changes size and position of a console's window - -Args: - - Absolute(Any):If False, coordinates are relative to current position - ConsoleWindow(PySMALL_RECT):A SMALL_RECT containing the new window coordinates - -Returns: - - None - - """ - pass - - - def GetConsoleScreenBufferInfo(self,) -> 'Any': - """ - Returns the state of the screen buffer - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetLargestConsoleWindowSize(self,) -> 'PyCOORD': - """ - Returns the largest possible size for the - -console's window - -Args: - - - -Returns: - - PyCOORD - - """ - pass - - - def FillConsoleOutputAttribute(self,Attribute:'Any',Length:'Any',WriteCoord:'PyCOORD') -> 'Any': - """ - Set text attributes for a consecutive series of - -characters - -Args: - - Attribute(Any):Text attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants - Length(Any):The number of characters to set - WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set - -Returns: - - Any:The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set - - - """ - pass - - - def FillConsoleOutputCharacter(self,Character:'Any',Length:'Any',WriteCoord:'PyCOORD') -> 'Any': - """ - Sets consecutive character positions to a specified - -character - -Args: - - Character(Any):A single character to be used to fill the specified range - Length(Any):The number of characters positions to fill - WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of characters actually written - -Returns: - - Any:The screen position to begin atReturn ValueReturns the number of characters actually written - - - """ - pass - - - def ReadConsoleOutputCharacter(self,Length:'Any',ReadCoord:'PyCOORD') -> 'str': - """ - Reads consecutive characters from a starting - -position - -Args: - - Length(Any):The number of characters positions to read - ReadCoord(PyCOORD):The screen position start reading from - -Returns: - - str - - """ - pass - - - def ReadConsoleOutputAttribute(self,Length:'Any',ReadCoord:'PyCOORD') -> 'Tuple[Any, ...]': - """ - Retrieves attributes from consecutive character - -cells - -Args: - - Length(Any):The number of attributes to read - ReadCoord(PyCOORD):The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters - -Returns: - - Tuple[Any, ...]:The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters - - - """ - pass - - - def WriteConsoleOutputCharacter(self,Characters:'Any',WriteCoord:'PyCOORD') -> 'Any': - """ - Writes a string of characters at a specified position - -Args: - - Characters(Any):Characters to be written - WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of characters actually written - -Returns: - - Any:The screen position at which to start writingReturn ValueReturns the number of characters actually written - - - """ - pass - - - def WriteConsoleOutputAttribute(self,Attributes:'Tuple[Any, ...]',WriteCoord:'PyCOORD') -> 'Any': - """ - Sets the attributes of a range of character cells - -Args: - - Attributes(Tuple[Any, ...]):A sequence of ints containing the attributes to be set - WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of attributes set - -Returns: - - Any:The screen position at which to start writingReturn ValueReturns the number of attributes set - - - """ - pass - - - def ScrollConsoleScreenBuffer(self,ScrollRectangle:'PySMALL_RECT',ClipRectangle:'PySMALL_RECT',DestinationOrigin:'PyCOORD',FillCharacter:'Any',FillAttribute:'Any') -> 'None': - """ - Scrolls a region of the display - -Args: - - ScrollRectangle(PySMALL_RECT):The region to be scrolled - ClipRectangle(PySMALL_RECT):Rectangle that limits display area affected, can be None - DestinationOrigin(PyCOORD):The position to which ScrollRectangle will be moved - FillCharacter(Any):Character to fill in the area left blank by scrolling operation - FillAttribute(Any):Text attributes to apply to FillCharacter - -Returns: - - None - - """ - pass - - - def GetCurrentConsoleFont(self,MaximumWindow:'Any'=False) -> 'Tuple[Any, PyCOORD]': - """ - Returns currently displayed font - -Args: - - MaximumWindow(Any):If True, retrieves font size for maximum window sizeCommentsOnly exists on XP or later. MSDN docs claim the returned COORD is the font size, but it's actually the window size. Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size.Return ValueReturns the index of current font and window size - -Returns: - - Tuple[Any, PyCOORD]:If True, retrieves font size for maximum window size -Comments - -Only exists on XP or later. - -MSDN docs claim the returned COORD is the font size, but it's actually the window size. - -Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size. -Return ValueReturns the index of current font and window size - - - """ - pass - - - def GetConsoleFontSize(self,Font:'Any') -> 'PyCOORD': - """ - Returns size of specified font for the console - -Args: - - Font(Any):Index of font as returned by GetCurrentConsoleFontCommentsOnly exists on XP or later. - -Returns: - - PyCOORD - - """ - pass - - - def SetConsoleFont(self,Font:'Any') -> 'None': - """ - Changes the font used by the screen buffer - -Args: - - Font(Any):The number of the font to be setCommentsFunction is not documented on MSDN - -Returns: - - None - - """ - pass - - - def SetStdHandle(self,StdHandle:'Any') -> 'None': - """ - Replaces one of calling process's standard handles with this handle - -Args: - - StdHandle(Any):Specifies handle to be replaced - STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE - -Returns: - - None - - """ - pass - - - def SetConsoleDisplayMode(self,Flags:'Any',NewScreenBufferDimensions:'PyCOORD') -> 'None': - """ - Sets the display mode of the console buffer - -Args: - - Flags(Any):CONSOLE_FULLSCREEN_MODE or CONSOLE_WINDOWED_MODE - NewScreenBufferDimensions(PyCOORD):New size of the screen buffer in characters - -Returns: - - None - - """ - pass - - - def WriteConsoleInput(self,Buffer:'Tuple[PyINPUT_RECORD, ...]') -> 'Any': - """ - Places input records in the console's input queue - -Args: - - Buffer(Tuple[PyINPUT_RECORD, ...]):A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written - -Returns: - - Any:A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written - - - """ - pass - - - def ReadConsoleInput(self,Length:'Any') -> 'Tuple[PyINPUT_RECORD, ...]': - """ - Reads input records and removes them from - -the input queue - -Args: - - Length(Any):The number of input records to readCommentsThis functions blocks until at least one record is read. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects - -Returns: - - Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments - -This functions blocks until at least one record is read. - -The number of records returned may be less than the nbr requested -Return ValueReturns a sequence of PyINPUT_RECORD objects - - - """ - pass - - - def PeekConsoleInput(self,Length:'Any') -> 'Tuple[PyINPUT_RECORD, ...]': - """ - Returns pending input records without - -removing them from the input queue - -Args: - - Length(Any):The number of input records to readCommentsThis function does not block as ReadConsoleInput does. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects - -Returns: - - Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments - -This function does not block as ReadConsoleInput does. - -The number of records returned may be less than the nbr requested -Return ValueReturns a sequence of PyINPUT_RECORD objects - - - """ - pass - - - def GetNumberOfConsoleInputEvents(self,) -> 'Any': - """ - Returns the number of unread records in the input - -queue - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCredHandle(object): - """Handle to a set of logon credentials, used with sspi authentication functions""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Detach(self,) -> 'Any': - """ - Disassociates object from handle and returns integer value of handle, - -Args: - - - -Returns: - - Any - - """ - pass - - - def FreeCredentialsHandle(self,) -> 'None': - """ - Releases the credentials handle and makes object unusable - -Args: - - - -Returns: - - None - - """ - pass - - - def QueryCredentialsAttributes(self,Attribute:'Any') -> 'None': - """ - Returns information about the credentials - -Args: - - Attribute(Any):SECPKG_* constant specifying which type of information to returnCommentsOnly SECPKG_CRED_ATTR_NAMES currently supportedAttributeReturn typeSECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials representSECPKG_ATTR_SUPPORTED_ALGSNot supported yet SecPkgCred_SupportedAlgs:SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet SecPkgCred_CipherStrengths:SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet SecPkgCred_SupportedProtocols:Return ValueType of returned values is dependent on Attribute - -Returns: - - None:SECPKG_* constant specifying which type of information to returnComments - -Only SECPKG_CRED_ATTR_NAMES currently supported - - - -Attribute - - -Return type - - - -SECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials represent -SECPKG_ATTR_SUPPORTED_ALGSNot supported yet - -SecPkgCred_SupportedAlgs: -SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet - -SecPkgCred_CipherStrengths: -SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet - -SecPkgCred_SupportedProtocols: -Return ValueType of returned values is dependent on Attribute - - - """ - pass - - -class PyCtxtHandle(object): - """Security context handle, as used with sspi functions""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Detach(self,) -> 'Any': - """ - Disassociates object from handle and returns integer value of handle - -Args: - - - -Returns: - - Any - - """ - pass - - - def CompleteAuthToken(self,Token:'PySecBufferDesc') -> 'None': - """ - Completes the authentication token - -Args: - - Token(PySecBufferDesc):The buffer that contains the token buffer used when the context was initializedCommentsThis method should be invoked on a context handle if the InitializeSecurityContext call that created it returned SEC_I_COMPLETE_NEEDED or SEC_I_COMPLETE_AND_CONTINUE - -Returns: - - None - - """ - pass - - - def QueryContextAttributes(self,Attribute:'Any') -> 'None': - """ - Retrieves info about a security context - -Args: - - Attribute(Any):SECPKG_ATTR_* constantCommentsNot all attributes are available for every security packageAttributeReturn typeSECPKG_ATTR_ACCESS_TOKENPyHANDLE - returns a handle to the context's access tokenSECPKG_ATTR_AUTHORITYPyUnicode - returns the name of the authenticating entitySECPKG_ATTR_CIPHER_STRENGTHS(int,int) - returns the mininum and maximum cipher strengths allowedSECPKG_ATTR_CONNECTION_INFOReturns a dictionary of connection info representing a SecPkgContext_ConnectionInfo structSECPKG_ATTR_SESSION_KEYstring - returns the session key for the contextSECPKG_ATTR_ISSUER_LIST_EX(int, string) - Returns names of trusted certificate issuersSECPKG_ATTR_FLAGSint - returns flags negotiated when context was establishedSECPKG_ATTR_PACKAGE_INFOdict - returns dictionary containing info for context's security packageSECPKG_ATTR_NEGOTIATION_INFO(int, dict) - returns state of negotiation (SECPKG_NEGOTIATION_COMPLETE, SECPKG_NEGOTIATION_OPTIMISTIC,SECPKG_NEGOTIATION_IN_PROGRESS) and info for negotiated packageSECPKG_ATTR_NAMESPyUnicode - returns the user name for the contextSECPKG_ATTR_SIZESdict containing buffer sizes to be used with the contextSECPKG_ATTR_PASSWORD_EXPIRYPyTime - returns time password expiresSECPKG_ATTR_LIFESPAN(PyTime,PyTime) - returns time period during which context is validSECPKG_ATTR_NATIVE_NAMES(PyUnicode,PyUnicode) - returns client and server namesSECPKG_ATTR_TARGET_INFORMATIONstring - returns the target for the contextSECPKG_ATTR_STREAM_SIZESdict (see SecPkgContext_StreamSizes) containing message buffer sizesSECPKG_ATTR_KEY_INFOdict (see SecPkgContext_KeyInfo) containing encryption key parametersSECPKG_ATTR_DCE_INFOnot supported yet SecPkgContext_DceInfoSECPKG_ATTR_LOCAL_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_REMOTE_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_ROOT_STOREnot supported yet HCERTCONTEXTSECPKG_ATTR_SUPPORTED_ALGSnot supported yet SecPkgCred_SupportedAlgsSECPKG_ATTR_SUPPORTED_PROTOCOLSnot supported yet SecPkgCred_SupportedProtocols - -Returns: - - None - - """ - pass - - - def DeleteSecurityContext(self,) -> 'None': - """ - Frees the security context and invalidates the handle - -Args: - - - -Returns: - - None - - """ - pass - - - def QuerySecurityContextToken(self,) -> 'Any': - """ - Returns the access token for a security context - -Args: - - - -Returns: - - Any - - """ - pass - - - def MakeSignature(self,fqop:'Any',Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': - """ - Creates a crytographic hash of a message using session key of the security - -context - -Args: - - fqop(Any):Flags that indicate quality of protection desired, specific to each security package - Message(PySecBufferDesc):Buffer set that includes buffers for input data and output signature - MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKENReturn ValueReturns None on success, and output buffer in Message will contain the signature - -Returns: - - None:A sequential number used by some packages to verify that no extraneous messages have - -been receivedComments - -The buffer configuration is dependent on the security package. Usually there is one input buffer of - -type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKEN -Return ValueReturns None on success, and output buffer in Message will contain the signature - - - """ - pass - - - def VerifySignature(self,Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': - """ - None - -Args: - - Message(PySecBufferDesc):SecBufferDesc that contains data buffer and signature buffer - MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is a data buffer of type SECBUFFER_DATA and a signature buffer of type SECBUFFER_TOKENReturn ValueReturns quality of protection flags used to create signature - -Returns: - - None:A sequential number used by some packages to verify that no extraneous messages have - -been receivedComments - -The buffer configuration is dependent on the security package. Usually there is a data buffer of type - -SECBUFFER_DATA - -and a signature buffer of type SECBUFFER_TOKEN -Return ValueReturns quality of protection flags used to create signature - - - """ - pass - - - def EncryptMessage(self,fqop:'Any',Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': - """ - Encrypts data with session key of security context - -Args: - - fqop(Any):Flags that indicate quality of protection desired, specific to each security package - Message(PySecBufferDesc):PySecBufferDesc that contains data buffer(s) to be encrypted - MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or SECBUFFER_TOKEN to receive signature or padding dataReturn ValueReturns None on success, and buffer(s) will contain encrypted data - -Returns: - - None:A sequential number used by some packages to verify that no extraneous messages have - -been receivedComments - -The buffer configuration is dependent on the security package. Usually there is one input buffer - -of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or - -SECBUFFER_TOKEN to receive signature or padding data -Return ValueReturns None on success, and buffer(s) will contain encrypted data - - - """ - pass - - - def DecryptMessage(self,Message:'PySecBufferDesc',MessageSeqNo:'Any') -> 'None': - """ - None - -Args: - - Message(PySecBufferDesc):PySecBufferDesc containing data buffers to be decrypted - MessageSeqNo(Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one buffer of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit in first bufferReturn ValueReturns flags specfic to security package indicating quality of protection - -Returns: - - None:A sequential number used by some packages to verify that no extraneous messages have - -been receivedComments - -The buffer configuration is dependent on the security package. Usually there is one buffer - -of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or - -SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit - -in first buffer -Return ValueReturns flags specfic to security package indicating quality of protection - - - """ - pass - - - def ImpersonateSecurityContext(self,) -> 'None': - """ - Impersonates a client security context - -Args: - - - -Returns: - - None - - """ - pass - - - def RevertSecurityContext(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDCB(object): - """A Python object, representing an DCB structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def BaudRate(self)->'int': - """current baud rate""" - pass - - - @property - def wReserved(self)->'int': - """not currently used""" - pass - - - @property - def XonLim(self)->'int': - """transmit XON threshold""" - pass - - - @property - def XoffLim(self)->'int': - """transmit XOFF threshold""" - pass - - - @property - def ByteSize(self)->'int': - """number of bits/byte, 4-8""" - pass - - - @property - def Parity(self)->'int': - """0-4=no,odd,even,mark,space""" - pass - - - @property - def StopBits(self)->'int': - """0,1,2 = 1, 1.5, 2""" - pass - - - @property - def XonChar(self)->'str': - """Tx and Rx XON character""" - pass - - - @property - def XoffChar(self)->'str': - """Tx and Rx XOFF character""" - pass - - - @property - def ErrorChar(self)->'str': - """error replacement character""" - pass - - - @property - def EofChar(self)->'str': - """end of input character""" - pass - - - @property - def EvtChar(self)->'str': - """received event character""" - pass - - - @property - def wReserved1(self)->'int': - """reserved; do not use""" - pass - - - @property - def fBinary(self)->'int': - """binary mode, no EOF check""" - pass - - - @property - def fParity(self)->'int': - """enable parity checking""" - pass - - - @property - def fOutxCtsFlow(self)->'int': - """CTS output flow control""" - pass - - - @property - def fOutxDsrFlow(self)->'int': - """DSR output flow control""" - pass - - - @property - def fDtrControl(self)->'int': - """DTR flow control type""" - pass - - - @property - def fDsrSensitivity(self)->'int': - """DSR sensitivity""" - pass - - - @property - def fTXContinueOnXoff(self)->'int': - """XOFF continues Tx""" - pass - - - @property - def fOutX(self)->'int': - """XON/XOFF out flow control""" - pass - - - @property - def fInX(self)->'int': - """XON/XOFF in flow control""" - pass - - - @property - def fErrorChar(self)->'int': - """enable error replacement""" - pass - - - @property - def fNull(self)->'int': - """enable null stripping""" - pass - - - @property - def fRtsControl(self)->'int': - """RTS flow control""" - pass - - - @property - def fAbortOnError(self)->'int': - """abort on error""" - pass - - - @property - def fDummy2(self)->'int': - """reserved""" - pass - - -class PyDEVMODE(object): - """Python object wrapping a DEVMODE structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def SpecVersion(self)->'Any': - """Should always be set to DM_SPECVERSION""" - pass - - - @property - def DriverVersion(self)->'Any': - """Version nbr assigned to printer driver by vendor""" - pass - - - @property - def Size(self)->'Any': - """Size of structure""" - pass - - - @property - def DriverExtra(self)->'Any': - """Number of extra bytes allocated for driver data, can only be set when new object is created""" - pass - - - @property - def Fields(self)->'Any': - """Bitmask of win32con.DM_* constants indicating which members are set""" - pass - - - @property - def Orientation(self)->'Any': - """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" - pass - - - @property - def PaperSize(self)->'Any': - """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" - pass - - - @property - def PaperLength(self)->'Any': - """Specified in 1/10 millimeters""" - pass - - - @property - def PaperWidth(self)->'Any': - """Specified in 1/10 millimeters""" - pass - - - @property - def Position_x(self)->'Any': - """Position of display relative to desktop""" - pass - - - @property - def Position_y(self)->'Any': - """Position of display relative to desktop""" - pass - - - @property - def DisplayOrientation(self)->'Any': - """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" - pass - - - @property - def DisplayFixedOutput(self)->'Any': - """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" - pass - - - @property - def Scale(self)->'Any': - """Specified as percentage, eg 50 means half size of original""" - pass - - - @property - def Copies(self)->'Any': - """Nbr of copies to print""" - pass - - - @property - def DefaultSource(self)->'Any': - """DMBIN_* constant, or can be a printer-specific value""" - pass - - - @property - def PrintQuality(self)->'Any': - """DMRES_* constant, interpreted as DPI if positive""" - pass - - - @property - def Color(self)->'Any': - """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" - pass - - - @property - def Duplex(self)->'Any': - """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" - pass - - - @property - def YResolution(self)->'Any': - """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" - pass - - - @property - def TTOption(self)->'Any': - """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" - pass - - - @property - def Collate(self)->'Any': - """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" - pass - - - @property - def LogPixels(self)->'Any': - """Pixels per inch (only for display devices""" - pass - - - @property - def BitsPerPel(self)->'Any': - """Color resolution in bits per pixel""" - pass - - - @property - def PelsWidth(self)->'Any': - """Pixel width of display""" - pass - - - @property - def PelsHeight(self)->'Any': - """Pixel height of display""" - pass - - - @property - def DisplayFlags(self)->'Any': - """Combination of DM_GRAYSCALE and DM_INTERLACED""" - pass - - - @property - def DisplayFrequency(self)->'Any': - """Refresh rate""" - pass - - - @property - def ICMMethod(self)->'Any': - """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" - pass - - - @property - def ICMIntent(self)->'Any': - """Intent of ICM, one of win32con.DMICM_* values""" - pass - - - @property - def MediaType(self)->'Any': - """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" - pass - - - @property - def DitherType(self)->'Any': - """Dithering option, win32con.DMDITHER_*""" - pass - - - @property - def Reserved1(self)->'Any': - """Reserved, use only 0""" - pass - - - @property - def Reserved2(self)->'Any': - """Reserved, use only 0""" - pass - - - @property - def Nup(self)->'Any': - """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" - pass - - - @property - def PanningWidth(self)->'Any': - """Not used, leave as 0""" - pass - - - @property - def PanningHeight(self)->'Any': - """Not used, leave as 0""" - pass - - - @property - def DeviceName(self)->'Any': - """String of at most 32 chars""" - pass - - - @property - def FormName(self)->'Any': - """Name of form as returned by win32print::EnumForms, at most 32 chars""" - pass - - - @property - def DriverData(self)->'Any': - """Driver data appended to end of structure""" - pass - - - def Clear(self,) -> 'None': - """ - Resets all members of the structure - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDEVMODEW(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def SpecVersion(self)->'Any': - """Should always be set to DM_SPECVERSION""" - pass - - - @property - def DriverVersion(self)->'Any': - """Version nbr assigned to printer driver by vendor""" - pass - - - @property - def Size(self)->'Any': - """Size of structure""" - pass - - - @property - def DriverExtra(self)->'Any': - """Number of extra bytes allocated for driver data, can only be set when new object is created""" - pass - - - @property - def Fields(self)->'Any': - """Bitmask of win32con.DM_* constants indicating which members are set""" - pass - - - @property - def Orientation(self)->'Any': - """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" - pass - - - @property - def PaperSize(self)->'Any': - """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" - pass - - - @property - def PaperLength(self)->'Any': - """Specified in 1/10 millimeters""" - pass - - - @property - def PaperWidth(self)->'Any': - """Specified in 1/10 millimeters""" - pass - - - @property - def Position_x(self)->'Any': - """Position of display relative to desktop""" - pass - - - @property - def Position_y(self)->'Any': - """Position of display relative to desktop""" - pass - - - @property - def DisplayOrientation(self)->'Any': - """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" - pass - - - @property - def DisplayFixedOutput(self)->'Any': - """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" - pass - - - @property - def Scale(self)->'Any': - """Specified as percentage, eg 50 means half size of original""" - pass - - - @property - def Copies(self)->'Any': - """Nbr of copies to print""" - pass - - - @property - def DefaultSource(self)->'Any': - """DMBIN_* constant, or can be a printer-specific value""" - pass - - - @property - def PrintQuality(self)->'Any': - """DMRES_* constant, interpreted as DPI if positive""" - pass - - - @property - def Color(self)->'Any': - """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" - pass - - - @property - def Duplex(self)->'Any': - """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" - pass - - - @property - def YResolution(self)->'Any': - """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" - pass - - - @property - def TTOption(self)->'Any': - """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" - pass - - - @property - def Collate(self)->'Any': - """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" - pass - - - @property - def LogPixels(self)->'Any': - """Pixels per inch (only for display devices""" - pass - - - @property - def BitsPerPel(self)->'Any': - """Color resolution in bits per pixel""" - pass - - - @property - def PelsWidth(self)->'Any': - """Pixel width of display""" - pass - - - @property - def PelsHeight(self)->'Any': - """Pixel height of display""" - pass - - - @property - def DisplayFlags(self)->'Any': - """Combination of DM_GRAYSCALE and DM_INTERLACED""" - pass - - - @property - def DisplayFrequency(self)->'Any': - """Refresh rate""" - pass - - - @property - def ICMMethod(self)->'Any': - """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" - pass - - - @property - def ICMIntent(self)->'Any': - """Intent of ICM, one of win32con.DMICM_* values""" - pass - - - @property - def MediaType(self)->'Any': - """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" - pass - - - @property - def DitherType(self)->'Any': - """Dithering option, win32con.DMDITHER_*""" - pass - - - @property - def Reserved1(self)->'Any': - """Reserved, use only 0""" - pass - - - @property - def Reserved2(self)->'Any': - """Reserved, use only 0""" - pass - - - @property - def Nup(self)->'Any': - """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" - pass - - - @property - def PanningWidth(self)->'Any': - """Not used, leave as 0""" - pass - - - @property - def PanningHeight(self)->'Any': - """Not used, leave as 0""" - pass - - - @property - def DeviceName(self)->'str': - """String of at most 32 chars""" - pass - - - @property - def FormName(self)->'Any': - """Name of form as returned by win32print::EnumForms, at most 32 chars""" - pass - - - @property - def DriverData(self)->'Any': - """Driver data appended to end of structure""" - pass - - -class PyDISPLAY_DEVICE(object): - """Python object wrapping a DISPLAY_DEVICE structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Size(self)->'Any': - """Size of structure""" - pass - - - @property - def DeviceName(self)->'Any': - """String of at most 32 chars""" - pass - - - @property - def DeviceString(self)->'Any': - """String of at most 128 chars""" - pass - - - @property - def StateFlags(self)->'Any': - """Bitmask of win32con.DISPLAY_DEVICE_* constants indicating current device status""" - pass - - - @property - def DeviceID(self)->'Any': - """String of at most 128 chars""" - pass - - - @property - def DeviceKey(self)->'Any': - """String of at most 128 chars""" - pass - - - def Clear(self,) -> 'None': - """ - Resets all members of the structure - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDLGITEMTEMPLATE(object): - """A tuple describing a control in a dialog box.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDLGTEMPLATE(object): - """A tuple of items describing a dialog box, that can be used to create the dialog.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDS_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDS_NAME_RESULT_ITEM(object): - """A tuple representing a DS_NAME_RESULT_ITEM""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDateTime(object): - """A Python object, representing an instant in time.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Format(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyDialogTemplate(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyEVTLOG_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyEVT_HANDLE(object): - """Handle to an event log, session, query, or any other object used with - -the Evt* event log functions on Vista and later. - -When the object is destroyed, EvtClose is called.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyEVT_RPC_LOGIN(object): - """Tuple containing login credentials for a remote Event Log connection""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyEventLogRecord(object): - """An object containing the data in an EVENTLOGRECORD.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Reserved(self)->'int': - """""" - pass - - - @property - def RecordNumber(self)->'int': - """""" - pass - - - @property - def TimeGenerated(self)->'PyTime': - """""" - pass - - - @property - def TimeWritten(self)->'PyTime': - """""" - pass - - - @property - def EventID(self)->'int': - """""" - pass - - - @property - def EventType(self)->'int': - """""" - pass - - - @property - def EventCategory(self)->'int': - """""" - pass - - - @property - def ReservedFlags(self)->'int': - """""" - pass - - - @property - def ClosingRecordNumber(self)->'int': - """""" - pass - - - @property - def SourceName(self)->'str': - """""" - pass - - - @property - def StringInserts(self)->'Tuple[str, ...]': - """""" - pass - - - @property - def Sid(self)->'PySID': - """""" - pass - - - @property - def Data(self)->'str': - """""" - pass - - - @property - def ComputerName(self)->'str': - """""" - pass - - -class PyGROUP_INFO_0(object): - """A dictionary holding the information in a Win32 GROUP_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """Name of the group""" - pass - - -class PyGROUP_INFO_1(object): - """A dictionary holding the information in a Win32 GROUP_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """Name of the group""" - pass - - - @property - def comment(self)->'Union[str]': - """The group's comment.""" - pass - - -class PyGROUP_INFO_1002(object): - """A dictionary holding the information in a Win32 GROUP_INFO_1002 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def comment(self)->'Union[str]': - """""" - pass - - -class PyGROUP_INFO_1005(object): - """A dictionary holding the information in a Win32 GROUP_INFO_1005 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def attributes(self)->'Any': - """""" - pass - - -class PyGROUP_INFO_2(object): - """A dictionary holding the information in a Win32 GROUP_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """Name of the group""" - pass - - - @property - def comment(self)->'Union[str]': - """The group's comment.""" - pass - - - @property - def group_id(self)->'Any': - """""" - pass - - - @property - def attributes(self)->'Any': - """""" - pass - - -class PyGROUP_USERS_INFO_0(object): - """A dictionary holding the information in a Win32 GROUP_USERS_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """Name of the group or user""" - pass - - -class PyGROUP_USERS_INFO_1(object): - """A dictionary holding the information in a Win32 GROUP_USERS_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """Name of the group or user""" - pass - - - @property - def attributes(self)->'Any': - """""" - pass - - -class PyGdiHANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyGetSignerCertificate(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHANDLE(object): - """A Python object, representing a win32 HANDLE.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def handle(self)->'Any': - """Integer value of the handleMethodsCloseCloses the handle closeSynonym for PyHANDLE::Close DetachDetaches the Win32 handle from the handle object. __nonzero__Used for detecting true/false. is nb_bool in Python 3.0 __int__Used when an integer representation of the handle object is required. __print__Used when the object is printed. tp_print __hash__Used when the hash value of an object is required tp_hash __str__Used when a string representation is required tp_str """ - pass - - - def Close(self,) -> 'None': - """ - Closes the underlying Win32 handle. - -Args: - - - -Returns: - - None - - """ - pass - - - def close(self,) -> 'None': - """ - Closes the underlying Win32 handle. - -Args: - - - -Returns: - - None - - """ - pass - - - def Detach(self,) -> 'Any': - """ - Detaches the Win32 handle from the handle object. - -Args: - - - -Returns: - - Any:PyHANDLE.Detach - -int = Detach()Detaches the Win32 handle from the handle object. -Comments - -After calling this function, the handle is effectively invalidated, - -but the handle is not closed. You would call this function when you - -need the underlying win32 handle to exist beyond the lifetime of the - -handle object. -Return ValueThe result is the value of the handle before it is detached. If the - -handle is already detached, this will return zero. - - - """ - pass - - -class PyHDESK(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetThreadDesktop(self,) -> 'None': - """ - Assigns this desktop to the calling thread - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumDesktopWindows(self,) -> 'Tuple[int, ...]': - """ - Returns a list of handles to all top-level windows on desktop - -Args: - - - -Returns: - - Tuple[int, ...] - - """ - pass - - - def SwitchDesktop(self,) -> 'None': - """ - Activates the desktop - -Args: - - - -Returns: - - None - - """ - pass - - - def CloseDesktop(self,) -> 'None': - """ - Closes the desktop handle - -Args: - - - -Returns: - - None - - """ - pass - - -class PyHDEVNOTIFY(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHHNTRACK(object): - """A Python object, representing an HHNTRACK - -structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def action(self)->'Any': - """Specifies the action the user is about to take. This is an HHACT_ constant.""" - pass - - - @property - def hdr(self)->'Any': - """Standard WM_NOTIFY header(win32help::NMHDR).""" - pass - - - @property - def curUrl(self)->'str': - """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" - pass - - - @property - def winType(self)->'Any': - """A pointer to the current HH_WINTYPE structure (win32help::HH_WINTYPE).""" - pass - - -class PyHHN_NOTIFY(object): - """A Python object, representing an HHN_NOTIFY - -structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def hdr(self)->'Any': - """Standard WM_NOTIFY header.(win32help::NMHDR)""" - pass - - - @property - def url(self)->'str': - """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" - pass - - -class PyHH_AKLINK(object): - """A Python object, representing an HH_AKLINK structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def indexOnFail(self)->'Any': - """Specifies whether to display the keyword in the Index tab of the HTML Help Viewer if the lookup fails. The value of window specifies the Help Viewer.""" - pass - - - @property - def keywords(self)->'str': - """Specifies one or more ALink names or KLink keywords to look up. Multiple entries are delimited by a semicolon.""" - pass - - - @property - def url(self)->'str': - """Specifies the topic file to navigate to if the lookup fails. url refers to a valid topic within the specified compiled help (.chm) file and does not support Internet protocols that point to an HTML file.""" - pass - - - @property - def msgText(self)->'str': - """Specifies the text to display in a message box if the lookup fails and indexOnFail is FALSE and url is NULL.""" - pass - - - @property - def msgTitle(self)->'str': - """Specifies the caption of the message box in which the msgText parameter appears.""" - pass - - - @property - def window(self)->'str': - """Specifies the name of the window type in which to display one of the following: The selected topic, if the lookup yields one or more matching topics. The topic specified in url, if the lookup fails and a topic is specified in url. The Index tab, if the lookup fails and indexOnFail is specified as TRUE.""" - pass - - -class PyHH_FTS_QUERY(object): - """A Python object, representing an HH_FTS_QUERY - -structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def uniCodeStrings(self)->'Any': - """TRUE if all strings are Unicode.""" - pass - - - @property - def proximity(self)->'Any': - """Word proximity.""" - pass - - - @property - def stemmedSearch(self)->'Any': - """TRUE for StemmedSearch only.""" - pass - - - @property - def titleOnly(self)->'Any': - """TRUE for Title search only.""" - pass - - - @property - def execute(self)->'Any': - """TRUE to initiate the search.""" - pass - - - @property - def searchQuery(self)->'str': - """String containing the search query.""" - pass - - -class PyHH_POPUP(object): - """A Python object, representing an HH_POPUP structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def hinst(self)->'Any': - """Instance handle of the program or DLL to retrieve the string resource from. Ignored if idString is zero.""" - pass - - - @property - def idString(self)->'Any': - """Specifies zero, or a resource ID in the program or DLL specified in hinst.""" - pass - - - @property - def clrForeground(self)->'Any': - """Specifies the RGB value to use for the foreground color of the pop-up window. To use the system color for the window text, specify -1.""" - pass - - - @property - def clrBackground(self)->'Any': - """Specifies the RGB value to use for the background color of the pop-up window. To use the system color for the window background, specify -1.""" - pass - - - @property - def text(self)->'str': - """Specifies the text to display if idString is zero.""" - pass - - - @property - def font(self)->'str': - """Specifies the font attributes to use for the text in the pop-up window. Use the following format to specify font family, point size, character set, and font format: facename[, point size[, charset[ BOLD ITALIC UNDERLINE]]] To omit an attribute, enter a comma. For example, to specify bold, 10-pt, MS Sans Serif font, font would be: MS Sans Serif, 10, , BOLD""" - pass - - - @property - def pt(self)->'Any': - """(x,y). Specifies (in pixels) where the top center of the pop-up window should be located.""" - pass - - - @property - def margins(self)->'Any': - """(left,top,right,bottom). Specifies (in pixels) the margins to use on the left, top, right, and bottom sides of the pop-up window. The default for all rectangle members is -1.""" - pass - - -class PyHH_WINTYPE(object): - """A Python object, representing an HH_WINTYPE structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def uniCodeStrings(self)->'Any': - """Specifies whether the strings used in this structure are UNICODE.""" - pass - - - @property - def validMembers(self)->'Any': - """Specifies which members in the structure are valid.""" - pass - - - @property - def winProperties(self)->'Any': - """Specifies the properties of the window, such as whether it is the standard HTML Help Viewer or whether it includes a Search tab.""" - pass - - - @property - def styles(self)->'Any': - """Specifies the styles used to create the window. These styles can be ignored, combined with extended styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" - pass - - - @property - def exStyles(self)->'Any': - """Specifies the extended styles used to create the window. These styles can be ignored, combined with default styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" - pass - - - @property - def showState(self)->'Any': - """Specifies the initial display state of the window. Valid values are the same as those for the Win32 API ShowWindow function.""" - pass - - - @property - def hwndHelp(self)->'Any': - """Specifies the handle of the window if the window has been created.""" - pass - - - @property - def hwndCaller(self)->'Any': - """Specifies the window that will receive HTML Help notification messages. Notification messages are sent via Windows WM_NOTIFY messages.""" - pass - - - @property - def hwndToolBar(self)->'Any': - """Specifies the handle of the toolbar.""" - pass - - - @property - def hwndNavigation(self)->'Any': - """Specifies the handle of the Navigation pane.""" - pass - - - @property - def hwndHTML(self)->'Any': - """Specifies the handle of the Topic pane, which hosts Shdocvw.dll.""" - pass - - - @property - def navWidth(self)->'Any': - """Specifies the width of the Navigation pane when the Help Viewer is expanded.""" - pass - - - @property - def toolBarFlags(self)->'Any': - """Specifies which buttons to include on the toolbar.""" - pass - - - @property - def notExpanded(self)->'Any': - """Specifies that the Help Viewer open with the Navigation pane closed.""" - pass - - - @property - def curNavType(self)->'Any': - """Specifies the default tab to display on the Navigation pane.""" - pass - - - @property - def idNotify(self)->'Any': - """Specifies a non-zero ID for enabling HTML Help notification messages. This ID is passed as the wParam value of Windows WM_NOTIFY messages.""" - pass - - - @property - def typeName(self)->'str': - """A null-terminated string that specifies the name of the window type.""" - pass - - - @property - def caption(self)->'str': - """A null-terminated string that specifies the caption to display in the title bar of the window.""" - pass - - - @property - def windowPos(self)->'Any': - """(left,top,right,bottom). Specifies the coordinates of the window in pixels.""" - pass - - - @property - def HTMLPos(self)->'Any': - """(left,top,right,bottom). Specifies the coordinates of the Topic pane.""" - pass - - - @property - def toc(self)->'str': - """Specifies the contents (.hhc) file to display in the Navigation pane.""" - pass - - - @property - def index(self)->'str': - """Specifies the index (.hhk) file to display in the Navigation pane.""" - pass - - - @property - def file(self)->'str': - """Specifies the default HTML file to display in the Topic pane.""" - pass - - - @property - def home(self)->'str': - """Specifies the file or URL to display in the Topic pane when the Home button is clicked.""" - pass - - - @property - def jump1(self)->'str': - """Specifies the text to display underneath the Jump1 button.""" - pass - - - @property - def jump2(self)->'str': - """Specifies the text to display underneath the Jump2 button.""" - pass - - - @property - def urlJump1(self)->'str': - """Specifies the URL to jump to when the Jump1 button is clicked.""" - pass - - - @property - def urlJump2(self)->'str': - """Specifies the URL to jump to when the Jump2 button is clicked.""" - pass - - -class PyHINTERNET(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHKEY(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHTHEME(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHWINSTA(object): - """Wrapper for a handle to a window station - returned by CreateWindowStation, OpenWindowStation, or GetProcessWindowStation""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumDesktops(self,) -> 'Tuple[Any, ...]': - """ - Lists names of desktops in the window station - -Args: - - - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def SetProcessWindowStation(self,) -> 'None': - """ - Associates the calling process with the window station - -Args: - - - -Returns: - - None - - """ - pass - - - def CloseWindowStation(self,) -> 'None': - """ - Closes the window station handle - -Args: - - - -Returns: - - None - - """ - pass - - -class PyICONINFO(object): - """Tuple describing an icon or cursor""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIID(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyINPUT_RECORD(object): - """Interface to the INPUT_RECORD struct used with console IO functions. Create using - -PyINPUT_RECORDType(EventType)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def EventType(self)->'Any': - """One of KEY_EVENT, MOUSE_EVENT, WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT. Cannot be changed after object is created""" - pass - - - @property - def KeyDown(self)->'Any': - """True for a key press, False for key release""" - pass - - - @property - def RepeatCount(self)->'Any': - """Nbr of repeats generated (key was held down if >1)""" - pass - - - @property - def VirtualKeyCode(self)->'Any': - """Device-independent key code, win32con.VK_*""" - pass - - - @property - def VirtualScanCode(self)->'Any': - """Device-dependent scan code generated by keyboard""" - pass - - - @property - def Char(self)->'str': - """Single unicode character generated by the keypress""" - pass - - - @property - def ControlKeyState(self)->'Any': - """State of modifier keys, combination of CAPSLOCK_ON, ENHANCED_KEY, LEFT_ALT_PRESSED, LEFT_CTRL_PRESSED, NUMLOCK_ON, RIGHT_ALT_PRESSED, RIGHT_CTRL_PRESSED, SCROLLLOCK_ON, SHIFT_PRESSED""" - pass - - - @property - def ButtonState(self)->'Any': - """Bitmask representing which mouse buttons were pressed.""" - pass - - - @property - def EventFlags(self)->'Any': - """DOUBLE_CLICK, MOUSE_MOVED or MOUSE_WHEELED, or 0. If 0, indicates a mouse button press""" - pass - - - @property - def MousePosition(self)->'PyCOORD': - """Position in character coordinates""" - pass - - - @property - def Size(self)->'PyCOORD': - """New size of screen buffer in character rows/columns""" - pass - - - @property - def SetFocus(self)->'Any': - """Reserved - Used only with type FOCUS_EVENT. This event is Reserved, and should be ignored.""" - pass - - - @property - def CommandId(self)->'Any': - """Used only with event type MENU_EVENT, which is reserved and should not be used""" - pass - - -class PyLOCALGROUP_INFO_0(object): - """A dictionary holding the information in a Win32 LOCALGROUP_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """Name of the group""" - pass - - -class PyLOCALGROUP_INFO_1(object): - """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """Name of the group""" - pass - - - @property - def comment(self)->'Union[str]': - """The group's comment.""" - pass - - -class PyLOCALGROUP_INFO_1002(object): - """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1002 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def comment(self)->'Union[str]': - """""" - pass - - -class PyLOCALGROUP_MEMBERS_INFO_0(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_0 - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sid(self)->'PySID': - """""" - pass - - -class PyLOCALGROUP_MEMBERS_INFO_1(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_1 - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sid(self)->'PySID': - """""" - pass - - - @property - def sidusage(self)->'Any': - """""" - pass - - - @property - def name(self)->'Union[str]': - """""" - pass - - -class PyLOCALGROUP_MEMBERS_INFO_2(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_2 - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sid(self)->'PySID': - """""" - pass - - - @property - def sidusage(self)->'Any': - """""" - pass - - - @property - def domainandname(self)->'Union[str]': - """string containing the name of the member prefixed by the domain name and the "\\" separator character""" - pass - - -class PyLOCALGROUP_MEMBERS_INFO_3(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_3 - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def domainandname(self)->'Union[str]': - """string containing the name of the member prefixed by the domain name and the "\\" separator character""" - pass - - -class PyLOGBRUSH(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Style(self)->'Any': - """Brush style, one of win32con.BS_* values""" - pass - - - @property - def Color(self)->'Any': - """RGB color value. Can also be DIB_PAL_COLORS or DIB_RGB_COLORS if Style is BS_DIBPATTERN or BS_DIBPATTERNPT=""" - pass - - - @property - def Hatch(self)->'Union[Any, int]': - """For BS_HATCH style, one of win32con.HS_*. Not used For BS_SOLID or BS_HOLLOW. For a pattern brush, this should be a handle to a bitmap""" - pass - - -class PyLOGFONT(object): - """A Python object, representing an PyLOGFONT structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def lfHeight(self)->'int': - """""" - pass - - - @property - def lfWidth(self)->'int': - """""" - pass - - - @property - def lfEscapement(self)->'int': - """""" - pass - - - @property - def lfOrientation(self)->'int': - """""" - pass - - - @property - def lfWeight(self)->'int': - """""" - pass - - - @property - def lfItalic(self)->'int': - """""" - pass - - - @property - def lfUnderline(self)->'int': - """""" - pass - - - @property - def lfStrikeOut(self)->'int': - """""" - pass - - - @property - def lfCharSet(self)->'int': - """""" - pass - - - @property - def lfOutPrecision(self)->'int': - """""" - pass - - - @property - def lfClipPrecision(self)->'int': - """""" - pass - - - @property - def lfQuality(self)->'int': - """""" - pass - - - @property - def lfPitchAndFamily(self)->'int': - """""" - pass - - - @property - def lfFaceName(self)->'str': - """Name of the typeface, at most 31 characters""" - pass - - -class PyLSA_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyLUID_AND_ATTRIBUTES(object): - """A sequence containing (LUID,Attributes) representing an LUID_AND_ATTRIBUTES structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyLsaLogon_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyMSG(object): - """A tuple representing a win32 MSG structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyNETRESOURCE(object): - """A Python object that encapsulates a Win32 NETRESOURCE structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwScope(self)->'int': - """""" - pass - - - @property - def dwType(self)->'int': - """""" - pass - - - @property - def dwDisplayType(self)->'int': - """""" - pass - - - @property - def dwUsage(self)->'int': - """""" - pass - - - @property - def localName(self)->'str': - """""" - pass - - - @property - def remoteName(self)->'str': - """""" - pass - - - @property - def comment(self)->'str': - """""" - pass - - - @property - def provider(self)->'str': - """""" - pass - - -class PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyNET_VALIDATE_PERSISTED_FIELDS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyNMHDR(object): - """A Python object, representing an NMHDR - -structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def hwndFrom(self)->'Any': - """Window handle to the control sending a message. ??? 64-bit problem here ???""" - pass - - - @property - def idFrom(self)->'Any': - """Identifier of the control sending a message.""" - pass - - - @property - def code(self)->'Any': - """Notification code. This member can be a control-specific notification code or it can be one of the common notification codes.""" - pass - - -class PyNOTIFYICONDATA(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyOVERLAPPED(object): - """A Python object, representing an overlapped structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Offset(self)->'int': - """Specifies a file position at which to start the transfer. The file position is a byte offset from the start of the file. The calling process sets this member before calling the ReadFile or WriteFile function. This member is ignored when reading from or writing to named pipes and communications devices.""" - pass - - - @property - def OffsetHigh(self)->'int': - """Specifies the high word of the byte offset at which to start the transfer.""" - pass - - - @property - def object(self)->'Any': - """Any python object that you want to attach to your overlapped I/O request.""" - pass - - - @property - def dword(self)->'Any': - """An integer buffer that may be used by overlapped functions (eg, win32file::WaitCommEvent)""" - pass - - - @property - def hEvent(self)->'int': - """Identifies an event set to the signaled state when the transfer has been completed. The calling process sets this member before calling the win32file::ReadFile, win32file::WriteFile, win32pipe::ConnectNamedPipe, or win32pipe::TransactNamedPipe function.""" - pass - - - @property - def Internal(self)->'int': - """Reserved for operating system use. (pointer-sized value)""" - pass - - - @property - def InternalHigh(self)->'int': - """Reserved for operating system use. (pointer-sized value)""" - pass - - -class PyOVERLAPPEDReadBuffer(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyPERF_COUNTER_DEFINITION(object): - """An object encapsulating a Windows NT Performance Monitor counter definition - -(PERF_COUNTER_DEFINITION).""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def DefaultScale(self)->'int': - """The default scale of the counter.""" - pass - - - @property - def DetailLevel(self)->'int': - """The detail level of the counter.""" - pass - - - @property - def CounterType(self)->'int': - """The counter type.""" - pass - - - @property - def CounterNameTitleIndex(self)->'int': - """""" - pass - - - @property - def CounterHelpTitleIndex(self)->'int': - """Sentinel""" - pass - - - def Increment(self,) -> 'None': - """ - Increments the value of the performance counter - -Args: - - - -Returns: - - None - - """ - pass - - - def Decrement(self,) -> 'None': - """ - Decrements the value of the performance counter - -Args: - - - -Returns: - - None - - """ - pass - - - def Set(self,) -> 'None': - """ - Sets the counter to a specific value - -Args: - - - -Returns: - - None - - """ - pass - - - def Get(self,) -> 'None': - """ - Gets the current value of the counter - -Args: - - - -Returns: - - None - - """ - pass - - -class PyPERF_OBJECT_TYPE(object): - """A Python object, representing a PERF_OBJECT_TYPE structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ObjectNameTitleIndex(self)->'int': - """""" - pass - - - @property - def ObjectHelpTitleIndex(self)->'int': - """""" - pass - - - @property - def DefaultCounterIndex(self)->'int': - """""" - pass - - - def Close(self,) -> 'None': - """ - Closes the object. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyPOINT(object): - """Tuple of two ints (x,y) representing a POINT struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyPROFILEINFO(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def UserName(self)->'str': - """Name of user for which to load profile""" - pass - - - @property - def Flags(self)->'Any': - """Combination of PI_* flags""" - pass - - - @property - def ProfilePath(self)->'str': - """Path to roaming profile, can be None. Use win32net::NetUserGetInfo to retrieve user's profile path""" - pass - - - @property - def DefaultPath(self)->'str': - """Path to Default user profile, can be None""" - pass - - - @property - def ServerName(self)->'str': - """Domain controller, can be None""" - pass - - - @property - def PolicyPath(self)->'str': - """Location of policy file, can be None""" - pass - - - @property - def Profile(self)->'PyHKEY': - """Handle to root of user's registry key. This member is output.""" - pass - - -class PyPerfMonManager(object): - """A Python object""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Close(self,) -> 'None': - """ - Closes the performance monitor manager. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyPrinterHANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyRECT(object): - """Tuple of 4 ints defining a rectangle: (left, top, right, bottom)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyResourceId(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySCROLLINFO(object): - """A tuple representing a SCROLLINFO structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySC_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySECURITY_ATTRIBUTES(object): - """A Python object, representing a SECURITY_ATTRIBUTES structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def bInheritHandle(self)->'Any': - """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle.""" - pass - - - @property - def SECURITY_DESCRIPTOR(self)->'PySECURITY_DESCRIPTOR': - """A PySECURITY_DESCRIPTOR, or None""" - pass - - -class PySECURITY_DESCRIPTOR(object): - """A Python object, representing a SECURITY_DESCRIPTOR structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Initialize the SD. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSecurityDescriptorOwner(self,) -> 'PySID': - """ - Return the owner of the security descriptor. - -Args: - - - -Returns: - - PySID - - """ - pass - - - def GetSecurityDescriptorDacl(self,) -> 'PyACL': - """ - Return the discretionary ACL of the security - -descriptor. - -Args: - - - -Returns: - - PyACL - - """ - pass - - - def GetSecurityDescriptorSacl(self,) -> 'PyACL': - """ - Return system access control list (SACL) of SD - -Args: - - - -Returns: - - PyACL - - """ - pass - - - def GetSecurityDescriptorControl(self,) -> 'Tuple[Any, Any]': - """ - Returns tuple of Control bit flags and - -revision of SD. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def SetSecurityDescriptorOwner(self,sid:'PySID',bOwnerDefaulted:'Any') -> 'None': - """ - Set owner SID. - -Args: - - sid(PySID):The sid to be set as owner in the security descriptor. - bOwnerDefaulted(Any):Normally set to false since this explicitely set the owner. - -Returns: - - None - - """ - pass - - - def SetSecurityDescriptorGroup(self,sid:'PySID',bOwnerDefaulted:'Any') -> 'Any': - """ - Set group SID. - -Args: - - sid(PySID):The group sid to be set in the security descriptor. - bOwnerDefaulted(Any):Normally set to false since this explicitely set the owner. - -Returns: - - Any - - """ - pass - - - def SetSecurityDescriptorSacl(self,bSaclPresent:'Any',SACL:'PyACL',bSaclDefaulted:'Any') -> 'None': - """ - Replaces system access control list (SACL) in the security - -descriptor. - -Args: - - bSaclPresent(Any):A flag indicating if SACL is to be used. If false, last 2 parms are ignored. - SACL(PyACL):The SACL to set in the security descriptor - bSaclDefaulted(Any):Flag, set to false if user has specifically set the SACL. - -Returns: - - None - - """ - pass - - - def IsValid(self,) -> 'None': - """ - Determines if the security descriptor is valid. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetLength(self,) -> 'None': - """ - return length of security descriptor (GetSecurityDescriptorLenght). - -Args: - - - -Returns: - - None - - """ - pass - - - def IsSelfRelative(self,) -> 'None': - """ - Returns 1 if security descriptor is self relative, 0 if absolute - -Args: - - - -Returns: - - None - - """ - pass - - - def SetSecurityDescriptorControl(self,ControlBitsOfInterest:'Any',ControlBitsToSet:'Any') -> 'None': - """ - Sets the control bit flags related to inheritance for a - -security descriptor - -Args: - - ControlBitsOfInterest(Any):Bitmask of flags to be modified - ControlBitsToSet(Any):Bitmask containing flag values to setCommentsOnly exists on Windows 2000 or later - -Returns: - - None - - """ - pass - - -class PySERVER_INFO_100(object): - """A dictionary holding the information in a Win32 SERVER_INFO_100 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'Any': - """""" - pass - - - @property - def name(self)->'Union[str]': - """""" - pass - - -class PySERVER_INFO_101(object): - """A dictionary holding the information in a Win32 SERVER_INFO_101 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'Any': - """""" - pass - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def version_major(self)->'Any': - """""" - pass - - - @property - def version_minor(self)->'Any': - """""" - pass - - - @property - def type(self)->'Any': - """one of the SV_TYPE_* constants""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - -class PySERVER_INFO_102(object): - """A dictionary holding the information in a Win32 SERVER_INFO_102 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'Any': - """""" - pass - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def version_major(self)->'Any': - """""" - pass - - - @property - def version_minor(self)->'Any': - """""" - pass - - - @property - def type(self)->'Any': - """one of the SV_TYPE_* constants""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - - @property - def users(self)->'Any': - """""" - pass - - - @property - def disc(self)->'Any': - """""" - pass - - - @property - def hidden(self)->'Any': - """""" - pass - - - @property - def announce(self)->'Any': - """""" - pass - - - @property - def anndelta(self)->'Any': - """""" - pass - - - @property - def userpath(self)->'Union[str]': - """""" - pass - - -class PySERVER_INFO_402(object): - """A dictionary holding the information in a Win32 SERVER_INFO_402 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ulist_mtime(self)->'Any': - """""" - pass - - - @property - def glist_mtime(self)->'Any': - """""" - pass - - - @property - def alist_mtime(self)->'Any': - """""" - pass - - - @property - def security(self)->'Any': - """""" - pass - - - @property - def numadmin(self)->'Any': - """""" - pass - - - @property - def lanmask(self)->'Any': - """""" - pass - - - @property - def guestacct(self)->'Union[str]': - """""" - pass - - - @property - def chdevs(self)->'Any': - """""" - pass - - - @property - def chdevq(self)->'Any': - """""" - pass - - - @property - def chdevjobs(self)->'Any': - """""" - pass - - - @property - def connections(self)->'Any': - """""" - pass - - - @property - def shares(self)->'Any': - """""" - pass - - - @property - def openfiles(self)->'Any': - """""" - pass - - - @property - def sessopens(self)->'Any': - """""" - pass - - - @property - def sessvcs(self)->'Any': - """""" - pass - - - @property - def sessreqs(self)->'Any': - """""" - pass - - - @property - def opensearch(self)->'Any': - """""" - pass - - - @property - def activelocks(self)->'Any': - """""" - pass - - - @property - def numreqbuf(self)->'Any': - """""" - pass - - - @property - def sizreqbuf(self)->'Any': - """""" - pass - - - @property - def numbigbuf(self)->'Any': - """""" - pass - - - @property - def numfiletasks(self)->'Any': - """""" - pass - - - @property - def alertsched(self)->'Any': - """""" - pass - - - @property - def erroralert(self)->'Any': - """""" - pass - - - @property - def logonalert(self)->'Any': - """""" - pass - - - @property - def accessalert(self)->'Any': - """""" - pass - - - @property - def diskalert(self)->'Any': - """""" - pass - - - @property - def netioalert(self)->'Any': - """""" - pass - - - @property - def maxauditsz(self)->'Any': - """""" - pass - - - @property - def srvheuristics(self)->'Union[str]': - """""" - pass - - -class PySERVER_INFO_403(object): - """A dictionary holding the information in a Win32 SERVER_INFO_403 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ulist_mtime(self)->'Any': - """""" - pass - - - @property - def glist_mtime(self)->'Any': - """""" - pass - - - @property - def alist_mtime(self)->'Any': - """""" - pass - - - @property - def security(self)->'Any': - """""" - pass - - - @property - def numadmin(self)->'Any': - """""" - pass - - - @property - def lanmask(self)->'Any': - """""" - pass - - - @property - def guestacct(self)->'Union[str]': - """""" - pass - - - @property - def chdevs(self)->'Any': - """""" - pass - - - @property - def chdevq(self)->'Any': - """""" - pass - - - @property - def chdevjobs(self)->'Any': - """""" - pass - - - @property - def connections(self)->'Any': - """""" - pass - - - @property - def shares(self)->'Any': - """""" - pass - - - @property - def openfiles(self)->'Any': - """""" - pass - - - @property - def sessopens(self)->'Any': - """""" - pass - - - @property - def sessvcs(self)->'Any': - """""" - pass - - - @property - def sessreqs(self)->'Any': - """""" - pass - - - @property - def opensearch(self)->'Any': - """""" - pass - - - @property - def activelocks(self)->'Any': - """""" - pass - - - @property - def numreqbuf(self)->'Any': - """""" - pass - - - @property - def sizreqbuf(self)->'Any': - """""" - pass - - - @property - def numbigbuf(self)->'Any': - """""" - pass - - - @property - def numfiletasks(self)->'Any': - """""" - pass - - - @property - def alertsched(self)->'Any': - """""" - pass - - - @property - def erroralert(self)->'Any': - """""" - pass - - - @property - def logonalert(self)->'Any': - """""" - pass - - - @property - def accessalert(self)->'Any': - """""" - pass - - - @property - def diskalert(self)->'Any': - """""" - pass - - - @property - def netioalert(self)->'Any': - """""" - pass - - - @property - def maxauditsz(self)->'Any': - """""" - pass - - - @property - def srvheuristics(self)->'Union[str]': - """""" - pass - - - @property - def auditedevents(self)->'Any': - """""" - pass - - - @property - def autoprofile(self)->'Any': - """""" - pass - - - @property - def autopath(self)->'Union[str]': - """""" - pass - - -class PySERVER_INFO_502(object): - """A dictionary holding the information in a Win32 SERVER_INFO_502 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sessopens(self)->'Any': - """""" - pass - - - @property - def sessvcs(self)->'Any': - """""" - pass - - - @property - def opensearch(self)->'Any': - """""" - pass - - - @property - def sizreqbuf(self)->'Any': - """""" - pass - - - @property - def initworkitems(self)->'Any': - """""" - pass - - - @property - def maxworkitems(self)->'Any': - """""" - pass - - - @property - def rawworkitems(self)->'Any': - """""" - pass - - - @property - def irpstacksize(self)->'Any': - """""" - pass - - - @property - def maxrawbuflen(self)->'Any': - """""" - pass - - - @property - def sessusers(self)->'Any': - """""" - pass - - - @property - def sessconns(self)->'Any': - """""" - pass - - - @property - def maxpagedmemoryusage(self)->'Any': - """""" - pass - - - @property - def maxnonpagedmemoryusage(self)->'Any': - """""" - pass - - - @property - def enableforcedlogoff(self)->'Any': - """""" - pass - - - @property - def timesource(self)->'Any': - """""" - pass - - - @property - def acceptdownlevelapis(self)->'Any': - """""" - pass - - - @property - def lmannounce(self)->'Any': - """""" - pass - - -class PySERVER_INFO_503(object): - """A dictionary holding the information in a Win32 SERVER_INFO_503 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sessopens(self)->'Any': - """""" - pass - - - @property - def sessvcs(self)->'Any': - """""" - pass - - - @property - def opensearch(self)->'Any': - """""" - pass - - - @property - def sizreqbuf(self)->'Any': - """""" - pass - - - @property - def initworkitems(self)->'Any': - """""" - pass - - - @property - def maxworkitems(self)->'Any': - """""" - pass - - - @property - def rawworkitems(self)->'Any': - """""" - pass - - - @property - def irpstacksize(self)->'Any': - """""" - pass - - - @property - def maxrawbuflen(self)->'Any': - """""" - pass - - - @property - def sessusers(self)->'Any': - """""" - pass - - - @property - def sessconns(self)->'Any': - """""" - pass - - - @property - def maxpagedmemoryusage(self)->'Any': - """""" - pass - - - @property - def maxnonpagedmemoryusage(self)->'Any': - """""" - pass - - - @property - def enableforcedlogoff(self)->'Any': - """""" - pass - - - @property - def timesource(self)->'Any': - """""" - pass - - - @property - def acceptdownlevelapis(self)->'Any': - """""" - pass - - - @property - def lmannounce(self)->'Any': - """""" - pass - - - @property - def domain(self)->'Union[str]': - """""" - pass - - - @property - def maxkeepsearch(self)->'Any': - """""" - pass - - - @property - def scavtimeout(self)->'Any': - """""" - pass - - - @property - def minrcvqueue(self)->'Any': - """""" - pass - - - @property - def minfreeworkitems(self)->'Any': - """""" - pass - - - @property - def xactmemsize(self)->'Any': - """""" - pass - - - @property - def threadpriority(self)->'Any': - """""" - pass - - - @property - def maxmpxct(self)->'Any': - """""" - pass - - - @property - def oplockbreakwait(self)->'Any': - """""" - pass - - - @property - def oplockbreakresponsewait(self)->'Any': - """""" - pass - - - @property - def enableoplocks(self)->'Any': - """""" - pass - - - @property - def enablefcbopens(self)->'Any': - """""" - pass - - - @property - def enableraw(self)->'Any': - """""" - pass - - - @property - def enablesharednetdrives(self)->'Any': - """""" - pass - - - @property - def minfreeconnections(self)->'Any': - """""" - pass - - - @property - def maxfreeconnections(self)->'Any': - """""" - pass - - -class PySHARE_INFO_0(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'Union[str]': - """""" - pass - - -class PySHARE_INFO_1(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'Union[str]': - """""" - pass - - - @property - def type(self)->'Any': - """""" - pass - - - @property - def remark(self)->'Union[str]': - """""" - pass - - -class PySHARE_INFO_2(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'Union[str]': - """""" - pass - - - @property - def type(self)->'Any': - """""" - pass - - - @property - def remark(self)->'Union[str]': - """""" - pass - - - @property - def permissions(self)->'Any': - """""" - pass - - - @property - def max_uses(self)->'Any': - """""" - pass - - - @property - def current_uses(self)->'Any': - """""" - pass - - - @property - def path(self)->'Union[str]': - """""" - pass - - - @property - def passwd(self)->'Union[str]': - """""" - pass - - -class PySHARE_INFO_501(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_501 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'Union[str]': - """""" - pass - - - @property - def type(self)->'Any': - """""" - pass - - - @property - def remark(self)->'Union[str]': - """""" - pass - - - @property - def flags(self)->'Any': - """""" - pass - - -class PySHARE_INFO_502(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_502 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'Union[str]': - """""" - pass - - - @property - def type(self)->'Any': - """""" - pass - - - @property - def remark(self)->'Union[str]': - """""" - pass - - - @property - def permissions(self)->'Any': - """""" - pass - - - @property - def max_uses(self)->'Any': - """""" - pass - - - @property - def current_uses(self)->'Any': - """""" - pass - - - @property - def path(self)->'Union[str]': - """""" - pass - - - @property - def passwd(self)->'Union[str]': - """""" - pass - - - @property - def reserved(self)->'Any': - """""" - pass - - - @property - def security_descriptor(self)->'PySECURITY_DESCRIPTOR': - """""" - pass - - -class PySID(object): - """A Python object, representing a SID structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,idAuthority:'Any',numSubauthorities:'Any') -> 'None': - """ - Initialize the SID. - -Args: - - idAuthority(Any):The identifier authority. - numSubauthorities(Any):The number of sub authorities to allocate. - -Returns: - - None - - """ - pass - - - def IsValid(self,) -> 'None': - """ - Determines if the SID is valid. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetSubAuthority(self,index:'Any',val:'Any') -> 'None': - """ - Sets a SID SubAuthority - -Args: - - index(Any):The index of the sub authority to set - val(Any):The value for the sub authorityCommentsSee the function SetSidSubAuthority - -Returns: - - None - - """ - pass - - - def GetLength(self,) -> 'Any': - """ - return length of SID (GetLengthSid). - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSubAuthorityCount(self,) -> 'Any': - """ - return nbr of subauthorities from SID - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSubAuthority(self,) -> 'Any': - """ - Returns specified subauthority from SID - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSidIdentifierAuthority(self,) -> 'Tuple[Any, Any, Any, Any, Any, Any]': - """ - Returns a tuple of 6 SID_IDENTIFIER_AUTHORITY - -constants - -Args: - - - -Returns: - - Tuple[Any, Any, Any, Any, Any, Any] - - """ - pass - - -class PySID_AND_ATTRIBUTES(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySIZE(object): - """Tuple of two ints (cx,cy) representing a SIZE struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySMALL_RECT(object): - """Wrapper for a SMALL_RECT struct - -Create using PySMALL_RECTType(Left, Top, Right, Bottom). All params optional, defaulting to 0""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Left(self)->'Any': - """Left side of rectangle""" - pass - - - @property - def Top(self)->'Any': - """Top edge of rectangle""" - pass - - - @property - def Right(self)->'Any': - """Right edge of rectangle""" - pass - - - @property - def Bottom(self)->'Any': - """Bottome edge of rectangle""" - pass - - -class PySTARTUPINFO(object): - """A Python object, representing an STARTUPINFO structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwX(self)->'int': - """Specifies the x offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" - pass - - - @property - def dwY(self)->'int': - """Specifies the y offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" - pass - - - @property - def dwXSize(self)->'int': - """Specifies the width, in pixels, of the window if a new window is created.""" - pass - - - @property - def dwYSize(self)->'int': - """Specifies the height, in pixels, of the window if a new window is created.""" - pass - - - @property - def dwXCountChars(self)->'int': - """For console processes, if a new console window is created, specifies the screen buffer width in character columns. This value is ignored in a GUI process.""" - pass - - - @property - def dwYCountChars(self)->'int': - """For console processes, if a new console window is created, specifies the screen buffer height in character rows.""" - pass - - - @property - def dwFillAttribute(self)->'int': - """Specifies the initial text and background colors if a new console window is created in a console application. These values are ignored in GUI applications""" - pass - - - @property - def dwFlags(self)->'int': - """This is a bit field that determines whether certain STARTUPINFO attributes are used when the process creates a window. To use many of the additional attributes, you typically must set the appropriate mask in this attribute, and also set the attributes themselves. Any combination of the win32con.STARTF_* flags can be specified.""" - pass - - - @property - def wShowWindow(self)->'int': - """Can be any of the SW_ constants defined in win32con. For GUI processes, this specifies the default value the first time ShowWindow is called.""" - pass - - - @property - def hStdInput(self)->'Union[int]': - """""" - pass - - - @property - def hStdOutput(self)->'Union[int]': - """""" - pass - - - @property - def hStdError(self)->'Union[int]': - """""" - pass - - - @property - def lpDesktop(self)->'Union[Any, str]': - """""" - pass - - - @property - def lpTitle(self)->'Union[Any, str]': - """""" - pass - - -class PySecBuffer(object): - """Python object wrapping a SecBuffer structure - -Created using win32security.PySecBufferType(type,size) where type is a SECBUFFER_* constant""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def BufferType(self)->'Any': - """""" - pass - - - @property - def Buffer(self)->'str': - """""" - pass - - - @property - def BufferSize(self)->'Any': - """""" - pass - - - @property - def MaxBufferSize(self)->'Any': - """""" - pass - - - def Clear(self,) -> 'None': - """ - Resets the buffer to all NULL's, and set the current size to maximum - -Args: - - - -Returns: - - None - - """ - pass - - -class PySecBufferDesc(object): - """Sequence-like object that contains a group of buffers to be used with SSPI functions.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def append(self,buffer:'Any') -> 'None': - """ - None - -Args: - - buffer(Any):PySecBuffer object to be attached to the group of buffers - -Returns: - - None - - """ - pass - - -class PyTOKEN_GROUPS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyTOKEN_PRIVILEGES(object): - """An object representing Win32 token privileges.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyTRIVERTEX(object): - """Dict representing a TRIVERTEX struct containing color information at a point""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def x(self)->'Any': - """X coord in logical units""" - pass - - - @property - def y(self)->'Any': - """Y coord in logical units""" - pass - - - @property - def Red(self)->'Any': - """Red component""" - pass - - - @property - def Green(self)->'Any': - """Green component""" - pass - - - @property - def Blue(self)->'Any': - """Blue component""" - pass - - - @property - def Alpha(self)->'Any': - """Transparency value""" - pass - - -class PyTRUSTEE(object): - """A dictionary representing a TRUSTEE structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def TrusteeForm(self)->'Any': - """""" - pass - - - @property - def TrusteeType(self)->'Any': - """""" - pass - - - @property - def Identifier(self)->'Any': - """Depends on the value of TrusteeForm (string or sid)""" - pass - - - @property - def MultipleTrustee(self)->'Any': - """default is None""" - pass - - - @property - def MultipleTrusteeOperation(self)->'Any': - """default is None""" - pass - - -class PyTS_HANDLE(object): - """Handle to a Terminal Server""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyTime(object): - """A Python object, representing an instant in time.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def year(self)->'Any': - """""" - pass - - - @property - def month(self)->'Any': - """""" - pass - - - @property - def weekday(self)->'Any': - """""" - pass - - - @property - def day(self)->'Any': - """""" - pass - - - @property - def hour(self)->'Any': - """""" - pass - - - @property - def minute(self)->'Any': - """""" - pass - - - @property - def second(self)->'Any': - """""" - pass - - - @property - def msec(self)->'Any': - """""" - pass - - - def Format(self,_format:'str') -> 'str': - """ - Formats the time value. - -Args: - - _format(str):The format. See the comments section for a description of the supported flags.CommentsThe following format characters are supported.CharacterDescription%aAbbreviated weekday name%AFull weekday name%bAbbreviated month name%BFull month name%cDate and time representation appropriate for locale%dDay of month as decimal number (01 - 31)%HHour in 24-hour format (00 - 23)%IHour in 12-hour format (01 - 12)%jDay of year as decimal number (001 - 366)%mMonth as decimal number (01 - 12)%MMinute as decimal number (00 - 59)%pCurrent locale's A.M./P.M. indicator for 12-hour clock%SSecond as decimal number (00 - 59)%UWeek of year as decimal number, with Sunday as first day of week (00 - 51)%wWeekday as decimal number (0 - 6; Sunday is 0)%WWeek of year as decimal number, with Monday as first day of week (00 - 51)%xDate representation for current locale%XTime representation for current locale%yYear without century, as decimal number (00 - 99)%YYear with century, as decimal number%z, %ZTime-zone name or abbreviation; no characters if time zone is unknown%%Percent signAs in the printf function, the # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.Format CodeMeaning%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%# flag is ignored.%#cLong date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".%#xLong date representation, appropriate to current locale. For example: "Tuesday, March 14, 1995".%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#YRemove leading zeros (if any). - -Returns: - - str - - """ - pass - - -class PyUSER_INFO_0(object): - """A dictionary holding the information in a Win32 USER_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """""" - pass - - -class PyUSER_INFO_1(object): - """A dictionary holding the information in a Win32 USER_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def password(self)->'Union[str]': - """""" - pass - - - @property - def password_age(self)->'Any': - """""" - pass - - - @property - def priv(self)->'Any': - """""" - pass - - - @property - def home_dir(self)->'Union[str]': - """""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - - @property - def flags(self)->'Any': - """""" - pass - - - @property - def script_path(self)->'Union[str]': - """""" - pass - - -class PyUSER_INFO_10(object): - """A dictionary holding the information in a Win32 USER_INFO_10 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'Union[str]': - """""" - pass - - - @property - def full_name(self)->'Union[str]': - """""" - pass - - -class PyUSER_INFO_1003(object): - """A dictionary holding the information in a Win32 USER_INFO_1003 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def password(self)->'Union[str]': - """""" - pass - - -class PyUSER_INFO_1005(object): - """A dictionary holding the information in a Win32 USER_INFO_1005 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def priv(self)->'Any': - """""" - pass - - -class PyUSER_INFO_1006(object): - """A dictionary holding the information in a Win32 USER_INFO_1006 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def home_dir(self)->'Union[str]': - """""" - pass - - -class PyUSER_INFO_1007(object): - """A dictionary holding the information in a Win32 USER_INFO_1007 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def comment(self)->'Union[str]': - """""" - pass - - -class PyUSER_INFO_1008(object): - """A dictionary holding the information in a Win32 USER_INFO_1008 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def flags(self)->'Any': - """""" - pass - - -class PyUSER_INFO_1009(object): - """A dictionary holding the information in a Win32 USER_INFO_1009 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def script_path(self)->'Union[str]': - """""" - pass - - -class PyUSER_INFO_1010(object): - """A dictionary holding the information in a Win32 USER_INFO_1010 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def auth_flags(self)->'Any': - """""" - pass - - -class PyUSER_INFO_1011(object): - """A dictionary holding the information in a Win32 USER_INFO_1011 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def full_name(self)->'Union[str]': - """""" - pass - - -class PyUSER_INFO_11(object): - """A dictionary holding the information in a Win32 USER_INFO_11 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'Union[str]': - """""" - pass - - - @property - def full_name(self)->'Union[str]': - """""" - pass - - - @property - def priv(self)->'Any': - """""" - pass - - - @property - def auth_flags(self)->'Any': - """""" - pass - - - @property - def password_age(self)->'Any': - """""" - pass - - - @property - def home_dir(self)->'Union[str]': - """""" - pass - - - @property - def parms(self)->'Union[str]': - """""" - pass - - - @property - def last_logon(self)->'Any': - """""" - pass - - - @property - def last_logoff(self)->'Any': - """""" - pass - - - @property - def bad_pw_count(self)->'Any': - """""" - pass - - - @property - def num_logons(self)->'Any': - """""" - pass - - - @property - def logon_server(self)->'Union[str]': - """""" - pass - - - @property - def country_code(self)->'Any': - """""" - pass - - - @property - def workstations(self)->'Union[str]': - """""" - pass - - - @property - def max_storage(self)->'Any': - """""" - pass - - - @property - def units_per_week(self)->'Any': - """""" - pass - - - @property - def logon_hours(self)->'str': - """""" - pass - - - @property - def code_page(self)->'Any': - """""" - pass - - -class PyUSER_INFO_2(object): - """A dictionary holding the information in a Win32 USER_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def password(self)->'Union[str]': - """""" - pass - - - @property - def password_age(self)->'Any': - """""" - pass - - - @property - def priv(self)->'Any': - """""" - pass - - - @property - def home_dir(self)->'Union[str]': - """""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - - @property - def flags(self)->'Any': - """""" - pass - - - @property - def script_path(self)->'Union[str]': - """""" - pass - - - @property - def auth_flags(self)->'Any': - """""" - pass - - - @property - def full_name(self)->'Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'Union[str]': - """""" - pass - - - @property - def parms(self)->'Union[str]': - """""" - pass - - - @property - def workstations(self)->'Union[str]': - """""" - pass - - - @property - def last_logon(self)->'Any': - """""" - pass - - - @property - def last_logoff(self)->'Any': - """""" - pass - - - @property - def acct_expires(self)->'Any': - """""" - pass - - - @property - def max_storage(self)->'Any': - """""" - pass - - - @property - def units_per_week(self)->'Any': - """""" - pass - - - @property - def logon_hours(self)->'str': - """""" - pass - - - @property - def bad_pw_count(self)->'Any': - """""" - pass - - - @property - def num_logons(self)->'Any': - """""" - pass - - - @property - def logon_server(self)->'Union[str]': - """""" - pass - - - @property - def country_code(self)->'Any': - """""" - pass - - - @property - def code_page(self)->'Any': - """""" - pass - - -class PyUSER_INFO_20(object): - """A dictionary holding the information in a Win32 USER_INFO_20 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def full_name(self)->'Union[str]': - """""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - - @property - def flags(self)->'Any': - """""" - pass - - - @property - def user_id(self)->'Any': - """""" - pass - - -class PyUSER_INFO_3(object): - """A dictionary holding the information in a Win32 USER_INFO_3 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def password(self)->'Union[str]': - """""" - pass - - - @property - def password_age(self)->'Any': - """""" - pass - - - @property - def priv(self)->'Any': - """""" - pass - - - @property - def home_dir(self)->'Union[str]': - """""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - - @property - def flags(self)->'Any': - """""" - pass - - - @property - def script_path(self)->'Union[str]': - """""" - pass - - - @property - def auth_flags(self)->'Any': - """""" - pass - - - @property - def full_name(self)->'Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'Union[str]': - """""" - pass - - - @property - def parms(self)->'Union[str]': - """""" - pass - - - @property - def workstations(self)->'Union[str]': - """""" - pass - - - @property - def last_logon(self)->'Any': - """""" - pass - - - @property - def last_logoff(self)->'Any': - """""" - pass - - - @property - def acct_expires(self)->'Any': - """""" - pass - - - @property - def max_storage(self)->'Any': - """""" - pass - - - @property - def units_per_week(self)->'Any': - """""" - pass - - - @property - def logon_hours(self)->'str': - """""" - pass - - - @property - def bad_pw_count(self)->'Any': - """""" - pass - - - @property - def num_logons(self)->'Any': - """""" - pass - - - @property - def logon_server(self)->'Union[str]': - """""" - pass - - - @property - def country_code(self)->'Any': - """""" - pass - - - @property - def code_page(self)->'Any': - """""" - pass - - - @property - def user_id(self)->'Any': - """""" - pass - - - @property - def primary_group_id(self)->'Any': - """""" - pass - - - @property - def profile(self)->'Union[str]': - """""" - pass - - - @property - def home_dir_drive(self)->'Union[str]': - """""" - pass - - - @property - def password_expired(self)->'Any': - """""" - pass - - -class PyUSER_INFO_4(object): - """A dictionary holding the information in a Win32 USER_INFO_4 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'Union[str]': - """""" - pass - - - @property - def password(self)->'Union[str]': - """""" - pass - - - @property - def password_age(self)->'Any': - """""" - pass - - - @property - def priv(self)->'Any': - """""" - pass - - - @property - def home_dir(self)->'Union[str]': - """""" - pass - - - @property - def comment(self)->'Union[str]': - """""" - pass - - - @property - def flags(self)->'Any': - """""" - pass - - - @property - def script_path(self)->'Union[str]': - """""" - pass - - - @property - def auth_flags(self)->'Any': - """""" - pass - - - @property - def full_name(self)->'Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'Union[str]': - """""" - pass - - - @property - def parms(self)->'Union[str]': - """""" - pass - - - @property - def workstations(self)->'Union[str]': - """""" - pass - - - @property - def last_logon(self)->'Any': - """""" - pass - - - @property - def last_logoff(self)->'Any': - """""" - pass - - - @property - def acct_expires(self)->'Any': - """""" - pass - - - @property - def max_storage(self)->'Any': - """""" - pass - - - @property - def units_per_week(self)->'Any': - """""" - pass - - - @property - def logon_hours(self)->'str': - """""" - pass - - - @property - def bad_pw_count(self)->'Any': - """""" - pass - - - @property - def num_logons(self)->'Any': - """""" - pass - - - @property - def logon_server(self)->'Union[str]': - """""" - pass - - - @property - def country_code(self)->'Any': - """""" - pass - - - @property - def code_page(self)->'Any': - """""" - pass - - - @property - def user_sid(self)->'PySID': - """""" - pass - - - @property - def primary_group_id(self)->'Any': - """""" - pass - - - @property - def profile(self)->'Union[str]': - """""" - pass - - - @property - def home_dir_drive(self)->'Union[str]': - """""" - pass - - - @property - def password_expired(self)->'Any': - """""" - pass - - -class PyUSER_MODALS_INFO_0(object): - """A dictionary holding the information in a Win32 USER_MODALS_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def min_passwd_len(self)->'Any': - """""" - pass - - - @property - def max_passwd_age(self)->'Any': - """""" - pass - - - @property - def min_passwd_age(self)->'Any': - """""" - pass - - - @property - def force_logoff(self)->'Any': - """""" - pass - - - @property - def password_hist_len(self)->'Any': - """""" - pass - - -class PyUSER_MODALS_INFO_1(object): - """A dictionary holding the information in a Win32 USER_MODALS_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def role(self)->'Any': - """""" - pass - - - @property - def primary(self)->'Union[str]': - """""" - pass - - -class PyUSER_MODALS_INFO_2(object): - """A dictionary holding the information in a Win32 USER_MODALS_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def domain_name(self)->'Union[str]': - """""" - pass - - - @property - def domain_id(self)->'PySID': - """""" - pass - - -class PyUSER_MODALS_INFO_3(object): - """A dictionary holding the information in a Win32 USER_MODALS_INFO_3 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def lockout_duration(self)->'Any': - """""" - pass - - - @property - def lockout_observation_window(self)->'Any': - """""" - pass - - - @property - def usrmod3_lockout_threshold(self)->'Any': - """""" - pass - - -class PyUSE_INFO_0(object): - """A dictionary holding the infomation in a Win32 USE_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def local(self)->'Union[str]': - """""" - pass - - - @property - def remote(self)->'Union[str]': - """""" - pass - - -class PyUSE_INFO_1(object): - """A dictionary holding the infomation in a Win32 USE_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def local(self)->'Union[str]': - """""" - pass - - - @property - def remote(self)->'Union[str]': - """""" - pass - - - @property - def password(self)->'Union[Any, str]': - """""" - pass - - - @property - def status(self)->'Any': - """""" - pass - - - @property - def asg_type(self)->'Any': - """""" - pass - - - @property - def refcount(self)->'Any': - """""" - pass - - - @property - def usecount(self)->'Any': - """""" - pass - - -class PyUSE_INFO_2(object): - """A dictionary holding the infomation in a Win32 USE_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def local(self)->'Union[str]': - """""" - pass - - - @property - def remote(self)->'Union[str]': - """""" - pass - - - @property - def password(self)->'Union[Any, str]': - """""" - pass - - - @property - def status(self)->'Any': - """""" - pass - - - @property - def asg_type(self)->'Any': - """""" - pass - - - @property - def refcount(self)->'Any': - """""" - pass - - - @property - def usecount(self)->'Any': - """""" - pass - - - @property - def username(self)->'Union[str]': - """""" - pass - - - @property - def domainname(self)->'Union[str]': - """""" - pass - - -class PyUSE_INFO_3(object): - """A dictionary holding the infomation in a Win32 USE_INFO_3 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def local(self)->'Union[str]': - """""" - pass - - - @property - def remote(self)->'Union[str]': - """""" - pass - - - @property - def password(self)->'Union[Any, str]': - """""" - pass - - - @property - def status(self)->'Any': - """""" - pass - - - @property - def asg_type(self)->'Any': - """""" - pass - - - @property - def refcount(self)->'Any': - """""" - pass - - - @property - def usecount(self)->'Any': - """""" - pass - - - @property - def username(self)->'Union[str]': - """""" - pass - - - @property - def domainname(self)->'Union[str]': - """""" - pass - - - @property - def flags(self)->'Any': - """""" - pass - - -class PyUnicode(object): - """A Python object, representing a Unicode string.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyUrlCacheHANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyWAVEFORMATEX(object): - """A Python object, representing a WAVEFORMATEX structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def wFormatTag(self)->'int': - """Waveform-audio format type. pywintypes only defines WAVE_FORMAT_PCM as a constant. Other values must be looked up in the mmsystem.h header file.""" - pass - - - @property - def nChannels(self)->'int': - """Number of channels. 1 for Mono, 2 for Stereo, anything, but never 5.1.""" - pass - - - @property - def nSamplesPerSec(self)->'int': - """Sample rate, in samples per second (hertz), that each channel should be played or recorded. If wFormatTag is WAVE_FORMAT_PCM, then common values for nSamplesPerSec are 8000, 11025, 22050, and 44100 Hz""" - pass - - - @property - def nAvgBytesPerSec(self)->'int': - """Required average data-transfer rate, in bytes per second, for the format tag. If wFormatTag is WAVE_FORMAT_PCM, nAvgBytesPerSec should be equal to the product of nSamplesPerSec and nBlockAlign.""" - pass - - - @property - def nBlockAlign(self)->'int': - """Block alignment, in bytes. The block alignment is the minimum atomic unit of data for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, nBlockAlign should be equal to the product of nChannels and wBitsPerSample divided by 8 (bits per byte). For non-PCM formats, this member must be computed according to the manufacturer’s specification of the format tag.""" - pass - - - @property - def wBitsPerSample(self)->'int': - """Bits per sample for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, then wBitsPerSample should be equal to 8 or 16. Sentinel""" - pass - - -class PyWINHTTP_AUTOPROXY_OPTIONS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyWINHTTP_PROXY_INFO(object): - """A tuple representing a WINHTTP_PROXY_INFO structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyWKSTA_INFO_100(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_100 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'Any': - """Indicates platform level to use to retrieve platform specific information""" - pass - - - @property - def computername(self)->'Union[str]': - """Name of the local computer""" - pass - - - @property - def langroup(self)->'Union[str]': - """Name of the domain to which computer belongs""" - pass - - - @property - def ver_major(self)->'Any': - """Major version number of operating system running on the computer""" - pass - - - @property - def ver_minor(self)->'Any': - """Minor version number of operating system running on the computer""" - pass - - -class PyWKSTA_INFO_101(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_101 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'Any': - """Indicates platform level to use to retrieve platform specific information""" - pass - - - @property - def computername(self)->'Union[str]': - """Name of the local computer""" - pass - - - @property - def langroup(self)->'Union[str]': - """Name of the domain to which computer belongs""" - pass - - - @property - def ver_major(self)->'Any': - """Major version number of operating system running on the computer""" - pass - - - @property - def ver_minor(self)->'Any': - """Minor version number of operating system running on the computer""" - pass - - - @property - def lanroot(self)->'Union[str]': - """Path to the LANMAN directory""" - pass - - -class PyWKSTA_INFO_102(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_102 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'Any': - """Indicate platform level to use to retrieve platform specific information""" - pass - - - @property - def computername(self)->'Union[str]': - """Name of the local computer""" - pass - - - @property - def langroup(self)->'Union[str]': - """Name of the domain to which computer belongs""" - pass - - - @property - def ver_major(self)->'Any': - """Major version number of operating system running on the computer""" - pass - - - @property - def ver_minor(self)->'Any': - """Minor version number of operating system running on the computer""" - pass - - - @property - def lanroot(self)->'Union[str]': - """Path to the LANMAN directory""" - pass - - - @property - def logged_on_users(self)->'Any': - """Number of users who are logged on to the local computer""" - pass - - -class PyWKSTA_INFO_302(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_302 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def char_wait(self)->'Any': - """number of seconds the computer will wait for a remote resource to become available""" - pass - - - @property - def collection_time(self)->'Any': - """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki302_maximum_collection_count, whichever comes first.""" - pass - - - @property - def maximum_collection_count(self)->'Any': - """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" - pass - - - @property - def keep_conn(self)->'Any': - """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" - pass - - - @property - def keep_search(self)->'Any': - """Defines the number of seconds an inactive search will continue.""" - pass - - - @property - def max_cmds(self)->'Any': - """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" - pass - - - @property - def num_work_buf(self)->'Any': - """Specifies the number of internal buffers the computer has.""" - pass - - - @property - def siz_work_buf(self)->'Any': - """Specifies the size, in bytes, of each internal buffer.""" - pass - - - @property - def max_wrk_cache(self)->'Any': - """Specifies the maximum size, in bytes, of an internal cache buffer.""" - pass - - - @property - def siz_error(self)->'Any': - """Specifies the size, in bytes, of an internal error buffer.""" - pass - - - @property - def num_alerts(self)->'Any': - """Specifies the maximum number of clients that can receive alert messages. (This member is not supported under MS-DOS.) The Alerter service registers at least three clients when it begins to run.""" - pass - - - @property - def num_services(self)->'Any': - """Specifies the number of services that can be installed on the computer at any time.""" - pass - - - @property - def errlog_sz(self)->'Any': - """Specifies the maximum size, in kilobytes, of the client's error log file.""" - pass - - - @property - def print_buf_time(self)->'Any': - """Specifies the number of seconds the server waits before closing inactive compatibility-mode print jobs.""" - pass - - - @property - def num_char_buf(self)->'Any': - """Specifies the number of character pipe buffers and device buffers the client can have.""" - pass - - - @property - def siz_char_buf(self)->'Any': - """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" - pass - - - @property - def wrk_heuristics(self)->'Union[str]': - """Pointer to a Unicode string of flags used to control a client's operation.""" - pass - - - @property - def mailslots(self)->'Any': - """Specifies the maximum number of mailslots allowed.""" - pass - - - @property - def num_dgram_buf(self)->'Any': - """Specifies the number of buffers to allocate for receiving datagrams.""" - pass - - -class PyWKSTA_INFO_402(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_402 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def char_wait(self)->'Any': - """number of seconds the computer will wait for a remote resource to become available""" - pass - - - @property - def collection_time(self)->'Any': - """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki402_maximum_collection_count, whichever comes first.""" - pass - - - @property - def maximum_collection_count(self)->'Union[str]': - """Name of the domain to which computer belongs""" - pass - - - @property - def keep_conn(self)->'Any': - """Major version number of operating system running on the computer""" - pass - - - @property - def keep_search(self)->'Any': - """Minor version number of operating system running on the computer""" - pass - - - @property - def max_cmds(self)->'Any': - """..""" - pass - - - @property - def num_work_buf(self)->'Any': - """Number of users who are logged on to the local computer""" - pass - - - @property - def siz_work_buf(self)->'Any': - """Number of users who are logged on to the local computer""" - pass - - - @property - def max_wrk_cache(self)->'Any': - """..""" - pass - - - @property - def sess_timeout(self)->'Any': - """..""" - pass - - - @property - def siz_error(self)->'Any': - """..""" - pass - - - @property - def num_alerts(self)->'Any': - """..""" - pass - - - @property - def num_services(self)->'Any': - """..""" - pass - - - @property - def errlog_sz(self)->'Any': - """..""" - pass - - - @property - def print_buf_time(self)->'Any': - """..""" - pass - - - @property - def num_char_buf(self)->'Any': - """..""" - pass - - - @property - def siz_char_buf(self)->'Any': - """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" - pass - - - @property - def mailslots(self)->'Any': - """..""" - pass - - - @property - def num_dgram_buf(self)->'Any': - """..""" - pass - - - @property - def max_threads(self)->'Any': - """Number of threads the computer can dedicate to the network""" - pass - - -class PyWKSTA_INFO_502(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_502 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def char_wait(self)->'Any': - """number of seconds the computer will wait for a remote resource to become available""" - pass - - - @property - def collection_time(self)->'Any': - """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki502_maximum_collection_count, whichever comes first.""" - pass - - - @property - def maximum_collection_count(self)->'Any': - """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" - pass - - - @property - def keep_conn(self)->'Any': - """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" - pass - - - @property - def max_cmds(self)->'Any': - """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" - pass - - - @property - def max_wrk_cache(self)->'Any': - """Indicates the number of seconds the server waits before disconnecting an inactive session.""" - pass - - - @property - def siz_char_buf(self)->'Any': - """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" - pass - - - @property - def lock_quota(self)->'Any': - """TODO""" - pass - - - @property - def lock_increment(self)->'Any': - """TODO""" - pass - - - @property - def lock_maximum(self)->'Any': - """TODO""" - pass - - - @property - def pipe_increment(self)->'Any': - """TODO""" - pass - - - @property - def pipe_maximum(self)->'Any': - """TODO""" - pass - - - @property - def cache_file_timeout(self)->'Any': - """TODO""" - pass - - - @property - def dormant_file_limit(self)->'Any': - """TODO""" - pass - - - @property - def read_ahead_throughput(self)->'Any': - """TODO""" - pass - - - @property - def num_mailslot_buffers(self)->'Any': - """TODO""" - pass - - - @property - def num_srv_announce_buffers(self)->'Any': - """TODO""" - pass - - - @property - def max_illegal_datagram_events(self)->'Any': - """TODO""" - pass - - - @property - def illegal_datagram_event_reset_frequency(self)->'Any': - """TODO""" - pass - - - @property - def log_election_packets(self)->'Any': - """TODO""" - pass - - - @property - def use_opportunistic_locking(self)->'Any': - """TODO""" - pass - - - @property - def use_unlock_behind(self)->'Any': - """TODO""" - pass - - - @property - def use_close_behind(self)->'Any': - """TODO""" - pass - - - @property - def buf_named_pipes(self)->'Any': - """TODO""" - pass - - - @property - def use_lock_read_unlock(self)->'Any': - """TODO""" - pass - - - @property - def utilize_nt_caching(self)->'Any': - """TODO""" - pass - - - @property - def use_raw_read(self)->'Any': - """TODO""" - pass - - - @property - def use_raw_write(self)->'Any': - """TODO""" - pass - - - @property - def use_write_raw_data(self)->'Any': - """TODO""" - pass - - - @property - def use_encryption(self)->'Any': - """TODO""" - pass - - - @property - def buf_files_deny_write(self)->'Any': - """TODO""" - pass - - - @property - def buf_read_only_files(self)->'Any': - """TODO""" - pass - - - @property - def force_core_create_mode(self)->'Any': - """TODO""" - pass - - - @property - def use_512_byte_max_transfer(self)->'Any': - """TODO""" - pass - - -class PyWKSTA_TRANSPORT_INFO_0(object): - """A dictionary holding the infomation in a Win32 WKSTA_TRANSPORT_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def quality_of_service(self)->'Any': - """Supplies a value that specifies the search order of the transport protocol with respect to other transport protocols. The highest value is searched first.""" - pass - - - @property - def number_of_vcs(self)->'Any': - """Specifies the number of clients communicating with the server using this transport protocol.""" - pass - - - @property - def transport_name(self)->'Union[str]': - """Specifies the device name of the transport protocol.""" - pass - - - @property - def transport_address(self)->'Union[str]': - """Specifies the address of the server on this transport protocol.""" - pass - - - @property - def wan_ish(self)->'Any': - """This member is ignored by the NetWkstaTransportAdd function. For the NetWkstaTransportEnum function, this member indicates that this transport protocol is a WAN transport protocol. This member is set TRUE for NetBIOS/TCIP; it is set FALSE for NetBEUI and NetBIOS/IPX.""" - pass - - -class PyWKSTA_USER_INFO_0(object): - """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def username(self)->'Union[str]': - """Name of user currently logged on to the workstation""" - pass - - -class PyWKSTA_USER_INFO_1(object): - """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def username(self)->'Union[str]': - """Name of user currently logged on to the workstation""" - pass - - - @property - def logon_domain(self)->'Union[str]': - """Returns the domain name of the user account of the user currently logged on to the workstation.""" - pass - - - @property - def oth_domains(self)->'Union[str]': - """Returns the list of other operating system domains browsed by the workstation. The domain names are separated by blanks.""" - pass - - - @property - def logon_server(self)->'Union[str]': - """Returns the name of the computer that authenticated the server.""" - pass - - -class PyWNDCLASS(object): - """A Python object, representing an WNDCLASS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def style(self)->'int': - """""" - pass - - - @property - def cbWndExtra(self)->'int': - """""" - pass - - - @property - def hInstance(self)->'int': - """""" - pass - - - @property - def hIcon(self)->'int': - """""" - pass - - - @property - def hCursor(self)->'int': - """""" - pass - - - @property - def hbrBackground(self)->'int': - """These 3 handled manually in PyWNDCLASS::getattro/setattro. The pymeth below is used as an end tag, so these props will be lost if below it""" - pass - - - @property - def lpszMenuName(self)->'Union[str]': - """""" - pass - - - @property - def lpszClassName(self)->'Union[str]': - """""" - pass - - - @property - def lpfnWndProc(self)->'Any': - """MethodsSetDialogProcSets the WNDCLASS to be for a dialog box. """ - pass - - - def SetDialogProc(self,) -> 'None': - """ - Sets the WNDCLASS to be for a dialog box - -Args: - - - -Returns: - - None - - """ - pass - - -class PyXFORM(object): - """Dict representing an XFORM struct used as a world transformation matrix - -All members are optional, defaulting to 0.0.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def M11(self)->'float': - """Usage is dependent on operation performed, see MSDN docs""" - pass - - - @property - def M12(self)->'float': - """Usage is dependent on operation performed, see MSDN docs""" - pass - - - @property - def M21(self)->'float': - """Usage is dependent on operation performed, see MSDN docs""" - pass - - - @property - def M22(self)->'float': - """Usage is dependent on operation performed, see MSDN docs""" - pass - - - @property - def Dx(self)->'float': - """Horizontal offset in logical units""" - pass - - - @property - def Dy(self)->'float': - """Vertical offset in logical units""" - pass - - -class Pymmapfile(object): - """Object that provides access to memory-mapped file operations.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def close(self,) -> 'None': - """ - Closes the file mapping handle and releases mapped view - -Args: - - - -Returns: - - None - - """ - pass - - - def find(self,needle:'Any',start:'Any') -> 'Any': - """ - Finds a string in the buffer. - -Args: - - needle(Any):String to be located - start(Any):Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found - -Returns: - - Any:Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found - - - """ - pass - - - def flush(self,offset:'Any'=0,size:'Any'=0) -> 'None': - """ - Flushes memory buffer to disk - -Args: - - offset(Any):Position in buffer at which to flush - size(Any):Number of bytes to flush, 0 to flush remainder of buffer past the offset - -Returns: - - None - - """ - pass - - - def move(self,dest:'Any',src:'Any',count:'Any') -> 'None': - """ - Moves data from one place in buffer to another - -Args: - - dest(Any):Destination position in buffer - src(Any):Source position in buffer - count(Any):Number of bytes to move - -Returns: - - None - - """ - pass - - - def read(self,num_bytes:'Any') -> 'Any': - """ - Returns specified number of bytes from buffer, and advances current position - -Args: - - num_bytes(Any):Number of bytes to read - -Returns: - - Any - - """ - pass - - - def read_byte(self,) -> 'Any': - """ - Reads a single character from current pos - -Args: - - - -Returns: - - Any - - """ - pass - - - def read_line(self,) -> 'Any': - """ - Reads data from current pos up to next EOL. - -Args: - - - -Returns: - - Any - - """ - pass - - - def resize(self,MaximumSize:'Any',FileOffset:'Any'=0,NumberOfBytesToMap:'Any'=0) -> 'None': - """ - Resizes the file mapping and view. - -Args: - - MaximumSize(Any):New size for file mapping. Use a multiple of system page size (see win32api::GetSystemInfo) - FileOffset(Any):Offset into file mapping. Must be multiple of allocation granularity. - NumberOfBytesToMap(Any):New view size. Specify a multiple of system page size.CommentsIf MaximumSize is 0, only the mapped view will be affected.Accepts keyword args. - -Returns: - - None - - """ - pass - - - def seek(self,dist:'Any',how:'Any'=0) -> 'None': - """ - Changes current position - -Args: - - dist(Any):Distance to seek - how(Any):Pos from which to seekhowmeaning0Seek from start of buffer1Seek from current position2Seek backwards from end of buffer - -Returns: - - None - - """ - pass - - - def size(self,) -> 'Any': - """ - Returns size of current view - -Args: - - - -Returns: - - Any - - """ - pass - - - def tell(self,) -> 'Any': - """ - Returns current position in buffer - -Args: - - - -Returns: - - Any - - """ - pass - - - def write(self,data:'Any') -> 'None': - """ - Places data at current pos in buffer. - -Args: - - data(Any):Data to be written - -Returns: - - None - - """ - pass - - - def write_byte(self,char:'Any') -> 'None': - """ - Writes a single character of data - -Args: - - char(Any):Single byte to be placed in buffer - -Returns: - - None - - """ - pass - - -class RASDIALEXTENSIONS(object): - """An object that describes a Win32 RASDIALEXTENSIONS structure - -TRUE*/)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwfOptions(self)->'int': - """(fOptions may also be used)""" - pass - - - @property - def hwndParent(self)->'int': - """""" - pass - - - @property - def reserved(self)->'int': - """""" - pass - - - @property - def reserved1(self)->'int': - """""" - pass - - - @property - def RasEapInfo(self)->'Any': - """""" - pass - - -class RASDIALPARAMS(object): - """A tuple that describes a Win32 RASDIALPARAMS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SC_ACTION(object): - """Tuple of 2 ints (Type,Delay) used to represent an SC_ACTION structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Type(self)->'Any': - """One of SC_ACTION_NONE, SC_ACTION_REBOOT, SC_ACTION_RESTART, SC_ACTION_RUN_COMMAND""" - pass - - - @property - def Delay(self)->'Any': - """Time delay before specified action is taken (in milliseconds)""" - pass - - -class SERVICE_FAILURE_ACTIONS(object): - """A dictionary representing a SERVICE_FAILURE_ACTIONS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ResetPeriod(self)->'Any': - """Indicates how many seconds to wait to reset the failure count, can be INFINITE""" - pass - - - @property - def RebootMsg(self)->'Union[Any, str]': - """Message displayed when reboot action is taken""" - pass - - - @property - def Command(self)->'Union[Any, str]': - """Command line to execute for SC_ACTION_RUN_COMMAND""" - pass - - - @property - def Actions(self)->'Any': - """A tuple of SC_ACTION tuples""" - pass - - -class SERVICE_STATUS(object): - """A Win32 service status object is represented by a tuple:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class TRACKMOUSEEVENT(object): - """A tuple of (dwFlags, hwndTrack, dwHoverTime)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class ULARGE_INTEGER(object): - """A Python object used wherever a COM ULARGE_INTEGER is used.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class WIN32_FIND_DATA(object): - """A tuple representing a WIN32_FIND_DATA structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class com_error(object): - """An exception raised when a COM exception occurs.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class connection(object): - """An object representing an ODBC connection""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def setautocommit(self,c:'Any') -> 'None': - """ - Sets the autocommit mode. - -Args: - - c(Any):The boolean autocommit mode. - -Returns: - - None - - """ - pass - - - def commit(self,) -> 'None': - """ - Commits a transaction. - -Args: - - - -Returns: - - None - - """ - pass - - - def rollback(self,) -> 'None': - """ - Rollsback a transaction. - -Args: - - - -Returns: - - None - - """ - pass - - - def cursor(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def close(self,) -> 'None': - """ - Closes the connection. - -Args: - - - -Returns: - - None - - """ - pass - - -class cursor(object): - """An object representing an ODBC cursor.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def close(self,) -> 'None': - """ - Closes the cursor - -Args: - - - -Returns: - - None - - """ - pass - - - def execute(self,sql:'str',arg:'Any') -> 'Any': - """ - Execute some SQL - -Args: - - sql(str):The SQL to execute - arg(Any):Input variables. - -Returns: - - Any - - """ - pass - - - def fetchone(self,) -> 'Any': - """ - Fetch one row of data - -Args: - - - -Returns: - - Any - - """ - pass - - - def fetchmany(self,) -> 'List[Any]': - """ - Fetch many rows of data - -Args: - - - -Returns: - - List[Any] - - """ - pass - - - def fetchall(self,) -> 'List[Any]': - """ - Fetch all rows of data - -Args: - - - -Returns: - - List[Any] - - """ - pass - - - def setinputsizes(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def setoutputsize(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class error(object): - """An exception raised when a win32 error occurs""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class COMPONENT(object): - """A dictionary containing data to fill a COMPPOS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ID(self)->'Any': - """Id of component, ignored when adding a new component""" - pass - - - @property - def ComponentType(self)->'Any': - """One of shellcon.COMP_TYPE_* values""" - pass - - - @property - def Checked(self)->'Any': - """True indicates item is currently displayed""" - pass - - - @property - def fDirty(self)->'Any': - """Indicates if unsaved changes exist""" - pass - - - @property - def NoScroll(self)->'Any': - """True disables scrolling""" - pass - - - @property - def Pos(self)->'Any': - """COMPPOS dictionary determining window size and placement""" - pass - - - @property - def FriendlyName(self)->'Any': - """String of at most MAX_PATH-1 characters, truncated if longer""" - pass - - - @property - def Source(self)->'Any': - """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" - pass - - - @property - def SubscribedURL(self)->'Any': - """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" - pass - - - @property - def CurItemState(self)->'Any': - """One of shellcon.IS_* flags""" - pass - - - @property - def Original(self)->'Any': - """COMPSTATEINFO dictionary""" - pass - - - @property - def Restored(self)->'Any': - """COMPSTATEINFO dictionary""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class COMPONENTSOPT(object): - """A dictionary containing data to fill a COMPONENTSOPT struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def EnableComponents(self)->'Any': - """True if components are enabled""" - pass - - - @property - def ActiveDesktop(self)->'Any': - """True if Active Desktop is enabled""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class COMPPOS(object): - """A dictionary containing data to fill a COMPPOS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Left(self)->'Any': - """""" - pass - - - @property - def Top(self)->'Any': - """""" - pass - - - @property - def Width(self)->'Any': - """""" - pass - - - @property - def Height(self)->'Any': - """""" - pass - - - @property - def Index(self)->'Any': - """""" - pass - - - @property - def CanResize(self)->'Any': - """""" - pass - - - @property - def CanResizeX(self)->'Any': - """""" - pass - - - @property - def CanResizeY(self)->'Any': - """""" - pass - - - @property - def PreferredLeftPercent(self)->'Any': - """""" - pass - - - @property - def PreferredTopPercent(self)->'Any': - """""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class COMPSTATEINFO(object): - """A dictionary containing data to fill a COMPSTATEINFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Left(self)->'Any': - """Specified as screen coordinates""" - pass - - - @property - def Top(self)->'Any': - """Specified as screen coordinates""" - pass - - - @property - def Width(self)->'Any': - """Measured in pixels""" - pass - - - @property - def Height(self)->'Any': - """Measured in pixels""" - pass - - - @property - def dwItemState(self)->'Any': - """One of IS_NORMAL, IS_FULLSCREEN IS_SPLIT""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class DEFCONTENTMENU(object): - """A tuple representing a DEFCONTEXTMENU structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class ELEMDESC(object): - """An ELEMDESC is respresented as a tuple of""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class EXP_DARWIN_LINK(object): - """Dictionary containing information for a EXP_DARWIN_LINK struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def DarwinID(self)->'Any': - """The Windows Installer id for the link""" - pass - - - @property - def wDarwinID(self)->'Any': - """The installer id as Unicode""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class EXP_SPECIAL_FOLDER(object): - """Dictionary containing information for a EXP_SPECIAL_FOLDER struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def idSpecialFolder(self)->'Any': - """The special folder id of the target (shellcon.CSIDL_*)""" - pass - - - @property - def Offset(self)->'Any': - """Offset into the link's PIDL""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class EXP_SZ_LINK(object): - """Dictionary containing information for an EXP_SZ_LINK or EXP_SZ_ICON struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def Target(self)->'Any': - """The link's target or icon location""" - pass - - - @property - def wTarget(self)->'Any': - """The target in Unicode form""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class FUNCDESC(object): - """A FUNCDESC object represents a COM TYPEATTR structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def memid(self)->'int': - """""" - pass - - - @property - def scodeArray(self)->'Tuple[Any, ...]': - """""" - pass - - - @property - def args(self)->'Tuple[Any, ...]': - """""" - pass - - - @property - def funckind(self)->'Any': - """""" - pass - - - @property - def invkind(self)->'Any': - """""" - pass - - - @property - def callconv(self)->'Any': - """""" - pass - - - @property - def cParamsOpt(self)->'Any': - """""" - pass - - - @property - def oVft(self)->'Any': - """""" - pass - - - @property - def rettype(self)->'Any': - """""" - pass - - - @property - def wFuncFlags(self)->'Any': - """""" - pass - - -class IDLDESC(object): - """An IDLDESC is respresented as""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class MAPIINIT_0(object): - """A MAPIINIT_0 is represented as a tuple of:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class NT_CONSOLE_PROPS(object): - """Dictionary containing information for a NT_CONSOLE_PROPS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def FillAttribute(self)->'Any': - """Character attributes for fill operations""" - pass - - - @property - def PopupFillAttribute(self)->'Any': - """Fill attributes for popups""" - pass - - - @property - def ScreenBufferSize(self)->'Tuple[Any, Any]': - """Size of console screen buffer, in character cells""" - pass - - - @property - def WindowSize(self)->'Tuple[Any, Any]': - """Size of console window in character cells""" - pass - - - @property - def WindowOrigin(self)->'Tuple[Any, Any]': - """Window position, in screen coordinates""" - pass - - - @property - def nFont(self)->'Any': - """Number of font to be displayed. See win32console::GetNumberOfConsoleFonts""" - pass - - - @property - def InputBufferSize(self)->'Any': - """Size of console's input buffer""" - pass - - - @property - def FontSize(self)->'Tuple[Any, Any]': - """Size of font""" - pass - - - @property - def FontFamily(self)->'Any': - """Font family""" - pass - - - @property - def FontWeight(self)->'Any': - """Controls thickness of displayed font""" - pass - - - @property - def FaceName(self)->'Any': - """Name of font face, 31 characters at most""" - pass - - - @property - def CursorSize(self)->'Any': - """Relative size of cursor, expressed as percent of character size""" - pass - - - @property - def FullScreen(self)->'Any': - """Causes console to run in full screen mode""" - pass - - - @property - def QuickEdit(self)->'Any': - """""" - pass - - - @property - def InsertMode(self)->'Any': - """""" - pass - - - @property - def AutoPosition(self)->'Any': - """Lets system determine window placement""" - pass - - - @property - def HistoryBufferSize(self)->'Any': - """Size of command line history buffer""" - pass - - - @property - def NumberOfHistoryBuffers(self)->'Any': - """""" - pass - - - @property - def HistoryNoDup(self)->'Any': - """""" - pass - - - @property - def ColorTable(self)->'Any': - """Tuple of 16 ints containing console's color attributes""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class NT_FE_CONSOLE_PROPS(object): - """Dictionary containing information for a NT_FE_CONSOLE_PROPS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def CodePage(self)->'Any': - """The codepage to be used for console text""" - pass - - - @property - def Size(self)->'Any': - """Size of structure, ignored on input""" - pass - - -class PROPSPEC(object): - """Identifies a property. Can be either an int property id, or a str/unicode property name.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyADSVALUE(object): - """A tuple:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyADS_ATTR_INFO(object): - """Represents a ADS_ATTR_INFO structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def AttrName(self)->'Any': - """The name""" - pass - - - @property - def ControlCode(self)->'int': - """""" - pass - - - @property - def ADsType(self)->'int': - """""" - pass - - - @property - def Values(self)->'List[Any]': - """""" - pass - - -class PyADS_OBJECT_INFO(object): - """Represents a ADS_OBJECT_INFO structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def RDN(self)->'Any': - """The name""" - pass - - - @property - def ObjectDN(self)->'Any': - """""" - pass - - - @property - def ParentDN(self)->'Any': - """""" - pass - - - @property - def ClassName(self)->'Any': - """""" - pass - - -class PyADS_SEARCHPREF_INFO(object): - """A tuple of:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyBIND_OPTS(object): - """Dictionary representation of a BIND_OPTS struct - -May eventually be extended to include BIND_OPTS2 members""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Flags(self)->'Any': - """Value from BIND_FLAGS enum: BIND_MAYBOTHERUSER, BIND_JUSTTESTEXISTENCE or 0""" - pass - - - @property - def Mode(self)->'Any': - """Combination of storagecon.STGM_* values""" - pass - - - @property - def TickCountDeadline(self)->'Any': - """Operation timeout in milliseconds""" - pass - - - @property - def cbStruct(self)->'Any': - """Size of struct, ignored on input""" - pass - - -class PyCMINVOKECOMMANDINFO(object): - """A tuple of parameters to be converted to a CMINVOKECOMMANDINFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDSBCAPS(object): - """A Python object, representing a DSBCAPS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Flags that specify buffer-object capabilities.FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" - pass - - - @property - def nChannels(self)->'int': - """Size of the buffer, in bytes.""" - pass - - - @property - def dwUnlockTransferRate(self)->'int': - """Specifies the rate, in kilobytes per second, at which data is transferred to the buffer memory when IDirectSoundBuffer::Unlock is called. High-performance applications can use this value to determine the time required for IDirectSoundBuffer::Unlock to execute. For software buffers located in system memory, the rate will be very high because no processing is required. For hardware buffers, the rate might be slower because the buffer might have to be downloaded to the sound card, which might have a limited transfer rate.""" - pass - - - @property - def nAvgBytesPerSec(self)->'int': - """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle. Sentinel""" - pass - - -class PyDSBUFFERDESC(object): - """A Python object, representing a DSBUFFERDESC structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Specify one or more of the following:FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" - pass - - - @property - def dwBufferBytes(self)->'int': - """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" - pass - - - @property - def lpwfxFormat(self)->'Any': - """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" - pass - - -class PyDSCAPS(object): - """A Python object, representing a DSCAPS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Specifies device capabilities. Can be one or more of the following:FlagDescriptionDSCAPS_PRIMARYMONOThe device supports monophonic primary buffers.DSCAPS_PRIMARYSTEREOThe device supports stereo primary buffers.DSCAPS_PRIMARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_PRIMARY16BITThe device supports primary sound buffers with 16-bit samples.DSCAPS_CONTINUOUSRATEThe device supports all sample rates between the dwMinSecondarySampleRate and dwMaxSecondarySampleRate member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency.DSCAPS_EMULDRIVERThe device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected.DSCAPS_CERTIFIEDThis driver has been tested and certified by Microsoft.DSCAPS_SECONDARYMONOThe device supports hardware-mixed monophonic secondary buffers.DSCAPS_SECONDARYSTEREOThe device supports hardware-mixed stereo secondary buffers.DSCAPS_SECONDARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_SECONDARY16BITThe device supports hardware-mixed secondary sound buffers with 16-bit samples.""" - pass - - - @property - def dwMinSecondarySampleRate(self)->'int': - """Minimum sample rate supported by this device's hardware secondary sound buffers.""" - pass - - - @property - def dwMaxSecondarySampleRate(self)->'int': - """Maximum sample rate supported by this device's hardware secondary sound buffers.""" - pass - - - @property - def dwPrimaryBuffers(self)->'int': - """Number of primary buffers supported. This value will always be 1.""" - pass - - - @property - def dwMaxHwMixingAllBuffers(self)->'int': - """Specifies the total number of buffers that can be mixed in hardware. This member can be less than the sum of dwMaxHwMixingStaticBuffers and dwMaxHwMixingStreamingBuffers. Resource tradeoffs frequently occur.""" - pass - - - @property - def dwMaxHwMixingStaticBuffers(self)->'int': - """Specifies the maximum number of static sound buffers.""" - pass - - - @property - def dwMaxHwMixingStreamingBuffers(self)->'int': - """Specifies the maximum number of streaming sound buffers.""" - pass - - - @property - def dwFreeHwMixingAllBuffers(self)->'int': - """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" - pass - - - @property - def dwFreeHwMixingStaticBuffers(self)->'int': - """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" - pass - - - @property - def dwFreeHwMixingStreamingBuffers(self)->'int': - """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" - pass - - - @property - def dwMaxHw3DAllBuffers(self)->'int': - """Description of the hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwMaxHw3DStaticBuffers(self)->'int': - """Description of the hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwMaxHw3DStreamingBuffers(self)->'int': - """Description of the hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwFreeHw3DAllBuffers(self)->'int': - """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwFreeHw3DStaticBuffers(self)->'int': - """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwFreeHw3DStreamingBuffers(self)->'int': - """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwTotalHwMemBytes(self)->'int': - """Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.""" - pass - - - @property - def dwFreeHwMemBytes(self)->'int': - """Size, in bytes, of the free memory on the sound card.""" - pass - - - @property - def dwMaxContigFreeHwMemBytes(self)->'int': - """Size, in bytes, of the largest contiguous block of free memory on the sound card.""" - pass - - - @property - def dwUnlockTransferRateHwBuffers(self)->'int': - """Description of the rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the IDirectSoundBuffer::Update method.""" - pass - - - @property - def dwPlayCpuOverheadSwBuffers(self)->'int': - """Description of the processing overhead, as a percentage of the central processing unit, needed to mix software buffers (those located in main system memory). This varies according to the bus type, the processor type, and the clock speed. The unlock transfer rate for software buffers is 0 because the data need not be transferred anywhere. Similarly, the play processing overhead for hardware buffers is 0 because the mixing is done by the sound device.""" - pass - - -class PyDSCBCAPS(object): - """A Python object, representing a DSCBCAPS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Specifies device capabilities. Can be 0 or DSCBCAPS_EMULDRIVER (indicates that no DirectSound Device is available and standard wave audio functions are being used).""" - pass - - - @property - def dwBufferBytes(self)->'int': - """The size, in bytes, of the capture buffer.""" - pass - - -class PyDSCBUFFERDESC(object): - """A Python object, representing a DSCBUFFERDESC structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Can be zero or the following flag:FlagDescriptionDSCBCAPS_WAVEMAPPEDThe Win32 wave mapper will be used for formats not supported by the device.""" - pass - - - @property - def dwBufferBytes(self)->'int': - """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" - pass - - - @property - def lpwfxFormat(self)->'Any': - """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" - pass - - -class PyDSCCAPS(object): - """A Python object, representing a DSCCAPS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Specifies device capabilities. Can be zero or the following flag:FlagDescriptionDSCCAPS_EMULDRIVERIndicates that no DirectSound Device is available and standard wave audio functions are being used.""" - pass - - - @property - def dwFormats(self)->'int': - """Bitset of supported WAVE_FORMAT formats.""" - pass - - - @property - def dwChannels(self)->'int': - """Number of channels supported by the device.""" - pass - - -class PyDSOP_FILTER_FLAGS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def uplevel(self)->'Any': - """""" - pass - - - @property - def downlevel(self)->'Any': - """""" - pass - - -class PyDSOP_SCOPE_INIT_INFO(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def type(self)->'Any': - """""" - pass - - - @property - def scope(self)->'Any': - """""" - pass - - - @property - def hr(self)->'Any': - """""" - pass - - - @property - def dcName(self)->'str': - """""" - pass - - - @property - def filterFlags(self)->'Any': - """""" - pass - - -class PyDSOP_SCOPE_INIT_INFOs(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDSOP_UPLEVEL_FILTER_FLAGS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def bothModes(self)->'Any': - """""" - pass - - - @property - def mixedModeOnly(self)->'Any': - """""" - pass - - - @property - def nativeModeOnly(self)->'Any': - """""" - pass - - -class PyFORMATETC(object): - """Tuple representing a FORMATETC struct describing an OLE data format""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyGFileOperationProgressSink(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def StartOperations(self,) -> 'None': - """ - Called as operation begins, before any modifications are done - -Args: - - - -Returns: - - None - - """ - pass - - - def FinishOperations(self,Result:'Any') -> 'None': - """ - Called after all actions have been performed - -Args: - - Result(Any):HRESULT of last operation performed - -Returns: - - None - - """ - pass - - - def PreRenameItem(self,Flags:'Any',Item:'Any',NewName:'Any') -> 'None': - """ - Called before each file rename - -Args: - - Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags - Item(Any):Shell interface of the copied item - NewName(Any):New display name of the item - -Returns: - - None - - """ - pass - - - def PostRenameItem(self,Flags:'Any',Item:'Any',NewName:'Any',hrRename:'Any',NewlyCreated:'Any') -> 'None': - """ - Called after each file rename - -Args: - - Flags(Any):Flags specifying rename behaviour, combination of shellcon.TSF_* flags - Item(Any):Shell interface of item before rename - NewName(Any):The new name of the item, may be mangled to resolve filename conflicts - hrRename(Any):HRESULT of the rename operation - NewlyCreated(Any):Shell interface of the item after rename - -Returns: - - None - - """ - pass - - - def PreMoveItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': - """ - Called before each move operation - -Args: - - Flags(Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags - Item(Any):The item to be moved - DestinationFolder(Any):The folder into which it will be moved - NewName(Any):Name of moved item, may be None if not to be changed - -Returns: - - None - - """ - pass - - - def PostMoveItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any',hrMove:'Any',NewlyCreated:'Any') -> 'None': - """ - Called after each move operation - -Args: - - Flags(Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags - Item(Any):Interface of the item before it was moved - DestinationFolder(Any):The folder into which it was moved - NewName(Any):Name of item in its new location, may be mangled in case of conflict - hrMove(Any):HRESULT of the move operation - NewlyCreated(Any):Shell interface of the item in its new location - -Returns: - - None - - """ - pass - - - def PreCopyItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': - """ - Called before each copy operation - -Args: - - Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags - Item(Any):The item to be copied - DestinationFolder(Any):Folder into which it will be copied - NewName(Any):Name to be given to the copy, will be None if keeping original name - -Returns: - - None - - """ - pass - - - def PostCopyItem(self,Flags:'Any',Item:'Any',DestinationFolder:'Any',NewName:'Any',hrCopy:'Any',NewlyCreated:'Any') -> 'None': - """ - Called after each copy operation - -Args: - - Flags(Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags - Item(Any):The original item - DestinationFolder(Any):Folder into which it was copied - NewName(Any):Name of item after copy, may be mangled in case of name conflict - hrCopy(Any):HRESULT of the copy operation - NewlyCreated(Any):Shell interface of the copy - -Returns: - - None - - """ - pass - - - def PreDeleteItem(self,Flags:'Any',Item:'Any') -> 'None': - """ - Called before each delete operation - -Args: - - Flags(Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags - Item(Any):Item to be deleted - -Returns: - - None - - """ - pass - - - def PostDeleteItem(self,Flags:'Any',Item:'Any',hrDelete:'Any',NewlyCreated:'Any') -> 'None': - """ - Called after each delete operation - -Args: - - Flags(Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags - Item(Any):Item that was deleted - hrDelete(Any):HRESULT of the delete operation - NewlyCreated(Any):Item in the recycle bin, or None if deleted without recycling - -Returns: - - None - - """ - pass - - - def PreNewItem(self,Flags:'Any',DestinationFolder:'Any',NewName:'Any') -> 'None': - """ - Called before each new file is created - -Args: - - Flags(Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags - DestinationFolder(Any):Folder where item will be created - NewName(Any):Name of item to be created - -Returns: - - None - - """ - pass - - - def PostNewItem(self,Flags:'Any',DestinationFolder:'Any',NewName:'Any',TemplateName:'Any',FileAttributes:'Any',hrNew:'Any',NewItem:'Any') -> 'None': - """ - Called after each new file is created - -Args: - - Flags(Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags - DestinationFolder(Any):Folder in which item was created - NewName(Any):Name of created item, may be mangled if file name conflicts occurred - TemplateName(Any):Template file used to initialize new item - FileAttributes(Any):File attributes of new item - hrNew(Any):HRESULT of the create operation - NewItem(Any):Shell interface of created item - -Returns: - - None - - """ - pass - - - def UpdateProgress(self,WorkTotal:'Any',WorkSoFar:'Any') -> 'None': - """ - Gives an estimate of total work completed - -Args: - - WorkTotal(Any):Undimensioned number representing total amount of work - WorkSoFar(Any):Undimensioned number representing amount already completed - -Returns: - - None - - """ - pass - - - def ResetTimer(self,) -> 'None': - """ - Not implemented, according to MSDN - -Args: - - - -Returns: - - None - - """ - pass - - - def PauseTimer(self,) -> 'None': - """ - Not implemented, according to MSDN - -Args: - - - -Returns: - - None - - """ - pass - - - def ResumeTimer(self,) -> 'None': - """ - Not implemented, according to MSDN - -Args: - - - -Returns: - - None - - """ - pass - - -class PyGSecurityInformation(object): - """Gateway wrapper for the implement-only ISecurityInformation interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetObjectInformation(self,) -> 'Any': - """ - Returns information identifying the object - -whose security is to be editted, and which pages are to appear in the property sheet - -Args: - - - -Returns: - - Any:PyGSecurityInformation.GetObjectInformation -SI_OBJECT_INFO = GetObjectInformation()Returns information identifying the object - -whose security is to be editted, and which pages are to appear in the property sheet -Comments - -Due to peculiarities of the underlying system calls, this method will only be called once, - -and subsequent calls will return the information obtained on the first call. As a consequence, a new - -instance of the interface will need to be created for each object whose security is to be displayed. -Return ValueYour implementation of this method should return a SI_OBJECT_INFO tuple - - - """ - pass - - - def GetSecurity(self,RequestedInformation:'Any',Default:'Any') -> 'PySECURITY_DESCRIPTOR': - """ - Retrieves the object's current security - -settings - -Args: - - RequestedInformation(Any):Combination of SECURITY_INFORMATION flags indicating which components of the object's security descriptor you should return - Default(Any):If true, return a default security descriptor rather than current security. (invoked when 'Reset' button is clicked) - -Returns: - - PySECURITY_DESCRIPTOR - - """ - pass - - - def SetSecurity(self,SecurityInformation:'Any',SecurityDescriptor:'PySECURITY_DESCRIPTOR') -> 'None': - """ - Applies the modified security to the object - -Args: - - SecurityInformation(Any):SECURITY_INFORMATION flags specifying which types of security information are to be applied - SecurityDescriptor(PySECURITY_DESCRIPTOR):The security information to be applied to the objectReturn ValueAny returned value is ignored - -Returns: - - None:The security information to be applied to the objectReturn ValueAny returned value is ignored - - - """ - pass - - - def GetAccessRights(self,ObjectType:'PyIID',Flags:'Any') -> 'Tuple[Any, Any]': - """ - Retrieves permission that can be set - -Args: - - ObjectType(PyIID):GUID representing type of object, may be None - Flags(Any):Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, and a zero-based index indicating which of them is the default - -Returns: - - Tuple[Any, Any]:Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, - -SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, - -and a zero-based index indicating which of them is the default - - - """ - pass - - - def MapGeneric(self,ObjectType:'PyIID',AceFlags:'Any',Mask:'Any') -> 'Any': - """ - Translates generic access rights to specific equivalents - -Args: - - ObjectType(PyIID):Type of object that permissions apply to, None or GUID_NULL indicates object itself - AceFlags(Any):Flags from the ACE that contains the permissions - Mask(Any):Bitmask containing access rightsCommentsSee win32security::MapGenericMaskReturn ValueThis method should return the input bitmask will all generic rights mapped to specific rights - -Returns: - - Any:Bitmask containing access rightsComments - -See win32security::MapGenericMask -Return ValueThis method should return the input bitmask will all generic rights mapped to specific rights - - - """ - pass - - - def GetInheritTypes(self,) -> 'Tuple[Any, ...]': - """ - Requests types of inheritance that your - -implementation supports - -Args: - - - -Returns: - - Tuple[Any, ...]:PyGSecurityInformation.GetInheritTypes - -(SI_INHERIT_TYPE,...) = GetInheritTypes()Requests types of inheritance that your - -implementation supports -Return ValueReturns a sequence of SI_INHERIT_TYPE tuples - - - """ - pass - - - def PropertySheetPageCallback(self,hwnd:'Any',Msg:'Any',Page:'Any') -> 'None': - """ - Called by each page as it is created and destroyed - -Args: - - hwnd(Any):Handle to the window for the page - Msg(Any):Flag indicating type of event, one of PSPCB_CREATE,PSPCB_RELEASE,PSPCB_SI_INITDIALOG - Page(Any):SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored - -Returns: - - None:SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored - - - """ - pass - - -class PyIADesktopP2(object): - """An interface to the ActiveDesktop""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def UpdateAllDesktopSubscriptions(self,) -> 'None': - """ - Updates webpage subscriptions on the desktop - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIADs(object): - """An object representing the IADs interface. - -In most cases you can achieve the same result via IDispatch - however, this - -interface allows you get get and set properties without the IDispatch - -overhead.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ADsPath(self)->'str': - """""" - pass - - - @property - def AdsPath(self)->'str': - """Synonym for ADsPath""" - pass - - - @property - def Class(self)->'str': - """""" - pass - - - @property - def GUID(self)->'str': - """Like the IADs method, this returns a string rather than a GUID object.""" - pass - - - @property - def Name(self)->'str': - """""" - pass - - - @property - def Parent(self)->'str': - """""" - pass - - - @property - def Schema(self)->'str': - """""" - pass - - - def GetInfo(self,) -> 'None': - """ - Description of GetInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetInfo(self,) -> 'None': - """ - Description of SetInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def Get(self,prop:'str') -> 'Any': - """ - Description of Get. - -Args: - - prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. - -Returns: - - Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It - -may be an array, or any types supported by COM variant. - - - """ - pass - - - def Put(self,_property:'str',val:'Any') -> 'None': - """ - Description of Put. - -Args: - - _property(str):The property name to set - val(Any):The value to set. - -Returns: - - None - - """ - pass - - - def get(self,prop:'str') -> 'Any': - """ - Description of Get. - -Args: - - prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. - -Returns: - - Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It - -may be an array, or any types supported by COM variant. - - - """ - pass - - - def put(self,_property:'str',val:'Any') -> 'None': - """ - Description of Put. - -Args: - - _property(str):The property name to set - val(Any):The value to set. - -Returns: - - None - - """ - pass - - -class PyIADsContainer(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetObject(self,_class:'str',relativeName:'str') -> 'Any': - """ - None - -Args: - - _class(str):Specifies the name of the object class as known in the underlying directory and identical to the one retrieved through the get_Class property method. If the class name is None, the provider returns the first item found in the container. - relativeName(str):Specifies the name of the object as known in the underlying directory and identical to the one retrieved through the get_Name property method. - -Returns: - - Any - - """ - pass - - - def get_Count(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def get_Filter(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_Filter(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_Hints(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_Hints(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - -class PyIADsUser(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def get_AccountDisabled(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_AccountDisabled(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_AccountExpirationDate(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_AccountExpirationDate(self,val:'PyTime') -> 'None': - """ - None - -Args: - - val(PyTime): - -Returns: - - None - - """ - pass - - - def get_BadLoginAddress(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def get_BadLoginCount(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def get_Department(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_Department(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_Description(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_Description(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_Division(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_Division(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_EmailAddress(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_EmailAddress(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_EmployeeID(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_EmployeeID(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_FirstName(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_FirstName(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_FullName(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_FullName(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_HomeDirectory(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_HomeDirectory(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_HomePage(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_HomePage(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def get_LoginScript(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def put_LoginScript(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def SetPassword(self,val:'Any') -> 'None': - """ - None - -Args: - - val(Any): - -Returns: - - None - - """ - pass - - - def ChangePassword(self,oldval:'Any',newval:'Any') -> 'None': - """ - None - -Args: - - oldval(Any): - newval(Any): - -Returns: - - None - - """ - pass - - -class PyIActiveDesktop(object): - """An interface to the ActiveDesktop""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ApplyChanges(self,Flags:'Any') -> 'None': - """ - Applies changes to ActiveDesktop settings and persists them to the registry. - -Args: - - Flags(Any):Combination of shellcon.AD_APPLY_* flags - -Returns: - - None - - """ - pass - - - def GetWallpaper(self,cchWallpaper:'Any',Reserved:'Any'=0) -> 'Any': - """ - Returns the current wallpaper - -Args: - - cchWallpaper(Any):Number of characters to allocate for buffer - Reserved(Any):Use 0 if passed in - -Returns: - - Any - - """ - pass - - - def SetWallpaper(self,Wallpaper:'Any',Reserved:'Any'=0) -> 'None': - """ - Sets the desktop wallpaper - -Args: - - Wallpaper(Any):File to be used as new wallpaper - Reserved(Any):Reserved, use 0 if passed in - -Returns: - - None - - """ - pass - - - def GetWallpaperOptions(self,Reserved:'Any'=0) -> 'Any': - """ - Returns wallpaper style - -Args: - - Reserved(Any):Use 0 if passed inReturn ValueReturns one of the WPSTYLE_* values - -Returns: - - Any:Use 0 if passed in -Return ValueReturns one of the WPSTYLE_* values - - - """ - pass - - - def SetWallpaperOptions(self,Style:'Any',Reserved:'Any'=0) -> 'None': - """ - Sets wallpaper style - -Args: - - Style(Any):The wallpaper style, one of the WPSTYLE_* constants - Reserved(Any):Reserved, use 0 if passed in - -Returns: - - None - - """ - pass - - - def GetPattern(self,cchPattern:'Any'=1024,Reserved:'Any'=0) -> 'None': - """ - Returns the wallpaper pattern - -Args: - - cchPattern(Any):Number of characters to allocate for buffer - Reserved(Any):Use 0 if passed inReturn ValueReturns a unicode string containing decimal values representing the pattern - -Returns: - - None:Use 0 if passed in -Return ValueReturns a unicode string containing decimal values representing the pattern - - - """ - pass - - - def SetPattern(self,Pattern:'Any',Reserved:'Any'=0) -> 'None': - """ - Sets the wallpaper pattern - -Args: - - Pattern(Any):String of decimal numbers representing a picture - Reserved(Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def GetDesktopItemOptions(self,) -> 'Any': - """ - Returns options for Active Desktop. - -Args: - - - -Returns: - - Any:PyIActiveDesktop.GetDesktopItemOptions - -dict = GetDesktopItemOptions()Returns options for Active Desktop. -Return ValueReturns a COMPONENTSOPT dictionary - - - """ - pass - - - def SetDesktopItemOptions(self,comp:'Any',Reserved:'Any'=0) -> 'None': - """ - Sets Active Desktop options - -Args: - - comp(Any):COMPONENTSOPT dictionary - Reserved(Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def AddDesktopItem(self,comp:'Any',Reserved:'Any'=0) -> 'None': - """ - Creates a new item to display on the desktop - -Args: - - comp(Any):COMPONENT dictionary - Reserved(Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def AddDesktopItemWithUI(self,hwnd:'int',comp:'Any',Flags:'Any') -> 'None': - """ - Adds a desktop item, allowing user interaction - -Args: - - hwnd(int):Handle to parent window - comp(Any):COMPONENT dictionary - Flags(Any):One of shellcon.DTI_ADDUI_* flags - -Returns: - - None - - """ - pass - - - def ModifyDesktopItem(self,comp:'Any',Flags:'Any') -> 'None': - """ - Changes parameters for a desktop item - -Args: - - comp(Any):COMPONENT dictionary - Flags(Any):Combination of shellcon.COMP_ELEM_* flags - -Returns: - - None - - """ - pass - - - def RemoveDesktopItem(self,comp:'Any',Reserved:'Any'=0) -> 'None': - """ - Removes an item from the Active Desktop - -Args: - - comp(Any):COMPONENT dictionary specifying which component to remove - Reserved(Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def GetDesktopItemCount(self,) -> 'None': - """ - Returns number of defined desktop items. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDesktopItem(self,Component:'Any',Reserved:'Any'=0) -> 'Any': - """ - Returns desktop item parameters by index - -Args: - - Component(Any):The zero-based index of the component to get - Reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary describing the item - -Returns: - - Any:Use 0 if passed in -Return ValueReturns a COMPONENT dictionary describing the item - - - """ - pass - - - def GetDesktopItemByID(self,ID:'Any',reserved:'Any'=0) -> 'Any': - """ - Returns desktop item parameters by Id - -Args: - - ID(Any):The Id of the desktop item - reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary - -Returns: - - Any:Use 0 if passed in -Return ValueReturns a COMPONENT dictionary - - - """ - pass - - - def GenerateDesktopItemHtml(self,FileName:'Any',comp:'Any',Reserved:'Any'=0) -> 'None': - """ - Creates an HTML page for the desktop item - -Args: - - FileName(Any):Name of file to be created - comp(Any):COMPONENT dictionary specifying the desktop item - Reserved(Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def AddUrl(self,hwnd:'int',Source:'Any',comp:'Any',Flags:'Any') -> 'None': - """ - Adds a web page to desktop, allowing user interaction - -Args: - - hwnd(int):Parent windows for any user interactive - Source(Any):Source URL - comp(Any):COMPONENT dictionary - Flags(Any):ADDURL_SILENT, or 0 - -Returns: - - None - - """ - pass - - - def GetDesktopItemBySource(self,Source:'Any',Reserved:'Any'=0) -> 'Any': - """ - Returns desktop item parameters by URL - -Args: - - Source(Any):The URL address of the item to retrieve - Reserved(Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary - -Returns: - - Any:Use 0 if passed in -Return ValueReturns a COMPONENT dictionary - - - """ - pass - - -class PyIActiveDesktopP(object): - """An interface to the ActiveDesktop""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetSafeMode(self,Flags:'Any') -> 'None': - """ - Changes Active Desktop to safe mode - -Args: - - Flags(Any):One of shellcon.SSM_* flags - -Returns: - - None - - """ - pass - - -class PyIActiveScriptDebug(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetScriptTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'Any') -> 'Tuple[Any, ...]': - """ - Returns the text attributes for an arbitrary block - -of script text. - -Args: - - pstrCode(str):The script block text. - pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. - dwFlags(Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument.CommentsSmart hosts use this call to delegate GetText calls made on their axscript::PyIDebugDocumentText - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def GetScriptletTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'Any') -> 'None': - """ - Description of GetScriptletTextAttributes. - -Args: - - pstrCode(str):The script block text. - pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. - dwFlags(Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument. - -Returns: - - None - - """ - pass - - - def EnumCodeContextsOfPosition(self,dwSourceContext:'Any',uCharacterOffset:'Any',uNumChars:'Any') -> 'None': - """ - Description of EnumCodeContextsOfPosition. - -Args: - - dwSourceContext(Any):Description for dwSourceContext - uCharacterOffset(Any):Description for uCharacterOffset - uNumChars(Any):Description for uNumChars - -Returns: - - None - - """ - pass - - -class PyIActiveScriptError(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetExceptionInfo(self,) -> 'None': - """ - Description of GetExceptionInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSourcePosition(self,) -> 'None': - """ - Description of GetSourcePosition. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSourceLineText(self,) -> 'None': - """ - Description of GetSourceLineText. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIActiveScriptErrorDebug(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentContext(self,) -> 'None': - """ - Description of GetDocumentContext. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetStackFrame(self,) -> 'None': - """ - Description of GetStackFrame. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIActiveScriptParseProcedure(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ParseProcedureText(self,pstrCode:'Any',pstrFormalParams:'Any',pstrProcedureName:'Any',pstrItemName:'Any',punkContext:'Any',pstrDelimiter:'Any',dwSourceContextCookie:'Any',ulStartingLineNumber:'Any',dwFlags:'Any') -> 'None': - """ - Description of ParseProcedureText. - -Args: - - pstrCode(Any):Description for pstrCode - pstrFormalParams(Any):Description for pstrFormalParams - pstrProcedureName(Any):Description for pstrProcedureName - pstrItemName(Any):Description for pstrItemName - punkContext(Any):Description for punkContext - pstrDelimiter(Any):Description for pstrDelimiter - dwSourceContextCookie(Any):Description for dwSourceContextCookie - ulStartingLineNumber(Any):Description for ulStartingLineNumber - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - -class PyIActiveScriptSite(object): - """An object providing the IActiveScriptSite interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLCID(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetItemInfo(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDocVersionString(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnStateChange(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnEnterScript(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnLeaveScript(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnScriptError(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnScriptTerminate(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIActiveScriptSiteDebug(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentContextFromPosition(self,dwSourceContext:'Any',uCharacterOffset:'Any',uNumChars:'Any') -> 'None': - """ - Description of GetDocumentContextFromPosition. - -Args: - - dwSourceContext(Any):Description for dwSourceContext - uCharacterOffset(Any):Description for uCharacterOffset - uNumChars(Any):Description for uNumChars - -Returns: - - None - - """ - pass - - - def GetApplication(self,) -> 'None': - """ - Description of GetApplication. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetRootApplicationNode(self,) -> 'None': - """ - Description of GetRootApplicationNode. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnScriptErrorDebug(self,) -> 'Tuple[Any, Any]': - """ - Allows a smart host to control the handling of runtime - -errors - -Args: - - - -Returns: - - Tuple[Any, Any]:PyIActiveScriptSiteDebug.OnScriptErrorDebug - -int, int = OnScriptErrorDebug()Allows a smart host to control the handling of runtime - -errors -Return ValueThe result is a tuple of (bCallDebugger, bCallOnScriptErrorWhenContinuing) - - - """ - pass - - -class PyIAddrBook(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ResolveName(self,uiParm:'Any',flags:'Any',entryTitle:'str',ADRLIST:'Any') -> 'None': - """ - Performs name resolution, assigning entry identifiers to recipients in a recipient list. - -Args: - - uiParm(Any):hwnd of a dialogs parent. - flags(Any):Bitmask of flags that controls whether a dialog box can be displayed. - entryTitle(str): - ADRLIST(Any):Partial addresses to resolve. - -Returns: - - None - - """ - pass - - - def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': - """ - Opens a folder or message and returns an interface object for further access. - -Args: - - entryId(str):The entryID of the object - iid(PyIID):The IID of the object to return, or None for the default IID - flags(Any):Bitmask of flags that controls how the object is opened. - -Returns: - - Any - - """ - pass - - - def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': - """ - Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object - -Args: - - entryId(str):The first entry ID to be compared - entryId1(str):The second entry ID to be compared - flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - -Returns: - - Any:Reserved - must be zero. -Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - - - """ - pass - - -class PyIApplicationDebugger(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryAlive(self,) -> 'None': - """ - Returns true if alive, else false. - -Args: - - - -Returns: - - None - - """ - pass - - - def CreateInstanceAtDebugger(self,rclsid:'PyIID',pUnkOuter:'Any',dwClsContext:'Any',riid:'PyIID') -> 'None': - """ - Create objects in the application process address space. - -Args: - - rclsid(PyIID):Description for rclsid - pUnkOuter(Any):Description for pUnkOuter - dwClsContext(Any):Description for dwClsContext - riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. - -Returns: - - None - - """ - pass - - - def onDebugOutput(self,pstr:'Any') -> 'None': - """ - None - -Args: - - pstr(Any):Description for pstrCommentsThe debugger can use this to display the string in an output window. - -Returns: - - None - - """ - pass - - - def onHandleBreakPoint(self,prpt:'Any',br:'Any',pError:'Any') -> 'None': - """ - Called when a breakpoint is hit. - -Args: - - prpt(Any):Description for prpt - br(Any):Description for br - pError(Any):Description for pErrorCommentsThe application will remain suspended until the debugger IDE calls PyIDebugApplication::ResumeFromBreakPoint. - -Returns: - - None - - """ - pass - - - def onClose(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def onDebuggerEvent(self,guid:'PyIID',uUnknown:'Any') -> 'None': - """ - Description of onDebuggerEvent. - -Args: - - guid(PyIID): - uUnknown(Any):CommentsThe semantics of guid and unknown are entirely application/debugger defined This method may return E_NOTIMPL. - -Returns: - - None - - """ - pass - - -class PyIApplicationDestinations(object): - """Allows an application to removed items from its jump lists""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetAppID(self,AppID:'Any') -> 'None': - """ - Specifies the application whose jump list is to be accessed - -Args: - - AppID(Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier - -Returns: - - None - - """ - pass - - - def RemoveDestination(self,punk:'Any') -> 'None': - """ - Removes a single entry from the jump lists - -Args: - - punk(Any):IShellItem or IShellLink representing an item in the application's jump listCommentsDoes not remove pinned items - -Returns: - - None - - """ - pass - - - def RemoveAllDestinations(self,) -> 'None': - """ - Removes all Recent and Frequent jump list entries - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIApplicationDocumentLists(object): - """Interface used to retrieve the jump lists for an application""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetAppID(self,AppID:'Any') -> 'None': - """ - Specifies the application whose jump list is to be accessed - -Args: - - AppID(Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier - -Returns: - - None - - """ - pass - - - def GetList(self,ListType:'Any',riid:'PyIID',ItemsDesired:'Any'=0) -> 'Any': - """ - Retrieves a list of items in a jump list - -Args: - - ListType(Any):Type of document list to return, shellcon.ADLT_RECENT or ADLT_FREQUENT - riid(PyIID):The interface to return, IID_IEnumObjects or IID_IObjectArray - ItemsDesired(Any):Number of items to return, use 0 for all available - -Returns: - - Any - - """ - pass - - -class PyIAsyncOperation(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetAsyncMode(self,fDoOpAsync:'Any') -> 'None': - """ - Description of SetAsyncMode. - -Args: - - fDoOpAsync(Any):Description for fDoOpAsync - -Returns: - - None - - """ - pass - - - def GetAsyncMode(self,) -> 'Any': - """ - Description of GetAsyncMode. - -Args: - - - -Returns: - - Any - - """ - pass - - - def StartOperation(self,pbcReserved:'Any') -> 'None': - """ - Description of StartOperation. - -Args: - - pbcReserved(Any):Description for pbcReserved - -Returns: - - None - - """ - pass - - - def InOperation(self,) -> 'None': - """ - Description of InOperation. - -Args: - - - -Returns: - - None - - """ - pass - - - def EndOperation(self,hResult:'Any',pbcReserved:'Any',dwEffects:'Any') -> 'None': - """ - Description of EndOperation. - -Args: - - hResult(Any):Description for hResult - pbcReserved(Any):Description for pbcReserved - dwEffects(Any):Description for dwEffects - -Returns: - - None - - """ - pass - - -class PyIAttach(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': - """ - Returns the last error code for the object. - -Args: - - hr(Any):Contains the error code generated in the previous method call. - flags(Any):Indicates for format for the output. - -Returns: - - Any - - """ - pass - - -class PyIBindCtx(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetRunningObjectTable(self,) -> 'Any': - """ - Retrieves an object interfacing to the Running - -Object Table. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetBindOptions(self,) -> 'Any': - """ - Retrieves the bind options for the bind context - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetBindOptions(self,bindopts:'Any') -> 'None': - """ - Sets the bind options for the context - -Args: - - bindopts(Any):PyBIND_OPTS dictionary containing the binding options - -Returns: - - None - - """ - pass - - - def RegisterObjectParam(self,Key:'str',punk:'Any') -> 'None': - """ - Adds an object to the context's keyed table of associated objects - -Args: - - Key(str):The string key for the object to be registered - punk(Any):COM object to be registered with the bind context - -Returns: - - None - - """ - pass - - - def RevokeObjectParam(self,Key:'str') -> 'None': - """ - Removes one of the bind context's registered objects - -Args: - - Key(str):The string key for the object to be removed - -Returns: - - None - - """ - pass - - - def GetObjectParam(self,Key:'str') -> 'Any': - """ - Returns one of the bind context's associated objects - -Args: - - Key(str):The string key for the object to be returned - -Returns: - - Any - - """ - pass - - - def EnumObjectParam(self,) -> 'Any': - """ - Creates an enumerator to list context's string keys - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIBrowserFrameOptions(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetFrameOptions(self,dwMask:'Any') -> 'None': - """ - Description of GetFrameOptions. - -Args: - - dwMask(Any):Description for dwMask - -Returns: - - None - - """ - pass - - -class PyICancelMethodCalls(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Cancel(self,Seconds:'Any') -> 'None': - """ - Cancels a pending call - -Args: - - Seconds(Any):Wait timeout in seconds - -Returns: - - None - - """ - pass - - - def TestCancel(self,) -> 'Any': - """ - Checks if a request has been made to cancel a call - -Args: - - - -Returns: - - Any:PyICancelMethodCalls.TestCancel - -int = TestCancel()Checks if a request has been made to cancel a call -Return ValueCan return RPC_S_CALLPENDING or RPC_E_CALL_CANCELED - - - """ - pass - - -class PyICatInformation(object): - """A Python interface to ICatInformation""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumCategories(self,lcid:'Any'=0) -> 'Any': - """ - Returns an enumerator for the component categories - -registered on the system. - -Args: - - lcid(Any):lcid - -Returns: - - Any - - """ - pass - - - def GetCategoryDesc(self,lcid:'Any'=0) -> 'str': - """ - Retrieves the localized description string for a specific category - -ID. - -Args: - - lcid(Any):lcidCommentsThe return type is a unicode object. - -Returns: - - str - - """ - pass - - - def EnumClassesOfCategories(self,listIIdImplemented:'List[PyIID]'=None,listIIdRequired:'Any'=None) -> 'Any': - """ - Returns an enumerator over the classes that - -implement one or more interfaces. - -Args: - - listIIdImplemented(List[PyIID]):A sequence of PyIID objects, or None. - listIIdRequired(Any):A sequence of PyIID objects, or None. - -Returns: - - Any - - """ - pass - - -class PyICatRegister(object): - """An interface to a COM ICatRegister interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def RegisterCategories(self,arg:'List[Any]') -> 'None': - """ - Registers one or more component categories. Each component category - -consists of a CATID and a list of locale-dependent description strings. - -Args: - - arg(List[Any]):A sequence of category descriptions. - -Returns: - - None - - """ - pass - - - def UnRegisterCategories(self,arg:'List[PyIID]') -> 'None': - """ - Unregister one or more previously registered categories. - -Args: - - arg(List[PyIID]):The list of category IDs to be unregistered. - -Returns: - - None - - """ - pass - - - def RegisterClassImplCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': - """ - Registers the class as implementing one or more component - -categories. - -Args: - - clsid(PyIID):Class ID of the relevent class - arg(List[PyIID]):A sequence of category IDs to be associated with the class. - -Returns: - - None - - """ - pass - - - def UnRegisterClassImplCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': - """ - Unregisters the class as implementing one or more component - -categories. - -Args: - - clsid(PyIID):Class ID of the relevent class - arg(List[PyIID]):A sequence of category IDs to be unregistered from the class. - -Returns: - - None - - """ - pass - - - def RegisterClassReqCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': - """ - Registers the class as requiring one or more component - -categories. - -Args: - - clsid(PyIID):Class ID of the relevent class - arg(List[PyIID]):A sequence of category IDs to be associated with the class. - -Returns: - - None - - """ - pass - - - def UnRegisterClassReqCategories(self,clsid:'PyIID',arg:'List[PyIID]') -> 'None': - """ - Unregisters the class as requiring one or more component - -categories. - -Args: - - clsid(PyIID):Class ID of the relevent class - arg(List[PyIID]):A sequence of category IDs to be unregistered for the class. - -Returns: - - None - - """ - pass - - -class PyICategoryProvider(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CanCategorizeOnSCID(self,pscid:'Any') -> 'None': - """ - Description of CanCategorizeOnSCID. - -Args: - - pscid(Any):Description for pscid - -Returns: - - None - - """ - pass - - - def GetDefaultCategory(self,) -> 'None': - """ - Description of GetDefaultCategory. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCategoryForSCID(self,pscid:'Any') -> 'None': - """ - Description of GetCategoryForSCID. - -Args: - - pscid(Any):Description for pscid - -Returns: - - None - - """ - pass - - - def EnumCategories(self,) -> 'None': - """ - Description of EnumCategories. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCategoryName(self,guid:'PyIID') -> 'None': - """ - Description of GetCategoryName. - -Args: - - guid(PyIID):Description for pguidCommentsThe buffer is always 1024 chars long - -Returns: - - None - - """ - pass - - - def CreateCategory(self,guid:'PyIID',riid:'PyIID') -> 'None': - """ - Description of CreateCategory. - -Args: - - guid(PyIID):Description for pguid - riid(PyIID):Description for riid - -Returns: - - None - - """ - pass - - -class PyIClassFactory(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateInstance(self,outerUnknown:'Any',iid:'PyIID') -> 'Any': - """ - Creates an uninitialized object. - -Args: - - outerUnknown(Any):Usually None, otherwise the outer unknown if the object is being created as part of an aggregate. - iid(PyIID):The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the type specified by iid. - -Returns: - - Any:The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the - -type specified by iid. - - - """ - pass - - - def LockServer(self,bInc:'Any') -> 'None': - """ - Called by the client of a class object to keep a server open in memory, - -allowing instances to be created more quickly. - -Args: - - bInc(Any):1 of the server should be locked, 0 if the server should be unlocked. - -Returns: - - None - - """ - pass - - -class PyIClientSecurity(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryBlanket(self,Proxy:'Any') -> 'Any': - """ - Retrieves the authentication settings for an interface - -Args: - - Proxy(Any):An interface created through a proxy - -Returns: - - Any - - """ - pass - - - def SetBlanket(self,Proxy:'Any',AuthnSvc:'Any',AuthzSvc:'Any',ServerPrincipalName:'str',AuthnLevel:'Any',ImpLevel:'Any',AuthInfo:'Any',Capabilities:'Any') -> 'None': - """ - Changes the authentication options used with an interface - -Args: - - Proxy(Any):The proxy interface for which to set security options - AuthnSvc(Any):Authentication service identifier, pythoncom.RPC_C_AUTHN_* (but not RPC_C_AUTHN_LEVEL_*) - AuthzSvc(Any):Authorization service identifier, pythoncom.RPC_C_AUTHZ_* - ServerPrincipalName(str):SPN that identifies the server, can be None - AuthnLevel(Any):Authentication level, pythoncom.RPC_C_AUTHN_LEVEL_* - ImpLevel(Any):Impersonation level, pythoncom.RPC_C_IMP_LEVEL_* - AuthInfo(Any):Not supported yet, use only None - Capabilities(Any):Combination of pythoncom.EOAC_* flags. Must be a subset of the capabilities of the specified authentication service. - -Returns: - - None - - """ - pass - - - def CopyProxy(self,Proxy:'Any') -> 'Any': - """ - Makes a private copy of a proxy interface - -Args: - - Proxy(Any):The remote interface to be copied - -Returns: - - Any - - """ - pass - - -class PyIColumnProvider(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,psci:'Any') -> 'None': - """ - Description of Initialize. - -Args: - - psci(Any):Description for psci - -Returns: - - None - - """ - pass - - - def GetColumnInfo(self,dwIndex:'Any') -> 'None': - """ - Description of GetColumnInfo. - -Args: - - dwIndex(Any):Description for dwIndex - -Returns: - - None - - """ - pass - - - def GetItemData(self,pscid:'Any',pscd:'Any') -> 'None': - """ - Description of GetItemData. - -Args: - - pscid(Any):Description for pscid - pscd(Any):Description for pscd - -Returns: - - None - - """ - pass - - -class PyIConnectionPoint(object): - """A Python wrapper of a COM IConnectionPoint interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetConnectionInterface(self,) -> 'PyIID': - """ - Retrieves the IID of the interface represented by the - -connection point. - -Args: - - - -Returns: - - PyIID - - """ - pass - - - def GetConnectionPointContainer(self,) -> 'Any': - """ - Gets the connection point - -container for the object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def Advise(self,unk:'Any') -> 'Any': - """ - Establishes a connection between the connection point object and the client's - -sink. - -Args: - - unk(Any):The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise - -Returns: - - Any:The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise - - - """ - pass - - - def Unadvise(self,cookie:'Any') -> 'None': - """ - Terminates an advisory connection previously established through - -IConnectionPoint::Advise. The dwCookie parameter identifies the connection to terminate. - -Args: - - cookie(Any):The connection token - -Returns: - - None - - """ - pass - - - def EnumConnections(self,) -> 'Any': - """ - Creates an enumerator to iterate through the - -connections for the connection point - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIConnectionPointContainer(object): - """A Python wrapper of a COM IConnectionPointContainer interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumConnectionPoints(self,) -> 'Any': - """ - Creates an enumerator object - -to iterate through all the connection points supported in the connectable object, one connection point per outgoing - -IID. - -Args: - - - -Returns: - - Any - - """ - pass - - - def FindConnectionPoint(self,iid:'PyIID') -> 'Any': - """ - Finds a connection point for the - -given IID - -Args: - - iid(PyIID):The IID of the requested connection. - -Returns: - - Any - - """ - pass - - -class PyIContext(object): - """Allows access to properties defined for the current context (Requires win2k or later)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetProperty(self,rpolicyId:'PyIID',flags:'Any',pUnk:'Any') -> 'None': - """ - Sets a property on the context - -Args: - - rpolicyId(PyIID):GUID identifying the property to be set - flags(Any):Reserved, use only 0 - pUnk(Any):The property value - -Returns: - - None - - """ - pass - - - def RemoveProperty(self,rPolicyId:'PyIID') -> 'None': - """ - Removes a property from the context - -Args: - - rPolicyId(PyIID):GUID that identifies a context property - -Returns: - - None - - """ - pass - - - def GetProperty(self,rGuid:'PyIID') -> 'Tuple[Any, Any]': - """ - Retrieves a context property - -Args: - - rGuid(PyIID):GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property - -Returns: - - Tuple[Any, Any]:GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property - - - """ - pass - - - def EnumContextProps(self,) -> 'Any': - """ - Returns an enumerator for the context properties - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIContextMenu(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryContextMenu(self,hmenu:'int',indexMenu:'Any',idCmdFirst:'Any',idCmdLast:'Any',uFlags:'Any') -> 'Any': - """ - Adds options to a context menu - -Args: - - hmenu(int):Handle to menu to which items should be added - indexMenu(Any):Zero-based index at which to add first item - idCmdFirst(Any):Minimum menu item Id - idCmdLast(Any):Max menu item Id - uFlags(Any):Combination of shellcon.CMF_* flags, can be 0 - -Returns: - - Any - - """ - pass - - - def InvokeCommand(self,pici:'Any') -> 'None': - """ - Executes a context menu option - -Args: - - pici(Any):Tuple of parameters representing a CMINVOKECOMMANDINFO struct - -Returns: - - None - - """ - pass - - - def GetCommandString(self,idCmd:'Any',uType:'Any',cchMax:'Any'=2048) -> 'Any': - """ - Retrieves verb or help text for a context menu option - -Args: - - idCmd(Any):Id of the command - uType(Any):One of the shellcon.GCS_* constants - cchMax(Any):Size of buffer to create for returned string - -Returns: - - Any - - """ - pass - - -class PyICopyHookA(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CopyCallback(self,hwnd:'Any',wFunc:'Any',wFlags:'Any',srcFile:'Union[Any, str]',srcAttribs:'Any',destFile:'Union[Any, str]',destAttribs:'Any') -> 'None': - """ - Description of CopyCallback. - -Args: - - hwnd(Any):Description for hwnd - wFunc(Any):Description for wFunc - wFlags(Any):Description for wFlags - srcFile(Union[Any, str]):Description for srcFile - srcAttribs(Any):Description for srcAttribs - destFile(Union[Any, str]):Description for destFile - destAttribs(Any):Description for destAttribs - -Returns: - - None - - """ - pass - - -class PyICopyHookW(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CopyCallback(self,hwnd:'Any',wFunc:'Any',wFlags:'Any',srcFile:'Union[Any, str]',srcAttribs:'Any',destFile:'Union[Any, str]',destAttribs:'Any') -> 'None': - """ - Description of CopyCallback. - -Args: - - hwnd(Any):Description for hwnd - wFunc(Any):Description for wFunc - wFlags(Any):Description for wFlags - srcFile(Union[Any, str]):Description for srcFile - srcAttribs(Any):Description for srcAttribs - destFile(Union[Any, str]):Description for destFile - destAttribs(Any):Description for destAttribs - -Returns: - - None - - """ - pass - - -class PyICreateTypeInfo(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetGuid(self,guid:'PyIID') -> 'None': - """ - Description of SetGuid. - -Args: - - guid(PyIID):Description for guid - -Returns: - - None - - """ - pass - - - def SetTypeFlags(self,uTypeFlags:'Any') -> 'None': - """ - Description of SetTypeFlags. - -Args: - - uTypeFlags(Any):Description for uTypeFlags - -Returns: - - None - - """ - pass - - - def SetDocString(self,pStrDoc:'Any') -> 'None': - """ - Description of SetDocString. - -Args: - - pStrDoc(Any):Description for pStrDoc - -Returns: - - None - - """ - pass - - - def SetHelpContext(self,dwHelpContext:'Any') -> 'None': - """ - Description of SetHelpContext. - -Args: - - dwHelpContext(Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': - """ - Description of SetVersion. - -Args: - - wMajorVerNum(Any):Description for wMajorVerNum - wMinorVerNum(Any):Description for wMinorVerNum - -Returns: - - None - - """ - pass - - - def AddRefTypeInfo(self,pTInfo:'Any') -> 'None': - """ - Description of AddRefTypeInfo. - -Args: - - pTInfo(Any):Description for pTInfo - -Returns: - - None - - """ - pass - - - def AddFuncDesc(self,index:'Any') -> 'None': - """ - Description of AddFuncDesc. - -Args: - - index(Any):Description for index - -Returns: - - None - - """ - pass - - - def AddImplType(self,index:'Any',hRefType:'Any') -> 'None': - """ - Description of AddImplType. - -Args: - - index(Any):Description for index - hRefType(Any):A hRefType - -Returns: - - None - - """ - pass - - - def SetImplTypeFlags(self,index:'Any',implTypeFlags:'Any') -> 'None': - """ - Description of SetImplTypeFlags. - -Args: - - index(Any):Description for index - implTypeFlags(Any):Description for implTypeFlags - -Returns: - - None - - """ - pass - - - def SetAlignment(self,cbAlignment:'Any') -> 'None': - """ - Description of SetAlignment. - -Args: - - cbAlignment(Any):Description for cbAlignment - -Returns: - - None - - """ - pass - - - def SetSchema(self,pStrSchema:'Any') -> 'None': - """ - Description of SetSchema. - -Args: - - pStrSchema(Any):Description for pStrSchema - -Returns: - - None - - """ - pass - - - def AddVarDesc(self,index:'Any') -> 'None': - """ - Description of AddVarDesc. - -Args: - - index(Any):Description for index - -Returns: - - None - - """ - pass - - - def SetFuncAndParamNames(self,index:'Any',rgszNames:'Tuple[Any, ...]') -> 'None': - """ - Description of SetFuncAndParamNames. - -Args: - - index(Any):Index of the item to set. - rgszNames(Tuple[Any, ...]):A sequence of unicode or String objects. - -Returns: - - None - - """ - pass - - - def SetVarName(self,index:'Any',szName:'Any') -> 'None': - """ - Description of SetVarName. - -Args: - - index(Any):Description for index - szName(Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetTypeDescAlias(self,) -> 'None': - """ - Description of SetTypeDescAlias. - -Args: - - - -Returns: - - None - - """ - pass - - - def DefineFuncAsDllEntry(self,index:'Any',szDllName:'Any',szProcName:'Any') -> 'None': - """ - Description of DefineFuncAsDllEntry. - -Args: - - index(Any):Description for index - szDllName(Any):Description for szDllName - szProcName(Any):Description for szProcName - -Returns: - - None - - """ - pass - - - def SetFuncDocString(self,index:'Any',szDocString:'Any') -> 'None': - """ - Description of SetFuncDocString. - -Args: - - index(Any):Description for index - szDocString(Any):Description for szDocString - -Returns: - - None - - """ - pass - - - def SetVarDocString(self,index:'Any',szDocString:'Any') -> 'None': - """ - Description of SetVarDocString. - -Args: - - index(Any):Description for index - szDocString(Any):Description for szDocString - -Returns: - - None - - """ - pass - - - def SetFuncHelpContext(self,index:'Any',dwHelpContext:'Any') -> 'None': - """ - Description of SetFuncHelpContext. - -Args: - - index(Any):Description for index - dwHelpContext(Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetVarHelpContext(self,index:'Any',dwHelpContext:'Any') -> 'None': - """ - Description of SetVarHelpContext. - -Args: - - index(Any):Description for index - dwHelpContext(Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetMops(self,index:'Any',bstrMops:'Any') -> 'None': - """ - Description of SetMops. - -Args: - - index(Any):Description for index - bstrMops(Any):Description for bstrMops - -Returns: - - None - - """ - pass - - - def LayOut(self,) -> 'None': - """ - Description of LayOut. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyICreateTypeLib(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateTypeInfo(self,szName:'Any') -> 'None': - """ - Description of CreateTypeInfo. - -Args: - - szName(Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetName(self,szName:'Any') -> 'None': - """ - Description of SetName. - -Args: - - szName(Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': - """ - Description of SetVersion. - -Args: - - wMajorVerNum(Any):Description for wMajorVerNum - wMinorVerNum(Any):Description for wMinorVerNum - -Returns: - - None - - """ - pass - - - def SetGuid(self,guid:'PyIID') -> 'None': - """ - Description of SetGuid. - -Args: - - guid(PyIID):Description for guid - -Returns: - - None - - """ - pass - - - def SetDocString(self,szDoc:'Any') -> 'None': - """ - Description of SetDocString. - -Args: - - szDoc(Any):Description for szDoc - -Returns: - - None - - """ - pass - - - def SetHelpFileName(self,szHelpFileName:'Any') -> 'None': - """ - Description of SetHelpFileName. - -Args: - - szHelpFileName(Any):Description for szHelpFileName - -Returns: - - None - - """ - pass - - - def SetHelpContext(self,dwHelpContext:'Any') -> 'None': - """ - Description of SetHelpContext. - -Args: - - dwHelpContext(Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetLcid(self,) -> 'None': - """ - Description of SetLcid. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetLibFlags(self,uLibFlags:'Any') -> 'None': - """ - Description of SetLibFlags. - -Args: - - uLibFlags(Any):Description for uLibFlags - -Returns: - - None - - """ - pass - - - def SaveAllChanges(self,) -> 'None': - """ - Description of SaveAllChanges. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyICreateTypeLib2(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateTypeInfo(self,szName:'Any') -> 'None': - """ - Description of CreateTypeInfo. - -Args: - - szName(Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetName(self,szName:'Any') -> 'None': - """ - Description of SetName. - -Args: - - szName(Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetVersion(self,wMajorVerNum:'Any',wMinorVerNum:'Any') -> 'None': - """ - Description of SetVersion. - -Args: - - wMajorVerNum(Any):Description for wMajorVerNum - wMinorVerNum(Any):Description for wMinorVerNum - -Returns: - - None - - """ - pass - - - def SetGuid(self,guid:'PyIID') -> 'None': - """ - Description of SetGuid. - -Args: - - guid(PyIID):Description for guid - -Returns: - - None - - """ - pass - - - def SetDocString(self,szDoc:'Any') -> 'None': - """ - Description of SetDocString. - -Args: - - szDoc(Any):Description for szDoc - -Returns: - - None - - """ - pass - - - def SetHelpFileName(self,szHelpFileName:'Any') -> 'None': - """ - Description of SetHelpFileName. - -Args: - - szHelpFileName(Any):Description for szHelpFileName - -Returns: - - None - - """ - pass - - - def SetHelpContext(self,dwHelpContext:'Any') -> 'None': - """ - Description of SetHelpContext. - -Args: - - dwHelpContext(Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetLcid(self,) -> 'None': - """ - Description of SetLcid. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetLibFlags(self,uLibFlags:'Any') -> 'None': - """ - Description of SetLibFlags. - -Args: - - uLibFlags(Any):Description for uLibFlags - -Returns: - - None - - """ - pass - - - def SaveAllChanges(self,) -> 'None': - """ - Description of SaveAllChanges. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyICurrentItem(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyICustomDestinationList(object): - """Interface used to customize an application's jump list""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetAppID(self,AppID:'Any') -> 'None': - """ - Specifies the taskbar identifier for the jump list - -Args: - - AppID(Any):The taskbar identifier of the applicationCommentsOnly needed if the calling app doesn't use the system-assigned default - -Returns: - - None - - """ - pass - - - def BeginList(self,riid:'PyIID') -> 'Tuple[Any, Any]': - """ - Clears the jump list and prepares it to be - -repopulated - -Args: - - riid(PyIID):The interface to returnReturn ValueReturns the number of slots and a collection of all destinations removed from the jump list - -Returns: - - Tuple[Any, Any]:The interface to return -Return ValueReturns the number of slots and a collection of all destinations removed from the jump list - - - """ - pass - - - def AppendCategory(self,Category:'Any',Items:'Any') -> 'None': - """ - Adds a custom category to the jump list - -Args: - - Category(Any):Display name of the category, can also be a dll and resource id for localization - Items(Any):Collection of IShellItem and/or IShellLink interfaces - -Returns: - - None - - """ - pass - - - def AppendKnownCategory(self,Category:'Any') -> 'None': - """ - Adds one of the predefined categories to the custom list - -Args: - - Category(Any):shellcon.KDC_RECENT or KDC_FREQUENT - -Returns: - - None - - """ - pass - - - def AddUserTasks(self,Items:'Any') -> 'None': - """ - Sets the entries shown in the Tasks category - -Args: - - Items(Any):Collection of PyIShellItem and/or PyIShellLink interfaces - -Returns: - - None - - """ - pass - - - def CommitList(self,) -> 'None': - """ - Finalizes changes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetRemovedDestinations(self,riid:'PyIID') -> 'Any': - """ - Returns all the items removed from the - -jump list - -Args: - - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def DeleteList(self,AppID:'Any'=None) -> 'None': - """ - Removes any customization, leaving only the system-maintained Recent - -and Frequent lists - -Args: - - AppID(Any):The taskbar identifier of the application - -Returns: - - None - - """ - pass - - - def AbortList(self,) -> 'None': - """ - Discards all changes - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDL(object): - """A Python representation of an IDL. Implemented as a sequence of Python strings. - -FALSE*/, UINT *pcb /* = NULL */)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIDataObject(object): - """Used to transfer data in various formats throughout the shell""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetData(self,pformatetcIn:'Any') -> 'Any': - """ - Retrieves data from the object in specified format - -Args: - - pformatetcIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned - -Returns: - - Any - - """ - pass - - - def GetDataHere(self,pformatetcIn:'Any') -> 'Any': - """ - Retunrs a copy of the object's data in specified format - -Args: - - pformatetcIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned - -Returns: - - Any - - """ - pass - - - def QueryGetData(self,pformatetc:'Any') -> 'None': - """ - Checks if the objects supports returning data in a particular format. - -Args: - - pformatetc(Any):Tuple representing a FORMATETC struct describing how the data should be returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. - -Returns: - - None:Tuple representing a FORMATETC struct describing how the data should be - -returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. - - - """ - pass - - - def GetCanonicalFormatEtc(self,pformatectIn:'Any') -> 'Any': - """ - Transforms a FORMATECT data description into a general - -format that the object supports - -Args: - - pformatectIn(Any):Tuple representing a FORMATETC struct describing how the data should be returned - -Returns: - - Any - - """ - pass - - - def SetData(self,pformatetc:'Any',pmedium:'Any',fRelease:'Any') -> 'None': - """ - Sets the data that the object will return. - -Args: - - pformatetc(Any):Tuple representing a FORMATETC struct describing the type of data to be set - pmedium(Any):The data to be placed in the object - fRelease(Any):If True, transfers ownership of the data to the object. If False, caller is responsible for releasing the STGMEDIUM. - -Returns: - - None - - """ - pass - - - def EnumFormatEtc(self,dwDirection:'Any') -> 'Any': - """ - Returns an enumerator to list the data formats that the - -object supports. - -Args: - - dwDirection(Any):Indicates whether to return formats that can be queried or set (pythoncom.DATADIR_GET or DATADIR_SET) - -Returns: - - Any - - """ - pass - - - def DAdvise(self,pformatetc:'Any',advf:'Any',pAdvSink:'Any') -> 'Any': - """ - Connects the object to an interface that will receive notifications when its data - -changes - -Args: - - pformatetc(Any):Defines the type of data for which the sink will receive notifications. - advf(Any):Combination of values from ADVF enum. (which currently do not appear in any of the constants modules!) - pAdvSink(Any):Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection - -Returns: - - Any:Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection - - - """ - pass - - - def DUnadvise(self,dwConnection:'Any') -> 'None': - """ - Disconnects a notification sink. - -Args: - - dwConnection(Any):Identifier of the connection as returned by DAdvise. - -Returns: - - None - - """ - pass - - - def EnumDAdvise(self,) -> 'Any': - """ - Creates an enumerator to list connected notification sinks. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIDebugApplication(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetName(self,pstrName:'Any') -> 'None': - """ - Sets the name of the application. - -Args: - - pstrName(Any):The name of the application.CommentsThe provided name will be returned in subsequent calls to >om PyIRemoteDebugApplication.GetName>. - -Returns: - - None - - """ - pass - - - def StepOutComplete(self,) -> 'None': - """ - Called by language engines, in single step mode, just before they - -return to their caller. - -Args: - - - -Returns: - - None - - """ - pass - - - def DebugOutput(self,pstr:'Any') -> 'None': - """ - Causes the given string to be displayed by the debugger IDE, normally in - -an output window. - -Args: - - pstr(Any):Description for pstrCommentsThis mechanism provides the means for a language engine to implement language specific debugging output support. Example: Debug.writeln("Help") in JavaScript. - -Returns: - - None - - """ - pass - - - def StartDebugSession(self,) -> 'None': - """ - Causes a default debugger IDE to be started and a debug session to - -be attached to this application if one does not already exist. - -Args: - - - -Returns: - - None - - """ - pass - - - def HandleBreakPoint(self,br:'Any') -> 'Any': - """ - Called by the language engine in the context of a thread that has - -hit a breakpoint. - -Args: - - br(Any):Break reason - one of the BREAKREASON_* constants.CommentsThis method causes the current thread to block and a notification of the breakpoint to be sent to the debugger IDE. When the debugger IDE resumes the application this method returns with the action to be taken.Note: While in the breakpoint the language engine may be called in this thread to do various things such as enumerating stack frames or evaluating expressions.Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. - -Returns: - - Any:Break reason - one of the BREAKREASON_* constants.Comments - -This method causes the current thread to block and a notification of the breakpoint - -to be sent to the debugger IDE. When the debugger IDE resumes the application this - -method returns with the action to be taken. - -Note: While in the breakpoint the language engine may be called in this thread to do - -various things such as enumerating stack frames or evaluating expressions. -Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. - - - """ - pass - - - def Close(self,) -> 'None': - """ - Causes this application to release all references and enter a zombie state. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetBreakFlags(self,) -> 'Any': - """ - Returns the current break flags for the application. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetCurrentThread(self,) -> 'Any': - """ - Returns the application thread object - -associated with the currently running thread. - -Args: - - - -Returns: - - Any - - """ - pass - - - def CreateAsyncDebugOperation(self,psdo:'Any') -> 'None': - """ - None - -Args: - - psdo(Any):Description for psdoCommentsThis provides a mechanism for language engines to implement asynchronous expression and evaluation, etc. without having to know the details of synchronization with the debugger thread. See the descriptions for PyIDebugSyncOperation and PyIDebugAsyncOperation for more details. - -Returns: - - None - - """ - pass - - - def AddStackFrameSniffer(self,pdsfs:'Any') -> 'Any': - """ - Adds a stack frame sniffer to this application. - -Args: - - pdsfs(Any):Description for pdsfsCommentsGenerally called by a language engine to expose its stack frames to the debugger. It is possible for other entities to expose stack frames.Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer - -Returns: - - Any:Description for pdsfsComments - -Generally called by a language engine - -to expose its stack frames to the debugger. It is possible for other entities to - -expose stack frames. -Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer - - - """ - pass - - - def RemoveStackFrameSniffer(self,dwCookie:'Any') -> 'None': - """ - Removes a stack frame sniffer from this application. - -Args: - - dwCookie(Any):A cookie obtained from PyIDebugApplication::AddStackFrameSniffer - -Returns: - - None - - """ - pass - - - def QueryCurrentThreadIsDebuggerThread(self,) -> 'None': - """ - Determines if the current running thread is the - -debugger thread. - -Args: - - - -Returns: - - None:PyIDebugApplication.QueryCurrentThreadIsDebuggerThread -QueryCurrentThreadIsDebuggerThread()Determines if the current running thread is the - -debugger thread. -Return ValueReturns S_OK if the current running thread is the debugger thread. - -Otherwise, returns S_FALSE. - - - """ - pass - - - def SynchronousCallInDebuggerThread(self,pptc:'Any',dwParam1:'Any',dwParam2:'Any',dwParam3:'Any') -> 'None': - """ - Provides a mechanism for the caller to run code in the - -debugger thread. - -Args: - - pptc(Any):Description for pptc - dwParam1(Any):Description for dwParam1 - dwParam2(Any):Description for dwParam2 - dwParam3(Any):Description for dwParam3CommentsThis is generally used so that language engines and hosts can implement free threaded objects on top of their single threaded implementations. - -Returns: - - None - - """ - pass - - - def CreateApplicationNode(self,) -> 'Any': - """ - Creates a new application node which - -is associated with a specific document provider. - -Args: - - - -Returns: - - Any - - """ - pass - - - def FireDebuggerEvent(self,guid:'Any',unknown:'Any') -> 'None': - """ - Fire a generic event to the IApplicationDebugger (if any) - -Args: - - guid(Any):A GUID. - unknown(Any):An unknown object. - -Returns: - - None - - """ - pass - - - def HandleRuntimeError(self,pErrorDebug:'Any',pScriptSite:'Any') -> 'None': - """ - Description of HandleRuntimeError. - -Args: - - pErrorDebug(Any):Description for pErrorDebug - pScriptSite(Any):Description for pScriptSite - -Returns: - - None - - """ - pass - - - def FCanJitDebug(self,) -> 'None': - """ - Description of FCanJitDebug. - -Args: - - - -Returns: - - None - - """ - pass - - - def FIsAutoJitDebugEnabled(self,) -> 'None': - """ - Description of FIsAutoJitDebugEnabled. - -Args: - - - -Returns: - - None - - """ - pass - - - def AddGlobalExpressionContextProvider(self,pdsfs:'Any') -> 'None': - """ - Description of AddGlobalExpressionContextProvider. - -Args: - - pdsfs(Any):Description for pdsfs - -Returns: - - None - - """ - pass - - - def RemoveGlobalExpressionContextProvider(self,dwCookie:'Any') -> 'None': - """ - Description of - -RemoveGlobalExpressionContextProvider. - -Args: - - dwCookie(Any):Description for dwCookie - -Returns: - - None - - """ - pass - - -class PyIDebugApplicationNode(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumChildren(self,) -> 'None': - """ - Description of EnumChildren. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetParent(self,) -> 'Any': - """ - Returns the parent node. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetDocumentProvider(self,pddp:'Any') -> 'None': - """ - Description of SetDocumentProvider. - -Args: - - pddp(Any):Description for pddp - -Returns: - - None - - """ - pass - - - def Close(self,) -> 'None': - """ - Description of Close. - -Args: - - - -Returns: - - None - - """ - pass - - - def Attach(self,pdanParent:'Any') -> 'None': - """ - Attach a node to its parent. - -Args: - - pdanParent(Any):The parent node. None is not acceptable. - -Returns: - - None - - """ - pass - - - def Detach(self,) -> 'None': - """ - Detach a node from its parent. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugApplicationNodeEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def onAddChild(self,prddpChild:'Any') -> 'None': - """ - Description of onAddChild. - -Args: - - prddpChild(Any):Description for prddpChild - -Returns: - - None - - """ - pass - - - def onRemoveChild(self,prddpChild:'Any') -> 'None': - """ - Description of onRemoveChild. - -Args: - - prddpChild(Any):Description for prddpChild - -Returns: - - None - - """ - pass - - - def onDetach(self,) -> 'None': - """ - Description of onDetach. - -Args: - - - -Returns: - - None - - """ - pass - - - def onAttach(self,prddpParent:'Any') -> 'None': - """ - Description of onAttach. - -Args: - - prddpParent(Any):Description for prddpParent - -Returns: - - None - - """ - pass - - -class PyIDebugApplicationThread(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SynchronousCallIntoThread(self,pstcb:'Any',dwParam1:'Any',dwParam2:'Any',dwParam3:'Any') -> 'None': - """ - Description of SynchronousCallIntoThread. - -Args: - - pstcb(Any):Description for pstcb - dwParam1(Any):Description for dwParam1 - dwParam2(Any):Description for dwParam2 - dwParam3(Any):Description for dwParam3 - -Returns: - - None - - """ - pass - - - def QueryIsCurrentThread(self,) -> 'None': - """ - Description of QueryIsCurrentThread. - -Args: - - - -Returns: - - None - - """ - pass - - - def QueryIsDebuggerThread(self,) -> 'None': - """ - Description of QueryIsDebuggerThread. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugCodeContext(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentContext(self,) -> 'None': - """ - Description of GetDocumentContext. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetBreakPoint(self,bps:'Any') -> 'None': - """ - Description of SetBreakPoint. - -Args: - - bps(Any):Description for bps - -Returns: - - None - - """ - pass - - -class PyIDebugDocument(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIDebugDocumentContext(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocument(self,) -> 'None': - """ - Description of GetDocument. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumCodeContexts(self,) -> 'None': - """ - Description of EnumCodeContexts. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentHelper(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Init(self,pda:'Any',pszShortName:'Any',pszLongName:'Any',docAttr:'Any') -> 'None': - """ - Description of Init. - -Args: - - pda(Any):Description for pda - pszShortName(Any):Description for pszShortName - pszLongName(Any):Description for pszLongName - docAttr(Any):Description for docAttr - -Returns: - - None - - """ - pass - - - def Attach(self,pddhParent:'Any') -> 'None': - """ - Add the document to the doc tree - -Args: - - pddhParent(Any):Parent item. If none, this item is top level. - -Returns: - - None - - """ - pass - - - def Detach(self,) -> 'None': - """ - Description of Detach. - -Args: - - - -Returns: - - None - - """ - pass - - - def AddUnicodeText(self,pszText:'Any') -> 'None': - """ - Description of AddUnicodeText. - -Args: - - pszText(Any):Description for pszText - -Returns: - - None - - """ - pass - - - def AddDBCSText(self,) -> 'None': - """ - Description of AddDBCSText. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDebugDocumentHost(self,pddh:'Any') -> 'None': - """ - Description of SetDebugDocumentHost. - -Args: - - pddh(Any):Description for pddh - -Returns: - - None - - """ - pass - - - def AddDeferredText(self,cChars:'Any',dwTextStartCookie:'Any') -> 'None': - """ - Description of AddDeferredText. - -Args: - - cChars(Any):Description for cChars - dwTextStartCookie(Any):Description for dwTextStartCookie - -Returns: - - None - - """ - pass - - - def DefineScriptBlock(self,ulCharOffset:'Any',cChars:'Any',pas:'Any',fScriptlet:'Any') -> 'None': - """ - Description of DefineScriptBlock. - -Args: - - ulCharOffset(Any):Description for ulCharOffset - cChars(Any):Description for cChars - pas(Any):Description for pas - fScriptlet(Any):Description for fScriptlet - -Returns: - - None - - """ - pass - - - def SetDefaultTextAttr(self,staTextAttr:'Any') -> 'None': - """ - Description of SetDefaultTextAttr. - -Args: - - staTextAttr(Any):Description for staTextAttr - -Returns: - - None - - """ - pass - - - def SetTextAttributes(self,ulCharOffset:'Any',obAttr:'Any') -> 'None': - """ - Description of SetTextAttributes. - -Args: - - ulCharOffset(Any):Description for ulCharOffset - obAttr(Any):A sequence of attributes. - -Returns: - - None - - """ - pass - - - def SetLongName(self,pszLongName:'Any') -> 'None': - """ - Description of SetLongName. - -Args: - - pszLongName(Any):Description for pszLongName - -Returns: - - None - - """ - pass - - - def SetShortName(self,pszShortName:'Any') -> 'None': - """ - Description of SetShortName. - -Args: - - pszShortName(Any):Description for pszShortName - -Returns: - - None - - """ - pass - - - def SetDocumentAttr(self,pszAttributes:'Any') -> 'None': - """ - Description of SetDocumentAttr. - -Args: - - pszAttributes(Any):Description for pszAttributes - -Returns: - - None - - """ - pass - - - def GetDebugApplicationNode(self,) -> 'None': - """ - Description of GetDebugApplicationNode. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetScriptBlockInfo(self,dwSourceContext:'Any') -> 'None': - """ - Description of GetScriptBlockInfo. - -Args: - - dwSourceContext(Any):Description for dwSourceContext - -Returns: - - None - - """ - pass - - - def CreateDebugDocumentContext(self,iCharPos:'Any',cChars:'Any') -> 'None': - """ - Description of CreateDebugDocumentContext. - -Args: - - iCharPos(Any):Description for iCharPos - cChars(Any):Description for cChars - -Returns: - - None - - """ - pass - - - def BringDocumentToTop(self,) -> 'None': - """ - Description of BringDocumentToTop. - -Args: - - - -Returns: - - None - - """ - pass - - - def BringDocumentContextToTop(self,pddc:'Any') -> 'None': - """ - Description of BringDocumentContextToTop. - -Args: - - pddc(Any):Description for pddc - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentHost(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDeferredText(self,dwTextStartCookie:'Any',cMaxChars:'Any') -> 'None': - """ - Description of GetDeferredText. - -Args: - - dwTextStartCookie(Any):Description for dwTextStartCookie - cMaxChars(Any):Description for cMaxChars - -Returns: - - None - - """ - pass - - - def GetScriptTextAttributes(self,pstrCode:'Any',pstrDelimiter:'Any',dwFlags:'Any') -> 'None': - """ - Description of GetScriptTextAttributes. - -Args: - - pstrCode(Any):Description for pstrCode - pstrDelimiter(Any):Description for pstrDelimiter - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def OnCreateDocumentContext(self,) -> 'None': - """ - Description of OnCreateDocumentContext. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPathName(self,) -> 'None': - """ - Description of GetPathName. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFileName(self,) -> 'None': - """ - Description of GetFileName. - -Args: - - - -Returns: - - None - - """ - pass - - - def NotifyChanged(self,) -> 'None': - """ - Description of NotifyChanged. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentInfo(object): - """Provides information on a document, which may or may not be instantiated.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetName(self,) -> 'None': - """ - Returns the specified name for the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDocumentClassId(self,) -> 'PyIID': - """ - Returns a CLSID describing the document type. - -Args: - - - -Returns: - - PyIID - - """ - pass - - -class PyIDebugDocumentProvider(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocument(self,) -> 'Any': - """ - Causes the document to be instantiated if it does - -not already exist. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIDebugDocumentText(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentAttributes(self,) -> 'None': - """ - Description of GetDocumentAttributes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSize(self,) -> 'None': - """ - Description of GetSize. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPositionOfLine(self,cLineNumber:'Any') -> 'None': - """ - Description of GetPositionOfLine. - -Args: - - cLineNumber(Any):Description for cLineNumber - -Returns: - - None - - """ - pass - - - def GetLineOfPosition(self,cCharacterPosition:'Any') -> 'None': - """ - Description of GetLineOfPosition. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - -Returns: - - None - - """ - pass - - - def GetText(self,cCharacterPosition:'Any',cMaxChars:'Any',bWantAttr:'Any'=1) -> 'None': - """ - Description of GetText. - -Args: - - cCharacterPosition(Any): - cMaxChars(Any):Max chars to return - bWantAttr(Any):Should the attributes be returned? - -Returns: - - None - - """ - pass - - - def GetPositionOfContext(self,psc:'Any') -> 'None': - """ - Description of GetPositionOfContext. - -Args: - - psc(Any):Description for psc - -Returns: - - None - - """ - pass - - - def GetContextOfPosition(self,cCharacterPosition:'Any',cNumChars:'Any') -> 'None': - """ - Description of GetContextOfPosition. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - cNumChars(Any):Description for cNumChars - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentTextAuthor(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InsertText(self,cCharacterPosition:'Any',cNumToInsert:'Any',pcharText:'Any') -> 'None': - """ - Description of InsertText. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - cNumToInsert(Any):Description for cNumToInsert - pcharText(Any):Description for pcharText - -Returns: - - None - - """ - pass - - - def RemoveText(self,cCharacterPosition:'Any',cNumToRemove:'Any') -> 'None': - """ - Description of RemoveText. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - cNumToRemove(Any):Description for cNumToRemove - -Returns: - - None - - """ - pass - - - def ReplaceText(self,cCharacterPosition:'Any',cNumToReplace:'Any',pcharText:'Any') -> 'None': - """ - Description of ReplaceText. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - cNumToReplace(Any):Description for cNumToReplace - pcharText(Any):Description for pcharText - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentTextEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def onDestroy(self,) -> 'None': - """ - Description of onDestroy. - -Args: - - - -Returns: - - None - - """ - pass - - - def onInsertText(self,cCharacterPosition:'Any',cNumToInsert:'Any') -> 'None': - """ - Description of onInsertText. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - cNumToInsert(Any):Description for cNumToInsert - -Returns: - - None - - """ - pass - - - def onRemoveText(self,cCharacterPosition:'Any',cNumToRemove:'Any') -> 'None': - """ - Description of onRemoveText. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - cNumToRemove(Any):Description for cNumToRemove - -Returns: - - None - - """ - pass - - - def onReplaceText(self,cCharacterPosition:'Any',cNumToReplace:'Any') -> 'None': - """ - Description of onReplaceText. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - cNumToReplace(Any):Description for cNumToReplace - -Returns: - - None - - """ - pass - - - def onUpdateTextAttributes(self,cCharacterPosition:'Any',cNumToUpdate:'Any') -> 'None': - """ - Description of onUpdateTextAttributes. - -Args: - - cCharacterPosition(Any):Description for cCharacterPosition - cNumToUpdate(Any):Description for cNumToUpdate - -Returns: - - None - - """ - pass - - - def onUpdateDocumentAttributes(self,textdocattr:'Any') -> 'None': - """ - Description of onUpdateDocumentAttributes. - -Args: - - textdocattr(Any):Description for textdocattr - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentTextExternalAuthor(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPathName(self,) -> 'None': - """ - Description of GetPathName. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFileName(self,) -> 'None': - """ - Description of GetFileName. - -Args: - - - -Returns: - - None - - """ - pass - - - def NotifyChanged(self,) -> 'None': - """ - Description of NotifyChanged. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugExpression(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Start(self,pdecb:'Any') -> 'None': - """ - Description of Start. - -Args: - - pdecb(Any):Description for pdecb - -Returns: - - None - - """ - pass - - - def Abort(self,) -> 'None': - """ - Description of Abort. - -Args: - - - -Returns: - - None - - """ - pass - - - def QueryIsComplete(self,) -> 'None': - """ - Description of QueryIsComplete. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetResultAsString(self,) -> 'None': - """ - Description of GetResultAsString. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetResultAsDebugProperties(self,) -> 'None': - """ - Description of GetResultAsDebugProperty. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugExpressionCallBack(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def onComplete(self,) -> 'None': - """ - Description of onComplete. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugExpressionContext(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ParseLanguageText(self,pstrCode:'Any',nRadix:'Any',pstrDelimiter:'Any',dwFlags:'Any') -> 'None': - """ - Description of ParseLanguageText. - -Args: - - pstrCode(Any):Description for pstrCode - nRadix(Any):Description for nRadix - pstrDelimiter(Any):Description for pstrDelimiter - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def GetLanguageInfo(self,) -> 'None': - """ - Description of GetLanguageInfo. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugProperty(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPropertyInfo(self,dwFieldSpec:'Any',nRadix:'Any') -> 'None': - """ - Description of GetPropertyInfo. - -Args: - - dwFieldSpec(Any):Description for dwFieldSpec - nRadix(Any):Description for nRadix - -Returns: - - None - - """ - pass - - - def GetExtendedInfo(self,) -> 'None': - """ - Description of GetExtendedInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetValueAsString(self,pszValue:'Any',nRadix:'Any') -> 'None': - """ - Description of SetValueAsString. - -Args: - - pszValue(Any):Description for pszValue - nRadix(Any):Description for nRadix - -Returns: - - None - - """ - pass - - - def EnumMembers(self,dwFieldSpec:'Any',nRadix:'Any',refiid:'PyIID') -> 'None': - """ - Description of EnumMembers. - -Args: - - dwFieldSpec(Any):Description for dwFieldSpec - nRadix(Any):Description for nRadix - refiid(PyIID):Description for refiid - -Returns: - - None - - """ - pass - - - def GetParent(self,) -> 'None': - """ - Description of GetParent. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugSessionProvider(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def StartDebugSession(self,pda:'Any') -> 'None': - """ - Description of StartDebugSession. - -Args: - - pda(Any):Description for pda - -Returns: - - None - - """ - pass - - -class PyIDebugStackFrame(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCodeContext(self,) -> 'None': - """ - Returns the current code context associated with the stack frame. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDescriptionString(self,fLong:'Any') -> 'Any': - """ - Returns a short or long textual description of the - -stack frame. - -Args: - - fLong(Any):If false, provide only the name of the function associated with the stack frame. When true it may also provide the parameter(s) to the function or whatever else is relevant. - -Returns: - - Any - - """ - pass - - - def GetLanguageString(self,fLong:'Any') -> 'Any': - """ - Returns a short or long textual description of the - -language. - -Args: - - fLong(Any):If False, just the language name should be provided, eg, "Python". If True a full product description may be provided (eg, "Python 1.4 ActiveX Debugging Host") - -Returns: - - Any - - """ - pass - - - def GetThread(self,) -> 'Any': - """ - Returns the thread associated with this stack - -frame. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIDebugStackFrameSniffer(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumStackFrames(self,) -> 'None': - """ - Description of EnumStackFrames. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugStackFrameSnifferEx(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumStackFramesEx(self,) -> 'None': - """ - Description of EnumStackFrames. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugSyncOperation(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetTargetThread(self,) -> 'None': - """ - Description of GetTargetThread. - -Args: - - - -Returns: - - None - - """ - pass - - - def Execute(self,) -> 'None': - """ - Description of Execute. - -Args: - - - -Returns: - - None - - """ - pass - - - def InProgressAbort(self,) -> 'None': - """ - Description of InProgressAbort. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDefaultExtractIconInit(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetFlags(self,uFlags:'Any') -> 'None': - """ - Description of SetFlags. - -Args: - - uFlags(Any):Description for uFlags - -Returns: - - None - - """ - pass - - - def SetKey(self,hkey:'PyHKEY') -> 'None': - """ - Description of SetKey. - -Args: - - hkey(PyHKEY):Description for hkey - -Returns: - - None - - """ - pass - - - def SetNormalIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': - """ - Description of SetNormalIcon. - -Args: - - pszFile(Any):Description for pszFile - iIcon(Any):Description for iIcon - -Returns: - - None - - """ - pass - - - def SetOpenIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': - """ - Description of SetOpenIcon. - -Args: - - pszFile(Any):Description for pszFile - iIcon(Any):Description for iIcon - -Returns: - - None - - """ - pass - - - def SetShortcutIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': - """ - Description of SetShortcutIcon. - -Args: - - pszFile(Any):Description for pszFile - iIcon(Any):Description for iIcon - -Returns: - - None - - """ - pass - - - def SetDefaultIcon(self,pszFile:'Any',iIcon:'Any') -> 'None': - """ - Description of SetDefaultIcon. - -Args: - - pszFile(Any):Description for pszFile - iIcon(Any):Description for iIcon - -Returns: - - None - - """ - pass - - -class PyIDirectSound(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,guid:'PyIID') -> 'None': - """ - Description of Initialize. - -Args: - - guid(PyIID):Globally unique identifier (GUID) specifying the sound driver to which this DirectSound object binds. Pass None to select the primary sound driver. - -Returns: - - None - - """ - pass - - - def SetCooperativeLevel(self,hwnd:'Any',level:'Any') -> 'None': - """ - The IDirectSound::SetCooperativeLevel method sets the cooperative level - -of the application for this sound device. - -Args: - - hwnd(Any):Window handle to the application or None. - level(Any):Requested priority level. Specify one of the following values:LevelDescriptionDSSCL_NORMALSets the application to a fully cooperative status. Most applications should use this level, because it has the smoothest multitasking and resource-sharing behavior.DSSCL_PRIORITYSets the application to the priority level. Applications with this cooperative level can call the DirectSoundBuffer.setFormat and DirectSound.compact methods.DSSCL_EXCLUSIVESets the application to the exclusive level. When it has the input focus, the application will be the only one audible (sounds from applications with the DSBCAPS_GLOBALFOCUS flag set will be muted). With this level, it also has all the privileges of the DSSCL_PRIORITY level. DirectSound will restore the hardware format, as specified by the most recent call to the DirectSoundBuffer.setFormat method, once the application gains the input focus. (Note that DirectSound will always restore the wave format, no matter what priority level is set.)DSSCL_WRITEPRIMARYThis is the highest priority level. The application has write access to the primary sound buffers. No secondary sound buffers in any application can be played. - -Returns: - - None - - """ - pass - - - def CreateSoundBuffer(self,lpDSCBufferDesc:'Any',unk:'Any'=None) -> 'None': - """ - The IDirectSound::CreateSoundBuffer method creates a DirectSoundBuffer - -object to hold a sequence of audio samples. - -Args: - - lpDSCBufferDesc(Any):a DSBUFFERDESC structure containing values for the sound buffer being created. - unk(Any):The IUnknown for COM aggregation. - -Returns: - - None - - """ - pass - - - def GetCaps(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def Compact(self,) -> 'None': - """ - The Compact method moves the unused portions of on-board sound memory, if any, to a - -contiguous block so that the largest portion of free memory will be available. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDirectSoundBuffer(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Description of Initialize. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetStatus(self,) -> 'None': - """ - Retrieves the current status of the sound buffer. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCaps(self,) -> 'None': - """ - Retrieves the capabilities of the DirectSoundBuffer object as a DSBCAPS - -object. - -Args: - - - -Returns: - - None - - """ - pass - - - def Restore(self,) -> 'None': - """ - Restores the memory allocation for a lost sound buffer for the specified - -DirectSoundBuffer object. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurrentPosition(self,) -> 'None': - """ - Description of GetCurrentPosition. - -Args: - - - -Returns: - - None - - """ - pass - - - def Play(self,) -> 'None': - """ - Description of Play. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetCurrentPosition(self,) -> 'None': - """ - Description of SetCurrentPosition. - -Args: - - - -Returns: - - None - - """ - pass - - - def Stop(self,) -> 'None': - """ - Description of Stop. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFrequency(self,) -> 'None': - """ - Description of GetFrequency. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPan(self,) -> 'None': - """ - Description of GetPan. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetVolume(self,) -> 'None': - """ - Description of GetVolume. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFrequency(self,) -> 'None': - """ - Description of SetFrequency. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPan(self,) -> 'None': - """ - Description of SetPan. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetVolume(self,) -> 'None': - """ - Description of SetVolume. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDirectSoundCapture(object): - """The methods of the IDirectSoundCapture interface are used to create sound capture - -buffers.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Not normally called directly. Use DirectSoundCaptureCreate instead. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCaps(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDirectSoundCaptureBuffer(object): - """The methods of the IDirectSoundCaptureBuffer interface are used to manipulate - -sound capture buffers.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Not normally used. Used IDirectSoundCapture.CreateCaptureBuffer - -instead. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetStatus(self,) -> 'None': - """ - Retrieves the current status of the sound capture buffer. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurrentPosition(self,) -> 'None': - """ - Returns a tuple of the current capture and read position in - -the buffer. The capture position is ahead of the read position. These positions are not always identical due to - -possible buffering of captured data either on the physical device or in the host. The data after the read position up - -to and including the capture position is not necessarily valid data. - -Args: - - - -Returns: - - None - - """ - pass - - - def Stop(self,) -> 'None': - """ - The IDirectSoundCaptureBuffer::Stop method puts the capture buffer into - -the "stop" state and stops capturing data. If the capture buffer is already in the stop state then the method has no - -effect. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDirectSoundNotify(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIDirectoryObject(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetObjectInformation(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetObjectAttributes(self,names:'Tuple[str, ...]') -> 'Tuple[Any, ...]': - """ - None - -Args: - - names(Tuple[str, ...]): - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def SetObjectAttributes(self,attrs:'Tuple[Any, ...]') -> 'Any': - """ - None - -Args: - - attrs(Tuple[Any, ...]):The attributes to set - -Returns: - - Any - - """ - pass - - - def CreateDSObject(self,rdn:'str',attrs:'Tuple[Any, ...]') -> 'Any': - """ - None - -Args: - - rdn(str):The relative distinguished name (relative path) of the object to be created. - attrs(Tuple[Any, ...]):The attributes to set. - -Returns: - - Any - - """ - pass - - - def DeleteDSObject(self,rdn:'str') -> 'None': - """ - Deletes a leaf object in a directory tree - -Args: - - rdn(str):The relative distinguished name (relative path) of the object to be deleted. - -Returns: - - None - - """ - pass - - -class PyIDirectorySearch(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetSearchPreference(self,prefs:'Any') -> 'Tuple[Any, Any, Any]': - """ - None - -Args: - - prefs(Any):Return ValueThe result is the hresult of the call, and a list of integer status codes for each of the preferences set. - -Returns: - - Tuple[Any, Any, Any]:Return ValueThe result is the hresult of the call, and a list of integer status - -codes for each of the preferences set. - - - """ - pass - - - def ExecuteSearch(self,_filter:'str',attrNames:'List[str]') -> 'Any': - """ - None - -Args: - - _filter(str): - attrNames(List[str]):Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle should be called to close the handle. - -Returns: - - Any:Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle - -should be called to close the handle. - - - """ - pass - - - def GetNextRow(self,handle:'Any') -> 'Any': - """ - None - -Args: - - handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown - -Returns: - - Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - - - """ - pass - - - def GetFirstRow(self,handle:'Any') -> 'Any': - """ - None - -Args: - - handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown - -Returns: - - Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - - - """ - pass - - - def GetPreviousRow(self,handle:'Any') -> 'Any': - """ - None - -Args: - - handle(Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown - -Returns: - - Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - - - """ - pass - - - def CloseSearchHandle(self,handle:'Any') -> 'None': - """ - Closes a previously opened search handle. - -Args: - - handle(Any): - -Returns: - - None - - """ - pass - - - def AdandonSearch(self,handle:'Any') -> 'None': - """ - None - -Args: - - handle(Any): - -Returns: - - None - - """ - pass - - - def GetColumn(self,handle:'Any',name:'str') -> 'Tuple[Any, Any, Any]': - """ - None - -Args: - - handle(Any):Handle to a search - name(str):The column name to fetch - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def GetNextColumnName(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None:PyIDirectorySearch.GetNextColumnName -GetNextColumnName() -Return ValueReturns None when the underlying ADSI function return S_ADS_NOMORE_COLUMNS. - - - """ - pass - - -class PyIDispatch(object): - """A OLE automation client object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Invoke(self,dispid:'Any',lcid:'Any',flags:'Any',bResultWanted:'Any',arg:'Tuple[Any, ...]') -> 'Any': - """ - Invokes a DISPID, using the passed arguments. - -Args: - - dispid(Any):The dispid to use. Typically this value will come from PyIDispatch::GetIDsOfNames or from a type library. - lcid(Any):The locale id to use. - flags(Any):The flags for the call. The following flags can be used.FlagDescriptionDISPATCH_METHODThe member is invoked as a method. If a property has the same name, both this and the DISPATCH_PROPERTYGET flag may be set.DISPATCH_PROPERTYGETThe member is retrieved as a property or data member.DISPATCH_PROPERTYPUTThe member is changed as a property or data member.DISPATCH_PROPERTYPUTREFThe member is changed by a reference assignment, rather than a value assignment. This flag is valid only when the property accepts a reference to an object. - bResultWanted(Any):Indicates if the result of the call should be requested. - arg(Tuple[Any, ...]):The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. Otherwise, the result is determined by the COM object itself (and may still be None) - -Returns: - - Any:The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. - -Otherwise, the result is determined by the COM object itself (and may still be None) - - - """ - pass - - - def InvokeTypes(self,dispid:'Any',lcid:'Any',wFlags:'Any',resultTypeDesc:'Any',typeDescs:'Tuple[Any, ...]',args:'Tuple[Any, ...]') -> 'Any': - """ - Invokes a DISPID, using the passed arguments and type descriptions. - -Args: - - dispid(Any):The dispid to use. Please see PyIDispatch::Invoke. - lcid(Any):The locale ID. Please see PyIDispatch::Invoke. - wFlags(Any):Flags for the call. Please see PyIDispatch::Invoke. - resultTypeDesc(Any):A tuple describing the type of the result. See the comments for more information. - typeDescs(Tuple[Any, ...]):A sequence of tuples describing the types of the parameters for the function. See the comments for more information. - args(Tuple[Any, ...]):The args to the function.CommentsThe Microsoft documentation for IDispatch should be used for all params except 'resultTypeDesc' and 'typeDescs'. 'resultTypeDesc' describes the return value of the function, and is a tuple of (type_id, flags). 'typeDescs' describes the type of each parameters, and is a list of the same (type_id, flags) tuple.itemDescriptiontype_idA valid "variant type" constant (eg, VT_I4 | VT_ARRAY, VT_DATE, etc - see VARIANT at MSDN).flagsOne of the PARAMFLAG constants (eg, PARAMFLAG_FIN, PARAMFLAG_FOUT etc - see PARAMFLAG at MSDN).ExampleAn example from the makepy generated file for Wordclass Cells(DispatchBaseClass):... def SetWidth(self, ColumnWidth=..., RulerStyle=...): return self._oleobj_.InvokeTypes(202, LCID, 1, (24, 0), ((4, 1), (3, 1)),...)The interesting bits areresultTypeDesc: (24, 0) - (VT_VOID, <no flags>)typeDescs: ((4, 1), (3, 1)) - ((VT_R4, PARAMFLAG_FIN), (VT_I4, PARAMFLAG_FIN))So, in this example, the function returns no value and takes 2 "in" params - ColumnWidth is a float, and RulerStule is an int. - -Returns: - - Any - - """ - pass - - - def GetIDsOfNames(self,name:'str',arg:'Any') -> 'Tuple[Any, Union[Any]]': - """ - Get the DISPID for the passed names. - -Args: - - name(str):A name to query forAlternative Parameters - arg(Any):A sequence of string names to queryCommentsCurrently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used.Return ValueIf the first parameter is a sequence, the result will be a tuple of integers for each name in the sequence. If the first parameter is a single string, the result is a single integer with the ID of requested item. - -Returns: - - Tuple[Any, Union[Any]]:A sequence of string names to query -Comments - -Currently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used. -Return ValueIf the first parameter is a sequence, the result will be a tuple of integers - -for each name in the sequence. If the first parameter is a single string, the result - -is a single integer with the ID of requested item. - - - """ - pass - - - def GetTypeInfo(self,locale:'Any',index:'Any'=0) -> 'Any': - """ - Get type information for the object. - -Args: - - locale(Any):The locale to use. - index(Any):The index of the typelibrary to fetch. Note that these params are reversed from the win32 call. - -Returns: - - Any - - """ - pass - - - def GetTypeInfoCount(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIDispatchEx(object): - """A OLE automation client object that uses the IDispatchEx scripting interface..""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDispID(self,name:'str',fdex:'Any') -> 'Any': - """ - Returns the member id for a name - -Args: - - name(str):Passed in name to be mapped - fdex(Any):Determines the options for obtaining the member identifier. This can be a combination of the fdex* constants: - -Returns: - - Any - - """ - pass - - - def InvokeEx(self,dispid:'Any',lcid:'Any',flags:'Any',args:'List[Any]',types:'List[Any]'=None,returnDesc:'Any'=1,serviceProvider:'Any'=None) -> 'Any': - """ - None - -Args: - - dispid(Any): - lcid(Any): - flags(Any): - args(List[Any]):The arguments. - types(List[Any]):A tuple of type description object, or None if type descriptions are not available. - returnDesc(Any):If types==None, should be a BOOL indicating if the result is needed. If types is a tuple, then should a be type description. - serviceProvider(Any):A service provider object supplied by the caller which allows the object to obtain services from the caller. Can be None. - -Returns: - - Any - - """ - pass - - - def DeleteMemberByName(self,name:'str',fdex:'Any') -> 'None': - """ - None - -Args: - - name(str):Passed in name to be mapped - fdex(Any):Determines the options - -Returns: - - None - - """ - pass - - - def DeleteMemberByDispID(self,dispid:'Any') -> 'None': - """ - None - -Args: - - dispid(Any): - -Returns: - - None - - """ - pass - - - def GetMemberProperties(self,dispid:'Any',fdex:'Any') -> 'Any': - """ - Returns mask of fdex* flags describing a member - -Args: - - dispid(Any):The member id - fdex(Any):fdex* flags specifying which properties to return - -Returns: - - Any - - """ - pass - - - def GetMemberName(self,dispid:'Any') -> 'Any': - """ - Returns the name associated with a member id - -Args: - - dispid(Any):The member id - -Returns: - - Any - - """ - pass - - - def GetNextDispID(self,fdex:'Any',dispid:'Any') -> 'Any': - """ - Enumerates member ids. - -Args: - - fdex(Any):Determines the options - dispid(Any):Current member, or DISPID_STARTENUM to begin enumeration. GetNextDispID will retrieve the item in the enumeration after this one. - -Returns: - - Any - - """ - pass - - -class PyIDisplayItem(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIDocHostUIHandler(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ShowContextMenu(self,dwID:'Any',pt:'Tuple[Any, Any]',pcmdtReserved:'Any',pdispReserved:'Any') -> 'None': - """ - Description of ShowContextMenu. - -Args: - - dwID(Any):Description for dwID - pt(Tuple[Any, Any]):Description for ppt - pcmdtReserved(Any):Description for pcmdtReserved - pdispReserved(Any):Description for pdispReserved - -Returns: - - None - - """ - pass - - - def GetHostInfo(self,) -> 'None': - """ - Description of GetHostInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def ShowUI(self,dwID:'Any',pActiveObject:'Any',pCommandTarget:'Any',pFrame:'Any',pDoc:'Any') -> 'None': - """ - Description of ShowUI. - -Args: - - dwID(Any):Description for dwID - pActiveObject(Any):Description for pActiveObject - pCommandTarget(Any):Description for pCommandTarget - pFrame(Any):Description for pFrame - pDoc(Any):Description for pDoc - -Returns: - - None - - """ - pass - - - def HideUI(self,) -> 'None': - """ - Description of HideUI. - -Args: - - - -Returns: - - None - - """ - pass - - - def UpdateUI(self,) -> 'None': - """ - Description of UpdateUI. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnableModeless(self,fEnable:'Any') -> 'None': - """ - Description of EnableModeless. - -Args: - - fEnable(Any):Description for fEnable - -Returns: - - None - - """ - pass - - - def OnDocWindowActivate(self,fActivate:'Any') -> 'None': - """ - Description of OnDocWindowActivate. - -Args: - - fActivate(Any):Description for fActivate - -Returns: - - None - - """ - pass - - - def OnFrameWindowActivate(self,fActivate:'Any') -> 'None': - """ - Description of OnFrameWindowActivate. - -Args: - - fActivate(Any):Description for fActivate - -Returns: - - None - - """ - pass - - - def ResizeBorder(self,prcBorder:'Tuple[Any, Any, Any, Any]',pUIWindow:'Any',fRameWindow:'Any') -> 'None': - """ - Description of ResizeBorder. - -Args: - - prcBorder(Tuple[Any, Any, Any, Any]):Description for prcBorder - pUIWindow(Any):Description for pUIWindow - fRameWindow(Any):Description for fRameWindow - -Returns: - - None - - """ - pass - - - def TranslateAccelerator(self,lpMsg:'Any',pguidCmdGroup:'PyIID',nCmdID:'Any') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - lpMsg(Any):Description for lpMsg - pguidCmdGroup(PyIID):Description for pguidCmdGroup - nCmdID(Any):Description for nCmdID - -Returns: - - None - - """ - pass - - - def GetOptionKeyPath(self,dw:'Any') -> 'None': - """ - Description of GetOptionKeyPath. - -Args: - - dw(Any):Description for dw - -Returns: - - None - - """ - pass - - - def GetDropTarget(self,pDropTarget:'Any') -> 'None': - """ - Description of GetDropTarget. - -Args: - - pDropTarget(Any):Description for pDropTarget - -Returns: - - None - - """ - pass - - - def GetExternal(self,) -> 'None': - """ - Description of GetExternal. - -Args: - - - -Returns: - - None - - """ - pass - - - def TranslateUrl(self,dwTranslate:'Any',pchURLIn:'Any') -> 'None': - """ - Description of TranslateUrl. - -Args: - - dwTranslate(Any):Description for dwTranslate - pchURLIn(Any):Description for pchURLIn - -Returns: - - None - - """ - pass - - - def FilterDataObject(self,pDO:'Any') -> 'None': - """ - Description of FilterDataObject. - -Args: - - pDO(Any):Description for pDO - -Returns: - - None - - """ - pass - - -class PyIDropSource(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryContinueDrag(self,fEscapePressed:'Any',grfKeyState:'Any') -> 'None': - """ - Description of QueryContinueDrag. - -Args: - - fEscapePressed(Any):Description for fEscapePressed - grfKeyState(Any):Description for grfKeyState - -Returns: - - None - - """ - pass - - - def GiveFeedback(self,dwEffect:'Any') -> 'None': - """ - Description of GiveFeedback. - -Args: - - dwEffect(Any):Description for dwEffect - -Returns: - - None - - """ - pass - - -class PyIDropTarget(object): - """Interface that acts as a target of OLE drag and drop operations""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DragEnter(self,pDataObj:'Any',grfKeyState:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'Any': - """ - Called when an object is initially dragged into a window - -Args: - - pDataObj(Any):IDataObject interface that contains the object being dragged - grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state - pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor - pdwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted - -Returns: - - Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can - -be accepted - - - """ - pass - - - def DragOver(self,grfKeyState:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'Any': - """ - Called as the dragged object moves over the window - -Args: - - grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state - pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor - pdwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted at the current position - -Returns: - - Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the - -object can be accepted at the current position - - - """ - pass - - - def DragLeave(self,) -> 'None': - """ - Called as the object is dragged back out of the window - -Args: - - - -Returns: - - None - - """ - pass - - - def Drop(self,pDataObj:'Any',grfKeyState:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'Any': - """ - Called when the object is dropped onto the window - -Args: - - pDataObj(Any):IDataObject interface containing the dropped object - grfKeyState(Any):Combination of win32con.MK_* flags containing keyboard modifier state - pt(Tuple[Any, Any]):(x,y) Screen coordinates of cursor - dwEffect(Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values - -Returns: - - Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values - - - """ - pass - - -class PyIDropTargetHelper(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DragEnter(self,hwnd:'int',pDataObj:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'None': - """ - Description of DragEnter. - -Args: - - hwnd(int):Handle to target window - pDataObj(Any):Object that is dragged onto the window - pt(Tuple[Any, Any]):Coordinates where drag operation entered the window - dwEffect(Any):One of shellcon.DROPEFFECT_* values - -Returns: - - None - - """ - pass - - - def DragOver(self,hwnd:'Any',pt:'Tuple[Any, Any]',pdwEffect:'Any') -> 'None': - """ - Description of DragOver. - -Args: - - hwnd(Any): - pt(Tuple[Any, Any]):Description for pt - pdwEffect(Any):Description for pdwEffect - -Returns: - - None - - """ - pass - - - def DragLeave(self,) -> 'None': - """ - Description of DragLeave. - -Args: - - - -Returns: - - None - - """ - pass - - - def Drop(self,pDataObj:'Any',pt:'Tuple[Any, Any]',dwEffect:'Any') -> 'None': - """ - Description of Drop. - -Args: - - pDataObj(Any):Description for pDataObj - pt(Tuple[Any, Any]):Description for pt - dwEffect(Any):Description for dwEffect - -Returns: - - None - - """ - pass - - -class PyIDsObjectPicker(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,targetComputer:'str',scopeInfos:'Any',options:'Any'=0,attrNames:'List[str]'=None) -> 'None': - """ - Initializes the IDsObjectPicker interface with information about the scopes, filters, and options used by the object picker dialog box. - -Args: - - targetComputer(str): - scopeInfos(Any): - options(Any): - attrNames(List[str]): - -Returns: - - None - - """ - pass - - - def InvokeDialog(self,hwnd:'Any') -> 'Any': - """ - Displays a modal object picker dialog box and returns the user's selections. - -Args: - - hwnd(Any): - -Returns: - - Any - - """ - pass - - -class PyIEmptyVolumeCache(object): - """Used for cleaning up temporary file ("disk cleanup")""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIEmptyVolumeCache2(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIEmptyVolumeCacheCallBack(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ScanProgress(self,dwlSpaceUsed:'Any',dwFlags:'Any',pcwszStatus:'Any') -> 'None': - """ - Description of ScanProgress. - -Args: - - dwlSpaceUsed(Any):Description for dwlSpaceUsed - dwFlags(Any):Description for dwFlags - pcwszStatus(Any):Description for pcwszStatus - -Returns: - - None - - """ - pass - - - def PurgeProgress(self,dwlSpaceFreed:'Any',spaceFreed:'Any',spaceToFree:'Any',flags:'Any',status:'Any') -> 'None': - """ - Description of PurgeProgress. - -Args: - - dwlSpaceFreed(Any):Description for dwlSpaceFreed - spaceFreed(Any): - spaceToFree(Any): - flags(Any): - status(Any): - -Returns: - - None - - """ - pass - - -class PyIEnumCATEGORYINFO(object): - """A Python interface to IEnumCATEGORYINFO""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Tuple[Tuple[PyIID, Any, str], ...]': - """ - Retrieves a specified number of items in the - -enumeration sequence. - -Args: - - num(Any):Number of items to retrieve.Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, one for each element returned. - -Returns: - - Tuple[Tuple[PyIID, Any, str], ...]:Number of items to retrieve. -Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, - -one for each element returned. - - - """ - pass - - - def Skip(self,num:'Any') -> 'None': - """ - Skips over the next specified elementes. - -Args: - - num(Any):The number of elements being requested. - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumConnectionPoints(object): - """A Python interface to IEnumConnectionPoints""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': - """ - Retrieves a specified number of items in the - -enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumConnections(object): - """A Python interface to IEnumConnections""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumContextProps(object): - """A Python interface to IEnumContextProps""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Tuple[Tuple[PyIID, Any, Any], ...]': - """ - Retrieves a specified number of items in - -the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve.Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the property value - -Returns: - - Tuple[Tuple[PyIID, Any, Any], ...]:Number of items to retrieve. -Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: - - First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the - -property value - - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumDebugApplicationNodes(object): - """A Python interface to IEnumDebugApplicationNodes""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that - -contains the same enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumDebugCodeContexts(object): - """A Python interface to IEnumDebugCodeContexts""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the - -same enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumDebugExpressionContexts(object): - """A Python interface to IEnumDebugExpressionContexts""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration - -sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that - -contains the same enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumDebugPropertyInfo(object): - """A Python interface to IEnumDebugPropertyInfo""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the - -same enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetCount(self,) -> 'Any': - """ - Obtains the number of items - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumDebugStackFrames(object): - """A Python interface to IEnumDebugStackFrames""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumExplorerCommand(object): - """A Python interface to IEnumExplorerCommand""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumFORMATETC(object): - """A Python interface to IEnumFORMATETC""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration - -state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumGUID(object): - """A Python interface to IEnumGUID""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Tuple[PyIID, ...]': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. - -Returns: - - Tuple[PyIID, ...]:Number of items to retrieve. -Return ValueThe result is a tuple of PyIID objects, - -one for each element returned. Note that if zero elements are returned, it is not considered - -an error condition - an empty tuple is simply returned. - - - """ - pass - - - def Skip(self,num:'Any') -> 'None': - """ - Skips over the next specified elementes. - -Args: - - num(Any):The number of elements being requested. - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration state as - -the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumIDList(object): - """A Python interface to IEnumIDList""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumMoniker(object): - """A Python interface to IEnumMoniker""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. - -Returns: - - Any:Number of items to retrieve. -Return ValueThe result is a tuple of PyIID objects, - -one for each element returned. Note that if zero elements are returned, it is not considered - -an error condition - an empty tuple is simply returned. - - - """ - pass - - - def Skip(self,num:'Any') -> 'None': - """ - Skips over the next specified elementes. - -Args: - - num(Any):The number of elements being requested. - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumObjects(object): - """Iterates through a number of arbitrary interfaces""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,riid:'PyIID',num:'Any'=1) -> 'Tuple[Any, ...]': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - riid(PyIID):The interfaces to return - num(Any):Number of items to retrieve. - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumRemoteDebugApplicationThreads(object): - """A Python interface to IEnumRemoteDebugApplicationThreads""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration - -sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another - -enumerator that contains the same enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumRemoteDebugApplications(object): - """A Python interface to IEnumRemoteDebugApplications""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration - -sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that - -contains the same enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumResources(object): - """A Python interface to IEnumResources""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration - -state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumSTATPROPSETSTG(object): - """A Python interface to IEnumSTATPROPSETSTG""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumSTATPROPSTG(object): - """A Python interface to IEnumSTATPROPSTG""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumSTATSTG(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumShellItems(object): - """A Python interface to IEnumShellItems""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Tuple[Any, ...]': - """ - Retrieves a specified number of items in the enumeration - -sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration - -state as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIEnumString(object): - """An enumerator interface to list strings""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'Any'=1) -> 'Tuple[str, ...]': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(Any):Number of items to retrieve. - -Returns: - - Tuple[str, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIErrorLog(object): - """A Python wrapper for a COM IErrorLog interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddError(self,propName:'str',excepInfo:'Any'=None) -> 'None': - """ - Adds an error to the error log. - -Args: - - propName(str):The name of the error - excepInfo(Any):A COM exception. Must be a complete COM exception (ie, pythoncom.com_error, or win32com.server.exceptions.COMException()) - -Returns: - - None - - """ - pass - - -class PyIExplorerBrowser(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,hwndParent:'Any',prc:'PyRECT',pfs:'Any') -> 'None': - """ - Description of Initialize. - -Args: - - hwndParent(Any):Description for hwndParent - prc(PyRECT):Description for prc - pfs(Any):Description for pfs - -Returns: - - None - - """ - pass - - - def Destroy(self,) -> 'None': - """ - Description of Destroy. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetRect(self,hdwp:'Any',rcBrowser:'PyRECT') -> 'int': - """ - Description of SetRect. - -Args: - - hdwp(Any):Description for phdwp - rcBrowser(PyRECT):Description for rcBrowser - -Returns: - - int - - """ - pass - - - def SetPropertyBag(self,PropertyBag:'Any') -> 'None': - """ - Description of SetPropertyBag. - -Args: - - PropertyBag(Any):Description for pszPropertyBag - -Returns: - - None - - """ - pass - - - def SetEmptyText(self,EmptyText:'Any') -> 'None': - """ - Description of SetEmptyText. - -Args: - - EmptyText(Any):Description for pszEmptyText - -Returns: - - None - - """ - pass - - - def SetFolderSettings(self,pfs:'Any') -> 'None': - """ - Description of SetFolderSettings. - -Args: - - pfs(Any):Description for pfs - -Returns: - - None - - """ - pass - - - def Advise(self,psbe:'Any') -> 'Any': - """ - Description of Advise. - -Args: - - psbe(Any):Description for psbe - -Returns: - - Any - - """ - pass - - - def Unadvise(self,dwCookie:'Any') -> 'None': - """ - Description of Unadvise. - -Args: - - dwCookie(Any):Description for dwCookie - -Returns: - - None - - """ - pass - - - def SetOptions(self,dwFlag:'Any') -> 'None': - """ - Description of SetOptions. - -Args: - - dwFlag(Any):Description for dwFlag - -Returns: - - None - - """ - pass - - - def GetOptions(self,) -> 'Any': - """ - Description of GetOptions. - -Args: - - - -Returns: - - Any - - """ - pass - - - def BrowseToIDList(self,pidl:'Any',uFlags:'Any') -> 'None': - """ - Description of BrowseToIDList. - -Args: - - pidl(Any):Description for pidl - uFlags(Any):Description for uFlags - -Returns: - - None - - """ - pass - - - def BrowseToObject(self,punk:'Any',uFlags:'Any') -> 'None': - """ - Description of BrowseToObject. - -Args: - - punk(Any):Description for punk - uFlags(Any):Description for uFlags - -Returns: - - None - - """ - pass - - - def FillFromObject(self,punk:'Any',dwFlags:'Any') -> 'None': - """ - Description of FillFromObject. - -Args: - - punk(Any):Description for punk - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def RemoveAll(self,) -> 'None': - """ - Description of RemoveAll. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurrentView(self,riid:'PyIID') -> 'Any': - """ - Description of GetCurrentView. - -Args: - - riid(PyIID):Description for riid - -Returns: - - Any - - """ - pass - - -class PyIExplorerBrowserEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnNavigationPending(self,pidlFolder:'Any') -> 'None': - """ - Description of OnNavigationPending. - -Args: - - pidlFolder(Any):Description for pidlFolder - -Returns: - - None - - """ - pass - - - def OnViewCreated(self,psv:'Any') -> 'None': - """ - Description of OnViewCreated. - -Args: - - psv(Any):Description for psv - -Returns: - - None - - """ - pass - - - def OnNavigationComplete(self,pidlFolder:'Any') -> 'None': - """ - Description of OnNavigationComplete. - -Args: - - pidlFolder(Any):Description for pidlFolder - -Returns: - - None - - """ - pass - - - def OnNavigationFailed(self,pidlFolder:'Any') -> 'None': - """ - Description of OnNavigationFailed. - -Args: - - pidlFolder(Any):Description for pidlFolder - -Returns: - - None - - """ - pass - - -class PyIExplorerCommand(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetTitle(self,psiItemArray:'Any') -> 'Any': - """ - Description of GetTitle. - -Args: - - psiItemArray(Any):Description for psiItemArray - -Returns: - - Any - - """ - pass - - - def GetIcon(self,psiItemArray:'Any') -> 'Any': - """ - Description of GetIcon. - -Args: - - psiItemArray(Any):Description for psiItemArray - -Returns: - - Any - - """ - pass - - - def GetToolTip(self,psiItemArray:'Any') -> 'Any': - """ - Description of GetToolTip. - -Args: - - psiItemArray(Any):Description for psiItemArray - -Returns: - - Any - - """ - pass - - - def GetCanonicalName(self,) -> 'PyIID': - """ - Description of GetCanonicalName. - -Args: - - - -Returns: - - PyIID - - """ - pass - - - def GetState(self,psiItemArray:'Any',fOkToBeSlow:'Any') -> 'Any': - """ - Description of GetState. - -Args: - - psiItemArray(Any):Description for psiItemArray - fOkToBeSlow(Any):Description for fOkToBeSlow - -Returns: - - Any - - """ - pass - - - def Invoke(self,psiItemArray:'Any',pbc:'Any') -> 'None': - """ - Description of Invoke. - -Args: - - psiItemArray(Any):Description for psiItemArray - pbc(Any):Description for pbc - -Returns: - - None - - """ - pass - - - def GetFlags(self,) -> 'Any': - """ - Description of GetFlags. - -Args: - - - -Returns: - - Any - - """ - pass - - - def EnumSubCommands(self,) -> 'Any': - """ - Description of EnumSubCommands. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIExplorerCommandProvider(object): - """This is a gateway only interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIExplorerPaneVisibility(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIExternalConnection(object): - """A Python wrapper for a COM IExternalConnection interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddConnection(self,extconn:'Any',reserved:'Any'=0) -> 'Any': - """ - Increments an object's count of its strong external connections - -(links). - -Args: - - extconn(Any):Type of external connection to the object. The only type of external connection currently supported by this interface is strong, which means that the object must remain alive as long as this external connection exists. Strong external connections are represented by the value EXTCONN_STRONG = 0x0001, which is defined in the enumeration EXTCON - reserved(Any):A reserved parameterReturn ValueThe result is the number of reference counts on the object; used for debugging purposes only. - -Returns: - - Any:A reserved parameter -Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. - - - """ - pass - - - def ReleaseConnection(self,extconn:'Any',reserved:'Any',fLastReleaseCloses:'Any') -> 'Any': - """ - Decrements an object's count of its strong external connections - -(references). - -Args: - - extconn(Any):Type of external connection - reserved(Any):A reserved parameter. - fLastReleaseCloses(Any):TRUE specifies that if the connection being released is the last external lock on the object, the object should close. FALSE specifies that the object should remain open until closed by the user or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. - -Returns: - - Any:TRUE specifies that if the connection being released is the last external lock on - -the object, the object should close. FALSE specifies that the object should remain open until closed by the user - -or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. - - - """ - pass - - -class PyIExtractIcon(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Extract(self,pszFile:'Any',nIconIndex:'Any',nIconSize:'Any') -> 'None': - """ - Description of Extract. - -Args: - - pszFile(Any):Description for pszFile - nIconIndex(Any):Description for nIconIndex - nIconSize(Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. - -Returns: - - None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or - -(None,None) if the underlying function returns S_FALSE, indicating - -the calling application should extract it. - - - """ - pass - - - def GetIconLocation(self,uFlags:'Any',cchMax:'Any') -> 'None': - """ - Description of GetIconLocation. - -Args: - - uFlags(Any):Description for uFlags - cchMax(Any):Buffer size to allocate for file name - -Returns: - - None - - """ - pass - - -class PyIExtractIconW(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Extract(self,pszFile:'Any',nIconIndex:'Any',nIconSize:'Any') -> 'None': - """ - Description of Extract. - -Args: - - pszFile(Any):Description for pszFile - nIconIndex(Any):Description for nIconIndex - nIconSize(Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. - -Returns: - - None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or - -(None,None) if the underlying function returns S_FALSE, indicating - -the calling application should extract it. - - - """ - pass - - - def GetIconLocation(self,uFlags:'Any',cchMax:'Any') -> 'None': - """ - Description of GetIconLocation. - -Args: - - uFlags(Any):Description for uFlags - cchMax(Any):Buffer size to allocate for file name - -Returns: - - None - - """ - pass - - -class PyIExtractImage(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLocation(self,dwPriority:'Any',size:'Tuple[Any, Any]',dwRecClrDepth:'Any',pdwFlags:'Any') -> 'None': - """ - Description of GetLocation. - -Args: - - dwPriority(Any):Description for dwPriority - size(Tuple[Any, Any]):Description for prgSize - dwRecClrDepth(Any):Description for dwRecClrDepth - pdwFlags(Any):Description for pdwFlags - -Returns: - - None - - """ - pass - - - def Extract(self,) -> 'None': - """ - Description of Extract. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIFileOperation(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Advise(self,Sink:'Any') -> 'Any': - """ - Connects an event sink to receive updates - -Args: - - Sink(Any):Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect - -Returns: - - Any:Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect - - - """ - pass - - - def Unadvise(self,Cookie:'Any') -> 'None': - """ - Disconnects a progress sink - -Args: - - Cookie(Any):Identifies the sink to disconnect, as returned by PyIFileOperation::Advise - -Returns: - - None - - """ - pass - - - def SetOperationFlags(self,OperationFlags:'Any') -> 'None': - """ - Sets option flags for the operation - -Args: - - OperationFlags(Any):Combination of shellcon.FOF_* and FOFX_* flags - -Returns: - - None - - """ - pass - - - def SetProgressMessage(self,Message:'Any') -> 'None': - """ - Not implemented. - -Args: - - Message(Any):Description for Message - -Returns: - - None - - """ - pass - - - def SetProgressDialog(self,popd:'Any') -> 'None': - """ - Provides an interface used to display a progress dialog - -Args: - - popd(Any):Progress dialog interfaceCommentsIOperationsProgressDialog is not yet supported - -Returns: - - None - - """ - pass - - - def SetProperties(self,proparray:'Any') -> 'None': - """ - Specifies a set of properties to be changed. - -Args: - - proparray(Any):Sequence of property changes to be performed (see propsys::PSCreatePropertyChangeArray)CommentsNote that these properties will be set for *any* files created by the operation, not just items passed to ApplyPropertiesToItem(s). New items created as the result of a rename, copy, or move must have a property handler, or the operation fails with the vague com_error: (-2147467259, 'Unspecified error', None, None) (E_FAIL, or 0x80004005 in hex) even though the given file operation was actually performed. - -Returns: - - None - - """ - pass - - - def SetOwnerWindow(self,Owner:'int') -> 'None': - """ - Sets the parent window for any UI displayed. - -Args: - - Owner(int):Handle to parent window - -Returns: - - None - - """ - pass - - - def ApplyPropertiesToItem(self,Item:'Any') -> 'None': - """ - Specifies the item that will receive property changes - -Args: - - Item(Any):The item to which property changes will be applied - -Returns: - - None - - """ - pass - - - def ApplyPropertiesToItems(self,Items:'Any') -> 'None': - """ - Specifies multiple items that will receive property changes - -Args: - - Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the target items - -Returns: - - None - - """ - pass - - - def RenameItem(self,Item:'Any',NewName:'Any',Sink:'Any'=None) -> 'None': - """ - Adds a rename to the operation sequence - -Args: - - Item(Any):The item to be renamed - NewName(Any):The new name - Sink(Any):Progress sink for this operation only. - -Returns: - - None - - """ - pass - - - def RenameItems(self,pUnkItems:'Any',NewName:'Any') -> 'None': - """ - Adds multiple renames to the operation sequence - -Args: - - pUnkItems(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be renamed - NewName(Any):New name for all items. Collisions handled automatically. - -Returns: - - None - - """ - pass - - - def MoveItem(self,Item:'Any',DestinationFolder:'Any',pszNewName:'Any'=None,Sink:'Any'=None) -> 'None': - """ - Adds a move operation to the configuration - -Args: - - Item(Any):The item to be moved - DestinationFolder(Any):The folder into which it will be moved - pszNewName(Any):Name to be given to moved item, use None to keep original name - Sink(Any):Progress sink to receive notification for just this operation - -Returns: - - None - - """ - pass - - - def MoveItems(self,Items:'Any',DestinationFolder:'Any') -> 'None': - """ - Adds multiple move operations to the configuration - -Args: - - Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be moved - DestinationFolder(Any):Folder into which all items will be moved - -Returns: - - None - - """ - pass - - - def CopyItem(self,Item:'Any',DestinationFolder:'Any',CopyName:'Any'=None,Sink:'Any'=None) -> 'None': - """ - Adds a copy operation to the configuration - -Args: - - Item(Any):Item to be copied - DestinationFolder(Any):Folder into which it will be copied - CopyName(Any):New name for the copied file, use None to keep original name - Sink(Any):Progress sink for just this operation - -Returns: - - None - - """ - pass - - - def CopyItems(self,Items:'Any',DestinationFolder:'Any') -> 'None': - """ - Adds multiple copy operations to the configuration - -Args: - - Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be copied - DestinationFolder(Any):Folder into which they will be copied - -Returns: - - None - - """ - pass - - - def DeleteItem(self,Item:'Any',Sink:'Any'=None) -> 'None': - """ - Adds a delete operation to the configuration - -Args: - - Item(Any):Description for psiItem - Sink(Any):Progress sink for just this operation - -Returns: - - None - - """ - pass - - - def DeleteItems(self,Items:'Any') -> 'None': - """ - Adds multiple delete operations to the configuration - -Args: - - Items(Any):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be deleted - -Returns: - - None - - """ - pass - - - def NewItem(self,DestinationFolder:'Any',FileAttributes:'Any',Name:'Any',TemplateName:'Any'=None,Sink:'Any'=None) -> 'None': - """ - Creates a new file as part of the operation - -Args: - - DestinationFolder(Any):Folder in which to create the file - FileAttributes(Any):Combination of win32con.FILE_ATTRIBUTE_* flags - Name(Any):Name of the new file - TemplateName(Any):Template file used to initialize the new file - Sink(Any):Progress sink for just this operation - -Returns: - - None - - """ - pass - - - def PerformOperations(self,) -> 'None': - """ - Effects all configured file system modifications - -Args: - - - -Returns: - - None - - """ - pass - - - def GetAnyOperationsAborted(self,) -> 'Any': - """ - Determines if any operations were terminated - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIIdentityName(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIInitializeWithFile(object): - """Initializes a property handler that requires a file path instead of a stream""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,FilePath:'Any',Mode:'Any') -> 'None': - """ - Passes a file path to a property handler on startup - -Args: - - FilePath(Any):Full path to the file whose properties are to be accessed - Mode(Any):Indicates if properties can be written, STGM_READ or STGM_READWRITE - -Returns: - - None - - """ - pass - - -class PyIInitializeWithStream(object): - """Interface that initializes a handler capable of reading properties from a stream""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,Stream:'Any',Mode:'Any') -> 'None': - """ - Initializes a property handler with a stream - -Args: - - Stream(Any):Stream containing the contents from which to extract properties - Mode(Any):Indicates if stream is writable, STGM_READ or STGM_READWRITE - -Returns: - - None - - """ - pass - - -class PyIInputObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def TranslateAccelerator(self,pmsg:'Any') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - pmsg(Any):Description for pmsg - -Returns: - - None - - """ - pass - - - def UIActivate(self,uState:'Any') -> 'None': - """ - Description of UIActivate. - -Args: - - uState(Any):Description for uState - -Returns: - - None - - """ - pass - - - def HasFocusIO(self,) -> 'None': - """ - Description of Refresh. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetBindInfo(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetBindInfo(self,) -> 'None': - """ - Description of GetBindInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetBindString(self,) -> 'None': - """ - Description of GetBindString. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetPriority(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetPriority(self,nPriority:'Any') -> 'None': - """ - Description of SetPriority. - -Args: - - nPriority(Any):Description for nPriority - -Returns: - - None - - """ - pass - - - def GetPriority(self,) -> 'None': - """ - Description of GetPriority. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetProtocol(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Read(self,cb:'Any') -> 'None': - """ - Description of Read. - -Args: - - cb(Any):Description for cb - -Returns: - - None - - """ - pass - - - def Seek(self,dlibMove:'LARGE_INTEGER',dwOrigin:'Any') -> 'None': - """ - Description of Seek. - -Args: - - dlibMove(LARGE_INTEGER):Description for dlibMove - dwOrigin(Any):Description for dwOrigin - -Returns: - - None - - """ - pass - - - def LockRequest(self,dwOptions:'Any') -> 'None': - """ - Description of LockRequest. - -Args: - - dwOptions(Any):Description for dwOptions - -Returns: - - None - - """ - pass - - - def UnlockRequest(self,) -> 'None': - """ - Description of UnlockRequest. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetProtocolInfo(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ParseUrl(self,pwzUrl:'Any',ParseAction:'Any',dwParseFlags:'Any',cchResult:'Any',dwReserved:'Any') -> 'None': - """ - Description of ParseUrl. - -Args: - - pwzUrl(Any):Description for pwzUrl - ParseAction(Any):Description for ParseAction - dwParseFlags(Any):Description for dwParseFlags - cchResult(Any):Description for cchResult - dwReserved(Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def CombineUrl(self,pwzBaseUrl:'Any',pwzRelativeUrl:'Any',dwCombineFlags:'Any',cchResult:'Any',dwReserved:'Any') -> 'None': - """ - Description of CombineUrl. - -Args: - - pwzBaseUrl(Any):Description for pwzBaseUrl - pwzRelativeUrl(Any):Description for pwzRelativeUrl - dwCombineFlags(Any):Description for dwCombineFlags - cchResult(Any):Description for cchResult - dwReserved(Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def CompareUrl(self,pwzUrl1:'Any',pwzUrl2:'Any',dwCompareFlags:'Any') -> 'None': - """ - Description of CompareUrl. - -Args: - - pwzUrl1(Any):Description for pwzUrl1 - pwzUrl2(Any):Description for pwzUrl2 - dwCompareFlags(Any):Description for dwCompareFlags - -Returns: - - None - - """ - pass - - - def QueryInfo(self,pwzUrl:'Any',OueryOption:'Any',dwQueryFlags:'Any',cbBuffer:'Any',dwReserved:'Any') -> 'Any': - """ - Description of QueryInfo. - -Args: - - pwzUrl(Any):Description for pwzUrl - OueryOption(Any):Description for OueryOption - dwQueryFlags(Any):Description for dwQueryFlags - cbBuffer(Any):Description for cbBuffer - dwReserved(Any):Description for dwReservedCommentsIf the buffer size is the size of an integer, an integer will be returned, otherwise a string. - -Returns: - - Any - - """ - pass - - -class PyIInternetProtocolRoot(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Start(self,szUrl:'Any',pOIProtSink:'Any',pOIBindInfo:'Any',grfPI:'Any',dwReserved:'Any') -> 'None': - """ - Description of Start. - -Args: - - szUrl(Any):Description for szUrl - pOIProtSink(Any):Description for pOIProtSink - pOIBindInfo(Any):Description for pOIBindInfo - grfPI(Any):Description for grfPI - dwReserved(Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def Continue(self,) -> 'None': - """ - Description of Continue. - -Args: - - - -Returns: - - None - - """ - pass - - - def Abort(self,hrReason:'Any',dwOptions:'Any') -> 'None': - """ - Description of Abort. - -Args: - - hrReason(Any):Description for hrReason - dwOptions(Any):Description for dwOptions - -Returns: - - None - - """ - pass - - - def Terminate(self,dwOptions:'Any') -> 'None': - """ - Description of Terminate. - -Args: - - dwOptions(Any):Description for dwOptions - -Returns: - - None - - """ - pass - - - def Suspend(self,) -> 'None': - """ - Description of Suspend. - -Args: - - - -Returns: - - None - - """ - pass - - - def Resume(self,) -> 'None': - """ - Description of Resume. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetProtocolSink(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Switch(self,) -> 'None': - """ - Description of Switch. - -Args: - - - -Returns: - - None - - """ - pass - - - def ReportProgress(self,ulStatusCode:'Any',szStatusText:'Any') -> 'None': - """ - Description of ReportProgress. - -Args: - - ulStatusCode(Any):Description for ulStatusCode - szStatusText(Any):Description for szStatusText - -Returns: - - None - - """ - pass - - - def ReportData(self,grfBSCF:'Any',ulProgress:'Any',ulProgressMax:'Any') -> 'None': - """ - Description of ReportData. - -Args: - - grfBSCF(Any):Description for grfBSCF - ulProgress(Any):Description for ulProgress - ulProgressMax(Any):Description for ulProgressMax - -Returns: - - None - - """ - pass - - - def ReportResult(self,hrResult:'Any',dwError:'Any',szResult:'Any') -> 'None': - """ - Description of ReportResult. - -Args: - - hrResult(Any):Description for hrResult - dwError(Any):Description for dwError - szResult(Any):Description for szResult - -Returns: - - None - - """ - pass - - -class PyIInternetSecurityManager(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetSecuritySite(self,pSite:'Any') -> 'None': - """ - Description of SetSecuritySite. - -Args: - - pSite(Any):Description for pSite - -Returns: - - None - - """ - pass - - - def GetSecuritySite(self,) -> 'None': - """ - Description of GetSecuritySite. - -Args: - - - -Returns: - - None - - """ - pass - - - def MapUrlToZone(self,pwszUrl:'Any',dwFlags:'Any') -> 'None': - """ - Description of MapUrlToZone. - -Args: - - pwszUrl(Any):Description for pwszUrl - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def GetSecurityId(self,pwszUrl:'Any',pcbSecurityId:'Any') -> 'None': - """ - Description of GetSecurityId. - -Args: - - pwszUrl(Any):Description for pwszUrl - pcbSecurityId(Any):Description for pcbSecurityId - -Returns: - - None - - """ - pass - - - def ProcessUrlAction(self,pwszUrl:'Any',dwAction:'Any',context:'Any',dwFlags:'Any') -> 'None': - """ - Description of ProcessUrlAction. - -Args: - - pwszUrl(Any):Description for pwszUrl - dwAction(Any):Description for dwAction - context(Any): - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def SetZoneMapping(self,dwZone:'Any',lpszPattern:'Any',dwFlags:'Any') -> 'None': - """ - Description of SetZoneMapping. - -Args: - - dwZone(Any):Description for dwZone - lpszPattern(Any):Description for lpszPattern - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def GetZoneMappings(self,dwZone:'Any',dwFlags:'Any') -> 'None': - """ - Description of GetZoneMappings. - -Args: - - dwZone(Any):Description for dwZone - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - -class PyIKnownFolder(object): - """Interface representing a known folder that serves - -as a replacement for the numeric CSIDL definitions and API functions. - -Requires Vista or later.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetId(self,) -> 'PyIID': - """ - Returns the id of the folder - -Args: - - - -Returns: - - PyIID - - """ - pass - - - def GetCategory(self,) -> 'Any': - """ - Returns the category for a folder (shellcon.KF_CATEGORY_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetShellItem(self,riid:'PyIID',Flags:'Any'=0) -> 'Any': - """ - Returns a shell interface for the folder - -Args: - - riid(PyIID):The interface to return (IShellItem or IShellItem2) - Flags(Any):Combination of shellcon.KF_FLAG_* values - -Returns: - - Any - - """ - pass - - - def GetPath(self,Flags:'Any'=0) -> 'Any': - """ - Returns the path to the folder - -Args: - - Flags(Any):Combination of shellcon.KF_FLAG_* flags controlling how the path is returned - -Returns: - - Any - - """ - pass - - - def SetPath(self,Flags:'Any',Path:'Any') -> 'None': - """ - Changes the location of the folder - -Args: - - Flags(Any):KF_FLAG_DONT_UNEXPAND, or 0 - Path(Any):New path for known folder - -Returns: - - None - - """ - pass - - - def GetIDList(self,Flags:'Any') -> 'Any': - """ - Returns the folder's location as an item id list. - -Args: - - Flags(Any):Combination of shellcon.KF_FLAG_* values that affect how the operation is performed - -Returns: - - Any - - """ - pass - - - def GetFolderType(self,) -> 'PyIID': - """ - Returns the type of the folder - -Args: - - - -Returns: - - PyIID:PyIKnownFolder.GetFolderType -PyIID = GetFolderType()Returns the type of the folder -Return ValueReturns a folder type guid (shell.FOLDERTYPEID_*) - - - """ - pass - - - def GetRedirectionCapabilities(self,) -> 'Any': - """ - Returns flags indicating how the folder can be redirected - -Args: - - - -Returns: - - Any:PyIKnownFolder.GetRedirectionCapabilities - -int = GetRedirectionCapabilities()Returns flags indicating how the folder can be redirected -Return ValueCombination of shellcon.KF_REDIRECTION_CAPABILITIES_* flags - - - """ - pass - - - def GetFolderDefinition(self,) -> 'Any': - """ - Retrieves detailed information about a known folder - -Args: - - - -Returns: - - Any:PyIKnownFolder.GetFolderDefinition - -dict = GetFolderDefinition()Retrieves detailed information about a known folder -Return ValueReturns a dict containing info from a KNOWNFOLDER_DEFINITION struct - - - """ - pass - - -class PyIKnownFolderManager(object): - """Interface used to manage known folder definitions.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def FolderIdFromCsidl(self,Csidl:'Any') -> 'PyIID': - """ - Returns the folder id that corresponds to a CSIDL - -Args: - - Csidl(Any):The legacy CSIDL identifying a folder - -Returns: - - PyIID - - """ - pass - - - def FolderIdToCsidl(self,_id:'PyIID') -> 'Any': - """ - Returns the CSIDL equivalent of a known folder - -Args: - - _id(PyIID):A known folder id (shell.FOLDERID_*) - -Returns: - - Any - - """ - pass - - - def GetFolderIds(self,) -> 'Tuple[PyIID, ...]': - """ - Retrieves all known folder ids. - -Args: - - - -Returns: - - Tuple[PyIID, ...] - - """ - pass - - - def GetFolder(self,_id:'PyIID') -> 'Any': - """ - Returns a folder by its id. - -Args: - - _id(PyIID):A known folder id (shell.FOLDERID_*) - -Returns: - - Any - - """ - pass - - - def GetFolderByName(self,Name:'Any') -> 'Any': - """ - Returns a folder by canonical name - -Args: - - Name(Any):The nonlocalized name of a known folder - -Returns: - - Any - - """ - pass - - - def RegisterFolder(self,_id:'PyIID',Definition:'Any') -> 'None': - """ - Defines a new known folder - -Args: - - _id(PyIID):GUID used to identify the new known folder - Definition(Any):Dictionary containing info to be placed in a KNOWNFOLDER_DEFINITION structCommentsPyIKnownFolder::GetFolderDefinition can be used to get a template dictionary - -Returns: - - None - - """ - pass - - - def UnregisterFolder(self,_id:'PyIID') -> 'None': - """ - Removes the definition of a known folder - -Args: - - _id(PyIID):GUID of a known folder to be unregistered - -Returns: - - None - - """ - pass - - - def FindFolderFromPath(self,Path:'Any',Mode:'Any') -> 'Any': - """ - Retrieves a known folder by path - -Args: - - Path(Any):Path of a folder - Mode(Any):FFFP_EXACTMATCH or FFFP_NEARESTPARENTMATCH - -Returns: - - Any - - """ - pass - - - def FindFolderFromIDList(self,pidl:'Any') -> 'Any': - """ - Retrieves a known folder using its item id - -list. - -Args: - - pidl(Any):Item id list of the folder - -Returns: - - Any - - """ - pass - - - def Redirect(self,_id:'PyIID',hwnd:'int',flags:'Any',TargetPath:'Any',Exclusion:'Tuple[PyIID, ...]') -> 'None': - """ - Redirects a known folder to an alternate location - -Args: - - _id(PyIID):Id of the known folder to be redirected - hwnd(int):Handle of window to be used for user interaction - flags(Any):Combination of KF_REDIRECT_* flags - TargetPath(Any):Path to which the known folder will be redirected - Exclusion(Tuple[PyIID, ...]):Sequence of known folder ids of subfolders to be excluded from redirection - -Returns: - - None - - """ - pass - - -class PyILockBytes(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ReadAt(self,ulOffset:'ULARGE_INTEGER',cb:'Any') -> 'str': - """ - Reads a specified number of bytes starting at a specified offset from the - -beginning of the byte array object. - -Args: - - ulOffset(ULARGE_INTEGER):Offset to start reading - cb(Any):Number of bytes to readCommentsThe result is a binary buffer returned in a string. - -Returns: - - str - - """ - pass - - - def WriteAt(self,ulOffset:'ULARGE_INTEGER',data:'str') -> 'Any': - """ - Writes the specified number of bytes starting at a specified offset from the - -beginning of the byte array. - -Args: - - ulOffset(ULARGE_INTEGER):Offset to write at. - data(str):Data to writeReturn ValueThe result is the number of bytes actually written. - -Returns: - - Any:Data to writeReturn ValueThe result is the number of bytes actually written. - - - """ - pass - - - def Flush(self,) -> 'None': - """ - Ensures that any internal buffers maintained by the byte array object are written out - -to the backing storage. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetSize(self,cb:'ULARGE_INTEGER') -> 'None': - """ - Changes the size of the byte array. - -Args: - - cb(ULARGE_INTEGER):The new size. - -Returns: - - None - - """ - pass - - - def LockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'Any') -> 'None': - """ - Restricts access to a specified range of bytes in the byte array. - -Args: - - libOffset(ULARGE_INTEGER):The beginning of the region to lock. - cb(ULARGE_INTEGER):The number of bytes to lock. - dwLockType(Any):Specifies the restrictions being requested on accessing the range. - -Returns: - - None - - """ - pass - - - def UnlockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'Any') -> 'None': - """ - None - -Args: - - libOffset(ULARGE_INTEGER):The beginning of the region to unlock. - cb(ULARGE_INTEGER):The number of bytes to lock. - dwLockType(Any):Specifies the restrictions being requested on accessing the range. - -Returns: - - None - - """ - pass - - - def Stat(self,grfStatFlag:'Any') -> 'Any': - """ - None - -Args: - - grfStatFlag(Any):Specifies that this method does not return some of the fields in the STATSTG structure, thus saving a memory allocation operation. Values are taken from the STATFLAG enumerationg - -Returns: - - Any - - """ - pass - - -class PyIMAPIContainer(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': - """ - Opens an object and returns an interface object for further access. - -Args: - - entryId(str):The EntryID to open. - iid(PyIID):The IID of the returned interface, or None for the default interface. - flags(Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) - -Returns: - - Any - - """ - pass - - - def GetContentsTable(self,flags:'Any') -> 'Any': - """ - Returns an object representing the container's contents table. - -Args: - - flags(Any):The flags to use. - -Returns: - - Any - - """ - pass - - - def GetHierarchyTable(self,flags:'Any') -> 'Any': - """ - Returns an object representing the container's hierarchy table. - -Args: - - flags(Any):The flags to use. - -Returns: - - Any - - """ - pass - - -class PyIMAPIFolder(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': - """ - Returns the last error code for the object. - -Args: - - hr(Any):Contains the error code generated in the previous method call. - flags(Any):Indicates for format for the output. - -Returns: - - Any - - """ - pass - - - def CreateFolder(self,folderType:'Any',folderName:'str',folderComment:'str'=None,iid:'PyIID'=None,flags:'Any'=0) -> 'Any': - """ - Creates a folder object. - -Args: - - folderType(Any):The type of folder to create - folderName(str):The name of the folder. - folderComment(str):A comment for the folder or None - iid(PyIID):The IID of the object to return. Should usually be None. - flags(Any): - -Returns: - - Any - - """ - pass - - - def CreateMessage(self,iid:'PyIID',flags:'Any') -> 'Any': - """ - Creates a message in a folder - -Args: - - iid(PyIID):The IID of the object to return. Should usually be None. - flags(Any): - -Returns: - - Any - - """ - pass - - - def CopyMessages(self,msgs:'Any',iid:'PyIID',folder:'Any',ulUIParam:'Any',progress:'Any',flags:'Any') -> 'Any': - """ - Copies the specified messages - -Args: - - msgs(Any): - iid(PyIID):IID representing the interface to be used to access the destination folder. Should usually be None. - folder(Any):The destination folder - ulUIParam(Any):Handle of the parent window for any dialog boxes or windows this method displays. - progress(Any):A progress object, or None - flags(Any):A bitmask ofMaskDescriptionMAPI_DECLINE_OKInforms the message store provider to immediately return MAPI_E_DECLINE_COPY if it implements CopyMessage by calling the support object's IMAPISupport::DoCopyTo or IMAPISupport::DoCopyProps method.MESSAGE_DIALOGDisplays a progress indicator as the operation proceeds.MESSAGE_MOVEThe message or messages are to be moved rather than copied. If MESSAGE_MOVE is not set, the messages are copied. - -Returns: - - Any - - """ - pass - - - def DeleteFolder(self,entryId:'str',uiParam:'Any',progress:'Any') -> 'None': - """ - Deletes a subfolder. - -Args: - - entryId(str):The EntryID of the subfolder to delete. - uiParam(Any):Handle of the parent window of the progress indicator. - progress(Any):A progress object, or None - -Returns: - - None - - """ - pass - - - def DeleteMessages(self,msgs:'Any',uiParam:'Any',progress:'Any',flags:'Any') -> 'Any': - """ - Deletes the specified messages. - -Args: - - msgs(Any): - uiParam(Any):A HWND for the progress - progress(Any):A progress object, or None - flags(Any): - -Returns: - - Any - - """ - pass - - - def EmptyFolder(self,uiParam:'Any',progress:'Any',flags:'Any') -> 'Any': - """ - deletes all messages and subfolders from a folder without deleting the folder itself. - -Args: - - uiParam(Any):A HWND for the progress - progress(Any):A progress object, or None - flags(Any): - -Returns: - - Any - - """ - pass - - - def SetReadFlags(self,msgs:'Any',uiParam:'Any',progress:'Any',flag:'Any') -> 'None': - """ - Sets or clears the MSGFLAG_READ flag in the PR_MESSAGE_FLAGS (PidTagMessageFlags) property of one or more of the folder's messages, and manages the sending of read reports. - -Args: - - msgs(Any): - uiParam(Any):A HWND for the progress - progress(Any):A progress object, or None - flag(Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. - -Returns: - - None - - """ - pass - - -class PyIMAPIProp(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetProps(self,propList:'Any',flags:'Any'=0) -> 'Tuple[Any, Any, Any]': - """ - Returns a list of property values. - -Args: - - propList(Any):The list of properties - flags(Any): - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def DeleteProps(self,propList:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': - """ - Deletes a set of properties. - -Args: - - propList(Any):The list of properties - wantProblems(Any):Return detailed error information - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def SetProps(self,propList:'Tuple[Any, Any]',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': - """ - Sets a set of properties. - -Args: - - propList(Tuple[Any, Any]):The list of properties - wantProblems(Any):Return detailed error information - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def CopyTo(self,IIDExcludeList:'Tuple[Any, Any]',propTags:'Any',uiParam:'Any',progress:'Any',resultIID:'PyIID',dest:'Any',flags:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': - """ - Copies an object to another - -Args: - - IIDExcludeList(Tuple[Any, Any]):A sequence of IIDs to exclude. - propTags(Any):The property tags to exclude. - uiParam(Any):Handle to the parent window of the progress object - progress(Any):Reserved - must pass None - resultIID(PyIID):IID of the destination object - dest(Any):The destination object - flags(Any):flags - wantProblems(Any):Return detailed error information - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def CopyProps(self,propTags:'Any',uiParam:'Any',progress:'Any',resultIID:'PyIID',dest:'Any',flags:'Any',wantProblems:'Any'=False) -> 'Tuple[Any, Any, Any]': - """ - Copies a set of properties to another object - -Args: - - propTags(Any):The property tags to copy - uiParam(Any):Handle to the parent window of the progress object - progress(Any):Reserved - must pass None - resultIID(PyIID):IID of the destination object - dest(Any):The destination object - flags(Any):flags - wantProblems(Any):Return detailed error information - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def OpenProperty(self,propTag:'Any',iid:'PyIID',interfaceOptions:'Any',flags:'Any') -> 'Any': - """ - Returns an interface object to be used to access a property. - -Args: - - propTag(Any):The property tag to open - iid(PyIID):The IID of the resulting interface. - interfaceOptions(Any):Data that relates to the interface identified by the lpiid parameter. - flags(Any):flags - -Returns: - - Any - - """ - pass - - - def GetIDsFromNames(self,nameIds:'Any',flags:'Any'=0) -> 'Any': - """ - Determines property IDs - -Args: - - nameIds(Any):Sequence of name ids - flags(Any): - -Returns: - - Any - - """ - pass - - - def GetNamesFromIDs(self,propTags:'Any',propSetGuid:'PyIID'=None,flags:'Any'=0) -> 'Tuple[Any, Any, Any]': - """ - Determines property names - -Args: - - propTags(Any):Sequence of property tags, or None - propSetGuid(PyIID):a globally unique identifier, identifying a property set, or None - flags(Any): - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': - """ - Returns the last error code for the object. - -Args: - - hr(Any):Contains the error code generated in the previous method call. - flags(Any):Indicates for format for the output. - -Returns: - - Any - - """ - pass - - - def SaveChanges(self,flags:'Any') -> 'None': - """ - Saves pending changes to the object - -Args: - - flags(Any):flags - -Returns: - - None - - """ - pass - - - def GetPropList(self,flags:'Any') -> 'Any': - """ - Gets a list of properties - -Args: - - flags(Any):flags - -Returns: - - Any - - """ - pass - - -class PyIMAPISession(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': - """ - Opens an object and returns an interface object for further access. - -Args: - - entryId(str):The EntryID to open. - iid(PyIID):The IID of the returned interface, or None for the default interface. - flags(Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) - -Returns: - - Any - - """ - pass - - - def OpenMsgStore(self,uiParam:'Any',entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': - """ - Opens a message store. - -Args: - - uiParam(Any):Handle to the parent window for dialogs. - entryId(str):The entry ID of the message store to open. - iid(PyIID):The IID of the interface returned, or None - flags(Any):Options for the call.CommentsThe result is the interface specified by the IID, or IID_IMsgStore if None is used. - -Returns: - - Any - - """ - pass - - - def QueryIdentity(self,) -> 'str': - """ - Returns the entry identifier of the object that provides the primary identity for the session. - -Args: - - - -Returns: - - str - - """ - pass - - - def Advise(self,entryId:'str',mask:'Any',sink:'Any') -> 'Any': - """ - None - -Args: - - entryId(str):The entryID of the object - mask(Any): - sink(Any):Return ValueThe result is an integer which should be passed to PyIMAPISession::Unadvise - -Returns: - - Any:Return ValueThe result is an integer which should be passed to - -PyIMAPISession::Unadvise - - - """ - pass - - - def Unadvise(self,connection:'Any') -> 'None': - """ - None - -Args: - - connection(Any):Value returned from PyIMAPISession::Advise - -Returns: - - None - - """ - pass - - - def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': - """ - Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object - -Args: - - entryId(str):The first entry ID to be compared - entryId1(str):The second entry ID to be compared - flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - -Returns: - - Any:Reserved - must be zero. -Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - - - """ - pass - - - def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': - """ - Returns the last error code for the object. - -Args: - - hr(Any):Contains the error code generated in the previous method call. - flags(Any):Indicates for format for the output. - -Returns: - - Any - - """ - pass - - - def GetMsgStoresTable(self,flags:'Any') -> 'Any': - """ - Provides access to the message store table - a table with information about all of the message stores in the session profile. - -Args: - - flags(Any):Flags that control the opening. - -Returns: - - Any - - """ - pass - - - def GetStatusTable(self,flags:'Any') -> 'Any': - """ - Provides access to the status table - a table with information about all of the MAPI resources in the session. - -Args: - - flags(Any):Flags that control the opening. - -Returns: - - Any - - """ - pass - - - def Logoff(self,uiParm:'Any',flags:'Any',reserved:'Any') -> 'None': - """ - Ends a MAPI session. - -Args: - - uiParm(Any):hwnd of a dialog is to be displayed. - flags(Any):Bitmask of flags that control the logoff operation. - reserved(Any):Reserved; must be zero. - -Returns: - - None - - """ - pass - - - def OpenAddressBook(self,uiParm:'Any',iid:'PyIID',flags:'Any') -> 'Any': - """ - Opens the integrated address book. - -Args: - - uiParm(Any):hwnd of a dialog is to be displayed. - iid(PyIID):The IID of the interface, or None. - flags(Any):Flags that control the opening - AB_NO_DIALOG. - -Returns: - - Any - - """ - pass - - - def OpenProfileSection(self,iidSection:'PyIID',iid:'PyIID',flags:'Any') -> 'Any': - """ - Opens a section of the current profile and returns an object for futher access - -Args: - - iidSection(PyIID):The MAPIIID of the profile section - iid(PyIID):The IID of the interface, or None. - flags(Any):Flags that control the opening. - -Returns: - - Any - - """ - pass - - - def AdminServices(self,flags:'Any'=0) -> 'Any': - """ - Provides access to a message service administration object for making changes to the message services. - -Args: - - flags(Any):reserved; must be zero. - -Returns: - - Any - - """ - pass - - -class PyIMAPIStatus(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ChangePassword(self,oldPassword:'Any',newPassword:'Any',ulFlags:'Any') -> 'None': - """ - None - -Args: - - oldPassword(Any): - newPassword(Any): - ulFlags(Any): - -Returns: - - None - - """ - pass - - - def SettingsDialog(self,ulUIParam:'Any',ulFlags:'Any') -> 'None': - """ - None - -Args: - - ulUIParam(Any): - ulFlags(Any): - -Returns: - - None - - """ - pass - - - def ValidateState(self,ulUIParam:'Any',ulFlags:'Any') -> 'None': - """ - None - -Args: - - ulUIParam(Any): - ulFlags(Any): - -Returns: - - None - - """ - pass - - - def FlushQueues(self,ulUIParam:'Any',transport:'str',ulFlags:'Any') -> 'None': - """ - None - -Args: - - ulUIParam(Any): - transport(str):Blob of data - ulFlags(Any): - -Returns: - - None - - """ - pass - - -class PyIMAPITable(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': - """ - Returns the last error code for the object. - -Args: - - hr(Any):Contains the error code generated in the previous method call. - flags(Any):Indicates for format for the output. - -Returns: - - Any - - """ - pass - - - def Advise(self,eventMask:'Any',adviseSink:'Any') -> 'Any': - """ - Registers to receive notification of specified events affecting the table. - -Args: - - eventMask(Any): - adviseSink(Any): - -Returns: - - Any - - """ - pass - - - def SeekRow(self,bookmark:'Any',rowCount:'Any') -> 'Any': - """ - Moves the cursor to a specific position in the table. - -Args: - - bookmark(Any):The bookmark. - rowCount(Any):Return ValueThe result is the number of rows processed. - -Returns: - - Any:Return ValueThe result is the number of rows processed. - - - """ - pass - - - def SeekRowApprox(self,numerator:'Any',denominator:'Any') -> 'None': - """ - Moves the cursor to an approximate fractional position in the table. - -Args: - - numerator(Any):The numerator of the fraction representing the table position - denominator(Any):The denominator of the fraction representing the table position. This must not be zero. - -Returns: - - None - - """ - pass - - - def GetRowCount(self,flags:'Any') -> 'Any': - """ - Returns the total number of rows in the table. - -Args: - - flags(Any):Reserved - must be zero - -Returns: - - Any - - """ - pass - - - def QueryRows(self,rowCount:'Any',flags:'Any') -> 'Any': - """ - Returns one or more rows from a table, beginning at the current cursor position. - -Args: - - rowCount(Any):Number of rows to retrieve - flags(Any):Flags. - -Returns: - - Any - - """ - pass - - - def SetColumns(self,propTags:'Any',flags:'Any') -> 'None': - """ - Defines the particular properties and order of properties to appear as columns in the table. - -Args: - - propTags(Any):Sequence of property tags identifying properties to be included as columns in the table. - flags(Any): - -Returns: - - None - - """ - pass - - - def GetStatus(self,) -> 'None': - """ - Returns the table's status and type. - -Args: - - - -Returns: - - None:PyIMAPITable.GetStatus -GetStatus()Returns the table's status and type. -Return ValueResult is a tuple of (tableStatus, tableType) - - - """ - pass - - - def QueryPosition(self,) -> 'None': - """ - Retrieves the current table row position of the cursor, based on a fractional value. - -Args: - - - -Returns: - - None:PyIMAPITable.QueryPosition -QueryPosition()Retrieves the current table row position of the cursor, based on a fractional value. -Return ValueResult is a tuple of (row, numerator, denominator) - - - """ - pass - - - def QueryColumns(self,flags:'Any') -> 'Any': - """ - Returns a list of columns for the table. - -Args: - - flags(Any): - -Returns: - - Any - - """ - pass - - - def Abort(self,) -> 'None': - """ - Stops any asynchronous operations currently in progress for the table. - -Args: - - - -Returns: - - None - - """ - pass - - - def FreeBookmark(self,bookmark:'Any') -> 'None': - """ - Releases the memory associated with a bookmark. - -Args: - - bookmark(Any): - -Returns: - - None - - """ - pass - - - def CreateBookmark(self,) -> 'Any': - """ - Marks the table's current position. - -Args: - - - -Returns: - - Any - - """ - pass - - - def Restrict(self,restriction:'Any',flags:'Any') -> 'None': - """ - Applies a filter to a table, reducing the row set to only those rows matching the specified criteria. - -Args: - - restriction(Any): - flags(Any): - -Returns: - - None - - """ - pass - - - def FindRow(self,restriction:'Any',bookmarkOrigin:'Any',flags:'Any') -> 'None': - """ - Finds the next row in a table that matches specific search criteria. - -Args: - - restriction(Any): - bookmarkOrigin(Any): - flags(Any): - -Returns: - - None - - """ - pass - - - def SortTable(self,sortOrderSet:'Any',flags:'Any') -> 'None': - """ - Orders the rows of the table based on sort criteria. - -Args: - - sortOrderSet(Any): - flags(Any): - -Returns: - - None - - """ - pass - - - def Unadvise(self,handle:'Any') -> 'None': - """ - Cancels the sending of notifications previously set up with a call to the IMAPITable::Advise method. - -Args: - - handle(Any):Handle returned from PyIMAPITable::Advise - -Returns: - - None - - """ - pass - - -class PyIMachineDebugManager(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddApplication(self,pda:'Any') -> 'None': - """ - Description of AddApplication. - -Args: - - pda(Any):Description for pda - -Returns: - - None - - """ - pass - - - def RemoveApplication(self,dwAppCookie:'Any') -> 'None': - """ - Description of RemoveApplication. - -Args: - - dwAppCookie(Any):Description for dwAppCookie - -Returns: - - None - - """ - pass - - - def EnumApplications(self,) -> 'None': - """ - Description of EnumApplications. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIMachineDebugManagerEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def onAddApplication(self,pda:'Any',dwAppCookie:'Any') -> 'None': - """ - Description of onAddApplication. - -Args: - - pda(Any):Description for pda - dwAppCookie(Any):Description for dwAppCookie - -Returns: - - None - - """ - pass - - - def onRemoveApplication(self,pda:'Any',dwAppCookie:'Any') -> 'None': - """ - Description of onRemoveApplication. - -Args: - - pda(Any):Description for pda - dwAppCookie(Any):Description for dwAppCookie - -Returns: - - None - - """ - pass - - -class PyIMessage(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetReadFlag(self,flag:'Any') -> 'None': - """ - Sets the read flags for a message - -Args: - - flag(Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. - -Returns: - - None - - """ - pass - - - def GetAttachmentTable(self,flags:'Any') -> 'Any': - """ - Returns the message's attachment table. - -Args: - - flags(Any):Bitmask of flags that relate to the creation of the table. - -Returns: - - Any - - """ - pass - - - def OpenAttach(self,attachmentNum:'Any',interface:'PyIID',flags:'Any') -> 'Any': - """ - Opens an attachment - -Args: - - attachmentNum(Any): - interface(PyIID):The interface to use, or None - flags(Any):Bitmask of flags that controls how the attachment is opened. - -Returns: - - Any - - """ - pass - - - def CreateAttach(self,interface:'PyIID',flags:'Any') -> 'Tuple[Any, Any]': - """ - Creates an attachment - -Args: - - interface(PyIID):The interface to use, or None - flags(Any):Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) - -Returns: - - Tuple[Any, Any]:Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) - - - """ - pass - - - def DeleteAttach(self,attachmentNum:'Any',ulUIParam:'Any',interface:'Any',flags:'Any') -> 'None': - """ - Deletes an attachment - -Args: - - attachmentNum(Any): - ulUIParam(Any): - interface(Any):The interface to use, or None - flags(Any):Bitmask of flags that controls the display of a user interface. - -Returns: - - None - - """ - pass - - - def ModifyRecipients(self,flags:'Any',mods:'Any') -> 'None': - """ - adds, deletes, or modifies message recipients. - -Args: - - flags(Any):Bitmask of flags that controls the recipient changes. If zero is passed for the ulFlags parameter, ModifyRecipients replaces all existing recipients with the recipient list in the mods parameter. - mods(Any):The list of recipients. - -Returns: - - None - - """ - pass - - - def GetRecipientTable(self,flags:'Any') -> 'Any': - """ - Returns the message's recipient table. - -Args: - - flags(Any):Bitmask of flags that relate to the creation of the table. - -Returns: - - Any - - """ - pass - - - def SubmitMessage(self,flags:'Any') -> 'None': - """ - Saves all of the message's properties and marks the message as ready to be sent. - -Args: - - flags(Any):Flags which specify how the message is submitted. - -Returns: - - None - - """ - pass - - -class PyIMoniker(object): - """A Python interface to IMoniker""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BindToObject(self,bindCtx:'Any',moniker:'Any',iidResult:'Any') -> 'Any': - """ - Uses the moniker to bind to the object it identifies. - -Args: - - bindCtx(Any):bind context object to be used. - moniker(Any):If the moniker is part of a composite moniker, otherwise None - iidResult(Any):IID of the result object. - -Returns: - - Any - - """ - pass - - - def BindToStorage(self,bindCtx:'Any',moniker:'Any',iidResult:'Any') -> 'Any': - """ - Retrieves an interface object to the storage that contains the - -object identified by the moniker. - -Args: - - bindCtx(Any):bind context object to be used. - moniker(Any):If the moniker is part of a composite moniker, otherwise None - iidResult(Any):IID of the result object. - -Returns: - - Any - - """ - pass - - - def GetDisplayName(self,bindCtx:'Any',moniker:'Any') -> 'str': - """ - Gets the display name , which is a user-readable representation of this - -moniker. - -Args: - - bindCtx(Any):bind context object to be used. - moniker(Any):If the moniker is part of a composite moniker, otherwise None - -Returns: - - str - - """ - pass - - - def ComposeWith(self,mkRight:'Any',fOnlyIfNotGeneric:'Any') -> 'Any': - """ - Combines the current moniker with another moniker, creating a new - -composite moniker. - -Args: - - mkRight(Any):The IMoniker interface on the moniker to compose onto the end of this moniker. - fOnlyIfNotGeneric(Any):If TRUE, the caller requires a non-generic composition, so the operation should proceed only if pmkRight is a moniker class that this moniker can compose with in some way other than forming a generic composite. If FALSE, the method can create a generic composite if necessary. - -Returns: - - Any - - """ - pass - - - def Enum(self,fForward:'Any'=True) -> 'Any': - """ - Supplies an enumerator that can enumerate the components of a composite - -moniker. - -Args: - - fForward(Any):If TRUE, enumerates the monikers from left to right. If FALSE, enumerates from right to left. - -Returns: - - Any - - """ - pass - - - def IsEqual(self,other:'Any') -> 'Any': - """ - Compares this moniker with a specified moniker and indicates whether they are - -identical. - -Args: - - other(Any):The moniker to compare - -Returns: - - Any - - """ - pass - - - def IsSystemMoniker(self,) -> 'Any': - """ - Indicates whether this moniker is of one of the system-supplied moniker - -classes. - -Args: - - - -Returns: - - Any - - """ - pass - - - def Hash(self,) -> 'Any': - """ - Calculates a 32-bit integer using the internal state of the moniker. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIMsgServiceAdmin(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': - """ - Returns the last error code for the object. - -Args: - - hr(Any):Contains the error code generated in the previous method call. - flags(Any):Indicates for format for the output. - -Returns: - - Any - - """ - pass - - - def CreateMsgService(self,serviceName:'str',displayName:'str',flags:'Any',uiParam:'Any'=0) -> 'None': - """ - Creates a message service. - -Args: - - serviceName(str):The name of the service. - displayName(str):Display name of the service, or None - flags(Any):A bitmask of flags that controls how the message service is installed. - uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. - -Returns: - - None - - """ - pass - - - def ConfigureMsgService(self,iid:'PyIID',ulUIParam:'Any',ulFlags:'Any',arg:'List[Any]') -> 'None': - """ - Reconfigures a message service. - -Args: - - iid(PyIID):The unique identifier for the message service to configure. - ulUIParam(Any):Handle of the parent window for the configuration property sheet. - ulFlags(Any):Bitmask of flags that controls the display of the property sheet. - arg(List[Any]):Property values describing the properties to display in the property sheet. Should not be None if the service is to be configured without a message service. - -Returns: - - None - - """ - pass - - - def GetMsgServiceTable(self,flags:'Any') -> 'Any': - """ - Retrieves a table of services. - -Args: - - flags(Any): - -Returns: - - Any - - """ - pass - - - def GetProviderTable(self,flags:'Any') -> 'Any': - """ - Retrieves a table of service providers. - -Args: - - flags(Any): - -Returns: - - Any - - """ - pass - - - def DeleteMsgService(self,uuid:'PyIID') -> 'None': - """ - Deletes the specified service - -Args: - - uuid(PyIID):The ID of the service - -Returns: - - None - - """ - pass - - - def RenameMsgService(self,uuid:'PyIID',flags:'Any',newName:'str') -> 'None': - """ - Renames the specified service - -Args: - - uuid(PyIID):The ID of the service - flags(Any): - newName(str):The new name for the service.CommentsThis is deprecated, and there is no replacement referenced to use instead. - -Returns: - - None - - """ - pass - - - def OpenProfileSection(self,uuid:'PyIID',iid:'PyIID',flags:'Any') -> 'Any': - """ - Opens a profile section - -Args: - - uuid(PyIID):The ID of the service - iid(PyIID):The IID of the resulting object, or None for the default - flags(Any): - -Returns: - - Any - - """ - pass - - - def AdminProviders(self,uuid:'PyIID',flags:'Any') -> 'Any': - """ - Returns an object providing access - -to a provider administration object. - -Args: - - uuid(PyIID):The ID of the service - flags(Any): - -Returns: - - Any - - """ - pass - - -class PyIMsgStore(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'Any') -> 'Any': - """ - Opens a folder or message and returns an interface object for further access. - -Args: - - entryId(str):The entryID of the object - iid(PyIID):The IID of the object to return, or None for the default IID - flags(Any):Bitmask of flags that controls how the object is opened. - -Returns: - - Any - - """ - pass - - - def GetReceiveFolder(self,messageClass:'str'=None,flags:'Any'=0) -> 'Tuple[PyIID, str]': - """ - Obtains the folder that was established as the destination for incoming messages of a specified message class or the default receive folder for the message store. - -Args: - - messageClass(str):Message class that is associated with a receive folder. If this parameter is set to None or an empty string, GetReceiveFolder returns the default receive folder for the message store. - flags(Any): - -Returns: - - Tuple[PyIID, str] - - """ - pass - - - def GetReceiveFolderTable(self,flags:'Any') -> 'Any': - """ - provides access to the receive folder table, a table that includes information about all of the receive folders for the message store. - -Args: - - flags(Any):Bitmask of flags that controls table access - -Returns: - - Any - - """ - pass - - - def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'Any'=0) -> 'Any': - """ - Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object - -Args: - - entryId(str):The first entry ID to be compared - entryId1(str):The second entry ID to be compared - flags(Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - -Returns: - - Any:Reserved - must be zero. -Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - - - """ - pass - - - def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': - """ - Returns the last error code for the object. - -Args: - - hr(Any):Contains the error code generated in the previous method call. - flags(Any):Indicates for format for the output. - -Returns: - - Any - - """ - pass - - - def AbortSubmit(self,entryId:'str',flags:'Any'=0) -> 'Any': - """ - Attempts to remove a message from the outgoing queue. - -Args: - - entryId(str):The entry ID of the item to be aborted. - flags(Any):Reserved - must be zero. - -Returns: - - Any - - """ - pass - - - def Advise(self,entryId:'str',eventMask:'Any',adviseSink:'Any') -> 'None': - """ - Registers to receive notification of specified events that affect the message store. - -Args: - - entryId(str):entry identifier of the folder or message about which notifications should be generated, or None - eventMask(Any):A mask of values that indicate the types of notification events. - adviseSink(Any):An advise sink. - -Returns: - - None - - """ - pass - - - def Unadvise(self,connection:'Any') -> 'None': - """ - Cancels the sending of notifications previously set up with a call to the IMsgStore::Advise method. - -Args: - - connection(Any):Connection number returned from PyIMsgStore::Advise - -Returns: - - None - - """ - pass - - -class PyINameSpaceTreeControl(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,hwndParent:'Union[Any]',prc:'Tuple[Any, Any, Any, Any]',nsctsFlags:'Any') -> 'None': - """ - Description of Initialize. - -Args: - - hwndParent(Union[Any]):Description for hwndParent - prc(Tuple[Any, Any, Any, Any]):Description for prc - nsctsFlags(Any):Description for nsctsFlags - -Returns: - - None - - """ - pass - - - def TreeAdvise(self,punk:'Any') -> 'None': - """ - Description of TreeAdvise. - -Args: - - punk(Any):Description for punk - -Returns: - - None - - """ - pass - - - def TreeUnadvise(self,dwCookie:'Any') -> 'None': - """ - Description of TreeUnadvise. - -Args: - - dwCookie(Any):Description for dwCookie - -Returns: - - None - - """ - pass - - - def AppendRoot(self,psiRoot:'Any',grfEnumFlags:'Any',grfRootStyle:'Any',pif:'Any') -> 'None': - """ - Description of AppendRoot. - -Args: - - psiRoot(Any):Description for psiRoot - grfEnumFlags(Any):Description for grfEnumFlags - grfRootStyle(Any):Description for grfRootStyle - pif(Any):Description for pif - -Returns: - - None - - """ - pass - - - def InsertRoot(self,iIndex:'Any',psiRoot:'Any',grfEnumFlags:'Any',grfRootStyle:'Any',pif:'Any') -> 'None': - """ - Description of InsertRoot. - -Args: - - iIndex(Any):Description for iIndex - psiRoot(Any):Description for psiRoot - grfEnumFlags(Any):Description for grfEnumFlags - grfRootStyle(Any):Description for grfRootStyle - pif(Any):Description for pif - -Returns: - - None - - """ - pass - - - def RemoveRoot(self,psiRoot:'Any') -> 'None': - """ - Description of RemoveRoot. - -Args: - - psiRoot(Any):Description for psiRoot - -Returns: - - None - - """ - pass - - - def RemoveAllRoots(self,) -> 'None': - """ - Description of RemoveAllRoots. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetRootItems(self,) -> 'None': - """ - Description of GetRootItems. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetItemState(self,psi:'Any',nstcisMask:'Any',nstcisFlags:'Any') -> 'None': - """ - Description of SetItemState. - -Args: - - psi(Any):Description for psi - nstcisMask(Any):Description for nstcisMask - nstcisFlags(Any):Description for nstcisFlags - -Returns: - - None - - """ - pass - - - def GetItemState(self,psi:'Any',nstcisMask:'Any') -> 'None': - """ - Description of GetItemState. - -Args: - - psi(Any):Description for psi - nstcisMask(Any):Description for nstcisMask - -Returns: - - None - - """ - pass - - - def GetSelectedItems(self,) -> 'None': - """ - Description of GetSelectedItems. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetItemCustomState(self,psi:'Any') -> 'None': - """ - Description of GetItemCustomState. - -Args: - - psi(Any):Description for psi - -Returns: - - None - - """ - pass - - - def SetItemCustomState(self,psi:'Any',iStateNumber:'Any') -> 'None': - """ - Description of SetItemCustomState. - -Args: - - psi(Any):Description for psi - iStateNumber(Any):Description for iStateNumber - -Returns: - - None - - """ - pass - - - def EnsureItemVisible(self,psi:'Any') -> 'None': - """ - Description of EnsureItemVisible. - -Args: - - psi(Any):Description for psi - -Returns: - - None - - """ - pass - - - def SetTheme(self,pszTheme:'Any') -> 'None': - """ - Description of SetTheme. - -Args: - - pszTheme(Any):Description for pszTheme - -Returns: - - None - - """ - pass - - - def GetNextItem(self,psi:'Any',nstcgi:'Any') -> 'None': - """ - Description of GetNextItem. - -Args: - - psi(Any):Description for psi - nstcgi(Any):Description for nstcgi - -Returns: - - None - - """ - pass - - - def HitTest(self,pt:'Tuple[Any, Any]') -> 'None': - """ - Description of HitTest. - -Args: - - pt(Tuple[Any, Any]):Description for ppt - -Returns: - - None - - """ - pass - - - def GetItemRect(self,) -> 'None': - """ - Description of GetItemRect. - -Args: - - - -Returns: - - None - - """ - pass - - - def CollapseAll(self,) -> 'None': - """ - Description of CollapseAll. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyINamedPropertyStore(object): - """Contains a collection of properties indentified by name""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetNamedValue(self,Name:'Any') -> 'Any': - """ - Retrieves a property value by name - -Args: - - Name(Any):Name of the property - -Returns: - - Any - - """ - pass - - - def SetNamedValue(self,propvar:'Any') -> 'None': - """ - Sets the value of a property - -Args: - - propvar(Any):Description for propvar - -Returns: - - None - - """ - pass - - - def GetNameCount(self,) -> 'Any': - """ - Retrieves the number of named properties in the store - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetNameAt(self,Index:'Any') -> 'Any': - """ - Retrieves a property name by zero-based index - -Args: - - Index(Any):Index of the property name - -Returns: - - Any - - """ - pass - - -class PyIObjectArray(object): - """Holds a collection of interface objects""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'Any': - """ - Returns number of objects in collection - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAt(self,Index:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves an item by zero-based index - -Args: - - Index(Any):Index of item to retrieve - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - -class PyIObjectCollection(object): - """Modifiable container for a number of IUnknown objects""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddObject(self,punk:'Any') -> 'None': - """ - Adds a single object to the collection - -Args: - - punk(Any):Object to be added - -Returns: - - None - - """ - pass - - - def AddFromArray(self,Source:'Any') -> 'None': - """ - None - -Args: - - Source(Any):Objects to be added to the collection - -Returns: - - None - - """ - pass - - - def RemoveObjectAt(self,Index:'Any') -> 'None': - """ - Removes a single object from the collection - -Args: - - Index(Any):Zero-based index of item to remove - -Returns: - - None - - """ - pass - - - def Clear(self,) -> 'None': - """ - Empties the container. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIObjectWithPropertyKey(object): - """Interface implemented by objects that have an associated property id""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetPropertyKey(self,key:'Any') -> 'None': - """ - Sets the property id - -Args: - - key(Any):The identifier of the property - -Returns: - - None - - """ - pass - - - def GetPropertyKey(self,) -> 'Any': - """ - Returns the property id - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIObjectWithSite(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetSite(self,pUnkSite:'Any') -> 'None': - """ - Description of SetSite. - -Args: - - pUnkSite(Any):Description for pUnkSite - -Returns: - - None - - """ - pass - - - def GetSite(self,riid:'PyIID') -> 'None': - """ - Description of GetSite. - -Args: - - riid(PyIID):Description for riid - -Returns: - - None - - """ - pass - - -class PyIOleClientSite(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SaveObject(self,) -> 'None': - """ - Description of SaveObject. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetMoniker(self,dwAssign:'Any',dwWhichMoniker:'Any') -> 'None': - """ - Description of GetMoniker. - -Args: - - dwAssign(Any):Description for dwAssign - dwWhichMoniker(Any):Description for dwWhichMoniker - -Returns: - - None - - """ - pass - - - def GetContainer(self,) -> 'None': - """ - Description of GetContainer. - -Args: - - - -Returns: - - None - - """ - pass - - - def ShowObject(self,) -> 'None': - """ - Description of ShowObject. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnShowWindow(self,fShow:'Any') -> 'None': - """ - Description of OnShowWindow. - -Args: - - fShow(Any):Description for fShow - -Returns: - - None - - """ - pass - - - def RequestNewObjectLayout(self,) -> 'None': - """ - Description of RequestNewObjectLayout. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleCommandTarget(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryStatus(self,) -> 'None': - """ - Description of QueryStatus. - -Args: - - - -Returns: - - None - - """ - pass - - - def Exec(self,) -> 'None': - """ - Description of Exec. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleControl(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetControlInfo(self,) -> 'None': - """ - Description of GetControlInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnMnemonic(self,msg:'Any') -> 'None': - """ - Description of OnMnemonic. - -Args: - - msg(Any):A tuple representing a MSG structure. - -Returns: - - None - - """ - pass - - - def OnAmbientPropertyChange(self,dispID:'Any') -> 'None': - """ - Description of OnAmbientPropertyChange. - -Args: - - dispID(Any):Description for dispID - -Returns: - - None - - """ - pass - - - def FreezeEvents(self,bFreeze:'Any') -> 'None': - """ - Description of FreezeEvents. - -Args: - - bFreeze(Any):Description for bFreeze - -Returns: - - None - - """ - pass - - -class PyIOleControlSite(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnControlInfoChanged(self,) -> 'None': - """ - Description of OnControlInfoChanged. - -Args: - - - -Returns: - - None - - """ - pass - - - def LockInPlaceActive(self,fLock:'Any') -> 'None': - """ - Description of LockInPlaceActive. - -Args: - - fLock(Any):Description for fLock - -Returns: - - None - - """ - pass - - - def GetExtendedControl(self,) -> 'None': - """ - Description of GetExtendedControl. - -Args: - - - -Returns: - - None - - """ - pass - - - def TransformCoords(self,PtlHimetric:'Tuple[Any, Any]',pPtfContainer:'Tuple[float, float]',dwFlags:'Any') -> 'None': - """ - Description of TransformCoords. - -Args: - - PtlHimetric(Tuple[Any, Any]):Description for pPtlHimetric - pPtfContainer(Tuple[float, float]):Description for pPtfContainer - dwFlags(Any):Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, a tuple of ((int, int), (float, float)) - -Returns: - - None:Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, - -a tuple of ((int, int), (float, float)) - - - """ - pass - - - def TranslateAccelerator(self,pMsg:'PyMSG',grfModifiers:'Any') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - pMsg(PyMSG):Description for pMsg - grfModifiers(Any):Description for grfModifiers - -Returns: - - None - - """ - pass - - - def OnFocus(self,fGotFocus:'Any') -> 'None': - """ - Description of OnFocus. - -Args: - - fGotFocus(Any):Description for fGotFocus - -Returns: - - None - - """ - pass - - - def ShowPropertyFrame(self,) -> 'None': - """ - Description of ShowPropertyFrame. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceActiveObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def TranslateAccelerator(self,lpmsg:'PyMSG') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - lpmsg(PyMSG):Description for lpmsg - -Returns: - - None - - """ - pass - - - def OnFrameWindowActivate(self,fActivate:'Any') -> 'None': - """ - Description of OnFrameWindowActivate. - -Args: - - fActivate(Any):Description for fActivate - -Returns: - - None - - """ - pass - - - def OnDocWindowActivate(self,fActivate:'Any') -> 'None': - """ - Description of OnDocWindowActivate. - -Args: - - fActivate(Any):Description for fActivate - -Returns: - - None - - """ - pass - - - def ResizeBorder(self,rcBorder:'Tuple[Any, Any, Any, Any]',pUIWindow:'Any',fFrameWindow:'Any') -> 'None': - """ - Description of ResizeBorder. - -Args: - - rcBorder(Tuple[Any, Any, Any, Any]):Description for prcBorder - pUIWindow(Any):Description for pUIWindow - fFrameWindow(Any):Description for fFrameWindow - -Returns: - - None - - """ - pass - - - def EnableModeless(self,fEnable:'Any') -> 'None': - """ - Description of EnableModeless. - -Args: - - fEnable(Any):Description for fEnable - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceFrame(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InsertMenus(self,hmenuShared:'Union[Any]',menuWidths:'Any') -> 'None': - """ - Description of InsertMenus. - -Args: - - hmenuShared(Union[Any]):Description for hmenuShared - menuWidths(Any): - -Returns: - - None - - """ - pass - - - def SetMenu(self,hmenuShared:'Union[Any]',holemenu:'Union[Any]',hwndActiveObject:'Union[Any]') -> 'None': - """ - Description of SetMenu. - -Args: - - hmenuShared(Union[Any]):Description for hmenuShared - holemenu(Union[Any]):Description for holemenu - hwndActiveObject(Union[Any]):Description for hwndActiveObject - -Returns: - - None - - """ - pass - - - def RemoveMenus(self,hmenuShared:'Union[Any]') -> 'None': - """ - Description of RemoveMenus. - -Args: - - hmenuShared(Union[Any]):Description for hmenuShared - -Returns: - - None - - """ - pass - - - def SetStatusText(self,pszStatusText:'Any') -> 'None': - """ - Description of SetStatusText. - -Args: - - pszStatusText(Any):Description for pszStatusText - -Returns: - - None - - """ - pass - - - def EnableModeless(self,fEnable:'Any') -> 'None': - """ - Description of EnableModeless. - -Args: - - fEnable(Any):Description for fEnable - -Returns: - - None - - """ - pass - - - def TranslateAccelerator(self,lpmsg:'PyMSG',wID:'Any') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - lpmsg(PyMSG):Description for lpmsg - wID(Any):Description for wID - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InPlaceDeactivate(self,) -> 'None': - """ - Description of InPlaceDeactivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def UIDeactivate(self,) -> 'None': - """ - Description of UIDeactivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetObjectRects(self,) -> 'None': - """ - Description of SetObjectRects. - -Args: - - - -Returns: - - None - - """ - pass - - - def ReactivateAndUndo(self,) -> 'None': - """ - Description of ReactivateAndUndo. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceSite(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CanInPlaceActivate(self,) -> 'None': - """ - Description of CanInPlaceActivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnInPlaceActivate(self,) -> 'None': - """ - Description of OnInPlaceActivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnUIActivate(self,) -> 'None': - """ - Description of OnUIActivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetWindowContext(self,) -> 'None': - """ - Description of GetWindowContext. - -Args: - - - -Returns: - - None - - """ - pass - - - def Scroll(self,) -> 'None': - """ - Description of Scroll. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnUIDeactivate(self,fUndoable:'Any') -> 'None': - """ - Description of OnUIDeactivate. - -Args: - - fUndoable(Any):Description for fUndoable - -Returns: - - None - - """ - pass - - - def OnInPlaceDeactivate(self,) -> 'None': - """ - Description of OnInPlaceDeactivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def DiscardUndoState(self,) -> 'None': - """ - Description of DiscardUndoState. - -Args: - - - -Returns: - - None - - """ - pass - - - def DeactivateAndUndo(self,) -> 'None': - """ - Description of DeactivateAndUndo. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnPosRectChange(self,) -> 'None': - """ - Description of OnPosRectChange. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceSiteEx(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnInPlaceActivateEx(self,dwFlags:'Any') -> 'None': - """ - Description of OnInPlaceActivateEx. - -Args: - - dwFlags(Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def OnInPlaceDeactivateEx(self,fNoRedraw:'Any') -> 'None': - """ - Description of OnInPlaceDeactivateEx. - -Args: - - fNoRedraw(Any):Description for fNoRedraw - -Returns: - - None - - """ - pass - - - def RequestUIActivate(self,) -> 'None': - """ - Description of RequestUIActivate. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceSiteWindowless(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CanWindowlessActivate(self,) -> 'None': - """ - Description of CanWindowlessActivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCapture(self,) -> 'None': - """ - Description of GetCapture. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetCapture(self,fCapture:'Any') -> 'None': - """ - Description of SetCapture. - -Args: - - fCapture(Any):Description for fCapture - -Returns: - - None - - """ - pass - - - def GetFocus(self,) -> 'None': - """ - Description of GetFocus. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFocus(self,fFocus:'Any') -> 'None': - """ - Description of SetFocus. - -Args: - - fFocus(Any):Description for fFocus - -Returns: - - None - - """ - pass - - - def GetDC(self,grfFlags:'Any',rect:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Description of GetDC. - -Args: - - grfFlags(Any):Description for grfFlags - rect(Tuple[Any, Any, Any, Any]): - -Returns: - - None - - """ - pass - - - def ReleaseDC(self,hDC:'Any') -> 'None': - """ - Description of ReleaseDC. - -Args: - - hDC(Any):Description for hDC - -Returns: - - None - - """ - pass - - - def InvalidateRect(self,rect:'Tuple[Any, Any, Any, Any]',fErase:'Any') -> 'None': - """ - Description of InvalidateRect. - -Args: - - rect(Tuple[Any, Any, Any, Any]): - fErase(Any):Description for fErase - -Returns: - - None - - """ - pass - - - def InvalidateRgn(self,hRgn:'Any',fErase:'Any') -> 'None': - """ - Description of InvalidateRgn. - -Args: - - hRgn(Any):Handle to a region - fErase(Any):Description for fErase - -Returns: - - None - - """ - pass - - - def ScrollRect(self,dx:'Any',dy:'Any') -> 'None': - """ - Description of ScrollRect. - -Args: - - dx(Any):Description for dx - dy(Any):Description for dy - -Returns: - - None - - """ - pass - - - def AdjustRect(self,) -> 'None': - """ - Description of AdjustRect. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnDefWindowMessage(self,msg:'Any',wParam:'Any',lParam:'Any') -> 'None': - """ - Description of OnDefWindowMessage. - -Args: - - msg(Any):Description for msg - wParam(Any):Description for wParam - lParam(Any):Description for lParam - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceUIWindow(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetBorder(self,) -> 'None': - """ - Description of GetBorder. - -Args: - - - -Returns: - - None - - """ - pass - - - def RequestBorderSpace(self,borderwidths:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Description of RequestBorderSpace. - -Args: - - borderwidths(Tuple[Any, Any, Any, Any]):Description for pborderwidths - -Returns: - - None - - """ - pass - - - def SetBorderSpace(self,borderwidths:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Description of SetBorderSpace. - -Args: - - borderwidths(Tuple[Any, Any, Any, Any]):Description for pborderwidths - -Returns: - - None - - """ - pass - - - def SetActiveObject(self,pActiveObject:'Any',pszObjName:'Any') -> 'None': - """ - Description of SetActiveObject. - -Args: - - pActiveObject(Any):Description for pActiveObject - pszObjName(Any):Description for pszObjName - -Returns: - - None - - """ - pass - - -class PyIOleObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetClientSite(self,pClientSite:'Any') -> 'None': - """ - Description of SetClientSite. - -Args: - - pClientSite(Any):Description for pClientSite - -Returns: - - None - - """ - pass - - - def GetClientSite(self,) -> 'None': - """ - Description of GetClientSite. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetHostNames(self,szContainerApp:'Any',szContainerObj:'Any') -> 'None': - """ - Description of SetHostNames. - -Args: - - szContainerApp(Any):Description for szContainerApp - szContainerObj(Any):Description for szContainerObj - -Returns: - - None - - """ - pass - - - def Close(self,dwSaveOption:'Any') -> 'None': - """ - Description of Close. - -Args: - - dwSaveOption(Any):Description for dwSaveOption - -Returns: - - None - - """ - pass - - - def SetMoniker(self,dwWhichMoniker:'Any',pmk:'Any') -> 'None': - """ - Description of SetMoniker. - -Args: - - dwWhichMoniker(Any):Description for dwWhichMoniker - pmk(Any):Description for pmk - -Returns: - - None - - """ - pass - - - def GetMoniker(self,dwAssign:'Any',dwWhichMoniker:'Any') -> 'None': - """ - Description of GetMoniker. - -Args: - - dwAssign(Any):Description for dwAssign - dwWhichMoniker(Any):Description for dwWhichMoniker - -Returns: - - None - - """ - pass - - - def InitFromData(self,pDataObject:'Any',fCreation:'Any',dwReserved:'Any') -> 'None': - """ - Description of InitFromData. - -Args: - - pDataObject(Any):Description for pDataObject - fCreation(Any):Description for fCreation - dwReserved(Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def GetClipboardData(self,dwReserved:'Any') -> 'None': - """ - Description of GetClipboardData. - -Args: - - dwReserved(Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def DoVerb(self,iVerb:'Any',msg:'PyMSG',pActiveSite:'Any',lindex:'Any',hwndParent:'Any',rect:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Description of DoVerb. - -Args: - - iVerb(Any):Description for iVerb - msg(PyMSG):MSG tuple, a-la win32gui etc. - pActiveSite(Any):Description for pActiveSite - lindex(Any):Description for lindex - hwndParent(Any):Description for hwndParent - rect(Tuple[Any, Any, Any, Any]): - -Returns: - - None - - """ - pass - - - def EnumVerbs(self,) -> 'None': - """ - Description of EnumVerbs. - -Args: - - - -Returns: - - None - - """ - pass - - - def Update(self,) -> 'None': - """ - Description of Update. - -Args: - - - -Returns: - - None - - """ - pass - - - def IsUpToDate(self,) -> 'None': - """ - Description of IsUpToDate. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetUserClassID(self,) -> 'None': - """ - Description of GetUserClassID. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetUserType(self,dwFormOfType:'Any') -> 'None': - """ - Description of GetUserType. - -Args: - - dwFormOfType(Any):Description for dwFormOfType - -Returns: - - None - - """ - pass - - - def SetExtent(self,dwDrawAspect:'Any',size:'Tuple[Any, Any]') -> 'None': - """ - Description of SetExtent. - -Args: - - dwDrawAspect(Any):Description for dwDrawAspect - size(Tuple[Any, Any]):Size limit for the object. - -Returns: - - None - - """ - pass - - - def GetExtent(self,dwDrawAspect:'Any',size:'Tuple[Any, Any]') -> 'None': - """ - Description of GetExtent. - -Args: - - dwDrawAspect(Any):Description for dwDrawAspect - size(Tuple[Any, Any]):Size limit for the object. - -Returns: - - None - - """ - pass - - - def Advise(self,pAdvSink:'Any') -> 'None': - """ - Description of Advise. - -Args: - - pAdvSink(Any):Description for pAdvSink - -Returns: - - None - - """ - pass - - - def Unadvise(self,dwConnection:'Any') -> 'None': - """ - Description of Unadvise. - -Args: - - dwConnection(Any):Description for dwConnection - -Returns: - - None - - """ - pass - - - def EnumAdvise(self,) -> 'None': - """ - Description of EnumAdvise. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetMiscStatus(self,dwAspect:'Any') -> 'None': - """ - Description of GetMiscStatus. - -Args: - - dwAspect(Any):Description for dwAspect - -Returns: - - None - - """ - pass - - - def SetColorScheme(self,) -> 'None': - """ - Description of SetColorScheme. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleWindow(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetWindow(self,) -> 'None': - """ - Description of GetWindow. - -Args: - - - -Returns: - - None - - """ - pass - - - def ContextSensitiveHelp(self,fEnterMode:'Any') -> 'None': - """ - Description of ContextSensitiveHelp. - -Args: - - fEnterMode(Any):Description for fEnterMode - -Returns: - - None - - """ - pass - - -class PyIPersist(object): - """A Python interface to IPersist""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetClassID(self,) -> 'PyIID': - """ - Returns the class identifier (CLSID) for the component object. - -Args: - - - -Returns: - - PyIID - - """ - pass - - -class PyIPersistFile(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsDirty(self,) -> 'None': - """ - Checks an object for changes since it was last saved to its current file. - -Args: - - - -Returns: - - None:PyIPersistFile.IsDirty -IsDirty()Checks an object for changes since it was last saved to its current file. -Return ValueThis method returns the raw COM error code without raising the normal COM exception. - -You should treat any error return codes as an indication that the object has changed. - -Unless this method explicitly returns S_FALSE, assume that the object must be saved. - - - """ - pass - - - def Load(self,FileName:'Any',Mode:'Any') -> 'None': - """ - Opens the specified file and initializes an object from the file contents. - -Args: - - FileName(Any):Absolute path of the file to open - Mode(Any):Specifies the access mode from the STGM enumeration. - -Returns: - - None - - """ - pass - - - def Save(self,FileName:'Any',fRemember:'Any') -> 'None': - """ - Saves the object into the specified file. - -Args: - - FileName(Any):absolute path of the file where the object is saved. - fRemember(Any):Specifies whether the file is to be the current working file or not. - -Returns: - - None - - """ - pass - - - def SaveCompleted(self,FileName:'Any') -> 'None': - """ - Notifies the object that it can revert from NoScribble mode to Normal mode. - -Args: - - FileName(Any):Absolute path of the file where the object was saved. - -Returns: - - None - - """ - pass - - - def GetCurFile(self,) -> 'Any': - """ - Gets the current name of the file associated with the object. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIPersistFolder(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,pidl:'Any') -> 'None': - """ - Description of Initialize. - -Args: - - pidl(Any):Description for pidl - -Returns: - - None - - """ - pass - - -class PyIPersistFolder2(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCurFolder(self,) -> 'None': - """ - Description of GetCurFolder. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIPersistPropertyBag(object): - """A Python wrapper for a COM IPersistPropertyBag interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InitNew(self,) -> 'None': - """ - Called by the container when the control is initialized to initialize the - -property bag. - -Args: - - - -Returns: - - None - - """ - pass - - - def Load(self,bag:'Any',log:'Any'=None) -> 'None': - """ - Called by the container to load the control's properties. - -Args: - - bag(Any):the caller's property bag. - log(Any):the caller's error log, or None - -Returns: - - None - - """ - pass - - - def Save(self,bag:'Any',clearDirty:'Any',saveProperties:'Any') -> 'None': - """ - Called by the container to save the object's properties. - -Args: - - bag(Any):the caller's property bag. - clearDirty(Any):Specifies whether to clear the dirty flag. - saveProperties(Any):Specifies whether to save all properties or just those that have changed - -Returns: - - None - - """ - pass - - -class PyIPersistSerializedPropStorage(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetFlags(self,flags:'Any') -> 'None': - """ - Sets flags for the store - -Args: - - flags(Any):Combination of pscon.FPSPS_* values - -Returns: - - None - - """ - pass - - - def SetPropertyStorage(self,ps:'Any') -> 'None': - """ - Initializes the store with a serialized buffer - -Args: - - ps(Any):Bytes or buffer object containing a serialized property store - -Returns: - - None - - """ - pass - - - def GetPropertyStorage(self,) -> 'Any': - """ - Retrieves the current contents of the property - -store - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIPersistStorage(object): - """A Python wrapper of a COM IPersistStorage interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsDirty(self,) -> 'Any': - """ - Checks the object for changes since it was last saved. - -Args: - - - -Returns: - - Any - - """ - pass - - - def InitNew(self,PyIStorage:'Any') -> 'None': - """ - Initializes a new object, providing a storage object to be used for the object. - -Args: - - PyIStorage(Any):PyIStorage for the new storage object to be initialized. The container creates a nested storage object in its storage object (see PyIStorage::CreateStorage). Then, the container calls the PyIPersistStorage::WriteClassStg function to initialize the new storage object with the object class identifier (CLSID). - -Returns: - - None - - """ - pass - - - def Load(self,storage:'Any') -> 'None': - """ - Loads an object from its existing storage. - -Args: - - storage(Any):Existing storage for the object. - -Returns: - - None - - """ - pass - - - def Save(self,PyIStorage:'Any',_int:'Any') -> 'None': - """ - None - -Args: - - PyIStorage(Any):Storage for the object - _int(Any):Indicates whether the specified storage object is the current one. This parameter is set to FALSE when performing a Save As or Save A Copy To operation or when performing a full save. In the latter case, this method saves to a temporary file, deletes the original file, and renames the temporary file. This parameter is set to TRUE to perform a full save in a low-memory situation or to perform a fast incremental save in which only the dirty components are saved. - -Returns: - - None - - """ - pass - - - def SaveCompleted(self,PyIStorage:'Any') -> 'None': - """ - None - -Args: - - PyIStorage(Any):The current storage object - -Returns: - - None - - """ - pass - - - def HandsOffStorage(self,) -> 'None': - """ - Instructs the object to release all storage objects that have been - -passed to it by its container and to enter HandsOff mode, in which the object cannot do anything and the only - -operation that works is a close operation. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIPersistStream(object): - """A Python interface to IPersistStream""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsDirty(self,) -> 'Any': - """ - Checks the object for changes since it was last saved. - -Args: - - - -Returns: - - Any - - """ - pass - - - def Load(self,stream:'Any') -> 'None': - """ - Initializes an object from the stream where it was previously saved. - -Args: - - stream(Any):Stream object to load from.CommentsThis method loads an object from its associated stream. The seek pointer is set as it was in the most recent PyIPersistStream::Save method. This method can seek and read from the stream, but cannot write to it.On exit, the seek pointer must be in the same position it was in on entry, immediately past the end of the data. - -Returns: - - None - - """ - pass - - - def Save(self,stream:'Any',bClearDirty:'Any') -> 'None': - """ - Saves an object to the specified stream. - -Args: - - stream(Any):The stream to save to. - bClearDirty(Any):Indicates whether to clear the dirty flag after the save is complete - -Returns: - - None - - """ - pass - - - def GetSizeMax(self,) -> 'ULARGE_INTEGER': - """ - Returns the size in bytes of the stream needed to save the - -object. - -Args: - - - -Returns: - - ULARGE_INTEGER - - """ - pass - - -class PyIPersistStreamInit(object): - """A Python interface to IPersistStreamInit""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InitNew(self,) -> 'None': - """ - Initializes the object to a default state. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIProcessDebugManager(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateApplication(self,) -> 'None': - """ - Description of CreateApplication. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDefaultApplication(self,) -> 'None': - """ - Description of GetDefaultApplication. - -Args: - - - -Returns: - - None - - """ - pass - - - def AddApplication(self,pda:'Any') -> 'None': - """ - Description of AddApplication. - -Args: - - pda(Any):Description for pda - -Returns: - - None - - """ - pass - - - def RemoveApplication(self,dwAppCookie:'Any') -> 'None': - """ - Description of RemoveApplication. - -Args: - - dwAppCookie(Any):Description for dwAppCookie - -Returns: - - None - - """ - pass - - - def CreateDebugDocumentHelper(self,unkOuter:'Any') -> 'None': - """ - Description of CreateDebugDocumentHelper. - -Args: - - unkOuter(Any):The outer object for aggregation, or (usually!) None - -Returns: - - None - - """ - pass - - -class PyIProfAdmin(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'Any',flags:'Any') -> 'Any': - """ - Returns the last error code for the object. - -Args: - - hr(Any):Contains the error code generated in the previous method call. - flags(Any):Indicates for format for the output. - -Returns: - - Any - - """ - pass - - - def CreateProfile(self,oldProfileName:'str',Password:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': - """ - Creates a new profile. - -Args: - - oldProfileName(str):The name of the new profile. - Password(str):Must be None - uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. - flags(Any): - -Returns: - - None - - """ - pass - - - def DeleteProfile(self,oldProfileName:'str',flags:'Any'=0) -> 'None': - """ - Deletes a profile. - -Args: - - oldProfileName(str):The name of the profile to be deleted. - flags(Any): - -Returns: - - None - - """ - pass - - - def CopyProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': - """ - Copies a profile. - -Args: - - oldProfileName(str):The name of the profile to copy. - Password(str):Must be None - newProfileName(str):The new name of the copied profile. - uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. - flags(Any): - -Returns: - - None - - """ - pass - - - def RenameProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'Any'=0,flags:'Any'=0) -> 'None': - """ - Assigns a new name to a profile. - -Args: - - oldProfileName(str):The current name of the profile to rename. - Password(str):Must be None - newProfileName(str):The new name of the profile to rename. - uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. - flags(Any): - -Returns: - - None - - """ - pass - - - def SetDefaultProfile(self,profileName:'str',flags:'Any'=0) -> 'None': - """ - Sets or clears a client's default profile. - -Args: - - profileName(str):The name of the profile that will become the default, or None. Setting profileName to None indicates that SetDefaultProfile should remove the existing default profile, leaving the client without a default. - flags(Any): - -Returns: - - None - - """ - pass - - - def AdminServices(self,profileName:'str',Password:'str'=None,uiParam:'Any'=0,flags:'Any'=0) -> 'Any': - """ - Provides access to a message service administration object for making changes to the message services in a profile. - -Args: - - profileName(str):The name of the profile to be modified. - Password(str): - uiParam(Any):A handle of the parent window for any dialog boxes or windows that this method displays. - flags(Any): - -Returns: - - Any - - """ - pass - - -class PyIPropertyBag(object): - """A Python wrapper for a COM IPropertyBag interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Read(self,propName:'Any',propType:'Any',errorLog:'Any'=None) -> 'Any': - """ - Called by the control to read a property from the storage provided by the - -container. - -Args: - - propName(Any):Name of the property to read. - propType(Any):The type of the object to read. Must be a VT_* Variant Type constant. - errorLog(Any):The caller's PyIErrorLog object in which the property bag stores any errors that occur during reads. Can be None in which case the caller is not interested in errors.CommentsThe result is a Python object, mapped from a COM VARIANT of type as specified in the propType parameter. - -Returns: - - Any - - """ - pass - - - def Write(self,propName:'Any',value:'Any') -> 'None': - """ - Called by the control to write each property in turn to the storage provided by the - -container. - -Args: - - propName(Any):Name of the property to read. - value(Any):The value for the property. The value must be able to be converted to a COM VARIANT. - -Returns: - - None - - """ - pass - - -class PyIPropertyChange(object): - """Interface used to specify a change to a property""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ApplyToPropVariant(self,OrigVal:'Any') -> 'Any': - """ - Applies the change to a variant value - -Args: - - OrigVal(Any):The value to be modified - -Returns: - - Any - - """ - pass - - -class PyIPropertyChangeArray(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'Any': - """ - Returns the number of changes in the array - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAt(self,Index:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves a change by zero-based index - -Args: - - Index(Any):Index of the change to retrieve - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def InsertAt(self,Index:'Any',PropChange:'Any') -> 'None': - """ - Inserts a change at a specific position - -Args: - - Index(Any):Position at which to place the change - PropChange(Any):The change to be added - -Returns: - - None - - """ - pass - - - def Append(self,PropChange:'Any') -> 'None': - """ - Adds a change to the end of the array - -Args: - - PropChange(Any):The change to be added - -Returns: - - None - - """ - pass - - - def AppendOrReplace(self,PropChange:'Any') -> 'None': - """ - Adds a change, or replaces if an identical property key is already - -in container - -Args: - - PropChange(Any):The change to be added or replaced - -Returns: - - None - - """ - pass - - - def RemoveAt(self,Index:'Any') -> 'None': - """ - Removes a change from the array - -Args: - - Index(Any):Index of change to be removed - -Returns: - - None - - """ - pass - - - def IsKeyInArray(self,key:'Any') -> 'Any': - """ - Checks if array contains a change to a property - -Args: - - key(Any):Property key to look for - -Returns: - - Any - - """ - pass - - -class PyIPropertyDescription(object): - """Gives access to the details of a property definition""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPropertyKey(self,) -> 'Any': - """ - Returns the unique identifier for a property - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetCanonicalName(self,) -> 'Any': - """ - Returns the name of the property - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetPropertyType(self,) -> 'Any': - """ - Returns the variant type of the property (VT_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDisplayName(self,) -> 'Any': - """ - Returns the property name as shown in the UI - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetEditInvitation(self,) -> 'Any': - """ - Returns the input prompt used in edit controls - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTypeFlags(self,mask:'Any') -> 'Any': - """ - Returns type flags for the property - -Args: - - mask(Any):Specifies which flags to retrieve (PDTF_*) - -Returns: - - Any - - """ - pass - - - def GetViewFlags(self,) -> 'Any': - """ - Returns the view flags that control how the property is displayed - -(PDVF_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDefaultColumnWidth(self,) -> 'Any': - """ - Returns the default width in characters - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDisplayType(self,) -> 'Any': - """ - Returns the display type (PDDT_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetColumnState(self,) -> 'Any': - """ - Returns flags that control how property is displayed in column - -(SHCOLSTATE_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetGroupingRange(self,) -> 'Any': - """ - Returns property's grouping attributes (PDGR_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRelativeDescriptionType(self,) -> 'Any': - """ - Returns the relative description type (PDRDT_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRelativeDescription(self,var1:'Any',var2:'Any') -> 'Tuple[Any, Any]': - """ - Compares two values - -Args: - - var1(Any):The first value - var2(Any):The second value - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetSortDescription(self,) -> 'Any': - """ - Returns value that determines how sorting options are - -displayed (PDSD_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSortDescriptionLabel(self,Descending:'Any') -> 'Any': - """ - Returns description of current sort order - -Args: - - Descending(Any):Indicates if order is reversed - -Returns: - - Any - - """ - pass - - - def GetAggregationType(self,) -> 'Any': - """ - Describes how properties for multiple items are displayed - -(PDAT_*) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetConditionType(self,) -> 'Tuple[Any, Any]': - """ - Returns options that determine how the property is used - -to build a search query - -Args: - - - -Returns: - - Tuple[Any, Any]:PyIPropertyDescription.GetConditionType - -(int, int) = GetConditionType()Returns options that determine how the property is used - -to build a search query -Return ValueReturns the condition type (PDCOT_*) and default operation (COP_*) - - - """ - pass - - - def GetEnumTypeList(self,riid:'PyIID') -> 'Any': - """ - Returns an interface used for querying - -valid property range - -Args: - - riid(PyIID):IID of the requested interface - -Returns: - - Any - - """ - pass - - - def CoerceToCanonicalValue(self,Value:'Any') -> 'Any': - """ - Converts a variant value to the exact type expected by - -the property - -Args: - - Value(Any):The property value to be convertedCommentsThis method mutates the PyPROPVARIANT in place. It may be cleared on failure.Return ValueReturns the HRESULT from the operation on success. - -Returns: - - Any:The property value to be convertedComments - -This method mutates the PyPROPVARIANT in place. It may be cleared on failure. -Return ValueReturns the HRESULT from the operation on success. - - - """ - pass - - - def FormatForDisplay(self,Value:'Any',Flags:'Any') -> 'Any': - """ - Converts a value to its string representation - -Args: - - Value(Any):The value to be formatted - Flags(Any):Combination of PROPDESC_FORMAT_FLAGS (PDFF_*) - -Returns: - - Any - - """ - pass - - - def IsValueCanonical(self,Value:'Any') -> 'Any': - """ - Determines if a value exactly matches the specification for - -the property - -Args: - - Value(Any):The value to check - -Returns: - - Any - - """ - pass - - -class PyIPropertyDescriptionAliasInfo(object): - """Interface that gives access to the sorting columns for a property""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetSortByAlias(self,riid:'PyIID') -> 'Any': - """ - Returns the primary column used - -for sorting - -Args: - - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetAdditionalSortByAliases(self,riid:'PyIID') -> 'Any': - """ - Returns secondary - -sorting columns - -Args: - - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - -class PyIPropertyDescriptionList(object): - """Container for a number of property descriptions""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'Any': - """ - Gets the number of properties in the list - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAt(self,Elem:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves a description from the list - -Args: - - Elem(Any):Index of the element to return - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - -class PyIPropertyDescriptionSearchInfo(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetSearchInfoFlags(self,) -> 'Any': - """ - Returns flags controlling how property is indexed - -Args: - - - -Returns: - - Any:PyIPropertyDescriptionSearchInfo.GetSearchInfoFlags - -int = GetSearchInfoFlags()Returns flags controlling how property is indexed -Return ValueReturns a combination of PROPDESC_SEARCHINFO_FLAGS values - - - """ - pass - - - def GetColumnIndexType(self,) -> 'Any': - """ - Returns flags indicating type of property - -Args: - - - -Returns: - - Any:PyIPropertyDescriptionSearchInfo.GetColumnIndexType - -int = GetColumnIndexType()Returns flags indicating type of property -Return ValueReturns a value from the PROPDESC_COLUMNINDEX_TYPE enum - - - """ - pass - - - def GetProjectionString(self,) -> 'Any': - """ - Returns the canonical name of the property - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetMaxSize(self,) -> 'Any': - """ - Returns the maximum size specified in search options - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIPropertyEnumType(object): - """Contains information about an allowable value or range for a property""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetEnumType(self,) -> 'Any': - """ - Retrieves the type (PROPENUMTYPE) - -Args: - - - -Returns: - - Any:PyIPropertyEnumType.GetEnumType - -int = GetEnumType()Retrieves the type (PROPENUMTYPE) -Return Valuepscon.PET_* - - - """ - pass - - - def GetValue(self,) -> 'Any': - """ - Retrieves the defined value - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRangeMinValue(self,) -> 'Any': - """ - Returns the minimum allowed value for the property - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRangeSetValue(self,) -> 'Any': - """ - Returns a fixed value defined for the property - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDisplayText(self,) -> 'None': - """ - Returns the display text for the enumerated type - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIPropertyEnumTypeList(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'Any': - """ - Returns the number of objects in the list - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAt(self,itype:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves an item by index - -Args: - - itype(Any):Zero based index of type to return - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def FindMatchingIndex(self,Cmp:'Any') -> 'Any': - """ - Attempts to match the specified value to one of the allowable - -values for the property - -Args: - - Cmp(Any):A value to match against the defined values of the property - -Returns: - - Any - - """ - pass - - -class PyIPropertySetStorage(object): - """Container for a collection of property sets. - -Can be iterated over to enumerate property sets.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Create(self,fmtid:'PyIID',clsid:'PyIID',Flags:'Any',Mode:'Any') -> 'Any': - """ - Creates a new property set in the storage object - -Args: - - fmtid(PyIID):GUID identifying a property set, pythoncom.FMTID_* - clsid(PyIID):CLSID of property set handler, usually same as fmtid - Flags(Any):Specifies behaviour of property set, storagecon.PROPSETFLAG_* - Mode(Any):Access mode, combination of storagecon.STGM_* flags - -Returns: - - Any - - """ - pass - - - def Open(self,fmtid:'PyIID',Mode:'Any') -> 'Any': - """ - Opens an existing property set - -Args: - - fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* - Mode(Any):Access mode, combination of storagecon.STGM_* flags - -Returns: - - Any - - """ - pass - - - def Delete(self,fmtid:'PyIID') -> 'None': - """ - Removes a property set from this storage object - -Args: - - fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* - -Returns: - - None - - """ - pass - - - def Enum(self,) -> 'Any': - """ - Creates an iterator to enumerate contained property - -sets - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIPropertyStorage(object): - """Structured storage object that contains a set of properties. - -Supports iteration to list properties.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ReadMultiple(self,props:'Tuple[Any, ...]') -> 'Tuple[Any, ...]': - """ - Reads specified properties from the current property set. - -Args: - - props(Tuple[Any, ...]):Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type - -Returns: - - Tuple[Any, ...]:Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type - - - """ - pass - - - def WriteMultiple(self,props:'Tuple[Any, ...]',values:'Tuple[Any, ...]',propidNameFirst:'Any'=2) -> 'None': - """ - Creates or modifies properties in the property set - -Args: - - props(Tuple[Any, ...]):Sequence containing names or integer ids of properties to write - values(Tuple[Any, ...]):The values for the properties. - propidNameFirst(Any):Minimum property id to be assigned to new properties specified by name - -Returns: - - None - - """ - pass - - - def DeleteMultiple(self,props:'Tuple[Any, ...]') -> 'None': - """ - Deletes properties from the property set - -Args: - - props(Tuple[Any, ...]):Sequence containing names or IDs of properties to be deleted - -Returns: - - None - - """ - pass - - - def ReadPropertyNames(self,props:'Tuple[Any, ...]') -> 'Tuple[Any, ...]': - """ - Retrieves any existing string names for the specified - -property identifiers. - -Args: - - props(Tuple[Any, ...]):Sequence of ints containing property IDs. - -Returns: - - Tuple[Any, ...] - - """ - pass - - - def WritePropertyNames(self,props:'Tuple[Any, ...]',names:'Tuple[str, ...]') -> 'None': - """ - Assigns string names to a specified array of property IDs in the - -current property set. - -Args: - - props(Tuple[Any, ...]):Sequence containing the property IDs. - names(Tuple[str, ...]):Equal length sequence of property names. - -Returns: - - None - - """ - pass - - - def DeletePropertyNames(self,props:'Tuple[Any, ...]') -> 'None': - """ - Removes property names from specified properties. - -Args: - - props(Tuple[Any, ...]):Sequence of ints containing property IDs. - -Returns: - - None - - """ - pass - - - def Commit(self,CommitFlags:'Any') -> 'None': - """ - Persists the property set to its base storage - -Args: - - CommitFlags(Any):Combination of storagecon.STGC_* flags - -Returns: - - None - - """ - pass - - - def Revert(self,) -> 'None': - """ - Discards any changes that have been made - -Args: - - - -Returns: - - None - - """ - pass - - - def Enum(self,) -> 'Any': - """ - Creates an enumerator for properties in the property set - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetTimes(self,ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': - """ - Sets the creation, last access, and modification time - -Args: - - ctime(PyTime):Creation time, or None for no change - atime(PyTime):Last access time, or None for no change - mtime(PyTime):Modification time, or None for no changeCommentsSome property sets do not support these times. - -Returns: - - None - - """ - pass - - - def SetClass(self,clsid:'PyIID') -> 'None': - """ - Sets the GUID for the property set - -Args: - - clsid(PyIID):Description for clsid - -Returns: - - None - - """ - pass - - - def Stat(self,) -> 'Any': - """ - Returns various infomation about the property set - -Args: - - - -Returns: - - Any:PyIPropertyStorage.Stat - -tuple = Stat()Returns various infomation about the property set -Return ValueReturns a tuple representing a STATPROPSETSTG struct. - - - """ - pass - - -class PyIPropertyStore(object): - """Contains a collection of properties""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'Any': - """ - Returns the number of properties in the store - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAt(self,iProp:'Any') -> 'Any': - """ - Returns the property key for the specified property - -Args: - - iProp(Any):Zero-based index of property - -Returns: - - Any - - """ - pass - - - def GetValue(self,Key:'Any') -> 'Any': - """ - Retrieves the value of a property - -Args: - - Key(Any):Property key as returned by PyIPropertyStore::GetAt - -Returns: - - Any - - """ - pass - - - def SetValue(self,Key:'Any',Value:'Any') -> 'None': - """ - Sets the value of a property - -Args: - - Key(Any):Property key (see PyIPropertyStore::GetAt) - Value(Any):Variant value which can be converted to the appropriate variant type for the property Pass a VT_EMPTY variant to indicate that the property should be removed. - -Returns: - - None - - """ - pass - - - def Commit(self,) -> 'None': - """ - Commits property changes - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIPropertyStoreCache(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetState(self,key:'Any') -> 'Any': - """ - Retrieves the current state of a property - -Args: - - key(Any):Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) - -Returns: - - Any:Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) - - - """ - pass - - - def GetValueAndState(self,key:'Any') -> 'Tuple[Any, Any]': - """ - Retrieves the current value and state of a - -property - -Args: - - key(Any):Property identifier - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def SetState(self,key:'Any',state:'Any') -> 'None': - """ - Sets the state of a property - -Args: - - key(Any):Property identifier - state(Any):Value from the PSC_STATE enum (pscon.PSC_*) - -Returns: - - None - - """ - pass - - - def SetValueAndState(self,key:'Any',value:'Any',state:'Any') -> 'None': - """ - Sets the value and state of a property - -Args: - - key(Any):Property identifier - value(Any):The new value - state(Any):The new state (pscon.PSC_*) - -Returns: - - None - - """ - pass - - -class PyIPropertyStoreCapabilities(object): - """Property providers use this interface to indicate whether properties are - -writeable.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsPropertyWritable(self,key:'Any') -> 'Any': - """ - Asks provider if a property can be editted. - -Args: - - key(Any):Property identifier - -Returns: - - Any - - """ - pass - - -class PyIPropertySystem(object): - """Wraps the IPropertySystem interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPropertyDescription(self,Key:'Any',riid:'PyIID') -> 'Any': - """ - Returns an interface used to describe a - -property - -Args: - - Key(Any):Fmtid and propertyid that uniquely identifies a property - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetPropertyDescriptionByName(self,CanonicalName:'Any',riid:'PyIID') -> 'Any': - """ - Returns an interface used to - -describe a property - -Args: - - CanonicalName(Any):Registered name of the property - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetPropertyDescriptionListFromString(self,PropList:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves property - -descriptions from a string of property names - -Args: - - PropList(Any):String containing a list of properties and flags - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def EnumeratePropertyDescriptions(self,Filter:'Any',riid:'PyIID') -> 'Any': - """ - Returns an interface used to - -list defined properties - -Args: - - Filter(Any):Value from PROPDESC_ENUMFILTER (pscon.PDEF_*) that limits what types of properties are listed - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def FormatForDisplay(self,Key:'Any',Value:'Any',Flags:'Any') -> 'Any': - """ - Formats a property into a string - -Args: - - Key(Any):Fmtid and property id that identifies the property - Value(Any):The value to format - Flags(Any):Combination of PROPDESC_FORMAT_FLAGS (pscon.PDFF_*) indicating formatting options - -Returns: - - Any - - """ - pass - - - def RegisterPropertySchema(self,Path:'Any') -> 'None': - """ - Registers a set of properties defined in a .propdesc file - -Args: - - Path(Any):Path to a property schema XML file (.propdesc) - -Returns: - - None - - """ - pass - - - def UnregisterPropertySchema(self,Path:'Any') -> 'None': - """ - Removes a set of registered properties - -Args: - - Path(Any):Path to a property schema XML file (.propdesc) - -Returns: - - None - - """ - pass - - - def RefreshPropertySchema(self,) -> 'None': - """ - Not currently implemented by the OS - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIProvideClassInfo(object): - """A Python interface to IProvideClassInfo""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetClassInfo(self,) -> 'Any': - """ - Gets information about the CO_CLASS. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIProvideClassInfo2(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetGUID(self,flags:'Any') -> 'PyIID': - """ - Gets the GUID for the object. - -Args: - - flags(Any):The flags for the GUID. - -Returns: - - PyIID - - """ - pass - - -class PyIProvideExpressionContexts(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumExpressionContexts(self,) -> 'None': - """ - Description of EnumStackFrames. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIProvideTaskPage(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPage(self,tpType:'Any',PersistChanges:'Any') -> 'None': - """ - Return a property sheet page handle for the spedified type - -(TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) - -Args: - - tpType(Any):Type of page to retreive (TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) - PersistChanges(Any):Indicates if changes should be saved automaticallyCommentsThere's not yet anything useful that can be done with this handle - return type subject to change - -Returns: - - None - - """ - pass - - -class PyIQueryAssociations(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Init(self,flags:'Any',assoc:'str',hkeyProgId:'PyHKEY'=None,hwnd:'int'=None) -> 'None': - """ - Initializes the IQueryAssociations interface and sets the root key to the - -appropriate ProgID. - -Args: - - flags(Any):One of shellcon.ASSOCF_* flags - assoc(str):The string data (ie, extension, prog-id, etc) - hkeyProgId(PyHKEY):Root registry key, can be None - hwnd(int):Reserved, must be 0 or None - -Returns: - - None - - """ - pass - - - def GetKey(self,flags:'Any',assocKey:'Any',arg:'str') -> 'Any': - """ - Searches for and retrieves a file association-related key from the - -registry. - -Args: - - flags(Any):Used to control the search. - assocKey(Any):Specifies the type of key that is to be returned. - arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used. - -Returns: - - Any - - """ - pass - - - def GetString(self,flags:'Any',assocStr:'Any',arg:'str') -> 'Any': - """ - Searches for and retrieves a file association-related string from the - -registry. - -Args: - - flags(Any):Used to control the search. - assocStr(Any):Specifies the type of string that is to be returned. - arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used.CommentsNote that ASSOCF_NOTRUNCATE semantics are currently not supported - the buffer passed is 2048 bytes long, and will be truncated by the shell if too small. - -Returns: - - Any - - """ - pass - - -class PyIRelatedItem(object): - """Interface used as the base for objects that have a related shell item - -(eg ITransferMediumItem, IDisplayItem, etc). Should not be used directly.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetItemIDList(self,) -> 'Any': - """ - Returns the ID list of the related item - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetItem(self,) -> 'Any': - """ - Returns the related item - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIRemoteDebugApplication(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ResumeFromBreakPoint(self,prptFocus:'Any',bra:'Any',era:'Any') -> 'None': - """ - Continue an application which is currently in a breakpoint. - -Args: - - prptFocus(Any):Description for prptFocus - bra(Any):Break resume action - era(Any):Error resume action - -Returns: - - None - - """ - pass - - - def CauseBreak(self,) -> 'None': - """ - Causes the application to break into the debugger at the earliest - -opportunity. - -Args: - - - -Returns: - - None - - """ - pass - - - def ConnectDebugger(self,pad:'Any') -> 'None': - """ - Connects a debugger to the application. - -Args: - - pad(Any):Description for padCommentsOnly one debugger may be connected at a time; this method fails if there is already a debugger connected. - -Returns: - - None - - """ - pass - - - def DisconnectDebugger(self,) -> 'None': - """ - Disconnects the current debugger from the application. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDebugger(self,) -> 'Any': - """ - Returns the current debugger connected to - -the application. - -Args: - - - -Returns: - - Any - - """ - pass - - - def CreateInstanceAtApplication(self,rclsid:'PyIID',pUnkOuter:'Any',dwClsContext:'Any',riid:'PyIID') -> 'Any': - """ - Create objects in the application - -process address space. - -Args: - - rclsid(PyIID):Description for rclsid - pUnkOuter(Any):Description for pUnkOuter - dwClsContext(Any):Description for dwClsContext - riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. - -Returns: - - Any - - """ - pass - - - def QueryAlive(self,) -> 'None': - """ - Returns True if alive, else False. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumThreads(self,) -> 'Any': - """ - Enumerates all threads known - -to be associated with the application. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetName(self,) -> 'None': - """ - Description of GetName. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetRootNode(self,) -> 'Any': - """ - Returns the application node under which - -all nodes associated with the application are added. - -Args: - - - -Returns: - - Any - - """ - pass - - - def EnumGlobalExpressionContexts(self,) -> 'Any': - """ - Enumerates all - -global expression contexts - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIRemoteDebugApplicationEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnConnectDebugger(self,pad:'Any') -> 'None': - """ - Description of OnConnectDebugger. - -Args: - - pad(Any):Description for pad - -Returns: - - None - - """ - pass - - - def OnDisconnectDebugger(self,) -> 'None': - """ - Description of OnDisconnectDebugger. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnSetName(self,pstrName:'Any') -> 'None': - """ - Description of OnSetName. - -Args: - - pstrName(Any):Description for pstrName - -Returns: - - None - - """ - pass - - - def OnDebugOutput(self,pstr:'Any') -> 'None': - """ - Description of OnDebugOutput. - -Args: - - pstr(Any):Description for pstr - -Returns: - - None - - """ - pass - - - def OnClose(self,) -> 'None': - """ - Description of OnClose. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnEnterBreakPoint(self,prdat:'Any') -> 'None': - """ - Description of OnEnterBreakPoint. - -Args: - - prdat(Any):Description for prdat - -Returns: - - None - - """ - pass - - - def OnLeaveBreakPoint(self,prdat:'Any') -> 'None': - """ - Description of OnLeaveBreakPoint. - -Args: - - prdat(Any):Description for prdat - -Returns: - - None - - """ - pass - - - def OnCreateThread(self,prdat:'Any') -> 'None': - """ - Description of OnCreateThread. - -Args: - - prdat(Any):Description for prdat - -Returns: - - None - - """ - pass - - - def OnDestroyThread(self,prdat:'Any') -> 'None': - """ - Description of OnDestroyThread. - -Args: - - prdat(Any):Description for prdat - -Returns: - - None - - """ - pass - - - def OnBreakFlagChange(self,abf:'Any',prdatSteppingThread:'Any') -> 'None': - """ - Description of OnBreakFlagChange. - -Args: - - abf(Any):Description for abf - prdatSteppingThread(Any):Description for prdatSteppingThread - -Returns: - - None - - """ - pass - - -class PyIRemoteDebugApplicationThread(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetSystemThreadId(self,) -> 'None': - """ - Description of GetSystemThreadId. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetApplication(self,) -> 'None': - """ - Description of GetApplication. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumStackFrames(self,) -> 'None': - """ - Description of EnumStackFrames. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDescription(self,) -> 'None': - """ - Description of GetDescription. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetNextStatement(self,pStackFrame:'Any',pCodeContext:'Any') -> 'None': - """ - Description of SetNextStatement. - -Args: - - pStackFrame(Any):Description for pStackFrame - pCodeContext(Any):Description for pCodeContext - -Returns: - - None - - """ - pass - - - def GetState(self,) -> 'None': - """ - Description of GetState. - -Args: - - - -Returns: - - None - - """ - pass - - - def Suspend(self,) -> 'None': - """ - Description of Suspend. - -Args: - - - -Returns: - - None - - """ - pass - - - def Resume(self,) -> 'None': - """ - Description of Resume. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSuspendCount(self,) -> 'None': - """ - Description of GetSuspendCount. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIRunningObjectTable(object): - """A Python interface to IRunningObjectTable""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Register(self,) -> 'Any': - """ - Registers an object and its identifying moniker in the Running Object - -Table (ROT). - -Args: - - - -Returns: - - Any - - """ - pass - - - def Revoke(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsRunning(self,objectName:'Any') -> 'Any': - """ - Checks whether an object is running. - -Args: - - objectName(Any):The PyIMoniker interface on the moniker to search for in the Running Object Table.Return ValueDescriptionS_OK (ie, 0)The object identified by objectName is running.S_FALSE (ie, 1)There is no entry for objectName in the ROT, or that the object it identifies is no longer running (in which case, the entry is revoked). - -Returns: - - Any - - """ - pass - - - def GetObject(self,objectName:'Any') -> 'Any': - """ - Checks whether an object is running. - -Args: - - objectName(Any):The PyIMoniker interface on the moniker to search for in the Running Object Table. - -Returns: - - Any - - """ - pass - - - def EnumRunning(self,) -> 'Any': - """ - Creates an enumerator that can list the monikers of - -all the objects currently registered in the Running Object Table (ROT). - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIScheduledWorkItem(object): - """Python object that encapsulates the IScheduledWorkItem interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateTrigger(self,) -> 'Tuple[Any, Any]': - """ - Creates a new trigger for a task, returns index and - -new ITaskTrigger interface - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def DeleteTrigger(self,Trigger:'Any') -> 'None': - """ - Deletes specified trigger - -Args: - - Trigger(Any):Index of trigger to delete - -Returns: - - None - - """ - pass - - - def GetTriggerCount(self,) -> 'Any': - """ - Returns number of triggers defined for the task - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTrigger(self,iTrigger:'Any') -> 'Any': - """ - Retrieves ITaskTrigger interface for specified trigger - -index - -Args: - - iTrigger(Any):Index of trigger to retrieve - -Returns: - - Any - - """ - pass - - - def GetTriggerString(self,) -> 'Any': - """ - Creates a human-readable summary of specified trigger - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRunTimes(self,Count:'Any',Begin:'PyTime',End:'PyTime') -> 'Tuple[PyTime, Any, Any, Any]': - """ - Return specified number of run times within given time - -frame - -Args: - - Count(Any):Number of run times to retrieve - Begin(PyTime):Start time, defaults to current time if not passed or None - End(PyTime):End time, defaults to unlimited if not passed or None - -Returns: - - Tuple[PyTime, Any, Any, Any] - - """ - pass - - - def GetNextRunTime(self,) -> 'PyTime': - """ - Returns next time that task is scheduled to run - -Args: - - - -Returns: - - PyTime - - """ - pass - - - def SetIdleWait(self,wIdleMinutes:'Any',wDeadlineMinutes:'Any') -> 'None': - """ - Sets idle parms for task with trigger of type TASK_EVENT_TRIGGER_ON_IDLE - -Args: - - wIdleMinutes(Any):Nbr of minutes computer must be idle before task fires - wDeadlineMinutes(Any):Maximum nbr of minutes task will wait for computer to become idle - -Returns: - - None - - """ - pass - - - def GetIdleWait(self,) -> 'Tuple[Any, Any]': - """ - Gets IdleMinutes and DeadlineMinutes parms for task with trigger - -of type TASK_EVENT_TRIGGER_ON_IDLE - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def Run(self,) -> 'None': - """ - Starts task - -Args: - - - -Returns: - - None - - """ - pass - - - def Terminate(self,) -> 'None': - """ - Terminate process if task is running - -Args: - - - -Returns: - - None - - """ - pass - - - def EditWorkItem(self,hParent:'int',dwReserved:'Any') -> 'None': - """ - Brings up standard Scheduled Task dialog - -Args: - - hParent(int):Reserved, use 0 or None if passed - dwReserved(Any):Reserved, use 0 if passed - -Returns: - - None - - """ - pass - - - def GetMostRecentRunTime(self,) -> 'PyTime': - """ - Returns last time task ran - -Args: - - - -Returns: - - PyTime - - """ - pass - - - def GetStatus(self,) -> 'Any': - """ - Returns status (SCHED_S_TASK... constants) - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetExitCode(self,) -> 'Tuple[Any, Any]': - """ - Returns tuple of task's exit code and error returned to Task - -Scheduler if process could not start - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def SetComment(self,Comment:'Any') -> 'None': - """ - Set comment string for task - -Args: - - Comment(Any):Freeform comment string - -Returns: - - None - - """ - pass - - - def GetComment(self,) -> 'str': - """ - Return comment string associated with task. - -Args: - - - -Returns: - - str - - """ - pass - - - def SetCreator(self,Creator:'Any') -> 'None': - """ - Specify who (or what) created task, can be any string - -Args: - - Creator(Any):Originator of task, does not have to be valid username - -Returns: - - None - - """ - pass - - - def GetCreator(self,) -> 'None': - """ - Returns creator info, can be any string data - -Args: - - - -Returns: - - None - - """ - pass - - - def SetWorkItemData(self,Data:'str') -> 'None': - """ - Set data associated with task (treated as uninterpreted bytes) - -Args: - - Data(str):Character data, treated as uninterpreted bytes - -Returns: - - None - - """ - pass - - - def GetWorkItemData(self,) -> 'str': - """ - Retrieve data associated with task - -Args: - - - -Returns: - - str - - """ - pass - - - def SetErrorRetryCount(self,wRetryCount:'Any') -> 'None': - """ - Specify nbr of times to attempt to run task if it can't start (not - -currently implemented) - -Args: - - wRetryCount(Any):Nbr of attemps to start task - -Returns: - - None - - """ - pass - - - def GetErrorRetryCount(self,) -> 'None': - """ - Return nbr of times Task scheduler should try to run task (not - -currently implemented) - -Args: - - - -Returns: - - None - - """ - pass - - - def SetErrorRetryInterval(self,RetryInterval:'Any') -> 'None': - """ - Interval in minutes between attempts to run task. Not - -implemented according to SDK - -Args: - - RetryInterval(Any):Interval in minutes - -Returns: - - None - - """ - pass - - - def GetErrorRetryInterval(self,) -> 'None': - """ - Returns nbr of minutes between attempts to run task. Not - -implemented according to SDK - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFlags(self,dwFlags:'Any') -> 'None': - """ - Set flags for task - -Args: - - dwFlags(Any):Combination of TASK_FLAG_* constants - -Returns: - - None - - """ - pass - - - def GetFlags(self,) -> 'Any': - """ - Returns flags for task (TASK_FLAG_* constants) - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetAccountInformation(self,AccountName:'Any',Password:'Any') -> 'None': - """ - Set username and password under which task will run - -Args: - - AccountName(Any):AccountName, use "" for local system account (can only be used by Administrators) - Password(Any):Password - Can be None for local System account, or if TASK_FLAG_RUN_ONLY_IF_LOGGED_ON is setCommentsOn some systems, username and password are verified at the time the task is saved, on others when the task tries to run - -Returns: - - None - - """ - pass - - - def GetAccountInformation(self,) -> 'Any': - """ - Returns username that task will run under - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIServerSecurity(object): - """Interface used to access client security settings and perform impersonation""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryBlanket(self,Capabilities:'Any'=0) -> 'Any': - """ - Retrieves security settings specified by the client - -Args: - - Capabilities(Any):Can be EOAC_MAKE_FULLSIC for SChannel provider - -Returns: - - Any - - """ - pass - - - def ImpersonateClient(self,) -> 'None': - """ - Initiates impersonation of client - -Args: - - - -Returns: - - None - - """ - pass - - - def RevertToSelf(self,) -> 'None': - """ - Ends impersonation of client - -Args: - - - -Returns: - - None - - """ - pass - - - def IsImpersonating(self,) -> 'Any': - """ - Determines if server is currently impersonating a client - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIServiceProvider(object): - """A Python interface to IServiceProvider""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryService(self,clsid:'PyIID',iid:'PyIID') -> 'Any': - """ - Creates or accesses the specified service and returns an - -interface object to the specified interface for the service. - -Args: - - clsid(PyIID):Unique identifier for the requested service. - iid(PyIID):Unique identifier for the requested interface on the service. - -Returns: - - Any - - """ - pass - - -class PyIShellBrowser(object): - """Exposed by Windows Explorer and the Open File common dialog box to provide services for - -namespace extensions.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InsertMenusSB(self,hmenuShared:'int',lpMenuWidths:'Any') -> 'Any': - """ - Updates a composite menu with container's options - -Args: - - hmenuShared(int):Newly created menu that contains no items - lpMenuWidths(Any):Tuple of 6 ints. Items 0,2,and 4 are updated when the tuple is returned. - -Returns: - - Any - - """ - pass - - - def SetMenuSB(self,hmenuShared:'int',holemenuRes:'int',hwndActiveObject:'int') -> 'None': - """ - Attaches a shared menu to a shell view window - -Args: - - hmenuShared(int):Handle to the shared menu - holemenuRes(int):Reserved, use only None (or 0) - hwndActiveObject(int):Handle to the shell window - -Returns: - - None - - """ - pass - - - def RemoveMenusSB(self,hmenuShared:'int') -> 'None': - """ - Asks container to remove any items it added to a composite menu - -Args: - - hmenuShared(int):Handle to the composite menu - -Returns: - - None - - """ - pass - - - def SetStatusTextSB(self,pszStatusText:'Any') -> 'None': - """ - Sets the status text in view's status bar - -Args: - - pszStatusText(Any):New status to be displayed - -Returns: - - None - - """ - pass - - - def EnableModelessSB(self,fEnable:'Any') -> 'None': - """ - Enables or disables modeless dialogs - -Args: - - fEnable(Any):Use True to enable or False to disable modeless dialog boxes - -Returns: - - None - - """ - pass - - - def TranslateAcceleratorSB(self,pmsg:'PyMSG',wID:'Any') -> 'None': - """ - Translates keystrokes used as menu item activators - -Args: - - pmsg(PyMSG):Keystroke message to be translated - wID(Any):Menu command id for the keystroke - -Returns: - - None - - """ - pass - - - def BrowseObject(self,pidl:'Any',wFlags:'Any') -> 'None': - """ - Navigates to a different location - -Args: - - pidl(Any):Item id list that specifies the new browse location, can be None - wFlags(Any):Combination of shellcon.SBSP_* flags - -Returns: - - None - - """ - pass - - - def GetViewStateStream(self,grfMode:'Any') -> 'Any': - """ - Returns a stream that can be used to access view state - -information - -Args: - - grfMode(Any):Read/write mode, one of STGM_READ,STGM_WRITE,STGM_READWRITE - -Returns: - - Any - - """ - pass - - - def GetControlWindow(self,_id:'Any') -> 'None': - """ - Returns a handle to one of the browser's control elements - -Args: - - _id(Any):One of shellcon.FCW_* values - -Returns: - - None - - """ - pass - - - def SendControlMsg(self,_id:'Any',uMsg:'Any',wParam:'Any',lParam:'Any') -> 'Any': - """ - Sends a control msg to browser's toolbar or status bar - -Args: - - _id(Any):shellcon.FCW_TOOLBAR or FCW_STATUS - uMsg(Any):The message to send - wParam(Any):Value is dependent on the message - lParam(Any):Value is dependent on the message - -Returns: - - Any - - """ - pass - - - def QueryActiveShellView(self,) -> 'Any': - """ - Returns the currently displayed view - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnViewWindowActive(self,pshv:'Any') -> 'None': - """ - Callback triggered when a view window is activated - -Args: - - pshv(Any):The activated view object - -Returns: - - None - - """ - pass - - - def SetToolbarItems(self,lpButtons:'Any',uFlags:'Any') -> 'None': - """ - Adds toolbar buttons to the browser's toolbar - -Args: - - lpButtons(Any):Sequence of tuples describing the buttons to be added - uFlags(Any):Indicates button positions, combination of shellcon.FCT_* - -Returns: - - None - - """ - pass - - -class PyIShellExtInit(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,pFolder:'Any',pDataObject:'Any',hkey:'int') -> 'None': - """ - Description of Initialize. - -Args: - - pFolder(Any):Description for pFolder - pDataObject(Any):Description for pDataObject - hkey(int):Description for hkey - -Returns: - - None - - """ - pass - - -class PyIShellFolder(object): - """Interface that represents an Explorer folder""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ParseDisplayName(self,hwndOwner:'int',pbc:'Any',DisplayName:'Any',Attributes:'Any'=0) -> 'Any': - """ - Returns the PIDL of an item in a shell folder - -Args: - - hwndOwner(int):Window in which to display any dialogs or message boxes, can be 0 - pbc(Any):Bind context that affects how parsing is performed, can be None - DisplayName(Any):Display name to parse, format is dependent on the shell folder. Desktop folder will accept a file path, as well as guids of the form ::{guid} Example: '::%s\\::%s' %(shell.CLSID_MyComputer,shell.CLSID_ControlPanel) - Attributes(Any):Combination of shellcon.SFGAO_* constants specifying which attributes should be returnedReturn ValueThe result is a tuple of cchEaten, pidl, attrItems[0] int : cchEatenthe number of characters of the input name that were parsed[1] PyIDL : pidlspecifies the relative path from the parsing folder to the object[2] int : Attributesreturns any requested attributes - -Returns: - - Any:Combination of shellcon.SFGAO_* constants specifying which attributes should be returned -Return ValueThe result is a tuple of cchEaten, pidl, attr -Items[0] int : cchEaten -the number of characters of the input name that were parsed -[1] PyIDL : pidl -specifies the relative path from the parsing folder to the object -[2] int : Attributes -returns any requested attributes - - - """ - pass - - - def EnumObjects(self,grfFlags:'Any',hwndOwner:'int'=None) -> 'Any': - """ - Creates an enumerator to list the contents of the shell folder - -Args: - - grfFlags(Any):Combination of shellcon.SHCONTF_* constants - hwndOwner(int):Window to use if any user interaction is required - -Returns: - - Any - - """ - pass - - - def BindToObject(self,pidl:'Any',pbc:'Any',riid:'PyIID') -> 'Any': - """ - Returns an IShellFolder interface for a subfolder - -Args: - - pidl(Any):Relative item id list that identifies the subfolder, can be multi-level - pbc(Any):Bind context to be used, can be None - riid(PyIID):IID of the desired interface, usually IID_IShellFolder - -Returns: - - Any - - """ - pass - - - def BindToStorage(self,pidl:'Any',pbc:'Any',riid:'PyIID') -> 'Any': - """ - Returns an interface to a storage object in a shell folder - -Args: - - pidl(Any):Relative pidl for the folder item, must be a single item id - pbc(Any):Bind context that affects how binding is performed, can be None - riid(PyIID):IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in - -Returns: - - Any:IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in - - - """ - pass - - - def CompareIDs(self,lparam:'Any',pidl1:'Any',pidl2:'Any') -> 'Any': - """ - Determines the sorting order of 2 items in shell folder - -Args: - - lparam(Any):Lower 16 bits specify folder-dependent sorting rules, 0 means to sort by display name. System folder view uses these as a column number. Upper sixteen bits is used for flags SHCIDS_ALLFIELDS or SHCIDS_CANONICALONLY - pidl1(Any):Item id list that idenfies an object relative to the folder - pidl2(Any):Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first - -Returns: - - Any:Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first - - - """ - pass - - - def CreateViewObject(self,hwndOwner:'Any',riid:'PyIID') -> 'Any': - """ - Creates a view object for a shell folder. - -Args: - - hwndOwner(Any):Parent window for a custom folder view, or 0 - riid(PyIID):IID of the desired interface, usually IID_IShellView - -Returns: - - Any - - """ - pass - - - def GetAttributesOf(self,pidl:'Tuple[Any, ...]',rgfInOut:'Any') -> 'Any': - """ - Queries attributes of items within the shell folder - -Args: - - pidl(Tuple[Any, ...]):A sequence of single-level pidls identifying items directly contained by the folder - rgfInOut(Any):Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items - -Returns: - - Any:Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items - - - """ - pass - - - def GetUIObjectOf(self,hwndOwner:'int',pidl:'Tuple[Any, ...]',riid:'PyIID',iidout:'PyIID',Reserved:'Any'=0) -> 'Tuple[Any, Any]': - """ - Creates an interface to one or more items in a shell - -folder - -Args: - - hwndOwner(int):Specifies a window in which to display any required dialogs or errors, can be 0 - pidl(Tuple[Any, ...]):A sequence of single-level pidls identifying items in the folder - riid(PyIID):The interface to create, one of IID_IContextMenu, IID_IContextMenu2, IID_IDataObject, IID_IDropTarget, IID_IExtractIcon, IID_IQueryInfo - iidout(PyIID):The interface to return. Can be used in the case where there is not a python wrapper for the desired interface. You must make certain that the interface identified by riid actually supports the iidout interface, or Bad Things Will Happen. It should always be safe to return PyIUnknown, which is the base for all interfaces.Return ValueReturns the Reserved parameter and the requested interface - Reserved(Any):Reserved, use 0 if passed in - -Returns: - - Tuple[Any, Any]:The interface to return. Can be used in the case where there is not a - -python wrapper for the desired interface. You must make certain that the interface identified by riid - -actually supports the iidout interface, or Bad Things Will Happen. - -It should always be safe to return PyIUnknown, which is the base for all interfaces. -Return ValueReturns the Reserved parameter and the requested interface - - - """ - pass - - - def GetDisplayNameOf(self,pidl:'Any',uFlags:'Any') -> 'Any': - """ - Returns the display name of an item within this shell folder - -Args: - - pidl(Any):PIDL that identifies the item relative to the parent folder - uFlags(Any):Combination of shellcon.SHGDN_* flags - -Returns: - - Any - - """ - pass - - - def SetNameOf(self,hwndOwner:'Any',pidl:'Any',Name:'Any',Flags:'Any') -> 'Any': - """ - Sets the display name of an item and changes its PIDL - -Args: - - hwndOwner(Any):Window in which to display any message boxes or dialogs, can be 0 - pidl(Any):PIDL that identifies the item relative to the parent folder - Name(Any):New name for the item - Flags(Any):Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item - -Returns: - - Any:Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item - - - """ - pass - - -class PyIShellFolder2(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDefaultSearchGUID(self,pguid:'PyIID') -> 'PyIID': - """ - Retrieves the default search for the folder - -Args: - - pguid(PyIID):Description for pguid - -Returns: - - PyIID - - """ - pass - - - def EnumSearches(self,) -> 'Any': - """ - Returns an interface that lists searches defined for - -the folder - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDefaultColumn(self,) -> 'Tuple[Any, Any]': - """ - Returns the columns used for sorting and display - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetDefaultColumnState(self,iColumn:'Any') -> 'Any': - """ - Returns flags indicating the default behaviour of the column - -Args: - - iColumn(Any):Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags - -Returns: - - Any:Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags - - - """ - pass - - - def GetDetailsEx(self,pidl:'Any',pscid:'Any') -> 'Any': - """ - Returns the details of an item by Column ID - -Args: - - pidl(Any):Relative id list of an item in the folder - pscid(Any):The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column - -Returns: - - Any:The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column - - - """ - pass - - - def GetDetailsOf(self,pidl:'Any',iColumn:'Any') -> 'Tuple[Any, Any, Any]': - """ - Returns the value or title of a column in the folder's Details - -view. - -Args: - - pidl(Any):The relative idl of an item in the folder. Use None to retrieve column title. - iColumn(Any):Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in characters, and string representation of the requested value - -Returns: - - Tuple[Any, Any, Any]:Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in - -characters, - -and string representation of the requested value - - - """ - pass - - - def MapColumnToSCID(self,Column:'Any') -> 'Any': - """ - Returns the unique identifier (FMTID, pid) of a column - -Args: - - Column(Any):The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. For Vista and later, this is the Property Key used with the property system interfaces. - -Returns: - - Any:The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. - -For Vista and later, this is the Property Key used with the property system interfaces. - - - """ - pass - - -class PyIShellIcon(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetIconOf(self,pidl:'Any') -> 'None': - """ - Description of GetIconOf. - -Args: - - pidl(Any):Description for pidl - -Returns: - - None - - """ - pass - - -class PyIShellIconOverlay(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetOverlayIndex(self,pidl:'Any') -> 'None': - """ - Description of GetOverlayIndex. - -Args: - - pidl(Any):Description for pidl - -Returns: - - None - - """ - pass - - - def GetOverlayIconIndex(self,pidl:'Any') -> 'None': - """ - Description of GetOverlayIconIndex. - -Args: - - pidl(Any):Description for pidl - -Returns: - - None - - """ - pass - - -class PyIShellIconOverlayIdentifier(object): - """Interface that supplies icon overlay information to the shell""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsMemberOf(self,path:'str',attrib:'Any') -> 'Any': - """ - Determines if a shell object should have an icon overlay - -Args: - - path(str):Fully qualified path of the shell object - attrib(Any):Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. The client implementation of this function returns the same values - ie, Python's True and False should not be used, as S_OK==0==False. - -Returns: - - Any:Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to - -display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. - -The client implementation of this function returns the same values - ie, - -Python's True and False should not be used, as S_OK==0==False. - - - """ - pass - - - def GetOverlayInfo(self,) -> 'Tuple[str, Any, Any]': - """ - Retrieves the path to the overlay - -icon - -Args: - - - -Returns: - - Tuple[str, Any, Any]:PyIShellIconOverlayIdentifier.GetOverlayInfo - -(PyUnicode, int, int) = GetOverlayInfo()Retrieves the path to the overlay - -icon -Return ValueReturns the path to the icon file, the index of icon within the file, and Flags containing - -combination of shellcon.ISIOI_ICON* flags - - - """ - pass - - - def GetPriority(self,) -> 'Any': - """ - Retrieves the relative priority of the overlay - -Args: - - - -Returns: - - Any:PyIShellIconOverlayIdentifier.GetPriority - -int = GetPriority()Retrieves the relative priority of the overlay -Return ValueImplementation of this function should return a number in the range 0-100 (0 is highest priority) - - - """ - pass - - -class PyIShellIconOverlayManager(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetFileOverlayInfo(self,path:'Any',attrib:'Any',flags:'Any') -> 'Any': - """ - Returns an index into the system image list for the icon - -image or overlay image - -Args: - - path(Any):Full path to the file - attrib(Any):File attributes (win32com.FILE_ATTRIBUTE_*) - flags(Any):SIOM_OVERLAYINDEX (1) or SIOM_ICONINDEX (2) - -Returns: - - Any - - """ - pass - - - def GetReservedOverlayInfo(self,path:'Any',attrib:'Any',flags:'Any',ireservedID:'Any') -> 'None': - """ - Description of GetReservedOverlayInfo. - -Args: - - path(Any):Description for path - attrib(Any):Description for attrib - flags(Any):Description for flags - ireservedID(Any):Description for ireservedID - -Returns: - - None - - """ - pass - - - def RefreshOverlayImages(self,flags:'Any') -> 'None': - """ - Description of RefreshOverlayImages. - -Args: - - flags(Any):Description for flags - -Returns: - - None - - """ - pass - - - def LoadNonloadedOverlayIdentifiers(self,) -> 'None': - """ - Description of LoadNonloadedOverlayIdentifiers. - -Args: - - - -Returns: - - None - - """ - pass - - - def OverlayIndexFromImageIndex(self,iImage:'Any',fAdd:'Any') -> 'None': - """ - Description of OverlayIndexFromImageIndex. - -Args: - - iImage(Any):Description for iImage - fAdd(Any):Description for fAdd - -Returns: - - None - - """ - pass - - -class PyIShellItem(object): - """Interface that represents an item in the Explorer shell""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BindToHandler(self,pbc:'Any',bhid:'PyIID',riid:'PyIID') -> 'Any': - """ - Creates an instance of one of the item's handlers - -Args: - - pbc(Any):Used to pass parameters that influence the binding operation, can be None - bhid(PyIID):GUID that identifies a handler (shell.BHID_*) - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetParent(self,) -> 'Any': - """ - Retrieves the parent of this item - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDisplayName(self,sigdnName:'Any') -> 'Any': - """ - Returns the display name of the item in the specified format - -Args: - - sigdnName(Any):Format of name to return, shellcon.SIGDN_* - -Returns: - - Any - - """ - pass - - - def GetAttributes(self,Mask:'Any') -> 'Any': - """ - Returns shell attributes of the item - -Args: - - Mask(Any):Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values - -Returns: - - Any:Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values - - - """ - pass - - - def Compare(self,psi:'Any',hint:'Any') -> 'Any': - """ - Compares another shell item with this item - -Args: - - psi(Any):A shell item to be compared with this item - hint(Any):shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise - -Returns: - - Any:shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise - - - """ - pass - - -class PyIShellItem2(object): - """Extends the IShellItem interface, giving access to an item's properties""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPropertyStore(self,Flags:'Any',riid:'PyIID') -> 'Any': - """ - Returns a collection of the item's properties - -Args: - - Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetPropertyStoreForKeys(self,Keys:'Tuple[Any, ...]',Flags:'Any',riid:'PyIID') -> 'Any': - """ - Creates a property store containing just the - -specified properties of the item - -Args: - - Keys(Tuple[Any, ...]):A sequence of property identifiers - Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetPropertyStoreWithCreateObject(self,Flags:'Any',CreateObject:'Any',riid:'PyIID') -> 'Any': - """ - Returns the property store for the - -item, with alternate handler instantiation - -Args: - - Flags(Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) - CreateObject(Any):An interface that implements ICreateObject, used to create the property handler - riid(PyIID):The interface to be createdCommentsPrimarily used to create a handler in a separate process with reduced privileges - -Returns: - - Any - - """ - pass - - - def GetPropertyDescriptionList(self,Type:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves descriptions of - -properties in a particular group - -Args: - - Type(Any):Property list identifier (pscon.PKEY_PropList_*) - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def Update(self,BindCtx:'Any'=None) -> 'None': - """ - Refreshes properties that have been modified since interface was created - -Args: - - BindCtx(Any):Bind context used when requesting the interface, or None - -Returns: - - None - - """ - pass - - - def GetProperty(self,key:'Any') -> 'Any': - """ - Retrieves the value of a property, converted to an appropriate python type - -Args: - - key(Any):The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property - -Returns: - - Any:The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property - - - """ - pass - - - def GetCLSID(self,key:'Any') -> 'PyIID': - """ - Retrieves the value of a property as a CLSID (VT_CLSID) - -Args: - - key(Any):The id of the property to retrieve - -Returns: - - PyIID - - """ - pass - - - def GetFileTime(self,key:'Any') -> 'PyTime': - """ - Retrieves the value of a property as a FILETIME - -Args: - - key(Any):The id of the property to retrieve - -Returns: - - PyTime - - """ - pass - - - def GetInt32(self,key:'Any') -> 'Any': - """ - Retrieves the value of a property as a 32 bit int. - -Args: - - key(Any):The id of the property to retrieve - -Returns: - - Any - - """ - pass - - - def GetString(self,key:'Any') -> 'Any': - """ - Retrieves the value of a property as a string - -Args: - - key(Any):The id of the property to retrieve - -Returns: - - Any - - """ - pass - - - def GetUInt32(self,key:'Any') -> 'Any': - """ - Returns the value of a property as a 32 bit unsigned int - -Args: - - key(Any):The id of the property to retrieve - -Returns: - - Any - - """ - pass - - - def GetUInt64(self,key:'Any') -> 'Any': - """ - Returns the value of a property as an unsigned 64-bit int - -Args: - - key(Any):The id of the property to retrieve - -Returns: - - Any - - """ - pass - - - def GetBool(self,key:'Any') -> 'Any': - """ - Returns the value of a property as a boolean - -Args: - - key(Any):The id of the property to retrieve - -Returns: - - Any - - """ - pass - - -class PyIShellItemArray(object): - """Container for a number of shell items""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BindToHandler(self,pbc:'Any',rbhid:'PyIID',riid:'PyIID') -> 'Any': - """ - Creates an instance of a handler for the items in the container - -Args: - - pbc(Any):Bind context, can be None - rbhid(PyIID):Bind handler GUID (shell.BHID_*) - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetPropertyStore(self,flags:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves a store containing consolidated - -properties of items in container - -Args: - - flags(Any):Flags indicating how the properties are retrieved (shellcon.GPS_*) - riid(PyIID):The interface to return, IID_IPropertyStore or related interface - -Returns: - - Any - - """ - pass - - - def GetPropertyDescriptionList(self,Type:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves descriptions for a - -defined group of properties - -Args: - - Type(Any):Property list identifier (pscon.PKEY_PropList_*) - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetAttributes(self,AttribFlags:'Any',Mask:'Any') -> 'Any': - """ - Retrieves shell attributes of contained items - -Args: - - AttribFlags(Any):SIATTRIBFLAGS value (shellcon.SIATTRIBFLAGS_*) specifying how to combine attributes of multiple items - Mask(Any):Combination of SFGAOF flags (shellcon.SFGAO_*) specifying which attributes to return - -Returns: - - Any - - """ - pass - - - def GetCount(self,) -> 'Any': - """ - Returns the number of items in the container - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetItemAt(self,dwIndex:'Any') -> 'Any': - """ - Retrieves an item by index - -Args: - - dwIndex(Any):Zero-based index of item to retrieve - -Returns: - - Any - - """ - pass - - - def EnumItems(self,) -> 'Any': - """ - Returns an enumeration interface to list contained items - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyIShellItemResources(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetAttributes(self,) -> 'None': - """ - Description of GetAttributes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSize(self,) -> 'Any': - """ - Description of GetSize. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTimes(self,) -> 'None': - """ - Description of GetTimes. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetTimes(self,pftCreation:'PyTime',pftWrite:'PyTime',pftAccess:'PyTime') -> 'None': - """ - Description of SetTimes. - -Args: - - pftCreation(PyTime):Description for pftCreation - pftWrite(PyTime):Description for pftWrite - pftAccess(PyTime):Description for pftAccess - -Returns: - - None - - """ - pass - - - def GetResourceDescription(self,pcsir:'Any') -> 'None': - """ - Description of GetResourceDescription. - -Args: - - pcsir(Any):Description for pcsir - -Returns: - - None - - """ - pass - - - def EnumResources(self,) -> 'Any': - """ - Description of EnumResources. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SupportsResource(self,pcsir:'Any') -> 'Any': - """ - Description of SupportsResource. - -Args: - - pcsir(Any):Description for pcsir - -Returns: - - Any - - """ - pass - - - def OpenResource(self,pcsir:'Any',riid:'PyIID') -> 'Any': - """ - Description of OpenResource. - -Args: - - pcsir(Any):Description for pcsir - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def CreateResource(self,sir:'Any',riid:'PyIID') -> 'Any': - """ - Description of CreateResource. - -Args: - - sir(Any):Resource identifier - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def MarkForDelete(self,) -> 'None': - """ - Description of MarkForDelete. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIShellLibrary(object): - """Interface used to access Libraries""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def LoadLibraryFromItem(self,Library:'Any',Mode:'Any') -> 'None': - """ - Loads an existing library file - -Args: - - Library(Any):Shell item interface representing the library file - Mode(Any):Access mode, combination of storagecon.STGM_* flags - -Returns: - - None - - """ - pass - - - def LoadLibraryFromKnownFolder(self,Library:'PyIID',Mode:'Any') -> 'None': - """ - Initializes library from a known folder - -Args: - - Library(PyIID):Known folder id, shell.FOLDERID_* - Mode(Any):Access mode, combination of storagecon.STGM_* flags - -Returns: - - None - - """ - pass - - - def AddFolder(self,Location:'Any') -> 'None': - """ - Includes a folder - -Args: - - Location(Any):Shell item interface representing the folder - -Returns: - - None - - """ - pass - - - def RemoveFolder(self,Location:'Any') -> 'None': - """ - Removes a folder - -Args: - - Location(Any):Shell item interface representing the folder - -Returns: - - None - - """ - pass - - - def GetFolders(self,Filter:'Any',riid:'PyIID') -> 'Any': - """ - Retrieves a collection of folders in the library - -Args: - - Filter(Any):Specifies what types of folder to return (shellcon.LFF_*) - riid(PyIID):The interface to return, IObjectCollection and IObjectArray also accepted. - -Returns: - - Any - - """ - pass - - - def ResolveFolder(self,FolderToResolve:'Any',Timeout:'Any',riid:'PyIID') -> 'Any': - """ - Attempts to locate a folder that has been moved or renamed - -Args: - - FolderToResolve(Any):Library item whose location has changed - Timeout(Any):Max search time, specified in milliseconds - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def GetDefaultSaveFolder(self,Type:'Any',riid:'PyIID') -> 'Any': - """ - Returns the default folder in which new items are - -saved - -Args: - - Type(Any):Specifies whether to return public or private save location, shellcon.DSFT_* - riid(PyIID):The interface to return - -Returns: - - Any - - """ - pass - - - def SetDefaultSaveFolder(self,Type:'Any',SaveFolder:'Any') -> 'None': - """ - Sets the default save location - -Args: - - Type(Any):Specifies public or private save location, shellcon.DSFT_* - SaveFolder(Any):New default location, must be in the library - -Returns: - - None - - """ - pass - - - def GetOptions(self,) -> 'Any': - """ - Retrieves library option flags - -Args: - - - -Returns: - - Any:PyIShellLibrary.GetOptions - -int = GetOptions()Retrieves library option flags -Return ValueReturns a combination of shellcon.LOF_* flags - - - """ - pass - - - def SetOptions(self,Mask:'Any',Options:'Any') -> 'None': - """ - Sets library option flags - -Args: - - Mask(Any):Bitmask of flags to be changed, combination of shellcon.LOF_* values - Options(Any):New options, combination of shellcon.LOF_* values - -Returns: - - None - - """ - pass - - - def GetFolderType(self,) -> 'PyIID': - """ - Returns the library type, shell.FOLDERTYPEID_* - -Args: - - - -Returns: - - PyIID - - """ - pass - - - def SetFolderType(self,Type:'PyIID') -> 'None': - """ - Sets the folder type for the library - -Args: - - Type(PyIID):New type, shell.FOLDERTYPEID_* - -Returns: - - None - - """ - pass - - - def GetIcon(self,) -> 'Any': - """ - Returns the location of the library's icon - -Args: - - - -Returns: - - Any:PyIShellLibrary.GetIcon - -str = GetIcon()Returns the location of the library's icon -Return ValueUses "module,resource" format - - - """ - pass - - - def SetIcon(self,Icon:'Any') -> 'None': - """ - Sets the library icon - -Args: - - Icon(Any):Icon location in "module,resource" syntax - -Returns: - - None - - """ - pass - - - def Commit(self,) -> 'None': - """ - Saves changes (only if loaded from an existing library) - -Args: - - - -Returns: - - None - - """ - pass - - - def Save(self,FolderToSaveIn:'Any',LibraryName:'Any',Flags:'Any') -> 'Any': - """ - Saves the library to a specific location - -Args: - - FolderToSaveIn(Any):The destination folder, use None to save in current user's Libraries folder - LibraryName(Any):Filename for the new library, without file extension - Flags(Any):Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. - -Returns: - - Any:Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. - - - """ - pass - - - def SaveInKnownFolder(self,FolderToSaveIn:'PyIID',LibraryName:'Any',Flags:'Any') -> 'Any': - """ - Saves the library in a known folder - -Args: - - FolderToSaveIn(PyIID):The destination folder, shell.FOLDERID_* - LibraryName(Any):Filename for the new library, without file extension - Flags(Any):Determines behaviour if file already exists, shellcon.LSF_* - -Returns: - - Any - - """ - pass - - -class PyIShellLink(object): - """Interface used to access the properties of a shell link file (*.lnk)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPath(self,fFlags:'Any',cchMaxPath:'Any') -> 'Tuple[Any, WIN32_FIND_DATA]': - """ - Retrieves the target path and file name of a shell link - -object - -Args: - - fFlags(Any):One of the following values:ValueDescriptionSLGP_SHORTPATHRetrieves the standard short (8.3 format) file name.SLGP_UNCPRIORITYRetrieves the Universal Naming Convention (UNC) path name of the file.SLGP_RAWPATHRetrieves the raw path name. A raw path is something that might not exist and may include environment variables that need to be expanded. - cchMaxPath(Any):Number of characters to allocate for returned filenameCommentsThe AlternateFileName (8.3) member of WIN32_FIND_DATA does not return information - -Returns: - - Tuple[Any, WIN32_FIND_DATA] - - """ - pass - - - def GetIDList(self,) -> 'Any': - """ - Retrieves the item id list that identifies the target of the shell link. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetIDList(self,pidl:'Any') -> 'None': - """ - Sets the target of the link using an item id list - -Args: - - pidl(Any):Absolute item id list that identifies the target - -Returns: - - None - - """ - pass - - - def GetDescription(self,cchMaxName:'Any'=1024) -> 'Any': - """ - Retrieves the description of the link (displays as Comment in the UI) - -Args: - - cchMaxName(Any):Number of character to allocate for the retrieved text - -Returns: - - Any - - """ - pass - - - def SetDescription(self,Name:'Any') -> 'None': - """ - Sets the description of the link (displays as Comment in the UI) - -Args: - - Name(Any):The description for the link - -Returns: - - None - - """ - pass - - - def GetWorkingDirectory(self,cchMaxName:'Any'=1024) -> 'Any': - """ - Retrieves the working directory for the link - -Args: - - cchMaxName(Any):Number of characters to allocate for returned text - -Returns: - - Any - - """ - pass - - - def SetWorkingDirectory(self,Dir:'Any') -> 'None': - """ - Sets the working directory for the link. - -Args: - - Dir(Any):The working directory for the link - -Returns: - - None - - """ - pass - - - def GetArguments(self,cchMaxName:'Any'=1024) -> 'Any': - """ - Retrieves the command-line arguments associated with a shell link object. - -Args: - - cchMaxName(Any):Number of characters to fetch. - -Returns: - - Any - - """ - pass - - - def SetArguments(self,args:'Any') -> 'None': - """ - Sets the command-line arguments associated with a shell link object. - -Args: - - args(Any):The new arguments. - -Returns: - - None - - """ - pass - - - def GetHotkey(self,) -> 'Any': - """ - Retrieves the hot key for a shell link object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetHotkey(self,wHotkey:'Any') -> 'None': - """ - Sets the hot key for a shell link object. - -Args: - - wHotkey(Any):The virtual key code is in the low-order byte, and the modifier flags are in the high-order byte. The modifier flags can be a combination of the values specified in the description of the PyIShellLink::GetHotkey method. - -Returns: - - None - - """ - pass - - - def GetShowCmd(self,) -> 'Any': - """ - Retrieves the show (SW_) command for a shell link object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetShowCmd(self,iShowCmd:'Any') -> 'None': - """ - Sets the show (SW_) command for a shell link object. - -Args: - - iShowCmd(Any):The new show command value. - -Returns: - - None - - """ - pass - - - def GetIconLocation(self,cchMaxPath:'Any') -> 'Any': - """ - Retrieves the location (path and index) of the icon for a shell link - -object. - -Args: - - cchMaxPath(Any):Number of characters to allocate for the result string. - -Returns: - - Any - - """ - pass - - - def SetIconLocation(self,iconPath:'str',iIcon:'Any') -> 'None': - """ - Sets the location (path and index) of the icon for a shell link object. - -Args: - - iconPath(str):Path to the file with the icon. - iIcon(Any):Index of the icon. - -Returns: - - None - - """ - pass - - - def SetRelativePath(self,relPath:'str',reserved:'Any'=0) -> 'None': - """ - Sets the relative path for a shell link object. - -Args: - - relPath(str):The relative path. - reserved(Any):Reserved - must be zero.CommentsThis mechanism allows for moved link files to reestablish connection with relative files through similar-prefix comparisons - -Returns: - - None - - """ - pass - - - def Resolve(self,hwnd:'Any',fFlags:'Any') -> 'None': - """ - Resolves a shell link by searching for the shell link object and updating the - -shell link path and its list of identifiers (if necessary) - -Args: - - hwnd(Any):The parent window of a dialog which will pop up if resolution fails. - fFlags(Any):One of the following constants:ValueDescriptionSLR_INVOKE_MSICall the Microsoft Windows Installer.SLR_NOLINKINFODisable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting SLR_NOLINKINFO disables both types of tracking.SLR_NO_UIDo not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, the high-order word of fFlags can be set to a time-out value that specifies the maximum amount of time to be spent resolving the link. The function returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration will be set to the default value of 3,000 milliseconds (3 seconds). To specify a value, set the high word of fFlags to the desired time-out duration, in milliseconds.SLR_NOUPDATEDo not update the link information.SLR_NOSEARCHDo not execute the search heuristics.SLR_NOTRACKDo not use distributed link tracking.SLR_UPDATEIf the link object has changed, update its path and list of identifiers. If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine whether or not the link object has changed. - -Returns: - - None - - """ - pass - - - def SetPath(self,path:'str') -> 'None': - """ - Sets the path and file name of a shell link object. - -Args: - - path(str):The path and filename of the link. - -Returns: - - None - - """ - pass - - -class PyIShellLinkDataList(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddDataBlock(self,DataBlock:'Any') -> 'None': - """ - Inserts a data block into the link - -Args: - - DataBlock(Any):Contents are dependent on type of data block being addedCommentsInput should be one of NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS, EXP_SPECIAL_FOLDER, EXP_DARWIN_LINK, or EXP_SZ_LINK. Expected form is indicated by the Signature member. - -Returns: - - None - - """ - pass - - - def CopyDataBlock(self,Sig:'Any') -> 'Any': - """ - Retrieves the specified data block from the link - -Args: - - Sig(Any):The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in - -Returns: - - Any:The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in - - - """ - pass - - - def GetFlags(self,) -> 'Any': - """ - Retrieves the link's flags - -Args: - - - -Returns: - - Any:PyIShellLinkDataList.GetFlags - -int = GetFlags()Retrieves the link's flags -Return ValueReturns combination of shellcon.SLDF_* flags - - - """ - pass - - - def RemoveDataBlock(self,Sig:'Any') -> 'None': - """ - Deletes one of the link's data blocks - -Args: - - Sig(Any):Identifies which block is to be removed, one of shellcon.*_SIG constants - -Returns: - - None - - """ - pass - - - def SetFlags(self,Flags:'Any') -> 'None': - """ - Sets the flags indicating which data blocks are present - -Args: - - Flags(Any):Combination of shellcon.SLDF_* flags - -Returns: - - None - - """ - pass - - -class PyIShellView(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def TranslateAccelerator(self,pmsg:'Any') -> 'Any': - """ - Description of TranslateAccelerator. - -Args: - - pmsg(Any):Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call - -Returns: - - Any:Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call - - - """ - pass - - - def EnableModeless(self,fEnable:'Any') -> 'None': - """ - Description of EnableModeless. - -Args: - - fEnable(Any):Description for fEnable - -Returns: - - None - - """ - pass - - - def UIActivate(self,uState:'Any') -> 'None': - """ - Description of UIActivate. - -Args: - - uState(Any):Description for uState - -Returns: - - None - - """ - pass - - - def Refresh(self,) -> 'None': - """ - Description of Refresh. - -Args: - - - -Returns: - - None - - """ - pass - - - def CreateViewWindow(self,psvPrevious:'Any',pfs:'Tuple[Any, Any]',psb:'Any',prcView:'Tuple[Any, Any, Any, Any]') -> 'Any': - """ - Description of CreateViewWindow. - -Args: - - psvPrevious(Any):Description for psvPrevious - pfs(Tuple[Any, Any]):Description for pfs - psb(Any):Description for psb - prcView(Tuple[Any, Any, Any, Any]):Description for prcViewReturn ValueThe result is an integer handle to the new window. - -Returns: - - Any:Description for prcViewReturn ValueThe result is an integer handle to the new window. - - - """ - pass - - - def DestroyViewWindow(self,) -> 'None': - """ - Description of DestroyViewWindow. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurrentInfo(self,) -> 'Any': - """ - Description of GetCurrentInfo. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SaveViewState(self,) -> 'None': - """ - Description of SaveViewState. - -Args: - - - -Returns: - - None - - """ - pass - - - def SelectItem(self,pidlItem:'Any',uFlags:'Any') -> 'None': - """ - Description of SelectItem. - -Args: - - pidlItem(Any):Description for pidlItem - uFlags(Any):Description for uFlags - -Returns: - - None - - """ - pass - - - def GetItemObject(self,uItem:'Any',riid:'PyIID') -> 'Any': - """ - Description of GetItemObject. - -Args: - - uItem(Any):Description for uItem - riid(PyIID):Description for riid - -Returns: - - Any - - """ - pass - - -class PyISpecifyPropertyPages(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPages(self,) -> 'None': - """ - Description of GetPages. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIStorage(object): - """Structured storage compound storage object""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateStream(self,Name:'Any',Mode:'Any',reserved1:'Any'=0,reserved2:'Any'=0) -> 'Any': - """ - Creates and opens a stream object with the specified name contained - -in this storage object. All elements within a storage object — both streams and other storage objects — are kept in - -the same name space. - -Args: - - Name(Any):Name of the new stream - Mode(Any):Access mode, storagecon.STGM_* - reserved1(Any):Reserved - must be zero. - reserved2(Any):Reserved - must be zero. - -Returns: - - Any - - """ - pass - - - def OpenStream(self,Name:'Any',reserved1:'Any',Mode:'Any',reserved2:'Any'=0) -> 'Any': - """ - Opens an existing stream object within this storage object in the - -specified access mode. - -Args: - - Name(Any):Name of stream to be opened - reserved1(Any):A reserved param. Always pass None. NULL is always passed to the COM function - Mode(Any):Access mode, storagecon.STGM_* - reserved2(Any):Reserved - must be zero. - -Returns: - - Any - - """ - pass - - - def CreateStorage(self,Name:'Any',Mode:'Any',StgFmt:'Any',reserved2:'Any'=0) -> 'Any': - """ - Creates and opens a new storage object nested within this storage - -object. - -Args: - - Name(Any):The name of the newly created stream. - Mode(Any):Access mode - combination of storagecon.STGM_* flags - StgFmt(Any):Documented as "reserved"! - reserved2(Any):Description for reserved2 - -Returns: - - Any - - """ - pass - - - def OpenStorage(self,Name:'Any',Priority:'Any',Mode:'Any',snbExclude:'Any',reserved:'Any'=0) -> 'Any': - """ - Opens an existing storage object with the specified name in the - -specified access mode. - -Args: - - Name(Any):Name of the storage, or None. - Priority(Any):If the pstgPriority parameter is not None, it is a PyIStorage object to a previous opening of an element of the storage object, usually one that was opened in priority mode. The storage object should be closed and re-opened according to grfMode. When the PyIStorage::OpenStorage method returns, pstgPriority is no longer valid - use the result value. If the pstgPriority parameter is None, it is ignored. - Mode(Any):Access mode - combination of storagecon.STGM_* flags (must include STGM_SHARE_EXCLUSIVE) - snbExclude(Any):Reserved for later - Must be None - reserved(Any):Reserved integer param. - -Returns: - - Any - - """ - pass - - - def CopyTo(self,rgiidExclude:'Tuple[Any, Any]',snbExclude:'Any',stgDest:'Any') -> 'None': - """ - Copies the entire contents of an open storage object to another storage object. - -Args: - - rgiidExclude(Tuple[Any, Any]):List of IID's to be excluded. Use empty seq to exclude all objects, or None to indicate no excludes. - snbExclude(Any):Reserved for later - Must be None - stgDest(Any):The open storage object into which this storage object is to be copied. The destination storage object can be a different implementation of the PyIStorage interface from the source storage object. Thus, IStorage::CopyTo can only use publicly available methods of the destination storage object. If stgDest is open in transacted mode, it can be reverted by calling its PyIStorage::Revert method. - -Returns: - - None - - """ - pass - - - def MoveElementTo(self,Name:'Any',stgDest:'Any',NewName:'Any',Flags:'Any') -> 'None': - """ - Copies or moves a substorage or stream from this storage object to another - -storage object. - -Args: - - Name(Any):A string that contains the name of the element in this storage object to be moved or copied. - stgDest(Any):PyIStorage for the destination storage object. - NewName(Any):A string that contains the new name for the element in its new storage object. - Flags(Any):Specifies whether to move or copy (storagecon.STGMOVE_MOVE or STGMOVE_COPY) - -Returns: - - None - - """ - pass - - - def Commit(self,grfCommitFlags:'Any') -> 'None': - """ - Ensures that any changes made to a storage object open in transacted mode are reflected - -in the parent storage; for a root storage, reflects the changes in the actual device, for example, a file on disk. - -For a root storage object opened in direct mode, this method has no effect except to flush all memory buffers to the - -disk. For non-root storage objects in direct mode, this method has no effect. - -Args: - - grfCommitFlags(Any):Controls how the changes are committed to the storage object. See the STGC enumeration for a definition of these values. - -Returns: - - None - - """ - pass - - - def Revert(self,) -> 'None': - """ - Discards all changes that have been made to the storage object since the last commit. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumElements(self,reserved1:'Any'=0,reserved2:'Any'=None,reserved3:'Any'=0) -> 'Any': - """ - Retrieves an enumerator object that can be used to enumerate the - -storage and stream objects contained within this storage object. - -Args: - - reserved1(Any):Reserved - must be zero. - reserved2(Any):A reserved param. Always pass None. NULL is always passed to the COM function - reserved3(Any):Reserved - must be zero. - -Returns: - - Any - - """ - pass - - - def DestroyElement(self,name:'str') -> 'None': - """ - Removes the specified storage or stream from this storage object. - -Args: - - name(str):The name of the element to be removed. - -Returns: - - None - - """ - pass - - - def RenameElement(self,OldName:'Any',NewName:'Any') -> 'None': - """ - Renames the specified substorage or stream in this storage object. - -Args: - - OldName(Any):The name of the substorage or stream to be changed. - NewName(Any):The new name for the specified sustorage or stream. - -Returns: - - None - - """ - pass - - - def SetElementTimes(self,name:'Any',ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': - """ - Sets the modification, access, and creation times of the specified storage - -element, if supported by the underlying file system. - -Args: - - name(Any):The name of the storage object element whose times are to be modified. If NULL, the time is set on the root storage rather than one of its elements. - ctime(PyTime):Either the new creation time for the element or None if the creation time is not to be modified. - atime(PyTime):Either the new access time for the element or None if the access time is not to be modified. - mtime(PyTime):Either the new modification time for the element or None if the modification time is not to be modified. - -Returns: - - None - - """ - pass - - - def SetClass(self,clsid:'PyIID') -> 'None': - """ - Assigns the specified CLSID to this storage object. - -Args: - - clsid(PyIID):The class identifier (CLSID) that is to be associated with the storage object. - -Returns: - - None - - """ - pass - - - def SetStateBits(self,grfStateBits:'Any',grfMask:'Any') -> 'None': - """ - Stores up to 32 bits of state information in this storage object. - -Args: - - grfStateBits(Any):Specifies the new values of the bits to set. No legal values are defined for these bits; they are all reserved for future use and must not be used by applications. - grfMask(Any):A binary mask indicating which bits in grfStateBits are significant in this call. - -Returns: - - None - - """ - pass - - - def Stat(self,grfStatFlag:'Any') -> 'Any': - """ - Retrieves the STATSTG structure for this open storage object. - -Args: - - grfStatFlag(Any):Specifies that some of the fields in the STATSTG structure are not returned, thus saving a memory allocation operation. Values are taken from the STATFLAG enumeration. - -Returns: - - Any - - """ - pass - - -class PyIStream(object): - """A Python interface to IStream""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Read(self,numBytes:'Any') -> 'str': - """ - Read the specified number of bytes from the string. - -Args: - - numBytes(Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - -Returns: - - str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - - - """ - pass - - - def read(self,numBytes:'Any') -> 'str': - """ - Read the specified number of bytes from the string. - -Args: - - numBytes(Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - -Returns: - - str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - - - """ - pass - - - def Write(self,data:'str') -> 'None': - """ - Write data to a stream - -Args: - - data(str):The binary data to write. - -Returns: - - None - - """ - pass - - - def write(self,data:'str') -> 'None': - """ - Write data to a stream - -Args: - - data(str):The binary data to write. - -Returns: - - None - - """ - pass - - - def Seek(self,offset:'Any',origin:'Any') -> 'ULARGE_INTEGER': - """ - Changes the seek pointer to a new location. - -Args: - - offset(Any):The new location - origin(Any):Relative to where? - -Returns: - - ULARGE_INTEGER - - """ - pass - - - def SetSize(self,newSize:'ULARGE_INTEGER') -> 'None': - """ - Changes the size of the stream object. - -Args: - - newSize(ULARGE_INTEGER):The new size - -Returns: - - None - - """ - pass - - - def CopyTo(self,stream:'Any',cb:'ULARGE_INTEGER') -> 'ULARGE_INTEGER': - """ - Copies a specified number of bytes from the current seek pointer in the - -stream to the current seek pointer in another stream. - -Args: - - stream(Any):The stream to write to. - cb(ULARGE_INTEGER):The number of bytes to write.Return ValueThe return value is the number of bytes actually written. - -Returns: - - ULARGE_INTEGER:The number of bytes to write.Return ValueThe return value is the number of bytes actually written. - - - """ - pass - - - def Commit(self,flags:'Any') -> 'None': - """ - Ensures that any changes made to a stream object open in transacted mode are reflected in - -the parent storage. - -Args: - - flags(Any):Controls how changes are performed. - -Returns: - - None - - """ - pass - - - def Revert(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def LockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'Any') -> 'None': - """ - Restricts access to a specified range of bytes in the stream. - -Args: - - offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. - cb(ULARGE_INTEGER):The number of bytes to restrict. - lockType(Any):Restrictions requested. - -Returns: - - None - - """ - pass - - - def UnLockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'Any') -> 'None': - """ - None - -Args: - - offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. - cb(ULARGE_INTEGER):The number of bytes to restrict. - lockType(Any):Restrictions requested. - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'Any': - """ - Creates a new stream object with its own seek pointer that references the - -same bytes as the original stream. - -Args: - - - -Returns: - - Any - - """ - pass - - - def Stat(self,grfStatFlag:'Any'=0) -> 'Any': - """ - Returns information about the stream - -Args: - - grfStatFlag(Any):Flags. - -Returns: - - Any - - """ - pass - - -class PyITask(object): - """Python object that encapsulates the ITask interface, inherits all the methods of PyIScheduledWorkItem""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetApplicationName(self,ApplicationName:'Any') -> 'None': - """ - Specify which program the task will run - -Args: - - ApplicationName(Any):Program to execute - -Returns: - - None - - """ - pass - - - def GetApplicationName(self,) -> 'Any': - """ - Retrieve name of program that task will run - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetParameters(self,Parameters:'Any') -> 'None': - """ - Sets command line parameters - -Args: - - Parameters(Any):String containing command line parameters - -Returns: - - None - - """ - pass - - - def GetParameters(self,) -> 'Any': - """ - Returns command line parameters for task - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetWorkingDirectory(self,WorkingDirectory:'Any') -> 'None': - """ - Sets initial working directory for task - -Args: - - WorkingDirectory(Any):Initial working directory - -Returns: - - None - - """ - pass - - - def GetWorkingDirectory(self,) -> 'Any': - """ - Return working directory that the task will start out in - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetPriority(self,Priority:'Any') -> 'None': - """ - Sets priority for task - -Args: - - Priority(Any):One of REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS - -Returns: - - None - - """ - pass - - - def GetPriority(self,) -> 'Any': - """ - Gets priority that will be assigned to process when task starts - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetTaskFlags(self,dwFlags:'Any') -> 'None': - """ - Sets flag for task. - -Args: - - dwFlags(Any):None currently defined - -Returns: - - None - - """ - pass - - - def GetTaskFlags(self,) -> 'Any': - """ - Retrieve task flags (None currently defined) - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetMaxRunTime(self,MaxRunTimeMS:'Any') -> 'None': - """ - Sets maximun run time for task, use -1 to disable - -Args: - - MaxRunTimeMS(Any):Specified in milliseconds (use -1 to disable, not 0) - -Returns: - - None - - """ - pass - - - def GetMaxRunTime(self,) -> 'Any': - """ - Returns maximun run time for task - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyITaskScheduler(object): - """Interface to the Windows Task Scheduler""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetTargetComputer(self,Computer:'Any') -> 'None': - """ - Connect to another machine to manage its tasks - -Args: - - Computer(Any):Name of system to connect toCommentsLeading backslashes are required. Call will succeed without them, but no other methods will work. - -Returns: - - None - - """ - pass - - - def GetTargetComputer(self,) -> 'Any': - """ - Returns name of computer that the Task Scheduler is - -connected to - -Args: - - - -Returns: - - Any - - """ - pass - - - def Enum(self,) -> 'Tuple[str, ...]': - """ - Retrieve list of task names - -Args: - - - -Returns: - - Tuple[str, ...] - - """ - pass - - - def Activate(self,Name:'Any',riid:'PyIID') -> 'Any': - """ - Opens the specified task and returns an ITask interface for it - -Args: - - Name(Any):Name of task to retreive - riid(PyIID):IID to return, currently only IID_ITask accepted - -Returns: - - Any - - """ - pass - - - def Delete(self,TaskName:'Any') -> 'None': - """ - Delete task by name - -Args: - - TaskName(Any):Name of task to delete - -Returns: - - None - - """ - pass - - - def NewWorkItem(self,TaskName:'Any',rclsid:'PyIID',riid:'PyIID') -> 'Any': - """ - Creates a new task - -Args: - - TaskName(Any):Name of new task - rclsid(PyIID):Class id of work item, currently only CLSID_CTask (defaults if not passed in) - riid(PyIID):Interface IID to return, currently only IID_ITask (defaults if not passed in) - -Returns: - - Any - - """ - pass - - - def AddWorkItem(self,TaskName:'Any',WorkItem:'Any') -> 'None': - """ - Create a new scheduled task from PyITask object - -Args: - - TaskName(Any):Name of task to be created - WorkItem(Any):Existing PyITask objectCommentsThe PyItask passed in is modified in place and on success is associated with the new task, not the old one - -Returns: - - None - - """ - pass - - - def IsOfType(self,Name:'Any',riid:'PyIID') -> 'None': - """ - Check if named object supports specified interface - -Args: - - Name(Any):Name of object - riid(PyIID):Named object is checked that it supports the interface of this IID - -Returns: - - None - - """ - pass - - -class PyITaskTrigger(object): - """Python object that encapsulates the ITaskTrigger interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetTrigger(self,Trigger:'Any') -> 'None': - """ - Set trigger parameters from a PyTASK_TRIGGER object - -Args: - - Trigger(Any):Python object representing a TASK_TRIGGER struct - -Returns: - - None - - """ - pass - - - def GetTrigger(self,) -> 'Any': - """ - Retrieves trigger parms as a PyTASK_TRIGGER object - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTriggerString(self,) -> 'str': - """ - Build text summary of trigger - -Args: - - - -Returns: - - str - - """ - pass - - -class PyITaskbarList(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def HrInit(self,) -> 'None': - """ - Intializes the interface before use - -Args: - - - -Returns: - - None - - """ - pass - - - def AddTab(self,hwnd:'int') -> 'None': - """ - Places a window on the taskbar - -Args: - - hwnd(int):Handle to window, should have WS_CAPTION style - -Returns: - - None - - """ - pass - - - def DeleteTab(self,hwnd:'int') -> 'None': - """ - Removes a window from the taskbar - -Args: - - hwnd(int):Handle to window, should have WS_CAPTION style - -Returns: - - None - - """ - pass - - - def ActivateTab(self,hwnd:'int') -> 'None': - """ - Marks a window as the active tab on the taskbar - -Args: - - hwnd(int):Handle to window, should have WS_CAPTION style - -Returns: - - None - - """ - pass - - - def SetActiveAlt(self,hwnd:'int') -> 'None': - """ - Sets the window as the active tab, without displaying it as pressed on the - -taskbar - -Args: - - hwnd(int):Handle to window, should have WS_CAPTION style - -Returns: - - None - - """ - pass - - -class PyITransferAdviseSink(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def UpdateProgress(self,SizeCurrent:'Any',SizeTotal:'Any',FilesCurrent:'Any',FilesTotal:'Any',FoldersCurrent:'Any',FoldersTotal:'Any') -> 'None': - """ - Gives an estimate of amount of work completed - -Args: - - SizeCurrent(Any):Bytes transferred so far - SizeTotal(Any):Total number of bytes - FilesCurrent(Any):Number of files processed already - FilesTotal(Any):Total number of files - FoldersCurrent(Any):Number of folders processed already - FoldersTotal(Any):Total number of folder - -Returns: - - None - - """ - pass - - - def UpdateTransferState(self,State:'Any') -> 'None': - """ - Notifies client of current operation state - -Args: - - State(Any):A TRANSFER_ADVISE_STATE value (shellcon.TS_*) - -Returns: - - None - - """ - pass - - - def ConfirmOverwrite(self,Source:'Any',DestParent:'Any',Name:'Any') -> 'Any': - """ - Asks user for permission to overwrite an existing item - -Args: - - Source(Any):The item that will replace existing item - DestParent(Any):Folder into which item will be placed - Name(Any):New name for item, or None if item is to keep original name - -Returns: - - Any - - """ - pass - - - def ConfirmEncryptionLoss(self,Source:'Any') -> 'Any': - """ - Notifies user when an item can't be encrypted at - -destination - -Args: - - Source(Any):Item that failed to be encrypted - -Returns: - - Any - - """ - pass - - - def FileFailure(self,Item:'Any',ItemName:'Any',Error:'Any') -> 'Tuple[Any, Any]': - """ - Notifies user of failure, and queries how to proceed - -Args: - - Item(Any):The shell item that caused the failure - ItemName(Any):Name of item if different than above, can be None - Error(Any):HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure - -Returns: - - Tuple[Any, Any]:HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure - - - """ - pass - - - def SubStreamFailure(self,Item:'Any',StreamName:'Any',Error:'Any') -> 'Any': - """ - Notifies user of failure on a substream, and queries how to - -proceed - -Args: - - Item(Any):The item whose stream couldn't be created - StreamName(Any):Name of the failed stream - Error(Any):HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled - -Returns: - - Any:HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled - - - """ - pass - - - def PropertyFailure(self,Item:'Any',key:'Any',Error:'Any') -> 'Any': - """ - Notifies user of failure to set an item's properties - -Args: - - Item(Any):The item whose property could not be set - key(Any):Identifies the property that caused the error, or None if all properties failed - Error(Any):HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or COPYENGINE_E_USERCANCELLED to cancel pending operations - -Returns: - - Any:HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or - -COPYENGINE_E_USERCANCELLED to cancel pending operations - - - """ - pass - - -class PyITransferDestination(object): - """Implemented by shell extensions that act as targets for item copy or move operations""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Advise(self,Sink:'Any') -> 'Any': - """ - Connects an advise sink - -Args: - - Sink(Any):Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise - -Returns: - - Any:Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise - - - """ - pass - - - def Unadvise(self,Cookie:'Any') -> 'None': - """ - Disconnects an advise sink - -Args: - - Cookie(Any):Connection identifier as returned by PyITransferDestination::Advise - -Returns: - - None - - """ - pass - - - def CreateItem(self,Name:'Any',Attributes:'Any',Size:'Any',Flags:'Any',riidItem:'PyIID',riidResources:'PyIID') -> 'Tuple[Any, Any, Any]': - """ - Requests that a new item be created - -Args: - - Name(Any):Filename to be created - Attributes(Any):File attributes - Size(Any):Size of file - Flags(Any):Combination of shellcon.TSF_* flags - riidItem(PyIID):Item interface to return - riidResources(PyIID):Resource interface to returnReturn ValueReturns the HRESULT and requested interfaces. Interfaces may be None if function returns one of the informational codes (shellcon.COPYENGINE_S_*) - -Returns: - - Tuple[Any, Any, Any]:Resource interface to return -Return ValueReturns the HRESULT and requested interfaces. Interfaces may be None if - -function returns one of the informational codes (shellcon.COPYENGINE_S_*) - - - """ - pass - - -class PyITransferMediumItem(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyITransferSource(object): - """Implemented by shell folders that can act as the source of shell item operations""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Advise(self,Sink:'Any') -> 'Any': - """ - Connects an advise sink to receive notifications - -Args: - - Sink(Any):Event sink to respond to notifications - -Returns: - - Any - - """ - pass - - - def Unadvise(self,Cookie:'Any') -> 'None': - """ - Disconnects an event sink - -Args: - - Cookie(Any):Connection id as returned by PyITransferSource::Advise - -Returns: - - None - - """ - pass - - - def SetProperties(self,proparray:'Any') -> 'None': - """ - Specifies changes to be applied to items' properties - -Args: - - proparray(Any):Property changes to be applied by PyITransferSource::ApplyPropertiesToItem - -Returns: - - None - - """ - pass - - - def OpenItem(self,Item:'Any',flags:'Any',riid:'PyIID') -> 'Tuple[Any, Any]': - """ - Initiates the copying of an item - -Args: - - Item(Any):The item to be copied. - flags(Any):Combination of shellcon.TSF_* flags - riid(PyIID):The interface to return - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def MoveItem(self,Item:'Any',ParentDst:'Any',NameDst:'Any',flags:'Any') -> 'Tuple[Any, Any]': - """ - Moves a shell item into another folder - -Args: - - Item(Any):Item to be moved - ParentDst(Any):The folder into which it will be moved - NameDst(Any):New name for item after move, None to keep same name - flags(Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions of expected actions for specific error codes. - -Returns: - - Tuple[Any, Any]:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None - -when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions - -of expected actions for specific error codes. - - - """ - pass - - - def RecycleItem(self,Source:'Any',ParentDest:'Any',flags:'Any') -> 'Tuple[Any, Any]': - """ - Moves an item to the recycle bin - -Args: - - Source(Any):The item to be recycled - ParentDest(Any):Shell item representing the recycle bin - flags(Any):Combination of shellcon.TSF_* flags - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def RemoveItem(self,Source:'Any',flags:'Any') -> 'Any': - """ - Deletes an item without recycling - -Args: - - Source(Any):The item to be deleted - flags(Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation - -Returns: - - Any:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation - - - """ - pass - - - def RenameItem(self,Source:'Any',NewName:'Any',flags:'Any') -> 'Tuple[Any, Any]': - """ - Renames a shell item - -Args: - - Source(Any):Item to be renamed - NewName(Any):The name to be given to the item - flags(Any):Combination of shellcon.TSF_* flags - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def LinkItem(self,Source:'Any',ParentDest:'Any',NewName:'Any',flags:'Any') -> 'Tuple[Any, Any]': - """ - Not implemented, according to MSDN - -Args: - - Source(Any):Description for psiSource - ParentDest(Any):Description for psiParentDest - NewName(Any):Description for NewName - flags(Any):Combination of shellcon.TSF_* flags - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def ApplyPropertiesToItem(self,Source:'Any') -> 'Any': - """ - None - -Args: - - Source(Any):Item whose properties are to be changed - -Returns: - - Any - - """ - pass - - - def GetDefaultDestinationName(self,Source:'Any',ParentDest:'Any') -> 'Any': - """ - Determines the name of an item as it would appear in a - -given folder - -Args: - - Source(Any):The item whose name is wanted - ParentDest(Any):The destination folder - -Returns: - - Any - - """ - pass - - - def EnterFolder(self,ChildFolderDest:'Any') -> 'Any': - """ - Informs the copy engine that a folder will be the target of a file - -operation - -Args: - - ChildFolderDest(Any):The destination folder for the operation - -Returns: - - Any - - """ - pass - - - def LeaveFolder(self,ChildFolderDest:'Any') -> 'Any': - """ - Informs the copy engine that the operation on a destination folder is - -finished - -Args: - - ChildFolderDest(Any):Destination folder - -Returns: - - Any - - """ - pass - - -class PyITypeComp(object): - """An object that implements the ITypeComp interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Bind(self,szName:'str',wflags:'Any'=0) -> 'Any': - """ - binds to a variable/type - -Args: - - szName(str):The name to bind to - wflags(Any):the bind flags - -Returns: - - Any - - """ - pass - - - def BindType(self,szName:'str') -> 'Any': - """ - binds to a type - -Args: - - szName(str):The name to bind to - -Returns: - - Any - - """ - pass - - -class PyITypeInfo(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetContainingTypeLib(self,) -> 'Tuple[Any, Any]': - """ - Retrieves the containing type library and the index of - -the type description within that type library. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetDocumentation(self,memberId:'Any') -> 'Tuple[Any, Any, Any, Any]': - """ - Retrieves the documentation string, - -the complete Help file name and path, and the context ID for the Help topic for a specified type description. - -Args: - - memberId(Any): - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def GetFuncDesc(self,memberId:'Any') -> 'Any': - """ - None - -Args: - - memberId(Any): - -Returns: - - Any - - """ - pass - - - def GetImplTypeFlags(self,index:'Any') -> 'Any': - """ - Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or - -base interface in a type description. - -Args: - - index(Any): - -Returns: - - Any - - """ - pass - - - def GetIDsOfNames(self,) -> 'Any': - """ - Maps between member names and member IDs, and parameter names and parameter - -IDs. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetNames(self,memberId:'Any') -> 'Any': - """ - Retrieves the variable with the specified member ID (or the name of - -the property or method and its parameters) that correspond to the specified function ID. - -Args: - - memberId(Any): - -Returns: - - Any - - """ - pass - - - def GetTypeAttr(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRefTypeInfo(self,hRefType:'Any') -> 'Any': - """ - If a type description references other type descriptions, it - -retrieves the referenced type descriptions. - -Args: - - hRefType(Any): - -Returns: - - Any - - """ - pass - - - def GetRefTypeOfImplType(self,hRefType:'Any') -> 'Any': - """ - Retrieves the type description of the implemented interface types. - -Args: - - hRefType(Any):CommentsIf a type description describes a COM class, it retrieves the type description of the implemented interface types. For an interface, GetRefTypeOfImplType returns the type information for inherited interfaces, if any exist. - -Returns: - - Any - - """ - pass - - - def GetVarDesc(self,memberId:'Any') -> 'Any': - """ - None - -Args: - - memberId(Any): - -Returns: - - Any - - """ - pass - - - def GetTypeComp(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyITypeLib(object): - """An object that implements the ITypeLib interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentation(self,index:'Any') -> 'Any': - """ - Retrieves documentation information about the library. - -Args: - - index(Any):The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) - -Returns: - - Any:The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) - - - """ - pass - - - def GetLibAttr(self,) -> 'Any': - """ - Retrieves the libraries attributes - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTypeComp(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTypeInfo(self,index:'Any') -> 'Any': - """ - Retrieves the specified type description in the library. - -Args: - - index(Any):The index of the type description within the library - -Returns: - - Any - - """ - pass - - - def GetTypeInfoCount(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTypeInfoOfGuid(self,iid:'PyIID') -> 'Any': - """ - Retrieves the type info of the specified GUID. - -Args: - - iid(PyIID):GUID of the type description. - -Returns: - - Any - - """ - pass - - - def GetTypeInfoType(self,index:'Any') -> 'Any': - """ - Retrieves the type of a type description. - -Args: - - index(Any):The index of the type description within the library - -Returns: - - Any - - """ - pass - - -class PyIUniformResourceLocator(object): - """Interface to an internet shortcut""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetURL(self,) -> 'Any': - """ - Returns the URL for the shortcut - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetURL(self,URL:'Any',InFlags:'Any'=0) -> 'None': - """ - Sets the URL for the shortcut - -Args: - - URL(Any):The url to be set - InFlags(Any):One of the shellcon.IURL_SETURL* flags - -Returns: - - None - - """ - pass - - - def InvokeCommand(self,Verb:'Any',Flags:'Any'=0,hwndParent:'int'=0) -> 'Any': - """ - Performs one of the object's predefined actions - -Args: - - Verb(Any):The verb to be invoked - Flags(Any):Combination of shellcon.IURL_INVOKECOMMAND_* flags - hwndParent(int):Handle to parent window - -Returns: - - Any - - """ - pass - - -class PyIUnknown(object): - """The base object for all PythonCOM objects. Wraps a COM IUnknown object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryInterface(self,iid:'Any',useIID:'Any'=None) -> 'Any': - """ - Queries an object for a specific interface. - -Args: - - iid(Any):The IID requested. - useIID(Any):If provided and not None, will return an interface for the specified IID if (and only if) a native interface can not be supported. If the interface specified by iid is natively supported, this option is ignored.CommentsThe useIID parameter is a very dangerous option, and should only be used when you are sure you need it! By specifying this parameter, you are telling the COM framework that regardless of the true type of the result (as specified by iid), a Python wrapper of type useIID will be created. If iid does not derive from useIID, then it is almost certain that using the object will cause an Access Violation. For example, this option can be used to obtain a PyIUnknown object if pythoncom does not natively support the interface. Another example might be to return an unsupported persistence interface as a PyIPersist instance. For backwards compatibility: the integer 0 implies None, and the integer 1 implies IID_IUnknown.Return ValueThe result is always an object derived from PyIUnknown. Any error (including E_NOINTERFACE) will generate a com_error exception. - -Returns: - - Any:If provided and not None, will return an - -interface for the specified IID if (and only if) a native interface can not be supported. - -If the interface specified by iid is natively supported, this option is ignored. -Comments - -The useIID parameter is a very dangerous option, and should only - -be used when you are sure you need it! - -By specifying this parameter, you are telling the COM framework that regardless - -of the true type of the result (as specified by iid), a Python wrapper - -of type useIID will be created. If iid does not derive from useIID, - -then it is almost certain that using the object will cause an Access Violation. - -For example, this option can be used to obtain a PyIUnknown object if - -pythoncom does not natively support the interface. - -Another example might be to return an unsupported persistence interface as a - -PyIPersist instance. - -For backwards compatibility: the integer 0 implies None, and the - -integer 1 implies IID_IUnknown. -Return ValueThe result is always an object derived from PyIUnknown. - -Any error (including E_NOINTERFACE) will generate a com_error exception. - - - """ - pass - - -class PyIViewObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Draw(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any',hdcTargetDev:'Any',hdcDraw:'Any',arg:'Tuple[Any, Any, Any, Any]',arg1:'Tuple[Any, Any, Any, Any]',funcContinue:'Any',obContinue:'Any') -> 'None': - """ - Description of Draw. - -Args: - - dwDrawAspect(Any):Description for dwDrawAspect - lindex(Any):Description for lindex - aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. - hdcTargetDev(Any):Description for hdcTargetDev - hdcDraw(Any):Description for hdcDraw - arg(Tuple[Any, Any, Any, Any]):Bounds rectangle. - arg1(Tuple[Any, Any, Any, Any]):WBounds rectangle. - funcContinue(Any):A continue function. - obContinue(Any):Value passed to the function. - -Returns: - - None - - """ - pass - - - def GetColorSet(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any',hicTargetDev:'Any') -> 'None': - """ - Description of GetColorSet. - -Args: - - dwDrawAspect(Any):Description for dwDrawAspect - lindex(Any):Description for lindex - aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. - hicTargetDev(Any):Description for hicTargetDev - -Returns: - - None - - """ - pass - - - def Freeze(self,dwDrawAspect:'Any',lindex:'Any',aspectFlags:'Any') -> 'None': - """ - Description of Freeze. - -Args: - - dwDrawAspect(Any):Description for dwDrawAspect - lindex(Any):Description for lindex - aspectFlags(Any):Integer value for the dwFlags item of the DVASPECTINFO structure. - -Returns: - - None - - """ - pass - - - def Unfreeze(self,dwFreeze:'Any') -> 'None': - """ - Description of Unfreeze. - -Args: - - dwFreeze(Any):Description for dwFreeze - -Returns: - - None - - """ - pass - - - def SetAdvise(self,aspects:'Any',advf:'Any',pAdvSink:'Any') -> 'None': - """ - Description of SetAdvise. - -Args: - - aspects(Any):Description for aspects - advf(Any):Description for advf - pAdvSink(Any):Description for pAdvSink - -Returns: - - None - - """ - pass - - - def GetAdvise(self,) -> 'None': - """ - Description of GetAdvise. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIViewObject2(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetExtent(self,dwDrawAspect:'Any',lindex:'Any',targetDevice:'Any') -> 'None': - """ - Description of GetExtent. - -Args: - - dwDrawAspect(Any):Description for dwDrawAspect - lindex(Any):Description for lindex - targetDevice(Any):Description for lindex - -Returns: - - None - - """ - pass - - -class PyMAPINAMEIDArray(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyOLEMENUGROUPWIDTHS(object): - """Tuple containing 6 ints indicating nbr of options in each menu group""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyPROPERTYKEY(object): - """A tuple of a fmtid and property id (IID, int) that uniquely identifies a property""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyPROPVARIANT(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def vt(self)->'Any': - """The variant type, a combination of VARENUM values including flags. (read only)MethodsGetValueReturns an object representing the variant value ToStringReturns the value as a string ChangeTypeCoerce to a different variant type """ - pass - - - def GetValue(self,) -> 'Any': - """ - Returns an object representing the variant value - -Args: - - - -Returns: - - Any - - """ - pass - - - def ToString(self,) -> 'Any': - """ - Returns the value as a string - -Args: - - - -Returns: - - Any - - """ - pass - - - def ChangeType(self,Type:'Any',Flags:'Any'=0) -> 'Any': - """ - Coerce to a different variant type - -Args: - - Type(Any):New variant type, combination of pythoncom.VT_* values - Flags(Any):Reserved (PROPVAR_CHANGE_FLAGS)Win32 API References - -Returns: - - Any - - """ - pass - - -class PySAndRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySBinaryArray(object): - """A sequence of strings containing binary data.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySBitMaskRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySContentRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySExistRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySHELL_ITEM_RESOURCE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySNotRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySOrRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySPropTagArray(object): - """A sequence of integers""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySPropValue(object): - """A MAPI property value. Property values can either be passed from - -python into MAPI functions, or returned from MAPI functions to Python.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySPropValueArray(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySPropertyRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySRow(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySRowSet(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySSortOrderItem(object): - """An item in a SortOrderSet.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySSortOrderSet(object): - """An object describing a SortOrderSet.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySTGMEDIUM(object): - """A STGMEDIUM object represents a COM STGMEDIUM structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def tymed(self)->'Any': - """An integer indicating the type of data in the stgmedium""" - pass - - - @property - def data(self)->'Any': - """The data in the stgmedium. The result depends on the value of the 'tymed' property of the PySTGMEDIUM object.tymedResult TypeTYMED_GDIAn integer GDI handleTYMED_MFPICTAn integer METAFILE handleTYMED_ENHMFAn integer ENHMETAFILE handleTYMED_HGLOBALA string with the bytes of the global memory object.TYMED_FILEA string/unicode filenameTYMED_ISTREAMA PyIStream objectTYMED_ISTORAGEA PyIStorage object""" - pass - - - @property - def data_handle(self)->'Any': - """The raw 'integer' representation of the data. For TYMED_HGLOBAL, this is the handle rather than the string data. For the string and interface types, this is an integer holding the pointer.""" - pass - - - def set(self,tymed:'Any',data:'Any') -> 'None': - """ - Sets the type and data of the object. - -Args: - - tymed(Any):The type of the data - data(Any): - -Returns: - - None - - """ - pass - - -class PyTASK_TRIGGER(object): - """Python object representing a TASK_TRIGGER structure via the structmember Api""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class RTF_WCSINFO(object): - """A tuple representing a RTF_WCSINFO structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SHFILEINFO(object): - """A tuple representing a SHFILEINFO structure - -Represented as a tuple of (hIcon, iIcon, dwAttributes, displayName, typeName)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SHFILEOPSTRUCT(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SI_ACCESS(object): - """Tuple of 4 items representing SI_ACCESS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SI_INHERIT_TYPE(object): - """Tuple of 3 items describing a method of inheritance""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SI_OBJECT_INFO(object): - """Six-tuple representing SI_OBJECT_INFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class STATSTG(object): - """A tuple representing a STATSTG structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class TLIBATTR(object): - """Type library attributes are represented as a tuple of:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class TYPEATTR(object): - """A TYPEATTR object represents a COM TYPEATTR structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def iid(self)->'PyIID': - """The IID""" - pass - - - @property - def lcid(self)->'Any': - """The lcid""" - pass - - - @property - def memidConstructor(self)->'Any': - """ID of constructor""" - pass - - - @property - def memidDestructor(self)->'Any': - """ID of destructor""" - pass - - - @property - def cbSizeInstance(self)->'Any': - """The size of an instance of this type""" - pass - - - @property - def typekind(self)->'Any': - """The kind of type this information describes. One of the win32con.TKIND_* constants.""" - pass - - - @property - def cFuncs(self)->'Any': - """Number of functions.""" - pass - - - @property - def cVars(self)->'Any': - """Number of variables/data members.""" - pass - - - @property - def cImplTypes(self)->'Any': - """Number of implemented interfaces.""" - pass - - - @property - def cbSizeVft(self)->'Any': - """The size of this type's VTBL""" - pass - - - @property - def cbAlignment(self)->'Any': - """Byte alignment for an instance of this type.""" - pass - - - @property - def wTypeFlags(self)->'Any': - """One of the pythoncom TYPEFLAG_""" - pass - - - @property - def wMajorVerNum(self)->'Any': - """Major version number.""" - pass - - - @property - def wMinorVerNum(self)->'Any': - """Minor version number.""" - pass - - - @property - def tdescAlias(self)->'Any': - """If TypeKind == pythoncom.TKIND_ALIAS, specifies the type for which this type is an alias.""" - pass - - - @property - def idldeskType(self)->'Any': - """IDL attributes of the described type.""" - pass - - -class TYPEDESC(object): - """A typedesc is a complicated, recursive object, - -It may be either a simple Python type, or a tuple of (indirectType, object), where object - -may be a simple Python type, or a tuple of etc ...""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class VARDESC(object): - """A VARDESC object represents a COM VARDESC structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def memid(self)->'Any': - """The dispid of the member""" - pass - - - @property - def value(self)->'Union[Any]': - """A value for the variant. If PERINSTANCE then an offset into the instance, otherwise a variant converted to a Python object.""" - pass - - - @property - def elemdescVar(self)->'Any': - """Object describing the member.""" - pass - - - @property - def varFlags(self)->'Any': - """Variable flags""" - pass - - - @property - def varkind(self)->'Any': - """Kind flags.""" - pass - - -class CHARFORMAT(object): - """Describes a CHARFORMAT tuple""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class CREATESTRUCT(object): - """A representation of a Windows CREATESTRUCT structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class LV_COLUMN(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class LV_ITEM(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PARAFORMAT(object): - """Describes a PARAFORMAT tuple""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyAssocCObject(object): - """An internal class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyAssocObject(object): - """An internal class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AttachObject(self,) -> 'None': - """ - Attaches a Python object for lookup of "virtual" functions. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetAttachedObject(self,) -> 'Any': - """ - Returned the attached Python object, or None. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCBitmap(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateCompatibleBitmap(self,dc:'Any',width:'Any',height:'Any') -> 'None': - """ - Creates a bitmap compatible with the specified device context. - -Args: - - dc(Any):Specifies the device context. - width(Any):The width (in bits) of the bitmap - height(Any):The height (in bits) of the bitmap. - -Returns: - - None - - """ - pass - - - def GetSize(self,) -> 'Tuple[Any, Any]': - """ - Returns the size of the bitmap object. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetHandle(self,) -> 'Any': - """ - Returns the HBITMAP for a bitmap object - -Args: - - - -Returns: - - Any - - """ - pass - - - def LoadBitmap(self,idRes:'Any',obDLL:'Any'=None) -> 'None': - """ - Loads a bitmap from a DLL object. - -Args: - - idRes(Any):The resource ID of the bitmap - obDLL(Any):The DLL object to load from. - -Returns: - - None - - """ - pass - - - def LoadBitmapFile(self,fileObject:'Any') -> 'None': - """ - Loads a bitmap (.BMP) format - -from a file object. - -Args: - - fileObject(Any):The file object to load the .BMP format file from. - -Returns: - - None - - """ - pass - - - def LoadPPMFile(self,fileObject:'Any',cols:'Any',rows:'Any') -> 'None': - """ - Loads a bitmap in Portable Pix Map (PPM) format - -from a file object. - -Args: - - fileObject(Any):The file object to load the PPM format file from. - cols(Any):The number of columns in the bitmap. - rows(Any):The number of rows in the bitmap. - -Returns: - - None - - """ - pass - - - def Paint(self,dcObject:'Any',arg:'Tuple[Any, Any, Any, Any]',arg1:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Paint a bitmap. - -Args: - - dcObject(Any):The DC object to paint the bitmap to. - arg(Tuple[Any, Any, Any, Any]):The destination rectangle to paint to. - arg1(Tuple[Any, Any, Any, Any]):The source rectangle to paint from. - -Returns: - - None - - """ - pass - - - def GetInfo(self,) -> 'Any': - """ - Returns the BITMAP structure info - -Args: - - - -Returns: - - Any:PyCBitmap.GetInfo - -dict = GetInfo()Returns the BITMAP structure info -Return ValueA dictionary of integers, keyed by the following strings: - -bmType - -bmWidth - -bmHeight - -bmWidthBytes - -bmPlanes - -bmBitsPixel - - - """ - pass - - - def GetBitmapBits(self,asString:'Any'=0) -> 'Union[Any, str]': - """ - Returns the bitmap bits. - -Args: - - asString(Any):If False, the result is a tuple of integers, if True, the result is a Python string - -Returns: - - Union[Any, str] - - """ - pass - - - def SaveBitmapFile(self,dcObject:'Any',Filename:'str') -> 'Any': - """ - Saves a bitmap to a file. - -Args: - - dcObject(Any):The DC object that has rendered the bitmap. - Filename(str):The file to save the bitmap to - -Returns: - - Any - - """ - pass - - -class PyCBrush(object): - """An object encapsulating an MFC PyCBrush class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateSolidBrush(self,) -> 'None': - """ - Initializes a brush with a specified solid color. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSafeHandle(self,) -> 'Any': - """ - Retrieves the HBRUSH for the brush as an integer - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCButton(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,caption:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': - """ - Creates the window for a new button object. - -Args: - - caption(str):The caption (text) for the button. - style(Any):The style for the button. Use any of the win32con.BS_* constants. - rect(Tuple[Any, Any, Any, Any]):The size and position of the button. - parent(Any):The parent window of the button. Usually a PyCDialog. - _id(Any):The buttons control ID. - -Returns: - - None - - """ - pass - - - def GetBitmap(self,) -> 'Any': - """ - Get the button's bitmap - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetBitmap(self,hBitmap:'Any'=1) -> 'Any': - """ - Set the button's bitmap - -Args: - - hBitmap(Any):Handle of the new bitmap - -Returns: - - Any - - """ - pass - - - def GetCheck(self,) -> 'Any': - """ - Retrieves the check state of a radio button or check box. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetCheck(self,idCheck:'Any') -> 'None': - """ - Sets or resets the state of a radio button or check box. - -Args: - - idCheck(Any):The ID of the button. - -Returns: - - None - - """ - pass - - - def GetState(self,) -> 'Any': - """ - Returns the state of the button. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetState(self,bHighlight:'Any') -> 'Any': - """ - Sets the state of the button. - -Args: - - bHighlight(Any):The new state for the button.CommentsHighlighting affects the exterior of a button control. It has no effect on the check state of a radio button or check box. - -Returns: - - Any - - """ - pass - - - def GetButtonStyle(self,) -> 'Any': - """ - Gets the style of the button. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetButtonStyle(self,style:'Any',bRedraw:'Any'=1) -> 'Any': - """ - Sets the style of the button. - -Args: - - style(Any):The new style for the button. - bRedraw(Any):Should the button be redrawn? - -Returns: - - Any - - """ - pass - - -class PyCCmdTarget(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BeginWaitCursor(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def EndWaitCursor(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def HookCommand(self,obHandler:'Any',_id:'Any') -> 'Any': - """ - Hook a windows command handler. - -Args: - - obHandler(Any):The handler for the command message. This must be a callable object. - _id(Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives command notification messages with the specified ID. Command notification messages are usually sent in response to menu or toolbar commands. When updating a user interface element, Pythonwin will first check if a handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone determines the state of the interface object. If no Update handler exists, PythonWin will automatically enable a menu/toolbar item if a command handler exists The handler will be called with 2 arguments * The command id being handled. * The command notification code. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed. This method is best suited to handling messages from user interface elements, such as menus, toolbars, etc. To handle notification messages from a control, you should use PyCCmdTarget::HookNotifyReturn ValueThe return value is the previous handler, or None. - -Returns: - - Any:The ID of the command to be handled, or zero to handle all command messages.Comments - -obHandler will be called as the application receives command notification messages with the specified ID. - -Command notification messages are usually sent in response to menu or toolbar commands. - -When updating a user interface element, Pythonwin will first check if a - -handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone - -determines the state of the interface object. If no Update handler exists, - -PythonWin will automatically enable a menu/toolbar item if a command handler exists - -The handler will be called with 2 arguments - -* The command id being handled. - -* The command notification code. - -If the handler returns TRUE, then the command will be passed on to the - -default handler, otherwise the message will be consumed. - -This method is best suited to handling messages from user interface - -elements, such as menus, toolbars, etc. To handle notification messages from a control, - -you should use PyCCmdTarget::HookNotify -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def HookCommandUpdate(self,obHandler:'Any',_id:'Any') -> 'Any': - """ - Hook a windows command update handler. - -Args: - - obHandler(Any):The handler for the command message. This must be a callable object. - _id(Any):The ID of the command to be handled.CommentsThe handler object passed will be called as the application updates user interface elements with the specified ID. See PyCCmdTarget::HookCommand for a description of the rules used to determine command routing and updating.Return ValueThe return value is the previous handler, or None. - -Returns: - - Any:The ID of the command to be handled.Comments - -The handler object passed will be called as - -the application updates user interface elements - -with the specified ID. - -See PyCCmdTarget::HookCommand for a description - -of the rules used to determine command routing and updating. -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def HookOleEvent(self,) -> 'Any': - """ - Hook an OLE Event. - -Args: - - - -Returns: - - Any:PyCCmdTarget.HookOleEvent - -object = HookOleEvent()Hook an OLE Event. -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def HookNotify(self,obHandler:'Any',_id:'Any') -> 'Any': - """ - Hook a windows command handler. - -Args: - - obHandler(Any):The handler for the command message. This must be a callable object. - _id(Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives control notification messages. These may also be handled via PyCCmdTarget::HookCommand, but this method is specific to control notifications, and therefore provides more information.The handler will be called with 2 arguments A tuple describing standard notification information. A tuple describing extra notification params, or an integer containing the address of the first byte of the extended information. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed.Certain notification codes are recognised internally, and these are converted to a Python tuple. If the extra information is not recognised, the address is passed. These addresses could be extracted using win32ui::GetBytes and the struct module, or using Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program can install certain knowledge about handlers, but this has not been implemented.)Return ValueThe return value is the previous handler, or None. - -Returns: - - Any:The ID of the command to be handled, or zero to handle all command messages.Comments - -obHandler will be called as the application receives control notification messages. - -These may also be handled via PyCCmdTarget::HookCommand, but this method is specific - -to control notifications, and therefore provides more information. - -The handler will be called with 2 arguments - -A tuple describing standard notification information. - -A tuple describing extra notification params, or an integer containing the address of the first byte of the - -extended information. If the handler returns TRUE, then the command will be passed on to the default handler, - -otherwise the message will be consumed. - -Certain notification codes are recognised internally, and these are converted to a Python tuple. - -If the extra information is not recognised, the address is passed. These addresses could be - -extracted using win32ui::GetBytes and the struct module, or using - -Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program - -can install certain knowledge about handlers, but this has not been implemented.) -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def RestoreWaitCursor(self,) -> 'None': - """ - Restores the appropriate hourglass cursor after the system cursor has - -changed. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCCmdUI(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def m_nIndex(self)->'Any': - """""" - pass - - - @property - def m_nID(self)->'Any': - """""" - pass - - - @property - def m_pMenu(self)->'Any': - """""" - pass - - - @property - def m_pSubMenu(self)->'Any': - """""" - pass - - - def Enable(self,bEnable:'Any'=1) -> 'None': - """ - Enables or disables the user-interface item for this command. - -Args: - - bEnable(Any):TRUE if the item should be enabled, false otherwise. - -Returns: - - None - - """ - pass - - - def SetCheck(self,state:'Any'=1) -> 'None': - """ - Sets the check state of the user-interface item for this command. - -Args: - - state(Any):0 for unchecked, 1 for checked, or 2 for indeterminate. - -Returns: - - None - - """ - pass - - - def SetRadio(self,bOn:'Any'=1) -> 'None': - """ - Like the SetCheck member function, but operates on radio groups. - -Args: - - bOn(Any):TRUE if the item should be enabled, false otherwise. - -Returns: - - None - - """ - pass - - - def SetText(self,text:'str') -> 'None': - """ - Sets the text for the user-interface item for this command. - -Args: - - text(str):The text for the interface element. - -Returns: - - None - - """ - pass - - - def ContinueRouting(self,) -> 'None': - """ - Tells the command-routing mechanism to continue routing the current message down - -the chain of handlers. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCColorDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetColor(self,) -> 'Any': - """ - Determines the selected color. - -Args: - - - -Returns: - - Any - - """ - pass - - - def DoModal(self,) -> 'Any': - """ - Displays a dialog and allows the user to make a selection. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSavedCustomColors(self,) -> 'Any': - """ - Returns the saved custom colors. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetCurrentColor(self,color:'Any') -> 'None': - """ - Sets the currently selected color. - -Args: - - color(Any):The color to set.MFC References - -Returns: - - None - - """ - pass - - - def SetCustomColors(self,) -> 'None': - """ - Sets one or more custom colors - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCustomColors(self,) -> 'Tuple[Any, ...]': - """ - Gets the 16 currently defined custom colors - -Args: - - - -Returns: - - Tuple[Any, ...] - - """ - pass - - -class PyCComboBox(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddString(self,_object:'Any') -> 'Any': - """ - Adds a string to a combobox. - -Args: - - _object(Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References - -Returns: - - Any:CComboBox::AddString -Return ValueThe zero based index of the new string. - - - """ - pass - - - def DeleteString(self,pos:'Any') -> 'Any': - """ - Deletes an item from a combobox. - -Args: - - pos(Any):The zero based index of the item to delete.MFC References - -Returns: - - Any:CComboBox::DeleteString -Return ValueThe count of the items remaining in the list. - - - """ - pass - - - def Dir(self,attr:'Any',wild:'str') -> 'Any': - """ - Fills the list portion of a combobox with a directory listing. - -Args: - - attr(Any):The attributes of the files to locate - wild(str):A file specification string - eg, *.*MFC References - -Returns: - - Any:CComboBox::Dir -Return ValueThe index of the last file name added to the list. - - - """ - pass - - - def GetCount(self,) -> 'Any': - """ - Returns the count of items in the combobox. - -Args: - - - -Returns: - - Any:CListBox::GetCount -Return ValueReturns the number of items currently in the combobox. - - - """ - pass - - - def GetCurSel(self,) -> 'Any': - """ - Returns the index of the currently selected item. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetEditSel(self,) -> 'Any': - """ - Returns the selection of the edit control portion of a combo box. - -Args: - - - -Returns: - - Any:CComboBox::GetEditSel -Return ValueA 32-bit value that contains the starting position in the low-order word and - -the position of the first nonselected character after the end of - -the selection in the high-order word. If this function is used on a combo box - -without an edit control, an exception is raised. - - - """ - pass - - - def GetExtendedUI(self,) -> 'Any': - """ - Indicates if the combo has the extended interface. - -Args: - - - -Returns: - - Any:CComboBox::GetExtendedUI -Return ValueNonzero if the combo box has the extended user interface; otherwise 0. - - - """ - pass - - - def GetItemData(self,item:'Any') -> 'Any': - """ - Retrieves the application-specific object associated with an item. - -Args: - - item(Any):The index of the item whose data is to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetItemValue(self,item:'Any') -> 'Any': - """ - Retrieves the application-specific value associated with an item. - -Args: - - item(Any):The index of the item whose data is to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetLBText(self,index:'Any') -> 'str': - """ - Gets the string from the list of a combo box. - -Args: - - index(Any):The index of the item to return the string for.Return ValueThe requested string. If index does not specify a valid index, no exception is raised. - -Returns: - - str:The index of the item to return the string for.Return ValueThe requested string. If index does - -not specify a valid index, no exception is raised. - - - """ - pass - - - def GetLBTextLen(self,index:'Any') -> 'Any': - """ - Returns the length of a string in the list of a combobox. - -Args: - - index(Any):The index of the item to return the length of.MFC References - -Returns: - - Any - - """ - pass - - - def InsertString(self,pos:'Any',_object:'Any') -> 'Any': - """ - Insert a string into a combobox. - -Args: - - pos(Any):The zero based index in the combobox to insert the new string - _object(Any):The object to be added to the comboboxMFC References - -Returns: - - Any:CComboBox::InsertString -Return ValueThe zero based index of the new string added. - - - """ - pass - - - def LimitText(self,_max:'Any') -> 'Any': - """ - Limits the amount of text the edit portion of a combo box can hold. - -Args: - - _max(Any):The maximum number of characters the user can enter. If zero, the size is set to (virtually) unlimited.MFC References - -Returns: - - Any - - """ - pass - - - def ResetContent(self,) -> 'None': - """ - Clear all the items from a combobox. - -Args: - - - -Returns: - - None - - """ - pass - - - def SelectString(self,after:'Any',string:'str') -> 'None': - """ - Searches for a combobox item that matches the specified string, and selects it. - -Args: - - after(Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire combobox. - string(str):The string to search for.MFC References - -Returns: - - None:CComboBoxBox::SelectString -Return ValueThe return value is always None - an exception is raised if the string can not be located. - - - """ - pass - - - def SetCurSel(self,index:'Any') -> 'None': - """ - Selects an item in a combobox. - -Args: - - index(Any):The zero based index of the item to select.MFC References - -Returns: - - None - - """ - pass - - - def SetEditSel(self,start:'Any',end:'Any') -> 'None': - """ - Sets the selection in the edit control portion of a combo box. - -Args: - - start(Any):Specifies the starting position. If the starting position is set to -1, then any existing selection is removed. - end(Any):Specifies the ending position. If the ending position is set to -1, then all text from the starting position to the last character in the edit control is selected.MFC References - -Returns: - - None:PyCComboBox::SetEditSel -Return ValueThe return value is always None - an exception is raised if the combo is a dropdown style, or does not - -have an edit control. - - - """ - pass - - - def SetExtendedUI(self,bExtended:'Any'=1) -> 'None': - """ - Selects the Extended UI mode for a combo box. - -Args: - - bExtended(Any):Indicates if the combo should have the extended user interface.CommentsA combo box with the Extended UI flag set can be identified in the following ways:~ Clicking the static control displays the list box only for combo boxes with the CBS_DROPDOWNLIST style.~ Pressing the DOWN ARROW key displays the list box (F4 is disabled).~ Scrolling in the static control is disabled when the item list is not visible (the arrow keys are disabled).MFC References - -Returns: - - None - - """ - pass - - - def SetItemData(self,item:'Any',Data:'Any') -> 'Any': - """ - Sets the item's application-specific object value. - -Args: - - item(Any):Index of the item whose Data is to be set. - Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. - -Returns: - - Any - - """ - pass - - - def SetItemValue(self,item:'Any',data:'Any') -> 'Any': - """ - Sets the item's application-specific value. - -Args: - - item(Any):Index of the item whose Data is to be set. - data(Any):New value for the data. - -Returns: - - Any - - """ - pass - - - def ShowDropDown(self,bShowIt:'Any'=1) -> 'None': - """ - Shows or hides the listbox portion of a combo box. - -Args: - - bShowIt(Any):Indicates if the listbox should be shown or hidden. - -Returns: - - None - - """ - pass - - -class PyCCommonDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCControl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCControlBar(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dockSite(self)->'Any': - """Current dock site, if dockable""" - pass - - - @property - def dockBar(self)->'Any': - """Current dock bar, if dockable""" - pass - - - @property - def dockContext(self)->'Any': - """Used during dragging""" - pass - - - @property - def dwStyle(self)->'Any': - """creation style (used for layout)""" - pass - - - @property - def dwDockStyle(self)->'Any': - """indicates how bar can be docked""" - pass - - - def CalcDynamicLayout(self,length:'Any',dwMode:'Any') -> 'Any': - """ - The framework calls this member function to calculate the dimensions of - -a dynamic toolbar. - -Args: - - length(Any):The requested dimension of the control bar, either horizontal or vertical, depending on dwMode. - dwMode(Any):A combination of flags. - -Returns: - - Any - - """ - pass - - - def CalcFixedLayout(self,bStretch:'Any',bHorz:'Any') -> 'Any': - """ - Calculates the horizontal size of a control bar - -Args: - - bStretch(Any):Indicates whether the bar should be stretched to the size of the frame. The bStretch parameter is nonzero when the bar is not a docking bar (not available for docking) and is 0 when it is docked or floating (available for docking). - bHorz(Any):Indicates that the bar is horizontally or vertically oriented. - -Returns: - - Any - - """ - pass - - - def EnableDocking(self,style:'Any') -> 'None': - """ - pecifies whether the control bar supports docking and the sides of its parent - -window. - -Args: - - style(Any):Enables a control bar to be docked. - -Returns: - - None - - """ - pass - - - def EraseNonClient(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def GetBarStyle(self,) -> 'Any': - """ - Retrieves the control bar style settings. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetCount(self,) -> 'Any': - """ - Returns the number of non-HWND elements in the control bar. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDockingFrame(self,) -> 'Any': - """ - Returns the frame window to which a control bar is docked. - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsFloating(self,) -> 'Any': - """ - Returns a nonzero value if the control bar in question is a floating control - -bar. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetBarStyle(self,style:'Any') -> 'None': - """ - Modifies the control bar style settings. - -Args: - - style(Any):The new style - -Returns: - - None - - """ - pass - - - def ShowWindow(self,) -> 'Any': - """ - Shows the toolbar, and recalculates the button layout. - -Args: - - - -Returns: - - Any:PyCControlBar.ShowWindow - -int = ShowWindow()Shows the toolbar, and recalculates the button layout. -Comments - -This method is provided for convenience. For further details, see - -PyCWnd::ShowWindow and PyCFrameWnd::RecalcLayout -Return ValueThe return value is that returned from PyCWnd::ShowWindow - - - """ - pass - - -class PyCCtrlView(object): - """A class which implementes a CCtrlView (ie, a view based on a dialog resource.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(Any): - lparam(Any):See Also - -Returns: - - None - - """ - pass - - -class PyCDC(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AbortDoc(self,) -> 'None': - """ - Aborts a print job - -Args: - - - -Returns: - - None - - """ - pass - - - def Arc(self,rect:'Tuple[Any, Any, Any, Any]',pointStart:'Tuple[Any, Any]',pointEnd:'Tuple[Any, Any]') -> 'None': - """ - Draws an eliptical arc. - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangle - pointStart(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. - pointEnd(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsThe arc drawn by using the function is a segment of the ellipse defined by the specified bounding rectangle. The actual starting point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified starting point intersects the ellipse. The actual ending point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified ending point intersects the ellipse. The arc is drawn in a counterclockwise direction. Since an arc is not a closed figure, it is not filled. Both the width and height of the rectangle must be greater than 2 units and less than 32,767 units.MFC References - -Returns: - - None:CDC::Arc -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - - def BeginPath(self,) -> 'None': - """ - Opens a path bracket in the device context - -Args: - - - -Returns: - - None - - """ - pass - - - def BitBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',dc:'Any',srcPos:'Tuple[Any, Any]',rop:'Any') -> 'None': - """ - Copies a bitmap from the source device context to this device context. - -Args: - - destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. - size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. - dc(Any):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. - srcPos(Tuple[Any, Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. - rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References - -Returns: - - None - - """ - pass - - - def Chord(self,rect:'Tuple[Any, Any, Any, Any]',pointStart:'Tuple[Any, Any]',pointEnd:'Tuple[Any, Any]') -> 'None': - """ - Draws a chord. - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangle - pointStart(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. - pointEnd(Tuple[Any, Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsDraws a chord (a closed figure bounded by the intersection of an ellipse and a line segment). The rect parameter specify the upper-left and lower-right corners, respectively, of a rectangle bounding the ellipse that is part of the chord. The pointStart and pointEnd parameters specify the endpoints of a line that intersects the ellipse. The chord is drawn by using the selected pen and filled by using the selected brush.MFC References - -Returns: - - None:CDC::Chord -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - - def CreateCompatibleDC(self,dcFrom:'Any'=None) -> PyCDC: - """ - Creates a memory device context that is compatible with this DC. - -Args: - - dcFrom(Any):The source DC, or None to make a screen compatible DC.CommentsNote that unlike the MFC version, this function calls the global CreateCompatibleDC function and returns a new PyCDC object.MFC References - -Returns: - - None - - """ - pass - - - def CreatePrinterDC(self,printerName:'str'=None) -> 'None': - """ - Creates a device context for a specific printer - -Args: - - printerName(str):The printer name, or None for the default printerMFC References - -Returns: - - None - - """ - pass - - - def DeleteDC(self,) -> 'None': - """ - Deletes all resources associated with a device context. - -Args: - - - -Returns: - - None - - """ - pass - - - def DPtoLP(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': - """ - Converts device units into logical units. - -Args: - - point(Tuple[Any, Any]):The point to convertAlternative Parameters - x(Any):The x coordinate to convert. - y(Any):The y coordinate to convert.MFC References - -Returns: - - Tuple[Any, Any]:CDC::DPtoLP - To Do Should really handle list of (x,y) points -Return ValueThe converted coordinates. - - - """ - pass - - - def Draw3dRect(self,rect:'Tuple[Any, Any, Any, Any]',colorTopLeft:'Any',colorBotRight:'Any') -> 'None': - """ - Draws a three-dimensional rectangle. - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. - colorTopLeft(Any):Specifies the color of the top and left sides of the three-dimensional rectangle. - colorBotRight(Any):Specifies the color of the bottom and right sides of the three-dimensional rectangle.MFC References - -Returns: - - None - - """ - pass - - - def DrawFocusRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Draws a rectangle in the style used to - -indicate the rectangle has focus - -Args: - - rect(Tuple[Any, Any, Any, Any]):The coordinates of the rectangleMFC References - -Returns: - - None - - """ - pass - - - def DrawFrameControl(self,rect:'Tuple[Any, Any, Any, Any]',typ:'Any',state:'Any') -> 'None': - """ - Draws a frame control of the specified type and style. - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. - typ(Any): - state(Any):MFC References - -Returns: - - None - - """ - pass - - - def DrawIcon(self,point:'Tuple[Any, Any]',hIcon:'int') -> 'None': - """ - Draws an icon on the DC. - -Args: - - point(Tuple[Any, Any]):The point coordinate to draw to. - hIcon(int):The handle of the icon to draw.MFC References - -Returns: - - None - - """ - pass - - - def DrawText(self,s:'str',_tuple:'Tuple[Any, Any, Any, Any]',_format:'Any') -> 'Tuple[Any, Any, Any]': - """ - Formats text in the given rectangle - -Args: - - s(str):The desired output string - _tuple(Tuple[Any, Any, Any, Any]):The bounding rectangle in the form: (left, top, right, bottom) expressed in logical units (depending on selected coordinate system - see PyCDC::SetMapMode) - _format(Any):Specifies one or more bit-or'd format values, such as DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see the Microsoft Win32 API documentation.ExampleExampleimport win32ui<nl> import win32con<nl> INCH = 1440 # twips - 1440 per inch allows fine res<nl> def drawtext_test():<nl> dc = win32ui.CreateDC()<nl> dc.CreatePrinterDC() # ties to default printer<nl> dc.StartDoc('My Python Document')<nl> dc.StartPage()<nl> <nl> # note: upper left is 0,0 with x increasing to the right,<nl> # and y decreasing (negative) moving down<nl> dc.SetMapMode(win32con.MM_TWIPS)<nl> <nl> # Centers "TEST" about an inch down on page<nl> dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> dc.EndPage()<nl> dc.EndDoc()<nl> del dc<nl>Return ValueHeight of text in pixelsThe return value is the height of the text, in logical units. If DT_VCENTER or DT_BOTTOM is specified, the return value is the offset from rect.top to the bottom of the drawn text. If the function fails, the return value is zero (no Python exception is thrown) - -Returns: - - Tuple[Any, Any, Any]:Specifies one or more bit-or'd format values, such as - -DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see - -the Microsoft Win32 API documentation.ExampleExample -import win32ui<nl> - - import win32con<nl> - - INCH = 1440 # twips - 1440 per inch allows fine res<nl> - - def drawtext_test():<nl> - - dc = win32ui.CreateDC()<nl> - - dc.CreatePrinterDC() # ties to default printer<nl> - - dc.StartDoc('My Python Document')<nl> - - dc.StartPage()<nl> - - <nl> - - # note: upper left is 0,0 with x increasing to the right,<nl> - - # and y decreasing (negative) moving down<nl> - - dc.SetMapMode(win32con.MM_TWIPS)<nl> - - <nl> - - # Centers "TEST" about an inch down on page<nl> - - dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> - - dc.EndPage()<nl> - - dc.EndDoc()<nl> - - del dc<nl> - - -Return ValueHeight of text in pixels - - - -The return value is the height of the text, in logical units. - -If DT_VCENTER or DT_BOTTOM is specified, the return value is the - -offset from rect.top to the bottom of the drawn text. - -If the function fails, the return value is zero (no Python exception is thrown) - - - """ - pass - - - def Ellipse(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Draws an Ellipse. - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the ellipse's bounding rectangleCommentsThe center of the ellipse is the center of the bounding rectangle specified by rect. The ellipse is drawn with the current pen, and its interior is filled with the current brush.MFC References - -Returns: - - None:CDC::Ellipse -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - - def EndDoc(self,) -> 'None': - """ - Finishes spooling the document and starts printing it - -Args: - - - -Returns: - - None - - """ - pass - - - def EndPage(self,) -> 'None': - """ - Finishes a page on a printer DC - -Args: - - - -Returns: - - None - - """ - pass - - - def EndPath(self,) -> 'None': - """ - Closes a path bracket and selects the path defined by the bracket into the specified device - -context - -Args: - - - -Returns: - - None - - """ - pass - - - def ExtTextOut(self,_int:'Any',_int1:'Any',_int2:'Any',rect:'Tuple[Any, Any, Any, Any]',string:'Any',_tuple:'Tuple[Tuple[Any, Any], ...]') -> 'None': - """ - Writes text to the DC. - -Args: - - _int(Any):The x coordinate to write the text to. - _int1(Any):The y coordinate to write the text to. - _int2(Any):Specifies the rectangle type. This parameter can be one, both, or neither of ETO_CLIPPED and ETO_OPAQUE - rect(Tuple[Any, Any, Any, Any]):Specifies the text's bounding rectangle. (Can be None.) - string(Any):The text to write. - _tuple(Tuple[Tuple[Any, Any], ...]):Optional array of values that indicate distance between origins of character cells.MFC References - -Returns: - - None:CDC::ExtTextOut -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - - def FillPath(self,) -> 'None': - """ - Closes any open figures in the current path and fills the path's interior by using the - -current brush and polygon-filling mode. After its interior is filled, the path is discarded from the device context. - -Args: - - - -Returns: - - None - - """ - pass - - - def FillRect(self,rect:'Tuple[Any, Any, Any, Any]',brush:'Any') -> 'None': - """ - Fills a given rectangle with the specified brush - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. - brush(Any):Specifies the brush to use.MFC References - -Returns: - - None - - """ - pass - - - def FillSolidRect(self,rect:'Tuple[Any, Any, Any, Any]',color:'Any') -> 'None': - """ - Fills the given rectangle with the specified solid color. - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. - color(Any):Specifies the color to use.MFC References - -Returns: - - None - - """ - pass - - - def FrameRect(self,rect:'Tuple[Any, Any, Any, Any]',brush:'Any') -> 'None': - """ - Draws a border around the rectangle specified by rect - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units. - brush(Any):Specifies the brush to use.MFC References - -Returns: - - None - - """ - pass - - - def GetBrushOrg(self,) -> 'Tuple[Any, Any]': - """ - Retrieves the origin (in device units) of the brush currently selected for the - -device context. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetClipBox(self,) -> 'Tuple[Any, Any, Any, Any]': - """ - Retrieves the dimensions of the smallest bounding rectangle - -around the current clipping boundary. - -Args: - - - -Returns: - - Tuple[Any, Any, Any, Any]:CDC::GetClipBox -Return ValueA tuple of integers specifying the rectangle. - - - """ - pass - - - def GetCurrentPosition(self,) -> 'Tuple[Any, Any]': - """ - Retrieves the current position (in logical coordinates). - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetDeviceCaps(self,index:'Any') -> 'Any': - """ - Retrieves a capability of the device context. - -Args: - - index(Any):The information requested. See the win32api documentation for details.MFC References - -Returns: - - Any:CDC::GetDeviceCaps -Return ValueThe value of the requested capability - - - """ - pass - - - def GetHandleAttrib(self,) -> 'Any': - """ - Retrieves the handle of the attribute device context. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetHandleOutput(self,) -> 'Any': - """ - Retrieves the handle of the output device context. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetMapMode(self,) -> 'Any': - """ - Gets the mapping mode for the device context. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetNearestColor(self,color:'Any') -> 'Any': - """ - Returns the closest color a device can map. - -Args: - - color(Any):Specifies the color to be matched. - -Returns: - - Any - - """ - pass - - - def GetPixel(self,x:'Any',y:'Any') -> 'None': - """ - Gets a pixel at a local in a device context - -Args: - - x(Any):Horizontal coordinate. - y(Any):Vertical coordinate. - -Returns: - - None - - """ - pass - - - def GetSafeHdc(self,) -> 'Any': - """ - Returns the HDC of this DC object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTextExtent(self,text:'str') -> 'Tuple[Any, Any]': - """ - Calculates the width and height of a line of text using the current font to - -determine the dimensions. - -Args: - - text(str):The text to calculate for.MFC References - -Returns: - - Tuple[Any, Any]:CFC::GetTextExtent -Return ValueA tuple of integers with the size of the string, in logical units. - - - """ - pass - - - def GetTextExtentPoint(self,text:'str') -> 'Tuple[Any, Any]': - """ - None - -Args: - - text(str):The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. - -Returns: - - Tuple[Any, Any]:The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. - - - """ - pass - - - def GetTextFace(self,) -> 'str': - """ - Returns typeface name of the current font. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetTextMetrics(self,) -> 'Any': - """ - Retrieves the metrics for the current font in this device context. - -Args: - - - -Returns: - - Any:CDC::GetTextMetrics -Return ValueA dictionary of integers, keyed by the following strings: - -tmHeight - -tmAscent - -tmDescent - -tmInternalLeading - -tmExternalLeading - -tmAveCharWidth - -tmMaxCharWidth - -tmWeight - -tmItalic - -tmUnderlined - -tmStruckOut - -tmFirstChar - -tmLastChar - -tmDefaultChar - -tmBreakChar - -tmPitchAndFamily - -tmCharSet - -tmOverhang - -tmDigitizedAspectX - -tmDigitizedAspectY - - - """ - pass - - - def GetViewportExt(self,) -> 'Tuple[Any, Any]': - """ - Gets the viewport extent of the device context - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetViewportOrg(self,) -> 'Tuple[Any, Any]': - """ - Gets the viewport origin of the device context - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetWindowExt(self,) -> 'Tuple[Any, Any]': - """ - Gets the window extent of the device context - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetWindowOrg(self,) -> 'Tuple[Any, Any]': - """ - Retrieves the x- and y-coordinates of the origin of the window associated with the - -device context. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def IntersectClipRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Creates a new clipping region by forming the intersection of the current region - -and the rectangle specified - -Args: - - rect(Tuple[Any, Any, Any, Any]):Specifies the bounding rectangle, in logical units.MFC References - -Returns: - - None:CDC::IntersectClipRect -Return Valueregion type as integer - - - """ - pass - - - def IsPrinting(self,) -> 'Any': - """ - Returns 1 if the DC is currently printing, else 0 - -Args: - - - -Returns: - - Any - - """ - pass - - - def LineTo(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'None': - """ - Draws a line to a specified point, using the currently selected pen. - -Args: - - point(Tuple[Any, Any]):The point coordinate to draw to.Alternative Parameters - x(Any):The x coordinate to draw to. - y(Any):The y coordinate to draw to.MFC References - -Returns: - - None - - """ - pass - - - def LPtoDP(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': - """ - Converts logical units into device units. - -Args: - - point(Tuple[Any, Any]):The point coordinate to convert.Alternative Parameters - x(Any):The x coordinate to convert. - y(Any):The y coordinate to convert.MFC References - -Returns: - - Tuple[Any, Any]:CDC::LPtoDP -Return ValueThe converted coordinates. - - - """ - pass - - - def MoveTo(self,point:'Tuple[Any, Any]',x:'Any',y:'Any') -> 'Tuple[Any, Any]': - """ - Moves the current position to a specified point. - -Args: - - point(Tuple[Any, Any]):The point coordinate to move to.Alternative Parameters - x(Any):The x coordinate to move to. - y(Any):The y coordinate to move to.MFC References - -Returns: - - Tuple[Any, Any]:CDC::MoveTo -Return ValueThe previous position. - - - """ - pass - - - def OffsetWindowOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': - """ - Modifies the coordinates of the window origin relative to the coordinates of the - -current window origin. - -Args: - - arg(Tuple[Any, Any]):The new origin offset.Return ValueThe previous origin as a tuple (x,y) - -Returns: - - Tuple[Any, Any]:The new origin offset.Return ValueThe previous origin as a tuple (x,y) - - - """ - pass - - - def OffsetViewportOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': - """ - Modifies the coordinates of the viewport origin relative to the coordinates of - -the current viewport origin - -Args: - - arg(Tuple[Any, Any]):The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) - -Returns: - - Tuple[Any, Any]:The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) - - - """ - pass - - - def PatBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',rop:'Any') -> 'None': - """ - Creates a bit pattern on the device. - -Args: - - destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. - size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. - rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References - -Returns: - - None - - """ - pass - - - def Pie(self,x1:'Any',y1:'Any',x2:'Any',y2:'Any',x3:'Any',y3:'Any',x4:'Any',y4:'Any') -> 'None': - """ - Draws a pie slice in a device context - -Args: - - x1(Any):X coordinate of upper left corner - y1(Any):Y coordinate of upper left corner - x2(Any):X coordinate of lower right corner - y2(Any):Y coordinate of lower right corner - x3(Any):X coordinate of starting point of arc - y3(Any):Y coordinate of starting point of arc - x4(Any):X coordinate of ending point of arc - y4(Any):Y coordinate of ending point of arc - -Returns: - - None - - """ - pass - - - def PolyBezier(self,) -> 'None': - """ - Draws one or more Bezier splines. - -Args: - - - -Returns: - - None - - """ - pass - - - def Polygon(self,) -> 'None': - """ - Draws an Polygon. - -Args: - - - -Returns: - - None - - """ - pass - - - def Polyline(self,points:'List[Any]') -> 'None': - """ - Draws a Polyline. - -Args: - - points(List[Any]):A sequence of points - -Returns: - - None - - """ - pass - - - def RealizePalette(self,) -> 'Any': - """ - Maps palette entries in the current logical palette to the system palette. - -Args: - - - -Returns: - - Any:PyCDC.RealizePalette - -int = RealizePalette()Maps palette entries in the current logical palette to the system palette. -Return ValueIndicates how many entries in the logical palette were mapped to different entries - -in the system palette. This represents the number of entries that this function - -remapped to accommodate changes in the system palette since the logical palette - -was last realized. - - - """ - pass - - - def Rectangle(self,) -> 'Any': - """ - Draws a rectangle using the current pen. The interior of the rectangle is filled using - -the current brush. - -Args: - - - -Returns: - - Any - - """ - pass - - - def RectVisible(self,rect:'Tuple[Any, Any, Any, Any]') -> 'Any': - """ - Determines whether any part of the given rectangle lies within the clipping region of - -the display context. - -Args: - - rect(Tuple[Any, Any, Any, Any]):The coordinates of the reactangle to be checked.MFC References - -Returns: - - Any:CDC::RectVisible -Return ValueNon zero if any part of the rectangle lies within the clipping region, else zero. - - - """ - pass - - - def RestoreDC(self,saved:'Any') -> 'None': - """ - Restores the state of the device context. - -Args: - - saved(Any):The id of a previously saved device context. See PyCDC::SaveDCMFC References - -Returns: - - None - - """ - pass - - - def SaveDC(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any:CDC::SaveDC -Return ValueAn integer identifying the context, which can be used by PyCDC::RestoreDC. - -An exception is raised if this function fails. - - - """ - pass - - - def ScaleWindowExt(self,) -> 'Tuple[Any, Any]': - """ - Modifies the window extents relative to the current values. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def ScaleViewportExt(self,) -> 'Tuple[Any, Any]': - """ - Modifies the viewport extents relative to the current values. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def SelectClipRgn(self,) -> 'Any': - """ - Selects the given region as the current clipping region for the device context - -Args: - - - -Returns: - - Any:PyCDC.SelectClipRgn - -obRgn = SelectClipRgn()Selects the given region as the current clipping region for the device context -Return ValueThe return value specifies the region's complexity (integer) - - - """ - pass - - - def SelectObject(self,ob:'Any') -> 'Any': - """ - None - -Args: - - ob(Any):The object to select.MFC References - -Returns: - - Any:CDC::SelectObject -Return ValueThe previously selected object. This will be the same type as the object parameter. - - - """ - pass - - - def SetBkColor(self,color:'Any') -> 'Any': - """ - Sets the current background color to the specified color. - -Args: - - color(Any):A windows color specification. See the win32api documentation for details.CommentsIf the background mode is OPAQUE, the system uses the background color to fill the gaps in styled lines, the gaps between hatched lines in brushes, and the background in character cells. The system also uses the background color when converting bitmaps between color and monochrome device contexts.MFC References - -Returns: - - Any:CDC::SetBkColor -Return ValueThe return value is the previous background color. - - - """ - pass - - - def SetBkMode(self,mode:'Any') -> 'Any': - """ - Sets the current background mode to the specified mode. - -Args: - - mode(Any):A background mode. May be either TRANSPARENT or OPAQUE.CommentsSpecifies the mode to be set. This parameter can be either OPAQUE or TRANSPARENTMFC References - -Returns: - - Any:CDC::SetBkMode -Return ValueThe return value is the previous background mode. - - - """ - pass - - - def SetBrushOrg(self,point:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': - """ - Specifies the origin that GDI will assign to the next brush that the - -application selects into the device context. - -Args: - - point(Tuple[Any, Any]):The new origin in device units.MFC References - -Returns: - - Tuple[Any, Any]:CDC::SetBrushOrg -Return ValueThe previous origin in device units. - - - """ - pass - - - def SetGraphicsMode(self,mode:'Any') -> 'Any': - """ - Sets the graphics mode for the specified device context - -Args: - - mode(Any):The new mode. - -Returns: - - Any - - """ - pass - - - def SetMapMode(self,newMode:'Any') -> 'Any': - """ - Sets the mapping mode for the device context. - -Args: - - newMode(Any):The new mode. Can be one of MM_ANISOTROPIC, MM_HIENGLISH, MM_HIMETRIC, MM_ISOTROPIC, MM_LOENGLISH, MM_LOMETRIC, MM_TEXT, MM_TWIPSMFC References - -Returns: - - Any:CDC::SetMapMode -Return ValueThe previous mapping mode. - - - """ - pass - - - def SetPixel(self,x:'Any',y:'Any',color:'Any') -> 'None': - """ - Sets a pixel in a device context - -Args: - - x(Any):Horizontal coordinate. - y(Any):Vertical coordinate. - color(Any):The brush color. - -Returns: - - None - - """ - pass - - - def SetPolyFillMode(self,point:'Tuple[Any, Any]') -> 'Any': - """ - Sets the polygon-filling mode. - -Args: - - point(Tuple[Any, Any]):The new origin in device units.MFC References - -Returns: - - Any:CDC::SetPolyFillMode -Return ValueThe previous PolyFillMode as integer - - - -The previous PolyFillMode. - - - """ - pass - - - def SetROP2(self,mode:'Any') -> 'Any': - """ - Sets the current drawing mode. - -Args: - - mode(Any):The new drawing mode.MFC References - -Returns: - - Any - - """ - pass - - - def SetTextAlign(self,newFlags:'Any') -> 'Any': - """ - Sets the text-alignment flags. - -Args: - - newFlags(Any):The new alignment flags. Can be a combination of (TA_CENTER, TA_LEFT, TA_RIGHT), (TA_BASELINE, TA_BOTTOM, TA_TOP) and (TA_NOUPDATECP, TA_UPDATECP) The default is TA_LEFT|TA_TOP|TA_NOUPDATECPMFC References - -Returns: - - Any:CDC::SetTextAlign -Return ValueThe old alignment flags. - - - """ - pass - - - def SetTextColor(self,color:'Any') -> 'Any': - """ - Sets the text color to the specified color. - -Args: - - color(Any):A windows color specification. See the win32api documentation for details.CommentsThis text color is used when writing text to this device context and also when converting bitmaps between color and monochrome device contexts. If the device cannot represent the specified color, the system sets the text color to the nearest physical color. The background color for a character is specified by the SetBkColor and SetBkMode member functions.MFC References - -Returns: - - Any:CDC::SetTextColor -Return ValueThe return value is the previous text color. - - - """ - pass - - - def SetWindowExt(self,size:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': - """ - Sets the x,y extents of the window associated with the device context. - -Args: - - size(Tuple[Any, Any]):The new size.MFC References - -Returns: - - Tuple[Any, Any]:CDC::SetWindowExt -Return ValueThe previous extents of the window (in logical units). - - - """ - pass - - - def SetWindowOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': - """ - Sets the window origin of the device context - -Args: - - arg(Tuple[Any, Any]):The new origin. - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def SetViewportExt(self,size:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': - """ - Sets the x,y extents of the viewport of the device context. - -Args: - - size(Tuple[Any, Any]):The new size.MFC References - -Returns: - - Tuple[Any, Any]:CDC::SetViewportExt -Return ValueThe previous extents of the viewport (in logical units). - - - """ - pass - - - def SetViewportOrg(self,arg:'Tuple[Any, Any]') -> 'Tuple[Any, Any]': - """ - Sets the viewport origin of the device context - -Args: - - arg(Tuple[Any, Any]):The new origin. - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def SetWorldTransform(self,) -> 'Any': - """ - sets a two-dimensional linear transformation between world space and page space - -for the specified device context. This transformation can be used to scale, rotate, shear, or translate graphics - -output. - -Args: - - - -Returns: - - Any - - """ - pass - - - def StartDoc(self,docName:'str',outputFile:'str') -> 'None': - """ - Starts spooling a document to a printer DC - -Args: - - docName(str):The document name - outputFile(str):The output file name. Use this to spool to a file. Omit to send to the printer. - -Returns: - - None - - """ - pass - - - def StartPage(self,) -> 'None': - """ - Starts a new page on a printer DC - -Args: - - - -Returns: - - None - - """ - pass - - - def StretchBlt(self,destPos:'Tuple[Any, Any]',size:'Tuple[Any, Any]',dc:'Any',srcPos:'Tuple[Any, Any]',size1:'Tuple[Any, Any]',rop:'Any') -> 'None': - """ - Copies a bitmap from the source device context to this device context. - -Args: - - destPos(Tuple[Any, Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. - size(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. - dc(Any):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. - srcPos(Tuple[Any, Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. - size1(Tuple[Any, Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. - rop(Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References - -Returns: - - None - - """ - pass - - - def StrokeAndFillPath(self,) -> 'None': - """ - Closes any open figures in a path, strokes the outline of the path by using the - -current pen, and fills its interior by using the current brush. The device context must contain a closed path. - -Args: - - - -Returns: - - None - - """ - pass - - - def StrokePath(self,) -> 'None': - """ - Renders the specified path by using the current pen. - -Args: - - - -Returns: - - None - - """ - pass - - - def TextOut(self,_int:'Any',_int1:'Any',string:'Any') -> 'None': - """ - Outputs text to the display context, using the currently selected font. - -Args: - - _int(Any):The x coordinate to write the text to. - _int1(Any):The y coordinate to write the text to. - string(Any):The text to write.MFC References - -Returns: - - None:CDC::TextOut -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - -class PyCDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,obParent:'Any'=None) -> 'None': - """ - Create a modeless window for the dialog box. - -Args: - - obParent(Any):The parent window for the new windowMFC References - -Returns: - - None - - """ - pass - - - def DoModal(self,) -> 'Any': - """ - Create a modal window for the dialog box. - -Args: - - - -Returns: - - Any:CDialog::DoModal -Return ValueThe return value from the dialog. This is the value passed to PyCDialog::EndDialog. - - - """ - pass - - - def EndDialog(self,result:'Any') -> 'None': - """ - Ends a modal dialog box. - -Args: - - result(Any):The value to be returned by the PyCDialog::DoModal method.MFC References - -Returns: - - None - - """ - pass - - - def GotoDlgCtrl(self,control:'Any') -> 'None': - """ - Moves the focus to the specified control in the dialog box. - -Args: - - control(Any):The control to get the focus. - -Returns: - - None - - """ - pass - - - def MapDialogRect(self,rect:'Tuple[Any, Any, Any, Any]') -> 'Tuple[Any, Any, Any, Any]': - """ - Converts the dialog-box units of a rectangle to screen - -units. - -Args: - - rect(Tuple[Any, Any, Any, Any]):The rect to be converted - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def OnCancel(self,) -> 'None': - """ - Calls the default MFC OnCancel handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnOK(self,) -> 'None': - """ - Calls the default MFC OnOK handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnInitDialog(self,) -> 'Any': - """ - Calls the default MFC OnInitDialog handler. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCDialogBar(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,parent:'Any',template:'PyResourceId',style:'Any',_id:'Any') -> 'None': - """ - None - -Args: - - parent(Any):The parent window - template(PyResourceId):Template name or integer resource id - style(Any):The style for the window - _id(Any):The ID of the window - -Returns: - - None - - """ - pass - - -class PyCDocTemplate(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DoCreateDoc(self,fileName:'str'=None) -> 'Any': - """ - Creates an underlying document object. - -Args: - - fileName(str):The name of the file to load. - -Returns: - - Any - - """ - pass - - - def FindOpenDocument(self,fileName:'str') -> 'Any': - """ - Returns an existing document with the specified file name. - -Args: - - fileName(str):The fully qualified filename to search for. - -Returns: - - Any - - """ - pass - - - def GetDocString(self,docIndex:'Any') -> 'str': - """ - Retrieves a specific substring describing the document type. - -Args: - - docIndex(Any):The document index. Must be one of the win32ui.CDocTemplate_* constants.CommentsFor more information on the doc strings, please see PyCDocTemplate::SetDocStrings - -Returns: - - str - - """ - pass - - - def GetDocumentList(self,) -> 'Any': - """ - Return a list of all open documents. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetResourceID(self,) -> 'None': - """ - Returns the resource ID in use. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSharedMenu(self,) -> 'Any': - """ - Returns the shared menu object for all frames using this template. - -Args: - - - -Returns: - - Any - - """ - pass - - - def InitialUpdateFrame(self,frame:'Any'=None,doc:'Any'=None,bMakeVisible:'Any'=1) -> 'None': - """ - Calls the default OnInitialFrame handler. - -Args: - - frame(Any):The frame window. - doc(Any):A document for the frame. - bMakeVisible(Any):Indicates of the frame should be shown.See Also - -Returns: - - None - - """ - pass - - - def SetContainerInfo(self,_id:'Any') -> 'None': - """ - Sets the resources to be used when an OLE 2 object is in-place activated. - -Args: - - _id(Any):The resource ID. - -Returns: - - None - - """ - pass - - - def SetDocStrings(self,docStrings:'str') -> 'None': - """ - Assigns the document strings for the template. - -Args: - - docStrings(str):The document strings.CommentsThe string must be a \\n seperated list of docstrings. The elements are:elementNameDescriptionwindowTitleTitle used for the window (only for SDI applications)docNameRoot for the default document name.fileNewNameName of the document type, as displayed in the "File/New" dialogfilterNameDescription of the document type and a wildcard spec for the file open dialog.filterExtExtension for documents of this file type.regFileTypeIdInternal Id of the document as registered in the registry. Used to associate the extension with the file type.regFileTypeNameName of the document, as stored in the reigstry. This is the name presented to the user. - -Returns: - - None - - """ - pass - - - def OpenDocumentFile(self,filename:'str',bMakeVisible:'Any'=1) -> 'None': - """ - Opens a document file, creating a view and frame. - -Args: - - filename(str):Name of file to open, or None - bMakeVisible(Any):Indicates if the document should be created visible. - -Returns: - - None - - """ - pass - - -class PyCDockContext(object): - """A class which encapsulates an MFC CDockContext object""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ptLast(self)->'Tuple[Any, Any]': - """""" - pass - - - @property - def rectLast(self)->'Tuple[Any, Any, Any, Any]': - """""" - pass - - - @property - def sizeLast(self)->'Tuple[Any, Any]': - """""" - pass - - - @property - def bDitherLast(self)->'Any': - """""" - pass - - - @property - def rectDragHorz(self)->'Tuple[Any, Any, Any, Any]': - """""" - pass - - - @property - def rectDragVert(self)->'Tuple[Any, Any, Any, Any]': - """""" - pass - - - @property - def rectFrameDragHorz(self)->'Tuple[Any, Any, Any, Any]': - """""" - pass - - - @property - def rectFrameDragVert(self)->'Tuple[Any, Any, Any, Any]': - """""" - pass - - - @property - def dwDockStyle(self)->'Any': - """allowable dock styles for bar""" - pass - - - @property - def dwOverDockStyle(self)->'Any': - """style of dock that rect is over""" - pass - - - @property - def dwStyle(self)->'Any': - """style of control bar""" - pass - - - @property - def bFlip(self)->'Any': - """if shift key is down""" - pass - - - @property - def bForceFrame(self)->'Any': - """if ctrl key is down CDC* m_pDC; // where to draw during drag""" - pass - - - @property - def bDragging(self)->'Any': - """""" - pass - - - @property - def nHitTest(self)->'Any': - """""" - pass - - - @property - def uMRUDockID(self)->'Any': - """""" - pass - - - @property - def rectMRUDockPos(self)->'Tuple[Any, Any, Any, Any]': - """""" - pass - - - @property - def dwMRUFloatStyle(self)->'Any': - """""" - pass - - - @property - def ptMRUFloatPos(self)->'Tuple[Any, Any]': - """Sentinel""" - pass - - - def EndDrag(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def StartDrag(self,pt:'Tuple[Any, Any]') -> 'Any': - """ - None - -Args: - - pt(Tuple[Any, Any]): - -Returns: - - Any - - """ - pass - - - def EndResize(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def StartResize(self,hittest:'Any',pt:'Tuple[Any, Any]') -> 'Any': - """ - None - -Args: - - hittest(Any): - pt(Tuple[Any, Any]): - -Returns: - - Any - - """ - pass - - - def ToggleDocking(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCDocument(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DeleteContents(self,) -> 'None': - """ - Call the MFC DeleteContents method. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - - -Returns: - - None - - """ - pass - - - def DoSave(self,fileName:'str',bReplace:'Any'=1) -> 'None': - """ - Calls the underlying MFC DoSave method. - -Args: - - fileName(str):The name of the file to save to. - bReplace(Any):Should an existing file be silently replaced?.CommentsIf invalid or no filename, will prompt for a name, else will perform the actual saving of the document.See Also - -Returns: - - None - - """ - pass - - - def DoFileSave(self,) -> 'None': - """ - Checks the file attributes. - -If the file is read only, a new name is prompted, else the - -file is saved (by calling DoSave) - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDocTemplate(self,) -> 'Any': - """ - Returns the template for the document. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetAllViews(self,) -> 'List[Any]': - """ - Returns a list of all views for the current document. - -Args: - - - -Returns: - - List[Any] - - """ - pass - - - def GetFirstView(self,) -> 'Any': - """ - Returns the first view object attached to this document. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetPathName(self,) -> 'str': - """ - Returns the full path name of the current document. - -The string will be empty if no path name has been set. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetTitle(self,) -> 'str': - """ - Returns the title of the current document. - -This will often be the file name portion of the path name. - -Args: - - - -Returns: - - str - - """ - pass - - - def IsModified(self,) -> 'Any': - """ - Return a flag indicating if the document has been modified. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnChangedViewList(self,) -> 'None': - """ - Informs the document when a view is added or removed. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnCloseDocument(self,) -> 'None': - """ - Call the MFC OnCloseDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnNewDocument(self,) -> 'None': - """ - Call the MFC OnNewDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnOpenDocument(self,pathName:'str') -> 'None': - """ - Call the MFC OnOpenDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - pathName(str):The full path of the file to open.MFC References - -Returns: - - None - - """ - pass - - - def OnSaveDocument(self,pathName:'str') -> 'None': - """ - Call the MFC OnSaveDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - pathName(str):The full path of the file to save.MFC References - -Returns: - - None - - """ - pass - - - def SetModifiedFlag(self,bModified:'Any'=1) -> 'None': - """ - Set the "dirty" flag for the document. - -Args: - - bModified(Any):Set dirty flagMFC References - -Returns: - - None - - """ - pass - - - def SaveModified(self,) -> 'Any': - """ - Call the underlying MFC method. - -Args: - - - -Returns: - - Any:CDocument::SaveModified -Return ValueNonzero if it is safe to continue and close the document; 0 if the document should not be closed. - - - """ - pass - - - def SetPathName(self,path:'str') -> 'None': - """ - Set the full path name for the document. - -Args: - - path(str):The full path of the file.MFC References - -Returns: - - None - - """ - pass - - - def SetTitle(self,title:'str') -> 'None': - """ - Set the title of the document (ie, the name - -to appear in the window caption for the document. - -Args: - - title(str):The new title.MFC References - -Returns: - - None - - """ - pass - - - def UpdateAllViews(self,sender:'Any',hint:'Any'=None) -> 'None': - """ - Informs each view when a document changes. - -Args: - - sender(Any):The view who initiated the update - hint(Any):A hint for the update.MFC References - -Returns: - - None - - """ - pass - - -class PyCEdit(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': - """ - Creates the window for a new Edit object. - -Args: - - style(Any):The style for the Edit. Use any of the win32con.BS_* constants. - rect(Tuple[Any, Any, Any, Any]):The size and position of the Edit. - parent(Any):The parent window of the Edit. Usually a PyCDialog. - _id(Any):The Edits control ID. - -Returns: - - None - - """ - pass - - - def Clear(self,) -> 'Any': - """ - Clears all text in an edit control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def Copy(self,) -> 'None': - """ - Copys the current selection to the clipboard. - -Args: - - - -Returns: - - None - - """ - pass - - - def Cut(self,) -> 'None': - """ - Cuts the current selection to the clipboard. - -Args: - - - -Returns: - - None - - """ - pass - - - def FmtLines(self,bAddEOL:'Any') -> 'Any': - """ - Sets the formatting options for the control. - -Args: - - bAddEOL(Any):Specifies whether soft line-break characters are to be inserted. A value of TRUE inserts the characters; a value of FALSE removes them.MFC References - -Returns: - - Any:CEdit::FmtLines -Return ValueNonzero if any formatting occurs; otherwise 0. - - - """ - pass - - - def GetFirstVisibleLine(self,) -> 'Any': - """ - Returns zero-based index of the topmost visible line. - -Args: - - - -Returns: - - Any:CEdit::GetFirstVisibleLine -Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. - - - """ - pass - - - def GetSel(self,) -> 'Tuple[Any, Any]': - """ - Returns the start and end of the current selection. - -Args: - - - -Returns: - - Tuple[Any, Any]:CEdit::GetSel -Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the - -end of the current selection) - - - """ - pass - - - def GetLine(self,lineNo:'Any') -> 'Any': - """ - Returns the text in a specified line. - -Args: - - lineNo(Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. - -Returns: - - Any - - """ - pass - - - def GetLineCount(self,) -> 'Any': - """ - Gets the number of lines in an edit control. - -Args: - - - -Returns: - - Any:CEdit::GetLineCount -Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. - - - """ - pass - - - def LimitText(self,nChars:'Any'=0) -> 'None': - """ - Sets max length of text that user can enter - -Args: - - nChars(Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References - -Returns: - - None - - """ - pass - - - def LineFromChar(self,charNo:'Any'=-1) -> 'Any': - """ - Returns the line number of the specified character. - -Args: - - charNo(Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References - -Returns: - - Any:CEdit::LineFromChar -Return ValueThe zero-based line number of the line containing the character index specified by charNo. - -If charNo is -1, the number of the line that contains the first character of the selection is returned. - -If there is no selection, the current line number is returned. - - - """ - pass - - - def LineIndex(self,lineNo:'Any'=-1) -> 'Any': - """ - Retrieves the character index of a line within a multiple-line edit control. - -Args: - - lineNo(Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References - -Returns: - - Any:CEdit::LineIndex -Return ValueThe character index of the line specified in lineNo, or -1 if - -the specified line number is greater then the number of lines in - -the edit control. - - - """ - pass - - - def LineScroll(self,nLines:'Any',nChars:'Any'=0) -> 'Any': - """ - Scroll the control vertically and horizontally - -Args: - - nLines(Any):Specifies the number of lines to scroll vertically. - nChars(Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References - -Returns: - - Any - - """ - pass - - - def Paste(self,) -> 'None': - """ - Pastes the contents of the clipboard into the control. - -Args: - - - -Returns: - - None - - """ - pass - - - def ReplaceSel(self,text:'str') -> 'None': - """ - Replaces the selection with the specified text. - -Args: - - text(str):The text to replace the selection with.MFC References - -Returns: - - None - - """ - pass - - - def SetReadOnly(self,bReadOnly:'Any'=1) -> 'None': - """ - Sets or clears the read-only status of the listbox. - -Args: - - bReadOnly(Any):The read-only state to set.MFC References - -Returns: - - None - - """ - pass - - - def SetSel(self,start:'Any',end:'Any',arg:'Any',bNoScroll1:'Any',bNoScroll:'Any'=0) -> 'None': - """ - Sets the selection in the edit control. - -Args: - - start(Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. - end(Any):Specifies the ending position. - arg(Any):As for normal start, end args. - bNoScroll1(Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.MFC References - bNoScroll(Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.Alternative Parameters - -Returns: - - None - - """ - pass - - -class PyCEditView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsModified(self,) -> 'Any': - """ - Indicates if the view's document has the modified flag set. - -Args: - - - -Returns: - - Any - - """ - pass - - - def LoadFile(self,fileName:'str') -> 'None': - """ - Loads a file into the view. - -Args: - - fileName(str):The name of the file to be loaded. - -Returns: - - None - - """ - pass - - - def SetModifiedFlag(self,bModified:'Any'=1) -> 'None': - """ - Sets the modified flag for the view's document. - -Args: - - bModified(Any):The modified state to set. - -Returns: - - None - - """ - pass - - - def GetEditCtrl(self,) -> 'Any': - """ - returns the underlying edit control object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def PreCreateWindow(self,createStruct:'Any') -> 'Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(Any):A tuple representing a CREATESTRUCT structure. - -Returns: - - Any - - """ - pass - - - def SaveFile(self,fileName:'str') -> 'None': - """ - Saves the view to a file. - -Args: - - fileName(str):The name of the file to be written. - -Returns: - - None - - """ - pass - - - def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(Any): - lparam(Any):See Also - -Returns: - - None - - """ - pass - - -class PyCFileDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPathName(self,) -> 'str': - """ - Retrives the path name from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetFileName(self,) -> 'str': - """ - Retrives the file name from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetFileExt(self,) -> 'str': - """ - Retrives the file extension from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetFileTitle(self,) -> 'str': - """ - Retrives the file title from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetPathNames(self,) -> 'str': - """ - Retrieves the list of path names from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetReadOnlyPref(self,) -> 'Any': - """ - Retrives the value of the "Read Only" checkbox on the file dialog. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetOFNTitle(self,title:'str') -> 'None': - """ - Sets the Title for the dialog. - -Args: - - title(str):The title for the dialog box. May be None. - -Returns: - - None - - """ - pass - - - def SetOFNInitialDir(self,title:'str') -> 'None': - """ - Sets the initial directory for the dialog. - -Args: - - title(str):The initial directory for the dialog box. May be None. - -Returns: - - None - - """ - pass - - -class PyCFont(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetSafeHandle(self,) -> 'Any': - """ - Retrieves the HFONT for the font as an integer - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCFontDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DoModal(self,) -> 'Any': - """ - Displays a dialog and allows the user to make a selection. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetCurrentFont(self,) -> 'Any': - """ - Returns a dictionary describing the current font. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetCharFormat(self,) -> 'Any': - """ - Returns the font selection in a CHARFORMAT tuple. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetColor(self,) -> 'Any': - """ - Determines the color of the selected font. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetFaceName(self,) -> 'str': - """ - Returns the face name of the selected font. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetStyleName(self,) -> 'str': - """ - Returns the style name of the selected font. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetSize(self,) -> 'Any': - """ - Returns he font's size, in tenths of a point. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetWeight(self,) -> 'Any': - """ - Returns the font's weight. - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsStrikeOut(self,) -> 'Any': - """ - Determines whether the font is displayed with strikeout. - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsUnderline(self,) -> 'Any': - """ - Determines whether the font is displayed with underline. - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsBold(self,) -> 'Any': - """ - Determines whether the font is displayed bold. - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsItalic(self,) -> 'Any': - """ - Determines whether the font is displayed with italic. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCFormView(object): - """A class which implementes a CFormView (ie, a view based on a dialog resource.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(Any): - lparam(Any):See Also - -Returns: - - None - - """ - pass - - -class PyCFrameWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BeginModalState(self,) -> 'None': - """ - Sets the frame window to modal. - -Args: - - - -Returns: - - None - - """ - pass - - - def CreateWindow(self,wndClass:'str',title:'str',style:'Any',PyCWnd:'Any',menuId:'Any',styleEx:'Any',rect:'Tuple[Any, Any, Any, Any]'=None,createContext:'Any'=None) -> 'Any': - """ - Creates the actual window for the PyCFrameWnd object. - -Args: - - wndClass(str):The window class name, or None - title(str):The window title - style(Any):The window style - PyCWnd(Any):The parent window - menuId(Any):The string or integer id for the menu. - styleEx(Any):The extended style of the window being created.MFC References - rect(Tuple[Any, Any, Any, Any]):The default rectangle - createContext(Any):A tuple representing a CREATECONTEXT structure. - -Returns: - - Any - - """ - pass - - - def EndModalState(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def DockControlBar(self,controlBar:'Any',arg:'Tuple[Any, Any, Any, Any]',dockBarId:'Any'=0) -> 'None': - """ - Docks a control bar. - -Args: - - controlBar(Any):The control bar to dock. - arg(Tuple[Any, Any, Any, Any]):Determines, in screen coordinates, where the control bar will be docked in the nonclient area of the destination frame window.MFC References - dockBarId(Any):Determines which sides of the frame window to consider for docking. - -Returns: - - None - - """ - pass - - - def EnableDocking(self,style:'Any') -> 'None': - """ - Enable dockable control bars in a frame window - -Args: - - style(Any):Specifies which sides of the frame window can serve as docking sites for control bars.CommentsBy default, control bars will be docked to a side of the frame window in the following order: top, bottom, left, right. - -Returns: - - None - - """ - pass - - - def FloatControlBar(self,controlBar:'Any',arg:'Tuple[Any, Any]',style:'Any') -> 'None': - """ - Floats a control bar. - -Args: - - controlBar(Any):The control bar to dock. - arg(Tuple[Any, Any]):The location, in screen coordinates, where the top left corner of the control bar will be placed. - style(Any):Determines which sides of the frame window to consider for docking.MFC References - -Returns: - - None - - """ - pass - - - def GetActiveDocument(self,) -> 'Any': - """ - Gets the currently active document, else None - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetControlBar(self,_id:'Any') -> 'Any': - """ - Retrieves the specified control bar. - -Args: - - _id(Any):The ID of the toolbar to be retrieved - -Returns: - - Any - - """ - pass - - - def GetMessageString(self,_id:'Any') -> 'str': - """ - Retrieves message corresponding to a command ID. - -Args: - - _id(Any):The ID to be retrievedSee Also - -Returns: - - str - - """ - pass - - - def GetMessageBar(self,) -> 'Any': - """ - Retrieves the message bar for the frame. - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsTracking(self,) -> 'Any': - """ - Determines if splitter bar is currently being moved. - -Args: - - - -Returns: - - Any - - """ - pass - - - def InModalState(self,) -> 'Any': - """ - Returns a value indicating whether or not a frame window is in a modal state. - -Args: - - - -Returns: - - Any - - """ - pass - - - def LoadAccelTable(self,_id:'PyResourceId') -> 'None': - """ - Loads an accelerator table. - -Args: - - _id(PyResourceId):Name or id of the resource that contains the table - -Returns: - - None - - """ - pass - - - def LoadFrame(self,idResource:'Any',style:'Any'=-1,wndParent:'Any'=None,context:'Any'=None) -> 'None': - """ - Loads a Windows frame window and associated resources - -Args: - - idResource(Any):The Id of the resources (menu, icon, etc) for this window - style(Any):The window style. Note -1 implies win32con.WS_OVERLAPPEDWINDOW|win32con.FWS_ADDTOTITLE - wndParent(Any):The parent of the window, or None. - context(Any):An object passed to the OnCreateClient for the frame,MFC References - -Returns: - - None - - """ - pass - - - def LoadBarState(self,profileName:'str') -> 'None': - """ - Loads a control bars settings - -Args: - - profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References - -Returns: - - None - - """ - pass - - - def PreCreateWindow(self,createStruct:'Any') -> 'Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - Any - - """ - pass - - - def SaveBarState(self,profileName:'str') -> 'None': - """ - Saves a control bars settings - -Args: - - profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References - -Returns: - - None - - """ - pass - - - def ShowControlBar(self,controlBar:'Any',bShow:'Any',bDelay:'Any') -> 'None': - """ - Shows a control bar. - -Args: - - controlBar(Any):The control bar to dock. - bShow(Any):Show or hide flag. - bDelay(Any):If TRUE, delay showing the control bar. If FALSE, show the control bar immediately.MFC References - -Returns: - - None - - """ - pass - - - def RecalcLayout(self,bNotify:'Any'=1) -> 'None': - """ - Called by the framework when the standard control bars are toggled on or off or - -when the frame window is resized. - -Args: - - bNotify(Any):Notify flagMFC References - -Returns: - - None - - """ - pass - - - def GetActiveView(self,) -> 'Any': - """ - Retrieves the active view. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnBarCheck(self,_id:'Any') -> 'Any': - """ - Changes the state of the specified controlbar. - -Args: - - _id(Any):The control ID of the control bar. - -Returns: - - Any - - """ - pass - - - def OnUpdateControlBarMenu(self,cmdUI:'Any') -> 'Any': - """ - Checks the state of a menu item - -Args: - - cmdUI(Any):A cmdui object - -Returns: - - Any - - """ - pass - - - def SetActiveView(self,view:'Any',bNotify:'Any'=1) -> 'None': - """ - Sets the active view for a frame. - -Args: - - view(Any):The view to set active. - bNotify(Any):Specifies whether the view is to be notified of activation. If TRUE, OnActivateView is called for the new view; if FALSE, it is not. - -Returns: - - None - - """ - pass - - -class PyCGdiObject(object): - """A class which encapsulates an MFC CGdiObject.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCImageList(object): - """A Python type encapsulating an MFC CImageList class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Add(self,arg:'Tuple[Any, Any]',bitmap:'Any',color:'Any',hIcon:'Any') -> 'Any': - """ - Adds an image to the list. - -Args: - - arg(Tuple[Any, Any]):2 Bitmaps to use (primary and mask)Alternative Parameters - bitmap(Any):Bitmap to use - color(Any):Color to use for the mask.Alternative Parameters - hIcon(Any):Handle of an icon to add.Return ValueZero-based index of the first new image. - -Returns: - - Any:Handle of an icon to add. -Return ValueZero-based index of the first new image. - - - """ - pass - - - def Destroy(self,) -> 'None': - """ - Destroys the underlying CImageList - -Args: - - - -Returns: - - None - - """ - pass - - - def DeleteImageList(self,) -> 'None': - """ - Deletes an image list. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetBkColor(self,) -> 'Any': - """ - Retrieves the background color of an Image List. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSafeHandle(self,) -> 'Any': - """ - Retrieves the HIMAGELIST for the object - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetImageCount(self,) -> 'Any': - """ - Retrieves the number of images in an image list. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetImageInfo(self,index:'Any') -> 'Any': - """ - Retrieves information about an image. - -Args: - - index(Any):Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. - -Returns: - - Any:Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. - - - """ - pass - - - def SetBkColor(self,color:'Any') -> 'None': - """ - Sets the background color for an Image List. - -Args: - - color(Any):The new background color. - -Returns: - - None - - """ - pass - - -class PyCListBox(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddString(self,_object:'Any') -> 'Any': - """ - Adds a string to a listbox. - -Args: - - _object(Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References - -Returns: - - Any:CListBox::AddString -Return ValueThe zero based index of the new string. - - - """ - pass - - - def DeleteString(self,pos:'Any') -> 'Any': - """ - Deletes an item from a listbox. - -Args: - - pos(Any):The zero based index of the item to delete.MFC References - -Returns: - - Any:CListBox::DeleteString -Return ValueThe count of the items remaining in the list. - - - """ - pass - - - def Dir(self,attr:'Any',wild:'str') -> 'Any': - """ - Fills a listbox with a directory listing. - -Args: - - attr(Any):The attributes of the files to locate - wild(str):A file specification string - eg, *.*MFC References - -Returns: - - Any:CListBox::Dir -Return ValueThe index of the last file name added to the list. - - - """ - pass - - - def GetCaretIndex(self,) -> 'Any': - """ - Returns the index of the item which has focus. - -Args: - - - -Returns: - - Any:PyCListBox.GetCaretIndex - -int = GetCaretIndex()Returns the index of the item which has focus. -Return ValueThe zero-based index of the item that has the focus rectangle in a list box. - -If the list box is a single-selection list box, the return value is the index of the item that is selected, if - -any. - - - """ - pass - - - def GetCount(self,) -> 'Any': - """ - Returns the count of items in the listbox. - -Args: - - - -Returns: - - Any:CListBox::GetCount -Return ValueReturns the number of items currently in the listbox. - - - """ - pass - - - def GetCurSel(self,) -> 'Any': - """ - Returns the index of the currently selected item. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetItemData(self,item:'Any') -> 'Any': - """ - Retrieves the application-specific object associated with an item. - -Args: - - item(Any):The index of the item whose data is to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetItemValue(self,item:'Any') -> 'Any': - """ - Retrieves the application-specific value associated with an item. - -Args: - - item(Any):The index of the item whose data is to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetSel(self,index:'Any') -> 'Any': - """ - Returns the selection state of a specified item. - -Args: - - index(Any):The index of the item to return the state for.MFC References - -Returns: - - Any:CListBox::GetSel -Return ValueA +ve number if the item is selected, else zero. - - - """ - pass - - - def GetSelCount(self,) -> 'Any': - """ - Returns the number of selected items in a multiple selection listbox. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSelItems(self,) -> 'Any': - """ - Returns a list of the indexes of the currently selected items in a multiple - -selection listbox. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSelTextItems(self,) -> 'Any': - """ - Returns a list of the strings of the currently selected items in a multiple - -selection listbox. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTopIndex(self,) -> 'Any': - """ - Returns the index of the top most visible item. - -Args: - - - -Returns: - - Any:CListBox::GetTopIndex -Return ValueThe zero based index of the top most visible item. - - - """ - pass - - - def GetText(self,index:'Any') -> 'str': - """ - Returns the string for a specified item. - -Args: - - index(Any):The index of the item to retrieve the text of - -Returns: - - str - - """ - pass - - - def GetTextLen(self,index:'Any') -> 'Any': - """ - Returns the length of the string for a specified item. - -Args: - - index(Any):The index of the item to retrieve the length of the text.MFC References - -Returns: - - Any - - """ - pass - - - def InsertString(self,pos:'Any',_object:'Any') -> 'Any': - """ - Insert a string into a listbox. - -Args: - - pos(Any):The zero based index in the listbox to insert the new string - _object(Any):The object to be added to the listboxMFC References - -Returns: - - Any:CListBox::InsertString -Return ValueThe zero based index of the new string added. - - - """ - pass - - - def ResetContent(self,) -> 'None': - """ - Clear all the items from a listbox. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetCaretIndex(self,index:'Any',bScroll:'Any'=1) -> 'None': - """ - Sets the focus rectange to a specified item. - -Args: - - index(Any):The zero based index of the item. - bScroll(Any):Should the listbox scroll to the item?MFC References - -Returns: - - None - - """ - pass - - - def SelectString(self,after:'Any',string:'str') -> 'None': - """ - Searches for a list-box item that matches the specified string, and selects it. - -Args: - - after(Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire listbox. - string(str):The string to search for.MFC References - -Returns: - - None:CListBox::SelectString -Return ValueThe return value is always None - an exception is raised if the string can not be located. - - - """ - pass - - - def SelItemRange(self,bSel:'Any',start:'Any',end:'Any') -> 'None': - """ - Selects an item range. - -Args: - - bSel(Any):Should the selection specified be set or cleared? - start(Any):The zero based index of the first item to select. - end(Any):The zero based index of the last item to select. - -Returns: - - None - - """ - pass - - - def SetCurSel(self,index:'Any') -> 'None': - """ - Selects an item in a single selection listbox. - -Args: - - index(Any):The zero based index of the item to select.MFC References - -Returns: - - None - - """ - pass - - - def SetItemData(self,item:'Any',Data:'Any') -> 'Any': - """ - Sets the item's application-specific object value. - -Args: - - item(Any):Index of the item whose Data is to be set. - Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. - -Returns: - - Any - - """ - pass - - - def SetItemValue(self,item:'Any',data:'Any') -> 'Any': - """ - Sets the item's application-specific value. - -Args: - - item(Any):Index of the item whose Data is to be set. - data(Any):New value for the data. - -Returns: - - Any - - """ - pass - - - def SetSel(self,index:'Any',bSel:'Any'=1) -> 'None': - """ - Selects an item in a multiple selection listbox. - -Args: - - index(Any):The zero based index of the item to select. - bSel(Any):Should the item be selected or deselected?MFC References - -Returns: - - None - - """ - pass - - - def SetTabStops(self,eachTabStop:'Any',tabStops:'Any') -> 'None': - """ - Sets the tab stops for a listbox. - -Args: - - eachTabStop(Any):The position for each tab stop.Alternative Parameters - tabStops(Any):Each individual tab stop. - -Returns: - - None - - """ - pass - - - def SetTopIndex(self,index:'Any') -> 'None': - """ - Sets the top index (top most visible item) of the listbox. - -Args: - - index(Any):The zero based index of the item to place at the top of the list.MFC References - -Returns: - - None - - """ - pass - - -class PyCListCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Arrange(self,code:'Any') -> 'None': - """ - Aligns items on a grid. - -Args: - - code(Any):Specifies the alignment style for the items - -Returns: - - None - - """ - pass - - - def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',PyCWnd:'Any',_id:'Any') -> 'None': - """ - Creates the actual window for the object. - -Args: - - style(Any):The window style - rect(Tuple[Any, Any, Any, Any]):The default rectangle - PyCWnd(Any):The parent window - _id(Any):The control IDMFC References - -Returns: - - None - - """ - pass - - - def DeleteAllItems(self,) -> 'None': - """ - Deletes all items from the list. - -Args: - - - -Returns: - - None - - """ - pass - - - def DeleteItem(self,item:'Any') -> 'None': - """ - Deletes the specified item. - -Args: - - item(Any):The item to delete. - -Returns: - - None - - """ - pass - - - def GetTextColor(self,) -> 'Any': - """ - Retrieves the text color of a list view control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetTextColor(self,color:'Any') -> 'None': - """ - Sets the text color of a list view control. - -Args: - - color(Any):The new color. - -Returns: - - None - - """ - pass - - - def GetBkColor(self,) -> 'Any': - """ - Retrieves the background color of the control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetBkColor(self,color:'Any') -> 'None': - """ - Sets the background color of the control. - -Args: - - color(Any):The new background color. - -Returns: - - None - - """ - pass - - - def GetItem(self,item:'Any',sub:'Any') -> 'Any': - """ - Retrieves the details of an items attributes. - -Args: - - item(Any):The index of the item whose attributes are to be retrieved. - sub(Any):Specifies the subitem whose text is to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetItemCount(self,) -> 'Any': - """ - Retrieves the number of items in a list view control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetItemRect(self,item:'Any',bTextOnly:'Any') -> 'Tuple[Any, Any, Any, Any]': - """ - Retrieves the bounding rectangle of a list view item. - -Args: - - item(Any):Index of the item whose Data is to be set. - bTextOnly(Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the list view control. - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def GetEditControl(self,) -> 'Any': - """ - Retrieves the handle of the edit control used to edit the specified - -list view item. - -Args: - - - -Returns: - - Any - - """ - pass - - - def EditLabel(self,item:'Any') -> 'Any': - """ - Edits a specified list view item in-place. - -Args: - - item(Any):The index of item to edit. - -Returns: - - Any - - """ - pass - - - def EnsureVisible(self,item:'Any',bPartialOK:'Any') -> 'Any': - """ - Ensures that a list view item is visible in its list view control. - -Args: - - item(Any):The index of item to edit. - bPartialOK(Any):Specifies whether partial visibility is acceptable. - -Returns: - - Any - - """ - pass - - - def CreateDragImage(self,item:'Any') -> 'Tuple[Any, Any, Any]': - """ - Creates a dragging bitmap for the specified list view - -item. - -Args: - - item(Any):The index of the item to edit. - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def GetImageList(self,nImageList:'Any') -> 'Any': - """ - Retrieves the current image list. - -Args: - - nImageList(Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. - -Returns: - - Any - - """ - pass - - - def GetNextItem(self,item:'Any',flags:'Any') -> 'Any': - """ - Searches for a list view item with specified properties and with specified - -relationship to a given item. - -Args: - - item(Any):Index of the item to begin the searching with, or -1 to find the first item that matches the specified flags. The specified item itself is excluded from the search. - flags(Any):Geometric relation of the requested item to the specified item, and the state of the requested item. The geometric relation can be one of these values: LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT The state can be zero, or it can be one or more of these values: LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED If an item does not have all of the specified state flags set, the search continues with the next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. - -Returns: - - Any:Geometric relation of the requested item to the specified item, - -and the state of the requested item. The geometric relation can be one of these values: - -LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT - -The state can be zero, or it can be one or more of these values: - -LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED - -If an item does not have all of the specified state flags set, the search continues with the - -next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. - - - """ - pass - - - def InsertColumn(self,colNo:'Any',item:'Any') -> 'Any': - """ - Inserts a column into a list control when in report view. - -Args: - - colNo(Any):The new column number - item(Any):A tuple describing the new column. - -Returns: - - Any - - """ - pass - - - def InsertItem(self,item:'Any',item1:'Any',text:'Any',image:'Any',item2:'Any',text1:'Any') -> 'Any': - """ - Inserts an item into the list. - -Args: - - item(Any):A tuple describing the new item.Alternative Parameters - item1(Any):The index of the item. - text(Any):The text of the item. - image(Any):The index of the image to use.Alternative Parameters - item2(Any):The index of the item. - text1(Any):The text of the item. - -Returns: - - Any - - """ - pass - - - def SetImageList(self,imageList:'Any',imageType:'Any') -> 'Any': - """ - Assigns an image list to a list view control. - -Args: - - imageList(Any):The Image List to use. - imageType(Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE - -Returns: - - Any - - """ - pass - - - def GetColumn(self,column:'Any') -> 'Any': - """ - Retrieves the details of a column in the control. - -Args: - - column(Any):The index of the column whose attributes are to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetTextBkColor(self,) -> 'Any': - """ - Retrieves the text background color of a list view control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetTextBkColor(self,color:'Any') -> 'None': - """ - Sets the text background color of a list view control. - -Args: - - color(Any):The new background color. - -Returns: - - None - - """ - pass - - - def GetTopIndex(self,) -> 'Any': - """ - Retrieves the index of the topmost visible item. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetCountPerPage(self,) -> 'Any': - """ - Calculates the number of items that can fit vertically in a list view - -control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSelectedCount(self,) -> 'Any': - """ - Retrieves the number of selected items in the list view control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetItem(self,item:'Any') -> 'Any': - """ - Sets some of all of an items attributes. - -Args: - - item(Any):A tuple describing the new item. - -Returns: - - Any - - """ - pass - - - def SetItemState(self,item:'Any',state:'Any',mask:'Any') -> 'Any': - """ - Changes the state of an item in a list view control. - -Args: - - item(Any):Index of the item whose state is to be set. - state(Any):New values for the state bits. - mask(Any):Mask specifying which state bits to change. - -Returns: - - Any - - """ - pass - - - def GetItemState(self,item:'Any',mask:'Any') -> 'Any': - """ - Retrieves the state of a list view item. - -Args: - - item(Any):The index of the item whose position is to be retrieved. - mask(Any):Mask specifying which of the item's state flags to return. - -Returns: - - Any - - """ - pass - - - def SetItemData(self,item:'Any',Data:'Any') -> 'Any': - """ - Sets the item's application-specific value. - -Args: - - item(Any):Index of the item whose Data is to be set. - Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. - -Returns: - - Any - - """ - pass - - - def GetItemData(self,item:'Any') -> 'Any': - """ - Retrieves the application-specific value associated with an item. - -Args: - - item(Any):The index of the item whose data is to be retrieved. - -Returns: - - Any - - """ - pass - - - def SetItemCount(self,count:'Any') -> 'None': - """ - Prepares a list view control for adding a large number of items. - -Args: - - count(Any):Number of items that the control will ultimately contain.CommentsBy calling this function before adding a large number of items, you enable a list view control to reallocate its internal data structures only once rather than every time you add an item. - -Returns: - - None - - """ - pass - - - def SetItemText(self,item:'Any',sub:'Any',text:'str') -> 'Any': - """ - Changes the text of a list view item or subitem. - -Args: - - item(Any):Index of the item whose text is to be set. - sub(Any):Index of the subitem, or zero to set the item label. - text(str):String that contains the new item text. - -Returns: - - Any - - """ - pass - - - def GetItemText(self,item:'Any',sub:'Any') -> 'Any': - """ - Retrieves the text of a list view item or subitem. - -Args: - - item(Any):The index of the item whose text is to be retrieved. - sub(Any):Specifies the subitem whose text is to be retrieved. - -Returns: - - Any - - """ - pass - - - def RedrawItems(self,first:'Any',first1:'Any') -> 'Any': - """ - Forces a listview to repaint a range of items. - -Args: - - first(Any):Index of the first item to be repainted. - first1(Any):Index of the last item to be repainted.CommentsThe specified items are not actually repainted until the list view window receives a WM_PAINT message. To repaint immediately, call the Windows UpdateWindow function after using this function. - -Returns: - - Any - - """ - pass - - - def Update(self,item:'Any') -> 'None': - """ - Forces the control to repaint a specified item. - -Args: - - item(Any):The new color. - -Returns: - - None - - """ - pass - - - def SetColumn(self,colNo:'Any',item:'Any') -> 'Any': - """ - Changes column state in a list control when in report view. - -Args: - - colNo(Any):The to be modified column number - item(Any):A tuple describing the modified column. - -Returns: - - Any - - """ - pass - - - def DeleteColumn(self,first:'Any') -> 'Any': - """ - Deletes the specified column from the list control. - -Args: - - first(Any):Index of the column to be removed. - -Returns: - - Any - - """ - pass - - - def GetColumnWidth(self,first:'Any') -> 'Any': - """ - Gets the width of the specified column in the list control. - -Args: - - first(Any):Index of the column whose width is to be retrieved. - -Returns: - - Any - - """ - pass - - - def SetColumnWidth(self,first:'Any',first1:'Any') -> 'Any': - """ - Sets the width of the specified column in the list control. - -Args: - - first(Any):Index of the column to be changed. - first1(Any):New width of the column. - -Returns: - - Any - - """ - pass - - - def GetStringWidth(self,first:'Any') -> 'Any': - """ - Gets the necessary column width to fully display this text in a column. - -Args: - - first(Any):String that contains the text whose width is to be determined.CommentsDoesn't take the size of an included Image in account, only the size of the text is determined. - -Returns: - - Any - - """ - pass - - - def HitTest(self,arg:'Any') -> 'Tuple[Any, Any, Any]': - """ - Determines which list view item, if any, is at a specified position. - -Args: - - arg(Any):The point to test.Return ValueThe result is a tuple of (flags, item, subItem). flags may be a combination of the following values:ValueDescriptioncommctrl.LVHT_ABOVEThe position is above the control's client area.commctrl.LVHT_BELOWThe position is below the control's client area.commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a list item.commctrl.LVHT_ONITEMICONThe position is over a list view item's icon.commctrl.LVHT_ONITEMLABELThe position is over a list view item's text.commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item.commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area.commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. - -Returns: - - Tuple[Any, Any, Any]:The point to test.Return ValueThe result is a tuple of (flags, item, subItem). - -flags may be a combination of the following values: - - - -Value - - -Description - - - -commctrl.LVHT_ABOVEThe position is above the control's client area. -commctrl.LVHT_BELOWThe position is below the control's client area. -commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a - -list item. -commctrl.LVHT_ONITEMICONThe position is over a list view item's icon. -commctrl.LVHT_ONITEMLABELThe position is over a list view item's text. -commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item. -commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area. -commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. - - - """ - pass - - - def GetItemPosition(self,item:'Any') -> 'Tuple[Any, Any]': - """ - Determines the position of the specified item. - -Args: - - item(Any):The item to determine the position for. - -Returns: - - Tuple[Any, Any] - - """ - pass - - -class PyCListView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def PreCreateWindow(self,createStruct:'Any') -> 'Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(Any):A tuple representing a CREATESTRUCT structure. - -Returns: - - Any - - """ - pass - - - def GetListCtrl(self,) -> 'Any': - """ - Returns the underlying list control object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(Any): - lparam(Any):See Also - -Returns: - - None - - """ - pass - - -class PyCMDIChildWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ActivateFrame(self,cmdShow:'Any'=-1) -> 'None': - """ - Calls the underlying MFC ActivateFrame method. - -Args: - - cmdShow(Any):The status of the window.See Also - -Returns: - - None - - """ - pass - - - def CreateWindow(self,wndClass:'str',title:'str',style:'Any',PyCWnd:'Any',rect:'Tuple[Any, Any, Any, Any]'=None,createContext:'Any'=None) -> 'Any': - """ - Creates the actual window for the PyCWnd object. - -Args: - - wndClass(str):The window class name, or None - title(str):The window title - style(Any):The window style - PyCWnd(Any):The parent window - rect(Tuple[Any, Any, Any, Any]):The default rectangle - createContext(Any):A tuple representing a CREATECONTEXT structure.CommentsYou do not need to call this method if you use the MFC Document/View framework. - -Returns: - - Any - - """ - pass - - - def GetMDIFrame(self,) -> 'None': - """ - Returns the MDI parent frame - -Args: - - - -Returns: - - None - - """ - pass - - - def MDIActivate(self,cmdShow:'Any'=-1) -> 'None': - """ - Activates the MDI frame independent of the main frame. - -Args: - - cmdShow(Any):The status of the window.See Also - -Returns: - - None - - """ - pass - - - def PreCreateWindow(self,createStruct:'Any') -> 'Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - Any - - """ - pass - - - def PreTranslateMessage(self,) -> 'None': - """ - Calls the base PreTranslateMessage handler - -Args: - - - -Returns: - - None - - """ - pass - - - def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(Any): - lparam(Any):See Also - -Returns: - - None - - """ - pass - - - def OnClose(self,) -> 'None': - """ - Calls the standard Python framework OnClose handler - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCMDIFrameWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetMDIClient(self,) -> 'Any': - """ - Returns the MDI client window - -Args: - - - -Returns: - - Any - - """ - pass - - - def MDIGetActive(self,) -> 'Tuple[Any, Any]': - """ - Retrieves the current active MDI child window, along - -with a flag indicating whether the child window is maximized. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def MDIActivate(self,window:'Any') -> 'Any': - """ - Activate an MDI child window - -Args: - - window(Any):The window to activate. - -Returns: - - Any - - """ - pass - - - def MDINext(self,fNext:'Any'=0) -> 'None': - """ - Activates the next MDI window - -Args: - - fNext(Any):Indicates if the next (0) or previous (non-zero) window is requested.CommentsUnlike MFC, this version supports the fNext param in the WM_MDINEXT message. - -Returns: - - None - - """ - pass - - - def PreCreateWindow(self,createStruct:'Any') -> 'Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - Any - - """ - pass - - - def PreTranslateMessage(self,) -> 'None': - """ - Calls the base PreTranslateMessage handler - -Args: - - - -Returns: - - None - - """ - pass - - - def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(Any): - lparam(Any):See Also - -Returns: - - None - - """ - pass - - - def OnContextHelp(self,) -> 'Any': - """ - Calls the underlying MFC OnContextHelp method. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnClose(self,) -> 'None': - """ - Calls the standard Python framework OnClose handler - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCMenu(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AppendMenu(self,flags:'Any',_id:'Any'=0,value:'Union[Any, str]'=None) -> 'None': - """ - Appends a new item to the end of a menu. Python can specify the state of the menu item - -by setting values in nFlags. - -Args: - - flags(Any):Specifies information about the state of the new menu item when it is added to the menu. May be a combination of the win32con.MF_* values. - _id(Any):Specifies either the command ID of the new menu item. - value(Union[Any, str]):Specifies the content of the new menu item. If used, flags must contain win32con.MF_STRING. - -Returns: - - None - - """ - pass - - - def DeleteMenu(self,_id:'Any',flags:'Any') -> 'str': - """ - Deletes the specified menu item. - -Args: - - _id(Any):The id of the item being deleted. - flags(Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. - -Returns: - - str - - """ - pass - - - def EnableMenuItem(self,_id:'Any',flags:'Any') -> 'Any': - """ - Enables, disables, or dims a menu item. - -Args: - - _id(Any):Specifies the command ID of the menu item. This parameter can specify pop-up menu items as well as standard menu items. - flags(Any):Specifies the action to take. It can be a combination of MF_DISABLED, MF_ENABLED, or MF_GRAYED, with MF_BYCOMMAND or MF_BYPOSITIONCommentsThe PyCMenu::CreateMenu, PyCMenu::InsertMenu, PyCMenu::ModifyMenu, and PyCMenu::LoadMenuIndirect member functions can also set the state (enabled, disabled, or dimmed) of a menu item. - -Returns: - - Any - - """ - pass - - - def GetHandle(self,) -> 'Any': - """ - Returns the menu object's underlying hMenu. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetMenuItemCount(self,) -> 'Any': - """ - Determines the number of items in a menu. - -Args: - - - -Returns: - - Any:PyCMenu.GetMenuItemCount - -int = GetMenuItemCount()Determines the number of items in a menu. -Return ValueThe number of items in the menu if the function is successful; otherwise -1. - - - """ - pass - - - def GetMenuItemID(self,pos:'Any') -> 'Any': - """ - Returns the item ID for the specified item in a pop-up menu. - -Args: - - pos(Any):The position (zero-based) of the menu item whose ID is being retrieved.CommentsIf the specified item is a pop-up menu (as opposed to an item within the pop-up menu), the return value is -1. If nPos corresponds to a SEPARATOR menu item, the return value is 0. - -Returns: - - Any - - """ - pass - - - def GetMenuString(self,_id:'Any',arg:'Any') -> 'str': - """ - Returns the string for a specified menu item. - -Args: - - _id(Any):The id of the item being requested. - arg(Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. - -Returns: - - str - - """ - pass - - - def GetSubMenu(self,pos:'Any') -> 'Any': - """ - Returns a submenu. - -Args: - - pos(Any):The position (zero-based) of the menu item being retrieved. - -Returns: - - Any - - """ - pass - - - def InsertMenu(self,pos:'Any',flags:'Any',_id:'Union[Any]'=0,value:'Union[Any, str]'=None) -> 'None': - """ - Inserts an item into a menu. - -Args: - - pos(Any):The position (zero-based) the item should be inserted. - flags(Any):Flags for the new item. - _id(Union[Any]):The ID for a new menu item, or handle to a submenu - value(Union[Any, str]):A string for the menu item. - -Returns: - - None - - """ - pass - - - def ModifyMenu(self,pos:'Any',flags:'Any',_id:'Any'=0,value:'Union[Any, str]'=None) -> 'None': - """ - Modify an item in a menu. - -Args: - - pos(Any):The position (zero-based) the item to be changed. - flags(Any):Flags for the item. - _id(Any):The ID for the item. - value(Union[Any, str]):A string for the menu item. - -Returns: - - None - - """ - pass - - - def TrackPopupMenu(self,arg:'Tuple[Any, Any]',arg1:'Any',arg2:'Any') -> 'None': - """ - Creates a popup menu anywhere on the screen. - -Args: - - arg(Tuple[Any, Any]):The position for the menu.. - arg1(Any):Flags for the menu. - arg2(Any):The owner of the menu.CommentsThe TrackPopupMenu function displays a floating pop-up menu at the specified location and tracks the selection of items on the pop-up menu. The floating pop-up menu can appear anywhere on the screen.Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is returned instead of the normal exception. - -Returns: - - None:The owner of the menu. -Comments - -The TrackPopupMenu function displays a floating pop-up menu at the - -specified location and tracks the selection of items on the pop-up menu. - -The floating pop-up menu can appear anywhere on the screen. -Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is - -returned instead of the normal exception. - - - """ - pass - - -class PyCOleClientItem(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateNewItem(self,) -> 'None': - """ - Creates an embedded item. - -Args: - - - -Returns: - - None - - """ - pass - - - def Close(self,) -> 'None': - """ - Closes the item - -Args: - - - -Returns: - - None - - """ - pass - - - def DoVerb(self,) -> 'None': - """ - Executes the specified verb. - -Args: - - - -Returns: - - None - - """ - pass - - - def Draw(self,) -> 'None': - """ - Draws the OLE item into the specified bounding rectangle using the specified device - -context. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetActiveView(self,) -> 'Any': - """ - Obtains the active view for the item - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDocument(self,) -> 'Any': - """ - Obtains the current document for the item - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetInPlaceWindow(self,) -> 'Any': - """ - Obtains the window in which the item has been opened for - -in-place editing. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetItemState(self,) -> 'None': - """ - Obtains the OLE item's current state - -Args: - - - -Returns: - - None - - """ - pass - - - def GetObject(self,) -> 'Any': - """ - Returns the COM object to the item. This is the m_lpObject - -variable in MFC. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetStorage(self,) -> 'None': - """ - Returns the COM object used for storage - -Args: - - - -Returns: - - None - - """ - pass - - - def OnActivate(self,) -> 'None': - """ - Calls the underlying MFC method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnChange(self,) -> 'None': - """ - Calls the underlying MFC method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnChangeItemPosition(self,) -> 'Any': - """ - Calls the underlying MFC method. - -Args: - - - -Returns: - - Any:PyCOleClientItem.OnChangeItemPosition - -int = OnChangeItemPosition()Calls the underlying MFC method. -Return ValueThe result is a BOOL indicating if the function succeeded. No exception is thrown. - - - """ - pass - - - def OnDeactivateUI(self,) -> 'Any': - """ - Calls the underlying MFC method. - -Args: - - - -Returns: - - Any - - """ - pass - - - def Run(self,) -> 'None': - """ - Runs the application associated with this item. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetItemRects(self,) -> 'None': - """ - Sets the bounding rectangle or the visible rectangle of the OLE item. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCOleDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCOleDocument(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnableCompoundFile(self,bEnable:'Any'=1) -> 'None': - """ - Call this function if you want to store the document using the - -compound-file format. - -Args: - - bEnable(Any):Specifies whether compound file support is enabled or disabled. - -Returns: - - None - - """ - pass - - - def GetStartPosition(self,) -> 'Any': - """ - Obtains the position of the first item in the document. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetNextItem(self,pos:'Any') -> 'Tuple[Any, Any]': - """ - Call this function repeatedly to access each of - -the items in your document. - -Args: - - pos(Any):The position to iterate from. - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetInPlaceActiveItem(self,wnd:'Any') -> 'Any': - """ - Obtains the OLE item that is currently activated - -in place in the frame window containing the view identified by obWnd. - -Args: - - wnd(Any):The window. - -Returns: - - Any - - """ - pass - - -class PyCOleInsertDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetClassID(self,) -> 'Any': - """ - Returns the CLSID associated with the selected item - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSelectionType(self,) -> 'Any': - """ - Returns the type of selection made - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetPathName(self,) -> 'Any': - """ - Returns the full path to the file selected in the dialog box - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCPrintDialog(object): - """An object which encapsulates an MFC CPrintDialog object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCPrintInfo(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DocObject(self,) -> 'None': - """ - Return true if the document being printed is a DocObject. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDwFlags(self,) -> 'None': - """ - A flags specifying DocObject printing operations. Valid only if data member - -m_bDocObject is TRUE. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDwFlags(self,) -> 'None': - """ - Set a flag specifying DocObject printing operations. Valid only if data member - -m_bDocObject is TRUE. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDocOffsetPage(self,) -> 'None': - """ - Get the number of pages preceding the first page of a particular DocObject - -in a combined DocObject print job. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDocOffsetPage(self,) -> 'None': - """ - Set the number of pages preceding the first page of a particular DocObject - -in a combined DocObject print job. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPrintDialog(self,) -> 'None': - """ - Set a pointer to the CPrintDialog object used to display the Print dialog box - -for the print job. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDirect(self,) -> 'None': - """ - TRUE if the Print dialog box will be bypassed for direct printing; FALSE otherwise. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDirect(self,) -> 'None': - """ - Sets to TRUE if the Print dialog box will be bypassed for direct printing; FALSE - -otherwise. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPreview(self,) -> 'None': - """ - A flag indicating whether the document is being previewed. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPreview(self,) -> 'None': - """ - Set whether the document is being previewed. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetContinuePrinting(self,) -> 'None': - """ - A flag indicating whether the framework should continue the print loop. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetContinuePrinting(self,) -> 'None': - """ - Set whether the framework should continue the print loop. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurPage(self,) -> 'None': - """ - Get the number of the current page. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetCurPage(self,) -> 'None': - """ - Set the number of the current page. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetNumPreviewPages(self,) -> 'None': - """ - Get the number of pages displayed in preview mode. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetNumPreviewPages(self,) -> 'None': - """ - Set the number of pages displayed in preview mode. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetUserData(self,) -> 'None': - """ - Get a user-created structure. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetUserData(self,) -> 'None': - """ - Set a user-created structure. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDraw(self,) -> 'None': - """ - Get the usable drawing area of the page in logical coordinates. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDraw(self,) -> 'None': - """ - Set the usable drawing area of the page in logical coordinates. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPageDesc(self,) -> 'None': - """ - Get the format string used to display the page numbers during print preview - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPageDesc(self,) -> 'None': - """ - Set the format string used to display the page numbers during print preview - -Args: - - - -Returns: - - None - - """ - pass - - - def GetMinPage(self,) -> 'None': - """ - Get the number of the first page of the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetMinPage(self,) -> 'None': - """ - Set the number of the first page of the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetMaxPage(self,) -> 'None': - """ - Get the number of the last page of the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetMaxPage(self,) -> 'None': - """ - Set the number of the last page of the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetOffsetPage(self,) -> 'None': - """ - Get the number of pages preceding the first page of a DocObject item being - -printed in a combined DocObject print job. This currently does NOT work, as, if I include the symbol - -pInfo->GetOffsetPage(), the link fails to find its definition. Allways returns 0. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFromPage(self,) -> 'None': - """ - The number of the first page to be printed. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetToPage(self,) -> 'None': - """ - The number of the last page to be printed. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetHDC(self,hdc:'Any') -> 'None': - """ - Sets the printer DC compatible with the users choices, call after the print dialog - -DoModal finishes. - -Args: - - hdc(Any):The DC.MFC References - -Returns: - - None - - """ - pass - - - def CreatePrinterDC(self,) -> 'None': - """ - Handle to the newly created printer device context, call only after DoModal - -finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def DoModal(self,) -> 'None': - """ - Call DoModal on the dialog. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCopies(self,) -> 'None': - """ - The number of copies requested, call only after DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDefaults(self,) -> 'None': - """ - Nonzero if the function was successful; otherwise 0. Call this function to - -retrieve the device defaults of the default printer without displaying a dialog box. The retrieved values are placed - -in the m_pd structure. In some cases, a call to this function will call the constructor for CPrintDialog with - -bPrintSetupOnly set to FALSE. In these cases, a printer DC and hDevNames and hDevMode (two handles located in the - -m_pd data member) are automatically allocated. If the constructor for CPrintDialog was called with bPrintSetupOnly - -set to FALSE, this function will not only return hDevNames and hDevMode (located in m_pd.hDevNames and m_pd.hDevMode) - -to the caller, but will also return a printer DC in m_pd.hDC. It is the responsibility of the caller to delete the - -printer DC and call the WindowsGlobalFree function on the handles when you are finished with the CPrintDialog object. - -Args: - - - -Returns: - - None - - """ - pass - - - def FreeDefaults(self,) -> 'None': - """ - After a call to GetDefaults, and you are through with the CPrintDialog object, - -this call deletes the printer DC and calls GlobalFree function on the handles. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDeviceName(self,) -> 'None': - """ - The name of the currently selected printer, call only after DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDriverName(self,) -> 'None': - """ - The name of the currently selected printer device driver, call only after - -DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDlgFromPage(self,) -> 'None': - """ - Retrieves the starting page of the print range. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDlgToPage(self,) -> 'None': - """ - Retrieves the ending page of the print range. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPortName(self,) -> 'None': - """ - The name of the currently selected printer port, call only after DoModal - -finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPrinterDC(self,) -> 'None': - """ - A handle to the printer device context if successful; otherwise NULL. If the - -bPrintSetupOnly parameter of the CPrintDialog constructor was FALSE (indicating that the Print dialog box is - -displayed), then GetPrinterDC returns a handle to the printer device context. You must call the WindowsDeleteDC - -function to delete the device context when you are done using it. - -Args: - - - -Returns: - - None - - """ - pass - - - def PrintAll(self,) -> 'None': - """ - Nonzero if all pages in the document are to be printed; otherwise 0, call only after - -DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def PrintCollate(self,) -> 'None': - """ - Nonzero if the user selects the collate check box in the dialog box; otherwise - -0, call only after DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def PrintRange(self,) -> 'None': - """ - Nonzero if only a range of pages in the document are to be printed; otherwise 0, - -call only after DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def PrintSelection(self,) -> 'None': - """ - Nonzero if only the selected items are to be printed; otherwise 0., call only - -after DoModal finishes - -Args: - - - -Returns: - - None - - """ - pass - - - def GetHDC(self,) -> 'None': - """ - Identifies a device context or an information context, depending on whether the Flags - -member specifies the PD_RETURNDC or PC_RETURNIC flag. If neither flag is specified, the value of this member is - -undefined. If both flags are specified, PD_RETURNDC has priority. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFlags(self,) -> 'None': - """ - A set of bit flags that you can use to initialize the Print common dialog box. When - -the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the - -following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, - -PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, - -PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, - -PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, - -PD_USEDEVMODECOPIESANDCOLLATE. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFlags(self,) -> 'None': - """ - A set of bit flags that you can use to initialize the Print common dialog box. When - -the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the - -following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, - -PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, - -PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, - -PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, - -PD_USEDEVMODECOPIESANDCOLLATE. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFromPage(self,) -> 'None': - """ - The number of the first page to be printed. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetToPage(self,) -> 'None': - """ - The number of the last page to be printed. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPRINTDLGMinPage(self,) -> 'None': - """ - Get the minimum value for the page range specified in the From and To page - -edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are - -disabled. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPRINTDLGMinPage(self,) -> 'None': - """ - Set the minimum value for the page range specified in the From and To page - -edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are - -disabled. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPRINTDLGCopies(self,) -> 'None': - """ - Get the initial number of copies for the Copies edit control if hDevMode is - -NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, - -nCopies contains the actual number of copies to print. This value depends on whether the application or the printer - -driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags - -member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the - -flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more - -information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPRINTDLGCopies(self,) -> 'None': - """ - Set the initial number of copies for the Copies edit control if hDevMode is - -NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, - -nCopies contains the actual number of copies to print. This value depends on whether the application or the printer - -driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags - -member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the - -flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more - -information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCProgressCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': - """ - Creates the actual control. - -Args: - - style(Any):The style for the control. - rect(Tuple[Any, Any, Any, Any]):The size and position of the control. - parent(Any):The parent window of the control. Usually a PyCDialog. - _id(Any):The control's ID. - -Returns: - - None - - """ - pass - - - def SetRange(self,nLower:'Any'=1,nUpper:'Any'=1) -> 'None': - """ - Set the control's bounds - -Args: - - nLower(Any):Specifies the lower limit of the range (default is zero). - nUpper(Any):Specifies the upper limit of the range (default is 100). - -Returns: - - None - - """ - pass - - - def SetPos(self,nPos:'Any'=1) -> 'Any': - """ - Set the control's position - -Args: - - nPos(Any):New position of the progress bar control. - -Returns: - - Any - - """ - pass - - - def OffsetPos(self,nPos:'Any'=1) -> 'Any': - """ - Advances the progress bar control's current position by the increment - -specified - -Args: - - nPos(Any):Amount to advance the position. - -Returns: - - Any - - """ - pass - - - def SetStep(self,nStep:'Any'=1) -> 'Any': - """ - Specifies the step increment for a progress bar control. - -Args: - - nStep(Any):New step increment. - -Returns: - - Any - - """ - pass - - - def StepIt(self,) -> 'Any': - """ - Advances the current position for a progress bar control by the step increment. - -Returns previous position. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCPropertyPage(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CancelToClose(self,) -> 'None': - """ - Changes the Cancel button to Close. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnCancel(self,) -> 'None': - """ - Calls the default MFC OnCancel handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnOK(self,) -> 'None': - """ - Calls the default MFC OnOK handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnApply(self,) -> 'None': - """ - Calls the default MFC OnApply handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnReset(self,) -> 'None': - """ - Calls the default MFC OnReset handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnQueryCancel(self,) -> 'None': - """ - Calls the default MFC OnQueryCancel handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnWizardBack(self,) -> 'None': - """ - Calls the default MFC OnWizardBack handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnWizardNext(self,) -> 'None': - """ - Calls the default MFC OnWizardNext handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnWizardFinish(self,) -> 'None': - """ - Calls the default MFC OnWizardFinish handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnSetActive(self,) -> 'Any': - """ - Calls the default MFC OnSetActive handler. - -Args: - - - -Returns: - - Any:PyCPropertyPage.OnSetActive virtual method -Return ValueThe result is true if the page should be made active. - -Typically this result should be passed to the original OnSetActive handler. - - - """ - pass - - - def OnKillActive(self,) -> 'Any': - """ - Calls the default MFC OnKillActive handler. - -Args: - - - -Returns: - - Any:PyCPropertyPage.OnKillActive virtual method -Return ValueThe result is true if the page should be deselected. - -Typically this result should be passed to the original OnSetActive handler. - - - """ - pass - - - def SetModified(self,bChanged:'Any'=1) -> 'None': - """ - Sets the modified flag. - -Args: - - bChanged(Any):A flag to indicate the new modified state. - -Returns: - - None - - """ - pass - - - def SetPSPBit(self,bitMask:'Any',bitValue:'Any') -> 'None': - """ - Sets or clears a bit in m_psp.dwFlags - -Args: - - bitMask(Any):The PSP_* bit mask constant - bitValue(Any):1 to set, 0 to clear - -Returns: - - None - - """ - pass - - -class PyCPropertySheet(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddPage(self,page:'Any') -> 'None': - """ - Adds the supplied page with the rightmost tab in the property sheet. - -Args: - - page(Any):The page to be added.CommentsAdd pages to the property sheet in the left-to-right order you want them to appear.MFC References - -Returns: - - None - - """ - pass - - - def CreateWindow(self,style:'Any',exStyle:'Any',parent:'Any'=None) -> 'None': - """ - Displays the property sheet as a modeless dialog. - -Args: - - style(Any):The style for the window. - exStyle(Any):The extended style for the window. - parent(Any):The parent of the dialog. - -Returns: - - None - - """ - pass - - - def DoModal(self,) -> 'Any': - """ - Displays the property sheet as a modal dialog. - -Args: - - - -Returns: - - Any - - """ - pass - - - def EnableStackedTabs(self,stacked:'Any') -> 'Any': - """ - Enables or disables stacked tabs. - -Args: - - stacked(Any):A boolean flag - -Returns: - - Any - - """ - pass - - - def EndDialog(self,result:'Any') -> 'None': - """ - Closes the dialog, with the specified result. - -Args: - - result(Any):The result to be returned by DoModal. - -Returns: - - None - - """ - pass - - - def GetActiveIndex(self,) -> 'Any': - """ - Retrieves the index of the active page of the property sheet. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetActivePage(self,) -> 'Any': - """ - Returns the currently active property page. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetPage(self,pageNo:'Any') -> 'Any': - """ - Returns the specified property page. - -Args: - - pageNo(Any):The index of the page toretrieve.MFC References - -Returns: - - Any - - """ - pass - - - def GetPageIndex(self,page:'Any') -> 'Any': - """ - Retrieves the index of the specified page of the property sheet. - -Args: - - page(Any):The page. - -Returns: - - Any - - """ - pass - - - def GetPageCount(self,) -> 'Any': - """ - Returns the number of pages. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTabCtrl(self,) -> 'Any': - """ - Returns the tab control used by the sheet. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnInitDialog(self,) -> 'Any': - """ - Calls the default MFC OnInitDialog handler. - -Args: - - - -Returns: - - Any - - """ - pass - - - def PressButton(self,button:'Any') -> 'None': - """ - Simulates the choice of the specified button in a property sheet. - -Args: - - button(Any):The button to press - -Returns: - - None - - """ - pass - - - def RemovePage(self,offset:'Any',page:'Any') -> 'None': - """ - Removes the specified page from the sheet. - -Args: - - offset(Any):The page number to removeAlternative Parameters - page(Any):The page to remove - -Returns: - - None - - """ - pass - - - def SetActivePage(self,page:'Any') -> 'None': - """ - Programmatically sets the active page object. - -Args: - - page(Any):The page. - -Returns: - - None - - """ - pass - - - def SetTitle(self,title:'str') -> 'None': - """ - Sets the caption for the property sheet. - -Args: - - title(str):The new caption - -Returns: - - None - - """ - pass - - - def SetFinishText(self,text:'str') -> 'None': - """ - Sets the text for the Finish button - -Args: - - text(str):The next for the button - -Returns: - - None - - """ - pass - - - def SetWizardMode(self,) -> 'None': - """ - Enables the wizard mode - -Args: - - - -Returns: - - None - - """ - pass - - - def SetWizardButtons(self,flags:'Any') -> 'None': - """ - Enables the wizard buttons - -Args: - - flags(Any):The wizard flags - -Returns: - - None - - """ - pass - - - def SetPSHBit(self,bitMask:'Any',bitValue:'Any') -> 'None': - """ - Sets or clears a bit in m_psh.dwFlags - -Args: - - bitMask(Any):The PSH_* bit mask constant - bitValue(Any):1 to set, 0 to clear - -Returns: - - None - - """ - pass - - -class PyCRect(object): - """A Python interface the the MFC CRect class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCRgn(object): - """An object encapsulating an MFC PyCRgn class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCRichEditCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Clear(self,) -> 'Any': - """ - Clears all text in an edit control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def Copy(self,) -> 'None': - """ - Copys the current selection to the clipboard. - -Args: - - - -Returns: - - None - - """ - pass - - - def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': - """ - Creates a rich edit control window. - -Args: - - style(Any):The control style - rect(Tuple[Any, Any, Any, Any]):The position of the control - parent(Any):The parent window. Must not be None - _id(Any):The control ID - -Returns: - - None - - """ - pass - - - def Cut(self,) -> 'None': - """ - Cuts the current selection to the clipboard. - -Args: - - - -Returns: - - None - - """ - pass - - - def FindText(self,charPos:'Any') -> 'Tuple[Any, Any, Any]': - """ - Finds text in the control - -Args: - - charPos(Any):The character position - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def GetCharPos(self,charPos:'Any') -> 'Any': - """ - Returns the location of the top-left corner of the character specified - -by charPos. - -Args: - - charPos(Any):The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple - -Returns: - - Any:The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple - - - - """ - pass - - - def GetDefaultCharFormat(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any:CRichEditCtrl::GetDefaultCharFormat -Return ValueThe return value is a win32ui::CHARFORMAT tuple - - - - """ - pass - - - def GetEventMask(self,) -> 'Any': - """ - Returns the current event mask. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSelectionCharFormat(self,) -> 'Any': - """ - Returns the character formatting of the selection. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetFirstVisibleLine(self,) -> 'Any': - """ - Returns zero-based index of the topmost visible line. - -Args: - - - -Returns: - - Any:CRichEditCtrl::GetFirstVisibleLine -Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. - - - """ - pass - - - def GetParaFormat(self,) -> 'Any': - """ - Returns the current paragraph formatting attributes. - -Args: - - - -Returns: - - Any:CRichEditCtrl::GetParaFormat -Return ValueThe return value is a win32ui::PARAFORMAT tuple - - - - """ - pass - - - def GetSel(self,) -> 'Tuple[Any, Any]': - """ - Returns the start and end of the current selection. - -Args: - - - -Returns: - - Tuple[Any, Any]:CRichEditCtrl::GetSel -Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the - -end of the current selection) - - - """ - pass - - - def GetSelText(self,) -> 'str': - """ - Returns the currently selected text - -Args: - - - -Returns: - - str - - """ - pass - - - def GetTextLength(self,) -> 'Any': - """ - Returns the length of the text in the control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetLine(self,lineNo:'Any') -> 'Any': - """ - Returns the text in a specified line. - -Args: - - lineNo(Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. - -Returns: - - Any - - """ - pass - - - def GetModify(self,) -> 'Any': - """ - Nonzero if the text in this control has been modified; otherwise 0. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetLineCount(self,) -> 'Any': - """ - Gets the number of lines in an edit control. - -Args: - - - -Returns: - - Any:CRichEditCtrl::GetLineCount -Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. - - - """ - pass - - - def LimitText(self,nChars:'Any'=0) -> 'None': - """ - Sets max length of text that user can enter - -Args: - - nChars(Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References - -Returns: - - None - - """ - pass - - - def LineFromChar(self,charNo:'Any'=-1) -> 'Any': - """ - Returns the line number of the specified character. - -Args: - - charNo(Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References - -Returns: - - Any:CRichEditCtrl::LineFromChar -Return ValueThe zero-based line number of the line containing the character index specified by charNo. - -If charNo is -1, the number of the line that contains the first character of the selection is returned. - -If there is no selection, the current line number is returned. - - - """ - pass - - - def LineIndex(self,lineNo:'Any'=-1) -> 'Any': - """ - Retrieves the character index of a line within a multiple-line edit control. - -Args: - - lineNo(Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References - -Returns: - - Any:CRichEditCtrl::LineIndex -Return ValueThe character index of the line specified in lineNo, or -1 if - -the specified line number is greater then the number of lines in - -the edit control. - - - """ - pass - - - def LineScroll(self,nLines:'Any',nChars:'Any'=0) -> 'Any': - """ - Scroll the control vertically and horizontally - -Args: - - nLines(Any):Specifies the number of lines to scroll vertically. - nChars(Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References - -Returns: - - Any - - """ - pass - - - def Paste(self,) -> 'None': - """ - Pastes the contents of the clipboard into the control. - -Args: - - - -Returns: - - None - - """ - pass - - - def ReplaceSel(self,text:'str') -> 'None': - """ - Replaces the selection with the specified text. - -Args: - - text(str):The text to replace the selection with.MFC References - -Returns: - - None - - """ - pass - - - def SetBackgroundColor(self,bSysColor:'Any',cr:'Any'=0) -> 'Any': - """ - Sets the background color for the control. - -Args: - - bSysColor(Any):Indicates if the background color should be set to the system value. If this value is TRUE, cr is ignored. - cr(Any):The requested background color. Used only if bSysColor is FALSE.MFC References - -Returns: - - Any:CRichEditCtrl::SetEventMask -Return ValueThe return value is the previous background color. - - - """ - pass - - - def SetDefaultCharFormat(self,charFormat:'Any') -> 'None': - """ - None - -Args: - - charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References - -Returns: - - None - - """ - pass - - - def SetEventMask(self,eventMask:'Any') -> 'Any': - """ - Sets the event motification mask. - -Args: - - eventMask(Any):The new event mask. Must be one of the win32con.ENM_* flags.MFC References - -Returns: - - Any:CRichEditCtrl::SetEventMask -Return ValueThe return value is the previous event mask. - - - """ - pass - - - def SetSelectionCharFormat(self,charFormat:'Any') -> 'None': - """ - Sets the current selections character formatting attributes. - -Args: - - charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References - -Returns: - - None - - """ - pass - - - def SetModify(self,modified:'Any'=1) -> 'None': - """ - Sets the modified flag for this control - -Args: - - modified(Any):Indicates the new value for the modified flag.MFC References - -Returns: - - None - - """ - pass - - - def SetOptions(self,op:'Any',flags:'Any') -> 'None': - """ - Sets options for the control. - -Args: - - op(Any):Indicates the operation. Must be one of the win32con.ECOOP_* flags. - flags(Any):Indicates the options. Must be one a combination of win32con.ECO_* flags.MFC References - -Returns: - - None - - """ - pass - - - def SetParaFormat(self,paraFormat:'Any') -> 'Any': - """ - Sets the paragraph formatting - -Args: - - paraFormat(Any):A charformat tuple. See win32ui::PARAFORMAT tuple for details.MFC References - -Returns: - - Any:CRichEditCtrl::SetParaFormat -Return ValueThis function seems to return occasionally return failure, but - -the formatting is applied. Therefore an exception is not raised on failure, - -but the BOOL return code is passed back. - - - """ - pass - - - def SetReadOnly(self,bReadOnly:'Any'=1) -> 'None': - """ - Sets or clears the read-only status of the listbox. - -Args: - - bReadOnly(Any):The read-only state to set.MFC References - -Returns: - - None - - """ - pass - - - def SetSel(self,start:'Any',end:'Any',arg:'Any') -> 'None': - """ - Sets the selection in the edit control. - -Args: - - start(Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. - end(Any):Specifies the ending position.Alternative Parameters - arg(Any):As for normal start, end args.MFC References - -Returns: - - None - - """ - pass - - - def SetSelAndCharFormat(self,charFormat:'Any') -> 'None': - """ - Sets the selection and char format. - -Args: - - charFormat(Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.CommentsHighly optimised for speed for color editors.MFC References - -Returns: - - None - - """ - pass - - - def SetTargetDevice(self,dc:'Any',lineWidth:'Any') -> 'None': - """ - Sets the target device for the control - -Args: - - dc(Any):The new DC - may be None - lineWidth(Any):Line width to use for formatting.MFC References - -Returns: - - None - - """ - pass - - - def StreamIn(self,_format:'Any',method:'Any') -> 'Tuple[Any, Any]': - """ - Invokes a callback to stream data into the control. - -Args: - - _format(Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) - method(Any):A callable object (eg, a method or function) This method is called with a single integer param, which is the maximum number of bytes to fetch. The method should return a zero length string, or None to finish the operation, and a string otherwise.MFC References - -Returns: - - Tuple[Any, Any]:CRichEditCtrl::StreamIn -Return ValueThe return value is a tuple of (no bytes written, error code) - - - """ - pass - - - def StreamOut(self,_format:'Any',method:'Any') -> 'Tuple[Any, Any]': - """ - Invokes a callback to stream data into the control. - -Args: - - _format(Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) and may also combine SFF_SELECTION. - method(Any):A callable object (eg, a method or function) This method is called with a string parameter. It should return an integer, zero to abort, non zero otherwise.MFC References - -Returns: - - Tuple[Any, Any]:CRichEditCtrl::StreamOut -Return ValueThe return value is a tuple of (no bytes written, error code) - - - """ - pass - - -class PyCRichEditDoc(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnCloseDocument(self,) -> 'None': - """ - Call the MFC OnCloseDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCRichEditDocTemplate(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DoCreateRichEditDoc(self,fileName:'str'=None) -> 'Any': - """ - Creates an underlying document object. - -Args: - - fileName(str):The name of the file to load. - -Returns: - - Any - - """ - pass - - -class PyCRichEditView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetRichEditCtrl(self,) -> 'Any': - """ - Returns the underlying rich edit control object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetWordWrap(self,wordWrap:'Any') -> 'Any': - """ - Sets the wordwrap state for the control. - -Args: - - wordWrap(Any):The new word-wrap state.MFC References - -Returns: - - Any - - """ - pass - - - def WrapChanged(self,) -> 'Any': - """ - Calls the underlying WrapChanged method. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SaveTextFile(self,FileName:'Any') -> 'Any': - """ - Saves the contents of the control as a test file - -Args: - - FileName(Any):Name of file to saveCommentsTheere is no equivilent MFC method. This is implemented in this module for performance reasons. - -Returns: - - Any - - """ - pass - - -class PyCScrollView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDeviceScrollPosition(self,) -> 'Tuple[Any, Any]': - """ - Returns the positon of the scroll bars in device units. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetDC(self,) -> 'Any': - """ - Gets the view's current DC. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetScrollPosition(self,) -> 'Tuple[Any, Any]': - """ - Returns the current position of the scroll bars (in logical units). - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def GetTotalSize(self,) -> 'Tuple[Any, Any]': - """ - Returns the total size of the view in logical units. - -Args: - - - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(Any): - lparam(Any):See Also - -Returns: - - None - - """ - pass - - - def ResizeParentToFit(self,bShrinkOnly:'Any'=1) -> 'Any': - """ - Lets the size of a view dictate the size of its frame window. - -Args: - - bShrinkOnly(Any):The kind of resizing to perform. The default value, TRUE, shrinks the frame window if appropriate.CommentsThis is recommended only for views in MDI child frame windows. Use ResizeParentToFit in the OnInitialUpdate handler function of your View class. You must ensure the parent's PyCFrameWnd::RecalcLayout is called before using this method. - -Returns: - - Any - - """ - pass - - - def SetScaleToFitSize(self,size:'Tuple[Any, Any]') -> 'None': - """ - Scales the viewport size to the current window size automatically. - -Args: - - size(Tuple[Any, Any]):The horizontal and vertical sizes to which the view is to be scaled. The scroll view's size is measured in logical units. - -Returns: - - None - - """ - pass - - - def ScrollToPosition(self,position:'Tuple[Any, Any]') -> 'None': - """ - Scrolls to a given point in the view. - -Args: - - position(Tuple[Any, Any]):The position to scroll to. - -Returns: - - None - - """ - pass - - - def SetScrollSizes(self,mapMode:'Any',sizeTotal:'Tuple[Any, Any]',arg:'Tuple[Any, Any]',arg1:'Tuple[Any, Any]') -> 'None': - """ - Sets the sizes of the scroll bars - -Args: - - mapMode(Any):The mapping mode for this view. - sizeTotal(Tuple[Any, Any]):The total size of the view. Sizes are in logical units. Both x and y must be greater than zero. - arg(Tuple[Any, Any]):The number of untils to scroll in response to a page-down command. - arg1(Tuple[Any, Any]):The number of untils to scroll in response to a line-down command. - -Returns: - - None - - """ - pass - - - def UpdateBars(self,) -> 'None': - """ - Update the scroll bars state - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCSliderCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': - """ - Creates the actual control. - -Args: - - style(Any):The style for the control. - rect(Tuple[Any, Any, Any, Any]):The size and position of the control. - parent(Any):The parent window of the control. Usually a PyCDialog. - _id(Any):The control's ID. - -Returns: - - None - - """ - pass - - - def GetLineSize(self,) -> 'Any': - """ - Get the control's position - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetLineSize(self,nLineSize:'Any'=1) -> 'Any': - """ - Set the control's line size. Returns the previous line size. - -Args: - - nLineSize(Any):New line size of the Slider bar control - -Returns: - - Any - - """ - pass - - - def GetPageSize(self,) -> 'Any': - """ - Get the control's position - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetPageSize(self,nPageSize:'Any'=1) -> 'Any': - """ - Set the control's page size Returns the previous page size. - -Args: - - nPageSize(Any):New page size of the Slider bar control. - -Returns: - - Any - - """ - pass - - - def GetRangeMax(self,) -> 'Any': - """ - Get the control's Maximum - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRangeMin(self,) -> 'Any': - """ - Get the control's Minimum - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRange(self,) -> 'Any': - """ - Get the control's min and max - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetRange(self,nRangeMin:'Any'=1,nRangeMax:'Any'=1,bRedraw:'Any'=1) -> 'Any': - """ - Set the control's min and max - -Args: - - nRangeMin(Any):New minimum of the Slider bar control. - nRangeMax(Any):New maximum of the Slider bar control. - bRedraw(Any):Should slider be redrawn? - -Returns: - - Any - - """ - pass - - - def GetSelection(self,) -> 'Any': - """ - Get the control's selection start and end positions - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetSelection(self,nRangeMin:'Any'=1,nRangeMax:'Any'=1) -> 'Any': - """ - Set the control's selection start and end positions - -Args: - - nRangeMin(Any):New start of the Slider's selection. - nRangeMax(Any):New end of the Slider's selection. - -Returns: - - Any - - """ - pass - - - def GetChannelRect(self,) -> 'Any': - """ - Get the control's channel rectangle - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetThumbRect(self,) -> 'Any': - """ - Get the control's thumb rectangle - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetPos(self,) -> 'Any': - """ - Get the control's position - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetPos(self,nPos:'Any'=1) -> 'Any': - """ - Set the control's position - -Args: - - nPos(Any):New position of the Slider bar control. - -Returns: - - Any - - """ - pass - - - def GetNumTics(self,) -> 'Any': - """ - Get number of tics in the slider - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTicArray(self,) -> 'Any': - """ - Get a tuple of slider tic positions - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTic(self,nTic:'Any'=1) -> 'Any': - """ - Get the position of the specified tic number - -Args: - - nTic(Any):Zero based index of the tic mark - -Returns: - - Any - - """ - pass - - - def GetTicPos(self,nTic:'Any'=1) -> 'Any': - """ - Get the position of the specified tic number in client coordinates - -Args: - - nTic(Any):Zero based index of the tic mark - -Returns: - - Any - - """ - pass - - - def SetTic(self,nTic:'Any'=1) -> 'Any': - """ - Set a tic at the specified position - -Args: - - nTic(Any):Position of the desired tic mark - -Returns: - - Any - - """ - pass - - - def SetTicFreq(self,nFreq:'Any'=1) -> 'Any': - """ - Set the tic frequency - -Args: - - nFreq(Any):Frequency of tic marks - -Returns: - - Any - - """ - pass - - - def ClearSel(self,bRedraw:'Any'=1) -> 'Any': - """ - Clear the selection - -Args: - - bRedraw(Any):Redraw the control? - -Returns: - - Any - - """ - pass - - - def VerifyPos(self,) -> 'Any': - """ - Verify the position is between configured min and max - -Args: - - - -Returns: - - Any - - """ - pass - - - def ClearTics(self,bRedraw:'Any'=1) -> 'Any': - """ - Clear the control's tic marks - -Args: - - bRedraw(Any):Redraw the control? - -Returns: - - Any - - """ - pass - - -class PyCSpinButtonCtrl(object): - """A windows spin button control. Encapsulates an MFC CSpinButtonCtrl object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPos(self,) -> 'Any': - """ - Obtains the current position for a spin button control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetPos(self,pos:'Any') -> 'Any': - """ - Sets the current position for a spin button control. - -Args: - - pos(Any):The new position.Return ValueThe result is the previous position. - -Returns: - - Any:The new position.Return ValueThe result is the previous position. - - - """ - pass - - - def SetRange(self,) -> 'Any': - """ - Sets the upper and lower limits (range) for a spin button control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetRange32(self,) -> 'Any': - """ - Sets the 32 bit upper and lower limits (range) for a spin button control. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCSplitterWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPane(self,row:'Any',col:'Any') -> 'Any': - """ - None - -Args: - - row(Any):The row in the splitter. - col(Any):The column in the splitter.CommentsTheoretically the return value can be a PyCWnd object, but currently it will always be a PyCView or derived object. - -Returns: - - Any - - """ - pass - - - def CreateView(self,view:'Any',row:'Any',col:'Any',arg:'Tuple[Any, Any]') -> 'None': - """ - Creates a view in a splitter window - -Args: - - view(Any):The view to place in the splitter pane. - row(Any):The row in the splitter to place the view. - col(Any):The column in the splitter to place the view. - arg(Tuple[Any, Any]):The initial size of the new view.MFC References - -Returns: - - None - - """ - pass - - - def CreateStatic(self,parent:'Any',rows:'Any',cols:'Any',style:'Any',_id:'Any') -> 'None': - """ - Creates a static splitter window. - -Args: - - parent(Any):The parent window. - rows(Any):The number of rows in the splitter. - cols(Any):The number of columns in the splitter. - style(Any):Specifies the window style - _id(Any):The child window ID of the window. The ID can be AFX_IDW_PANE_FIRST unless the splitter window is nested inside another splitter window.CommentsA static splitter window is a splitter where the number of panes are fixed at window creation time. Currently this is the only splitter window supported by win32ui.MFC References - -Returns: - - None - - """ - pass - - - def SetColumnInfo(self,column:'Any',ideal:'Any',_min:'Any') -> 'None': - """ - Sets a new minimum height and ideal height for a column - -Args: - - column(Any):The column in the splitter. - ideal(Any):Specifies an ideal height for the splitter window column in pixels. - _min(Any):Specifies a minimum height for the splitter window column in pixels. - -Returns: - - None - - """ - pass - - - def SetRowInfo(self,row:'Any',ideal:'Any',_min:'Any') -> 'None': - """ - Sets a new minimum height and ideal height for a row. - -Args: - - row(Any):The row in the splitter. - ideal(Any):Specifies an ideal height for the splitter window row in pixels. - _min(Any):Specifies a minimum height for the splitter window row in pixels. - -Returns: - - None - - """ - pass - - - def IdFromRowCol(self,row:'Any',col:'Any') -> 'None': - """ - Gets the child window ID for the specified child. - -Args: - - row(Any):The row in the splitter. - col(Any):The col in the splitter - -Returns: - - None - - """ - pass - - - def DoKeyboardSplit(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCStatusBar(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPaneInfo(self,index:'Any') -> 'Tuple[Any, Any, Any]': - """ - Returns the id, style, and width of the indicator pane at the - -location specified by index. - -Args: - - index(Any):Index of the pane whose information is to be retrieved.MFC References - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def GetStatusBarCtrl(self,) -> 'Any': - """ - Gets the statusbar control object for the statusbar. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetIndicators(self,indicators:'Any') -> 'None': - """ - Sets each indicator's ID. - -Args: - - indicators(Any):A tuple containing the ID's of the indicators. - -Returns: - - None - - """ - pass - - - def SetPaneInfo(self,index:'Any',_id:'Any',style:'Any',width:'Any') -> 'None': - """ - Sets the specified indicator pane to a new ID, style, and width. - -Args: - - index(Any):Index of the indicator pane whose style is to be set. - _id(Any):New ID for the indicator pane. - style(Any):New style for the indicator pane.The following indicator styles are supported:afxres.SBPS_NOBORDERS - No 3-D border around the pane.afxres.SBPS_POPOUT - Reverse border so that text "pops out."afxres.SBPS_DISABLED - Do not draw text.afxres.SBPS_STRETCH - Stretch pane to fill unused space. Only one pane per status bar can have this style.afxres.SBPS_NORMAL - No stretch, borders, or pop-out. - width(Any):New width for the indicator pane.MFC References - -Returns: - - None - - """ - pass - - -class PyCStatusBarCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': - """ - Creates the actual control. - -Args: - - style(Any):The style for the control. - rect(Tuple[Any, Any, Any, Any]):The size and position of the control. - parent(Any):The parent window of the control. Usually a PyCDialog. - _id(Any):The control's ID. - -Returns: - - None - - """ - pass - - - def GetBorders(self,) -> 'Tuple[Any, Any, Any]': - """ - Retrieve the status bar control's current widths of - -the horizontal and vertical borders and of the space between rectangles. - -Args: - - - -Returns: - - Tuple[Any, Any, Any] - - """ - pass - - - def GetParts(self,nParts:'Any') -> 'Any': - """ - Retrieve coordinates of the parts in a status bar control. - -Args: - - nParts(Any):The number of coordinates to retrieveCommentsThis function, as designed in MFC, returns both the *number* of parts, and, through an OUT parameter, an array of ints giving the coordinates of the parts. There is also an IN parameter saying how many coordinates to give back. Here, we're explicitly changing the semantics a bit.GetParts() -> Tuple of all coordinates GetParts(n) -> Tuple of the first n coordinates (or all coordinates, if fewer than n)So, in Python, you can't simultaneously find out how many coordinates there are, and retrieve a subset of them. In a reasonable universe, there would have been GetParts() -> int, and GetCoords() -> List. This means that I need to call the MFC method twice; once to find out how many there are, and another time to get them. - -Returns: - - Any - - """ - pass - - - def GetRect(self,nPane:'Any') -> 'Tuple[Any, Any, Any, Any]': - """ - Retrieves the bounding rectangle of a part in a status - -bar control. - -Args: - - nPane(Any):Zero-based index of the part whose bounding rectangle is to be retrieved. - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def GetText(self,nPane:'Any') -> 'Any': - """ - Retrieve the text from the given part of a status bar control. - -Args: - - nPane(Any):Zero-based index of the part whose text is to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetTextAttr(self,nPane:'Any') -> 'Any': - """ - Retrieve the attributes of the text in the given part of a status bar - -control. - -Args: - - nPane(Any):Zero-based index of the part whose text is to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetTextLength(self,nPane:'Any') -> 'Any': - """ - Retrieve the length the text in the given part of a status bar control. - -Args: - - nPane(Any):Zero-based index of the part whose text is to be retrieved. - -Returns: - - Any - - """ - pass - - - def SetMinHeight(self,nHeight:'Any') -> 'None': - """ - Set the minimum height of a status bar control's drawing area. - -Args: - - nHeight(Any):Minimum height - -Returns: - - None - - """ - pass - - - def SetParts(self,coord:'Any') -> 'None': - """ - Sets the number of parts in a status bar control and the coordinate of the right - -edge of each part. - -Args: - - coord(Any):Coordinates of each part - -Returns: - - None - - """ - pass - - - def SetText(self,text:'str',nPane:'Any',nType:'Any') -> 'None': - """ - Set the text in the given part of a status bar control. - -Args: - - text(str):The text to display - nPane(Any):Zero-based index of the part to set. - nType(Any):Type of drawing operation.CommentsThe drawing type can be set to one of:~ 0 - The text is drawn with a border to appear lower than the plane of the status bar.~ win32con.SBT_NOBORDERS - The text is drawn without borders.~ win32con.SBT_OWNERDRAW - The text is drawn by the parent window.~ win32con.SBT_POPOUT - The text is drawn with a border to appear higher than the plane of the status bar. - -Returns: - - None - - """ - pass - - - def SetTipText(self,nPane:'Any',text:'str') -> 'None': - """ - Sets the tooltip text for a pane in a status bar. The status bar must have - -been created with the afxres.SBT_TOOLTIPS control style to enable ToolTips. - -Args: - - nPane(Any):The zero-based index of status bar pane to receive the tooltip text. - text(str):The string containing the tooltip text.CommentsPay attention, this tooltip text is ONLY displayed in two situations: 1. When the corresponding pane in the status bar contains only an icon. 2. When the corresponding pane in the status bar contains text that is truncated due to the size of the pane. To make the tooltip appear even if the text is not truncated, you could add additional spaces to the end of the pane text.MFC References - -Returns: - - None - - """ - pass - - -class PyCTabCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCurSel(self,) -> 'Any': - """ - Gets the current selection of a tab control. - -Args: - - - -Returns: - - Any:PyCTabCtrl.GetCurSel - -int = GetCurSel()Gets the current selection of a tab control. -Return ValueThe zero-based index of the currently selected item, or -1 if no selection. - - - """ - pass - - - def GetItemCountl(self,) -> 'Any': - """ - Returns the number of tabs in the control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetCurSel(self,index:'Any') -> 'Any': - """ - Sets the current selection of a tab control. - -Args: - - index(Any):The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. - -Returns: - - Any:The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. - - - """ - pass - - -class PyCToolBar(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetButtonStyle(self,index:'Any') -> 'None': - """ - Retrieves the style for a button. - -Args: - - index(Any):Index of the item whose style is to be retrieved. - -Returns: - - None - - """ - pass - - - def GetButtonText(self,index:'Any') -> 'str': - """ - Gets the text for a button. - -Args: - - index(Any):Index of the item whose text is to be retrieved. - -Returns: - - str - - """ - pass - - - def GetItemID(self,index:'Any') -> 'None': - """ - Returns the command ID of a button or separator at the given index. - -Args: - - index(Any):Index of the item whose ID is to be retrieved. - -Returns: - - None - - """ - pass - - - def SetButtonInfo(self,index:'Any',ID:'Any',style:'Any',imageIx:'Any') -> 'None': - """ - Sets the button's command ID, style, and image number. - -Args: - - index(Any):Index of the button or separator whose information is to be set. - ID(Any):The value to which the button's command ID is set. - style(Any):The new button style - imageIx(Any):New index for the button's image within the bitmap - -Returns: - - None - - """ - pass - - - def GetToolBarCtrl(self,) -> 'Any': - """ - Gets the toolbar control object for the toolbar - -Args: - - - -Returns: - - Any - - """ - pass - - - def LoadBitmap(self,_id:'PyResourceId') -> 'None': - """ - Loads the bitmap containing bitmap-button images. - -Args: - - _id(PyResourceId):Name or id of the resource that contains the bitmap.CommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. - -Returns: - - None - - """ - pass - - - def LoadToolBar(self,_id:'PyResourceId') -> 'None': - """ - Loads a toolbar from a toolbar resource. - -Args: - - _id(PyResourceId):Name or resource id of the resourceCommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. - -Returns: - - None - - """ - pass - - - def SetBarStyle(self,style:'Any') -> 'None': - """ - Sets the toolbar part of style - -Args: - - style(Any):The toolbar style to set. - -Returns: - - None - - """ - pass - - - def SetBitmap(self,hBitmap:'Any') -> 'None': - """ - Sets a bitmapped image. - -Args: - - hBitmap(Any):The handle to a bitmap resource.CommentsCall this method to set the bitmap image for the toolbar. For example, call SetBitmap to change the bitmapped image after the user takes an action on a document that changes the action of a button. - -Returns: - - None - - """ - pass - - - def SetButtons(self,buttons:'Any',numButtons:'Any') -> 'None': - """ - Sets button styles and an index of button images within the bitmap. - -Args: - - buttons(Any):A tuple containing the ID's of the buttons.Alternative Parameters - numButtons(Any):The number of buttons to pre-allocate. If this option is used, then PyCToolBar::PySetButtonInfo must be used. - -Returns: - - None - - """ - pass - - - def SetButtonStyle(self,index:'Any',style:'Any') -> 'None': - """ - Sets the style for a button. - -Args: - - index(Any):Index of the item whose style is to be set - style(Any):The new style - -Returns: - - None - - """ - pass - - - def SetHeight(self,height:'Any') -> 'None': - """ - Sets the height of the toolbar. - -Args: - - height(Any):The height in pixels of the toolbar. - -Returns: - - None - - """ - pass - - - def SetSizes(self,sizeButton:'Tuple[Any, Any]',sizeButton1:'Tuple[Any, Any]') -> 'None': - """ - Sets the size of each button. - -Args: - - sizeButton(Tuple[Any, Any]):The size of each button. - sizeButton1(Tuple[Any, Any]):The size of each bitmap. - -Returns: - - None - - """ - pass - - -class PyCToolBarCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddBitmap(self,numButtons:'Any',bitmap:'Any') -> 'Any': - """ - Add one or more button images to the list of button images - -Args: - - numButtons(Any):Number of button images in the bitmap. - bitmap(Any):Bitmap containing button or buttons to be addedMFC References - -Returns: - - Any - - """ - pass - - - def AddButtons(self,) -> 'Any': - """ - Add one or more buttons to the toolbar - -Args: - - - -Returns: - - Any - - """ - pass - - - def AddStrings(self,strings:'Any') -> 'Any': - """ - Add one or more strings to the toolbar - -Args: - - strings(Any):Strings to add. Can give more than one string. - -Returns: - - Any - - """ - pass - - - def AutoSize(self,) -> 'None': - """ - Resize the entire toolbar control - -Args: - - - -Returns: - - None - - """ - pass - - - def CheckButton(self,nID:'Any',bCheck:'Any'=1) -> 'Any': - """ - Check or clear a given button in a toolbar control - -Args: - - nID(Any):Command identifier of the button to check or clear. - bCheck(Any):1 to check, 0 to clear the buttonMFC References - -Returns: - - Any - - """ - pass - - - def CommandToIndex(self,nID:'Any') -> 'Any': - """ - Retrieve the zero-based index for the button associated with the - -specified command identifier. - -Args: - - nID(Any):Command identifier of the button you want to find.MFC References - -Returns: - - Any - - """ - pass - - - def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any') -> 'None': - """ - Creates the window for a new toolbar object - -Args: - - style(Any):The style for the button. Use any of the win32con.BS_* constants. - rect(Tuple[Any, Any, Any, Any]):The size and position of the button. - parent(Any):The parent window of the button. Usually a PyCDialog. - _id(Any):The buttons control ID.MFC References - -Returns: - - None - - """ - pass - - - def Customize(self,) -> 'None': - """ - Display the Customize Toolbar dialog box. - -Args: - - - -Returns: - - None - - """ - pass - - - def DeleteButton(self,nID:'Any') -> 'None': - """ - Delete a button from the toolbar control. - -Args: - - nID(Any):ID of the button to delete.MFC References - -Returns: - - None - - """ - pass - - - def EnableButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': - """ - Enable or disable a toolbar control button. - -Args: - - nID(Any):ID of the button to enable or disable. - bEnable(Any):1 to enable, 0 to disableMFC References - -Returns: - - None - - """ - pass - - - def GetBitmapFlags(self,) -> 'Any': - """ - retrieve the bitmap flags from the toolbar. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetButton(self,nID:'Any') -> 'Any': - """ - Retrieve information about the specified button in a - -toolbar control. - -Args: - - nID(Any):ID of the button to retrieve.MFC References - -Returns: - - Any - - """ - pass - - - def GetButtonCount(self,) -> 'Any': - """ - Retrieve a count of the buttons currently in the toolbar control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetItemRect(self,nID:'Any') -> 'Tuple[Any, Any, Any, Any]': - """ - Retrieve the bounding rectangle of a button in a - -toolbar control. - -Args: - - nID(Any):ID of the button.MFC References - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def GetRows(self,) -> 'Tuple[Any, Any, Any, Any]': - """ - Retrieve the number of rows of buttons currently displayed - -Args: - - - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def HideButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': - """ - Hide or show the specified button in a toolbar control. - -Args: - - nID(Any):ID of the button to hide. - bEnable(Any):1 to hide, 0 to show.MFC References - -Returns: - - None - - """ - pass - - - def Indeterminate(self,nID:'Any',bEnable:'Any'=1) -> 'None': - """ - Mark or unmark the specified button as indeterminate - -Args: - - nID(Any):ID of the button to mark. - bEnable(Any):1 to hide, 0 to show.MFC References - -Returns: - - None - - """ - pass - - - def InsertButton(self,nID:'Any',button:'Any') -> 'Any': - """ - Insert a button in a toolbar control. - -Args: - - nID(Any):Zero-based index of a button. This function inserts the new button to the left of this button. - button(Any):Bitmap containing button to be insertedCommentsThe image and/or string whose index you provide must have previously been added to the toolbar control's list using PyCToolBarCtrl::AddBitmap, PyCToolBarCtrl::AddString, and/or PyCToolBarCtrl::AddStrings.MFC References - -Returns: - - Any - - """ - pass - - - def IsButtonChecked(self,nID:'Any') -> 'Any': - """ - Determine whether the specified button in a toolbar control is checked. - -Args: - - nID(Any):ID of the button to check.MFC References - -Returns: - - Any - - """ - pass - - - def IsButtonEnabled(self,nID:'Any') -> 'Any': - """ - Determine whether the specified button in a toolbar control is enabled. - -Args: - - nID(Any):ID of the button to check.MFC References - -Returns: - - Any - - """ - pass - - - def IsButtonHidden(self,nID:'Any') -> 'Any': - """ - Determine whether the specified button in a toolbar control is hidden. - -Args: - - nID(Any):ID of the button to check.MFC References - -Returns: - - Any - - """ - pass - - - def IsButtonIndeterminate(self,nID:'Any') -> 'Any': - """ - Determine whether the specified button in a toolbar control is - -indeterminate. - -Args: - - nID(Any):ID of the button to check.MFC References - -Returns: - - Any - - """ - pass - - - def IsButtonPressed(self,nID:'Any') -> 'Any': - """ - Determine whether the specified button in a toolbar control is pressed. - -Args: - - nID(Any):ID of the button to check.MFC References - -Returns: - - Any - - """ - pass - - - def PressButton(self,nID:'Any',bEnable:'Any'=1) -> 'None': - """ - Mark or unmark the specified button as pressed. - -Args: - - nID(Any):ID of the button to mark. - bEnable(Any):1 to mark, 0 to unmark.MFC References - -Returns: - - None - - """ - pass - - - def SetBitmapSize(self,width1:'Any',height1:'Any',width:'Any'=16,height:'Any'=15) -> 'None': - """ - Set the size of the actual bitmapped images to be added to a toolbar control. - -Args: - - width1(Any):Width of bitmap images. - height1(Any):Height of bitmap images.MFC References - width(Any):Width of bitmap images. - height(Any):Height of bitmap images.Alternative Parameters - -Returns: - - None - - """ - pass - - - def SetButtonSize(self,width1:'Any',height1:'Any',width:'Any'=16,height:'Any'=15) -> 'None': - """ - Set the size of the buttons to be added to a toolbar control. - -Args: - - width1(Any):Width of bitmap images. - height1(Any):Height of bitmap images.MFC References - width(Any):Width of buttons - height(Any):Height of buttonsAlternative Parameters - -Returns: - - None - - """ - pass - - - def SetCmdID(self,nIndex:'Any',nID:'Any') -> 'None': - """ - Set the command identifier which will be sent to the owner window when the - -specified button is pressed. - -Args: - - nIndex(Any):The zero-based index of the button whose command ID is to be set. - nID(Any):The command ID to set the selected button to.MFC References - -Returns: - - None - - """ - pass - - - def SetRows(self,nRows:'Any',bLarger:'Any') -> 'Tuple[Any, Any, Any, Any]': - """ - Ask the toolbar control to resize itself to the requested - -number of rows. - -Args: - - nRows(Any):Requested number of rows. - bLarger(Any):Tells whether to use more rows or fewer rows if the toolbar cannot be resized to the requested number of rows.MFC References - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - -class PyCToolTipCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,parent:'Any',style:'Any') -> 'None': - """ - Creates the actual control. - -Args: - - parent(Any):The parent window of the control. - style(Any):The style for the control. - -Returns: - - None - - """ - pass - - - def UpdateTipText(self,text:'str',wnd:'Any',_id:'Any') -> 'None': - """ - Update the tool tip text for a control's tools - -Args: - - text(str):The text for the tool. - wnd(Any):The window of the tool. - _id(Any):The id of the tool - -Returns: - - None - - """ - pass - - - def AddTool(self,wnd:'Any',text:'str',_id:'Any',rect:'Tuple[Any, Any, Any, Any]'=None) -> 'None': - """ - Adds a tool to tooltip control. - -Args: - - wnd(Any):The window of the tool. - text(str):The text for the tool. - _id(Any):The id of the tool - rect(Tuple[Any, Any, Any, Any]):The default rectangle - -Returns: - - None - - """ - pass - - - def SetMaxTipWidth(self,width:'Any') -> 'Any': - """ - None - -Args: - - width(Any):The new width - -Returns: - - Any - - """ - pass - - -class PyCTreeCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'Any',rect:'Tuple[Any, Any, Any, Any]',PyCWnd:'Any',_id:'Any') -> 'None': - """ - Creates the actual window for the object. - -Args: - - style(Any):The window style - rect(Tuple[Any, Any, Any, Any]):The default rectangle - PyCWnd(Any):The parent window - _id(Any):The control IDMFC References - -Returns: - - None - - """ - pass - - - def GetCount(self,) -> 'Any': - """ - Retrieves the number of tree items associated with a tree view control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetIndent(self,) -> 'Any': - """ - Retrieves the offset (in pixels) of a tree view item from its parent. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetIndent(self,indent:'Any') -> 'None': - """ - Sets the offset (in pixels) of a tree view item from its parent. - -Args: - - indent(Any):The new indent. - -Returns: - - None - - """ - pass - - - def GetImageList(self,nImageList:'Any') -> 'Any': - """ - Retrieves the current image list. - -Args: - - nImageList(Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. - -Returns: - - Any - - """ - pass - - - def SetImageList(self,imageList:'Any',imageType:'Any') -> 'Any': - """ - Assigns an image list to a list view control. - -Args: - - imageList(Any):The Image List to use. - imageType(Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE - -Returns: - - Any - - """ - pass - - - def GetNextItem(self,item:'Any',code:'Any') -> 'Any': - """ - Retrieves the next item. - -Args: - - item(Any):The specified item - code(Any):Specifies the relationship of the item to fetch. - -Returns: - - Any - - """ - pass - - - def ItemHasChildren(self,item:'Any') -> 'Any': - """ - Returns nonzero if the specified item has child items. - -Args: - - item(Any):The specified item - -Returns: - - Any - - """ - pass - - - def GetChildItem(self,item:'Any') -> 'Any': - """ - Retrieves the first child item. - -Args: - - item(Any):The specified item - -Returns: - - Any - - """ - pass - - - def GetNextSiblingItem(self,item:'Any') -> 'Any': - """ - Retrieves the next sibling of the specified tree view item. - -Args: - - item(Any):The specified item - -Returns: - - Any - - """ - pass - - - def GetPrevSiblingItem(self,item:'Any') -> 'Any': - """ - Retrieves the previous sibling of the specified tree view item. - -Args: - - item(Any):The specified item - -Returns: - - Any - - """ - pass - - - def GetParentItem(self,item:'Any') -> 'Any': - """ - Retrieves the parent item of the specified tree view item. - -Args: - - item(Any):The specified item - -Returns: - - Any - - """ - pass - - - def GetFirstVisibleItem(self,) -> 'Any': - """ - Retrieves the first visible item of the tree view control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetNextVisibleItem(self,item:'Any') -> 'Any': - """ - Retrieves the next visible item of the specified tree view item. - -Args: - - item(Any):The specified item - -Returns: - - Any - - """ - pass - - - def GetSelectedItem(self,) -> 'Any': - """ - Retrieves the currently selected tree view item. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDropHilightItem(self,) -> 'Any': - """ - Retrieves the target of a drag-and-drop operation. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetRootItem(self,) -> 'Any': - """ - Retrieves the root of the specified tree view item. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetToolTips(self,) -> 'Any': - """ - Returns the tooltip control - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetItem(self,item:'Any',arg:'Any') -> 'Any': - """ - Retrieves the details of an items attributes. - -Args: - - item(Any):The item whose attributes are to be retrieved. - arg(Any):The requested attributes. - -Returns: - - Any - - """ - pass - - - def SetItem(self,item:'Any') -> 'Any': - """ - Sets some of all of an items attributes. - -Args: - - item(Any):A tuple describing the new item. - -Returns: - - Any - - """ - pass - - - def GetItemState(self,item:'Any',stateMask:'Any') -> 'Tuple[Any, Any]': - """ - Retrieves the state and mask of an item. - -Args: - - item(Any):The specified item - stateMask(Any):The mask for the result. - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def SetItemState(self,item:'Any',state:'Any',stateMask:'Any') -> 'None': - """ - Sets the state of item. - -Args: - - item(Any):The specified item - state(Any):The new state - stateMask(Any):The mask for the new state - -Returns: - - None - - """ - pass - - - def GetItemImage(self,item:'Any') -> 'Tuple[Any, Any]': - """ - Retrieves the index of an items images. - -Args: - - item(Any):The specified item - -Returns: - - Tuple[Any, Any] - - """ - pass - - - def SetItemImage(self,item:'Any',iImage:'Any',iSelectedImage:'Any') -> 'None': - """ - Sets the index of an items images. - -Args: - - item(Any):The specified item - iImage(Any):The offset of the image. - iSelectedImage(Any):The offset of the selected image. - -Returns: - - None - - """ - pass - - - def SetItemText(self,item:'Any',text:'str') -> 'Any': - """ - Changes the text of a list view item or subitem. - -Args: - - item(Any):The item whose text is to be retrieved. - text(str):String that contains the new item text. - -Returns: - - Any - - """ - pass - - - def GetItemText(self,item:'Any') -> 'Any': - """ - Retrieves the text of a list view item or subitem. - -Args: - - item(Any):The item whose text is to be retrieved. - -Returns: - - Any - - """ - pass - - - def GetItemData(self,item:'Any') -> 'Any': - """ - Retrieves the application-specific value associated with an item. - -Args: - - item(Any):The index of the item whose data is to be retrieved. - -Returns: - - Any - - """ - pass - - - def SetItemData(self,item:'Any',Data:'Any') -> 'Any': - """ - Sets the item's application-specific value. - -Args: - - item(Any):The item whose Data is to be set. - Data(Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. - -Returns: - - Any - - """ - pass - - - def GetItemRect(self,item:'Any',bTextOnly:'Any') -> 'Tuple[Any, Any, Any, Any]': - """ - Retrieves the bounding rectangle of a tree view item. - -Args: - - item(Any):The item whose Data is to be set. - bTextOnly(Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the tree view control. - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def GetEditControl(self,) -> 'Any': - """ - Retrieves the handle of the edit control used to edit the specified - -tree view item. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetVisibleCount(self,) -> 'Any': - """ - Retrieves the number of visible tree items associated with a tree view - -control. - -Args: - - - -Returns: - - Any - - """ - pass - - - def InsertItem(self,hParent:'Any',hInsertAfter:'Any',item:'Any',mask:'Any',text:'Any',image:'Any',selectedImage:'Any',state:'Any',stateMask:'Any',lParam:'Any',parent:'Any',parent1:'Any',text1:'Any',image1:'Any',selectedImage1:'Any',parent2:'Any',insertAfter:'Any',text2:'Any',parent3:'Any',parent4:'Any') -> 'Any': - """ - Inserts an item into the list. - -Args: - - hParent(Any):The parent item. If commctrl.TVI_ROOT or 0, it is added to the root. - hInsertAfter(Any):The item to insert after. Can be an item or TVI_FIRST, TVI_LAST or TVI_SORT - item(Any):A tuple describing the new item.Alternative Parameters - mask(Any):Integer specifying which attributes to set - text(Any):The text of the item. - image(Any):The index of the image to use. - selectedImage(Any):The index of the items selected image. - state(Any):The initial state of the item. - stateMask(Any):Specifies which bits of the state are valid. - lParam(Any):A user defined object for the item. - parent(Any):The parent of the item. - parent1(Any):The parent of the item.Alternative Parameters - text1(Any):The text for the item. - image1(Any):The index of the image to use. - selectedImage1(Any):The index of the items selected image. - parent2(Any):The parent of the item. - insertAfter(Any):The item to insert the new item after, or TVI_FIRST, TVI_LAST or TVI_SORTAlternative Parameters - text2(Any):The text for the item. - parent3(Any):The parent of the item. - parent4(Any):The parent of the item. - -Returns: - - Any - - """ - pass - - - def DeleteItem(self,item:'Any') -> 'None': - """ - Deletes the specified item. - -Args: - - item(Any):The specified item - -Returns: - - None - - """ - pass - - - def DeleteAllItems(self,) -> 'Any': - """ - Deletes all items in the control - -Args: - - - -Returns: - - Any - - """ - pass - - - def Expand(self,item:'Any',code:'Any') -> 'None': - """ - Expands, or collapses, the child items of the specified tree view item. - -Args: - - item(Any):The specified item - code(Any):The action to take - -Returns: - - None - - """ - pass - - - def Select(self,item:'Any',code:'Any') -> 'None': - """ - Selects, scrolls into view, or redraws a specified tree view item. - -Args: - - item(Any):The specified item - code(Any):The action to take - -Returns: - - None - - """ - pass - - - def SelectItem(self,item:'Any') -> 'None': - """ - Selects a specified tree view item. - -Args: - - item(Any):The specified item - -Returns: - - None - - """ - pass - - - def SelectDropTarget(self,item:'Any') -> 'None': - """ - Redraws the tree item as the target of a drag-and-drop operation. - -Args: - - item(Any):The specified item - -Returns: - - None - - """ - pass - - - def SelectSetFirstVisible(self,item:'Any') -> 'None': - """ - Selects a specified tree view item as the first visible item. - -Args: - - item(Any):The specified item - -Returns: - - None - - """ - pass - - - def EditLabel(self,item:'Any') -> 'Any': - """ - Edits a specified tree view item in-place. - -Args: - - item(Any):The item to edit. - -Returns: - - Any - - """ - pass - - - def CreateDragImage(self,item:'Any') -> 'Any': - """ - Creates a dragging bitmap for the specified tree view item. - -Args: - - item(Any):The item to edit. - -Returns: - - Any - - """ - pass - - - def SortChildren(self,item:'Any') -> 'None': - """ - Sorts the children of a given parent item. - -Args: - - item(Any):The specified parent item - -Returns: - - None - - """ - pass - - - def EnsureVisible(self,item:'Any') -> 'Any': - """ - Ensures that a tree view item is visible in its tree view control. - -Args: - - item(Any):The item to edit. - -Returns: - - Any - - """ - pass - - - def HitTest(self,arg:'Any') -> 'Tuple[Any, Any]': - """ - Determines which tree view item, if any, is at a specified position. - -Args: - - arg(Any):The point to test.Return ValueThe result is a tuple of (flags, hItem). flags may be a combination of the following values:ValueDescriptioncommctrl.TVHT_ABOVEAbove the client area.commctrl.TVHT_BELOWBelow the client area.commctrl.TVHT_NOWHEREIn the client area, but below the last item.commctrl.TVHT_ONITEMOn the bitmap or label associated with an item.commctrl.TVHT_ONITEMBUTTONOn the button associated with an item.commctrl.TVHT_ONITEMICONOn the bitmap associated with an item.commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item.commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item.commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item.commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state.commctrl.TVHT_TOLEFTTo the left of the client area.commctrl.TVHT_TORIGHTTo the right of the client area. - -Returns: - - Tuple[Any, Any]:The point to test.Return ValueThe result is a tuple of (flags, hItem). - -flags may be a combination of the following values: - - - -Value - - -Description - - - -commctrl.TVHT_ABOVEAbove the client area. -commctrl.TVHT_BELOWBelow the client area. -commctrl.TVHT_NOWHEREIn the client area, but below the last item. -commctrl.TVHT_ONITEMOn the bitmap or label associated with an item. -commctrl.TVHT_ONITEMBUTTONOn the button associated with an item. -commctrl.TVHT_ONITEMICONOn the bitmap associated with an item. -commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item. -commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item. -commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item. -commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state. -commctrl.TVHT_TOLEFTTo the left of the client area. -commctrl.TVHT_TORIGHTTo the right of the client area. - - - """ - pass - - -class PyCTreeView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def PreCreateWindow(self,createStruct:'Any') -> 'Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(Any):A tuple representing a CREATESTRUCT structure. - -Returns: - - Any - - """ - pass - - - def GetTreeCtrl(self,) -> 'Any': - """ - Returns the underlying tree control object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnCommand(self,wparam:'Any',lparam:'Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(Any): - lparam(Any):See Also - -Returns: - - None - - """ - pass - - -class PyCView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,parent:'Any',arg:'Any',arg1:'Any',arg2:'Tuple[Any, Any, Any, Any]') -> 'None': - """ - Creates the window for a view. - -Args: - - parent(Any):The parent window (usually a frame) - arg(Any):The child ID for the view - arg1(Any):The style for the view - arg2(Tuple[Any, Any, Any, Any]):The default position of the window. - -Returns: - - None - - """ - pass - - - def GetDocument(self,) -> 'Any': - """ - Returns the document for a view. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnActivateView(self,activate:'Any',activateView:'Any',DeactivateView:'Any') -> 'Any': - """ - Calls the underlying MFC OnActivateView method. - -Args: - - activate(Any):Indicates whether the view is being activated or deactivated. - activateView(Any):The view object that is being activated. - DeactivateView(Any):The view object that is being deactivated.See Also - -Returns: - - Any - - """ - pass - - - def OnInitialUpdate(self,) -> 'None': - """ - Calls the underlying MFC OnInitialUpdate method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnMouseActivate(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': - """ - Calls the base MFC OnMouseActivate function. - -Args: - - wnd(Any): - hittest(Any): - message(Any):See Also - -Returns: - - Any - - """ - pass - - - def PreCreateWindow(self,createStruct:'Any') -> 'Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - Any - - """ - pass - - - def OnFilePrint(self,) -> 'None': - """ - Calls the underlying MFC OnFilePrint method. - -Args: - - - -Returns: - - None - - """ - pass - - - def DoPreparePrinting(self,) -> 'Any': - """ - Invoke the Print dialog box and create a printer device context. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnBeginPrinting(self,) -> 'None': - """ - Calls the underlying MFC OnBeginPrinting method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnEndPrinting(self,) -> 'None': - """ - Calls the underlying MFC OnEndPrinting method. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCWinApp(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddDocTemplate(self,template:'Any') -> 'None': - """ - Adds a template to the application list. - -Args: - - template(Any):The template to be added. - -Returns: - - None - - """ - pass - - - def FindOpenDocument(self,fileName:'str') -> 'Any': - """ - Returns an existing document with the specified file name. - -Args: - - fileName(str):The fully qualified filename to search for. - -Returns: - - Any - - """ - pass - - - def GetDocTemplateList(self,) -> 'List[Any]': - """ - Returns a list of all document templates. - -Args: - - - -Returns: - - List[Any] - - """ - pass - - - def InitDlgInstance(self,dialog:'Any') -> 'None': - """ - Calls critical InitInstance processing for a dialog based application. - -Args: - - dialog(Any):The dialog object to be used as the main window for the application. - -Returns: - - None - - """ - pass - - - def LoadCursor(self,cursorId:'PyResourceId') -> 'Any': - """ - Loads a cursor. - -Args: - - cursorId(PyResourceId):The resource id or name of the cursor to load. - -Returns: - - Any - - """ - pass - - - def LoadStandardCursor(self,cursorId:'PyResourceId') -> 'Any': - """ - Loads a standard cursor. - -Args: - - cursorId(PyResourceId):The resource ID or name of the cursor to load. - -Returns: - - Any - - """ - pass - - - def LoadOEMCursor(self,cursorId:'Any') -> 'Any': - """ - Loads an OEM cursor. - -Args: - - cursorId(Any):The ID of the cursor to load. - -Returns: - - Any - - """ - pass - - - def LoadIcon(self,idResource:'Any') -> 'Any': - """ - Loads an icon resource. - -Args: - - idResource(Any):The ID of the icon to load. - -Returns: - - Any - - """ - pass - - - def LoadStandardIcon(self,resourceName:'PyResourceId') -> 'Any': - """ - Loads an icon resource. - -Args: - - resourceName(PyResourceId):The resource name or id of the standard icon to load. - -Returns: - - Any - - """ - pass - - - def OpenDocumentFile(self,fileName:'str') -> 'None': - """ - Opens a document file by name. - -Args: - - fileName(str):The name of the document to open. - -Returns: - - None - - """ - pass - - - def OnFileNew(self,) -> 'None': - """ - Calls the underlying OnFileNew MFC method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnFileOpen(self,) -> 'None': - """ - Calls the underlying OnFileOpen MFC method. - -Args: - - - -Returns: - - None - - """ - pass - - - def RemoveDocTemplate(self,template:'Any') -> 'None': - """ - Removes a template to the application list. - -Args: - - template(Any):The template to be removed. Must have previously been added by PyCWinApp::AddDocTemplate.CommentsNote that MFC does not provide an equivilent function. - -Returns: - - None - - """ - pass - - - def Run(self,) -> 'Any': - """ - Starts the message pump. Advanced users only - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsInproc(self,) -> 'Any': - """ - Returns a flag to indicate if the created CWinApp was in the DLL, or an external - -EXE. - -Args: - - - -Returns: - - Any - - """ - pass - - -class PyCWinThread(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateThread(self,) -> 'None': - """ - Creates the actual thread behind the thread object. - -Args: - - - -Returns: - - None - - """ - pass - - - def PumpIdle(self,) -> 'None': - """ - Pumps all idle messages. - -Args: - - - -Returns: - - None - - """ - pass - - - def PumpMessages(self,) -> 'None': - """ - Pumps all messages to the application until a WM_QUIT message is received. - -Args: - - - -Returns: - - None - - """ - pass - - - def Run(self,) -> 'Any': - """ - Starts the message pump. Advanced users only - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetMainFrame(self,mainFrame:'Any') -> 'None': - """ - Sets the threads main frame - -Args: - - mainFrame(Any):The applications main frame.CommentsYou can pass None to this function to reset the main frame. Should I free this? I dont think so! - -Returns: - - None - - """ - pass - - - def SetThreadPriority(self,priority:'Any') -> 'None': - """ - Sets the threads priority. Returns TRUE if successful. - -Args: - - priority(Any):The threads priority. - -Returns: - - None - - """ - pass - - -class PyCWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ActivateFrame(self,cmdShow:'Any') -> 'None': - """ - Searches upwards for a parent window which has - -a frame, and activates it. - -Args: - - cmdShow(Any):The param passed to CFrameWnd::ShowWindow. See also PyCWnd::ShowWindow.MFC References - -Returns: - - None - - """ - pass - - - def BringWindowToTop(self,) -> 'None': - """ - Brings the window to the top of a stack of overlapping windows. - -Args: - - - -Returns: - - None - - """ - pass - - - def BeginPaint(self,) -> 'Tuple[Any, Any]': - """ - Prepares a window for painting - -Args: - - - -Returns: - - Tuple[Any, Any]:PyCWnd.BeginPaint -PyCDC, PAINTSTRUCT - - = BeginPaint()Prepares a window for painting -Return ValueYou must pass the PAINTSTRUCT param to the PyCWnd::EndPaint method. - - - """ - pass - - - def CalcWindowRect(self,rect:'Tuple[Any, Any, Any, Any]',nAdjustType:'Any') -> 'Tuple[Any, Any, Any, Any]': - """ - Computes the size of the window rectangle based on the desired client - -rectangle size. The resulting size can then be used as the initial - -size for the window object. - -Args: - - rect(Tuple[Any, Any, Any, Any]):The size to calculate from - nAdjustType(Any):An enumerated type used for in-place editing. It can have the following values: CWnd::adjustBorder = 0, which means that scrollbar sizes are ignored in calculation; and CWnd::adjustOutside = 1, which means that they are added into the final measurements of the rectangle.MFC References - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def CenterWindow(self,altwin:'Any'=None) -> 'None': - """ - Centers a window relative to its parent. - -Args: - - altwin(Any):alternate window relative to which it will be centered (other than the parent window).MFC References - -Returns: - - None - - """ - pass - - - def CheckRadioButton(self,idFirst:'Any',idLast:'Any',idCheck:'Any') -> 'None': - """ - Selects the specified radio button, and clears - -all others in the group. - -Args: - - idFirst(Any):The identifier of the first radio button in the group. - idLast(Any):The identifier of the last radio button in the group. - idCheck(Any):The identifier of the radio button to be checked.MFC References - -Returns: - - None - - """ - pass - - - def ChildWindowFromPoint(self,x:'Any',y:'Any',flag:'Any'=0) -> 'Any': - """ - Returns the child window that contains the point - -Args: - - x(Any):x coordinate of point - y(Any):y coordinate of point - flag(Any):Specifies which child windows to skipMFC References - -Returns: - - Any - - """ - pass - - - def ClientToScreen(self,point:'Tuple[Any, Any]',rect:'Any') -> 'Tuple[Any, Any, Any, Any, Any]': - """ - Converts the client coordinates of a given point on the display - -to screen coordinates. - -Args: - - point(Tuple[Any, Any]):The client coordinates.Alternative Parameters - rect(Any):The client coordinates.CommentsThe new screen coordinates are relative to the upper-left corner of the system display. This function assumes that the given pointis in client coordinates.MFC References - -Returns: - - Tuple[Any, Any, Any, Any, Any] - - """ - pass - - - def CreateWindow(self,classId:'str',windowName:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any',context:'Any'=None) -> 'None': - """ - Creates the actual window - -Args: - - classId(str):The class ID for the window, or None - windowName(str):The title for the window, or None - style(Any):The style for the window. - rect(Tuple[Any, Any, Any, Any]):The size and position of the window. - parent(Any):The parent window of the new window.. - _id(Any):The control's ID. - context(Any):A CreateContext object.MFC References - -Returns: - - None - - """ - pass - - - def CreateWindowEx(self,styleEx:'Any',classId:'str',windowName:'str',style:'Any',rect:'Tuple[Any, Any, Any, Any]',parent:'Any',_id:'Any',createStruct1:'Any',createStruct:'Any'=None) -> 'None': - """ - Creates the actual window using extended capabilities. - -Args: - - styleEx(Any):The extended style of the window being created. - classId(str):The class ID for the window. May not be None. - windowName(str):The title for the window, or None - style(Any):The style for the window. - rect(Tuple[Any, Any, Any, Any]):The size and position of the window. - parent(Any):The parent window of the new window.. - _id(Any):The control's ID. - createStruct1(Any):A tuple representing a CREATESTRUCT structure.MFC References - createStruct(Any):A CreateStruct object (ie, a tuple) - -Returns: - - None - - """ - pass - - - def DefWindowProc(self,message:'Any',idLast:'Any',idCheck:'Any') -> 'Any': - """ - Calls the default message handler. - -Args: - - message(Any):The Windows message. - idLast(Any):The lParam for the message. - idCheck(Any):The wParam for the message.MFC References - -Returns: - - Any - - """ - pass - - - def DestroyWindow(self,) -> 'None': - """ - Destroy the window attached to the object. - -Args: - - - -Returns: - - None - - """ - pass - - - def DlgDirList(self,defPath:'str',idListbox:'Any',idStaticPath:'Any',fileType:'Any') -> 'None': - """ - Fill a list box with a file or directory listing. - -Args: - - defPath(str):The file spec to fill the list box with - idListbox(Any):The Id of the listbox control to fill. - idStaticPath(Any):The Id of the static control used to display the current drive and directory. If idStaticPath is 0, it is assumed that no such control exists. - fileType(Any):Specifies the attributes of the files to be displayed. It can be any combination of DDL_READWRITE, DDL_READONLY, DDL_HIDDEN, DDL_SYSTEM, DDL_DIRECTORY, DDL_ARCHIVE, DDL_POSTMSGS, DDL_DRIVES or DDL_EXCLUSIVEMFC References - -Returns: - - None - - """ - pass - - - def DlgDirListComboBox(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def DlgDirSelect(self,idListbox:'Any') -> 'str': - """ - None - -Args: - - idListbox(Any):The Id of the listbox.MFC References - -Returns: - - str - - """ - pass - - - def DlgDirSelectComboBox(self,idListbox:'Any') -> 'str': - """ - None - -Args: - - idListbox(Any):The Id of the combobox.MFC References - -Returns: - - str - - """ - pass - - - def DragAcceptFiles(self,bAccept:'Any'=1) -> 'None': - """ - Indicates that the window and children supports files dropped from file manager - -Args: - - bAccept(Any):A flag indicating if files are accepted.MFC References - -Returns: - - None - - """ - pass - - - def DrawMenuBar(self,) -> 'None': - """ - Redraws the menu bar. Can be called if the menu changes. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnableWindow(self,bEnable:'Any'=1) -> 'Any': - """ - Enables or disables the window. Typically used for dialog controls. - -Args: - - bEnable(Any):A flag indicating if the window is to be enabled or disabled.MFC References - -Returns: - - Any:CWnd::EnableWindow -Return ValueReturns the state before the EnableWindow member function was called - - - """ - pass - - - def EndModalLoop(self,result:'Any') -> 'None': - """ - Ends a modal loop. - -Args: - - result(Any):The result as returned to RunModalLoop - -Returns: - - None - - """ - pass - - - def EndPaint(self,paintStruct:'Any') -> 'None': - """ - Ends painting - -Args: - - paintStruct(Any):The object returned from PyCWnd::BeginPaint - -Returns: - - None - - """ - pass - - - def GetCheckedRadioButton(self,idFirst:'Any',idLast:'Any') -> 'Any': - """ - Returns the ID of the checked radio button, or 0 if none is selected. - -Args: - - idFirst(Any):The Id of the first radio button in the group. - idLast(Any):The Id of the last radio button in the group.MFC References - -Returns: - - Any - - """ - pass - - - def GetClientRect(self,) -> 'Tuple[Any, Any, Any, Any]': - """ - Returns the client coordinates of the window. left and top - -will be zero. - -Args: - - - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def GetDC(self,) -> 'Any': - """ - Gets the windows current DC object. - -Args: - - - -Returns: - - Any:PyCWnd.GetDC -PyCDC = GetDC()Gets the windows current DC object. -Return ValueThe result is a PyCDC, or a win32ui.error exception is raised. - - - """ - pass - - - def GetDCEx(self,) -> 'Any': - """ - Gets the windows current DC object with extended caps. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDlgCtrlID(self,) -> 'Any': - """ - Returns the ID of this child window. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetDlgItem(self,idControl:'Any') -> 'Any': - """ - None - -Args: - - idControl(Any):The Id of the control to be retrieved.MFC References - -Returns: - - Any:CWnd::GetDlgItem -Return ValueThe result is a PyCWnd (or derived) object, or a win32ui.error exception is raised. - - - """ - pass - - - def GetDlgItemInt(self,idControl:'Any',bUnsigned:'Any'=1) -> 'Any': - """ - Returns the integer value of a child window or control with the specified ID. - -Args: - - idControl(Any):The Id of the control to be retrieved. - bUnsigned(Any):Should the function check for a minus signMFC References - -Returns: - - Any:CWnd::GetDlgItemInt -Return ValueIf the value can not be converted, a ValueError is raised. - - - """ - pass - - - def GetDlgItemText(self,idControl:'Any') -> 'str': - """ - Returns the text of child window or control with the specified ID. - -Args: - - idControl(Any):The Id of the control to be retrieved.MFC References - -Returns: - - str - - """ - pass - - - def GetLastActivePopup(self,) -> 'Any': - """ - Returns the last active popup Window, or the Window itself. - -Args: - - - -Returns: - - Any:CWnd::GetLastActivePopup -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetMenu(self,) -> 'Any': - """ - Returns the menu object for the window's menu. - -Args: - - - -Returns: - - Any:CWnd::GetMenu -Return ValueThe result is a PyMenu - - object, or an exception is thrown. - - - """ - pass - - - def GetParent(self,) -> 'Any': - """ - Returns the window's parent. - -Args: - - - -Returns: - - Any:CWnd::GetParent -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetParentFrame(self,) -> 'Any': - """ - Returns the window's frame. - -Args: - - - -Returns: - - Any:CWnd::GetParentFrame -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetSafeHwnd(self,) -> 'Any': - """ - Returns the HWnd of this window. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetScrollInfo(self,nBar:'Any',mask:'Any') -> 'Any': - """ - Returns information about a scroll bar - -Args: - - nBar(Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ - mask(Any):The mask for attributes to retrieve. - -Returns: - - Any - - """ - pass - - - def GetScrollPos(self,nBar:'Any') -> 'Any': - """ - Retrieves the current position of the scroll box of a scroll bar. - -Args: - - nBar(Any):The scroll bar to examine. Can be one of win32con.SB_VERT or win32con.SB_HORZ - -Returns: - - Any - - """ - pass - - - def GetStyle(self,) -> 'Any': - """ - Retrieves the window style - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetExStyle(self,) -> 'Any': - """ - Retrieves the window's extended style - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetSystemMenu(self,) -> 'Any': - """ - Returns the menu object for the window's system menu. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetTopLevelFrame(self,) -> 'Any': - """ - Returns the top-level frame of the window. - -Args: - - - -Returns: - - Any:CWnd::GetTopLevelFrame -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetTopLevelOwner(self,) -> 'Any': - """ - Returns the top-level owner of the window. - -Args: - - - -Returns: - - Any:CWnd::GetTopLevelOwner -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetTopLevelParent(self,) -> 'Any': - """ - Returns the top-level parent of the window. - -Args: - - - -Returns: - - Any:CWnd::GetTopLevelParent -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetTopWindow(self,) -> 'Any': - """ - Identifies the top-level child window in a linked list of child windows. - -Args: - - - -Returns: - - Any:CWnd::GetTopWindow -Return ValueIf no child windows exist, the value is None. - - - """ - pass - - - def GetWindow(self,_type:'Any') -> 'Any': - """ - Returns a window, with the specified relationship to this window. - -Args: - - _type(Any):Specifies the relationship between the current and the returned window. It can take one of the following values: GW_CHILD, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV or GW_OWNERMFC References - -Returns: - - Any:CWnd::GetWindow -Return ValueThe result is a PyCWnd or None if no Window can be found. - - - """ - pass - - - def GetWindowDC(self,) -> 'Any': - """ - Gets the windows current DC object. - -Args: - - - -Returns: - - Any - - """ - pass - - - def GetWindowPlacement(self,) -> 'Any': - """ - Returns placement information about the current window. - -Args: - - - -Returns: - - Any:CWnd::GetWindowPlacement -Return ValueThe result is a tuple of - -(flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) - - - -Item - - -Description - - - -flagsOne of the WPF_* constants -showCmdCurrent state - one of the SW_* constants. -minposSpecifies the coordinates of the window's upper-left corner when the window is minimized. -maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. -normalposSpecifies the window's coordinates when the window is in the restored position. - - - """ - pass - - - def GetWindowRect(self,) -> 'Tuple[Any, Any, Any, Any]': - """ - Returns the screen coordinates of the windows upper left - -corner - -Args: - - - -Returns: - - Tuple[Any, Any, Any, Any] - - """ - pass - - - def GetWindowText(self,) -> 'str': - """ - Returns the windows text. - -Args: - - - -Returns: - - str - - """ - pass - - - def HideCaret(self,) -> 'None': - """ - Hides the caret - -Args: - - - -Returns: - - None - - """ - pass - - - def HookAllKeyStrokes(self,obHandler:'Any') -> 'None': - """ - Hook a key stroke handler for all key strokes. - -Args: - - obHandler(Any):The handler for the keystrokes. This must be a callable object.CommentsThe handler object passed will be called as the application receives WM_CHAR messages. The handler will be called with 2 arguments The handler object (as per all hook functions). The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise it will be consumed. Note: This handler will prevent any PyCWnd::HookKeyStroke hooks from being called. - -Returns: - - None - - """ - pass - - - def HookKeyStroke(self,obHandler:'Any',ch:'Any') -> 'Any': - """ - Hook a key stroke handler - -Args: - - obHandler(Any):The handler of the keystroke. This must be a callable object. - ch(Any):The ID for the keystroke to be handled. This may be an ascii code, or a virtual key code.CommentsThe handler object passed will be called as the application receives WM_CHAR message for the specified character code. The handler will be called with 2 arguments The handler object (as per all hook functions) The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise the keystroke will be consumed. Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place.Return ValueThe return value is the previous handler, or None. - -Returns: - - Any:The ID for the keystroke to be handled. - -This may be an ascii code, or a virtual key code.Comments - -The handler object passed will be called as the application receives WM_CHAR message for the specified - -character code. The handler will be called with 2 arguments - -The handler object (as per all hook functions) - -The keystroke being handled. - -If the handler returns TRUE, then the keystroke will be passed on to the - -default handler, otherwise the keystroke will be consumed. - -Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place. -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def HookMessage(self,obHandler:'Any',message:'Any') -> 'Any': - """ - Hook a message notification handler - -Args: - - obHandler(Any):The handler for the message notification. This must be a callable object. - message(Any):The ID of the message to be handled.CommentsThe handler object passed will be called as the application receives messages with the specified ID. Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. The handler will be called with 2 arguments The handler object (as per all hook functions). A tuple representing the message. The message tuple is in the following format:Items[0] int : hwndThe hwnd of the window.[1] int : messageThe message.[2] int : wParamThe wParam sent with the message.[3] int : lParamThe lParam sent with the message.[4] int : timeThe time the message was posted.[5] int, int : pointThe point where the mouse was when the message was posted.Return ValueThe return value is the previous handler, or None. - -Returns: - - Any:The ID of the message to be handled.Comments - -The handler object passed will be called as the application receives messages with the specified ID. - -Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. - -The handler will be called with 2 arguments - -The handler object (as per all hook functions). - -A tuple representing the message. - -The message tuple is in the following format: -Items[0] int : hwnd -The hwnd of the window. -[1] int : message -The message. -[2] int : wParam -The wParam sent with the message. -[3] int : lParam -The lParam sent with the message. -[4] int : time -The time the message was posted. -[5] int, int : point -The point where the mouse was when the message was posted. -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def InvalidateRect(self,arg:'Tuple[Any, Any, Any, Any]',bErase:'Any'=1) -> 'None': - """ - Invalidates an area of a window. - -Args: - - arg(Tuple[Any, Any, Any, Any]):Rectangle to be updated. If default param is used, the entire window is invalidated. - bErase(Any):Specifies whether the background within the update region is to be erased.MFC References - -Returns: - - None - - """ - pass - - - def InvalidateRgn(self,region:'Any',bErase:'Any'=1) -> 'None': - """ - Invalidates a region of the window - -Args: - - region(Any):The region to erase. - bErase(Any):Indicates if the region should be erased. - -Returns: - - None - - """ - pass - - - def IsChild(self,obWnd:'Any') -> 'Any': - """ - Determines if a given window is a child of this window. - -Args: - - obWnd(Any):The window to be checkedMFC References - -Returns: - - Any - - """ - pass - - - def IsDlgButtonChecked(self,idCtl:'Any') -> 'Any': - """ - Determines if a dialog button is checked. - -Args: - - idCtl(Any):The ID of the button to check.MFC References - -Returns: - - Any - - """ - pass - - - def IsIconic(self,) -> 'Any': - """ - Determines if the window is currently displayed as an icon. - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsZoomed(self,) -> 'Any': - """ - Determines if the window is currently maximised. - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsWindow(self,) -> 'Any': - """ - determines whether the specified window handle identifies an existing window - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsWindowVisible(self,) -> 'Any': - """ - Determines if the window is currently visible. - -Args: - - - -Returns: - - Any - - """ - pass - - - def KillTimer(self,) -> 'Any': - """ - Kills a system timer - -Args: - - - -Returns: - - Any - - """ - pass - - - def LockWindowUpdate(self,) -> 'None': - """ - Disables drawing in the given window - -Args: - - - -Returns: - - None - - """ - pass - - - def MapWindowPoints(self,wnd:'Any',points:'List[Any]') -> 'None': - """ - Converts (maps) a set of points from the coordinate space of a window to the - -coordinate space of another window. - -Args: - - wnd(Any): - points(List[Any]):The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another window. - -Returns: - - None:The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another - -window. - - - """ - pass - - - def MouseCaptured(self,) -> 'Any': - """ - Returns 1 if the window has the mouse capture, else 0 - -Args: - - - -Returns: - - Any - - """ - pass - - - def MessageBox(self,message:'str',arg:'Any',title:'Union[Any, str]'=None) -> 'None': - """ - Display a message box. - -Args: - - message(str):The message to be displayed in the message box. - arg(Any):The style of the message box.MFC References - title(Union[Any, str]):The title for the message box. If None, the applications title will be used. - -Returns: - - None:CWnd::MessageBox -Return ValueAn integer identifying the button pressed to dismiss the dialog. - - - """ - pass - - - def ModifyStyle(self,remove:'Any',add:'Any',flags:'Any'=0) -> 'Any': - """ - Modifies the style of a window. - -Args: - - remove(Any):Specifies window styles to be removed during style modification. - add(Any):Specifies window styles to be added during style modification. - flags(Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyle calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleExMFC References - -Returns: - - Any:CWnd::ModifyStyle -Return ValueThe result is true if the style was changed, or false if the style - -is already the same as requested and no change was made. - - - """ - pass - - - def ModifyStyleEx(self,remove:'Any',add:'Any',flags:'Any'=0) -> 'Any': - """ - Modifies the extended style of a window. - -Args: - - remove(Any):Specifies extended window styles to be removed during style modification. - add(Any):Specifies extended extended window styles to be added during style modification. - flags(Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyleEx calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleMFC References - -Returns: - - Any:CWnd::ModifyStyleEx -Return ValueThe result is true if the style was changed, or false if the style - -is already the same as requested and no change was made. - - - """ - pass - - - def MoveWindow(self,rect:'Tuple[Any, Any, Any, Any]',bRepaint:'Any'=1) -> 'None': - """ - Move a window to a new location. - -Args: - - rect(Tuple[Any, Any, Any, Any]):The new location of the window, relative to the parent. - bRepaint(Any):Indicates if the window should be repainted after the move.MFC References - -Returns: - - None - - """ - pass - - - def OnClose(self,) -> 'Any': - """ - Calls the default MFC OnClose handler. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnCtlColor(self,dc:'Any',control:'Any',_type:'Any') -> 'Any': - """ - Calls the default MFC OnCtlColor handler. - -Args: - - dc(Any):The dc - control(Any):The control that want's it's color changed - _type(Any):Type of controlSee Also - -Returns: - - Any - - """ - pass - - - def OnEraseBkgnd(self,dc:'Any') -> 'Any': - """ - Calls the default MFC OnEraseBkgnd handler. - -Args: - - dc(Any):The dcSee Also - -Returns: - - Any - - """ - pass - - - def OnNcHitTest(self,arg:'Tuple[Any, Any]') -> 'Any': - """ - Calls the base MFC OnNcHitTest function. - -Args: - - arg(Tuple[Any, Any]):The pointSee Also - -Returns: - - Any - - """ - pass - - - def OnPaint(self,) -> 'Any': - """ - Calls the default MFC OnPaint handler. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnQueryDragIcon(self,) -> 'Any': - """ - Calls the default MFC OnQueryDragIcon handler. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnQueryNewPalette(self,) -> 'Any': - """ - Calls the underlying MFC OnQueryNewPalette method. - -Args: - - - -Returns: - - Any - - """ - pass - - - def OnSetCursor(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': - """ - Calls the base MFC OnSetCursor function. - -Args: - - wnd(Any): - hittest(Any): - message(Any):See Also - -Returns: - - Any - - """ - pass - - - def OnMouseActivate(self,wnd:'Any',hittest:'Any',message:'Any') -> 'Any': - """ - Calls the base MFC OnMouseActivate function. - -Args: - - wnd(Any): - hittest(Any): - message(Any):See Also - -Returns: - - Any - - """ - pass - - - def OnWndMsg(self,msg:'Any',wParam:'Any',lParam:'Any') -> 'Tuple[Any, Any]': - """ - Calls the default MFC Window Message handler. - -Args: - - msg(Any):The message - wParam(Any):The wParam for the message - lParam(Any):The lParam for the messageMFC References - -Returns: - - Tuple[Any, Any]:CWnd::OnWndMsg -Return ValueThe return value is a tuple of (int, int), being the - -return value from the MFC function call, and the value of the - -lResult param. Please see the MFC documentation for more details. - - - """ - pass - - - def PreCreateWindow(self,createStruct:'Any') -> 'Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - Any - - """ - pass - - - def PumpWaitingMessages(self,firstMsg:'Any',lastMsg:'Any') -> 'None': - """ - Pump messages associate with a window. - -Args: - - firstMsg(Any):First message ID to process - lastMsg(Any):First message ID to processMFC References - -Returns: - - None - - """ - pass - - - def RedrawWindow(self,_object:'Any',flags:'Any',rect:'Tuple[Any, Any, Any, Any]'=None) -> 'None': - """ - Updates the specified rectangle or region in the given window's client area. - -Args: - - _object(Any):A region - flags(Any):MFC References - rect(Tuple[Any, Any, Any, Any]):A rect, or None - -Returns: - - None - - """ - pass - - - def ReleaseCapture(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def ReleaseDC(self,dc:'Any') -> 'None': - """ - Releases a device context, freeing it for use by other applications. - -Args: - - dc(Any):The DC to be released. - -Returns: - - None - - """ - pass - - - def RepositionBars(self,idFirst:'Any',idLast:'Any',idLeftOver:'Any') -> 'None': - """ - Repositions the windows control bars.( UINT nIDFirst, UINT nIDLast, UINT - -nIDLeftOver, UINT nFlag = CWnd::reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = - -TRUE ); - -Args: - - idFirst(Any):The ID of the first control to reposition. - idLast(Any):The ID of the last control to reposition. - idLeftOver(Any): - -Returns: - - None - - """ - pass - - - def RunModalLoop(self,flags:'Any') -> 'Any': - """ - Begins a modal loop for the window. - -Args: - - flags(Any): - -Returns: - - Any - - """ - pass - - - def PostMessage(self,idMessage:'Any',wParam:'Any'=0,lParam:'Any'=0) -> 'None': - """ - Post a message to the window. - -Args: - - idMessage(Any):The ID of the message to post. - wParam(Any):The wParam for the message - lParam(Any):The lParam for the messageMFC References - -Returns: - - None - - """ - pass - - - def SendMessageToDescendants(self,idMessage:'Any',wParam:'Any'=0,lParam:'Any'=0,bDeep:'Any'=1) -> 'None': - """ - Send a message to all descendant windows. - -Args: - - idMessage(Any):The ID of the message to send. - wParam(Any):The wParam for the message - lParam(Any):The lParam for the message - bDeep(Any):Indicates if the message should be recursively sent to all childrenMFC References - -Returns: - - None - - """ - pass - - - def SendMessage(self,idMessage:'Any',idMessage1:'Any',ob:'Any',wParam:'Any'=0,lParam:'Any'=0) -> 'None': - """ - Send a message to the window. - -Args: - - idMessage(Any):The ID of the message to send. - idMessage1(Any):The ID of the message to send. - ob(Any):A buffer whose size is passed in wParam, and address is passed in lParamMFC References - wParam(Any):The wParam for the message - lParam(Any):The lParam for the messageAlternative Parameters - -Returns: - - None - - """ - pass - - - def SetActiveWindow(self,) -> 'Any': - """ - Sets the window active. Returns the previously active window, or None. - -Args: - - - -Returns: - - Any:PyCWnd.SetActiveWindow -PyCWnd = SetActiveWindow()Sets the window active. Returns the previously active window, or None. -Return ValueThe result is the previous window with focus, or None. - - - """ - pass - - - def SetForegroundWindow(self,) -> 'None': - """ - Puts the window into the foreground and activates the window. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetWindowPos(self,hWndInsertAfter:'Any',position:'Tuple[Any, Any, Any, Any]',flags:'Any') -> 'None': - """ - Sets the windows position information - -Args: - - hWndInsertAfter(Any):A hwnd, else one of the win32con.HWND_* constants. - position(Tuple[Any, Any, Any, Any]):The new position of the window. - flags(Any):Window positioning flags.MFC References - -Returns: - - None - - """ - pass - - - def ScreenToClient(self,rect:'Tuple[Any, Any, Any, Any, Any]',pnt:'Any') -> 'Tuple[Any, Any, Any, Any, Any]': - """ - Converts the screen coordinates of a given point - -or rectangle on the display to client coordinates. - -Args: - - rect(Tuple[Any, Any, Any, Any, Any]):The coordinates to convert.Alternative Parameters - pnt(Any):The coordinates to convert.MFC References - -Returns: - - Tuple[Any, Any, Any, Any, Any]:CWnd::ScreenToClient -Return ValueThe result is the same size as the input argument. - - - """ - pass - - - def SetCapture(self,) -> 'None': - """ - Causes all subsequent mouse input to be sent to the window object regardless of the - -position of the cursor. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDlgItemText(self,idControl:'Any',text:'str') -> 'None': - """ - Sets the text for the child window or control with the specified ID. - -Args: - - idControl(Any):The Id of the control - text(str):The new textMFC References - -Returns: - - None - - """ - pass - - - def SetFocus(self,) -> 'None': - """ - Claims the input focus. The object that previously had the focus loses it. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFont(self,font:'Any',bRedraw:'Any'=1) -> 'None': - """ - Sets the window's current font to the specified font. - -Args: - - font(Any):The new font to use. - bRedraw(Any):If TRUE, redraw the window. - -Returns: - - None - - """ - pass - - - def SetIcon(self,) -> 'Any': - """ - Calls the underlying MFC SetIcon method. - -Args: - - - -Returns: - - Any - - """ - pass - - - def SetMenu(self,menuObj:'Any') -> 'None': - """ - Sets the menu for a window. - -Args: - - menuObj(Any):The menu object to set, or None to remove the window. - -Returns: - - None - - """ - pass - - - def SetRedraw(self,bState:'Any'=1) -> 'None': - """ - Allows changes to be redrawn or to prevent changes from being redrawn. - -Args: - - bState(Any):Specifies the state of the redraw flag.MFC References - -Returns: - - None - - """ - pass - - - def SetScrollPos(self,nBar:'Any',nPos:'Any',redraw:'Any'=1) -> 'Any': - """ - Sets the current position of the scroll box of a scroll bar. - -Args: - - nBar(Any):The scroll bar to set. Can be one of win32con.SB_VERT or win32con.SB_HORZ - nPos(Any):The new position - redraw(Any):A flag indicating if the scrollbar should be redrawn. - -Returns: - - Any - - """ - pass - - - def SetScrollInfo(self,nBar:'Any',ScrollInfo:'Any',redraw:'Any'=1) -> 'Any': - """ - Set information about a scroll bar - -Args: - - nBar(Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ - ScrollInfo(Any):The information to set - redraw(Any):A flag indicating if the scrollbar should be re-drawn. - -Returns: - - Any - - """ - pass - - - def SetTimer(self,idEvent:'Any',elapse:'Any') -> 'Any': - """ - Installs a system timer - -Args: - - idEvent(Any):The ID of the event - elapse(Any):How often the timer should fire.MFC References - -Returns: - - Any - - """ - pass - - - def SetWindowPlacement(self,placement:'Any') -> 'None': - """ - Sets the windows placement - -Args: - - placement(Any):A tuple representing the WINDOWPLACEMENT structure.MFC References - -Returns: - - None - - """ - pass - - - def SetWindowText(self,text:'str') -> 'None': - """ - Sets the window's text. - -Args: - - text(str):The windows text.MFC References - -Returns: - - None - - """ - pass - - - def ShowCaret(self,) -> 'None': - """ - Shows the caret - -Args: - - - -Returns: - - None - - """ - pass - - - def ShowScrollBar(self,nBar:'Any',bShow:'Any'=1) -> 'None': - """ - Shows or hides a scroll bar. - -An application should not call ShowScrollBar to hide a scroll bar while processing a scroll-bar notification message. - -Args: - - nBar(Any):Specifies whether the scroll bar is a control or part of a window's nonclient area. If it is part of the nonclient area, nBar also indicates whether the scroll bar is positioned horizontally, vertically, or both. It must be one of win32con.SB_BOTH, win32con.SB_HORZ or win32con.SB_VERT. - bShow(Any):Indicates if the scroll bar should be shown or hidden.MFC References - -Returns: - - None - - """ - pass - - - def ShowWindow(self,arg:'Any') -> 'Any': - """ - Sets the visibility state of the window. - -Args: - - arg(Any):Specifies how the window is to be shown. It must be one of win32con.SW_HIDE, win32con.SW_MINIMIZE, win32con.SW_RESTORE, win32con.SW_SHOW, win32con.SW_SHOWMAXIMIZED win32con.SW_SHOWMINIMIZED, win32con.SW_SHOWMINNOACTIVE, win32con.SW_SHOWNA, win32con.SW_SHOWNOACTIVATE, or win32con.SW_SHOWNORMALMFC References - -Returns: - - Any:CWnd::ShowWindow -Return ValueReturns TRUE is the window was previously visible. - - - """ - pass - - - def UnLockWindowUpdate(self,) -> 'None': - """ - Unlocks a window that was locked with LockWindowUpdate - -Args: - - - -Returns: - - None - - """ - pass - - - def UpdateData(self,bSaveAndValidate:'Any'=1) -> 'Any': - """ - Initialises data in a dialog box, or to retrieves and validates dialog data. - -Returns nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of - -nonzero means that the data is successfully validated. - -Args: - - bSaveAndValidate(Any):Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).MFC References - -Returns: - - Any - - """ - pass - - - def UpdateDialogControls(self,pTarget:'Any',disableIfNoHandler:'Any') -> 'Any': - """ - None - -Args: - - pTarget(Any):The main frame window of the application, and is used for routing update messages. - disableIfNoHandler(Any):Flag that indicates whether a control that has no update handler should be automatically displayed as disabled. - -Returns: - - Any - - """ - pass - - - def UpdateWindow(self,) -> 'None': - """ - Updates a window. This forces a paint message to be sent to the window, if any part - -of the window is marked as invalid. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDDEConv(object): - """A DDE topic.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ConnectTo(self,service:'str',topic:'str') -> 'None': - """ - Connects to a server - -Args: - - service(str):The service to connect to - topic(str):The topic to connect to - -Returns: - - None - - """ - pass - - - def Connected(self,) -> 'None': - """ - Determines if the conversation is connected. - -Args: - - - -Returns: - - None - - """ - pass - - - def Exec(self,Cmd:'str') -> 'None': - """ - Executes a command. - -Args: - - Cmd(str):The Python statement to execute - -Returns: - - None - - """ - pass - - - def Request(self,) -> 'None': - """ - Sends a request. - -Args: - - - -Returns: - - None - - """ - pass - - - def Poke(self,) -> 'None': - """ - Sends a poke. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDDEServer(object): - """A DDE server.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddTopic(self,topic:'Any') -> 'None': - """ - None - -Args: - - topic(Any):The topic to add. - -Returns: - - None - - """ - pass - - - def Create(self,name:'str',filterFlags:'Any'=0) -> 'None': - """ - Create a server - -Args: - - name(str):Name of the server to start. - filterFlags(Any):Filter flags.CommentsNote there can only be one server per application. - -Returns: - - None - - """ - pass - - - def Destroy(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def GetLastError(self,) -> 'Any': - """ - None - -Args: - - - -Returns: - - Any - - """ - pass - - - def Shutdown(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDDEStringItem(object): - """A DDE string item.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetData(self,data:'str') -> 'None': - """ - Sets an items data, and causes any underlying notification. - -Args: - - data(str):The data to set. - -Returns: - - None - - """ - pass - - -class PyDDETopic(object): - """A DDE topic.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddItem(self,item:'Any') -> 'None': - """ - Add an item to the topic. - -Args: - - item(Any):The item to add - -Returns: - - None - - """ - pass - - - def Destroy(self,) -> 'None': - """ - Destroys an item - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDLL(object): - """A DLL object. A general utility object, and not associated with an MFC object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetFileName(self,) -> 'str': - """ - Returns the name of the module associated with the DLL. - -Args: - - - -Returns: - - str - - """ - pass - - - def AttachToMFC(self,) -> 'None': - """ - Attaches the DLL object to the MFC list of DLL's. - -Args: - - - -Returns: - - None - - """ - pass - - -class SCROLLINFO(object): - """Tuple representing a SCROLLINFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class TV_ITEM(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class EXTENSION_CONTROL_BLOCK(object): - """A python representation of an ISAPI - -EXTENSION_CONTROL_BLOCK.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Version(self)->'int': - """Version info of this spec (read-only)""" - pass - - - @property - def TotalBytes(self)->'Any': - """Total bytes indicated from client""" - pass - - - @property - def AvailableBytes(self)->'Any': - """Available number of bytes""" - pass - - - @property - def HttpStatusCode(self)->'Any': - """The status of the current transaction when the request is completed.""" - pass - - - @property - def Method(self)->'Any': - """REQUEST_METHOD""" - pass - - - @property - def ConnID(self)->'Any': - """Context number (read-only)""" - pass - - - @property - def QueryString(self)->'Any': - """QUERY_STRING""" - pass - - - @property - def PathInfo(self)->'Any': - """PATH_INFO""" - pass - - - @property - def PathTranslated(self)->'Any': - """PATH_TRANSLATED""" - pass - - - @property - def AvailableData(self)->'Any': - """Pointer to cbAvailable bytes""" - pass - - - @property - def ContentType(self)->'Any': - """Content type of client data""" - pass - - - @property - def LogData(self)->'Any': - """log data string""" - pass - - - def WriteClient(self,data:'Union[Any, str]',reserved:'Any'=0) -> 'Any': - """ - None - -Args: - - data(Union[Any, str]):The data to write - reserved(Any):Return Valuethe result is the number of bytes written. - -Returns: - - Any: -Return Valuethe result is the number of bytes written. - - - """ - pass - - - def GetServerVariable(self,variable:'str',default:'Any') -> 'str': - """ - None - -Args: - - variable(str): - default(Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. - -Returns: - - str:If specified, the function will return this - -value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name - -begins with 'UNICODE_', in which case it is a unicode object - see the - -ISAPI docs for more details. - - - """ - pass - - - def ReadClient(self,nbytes:'Any') -> 'str': - """ - None - -Args: - - nbytes(Any):Default is to read all available data. - -Returns: - - str - - """ - pass - - - def SendResponseHeaders(self,reply:'str',headers:'str',keepAlive:'Any'=False) -> 'None': - """ - Calls ServerSupportFunction with - -HSE_REQ_SEND_RESPONSE_HEADER_EX - -Args: - - reply(str): - headers(str): - keepAlive(Any): - -Returns: - - None - - """ - pass - - - def SetFlushFlag(self,flag:'Any') -> 'None': - """ - Calls ServerSupportFunction with HSE_REQ_SET_FLUSH_FLAG. - -Args: - - flag(Any): - -Returns: - - None - - """ - pass - - - def TransmitFile(self,callback:'Any',param:'Any',hFile:'Any',statusCode:'str',BytesToWrite:'Any',Offset:'Any',head:'str',tail:'str',flags:'Any') -> 'Any': - """ - Calls ServerSupportFunction with HSE_REQ_TRANSMIT_FILE - -Args: - - callback(Any): - param(Any):Any object - passed as 2nd arg to callback. - hFile(Any): - statusCode(str): - BytesToWrite(Any): - Offset(Any): - head(str): - tail(str): - flags(Any):CommentsThe callback is called with 4 args - (PyECB, param, cbIO, dwErrCode) - -Returns: - - Any - - """ - pass - - - def MapURLToPath(self,) -> 'None': - """ - Calls ServerSupportFunction with HSE_REQ_MAP_URL_TO_PATH - -Args: - - - -Returns: - - None - - """ - pass - - - def DoneWithSession(self,status:'Any') -> 'None': - """ - Calls ServerSupportFunction with HSE_REQ_DONE_WITH_SESSION - -Args: - - status(Any):An optional status. HSE_STATUS_SUCCESS_AND_KEEP_CONN is supported by IIS to keep the connection alive. - -Returns: - - None - - """ - pass - - - def Redirect(self,url:'str') -> 'None': - """ - Calls ServerSupportFunction with HSE_REQ_SEND_URL_REDIRECT_RESP - -Args: - - url(str):The URL to redirect to - -Returns: - - None - - """ - pass - - - def IsKeepAlive(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def GetAnonymousToken(self,metabase_path:'Union[Any, str]') -> 'Any': - """ - Calls ServerSupportFunction with HSE_REQ_GET_ANONYMOUS_TOKEN - -or HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN - -Args: - - metabase_path(Union[Any, str]): - -Returns: - - Any - - """ - pass - - - def GetImpersonationToken(self,) -> 'Any': - """ - Calls ServerSupportFunction with - -HSE_REQ_GET_IMPERSONATION_TOKEN - -Args: - - - -Returns: - - Any - - """ - pass - - - def IsKeepConn(self,) -> 'Any': - """ - Calls ServerSupportFunction with HSE_REQ_IS_KEEP_CONN - -Args: - - - -Returns: - - Any - - """ - pass - - - def ExecURL(self,url:'str',method:'str',clientHeaders:'str',info:'Any',entity:'Any',flags:'Any') -> 'Any': - """ - Calls ServerSupportFunction with HSE_REQ_EXEC_URL - -Args: - - url(str): - method(str): - clientHeaders(str): - info(Any):Must be None - entity(Any):Must be None - flags(Any):CommentsThis function is only available in IIS6 and later. - -Returns: - - Any - - """ - pass - - - def GetExecURLStatus(self,) -> 'Any': - """ - Calls ServerSupportFunction with HSE_REQ_GET_EXEC_URL_STATUS - -Args: - - - -Returns: - - Any:Search for HSE_EXEC_URL_STATUS at msdn, google or google groups. -Return ValueThe result of a tuple of 3 integers - (uHttpStatusCode, uHttpSubStatus, dwWin32Error) - - - """ - pass - - - def IOCompletion(self,func:'Any',arg:'Any'=None) -> 'Any': - """ - Set a callback that will be used for handling asynchronous I/O - -operations. - -Args: - - func(Any):The function to call, as described by the EXTENSION_CONTROL_BLOCK::IOCallback method. - arg(Any):Any object which will be supplied as an argument to the callback function.CommentsIf you call this multiple times, the previous callback will be discarded.A reference to the callback and args are held until EXTENSION_CONTROL_BLOCK::DoneWithSession is called. If the callback function fails, DoneWithSession(HSE_STATUS_ERROR) will automatically be called and no further callbacks for the ECB will be made. - -Returns: - - Any - - """ - pass - - - def ReportUnhealthy(self,reason:'str'=None) -> 'Any': - """ - Calls ServerSupportFunction with HSE_REQ_REPORT_UNHEALTHY - -Args: - - reason(str):An optional reason to be written to the log. - -Returns: - - Any - - """ - pass - - - def IOCallback(self,ecb:'Any',arg:'Any',cbIO:'Any',dwError:'Any') -> 'Any': - """ - A placeholder for a user-supplied callback function. - -Args: - - ecb(Any):The extension control block that is associated with the current, active request. - arg(Any):The user-supplied argument supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function. - cbIO(Any):An integer that contains the number of bytes of I/O in the last call. - dwError(Any):The error code returned.CommentsThis is not a function you can call, it describes the signature of the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function.Return ValueThe result of this function is ignored. - -Returns: - - Any:The error code returned.Comments - -This is not a function you can call, it describes the signature of - -the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion - -function. -Return ValueThe result of this function is ignored. - - - """ - pass - - -class HSE_VERSION_INFO(object): - """An object used by ISAPI GetExtensionVersion""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ExtensionDesc(self)->'str': - """The description of the extension.""" - pass - - -class HTTP_FILTER_AUTHENT(object): - """A Python representation of an ISAPI - -HTTP_FILTER_AUTHENT structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def User(self)->'str': - """""" - pass - - - @property - def Password(self)->'str': - """""" - pass - - -class HTTP_FILTER_CONTEXT(object): - """A Python representation of an ISAPI - -HTTP_FILTER_CONTEXT structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Revision(self)->'Any': - """(read-only)""" - pass - - - @property - def fIsSecurePort(self)->'Any': - """(read-only)""" - pass - - - @property - def NotificationType(self)->'Any': - """(read-only)""" - pass - - - @property - def FilterContext(self)->'Any': - """Any object you wish to associate with the request.""" - pass - - - def GetData(self,) -> 'Any': - """ - Obtains the data passed to - -The HttpFilterProc function. This is not techinally part of the - -HTTP_FILTER_CONTEXT structure, but packaged here for convenience. - -Args: - - - -Returns: - - Any:HTTP_FILTER_CONTEXT.GetData - -object = GetData()Obtains the data passed to - -The HttpFilterProc function. This is not techinally part of the - -HTTP_FILTER_CONTEXT structure, but packaged here for convenience. -Return ValueThe result depends on the value of HTTP_FILTER_CONTEXT::NotificationType - - - - -NotificationType - - -Result type - - - -SF_NOTIFY_URL_MAPHTTP_FILTER_URL_MAP -SF_NOTIFY_PREPROC_HEADERSHTTP_FILTER_PREPROC_HEADERS -SF_NOTIFY_LOGHTTP_FILTER_LOG -SF_NOTIFY_SEND_RAW_DATAHTTP_FILTER_RAW_DATA -SF_NOTIFY_READ_RAW_DATAHTTP_FILTER_RAW_DATA -SF_NOTIFY_AUTHENTICATIONHTTP_FILTER_AUTHENT - - - """ - pass - - - def GetServerVariable(self,variable:'str',default:'Any') -> 'str': - """ - None - -Args: - - variable(str): - default(Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. - -Returns: - - str:If specified, the function will return this - -value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name - -begins with 'UNICODE_', in which case it is a unicode object - see the - -ISAPI docs for more details. - - - """ - pass - - - def WriteClient(self,data:'str',reserverd:'Any'=0) -> 'None': - """ - None - -Args: - - data(str): - reserverd(Any): - -Returns: - - None - - """ - pass - - - def AddResponseHeaders(self,data:'str',reserverd:'Any'=0) -> 'None': - """ - None - -Args: - - data(str): - reserverd(Any): - -Returns: - - None - - """ - pass - - - def SendResponseHeader(self,status:'str',header:'str') -> 'None': - """ - None - -Args: - - status(str): - header(str): - -Returns: - - None - - """ - pass - - - def DisableNotifications(self,flags:'Any') -> 'None': - """ - None - -Args: - - flags(Any): - -Returns: - - None - - """ - pass - - -class HTTP_FILTER_LOG(object): - """A Python representation of an ISAPI - -HTTP_FILTER_LOG structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ClientHostName(self)->'str': - """""" - pass - - - @property - def ClientUserName(self)->'str': - """""" - pass - - - @property - def ServerName(self)->'str': - """""" - pass - - - @property - def Operation(self)->'str': - """""" - pass - - - @property - def Target(self)->'str': - """""" - pass - - - @property - def Parameters(self)->'str': - """""" - pass - - - @property - def HttpStatus(self)->'Any': - """""" - pass - - -class HTTP_FILTER_PREPROC_HEADERS(object): - """A Python representation of an ISAPI - -HTTP_FILTER_PREPROC_HEADERS structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetHeader(self,header:'str',default:'Any') -> 'str': - """ - None - -Args: - - header(str): - default(Any):If specified, this will be returned on error. - -Returns: - - str - - """ - pass - - - def SetHeader(self,name:'str',val:'str') -> 'None': - """ - None - -Args: - - name(str): - val(str): - -Returns: - - None - - """ - pass - - - def AddHeader(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class HTTP_FILTER_RAW_DATA(object): - """A Python representation of an ISAPI - -HTTP_FILTER_RAW_DATA structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def InData(self)->'str': - """""" - pass - - -class HTTP_FILTER_URL_MAP(object): - """A Python representation of an ISAPI - -HTTP_FILTER_URL_MAP structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def URL(self)->'str': - """""" - pass - - - @property - def PhysicalPath(self)->'str': - """""" - pass - - -class HTTP_FILTER_VERSION(object): - """A Python interface to the ISAPI HTTP_FILTER_VERSION - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ServerFilterVersion(self)->'Any': - """(read-only)""" - pass - - - @property - def FilterVersion(self)->'Any': - """""" - pass - - - @property - def Flags(self)->'Any': - """""" - pass - - - @property - def FilterDesc(self)->'str': - """""" - pass diff --git a/typings/win32-stubs/win32gui.pyi b/typings/win32-stubs/win32gui.pyi deleted file mode 100644 index 46d7019c..00000000 --- a/typings/win32-stubs/win32gui.pyi +++ /dev/null @@ -1,6238 +0,0 @@ -__all__=['', 'EnumFontFamilies', 'set_logger', 'LOGFONT', 'CreateFontIndirect', 'GetObject', 'GetObjectType', 'PyGetMemory', 'PyGetString', 'PySetString', 'PySetMemory', 'PyGetArraySignedLong', 'PyGetBufferAddressAndLen', 'FlashWindow', 'FlashWindowEx', 'GetWindowLong', 'GetClassLong', 'SetWindowLong', 'CallWindowProc', 'SendMessage', 'SendMessageTimeout', 'PostMessage', 'PostThreadMessage', 'ReplyMessage', 'RegisterWindowMessage', 'DefWindowProc', 'EnumWindows', 'EnumThreadWindows', 'EnumChildWindows', 'DialogBox', 'DialogBoxParam', 'DialogBoxIndirect', 'DialogBoxIndirectParam', 'CreateDialogIndirect', 'DialogBoxIndirectParam', 'EndDialog', 'GetDlgItem', 'GetDlgItemInt', 'SetDlgItemInt', 'GetDlgCtrlID', 'GetDlgItemText', 'SetDlgItemText', 'GetNextDlgTabItem', 'GetNextDlgGroupItem', 'SetWindowText', 'GetWindowText', 'InitCommonControls', 'InitCommonControlsEx', 'LoadCursor', 'SetCursor', 'GetCursor', 'GetCursorInfo', 'CreateAcceleratorTable', 'DestroyAccleratorTable', 'LoadMenu', 'DestroyMenu', 'SetMenu', 'GetMenu', 'LoadIcon', 'CopyIcon', 'DrawIcon', 'DrawIconEx', 'CreateIconIndirect', 'CreateIconFromResource', 'LoadImage', 'DeleteObject', 'BitBlt', 'StretchBlt', 'PatBlt', 'SetStretchBltMode', 'GetStretchBltMode', 'TransparentBlt', 'MaskBlt', 'AlphaBlend', 'ImageList_Add', 'ImageList_Create', 'ImageList_Destroy', 'ImageList_Draw', 'ImageList_DrawEx', 'ImageList_GetIcon', 'ImageList_GetImageCount', 'ImageList_LoadImage', 'ImageList_LoadBitmap', 'ImageList_Remove', 'ImageList_Replace', 'ImageList_ReplaceIcon', 'ImageList_SetBkColor', 'ImageList_SetOverlayImage', 'MessageBox', 'MessageBeep', 'CreateWindow', 'DestroyWindow', 'EnableWindow', 'FindWindow', 'FindWindowEx', 'DragAcceptFiles', 'DragDetect', 'SetDoubleClickTime', 'GetDoubleClickTime', 'HideCaret', 'SetCaretPos', 'GetCaretPos', 'ShowCaret', 'ShowWindow', 'IsWindowVisible', 'IsWindowEnabled', 'SetFocus', 'GetFocus', 'UpdateWindow', 'BringWindowToTop', 'SetActiveWindow', 'GetActiveWindow', 'SetForegroundWindow', 'GetForegroundWindow', 'GetClientRect', 'GetDC', 'SaveDC', 'RestoreDC', 'DeleteDC', 'CreateCompatibleDC', 'CreateCompatibleBitmap', 'CreateBitmap', 'SelectObject', 'GetCurrentObject', 'GetWindowRect', 'GetStockObject', 'PostQuitMessage', 'WaitMessage', 'SetWindowPos', 'GetWindowPlacement', 'SetWindowPlacement', 'RegisterClass', 'UnregisterClass', 'PumpMessages', 'PumpWaitingMessages', 'GetMessage', 'TranslateMessage', 'DispatchMessage', 'TranslateAccelerator', 'PeekMessage', 'Shell_NotifyIcon', 'GetSystemMenu', 'DrawMenuBar', 'MoveWindow', 'CloseWindow', 'DeleteMenu', 'RemoveMenu', 'CreateMenu', 'CreatePopupMenu', 'TrackPopupMenu', 'CommDlgExtendedError', 'ExtractIcon', 'ExtractIconEx', 'DestroyIcon', 'GetIconInfo', 'ScreenToClient', 'ClientToScreen', 'PaintDesktop', 'RedrawWindow', 'GetTextExtentPoint32', 'GetTextMetrics', 'GetTextCharacterExtra', 'SetTextCharacterExtra', 'GetTextAlign', 'SetTextAlign', 'GetTextFace', 'GetMapMode', 'SetMapMode', 'GetGraphicsMode', 'SetGraphicsMode', 'GetLayout', 'SetLayout', 'GetPolyFillMode', 'SetPolyFillMode', 'GetWorldTransform', 'SetWorldTransform', 'ModifyWorldTransform', 'CombineTransform', 'GetWindowOrgEx', 'SetWindowOrgEx', 'GetViewportOrgEx', 'SetViewportOrgEx', 'GetWindowExtEx', 'SetWindowExtEx', 'GetViewportExtEx', 'SetViewportExtEx', 'GradientFill', 'GetOpenFileName', 'InsertMenuItem', 'SetMenuItemInfo', 'GetMenuItemInfo', 'GetMenuItemCount', 'GetMenuItemRect', 'GetMenuState', 'SetMenuDefaultItem', 'GetMenuDefaultItem', 'AppendMenu', 'InsertMenu', 'EnableMenuItem', 'CheckMenuItem', 'GetSubMenu', 'ModifyMenu', 'GetMenuItemID', 'SetMenuItemBitmaps', 'CheckMenuRadioItem', 'SetMenuInfo', 'GetMenuInfo', 'DrawFocusRect', 'DrawText', 'LineTo', 'Ellipse', 'Pie', 'Arc', 'ArcTo', 'AngleArc', 'Chord', 'ExtFloodFill', 'SetPixel', 'GetPixel', 'GetROP2', 'SetROP2', 'SetPixelV', 'MoveToEx', 'GetCurrentPositionEx', 'GetArcDirection', 'SetArcDirection', 'Polygon', 'Polyline', 'PolylineTo', 'PolyBezier', 'PolyBezierTo', 'PlgBlt', 'CreatePolygonRgn', 'ExtTextOut', 'GetTextColor', 'SetTextColor', 'GetBkMode', 'SetBkMode', 'GetBkColor', 'SetBkColor', 'DrawEdge', 'FillRect', 'FillRgn', 'PaintRgn', 'FrameRgn', 'InvertRgn', 'EqualRgn', 'PtInRegion', 'PtInRect', 'RectInRegion', 'SetRectRgn', 'CombineRgn', 'DrawAnimatedRects', 'CreateSolidBrush', 'CreatePatternBrush', 'CreateHatchBrush', 'CreatePen', 'GetSysColor', 'GetSysColorBrush', 'InvalidateRect', 'FrameRect', 'InvertRect', 'WindowFromDC', 'GetUpdateRgn', 'GetWindowRgn', 'SetWindowRgn', 'GetWindowRgnBox', 'ValidateRgn', 'InvalidateRgn', 'GetRgnBox', 'OffsetRgn', 'Rectangle', 'RoundRect', 'BeginPaint', 'EndPaint', 'BeginPath', 'EndPath', 'AbortPath', 'CloseFigure', 'FlattenPath', 'FillPath', 'WidenPath', 'StrokePath', 'StrokeAndFillPath', 'GetMiterLimit', 'SetMiterLimit', 'PathToRegion', 'GetPath', 'CreateRoundRectRgn', 'CreateRectRgnIndirect', 'CreateEllipticRgnIndirect', 'CreateWindowEx', 'GetParent', 'SetParent', 'GetCursorPos', 'GetDesktopWindow', 'GetWindow', 'GetWindowDC', 'IsIconic', 'IsWindow', 'IsChild', 'ReleaseCapture', 'GetCapture', 'SetCapture', '_TrackMouseEvent', 'ReleaseDC', 'CreateCaret', 'DestroyCaret', 'ScrollWindowEx', 'SetScrollInfo', 'GetScrollInfo', 'GetClassName', 'WindowFromPoint', 'ChildWindowFromPoint', 'ChildWindowFromPoint', 'ListView_SortItems', 'ListView_SortItemsEx', 'CreateDC', 'GetSaveFileNameW', 'GetOpenFileNameW', 'SystemParametersInfo', 'SetLayeredWindowAttributes', 'GetLayeredWindowAttributes', 'UpdateLayeredWindow', 'AnimateWindow', 'CreateBrushIndirect', 'ExtCreatePen', 'DrawTextW', 'EnumPropsEx', 'RegisterDeviceNotification', 'UnregisterDeviceNotification', 'RegisterHotKey', 'CLR_NONE', 'ILC_COLOR', 'ILC_COLOR16', 'ILC_COLOR24', 'ILC_COLOR32', 'ILC_COLOR4', 'ILC_COLOR8', 'ILC_COLORDDB', 'ILC_MASK', 'ILD_BLEND', 'ILD_BLEND25', 'ILD_BLEND50', 'ILD_FOCUS', 'ILD_MASK', 'ILD_NORMAL', 'ILD_SELECTED', 'ILD_TRANSPARENT', 'IMAGE_BITMAP', 'IMAGE_CURSOR', 'IMAGE_ICON', 'LR_CREATEDIBSECTION', 'LR_DEFAULTCOLOR', 'LR_DEFAULTSIZE', 'LR_LOADFROMFILE', 'LR_LOADMAP3DCOLORS', 'LR_LOADTRANSPARENT', 'LR_MONOCHROME', 'LR_SHARED', 'LR_VGACOLOR', 'NIF_ICON', 'NIF_INFO', 'NIF_MESSAGE', 'NIF_STATE', 'NIF_TIP', 'NIIF_ERROR', 'NIIF_ICON_MASK', 'NIIF_INFO', 'NIIF_NONE', 'NIIF_NOSOUND', 'NIIF_WARNING', 'NIM_ADD', 'NIM_DELETE', 'NIM_MODIFY', 'NIM_SETFOCUS', 'NIM_SETVERSION', 'TPM_BOTTOMALIGN', 'TPM_CENTERALIGN', 'TPM_LEFTALIGN', 'TPM_LEFTBUTTON', 'TPM_NONOTIFY', 'TPM_RETURNCMD', 'TPM_RIGHTALIGN', 'TPM_RIGHTBUTTON', 'TPM_TOPALIGN', 'TPM_VCENTERALIGN'] -import typing -import win32typing -"""""" - - -def EnumFontFamilies(hdc:'int',Family:'typing.Union[str]',EnumFontFamProc:'typing.Any',Param:'typing.Any') -> 'typing.Any': - """ - Enumerates the available font families. - -Args: - - hdc(int):Handle to a device context for which to enumerate available fonts - Family(typing.Union[str]):Family of fonts to enumerate. If none, first member of each font family will be returned. - EnumFontFamProc(typing.Any):The Python function called with each font family. This function is called with 4 arguments. - Param(typing.Any):An arbitrary object to be passed to the callback functionCommentsThe parameters that the callback function will receive are as follows:PyLOGFONT - contains the font parameters None - Placeholder for a TEXTMETRIC structure, not supported yet int - Font type, combination of DEVICE_FONTTYPE, RASTER_FONTTYPE, TRUETYPE_FONTTYPE object - The Param originally passed in to EnumFontFamilies - -Returns: - - typing.Any - - """ - pass - - -def set_logger(logger:'typing.Any') -> 'None': - """ - Sets a logger object for exceptions and error information - -Args: - - logger(typing.Any):A logger object, generally from the standard logger package.CommentsOnce a logger has been set for the module, unhandled exceptions, such as from a window's WNDPROC, will be written (via logger.exception()) to the log instead of to stderr. Note that using this with the Python 2.3 logging package will prevent the traceback from being written to the log. However, it is possible to use the Python 2.4 logging package directly with Python 2.3 - -Returns: - - None - - """ - pass - - -def LOGFONT() -> 'win32typing.PyLOGFONT': - """ - Creates a LOGFONT object. - -Args: - - - -Returns: - - win32typing.PyLOGFONT - - """ - pass - - -def CreateFontIndirect(lplf:'win32typing.PyLOGFONT') -> 'typing.Any': - """ - function creates a logical font that has the specified characteristics. - -The font can subsequently be selected as the current font for any device context. - -Args: - - lplf(win32typing.PyLOGFONT):A LOGFONT object as returned by win32gui::LOGFONT - -Returns: - - typing.Any - - """ - pass - - -def GetObject(handle:'int') -> 'typing.Any': - """ - Returns a struct containing the parameters used to create a GDI object - -Args: - - handle(int):Handle to the object.CommentsThe result depends on the type of the handle.Object type as determined by win32gui::GetObjectTypeReturned objectOBJ_FONTPyLOGFONTOBJ_BITMAPPyBITMAPOBJ_PENDict representing a LOGPEN struct - -Returns: - - typing.Any - - """ - pass - - -def GetObjectType(h:'int') -> 'typing.Any': - """ - Returns the type (OBJ_* constant) of a GDI handle - -Args: - - h(int):A handle to a GDI object - -Returns: - - typing.Any - - """ - pass - - -def PyGetMemory(addr:'typing.Any',_len:'typing.Any') -> 'typing.Any': - """ - Returns a buffer object from and address and length - -Args: - - addr(typing.Any):Address of the memory to reference. - _len(typing.Any):Number of bytes to return.CommentsIf zero is passed a ValueError will be raised. - -Returns: - - typing.Any - - """ - pass - - -def PyGetString(addr:'typing.Any',_len:'typing.Any') -> 'str': - """ - Returns a string from an address. - -Args: - - addr(typing.Any):Address of the memory to reference - _len(typing.Any):Number of characters to read. If not specified, the string must be NULL terminated.Return ValueIf win32gui.UNICODE is True, this will return a unicode object. - -Returns: - - str:Number of characters to read. If not specified, the - -string must be NULL terminated.Return ValueIf win32gui.UNICODE is True, this will return a unicode object. - - - """ - pass - - -def PySetString(addr:'typing.Any',String:'typing.Any',maxLen:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - addr(typing.Any):Address of the memory to reference - String(typing.Any):The string to copy - maxLen(typing.Any):Maximum number of chars to copy (optional) - -Returns: - - typing.Any - - """ - pass - - -def PySetMemory(addr:'typing.Any',String:'typing.Any') -> 'typing.Any': - """ - Copies bytes to an address. - -Args: - - addr(typing.Any):Address of the memory to reference - String(typing.Any):The string to copy - -Returns: - - typing.Any - - """ - pass - - -def PyGetArraySignedLong(array:'typing.Any',index:'typing.Any') -> 'typing.Any': - """ - Returns a signed long from an array object at specified index - -Args: - - array(typing.Any):array object to use - index(typing.Any):index of offset - -Returns: - - typing.Any - - """ - pass - - -def PyGetBufferAddressAndLen(obj:'typing.Any') -> 'typing.Any': - """ - Returns a buffer object address and len - -Args: - - obj(typing.Any):the buffer object - -Returns: - - typing.Any - - """ - pass - - -def FlashWindow(hwnd:'int',bInvert:'typing.Any') -> 'typing.Any': - """ - The FlashWindow function flashes the specified window one time. It does not change the active state of the window. - -Args: - - hwnd(int):Handle to a window - bInvert(typing.Any):Indicates if window should toggle between active and inactive - -Returns: - - typing.Any - - """ - pass - - -def FlashWindowEx(hwnd:'int',dwFlags:'typing.Any',uCount:'typing.Any',dwTimeout:'typing.Any') -> 'typing.Any': - """ - The FlashWindowEx function flashes the specified window a specified number of times. - -Args: - - hwnd(int):Handle to a window - dwFlags(typing.Any):Combination of win32con.FLASHW_* flags - uCount(typing.Any):Nbr of times to flash - dwTimeout(typing.Any):Elapsed time between flashes, in milliseconds - -Returns: - - typing.Any - - """ - pass - - -def GetWindowLong(hwnd:'int',index:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any): - index(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def GetClassLong(hwnd:'int',index:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any): - index(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def SetWindowLong(hwnd:'int',index:'typing.Any',value:'typing.Any') -> 'typing.Any': - """ - Places a long value at the specified offset into the extra window memory of the given window. - -Args: - - hwnd(int):The handle to the window - index(typing.Any):The index of the item to set. - value(typing.Any):The value to set.CommentsThis function calls the SetWindowLongPtr Api functionIf index is GWLP_WNDPROC, then the value parameter must be a callable object (or a dictionary) to use as the new window procedure. - -Returns: - - typing.Any - - """ - pass - - -def CallWindowProc(wndproc:'typing.Any',hwnd:'int',msg:'typing.Any',wparam:'typing.Union[typing.Any]',lparam:'typing.Union[typing.Any]') -> 'typing.Any': - """ - None - -Args: - - wndproc(typing.Any):The wndproc to call - this is generally the return value of SetWindowLong(GWL_WNDPROC) - hwnd(int):Handle to the window - msg(typing.Any):A window message - wparam(typing.Union[typing.Any]):Type is dependent on the message - lparam(typing.Union[typing.Any]):Type is dependent on the message - -Returns: - - typing.Any - - """ - pass - - -def SendMessage(hwnd:'int',message:'typing.Any',wparam:'typing.Union[typing.Any]'=None,lparam:'typing.Union[typing.Any]'=None) -> 'typing.Any': - """ - Sends a message to the window. - -Args: - - hwnd(typing.Any):The handle to the Window - message(typing.Any):The ID of the message to post - wparam(typing.Union[typing.Any]):Type depends on the message - lparam(typing.Union[typing.Any]):Type depends on the message - -Returns: - - typing.Any - - """ - pass - - -def SendMessageTimeout(hwnd:'int',message:'typing.Any',wparam:'typing.Any',lparam:'typing.Any',flags:'typing.Any',timeout:'typing.Any') -> 'tuple[typing.Any, typing.Any]': - """ - Sends a message to the window. - -Args: - - hwnd(typing.Any):The handle to the Window - message(typing.Any):The ID of the message to post - wparam(typing.Any):An integer whose value depends on the message - lparam(typing.Any):An integer whose value depends on the message - flags(typing.Any):Send options - timeout(typing.Any):Timeout duration in milliseconds.Return ValueThe result is the result of the SendMessageTimeout call, plus the last 'result' param. If the timeout period expires, a pywintypes.error exception will be thrown, with zero as the error code. See the Microsoft documentation for more information. - -Returns: - - tuple[typing.Any, typing.Any]:Timeout duration in milliseconds.Return ValueThe result is the result of the SendMessageTimeout call, plus the last 'result' param. - -If the timeout period expires, a pywintypes.error exception will be thrown, - -with zero as the error code. See the Microsoft documentation for more information. - - - """ - pass - - -def PostMessage(hwnd:'int',message:'typing.Any',wparam:'typing.Any'=0,lparam:'typing.Any'=0) -> 'None': - """ - None - -Args: - - hwnd(typing.Any):The handle to the Window - message(typing.Any):The ID of the message to post - wparam(typing.Any):An integer whose value depends on the message - lparam(typing.Any):An integer whose value depends on the message - -Returns: - - None - - """ - pass - - -def PostThreadMessage(threadId:'typing.Any',message:'typing.Any',wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - None - -Args: - - threadId(typing.Any):The ID of the thread to post the message to. - message(typing.Any):The ID of the message to post - wparam(typing.Any):An integer whose value depends on the message - lparam(typing.Any):An integer whose value depends on the message - -Returns: - - None - - """ - pass - - -def ReplyMessage(result:'typing.Any') -> 'typing.Any': - """ - Used to reply to a message sent through the SendMessage function without returning control to the function that called SendMessage. - -Args: - - result(typing.Any):Specifies the result of the message processing. The possible values are based on the message sent. - -Returns: - - typing.Any - - """ - pass - - -def RegisterWindowMessage(name:'typing.Union[str, typing.Any]') -> 'typing.Any': - """ - Defines a new window message that is guaranteed to be unique throughout the system. The message value can be used when sending or posting messages. - -Args: - - name(typing.Union[str, typing.Any]):The string - -Returns: - - typing.Any - - """ - pass - - -def DefWindowProc(hwnd:'int',message:'typing.Any',wparam:'typing.Any',lparam:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any):The handle to the Window - message(typing.Any):The ID of the message to send - wparam(typing.Any):An integer whose value depends on the message - lparam(typing.Any):An integer whose value depends on the message - -Returns: - - typing.Any - - """ - pass - - -def EnumWindows(callback:'typing.Any',extra:'typing.Any') -> 'None': - """ - Enumerates all top-level windows on the screen by passing the handle to each window, in turn, to an application-defined callback function. - -Args: - - callback(typing.Any):A Python function to be used as the callback. Function can return False to stop enumeration, or raise an exception. - extra(typing.Any):Any python object - this is passed to the callback function as the second param (first is the hwnd). - -Returns: - - None - - """ - pass - - -def EnumThreadWindows(dwThreadId:'typing.Any',callback:'typing.Any',extra:'typing.Any') -> 'None': - """ - Enumerates all top-level windows associated with a thread on the screen by passing the handle to each window, in turn, to an application-defined callback function. EnumThreadWindows continues until the last top-level window associated with the thread is enumerated or the callback function returns FALSE - -Args: - - dwThreadId(typing.Any):The id of the thread for which the windows need to be enumerated. - callback(typing.Any):A Python function to be used as the callback. - extra(typing.Any):Any python object - this is passed to the callback function as the second param (first is the hwnd). - -Returns: - - None - - """ - pass - - -def EnumChildWindows(hwnd:'int',callback:'typing.Any',extra:'typing.Any') -> 'None': - """ - Enumerates the child windows that belong to the specified parent window by passing the handle to each child window, in turn, to an application-defined callback function. EnumChildWindows continues until the last child window is enumerated or the callback function returns FALSE. - -Args: - - hwnd(int):The handle to the window to enumerate. - callback(typing.Any):A Python function to be used as the callback. - extra(typing.Any):Any python object - this is passed to the callback function as the second param (first is the hwnd). - -Returns: - - None - - """ - pass - - -def DialogBox(hInstance:'int',TemplateName:'win32typing.PyResourceId',hWndParent:'int',DialogFunc:'typing.Any',InitParam:'typing.Any'=0) -> 'typing.Any': - """ - Creates a modal dialog box. - -Args: - - hInstance(int):Handle to module that contains the dialog template - TemplateName(win32typing.PyResourceId):Name or resource id of the dialog resource - hWndParent(int):Handle to dialog's parent window - DialogFunc(typing.Any):Dialog box procedure to process messages - InitParam(typing.Any):Initialization data to be passed to above procedure during WM_INITDIALOG processing - -Returns: - - typing.Any - - """ - pass - - -def DialogBoxParam() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def DialogBoxIndirect(hInstance:'int',controlList:'win32typing.PyDialogTemplate',hWndParent:'int',DialogFunc:'typing.Any',InitParam:'typing.Any'=0) -> 'typing.Any': - """ - None - -Args: - - hInstance(int):Handle to module creating the dialog box - controlList(win32typing.PyDialogTemplate):Sequence of items defining the dialog box and subcontrols - hWndParent(int):Handle to dialog's parent window - DialogFunc(typing.Any):Dialog box procedure to process messages - InitParam(typing.Any):Initialization data to be passed to above procedure during WM_INITDIALOG processing - -Returns: - - typing.Any - - """ - pass - - -def DialogBoxIndirectParam() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def CreateDialogIndirect(hInstance:'int',controlList:'win32typing.PyDialogTemplate',hWndParent:'int',DialogFunc:'typing.Any',InitParam:'typing.Any'=0) -> 'typing.Any': - """ - None - -Args: - - hInstance(int):Handle to module creating the dialog box - controlList(win32typing.PyDialogTemplate):Sequence containing a PyDLGTEMPLATE, followed by variable number of PyDLGITEMTEMPLATEs - hWndParent(int):Handle to dialog's parent window - DialogFunc(typing.Any):Dialog box procedure to process messages - InitParam(typing.Any):Initialization data to be passed to above procedure during WM_INITDIALOG processing - -Returns: - - typing.Any - - """ - pass - - -def DialogBoxIndirectParam() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def EndDialog(hwnd:'int',result:'typing.Any') -> 'None': - """ - Ends a dialog box. - -Args: - - hwnd(typing.Any):Handle to the window. - result(typing.Any):result - -Returns: - - None - - """ - pass - - -def GetDlgItem(hDlg:'int',IDDlgItem:'typing.Any') -> 'typing.Any': - """ - Retrieves the handle to a control in the specified dialog box. - -Args: - - hDlg(int):Handle to a dialog window - IDDlgItem(typing.Any):Identifier of one of the dialog's controls - -Returns: - - typing.Any - - """ - pass - - -def GetDlgItemInt(hDlg:'int',IDDlgItem:'typing.Any',Signed:'typing.Any') -> 'None': - """ - Returns the integer value of a dialog control - -Args: - - hDlg(int):Handle to a dialog window - IDDlgItem(typing.Any):Identifier of one of the dialog's controls - Signed(typing.Any):Indicates whether control value should be interpreted as signed - -Returns: - - None - - """ - pass - - -def SetDlgItemInt(hDlg:'int',IDDlgItem:'typing.Any',Value:'typing.Any',Signed:'typing.Any') -> 'None': - """ - Places an integer value in a dialog control - -Args: - - hDlg(int):Handle to a dialog window - IDDlgItem(typing.Any):Identifier of one of the dialog's controls - Value(typing.Any):Value to placed in the control - Signed(typing.Any):Indicates if the input value is signed - -Returns: - - None - - """ - pass - - -def GetDlgCtrlID(hwnd:'int') -> 'typing.Any': - """ - Retrieves the identifier of the specified control. - -Args: - - hwnd(typing.Any):The handle to the control - -Returns: - - typing.Any - - """ - pass - - -def GetDlgItemText(hDlg:'int',IDDlgItem:'typing.Any') -> 'str': - """ - Returns the text of a dialog control - -Args: - - hDlg(int):Handle to a dialog window - IDDlgItem(typing.Any):The Id of a control within the dialog - -Returns: - - str - - """ - pass - - -def SetDlgItemText(hDlg:'int',IDDlgItem:'typing.Any',String:'typing.Union[typing.Any]') -> 'None': - """ - Sets the text for a window or control - -Args: - - hDlg(int):Handle to a dialog window - IDDlgItem(typing.Any):The Id of a control within the dialog - String(typing.Union[typing.Any]):The text to put in the control - -Returns: - - None - - """ - pass - - -def GetNextDlgTabItem(hDlg:'typing.Any',hCtl:'typing.Any',bPrevious:'typing.Any') -> 'typing.Any': - """ - Retrieves a handle to the first control that has the WS_TABSTOP style that precedes (or follows) the specified control. - -Args: - - hDlg(typing.Any):handle to dialog box - hCtl(typing.Any):handle to known control - bPrevious(typing.Any):direction flag - -Returns: - - typing.Any - - """ - pass - - -def GetNextDlgGroupItem(hDlg:'typing.Any',hCtl:'typing.Any',bPrevious:'typing.Any') -> 'typing.Any': - """ - Retrieves a handle to the first control in a group of controls that precedes (or follows) the specified control in a dialog box. - -Args: - - hDlg(typing.Any):handle to dialog box - hCtl(typing.Any):handle to known control - bPrevious(typing.Any):direction flag - -Returns: - - typing.Any - - """ - pass - - -def SetWindowText() -> 'None': - """ - Sets the window text. - -Args: - - - -Returns: - - None - - """ - pass - - -def GetWindowText(hwnd:'int') -> 'str': - """ - Get the window text. - -Args: - - hwnd(int):The handle to the windowCommentsNote that previous versions of PyWin32 returned a (empty) Unicode object when the string was empty, or an MBCS encoded string value otherwise. A String is now returned in all cases. - -Returns: - - str - - """ - pass - - -def InitCommonControls() -> 'None': - """ - Initializes the common controls. - -Args: - - - -Returns: - - None - - """ - pass - - -def InitCommonControlsEx(flag:'typing.Any') -> 'None': - """ - Initializes specific common controls. - -Args: - - flag(typing.Any):One of the ICC_ constants - -Returns: - - None - - """ - pass - - -def LoadCursor(hinstance:'typing.Any',resid:'typing.Any') -> 'typing.Any': - """ - Loads a cursor. - -Args: - - hinstance(typing.Any):The module to load from - resid(typing.Any):The resource ID - -Returns: - - typing.Any - - """ - pass - - -def SetCursor(hcursor:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hcursor(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def GetCursor() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def GetCursorInfo() -> 'tuple[int, int, int, int]': - """ - Retrieves information about the global cursor. - -Args: - - - -Returns: - - tuple[int, int, int, int] - - """ - pass - - -def CreateAcceleratorTable(accels:'tuple[tuple[typing.Any, typing.Any, typing.Any], ...]') -> 'typing.Any': - """ - Creates an accelerator table - -Args: - - accels(tuple[tuple[typing.Any, typing.Any, typing.Any], ...]):A sequence of (fVirt, key, cmd), as per the Win32 ACCEL structure. - -Returns: - - typing.Any - - """ - pass - - -def DestroyAccleratorTable(haccel:'typing.Any') -> 'None': - """ - Destroys an accelerator table - -Args: - - haccel(typing.Any): - -Returns: - - None - - """ - pass - - -def LoadMenu(hinstance:'typing.Any',resource_id:'typing.Union[str, typing.Any]') -> 'typing.Any': - """ - Loads a menu - -Args: - - hinstance(typing.Any): - resource_id(typing.Union[str, typing.Any]): - -Returns: - - typing.Any - - """ - pass - - -def DestroyMenu() -> 'None': - """ - Destroys a previously loaded menu. - -Args: - - - -Returns: - - None - - """ - pass - - -def SetMenu(hwnd:'int',hmenu:'typing.Any') -> 'None': - """ - Sets the menu for the specified window. - -Args: - - hwnd(typing.Any): - hmenu(typing.Any): - -Returns: - - None - - """ - pass - - -def GetMenu() -> 'None': - """ - Gets the menu for the specified window. - -Args: - - - -Returns: - - None - - """ - pass - - -def LoadIcon(hinstance:'typing.Any',resource_id:'typing.Union[str, typing.Any]') -> 'typing.Any': - """ - Loads an icon - -Args: - - hinstance(typing.Any): - resource_id(typing.Union[str, typing.Any]): - -Returns: - - typing.Any - - """ - pass - - -def CopyIcon(hicon:'typing.Any') -> 'typing.Any': - """ - Copies an icon - -Args: - - hicon(typing.Any):Existing icon - -Returns: - - typing.Any - - """ - pass - - -def DrawIcon(hDC:'typing.Any',X:'typing.Any',Y:'typing.Any',hicon:'typing.Any') -> 'None': - """ - None - -Args: - - hDC(typing.Any):handle to DC - X(typing.Any):x-coordinate of upper-left corner - Y(typing.Any):y-coordinate of upper-left corner - hicon(typing.Any):handle to icon - -Returns: - - None - - """ - pass - - -def DrawIconEx(hDC:'typing.Any',xLeft:'typing.Any',yTop:'typing.Any',hIcon:'typing.Any',cxWidth:'typing.Any',cyWidth:'typing.Any',istepIfAniCur:'typing.Any',hbrFlickerFreeDraw:'win32typing.PyGdiHANDLE',diFlags:'typing.Any') -> 'None': - """ - Draws an icon or cursor into the specified device context, - -performing the specified raster operations, and stretching or compressing the - -icon or cursor as specified. - -Args: - - hDC(typing.Any):handle to device context - xLeft(typing.Any):x-coord of upper left corner - yTop(typing.Any):y-coord of upper left corner - hIcon(typing.Any):handle to icon - cxWidth(typing.Any):icon width - cyWidth(typing.Any):icon height - istepIfAniCur(typing.Any):frame index, animated cursor - hbrFlickerFreeDraw(win32typing.PyGdiHANDLE):handle to background brush, can be None - diFlags(typing.Any):icon-drawing flags (win32con.DI_*) - -Returns: - - None - - """ - pass - - -def CreateIconIndirect(iconinfo:'win32typing.PyICONINFO') -> 'typing.Any': - """ - Creates an icon or cursor from an ICONINFO structure. - -Args: - - iconinfo(win32typing.PyICONINFO):Tuple defining the icon parameters - -Returns: - - typing.Any - - """ - pass - - -def CreateIconFromResource(bits:'str',fIcon:'typing.Any',ver:'typing.Any'=0x00030000) -> 'int': - """ - Creates an icon or cursor from resource bits describing the icon. - -Args: - - bits(str):The bits - fIcon(typing.Any):True if an icon, False if a cursor. - ver(typing.Any):Specifies the version number of the icon or cursor format for the resource bits pointed to by the presbits parameter. This parameter can be 0x00030000. - -Returns: - - int - - """ - pass - - -def LoadImage(hinst:'typing.Any',name:'typing.Union[str, typing.Any]',_type:'typing.Any',cxDesired:'typing.Any',cyDesired:'typing.Any',fuLoad:'typing.Any') -> 'typing.Any': - """ - Loads a bitmap, cursor or icon - -Args: - - hinst(typing.Any):Handle to an instance of the module that contains the image to be loaded. To load an OEM image, set this parameter to zero. - name(typing.Union[str, typing.Any]):Specifies the image to load. If the hInst parameter is non-zero and the fuLoad parameter omits LR_LOADFROMFILE, name specifies the image resource in the hInst module. If the image resource is to be loaded by name, the name parameter is a string that contains the name of the image resource. - _type(typing.Any):Specifies the type of image to be loaded. - cxDesired(typing.Any):Specifies the width, in pixels, of the icon or cursor. If this parameter is zero and the fuLoad parameter is LR_DEFAULTSIZE, the function uses the SM_CXICON or SM_CXCURSOR system metric value to set the width. If this parameter is zero and LR_DEFAULTSIZE is not used, the function uses the actual resource width. - cyDesired(typing.Any):Specifies the height, in pixels, of the icon or cursor. If this parameter is zero and the fuLoad parameter is LR_DEFAULTSIZE, the function uses the SM_CYICON or SM_CYCURSOR system metric value to set the height. If this parameter is zero and LR_DEFAULTSIZE is not used, the function uses the actual resource height. - fuLoad(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def DeleteObject(handle:'win32typing.PyGdiHANDLE') -> 'None': - """ - Deletes a logical pen, brush, font, bitmap, region, or palette, freeing all system resources associated with the object. After the object is deleted, the specified handle is no longer valid. - -Args: - - handle(win32typing.PyGdiHANDLE):handle to the object to delete. - -Returns: - - None - - """ - pass - - -def BitBlt(hdcDest:'typing.Any',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',hdcSrc:'typing.Any',nXSrc:'typing.Any',nYSrc:'typing.Any',dwRop:'typing.Any') -> 'None': - """ - Performs a bit-block transfer of the color data corresponding - -to a rectangle of pixels from the specified source device context into a - -destination device context. - -Args: - - hdcDest(typing.Any):handle to destination DC - x(typing.Any):x-coord of destination upper-left corner - y(typing.Any):y-coord of destination upper-left corner - width(typing.Any):width of destination rectangle - height(typing.Any):height of destination rectangle - hdcSrc(typing.Any):handle to source DC - nXSrc(typing.Any):x-coordinate of source upper-left corner - nYSrc(typing.Any):y-coordinate of source upper-left corner - dwRop(typing.Any):raster operation code - -Returns: - - None - - """ - pass - - -def StretchBlt(hdcDest:'typing.Any',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',hdcSrc:'typing.Any',nXSrc:'typing.Any',nYSrc:'typing.Any',nWidthSrc:'typing.Any',nHeightSrc:'typing.Any',dwRop:'typing.Any') -> 'None': - """ - Copies a bitmap from a source rectangle into a destination - -rectangle, stretching or compressing the bitmap to fit the dimensions of the - -destination rectangle, if necessary - -Args: - - hdcDest(typing.Any):handle to destination DC - x(typing.Any):x-coord of destination upper-left corner - y(typing.Any):y-coord of destination upper-left corner - width(typing.Any):width of destination rectangle - height(typing.Any):height of destination rectangle - hdcSrc(typing.Any):handle to source DC - nXSrc(typing.Any):x-coord of source upper-left corner - nYSrc(typing.Any):y-coord of source upper-left corner - nWidthSrc(typing.Any):width of source rectangle - nHeightSrc(typing.Any):height of source rectangle - dwRop(typing.Any):raster operation code - -Returns: - - None - - """ - pass - - -def PatBlt(hdc:'int',XLeft:'typing.Any',YLeft:'typing.Any',Width:'typing.Any',Height:'typing.Any',Rop:'typing.Any') -> 'None': - """ - Paints a rectangle by combining the current brush with existing colors - -Args: - - hdc(int):Handle to a device context - XLeft(typing.Any):Horizontal pos - YLeft(typing.Any):Vertical pos - Width(typing.Any):Width of rectangular area - Height(typing.Any):Height of rectangular area - Rop(typing.Any):Raster operation, one of PATCOPY,PATINVERT,DSTINVERT,BLACKNESS,WHITENESS - -Returns: - - None - - """ - pass - - -def SetStretchBltMode(hdc:'int',StretchMode:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hdc(int):Handle to a device context - StretchMode(typing.Any):One of BLACKONWHITE,COLORONCOLOR,HALFTONE,STRETCH_ANDSCANS,STRETCH_DELETESCANS,STRETCH_HALFTONE,STRETCH_ORSCANS, or WHITEONBLACK (from win32con)Return ValueIf the function succeeds, the return value is the previous stretching mode. If the function fails, the return value is zero. - -Returns: - - typing.Any:One of BLACKONWHITE,COLORONCOLOR,HALFTONE,STRETCH_ANDSCANS,STRETCH_DELETESCANS,STRETCH_HALFTONE,STRETCH_ORSCANS, or WHITEONBLACK (from win32con)Return ValueIf the function succeeds, the return value is the previous stretching mode. - -If the function fails, the return value is zero. - - - """ - pass - - -def GetStretchBltMode(hdc:'int') -> 'typing.Any': - """ - None - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns one of BLACKONWHITE,COLORONCOLOR,HALFTONE,STRETCH_ANDSCANS,STRETCH_DELETESCANS,STRETCH_HALFTONE,STRETCH_ORSCANS,WHITEONBLACK, or 0 on error. - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns one of BLACKONWHITE,COLORONCOLOR,HALFTONE,STRETCH_ANDSCANS,STRETCH_DELETESCANS,STRETCH_HALFTONE,STRETCH_ORSCANS,WHITEONBLACK, or 0 on error. - - - """ - pass - - -def TransparentBlt(Dest:'int',XOriginDest:'typing.Any',YOriginDest:'typing.Any',WidthDest:'typing.Any',HeightDest:'typing.Any',Src:'int',XOriginSrc:'typing.Any',YOriginSrc:'typing.Any',WidthSrc:'typing.Any',HeightSrc:'typing.Any',Transparent:'typing.Any') -> 'None': - """ - Transfers color from one DC to another, with one color treated as transparent - -Args: - - Dest(int):Destination device context handle - XOriginDest(typing.Any):X pos of dest rect - YOriginDest(typing.Any):Y pos of dest rect - WidthDest(typing.Any):Width of dest rect - HeightDest(typing.Any):Height of dest rect - Src(int):Source DC handle - XOriginSrc(typing.Any):X pos of src rect - YOriginSrc(typing.Any):Y pos of src rect - WidthSrc(typing.Any):Width of src rect - HeightSrc(typing.Any):Height of src rect - Transparent(typing.Any):RGB color value that will be transparent - -Returns: - - None - - """ - pass - - -def MaskBlt(Dest:'int',XDest:'typing.Any',YDest:'typing.Any',Width:'typing.Any',Height:'typing.Any',Src:'int',XSrc:'typing.Any',YSrc:'typing.Any',Mask:'win32typing.PyGdiHANDLE',xMask:'typing.Any',yMask:'typing.Any',Rop:'typing.Any') -> 'None': - """ - Combines the color data for the source and destination - -bitmaps using the specified mask and raster operation. - -Args: - - Dest(int):Destination device context handle - XDest(typing.Any):X pos of dest rect - YDest(typing.Any):Y pos of dest rect - Width(typing.Any):Width of rect to be copied - Height(typing.Any):Height of rect to be copied - Src(int):Source DC handle - XSrc(typing.Any):X pos of src rect - YSrc(typing.Any):Y pos of src rect - Mask(win32typing.PyGdiHANDLE):Handle to monochrome bitmap used to mask color - xMask(typing.Any):X pos in mask - yMask(typing.Any):Y pos in mask - Rop(typing.Any):Foreground and background raster operations. See MSDN docs for how to construct this value.CommentsThis function is not supported on Win9x.Win32 API References - -Returns: - - None - - """ - pass - - -def AlphaBlend(Dest:'int',XOriginDest:'typing.Any',YOriginDest:'typing.Any',WidthDest:'typing.Any',HeightDest:'typing.Any',Src:'int',XOriginSrc:'typing.Any',YOriginSrc:'typing.Any',WidthSrc:'typing.Any',HeightSrc:'typing.Any',blendFunction:'win32typing.PyBLENDFUNCTION') -> 'None': - """ - Transfers color information using alpha blending - -Args: - - Dest(int):Destination device context handle - XOriginDest(typing.Any):X pos of dest rect - YOriginDest(typing.Any):Y pos of dest rect - WidthDest(typing.Any):Width of dest rect - HeightDest(typing.Any):Height of dest rect - Src(int):Source DC handle - XOriginSrc(typing.Any):X pos of src rect - YOriginSrc(typing.Any):Y pos of src rect - WidthSrc(typing.Any):Width of src rect - HeightSrc(typing.Any):Height of src rect - blendFunction(win32typing.PyBLENDFUNCTION):Alpha blending parameters - -Returns: - - None - - """ - pass - - -def ImageList_Add(himl:'typing.Any',hbmImage:'win32typing.PyGdiHANDLE',hbmMask:'win32typing.PyGdiHANDLE') -> 'typing.Any': - """ - Adds an image or images to an image list. - -Args: - - himl(typing.Any):Handle to the image list. - hbmImage(win32typing.PyGdiHANDLE):Handle to the bitmap that contains the image or images. The number of images is inferred from the width of the bitmap. - hbmMask(win32typing.PyGdiHANDLE):Handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignoredReturn ValueReturns the index of the first new image if successful, or -1 otherwise. - -Returns: - - typing.Any:Handle to the bitmap that contains the mask. If no mask is used with the image list, this parameter is ignoredReturn ValueReturns the index of the first new image if successful, or -1 otherwise. - - - """ - pass - - -def ImageList_Create() -> 'typing.Any': - """ - Create an image list - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_Destroy() -> 'typing.Any': - """ - Destroy an imagelist - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_Draw() -> 'typing.Any': - """ - Draw an image on an HDC - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_DrawEx() -> 'typing.Any': - """ - Draw an image on an HDC - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_GetIcon() -> 'typing.Any': - """ - Extract an icon from an imagelist - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_GetImageCount() -> 'typing.Any': - """ - Return count of images in imagelist - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_LoadImage() -> 'typing.Any': - """ - Loads bitmaps, cursors or icons, creates imagelist - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_LoadBitmap() -> 'typing.Any': - """ - Creates an image list from the specified bitmap resource. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_Remove() -> 'typing.Any': - """ - Remove an image from an imagelist - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_Replace() -> 'typing.Any': - """ - Replace an image in an imagelist with a bitmap image - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_ReplaceIcon() -> 'typing.Any': - """ - Replace an image in an imagelist with an icon image - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_SetBkColor() -> 'typing.Any': - """ - Set the background color for the imagelist - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ImageList_SetOverlayImage(hImageList:'typing.Any',iImage:'typing.Any',iOverlay:'typing.Any') -> 'None': - """ - Adds a specified image to the list of images to be used as overlay masks. An image list can have up to four overlay masks in version 4.70 and earlier and up to 15 in version 4.71. The function assigns an overlay mask index to the specified image. - -Args: - - hImageList(typing.Any): - iImage(typing.Any): - iOverlay(typing.Any): - -Returns: - - None - - """ - pass - - -def MessageBox(parent:'typing.Any',text:'typing.Union[str]',caption:'typing.Union[str]',flags:'typing.Any') -> 'typing.Any': - """ - Displays a message box - -Args: - - parent(typing.Any):The parent window - text(typing.Union[str]):The text for the message box - caption(typing.Union[str]):The caption for the message box - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def MessageBeep(_type:'typing.Any') -> 'None': - """ - Plays a waveform sound. - -Args: - - _type(typing.Any):The type of the beep - -Returns: - - None - - """ - pass - - -def CreateWindow(className:'typing.Union[str, typing.Any]',windowTitle:'str',style:'typing.Any',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',parent:'typing.Any',menu:'typing.Any',hinstance:'typing.Any',reserved:'typing.Any') -> 'typing.Any': - """ - Creates a new window. - -Args: - - className(typing.Union[str, typing.Any]): - windowTitle(str): - style(typing.Any):The style for the window. - x(typing.Any): - y(typing.Any): - width(typing.Any): - height(typing.Any): - parent(typing.Any):Handle to the parent window. - menu(typing.Any):Handle to the menu to use for this window. - hinstance(typing.Any): - reserved(typing.Any):Must be None - -Returns: - - typing.Any - - """ - pass - - -def DestroyWindow(hwnd:'int') -> 'None': - """ - None - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - None - - """ - pass - - -def EnableWindow(hWnd:'int',bEnable:'typing.Any') -> 'typing.Any': - """ - Enables and disables keyboard and mouse input to a window - -Args: - - hWnd(int):Handle to window - bEnable(typing.Any):True to enable input to the window, False to disable inputReturn ValueReturns True if window was already disabled when call was made, False otherwise - -Returns: - - typing.Any:True to enable input to the window, False to disable inputReturn ValueReturns True if window was already disabled when call was made, False otherwise - - - """ - pass - - -def FindWindow(ClassName:'win32typing.PyResourceId',WindowName:'str') -> 'int': - """ - Retrieves a handle to the top-level window whose class name and window name match the specified strings. - -Args: - - ClassName(win32typing.PyResourceId):Name or atom of window class to find, can be None - WindowName(str):Title of window to find, can be None - -Returns: - - int - - """ - pass - - -def FindWindowEx(Parent:'int',ChildAfter:'int',ClassName:'win32typing.PyResourceId',WindowName:'str') -> 'int': - """ - Retrieves a handle to the top-level window whose class name and window name match the specified strings. - -Args: - - Parent(int):Window whose child windows will be searched. If 0, desktop window is assumed. - ChildAfter(int):Child window after which to search in Z-order, can be 0 to search all - ClassName(win32typing.PyResourceId):Name or atom of window class to find, can be None - WindowName(str):Title of window to find, can be None - -Returns: - - int - - """ - pass - - -def DragAcceptFiles(hwnd:'int',fAccept:'typing.Any') -> 'None': - """ - Registers whether a window accepts dropped files. - -Args: - - hwnd(typing.Any):Handle to the Window - fAccept(typing.Any):Value that indicates if the window identified by the hWnd parameter accepts dropped files. This value is True to accept dropped files or False to discontinue accepting dropped files. - -Returns: - - None - - """ - pass - - -def DragDetect(hwnd:'int',point:'tuple[typing.Any, typing.Any]') -> 'None': - """ - captures the mouse and tracks its movement until the user releases the left button, presses the ESC key, or moves the mouse outside the drag rectangle around the specified point. - -Args: - - hwnd(typing.Any):Handle to the Window - point(tuple[typing.Any, typing.Any]):Initial position of the mouse, in screen coordinates. The function determines the coordinates of the drag rectangle by using this point.Return ValueIf the user moved the mouse outside of the drag rectangle while holding down the left button , the return value is nonzero. If the user did not move the mouse outside of the drag rectangle while holding down the left button , the return value is zero. - -Returns: - - None:Initial position of the mouse, in screen coordinates. The function determines the coordinates of the drag rectangle by using this point.Return ValueIf the user moved the mouse outside of the drag rectangle while holding down the left button , the return value is nonzero. - -If the user did not move the mouse outside of the drag rectangle while holding down the left button , the return value is zero. - - - """ - pass - - -def SetDoubleClickTime(newVal:'typing.Any') -> 'None': - """ - None - -Args: - - newVal(typing.Any): - -Returns: - - None - - """ - pass - - -def GetDoubleClickTime() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def HideCaret(hWnd:'int') -> 'None': - """ - Hides the caret - -Args: - - hWnd(int):Window that owns the caret, can be 0. - -Returns: - - None - - """ - pass - - -def SetCaretPos(x:'typing.Any',y:'typing.Any') -> 'None': - """ - Changes the position of the caret - -Args: - - x(typing.Any):horizontal position - y(typing.Any):vertical position - -Returns: - - None - - """ - pass - - -def GetCaretPos() -> 'tuple[typing.Any, typing.Any]': - """ - Returns the current caret position - -Args: - - - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def ShowCaret(hWnd:'int') -> 'None': - """ - Shows the caret at its current position - -Args: - - hWnd(int):Window that owns the caret, can be 0. - -Returns: - - None - - """ - pass - - -def ShowWindow(hWnd:'typing.Any',cmdShow:'typing.Any') -> 'typing.Any': - """ - Shows or hides a window and changes its state - -Args: - - hWnd(typing.Any):The handle to the window - cmdShow(typing.Any):Combination of win32con.SW_* flags - -Returns: - - typing.Any - - """ - pass - - -def IsWindowVisible(hwnd:'int') -> 'typing.Any': - """ - Indicates if the window has the WS_VISIBLE style. - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - typing.Any - - """ - pass - - -def IsWindowEnabled(hwnd:'int') -> 'typing.Any': - """ - Indicates if the window is enabled. - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - typing.Any - - """ - pass - - -def SetFocus(hwnd:'int') -> 'None': - """ - Sets focus to the specified window. - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - None - - """ - pass - - -def GetFocus() -> 'None': - """ - Returns the HWND of the window with focus. - -Args: - - - -Returns: - - None - - """ - pass - - -def UpdateWindow(hwnd:'int') -> 'None': - """ - None - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - None - - """ - pass - - -def BringWindowToTop(hwnd:'int') -> 'None': - """ - None - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - None - - """ - pass - - -def SetActiveWindow(hwnd:'int') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - typing.Any - - """ - pass - - -def GetActiveWindow() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def SetForegroundWindow(hwnd:'int') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - typing.Any - - """ - pass - - -def GetForegroundWindow() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def GetClientRect(hwnd:'int') -> 'tuple[int, int, int, int]': - """ - Returns the rectangle of the client area of a window, in client coordinates - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - tuple[int, int, int, int] - - """ - pass - - -def GetDC(hwnd:'int') -> 'typing.Any': - """ - Gets the device context for the window. - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - typing.Any - - """ - pass - - -def SaveDC(hdc:'int') -> 'typing.Any': - """ - Save the state of a device context - -Args: - - hdc(int):Handle to device contextReturn ValueReturns a value identifying the state that can be passed to win32gui::RestoreDC. On error, returns 0. - -Returns: - - typing.Any:Handle to device contextReturn ValueReturns a value identifying the state that can be passed to win32gui::RestoreDC. On error, returns 0. - - - """ - pass - - -def RestoreDC(hdc:'int',SavedDC:'typing.Any') -> 'None': - """ - Restores a device context state - -Args: - - hdc(int):Handle to a device context - SavedDC(typing.Any):Identifier of state to be restored, as returned by win32gui::SaveDC. - -Returns: - - None - - """ - pass - - -def DeleteDC(hdc:'typing.Any') -> 'None': - """ - Deletes a DC - -Args: - - hdc(typing.Any):The source DC - -Returns: - - None - - """ - pass - - -def CreateCompatibleDC(dc:'typing.Any') -> 'typing.Any': - """ - Creates a memory device context (DC) compatible with the specified device. - -Args: - - dc(typing.Any):handle to DC - -Returns: - - typing.Any - - """ - pass - - -def CreateCompatibleBitmap(hdc:'typing.Any',width:'typing.Any',height:'typing.Any') -> 'win32typing.PyGdiHANDLE': - """ - Creates a bitmap compatible with the device that is associated with the specified device context. - -Args: - - hdc(typing.Any):handle to DC - width(typing.Any):width of bitmap, in pixels - height(typing.Any):height of bitmap, in pixels - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def CreateBitmap(width:'typing.Any',height:'typing.Any',cPlanes:'typing.Any',cBitsPerPixel:'typing.Any',bitmap_bits:'typing.Any') -> 'win32typing.PyGdiHANDLE': - """ - Creates a bitmap - -Args: - - width(typing.Any):bitmap width, in pixels - height(typing.Any):bitmap height, in pixels - cPlanes(typing.Any):number of color planes - cBitsPerPixel(typing.Any):number of bits to identify color - bitmap_bits(typing.Any):Must be None - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def SelectObject(hdc:'typing.Any',_object:'typing.Any') -> 'typing.Any': - """ - Selects an object into the specified device context (DC). The new object replaces the previous object of the same type. - -Args: - - hdc(typing.Any):handle to DC - _object(typing.Any):The GDI object - -Returns: - - typing.Any - - """ - pass - - -def GetCurrentObject(hdc:'int',ObjectType:'typing.Any') -> 'int': - """ - Retrieves currently selected object from a DC - -Args: - - hdc(int):Handle to a device context - ObjectType(typing.Any):Type of object to retrieve, one of win32con.OBJ_*; - -Returns: - - int - - """ - pass - - -def GetWindowRect(hwnd:'int') -> 'tuple[int, int, int, int]': - """ - Returns the rectangle for a window in screen coordinates - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - tuple[int, int, int, int] - - """ - pass - - -def GetStockObject(Object:'typing.Any') -> 'int': - """ - Creates a handle to one of the standard system Gdi objects - -Args: - - Object(typing.Any):One of *_BRUSH, *_PEN, *_FONT, or *_PALLETTE constants - -Returns: - - int - - """ - pass - - -def PostQuitMessage(rc:'typing.Any') -> 'None': - """ - None - -Args: - - rc(typing.Any): - -Returns: - - None - - """ - pass - - -def WaitMessage() -> 'None': - """ - Waits for a message - -Args: - - - -Returns: - - None - - """ - pass - - -def SetWindowPos(hWnd:'int',InsertAfter:'int',X:'typing.Any',Y:'typing.Any',cx:'typing.Any',cy:'typing.Any',Flags:'typing.Any') -> 'None': - """ - Sets the position and size of a window - -Args: - - hWnd(int):Handle to the window - InsertAfter(int):Window that hWnd will be placed below. Can be a window handle or one of HWND_BOTTOM,HWND_NOTOPMOST,HWND_TOP, or HWND_TOPMOST - X(typing.Any):New X coord - Y(typing.Any):New Y coord - cx(typing.Any):New width of window - cy(typing.Any):New height of window - Flags(typing.Any):Combination of win32con.SWP_* flags - -Returns: - - None - - """ - pass - - -def GetWindowPlacement() -> 'typing.Any': - """ - Returns placement information about the current window. - -Args: - - - -Returns: - - typing.Any:win32gui.GetWindowPlacement - -tuple = GetWindowPlacement()Returns placement information about the current window. -Return ValueThe result is a tuple of - -(flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) - - - -Item - - -Description - - - -flagsOne of the WPF_* constants -showCmdCurrent state - one of the SW_* constants. -minposSpecifies the coordinates of the window's upper-left corner when the window is minimized. -maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. -normalposSpecifies the window's coordinates when the window is in the restored position. - - - """ - pass - - -def SetWindowPlacement(hWnd:'int',placement:'typing.Any') -> 'None': - """ - Sets the windows placement - -Args: - - hWnd(int):Handle to a window - placement(typing.Any):A tuple representing the WINDOWPLACEMENT structure. - -Returns: - - None - - """ - pass - - -def RegisterClass(wndClass:'win32typing.PyWNDCLASS') -> 'typing.Any': - """ - Registers a window class. - -Args: - - wndClass(win32typing.PyWNDCLASS):An object describing the window class. - -Returns: - - typing.Any - - """ - pass - - -def UnregisterClass(atom:'win32typing.PyResourceId',hinst:'int') -> 'None': - """ - None - -Args: - - atom(win32typing.PyResourceId):The atom or classname identifying the class previously registered. - hinst(int):The handle to the instance unregistering the class, can be None - -Returns: - - None - - """ - pass - - -def PumpMessages() -> 'None': - """ - Runs a message loop until a WM_QUIT message is received. - -Args: - - - -Returns: - - None:win32gui::PumpWaitingMessages -Return ValueReturns exit code from PostQuitMessage when a WM_QUIT message is received - - - """ - pass - - -def PumpWaitingMessages() -> 'typing.Any': - """ - Pumps all waiting messages for the current thread. - -Args: - - - -Returns: - - typing.Any:Search for PeekMessage and DispatchMessage at msdn, google or google groups. -Return ValueReturns non-zero (exit code from PostQuitMessage) if a WM_QUIT message was received, else 0 - - - """ - pass - - -def GetMessage(hwnd:'int',_min:'typing.Any',_max:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any): - _min(typing.Any): - _max(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def TranslateMessage(msg:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - msg(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def DispatchMessage(msg:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - msg(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def TranslateAccelerator(hwnd:'int',haccel:'typing.Any',msg:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any): - haccel(typing.Any): - msg(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def PeekMessage(hwnd:'int',filterMin:'typing.Any',filterMax:'typing.Any',removalOptions:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any): - filterMin(typing.Any): - filterMax(typing.Any): - removalOptions(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def Shell_NotifyIcon(Message:'typing.Any',nid:'win32typing.PyNOTIFYICONDATA') -> 'None': - """ - Adds, removes or modifies a taskbar icon. - -Args: - - Message(typing.Any):One of win32gui.NIM_* flags - nid(win32typing.PyNOTIFYICONDATA):Tuple containing NOTIFYICONDATA info - -Returns: - - None - - """ - pass - - -def GetSystemMenu(hwnd:'int',bRevert:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hwnd(typing.Any):The handle to the window - bRevert(typing.Any):Return ValueThe result is a HMENU to the menu. - -Returns: - - typing.Any:Return ValueThe result is a HMENU to the menu. - - - """ - pass - - -def DrawMenuBar(hwnd:'int') -> 'None': - """ - None - -Args: - - hwnd(typing.Any):The handle to the window - -Returns: - - None - - """ - pass - - -def MoveWindow(hwnd:'int',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',bRepaint:'typing.Any') -> 'None': - """ - None - -Args: - - hwnd(typing.Any):The handle to the window - x(typing.Any): - y(typing.Any): - width(typing.Any): - height(typing.Any): - bRepaint(typing.Any): - -Returns: - - None - - """ - pass - - -def CloseWindow() -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -def DeleteMenu(hmenu:'typing.Any',position:'typing.Any',flags:'typing.Any') -> 'None': - """ - None - -Args: - - hmenu(typing.Any):The handle to the menu - position(typing.Any):The position to delete. - flags(typing.Any): - -Returns: - - None - - """ - pass - - -def RemoveMenu(hmenu:'typing.Any',position:'typing.Any',flags:'typing.Any') -> 'None': - """ - None - -Args: - - hmenu(typing.Any):The handle to the menu - position(typing.Any):The position to delete. - flags(typing.Any): - -Returns: - - None - - """ - pass - - -def CreateMenu() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any:win32gui.CreateMenu - -int = CreateMenu() -Return ValueThe result is a HMENU to the new menu. - - - """ - pass - - -def CreatePopupMenu() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any:win32gui.CreatePopupMenu - -int = CreatePopupMenu() -Return ValueThe result is a HMENU to the new menu. - - - """ - pass - - -def TrackPopupMenu(hmenu:'typing.Any',flags:'typing.Any',x:'typing.Any',y:'typing.Any',reserved:'typing.Any',hwnd:'int',prcRect:'win32typing.PyRECT') -> 'typing.Any': - """ - Display popup shortcut menu - -Args: - - hmenu(typing.Any):The handle to the menu - flags(typing.Any):flags - x(typing.Any):x pos - y(typing.Any):y pos - reserved(typing.Any):reserved - hwnd(typing.Any):owner window - prcRect(win32typing.PyRECT):Pointer to rec (can be None) - -Returns: - - typing.Any - - """ - pass - - -def CommDlgExtendedError() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def ExtractIcon(hinstance:'typing.Any',moduleName:'typing.Union[str]',index:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hinstance(typing.Any): - moduleName(typing.Union[str]): - index(typing.Any):CommentsYou must destroy the icon handle returned by calling the win32gui::DestroyIcon function.Return ValueThe result is a HICON. - -Returns: - - typing.Any:Comments - -You must destroy the icon handle returned by calling the win32gui::DestroyIcon function. -Return ValueThe result is a HICON. - - - """ - pass - - -def ExtractIconEx(moduleName:'str',index:'typing.Any',numIcons:'typing.Any'=1) -> 'typing.Any': - """ - None - -Args: - - moduleName(str): - index(typing.Any): - numIcons(typing.Any):CommentsYou must destroy each icon handle returned by calling the win32gui::DestroyIcon function.Return ValueIf index==-1, the result is an integer with the number of icons in the file, otherwise it is 2 arrays of icon handles. - -Returns: - - typing.Any: -Comments - -You must destroy each icon handle returned by calling the win32gui::DestroyIcon function. -Return ValueIf index==-1, the result is an integer with the number of icons in - -the file, otherwise it is 2 arrays of icon handles. - - - """ - pass - - -def DestroyIcon(hicon:'typing.Any') -> 'None': - """ - None - -Args: - - hicon(typing.Any):The icon to destroy. - -Returns: - - None - - """ - pass - - -def GetIconInfo(hicon:'int') -> 'win32typing.PyICONINFO': - """ - Returns parameters for an icon or cursor - -Args: - - hicon(int):The icon to queryReturn ValueThe result is a tuple of (fIcon, xHotspot, yHotspot, hbmMask, hbmColor) The hbmMask and hbmColor items are bitmaps created for the caller, so must be freed. - -Returns: - - win32typing.PyICONINFO:The icon to queryReturn ValueThe result is a tuple of (fIcon, xHotspot, yHotspot, hbmMask, hbmColor) - -The hbmMask and hbmColor items are bitmaps created for the caller, so must be freed. - - - """ - pass - - -def ScreenToClient(hWnd:'int',Point:'tuple[typing.Any, typing.Any]') -> 'tuple[typing.Any, typing.Any]': - """ - Convert screen coordinates to client coords - -Args: - - hWnd(int):Handle to a window - Point(tuple[typing.Any, typing.Any]):Screen coordinates to be converted - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def ClientToScreen(hWnd:'int',Point:'tuple[typing.Any, typing.Any]') -> 'tuple[typing.Any, typing.Any]': - """ - Convert client coordinates to screen coords - -Args: - - hWnd(int):Handle to a window - Point(tuple[typing.Any, typing.Any]):Client coordinates to be converted - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def PaintDesktop(hdc:'int') -> 'None': - """ - Fills a DC with the destop background - -Args: - - hdc(int):Handle to a device context - -Returns: - - None - - """ - pass - - -def RedrawWindow(hWnd:'int',rcUpdate:'tuple[int, int, int, int]',hrgnUpdate:'win32typing.PyGdiHANDLE',flags:'typing.Any') -> 'None': - """ - Causes a portion of a window to be redrawn - -Args: - - hWnd(int):Handle to window to be redrawn - rcUpdate(tuple[int, int, int, int]):Rectangle (left, top, right, bottom) identifying part of window to be redrawn, can be None - hrgnUpdate(win32typing.PyGdiHANDLE):Handle to region to be redrawn, can be None to indicate entire client area - flags(typing.Any):Combination of win32con.RDW_* flags - -Returns: - - None - - """ - pass - - -def GetTextExtentPoint32(hdc:'int',_str:'str') -> 'tuple[typing.Any, typing.Any]': - """ - Computes the width and height of the specified string of text. - -Args: - - hdc(int):The device context - _str(str):The string to measure. - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def GetTextMetrics() -> 'typing.Any': - """ - Returns info for the font selected into a DC - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def GetTextCharacterExtra(hdc:'int') -> 'typing.Any': - """ - Returns the space between characters - -Args: - - hdc(int):Handle to a device context - -Returns: - - typing.Any - - """ - pass - - -def SetTextCharacterExtra(hdc:'int',CharExtra:'typing.Any') -> 'typing.Any': - """ - Sets the spacing between characters - -Args: - - hdc(int):Handle to a device context - CharExtra(typing.Any):Space between adjacent chars, in logical unitsReturn ValueReturns the previous spacing - -Returns: - - typing.Any:Space between adjacent chars, in logical unitsReturn ValueReturns the previous spacing - - - """ - pass - - -def GetTextAlign(hdc:'int') -> 'typing.Any': - """ - Returns horizontal and vertical alignment for text in a device context - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns combination of win32con.TA_* flags - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns combination of win32con.TA_* flags - - - """ - pass - - -def SetTextAlign(hdc:'int',Mode:'typing.Any') -> 'typing.Any': - """ - Sets horizontal and vertical alignment for text in a device context - -Args: - - hdc(int):Handle to a device context - Mode(typing.Any):Combination of win32con.TA_* constantsReturn ValueReturns the previous alignment flags - -Returns: - - typing.Any:Combination of win32con.TA_* constantsReturn ValueReturns the previous alignment flags - - - """ - pass - - -def GetTextFace(hdc:'int') -> 'str': - """ - Retrieves the name of the font currently selected in a DC - -Args: - - hdc(int):Handle to a device contextCommentsCalls unicode api function (GetTextFaceW) - -Returns: - - str - - """ - pass - - -def GetMapMode(hdc:'int') -> 'typing.Any': - """ - Returns the method a device context uses to translate logical units to physical units - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns one of win32con.MM_* values - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns one of win32con.MM_* values - - - """ - pass - - -def SetMapMode(hdc:'int',MapMode:'typing.Any') -> 'typing.Any': - """ - Sets the method used for translating logical units to device units - -Args: - - hdc(int):Handle to a device context - MapMode(typing.Any):The new mapping mode (win32con.MM_*)Return ValueReturns the previous mapping mode, one of win32con.MM_* constants - -Returns: - - typing.Any:The new mapping mode (win32con.MM_*)Return ValueReturns the previous mapping mode, one of win32con.MM_* constants - - - """ - pass - - -def GetGraphicsMode(hdc:'int') -> 'typing.Any': - """ - Determines if advanced GDI features are enabled for a device context - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns GM_COMPATIBLE or GM_ADVANCED - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns GM_COMPATIBLE or GM_ADVANCED - - - """ - pass - - -def SetGraphicsMode(hdc:'int',Mode:'typing.Any') -> 'typing.Any': - """ - Enables or disables advanced graphics features for a DC - -Args: - - hdc(int):Handle to a device context - Mode(typing.Any):GM_COMPATIBLE or GM_ADVANCED (from win32con)Return ValueReturns the previous mode, one of win32con.GM_COMPATIBLE or win32con.GM_ADVANCED - -Returns: - - typing.Any:GM_COMPATIBLE or GM_ADVANCED (from win32con)Return ValueReturns the previous mode, one of win32con.GM_COMPATIBLE or win32con.GM_ADVANCED - - - """ - pass - - -def GetLayout(hdc:'int') -> 'typing.Any': - """ - Retrieves the layout mode of a device context - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns one of win32con.LAYOUT_* - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns one of win32con.LAYOUT_* - - - """ - pass - - -def SetLayout(hdc:'int',Layout:'typing.Any') -> 'typing.Any': - """ - Sets the layout for a device context - -Args: - - hdc(int):Handle to a device context - Layout(typing.Any):One of win32con.LAYOUT_* constantsReturn ValueReturns the previous layout mode - -Returns: - - typing.Any:One of win32con.LAYOUT_* constantsReturn ValueReturns the previous layout mode - - - """ - pass - - -def GetPolyFillMode(hdc:'int') -> 'typing.Any': - """ - Returns the polygon filling mode for a device context - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns win32con.ALTERNATE or win32con.WINDING - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns win32con.ALTERNATE or win32con.WINDING - - - """ - pass - - -def SetPolyFillMode(hdc:'int',PolyFillMode:'typing.Any') -> 'typing.Any': - """ - Sets the polygon filling mode for a device context - -Args: - - hdc(int):Handle to a device context - PolyFillMode(typing.Any):One of ALTERNATE or WINDINGReturn ValueReturns the previous mode, one of win32con.ALTERNATE or win32con.WINDING - -Returns: - - typing.Any:One of ALTERNATE or WINDINGReturn ValueReturns the previous mode, one of win32con.ALTERNATE or win32con.WINDING - - - """ - pass - - -def GetWorldTransform(hdc:'int') -> 'win32typing.PyXFORM': - """ - Retrieves a device context's coordinate space translation matrix - -Args: - - hdc(int):Handle to a device contextCommentsDC's mode must be set to GM_ADVANCED. See win32gui::SetGraphicsMode. - -Returns: - - win32typing.PyXFORM - - """ - pass - - -def SetWorldTransform(hdc:'int',Xform:'win32typing.PyXFORM') -> 'None': - """ - Transforms a device context's coordinate space - -Args: - - hdc(int):Handle to a device context - Xform(win32typing.PyXFORM):Matrix defining the transformationCommentsDC's mode must be set to GM_ADVANCED. See win32gui::SetGraphicsMode. - -Returns: - - None - - """ - pass - - -def ModifyWorldTransform(hdc:'int',Xform:'win32typing.PyXFORM',Mode:'typing.Any') -> 'None': - """ - Combines a coordinate tranformation with device context's current transformation - -Args: - - hdc(int):Handle to a device context - Xform(win32typing.PyXFORM):Transformation to be applied. Ignored if Mode is MWT_IDENTITY. - Mode(typing.Any):One of win32con.MWT_* values specifying how transformations will be combinedCommentsDC's mode must be set to GM_ADVANCED. See win32gui::SetGraphicsMode. - -Returns: - - None - - """ - pass - - -def CombineTransform(xform1:'win32typing.PyXFORM',xform2:'win32typing.PyXFORM') -> 'win32typing.PyXFORM': - """ - Combines two coordinate space transformations - -Args: - - xform1(win32typing.PyXFORM):First transformation - xform2(win32typing.PyXFORM):Second transformation - -Returns: - - win32typing.PyXFORM - - """ - pass - - -def GetWindowOrgEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': - """ - Retrievs the window origin for a DC - -Args: - - hdc(int):Handle to a device context - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def SetWindowOrgEx(hdc:'int',X:'typing.Any',Y:'typing.Any') -> 'tuple[typing.Any, typing.Any]': - """ - Changes the window origin for a DC - -Args: - - hdc(int):Handle to a device context - X(typing.Any):New X coord in logical units - Y(typing.Any):New Y coord in logical unitsReturn ValueReturns the previous origin - -Returns: - - tuple[typing.Any, typing.Any]:New Y coord in logical unitsReturn ValueReturns the previous origin - - - """ - pass - - -def GetViewportOrgEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': - """ - Retrievs the origin for a DC's viewport - -Args: - - hdc(int):Handle to a device context - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def SetViewportOrgEx(hdc:'int',X:'typing.Any',Y:'typing.Any') -> 'tuple[typing.Any, typing.Any]': - """ - Changes the viewport origin for a DC - -Args: - - hdc(int):Handle to a device context - X(typing.Any):New X coord in logical units - Y(typing.Any):New Y coord in logical unitsReturn ValueReturns the previous origin as (x,y) - -Returns: - - tuple[typing.Any, typing.Any]:New Y coord in logical unitsReturn ValueReturns the previous origin as (x,y) - - - """ - pass - - -def GetWindowExtEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': - """ - Retrieves the window extents for a DC - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns the extents as (x,y) in logical units - -Returns: - - tuple[typing.Any, typing.Any]:Handle to a device contextReturn ValueReturns the extents as (x,y) in logical units - - - """ - pass - - -def SetWindowExtEx(hdc:'int',XExtent:'typing.Any',YExtent:'typing.Any') -> 'tuple[typing.Any, typing.Any]': - """ - Changes the window extents for a DC - -Args: - - hdc(int):Handle to a device context - XExtent(typing.Any):New X extent in logical units - YExtent(typing.Any):New Y extent in logical unitsReturn ValueReturns the previous extents - -Returns: - - tuple[typing.Any, typing.Any]:New Y extent in logical unitsReturn ValueReturns the previous extents - - - """ - pass - - -def GetViewportExtEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': - """ - Retrieves the viewport extents for a DC - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns the extents as (x,y) in logical units - -Returns: - - tuple[typing.Any, typing.Any]:Handle to a device contextReturn ValueReturns the extents as (x,y) in logical units - - - """ - pass - - -def SetViewportExtEx(hdc:'int',XExtent:'typing.Any',YExtent:'typing.Any') -> 'tuple[typing.Any, typing.Any]': - """ - Changes the viewport extents for a DC - -Args: - - hdc(int):Handle to a device context - XExtent(typing.Any):New X extent in logical units - YExtent(typing.Any):New Y extent in logical unitsReturn ValueReturns the previous extents as (x,y) in logical units - -Returns: - - tuple[typing.Any, typing.Any]:New Y extent in logical unitsReturn ValueReturns the previous extents as (x,y) in logical units - - - """ - pass - - -def GradientFill(hdc:'typing.Any',Vertex:'tuple[win32typing.PyTRIVERTEX, ...]',Mesh:'typing.Any',Mode:'typing.Any') -> 'None': - """ - Shades triangles or rectangles by interpolating between vertex colors - -Args: - - hdc(typing.Any):Handle to device context - Vertex(tuple[win32typing.PyTRIVERTEX, ...]):Sequence of TRIVERTEX dicts defining color info - Mesh(typing.Any):Sequence of tuples containing either 2 or 3 ints that index into the trivertex array to define either triangles or rectangles - Mode(typing.Any):win32con.GRADIENT_FILL_* value defining whether to fill by triangle or by rectangle - -Returns: - - None - - """ - pass - - -def GetOpenFileName(OPENFILENAME:'typing.Union[str, typing.Any]') -> 'typing.Any': - """ - Creates an Open dialog box that lets the user specify the drive, directory, and the name of a file or set of files to open. - -Args: - - OPENFILENAME(typing.Union[str, typing.Any]):A string packed into an OPENFILENAME structure, probably via the struct module.CommentsThe win32gui::GetOpenFileNameW function is far more convenient to use.Return ValueIf the user presses OK, the function returns TRUE. Otherwise, use CommDlgExtendedError for error details (ie, a win32gui.error is raised). If the user cancels the dialog, the winerror attribute of the exception will be zero. - -Returns: - - typing.Any:A string packed into an OPENFILENAME structure, probably via the struct module.Comments - -The win32gui::GetOpenFileNameW function is far more convenient to use. -Return ValueIf the user presses OK, the function returns TRUE. Otherwise, use CommDlgExtendedError for error details - -(ie, a win32gui.error is raised). If the user cancels the dialog, the winerror attribute of the exception will be zero. - - - """ - pass - - -def InsertMenuItem(hMenu:'typing.Any',uItem:'typing.Any',fByPosition:'typing.Any',menuItem:'typing.Any') -> 'None': - """ - Inserts a menu item - -Args: - - hMenu(typing.Any):Handle to the menu - uItem(typing.Any):The menu item identifier or the menu item position. - fByPosition(typing.Any):Boolean value of True if uItem is set to a menu item position. This parameter is set to False if uItem is set to a menu item identifier. - menuItem(typing.Any):A string or buffer in the format of a MENUITEMINFO structure. - -Returns: - - None - - """ - pass - - -def SetMenuItemInfo(hMenu:'typing.Any',uItem:'typing.Any',fByPosition:'typing.Any',menuItem:'typing.Any') -> 'None': - """ - Sets menu information - -Args: - - hMenu(typing.Any):Handle to the menu - uItem(typing.Any):The menu item identifier or the menu item position. - fByPosition(typing.Any):Boolean value of True if uItem is set to a menu item position. This parameter is set to False if uItem is set to a menu item identifier. - menuItem(typing.Any):A string or buffer in the format of a MENUITEMINFO structure. - -Returns: - - None - - """ - pass - - -def GetMenuItemInfo(hMenu:'typing.Any',uItem:'typing.Any',fByPosition:'typing.Any',menuItem:'typing.Any') -> 'None': - """ - Gets menu information - -Args: - - hMenu(typing.Any):Handle to the menu - uItem(typing.Any):The menu item identifier or the menu item position. - fByPosition(typing.Any):Boolean value of True if uItem is set to a menu item position. This parameter is set to False if uItem is set to a menu item identifier. - menuItem(typing.Any):A string or buffer in the format of a MENUITEMINFO structure. - -Returns: - - None - - """ - pass - - -def GetMenuItemCount(hMenu:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hMenu(typing.Any):Handle to the menu - -Returns: - - typing.Any - - """ - pass - - -def GetMenuItemRect(hWnd:'typing.Any',hMenu:'typing.Any',uItem:'typing.Any') -> 'tuple[int, int, int, int]': - """ - None - -Args: - - hWnd(typing.Any): - hMenu(typing.Any):Handle to the menu - uItem(typing.Any): - -Returns: - - tuple[int, int, int, int] - - """ - pass - - -def GetMenuState(hMenu:'typing.Any',uID:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hMenu(typing.Any):Handle to the menu - uID(typing.Any): - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def SetMenuDefaultItem(hMenu:'typing.Any',uItem:'typing.Any',fByPos:'typing.Any') -> 'None': - """ - None - -Args: - - hMenu(typing.Any):Handle to the menu - uItem(typing.Any): - fByPos(typing.Any): - -Returns: - - None - - """ - pass - - -def GetMenuDefaultItem(hMenu:'typing.Any',fByPos:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hMenu(typing.Any):Handle to the menu - fByPos(typing.Any): - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def AppendMenu() -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -def InsertMenu() -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -def EnableMenuItem() -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -def CheckMenuItem() -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def GetSubMenu(hMenu:'typing.Any',nPos:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - hMenu(typing.Any):Handle to the menu - nPos(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -def ModifyMenu(hMnu:'typing.Any',uPosition:'typing.Any',uFlags:'typing.Any',uIDNewItem:'typing.Any',newItem:'str') -> 'None': - """ - Changes an existing menu item. This function is used to specify the content, appearance, and behavior of the menu item. - -Args: - - hMnu(typing.Any):handle to menu - uPosition(typing.Any):menu item to modify - uFlags(typing.Any):options - uIDNewItem(typing.Any):identifier, menu, or submenu - newItem(str):menu item content - -Returns: - - None - - """ - pass - - -def GetMenuItemID(hMenu:'typing.Any',nPos:'typing.Any') -> 'typing.Any': - """ - Retrieves the menu item identifier of a menu item located at the specified position in a menu. - -Args: - - hMenu(typing.Any):handle to menu - nPos(typing.Any):position of menu item - -Returns: - - typing.Any - - """ - pass - - -def SetMenuItemBitmaps(hMenu:'typing.Any',uPosition:'typing.Any',uFlags:'typing.Any',hBitmapUnchecked:'win32typing.PyGdiHANDLE',hBitmapChecked:'win32typing.PyGdiHANDLE') -> 'None': - """ - Associates the specified bitmap with a menu item. Whether the menu item is selected or clear, the system displays the appropriate bitmap next to the menu item. - -Args: - - hMenu(typing.Any):handle to menu - uPosition(typing.Any):menu item - uFlags(typing.Any):options - hBitmapUnchecked(win32typing.PyGdiHANDLE):handle to unchecked bitmap, can be None - hBitmapChecked(win32typing.PyGdiHANDLE):handle to checked bitmap, can be None - -Returns: - - None - - """ - pass - - -def CheckMenuRadioItem(hMenu:'typing.Any',idFirst:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any',uFlags:'typing.Any') -> 'None': - """ - Checks a specified menu item and makes it a - -radio item. At the same time, the function clears all other menu items in - -the associated group and clears the radio-item type flag for those items. - -Args: - - hMenu(typing.Any):handle to menu - idFirst(typing.Any):identifier or position of first item - idLast(typing.Any):identifier or position of last item - idCheck(typing.Any):identifier or position of item to check - uFlags(typing.Any):options - -Returns: - - None - - """ - pass - - -def SetMenuInfo(hmenu:'typing.Any',info:'typing.Any') -> 'None': - """ - Sets information for a specified menu. - -Args: - - hmenu(typing.Any):handle to menu - info(typing.Any):menu information in the format of a buffer.CommentsSee win32gui_struct for helper functions.This function will raise NotImplementedError on early platforms (eg, Windows NT.) - -Returns: - - None - - """ - pass - - -def GetMenuInfo(hmenu:'typing.Any',info:'typing.Any') -> 'None': - """ - Gets information about a specified menu. - -Args: - - hmenu(typing.Any):handle to menu - info(typing.Any):A buffer to fill with the information.CommentsSee win32gui_struct for helper functions.This function will raise NotImplementedError on early platforms (eg, Windows NT.) - -Returns: - - None - - """ - pass - - -def DrawFocusRect(hDC:'int',rc:'tuple[int, int, int, int]') -> 'None': - """ - Draws a standard focus outline around a rectangle - -Args: - - hDC(int):Handle to a device context - rc(tuple[int, int, int, int]):Tuple of (left,top,right,bottom) defining the rectangle - -Returns: - - None - - """ - pass - - -def DrawText(hDC:'typing.Union[typing.Any, int]',String:'typing.Any',nCount:'typing.Any',Rect:'win32typing.PyRECT',Format:'typing.Any') -> 'tuple[typing.Any, win32typing.PyRECT]': - """ - Draws formatted text on a device context - -Args: - - hDC(typing.Union[typing.Any, int]):The device context on which to draw - String(typing.Any):The text to be drawn - nCount(typing.Any):The number of characters, use -1 for simple null-terminated string - Rect(win32typing.PyRECT):Tuple of 4 ints specifying the position (left, top, right, bottom) - Format(typing.Any):Formatting flags, combination of win32con.DT_* valuesReturn ValueReturns the height of the drawn text, and the rectangle coordinates - -Returns: - - tuple[typing.Any, win32typing.PyRECT]:Formatting flags, combination of win32con.DT_* valuesReturn ValueReturns the height of the drawn text, and the rectangle coordinates - - - """ - pass - - -def LineTo(hdc:'int',XEnd:'typing.Any',YEnd:'typing.Any') -> 'None': - """ - Draw a line from current position to specified point - -Args: - - hdc(int):Handle to a device context - XEnd(typing.Any):Horizontal position in logical units - YEnd(typing.Any):Vertical position in logical units - -Returns: - - None - - """ - pass - - -def Ellipse(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any') -> 'None': - """ - Draws a filled ellipse on a device context - -Args: - - hdc(int):Device context on which to draw - LeftRect(typing.Any):Left limit of ellipse - TopRect(typing.Any):Top limit of ellipse - RightRect(typing.Any):Right limit of ellipse - BottomRect(typing.Any):Bottom limit of ellipse - -Returns: - - None - - """ - pass - - -def Pie(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',XRadial1:'typing.Any',YRadial1:'typing.Any',XRadial2:'typing.Any',YRadial2:'typing.Any') -> 'None': - """ - Draws a section of an ellipse cut by 2 radials - -Args: - - hdc(int):Device context on which to draw - LeftRect(typing.Any):Left limit of ellipse - TopRect(typing.Any):Top limit of ellipse - RightRect(typing.Any):Right limit of ellipse - BottomRect(typing.Any):Bottom limit of ellipse - XRadial1(typing.Any):Horizontal pos of Radial1 endpoint - YRadial1(typing.Any):Vertical pos of Radial1 endpoint - XRadial2(typing.Any):Horizontal pos of Radial2 endpoint - YRadial2(typing.Any):Vertical pos of Radial2 endpoint - -Returns: - - None - - """ - pass - - -def Arc(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',XRadial1:'typing.Any',YRadial1:'typing.Any',XRadial2:'typing.Any',YRadial2:'typing.Any') -> 'None': - """ - Draws an arc defined by an ellipse and 2 radials - -Args: - - hdc(int):Device context on which to draw - LeftRect(typing.Any):Left limit of ellipse - TopRect(typing.Any):Top limit of ellipse - RightRect(typing.Any):Right limit of ellipse - BottomRect(typing.Any):Bottom limit of ellipse - XRadial1(typing.Any):Horizontal pos of Radial1 endpoint - YRadial1(typing.Any):Vertical pos of Radial1 endpoint - XRadial2(typing.Any):Horizontal pos of Radial2 endpoint - YRadial2(typing.Any):Vertical pos of Radial2 endpoint - -Returns: - - None - - """ - pass - - -def ArcTo(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',XRadial1:'typing.Any',YRadial1:'typing.Any',XRadial2:'typing.Any',YRadial2:'typing.Any') -> 'None': - """ - Draws an arc defined by an ellipse and 2 radials - -Args: - - hdc(int):Device context on which to draw - LeftRect(typing.Any):Left limit of ellipse - TopRect(typing.Any):Top limit of ellipse - RightRect(typing.Any):Right limit of ellipse - BottomRect(typing.Any):Bottom limit of ellipse - XRadial1(typing.Any):Horizontal pos of Radial1 endpoint - YRadial1(typing.Any):Vertical pos of Radial1 endpoint - XRadial2(typing.Any):Horizontal pos of Radial2 endpoint - YRadial2(typing.Any):Vertical pos of Radial2 endpointCommentsDraws exactly as win32gui::Arc, but changes current drawing position - -Returns: - - None - - """ - pass - - -def AngleArc(hdc:'int',Y:'typing.Any',Y1:'typing.Any',Radius:'typing.Any',StartAngle:'float',SweepAngle:'float') -> 'None': - """ - Draws a line from current pos and a section of a circle's arc - -Args: - - hdc(int):Handle to a device context - Y(typing.Any):x pos of circle - Y1(typing.Any):y pos of circle - Radius(typing.Any):Radius of circle - StartAngle(float):Angle where arc starts, in degrees - SweepAngle(float):Angle that arc covers, in degrees - -Returns: - - None - - """ - pass - - -def Chord(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',XRadial1:'typing.Any',YRadial1:'typing.Any',XRadial2:'typing.Any',YRadial2:'typing.Any') -> 'None': - """ - Draws a chord defined by an ellipse and 2 radials - -Args: - - hdc(int):Device context on which to draw - LeftRect(typing.Any):Left limit of ellipse - TopRect(typing.Any):Top limit of ellipse - RightRect(typing.Any):Right limit of ellipse - BottomRect(typing.Any):Bottom limit of ellipse - XRadial1(typing.Any):Horizontal pos of Radial1 endpoint - YRadial1(typing.Any):Vertical pos of Radial1 endpoint - XRadial2(typing.Any):Horizontal pos of Radial2 endpoint - YRadial2(typing.Any):Vertical pos of Radial2 endpoint - -Returns: - - None - - """ - pass - - -def ExtFloodFill(arg:'int',XStart:'typing.Any',YStart:'typing.Any',Color:'typing.Any',FillType:'typing.Any') -> 'None': - """ - Fills an area with current brush - -Args: - - arg(int):Handle to a device context - XStart(typing.Any):Horizontal starting pos - YStart(typing.Any):Vertical starting pos - Color(typing.Any):RGB color value. See win32api::RGB. - FillType(typing.Any):One of win32con.FLOODFILL* values - -Returns: - - None - - """ - pass - - -def SetPixel(hdc:'int',X:'typing.Any',Y:'typing.Any',Color:'typing.Any') -> 'typing.Any': - """ - Set the color of a single pixel - -Args: - - hdc(int):Handle to a device context - X(typing.Any):Horizontal pos - Y(typing.Any):Vertical pos - Color(typing.Any):RGB color to be set.Return ValueReturns the RGB color actually set, which may be different from the one passed in - -Returns: - - typing.Any:RGB color to be set.Return ValueReturns the RGB color actually set, which may be different from the one passed in - - - """ - pass - - -def GetPixel(hdc:'int',XPos:'typing.Any',YPos:'typing.Any') -> 'typing.Any': - """ - Returns the RGB color of a single pixel - -Args: - - hdc(int):Handle to a device context - XPos(typing.Any):Horizontal pos - YPos(typing.Any):Vertical pos - -Returns: - - typing.Any - - """ - pass - - -def GetROP2(hdc:'int') -> 'typing.Any': - """ - Returns the foreground mixing mode of a DC - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns one of win32con.R2_* values - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns one of win32con.R2_* values - - - """ - pass - - -def SetROP2(hdc:'int',DrawMode:'typing.Any') -> 'typing.Any': - """ - Sets the foreground mixing mode of a DC - -Args: - - hdc(int):Handle to a device context - DrawMode(typing.Any):Mixing mode, one of win32con.R2_*.Return ValueReturns previous mode - -Returns: - - typing.Any:Mixing mode, one of win32con.R2_*.Return ValueReturns previous mode - - - """ - pass - - -def SetPixelV(hdc:'int',X:'typing.Any',Y:'typing.Any',Color:'typing.Any') -> 'None': - """ - Sets the color of a single pixel to an approximation of specified color - -Args: - - hdc(int):Handle to a device context - X(typing.Any):Horizontal pos - Y(typing.Any):Vertical pos - Color(typing.Any):RGB color to be set. - -Returns: - - None - - """ - pass - - -def MoveToEx(hdc:'int',X:'typing.Any',Y:'typing.Any') -> 'tuple[typing.Any, typing.Any]': - """ - Changes the current drawing position - -Args: - - hdc(int):Device context handle - X(typing.Any):Horizontal pos in logical units - Y(typing.Any):Vertical pos in logical unitsReturn ValueReturns the previous position as (X, Y) - -Returns: - - tuple[typing.Any, typing.Any]:Vertical pos in logical unitsReturn ValueReturns the previous position as (X, Y) - - - """ - pass - - -def GetCurrentPositionEx(hdc:'int') -> 'tuple[typing.Any, typing.Any]': - """ - Returns a device context's current drawing position - -Args: - - hdc(int):Device context - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def GetArcDirection(hdc:'int') -> 'typing.Any': - """ - Returns the direction in which rectangles and arcs are drawn - -Args: - - hdc(int):Handle to a device contextReturn ValueRecturns one of win32con.AD_* values - -Returns: - - typing.Any:Handle to a device contextReturn ValueRecturns one of win32con.AD_* values - - - """ - pass - - -def SetArcDirection(hdc:'int',ArcDirection:'typing.Any') -> 'typing.Any': - """ - Sets the drawing direction for arcs and rectangles - -Args: - - hdc(int):Handle to a device context - ArcDirection(typing.Any):One of win32con.AD_* constantsReturn ValueReturns the previous direction, or 0 on error. - -Returns: - - typing.Any:One of win32con.AD_* constantsReturn ValueReturns the previous direction, or 0 on error. - - - """ - pass - - -def Polygon(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': - """ - Draws a closed filled polygon defined by a sequence of points - -Args: - - hdc(int):Handle to a device context - Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...) - -Returns: - - None - - """ - pass - - -def Polyline(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': - """ - Connects a sequence of points using currently selected pen - -Args: - - hdc(int):Handle to a device context - Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...) - -Returns: - - None - - """ - pass - - -def PolylineTo(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': - """ - Draws a series of lines starting from current position. Updates current position with end point. - -Args: - - hdc(int):Handle to a device context - Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...) - -Returns: - - None - - """ - pass - - -def PolyBezier(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': - """ - Draws a series of Bezier curves starting from first point specified. - -Args: - - hdc(int):Handle to a device context - Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...).CommentsNumber of points must be a multiple of 3 plus 1. - -Returns: - - None - - """ - pass - - -def PolyBezierTo(hdc:'int',Points:'typing.List[tuple[typing.Any, typing.Any]]') -> 'None': - """ - Draws a series of Bezier curves starting from current drawing position. - -Args: - - hdc(int):Handle to a device context - Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...).CommentsPoints must contain 3 points for each curve. Current position is updated with last endpoint. - -Returns: - - None - - """ - pass - - -def PlgBlt(Dest:'int',Point:'typing.Any',Src:'int',XSrc:'typing.Any',YSrc:'typing.Any',Width:'typing.Any',Height:'typing.Any',Mask:'win32typing.PyGdiHANDLE'=None,xMask:'typing.Any'=0,yMask:'typing.Any'=0) -> 'None': - """ - Copies color from a rectangle into a parallelogram - -Args: - - Dest(int):Destination DC - Point(typing.Any):Sequence of 3 POINT tuples (x,y) describing a paralellogram - Src(int):Source device context - XSrc(typing.Any):Left edge of source rectangle - YSrc(typing.Any):Top of source rectangle - Width(typing.Any):Width of source rectangle - Height(typing.Any):Height of source rectangle - Mask(win32typing.PyGdiHANDLE):Handle to monochrome bitmap to mask source, can be None - xMask(typing.Any):x pos in mask - yMask(typing.Any):y pos in mask - -Returns: - - None - - """ - pass - - -def CreatePolygonRgn(Points:'typing.List[tuple[typing.Any, typing.Any]]',PolyFillMode:'typing.Any') -> 'win32typing.PyGdiHANDLE': - """ - Creates a region from a sequence of vertices - -Args: - - Points(typing.List[tuple[typing.Any, typing.Any]]):Sequence of POINT tuples: ((x,y),...). - PolyFillMode(typing.Any):Filling mode, one of ALTERNATE, WINDING - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def ExtTextOut(hdc:'int',_int:'typing.Any',_int1:'typing.Any',_int2:'typing.Any',rect:'win32typing.PyRECT',string:'typing.Any',_tuple:'tuple[tuple[typing.Any, typing.Any], ...]') -> 'typing.Any': - """ - Writes text to a DC. - -Args: - - hdc(int):Handle to a device context - _int(typing.Any):The x coordinate to write the text to. - _int1(typing.Any):The y coordinate to write the text to. - _int2(typing.Any):Specifies the rectangle type. This parameter can be one, both, or neither of ETO_CLIPPED and ETO_OPAQUE - rect(win32typing.PyRECT):Specifies the text's bounding rectangle. (Can be None.) - string(typing.Any):The text to write. - _tuple(tuple[tuple[typing.Any, typing.Any], ...]):Optional array of values that indicate distance between origins of character cells.Win32 API References - -Returns: - - typing.Any:Search for ExtTextOut at msdn, google or google groups. -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - -def GetTextColor(hdc:'typing.Any') -> 'typing.Any': - """ - Returns the text color for a DC - -Args: - - hdc(typing.Any):Handle to a device contextReturn ValueReturns an RGB color. On error, returns CLR_INVALID - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns an RGB color. On error, returns CLR_INVALID - - - """ - pass - - -def SetTextColor(hdc:'typing.Any',color:'typing.Any') -> 'typing.Any': - """ - Changes the text color for a device context - -Args: - - hdc(typing.Any):Handle to a device context - color(typing.Any):The RGB color value - see win32api::RGBReturn ValueReturns the previous color, or CLR_INVALID on failure - -Returns: - - typing.Any:The RGB color value - see win32api::RGBReturn ValueReturns the previous color, or CLR_INVALID on failure - - - """ - pass - - -def GetBkMode(hdc:'int') -> 'typing.Any': - """ - Returns the background mode for a device context - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns OPAQUE, TRANSPARENT, or 0 on failure - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns OPAQUE, TRANSPARENT, or 0 on failure - - - """ - pass - - -def SetBkMode(hdc:'typing.Union[typing.Any, int]',BkMode:'typing.Any') -> 'typing.Any': - """ - Sets the background mode for a device context - -Args: - - hdc(typing.Union[typing.Any, int]):Handle to a device context - BkMode(typing.Any):OPAQUE or TRANSPARENTReturn ValueReturns the previous mode, or 0 on failure - -Returns: - - typing.Any:OPAQUE or TRANSPARENTReturn ValueReturns the previous mode, or 0 on failure - - - """ - pass - - -def GetBkColor(hdc:'int') -> 'typing.Any': - """ - Returns the background color for a device context - -Args: - - hdc(int):Handle to a device contextReturn ValueReturns an RGB color value. On error, returns CLR_INVALID. - -Returns: - - typing.Any:Handle to a device contextReturn ValueReturns an RGB color value. On error, returns CLR_INVALID. - - - """ - pass - - -def SetBkColor(hdc:'typing.Union[typing.Any, int]',color:'typing.Any') -> 'typing.Any': - """ - Sets the background color for a device context - -Args: - - hdc(typing.Union[typing.Any, int]):Handle to a device context - color(typing.Any):Return ValueReturns the previous color, or CLR_INVALID on failure - -Returns: - - typing.Any:Return ValueReturns the previous color, or CLR_INVALID on failure - - - """ - pass - - -def DrawEdge(hdc:'int',rc:'win32typing.PyRECT',edge:'typing.Any',Flags:'typing.Any') -> 'win32typing.PyRECT': - """ - Draws edge(s) of a rectangle - -Args: - - hdc(int):Handle to a device context - rc(win32typing.PyRECT):Rectangle whose edge(s) will be drawn - edge(typing.Any):Combination of win32con.BDR_* flags, or one of win32con.EDGE_* flags - Flags(typing.Any):Combination of win32con.BF_* flagsReturn ValueBF_ADJUST flag causes input rectange to be shrunk by size of border.. Rectangle is always returned. - -Returns: - - win32typing.PyRECT:Combination of win32con.BF_* flagsReturn ValueBF_ADJUST flag causes input rectange to be shrunk by size of border.. Rectangle is always returned. - - - """ - pass - - -def FillRect(hDC:'int',rc:'win32typing.PyRECT',hbr:'win32typing.PyGdiHANDLE') -> 'None': - """ - Fills a rectangular area with specified brush - -Args: - - hDC(int):Handle to a device context - rc(win32typing.PyRECT):Rectangle to be filled - hbr(win32typing.PyGdiHANDLE):Handle to brush to be used to fill area - -Returns: - - None - - """ - pass - - -def FillRgn(hdc:'int',hrgn:'win32typing.PyGdiHANDLE',hbr:'win32typing.PyGdiHANDLE') -> 'None': - """ - Fills a region with specified brush - -Args: - - hdc(int):Handle to the device context - hrgn(win32typing.PyGdiHANDLE):Handle to the region - hbr(win32typing.PyGdiHANDLE):Brush to be used - -Returns: - - None - - """ - pass - - -def PaintRgn(hdc:'int',hrgn:'win32typing.PyGdiHANDLE') -> 'None': - """ - Paints a region with current brush - -Args: - - hdc(int):Handle to the device context - hrgn(win32typing.PyGdiHANDLE):Handle to the region - -Returns: - - None - - """ - pass - - -def FrameRgn(hdc:'int',hrgn:'typing.Any',hbr:'typing.Any',Width:'typing.Any',Height:'typing.Any') -> 'None': - """ - Draws a frame around a region - -Args: - - hdc(int):Handle to the device context - hrgn(typing.Any):Handle to the region - hbr(typing.Any):Handle to brush to be used - Width(typing.Any):Frame width - Height(typing.Any):Frame height - -Returns: - - None - - """ - pass - - -def InvertRgn(hdc:'int',hrgn:'typing.Any') -> 'None': - """ - Inverts the colors in a region - -Args: - - hdc(int):Handle to the device context - hrgn(typing.Any):Handle to the region - -Returns: - - None - - """ - pass - - -def EqualRgn(SrcRgn1:'typing.Any',SrcRgn2:'typing.Any') -> 'typing.Any': - """ - Determines if 2 regions are equal - -Args: - - SrcRgn1(typing.Any):Handle to a region - SrcRgn2(typing.Any):Handle to a region - -Returns: - - typing.Any - - """ - pass - - -def PtInRegion(hrgn:'typing.Any',X:'typing.Any',Y:'typing.Any') -> 'typing.Any': - """ - Determines if a region contains a point - -Args: - - hrgn(typing.Any):Handle to a region - X(typing.Any):X coord - Y(typing.Any):Y coord - -Returns: - - typing.Any - - """ - pass - - -def PtInRect(rect:'tuple[int, int, int, int]',point:'tuple[typing.Any, typing.Any]') -> 'typing.Any': - """ - Determines if a rectangle contains a point - -Args: - - rect(tuple[int, int, int, int]):The rect to check - point(tuple[typing.Any, typing.Any]):The point - -Returns: - - typing.Any - - """ - pass - - -def RectInRegion(hrgn:'typing.Any',rc:'win32typing.PyRECT') -> 'typing.Any': - """ - Determines if a region and rectangle overlap at any point - -Args: - - hrgn(typing.Any):Handle to a region - rc(win32typing.PyRECT):Rectangle coordinates in logical units - -Returns: - - typing.Any - - """ - pass - - -def SetRectRgn(hrgn:'typing.Any',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any') -> 'None': - """ - Makes an existing region rectangular - -Args: - - hrgn(typing.Any):Handle to a region - LeftRect(typing.Any):Left edge in logical units - TopRect(typing.Any):Top edge in logical units - RightRect(typing.Any):Right edge in logical units - BottomRect(typing.Any):Bottom edge in logical units - -Returns: - - None - - """ - pass - - -def CombineRgn(Dest:'typing.Any',Src1:'typing.Any',Src2:'typing.Any',CombineMode:'typing.Any') -> 'typing.Any': - """ - Combines two regions - -Args: - - Dest(typing.Any):Handle to existing region that will receive combined region - Src1(typing.Any):Handle to first region - Src2(typing.Any):Handle to second region - CombineMode(typing.Any):One of RGN_AND,RGN_COPY,RGN_DIFF,RGN_OR,RGN_XORReturn ValueReturns the type of region created, one of NULLREGION, SIMPLEREGION, COMPLEXREGION - -Returns: - - typing.Any:One of RGN_AND,RGN_COPY,RGN_DIFF,RGN_OR,RGN_XORReturn ValueReturns the type of region created, one of NULLREGION, SIMPLEREGION, COMPLEXREGION - - - """ - pass - - -def DrawAnimatedRects(hwnd:'int',idAni:'typing.Any',minCoords:'win32typing.PyRECT',restCoords:'win32typing.PyRECT') -> 'None': - """ - Animates a rectangle in the manner of minimizing, mazimizing, or opening - -Args: - - hwnd(typing.Any):handle to clipping window - idAni(typing.Any):type of animation, win32con.IDANI_* - minCoords(win32typing.PyRECT):rectangle coordinates (minimized) - restCoords(win32typing.PyRECT):rectangle coordinates (restored) - -Returns: - - None - - """ - pass - - -def CreateSolidBrush(Color:'typing.Any') -> 'win32typing.PyGdiHANDLE': - """ - Creates a solid brush of specified color - -Args: - - Color(typing.Any):RGB color value. See win32api::RGB. - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def CreatePatternBrush(hbmp:'win32typing.PyGdiHANDLE') -> 'win32typing.PyGdiHANDLE': - """ - Creates a brush using a bitmap as a pattern - -Args: - - hbmp(win32typing.PyGdiHANDLE):Handle to a bitmap - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def CreateHatchBrush(Style:'typing.Any',clrref:'typing.Any') -> 'win32typing.PyGdiHANDLE': - """ - Creates a hatch brush with specified style and color - -Args: - - Style(typing.Any):Hatch style, one of win32con.HS_* constants - clrref(typing.Any):Rgb color value. See win32api::RGB. - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def CreatePen(PenStyle:'typing.Any',Width:'typing.Any',Color:'typing.Any') -> 'win32typing.PyGdiHANDLE': - """ - Create a GDI pen - -Args: - - PenStyle(typing.Any):One of win32con.PS_* pen styles - Width(typing.Any):Drawing width in logical units. Use zero for single pixel. - Color(typing.Any):RGB color value. See win32api::RGB. - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def GetSysColor(Index:'typing.Any') -> 'typing.Any': - """ - Returns the color of a window element - -Args: - - Index(typing.Any):One of win32con.COLOR_* values - -Returns: - - typing.Any - - """ - pass - - -def GetSysColorBrush(Index:'typing.Any') -> 'win32typing.PyGdiHANDLE': - """ - Creates a handle to a system color brush - -Args: - - Index(typing.Any):Index of a window element color (win32con.COLOR_*) - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def InvalidateRect(hWnd:'int',Rect:'win32typing.PyRECT',Erase:'typing.Any') -> 'None': - """ - Invalidates a rectangular area of a window and adds it to the window's update region - -Args: - - hWnd(int):Handle to the window - Rect(win32typing.PyRECT):Client coordinates defining area to be redrawn. Use None for entire client area. - Erase(typing.Any):Indicates if background should be erased - -Returns: - - None - - """ - pass - - -def FrameRect(hDC:'int',rc:'win32typing.PyRECT',hbr:'win32typing.PyGdiHANDLE') -> 'None': - """ - Draws an outline around a rectangle - -Args: - - hDC(int):Handle to a device context - rc(win32typing.PyRECT):Rectangle around which to draw - hbr(win32typing.PyGdiHANDLE):Handle to brush created using CreateHatchBrush, CreatePatternBrush, CreateSolidBrush, or GetStockObject - -Returns: - - None - - """ - pass - - -def InvertRect(hDC:'int',rc:'win32typing.PyRECT') -> 'None': - """ - Inverts the colors in a regtangular region - -Args: - - hDC(int):Handle to a device context - rc(win32typing.PyRECT):Coordinates of rectangle to invert - -Returns: - - None - - """ - pass - - -def WindowFromDC(hDC:'int') -> 'int': - """ - Finds the window associated with a device context - -Args: - - hDC(int):Handle to a device contextReturn ValueReturns a handle to the window, or 0 if the DC is not associated with a window - -Returns: - - int:Handle to a device contextReturn ValueReturns a handle to the window, or 0 if the DC is not associated with a window - - - """ - pass - - -def GetUpdateRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE',Erase:'typing.Any') -> 'typing.Any': - """ - Copies the update region of a window into an existing region - -Args: - - hWnd(int):Handle to a window - hRgn(win32typing.PyGdiHANDLE):Handle to an existing region to receive update area - Erase(typing.Any):Indicates if window background is to be erasedReturn ValueReturns type of region, one of COMPLEXREGION, NULLREGION, or SIMPLEREGION - -Returns: - - typing.Any:Indicates if window background is to be erasedReturn ValueReturns type of region, one of COMPLEXREGION, NULLREGION, or SIMPLEREGION - - - """ - pass - - -def GetWindowRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE') -> 'typing.Any': - """ - Copies the window region of a window into an existing region - -Args: - - hWnd(int):Handle to a window - hRgn(win32typing.PyGdiHANDLE):Handle to an existing region that receives window regionReturn ValueReturns type of region, one of COMPLEXREGION, NULLREGION, or SIMPLEREGION - -Returns: - - typing.Any:Handle to an existing region that receives window regionReturn ValueReturns type of region, one of COMPLEXREGION, NULLREGION, or SIMPLEREGION - - - """ - pass - - -def SetWindowRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE',Redraw:'typing.Any') -> 'None': - """ - Sets the visible region of a window - -Args: - - hWnd(int):Handle to a window - hRgn(win32typing.PyGdiHANDLE):Handle to region to be set, can be None - Redraw(typing.Any):Indicates if window should be completely redrawnCommentsOn success, the system assumes ownership of the region so you should call the handle's Detach() method to prevent it from being automatically closed. - -Returns: - - None - - """ - pass - - -def GetWindowRgnBox(hWnd:'int') -> 'tuple[typing.Any, win32typing.PyRECT]': - """ - Returns the bounding box for a window's region - -Args: - - hWnd(int):Handle to a window that has a window region. (see win32gui::SetWindowRgn)CommentsOnly available in winxpguiReturn ValueReturns type of region and rectangle coordinates in device units - -Returns: - - tuple[typing.Any, win32typing.PyRECT]:Handle to a window that has a window region. (see win32gui::SetWindowRgn)Comments - -Only available in winxpgui -Return ValueReturns type of region and rectangle coordinates in device units - - - """ - pass - - -def ValidateRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE') -> 'None': - """ - Removes a region from a window's update region - -Args: - - hWnd(int):Handle to the window - hRgn(win32typing.PyGdiHANDLE):Region to be validated - -Returns: - - None - - """ - pass - - -def InvalidateRgn(hWnd:'int',hRgn:'win32typing.PyGdiHANDLE',Erase:'typing.Any') -> 'None': - """ - Adds a region to a window's update region - -Args: - - hWnd(int):Handle to the window - hRgn(win32typing.PyGdiHANDLE):Region to be redrawn - Erase(typing.Any):Indidates if background should be erased - -Returns: - - None - - """ - pass - - -def GetRgnBox(hrgn:'win32typing.PyGdiHANDLE') -> 'tuple[typing.Any, win32typing.PyRECT]': - """ - Calculates the bounding box of a region - -Args: - - hrgn(win32typing.PyGdiHANDLE):Handle to a regionReturn ValueReturns type of region (COMPLEXREGION, NULLREGION, or SIMPLEREGION) and rectangle in logical units - -Returns: - - tuple[typing.Any, win32typing.PyRECT]:Handle to a regionReturn ValueReturns type of region (COMPLEXREGION, NULLREGION, or SIMPLEREGION) and rectangle in logical units - - - """ - pass - - -def OffsetRgn(hrgn:'win32typing.PyGdiHANDLE',XOffset:'typing.Any',YOffset:'typing.Any') -> 'typing.Any': - """ - Relocates a region - -Args: - - hrgn(win32typing.PyGdiHANDLE):Handle to a region - XOffset(typing.Any):Horizontal offset - YOffset(typing.Any):Vertical offsetReturn ValueReturns type of region (COMPLEXREGION, NULLREGION, or SIMPLEREGION) - -Returns: - - typing.Any:Vertical offsetReturn ValueReturns type of region (COMPLEXREGION, NULLREGION, or SIMPLEREGION) - - - """ - pass - - -def Rectangle(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any') -> 'None': - """ - Creates a solid rectangle using currently selected pen and brush - -Args: - - hdc(int):Handle to device context - LeftRect(typing.Any):Position of left edge of rectangle - TopRect(typing.Any):Position of top edge of rectangle - RightRect(typing.Any):Position of right edge of rectangle - BottomRect(typing.Any):Position of bottom edge of rectangle - -Returns: - - None - - """ - pass - - -def RoundRect(hdc:'int',LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',Width:'typing.Any',Height:'typing.Any') -> 'None': - """ - Draws a rectangle with elliptically rounded corners, filled using using current brush - -Args: - - hdc(int):Handle to device context - LeftRect(typing.Any):Position of left edge of rectangle - TopRect(typing.Any):Position of top edge of rectangle - RightRect(typing.Any):Position of right edge of rectangle - BottomRect(typing.Any):Position of bottom edge of rectangle - Width(typing.Any):Width of ellipse - Height(typing.Any):Height of ellipse - -Returns: - - None - - """ - pass - - -def BeginPaint() -> 'tuple[typing.Any, typing.Any]': - """ - None - -Args: - - - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def EndPaint(hwnd:'int',ps:'typing.Any') -> 'None': - """ - None - -Args: - - hwnd(typing.Any): - ps(typing.Any):As returned from win32gui::BeginPaint - -Returns: - - None - - """ - pass - - -def BeginPath(hdc:'int') -> 'None': - """ - Initializes a path in a DC - -Args: - - hdc(int):Handle to a device context - -Returns: - - None - - """ - pass - - -def EndPath(hdc:'int') -> 'None': - """ - None - -Args: - - hdc(int):Handle to a device context - -Returns: - - None - - """ - pass - - -def AbortPath(hdc:'int') -> 'None': - """ - None - -Args: - - hdc(int):Handle to a device context - -Returns: - - None - - """ - pass - - -def CloseFigure(hdc:'int') -> 'None': - """ - Closes a section of a path by connecting the beginning pos with the current pos - -Args: - - hdc(int):Handle to a device context that contains an open path. See win32gui::BeginPath. - -Returns: - - None - - """ - pass - - -def FlattenPath(hdc:'int') -> 'None': - """ - Flattens any curves in current path into a series of lines - -Args: - - hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath. - -Returns: - - None - - """ - pass - - -def FillPath(hdc:'int') -> 'None': - """ - Fills a path with currently selected brush - -Args: - - hdc(int):Handle to a device context that contains a finalized path. See win32gui::EndPath.CommentsAny open figures are closed and path is deselected from the DC. - -Returns: - - None - - """ - pass - - -def WidenPath(hdc:'int') -> 'None': - """ - Widens current path by amount it would increase by if drawn with currently selected pen - -Args: - - hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath. - -Returns: - - None - - """ - pass - - -def StrokePath(hdc:'int') -> 'None': - """ - Draws current path with currently selected pen - -Args: - - hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath. - -Returns: - - None - - """ - pass - - -def StrokeAndFillPath(hdc:'int') -> 'None': - """ - Combines operations of StrokePath and FillPath with no overlap - -Args: - - hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath. - -Returns: - - None - - """ - pass - - -def GetMiterLimit(hdc:'int') -> 'float': - """ - Retrieves the limit of miter joins for a DC - -Args: - - hdc(int):Handle to a device context - -Returns: - - float - - """ - pass - - -def SetMiterLimit(hdc:'int',NewLimit:'float') -> 'float': - """ - Set the limit of miter joins for a DC - -Args: - - hdc(int):Handle to a device context - NewLimit(float):New limit to be setReturn ValueReturns the previous limit - -Returns: - - float:New limit to be setReturn ValueReturns the previous limit - - - """ - pass - - -def PathToRegion(hdc:'int') -> 'win32typing.PyGdiHANDLE': - """ - Converts a closed path in a DC to a region - -Args: - - hdc(int):Handle to a device context that contains a closed path. See win32gui::EndPath.CommentsOn success, the path is deselected from the DC - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def GetPath(hdc:'int') -> 'tuple[typing.Any, typing.Any]': - """ - Returns a sequence of points that describe the current path - -Args: - - hdc(int):Handle to a device context containing a finalized path. See win32gui::EndPathReturn ValueReturns a sequence of POINT tuples, and a sequence of ints designating each point's function (combination of win32con.PT_* values) - -Returns: - - tuple[typing.Any, typing.Any]:Handle to a device context containing a finalized path. See win32gui::EndPathReturn ValueReturns a sequence of POINT tuples, and a sequence of ints designating each point's function (combination of win32con.PT_* values) - - - """ - pass - - -def CreateRoundRectRgn(LeftRect:'typing.Any',TopRect:'typing.Any',RightRect:'typing.Any',BottomRect:'typing.Any',WidthEllipse:'typing.Any',HeightEllipse:'typing.Any') -> 'typing.Any': - """ - Create a rectangular region with elliptically rounded corners, - -Args: - - LeftRect(typing.Any):Position of left edge of rectangle - TopRect(typing.Any):Position of top edge of rectangle - RightRect(typing.Any):Position of right edge of rectangle - BottomRect(typing.Any):Position of bottom edge of rectangle - WidthEllipse(typing.Any):Width of ellipse - HeightEllipse(typing.Any):Height of ellipse - -Returns: - - typing.Any - - """ - pass - - -def CreateRectRgnIndirect(rc:'win32typing.PyRECT') -> 'typing.Any': - """ - Creates a rectangular region, - -Args: - - rc(win32typing.PyRECT):Coordinates of rectangle - -Returns: - - typing.Any - - """ - pass - - -def CreateEllipticRgnIndirect(rc:'win32typing.PyRECT') -> 'typing.Any': - """ - Creates an ellipse region, - -Args: - - rc(win32typing.PyRECT):Coordinates of bounding rectangle in logical units - -Returns: - - typing.Any - - """ - pass - - -def CreateWindowEx(dwExStyle:'typing.Any',className:'typing.Union[str, typing.Any]',windowTitle:'str',style:'typing.Any',x:'typing.Any',y:'typing.Any',width:'typing.Any',height:'typing.Any',parent:'typing.Any',menu:'typing.Any',hinstance:'typing.Any',reserved:'typing.Any') -> 'typing.Any': - """ - Creates a new window with Extended Style. - -Args: - - dwExStyle(typing.Any):extended window style - className(typing.Union[str, typing.Any]): - windowTitle(str): - style(typing.Any):The style for the window. - x(typing.Any): - y(typing.Any): - width(typing.Any): - height(typing.Any): - parent(typing.Any):Handle to the parent window. - menu(typing.Any):Handle to the menu to use for this window. - hinstance(typing.Any): - reserved(typing.Any):Must be None - -Returns: - - typing.Any - - """ - pass - - -def GetParent(child:'typing.Any') -> 'typing.Any': - """ - Retrieves a handle to the specified child window's parent window. - -Args: - - child(typing.Any):handle to child window - -Returns: - - typing.Any - - """ - pass - - -def SetParent(child:'typing.Any',child1:'typing.Any') -> 'typing.Any': - """ - changes the parent window of the specified child window. - -Args: - - child(typing.Any):handle to window whose parent is changing - child1(typing.Any):handle to new parent window - -Returns: - - typing.Any - - """ - pass - - -def GetCursorPos() -> 'tuple[typing.Any, typing.Any]': - """ - retrieves the cursor's position, in screen coordinates. - -Args: - - - -Returns: - - tuple[typing.Any, typing.Any] - - """ - pass - - -def GetDesktopWindow() -> 'typing.Any': - """ - returns the desktop window - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def GetWindow(hWnd:'typing.Any',uCmd:'typing.Any') -> 'typing.Any': - """ - returns a window that has the specified relationship (Z order or owner) to the specified window. - -Args: - - hWnd(typing.Any):handle to original window - uCmd(typing.Any):relationship flag - -Returns: - - typing.Any - - """ - pass - - -def GetWindowDC(hWnd:'typing.Any') -> 'typing.Any': - """ - returns the device context (DC) for the entire window, including title bar, menus, and scroll bars. - -Args: - - hWnd(typing.Any):handle of window - -Returns: - - typing.Any - - """ - pass - - -def IsIconic(hWnd:'typing.Any') -> 'None': - """ - determines whether the specified window is minimized (iconic). - -Args: - - hWnd(typing.Any):handle to window - -Returns: - - None - - """ - pass - - -def IsWindow(hWnd:'typing.Any') -> 'None': - """ - determines whether the specified window handle identifies an existing window. - -Args: - - hWnd(typing.Any):handle to window - -Returns: - - None - - """ - pass - - -def IsChild(hWndParent:'typing.Any',hWnd:'typing.Any') -> 'None': - """ - Tests whether a window is a child window or descendant window of a specified parent window - -Args: - - hWndParent(typing.Any):handle to parent window - hWnd(typing.Any):handle to window to test - -Returns: - - None - - """ - pass - - -def ReleaseCapture() -> 'None': - """ - Releases the moust capture for a window. - -Args: - - - -Returns: - - None - - """ - pass - - -def GetCapture() -> 'typing.Any': - """ - Returns the window with the mouse capture. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -def SetCapture() -> 'None': - """ - Captures the mouse for the specified window. - -Args: - - - -Returns: - - None - - """ - pass - - -def _TrackMouseEvent(tme:'win32typing.TRACKMOUSEEVENT') -> 'None': - """ - Posts messages when the mouse pointer leaves a window or hovers over a window for a specified amount of time. - -Args: - - tme(win32typing.TRACKMOUSEEVENT): - -Returns: - - None - - """ - pass - - -def ReleaseDC(hWnd:'typing.Any',hDC:'typing.Any') -> 'typing.Any': - """ - Releases a device context. - -Args: - - hWnd(typing.Any):handle to window - hDC(typing.Any):handle to device context - -Returns: - - typing.Any - - """ - pass - - -def CreateCaret(hWnd:'typing.Any',hBitmap:'win32typing.PyGdiHANDLE',nWidth:'typing.Any',nHeight:'typing.Any') -> 'None': - """ - Creates a new caret for a window - -Args: - - hWnd(typing.Any):handle to owner window - hBitmap(win32typing.PyGdiHANDLE):handle to bitmap for caret shape - nWidth(typing.Any):caret width - nHeight(typing.Any):caret height - -Returns: - - None - - """ - pass - - -def DestroyCaret() -> 'None': - """ - Destroys caret for current task - -Args: - - - -Returns: - - None - - """ - pass - - -def ScrollWindowEx(hWnd:'typing.Any',dx:'typing.Any',dy:'typing.Any',rcScroll:'win32typing.PyRECT',rcClip:'win32typing.PyRECT',hrgnUpdate:'typing.Any',flags:'typing.Any') -> 'tuple[typing.Any, win32typing.PyRECT]': - """ - scrolls the content of the specified window's client area. - -Args: - - hWnd(typing.Any):handle to window to scroll - dx(typing.Any):Amount of horizontal scrolling, in device units - dy(typing.Any):Amount of vertical scrolling, in device units - rcScroll(win32typing.PyRECT):Scroll rectangle, can be None for entire client area - rcClip(win32typing.PyRECT):Clipping rectangle, can be None - hrgnUpdate(typing.Any):Handle to region which will be updated with area invalidated by scroll operation, can be None - flags(typing.Any):Scrolling flags, combination of SW_ERASE,SW_INVALIDATE,SW_SCROLLCHILDREN,SW_SMOOTHSCROLL. If SW_SMOOTHSCROLL is specified, use upper 16 bits to specify time in milliseconds.Return ValueReturns the type of region invalidated by scrolling, and a rectangle defining the affected area. - -Returns: - - tuple[typing.Any, win32typing.PyRECT]:Scrolling flags, combination of SW_ERASE,SW_INVALIDATE,SW_SCROLLCHILDREN,SW_SMOOTHSCROLL. - -If SW_SMOOTHSCROLL is specified, use upper 16 bits to specify time in milliseconds.Return ValueReturns the type of region invalidated by scrolling, and a rectangle defining the affected area. - - - """ - pass - - -def SetScrollInfo(hwnd:'int',nBar:'typing.Any',scollInfo:'win32typing.PySCROLLINFO',bRedraw:'typing.Any'=1) -> 'None': - """ - Sets information about a scroll-bar - -Args: - - hwnd(typing.Any):The handle to the window. - nBar(typing.Any):Identifies the bar. - scollInfo(win32typing.PySCROLLINFO):Scollbar info. - bRedraw(typing.Any):Should the bar be redrawn?Return ValueReturns an int with the current position of the scroll box. - -Returns: - - None:Should the bar be redrawn? -Return ValueReturns an int with the current position of the scroll box. - - - """ - pass - - -def GetScrollInfo(hwnd:'int',nBar:'typing.Any',mask:'typing.Any') -> 'win32typing.PySCROLLINFO': - """ - Returns information about a scroll bar - -Args: - - hwnd(typing.Any):The handle to the window. - nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_CTL, win32con.SB_VERT or win32con.SB_HORZ - mask(typing.Any):The mask for attributes to retrieve. - -Returns: - - win32typing.PySCROLLINFO - - """ - pass - - -def GetClassName(hwnd:'int') -> 'str': - """ - Retrieves the name of the class to which the specified window belongs. - -Args: - - hwnd(int):The handle to the window - -Returns: - - str - - """ - pass - - -def WindowFromPoint(point:'tuple[typing.Any, typing.Any]') -> 'typing.Any': - """ - Retrieves a handle to the window that contains the specified point. - -Args: - - point(tuple[typing.Any, typing.Any]):The point. - -Returns: - - typing.Any - - """ - pass - - -def ChildWindowFromPoint(hwndParent:'typing.Any',point:'tuple[typing.Any, typing.Any]') -> 'typing.Any': - """ - Determines which, if any, of the child windows belonging to a parent window contains the specified point. - -Args: - - hwndParent(typing.Any):The parent. - point(tuple[typing.Any, typing.Any]):The point. - -Returns: - - typing.Any - - """ - pass - - -def ChildWindowFromPoint(hwndParent:'typing.Any',point:'tuple[typing.Any, typing.Any]') -> 'typing.Any': - """ - Determines which, if any, of the child windows belonging to a parent window contains the specified point. - -Args: - - hwndParent(typing.Any):The parent. - point(tuple[typing.Any, typing.Any]):The point. - -Returns: - - typing.Any - - """ - pass - - -def ListView_SortItems(hwnd:'int',callback:'typing.Any',param:'typing.Any'=None) -> 'None': - """ - Uses an application-defined comparison function to sort the items of a list view control. - -Args: - - hwnd(typing.Any):The handle to the window - callback(typing.Any):A callback object, taking 3 params. - param(typing.Any):The third param to the callback function. - -Returns: - - None - - """ - pass - - -def ListView_SortItemsEx(hwnd:'int',callback:'typing.Any',param:'typing.Any'=None) -> 'None': - """ - Uses an application-defined comparison function to sort the items of a list view control. - -Args: - - hwnd(typing.Any):The handle to the window - callback(typing.Any):A callback object, taking 3 params. - param(typing.Any):The third param to the callback function. - -Returns: - - None - - """ - pass - - -def CreateDC(Driver:'str',Device:'str',InitData:'win32typing.PyDEVMODE') -> 'typing.Any': - """ - Creates a device context for a printer or display device - -Args: - - Driver(str):Name of display or print provider, usually DISPLAY or WINSPOOL - Device(str):Name of specific device, eg printer name returned from GetDefaultPrinter - InitData(win32typing.PyDEVMODE):A PyDEVMODE that specifies printing parameters, use None for printer defaults - -Returns: - - typing.Any - - """ - pass - - -def GetSaveFileNameW(hwndOwner:'int'=None,hInstance:'int'=None,Filter:'typing.Any'=None,CustomFilter:'typing.Any'=None,FilterIndex:'typing.Any'=0,File:'typing.Any'=None,MaxFile:'typing.Any'=1024,InitialDir:'typing.Any'=None,Title:'typing.Any'=None,Flags:'typing.Any'=0,DefExt:'typing.Any'=None,TemplateName:'win32typing.PyResourceId'=None) -> 'tuple[typing.Any, typing.Any, typing.Any]': - """ - Creates a dialog for user to specify location to save a file or files - -Args: - - hwndOwner(int):Handle to window that owns dialog - hInstance(int):Handle to module that contains dialog template - Filter(typing.Any):Contains pairs of descriptions and filespecs separated by NULLS, with a final trailing NULL. Example: 'Python Scripts\\0*.py;*.pyw;*.pys\\0Text files\\0*.txt\\0' - CustomFilter(typing.Any):Description to be used for filter that user selected or typed, can also contain a filespec as above - FilterIndex(typing.Any):Specifies which of the filters is initially selected, use 0 for CustomFilter - File(typing.Any):The file name initially displayed - MaxFile(typing.Any):Number of characters to allocate for selected filename(s), override if large number of files expected - InitialDir(typing.Any):The starting directory - Title(typing.Any):The title of the dialog box - Flags(typing.Any):Combination of win32con.OFN_* constants - DefExt(typing.Any):The default extension to use - TemplateName(win32typing.PyResourceId):Name or resource id of dialog box templateCommentsAccepts keyword arguments, all arguments optionalReturn ValueReturns a tuple of 3 values (PyUNICODE, PyUNICODE, int): First is the selected file(s). If multiple files are selected, returned string will be the directory followed by files names separated by nulls, otherwise it will be the full path. In other words, if you use the OFN_ALLOWMULTISELECT flag you should split this value on \\0 characters and if the length of the result list is 1, it will be the full path, otherwise element 0 will be the directory and the rest of the elements will be filenames in this directory. Second is a unicode string containing user-selected filter, will be None if CustomFilter was not specified Third item contains flags pertaining to users input, such as OFN_READONLY and OFN_EXTENSIONDIFFERENT If the user presses cancel or an error occurs, a win32gui.error is raised. If the user pressed cancel, the error number (ie, the winerror attribute of the exception) will be zero. - -Returns: - - tuple[typing.Any, typing.Any, typing.Any]:Name or resource id of dialog box template -Comments - -Accepts keyword arguments, all arguments optional -Return ValueReturns a tuple of 3 values (PyUNICODE, PyUNICODE, int): - -First is the selected file(s). If multiple files are selected, returned string will be the directory followed by files names - -separated by nulls, otherwise it will be the full path. In other words, if you use the OFN_ALLOWMULTISELECT flag - -you should split this value on \\0 characters and if the length of the result list is 1, it will be - -the full path, otherwise element 0 will be the directory and the rest of the elements will be filenames in - -this directory. - -Second is a unicode string containing user-selected filter, will be None if CustomFilter was not specified - -Third item contains flags pertaining to users input, such as OFN_READONLY and OFN_EXTENSIONDIFFERENT - -If the user presses cancel or an error occurs, a - -win32gui.error is raised. If the user pressed cancel, the error number (ie, the winerror attribute of the exception) will be zero. - - - """ - pass - - -def GetOpenFileNameW(hwndOwner:'int'=None,hInstance:'int'=None,Filter:'typing.Any'=None,CustomFilter:'typing.Any'=None,FilterIndex:'typing.Any'=0,File:'typing.Any'=None,MaxFile:'typing.Any'=1024,InitialDir:'typing.Any'=None,Title:'typing.Any'=None,Flags:'typing.Any'=0,DefExt:'typing.Any'=None,TemplateName:'win32typing.PyResourceId'=None) -> 'tuple[typing.Any, typing.Any, typing.Any]': - """ - Creates a dialog to allow user to select file(s) to open - -Args: - - hwndOwner(int):Handle to window that owns dialog - hInstance(int):Handle to module that contains dialog template - Filter(typing.Any):Contains pairs of descriptions and filespecs separated by NULLS, with a final trailing NULL. Example: 'Python Scripts\\0*.py;*.pyw;*.pys\\0Text files\\0*.txt\\0' - CustomFilter(typing.Any):Description to be used for filter that user selected or typed, can also contain a filespec as above - FilterIndex(typing.Any):Specifies which of the filters is initially selected, use 0 for CustomFilter - File(typing.Any):The file name initially displayed - MaxFile(typing.Any):Number of characters to allocate for selected filename, override if large number of files expected - InitialDir(typing.Any):The starting directory - Title(typing.Any):The title of the dialog box - Flags(typing.Any):Combination of win32con.OFN_* constants - DefExt(typing.Any):The default extension to use - TemplateName(win32typing.PyResourceId):Name or resource id of dialog box templateCommentsAccepts keyword arguments, all arguments optional Input parameters and return values are identical to win32gui::GetSaveFileNameW - -Returns: - - tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - -def SystemParametersInfo(Action:'typing.Any',Param:'typing.Any'=None,WinIni:'typing.Any'=0) -> 'None': - """ - Queries or sets system-wide parameters. This function can also update the user profile while setting a parameter. - -Args: - - Action(typing.Any):System parameter to query or set, one of the SPI_GET* or SPI_SET* constants - Param(typing.Any):depends on action to be taken - WinIni(typing.Any):Flags specifying whether change should be permanent, and if all windows should be notified of change. Combination of SPIF_UPDATEINIFILE, SPIF_SENDCHANGE, SPIF_SENDWININICHANGEActionInput/return typeSPI_GETDESKWALLPAPERReturns the path to the bmp used as wallpaperSPI_SETDESKWALLPAPERParam should be a string specifying a .bmp fileSPI_GETDROPSHADOWReturns a booleanSPI_GETFLATMENUReturns a booleanSPI_GETFONTSMOOTHINGReturns a booleanSPI_GETICONTITLEWRAPReturns a booleanSPI_GETSNAPTODEFBUTTONReturns a booleanSPI_GETBEEPReturns a booleanSPI_GETBLOCKSENDINPUTRESETSReturns a booleanSPI_GETMENUUNDERLINESReturns a booleanSPI_GETKEYBOARDCUESReturns a booleanSPI_GETKEYBOARDPREFReturns a booleanSPI_GETSCREENSAVEACTIVEReturns a booleanSPI_GETSCREENSAVERRUNNINGReturns a booleanSPI_GETMENUDROPALIGNMENTReturns a boolean (True indicates left aligned, False right aligned)SPI_GETMENUFADEReturns a booleanSPI_GETLOWPOWERACTIVEReturns a booleanSPI_GETPOWEROFFACTIVEReturns a booleanSPI_GETCOMBOBOXANIMATIONReturns a booleanSPI_GETCURSORSHADOWReturns a booleanSPI_GETGRADIENTCAPTIONSReturns a booleanSPI_GETHOTTRACKINGReturns a booleanSPI_GETLISTBOXSMOOTHSCROLLINGReturns a booleanSPI_GETMENUANIMATIONReturns a booleanSPI_GETSELECTIONFADEReturns a booleanSPI_GETTOOLTIPANIMATIONReturns a booleanSPI_GETTOOLTIPFADEReturns a boolean (TRUE=fade, False=slide)SPI_GETUIEFFECTSReturns a booleanSPI_GETACTIVEWINDOWTRACKINGReturns a booleanSPI_GETACTIVEWNDTRKZORDERReturns a booleanSPI_GETDRAGFULLWINDOWSReturns a booleanSPI_GETSHOWIMEUIReturns a booleanSPI_GETMOUSECLICKLOCKReturns a booleanSPI_GETMOUSESONARReturns a booleanSPI_GETMOUSEVANISHReturns a booleanSPI_GETSCREENREADERReturns a booleanSPI_GETSHOWSOUNDSReturns a booleanSPI_SETDROPSHADOWParam must be a booleanSPI_SETDROPSHADOWParam must be a booleanSPI_SETMENUUNDERLINESParam must be a booleanSPI_SETKEYBOARDCUESParam must be a booleanSPI_SETMENUFADEParam must be a booleanSPI_SETCOMBOBOXANIMATIONParam must be a booleanSPI_SETCURSORSHADOWParam must be a booleanSPI_SETGRADIENTCAPTIONSParam must be a booleanSPI_SETHOTTRACKINGParam must be a booleanSPI_SETLISTBOXSMOOTHSCROLLINGParam must be a booleanSPI_SETMENUANIMATIONParam must be a booleanSPI_SETSELECTIONFADEParam must be a booleanSPI_SETTOOLTIPANIMATIONParam must be a booleanSPI_SETTOOLTIPFADEParam must be a booleanSPI_SETUIEFFECTSParam must be a booleanSPI_SETACTIVEWINDOWTRACKINGParam must be a booleanSPI_SETACTIVEWNDTRKZORDERParam must be a booleanSPI_SETMOUSESONARParam must be a booleanSPI_SETMOUSEVANISHParam must be a booleanSPI_SETMOUSECLICKLOCKParam must be a booleanSPI_SETFONTSMOOTHINGParam should specify a booleanSPI_SETICONTITLEWRAPParam should specify a booleanSPI_SETSNAPTODEFBUTTONParam is a booleanSPI_SETBEEPParam is a booleanSPI_SETBLOCKSENDINPUTRESETSParam is a booleanSPI_SETKEYBOARDPREFParam is a booleanSPI_SETMOUSEBUTTONSWAPParam is a booleanSPI_SETSCREENSAVEACTIVEParam is a booleanSPI_SETMENUDROPALIGNMENTParam is a boolean (True=left aligned, False=right aligned)SPI_SETLOWPOWERACTIVEParam is a booleanSPI_SETPOWEROFFACTIVEParam is a booleanSPI_SETDRAGFULLWINDOWSParam is a booleanSPI_SETSHOWIMEUIParam is a booleanSPI_SETSCREENREADERParam is a booleanSPI_SETSHOWSOUNDSParam is a booleanSPI_SETMOUSETRAILSParam should be an int specifying the nbr of cursors in the trail (0 or 1 means disabled)SPI_SETWHEELSCROLLLINESParam is an int specifying nbr of linesSPI_SETKEYBOARDDELAYParam is an int in the range 0 - 3SPI_SETKEYBOARDSPEEDParam is an int in the range 0 - 31SPI_SETDOUBLECLICKTIMEParam is an int (in milliseconds), Use win32gui::GetDoubleClickTime to retrieve the value.SPI_SETDOUBLECLKWIDTHParam is an int. Use win32api.GetSystemMetrics(SM_CXDOUBLECLK) to retrieve the value.SPI_SETDOUBLECLKHEIGHTParam is an int, Use win32api.GetSystemMetrics(SM_CYDOUBLECLK) to retrieve the value.SPI_SETMOUSEHOVERHEIGHTParam is an intSPI_SETMOUSEHOVERWIDTHParam is an intSPI_SETMOUSEHOVERTIMEParam is an intSPI_SETSCREENSAVETIMEOUTParam is an int specifying the timeout in secondsSPI_SETMENUSHOWDELAYParam is an int specifying the shortcut menu delay in millisecondsSPI_SETLOWPOWERTIMEOUTParam is an int (in seconds)SPI_SETPOWEROFFTIMEOUTParam is an int (in seconds)SPI_SETDRAGHEIGHTParam is an int. Use win32api.GetSystemMetrics(SM_CYDRAG) to retrieve the value.SPI_SETDRAGWIDTHParam is an int. Use win32api.GetSystemMetrics(SM_CXDRAG) to retrieve the value.SPI_SETBORDERParam is an intSPI_GETFONTSMOOTHINGCONTRASTReturns an intSPI_GETFONTSMOOTHINGTYPEReturns an intSPI_GETMOUSETRAILSReturns an int specifying the nbr of cursor images in the trail, 0 or 1 indicates disabledSPI_GETWHEELSCROLLLINESReturns the nbr of lines to scroll for the mouse wheelSPI_GETKEYBOARDDELAYReturns an intSPI_GETKEYBOARDSPEEDReturns an intSPI_GETMOUSESPEEDReturns an intSPI_GETMOUSEHOVERHEIGHTReturns an intSPI_GETMOUSEHOVERWIDTHReturns an intSPI_GETMOUSEHOVERTIMEReturns an intSPI_GETSCREENSAVETIMEOUTReturns an int (idle time in seconds)SPI_GETMENUSHOWDELAYReturns an int (shortcut delay in milliseconds)SPI_GETLOWPOWERTIMEOUTReturns an int (in seconds)SPI_GETPOWEROFFTIMEOUTReturns an int (in seconds)SPI_GETACTIVEWNDTRKTIMEOUTReturns an int (milliseconds)SPI_GETBORDERReturns an intSPI_GETCARETWIDTHReturns an intSPI_GETFOREGROUNDFLASHCOUNTReturns an intSPI_GETFOREGROUNDLOCKTIMEOUTReturns an intSPI_GETFOCUSBORDERHEIGHTReturns an intSPI_GETFOCUSBORDERWIDTHReturns an intSPI_GETMOUSECLICKLOCKTIMEReturns an int (in milliseconds)SPI_SETFONTSMOOTHINGCONTRASTParam should be an int in the range 1000 to 2200SPI_SETFONTSMOOTHINGTYPEParam should be one of the FE_FONTSMOOTHING* constantsSPI_SETMOUSESPEEDParam should be an int in the range 1 - 20SPI_SETACTIVEWNDTRKTIMEOUTParam is an int (in milliseconds)SPI_SETCARETWIDTHParam is an int (in pixels)SPI_SETFOREGROUNDFLASHCOUNTParam is an intSPI_SETFOREGROUNDLOCKTIMEOUTParam is an int (in milliseconds)SPI_SETFOCUSBORDERHEIGHTReturns an intSPI_SETFOCUSBORDERWIDTHReturns an intSPI_SETMOUSECLICKLOCKTIMEParam is an int (in milliseconds)SPI_GETICONTITLELOGFONTReturns a PyLOGFONT,SPI_SETICONTITLELOGFONTParam must be a PyLOGFONT,SPI_SETLANGTOGGLEParam is ignored. Sets the language toggle hotkey from registry key HKCU\\keyboard layout\\toggleSPI_SETICONSReloads the system icons. Param is not usedSPI_GETMOUSEReturns a tuple of 3 ints containing the x and y mouse thresholds and the acceleration factor.SPI_SETMOUSEParam should be a sequence of 3 intsSPI_GETDEFAULTINPUTLANGReturns an int (locale id for default language)SPI_SETDEFAULTINPUTLANGParam is an int containing a locale idSPI_GETANIMATIONReturns an intSPI_SETANIMATIONParam is an intSPI_ICONHORIZONTALSPACINGFunctions as both a get and set operation. If Param is None, functions as a get operation, otherwise Param is an int to be set as the new valueSPI_ICONVERTICALSPACINGFunctions as both a get and set operation. If Param is None, functions as a get operation, otherwise Param is an int to be set as the new valueSPI_GETNONCLIENTMETRICSParam must be None. The result is a dict.SPI_SETNONCLIENTMETRICSParam is a dict in the form of a NONCLIENTMETRICS struct, as returned by SPI_GETNONCLIENTMETRICS operationSPI_GETMINIMIZEDMETRICSReturns a dict representing a MINIMIZEDMETRICS struct. Param is not used.SPI_SETMINIMIZEDMETRICSParam should be a MINIMIZEDMETRICS dict as returned by SPI_GETMINIMIZEDMETRICS actionSPI_SETDESKPATTERNUnsupported (obsolete)SPI_GETFASTTASKSWITCHUnsupported (obsolete)SPI_SETFASTTASKSWITCHUnsupported (obsolete)SPI_SETSCREENSAVERRUNNINGUnsupported (documented as internal use only)SPI_SCREENSAVERRUNNINGSame as SPI_SETSCREENSAVERRUNNINGSPI_SETPENWINDOWSUnsupported (only relevant for win95)SPI_GETWINDOWSEXTENSIONUnsupported (only relevant for win95)SPI_GETGRIDGRANULARITYUnsupported (obsolete)SPI_SETGRIDGRANULARITYUnsupported (obsolete)SPI_LANGDRIVERUnsupported (use is not documented)SPI_GETFONTSMOOTHINGORIENTATIONUnsupported (use is not documented)SPI_SETFONTSMOOTHINGORIENTATIONUnsupported (use is not documented)SPI_SETHANDHELDUnsupported (use is not documented)SPI_GETICONMETRICSNot implemented yetSPI_SETICONMETRICSNot implemented yetSPI_GETWORKAREANot implemented yetSPI_SETWORKAREANot implemented yetSPI_GETSERIALKEYSNot implemented yetSPI_SETSERIALKEYSNot implemented yetSPI_SETMOUSEKEYSNot implemented yetSPI_GETMOUSEKEYSNot implemented yetSPI_GETHIGHCONTRASTNot implemented yetSPI_SETHIGHCONTRASTNot implemented yetSPI_GETSOUNDSENTRYNot implemented yetSPI_SETSOUNDSENTRYNot implemented yetSPI_GETSTICKYKEYSNot implemented yetSPI_SETSTICKYKEYSNot implemented yetSPI_GETTOGGLEKEYSNot implemented yetSPI_SETTOGGLEKEYSNot implemented yetSPI_GETACCESSTIMEOUTNot implemented yetSPI_SETACCESSTIMEOUTNot implemented yetSPI_GETFILTERKEYSNot implemented yetSPI_SETFILTERKEYSNot implemented yetCommentsParam and WinIni are not used with any of the SPI_GET operations Boolean parameters can be any object that can be evaluated as True or FalseReturn ValueSPI_SET functions all return None on success. Types returned by SPI_GET functions are dependent on the operation - -Returns: - - None:Flags specifying whether change should be permanent, and if all windows should be notified of change. Combination of SPIF_UPDATEINIFILE, SPIF_SENDCHANGE, SPIF_SENDWININICHANGE - - - -Action - - -Input/return type - - - -SPI_GETDESKWALLPAPERReturns the path to the bmp used as wallpaper -SPI_SETDESKWALLPAPERParam should be a string specifying a .bmp file -SPI_GETDROPSHADOWReturns a boolean -SPI_GETFLATMENUReturns a boolean -SPI_GETFONTSMOOTHINGReturns a boolean -SPI_GETICONTITLEWRAPReturns a boolean -SPI_GETSNAPTODEFBUTTONReturns a boolean -SPI_GETBEEPReturns a boolean -SPI_GETBLOCKSENDINPUTRESETSReturns a boolean -SPI_GETMENUUNDERLINESReturns a boolean -SPI_GETKEYBOARDCUESReturns a boolean -SPI_GETKEYBOARDPREFReturns a boolean -SPI_GETSCREENSAVEACTIVEReturns a boolean -SPI_GETSCREENSAVERRUNNINGReturns a boolean -SPI_GETMENUDROPALIGNMENTReturns a boolean (True indicates left aligned, False right aligned) -SPI_GETMENUFADEReturns a boolean -SPI_GETLOWPOWERACTIVEReturns a boolean -SPI_GETPOWEROFFACTIVEReturns a boolean -SPI_GETCOMBOBOXANIMATIONReturns a boolean -SPI_GETCURSORSHADOWReturns a boolean -SPI_GETGRADIENTCAPTIONSReturns a boolean -SPI_GETHOTTRACKINGReturns a boolean -SPI_GETLISTBOXSMOOTHSCROLLINGReturns a boolean -SPI_GETMENUANIMATIONReturns a boolean -SPI_GETSELECTIONFADEReturns a boolean -SPI_GETTOOLTIPANIMATIONReturns a boolean -SPI_GETTOOLTIPFADEReturns a boolean (TRUE=fade, False=slide) -SPI_GETUIEFFECTSReturns a boolean -SPI_GETACTIVEWINDOWTRACKINGReturns a boolean -SPI_GETACTIVEWNDTRKZORDERReturns a boolean -SPI_GETDRAGFULLWINDOWSReturns a boolean -SPI_GETSHOWIMEUIReturns a boolean -SPI_GETMOUSECLICKLOCKReturns a boolean -SPI_GETMOUSESONARReturns a boolean -SPI_GETMOUSEVANISHReturns a boolean -SPI_GETSCREENREADERReturns a boolean -SPI_GETSHOWSOUNDSReturns a boolean -SPI_SETDROPSHADOWParam must be a boolean -SPI_SETDROPSHADOWParam must be a boolean -SPI_SETMENUUNDERLINESParam must be a boolean -SPI_SETKEYBOARDCUESParam must be a boolean -SPI_SETMENUFADEParam must be a boolean -SPI_SETCOMBOBOXANIMATIONParam must be a boolean -SPI_SETCURSORSHADOWParam must be a boolean -SPI_SETGRADIENTCAPTIONSParam must be a boolean -SPI_SETHOTTRACKINGParam must be a boolean -SPI_SETLISTBOXSMOOTHSCROLLINGParam must be a boolean -SPI_SETMENUANIMATIONParam must be a boolean -SPI_SETSELECTIONFADEParam must be a boolean -SPI_SETTOOLTIPANIMATIONParam must be a boolean -SPI_SETTOOLTIPFADEParam must be a boolean -SPI_SETUIEFFECTSParam must be a boolean -SPI_SETACTIVEWINDOWTRACKINGParam must be a boolean -SPI_SETACTIVEWNDTRKZORDERParam must be a boolean -SPI_SETMOUSESONARParam must be a boolean -SPI_SETMOUSEVANISHParam must be a boolean -SPI_SETMOUSECLICKLOCKParam must be a boolean -SPI_SETFONTSMOOTHINGParam should specify a boolean -SPI_SETICONTITLEWRAPParam should specify a boolean -SPI_SETSNAPTODEFBUTTONParam is a boolean -SPI_SETBEEPParam is a boolean -SPI_SETBLOCKSENDINPUTRESETSParam is a boolean -SPI_SETKEYBOARDPREFParam is a boolean -SPI_SETMOUSEBUTTONSWAPParam is a boolean -SPI_SETSCREENSAVEACTIVEParam is a boolean -SPI_SETMENUDROPALIGNMENTParam is a boolean (True=left aligned, False=right aligned) -SPI_SETLOWPOWERACTIVEParam is a boolean -SPI_SETPOWEROFFACTIVEParam is a boolean -SPI_SETDRAGFULLWINDOWSParam is a boolean -SPI_SETSHOWIMEUIParam is a boolean -SPI_SETSCREENREADERParam is a boolean -SPI_SETSHOWSOUNDSParam is a boolean -SPI_SETMOUSETRAILSParam should be an int specifying the nbr of cursors in the trail (0 or 1 means disabled) -SPI_SETWHEELSCROLLLINESParam is an int specifying nbr of lines -SPI_SETKEYBOARDDELAYParam is an int in the range 0 - 3 -SPI_SETKEYBOARDSPEEDParam is an int in the range 0 - 31 -SPI_SETDOUBLECLICKTIMEParam is an int (in milliseconds), Use win32gui::GetDoubleClickTime to retrieve the value. -SPI_SETDOUBLECLKWIDTHParam is an int. Use win32api.GetSystemMetrics(SM_CXDOUBLECLK) to retrieve the value. -SPI_SETDOUBLECLKHEIGHTParam is an int, Use win32api.GetSystemMetrics(SM_CYDOUBLECLK) to retrieve the value. -SPI_SETMOUSEHOVERHEIGHTParam is an int -SPI_SETMOUSEHOVERWIDTHParam is an int -SPI_SETMOUSEHOVERTIMEParam is an int -SPI_SETSCREENSAVETIMEOUTParam is an int specifying the timeout in seconds -SPI_SETMENUSHOWDELAYParam is an int specifying the shortcut menu delay in milliseconds -SPI_SETLOWPOWERTIMEOUTParam is an int (in seconds) -SPI_SETPOWEROFFTIMEOUTParam is an int (in seconds) -SPI_SETDRAGHEIGHTParam is an int. Use win32api.GetSystemMetrics(SM_CYDRAG) to retrieve the value. -SPI_SETDRAGWIDTHParam is an int. Use win32api.GetSystemMetrics(SM_CXDRAG) to retrieve the value. -SPI_SETBORDERParam is an int -SPI_GETFONTSMOOTHINGCONTRASTReturns an int -SPI_GETFONTSMOOTHINGTYPEReturns an int -SPI_GETMOUSETRAILSReturns an int specifying the nbr of cursor images in the trail, 0 or 1 indicates disabled -SPI_GETWHEELSCROLLLINESReturns the nbr of lines to scroll for the mouse wheel -SPI_GETKEYBOARDDELAYReturns an int -SPI_GETKEYBOARDSPEEDReturns an int -SPI_GETMOUSESPEEDReturns an int -SPI_GETMOUSEHOVERHEIGHTReturns an int -SPI_GETMOUSEHOVERWIDTHReturns an int -SPI_GETMOUSEHOVERTIMEReturns an int -SPI_GETSCREENSAVETIMEOUTReturns an int (idle time in seconds) -SPI_GETMENUSHOWDELAYReturns an int (shortcut delay in milliseconds) -SPI_GETLOWPOWERTIMEOUTReturns an int (in seconds) -SPI_GETPOWEROFFTIMEOUTReturns an int (in seconds) -SPI_GETACTIVEWNDTRKTIMEOUTReturns an int (milliseconds) -SPI_GETBORDERReturns an int -SPI_GETCARETWIDTHReturns an int -SPI_GETFOREGROUNDFLASHCOUNTReturns an int -SPI_GETFOREGROUNDLOCKTIMEOUTReturns an int -SPI_GETFOCUSBORDERHEIGHTReturns an int -SPI_GETFOCUSBORDERWIDTHReturns an int -SPI_GETMOUSECLICKLOCKTIMEReturns an int (in milliseconds) -SPI_SETFONTSMOOTHINGCONTRASTParam should be an int in the range 1000 to 2200 -SPI_SETFONTSMOOTHINGTYPEParam should be one of the FE_FONTSMOOTHING* constants -SPI_SETMOUSESPEEDParam should be an int in the range 1 - 20 -SPI_SETACTIVEWNDTRKTIMEOUTParam is an int (in milliseconds) -SPI_SETCARETWIDTHParam is an int (in pixels) -SPI_SETFOREGROUNDFLASHCOUNTParam is an int -SPI_SETFOREGROUNDLOCKTIMEOUTParam is an int (in milliseconds) -SPI_SETFOCUSBORDERHEIGHTReturns an int -SPI_SETFOCUSBORDERWIDTHReturns an int -SPI_SETMOUSECLICKLOCKTIMEParam is an int (in milliseconds) -SPI_GETICONTITLELOGFONTReturns a PyLOGFONT, -SPI_SETICONTITLELOGFONTParam must be a PyLOGFONT, -SPI_SETLANGTOGGLEParam is ignored. Sets the language toggle hotkey from registry key HKCU\\keyboard layout\\toggle -SPI_SETICONSReloads the system icons. Param is not used -SPI_GETMOUSEReturns a tuple of 3 ints containing the x and y mouse thresholds and the acceleration factor. -SPI_SETMOUSEParam should be a sequence of 3 ints -SPI_GETDEFAULTINPUTLANGReturns an int (locale id for default language) -SPI_SETDEFAULTINPUTLANGParam is an int containing a locale id -SPI_GETANIMATIONReturns an int -SPI_SETANIMATIONParam is an int -SPI_ICONHORIZONTALSPACINGFunctions as both a get and set operation. If Param is None, functions as a get operation, otherwise Param is an int to be set as the new value -SPI_ICONVERTICALSPACINGFunctions as both a get and set operation. If Param is None, functions as a get operation, otherwise Param is an int to be set as the new value -SPI_GETNONCLIENTMETRICSParam must be None. The result is a dict. -SPI_SETNONCLIENTMETRICSParam is a dict in the form of a NONCLIENTMETRICS struct, as returned by SPI_GETNONCLIENTMETRICS operation -SPI_GETMINIMIZEDMETRICSReturns a dict representing a MINIMIZEDMETRICS struct. Param is not used. -SPI_SETMINIMIZEDMETRICSParam should be a MINIMIZEDMETRICS dict as returned by SPI_GETMINIMIZEDMETRICS action -SPI_SETDESKPATTERNUnsupported (obsolete) -SPI_GETFASTTASKSWITCHUnsupported (obsolete) -SPI_SETFASTTASKSWITCHUnsupported (obsolete) -SPI_SETSCREENSAVERRUNNINGUnsupported (documented as internal use only) -SPI_SCREENSAVERRUNNINGSame as SPI_SETSCREENSAVERRUNNING -SPI_SETPENWINDOWSUnsupported (only relevant for win95) -SPI_GETWINDOWSEXTENSIONUnsupported (only relevant for win95) -SPI_GETGRIDGRANULARITYUnsupported (obsolete) -SPI_SETGRIDGRANULARITYUnsupported (obsolete) -SPI_LANGDRIVERUnsupported (use is not documented) -SPI_GETFONTSMOOTHINGORIENTATIONUnsupported (use is not documented) -SPI_SETFONTSMOOTHINGORIENTATIONUnsupported (use is not documented) -SPI_SETHANDHELDUnsupported (use is not documented) -SPI_GETICONMETRICSNot implemented yet -SPI_SETICONMETRICSNot implemented yet -SPI_GETWORKAREANot implemented yet -SPI_SETWORKAREANot implemented yet -SPI_GETSERIALKEYSNot implemented yet -SPI_SETSERIALKEYSNot implemented yet -SPI_SETMOUSEKEYSNot implemented yet -SPI_GETMOUSEKEYSNot implemented yet -SPI_GETHIGHCONTRASTNot implemented yet -SPI_SETHIGHCONTRASTNot implemented yet -SPI_GETSOUNDSENTRYNot implemented yet -SPI_SETSOUNDSENTRYNot implemented yet -SPI_GETSTICKYKEYSNot implemented yet -SPI_SETSTICKYKEYSNot implemented yet -SPI_GETTOGGLEKEYSNot implemented yet -SPI_SETTOGGLEKEYSNot implemented yet -SPI_GETACCESSTIMEOUTNot implemented yet -SPI_SETACCESSTIMEOUTNot implemented yet -SPI_GETFILTERKEYSNot implemented yet -SPI_SETFILTERKEYSNot implemented yet -Comments - -Param and WinIni are not used with any of the SPI_GET operations - -Boolean parameters can be any object that can be evaluated as True or False -Return ValueSPI_SET functions all return None on success. Types returned by SPI_GET functions are dependent on the operation - - - """ - pass - - -def SetLayeredWindowAttributes(hwnd:'int',Key:'typing.Any',Alpha:'typing.Any',Flags:'typing.Any') -> 'None': - """ - Sets the opacity and transparency color key of a layered window. - -Args: - - hwnd(int):handle to the layered window - Key(typing.Any):Specifies the color key. Use win32api::RGB to generate value. - Alpha(typing.Any):Opacity, in the range 0-255 - Flags(typing.Any):Combination of win32con.LWA_* valuesCommentsThis function only exists on Win2k and laterAccepts keyword arguments - -Returns: - - None - - """ - pass - - -def GetLayeredWindowAttributes(hwnd:'int') -> 'tuple[typing.Any, typing.Any, typing.Any]': - """ - Retrieves the layering parameters of a window with the WS_EX_LAYERED extended style - -Args: - - hwnd(int):Handle to a layered windowCommentsThis function only exists on WinXP and later.Accepts keyword arguments.Return ValueReturns a tuple of (color key, alpha, flags) - -Returns: - - tuple[typing.Any, typing.Any, typing.Any]:Handle to a layered windowComments - -This function only exists on WinXP and later. - -Accepts keyword arguments. -Return ValueReturns a tuple of (color key, alpha, flags) - - - """ - pass - - -def UpdateLayeredWindow(hwnd:'int',arg:'tuple[int, int, int, int]',hdcDst:'int'=None,ptDst:'tuple[typing.Any, typing.Any]'=None,size:'tuple[typing.Any, typing.Any]'=None,hdcSrc:'typing.Any'=None,ptSrc:'tuple[typing.Any, typing.Any]'=None,Key:'typing.Any'=0,Flags:'typing.Any'=0) -> 'None': - """ - Updates the position, size, shape, content, and translucency of a layered window. - -Args: - - hwnd(int):handle to layered window - arg(tuple[int, int, int, int]):PyBLENDFUNCTION specifying alpha blending parameters - hdcDst(int):handle to screen DC, can be None. *Must* be None if hdcSrc is None - ptDst(tuple[typing.Any, typing.Any]):New screen position, can be None. - size(tuple[typing.Any, typing.Any]):New size of the layered window, can be None. *Must* be None if hdcSrc is None. - hdcSrc(typing.Any):handle to surface DC for the window, can be None - ptSrc(tuple[typing.Any, typing.Any]):layer position, can be None. *Must* be None if hdcSrc is None. - Key(typing.Any):Color key, generate using win32api::RGB - Flags(typing.Any):One of the win32con.ULW_* values. Use 0 if hdcSrc is None.CommentsThis function is only available on Windows 2000 and laterAccepts keyword arguments. - -Returns: - - None - - """ - pass - - -def AnimateWindow(hwnd:'int',Time:'typing.Any',Flags:'typing.Any') -> 'None': - """ - Enables you to produce special effects when showing or hiding windows. There are three types of animation: roll, slide, and alpha-blended fade. - -Args: - - hwnd(int):handle to window - Time(typing.Any):Duration of animation in ms - Flags(typing.Any):Animation type, combination of win32con.AW_* flagsCommentsThis function is available on Win2k and laterAccepts keyword args - -Returns: - - None - - """ - pass - - -def CreateBrushIndirect(lb:'win32typing.PyLOGBRUSH') -> 'win32typing.PyGdiHANDLE': - """ - Creates a GDI brush from a LOGBRUSH struct - -Args: - - lb(win32typing.PyLOGBRUSH):Dict containing brush creation parameters - -Returns: - - win32typing.PyGdiHANDLE - - """ - pass - - -def ExtCreatePen(PenStyle:'typing.Any',Width:'typing.Any',lb:'win32typing.PyLOGBRUSH',Style:'tuple[typing.Any, ...]'=None) -> 'int': - """ - Creates a GDI pen object - -Args: - - PenStyle(typing.Any):Combination of win32con.PS_*. Must contain either PS_GEOMETRIC or PS_COSMETIC. - Width(typing.Any):Width of pen in logical units. Must be 1 for PS_COSMETIC. - lb(win32typing.PyLOGBRUSH):Dict containing brush creation parameters - Style(tuple[typing.Any, ...]):Sequence containing lengths of dashes and spaces Used only with PS_USERSTYLE, otherwise must be None. - -Returns: - - int - - """ - pass - - -def DrawTextW(hDC:'int',String:'str',Count:'typing.Any',Rect:'win32typing.PyRECT',Format:'typing.Any') -> 'tuple[typing.Any, win32typing.PyRECT]': - """ - Draws Unicode text on a device context. - -Args: - - hDC(int):Handle to a device context - String(str):Text to be drawn - Count(typing.Any):Number of characters to draw, use -1 for entire null terminated string - Rect(win32typing.PyRECT):Rectangle in which to draw text - Format(typing.Any):Formatting flags, combination of win32con.DT_* valuesCommentsAccepts keyword args.Return ValueReturns the height of the drawn text, and the rectangle coordinates - -Returns: - - tuple[typing.Any, win32typing.PyRECT]:Formatting flags, combination of win32con.DT_* valuesComments - -Accepts keyword args. -Return ValueReturns the height of the drawn text, and the rectangle coordinates - - - """ - pass - - -def EnumPropsEx(hWnd:'int',EnumFunc:'typing.Any',Param:'typing.Any') -> 'None': - """ - None - -Args: - - hWnd(int):Handle to a window - EnumFunc(typing.Any):Callback function - Param(typing.Any):Arbitrary object to be passed to callback function - -Returns: - - None - - """ - pass - - -def RegisterDeviceNotification(handle:'int',_filter:'typing.Any',flags:'typing.Any') -> 'win32typing.PyHDEVNOTIFY': - """ - Registers the device or type of device for which a window will receive notifications. - -Args: - - handle(int):The handle to a window or a service - _filter(typing.Any):A buffer laid out like one of the DEV_BROADCAST_* structures, generally built by one of the win32gui_struct helpers. - flags(typing.Any):Win32 API References - -Returns: - - win32typing.PyHDEVNOTIFY - - """ - pass - - -def UnregisterDeviceNotification() -> 'None': - """ - Unregisters a Device Notification handle. - -It is generally not necessary to call this function manually, but in some cases, - -handle values may be extracted via the struct module and need to be closed explicitly. - -Args: - - - -Returns: - - None - - """ - pass - - -def RegisterHotKey(hWnd:'int',_id:'typing.Any',Modifiers:'typing.Any',vk:'typing.Any') -> 'None': - """ - Registers a hotkey for a window - -Args: - - hWnd(int):Handle to window that will receive WM_HOTKEY messages - _id(typing.Any):Unique id to be used for the hot key - Modifiers(typing.Any):Control keys, combination of win32con.MOD_* - vk(typing.Any):Virtual key codeWin32 API References - -Returns: - - None - - """ - pass - -CLR_NONE = ... -ILC_COLOR = ... -ILC_COLOR16 = ... -ILC_COLOR24 = ... -ILC_COLOR32 = ... -ILC_COLOR4 = ... -ILC_COLOR8 = ... -ILC_COLORDDB = ... -ILC_MASK = ... -ILD_BLEND = ... -ILD_BLEND25 = ... -ILD_BLEND50 = ... -ILD_FOCUS = ... -ILD_MASK = ... -ILD_NORMAL = ... -ILD_SELECTED = ... -ILD_TRANSPARENT = ... -IMAGE_BITMAP = ... -IMAGE_CURSOR = ... -IMAGE_ICON = ... -LR_CREATEDIBSECTION = ... -LR_DEFAULTCOLOR = ... -LR_DEFAULTSIZE = ... -LR_LOADFROMFILE = ... -LR_LOADMAP3DCOLORS = ... -LR_LOADTRANSPARENT = ... -LR_MONOCHROME = ... -LR_SHARED = ... -LR_VGACOLOR = ... -NIF_ICON = ... -NIF_INFO = ... -NIF_MESSAGE = ... -NIF_STATE = ... -NIF_TIP = ... -NIIF_ERROR = ... -NIIF_ICON_MASK = ... -NIIF_INFO = ... -NIIF_NONE = ... -NIIF_NOSOUND = ... -NIIF_WARNING = ... -NIM_ADD = ... -NIM_DELETE = ... -NIM_MODIFY = ... -NIM_SETFOCUS = ... -NIM_SETVERSION = ... -TPM_BOTTOMALIGN = ... -TPM_CENTERALIGN = ... -TPM_LEFTALIGN = ... -TPM_LEFTBUTTON = ... -TPM_NONOTIFY = ... -TPM_RETURNCMD = ... -TPM_RIGHTALIGN = ... -TPM_RIGHTBUTTON = ... -TPM_TOPALIGN = ... -TPM_VCENTERALIGN = ... diff --git a/typings/win32con/__init__.pyi b/typings/win32con/__init__.pyi deleted file mode 100644 index 92e62fdc..00000000 --- a/typings/win32con/__init__.pyi +++ /dev/null @@ -1,5045 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -# Generated by h2py from commdlg.h (plus modifications 4jan98) -WINVER = 1280 -WM_USER = 1024 -PY_0U = 0 -OFN_READONLY = 1 -OFN_OVERWRITEPROMPT = 2 -OFN_HIDEREADONLY = 4 -OFN_NOCHANGEDIR = 8 -OFN_SHOWHELP = 16 -OFN_ENABLEHOOK = 32 -OFN_ENABLETEMPLATE = 64 -OFN_ENABLETEMPLATEHANDLE = 128 -OFN_NOVALIDATE = 256 -OFN_ALLOWMULTISELECT = 512 -OFN_EXTENSIONDIFFERENT = 1024 -OFN_PATHMUSTEXIST = 2048 -OFN_FILEMUSTEXIST = 4096 -OFN_CREATEPROMPT = 8192 -OFN_SHAREAWARE = 16384 -OFN_NOREADONLYRETURN = 32768 -OFN_NOTESTFILECREATE = 65536 -OFN_NONETWORKBUTTON = 131072 -OFN_NOLONGNAMES = 262144 -OFN_EXPLORER = 524288 # new look commdlg -OFN_NODEREFERENCELINKS = 1048576 -OFN_LONGNAMES = 2097152 # force long names for 3.x modules -OFN_ENABLEINCLUDENOTIFY = 4194304 # send include message to callback -OFN_ENABLESIZING = 8388608 -OFN_DONTADDTORECENT = 33554432 -OFN_FORCESHOWHIDDEN = 268435456 # Show All files including System and hidden files -OFN_EX_NOPLACESBAR = 1 -OFN_SHAREFALLTHROUGH = 2 -OFN_SHARENOWARN = 1 -OFN_SHAREWARN = 0 -CDN_FIRST = (PY_0U-601) -CDN_LAST = (PY_0U-699) -CDN_INITDONE = (CDN_FIRST - 0) -CDN_SELCHANGE = (CDN_FIRST - 1) -CDN_FOLDERCHANGE = (CDN_FIRST - 2) -CDN_SHAREVIOLATION = (CDN_FIRST - 3) -CDN_HELP = (CDN_FIRST - 4) -CDN_FILEOK = (CDN_FIRST - 5) -CDN_TYPECHANGE = (CDN_FIRST - 6) -CDN_INCLUDEITEM = (CDN_FIRST - 7) -CDM_FIRST = (WM_USER + 100) -CDM_LAST = (WM_USER + 200) -CDM_GETSPEC = (CDM_FIRST + 0) -CDM_GETFILEPATH = (CDM_FIRST + 1) -CDM_GETFOLDERPATH = (CDM_FIRST + 2) -CDM_GETFOLDERIDLIST = (CDM_FIRST + 3) -CDM_SETCONTROLTEXT = (CDM_FIRST + 4) -CDM_HIDECONTROL = (CDM_FIRST + 5) -CDM_SETDEFEXT = (CDM_FIRST + 6) -CC_RGBINIT = 1 -CC_FULLOPEN = 2 -CC_PREVENTFULLOPEN = 4 -CC_SHOWHELP = 8 -CC_ENABLEHOOK = 16 -CC_ENABLETEMPLATE = 32 -CC_ENABLETEMPLATEHANDLE = 64 -CC_SOLIDCOLOR = 128 -CC_ANYCOLOR = 256 -FR_DOWN = 1 -FR_WHOLEWORD = 2 -FR_MATCHCASE = 4 -FR_FINDNEXT = 8 -FR_REPLACE = 16 -FR_REPLACEALL = 32 -FR_DIALOGTERM = 64 -FR_SHOWHELP = 128 -FR_ENABLEHOOK = 256 -FR_ENABLETEMPLATE = 512 -FR_NOUPDOWN = 1024 -FR_NOMATCHCASE = 2048 -FR_NOWHOLEWORD = 4096 -FR_ENABLETEMPLATEHANDLE = 8192 -FR_HIDEUPDOWN = 16384 -FR_HIDEMATCHCASE = 32768 -FR_HIDEWHOLEWORD = 65536 -CF_SCREENFONTS = 1 -CF_PRINTERFONTS = 2 -CF_BOTH = (CF_SCREENFONTS | CF_PRINTERFONTS) -CF_SHOWHELP = 4 -CF_ENABLEHOOK = 8 -CF_ENABLETEMPLATE = 16 -CF_ENABLETEMPLATEHANDLE = 32 -CF_INITTOLOGFONTSTRUCT = 64 -CF_USESTYLE = 128 -CF_EFFECTS = 256 -CF_APPLY = 512 -CF_ANSIONLY = 1024 -CF_SCRIPTSONLY = CF_ANSIONLY -CF_NOVECTORFONTS = 2048 -CF_NOOEMFONTS = CF_NOVECTORFONTS -CF_NOSIMULATIONS = 4096 -CF_LIMITSIZE = 8192 -CF_FIXEDPITCHONLY = 16384 -CF_WYSIWYG = 32768 # must also have CF_SCREENFONTS & CF_PRINTERFONTS -CF_FORCEFONTEXIST = 65536 -CF_SCALABLEONLY = 131072 -CF_TTONLY = 262144 -CF_NOFACESEL = 524288 -CF_NOSTYLESEL = 1048576 -CF_NOSIZESEL = 2097152 -CF_SELECTSCRIPT = 4194304 -CF_NOSCRIPTSEL = 8388608 -CF_NOVERTFONTS = 16777216 -SIMULATED_FONTTYPE = 32768 -PRINTER_FONTTYPE = 16384 -SCREEN_FONTTYPE = 8192 -BOLD_FONTTYPE = 256 -ITALIC_FONTTYPE = 512 -REGULAR_FONTTYPE = 1024 -OPENTYPE_FONTTYPE = 65536 -TYPE1_FONTTYPE = 131072 -DSIG_FONTTYPE = 262144 -WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1) -WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101) -WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102) -LBSELCHSTRINGA = "commdlg_LBSelChangedNotify" -SHAREVISTRINGA = "commdlg_ShareViolation" -FILEOKSTRINGA = "commdlg_FileNameOK" -COLOROKSTRINGA = "commdlg_ColorOK" -SETRGBSTRINGA = "commdlg_SetRGBColor" -HELPMSGSTRINGA = "commdlg_help" -FINDMSGSTRINGA = "commdlg_FindReplace" -LBSELCHSTRING = LBSELCHSTRINGA -SHAREVISTRING = SHAREVISTRINGA -FILEOKSTRING = FILEOKSTRINGA -COLOROKSTRING = COLOROKSTRINGA -SETRGBSTRING = SETRGBSTRINGA -HELPMSGSTRING = HELPMSGSTRINGA -FINDMSGSTRING = FINDMSGSTRINGA -CD_LBSELNOITEMS = -1 -CD_LBSELCHANGE = 0 -CD_LBSELSUB = 1 -CD_LBSELADD = 2 -PD_ALLPAGES = 0 -PD_SELECTION = 1 -PD_PAGENUMS = 2 -PD_NOSELECTION = 4 -PD_NOPAGENUMS = 8 -PD_COLLATE = 16 -PD_PRINTTOFILE = 32 -PD_PRINTSETUP = 64 -PD_NOWARNING = 128 -PD_RETURNDC = 256 -PD_RETURNIC = 512 -PD_RETURNDEFAULT = 1024 -PD_SHOWHELP = 2048 -PD_ENABLEPRINTHOOK = 4096 -PD_ENABLESETUPHOOK = 8192 -PD_ENABLEPRINTTEMPLATE = 16384 -PD_ENABLESETUPTEMPLATE = 32768 -PD_ENABLEPRINTTEMPLATEHANDLE = 65536 -PD_ENABLESETUPTEMPLATEHANDLE = 131072 -PD_USEDEVMODECOPIES = 262144 -PD_DISABLEPRINTTOFILE = 524288 -PD_HIDEPRINTTOFILE = 1048576 -PD_NONETWORKBUTTON = 2097152 -DN_DEFAULTPRN = 1 -WM_PSD_PAGESETUPDLG = (WM_USER ) -WM_PSD_FULLPAGERECT = (WM_USER+1) -WM_PSD_MINMARGINRECT = (WM_USER+2) -WM_PSD_MARGINRECT = (WM_USER+3) -WM_PSD_GREEKTEXTRECT = (WM_USER+4) -WM_PSD_ENVSTAMPRECT = (WM_USER+5) -WM_PSD_YAFULLPAGERECT = (WM_USER+6) -PSD_DEFAULTMINMARGINS = 0 # default (printer's) -PSD_INWININIINTLMEASURE = 0 # 1st of 4 possible -PSD_MINMARGINS = 1 # use caller's -PSD_MARGINS = 2 # use caller's -PSD_INTHOUSANDTHSOFINCHES = 4 # 2nd of 4 possible -PSD_INHUNDREDTHSOFMILLIMETERS = 8 # 3rd of 4 possible -PSD_DISABLEMARGINS = 16 -PSD_DISABLEPRINTER = 32 -PSD_NOWARNING = 128 # must be same as PD_* -PSD_DISABLEORIENTATION = 256 -PSD_RETURNDEFAULT = 1024 # must be same as PD_* -PSD_DISABLEPAPER = 512 -PSD_SHOWHELP = 2048 # must be same as PD_* -PSD_ENABLEPAGESETUPHOOK = 8192 # must be same as PD_* -PSD_ENABLEPAGESETUPTEMPLATE = 32768 # must be same as PD_* -PSD_ENABLEPAGESETUPTEMPLATEHANDLE = 131072 # must be same as PD_* -PSD_ENABLEPAGEPAINTHOOK = 262144 -PSD_DISABLEPAGEPAINTING = 524288 -PSD_NONETWORKBUTTON = 2097152 # must be same as PD_* - -# Generated by h2py from winreg.h -HKEY_CLASSES_ROOT = -2147483648 -HKEY_CURRENT_USER = -2147483647 -HKEY_LOCAL_MACHINE = -2147483646 -HKEY_USERS = -2147483645 -HKEY_PERFORMANCE_DATA = -2147483644 -HKEY_CURRENT_CONFIG = -2147483643 -HKEY_DYN_DATA = -2147483642 -HKEY_PERFORMANCE_TEXT = -2147483568 # ?? 4Jan98 -HKEY_PERFORMANCE_NLSTEXT = -2147483552 # ?? 4Jan98 - -# Generated by h2py from winuser.h -HWND_BROADCAST = 65535 -HWND_DESKTOP = 0 -HWND_TOP = 0 -HWND_BOTTOM = 1 -HWND_TOPMOST = -1 -HWND_NOTOPMOST = -2 -HWND_MESSAGE = -3 - -# winuser.h line 4601 -SM_CXSCREEN = 0 -SM_CYSCREEN = 1 -SM_CXVSCROLL = 2 -SM_CYHSCROLL = 3 -SM_CYCAPTION = 4 -SM_CXBORDER = 5 -SM_CYBORDER = 6 -SM_CXDLGFRAME = 7 -SM_CYDLGFRAME = 8 -SM_CYVTHUMB = 9 -SM_CXHTHUMB = 10 -SM_CXICON = 11 -SM_CYICON = 12 -SM_CXCURSOR = 13 -SM_CYCURSOR = 14 -SM_CYMENU = 15 -SM_CXFULLSCREEN = 16 -SM_CYFULLSCREEN = 17 -SM_CYKANJIWINDOW = 18 -SM_MOUSEPRESENT = 19 -SM_CYVSCROLL = 20 -SM_CXHSCROLL = 21 -SM_DEBUG = 22 -SM_SWAPBUTTON = 23 -SM_RESERVED1 = 24 -SM_RESERVED2 = 25 -SM_RESERVED3 = 26 -SM_RESERVED4 = 27 -SM_CXMIN = 28 -SM_CYMIN = 29 -SM_CXSIZE = 30 -SM_CYSIZE = 31 -SM_CXFRAME = 32 -SM_CYFRAME = 33 -SM_CXMINTRACK = 34 -SM_CYMINTRACK = 35 -SM_CXDOUBLECLK = 36 -SM_CYDOUBLECLK = 37 -SM_CXICONSPACING = 38 -SM_CYICONSPACING = 39 -SM_MENUDROPALIGNMENT = 40 -SM_PENWINDOWS = 41 -SM_DBCSENABLED = 42 -SM_CMOUSEBUTTONS = 43 -SM_CXFIXEDFRAME = SM_CXDLGFRAME -SM_CYFIXEDFRAME = SM_CYDLGFRAME -SM_CXSIZEFRAME = SM_CXFRAME -SM_CYSIZEFRAME = SM_CYFRAME -SM_SECURE = 44 -SM_CXEDGE = 45 -SM_CYEDGE = 46 -SM_CXMINSPACING = 47 -SM_CYMINSPACING = 48 -SM_CXSMICON = 49 -SM_CYSMICON = 50 -SM_CYSMCAPTION = 51 -SM_CXSMSIZE = 52 -SM_CYSMSIZE = 53 -SM_CXMENUSIZE = 54 -SM_CYMENUSIZE = 55 -SM_ARRANGE = 56 -SM_CXMINIMIZED = 57 -SM_CYMINIMIZED = 58 -SM_CXMAXTRACK = 59 -SM_CYMAXTRACK = 60 -SM_CXMAXIMIZED = 61 -SM_CYMAXIMIZED = 62 -SM_NETWORK = 63 -SM_CLEANBOOT = 67 -SM_CXDRAG = 68 -SM_CYDRAG = 69 -SM_SHOWSOUNDS = 70 -SM_CXMENUCHECK = 71 -SM_CYMENUCHECK = 72 -SM_SLOWMACHINE = 73 -SM_MIDEASTENABLED = 74 -SM_MOUSEWHEELPRESENT = 75 -SM_XVIRTUALSCREEN = 76 -SM_YVIRTUALSCREEN = 77 -SM_CXVIRTUALSCREEN = 78 -SM_CYVIRTUALSCREEN = 79 -SM_CMONITORS = 80 -SM_SAMEDISPLAYFORMAT = 81 -SM_CMETRICS = 83 -MNC_IGNORE = 0 -MNC_CLOSE = 1 -MNC_EXECUTE = 2 -MNC_SELECT = 3 -MNS_NOCHECK = -2147483648 -MNS_MODELESS = 1073741824 -MNS_DRAGDROP = 536870912 -MNS_AUTODISMISS = 268435456 -MNS_NOTIFYBYPOS = 134217728 -MNS_CHECKORBMP = 67108864 -MIM_MAXHEIGHT = 1 -MIM_BACKGROUND = 2 -MIM_HELPID = 4 -MIM_MENUDATA = 8 -MIM_STYLE = 16 -MIM_APPLYTOSUBMENUS = -2147483648 -MND_CONTINUE = 0 -MND_ENDMENU = 1 -MNGOF_GAP = 3 -MNGO_NOINTERFACE = 0 -MNGO_NOERROR = 1 -MIIM_STATE = 1 -MIIM_ID = 2 -MIIM_SUBMENU = 4 -MIIM_CHECKMARKS = 8 -MIIM_TYPE = 16 -MIIM_DATA = 32 -MIIM_STRING = 64 -MIIM_BITMAP = 128 -MIIM_FTYPE = 256 -HBMMENU_CALLBACK = -1 -HBMMENU_SYSTEM = 1 -HBMMENU_MBAR_RESTORE = 2 -HBMMENU_MBAR_MINIMIZE = 3 -HBMMENU_MBAR_CLOSE = 5 -HBMMENU_MBAR_CLOSE_D = 6 -HBMMENU_MBAR_MINIMIZE_D = 7 -HBMMENU_POPUP_CLOSE = 8 -HBMMENU_POPUP_RESTORE = 9 -HBMMENU_POPUP_MAXIMIZE = 10 -HBMMENU_POPUP_MINIMIZE = 11 -GMDI_USEDISABLED = 1 -GMDI_GOINTOPOPUPS = 2 -TPM_LEFTBUTTON = 0 -TPM_RIGHTBUTTON = 2 -TPM_LEFTALIGN = 0 -TPM_CENTERALIGN = 4 -TPM_RIGHTALIGN = 8 -TPM_TOPALIGN = 0 -TPM_VCENTERALIGN = 16 -TPM_BOTTOMALIGN = 32 -TPM_HORIZONTAL = 0 -TPM_VERTICAL = 64 -TPM_NONOTIFY = 128 -TPM_RETURNCMD = 256 -TPM_RECURSE = 1 -DOF_EXECUTABLE = 32769 -DOF_DOCUMENT = 32770 -DOF_DIRECTORY = 32771 -DOF_MULTIPLE = 32772 -DOF_PROGMAN = 1 -DOF_SHELLDATA = 2 -DO_DROPFILE = 1162627398 -DO_PRINTFILE = 1414419024 -DT_TOP = 0 -DT_LEFT = 0 -DT_CENTER = 1 -DT_RIGHT = 2 -DT_VCENTER = 4 -DT_BOTTOM = 8 -DT_WORDBREAK = 16 -DT_SINGLELINE = 32 -DT_EXPANDTABS = 64 -DT_TABSTOP = 128 -DT_NOCLIP = 256 -DT_EXTERNALLEADING = 512 -DT_CALCRECT = 1024 -DT_NOPREFIX = 2048 -DT_INTERNAL = 4096 -DT_EDITCONTROL = 8192 -DT_PATH_ELLIPSIS = 16384 -DT_END_ELLIPSIS = 32768 -DT_MODIFYSTRING = 65536 -DT_RTLREADING = 131072 -DT_WORD_ELLIPSIS = 262144 -DST_COMPLEX = 0 -DST_TEXT = 1 -DST_PREFIXTEXT = 2 -DST_ICON = 3 -DST_BITMAP = 4 -DSS_NORMAL = 0 -DSS_UNION = 16 -DSS_DISABLED = 32 -DSS_MONO = 128 -DSS_RIGHT = 32768 -DCX_WINDOW = 1 -DCX_CACHE = 2 -DCX_NORESETATTRS = 4 -DCX_CLIPCHILDREN = 8 -DCX_CLIPSIBLINGS = 16 -DCX_PARENTCLIP = 32 -DCX_EXCLUDERGN = 64 -DCX_INTERSECTRGN = 128 -DCX_EXCLUDEUPDATE = 256 -DCX_INTERSECTUPDATE = 512 -DCX_LOCKWINDOWUPDATE = 1024 -DCX_VALIDATE = 2097152 -CUDR_NORMAL = 0 -CUDR_NOSNAPTOGRID = 1 -CUDR_NORESOLVEPOSITIONS = 2 -CUDR_NOCLOSEGAPS = 4 -CUDR_NEGATIVECOORDS = 8 -CUDR_NOPRIMARY = 16 -RDW_INVALIDATE = 1 -RDW_INTERNALPAINT = 2 -RDW_ERASE = 4 -RDW_VALIDATE = 8 -RDW_NOINTERNALPAINT = 16 -RDW_NOERASE = 32 -RDW_NOCHILDREN = 64 -RDW_ALLCHILDREN = 128 -RDW_UPDATENOW = 256 -RDW_ERASENOW = 512 -RDW_FRAME = 1024 -RDW_NOFRAME = 2048 -SW_SCROLLCHILDREN = 1 -SW_INVALIDATE = 2 -SW_ERASE = 4 -SW_SMOOTHSCROLL = 16 # Use smooth scrolling -ESB_ENABLE_BOTH = 0 -ESB_DISABLE_BOTH = 3 -ESB_DISABLE_LEFT = 1 -ESB_DISABLE_RIGHT = 2 -ESB_DISABLE_UP = 1 -ESB_DISABLE_DOWN = 2 -ESB_DISABLE_LTUP = ESB_DISABLE_LEFT -ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT -HELPINFO_WINDOW = 1 -HELPINFO_MENUITEM = 2 -MB_OK = 0 -MB_OKCANCEL = 1 -MB_ABORTRETRYIGNORE = 2 -MB_YESNOCANCEL = 3 -MB_YESNO = 4 -MB_RETRYCANCEL = 5 -MB_ICONHAND = 16 -MB_ICONQUESTION = 32 -MB_ICONEXCLAMATION = 48 -MB_ICONASTERISK = 64 -MB_ICONWARNING = MB_ICONEXCLAMATION -MB_ICONERROR = MB_ICONHAND -MB_ICONINFORMATION = MB_ICONASTERISK -MB_ICONSTOP = MB_ICONHAND -MB_DEFBUTTON1 = 0 -MB_DEFBUTTON2 = 256 -MB_DEFBUTTON3 = 512 -MB_DEFBUTTON4 = 768 -MB_APPLMODAL = 0 -MB_SYSTEMMODAL = 4096 -MB_TASKMODAL = 8192 -MB_HELP = 16384 -MB_NOFOCUS = 32768 -MB_SETFOREGROUND = 65536 -MB_DEFAULT_DESKTOP_ONLY = 131072 -MB_TOPMOST = 262144 -MB_RIGHT = 524288 -MB_RTLREADING = 1048576 -MB_SERVICE_NOTIFICATION = 2097152 -MB_TYPEMASK = 15 -MB_USERICON = 128 -MB_ICONMASK = 240 -MB_DEFMASK = 3840 -MB_MODEMASK = 12288 -MB_MISCMASK = 49152 -# winuser.h line 6373 -CWP_ALL = 0 -CWP_SKIPINVISIBLE = 1 -CWP_SKIPDISABLED = 2 -CWP_SKIPTRANSPARENT = 4 -CTLCOLOR_MSGBOX = 0 -CTLCOLOR_EDIT = 1 -CTLCOLOR_LISTBOX = 2 -CTLCOLOR_BTN = 3 -CTLCOLOR_DLG = 4 -CTLCOLOR_SCROLLBAR = 5 -CTLCOLOR_STATIC = 6 -CTLCOLOR_MAX = 7 -COLOR_SCROLLBAR = 0 -COLOR_BACKGROUND = 1 -COLOR_ACTIVECAPTION = 2 -COLOR_INACTIVECAPTION = 3 -COLOR_MENU = 4 -COLOR_WINDOW = 5 -COLOR_WINDOWFRAME = 6 -COLOR_MENUTEXT = 7 -COLOR_WINDOWTEXT = 8 -COLOR_CAPTIONTEXT = 9 -COLOR_ACTIVEBORDER = 10 -COLOR_INACTIVEBORDER = 11 -COLOR_APPWORKSPACE = 12 -COLOR_HIGHLIGHT = 13 -COLOR_HIGHLIGHTTEXT = 14 -COLOR_BTNFACE = 15 -COLOR_BTNSHADOW = 16 -COLOR_GRAYTEXT = 17 -COLOR_BTNTEXT = 18 -COLOR_INACTIVECAPTIONTEXT = 19 -COLOR_BTNHIGHLIGHT = 20 -COLOR_3DDKSHADOW = 21 -COLOR_3DLIGHT = 22 -COLOR_INFOTEXT = 23 -COLOR_INFOBK = 24 -COLOR_HOTLIGHT = 26 -COLOR_GRADIENTACTIVECAPTION = 27 -COLOR_GRADIENTINACTIVECAPTION = 28 -COLOR_DESKTOP = COLOR_BACKGROUND -COLOR_3DFACE = COLOR_BTNFACE -COLOR_3DSHADOW = COLOR_BTNSHADOW -COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT -COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT -COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT -GW_HWNDFIRST = 0 -GW_HWNDLAST = 1 -GW_HWNDNEXT = 2 -GW_HWNDPREV = 3 -GW_OWNER = 4 -GW_CHILD = 5 -GW_ENABLEDPOPUP = 6 -GW_MAX = 6 -MF_INSERT = 0 -MF_CHANGE = 128 -MF_APPEND = 256 -MF_DELETE = 512 -MF_REMOVE = 4096 -MF_BYCOMMAND = 0 -MF_BYPOSITION = 1024 -MF_SEPARATOR = 2048 -MF_ENABLED = 0 -MF_GRAYED = 1 -MF_DISABLED = 2 -MF_UNCHECKED = 0 -MF_CHECKED = 8 -MF_USECHECKBITMAPS = 512 -MF_STRING = 0 -MF_BITMAP = 4 -MF_OWNERDRAW = 256 -MF_POPUP = 16 -MF_MENUBARBREAK = 32 -MF_MENUBREAK = 64 -MF_UNHILITE = 0 -MF_HILITE = 128 -MF_DEFAULT = 4096 -MF_SYSMENU = 8192 -MF_HELP = 16384 -MF_RIGHTJUSTIFY = 16384 -MF_MOUSESELECT = 32768 -MF_END = 128 -MFT_STRING = MF_STRING -MFT_BITMAP = MF_BITMAP -MFT_MENUBARBREAK = MF_MENUBARBREAK -MFT_MENUBREAK = MF_MENUBREAK -MFT_OWNERDRAW = MF_OWNERDRAW -MFT_RADIOCHECK = 512 -MFT_SEPARATOR = MF_SEPARATOR -MFT_RIGHTORDER = 8192 -MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY -MFS_GRAYED = 3 -MFS_DISABLED = MFS_GRAYED -MFS_CHECKED = MF_CHECKED -MFS_HILITE = MF_HILITE -MFS_ENABLED = MF_ENABLED -MFS_UNCHECKED = MF_UNCHECKED -MFS_UNHILITE = MF_UNHILITE -MFS_DEFAULT = MF_DEFAULT -MFS_MASK = 4235 -MFS_HOTTRACKDRAWN = 268435456 -MFS_CACHEDBMP = 536870912 -MFS_BOTTOMGAPDROP = 1073741824 -MFS_TOPGAPDROP = -2147483648 -MFS_GAPDROP = -1073741824 -SC_SIZE = 61440 -SC_MOVE = 61456 -SC_MINIMIZE = 61472 -SC_MAXIMIZE = 61488 -SC_NEXTWINDOW = 61504 -SC_PREVWINDOW = 61520 -SC_CLOSE = 61536 -SC_VSCROLL = 61552 -SC_HSCROLL = 61568 -SC_MOUSEMENU = 61584 -SC_KEYMENU = 61696 -SC_ARRANGE = 61712 -SC_RESTORE = 61728 -SC_TASKLIST = 61744 -SC_SCREENSAVE = 61760 -SC_HOTKEY = 61776 -SC_DEFAULT = 61792 -SC_MONITORPOWER = 61808 -SC_CONTEXTHELP = 61824 -SC_SEPARATOR = 61455 -SC_ICON = SC_MINIMIZE -SC_ZOOM = SC_MAXIMIZE -IDC_ARROW = 32512 -IDC_IBEAM = 32513 -IDC_WAIT = 32514 -IDC_CROSS = 32515 -IDC_UPARROW = 32516 -IDC_SIZE = 32640 # OBSOLETE: use IDC_SIZEALL -IDC_ICON = 32641 # OBSOLETE: use IDC_ARROW -IDC_SIZENWSE = 32642 -IDC_SIZENESW = 32643 -IDC_SIZEWE = 32644 -IDC_SIZENS = 32645 -IDC_SIZEALL = 32646 -IDC_NO = 32648 -IDC_HAND = 32649 -IDC_APPSTARTING = 32650 -IDC_HELP = 32651 -IMAGE_BITMAP = 0 -IMAGE_ICON = 1 -IMAGE_CURSOR = 2 -IMAGE_ENHMETAFILE = 3 -LR_DEFAULTCOLOR = 0 -LR_MONOCHROME = 1 -LR_COLOR = 2 -LR_COPYRETURNORG = 4 -LR_COPYDELETEORG = 8 -LR_LOADFROMFILE = 16 -LR_LOADTRANSPARENT = 32 -LR_DEFAULTSIZE = 64 -LR_LOADREALSIZE = 128 -LR_LOADMAP3DCOLORS = 4096 -LR_CREATEDIBSECTION = 8192 -LR_COPYFROMRESOURCE = 16384 -LR_SHARED = 32768 -DI_MASK = 1 -DI_IMAGE = 2 -DI_NORMAL = 3 -DI_COMPAT = 4 -DI_DEFAULTSIZE = 8 -RES_ICON = 1 -RES_CURSOR = 2 -OBM_CLOSE = 32754 -OBM_UPARROW = 32753 -OBM_DNARROW = 32752 -OBM_RGARROW = 32751 -OBM_LFARROW = 32750 -OBM_REDUCE = 32749 -OBM_ZOOM = 32748 -OBM_RESTORE = 32747 -OBM_REDUCED = 32746 -OBM_ZOOMD = 32745 -OBM_RESTORED = 32744 -OBM_UPARROWD = 32743 -OBM_DNARROWD = 32742 -OBM_RGARROWD = 32741 -OBM_LFARROWD = 32740 -OBM_MNARROW = 32739 -OBM_COMBO = 32738 -OBM_UPARROWI = 32737 -OBM_DNARROWI = 32736 -OBM_RGARROWI = 32735 -OBM_LFARROWI = 32734 -OBM_OLD_CLOSE = 32767 -OBM_SIZE = 32766 -OBM_OLD_UPARROW = 32765 -OBM_OLD_DNARROW = 32764 -OBM_OLD_RGARROW = 32763 -OBM_OLD_LFARROW = 32762 -OBM_BTSIZE = 32761 -OBM_CHECK = 32760 -OBM_CHECKBOXES = 32759 -OBM_BTNCORNERS = 32758 -OBM_OLD_REDUCE = 32757 -OBM_OLD_ZOOM = 32756 -OBM_OLD_RESTORE = 32755 -OCR_NORMAL = 32512 -OCR_IBEAM = 32513 -OCR_WAIT = 32514 -OCR_CROSS = 32515 -OCR_UP = 32516 -OCR_SIZE = 32640 -OCR_ICON = 32641 -OCR_SIZENWSE = 32642 -OCR_SIZENESW = 32643 -OCR_SIZEWE = 32644 -OCR_SIZENS = 32645 -OCR_SIZEALL = 32646 -OCR_ICOCUR = 32647 -OCR_NO = 32648 -OCR_HAND = 32649 -OCR_APPSTARTING = 32650 -# winuser.h line 7455 -OIC_SAMPLE = 32512 -OIC_HAND = 32513 -OIC_QUES = 32514 -OIC_BANG = 32515 -OIC_NOTE = 32516 -OIC_WINLOGO = 32517 -OIC_WARNING = OIC_BANG -OIC_ERROR = OIC_HAND -OIC_INFORMATION = OIC_NOTE -ORD_LANGDRIVER = 1 -IDI_APPLICATION = 32512 -IDI_HAND = 32513 -IDI_QUESTION = 32514 -IDI_EXCLAMATION = 32515 -IDI_ASTERISK = 32516 -IDI_WINLOGO = 32517 -IDI_WARNING = IDI_EXCLAMATION -IDI_ERROR = IDI_HAND -IDI_INFORMATION = IDI_ASTERISK -IDOK = 1 -IDCANCEL = 2 -IDABORT = 3 -IDRETRY = 4 -IDIGNORE = 5 -IDYES = 6 -IDNO = 7 -IDCLOSE = 8 -IDHELP = 9 -ES_LEFT = 0 -ES_CENTER = 1 -ES_RIGHT = 2 -ES_MULTILINE = 4 -ES_UPPERCASE = 8 -ES_LOWERCASE = 16 -ES_PASSWORD = 32 -ES_AUTOVSCROLL = 64 -ES_AUTOHSCROLL = 128 -ES_NOHIDESEL = 256 -ES_OEMCONVERT = 1024 -ES_READONLY = 2048 -ES_WANTRETURN = 4096 -ES_NUMBER = 8192 -EN_SETFOCUS = 256 -EN_KILLFOCUS = 512 -EN_CHANGE = 768 -EN_UPDATE = 1024 -EN_ERRSPACE = 1280 -EN_MAXTEXT = 1281 -EN_HSCROLL = 1537 -EN_VSCROLL = 1538 -EC_LEFTMARGIN = 1 -EC_RIGHTMARGIN = 2 -EC_USEFONTINFO = 65535 -EMSIS_COMPOSITIONSTRING = 1 -EIMES_GETCOMPSTRATONCE = 1 -EIMES_CANCELCOMPSTRINFOCUS = 2 -EIMES_COMPLETECOMPSTRKILLFOCUS = 4 -EM_GETSEL = 176 -EM_SETSEL = 177 -EM_GETRECT = 178 -EM_SETRECT = 179 -EM_SETRECTNP = 180 -EM_SCROLL = 181 -EM_LINESCROLL = 182 -EM_SCROLLCARET = 183 -EM_GETMODIFY = 184 -EM_SETMODIFY = 185 -EM_GETLINECOUNT = 186 -EM_LINEINDEX = 187 -EM_SETHANDLE = 188 -EM_GETHANDLE = 189 -EM_GETTHUMB = 190 -EM_LINELENGTH = 193 -EM_REPLACESEL = 194 -EM_GETLINE = 196 -EM_LIMITTEXT = 197 -EM_CANUNDO = 198 -EM_UNDO = 199 -EM_FMTLINES = 200 -EM_LINEFROMCHAR = 201 -EM_SETTABSTOPS = 203 -EM_SETPASSWORDCHAR = 204 -EM_EMPTYUNDOBUFFER = 205 -EM_GETFIRSTVISIBLELINE = 206 -EM_SETREADONLY = 207 -EM_SETWORDBREAKPROC = 208 -EM_GETWORDBREAKPROC = 209 -EM_GETPASSWORDCHAR = 210 -EM_SETMARGINS = 211 -EM_GETMARGINS = 212 -EM_SETLIMITTEXT = EM_LIMITTEXT -EM_GETLIMITTEXT = 213 -EM_POSFROMCHAR = 214 -EM_CHARFROMPOS = 215 -EM_SETIMESTATUS = 216 -EM_GETIMESTATUS = 217 -WB_LEFT = 0 -WB_RIGHT = 1 -WB_ISDELIMITER = 2 -BS_PUSHBUTTON = 0 -BS_DEFPUSHBUTTON = 1 -BS_CHECKBOX = 2 -BS_AUTOCHECKBOX = 3 -BS_RADIOBUTTON = 4 -BS_3STATE = 5 -BS_AUTO3STATE = 6 -BS_GROUPBOX = 7 -BS_USERBUTTON = 8 -BS_AUTORADIOBUTTON = 9 -BS_OWNERDRAW = 11 -BS_LEFTTEXT = 32 -BS_TEXT = 0 -BS_ICON = 64 -BS_BITMAP = 128 -BS_LEFT = 256 -BS_RIGHT = 512 -BS_CENTER = 768 -BS_TOP = 1024 -BS_BOTTOM = 2048 -BS_VCENTER = 3072 -BS_PUSHLIKE = 4096 -BS_MULTILINE = 8192 -BS_NOTIFY = 16384 -BS_FLAT = 32768 -BS_RIGHTBUTTON = BS_LEFTTEXT -BN_CLICKED = 0 -BN_PAINT = 1 -BN_HILITE = 2 -BN_UNHILITE = 3 -BN_DISABLE = 4 -BN_DOUBLECLICKED = 5 -BN_PUSHED = BN_HILITE -BN_UNPUSHED = BN_UNHILITE -BN_DBLCLK = BN_DOUBLECLICKED -BN_SETFOCUS = 6 -BN_KILLFOCUS = 7 -BM_GETCHECK = 240 -BM_SETCHECK = 241 -BM_GETSTATE = 242 -BM_SETSTATE = 243 -BM_SETSTYLE = 244 -BM_CLICK = 245 -BM_GETIMAGE = 246 -BM_SETIMAGE = 247 -BST_UNCHECKED = 0 -BST_CHECKED = 1 -BST_INDETERMINATE = 2 -BST_PUSHED = 4 -BST_FOCUS = 8 -SS_LEFT = 0 -SS_CENTER = 1 -SS_RIGHT = 2 -SS_ICON = 3 -SS_BLACKRECT = 4 -SS_GRAYRECT = 5 -SS_WHITERECT = 6 -SS_BLACKFRAME = 7 -SS_GRAYFRAME = 8 -SS_WHITEFRAME = 9 -SS_USERITEM = 10 -SS_SIMPLE = 11 -SS_LEFTNOWORDWRAP = 12 -SS_BITMAP = 14 -SS_OWNERDRAW = 13 -SS_ENHMETAFILE = 15 -SS_ETCHEDHORZ = 16 -SS_ETCHEDVERT = 17 -SS_ETCHEDFRAME = 18 -SS_TYPEMASK = 31 -SS_NOPREFIX = 128 -SS_NOTIFY = 256 -SS_CENTERIMAGE = 512 -SS_RIGHTJUST = 1024 -SS_REALSIZEIMAGE = 2048 -SS_SUNKEN = 4096 -SS_ENDELLIPSIS = 16384 -SS_PATHELLIPSIS = 32768 -SS_WORDELLIPSIS = 49152 -SS_ELLIPSISMASK = 49152 -STM_SETICON = 368 -STM_GETICON = 369 -STM_SETIMAGE = 370 -STM_GETIMAGE = 371 -STN_CLICKED = 0 -STN_DBLCLK = 1 -STN_ENABLE = 2 -STN_DISABLE = 3 -STM_MSGMAX = 372 -DWL_MSGRESULT = 0 -DWL_DLGPROC = 4 -DWL_USER = 8 -DDL_READWRITE = 0 -DDL_READONLY = 1 -DDL_HIDDEN = 2 -DDL_SYSTEM = 4 -DDL_DIRECTORY = 16 -DDL_ARCHIVE = 32 -DDL_POSTMSGS = 8192 -DDL_DRIVES = 16384 -DDL_EXCLUSIVE = 32768 - -#from winuser.h line 153 -RT_CURSOR = 1 -RT_BITMAP = 2 -RT_ICON = 3 -RT_MENU = 4 -RT_DIALOG = 5 -RT_STRING = 6 -RT_FONTDIR = 7 -RT_FONT = 8 -RT_ACCELERATOR = 9 -RT_RCDATA = 10 -RT_MESSAGETABLE = 11 -DIFFERENCE = 11 -RT_GROUP_CURSOR = (RT_CURSOR + DIFFERENCE) -RT_GROUP_ICON = (RT_ICON + DIFFERENCE) -RT_VERSION = 16 -RT_DLGINCLUDE = 17 -RT_PLUGPLAY = 19 -RT_VXD = 20 -RT_ANICURSOR = 21 -RT_ANIICON = 22 -RT_HTML = 23 -# from winuser.h line 218 -SB_HORZ = 0 -SB_VERT = 1 -SB_CTL = 2 -SB_BOTH = 3 -SB_LINEUP = 0 -SB_LINELEFT = 0 -SB_LINEDOWN = 1 -SB_LINERIGHT = 1 -SB_PAGEUP = 2 -SB_PAGELEFT = 2 -SB_PAGEDOWN = 3 -SB_PAGERIGHT = 3 -SB_THUMBPOSITION = 4 -SB_THUMBTRACK = 5 -SB_TOP = 6 -SB_LEFT = 6 -SB_BOTTOM = 7 -SB_RIGHT = 7 -SB_ENDSCROLL = 8 -SW_HIDE = 0 -SW_SHOWNORMAL = 1 -SW_NORMAL = 1 -SW_SHOWMINIMIZED = 2 -SW_SHOWMAXIMIZED = 3 -SW_MAXIMIZE = 3 -SW_SHOWNOACTIVATE = 4 -SW_SHOW = 5 -SW_MINIMIZE = 6 -SW_SHOWMINNOACTIVE = 7 -SW_SHOWNA = 8 -SW_RESTORE = 9 -SW_SHOWDEFAULT = 10 -SW_FORCEMINIMIZE = 11 -SW_MAX = 11 -HIDE_WINDOW = 0 -SHOW_OPENWINDOW = 1 -SHOW_ICONWINDOW = 2 -SHOW_FULLSCREEN = 3 -SHOW_OPENNOACTIVATE = 4 -SW_PARENTCLOSING = 1 -SW_OTHERZOOM = 2 -SW_PARENTOPENING = 3 -SW_OTHERUNZOOM = 4 -AW_HOR_POSITIVE = 1 -AW_HOR_NEGATIVE = 2 -AW_VER_POSITIVE = 4 -AW_VER_NEGATIVE = 8 -AW_CENTER = 16 -AW_HIDE = 65536 -AW_ACTIVATE = 131072 -AW_SLIDE = 262144 -AW_BLEND = 524288 -KF_EXTENDED = 256 -KF_DLGMODE = 2048 -KF_MENUMODE = 4096 -KF_ALTDOWN = 8192 -KF_REPEAT = 16384 -KF_UP = 32768 -VK_LBUTTON = 1 -VK_RBUTTON = 2 -VK_CANCEL = 3 -VK_MBUTTON = 4 -VK_BACK = 8 -VK_TAB = 9 -VK_CLEAR = 12 -VK_RETURN = 13 -VK_SHIFT = 16 -VK_CONTROL = 17 -VK_MENU = 18 -VK_PAUSE = 19 -VK_CAPITAL = 20 -VK_KANA = 21 -VK_HANGEUL = 21 # old name - should be here for compatibility -VK_HANGUL = 21 -VK_JUNJA = 23 -VK_FINAL = 24 -VK_HANJA = 25 -VK_KANJI = 25 -VK_ESCAPE = 27 -VK_CONVERT = 28 -VK_NONCONVERT = 29 -VK_ACCEPT = 30 -VK_MODECHANGE = 31 -VK_SPACE = 32 -VK_PRIOR = 33 -VK_NEXT = 34 -VK_END = 35 -VK_HOME = 36 -VK_LEFT = 37 -VK_UP = 38 -VK_RIGHT = 39 -VK_DOWN = 40 -VK_SELECT = 41 -VK_PRINT = 42 -VK_EXECUTE = 43 -VK_SNAPSHOT = 44 -VK_INSERT = 45 -VK_DELETE = 46 -VK_HELP = 47 -VK_LWIN = 91 -VK_RWIN = 92 -VK_APPS = 93 -VK_NUMPAD0 = 96 -VK_NUMPAD1 = 97 -VK_NUMPAD2 = 98 -VK_NUMPAD3 = 99 -VK_NUMPAD4 = 100 -VK_NUMPAD5 = 101 -VK_NUMPAD6 = 102 -VK_NUMPAD7 = 103 -VK_NUMPAD8 = 104 -VK_NUMPAD9 = 105 -VK_MULTIPLY = 106 -VK_ADD = 107 -VK_SEPARATOR = 108 -VK_SUBTRACT = 109 -VK_DECIMAL = 110 -VK_DIVIDE = 111 -VK_F1 = 112 -VK_F2 = 113 -VK_F3 = 114 -VK_F4 = 115 -VK_F5 = 116 -VK_F6 = 117 -VK_F7 = 118 -VK_F8 = 119 -VK_F9 = 120 -VK_F10 = 121 -VK_F11 = 122 -VK_F12 = 123 -VK_F13 = 124 -VK_F14 = 125 -VK_F15 = 126 -VK_F16 = 127 -VK_F17 = 128 -VK_F18 = 129 -VK_F19 = 130 -VK_F20 = 131 -VK_F21 = 132 -VK_F22 = 133 -VK_F23 = 134 -VK_F24 = 135 -VK_NUMLOCK = 144 -VK_SCROLL = 145 -VK_LSHIFT = 160 -VK_RSHIFT = 161 -VK_LCONTROL = 162 -VK_RCONTROL = 163 -VK_LMENU = 164 -VK_RMENU = 165 -VK_PROCESSKEY = 229 -VK_ATTN = 246 -VK_CRSEL = 247 -VK_EXSEL = 248 -VK_EREOF = 249 -VK_PLAY = 250 -VK_ZOOM = 251 -VK_NONAME = 252 -VK_PA1 = 253 -VK_OEM_CLEAR = 254 -# multi-media related "keys" -MOUSEEVENTF_XDOWN = 0x0080 -MOUSEEVENTF_XUP = 0x0100 -MOUSEEVENTF_WHEEL = 0x0800 -VK_XBUTTON1 = 0x05 -VK_XBUTTON2 = 0x06 -VK_VOLUME_MUTE = 0xAD -VK_VOLUME_DOWN = 0xAE -VK_VOLUME_UP = 0xAF -VK_MEDIA_NEXT_TRACK = 0xB0 -VK_MEDIA_PREV_TRACK = 0xB1 -VK_MEDIA_PLAY_PAUSE = 0xB3 -VK_BROWSER_BACK = 0xA6 -VK_BROWSER_FORWARD = 0xA7 -WH_MIN = (-1) -WH_MSGFILTER = (-1) -WH_JOURNALRECORD = 0 -WH_JOURNALPLAYBACK = 1 -WH_KEYBOARD = 2 -WH_GETMESSAGE = 3 -WH_CALLWNDPROC = 4 -WH_CBT = 5 -WH_SYSMSGFILTER = 6 -WH_MOUSE = 7 -WH_HARDWARE = 8 -WH_DEBUG = 9 -WH_SHELL = 10 -WH_FOREGROUNDIDLE = 11 -WH_CALLWNDPROCRET = 12 -WH_KEYBOARD_LL = 13 -WH_MOUSE_LL = 14 -WH_MAX = 14 -WH_MINHOOK = WH_MIN -WH_MAXHOOK = WH_MAX -HC_ACTION = 0 -HC_GETNEXT = 1 -HC_SKIP = 2 -HC_NOREMOVE = 3 -HC_NOREM = HC_NOREMOVE -HC_SYSMODALON = 4 -HC_SYSMODALOFF = 5 -HCBT_MOVESIZE = 0 -HCBT_MINMAX = 1 -HCBT_QS = 2 -HCBT_CREATEWND = 3 -HCBT_DESTROYWND = 4 -HCBT_ACTIVATE = 5 -HCBT_CLICKSKIPPED = 6 -HCBT_KEYSKIPPED = 7 -HCBT_SYSCOMMAND = 8 -HCBT_SETFOCUS = 9 -MSGF_DIALOGBOX = 0 -MSGF_MESSAGEBOX = 1 -MSGF_MENU = 2 -#MSGF_MOVE = 3 -#MSGF_SIZE = 4 -MSGF_SCROLLBAR = 5 -MSGF_NEXTWINDOW = 6 -#MSGF_MAINLOOP = 8 -MSGF_MAX = 8 -MSGF_USER = 4096 -HSHELL_WINDOWCREATED = 1 -HSHELL_WINDOWDESTROYED = 2 -HSHELL_ACTIVATESHELLWINDOW = 3 -HSHELL_WINDOWACTIVATED = 4 -HSHELL_GETMINRECT = 5 -HSHELL_REDRAW = 6 -HSHELL_TASKMAN = 7 -HSHELL_LANGUAGE = 8 -HSHELL_ACCESSIBILITYSTATE = 11 -ACCESS_STICKYKEYS = 1 -ACCESS_FILTERKEYS = 2 -ACCESS_MOUSEKEYS = 3 -# winuser.h line 624 -LLKHF_EXTENDED = 1 -LLKHF_INJECTED = 16 -LLKHF_ALTDOWN = 32 -LLKHF_UP = 128 -LLKHF_LOWER_IL_INJECTED = 2 -LLMHF_INJECTED = 1 -LLMHF_LOWER_IL_INJECTED = 2 -# line 692 -HKL_PREV = 0 -HKL_NEXT = 1 -KLF_ACTIVATE = 1 -KLF_SUBSTITUTE_OK = 2 -KLF_UNLOADPREVIOUS = 4 -KLF_REORDER = 8 -KLF_REPLACELANG = 16 -KLF_NOTELLSHELL = 128 -KLF_SETFORPROCESS = 256 -KL_NAMELENGTH = 9 -DESKTOP_READOBJECTS = 1 -DESKTOP_CREATEWINDOW = 2 -DESKTOP_CREATEMENU = 4 -DESKTOP_HOOKCONTROL = 8 -DESKTOP_JOURNALRECORD = 16 -DESKTOP_JOURNALPLAYBACK = 32 -DESKTOP_ENUMERATE = 64 -DESKTOP_WRITEOBJECTS = 128 -DESKTOP_SWITCHDESKTOP = 256 -DF_ALLOWOTHERACCOUNTHOOK = 1 -WINSTA_ENUMDESKTOPS = 1 -WINSTA_READATTRIBUTES = 2 -WINSTA_ACCESSCLIPBOARD = 4 -WINSTA_CREATEDESKTOP = 8 -WINSTA_WRITEATTRIBUTES = 16 -WINSTA_ACCESSGLOBALATOMS = 32 -WINSTA_EXITWINDOWS = 64 -WINSTA_ENUMERATE = 256 -WINSTA_READSCREEN = 512 -WSF_VISIBLE = 1 -UOI_FLAGS = 1 -UOI_NAME = 2 -UOI_TYPE = 3 -UOI_USER_SID = 4 -GWL_WNDPROC = (-4) -GWL_HINSTANCE = (-6) -GWL_HWNDPARENT = (-8) -GWL_STYLE = (-16) -GWL_EXSTYLE = (-20) -GWL_USERDATA = (-21) -GWL_ID = (-12) -GCL_MENUNAME = (-8) -GCL_HBRBACKGROUND = (-10) -GCL_HCURSOR = (-12) -GCL_HICON = (-14) -GCL_HMODULE = (-16) -GCL_CBWNDEXTRA = (-18) -GCL_CBCLSEXTRA = (-20) -GCL_WNDPROC = (-24) -GCL_STYLE = (-26) -GCW_ATOM = (-32) -GCL_HICONSM = (-34) -# line 1291 -WM_NULL = 0 -WM_CREATE = 1 -WM_DESTROY = 2 -WM_MOVE = 3 -WM_SIZE = 5 -WM_ACTIVATE = 6 -WA_INACTIVE = 0 -WA_ACTIVE = 1 -WA_CLICKACTIVE = 2 -WM_SETFOCUS = 7 -WM_KILLFOCUS = 8 -WM_ENABLE = 10 -WM_SETREDRAW = 11 -WM_SETTEXT = 12 -WM_GETTEXT = 13 -WM_GETTEXTLENGTH = 14 -WM_PAINT = 15 -WM_CLOSE = 16 -WM_QUERYENDSESSION = 17 -WM_QUIT = 18 -WM_QUERYOPEN = 19 -WM_ERASEBKGND = 20 -WM_SYSCOLORCHANGE = 21 -WM_ENDSESSION = 22 -WM_SHOWWINDOW = 24 -WM_WININICHANGE = 26 -WM_SETTINGCHANGE = WM_WININICHANGE -WM_DEVMODECHANGE = 27 -WM_ACTIVATEAPP = 28 -WM_FONTCHANGE = 29 -WM_TIMECHANGE = 30 -WM_CANCELMODE = 31 -WM_SETCURSOR = 32 -WM_MOUSEACTIVATE = 33 -WM_CHILDACTIVATE = 34 -WM_QUEUESYNC = 35 -WM_GETMINMAXINFO = 36 -WM_PAINTICON = 38 -WM_ICONERASEBKGND = 39 -WM_NEXTDLGCTL = 40 -WM_SPOOLERSTATUS = 42 -WM_DRAWITEM = 43 -WM_MEASUREITEM = 44 -WM_DELETEITEM = 45 -WM_VKEYTOITEM = 46 -WM_CHARTOITEM = 47 -WM_SETFONT = 48 -WM_GETFONT = 49 -WM_SETHOTKEY = 50 -WM_GETHOTKEY = 51 -WM_QUERYDRAGICON = 55 -WM_COMPAREITEM = 57 -WM_GETOBJECT = 61 -WM_COMPACTING = 65 -WM_COMMNOTIFY = 68 -WM_WINDOWPOSCHANGING = 70 -WM_WINDOWPOSCHANGED = 71 -WM_POWER = 72 -PWR_OK = 1 -PWR_FAIL = (-1) -PWR_SUSPENDREQUEST = 1 -PWR_SUSPENDRESUME = 2 -PWR_CRITICALRESUME = 3 -WM_COPYDATA = 74 -WM_CANCELJOURNAL = 75 -WM_NOTIFY = 78 -WM_INPUTLANGCHANGEREQUEST = 80 -WM_INPUTLANGCHANGE = 81 -WM_TCARD = 82 -WM_HELP = 83 -WM_USERCHANGED = 84 -WM_NOTIFYFORMAT = 85 -NFR_ANSI = 1 -NFR_UNICODE = 2 -NF_QUERY = 3 -NF_REQUERY = 4 -WM_CONTEXTMENU = 123 -WM_STYLECHANGING = 124 -WM_STYLECHANGED = 125 -WM_DISPLAYCHANGE = 126 -WM_GETICON = 127 -WM_SETICON = 128 -WM_NCCREATE = 129 -WM_NCDESTROY = 130 -WM_NCCALCSIZE = 131 -WM_NCHITTEST = 132 -WM_NCPAINT = 133 -WM_NCACTIVATE = 134 -WM_GETDLGCODE = 135 -WM_SYNCPAINT = 136 -WM_NCMOUSEMOVE = 160 -WM_NCLBUTTONDOWN = 161 -WM_NCLBUTTONUP = 162 -WM_NCLBUTTONDBLCLK = 163 -WM_NCRBUTTONDOWN = 164 -WM_NCRBUTTONUP = 165 -WM_NCRBUTTONDBLCLK = 166 -WM_NCMBUTTONDOWN = 167 -WM_NCMBUTTONUP = 168 -WM_NCMBUTTONDBLCLK = 169 -WM_KEYFIRST = 256 -WM_KEYDOWN = 256 -WM_KEYUP = 257 -WM_CHAR = 258 -WM_DEADCHAR = 259 -WM_SYSKEYDOWN = 260 -WM_SYSKEYUP = 261 -WM_SYSCHAR = 262 -WM_SYSDEADCHAR = 263 -WM_KEYLAST = 264 -WM_IME_STARTCOMPOSITION = 269 -WM_IME_ENDCOMPOSITION = 270 -WM_IME_COMPOSITION = 271 -WM_IME_KEYLAST = 271 -WM_INITDIALOG = 272 -WM_COMMAND = 273 -WM_SYSCOMMAND = 274 -WM_TIMER = 275 -WM_HSCROLL = 276 -WM_VSCROLL = 277 -WM_INITMENU = 278 -WM_INITMENUPOPUP = 279 -WM_MENUSELECT = 287 -WM_MENUCHAR = 288 -WM_ENTERIDLE = 289 -WM_MENURBUTTONUP = 290 -WM_MENUDRAG = 291 -WM_MENUGETOBJECT = 292 -WM_UNINITMENUPOPUP = 293 -WM_MENUCOMMAND = 294 -WM_CTLCOLORMSGBOX = 306 -WM_CTLCOLOREDIT = 307 -WM_CTLCOLORLISTBOX = 308 -WM_CTLCOLORBTN = 309 -WM_CTLCOLORDLG = 310 -WM_CTLCOLORSCROLLBAR = 311 -WM_CTLCOLORSTATIC = 312 -WM_MOUSEFIRST = 512 -WM_MOUSEMOVE = 512 -WM_LBUTTONDOWN = 513 -WM_LBUTTONUP = 514 -WM_LBUTTONDBLCLK = 515 -WM_RBUTTONDOWN = 516 -WM_RBUTTONUP = 517 -WM_RBUTTONDBLCLK = 518 -WM_MBUTTONDOWN = 519 -WM_MBUTTONUP = 520 -WM_MBUTTONDBLCLK = 521 -WM_MOUSEWHEEL = 522 -WM_MOUSELAST = 522 -WHEEL_DELTA = 120 # Value for rolling one detent -WHEEL_PAGESCROLL = -1 # Scroll one page -WM_PARENTNOTIFY = 528 -MENULOOP_WINDOW = 0 -MENULOOP_POPUP = 1 -WM_ENTERMENULOOP = 529 -WM_EXITMENULOOP = 530 -WM_NEXTMENU = 531 -WM_SIZING = 532 -WM_CAPTURECHANGED = 533 -WM_MOVING = 534 -WM_POWERBROADCAST = 536 -PBT_APMQUERYSUSPEND = 0 -PBT_APMQUERYSTANDBY = 1 -PBT_APMQUERYSUSPENDFAILED = 2 -PBT_APMQUERYSTANDBYFAILED = 3 -PBT_APMSUSPEND = 4 -PBT_APMSTANDBY = 5 -PBT_APMRESUMECRITICAL = 6 -PBT_APMRESUMESUSPEND = 7 -PBT_APMRESUMESTANDBY = 8 -PBTF_APMRESUMEFROMFAILURE = 1 -PBT_APMBATTERYLOW = 9 -PBT_APMPOWERSTATUSCHANGE = 10 -PBT_APMOEMEVENT = 11 -PBT_APMRESUMEAUTOMATIC = 18 -WM_DEVICECHANGE = 537 -WM_MDICREATE = 544 -WM_MDIDESTROY = 545 -WM_MDIACTIVATE = 546 -WM_MDIRESTORE = 547 -WM_MDINEXT = 548 -WM_MDIMAXIMIZE = 549 -WM_MDITILE = 550 -WM_MDICASCADE = 551 -WM_MDIICONARRANGE = 552 -WM_MDIGETACTIVE = 553 -WM_MDISETMENU = 560 -WM_ENTERSIZEMOVE = 561 -WM_EXITSIZEMOVE = 562 -WM_DROPFILES = 563 -WM_MDIREFRESHMENU = 564 -WM_IME_SETCONTEXT = 641 -WM_IME_NOTIFY = 642 -WM_IME_CONTROL = 643 -WM_IME_COMPOSITIONFULL = 644 -WM_IME_SELECT = 645 -WM_IME_CHAR = 646 -WM_IME_REQUEST = 648 -WM_IME_KEYDOWN = 656 -WM_IME_KEYUP = 657 -WM_MOUSEHOVER = 673 -WM_MOUSELEAVE = 675 -WM_CUT = 768 -WM_COPY = 769 -WM_PASTE = 770 -WM_CLEAR = 771 -WM_UNDO = 772 -WM_RENDERFORMAT = 773 -WM_RENDERALLFORMATS = 774 -WM_DESTROYCLIPBOARD = 775 -WM_DRAWCLIPBOARD = 776 -WM_PAINTCLIPBOARD = 777 -WM_VSCROLLCLIPBOARD = 778 -WM_SIZECLIPBOARD = 779 -WM_ASKCBFORMATNAME = 780 -WM_CHANGECBCHAIN = 781 -WM_HSCROLLCLIPBOARD = 782 -WM_QUERYNEWPALETTE = 783 -WM_PALETTEISCHANGING = 784 -WM_PALETTECHANGED = 785 -WM_HOTKEY = 786 -WM_PRINT = 791 -WM_PRINTCLIENT = 792 -WM_HANDHELDFIRST = 856 -WM_HANDHELDLAST = 863 -WM_AFXFIRST = 864 -WM_AFXLAST = 895 -WM_PENWINFIRST = 896 -WM_PENWINLAST = 911 -WM_APP = 32768 -WMSZ_LEFT = 1 -WMSZ_RIGHT = 2 -WMSZ_TOP = 3 -WMSZ_TOPLEFT = 4 -WMSZ_TOPRIGHT = 5 -WMSZ_BOTTOM = 6 -WMSZ_BOTTOMLEFT = 7 -WMSZ_BOTTOMRIGHT = 8 -#ST_BEGINSWP = 0 -#ST_ENDSWP = 1 -HTERROR = (-2) -HTTRANSPARENT = (-1) -HTNOWHERE = 0 -HTCLIENT = 1 -HTCAPTION = 2 -HTSYSMENU = 3 -HTGROWBOX = 4 -HTSIZE = HTGROWBOX -HTMENU = 5 -HTHSCROLL = 6 -HTVSCROLL = 7 -HTMINBUTTON = 8 -HTMAXBUTTON = 9 -HTLEFT = 10 -HTRIGHT = 11 -HTTOP = 12 -HTTOPLEFT = 13 -HTTOPRIGHT = 14 -HTBOTTOM = 15 -HTBOTTOMLEFT = 16 -HTBOTTOMRIGHT = 17 -HTBORDER = 18 -HTREDUCE = HTMINBUTTON -HTZOOM = HTMAXBUTTON -HTSIZEFIRST = HTLEFT -HTSIZELAST = HTBOTTOMRIGHT -HTOBJECT = 19 -HTCLOSE = 20 -HTHELP = 21 -SMTO_NORMAL = 0 -SMTO_BLOCK = 1 -SMTO_ABORTIFHUNG = 2 -SMTO_NOTIMEOUTIFNOTHUNG = 8 -MA_ACTIVATE = 1 -MA_ACTIVATEANDEAT = 2 -MA_NOACTIVATE = 3 -MA_NOACTIVATEANDEAT = 4 -ICON_SMALL = 0 -ICON_BIG = 1 -SIZE_RESTORED = 0 -SIZE_MINIMIZED = 1 -SIZE_MAXIMIZED = 2 -SIZE_MAXSHOW = 3 -SIZE_MAXHIDE = 4 -SIZENORMAL = SIZE_RESTORED -SIZEICONIC = SIZE_MINIMIZED -SIZEFULLSCREEN = SIZE_MAXIMIZED -SIZEZOOMSHOW = SIZE_MAXSHOW -SIZEZOOMHIDE = SIZE_MAXHIDE -WVR_ALIGNTOP = 16 -WVR_ALIGNLEFT = 32 -WVR_ALIGNBOTTOM = 64 -WVR_ALIGNRIGHT = 128 -WVR_HREDRAW = 256 -WVR_VREDRAW = 512 -WVR_REDRAW = (WVR_HREDRAW | WVR_VREDRAW) -WVR_VALIDRECTS = 1024 -MK_LBUTTON = 1 -MK_RBUTTON = 2 -MK_SHIFT = 4 -MK_CONTROL = 8 -MK_MBUTTON = 16 -TME_HOVER = 1 -TME_LEAVE = 2 -TME_QUERY = 1073741824 -TME_CANCEL = -2147483648 -HOVER_DEFAULT = -1 -WS_OVERLAPPED = 0 -WS_POPUP = -2147483648 -WS_CHILD = 1073741824 -WS_MINIMIZE = 536870912 -WS_VISIBLE = 268435456 -WS_DISABLED = 134217728 -WS_CLIPSIBLINGS = 67108864 -WS_CLIPCHILDREN = 33554432 -WS_MAXIMIZE = 16777216 -WS_CAPTION = 12582912 -WS_BORDER = 8388608 -WS_DLGFRAME = 4194304 -WS_VSCROLL = 2097152 -WS_HSCROLL = 1048576 -WS_SYSMENU = 524288 -WS_THICKFRAME = 262144 -WS_GROUP = 131072 -WS_TABSTOP = 65536 -WS_MINIMIZEBOX = 131072 -WS_MAXIMIZEBOX = 65536 -WS_TILED = WS_OVERLAPPED -WS_ICONIC = WS_MINIMIZE -WS_SIZEBOX = WS_THICKFRAME -WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED | \ - WS_CAPTION | \ - WS_SYSMENU | \ - WS_THICKFRAME | \ - WS_MINIMIZEBOX | \ - WS_MAXIMIZEBOX) -WS_POPUPWINDOW = (WS_POPUP | \ - WS_BORDER | \ - WS_SYSMENU) -WS_CHILDWINDOW = (WS_CHILD) -WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW -WS_EX_DLGMODALFRAME = 1 -WS_EX_NOPARENTNOTIFY = 4 -WS_EX_TOPMOST = 8 -WS_EX_ACCEPTFILES = 16 -WS_EX_TRANSPARENT = 32 -WS_EX_MDICHILD = 64 -WS_EX_TOOLWINDOW = 128 -WS_EX_WINDOWEDGE = 256 -WS_EX_CLIENTEDGE = 512 -WS_EX_CONTEXTHELP = 1024 -WS_EX_RIGHT = 4096 -WS_EX_LEFT = 0 -WS_EX_RTLREADING = 8192 -WS_EX_LTRREADING = 0 -WS_EX_LEFTSCROLLBAR = 16384 -WS_EX_RIGHTSCROLLBAR = 0 -WS_EX_CONTROLPARENT = 65536 -WS_EX_STATICEDGE = 131072 -WS_EX_APPWINDOW = 262144 -WS_EX_OVERLAPPEDWINDOW = (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE) -WS_EX_PALETTEWINDOW = (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST) -WS_EX_LAYERED = 0x00080000 -WS_EX_NOINHERITLAYOUT = 0x00100000 -WS_EX_LAYOUTRTL = 0x00400000 -WS_EX_COMPOSITED = 0x02000000 -WS_EX_NOACTIVATE = 0x08000000 - -CS_VREDRAW = 1 -CS_HREDRAW = 2 -#CS_KEYCVTWINDOW = 0x0004 -CS_DBLCLKS = 8 -CS_OWNDC = 32 -CS_CLASSDC = 64 -CS_PARENTDC = 128 -#CS_NOKEYCVT = 0x0100 -CS_NOCLOSE = 512 -CS_SAVEBITS = 2048 -CS_BYTEALIGNCLIENT = 4096 -CS_BYTEALIGNWINDOW = 8192 -CS_GLOBALCLASS = 16384 -CS_IME = 65536 -PRF_CHECKVISIBLE = 1 -PRF_NONCLIENT = 2 -PRF_CLIENT = 4 -PRF_ERASEBKGND = 8 -PRF_CHILDREN = 16 -PRF_OWNED = 32 -BDR_RAISEDOUTER = 1 -BDR_SUNKENOUTER = 2 -BDR_RAISEDINNER = 4 -BDR_SUNKENINNER = 8 -BDR_OUTER = 3 -BDR_INNER = 12 -#BDR_RAISED = 0x0005 -#BDR_SUNKEN = 0x000a -EDGE_RAISED = (BDR_RAISEDOUTER | BDR_RAISEDINNER) -EDGE_SUNKEN = (BDR_SUNKENOUTER | BDR_SUNKENINNER) -EDGE_ETCHED = (BDR_SUNKENOUTER | BDR_RAISEDINNER) -EDGE_BUMP = (BDR_RAISEDOUTER | BDR_SUNKENINNER) - -# winuser.h line 2879 -ISMEX_NOSEND = 0 -ISMEX_SEND = 1 -ISMEX_NOTIFY = 2 -ISMEX_CALLBACK = 4 -ISMEX_REPLIED = 8 -CW_USEDEFAULT = -2147483648 -FLASHW_STOP = 0 -FLASHW_CAPTION = 1 -FLASHW_TRAY = 2 -FLASHW_ALL = (FLASHW_CAPTION | FLASHW_TRAY) -FLASHW_TIMER = 4 -FLASHW_TIMERNOFG = 12 - -# winuser.h line 7963 -DS_ABSALIGN = 1 -DS_SYSMODAL = 2 -DS_LOCALEDIT = 32 -DS_SETFONT = 64 -DS_MODALFRAME = 128 -DS_NOIDLEMSG = 256 -DS_SETFOREGROUND = 512 -DS_3DLOOK = 4 -DS_FIXEDSYS = 8 -DS_NOFAILCREATE = 16 -DS_CONTROL = 1024 -DS_CENTER = 2048 -DS_CENTERMOUSE = 4096 -DS_CONTEXTHELP = 8192 -DM_GETDEFID = (WM_USER+0) -DM_SETDEFID = (WM_USER+1) -DM_REPOSITION = (WM_USER+2) -#PSM_PAGEINFO = (WM_USER+100) -#PSM_SHEETINFO = (WM_USER+101) -#PSI_SETACTIVE = 0x0001 -#PSI_KILLACTIVE = 0x0002 -#PSI_APPLY = 0x0003 -#PSI_RESET = 0x0004 -#PSI_HASHELP = 0x0005 -#PSI_HELP = 0x0006 -#PSI_CHANGED = 0x0001 -#PSI_GUISTART = 0x0002 -#PSI_REBOOT = 0x0003 -#PSI_GETSIBLINGS = 0x0004 -DC_HASDEFID = 21323 -DLGC_WANTARROWS = 1 -DLGC_WANTTAB = 2 -DLGC_WANTALLKEYS = 4 -DLGC_WANTMESSAGE = 4 -DLGC_HASSETSEL = 8 -DLGC_DEFPUSHBUTTON = 16 -DLGC_UNDEFPUSHBUTTON = 32 -DLGC_RADIOBUTTON = 64 -DLGC_WANTCHARS = 128 -DLGC_STATIC = 256 -DLGC_BUTTON = 8192 -LB_CTLCODE = 0 -LB_OKAY = 0 -LB_ERR = (-1) -LB_ERRSPACE = (-2) -LBN_ERRSPACE = (-2) -LBN_SELCHANGE = 1 -LBN_DBLCLK = 2 -LBN_SELCANCEL = 3 -LBN_SETFOCUS = 4 -LBN_KILLFOCUS = 5 -LB_ADDSTRING = 384 -LB_INSERTSTRING = 385 -LB_DELETESTRING = 386 -LB_SELITEMRANGEEX = 387 -LB_RESETCONTENT = 388 -LB_SETSEL = 389 -LB_SETCURSEL = 390 -LB_GETSEL = 391 -LB_GETCURSEL = 392 -LB_GETTEXT = 393 -LB_GETTEXTLEN = 394 -LB_GETCOUNT = 395 -LB_SELECTSTRING = 396 -LB_DIR = 397 -LB_GETTOPINDEX = 398 -LB_FINDSTRING = 399 -LB_GETSELCOUNT = 400 -LB_GETSELITEMS = 401 -LB_SETTABSTOPS = 402 -LB_GETHORIZONTALEXTENT = 403 -LB_SETHORIZONTALEXTENT = 404 -LB_SETCOLUMNWIDTH = 405 -LB_ADDFILE = 406 -LB_SETTOPINDEX = 407 -LB_GETITEMRECT = 408 -LB_GETITEMDATA = 409 -LB_SETITEMDATA = 410 -LB_SELITEMRANGE = 411 -LB_SETANCHORINDEX = 412 -LB_GETANCHORINDEX = 413 -LB_SETCARETINDEX = 414 -LB_GETCARETINDEX = 415 -LB_SETITEMHEIGHT = 416 -LB_GETITEMHEIGHT = 417 -LB_FINDSTRINGEXACT = 418 -LB_SETLOCALE = 421 -LB_GETLOCALE = 422 -LB_SETCOUNT = 423 -LB_INITSTORAGE = 424 -LB_ITEMFROMPOINT = 425 -LB_MSGMAX = 432 -LBS_NOTIFY = 1 -LBS_SORT = 2 -LBS_NOREDRAW = 4 -LBS_MULTIPLESEL = 8 -LBS_OWNERDRAWFIXED = 16 -LBS_OWNERDRAWVARIABLE = 32 -LBS_HASSTRINGS = 64 -LBS_USETABSTOPS = 128 -LBS_NOINTEGRALHEIGHT = 256 -LBS_MULTICOLUMN = 512 -LBS_WANTKEYBOARDINPUT = 1024 -LBS_EXTENDEDSEL = 2048 -LBS_DISABLENOSCROLL = 4096 -LBS_NODATA = 8192 -LBS_NOSEL = 16384 -LBS_STANDARD = (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) -CB_OKAY = 0 -CB_ERR = (-1) -CB_ERRSPACE = (-2) -CBN_ERRSPACE = (-1) -CBN_SELCHANGE = 1 -CBN_DBLCLK = 2 -CBN_SETFOCUS = 3 -CBN_KILLFOCUS = 4 -CBN_EDITCHANGE = 5 -CBN_EDITUPDATE = 6 -CBN_DROPDOWN = 7 -CBN_CLOSEUP = 8 -CBN_SELENDOK = 9 -CBN_SELENDCANCEL = 10 -CBS_SIMPLE = 1 -CBS_DROPDOWN = 2 -CBS_DROPDOWNLIST = 3 -CBS_OWNERDRAWFIXED = 16 -CBS_OWNERDRAWVARIABLE = 32 -CBS_AUTOHSCROLL = 64 -CBS_OEMCONVERT = 128 -CBS_SORT = 256 -CBS_HASSTRINGS = 512 -CBS_NOINTEGRALHEIGHT = 1024 -CBS_DISABLENOSCROLL = 2048 -CBS_UPPERCASE = 8192 -CBS_LOWERCASE = 16384 -CB_GETEDITSEL = 320 -CB_LIMITTEXT = 321 -CB_SETEDITSEL = 322 -CB_ADDSTRING = 323 -CB_DELETESTRING = 324 -CB_DIR = 325 -CB_GETCOUNT = 326 -CB_GETCURSEL = 327 -CB_GETLBTEXT = 328 -CB_GETLBTEXTLEN = 329 -CB_INSERTSTRING = 330 -CB_RESETCONTENT = 331 -CB_FINDSTRING = 332 -CB_SELECTSTRING = 333 -CB_SETCURSEL = 334 -CB_SHOWDROPDOWN = 335 -CB_GETITEMDATA = 336 -CB_SETITEMDATA = 337 -CB_GETDROPPEDCONTROLRECT = 338 -CB_SETITEMHEIGHT = 339 -CB_GETITEMHEIGHT = 340 -CB_SETEXTENDEDUI = 341 -CB_GETEXTENDEDUI = 342 -CB_GETDROPPEDSTATE = 343 -CB_FINDSTRINGEXACT = 344 -CB_SETLOCALE = 345 -CB_GETLOCALE = 346 -CB_GETTOPINDEX = 347 -CB_SETTOPINDEX = 348 -CB_GETHORIZONTALEXTENT = 349 -CB_SETHORIZONTALEXTENT = 350 -CB_GETDROPPEDWIDTH = 351 -CB_SETDROPPEDWIDTH = 352 -CB_INITSTORAGE = 353 -CB_MSGMAX = 354 -SBS_HORZ = 0 -SBS_VERT = 1 -SBS_TOPALIGN = 2 -SBS_LEFTALIGN = 2 -SBS_BOTTOMALIGN = 4 -SBS_RIGHTALIGN = 4 -SBS_SIZEBOXTOPLEFTALIGN = 2 -SBS_SIZEBOXBOTTOMRIGHTALIGN = 4 -SBS_SIZEBOX = 8 -SBS_SIZEGRIP = 16 -SBM_SETPOS = 224 -SBM_GETPOS = 225 -SBM_SETRANGE = 226 -SBM_SETRANGEREDRAW = 230 -SBM_GETRANGE = 227 -SBM_ENABLE_ARROWS = 228 -SBM_SETSCROLLINFO = 233 -SBM_GETSCROLLINFO = 234 -SIF_RANGE = 1 -SIF_PAGE = 2 -SIF_POS = 4 -SIF_DISABLENOSCROLL = 8 -SIF_TRACKPOS = 16 -SIF_ALL = (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS) -MDIS_ALLCHILDSTYLES = 1 -MDITILE_VERTICAL = 0 -MDITILE_HORIZONTAL = 1 -MDITILE_SKIPDISABLED = 2 - -IMC_GETCANDIDATEPOS = 7 -IMC_SETCANDIDATEPOS = 8 -IMC_GETCOMPOSITIONFONT = 9 -IMC_SETCOMPOSITIONFONT = 10 -IMC_GETCOMPOSITIONWINDOW = 11 -IMC_SETCOMPOSITIONWINDOW = 12 -IMC_GETSTATUSWINDOWPOS = 15 -IMC_SETSTATUSWINDOWPOS = 16 -IMC_CLOSESTATUSWINDOW = 33 -IMC_OPENSTATUSWINDOW = 34 -# Generated by h2py from \msvc20\include\winnt.h -# hacked and split by mhammond. -DELETE = (65536) -READ_CONTROL = (131072) -WRITE_DAC = (262144) -WRITE_OWNER = (524288) -SYNCHRONIZE = (1048576) -STANDARD_RIGHTS_REQUIRED = (983040) -STANDARD_RIGHTS_READ = (READ_CONTROL) -STANDARD_RIGHTS_WRITE = (READ_CONTROL) -STANDARD_RIGHTS_EXECUTE = (READ_CONTROL) -STANDARD_RIGHTS_ALL = (2031616) -SPECIFIC_RIGHTS_ALL = (65535) -ACCESS_SYSTEM_SECURITY = (16777216) -MAXIMUM_ALLOWED = (33554432) -GENERIC_READ = (-2147483648) -GENERIC_WRITE = (1073741824) -GENERIC_EXECUTE = (536870912) -GENERIC_ALL = (268435456) - -SERVICE_KERNEL_DRIVER = 1 -SERVICE_FILE_SYSTEM_DRIVER = 2 -SERVICE_ADAPTER = 4 -SERVICE_RECOGNIZER_DRIVER = 8 -SERVICE_DRIVER = (SERVICE_KERNEL_DRIVER | \ - SERVICE_FILE_SYSTEM_DRIVER | \ - SERVICE_RECOGNIZER_DRIVER) -SERVICE_WIN32_OWN_PROCESS = 16 -SERVICE_WIN32_SHARE_PROCESS = 32 -SERVICE_WIN32 = (SERVICE_WIN32_OWN_PROCESS | \ - SERVICE_WIN32_SHARE_PROCESS) -SERVICE_INTERACTIVE_PROCESS = 256 -SERVICE_TYPE_ALL = (SERVICE_WIN32 | \ - SERVICE_ADAPTER | \ - SERVICE_DRIVER | \ - SERVICE_INTERACTIVE_PROCESS) -SERVICE_BOOT_START = 0 -SERVICE_SYSTEM_START = 1 -SERVICE_AUTO_START = 2 -SERVICE_DEMAND_START = 3 -SERVICE_DISABLED = 4 -SERVICE_ERROR_IGNORE = 0 -SERVICE_ERROR_NORMAL = 1 -SERVICE_ERROR_SEVERE = 2 -SERVICE_ERROR_CRITICAL = 3 -TAPE_ERASE_SHORT = 0 -TAPE_ERASE_LONG = 1 -TAPE_LOAD = 0 -TAPE_UNLOAD = 1 -TAPE_TENSION = 2 -TAPE_LOCK = 3 -TAPE_UNLOCK = 4 -TAPE_FORMAT = 5 -TAPE_SETMARKS = 0 -TAPE_FILEMARKS = 1 -TAPE_SHORT_FILEMARKS = 2 -TAPE_LONG_FILEMARKS = 3 -TAPE_ABSOLUTE_POSITION = 0 -TAPE_LOGICAL_POSITION = 1 -TAPE_PSEUDO_LOGICAL_POSITION = 2 -TAPE_REWIND = 0 -TAPE_ABSOLUTE_BLOCK = 1 -TAPE_LOGICAL_BLOCK = 2 -TAPE_PSEUDO_LOGICAL_BLOCK = 3 -TAPE_SPACE_END_OF_DATA = 4 -TAPE_SPACE_RELATIVE_BLOCKS = 5 -TAPE_SPACE_FILEMARKS = 6 -TAPE_SPACE_SEQUENTIAL_FMKS = 7 -TAPE_SPACE_SETMARKS = 8 -TAPE_SPACE_SEQUENTIAL_SMKS = 9 -TAPE_DRIVE_FIXED = 1 -TAPE_DRIVE_SELECT = 2 -TAPE_DRIVE_INITIATOR = 4 -TAPE_DRIVE_ERASE_SHORT = 16 -TAPE_DRIVE_ERASE_LONG = 32 -TAPE_DRIVE_ERASE_BOP_ONLY = 64 -TAPE_DRIVE_ERASE_IMMEDIATE = 128 -TAPE_DRIVE_TAPE_CAPACITY = 256 -TAPE_DRIVE_TAPE_REMAINING = 512 -TAPE_DRIVE_FIXED_BLOCK = 1024 -TAPE_DRIVE_VARIABLE_BLOCK = 2048 -TAPE_DRIVE_WRITE_PROTECT = 4096 -TAPE_DRIVE_EOT_WZ_SIZE = 8192 -TAPE_DRIVE_ECC = 65536 -TAPE_DRIVE_COMPRESSION = 131072 -TAPE_DRIVE_PADDING = 262144 -TAPE_DRIVE_REPORT_SMKS = 524288 -TAPE_DRIVE_GET_ABSOLUTE_BLK = 1048576 -TAPE_DRIVE_GET_LOGICAL_BLK = 2097152 -TAPE_DRIVE_SET_EOT_WZ_SIZE = 4194304 -TAPE_DRIVE_LOAD_UNLOAD = -2147483647 -TAPE_DRIVE_TENSION = -2147483646 -TAPE_DRIVE_LOCK_UNLOCK = -2147483644 -TAPE_DRIVE_REWIND_IMMEDIATE = -2147483640 -TAPE_DRIVE_SET_BLOCK_SIZE = -2147483632 -TAPE_DRIVE_LOAD_UNLD_IMMED = -2147483616 -TAPE_DRIVE_TENSION_IMMED = -2147483584 -TAPE_DRIVE_LOCK_UNLK_IMMED = -2147483520 -TAPE_DRIVE_SET_ECC = -2147483392 -TAPE_DRIVE_SET_COMPRESSION = -2147483136 -TAPE_DRIVE_SET_PADDING = -2147482624 -TAPE_DRIVE_SET_REPORT_SMKS = -2147481600 -TAPE_DRIVE_ABSOLUTE_BLK = -2147479552 -TAPE_DRIVE_ABS_BLK_IMMED = -2147475456 -TAPE_DRIVE_LOGICAL_BLK = -2147467264 -TAPE_DRIVE_LOG_BLK_IMMED = -2147450880 -TAPE_DRIVE_END_OF_DATA = -2147418112 -TAPE_DRIVE_RELATIVE_BLKS = -2147352576 -TAPE_DRIVE_FILEMARKS = -2147221504 -TAPE_DRIVE_SEQUENTIAL_FMKS = -2146959360 -TAPE_DRIVE_SETMARKS = -2146435072 -TAPE_DRIVE_SEQUENTIAL_SMKS = -2145386496 -TAPE_DRIVE_REVERSE_POSITION = -2143289344 -TAPE_DRIVE_SPACE_IMMEDIATE = -2139095040 -TAPE_DRIVE_WRITE_SETMARKS = -2130706432 -TAPE_DRIVE_WRITE_FILEMARKS = -2113929216 -TAPE_DRIVE_WRITE_SHORT_FMKS = -2080374784 -TAPE_DRIVE_WRITE_LONG_FMKS = -2013265920 -TAPE_DRIVE_WRITE_MARK_IMMED = -1879048192 -TAPE_DRIVE_FORMAT = -1610612736 -TAPE_DRIVE_FORMAT_IMMEDIATE = -1073741824 -TAPE_FIXED_PARTITIONS = 0 -TAPE_SELECT_PARTITIONS = 1 -TAPE_INITIATOR_PARTITIONS = 2 -# Generated by h2py from \msvc20\include\winnt.h -# hacked and split by mhammond. - -APPLICATION_ERROR_MASK = 536870912 -ERROR_SEVERITY_SUCCESS = 0 -ERROR_SEVERITY_INFORMATIONAL = 1073741824 -ERROR_SEVERITY_WARNING = -2147483648 -ERROR_SEVERITY_ERROR = -1073741824 -MINCHAR = 128 -MAXCHAR = 127 -MINSHORT = 32768 -MAXSHORT = 32767 -MINLONG = -2147483648 -MAXLONG = 2147483647 -MAXBYTE = 255 -MAXWORD = 65535 -MAXDWORD = -1 -LANG_NEUTRAL = 0 -LANG_BULGARIAN = 2 -LANG_CHINESE = 4 -LANG_CROATIAN = 26 -LANG_CZECH = 5 -LANG_DANISH = 6 -LANG_DUTCH = 19 -LANG_ENGLISH = 9 -LANG_FINNISH = 11 -LANG_FRENCH = 12 -LANG_GERMAN = 7 -LANG_GREEK = 8 -LANG_HUNGARIAN = 14 -LANG_ICELANDIC = 15 -LANG_ITALIAN = 16 -LANG_JAPANESE = 17 -LANG_KOREAN = 18 -LANG_NORWEGIAN = 20 -LANG_POLISH = 21 -LANG_PORTUGUESE = 22 -LANG_ROMANIAN = 24 -LANG_RUSSIAN = 25 -LANG_SLOVAK = 27 -LANG_SLOVENIAN = 36 -LANG_SPANISH = 10 -LANG_SWEDISH = 29 -LANG_TURKISH = 31 -SUBLANG_NEUTRAL = 0 -SUBLANG_DEFAULT = 1 -SUBLANG_SYS_DEFAULT = 2 -SUBLANG_CHINESE_TRADITIONAL = 1 -SUBLANG_CHINESE_SIMPLIFIED = 2 -SUBLANG_CHINESE_HONGKONG = 3 -SUBLANG_CHINESE_SINGAPORE = 4 -SUBLANG_DUTCH = 1 -SUBLANG_DUTCH_BELGIAN = 2 -SUBLANG_ENGLISH_US = 1 -SUBLANG_ENGLISH_UK = 2 -SUBLANG_ENGLISH_AUS = 3 -SUBLANG_ENGLISH_CAN = 4 -SUBLANG_ENGLISH_NZ = 5 -SUBLANG_ENGLISH_EIRE = 6 -SUBLANG_FRENCH = 1 -SUBLANG_FRENCH_BELGIAN = 2 -SUBLANG_FRENCH_CANADIAN = 3 -SUBLANG_FRENCH_SWISS = 4 -SUBLANG_GERMAN = 1 -SUBLANG_GERMAN_SWISS = 2 -SUBLANG_GERMAN_AUSTRIAN = 3 -SUBLANG_ITALIAN = 1 -SUBLANG_ITALIAN_SWISS = 2 -SUBLANG_NORWEGIAN_BOKMAL = 1 -SUBLANG_NORWEGIAN_NYNORSK = 2 -SUBLANG_PORTUGUESE = 2 -SUBLANG_PORTUGUESE_BRAZILIAN = 1 -SUBLANG_SPANISH = 1 -SUBLANG_SPANISH_MEXICAN = 2 -SUBLANG_SPANISH_MODERN = 3 -SORT_DEFAULT = 0 -SORT_JAPANESE_XJIS = 0 -SORT_JAPANESE_UNICODE = 1 -SORT_CHINESE_BIG5 = 0 -SORT_CHINESE_UNICODE = 1 -SORT_KOREAN_KSC = 0 -SORT_KOREAN_UNICODE = 1 -def PRIMARYLANGID(lgid): return ((lgid) & 1023) - -def SUBLANGID(lgid): return ((lgid) >> 10) - -NLS_VALID_LOCALE_MASK = 1048575 -CONTEXT_PORTABLE_32BIT = 1048576 -CONTEXT_ALPHA = 131072 -CONTEXT_CONTROL = (CONTEXT_ALPHA | 1) -CONTEXT_FLOATING_POINT = (CONTEXT_ALPHA | 2) -CONTEXT_INTEGER = (CONTEXT_ALPHA | 4) -CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) -SIZE_OF_80387_REGISTERS = 80 -CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) -CONTEXT_CONTROL = 1 -CONTEXT_FLOATING_POINT = 2 -CONTEXT_INTEGER = 4 -CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) -PROCESS_TERMINATE = (1) -PROCESS_CREATE_THREAD = (2) -PROCESS_VM_OPERATION = (8) -PROCESS_VM_READ = (16) -PROCESS_VM_WRITE = (32) -PROCESS_DUP_HANDLE = (64) -PROCESS_CREATE_PROCESS = (128) -PROCESS_SET_QUOTA = (256) -PROCESS_SET_INFORMATION = (512) -PROCESS_QUERY_INFORMATION = (1024) -PROCESS_SUSPEND_RESUME = (2048) -PROCESS_QUERY_LIMITED_INFORMATION = (4096) -PROCESS_SET_LIMITED_INFORMATION = (8192) -PROCESS_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 4095) -THREAD_TERMINATE = (1) -THREAD_SUSPEND_RESUME = (2) -THREAD_GET_CONTEXT = (8) -THREAD_SET_CONTEXT = (16) -THREAD_SET_INFORMATION = (32) -THREAD_QUERY_INFORMATION = (64) -THREAD_SET_THREAD_TOKEN = (128) -THREAD_IMPERSONATE = (256) -THREAD_DIRECT_IMPERSONATION = (512) -THREAD_SET_LIMITED_INFORMATION = (1024) -THREAD_QUERY_LIMITED_INFORMATION = (2048) -THREAD_RESUME = (4096) -TLS_MINIMUM_AVAILABLE = 64 -EVENT_MODIFY_STATE = 2 -MUTANT_QUERY_STATE = 1 -SEMAPHORE_MODIFY_STATE = 2 -TIME_ZONE_ID_UNKNOWN = 0 -TIME_ZONE_ID_STANDARD = 1 -TIME_ZONE_ID_DAYLIGHT = 2 -PROCESSOR_INTEL_386 = 386 -PROCESSOR_INTEL_486 = 486 -PROCESSOR_INTEL_PENTIUM = 586 -PROCESSOR_INTEL_860 = 860 -PROCESSOR_MIPS_R2000 = 2000 -PROCESSOR_MIPS_R3000 = 3000 -PROCESSOR_MIPS_R4000 = 4000 -PROCESSOR_ALPHA_21064 = 21064 -PROCESSOR_PPC_601 = 601 -PROCESSOR_PPC_603 = 603 -PROCESSOR_PPC_604 = 604 -PROCESSOR_PPC_620 = 620 -SECTION_QUERY = 1 -SECTION_MAP_WRITE = 2 -SECTION_MAP_READ = 4 -SECTION_MAP_EXECUTE = 8 -SECTION_EXTEND_SIZE = 16 -PAGE_NOACCESS = 1 -PAGE_READONLY = 2 -PAGE_READWRITE = 4 -PAGE_WRITECOPY = 8 -PAGE_EXECUTE = 16 -PAGE_EXECUTE_READ = 32 -PAGE_EXECUTE_READWRITE = 64 -PAGE_EXECUTE_WRITECOPY = 128 -PAGE_GUARD = 256 -PAGE_NOCACHE = 512 -MEM_COMMIT = 4096 -MEM_RESERVE = 8192 -MEM_DECOMMIT = 16384 -MEM_RELEASE = 32768 -MEM_FREE = 65536 -MEM_PRIVATE = 131072 -MEM_MAPPED = 262144 -MEM_TOP_DOWN = 1048576 - -# Generated by h2py from \msvc20\include\winnt.h -# hacked and split by mhammond. -SEC_FILE = 8388608 -SEC_IMAGE = 16777216 -SEC_RESERVE = 67108864 -SEC_COMMIT = 134217728 -SEC_NOCACHE = 268435456 -MEM_IMAGE = SEC_IMAGE -FILE_SHARE_READ = 1 -FILE_SHARE_WRITE = 2 -FILE_SHARE_DELETE = 4 -FILE_ATTRIBUTE_READONLY = 1 -FILE_ATTRIBUTE_HIDDEN = 2 -FILE_ATTRIBUTE_SYSTEM = 4 -FILE_ATTRIBUTE_DIRECTORY = 16 -FILE_ATTRIBUTE_ARCHIVE = 32 -FILE_ATTRIBUTE_DEVICE = 64 -FILE_ATTRIBUTE_NORMAL = 128 -FILE_ATTRIBUTE_TEMPORARY = 256 -FILE_ATTRIBUTE_SPARSE_FILE = 512 -FILE_ATTRIBUTE_REPARSE_POINT = 1024 -FILE_ATTRIBUTE_COMPRESSED = 2048 -FILE_ATTRIBUTE_OFFLINE = 4096 -FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 -FILE_ATTRIBUTE_ENCRYPTED = 16384 -FILE_ATTRIBUTE_VIRTUAL = 65536 -# These FILE_ATTRIBUTE_* flags are apparently old definitions from Windows 95 -# and conflict with current values above - but they live on for b/w compat... -FILE_ATTRIBUTE_ATOMIC_WRITE = 512 -FILE_ATTRIBUTE_XACTION_WRITE = 1024 - -FILE_NOTIFY_CHANGE_FILE_NAME = 1 -FILE_NOTIFY_CHANGE_DIR_NAME = 2 -FILE_NOTIFY_CHANGE_ATTRIBUTES = 4 -FILE_NOTIFY_CHANGE_SIZE = 8 -FILE_NOTIFY_CHANGE_LAST_WRITE = 16 -FILE_NOTIFY_CHANGE_SECURITY = 256 -FILE_CASE_SENSITIVE_SEARCH = 1 -FILE_CASE_PRESERVED_NAMES = 2 -FILE_UNICODE_ON_DISK = 4 -FILE_PERSISTENT_ACLS = 8 -FILE_FILE_COMPRESSION = 16 -FILE_VOLUME_IS_COMPRESSED = 32768 -IO_COMPLETION_MODIFY_STATE = 2 -DUPLICATE_CLOSE_SOURCE = 1 -DUPLICATE_SAME_ACCESS = 2 -SID_MAX_SUB_AUTHORITIES = (15) -SECURITY_NULL_RID = (0) -SECURITY_WORLD_RID = (0) -SECURITY_LOCAL_RID = (0X00000000) -SECURITY_CREATOR_OWNER_RID = (0) -SECURITY_CREATOR_GROUP_RID = (1) -SECURITY_DIALUP_RID = (1) -SECURITY_NETWORK_RID = (2) -SECURITY_BATCH_RID = (3) -SECURITY_INTERACTIVE_RID = (4) -SECURITY_SERVICE_RID = (6) -SECURITY_ANONYMOUS_LOGON_RID = (7) -SECURITY_LOGON_IDS_RID = (5) -SECURITY_LOGON_IDS_RID_COUNT = (3) -SECURITY_LOCAL_SYSTEM_RID = (18) -SECURITY_NT_NON_UNIQUE = (21) -SECURITY_BUILTIN_DOMAIN_RID = (32) -DOMAIN_USER_RID_ADMIN = (500) -DOMAIN_USER_RID_GUEST = (501) -DOMAIN_GROUP_RID_ADMINS = (512) -DOMAIN_GROUP_RID_USERS = (513) -DOMAIN_GROUP_RID_GUESTS = (514) -DOMAIN_ALIAS_RID_ADMINS = (544) -DOMAIN_ALIAS_RID_USERS = (545) -DOMAIN_ALIAS_RID_GUESTS = (546) -DOMAIN_ALIAS_RID_POWER_USERS = (547) -DOMAIN_ALIAS_RID_ACCOUNT_OPS = (548) -DOMAIN_ALIAS_RID_SYSTEM_OPS = (549) -DOMAIN_ALIAS_RID_PRINT_OPS = (550) -DOMAIN_ALIAS_RID_BACKUP_OPS = (551) -DOMAIN_ALIAS_RID_REPLICATOR = (552) -SE_GROUP_MANDATORY = (1) -SE_GROUP_ENABLED_BY_DEFAULT = (2) -SE_GROUP_ENABLED = (4) -SE_GROUP_OWNER = (8) -SE_GROUP_LOGON_ID = (-1073741824) -ACL_REVISION = (2) -ACL_REVISION1 = (1) -ACL_REVISION2 = (2) -ACCESS_ALLOWED_ACE_TYPE = (0) -ACCESS_DENIED_ACE_TYPE = (1) -SYSTEM_AUDIT_ACE_TYPE = (2) -SYSTEM_ALARM_ACE_TYPE = (3) -OBJECT_INHERIT_ACE = (1) -CONTAINER_INHERIT_ACE = (2) -NO_PROPAGATE_INHERIT_ACE = (4) -INHERIT_ONLY_ACE = (8) -VALID_INHERIT_FLAGS = (15) -SUCCESSFUL_ACCESS_ACE_FLAG = (64) -FAILED_ACCESS_ACE_FLAG = (128) -SECURITY_DESCRIPTOR_REVISION = (1) -SECURITY_DESCRIPTOR_REVISION1 = (1) -SECURITY_DESCRIPTOR_MIN_LENGTH = (20) -SE_OWNER_DEFAULTED = (1) -SE_GROUP_DEFAULTED = (2) -SE_DACL_PRESENT = (4) -SE_DACL_DEFAULTED = (8) -SE_SACL_PRESENT = (16) -SE_SACL_DEFAULTED = (32) -SE_SELF_RELATIVE = (32768) -SE_PRIVILEGE_ENABLED_BY_DEFAULT = (1) -SE_PRIVILEGE_ENABLED = (2) -SE_PRIVILEGE_USED_FOR_ACCESS = (-2147483648) -PRIVILEGE_SET_ALL_NECESSARY = (1) -SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" -SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" -SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" -SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" -SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" -SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" -SE_TCB_NAME = "SeTcbPrivilege" -SE_SECURITY_NAME = "SeSecurityPrivilege" -SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" -SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" -SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" -SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" -SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" -SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" -SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" -SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" -SE_BACKUP_NAME = "SeBackupPrivilege" -SE_RESTORE_NAME = "SeRestorePrivilege" -SE_SHUTDOWN_NAME = "SeShutdownPrivilege" -SE_DEBUG_NAME = "SeDebugPrivilege" -SE_AUDIT_NAME = "SeAuditPrivilege" -SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" -SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" -SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" - -TOKEN_ASSIGN_PRIMARY = (1) -TOKEN_DUPLICATE = (2) -TOKEN_IMPERSONATE = (4) -TOKEN_QUERY = (8) -TOKEN_QUERY_SOURCE = (16) -TOKEN_ADJUST_PRIVILEGES = (32) -TOKEN_ADJUST_GROUPS = (64) -TOKEN_ADJUST_DEFAULT = (128) -TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED |\ - TOKEN_ASSIGN_PRIMARY |\ - TOKEN_DUPLICATE |\ - TOKEN_IMPERSONATE |\ - TOKEN_QUERY |\ - TOKEN_QUERY_SOURCE |\ - TOKEN_ADJUST_PRIVILEGES |\ - TOKEN_ADJUST_GROUPS |\ - TOKEN_ADJUST_DEFAULT) -TOKEN_READ = (STANDARD_RIGHTS_READ |\ - TOKEN_QUERY) -TOKEN_WRITE = (STANDARD_RIGHTS_WRITE |\ - TOKEN_ADJUST_PRIVILEGES |\ - TOKEN_ADJUST_GROUPS |\ - TOKEN_ADJUST_DEFAULT) -TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE) -TOKEN_SOURCE_LENGTH = 8 - -KEY_QUERY_VALUE = (1) -KEY_SET_VALUE = (2) -KEY_CREATE_SUB_KEY = (4) -KEY_ENUMERATE_SUB_KEYS = (8) -KEY_NOTIFY = (16) -KEY_CREATE_LINK = (32) -KEY_WOW64_32KEY = 512 -KEY_WOW64_64KEY = 256 -KEY_WOW64_RES = 768 -KEY_READ = ((STANDARD_RIGHTS_READ |\ - KEY_QUERY_VALUE |\ - KEY_ENUMERATE_SUB_KEYS |\ - KEY_NOTIFY) \ - & \ - (~SYNCHRONIZE)) -KEY_WRITE = ((STANDARD_RIGHTS_WRITE |\ - KEY_SET_VALUE |\ - KEY_CREATE_SUB_KEY) \ - & \ - (~SYNCHRONIZE)) -KEY_EXECUTE = ((KEY_READ) \ - & \ - (~SYNCHRONIZE)) -KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL |\ - KEY_QUERY_VALUE |\ - KEY_SET_VALUE |\ - KEY_CREATE_SUB_KEY |\ - KEY_ENUMERATE_SUB_KEYS |\ - KEY_NOTIFY |\ - KEY_CREATE_LINK) \ - & \ - (~SYNCHRONIZE)) -REG_NOTIFY_CHANGE_ATTRIBUTES = (2) -REG_NOTIFY_CHANGE_SECURITY = (8) -REG_RESOURCE_REQUIREMENTS_LIST = ( 10 ) -REG_NONE = ( 0 ) # No value type -REG_SZ = ( 1 ) # Unicode nul terminated string -REG_EXPAND_SZ = ( 2 ) # Unicode nul terminated string - # (with environment variable references) -REG_BINARY = ( 3 ) # Free form binary -REG_DWORD = ( 4 ) # 32-bit number -REG_DWORD_LITTLE_ENDIAN = ( 4 ) # 32-bit number (same as REG_DWORD) -REG_DWORD_BIG_ENDIAN = ( 5 ) # 32-bit number -REG_LINK = ( 6 ) # Symbolic Link (unicode) -REG_MULTI_SZ = ( 7 ) # Multiple Unicode strings -REG_RESOURCE_LIST = ( 8 ) # Resource list in the resource map -REG_FULL_RESOURCE_DESCRIPTOR =( 9 ) # Resource list in the hardware description -REG_RESOURCE_REQUIREMENTS_LIST = ( 10 ) -REG_QWORD = ( 11 ) # 64-bit number -REG_QWORD_LITTLE_ENDIAN = ( 11 ) # 64-bit number (same as REG_QWORD) - - -# Generated by h2py from \msvc20\include\winnt.h -# hacked and split by mhammond. -# Included from string.h -_NLSCMPERROR = 2147483647 -NULL = 0 -HEAP_NO_SERIALIZE = 1 -HEAP_GROWABLE = 2 -HEAP_GENERATE_EXCEPTIONS = 4 -HEAP_ZERO_MEMORY = 8 -HEAP_REALLOC_IN_PLACE_ONLY = 16 -HEAP_TAIL_CHECKING_ENABLED = 32 -HEAP_FREE_CHECKING_ENABLED = 64 -HEAP_DISABLE_COALESCE_ON_FREE = 128 -IS_TEXT_UNICODE_ASCII16 = 1 -IS_TEXT_UNICODE_REVERSE_ASCII16 = 16 -IS_TEXT_UNICODE_STATISTICS = 2 -IS_TEXT_UNICODE_REVERSE_STATISTICS = 32 -IS_TEXT_UNICODE_CONTROLS = 4 -IS_TEXT_UNICODE_REVERSE_CONTROLS = 64 -IS_TEXT_UNICODE_SIGNATURE = 8 -IS_TEXT_UNICODE_REVERSE_SIGNATURE = 128 -IS_TEXT_UNICODE_ILLEGAL_CHARS = 256 -IS_TEXT_UNICODE_ODD_LENGTH = 512 -IS_TEXT_UNICODE_DBCS_LEADBYTE = 1024 -IS_TEXT_UNICODE_NULL_BYTES = 4096 -IS_TEXT_UNICODE_UNICODE_MASK = 15 -IS_TEXT_UNICODE_REVERSE_MASK = 240 -IS_TEXT_UNICODE_NOT_UNICODE_MASK = 3840 -IS_TEXT_UNICODE_NOT_ASCII_MASK = 61440 -COMPRESSION_FORMAT_NONE = (0) -COMPRESSION_FORMAT_DEFAULT = (1) -COMPRESSION_FORMAT_LZNT1 = (2) -COMPRESSION_ENGINE_STANDARD = (0) -COMPRESSION_ENGINE_MAXIMUM = (256) -MESSAGE_RESOURCE_UNICODE = 1 -RTL_CRITSECT_TYPE = 0 -RTL_RESOURCE_TYPE = 1 -DLL_PROCESS_ATTACH = 1 -DLL_THREAD_ATTACH = 2 -DLL_THREAD_DETACH = 3 -DLL_PROCESS_DETACH = 0 -EVENTLOG_SEQUENTIAL_READ = 0X0001 -EVENTLOG_SEEK_READ = 0X0002 -EVENTLOG_FORWARDS_READ = 0X0004 -EVENTLOG_BACKWARDS_READ = 0X0008 -EVENTLOG_SUCCESS = 0X0000 -EVENTLOG_ERROR_TYPE = 1 -EVENTLOG_WARNING_TYPE = 2 -EVENTLOG_INFORMATION_TYPE = 4 -EVENTLOG_AUDIT_SUCCESS = 8 -EVENTLOG_AUDIT_FAILURE = 16 -EVENTLOG_START_PAIRED_EVENT = 1 -EVENTLOG_END_PAIRED_EVENT = 2 -EVENTLOG_END_ALL_PAIRED_EVENTS = 4 -EVENTLOG_PAIRED_EVENT_ACTIVE = 8 -EVENTLOG_PAIRED_EVENT_INACTIVE = 16 -# Generated by h2py from \msvc20\include\winnt.h -# hacked and split by mhammond. -OWNER_SECURITY_INFORMATION = (0X00000001) -GROUP_SECURITY_INFORMATION = (0X00000002) -DACL_SECURITY_INFORMATION = (0X00000004) -SACL_SECURITY_INFORMATION = (0X00000008) -IMAGE_SIZEOF_FILE_HEADER = 20 -IMAGE_FILE_MACHINE_UNKNOWN = 0 -IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 -IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 -IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 -IMAGE_SIZEOF_NT_OPTIONAL_HEADER = 224 -IMAGE_NT_OPTIONAL_HDR_MAGIC = 267 -IMAGE_ROM_OPTIONAL_HDR_MAGIC = 263 -IMAGE_SIZEOF_SHORT_NAME = 8 -IMAGE_SIZEOF_SECTION_HEADER = 40 -IMAGE_SIZEOF_SYMBOL = 18 -IMAGE_SYM_CLASS_NULL = 0 -IMAGE_SYM_CLASS_AUTOMATIC = 1 -IMAGE_SYM_CLASS_EXTERNAL = 2 -IMAGE_SYM_CLASS_STATIC = 3 -IMAGE_SYM_CLASS_REGISTER = 4 -IMAGE_SYM_CLASS_EXTERNAL_DEF = 5 -IMAGE_SYM_CLASS_LABEL = 6 -IMAGE_SYM_CLASS_UNDEFINED_LABEL = 7 -IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 8 -IMAGE_SYM_CLASS_ARGUMENT = 9 -IMAGE_SYM_CLASS_STRUCT_TAG = 10 -IMAGE_SYM_CLASS_MEMBER_OF_UNION = 11 -IMAGE_SYM_CLASS_UNION_TAG = 12 -IMAGE_SYM_CLASS_TYPE_DEFINITION = 13 -IMAGE_SYM_CLASS_UNDEFINED_STATIC = 14 -IMAGE_SYM_CLASS_ENUM_TAG = 15 -IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 16 -IMAGE_SYM_CLASS_REGISTER_PARAM = 17 -IMAGE_SYM_CLASS_BIT_FIELD = 18 -IMAGE_SYM_CLASS_BLOCK = 100 -IMAGE_SYM_CLASS_FUNCTION = 101 -IMAGE_SYM_CLASS_END_OF_STRUCT = 102 -IMAGE_SYM_CLASS_FILE = 103 -IMAGE_SYM_CLASS_SECTION = 104 -IMAGE_SYM_CLASS_WEAK_EXTERNAL = 105 -N_BTMASK = 15 -N_TMASK = 48 -N_TMASK1 = 192 -N_TMASK2 = 240 -N_BTSHFT = 4 -N_TSHIFT = 2 -IMAGE_SIZEOF_AUX_SYMBOL = 18 -IMAGE_COMDAT_SELECT_NODUPLICATES = 1 -IMAGE_COMDAT_SELECT_ANY = 2 -IMAGE_COMDAT_SELECT_SAME_SIZE = 3 -IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 -IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 -IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 -IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 -IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 -IMAGE_SIZEOF_RELOCATION = 10 -IMAGE_REL_I386_SECTION = 10 -IMAGE_REL_I386_SECREL = 11 -IMAGE_REL_MIPS_REFHALF = 1 -IMAGE_REL_MIPS_REFWORD = 2 -IMAGE_REL_MIPS_JMPADDR = 3 -IMAGE_REL_MIPS_REFHI = 4 -IMAGE_REL_MIPS_REFLO = 5 -IMAGE_REL_MIPS_GPREL = 6 -IMAGE_REL_MIPS_LITERAL = 7 -IMAGE_REL_MIPS_SECTION = 10 -IMAGE_REL_MIPS_SECREL = 11 -IMAGE_REL_MIPS_REFWORDNB = 34 -IMAGE_REL_MIPS_PAIR = 37 -IMAGE_REL_ALPHA_ABSOLUTE = 0 -IMAGE_REL_ALPHA_REFLONG = 1 -IMAGE_REL_ALPHA_REFQUAD = 2 -IMAGE_REL_ALPHA_GPREL32 = 3 -IMAGE_REL_ALPHA_LITERAL = 4 -IMAGE_REL_ALPHA_LITUSE = 5 -IMAGE_REL_ALPHA_GPDISP = 6 -IMAGE_REL_ALPHA_BRADDR = 7 -IMAGE_REL_ALPHA_HINT = 8 -IMAGE_REL_ALPHA_INLINE_REFLONG = 9 -IMAGE_REL_ALPHA_REFHI = 10 -IMAGE_REL_ALPHA_REFLO = 11 -IMAGE_REL_ALPHA_PAIR = 12 -IMAGE_REL_ALPHA_MATCH = 13 -IMAGE_REL_ALPHA_SECTION = 14 -IMAGE_REL_ALPHA_SECREL = 15 -IMAGE_REL_ALPHA_REFLONGNB = 16 -IMAGE_SIZEOF_BASE_RELOCATION = 8 -IMAGE_REL_BASED_ABSOLUTE = 0 -IMAGE_REL_BASED_HIGH = 1 -IMAGE_REL_BASED_LOW = 2 -IMAGE_REL_BASED_HIGHLOW = 3 -IMAGE_REL_BASED_HIGHADJ = 4 -IMAGE_REL_BASED_MIPS_JMPADDR = 5 -IMAGE_SIZEOF_LINENUMBER = 6 -IMAGE_ARCHIVE_START_SIZE = 8 -IMAGE_ARCHIVE_START = "!\n" -IMAGE_ARCHIVE_END = "`\n" -IMAGE_ARCHIVE_PAD = "\n" -IMAGE_ARCHIVE_LINKER_MEMBER = "/ " -IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// " -IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 -IMAGE_ORDINAL_FLAG = -2147483648 -def IMAGE_SNAP_BY_ORDINAL(Ordinal): return ((Ordinal & IMAGE_ORDINAL_FLAG) != 0) - -def IMAGE_ORDINAL(Ordinal): return (Ordinal & 65535) - -IMAGE_RESOURCE_NAME_IS_STRING = -2147483648 -IMAGE_RESOURCE_DATA_IS_DIRECTORY = -2147483648 -IMAGE_DEBUG_TYPE_UNKNOWN = 0 -IMAGE_DEBUG_TYPE_COFF = 1 -IMAGE_DEBUG_TYPE_CODEVIEW = 2 -IMAGE_DEBUG_TYPE_FPO = 3 -IMAGE_DEBUG_TYPE_MISC = 4 -IMAGE_DEBUG_TYPE_EXCEPTION = 5 -IMAGE_DEBUG_TYPE_FIXUP = 6 -IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 -IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 -FRAME_FPO = 0 -FRAME_TRAP = 1 -FRAME_TSS = 2 -SIZEOF_RFPO_DATA = 16 -IMAGE_DEBUG_MISC_EXENAME = 1 -IMAGE_SEPARATE_DEBUG_SIGNATURE = 18756 -# Generated by h2py from \msvcnt\include\wingdi.h -# hacked and split manually by mhammond. -NEWFRAME = 1 -ABORTDOC = 2 -NEXTBAND = 3 -SETCOLORTABLE = 4 -GETCOLORTABLE = 5 -FLUSHOUTPUT = 6 -DRAFTMODE = 7 -QUERYESCSUPPORT = 8 -SETABORTPROC = 9 -STARTDOC = 10 -ENDDOC = 11 -GETPHYSPAGESIZE = 12 -GETPRINTINGOFFSET = 13 -GETSCALINGFACTOR = 14 -MFCOMMENT = 15 -GETPENWIDTH = 16 -SETCOPYCOUNT = 17 -SELECTPAPERSOURCE = 18 -DEVICEDATA = 19 -PASSTHROUGH = 19 -GETTECHNOLGY = 20 -GETTECHNOLOGY = 20 -SETLINECAP = 21 -SETLINEJOIN = 22 -SETMITERLIMIT = 23 -BANDINFO = 24 -DRAWPATTERNRECT = 25 -GETVECTORPENSIZE = 26 -GETVECTORBRUSHSIZE = 27 -ENABLEDUPLEX = 28 -GETSETPAPERBINS = 29 -GETSETPRINTORIENT = 30 -ENUMPAPERBINS = 31 -SETDIBSCALING = 32 -EPSPRINTING = 33 -ENUMPAPERMETRICS = 34 -GETSETPAPERMETRICS = 35 -POSTSCRIPT_DATA = 37 -POSTSCRIPT_IGNORE = 38 -MOUSETRAILS = 39 -GETDEVICEUNITS = 42 -GETEXTENDEDTEXTMETRICS = 256 -GETEXTENTTABLE = 257 -GETPAIRKERNTABLE = 258 -GETTRACKKERNTABLE = 259 -EXTTEXTOUT = 512 -GETFACENAME = 513 -DOWNLOADFACE = 514 -ENABLERELATIVEWIDTHS = 768 -ENABLEPAIRKERNING = 769 -SETKERNTRACK = 770 -SETALLJUSTVALUES = 771 -SETCHARSET = 772 -STRETCHBLT = 2048 -GETSETSCREENPARAMS = 3072 -BEGIN_PATH = 4096 -CLIP_TO_PATH = 4097 -END_PATH = 4098 -EXT_DEVICE_CAPS = 4099 -RESTORE_CTM = 4100 -SAVE_CTM = 4101 -SET_ARC_DIRECTION = 4102 -SET_BACKGROUND_COLOR = 4103 -SET_POLY_MODE = 4104 -SET_SCREEN_ANGLE = 4105 -SET_SPREAD = 4106 -TRANSFORM_CTM = 4107 -SET_CLIP_BOX = 4108 -SET_BOUNDS = 4109 -SET_MIRROR_MODE = 4110 -OPENCHANNEL = 4110 -DOWNLOADHEADER = 4111 -CLOSECHANNEL = 4112 -POSTSCRIPT_PASSTHROUGH = 4115 -ENCAPSULATED_POSTSCRIPT = 4116 -SP_NOTREPORTED = 16384 -SP_ERROR = (-1) -SP_APPABORT = (-2) -SP_USERABORT = (-3) -SP_OUTOFDISK = (-4) -SP_OUTOFMEMORY = (-5) -PR_JOBSTATUS = 0 - -## GDI object types -OBJ_PEN = 1 -OBJ_BRUSH = 2 -OBJ_DC = 3 -OBJ_METADC = 4 -OBJ_PAL = 5 -OBJ_FONT = 6 -OBJ_BITMAP = 7 -OBJ_REGION = 8 -OBJ_METAFILE = 9 -OBJ_MEMDC = 10 -OBJ_EXTPEN = 11 -OBJ_ENHMETADC = 12 -OBJ_ENHMETAFILE = 13 -OBJ_COLORSPACE = 14 - -MWT_IDENTITY = 1 -MWT_LEFTMULTIPLY = 2 -MWT_RIGHTMULTIPLY = 3 -MWT_MIN = MWT_IDENTITY -MWT_MAX = MWT_RIGHTMULTIPLY -BI_RGB = 0 -BI_RLE8 = 1 -BI_RLE4 = 2 -BI_BITFIELDS = 3 -TMPF_FIXED_PITCH = 1 -TMPF_VECTOR = 2 -TMPF_DEVICE = 8 -TMPF_TRUETYPE = 4 -NTM_REGULAR = 64 -NTM_BOLD = 32 -NTM_ITALIC = 1 -LF_FACESIZE = 32 -LF_FULLFACESIZE = 64 -OUT_DEFAULT_PRECIS = 0 -OUT_STRING_PRECIS = 1 -OUT_CHARACTER_PRECIS = 2 -OUT_STROKE_PRECIS = 3 -OUT_TT_PRECIS = 4 -OUT_DEVICE_PRECIS = 5 -OUT_RASTER_PRECIS = 6 -OUT_TT_ONLY_PRECIS = 7 -OUT_OUTLINE_PRECIS = 8 -CLIP_DEFAULT_PRECIS = 0 -CLIP_CHARACTER_PRECIS = 1 -CLIP_STROKE_PRECIS = 2 -CLIP_MASK = 15 -CLIP_LH_ANGLES = (1<<4) -CLIP_TT_ALWAYS = (2<<4) -CLIP_EMBEDDED = (8<<4) -DEFAULT_QUALITY = 0 -DRAFT_QUALITY = 1 -PROOF_QUALITY = 2 -NONANTIALIASED_QUALITY = 3 -ANTIALIASED_QUALITY = 4 -CLEARTYPE_QUALITY = 5 -CLEARTYPE_NATURAL_QUALITY = 6 -DEFAULT_PITCH = 0 -FIXED_PITCH = 1 -VARIABLE_PITCH = 2 -ANSI_CHARSET = 0 -DEFAULT_CHARSET = 1 -SYMBOL_CHARSET = 2 -SHIFTJIS_CHARSET = 128 -HANGEUL_CHARSET = 129 -CHINESEBIG5_CHARSET = 136 -OEM_CHARSET = 255 -JOHAB_CHARSET = 130 -HEBREW_CHARSET = 177 -ARABIC_CHARSET = 178 -GREEK_CHARSET = 161 -TURKISH_CHARSET = 162 -VIETNAMESE_CHARSET = 163 -THAI_CHARSET = 222 -EASTEUROPE_CHARSET = 238 -RUSSIAN_CHARSET = 204 -MAC_CHARSET = 77 -BALTIC_CHARSET = 186 -FF_DONTCARE = (0<<4) -FF_ROMAN = (1<<4) -FF_SWISS = (2<<4) -FF_MODERN = (3<<4) -FF_SCRIPT = (4<<4) -FF_DECORATIVE = (5<<4) -FW_DONTCARE = 0 -FW_THIN = 100 -FW_EXTRALIGHT = 200 -FW_LIGHT = 300 -FW_NORMAL = 400 -FW_MEDIUM = 500 -FW_SEMIBOLD = 600 -FW_BOLD = 700 -FW_EXTRABOLD = 800 -FW_HEAVY = 900 -FW_ULTRALIGHT = FW_EXTRALIGHT -FW_REGULAR = FW_NORMAL -FW_DEMIBOLD = FW_SEMIBOLD -FW_ULTRABOLD = FW_EXTRABOLD -FW_BLACK = FW_HEAVY -# Generated by h2py from \msvcnt\include\wingdi.h -# hacked and split manually by mhammond. -BS_SOLID = 0 -BS_NULL = 1 -BS_HOLLOW = BS_NULL -BS_HATCHED = 2 -BS_PATTERN = 3 -BS_INDEXED = 4 -BS_DIBPATTERN = 5 -BS_DIBPATTERNPT = 6 -BS_PATTERN8X8 = 7 -BS_DIBPATTERN8X8 = 8 -HS_HORIZONTAL = 0 -HS_VERTICAL = 1 -HS_FDIAGONAL = 2 -HS_BDIAGONAL = 3 -HS_CROSS = 4 -HS_DIAGCROSS = 5 -HS_FDIAGONAL1 = 6 -HS_BDIAGONAL1 = 7 -HS_SOLID = 8 -HS_DENSE1 = 9 -HS_DENSE2 = 10 -HS_DENSE3 = 11 -HS_DENSE4 = 12 -HS_DENSE5 = 13 -HS_DENSE6 = 14 -HS_DENSE7 = 15 -HS_DENSE8 = 16 -HS_NOSHADE = 17 -HS_HALFTONE = 18 -HS_SOLIDCLR = 19 -HS_DITHEREDCLR = 20 -HS_SOLIDTEXTCLR = 21 -HS_DITHEREDTEXTCLR = 22 -HS_SOLIDBKCLR = 23 -HS_DITHEREDBKCLR = 24 -HS_API_MAX = 25 -PS_SOLID = 0 -PS_DASH = 1 -PS_DOT = 2 -PS_DASHDOT = 3 -PS_DASHDOTDOT = 4 -PS_NULL = 5 -PS_INSIDEFRAME = 6 -PS_USERSTYLE = 7 -PS_ALTERNATE = 8 -PS_STYLE_MASK = 15 -PS_ENDCAP_ROUND = 0 -PS_ENDCAP_SQUARE = 256 -PS_ENDCAP_FLAT = 512 -PS_ENDCAP_MASK = 3840 -PS_JOIN_ROUND = 0 -PS_JOIN_BEVEL = 4096 -PS_JOIN_MITER = 8192 -PS_JOIN_MASK = 61440 -PS_COSMETIC = 0 -PS_GEOMETRIC = 65536 -PS_TYPE_MASK = 983040 -AD_COUNTERCLOCKWISE = 1 -AD_CLOCKWISE = 2 -DRIVERVERSION = 0 -TECHNOLOGY = 2 -HORZSIZE = 4 -VERTSIZE = 6 -HORZRES = 8 -VERTRES = 10 -BITSPIXEL = 12 -PLANES = 14 -NUMBRUSHES = 16 -NUMPENS = 18 -NUMMARKERS = 20 -NUMFONTS = 22 -NUMCOLORS = 24 -PDEVICESIZE = 26 -CURVECAPS = 28 -LINECAPS = 30 -POLYGONALCAPS = 32 -TEXTCAPS = 34 -CLIPCAPS = 36 -RASTERCAPS = 38 -ASPECTX = 40 -ASPECTY = 42 -ASPECTXY = 44 -LOGPIXELSX = 88 -LOGPIXELSY = 90 -SIZEPALETTE = 104 -NUMRESERVED = 106 -COLORRES = 108 - -PHYSICALWIDTH = 110 -PHYSICALHEIGHT = 111 -PHYSICALOFFSETX = 112 -PHYSICALOFFSETY = 113 -SCALINGFACTORX = 114 -SCALINGFACTORY = 115 -VREFRESH = 116 -DESKTOPVERTRES = 117 -DESKTOPHORZRES = 118 -BLTALIGNMENT = 119 -SHADEBLENDCAPS = 120 -COLORMGMTCAPS = 121 - -DT_PLOTTER = 0 -DT_RASDISPLAY = 1 -DT_RASPRINTER = 2 -DT_RASCAMERA = 3 -DT_CHARSTREAM = 4 -DT_METAFILE = 5 -DT_DISPFILE = 6 -CC_NONE = 0 -CC_CIRCLES = 1 -CC_PIE = 2 -CC_CHORD = 4 -CC_ELLIPSES = 8 -CC_WIDE = 16 -CC_STYLED = 32 -CC_WIDESTYLED = 64 -CC_INTERIORS = 128 -CC_ROUNDRECT = 256 -LC_NONE = 0 -LC_POLYLINE = 2 -LC_MARKER = 4 -LC_POLYMARKER = 8 -LC_WIDE = 16 -LC_STYLED = 32 -LC_WIDESTYLED = 64 -LC_INTERIORS = 128 -PC_NONE = 0 -PC_POLYGON = 1 -PC_RECTANGLE = 2 -PC_WINDPOLYGON = 4 -PC_TRAPEZOID = 4 -PC_SCANLINE = 8 -PC_WIDE = 16 -PC_STYLED = 32 -PC_WIDESTYLED = 64 -PC_INTERIORS = 128 -CP_NONE = 0 -CP_RECTANGLE = 1 -CP_REGION = 2 -TC_OP_CHARACTER = 1 -TC_OP_STROKE = 2 -TC_CP_STROKE = 4 -TC_CR_90 = 8 -TC_CR_ANY = 16 -TC_SF_X_YINDEP = 32 -TC_SA_DOUBLE = 64 -TC_SA_INTEGER = 128 -TC_SA_CONTIN = 256 -TC_EA_DOUBLE = 512 -TC_IA_ABLE = 1024 -TC_UA_ABLE = 2048 -TC_SO_ABLE = 4096 -TC_RA_ABLE = 8192 -TC_VA_ABLE = 16384 -TC_RESERVED = 32768 -TC_SCROLLBLT = 65536 -RC_BITBLT = 1 -RC_BANDING = 2 -RC_SCALING = 4 -RC_BITMAP64 = 8 -RC_GDI20_OUTPUT = 16 -RC_GDI20_STATE = 32 -RC_SAVEBITMAP = 64 -RC_DI_BITMAP = 128 -RC_PALETTE = 256 -RC_DIBTODEV = 512 -RC_BIGFONT = 1024 -RC_STRETCHBLT = 2048 -RC_FLOODFILL = 4096 -RC_STRETCHDIB = 8192 -RC_OP_DX_OUTPUT = 16384 -RC_DEVBITS = 32768 -DIB_RGB_COLORS = 0 -DIB_PAL_COLORS = 1 -DIB_PAL_INDICES = 2 -DIB_PAL_PHYSINDICES = 2 -DIB_PAL_LOGINDICES = 4 -SYSPAL_ERROR = 0 -SYSPAL_STATIC = 1 -SYSPAL_NOSTATIC = 2 -CBM_CREATEDIB = 2 -CBM_INIT = 4 -FLOODFILLBORDER = 0 -FLOODFILLSURFACE = 1 -CCHDEVICENAME = 32 -CCHFORMNAME = 32 -# Generated by h2py from \msvcnt\include\wingdi.h -# hacked and split manually by mhammond. - -# DEVMODE.dmFields -DM_SPECVERSION = 800 -DM_ORIENTATION = 1 -DM_PAPERSIZE = 2 -DM_PAPERLENGTH = 4 -DM_PAPERWIDTH = 8 -DM_SCALE = 16 -DM_POSITION = 32 -DM_NUP = 64 -DM_DISPLAYORIENTATION = 128 -DM_COPIES = 256 -DM_DEFAULTSOURCE = 512 -DM_PRINTQUALITY = 1024 -DM_COLOR = 2048 -DM_DUPLEX = 4096 -DM_YRESOLUTION = 8192 -DM_TTOPTION = 16384 -DM_COLLATE = 32768 -DM_FORMNAME = 65536 -DM_LOGPIXELS = 131072 -DM_BITSPERPEL = 262144 -DM_PELSWIDTH = 524288 -DM_PELSHEIGHT = 1048576 -DM_DISPLAYFLAGS = 2097152 -DM_DISPLAYFREQUENCY = 4194304 -DM_ICMMETHOD = 8388608 -DM_ICMINTENT = 16777216 -DM_MEDIATYPE = 33554432 -DM_DITHERTYPE = 67108864 -DM_PANNINGWIDTH = 134217728 -DM_PANNINGHEIGHT = 268435456 -DM_DISPLAYFIXEDOUTPUT = 536870912 - -# DEVMODE.dmOrientation -DMORIENT_PORTRAIT = 1 -DMORIENT_LANDSCAPE = 2 - -# DEVMODE.dmDisplayOrientation -DMDO_DEFAULT = 0 -DMDO_90 = 1 -DMDO_180 = 2 -DMDO_270 = 3 - -# DEVMODE.dmDisplayFixedOutput -DMDFO_DEFAULT = 0 -DMDFO_STRETCH = 1 -DMDFO_CENTER = 2 - -# DEVMODE.dmPaperSize -DMPAPER_LETTER = 1 -DMPAPER_LETTERSMALL = 2 -DMPAPER_TABLOID = 3 -DMPAPER_LEDGER = 4 -DMPAPER_LEGAL = 5 -DMPAPER_STATEMENT = 6 -DMPAPER_EXECUTIVE = 7 -DMPAPER_A3 = 8 -DMPAPER_A4 = 9 -DMPAPER_A4SMALL = 10 -DMPAPER_A5 = 11 -DMPAPER_B4 = 12 -DMPAPER_B5 = 13 -DMPAPER_FOLIO = 14 -DMPAPER_QUARTO = 15 -DMPAPER_10X14 = 16 -DMPAPER_11X17 = 17 -DMPAPER_NOTE = 18 -DMPAPER_ENV_9 = 19 -DMPAPER_ENV_10 = 20 -DMPAPER_ENV_11 = 21 -DMPAPER_ENV_12 = 22 -DMPAPER_ENV_14 = 23 -DMPAPER_CSHEET = 24 -DMPAPER_DSHEET = 25 -DMPAPER_ESHEET = 26 -DMPAPER_ENV_DL = 27 -DMPAPER_ENV_C5 = 28 -DMPAPER_ENV_C3 = 29 -DMPAPER_ENV_C4 = 30 -DMPAPER_ENV_C6 = 31 -DMPAPER_ENV_C65 = 32 -DMPAPER_ENV_B4 = 33 -DMPAPER_ENV_B5 = 34 -DMPAPER_ENV_B6 = 35 -DMPAPER_ENV_ITALY = 36 -DMPAPER_ENV_MONARCH = 37 -DMPAPER_ENV_PERSONAL = 38 -DMPAPER_FANFOLD_US = 39 -DMPAPER_FANFOLD_STD_GERMAN = 40 -DMPAPER_FANFOLD_LGL_GERMAN = 41 -DMPAPER_ISO_B4 = 42 -DMPAPER_JAPANESE_POSTCARD = 43 -DMPAPER_9X11 = 44 -DMPAPER_10X11 = 45 -DMPAPER_15X11 = 46 -DMPAPER_ENV_INVITE = 47 -DMPAPER_RESERVED_48 = 48 -DMPAPER_RESERVED_49 = 49 -DMPAPER_LETTER_EXTRA = 50 -DMPAPER_LEGAL_EXTRA = 51 -DMPAPER_TABLOID_EXTRA = 52 -DMPAPER_A4_EXTRA = 53 -DMPAPER_LETTER_TRANSVERSE = 54 -DMPAPER_A4_TRANSVERSE = 55 -DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 -DMPAPER_A_PLUS = 57 -DMPAPER_B_PLUS = 58 -DMPAPER_LETTER_PLUS = 59 -DMPAPER_A4_PLUS = 60 -DMPAPER_A5_TRANSVERSE = 61 -DMPAPER_B5_TRANSVERSE = 62 -DMPAPER_A3_EXTRA = 63 -DMPAPER_A5_EXTRA = 64 -DMPAPER_B5_EXTRA = 65 -DMPAPER_A2 = 66 -DMPAPER_A3_TRANSVERSE = 67 -DMPAPER_A3_EXTRA_TRANSVERSE = 68 -DMPAPER_DBL_JAPANESE_POSTCARD = 69 -DMPAPER_A6 = 70 -DMPAPER_JENV_KAKU2 = 71 -DMPAPER_JENV_KAKU3 = 72 -DMPAPER_JENV_CHOU3 = 73 -DMPAPER_JENV_CHOU4 = 74 -DMPAPER_LETTER_ROTATED = 75 -DMPAPER_A3_ROTATED = 76 -DMPAPER_A4_ROTATED = 77 -DMPAPER_A5_ROTATED = 78 -DMPAPER_B4_JIS_ROTATED = 79 -DMPAPER_B5_JIS_ROTATED = 80 -DMPAPER_JAPANESE_POSTCARD_ROTATED = 81 -DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82 -DMPAPER_A6_ROTATED = 83 -DMPAPER_JENV_KAKU2_ROTATED = 84 -DMPAPER_JENV_KAKU3_ROTATED = 85 -DMPAPER_JENV_CHOU3_ROTATED = 86 -DMPAPER_JENV_CHOU4_ROTATED = 87 -DMPAPER_B6_JIS = 88 -DMPAPER_B6_JIS_ROTATED = 89 -DMPAPER_12X11 = 90 -DMPAPER_JENV_YOU4 = 91 -DMPAPER_JENV_YOU4_ROTATED = 92 -DMPAPER_P16K = 93 -DMPAPER_P32K = 94 -DMPAPER_P32KBIG = 95 -DMPAPER_PENV_1 = 96 -DMPAPER_PENV_2 = 97 -DMPAPER_PENV_3 = 98 -DMPAPER_PENV_4 = 99 -DMPAPER_PENV_5 = 100 -DMPAPER_PENV_6 = 101 -DMPAPER_PENV_7 = 102 -DMPAPER_PENV_8 = 103 -DMPAPER_PENV_9 = 104 -DMPAPER_PENV_10 = 105 -DMPAPER_P16K_ROTATED = 106 -DMPAPER_P32K_ROTATED = 107 -DMPAPER_P32KBIG_ROTATED = 108 -DMPAPER_PENV_1_ROTATED = 109 -DMPAPER_PENV_2_ROTATED = 110 -DMPAPER_PENV_3_ROTATED = 111 -DMPAPER_PENV_4_ROTATED = 112 -DMPAPER_PENV_5_ROTATED = 113 -DMPAPER_PENV_6_ROTATED = 114 -DMPAPER_PENV_7_ROTATED = 115 -DMPAPER_PENV_8_ROTATED = 116 -DMPAPER_PENV_9_ROTATED = 117 -DMPAPER_PENV_10_ROTATED = 118 -DMPAPER_LAST = DMPAPER_PENV_10_ROTATED -DMPAPER_USER = 256 - -# DEVMODE.dmDefaultSource -DMBIN_UPPER = 1 -DMBIN_ONLYONE = 1 -DMBIN_LOWER = 2 -DMBIN_MIDDLE = 3 -DMBIN_MANUAL = 4 -DMBIN_ENVELOPE = 5 -DMBIN_ENVMANUAL = 6 -DMBIN_AUTO = 7 -DMBIN_TRACTOR = 8 -DMBIN_SMALLFMT = 9 -DMBIN_LARGEFMT = 10 -DMBIN_LARGECAPACITY = 11 -DMBIN_CASSETTE = 14 -DMBIN_FORMSOURCE = 15 -DMBIN_LAST = DMBIN_FORMSOURCE -DMBIN_USER = 256 - -# DEVMODE.dmPrintQuality -DMRES_DRAFT = (-1) -DMRES_LOW = (-2) -DMRES_MEDIUM = (-3) -DMRES_HIGH = (-4) - -# DEVMODE.dmColor -DMCOLOR_MONOCHROME = 1 -DMCOLOR_COLOR = 2 - -# DEVMODE.dmDuplex -DMDUP_SIMPLEX = 1 -DMDUP_VERTICAL = 2 -DMDUP_HORIZONTAL = 3 - -# DEVMODE.dmTTOption -DMTT_BITMAP = 1 -DMTT_DOWNLOAD = 2 -DMTT_SUBDEV = 3 -DMTT_DOWNLOAD_OUTLINE = 4 - -# DEVMODE.dmCollate -DMCOLLATE_FALSE = 0 -DMCOLLATE_TRUE = 1 - -# DEVMODE.dmDisplayFlags -DM_GRAYSCALE = 1 -DM_INTERLACED = 2 - -# DEVMODE.dmICMMethod -DMICMMETHOD_NONE = 1 -DMICMMETHOD_SYSTEM = 2 -DMICMMETHOD_DRIVER = 3 -DMICMMETHOD_DEVICE = 4 -DMICMMETHOD_USER = 256 - -# DEVMODE.dmICMIntent -DMICM_SATURATE = 1 -DMICM_CONTRAST = 2 -DMICM_COLORIMETRIC = 3 -DMICM_ABS_COLORIMETRIC = 4 -DMICM_USER = 256 - -# DEVMODE.dmMediaType -DMMEDIA_STANDARD = 1 -DMMEDIA_TRANSPARENCY = 2 -DMMEDIA_GLOSSY = 3 -DMMEDIA_USER = 256 - -# DEVMODE.dmDitherType -DMDITHER_NONE = 1 -DMDITHER_COARSE = 2 -DMDITHER_FINE = 3 -DMDITHER_LINEART = 4 -DMDITHER_ERRORDIFFUSION = 5 -DMDITHER_RESERVED6 = 6 -DMDITHER_RESERVED7 = 7 -DMDITHER_RESERVED8 = 8 -DMDITHER_RESERVED9 = 9 -DMDITHER_GRAYSCALE = 10 -DMDITHER_USER = 256 - -# DEVMODE.dmNup -DMNUP_SYSTEM = 1 -DMNUP_ONEUP = 2 - -# used with ExtEscape -FEATURESETTING_NUP = 0 -FEATURESETTING_OUTPUT = 1 -FEATURESETTING_PSLEVEL = 2 -FEATURESETTING_CUSTPAPER = 3 -FEATURESETTING_MIRROR = 4 -FEATURESETTING_NEGATIVE = 5 -FEATURESETTING_PROTOCOL = 6 -FEATURESETTING_PRIVATE_BEGIN = 0x1000 -FEATURESETTING_PRIVATE_END = 0x1FFF - -RDH_RECTANGLES = 1 -GGO_METRICS = 0 -GGO_BITMAP = 1 -GGO_NATIVE = 2 -TT_POLYGON_TYPE = 24 -TT_PRIM_LINE = 1 -TT_PRIM_QSPLINE = 2 -TT_AVAILABLE = 1 -TT_ENABLED = 2 -DM_UPDATE = 1 -DM_COPY = 2 -DM_PROMPT = 4 -DM_MODIFY = 8 -DM_IN_BUFFER = DM_MODIFY -DM_IN_PROMPT = DM_PROMPT -DM_OUT_BUFFER = DM_COPY -DM_OUT_DEFAULT = DM_UPDATE - -# DISPLAY_DEVICE.StateFlags -DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 1 -DISPLAY_DEVICE_MULTI_DRIVER = 2 -DISPLAY_DEVICE_PRIMARY_DEVICE = 4 -DISPLAY_DEVICE_MIRRORING_DRIVER = 8 -DISPLAY_DEVICE_VGA_COMPATIBLE = 16 -DISPLAY_DEVICE_REMOVABLE = 32 -DISPLAY_DEVICE_MODESPRUNED = 134217728 -DISPLAY_DEVICE_REMOTE = 67108864 -DISPLAY_DEVICE_DISCONNECT = 33554432 - -# DeviceCapabilities types -DC_FIELDS = 1 -DC_PAPERS = 2 -DC_PAPERSIZE = 3 -DC_MINEXTENT = 4 -DC_MAXEXTENT = 5 -DC_BINS = 6 -DC_DUPLEX = 7 -DC_SIZE = 8 -DC_EXTRA = 9 -DC_VERSION = 10 -DC_DRIVER = 11 -DC_BINNAMES = 12 -DC_ENUMRESOLUTIONS = 13 -DC_FILEDEPENDENCIES = 14 -DC_TRUETYPE = 15 -DC_PAPERNAMES = 16 -DC_ORIENTATION = 17 -DC_COPIES = 18 -DC_BINADJUST = 19 -DC_EMF_COMPLIANT = 20 -DC_DATATYPE_PRODUCED = 21 -DC_COLLATE = 22 -DC_MANUFACTURER = 23 -DC_MODEL = 24 -DC_PERSONALITY = 25 -DC_PRINTRATE = 26 -DC_PRINTRATEUNIT = 27 -DC_PRINTERMEM = 28 -DC_MEDIAREADY = 29 -DC_STAPLE = 30 -DC_PRINTRATEPPM = 31 -DC_COLORDEVICE = 32 -DC_NUP = 33 -DC_MEDIATYPENAMES = 34 -DC_MEDIATYPES = 35 - -PRINTRATEUNIT_PPM = 1 -PRINTRATEUNIT_CPS = 2 -PRINTRATEUNIT_LPM = 3 -PRINTRATEUNIT_IPM = 4 - -# TrueType constants -DCTT_BITMAP = 1 -DCTT_DOWNLOAD = 2 -DCTT_SUBDEV = 4 -DCTT_DOWNLOAD_OUTLINE = 8 - -DCBA_FACEUPNONE = 0 -DCBA_FACEUPCENTER = 1 -DCBA_FACEUPLEFT = 2 -DCBA_FACEUPRIGHT = 3 -DCBA_FACEDOWNNONE = 256 -DCBA_FACEDOWNCENTER = 257 -DCBA_FACEDOWNLEFT = 258 -DCBA_FACEDOWNRIGHT = 259 - -CA_NEGATIVE = 1 -CA_LOG_FILTER = 2 -ILLUMINANT_DEVICE_DEFAULT = 0 -ILLUMINANT_A = 1 -ILLUMINANT_B = 2 -ILLUMINANT_C = 3 -ILLUMINANT_D50 = 4 -ILLUMINANT_D55 = 5 -ILLUMINANT_D65 = 6 -ILLUMINANT_D75 = 7 -ILLUMINANT_F2 = 8 -ILLUMINANT_MAX_INDEX = ILLUMINANT_F2 -ILLUMINANT_TUNGSTEN = ILLUMINANT_A -ILLUMINANT_DAYLIGHT = ILLUMINANT_C -ILLUMINANT_FLUORESCENT = ILLUMINANT_F2 -ILLUMINANT_NTSC = ILLUMINANT_C - -# Generated by h2py from \msvcnt\include\wingdi.h -# hacked and split manually by mhammond. -FONTMAPPER_MAX = 10 -ENHMETA_SIGNATURE = 1179469088 -ENHMETA_STOCK_OBJECT = -2147483648 -EMR_HEADER = 1 -EMR_POLYBEZIER = 2 -EMR_POLYGON = 3 -EMR_POLYLINE = 4 -EMR_POLYBEZIERTO = 5 -EMR_POLYLINETO = 6 -EMR_POLYPOLYLINE = 7 -EMR_POLYPOLYGON = 8 -EMR_SETWINDOWEXTEX = 9 -EMR_SETWINDOWORGEX = 10 -EMR_SETVIEWPORTEXTEX = 11 -EMR_SETVIEWPORTORGEX = 12 -EMR_SETBRUSHORGEX = 13 -EMR_EOF = 14 -EMR_SETPIXELV = 15 -EMR_SETMAPPERFLAGS = 16 -EMR_SETMAPMODE = 17 -EMR_SETBKMODE = 18 -EMR_SETPOLYFILLMODE = 19 -EMR_SETROP2 = 20 -EMR_SETSTRETCHBLTMODE = 21 -EMR_SETTEXTALIGN = 22 -EMR_SETCOLORADJUSTMENT = 23 -EMR_SETTEXTCOLOR = 24 -EMR_SETBKCOLOR = 25 -EMR_OFFSETCLIPRGN = 26 -EMR_MOVETOEX = 27 -EMR_SETMETARGN = 28 -EMR_EXCLUDECLIPRECT = 29 -EMR_INTERSECTCLIPRECT = 30 -EMR_SCALEVIEWPORTEXTEX = 31 -EMR_SCALEWINDOWEXTEX = 32 -EMR_SAVEDC = 33 -EMR_RESTOREDC = 34 -EMR_SETWORLDTRANSFORM = 35 -EMR_MODIFYWORLDTRANSFORM = 36 -EMR_SELECTOBJECT = 37 -EMR_CREATEPEN = 38 -EMR_CREATEBRUSHINDIRECT = 39 -EMR_DELETEOBJECT = 40 -EMR_ANGLEARC = 41 -EMR_ELLIPSE = 42 -EMR_RECTANGLE = 43 -EMR_ROUNDRECT = 44 -EMR_ARC = 45 -EMR_CHORD = 46 -EMR_PIE = 47 -EMR_SELECTPALETTE = 48 -EMR_CREATEPALETTE = 49 -EMR_SETPALETTEENTRIES = 50 -EMR_RESIZEPALETTE = 51 -EMR_REALIZEPALETTE = 52 -EMR_EXTFLOODFILL = 53 -EMR_LINETO = 54 -EMR_ARCTO = 55 -EMR_POLYDRAW = 56 -EMR_SETARCDIRECTION = 57 -EMR_SETMITERLIMIT = 58 -EMR_BEGINPATH = 59 -EMR_ENDPATH = 60 -EMR_CLOSEFIGURE = 61 -EMR_FILLPATH = 62 -EMR_STROKEANDFILLPATH = 63 -EMR_STROKEPATH = 64 -EMR_FLATTENPATH = 65 -EMR_WIDENPATH = 66 -EMR_SELECTCLIPPATH = 67 -EMR_ABORTPATH = 68 -EMR_GDICOMMENT = 70 -EMR_FILLRGN = 71 -EMR_FRAMERGN = 72 -EMR_INVERTRGN = 73 -EMR_PAINTRGN = 74 -EMR_EXTSELECTCLIPRGN = 75 -EMR_BITBLT = 76 -EMR_STRETCHBLT = 77 -EMR_MASKBLT = 78 -EMR_PLGBLT = 79 -EMR_SETDIBITSTODEVICE = 80 -EMR_STRETCHDIBITS = 81 -EMR_EXTCREATEFONTINDIRECTW = 82 -EMR_EXTTEXTOUTA = 83 -EMR_EXTTEXTOUTW = 84 -EMR_POLYBEZIER16 = 85 -EMR_POLYGON16 = 86 -EMR_POLYLINE16 = 87 -EMR_POLYBEZIERTO16 = 88 -EMR_POLYLINETO16 = 89 -EMR_POLYPOLYLINE16 = 90 -EMR_POLYPOLYGON16 = 91 -EMR_POLYDRAW16 = 92 -EMR_CREATEMONOBRUSH = 93 -EMR_CREATEDIBPATTERNBRUSHPT = 94 -EMR_EXTCREATEPEN = 95 -EMR_POLYTEXTOUTA = 96 -EMR_POLYTEXTOUTW = 97 -EMR_MIN = 1 -EMR_MAX = 97 -# Generated by h2py from \msvcnt\include\wingdi.h -# hacked and split manually by mhammond. -PANOSE_COUNT = 10 -PAN_FAMILYTYPE_INDEX = 0 -PAN_SERIFSTYLE_INDEX = 1 -PAN_WEIGHT_INDEX = 2 -PAN_PROPORTION_INDEX = 3 -PAN_CONTRAST_INDEX = 4 -PAN_STROKEVARIATION_INDEX = 5 -PAN_ARMSTYLE_INDEX = 6 -PAN_LETTERFORM_INDEX = 7 -PAN_MIDLINE_INDEX = 8 -PAN_XHEIGHT_INDEX = 9 -PAN_CULTURE_LATIN = 0 -PAN_ANY = 0 -PAN_NO_FIT = 1 -PAN_FAMILY_TEXT_DISPLAY = 2 -PAN_FAMILY_SCRIPT = 3 -PAN_FAMILY_DECORATIVE = 4 -PAN_FAMILY_PICTORIAL = 5 -PAN_SERIF_COVE = 2 -PAN_SERIF_OBTUSE_COVE = 3 -PAN_SERIF_SQUARE_COVE = 4 -PAN_SERIF_OBTUSE_SQUARE_COVE = 5 -PAN_SERIF_SQUARE = 6 -PAN_SERIF_THIN = 7 -PAN_SERIF_BONE = 8 -PAN_SERIF_EXAGGERATED = 9 -PAN_SERIF_TRIANGLE = 10 -PAN_SERIF_NORMAL_SANS = 11 -PAN_SERIF_OBTUSE_SANS = 12 -PAN_SERIF_PERP_SANS = 13 -PAN_SERIF_FLARED = 14 -PAN_SERIF_ROUNDED = 15 -PAN_WEIGHT_VERY_LIGHT = 2 -PAN_WEIGHT_LIGHT = 3 -PAN_WEIGHT_THIN = 4 -PAN_WEIGHT_BOOK = 5 -PAN_WEIGHT_MEDIUM = 6 -PAN_WEIGHT_DEMI = 7 -PAN_WEIGHT_BOLD = 8 -PAN_WEIGHT_HEAVY = 9 -PAN_WEIGHT_BLACK = 10 -PAN_WEIGHT_NORD = 11 -PAN_PROP_OLD_STYLE = 2 -PAN_PROP_MODERN = 3 -PAN_PROP_EVEN_WIDTH = 4 -PAN_PROP_EXPANDED = 5 -PAN_PROP_CONDENSED = 6 -PAN_PROP_VERY_EXPANDED = 7 -PAN_PROP_VERY_CONDENSED = 8 -PAN_PROP_MONOSPACED = 9 -PAN_CONTRAST_NONE = 2 -PAN_CONTRAST_VERY_LOW = 3 -PAN_CONTRAST_LOW = 4 -PAN_CONTRAST_MEDIUM_LOW = 5 -PAN_CONTRAST_MEDIUM = 6 -PAN_CONTRAST_MEDIUM_HIGH = 7 -PAN_CONTRAST_HIGH = 8 -PAN_CONTRAST_VERY_HIGH = 9 -PAN_STROKE_GRADUAL_DIAG = 2 -PAN_STROKE_GRADUAL_TRAN = 3 -PAN_STROKE_GRADUAL_VERT = 4 -PAN_STROKE_GRADUAL_HORZ = 5 -PAN_STROKE_RAPID_VERT = 6 -PAN_STROKE_RAPID_HORZ = 7 -PAN_STROKE_INSTANT_VERT = 8 -PAN_STRAIGHT_ARMS_HORZ = 2 -PAN_STRAIGHT_ARMS_WEDGE = 3 -PAN_STRAIGHT_ARMS_VERT = 4 -PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 -PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 -PAN_BENT_ARMS_HORZ = 7 -PAN_BENT_ARMS_WEDGE = 8 -PAN_BENT_ARMS_VERT = 9 -PAN_BENT_ARMS_SINGLE_SERIF = 10 -PAN_BENT_ARMS_DOUBLE_SERIF = 11 -PAN_LETT_NORMAL_CONTACT = 2 -PAN_LETT_NORMAL_WEIGHTED = 3 -PAN_LETT_NORMAL_BOXED = 4 -PAN_LETT_NORMAL_FLATTENED = 5 -PAN_LETT_NORMAL_ROUNDED = 6 -PAN_LETT_NORMAL_OFF_CENTER = 7 -PAN_LETT_NORMAL_SQUARE = 8 -PAN_LETT_OBLIQUE_CONTACT = 9 -PAN_LETT_OBLIQUE_WEIGHTED = 10 -PAN_LETT_OBLIQUE_BOXED = 11 -PAN_LETT_OBLIQUE_FLATTENED = 12 -PAN_LETT_OBLIQUE_ROUNDED = 13 -PAN_LETT_OBLIQUE_OFF_CENTER = 14 -PAN_LETT_OBLIQUE_SQUARE = 15 -PAN_MIDLINE_STANDARD_TRIMMED = 2 -PAN_MIDLINE_STANDARD_POINTED = 3 -PAN_MIDLINE_STANDARD_SERIFED = 4 -PAN_MIDLINE_HIGH_TRIMMED = 5 -PAN_MIDLINE_HIGH_POINTED = 6 -PAN_MIDLINE_HIGH_SERIFED = 7 -PAN_MIDLINE_CONSTANT_TRIMMED = 8 -PAN_MIDLINE_CONSTANT_POINTED = 9 -PAN_MIDLINE_CONSTANT_SERIFED = 10 -PAN_MIDLINE_LOW_TRIMMED = 11 -PAN_MIDLINE_LOW_POINTED = 12 -PAN_MIDLINE_LOW_SERIFED = 13 -PAN_XHEIGHT_CONSTANT_SMALL = 2 -PAN_XHEIGHT_CONSTANT_STD = 3 -PAN_XHEIGHT_CONSTANT_LARGE = 4 -PAN_XHEIGHT_DUCKING_SMALL = 5 -PAN_XHEIGHT_DUCKING_STD = 6 -PAN_XHEIGHT_DUCKING_LARGE = 7 -ELF_VENDOR_SIZE = 4 -ELF_VERSION = 0 -ELF_CULTURE_LATIN = 0 -RASTER_FONTTYPE = 1 -DEVICE_FONTTYPE = 2 -TRUETYPE_FONTTYPE = 4 -def PALETTEINDEX(i): return ((16777216 | (i))) - -PC_RESERVED = 1 -PC_EXPLICIT = 2 -PC_NOCOLLAPSE = 4 -def GetRValue(rgb): return rgb & 0xff - -def GetGValue(rgb): return (rgb >> 8) & 0xff - -def GetBValue(rgb): return (rgb >> 16) & 0xff - -TRANSPARENT = 1 -OPAQUE = 2 -BKMODE_LAST = 2 -GM_COMPATIBLE = 1 -GM_ADVANCED = 2 -GM_LAST = 2 -PT_CLOSEFIGURE = 1 -PT_LINETO = 2 -PT_BEZIERTO = 4 -PT_MOVETO = 6 -MM_TEXT = 1 -MM_LOMETRIC = 2 -MM_HIMETRIC = 3 -MM_LOENGLISH = 4 -MM_HIENGLISH = 5 -MM_TWIPS = 6 -MM_ISOTROPIC = 7 -MM_ANISOTROPIC = 8 -MM_MIN = MM_TEXT -MM_MAX = MM_ANISOTROPIC -MM_MAX_FIXEDSCALE = MM_TWIPS -ABSOLUTE = 1 -RELATIVE = 2 -WHITE_BRUSH = 0 -LTGRAY_BRUSH = 1 -GRAY_BRUSH = 2 -DKGRAY_BRUSH = 3 -BLACK_BRUSH = 4 -NULL_BRUSH = 5 -HOLLOW_BRUSH = NULL_BRUSH -WHITE_PEN = 6 -BLACK_PEN = 7 -NULL_PEN = 8 -OEM_FIXED_FONT = 10 -ANSI_FIXED_FONT = 11 -ANSI_VAR_FONT = 12 -SYSTEM_FONT = 13 -DEVICE_DEFAULT_FONT = 14 -DEFAULT_PALETTE = 15 -SYSTEM_FIXED_FONT = 16 -STOCK_LAST = 16 -CLR_INVALID = -1 - -DC_BRUSH = 18 -DC_PEN = 19 - -# Exception/Status codes from winuser.h and winnt.h -STATUS_WAIT_0 = 0 -STATUS_ABANDONED_WAIT_0 = 128 -STATUS_USER_APC = 192 -STATUS_TIMEOUT = 258 -STATUS_PENDING = 259 -STATUS_SEGMENT_NOTIFICATION = 1073741829 -STATUS_GUARD_PAGE_VIOLATION = -2147483647 -STATUS_DATATYPE_MISALIGNMENT = -2147483646 -STATUS_BREAKPOINT = -2147483645 -STATUS_SINGLE_STEP = -2147483644 -STATUS_ACCESS_VIOLATION = -1073741819 -STATUS_IN_PAGE_ERROR = -1073741818 -STATUS_INVALID_HANDLE = -1073741816 -STATUS_NO_MEMORY = -1073741801 -STATUS_ILLEGAL_INSTRUCTION = -1073741795 -STATUS_NONCONTINUABLE_EXCEPTION = -1073741787 -STATUS_INVALID_DISPOSITION = -1073741786 -STATUS_ARRAY_BOUNDS_EXCEEDED = -1073741684 -STATUS_FLOAT_DENORMAL_OPERAND = -1073741683 -STATUS_FLOAT_DIVIDE_BY_ZERO = -1073741682 -STATUS_FLOAT_INEXACT_RESULT = -1073741681 -STATUS_FLOAT_INVALID_OPERATION = -1073741680 -STATUS_FLOAT_OVERFLOW = -1073741679 -STATUS_FLOAT_STACK_CHECK = -1073741678 -STATUS_FLOAT_UNDERFLOW = -1073741677 -STATUS_INTEGER_DIVIDE_BY_ZERO = -1073741676 -STATUS_INTEGER_OVERFLOW = -1073741675 -STATUS_PRIVILEGED_INSTRUCTION = -1073741674 -STATUS_STACK_OVERFLOW = -1073741571 -STATUS_CONTROL_C_EXIT = -1073741510 - - -WAIT_FAILED = -1 -WAIT_OBJECT_0 = STATUS_WAIT_0 + 0 - -WAIT_ABANDONED = STATUS_ABANDONED_WAIT_0 + 0 -WAIT_ABANDONED_0 = STATUS_ABANDONED_WAIT_0 + 0 - -WAIT_TIMEOUT = STATUS_TIMEOUT -WAIT_IO_COMPLETION = STATUS_USER_APC -STILL_ACTIVE = STATUS_PENDING -EXCEPTION_ACCESS_VIOLATION = STATUS_ACCESS_VIOLATION -EXCEPTION_DATATYPE_MISALIGNMENT = STATUS_DATATYPE_MISALIGNMENT -EXCEPTION_BREAKPOINT = STATUS_BREAKPOINT -EXCEPTION_SINGLE_STEP = STATUS_SINGLE_STEP -EXCEPTION_ARRAY_BOUNDS_EXCEEDED = STATUS_ARRAY_BOUNDS_EXCEEDED -EXCEPTION_FLT_DENORMAL_OPERAND = STATUS_FLOAT_DENORMAL_OPERAND -EXCEPTION_FLT_DIVIDE_BY_ZERO = STATUS_FLOAT_DIVIDE_BY_ZERO -EXCEPTION_FLT_INEXACT_RESULT = STATUS_FLOAT_INEXACT_RESULT -EXCEPTION_FLT_INVALID_OPERATION = STATUS_FLOAT_INVALID_OPERATION -EXCEPTION_FLT_OVERFLOW = STATUS_FLOAT_OVERFLOW -EXCEPTION_FLT_STACK_CHECK = STATUS_FLOAT_STACK_CHECK -EXCEPTION_FLT_UNDERFLOW = STATUS_FLOAT_UNDERFLOW -EXCEPTION_INT_DIVIDE_BY_ZERO = STATUS_INTEGER_DIVIDE_BY_ZERO -EXCEPTION_INT_OVERFLOW = STATUS_INTEGER_OVERFLOW -EXCEPTION_PRIV_INSTRUCTION = STATUS_PRIVILEGED_INSTRUCTION -EXCEPTION_IN_PAGE_ERROR = STATUS_IN_PAGE_ERROR -EXCEPTION_ILLEGAL_INSTRUCTION = STATUS_ILLEGAL_INSTRUCTION -EXCEPTION_NONCONTINUABLE_EXCEPTION = STATUS_NONCONTINUABLE_EXCEPTION -EXCEPTION_STACK_OVERFLOW = STATUS_STACK_OVERFLOW -EXCEPTION_INVALID_DISPOSITION = STATUS_INVALID_DISPOSITION -EXCEPTION_GUARD_PAGE = STATUS_GUARD_PAGE_VIOLATION -EXCEPTION_INVALID_HANDLE = STATUS_INVALID_HANDLE -CONTROL_C_EXIT = STATUS_CONTROL_C_EXIT - -# winuser.h line 8594 -# constants used with SystemParametersInfo -SPI_GETBEEP = 1 -SPI_SETBEEP = 2 -SPI_GETMOUSE = 3 -SPI_SETMOUSE = 4 -SPI_GETBORDER = 5 -SPI_SETBORDER = 6 -SPI_GETKEYBOARDSPEED = 10 -SPI_SETKEYBOARDSPEED = 11 -SPI_LANGDRIVER = 12 -SPI_ICONHORIZONTALSPACING = 13 -SPI_GETSCREENSAVETIMEOUT = 14 -SPI_SETSCREENSAVETIMEOUT = 15 -SPI_GETSCREENSAVEACTIVE = 16 -SPI_SETSCREENSAVEACTIVE = 17 -SPI_GETGRIDGRANULARITY = 18 -SPI_SETGRIDGRANULARITY = 19 -SPI_SETDESKWALLPAPER = 20 -SPI_SETDESKPATTERN = 21 -SPI_GETKEYBOARDDELAY = 22 -SPI_SETKEYBOARDDELAY = 23 -SPI_ICONVERTICALSPACING = 24 -SPI_GETICONTITLEWRAP = 25 -SPI_SETICONTITLEWRAP = 26 -SPI_GETMENUDROPALIGNMENT = 27 -SPI_SETMENUDROPALIGNMENT = 28 -SPI_SETDOUBLECLKWIDTH = 29 -SPI_SETDOUBLECLKHEIGHT = 30 -SPI_GETICONTITLELOGFONT = 31 -SPI_SETDOUBLECLICKTIME = 32 -SPI_SETMOUSEBUTTONSWAP = 33 -SPI_SETICONTITLELOGFONT = 34 -SPI_GETFASTTASKSWITCH = 35 -SPI_SETFASTTASKSWITCH = 36 -SPI_SETDRAGFULLWINDOWS = 37 -SPI_GETDRAGFULLWINDOWS = 38 -SPI_GETNONCLIENTMETRICS = 41 -SPI_SETNONCLIENTMETRICS = 42 -SPI_GETMINIMIZEDMETRICS = 43 -SPI_SETMINIMIZEDMETRICS = 44 -SPI_GETICONMETRICS = 45 -SPI_SETICONMETRICS = 46 -SPI_SETWORKAREA = 47 -SPI_GETWORKAREA = 48 -SPI_SETPENWINDOWS = 49 -SPI_GETFILTERKEYS = 50 -SPI_SETFILTERKEYS = 51 -SPI_GETTOGGLEKEYS = 52 -SPI_SETTOGGLEKEYS = 53 -SPI_GETMOUSEKEYS = 54 -SPI_SETMOUSEKEYS = 55 -SPI_GETSHOWSOUNDS = 56 -SPI_SETSHOWSOUNDS = 57 -SPI_GETSTICKYKEYS = 58 -SPI_SETSTICKYKEYS = 59 -SPI_GETACCESSTIMEOUT = 60 -SPI_SETACCESSTIMEOUT = 61 -SPI_GETSERIALKEYS = 62 -SPI_SETSERIALKEYS = 63 -SPI_GETSOUNDSENTRY = 64 -SPI_SETSOUNDSENTRY = 65 -SPI_GETHIGHCONTRAST = 66 -SPI_SETHIGHCONTRAST = 67 -SPI_GETKEYBOARDPREF = 68 -SPI_SETKEYBOARDPREF = 69 -SPI_GETSCREENREADER = 70 -SPI_SETSCREENREADER = 71 -SPI_GETANIMATION = 72 -SPI_SETANIMATION = 73 -SPI_GETFONTSMOOTHING = 74 -SPI_SETFONTSMOOTHING = 75 -SPI_SETDRAGWIDTH = 76 -SPI_SETDRAGHEIGHT = 77 -SPI_SETHANDHELD = 78 -SPI_GETLOWPOWERTIMEOUT = 79 -SPI_GETPOWEROFFTIMEOUT = 80 -SPI_SETLOWPOWERTIMEOUT = 81 -SPI_SETPOWEROFFTIMEOUT = 82 -SPI_GETLOWPOWERACTIVE = 83 -SPI_GETPOWEROFFACTIVE = 84 -SPI_SETLOWPOWERACTIVE = 85 -SPI_SETPOWEROFFACTIVE = 86 -SPI_SETCURSORS = 87 -SPI_SETICONS = 88 -SPI_GETDEFAULTINPUTLANG = 89 -SPI_SETDEFAULTINPUTLANG = 90 -SPI_SETLANGTOGGLE = 91 -SPI_GETWINDOWSEXTENSION = 92 -SPI_SETMOUSETRAILS = 93 -SPI_GETMOUSETRAILS = 94 -SPI_GETSNAPTODEFBUTTON = 95 -SPI_SETSNAPTODEFBUTTON = 96 -SPI_SETSCREENSAVERRUNNING = 97 -SPI_SCREENSAVERRUNNING = SPI_SETSCREENSAVERRUNNING -SPI_GETMOUSEHOVERWIDTH = 98 -SPI_SETMOUSEHOVERWIDTH = 99 -SPI_GETMOUSEHOVERHEIGHT = 100 -SPI_SETMOUSEHOVERHEIGHT = 101 -SPI_GETMOUSEHOVERTIME = 102 -SPI_SETMOUSEHOVERTIME = 103 -SPI_GETWHEELSCROLLLINES = 104 -SPI_SETWHEELSCROLLLINES = 105 -SPI_GETMENUSHOWDELAY = 106 -SPI_SETMENUSHOWDELAY = 107 - -SPI_GETSHOWIMEUI = 110 -SPI_SETSHOWIMEUI = 111 -SPI_GETMOUSESPEED = 112 -SPI_SETMOUSESPEED = 113 -SPI_GETSCREENSAVERRUNNING = 114 -SPI_GETDESKWALLPAPER = 115 - -SPI_GETACTIVEWINDOWTRACKING = 4096 -SPI_SETACTIVEWINDOWTRACKING = 4097 -SPI_GETMENUANIMATION = 4098 -SPI_SETMENUANIMATION = 4099 -SPI_GETCOMBOBOXANIMATION = 4100 -SPI_SETCOMBOBOXANIMATION = 4101 -SPI_GETLISTBOXSMOOTHSCROLLING = 4102 -SPI_SETLISTBOXSMOOTHSCROLLING = 4103 -SPI_GETGRADIENTCAPTIONS = 4104 -SPI_SETGRADIENTCAPTIONS = 4105 -SPI_GETKEYBOARDCUES = 4106 -SPI_SETKEYBOARDCUES = 4107 -SPI_GETMENUUNDERLINES = 4106 -SPI_SETMENUUNDERLINES = 4107 -SPI_GETACTIVEWNDTRKZORDER = 4108 -SPI_SETACTIVEWNDTRKZORDER = 4109 -SPI_GETHOTTRACKING = 4110 -SPI_SETHOTTRACKING = 4111 - -SPI_GETMENUFADE = 4114 -SPI_SETMENUFADE = 4115 -SPI_GETSELECTIONFADE = 4116 -SPI_SETSELECTIONFADE = 4117 -SPI_GETTOOLTIPANIMATION = 4118 -SPI_SETTOOLTIPANIMATION = 4119 -SPI_GETTOOLTIPFADE = 4120 -SPI_SETTOOLTIPFADE = 4121 -SPI_GETCURSORSHADOW = 4122 -SPI_SETCURSORSHADOW = 4123 -SPI_GETMOUSESONAR = 4124 -SPI_SETMOUSESONAR = 4125 -SPI_GETMOUSECLICKLOCK = 4126 -SPI_SETMOUSECLICKLOCK = 4127 -SPI_GETMOUSEVANISH = 4128 -SPI_SETMOUSEVANISH = 4129 -SPI_GETFLATMENU = 4130 -SPI_SETFLATMENU = 4131 -SPI_GETDROPSHADOW = 4132 -SPI_SETDROPSHADOW = 4133 -SPI_GETBLOCKSENDINPUTRESETS = 4134 -SPI_SETBLOCKSENDINPUTRESETS = 4135 -SPI_GETUIEFFECTS = 4158 -SPI_SETUIEFFECTS = 4159 - -SPI_GETFOREGROUNDLOCKTIMEOUT = 8192 -SPI_SETFOREGROUNDLOCKTIMEOUT = 8193 -SPI_GETACTIVEWNDTRKTIMEOUT = 8194 -SPI_SETACTIVEWNDTRKTIMEOUT = 8195 -SPI_GETFOREGROUNDFLASHCOUNT = 8196 -SPI_SETFOREGROUNDFLASHCOUNT = 8197 -SPI_GETCARETWIDTH = 8198 -SPI_SETCARETWIDTH = 8199 -SPI_GETMOUSECLICKLOCKTIME = 8200 -SPI_SETMOUSECLICKLOCKTIME = 8201 -SPI_GETFONTSMOOTHINGTYPE = 8202 -SPI_SETFONTSMOOTHINGTYPE = 8203 -SPI_GETFONTSMOOTHINGCONTRAST = 8204 -SPI_SETFONTSMOOTHINGCONTRAST = 8205 -SPI_GETFOCUSBORDERWIDTH = 8206 -SPI_SETFOCUSBORDERWIDTH = 8207 -SPI_GETFOCUSBORDERHEIGHT = 8208 -SPI_SETFOCUSBORDERHEIGHT = 8209 -SPI_GETFONTSMOOTHINGORIENTATION = 8210 -SPI_SETFONTSMOOTHINGORIENTATION = 8211 - -# fWinIni flags for SystemParametersInfo -SPIF_UPDATEINIFILE = 1 -SPIF_SENDWININICHANGE = 2 -SPIF_SENDCHANGE = SPIF_SENDWININICHANGE - -# used with SystemParametersInfo and SPI_GETFONTSMOOTHINGTYPE/SPI_SETFONTSMOOTHINGTYPE -FE_FONTSMOOTHINGSTANDARD = 1 -FE_FONTSMOOTHINGCLEARTYPE = 2 -FE_FONTSMOOTHINGDOCKING = 32768 - -METRICS_USEDEFAULT = -1 -ARW_BOTTOMLEFT = 0 -ARW_BOTTOMRIGHT = 1 -ARW_TOPLEFT = 2 -ARW_TOPRIGHT = 3 -ARW_STARTMASK = 3 -ARW_STARTRIGHT = 1 -ARW_STARTTOP = 2 -ARW_LEFT = 0 -ARW_RIGHT = 0 -ARW_UP = 4 -ARW_DOWN = 4 -ARW_HIDE = 8 -#ARW_VALID = 0x000F -SERKF_SERIALKEYSON = 1 -SERKF_AVAILABLE = 2 -SERKF_INDICATOR = 4 -HCF_HIGHCONTRASTON = 1 -HCF_AVAILABLE = 2 -HCF_HOTKEYACTIVE = 4 -HCF_CONFIRMHOTKEY = 8 -HCF_HOTKEYSOUND = 16 -HCF_INDICATOR = 32 -HCF_HOTKEYAVAILABLE = 64 -CDS_UPDATEREGISTRY = 1 -CDS_TEST = 2 -CDS_FULLSCREEN = 4 -CDS_GLOBAL = 8 -CDS_SET_PRIMARY = 16 -CDS_RESET = 1073741824 -CDS_SETRECT = 536870912 -CDS_NORESET = 268435456 - -# return values from ChangeDisplaySettings and ChangeDisplaySettingsEx -DISP_CHANGE_SUCCESSFUL = 0 -DISP_CHANGE_RESTART = 1 -DISP_CHANGE_FAILED = -1 -DISP_CHANGE_BADMODE = -2 -DISP_CHANGE_NOTUPDATED = -3 -DISP_CHANGE_BADFLAGS = -4 -DISP_CHANGE_BADPARAM = -5 -DISP_CHANGE_BADDUALVIEW = -6 - -ENUM_CURRENT_SETTINGS = -1 -ENUM_REGISTRY_SETTINGS = -2 -FKF_FILTERKEYSON = 1 -FKF_AVAILABLE = 2 -FKF_HOTKEYACTIVE = 4 -FKF_CONFIRMHOTKEY = 8 -FKF_HOTKEYSOUND = 16 -FKF_INDICATOR = 32 -FKF_CLICKON = 64 -SKF_STICKYKEYSON = 1 -SKF_AVAILABLE = 2 -SKF_HOTKEYACTIVE = 4 -SKF_CONFIRMHOTKEY = 8 -SKF_HOTKEYSOUND = 16 -SKF_INDICATOR = 32 -SKF_AUDIBLEFEEDBACK = 64 -SKF_TRISTATE = 128 -SKF_TWOKEYSOFF = 256 -SKF_LALTLATCHED = 268435456 -SKF_LCTLLATCHED = 67108864 -SKF_LSHIFTLATCHED = 16777216 -SKF_RALTLATCHED = 536870912 -SKF_RCTLLATCHED = 134217728 -SKF_RSHIFTLATCHED = 33554432 -SKF_LWINLATCHED = 1073741824 -SKF_RWINLATCHED = -2147483648 -SKF_LALTLOCKED = 1048576 -SKF_LCTLLOCKED = 262144 -SKF_LSHIFTLOCKED = 65536 -SKF_RALTLOCKED = 2097152 -SKF_RCTLLOCKED = 524288 -SKF_RSHIFTLOCKED = 131072 -SKF_LWINLOCKED = 4194304 -SKF_RWINLOCKED = 8388608 -MKF_MOUSEKEYSON = 1 -MKF_AVAILABLE = 2 -MKF_HOTKEYACTIVE = 4 -MKF_CONFIRMHOTKEY = 8 -MKF_HOTKEYSOUND = 16 -MKF_INDICATOR = 32 -MKF_MODIFIERS = 64 -MKF_REPLACENUMBERS = 128 -MKF_LEFTBUTTONSEL = 268435456 -MKF_RIGHTBUTTONSEL = 536870912 -MKF_LEFTBUTTONDOWN = 16777216 -MKF_RIGHTBUTTONDOWN = 33554432 -MKF_MOUSEMODE = -2147483648 -ATF_TIMEOUTON = 1 -ATF_ONOFFFEEDBACK = 2 -SSGF_NONE = 0 -SSGF_DISPLAY = 3 -SSTF_NONE = 0 -SSTF_CHARS = 1 -SSTF_BORDER = 2 -SSTF_DISPLAY = 3 -SSWF_NONE = 0 -SSWF_TITLE = 1 -SSWF_WINDOW = 2 -SSWF_DISPLAY = 3 -SSWF_CUSTOM = 4 -SSF_SOUNDSENTRYON = 1 -SSF_AVAILABLE = 2 -SSF_INDICATOR = 4 -TKF_TOGGLEKEYSON = 1 -TKF_AVAILABLE = 2 -TKF_HOTKEYACTIVE = 4 -TKF_CONFIRMHOTKEY = 8 -TKF_HOTKEYSOUND = 16 -TKF_INDICATOR = 32 -SLE_ERROR = 1 -SLE_MINORERROR = 2 -SLE_WARNING = 3 -MONITOR_DEFAULTTONULL = 0 -MONITOR_DEFAULTTOPRIMARY = 1 -MONITOR_DEFAULTTONEAREST = 2 -MONITORINFOF_PRIMARY = 1 -CCHDEVICENAME = 32 -CHILDID_SELF = 0 -INDEXID_OBJECT = 0 -INDEXID_CONTAINER = 0 -OBJID_WINDOW = 0 -OBJID_SYSMENU = -1 -OBJID_TITLEBAR = -2 -OBJID_MENU = -3 -OBJID_CLIENT = -4 -OBJID_VSCROLL = -5 -OBJID_HSCROLL = -6 -OBJID_SIZEGRIP = -7 -OBJID_CARET = -8 -OBJID_CURSOR = -9 -OBJID_ALERT = -10 -OBJID_SOUND = -11 -EVENT_MIN = 1 -EVENT_MAX = 2147483647 -EVENT_SYSTEM_SOUND = 1 -EVENT_SYSTEM_ALERT = 2 -EVENT_SYSTEM_FOREGROUND = 3 -EVENT_SYSTEM_MENUSTART = 4 -EVENT_SYSTEM_MENUEND = 5 -EVENT_SYSTEM_MENUPOPUPSTART = 6 -EVENT_SYSTEM_MENUPOPUPEND = 7 -EVENT_SYSTEM_CAPTURESTART = 8 -EVENT_SYSTEM_CAPTUREEND = 9 -EVENT_SYSTEM_MOVESIZESTART = 10 -EVENT_SYSTEM_MOVESIZEEND = 11 -EVENT_SYSTEM_CONTEXTHELPSTART = 12 -EVENT_SYSTEM_CONTEXTHELPEND = 13 -EVENT_SYSTEM_DRAGDROPSTART = 14 -EVENT_SYSTEM_DRAGDROPEND = 15 -EVENT_SYSTEM_DIALOGSTART = 16 -EVENT_SYSTEM_DIALOGEND = 17 -EVENT_SYSTEM_SCROLLINGSTART = 18 -EVENT_SYSTEM_SCROLLINGEND = 19 -EVENT_SYSTEM_SWITCHSTART = 20 -EVENT_SYSTEM_SWITCHEND = 21 -EVENT_SYSTEM_MINIMIZESTART = 22 -EVENT_SYSTEM_MINIMIZEEND = 23 -EVENT_OBJECT_CREATE = 32768 -EVENT_OBJECT_DESTROY = 32769 -EVENT_OBJECT_SHOW = 32770 -EVENT_OBJECT_HIDE = 32771 -EVENT_OBJECT_REORDER = 32772 -EVENT_OBJECT_FOCUS = 32773 -EVENT_OBJECT_SELECTION = 32774 -EVENT_OBJECT_SELECTIONADD = 32775 -EVENT_OBJECT_SELECTIONREMOVE = 32776 -EVENT_OBJECT_SELECTIONWITHIN = 32777 -EVENT_OBJECT_STATECHANGE = 32778 -EVENT_OBJECT_LOCATIONCHANGE = 32779 -EVENT_OBJECT_NAMECHANGE = 32780 -EVENT_OBJECT_DESCRIPTIONCHANGE = 32781 -EVENT_OBJECT_VALUECHANGE = 32782 -EVENT_OBJECT_PARENTCHANGE = 32783 -EVENT_OBJECT_HELPCHANGE = 32784 -EVENT_OBJECT_DEFACTIONCHANGE = 32785 -EVENT_OBJECT_ACCELERATORCHANGE = 32786 -SOUND_SYSTEM_STARTUP = 1 -SOUND_SYSTEM_SHUTDOWN = 2 -SOUND_SYSTEM_BEEP = 3 -SOUND_SYSTEM_ERROR = 4 -SOUND_SYSTEM_QUESTION = 5 -SOUND_SYSTEM_WARNING = 6 -SOUND_SYSTEM_INFORMATION = 7 -SOUND_SYSTEM_MAXIMIZE = 8 -SOUND_SYSTEM_MINIMIZE = 9 -SOUND_SYSTEM_RESTOREUP = 10 -SOUND_SYSTEM_RESTOREDOWN = 11 -SOUND_SYSTEM_APPSTART = 12 -SOUND_SYSTEM_FAULT = 13 -SOUND_SYSTEM_APPEND = 14 -SOUND_SYSTEM_MENUCOMMAND = 15 -SOUND_SYSTEM_MENUPOPUP = 16 -CSOUND_SYSTEM = 16 -ALERT_SYSTEM_INFORMATIONAL = 1 -ALERT_SYSTEM_WARNING = 2 -ALERT_SYSTEM_ERROR = 3 -ALERT_SYSTEM_QUERY = 4 -ALERT_SYSTEM_CRITICAL = 5 -CALERT_SYSTEM = 6 -WINEVENT_OUTOFCONTEXT = 0 -WINEVENT_SKIPOWNTHREAD = 1 -WINEVENT_SKIPOWNPROCESS = 2 -WINEVENT_INCONTEXT = 4 -GUI_CARETBLINKING = 1 -GUI_INMOVESIZE = 2 -GUI_INMENUMODE = 4 -GUI_SYSTEMMENUMODE = 8 -GUI_POPUPMENUMODE = 16 -STATE_SYSTEM_UNAVAILABLE = 1 -STATE_SYSTEM_SELECTED = 2 -STATE_SYSTEM_FOCUSED = 4 -STATE_SYSTEM_PRESSED = 8 -STATE_SYSTEM_CHECKED = 16 -STATE_SYSTEM_MIXED = 32 -STATE_SYSTEM_READONLY = 64 -STATE_SYSTEM_HOTTRACKED = 128 -STATE_SYSTEM_DEFAULT = 256 -STATE_SYSTEM_EXPANDED = 512 -STATE_SYSTEM_COLLAPSED = 1024 -STATE_SYSTEM_BUSY = 2048 -STATE_SYSTEM_FLOATING = 4096 -STATE_SYSTEM_MARQUEED = 8192 -STATE_SYSTEM_ANIMATED = 16384 -STATE_SYSTEM_INVISIBLE = 32768 -STATE_SYSTEM_OFFSCREEN = 65536 -STATE_SYSTEM_SIZEABLE = 131072 -STATE_SYSTEM_MOVEABLE = 262144 -STATE_SYSTEM_SELFVOICING = 524288 -STATE_SYSTEM_FOCUSABLE = 1048576 -STATE_SYSTEM_SELECTABLE = 2097152 -STATE_SYSTEM_LINKED = 4194304 -STATE_SYSTEM_TRAVERSED = 8388608 -STATE_SYSTEM_MULTISELECTABLE = 16777216 -STATE_SYSTEM_EXTSELECTABLE = 33554432 -STATE_SYSTEM_ALERT_LOW = 67108864 -STATE_SYSTEM_ALERT_MEDIUM = 134217728 -STATE_SYSTEM_ALERT_HIGH = 268435456 -STATE_SYSTEM_VALID = 536870911 -CCHILDREN_TITLEBAR = 5 -CCHILDREN_SCROLLBAR = 5 -CURSOR_SHOWING = 1 -WS_ACTIVECAPTION = 1 -GA_MIC = 1 -GA_PARENT = 1 -GA_ROOT = 2 -GA_ROOTOWNER = 3 -GA_MAC = 4 - -# winuser.h line 1979 -BF_LEFT = 1 -BF_TOP = 2 -BF_RIGHT = 4 -BF_BOTTOM = 8 -BF_TOPLEFT = (BF_TOP | BF_LEFT) -BF_TOPRIGHT = (BF_TOP | BF_RIGHT) -BF_BOTTOMLEFT = (BF_BOTTOM | BF_LEFT) -BF_BOTTOMRIGHT = (BF_BOTTOM | BF_RIGHT) -BF_RECT = (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM) -BF_DIAGONAL = 16 -BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL | BF_TOP | BF_RIGHT) -BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL | BF_TOP | BF_LEFT) -BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL | BF_BOTTOM | BF_LEFT) -BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT) -BF_MIDDLE = 2048 -BF_SOFT = 4096 -BF_ADJUST = 8192 -BF_FLAT = 16384 -BF_MONO = 32768 -DFC_CAPTION = 1 -DFC_MENU = 2 -DFC_SCROLL = 3 -DFC_BUTTON = 4 -DFC_POPUPMENU = 5 -DFCS_CAPTIONCLOSE = 0 -DFCS_CAPTIONMIN = 1 -DFCS_CAPTIONMAX = 2 -DFCS_CAPTIONRESTORE = 3 -DFCS_CAPTIONHELP = 4 -DFCS_MENUARROW = 0 -DFCS_MENUCHECK = 1 -DFCS_MENUBULLET = 2 -DFCS_MENUARROWRIGHT = 4 -DFCS_SCROLLUP = 0 -DFCS_SCROLLDOWN = 1 -DFCS_SCROLLLEFT = 2 -DFCS_SCROLLRIGHT = 3 -DFCS_SCROLLCOMBOBOX = 5 -DFCS_SCROLLSIZEGRIP = 8 -DFCS_SCROLLSIZEGRIPRIGHT = 16 -DFCS_BUTTONCHECK = 0 -DFCS_BUTTONRADIOIMAGE = 1 -DFCS_BUTTONRADIOMASK = 2 -DFCS_BUTTONRADIO = 4 -DFCS_BUTTON3STATE = 8 -DFCS_BUTTONPUSH = 16 -DFCS_INACTIVE = 256 -DFCS_PUSHED = 512 -DFCS_CHECKED = 1024 -DFCS_TRANSPARENT = 2048 -DFCS_HOT = 4096 -DFCS_ADJUSTRECT = 8192 -DFCS_FLAT = 16384 -DFCS_MONO = 32768 -DC_ACTIVE = 1 -DC_SMALLCAP = 2 -DC_ICON = 4 -DC_TEXT = 8 -DC_INBUTTON = 16 -DC_GRADIENT = 32 -IDANI_OPEN = 1 -IDANI_CLOSE = 2 -IDANI_CAPTION = 3 -CF_TEXT = 1 -CF_BITMAP = 2 -CF_METAFILEPICT = 3 -CF_SYLK = 4 -CF_DIF = 5 -CF_TIFF = 6 -CF_OEMTEXT = 7 -CF_DIB = 8 -CF_PALETTE = 9 -CF_PENDATA = 10 -CF_RIFF = 11 -CF_WAVE = 12 -CF_UNICODETEXT = 13 -CF_ENHMETAFILE = 14 -CF_HDROP = 15 -CF_LOCALE = 16 -CF_DIBV5 = 17 -CF_MAX = 18 -CF_OWNERDISPLAY = 128 -CF_DSPTEXT = 129 -CF_DSPBITMAP = 130 -CF_DSPMETAFILEPICT = 131 -CF_DSPENHMETAFILE = 142 -CF_PRIVATEFIRST = 512 -CF_PRIVATELAST = 767 -CF_GDIOBJFIRST = 768 -CF_GDIOBJLAST = 1023 -FVIRTKEY =1 -FNOINVERT = 2 -FSHIFT = 4 -FCONTROL = 8 -FALT = 16 -WPF_SETMINPOSITION = 1 -WPF_RESTORETOMAXIMIZED = 2 -ODT_MENU = 1 -ODT_LISTBOX = 2 -ODT_COMBOBOX = 3 -ODT_BUTTON = 4 -ODT_STATIC = 5 -ODA_DRAWENTIRE = 1 -ODA_SELECT = 2 -ODA_FOCUS = 4 -ODS_SELECTED = 1 -ODS_GRAYED = 2 -ODS_DISABLED = 4 -ODS_CHECKED = 8 -ODS_FOCUS = 16 -ODS_DEFAULT = 32 -ODS_COMBOBOXEDIT = 4096 -ODS_HOTLIGHT = 64 -ODS_INACTIVE = 128 -PM_NOREMOVE = 0 -PM_REMOVE = 1 -PM_NOYIELD = 2 -MOD_ALT = 1 -MOD_CONTROL = 2 -MOD_SHIFT = 4 -MOD_WIN = 8 -IDHOT_SNAPWINDOW = (-1) -IDHOT_SNAPDESKTOP = (-2) -#EW_RESTARTWINDOWS = 0x0042 -#EW_REBOOTSYSTEM = 0x0043 -#EW_EXITANDEXECAPP = 0x0044 -ENDSESSION_LOGOFF = -2147483648 -EWX_LOGOFF = 0 -EWX_SHUTDOWN = 1 -EWX_REBOOT = 2 -EWX_FORCE = 4 -EWX_POWEROFF = 8 -EWX_FORCEIFHUNG = 16 -BSM_ALLCOMPONENTS = 0 -BSM_VXDS = 1 -BSM_NETDRIVER = 2 -BSM_INSTALLABLEDRIVERS = 4 -BSM_APPLICATIONS = 8 -BSM_ALLDESKTOPS = 16 -BSF_QUERY = 1 -BSF_IGNORECURRENTTASK = 2 -BSF_FLUSHDISK = 4 -BSF_NOHANG = 8 -BSF_POSTMESSAGE = 16 -BSF_FORCEIFHUNG = 32 -BSF_NOTIMEOUTIFNOTHUNG = 64 -BROADCAST_QUERY_DENY = 1112363332 # Return this value to deny a query. - -DBWF_LPARAMPOINTER = 32768 - -# winuser.h line 3232 -SWP_NOSIZE = 1 -SWP_NOMOVE = 2 -SWP_NOZORDER = 4 -SWP_NOREDRAW = 8 -SWP_NOACTIVATE = 16 -SWP_FRAMECHANGED = 32 -SWP_SHOWWINDOW = 64 -SWP_HIDEWINDOW = 128 -SWP_NOCOPYBITS = 256 -SWP_NOOWNERZORDER = 512 -SWP_NOSENDCHANGING = 1024 -SWP_DRAWFRAME = SWP_FRAMECHANGED -SWP_NOREPOSITION = SWP_NOOWNERZORDER -SWP_DEFERERASE = 8192 -SWP_ASYNCWINDOWPOS = 16384 - -DLGWINDOWEXTRA = 30 -# winuser.h line 4249 -KEYEVENTF_EXTENDEDKEY = 1 -KEYEVENTF_KEYUP = 2 -MOUSEEVENTF_MOVE = 1 -MOUSEEVENTF_LEFTDOWN = 2 -MOUSEEVENTF_LEFTUP = 4 -MOUSEEVENTF_RIGHTDOWN = 8 -MOUSEEVENTF_RIGHTUP = 16 -MOUSEEVENTF_MIDDLEDOWN = 32 -MOUSEEVENTF_MIDDLEUP = 64 -MOUSEEVENTF_ABSOLUTE = 32768 -INPUT_MOUSE = 0 -INPUT_KEYBOARD = 1 -INPUT_HARDWARE = 2 -MWMO_WAITALL = 1 -MWMO_ALERTABLE = 2 -MWMO_INPUTAVAILABLE = 4 -QS_KEY = 1 -QS_MOUSEMOVE = 2 -QS_MOUSEBUTTON = 4 -QS_POSTMESSAGE = 8 -QS_TIMER = 16 -QS_PAINT = 32 -QS_SENDMESSAGE = 64 -QS_HOTKEY = 128 -QS_MOUSE = (QS_MOUSEMOVE | \ - QS_MOUSEBUTTON) -QS_INPUT = (QS_MOUSE | \ - QS_KEY) -QS_ALLEVENTS = (QS_INPUT | \ - QS_POSTMESSAGE | \ - QS_TIMER | \ - QS_PAINT | \ - QS_HOTKEY) -QS_ALLINPUT = (QS_INPUT | \ - QS_POSTMESSAGE | \ - QS_TIMER | \ - QS_PAINT | \ - QS_HOTKEY | \ - QS_SENDMESSAGE) - - -IMN_CLOSESTATUSWINDOW = 1 -IMN_OPENSTATUSWINDOW = 2 -IMN_CHANGECANDIDATE = 3 -IMN_CLOSECANDIDATE = 4 -IMN_OPENCANDIDATE = 5 -IMN_SETCONVERSIONMODE = 6 -IMN_SETSENTENCEMODE = 7 -IMN_SETOPENSTATUS = 8 -IMN_SETCANDIDATEPOS = 9 -IMN_SETCOMPOSITIONFONT = 10 -IMN_SETCOMPOSITIONWINDOW = 11 -IMN_SETSTATUSWINDOWPOS = 12 -IMN_GUIDELINE = 13 -IMN_PRIVATE = 14 - -# winuser.h line 8518 -HELP_CONTEXT = 1 -HELP_QUIT = 2 -HELP_INDEX = 3 -HELP_CONTENTS = 3 -HELP_HELPONHELP = 4 -HELP_SETINDEX = 5 -HELP_SETCONTENTS = 5 -HELP_CONTEXTPOPUP = 8 -HELP_FORCEFILE = 9 -HELP_KEY = 257 -HELP_COMMAND = 258 -HELP_PARTIALKEY = 261 -HELP_MULTIKEY = 513 -HELP_SETWINPOS = 515 -HELP_CONTEXTMENU = 10 -HELP_FINDER = 11 -HELP_WM_HELP = 12 -HELP_SETPOPUP_POS = 13 -HELP_TCARD = 32768 -HELP_TCARD_DATA = 16 -HELP_TCARD_OTHER_CALLER = 17 -IDH_NO_HELP = 28440 -IDH_MISSING_CONTEXT = 28441 # Control doesn't have matching help context -IDH_GENERIC_HELP_BUTTON = 28442 # Property sheet help button -IDH_OK = 28443 -IDH_CANCEL = 28444 -IDH_HELP = 28445 -GR_GDIOBJECTS = 0 # Count of GDI objects -GR_USEROBJECTS = 1 # Count of USER objects -# Generated by h2py from \msvcnt\include\wingdi.h -# manually added (missed by generation some how! -SRCCOPY = 13369376 # dest = source -SRCPAINT = 15597702 # dest = source OR dest -SRCAND = 8913094 # dest = source AND dest -SRCINVERT = 6684742 # dest = source XOR dest -SRCERASE = 4457256 # dest = source AND (NOT dest ) -NOTSRCCOPY = 3342344 # dest = (NOT source) -NOTSRCERASE = 1114278 # dest = (NOT src) AND (NOT dest) -MERGECOPY = 12583114 # dest = (source AND pattern) -MERGEPAINT = 12255782 # dest = (NOT source) OR dest -PATCOPY = 15728673 # dest = pattern -PATPAINT = 16452105 # dest = DPSnoo -PATINVERT = 5898313 # dest = pattern XOR dest -DSTINVERT = 5570569 # dest = (NOT dest) -BLACKNESS = 66 # dest = BLACK -WHITENESS = 16711778 # dest = WHITE - -# hacked and split manually by mhammond. -R2_BLACK = 1 -R2_NOTMERGEPEN = 2 -R2_MASKNOTPEN = 3 -R2_NOTCOPYPEN = 4 -R2_MASKPENNOT = 5 -R2_NOT = 6 -R2_XORPEN = 7 -R2_NOTMASKPEN = 8 -R2_MASKPEN = 9 -R2_NOTXORPEN = 10 -R2_NOP = 11 -R2_MERGENOTPEN = 12 -R2_COPYPEN = 13 -R2_MERGEPENNOT = 14 -R2_MERGEPEN = 15 -R2_WHITE = 16 -R2_LAST = 16 -GDI_ERROR = (-1) -ERROR = 0 -NULLREGION = 1 -SIMPLEREGION = 2 -COMPLEXREGION = 3 -RGN_ERROR = ERROR -RGN_AND = 1 -RGN_OR = 2 -RGN_XOR = 3 -RGN_DIFF = 4 -RGN_COPY = 5 -RGN_MIN = RGN_AND -RGN_MAX = RGN_COPY - -## Stretching modes used with Get/SetStretchBltMode -BLACKONWHITE = 1 -WHITEONBLACK = 2 -COLORONCOLOR = 3 -HALFTONE = 4 -MAXSTRETCHBLTMODE = 4 -STRETCH_ANDSCANS = BLACKONWHITE -STRETCH_ORSCANS = WHITEONBLACK -STRETCH_DELETESCANS = COLORONCOLOR -STRETCH_HALFTONE = HALFTONE - -ALTERNATE = 1 -WINDING = 2 -POLYFILL_LAST = 2 - -## flags used with SetLayout -LAYOUT_RTL = 1 -LAYOUT_BTT = 2 -LAYOUT_VBH = 4 -LAYOUT_ORIENTATIONMASK = LAYOUT_RTL|LAYOUT_BTT|LAYOUT_VBH -LAYOUT_BITMAPORIENTATIONPRESERVED = 8 - -TA_NOUPDATECP = 0 -TA_UPDATECP = 1 -TA_LEFT = 0 -TA_RIGHT = 2 -TA_CENTER = 6 -TA_TOP = 0 -TA_BOTTOM = 8 -TA_BASELINE = 24 -TA_MASK = (TA_BASELINE+TA_CENTER+TA_UPDATECP) -VTA_BASELINE = TA_BASELINE -VTA_LEFT = TA_BOTTOM -VTA_RIGHT = TA_TOP -VTA_CENTER = TA_CENTER -VTA_BOTTOM = TA_RIGHT -VTA_TOP = TA_LEFT -ETO_GRAYED = 1 -ETO_OPAQUE = 2 -ETO_CLIPPED = 4 -ASPECT_FILTERING = 1 -DCB_RESET = 1 -DCB_ACCUMULATE = 2 -DCB_DIRTY = DCB_ACCUMULATE -DCB_SET = (DCB_RESET | DCB_ACCUMULATE) -DCB_ENABLE = 4 -DCB_DISABLE = 8 -META_SETBKCOLOR = 513 -META_SETBKMODE = 258 -META_SETMAPMODE = 259 -META_SETROP2 = 260 -META_SETRELABS = 261 -META_SETPOLYFILLMODE = 262 -META_SETSTRETCHBLTMODE = 263 -META_SETTEXTCHAREXTRA = 264 -META_SETTEXTCOLOR = 521 -META_SETTEXTJUSTIFICATION = 522 -META_SETWINDOWORG = 523 -META_SETWINDOWEXT = 524 -META_SETVIEWPORTORG = 525 -META_SETVIEWPORTEXT = 526 -META_OFFSETWINDOWORG = 527 -META_SCALEWINDOWEXT = 1040 -META_OFFSETVIEWPORTORG = 529 -META_SCALEVIEWPORTEXT = 1042 -META_LINETO = 531 -META_MOVETO = 532 -META_EXCLUDECLIPRECT = 1045 -META_INTERSECTCLIPRECT = 1046 -META_ARC = 2071 -META_ELLIPSE = 1048 -META_FLOODFILL = 1049 -META_PIE = 2074 -META_RECTANGLE = 1051 -META_ROUNDRECT = 1564 -META_PATBLT = 1565 -META_SAVEDC = 30 -META_SETPIXEL = 1055 -META_OFFSETCLIPRGN = 544 -META_TEXTOUT = 1313 -META_BITBLT = 2338 -META_STRETCHBLT = 2851 -META_POLYGON = 804 -META_POLYLINE = 805 -META_ESCAPE = 1574 -META_RESTOREDC = 295 -META_FILLREGION = 552 -META_FRAMEREGION = 1065 -META_INVERTREGION = 298 -META_PAINTREGION = 299 -META_SELECTCLIPREGION = 300 -META_SELECTOBJECT = 301 -META_SETTEXTALIGN = 302 -META_CHORD = 2096 -META_SETMAPPERFLAGS = 561 -META_EXTTEXTOUT = 2610 -META_SETDIBTODEV = 3379 -META_SELECTPALETTE = 564 -META_REALIZEPALETTE = 53 -META_ANIMATEPALETTE = 1078 -META_SETPALENTRIES = 55 -META_POLYPOLYGON = 1336 -META_RESIZEPALETTE = 313 -META_DIBBITBLT = 2368 -META_DIBSTRETCHBLT = 2881 -META_DIBCREATEPATTERNBRUSH = 322 -META_STRETCHDIB = 3907 -META_EXTFLOODFILL = 1352 -META_DELETEOBJECT = 496 -META_CREATEPALETTE = 247 -META_CREATEPATTERNBRUSH = 505 -META_CREATEPENINDIRECT = 762 -META_CREATEFONTINDIRECT = 763 -META_CREATEBRUSHINDIRECT = 764 -META_CREATEREGION = 1791 -FILE_BEGIN = 0 -FILE_CURRENT = 1 -FILE_END = 2 -FILE_FLAG_WRITE_THROUGH = -2147483648 -FILE_FLAG_OVERLAPPED = 1073741824 -FILE_FLAG_NO_BUFFERING = 536870912 -FILE_FLAG_RANDOM_ACCESS = 268435456 -FILE_FLAG_SEQUENTIAL_SCAN = 134217728 -FILE_FLAG_DELETE_ON_CLOSE = 67108864 -FILE_FLAG_BACKUP_SEMANTICS = 33554432 -FILE_FLAG_POSIX_SEMANTICS = 16777216 -CREATE_NEW = 1 -CREATE_ALWAYS = 2 -OPEN_EXISTING = 3 -OPEN_ALWAYS = 4 -TRUNCATE_EXISTING = 5 -PIPE_ACCESS_INBOUND = 1 -PIPE_ACCESS_OUTBOUND = 2 -PIPE_ACCESS_DUPLEX = 3 -PIPE_CLIENT_END = 0 -PIPE_SERVER_END = 1 -PIPE_WAIT = 0 -PIPE_NOWAIT = 1 -PIPE_READMODE_BYTE = 0 -PIPE_READMODE_MESSAGE = 2 -PIPE_TYPE_BYTE = 0 -PIPE_TYPE_MESSAGE = 4 -PIPE_UNLIMITED_INSTANCES = 255 -SECURITY_CONTEXT_TRACKING = 262144 -SECURITY_EFFECTIVE_ONLY = 524288 -SECURITY_SQOS_PRESENT = 1048576 -SECURITY_VALID_SQOS_FLAGS = 2031616 -DTR_CONTROL_DISABLE = 0 -DTR_CONTROL_ENABLE = 1 -DTR_CONTROL_HANDSHAKE = 2 -RTS_CONTROL_DISABLE = 0 -RTS_CONTROL_ENABLE = 1 -RTS_CONTROL_HANDSHAKE = 2 -RTS_CONTROL_TOGGLE = 3 -GMEM_FIXED = 0 -GMEM_MOVEABLE = 2 -GMEM_NOCOMPACT = 16 -GMEM_NODISCARD = 32 -GMEM_ZEROINIT = 64 -GMEM_MODIFY = 128 -GMEM_DISCARDABLE = 256 -GMEM_NOT_BANKED = 4096 -GMEM_SHARE = 8192 -GMEM_DDESHARE = 8192 -GMEM_NOTIFY = 16384 -GMEM_LOWER = GMEM_NOT_BANKED -GMEM_VALID_FLAGS = 32626 -GMEM_INVALID_HANDLE = 32768 -GHND = (GMEM_MOVEABLE | GMEM_ZEROINIT) -GPTR = (GMEM_FIXED | GMEM_ZEROINIT) -GMEM_DISCARDED = 16384 -GMEM_LOCKCOUNT = 255 -LMEM_FIXED = 0 -LMEM_MOVEABLE = 2 -LMEM_NOCOMPACT = 16 -LMEM_NODISCARD = 32 -LMEM_ZEROINIT = 64 -LMEM_MODIFY = 128 -LMEM_DISCARDABLE = 3840 -LMEM_VALID_FLAGS = 3954 -LMEM_INVALID_HANDLE = 32768 -LHND = (LMEM_MOVEABLE | LMEM_ZEROINIT) -LPTR = (LMEM_FIXED | LMEM_ZEROINIT) -NONZEROLHND = (LMEM_MOVEABLE) -NONZEROLPTR = (LMEM_FIXED) -LMEM_DISCARDED = 16384 -LMEM_LOCKCOUNT = 255 -DEBUG_PROCESS = 1 -DEBUG_ONLY_THIS_PROCESS = 2 -CREATE_SUSPENDED = 4 -DETACHED_PROCESS = 8 -CREATE_NEW_CONSOLE = 16 -NORMAL_PRIORITY_CLASS = 32 -IDLE_PRIORITY_CLASS = 64 -HIGH_PRIORITY_CLASS = 128 -REALTIME_PRIORITY_CLASS = 256 -CREATE_NEW_PROCESS_GROUP = 512 -CREATE_UNICODE_ENVIRONMENT = 1024 -CREATE_SEPARATE_WOW_VDM = 2048 -CREATE_SHARED_WOW_VDM = 4096 -CREATE_DEFAULT_ERROR_MODE = 67108864 -CREATE_NO_WINDOW = 134217728 -PROFILE_USER = 268435456 -PROFILE_KERNEL = 536870912 -PROFILE_SERVER = 1073741824 -THREAD_BASE_PRIORITY_LOWRT = 15 -THREAD_BASE_PRIORITY_MAX = 2 -THREAD_BASE_PRIORITY_MIN = -2 -THREAD_BASE_PRIORITY_IDLE = -15 -THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN -THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1 -THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX -THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1 -THREAD_PRIORITY_ERROR_RETURN = MAXLONG -THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT -THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE -THREAD_PRIORITY_NORMAL = 0 -THREAD_MODE_BACKGROUND_BEGIN = 0x00010000 -THREAD_MODE_BACKGROUND_END = 0x00020000 - -EXCEPTION_DEBUG_EVENT = 1 -CREATE_THREAD_DEBUG_EVENT = 2 -CREATE_PROCESS_DEBUG_EVENT = 3 -EXIT_THREAD_DEBUG_EVENT = 4 -EXIT_PROCESS_DEBUG_EVENT = 5 -LOAD_DLL_DEBUG_EVENT = 6 -UNLOAD_DLL_DEBUG_EVENT = 7 -OUTPUT_DEBUG_STRING_EVENT = 8 -RIP_EVENT = 9 -DRIVE_UNKNOWN = 0 -DRIVE_NO_ROOT_DIR = 1 -DRIVE_REMOVABLE = 2 -DRIVE_FIXED = 3 -DRIVE_REMOTE = 4 -DRIVE_CDROM = 5 -DRIVE_RAMDISK = 6 -FILE_TYPE_UNKNOWN = 0 -FILE_TYPE_DISK = 1 -FILE_TYPE_CHAR = 2 -FILE_TYPE_PIPE = 3 -FILE_TYPE_REMOTE = 32768 -NOPARITY = 0 -ODDPARITY = 1 -EVENPARITY = 2 -MARKPARITY = 3 -SPACEPARITY = 4 -ONESTOPBIT = 0 -ONE5STOPBITS = 1 -TWOSTOPBITS = 2 -CBR_110 = 110 -CBR_300 = 300 -CBR_600 = 600 -CBR_1200 = 1200 -CBR_2400 = 2400 -CBR_4800 = 4800 -CBR_9600 = 9600 -CBR_14400 = 14400 -CBR_19200 = 19200 -CBR_38400 = 38400 -CBR_56000 = 56000 -CBR_57600 = 57600 -CBR_115200 = 115200 -CBR_128000 = 128000 -CBR_256000 = 256000 -S_QUEUEEMPTY = 0 -S_THRESHOLD = 1 -S_ALLTHRESHOLD = 2 -S_NORMAL = 0 -S_LEGATO = 1 -S_STACCATO = 2 -NMPWAIT_WAIT_FOREVER = -1 -NMPWAIT_NOWAIT = 1 -NMPWAIT_USE_DEFAULT_WAIT = 0 -OF_READ = 0 -OF_WRITE = 1 -OF_READWRITE = 2 -OF_SHARE_COMPAT = 0 -OF_SHARE_EXCLUSIVE = 16 -OF_SHARE_DENY_WRITE = 32 -OF_SHARE_DENY_READ = 48 -OF_SHARE_DENY_NONE = 64 -OF_PARSE = 256 -OF_DELETE = 512 -OF_VERIFY = 1024 -OF_CANCEL = 2048 -OF_CREATE = 4096 -OF_PROMPT = 8192 -OF_EXIST = 16384 -OF_REOPEN = 32768 -OFS_MAXPATHNAME = 128 -MAXINTATOM = 49152 - -# winbase.h -PROCESS_HEAP_REGION = 1 -PROCESS_HEAP_UNCOMMITTED_RANGE = 2 -PROCESS_HEAP_ENTRY_BUSY = 4 -PROCESS_HEAP_ENTRY_MOVEABLE = 16 -PROCESS_HEAP_ENTRY_DDESHARE = 32 -SCS_32BIT_BINARY = 0 -SCS_DOS_BINARY = 1 -SCS_WOW_BINARY = 2 -SCS_PIF_BINARY = 3 -SCS_POSIX_BINARY = 4 -SCS_OS216_BINARY = 5 -SEM_FAILCRITICALERRORS = 1 -SEM_NOGPFAULTERRORBOX = 2 -SEM_NOALIGNMENTFAULTEXCEPT = 4 -SEM_NOOPENFILEERRORBOX = 32768 -LOCKFILE_FAIL_IMMEDIATELY = 1 -LOCKFILE_EXCLUSIVE_LOCK = 2 -HANDLE_FLAG_INHERIT = 1 -HANDLE_FLAG_PROTECT_FROM_CLOSE = 2 -HINSTANCE_ERROR = 32 -GET_TAPE_MEDIA_INFORMATION = 0 -GET_TAPE_DRIVE_INFORMATION = 1 -SET_TAPE_MEDIA_INFORMATION = 0 -SET_TAPE_DRIVE_INFORMATION = 1 -FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 -FORMAT_MESSAGE_IGNORE_INSERTS = 512 -FORMAT_MESSAGE_FROM_STRING = 1024 -FORMAT_MESSAGE_FROM_HMODULE = 2048 -FORMAT_MESSAGE_FROM_SYSTEM = 4096 -FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 -FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 -BACKUP_INVALID = 0 -BACKUP_DATA = 1 -BACKUP_EA_DATA = 2 -BACKUP_SECURITY_DATA = 3 -BACKUP_ALTERNATE_DATA = 4 -BACKUP_LINK = 5 -BACKUP_PROPERTY_DATA = 6 -BACKUP_OBJECT_ID = 7 -BACKUP_REPARSE_DATA = 8 -BACKUP_SPARSE_BLOCK = 9 - -STREAM_NORMAL_ATTRIBUTE = 0 -STREAM_MODIFIED_WHEN_READ = 1 -STREAM_CONTAINS_SECURITY = 2 -STREAM_CONTAINS_PROPERTIES = 4 -STARTF_USESHOWWINDOW = 1 -STARTF_USESIZE = 2 -STARTF_USEPOSITION = 4 -STARTF_USECOUNTCHARS = 8 -STARTF_USEFILLATTRIBUTE = 16 -STARTF_FORCEONFEEDBACK = 64 -STARTF_FORCEOFFFEEDBACK = 128 -STARTF_USESTDHANDLES = 256 -STARTF_USEHOTKEY = 512 -SHUTDOWN_NORETRY = 1 -DONT_RESOLVE_DLL_REFERENCES = 1 -LOAD_LIBRARY_AS_DATAFILE = 2 -LOAD_WITH_ALTERED_SEARCH_PATH = 8 -DDD_RAW_TARGET_PATH = 1 -DDD_REMOVE_DEFINITION = 2 -DDD_EXACT_MATCH_ON_REMOVE = 4 -MOVEFILE_REPLACE_EXISTING = 1 -MOVEFILE_COPY_ALLOWED = 2 -MOVEFILE_DELAY_UNTIL_REBOOT = 4 -MAX_COMPUTERNAME_LENGTH = 15 -LOGON32_LOGON_INTERACTIVE = 2 -LOGON32_LOGON_NETWORK = 3 -LOGON32_LOGON_BATCH = 4 -LOGON32_LOGON_SERVICE = 5 -LOGON32_LOGON_UNLOCK = 7 -LOGON32_LOGON_NETWORK_CLEARTEXT = 8 -LOGON32_LOGON_NEW_CREDENTIALS = 9 -LOGON32_PROVIDER_DEFAULT = 0 -LOGON32_PROVIDER_WINNT35 = 1 -LOGON32_PROVIDER_WINNT40 = 2 -LOGON32_PROVIDER_WINNT50 = 3 -VER_PLATFORM_WIN32s = 0 -VER_PLATFORM_WIN32_WINDOWS = 1 -VER_PLATFORM_WIN32_NT = 2 -TC_NORMAL = 0 -TC_HARDERR = 1 -TC_GP_TRAP = 2 -TC_SIGNAL = 3 -AC_LINE_OFFLINE = 0 -AC_LINE_ONLINE = 1 -AC_LINE_BACKUP_POWER = 2 -AC_LINE_UNKNOWN = 255 -BATTERY_FLAG_HIGH = 1 -BATTERY_FLAG_LOW = 2 -BATTERY_FLAG_CRITICAL = 4 -BATTERY_FLAG_CHARGING = 8 -BATTERY_FLAG_NO_BATTERY = 128 -BATTERY_FLAG_UNKNOWN = 255 -BATTERY_PERCENTAGE_UNKNOWN = 255 -BATTERY_LIFE_UNKNOWN = -1 - -# Generated by h2py from d:\msdev\include\richedit.h -cchTextLimitDefault = 32767 -WM_CONTEXTMENU = 123 -WM_PRINTCLIENT = 792 -EN_MSGFILTER = 1792 -EN_REQUESTRESIZE = 1793 -EN_SELCHANGE = 1794 -EN_DROPFILES = 1795 -EN_PROTECTED = 1796 -EN_CORRECTTEXT = 1797 -EN_STOPNOUNDO = 1798 -EN_IMECHANGE = 1799 -EN_SAVECLIPBOARD = 1800 -EN_OLEOPFAILED = 1801 -ENM_NONE = 0 -ENM_CHANGE = 1 -ENM_UPDATE = 2 -ENM_SCROLL = 4 -ENM_KEYEVENTS = 65536 -ENM_MOUSEEVENTS = 131072 -ENM_REQUESTRESIZE = 262144 -ENM_SELCHANGE = 524288 -ENM_DROPFILES = 1048576 -ENM_PROTECTED = 2097152 -ENM_CORRECTTEXT = 4194304 -ENM_IMECHANGE = 8388608 -ES_SAVESEL = 32768 -ES_SUNKEN = 16384 -ES_DISABLENOSCROLL = 8192 -ES_SELECTIONBAR = 16777216 -ES_EX_NOCALLOLEINIT = 16777216 -ES_VERTICAL = 4194304 -ES_NOIME = 524288 -ES_SELFIME = 262144 -ECO_AUTOWORDSELECTION = 1 -ECO_AUTOVSCROLL = 64 -ECO_AUTOHSCROLL = 128 -ECO_NOHIDESEL = 256 -ECO_READONLY = 2048 -ECO_WANTRETURN = 4096 -ECO_SAVESEL = 32768 -ECO_SELECTIONBAR = 16777216 -ECO_VERTICAL = 4194304 -ECOOP_SET = 1 -ECOOP_OR = 2 -ECOOP_AND = 3 -ECOOP_XOR = 4 -WB_CLASSIFY = 3 -WB_MOVEWORDLEFT = 4 -WB_MOVEWORDRIGHT = 5 -WB_LEFTBREAK = 6 -WB_RIGHTBREAK = 7 -WB_MOVEWORDPREV = 4 -WB_MOVEWORDNEXT = 5 -WB_PREVBREAK = 6 -WB_NEXTBREAK = 7 -PC_FOLLOWING = 1 -PC_LEADING = 2 -PC_OVERFLOW = 3 -PC_DELIMITER = 4 -WBF_WORDWRAP = 16 -WBF_WORDBREAK = 32 -WBF_OVERFLOW = 64 -WBF_LEVEL1 = 128 -WBF_LEVEL2 = 256 -WBF_CUSTOM = 512 -CFM_BOLD = 1 -CFM_ITALIC = 2 -CFM_UNDERLINE = 4 -CFM_STRIKEOUT = 8 -CFM_PROTECTED = 16 -CFM_SIZE = -2147483648 -CFM_COLOR = 1073741824 -CFM_FACE = 536870912 -CFM_OFFSET = 268435456 -CFM_CHARSET = 134217728 -CFE_BOLD = 1 -CFE_ITALIC = 2 -CFE_UNDERLINE = 4 -CFE_STRIKEOUT = 8 -CFE_PROTECTED = 16 -CFE_AUTOCOLOR = 1073741824 -yHeightCharPtsMost = 1638 -SCF_SELECTION = 1 -SCF_WORD = 2 -SF_TEXT = 1 -SF_RTF = 2 -SF_RTFNOOBJS = 3 -SF_TEXTIZED = 4 -SFF_SELECTION = 32768 -SFF_PLAINRTF = 16384 -MAX_TAB_STOPS = 32 -lDefaultTab = 720 -PFM_STARTINDENT = 1 -PFM_RIGHTINDENT = 2 -PFM_OFFSET = 4 -PFM_ALIGNMENT = 8 -PFM_TABSTOPS = 16 -PFM_NUMBERING = 32 -PFM_OFFSETINDENT = -2147483648 -PFN_BULLET = 1 -PFA_LEFT = 1 -PFA_RIGHT = 2 -PFA_CENTER = 3 -WM_NOTIFY = 78 -SEL_EMPTY = 0 -SEL_TEXT = 1 -SEL_OBJECT = 2 -SEL_MULTICHAR = 4 -SEL_MULTIOBJECT = 8 -OLEOP_DOVERB = 1 -CF_RTF = "Rich Text Format" -CF_RTFNOOBJS = "Rich Text Format Without Objects" -CF_RETEXTOBJ = "RichEdit Text and Objects" - -# From wincon.h -RIGHT_ALT_PRESSED = 1 # the right alt key is pressed. -LEFT_ALT_PRESSED = 2 # the left alt key is pressed. -RIGHT_CTRL_PRESSED = 4 # the right ctrl key is pressed. -LEFT_CTRL_PRESSED = 8 # the left ctrl key is pressed. -SHIFT_PRESSED = 16 # the shift key is pressed. -NUMLOCK_ON = 32 # the numlock light is on. -SCROLLLOCK_ON = 64 # the scrolllock light is on. -CAPSLOCK_ON = 128 # the capslock light is on. -ENHANCED_KEY = 256 # the key is enhanced. -NLS_DBCSCHAR = 65536 # DBCS for JPN: SBCS/DBCS mode. -NLS_ALPHANUMERIC = 0 # DBCS for JPN: Alphanumeric mode. -NLS_KATAKANA = 131072 # DBCS for JPN: Katakana mode. -NLS_HIRAGANA = 262144 # DBCS for JPN: Hiragana mode. -NLS_ROMAN = 4194304 # DBCS for JPN: Roman/Noroman mode. -NLS_IME_CONVERSION = 8388608 # DBCS for JPN: IME conversion. -NLS_IME_DISABLE = 536870912 # DBCS for JPN: IME enable/disable. - -FROM_LEFT_1ST_BUTTON_PRESSED = 1 -RIGHTMOST_BUTTON_PRESSED = 2 -FROM_LEFT_2ND_BUTTON_PRESSED = 4 -FROM_LEFT_3RD_BUTTON_PRESSED = 8 -FROM_LEFT_4TH_BUTTON_PRESSED = 16 - -CTRL_C_EVENT = 0 -CTRL_BREAK_EVENT = 1 -CTRL_CLOSE_EVENT = 2 -CTRL_LOGOFF_EVENT = 5 -CTRL_SHUTDOWN_EVENT = 6 - -MOUSE_MOVED = 1 -DOUBLE_CLICK = 2 -MOUSE_WHEELED = 4 - -#property sheet window messages from prsht.h -PSM_SETCURSEL = (WM_USER + 101) -PSM_REMOVEPAGE = (WM_USER + 102) -PSM_ADDPAGE = (WM_USER + 103) -PSM_CHANGED = (WM_USER + 104) -PSM_RESTARTWINDOWS = (WM_USER + 105) -PSM_REBOOTSYSTEM = (WM_USER + 106) -PSM_CANCELTOCLOSE = (WM_USER + 107) -PSM_QUERYSIBLINGS = (WM_USER + 108) -PSM_UNCHANGED = (WM_USER + 109) -PSM_APPLY = (WM_USER + 110) -PSM_SETTITLEA = (WM_USER + 111) -PSM_SETTITLEW = (WM_USER + 120) -PSM_SETWIZBUTTONS = (WM_USER + 112) -PSM_PRESSBUTTON = (WM_USER + 113) -PSM_SETCURSELID = (WM_USER + 114) -PSM_SETFINISHTEXTA = (WM_USER + 115) -PSM_SETFINISHTEXTW = (WM_USER + 121) -PSM_GETTABCONTROL = (WM_USER + 116) -PSM_ISDIALOGMESSAGE = (WM_USER + 117) -PSM_GETCURRENTPAGEHWND = (WM_USER + 118) -PSM_INSERTPAGE = (WM_USER + 119) -PSM_SETHEADERTITLEA = (WM_USER + 125) -PSM_SETHEADERTITLEW = (WM_USER + 126) -PSM_SETHEADERSUBTITLEA = (WM_USER + 127) -PSM_SETHEADERSUBTITLEW = (WM_USER + 128) -PSM_HWNDTOINDEX = (WM_USER + 129) -PSM_INDEXTOHWND = (WM_USER + 130) -PSM_PAGETOINDEX = (WM_USER + 131) -PSM_INDEXTOPAGE = (WM_USER + 132) -PSM_IDTOINDEX = (WM_USER + 133) -PSM_INDEXTOID = (WM_USER + 134) -PSM_GETRESULT = (WM_USER + 135) -PSM_RECALCPAGESIZES = (WM_USER + 136) - -# GetUserNameEx/GetComputerNameEx -NameUnknown = 0 -NameFullyQualifiedDN = 1 -NameSamCompatible = 2 -NameDisplay = 3 -NameUniqueId = 6 -NameCanonical = 7 -NameUserPrincipal = 8 -NameCanonicalEx = 9 -NameServicePrincipal = 10 -NameDnsDomain = 12 - -ComputerNameNetBIOS = 0 -ComputerNameDnsHostname = 1 -ComputerNameDnsDomain = 2 -ComputerNameDnsFullyQualified = 3 -ComputerNamePhysicalNetBIOS = 4 -ComputerNamePhysicalDnsHostname = 5 -ComputerNamePhysicalDnsDomain = 6 -ComputerNamePhysicalDnsFullyQualified = 7 - -LWA_COLORKEY = 0x00000001 -LWA_ALPHA = 0x00000002 -ULW_COLORKEY = 0x00000001 -ULW_ALPHA = 0x00000002 -ULW_OPAQUE = 0x00000004 - -# WinDef.h -TRUE = 1 -FALSE = 0 -MAX_PATH = 260 -# WinGDI.h -AC_SRC_OVER = 0 -AC_SRC_ALPHA = 1 -GRADIENT_FILL_RECT_H = 0 -GRADIENT_FILL_RECT_V = 1 -GRADIENT_FILL_TRIANGLE = 2 -GRADIENT_FILL_OP_FLAG = 255 - -## flags used with Get/SetSystemFileCacheSize -MM_WORKING_SET_MAX_HARD_ENABLE = 1 -MM_WORKING_SET_MAX_HARD_DISABLE = 2 -MM_WORKING_SET_MIN_HARD_ENABLE = 4 -MM_WORKING_SET_MIN_HARD_DISABLE = 8 - -## Flags for GetFinalPathNameByHandle -VOLUME_NAME_DOS = 0 -VOLUME_NAME_GUID = 1 -VOLUME_NAME_NT = 2 -VOLUME_NAME_NONE = 4 -FILE_NAME_NORMALIZED = 0 -FILE_NAME_OPENED = 8 - -DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000 -DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 - -# From Dbt.h -# Generated by h2py from Dbt.h -WM_DEVICECHANGE = 0x0219 -BSF_QUERY = 0x00000001 -BSF_IGNORECURRENTTASK = 0x00000002 -BSF_FLUSHDISK = 0x00000004 -BSF_NOHANG = 0x00000008 -BSF_POSTMESSAGE = 0x00000010 -BSF_FORCEIFHUNG = 0x00000020 -BSF_NOTIMEOUTIFNOTHUNG = 0x00000040 -BSF_MSGSRV32ISOK = (-2147483648) -BSF_MSGSRV32ISOK_BIT = 31 -BSM_ALLCOMPONENTS = 0x00000000 -BSM_VXDS = 0x00000001 -BSM_NETDRIVER = 0x00000002 -BSM_INSTALLABLEDRIVERS = 0x00000004 -BSM_APPLICATIONS = 0x00000008 -DBT_APPYBEGIN = 0x0000 -DBT_APPYEND = 0x0001 -DBT_DEVNODES_CHANGED = 0x0007 -DBT_QUERYCHANGECONFIG = 0x0017 -DBT_CONFIGCHANGED = 0x0018 -DBT_CONFIGCHANGECANCELED = 0x0019 -DBT_MONITORCHANGE = 0x001B -DBT_SHELLLOGGEDON = 0x0020 -DBT_CONFIGMGAPI32 = 0x0022 -DBT_VXDINITCOMPLETE = 0x0023 -DBT_VOLLOCKQUERYLOCK = 0x8041 -DBT_VOLLOCKLOCKTAKEN = 0x8042 -DBT_VOLLOCKLOCKFAILED = 0x8043 -DBT_VOLLOCKQUERYUNLOCK = 0x8044 -DBT_VOLLOCKLOCKRELEASED = 0x8045 -DBT_VOLLOCKUNLOCKFAILED = 0x8046 -LOCKP_ALLOW_WRITES = 0x01 -LOCKP_FAIL_WRITES = 0x00 -LOCKP_FAIL_MEM_MAPPING = 0x02 -LOCKP_ALLOW_MEM_MAPPING = 0x00 -LOCKP_USER_MASK = 0x03 -LOCKP_LOCK_FOR_FORMAT = 0x04 -LOCKF_LOGICAL_LOCK = 0x00 -LOCKF_PHYSICAL_LOCK = 0x01 -DBT_NO_DISK_SPACE = 0x0047 -DBT_LOW_DISK_SPACE = 0x0048 -DBT_CONFIGMGPRIVATE = 0x7FFF -DBT_DEVICEARRIVAL = 0x8000 -DBT_DEVICEQUERYREMOVE = 0x8001 -DBT_DEVICEQUERYREMOVEFAILED = 0x8002 -DBT_DEVICEREMOVEPENDING = 0x8003 -DBT_DEVICEREMOVECOMPLETE = 0x8004 -DBT_DEVICETYPESPECIFIC = 0x8005 -DBT_CUSTOMEVENT = 0x8006 -DBT_DEVTYP_OEM = 0x00000000 -DBT_DEVTYP_DEVNODE = 0x00000001 -DBT_DEVTYP_VOLUME = 0x00000002 -DBT_DEVTYP_PORT = 0x00000003 -DBT_DEVTYP_NET = 0x00000004 -DBT_DEVTYP_DEVICEINTERFACE = 0x00000005 -DBT_DEVTYP_HANDLE = 0x00000006 -DBTF_MEDIA = 0x0001 -DBTF_NET = 0x0002 -DBTF_RESOURCE = 0x00000001 -DBTF_XPORT = 0x00000002 -DBTF_SLOWNET = 0x00000004 -DBT_VPOWERDAPI = 0x8100 -DBT_USERDEFINED = 0xFFFF diff --git a/typings/win32helper/__init__.pyi b/typings/win32helper/__init__.pyi deleted file mode 100644 index e69de29b..00000000 diff --git a/typings/win32helper/ntsecuritycon.pyi b/typings/win32helper/ntsecuritycon.pyi deleted file mode 100644 index 716d811d..00000000 --- a/typings/win32helper/ntsecuritycon.pyi +++ /dev/null @@ -1,689 +0,0 @@ -# Hacked from winnt.h - -DELETE = (65536) -READ_CONTROL = (131072) -WRITE_DAC = (262144) -WRITE_OWNER = (524288) -SYNCHRONIZE = (1048576) -STANDARD_RIGHTS_REQUIRED = (983040) -STANDARD_RIGHTS_READ = (READ_CONTROL) -STANDARD_RIGHTS_WRITE = (READ_CONTROL) -STANDARD_RIGHTS_EXECUTE = (READ_CONTROL) -STANDARD_RIGHTS_ALL = (2031616) -SPECIFIC_RIGHTS_ALL = (65535) -ACCESS_SYSTEM_SECURITY = (16777216) -MAXIMUM_ALLOWED = (33554432) -GENERIC_READ = (-2147483648) -GENERIC_WRITE = (1073741824) -GENERIC_EXECUTE = (536870912) -GENERIC_ALL = (268435456) - -# file security permissions -FILE_READ_DATA= ( 1 ) -FILE_LIST_DIRECTORY= ( 1 ) -FILE_WRITE_DATA= ( 2 ) -FILE_ADD_FILE= ( 2 ) -FILE_APPEND_DATA= ( 4 ) -FILE_ADD_SUBDIRECTORY= ( 4 ) -FILE_CREATE_PIPE_INSTANCE= ( 4 ) -FILE_READ_EA= ( 8 ) -FILE_WRITE_EA= ( 16 ) -FILE_EXECUTE= ( 32 ) -FILE_TRAVERSE= ( 32 ) -FILE_DELETE_CHILD= ( 64 ) -FILE_READ_ATTRIBUTES= ( 128 ) -FILE_WRITE_ATTRIBUTES= ( 256 ) -FILE_ALL_ACCESS= (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 511) -FILE_GENERIC_READ= (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE) -FILE_GENERIC_WRITE= (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE) -FILE_GENERIC_EXECUTE= (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE) - - -SECURITY_NULL_SID_AUTHORITY = (0,0,0,0,0,0) -SECURITY_WORLD_SID_AUTHORITY = (0,0,0,0,0,1) -SECURITY_LOCAL_SID_AUTHORITY = (0,0,0,0,0,2) -SECURITY_CREATOR_SID_AUTHORITY = (0,0,0,0,0,3) -SECURITY_NON_UNIQUE_AUTHORITY = (0,0,0,0,0,4) -SECURITY_RESOURCE_MANAGER_AUTHORITY = (0,0,0,0,0,9) - -SECURITY_NULL_RID = 0 -SECURITY_WORLD_RID = 0 -SECURITY_LOCAL_RID = 0X00000000 - -SECURITY_CREATOR_OWNER_RID = 0 -SECURITY_CREATOR_GROUP_RID = 1 - -SECURITY_CREATOR_OWNER_SERVER_RID = 2 -SECURITY_CREATOR_GROUP_SERVER_RID = 3 -SECURITY_CREATOR_OWNER_RIGHTS_RID = 4 - -# NT well-known SIDs -SECURITY_NT_AUTHORITY = (0,0,0,0,0,5) - -SECURITY_DIALUP_RID = 1 -SECURITY_NETWORK_RID = 2 -SECURITY_BATCH_RID = 3 -SECURITY_INTERACTIVE_RID = 4 -SECURITY_SERVICE_RID = 6 -SECURITY_ANONYMOUS_LOGON_RID = 7 -SECURITY_PROXY_RID = 8 -SECURITY_SERVER_LOGON_RID = 9 - -SECURITY_LOGON_IDS_RID = 5 -SECURITY_LOGON_IDS_RID_COUNT = 3 - -SECURITY_LOCAL_SYSTEM_RID = 18 - -SECURITY_NT_NON_UNIQUE = 21 - -SECURITY_BUILTIN_DOMAIN_RID = 32 - -# well-known domain relative sub-authority values (RIDs)... -DOMAIN_USER_RID_ADMIN = 500 -DOMAIN_USER_RID_GUEST = 501 -DOMAIN_USER_RID_KRBTGT = 502 -DOMAIN_USER_RID_MAX = 999 - -# well-known groups ... -DOMAIN_GROUP_RID_ADMINS = 512 -DOMAIN_GROUP_RID_USERS = 513 -DOMAIN_GROUP_RID_GUESTS = 514 -DOMAIN_GROUP_RID_COMPUTERS = 515 -DOMAIN_GROUP_RID_CONTROLLERS = 516 -DOMAIN_GROUP_RID_CERT_ADMINS = 517 -DOMAIN_GROUP_RID_SCHEMA_ADMINS = 518 -DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 519 -DOMAIN_GROUP_RID_POLICY_ADMINS = 520 -DOMAIN_GROUP_RID_READONLY_CONTROLLERS = 521 - -# well-known aliases ... -DOMAIN_ALIAS_RID_ADMINS = 544 -DOMAIN_ALIAS_RID_USERS = 545 -DOMAIN_ALIAS_RID_GUESTS = 546 -DOMAIN_ALIAS_RID_POWER_USERS = 547 -DOMAIN_ALIAS_RID_ACCOUNT_OPS = 548 -DOMAIN_ALIAS_RID_SYSTEM_OPS = 549 -DOMAIN_ALIAS_RID_PRINT_OPS = 550 -DOMAIN_ALIAS_RID_BACKUP_OPS = 551 -DOMAIN_ALIAS_RID_REPLICATOR = 552 -DOMAIN_ALIAS_RID_RAS_SERVERS = 553 -DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 554 -DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 555 -DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 556 -DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 557 -DOMAIN_ALIAS_RID_MONITORING_USERS = 558 -DOMAIN_ALIAS_RID_LOGGING_USERS = 559 -DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 560 -DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 561 -DOMAIN_ALIAS_RID_DCOM_USERS = 562 -DOMAIN_ALIAS_RID_IUSERS = 568 -DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 569 -DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 571 -DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 572 -DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 573 - -SECURITY_MANDATORY_LABEL_AUTHORITY = (0,0,0,0,0,16) -SECURITY_MANDATORY_UNTRUSTED_RID = 0x00000000 -SECURITY_MANDATORY_LOW_RID = 0x00001000 -SECURITY_MANDATORY_MEDIUM_RID = 0x00002000 -SECURITY_MANDATORY_HIGH_RID = 0x00003000 -SECURITY_MANDATORY_SYSTEM_RID = 0x00004000 -SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 0x00005000 -SECURITY_MANDATORY_MAXIMUM_USER_RID = SECURITY_MANDATORY_SYSTEM_RID - -SYSTEM_LUID = (999, 0) -ANONYMOUS_LOGON_LUID = (998, 0) -LOCALSERVICE_LUID = (997, 0) -NETWORKSERVICE_LUID = (996, 0) -IUSER_LUID = (995, 0) - -# Group attributes - -SE_GROUP_MANDATORY = 1 -SE_GROUP_ENABLED_BY_DEFAULT = 2 -SE_GROUP_ENABLED = 4 -SE_GROUP_OWNER = 8 -SE_GROUP_USE_FOR_DENY_ONLY = 16 -SE_GROUP_INTEGRITY = 32 -SE_GROUP_INTEGRITY_ENABLED = 64 -SE_GROUP_RESOURCE = 536870912 -SE_GROUP_LOGON_ID = -1073741824 - - -# User attributes -# (None yet defined.) - -# ACE types -ACCESS_MIN_MS_ACE_TYPE = (0) -ACCESS_ALLOWED_ACE_TYPE = (0) -ACCESS_DENIED_ACE_TYPE = (1) -SYSTEM_AUDIT_ACE_TYPE = (2) -SYSTEM_ALARM_ACE_TYPE = (3) -ACCESS_MAX_MS_V2_ACE_TYPE = (3) -ACCESS_ALLOWED_COMPOUND_ACE_TYPE = (4) -ACCESS_MAX_MS_V3_ACE_TYPE = (4) -ACCESS_MIN_MS_OBJECT_ACE_TYPE = (5) -ACCESS_ALLOWED_OBJECT_ACE_TYPE = (5) -ACCESS_DENIED_OBJECT_ACE_TYPE = (6) -SYSTEM_AUDIT_OBJECT_ACE_TYPE = (7) -SYSTEM_ALARM_OBJECT_ACE_TYPE = (8) -ACCESS_MAX_MS_OBJECT_ACE_TYPE = (8) -ACCESS_MAX_MS_V4_ACE_TYPE = (8) -ACCESS_MAX_MS_ACE_TYPE = (8) -ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 9 -ACCESS_DENIED_CALLBACK_ACE_TYPE = 10 -ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 11 -ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 12 -SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 13 -SYSTEM_ALARM_CALLBACK_ACE_TYPE = 14 -SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 15 -SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 16 -SYSTEM_MANDATORY_LABEL_ACE_TYPE = 17 -ACCESS_MAX_MS_V5_ACE_TYPE = 17 - -# The following are the inherit flags that go into the AceFlags field -# of an Ace header. - -OBJECT_INHERIT_ACE = 1 -CONTAINER_INHERIT_ACE = 2 -NO_PROPAGATE_INHERIT_ACE = 4 -INHERIT_ONLY_ACE = 8 -VALID_INHERIT_FLAGS = 15 - - -SUCCESSFUL_ACCESS_ACE_FLAG = 64 -FAILED_ACCESS_ACE_FLAG = 128 - -SE_OWNER_DEFAULTED = 1 -SE_GROUP_DEFAULTED = 2 -SE_DACL_PRESENT = 4 -SE_DACL_DEFAULTED = 8 -SE_SACL_PRESENT = 16 -SE_SACL_DEFAULTED = 32 -SE_SELF_RELATIVE = 32768 - - -SE_PRIVILEGE_ENABLED_BY_DEFAULT = 1 -SE_PRIVILEGE_ENABLED = 2 -SE_PRIVILEGE_USED_FOR_ACCESS = -2147483648 - -PRIVILEGE_SET_ALL_NECESSARY = 1 - -# NT Defined Privileges - -SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege" -SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege" -SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege" -SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege" -SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege" -SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege" -SE_TCB_NAME = "SeTcbPrivilege" -SE_SECURITY_NAME = "SeSecurityPrivilege" -SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege" -SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege" -SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege" -SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege" -SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege" -SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege" -SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege" -SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege" -SE_BACKUP_NAME = "SeBackupPrivilege" -SE_RESTORE_NAME = "SeRestorePrivilege" -SE_SHUTDOWN_NAME = "SeShutdownPrivilege" -SE_DEBUG_NAME = "SeDebugPrivilege" -SE_AUDIT_NAME = "SeAuditPrivilege" -SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege" -SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege" -SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege" - - -# Enum SECURITY_IMPERSONATION_LEVEL: -SecurityAnonymous = 0 -SecurityIdentification = 1 -SecurityImpersonation = 2 -SecurityDelegation = 3 - -SECURITY_MAX_IMPERSONATION_LEVEL = SecurityDelegation - -DEFAULT_IMPERSONATION_LEVEL = SecurityImpersonation - -TOKEN_ASSIGN_PRIMARY = 1 -TOKEN_DUPLICATE = 2 -TOKEN_IMPERSONATE = 4 -TOKEN_QUERY = 8 -TOKEN_QUERY_SOURCE = 16 -TOKEN_ADJUST_PRIVILEGES = 32 -TOKEN_ADJUST_GROUPS = 64 -TOKEN_ADJUST_DEFAULT = 128 - -TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED |\ - TOKEN_ASSIGN_PRIMARY |\ - TOKEN_DUPLICATE |\ - TOKEN_IMPERSONATE |\ - TOKEN_QUERY |\ - TOKEN_QUERY_SOURCE |\ - TOKEN_ADJUST_PRIVILEGES |\ - TOKEN_ADJUST_GROUPS |\ - TOKEN_ADJUST_DEFAULT) - - -TOKEN_READ = (STANDARD_RIGHTS_READ |\ - TOKEN_QUERY) - - -TOKEN_WRITE = (STANDARD_RIGHTS_WRITE |\ - TOKEN_ADJUST_PRIVILEGES |\ - TOKEN_ADJUST_GROUPS |\ - TOKEN_ADJUST_DEFAULT) - -TOKEN_EXECUTE = (STANDARD_RIGHTS_EXECUTE) - -SidTypeUser = 1 -SidTypeGroup = 2 -SidTypeDomain =3 -SidTypeAlias = 4 -SidTypeWellKnownGroup = 5 -SidTypeDeletedAccount = 6 -SidTypeInvalid = 7 -SidTypeUnknown = 8 -SidTypeComputer = 9 -SidTypeLabel = 10 - -# Token types -TokenPrimary = 1 -TokenImpersonation = 2 - -# TOKEN_INFORMATION_CLASS, used with Get/SetTokenInformation -TokenUser = 1 -TokenGroups = 2 -TokenPrivileges = 3 -TokenOwner = 4 -TokenPrimaryGroup = 5 -TokenDefaultDacl = 6 -TokenSource = 7 -TokenType = 8 -TokenImpersonationLevel = 9 -TokenStatistics = 10 -TokenRestrictedSids = 11 -TokenSessionId = 12 -TokenGroupsAndPrivileges = 13 -TokenSessionReference = 14 -TokenSandBoxInert = 15 -TokenAuditPolicy = 16 -TokenOrigin = 17 -TokenElevationType = 18 -TokenLinkedToken = 19 -TokenElevation = 20 -TokenHasRestrictions = 21 -TokenAccessInformation = 22 -TokenVirtualizationAllowed = 23 -TokenVirtualizationEnabled = 24 -TokenIntegrityLevel = 25 -TokenUIAccess = 26 -TokenMandatoryPolicy = 27 -TokenLogonSid = 28 - -# DirectoryService related constants. -# Generated by h2py from NtDsAPI.h -DS_BEHAVIOR_WIN2000 = 0 -DS_BEHAVIOR_WIN2003_WITH_MIXED_DOMAINS = 1 -DS_BEHAVIOR_WIN2003 = 2 -DS_SYNCED_EVENT_NAME = "NTDSInitialSyncsCompleted" -ACTRL_DS_OPEN = 0x00000000 -ACTRL_DS_CREATE_CHILD = 0x00000001 -ACTRL_DS_DELETE_CHILD = 0x00000002 -ACTRL_DS_LIST = 0x00000004 -ACTRL_DS_SELF = 0x00000008 -ACTRL_DS_READ_PROP = 0x00000010 -ACTRL_DS_WRITE_PROP = 0x00000020 -ACTRL_DS_DELETE_TREE = 0x00000040 -ACTRL_DS_LIST_OBJECT = 0x00000080 -ACTRL_DS_CONTROL_ACCESS = 0x00000100 -NTDSAPI_BIND_ALLOW_DELEGATION = (0x00000001) -DS_REPSYNC_ASYNCHRONOUS_OPERATION = 0x00000001 -DS_REPSYNC_WRITEABLE = 0x00000002 -DS_REPSYNC_PERIODIC = 0x00000004 -DS_REPSYNC_INTERSITE_MESSAGING = 0x00000008 -DS_REPSYNC_ALL_SOURCES = 0x00000010 -DS_REPSYNC_FULL = 0x00000020 -DS_REPSYNC_URGENT = 0x00000040 -DS_REPSYNC_NO_DISCARD = 0x00000080 -DS_REPSYNC_FORCE = 0x00000100 -DS_REPSYNC_ADD_REFERENCE = 0x00000200 -DS_REPSYNC_NEVER_COMPLETED = 0x00000400 -DS_REPSYNC_TWO_WAY = 0x00000800 -DS_REPSYNC_NEVER_NOTIFY = 0x00001000 -DS_REPSYNC_INITIAL = 0x00002000 -DS_REPSYNC_USE_COMPRESSION = 0x00004000 -DS_REPSYNC_ABANDONED = 0x00008000 -DS_REPSYNC_INITIAL_IN_PROGRESS = 0x00010000 -DS_REPSYNC_PARTIAL_ATTRIBUTE_SET = 0x00020000 -DS_REPSYNC_REQUEUE = 0x00040000 -DS_REPSYNC_NOTIFICATION = 0x00080000 -DS_REPSYNC_ASYNCHRONOUS_REPLICA = 0x00100000 -DS_REPSYNC_CRITICAL = 0x00200000 -DS_REPSYNC_FULL_IN_PROGRESS = 0x00400000 -DS_REPSYNC_PREEMPTED = 0x00800000 -DS_REPADD_ASYNCHRONOUS_OPERATION = 0x00000001 -DS_REPADD_WRITEABLE = 0x00000002 -DS_REPADD_INITIAL = 0x00000004 -DS_REPADD_PERIODIC = 0x00000008 -DS_REPADD_INTERSITE_MESSAGING = 0x00000010 -DS_REPADD_ASYNCHRONOUS_REPLICA = 0x00000020 -DS_REPADD_DISABLE_NOTIFICATION = 0x00000040 -DS_REPADD_DISABLE_PERIODIC = 0x00000080 -DS_REPADD_USE_COMPRESSION = 0x00000100 -DS_REPADD_NEVER_NOTIFY = 0x00000200 -DS_REPADD_TWO_WAY = 0x00000400 -DS_REPADD_CRITICAL = 0x00000800 -DS_REPDEL_ASYNCHRONOUS_OPERATION = 0x00000001 -DS_REPDEL_WRITEABLE = 0x00000002 -DS_REPDEL_INTERSITE_MESSAGING = 0x00000004 -DS_REPDEL_IGNORE_ERRORS = 0x00000008 -DS_REPDEL_LOCAL_ONLY = 0x00000010 -DS_REPDEL_NO_SOURCE = 0x00000020 -DS_REPDEL_REF_OK = 0x00000040 -DS_REPMOD_ASYNCHRONOUS_OPERATION = 0x00000001 -DS_REPMOD_WRITEABLE = 0x00000002 -DS_REPMOD_UPDATE_FLAGS = 0x00000001 -DS_REPMOD_UPDATE_ADDRESS = 0x00000002 -DS_REPMOD_UPDATE_SCHEDULE = 0x00000004 -DS_REPMOD_UPDATE_RESULT = 0x00000008 -DS_REPMOD_UPDATE_TRANSPORT = 0x00000010 -DS_REPUPD_ASYNCHRONOUS_OPERATION = 0x00000001 -DS_REPUPD_WRITEABLE = 0x00000002 -DS_REPUPD_ADD_REFERENCE = 0x00000004 -DS_REPUPD_DELETE_REFERENCE = 0x00000008 -DS_INSTANCETYPE_IS_NC_HEAD = 0x00000001 -DS_INSTANCETYPE_NC_IS_WRITEABLE = 0x00000004 -DS_INSTANCETYPE_NC_COMING = 0x00000010 -DS_INSTANCETYPE_NC_GOING = 0x00000020 -NTDSDSA_OPT_IS_GC = ( 1 << 0 ) -NTDSDSA_OPT_DISABLE_INBOUND_REPL = ( 1 << 1 ) -NTDSDSA_OPT_DISABLE_OUTBOUND_REPL = ( 1 << 2 ) -NTDSDSA_OPT_DISABLE_NTDSCONN_XLATE = ( 1 << 3 ) -NTDSCONN_OPT_IS_GENERATED = ( 1 << 0 ) -NTDSCONN_OPT_TWOWAY_SYNC = ( 1 << 1 ) -NTDSCONN_OPT_OVERRIDE_NOTIFY_DEFAULT = (1 << 2 ) -NTDSCONN_OPT_USE_NOTIFY = (1 << 3) -NTDSCONN_OPT_DISABLE_INTERSITE_COMPRESSION = (1 << 4) -NTDSCONN_OPT_USER_OWNED_SCHEDULE = (1 << 5) -NTDSCONN_KCC_NO_REASON = ( 0 ) -NTDSCONN_KCC_GC_TOPOLOGY = ( 1 << 0 ) -NTDSCONN_KCC_RING_TOPOLOGY = ( 1 << 1 ) -NTDSCONN_KCC_MINIMIZE_HOPS_TOPOLOGY = ( 1 << 2 ) -NTDSCONN_KCC_STALE_SERVERS_TOPOLOGY = ( 1 << 3 ) -NTDSCONN_KCC_OSCILLATING_CONNECTION_TOPOLOGY = ( 1 << 4 ) -NTDSCONN_KCC_INTERSITE_GC_TOPOLOGY = (1 << 5) -NTDSCONN_KCC_INTERSITE_TOPOLOGY = (1 << 6) -NTDSCONN_KCC_SERVER_FAILOVER_TOPOLOGY = (1 << 7) -NTDSCONN_KCC_SITE_FAILOVER_TOPOLOGY = (1 << 8) -NTDSCONN_KCC_REDUNDANT_SERVER_TOPOLOGY = (1 << 9) -FRSCONN_PRIORITY_MASK = 0x70000000 -FRSCONN_MAX_PRIORITY = 0x8 -NTDSCONN_OPT_IGNORE_SCHEDULE_MASK = (-2147483648) - -NTDSSETTINGS_OPT_IS_AUTO_TOPOLOGY_DISABLED = ( 1 << 0 ) -NTDSSETTINGS_OPT_IS_TOPL_CLEANUP_DISABLED = ( 1 << 1 ) -NTDSSETTINGS_OPT_IS_TOPL_MIN_HOPS_DISABLED = ( 1 << 2 ) -NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED = ( 1 << 3 ) -NTDSSETTINGS_OPT_IS_INTER_SITE_AUTO_TOPOLOGY_DISABLED = ( 1 << 4 ) -NTDSSETTINGS_OPT_IS_GROUP_CACHING_ENABLED = ( 1 << 5 ) -NTDSSETTINGS_OPT_FORCE_KCC_WHISTLER_BEHAVIOR = ( 1 << 6 ) -NTDSSETTINGS_OPT_FORCE_KCC_W2K_ELECTION = ( 1 << 7 ) -NTDSSETTINGS_OPT_IS_RAND_BH_SELECTION_DISABLED = ( 1 << 8 ) -NTDSSETTINGS_OPT_IS_SCHEDULE_HASHING_ENABLED = ( 1 << 9 ) -NTDSSETTINGS_OPT_IS_REDUNDANT_SERVER_TOPOLOGY_ENABLED = ( 1 << 10 ) -NTDSSETTINGS_DEFAULT_SERVER_REDUNDANCY = 2 -NTDSTRANSPORT_OPT_IGNORE_SCHEDULES = ( 1 << 0 ) -NTDSTRANSPORT_OPT_BRIDGES_REQUIRED = (1 << 1 ) -NTDSSITECONN_OPT_USE_NOTIFY = ( 1 << 0 ) -NTDSSITECONN_OPT_TWOWAY_SYNC = ( 1 << 1 ) -NTDSSITECONN_OPT_DISABLE_COMPRESSION = ( 1 << 2 ) -NTDSSITELINK_OPT_USE_NOTIFY = ( 1 << 0 ) -NTDSSITELINK_OPT_TWOWAY_SYNC = ( 1 << 1 ) -NTDSSITELINK_OPT_DISABLE_COMPRESSION = ( 1 << 2 ) -GUID_USERS_CONTAINER_A = "a9d1ca15768811d1aded00c04fd8d5cd" -GUID_COMPUTRS_CONTAINER_A = "aa312825768811d1aded00c04fd8d5cd" -GUID_SYSTEMS_CONTAINER_A = "ab1d30f3768811d1aded00c04fd8d5cd" -GUID_DOMAIN_CONTROLLERS_CONTAINER_A = "a361b2ffffd211d1aa4b00c04fd7d83a" -GUID_INFRASTRUCTURE_CONTAINER_A = "2fbac1870ade11d297c400c04fd8d5cd" -GUID_DELETED_OBJECTS_CONTAINER_A = "18e2ea80684f11d2b9aa00c04f79f805" -GUID_LOSTANDFOUND_CONTAINER_A = "ab8153b7768811d1aded00c04fd8d5cd" -GUID_FOREIGNSECURITYPRINCIPALS_CONTAINER_A = "22b70c67d56e4efb91e9300fca3dc1aa" -GUID_PROGRAM_DATA_CONTAINER_A = "09460c08ae1e4a4ea0f64aee7daa1e5a" -GUID_MICROSOFT_PROGRAM_DATA_CONTAINER_A = "f4be92a4c777485e878e9421d53087db" -GUID_NTDS_QUOTAS_CONTAINER_A = "6227f0af1fc2410d8e3bb10615bb5b0f" -GUID_USERS_CONTAINER_BYTE = "\xa9\xd1\xca\x15\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" -GUID_COMPUTRS_CONTAINER_BYTE = "\xaa\x31\x28\x25\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" -GUID_SYSTEMS_CONTAINER_BYTE = "\xab\x1d\x30\xf3\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" -GUID_DOMAIN_CONTROLLERS_CONTAINER_BYTE = "\xa3\x61\xb2\xff\xff\xd2\x11\xd1\xaa\x4b\x00\xc0\x4f\xd7\xd8\x3a" -GUID_INFRASTRUCTURE_CONTAINER_BYTE = "\x2f\xba\xc1\x87\x0a\xde\x11\xd2\x97\xc4\x00\xc0\x4f\xd8\xd5\xcd" -GUID_DELETED_OBJECTS_CONTAINER_BYTE = "\x18\xe2\xea\x80\x68\x4f\x11\xd2\xb9\xaa\x00\xc0\x4f\x79\xf8\x05" -GUID_LOSTANDFOUND_CONTAINER_BYTE = "\xab\x81\x53\xb7\x76\x88\x11\xd1\xad\xed\x00\xc0\x4f\xd8\xd5\xcd" -GUID_FOREIGNSECURITYPRINCIPALS_CONTAINER_BYTE = "\x22\xb7\x0c\x67\xd5\x6e\x4e\xfb\x91\xe9\x30\x0f\xca\x3d\xc1\xaa" -GUID_PROGRAM_DATA_CONTAINER_BYTE = "\x09\x46\x0c\x08\xae\x1e\x4a\x4e\xa0\xf6\x4a\xee\x7d\xaa\x1e\x5a" -GUID_MICROSOFT_PROGRAM_DATA_CONTAINER_BYTE = "\xf4\xbe\x92\xa4\xc7\x77\x48\x5e\x87\x8e\x94\x21\xd5\x30\x87\xdb" -GUID_NTDS_QUOTAS_CONTAINER_BYTE = "\x62\x27\xf0\xaf\x1f\xc2\x41\x0d\x8e\x3b\xb1\x06\x15\xbb\x5b\x0f" -DS_REPSYNCALL_NO_OPTIONS = 0x00000000 -DS_REPSYNCALL_ABORT_IF_SERVER_UNAVAILABLE = 0x00000001 -DS_REPSYNCALL_SYNC_ADJACENT_SERVERS_ONLY = 0x00000002 -DS_REPSYNCALL_ID_SERVERS_BY_DN = 0x00000004 -DS_REPSYNCALL_DO_NOT_SYNC = 0x00000008 -DS_REPSYNCALL_SKIP_INITIAL_CHECK = 0x00000010 -DS_REPSYNCALL_PUSH_CHANGES_OUTWARD = 0x00000020 -DS_REPSYNCALL_CROSS_SITE_BOUNDARIES = 0x00000040 -DS_LIST_DSA_OBJECT_FOR_SERVER = 0 -DS_LIST_DNS_HOST_NAME_FOR_SERVER = 1 -DS_LIST_ACCOUNT_OBJECT_FOR_SERVER = 2 -DS_ROLE_SCHEMA_OWNER = 0 -DS_ROLE_DOMAIN_OWNER = 1 -DS_ROLE_PDC_OWNER = 2 -DS_ROLE_RID_OWNER = 3 -DS_ROLE_INFRASTRUCTURE_OWNER = 4 -DS_SCHEMA_GUID_NOT_FOUND = 0 -DS_SCHEMA_GUID_ATTR = 1 -DS_SCHEMA_GUID_ATTR_SET = 2 -DS_SCHEMA_GUID_CLASS = 3 -DS_SCHEMA_GUID_CONTROL_RIGHT = 4 -DS_KCC_FLAG_ASYNC_OP = (1 << 0) -DS_KCC_FLAG_DAMPED = (1 << 1) -DS_EXIST_ADVISORY_MODE = (0x1) -DS_REPL_INFO_FLAG_IMPROVE_LINKED_ATTRS = (0x00000001) -DS_REPL_NBR_WRITEABLE = (0x00000010) -DS_REPL_NBR_SYNC_ON_STARTUP = (0x00000020) -DS_REPL_NBR_DO_SCHEDULED_SYNCS = (0x00000040) -DS_REPL_NBR_USE_ASYNC_INTERSITE_TRANSPORT = (0x00000080) -DS_REPL_NBR_TWO_WAY_SYNC = (0x00000200) -DS_REPL_NBR_RETURN_OBJECT_PARENTS = (0x00000800) -DS_REPL_NBR_FULL_SYNC_IN_PROGRESS = (0x00010000) -DS_REPL_NBR_FULL_SYNC_NEXT_PACKET = (0x00020000) -DS_REPL_NBR_NEVER_SYNCED = (0x00200000) -DS_REPL_NBR_PREEMPTED = (0x01000000) -DS_REPL_NBR_IGNORE_CHANGE_NOTIFICATIONS = (0x04000000) -DS_REPL_NBR_DISABLE_SCHEDULED_SYNC = (0x08000000) -DS_REPL_NBR_COMPRESS_CHANGES = (0x10000000) -DS_REPL_NBR_NO_CHANGE_NOTIFICATIONS = (0x20000000) -DS_REPL_NBR_PARTIAL_ATTRIBUTE_SET = (0x40000000) -DS_REPL_NBR_MODIFIABLE_MASK = \ - ( \ - DS_REPL_NBR_SYNC_ON_STARTUP | \ - DS_REPL_NBR_DO_SCHEDULED_SYNCS | \ - DS_REPL_NBR_TWO_WAY_SYNC | \ - DS_REPL_NBR_IGNORE_CHANGE_NOTIFICATIONS | \ - DS_REPL_NBR_DISABLE_SCHEDULED_SYNC | \ - DS_REPL_NBR_COMPRESS_CHANGES | \ - DS_REPL_NBR_NO_CHANGE_NOTIFICATIONS \ - ) - -# from enum DS_NAME_FORMAT -DS_UNKNOWN_NAME = 0 -DS_FQDN_1779_NAME = 1 -DS_NT4_ACCOUNT_NAME = 2 -DS_DISPLAY_NAME = 3 -DS_UNIQUE_ID_NAME = 6 -DS_CANONICAL_NAME = 7 -DS_USER_PRINCIPAL_NAME = 8 -DS_CANONICAL_NAME_EX = 9 -DS_SERVICE_PRINCIPAL_NAME = 10 -DS_SID_OR_SID_HISTORY_NAME = 11 -DS_DNS_DOMAIN_NAME = 12 - -DS_DOMAIN_SIMPLE_NAME = DS_USER_PRINCIPAL_NAME -DS_ENTERPRISE_SIMPLE_NAME = DS_USER_PRINCIPAL_NAME - -# from enum DS_NAME_FLAGS -DS_NAME_NO_FLAGS = 0x0 -DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1 -DS_NAME_FLAG_EVAL_AT_DC = 0x2 -DS_NAME_FLAG_GCVERIFY = 0x4 -DS_NAME_FLAG_TRUST_REFERRAL = 0x8 - -# from enum DS_NAME_ERROR -DS_NAME_NO_ERROR = 0 -DS_NAME_ERROR_RESOLVING = 1 -DS_NAME_ERROR_NOT_FOUND = 2 -DS_NAME_ERROR_NOT_UNIQUE = 3 -DS_NAME_ERROR_NO_MAPPING = 4 -DS_NAME_ERROR_DOMAIN_ONLY = 5 -DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 6 -DS_NAME_ERROR_TRUST_REFERRAL = 7 - - -# from enum DS_SPN_NAME_TYPE -DS_SPN_DNS_HOST = 0 -DS_SPN_DN_HOST = 1 -DS_SPN_NB_HOST = 2 -DS_SPN_DOMAIN = 3 -DS_SPN_NB_DOMAIN = 4 -DS_SPN_SERVICE = 5 - -# from enum DS_SPN_WRITE_OP -DS_SPN_ADD_SPN_OP = 0 -DS_SPN_REPLACE_SPN_OP = 1 -DS_SPN_DELETE_SPN_OP = 2 - -# Generated by h2py from DsGetDC.h -DS_FORCE_REDISCOVERY = 0x00000001 -DS_DIRECTORY_SERVICE_REQUIRED = 0x00000010 -DS_DIRECTORY_SERVICE_PREFERRED = 0x00000020 -DS_GC_SERVER_REQUIRED = 0x00000040 -DS_PDC_REQUIRED = 0x00000080 -DS_BACKGROUND_ONLY = 0x00000100 -DS_IP_REQUIRED = 0x00000200 -DS_KDC_REQUIRED = 0x00000400 -DS_TIMESERV_REQUIRED = 0x00000800 -DS_WRITABLE_REQUIRED = 0x00001000 -DS_GOOD_TIMESERV_PREFERRED = 0x00002000 -DS_AVOID_SELF = 0x00004000 -DS_ONLY_LDAP_NEEDED = 0x00008000 -DS_IS_FLAT_NAME = 0x00010000 -DS_IS_DNS_NAME = 0x00020000 -DS_RETURN_DNS_NAME = 0x40000000 -DS_RETURN_FLAT_NAME = (-2147483648) -DSGETDC_VALID_FLAGS = ( \ - DS_FORCE_REDISCOVERY | \ - DS_DIRECTORY_SERVICE_REQUIRED | \ - DS_DIRECTORY_SERVICE_PREFERRED | \ - DS_GC_SERVER_REQUIRED | \ - DS_PDC_REQUIRED | \ - DS_BACKGROUND_ONLY | \ - DS_IP_REQUIRED | \ - DS_KDC_REQUIRED | \ - DS_TIMESERV_REQUIRED | \ - DS_WRITABLE_REQUIRED | \ - DS_GOOD_TIMESERV_PREFERRED | \ - DS_AVOID_SELF | \ - DS_ONLY_LDAP_NEEDED | \ - DS_IS_FLAT_NAME | \ - DS_IS_DNS_NAME | \ - DS_RETURN_FLAT_NAME | \ - DS_RETURN_DNS_NAME ) -DS_INET_ADDRESS = 1 -DS_NETBIOS_ADDRESS = 2 -DS_PDC_FLAG = 0x00000001 -DS_GC_FLAG = 0x00000004 -DS_LDAP_FLAG = 0x00000008 -DS_DS_FLAG = 0x00000010 -DS_KDC_FLAG = 0x00000020 -DS_TIMESERV_FLAG = 0x00000040 -DS_CLOSEST_FLAG = 0x00000080 -DS_WRITABLE_FLAG = 0x00000100 -DS_GOOD_TIMESERV_FLAG = 0x00000200 -DS_NDNC_FLAG = 0x00000400 -DS_PING_FLAGS = 0x0000FFFF -DS_DNS_CONTROLLER_FLAG = 0x20000000 -DS_DNS_DOMAIN_FLAG = 0x40000000 -DS_DNS_FOREST_FLAG = (-2147483648) -DS_DOMAIN_IN_FOREST = 0x0001 -DS_DOMAIN_DIRECT_OUTBOUND = 0x0002 -DS_DOMAIN_TREE_ROOT = 0x0004 -DS_DOMAIN_PRIMARY = 0x0008 -DS_DOMAIN_NATIVE_MODE = 0x0010 -DS_DOMAIN_DIRECT_INBOUND = 0x0020 -DS_DOMAIN_VALID_FLAGS = ( \ - DS_DOMAIN_IN_FOREST | \ - DS_DOMAIN_DIRECT_OUTBOUND | \ - DS_DOMAIN_TREE_ROOT | \ - DS_DOMAIN_PRIMARY | \ - DS_DOMAIN_NATIVE_MODE | \ - DS_DOMAIN_DIRECT_INBOUND ) -DS_GFTI_UPDATE_TDO = 0x1 -DS_GFTI_VALID_FLAGS = 0x1 -DS_ONLY_DO_SITE_NAME = 0x01 -DS_NOTIFY_AFTER_SITE_RECORDS = 0x02 -DS_OPEN_VALID_OPTION_FLAGS = ( DS_ONLY_DO_SITE_NAME | DS_NOTIFY_AFTER_SITE_RECORDS ) -DS_OPEN_VALID_FLAGS = ( \ - DS_FORCE_REDISCOVERY | \ - DS_ONLY_LDAP_NEEDED | \ - DS_KDC_REQUIRED | \ - DS_PDC_REQUIRED | \ - DS_GC_SERVER_REQUIRED | \ - DS_WRITABLE_REQUIRED ) - -## from aclui.h -# SI_OBJECT_INFO.dwFlags -SI_EDIT_PERMS = 0x00000000 -SI_EDIT_OWNER = 0x00000001 -SI_EDIT_AUDITS = 0x00000002 -SI_CONTAINER = 0x00000004 -SI_READONLY = 0x00000008 -SI_ADVANCED = 0x00000010 -SI_RESET = 0x00000020 -SI_OWNER_READONLY = 0x00000040 -SI_EDIT_PROPERTIES = 0x00000080 -SI_OWNER_RECURSE = 0x00000100 -SI_NO_ACL_PROTECT = 0x00000200 -SI_NO_TREE_APPLY = 0x00000400 -SI_PAGE_TITLE = 0x00000800 -SI_SERVER_IS_DC = 0x00001000 -SI_RESET_DACL_TREE = 0x00004000 -SI_RESET_SACL_TREE = 0x00008000 -SI_OBJECT_GUID = 0x00010000 -SI_EDIT_EFFECTIVE = 0x00020000 -SI_RESET_DACL = 0x00040000 -SI_RESET_SACL = 0x00080000 -SI_RESET_OWNER = 0x00100000 -SI_NO_ADDITIONAL_PERMISSION = 0x00200000 -SI_MAY_WRITE = 0x10000000 -SI_EDIT_ALL = (SI_EDIT_PERMS | SI_EDIT_OWNER | SI_EDIT_AUDITS) -SI_AUDITS_ELEVATION_REQUIRED = 0x02000000 -SI_VIEW_ONLY = 0x00400000 -SI_OWNER_ELEVATION_REQUIRED = 0x04000000 -SI_PERMS_ELEVATION_REQUIRED = 0x01000000 - -# SI_ACCESS.dwFlags -SI_ACCESS_SPECIFIC = 0x00010000 -SI_ACCESS_GENERAL = 0x00020000 -SI_ACCESS_CONTAINER = 0x00040000 -SI_ACCESS_PROPERTY = 0x00080000 - -# SI_PAGE_TYPE enum -SI_PAGE_PERM = 0 -SI_PAGE_ADVPERM = 1 -SI_PAGE_AUDIT = 2 -SI_PAGE_OWNER = 3 -SI_PAGE_EFFECTIVE =4 - -CFSTR_ACLUI_SID_INFO_LIST = "CFSTR_ACLUI_SID_INFO_LIST" -PSPCB_SI_INITDIALOG = 1025 ## WM_USER+1 diff --git a/typings/win32helper/sspicon.pyi b/typings/win32helper/sspicon.pyi deleted file mode 100644 index 1e61d498..00000000 --- a/typings/win32helper/sspicon.pyi +++ /dev/null @@ -1,479 +0,0 @@ -# Generated by h2py from c:\microsoft sdk\include\sspi.h -ISSP_LEVEL = 32 -ISSP_MODE = 1 -ISSP_LEVEL = 32 -ISSP_MODE = 0 -ISSP_LEVEL = 32 -ISSP_MODE = 1 -def SEC_SUCCESS(Status): return ((Status) >= 0) - -SECPKG_FLAG_INTEGRITY = 1 -SECPKG_FLAG_PRIVACY = 2 -SECPKG_FLAG_TOKEN_ONLY = 4 -SECPKG_FLAG_DATAGRAM = 8 -SECPKG_FLAG_CONNECTION = 16 -SECPKG_FLAG_MULTI_REQUIRED = 32 -SECPKG_FLAG_CLIENT_ONLY = 64 -SECPKG_FLAG_EXTENDED_ERROR = 128 -SECPKG_FLAG_IMPERSONATION = 256 -SECPKG_FLAG_ACCEPT_WIN32_NAME = 512 -SECPKG_FLAG_STREAM = 1024 -SECPKG_FLAG_NEGOTIABLE = 2048 -SECPKG_FLAG_GSS_COMPATIBLE = 4096 -SECPKG_FLAG_LOGON = 8192 -SECPKG_FLAG_ASCII_BUFFERS = 16384 -SECPKG_FLAG_FRAGMENT = 32768 -SECPKG_FLAG_MUTUAL_AUTH = 65536 -SECPKG_FLAG_DELEGATION = 131072 -SECPKG_FLAG_READONLY_WITH_CHECKSUM = 262144 -SECPKG_ID_NONE = 65535 - -SECBUFFER_VERSION = 0 -SECBUFFER_EMPTY = 0 -SECBUFFER_DATA = 1 -SECBUFFER_TOKEN = 2 -SECBUFFER_PKG_PARAMS = 3 -SECBUFFER_MISSING = 4 -SECBUFFER_EXTRA = 5 -SECBUFFER_STREAM_TRAILER = 6 -SECBUFFER_STREAM_HEADER = 7 -SECBUFFER_NEGOTIATION_INFO = 8 -SECBUFFER_PADDING = 9 -SECBUFFER_STREAM = 10 -SECBUFFER_MECHLIST = 11 -SECBUFFER_MECHLIST_SIGNATURE = 12 -SECBUFFER_TARGET = 13 -SECBUFFER_CHANNEL_BINDINGS = 14 -SECBUFFER_ATTRMASK = (-268435456) -SECBUFFER_READONLY = (-2147483648) -SECBUFFER_READONLY_WITH_CHECKSUM = 268435456 -SECBUFFER_RESERVED = 1610612736 - -SECURITY_NATIVE_DREP = 16 -SECURITY_NETWORK_DREP = 0 - -SECPKG_CRED_INBOUND = 1 -SECPKG_CRED_OUTBOUND = 2 -SECPKG_CRED_BOTH = 3 -SECPKG_CRED_DEFAULT = 4 -SECPKG_CRED_RESERVED = -268435456 - -ISC_REQ_DELEGATE = 1 -ISC_REQ_MUTUAL_AUTH = 2 -ISC_REQ_REPLAY_DETECT = 4 -ISC_REQ_SEQUENCE_DETECT = 8 -ISC_REQ_CONFIDENTIALITY = 16 -ISC_REQ_USE_SESSION_KEY = 32 -ISC_REQ_PROMPT_FOR_CREDS = 64 -ISC_REQ_USE_SUPPLIED_CREDS = 128 -ISC_REQ_ALLOCATE_MEMORY = 256 -ISC_REQ_USE_DCE_STYLE = 512 -ISC_REQ_DATAGRAM = 1024 -ISC_REQ_CONNECTION = 2048 -ISC_REQ_CALL_LEVEL = 4096 -ISC_REQ_FRAGMENT_SUPPLIED = 8192 -ISC_REQ_EXTENDED_ERROR = 16384 -ISC_REQ_STREAM = 32768 -ISC_REQ_INTEGRITY = 65536 -ISC_REQ_IDENTIFY = 131072 -ISC_REQ_NULL_SESSION = 262144 -ISC_REQ_MANUAL_CRED_VALIDATION = 524288 -ISC_REQ_RESERVED1 = 1048576 -ISC_REQ_FRAGMENT_TO_FIT = 2097152 -ISC_REQ_HTTP = 0x10000000 -ISC_RET_DELEGATE = 1 -ISC_RET_MUTUAL_AUTH = 2 -ISC_RET_REPLAY_DETECT = 4 -ISC_RET_SEQUENCE_DETECT = 8 -ISC_RET_CONFIDENTIALITY = 16 -ISC_RET_USE_SESSION_KEY = 32 -ISC_RET_USED_COLLECTED_CREDS = 64 -ISC_RET_USED_SUPPLIED_CREDS = 128 -ISC_RET_ALLOCATED_MEMORY = 256 -ISC_RET_USED_DCE_STYLE = 512 -ISC_RET_DATAGRAM = 1024 -ISC_RET_CONNECTION = 2048 -ISC_RET_INTERMEDIATE_RETURN = 4096 -ISC_RET_CALL_LEVEL = 8192 -ISC_RET_EXTENDED_ERROR = 16384 -ISC_RET_STREAM = 32768 -ISC_RET_INTEGRITY = 65536 -ISC_RET_IDENTIFY = 131072 -ISC_RET_NULL_SESSION = 262144 -ISC_RET_MANUAL_CRED_VALIDATION = 524288 -ISC_RET_RESERVED1 = 1048576 -ISC_RET_FRAGMENT_ONLY = 2097152 - -ASC_REQ_DELEGATE = 1 -ASC_REQ_MUTUAL_AUTH = 2 -ASC_REQ_REPLAY_DETECT = 4 -ASC_REQ_SEQUENCE_DETECT = 8 -ASC_REQ_CONFIDENTIALITY = 16 -ASC_REQ_USE_SESSION_KEY = 32 -ASC_REQ_ALLOCATE_MEMORY = 256 -ASC_REQ_USE_DCE_STYLE = 512 -ASC_REQ_DATAGRAM = 1024 -ASC_REQ_CONNECTION = 2048 -ASC_REQ_CALL_LEVEL = 4096 -ASC_REQ_EXTENDED_ERROR = 32768 -ASC_REQ_STREAM = 65536 -ASC_REQ_INTEGRITY = 131072 -ASC_REQ_LICENSING = 262144 -ASC_REQ_IDENTIFY = 524288 -ASC_REQ_ALLOW_NULL_SESSION = 1048576 -ASC_REQ_ALLOW_NON_USER_LOGONS = 2097152 -ASC_REQ_ALLOW_CONTEXT_REPLAY = 4194304 -ASC_REQ_FRAGMENT_TO_FIT = 8388608 -ASC_REQ_FRAGMENT_SUPPLIED = 8192 -ASC_REQ_NO_TOKEN = 16777216 -ASC_RET_DELEGATE = 1 -ASC_RET_MUTUAL_AUTH = 2 -ASC_RET_REPLAY_DETECT = 4 -ASC_RET_SEQUENCE_DETECT = 8 -ASC_RET_CONFIDENTIALITY = 16 -ASC_RET_USE_SESSION_KEY = 32 -ASC_RET_ALLOCATED_MEMORY = 256 -ASC_RET_USED_DCE_STYLE = 512 -ASC_RET_DATAGRAM = 1024 -ASC_RET_CONNECTION = 2048 -ASC_RET_CALL_LEVEL = 8192 -ASC_RET_THIRD_LEG_FAILED = 16384 -ASC_RET_EXTENDED_ERROR = 32768 -ASC_RET_STREAM = 65536 -ASC_RET_INTEGRITY = 131072 -ASC_RET_LICENSING = 262144 -ASC_RET_IDENTIFY = 524288 -ASC_RET_NULL_SESSION = 1048576 -ASC_RET_ALLOW_NON_USER_LOGONS = 2097152 -ASC_RET_ALLOW_CONTEXT_REPLAY = 4194304 -ASC_RET_FRAGMENT_ONLY = 8388608 - -SECPKG_CRED_ATTR_NAMES = 1 -SECPKG_ATTR_SIZES = 0 -SECPKG_ATTR_NAMES = 1 -SECPKG_ATTR_LIFESPAN = 2 -SECPKG_ATTR_DCE_INFO = 3 -SECPKG_ATTR_STREAM_SIZES = 4 -SECPKG_ATTR_KEY_INFO = 5 -SECPKG_ATTR_AUTHORITY = 6 -SECPKG_ATTR_PROTO_INFO = 7 -SECPKG_ATTR_PASSWORD_EXPIRY = 8 -SECPKG_ATTR_SESSION_KEY = 9 -SECPKG_ATTR_PACKAGE_INFO = 10 -SECPKG_ATTR_USER_FLAGS = 11 -SECPKG_ATTR_NEGOTIATION_INFO = 12 -SECPKG_ATTR_NATIVE_NAMES = 13 -SECPKG_ATTR_FLAGS = 14 -SECPKG_ATTR_USE_VALIDATED = 15 -SECPKG_ATTR_CREDENTIAL_NAME = 16 -SECPKG_ATTR_TARGET_INFORMATION = 17 -SECPKG_ATTR_ACCESS_TOKEN = 18 -SECPKG_ATTR_TARGET = 19 -SECPKG_ATTR_AUTHENTICATION_ID = 20 - -## attributes from schannel.h -SECPKG_ATTR_REMOTE_CERT_CONTEXT = 83 -SECPKG_ATTR_LOCAL_CERT_CONTEXT = 84 -SECPKG_ATTR_ROOT_STORE = 85 -SECPKG_ATTR_SUPPORTED_ALGS = 86 -SECPKG_ATTR_CIPHER_STRENGTHS = 87 -SECPKG_ATTR_SUPPORTED_PROTOCOLS = 88 -SECPKG_ATTR_ISSUER_LIST_EX = 89 -SECPKG_ATTR_CONNECTION_INFO = 90 -SECPKG_ATTR_EAP_KEY_BLOCK = 91 -SECPKG_ATTR_MAPPED_CRED_ATTR = 92 -SECPKG_ATTR_SESSION_INFO = 93 -SECPKG_ATTR_APP_DATA = 94 - -SECPKG_NEGOTIATION_COMPLETE = 0 -SECPKG_NEGOTIATION_OPTIMISTIC = 1 -SECPKG_NEGOTIATION_IN_PROGRESS = 2 -SECPKG_NEGOTIATION_DIRECT = 3 -SECPKG_NEGOTIATION_TRY_MULTICRED = 4 -SECPKG_CONTEXT_EXPORT_RESET_NEW = 1 -SECPKG_CONTEXT_EXPORT_DELETE_OLD = 2 -SECQOP_WRAP_NO_ENCRYPT = (-2147483647) -SECURITY_ENTRYPOINT_ANSIW = "InitSecurityInterfaceW" -SECURITY_ENTRYPOINT_ANSIA = "InitSecurityInterfaceA" -SECURITY_ENTRYPOINT16 = "INITSECURITYINTERFACEA" -SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT_ANSIW -SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT_ANSIA -SECURITY_ENTRYPOINT = SECURITY_ENTRYPOINT16 -SECURITY_ENTRYPOINT_ANSI = SECURITY_ENTRYPOINT16 -SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION = 1 -SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 = 2 -SASL_OPTION_SEND_SIZE = 1 -SASL_OPTION_RECV_SIZE = 2 -SASL_OPTION_AUTHZ_STRING = 3 -SASL_OPTION_AUTHZ_PROCESSING = 4 -SEC_WINNT_AUTH_IDENTITY_ANSI = 1 -SEC_WINNT_AUTH_IDENTITY_UNICODE = 2 -SEC_WINNT_AUTH_IDENTITY_VERSION = 512 -SEC_WINNT_AUTH_IDENTITY_MARSHALLED = 4 -SEC_WINNT_AUTH_IDENTITY_ONLY = 8 -SECPKG_OPTIONS_TYPE_UNKNOWN = 0 -SECPKG_OPTIONS_TYPE_LSA = 1 -SECPKG_OPTIONS_TYPE_SSPI = 2 -SECPKG_OPTIONS_PERMANENT = 1 - -SEC_E_INSUFFICIENT_MEMORY = -2146893056 -SEC_E_INVALID_HANDLE = -2146893055 -SEC_E_UNSUPPORTED_FUNCTION = -2146893054 -SEC_E_TARGET_UNKNOWN = -2146893053 -SEC_E_INTERNAL_ERROR = -2146893052 -SEC_E_SECPKG_NOT_FOUND = -2146893051 -SEC_E_NOT_OWNER = -2146893050 -SEC_E_CANNOT_INSTALL = -2146893049 -SEC_E_INVALID_TOKEN = -2146893048 -SEC_E_CANNOT_PACK = -2146893047 -SEC_E_QOP_NOT_SUPPORTED = -2146893046 -SEC_E_NO_IMPERSONATION = -2146893045 -SEC_E_LOGON_DENIED = -2146893044 -SEC_E_UNKNOWN_CREDENTIALS = -2146893043 -SEC_E_NO_CREDENTIALS = -2146893042 -SEC_E_MESSAGE_ALTERED = -2146893041 -SEC_E_OUT_OF_SEQUENCE = -2146893040 -SEC_E_NO_AUTHENTICATING_AUTHORITY = -2146893039 -SEC_I_CONTINUE_NEEDED = 590610 -SEC_I_COMPLETE_NEEDED = 590611 -SEC_I_COMPLETE_AND_CONTINUE = 590612 -SEC_I_LOCAL_LOGON = 590613 -SEC_E_BAD_PKGID = -2146893034 -SEC_E_CONTEXT_EXPIRED = -2146893033 -SEC_I_CONTEXT_EXPIRED = 590615 -SEC_E_INCOMPLETE_MESSAGE = -2146893032 -SEC_E_INCOMPLETE_CREDENTIALS = -2146893024 -SEC_E_BUFFER_TOO_SMALL = -2146893023 -SEC_I_INCOMPLETE_CREDENTIALS = 590624 -SEC_I_RENEGOTIATE = 590625 -SEC_E_WRONG_PRINCIPAL = -2146893022 -SEC_I_NO_LSA_CONTEXT = 590627 -SEC_E_TIME_SKEW = -2146893020 -SEC_E_UNTRUSTED_ROOT = -2146893019 -SEC_E_ILLEGAL_MESSAGE = -2146893018 -SEC_E_CERT_UNKNOWN = -2146893017 -SEC_E_CERT_EXPIRED = -2146893016 -SEC_E_ENCRYPT_FAILURE = -2146893015 -SEC_E_DECRYPT_FAILURE = -2146893008 -SEC_E_ALGORITHM_MISMATCH = -2146893007 -SEC_E_SECURITY_QOS_FAILED = -2146893006 -SEC_E_UNFINISHED_CONTEXT_DELETED = -2146893005 -SEC_E_NO_TGT_REPLY = -2146893004 -SEC_E_NO_IP_ADDRESSES = -2146893003 -SEC_E_WRONG_CREDENTIAL_HANDLE = -2146893002 -SEC_E_CRYPTO_SYSTEM_INVALID = -2146893001 -SEC_E_MAX_REFERRALS_EXCEEDED = -2146893000 -SEC_E_MUST_BE_KDC = -2146892999 -SEC_E_STRONG_CRYPTO_NOT_SUPPORTED = -2146892998 -SEC_E_TOO_MANY_PRINCIPALS = -2146892997 -SEC_E_NO_PA_DATA = -2146892996 -SEC_E_PKINIT_NAME_MISMATCH = -2146892995 -SEC_E_SMARTCARD_LOGON_REQUIRED = -2146892994 -SEC_E_SHUTDOWN_IN_PROGRESS = -2146892993 -SEC_E_KDC_INVALID_REQUEST = -2146892992 -SEC_E_KDC_UNABLE_TO_REFER = -2146892991 -SEC_E_KDC_UNKNOWN_ETYPE = -2146892990 -SEC_E_UNSUPPORTED_PREAUTH = -2146892989 -SEC_E_DELEGATION_REQUIRED = -2146892987 -SEC_E_BAD_BINDINGS = -2146892986 -SEC_E_MULTIPLE_ACCOUNTS = -2146892985 -SEC_E_NO_KERB_KEY = -2146892984 - -ERROR_IPSEC_QM_POLICY_EXISTS = 13000 -ERROR_IPSEC_QM_POLICY_NOT_FOUND = 13001 -ERROR_IPSEC_QM_POLICY_IN_USE = 13002 -ERROR_IPSEC_MM_POLICY_EXISTS = 13003 -ERROR_IPSEC_MM_POLICY_NOT_FOUND = 13004 -ERROR_IPSEC_MM_POLICY_IN_USE = 13005 -ERROR_IPSEC_MM_FILTER_EXISTS = 13006 -ERROR_IPSEC_MM_FILTER_NOT_FOUND = 13007 -ERROR_IPSEC_TRANSPORT_FILTER_EXISTS = 13008 -ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND = 13009 -ERROR_IPSEC_MM_AUTH_EXISTS = 13010 -ERROR_IPSEC_MM_AUTH_NOT_FOUND = 13011 -ERROR_IPSEC_MM_AUTH_IN_USE = 13012 -ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND = 13013 -ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND = 13014 -ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND = 13015 -ERROR_IPSEC_TUNNEL_FILTER_EXISTS = 13016 -ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND = 13017 -ERROR_IPSEC_MM_FILTER_PENDING_DELETION = 13018 -ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION = 13019 -ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION = 13020 -ERROR_IPSEC_MM_POLICY_PENDING_DELETION = 13021 -ERROR_IPSEC_MM_AUTH_PENDING_DELETION = 13022 -ERROR_IPSEC_QM_POLICY_PENDING_DELETION = 13023 -WARNING_IPSEC_MM_POLICY_PRUNED = 13024 -WARNING_IPSEC_QM_POLICY_PRUNED = 13025 -ERROR_IPSEC_IKE_NEG_STATUS_BEGIN = 13800 -ERROR_IPSEC_IKE_AUTH_FAIL = 13801 -ERROR_IPSEC_IKE_ATTRIB_FAIL = 13802 -ERROR_IPSEC_IKE_NEGOTIATION_PENDING = 13803 -ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR = 13804 -ERROR_IPSEC_IKE_TIMED_OUT = 13805 -ERROR_IPSEC_IKE_NO_CERT = 13806 -ERROR_IPSEC_IKE_SA_DELETED = 13807 -ERROR_IPSEC_IKE_SA_REAPED = 13808 -ERROR_IPSEC_IKE_MM_ACQUIRE_DROP = 13809 -ERROR_IPSEC_IKE_QM_ACQUIRE_DROP = 13810 -ERROR_IPSEC_IKE_QUEUE_DROP_MM = 13811 -ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM = 13812 -ERROR_IPSEC_IKE_DROP_NO_RESPONSE = 13813 -ERROR_IPSEC_IKE_MM_DELAY_DROP = 13814 -ERROR_IPSEC_IKE_QM_DELAY_DROP = 13815 -ERROR_IPSEC_IKE_ERROR = 13816 -ERROR_IPSEC_IKE_CRL_FAILED = 13817 -ERROR_IPSEC_IKE_INVALID_KEY_USAGE = 13818 -ERROR_IPSEC_IKE_INVALID_CERT_TYPE = 13819 -ERROR_IPSEC_IKE_NO_PRIVATE_KEY = 13820 -ERROR_IPSEC_IKE_DH_FAIL = 13822 -ERROR_IPSEC_IKE_INVALID_HEADER = 13824 -ERROR_IPSEC_IKE_NO_POLICY = 13825 -ERROR_IPSEC_IKE_INVALID_SIGNATURE = 13826 -ERROR_IPSEC_IKE_KERBEROS_ERROR = 13827 -ERROR_IPSEC_IKE_NO_PUBLIC_KEY = 13828 -ERROR_IPSEC_IKE_PROCESS_ERR = 13829 -ERROR_IPSEC_IKE_PROCESS_ERR_SA = 13830 -ERROR_IPSEC_IKE_PROCESS_ERR_PROP = 13831 -ERROR_IPSEC_IKE_PROCESS_ERR_TRANS = 13832 -ERROR_IPSEC_IKE_PROCESS_ERR_KE = 13833 -ERROR_IPSEC_IKE_PROCESS_ERR_ID = 13834 -ERROR_IPSEC_IKE_PROCESS_ERR_CERT = 13835 -ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ = 13836 -ERROR_IPSEC_IKE_PROCESS_ERR_HASH = 13837 -ERROR_IPSEC_IKE_PROCESS_ERR_SIG = 13838 -ERROR_IPSEC_IKE_PROCESS_ERR_NONCE = 13839 -ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY = 13840 -ERROR_IPSEC_IKE_PROCESS_ERR_DELETE = 13841 -ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR = 13842 -ERROR_IPSEC_IKE_INVALID_PAYLOAD = 13843 -ERROR_IPSEC_IKE_LOAD_SOFT_SA = 13844 -ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN = 13845 -ERROR_IPSEC_IKE_INVALID_COOKIE = 13846 -ERROR_IPSEC_IKE_NO_PEER_CERT = 13847 -ERROR_IPSEC_IKE_PEER_CRL_FAILED = 13848 -ERROR_IPSEC_IKE_POLICY_CHANGE = 13849 -ERROR_IPSEC_IKE_NO_MM_POLICY = 13850 -ERROR_IPSEC_IKE_NOTCBPRIV = 13851 -ERROR_IPSEC_IKE_SECLOADFAIL = 13852 -ERROR_IPSEC_IKE_FAILSSPINIT = 13853 -ERROR_IPSEC_IKE_FAILQUERYSSP = 13854 -ERROR_IPSEC_IKE_SRVACQFAIL = 13855 -ERROR_IPSEC_IKE_SRVQUERYCRED = 13856 -ERROR_IPSEC_IKE_GETSPIFAIL = 13857 -ERROR_IPSEC_IKE_INVALID_FILTER = 13858 -ERROR_IPSEC_IKE_OUT_OF_MEMORY = 13859 -ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED = 13860 -ERROR_IPSEC_IKE_INVALID_POLICY = 13861 -ERROR_IPSEC_IKE_UNKNOWN_DOI = 13862 -ERROR_IPSEC_IKE_INVALID_SITUATION = 13863 -ERROR_IPSEC_IKE_DH_FAILURE = 13864 -ERROR_IPSEC_IKE_INVALID_GROUP = 13865 -ERROR_IPSEC_IKE_ENCRYPT = 13866 -ERROR_IPSEC_IKE_DECRYPT = 13867 -ERROR_IPSEC_IKE_POLICY_MATCH = 13868 -ERROR_IPSEC_IKE_UNSUPPORTED_ID = 13869 -ERROR_IPSEC_IKE_INVALID_HASH = 13870 -ERROR_IPSEC_IKE_INVALID_HASH_ALG = 13871 -ERROR_IPSEC_IKE_INVALID_HASH_SIZE = 13872 -ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG = 13873 -ERROR_IPSEC_IKE_INVALID_AUTH_ALG = 13874 -ERROR_IPSEC_IKE_INVALID_SIG = 13875 -ERROR_IPSEC_IKE_LOAD_FAILED = 13876 -ERROR_IPSEC_IKE_RPC_DELETE = 13877 -ERROR_IPSEC_IKE_BENIGN_REINIT = 13878 -ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY = 13879 -ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN = 13881 -ERROR_IPSEC_IKE_MM_LIMIT = 13882 -ERROR_IPSEC_IKE_NEGOTIATION_DISABLED = 13883 -ERROR_IPSEC_IKE_NEG_STATUS_END = 13884 -CRYPT_E_MSG_ERROR = ((-2146889727)) -CRYPT_E_UNKNOWN_ALGO = ((-2146889726)) -CRYPT_E_OID_FORMAT = ((-2146889725)) -CRYPT_E_INVALID_MSG_TYPE = ((-2146889724)) -CRYPT_E_UNEXPECTED_ENCODING = ((-2146889723)) -CRYPT_E_AUTH_ATTR_MISSING = ((-2146889722)) -CRYPT_E_HASH_VALUE = ((-2146889721)) -CRYPT_E_INVALID_INDEX = ((-2146889720)) -CRYPT_E_ALREADY_DECRYPTED = ((-2146889719)) -CRYPT_E_NOT_DECRYPTED = ((-2146889718)) -CRYPT_E_RECIPIENT_NOT_FOUND = ((-2146889717)) -CRYPT_E_CONTROL_TYPE = ((-2146889716)) -CRYPT_E_ISSUER_SERIALNUMBER = ((-2146889715)) -CRYPT_E_SIGNER_NOT_FOUND = ((-2146889714)) -CRYPT_E_ATTRIBUTES_MISSING = ((-2146889713)) -CRYPT_E_STREAM_MSG_NOT_READY = ((-2146889712)) -CRYPT_E_STREAM_INSUFFICIENT_DATA = ((-2146889711)) -CRYPT_I_NEW_PROTECTION_REQUIRED = (593938) -CRYPT_E_BAD_LEN = ((-2146885631)) -CRYPT_E_BAD_ENCODE = ((-2146885630)) -CRYPT_E_FILE_ERROR = ((-2146885629)) -CRYPT_E_NOT_FOUND = ((-2146885628)) -CRYPT_E_EXISTS = ((-2146885627)) -CRYPT_E_NO_PROVIDER = ((-2146885626)) -CRYPT_E_SELF_SIGNED = ((-2146885625)) -CRYPT_E_DELETED_PREV = ((-2146885624)) -CRYPT_E_NO_MATCH = ((-2146885623)) -CRYPT_E_UNEXPECTED_MSG_TYPE = ((-2146885622)) -CRYPT_E_NO_KEY_PROPERTY = ((-2146885621)) -CRYPT_E_NO_DECRYPT_CERT = ((-2146885620)) -CRYPT_E_BAD_MSG = ((-2146885619)) -CRYPT_E_NO_SIGNER = ((-2146885618)) -CRYPT_E_PENDING_CLOSE = ((-2146885617)) -CRYPT_E_REVOKED = ((-2146885616)) -CRYPT_E_NO_REVOCATION_DLL = ((-2146885615)) -CRYPT_E_NO_REVOCATION_CHECK = ((-2146885614)) -CRYPT_E_REVOCATION_OFFLINE = ((-2146885613)) -CRYPT_E_NOT_IN_REVOCATION_DATABASE = ((-2146885612)) -CRYPT_E_INVALID_NUMERIC_STRING = ((-2146885600)) -CRYPT_E_INVALID_PRINTABLE_STRING = ((-2146885599)) -CRYPT_E_INVALID_IA5_STRING = ((-2146885598)) -CRYPT_E_INVALID_X500_STRING = ((-2146885597)) -CRYPT_E_NOT_CHAR_STRING = ((-2146885596)) -CRYPT_E_FILERESIZED = ((-2146885595)) -CRYPT_E_SECURITY_SETTINGS = ((-2146885594)) -CRYPT_E_NO_VERIFY_USAGE_DLL = ((-2146885593)) -CRYPT_E_NO_VERIFY_USAGE_CHECK = ((-2146885592)) -CRYPT_E_VERIFY_USAGE_OFFLINE = ((-2146885591)) -CRYPT_E_NOT_IN_CTL = ((-2146885590)) -CRYPT_E_NO_TRUSTED_SIGNER = ((-2146885589)) -CRYPT_E_MISSING_PUBKEY_PARA = ((-2146885588)) -CRYPT_E_OSS_ERROR = ((-2146881536)) - -## Kerberos message types for LsaCallAuthenticationPackage (from ntsecapi.h) -KerbDebugRequestMessage = 0 -KerbQueryTicketCacheMessage = 1 -KerbChangeMachinePasswordMessage = 2 -KerbVerifyPacMessage = 3 -KerbRetrieveTicketMessage = 4 -KerbUpdateAddressesMessage = 5 -KerbPurgeTicketCacheMessage = 6 -KerbChangePasswordMessage = 7 -KerbRetrieveEncodedTicketMessage = 8 -KerbDecryptDataMessage = 9 -KerbAddBindingCacheEntryMessage = 10 -KerbSetPasswordMessage = 11 -KerbSetPasswordExMessage = 12 -KerbVerifyCredentialsMessage = 13 -KerbQueryTicketCacheExMessage = 14 -KerbPurgeTicketCacheExMessage = 15 -KerbRefreshSmartcardCredentialsMessage = 16 -KerbAddExtraCredentialsMessage = 17 -KerbQuerySupplementalCredentialsMessage = 18 - -## messages used with msv1_0 from ntsecapi.h -MsV1_0Lm20ChallengeRequest = 0 -MsV1_0Lm20GetChallengeResponse = 1 -MsV1_0EnumerateUsers = 2 -MsV1_0GetUserInfo = 3 -MsV1_0ReLogonUsers = 4 -MsV1_0ChangePassword = 5 -MsV1_0ChangeCachedPassword = 6 -MsV1_0GenericPassthrough = 7 -MsV1_0CacheLogon = 8 -MsV1_0SubAuth = 9 -MsV1_0DeriveCredential = 10 -MsV1_0CacheLookup = 11 -MsV1_0SetProcessOption = 12 - -SEC_E_OK = 0 diff --git a/typings/win32helper/win32cryptcon.pyi b/typings/win32helper/win32cryptcon.pyi deleted file mode 100644 index 7ad7ed81..00000000 --- a/typings/win32helper/win32cryptcon.pyi +++ /dev/null @@ -1,1900 +0,0 @@ -# Generated by h2py from WinCrypt.h -def GET_ALG_CLASS(x): return (x & (7 << 13)) - -def GET_ALG_TYPE(x): return (x & (15 << 9)) - -def GET_ALG_SID(x): return (x & (511)) - -ALG_CLASS_ANY = (0) -ALG_CLASS_SIGNATURE = (1 << 13) -ALG_CLASS_MSG_ENCRYPT = (2 << 13) -ALG_CLASS_DATA_ENCRYPT = (3 << 13) -ALG_CLASS_HASH = (4 << 13) -ALG_CLASS_KEY_EXCHANGE = (5 << 13) -ALG_CLASS_ALL = (7 << 13) -ALG_TYPE_ANY = (0) -ALG_TYPE_DSS = (1 << 9) -ALG_TYPE_RSA = (2 << 9) -ALG_TYPE_BLOCK = (3 << 9) -ALG_TYPE_STREAM = (4 << 9) -ALG_TYPE_DH = (5 << 9) -ALG_TYPE_SECURECHANNEL = (6 << 9) -ALG_SID_ANY = (0) -ALG_SID_RSA_ANY = 0 -ALG_SID_RSA_PKCS = 1 -ALG_SID_RSA_MSATWORK = 2 -ALG_SID_RSA_ENTRUST = 3 -ALG_SID_RSA_PGP = 4 -ALG_SID_DSS_ANY = 0 -ALG_SID_DSS_PKCS = 1 -ALG_SID_DSS_DMS = 2 -ALG_SID_DES = 1 -ALG_SID_3DES = 3 -ALG_SID_DESX = 4 -ALG_SID_IDEA = 5 -ALG_SID_CAST = 6 -ALG_SID_SAFERSK64 = 7 -ALG_SID_SAFERSK128 = 8 -ALG_SID_3DES_112 = 9 -ALG_SID_CYLINK_MEK = 12 -ALG_SID_RC5 = 13 -ALG_SID_AES_128 = 14 -ALG_SID_AES_192 = 15 -ALG_SID_AES_256 = 16 -ALG_SID_AES = 17 -ALG_SID_SKIPJACK = 10 -ALG_SID_TEK = 11 -CRYPT_MODE_CBCI = 6 -CRYPT_MODE_CFBP = 7 -CRYPT_MODE_OFBP = 8 -CRYPT_MODE_CBCOFM = 9 -CRYPT_MODE_CBCOFMI = 10 -ALG_SID_RC2 = 2 -ALG_SID_RC4 = 1 -ALG_SID_SEAL = 2 -ALG_SID_DH_SANDF = 1 -ALG_SID_DH_EPHEM = 2 -ALG_SID_AGREED_KEY_ANY = 3 -ALG_SID_KEA = 4 -ALG_SID_MD2 = 1 -ALG_SID_MD4 = 2 -ALG_SID_MD5 = 3 -ALG_SID_SHA = 4 -ALG_SID_SHA1 = 4 -ALG_SID_MAC = 5 -ALG_SID_RIPEMD = 6 -ALG_SID_RIPEMD160 = 7 -ALG_SID_SSL3SHAMD5 = 8 -ALG_SID_HMAC = 9 -ALG_SID_TLS1PRF = 10 -ALG_SID_HASH_REPLACE_OWF = 11 -ALG_SID_SHA_256 = 12 -ALG_SID_SHA_384 = 13 -ALG_SID_SHA_512 = 14 -ALG_SID_SSL3_MASTER = 1 -ALG_SID_SCHANNEL_MASTER_HASH = 2 -ALG_SID_SCHANNEL_MAC_KEY = 3 -ALG_SID_PCT1_MASTER = 4 -ALG_SID_SSL2_MASTER = 5 -ALG_SID_TLS1_MASTER = 6 -ALG_SID_SCHANNEL_ENC_KEY = 7 -ALG_SID_EXAMPLE = 80 -CALG_MD2 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD2) -CALG_MD4 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD4) -CALG_MD5 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MD5) -CALG_SHA = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA) -CALG_SHA1 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA1) -CALG_MAC = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_MAC) -CALG_RSA_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_RSA | ALG_SID_RSA_ANY) -CALG_DSS_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_DSS | ALG_SID_DSS_ANY) -CALG_NO_SIGN = (ALG_CLASS_SIGNATURE | ALG_TYPE_ANY | ALG_SID_ANY) -CALG_RSA_KEYX = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_RSA|ALG_SID_RSA_ANY) -CALG_DES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DES) -CALG_3DES_112 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_3DES_112) -CALG_3DES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_3DES) -CALG_DESX = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_DESX) -CALG_RC2 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC2) -CALG_RC4 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_RC4) -CALG_SEAL = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_STREAM|ALG_SID_SEAL) -CALG_DH_SF = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_DH_SANDF) -CALG_DH_EPHEM = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_DH_EPHEM) -CALG_AGREEDKEY_ANY = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_AGREED_KEY_ANY) -CALG_KEA_KEYX = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_DH|ALG_SID_KEA) -CALG_HUGHES_MD5 = (ALG_CLASS_KEY_EXCHANGE|ALG_TYPE_ANY|ALG_SID_MD5) -CALG_SKIPJACK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_SKIPJACK) -CALG_TEK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_TEK) -CALG_CYLINK_MEK = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_CYLINK_MEK) -CALG_SSL3_SHAMD5 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5) -CALG_SSL3_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SSL3_MASTER) -CALG_SCHANNEL_MASTER_HASH = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_MASTER_HASH) -CALG_SCHANNEL_MAC_KEY = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_MAC_KEY) -CALG_SCHANNEL_ENC_KEY = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SCHANNEL_ENC_KEY) -CALG_PCT1_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_PCT1_MASTER) -CALG_SSL2_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_SSL2_MASTER) -CALG_TLS1_MASTER = (ALG_CLASS_MSG_ENCRYPT|ALG_TYPE_SECURECHANNEL|ALG_SID_TLS1_MASTER) -CALG_RC5 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_RC5) -CALG_HMAC = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HMAC) -CALG_TLS1PRF = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_TLS1PRF) -CALG_HASH_REPLACE_OWF = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_HASH_REPLACE_OWF) -CALG_AES_128 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_128) -CALG_AES_192 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_192) -CALG_AES_256 = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES_256) -CALG_AES = (ALG_CLASS_DATA_ENCRYPT|ALG_TYPE_BLOCK|ALG_SID_AES) -CALG_SHA_256 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256) -CALG_SHA_384 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_384) -CALG_SHA_512 = (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_512) -CRYPT_VERIFYCONTEXT = (-268435456) -CRYPT_NEWKEYSET = 0x00000008 -CRYPT_DELETEKEYSET = 0x00000010 -CRYPT_MACHINE_KEYSET = 0x00000020 -CRYPT_SILENT = 0x00000040 -CRYPT_EXPORTABLE = 0x00000001 -CRYPT_USER_PROTECTED = 0x00000002 -CRYPT_CREATE_SALT = 0x00000004 -CRYPT_UPDATE_KEY = 0x00000008 -CRYPT_NO_SALT = 0x00000010 -CRYPT_PREGEN = 0x00000040 -CRYPT_RECIPIENT = 0x00000010 -CRYPT_INITIATOR = 0x00000040 -CRYPT_ONLINE = 0x00000080 -CRYPT_SF = 0x00000100 -CRYPT_CREATE_IV = 0x00000200 -CRYPT_KEK = 0x00000400 -CRYPT_DATA_KEY = 0x00000800 -CRYPT_VOLATILE = 0x00001000 -CRYPT_SGCKEY = 0x00002000 -CRYPT_ARCHIVABLE = 0x00004000 -RSA1024BIT_KEY = 0x04000000 -CRYPT_SERVER = 0x00000400 -KEY_LENGTH_MASK = (-65536) -CRYPT_Y_ONLY = 0x00000001 -CRYPT_SSL2_FALLBACK = 0x00000002 -CRYPT_DESTROYKEY = 0x00000004 -CRYPT_OAEP = 0x00000040 -CRYPT_BLOB_VER3 = 0x00000080 -CRYPT_IPSEC_HMAC_KEY = 0x00000100 -CRYPT_DECRYPT_RSA_NO_PADDING_CHECK = 0x00000020 -CRYPT_SECRETDIGEST = 0x00000001 -CRYPT_OWF_REPL_LM_HASH = 0x00000001 -CRYPT_LITTLE_ENDIAN = 0x00000001 -CRYPT_NOHASHOID = 0x00000001 -CRYPT_TYPE2_FORMAT = 0x00000002 -CRYPT_X931_FORMAT = 0x00000004 -CRYPT_MACHINE_DEFAULT = 0x00000001 -CRYPT_USER_DEFAULT = 0x00000002 -CRYPT_DELETE_DEFAULT = 0x00000004 -SIMPLEBLOB = 0x1 -PUBLICKEYBLOB = 0x6 -PRIVATEKEYBLOB = 0x7 -PLAINTEXTKEYBLOB = 0x8 -OPAQUEKEYBLOB = 0x9 -PUBLICKEYBLOBEX = 0xA -SYMMETRICWRAPKEYBLOB = 0xB -AT_KEYEXCHANGE = 1 -AT_SIGNATURE = 2 -CRYPT_USERDATA = 1 -KP_IV = 1 -KP_SALT = 2 -KP_PADDING = 3 -KP_MODE = 4 -KP_MODE_BITS = 5 -KP_PERMISSIONS = 6 -KP_ALGID = 7 -KP_BLOCKLEN = 8 -KP_KEYLEN = 9 -KP_SALT_EX = 10 -KP_P = 11 -KP_G = 12 -KP_Q = 13 -KP_X = 14 -KP_Y = 15 -KP_RA = 16 -KP_RB = 17 -KP_INFO = 18 -KP_EFFECTIVE_KEYLEN = 19 -KP_SCHANNEL_ALG = 20 -KP_CLIENT_RANDOM = 21 -KP_SERVER_RANDOM = 22 -KP_RP = 23 -KP_PRECOMP_MD5 = 24 -KP_PRECOMP_SHA = 25 -KP_CERTIFICATE = 26 -KP_CLEAR_KEY = 27 -KP_PUB_EX_LEN = 28 -KP_PUB_EX_VAL = 29 -KP_KEYVAL = 30 -KP_ADMIN_PIN = 31 -KP_KEYEXCHANGE_PIN = 32 -KP_SIGNATURE_PIN = 33 -KP_PREHASH = 34 -KP_ROUNDS = 35 -KP_OAEP_PARAMS = 36 -KP_CMS_KEY_INFO = 37 -KP_CMS_DH_KEY_INFO = 38 -KP_PUB_PARAMS = 39 -KP_VERIFY_PARAMS = 40 -KP_HIGHEST_VERSION = 41 -KP_GET_USE_COUNT = 42 -PKCS5_PADDING = 1 -RANDOM_PADDING = 2 -ZERO_PADDING = 3 -CRYPT_MODE_CBC = 1 -CRYPT_MODE_ECB = 2 -CRYPT_MODE_OFB = 3 -CRYPT_MODE_CFB = 4 -CRYPT_MODE_CTS = 5 -CRYPT_ENCRYPT = 0x0001 -CRYPT_DECRYPT = 0x0002 -CRYPT_EXPORT = 0x0004 -CRYPT_READ = 0x0008 -CRYPT_WRITE = 0x0010 -CRYPT_MAC = 0x0020 -CRYPT_EXPORT_KEY = 0x0040 -CRYPT_IMPORT_KEY = 0x0080 -CRYPT_ARCHIVE = 0x0100 -HP_ALGID = 0x0001 -HP_HASHVAL = 0x0002 -HP_HASHSIZE = 0x0004 -HP_HMAC_INFO = 0x0005 -HP_TLS1PRF_LABEL = 0x0006 -HP_TLS1PRF_SEED = 0x0007 - -CRYPT_FAILED = 0 -CRYPT_SUCCEED = 1 -def RCRYPT_SUCCEEDED(rt): return ((rt) == CRYPT_SUCCEED) -def RCRYPT_FAILED(rt): return ((rt) == CRYPT_FAILED) - -PP_ENUMALGS = 1 -PP_ENUMCONTAINERS = 2 -PP_IMPTYPE = 3 -PP_NAME = 4 -PP_VERSION = 5 -PP_CONTAINER = 6 -PP_CHANGE_PASSWORD = 7 -PP_KEYSET_SEC_DESCR = 8 -PP_CERTCHAIN = 9 -PP_KEY_TYPE_SUBTYPE = 10 -PP_PROVTYPE = 16 -PP_KEYSTORAGE = 17 -PP_APPLI_CERT = 18 -PP_SYM_KEYSIZE = 19 -PP_SESSION_KEYSIZE = 20 -PP_UI_PROMPT = 21 -PP_ENUMALGS_EX = 22 -PP_ENUMMANDROOTS = 25 -PP_ENUMELECTROOTS = 26 -PP_KEYSET_TYPE = 27 -PP_ADMIN_PIN = 31 -PP_KEYEXCHANGE_PIN = 32 -PP_SIGNATURE_PIN = 33 -PP_SIG_KEYSIZE_INC = 34 -PP_KEYX_KEYSIZE_INC = 35 -PP_UNIQUE_CONTAINER = 36 -PP_SGC_INFO = 37 -PP_USE_HARDWARE_RNG = 38 -PP_KEYSPEC = 39 -PP_ENUMEX_SIGNING_PROT = 40 -PP_CRYPT_COUNT_KEY_USE = 41 -CRYPT_FIRST = 1 -CRYPT_NEXT = 2 -CRYPT_SGC_ENUM = 4 -CRYPT_IMPL_HARDWARE = 1 -CRYPT_IMPL_SOFTWARE = 2 -CRYPT_IMPL_MIXED = 3 -CRYPT_IMPL_UNKNOWN = 4 -CRYPT_IMPL_REMOVABLE = 8 -CRYPT_SEC_DESCR = 0x00000001 -CRYPT_PSTORE = 0x00000002 -CRYPT_UI_PROMPT = 0x00000004 -CRYPT_FLAG_PCT1 = 0x0001 -CRYPT_FLAG_SSL2 = 0x0002 -CRYPT_FLAG_SSL3 = 0x0004 -CRYPT_FLAG_TLS1 = 0x0008 -CRYPT_FLAG_IPSEC = 0x0010 -CRYPT_FLAG_SIGNING = 0x0020 -CRYPT_SGC = 0x0001 -CRYPT_FASTSGC = 0x0002 -PP_CLIENT_HWND = 1 -PP_CONTEXT_INFO = 11 -PP_KEYEXCHANGE_KEYSIZE = 12 -PP_SIGNATURE_KEYSIZE = 13 -PP_KEYEXCHANGE_ALG = 14 -PP_SIGNATURE_ALG = 15 -PP_DELETEKEY = 24 -PROV_RSA_FULL = 1 -PROV_RSA_SIG = 2 -PROV_DSS = 3 -PROV_FORTEZZA = 4 -PROV_MS_EXCHANGE = 5 -PROV_SSL = 6 -PROV_RSA_SCHANNEL = 12 -PROV_DSS_DH = 13 -PROV_EC_ECDSA_SIG = 14 -PROV_EC_ECNRA_SIG = 15 -PROV_EC_ECDSA_FULL = 16 -PROV_EC_ECNRA_FULL = 17 -PROV_DH_SCHANNEL = 18 -PROV_SPYRUS_LYNKS = 20 -PROV_RNG = 21 -PROV_INTEL_SEC = 22 -PROV_REPLACE_OWF = 23 -PROV_RSA_AES = 24 -MS_DEF_PROV_A = "Microsoft Base Cryptographic Provider v1.0" -MS_DEF_PROV = MS_DEF_PROV_A -MS_ENHANCED_PROV_A = "Microsoft Enhanced Cryptographic Provider v1.0" -MS_ENHANCED_PROV = MS_ENHANCED_PROV_A -MS_STRONG_PROV_A = "Microsoft Strong Cryptographic Provider" -MS_STRONG_PROV = MS_STRONG_PROV_A -MS_DEF_RSA_SIG_PROV_A = "Microsoft RSA Signature Cryptographic Provider" -MS_DEF_RSA_SIG_PROV = MS_DEF_RSA_SIG_PROV_A -MS_DEF_RSA_SCHANNEL_PROV_A = "Microsoft RSA SChannel Cryptographic Provider" -MS_DEF_RSA_SCHANNEL_PROV = MS_DEF_RSA_SCHANNEL_PROV_A -MS_DEF_DSS_PROV_A = "Microsoft Base DSS Cryptographic Provider" -MS_DEF_DSS_PROV = MS_DEF_DSS_PROV_A -MS_DEF_DSS_DH_PROV_A = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" -MS_DEF_DSS_DH_PROV = MS_DEF_DSS_DH_PROV_A -MS_ENH_DSS_DH_PROV_A = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" -MS_ENH_DSS_DH_PROV = MS_ENH_DSS_DH_PROV_A -MS_DEF_DH_SCHANNEL_PROV_A = "Microsoft DH SChannel Cryptographic Provider" -MS_DEF_DH_SCHANNEL_PROV = MS_DEF_DH_SCHANNEL_PROV_A -MS_SCARD_PROV_A = "Microsoft Base Smart Card Crypto Provider" -MS_SCARD_PROV = MS_SCARD_PROV_A -MS_ENH_RSA_AES_PROV_A = "Microsoft Enhanced RSA and AES Cryptographic Provider" -MS_ENH_RSA_AES_PROV = MS_ENH_RSA_AES_PROV_A -MAXUIDLEN = 64 -EXPO_OFFLOAD_REG_VALUE = "ExpoOffload" -EXPO_OFFLOAD_FUNC_NAME = "OffloadModExpo" -szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS = \ - "Software\\Policies\\Microsoft\\Cryptography" -szFORCE_KEY_PROTECTION = "ForceKeyProtection" -dwFORCE_KEY_PROTECTION_DISABLED = 0x0 -dwFORCE_KEY_PROTECTION_USER_SELECT = 0x1 -dwFORCE_KEY_PROTECTION_HIGH = 0x2 -szKEY_CACHE_ENABLED = "CachePrivateKeys" -szKEY_CACHE_SECONDS = "PrivateKeyLifetimeSeconds" -CUR_BLOB_VERSION = 2 -SCHANNEL_MAC_KEY = 0x00000000 -SCHANNEL_ENC_KEY = 0x00000001 -INTERNATIONAL_USAGE = 0x00000001 -szOID_RSA = "1.2.840.113549" -szOID_PKCS = "1.2.840.113549.1" -szOID_RSA_HASH = "1.2.840.113549.2" -szOID_RSA_ENCRYPT = "1.2.840.113549.3" -szOID_PKCS_1 = "1.2.840.113549.1.1" -szOID_PKCS_2 = "1.2.840.113549.1.2" -szOID_PKCS_3 = "1.2.840.113549.1.3" -szOID_PKCS_4 = "1.2.840.113549.1.4" -szOID_PKCS_5 = "1.2.840.113549.1.5" -szOID_PKCS_6 = "1.2.840.113549.1.6" -szOID_PKCS_7 = "1.2.840.113549.1.7" -szOID_PKCS_8 = "1.2.840.113549.1.8" -szOID_PKCS_9 = "1.2.840.113549.1.9" -szOID_PKCS_10 = "1.2.840.113549.1.10" -szOID_PKCS_12 = "1.2.840.113549.1.12" -szOID_RSA_RSA = "1.2.840.113549.1.1.1" -szOID_RSA_MD2RSA = "1.2.840.113549.1.1.2" -szOID_RSA_MD4RSA = "1.2.840.113549.1.1.3" -szOID_RSA_MD5RSA = "1.2.840.113549.1.1.4" -szOID_RSA_SHA1RSA = "1.2.840.113549.1.1.5" -szOID_RSA_SETOAEP_RSA = "1.2.840.113549.1.1.6" -szOID_RSA_DH = "1.2.840.113549.1.3.1" -szOID_RSA_data = "1.2.840.113549.1.7.1" -szOID_RSA_signedData = "1.2.840.113549.1.7.2" -szOID_RSA_envelopedData = "1.2.840.113549.1.7.3" -szOID_RSA_signEnvData = "1.2.840.113549.1.7.4" -szOID_RSA_digestedData = "1.2.840.113549.1.7.5" -szOID_RSA_hashedData = "1.2.840.113549.1.7.5" -szOID_RSA_encryptedData = "1.2.840.113549.1.7.6" -szOID_RSA_emailAddr = "1.2.840.113549.1.9.1" -szOID_RSA_unstructName = "1.2.840.113549.1.9.2" -szOID_RSA_contentType = "1.2.840.113549.1.9.3" -szOID_RSA_messageDigest = "1.2.840.113549.1.9.4" -szOID_RSA_signingTime = "1.2.840.113549.1.9.5" -szOID_RSA_counterSign = "1.2.840.113549.1.9.6" -szOID_RSA_challengePwd = "1.2.840.113549.1.9.7" -szOID_RSA_unstructAddr = "1.2.840.113549.1.9.8" -szOID_RSA_extCertAttrs = "1.2.840.113549.1.9.9" -szOID_RSA_certExtensions = "1.2.840.113549.1.9.14" -szOID_RSA_SMIMECapabilities = "1.2.840.113549.1.9.15" -szOID_RSA_preferSignedData = "1.2.840.113549.1.9.15.1" -szOID_RSA_SMIMEalg = "1.2.840.113549.1.9.16.3" -szOID_RSA_SMIMEalgESDH = "1.2.840.113549.1.9.16.3.5" -szOID_RSA_SMIMEalgCMS3DESwrap = "1.2.840.113549.1.9.16.3.6" -szOID_RSA_SMIMEalgCMSRC2wrap = "1.2.840.113549.1.9.16.3.7" -szOID_RSA_MD2 = "1.2.840.113549.2.2" -szOID_RSA_MD4 = "1.2.840.113549.2.4" -szOID_RSA_MD5 = "1.2.840.113549.2.5" -szOID_RSA_RC2CBC = "1.2.840.113549.3.2" -szOID_RSA_RC4 = "1.2.840.113549.3.4" -szOID_RSA_DES_EDE3_CBC = "1.2.840.113549.3.7" -szOID_RSA_RC5_CBCPad = "1.2.840.113549.3.9" -szOID_ANSI_X942 = "1.2.840.10046" -szOID_ANSI_X942_DH = "1.2.840.10046.2.1" -szOID_X957 = "1.2.840.10040" -szOID_X957_DSA = "1.2.840.10040.4.1" -szOID_X957_SHA1DSA = "1.2.840.10040.4.3" -szOID_DS = "2.5" -szOID_DSALG = "2.5.8" -szOID_DSALG_CRPT = "2.5.8.1" -szOID_DSALG_HASH = "2.5.8.2" -szOID_DSALG_SIGN = "2.5.8.3" -szOID_DSALG_RSA = "2.5.8.1.1" -szOID_OIW = "1.3.14" -szOID_OIWSEC = "1.3.14.3.2" -szOID_OIWSEC_md4RSA = "1.3.14.3.2.2" -szOID_OIWSEC_md5RSA = "1.3.14.3.2.3" -szOID_OIWSEC_md4RSA2 = "1.3.14.3.2.4" -szOID_OIWSEC_desECB = "1.3.14.3.2.6" -szOID_OIWSEC_desCBC = "1.3.14.3.2.7" -szOID_OIWSEC_desOFB = "1.3.14.3.2.8" -szOID_OIWSEC_desCFB = "1.3.14.3.2.9" -szOID_OIWSEC_desMAC = "1.3.14.3.2.10" -szOID_OIWSEC_rsaSign = "1.3.14.3.2.11" -szOID_OIWSEC_dsa = "1.3.14.3.2.12" -szOID_OIWSEC_shaDSA = "1.3.14.3.2.13" -szOID_OIWSEC_mdc2RSA = "1.3.14.3.2.14" -szOID_OIWSEC_shaRSA = "1.3.14.3.2.15" -szOID_OIWSEC_dhCommMod = "1.3.14.3.2.16" -szOID_OIWSEC_desEDE = "1.3.14.3.2.17" -szOID_OIWSEC_sha = "1.3.14.3.2.18" -szOID_OIWSEC_mdc2 = "1.3.14.3.2.19" -szOID_OIWSEC_dsaComm = "1.3.14.3.2.20" -szOID_OIWSEC_dsaCommSHA = "1.3.14.3.2.21" -szOID_OIWSEC_rsaXchg = "1.3.14.3.2.22" -szOID_OIWSEC_keyHashSeal = "1.3.14.3.2.23" -szOID_OIWSEC_md2RSASign = "1.3.14.3.2.24" -szOID_OIWSEC_md5RSASign = "1.3.14.3.2.25" -szOID_OIWSEC_sha1 = "1.3.14.3.2.26" -szOID_OIWSEC_dsaSHA1 = "1.3.14.3.2.27" -szOID_OIWSEC_dsaCommSHA1 = "1.3.14.3.2.28" -szOID_OIWSEC_sha1RSASign = "1.3.14.3.2.29" -szOID_OIWDIR = "1.3.14.7.2" -szOID_OIWDIR_CRPT = "1.3.14.7.2.1" -szOID_OIWDIR_HASH = "1.3.14.7.2.2" -szOID_OIWDIR_SIGN = "1.3.14.7.2.3" -szOID_OIWDIR_md2 = "1.3.14.7.2.2.1" -szOID_OIWDIR_md2RSA = "1.3.14.7.2.3.1" -szOID_INFOSEC = "2.16.840.1.101.2.1" -szOID_INFOSEC_sdnsSignature = "2.16.840.1.101.2.1.1.1" -szOID_INFOSEC_mosaicSignature = "2.16.840.1.101.2.1.1.2" -szOID_INFOSEC_sdnsConfidentiality = "2.16.840.1.101.2.1.1.3" -szOID_INFOSEC_mosaicConfidentiality = "2.16.840.1.101.2.1.1.4" -szOID_INFOSEC_sdnsIntegrity = "2.16.840.1.101.2.1.1.5" -szOID_INFOSEC_mosaicIntegrity = "2.16.840.1.101.2.1.1.6" -szOID_INFOSEC_sdnsTokenProtection = "2.16.840.1.101.2.1.1.7" -szOID_INFOSEC_mosaicTokenProtection = "2.16.840.1.101.2.1.1.8" -szOID_INFOSEC_sdnsKeyManagement = "2.16.840.1.101.2.1.1.9" -szOID_INFOSEC_mosaicKeyManagement = "2.16.840.1.101.2.1.1.10" -szOID_INFOSEC_sdnsKMandSig = "2.16.840.1.101.2.1.1.11" -szOID_INFOSEC_mosaicKMandSig = "2.16.840.1.101.2.1.1.12" -szOID_INFOSEC_SuiteASignature = "2.16.840.1.101.2.1.1.13" -szOID_INFOSEC_SuiteAConfidentiality = "2.16.840.1.101.2.1.1.14" -szOID_INFOSEC_SuiteAIntegrity = "2.16.840.1.101.2.1.1.15" -szOID_INFOSEC_SuiteATokenProtection = "2.16.840.1.101.2.1.1.16" -szOID_INFOSEC_SuiteAKeyManagement = "2.16.840.1.101.2.1.1.17" -szOID_INFOSEC_SuiteAKMandSig = "2.16.840.1.101.2.1.1.18" -szOID_INFOSEC_mosaicUpdatedSig = "2.16.840.1.101.2.1.1.19" -szOID_INFOSEC_mosaicKMandUpdSig = "2.16.840.1.101.2.1.1.20" -szOID_INFOSEC_mosaicUpdatedInteg = "2.16.840.1.101.2.1.1.21" -szOID_COMMON_NAME = "2.5.4.3" -szOID_SUR_NAME = "2.5.4.4" -szOID_DEVICE_SERIAL_NUMBER = "2.5.4.5" -szOID_COUNTRY_NAME = "2.5.4.6" -szOID_LOCALITY_NAME = "2.5.4.7" -szOID_STATE_OR_PROVINCE_NAME = "2.5.4.8" -szOID_STREET_ADDRESS = "2.5.4.9" -szOID_ORGANIZATION_NAME = "2.5.4.10" -szOID_ORGANIZATIONAL_UNIT_NAME = "2.5.4.11" -szOID_TITLE = "2.5.4.12" -szOID_DESCRIPTION = "2.5.4.13" -szOID_SEARCH_GUIDE = "2.5.4.14" -szOID_BUSINESS_CATEGORY = "2.5.4.15" -szOID_POSTAL_ADDRESS = "2.5.4.16" -szOID_POSTAL_CODE = "2.5.4.17" -szOID_POST_OFFICE_BOX = "2.5.4.18" -szOID_PHYSICAL_DELIVERY_OFFICE_NAME = "2.5.4.19" -szOID_TELEPHONE_NUMBER = "2.5.4.20" -szOID_TELEX_NUMBER = "2.5.4.21" -szOID_TELETEXT_TERMINAL_IDENTIFIER = "2.5.4.22" -szOID_FACSIMILE_TELEPHONE_NUMBER = "2.5.4.23" -szOID_X21_ADDRESS = "2.5.4.24" -szOID_INTERNATIONAL_ISDN_NUMBER = "2.5.4.25" -szOID_REGISTERED_ADDRESS = "2.5.4.26" -szOID_DESTINATION_INDICATOR = "2.5.4.27" -szOID_PREFERRED_DELIVERY_METHOD = "2.5.4.28" -szOID_PRESENTATION_ADDRESS = "2.5.4.29" -szOID_SUPPORTED_APPLICATION_CONTEXT = "2.5.4.30" -szOID_MEMBER = "2.5.4.31" -szOID_OWNER = "2.5.4.32" -szOID_ROLE_OCCUPANT = "2.5.4.33" -szOID_SEE_ALSO = "2.5.4.34" -szOID_USER_PASSWORD = "2.5.4.35" -szOID_USER_CERTIFICATE = "2.5.4.36" -szOID_CA_CERTIFICATE = "2.5.4.37" -szOID_AUTHORITY_REVOCATION_LIST = "2.5.4.38" -szOID_CERTIFICATE_REVOCATION_LIST = "2.5.4.39" -szOID_CROSS_CERTIFICATE_PAIR = "2.5.4.40" -szOID_GIVEN_NAME = "2.5.4.42" -szOID_INITIALS = "2.5.4.43" -szOID_DN_QUALIFIER = "2.5.4.46" -szOID_DOMAIN_COMPONENT = "0.9.2342.19200300.100.1.25" -szOID_PKCS_12_FRIENDLY_NAME_ATTR = "1.2.840.113549.1.9.20" -szOID_PKCS_12_LOCAL_KEY_ID = "1.2.840.113549.1.9.21" -szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR = "1.3.6.1.4.1.311.17.1" -szOID_LOCAL_MACHINE_KEYSET = "1.3.6.1.4.1.311.17.2" -szOID_KEYID_RDN = "1.3.6.1.4.1.311.10.7.1" -CERT_RDN_ANY_TYPE = 0 -CERT_RDN_ENCODED_BLOB = 1 -CERT_RDN_OCTET_STRING = 2 -CERT_RDN_NUMERIC_STRING = 3 -CERT_RDN_PRINTABLE_STRING = 4 -CERT_RDN_TELETEX_STRING = 5 -CERT_RDN_T61_STRING = 5 -CERT_RDN_VIDEOTEX_STRING = 6 -CERT_RDN_IA5_STRING = 7 -CERT_RDN_GRAPHIC_STRING = 8 -CERT_RDN_VISIBLE_STRING = 9 -CERT_RDN_ISO646_STRING = 9 -CERT_RDN_GENERAL_STRING = 10 -CERT_RDN_UNIVERSAL_STRING = 11 -CERT_RDN_INT4_STRING = 11 -CERT_RDN_BMP_STRING = 12 -CERT_RDN_UNICODE_STRING = 12 -CERT_RDN_UTF8_STRING = 13 -CERT_RDN_TYPE_MASK = 0x000000FF -CERT_RDN_FLAGS_MASK = (-16777216) -CERT_RDN_ENABLE_T61_UNICODE_FLAG = (-2147483648) -CERT_RDN_ENABLE_UTF8_UNICODE_FLAG = 0x20000000 -CERT_RDN_DISABLE_CHECK_TYPE_FLAG = 0x40000000 -CERT_RDN_DISABLE_IE4_UTF8_FLAG = 0x01000000 -CERT_RSA_PUBLIC_KEY_OBJID = szOID_RSA_RSA -CERT_DEFAULT_OID_PUBLIC_KEY_SIGN = szOID_RSA_RSA -CERT_DEFAULT_OID_PUBLIC_KEY_XCHG = szOID_RSA_RSA -CERT_V1 = 0 -CERT_V2 = 1 -CERT_V3 = 2 -CERT_INFO_VERSION_FLAG = 1 -CERT_INFO_SERIAL_NUMBER_FLAG = 2 -CERT_INFO_SIGNATURE_ALGORITHM_FLAG = 3 -CERT_INFO_ISSUER_FLAG = 4 -CERT_INFO_NOT_BEFORE_FLAG = 5 -CERT_INFO_NOT_AFTER_FLAG = 6 -CERT_INFO_SUBJECT_FLAG = 7 -CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8 -CERT_INFO_ISSUER_UNIQUE_ID_FLAG = 9 -CERT_INFO_SUBJECT_UNIQUE_ID_FLAG = 10 -CERT_INFO_EXTENSION_FLAG = 11 -CRL_V1 = 0 -CRL_V2 = 1 -CERT_REQUEST_V1 = 0 -CERT_KEYGEN_REQUEST_V1 = 0 -CTL_V1 = 0 -CERT_ENCODING_TYPE_MASK = 0x0000FFFF -CMSG_ENCODING_TYPE_MASK = (-65536) -def GET_CERT_ENCODING_TYPE(X): return (X & CERT_ENCODING_TYPE_MASK) - -def GET_CMSG_ENCODING_TYPE(X): return (X & CMSG_ENCODING_TYPE_MASK) - -CRYPT_ASN_ENCODING = 0x00000001 -CRYPT_NDR_ENCODING = 0x00000002 -X509_ASN_ENCODING = 0x00000001 -X509_NDR_ENCODING = 0x00000002 -PKCS_7_ASN_ENCODING = 0x00010000 -PKCS_7_NDR_ENCODING = 0x00020000 -CRYPT_FORMAT_STR_MULTI_LINE = 0x0001 -CRYPT_FORMAT_STR_NO_HEX = 0x0010 -CRYPT_FORMAT_SIMPLE = 0x0001 -CRYPT_FORMAT_X509 = 0x0002 -CRYPT_FORMAT_OID = 0x0004 -CRYPT_FORMAT_RDN_SEMICOLON = 0x0100 -CRYPT_FORMAT_RDN_CRLF = 0x0200 -CRYPT_FORMAT_RDN_UNQUOTE = 0x0400 -CRYPT_FORMAT_RDN_REVERSE = 0x0800 -CRYPT_FORMAT_COMMA = 0x1000 -CRYPT_FORMAT_SEMICOLON = CRYPT_FORMAT_RDN_SEMICOLON -CRYPT_FORMAT_CRLF = CRYPT_FORMAT_RDN_CRLF -CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG = 0x8 -CRYPT_ENCODE_ALLOC_FLAG = 0x8000 -CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG = \ - CERT_RDN_ENABLE_T61_UNICODE_FLAG -CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG = \ - CERT_RDN_ENABLE_UTF8_UNICODE_FLAG -CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG = \ - CERT_RDN_DISABLE_CHECK_TYPE_FLAG -CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x10000 -CRYPT_DECODE_NOCOPY_FLAG = 0x1 -CRYPT_DECODE_TO_BE_SIGNED_FLAG = 0x2 -CRYPT_DECODE_SHARE_OID_STRING_FLAG = 0x4 -CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG = 0x8 -CRYPT_DECODE_ALLOC_FLAG = 0x8000 -CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG = \ - CERT_RDN_DISABLE_IE4_UTF8_FLAG - -CRYPT_ENCODE_DECODE_NONE = 0 -X509_CERT = 1 -X509_CERT_TO_BE_SIGNED = 2 -X509_CERT_CRL_TO_BE_SIGNED = 3 -X509_CERT_REQUEST_TO_BE_SIGNED = 4 -X509_EXTENSIONS = 5 -X509_NAME_VALUE = 6 -X509_NAME = 7 -X509_PUBLIC_KEY_INFO = 8 -X509_AUTHORITY_KEY_ID = 9 -X509_KEY_ATTRIBUTES = 10 -X509_KEY_USAGE_RESTRICTION = 11 -X509_ALTERNATE_NAME = 12 -X509_BASIC_CONSTRAINTS = 13 -X509_KEY_USAGE = 14 -X509_BASIC_CONSTRAINTS2 = 15 -X509_CERT_POLICIES = 16 -PKCS_UTC_TIME = 17 -PKCS_TIME_REQUEST = 18 -RSA_CSP_PUBLICKEYBLOB = 19 -X509_UNICODE_NAME = 20 -X509_KEYGEN_REQUEST_TO_BE_SIGNED = 21 -PKCS_ATTRIBUTE = 22 -PKCS_CONTENT_INFO_SEQUENCE_OF_ANY = 23 -X509_UNICODE_NAME_VALUE = 24 -X509_ANY_STRING = X509_NAME_VALUE -X509_UNICODE_ANY_STRING = X509_UNICODE_NAME_VALUE -X509_OCTET_STRING = 25 -X509_BITS = 26 -X509_INTEGER = 27 -X509_MULTI_BYTE_INTEGER = 28 -X509_ENUMERATED = 29 -X509_CHOICE_OF_TIME = 30 -X509_AUTHORITY_KEY_ID2 = 31 -X509_AUTHORITY_INFO_ACCESS = 32 -X509_SUBJECT_INFO_ACCESS = X509_AUTHORITY_INFO_ACCESS -X509_CRL_REASON_CODE = X509_ENUMERATED -PKCS_CONTENT_INFO = 33 -X509_SEQUENCE_OF_ANY = 34 -X509_CRL_DIST_POINTS = 35 -X509_ENHANCED_KEY_USAGE = 36 -PKCS_CTL = 37 -X509_MULTI_BYTE_UINT = 38 -X509_DSS_PUBLICKEY = X509_MULTI_BYTE_UINT -X509_DSS_PARAMETERS = 39 -X509_DSS_SIGNATURE = 40 -PKCS_RC2_CBC_PARAMETERS = 41 -PKCS_SMIME_CAPABILITIES = 42 -X509_QC_STATEMENTS_EXT = 42 -PKCS_RSA_PRIVATE_KEY = 43 -PKCS_PRIVATE_KEY_INFO = 44 -PKCS_ENCRYPTED_PRIVATE_KEY_INFO = 45 -X509_PKIX_POLICY_QUALIFIER_USERNOTICE = 46 -X509_DH_PUBLICKEY = X509_MULTI_BYTE_UINT -X509_DH_PARAMETERS = 47 -PKCS_ATTRIBUTES = 48 -PKCS_SORTED_CTL = 49 -X509_ECC_SIGNATURE = 47 -X942_DH_PARAMETERS = 50 -X509_BITS_WITHOUT_TRAILING_ZEROES = 51 -X942_OTHER_INFO = 52 -X509_CERT_PAIR = 53 -X509_ISSUING_DIST_POINT = 54 -X509_NAME_CONSTRAINTS = 55 -X509_POLICY_MAPPINGS = 56 -X509_POLICY_CONSTRAINTS = 57 -X509_CROSS_CERT_DIST_POINTS = 58 -CMC_DATA = 59 -CMC_RESPONSE = 60 -CMC_STATUS = 61 -CMC_ADD_EXTENSIONS = 62 -CMC_ADD_ATTRIBUTES = 63 -X509_CERTIFICATE_TEMPLATE = 64 -OCSP_SIGNED_REQUEST = 65 -OCSP_REQUEST = 66 -OCSP_RESPONSE = 67 -OCSP_BASIC_SIGNED_RESPONSE = 68 -OCSP_BASIC_RESPONSE = 69 -X509_LOGOTYPE_EXT = 70 -X509_BIOMETRIC_EXT = 71 -CNG_RSA_PUBLIC_KEY_BLOB = 72 -X509_OBJECT_IDENTIFIER = 73 -X509_ALGORITHM_IDENTIFIER = 74 -PKCS_RSA_SSA_PSS_PARAMETERS = 75 -PKCS_RSAES_OAEP_PARAMETERS = 76 -ECC_CMS_SHARED_INFO = 77 -TIMESTAMP_REQUEST = 78 -TIMESTAMP_RESPONSE = 79 -TIMESTAMP_INFO = 80 -X509_CERT_BUNDLE = 81 -PKCS7_SIGNER_INFO = 500 -CMS_SIGNER_INFO = 501 - -szOID_AUTHORITY_KEY_IDENTIFIER = "2.5.29.1" -szOID_KEY_ATTRIBUTES = "2.5.29.2" -szOID_CERT_POLICIES_95 = "2.5.29.3" -szOID_KEY_USAGE_RESTRICTION = "2.5.29.4" -szOID_SUBJECT_ALT_NAME = "2.5.29.7" -szOID_ISSUER_ALT_NAME = "2.5.29.8" -szOID_BASIC_CONSTRAINTS = "2.5.29.10" -szOID_KEY_USAGE = "2.5.29.15" -szOID_PRIVATEKEY_USAGE_PERIOD = "2.5.29.16" -szOID_BASIC_CONSTRAINTS2 = "2.5.29.19" -szOID_CERT_POLICIES = "2.5.29.32" -szOID_ANY_CERT_POLICY = "2.5.29.32.0" -szOID_AUTHORITY_KEY_IDENTIFIER2 = "2.5.29.35" -szOID_SUBJECT_KEY_IDENTIFIER = "2.5.29.14" -szOID_SUBJECT_ALT_NAME2 = "2.5.29.17" -szOID_ISSUER_ALT_NAME2 = "2.5.29.18" -szOID_CRL_REASON_CODE = "2.5.29.21" -szOID_REASON_CODE_HOLD = "2.5.29.23" -szOID_CRL_DIST_POINTS = "2.5.29.31" -szOID_ENHANCED_KEY_USAGE = "2.5.29.37" -szOID_CRL_NUMBER = "2.5.29.20" -szOID_DELTA_CRL_INDICATOR = "2.5.29.27" -szOID_ISSUING_DIST_POINT = "2.5.29.28" -szOID_FRESHEST_CRL = "2.5.29.46" -szOID_NAME_CONSTRAINTS = "2.5.29.30" -szOID_POLICY_MAPPINGS = "2.5.29.33" -szOID_LEGACY_POLICY_MAPPINGS = "2.5.29.5" -szOID_POLICY_CONSTRAINTS = "2.5.29.36" -szOID_RENEWAL_CERTIFICATE = "1.3.6.1.4.1.311.13.1" -szOID_ENROLLMENT_NAME_VALUE_PAIR = "1.3.6.1.4.1.311.13.2.1" -szOID_ENROLLMENT_CSP_PROVIDER = "1.3.6.1.4.1.311.13.2.2" -szOID_OS_VERSION = "1.3.6.1.4.1.311.13.2.3" -szOID_ENROLLMENT_AGENT = "1.3.6.1.4.1.311.20.2.1" -szOID_PKIX = "1.3.6.1.5.5.7" -szOID_PKIX_PE = "1.3.6.1.5.5.7.1" -szOID_AUTHORITY_INFO_ACCESS = "1.3.6.1.5.5.7.1.1" -szOID_CERT_EXTENSIONS = "1.3.6.1.4.1.311.2.1.14" -szOID_NEXT_UPDATE_LOCATION = "1.3.6.1.4.1.311.10.2" -szOID_REMOVE_CERTIFICATE = "1.3.6.1.4.1.311.10.8.1" -szOID_CROSS_CERT_DIST_POINTS = "1.3.6.1.4.1.311.10.9.1" -szOID_CTL = "1.3.6.1.4.1.311.10.1" -szOID_SORTED_CTL = "1.3.6.1.4.1.311.10.1.1" -szOID_SERIALIZED = "1.3.6.1.4.1.311.10.3.3.1" -szOID_NT_PRINCIPAL_NAME = "1.3.6.1.4.1.311.20.2.3" -szOID_PRODUCT_UPDATE = "1.3.6.1.4.1.311.31.1" -szOID_ANY_APPLICATION_POLICY = "1.3.6.1.4.1.311.10.12.1" -szOID_AUTO_ENROLL_CTL_USAGE = "1.3.6.1.4.1.311.20.1" -szOID_ENROLL_CERTTYPE_EXTENSION = "1.3.6.1.4.1.311.20.2" -szOID_CERT_MANIFOLD = "1.3.6.1.4.1.311.20.3" -szOID_CERTSRV_CA_VERSION = "1.3.6.1.4.1.311.21.1" -szOID_CERTSRV_PREVIOUS_CERT_HASH = "1.3.6.1.4.1.311.21.2" -szOID_CRL_VIRTUAL_BASE = "1.3.6.1.4.1.311.21.3" -szOID_CRL_NEXT_PUBLISH = "1.3.6.1.4.1.311.21.4" -szOID_KP_CA_EXCHANGE = "1.3.6.1.4.1.311.21.5" -szOID_KP_KEY_RECOVERY_AGENT = "1.3.6.1.4.1.311.21.6" -szOID_CERTIFICATE_TEMPLATE = "1.3.6.1.4.1.311.21.7" -szOID_ENTERPRISE_OID_ROOT = "1.3.6.1.4.1.311.21.8" -szOID_RDN_DUMMY_SIGNER = "1.3.6.1.4.1.311.21.9" -szOID_APPLICATION_CERT_POLICIES = "1.3.6.1.4.1.311.21.10" -szOID_APPLICATION_POLICY_MAPPINGS = "1.3.6.1.4.1.311.21.11" -szOID_APPLICATION_POLICY_CONSTRAINTS = "1.3.6.1.4.1.311.21.12" -szOID_ARCHIVED_KEY_ATTR = "1.3.6.1.4.1.311.21.13" -szOID_CRL_SELF_CDP = "1.3.6.1.4.1.311.21.14" -szOID_REQUIRE_CERT_CHAIN_POLICY = "1.3.6.1.4.1.311.21.15" -szOID_ARCHIVED_KEY_CERT_HASH = "1.3.6.1.4.1.311.21.16" -szOID_ISSUED_CERT_HASH = "1.3.6.1.4.1.311.21.17" -szOID_DS_EMAIL_REPLICATION = "1.3.6.1.4.1.311.21.19" -szOID_REQUEST_CLIENT_INFO = "1.3.6.1.4.1.311.21.20" -szOID_ENCRYPTED_KEY_HASH = "1.3.6.1.4.1.311.21.21" -szOID_CERTSRV_CROSSCA_VERSION = "1.3.6.1.4.1.311.21.22" -szOID_NTDS_REPLICATION = "1.3.6.1.4.1.311.25.1" -szOID_SUBJECT_DIR_ATTRS = "2.5.29.9" -szOID_PKIX_KP = "1.3.6.1.5.5.7.3" -szOID_PKIX_KP_SERVER_AUTH = "1.3.6.1.5.5.7.3.1" -szOID_PKIX_KP_CLIENT_AUTH = "1.3.6.1.5.5.7.3.2" -szOID_PKIX_KP_CODE_SIGNING = "1.3.6.1.5.5.7.3.3" -szOID_PKIX_KP_EMAIL_PROTECTION = "1.3.6.1.5.5.7.3.4" -szOID_PKIX_KP_IPSEC_END_SYSTEM = "1.3.6.1.5.5.7.3.5" -szOID_PKIX_KP_IPSEC_TUNNEL = "1.3.6.1.5.5.7.3.6" -szOID_PKIX_KP_IPSEC_USER = "1.3.6.1.5.5.7.3.7" -szOID_PKIX_KP_TIMESTAMP_SIGNING = "1.3.6.1.5.5.7.3.8" -szOID_IPSEC_KP_IKE_INTERMEDIATE = "1.3.6.1.5.5.8.2.2" -szOID_KP_CTL_USAGE_SIGNING = "1.3.6.1.4.1.311.10.3.1" -szOID_KP_TIME_STAMP_SIGNING = "1.3.6.1.4.1.311.10.3.2" -szOID_SERVER_GATED_CRYPTO = "1.3.6.1.4.1.311.10.3.3" -szOID_SGC_NETSCAPE = "2.16.840.1.113730.4.1" -szOID_KP_EFS = "1.3.6.1.4.1.311.10.3.4" -szOID_EFS_RECOVERY = "1.3.6.1.4.1.311.10.3.4.1" -szOID_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.5" -szOID_NT5_CRYPTO = "1.3.6.1.4.1.311.10.3.6" -szOID_OEM_WHQL_CRYPTO = "1.3.6.1.4.1.311.10.3.7" -szOID_EMBEDDED_NT_CRYPTO = "1.3.6.1.4.1.311.10.3.8" -szOID_ROOT_LIST_SIGNER = "1.3.6.1.4.1.311.10.3.9" -szOID_KP_QUALIFIED_SUBORDINATION = "1.3.6.1.4.1.311.10.3.10" -szOID_KP_KEY_RECOVERY = "1.3.6.1.4.1.311.10.3.11" -szOID_KP_DOCUMENT_SIGNING = "1.3.6.1.4.1.311.10.3.12" -szOID_KP_LIFETIME_SIGNING = "1.3.6.1.4.1.311.10.3.13" -szOID_KP_MOBILE_DEVICE_SOFTWARE = "1.3.6.1.4.1.311.10.3.14" -szOID_DRM = "1.3.6.1.4.1.311.10.5.1" -szOID_DRM_INDIVIDUALIZATION = "1.3.6.1.4.1.311.10.5.2" -szOID_LICENSES = "1.3.6.1.4.1.311.10.6.1" -szOID_LICENSE_SERVER = "1.3.6.1.4.1.311.10.6.2" -szOID_KP_SMARTCARD_LOGON = "1.3.6.1.4.1.311.20.2.2" -szOID_YESNO_TRUST_ATTR = "1.3.6.1.4.1.311.10.4.1" -szOID_PKIX_POLICY_QUALIFIER_CPS = "1.3.6.1.5.5.7.2.1" -szOID_PKIX_POLICY_QUALIFIER_USERNOTICE = "1.3.6.1.5.5.7.2.2" -szOID_CERT_POLICIES_95_QUALIFIER1 = "2.16.840.1.113733.1.7.1.1" -CERT_UNICODE_RDN_ERR_INDEX_MASK = 0x3FF -CERT_UNICODE_RDN_ERR_INDEX_SHIFT = 22 -CERT_UNICODE_ATTR_ERR_INDEX_MASK = 0x003F -CERT_UNICODE_ATTR_ERR_INDEX_SHIFT = 16 -CERT_UNICODE_VALUE_ERR_INDEX_MASK = 0x0000FFFF -CERT_UNICODE_VALUE_ERR_INDEX_SHIFT = 0 -CERT_DIGITAL_SIGNATURE_KEY_USAGE = 0x80 -CERT_NON_REPUDIATION_KEY_USAGE = 0x40 -CERT_KEY_ENCIPHERMENT_KEY_USAGE = 0x20 -CERT_DATA_ENCIPHERMENT_KEY_USAGE = 0x10 -CERT_KEY_AGREEMENT_KEY_USAGE = 0x08 -CERT_KEY_CERT_SIGN_KEY_USAGE = 0x04 -CERT_OFFLINE_CRL_SIGN_KEY_USAGE = 0x02 -CERT_CRL_SIGN_KEY_USAGE = 0x02 -CERT_ENCIPHER_ONLY_KEY_USAGE = 0x01 -CERT_DECIPHER_ONLY_KEY_USAGE = 0x80 -CERT_ALT_NAME_OTHER_NAME = 1 -CERT_ALT_NAME_RFC822_NAME = 2 -CERT_ALT_NAME_DNS_NAME = 3 -CERT_ALT_NAME_X400_ADDRESS = 4 -CERT_ALT_NAME_DIRECTORY_NAME = 5 -CERT_ALT_NAME_EDI_PARTY_NAME = 6 -CERT_ALT_NAME_URL = 7 -CERT_ALT_NAME_IP_ADDRESS = 8 -CERT_ALT_NAME_REGISTERED_ID = 9 -CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK = 0xFF -CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT = 16 -CERT_ALT_NAME_VALUE_ERR_INDEX_MASK = 0x0000FFFF -CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT = 0 -CERT_CA_SUBJECT_FLAG = 0x80 -CERT_END_ENTITY_SUBJECT_FLAG = 0x40 -szOID_PKIX_ACC_DESCR = "1.3.6.1.5.5.7.48" -szOID_PKIX_OCSP = "1.3.6.1.5.5.7.48.1" -szOID_PKIX_CA_ISSUERS = "1.3.6.1.5.5.7.48.2" -CRL_REASON_UNSPECIFIED = 0 -CRL_REASON_KEY_COMPROMISE = 1 -CRL_REASON_CA_COMPROMISE = 2 -CRL_REASON_AFFILIATION_CHANGED = 3 -CRL_REASON_SUPERSEDED = 4 -CRL_REASON_CESSATION_OF_OPERATION = 5 -CRL_REASON_CERTIFICATE_HOLD = 6 -CRL_REASON_REMOVE_FROM_CRL = 8 -CRL_DIST_POINT_NO_NAME = 0 -CRL_DIST_POINT_FULL_NAME = 1 -CRL_DIST_POINT_ISSUER_RDN_NAME = 2 -CRL_REASON_UNUSED_FLAG = 0x80 -CRL_REASON_KEY_COMPROMISE_FLAG = 0x40 -CRL_REASON_CA_COMPROMISE_FLAG = 0x20 -CRL_REASON_AFFILIATION_CHANGED_FLAG = 0x10 -CRL_REASON_SUPERSEDED_FLAG = 0x08 -CRL_REASON_CESSATION_OF_OPERATION_FLAG = 0x04 -CRL_REASON_CERTIFICATE_HOLD_FLAG = 0x02 -CRL_DIST_POINT_ERR_INDEX_MASK = 0x7F -CRL_DIST_POINT_ERR_INDEX_SHIFT = 24 - -CRL_DIST_POINT_ERR_CRL_ISSUER_BIT = (-2147483648) - -CROSS_CERT_DIST_POINT_ERR_INDEX_MASK = 0xFF -CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT = 24 - -CERT_EXCLUDED_SUBTREE_BIT = (-2147483648) - -SORTED_CTL_EXT_FLAGS_OFFSET = (0*4) -SORTED_CTL_EXT_COUNT_OFFSET = (1*4) -SORTED_CTL_EXT_MAX_COLLISION_OFFSET = (2*4) -SORTED_CTL_EXT_HASH_BUCKET_OFFSET = (3*4) -SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x1 -CERT_DSS_R_LEN = 20 -CERT_DSS_S_LEN = 20 -CERT_DSS_SIGNATURE_LEN = (CERT_DSS_R_LEN + CERT_DSS_S_LEN) -CERT_MAX_ASN_ENCODED_DSS_SIGNATURE_LEN = (2 + 2*(2 + 20 +1)) -CRYPT_X942_COUNTER_BYTE_LENGTH = 4 -CRYPT_X942_KEY_LENGTH_BYTE_LENGTH = 4 -CRYPT_X942_PUB_INFO_BYTE_LENGTH = (512/8) -CRYPT_RC2_40BIT_VERSION = 160 -CRYPT_RC2_56BIT_VERSION = 52 -CRYPT_RC2_64BIT_VERSION = 120 -CRYPT_RC2_128BIT_VERSION = 58 -szOID_VERISIGN_PRIVATE_6_9 = "2.16.840.1.113733.1.6.9" -szOID_VERISIGN_ONSITE_JURISDICTION_HASH = "2.16.840.1.113733.1.6.11" -szOID_VERISIGN_BITSTRING_6_13 = "2.16.840.1.113733.1.6.13" -szOID_VERISIGN_ISS_STRONG_CRYPTO = "2.16.840.1.113733.1.8.1" -szOID_NETSCAPE = "2.16.840.1.113730" -szOID_NETSCAPE_CERT_EXTENSION = "2.16.840.1.113730.1" -szOID_NETSCAPE_CERT_TYPE = "2.16.840.1.113730.1.1" -szOID_NETSCAPE_BASE_URL = "2.16.840.1.113730.1.2" -szOID_NETSCAPE_REVOCATION_URL = "2.16.840.1.113730.1.3" -szOID_NETSCAPE_CA_REVOCATION_URL = "2.16.840.1.113730.1.4" -szOID_NETSCAPE_CERT_RENEWAL_URL = "2.16.840.1.113730.1.7" -szOID_NETSCAPE_CA_POLICY_URL = "2.16.840.1.113730.1.8" -szOID_NETSCAPE_SSL_SERVER_NAME = "2.16.840.1.113730.1.12" -szOID_NETSCAPE_COMMENT = "2.16.840.1.113730.1.13" -szOID_NETSCAPE_DATA_TYPE = "2.16.840.1.113730.2" -szOID_NETSCAPE_CERT_SEQUENCE = "2.16.840.1.113730.2.5" -NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE = 0x80 -NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE = 0x40 -NETSCAPE_SMIME_CERT_TYPE = 0x20 -NETSCAPE_SIGN_CERT_TYPE = 0x10 -NETSCAPE_SSL_CA_CERT_TYPE = 0x04 -NETSCAPE_SMIME_CA_CERT_TYPE = 0x02 -NETSCAPE_SIGN_CA_CERT_TYPE = 0x01 -szOID_CT_PKI_DATA = "1.3.6.1.5.5.7.12.2" -szOID_CT_PKI_RESPONSE = "1.3.6.1.5.5.7.12.3" -szOID_PKIX_NO_SIGNATURE = "1.3.6.1.5.5.7.6.2" -szOID_CMC = "1.3.6.1.5.5.7.7" -szOID_CMC_STATUS_INFO = "1.3.6.1.5.5.7.7.1" -szOID_CMC_IDENTIFICATION = "1.3.6.1.5.5.7.7.2" -szOID_CMC_IDENTITY_PROOF = "1.3.6.1.5.5.7.7.3" -szOID_CMC_DATA_RETURN = "1.3.6.1.5.5.7.7.4" -szOID_CMC_TRANSACTION_ID = "1.3.6.1.5.5.7.7.5" -szOID_CMC_SENDER_NONCE = "1.3.6.1.5.5.7.7.6" -szOID_CMC_RECIPIENT_NONCE = "1.3.6.1.5.5.7.7.7" -szOID_CMC_ADD_EXTENSIONS = "1.3.6.1.5.5.7.7.8" -szOID_CMC_ENCRYPTED_POP = "1.3.6.1.5.5.7.7.9" -szOID_CMC_DECRYPTED_POP = "1.3.6.1.5.5.7.7.10" -szOID_CMC_LRA_POP_WITNESS = "1.3.6.1.5.5.7.7.11" -szOID_CMC_GET_CERT = "1.3.6.1.5.5.7.7.15" -szOID_CMC_GET_CRL = "1.3.6.1.5.5.7.7.16" -szOID_CMC_REVOKE_REQUEST = "1.3.6.1.5.5.7.7.17" -szOID_CMC_REG_INFO = "1.3.6.1.5.5.7.7.18" -szOID_CMC_RESPONSE_INFO = "1.3.6.1.5.5.7.7.19" -szOID_CMC_QUERY_PENDING = "1.3.6.1.5.5.7.7.21" -szOID_CMC_ID_POP_LINK_RANDOM = "1.3.6.1.5.5.7.7.22" -szOID_CMC_ID_POP_LINK_WITNESS = "1.3.6.1.5.5.7.7.23" -szOID_CMC_ID_CONFIRM_CERT_ACCEPTANCE = "1.3.6.1.5.5.7.7.24" -szOID_CMC_ADD_ATTRIBUTES = "1.3.6.1.4.1.311.10.10.1" -CMC_TAGGED_CERT_REQUEST_CHOICE = 1 -CMC_OTHER_INFO_NO_CHOICE = 0 -CMC_OTHER_INFO_FAIL_CHOICE = 1 -CMC_OTHER_INFO_PEND_CHOICE = 2 -CMC_STATUS_SUCCESS = 0 -CMC_STATUS_FAILED = 2 -CMC_STATUS_PENDING = 3 -CMC_STATUS_NO_SUPPORT = 4 -CMC_STATUS_CONFIRM_REQUIRED = 5 -CMC_FAIL_BAD_ALG = 0 -CMC_FAIL_BAD_MESSAGE_CHECK = 1 -CMC_FAIL_BAD_REQUEST = 2 -CMC_FAIL_BAD_TIME = 3 -CMC_FAIL_BAD_CERT_ID = 4 -CMC_FAIL_UNSUPORTED_EXT = 5 -CMC_FAIL_MUST_ARCHIVE_KEYS = 6 -CMC_FAIL_BAD_IDENTITY = 7 -CMC_FAIL_POP_REQUIRED = 8 -CMC_FAIL_POP_FAILED = 9 -CMC_FAIL_NO_KEY_REUSE = 10 -CMC_FAIL_INTERNAL_CA_ERROR = 11 -CMC_FAIL_TRY_LATER = 12 -CRYPT_OID_ENCODE_OBJECT_FUNC = "CryptDllEncodeObject" -CRYPT_OID_DECODE_OBJECT_FUNC = "CryptDllDecodeObject" -CRYPT_OID_ENCODE_OBJECT_EX_FUNC = "CryptDllEncodeObjectEx" -CRYPT_OID_DECODE_OBJECT_EX_FUNC = "CryptDllDecodeObjectEx" -CRYPT_OID_CREATE_COM_OBJECT_FUNC = "CryptDllCreateCOMObject" -CRYPT_OID_VERIFY_REVOCATION_FUNC = "CertDllVerifyRevocation" -CRYPT_OID_VERIFY_CTL_USAGE_FUNC = "CertDllVerifyCTLUsage" -CRYPT_OID_FORMAT_OBJECT_FUNC = "CryptDllFormatObject" -CRYPT_OID_FIND_OID_INFO_FUNC = "CryptDllFindOIDInfo" -CRYPT_OID_FIND_LOCALIZED_NAME_FUNC = "CryptDllFindLocalizedName" - -CRYPT_OID_REGPATH = "Software\\Microsoft\\Cryptography\\OID" -CRYPT_OID_REG_ENCODING_TYPE_PREFIX = "EncodingType " -CRYPT_OID_REG_DLL_VALUE_NAME = "Dll" -CRYPT_OID_REG_FUNC_NAME_VALUE_NAME = "FuncName" -CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A = "FuncName" -CRYPT_OID_REG_FLAGS_VALUE_NAME = "CryptFlags" -CRYPT_DEFAULT_OID = "DEFAULT" -CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG = 1 -CRYPT_GET_INSTALLED_OID_FUNC_FLAG = 0x1 -CRYPT_REGISTER_FIRST_INDEX = 0 -CRYPT_REGISTER_LAST_INDEX = (-1) -CRYPT_MATCH_ANY_ENCODING_TYPE = (-1) -CRYPT_HASH_ALG_OID_GROUP_ID = 1 -CRYPT_ENCRYPT_ALG_OID_GROUP_ID = 2 -CRYPT_PUBKEY_ALG_OID_GROUP_ID = 3 -CRYPT_SIGN_ALG_OID_GROUP_ID = 4 -CRYPT_RDN_ATTR_OID_GROUP_ID = 5 -CRYPT_EXT_OR_ATTR_OID_GROUP_ID = 6 -CRYPT_ENHKEY_USAGE_OID_GROUP_ID = 7 -CRYPT_POLICY_OID_GROUP_ID = 8 -CRYPT_TEMPLATE_OID_GROUP_ID = 9 -CRYPT_LAST_OID_GROUP_ID = 9 -CRYPT_FIRST_ALG_OID_GROUP_ID = CRYPT_HASH_ALG_OID_GROUP_ID -CRYPT_LAST_ALG_OID_GROUP_ID = CRYPT_SIGN_ALG_OID_GROUP_ID -CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG = 0x1 -CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG = 0x2 -CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG = 0x4 -CRYPT_OID_INFO_OID_KEY = 1 -CRYPT_OID_INFO_NAME_KEY = 2 -CRYPT_OID_INFO_ALGID_KEY = 3 -CRYPT_OID_INFO_SIGN_KEY = 4 -CRYPT_INSTALL_OID_INFO_BEFORE_FLAG = 1 -CRYPT_LOCALIZED_NAME_ENCODING_TYPE = 0 -CRYPT_LOCALIZED_NAME_OID = "LocalizedNames" -szOID_PKCS_7_DATA = "1.2.840.113549.1.7.1" -szOID_PKCS_7_SIGNED = "1.2.840.113549.1.7.2" -szOID_PKCS_7_ENVELOPED = "1.2.840.113549.1.7.3" -szOID_PKCS_7_SIGNEDANDENVELOPED = "1.2.840.113549.1.7.4" -szOID_PKCS_7_DIGESTED = "1.2.840.113549.1.7.5" -szOID_PKCS_7_ENCRYPTED = "1.2.840.113549.1.7.6" -szOID_PKCS_9_CONTENT_TYPE = "1.2.840.113549.1.9.3" -szOID_PKCS_9_MESSAGE_DIGEST = "1.2.840.113549.1.9.4" -CMSG_DATA = 1 -CMSG_SIGNED = 2 -CMSG_ENVELOPED = 3 -CMSG_SIGNED_AND_ENVELOPED = 4 -CMSG_HASHED = 5 -CMSG_ENCRYPTED = 6 - -CMSG_ALL_FLAGS = -1 -CMSG_DATA_FLAG = (1 << CMSG_DATA) -CMSG_SIGNED_FLAG = (1 << CMSG_SIGNED) -CMSG_ENVELOPED_FLAG = (1 << CMSG_ENVELOPED) -CMSG_SIGNED_AND_ENVELOPED_FLAG = (1 << CMSG_SIGNED_AND_ENVELOPED) -CMSG_HASHED_FLAG = (1 << CMSG_HASHED) -CMSG_ENCRYPTED_FLAG = (1 << CMSG_ENCRYPTED) -CERT_ID_ISSUER_SERIAL_NUMBER = 1 -CERT_ID_KEY_IDENTIFIER = 2 -CERT_ID_SHA1_HASH = 3 -CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE = 1 -CMSG_KEY_AGREE_STATIC_KEY_CHOICE = 2 -CMSG_MAIL_LIST_HANDLE_KEY_CHOICE = 1 -CMSG_KEY_TRANS_RECIPIENT = 1 -CMSG_KEY_AGREE_RECIPIENT = 2 -CMSG_MAIL_LIST_RECIPIENT = 3 -CMSG_SP3_COMPATIBLE_ENCRYPT_FLAG = (-2147483648) -CMSG_RC4_NO_SALT_FLAG = 0x40000000 -CMSG_INDEFINITE_LENGTH = ((-1)) -CMSG_BARE_CONTENT_FLAG = 0x00000001 -CMSG_LENGTH_ONLY_FLAG = 0x00000002 -CMSG_DETACHED_FLAG = 0x00000004 -CMSG_AUTHENTICATED_ATTRIBUTES_FLAG = 0x00000008 -CMSG_CONTENTS_OCTETS_FLAG = 0x00000010 -CMSG_MAX_LENGTH_FLAG = 0x00000020 -CMSG_CMS_ENCAPSULATED_CONTENT_FLAG = 0x00000040 -CMSG_CRYPT_RELEASE_CONTEXT_FLAG = 0x00008000 -CMSG_TYPE_PARAM = 1 -CMSG_CONTENT_PARAM = 2 -CMSG_BARE_CONTENT_PARAM = 3 -CMSG_INNER_CONTENT_TYPE_PARAM = 4 -CMSG_SIGNER_COUNT_PARAM = 5 -CMSG_SIGNER_INFO_PARAM = 6 -CMSG_SIGNER_CERT_INFO_PARAM = 7 -CMSG_SIGNER_HASH_ALGORITHM_PARAM = 8 -CMSG_SIGNER_AUTH_ATTR_PARAM = 9 -CMSG_SIGNER_UNAUTH_ATTR_PARAM = 10 -CMSG_CERT_COUNT_PARAM = 11 -CMSG_CERT_PARAM = 12 -CMSG_CRL_COUNT_PARAM = 13 -CMSG_CRL_PARAM = 14 -CMSG_ENVELOPE_ALGORITHM_PARAM = 15 -CMSG_RECIPIENT_COUNT_PARAM = 17 -CMSG_RECIPIENT_INDEX_PARAM = 18 -CMSG_RECIPIENT_INFO_PARAM = 19 -CMSG_HASH_ALGORITHM_PARAM = 20 -CMSG_HASH_DATA_PARAM = 21 -CMSG_COMPUTED_HASH_PARAM = 22 -CMSG_ENCRYPT_PARAM = 26 -CMSG_ENCRYPTED_DIGEST = 27 -CMSG_ENCODED_SIGNER = 28 -CMSG_ENCODED_MESSAGE = 29 -CMSG_VERSION_PARAM = 30 -CMSG_ATTR_CERT_COUNT_PARAM = 31 -CMSG_ATTR_CERT_PARAM = 32 -CMSG_CMS_RECIPIENT_COUNT_PARAM = 33 -CMSG_CMS_RECIPIENT_INDEX_PARAM = 34 -CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM = 35 -CMSG_CMS_RECIPIENT_INFO_PARAM = 36 -CMSG_UNPROTECTED_ATTR_PARAM = 37 -CMSG_SIGNER_CERT_ID_PARAM = 38 -CMSG_CMS_SIGNER_INFO_PARAM = 39 -CMSG_SIGNED_DATA_V1 = 1 -CMSG_SIGNED_DATA_V3 = 3 -CMSG_SIGNED_DATA_PKCS_1_5_VERSION = CMSG_SIGNED_DATA_V1 -CMSG_SIGNED_DATA_CMS_VERSION = CMSG_SIGNED_DATA_V3 -CMSG_SIGNER_INFO_V1 = 1 -CMSG_SIGNER_INFO_V3 = 3 -CMSG_SIGNER_INFO_PKCS_1_5_VERSION = CMSG_SIGNER_INFO_V1 -CMSG_SIGNER_INFO_CMS_VERSION = CMSG_SIGNER_INFO_V3 -CMSG_HASHED_DATA_V0 = 0 -CMSG_HASHED_DATA_V2 = 2 -CMSG_HASHED_DATA_PKCS_1_5_VERSION = CMSG_HASHED_DATA_V0 -CMSG_HASHED_DATA_CMS_VERSION = CMSG_HASHED_DATA_V2 -CMSG_ENVELOPED_DATA_V0 = 0 -CMSG_ENVELOPED_DATA_V2 = 2 -CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION = CMSG_ENVELOPED_DATA_V0 -CMSG_ENVELOPED_DATA_CMS_VERSION = CMSG_ENVELOPED_DATA_V2 -CMSG_KEY_AGREE_ORIGINATOR_CERT = 1 -CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY = 2 -CMSG_ENVELOPED_RECIPIENT_V0 = 0 -CMSG_ENVELOPED_RECIPIENT_V2 = 2 -CMSG_ENVELOPED_RECIPIENT_V3 = 3 -CMSG_ENVELOPED_RECIPIENT_V4 = 4 -CMSG_KEY_TRANS_PKCS_1_5_VERSION = CMSG_ENVELOPED_RECIPIENT_V0 -CMSG_KEY_TRANS_CMS_VERSION = CMSG_ENVELOPED_RECIPIENT_V2 -CMSG_KEY_AGREE_VERSION = CMSG_ENVELOPED_RECIPIENT_V3 -CMSG_MAIL_LIST_VERSION = CMSG_ENVELOPED_RECIPIENT_V4 -CMSG_CTRL_VERIFY_SIGNATURE = 1 -CMSG_CTRL_DECRYPT = 2 -CMSG_CTRL_VERIFY_HASH = 5 -CMSG_CTRL_ADD_SIGNER = 6 -CMSG_CTRL_DEL_SIGNER = 7 -CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR = 8 -CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR = 9 -CMSG_CTRL_ADD_CERT = 10 -CMSG_CTRL_DEL_CERT = 11 -CMSG_CTRL_ADD_CRL = 12 -CMSG_CTRL_DEL_CRL = 13 -CMSG_CTRL_ADD_ATTR_CERT = 14 -CMSG_CTRL_DEL_ATTR_CERT = 15 -CMSG_CTRL_KEY_TRANS_DECRYPT = 16 -CMSG_CTRL_KEY_AGREE_DECRYPT = 17 -CMSG_CTRL_MAIL_LIST_DECRYPT = 18 -CMSG_CTRL_VERIFY_SIGNATURE_EX = 19 -CMSG_CTRL_ADD_CMS_SIGNER_INFO = 20 -CMSG_VERIFY_SIGNER_PUBKEY = 1 -CMSG_VERIFY_SIGNER_CERT = 2 -CMSG_VERIFY_SIGNER_CHAIN = 3 -CMSG_VERIFY_SIGNER_NULL = 4 -CMSG_OID_GEN_ENCRYPT_KEY_FUNC = "CryptMsgDllGenEncryptKey" -CMSG_OID_EXPORT_ENCRYPT_KEY_FUNC = "CryptMsgDllExportEncryptKey" -CMSG_OID_IMPORT_ENCRYPT_KEY_FUNC = "CryptMsgDllImportEncryptKey" -CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG = 0x00000001 -CMSG_DEFAULT_INSTALLABLE_FUNC_OID = 1 -CMSG_CONTENT_ENCRYPT_FREE_PARA_FLAG = 0x00000001 -CMSG_CONTENT_ENCRYPT_RELEASE_CONTEXT_FLAG = 0x00008000 -CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC = "CryptMsgDllGenContentEncryptKey" -CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG = 0x00000001 -CMSG_OID_EXPORT_KEY_TRANS_FUNC = "CryptMsgDllExportKeyTrans" -CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG = 0x00000001 -CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG = 0x00000002 -CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG = 0x00000004 -CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG = 0x00000008 -CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG = 0x00000010 -CMSG_OID_EXPORT_KEY_AGREE_FUNC = "CryptMsgDllExportKeyAgree" -CMSG_MAIL_LIST_ENCRYPT_FREE_PARA_FLAG = 0x00000001 -CMSG_OID_EXPORT_MAIL_LIST_FUNC = "CryptMsgDllExportMailList" -CMSG_OID_IMPORT_KEY_TRANS_FUNC = "CryptMsgDllImportKeyTrans" -CMSG_OID_IMPORT_KEY_AGREE_FUNC = "CryptMsgDllImportKeyAgree" -CMSG_OID_IMPORT_MAIL_LIST_FUNC = "CryptMsgDllImportMailList" - -# Certificate property id's used with CertGetCertificateContextProperty -CERT_KEY_PROV_HANDLE_PROP_ID = 1 -CERT_KEY_PROV_INFO_PROP_ID = 2 -CERT_SHA1_HASH_PROP_ID = 3 -CERT_MD5_HASH_PROP_ID = 4 -CERT_HASH_PROP_ID = CERT_SHA1_HASH_PROP_ID -CERT_KEY_CONTEXT_PROP_ID = 5 -CERT_KEY_SPEC_PROP_ID = 6 -CERT_IE30_RESERVED_PROP_ID = 7 -CERT_PUBKEY_HASH_RESERVED_PROP_ID = 8 -CERT_ENHKEY_USAGE_PROP_ID = 9 -CERT_CTL_USAGE_PROP_ID = CERT_ENHKEY_USAGE_PROP_ID -CERT_NEXT_UPDATE_LOCATION_PROP_ID = 10 -CERT_FRIENDLY_NAME_PROP_ID = 11 -CERT_PVK_FILE_PROP_ID = 12 -CERT_DESCRIPTION_PROP_ID = 13 -CERT_ACCESS_STATE_PROP_ID = 14 -CERT_SIGNATURE_HASH_PROP_ID = 15 -CERT_SMART_CARD_DATA_PROP_ID = 16 -CERT_EFS_PROP_ID = 17 -CERT_FORTEZZA_DATA_PROP_ID = 18 -CERT_ARCHIVED_PROP_ID = 19 -CERT_KEY_IDENTIFIER_PROP_ID = 20 -CERT_AUTO_ENROLL_PROP_ID = 21 -CERT_PUBKEY_ALG_PARA_PROP_ID = 22 -CERT_CROSS_CERT_DIST_POINTS_PROP_ID = 23 -CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID = 24 -CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID = 25 -CERT_ENROLLMENT_PROP_ID = 26 -CERT_DATE_STAMP_PROP_ID = 27 -CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = 28 -CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = 29 -CERT_EXTENDED_ERROR_INFO_PROP_ID = 30 -CERT_RENEWAL_PROP_ID = 64 -CERT_ARCHIVED_KEY_HASH_PROP_ID = 65 -CERT_AUTO_ENROLL_RETRY_PROP_ID = 66 -CERT_AIA_URL_RETRIEVED_PROP_ID = 67 -CERT_AUTHORITY_INFO_ACCESS_PROP_ID = 68 -CERT_BACKED_UP_PROP_ID = 69 -CERT_OCSP_RESPONSE_PROP_ID = 70 -CERT_REQUEST_ORIGINATOR_PROP_ID = 71 -CERT_SOURCE_LOCATION_PROP_ID = 72 -CERT_SOURCE_URL_PROP_ID = 73 -CERT_NEW_KEY_PROP_ID = 74 -CERT_OCSP_CACHE_PREFIX_PROP_ID = 75 -CERT_SMART_CARD_ROOT_INFO_PROP_ID = 76 -CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID = 77 -CERT_NCRYPT_KEY_HANDLE_PROP_ID = 78 -CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID = 79 -CERT_SUBJECT_INFO_ACCESS_PROP_ID = 80 -CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID = 81 -CERT_CA_DISABLE_CRL_PROP_ID = 82 -CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID = 83 -CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID = 84 -CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID = 85 -CERT_SUBJECT_DISABLE_CRL_PROP_ID = 86 -CERT_CEP_PROP_ID = 87 -CERT_SIGN_HASH_CNG_ALG_PROP_ID = 89 -CERT_SCARD_PIN_ID_PROP_ID = 90 -CERT_SCARD_PIN_INFO_PROP_ID = 91 -CERT_FIRST_RESERVED_PROP_ID = 92 -CERT_LAST_RESERVED_PROP_ID = 0x00007FFF -CERT_FIRST_USER_PROP_ID = 0x00008000 -CERT_LAST_USER_PROP_ID = 0x0000FFFF - -szOID_CERT_PROP_ID_PREFIX = "1.3.6.1.4.1.311.10.11." -szOID_CERT_KEY_IDENTIFIER_PROP_ID = "1.3.6.1.4.1.311.10.11.20" -szOID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID = \ - "1.3.6.1.4.1.311.10.11.28" -szOID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID = \ - "1.3.6.1.4.1.311.10.11.29" -CERT_ACCESS_STATE_WRITE_PERSIST_FLAG = 0x1 -CERT_ACCESS_STATE_SYSTEM_STORE_FLAG = 0x2 -CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG = 0x4 -CERT_SET_KEY_PROV_HANDLE_PROP_ID = 0x00000001 -CERT_SET_KEY_CONTEXT_PROP_ID = 0x00000001 -sz_CERT_STORE_PROV_MEMORY = "Memory" -sz_CERT_STORE_PROV_FILENAME_W = "File" -sz_CERT_STORE_PROV_FILENAME = sz_CERT_STORE_PROV_FILENAME_W -sz_CERT_STORE_PROV_SYSTEM_W = "System" -sz_CERT_STORE_PROV_SYSTEM = sz_CERT_STORE_PROV_SYSTEM_W -sz_CERT_STORE_PROV_PKCS7 = "PKCS7" -sz_CERT_STORE_PROV_SERIALIZED = "Serialized" -sz_CERT_STORE_PROV_COLLECTION = "Collection" -sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W = "SystemRegistry" -sz_CERT_STORE_PROV_SYSTEM_REGISTRY = sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W -sz_CERT_STORE_PROV_PHYSICAL_W = "Physical" -sz_CERT_STORE_PROV_PHYSICAL = sz_CERT_STORE_PROV_PHYSICAL_W -sz_CERT_STORE_PROV_SMART_CARD_W = "SmartCard" -sz_CERT_STORE_PROV_SMART_CARD = sz_CERT_STORE_PROV_SMART_CARD_W -sz_CERT_STORE_PROV_LDAP_W = "Ldap" -sz_CERT_STORE_PROV_LDAP = sz_CERT_STORE_PROV_LDAP_W -CERT_STORE_SIGNATURE_FLAG = 0x00000001 -CERT_STORE_TIME_VALIDITY_FLAG = 0x00000002 -CERT_STORE_REVOCATION_FLAG = 0x00000004 -CERT_STORE_NO_CRL_FLAG = 0x00010000 -CERT_STORE_NO_ISSUER_FLAG = 0x00020000 -CERT_STORE_BASE_CRL_FLAG = 0x00000100 -CERT_STORE_DELTA_CRL_FLAG = 0x00000200 -CERT_STORE_NO_CRYPT_RELEASE_FLAG = 0x00000001 -CERT_STORE_SET_LOCALIZED_NAME_FLAG = 0x00000002 -CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 -CERT_STORE_DELETE_FLAG = 0x00000010 -CERT_STORE_UNSAFE_PHYSICAL_FLAG = 0x00000020 -CERT_STORE_SHARE_STORE_FLAG = 0x00000040 -CERT_STORE_SHARE_CONTEXT_FLAG = 0x00000080 -CERT_STORE_MANIFOLD_FLAG = 0x00000100 -CERT_STORE_ENUM_ARCHIVED_FLAG = 0x00000200 -CERT_STORE_UPDATE_KEYID_FLAG = 0x00000400 -CERT_STORE_BACKUP_RESTORE_FLAG = 0x00000800 -CERT_STORE_READONLY_FLAG = 0x00008000 -CERT_STORE_OPEN_EXISTING_FLAG = 0x00004000 -CERT_STORE_CREATE_NEW_FLAG = 0x00002000 -CERT_STORE_MAXIMUM_ALLOWED_FLAG = 0x00001000 -CERT_SYSTEM_STORE_MASK = (-65536) -CERT_SYSTEM_STORE_RELOCATE_FLAG = (-2147483648) -CERT_SYSTEM_STORE_UNPROTECTED_FLAG = 0x40000000 -CERT_SYSTEM_STORE_LOCATION_MASK = 0x00FF0000 -CERT_SYSTEM_STORE_LOCATION_SHIFT = 16 -CERT_SYSTEM_STORE_CURRENT_USER_ID = 1 -CERT_SYSTEM_STORE_LOCAL_MACHINE_ID = 2 -CERT_SYSTEM_STORE_CURRENT_SERVICE_ID = 4 -CERT_SYSTEM_STORE_SERVICES_ID = 5 -CERT_SYSTEM_STORE_USERS_ID = 6 -CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID = 7 -CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID = 8 -CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID = 9 -CERT_SYSTEM_STORE_CURRENT_USER = \ - (CERT_SYSTEM_STORE_CURRENT_USER_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) -CERT_SYSTEM_STORE_LOCAL_MACHINE = \ - (CERT_SYSTEM_STORE_LOCAL_MACHINE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) -CERT_SYSTEM_STORE_CURRENT_SERVICE = \ - (CERT_SYSTEM_STORE_CURRENT_SERVICE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) -CERT_SYSTEM_STORE_SERVICES = \ - (CERT_SYSTEM_STORE_SERVICES_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) -CERT_SYSTEM_STORE_USERS = \ - (CERT_SYSTEM_STORE_USERS_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT) -CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY = \ - (CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID << \ - CERT_SYSTEM_STORE_LOCATION_SHIFT) -CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = \ - (CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID << \ - CERT_SYSTEM_STORE_LOCATION_SHIFT) -CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE = \ - (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << \ - CERT_SYSTEM_STORE_LOCATION_SHIFT) -CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG = 0x1 -CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG = 0x2 -CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG = 0x4 -CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG = 0x8 -CERT_PROT_ROOT_ONLY_LM_GPT_FLAG = 0x8 -CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG = 0x10 -CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG = 0x20 -CERT_TRUST_PUB_ALLOW_TRUST_MASK = 0x00000003 -CERT_TRUST_PUB_ALLOW_END_USER_TRUST = 0x00000000 -CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST = 0x00000001 -CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST = 0x00000002 -CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG = 0x00000100 -CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG = 0x00000200 - -CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH = r"Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate" -CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG = 0x1 -CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_PARTIAL_CHAIN_LOGGING_FLAG = 0x2 -CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME = "RootDirUrl" -CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME = "SyncDeltaTime" -CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME = "Flags" -CERT_AUTH_ROOT_CTL_FILENAME = "authroot.stl" -CERT_AUTH_ROOT_CTL_FILENAME_A = "authroot.stl" -CERT_AUTH_ROOT_CAB_FILENAME = "authrootstl.cab" -CERT_AUTH_ROOT_SEQ_FILENAME = "authrootseq.txt" -CERT_AUTH_ROOT_CERT_EXT = ".crt" - -CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH = r"Software\Policies\Microsoft\SystemCertificates" -CERT_EFSBLOB_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\EFS" -CERT_EFSBLOB_VALUE_NAME = "EFSBlob" -CERT_PROT_ROOT_FLAGS_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH +r"\Root\ProtectedRoots" -CERT_PROT_ROOT_FLAGS_VALUE_NAME = "Flags" -CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\TrustedPublisher\Safer" -CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH = r"Software\Microsoft\SystemCertificates" -CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH + r"\TrustedPublisher\Safer" -CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME = "AuthenticodeFlags" -CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OC Manager\Subcomponents" -CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME = r"RootAutoUpdate" -CERT_DISABLE_ROOT_AUTO_UPDATE_REGPATH = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH + r"\AuthRoot" -CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME = "DisableRootAutoUpdate" -CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH + r"\AuthRoot\AutoUpdate" - -CERT_REGISTRY_STORE_REMOTE_FLAG = 0x10000 -CERT_REGISTRY_STORE_SERIALIZED_FLAG = 0x20000 -CERT_REGISTRY_STORE_CLIENT_GPT_FLAG = (-2147483648) -CERT_REGISTRY_STORE_LM_GPT_FLAG = 0x01000000 -CERT_REGISTRY_STORE_ROAMING_FLAG = 0x40000 -CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x80000 -CERT_IE_DIRTY_FLAGS_REGPATH = r"Software\Microsoft\Cryptography\IEDirtyFlags" - -CERT_FILE_STORE_COMMIT_ENABLE_FLAG = 0x10000 -CERT_LDAP_STORE_SIGN_FLAG = 0x10000 -CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG = 0x20000 -CERT_LDAP_STORE_OPENED_FLAG = 0x40000 -CERT_LDAP_STORE_UNBIND_FLAG = 0x80000 -CRYPT_OID_OPEN_STORE_PROV_FUNC = "CertDllOpenStoreProv" - -CERT_STORE_PROV_EXTERNAL_FLAG = 0x1 -CERT_STORE_PROV_DELETED_FLAG = 0x2 -CERT_STORE_PROV_NO_PERSIST_FLAG = 0x4 -CERT_STORE_PROV_SYSTEM_STORE_FLAG = 0x8 -CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG = 0x10 -CERT_STORE_PROV_CLOSE_FUNC = 0 -CERT_STORE_PROV_READ_CERT_FUNC = 1 -CERT_STORE_PROV_WRITE_CERT_FUNC = 2 -CERT_STORE_PROV_DELETE_CERT_FUNC = 3 -CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC = 4 -CERT_STORE_PROV_READ_CRL_FUNC = 5 -CERT_STORE_PROV_WRITE_CRL_FUNC = 6 -CERT_STORE_PROV_DELETE_CRL_FUNC = 7 -CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC = 8 -CERT_STORE_PROV_READ_CTL_FUNC = 9 -CERT_STORE_PROV_WRITE_CTL_FUNC = 10 -CERT_STORE_PROV_DELETE_CTL_FUNC = 11 -CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC = 12 -CERT_STORE_PROV_CONTROL_FUNC = 13 -CERT_STORE_PROV_FIND_CERT_FUNC = 14 -CERT_STORE_PROV_FREE_FIND_CERT_FUNC = 15 -CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC = 16 -CERT_STORE_PROV_FIND_CRL_FUNC = 17 -CERT_STORE_PROV_FREE_FIND_CRL_FUNC = 18 -CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC = 19 -CERT_STORE_PROV_FIND_CTL_FUNC = 20 -CERT_STORE_PROV_FREE_FIND_CTL_FUNC = 21 -CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC = 22 -CERT_STORE_PROV_WRITE_ADD_FLAG = 0x1 -CERT_STORE_SAVE_AS_STORE = 1 -CERT_STORE_SAVE_AS_PKCS7 = 2 -CERT_STORE_SAVE_TO_FILE = 1 -CERT_STORE_SAVE_TO_MEMORY = 2 -CERT_STORE_SAVE_TO_FILENAME_A = 3 -CERT_STORE_SAVE_TO_FILENAME_W = 4 -CERT_STORE_SAVE_TO_FILENAME = CERT_STORE_SAVE_TO_FILENAME_W -CERT_CLOSE_STORE_FORCE_FLAG = 0x00000001 -CERT_CLOSE_STORE_CHECK_FLAG = 0x00000002 -CERT_COMPARE_MASK = 0xFFFF -CERT_COMPARE_SHIFT = 16 -CERT_COMPARE_ANY = 0 -CERT_COMPARE_SHA1_HASH = 1 -CERT_COMPARE_NAME = 2 -CERT_COMPARE_ATTR = 3 -CERT_COMPARE_MD5_HASH = 4 -CERT_COMPARE_PROPERTY = 5 -CERT_COMPARE_PUBLIC_KEY = 6 -CERT_COMPARE_HASH = CERT_COMPARE_SHA1_HASH -CERT_COMPARE_NAME_STR_A = 7 -CERT_COMPARE_NAME_STR_W = 8 -CERT_COMPARE_KEY_SPEC = 9 -CERT_COMPARE_ENHKEY_USAGE = 10 -CERT_COMPARE_CTL_USAGE = CERT_COMPARE_ENHKEY_USAGE -CERT_COMPARE_SUBJECT_CERT = 11 -CERT_COMPARE_ISSUER_OF = 12 -CERT_COMPARE_EXISTING = 13 -CERT_COMPARE_SIGNATURE_HASH = 14 -CERT_COMPARE_KEY_IDENTIFIER = 15 -CERT_COMPARE_CERT_ID = 16 -CERT_COMPARE_CROSS_CERT_DIST_POINTS = 17 -CERT_COMPARE_PUBKEY_MD5_HASH = 18 -CERT_FIND_ANY = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT) -CERT_FIND_SHA1_HASH = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT) -CERT_FIND_MD5_HASH = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT) -CERT_FIND_SIGNATURE_HASH = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT) -CERT_FIND_KEY_IDENTIFIER = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT) -CERT_FIND_HASH = CERT_FIND_SHA1_HASH -CERT_FIND_PROPERTY = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT) -CERT_FIND_PUBLIC_KEY = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT) -CERT_FIND_SUBJECT_NAME = (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | \ - CERT_INFO_SUBJECT_FLAG) -CERT_FIND_SUBJECT_ATTR = (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | \ - CERT_INFO_SUBJECT_FLAG) -CERT_FIND_ISSUER_NAME = (CERT_COMPARE_NAME << CERT_COMPARE_SHIFT | \ - CERT_INFO_ISSUER_FLAG) -CERT_FIND_ISSUER_ATTR = (CERT_COMPARE_ATTR << CERT_COMPARE_SHIFT | \ - CERT_INFO_ISSUER_FLAG) -CERT_FIND_SUBJECT_STR_A = (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | \ - CERT_INFO_SUBJECT_FLAG) -CERT_FIND_SUBJECT_STR_W = (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | \ - CERT_INFO_SUBJECT_FLAG) -CERT_FIND_SUBJECT_STR = CERT_FIND_SUBJECT_STR_W -CERT_FIND_ISSUER_STR_A = (CERT_COMPARE_NAME_STR_A << CERT_COMPARE_SHIFT | \ - CERT_INFO_ISSUER_FLAG) -CERT_FIND_ISSUER_STR_W = (CERT_COMPARE_NAME_STR_W << CERT_COMPARE_SHIFT | \ - CERT_INFO_ISSUER_FLAG) -CERT_FIND_ISSUER_STR = CERT_FIND_ISSUER_STR_W -CERT_FIND_KEY_SPEC = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT) -CERT_FIND_ENHKEY_USAGE = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT) -CERT_FIND_CTL_USAGE = CERT_FIND_ENHKEY_USAGE -CERT_FIND_SUBJECT_CERT = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT) -CERT_FIND_ISSUER_OF = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT) -CERT_FIND_EXISTING = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT) -CERT_FIND_CERT_ID = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT) -CERT_FIND_CROSS_CERT_DIST_POINTS = \ - (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT) -CERT_FIND_PUBKEY_MD5_HASH = \ - (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT) -CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG = 0x1 -CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG = 0x2 -CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4 -CERT_FIND_NO_ENHKEY_USAGE_FLAG = 0x8 -CERT_FIND_OR_ENHKEY_USAGE_FLAG = 0x10 -CERT_FIND_VALID_ENHKEY_USAGE_FLAG = 0x20 -CERT_FIND_OPTIONAL_CTL_USAGE_FLAG = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG -CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG = \ - CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG -CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG = \ - CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG -CERT_FIND_NO_CTL_USAGE_FLAG = CERT_FIND_NO_ENHKEY_USAGE_FLAG -CERT_FIND_OR_CTL_USAGE_FLAG = CERT_FIND_OR_ENHKEY_USAGE_FLAG -CERT_FIND_VALID_CTL_USAGE_FLAG = CERT_FIND_VALID_ENHKEY_USAGE_FLAG -CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG = (-2147483648) -CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG = 0x40000000 -CTL_ENTRY_FROM_PROP_CHAIN_FLAG = 0x1 -CRL_FIND_ANY = 0 -CRL_FIND_ISSUED_BY = 1 -CRL_FIND_EXISTING = 2 -CRL_FIND_ISSUED_FOR = 3 -CRL_FIND_ISSUED_BY_AKI_FLAG = 0x1 -CRL_FIND_ISSUED_BY_SIGNATURE_FLAG = 0x2 -CRL_FIND_ISSUED_BY_DELTA_FLAG = 0x4 -CRL_FIND_ISSUED_BY_BASE_FLAG = 0x8 -CERT_STORE_ADD_NEW = 1 -CERT_STORE_ADD_USE_EXISTING = 2 -CERT_STORE_ADD_REPLACE_EXISTING = 3 -CERT_STORE_ADD_ALWAYS = 4 -CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5 -CERT_STORE_ADD_NEWER = 6 -CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES = 7 -CERT_STORE_CERTIFICATE_CONTEXT = 1 -CERT_STORE_CRL_CONTEXT = 2 -CERT_STORE_CTL_CONTEXT = 3 - -CERT_STORE_ALL_CONTEXT_FLAG = -1 -CERT_STORE_CERTIFICATE_CONTEXT_FLAG = \ - (1 << CERT_STORE_CERTIFICATE_CONTEXT) -CERT_STORE_CRL_CONTEXT_FLAG = \ - (1 << CERT_STORE_CRL_CONTEXT) -CERT_STORE_CTL_CONTEXT_FLAG = \ - (1 << CERT_STORE_CTL_CONTEXT) -CTL_ANY_SUBJECT_TYPE = 1 -CTL_CERT_SUBJECT_TYPE = 2 -CTL_FIND_ANY = 0 -CTL_FIND_SHA1_HASH = 1 -CTL_FIND_MD5_HASH = 2 -CTL_FIND_USAGE = 3 -CTL_FIND_SUBJECT = 4 -CTL_FIND_EXISTING = 5 -CTL_FIND_NO_LIST_ID_CBDATA = (-1) -CTL_FIND_SAME_USAGE_FLAG = 0x1 -CERT_STORE_CTRL_RESYNC = 1 -CERT_STORE_CTRL_NOTIFY_CHANGE = 2 -CERT_STORE_CTRL_COMMIT = 3 -CERT_STORE_CTRL_AUTO_RESYNC = 4 -CERT_STORE_CTRL_CANCEL_NOTIFY = 5 -CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG = 0x1 -CERT_STORE_CTRL_COMMIT_FORCE_FLAG = 0x1 -CERT_STORE_CTRL_COMMIT_CLEAR_FLAG = 0x2 -CERT_STORE_LOCALIZED_NAME_PROP_ID = 0x1000 -CERT_CREATE_CONTEXT_NOCOPY_FLAG = 0x1 -CERT_CREATE_CONTEXT_SORTED_FLAG = 0x2 -CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG = 0x4 -CERT_CREATE_CONTEXT_NO_ENTRY_FLAG = 0x8 - -CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG = 0x1 -CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG = 0x2 -CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG = 0x4 -CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG = 0x8 -CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG = 0x1 - -# Names of physical cert stores -CERT_PHYSICAL_STORE_DEFAULT_NAME = ".Default" -CERT_PHYSICAL_STORE_GROUP_POLICY_NAME = ".GroupPolicy" -CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME = ".LocalMachine" -CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME = ".UserCertificate" -CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME = ".LocalMachineGroupPolicy" -CERT_PHYSICAL_STORE_ENTERPRISE_NAME = ".Enterprise" -CERT_PHYSICAL_STORE_AUTH_ROOT_NAME = ".AuthRoot" -CERT_PHYSICAL_STORE_SMART_CARD_NAME = ".SmartCard" - -CRYPT_OID_OPEN_SYSTEM_STORE_PROV_FUNC = "CertDllOpenSystemStoreProv" -CRYPT_OID_REGISTER_SYSTEM_STORE_FUNC = "CertDllRegisterSystemStore" -CRYPT_OID_UNREGISTER_SYSTEM_STORE_FUNC = "CertDllUnregisterSystemStore" -CRYPT_OID_ENUM_SYSTEM_STORE_FUNC = "CertDllEnumSystemStore" -CRYPT_OID_REGISTER_PHYSICAL_STORE_FUNC = "CertDllRegisterPhysicalStore" -CRYPT_OID_UNREGISTER_PHYSICAL_STORE_FUNC = "CertDllUnregisterPhysicalStore" -CRYPT_OID_ENUM_PHYSICAL_STORE_FUNC = "CertDllEnumPhysicalStore" -CRYPT_OID_SYSTEM_STORE_LOCATION_VALUE_NAME = "SystemStoreLocation" - -CMSG_TRUSTED_SIGNER_FLAG = 0x1 -CMSG_SIGNER_ONLY_FLAG = 0x2 -CMSG_USE_SIGNER_INDEX_FLAG = 0x4 -CMSG_CMS_ENCAPSULATED_CTL_FLAG = 0x00008000 -CMSG_ENCODE_SORTED_CTL_FLAG = 0x1 -CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG = 0x2 -CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG = 0x1 -CERT_VERIFY_TRUSTED_SIGNERS_FLAG = 0x2 -CERT_VERIFY_NO_TIME_CHECK_FLAG = 0x4 -CERT_VERIFY_ALLOW_MORE_USAGE_FLAG = 0x8 -CERT_VERIFY_UPDATED_CTL_FLAG = 0x1 -CERT_CONTEXT_REVOCATION_TYPE = 1 -CERT_VERIFY_REV_CHAIN_FLAG = 0x00000001 -CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION = 0x00000002 -CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG = 0x00000004 -CERT_UNICODE_IS_RDN_ATTRS_FLAG = 0x1 -CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG = 0x2 -CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB = 1 -CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT = 2 -CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL = 3 -CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY = 1 -CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT = 2 -CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN = 3 -CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL = 4 -CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG = 0x00000001 -CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG = 0x00000002 -CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID = 1 -CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID = 2 -CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC = "CryptDllExportPublicKeyInfoEx" -CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC = "CryptDllImportPublicKeyInfoEx" -CRYPT_ACQUIRE_CACHE_FLAG = 0x00000001 -CRYPT_ACQUIRE_USE_PROV_INFO_FLAG = 0x00000002 -CRYPT_ACQUIRE_COMPARE_KEY_FLAG = 0x00000004 -CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040 -CRYPT_FIND_USER_KEYSET_FLAG = 0x00000001 -CRYPT_FIND_MACHINE_KEYSET_FLAG = 0x00000002 -CRYPT_FIND_SILENT_KEYSET_FLAG = 0x00000040 -CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC = "CryptDllImportPrivateKeyInfoEx" -CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC = "CryptDllExportPrivateKeyInfoEx" -CRYPT_DELETE_KEYSET = CRYPT_DELETEKEYSET -CERT_SIMPLE_NAME_STR = 1 -CERT_OID_NAME_STR = 2 -CERT_X500_NAME_STR = 3 -CERT_NAME_STR_SEMICOLON_FLAG = 0x40000000 -CERT_NAME_STR_NO_PLUS_FLAG = 0x20000000 -CERT_NAME_STR_NO_QUOTING_FLAG = 0x10000000 -CERT_NAME_STR_CRLF_FLAG = 0x08000000 -CERT_NAME_STR_COMMA_FLAG = 0x04000000 -CERT_NAME_STR_REVERSE_FLAG = 0x02000000 -CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG = 0x00010000 -CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG = 0x00020000 -CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG = 0x00040000 -CERT_NAME_EMAIL_TYPE = 1 -CERT_NAME_RDN_TYPE = 2 -CERT_NAME_ATTR_TYPE = 3 -CERT_NAME_SIMPLE_DISPLAY_TYPE = 4 -CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5 -CERT_NAME_DNS_TYPE = 6 -CERT_NAME_URL_TYPE = 7 -CERT_NAME_UPN_TYPE = 8 -CERT_NAME_ISSUER_FLAG = 0x1 -CERT_NAME_DISABLE_IE4_UTF8_FLAG = 0x00010000 -CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG = 0x00000001 -CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG = 0x00000002 -CRYPT_MESSAGE_KEYID_SIGNER_FLAG = 0x00000004 -CRYPT_MESSAGE_SILENT_KEYSET_FLAG = 0x00000040 -CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG = 0x4 -CERT_QUERY_OBJECT_FILE = 0x00000001 -CERT_QUERY_OBJECT_BLOB = 0x00000002 -CERT_QUERY_CONTENT_CERT = 1 -CERT_QUERY_CONTENT_CTL = 2 -CERT_QUERY_CONTENT_CRL = 3 -CERT_QUERY_CONTENT_SERIALIZED_STORE = 4 -CERT_QUERY_CONTENT_SERIALIZED_CERT = 5 -CERT_QUERY_CONTENT_SERIALIZED_CTL = 6 -CERT_QUERY_CONTENT_SERIALIZED_CRL = 7 -CERT_QUERY_CONTENT_PKCS7_SIGNED = 8 -CERT_QUERY_CONTENT_PKCS7_UNSIGNED = 9 -CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED = 10 -CERT_QUERY_CONTENT_PKCS10 = 11 -CERT_QUERY_CONTENT_PFX = 12 -CERT_QUERY_CONTENT_CERT_PAIR = 13 -CERT_QUERY_CONTENT_FLAG_CERT = \ - ( 1 << CERT_QUERY_CONTENT_CERT) -CERT_QUERY_CONTENT_FLAG_CTL = \ - ( 1 << CERT_QUERY_CONTENT_CTL) -CERT_QUERY_CONTENT_FLAG_CRL = \ - ( 1 << CERT_QUERY_CONTENT_CRL) -CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE = \ - ( 1 << CERT_QUERY_CONTENT_SERIALIZED_STORE) -CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT = \ - ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CERT) -CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL = \ - ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CTL) -CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL = \ - ( 1 << CERT_QUERY_CONTENT_SERIALIZED_CRL) -CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED = \ - ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED) -CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED = \ - ( 1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED) -CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = \ - ( 1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED) -CERT_QUERY_CONTENT_FLAG_PKCS10 = \ - ( 1 << CERT_QUERY_CONTENT_PKCS10) -CERT_QUERY_CONTENT_FLAG_PFX = \ - ( 1 << CERT_QUERY_CONTENT_PFX) -CERT_QUERY_CONTENT_FLAG_CERT_PAIR = \ - ( 1 << CERT_QUERY_CONTENT_CERT_PAIR) -CERT_QUERY_CONTENT_FLAG_ALL = \ - CERT_QUERY_CONTENT_FLAG_CERT | \ - CERT_QUERY_CONTENT_FLAG_CTL | \ - CERT_QUERY_CONTENT_FLAG_CRL | \ - CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | \ - CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | \ - CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | \ - CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | \ - CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | \ - CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | \ - CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | \ - CERT_QUERY_CONTENT_FLAG_PKCS10 | \ - CERT_QUERY_CONTENT_FLAG_PFX | \ - CERT_QUERY_CONTENT_FLAG_CERT_PAIR -CERT_QUERY_FORMAT_BINARY = 1 -CERT_QUERY_FORMAT_BASE64_ENCODED = 2 -CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED = 3 -CERT_QUERY_FORMAT_FLAG_BINARY = \ - ( 1 << CERT_QUERY_FORMAT_BINARY) -CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED = \ - ( 1 << CERT_QUERY_FORMAT_BASE64_ENCODED) -CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = \ - ( 1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED) -CERT_QUERY_FORMAT_FLAG_ALL = \ - CERT_QUERY_FORMAT_FLAG_BINARY | \ - CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | \ - CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED - -CREDENTIAL_OID_PASSWORD_CREDENTIALS_A = 1 -CREDENTIAL_OID_PASSWORD_CREDENTIALS_W = 2 -CREDENTIAL_OID_PASSWORD_CREDENTIALS = CREDENTIAL_OID_PASSWORD_CREDENTIALS_W - -SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC = "SchemeDllRetrieveEncodedObject" -SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC = "SchemeDllRetrieveEncodedObjectW" -CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC = "ContextDllCreateObjectContext" -CONTEXT_OID_CERTIFICATE = 1 -CONTEXT_OID_CRL = 2 -CONTEXT_OID_CTL = 3 -CONTEXT_OID_PKCS7 = 4 -CONTEXT_OID_CAPI2_ANY = 5 -CONTEXT_OID_OCSP_RESP = 6 - -CRYPT_RETRIEVE_MULTIPLE_OBJECTS = 0x00000001 -CRYPT_CACHE_ONLY_RETRIEVAL = 0x00000002 -CRYPT_WIRE_ONLY_RETRIEVAL = 0x00000004 -CRYPT_DONT_CACHE_RESULT = 0x00000008 -CRYPT_ASYNC_RETRIEVAL = 0x00000010 -CRYPT_STICKY_CACHE_RETRIEVAL = 0x00001000 -CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL = 0x00002000 -CRYPT_OFFLINE_CHECK_RETRIEVAL = 0x00004000 -CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE = 0x00008000 -CRYPT_LDAP_SIGN_RETRIEVAL = 0x00010000 -CRYPT_NO_AUTH_RETRIEVAL = 0x00020000 -CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL = 0x00040000 -CRYPT_AIA_RETRIEVAL = 0x00080000 -CRYPT_VERIFY_CONTEXT_SIGNATURE = 0x00000020 -CRYPT_VERIFY_DATA_HASH = 0x00000040 -CRYPT_KEEP_TIME_VALID = 0x00000080 -CRYPT_DONT_VERIFY_SIGNATURE = 0x00000100 -CRYPT_DONT_CHECK_TIME_VALIDITY = 0x00000200 -CRYPT_CHECK_FRESHNESS_TIME_VALIDITY = 0x00000400 -CRYPT_ACCUMULATIVE_TIMEOUT = 0x00000800 -CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION = 1 -CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL = 2 -CRYPT_GET_URL_FROM_PROPERTY = 0x00000001 -CRYPT_GET_URL_FROM_EXTENSION = 0x00000002 -CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE = 0x00000004 -CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE = 0x00000008 -URL_OID_GET_OBJECT_URL_FUNC = "UrlDllGetObjectUrl" -TIME_VALID_OID_GET_OBJECT_FUNC = "TimeValidDllGetObject" -TIME_VALID_OID_FLUSH_OBJECT_FUNC = "TimeValidDllFlushObject" - -TIME_VALID_OID_GET_CTL = 1 -TIME_VALID_OID_GET_CRL = 2 -TIME_VALID_OID_GET_CRL_FROM_CERT = 3 -TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT = 4 -TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL = 5 - -TIME_VALID_OID_FLUSH_CTL = 1 -TIME_VALID_OID_FLUSH_CRL = 2 -TIME_VALID_OID_FLUSH_CRL_FROM_CERT = 3 -TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT = 4 -TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL = 5 - -CRYPTPROTECT_PROMPT_ON_UNPROTECT = 0x1 -CRYPTPROTECT_PROMPT_ON_PROTECT = 0x2 -CRYPTPROTECT_PROMPT_RESERVED = 0x04 -CRYPTPROTECT_PROMPT_STRONG = 0x08 -CRYPTPROTECT_PROMPT_REQUIRE_STRONG = 0x10 -CRYPTPROTECT_UI_FORBIDDEN = 0x1 -CRYPTPROTECT_LOCAL_MACHINE = 0x4 -CRYPTPROTECT_CRED_SYNC = 0x8 -CRYPTPROTECT_AUDIT = 0x10 -CRYPTPROTECT_NO_RECOVERY = 0x20 -CRYPTPROTECT_VERIFY_PROTECTION = 0x40 -CRYPTPROTECT_CRED_REGENERATE = 0x80 -CRYPTPROTECT_FIRST_RESERVED_FLAGVAL = 0x0FFFFFFF -CRYPTPROTECT_LAST_RESERVED_FLAGVAL = (-1) -CRYPTPROTECTMEMORY_BLOCK_SIZE = 16 -CRYPTPROTECTMEMORY_SAME_PROCESS = 0x00 -CRYPTPROTECTMEMORY_CROSS_PROCESS = 0x01 -CRYPTPROTECTMEMORY_SAME_LOGON = 0x02 -CERT_CREATE_SELFSIGN_NO_SIGN = 1 -CERT_CREATE_SELFSIGN_NO_KEY_INFO = 2 -CRYPT_KEYID_MACHINE_FLAG = 0x00000020 -CRYPT_KEYID_ALLOC_FLAG = 0x00008000 -CRYPT_KEYID_DELETE_FLAG = 0x00000010 -CRYPT_KEYID_SET_NEW_FLAG = 0x00002000 -CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT = 5 -CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT = 10 -CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT = 100000 -CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT = 10 -CERT_CHAIN_CACHE_END_CERT = 0x00000001 -CERT_CHAIN_THREAD_STORE_SYNC = 0x00000002 -CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL = 0x00000004 -CERT_CHAIN_USE_LOCAL_MACHINE_STORE = 0x00000008 -CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE = 0x00000010 -CERT_CHAIN_ENABLE_SHARE_STORE = 0x00000020 -CERT_TRUST_NO_ERROR = 0x00000000 -CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 -CERT_TRUST_IS_NOT_TIME_NESTED = 0x00000002 -CERT_TRUST_IS_REVOKED = 0x00000004 -CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 -CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 -CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 -CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 -CERT_TRUST_IS_CYCLIC = 0x00000080 -CERT_TRUST_INVALID_EXTENSION = 0x00000100 -CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 -CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 -CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 -CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 -CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 -CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 -CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 -CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 -CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 -CERT_TRUST_IS_PARTIAL_CHAIN = 0x00010000 -CERT_TRUST_CTL_IS_NOT_TIME_VALID = 0x00020000 -CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 0x00040000 -CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 0x00080000 -CERT_TRUST_HAS_EXACT_MATCH_ISSUER = 0x00000001 -CERT_TRUST_HAS_KEY_MATCH_ISSUER = 0x00000002 -CERT_TRUST_HAS_NAME_MATCH_ISSUER = 0x00000004 -CERT_TRUST_IS_SELF_SIGNED = 0x00000008 -CERT_TRUST_HAS_PREFERRED_ISSUER = 0x00000100 -CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY = 0x00000200 -CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS = 0x00000400 -CERT_TRUST_IS_COMPLEX_CHAIN = 0x00010000 -USAGE_MATCH_TYPE_AND = 0x00000000 -USAGE_MATCH_TYPE_OR = 0x00000001 -CERT_CHAIN_REVOCATION_CHECK_END_CERT = 0x10000000 -CERT_CHAIN_REVOCATION_CHECK_CHAIN = 0x20000000 -CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x40000000 -CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY = (-2147483648) -CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT = 0x08000000 -CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING = 0x00000040 -CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS = 0x00000080 -CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE = 0x00000100 -CERT_CHAIN_TIMESTAMP_TIME = 0x00000200 -REVOCATION_OID_CRL_REVOCATION = 1 -CERT_CHAIN_FIND_BY_ISSUER = 1 -CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG = 0x0001 -CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG = 0x0002 -CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004 -CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG = 0x0008 -CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG = 0x4000 -CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG = 0x8000 -CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG = 0x00000001 -CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG = 0x00000002 -CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG = 0x00000004 -CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG = 0x00000008 -CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS = ( \ - CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG | \ - CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG | \ - CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG \ - ) -CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG = 0x00000010 -CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG = 0x00000020 -CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG = 0x00000040 -CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG = 0x00000080 -CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG = 0x00000100 -CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG = 0x00000200 -CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG = 0x00000400 -CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG = 0x00000800 -CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS = ( \ - CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG | \ - CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG | \ - CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG | \ - CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG \ - ) -CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG = 0x00008000 -CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG = 0x00004000 -CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC = \ - "CertDllVerifyCertificateChainPolicy" -AUTHTYPE_CLIENT = 1 -AUTHTYPE_SERVER = 2 -BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG = (-2147483648) -BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG = 0x40000000 -MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG = 0x00010000 -CRYPT_STRING_BASE64HEADER = 0x00000000 -CRYPT_STRING_BASE64 = 0x00000001 -CRYPT_STRING_BINARY = 0x00000002 -CRYPT_STRING_BASE64REQUESTHEADER = 0x00000003 -CRYPT_STRING_HEX = 0x00000004 -CRYPT_STRING_HEXASCII = 0x00000005 -CRYPT_STRING_BASE64_ANY = 0x00000006 -CRYPT_STRING_ANY = 0x00000007 -CRYPT_STRING_HEX_ANY = 0x00000008 -CRYPT_STRING_BASE64X509CRLHEADER = 0x00000009 -CRYPT_STRING_HEXADDR = 0x0000000a -CRYPT_STRING_HEXASCIIADDR = 0x0000000b -CRYPT_STRING_NOCR = (-2147483648) -CRYPT_USER_KEYSET = 0x00001000 -PKCS12_IMPORT_RESERVED_MASK = (-65536) -REPORT_NO_PRIVATE_KEY = 0x0001 -REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY = 0x0002 -EXPORT_PRIVATE_KEYS = 0x0004 -PKCS12_EXPORT_RESERVED_MASK = (-65536) - -# Certificate store provider types used with CertOpenStore -CERT_STORE_PROV_MSG = 1 -CERT_STORE_PROV_MEMORY = 2 -CERT_STORE_PROV_FILE = 3 -CERT_STORE_PROV_REG = 4 -CERT_STORE_PROV_PKCS7 = 5 -CERT_STORE_PROV_SERIALIZED = 6 -CERT_STORE_PROV_FILENAME = 8 -CERT_STORE_PROV_SYSTEM = 10 -CERT_STORE_PROV_COLLECTION = 11 -CERT_STORE_PROV_SYSTEM_REGISTRY = 13 -CERT_STORE_PROV_PHYSICAL = 14 -CERT_STORE_PROV_SMART_CARD = 15 -CERT_STORE_PROV_LDAP = 16 - -URL_OID_CERTIFICATE_ISSUER = 1 -URL_OID_CERTIFICATE_CRL_DIST_POINT = 2 -URL_OID_CTL_ISSUER = 3 -URL_OID_CTL_NEXT_UPDATE = 4 -URL_OID_CRL_ISSUER = 5 -URL_OID_CERTIFICATE_FRESHEST_CRL = 6 -URL_OID_CRL_FRESHEST_CRL = 7 -URL_OID_CROSS_CERT_DIST_POINT = 8 -URL_OID_CERTIFICATE_OCSP = 9 -URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT = 10 -URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP = 11 -URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS = 12 -URL_OID_CERTIFICATE_ONLY_OCSP = 13 diff --git a/typings/win32helper/win32inetcon.pyi b/typings/win32helper/win32inetcon.pyi deleted file mode 100644 index 3338fe25..00000000 --- a/typings/win32helper/win32inetcon.pyi +++ /dev/null @@ -1,1103 +0,0 @@ -# Generated by h2py from \mssdk\include\WinInet.h - -INTERNET_INVALID_PORT_NUMBER = 0 -INTERNET_DEFAULT_FTP_PORT = 21 -INTERNET_DEFAULT_GOPHER_PORT = 70 -INTERNET_DEFAULT_HTTP_PORT = 80 -INTERNET_DEFAULT_HTTPS_PORT = 443 -INTERNET_DEFAULT_SOCKS_PORT = 1080 -INTERNET_MAX_HOST_NAME_LENGTH = 256 -INTERNET_MAX_USER_NAME_LENGTH = 128 -INTERNET_MAX_PASSWORD_LENGTH = 128 -INTERNET_MAX_PORT_NUMBER_LENGTH = 5 -INTERNET_MAX_PORT_NUMBER_VALUE = 65535 -INTERNET_MAX_PATH_LENGTH = 2048 -INTERNET_MAX_SCHEME_LENGTH = 32 -INTERNET_KEEP_ALIVE_ENABLED = 1 -INTERNET_KEEP_ALIVE_DISABLED = 0 -INTERNET_REQFLAG_FROM_CACHE = 0x00000001 -INTERNET_REQFLAG_ASYNC = 0x00000002 -INTERNET_REQFLAG_VIA_PROXY = 0x00000004 -INTERNET_REQFLAG_NO_HEADERS = 0x00000008 -INTERNET_REQFLAG_PASSIVE = 0x00000010 -INTERNET_REQFLAG_CACHE_WRITE_DISABLED = 0x00000040 -INTERNET_REQFLAG_NET_TIMEOUT = 0x00000080 -INTERNET_FLAG_RELOAD = (-2147483648) -INTERNET_FLAG_RAW_DATA = 0x40000000 -INTERNET_FLAG_EXISTING_CONNECT = 0x20000000 -INTERNET_FLAG_ASYNC = 0x10000000 -INTERNET_FLAG_PASSIVE = 0x08000000 -INTERNET_FLAG_NO_CACHE_WRITE = 0x04000000 -INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE -INTERNET_FLAG_MAKE_PERSISTENT = 0x02000000 -INTERNET_FLAG_FROM_CACHE = 0x01000000 -INTERNET_FLAG_OFFLINE = INTERNET_FLAG_FROM_CACHE -INTERNET_FLAG_SECURE = 0x00800000 -INTERNET_FLAG_KEEP_CONNECTION = 0x00400000 -INTERNET_FLAG_NO_AUTO_REDIRECT = 0x00200000 -INTERNET_FLAG_READ_PREFETCH = 0x00100000 -INTERNET_FLAG_NO_COOKIES = 0x00080000 -INTERNET_FLAG_NO_AUTH = 0x00040000 -INTERNET_FLAG_RESTRICTED_ZONE = 0x00020000 -INTERNET_FLAG_CACHE_IF_NET_FAIL = 0x00010000 -INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = 0x00008000 -INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = 0x00004000 -INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 -INTERNET_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000 -INTERNET_FLAG_RESYNCHRONIZE = 0x00000800 -INTERNET_FLAG_HYPERLINK = 0x00000400 -INTERNET_FLAG_NO_UI = 0x00000200 -INTERNET_FLAG_PRAGMA_NOCACHE = 0x00000100 -INTERNET_FLAG_CACHE_ASYNC = 0x00000080 -INTERNET_FLAG_FORMS_SUBMIT = 0x00000040 -INTERNET_FLAG_FWD_BACK = 0x00000020 -INTERNET_FLAG_NEED_FILE = 0x00000010 -INTERNET_FLAG_MUST_CACHE_REQUEST = INTERNET_FLAG_NEED_FILE -SECURITY_INTERNET_MASK = (INTERNET_FLAG_IGNORE_CERT_CN_INVALID | \ - INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | \ - INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | \ - INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP ) -INTERNET_ERROR_MASK_INSERT_CDROM = 0x1 -INTERNET_ERROR_MASK_COMBINED_SEC_CERT = 0x2 -INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG = 0X4 -INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = 0x8 -WININET_API_FLAG_ASYNC = 0x00000001 -WININET_API_FLAG_SYNC = 0x00000004 -WININET_API_FLAG_USE_CONTEXT = 0x00000008 -INTERNET_NO_CALLBACK = 0 -IDSI_FLAG_KEEP_ALIVE = 0x00000001 -IDSI_FLAG_SECURE = 0x00000002 -IDSI_FLAG_PROXY = 0x00000004 -IDSI_FLAG_TUNNEL = 0x00000008 -INTERNET_PER_CONN_FLAGS = 1 -INTERNET_PER_CONN_PROXY_SERVER = 2 -INTERNET_PER_CONN_PROXY_BYPASS = 3 -INTERNET_PER_CONN_AUTOCONFIG_URL = 4 -INTERNET_PER_CONN_AUTODISCOVERY_FLAGS = 5 -INTERNET_PER_CONN_AUTOCONFIG_SECONDARY_URL = 6 -INTERNET_PER_CONN_AUTOCONFIG_RELOAD_DELAY_MINS = 7 -INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_TIME = 8 -INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_URL = 9 -PROXY_TYPE_DIRECT = 0x00000001 -PROXY_TYPE_PROXY = 0x00000002 -PROXY_TYPE_AUTO_PROXY_URL = 0x00000004 -PROXY_TYPE_AUTO_DETECT = 0x00000008 -AUTO_PROXY_FLAG_USER_SET = 0x00000001 -AUTO_PROXY_FLAG_ALWAYS_DETECT = 0x00000002 -AUTO_PROXY_FLAG_DETECTION_RUN = 0x00000004 -AUTO_PROXY_FLAG_MIGRATED = 0x00000008 -AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT = 0x00000010 -AUTO_PROXY_FLAG_CACHE_INIT_RUN = 0x00000020 -AUTO_PROXY_FLAG_DETECTION_SUSPECT = 0x00000040 -ISO_FORCE_DISCONNECTED = 0x00000001 -INTERNET_RFC1123_FORMAT = 0 -INTERNET_RFC1123_BUFSIZE = 30 -ICU_ESCAPE = (-2147483648) -ICU_USERNAME = 0x40000000 -ICU_NO_ENCODE = 0x20000000 -ICU_DECODE = 0x10000000 -ICU_NO_META = 0x08000000 -ICU_ENCODE_SPACES_ONLY = 0x04000000 -ICU_BROWSER_MODE = 0x02000000 -ICU_ENCODE_PERCENT = 0x00001000 -INTERNET_OPEN_TYPE_PRECONFIG = 0 -INTERNET_OPEN_TYPE_DIRECT = 1 -INTERNET_OPEN_TYPE_PROXY = 3 -INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4 -PRE_CONFIG_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PRECONFIG -LOCAL_INTERNET_ACCESS = INTERNET_OPEN_TYPE_DIRECT -CERN_PROXY_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PROXY -INTERNET_SERVICE_FTP = 1 -INTERNET_SERVICE_GOPHER = 2 -INTERNET_SERVICE_HTTP = 3 -IRF_ASYNC = WININET_API_FLAG_ASYNC -IRF_SYNC = WININET_API_FLAG_SYNC -IRF_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT -IRF_NO_WAIT = 0x00000008 -ISO_GLOBAL = 0x00000001 -ISO_REGISTRY = 0x00000002 -ISO_VALID_FLAGS = (ISO_GLOBAL | ISO_REGISTRY) -INTERNET_OPTION_CALLBACK = 1 -INTERNET_OPTION_CONNECT_TIMEOUT = 2 -INTERNET_OPTION_CONNECT_RETRIES = 3 -INTERNET_OPTION_CONNECT_BACKOFF = 4 -INTERNET_OPTION_SEND_TIMEOUT = 5 -INTERNET_OPTION_CONTROL_SEND_TIMEOUT = INTERNET_OPTION_SEND_TIMEOUT -INTERNET_OPTION_RECEIVE_TIMEOUT = 6 -INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT = INTERNET_OPTION_RECEIVE_TIMEOUT -INTERNET_OPTION_DATA_SEND_TIMEOUT = 7 -INTERNET_OPTION_DATA_RECEIVE_TIMEOUT = 8 -INTERNET_OPTION_HANDLE_TYPE = 9 -INTERNET_OPTION_LISTEN_TIMEOUT = 11 -INTERNET_OPTION_READ_BUFFER_SIZE = 12 -INTERNET_OPTION_WRITE_BUFFER_SIZE = 13 -INTERNET_OPTION_ASYNC_ID = 15 -INTERNET_OPTION_ASYNC_PRIORITY = 16 -INTERNET_OPTION_PARENT_HANDLE = 21 -INTERNET_OPTION_KEEP_CONNECTION = 22 -INTERNET_OPTION_REQUEST_FLAGS = 23 -INTERNET_OPTION_EXTENDED_ERROR = 24 -INTERNET_OPTION_OFFLINE_MODE = 26 -INTERNET_OPTION_CACHE_STREAM_HANDLE = 27 -INTERNET_OPTION_USERNAME = 28 -INTERNET_OPTION_PASSWORD = 29 -INTERNET_OPTION_ASYNC = 30 -INTERNET_OPTION_SECURITY_FLAGS = 31 -INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT = 32 -INTERNET_OPTION_DATAFILE_NAME = 33 -INTERNET_OPTION_URL = 34 -INTERNET_OPTION_SECURITY_CERTIFICATE = 35 -INTERNET_OPTION_SECURITY_KEY_BITNESS = 36 -INTERNET_OPTION_REFRESH = 37 -INTERNET_OPTION_PROXY = 38 -INTERNET_OPTION_SETTINGS_CHANGED = 39 -INTERNET_OPTION_VERSION = 40 -INTERNET_OPTION_USER_AGENT = 41 -INTERNET_OPTION_END_BROWSER_SESSION = 42 -INTERNET_OPTION_PROXY_USERNAME = 43 -INTERNET_OPTION_PROXY_PASSWORD = 44 -INTERNET_OPTION_CONTEXT_VALUE = 45 -INTERNET_OPTION_CONNECT_LIMIT = 46 -INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT = 47 -INTERNET_OPTION_POLICY = 48 -INTERNET_OPTION_DISCONNECTED_TIMEOUT = 49 -INTERNET_OPTION_CONNECTED_STATE = 50 -INTERNET_OPTION_IDLE_STATE = 51 -INTERNET_OPTION_OFFLINE_SEMANTICS = 52 -INTERNET_OPTION_SECONDARY_CACHE_KEY = 53 -INTERNET_OPTION_CALLBACK_FILTER = 54 -INTERNET_OPTION_CONNECT_TIME = 55 -INTERNET_OPTION_SEND_THROUGHPUT = 56 -INTERNET_OPTION_RECEIVE_THROUGHPUT = 57 -INTERNET_OPTION_REQUEST_PRIORITY = 58 -INTERNET_OPTION_HTTP_VERSION = 59 -INTERNET_OPTION_RESET_URLCACHE_SESSION = 60 -INTERNET_OPTION_ERROR_MASK = 62 -INTERNET_OPTION_FROM_CACHE_TIMEOUT = 63 -INTERNET_OPTION_BYPASS_EDITED_ENTRY = 64 -INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO = 67 -INTERNET_OPTION_CODEPAGE = 68 -INTERNET_OPTION_CACHE_TIMESTAMPS = 69 -INTERNET_OPTION_DISABLE_AUTODIAL = 70 -INTERNET_OPTION_MAX_CONNS_PER_SERVER = 73 -INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER = 74 -INTERNET_OPTION_PER_CONNECTION_OPTION = 75 -INTERNET_OPTION_DIGEST_AUTH_UNLOAD = 76 -INTERNET_OPTION_IGNORE_OFFLINE = 77 -INTERNET_OPTION_IDENTITY = 78 -INTERNET_OPTION_REMOVE_IDENTITY = 79 -INTERNET_OPTION_ALTER_IDENTITY = 80 -INTERNET_OPTION_SUPPRESS_BEHAVIOR = 81 -INTERNET_OPTION_AUTODIAL_MODE = 82 -INTERNET_OPTION_AUTODIAL_CONNECTION = 83 -INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84 -INTERNET_OPTION_AUTH_FLAGS = 85 -INTERNET_OPTION_COOKIES_3RD_PARTY = 86 -INTERNET_OPTION_DISABLE_PASSPORT_AUTH = 87 -INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY = 88 -INTERNET_OPTION_EXEMPT_CONNECTION_LIMIT = 89 -INTERNET_OPTION_ENABLE_PASSPORT_AUTH = 90 -INTERNET_OPTION_HIBERNATE_INACTIVE_WORKER_THREADS = 91 -INTERNET_OPTION_ACTIVATE_WORKER_THREADS = 92 -INTERNET_OPTION_RESTORE_WORKER_THREAD_DEFAULTS = 93 -INTERNET_OPTION_SOCKET_SEND_BUFFER_LENGTH = 94 -INTERNET_OPTION_PROXY_SETTINGS_CHANGED = 95 -INTERNET_FIRST_OPTION = INTERNET_OPTION_CALLBACK -INTERNET_LAST_OPTION = INTERNET_OPTION_PROXY_SETTINGS_CHANGED -INTERNET_PRIORITY_FOREGROUND = 1000 -INTERNET_HANDLE_TYPE_INTERNET = 1 -INTERNET_HANDLE_TYPE_CONNECT_FTP = 2 -INTERNET_HANDLE_TYPE_CONNECT_GOPHER = 3 -INTERNET_HANDLE_TYPE_CONNECT_HTTP = 4 -INTERNET_HANDLE_TYPE_FTP_FIND = 5 -INTERNET_HANDLE_TYPE_FTP_FIND_HTML = 6 -INTERNET_HANDLE_TYPE_FTP_FILE = 7 -INTERNET_HANDLE_TYPE_FTP_FILE_HTML = 8 -INTERNET_HANDLE_TYPE_GOPHER_FIND = 9 -INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML = 10 -INTERNET_HANDLE_TYPE_GOPHER_FILE = 11 -INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML = 12 -INTERNET_HANDLE_TYPE_HTTP_REQUEST = 13 -INTERNET_HANDLE_TYPE_FILE_REQUEST = 14 -AUTH_FLAG_DISABLE_NEGOTIATE = 0x00000001 -AUTH_FLAG_ENABLE_NEGOTIATE = 0x00000002 -SECURITY_FLAG_SECURE = 0x00000001 -SECURITY_FLAG_STRENGTH_WEAK = 0x10000000 -SECURITY_FLAG_STRENGTH_MEDIUM = 0x40000000 -SECURITY_FLAG_STRENGTH_STRONG = 0x20000000 -SECURITY_FLAG_UNKNOWNBIT = (-2147483648) -SECURITY_FLAG_FORTEZZA = 0x08000000 -SECURITY_FLAG_NORMALBITNESS = SECURITY_FLAG_STRENGTH_WEAK -SECURITY_FLAG_SSL = 0x00000002 -SECURITY_FLAG_SSL3 = 0x00000004 -SECURITY_FLAG_PCT = 0x00000008 -SECURITY_FLAG_PCT4 = 0x00000010 -SECURITY_FLAG_IETFSSL4 = 0x00000020 -SECURITY_FLAG_40BIT = SECURITY_FLAG_STRENGTH_WEAK -SECURITY_FLAG_128BIT = SECURITY_FLAG_STRENGTH_STRONG -SECURITY_FLAG_56BIT = SECURITY_FLAG_STRENGTH_MEDIUM -SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080 -SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100 -SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200 -SECURITY_FLAG_IGNORE_CERT_CN_INVALID = INTERNET_FLAG_IGNORE_CERT_CN_INVALID -SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID -SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS -SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP -SECURITY_SET_MASK = (SECURITY_FLAG_IGNORE_REVOCATION |\ - SECURITY_FLAG_IGNORE_UNKNOWN_CA |\ - SECURITY_FLAG_IGNORE_CERT_CN_INVALID |\ - SECURITY_FLAG_IGNORE_CERT_DATE_INVALID |\ - SECURITY_FLAG_IGNORE_WRONG_USAGE) -AUTODIAL_MODE_NEVER = 1 -AUTODIAL_MODE_ALWAYS = 2 -AUTODIAL_MODE_NO_NETWORK_PRESENT = 4 -INTERNET_STATUS_RESOLVING_NAME = 10 -INTERNET_STATUS_NAME_RESOLVED = 11 -INTERNET_STATUS_CONNECTING_TO_SERVER = 20 -INTERNET_STATUS_CONNECTED_TO_SERVER = 21 -INTERNET_STATUS_SENDING_REQUEST = 30 -INTERNET_STATUS_REQUEST_SENT = 31 -INTERNET_STATUS_RECEIVING_RESPONSE = 40 -INTERNET_STATUS_RESPONSE_RECEIVED = 41 -INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42 -INTERNET_STATUS_PREFETCH = 43 -INTERNET_STATUS_CLOSING_CONNECTION = 50 -INTERNET_STATUS_CONNECTION_CLOSED = 51 -INTERNET_STATUS_HANDLE_CREATED = 60 -INTERNET_STATUS_HANDLE_CLOSING = 70 -INTERNET_STATUS_DETECTING_PROXY = 80 -INTERNET_STATUS_REQUEST_COMPLETE = 100 -INTERNET_STATUS_REDIRECT = 110 -INTERNET_STATUS_INTERMEDIATE_RESPONSE = 120 -INTERNET_STATUS_USER_INPUT_REQUIRED = 140 -INTERNET_STATUS_STATE_CHANGE = 200 -INTERNET_STATUS_COOKIE_SENT = 320 -INTERNET_STATUS_COOKIE_RECEIVED = 321 -INTERNET_STATUS_PRIVACY_IMPACTED = 324 -INTERNET_STATUS_P3P_HEADER = 325 -INTERNET_STATUS_P3P_POLICYREF = 326 -INTERNET_STATUS_COOKIE_HISTORY = 327 -INTERNET_STATE_CONNECTED = 0x00000001 -INTERNET_STATE_DISCONNECTED = 0x00000002 -INTERNET_STATE_DISCONNECTED_BY_USER = 0x00000010 -INTERNET_STATE_IDLE = 0x00000100 -INTERNET_STATE_BUSY = 0x00000200 -FTP_TRANSFER_TYPE_UNKNOWN = 0x00000000 -FTP_TRANSFER_TYPE_ASCII = 0x00000001 -FTP_TRANSFER_TYPE_BINARY = 0x00000002 -FTP_TRANSFER_TYPE_MASK = (FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY) -MAX_GOPHER_DISPLAY_TEXT = 128 -MAX_GOPHER_SELECTOR_TEXT = 256 -MAX_GOPHER_HOST_NAME = INTERNET_MAX_HOST_NAME_LENGTH -MAX_GOPHER_LOCATOR_LENGTH = (1 \ - + MAX_GOPHER_DISPLAY_TEXT \ - + 1 \ - + MAX_GOPHER_SELECTOR_TEXT \ - + 1 \ - + MAX_GOPHER_HOST_NAME \ - + 1 \ - + INTERNET_MAX_PORT_NUMBER_LENGTH \ - + 1 \ - + 1 \ - + 2 \ - ) -GOPHER_TYPE_TEXT_FILE = 0x00000001 -GOPHER_TYPE_DIRECTORY = 0x00000002 -GOPHER_TYPE_CSO = 0x00000004 -GOPHER_TYPE_ERROR = 0x00000008 -GOPHER_TYPE_MAC_BINHEX = 0x00000010 -GOPHER_TYPE_DOS_ARCHIVE = 0x00000020 -GOPHER_TYPE_UNIX_UUENCODED = 0x00000040 -GOPHER_TYPE_INDEX_SERVER = 0x00000080 -GOPHER_TYPE_TELNET = 0x00000100 -GOPHER_TYPE_BINARY = 0x00000200 -GOPHER_TYPE_REDUNDANT = 0x00000400 -GOPHER_TYPE_TN3270 = 0x00000800 -GOPHER_TYPE_GIF = 0x00001000 -GOPHER_TYPE_IMAGE = 0x00002000 -GOPHER_TYPE_BITMAP = 0x00004000 -GOPHER_TYPE_MOVIE = 0x00008000 -GOPHER_TYPE_SOUND = 0x00010000 -GOPHER_TYPE_HTML = 0x00020000 -GOPHER_TYPE_PDF = 0x00040000 -GOPHER_TYPE_CALENDAR = 0x00080000 -GOPHER_TYPE_INLINE = 0x00100000 -GOPHER_TYPE_UNKNOWN = 0x20000000 -GOPHER_TYPE_ASK = 0x40000000 -GOPHER_TYPE_GOPHER_PLUS = (-2147483648) -GOPHER_TYPE_FILE_MASK = (GOPHER_TYPE_TEXT_FILE \ - | GOPHER_TYPE_MAC_BINHEX \ - | GOPHER_TYPE_DOS_ARCHIVE \ - | GOPHER_TYPE_UNIX_UUENCODED \ - | GOPHER_TYPE_BINARY \ - | GOPHER_TYPE_GIF \ - | GOPHER_TYPE_IMAGE \ - | GOPHER_TYPE_BITMAP \ - | GOPHER_TYPE_MOVIE \ - | GOPHER_TYPE_SOUND \ - | GOPHER_TYPE_HTML \ - | GOPHER_TYPE_PDF \ - | GOPHER_TYPE_CALENDAR \ - | GOPHER_TYPE_INLINE \ - ) -MAX_GOPHER_CATEGORY_NAME = 128 -MAX_GOPHER_ATTRIBUTE_NAME = 128 -MIN_GOPHER_ATTRIBUTE_LENGTH = 256 -GOPHER_ATTRIBUTE_ID_BASE = (-1412641792) -GOPHER_CATEGORY_ID_ALL = (GOPHER_ATTRIBUTE_ID_BASE + 1) -GOPHER_CATEGORY_ID_INFO = (GOPHER_ATTRIBUTE_ID_BASE + 2) -GOPHER_CATEGORY_ID_ADMIN = (GOPHER_ATTRIBUTE_ID_BASE + 3) -GOPHER_CATEGORY_ID_VIEWS = (GOPHER_ATTRIBUTE_ID_BASE + 4) -GOPHER_CATEGORY_ID_ABSTRACT = (GOPHER_ATTRIBUTE_ID_BASE + 5) -GOPHER_CATEGORY_ID_VERONICA = (GOPHER_ATTRIBUTE_ID_BASE + 6) -GOPHER_CATEGORY_ID_ASK = (GOPHER_ATTRIBUTE_ID_BASE + 7) -GOPHER_CATEGORY_ID_UNKNOWN = (GOPHER_ATTRIBUTE_ID_BASE + 8) -GOPHER_ATTRIBUTE_ID_ALL = (GOPHER_ATTRIBUTE_ID_BASE + 9) -GOPHER_ATTRIBUTE_ID_ADMIN = (GOPHER_ATTRIBUTE_ID_BASE + 10) -GOPHER_ATTRIBUTE_ID_MOD_DATE = (GOPHER_ATTRIBUTE_ID_BASE + 11) -GOPHER_ATTRIBUTE_ID_TTL = (GOPHER_ATTRIBUTE_ID_BASE + 12) -GOPHER_ATTRIBUTE_ID_SCORE = (GOPHER_ATTRIBUTE_ID_BASE + 13) -GOPHER_ATTRIBUTE_ID_RANGE = (GOPHER_ATTRIBUTE_ID_BASE + 14) -GOPHER_ATTRIBUTE_ID_SITE = (GOPHER_ATTRIBUTE_ID_BASE + 15) -GOPHER_ATTRIBUTE_ID_ORG = (GOPHER_ATTRIBUTE_ID_BASE + 16) -GOPHER_ATTRIBUTE_ID_LOCATION = (GOPHER_ATTRIBUTE_ID_BASE + 17) -GOPHER_ATTRIBUTE_ID_GEOG = (GOPHER_ATTRIBUTE_ID_BASE + 18) -GOPHER_ATTRIBUTE_ID_TIMEZONE = (GOPHER_ATTRIBUTE_ID_BASE + 19) -GOPHER_ATTRIBUTE_ID_PROVIDER = (GOPHER_ATTRIBUTE_ID_BASE + 20) -GOPHER_ATTRIBUTE_ID_VERSION = (GOPHER_ATTRIBUTE_ID_BASE + 21) -GOPHER_ATTRIBUTE_ID_ABSTRACT = (GOPHER_ATTRIBUTE_ID_BASE + 22) -GOPHER_ATTRIBUTE_ID_VIEW = (GOPHER_ATTRIBUTE_ID_BASE + 23) -GOPHER_ATTRIBUTE_ID_TREEWALK = (GOPHER_ATTRIBUTE_ID_BASE + 24) -GOPHER_ATTRIBUTE_ID_UNKNOWN = (GOPHER_ATTRIBUTE_ID_BASE + 25) -HTTP_MAJOR_VERSION = 1 -HTTP_MINOR_VERSION = 0 -HTTP_VERSIONA = "HTTP/1.0" -HTTP_VERSION = HTTP_VERSIONA -HTTP_QUERY_MIME_VERSION = 0 -HTTP_QUERY_CONTENT_TYPE = 1 -HTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2 -HTTP_QUERY_CONTENT_ID = 3 -HTTP_QUERY_CONTENT_DESCRIPTION = 4 -HTTP_QUERY_CONTENT_LENGTH = 5 -HTTP_QUERY_CONTENT_LANGUAGE = 6 -HTTP_QUERY_ALLOW = 7 -HTTP_QUERY_PUBLIC = 8 -HTTP_QUERY_DATE = 9 -HTTP_QUERY_EXPIRES = 10 -HTTP_QUERY_LAST_MODIFIED = 11 -HTTP_QUERY_MESSAGE_ID = 12 -HTTP_QUERY_URI = 13 -HTTP_QUERY_DERIVED_FROM = 14 -HTTP_QUERY_COST = 15 -HTTP_QUERY_LINK = 16 -HTTP_QUERY_PRAGMA = 17 -HTTP_QUERY_VERSION = 18 -HTTP_QUERY_STATUS_CODE = 19 -HTTP_QUERY_STATUS_TEXT = 20 -HTTP_QUERY_RAW_HEADERS = 21 -HTTP_QUERY_RAW_HEADERS_CRLF = 22 -HTTP_QUERY_CONNECTION = 23 -HTTP_QUERY_ACCEPT = 24 -HTTP_QUERY_ACCEPT_CHARSET = 25 -HTTP_QUERY_ACCEPT_ENCODING = 26 -HTTP_QUERY_ACCEPT_LANGUAGE = 27 -HTTP_QUERY_AUTHORIZATION = 28 -HTTP_QUERY_CONTENT_ENCODING = 29 -HTTP_QUERY_FORWARDED = 30 -HTTP_QUERY_FROM = 31 -HTTP_QUERY_IF_MODIFIED_SINCE = 32 -HTTP_QUERY_LOCATION = 33 -HTTP_QUERY_ORIG_URI = 34 -HTTP_QUERY_REFERER = 35 -HTTP_QUERY_RETRY_AFTER = 36 -HTTP_QUERY_SERVER = 37 -HTTP_QUERY_TITLE = 38 -HTTP_QUERY_USER_AGENT = 39 -HTTP_QUERY_WWW_AUTHENTICATE = 40 -HTTP_QUERY_PROXY_AUTHENTICATE = 41 -HTTP_QUERY_ACCEPT_RANGES = 42 -HTTP_QUERY_SET_COOKIE = 43 -HTTP_QUERY_COOKIE = 44 -HTTP_QUERY_REQUEST_METHOD = 45 -HTTP_QUERY_REFRESH = 46 -HTTP_QUERY_CONTENT_DISPOSITION = 47 -HTTP_QUERY_AGE = 48 -HTTP_QUERY_CACHE_CONTROL = 49 -HTTP_QUERY_CONTENT_BASE = 50 -HTTP_QUERY_CONTENT_LOCATION = 51 -HTTP_QUERY_CONTENT_MD5 = 52 -HTTP_QUERY_CONTENT_RANGE = 53 -HTTP_QUERY_ETAG = 54 -HTTP_QUERY_HOST = 55 -HTTP_QUERY_IF_MATCH = 56 -HTTP_QUERY_IF_NONE_MATCH = 57 -HTTP_QUERY_IF_RANGE = 58 -HTTP_QUERY_IF_UNMODIFIED_SINCE = 59 -HTTP_QUERY_MAX_FORWARDS = 60 -HTTP_QUERY_PROXY_AUTHORIZATION = 61 -HTTP_QUERY_RANGE = 62 -HTTP_QUERY_TRANSFER_ENCODING = 63 -HTTP_QUERY_UPGRADE = 64 -HTTP_QUERY_VARY = 65 -HTTP_QUERY_VIA = 66 -HTTP_QUERY_WARNING = 67 -HTTP_QUERY_EXPECT = 68 -HTTP_QUERY_PROXY_CONNECTION = 69 -HTTP_QUERY_UNLESS_MODIFIED_SINCE = 70 -HTTP_QUERY_ECHO_REQUEST = 71 -HTTP_QUERY_ECHO_REPLY = 72 -HTTP_QUERY_ECHO_HEADERS = 73 -HTTP_QUERY_ECHO_HEADERS_CRLF = 74 -HTTP_QUERY_PROXY_SUPPORT = 75 -HTTP_QUERY_AUTHENTICATION_INFO = 76 -HTTP_QUERY_PASSPORT_URLS = 77 -HTTP_QUERY_PASSPORT_CONFIG = 78 -HTTP_QUERY_MAX = 78 -HTTP_QUERY_CUSTOM = 65535 -HTTP_QUERY_FLAG_REQUEST_HEADERS = (-2147483648) -HTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000 -HTTP_QUERY_FLAG_NUMBER = 0x20000000 -HTTP_QUERY_FLAG_COALESCE = 0x10000000 -HTTP_QUERY_MODIFIER_FLAGS_MASK = (HTTP_QUERY_FLAG_REQUEST_HEADERS \ - | HTTP_QUERY_FLAG_SYSTEMTIME \ - | HTTP_QUERY_FLAG_NUMBER \ - | HTTP_QUERY_FLAG_COALESCE \ - ) -HTTP_QUERY_HEADER_MASK = (~HTTP_QUERY_MODIFIER_FLAGS_MASK) -HTTP_STATUS_CONTINUE = 100 -HTTP_STATUS_SWITCH_PROTOCOLS = 101 -HTTP_STATUS_OK = 200 -HTTP_STATUS_CREATED = 201 -HTTP_STATUS_ACCEPTED = 202 -HTTP_STATUS_PARTIAL = 203 -HTTP_STATUS_NO_CONTENT = 204 -HTTP_STATUS_RESET_CONTENT = 205 -HTTP_STATUS_PARTIAL_CONTENT = 206 -HTTP_STATUS_AMBIGUOUS = 300 -HTTP_STATUS_MOVED = 301 -HTTP_STATUS_REDIRECT = 302 -HTTP_STATUS_REDIRECT_METHOD = 303 -HTTP_STATUS_NOT_MODIFIED = 304 -HTTP_STATUS_USE_PROXY = 305 -HTTP_STATUS_REDIRECT_KEEP_VERB = 307 -HTTP_STATUS_BAD_REQUEST = 400 -HTTP_STATUS_DENIED = 401 -HTTP_STATUS_PAYMENT_REQ = 402 -HTTP_STATUS_FORBIDDEN = 403 -HTTP_STATUS_NOT_FOUND = 404 -HTTP_STATUS_BAD_METHOD = 405 -HTTP_STATUS_NONE_ACCEPTABLE = 406 -HTTP_STATUS_PROXY_AUTH_REQ = 407 -HTTP_STATUS_REQUEST_TIMEOUT = 408 -HTTP_STATUS_CONFLICT = 409 -HTTP_STATUS_GONE = 410 -HTTP_STATUS_LENGTH_REQUIRED = 411 -HTTP_STATUS_PRECOND_FAILED = 412 -HTTP_STATUS_REQUEST_TOO_LARGE = 413 -HTTP_STATUS_URI_TOO_LONG = 414 -HTTP_STATUS_UNSUPPORTED_MEDIA = 415 -HTTP_STATUS_RETRY_WITH = 449 -HTTP_STATUS_SERVER_ERROR = 500 -HTTP_STATUS_NOT_SUPPORTED = 501 -HTTP_STATUS_BAD_GATEWAY = 502 -HTTP_STATUS_SERVICE_UNAVAIL = 503 -HTTP_STATUS_GATEWAY_TIMEOUT = 504 -HTTP_STATUS_VERSION_NOT_SUP = 505 -HTTP_STATUS_FIRST = HTTP_STATUS_CONTINUE -HTTP_STATUS_LAST = HTTP_STATUS_VERSION_NOT_SUP -HTTP_ADDREQ_INDEX_MASK = 0x0000FFFF -HTTP_ADDREQ_FLAGS_MASK = (-65536) -HTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000 -HTTP_ADDREQ_FLAG_ADD = 0x20000000 -HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000 -HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000 -HTTP_ADDREQ_FLAG_COALESCE = HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA -HTTP_ADDREQ_FLAG_REPLACE = (-2147483648) -HSR_ASYNC = WININET_API_FLAG_ASYNC -HSR_SYNC = WININET_API_FLAG_SYNC -HSR_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT -HSR_INITIATE = 0x00000008 -HSR_DOWNLOAD = 0x00000010 -HSR_CHUNKED = 0x00000020 -INTERNET_COOKIE_IS_SECURE = 0x01 -INTERNET_COOKIE_IS_SESSION = 0x02 -INTERNET_COOKIE_THIRD_PARTY = 0x10 -INTERNET_COOKIE_PROMPT_REQUIRED = 0x20 -INTERNET_COOKIE_EVALUATE_P3P = 0x40 -INTERNET_COOKIE_APPLY_P3P = 0x80 -INTERNET_COOKIE_P3P_ENABLED = 0x100 -INTERNET_COOKIE_IS_RESTRICTED = 0x200 -INTERNET_COOKIE_IE6 = 0x400 -INTERNET_COOKIE_IS_LEGACY = 0x800 -FLAG_ICC_FORCE_CONNECTION = 0x00000001 -FLAGS_ERROR_UI_FILTER_FOR_ERRORS = 0x01 -FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = 0x02 -FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = 0x04 -FLAGS_ERROR_UI_FLAGS_NO_UI = 0x08 -FLAGS_ERROR_UI_SERIALIZE_DIALOGS = 0x10 -INTERNET_ERROR_BASE = 12000 -ERROR_INTERNET_OUT_OF_HANDLES = (INTERNET_ERROR_BASE + 1) -ERROR_INTERNET_TIMEOUT = (INTERNET_ERROR_BASE + 2) -ERROR_INTERNET_EXTENDED_ERROR = (INTERNET_ERROR_BASE + 3) -ERROR_INTERNET_INTERNAL_ERROR = (INTERNET_ERROR_BASE + 4) -ERROR_INTERNET_INVALID_URL = (INTERNET_ERROR_BASE + 5) -ERROR_INTERNET_UNRECOGNIZED_SCHEME = (INTERNET_ERROR_BASE + 6) -ERROR_INTERNET_NAME_NOT_RESOLVED = (INTERNET_ERROR_BASE + 7) -ERROR_INTERNET_PROTOCOL_NOT_FOUND = (INTERNET_ERROR_BASE + 8) -ERROR_INTERNET_INVALID_OPTION = (INTERNET_ERROR_BASE + 9) -ERROR_INTERNET_BAD_OPTION_LENGTH = (INTERNET_ERROR_BASE + 10) -ERROR_INTERNET_OPTION_NOT_SETTABLE = (INTERNET_ERROR_BASE + 11) -ERROR_INTERNET_SHUTDOWN = (INTERNET_ERROR_BASE + 12) -ERROR_INTERNET_INCORRECT_USER_NAME = (INTERNET_ERROR_BASE + 13) -ERROR_INTERNET_INCORRECT_PASSWORD = (INTERNET_ERROR_BASE + 14) -ERROR_INTERNET_LOGIN_FAILURE = (INTERNET_ERROR_BASE + 15) -ERROR_INTERNET_INVALID_OPERATION = (INTERNET_ERROR_BASE + 16) -ERROR_INTERNET_OPERATION_CANCELLED = (INTERNET_ERROR_BASE + 17) -ERROR_INTERNET_INCORRECT_HANDLE_TYPE = (INTERNET_ERROR_BASE + 18) -ERROR_INTERNET_INCORRECT_HANDLE_STATE = (INTERNET_ERROR_BASE + 19) -ERROR_INTERNET_NOT_PROXY_REQUEST = (INTERNET_ERROR_BASE + 20) -ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND = (INTERNET_ERROR_BASE + 21) -ERROR_INTERNET_BAD_REGISTRY_PARAMETER = (INTERNET_ERROR_BASE + 22) -ERROR_INTERNET_NO_DIRECT_ACCESS = (INTERNET_ERROR_BASE + 23) -ERROR_INTERNET_NO_CONTEXT = (INTERNET_ERROR_BASE + 24) -ERROR_INTERNET_NO_CALLBACK = (INTERNET_ERROR_BASE + 25) -ERROR_INTERNET_REQUEST_PENDING = (INTERNET_ERROR_BASE + 26) -ERROR_INTERNET_INCORRECT_FORMAT = (INTERNET_ERROR_BASE + 27) -ERROR_INTERNET_ITEM_NOT_FOUND = (INTERNET_ERROR_BASE + 28) -ERROR_INTERNET_CANNOT_CONNECT = (INTERNET_ERROR_BASE + 29) -ERROR_INTERNET_CONNECTION_ABORTED = (INTERNET_ERROR_BASE + 30) -ERROR_INTERNET_CONNECTION_RESET = (INTERNET_ERROR_BASE + 31) -ERROR_INTERNET_FORCE_RETRY = (INTERNET_ERROR_BASE + 32) -ERROR_INTERNET_INVALID_PROXY_REQUEST = (INTERNET_ERROR_BASE + 33) -ERROR_INTERNET_NEED_UI = (INTERNET_ERROR_BASE + 34) -ERROR_INTERNET_HANDLE_EXISTS = (INTERNET_ERROR_BASE + 36) -ERROR_INTERNET_SEC_CERT_DATE_INVALID = (INTERNET_ERROR_BASE + 37) -ERROR_INTERNET_SEC_CERT_CN_INVALID = (INTERNET_ERROR_BASE + 38) -ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR = (INTERNET_ERROR_BASE + 39) -ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR = (INTERNET_ERROR_BASE + 40) -ERROR_INTERNET_MIXED_SECURITY = (INTERNET_ERROR_BASE + 41) -ERROR_INTERNET_CHG_POST_IS_NON_SECURE = (INTERNET_ERROR_BASE + 42) -ERROR_INTERNET_POST_IS_NON_SECURE = (INTERNET_ERROR_BASE + 43) -ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED = (INTERNET_ERROR_BASE + 44) -ERROR_INTERNET_INVALID_CA = (INTERNET_ERROR_BASE + 45) -ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP = (INTERNET_ERROR_BASE + 46) -ERROR_INTERNET_ASYNC_THREAD_FAILED = (INTERNET_ERROR_BASE + 47) -ERROR_INTERNET_REDIRECT_SCHEME_CHANGE = (INTERNET_ERROR_BASE + 48) -ERROR_INTERNET_DIALOG_PENDING = (INTERNET_ERROR_BASE + 49) -ERROR_INTERNET_RETRY_DIALOG = (INTERNET_ERROR_BASE + 50) -ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR = (INTERNET_ERROR_BASE + 52) -ERROR_INTERNET_INSERT_CDROM = (INTERNET_ERROR_BASE + 53) -ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED = (INTERNET_ERROR_BASE + 54) -ERROR_INTERNET_SEC_CERT_ERRORS = (INTERNET_ERROR_BASE + 55) -ERROR_INTERNET_SEC_CERT_NO_REV = (INTERNET_ERROR_BASE + 56) -ERROR_INTERNET_SEC_CERT_REV_FAILED = (INTERNET_ERROR_BASE + 57) -ERROR_FTP_TRANSFER_IN_PROGRESS = (INTERNET_ERROR_BASE + 110) -ERROR_FTP_DROPPED = (INTERNET_ERROR_BASE + 111) -ERROR_FTP_NO_PASSIVE_MODE = (INTERNET_ERROR_BASE + 112) -ERROR_GOPHER_PROTOCOL_ERROR = (INTERNET_ERROR_BASE + 130) -ERROR_GOPHER_NOT_FILE = (INTERNET_ERROR_BASE + 131) -ERROR_GOPHER_DATA_ERROR = (INTERNET_ERROR_BASE + 132) -ERROR_GOPHER_END_OF_DATA = (INTERNET_ERROR_BASE + 133) -ERROR_GOPHER_INVALID_LOCATOR = (INTERNET_ERROR_BASE + 134) -ERROR_GOPHER_INCORRECT_LOCATOR_TYPE = (INTERNET_ERROR_BASE + 135) -ERROR_GOPHER_NOT_GOPHER_PLUS = (INTERNET_ERROR_BASE + 136) -ERROR_GOPHER_ATTRIBUTE_NOT_FOUND = (INTERNET_ERROR_BASE + 137) -ERROR_GOPHER_UNKNOWN_LOCATOR = (INTERNET_ERROR_BASE + 138) -ERROR_HTTP_HEADER_NOT_FOUND = (INTERNET_ERROR_BASE + 150) -ERROR_HTTP_DOWNLEVEL_SERVER = (INTERNET_ERROR_BASE + 151) -ERROR_HTTP_INVALID_SERVER_RESPONSE = (INTERNET_ERROR_BASE + 152) -ERROR_HTTP_INVALID_HEADER = (INTERNET_ERROR_BASE + 153) -ERROR_HTTP_INVALID_QUERY_REQUEST = (INTERNET_ERROR_BASE + 154) -ERROR_HTTP_HEADER_ALREADY_EXISTS = (INTERNET_ERROR_BASE + 155) -ERROR_HTTP_REDIRECT_FAILED = (INTERNET_ERROR_BASE + 156) -ERROR_HTTP_NOT_REDIRECTED = (INTERNET_ERROR_BASE + 160) -ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION = (INTERNET_ERROR_BASE + 161) -ERROR_HTTP_COOKIE_DECLINED = (INTERNET_ERROR_BASE + 162) -ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION = (INTERNET_ERROR_BASE + 168) -ERROR_INTERNET_SECURITY_CHANNEL_ERROR = (INTERNET_ERROR_BASE + 157) -ERROR_INTERNET_UNABLE_TO_CACHE_FILE = (INTERNET_ERROR_BASE + 158) -ERROR_INTERNET_TCPIP_NOT_INSTALLED = (INTERNET_ERROR_BASE + 159) -ERROR_INTERNET_DISCONNECTED = (INTERNET_ERROR_BASE + 163) -ERROR_INTERNET_SERVER_UNREACHABLE = (INTERNET_ERROR_BASE + 164) -ERROR_INTERNET_PROXY_SERVER_UNREACHABLE = (INTERNET_ERROR_BASE + 165) -ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT = (INTERNET_ERROR_BASE + 166) -ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT = (INTERNET_ERROR_BASE + 167) -ERROR_INTERNET_SEC_INVALID_CERT = (INTERNET_ERROR_BASE + 169) -ERROR_INTERNET_SEC_CERT_REVOKED = (INTERNET_ERROR_BASE + 170) -ERROR_INTERNET_FAILED_DUETOSECURITYCHECK = (INTERNET_ERROR_BASE + 171) -ERROR_INTERNET_NOT_INITIALIZED = (INTERNET_ERROR_BASE + 172) -ERROR_INTERNET_NEED_MSN_SSPI_PKG = (INTERNET_ERROR_BASE + 173) -ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = (INTERNET_ERROR_BASE + 174) -INTERNET_ERROR_LAST = ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY -NORMAL_CACHE_ENTRY = 0x00000001 -STICKY_CACHE_ENTRY = 0x00000004 -EDITED_CACHE_ENTRY = 0x00000008 -TRACK_OFFLINE_CACHE_ENTRY = 0x00000010 -TRACK_ONLINE_CACHE_ENTRY = 0x00000020 -SPARSE_CACHE_ENTRY = 0x00010000 -COOKIE_CACHE_ENTRY = 0x00100000 -URLHISTORY_CACHE_ENTRY = 0x00200000 -URLCACHE_FIND_DEFAULT_FILTER = NORMAL_CACHE_ENTRY \ - | COOKIE_CACHE_ENTRY \ - | URLHISTORY_CACHE_ENTRY \ - | TRACK_OFFLINE_CACHE_ENTRY \ - | TRACK_ONLINE_CACHE_ENTRY \ - | STICKY_CACHE_ENTRY -CACHEGROUP_ATTRIBUTE_GET_ALL = (-1) -CACHEGROUP_ATTRIBUTE_BASIC = 0x00000001 -CACHEGROUP_ATTRIBUTE_FLAG = 0x00000002 -CACHEGROUP_ATTRIBUTE_TYPE = 0x00000004 -CACHEGROUP_ATTRIBUTE_QUOTA = 0x00000008 -CACHEGROUP_ATTRIBUTE_GROUPNAME = 0x00000010 -CACHEGROUP_ATTRIBUTE_STORAGE = 0x00000020 -CACHEGROUP_FLAG_NONPURGEABLE = 0x00000001 -CACHEGROUP_FLAG_GIDONLY = 0x00000004 -CACHEGROUP_FLAG_FLUSHURL_ONDELETE = 0x00000002 -CACHEGROUP_SEARCH_ALL = 0x00000000 -CACHEGROUP_SEARCH_BYURL = 0x00000001 -CACHEGROUP_TYPE_INVALID = 0x00000001 -CACHEGROUP_READWRITE_MASK = \ - CACHEGROUP_ATTRIBUTE_TYPE \ - | CACHEGROUP_ATTRIBUTE_QUOTA \ - | CACHEGROUP_ATTRIBUTE_GROUPNAME \ - | CACHEGROUP_ATTRIBUTE_STORAGE -GROUPNAME_MAX_LENGTH = 120 -GROUP_OWNER_STORAGE_SIZE = 4 -CACHE_ENTRY_ATTRIBUTE_FC = 0x00000004 -CACHE_ENTRY_HITRATE_FC = 0x00000010 -CACHE_ENTRY_MODTIME_FC = 0x00000040 -CACHE_ENTRY_EXPTIME_FC = 0x00000080 -CACHE_ENTRY_ACCTIME_FC = 0x00000100 -CACHE_ENTRY_SYNCTIME_FC = 0x00000200 -CACHE_ENTRY_HEADERINFO_FC = 0x00000400 -CACHE_ENTRY_EXEMPT_DELTA_FC = 0x00000800 -INTERNET_CACHE_GROUP_ADD = 0 -INTERNET_CACHE_GROUP_REMOVE = 1 -INTERNET_DIAL_FORCE_PROMPT = 0x2000 -INTERNET_DIAL_SHOW_OFFLINE = 0x4000 -INTERNET_DIAL_UNATTENDED = 0x8000 -INTERENT_GOONLINE_REFRESH = 0x00000001 -INTERENT_GOONLINE_MASK = 0x00000001 -INTERNET_AUTODIAL_FORCE_ONLINE = 1 -INTERNET_AUTODIAL_FORCE_UNATTENDED = 2 -INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4 -INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT = 8 -INTERNET_AUTODIAL_FLAGS_MASK = (INTERNET_AUTODIAL_FORCE_ONLINE | INTERNET_AUTODIAL_FORCE_UNATTENDED | INTERNET_AUTODIAL_FAILIFSECURITYCHECK | INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT) -PROXY_AUTO_DETECT_TYPE_DHCP = 1 -PROXY_AUTO_DETECT_TYPE_DNS_A = 2 -INTERNET_CONNECTION_MODEM = 0x01 -INTERNET_CONNECTION_LAN = 0x02 -INTERNET_CONNECTION_PROXY = 0x04 -INTERNET_CONNECTION_MODEM_BUSY = 0x08 -INTERNET_RAS_INSTALLED = 0x10 -INTERNET_CONNECTION_OFFLINE = 0x20 -INTERNET_CONNECTION_CONFIGURED = 0x40 -INTERNET_CUSTOMDIAL_CONNECT = 0 -INTERNET_CUSTOMDIAL_UNATTENDED = 1 -INTERNET_CUSTOMDIAL_DISCONNECT = 2 -INTERNET_CUSTOMDIAL_SHOWOFFLINE = 4 -INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED = 1 -INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE = 2 -INTERNET_CUSTOMDIAL_CAN_HANGUP = 4 -INTERNET_DIALSTATE_DISCONNECTED = 1 -INTERNET_IDENTITY_FLAG_PRIVATE_CACHE = 0x01 -INTERNET_IDENTITY_FLAG_SHARED_CACHE = 0x02 -INTERNET_IDENTITY_FLAG_CLEAR_DATA = 0x04 -INTERNET_IDENTITY_FLAG_CLEAR_COOKIES = 0x08 -INTERNET_IDENTITY_FLAG_CLEAR_HISTORY = 0x10 -INTERNET_IDENTITY_FLAG_CLEAR_CONTENT = 0x20 -INTERNET_SUPPRESS_RESET_ALL = 0x00 -INTERNET_SUPPRESS_COOKIE_POLICY = 0x01 -INTERNET_SUPPRESS_COOKIE_POLICY_RESET = 0x02 -PRIVACY_TEMPLATE_NO_COOKIES = 0 -PRIVACY_TEMPLATE_HIGH = 1 -PRIVACY_TEMPLATE_MEDIUM_HIGH = 2 -PRIVACY_TEMPLATE_MEDIUM = 3 -PRIVACY_TEMPLATE_MEDIUM_LOW = 4 -PRIVACY_TEMPLATE_LOW = 5 -PRIVACY_TEMPLATE_CUSTOM = 100 -PRIVACY_TEMPLATE_ADVANCED = 101 -PRIVACY_TEMPLATE_MAX = PRIVACY_TEMPLATE_LOW -PRIVACY_TYPE_FIRST_PARTY = 0 -PRIVACY_TYPE_THIRD_PARTY = 1 - -# Generated by h2py from winhttp.h -INTERNET_DEFAULT_PORT = 0 -INTERNET_DEFAULT_HTTP_PORT = 80 -INTERNET_DEFAULT_HTTPS_PORT = 443 -WINHTTP_FLAG_ASYNC = 0x10000000 -WINHTTP_FLAG_SECURE = 0x00800000 -WINHTTP_FLAG_ESCAPE_PERCENT = 0x00000004 -WINHTTP_FLAG_NULL_CODEPAGE = 0x00000008 -WINHTTP_FLAG_BYPASS_PROXY_CACHE = 0x00000100 -WINHTTP_FLAG_REFRESH = WINHTTP_FLAG_BYPASS_PROXY_CACHE -WINHTTP_FLAG_ESCAPE_DISABLE = 0x00000040 -WINHTTP_FLAG_ESCAPE_DISABLE_QUERY = 0x00000080 -SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100 -SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000 -SECURITY_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000 -SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE = 0x00000200 -INTERNET_SCHEME_HTTP = (1) -INTERNET_SCHEME_HTTPS = (2) -WINHTTP_AUTOPROXY_AUTO_DETECT = 0x00000001 -WINHTTP_AUTOPROXY_CONFIG_URL = 0x00000002 -WINHTTP_AUTOPROXY_RUN_INPROCESS = 0x00010000 -WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY = 0x00020000 -WINHTTP_AUTO_DETECT_TYPE_DHCP = 0x00000001 -WINHTTP_AUTO_DETECT_TYPE_DNS_A = 0x00000002 -WINHTTP_TIME_FORMAT_BUFSIZE = 62 -ICU_NO_ENCODE = 0x20000000 -ICU_DECODE = 0x10000000 -ICU_NO_META = 0x08000000 -ICU_ENCODE_SPACES_ONLY = 0x04000000 -ICU_BROWSER_MODE = 0x02000000 -ICU_ENCODE_PERCENT = 0x00001000 -ICU_ESCAPE = (-2147483648) -ICU_ESCAPE_AUTHORITY = 0x00002000 -ICU_REJECT_USERPWD = 0x00004000 -WINHTTP_ACCESS_TYPE_DEFAULT_PROXY = 0 -WINHTTP_ACCESS_TYPE_NO_PROXY = 1 -WINHTTP_ACCESS_TYPE_NAMED_PROXY = 3 -WINHTTP_OPTION_CALLBACK = 1 -WINHTTP_OPTION_RESOLVE_TIMEOUT = 2 -WINHTTP_OPTION_CONNECT_TIMEOUT = 3 -WINHTTP_OPTION_CONNECT_RETRIES = 4 -WINHTTP_OPTION_SEND_TIMEOUT = 5 -WINHTTP_OPTION_RECEIVE_TIMEOUT = 6 -WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT = 7 -WINHTTP_OPTION_HANDLE_TYPE = 9 -WINHTTP_OPTION_READ_BUFFER_SIZE = 12 -WINHTTP_OPTION_WRITE_BUFFER_SIZE = 13 -WINHTTP_OPTION_PARENT_HANDLE = 21 -WINHTTP_OPTION_EXTENDED_ERROR = 24 -WINHTTP_OPTION_SECURITY_FLAGS = 31 -WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT = 32 -WINHTTP_OPTION_URL = 34 -WINHTTP_OPTION_SECURITY_KEY_BITNESS = 36 -WINHTTP_OPTION_PROXY = 38 -WINHTTP_OPTION_USER_AGENT = 41 -WINHTTP_OPTION_CONTEXT_VALUE = 45 -WINHTTP_OPTION_CLIENT_CERT_CONTEXT = 47 -WINHTTP_OPTION_REQUEST_PRIORITY = 58 -WINHTTP_OPTION_HTTP_VERSION = 59 -WINHTTP_OPTION_DISABLE_FEATURE = 63 -WINHTTP_OPTION_CODEPAGE = 68 -WINHTTP_OPTION_MAX_CONNS_PER_SERVER = 73 -WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER = 74 -WINHTTP_OPTION_AUTOLOGON_POLICY = 77 -WINHTTP_OPTION_SERVER_CERT_CONTEXT = 78 -WINHTTP_OPTION_ENABLE_FEATURE = 79 -WINHTTP_OPTION_WORKER_THREAD_COUNT = 80 -WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT = 81 -WINHTTP_OPTION_PASSPORT_COBRANDING_URL = 82 -WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH = 83 -WINHTTP_OPTION_SECURE_PROTOCOLS = 84 -WINHTTP_OPTION_ENABLETRACING = 85 -WINHTTP_OPTION_PASSPORT_SIGN_OUT = 86 -WINHTTP_OPTION_PASSPORT_RETURN_URL = 87 -WINHTTP_OPTION_REDIRECT_POLICY = 88 -WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS = 89 -WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE = 90 -WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE = 91 -WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE = 92 -WINHTTP_OPTION_CONNECTION_INFO = 93 -WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST = 94 -WINHTTP_OPTION_SPN = 96 -WINHTTP_OPTION_GLOBAL_PROXY_CREDS = 97 -WINHTTP_OPTION_GLOBAL_SERVER_CREDS = 98 -WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT = 99 -WINHTTP_OPTION_REJECT_USERPWD_IN_URL = 100 -WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS = 101 -WINHTTP_LAST_OPTION = WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS -WINHTTP_OPTION_USERNAME = 0x1000 -WINHTTP_OPTION_PASSWORD = 0x1001 -WINHTTP_OPTION_PROXY_USERNAME = 0x1002 -WINHTTP_OPTION_PROXY_PASSWORD = 0x1003 -WINHTTP_CONNS_PER_SERVER_UNLIMITED = (-1) -WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM = 0 -WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW = 1 -WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH = 2 -WINHTTP_AUTOLOGON_SECURITY_LEVEL_DEFAULT = WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM -WINHTTP_OPTION_REDIRECT_POLICY_NEVER = 0 -WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP = 1 -WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS = 2 -WINHTTP_OPTION_REDIRECT_POLICY_LAST = WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS -WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT = WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP -WINHTTP_DISABLE_PASSPORT_AUTH = 0x00000000 -WINHTTP_ENABLE_PASSPORT_AUTH = 0x10000000 -WINHTTP_DISABLE_PASSPORT_KEYRING = 0x20000000 -WINHTTP_ENABLE_PASSPORT_KEYRING = 0x40000000 -WINHTTP_DISABLE_COOKIES = 0x00000001 -WINHTTP_DISABLE_REDIRECTS = 0x00000002 -WINHTTP_DISABLE_AUTHENTICATION = 0x00000004 -WINHTTP_DISABLE_KEEP_ALIVE = 0x00000008 -WINHTTP_ENABLE_SSL_REVOCATION = 0x00000001 -WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION = 0x00000002 -WINHTTP_DISABLE_SPN_SERVER_PORT = 0x00000000 -WINHTTP_ENABLE_SPN_SERVER_PORT = 0x00000001 -WINHTTP_OPTION_SPN_MASK = WINHTTP_ENABLE_SPN_SERVER_PORT -WINHTTP_HANDLE_TYPE_SESSION = 1 -WINHTTP_HANDLE_TYPE_CONNECT = 2 -WINHTTP_HANDLE_TYPE_REQUEST = 3 -WINHTTP_AUTH_SCHEME_BASIC = 0x00000001 -WINHTTP_AUTH_SCHEME_NTLM = 0x00000002 -WINHTTP_AUTH_SCHEME_PASSPORT = 0x00000004 -WINHTTP_AUTH_SCHEME_DIGEST = 0x00000008 -WINHTTP_AUTH_SCHEME_NEGOTIATE = 0x00000010 -WINHTTP_AUTH_TARGET_SERVER = 0x00000000 -WINHTTP_AUTH_TARGET_PROXY = 0x00000001 -SECURITY_FLAG_SECURE = 0x00000001 -SECURITY_FLAG_STRENGTH_WEAK = 0x10000000 -SECURITY_FLAG_STRENGTH_MEDIUM = 0x40000000 -SECURITY_FLAG_STRENGTH_STRONG = 0x20000000 -WINHTTP_CALLBACK_STATUS_FLAG_CERT_REV_FAILED = 0x00000001 -WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CERT = 0x00000002 -WINHTTP_CALLBACK_STATUS_FLAG_CERT_REVOKED = 0x00000004 -WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA = 0x00000008 -WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID = 0x00000010 -WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID = 0x00000020 -WINHTTP_CALLBACK_STATUS_FLAG_CERT_WRONG_USAGE = 0x00000040 -WINHTTP_CALLBACK_STATUS_FLAG_SECURITY_CHANNEL_ERROR = (-2147483648) -WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 = 0x00000008 -WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 = 0x00000020 -WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 = 0x00000080 -WINHTTP_FLAG_SECURE_PROTOCOL_ALL = (WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | \ - WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | \ - WINHTTP_FLAG_SECURE_PROTOCOL_TLS1) -WINHTTP_CALLBACK_STATUS_RESOLVING_NAME = 0x00000001 -WINHTTP_CALLBACK_STATUS_NAME_RESOLVED = 0x00000002 -WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER = 0x00000004 -WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER = 0x00000008 -WINHTTP_CALLBACK_STATUS_SENDING_REQUEST = 0x00000010 -WINHTTP_CALLBACK_STATUS_REQUEST_SENT = 0x00000020 -WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE = 0x00000040 -WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED = 0x00000080 -WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION = 0x00000100 -WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED = 0x00000200 -WINHTTP_CALLBACK_STATUS_HANDLE_CREATED = 0x00000400 -WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING = 0x00000800 -WINHTTP_CALLBACK_STATUS_DETECTING_PROXY = 0x00001000 -WINHTTP_CALLBACK_STATUS_REDIRECT = 0x00004000 -WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE = 0x00008000 -WINHTTP_CALLBACK_STATUS_SECURE_FAILURE = 0x00010000 -WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE = 0x00020000 -WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE = 0x00040000 -WINHTTP_CALLBACK_STATUS_READ_COMPLETE = 0x00080000 -WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE = 0x00100000 -WINHTTP_CALLBACK_STATUS_REQUEST_ERROR = 0x00200000 -WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE = 0x00400000 -API_RECEIVE_RESPONSE = (1) -API_QUERY_DATA_AVAILABLE = (2) -API_READ_DATA = (3) -API_WRITE_DATA = (4) -API_SEND_REQUEST = (5) -WINHTTP_CALLBACK_FLAG_RESOLVE_NAME = (WINHTTP_CALLBACK_STATUS_RESOLVING_NAME | WINHTTP_CALLBACK_STATUS_NAME_RESOLVED) -WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER = (WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER | WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER) -WINHTTP_CALLBACK_FLAG_SEND_REQUEST = (WINHTTP_CALLBACK_STATUS_SENDING_REQUEST | WINHTTP_CALLBACK_STATUS_REQUEST_SENT) -WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE = (WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE | WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED) -WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION = (WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION | WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED) -WINHTTP_CALLBACK_FLAG_HANDLES = (WINHTTP_CALLBACK_STATUS_HANDLE_CREATED | WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING) -WINHTTP_CALLBACK_FLAG_DETECTING_PROXY = WINHTTP_CALLBACK_STATUS_DETECTING_PROXY -WINHTTP_CALLBACK_FLAG_REDIRECT = WINHTTP_CALLBACK_STATUS_REDIRECT -WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE = WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE -WINHTTP_CALLBACK_FLAG_SECURE_FAILURE = WINHTTP_CALLBACK_STATUS_SECURE_FAILURE -WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE = WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE -WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE = WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE -WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE = WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE -WINHTTP_CALLBACK_FLAG_READ_COMPLETE = WINHTTP_CALLBACK_STATUS_READ_COMPLETE -WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE = WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE -WINHTTP_CALLBACK_FLAG_REQUEST_ERROR = WINHTTP_CALLBACK_STATUS_REQUEST_ERROR -WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS = (WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE \ - | WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE \ - | WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE \ - | WINHTTP_CALLBACK_STATUS_READ_COMPLETE \ - | WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE \ - | WINHTTP_CALLBACK_STATUS_REQUEST_ERROR) -WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS = (-1) -WINHTTP_QUERY_MIME_VERSION = 0 -WINHTTP_QUERY_CONTENT_TYPE = 1 -WINHTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2 -WINHTTP_QUERY_CONTENT_ID = 3 -WINHTTP_QUERY_CONTENT_DESCRIPTION = 4 -WINHTTP_QUERY_CONTENT_LENGTH = 5 -WINHTTP_QUERY_CONTENT_LANGUAGE = 6 -WINHTTP_QUERY_ALLOW = 7 -WINHTTP_QUERY_PUBLIC = 8 -WINHTTP_QUERY_DATE = 9 -WINHTTP_QUERY_EXPIRES = 10 -WINHTTP_QUERY_LAST_MODIFIED = 11 -WINHTTP_QUERY_MESSAGE_ID = 12 -WINHTTP_QUERY_URI = 13 -WINHTTP_QUERY_DERIVED_FROM = 14 -WINHTTP_QUERY_COST = 15 -WINHTTP_QUERY_LINK = 16 -WINHTTP_QUERY_PRAGMA = 17 -WINHTTP_QUERY_VERSION = 18 -WINHTTP_QUERY_STATUS_CODE = 19 -WINHTTP_QUERY_STATUS_TEXT = 20 -WINHTTP_QUERY_RAW_HEADERS = 21 -WINHTTP_QUERY_RAW_HEADERS_CRLF = 22 -WINHTTP_QUERY_CONNECTION = 23 -WINHTTP_QUERY_ACCEPT = 24 -WINHTTP_QUERY_ACCEPT_CHARSET = 25 -WINHTTP_QUERY_ACCEPT_ENCODING = 26 -WINHTTP_QUERY_ACCEPT_LANGUAGE = 27 -WINHTTP_QUERY_AUTHORIZATION = 28 -WINHTTP_QUERY_CONTENT_ENCODING = 29 -WINHTTP_QUERY_FORWARDED = 30 -WINHTTP_QUERY_FROM = 31 -WINHTTP_QUERY_IF_MODIFIED_SINCE = 32 -WINHTTP_QUERY_LOCATION = 33 -WINHTTP_QUERY_ORIG_URI = 34 -WINHTTP_QUERY_REFERER = 35 -WINHTTP_QUERY_RETRY_AFTER = 36 -WINHTTP_QUERY_SERVER = 37 -WINHTTP_QUERY_TITLE = 38 -WINHTTP_QUERY_USER_AGENT = 39 -WINHTTP_QUERY_WWW_AUTHENTICATE = 40 -WINHTTP_QUERY_PROXY_AUTHENTICATE = 41 -WINHTTP_QUERY_ACCEPT_RANGES = 42 -WINHTTP_QUERY_SET_COOKIE = 43 -WINHTTP_QUERY_COOKIE = 44 -WINHTTP_QUERY_REQUEST_METHOD = 45 -WINHTTP_QUERY_REFRESH = 46 -WINHTTP_QUERY_CONTENT_DISPOSITION = 47 -WINHTTP_QUERY_AGE = 48 -WINHTTP_QUERY_CACHE_CONTROL = 49 -WINHTTP_QUERY_CONTENT_BASE = 50 -WINHTTP_QUERY_CONTENT_LOCATION = 51 -WINHTTP_QUERY_CONTENT_MD5 = 52 -WINHTTP_QUERY_CONTENT_RANGE = 53 -WINHTTP_QUERY_ETAG = 54 -WINHTTP_QUERY_HOST = 55 -WINHTTP_QUERY_IF_MATCH = 56 -WINHTTP_QUERY_IF_NONE_MATCH = 57 -WINHTTP_QUERY_IF_RANGE = 58 -WINHTTP_QUERY_IF_UNMODIFIED_SINCE = 59 -WINHTTP_QUERY_MAX_FORWARDS = 60 -WINHTTP_QUERY_PROXY_AUTHORIZATION = 61 -WINHTTP_QUERY_RANGE = 62 -WINHTTP_QUERY_TRANSFER_ENCODING = 63 -WINHTTP_QUERY_UPGRADE = 64 -WINHTTP_QUERY_VARY = 65 -WINHTTP_QUERY_VIA = 66 -WINHTTP_QUERY_WARNING = 67 -WINHTTP_QUERY_EXPECT = 68 -WINHTTP_QUERY_PROXY_CONNECTION = 69 -WINHTTP_QUERY_UNLESS_MODIFIED_SINCE = 70 -WINHTTP_QUERY_PROXY_SUPPORT = 75 -WINHTTP_QUERY_AUTHENTICATION_INFO = 76 -WINHTTP_QUERY_PASSPORT_URLS = 77 -WINHTTP_QUERY_PASSPORT_CONFIG = 78 -WINHTTP_QUERY_MAX = 78 -WINHTTP_QUERY_CUSTOM = 65535 -WINHTTP_QUERY_FLAG_REQUEST_HEADERS = (-2147483648) -WINHTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000 -WINHTTP_QUERY_FLAG_NUMBER = 0x20000000 -HTTP_STATUS_CONTINUE = 100 -HTTP_STATUS_SWITCH_PROTOCOLS = 101 -HTTP_STATUS_OK = 200 -HTTP_STATUS_CREATED = 201 -HTTP_STATUS_ACCEPTED = 202 -HTTP_STATUS_PARTIAL = 203 -HTTP_STATUS_NO_CONTENT = 204 -HTTP_STATUS_RESET_CONTENT = 205 -HTTP_STATUS_PARTIAL_CONTENT = 206 -HTTP_STATUS_WEBDAV_MULTI_STATUS = 207 -HTTP_STATUS_AMBIGUOUS = 300 -HTTP_STATUS_MOVED = 301 -HTTP_STATUS_REDIRECT = 302 -HTTP_STATUS_REDIRECT_METHOD = 303 -HTTP_STATUS_NOT_MODIFIED = 304 -HTTP_STATUS_USE_PROXY = 305 -HTTP_STATUS_REDIRECT_KEEP_VERB = 307 -HTTP_STATUS_BAD_REQUEST = 400 -HTTP_STATUS_DENIED = 401 -HTTP_STATUS_PAYMENT_REQ = 402 -HTTP_STATUS_FORBIDDEN = 403 -HTTP_STATUS_NOT_FOUND = 404 -HTTP_STATUS_BAD_METHOD = 405 -HTTP_STATUS_NONE_ACCEPTABLE = 406 -HTTP_STATUS_PROXY_AUTH_REQ = 407 -HTTP_STATUS_REQUEST_TIMEOUT = 408 -HTTP_STATUS_CONFLICT = 409 -HTTP_STATUS_GONE = 410 -HTTP_STATUS_LENGTH_REQUIRED = 411 -HTTP_STATUS_PRECOND_FAILED = 412 -HTTP_STATUS_REQUEST_TOO_LARGE = 413 -HTTP_STATUS_URI_TOO_LONG = 414 -HTTP_STATUS_UNSUPPORTED_MEDIA = 415 -HTTP_STATUS_RETRY_WITH = 449 -HTTP_STATUS_SERVER_ERROR = 500 -HTTP_STATUS_NOT_SUPPORTED = 501 -HTTP_STATUS_BAD_GATEWAY = 502 -HTTP_STATUS_SERVICE_UNAVAIL = 503 -HTTP_STATUS_GATEWAY_TIMEOUT = 504 -HTTP_STATUS_VERSION_NOT_SUP = 505 -HTTP_STATUS_FIRST = HTTP_STATUS_CONTINUE -HTTP_STATUS_LAST = HTTP_STATUS_VERSION_NOT_SUP -WINHTTP_ADDREQ_INDEX_MASK = 0x0000FFFF -WINHTTP_ADDREQ_FLAGS_MASK = (-65536) -WINHTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000 -WINHTTP_ADDREQ_FLAG_ADD = 0x20000000 -WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000 -WINHTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000 -WINHTTP_ADDREQ_FLAG_COALESCE = WINHTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA -WINHTTP_ADDREQ_FLAG_REPLACE = (-2147483648) -WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH = 0 -WINHTTP_ERROR_BASE = 12000 -ERROR_WINHTTP_OUT_OF_HANDLES = (WINHTTP_ERROR_BASE + 1) -ERROR_WINHTTP_TIMEOUT = (WINHTTP_ERROR_BASE + 2) -ERROR_WINHTTP_INTERNAL_ERROR = (WINHTTP_ERROR_BASE + 4) -ERROR_WINHTTP_INVALID_URL = (WINHTTP_ERROR_BASE + 5) -ERROR_WINHTTP_UNRECOGNIZED_SCHEME = (WINHTTP_ERROR_BASE + 6) -ERROR_WINHTTP_NAME_NOT_RESOLVED = (WINHTTP_ERROR_BASE + 7) -ERROR_WINHTTP_INVALID_OPTION = (WINHTTP_ERROR_BASE + 9) -ERROR_WINHTTP_OPTION_NOT_SETTABLE = (WINHTTP_ERROR_BASE + 11) -ERROR_WINHTTP_SHUTDOWN = (WINHTTP_ERROR_BASE + 12) -ERROR_WINHTTP_LOGIN_FAILURE = (WINHTTP_ERROR_BASE + 15) -ERROR_WINHTTP_OPERATION_CANCELLED = (WINHTTP_ERROR_BASE + 17) -ERROR_WINHTTP_INCORRECT_HANDLE_TYPE = (WINHTTP_ERROR_BASE + 18) -ERROR_WINHTTP_INCORRECT_HANDLE_STATE = (WINHTTP_ERROR_BASE + 19) -ERROR_WINHTTP_CANNOT_CONNECT = (WINHTTP_ERROR_BASE + 29) -ERROR_WINHTTP_CONNECTION_ERROR = (WINHTTP_ERROR_BASE + 30) -ERROR_WINHTTP_RESEND_REQUEST = (WINHTTP_ERROR_BASE + 32) -ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED = (WINHTTP_ERROR_BASE + 44) -ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN = (WINHTTP_ERROR_BASE + 100) -ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND = (WINHTTP_ERROR_BASE + 101) -ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND = (WINHTTP_ERROR_BASE + 102) -ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN = (WINHTTP_ERROR_BASE + 103) -ERROR_WINHTTP_HEADER_NOT_FOUND = (WINHTTP_ERROR_BASE + 150) -ERROR_WINHTTP_INVALID_SERVER_RESPONSE = (WINHTTP_ERROR_BASE + 152) -ERROR_WINHTTP_INVALID_HEADER = (WINHTTP_ERROR_BASE + 153) -ERROR_WINHTTP_INVALID_QUERY_REQUEST = (WINHTTP_ERROR_BASE + 154) -ERROR_WINHTTP_HEADER_ALREADY_EXISTS = (WINHTTP_ERROR_BASE + 155) -ERROR_WINHTTP_REDIRECT_FAILED = (WINHTTP_ERROR_BASE + 156) -ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR = (WINHTTP_ERROR_BASE + 178) -ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT = (WINHTTP_ERROR_BASE + 166) -ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT = (WINHTTP_ERROR_BASE + 167) -ERROR_WINHTTP_NOT_INITIALIZED = (WINHTTP_ERROR_BASE + 172) -ERROR_WINHTTP_SECURE_FAILURE = (WINHTTP_ERROR_BASE + 175) -ERROR_WINHTTP_SECURE_CERT_DATE_INVALID = (WINHTTP_ERROR_BASE + 37) -ERROR_WINHTTP_SECURE_CERT_CN_INVALID = (WINHTTP_ERROR_BASE + 38) -ERROR_WINHTTP_SECURE_INVALID_CA = (WINHTTP_ERROR_BASE + 45) -ERROR_WINHTTP_SECURE_CERT_REV_FAILED = (WINHTTP_ERROR_BASE + 57) -ERROR_WINHTTP_SECURE_CHANNEL_ERROR = (WINHTTP_ERROR_BASE + 157) -ERROR_WINHTTP_SECURE_INVALID_CERT = (WINHTTP_ERROR_BASE + 169) -ERROR_WINHTTP_SECURE_CERT_REVOKED = (WINHTTP_ERROR_BASE + 170) -ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE = (WINHTTP_ERROR_BASE + 179) -ERROR_WINHTTP_AUTODETECTION_FAILED = (WINHTTP_ERROR_BASE + 180) -ERROR_WINHTTP_HEADER_COUNT_EXCEEDED = (WINHTTP_ERROR_BASE + 181) -ERROR_WINHTTP_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 182) -ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW = (WINHTTP_ERROR_BASE + 183) -ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW = (WINHTTP_ERROR_BASE + 184) -ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY = (WINHTTP_ERROR_BASE + 185) -ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY = (WINHTTP_ERROR_BASE + 186) -WINHTTP_ERROR_LAST = (WINHTTP_ERROR_BASE + 186) - -WINHTTP_NO_PROXY_NAME = None -WINHTTP_NO_PROXY_BYPASS = None -WINHTTP_NO_REFERER = None -WINHTTP_DEFAULT_ACCEPT_TYPES = None -WINHTTP_NO_ADDITIONAL_HEADERS = None -WINHTTP_NO_REQUEST_DATA = None diff --git a/typings/win32helper/win32netcon.pyi b/typings/win32helper/win32netcon.pyi deleted file mode 100644 index 73795969..00000000 --- a/typings/win32helper/win32netcon.pyi +++ /dev/null @@ -1,655 +0,0 @@ -# Generated by h2py from lmaccess.h - -# Included from lmcons.h -CNLEN = 15 -LM20_CNLEN = 15 -DNLEN = CNLEN -LM20_DNLEN = LM20_CNLEN -UNCLEN = (CNLEN+2) -LM20_UNCLEN = (LM20_CNLEN+2) -NNLEN = 80 -LM20_NNLEN = 12 -RMLEN = (UNCLEN+1+NNLEN) -LM20_RMLEN = (LM20_UNCLEN+1+LM20_NNLEN) -SNLEN = 80 -LM20_SNLEN = 15 -STXTLEN = 256 -LM20_STXTLEN = 63 -PATHLEN = 256 -LM20_PATHLEN = 256 -DEVLEN = 80 -LM20_DEVLEN = 8 -EVLEN = 16 -UNLEN = 256 -LM20_UNLEN = 20 -GNLEN = UNLEN -LM20_GNLEN = LM20_UNLEN -PWLEN = 256 -LM20_PWLEN = 14 -SHPWLEN = 8 -CLTYPE_LEN = 12 -MAXCOMMENTSZ = 256 -LM20_MAXCOMMENTSZ = 48 -QNLEN = NNLEN -LM20_QNLEN = LM20_NNLEN -ALERTSZ = 128 -NETBIOS_NAME_LEN = 16 -CRYPT_KEY_LEN = 7 -CRYPT_TXT_LEN = 8 -ENCRYPTED_PWLEN = 16 -SESSION_PWLEN = 24 -SESSION_CRYPT_KLEN = 21 -PARMNUM_ALL = 0 -PARM_ERROR_NONE = 0 -PARMNUM_BASE_INFOLEVEL = 1000 -NULL = 0 -PLATFORM_ID_DOS = 300 -PLATFORM_ID_OS2 = 400 -PLATFORM_ID_NT = 500 -PLATFORM_ID_OSF = 600 -PLATFORM_ID_VMS = 700 -MAX_LANMAN_MESSAGE_ID = 5799 -UF_SCRIPT = 1 -UF_ACCOUNTDISABLE = 2 -UF_HOMEDIR_REQUIRED = 8 -UF_LOCKOUT = 16 -UF_PASSWD_NOTREQD = 32 -UF_PASSWD_CANT_CHANGE = 64 -UF_TEMP_DUPLICATE_ACCOUNT = 256 -UF_NORMAL_ACCOUNT = 512 -UF_INTERDOMAIN_TRUST_ACCOUNT = 2048 -UF_WORKSTATION_TRUST_ACCOUNT = 4096 -UF_SERVER_TRUST_ACCOUNT = 8192 -UF_MACHINE_ACCOUNT_MASK = ( UF_INTERDOMAIN_TRUST_ACCOUNT | \ - UF_WORKSTATION_TRUST_ACCOUNT | \ - UF_SERVER_TRUST_ACCOUNT ) -UF_ACCOUNT_TYPE_MASK = ( \ - UF_TEMP_DUPLICATE_ACCOUNT | \ - UF_NORMAL_ACCOUNT | \ - UF_INTERDOMAIN_TRUST_ACCOUNT | \ - UF_WORKSTATION_TRUST_ACCOUNT | \ - UF_SERVER_TRUST_ACCOUNT \ - ) -UF_DONT_EXPIRE_PASSWD = 65536 -UF_MNS_LOGON_ACCOUNT = 131072 -UF_SETTABLE_BITS = ( \ - UF_SCRIPT | \ - UF_ACCOUNTDISABLE | \ - UF_LOCKOUT | \ - UF_HOMEDIR_REQUIRED | \ - UF_PASSWD_NOTREQD | \ - UF_PASSWD_CANT_CHANGE | \ - UF_ACCOUNT_TYPE_MASK | \ - UF_DONT_EXPIRE_PASSWD | \ - UF_MNS_LOGON_ACCOUNT \ - ) -FILTER_TEMP_DUPLICATE_ACCOUNT = (1) -FILTER_NORMAL_ACCOUNT = (2) -FILTER_INTERDOMAIN_TRUST_ACCOUNT = (8) -FILTER_WORKSTATION_TRUST_ACCOUNT = (16) -FILTER_SERVER_TRUST_ACCOUNT = (32) -LG_INCLUDE_INDIRECT = (1) -AF_OP_PRINT = 1 -AF_OP_COMM = 2 -AF_OP_SERVER = 4 -AF_OP_ACCOUNTS = 8 -AF_SETTABLE_BITS = (AF_OP_PRINT | AF_OP_COMM | \ - AF_OP_SERVER | AF_OP_ACCOUNTS) -UAS_ROLE_STANDALONE = 0 -UAS_ROLE_MEMBER = 1 -UAS_ROLE_BACKUP = 2 -UAS_ROLE_PRIMARY = 3 -USER_NAME_PARMNUM = 1 -USER_PASSWORD_PARMNUM = 3 -USER_PASSWORD_AGE_PARMNUM = 4 -USER_PRIV_PARMNUM = 5 -USER_HOME_DIR_PARMNUM = 6 -USER_COMMENT_PARMNUM = 7 -USER_FLAGS_PARMNUM = 8 -USER_SCRIPT_PATH_PARMNUM = 9 -USER_AUTH_FLAGS_PARMNUM = 10 -USER_FULL_NAME_PARMNUM = 11 -USER_USR_COMMENT_PARMNUM = 12 -USER_PARMS_PARMNUM = 13 -USER_WORKSTATIONS_PARMNUM = 14 -USER_LAST_LOGON_PARMNUM = 15 -USER_LAST_LOGOFF_PARMNUM = 16 -USER_ACCT_EXPIRES_PARMNUM = 17 -USER_MAX_STORAGE_PARMNUM = 18 -USER_UNITS_PER_WEEK_PARMNUM = 19 -USER_LOGON_HOURS_PARMNUM = 20 -USER_PAD_PW_COUNT_PARMNUM = 21 -USER_NUM_LOGONS_PARMNUM = 22 -USER_LOGON_SERVER_PARMNUM = 23 -USER_COUNTRY_CODE_PARMNUM = 24 -USER_CODE_PAGE_PARMNUM = 25 -USER_PRIMARY_GROUP_PARMNUM = 51 -USER_PROFILE = 52 -USER_PROFILE_PARMNUM = 52 -USER_HOME_DIR_DRIVE_PARMNUM = 53 -USER_NAME_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_NAME_PARMNUM) -USER_PASSWORD_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_PARMNUM) -USER_PASSWORD_AGE_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_AGE_PARMNUM) -USER_PRIV_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_PRIV_PARMNUM) -USER_HOME_DIR_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_PARMNUM) -USER_COMMENT_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_COMMENT_PARMNUM) -USER_FLAGS_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_FLAGS_PARMNUM) -USER_SCRIPT_PATH_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_SCRIPT_PATH_PARMNUM) -USER_AUTH_FLAGS_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_AUTH_FLAGS_PARMNUM) -USER_FULL_NAME_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_FULL_NAME_PARMNUM) -USER_USR_COMMENT_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_USR_COMMENT_PARMNUM) -USER_PARMS_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_PARMS_PARMNUM) -USER_WORKSTATIONS_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_WORKSTATIONS_PARMNUM) -USER_LAST_LOGON_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGON_PARMNUM) -USER_LAST_LOGOFF_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGOFF_PARMNUM) -USER_ACCT_EXPIRES_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_ACCT_EXPIRES_PARMNUM) -USER_MAX_STORAGE_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_MAX_STORAGE_PARMNUM) -USER_UNITS_PER_WEEK_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_UNITS_PER_WEEK_PARMNUM) -USER_LOGON_HOURS_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_LOGON_HOURS_PARMNUM) -USER_PAD_PW_COUNT_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_PAD_PW_COUNT_PARMNUM) -USER_NUM_LOGONS_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_NUM_LOGONS_PARMNUM) -USER_LOGON_SERVER_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_LOGON_SERVER_PARMNUM) -USER_COUNTRY_CODE_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_COUNTRY_CODE_PARMNUM) -USER_CODE_PAGE_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_CODE_PAGE_PARMNUM) -USER_PRIMARY_GROUP_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_PRIMARY_GROUP_PARMNUM) -USER_HOME_DIR_DRIVE_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_DRIVE_PARMNUM) -NULL_USERSETINFO_PASSWD = " " -UNITS_PER_DAY = 24 -UNITS_PER_WEEK = UNITS_PER_DAY * 7 -USER_PRIV_MASK = 3 -USER_PRIV_GUEST = 0 -USER_PRIV_USER = 1 -USER_PRIV_ADMIN = 2 -MAX_PASSWD_LEN = PWLEN -DEF_MIN_PWLEN = 6 -DEF_PWUNIQUENESS = 5 -DEF_MAX_PWHIST = 8 -DEF_MAX_BADPW = 0 -VALIDATED_LOGON = 0 -PASSWORD_EXPIRED = 2 -NON_VALIDATED_LOGON = 3 -VALID_LOGOFF = 1 -MODALS_MIN_PASSWD_LEN_PARMNUM = 1 -MODALS_MAX_PASSWD_AGE_PARMNUM = 2 -MODALS_MIN_PASSWD_AGE_PARMNUM = 3 -MODALS_FORCE_LOGOFF_PARMNUM = 4 -MODALS_PASSWD_HIST_LEN_PARMNUM = 5 -MODALS_ROLE_PARMNUM = 6 -MODALS_PRIMARY_PARMNUM = 7 -MODALS_DOMAIN_NAME_PARMNUM = 8 -MODALS_DOMAIN_ID_PARMNUM = 9 -MODALS_LOCKOUT_DURATION_PARMNUM = 10 -MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM = 11 -MODALS_LOCKOUT_THRESHOLD_PARMNUM = 12 -MODALS_MIN_PASSWD_LEN_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_LEN_PARMNUM) -MODALS_MAX_PASSWD_AGE_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_MAX_PASSWD_AGE_PARMNUM) -MODALS_MIN_PASSWD_AGE_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_AGE_PARMNUM) -MODALS_FORCE_LOGOFF_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_FORCE_LOGOFF_PARMNUM) -MODALS_PASSWD_HIST_LEN_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_PASSWD_HIST_LEN_PARMNUM) -MODALS_ROLE_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_ROLE_PARMNUM) -MODALS_PRIMARY_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_PRIMARY_PARMNUM) -MODALS_DOMAIN_NAME_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_NAME_PARMNUM) -MODALS_DOMAIN_ID_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_ID_PARMNUM) -GROUPIDMASK = 32768 -GROUP_ALL_PARMNUM = 0 -GROUP_NAME_PARMNUM = 1 -GROUP_COMMENT_PARMNUM = 2 -GROUP_ATTRIBUTES_PARMNUM = 3 -GROUP_ALL_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + GROUP_ALL_PARMNUM) -GROUP_NAME_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + GROUP_NAME_PARMNUM) -GROUP_COMMENT_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + GROUP_COMMENT_PARMNUM) -GROUP_ATTRIBUTES_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + GROUP_ATTRIBUTES_PARMNUM) -LOCALGROUP_NAME_PARMNUM = 1 -LOCALGROUP_COMMENT_PARMNUM = 2 -MAXPERMENTRIES = 64 -ACCESS_NONE = 0 -ACCESS_READ = 1 -ACCESS_WRITE = 2 -ACCESS_CREATE = 4 -ACCESS_EXEC = 8 -ACCESS_DELETE = 16 -ACCESS_ATRIB = 32 -ACCESS_PERM = 64 -ACCESS_GROUP = 32768 -ACCESS_AUDIT = 1 -ACCESS_SUCCESS_OPEN = 16 -ACCESS_SUCCESS_WRITE = 32 -ACCESS_SUCCESS_DELETE = 64 -ACCESS_SUCCESS_ACL = 128 -ACCESS_SUCCESS_MASK = 240 -ACCESS_FAIL_OPEN = 256 -ACCESS_FAIL_WRITE = 512 -ACCESS_FAIL_DELETE = 1024 -ACCESS_FAIL_ACL = 2048 -ACCESS_FAIL_MASK = 3840 -ACCESS_FAIL_SHIFT = 4 -ACCESS_RESOURCE_NAME_PARMNUM = 1 -ACCESS_ATTR_PARMNUM = 2 -ACCESS_COUNT_PARMNUM = 3 -ACCESS_ACCESS_LIST_PARMNUM = 4 -ACCESS_RESOURCE_NAME_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + ACCESS_RESOURCE_NAME_PARMNUM) -ACCESS_ATTR_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + ACCESS_ATTR_PARMNUM) -ACCESS_COUNT_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + ACCESS_COUNT_PARMNUM) -ACCESS_ACCESS_LIST_INFOLEVEL = \ - (PARMNUM_BASE_INFOLEVEL + ACCESS_ACCESS_LIST_PARMNUM) -ACCESS_LETTERS = "RWCXDAP " -NETLOGON_CONTROL_QUERY = 1 -NETLOGON_CONTROL_REPLICATE = 2 -NETLOGON_CONTROL_SYNCHRONIZE = 3 -NETLOGON_CONTROL_PDC_REPLICATE = 4 -NETLOGON_CONTROL_REDISCOVER = 5 -NETLOGON_CONTROL_TC_QUERY = 6 -NETLOGON_CONTROL_TRANSPORT_NOTIFY = 7 -NETLOGON_CONTROL_FIND_USER = 8 -NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL = 65531 -NETLOGON_CONTROL_BACKUP_CHANGE_LOG = 65532 -NETLOGON_CONTROL_TRUNCATE_LOG = 65533 -NETLOGON_CONTROL_SET_DBFLAG = 65534 -NETLOGON_CONTROL_BREAKPOINT = 65535 -NETLOGON_REPLICATION_NEEDED = 1 -NETLOGON_REPLICATION_IN_PROGRESS = 2 -NETLOGON_FULL_SYNC_REPLICATION = 4 -NETLOGON_REDO_NEEDED = 8 - -###################### -# Manual stuff - -TEXT=lambda x:x - -MAX_PREFERRED_LENGTH = -1 -PARM_ERROR_UNKNOWN = -1 -MESSAGE_FILENAME = TEXT("NETMSG") -OS2MSG_FILENAME = TEXT("BASE") -HELP_MSG_FILENAME = TEXT("NETH") -BACKUP_MSG_FILENAME = TEXT("BAK.MSG") -TIMEQ_FOREVER = -1 -USER_MAXSTORAGE_UNLIMITED = -1 -USER_NO_LOGOFF = -1 -DEF_MAX_PWAGE = TIMEQ_FOREVER -DEF_MIN_PWAGE = 0 -DEF_FORCE_LOGOFF = -1 -ONE_DAY = 1*24*3600 -GROUP_SPECIALGRP_USERS = "USERS" -GROUP_SPECIALGRP_ADMINS = "ADMINS" -GROUP_SPECIALGRP_GUESTS = "GUESTS" -GROUP_SPECIALGRP_LOCAL = "LOCAL" -ACCESS_ALL = ( ACCESS_READ | ACCESS_WRITE | ACCESS_CREATE | ACCESS_EXEC | ACCESS_DELETE | ACCESS_ATRIB | ACCESS_PERM ) - -# From lmserver.h -SV_PLATFORM_ID_OS2 = 400 -SV_PLATFORM_ID_NT = 500 -MAJOR_VERSION_MASK = 15 -SV_TYPE_WORKSTATION = 1 -SV_TYPE_SERVER = 2 -SV_TYPE_SQLSERVER = 4 -SV_TYPE_DOMAIN_CTRL = 8 -SV_TYPE_DOMAIN_BAKCTRL = 16 -SV_TYPE_TIME_SOURCE = 32 -SV_TYPE_AFP = 64 -SV_TYPE_NOVELL = 128 -SV_TYPE_DOMAIN_MEMBER = 256 -SV_TYPE_PRINTQ_SERVER = 512 -SV_TYPE_DIALIN_SERVER = 1024 -SV_TYPE_XENIX_SERVER = 2048 -SV_TYPE_SERVER_UNIX = SV_TYPE_XENIX_SERVER -SV_TYPE_NT = 4096 -SV_TYPE_WFW = 8192 -SV_TYPE_SERVER_MFPN = 16384 -SV_TYPE_SERVER_NT = 32768 -SV_TYPE_POTENTIAL_BROWSER = 65536 -SV_TYPE_BACKUP_BROWSER = 131072 -SV_TYPE_MASTER_BROWSER = 262144 -SV_TYPE_DOMAIN_MASTER = 524288 -SV_TYPE_SERVER_OSF = 1048576 -SV_TYPE_SERVER_VMS = 2097152 -SV_TYPE_WINDOWS = 4194304 -SV_TYPE_DFS = 8388608 -SV_TYPE_CLUSTER_NT = 16777216 -SV_TYPE_DCE = 268435456 -SV_TYPE_ALTERNATE_XPORT = 536870912 -SV_TYPE_LOCAL_LIST_ONLY = 1073741824 -SV_TYPE_DOMAIN_ENUM = -2147483648 -SV_TYPE_ALL = -1 -SV_NODISC = -1 -SV_USERSECURITY = 1 -SV_SHARESECURITY = 0 -SV_HIDDEN = 1 -SV_VISIBLE = 0 -SV_PLATFORM_ID_PARMNUM = 101 -SV_NAME_PARMNUM = 102 -SV_VERSION_MAJOR_PARMNUM = 103 -SV_VERSION_MINOR_PARMNUM = 104 -SV_TYPE_PARMNUM = 105 -SV_COMMENT_PARMNUM = 5 -SV_USERS_PARMNUM = 107 -SV_DISC_PARMNUM = 10 -SV_HIDDEN_PARMNUM = 16 -SV_ANNOUNCE_PARMNUM = 17 -SV_ANNDELTA_PARMNUM = 18 -SV_USERPATH_PARMNUM = 112 -SV_ULIST_MTIME_PARMNUM = 401 -SV_GLIST_MTIME_PARMNUM = 402 -SV_ALIST_MTIME_PARMNUM = 403 -SV_ALERTS_PARMNUM = 11 -SV_SECURITY_PARMNUM = 405 -SV_NUMADMIN_PARMNUM = 406 -SV_LANMASK_PARMNUM = 407 -SV_GUESTACC_PARMNUM = 408 -SV_CHDEVQ_PARMNUM = 410 -SV_CHDEVJOBS_PARMNUM = 411 -SV_CONNECTIONS_PARMNUM = 412 -SV_SHARES_PARMNUM = 413 -SV_OPENFILES_PARMNUM = 414 -SV_SESSREQS_PARMNUM = 417 -SV_ACTIVELOCKS_PARMNUM = 419 -SV_NUMREQBUF_PARMNUM = 420 -SV_NUMBIGBUF_PARMNUM = 422 -SV_NUMFILETASKS_PARMNUM = 423 -SV_ALERTSCHED_PARMNUM = 37 -SV_ERRORALERT_PARMNUM = 38 -SV_LOGONALERT_PARMNUM = 39 -SV_ACCESSALERT_PARMNUM = 40 -SV_DISKALERT_PARMNUM = 41 -SV_NETIOALERT_PARMNUM = 42 -SV_MAXAUDITSZ_PARMNUM = 43 -SV_SRVHEURISTICS_PARMNUM = 431 -SV_SESSOPENS_PARMNUM = 501 -SV_SESSVCS_PARMNUM = 502 -SV_OPENSEARCH_PARMNUM = 503 -SV_SIZREQBUF_PARMNUM = 504 -SV_INITWORKITEMS_PARMNUM = 505 -SV_MAXWORKITEMS_PARMNUM = 506 -SV_RAWWORKITEMS_PARMNUM = 507 -SV_IRPSTACKSIZE_PARMNUM = 508 -SV_MAXRAWBUFLEN_PARMNUM = 509 -SV_SESSUSERS_PARMNUM = 510 -SV_SESSCONNS_PARMNUM = 511 -SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM = 512 -SV_MAXPAGEDMEMORYUSAGE_PARMNUM = 513 -SV_ENABLESOFTCOMPAT_PARMNUM = 514 -SV_ENABLEFORCEDLOGOFF_PARMNUM = 515 -SV_TIMESOURCE_PARMNUM = 516 -SV_ACCEPTDOWNLEVELAPIS_PARMNUM = 517 -SV_LMANNOUNCE_PARMNUM = 518 -SV_DOMAIN_PARMNUM = 519 -SV_MAXCOPYREADLEN_PARMNUM = 520 -SV_MAXCOPYWRITELEN_PARMNUM = 521 -SV_MINKEEPSEARCH_PARMNUM = 522 -SV_MAXKEEPSEARCH_PARMNUM = 523 -SV_MINKEEPCOMPLSEARCH_PARMNUM = 524 -SV_MAXKEEPCOMPLSEARCH_PARMNUM = 525 -SV_THREADCOUNTADD_PARMNUM = 526 -SV_NUMBLOCKTHREADS_PARMNUM = 527 -SV_SCAVTIMEOUT_PARMNUM = 528 -SV_MINRCVQUEUE_PARMNUM = 529 -SV_MINFREEWORKITEMS_PARMNUM = 530 -SV_XACTMEMSIZE_PARMNUM = 531 -SV_THREADPRIORITY_PARMNUM = 532 -SV_MAXMPXCT_PARMNUM = 533 -SV_OPLOCKBREAKWAIT_PARMNUM = 534 -SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM = 535 -SV_ENABLEOPLOCKS_PARMNUM = 536 -SV_ENABLEOPLOCKFORCECLOSE_PARMNUM = 537 -SV_ENABLEFCBOPENS_PARMNUM = 538 -SV_ENABLERAW_PARMNUM = 539 -SV_ENABLESHAREDNETDRIVES_PARMNUM = 540 -SV_MINFREECONNECTIONS_PARMNUM = 541 -SV_MAXFREECONNECTIONS_PARMNUM = 542 -SV_INITSESSTABLE_PARMNUM = 543 -SV_INITCONNTABLE_PARMNUM = 544 -SV_INITFILETABLE_PARMNUM = 545 -SV_INITSEARCHTABLE_PARMNUM = 546 -SV_ALERTSCHEDULE_PARMNUM = 547 -SV_ERRORTHRESHOLD_PARMNUM = 548 -SV_NETWORKERRORTHRESHOLD_PARMNUM = 549 -SV_DISKSPACETHRESHOLD_PARMNUM = 550 -SV_MAXLINKDELAY_PARMNUM = 552 -SV_MINLINKTHROUGHPUT_PARMNUM = 553 -SV_LINKINFOVALIDTIME_PARMNUM = 554 -SV_SCAVQOSINFOUPDATETIME_PARMNUM = 555 -SV_MAXWORKITEMIDLETIME_PARMNUM = 556 -SV_MAXRAWWORKITEMS_PARMNUM = 557 -SV_PRODUCTTYPE_PARMNUM = 560 -SV_SERVERSIZE_PARMNUM = 561 -SV_CONNECTIONLESSAUTODISC_PARMNUM = 562 -SV_SHARINGVIOLATIONRETRIES_PARMNUM = 563 -SV_SHARINGVIOLATIONDELAY_PARMNUM = 564 -SV_MAXGLOBALOPENSEARCH_PARMNUM = 565 -SV_REMOVEDUPLICATESEARCHES_PARMNUM = 566 -SV_LOCKVIOLATIONRETRIES_PARMNUM = 567 -SV_LOCKVIOLATIONOFFSET_PARMNUM = 568 -SV_LOCKVIOLATIONDELAY_PARMNUM = 569 -SV_MDLREADSWITCHOVER_PARMNUM = 570 -SV_CACHEDOPENLIMIT_PARMNUM = 571 -SV_CRITICALTHREADS_PARMNUM = 572 -SV_RESTRICTNULLSESSACCESS_PARMNUM = 573 -SV_ENABLEWFW311DIRECTIPX_PARMNUM = 574 -SV_OTHERQUEUEAFFINITY_PARMNUM = 575 -SV_QUEUESAMPLESECS_PARMNUM = 576 -SV_BALANCECOUNT_PARMNUM = 577 -SV_PREFERREDAFFINITY_PARMNUM = 578 -SV_MAXFREERFCBS_PARMNUM = 579 -SV_MAXFREEMFCBS_PARMNUM = 580 -SV_MAXFREELFCBS_PARMNUM = 581 -SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM = 582 -SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM = 583 -SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM = 584 -SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM = 585 -SV_MAXTHREADSPERQUEUE_PARMNUM = 586 -SV_CACHEDDIRECTORYLIMIT_PARMNUM = 587 -SV_MAXCOPYLENGTH_PARMNUM = 588 -SV_ENABLEBULKTRANSFER_PARMNUM = 589 -SV_ENABLECOMPRESSION_PARMNUM = 590 -SV_AUTOSHAREWKS_PARMNUM = 591 -SV_AUTOSHARESERVER_PARMNUM = 592 -SV_ENABLESECURITYSIGNATURE_PARMNUM = 593 -SV_REQUIRESECURITYSIGNATURE_PARMNUM = 594 -SV_MINCLIENTBUFFERSIZE_PARMNUM = 595 -SV_CONNECTIONNOSESSIONSTIMEOUT_PARMNUM = 596 -SVI1_NUM_ELEMENTS = 5 -SVI2_NUM_ELEMENTS = 40 -SVI3_NUM_ELEMENTS = 44 -SW_AUTOPROF_LOAD_MASK = 1 -SW_AUTOPROF_SAVE_MASK = 2 -SV_MAX_SRV_HEUR_LEN = 32 -SV_USERS_PER_LICENSE = 5 -SVTI2_REMAP_PIPE_NAMES = 2 - -# Generated by h2py from lmshare.h -SHARE_NETNAME_PARMNUM = 1 -SHARE_TYPE_PARMNUM = 3 -SHARE_REMARK_PARMNUM = 4 -SHARE_PERMISSIONS_PARMNUM = 5 -SHARE_MAX_USES_PARMNUM = 6 -SHARE_CURRENT_USES_PARMNUM = 7 -SHARE_PATH_PARMNUM = 8 -SHARE_PASSWD_PARMNUM = 9 -SHARE_FILE_SD_PARMNUM = 501 -SHI1_NUM_ELEMENTS = 4 -SHI2_NUM_ELEMENTS = 10 -STYPE_DISKTREE = 0 -STYPE_PRINTQ = 1 -STYPE_DEVICE = 2 -STYPE_IPC = 3 -STYPE_SPECIAL = -2147483648 -SHI1005_FLAGS_DFS = 1 -SHI1005_FLAGS_DFS_ROOT = 2 -COW_PERMACHINE = 4 -COW_PERUSER = 8 -CSC_CACHEABLE = 16 -CSC_NOFLOWOPS = 32 -CSC_AUTO_INWARD = 64 -CSC_AUTO_OUTWARD = 128 -SHI1005_VALID_FLAGS_SET = ( CSC_CACHEABLE | \ - CSC_NOFLOWOPS | \ - CSC_AUTO_INWARD | \ - CSC_AUTO_OUTWARD| \ - COW_PERMACHINE | \ - COW_PERUSER ) -SHI1007_VALID_FLAGS_SET = SHI1005_VALID_FLAGS_SET -SESS_GUEST = 1 -SESS_NOENCRYPTION = 2 -SESI1_NUM_ELEMENTS = 8 -SESI2_NUM_ELEMENTS = 9 -PERM_FILE_READ = 1 -PERM_FILE_WRITE = 2 -PERM_FILE_CREATE = 4 - -# Generated by h2py from d:\mssdk\include\winnetwk.h -WNNC_NET_MSNET = 65536 -WNNC_NET_LANMAN = 131072 -WNNC_NET_NETWARE = 196608 -WNNC_NET_VINES = 262144 -WNNC_NET_10NET = 327680 -WNNC_NET_LOCUS = 393216 -WNNC_NET_SUN_PC_NFS = 458752 -WNNC_NET_LANSTEP = 524288 -WNNC_NET_9TILES = 589824 -WNNC_NET_LANTASTIC = 655360 -WNNC_NET_AS400 = 720896 -WNNC_NET_FTP_NFS = 786432 -WNNC_NET_PATHWORKS = 851968 -WNNC_NET_LIFENET = 917504 -WNNC_NET_POWERLAN = 983040 -WNNC_NET_BWNFS = 1048576 -WNNC_NET_COGENT = 1114112 -WNNC_NET_FARALLON = 1179648 -WNNC_NET_APPLETALK = 1245184 -WNNC_NET_INTERGRAPH = 1310720 -WNNC_NET_SYMFONET = 1376256 -WNNC_NET_CLEARCASE = 1441792 -WNNC_NET_FRONTIER = 1507328 -WNNC_NET_BMC = 1572864 -WNNC_NET_DCE = 1638400 -WNNC_NET_DECORB = 2097152 -WNNC_NET_PROTSTOR = 2162688 -WNNC_NET_FJ_REDIR = 2228224 -WNNC_NET_DISTINCT = 2293760 -WNNC_NET_TWINS = 2359296 -WNNC_NET_RDR2SAMPLE = 2424832 -RESOURCE_CONNECTED = 1 -RESOURCE_GLOBALNET = 2 -RESOURCE_REMEMBERED = 3 -RESOURCE_RECENT = 4 -RESOURCE_CONTEXT = 5 -RESOURCETYPE_ANY = 0 -RESOURCETYPE_DISK = 1 -RESOURCETYPE_PRINT = 2 -RESOURCETYPE_RESERVED = 8 -RESOURCETYPE_UNKNOWN = -1 -RESOURCEUSAGE_CONNECTABLE = 1 -RESOURCEUSAGE_CONTAINER = 2 -RESOURCEUSAGE_NOLOCALDEVICE = 4 -RESOURCEUSAGE_SIBLING = 8 -RESOURCEUSAGE_ATTACHED = 16 -RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED) -RESOURCEUSAGE_RESERVED = -2147483648 -RESOURCEDISPLAYTYPE_GENERIC = 0 -RESOURCEDISPLAYTYPE_DOMAIN = 1 -RESOURCEDISPLAYTYPE_SERVER = 2 -RESOURCEDISPLAYTYPE_SHARE = 3 -RESOURCEDISPLAYTYPE_FILE = 4 -RESOURCEDISPLAYTYPE_GROUP = 5 -RESOURCEDISPLAYTYPE_NETWORK = 6 -RESOURCEDISPLAYTYPE_ROOT = 7 -RESOURCEDISPLAYTYPE_SHAREADMIN = 8 -RESOURCEDISPLAYTYPE_DIRECTORY = 9 -RESOURCEDISPLAYTYPE_TREE = 10 -RESOURCEDISPLAYTYPE_NDSCONTAINER = 11 -NETPROPERTY_PERSISTENT = 1 -CONNECT_UPDATE_PROFILE = 1 -CONNECT_UPDATE_RECENT = 2 -CONNECT_TEMPORARY = 4 -CONNECT_INTERACTIVE = 8 -CONNECT_PROMPT = 16 -CONNECT_NEED_DRIVE = 32 -CONNECT_REFCOUNT = 64 -CONNECT_REDIRECT = 128 -CONNECT_LOCALDRIVE = 256 -CONNECT_CURRENT_MEDIA = 512 -CONNECT_DEFERRED = 1024 -CONNECT_RESERVED = -16777216 -CONNDLG_RO_PATH = 1 -CONNDLG_CONN_POINT = 2 -CONNDLG_USE_MRU = 4 -CONNDLG_HIDE_BOX = 8 -CONNDLG_PERSIST = 16 -CONNDLG_NOT_PERSIST = 32 -DISC_UPDATE_PROFILE = 1 -DISC_NO_FORCE = 64 -UNIVERSAL_NAME_INFO_LEVEL = 1 -REMOTE_NAME_INFO_LEVEL = 2 -WNFMT_MULTILINE = 1 -WNFMT_ABBREVIATED = 2 -WNFMT_INENUM = 16 -WNFMT_CONNECTION = 32 -NETINFO_DLL16 = 1 -NETINFO_DISKRED = 4 -NETINFO_PRINTERRED = 8 -RP_LOGON = 1 -RP_INIFILE = 2 -PP_DISPLAYERRORS = 1 -WNCON_FORNETCARD = 1 -WNCON_NOTROUTED = 2 -WNCON_SLOWLINK = 4 -WNCON_DYNAMIC = 8 - -## NETSETUP_NAME_TYPE, used with NetValidateName -NetSetupUnknown = 0 -NetSetupMachine = 1 -NetSetupWorkgroup = 2 -NetSetupDomain = 3 -NetSetupNonExistentDomain = 4 -NetSetupDnsMachine = 5 - -## NETSETUP_JOIN_STATUS, use with NetGetJoinInformation -NetSetupUnknownStatus = 0 -NetSetupUnjoined = 1 -NetSetupWorkgroupName = 2 -NetSetupDomainName = 3 - -NetValidateAuthentication = 1 -NetValidatePasswordChange = 2 -NetValidatePasswordReset = 3 diff --git a/typings/win32helper/winioctlcon.pyi b/typings/win32helper/winioctlcon.pyi deleted file mode 100644 index 673ea4e5..00000000 --- a/typings/win32helper/winioctlcon.pyi +++ /dev/null @@ -1,711 +0,0 @@ -## flags, enums, guids used with DeviceIoControl from WinIoCtl.h - -import pywintypes -from ntsecuritycon import FILE_READ_DATA,FILE_WRITE_DATA -def CTL_CODE(DeviceType, Function, Method, Access): - return (DeviceType << 16) | (Access << 14) | (Function << 2) | Method - -def DEVICE_TYPE_FROM_CTL_CODE(ctrlCode): - return (ctrlCode & 0xffff0000) >> 16 - -FILE_DEVICE_BEEP = 0x00000001 -FILE_DEVICE_CD_ROM = 0x00000002 -FILE_DEVICE_CD_ROM_FILE_SYSTEM = 0x00000003 -FILE_DEVICE_CONTROLLER = 0x00000004 -FILE_DEVICE_DATALINK = 0x00000005 -FILE_DEVICE_DFS = 0x00000006 -FILE_DEVICE_DISK = 0x00000007 -FILE_DEVICE_DISK_FILE_SYSTEM = 0x00000008 -FILE_DEVICE_FILE_SYSTEM = 0x00000009 -FILE_DEVICE_INPORT_PORT = 0x0000000a -FILE_DEVICE_KEYBOARD = 0x0000000b -FILE_DEVICE_MAILSLOT = 0x0000000c -FILE_DEVICE_MIDI_IN = 0x0000000d -FILE_DEVICE_MIDI_OUT = 0x0000000e -FILE_DEVICE_MOUSE = 0x0000000f -FILE_DEVICE_MULTI_UNC_PROVIDER = 0x00000010 -FILE_DEVICE_NAMED_PIPE = 0x00000011 -FILE_DEVICE_NETWORK = 0x00000012 -FILE_DEVICE_NETWORK_BROWSER = 0x00000013 -FILE_DEVICE_NETWORK_FILE_SYSTEM = 0x00000014 -FILE_DEVICE_NULL = 0x00000015 -FILE_DEVICE_PARALLEL_PORT = 0x00000016 -FILE_DEVICE_PHYSICAL_NETCARD = 0x00000017 -FILE_DEVICE_PRINTER = 0x00000018 -FILE_DEVICE_SCANNER = 0x00000019 -FILE_DEVICE_SERIAL_MOUSE_PORT = 0x0000001a -FILE_DEVICE_SERIAL_PORT = 0x0000001b -FILE_DEVICE_SCREEN = 0x0000001c -FILE_DEVICE_SOUND = 0x0000001d -FILE_DEVICE_STREAMS = 0x0000001e -FILE_DEVICE_TAPE = 0x0000001f -FILE_DEVICE_TAPE_FILE_SYSTEM = 0x00000020 -FILE_DEVICE_TRANSPORT = 0x00000021 -FILE_DEVICE_UNKNOWN = 0x00000022 -FILE_DEVICE_VIDEO = 0x00000023 -FILE_DEVICE_VIRTUAL_DISK = 0x00000024 -FILE_DEVICE_WAVE_IN = 0x00000025 -FILE_DEVICE_WAVE_OUT = 0x00000026 -FILE_DEVICE_8042_PORT = 0x00000027 -FILE_DEVICE_NETWORK_REDIRECTOR = 0x00000028 -FILE_DEVICE_BATTERY = 0x00000029 -FILE_DEVICE_BUS_EXTENDER = 0x0000002a -FILE_DEVICE_MODEM = 0x0000002b -FILE_DEVICE_VDM = 0x0000002c -FILE_DEVICE_MASS_STORAGE = 0x0000002d -FILE_DEVICE_SMB = 0x0000002e -FILE_DEVICE_KS = 0x0000002f -FILE_DEVICE_CHANGER = 0x00000030 -FILE_DEVICE_SMARTCARD = 0x00000031 -FILE_DEVICE_ACPI = 0x00000032 -FILE_DEVICE_DVD = 0x00000033 -FILE_DEVICE_FULLSCREEN_VIDEO = 0x00000034 -FILE_DEVICE_DFS_FILE_SYSTEM = 0x00000035 -FILE_DEVICE_DFS_VOLUME = 0x00000036 -FILE_DEVICE_SERENUM = 0x00000037 -FILE_DEVICE_TERMSRV = 0x00000038 -FILE_DEVICE_KSEC = 0x00000039 -FILE_DEVICE_FIPS = 0x0000003A -FILE_DEVICE_INFINIBAND = 0x0000003B - -METHOD_BUFFERED = 0 -METHOD_IN_DIRECT = 1 -METHOD_OUT_DIRECT = 2 -METHOD_NEITHER = 3 -METHOD_DIRECT_TO_HARDWARE = METHOD_IN_DIRECT -METHOD_DIRECT_FROM_HARDWARE = METHOD_OUT_DIRECT -FILE_ANY_ACCESS = 0 -FILE_SPECIAL_ACCESS = FILE_ANY_ACCESS -FILE_READ_ACCESS = 0x0001 -FILE_WRITE_ACCESS = 0x0002 -IOCTL_STORAGE_BASE = FILE_DEVICE_MASS_STORAGE -RECOVERED_WRITES_VALID = 0x00000001 -UNRECOVERED_WRITES_VALID = 0x00000002 -RECOVERED_READS_VALID = 0x00000004 -UNRECOVERED_READS_VALID = 0x00000008 -WRITE_COMPRESSION_INFO_VALID = 0x00000010 -READ_COMPRESSION_INFO_VALID = 0x00000020 -TAPE_RETURN_STATISTICS = 0 -TAPE_RETURN_ENV_INFO = 1 -TAPE_RESET_STATISTICS = 2 -MEDIA_ERASEABLE = 0x00000001 -MEDIA_WRITE_ONCE = 0x00000002 -MEDIA_READ_ONLY = 0x00000004 -MEDIA_READ_WRITE = 0x00000008 -MEDIA_WRITE_PROTECTED = 0x00000100 -MEDIA_CURRENTLY_MOUNTED = 0x80000000 -IOCTL_DISK_BASE = FILE_DEVICE_DISK -PARTITION_ENTRY_UNUSED = 0x00 -PARTITION_FAT_12 = 0x01 -PARTITION_XENIX_1 = 0x02 -PARTITION_XENIX_2 = 0x03 -PARTITION_FAT_16 = 0x04 -PARTITION_EXTENDED = 0x05 -PARTITION_HUGE = 0x06 -PARTITION_IFS = 0x07 -PARTITION_OS2BOOTMGR = 0x0A -PARTITION_FAT32 = 0x0B -PARTITION_FAT32_XINT13 = 0x0C -PARTITION_XINT13 = 0x0E -PARTITION_XINT13_EXTENDED = 0x0F -PARTITION_PREP = 0x41 -PARTITION_LDM = 0x42 -PARTITION_UNIX = 0x63 -VALID_NTFT = 0xC0 -PARTITION_NTFT = 0x80 - -GPT_ATTRIBUTE_PLATFORM_REQUIRED = 0x0000000000000001 -GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER = 0x8000000000000000 -GPT_BASIC_DATA_ATTRIBUTE_HIDDEN = 0x4000000000000000 -GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY = 0x2000000000000000 -GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY = 0x1000000000000000 - -HIST_NO_OF_BUCKETS = 24 -DISK_LOGGING_START = 0 -DISK_LOGGING_STOP = 1 -DISK_LOGGING_DUMP = 2 -DISK_BINNING = 3 -CAP_ATA_ID_CMD = 1 -CAP_ATAPI_ID_CMD = 2 -CAP_SMART_CMD = 4 -ATAPI_ID_CMD = 0xA1 -ID_CMD = 0xEC -SMART_CMD = 0xB0 -SMART_CYL_LOW = 0x4F -SMART_CYL_HI = 0xC2 -SMART_NO_ERROR = 0 -SMART_IDE_ERROR = 1 -SMART_INVALID_FLAG = 2 -SMART_INVALID_COMMAND = 3 -SMART_INVALID_BUFFER = 4 -SMART_INVALID_DRIVE = 5 -SMART_INVALID_IOCTL = 6 -SMART_ERROR_NO_MEM = 7 -SMART_INVALID_REGISTER = 8 -SMART_NOT_SUPPORTED = 9 -SMART_NO_IDE_DEVICE = 10 -SMART_OFFLINE_ROUTINE_OFFLINE = 0 -SMART_SHORT_SELFTEST_OFFLINE = 1 -SMART_EXTENDED_SELFTEST_OFFLINE = 2 -SMART_ABORT_OFFLINE_SELFTEST = 127 -SMART_SHORT_SELFTEST_CAPTIVE = 129 -SMART_EXTENDED_SELFTEST_CAPTIVE = 130 -READ_ATTRIBUTE_BUFFER_SIZE = 512 -IDENTIFY_BUFFER_SIZE = 512 -READ_THRESHOLD_BUFFER_SIZE = 512 -SMART_LOG_SECTOR_SIZE = 512 -READ_ATTRIBUTES = 0xD0 -READ_THRESHOLDS = 0xD1 -ENABLE_DISABLE_AUTOSAVE = 0xD2 -SAVE_ATTRIBUTE_VALUES = 0xD3 -EXECUTE_OFFLINE_DIAGS = 0xD4 -SMART_READ_LOG = 0xD5 -SMART_WRITE_LOG = 0xd6 -ENABLE_SMART = 0xD8 -DISABLE_SMART = 0xD9 -RETURN_SMART_STATUS = 0xDA -ENABLE_DISABLE_AUTO_OFFLINE = 0xDB -IOCTL_CHANGER_BASE = FILE_DEVICE_CHANGER -MAX_VOLUME_ID_SIZE = 36 -MAX_VOLUME_TEMPLATE_SIZE = 40 -VENDOR_ID_LENGTH = 8 -PRODUCT_ID_LENGTH = 16 -REVISION_LENGTH = 4 -SERIAL_NUMBER_LENGTH = 32 -CHANGER_BAR_CODE_SCANNER_INSTALLED = 0x00000001 -CHANGER_INIT_ELEM_STAT_WITH_RANGE = 0x00000002 -CHANGER_CLOSE_IEPORT = 0x00000004 -CHANGER_OPEN_IEPORT = 0x00000008 -CHANGER_STATUS_NON_VOLATILE = 0x00000010 -CHANGER_EXCHANGE_MEDIA = 0x00000020 -CHANGER_CLEANER_SLOT = 0x00000040 -CHANGER_LOCK_UNLOCK = 0x00000080 -CHANGER_CARTRIDGE_MAGAZINE = 0x00000100 -CHANGER_MEDIUM_FLIP = 0x00000200 -CHANGER_POSITION_TO_ELEMENT = 0x00000400 -CHANGER_REPORT_IEPORT_STATE = 0x00000800 -CHANGER_STORAGE_DRIVE = 0x00001000 -CHANGER_STORAGE_IEPORT = 0x00002000 -CHANGER_STORAGE_SLOT = 0x00004000 -CHANGER_STORAGE_TRANSPORT = 0x00008000 -CHANGER_DRIVE_CLEANING_REQUIRED = 0x00010000 -CHANGER_PREDISMOUNT_EJECT_REQUIRED = 0x00020000 -CHANGER_CLEANER_ACCESS_NOT_VALID = 0x00040000 -CHANGER_PREMOUNT_EJECT_REQUIRED = 0x00080000 -CHANGER_VOLUME_IDENTIFICATION = 0x00100000 -CHANGER_VOLUME_SEARCH = 0x00200000 -CHANGER_VOLUME_ASSERT = 0x00400000 -CHANGER_VOLUME_REPLACE = 0x00800000 -CHANGER_VOLUME_UNDEFINE = 0x01000000 -CHANGER_SERIAL_NUMBER_VALID = 0x04000000 -CHANGER_DEVICE_REINITIALIZE_CAPABLE = 0x08000000 -CHANGER_KEYPAD_ENABLE_DISABLE = 0x10000000 -CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS = 0x20000000 - -CHANGER_RESERVED_BIT = 0x80000000 -CHANGER_PREDISMOUNT_ALIGN_TO_SLOT = 0x80000001 -CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE = 0x80000002 -CHANGER_CLEANER_AUTODISMOUNT = 0x80000004 -CHANGER_TRUE_EXCHANGE_CAPABLE = 0x80000008 -CHANGER_SLOTS_USE_TRAYS = 0x80000010 -CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR = 0x80000020 -CHANGER_CLEANER_OPS_NOT_SUPPORTED = 0x80000040 -CHANGER_IEPORT_USER_CONTROL_OPEN = 0x80000080 -CHANGER_IEPORT_USER_CONTROL_CLOSE = 0x80000100 -CHANGER_MOVE_EXTENDS_IEPORT = 0x80000200 -CHANGER_MOVE_RETRACTS_IEPORT = 0x80000400 - - -CHANGER_TO_TRANSPORT = 0x01 -CHANGER_TO_SLOT = 0x02 -CHANGER_TO_IEPORT = 0x04 -CHANGER_TO_DRIVE = 0x08 -LOCK_UNLOCK_IEPORT = 0x01 -LOCK_UNLOCK_DOOR = 0x02 -LOCK_UNLOCK_KEYPAD = 0x04 -LOCK_ELEMENT = 0 -UNLOCK_ELEMENT = 1 -EXTEND_IEPORT = 2 -RETRACT_IEPORT = 3 -ELEMENT_STATUS_FULL = 0x00000001 -ELEMENT_STATUS_IMPEXP = 0x00000002 -ELEMENT_STATUS_EXCEPT = 0x00000004 -ELEMENT_STATUS_ACCESS = 0x00000008 -ELEMENT_STATUS_EXENAB = 0x00000010 -ELEMENT_STATUS_INENAB = 0x00000020 -ELEMENT_STATUS_PRODUCT_DATA = 0x00000040 -ELEMENT_STATUS_LUN_VALID = 0x00001000 -ELEMENT_STATUS_ID_VALID = 0x00002000 -ELEMENT_STATUS_NOT_BUS = 0x00008000 -ELEMENT_STATUS_INVERT = 0x00400000 -ELEMENT_STATUS_SVALID = 0x00800000 -ELEMENT_STATUS_PVOLTAG = 0x10000000 -ELEMENT_STATUS_AVOLTAG = 0x20000000 -ERROR_LABEL_UNREADABLE = 0x00000001 -ERROR_LABEL_QUESTIONABLE = 0x00000002 -ERROR_SLOT_NOT_PRESENT = 0x00000004 -ERROR_DRIVE_NOT_INSTALLED = 0x00000008 -ERROR_TRAY_MALFUNCTION = 0x00000010 -ERROR_INIT_STATUS_NEEDED = 0x00000011 -ERROR_UNHANDLED_ERROR = 0xFFFFFFFF -SEARCH_ALL = 0x0 -SEARCH_PRIMARY = 0x1 -SEARCH_ALTERNATE = 0x2 -SEARCH_ALL_NO_SEQ = 0x4 -SEARCH_PRI_NO_SEQ = 0x5 -SEARCH_ALT_NO_SEQ = 0x6 -ASSERT_PRIMARY = 0x8 -ASSERT_ALTERNATE = 0x9 -REPLACE_PRIMARY = 0xA -REPLACE_ALTERNATE = 0xB -UNDEFINE_PRIMARY = 0xC -UNDEFINE_ALTERNATE = 0xD -USN_PAGE_SIZE = 0x1000 -USN_REASON_DATA_OVERWRITE = 0x00000001 -USN_REASON_DATA_EXTEND = 0x00000002 -USN_REASON_DATA_TRUNCATION = 0x00000004 -USN_REASON_NAMED_DATA_OVERWRITE = 0x00000010 -USN_REASON_NAMED_DATA_EXTEND = 0x00000020 -USN_REASON_NAMED_DATA_TRUNCATION = 0x00000040 -USN_REASON_FILE_CREATE = 0x00000100 -USN_REASON_FILE_DELETE = 0x00000200 -USN_REASON_EA_CHANGE = 0x00000400 -USN_REASON_SECURITY_CHANGE = 0x00000800 -USN_REASON_RENAME_OLD_NAME = 0x00001000 -USN_REASON_RENAME_NEW_NAME = 0x00002000 -USN_REASON_INDEXABLE_CHANGE = 0x00004000 -USN_REASON_BASIC_INFO_CHANGE = 0x00008000 -USN_REASON_HARD_LINK_CHANGE = 0x00010000 -USN_REASON_COMPRESSION_CHANGE = 0x00020000 -USN_REASON_ENCRYPTION_CHANGE = 0x00040000 -USN_REASON_OBJECT_ID_CHANGE = 0x00080000 -USN_REASON_REPARSE_POINT_CHANGE = 0x00100000 -USN_REASON_STREAM_CHANGE = 0x00200000 -USN_REASON_TRANSACTED_CHANGE = 0x00400000 -USN_REASON_CLOSE = 0x80000000 -USN_DELETE_FLAG_DELETE = 0x00000001 -USN_DELETE_FLAG_NOTIFY = 0x00000002 -USN_DELETE_VALID_FLAGS = 0x00000003 -USN_SOURCE_DATA_MANAGEMENT = 0x00000001 -USN_SOURCE_AUXILIARY_DATA = 0x00000002 -USN_SOURCE_REPLICATION_MANAGEMENT = 0x00000004 - -MARK_HANDLE_PROTECT_CLUSTERS = 1 -MARK_HANDLE_TXF_SYSTEM_LOG = 4 -MARK_HANDLE_NOT_TXF_SYSTEM_LOG = 8 - -VOLUME_IS_DIRTY = 0x00000001 -VOLUME_UPGRADE_SCHEDULED = 0x00000002 -VOLUME_SESSION_OPEN = 4 - -FILE_PREFETCH_TYPE_FOR_CREATE = 1 -FILE_PREFETCH_TYPE_FOR_DIRENUM = 2 -FILE_PREFETCH_TYPE_FOR_CREATE_EX = 3 -FILE_PREFETCH_TYPE_FOR_DIRENUM_EX = 4 -FILE_PREFETCH_TYPE_MAX = 4 - -FILESYSTEM_STATISTICS_TYPE_NTFS = 1 -FILESYSTEM_STATISTICS_TYPE_FAT = 2 -FILE_SET_ENCRYPTION = 0x00000001 -FILE_CLEAR_ENCRYPTION = 0x00000002 -STREAM_SET_ENCRYPTION = 0x00000003 -STREAM_CLEAR_ENCRYPTION = 0x00000004 -MAXIMUM_ENCRYPTION_VALUE = 0x00000004 -ENCRYPTION_FORMAT_DEFAULT = 0x01 -COMPRESSION_FORMAT_SPARSE = 0x4000 -COPYFILE_SIS_LINK = 0x0001 -COPYFILE_SIS_REPLACE = 0x0002 -COPYFILE_SIS_FLAGS = 0x0003 - -WMI_DISK_GEOMETRY_GUID = pywintypes.IID("{25007F51-57C2-11D1-A528-00A0C9062910}") -GUID_DEVINTERFACE_CDROM = pywintypes.IID("{53F56308-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_DEVINTERFACE_FLOPPY = pywintypes.IID("{53F56311-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR = pywintypes.IID("{4D36E978-E325-11CE-BFC1-08002BE10318}") -GUID_DEVINTERFACE_COMPORT = pywintypes.IID("{86E0D1E0-8089-11D0-9CE4-08003E301F73}") -GUID_DEVINTERFACE_DISK = pywintypes.IID("{53F56307-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_DEVINTERFACE_STORAGEPORT = pywintypes.IID("{2ACCFE60-C130-11D2-B082-00A0C91EFB8B}") -GUID_DEVINTERFACE_CDCHANGER = pywintypes.IID("{53F56312-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_DEVINTERFACE_PARTITION = pywintypes.IID("{53F5630A-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_DEVINTERFACE_VOLUME = pywintypes.IID("{53F5630D-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_DEVINTERFACE_WRITEONCEDISK = pywintypes.IID("{53F5630C-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_DEVINTERFACE_TAPE = pywintypes.IID("{53F5630B-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_DEVINTERFACE_MEDIUMCHANGER = pywintypes.IID("{53F56310-B6BF-11D0-94F2-00A0C91EFB8B}") -GUID_SERENUM_BUS_ENUMERATOR = GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR -GUID_CLASS_COMPORT = GUID_DEVINTERFACE_COMPORT - -DiskClassGuid = GUID_DEVINTERFACE_DISK -CdRomClassGuid = GUID_DEVINTERFACE_CDROM -PartitionClassGuid = GUID_DEVINTERFACE_PARTITION -TapeClassGuid = GUID_DEVINTERFACE_TAPE -WriteOnceDiskClassGuid = GUID_DEVINTERFACE_WRITEONCEDISK -VolumeClassGuid = GUID_DEVINTERFACE_VOLUME -MediumChangerClassGuid = GUID_DEVINTERFACE_MEDIUMCHANGER -FloppyClassGuid = GUID_DEVINTERFACE_FLOPPY -CdChangerClassGuid = GUID_DEVINTERFACE_CDCHANGER -StoragePortClassGuid = GUID_DEVINTERFACE_STORAGEPORT - - -IOCTL_STORAGE_CHECK_VERIFY = CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_CHECK_VERIFY2 = CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_MEDIA_REMOVAL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_EJECT_MEDIA = CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_LOAD_MEDIA = CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_LOAD_MEDIA2 = CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_RESERVE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_RELEASE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_FIND_NEW_DEVICES = CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_EJECTION_CONTROL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_MCN_CONTROL = CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_GET_MEDIA_TYPES = CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_GET_MEDIA_TYPES_EX = CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER = CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_GET_HOTPLUG_INFO = CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_SET_HOTPLUG_INFO = CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_STORAGE_RESET_BUS = CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_RESET_DEVICE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_BREAK_RESERVATION = CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_STORAGE_GET_DEVICE_NUMBER = CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_STORAGE_PREDICT_FAILURE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_GET_DRIVE_GEOMETRY = CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_GET_PARTITION_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_SET_PARTITION_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_GET_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_SET_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_VERIFY = CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_FORMAT_TRACKS = CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_REASSIGN_BLOCKS = CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_PERFORMANCE = CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_IS_WRITABLE = CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_LOGGING = CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_FORMAT_TRACKS_EX = CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_HISTOGRAM_STRUCTURE = CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_HISTOGRAM_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_HISTOGRAM_RESET = CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_REQUEST_STRUCTURE = CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_REQUEST_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_PERFORMANCE_OFF = CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_CONTROLLER_NUMBER = CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS) -SMART_GET_VERSION = CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS) -SMART_SEND_DRIVE_COMMAND = CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -SMART_RCV_DRIVE_DATA = CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_GET_PARTITION_INFO_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_SET_PARTITION_INFO_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_GET_DRIVE_LAYOUT_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_SET_DRIVE_LAYOUT_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_CREATE_DISK = CTL_CODE(IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_GET_LENGTH_INFO = CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_GET_DRIVE_GEOMETRY_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_REASSIGN_BLOCKS_EX = CTL_CODE(IOCTL_DISK_BASE, 0x0029, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) - -IOCTL_DISK_UPDATE_DRIVE_SIZE = CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_GROW_PARTITION = CTL_CODE(IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_GET_CACHE_INFORMATION = CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_SET_CACHE_INFORMATION = CTL_CODE(IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) - -OBSOLETE_IOCTL_STORAGE_RESET_BUS = CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -OBSOLETE_IOCTL_STORAGE_RESET_DEVICE = CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -## the original define no longer exists in winioctl.h -OBSOLETE_DISK_GET_WRITE_CACHE_STATE = CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_GET_WRITE_CACHE_STATE=OBSOLETE_DISK_GET_WRITE_CACHE_STATE - - -IOCTL_DISK_DELETE_DRIVE_LAYOUT = CTL_CODE(IOCTL_DISK_BASE, 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_UPDATE_PROPERTIES = CTL_CODE(IOCTL_DISK_BASE, 0x0050, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_FORMAT_DRIVE = CTL_CODE(IOCTL_DISK_BASE, 0x00f3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_DISK_SENSE_DEVICE = CTL_CODE(IOCTL_DISK_BASE, 0x00f8, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_DISK_CHECK_VERIFY = CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_MEDIA_REMOVAL = CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_EJECT_MEDIA = CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_LOAD_MEDIA = CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_RESERVE = CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_RELEASE = CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_FIND_NEW_DEVICES = CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_DISK_GET_MEDIA_TYPES = CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) - -DISK_HISTOGRAM_SIZE = 72 -HISTOGRAM_BUCKET_SIZE = 8 - -IOCTL_CHANGER_GET_PARAMETERS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_CHANGER_GET_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_CHANGER_GET_PRODUCT_DATA = CTL_CODE(IOCTL_CHANGER_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_CHANGER_SET_ACCESS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_CHANGER_GET_ELEMENT_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS = CTL_CODE(IOCTL_CHANGER_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_CHANGER_SET_POSITION = CTL_CODE(IOCTL_CHANGER_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_CHANGER_EXCHANGE_MEDIUM = CTL_CODE(IOCTL_CHANGER_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_CHANGER_MOVE_MEDIUM = CTL_CODE(IOCTL_CHANGER_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_CHANGER_REINITIALIZE_TRANSPORT = CTL_CODE(IOCTL_CHANGER_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS) -IOCTL_CHANGER_QUERY_VOLUME_TAGS = CTL_CODE(IOCTL_CHANGER_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_SERIAL_LSRMST_INSERT = CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS) -IOCTL_SERENUM_EXPOSE_HARDWARE = CTL_CODE(FILE_DEVICE_SERENUM,128,METHOD_BUFFERED,FILE_ANY_ACCESS) -IOCTL_SERENUM_REMOVE_HARDWARE = CTL_CODE(FILE_DEVICE_SERENUM,129,METHOD_BUFFERED,FILE_ANY_ACCESS) -IOCTL_SERENUM_PORT_DESC = CTL_CODE(FILE_DEVICE_SERENUM,130,METHOD_BUFFERED,FILE_ANY_ACCESS) -IOCTL_SERENUM_GET_PORT_NAME = CTL_CODE(FILE_DEVICE_SERENUM,131,METHOD_BUFFERED,FILE_ANY_ACCESS) - -## ??? can't find where FILE_DEVICE_AVIO is defined ??? -## IOCTL_AVIO_ALLOCATE_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 1, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -## IOCTL_AVIO_FREE_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 2, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -## IOCTL_AVIO_MODIFY_STREAM = CTL_CODE(FILE_DEVICE_AVIO, 3, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) - -SERIAL_LSRMST_ESCAPE = 0x00 -SERIAL_LSRMST_LSR_DATA = 0x01 -SERIAL_LSRMST_LSR_NODATA = 0x02 -SERIAL_LSRMST_MST = 0x03 -SERIAL_IOC_FCR_FIFO_ENABLE = 0x00000001 -SERIAL_IOC_FCR_RCVR_RESET = 0x00000002 -SERIAL_IOC_FCR_XMIT_RESET = 0x00000004 -SERIAL_IOC_FCR_DMA_MODE = 0x00000008 -SERIAL_IOC_FCR_RES1 = 0x00000010 -SERIAL_IOC_FCR_RES2 = 0x00000020 -SERIAL_IOC_FCR_RCVR_TRIGGER_LSB = 0x00000040 -SERIAL_IOC_FCR_RCVR_TRIGGER_MSB = 0x00000080 -SERIAL_IOC_MCR_DTR = 0x00000001 -SERIAL_IOC_MCR_RTS = 0x00000002 -SERIAL_IOC_MCR_OUT1 = 0x00000004 -SERIAL_IOC_MCR_OUT2 = 0x00000008 -SERIAL_IOC_MCR_LOOP = 0x00000010 -FSCTL_REQUEST_OPLOCK_LEVEL_1 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_REQUEST_OPLOCK_LEVEL_2 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_REQUEST_BATCH_OPLOCK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_OPLOCK_BREAK_ACKNOWLEDGE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_OPBATCH_ACK_CLOSE_PENDING = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_OPLOCK_BREAK_NOTIFY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_LOCK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_UNLOCK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_DISMOUNT_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_IS_VOLUME_MOUNTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_IS_PATHNAME_VALID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_MARK_VOLUME_DIRTY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_QUERY_RETRIEVAL_POINTERS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_GET_COMPRESSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_SET_COMPRESSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) -FSCTL_MARK_AS_SYSTEM_HIVE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_OPLOCK_BREAK_ACK_NO_2 = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_INVALIDATE_VOLUMES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_QUERY_FAT_BPB = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_REQUEST_FILTER_OPLOCK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_FILESYSTEM_GET_STATISTICS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_GET_NTFS_VOLUME_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_GET_NTFS_FILE_RECORD = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_GET_VOLUME_BITMAP = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_GET_RETRIEVAL_POINTERS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_MOVE_FILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_IS_VOLUME_DIRTY = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_ALLOW_EXTENDED_DASD_IO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_FIND_FILES_BY_SID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_SET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_GET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_DELETE_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_SET_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_GET_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_DELETE_REPARSE_POINT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_ENUM_USN_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_SECURITY_ID_CHECK = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA) -FSCTL_READ_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_SET_OBJECT_ID_EXTENDED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_CREATE_OR_GET_OBJECT_ID = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_SET_SPARSE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_SET_ZERO_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_QUERY_ALLOCATED_RANGES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA) -FSCTL_SET_ENCRYPTION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_ENCRYPTION_FSCTL_IO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_WRITE_RAW_ENCRYPTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS) -FSCTL_READ_RAW_ENCRYPTED = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS) -FSCTL_CREATE_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_READ_FILE_USN_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_WRITE_USN_CLOSE_RECORD = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_EXTEND_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_QUERY_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_DELETE_USN_JOURNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_MARK_HANDLE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_SIS_COPYFILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_SIS_LINK_FILES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) -FSCTL_HSM_MSG = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA) -FSCTL_HSM_DATA = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA) -FSCTL_RECALL_FILE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_READ_FROM_PLEX = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA) -FSCTL_FILE_PREFETCH = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_MAKE_MEDIA_COMPATIBLE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_SET_DEFECT_MANAGEMENT = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_QUERY_SPARING_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_QUERY_ON_DISK_VOLUME_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_SET_VOLUME_COMPRESSION_STATE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_TXFS_MODIFY_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_TXFS_QUERY_RM_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA) -FSCTL_TXFS_ROLLFORWARD_REDO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_TXFS_ROLLFORWARD_UNDO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_TXFS_START_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_TXFS_SHUTDOWN_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_TXFS_READ_BACKUP_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA) -FSCTL_TXFS_WRITE_BACKUP_INFORMATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_TXFS_CREATE_SECONDARY_RM = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_TXFS_GET_METADATA_INFO = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA) -FSCTL_TXFS_GET_TRANSACTED_VERSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA) -FSCTL_TXFS_CREATE_MINIVERSION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA) -FSCTL_TXFS_TRANSACTION_ACTIVE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA) -FSCTL_SET_ZERO_ON_DEALLOCATION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_SET_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_GET_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_WAIT_FOR_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_INITIATE_REPAIR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_CSC_INTERNAL = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS) -FSCTL_SHRINK_VOLUME = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) -FSCTL_SET_SHORT_NAME_BEHAVIOR = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_DFSR_SET_GHOST_HANDLE_STATE = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS) -FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA) -FSCTL_TXFS_LIST_TRANSACTIONS = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA) -FSCTL_QUERY_PAGEFILE_ENCRYPTION = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS) - -IOCTL_VOLUME_BASE = ord('V') -IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS = CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_VOLUME_ONLINE = CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_VOLUME_OFFLINE = CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS) -IOCTL_VOLUME_IS_CLUSTERED = CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) -IOCTL_VOLUME_GET_GPT_ATTRIBUTES = CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS) - -## enums -## STORAGE_MEDIA_TYPE -DDS_4mm = 32 -MiniQic = 33 -Travan = 34 -QIC = 35 -MP_8mm = 36 -AME_8mm = 37 -AIT1_8mm = 38 -DLT = 39 -NCTP = 40 -IBM_3480 = 41 -IBM_3490E = 42 -IBM_Magstar_3590 = 43 -IBM_Magstar_MP = 44 -STK_DATA_D3 = 45 -SONY_DTF = 46 -DV_6mm = 47 -DMI = 48 -SONY_D2 = 49 -CLEANER_CARTRIDGE = 50 -CD_ROM = 51 -CD_R = 52 -CD_RW = 53 -DVD_ROM = 54 -DVD_R = 55 -DVD_RW = 56 -MO_3_RW = 57 -MO_5_WO = 58 -MO_5_RW = 59 -MO_5_LIMDOW = 60 -PC_5_WO = 61 -PC_5_RW = 62 -PD_5_RW = 63 -ABL_5_WO = 64 -PINNACLE_APEX_5_RW = 65 -SONY_12_WO = 66 -PHILIPS_12_WO = 67 -HITACHI_12_WO = 68 -CYGNET_12_WO = 69 -KODAK_14_WO = 70 -MO_NFR_525 = 71 -NIKON_12_RW = 72 -IOMEGA_ZIP = 73 -IOMEGA_JAZ = 74 -SYQUEST_EZ135 = 75 -SYQUEST_EZFLYER = 76 -SYQUEST_SYJET = 77 -AVATAR_F2 = 78 -MP2_8mm = 79 -DST_S = 80 -DST_M = 81 -DST_L = 82 -VXATape_1 = 83 -VXATape_2 = 84 -STK_9840 = 85 -LTO_Ultrium = 86 -LTO_Accelis = 87 -DVD_RAM = 88 -AIT_8mm = 89 -ADR_1 = 90 -ADR_2 = 91 -STK_9940 = 92 - -## STORAGE_BUS_TYPE -BusTypeUnknown = 0 -BusTypeScsi = 1 -BusTypeAtapi = 2 -BusTypeAta = 3 -BusType1394 = 4 -BusTypeSsa = 5 -BusTypeFibre = 6 -BusTypeUsb = 7 -BusTypeRAID = 8 -BusTypeiScsi = 9 -BusTypeSas = 10 -BusTypeSata = 11 -BusTypeMaxReserved = 127 - -## MEDIA_TYPE -Unknown = 0 -F5_1Pt2_512 = 1 -F3_1Pt44_512 = 2 -F3_2Pt88_512 = 3 -F3_20Pt8_512 = 4 -F3_720_512 = 5 -F5_360_512 = 6 -F5_320_512 = 7 -F5_320_1024 = 8 -F5_180_512 = 9 -F5_160_512 = 10 -RemovableMedia = 11 -FixedMedia = 12 -F3_120M_512 = 13 -F3_640_512 = 14 -F5_640_512 = 15 -F5_720_512 = 16 -F3_1Pt2_512 = 17 -F3_1Pt23_1024 = 18 -F5_1Pt23_1024 = 19 -F3_128Mb_512 = 20 -F3_230Mb_512 = 21 -F8_256_128 = 22 -F3_200Mb_512 = 23 -F3_240M_512 = 24 -F3_32M_512 = 25 - -## PARTITION_STYLE -PARTITION_STYLE_MBR = 0 -PARTITION_STYLE_GPT = 1 -PARTITION_STYLE_RAW = 2 - -## DETECTION_TYPE -DetectNone = 0 -DetectInt13 = 1 -DetectExInt13 = 2 - -## DISK_CACHE_RETENTION_PRIORITY -EqualPriority = 0 -KeepPrefetchedData = 1 -KeepReadData = 2 - -## DISK_WRITE_CACHE_STATE - ?????? this enum has disappeared from winioctl.h in windows 2003 SP1 sdk ?????? -DiskWriteCacheNormal = 0 -DiskWriteCacheForceDisable = 1 -DiskWriteCacheDisableNotSupported = 2 - -## BIN_TYPES -RequestSize = 0 -RequestLocation = 1 - -## CHANGER_DEVICE_PROBLEM_TYPE -DeviceProblemNone = 0 -DeviceProblemHardware = 1 -DeviceProblemCHMError = 2 -DeviceProblemDoorOpen = 3 -DeviceProblemCalibrationError = 4 -DeviceProblemTargetFailure = 5 -DeviceProblemCHMMoveError = 6 -DeviceProblemCHMZeroError = 7 -DeviceProblemCartridgeInsertError = 8 -DeviceProblemPositionError = 9 -DeviceProblemSensorError = 10 -DeviceProblemCartridgeEjectError = 11 -DeviceProblemGripperError = 12 -DeviceProblemDriveError = 13 diff --git a/typings/win32typing/__init__.pyi b/typings/win32typing/__init__.pyi deleted file mode 100644 index f11a35e4..00000000 --- a/typings/win32typing/__init__.pyi +++ /dev/null @@ -1,51704 +0,0 @@ -""" -This type stub file was generated by pyright. -""" - -__all__=['', 'COMMTIMEOUTS', 'CopyProgressRoutine', 'DOCINFO', 'ExportCallback', 'FORM_INFO_1', 'ImportCallback', 'LARGE_INTEGER', 'NCB', 'PRINTER_DEFAULTS', 'PyACL', 'PyBITMAP', 'PyBLENDFUNCTION', 'PyCEHANDLE', 'PyCERTSTORE', 'PyCERT_ALT_NAME_ENTRY', 'PyCERT_ALT_NAME_INFO', 'PyCERT_AUTHORITY_KEY_ID_INFO', 'PyCERT_BASIC_CONSTRAINTS2_INFO', 'PyCERT_BASIC_CONSTRAINTS_INFO', 'PyCERT_CONTEXT', 'PyCERT_EXTENSION', 'PyCERT_KEY_ATTRIBUTES_INFO', 'PyCERT_NAME_INFO', 'PyCERT_NAME_VALUE', 'PyCERT_OTHER_NAME', 'PyCERT_POLICY_INFO', 'PyCERT_PUBLIC_KEY_INFO', 'PyCOMSTAT', 'PyCOORD', 'PyCREDENTIAL', 'PyCREDENTIAL_ATTRIBUTE', 'PyCREDENTIAL_TARGET_INFORMATION', 'PyCREDUI_INFO', 'PyCRYPTHASH', 'PyCRYPTKEY', 'PyCRYPTMSG', 'PyCRYPTPROTECT_PROMPTSTRUCT', 'PyCRYPTPROV', 'PyCRYPT_ALGORITHM_IDENTIFIER', 'PyCRYPT_ATTRIBUTE', 'PyCRYPT_BIT_BLOB', 'PyCRYPT_DECRYPT_MESSAGE_PARA', 'PyCRYPT_ENCRYPT_MESSAGE_PARA', 'PyCRYPT_SIGN_MESSAGE_PARA', 'PyCRYPT_VERIFY_MESSAGE_PARA', 'PyCTL_CONTEXT', 'PyCTL_USAGE', 'PyConsoleScreenBuffer', 'PyCredHandle', 'PyCtxtHandle', 'PyDCB', 'PyDEVMODE', 'PyDEVMODEW', 'PyDISPLAY_DEVICE', 'PyDLGITEMTEMPLATE', 'PyDLGTEMPLATE', 'PyDS_HANDLE', 'PyDS_NAME_RESULT_ITEM', 'PyDateTime', 'PyDialogTemplate', 'PyEVTLOG_HANDLE', 'PyEVT_HANDLE', 'PyEVT_RPC_LOGIN', 'PyEventLogRecord', 'PyGROUP_INFO_0', 'PyGROUP_INFO_1', 'PyGROUP_INFO_1002', 'PyGROUP_INFO_1005', 'PyGROUP_INFO_2', 'PyGROUP_USERS_INFO_0', 'PyGROUP_USERS_INFO_1', 'PyGdiHANDLE', 'PyGetSignerCertificate', 'PyHANDLE', 'PyHDESK', 'PyHDEVNOTIFY', 'PyHHNTRACK', 'PyHHN_NOTIFY', 'PyHH_AKLINK', 'PyHH_FTS_QUERY', 'PyHH_POPUP', 'PyHH_WINTYPE', 'PyHINTERNET', 'PyHKEY', 'PyHTHEME', 'PyHWINSTA', 'PyICONINFO', 'PyIID', 'PyINPUT_RECORD', 'PyLOCALGROUP_INFO_0', 'PyLOCALGROUP_INFO_1', 'PyLOCALGROUP_INFO_1002', 'PyLOCALGROUP_MEMBERS_INFO_0', 'PyLOCALGROUP_MEMBERS_INFO_1', 'PyLOCALGROUP_MEMBERS_INFO_2', 'PyLOCALGROUP_MEMBERS_INFO_3', 'PyLOGBRUSH', 'PyLOGFONT', 'PyLSA_HANDLE', 'PyLUID_AND_ATTRIBUTES', 'PyLsaLogon_HANDLE', 'PyMSG', 'PyNETRESOURCE', 'PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG', 'PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG', 'PyNET_VALIDATE_PERSISTED_FIELDS', 'PyNMHDR', 'PyNOTIFYICONDATA', 'PyOVERLAPPED', 'PyOVERLAPPEDReadBuffer', 'PyPERF_COUNTER_DEFINITION', 'PyPERF_OBJECT_TYPE', 'PyPOINT', 'PyPROFILEINFO', 'PyPerfMonManager', 'PyPrinterHANDLE', 'PyRECT', 'PyResourceId', 'PySCROLLINFO', 'PySC_HANDLE', 'PySECURITY_ATTRIBUTES', 'PySECURITY_DESCRIPTOR', 'PySERVER_INFO_100', 'PySERVER_INFO_101', 'PySERVER_INFO_102', 'PySERVER_INFO_402', 'PySERVER_INFO_403', 'PySERVER_INFO_502', 'PySERVER_INFO_503', 'PySHARE_INFO_0', 'PySHARE_INFO_1', 'PySHARE_INFO_2', 'PySHARE_INFO_501', 'PySHARE_INFO_502', 'PySID', 'PySID_AND_ATTRIBUTES', 'PySIZE', 'PySMALL_RECT', 'PySTARTUPINFO', 'PySecBuffer', 'PySecBufferDesc', 'PyTOKEN_GROUPS', 'PyTOKEN_PRIVILEGES', 'PyTRIVERTEX', 'PyTRUSTEE', 'PyTS_HANDLE', 'PyTime', 'PyUSER_INFO_0', 'PyUSER_INFO_1', 'PyUSER_INFO_10', 'PyUSER_INFO_1003', 'PyUSER_INFO_1005', 'PyUSER_INFO_1006', 'PyUSER_INFO_1007', 'PyUSER_INFO_1008', 'PyUSER_INFO_1009', 'PyUSER_INFO_1010', 'PyUSER_INFO_1011', 'PyUSER_INFO_11', 'PyUSER_INFO_2', 'PyUSER_INFO_20', 'PyUSER_INFO_3', 'PyUSER_INFO_4', 'PyUSER_MODALS_INFO_0', 'PyUSER_MODALS_INFO_1', 'PyUSER_MODALS_INFO_2', 'PyUSER_MODALS_INFO_3', 'PyUSE_INFO_0', 'PyUSE_INFO_1', 'PyUSE_INFO_2', 'PyUSE_INFO_3', 'PyUnicode', 'PyUrlCacheHANDLE', 'PyWAVEFORMATEX', 'PyWINHTTP_AUTOPROXY_OPTIONS', 'PyWINHTTP_PROXY_INFO', 'PyWKSTA_INFO_100', 'PyWKSTA_INFO_101', 'PyWKSTA_INFO_102', 'PyWKSTA_INFO_302', 'PyWKSTA_INFO_402', 'PyWKSTA_INFO_502', 'PyWKSTA_TRANSPORT_INFO_0', 'PyWKSTA_USER_INFO_0', 'PyWKSTA_USER_INFO_1', 'PyWNDCLASS', 'PyXFORM', 'Pymmapfile', 'RASDIALEXTENSIONS', 'RASDIALPARAMS', 'SC_ACTION', 'SERVICE_FAILURE_ACTIONS', 'SERVICE_STATUS', 'TRACKMOUSEEVENT', 'ULARGE_INTEGER', 'WIN32_FIND_DATA', 'com_error', 'connection', 'cursor', 'error', 'COMPONENT', 'COMPONENTSOPT', 'COMPPOS', 'COMPSTATEINFO', 'DEFCONTENTMENU', 'ELEMDESC', 'EXP_DARWIN_LINK', 'EXP_SPECIAL_FOLDER', 'EXP_SZ_LINK', 'FUNCDESC', 'IDLDESC', 'MAPIINIT_0', 'NT_CONSOLE_PROPS', 'NT_FE_CONSOLE_PROPS', 'PROPSPEC', 'PyADSVALUE', 'PyADS_ATTR_INFO', 'PyADS_OBJECT_INFO', 'PyADS_SEARCHPREF_INFO', 'PyBIND_OPTS', 'PyCMINVOKECOMMANDINFO', 'PyDSBCAPS', 'PyDSBUFFERDESC', 'PyDSCAPS', 'PyDSCBCAPS', 'PyDSCBUFFERDESC', 'PyDSCCAPS', 'PyDSOP_FILTER_FLAGS', 'PyDSOP_SCOPE_INIT_INFO', 'PyDSOP_SCOPE_INIT_INFOs', 'PyDSOP_UPLEVEL_FILTER_FLAGS', 'PyFORMATETC', 'PyGFileOperationProgressSink', 'PyGSecurityInformation', 'PyIADesktopP2', 'PyIADs', 'PyIADsContainer', 'PyIADsUser', 'PyIActiveDesktop', 'PyIActiveDesktopP', 'PyIActiveScriptDebug', 'PyIActiveScriptError', 'PyIActiveScriptErrorDebug', 'PyIActiveScriptParseProcedure', 'PyIActiveScriptSite', 'PyIActiveScriptSiteDebug', 'PyIAddrBook', 'PyIApplicationDebugger', 'PyIApplicationDestinations', 'PyIApplicationDocumentLists', 'PyIAsyncOperation', 'PyIAttach', 'PyIBindCtx', 'PyIBrowserFrameOptions', 'PyICancelMethodCalls', 'PyICatInformation', 'PyICatRegister', 'PyICategoryProvider', 'PyIClassFactory', 'PyIClientSecurity', 'PyIColumnProvider', 'PyIConnectionPoint', 'PyIConnectionPointContainer', 'PyIContext', 'PyIContextMenu', 'PyICopyHookA', 'PyICopyHookW', 'PyICreateTypeInfo', 'PyICreateTypeLib', 'PyICreateTypeLib2', 'PyICurrentItem', 'PyICustomDestinationList', 'PyIDL', 'PyIDataObject', 'PyIDebugApplication', 'PyIDebugApplicationNode', 'PyIDebugApplicationNodeEvents', 'PyIDebugApplicationThread', 'PyIDebugCodeContext', 'PyIDebugDocument', 'PyIDebugDocumentContext', 'PyIDebugDocumentHelper', 'PyIDebugDocumentHost', 'PyIDebugDocumentInfo', 'PyIDebugDocumentProvider', 'PyIDebugDocumentText', 'PyIDebugDocumentTextAuthor', 'PyIDebugDocumentTextEvents', 'PyIDebugDocumentTextExternalAuthor', 'PyIDebugExpression', 'PyIDebugExpressionCallBack', 'PyIDebugExpressionContext', 'PyIDebugProperty', 'PyIDebugSessionProvider', 'PyIDebugStackFrame', 'PyIDebugStackFrameSniffer', 'PyIDebugStackFrameSnifferEx', 'PyIDebugSyncOperation', 'PyIDefaultExtractIconInit', 'PyIDirectSound', 'PyIDirectSoundBuffer', 'PyIDirectSoundCapture', 'PyIDirectSoundCaptureBuffer', 'PyIDirectSoundNotify', 'PyIDirectoryObject', 'PyIDirectorySearch', 'PyIDispatch', 'PyIDispatchEx', 'PyIDisplayItem', 'PyIDocHostUIHandler', 'PyIDropSource', 'PyIDropTarget', 'PyIDropTargetHelper', 'PyIDsObjectPicker', 'PyIEmptyVolumeCache', 'PyIEmptyVolumeCache2', 'PyIEmptyVolumeCacheCallBack', 'PyIEnumCATEGORYINFO', 'PyIEnumConnectionPoints', 'PyIEnumConnections', 'PyIEnumContextProps', 'PyIEnumDebugApplicationNodes', 'PyIEnumDebugCodeContexts', 'PyIEnumDebugExpressionContexts', 'PyIEnumDebugPropertyInfo', 'PyIEnumDebugStackFrames', 'PyIEnumExplorerCommand', 'PyIEnumFORMATETC', 'PyIEnumGUID', 'PyIEnumIDList', 'PyIEnumMoniker', 'PyIEnumObjects', 'PyIEnumRemoteDebugApplicationThreads', 'PyIEnumRemoteDebugApplications', 'PyIEnumResources', 'PyIEnumSTATPROPSETSTG', 'PyIEnumSTATPROPSTG', 'PyIEnumSTATSTG', 'PyIEnumShellItems', 'PyIEnumString', 'PyIErrorLog', 'PyIExplorerBrowser', 'PyIExplorerBrowserEvents', 'PyIExplorerCommand', 'PyIExplorerCommandProvider', 'PyIExplorerPaneVisibility', 'PyIExternalConnection', 'PyIExtractIcon', 'PyIExtractIconW', 'PyIExtractImage', 'PyIFileOperation', 'PyIIdentityName', 'PyIInitializeWithFile', 'PyIInitializeWithStream', 'PyIInputObject', 'PyIInternetBindInfo', 'PyIInternetPriority', 'PyIInternetProtocol', 'PyIInternetProtocolInfo', 'PyIInternetProtocolRoot', 'PyIInternetProtocolSink', 'PyIInternetSecurityManager', 'PyIKnownFolder', 'PyIKnownFolderManager', 'PyILockBytes', 'PyIMAPIContainer', 'PyIMAPIFolder', 'PyIMAPIProp', 'PyIMAPISession', 'PyIMAPIStatus', 'PyIMAPITable', 'PyIMachineDebugManager', 'PyIMachineDebugManagerEvents', 'PyIMessage', 'PyIMoniker', 'PyIMsgServiceAdmin', 'PyIMsgStore', 'PyINameSpaceTreeControl', 'PyINamedPropertyStore', 'PyIObjectArray', 'PyIObjectCollection', 'PyIObjectWithPropertyKey', 'PyIObjectWithSite', 'PyIOleClientSite', 'PyIOleCommandTarget', 'PyIOleControl', 'PyIOleControlSite', 'PyIOleInPlaceActiveObject', 'PyIOleInPlaceFrame', 'PyIOleInPlaceObject', 'PyIOleInPlaceSite', 'PyIOleInPlaceSiteEx', 'PyIOleInPlaceSiteWindowless', 'PyIOleInPlaceUIWindow', 'PyIOleObject', 'PyIOleWindow', 'PyIPersist', 'PyIPersistFile', 'PyIPersistFolder', 'PyIPersistFolder2', 'PyIPersistPropertyBag', 'PyIPersistSerializedPropStorage', 'PyIPersistStorage', 'PyIPersistStream', 'PyIPersistStreamInit', 'PyIProcessDebugManager', 'PyIProfAdmin', 'PyIPropertyBag', 'PyIPropertyChange', 'PyIPropertyChangeArray', 'PyIPropertyDescription', 'PyIPropertyDescriptionAliasInfo', 'PyIPropertyDescriptionList', 'PyIPropertyDescriptionSearchInfo', 'PyIPropertyEnumType', 'PyIPropertyEnumTypeList', 'PyIPropertySetStorage', 'PyIPropertyStorage', 'PyIPropertyStore', 'PyIPropertyStoreCache', 'PyIPropertyStoreCapabilities', 'PyIPropertySystem', 'PyIProvideClassInfo', 'PyIProvideClassInfo2', 'PyIProvideExpressionContexts', 'PyIProvideTaskPage', 'PyIQueryAssociations', 'PyIRelatedItem', 'PyIRemoteDebugApplication', 'PyIRemoteDebugApplicationEvents', 'PyIRemoteDebugApplicationThread', 'PyIRunningObjectTable', 'PyIScheduledWorkItem', 'PyIServerSecurity', 'PyIServiceProvider', 'PyIShellBrowser', 'PyIShellExtInit', 'PyIShellFolder', 'PyIShellFolder2', 'PyIShellIcon', 'PyIShellIconOverlay', 'PyIShellIconOverlayIdentifier', 'PyIShellIconOverlayManager', 'PyIShellItem', 'PyIShellItem2', 'PyIShellItemArray', 'PyIShellItemResources', 'PyIShellLibrary', 'PyIShellLink', 'PyIShellLinkDataList', 'PyIShellView', 'PyISpecifyPropertyPages', 'PyIStorage', 'PyIStream', 'PyITask', 'PyITaskScheduler', 'PyITaskTrigger', 'PyITaskbarList', 'PyITransferAdviseSink', 'PyITransferDestination', 'PyITransferMediumItem', 'PyITransferSource', 'PyITypeComp', 'PyITypeInfo', 'PyITypeLib', 'PyIUniformResourceLocator', 'PyIUnknown', 'PyIViewObject', 'PyIViewObject2', 'PyMAPINAMEIDArray', 'PyOLEMENUGROUPWIDTHS', 'PyPROPERTYKEY', 'PyPROPVARIANT', 'PySAndRestriction', 'PySBinaryArray', 'PySBitMaskRestriction', 'PySContentRestriction', 'PySExistRestriction', 'PySHELL_ITEM_RESOURCE', 'PySNotRestriction', 'PySOrRestriction', 'PySPropTagArray', 'PySPropValue', 'PySPropValueArray', 'PySPropertyRestriction', 'PySRestriction', 'PySRow', 'PySRowSet', 'PySSortOrderItem', 'PySSortOrderSet', 'PySTGMEDIUM', 'PyTASK_TRIGGER', 'RTF_WCSINFO', 'SHFILEINFO', 'SHFILEOPSTRUCT', 'SI_ACCESS', 'SI_INHERIT_TYPE', 'SI_OBJECT_INFO', 'STATSTG', 'TLIBATTR', 'TYPEATTR', 'TYPEDESC', 'VARDESC', 'CHARFORMAT', 'CREATESTRUCT', 'LV_COLUMN', 'LV_ITEM', 'PARAFORMAT', 'PyAssocCObject', 'PyAssocObject', 'PyCBitmap', 'PyCBrush', 'PyCButton', 'PyCCmdTarget', 'PyCCmdUI', 'PyCColorDialog', 'PyCComboBox', 'PyCCommonDialog', 'PyCControl', 'PyCControlBar', 'PyCCtrlView', 'PyCDC', 'PyCDialog', 'PyCDialogBar', 'PyCDocTemplate', 'PyCDockContext', 'PyCDocument', 'PyCEdit', 'PyCEditView', 'PyCFileDialog', 'PyCFont', 'PyCFontDialog', 'PyCFormView', 'PyCFrameWnd', 'PyCGdiObject', 'PyCImageList', 'PyCListBox', 'PyCListCtrl', 'PyCListView', 'PyCMDIChildWnd', 'PyCMDIFrameWnd', 'PyCMenu', 'PyCOleClientItem', 'PyCOleDialog', 'PyCOleDocument', 'PyCOleInsertDialog', 'PyCPrintDialog', 'PyCPrintInfo', 'PyCProgressCtrl', 'PyCPropertyPage', 'PyCPropertySheet', 'PyCRect', 'PyCRgn', 'PyCRichEditCtrl', 'PyCRichEditDoc', 'PyCRichEditDocTemplate', 'PyCRichEditView', 'PyCScrollView', 'PyCSliderCtrl', 'PyCSpinButtonCtrl', 'PyCSplitterWnd', 'PyCStatusBar', 'PyCStatusBarCtrl', 'PyCTabCtrl', 'PyCToolBar', 'PyCToolBarCtrl', 'PyCToolTipCtrl', 'PyCTreeCtrl', 'PyCTreeView', 'PyCView', 'PyCWinApp', 'PyCWinThread', 'PyCWnd', 'PyDDEConv', 'PyDDEServer', 'PyDDEStringItem', 'PyDDETopic', 'PyDLL', 'SCROLLINFO', 'TV_ITEM', 'EXTENSION_CONTROL_BLOCK', 'HSE_VERSION_INFO', 'HTTP_FILTER_AUTHENT', 'HTTP_FILTER_CONTEXT', 'HTTP_FILTER_LOG', 'HTTP_FILTER_PREPROC_HEADERS', 'HTTP_FILTER_RAW_DATA', 'HTTP_FILTER_URL_MAP', 'HTTP_FILTER_VERSION'] -import typing - -class COMMTIMEOUTS(object): - """A tuple representing a COMMTIMEOUTS structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class CopyProgressRoutine(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class DOCINFO(object): - """A tuple of information representing a DOCINFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def DocName(self)->'typing.Union[str]': - """Name of document""" - pass - - - @property - def Output(self)->'typing.Union[str]': - """Name of output file when printing to file. Use None for normal printing.""" - pass - - - @property - def DataType(self)->'typing.Union[str]': - """Type of data to be sent to printer, eg RAW, EMF, TEXT. Use None for printer default.""" - pass - - - @property - def Type(self)->'typing.Any': - """Flag specifying mode of operation. Can be DI_APPBANDING, DI_ROPS_READ_DESTINATION, or 0""" - pass - - -class ExportCallback(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class FORM_INFO_1(object): - """A dictionary containing FORM_INFO_1W data""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Flags(self)->'typing.Any': - """FORM_USER, FORM_BUILTIN, or FORM_PRINTER""" - pass - - - @property - def Name(self)->'str': - """Name of form""" - pass - - - @property - def Size(self)->'typing.Any': - """A dictionary representing a SIZEL structure {'cx':int,'cy':int}""" - pass - - - @property - def ImageableArea(self)->'typing.Any': - """A dictionary representing a RECTL structure {'left':int, 'top':int, 'right':int, 'bottom':int}""" - pass - - -class ImportCallback(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class LARGE_INTEGER(object): - """A Python object used wherever a COM LARGE_INTEGER is used.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class NCB(object): - """A Python object that encapsulates a Win32 NCB structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Command(self)->'typing.Any': - """""" - pass - - - @property - def Retcode(self)->'typing.Any': - """""" - pass - - - @property - def Lsn(self)->'typing.Any': - """""" - pass - - - @property - def Num(self)->'typing.Any': - """""" - pass - - - @property - def Bufflen(self)->'typing.Any': - """read-only""" - pass - - - @property - def Callname(self)->'str': - """- The strings need to be space padded to 16 chars exactly""" - pass - - - @property - def Name(self)->'str': - """- The strings need to be space padded to 16 chars exactly""" - pass - - - @property - def Rto(self)->'str': - """- The strings need to be space padded to 16 chars exactly""" - pass - - - @property - def Sto(self)->'str': - """- The strings need to be space padded to 16 chars exactly""" - pass - - - @property - def Lana_num(self)->'typing.Any': - """""" - pass - - - @property - def Cmd_cplt(self)->'typing.Any': - """""" - pass - - - @property - def Event(self)->'typing.Any': - """""" - pass - - - @property - def Post(self)->'typing.Any': - """""" - pass - - -class PRINTER_DEFAULTS(object): - """A dictionary representing a PRINTER_DEFAULTS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def pDatatype(self)->'str': - """Data type to be used for print jobs, see win32print::EnumPrintProcessorDatatypes, optional, can be None""" - pass - - - @property - def pDevMode(self)->'PyDEVMODE': - """A PyDEVMODE that specifies default printer parameters, optional, can be None""" - pass - - - @property - def DesiredAccess(self)->'typing.Any': - """An ACCESS_MASK specifying what level of access is needed, eg PRINTER_ACCESS_ADMINISTER, PRINTER_ACCESS_USE""" - pass - - -class PyACL(object): - """A Python object, representing a ACL structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Initialize the ACL. - -Args: - - - -Returns: - - None - - """ - pass - - - def IsValid(self,) -> 'None': - """ - Determines if the ACL is valid (IsValidAcl) - -Args: - - - -Returns: - - None - - """ - pass - - - def AddAccessAllowedAce(self,revision:'typing.Any',access:'typing.Any',sid:'PySID',access1:'typing.Any',sid1:'typing.Any') -> 'None': - """ - Adds an access-allowed ACE to an DACL object. The access is granted to a - -specified SID. - -Args: - - revision(typing.Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. - access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. - sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters - access1(typing.Any):Specifies the mask of access rights to be denied to the specified SID. - sid1(typing.Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. - -Returns: - - None - - """ - pass - - - def AddAccessAllowedAceEx(self,revision:'typing.Any',aceflags:'typing.Any',access:'typing.Any',sid:'PySID') -> 'None': - """ - Add access allowed ACE to an ACL with ACE flags (Requires Win2k or higher) - -Args: - - revision(typing.Any):Must be at least ACL_REVISION_DS - aceflags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) - access(typing.Any):Specifies the mask of access rights to be granted to the specified SID. - sid(PySID):A SID object representing a user, group, or logon account being granted access. - -Returns: - - None - - """ - pass - - - def AddAccessAllowedObjectAce(self,AceRevision:'typing.Any',AceFlags:'typing.Any',AccessMask:'typing.Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID') -> 'None': - """ - Adds an ACCESS_ALLOWED_OBJECT_ACE to the ACL - -Args: - - AceRevision(typing.Any):Must be at least ACL_REVISION_DS - AceFlags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) - AccessMask(typing.Any):Specifies the mask of access rights to be granted to the specified SID - ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None - InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None - sid(PySID):A SID object representing a user, group, or logon account being granted access. - -Returns: - - None - - """ - pass - - - def AddAccessDeniedAce(self,revision:'typing.Any',access:'typing.Any',sid:'PySID',access1:'typing.Any',sid1:'typing.Any') -> 'None': - """ - Adds an access-denied ACE to an ACL object. The access is denied to a specified - -SID. - -Args: - - revision(typing.Any):Pre-win2k, must be ACL_REVISION, otherwise also may be ACL_REVISION_DS. - access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. - sid(PySID):A SID object representing a user, group, or logon account being denied access.Alternative Parameters - access1(typing.Any):Specifies the mask of access rights to be denied to the specified SID. - sid1(typing.Any):A SID object representing a user, group, or logon account being denied access.CommentsNote that early versions of this function supported only two arguments. This has been deprecated in preference of the three argument version, which reflects the win32 API and the new functions in this module. - -Returns: - - None - - """ - pass - - - def AddAccessDeniedAceEx(self,revision:'typing.Any',aceflags:'typing.Any',access:'typing.Any',sid:'PySID') -> 'None': - """ - Add access denied ACE to an ACL with ACE flags (Requires Win2k or higher) - -Args: - - revision(typing.Any):Must be at least ACL_REVISION_DS - aceflags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) - access(typing.Any):Specifies the mask of access rights to be denied to the specified SID. - sid(PySID):A SID object representing a user, group, or logon account being denied access. - -Returns: - - None - - """ - pass - - - def AddMandatoryAce(self,AceRevision:'typing.Any',AceFlags:'typing.Any',MandatoryPolicy:'typing.Any',LabelSid:'PySID') -> 'None': - """ - Adds a mandatory integrity level ACE to a SACL - -Args: - - AceRevision(typing.Any):ACL_REVISION or ACL_REVISION_DS - AceFlags(typing.Any):Combination of ACE inheritance flags (CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE, and OBJECT_INHERIT_ACE) - MandatoryPolicy(typing.Any):Access policy for processes with lower integrity level, combination of SYSTEM_MANDATORY_LABEL_* flags - LabelSid(PySID):Integrity level SID. This can be created using CreateWellKnownSid with Win*LabelSid. Also can be constructed manually using SECURITY_MANDATORY_LABEL_AUTHORITY and a SECURITY_MANDATORY_*_RID - -Returns: - - None - - """ - pass - - - def AddAuditAccessAce(self,dwAceRevision:'typing.Any',dwAccessMask:'typing.Any',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': - """ - Adds an audit ACE to a Sacl - -Args: - - dwAceRevision(typing.Any):Revision of ACL: Pre-Win2k, must be ACL_REVISION. Win2K on up, can also be ACL_REVISION_DS - dwAccessMask(typing.Any):Bitmask of access types to be audited - sid(PySID):SID for whom system audit messages will be generated - bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 - bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 - -Returns: - - None - - """ - pass - - - def AddAuditAccessAceEx(self,dwAceRevision:'typing.Any',AceFlags:'typing.Any',dwAccessMask:'typing.Any',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': - """ - Adds an audit ACE to an Sacl, includes ace flags - -Args: - - dwAceRevision(typing.Any):Revision of ACL: Must be at least ACL_REVISION_DS - AceFlags(typing.Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE - dwAccessMask(typing.Any):Bitmask of access types to be audited - sid(PySID):SID for whom system audit messages will be generated - bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 - bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 - -Returns: - - None - - """ - pass - - - def AddAuditAccessObjectAce(self,dwAceRevision:'typing.Any',AceFlags:'typing.Any',dwAccessMask:'typing.Any',ObjectTypeGuid:'PyIID',InheritedObjectTypeGuid:'PyIID',sid:'PySID',bAuditSuccess:'typing.Any',bAuditFailure:'typing.Any') -> 'None': - """ - Adds an audit ACE for an object type identified by GUID - -Args: - - dwAceRevision(typing.Any):Revision of ACL: Must be at least ACL_REVISION_DS - AceFlags(typing.Any):Combination of FAILED_ACCESS_ACE_FLAG,SUCCESSFUL_ACCESS_ACE_FLAG,CONTAINER_INHERIT_ACE,INHERIT_ONLY_ACE,INHERITED_ACE,NO_PROPAGATE_INHERIT_ACE and OBJECT_INHERIT_ACE - dwAccessMask(typing.Any):Bitmask of access types to be audited - ObjectTypeGuid(PyIID):GUID of object type or property set to which ace applies, can be None - InheritedObjectTypeGuid(PyIID):GUID of object type or property that will inherit ACE, can be None - sid(PySID):SID for whom system audit messages will be generated - bAuditSuccess(typing.Any):Set to 1 if access success should be audited, else 0 - bAuditFailure(typing.Any):Set to 1 if access failure should be audited, else 0 - -Returns: - - None - - """ - pass - - - def GetAclSize(self,) -> 'typing.Any': - """ - Returns the storage size of the ACL. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetAclRevision(self,) -> 'typing.Any': - """ - Returns revision of the ACL. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetAceCount(self,) -> 'typing.Any': - """ - Returns the number of ACEs in the ACL. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetAce(self,index:'typing.Any') -> 'typing.Any': - """ - Gets an Ace from the ACL - -Args: - - index(typing.Any):Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned as a tuple of:Items[0] (int, int) : aceType, AceFlags[1] int : Mask[2] PySID : sidObject ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) are returned as a tuple:[0] (int, int) : aceType, AceFlags[1] int : mask[2] PyIID : ObjectType[3] PyIID : InheritedObjectType[4] PySID : sidFor details see the API documentation. - -Returns: - - typing.Any:Zero-based index of the ACE to retrieve.Return ValueConventional ACE's (types ACCESS_ALLOWED_ACE, ACCESS_DENIED_ACE, SYSTEM_AUDIT_ACE) are returned - -as a tuple of: -Items[0] (int, int) : aceType, AceFlags - -[1] int : Mask - -[2] PySID : sid -Object ACE's (types ACCESS_ALLOWED_OBJECT_ACE, ACCESS_DENIED_OBJECT_ACE, SYSTEM_AUDIT_OBJECT_ACE) - -are returned as a tuple: -[0] (int, int) : aceType, AceFlags - -[1] int : mask - -[2] PyIID : ObjectType - -[3] PyIID : InheritedObjectType - -[4] PySID : sid -For details see the API documentation. - - - """ - pass - - - def DeleteAce(self,index:'typing.Any') -> 'None': - """ - Deletes specified Ace from an ACL. - -Args: - - index(typing.Any):Zero-based index of the ACE to delete. - -Returns: - - None - - """ - pass - - - def GetEffectiveRightsFromAcl(self,trustee:'PyTRUSTEE') -> 'typing.Any': - """ - Return access rights (ACCESS_MASK) that the ACL grants to - -specified trustee - -Args: - - trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structure - -Returns: - - typing.Any - - """ - pass - - - def GetAuditedPermissionsFromAcl(self,trustee:'PyTRUSTEE') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Return types of access for - -which ACL will generate an audit event for specified trustee - -Args: - - trustee(PyTRUSTEE):Dictionary representing a TRUSTEE structureCommentsThis function is known to return the success and failure access masks in the the wrong order on Windows 2000 service pack 4. Problem has been reported to Microsoft. - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - -class PyBITMAP(object): - """A Python object, representing an PyBITMAP structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def bmType(self)->'int': - """""" - pass - - - @property - def bmWidth(self)->'int': - """""" - pass - - - @property - def bmHeight(self)->'int': - """""" - pass - - - @property - def bmWidthBytes(self)->'int': - """""" - pass - - - @property - def bmPlanes(self)->'int': - """""" - pass - - -class PyBLENDFUNCTION(object): - """Tuple of four small ints used to fill a BLENDFUNCTION struct - -Each int must fit in a byte (0-255).""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCEHANDLE(object): - """A Python object, representing a remote Windows CE handle""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERTSTORE(object): - """Handle to a certificate store""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HCERTSTORE(self)->'typing.Any': - """Integer handle""" - pass - - - def CertCloseStore(self,Flags:'typing.Any'=0) -> 'None': - """ - Closes the certificate store - -Args: - - Flags(typing.Any):Combination of CERT_CLOSE_*_FLAG flags - -Returns: - - None - - """ - pass - - - def CertControlStore(self,Flags:'typing.Any',CtrlType:'typing.Any',CtrlPara:'int') -> 'None': - """ - Controls sychronization of the certificate store - -Args: - - Flags(typing.Any):One of the CERT_STORE_CTRL_*_FLAG flags - CtrlType(typing.Any):One of the CERT_STORE_CTRL_* flags - CtrlPara(int):Event handle, can be None (not used with CERT_STORE_CTRL_COMMIT) - -Returns: - - None - - """ - pass - - - def CertEnumCertificatesInStore(self,) -> 'typing.List[typing.Any]': - """ - Lists all certificates in the store - -Args: - - - -Returns: - - typing.List[typing.Any] - - """ - pass - - - def CertEnumCTLsInStore(self,) -> 'typing.List[typing.Any]': - """ - Finds all Certificate Trust Lists in store - -Args: - - - -Returns: - - typing.List[typing.Any] - - """ - pass - - - def CertSaveStore(self,MsgAndCertEncodingType:'typing.Any',SaveAs:'typing.Any',SaveTo:'typing.Any',SaveToPara:'typing.Union[str, int]',Flags:'typing.Any'=0) -> 'None': - """ - Serializes the store to memory or a file - -Args: - - MsgAndCertEncodingType(typing.Any):Only used when saveas is CERT_STORE_SAVE_AS_PKCS7 - usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING - SaveAs(typing.Any):One of the CERT_STORE_SAVE_AS_* constants - SaveTo(typing.Any):One of the CERT_STORE_SAVE_TO_* constants (CERT_STORE_SAVE_TO_MEMORY not supported yet) - SaveToPara(typing.Union[str, int]):File name or open file handle depending on SaveTo parm - Flags(typing.Any):Reserved, use 0 - -Returns: - - None - - """ - pass - - - def CertAddEncodedCertificateToStore(self,CertEncodingType:'typing.Any',CertEncoded:'typing.Any',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': - """ - Imports an encoded certificate into the - -store - -Args: - - CertEncodingType(typing.Any):Usually X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING - CertEncoded(typing.Any):Data containing a serialized certificate - AddDisposition(typing.Any):Combination of CERT_STORE_ADD_* flags - -Returns: - - PyCERT_CONTEXT - - """ - pass - - - def CertAddCertificateContextToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': - """ - Adds a certificate context to the store - -Args: - - CertContext(PyCERT_CONTEXT):Certificate context to be added - AddDisposition(typing.Any):CERT_STORE_ADD_* constant - -Returns: - - PyCERT_CONTEXT - - """ - pass - - - def CertAddCertificateLinkToStore(self,CertContext:'PyCERT_CONTEXT',AddDisposition:'typing.Any') -> 'PyCERT_CONTEXT': - """ - Adds a link to a cert in another store - -Args: - - CertContext(PyCERT_CONTEXT):Certificate context to be linked - AddDisposition(typing.Any):One of the CERT_STORE_ADD_* values - -Returns: - - PyCERT_CONTEXT - - """ - pass - - - def CertAddCTLContextToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'typing.Any') -> 'PyCTL_CONTEXT': - """ - Adds a certificate trust list to the store - -Args: - - CtlContext(PyCTL_CONTEXT):CTL to be added - AddDisposition(typing.Any):CERT_STORE_ADD_* constant - -Returns: - - PyCTL_CONTEXT - - """ - pass - - - def CertAddCTLLinkToStore(self,CtlContext:'PyCTL_CONTEXT',AddDisposition:'typing.Any') -> 'PyCTL_CONTEXT': - """ - Adds a link to a CTL in another store - -Args: - - CtlContext(PyCTL_CONTEXT):CTL to be linked - AddDisposition(typing.Any):One of the CERT_STORE_ADD_* values - -Returns: - - PyCTL_CONTEXT - - """ - pass - - - def CertAddStoreToCollection(self,SiblingStore:'PyCERTSTORE',UpdateFlag:'typing.Any'=0,Priority:'typing.Any'=0) -> 'None': - """ - Adds a sibling store to a store collection - -Args: - - SiblingStore(PyCERTSTORE):Store to be added to the collection - UpdateFlag(typing.Any):Can be CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG to enable changes to persist - Priority(typing.Any):Determines order in which store are searched and updatedCommentsA collection store is created by using cryptoapi::CertOpenStore with CERT_STORE_PROV_COLLECTION - -Returns: - - None - - """ - pass - - - def CertRemoveStoreFromCollection(self,SiblingStore:'PyCERTSTORE') -> 'None': - """ - Removes a sibling store from a collection - -Args: - - SiblingStore(PyCERTSTORE):Store to be removed from the collection - -Returns: - - None - - """ - pass - - - def PFXExportCertStoreEx(self,Flags:'typing.Any',Password:'typing.Any'=None) -> 'typing.Any': - """ - Exports certificates and associated private keys in PKCS#12 format - -Args: - - Flags(typing.Any):Options to be used while exporting - Password(typing.Any):Passphrase to be used to encrypt the output - -Returns: - - typing.Any - - """ - pass - - -class PyCERT_ALT_NAME_ENTRY(object): - """Represented as a 2-tuple""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_ALT_NAME_INFO(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_AUTHORITY_KEY_ID_INFO(object): - """Dict containing the identity of a CA""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def KeyId(self)->'typing.Any': - """Unique identifier of private key, usually a hash""" - pass - - - @property - def CertIssuer(self)->'typing.Any': - """Encoded DN of the Certificate Authority. Decode using X509_UNICODE_NAME""" - pass - - - @property - def CertSerialNumber(self)->'typing.Any': - """Serial nbr of the CA's signing certificate""" - pass - - -class PyCERT_BASIC_CONSTRAINTS2_INFO(object): - """Dict representing a CERT_BASIC_CONSTRAINTS2_INFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def fCA(self)->'typing.Any': - """Indicates if cert represents a certificate authority""" - pass - - - @property - def fPathLenConstraint(self)->'typing.Any': - """Indicates if PathLenConstraint member is used""" - pass - - - @property - def PathLenConstraint(self)->'typing.Any': - """Limits number of intermediate CA's between root CA and end user""" - pass - - -class PyCERT_BASIC_CONSTRAINTS_INFO(object): - """Dict representing a CERT_BASIC_CONSTRAINTS_INFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def SubjectType(self)->'PyCRYPT_BIT_BLOB': - """Contains a combination of CERT_CA_SUBJECT_FLAG,CERT_END_ENTITY_SUBJECT_FLAG""" - pass - - - @property - def fPathLenConstraint(self)->'typing.Any': - """Indicates if PathLenConstraint member is used""" - pass - - - @property - def PathLenConstraint(self)->'typing.Any': - """Limits number of intermediate CA's between root CA and end user""" - pass - - - @property - def SubtreesConstraint(self)->'typing.Any': - """Sequence of encoded name blobs""" - pass - - -class PyCERT_CONTEXT(object): - """Handle to a certificate context""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HANDLE(self)->'typing.Any': - """Pointer to CERT_CONTEXT struct""" - pass - - - @property - def CertStore(self)->'PyCERTSTORE': - """Handle to the certificate store that contains this certificate""" - pass - - - @property - def CertEncoded(self)->'typing.Any': - """Content of the certificate as encoded bytes""" - pass - - - @property - def CertEncodingType(self)->'typing.Any': - """Method used to encode the certifcate, usually X509_ASN_ENCODING or PKCS_7_ASN_ENCODING""" - pass - - - @property - def Version(self)->'typing.Any': - """One of the CERT_V* values""" - pass - - - @property - def Subject(self)->'str': - """Encoded CERT_NAME_INFO struct containing the subject name. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_UNICODE_NAME, or formatted using cryptoapi::CertNameToStr""" - pass - - - @property - def Issuer(self)->'str': - """Certificate Authority that issued certificate as encoded CERT_NAME_INFO. Use cryptoapi::CryptDecodeObjectEx to decode into individual components, or cryptoapi::CertNameToStr to return a single formatted string""" - pass - - - @property - def NotBefore(self)->'PyTime': - """Beginning of certificate's period of validity""" - pass - - - @property - def NotAfter(self)->'PyTime': - """End of certificate's period of validity""" - pass - - - @property - def SignatureAlgorithm(self)->'typing.Any': - """Object id of the certifcate's signature algorithm""" - pass - - - @property - def Extension(self)->'typing.Tuple[PyCERT_EXTENSION, ...]': - """Sequence of CERT_EXTENSION dicts containing certificate's extensions""" - pass - - - @property - def SubjectPublicKeyInfo(self)->'PyCERT_PUBLIC_KEY_INFO': - """Encoded public key of certificate""" - pass - - - @property - def SerialNumber(self)->'typing.Any': - """Serial number assigned by the issuer""" - pass - - - def CertFreeCertificateContext(self,) -> 'None': - """ - Frees the certificate context - -Args: - - - -Returns: - - None - - """ - pass - - - def CertEnumCertificateContextProperties(self,) -> 'typing.List[typing.Any]': - """ - Lists property ids for the certificate - -Args: - - - -Returns: - - typing.List[typing.Any] - - """ - pass - - - def CryptAcquireCertificatePrivateKey(self,Flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PyCRYPTPROV]': - """ - Retrieves the private key associated - -with the certificate - -Args: - - Flags(typing.Any):Combination of CRYPT_ACQUIRE_*_FLAG constantsCommentsOnly the owner of the certificate can use this methodReturn ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key - -Returns: - - typing.Tuple[typing.Any, PyCRYPTPROV]:Combination of CRYPT_ACQUIRE_*_FLAG constants -Comments - -Only the owner of the certificate can use this method -Return ValueReturns the KeySpec (AT_KEYEXCHANGE or AT_SIGNATURE) and a CSP handle to the key - - - """ - pass - - - def CertGetIntendedKeyUsage(self,) -> 'typing.Any': - """ - Returns the intended key usage from the certificate extensions - -(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) - -Args: - - - -Returns: - - typing.Any:PyCERT_CONTEXT.CertGetIntendedKeyUsage - -int = CertGetIntendedKeyUsage()Returns the intended key usage from the certificate extensions - -(szOID_KEY_USAGE or szOID_KEY_ATTRIBUTES) -Return ValueReturns a combination of CERT_*_KEY_USAGE values - - - """ - pass - - - def CertGetEnhancedKeyUsage(self,Flags:'typing.Any'=0) -> 'typing.Any': - """ - Finds the enhanced key usage property and/or extension for the - -certificate - -Args: - - Flags(typing.Any):CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0Return ValueReturns a sequence of usage OIDs - -Returns: - - typing.Any:CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG, - -CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG, or 0 -Return ValueReturns a sequence of usage OIDs - - - """ - pass - - - def CertSerializeCertificateStoreElement(self,Flags:'typing.Any'=0) -> 'str': - """ - Serializes the certificate and its properties - -Args: - - Flags(typing.Any):Reserved, use only 0 if passed in - -Returns: - - str - - """ - pass - - - def CertVerifySubjectCertificateContext(self,Issuer:'PyCERT_CONTEXT',Flags:'typing.Any') -> 'typing.Any': - """ - Checks the validity of the certificate - -Args: - - Issuer(PyCERT_CONTEXT):Certificate of authority that issued the certificate - Flags(typing.Any):Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. - -Returns: - - typing.Any:Combination of CERT_STORE_REVOCATION_FLAG,CERT_STORE_SIGNATURE_FLAG and - -CERT_STORE_TIME_VALIDITY_FLAG indicating which checks should be performedReturn ValueReturns flags indicating which validity checks failed, or 0 if all were successful. - - - """ - pass - - - def CertDeleteCertificateFromStore(self,) -> 'None': - """ - Removes the certificate from its store - -Args: - - - -Returns: - - None - - """ - pass - - - def CertGetCertificateContextProperty(self,PropId:'typing.Any') -> 'typing.Any': - """ - Retrieves the specified property from the - -certificate - -Args: - - PropId(typing.Any):One of the CERT_*_PROP_ID constantsPropIdReturned valueCERT_ARCHIVED_PROP_IDBooleanCERT_DATE_STAMP_PROP_IDPyTimeCERT_ACCESS_STATE_PROP_IDintCERT_KEY_SPEC_PROP_IDintCERT_DESCRIPTION_PROP_IDUnicodeCERT_FRIENDLY_NAME_PROP_IDUnicodeCERT_PVK_FILE_PROP_IDUnicodeCERT_AUTO_ENROLL_PROP_IDUnicodeCERT_HASH_PROP_IDString containing a hashCERT_SHA1_HASH_PROP_IDString containing a hashCERT_MD5_HASH_PROP_IDString containing a hashCERT_SIGNATURE_HASH_PROP_IDString containing a hashCERT_KEY_IDENTIFIER_PROP_IDString containing a hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hashCERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROVCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing a hashCERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and CERT_ENHKEY_USAGE are identical)CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx with X509_ENHANCED_KEY_USAGECERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dictCERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT structCERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx with szOID_NEXT_UPDATE_LOCATIONReturn ValueType of object returned is dependent on the property id requested. - -Returns: - - typing.Any:One of the CERT_*_PROP_ID constants - - -PropId - - -Returned value - - - -CERT_ARCHIVED_PROP_IDBoolean -CERT_DATE_STAMP_PROP_IDPyTime -CERT_ACCESS_STATE_PROP_IDint -CERT_KEY_SPEC_PROP_IDint -CERT_DESCRIPTION_PROP_IDUnicode -CERT_FRIENDLY_NAME_PROP_IDUnicode -CERT_PVK_FILE_PROP_IDUnicode -CERT_AUTO_ENROLL_PROP_IDUnicode -CERT_HASH_PROP_IDString containing a hash -CERT_SHA1_HASH_PROP_IDString containing a hash -CERT_MD5_HASH_PROP_IDString containing a hash -CERT_SIGNATURE_HASH_PROP_IDString containing a hash -CERT_KEY_IDENTIFIER_PROP_IDString containing a hash -CERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing a hash -CERT_KEY_PROV_HANDLE_PROP_IDPyCRYPTPROV -CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString - -containing a hash -CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString - -containing a hash -CERT_CTL_USAGE_PROP_IDEncoded CTL_USAGE, decode as X509_ENHANCED_KEY_USAGE (CTL_USAGE and - -CERT_ENHKEY_USAGE are identical) -CERT_ENHKEY_USAGE_PROP_IDEncoded CTL_USAGE. Can be decoded using cryptoapi::CryptDecodeObjectEx - - - - - -with X509_ENHANCED_KEY_USAGE -CERT_KEY_PROV_INFO_PROP_IDCRYPT_KEY_PROV_INFO dict -CERT_KEY_CONTEXT_PROP_IDDict representing CERT_KEY_CONTEXT struct -CERT_NEXT_UPDATE_LOCATION_PROP_IDEncoded CERT_ALT_NAME_INFO, decode using cryptoapi::CryptDecodeObjectEx - - - - with szOID_NEXT_UPDATE_LOCATION -Return ValueType of object returned is dependent on the property id requested. - - - """ - pass - - - def CertSetCertificateContextProperty(self,PropId:'typing.Any',Data:'typing.Any',Flags:'typing.Any'=0) -> 'None': - """ - Sets a property for a certificate - -Args: - - PropId(typing.Any):Id of property to be set, CERT_*_PROP_ID - Data(typing.Any):The value to be set for the property. Type is dependent on PropId. Use None to delete a property. - Flags(typing.Any):Combination of CERT_SET_* flagsPropIdType of inputCERT_ARCHIVED_PROP_IDNone causes Archived flag to be cleared, any other causes it to be set no actual data, non-NULL pvData indicates presence of flagCERT_DATE_STAMP_PROP_IDPyTime specifying when cert was added to storeCERT_DESCRIPTION_PROP_IDUnicode stringCERT_FRIENDLY_NAME_PROP_IDUnicode stringCERT_PVK_FILE_PROP_IDUnicode stringCERT_AUTO_ENROLL_PROP_IDUnicode stringCERT_KEY_SPEC_PROP_IDInt, usually AT_KEYEXCHANGE or AT_SIGNATURECERT_HASH_PROP_IDString containing the hashCERT_SHA1_HASH_PROP_IDString containing the hashCERT_MD5_HASH_PROP_IDString containingg the hashCERT_SIGNATURE_HASH_PROP_IDString containing the hashCERT_KEY_IDENTIFIER_PROP_IDString containing the key idCERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_IDString containing the hashCERT_SUBJECT_NAME_MD5_HASH_PROP_IDString containing the hashCERT_RENEWAL_PROP_IDString containing the hashCERT_ENHKEY_USAGE_PROP_IDString containing an encoded PyCTL_USAGE. Use cryptoapi::CryptEncodeObjectEx with X509_ENHANCED_KEY_USAGE.CERT_CTL_USAGE_PROP_IDSame as CERT_ENHKEY_USAGE_PROP_ID - -Returns: - - None - - """ - pass - - -class PyCERT_EXTENSION(object): - """Dict containing a certificate extension""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ObjId(self)->'typing.Any': - """The OID identifying the type of extension""" - pass - - - @property - def Critical(self)->'typing.Any': - """If true, any contraints or limits contained in the extension should be considered absolute""" - pass - - - @property - def Value(self)->'typing.Any': - """Binary string containing ASN encoded data. To interpret or display extension data, see cryptoapi::CryptDecodeObjectEx and cryptoapi::CryptFormatObject.""" - pass - - -class PyCERT_KEY_ATTRIBUTES_INFO(object): - """Dict representing a CERT_KEY_ATTRIBUTES_INFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def KeyId(self)->'typing.Any': - """Usually a hash that uniquely identifies the key""" - pass - - - @property - def IntendedKeyUsage(self)->'PyCRYPT_BIT_BLOB': - """Contains a byte with CERT_*_KEY_USAGE flags""" - pass - - - @property - def PrivateKeyUsagePeriod(self)->'typing.Any': - """Private key's begin and end effective dates, may be None""" - pass - - -class PyCERT_NAME_INFO(object): - """Sequence of CERT_RDN's""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_NAME_VALUE(object): - """Dict containing type (CERT_RDN_*) and a unicode string""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_OTHER_NAME(object): - """Dict containing {ObjId, Value}. - -ObjId is one of the string object id's identifying the type of name. - -Value is a binary string containing an encoded CERT_NAME_VALUE that can be decoded - -using X509_UNICODE_NAME_VALUE to return the actual unicode string""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCERT_POLICY_INFO(object): - """Dict containing a certificate policy""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def PolicyIdentifier(self)->'typing.Any': - """OID identifying the policy""" - pass - - - @property - def PolicyQualifier(self)->'typing.Any': - """Sequence of CERT_POLICY_QUALIFIER dicts""" - pass - - -class PyCERT_PUBLIC_KEY_INFO(object): - """Dict containing an exported public key""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Algorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': - """Dict containing OID of the public key algorithm""" - pass - - - @property - def PublicKey(self)->'PyCRYPT_BIT_BLOB': - """Dict containing the encoded public key""" - pass - - -class PyCOMSTAT(object): - """A Python object, representing an COMSTAT structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def cbInQue(self)->'int': - """Specifies the number of bytes received by the serial provider but not yet read by a win32file::ReadFile operation""" - pass - - - @property - def cbOutQue(self)->'int': - """Specifies the number of bytes of user data remaining to be transmitted for all write operations. This value will be zero for a nonoverlapped write.""" - pass - - - @property - def fCtsHold(self)->'int': - """Specifies whether transmission is waiting for the CTS (clear-to-send) signal to be sent. If this member is TRUE, transmission is waiting.""" - pass - - - @property - def fDsrHold(self)->'int': - """Specifies whether transmission is waiting for the DSR (data-set-ready) signal to be sent. If this member is TRUE, transmission is waiting.""" - pass - - - @property - def fRlsdHold(self)->'int': - """Specifies whether transmission is waiting for the RLSD (receive-line-signal-detect) signal to be sent. If this member is TRUE, transmission is waiting.""" - pass - - - @property - def fXoffHold(self)->'int': - """Specifies whether transmission is waiting because the XOFF character was received. If this member is TRUE, transmission is waiting.""" - pass - - - @property - def fXoffSent(self)->'int': - """Specifies whether transmission is waiting because the XOFF character was transmitted. If this member is TRUE, transmission is waiting. Transmission halts when the XOFF character is transmitted to a system that takes the next character as XON, regardless of the actual character.""" - pass - - - @property - def fEof(self)->'int': - """Specifies whether the end-of-file (EOF) character has been received. If this member is TRUE, the EOF character has been received.""" - pass - - - @property - def fTxim(self)->'int': - """If this member is TRUE, there is a character queued for transmission that has come to the communications device by way of the TransmitCommChar function. The communications device transmits such a character ahead of other characters in the device's output buffer.""" - pass - - - @property - def fReserved(self)->'int': - """Reserved; do not use.""" - pass - - -class PyCOORD(object): - """Wrapper for a COORD struct. Create using PyCOORDType(X,Y)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def X(self)->'typing.Any': - """Horizontal coordinate""" - pass - - - @property - def Y(self)->'typing.Any': - """Vertical coordinate""" - pass - - -class PyCREDENTIAL(object): - """A dictionary containing information for a CREDENTIAL struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Flags(self)->'typing.Any': - """Combination of CRED_FLAGS_PROMPT_NOW, CRED_FLAGS_USERNAME_TARGET""" - pass - - - @property - def Type(self)->'typing.Any': - """Type of credential, one of CRED_TYPE_* values""" - pass - - - @property - def TargetName(self)->'str': - """Target of credential, can end with * for wildcard matching""" - pass - - - @property - def Comment(self)->'str': - """Descriptive text""" - pass - - - @property - def LastWritten(self)->'PyTime': - """Modification time, ignored on input""" - pass - - - @property - def CredentialBlob(self)->'str': - """Contains password for username credential, or PIN for certificate credential. This member is write-only.""" - pass - - - @property - def Persist(self)->'typing.Any': - """Specifies scope of persistence, one of CRED_PERSIST_* values""" - pass - - - @property - def Attributes(self)->'typing.Any': - """Tuple of PyCREDENTIAL_ATTRIBUTE dicts containing application-specific data, can be None""" - pass - - - @property - def TargetAlias(self)->'str': - """Alias for TargetName, only valid with CRED_TYPE_GENERIC""" - pass - - - @property - def UserName(self)->'str': - """User to be authenticated by target. Can be of the form username@domain or domain\\username. For CRED_TYPE_DOMAIN_CERTIFICATE, use win32cred::CredMarshalCredential to marshal the SHA1 hash of user's certficate""" - pass - - -class PyCREDENTIAL_ATTRIBUTE(object): - """A dictionary containing information for a CREDENTIAL_ATTRIBUTE struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Keyword(self)->'str': - """Attribute name, at most CRED_MAX_STRING_LENGTH chars""" - pass - - - @property - def Flags(self)->'typing.Any': - """Reserved, use only 0""" - pass - - - @property - def Value(self)->'typing.Any': - """Attribute value, at most CRED_MAX_VALUE_SIZE bytes. Unicode objects are treated as raw bytes.""" - pass - - -class PyCREDENTIAL_TARGET_INFORMATION(object): - """A dictionary representing a CREDENTIAL_TARGET_INFORMATION struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def TargetName(self)->'str': - """Target of credentials""" - pass - - - @property - def NetbiosServerName(self)->'str': - """""" - pass - - - @property - def DnsServerName(self)->'str': - """""" - pass - - - @property - def NetbiosDomainName(self)->'str': - """""" - pass - - - @property - def DnsDomainName(self)->'str': - """""" - pass - - - @property - def DnsTreeName(self)->'str': - """""" - pass - - - @property - def PackageName(self)->'str': - """Name of security package which mapped TargetName""" - pass - - - @property - def Flags(self)->'typing.Any': - """CRED_TI_* flags""" - pass - - - @property - def CredTypes(self)->'typing.Tuple[typing.Any, ...]': - """Tuple of CRED_TYPE_* values indicating which types of credentials are acceptable to target""" - pass - - -class PyCREDUI_INFO(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Parent(self)->'int': - """Handle to parent window, can be None""" - pass - - - @property - def MessageText(self)->'str': - """Message to appear in dialog""" - pass - - - @property - def CaptionText(self)->'str': - """Title of the dialog window""" - pass - - - @property - def Banner(self)->'int': - """Handle to a bitmap to be displayed""" - pass - - -class PyCRYPTHASH(object): - """Handle to a cryptographic hash""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CryptDestroyHash(self,) -> 'None': - """ - Frees the hash object - -Args: - - - -Returns: - - None - - """ - pass - - - def CryptDuplicateHash(self,Flags:'typing.Any'=0) -> 'PyCRYPTHASH': - """ - Clones the hash object - -Args: - - Flags(typing.Any):Reserved, use 0 if passed - -Returns: - - PyCRYPTHASH - - """ - pass - - - def CryptHashData(self,Data:'str',Flags:'typing.Any'=0) -> 'None': - """ - Adds data to the hash - -Args: - - Data(str):Data to be hashed - Flags(typing.Any):CRYPT_USERDATA or 0CommentsIf Flags is CRYPT_USERDATA, provider is expected to prompt user to enter data. MSDN says that MS CSPs ignore this flag - -Returns: - - None - - """ - pass - - - def CryptHashSessionKey(self,Key:'PyCRYPTKEY',Flags:'typing.Any'=0) -> 'None': - """ - Hashes a session key - -Args: - - Key(PyCRYPTKEY):The session key to be hashed - Flags(typing.Any):CRYPT_LITTLE_ENDIAN or 0 - -Returns: - - None - - """ - pass - - - def CryptSignHash(self,KeySpec:'typing.Any',Flags:'typing.Any'=0) -> 'str': - """ - Signs the hash - -Args: - - KeySpec(typing.Any):The key to be used to sign the hash, AT_KEYEXCHANGE,AT_SIGNATURE - Flags(typing.Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0CommentsThis methods signs only the hash, not the data that the hash represents - -Returns: - - str - - """ - pass - - - def CryptVerifySignature(self,Signature:'str',PubKey:'PyCRYPTKEY',Flags:'typing.Any'=0) -> 'None': - """ - Verifies that a signature matches hashed data - -Args: - - Signature(str):Signature data to verify - PubKey(PyCRYPTKEY):Public key of signer - Flags(typing.Any):CRYPT_NOHASHOID,CRYPT_X931_FORMAT or 0 - -Returns: - - None - - """ - pass - - - def CryptGetHashParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Union[typing.Any]': - """ - Retrieves the specified attribute of the hash - -Args: - - Param(typing.Any):The parameter to retrieve: HP_ALGID, HP_HASHSIZE, or HP_HASHVAL - Flags(typing.Any):Reserved, use 0 if passed inCommentsAfter this method has been called, no more data can be hashedReturn ValueType of returned object is dependent on the Param passed in - -Returns: - - typing.Union[typing.Any]:Reserved, use 0 if passed in -Comments - -After this method has been called, no more data can be hashed -Return ValueType of returned object is dependent on the Param passed in - - - """ - pass - - -class PyCRYPTKEY(object): - """Handle to a cryptographic key""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HCRYPTPROV(self)->'typing.Any': - """CSP used by the key""" - pass - - - @property - def HCRYPTKEY(self)->'typing.Any': - """Plain integer handle to the key""" - pass - - - def CryptDestroyKey(self,) -> 'None': - """ - Releases the handle to the key (does not delete permanent keys) - -Args: - - - -Returns: - - None - - """ - pass - - - def CryptExportKey(self,ExpKey:'PyCRYPTKEY',BlobType:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Any': - """ - Exports key or key pair as an encrypted blob - -Args: - - ExpKey(PyCRYPTKEY):Public key or session key of destination user. Use None if exporting a PUBLICKEYBLOB - BlobType(typing.Any):One of OPAQUEKEYBLOB,PRIVATEKEYBLOB,PUBLICKEYBLOB,SIMPLEBLOB,PLAINTEXTKEYBLOB,SYMMETRICWRAPKEYBLOB - Flags(typing.Any):Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey - -Returns: - - typing.Any:Combination of CRYPT_DESTROYKEY,CRYPT_SSL2_FALLBACK,CRYPT_OAEP or 0 -Return ValueReturns a binary blob that can be imported via PyCRYPTPROV::CryptImportKey - - - """ - pass - - - def CryptGetKeyParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'typing.Any': - """ - Retrieves key parameters - -Args: - - Param(typing.Any):One of the KP_* constants - Flags(typing.Any):Reserved, use only 0Return ValueType of returned object is dependent on the requested attribute - -Returns: - - typing.Any:Reserved, use only 0 -Return ValueType of returned object is dependent on the requested attribute - - - """ - pass - - - def CryptDuplicateKey(self,Reserved:'typing.Any'=0,Flags:'typing.Any'=0) -> 'PyCRYPTKEY': - """ - Creates an independent copy of the key - -Args: - - Reserved(typing.Any):Use 0 if passed in - Flags(typing.Any):Also reserved, use 0 - -Returns: - - PyCRYPTKEY - - """ - pass - - - def CryptEncrypt(self,Final:'typing.Any',Data:'typing.Any',Hash:'PyCRYPTHASH'=None,Flags:'typing.Any'=0) -> 'typing.Any': - """ - Encrypts and optionally hashes data - -Args: - - Final(typing.Any):Boolean, use True if this is final encryption operation - Data(typing.Any):Data to be encrypted - Hash(PyCRYPTHASH):Hash to be updated with data passed in, can be None - Flags(typing.Any):Reserved, use 0 if passed in - -Returns: - - typing.Any - - """ - pass - - - def CryptDecrypt(self,Final:'typing.Any',Data:'typing.Any',Hash:'PyCRYPTHASH'=None,Flags:'typing.Any'=0) -> 'typing.Any': - """ - Decrypts data - -Args: - - Final(typing.Any):Boolean, use True is this is last (or only) operation - Data(typing.Any):Data to be decrypted - Hash(PyCRYPTHASH):Hash to be used in signature verification, can be None - Flags(typing.Any):Reserved, use only 0 - -Returns: - - typing.Any - - """ - pass - - -class PyCRYPTMSG(object): - """Wrapper for a cryptographic message handle""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HCRYPTMSG(self)->'typing.Any': - """Raw message handle""" - pass - - - def CryptMsgClose(self,) -> 'None': - """ - Closes the message handle - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCRYPTPROTECT_PROMPTSTRUCT(object): - """A tuple representing a CRYPTPROTECT_PROMPTSTRUCT structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCRYPTPROV(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CryptReleaseContext(self,Flags:'typing.Any'=0) -> 'None': - """ - Releases the CSP handle - -Args: - - Flags(typing.Any):Reserved, use 0 if passed in - -Returns: - - None - - """ - pass - - - def CryptGenKey(self,Algid:'typing.Any',Flags:'typing.Any',KeyLen:'typing.Any'=0) -> 'PyCRYPTKEY': - """ - Generates a key pair or a session key - -Args: - - Algid(typing.Any):Algorithm identifier, one of the CALG_* values, or AT_KEYEXCHANGE/AT_SIGNATURE - Flags(typing.Any):Combination of CRYPT_CREATE_SALT,CRYPT_EXPORTABLE,CRYPT_NO_SALT,CRYPT_PREGEN,CRYPT_USER_PROTECTED,CRYPT_ARCHIVABLE - KeyLen(typing.Any):Length of key to generate, can be 0 to use provider's default key lengthCommentsDiffers from Api call in that the length is passed in separately - -Returns: - - PyCRYPTKEY - - """ - pass - - - def CryptGetProvParam(self,Param:'typing.Any',Flags:'typing.Any'=0) -> 'None': - """ - Retrieves specified attribute of provider - -Args: - - Param(typing.Any):One of the PP_* values - Flags(typing.Any):If param if PP_KEYSET_SEC_DESCR, can be a combination of OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATIONReturn ValueType of returned object is dependent on the attribute requested - -Returns: - - None:If param if PP_KEYSET_SEC_DESCR, can be a combination of - -OWNER_SECURITY_INFORMATION,GROUP_SECURITY_INFORMATION,DACL_SECURITY_INFORMATION,SACL_SECURITY_INFORMATION -Return ValueType of returned object is dependent on the attribute requested - - - """ - pass - - - def CryptGetUserKey(self,KeySpec:'typing.Any') -> 'PyCRYPTKEY': - """ - Returns a handle to one of user's key pairs - -Args: - - KeySpec(typing.Any):AT_KEYEXCHANGE or AT_SIGNATURE (some providers may implement extra key specs) - -Returns: - - PyCRYPTKEY - - """ - pass - - - def CryptGenRandom(self,Len:'typing.Any',SeedData:'str'=None) -> 'str': - """ - Generates random data of specified length - -Args: - - Len(typing.Any):Number of bytes to generate - SeedData(str):Random seed data - -Returns: - - str - - """ - pass - - - def CryptCreateHash(self,Algid:'typing.Any',Key:'PyCRYPTKEY'=None,Flags:'typing.Any'=0) -> 'PyCRYPTHASH': - """ - Creates a hash object for hashing large amounts of data - -Args: - - Algid(typing.Any):An algorithm identifier, CALG_*. - Key(PyCRYPTKEY):Used only for keyed hashes (MAC or HMAC), use None otherwise - Flags(typing.Any):Reserved, use 0 if passed in - -Returns: - - PyCRYPTHASH - - """ - pass - - - def CryptImportKey(self,Data:'typing.Any',PubKey:'PyCRYPTKEY'=None,Flags:'typing.Any'=0) -> 'PyCRYPTKEY': - """ - None - -Args: - - Data(typing.Any):The key blob to be imported - PubKey(PyCRYPTKEY):Key to be used to decrypt the blob, not used for importing public keys - Flags(typing.Any):Combination of CRYPT_EXPORTABLE, CRYPT_OAEP, CRYPT_NO_SALT, CRYPT_USER_PROTECTED - -Returns: - - PyCRYPTKEY - - """ - pass - - - def CryptExportPublicKeyInfo(self,KeySpec:'typing.Any',CertEncodingType:'typing.Any') -> 'PyCERT_PUBLIC_KEY_INFO': - """ - Exports a public key to send to other users - -Returned dict can be serialized for sending to another python application using pickle.dump - -Args: - - KeySpec(typing.Any):AT_KEYEXCHANGE or AT_SIGNATURE - CertEncodingType(typing.Any):Specifies encoding for exported key info - -Returns: - - PyCERT_PUBLIC_KEY_INFO - - """ - pass - - - def CryptImportPublicKeyInfo(self,Info:'typing.Any',CertEncodingType:'typing.Any') -> 'PyCRYPTKEY': - """ - Imports another user's public key - -Args: - - Info(typing.Any):PyCERT_PUBLIC_KEY_INFO dictionary as returned by PyCRYPTPROV::CryptExportPublicKeyInfo - CertEncodingType(typing.Any):Specifies encoding for exported key info - -Returns: - - PyCRYPTKEY - - """ - pass - - -class PyCRYPT_ALGORITHM_IDENTIFIER(object): - """Dictionary containing information that identifies an encryption - -algorithm and any extra parameters it requires""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ObjId(self)->'typing.Any': - """An szOID_* string identifying the algorithm""" - pass - - - @property - def Parameters(self)->'typing.Any': - """Blob of binary data containing encoded parameters""" - pass - - -class PyCRYPT_ATTRIBUTE(object): - """Dict representing a CRYPT_ATTRIBUTE struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ObjId(self)->'typing.Any': - """An szOID_* string identifying the attribute""" - pass - - - @property - def Value(self)->'typing.Tuple[typing.Any, ...]': - """A sequence of buffers containing the attribute values""" - pass - - -class PyCRYPT_BIT_BLOB(object): - """Dict containing raw data of a certain bit length""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Data(self)->'typing.Any': - """Binary data""" - pass - - - @property - def UnusedBits(self)->'typing.Any': - """Nbr of bits of last byte that are unused""" - pass - - -class PyCRYPT_DECRYPT_MESSAGE_PARA(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def CertStores(self)->'typing.Tuple[typing.Any, ...]': - """Sequence of certificate stores to be searched for a certificate with a private key that can be used to decrypt the message""" - pass - - - @property - def MsgAndCertEncodingType(self)->'typing.Any': - """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" - pass - - - @property - def Flags(self)->'typing.Any': - """Optional. CRYPT_MESSAGE_SILENT_KEYSET_FLAG can be used to suppress any dialogs that might be triggered by accessing a key container, such as a request for a PIN.""" - pass - - -class PyCRYPT_ENCRYPT_MESSAGE_PARA(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ContentEncryptionAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': - """Identifies the algorithm to be used""" - pass - - - @property - def CryptProv(self)->'PyCRYPTPROV': - """Optional. Handle to provider that will perform encryption, can be None for default provider""" - pass - - - @property - def EncryptionAuxInfo(self)->'typing.Any': - """Optional. Extra info required by some CSP's. Not supported yet, use only None""" - pass - - - @property - def Flags(self)->'typing.Any': - """Optional. Combination of CRYPT_MESSAGE_*_FLAG constants""" - pass - - - @property - def InnerContentType(self)->'typing.Any': - """Optional. Only used if message to be encrypted is already encoded""" - pass - - - @property - def MsgEncodingType(self)->'typing.Any': - """Optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" - pass - - -class PyCRYPT_SIGN_MESSAGE_PARA(object): - """Dict of parms defining how a message will be signed""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def SigningCert(self)->'PyCERT_CONTEXT': - """Certficate to be used to sign message""" - pass - - - @property - def HashAlgorithm(self)->'PyCRYPT_ALGORITHM_IDENTIFIER': - """Algorithm to be used for signed hash""" - pass - - - @property - def HashAuxInfo(self)->'typing.Any': - """Optional. Param is reserved, use only None.""" - pass - - - @property - def MsgCert(self)->'typing.Tuple[PyCERT_CONTEXT, ...]': - """Optional sequence of certificate to be included in the message.""" - pass - - - @property - def MsgCrl(self)->'typing.Tuple[typing.Any, ...]': - """Optional. Sequence of certificate revocation lists. Not yet supported, use only None.""" - pass - - - @property - def AuthAttr(self)->'typing.Tuple[PyCRYPT_ATTRIBUTE, ...]': - """Sequence of canonical attributes to be added to the message""" - pass - - - @property - def UnauthAttr(self)->'typing.Tuple[PyCRYPT_ATTRIBUTE, ...]': - """Sequence of arbitrary attributes""" - pass - - - @property - def Flags(self)->'typing.Any': - """Optional CRYPT_MESSAGE_*_FLAG that indicates content type if output is to be further encoded.""" - pass - - - @property - def InnerContentType(self)->'typing.Any': - """Optional, one of the CMSG_* content types if message is already encoded, .""" - pass - - - @property - def MsgEncodingType(self)->'typing.Any': - """Encoding types, optional. Defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" - pass - - -class PyCRYPT_VERIFY_MESSAGE_PARA(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def MsgAndCertEncodingType(self)->'typing.Any': - """Encoding types, defaults to X509_ASN_ENCODING combined with PKCS_7_ASN_ENCODING""" - pass - - - @property - def CryptProv(self)->'PyCRYPTPROV': - """CSP to be used to verify signature. Use None for default provider.""" - pass - - - @property - def PyGetSignerCertificate(self)->'typing.Any': - """Callback function that locates signer's certificate.""" - pass - - - @property - def GetArg(self)->'typing.Any': - """Argument to be passed to above function, can be any object.""" - pass - - -class PyCTL_CONTEXT(object): - """Object containing a Certificate Trust List""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def HCTL_CONTEXT(self)->'typing.Any': - """Raw message handle""" - pass - - - def CertFreeCTLContext(self,) -> 'None': - """ - Closes the CTL handle - -Args: - - - -Returns: - - None - - """ - pass - - - def CertEnumCTLContextProperties(self,) -> 'typing.Tuple[typing.Any, ...]': - """ - Lists property id's for the context - -Args: - - - -Returns: - - typing.Tuple[typing.Any, ...] - - """ - pass - - - def CertEnumSubjectInSortedCTL(self,) -> 'typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]': - """ - Retrieves trusted subjects contained in CRL - -Args: - - - -Returns: - - typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]:PyCTL_CONTEXT.CertEnumSubjectInSortedCTL - -((str,str),...) = CertEnumSubjectInSortedCTL()Retrieves trusted subjects contained in CRL -Return ValueReturns a sequence of tuples containing two strings (SubjectIdentifier, EncodedAttributes) - - - """ - pass - - - def CertDeleteCTLFromStore(self,) -> 'None': - """ - Removes the CTL from the store that it is contained in - -Args: - - - -Returns: - - None - - """ - pass - - - def CertSerializeCTLStoreElement(self,Flags:'typing.Any'=0) -> 'str': - """ - Serializes the CTL and its properties - -Args: - - Flags(typing.Any):Reserved, use only 0 if passed in - -Returns: - - str - - """ - pass - - -class PyCTL_USAGE(object): - """Sequence of string OIDs (szOID_*). This struct is identical to CERT_ENHKEY_USAGE.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyConsoleScreenBuffer(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetConsoleActiveScreenBuffer(self,) -> 'None': - """ - Sets this handle as the currently displayed screen - -buffer - -Args: - - - -Returns: - - None - - """ - pass - - - def GetConsoleCursorInfo(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Retrieves size and visibility of console's - -cursor - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any]:PyConsoleScreenBuffer.GetConsoleCursorInfo - -(Size, bVisible) = GetConsoleCursorInfo()Retrieves size and visibility of console's - -cursor -Return ValueReturns the size of the console's cursor expressed as a percentage of character size, and a boolen indicating - -if cursor is visible - - - """ - pass - - - def SetConsoleCursorInfo(self,Size:'typing.Any',Visible:'typing.Any') -> 'None': - """ - Sets the size and visibility of console's cursor - -Args: - - Size(typing.Any):Percentage of character size that cursor will occupy - Visible(typing.Any):Determines if cursor is visible - -Returns: - - None - - """ - pass - - - def GetConsoleMode(self,) -> 'typing.Any': - """ - Returns the input or output mode of the console buffer - -Args: - - - -Returns: - - typing.Any:PyConsoleScreenBuffer.GetConsoleMode - -int = GetConsoleMode()Returns the input or output mode of the console buffer -Return ValueReturns a combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants - - - """ - pass - - - def SetConsoleMode(self,Mode:'typing.Any') -> 'None': - """ - Sets the input or output mode of the console buffer - -Args: - - Mode(typing.Any):Combination of ENABLE_*_INPUT or ENABLE_*_OUTPUT constants - -Returns: - - None - - """ - pass - - - def ReadConsole(self,NumberOfCharsToRead:'typing.Any') -> 'typing.Any': - """ - Reads characters from the console input buffer - -Args: - - NumberOfCharsToRead(typing.Any):Characters to read - -Returns: - - typing.Any - - """ - pass - - - def WriteConsole(self,Buffer:'typing.Any') -> 'typing.Any': - """ - Writes characters at current cursor position - -Args: - - Buffer(typing.Any):String or Unicode to be written to consoleReturn ValueReturns the number of characters written - -Returns: - - typing.Any:String or Unicode to be written to consoleReturn ValueReturns the number of characters written - - - """ - pass - - - def FlushConsoleInputBuffer(self,) -> 'None': - """ - Flush input buffer - -Args: - - - -Returns: - - None - - """ - pass - - - def SetConsoleTextAttribute(self,Attributes:'typing.Any') -> 'None': - """ - Sets character attributes for subsequent write operations - -Args: - - Attributes(typing.Any):Attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants - -Returns: - - None - - """ - pass - - - def SetConsoleCursorPosition(self,CursorPosition:'PyCOORD') -> 'None': - """ - Sets the console screen buffer's cursor position - -Args: - - CursorPosition(PyCOORD):A PyCOORD containing the new cursor position - -Returns: - - None - - """ - pass - - - def SetConsoleScreenBufferSize(self,Size:'PyCOORD') -> 'None': - """ - Sets the size of the console screen buffer - -Args: - - Size(PyCOORD):COORD object containing the new dimensions - -Returns: - - None - - """ - pass - - - def SetConsoleWindowInfo(self,Absolute:'typing.Any',ConsoleWindow:'PySMALL_RECT') -> 'None': - """ - Changes size and position of a console's window - -Args: - - Absolute(typing.Any):If False, coordinates are relative to current position - ConsoleWindow(PySMALL_RECT):A SMALL_RECT containing the new window coordinates - -Returns: - - None - - """ - pass - - - def GetConsoleScreenBufferInfo(self,) -> 'typing.Any': - """ - Returns the state of the screen buffer - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetLargestConsoleWindowSize(self,) -> 'PyCOORD': - """ - Returns the largest possible size for the - -console's window - -Args: - - - -Returns: - - PyCOORD - - """ - pass - - - def FillConsoleOutputAttribute(self,Attribute:'typing.Any',Length:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': - """ - Set text attributes for a consecutive series of - -characters - -Args: - - Attribute(typing.Any):Text attributes to be set, combination of FOREGROUND_*, BACKGROUND_*, and COMMON_LVB_* constants - Length(typing.Any):The number of characters to set - WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set - -Returns: - - typing.Any:The screen position to begin atReturn ValueReturns the number of character cells whose attributes were set - - - """ - pass - - - def FillConsoleOutputCharacter(self,Character:'typing.Any',Length:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': - """ - Sets consecutive character positions to a specified - -character - -Args: - - Character(typing.Any):A single character to be used to fill the specified range - Length(typing.Any):The number of characters positions to fill - WriteCoord(PyCOORD):The screen position to begin atReturn ValueReturns the number of characters actually written - -Returns: - - typing.Any:The screen position to begin atReturn ValueReturns the number of characters actually written - - - """ - pass - - - def ReadConsoleOutputCharacter(self,Length:'typing.Any',ReadCoord:'PyCOORD') -> 'str': - """ - Reads consecutive characters from a starting - -position - -Args: - - Length(typing.Any):The number of characters positions to read - ReadCoord(PyCOORD):The screen position start reading from - -Returns: - - str - - """ - pass - - - def ReadConsoleOutputAttribute(self,Length:'typing.Any',ReadCoord:'PyCOORD') -> 'typing.Tuple[typing.Any, ...]': - """ - Retrieves attributes from consecutive character - -cells - -Args: - - Length(typing.Any):The number of attributes to read - ReadCoord(PyCOORD):The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters - -Returns: - - typing.Tuple[typing.Any, ...]:The screen position from which to start readingReturn ValueReturns a sequence of ints containing the attributes of a range of characters - - - """ - pass - - - def WriteConsoleOutputCharacter(self,Characters:'typing.Any',WriteCoord:'PyCOORD') -> 'typing.Any': - """ - Writes a string of characters at a specified position - -Args: - - Characters(typing.Any):Characters to be written - WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of characters actually written - -Returns: - - typing.Any:The screen position at which to start writingReturn ValueReturns the number of characters actually written - - - """ - pass - - - def WriteConsoleOutputAttribute(self,Attributes:'typing.Tuple[typing.Any, ...]',WriteCoord:'PyCOORD') -> 'typing.Any': - """ - Sets the attributes of a range of character cells - -Args: - - Attributes(typing.Tuple[typing.Any, ...]):A sequence of ints containing the attributes to be set - WriteCoord(PyCOORD):The screen position at which to start writingReturn ValueReturns the number of attributes set - -Returns: - - typing.Any:The screen position at which to start writingReturn ValueReturns the number of attributes set - - - """ - pass - - - def ScrollConsoleScreenBuffer(self,ScrollRectangle:'PySMALL_RECT',ClipRectangle:'PySMALL_RECT',DestinationOrigin:'PyCOORD',FillCharacter:'typing.Any',FillAttribute:'typing.Any') -> 'None': - """ - Scrolls a region of the display - -Args: - - ScrollRectangle(PySMALL_RECT):The region to be scrolled - ClipRectangle(PySMALL_RECT):Rectangle that limits display area affected, can be None - DestinationOrigin(PyCOORD):The position to which ScrollRectangle will be moved - FillCharacter(typing.Any):Character to fill in the area left blank by scrolling operation - FillAttribute(typing.Any):Text attributes to apply to FillCharacter - -Returns: - - None - - """ - pass - - - def GetCurrentConsoleFont(self,MaximumWindow:'typing.Any'=False) -> 'typing.Tuple[typing.Any, PyCOORD]': - """ - Returns currently displayed font - -Args: - - MaximumWindow(typing.Any):If True, retrieves font size for maximum window sizeCommentsOnly exists on XP or later. MSDN docs claim the returned COORD is the font size, but it's actually the window size. Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size.Return ValueReturns the index of current font and window size - -Returns: - - typing.Tuple[typing.Any, PyCOORD]:If True, retrieves font size for maximum window size -Comments - -Only exists on XP or later. - -MSDN docs claim the returned COORD is the font size, but it's actually the window size. - -Use PyConsoleScreenBuffer::GetConsoleFontSize for the font size. -Return ValueReturns the index of current font and window size - - - """ - pass - - - def GetConsoleFontSize(self,Font:'typing.Any') -> 'PyCOORD': - """ - Returns size of specified font for the console - -Args: - - Font(typing.Any):Index of font as returned by GetCurrentConsoleFontCommentsOnly exists on XP or later. - -Returns: - - PyCOORD - - """ - pass - - - def SetConsoleFont(self,Font:'typing.Any') -> 'None': - """ - Changes the font used by the screen buffer - -Args: - - Font(typing.Any):The number of the font to be setCommentsFunction is not documented on MSDN - -Returns: - - None - - """ - pass - - - def SetStdHandle(self,StdHandle:'typing.Any') -> 'None': - """ - Replaces one of calling process's standard handles with this handle - -Args: - - StdHandle(typing.Any):Specifies handle to be replaced - STD_INPUT_HANDLE, STD_OUTPUT_HANDLE, or STD_ERROR_HANDLE - -Returns: - - None - - """ - pass - - - def SetConsoleDisplayMode(self,Flags:'typing.Any',NewScreenBufferDimensions:'PyCOORD') -> 'None': - """ - Sets the display mode of the console buffer - -Args: - - Flags(typing.Any):CONSOLE_FULLSCREEN_MODE or CONSOLE_WINDOWED_MODE - NewScreenBufferDimensions(PyCOORD):New size of the screen buffer in characters - -Returns: - - None - - """ - pass - - - def WriteConsoleInput(self,Buffer:'typing.Tuple[PyINPUT_RECORD, ...]') -> 'typing.Any': - """ - Places input records in the console's input queue - -Args: - - Buffer(typing.Tuple[PyINPUT_RECORD, ...]):A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written - -Returns: - - typing.Any:A sequence of PyINPUT_RECORD objectsReturn ValueReturns the number of records written - - - """ - pass - - - def ReadConsoleInput(self,Length:'typing.Any') -> 'typing.Tuple[PyINPUT_RECORD, ...]': - """ - Reads input records and removes them from - -the input queue - -Args: - - Length(typing.Any):The number of input records to readCommentsThis functions blocks until at least one record is read. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects - -Returns: - - typing.Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments - -This functions blocks until at least one record is read. - -The number of records returned may be less than the nbr requested -Return ValueReturns a sequence of PyINPUT_RECORD objects - - - """ - pass - - - def PeekConsoleInput(self,Length:'typing.Any') -> 'typing.Tuple[PyINPUT_RECORD, ...]': - """ - Returns pending input records without - -removing them from the input queue - -Args: - - Length(typing.Any):The number of input records to readCommentsThis function does not block as ReadConsoleInput does. The number of records returned may be less than the nbr requestedReturn ValueReturns a sequence of PyINPUT_RECORD objects - -Returns: - - typing.Tuple[PyINPUT_RECORD, ...]:The number of input records to readComments - -This function does not block as ReadConsoleInput does. - -The number of records returned may be less than the nbr requested -Return ValueReturns a sequence of PyINPUT_RECORD objects - - - """ - pass - - - def GetNumberOfConsoleInputEvents(self,) -> 'typing.Any': - """ - Returns the number of unread records in the input - -queue - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCredHandle(object): - """Handle to a set of logon credentials, used with sspi authentication functions""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Detach(self,) -> 'typing.Any': - """ - Disassociates object from handle and returns integer value of handle, - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def FreeCredentialsHandle(self,) -> 'None': - """ - Releases the credentials handle and makes object unusable - -Args: - - - -Returns: - - None - - """ - pass - - - def QueryCredentialsAttributes(self,Attribute:'typing.Any') -> 'None': - """ - Returns information about the credentials - -Args: - - Attribute(typing.Any):SECPKG_* constant specifying which type of information to returnCommentsOnly SECPKG_CRED_ATTR_NAMES currently supportedAttributeReturn typeSECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials representSECPKG_ATTR_SUPPORTED_ALGSNot supported yet SecPkgCred_SupportedAlgs:SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet SecPkgCred_CipherStrengths:SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet SecPkgCred_SupportedProtocols:Return ValueType of returned values is dependent on Attribute - -Returns: - - None:SECPKG_* constant specifying which type of information to returnComments - -Only SECPKG_CRED_ATTR_NAMES currently supported - - - -Attribute - - -Return type - - - -SECPKG_CRED_ATTR_NAMESPyUnicode - returns username that credentials represent -SECPKG_ATTR_SUPPORTED_ALGSNot supported yet - -SecPkgCred_SupportedAlgs: -SECPKG_ATTR_CIPHER_STRENGTHSNot supported yet - -SecPkgCred_CipherStrengths: -SECPKG_ATTR_SUPPORTED_PROTOCOLSNot supported yet - -SecPkgCred_SupportedProtocols: -Return ValueType of returned values is dependent on Attribute - - - """ - pass - - -class PyCtxtHandle(object): - """Security context handle, as used with sspi functions""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Detach(self,) -> 'typing.Any': - """ - Disassociates object from handle and returns integer value of handle - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def CompleteAuthToken(self,Token:'PySecBufferDesc') -> 'None': - """ - Completes the authentication token - -Args: - - Token(PySecBufferDesc):The buffer that contains the token buffer used when the context was initializedCommentsThis method should be invoked on a context handle if the InitializeSecurityContext call that created it returned SEC_I_COMPLETE_NEEDED or SEC_I_COMPLETE_AND_CONTINUE - -Returns: - - None - - """ - pass - - - def QueryContextAttributes(self,Attribute:'typing.Any') -> 'None': - """ - Retrieves info about a security context - -Args: - - Attribute(typing.Any):SECPKG_ATTR_* constantCommentsNot all attributes are available for every security packageAttributeReturn typeSECPKG_ATTR_ACCESS_TOKENPyHANDLE - returns a handle to the context's access tokenSECPKG_ATTR_AUTHORITYPyUnicode - returns the name of the authenticating entitySECPKG_ATTR_CIPHER_STRENGTHS(int,int) - returns the mininum and maximum cipher strengths allowedSECPKG_ATTR_CONNECTION_INFOReturns a dictionary of connection info representing a SecPkgContext_ConnectionInfo structSECPKG_ATTR_SESSION_KEYstring - returns the session key for the contextSECPKG_ATTR_ISSUER_LIST_EX(int, string) - Returns names of trusted certificate issuersSECPKG_ATTR_FLAGSint - returns flags negotiated when context was establishedSECPKG_ATTR_PACKAGE_INFOdict - returns dictionary containing info for context's security packageSECPKG_ATTR_NEGOTIATION_INFO(int, dict) - returns state of negotiation (SECPKG_NEGOTIATION_COMPLETE, SECPKG_NEGOTIATION_OPTIMISTIC,SECPKG_NEGOTIATION_IN_PROGRESS) and info for negotiated packageSECPKG_ATTR_NAMESPyUnicode - returns the user name for the contextSECPKG_ATTR_SIZESdict containing buffer sizes to be used with the contextSECPKG_ATTR_PASSWORD_EXPIRYPyTime - returns time password expiresSECPKG_ATTR_LIFESPAN(PyTime,PyTime) - returns time period during which context is validSECPKG_ATTR_NATIVE_NAMES(PyUnicode,PyUnicode) - returns client and server namesSECPKG_ATTR_TARGET_INFORMATIONstring - returns the target for the contextSECPKG_ATTR_STREAM_SIZESdict (see SecPkgContext_StreamSizes) containing message buffer sizesSECPKG_ATTR_KEY_INFOdict (see SecPkgContext_KeyInfo) containing encryption key parametersSECPKG_ATTR_DCE_INFOnot supported yet SecPkgContext_DceInfoSECPKG_ATTR_LOCAL_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_REMOTE_CERT_CONTEXTnot supported yet PCCERT_CONTEXTSECPKG_ATTR_ROOT_STOREnot supported yet HCERTCONTEXTSECPKG_ATTR_SUPPORTED_ALGSnot supported yet SecPkgCred_SupportedAlgsSECPKG_ATTR_SUPPORTED_PROTOCOLSnot supported yet SecPkgCred_SupportedProtocols - -Returns: - - None - - """ - pass - - - def DeleteSecurityContext(self,) -> 'None': - """ - Frees the security context and invalidates the handle - -Args: - - - -Returns: - - None - - """ - pass - - - def QuerySecurityContextToken(self,) -> 'typing.Any': - """ - Returns the access token for a security context - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def MakeSignature(self,fqop:'typing.Any',Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': - """ - Creates a crytographic hash of a message using session key of the security - -context - -Args: - - fqop(typing.Any):Flags that indicate quality of protection desired, specific to each security package - Message(PySecBufferDesc):Buffer set that includes buffers for input data and output signature - MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKENReturn ValueReturns None on success, and output buffer in Message will contain the signature - -Returns: - - None:A sequential number used by some packages to verify that no extraneous messages have - -been receivedComments - -The buffer configuration is dependent on the security package. Usually there is one input buffer of - -type SECBUFFER_DATA and an output buffer of type SECBUFFER_TOKEN -Return ValueReturns None on success, and output buffer in Message will contain the signature - - - """ - pass - - - def VerifySignature(self,Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': - """ - None - -Args: - - Message(PySecBufferDesc):SecBufferDesc that contains data buffer and signature buffer - MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is a data buffer of type SECBUFFER_DATA and a signature buffer of type SECBUFFER_TOKENReturn ValueReturns quality of protection flags used to create signature - -Returns: - - None:A sequential number used by some packages to verify that no extraneous messages have - -been receivedComments - -The buffer configuration is dependent on the security package. Usually there is a data buffer of type - -SECBUFFER_DATA - -and a signature buffer of type SECBUFFER_TOKEN -Return ValueReturns quality of protection flags used to create signature - - - """ - pass - - - def EncryptMessage(self,fqop:'typing.Any',Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': - """ - Encrypts data with session key of security context - -Args: - - fqop(typing.Any):Flags that indicate quality of protection desired, specific to each security package - Message(PySecBufferDesc):PySecBufferDesc that contains data buffer(s) to be encrypted - MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one input buffer of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or SECBUFFER_TOKEN to receive signature or padding dataReturn ValueReturns None on success, and buffer(s) will contain encrypted data - -Returns: - - None:A sequential number used by some packages to verify that no extraneous messages have - -been receivedComments - -The buffer configuration is dependent on the security package. Usually there is one input buffer - -of type SECBUFFER_DATA to be encrypted in-place and another empty buffer of type SECBUFFER_PADDING or - -SECBUFFER_TOKEN to receive signature or padding data -Return ValueReturns None on success, and buffer(s) will contain encrypted data - - - """ - pass - - - def DecryptMessage(self,Message:'PySecBufferDesc',MessageSeqNo:'typing.Any') -> 'None': - """ - None - -Args: - - Message(PySecBufferDesc):PySecBufferDesc containing data buffers to be decrypted - MessageSeqNo(typing.Any):A sequential number used by some packages to verify that no extraneous messages have been receivedCommentsThe buffer configuration is dependent on the security package. Usually there is one buffer of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit in first bufferReturn ValueReturns flags specfic to security package indicating quality of protection - -Returns: - - None:A sequential number used by some packages to verify that no extraneous messages have - -been receivedComments - -The buffer configuration is dependent on the security package. Usually there is one buffer - -of type SECBUFFER_DATA which is modified in place and a second buffer of type SECBUFFER_TOKEN or - -SECBUFFER_PADDING containing signature, padding, or other extra data from encryption process that doesn't fit - -in first buffer -Return ValueReturns flags specfic to security package indicating quality of protection - - - """ - pass - - - def ImpersonateSecurityContext(self,) -> 'None': - """ - Impersonates a client security context - -Args: - - - -Returns: - - None - - """ - pass - - - def RevertSecurityContext(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDCB(object): - """A Python object, representing an DCB structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def BaudRate(self)->'int': - """current baud rate""" - pass - - - @property - def wReserved(self)->'int': - """not currently used""" - pass - - - @property - def XonLim(self)->'int': - """transmit XON threshold""" - pass - - - @property - def XoffLim(self)->'int': - """transmit XOFF threshold""" - pass - - - @property - def ByteSize(self)->'int': - """number of bits/byte, 4-8""" - pass - - - @property - def Parity(self)->'int': - """0-4=no,odd,even,mark,space""" - pass - - - @property - def StopBits(self)->'int': - """0,1,2 = 1, 1.5, 2""" - pass - - - @property - def XonChar(self)->'str': - """Tx and Rx XON character""" - pass - - - @property - def XoffChar(self)->'str': - """Tx and Rx XOFF character""" - pass - - - @property - def ErrorChar(self)->'str': - """error replacement character""" - pass - - - @property - def EofChar(self)->'str': - """end of input character""" - pass - - - @property - def EvtChar(self)->'str': - """received event character""" - pass - - - @property - def wReserved1(self)->'int': - """reserved; do not use""" - pass - - - @property - def fBinary(self)->'int': - """binary mode, no EOF check""" - pass - - - @property - def fParity(self)->'int': - """enable parity checking""" - pass - - - @property - def fOutxCtsFlow(self)->'int': - """CTS output flow control""" - pass - - - @property - def fOutxDsrFlow(self)->'int': - """DSR output flow control""" - pass - - - @property - def fDtrControl(self)->'int': - """DTR flow control type""" - pass - - - @property - def fDsrSensitivity(self)->'int': - """DSR sensitivity""" - pass - - - @property - def fTXContinueOnXoff(self)->'int': - """XOFF continues Tx""" - pass - - - @property - def fOutX(self)->'int': - """XON/XOFF out flow control""" - pass - - - @property - def fInX(self)->'int': - """XON/XOFF in flow control""" - pass - - - @property - def fErrorChar(self)->'int': - """enable error replacement""" - pass - - - @property - def fNull(self)->'int': - """enable null stripping""" - pass - - - @property - def fRtsControl(self)->'int': - """RTS flow control""" - pass - - - @property - def fAbortOnError(self)->'int': - """abort on error""" - pass - - - @property - def fDummy2(self)->'int': - """reserved""" - pass - - -class PyDEVMODE(object): - """Python object wrapping a DEVMODE structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def SpecVersion(self)->'typing.Any': - """Should always be set to DM_SPECVERSION""" - pass - - - @property - def DriverVersion(self)->'typing.Any': - """Version nbr assigned to printer driver by vendor""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure""" - pass - - - @property - def DriverExtra(self)->'typing.Any': - """Number of extra bytes allocated for driver data, can only be set when new object is created""" - pass - - - @property - def Fields(self)->'typing.Any': - """Bitmask of win32con.DM_* constants indicating which members are set""" - pass - - - @property - def Orientation(self)->'typing.Any': - """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" - pass - - - @property - def PaperSize(self)->'typing.Any': - """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" - pass - - - @property - def PaperLength(self)->'typing.Any': - """Specified in 1/10 millimeters""" - pass - - - @property - def PaperWidth(self)->'typing.Any': - """Specified in 1/10 millimeters""" - pass - - - @property - def Position_x(self)->'typing.Any': - """Position of display relative to desktop""" - pass - - - @property - def Position_y(self)->'typing.Any': - """Position of display relative to desktop""" - pass - - - @property - def DisplayOrientation(self)->'typing.Any': - """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" - pass - - - @property - def DisplayFixedOutput(self)->'typing.Any': - """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" - pass - - - @property - def Scale(self)->'typing.Any': - """Specified as percentage, eg 50 means half size of original""" - pass - - - @property - def Copies(self)->'typing.Any': - """Nbr of copies to print""" - pass - - - @property - def DefaultSource(self)->'typing.Any': - """DMBIN_* constant, or can be a printer-specific value""" - pass - - - @property - def PrintQuality(self)->'typing.Any': - """DMRES_* constant, interpreted as DPI if positive""" - pass - - - @property - def Color(self)->'typing.Any': - """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" - pass - - - @property - def Duplex(self)->'typing.Any': - """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" - pass - - - @property - def YResolution(self)->'typing.Any': - """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" - pass - - - @property - def TTOption(self)->'typing.Any': - """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" - pass - - - @property - def Collate(self)->'typing.Any': - """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" - pass - - - @property - def LogPixels(self)->'typing.Any': - """Pixels per inch (only for display devices""" - pass - - - @property - def BitsPerPel(self)->'typing.Any': - """Color resolution in bits per pixel""" - pass - - - @property - def PelsWidth(self)->'typing.Any': - """Pixel width of display""" - pass - - - @property - def PelsHeight(self)->'typing.Any': - """Pixel height of display""" - pass - - - @property - def DisplayFlags(self)->'typing.Any': - """Combination of DM_GRAYSCALE and DM_INTERLACED""" - pass - - - @property - def DisplayFrequency(self)->'typing.Any': - """Refresh rate""" - pass - - - @property - def ICMMethod(self)->'typing.Any': - """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" - pass - - - @property - def ICMIntent(self)->'typing.Any': - """Intent of ICM, one of win32con.DMICM_* values""" - pass - - - @property - def MediaType(self)->'typing.Any': - """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" - pass - - - @property - def DitherType(self)->'typing.Any': - """Dithering option, win32con.DMDITHER_*""" - pass - - - @property - def Reserved1(self)->'typing.Any': - """Reserved, use only 0""" - pass - - - @property - def Reserved2(self)->'typing.Any': - """Reserved, use only 0""" - pass - - - @property - def Nup(self)->'typing.Any': - """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" - pass - - - @property - def PanningWidth(self)->'typing.Any': - """Not used, leave as 0""" - pass - - - @property - def PanningHeight(self)->'typing.Any': - """Not used, leave as 0""" - pass - - - @property - def DeviceName(self)->'typing.Any': - """String of at most 32 chars""" - pass - - - @property - def FormName(self)->'typing.Any': - """Name of form as returned by win32print::EnumForms, at most 32 chars""" - pass - - - @property - def DriverData(self)->'typing.Any': - """Driver data appended to end of structure""" - pass - - - def Clear(self,) -> 'None': - """ - Resets all members of the structure - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDEVMODEW(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def SpecVersion(self)->'typing.Any': - """Should always be set to DM_SPECVERSION""" - pass - - - @property - def DriverVersion(self)->'typing.Any': - """Version nbr assigned to printer driver by vendor""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure""" - pass - - - @property - def DriverExtra(self)->'typing.Any': - """Number of extra bytes allocated for driver data, can only be set when new object is created""" - pass - - - @property - def Fields(self)->'typing.Any': - """Bitmask of win32con.DM_* constants indicating which members are set""" - pass - - - @property - def Orientation(self)->'typing.Any': - """Only applies to printers, DMORIENT_PORTRAIT or DMORIENT_LANDSCAPE""" - pass - - - @property - def PaperSize(self)->'typing.Any': - """Use 0 if PaperWidth and PaperLength are set, otherwise win32con.DMPAPER_* constant""" - pass - - - @property - def PaperLength(self)->'typing.Any': - """Specified in 1/10 millimeters""" - pass - - - @property - def PaperWidth(self)->'typing.Any': - """Specified in 1/10 millimeters""" - pass - - - @property - def Position_x(self)->'typing.Any': - """Position of display relative to desktop""" - pass - - - @property - def Position_y(self)->'typing.Any': - """Position of display relative to desktop""" - pass - - - @property - def DisplayOrientation(self)->'typing.Any': - """Display rotation: DMDO_DEFAULT,DMDO_90, DMDO_180, DMDO_270""" - pass - - - @property - def DisplayFixedOutput(self)->'typing.Any': - """DMDFO_DEFAULT, DMDFO_CENTER, DMDFO_STRETCH""" - pass - - - @property - def Scale(self)->'typing.Any': - """Specified as percentage, eg 50 means half size of original""" - pass - - - @property - def Copies(self)->'typing.Any': - """Nbr of copies to print""" - pass - - - @property - def DefaultSource(self)->'typing.Any': - """DMBIN_* constant, or can be a printer-specific value""" - pass - - - @property - def PrintQuality(self)->'typing.Any': - """DMRES_* constant, interpreted as DPI if positive""" - pass - - - @property - def Color(self)->'typing.Any': - """DMCOLOR_COLOR or DMCOLOR_MONOCHROME""" - pass - - - @property - def Duplex(self)->'typing.Any': - """For printers that do two-sided printing: DMDUP_SIMPLEX, DMDUP_HORIZONTAL, DMDUP_VERTICAL""" - pass - - - @property - def YResolution(self)->'typing.Any': - """Vertical printer resolution in DPI - if this is set, PrintQuality indicates horizontal DPI""" - pass - - - @property - def TTOption(self)->'typing.Any': - """TrueType options: DMTT_BITMAP, DMTT_DOWNLOAD, DMTT_DOWNLOAD_OUTLINE, DMTT_SUBDEV""" - pass - - - @property - def Collate(self)->'typing.Any': - """DMCOLLATE_TRUE or DMCOLLATE_FALSE""" - pass - - - @property - def LogPixels(self)->'typing.Any': - """Pixels per inch (only for display devices""" - pass - - - @property - def BitsPerPel(self)->'typing.Any': - """Color resolution in bits per pixel""" - pass - - - @property - def PelsWidth(self)->'typing.Any': - """Pixel width of display""" - pass - - - @property - def PelsHeight(self)->'typing.Any': - """Pixel height of display""" - pass - - - @property - def DisplayFlags(self)->'typing.Any': - """Combination of DM_GRAYSCALE and DM_INTERLACED""" - pass - - - @property - def DisplayFrequency(self)->'typing.Any': - """Refresh rate""" - pass - - - @property - def ICMMethod(self)->'typing.Any': - """Indicates where ICM is performed, one of win32con.DMICMMETHOD_* values""" - pass - - - @property - def ICMIntent(self)->'typing.Any': - """Intent of ICM, one of win32con.DMICM_* values""" - pass - - - @property - def MediaType(self)->'typing.Any': - """win32con.DMMEDIA_*, can also be a printer-specific value greater then DMMEDIA_USER""" - pass - - - @property - def DitherType(self)->'typing.Any': - """Dithering option, win32con.DMDITHER_*""" - pass - - - @property - def Reserved1(self)->'typing.Any': - """Reserved, use only 0""" - pass - - - @property - def Reserved2(self)->'typing.Any': - """Reserved, use only 0""" - pass - - - @property - def Nup(self)->'typing.Any': - """Controls printing of multiple logical pages per physical page, DMNUP_SYSTEM or DMNUP_ONEUP""" - pass - - - @property - def PanningWidth(self)->'typing.Any': - """Not used, leave as 0""" - pass - - - @property - def PanningHeight(self)->'typing.Any': - """Not used, leave as 0""" - pass - - - @property - def DeviceName(self)->'str': - """String of at most 32 chars""" - pass - - - @property - def FormName(self)->'typing.Any': - """Name of form as returned by win32print::EnumForms, at most 32 chars""" - pass - - - @property - def DriverData(self)->'typing.Any': - """Driver data appended to end of structure""" - pass - - -class PyDISPLAY_DEVICE(object): - """Python object wrapping a DISPLAY_DEVICE structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Size(self)->'typing.Any': - """Size of structure""" - pass - - - @property - def DeviceName(self)->'typing.Any': - """String of at most 32 chars""" - pass - - - @property - def DeviceString(self)->'typing.Any': - """String of at most 128 chars""" - pass - - - @property - def StateFlags(self)->'typing.Any': - """Bitmask of win32con.DISPLAY_DEVICE_* constants indicating current device status""" - pass - - - @property - def DeviceID(self)->'typing.Any': - """String of at most 128 chars""" - pass - - - @property - def DeviceKey(self)->'typing.Any': - """String of at most 128 chars""" - pass - - - def Clear(self,) -> 'None': - """ - Resets all members of the structure - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDLGITEMTEMPLATE(object): - """A tuple describing a control in a dialog box.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDLGTEMPLATE(object): - """A tuple of items describing a dialog box, that can be used to create the dialog.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDS_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDS_NAME_RESULT_ITEM(object): - """A tuple representing a DS_NAME_RESULT_ITEM""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDateTime(object): - """A Python object, representing an instant in time.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Format(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyDialogTemplate(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyEVTLOG_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyEVT_HANDLE(object): - """Handle to an event log, session, query, or any other object used with - -the Evt* event log functions on Vista and later. - -When the object is destroyed, EvtClose is called.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyEVT_RPC_LOGIN(object): - """Tuple containing login credentials for a remote Event Log connection""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyEventLogRecord(object): - """An object containing the data in an EVENTLOGRECORD.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Reserved(self)->'int': - """""" - pass - - - @property - def RecordNumber(self)->'int': - """""" - pass - - - @property - def TimeGenerated(self)->'PyTime': - """""" - pass - - - @property - def TimeWritten(self)->'PyTime': - """""" - pass - - - @property - def EventID(self)->'int': - """""" - pass - - - @property - def EventType(self)->'int': - """""" - pass - - - @property - def EventCategory(self)->'int': - """""" - pass - - - @property - def ReservedFlags(self)->'int': - """""" - pass - - - @property - def ClosingRecordNumber(self)->'int': - """""" - pass - - - @property - def SourceName(self)->'str': - """""" - pass - - - @property - def StringInserts(self)->'typing.Tuple[str, ...]': - """""" - pass - - - @property - def Sid(self)->'PySID': - """""" - pass - - - @property - def Data(self)->'str': - """""" - pass - - - @property - def ComputerName(self)->'str': - """""" - pass - - -class PyGROUP_INFO_0(object): - """A dictionary holding the information in a Win32 GROUP_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """Name of the group""" - pass - - -class PyGROUP_INFO_1(object): - """A dictionary holding the information in a Win32 GROUP_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """Name of the group""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """The group's comment.""" - pass - - -class PyGROUP_INFO_1002(object): - """A dictionary holding the information in a Win32 GROUP_INFO_1002 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - -class PyGROUP_INFO_1005(object): - """A dictionary holding the information in a Win32 GROUP_INFO_1005 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def attributes(self)->'typing.Any': - """""" - pass - - -class PyGROUP_INFO_2(object): - """A dictionary holding the information in a Win32 GROUP_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """Name of the group""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """The group's comment.""" - pass - - - @property - def group_id(self)->'typing.Any': - """""" - pass - - - @property - def attributes(self)->'typing.Any': - """""" - pass - - -class PyGROUP_USERS_INFO_0(object): - """A dictionary holding the information in a Win32 GROUP_USERS_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """Name of the group or user""" - pass - - -class PyGROUP_USERS_INFO_1(object): - """A dictionary holding the information in a Win32 GROUP_USERS_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """Name of the group or user""" - pass - - - @property - def attributes(self)->'typing.Any': - """""" - pass - - -class PyGdiHANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyGetSignerCertificate(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHANDLE(object): - """A Python object, representing a win32 HANDLE.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def handle(self)->'typing.Any': - """Integer value of the handleMethodsCloseCloses the handle closeSynonym for PyHANDLE::Close DetachDetaches the Win32 handle from the handle object. __nonzero__Used for detecting true/false. is nb_bool in Python 3.0 __int__Used when an integer representation of the handle object is required. __print__Used when the object is printed. tp_print __hash__Used when the hash value of an object is required tp_hash __str__Used when a string representation is required tp_str """ - pass - - - def Close(self,) -> 'None': - """ - Closes the underlying Win32 handle. - -Args: - - - -Returns: - - None - - """ - pass - - - def close(self,) -> 'None': - """ - Closes the underlying Win32 handle. - -Args: - - - -Returns: - - None - - """ - pass - - - def Detach(self,) -> 'typing.Any': - """ - Detaches the Win32 handle from the handle object. - -Args: - - - -Returns: - - typing.Any:PyHANDLE.Detach - -int = Detach()Detaches the Win32 handle from the handle object. -Comments - -After calling this function, the handle is effectively invalidated, - -but the handle is not closed. You would call this function when you - -need the underlying win32 handle to exist beyond the lifetime of the - -handle object. -Return ValueThe result is the value of the handle before it is detached. If the - -handle is already detached, this will return zero. - - - """ - pass - - -class PyHDESK(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetThreadDesktop(self,) -> 'None': - """ - Assigns this desktop to the calling thread - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumDesktopWindows(self,) -> 'typing.Tuple[int, ...]': - """ - Returns a list of handles to all top-level windows on desktop - -Args: - - - -Returns: - - typing.Tuple[int, ...] - - """ - pass - - - def SwitchDesktop(self,) -> 'None': - """ - Activates the desktop - -Args: - - - -Returns: - - None - - """ - pass - - - def CloseDesktop(self,) -> 'None': - """ - Closes the desktop handle - -Args: - - - -Returns: - - None - - """ - pass - - -class PyHDEVNOTIFY(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHHNTRACK(object): - """A Python object, representing an HHNTRACK - -structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def action(self)->'typing.Any': - """Specifies the action the user is about to take. This is an HHACT_ constant.""" - pass - - - @property - def hdr(self)->'typing.Any': - """Standard WM_NOTIFY header(win32help::NMHDR).""" - pass - - - @property - def curUrl(self)->'str': - """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" - pass - - - @property - def winType(self)->'typing.Any': - """A pointer to the current HH_WINTYPE structure (win32help::HH_WINTYPE).""" - pass - - -class PyHHN_NOTIFY(object): - """A Python object, representing an HHN_NOTIFY - -structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def hdr(self)->'typing.Any': - """Standard WM_NOTIFY header.(win32help::NMHDR)""" - pass - - - @property - def url(self)->'str': - """A multi-byte, zero-terminated string that specifies the topic navigated to, or the name of the help window being created.""" - pass - - -class PyHH_AKLINK(object): - """A Python object, representing an HH_AKLINK structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def indexOnFail(self)->'typing.Any': - """Specifies whether to display the keyword in the Index tab of the HTML Help Viewer if the lookup fails. The value of window specifies the Help Viewer.""" - pass - - - @property - def keywords(self)->'str': - """Specifies one or more ALink names or KLink keywords to look up. Multiple entries are delimited by a semicolon.""" - pass - - - @property - def url(self)->'str': - """Specifies the topic file to navigate to if the lookup fails. url refers to a valid topic within the specified compiled help (.chm) file and does not support Internet protocols that point to an HTML file.""" - pass - - - @property - def msgText(self)->'str': - """Specifies the text to display in a message box if the lookup fails and indexOnFail is FALSE and url is NULL.""" - pass - - - @property - def msgTitle(self)->'str': - """Specifies the caption of the message box in which the msgText parameter appears.""" - pass - - - @property - def window(self)->'str': - """Specifies the name of the window type in which to display one of the following: The selected topic, if the lookup yields one or more matching topics. The topic specified in url, if the lookup fails and a topic is specified in url. The Index tab, if the lookup fails and indexOnFail is specified as TRUE.""" - pass - - -class PyHH_FTS_QUERY(object): - """A Python object, representing an HH_FTS_QUERY - -structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def uniCodeStrings(self)->'typing.Any': - """TRUE if all strings are Unicode.""" - pass - - - @property - def proximity(self)->'typing.Any': - """Word proximity.""" - pass - - - @property - def stemmedSearch(self)->'typing.Any': - """TRUE for StemmedSearch only.""" - pass - - - @property - def titleOnly(self)->'typing.Any': - """TRUE for Title search only.""" - pass - - - @property - def execute(self)->'typing.Any': - """TRUE to initiate the search.""" - pass - - - @property - def searchQuery(self)->'str': - """String containing the search query.""" - pass - - -class PyHH_POPUP(object): - """A Python object, representing an HH_POPUP structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def hinst(self)->'typing.Any': - """Instance handle of the program or DLL to retrieve the string resource from. Ignored if idString is zero.""" - pass - - - @property - def idString(self)->'typing.Any': - """Specifies zero, or a resource ID in the program or DLL specified in hinst.""" - pass - - - @property - def clrForeground(self)->'typing.Any': - """Specifies the RGB value to use for the foreground color of the pop-up window. To use the system color for the window text, specify -1.""" - pass - - - @property - def clrBackground(self)->'typing.Any': - """Specifies the RGB value to use for the background color of the pop-up window. To use the system color for the window background, specify -1.""" - pass - - - @property - def text(self)->'str': - """Specifies the text to display if idString is zero.""" - pass - - - @property - def font(self)->'str': - """Specifies the font attributes to use for the text in the pop-up window. Use the following format to specify font family, point size, character set, and font format: facename[, point size[, charset[ BOLD ITALIC UNDERLINE]]] To omit an attribute, enter a comma. For example, to specify bold, 10-pt, MS Sans Serif font, font would be: MS Sans Serif, 10, , BOLD""" - pass - - - @property - def pt(self)->'typing.Any': - """(x,y). Specifies (in pixels) where the top center of the pop-up window should be located.""" - pass - - - @property - def margins(self)->'typing.Any': - """(left,top,right,bottom). Specifies (in pixels) the margins to use on the left, top, right, and bottom sides of the pop-up window. The default for all rectangle members is -1.""" - pass - - -class PyHH_WINTYPE(object): - """A Python object, representing an HH_WINTYPE structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def uniCodeStrings(self)->'typing.Any': - """Specifies whether the strings used in this structure are UNICODE.""" - pass - - - @property - def validMembers(self)->'typing.Any': - """Specifies which members in the structure are valid.""" - pass - - - @property - def winProperties(self)->'typing.Any': - """Specifies the properties of the window, such as whether it is the standard HTML Help Viewer or whether it includes a Search tab.""" - pass - - - @property - def styles(self)->'typing.Any': - """Specifies the styles used to create the window. These styles can be ignored, combined with extended styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" - pass - - - @property - def exStyles(self)->'typing.Any': - """Specifies the extended styles used to create the window. These styles can be ignored, combined with default styles, or used exclusively depending on the value of the validMembers and winProperties parameters.""" - pass - - - @property - def showState(self)->'typing.Any': - """Specifies the initial display state of the window. Valid values are the same as those for the Win32 API ShowWindow function.""" - pass - - - @property - def hwndHelp(self)->'typing.Any': - """Specifies the handle of the window if the window has been created.""" - pass - - - @property - def hwndCaller(self)->'typing.Any': - """Specifies the window that will receive HTML Help notification messages. Notification messages are sent via Windows WM_NOTIFY messages.""" - pass - - - @property - def hwndToolBar(self)->'typing.Any': - """Specifies the handle of the toolbar.""" - pass - - - @property - def hwndNavigation(self)->'typing.Any': - """Specifies the handle of the Navigation pane.""" - pass - - - @property - def hwndHTML(self)->'typing.Any': - """Specifies the handle of the Topic pane, which hosts Shdocvw.dll.""" - pass - - - @property - def navWidth(self)->'typing.Any': - """Specifies the width of the Navigation pane when the Help Viewer is expanded.""" - pass - - - @property - def toolBarFlags(self)->'typing.Any': - """Specifies which buttons to include on the toolbar.""" - pass - - - @property - def notExpanded(self)->'typing.Any': - """Specifies that the Help Viewer open with the Navigation pane closed.""" - pass - - - @property - def curNavType(self)->'typing.Any': - """Specifies the default tab to display on the Navigation pane.""" - pass - - - @property - def idNotify(self)->'typing.Any': - """Specifies a non-zero ID for enabling HTML Help notification messages. This ID is passed as the wParam value of Windows WM_NOTIFY messages.""" - pass - - - @property - def typeName(self)->'str': - """A null-terminated string that specifies the name of the window type.""" - pass - - - @property - def caption(self)->'str': - """A null-terminated string that specifies the caption to display in the title bar of the window.""" - pass - - - @property - def windowPos(self)->'typing.Any': - """(left,top,right,bottom). Specifies the coordinates of the window in pixels.""" - pass - - - @property - def HTMLPos(self)->'typing.Any': - """(left,top,right,bottom). Specifies the coordinates of the Topic pane.""" - pass - - - @property - def toc(self)->'str': - """Specifies the contents (.hhc) file to display in the Navigation pane.""" - pass - - - @property - def index(self)->'str': - """Specifies the index (.hhk) file to display in the Navigation pane.""" - pass - - - @property - def file(self)->'str': - """Specifies the default HTML file to display in the Topic pane.""" - pass - - - @property - def home(self)->'str': - """Specifies the file or URL to display in the Topic pane when the Home button is clicked.""" - pass - - - @property - def jump1(self)->'str': - """Specifies the text to display underneath the Jump1 button.""" - pass - - - @property - def jump2(self)->'str': - """Specifies the text to display underneath the Jump2 button.""" - pass - - - @property - def urlJump1(self)->'str': - """Specifies the URL to jump to when the Jump1 button is clicked.""" - pass - - - @property - def urlJump2(self)->'str': - """Specifies the URL to jump to when the Jump2 button is clicked.""" - pass - - -class PyHINTERNET(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHKEY(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHTHEME(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyHWINSTA(object): - """Wrapper for a handle to a window station - returned by CreateWindowStation, OpenWindowStation, or GetProcessWindowStation""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumDesktops(self,) -> 'typing.Tuple[typing.Any, ...]': - """ - Lists names of desktops in the window station - -Args: - - - -Returns: - - typing.Tuple[typing.Any, ...] - - """ - pass - - - def SetProcessWindowStation(self,) -> 'None': - """ - Associates the calling process with the window station - -Args: - - - -Returns: - - None - - """ - pass - - - def CloseWindowStation(self,) -> 'None': - """ - Closes the window station handle - -Args: - - - -Returns: - - None - - """ - pass - - -class PyICONINFO(object): - """Tuple describing an icon or cursor""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIID(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyINPUT_RECORD(object): - """Interface to the INPUT_RECORD struct used with console IO functions. Create using - -PyINPUT_RECORDType(EventType)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def EventType(self)->'typing.Any': - """One of KEY_EVENT, MOUSE_EVENT, WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT. Cannot be changed after object is created""" - pass - - - @property - def KeyDown(self)->'typing.Any': - """True for a key press, False for key release""" - pass - - - @property - def RepeatCount(self)->'typing.Any': - """Nbr of repeats generated (key was held down if >1)""" - pass - - - @property - def VirtualKeyCode(self)->'typing.Any': - """Device-independent key code, win32con.VK_*""" - pass - - - @property - def VirtualScanCode(self)->'typing.Any': - """Device-dependent scan code generated by keyboard""" - pass - - - @property - def Char(self)->'str': - """Single unicode character generated by the keypress""" - pass - - - @property - def ControlKeyState(self)->'typing.Any': - """State of modifier keys, combination of CAPSLOCK_ON, ENHANCED_KEY, LEFT_ALT_PRESSED, LEFT_CTRL_PRESSED, NUMLOCK_ON, RIGHT_ALT_PRESSED, RIGHT_CTRL_PRESSED, SCROLLLOCK_ON, SHIFT_PRESSED""" - pass - - - @property - def ButtonState(self)->'typing.Any': - """Bitmask representing which mouse buttons were pressed.""" - pass - - - @property - def EventFlags(self)->'typing.Any': - """DOUBLE_CLICK, MOUSE_MOVED or MOUSE_WHEELED, or 0. If 0, indicates a mouse button press""" - pass - - - @property - def MousePosition(self)->'PyCOORD': - """Position in character coordinates""" - pass - - - @property - def Size(self)->'PyCOORD': - """New size of screen buffer in character rows/columns""" - pass - - - @property - def SetFocus(self)->'typing.Any': - """Reserved - Used only with type FOCUS_EVENT. This event is Reserved, and should be ignored.""" - pass - - - @property - def CommandId(self)->'typing.Any': - """Used only with event type MENU_EVENT, which is reserved and should not be used""" - pass - - -class PyLOCALGROUP_INFO_0(object): - """A dictionary holding the information in a Win32 LOCALGROUP_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """Name of the group""" - pass - - -class PyLOCALGROUP_INFO_1(object): - """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """Name of the group""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """The group's comment.""" - pass - - -class PyLOCALGROUP_INFO_1002(object): - """A dictionary holding the information in a Win32 LOCALGROUP_INFO_1002 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - -class PyLOCALGROUP_MEMBERS_INFO_0(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_0 - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sid(self)->'PySID': - """""" - pass - - -class PyLOCALGROUP_MEMBERS_INFO_1(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_1 - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sid(self)->'PySID': - """""" - pass - - - @property - def sidusage(self)->'typing.Any': - """""" - pass - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - -class PyLOCALGROUP_MEMBERS_INFO_2(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_2 - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sid(self)->'PySID': - """""" - pass - - - @property - def sidusage(self)->'typing.Any': - """""" - pass - - - @property - def domainandname(self)->'typing.Union[str]': - """string containing the name of the member prefixed by the domain name and the "\\" separator character""" - pass - - -class PyLOCALGROUP_MEMBERS_INFO_3(object): - """A dictionary holding the information in a Win32 LOCALGROUP_MEMBERS_INFO_3 - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def domainandname(self)->'typing.Union[str]': - """string containing the name of the member prefixed by the domain name and the "\\" separator character""" - pass - - -class PyLOGBRUSH(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Style(self)->'typing.Any': - """Brush style, one of win32con.BS_* values""" - pass - - - @property - def Color(self)->'typing.Any': - """RGB color value. Can also be DIB_PAL_COLORS or DIB_RGB_COLORS if Style is BS_DIBPATTERN or BS_DIBPATTERNPT=""" - pass - - - @property - def Hatch(self)->'typing.Union[int, typing.Any]': - """For BS_HATCH style, one of win32con.HS_*. Not used For BS_SOLID or BS_HOLLOW. For a pattern brush, this should be a handle to a bitmap""" - pass - - -class PyLOGFONT(object): - """A Python object, representing an PyLOGFONT structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def lfHeight(self)->'int': - """""" - pass - - - @property - def lfWidth(self)->'int': - """""" - pass - - - @property - def lfEscapement(self)->'int': - """""" - pass - - - @property - def lfOrientation(self)->'int': - """""" - pass - - - @property - def lfWeight(self)->'int': - """""" - pass - - - @property - def lfItalic(self)->'int': - """""" - pass - - - @property - def lfUnderline(self)->'int': - """""" - pass - - - @property - def lfStrikeOut(self)->'int': - """""" - pass - - - @property - def lfCharSet(self)->'int': - """""" - pass - - - @property - def lfOutPrecision(self)->'int': - """""" - pass - - - @property - def lfClipPrecision(self)->'int': - """""" - pass - - - @property - def lfQuality(self)->'int': - """""" - pass - - - @property - def lfPitchAndFamily(self)->'int': - """""" - pass - - - @property - def lfFaceName(self)->'str': - """Name of the typeface, at most 31 characters""" - pass - - -class PyLSA_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyLUID_AND_ATTRIBUTES(object): - """A sequence containing (LUID,Attributes) representing an LUID_AND_ATTRIBUTES structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyLsaLogon_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyMSG(object): - """A tuple representing a win32 MSG structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyNETRESOURCE(object): - """A Python object that encapsulates a Win32 NETRESOURCE structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwScope(self)->'int': - """""" - pass - - - @property - def dwType(self)->'int': - """""" - pass - - - @property - def dwDisplayType(self)->'int': - """""" - pass - - - @property - def dwUsage(self)->'int': - """""" - pass - - - @property - def localName(self)->'str': - """""" - pass - - - @property - def remoteName(self)->'str': - """""" - pass - - - @property - def comment(self)->'str': - """""" - pass - - - @property - def provider(self)->'str': - """""" - pass - - -class PyNET_VALIDATE_AUTHENTICATION_INPUT_ARG(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyNET_VALIDATE_PERSISTED_FIELDS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyNMHDR(object): - """A Python object, representing an NMHDR - -structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def hwndFrom(self)->'typing.Any': - """Window handle to the control sending a message. ??? 64-bit problem here ???""" - pass - - - @property - def idFrom(self)->'typing.Any': - """Identifier of the control sending a message.""" - pass - - - @property - def code(self)->'typing.Any': - """Notification code. This member can be a control-specific notification code or it can be one of the common notification codes.""" - pass - - -class PyNOTIFYICONDATA(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyOVERLAPPED(object): - """A Python object, representing an overlapped structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Offset(self)->'int': - """Specifies a file position at which to start the transfer. The file position is a byte offset from the start of the file. The calling process sets this member before calling the ReadFile or WriteFile function. This member is ignored when reading from or writing to named pipes and communications devices.""" - pass - - - @property - def OffsetHigh(self)->'int': - """Specifies the high word of the byte offset at which to start the transfer.""" - pass - - - @property - def object(self)->'typing.Any': - """Any python object that you want to attach to your overlapped I/O request.""" - pass - - - @property - def dword(self)->'typing.Any': - """An integer buffer that may be used by overlapped functions (eg, win32file::WaitCommEvent)""" - pass - - - @property - def hEvent(self)->'int': - """Identifies an event set to the signaled state when the transfer has been completed. The calling process sets this member before calling the win32file::ReadFile, win32file::WriteFile, win32pipe::ConnectNamedPipe, or win32pipe::TransactNamedPipe function.""" - pass - - - @property - def Internal(self)->'int': - """Reserved for operating system use. (pointer-sized value)""" - pass - - - @property - def InternalHigh(self)->'int': - """Reserved for operating system use. (pointer-sized value)""" - pass - - -class PyOVERLAPPEDReadBuffer(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyPERF_COUNTER_DEFINITION(object): - """An object encapsulating a Windows NT Performance Monitor counter definition - -(PERF_COUNTER_DEFINITION).""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def DefaultScale(self)->'int': - """The default scale of the counter.""" - pass - - - @property - def DetailLevel(self)->'int': - """The detail level of the counter.""" - pass - - - @property - def CounterType(self)->'int': - """The counter type.""" - pass - - - @property - def CounterNameTitleIndex(self)->'int': - """""" - pass - - - @property - def CounterHelpTitleIndex(self)->'int': - """Sentinel""" - pass - - - def Increment(self,) -> 'None': - """ - Increments the value of the performance counter - -Args: - - - -Returns: - - None - - """ - pass - - - def Decrement(self,) -> 'None': - """ - Decrements the value of the performance counter - -Args: - - - -Returns: - - None - - """ - pass - - - def Set(self,) -> 'None': - """ - Sets the counter to a specific value - -Args: - - - -Returns: - - None - - """ - pass - - - def Get(self,) -> 'None': - """ - Gets the current value of the counter - -Args: - - - -Returns: - - None - - """ - pass - - -class PyPERF_OBJECT_TYPE(object): - """A Python object, representing a PERF_OBJECT_TYPE structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ObjectNameTitleIndex(self)->'int': - """""" - pass - - - @property - def ObjectHelpTitleIndex(self)->'int': - """""" - pass - - - @property - def DefaultCounterIndex(self)->'int': - """""" - pass - - - def Close(self,) -> 'None': - """ - Closes the object. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyPOINT(object): - """Tuple of two ints (x,y) representing a POINT struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyPROFILEINFO(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def UserName(self)->'str': - """Name of user for which to load profile""" - pass - - - @property - def Flags(self)->'typing.Any': - """Combination of PI_* flags""" - pass - - - @property - def ProfilePath(self)->'str': - """Path to roaming profile, can be None. Use win32net::NetUserGetInfo to retrieve user's profile path""" - pass - - - @property - def DefaultPath(self)->'str': - """Path to Default user profile, can be None""" - pass - - - @property - def ServerName(self)->'str': - """Domain controller, can be None""" - pass - - - @property - def PolicyPath(self)->'str': - """Location of policy file, can be None""" - pass - - - @property - def Profile(self)->'PyHKEY': - """Handle to root of user's registry key. This member is output.""" - pass - - -class PyPerfMonManager(object): - """A Python object""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Close(self,) -> 'None': - """ - Closes the performance monitor manager. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyPrinterHANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyRECT(object): - """Tuple of 4 ints defining a rectangle: (left, top, right, bottom)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyResourceId(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySCROLLINFO(object): - """A tuple representing a SCROLLINFO structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySC_HANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySECURITY_ATTRIBUTES(object): - """A Python object, representing a SECURITY_ATTRIBUTES structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def bInheritHandle(self)->'typing.Any': - """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle.""" - pass - - - @property - def SECURITY_DESCRIPTOR(self)->'PySECURITY_DESCRIPTOR': - """A PySECURITY_DESCRIPTOR, or None""" - pass - - -class PySECURITY_DESCRIPTOR(object): - """A Python object, representing a SECURITY_DESCRIPTOR structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Initialize the SD. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSecurityDescriptorOwner(self,) -> 'PySID': - """ - Return the owner of the security descriptor. - -Args: - - - -Returns: - - PySID - - """ - pass - - - def GetSecurityDescriptorDacl(self,) -> 'PyACL': - """ - Return the discretionary ACL of the security - -descriptor. - -Args: - - - -Returns: - - PyACL - - """ - pass - - - def GetSecurityDescriptorSacl(self,) -> 'PyACL': - """ - Return system access control list (SACL) of SD - -Args: - - - -Returns: - - PyACL - - """ - pass - - - def GetSecurityDescriptorControl(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns tuple of Control bit flags and - -revision of SD. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def SetSecurityDescriptorOwner(self,sid:'PySID',bOwnerDefaulted:'typing.Any') -> 'None': - """ - Set owner SID. - -Args: - - sid(PySID):The sid to be set as owner in the security descriptor. - bOwnerDefaulted(typing.Any):Normally set to false since this explicitely set the owner. - -Returns: - - None - - """ - pass - - - def SetSecurityDescriptorGroup(self,sid:'PySID',bOwnerDefaulted:'typing.Any') -> 'typing.Any': - """ - Set group SID. - -Args: - - sid(PySID):The group sid to be set in the security descriptor. - bOwnerDefaulted(typing.Any):Normally set to false since this explicitely set the owner. - -Returns: - - typing.Any - - """ - pass - - - def SetSecurityDescriptorSacl(self,bSaclPresent:'typing.Any',SACL:'PyACL',bSaclDefaulted:'typing.Any') -> 'None': - """ - Replaces system access control list (SACL) in the security - -descriptor. - -Args: - - bSaclPresent(typing.Any):A flag indicating if SACL is to be used. If false, last 2 parms are ignored. - SACL(PyACL):The SACL to set in the security descriptor - bSaclDefaulted(typing.Any):Flag, set to false if user has specifically set the SACL. - -Returns: - - None - - """ - pass - - - def IsValid(self,) -> 'None': - """ - Determines if the security descriptor is valid. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetLength(self,) -> 'None': - """ - return length of security descriptor (GetSecurityDescriptorLenght). - -Args: - - - -Returns: - - None - - """ - pass - - - def IsSelfRelative(self,) -> 'None': - """ - Returns 1 if security descriptor is self relative, 0 if absolute - -Args: - - - -Returns: - - None - - """ - pass - - - def SetSecurityDescriptorControl(self,ControlBitsOfInterest:'typing.Any',ControlBitsToSet:'typing.Any') -> 'None': - """ - Sets the control bit flags related to inheritance for a - -security descriptor - -Args: - - ControlBitsOfInterest(typing.Any):Bitmask of flags to be modified - ControlBitsToSet(typing.Any):Bitmask containing flag values to setCommentsOnly exists on Windows 2000 or later - -Returns: - - None - - """ - pass - - -class PySERVER_INFO_100(object): - """A dictionary holding the information in a Win32 SERVER_INFO_100 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'typing.Any': - """""" - pass - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - -class PySERVER_INFO_101(object): - """A dictionary holding the information in a Win32 SERVER_INFO_101 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'typing.Any': - """""" - pass - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def version_major(self)->'typing.Any': - """""" - pass - - - @property - def version_minor(self)->'typing.Any': - """""" - pass - - - @property - def type(self)->'typing.Any': - """one of the SV_TYPE_* constants""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - -class PySERVER_INFO_102(object): - """A dictionary holding the information in a Win32 SERVER_INFO_102 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'typing.Any': - """""" - pass - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def version_major(self)->'typing.Any': - """""" - pass - - - @property - def version_minor(self)->'typing.Any': - """""" - pass - - - @property - def type(self)->'typing.Any': - """one of the SV_TYPE_* constants""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def users(self)->'typing.Any': - """""" - pass - - - @property - def disc(self)->'typing.Any': - """""" - pass - - - @property - def hidden(self)->'typing.Any': - """""" - pass - - - @property - def announce(self)->'typing.Any': - """""" - pass - - - @property - def anndelta(self)->'typing.Any': - """""" - pass - - - @property - def userpath(self)->'typing.Union[str]': - """""" - pass - - -class PySERVER_INFO_402(object): - """A dictionary holding the information in a Win32 SERVER_INFO_402 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ulist_mtime(self)->'typing.Any': - """""" - pass - - - @property - def glist_mtime(self)->'typing.Any': - """""" - pass - - - @property - def alist_mtime(self)->'typing.Any': - """""" - pass - - - @property - def security(self)->'typing.Any': - """""" - pass - - - @property - def numadmin(self)->'typing.Any': - """""" - pass - - - @property - def lanmask(self)->'typing.Any': - """""" - pass - - - @property - def guestacct(self)->'typing.Union[str]': - """""" - pass - - - @property - def chdevs(self)->'typing.Any': - """""" - pass - - - @property - def chdevq(self)->'typing.Any': - """""" - pass - - - @property - def chdevjobs(self)->'typing.Any': - """""" - pass - - - @property - def connections(self)->'typing.Any': - """""" - pass - - - @property - def shares(self)->'typing.Any': - """""" - pass - - - @property - def openfiles(self)->'typing.Any': - """""" - pass - - - @property - def sessopens(self)->'typing.Any': - """""" - pass - - - @property - def sessvcs(self)->'typing.Any': - """""" - pass - - - @property - def sessreqs(self)->'typing.Any': - """""" - pass - - - @property - def opensearch(self)->'typing.Any': - """""" - pass - - - @property - def activelocks(self)->'typing.Any': - """""" - pass - - - @property - def numreqbuf(self)->'typing.Any': - """""" - pass - - - @property - def sizreqbuf(self)->'typing.Any': - """""" - pass - - - @property - def numbigbuf(self)->'typing.Any': - """""" - pass - - - @property - def numfiletasks(self)->'typing.Any': - """""" - pass - - - @property - def alertsched(self)->'typing.Any': - """""" - pass - - - @property - def erroralert(self)->'typing.Any': - """""" - pass - - - @property - def logonalert(self)->'typing.Any': - """""" - pass - - - @property - def accessalert(self)->'typing.Any': - """""" - pass - - - @property - def diskalert(self)->'typing.Any': - """""" - pass - - - @property - def netioalert(self)->'typing.Any': - """""" - pass - - - @property - def maxauditsz(self)->'typing.Any': - """""" - pass - - - @property - def srvheuristics(self)->'typing.Union[str]': - """""" - pass - - -class PySERVER_INFO_403(object): - """A dictionary holding the information in a Win32 SERVER_INFO_403 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ulist_mtime(self)->'typing.Any': - """""" - pass - - - @property - def glist_mtime(self)->'typing.Any': - """""" - pass - - - @property - def alist_mtime(self)->'typing.Any': - """""" - pass - - - @property - def security(self)->'typing.Any': - """""" - pass - - - @property - def numadmin(self)->'typing.Any': - """""" - pass - - - @property - def lanmask(self)->'typing.Any': - """""" - pass - - - @property - def guestacct(self)->'typing.Union[str]': - """""" - pass - - - @property - def chdevs(self)->'typing.Any': - """""" - pass - - - @property - def chdevq(self)->'typing.Any': - """""" - pass - - - @property - def chdevjobs(self)->'typing.Any': - """""" - pass - - - @property - def connections(self)->'typing.Any': - """""" - pass - - - @property - def shares(self)->'typing.Any': - """""" - pass - - - @property - def openfiles(self)->'typing.Any': - """""" - pass - - - @property - def sessopens(self)->'typing.Any': - """""" - pass - - - @property - def sessvcs(self)->'typing.Any': - """""" - pass - - - @property - def sessreqs(self)->'typing.Any': - """""" - pass - - - @property - def opensearch(self)->'typing.Any': - """""" - pass - - - @property - def activelocks(self)->'typing.Any': - """""" - pass - - - @property - def numreqbuf(self)->'typing.Any': - """""" - pass - - - @property - def sizreqbuf(self)->'typing.Any': - """""" - pass - - - @property - def numbigbuf(self)->'typing.Any': - """""" - pass - - - @property - def numfiletasks(self)->'typing.Any': - """""" - pass - - - @property - def alertsched(self)->'typing.Any': - """""" - pass - - - @property - def erroralert(self)->'typing.Any': - """""" - pass - - - @property - def logonalert(self)->'typing.Any': - """""" - pass - - - @property - def accessalert(self)->'typing.Any': - """""" - pass - - - @property - def diskalert(self)->'typing.Any': - """""" - pass - - - @property - def netioalert(self)->'typing.Any': - """""" - pass - - - @property - def maxauditsz(self)->'typing.Any': - """""" - pass - - - @property - def srvheuristics(self)->'typing.Union[str]': - """""" - pass - - - @property - def auditedevents(self)->'typing.Any': - """""" - pass - - - @property - def autoprofile(self)->'typing.Any': - """""" - pass - - - @property - def autopath(self)->'typing.Union[str]': - """""" - pass - - -class PySERVER_INFO_502(object): - """A dictionary holding the information in a Win32 SERVER_INFO_502 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sessopens(self)->'typing.Any': - """""" - pass - - - @property - def sessvcs(self)->'typing.Any': - """""" - pass - - - @property - def opensearch(self)->'typing.Any': - """""" - pass - - - @property - def sizreqbuf(self)->'typing.Any': - """""" - pass - - - @property - def initworkitems(self)->'typing.Any': - """""" - pass - - - @property - def maxworkitems(self)->'typing.Any': - """""" - pass - - - @property - def rawworkitems(self)->'typing.Any': - """""" - pass - - - @property - def irpstacksize(self)->'typing.Any': - """""" - pass - - - @property - def maxrawbuflen(self)->'typing.Any': - """""" - pass - - - @property - def sessusers(self)->'typing.Any': - """""" - pass - - - @property - def sessconns(self)->'typing.Any': - """""" - pass - - - @property - def maxpagedmemoryusage(self)->'typing.Any': - """""" - pass - - - @property - def maxnonpagedmemoryusage(self)->'typing.Any': - """""" - pass - - - @property - def enableforcedlogoff(self)->'typing.Any': - """""" - pass - - - @property - def timesource(self)->'typing.Any': - """""" - pass - - - @property - def acceptdownlevelapis(self)->'typing.Any': - """""" - pass - - - @property - def lmannounce(self)->'typing.Any': - """""" - pass - - -class PySERVER_INFO_503(object): - """A dictionary holding the information in a Win32 SERVER_INFO_503 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def sessopens(self)->'typing.Any': - """""" - pass - - - @property - def sessvcs(self)->'typing.Any': - """""" - pass - - - @property - def opensearch(self)->'typing.Any': - """""" - pass - - - @property - def sizreqbuf(self)->'typing.Any': - """""" - pass - - - @property - def initworkitems(self)->'typing.Any': - """""" - pass - - - @property - def maxworkitems(self)->'typing.Any': - """""" - pass - - - @property - def rawworkitems(self)->'typing.Any': - """""" - pass - - - @property - def irpstacksize(self)->'typing.Any': - """""" - pass - - - @property - def maxrawbuflen(self)->'typing.Any': - """""" - pass - - - @property - def sessusers(self)->'typing.Any': - """""" - pass - - - @property - def sessconns(self)->'typing.Any': - """""" - pass - - - @property - def maxpagedmemoryusage(self)->'typing.Any': - """""" - pass - - - @property - def maxnonpagedmemoryusage(self)->'typing.Any': - """""" - pass - - - @property - def enableforcedlogoff(self)->'typing.Any': - """""" - pass - - - @property - def timesource(self)->'typing.Any': - """""" - pass - - - @property - def acceptdownlevelapis(self)->'typing.Any': - """""" - pass - - - @property - def lmannounce(self)->'typing.Any': - """""" - pass - - - @property - def domain(self)->'typing.Union[str]': - """""" - pass - - - @property - def maxkeepsearch(self)->'typing.Any': - """""" - pass - - - @property - def scavtimeout(self)->'typing.Any': - """""" - pass - - - @property - def minrcvqueue(self)->'typing.Any': - """""" - pass - - - @property - def minfreeworkitems(self)->'typing.Any': - """""" - pass - - - @property - def xactmemsize(self)->'typing.Any': - """""" - pass - - - @property - def threadpriority(self)->'typing.Any': - """""" - pass - - - @property - def maxmpxct(self)->'typing.Any': - """""" - pass - - - @property - def oplockbreakwait(self)->'typing.Any': - """""" - pass - - - @property - def oplockbreakresponsewait(self)->'typing.Any': - """""" - pass - - - @property - def enableoplocks(self)->'typing.Any': - """""" - pass - - - @property - def enablefcbopens(self)->'typing.Any': - """""" - pass - - - @property - def enableraw(self)->'typing.Any': - """""" - pass - - - @property - def enablesharednetdrives(self)->'typing.Any': - """""" - pass - - - @property - def minfreeconnections(self)->'typing.Any': - """""" - pass - - - @property - def maxfreeconnections(self)->'typing.Any': - """""" - pass - - -class PySHARE_INFO_0(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'typing.Union[str]': - """""" - pass - - -class PySHARE_INFO_1(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'typing.Union[str]': - """""" - pass - - - @property - def type(self)->'typing.Any': - """""" - pass - - - @property - def remark(self)->'typing.Union[str]': - """""" - pass - - -class PySHARE_INFO_2(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'typing.Union[str]': - """""" - pass - - - @property - def type(self)->'typing.Any': - """""" - pass - - - @property - def remark(self)->'typing.Union[str]': - """""" - pass - - - @property - def permissions(self)->'typing.Any': - """""" - pass - - - @property - def max_uses(self)->'typing.Any': - """""" - pass - - - @property - def current_uses(self)->'typing.Any': - """""" - pass - - - @property - def path(self)->'typing.Union[str]': - """""" - pass - - - @property - def passwd(self)->'typing.Union[str]': - """""" - pass - - -class PySHARE_INFO_501(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_501 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'typing.Union[str]': - """""" - pass - - - @property - def type(self)->'typing.Any': - """""" - pass - - - @property - def remark(self)->'typing.Union[str]': - """""" - pass - - - @property - def flags(self)->'typing.Any': - """""" - pass - - -class PySHARE_INFO_502(object): - """A dictionary holding the infomation in a Win32 SHARE_INFO_502 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def netname(self)->'typing.Union[str]': - """""" - pass - - - @property - def type(self)->'typing.Any': - """""" - pass - - - @property - def remark(self)->'typing.Union[str]': - """""" - pass - - - @property - def permissions(self)->'typing.Any': - """""" - pass - - - @property - def max_uses(self)->'typing.Any': - """""" - pass - - - @property - def current_uses(self)->'typing.Any': - """""" - pass - - - @property - def path(self)->'typing.Union[str]': - """""" - pass - - - @property - def passwd(self)->'typing.Union[str]': - """""" - pass - - - @property - def reserved(self)->'typing.Any': - """""" - pass - - - @property - def security_descriptor(self)->'PySECURITY_DESCRIPTOR': - """""" - pass - - -class PySID(object): - """A Python object, representing a SID structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,idAuthority:'typing.Any',numSubauthorities:'typing.Any') -> 'None': - """ - Initialize the SID. - -Args: - - idAuthority(typing.Any):The identifier authority. - numSubauthorities(typing.Any):The number of sub authorities to allocate. - -Returns: - - None - - """ - pass - - - def IsValid(self,) -> 'None': - """ - Determines if the SID is valid. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetSubAuthority(self,index:'typing.Any',val:'typing.Any') -> 'None': - """ - Sets a SID SubAuthority - -Args: - - index(typing.Any):The index of the sub authority to set - val(typing.Any):The value for the sub authorityCommentsSee the function SetSidSubAuthority - -Returns: - - None - - """ - pass - - - def GetLength(self,) -> 'typing.Any': - """ - return length of SID (GetLengthSid). - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSubAuthorityCount(self,) -> 'typing.Any': - """ - return nbr of subauthorities from SID - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSubAuthority(self,) -> 'typing.Any': - """ - Returns specified subauthority from SID - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSidIdentifierAuthority(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Returns a tuple of 6 SID_IDENTIFIER_AUTHORITY - -constants - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - -class PySID_AND_ATTRIBUTES(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySIZE(object): - """Tuple of two ints (cx,cy) representing a SIZE struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySMALL_RECT(object): - """Wrapper for a SMALL_RECT struct - -Create using PySMALL_RECTType(Left, Top, Right, Bottom). All params optional, defaulting to 0""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Left(self)->'typing.Any': - """Left side of rectangle""" - pass - - - @property - def Top(self)->'typing.Any': - """Top edge of rectangle""" - pass - - - @property - def Right(self)->'typing.Any': - """Right edge of rectangle""" - pass - - - @property - def Bottom(self)->'typing.Any': - """Bottome edge of rectangle""" - pass - - -class PySTARTUPINFO(object): - """A Python object, representing an STARTUPINFO structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwX(self)->'int': - """Specifies the x offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" - pass - - - @property - def dwY(self)->'int': - """Specifies the y offset, in pixels, of the upper left corner of a window if a new window is created. The offset is from the upper left corner of the screen.""" - pass - - - @property - def dwXSize(self)->'int': - """Specifies the width, in pixels, of the window if a new window is created.""" - pass - - - @property - def dwYSize(self)->'int': - """Specifies the height, in pixels, of the window if a new window is created.""" - pass - - - @property - def dwXCountChars(self)->'int': - """For console processes, if a new console window is created, specifies the screen buffer width in character columns. This value is ignored in a GUI process.""" - pass - - - @property - def dwYCountChars(self)->'int': - """For console processes, if a new console window is created, specifies the screen buffer height in character rows.""" - pass - - - @property - def dwFillAttribute(self)->'int': - """Specifies the initial text and background colors if a new console window is created in a console application. These values are ignored in GUI applications""" - pass - - - @property - def dwFlags(self)->'int': - """This is a bit field that determines whether certain STARTUPINFO attributes are used when the process creates a window. To use many of the additional attributes, you typically must set the appropriate mask in this attribute, and also set the attributes themselves. Any combination of the win32con.STARTF_* flags can be specified.""" - pass - - - @property - def wShowWindow(self)->'int': - """Can be any of the SW_ constants defined in win32con. For GUI processes, this specifies the default value the first time ShowWindow is called.""" - pass - - - @property - def hStdInput(self)->'typing.Union[int]': - """""" - pass - - - @property - def hStdOutput(self)->'typing.Union[int]': - """""" - pass - - - @property - def hStdError(self)->'typing.Union[int]': - """""" - pass - - - @property - def lpDesktop(self)->'typing.Union[str, typing.Any]': - """""" - pass - - - @property - def lpTitle(self)->'typing.Union[str, typing.Any]': - """""" - pass - - -class PySecBuffer(object): - """Python object wrapping a SecBuffer structure - -Created using win32security.PySecBufferType(type,size) where type is a SECBUFFER_* constant""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def BufferType(self)->'typing.Any': - """""" - pass - - - @property - def Buffer(self)->'str': - """""" - pass - - - @property - def BufferSize(self)->'typing.Any': - """""" - pass - - - @property - def MaxBufferSize(self)->'typing.Any': - """""" - pass - - - def Clear(self,) -> 'None': - """ - Resets the buffer to all NULL's, and set the current size to maximum - -Args: - - - -Returns: - - None - - """ - pass - - -class PySecBufferDesc(object): - """Sequence-like object that contains a group of buffers to be used with SSPI functions.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def append(self,buffer:'typing.Any') -> 'None': - """ - None - -Args: - - buffer(typing.Any):PySecBuffer object to be attached to the group of buffers - -Returns: - - None - - """ - pass - - -class PyTOKEN_GROUPS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyTOKEN_PRIVILEGES(object): - """An object representing Win32 token privileges.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyTRIVERTEX(object): - """Dict representing a TRIVERTEX struct containing color information at a point""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def x(self)->'typing.Any': - """X coord in logical units""" - pass - - - @property - def y(self)->'typing.Any': - """Y coord in logical units""" - pass - - - @property - def Red(self)->'typing.Any': - """Red component""" - pass - - - @property - def Green(self)->'typing.Any': - """Green component""" - pass - - - @property - def Blue(self)->'typing.Any': - """Blue component""" - pass - - - @property - def Alpha(self)->'typing.Any': - """Transparency value""" - pass - - -class PyTRUSTEE(object): - """A dictionary representing a TRUSTEE structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def TrusteeForm(self)->'typing.Any': - """""" - pass - - - @property - def TrusteeType(self)->'typing.Any': - """""" - pass - - - @property - def Identifier(self)->'typing.Any': - """Depends on the value of TrusteeForm (string or sid)""" - pass - - - @property - def MultipleTrustee(self)->'typing.Any': - """default is None""" - pass - - - @property - def MultipleTrusteeOperation(self)->'typing.Any': - """default is None""" - pass - - -class PyTS_HANDLE(object): - """Handle to a Terminal Server""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyTime(object): - """A Python object, representing an instant in time.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def year(self)->'typing.Any': - """""" - pass - - - @property - def month(self)->'typing.Any': - """""" - pass - - - @property - def weekday(self)->'typing.Any': - """""" - pass - - - @property - def day(self)->'typing.Any': - """""" - pass - - - @property - def hour(self)->'typing.Any': - """""" - pass - - - @property - def minute(self)->'typing.Any': - """""" - pass - - - @property - def second(self)->'typing.Any': - """""" - pass - - - @property - def msec(self)->'typing.Any': - """""" - pass - - - def Format(self,_format:'str') -> 'str': - """ - Formats the time value. - -Args: - - _format(str):The format. See the comments section for a description of the supported flags.CommentsThe following format characters are supported.CharacterDescription%aAbbreviated weekday name%AFull weekday name%bAbbreviated month name%BFull month name%cDate and time representation appropriate for locale%dDay of month as decimal number (01 - 31)%HHour in 24-hour format (00 - 23)%IHour in 12-hour format (01 - 12)%jDay of year as decimal number (001 - 366)%mMonth as decimal number (01 - 12)%MMinute as decimal number (00 - 59)%pCurrent locale's A.M./P.M. indicator for 12-hour clock%SSecond as decimal number (00 - 59)%UWeek of year as decimal number, with Sunday as first day of week (00 - 51)%wWeekday as decimal number (0 - 6; Sunday is 0)%WWeek of year as decimal number, with Monday as first day of week (00 - 51)%xDate representation for current locale%XTime representation for current locale%yYear without century, as decimal number (00 - 99)%YYear with century, as decimal number%z, %ZTime-zone name or abbreviation; no characters if time zone is unknown%%Percent signAs in the printf function, the # flag may prefix any formatting code. In that case, the meaning of the format code is changed as follows.Format CodeMeaning%#a, %#A, %#b, %#B, %#p, %#X, %#z, %#Z, %#%# flag is ignored.%#cLong date and time representation, appropriate for current locale. For example: "Tuesday, March 14, 1995, 12:41:29".%#xLong date representation, appropriate to current locale. For example: "Tuesday, March 14, 1995".%#d, %#H, %#I, %#j, %#m, %#M, %#S, %#U, %#w, %#W, %#y, %#YRemove leading zeros (if any). - -Returns: - - str - - """ - pass - - -class PyUSER_INFO_0(object): - """A dictionary holding the information in a Win32 USER_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_INFO_1(object): - """A dictionary holding the information in a Win32 USER_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def password(self)->'typing.Union[str]': - """""" - pass - - - @property - def password_age(self)->'typing.Any': - """""" - pass - - - @property - def priv(self)->'typing.Any': - """""" - pass - - - @property - def home_dir(self)->'typing.Union[str]': - """""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def flags(self)->'typing.Any': - """""" - pass - - - @property - def script_path(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_INFO_10(object): - """A dictionary holding the information in a Win32 USER_INFO_10 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def full_name(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_INFO_1003(object): - """A dictionary holding the information in a Win32 USER_INFO_1003 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def password(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_INFO_1005(object): - """A dictionary holding the information in a Win32 USER_INFO_1005 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def priv(self)->'typing.Any': - """""" - pass - - -class PyUSER_INFO_1006(object): - """A dictionary holding the information in a Win32 USER_INFO_1006 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def home_dir(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_INFO_1007(object): - """A dictionary holding the information in a Win32 USER_INFO_1007 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_INFO_1008(object): - """A dictionary holding the information in a Win32 USER_INFO_1008 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def flags(self)->'typing.Any': - """""" - pass - - -class PyUSER_INFO_1009(object): - """A dictionary holding the information in a Win32 USER_INFO_1009 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def script_path(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_INFO_1010(object): - """A dictionary holding the information in a Win32 USER_INFO_1010 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def auth_flags(self)->'typing.Any': - """""" - pass - - -class PyUSER_INFO_1011(object): - """A dictionary holding the information in a Win32 USER_INFO_1011 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def full_name(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_INFO_11(object): - """A dictionary holding the information in a Win32 USER_INFO_11 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def full_name(self)->'typing.Union[str]': - """""" - pass - - - @property - def priv(self)->'typing.Any': - """""" - pass - - - @property - def auth_flags(self)->'typing.Any': - """""" - pass - - - @property - def password_age(self)->'typing.Any': - """""" - pass - - - @property - def home_dir(self)->'typing.Union[str]': - """""" - pass - - - @property - def parms(self)->'typing.Union[str]': - """""" - pass - - - @property - def last_logon(self)->'typing.Any': - """""" - pass - - - @property - def last_logoff(self)->'typing.Any': - """""" - pass - - - @property - def bad_pw_count(self)->'typing.Any': - """""" - pass - - - @property - def num_logons(self)->'typing.Any': - """""" - pass - - - @property - def logon_server(self)->'typing.Union[str]': - """""" - pass - - - @property - def country_code(self)->'typing.Any': - """""" - pass - - - @property - def workstations(self)->'typing.Union[str]': - """""" - pass - - - @property - def max_storage(self)->'typing.Any': - """""" - pass - - - @property - def units_per_week(self)->'typing.Any': - """""" - pass - - - @property - def logon_hours(self)->'str': - """""" - pass - - - @property - def code_page(self)->'typing.Any': - """""" - pass - - -class PyUSER_INFO_2(object): - """A dictionary holding the information in a Win32 USER_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def password(self)->'typing.Union[str]': - """""" - pass - - - @property - def password_age(self)->'typing.Any': - """""" - pass - - - @property - def priv(self)->'typing.Any': - """""" - pass - - - @property - def home_dir(self)->'typing.Union[str]': - """""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def flags(self)->'typing.Any': - """""" - pass - - - @property - def script_path(self)->'typing.Union[str]': - """""" - pass - - - @property - def auth_flags(self)->'typing.Any': - """""" - pass - - - @property - def full_name(self)->'typing.Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def parms(self)->'typing.Union[str]': - """""" - pass - - - @property - def workstations(self)->'typing.Union[str]': - """""" - pass - - - @property - def last_logon(self)->'typing.Any': - """""" - pass - - - @property - def last_logoff(self)->'typing.Any': - """""" - pass - - - @property - def acct_expires(self)->'typing.Any': - """""" - pass - - - @property - def max_storage(self)->'typing.Any': - """""" - pass - - - @property - def units_per_week(self)->'typing.Any': - """""" - pass - - - @property - def logon_hours(self)->'str': - """""" - pass - - - @property - def bad_pw_count(self)->'typing.Any': - """""" - pass - - - @property - def num_logons(self)->'typing.Any': - """""" - pass - - - @property - def logon_server(self)->'typing.Union[str]': - """""" - pass - - - @property - def country_code(self)->'typing.Any': - """""" - pass - - - @property - def code_page(self)->'typing.Any': - """""" - pass - - -class PyUSER_INFO_20(object): - """A dictionary holding the information in a Win32 USER_INFO_20 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def full_name(self)->'typing.Union[str]': - """""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def flags(self)->'typing.Any': - """""" - pass - - - @property - def user_id(self)->'typing.Any': - """""" - pass - - -class PyUSER_INFO_3(object): - """A dictionary holding the information in a Win32 USER_INFO_3 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def password(self)->'typing.Union[str]': - """""" - pass - - - @property - def password_age(self)->'typing.Any': - """""" - pass - - - @property - def priv(self)->'typing.Any': - """""" - pass - - - @property - def home_dir(self)->'typing.Union[str]': - """""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def flags(self)->'typing.Any': - """""" - pass - - - @property - def script_path(self)->'typing.Union[str]': - """""" - pass - - - @property - def auth_flags(self)->'typing.Any': - """""" - pass - - - @property - def full_name(self)->'typing.Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def parms(self)->'typing.Union[str]': - """""" - pass - - - @property - def workstations(self)->'typing.Union[str]': - """""" - pass - - - @property - def last_logon(self)->'typing.Any': - """""" - pass - - - @property - def last_logoff(self)->'typing.Any': - """""" - pass - - - @property - def acct_expires(self)->'typing.Any': - """""" - pass - - - @property - def max_storage(self)->'typing.Any': - """""" - pass - - - @property - def units_per_week(self)->'typing.Any': - """""" - pass - - - @property - def logon_hours(self)->'str': - """""" - pass - - - @property - def bad_pw_count(self)->'typing.Any': - """""" - pass - - - @property - def num_logons(self)->'typing.Any': - """""" - pass - - - @property - def logon_server(self)->'typing.Union[str]': - """""" - pass - - - @property - def country_code(self)->'typing.Any': - """""" - pass - - - @property - def code_page(self)->'typing.Any': - """""" - pass - - - @property - def user_id(self)->'typing.Any': - """""" - pass - - - @property - def primary_group_id(self)->'typing.Any': - """""" - pass - - - @property - def profile(self)->'typing.Union[str]': - """""" - pass - - - @property - def home_dir_drive(self)->'typing.Union[str]': - """""" - pass - - - @property - def password_expired(self)->'typing.Any': - """""" - pass - - -class PyUSER_INFO_4(object): - """A dictionary holding the information in a Win32 USER_INFO_4 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def name(self)->'typing.Union[str]': - """""" - pass - - - @property - def password(self)->'typing.Union[str]': - """""" - pass - - - @property - def password_age(self)->'typing.Any': - """""" - pass - - - @property - def priv(self)->'typing.Any': - """""" - pass - - - @property - def home_dir(self)->'typing.Union[str]': - """""" - pass - - - @property - def comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def flags(self)->'typing.Any': - """""" - pass - - - @property - def script_path(self)->'typing.Union[str]': - """""" - pass - - - @property - def auth_flags(self)->'typing.Any': - """""" - pass - - - @property - def full_name(self)->'typing.Union[str]': - """""" - pass - - - @property - def usr_comment(self)->'typing.Union[str]': - """""" - pass - - - @property - def parms(self)->'typing.Union[str]': - """""" - pass - - - @property - def workstations(self)->'typing.Union[str]': - """""" - pass - - - @property - def last_logon(self)->'typing.Any': - """""" - pass - - - @property - def last_logoff(self)->'typing.Any': - """""" - pass - - - @property - def acct_expires(self)->'typing.Any': - """""" - pass - - - @property - def max_storage(self)->'typing.Any': - """""" - pass - - - @property - def units_per_week(self)->'typing.Any': - """""" - pass - - - @property - def logon_hours(self)->'str': - """""" - pass - - - @property - def bad_pw_count(self)->'typing.Any': - """""" - pass - - - @property - def num_logons(self)->'typing.Any': - """""" - pass - - - @property - def logon_server(self)->'typing.Union[str]': - """""" - pass - - - @property - def country_code(self)->'typing.Any': - """""" - pass - - - @property - def code_page(self)->'typing.Any': - """""" - pass - - - @property - def user_sid(self)->'PySID': - """""" - pass - - - @property - def primary_group_id(self)->'typing.Any': - """""" - pass - - - @property - def profile(self)->'typing.Union[str]': - """""" - pass - - - @property - def home_dir_drive(self)->'typing.Union[str]': - """""" - pass - - - @property - def password_expired(self)->'typing.Any': - """""" - pass - - -class PyUSER_MODALS_INFO_0(object): - """A dictionary holding the information in a Win32 USER_MODALS_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def min_passwd_len(self)->'typing.Any': - """""" - pass - - - @property - def max_passwd_age(self)->'typing.Any': - """""" - pass - - - @property - def min_passwd_age(self)->'typing.Any': - """""" - pass - - - @property - def force_logoff(self)->'typing.Any': - """""" - pass - - - @property - def password_hist_len(self)->'typing.Any': - """""" - pass - - -class PyUSER_MODALS_INFO_1(object): - """A dictionary holding the information in a Win32 USER_MODALS_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def role(self)->'typing.Any': - """""" - pass - - - @property - def primary(self)->'typing.Union[str]': - """""" - pass - - -class PyUSER_MODALS_INFO_2(object): - """A dictionary holding the information in a Win32 USER_MODALS_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def domain_name(self)->'typing.Union[str]': - """""" - pass - - - @property - def domain_id(self)->'PySID': - """""" - pass - - -class PyUSER_MODALS_INFO_3(object): - """A dictionary holding the information in a Win32 USER_MODALS_INFO_3 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def lockout_duration(self)->'typing.Any': - """""" - pass - - - @property - def lockout_observation_window(self)->'typing.Any': - """""" - pass - - - @property - def usrmod3_lockout_threshold(self)->'typing.Any': - """""" - pass - - -class PyUSE_INFO_0(object): - """A dictionary holding the infomation in a Win32 USE_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def local(self)->'typing.Union[str]': - """""" - pass - - - @property - def remote(self)->'typing.Union[str]': - """""" - pass - - -class PyUSE_INFO_1(object): - """A dictionary holding the infomation in a Win32 USE_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def local(self)->'typing.Union[str]': - """""" - pass - - - @property - def remote(self)->'typing.Union[str]': - """""" - pass - - - @property - def password(self)->'typing.Union[str, typing.Any]': - """""" - pass - - - @property - def status(self)->'typing.Any': - """""" - pass - - - @property - def asg_type(self)->'typing.Any': - """""" - pass - - - @property - def refcount(self)->'typing.Any': - """""" - pass - - - @property - def usecount(self)->'typing.Any': - """""" - pass - - -class PyUSE_INFO_2(object): - """A dictionary holding the infomation in a Win32 USE_INFO_2 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def local(self)->'typing.Union[str]': - """""" - pass - - - @property - def remote(self)->'typing.Union[str]': - """""" - pass - - - @property - def password(self)->'typing.Union[str, typing.Any]': - """""" - pass - - - @property - def status(self)->'typing.Any': - """""" - pass - - - @property - def asg_type(self)->'typing.Any': - """""" - pass - - - @property - def refcount(self)->'typing.Any': - """""" - pass - - - @property - def usecount(self)->'typing.Any': - """""" - pass - - - @property - def username(self)->'typing.Union[str]': - """""" - pass - - - @property - def domainname(self)->'typing.Union[str]': - """""" - pass - - -class PyUSE_INFO_3(object): - """A dictionary holding the infomation in a Win32 USE_INFO_3 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def local(self)->'typing.Union[str]': - """""" - pass - - - @property - def remote(self)->'typing.Union[str]': - """""" - pass - - - @property - def password(self)->'typing.Union[str, typing.Any]': - """""" - pass - - - @property - def status(self)->'typing.Any': - """""" - pass - - - @property - def asg_type(self)->'typing.Any': - """""" - pass - - - @property - def refcount(self)->'typing.Any': - """""" - pass - - - @property - def usecount(self)->'typing.Any': - """""" - pass - - - @property - def username(self)->'typing.Union[str]': - """""" - pass - - - @property - def domainname(self)->'typing.Union[str]': - """""" - pass - - - @property - def flags(self)->'typing.Any': - """""" - pass - - -class PyUnicode(object): - """A Python object, representing a Unicode string.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyUrlCacheHANDLE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyWAVEFORMATEX(object): - """A Python object, representing a WAVEFORMATEX structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def wFormatTag(self)->'int': - """Waveform-audio format type. pywintypes only defines WAVE_FORMAT_PCM as a constant. Other values must be looked up in the mmsystem.h header file.""" - pass - - - @property - def nChannels(self)->'int': - """Number of channels. 1 for Mono, 2 for Stereo, anything, but never 5.1.""" - pass - - - @property - def nSamplesPerSec(self)->'int': - """Sample rate, in samples per second (hertz), that each channel should be played or recorded. If wFormatTag is WAVE_FORMAT_PCM, then common values for nSamplesPerSec are 8000, 11025, 22050, and 44100 Hz""" - pass - - - @property - def nAvgBytesPerSec(self)->'int': - """Required average data-transfer rate, in bytes per second, for the format tag. If wFormatTag is WAVE_FORMAT_PCM, nAvgBytesPerSec should be equal to the product of nSamplesPerSec and nBlockAlign.""" - pass - - - @property - def nBlockAlign(self)->'int': - """Block alignment, in bytes. The block alignment is the minimum atomic unit of data for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, nBlockAlign should be equal to the product of nChannels and wBitsPerSample divided by 8 (bits per byte). For non-PCM formats, this member must be computed according to the manufacturer’s specification of the format tag.""" - pass - - - @property - def wBitsPerSample(self)->'int': - """Bits per sample for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, then wBitsPerSample should be equal to 8 or 16. Sentinel""" - pass - - -class PyWINHTTP_AUTOPROXY_OPTIONS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyWINHTTP_PROXY_INFO(object): - """A tuple representing a WINHTTP_PROXY_INFO structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyWKSTA_INFO_100(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_100 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'typing.Any': - """Indicates platform level to use to retrieve platform specific information""" - pass - - - @property - def computername(self)->'typing.Union[str]': - """Name of the local computer""" - pass - - - @property - def langroup(self)->'typing.Union[str]': - """Name of the domain to which computer belongs""" - pass - - - @property - def ver_major(self)->'typing.Any': - """Major version number of operating system running on the computer""" - pass - - - @property - def ver_minor(self)->'typing.Any': - """Minor version number of operating system running on the computer""" - pass - - -class PyWKSTA_INFO_101(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_101 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'typing.Any': - """Indicates platform level to use to retrieve platform specific information""" - pass - - - @property - def computername(self)->'typing.Union[str]': - """Name of the local computer""" - pass - - - @property - def langroup(self)->'typing.Union[str]': - """Name of the domain to which computer belongs""" - pass - - - @property - def ver_major(self)->'typing.Any': - """Major version number of operating system running on the computer""" - pass - - - @property - def ver_minor(self)->'typing.Any': - """Minor version number of operating system running on the computer""" - pass - - - @property - def lanroot(self)->'typing.Union[str]': - """Path to the LANMAN directory""" - pass - - -class PyWKSTA_INFO_102(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_102 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def platform_id(self)->'typing.Any': - """Indicate platform level to use to retrieve platform specific information""" - pass - - - @property - def computername(self)->'typing.Union[str]': - """Name of the local computer""" - pass - - - @property - def langroup(self)->'typing.Union[str]': - """Name of the domain to which computer belongs""" - pass - - - @property - def ver_major(self)->'typing.Any': - """Major version number of operating system running on the computer""" - pass - - - @property - def ver_minor(self)->'typing.Any': - """Minor version number of operating system running on the computer""" - pass - - - @property - def lanroot(self)->'typing.Union[str]': - """Path to the LANMAN directory""" - pass - - - @property - def logged_on_users(self)->'typing.Any': - """Number of users who are logged on to the local computer""" - pass - - -class PyWKSTA_INFO_302(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_302 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def char_wait(self)->'typing.Any': - """number of seconds the computer will wait for a remote resource to become available""" - pass - - - @property - def collection_time(self)->'typing.Any': - """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki302_maximum_collection_count, whichever comes first.""" - pass - - - @property - def maximum_collection_count(self)->'typing.Any': - """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" - pass - - - @property - def keep_conn(self)->'typing.Any': - """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" - pass - - - @property - def keep_search(self)->'typing.Any': - """Defines the number of seconds an inactive search will continue.""" - pass - - - @property - def max_cmds(self)->'typing.Any': - """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" - pass - - - @property - def num_work_buf(self)->'typing.Any': - """Specifies the number of internal buffers the computer has.""" - pass - - - @property - def siz_work_buf(self)->'typing.Any': - """Specifies the size, in bytes, of each internal buffer.""" - pass - - - @property - def max_wrk_cache(self)->'typing.Any': - """Specifies the maximum size, in bytes, of an internal cache buffer.""" - pass - - - @property - def siz_error(self)->'typing.Any': - """Specifies the size, in bytes, of an internal error buffer.""" - pass - - - @property - def num_alerts(self)->'typing.Any': - """Specifies the maximum number of clients that can receive alert messages. (This member is not supported under MS-DOS.) The Alerter service registers at least three clients when it begins to run.""" - pass - - - @property - def num_services(self)->'typing.Any': - """Specifies the number of services that can be installed on the computer at any time.""" - pass - - - @property - def errlog_sz(self)->'typing.Any': - """Specifies the maximum size, in kilobytes, of the client's error log file.""" - pass - - - @property - def print_buf_time(self)->'typing.Any': - """Specifies the number of seconds the server waits before closing inactive compatibility-mode print jobs.""" - pass - - - @property - def num_char_buf(self)->'typing.Any': - """Specifies the number of character pipe buffers and device buffers the client can have.""" - pass - - - @property - def siz_char_buf(self)->'typing.Any': - """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" - pass - - - @property - def wrk_heuristics(self)->'typing.Union[str]': - """Pointer to a Unicode string of flags used to control a client's operation.""" - pass - - - @property - def mailslots(self)->'typing.Any': - """Specifies the maximum number of mailslots allowed.""" - pass - - - @property - def num_dgram_buf(self)->'typing.Any': - """Specifies the number of buffers to allocate for receiving datagrams.""" - pass - - -class PyWKSTA_INFO_402(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_402 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def char_wait(self)->'typing.Any': - """number of seconds the computer will wait for a remote resource to become available""" - pass - - - @property - def collection_time(self)->'typing.Any': - """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki402_maximum_collection_count, whichever comes first.""" - pass - - - @property - def maximum_collection_count(self)->'typing.Union[str]': - """Name of the domain to which computer belongs""" - pass - - - @property - def keep_conn(self)->'typing.Any': - """Major version number of operating system running on the computer""" - pass - - - @property - def keep_search(self)->'typing.Any': - """Minor version number of operating system running on the computer""" - pass - - - @property - def max_cmds(self)->'typing.Any': - """..""" - pass - - - @property - def num_work_buf(self)->'typing.Any': - """Number of users who are logged on to the local computer""" - pass - - - @property - def siz_work_buf(self)->'typing.Any': - """Number of users who are logged on to the local computer""" - pass - - - @property - def max_wrk_cache(self)->'typing.Any': - """..""" - pass - - - @property - def sess_timeout(self)->'typing.Any': - """..""" - pass - - - @property - def siz_error(self)->'typing.Any': - """..""" - pass - - - @property - def num_alerts(self)->'typing.Any': - """..""" - pass - - - @property - def num_services(self)->'typing.Any': - """..""" - pass - - - @property - def errlog_sz(self)->'typing.Any': - """..""" - pass - - - @property - def print_buf_time(self)->'typing.Any': - """..""" - pass - - - @property - def num_char_buf(self)->'typing.Any': - """..""" - pass - - - @property - def siz_char_buf(self)->'typing.Any': - """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" - pass - - - @property - def mailslots(self)->'typing.Any': - """..""" - pass - - - @property - def num_dgram_buf(self)->'typing.Any': - """..""" - pass - - - @property - def max_threads(self)->'typing.Any': - """Number of threads the computer can dedicate to the network""" - pass - - -class PyWKSTA_INFO_502(object): - """A dictionary holding the infomation in a Win32 WKSTA_INFO_502 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def char_wait(self)->'typing.Any': - """number of seconds the computer will wait for a remote resource to become available""" - pass - - - @property - def collection_time(self)->'typing.Any': - """number of milliseconds the computer will collect data before sending the data to a character device resource. The workstation waits the specified time or collects the number of characters specified by wki502_maximum_collection_count, whichever comes first.""" - pass - - - @property - def maximum_collection_count(self)->'typing.Any': - """Specifies the number of bytes of information the computer will collect before sending the data to a character device resource. The workstation collects the specified number of bytes or waits the time specified by wki302_collection_time, whichever comes first.""" - pass - - - @property - def keep_conn(self)->'typing.Any': - """Specifies the number of seconds the server will maintain an inactive connection to a resource.""" - pass - - - @property - def max_cmds(self)->'typing.Any': - """Specifies the number of simultaneous network device driver commands that can be sent to the network.""" - pass - - - @property - def max_wrk_cache(self)->'typing.Any': - """Indicates the number of seconds the server waits before disconnecting an inactive session.""" - pass - - - @property - def siz_char_buf(self)->'typing.Any': - """Specifies the maximum size, in bytes, of a character pipe buffer and device buffer.""" - pass - - - @property - def lock_quota(self)->'typing.Any': - """TODO""" - pass - - - @property - def lock_increment(self)->'typing.Any': - """TODO""" - pass - - - @property - def lock_maximum(self)->'typing.Any': - """TODO""" - pass - - - @property - def pipe_increment(self)->'typing.Any': - """TODO""" - pass - - - @property - def pipe_maximum(self)->'typing.Any': - """TODO""" - pass - - - @property - def cache_file_timeout(self)->'typing.Any': - """TODO""" - pass - - - @property - def dormant_file_limit(self)->'typing.Any': - """TODO""" - pass - - - @property - def read_ahead_throughput(self)->'typing.Any': - """TODO""" - pass - - - @property - def num_mailslot_buffers(self)->'typing.Any': - """TODO""" - pass - - - @property - def num_srv_announce_buffers(self)->'typing.Any': - """TODO""" - pass - - - @property - def max_illegal_datagram_events(self)->'typing.Any': - """TODO""" - pass - - - @property - def illegal_datagram_event_reset_frequency(self)->'typing.Any': - """TODO""" - pass - - - @property - def log_election_packets(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_opportunistic_locking(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_unlock_behind(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_close_behind(self)->'typing.Any': - """TODO""" - pass - - - @property - def buf_named_pipes(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_lock_read_unlock(self)->'typing.Any': - """TODO""" - pass - - - @property - def utilize_nt_caching(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_raw_read(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_raw_write(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_write_raw_data(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_encryption(self)->'typing.Any': - """TODO""" - pass - - - @property - def buf_files_deny_write(self)->'typing.Any': - """TODO""" - pass - - - @property - def buf_read_only_files(self)->'typing.Any': - """TODO""" - pass - - - @property - def force_core_create_mode(self)->'typing.Any': - """TODO""" - pass - - - @property - def use_512_byte_max_transfer(self)->'typing.Any': - """TODO""" - pass - - -class PyWKSTA_TRANSPORT_INFO_0(object): - """A dictionary holding the infomation in a Win32 WKSTA_TRANSPORT_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def quality_of_service(self)->'typing.Any': - """Supplies a value that specifies the search order of the transport protocol with respect to other transport protocols. The highest value is searched first.""" - pass - - - @property - def number_of_vcs(self)->'typing.Any': - """Specifies the number of clients communicating with the server using this transport protocol.""" - pass - - - @property - def transport_name(self)->'typing.Union[str]': - """Specifies the device name of the transport protocol.""" - pass - - - @property - def transport_address(self)->'typing.Union[str]': - """Specifies the address of the server on this transport protocol.""" - pass - - - @property - def wan_ish(self)->'typing.Any': - """This member is ignored by the NetWkstaTransportAdd function. For the NetWkstaTransportEnum function, this member indicates that this transport protocol is a WAN transport protocol. This member is set TRUE for NetBIOS/TCIP; it is set FALSE for NetBEUI and NetBIOS/IPX.""" - pass - - -class PyWKSTA_USER_INFO_0(object): - """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_0 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def username(self)->'typing.Union[str]': - """Name of user currently logged on to the workstation""" - pass - - -class PyWKSTA_USER_INFO_1(object): - """A dictionary holding the infomation in a Win32 WKSTA_USER_INFO_1 structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def username(self)->'typing.Union[str]': - """Name of user currently logged on to the workstation""" - pass - - - @property - def logon_domain(self)->'typing.Union[str]': - """Returns the domain name of the user account of the user currently logged on to the workstation.""" - pass - - - @property - def oth_domains(self)->'typing.Union[str]': - """Returns the list of other operating system domains browsed by the workstation. The domain names are separated by blanks.""" - pass - - - @property - def logon_server(self)->'typing.Union[str]': - """Returns the name of the computer that authenticated the server.""" - pass - - -class PyWNDCLASS(object): - """A Python object, representing an WNDCLASS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def style(self)->'int': - """""" - pass - - - @property - def cbWndExtra(self)->'int': - """""" - pass - - - @property - def hInstance(self)->'int': - """""" - pass - - - @property - def hIcon(self)->'int': - """""" - pass - - - @property - def hCursor(self)->'int': - """""" - pass - - - @property - def hbrBackground(self)->'int': - """These 3 handled manually in PyWNDCLASS::getattro/setattro. The pymeth below is used as an end tag, so these props will be lost if below it""" - pass - - - @property - def lpszMenuName(self)->'typing.Union[str]': - """""" - pass - - - @property - def lpszClassName(self)->'typing.Union[str]': - """""" - pass - - - @property - def lpfnWndProc(self)->'typing.Any': - """MethodsSetDialogProcSets the WNDCLASS to be for a dialog box. """ - pass - - - def SetDialogProc(self,) -> 'None': - """ - Sets the WNDCLASS to be for a dialog box - -Args: - - - -Returns: - - None - - """ - pass - - -class PyXFORM(object): - """Dict representing an XFORM struct used as a world transformation matrix - -All members are optional, defaulting to 0.0.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def M11(self)->'float': - """Usage is dependent on operation performed, see MSDN docs""" - pass - - - @property - def M12(self)->'float': - """Usage is dependent on operation performed, see MSDN docs""" - pass - - - @property - def M21(self)->'float': - """Usage is dependent on operation performed, see MSDN docs""" - pass - - - @property - def M22(self)->'float': - """Usage is dependent on operation performed, see MSDN docs""" - pass - - - @property - def Dx(self)->'float': - """Horizontal offset in logical units""" - pass - - - @property - def Dy(self)->'float': - """Vertical offset in logical units""" - pass - - -class Pymmapfile(object): - """Object that provides access to memory-mapped file operations.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def close(self,) -> 'None': - """ - Closes the file mapping handle and releases mapped view - -Args: - - - -Returns: - - None - - """ - pass - - - def find(self,needle:'typing.Any',start:'typing.Any') -> 'typing.Any': - """ - Finds a string in the buffer. - -Args: - - needle(typing.Any):String to be located - start(typing.Any):Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found - -Returns: - - typing.Any:Pos at which to start search, current pos assumed if not specifiedReturn ValueReturns pos of string, or -1 if not found - - - """ - pass - - - def flush(self,offset:'typing.Any'=0,size:'typing.Any'=0) -> 'None': - """ - Flushes memory buffer to disk - -Args: - - offset(typing.Any):Position in buffer at which to flush - size(typing.Any):Number of bytes to flush, 0 to flush remainder of buffer past the offset - -Returns: - - None - - """ - pass - - - def move(self,dest:'typing.Any',src:'typing.Any',count:'typing.Any') -> 'None': - """ - Moves data from one place in buffer to another - -Args: - - dest(typing.Any):Destination position in buffer - src(typing.Any):Source position in buffer - count(typing.Any):Number of bytes to move - -Returns: - - None - - """ - pass - - - def read(self,num_bytes:'typing.Any') -> 'typing.Any': - """ - Returns specified number of bytes from buffer, and advances current position - -Args: - - num_bytes(typing.Any):Number of bytes to read - -Returns: - - typing.Any - - """ - pass - - - def read_byte(self,) -> 'typing.Any': - """ - Reads a single character from current pos - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def read_line(self,) -> 'typing.Any': - """ - Reads data from current pos up to next EOL. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def resize(self,MaximumSize:'typing.Any',FileOffset:'typing.Any'=0,NumberOfBytesToMap:'typing.Any'=0) -> 'None': - """ - Resizes the file mapping and view. - -Args: - - MaximumSize(typing.Any):New size for file mapping. Use a multiple of system page size (see win32api::GetSystemInfo) - FileOffset(typing.Any):Offset into file mapping. Must be multiple of allocation granularity. - NumberOfBytesToMap(typing.Any):New view size. Specify a multiple of system page size.CommentsIf MaximumSize is 0, only the mapped view will be affected.Accepts keyword args. - -Returns: - - None - - """ - pass - - - def seek(self,dist:'typing.Any',how:'typing.Any'=0) -> 'None': - """ - Changes current position - -Args: - - dist(typing.Any):Distance to seek - how(typing.Any):Pos from which to seekhowmeaning0Seek from start of buffer1Seek from current position2Seek backwards from end of buffer - -Returns: - - None - - """ - pass - - - def size(self,) -> 'typing.Any': - """ - Returns size of current view - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def tell(self,) -> 'typing.Any': - """ - Returns current position in buffer - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def write(self,data:'typing.Any') -> 'None': - """ - Places data at current pos in buffer. - -Args: - - data(typing.Any):Data to be written - -Returns: - - None - - """ - pass - - - def write_byte(self,char:'typing.Any') -> 'None': - """ - Writes a single character of data - -Args: - - char(typing.Any):Single byte to be placed in buffer - -Returns: - - None - - """ - pass - - -class RASDIALEXTENSIONS(object): - """An object that describes a Win32 RASDIALEXTENSIONS structure - -TRUE*/)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwfOptions(self)->'int': - """(fOptions may also be used)""" - pass - - - @property - def hwndParent(self)->'int': - """""" - pass - - - @property - def reserved(self)->'int': - """""" - pass - - - @property - def reserved1(self)->'int': - """""" - pass - - - @property - def RasEapInfo(self)->'typing.Any': - """""" - pass - - -class RASDIALPARAMS(object): - """A tuple that describes a Win32 RASDIALPARAMS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SC_ACTION(object): - """Tuple of 2 ints (Type,Delay) used to represent an SC_ACTION structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Type(self)->'typing.Any': - """One of SC_ACTION_NONE, SC_ACTION_REBOOT, SC_ACTION_RESTART, SC_ACTION_RUN_COMMAND""" - pass - - - @property - def Delay(self)->'typing.Any': - """Time delay before specified action is taken (in milliseconds)""" - pass - - -class SERVICE_FAILURE_ACTIONS(object): - """A dictionary representing a SERVICE_FAILURE_ACTIONS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ResetPeriod(self)->'typing.Any': - """Indicates how many seconds to wait to reset the failure count, can be INFINITE""" - pass - - - @property - def RebootMsg(self)->'typing.Union[str, typing.Any]': - """Message displayed when reboot action is taken""" - pass - - - @property - def Command(self)->'typing.Union[str, typing.Any]': - """Command line to execute for SC_ACTION_RUN_COMMAND""" - pass - - - @property - def Actions(self)->'typing.Any': - """A tuple of SC_ACTION tuples""" - pass - - -class SERVICE_STATUS(object): - """A Win32 service status object is represented by a tuple:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class TRACKMOUSEEVENT(object): - """A tuple of (dwFlags, hwndTrack, dwHoverTime)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class ULARGE_INTEGER(object): - """A Python object used wherever a COM ULARGE_INTEGER is used.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class WIN32_FIND_DATA(object): - """A tuple representing a WIN32_FIND_DATA structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class com_error(object): - """An exception raised when a COM exception occurs.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class connection(object): - """An object representing an ODBC connection""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def setautocommit(self,c:'typing.Any') -> 'None': - """ - Sets the autocommit mode. - -Args: - - c(typing.Any):The boolean autocommit mode. - -Returns: - - None - - """ - pass - - - def commit(self,) -> 'None': - """ - Commits a transaction. - -Args: - - - -Returns: - - None - - """ - pass - - - def rollback(self,) -> 'None': - """ - Rollsback a transaction. - -Args: - - - -Returns: - - None - - """ - pass - - - def cursor(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def close(self,) -> 'None': - """ - Closes the connection. - -Args: - - - -Returns: - - None - - """ - pass - - -class cursor(object): - """An object representing an ODBC cursor.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def close(self,) -> 'None': - """ - Closes the cursor - -Args: - - - -Returns: - - None - - """ - pass - - - def execute(self,sql:'str',arg:'typing.Any') -> 'typing.Any': - """ - Execute some SQL - -Args: - - sql(str):The SQL to execute - arg(typing.Any):Input variables. - -Returns: - - typing.Any - - """ - pass - - - def fetchone(self,) -> 'typing.Any': - """ - Fetch one row of data - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def fetchmany(self,) -> 'typing.List[typing.Any]': - """ - Fetch many rows of data - -Args: - - - -Returns: - - typing.List[typing.Any] - - """ - pass - - - def fetchall(self,) -> 'typing.List[typing.Any]': - """ - Fetch all rows of data - -Args: - - - -Returns: - - typing.List[typing.Any] - - """ - pass - - - def setinputsizes(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def setoutputsize(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class error(object): - """An exception raised when a win32 error occurs""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class COMPONENT(object): - """A dictionary containing data to fill a COMPPOS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ID(self)->'typing.Any': - """Id of component, ignored when adding a new component""" - pass - - - @property - def ComponentType(self)->'typing.Any': - """One of shellcon.COMP_TYPE_* values""" - pass - - - @property - def Checked(self)->'typing.Any': - """True indicates item is currently displayed""" - pass - - - @property - def fDirty(self)->'typing.Any': - """Indicates if unsaved changes exist""" - pass - - - @property - def NoScroll(self)->'typing.Any': - """True disables scrolling""" - pass - - - @property - def Pos(self)->'typing.Any': - """COMPPOS dictionary determining window size and placement""" - pass - - - @property - def FriendlyName(self)->'typing.Any': - """String of at most MAX_PATH-1 characters, truncated if longer""" - pass - - - @property - def Source(self)->'typing.Any': - """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" - pass - - - @property - def SubscribedURL(self)->'typing.Any': - """String of at most INTERNET_MAX_URL_LENGTH-1 characters""" - pass - - - @property - def CurItemState(self)->'typing.Any': - """One of shellcon.IS_* flags""" - pass - - - @property - def Original(self)->'typing.Any': - """COMPSTATEINFO dictionary""" - pass - - - @property - def Restored(self)->'typing.Any': - """COMPSTATEINFO dictionary""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class COMPONENTSOPT(object): - """A dictionary containing data to fill a COMPONENTSOPT struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def EnableComponents(self)->'typing.Any': - """True if components are enabled""" - pass - - - @property - def ActiveDesktop(self)->'typing.Any': - """True if Active Desktop is enabled""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class COMPPOS(object): - """A dictionary containing data to fill a COMPPOS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Left(self)->'typing.Any': - """""" - pass - - - @property - def Top(self)->'typing.Any': - """""" - pass - - - @property - def Width(self)->'typing.Any': - """""" - pass - - - @property - def Height(self)->'typing.Any': - """""" - pass - - - @property - def Index(self)->'typing.Any': - """""" - pass - - - @property - def CanResize(self)->'typing.Any': - """""" - pass - - - @property - def CanResizeX(self)->'typing.Any': - """""" - pass - - - @property - def CanResizeY(self)->'typing.Any': - """""" - pass - - - @property - def PreferredLeftPercent(self)->'typing.Any': - """""" - pass - - - @property - def PreferredTopPercent(self)->'typing.Any': - """""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class COMPSTATEINFO(object): - """A dictionary containing data to fill a COMPSTATEINFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Left(self)->'typing.Any': - """Specified as screen coordinates""" - pass - - - @property - def Top(self)->'typing.Any': - """Specified as screen coordinates""" - pass - - - @property - def Width(self)->'typing.Any': - """Measured in pixels""" - pass - - - @property - def Height(self)->'typing.Any': - """Measured in pixels""" - pass - - - @property - def dwItemState(self)->'typing.Any': - """One of IS_NORMAL, IS_FULLSCREEN IS_SPLIT""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class DEFCONTENTMENU(object): - """A tuple representing a DEFCONTEXTMENU structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class ELEMDESC(object): - """An ELEMDESC is respresented as a tuple of""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class EXP_DARWIN_LINK(object): - """Dictionary containing information for a EXP_DARWIN_LINK struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'typing.Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def DarwinID(self)->'typing.Any': - """The Windows Installer id for the link""" - pass - - - @property - def wDarwinID(self)->'typing.Any': - """The installer id as Unicode""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class EXP_SPECIAL_FOLDER(object): - """Dictionary containing information for a EXP_SPECIAL_FOLDER struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'typing.Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def idSpecialFolder(self)->'typing.Any': - """The special folder id of the target (shellcon.CSIDL_*)""" - pass - - - @property - def Offset(self)->'typing.Any': - """Offset into the link's PIDL""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class EXP_SZ_LINK(object): - """Dictionary containing information for an EXP_SZ_LINK or EXP_SZ_ICON struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'typing.Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def Target(self)->'typing.Any': - """The link's target or icon location""" - pass - - - @property - def wTarget(self)->'typing.Any': - """The target in Unicode form""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class FUNCDESC(object): - """A FUNCDESC object represents a COM TYPEATTR structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def memid(self)->'int': - """""" - pass - - - @property - def scodeArray(self)->'typing.Tuple[typing.Any, ...]': - """""" - pass - - - @property - def args(self)->'typing.Tuple[ELEMDESC, ...]': - """""" - pass - - - @property - def funckind(self)->'typing.Any': - """""" - pass - - - @property - def invkind(self)->'typing.Any': - """""" - pass - - - @property - def callconv(self)->'typing.Any': - """""" - pass - - - @property - def cParamsOpt(self)->'typing.Any': - """""" - pass - - - @property - def oVft(self)->'typing.Any': - """""" - pass - - - @property - def rettype(self)->'ELEMDESC': - """""" - pass - - - @property - def wFuncFlags(self)->'typing.Any': - """""" - pass - - -class IDLDESC(object): - """An IDLDESC is respresented as""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class MAPIINIT_0(object): - """A MAPIINIT_0 is represented as a tuple of:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class NT_CONSOLE_PROPS(object): - """Dictionary containing information for a NT_CONSOLE_PROPS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'typing.Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def FillAttribute(self)->'typing.Any': - """Character attributes for fill operations""" - pass - - - @property - def PopupFillAttribute(self)->'typing.Any': - """Fill attributes for popups""" - pass - - - @property - def ScreenBufferSize(self)->'typing.Tuple[typing.Any, typing.Any]': - """Size of console screen buffer, in character cells""" - pass - - - @property - def WindowSize(self)->'typing.Tuple[typing.Any, typing.Any]': - """Size of console window in character cells""" - pass - - - @property - def WindowOrigin(self)->'typing.Tuple[typing.Any, typing.Any]': - """Window position, in screen coordinates""" - pass - - - @property - def nFont(self)->'typing.Any': - """Number of font to be displayed. See win32console::GetNumberOfConsoleFonts""" - pass - - - @property - def InputBufferSize(self)->'typing.Any': - """Size of console's input buffer""" - pass - - - @property - def FontSize(self)->'typing.Tuple[typing.Any, typing.Any]': - """Size of font""" - pass - - - @property - def FontFamily(self)->'typing.Any': - """Font family""" - pass - - - @property - def FontWeight(self)->'typing.Any': - """Controls thickness of displayed font""" - pass - - - @property - def FaceName(self)->'typing.Any': - """Name of font face, 31 characters at most""" - pass - - - @property - def CursorSize(self)->'typing.Any': - """Relative size of cursor, expressed as percent of character size""" - pass - - - @property - def FullScreen(self)->'typing.Any': - """Causes console to run in full screen mode""" - pass - - - @property - def QuickEdit(self)->'typing.Any': - """""" - pass - - - @property - def InsertMode(self)->'typing.Any': - """""" - pass - - - @property - def AutoPosition(self)->'typing.Any': - """Lets system determine window placement""" - pass - - - @property - def HistoryBufferSize(self)->'typing.Any': - """Size of command line history buffer""" - pass - - - @property - def NumberOfHistoryBuffers(self)->'typing.Any': - """""" - pass - - - @property - def HistoryNoDup(self)->'typing.Any': - """""" - pass - - - @property - def ColorTable(self)->'typing.Any': - """Tuple of 16 ints containing console's color attributes""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class NT_FE_CONSOLE_PROPS(object): - """Dictionary containing information for a NT_FE_CONSOLE_PROPS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Signature(self)->'typing.Any': - """The type of data block, one of shellcon.*_SIG values""" - pass - - - @property - def CodePage(self)->'typing.Any': - """The codepage to be used for console text""" - pass - - - @property - def Size(self)->'typing.Any': - """Size of structure, ignored on input""" - pass - - -class PROPSPEC(object): - """Identifies a property. Can be either an int property id, or a str/unicode property name.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyADSVALUE(object): - """A tuple:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyADS_ATTR_INFO(object): - """Represents a ADS_ATTR_INFO structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def AttrName(self)->'typing.Any': - """The name""" - pass - - - @property - def ControlCode(self)->'int': - """""" - pass - - - @property - def ADsType(self)->'int': - """""" - pass - - - @property - def Values(self)->'typing.List[typing.Any]': - """""" - pass - - -class PyADS_OBJECT_INFO(object): - """Represents a ADS_OBJECT_INFO structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def RDN(self)->'typing.Any': - """The name""" - pass - - - @property - def ObjectDN(self)->'typing.Any': - """""" - pass - - - @property - def ParentDN(self)->'typing.Any': - """""" - pass - - - @property - def ClassName(self)->'typing.Any': - """""" - pass - - -class PyADS_SEARCHPREF_INFO(object): - """A tuple of:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyBIND_OPTS(object): - """Dictionary representation of a BIND_OPTS struct - -May eventually be extended to include BIND_OPTS2 members""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Flags(self)->'typing.Any': - """Value from BIND_FLAGS enum: BIND_MAYBOTHERUSER, BIND_JUSTTESTEXISTENCE or 0""" - pass - - - @property - def Mode(self)->'typing.Any': - """Combination of storagecon.STGM_* values""" - pass - - - @property - def TickCountDeadline(self)->'typing.Any': - """Operation timeout in milliseconds""" - pass - - - @property - def cbStruct(self)->'typing.Any': - """Size of struct, ignored on input""" - pass - - -class PyCMINVOKECOMMANDINFO(object): - """A tuple of parameters to be converted to a CMINVOKECOMMANDINFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDSBCAPS(object): - """A Python object, representing a DSBCAPS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Flags that specify buffer-object capabilities.FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" - pass - - - @property - def nChannels(self)->'int': - """Size of the buffer, in bytes.""" - pass - - - @property - def dwUnlockTransferRate(self)->'int': - """Specifies the rate, in kilobytes per second, at which data is transferred to the buffer memory when IDirectSoundBuffer::Unlock is called. High-performance applications can use this value to determine the time required for IDirectSoundBuffer::Unlock to execute. For software buffers located in system memory, the rate will be very high because no processing is required. For hardware buffers, the rate might be slower because the buffer might have to be downloaded to the sound card, which might have a limited transfer rate.""" - pass - - - @property - def nAvgBytesPerSec(self)->'int': - """Specifies whether the returned handle is inherited when a new process is created. If this member is TRUE, the new process inherits the handle. Sentinel""" - pass - - -class PyDSBUFFERDESC(object): - """A Python object, representing a DSBUFFERDESC structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Specify one or more of the following:FlagDescriptionDSBCAPS_PRIMARYBUFFERIndicates that the buffer is a primary sound buffer. If this value is not specified, a secondary sound buffer will be created.DSBCAPS_STATICIndicates that the buffer will be used for static sound data. Typically, these buffers are loaded once and played many times. These buffers are candidates for hardware memory.DSBCAPS_LOCHARDWAREThe buffer is in hardware memory and uses hardware mixing.DSBCAPS_LOCSOFTWAREThe buffer is in software memory and uses software mixing.DSBCAPS_CTRL3DThe buffer is either a primary buffer or a secondary buffer that uses 3-D control. To create a primary buffer, the dwFlags member of the DSBUFFERDESC structure should include the DSBCAPS_PRIMARYBUFFER flag.DSBCAPS_CTRLFREQUENCYThe buffer must have frequency control capability.DSBCAPS_CTRLPANThe buffer must have pan control capability.DSBCAPS_CTRLVOLUMEThe buffer must have volume control capability.DSBCAPS_CTRLPOSITIONNOTIFYThe buffer must have control position notify capability.DSBCAPS_STICKYFOCUSChanges the focus behavior of the sound buffer. This flag can be specified in an IDirectSound::CreateSoundBuffer call. With this flag set, an application using DirectSound can continue to play its sticky focus buffers if the user switches to another application not using DirectSound. In this situation, the application's normal buffers are muted, but the sticky focus buffers are still audible. This is useful for nongame applications, such as movie playback (DirectShow™), when the user wants to hear the soundtrack while typing in Microsoft Word or Microsoft® Excel, for example. However, if the user switches to another DirectSound application, all sound buffers, both normal and sticky focus, in the previous application are muted.DSBCAPS_GLOBALFOCUSThe buffer is a global sound buffer. With this flag set, an application using DirectSound can continue to play its buffers if the user switches focus to another application, even if the new application uses DirectSound. The one exception is if you switch focus to a DirectSound application that uses the DSSCL_EXCLUSIVE or DSSCL_WRITEPRIMARY flag for its cooperative level. In this case, the global sounds from other applications will not be audible.DSBCAPS_GETCURRENTPOSITION2Indicates that IDirectSoundBuffer::GetCurrentPosition should use the new behavior of the play cursor. In DirectSound in DirectX 1, the play cursor was significantly ahead of the actual playing sound on emulated sound cards; it was directly behind the write cursor. Now, if the DSBCAPS_GETCURRENTPOSITION2 flag is specified, the application can get a more accurate play position. If this flag is not specified, the old behavior is preserved for compatibility. Note that this flag affects only emulated sound cards; if a DirectSound driver is present, the play cursor is accurate for DirectSound in all versions of DirectX.DSBCAPS_MUTE3DATMAXDISTANCEThe sound is reduced to silence at the maximum distance. The buffer will stop playing when the maximum distance is exceeded, so that processor time is not wasted.""" - pass - - - @property - def dwBufferBytes(self)->'int': - """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" - pass - - - @property - def lpwfxFormat(self)->'typing.Any': - """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" - pass - - -class PyDSCAPS(object): - """A Python object, representing a DSCAPS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Specifies device capabilities. Can be one or more of the following:FlagDescriptionDSCAPS_PRIMARYMONOThe device supports monophonic primary buffers.DSCAPS_PRIMARYSTEREOThe device supports stereo primary buffers.DSCAPS_PRIMARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_PRIMARY16BITThe device supports primary sound buffers with 16-bit samples.DSCAPS_CONTINUOUSRATEThe device supports all sample rates between the dwMinSecondarySampleRate and dwMaxSecondarySampleRate member values. Typically, this means that the actual output rate will be within +/- 10 hertz (Hz) of the requested frequency.DSCAPS_EMULDRIVERThe device does not have a DirectSound driver installed, so it is being emulated through the waveform-audio functions. Performance degradation should be expected.DSCAPS_CERTIFIEDThis driver has been tested and certified by Microsoft.DSCAPS_SECONDARYMONOThe device supports hardware-mixed monophonic secondary buffers.DSCAPS_SECONDARYSTEREOThe device supports hardware-mixed stereo secondary buffers.DSCAPS_SECONDARY8BITThe device supports hardware-mixed secondary buffers with 8-bit samples.DSCAPS_SECONDARY16BITThe device supports hardware-mixed secondary sound buffers with 16-bit samples.""" - pass - - - @property - def dwMinSecondarySampleRate(self)->'int': - """Minimum sample rate supported by this device's hardware secondary sound buffers.""" - pass - - - @property - def dwMaxSecondarySampleRate(self)->'int': - """Maximum sample rate supported by this device's hardware secondary sound buffers.""" - pass - - - @property - def dwPrimaryBuffers(self)->'int': - """Number of primary buffers supported. This value will always be 1.""" - pass - - - @property - def dwMaxHwMixingAllBuffers(self)->'int': - """Specifies the total number of buffers that can be mixed in hardware. This member can be less than the sum of dwMaxHwMixingStaticBuffers and dwMaxHwMixingStreamingBuffers. Resource tradeoffs frequently occur.""" - pass - - - @property - def dwMaxHwMixingStaticBuffers(self)->'int': - """Specifies the maximum number of static sound buffers.""" - pass - - - @property - def dwMaxHwMixingStreamingBuffers(self)->'int': - """Specifies the maximum number of streaming sound buffers.""" - pass - - - @property - def dwFreeHwMixingAllBuffers(self)->'int': - """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" - pass - - - @property - def dwFreeHwMixingStaticBuffers(self)->'int': - """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" - pass - - - @property - def dwFreeHwMixingStreamingBuffers(self)->'int': - """Description of the free hardware mixing capabilities of the device. An application can use this value to determine whether hardware resources are available for allocation to a secondary sound buffer. Also, by comparing these values to the members that specify maximum mixing capabilities, the resources that are already allocated can be determined.""" - pass - - - @property - def dwMaxHw3DAllBuffers(self)->'int': - """Description of the hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwMaxHw3DStaticBuffers(self)->'int': - """Description of the hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwMaxHw3DStreamingBuffers(self)->'int': - """Description of the hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwFreeHw3DAllBuffers(self)->'int': - """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwFreeHw3DStaticBuffers(self)->'int': - """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwFreeHw3DStreamingBuffers(self)->'int': - """Description of the free, or unallocated, hardware 3-D positional capabilities of the device.""" - pass - - - @property - def dwTotalHwMemBytes(self)->'int': - """Size, in bytes, of the amount of memory on the sound card that stores static sound buffers.""" - pass - - - @property - def dwFreeHwMemBytes(self)->'int': - """Size, in bytes, of the free memory on the sound card.""" - pass - - - @property - def dwMaxContigFreeHwMemBytes(self)->'int': - """Size, in bytes, of the largest contiguous block of free memory on the sound card.""" - pass - - - @property - def dwUnlockTransferRateHwBuffers(self)->'int': - """Description of the rate, in kilobytes per second, at which data can be transferred to hardware static sound buffers. This and the number of bytes transferred determines the duration of a call to the IDirectSoundBuffer::Update method.""" - pass - - - @property - def dwPlayCpuOverheadSwBuffers(self)->'int': - """Description of the processing overhead, as a percentage of the central processing unit, needed to mix software buffers (those located in main system memory). This varies according to the bus type, the processor type, and the clock speed. The unlock transfer rate for software buffers is 0 because the data need not be transferred anywhere. Similarly, the play processing overhead for hardware buffers is 0 because the mixing is done by the sound device.""" - pass - - -class PyDSCBCAPS(object): - """A Python object, representing a DSCBCAPS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Specifies device capabilities. Can be 0 or DSCBCAPS_EMULDRIVER (indicates that no DirectSound Device is available and standard wave audio functions are being used).""" - pass - - - @property - def dwBufferBytes(self)->'int': - """The size, in bytes, of the capture buffer.""" - pass - - -class PyDSCBUFFERDESC(object): - """A Python object, representing a DSCBUFFERDESC structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Identifies the capabilities to include when creating a new DirectSoundBuffer object. Can be zero or the following flag:FlagDescriptionDSCBCAPS_WAVEMAPPEDThe Win32 wave mapper will be used for formats not supported by the device.""" - pass - - - @property - def dwBufferBytes(self)->'int': - """Size of the new buffer, in bytes. This value must be 0 when creating primary buffers. For secondary buffers, the minimum and maximum sizes allowed are specified by DSBSIZE_MIN and DSBSIZE_MAX.""" - pass - - - @property - def lpwfxFormat(self)->'typing.Any': - """Structure specifying the waveform format for the buffer. This value must be None for primary buffers. The application can use IDirectSoundBuffer::SetFormat to set the format of the primary buffer. Sentinel""" - pass - - -class PyDSCCAPS(object): - """A Python object, representing a DSCCAPS structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dwFlags(self)->'int': - """Specifies device capabilities. Can be zero or the following flag:FlagDescriptionDSCCAPS_EMULDRIVERIndicates that no DirectSound Device is available and standard wave audio functions are being used.""" - pass - - - @property - def dwFormats(self)->'int': - """Bitset of supported WAVE_FORMAT formats.""" - pass - - - @property - def dwChannels(self)->'int': - """Number of channels supported by the device.""" - pass - - -class PyDSOP_FILTER_FLAGS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def uplevel(self)->'PyDSOP_UPLEVEL_FILTER_FLAGS': - """""" - pass - - - @property - def downlevel(self)->'typing.Any': - """""" - pass - - -class PyDSOP_SCOPE_INIT_INFO(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def type(self)->'typing.Any': - """""" - pass - - - @property - def scope(self)->'typing.Any': - """""" - pass - - - @property - def hr(self)->'typing.Any': - """""" - pass - - - @property - def dcName(self)->'str': - """""" - pass - - - @property - def filterFlags(self)->'PyDSOP_FILTER_FLAGS': - """""" - pass - - -class PyDSOP_SCOPE_INIT_INFOs(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyDSOP_UPLEVEL_FILTER_FLAGS(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def bothModes(self)->'typing.Any': - """""" - pass - - - @property - def mixedModeOnly(self)->'typing.Any': - """""" - pass - - - @property - def nativeModeOnly(self)->'typing.Any': - """""" - pass - - -class PyFORMATETC(object): - """Tuple representing a FORMATETC struct describing an OLE data format""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyGFileOperationProgressSink(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def StartOperations(self,) -> 'None': - """ - Called as operation begins, before any modifications are done - -Args: - - - -Returns: - - None - - """ - pass - - - def FinishOperations(self,Result:'typing.Any') -> 'None': - """ - Called after all actions have been performed - -Args: - - Result(typing.Any):HRESULT of last operation performed - -Returns: - - None - - """ - pass - - - def PreRenameItem(self,Flags:'typing.Any',Item:'PyIShellItem',NewName:'typing.Any') -> 'None': - """ - Called before each file rename - -Args: - - Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags - Item(PyIShellItem):Shell interface of the copied item - NewName(typing.Any):New display name of the item - -Returns: - - None - - """ - pass - - - def PostRenameItem(self,Flags:'typing.Any',Item:'PyIShellItem',NewName:'typing.Any',hrRename:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': - """ - Called after each file rename - -Args: - - Flags(typing.Any):Flags specifying rename behaviour, combination of shellcon.TSF_* flags - Item(PyIShellItem):Shell interface of item before rename - NewName(typing.Any):The new name of the item, may be mangled to resolve filename conflicts - hrRename(typing.Any):HRESULT of the rename operation - NewlyCreated(PyIShellItem):Shell interface of the item after rename - -Returns: - - None - - """ - pass - - - def PreMoveItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': - """ - Called before each move operation - -Args: - - Flags(typing.Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags - Item(PyIShellItem):The item to be moved - DestinationFolder(PyIShellItem):The folder into which it will be moved - NewName(typing.Any):Name of moved item, may be None if not to be changed - -Returns: - - None - - """ - pass - - - def PostMoveItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any',hrMove:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': - """ - Called after each move operation - -Args: - - Flags(typing.Any):Flags specifying move behaviour, combination of shellcon.TSF_* flags - Item(PyIShellItem):Interface of the item before it was moved - DestinationFolder(PyIShellItem):The folder into which it was moved - NewName(typing.Any):Name of item in its new location, may be mangled in case of conflict - hrMove(typing.Any):HRESULT of the move operation - NewlyCreated(PyIShellItem):Shell interface of the item in its new location - -Returns: - - None - - """ - pass - - - def PreCopyItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': - """ - Called before each copy operation - -Args: - - Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags - Item(PyIShellItem):The item to be copied - DestinationFolder(PyIShellItem):Folder into which it will be copied - NewName(typing.Any):Name to be given to the copy, will be None if keeping original name - -Returns: - - None - - """ - pass - - - def PostCopyItem(self,Flags:'typing.Any',Item:'PyIShellItem',DestinationFolder:'PyIShellItem',NewName:'typing.Any',hrCopy:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': - """ - Called after each copy operation - -Args: - - Flags(typing.Any):Flags specifying copy behaviour, combination of shellcon.TSF_* flags - Item(PyIShellItem):The original item - DestinationFolder(PyIShellItem):Folder into which it was copied - NewName(typing.Any):Name of item after copy, may be mangled in case of name conflict - hrCopy(typing.Any):HRESULT of the copy operation - NewlyCreated(PyIShellItem):Shell interface of the copy - -Returns: - - None - - """ - pass - - - def PreDeleteItem(self,Flags:'typing.Any',Item:'PyIShellItem') -> 'None': - """ - Called before each delete operation - -Args: - - Flags(typing.Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags - Item(PyIShellItem):Item to be deleted - -Returns: - - None - - """ - pass - - - def PostDeleteItem(self,Flags:'typing.Any',Item:'PyIShellItem',hrDelete:'typing.Any',NewlyCreated:'PyIShellItem') -> 'None': - """ - Called after each delete operation - -Args: - - Flags(typing.Any):Flags specifying delete behaviour, combination of shellcon.TSF_* flags - Item(PyIShellItem):Item that was deleted - hrDelete(typing.Any):HRESULT of the delete operation - NewlyCreated(PyIShellItem):Item in the recycle bin, or None if deleted without recycling - -Returns: - - None - - """ - pass - - - def PreNewItem(self,Flags:'typing.Any',DestinationFolder:'PyIShellItem',NewName:'typing.Any') -> 'None': - """ - Called before each new file is created - -Args: - - Flags(typing.Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags - DestinationFolder(PyIShellItem):Folder where item will be created - NewName(typing.Any):Name of item to be created - -Returns: - - None - - """ - pass - - - def PostNewItem(self,Flags:'typing.Any',DestinationFolder:'PyIShellItem',NewName:'typing.Any',TemplateName:'typing.Any',FileAttributes:'typing.Any',hrNew:'typing.Any',NewItem:'PyIShellItem') -> 'None': - """ - Called after each new file is created - -Args: - - Flags(typing.Any):Flags specifying creation behaviour, combination of shellcon.TSF_* flags - DestinationFolder(PyIShellItem):Folder in which item was created - NewName(typing.Any):Name of created item, may be mangled if file name conflicts occurred - TemplateName(typing.Any):Template file used to initialize new item - FileAttributes(typing.Any):File attributes of new item - hrNew(typing.Any):HRESULT of the create operation - NewItem(PyIShellItem):Shell interface of created item - -Returns: - - None - - """ - pass - - - def UpdateProgress(self,WorkTotal:'typing.Any',WorkSoFar:'typing.Any') -> 'None': - """ - Gives an estimate of total work completed - -Args: - - WorkTotal(typing.Any):Undimensioned number representing total amount of work - WorkSoFar(typing.Any):Undimensioned number representing amount already completed - -Returns: - - None - - """ - pass - - - def ResetTimer(self,) -> 'None': - """ - Not implemented, according to MSDN - -Args: - - - -Returns: - - None - - """ - pass - - - def PauseTimer(self,) -> 'None': - """ - Not implemented, according to MSDN - -Args: - - - -Returns: - - None - - """ - pass - - - def ResumeTimer(self,) -> 'None': - """ - Not implemented, according to MSDN - -Args: - - - -Returns: - - None - - """ - pass - - -class PyGSecurityInformation(object): - """Gateway wrapper for the implement-only ISecurityInformation interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetObjectInformation(self,) -> 'SI_OBJECT_INFO': - """ - Returns information identifying the object - -whose security is to be editted, and which pages are to appear in the property sheet - -Args: - - - -Returns: - - SI_OBJECT_INFO:PyGSecurityInformation.GetObjectInformation -SI_OBJECT_INFO = GetObjectInformation()Returns information identifying the object - -whose security is to be editted, and which pages are to appear in the property sheet -Comments - -Due to peculiarities of the underlying system calls, this method will only be called once, - -and subsequent calls will return the information obtained on the first call. As a consequence, a new - -instance of the interface will need to be created for each object whose security is to be displayed. -Return ValueYour implementation of this method should return a SI_OBJECT_INFO tuple - - - """ - pass - - - def GetSecurity(self,RequestedInformation:'typing.Any',Default:'typing.Any') -> 'PySECURITY_DESCRIPTOR': - """ - Retrieves the object's current security - -settings - -Args: - - RequestedInformation(typing.Any):Combination of SECURITY_INFORMATION flags indicating which components of the object's security descriptor you should return - Default(typing.Any):If true, return a default security descriptor rather than current security. (invoked when 'Reset' button is clicked) - -Returns: - - PySECURITY_DESCRIPTOR - - """ - pass - - - def SetSecurity(self,SecurityInformation:'typing.Any',SecurityDescriptor:'PySECURITY_DESCRIPTOR') -> 'None': - """ - Applies the modified security to the object - -Args: - - SecurityInformation(typing.Any):SECURITY_INFORMATION flags specifying which types of security information are to be applied - SecurityDescriptor(PySECURITY_DESCRIPTOR):The security information to be applied to the objectReturn ValueAny returned value is ignored - -Returns: - - None:The security information to be applied to the objectReturn ValueAny returned value is ignored - - - """ - pass - - - def GetAccessRights(self,ObjectType:'PyIID',Flags:'typing.Any') -> 'typing.Tuple[SI_ACCESS, typing.Any]': - """ - Retrieves permission that can be set - -Args: - - ObjectType(PyIID):GUID representing type of object, may be None - Flags(typing.Any):Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, and a zero-based index indicating which of them is the default - -Returns: - - typing.Tuple[SI_ACCESS, typing.Any]:Indicates which page is requesting the access rights (SI_ADVANCED, SI_EDIT_AUDITS, - -SI_EDIT_PROPERTIES)Return ValueThis method should return a 2-tuple containing a sequence of SI_ACCESS tuples, - -and a zero-based index indicating which of them is the default - - - """ - pass - - - def MapGeneric(self,ObjectType:'PyIID',AceFlags:'typing.Any',Mask:'typing.Any') -> 'typing.Any': - """ - Translates generic access rights to specific equivalents - -Args: - - ObjectType(PyIID):Type of object that permissions apply to, None or GUID_NULL indicates object itself - AceFlags(typing.Any):Flags from the ACE that contains the permissions - Mask(typing.Any):Bitmask containing access rightsCommentsSee win32security::MapGenericMaskReturn ValueThis method should return the input bitmask will all generic rights mapped to specific rights - -Returns: - - typing.Any:Bitmask containing access rightsComments - -See win32security::MapGenericMask -Return ValueThis method should return the input bitmask will all generic rights mapped to specific rights - - - """ - pass - - - def GetInheritTypes(self,) -> 'typing.Tuple[SI_INHERIT_TYPE, ...]': - """ - Requests types of inheritance that your - -implementation supports - -Args: - - - -Returns: - - typing.Tuple[SI_INHERIT_TYPE, ...]:PyGSecurityInformation.GetInheritTypes - -(SI_INHERIT_TYPE,...) = GetInheritTypes()Requests types of inheritance that your - -implementation supports -Return ValueReturns a sequence of SI_INHERIT_TYPE tuples - - - """ - pass - - - def PropertySheetPageCallback(self,hwnd:'typing.Any',Msg:'typing.Any',Page:'typing.Any') -> 'None': - """ - Called by each page as it is created and destroyed - -Args: - - hwnd(typing.Any):Handle to the window for the page - Msg(typing.Any):Flag indicating type of event, one of PSPCB_CREATE,PSPCB_RELEASE,PSPCB_SI_INITDIALOG - Page(typing.Any):SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored - -Returns: - - None:SI_PAGE_TYPE value indicating which page is making the call (ntsecuritycon.SI_PAGE_*)Return ValueAny returned value will be ignored - - - """ - pass - - -class PyIADesktopP2(object): - """An interface to the ActiveDesktop""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def UpdateAllDesktopSubscriptions(self,) -> 'None': - """ - Updates webpage subscriptions on the desktop - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIADs(object): - """An object representing the IADs interface. - -In most cases you can achieve the same result via IDispatch - however, this - -interface allows you get get and set properties without the IDispatch - -overhead.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ADsPath(self)->'str': - """""" - pass - - - @property - def AdsPath(self)->'str': - """Synonym for ADsPath""" - pass - - - @property - def Class(self)->'str': - """""" - pass - - - @property - def GUID(self)->'str': - """Like the IADs method, this returns a string rather than a GUID object.""" - pass - - - @property - def Name(self)->'str': - """""" - pass - - - @property - def Parent(self)->'str': - """""" - pass - - - @property - def Schema(self)->'str': - """""" - pass - - - def GetInfo(self,) -> 'None': - """ - Description of GetInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetInfo(self,) -> 'None': - """ - Description of SetInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def Get(self,prop:'str') -> 'typing.Any': - """ - Description of Get. - -Args: - - prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. - -Returns: - - typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It - -may be an array, or any types supported by COM variant. - - - """ - pass - - - def Put(self,_property:'str',val:'typing.Any') -> 'None': - """ - Description of Put. - -Args: - - _property(str):The property name to set - val(typing.Any):The value to set. - -Returns: - - None - - """ - pass - - - def get(self,prop:'str') -> 'typing.Any': - """ - Description of Get. - -Args: - - prop(str):The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It may be an array, or any types supported by COM variant. - -Returns: - - typing.Any:The name of the property to fetchReturn ValueThe result is a Python object converted from a COM variant. It - -may be an array, or any types supported by COM variant. - - - """ - pass - - - def put(self,_property:'str',val:'typing.Any') -> 'None': - """ - Description of Put. - -Args: - - _property(str):The property name to set - val(typing.Any):The value to set. - -Returns: - - None - - """ - pass - - -class PyIADsContainer(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetObject(self,_class:'str',relativeName:'str') -> 'PyIDispatch': - """ - None - -Args: - - _class(str):Specifies the name of the object class as known in the underlying directory and identical to the one retrieved through the get_Class property method. If the class name is None, the provider returns the first item found in the container. - relativeName(str):Specifies the name of the object as known in the underlying directory and identical to the one retrieved through the get_Name property method. - -Returns: - - PyIDispatch - - """ - pass - - - def get_Count(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def get_Filter(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_Filter(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_Hints(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_Hints(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - -class PyIADsUser(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def get_AccountDisabled(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_AccountDisabled(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_AccountExpirationDate(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_AccountExpirationDate(self,val:'PyTime') -> 'None': - """ - None - -Args: - - val(PyTime): - -Returns: - - None - - """ - pass - - - def get_BadLoginAddress(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def get_BadLoginCount(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def get_Department(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_Department(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_Description(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_Description(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_Division(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_Division(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_EmailAddress(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_EmailAddress(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_EmployeeID(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_EmployeeID(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_FirstName(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_FirstName(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_FullName(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_FullName(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_HomeDirectory(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_HomeDirectory(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_HomePage(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_HomePage(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def get_LoginScript(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def put_LoginScript(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def SetPassword(self,val:'typing.Any') -> 'None': - """ - None - -Args: - - val(typing.Any): - -Returns: - - None - - """ - pass - - - def ChangePassword(self,oldval:'typing.Any',newval:'typing.Any') -> 'None': - """ - None - -Args: - - oldval(typing.Any): - newval(typing.Any): - -Returns: - - None - - """ - pass - - -class PyIActiveDesktop(object): - """An interface to the ActiveDesktop""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ApplyChanges(self,Flags:'typing.Any') -> 'None': - """ - Applies changes to ActiveDesktop settings and persists them to the registry. - -Args: - - Flags(typing.Any):Combination of shellcon.AD_APPLY_* flags - -Returns: - - None - - """ - pass - - - def GetWallpaper(self,cchWallpaper:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': - """ - Returns the current wallpaper - -Args: - - cchWallpaper(typing.Any):Number of characters to allocate for buffer - Reserved(typing.Any):Use 0 if passed in - -Returns: - - typing.Any - - """ - pass - - - def SetWallpaper(self,Wallpaper:'typing.Any',Reserved:'typing.Any'=0) -> 'None': - """ - Sets the desktop wallpaper - -Args: - - Wallpaper(typing.Any):File to be used as new wallpaper - Reserved(typing.Any):Reserved, use 0 if passed in - -Returns: - - None - - """ - pass - - - def GetWallpaperOptions(self,Reserved:'typing.Any'=0) -> 'typing.Any': - """ - Returns wallpaper style - -Args: - - Reserved(typing.Any):Use 0 if passed inReturn ValueReturns one of the WPSTYLE_* values - -Returns: - - typing.Any:Use 0 if passed in -Return ValueReturns one of the WPSTYLE_* values - - - """ - pass - - - def SetWallpaperOptions(self,Style:'typing.Any',Reserved:'typing.Any'=0) -> 'None': - """ - Sets wallpaper style - -Args: - - Style(typing.Any):The wallpaper style, one of the WPSTYLE_* constants - Reserved(typing.Any):Reserved, use 0 if passed in - -Returns: - - None - - """ - pass - - - def GetPattern(self,cchPattern:'typing.Any'=1024,Reserved:'typing.Any'=0) -> 'None': - """ - Returns the wallpaper pattern - -Args: - - cchPattern(typing.Any):Number of characters to allocate for buffer - Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a unicode string containing decimal values representing the pattern - -Returns: - - None:Use 0 if passed in -Return ValueReturns a unicode string containing decimal values representing the pattern - - - """ - pass - - - def SetPattern(self,Pattern:'typing.Any',Reserved:'typing.Any'=0) -> 'None': - """ - Sets the wallpaper pattern - -Args: - - Pattern(typing.Any):String of decimal numbers representing a picture - Reserved(typing.Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def GetDesktopItemOptions(self,) -> 'typing.Any': - """ - Returns options for Active Desktop. - -Args: - - - -Returns: - - typing.Any:PyIActiveDesktop.GetDesktopItemOptions - -dict = GetDesktopItemOptions()Returns options for Active Desktop. -Return ValueReturns a COMPONENTSOPT dictionary - - - """ - pass - - - def SetDesktopItemOptions(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': - """ - Sets Active Desktop options - -Args: - - comp(typing.Any):COMPONENTSOPT dictionary - Reserved(typing.Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def AddDesktopItem(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': - """ - Creates a new item to display on the desktop - -Args: - - comp(typing.Any):COMPONENT dictionary - Reserved(typing.Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def AddDesktopItemWithUI(self,hwnd:'int',comp:'typing.Any',Flags:'typing.Any') -> 'None': - """ - Adds a desktop item, allowing user interaction - -Args: - - hwnd(int):Handle to parent window - comp(typing.Any):COMPONENT dictionary - Flags(typing.Any):One of shellcon.DTI_ADDUI_* flags - -Returns: - - None - - """ - pass - - - def ModifyDesktopItem(self,comp:'typing.Any',Flags:'typing.Any') -> 'None': - """ - Changes parameters for a desktop item - -Args: - - comp(typing.Any):COMPONENT dictionary - Flags(typing.Any):Combination of shellcon.COMP_ELEM_* flags - -Returns: - - None - - """ - pass - - - def RemoveDesktopItem(self,comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': - """ - Removes an item from the Active Desktop - -Args: - - comp(typing.Any):COMPONENT dictionary specifying which component to remove - Reserved(typing.Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def GetDesktopItemCount(self,) -> 'None': - """ - Returns number of defined desktop items. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDesktopItem(self,Component:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': - """ - Returns desktop item parameters by index - -Args: - - Component(typing.Any):The zero-based index of the component to get - Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary describing the item - -Returns: - - typing.Any:Use 0 if passed in -Return ValueReturns a COMPONENT dictionary describing the item - - - """ - pass - - - def GetDesktopItemByID(self,ID:'typing.Any',reserved:'typing.Any'=0) -> 'typing.Any': - """ - Returns desktop item parameters by Id - -Args: - - ID(typing.Any):The Id of the desktop item - reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary - -Returns: - - typing.Any:Use 0 if passed in -Return ValueReturns a COMPONENT dictionary - - - """ - pass - - - def GenerateDesktopItemHtml(self,FileName:'typing.Any',comp:'typing.Any',Reserved:'typing.Any'=0) -> 'None': - """ - Creates an HTML page for the desktop item - -Args: - - FileName(typing.Any):Name of file to be created - comp(typing.Any):COMPONENT dictionary specifying the desktop item - Reserved(typing.Any):Use 0 if passed in - -Returns: - - None - - """ - pass - - - def AddUrl(self,hwnd:'int',Source:'typing.Any',comp:'typing.Any',Flags:'typing.Any') -> 'None': - """ - Adds a web page to desktop, allowing user interaction - -Args: - - hwnd(int):Parent windows for any user interactive - Source(typing.Any):Source URL - comp(typing.Any):COMPONENT dictionary - Flags(typing.Any):ADDURL_SILENT, or 0 - -Returns: - - None - - """ - pass - - - def GetDesktopItemBySource(self,Source:'typing.Any',Reserved:'typing.Any'=0) -> 'typing.Any': - """ - Returns desktop item parameters by URL - -Args: - - Source(typing.Any):The URL address of the item to retrieve - Reserved(typing.Any):Use 0 if passed inReturn ValueReturns a COMPONENT dictionary - -Returns: - - typing.Any:Use 0 if passed in -Return ValueReturns a COMPONENT dictionary - - - """ - pass - - -class PyIActiveDesktopP(object): - """An interface to the ActiveDesktop""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetSafeMode(self,Flags:'typing.Any') -> 'None': - """ - Changes Active Desktop to safe mode - -Args: - - Flags(typing.Any):One of shellcon.SSM_* flags - -Returns: - - None - - """ - pass - - -class PyIActiveScriptDebug(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetScriptTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'typing.Any') -> 'typing.Tuple[typing.Any, ...]': - """ - Returns the text attributes for an arbitrary block - -of script text. - -Args: - - pstrCode(str):The script block text. - pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. - dwFlags(typing.Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument.CommentsSmart hosts use this call to delegate GetText calls made on their axscript::PyIDebugDocumentText - -Returns: - - typing.Tuple[typing.Any, ...] - - """ - pass - - - def GetScriptletTextAttributes(self,pstrCode:'str',pstrDelimiter:'str',dwFlags:'typing.Any') -> 'None': - """ - Description of GetScriptletTextAttributes. - -Args: - - pstrCode(str):The script block text. - pstrDelimiter(str):See PyIActiveScriptParse::ParseScriptText for a description of this argument. - dwFlags(typing.Any):See PyIActiveScriptParse::ParseScriptText for a description of this argument. - -Returns: - - None - - """ - pass - - - def EnumCodeContextsOfPosition(self,dwSourceContext:'typing.Any',uCharacterOffset:'typing.Any',uNumChars:'typing.Any') -> 'None': - """ - Description of EnumCodeContextsOfPosition. - -Args: - - dwSourceContext(typing.Any):Description for dwSourceContext - uCharacterOffset(typing.Any):Description for uCharacterOffset - uNumChars(typing.Any):Description for uNumChars - -Returns: - - None - - """ - pass - - -class PyIActiveScriptError(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetExceptionInfo(self,) -> 'None': - """ - Description of GetExceptionInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSourcePosition(self,) -> 'None': - """ - Description of GetSourcePosition. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSourceLineText(self,) -> 'None': - """ - Description of GetSourceLineText. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIActiveScriptErrorDebug(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentContext(self,) -> 'None': - """ - Description of GetDocumentContext. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetStackFrame(self,) -> 'None': - """ - Description of GetStackFrame. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIActiveScriptParseProcedure(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ParseProcedureText(self,pstrCode:'typing.Any',pstrFormalParams:'typing.Any',pstrProcedureName:'typing.Any',pstrItemName:'typing.Any',punkContext:'PyIUnknown',pstrDelimiter:'typing.Any',dwSourceContextCookie:'typing.Any',ulStartingLineNumber:'typing.Any',dwFlags:'typing.Any') -> 'None': - """ - Description of ParseProcedureText. - -Args: - - pstrCode(typing.Any):Description for pstrCode - pstrFormalParams(typing.Any):Description for pstrFormalParams - pstrProcedureName(typing.Any):Description for pstrProcedureName - pstrItemName(typing.Any):Description for pstrItemName - punkContext(PyIUnknown):Description for punkContext - pstrDelimiter(typing.Any):Description for pstrDelimiter - dwSourceContextCookie(typing.Any):Description for dwSourceContextCookie - ulStartingLineNumber(typing.Any):Description for ulStartingLineNumber - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - -class PyIActiveScriptSite(object): - """An object providing the IActiveScriptSite interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLCID(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetItemInfo(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetDocVersionString(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnStateChange(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnEnterScript(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnLeaveScript(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnScriptError(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnScriptTerminate(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIActiveScriptSiteDebug(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentContextFromPosition(self,dwSourceContext:'typing.Any',uCharacterOffset:'typing.Any',uNumChars:'typing.Any') -> 'None': - """ - Description of GetDocumentContextFromPosition. - -Args: - - dwSourceContext(typing.Any):Description for dwSourceContext - uCharacterOffset(typing.Any):Description for uCharacterOffset - uNumChars(typing.Any):Description for uNumChars - -Returns: - - None - - """ - pass - - - def GetApplication(self,) -> 'None': - """ - Description of GetApplication. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetRootApplicationNode(self,) -> 'None': - """ - Description of GetRootApplicationNode. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnScriptErrorDebug(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Allows a smart host to control the handling of runtime - -errors - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any]:PyIActiveScriptSiteDebug.OnScriptErrorDebug - -int, int = OnScriptErrorDebug()Allows a smart host to control the handling of runtime - -errors -Return ValueThe result is a tuple of (bCallDebugger, bCallOnScriptErrorWhenContinuing) - - - """ - pass - - -class PyIAddrBook(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ResolveName(self,uiParm:'typing.Any',flags:'typing.Any',entryTitle:'str',ADRLIST:'typing.Any') -> 'None': - """ - Performs name resolution, assigning entry identifiers to recipients in a recipient list. - -Args: - - uiParm(typing.Any):hwnd of a dialogs parent. - flags(typing.Any):Bitmask of flags that controls whether a dialog box can be displayed. - entryTitle(str): - ADRLIST(typing.Any):Partial addresses to resolve. - -Returns: - - None - - """ - pass - - - def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': - """ - Opens a folder or message and returns an interface object for further access. - -Args: - - entryId(str):The entryID of the object - iid(PyIID):The IID of the object to return, or None for the default IID - flags(typing.Any):Bitmask of flags that controls how the object is opened. - -Returns: - - typing.Any - - """ - pass - - - def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': - """ - Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object - -Args: - - entryId(str):The first entry ID to be compared - entryId1(str):The second entry ID to be compared - flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - -Returns: - - typing.Any:Reserved - must be zero. -Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - - - """ - pass - - -class PyIApplicationDebugger(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryAlive(self,) -> 'None': - """ - Returns true if alive, else false. - -Args: - - - -Returns: - - None - - """ - pass - - - def CreateInstanceAtDebugger(self,rclsid:'PyIID',pUnkOuter:'PyIUnknown',dwClsContext:'typing.Any',riid:'PyIID') -> 'None': - """ - Create objects in the application process address space. - -Args: - - rclsid(PyIID):Description for rclsid - pUnkOuter(PyIUnknown):Description for pUnkOuter - dwClsContext(typing.Any):Description for dwClsContext - riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. - -Returns: - - None - - """ - pass - - - def onDebugOutput(self,pstr:'typing.Any') -> 'None': - """ - None - -Args: - - pstr(typing.Any):Description for pstrCommentsThe debugger can use this to display the string in an output window. - -Returns: - - None - - """ - pass - - - def onHandleBreakPoint(self,prpt:'PyIRemoteDebugApplicationThread',br:'typing.Any',pError:'typing.Any') -> 'None': - """ - Called when a breakpoint is hit. - -Args: - - prpt(PyIRemoteDebugApplicationThread):Description for prpt - br(typing.Any):Description for br - pError(typing.Any):Description for pErrorCommentsThe application will remain suspended until the debugger IDE calls PyIDebugApplication::ResumeFromBreakPoint. - -Returns: - - None - - """ - pass - - - def onClose(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def onDebuggerEvent(self,guid:'PyIID',uUnknown:'PyIUnknown') -> 'None': - """ - Description of onDebuggerEvent. - -Args: - - guid(PyIID): - uUnknown(PyIUnknown):CommentsThe semantics of guid and unknown are entirely application/debugger defined This method may return E_NOTIMPL. - -Returns: - - None - - """ - pass - - -class PyIApplicationDestinations(object): - """Allows an application to removed items from its jump lists""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetAppID(self,AppID:'typing.Any') -> 'None': - """ - Specifies the application whose jump list is to be accessed - -Args: - - AppID(typing.Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier - -Returns: - - None - - """ - pass - - - def RemoveDestination(self,punk:'PyIUnknown') -> 'None': - """ - Removes a single entry from the jump lists - -Args: - - punk(PyIUnknown):IShellItem or IShellLink representing an item in the application's jump listCommentsDoes not remove pinned items - -Returns: - - None - - """ - pass - - - def RemoveAllDestinations(self,) -> 'None': - """ - Removes all Recent and Frequent jump list entries - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIApplicationDocumentLists(object): - """Interface used to retrieve the jump lists for an application""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetAppID(self,AppID:'typing.Any') -> 'None': - """ - Specifies the application whose jump list is to be accessed - -Args: - - AppID(typing.Any):Taskbar identifier for the applicationCommentsThis method is only needed if the application sets its own taskbar identifier - -Returns: - - None - - """ - pass - - - def GetList(self,ListType:'typing.Any',riid:'PyIID',ItemsDesired:'typing.Any'=0) -> 'PyIEnumObjects': - """ - Retrieves a list of items in a jump list - -Args: - - ListType(typing.Any):Type of document list to return, shellcon.ADLT_RECENT or ADLT_FREQUENT - riid(PyIID):The interface to return, IID_IEnumObjects or IID_IObjectArray - ItemsDesired(typing.Any):Number of items to return, use 0 for all available - -Returns: - - PyIEnumObjects - - """ - pass - - -class PyIAsyncOperation(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetAsyncMode(self,fDoOpAsync:'typing.Any') -> 'None': - """ - Description of SetAsyncMode. - -Args: - - fDoOpAsync(typing.Any):Description for fDoOpAsync - -Returns: - - None - - """ - pass - - - def GetAsyncMode(self,) -> 'typing.Any': - """ - Description of GetAsyncMode. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def StartOperation(self,pbcReserved:'PyIBindCtx') -> 'None': - """ - Description of StartOperation. - -Args: - - pbcReserved(PyIBindCtx):Description for pbcReserved - -Returns: - - None - - """ - pass - - - def InOperation(self,) -> 'None': - """ - Description of InOperation. - -Args: - - - -Returns: - - None - - """ - pass - - - def EndOperation(self,hResult:'typing.Any',pbcReserved:'PyIBindCtx',dwEffects:'typing.Any') -> 'None': - """ - Description of EndOperation. - -Args: - - hResult(typing.Any):Description for hResult - pbcReserved(PyIBindCtx):Description for pbcReserved - dwEffects(typing.Any):Description for dwEffects - -Returns: - - None - - """ - pass - - -class PyIAttach(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns the last error code for the object. - -Args: - - hr(typing.Any):Contains the error code generated in the previous method call. - flags(typing.Any):Indicates for format for the output. - -Returns: - - typing.Any - - """ - pass - - -class PyIBindCtx(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetRunningObjectTable(self,) -> 'PyIRunningObjectTable': - """ - Retrieves an object interfacing to the Running - -Object Table. - -Args: - - - -Returns: - - PyIRunningObjectTable - - """ - pass - - - def GetBindOptions(self,) -> 'PyBIND_OPTS': - """ - Retrieves the bind options for the bind context - -Args: - - - -Returns: - - PyBIND_OPTS - - """ - pass - - - def SetBindOptions(self,bindopts:'typing.Any') -> 'None': - """ - Sets the bind options for the context - -Args: - - bindopts(typing.Any):PyBIND_OPTS dictionary containing the binding options - -Returns: - - None - - """ - pass - - - def RegisterObjectParam(self,Key:'str',punk:'PyIUnknown') -> 'None': - """ - Adds an object to the context's keyed table of associated objects - -Args: - - Key(str):The string key for the object to be registered - punk(PyIUnknown):COM object to be registered with the bind context - -Returns: - - None - - """ - pass - - - def RevokeObjectParam(self,Key:'str') -> 'None': - """ - Removes one of the bind context's registered objects - -Args: - - Key(str):The string key for the object to be removed - -Returns: - - None - - """ - pass - - - def GetObjectParam(self,Key:'str') -> 'PyIUnknown': - """ - Returns one of the bind context's associated objects - -Args: - - Key(str):The string key for the object to be returned - -Returns: - - PyIUnknown - - """ - pass - - - def EnumObjectParam(self,) -> 'PyIEnumString': - """ - Creates an enumerator to list context's string keys - -Args: - - - -Returns: - - PyIEnumString - - """ - pass - - -class PyIBrowserFrameOptions(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetFrameOptions(self,dwMask:'typing.Any') -> 'None': - """ - Description of GetFrameOptions. - -Args: - - dwMask(typing.Any):Description for dwMask - -Returns: - - None - - """ - pass - - -class PyICancelMethodCalls(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Cancel(self,Seconds:'typing.Any') -> 'None': - """ - Cancels a pending call - -Args: - - Seconds(typing.Any):Wait timeout in seconds - -Returns: - - None - - """ - pass - - - def TestCancel(self,) -> 'typing.Any': - """ - Checks if a request has been made to cancel a call - -Args: - - - -Returns: - - typing.Any:PyICancelMethodCalls.TestCancel - -int = TestCancel()Checks if a request has been made to cancel a call -Return ValueCan return RPC_S_CALLPENDING or RPC_E_CALL_CANCELED - - - """ - pass - - -class PyICatInformation(object): - """A Python interface to ICatInformation""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumCategories(self,lcid:'typing.Any'=0) -> 'PyIEnumCATEGORYINFO': - """ - Returns an enumerator for the component categories - -registered on the system. - -Args: - - lcid(typing.Any):lcid - -Returns: - - PyIEnumCATEGORYINFO - - """ - pass - - - def GetCategoryDesc(self,lcid:'typing.Any'=0) -> 'str': - """ - Retrieves the localized description string for a specific category - -ID. - -Args: - - lcid(typing.Any):lcidCommentsThe return type is a unicode object. - -Returns: - - str - - """ - pass - - - def EnumClassesOfCategories(self,listIIdImplemented:'typing.List[PyIID]'=None,listIIdRequired:'typing.Any'=None) -> 'PyIEnumGUID': - """ - Returns an enumerator over the classes that - -implement one or more interfaces. - -Args: - - listIIdImplemented(typing.List[PyIID]):A sequence of PyIID objects, or None. - listIIdRequired(typing.Any):A sequence of PyIID objects, or None. - -Returns: - - PyIEnumGUID - - """ - pass - - -class PyICatRegister(object): - """An interface to a COM ICatRegister interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def RegisterCategories(self,arg:'typing.List[typing.Tuple[PyIID, typing.Any, str]]') -> 'None': - """ - Registers one or more component categories. Each component category - -consists of a CATID and a list of locale-dependent description strings. - -Args: - - arg(typing.List[typing.Tuple[PyIID, typing.Any, str]]):A sequence of category descriptions. - -Returns: - - None - - """ - pass - - - def UnRegisterCategories(self,arg:'typing.List[PyIID]') -> 'None': - """ - Unregister one or more previously registered categories. - -Args: - - arg(typing.List[PyIID]):The list of category IDs to be unregistered. - -Returns: - - None - - """ - pass - - - def RegisterClassImplCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': - """ - Registers the class as implementing one or more component - -categories. - -Args: - - clsid(PyIID):Class ID of the relevent class - arg(typing.List[PyIID]):A sequence of category IDs to be associated with the class. - -Returns: - - None - - """ - pass - - - def UnRegisterClassImplCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': - """ - Unregisters the class as implementing one or more component - -categories. - -Args: - - clsid(PyIID):Class ID of the relevent class - arg(typing.List[PyIID]):A sequence of category IDs to be unregistered from the class. - -Returns: - - None - - """ - pass - - - def RegisterClassReqCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': - """ - Registers the class as requiring one or more component - -categories. - -Args: - - clsid(PyIID):Class ID of the relevent class - arg(typing.List[PyIID]):A sequence of category IDs to be associated with the class. - -Returns: - - None - - """ - pass - - - def UnRegisterClassReqCategories(self,clsid:'PyIID',arg:'typing.List[PyIID]') -> 'None': - """ - Unregisters the class as requiring one or more component - -categories. - -Args: - - clsid(PyIID):Class ID of the relevent class - arg(typing.List[PyIID]):A sequence of category IDs to be unregistered for the class. - -Returns: - - None - - """ - pass - - -class PyICategoryProvider(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CanCategorizeOnSCID(self,pscid:'typing.Any') -> 'None': - """ - Description of CanCategorizeOnSCID. - -Args: - - pscid(typing.Any):Description for pscid - -Returns: - - None - - """ - pass - - - def GetDefaultCategory(self,) -> 'None': - """ - Description of GetDefaultCategory. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCategoryForSCID(self,pscid:'typing.Any') -> 'None': - """ - Description of GetCategoryForSCID. - -Args: - - pscid(typing.Any):Description for pscid - -Returns: - - None - - """ - pass - - - def EnumCategories(self,) -> 'None': - """ - Description of EnumCategories. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCategoryName(self,guid:'PyIID') -> 'None': - """ - Description of GetCategoryName. - -Args: - - guid(PyIID):Description for pguidCommentsThe buffer is always 1024 chars long - -Returns: - - None - - """ - pass - - - def CreateCategory(self,guid:'PyIID',riid:'PyIID') -> 'None': - """ - Description of CreateCategory. - -Args: - - guid(PyIID):Description for pguid - riid(PyIID):Description for riid - -Returns: - - None - - """ - pass - - -class PyIClassFactory(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateInstance(self,outerUnknown:'PyIUnknown',iid:'PyIID') -> 'PyIUnknown': - """ - Creates an uninitialized object. - -Args: - - outerUnknown(PyIUnknown):Usually None, otherwise the outer unknown if the object is being created as part of an aggregate. - iid(PyIID):The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the type specified by iid. - -Returns: - - PyIUnknown:The IID of the resultant object.Return ValueThe result object will always be derived from PyIUnknown, but will be of the - -type specified by iid. - - - """ - pass - - - def LockServer(self,bInc:'typing.Any') -> 'None': - """ - Called by the client of a class object to keep a server open in memory, - -allowing instances to be created more quickly. - -Args: - - bInc(typing.Any):1 of the server should be locked, 0 if the server should be unlocked. - -Returns: - - None - - """ - pass - - -class PyIClientSecurity(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryBlanket(self,Proxy:'PyIUnknown') -> 'typing.Any': - """ - Retrieves the authentication settings for an interface - -Args: - - Proxy(PyIUnknown):An interface created through a proxy - -Returns: - - typing.Any - - """ - pass - - - def SetBlanket(self,Proxy:'PyIUnknown',AuthnSvc:'typing.Any',AuthzSvc:'typing.Any',ServerPrincipalName:'str',AuthnLevel:'typing.Any',ImpLevel:'typing.Any',AuthInfo:'typing.Any',Capabilities:'typing.Any') -> 'None': - """ - Changes the authentication options used with an interface - -Args: - - Proxy(PyIUnknown):The proxy interface for which to set security options - AuthnSvc(typing.Any):Authentication service identifier, pythoncom.RPC_C_AUTHN_* (but not RPC_C_AUTHN_LEVEL_*) - AuthzSvc(typing.Any):Authorization service identifier, pythoncom.RPC_C_AUTHZ_* - ServerPrincipalName(str):SPN that identifies the server, can be None - AuthnLevel(typing.Any):Authentication level, pythoncom.RPC_C_AUTHN_LEVEL_* - ImpLevel(typing.Any):Impersonation level, pythoncom.RPC_C_IMP_LEVEL_* - AuthInfo(typing.Any):Not supported yet, use only None - Capabilities(typing.Any):Combination of pythoncom.EOAC_* flags. Must be a subset of the capabilities of the specified authentication service. - -Returns: - - None - - """ - pass - - - def CopyProxy(self,Proxy:'PyIUnknown') -> 'PyIUnknown': - """ - Makes a private copy of a proxy interface - -Args: - - Proxy(PyIUnknown):The remote interface to be copied - -Returns: - - PyIUnknown - - """ - pass - - -class PyIColumnProvider(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,psci:'typing.Any') -> 'None': - """ - Description of Initialize. - -Args: - - psci(typing.Any):Description for psci - -Returns: - - None - - """ - pass - - - def GetColumnInfo(self,dwIndex:'typing.Any') -> 'None': - """ - Description of GetColumnInfo. - -Args: - - dwIndex(typing.Any):Description for dwIndex - -Returns: - - None - - """ - pass - - - def GetItemData(self,pscid:'typing.Any',pscd:'typing.Any') -> 'None': - """ - Description of GetItemData. - -Args: - - pscid(typing.Any):Description for pscid - pscd(typing.Any):Description for pscd - -Returns: - - None - - """ - pass - - -class PyIConnectionPoint(object): - """A Python wrapper of a COM IConnectionPoint interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetConnectionInterface(self,) -> 'PyIID': - """ - Retrieves the IID of the interface represented by the - -connection point. - -Args: - - - -Returns: - - PyIID - - """ - pass - - - def GetConnectionPointContainer(self,) -> 'PyIConnectionPointContainer': - """ - Gets the connection point - -container for the object. - -Args: - - - -Returns: - - PyIConnectionPointContainer - - """ - pass - - - def Advise(self,unk:'PyIUnknown') -> 'typing.Any': - """ - Establishes a connection between the connection point object and the client's - -sink. - -Args: - - unk(PyIUnknown):The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise - -Returns: - - typing.Any:The client's advise sinkReturn ValueThe result is the connection point identifier used by PyIConnectionPoint::Unadvise - - - """ - pass - - - def Unadvise(self,cookie:'typing.Any') -> 'None': - """ - Terminates an advisory connection previously established through - -IConnectionPoint::Advise. The dwCookie parameter identifies the connection to terminate. - -Args: - - cookie(typing.Any):The connection token - -Returns: - - None - - """ - pass - - - def EnumConnections(self,) -> 'PyIEnumConnections': - """ - Creates an enumerator to iterate through the - -connections for the connection point - -Args: - - - -Returns: - - PyIEnumConnections - - """ - pass - - -class PyIConnectionPointContainer(object): - """A Python wrapper of a COM IConnectionPointContainer interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumConnectionPoints(self,) -> 'PyIEnumConnectionPoints': - """ - Creates an enumerator object - -to iterate through all the connection points supported in the connectable object, one connection point per outgoing - -IID. - -Args: - - - -Returns: - - PyIEnumConnectionPoints - - """ - pass - - - def FindConnectionPoint(self,iid:'PyIID') -> 'PyIConnectionPoint': - """ - Finds a connection point for the - -given IID - -Args: - - iid(PyIID):The IID of the requested connection. - -Returns: - - PyIConnectionPoint - - """ - pass - - -class PyIContext(object): - """Allows access to properties defined for the current context (Requires win2k or later)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetProperty(self,rpolicyId:'PyIID',flags:'typing.Any',pUnk:'PyIUnknown') -> 'None': - """ - Sets a property on the context - -Args: - - rpolicyId(PyIID):GUID identifying the property to be set - flags(typing.Any):Reserved, use only 0 - pUnk(PyIUnknown):The property value - -Returns: - - None - - """ - pass - - - def RemoveProperty(self,rPolicyId:'PyIID') -> 'None': - """ - Removes a property from the context - -Args: - - rPolicyId(PyIID):GUID that identifies a context property - -Returns: - - None - - """ - pass - - - def GetProperty(self,rGuid:'PyIID') -> 'typing.Tuple[typing.Any, PyIUnknown]': - """ - Retrieves a context property - -Args: - - rGuid(PyIID):GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property - -Returns: - - typing.Tuple[typing.Any, PyIUnknown]:GUID that identifies a context propertyReturn ValueReturns flags (CPFLAGS is reserved, no defined values) and the IUnknown interface set for the property - - - """ - pass - - - def EnumContextProps(self,) -> 'PyIEnumContextProps': - """ - Returns an enumerator for the context properties - -Args: - - - -Returns: - - PyIEnumContextProps - - """ - pass - - -class PyIContextMenu(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryContextMenu(self,hmenu:'int',indexMenu:'typing.Any',idCmdFirst:'typing.Any',idCmdLast:'typing.Any',uFlags:'typing.Any') -> 'typing.Any': - """ - Adds options to a context menu - -Args: - - hmenu(int):Handle to menu to which items should be added - indexMenu(typing.Any):Zero-based index at which to add first item - idCmdFirst(typing.Any):Minimum menu item Id - idCmdLast(typing.Any):Max menu item Id - uFlags(typing.Any):Combination of shellcon.CMF_* flags, can be 0 - -Returns: - - typing.Any - - """ - pass - - - def InvokeCommand(self,pici:'PyCMINVOKECOMMANDINFO') -> 'None': - """ - Executes a context menu option - -Args: - - pici(PyCMINVOKECOMMANDINFO):Tuple of parameters representing a CMINVOKECOMMANDINFO struct - -Returns: - - None - - """ - pass - - - def GetCommandString(self,idCmd:'typing.Any',uType:'typing.Any',cchMax:'typing.Any'=2048) -> 'typing.Any': - """ - Retrieves verb or help text for a context menu option - -Args: - - idCmd(typing.Any):Id of the command - uType(typing.Any):One of the shellcon.GCS_* constants - cchMax(typing.Any):Size of buffer to create for returned string - -Returns: - - typing.Any - - """ - pass - - -class PyICopyHookA(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CopyCallback(self,hwnd:'typing.Any',wFunc:'typing.Any',wFlags:'typing.Any',srcFile:'typing.Union[str, typing.Any]',srcAttribs:'typing.Any',destFile:'typing.Union[str, typing.Any]',destAttribs:'typing.Any') -> 'None': - """ - Description of CopyCallback. - -Args: - - hwnd(typing.Any):Description for hwnd - wFunc(typing.Any):Description for wFunc - wFlags(typing.Any):Description for wFlags - srcFile(typing.Union[str, typing.Any]):Description for srcFile - srcAttribs(typing.Any):Description for srcAttribs - destFile(typing.Union[str, typing.Any]):Description for destFile - destAttribs(typing.Any):Description for destAttribs - -Returns: - - None - - """ - pass - - -class PyICopyHookW(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CopyCallback(self,hwnd:'typing.Any',wFunc:'typing.Any',wFlags:'typing.Any',srcFile:'typing.Union[str, typing.Any]',srcAttribs:'typing.Any',destFile:'typing.Union[str, typing.Any]',destAttribs:'typing.Any') -> 'None': - """ - Description of CopyCallback. - -Args: - - hwnd(typing.Any):Description for hwnd - wFunc(typing.Any):Description for wFunc - wFlags(typing.Any):Description for wFlags - srcFile(typing.Union[str, typing.Any]):Description for srcFile - srcAttribs(typing.Any):Description for srcAttribs - destFile(typing.Union[str, typing.Any]):Description for destFile - destAttribs(typing.Any):Description for destAttribs - -Returns: - - None - - """ - pass - - -class PyICreateTypeInfo(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetGuid(self,guid:'PyIID') -> 'None': - """ - Description of SetGuid. - -Args: - - guid(PyIID):Description for guid - -Returns: - - None - - """ - pass - - - def SetTypeFlags(self,uTypeFlags:'typing.Any') -> 'None': - """ - Description of SetTypeFlags. - -Args: - - uTypeFlags(typing.Any):Description for uTypeFlags - -Returns: - - None - - """ - pass - - - def SetDocString(self,pStrDoc:'typing.Any') -> 'None': - """ - Description of SetDocString. - -Args: - - pStrDoc(typing.Any):Description for pStrDoc - -Returns: - - None - - """ - pass - - - def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': - """ - Description of SetHelpContext. - -Args: - - dwHelpContext(typing.Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': - """ - Description of SetVersion. - -Args: - - wMajorVerNum(typing.Any):Description for wMajorVerNum - wMinorVerNum(typing.Any):Description for wMinorVerNum - -Returns: - - None - - """ - pass - - - def AddRefTypeInfo(self,pTInfo:'PyITypeInfo') -> 'None': - """ - Description of AddRefTypeInfo. - -Args: - - pTInfo(PyITypeInfo):Description for pTInfo - -Returns: - - None - - """ - pass - - - def AddFuncDesc(self,index:'typing.Any') -> 'None': - """ - Description of AddFuncDesc. - -Args: - - index(typing.Any):Description for index - -Returns: - - None - - """ - pass - - - def AddImplType(self,index:'typing.Any',hRefType:'typing.Any') -> 'None': - """ - Description of AddImplType. - -Args: - - index(typing.Any):Description for index - hRefType(typing.Any):A hRefType - -Returns: - - None - - """ - pass - - - def SetImplTypeFlags(self,index:'typing.Any',implTypeFlags:'typing.Any') -> 'None': - """ - Description of SetImplTypeFlags. - -Args: - - index(typing.Any):Description for index - implTypeFlags(typing.Any):Description for implTypeFlags - -Returns: - - None - - """ - pass - - - def SetAlignment(self,cbAlignment:'typing.Any') -> 'None': - """ - Description of SetAlignment. - -Args: - - cbAlignment(typing.Any):Description for cbAlignment - -Returns: - - None - - """ - pass - - - def SetSchema(self,pStrSchema:'typing.Any') -> 'None': - """ - Description of SetSchema. - -Args: - - pStrSchema(typing.Any):Description for pStrSchema - -Returns: - - None - - """ - pass - - - def AddVarDesc(self,index:'typing.Any') -> 'None': - """ - Description of AddVarDesc. - -Args: - - index(typing.Any):Description for index - -Returns: - - None - - """ - pass - - - def SetFuncAndParamNames(self,index:'typing.Any',rgszNames:'typing.Tuple[typing.Any, ...]') -> 'None': - """ - Description of SetFuncAndParamNames. - -Args: - - index(typing.Any):Index of the item to set. - rgszNames(typing.Tuple[typing.Any, ...]):A sequence of unicode or String objects. - -Returns: - - None - - """ - pass - - - def SetVarName(self,index:'typing.Any',szName:'typing.Any') -> 'None': - """ - Description of SetVarName. - -Args: - - index(typing.Any):Description for index - szName(typing.Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetTypeDescAlias(self,) -> 'None': - """ - Description of SetTypeDescAlias. - -Args: - - - -Returns: - - None - - """ - pass - - - def DefineFuncAsDllEntry(self,index:'typing.Any',szDllName:'typing.Any',szProcName:'typing.Any') -> 'None': - """ - Description of DefineFuncAsDllEntry. - -Args: - - index(typing.Any):Description for index - szDllName(typing.Any):Description for szDllName - szProcName(typing.Any):Description for szProcName - -Returns: - - None - - """ - pass - - - def SetFuncDocString(self,index:'typing.Any',szDocString:'typing.Any') -> 'None': - """ - Description of SetFuncDocString. - -Args: - - index(typing.Any):Description for index - szDocString(typing.Any):Description for szDocString - -Returns: - - None - - """ - pass - - - def SetVarDocString(self,index:'typing.Any',szDocString:'typing.Any') -> 'None': - """ - Description of SetVarDocString. - -Args: - - index(typing.Any):Description for index - szDocString(typing.Any):Description for szDocString - -Returns: - - None - - """ - pass - - - def SetFuncHelpContext(self,index:'typing.Any',dwHelpContext:'typing.Any') -> 'None': - """ - Description of SetFuncHelpContext. - -Args: - - index(typing.Any):Description for index - dwHelpContext(typing.Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetVarHelpContext(self,index:'typing.Any',dwHelpContext:'typing.Any') -> 'None': - """ - Description of SetVarHelpContext. - -Args: - - index(typing.Any):Description for index - dwHelpContext(typing.Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetMops(self,index:'typing.Any',bstrMops:'typing.Any') -> 'None': - """ - Description of SetMops. - -Args: - - index(typing.Any):Description for index - bstrMops(typing.Any):Description for bstrMops - -Returns: - - None - - """ - pass - - - def LayOut(self,) -> 'None': - """ - Description of LayOut. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyICreateTypeLib(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateTypeInfo(self,szName:'typing.Any') -> 'None': - """ - Description of CreateTypeInfo. - -Args: - - szName(typing.Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetName(self,szName:'typing.Any') -> 'None': - """ - Description of SetName. - -Args: - - szName(typing.Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': - """ - Description of SetVersion. - -Args: - - wMajorVerNum(typing.Any):Description for wMajorVerNum - wMinorVerNum(typing.Any):Description for wMinorVerNum - -Returns: - - None - - """ - pass - - - def SetGuid(self,guid:'PyIID') -> 'None': - """ - Description of SetGuid. - -Args: - - guid(PyIID):Description for guid - -Returns: - - None - - """ - pass - - - def SetDocString(self,szDoc:'typing.Any') -> 'None': - """ - Description of SetDocString. - -Args: - - szDoc(typing.Any):Description for szDoc - -Returns: - - None - - """ - pass - - - def SetHelpFileName(self,szHelpFileName:'typing.Any') -> 'None': - """ - Description of SetHelpFileName. - -Args: - - szHelpFileName(typing.Any):Description for szHelpFileName - -Returns: - - None - - """ - pass - - - def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': - """ - Description of SetHelpContext. - -Args: - - dwHelpContext(typing.Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetLcid(self,) -> 'None': - """ - Description of SetLcid. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetLibFlags(self,uLibFlags:'typing.Any') -> 'None': - """ - Description of SetLibFlags. - -Args: - - uLibFlags(typing.Any):Description for uLibFlags - -Returns: - - None - - """ - pass - - - def SaveAllChanges(self,) -> 'None': - """ - Description of SaveAllChanges. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyICreateTypeLib2(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateTypeInfo(self,szName:'typing.Any') -> 'None': - """ - Description of CreateTypeInfo. - -Args: - - szName(typing.Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetName(self,szName:'typing.Any') -> 'None': - """ - Description of SetName. - -Args: - - szName(typing.Any):Description for szName - -Returns: - - None - - """ - pass - - - def SetVersion(self,wMajorVerNum:'typing.Any',wMinorVerNum:'typing.Any') -> 'None': - """ - Description of SetVersion. - -Args: - - wMajorVerNum(typing.Any):Description for wMajorVerNum - wMinorVerNum(typing.Any):Description for wMinorVerNum - -Returns: - - None - - """ - pass - - - def SetGuid(self,guid:'PyIID') -> 'None': - """ - Description of SetGuid. - -Args: - - guid(PyIID):Description for guid - -Returns: - - None - - """ - pass - - - def SetDocString(self,szDoc:'typing.Any') -> 'None': - """ - Description of SetDocString. - -Args: - - szDoc(typing.Any):Description for szDoc - -Returns: - - None - - """ - pass - - - def SetHelpFileName(self,szHelpFileName:'typing.Any') -> 'None': - """ - Description of SetHelpFileName. - -Args: - - szHelpFileName(typing.Any):Description for szHelpFileName - -Returns: - - None - - """ - pass - - - def SetHelpContext(self,dwHelpContext:'typing.Any') -> 'None': - """ - Description of SetHelpContext. - -Args: - - dwHelpContext(typing.Any):Description for dwHelpContext - -Returns: - - None - - """ - pass - - - def SetLcid(self,) -> 'None': - """ - Description of SetLcid. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetLibFlags(self,uLibFlags:'typing.Any') -> 'None': - """ - Description of SetLibFlags. - -Args: - - uLibFlags(typing.Any):Description for uLibFlags - -Returns: - - None - - """ - pass - - - def SaveAllChanges(self,) -> 'None': - """ - Description of SaveAllChanges. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyICurrentItem(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyICustomDestinationList(object): - """Interface used to customize an application's jump list""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetAppID(self,AppID:'typing.Any') -> 'None': - """ - Specifies the taskbar identifier for the jump list - -Args: - - AppID(typing.Any):The taskbar identifier of the applicationCommentsOnly needed if the calling app doesn't use the system-assigned default - -Returns: - - None - - """ - pass - - - def BeginList(self,riid:'PyIID') -> 'typing.Tuple[typing.Any, PyIObjectArray]': - """ - Clears the jump list and prepares it to be - -repopulated - -Args: - - riid(PyIID):The interface to returnReturn ValueReturns the number of slots and a collection of all destinations removed from the jump list - -Returns: - - typing.Tuple[typing.Any, PyIObjectArray]:The interface to return -Return ValueReturns the number of slots and a collection of all destinations removed from the jump list - - - """ - pass - - - def AppendCategory(self,Category:'typing.Any',Items:'PyIObjectArray') -> 'None': - """ - Adds a custom category to the jump list - -Args: - - Category(typing.Any):Display name of the category, can also be a dll and resource id for localization - Items(PyIObjectArray):Collection of IShellItem and/or IShellLink interfaces - -Returns: - - None - - """ - pass - - - def AppendKnownCategory(self,Category:'typing.Any') -> 'None': - """ - Adds one of the predefined categories to the custom list - -Args: - - Category(typing.Any):shellcon.KDC_RECENT or KDC_FREQUENT - -Returns: - - None - - """ - pass - - - def AddUserTasks(self,Items:'PyIObjectArray') -> 'None': - """ - Sets the entries shown in the Tasks category - -Args: - - Items(PyIObjectArray):Collection of PyIShellItem and/or PyIShellLink interfaces - -Returns: - - None - - """ - pass - - - def CommitList(self,) -> 'None': - """ - Finalizes changes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetRemovedDestinations(self,riid:'PyIID') -> 'PyIObjectArray': - """ - Returns all the items removed from the - -jump list - -Args: - - riid(PyIID):The interface to return - -Returns: - - PyIObjectArray - - """ - pass - - - def DeleteList(self,AppID:'typing.Any'=None) -> 'None': - """ - Removes any customization, leaving only the system-maintained Recent - -and Frequent lists - -Args: - - AppID(typing.Any):The taskbar identifier of the application - -Returns: - - None - - """ - pass - - - def AbortList(self,) -> 'None': - """ - Discards all changes - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDL(object): - """A Python representation of an IDL. Implemented as a sequence of Python strings. - -FALSE*/, UINT *pcb /* = NULL */)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIDataObject(object): - """Used to transfer data in various formats throughout the shell""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetData(self,pformatetcIn:'PyFORMATETC') -> 'PySTGMEDIUM': - """ - Retrieves data from the object in specified format - -Args: - - pformatetcIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned - -Returns: - - PySTGMEDIUM - - """ - pass - - - def GetDataHere(self,pformatetcIn:'PyFORMATETC') -> 'PySTGMEDIUM': - """ - Retunrs a copy of the object's data in specified format - -Args: - - pformatetcIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned - -Returns: - - PySTGMEDIUM - - """ - pass - - - def QueryGetData(self,pformatetc:'PyFORMATETC') -> 'None': - """ - Checks if the objects supports returning data in a particular format. - -Args: - - pformatetc(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. - -Returns: - - None:Tuple representing a FORMATETC struct describing how the data should be - -returnedReturn ValueReturns None if the object supports the specified format, otherwise an error is raised. - - - """ - pass - - - def GetCanonicalFormatEtc(self,pformatectIn:'PyFORMATETC') -> 'PyFORMATETC': - """ - Transforms a FORMATECT data description into a general - -format that the object supports - -Args: - - pformatectIn(PyFORMATETC):Tuple representing a FORMATETC struct describing how the data should be returned - -Returns: - - PyFORMATETC - - """ - pass - - - def SetData(self,pformatetc:'PyFORMATETC',pmedium:'PySTGMEDIUM',fRelease:'typing.Any') -> 'None': - """ - Sets the data that the object will return. - -Args: - - pformatetc(PyFORMATETC):Tuple representing a FORMATETC struct describing the type of data to be set - pmedium(PySTGMEDIUM):The data to be placed in the object - fRelease(typing.Any):If True, transfers ownership of the data to the object. If False, caller is responsible for releasing the STGMEDIUM. - -Returns: - - None - - """ - pass - - - def EnumFormatEtc(self,dwDirection:'typing.Any') -> 'PyIEnumFORMATETC': - """ - Returns an enumerator to list the data formats that the - -object supports. - -Args: - - dwDirection(typing.Any):Indicates whether to return formats that can be queried or set (pythoncom.DATADIR_GET or DATADIR_SET) - -Returns: - - PyIEnumFORMATETC - - """ - pass - - - def DAdvise(self,pformatetc:'PyFORMATETC',advf:'typing.Any',pAdvSink:'typing.Any') -> 'typing.Any': - """ - Connects the object to an interface that will receive notifications when its data - -changes - -Args: - - pformatetc(PyFORMATETC):Defines the type of data for which the sink will receive notifications. - advf(typing.Any):Combination of values from ADVF enum. (which currently do not appear in any of the constants modules!) - pAdvSink(typing.Any):Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection - -Returns: - - typing.Any:Currently this interface is not wrapped.Return ValueReturns a unique number that is used to identify the connection - - - """ - pass - - - def DUnadvise(self,dwConnection:'typing.Any') -> 'None': - """ - Disconnects a notification sink. - -Args: - - dwConnection(typing.Any):Identifier of the connection as returned by DAdvise. - -Returns: - - None - - """ - pass - - - def EnumDAdvise(self,) -> 'typing.Any': - """ - Creates an enumerator to list connected notification sinks. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIDebugApplication(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetName(self,pstrName:'typing.Any') -> 'None': - """ - Sets the name of the application. - -Args: - - pstrName(typing.Any):The name of the application.CommentsThe provided name will be returned in subsequent calls to >om PyIRemoteDebugApplication.GetName>. - -Returns: - - None - - """ - pass - - - def StepOutComplete(self,) -> 'None': - """ - Called by language engines, in single step mode, just before they - -return to their caller. - -Args: - - - -Returns: - - None - - """ - pass - - - def DebugOutput(self,pstr:'typing.Any') -> 'None': - """ - Causes the given string to be displayed by the debugger IDE, normally in - -an output window. - -Args: - - pstr(typing.Any):Description for pstrCommentsThis mechanism provides the means for a language engine to implement language specific debugging output support. Example: Debug.writeln("Help") in JavaScript. - -Returns: - - None - - """ - pass - - - def StartDebugSession(self,) -> 'None': - """ - Causes a default debugger IDE to be started and a debug session to - -be attached to this application if one does not already exist. - -Args: - - - -Returns: - - None - - """ - pass - - - def HandleBreakPoint(self,br:'typing.Any') -> 'typing.Any': - """ - Called by the language engine in the context of a thread that has - -hit a breakpoint. - -Args: - - br(typing.Any):Break reason - one of the BREAKREASON_* constants.CommentsThis method causes the current thread to block and a notification of the breakpoint to be sent to the debugger IDE. When the debugger IDE resumes the application this method returns with the action to be taken.Note: While in the breakpoint the language engine may be called in this thread to do various things such as enumerating stack frames or evaluating expressions.Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. - -Returns: - - typing.Any:Break reason - one of the BREAKREASON_* constants.Comments - -This method causes the current thread to block and a notification of the breakpoint - -to be sent to the debugger IDE. When the debugger IDE resumes the application this - -method returns with the action to be taken. - -Note: While in the breakpoint the language engine may be called in this thread to do - -various things such as enumerating stack frames or evaluating expressions. -Return ValueThe result is the break resume action - one of the BREAKRESUMEACTION contsants. - - - """ - pass - - - def Close(self,) -> 'None': - """ - Causes this application to release all references and enter a zombie state. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetBreakFlags(self,) -> 'typing.Any': - """ - Returns the current break flags for the application. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetCurrentThread(self,) -> 'PyIDebugApplicationThread': - """ - Returns the application thread object - -associated with the currently running thread. - -Args: - - - -Returns: - - PyIDebugApplicationThread - - """ - pass - - - def CreateAsyncDebugOperation(self,psdo:'PyIDebugSyncOperation') -> 'None': - """ - None - -Args: - - psdo(PyIDebugSyncOperation):Description for psdoCommentsThis provides a mechanism for language engines to implement asynchronous expression and evaluation, etc. without having to know the details of synchronization with the debugger thread. See the descriptions for PyIDebugSyncOperation and PyIDebugAsyncOperation for more details. - -Returns: - - None - - """ - pass - - - def AddStackFrameSniffer(self,pdsfs:'PyIDebugStackFrameSniffer') -> 'typing.Any': - """ - Adds a stack frame sniffer to this application. - -Args: - - pdsfs(PyIDebugStackFrameSniffer):Description for pdsfsCommentsGenerally called by a language engine to expose its stack frames to the debugger. It is possible for other entities to expose stack frames.Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer - -Returns: - - typing.Any:Description for pdsfsComments - -Generally called by a language engine - -to expose its stack frames to the debugger. It is possible for other entities to - -expose stack frames. -Return ValueThe result is an integer cookie, to be passed to PyIDebugApplication::RemoveStackFrameSniffer - - - """ - pass - - - def RemoveStackFrameSniffer(self,dwCookie:'typing.Any') -> 'None': - """ - Removes a stack frame sniffer from this application. - -Args: - - dwCookie(typing.Any):A cookie obtained from PyIDebugApplication::AddStackFrameSniffer - -Returns: - - None - - """ - pass - - - def QueryCurrentThreadIsDebuggerThread(self,) -> 'None': - """ - Determines if the current running thread is the - -debugger thread. - -Args: - - - -Returns: - - None:PyIDebugApplication.QueryCurrentThreadIsDebuggerThread -QueryCurrentThreadIsDebuggerThread()Determines if the current running thread is the - -debugger thread. -Return ValueReturns S_OK if the current running thread is the debugger thread. - -Otherwise, returns S_FALSE. - - - """ - pass - - - def SynchronousCallInDebuggerThread(self,pptc:'typing.Any',dwParam1:'typing.Any',dwParam2:'typing.Any',dwParam3:'typing.Any') -> 'None': - """ - Provides a mechanism for the caller to run code in the - -debugger thread. - -Args: - - pptc(typing.Any):Description for pptc - dwParam1(typing.Any):Description for dwParam1 - dwParam2(typing.Any):Description for dwParam2 - dwParam3(typing.Any):Description for dwParam3CommentsThis is generally used so that language engines and hosts can implement free threaded objects on top of their single threaded implementations. - -Returns: - - None - - """ - pass - - - def CreateApplicationNode(self,) -> 'PyIDebugApplicationNode': - """ - Creates a new application node which - -is associated with a specific document provider. - -Args: - - - -Returns: - - PyIDebugApplicationNode - - """ - pass - - - def FireDebuggerEvent(self,guid:'typing.Any',unknown:'PyIUnknown') -> 'None': - """ - Fire a generic event to the IApplicationDebugger (if any) - -Args: - - guid(typing.Any):A GUID. - unknown(PyIUnknown):An unknown object. - -Returns: - - None - - """ - pass - - - def HandleRuntimeError(self,pErrorDebug:'PyIActiveScriptErrorDebug',pScriptSite:'PyIActiveScriptSite') -> 'None': - """ - Description of HandleRuntimeError. - -Args: - - pErrorDebug(PyIActiveScriptErrorDebug):Description for pErrorDebug - pScriptSite(PyIActiveScriptSite):Description for pScriptSite - -Returns: - - None - - """ - pass - - - def FCanJitDebug(self,) -> 'None': - """ - Description of FCanJitDebug. - -Args: - - - -Returns: - - None - - """ - pass - - - def FIsAutoJitDebugEnabled(self,) -> 'None': - """ - Description of FIsAutoJitDebugEnabled. - -Args: - - - -Returns: - - None - - """ - pass - - - def AddGlobalExpressionContextProvider(self,pdsfs:'PyIProvideExpressionContexts') -> 'None': - """ - Description of AddGlobalExpressionContextProvider. - -Args: - - pdsfs(PyIProvideExpressionContexts):Description for pdsfs - -Returns: - - None - - """ - pass - - - def RemoveGlobalExpressionContextProvider(self,dwCookie:'typing.Any') -> 'None': - """ - Description of - -RemoveGlobalExpressionContextProvider. - -Args: - - dwCookie(typing.Any):Description for dwCookie - -Returns: - - None - - """ - pass - - -class PyIDebugApplicationNode(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumChildren(self,) -> 'None': - """ - Description of EnumChildren. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetParent(self,) -> 'PyIDebugApplicationNode': - """ - Returns the parent node. - -Args: - - - -Returns: - - PyIDebugApplicationNode - - """ - pass - - - def SetDocumentProvider(self,pddp:'PyIDebugDocumentProvider') -> 'None': - """ - Description of SetDocumentProvider. - -Args: - - pddp(PyIDebugDocumentProvider):Description for pddp - -Returns: - - None - - """ - pass - - - def Close(self,) -> 'None': - """ - Description of Close. - -Args: - - - -Returns: - - None - - """ - pass - - - def Attach(self,pdanParent:'PyIDebugApplicationNode') -> 'None': - """ - Attach a node to its parent. - -Args: - - pdanParent(PyIDebugApplicationNode):The parent node. None is not acceptable. - -Returns: - - None - - """ - pass - - - def Detach(self,) -> 'None': - """ - Detach a node from its parent. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugApplicationNodeEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def onAddChild(self,prddpChild:'PyIDebugApplicationNode') -> 'None': - """ - Description of onAddChild. - -Args: - - prddpChild(PyIDebugApplicationNode):Description for prddpChild - -Returns: - - None - - """ - pass - - - def onRemoveChild(self,prddpChild:'PyIDebugApplicationNode') -> 'None': - """ - Description of onRemoveChild. - -Args: - - prddpChild(PyIDebugApplicationNode):Description for prddpChild - -Returns: - - None - - """ - pass - - - def onDetach(self,) -> 'None': - """ - Description of onDetach. - -Args: - - - -Returns: - - None - - """ - pass - - - def onAttach(self,prddpParent:'PyIDebugApplicationNode') -> 'None': - """ - Description of onAttach. - -Args: - - prddpParent(PyIDebugApplicationNode):Description for prddpParent - -Returns: - - None - - """ - pass - - -class PyIDebugApplicationThread(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SynchronousCallIntoThread(self,pstcb:'typing.Any',dwParam1:'typing.Any',dwParam2:'typing.Any',dwParam3:'typing.Any') -> 'None': - """ - Description of SynchronousCallIntoThread. - -Args: - - pstcb(typing.Any):Description for pstcb - dwParam1(typing.Any):Description for dwParam1 - dwParam2(typing.Any):Description for dwParam2 - dwParam3(typing.Any):Description for dwParam3 - -Returns: - - None - - """ - pass - - - def QueryIsCurrentThread(self,) -> 'None': - """ - Description of QueryIsCurrentThread. - -Args: - - - -Returns: - - None - - """ - pass - - - def QueryIsDebuggerThread(self,) -> 'None': - """ - Description of QueryIsDebuggerThread. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugCodeContext(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentContext(self,) -> 'None': - """ - Description of GetDocumentContext. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetBreakPoint(self,bps:'typing.Any') -> 'None': - """ - Description of SetBreakPoint. - -Args: - - bps(typing.Any):Description for bps - -Returns: - - None - - """ - pass - - -class PyIDebugDocument(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIDebugDocumentContext(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocument(self,) -> 'None': - """ - Description of GetDocument. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumCodeContexts(self,) -> 'None': - """ - Description of EnumCodeContexts. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentHelper(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Init(self,pda:'PyIDebugApplication',pszShortName:'typing.Any',pszLongName:'typing.Any',docAttr:'typing.Any') -> 'None': - """ - Description of Init. - -Args: - - pda(PyIDebugApplication):Description for pda - pszShortName(typing.Any):Description for pszShortName - pszLongName(typing.Any):Description for pszLongName - docAttr(typing.Any):Description for docAttr - -Returns: - - None - - """ - pass - - - def Attach(self,pddhParent:'PyIDebugDocumentHelper') -> 'None': - """ - Add the document to the doc tree - -Args: - - pddhParent(PyIDebugDocumentHelper):Parent item. If none, this item is top level. - -Returns: - - None - - """ - pass - - - def Detach(self,) -> 'None': - """ - Description of Detach. - -Args: - - - -Returns: - - None - - """ - pass - - - def AddUnicodeText(self,pszText:'typing.Any') -> 'None': - """ - Description of AddUnicodeText. - -Args: - - pszText(typing.Any):Description for pszText - -Returns: - - None - - """ - pass - - - def AddDBCSText(self,) -> 'None': - """ - Description of AddDBCSText. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDebugDocumentHost(self,pddh:'PyIDebugDocumentHost') -> 'None': - """ - Description of SetDebugDocumentHost. - -Args: - - pddh(PyIDebugDocumentHost):Description for pddh - -Returns: - - None - - """ - pass - - - def AddDeferredText(self,cChars:'typing.Any',dwTextStartCookie:'typing.Any') -> 'None': - """ - Description of AddDeferredText. - -Args: - - cChars(typing.Any):Description for cChars - dwTextStartCookie(typing.Any):Description for dwTextStartCookie - -Returns: - - None - - """ - pass - - - def DefineScriptBlock(self,ulCharOffset:'typing.Any',cChars:'typing.Any',pas:'typing.Any',fScriptlet:'typing.Any') -> 'None': - """ - Description of DefineScriptBlock. - -Args: - - ulCharOffset(typing.Any):Description for ulCharOffset - cChars(typing.Any):Description for cChars - pas(typing.Any):Description for pas - fScriptlet(typing.Any):Description for fScriptlet - -Returns: - - None - - """ - pass - - - def SetDefaultTextAttr(self,staTextAttr:'typing.Any') -> 'None': - """ - Description of SetDefaultTextAttr. - -Args: - - staTextAttr(typing.Any):Description for staTextAttr - -Returns: - - None - - """ - pass - - - def SetTextAttributes(self,ulCharOffset:'typing.Any',obAttr:'typing.Any') -> 'None': - """ - Description of SetTextAttributes. - -Args: - - ulCharOffset(typing.Any):Description for ulCharOffset - obAttr(typing.Any):A sequence of attributes. - -Returns: - - None - - """ - pass - - - def SetLongName(self,pszLongName:'typing.Any') -> 'None': - """ - Description of SetLongName. - -Args: - - pszLongName(typing.Any):Description for pszLongName - -Returns: - - None - - """ - pass - - - def SetShortName(self,pszShortName:'typing.Any') -> 'None': - """ - Description of SetShortName. - -Args: - - pszShortName(typing.Any):Description for pszShortName - -Returns: - - None - - """ - pass - - - def SetDocumentAttr(self,pszAttributes:'typing.Any') -> 'None': - """ - Description of SetDocumentAttr. - -Args: - - pszAttributes(typing.Any):Description for pszAttributes - -Returns: - - None - - """ - pass - - - def GetDebugApplicationNode(self,) -> 'None': - """ - Description of GetDebugApplicationNode. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetScriptBlockInfo(self,dwSourceContext:'typing.Any') -> 'None': - """ - Description of GetScriptBlockInfo. - -Args: - - dwSourceContext(typing.Any):Description for dwSourceContext - -Returns: - - None - - """ - pass - - - def CreateDebugDocumentContext(self,iCharPos:'typing.Any',cChars:'typing.Any') -> 'None': - """ - Description of CreateDebugDocumentContext. - -Args: - - iCharPos(typing.Any):Description for iCharPos - cChars(typing.Any):Description for cChars - -Returns: - - None - - """ - pass - - - def BringDocumentToTop(self,) -> 'None': - """ - Description of BringDocumentToTop. - -Args: - - - -Returns: - - None - - """ - pass - - - def BringDocumentContextToTop(self,pddc:'PyIDebugDocumentContext') -> 'None': - """ - Description of BringDocumentContextToTop. - -Args: - - pddc(PyIDebugDocumentContext):Description for pddc - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentHost(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDeferredText(self,dwTextStartCookie:'typing.Any',cMaxChars:'typing.Any') -> 'None': - """ - Description of GetDeferredText. - -Args: - - dwTextStartCookie(typing.Any):Description for dwTextStartCookie - cMaxChars(typing.Any):Description for cMaxChars - -Returns: - - None - - """ - pass - - - def GetScriptTextAttributes(self,pstrCode:'typing.Any',pstrDelimiter:'typing.Any',dwFlags:'typing.Any') -> 'None': - """ - Description of GetScriptTextAttributes. - -Args: - - pstrCode(typing.Any):Description for pstrCode - pstrDelimiter(typing.Any):Description for pstrDelimiter - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def OnCreateDocumentContext(self,) -> 'None': - """ - Description of OnCreateDocumentContext. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPathName(self,) -> 'None': - """ - Description of GetPathName. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFileName(self,) -> 'None': - """ - Description of GetFileName. - -Args: - - - -Returns: - - None - - """ - pass - - - def NotifyChanged(self,) -> 'None': - """ - Description of NotifyChanged. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentInfo(object): - """Provides information on a document, which may or may not be instantiated.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetName(self,) -> 'None': - """ - Returns the specified name for the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDocumentClassId(self,) -> 'PyIID': - """ - Returns a CLSID describing the document type. - -Args: - - - -Returns: - - PyIID - - """ - pass - - -class PyIDebugDocumentProvider(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocument(self,) -> 'PyIDebugDocument': - """ - Causes the document to be instantiated if it does - -not already exist. - -Args: - - - -Returns: - - PyIDebugDocument - - """ - pass - - -class PyIDebugDocumentText(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentAttributes(self,) -> 'None': - """ - Description of GetDocumentAttributes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSize(self,) -> 'None': - """ - Description of GetSize. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPositionOfLine(self,cLineNumber:'typing.Any') -> 'None': - """ - Description of GetPositionOfLine. - -Args: - - cLineNumber(typing.Any):Description for cLineNumber - -Returns: - - None - - """ - pass - - - def GetLineOfPosition(self,cCharacterPosition:'typing.Any') -> 'None': - """ - Description of GetLineOfPosition. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - -Returns: - - None - - """ - pass - - - def GetText(self,cCharacterPosition:'typing.Any',cMaxChars:'typing.Any',bWantAttr:'typing.Any'=1) -> 'None': - """ - Description of GetText. - -Args: - - cCharacterPosition(typing.Any): - cMaxChars(typing.Any):Max chars to return - bWantAttr(typing.Any):Should the attributes be returned? - -Returns: - - None - - """ - pass - - - def GetPositionOfContext(self,psc:'PyIDebugDocumentContext') -> 'None': - """ - Description of GetPositionOfContext. - -Args: - - psc(PyIDebugDocumentContext):Description for psc - -Returns: - - None - - """ - pass - - - def GetContextOfPosition(self,cCharacterPosition:'typing.Any',cNumChars:'typing.Any') -> 'None': - """ - Description of GetContextOfPosition. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - cNumChars(typing.Any):Description for cNumChars - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentTextAuthor(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InsertText(self,cCharacterPosition:'typing.Any',cNumToInsert:'typing.Any',pcharText:'typing.Any') -> 'None': - """ - Description of InsertText. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - cNumToInsert(typing.Any):Description for cNumToInsert - pcharText(typing.Any):Description for pcharText - -Returns: - - None - - """ - pass - - - def RemoveText(self,cCharacterPosition:'typing.Any',cNumToRemove:'typing.Any') -> 'None': - """ - Description of RemoveText. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - cNumToRemove(typing.Any):Description for cNumToRemove - -Returns: - - None - - """ - pass - - - def ReplaceText(self,cCharacterPosition:'typing.Any',cNumToReplace:'typing.Any',pcharText:'typing.Any') -> 'None': - """ - Description of ReplaceText. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - cNumToReplace(typing.Any):Description for cNumToReplace - pcharText(typing.Any):Description for pcharText - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentTextEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def onDestroy(self,) -> 'None': - """ - Description of onDestroy. - -Args: - - - -Returns: - - None - - """ - pass - - - def onInsertText(self,cCharacterPosition:'typing.Any',cNumToInsert:'typing.Any') -> 'None': - """ - Description of onInsertText. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - cNumToInsert(typing.Any):Description for cNumToInsert - -Returns: - - None - - """ - pass - - - def onRemoveText(self,cCharacterPosition:'typing.Any',cNumToRemove:'typing.Any') -> 'None': - """ - Description of onRemoveText. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - cNumToRemove(typing.Any):Description for cNumToRemove - -Returns: - - None - - """ - pass - - - def onReplaceText(self,cCharacterPosition:'typing.Any',cNumToReplace:'typing.Any') -> 'None': - """ - Description of onReplaceText. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - cNumToReplace(typing.Any):Description for cNumToReplace - -Returns: - - None - - """ - pass - - - def onUpdateTextAttributes(self,cCharacterPosition:'typing.Any',cNumToUpdate:'typing.Any') -> 'None': - """ - Description of onUpdateTextAttributes. - -Args: - - cCharacterPosition(typing.Any):Description for cCharacterPosition - cNumToUpdate(typing.Any):Description for cNumToUpdate - -Returns: - - None - - """ - pass - - - def onUpdateDocumentAttributes(self,textdocattr:'typing.Any') -> 'None': - """ - Description of onUpdateDocumentAttributes. - -Args: - - textdocattr(typing.Any):Description for textdocattr - -Returns: - - None - - """ - pass - - -class PyIDebugDocumentTextExternalAuthor(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPathName(self,) -> 'None': - """ - Description of GetPathName. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFileName(self,) -> 'None': - """ - Description of GetFileName. - -Args: - - - -Returns: - - None - - """ - pass - - - def NotifyChanged(self,) -> 'None': - """ - Description of NotifyChanged. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugExpression(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Start(self,pdecb:'PyIDebugExpressionCallBack') -> 'None': - """ - Description of Start. - -Args: - - pdecb(PyIDebugExpressionCallBack):Description for pdecb - -Returns: - - None - - """ - pass - - - def Abort(self,) -> 'None': - """ - Description of Abort. - -Args: - - - -Returns: - - None - - """ - pass - - - def QueryIsComplete(self,) -> 'None': - """ - Description of QueryIsComplete. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetResultAsString(self,) -> 'None': - """ - Description of GetResultAsString. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetResultAsDebugProperties(self,) -> 'None': - """ - Description of GetResultAsDebugProperty. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugExpressionCallBack(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def onComplete(self,) -> 'None': - """ - Description of onComplete. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugExpressionContext(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ParseLanguageText(self,pstrCode:'typing.Any',nRadix:'typing.Any',pstrDelimiter:'typing.Any',dwFlags:'typing.Any') -> 'None': - """ - Description of ParseLanguageText. - -Args: - - pstrCode(typing.Any):Description for pstrCode - nRadix(typing.Any):Description for nRadix - pstrDelimiter(typing.Any):Description for pstrDelimiter - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def GetLanguageInfo(self,) -> 'None': - """ - Description of GetLanguageInfo. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugProperty(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPropertyInfo(self,dwFieldSpec:'typing.Any',nRadix:'typing.Any') -> 'None': - """ - Description of GetPropertyInfo. - -Args: - - dwFieldSpec(typing.Any):Description for dwFieldSpec - nRadix(typing.Any):Description for nRadix - -Returns: - - None - - """ - pass - - - def GetExtendedInfo(self,) -> 'None': - """ - Description of GetExtendedInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetValueAsString(self,pszValue:'typing.Any',nRadix:'typing.Any') -> 'None': - """ - Description of SetValueAsString. - -Args: - - pszValue(typing.Any):Description for pszValue - nRadix(typing.Any):Description for nRadix - -Returns: - - None - - """ - pass - - - def EnumMembers(self,dwFieldSpec:'typing.Any',nRadix:'typing.Any',refiid:'PyIID') -> 'None': - """ - Description of EnumMembers. - -Args: - - dwFieldSpec(typing.Any):Description for dwFieldSpec - nRadix(typing.Any):Description for nRadix - refiid(PyIID):Description for refiid - -Returns: - - None - - """ - pass - - - def GetParent(self,) -> 'None': - """ - Description of GetParent. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugSessionProvider(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def StartDebugSession(self,pda:'PyIRemoteDebugApplication') -> 'None': - """ - Description of StartDebugSession. - -Args: - - pda(PyIRemoteDebugApplication):Description for pda - -Returns: - - None - - """ - pass - - -class PyIDebugStackFrame(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCodeContext(self,) -> 'None': - """ - Returns the current code context associated with the stack frame. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDescriptionString(self,fLong:'typing.Any') -> 'typing.Any': - """ - Returns a short or long textual description of the - -stack frame. - -Args: - - fLong(typing.Any):If false, provide only the name of the function associated with the stack frame. When true it may also provide the parameter(s) to the function or whatever else is relevant. - -Returns: - - typing.Any - - """ - pass - - - def GetLanguageString(self,fLong:'typing.Any') -> 'typing.Any': - """ - Returns a short or long textual description of the - -language. - -Args: - - fLong(typing.Any):If False, just the language name should be provided, eg, "Python". If True a full product description may be provided (eg, "Python 1.4 ActiveX Debugging Host") - -Returns: - - typing.Any - - """ - pass - - - def GetThread(self,) -> 'PyIDebugApplicationThread': - """ - Returns the thread associated with this stack - -frame. - -Args: - - - -Returns: - - PyIDebugApplicationThread - - """ - pass - - -class PyIDebugStackFrameSniffer(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumStackFrames(self,) -> 'None': - """ - Description of EnumStackFrames. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugStackFrameSnifferEx(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumStackFramesEx(self,) -> 'None': - """ - Description of EnumStackFrames. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDebugSyncOperation(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetTargetThread(self,) -> 'None': - """ - Description of GetTargetThread. - -Args: - - - -Returns: - - None - - """ - pass - - - def Execute(self,) -> 'None': - """ - Description of Execute. - -Args: - - - -Returns: - - None - - """ - pass - - - def InProgressAbort(self,) -> 'None': - """ - Description of InProgressAbort. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDefaultExtractIconInit(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetFlags(self,uFlags:'typing.Any') -> 'None': - """ - Description of SetFlags. - -Args: - - uFlags(typing.Any):Description for uFlags - -Returns: - - None - - """ - pass - - - def SetKey(self,hkey:'PyHKEY') -> 'None': - """ - Description of SetKey. - -Args: - - hkey(PyHKEY):Description for hkey - -Returns: - - None - - """ - pass - - - def SetNormalIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': - """ - Description of SetNormalIcon. - -Args: - - pszFile(typing.Any):Description for pszFile - iIcon(typing.Any):Description for iIcon - -Returns: - - None - - """ - pass - - - def SetOpenIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': - """ - Description of SetOpenIcon. - -Args: - - pszFile(typing.Any):Description for pszFile - iIcon(typing.Any):Description for iIcon - -Returns: - - None - - """ - pass - - - def SetShortcutIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': - """ - Description of SetShortcutIcon. - -Args: - - pszFile(typing.Any):Description for pszFile - iIcon(typing.Any):Description for iIcon - -Returns: - - None - - """ - pass - - - def SetDefaultIcon(self,pszFile:'typing.Any',iIcon:'typing.Any') -> 'None': - """ - Description of SetDefaultIcon. - -Args: - - pszFile(typing.Any):Description for pszFile - iIcon(typing.Any):Description for iIcon - -Returns: - - None - - """ - pass - - -class PyIDirectSound(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,guid:'PyIID') -> 'None': - """ - Description of Initialize. - -Args: - - guid(PyIID):Globally unique identifier (GUID) specifying the sound driver to which this DirectSound object binds. Pass None to select the primary sound driver. - -Returns: - - None - - """ - pass - - - def SetCooperativeLevel(self,hwnd:'typing.Any',level:'typing.Any') -> 'None': - """ - The IDirectSound::SetCooperativeLevel method sets the cooperative level - -of the application for this sound device. - -Args: - - hwnd(typing.Any):Window handle to the application or None. - level(typing.Any):Requested priority level. Specify one of the following values:LevelDescriptionDSSCL_NORMALSets the application to a fully cooperative status. Most applications should use this level, because it has the smoothest multitasking and resource-sharing behavior.DSSCL_PRIORITYSets the application to the priority level. Applications with this cooperative level can call the DirectSoundBuffer.setFormat and DirectSound.compact methods.DSSCL_EXCLUSIVESets the application to the exclusive level. When it has the input focus, the application will be the only one audible (sounds from applications with the DSBCAPS_GLOBALFOCUS flag set will be muted). With this level, it also has all the privileges of the DSSCL_PRIORITY level. DirectSound will restore the hardware format, as specified by the most recent call to the DirectSoundBuffer.setFormat method, once the application gains the input focus. (Note that DirectSound will always restore the wave format, no matter what priority level is set.)DSSCL_WRITEPRIMARYThis is the highest priority level. The application has write access to the primary sound buffers. No secondary sound buffers in any application can be played. - -Returns: - - None - - """ - pass - - - def CreateSoundBuffer(self,lpDSCBufferDesc:'PyDSCBUFFERDESC',unk:'typing.Any'=None) -> 'None': - """ - The IDirectSound::CreateSoundBuffer method creates a DirectSoundBuffer - -object to hold a sequence of audio samples. - -Args: - - lpDSCBufferDesc(PyDSCBUFFERDESC):a DSBUFFERDESC structure containing values for the sound buffer being created. - unk(typing.Any):The IUnknown for COM aggregation. - -Returns: - - None - - """ - pass - - - def GetCaps(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def Compact(self,) -> 'None': - """ - The Compact method moves the unused portions of on-board sound memory, if any, to a - -contiguous block so that the largest portion of free memory will be available. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDirectSoundBuffer(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Description of Initialize. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetStatus(self,) -> 'None': - """ - Retrieves the current status of the sound buffer. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCaps(self,) -> 'None': - """ - Retrieves the capabilities of the DirectSoundBuffer object as a DSBCAPS - -object. - -Args: - - - -Returns: - - None - - """ - pass - - - def Restore(self,) -> 'None': - """ - Restores the memory allocation for a lost sound buffer for the specified - -DirectSoundBuffer object. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurrentPosition(self,) -> 'None': - """ - Description of GetCurrentPosition. - -Args: - - - -Returns: - - None - - """ - pass - - - def Play(self,) -> 'None': - """ - Description of Play. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetCurrentPosition(self,) -> 'None': - """ - Description of SetCurrentPosition. - -Args: - - - -Returns: - - None - - """ - pass - - - def Stop(self,) -> 'None': - """ - Description of Stop. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFrequency(self,) -> 'None': - """ - Description of GetFrequency. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPan(self,) -> 'None': - """ - Description of GetPan. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetVolume(self,) -> 'None': - """ - Description of GetVolume. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFrequency(self,) -> 'None': - """ - Description of SetFrequency. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPan(self,) -> 'None': - """ - Description of SetPan. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetVolume(self,) -> 'None': - """ - Description of SetVolume. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDirectSoundCapture(object): - """The methods of the IDirectSoundCapture interface are used to create sound capture - -buffers.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Not normally called directly. Use DirectSoundCaptureCreate instead. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCaps(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDirectSoundCaptureBuffer(object): - """The methods of the IDirectSoundCaptureBuffer interface are used to manipulate - -sound capture buffers.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,) -> 'None': - """ - Not normally used. Used IDirectSoundCapture.CreateCaptureBuffer - -instead. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetStatus(self,) -> 'None': - """ - Retrieves the current status of the sound capture buffer. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurrentPosition(self,) -> 'None': - """ - Returns a tuple of the current capture and read position in - -the buffer. The capture position is ahead of the read position. These positions are not always identical due to - -possible buffering of captured data either on the physical device or in the host. The data after the read position up - -to and including the capture position is not necessarily valid data. - -Args: - - - -Returns: - - None - - """ - pass - - - def Stop(self,) -> 'None': - """ - The IDirectSoundCaptureBuffer::Stop method puts the capture buffer into - -the "stop" state and stops capturing data. If the capture buffer is already in the stop state then the method has no - -effect. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIDirectSoundNotify(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIDirectoryObject(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetObjectInformation(self,) -> 'PyADS_OBJECT_INFO': - """ - None - -Args: - - - -Returns: - - PyADS_OBJECT_INFO - - """ - pass - - - def GetObjectAttributes(self,names:'typing.Tuple[str, ...]') -> 'typing.Tuple[PyADS_ATTR_INFO, ...]': - """ - None - -Args: - - names(typing.Tuple[str, ...]): - -Returns: - - typing.Tuple[PyADS_ATTR_INFO, ...] - - """ - pass - - - def SetObjectAttributes(self,attrs:'typing.Tuple[PyADS_ATTR_INFO, ...]') -> 'typing.Any': - """ - None - -Args: - - attrs(typing.Tuple[PyADS_ATTR_INFO, ...]):The attributes to set - -Returns: - - typing.Any - - """ - pass - - - def CreateDSObject(self,rdn:'str',attrs:'typing.Tuple[PyADS_ATTR_INFO, ...]') -> 'PyIDispatch': - """ - None - -Args: - - rdn(str):The relative distinguished name (relative path) of the object to be created. - attrs(typing.Tuple[PyADS_ATTR_INFO, ...]):The attributes to set. - -Returns: - - PyIDispatch - - """ - pass - - - def DeleteDSObject(self,rdn:'str') -> 'None': - """ - Deletes a leaf object in a directory tree - -Args: - - rdn(str):The relative distinguished name (relative path) of the object to be deleted. - -Returns: - - None - - """ - pass - - -class PyIDirectorySearch(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetSearchPreference(self,prefs:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - None - -Args: - - prefs(typing.Any):Return ValueThe result is the hresult of the call, and a list of integer status codes for each of the preferences set. - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any]:Return ValueThe result is the hresult of the call, and a list of integer status - -codes for each of the preferences set. - - - """ - pass - - - def ExecuteSearch(self,_filter:'str',attrNames:'typing.List[str]') -> 'typing.Any': - """ - None - -Args: - - _filter(str): - attrNames(typing.List[str]):Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle should be called to close the handle. - -Returns: - - typing.Any:Return ValueThe result is an integer search handle. PyIDirectorySearch::CloseSearchHandle - -should be called to close the handle. - - - """ - pass - - - def GetNextRow(self,handle:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown - -Returns: - - typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - - - """ - pass - - - def GetFirstRow(self,handle:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown - -Returns: - - typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - - - """ - pass - - - def GetPreviousRow(self,handle:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - handle(typing.Any):Return ValueThe result is the HRESULT from the call - no exceptions are thrown - -Returns: - - typing.Any:Return ValueThe result is the HRESULT from the call - no exceptions are thrown - - - """ - pass - - - def CloseSearchHandle(self,handle:'typing.Any') -> 'None': - """ - Closes a previously opened search handle. - -Args: - - handle(typing.Any): - -Returns: - - None - - """ - pass - - - def AdandonSearch(self,handle:'typing.Any') -> 'None': - """ - None - -Args: - - handle(typing.Any): - -Returns: - - None - - """ - pass - - - def GetColumn(self,handle:'typing.Any',name:'str') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - None - -Args: - - handle(typing.Any):Handle to a search - name(str):The column name to fetch - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetNextColumnName(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None:PyIDirectorySearch.GetNextColumnName -GetNextColumnName() -Return ValueReturns None when the underlying ADSI function return S_ADS_NOMORE_COLUMNS. - - - """ - pass - - -class PyIDispatch(object): - """A OLE automation client object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Invoke(self,dispid:'typing.Any',lcid:'typing.Any',flags:'typing.Any',bResultWanted:'typing.Any',arg:'typing.Tuple[typing.Any, ...]') -> 'typing.Any': - """ - Invokes a DISPID, using the passed arguments. - -Args: - - dispid(typing.Any):The dispid to use. Typically this value will come from PyIDispatch::GetIDsOfNames or from a type library. - lcid(typing.Any):The locale id to use. - flags(typing.Any):The flags for the call. The following flags can be used.FlagDescriptionDISPATCH_METHODThe member is invoked as a method. If a property has the same name, both this and the DISPATCH_PROPERTYGET flag may be set.DISPATCH_PROPERTYGETThe member is retrieved as a property or data member.DISPATCH_PROPERTYPUTThe member is changed as a property or data member.DISPATCH_PROPERTYPUTREFThe member is changed by a reference assignment, rather than a value assignment. This flag is valid only when the property accepts a reference to an object. - bResultWanted(typing.Any):Indicates if the result of the call should be requested. - arg(typing.Tuple[typing.Any, ...]):The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. Otherwise, the result is determined by the COM object itself (and may still be None) - -Returns: - - typing.Any:The parameters to pass.Return ValueIf the bResultWanted parameter is False, then the result will be None. - -Otherwise, the result is determined by the COM object itself (and may still be None) - - - """ - pass - - - def InvokeTypes(self,dispid:'typing.Any',lcid:'typing.Any',wFlags:'typing.Any',resultTypeDesc:'typing.Any',typeDescs:'typing.Tuple[typing.Any, ...]',args:'typing.Tuple[typing.Any, ...]') -> 'typing.Any': - """ - Invokes a DISPID, using the passed arguments and type descriptions. - -Args: - - dispid(typing.Any):The dispid to use. Please see PyIDispatch::Invoke. - lcid(typing.Any):The locale ID. Please see PyIDispatch::Invoke. - wFlags(typing.Any):Flags for the call. Please see PyIDispatch::Invoke. - resultTypeDesc(typing.Any):A tuple describing the type of the result. See the comments for more information. - typeDescs(typing.Tuple[typing.Any, ...]):A sequence of tuples describing the types of the parameters for the function. See the comments for more information. - args(typing.Tuple[typing.Any, ...]):The args to the function.CommentsThe Microsoft documentation for IDispatch should be used for all params except 'resultTypeDesc' and 'typeDescs'. 'resultTypeDesc' describes the return value of the function, and is a tuple of (type_id, flags). 'typeDescs' describes the type of each parameters, and is a list of the same (type_id, flags) tuple.itemDescriptiontype_idA valid "variant type" constant (eg, VT_I4 | VT_ARRAY, VT_DATE, etc - see VARIANT at MSDN).flagsOne of the PARAMFLAG constants (eg, PARAMFLAG_FIN, PARAMFLAG_FOUT etc - see PARAMFLAG at MSDN).ExampleAn example from the makepy generated file for Wordclass Cells(DispatchBaseClass):... def SetWidth(self, ColumnWidth=..., RulerStyle=...): return self._oleobj_.InvokeTypes(202, LCID, 1, (24, 0), ((4, 1), (3, 1)),...)The interesting bits areresultTypeDesc: (24, 0) - (VT_VOID, <no flags>)typeDescs: ((4, 1), (3, 1)) - ((VT_R4, PARAMFLAG_FIN), (VT_I4, PARAMFLAG_FIN))So, in this example, the function returns no value and takes 2 "in" params - ColumnWidth is a float, and RulerStule is an int. - -Returns: - - typing.Any - - """ - pass - - - def GetIDsOfNames(self,name:'str',arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Union[typing.Any]]': - """ - Get the DISPID for the passed names. - -Args: - - name(str):A name to query forAlternative Parameters - arg(typing.Any):A sequence of string names to queryCommentsCurrently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used.Return ValueIf the first parameter is a sequence, the result will be a tuple of integers for each name in the sequence. If the first parameter is a single string, the result is a single integer with the ID of requested item. - -Returns: - - typing.Tuple[typing.Any, typing.Union[typing.Any]]:A sequence of string names to query -Comments - -Currently the LCID can not be specified, and LOCALE_SYSTEM_DEFAULT is used. -Return ValueIf the first parameter is a sequence, the result will be a tuple of integers - -for each name in the sequence. If the first parameter is a single string, the result - -is a single integer with the ID of requested item. - - - """ - pass - - - def GetTypeInfo(self,locale:'typing.Any',index:'typing.Any'=0) -> 'PyITypeInfo': - """ - Get type information for the object. - -Args: - - locale(typing.Any):The locale to use. - index(typing.Any):The index of the typelibrary to fetch. Note that these params are reversed from the win32 call. - -Returns: - - PyITypeInfo - - """ - pass - - - def GetTypeInfoCount(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIDispatchEx(object): - """A OLE automation client object that uses the IDispatchEx scripting interface..""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDispID(self,name:'str',fdex:'typing.Any') -> 'typing.Any': - """ - Returns the member id for a name - -Args: - - name(str):Passed in name to be mapped - fdex(typing.Any):Determines the options for obtaining the member identifier. This can be a combination of the fdex* constants: - -Returns: - - typing.Any - - """ - pass - - - def InvokeEx(self,dispid:'typing.Any',lcid:'typing.Any',flags:'typing.Any',args:'typing.List[typing.Any]',types:'typing.List[typing.Any]'=None,returnDesc:'typing.Any'=1,serviceProvider:'PyIServiceProvider'=None) -> 'typing.Any': - """ - None - -Args: - - dispid(typing.Any): - lcid(typing.Any): - flags(typing.Any): - args(typing.List[typing.Any]):The arguments. - types(typing.List[typing.Any]):A tuple of type description object, or None if type descriptions are not available. - returnDesc(typing.Any):If types==None, should be a BOOL indicating if the result is needed. If types is a tuple, then should a be type description. - serviceProvider(PyIServiceProvider):A service provider object supplied by the caller which allows the object to obtain services from the caller. Can be None. - -Returns: - - typing.Any - - """ - pass - - - def DeleteMemberByName(self,name:'str',fdex:'typing.Any') -> 'None': - """ - None - -Args: - - name(str):Passed in name to be mapped - fdex(typing.Any):Determines the options - -Returns: - - None - - """ - pass - - - def DeleteMemberByDispID(self,dispid:'typing.Any') -> 'None': - """ - None - -Args: - - dispid(typing.Any): - -Returns: - - None - - """ - pass - - - def GetMemberProperties(self,dispid:'typing.Any',fdex:'typing.Any') -> 'typing.Any': - """ - Returns mask of fdex* flags describing a member - -Args: - - dispid(typing.Any):The member id - fdex(typing.Any):fdex* flags specifying which properties to return - -Returns: - - typing.Any - - """ - pass - - - def GetMemberName(self,dispid:'typing.Any') -> 'typing.Any': - """ - Returns the name associated with a member id - -Args: - - dispid(typing.Any):The member id - -Returns: - - typing.Any - - """ - pass - - - def GetNextDispID(self,fdex:'typing.Any',dispid:'typing.Any') -> 'typing.Any': - """ - Enumerates member ids. - -Args: - - fdex(typing.Any):Determines the options - dispid(typing.Any):Current member, or DISPID_STARTENUM to begin enumeration. GetNextDispID will retrieve the item in the enumeration after this one. - -Returns: - - typing.Any - - """ - pass - - -class PyIDisplayItem(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIDocHostUIHandler(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ShowContextMenu(self,dwID:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pcmdtReserved:'PyIUnknown',pdispReserved:'PyIDispatch') -> 'None': - """ - Description of ShowContextMenu. - -Args: - - dwID(typing.Any):Description for dwID - pt(typing.Tuple[typing.Any, typing.Any]):Description for ppt - pcmdtReserved(PyIUnknown):Description for pcmdtReserved - pdispReserved(PyIDispatch):Description for pdispReserved - -Returns: - - None - - """ - pass - - - def GetHostInfo(self,) -> 'None': - """ - Description of GetHostInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def ShowUI(self,dwID:'typing.Any',pActiveObject:'PyIOleInPlaceActiveObject',pCommandTarget:'PyIOleCommandTarget',pFrame:'PyIOleInPlaceFrame',pDoc:'PyIOleInPlaceUIWindow') -> 'None': - """ - Description of ShowUI. - -Args: - - dwID(typing.Any):Description for dwID - pActiveObject(PyIOleInPlaceActiveObject):Description for pActiveObject - pCommandTarget(PyIOleCommandTarget):Description for pCommandTarget - pFrame(PyIOleInPlaceFrame):Description for pFrame - pDoc(PyIOleInPlaceUIWindow):Description for pDoc - -Returns: - - None - - """ - pass - - - def HideUI(self,) -> 'None': - """ - Description of HideUI. - -Args: - - - -Returns: - - None - - """ - pass - - - def UpdateUI(self,) -> 'None': - """ - Description of UpdateUI. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnableModeless(self,fEnable:'typing.Any') -> 'None': - """ - Description of EnableModeless. - -Args: - - fEnable(typing.Any):Description for fEnable - -Returns: - - None - - """ - pass - - - def OnDocWindowActivate(self,fActivate:'typing.Any') -> 'None': - """ - Description of OnDocWindowActivate. - -Args: - - fActivate(typing.Any):Description for fActivate - -Returns: - - None - - """ - pass - - - def OnFrameWindowActivate(self,fActivate:'typing.Any') -> 'None': - """ - Description of OnFrameWindowActivate. - -Args: - - fActivate(typing.Any):Description for fActivate - -Returns: - - None - - """ - pass - - - def ResizeBorder(self,prcBorder:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pUIWindow:'PyIOleInPlaceUIWindow',fRameWindow:'typing.Any') -> 'None': - """ - Description of ResizeBorder. - -Args: - - prcBorder(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcBorder - pUIWindow(PyIOleInPlaceUIWindow):Description for pUIWindow - fRameWindow(typing.Any):Description for fRameWindow - -Returns: - - None - - """ - pass - - - def TranslateAccelerator(self,lpMsg:'typing.Any',pguidCmdGroup:'PyIID',nCmdID:'typing.Any') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - lpMsg(typing.Any):Description for lpMsg - pguidCmdGroup(PyIID):Description for pguidCmdGroup - nCmdID(typing.Any):Description for nCmdID - -Returns: - - None - - """ - pass - - - def GetOptionKeyPath(self,dw:'typing.Any') -> 'None': - """ - Description of GetOptionKeyPath. - -Args: - - dw(typing.Any):Description for dw - -Returns: - - None - - """ - pass - - - def GetDropTarget(self,pDropTarget:'PyIDropTarget') -> 'None': - """ - Description of GetDropTarget. - -Args: - - pDropTarget(PyIDropTarget):Description for pDropTarget - -Returns: - - None - - """ - pass - - - def GetExternal(self,) -> 'None': - """ - Description of GetExternal. - -Args: - - - -Returns: - - None - - """ - pass - - - def TranslateUrl(self,dwTranslate:'typing.Any',pchURLIn:'typing.Any') -> 'None': - """ - Description of TranslateUrl. - -Args: - - dwTranslate(typing.Any):Description for dwTranslate - pchURLIn(typing.Any):Description for pchURLIn - -Returns: - - None - - """ - pass - - - def FilterDataObject(self,pDO:'PyIDataObject') -> 'None': - """ - Description of FilterDataObject. - -Args: - - pDO(PyIDataObject):Description for pDO - -Returns: - - None - - """ - pass - - -class PyIDropSource(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryContinueDrag(self,fEscapePressed:'typing.Any',grfKeyState:'typing.Any') -> 'None': - """ - Description of QueryContinueDrag. - -Args: - - fEscapePressed(typing.Any):Description for fEscapePressed - grfKeyState(typing.Any):Description for grfKeyState - -Returns: - - None - - """ - pass - - - def GiveFeedback(self,dwEffect:'typing.Any') -> 'None': - """ - Description of GiveFeedback. - -Args: - - dwEffect(typing.Any):Description for dwEffect - -Returns: - - None - - """ - pass - - -class PyIDropTarget(object): - """Interface that acts as a target of OLE drag and drop operations""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DragEnter(self,pDataObj:'PyIDataObject',grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'typing.Any': - """ - Called when an object is initially dragged into a window - -Args: - - pDataObj(PyIDataObject):IDataObject interface that contains the object being dragged - grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state - pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor - pdwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted - -Returns: - - typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can - -be accepted - - - """ - pass - - - def DragOver(self,grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'typing.Any': - """ - Called as the dragged object moves over the window - -Args: - - grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state - pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor - pdwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the object can be accepted at the current position - -Returns: - - typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return a shellcon.DROPEFFECT_* value indicating if the - -object can be accepted at the current position - - - """ - pass - - - def DragLeave(self,) -> 'None': - """ - Called as the object is dragged back out of the window - -Args: - - - -Returns: - - None - - """ - pass - - - def Drop(self,pDataObj:'PyIDataObject',grfKeyState:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'typing.Any': - """ - Called when the object is dropped onto the window - -Args: - - pDataObj(PyIDataObject):IDataObject interface containing the dropped object - grfKeyState(typing.Any):Combination of win32con.MK_* flags containing keyboard modifier state - pt(typing.Tuple[typing.Any, typing.Any]):(x,y) Screen coordinates of cursor - dwEffect(typing.Any):shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values - -Returns: - - typing.Any:shellcon.DROPEFFECT_* valueReturn ValueYour implementation of this function should return one of the shellcon.DROPEFFECT_* values - - - """ - pass - - -class PyIDropTargetHelper(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DragEnter(self,hwnd:'int',pDataObj:'PyIDataObject',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'None': - """ - Description of DragEnter. - -Args: - - hwnd(int):Handle to target window - pDataObj(PyIDataObject):Object that is dragged onto the window - pt(typing.Tuple[typing.Any, typing.Any]):Coordinates where drag operation entered the window - dwEffect(typing.Any):One of shellcon.DROPEFFECT_* values - -Returns: - - None - - """ - pass - - - def DragOver(self,hwnd:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]',pdwEffect:'typing.Any') -> 'None': - """ - Description of DragOver. - -Args: - - hwnd(typing.Any): - pt(typing.Tuple[typing.Any, typing.Any]):Description for pt - pdwEffect(typing.Any):Description for pdwEffect - -Returns: - - None - - """ - pass - - - def DragLeave(self,) -> 'None': - """ - Description of DragLeave. - -Args: - - - -Returns: - - None - - """ - pass - - - def Drop(self,pDataObj:'PyIDataObject',pt:'typing.Tuple[typing.Any, typing.Any]',dwEffect:'typing.Any') -> 'None': - """ - Description of Drop. - -Args: - - pDataObj(PyIDataObject):Description for pDataObj - pt(typing.Tuple[typing.Any, typing.Any]):Description for pt - dwEffect(typing.Any):Description for dwEffect - -Returns: - - None - - """ - pass - - -class PyIDsObjectPicker(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,targetComputer:'str',scopeInfos:'PyDSOP_SCOPE_INIT_INFOs',options:'typing.Any'=0,attrNames:'typing.List[str]'=None) -> 'None': - """ - Initializes the IDsObjectPicker interface with information about the scopes, filters, and options used by the object picker dialog box. - -Args: - - targetComputer(str): - scopeInfos(PyDSOP_SCOPE_INIT_INFOs): - options(typing.Any): - attrNames(typing.List[str]): - -Returns: - - None - - """ - pass - - - def InvokeDialog(self,hwnd:'typing.Any') -> 'PyIDataObject': - """ - Displays a modal object picker dialog box and returns the user's selections. - -Args: - - hwnd(typing.Any): - -Returns: - - PyIDataObject - - """ - pass - - -class PyIEmptyVolumeCache(object): - """Used for cleaning up temporary file ("disk cleanup")""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIEmptyVolumeCache2(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIEmptyVolumeCacheCallBack(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ScanProgress(self,dwlSpaceUsed:'typing.Any',dwFlags:'typing.Any',pcwszStatus:'typing.Any') -> 'None': - """ - Description of ScanProgress. - -Args: - - dwlSpaceUsed(typing.Any):Description for dwlSpaceUsed - dwFlags(typing.Any):Description for dwFlags - pcwszStatus(typing.Any):Description for pcwszStatus - -Returns: - - None - - """ - pass - - - def PurgeProgress(self,dwlSpaceFreed:'typing.Any',spaceFreed:'typing.Any',spaceToFree:'typing.Any',flags:'typing.Any',status:'typing.Any') -> 'None': - """ - Description of PurgeProgress. - -Args: - - dwlSpaceFreed(typing.Any):Description for dwlSpaceFreed - spaceFreed(typing.Any): - spaceToFree(typing.Any): - flags(typing.Any): - status(typing.Any): - -Returns: - - None - - """ - pass - - -class PyIEnumCATEGORYINFO(object): - """A Python interface to IEnumCATEGORYINFO""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[typing.Tuple[PyIID, typing.Any, str], ...]': - """ - Retrieves a specified number of items in the - -enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, one for each element returned. - -Returns: - - typing.Tuple[typing.Tuple[PyIID, typing.Any, str], ...]:Number of items to retrieve. -Return ValueThe result is a tuple of (IID object, LCID, string description) tuples, - -one for each element returned. - - - """ - pass - - - def Skip(self,num:'typing.Any') -> 'None': - """ - Skips over the next specified elementes. - -Args: - - num(typing.Any):The number of elements being requested. - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumCATEGORYINFO': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumCATEGORYINFO - - """ - pass - - -class PyIEnumConnectionPoints(object): - """A Python interface to IEnumConnectionPoints""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIConnectionPoint, ...]': - """ - Retrieves a specified number of items in the - -enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Tuple[PyIConnectionPoint, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumConnectionPoints': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumConnectionPoints - - """ - pass - - -class PyIEnumConnections(object): - """A Python interface to IEnumConnections""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumConnections': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumConnections - - """ - pass - - -class PyIEnumContextProps(object): - """A Python interface to IEnumContextProps""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[typing.Tuple[PyIID, typing.Any, PyIUnknown], ...]': - """ - Retrieves a specified number of items in - -the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve.Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the property value - -Returns: - - typing.Tuple[typing.Tuple[PyIID, typing.Any, PyIUnknown], ...]:Number of items to retrieve. -Return ValueReturns a tuple of 3-tuples representing ContextProperty structs: - - First item is GUID identifying the property, second is Flags (reserved), third is the interface set as the - -property value - - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumContextProps': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumContextProps - - """ - pass - - -class PyIEnumDebugApplicationNodes(object): - """A Python interface to IEnumDebugApplicationNodes""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumDebugApplicationNodes': - """ - Creates another enumerator that - -contains the same enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumDebugApplicationNodes - - """ - pass - - -class PyIEnumDebugCodeContexts(object): - """A Python interface to IEnumDebugCodeContexts""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumDebugCodeContexts': - """ - Creates another enumerator that contains the - -same enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumDebugCodeContexts - - """ - pass - - -class PyIEnumDebugExpressionContexts(object): - """A Python interface to IEnumDebugExpressionContexts""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration - -sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumDebugExpressionContexts': - """ - Creates another enumerator that - -contains the same enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumDebugExpressionContexts - - """ - pass - - -class PyIEnumDebugPropertyInfo(object): - """A Python interface to IEnumDebugPropertyInfo""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumDebugPropertyInfo': - """ - Creates another enumerator that contains the - -same enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumDebugPropertyInfo - - """ - pass - - - def GetCount(self,) -> 'typing.Any': - """ - Obtains the number of items - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIEnumDebugStackFrames(object): - """A Python interface to IEnumDebugStackFrames""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumDebugStackFrames': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumDebugStackFrames - - """ - pass - - -class PyIEnumExplorerCommand(object): - """A Python interface to IEnumExplorerCommand""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumExplorerCommand': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumExplorerCommand - - """ - pass - - -class PyIEnumFORMATETC(object): - """A Python interface to IEnumFORMATETC""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumFORMATETC': - """ - Creates another enumerator that contains the same enumeration - -state as the current one - -Args: - - - -Returns: - - PyIEnumFORMATETC - - """ - pass - - -class PyIEnumGUID(object): - """A Python interface to IEnumGUID""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIID, ...]': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. - -Returns: - - typing.Tuple[PyIID, ...]:Number of items to retrieve. -Return ValueThe result is a tuple of PyIID objects, - -one for each element returned. Note that if zero elements are returned, it is not considered - -an error condition - an empty tuple is simply returned. - - - """ - pass - - - def Skip(self,num:'typing.Any') -> 'None': - """ - Skips over the next specified elementes. - -Args: - - num(typing.Any):The number of elements being requested. - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumGUID': - """ - Creates another enumerator that contains the same enumeration state as - -the current one - -Args: - - - -Returns: - - PyIEnumGUID - - """ - pass - - -class PyIEnumIDList(object): - """A Python interface to IEnumIDList""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumIDList': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - PyIEnumIDList - - """ - pass - - -class PyIEnumMoniker(object): - """A Python interface to IEnumMoniker""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'PyIMoniker': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve.Return ValueThe result is a tuple of PyIID objects, one for each element returned. Note that if zero elements are returned, it is not considered an error condition - an empty tuple is simply returned. - -Returns: - - PyIMoniker:Number of items to retrieve. -Return ValueThe result is a tuple of PyIID objects, - -one for each element returned. Note that if zero elements are returned, it is not considered - -an error condition - an empty tuple is simply returned. - - - """ - pass - - - def Skip(self,num:'typing.Any') -> 'None': - """ - Skips over the next specified elementes. - -Args: - - num(typing.Any):The number of elements being requested. - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumMoniker': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - PyIEnumMoniker - - """ - pass - - -class PyIEnumObjects(object): - """Iterates through a number of arbitrary interfaces""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,riid:'PyIID',num:'typing.Any'=1) -> 'typing.Tuple[PyIUnknown, ...]': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - riid(PyIID):The interfaces to return - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Tuple[PyIUnknown, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumObjects': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - PyIEnumObjects - - """ - pass - - -class PyIEnumRemoteDebugApplicationThreads(object): - """A Python interface to IEnumRemoteDebugApplicationThreads""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration - -sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumRemoteDebugApplicationThreads': - """ - Creates another - -enumerator that contains the same enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumRemoteDebugApplicationThreads - - """ - pass - - -class PyIEnumRemoteDebugApplications(object): - """A Python interface to IEnumRemoteDebugApplications""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration - -sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumRemoteDebugApplications': - """ - Creates another enumerator that - -contains the same enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumRemoteDebugApplications - - """ - pass - - -class PyIEnumResources(object): - """A Python interface to IEnumResources""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumResources': - """ - Creates another enumerator that contains the same enumeration - -state as the current one - -Args: - - - -Returns: - - PyIEnumResources - - """ - pass - - -class PyIEnumSTATPROPSETSTG(object): - """A Python interface to IEnumSTATPROPSETSTG""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumSTATPROPSETSTG': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumSTATPROPSETSTG - - """ - pass - - -class PyIEnumSTATPROPSTG(object): - """A Python interface to IEnumSTATPROPSTG""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Any': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumSTATPROPSTG': - """ - Creates another enumerator that contains the same - -enumeration state as the current one - -Args: - - - -Returns: - - PyIEnumSTATPROPSTG - - """ - pass - - -class PyIEnumSTATSTG(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[STATSTG, ...]': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Tuple[STATSTG, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumSTATSTG': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - PyIEnumSTATSTG - - """ - pass - - -class PyIEnumShellItems(object): - """A Python interface to IEnumShellItems""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[PyIShellItem, ...]': - """ - Retrieves a specified number of items in the enumeration - -sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Tuple[PyIShellItem, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumShellItems': - """ - Creates another enumerator that contains the same enumeration - -state as the current one - -Args: - - - -Returns: - - PyIEnumShellItems - - """ - pass - - -class PyIEnumString(object): - """An enumerator interface to list strings""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Next(self,num:'typing.Any'=1) -> 'typing.Tuple[str, ...]': - """ - Retrieves a specified number of items in the enumeration sequence. - -Args: - - num(typing.Any):Number of items to retrieve. - -Returns: - - typing.Tuple[str, ...] - - """ - pass - - - def Skip(self,) -> 'None': - """ - Skips over the next specified elementes. - -Args: - - - -Returns: - - None - - """ - pass - - - def Reset(self,) -> 'None': - """ - Resets the enumeration sequence to the beginning. - -Args: - - - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIEnumString': - """ - Creates another enumerator that contains the same enumeration state - -as the current one - -Args: - - - -Returns: - - PyIEnumString - - """ - pass - - -class PyIErrorLog(object): - """A Python wrapper for a COM IErrorLog interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddError(self,propName:'str',excepInfo:'typing.Any'=None) -> 'None': - """ - Adds an error to the error log. - -Args: - - propName(str):The name of the error - excepInfo(typing.Any):A COM exception. Must be a complete COM exception (ie, pythoncom.com_error, or win32com.server.exceptions.COMException()) - -Returns: - - None - - """ - pass - - -class PyIExplorerBrowser(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,hwndParent:'typing.Any',prc:'PyRECT',pfs:'typing.Any') -> 'None': - """ - Description of Initialize. - -Args: - - hwndParent(typing.Any):Description for hwndParent - prc(PyRECT):Description for prc - pfs(typing.Any):Description for pfs - -Returns: - - None - - """ - pass - - - def Destroy(self,) -> 'None': - """ - Description of Destroy. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetRect(self,hdwp:'typing.Any',rcBrowser:'PyRECT') -> 'int': - """ - Description of SetRect. - -Args: - - hdwp(typing.Any):Description for phdwp - rcBrowser(PyRECT):Description for rcBrowser - -Returns: - - int - - """ - pass - - - def SetPropertyBag(self,PropertyBag:'typing.Any') -> 'None': - """ - Description of SetPropertyBag. - -Args: - - PropertyBag(typing.Any):Description for pszPropertyBag - -Returns: - - None - - """ - pass - - - def SetEmptyText(self,EmptyText:'typing.Any') -> 'None': - """ - Description of SetEmptyText. - -Args: - - EmptyText(typing.Any):Description for pszEmptyText - -Returns: - - None - - """ - pass - - - def SetFolderSettings(self,pfs:'typing.Any') -> 'None': - """ - Description of SetFolderSettings. - -Args: - - pfs(typing.Any):Description for pfs - -Returns: - - None - - """ - pass - - - def Advise(self,psbe:'PyIExplorerBrowserEvents') -> 'typing.Any': - """ - Description of Advise. - -Args: - - psbe(PyIExplorerBrowserEvents):Description for psbe - -Returns: - - typing.Any - - """ - pass - - - def Unadvise(self,dwCookie:'typing.Any') -> 'None': - """ - Description of Unadvise. - -Args: - - dwCookie(typing.Any):Description for dwCookie - -Returns: - - None - - """ - pass - - - def SetOptions(self,dwFlag:'typing.Any') -> 'None': - """ - Description of SetOptions. - -Args: - - dwFlag(typing.Any):Description for dwFlag - -Returns: - - None - - """ - pass - - - def GetOptions(self,) -> 'typing.Any': - """ - Description of GetOptions. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def BrowseToIDList(self,pidl:'typing.Any',uFlags:'typing.Any') -> 'None': - """ - Description of BrowseToIDList. - -Args: - - pidl(typing.Any):Description for pidl - uFlags(typing.Any):Description for uFlags - -Returns: - - None - - """ - pass - - - def BrowseToObject(self,punk:'PyIUnknown',uFlags:'typing.Any') -> 'None': - """ - Description of BrowseToObject. - -Args: - - punk(PyIUnknown):Description for punk - uFlags(typing.Any):Description for uFlags - -Returns: - - None - - """ - pass - - - def FillFromObject(self,punk:'PyIUnknown',dwFlags:'typing.Any') -> 'None': - """ - Description of FillFromObject. - -Args: - - punk(PyIUnknown):Description for punk - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def RemoveAll(self,) -> 'None': - """ - Description of RemoveAll. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurrentView(self,riid:'PyIID') -> 'PyIUnknown': - """ - Description of GetCurrentView. - -Args: - - riid(PyIID):Description for riid - -Returns: - - PyIUnknown - - """ - pass - - -class PyIExplorerBrowserEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnNavigationPending(self,pidlFolder:'typing.Any') -> 'None': - """ - Description of OnNavigationPending. - -Args: - - pidlFolder(typing.Any):Description for pidlFolder - -Returns: - - None - - """ - pass - - - def OnViewCreated(self,psv:'PyIShellView') -> 'None': - """ - Description of OnViewCreated. - -Args: - - psv(PyIShellView):Description for psv - -Returns: - - None - - """ - pass - - - def OnNavigationComplete(self,pidlFolder:'typing.Any') -> 'None': - """ - Description of OnNavigationComplete. - -Args: - - pidlFolder(typing.Any):Description for pidlFolder - -Returns: - - None - - """ - pass - - - def OnNavigationFailed(self,pidlFolder:'typing.Any') -> 'None': - """ - Description of OnNavigationFailed. - -Args: - - pidlFolder(typing.Any):Description for pidlFolder - -Returns: - - None - - """ - pass - - -class PyIExplorerCommand(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetTitle(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': - """ - Description of GetTitle. - -Args: - - psiItemArray(PyIShellItemArray):Description for psiItemArray - -Returns: - - typing.Any - - """ - pass - - - def GetIcon(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': - """ - Description of GetIcon. - -Args: - - psiItemArray(PyIShellItemArray):Description for psiItemArray - -Returns: - - typing.Any - - """ - pass - - - def GetToolTip(self,psiItemArray:'PyIShellItemArray') -> 'typing.Any': - """ - Description of GetToolTip. - -Args: - - psiItemArray(PyIShellItemArray):Description for psiItemArray - -Returns: - - typing.Any - - """ - pass - - - def GetCanonicalName(self,) -> 'PyIID': - """ - Description of GetCanonicalName. - -Args: - - - -Returns: - - PyIID - - """ - pass - - - def GetState(self,psiItemArray:'PyIShellItemArray',fOkToBeSlow:'typing.Any') -> 'typing.Any': - """ - Description of GetState. - -Args: - - psiItemArray(PyIShellItemArray):Description for psiItemArray - fOkToBeSlow(typing.Any):Description for fOkToBeSlow - -Returns: - - typing.Any - - """ - pass - - - def Invoke(self,psiItemArray:'PyIShellItemArray',pbc:'PyIBindCtx') -> 'None': - """ - Description of Invoke. - -Args: - - psiItemArray(PyIShellItemArray):Description for psiItemArray - pbc(PyIBindCtx):Description for pbc - -Returns: - - None - - """ - pass - - - def GetFlags(self,) -> 'typing.Any': - """ - Description of GetFlags. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def EnumSubCommands(self,) -> 'PyIEnumExplorerCommand': - """ - Description of EnumSubCommands. - -Args: - - - -Returns: - - PyIEnumExplorerCommand - - """ - pass - - -class PyIExplorerCommandProvider(object): - """This is a gateway only interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIExplorerPaneVisibility(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIExternalConnection(object): - """A Python wrapper for a COM IExternalConnection interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddConnection(self,extconn:'typing.Any',reserved:'typing.Any'=0) -> 'typing.Any': - """ - Increments an object's count of its strong external connections - -(links). - -Args: - - extconn(typing.Any):Type of external connection to the object. The only type of external connection currently supported by this interface is strong, which means that the object must remain alive as long as this external connection exists. Strong external connections are represented by the value EXTCONN_STRONG = 0x0001, which is defined in the enumeration EXTCON - reserved(typing.Any):A reserved parameterReturn ValueThe result is the number of reference counts on the object; used for debugging purposes only. - -Returns: - - typing.Any:A reserved parameter -Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. - - - """ - pass - - - def ReleaseConnection(self,extconn:'typing.Any',reserved:'typing.Any',fLastReleaseCloses:'typing.Any') -> 'typing.Any': - """ - Decrements an object's count of its strong external connections - -(references). - -Args: - - extconn(typing.Any):Type of external connection - reserved(typing.Any):A reserved parameter. - fLastReleaseCloses(typing.Any):TRUE specifies that if the connection being released is the last external lock on the object, the object should close. FALSE specifies that the object should remain open until closed by the user or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. - -Returns: - - typing.Any:TRUE specifies that if the connection being released is the last external lock on - -the object, the object should close. FALSE specifies that the object should remain open until closed by the user - -or another process.Return ValueThe result is the number of reference counts on the object; used for debugging purposes only. - - - """ - pass - - -class PyIExtractIcon(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Extract(self,pszFile:'typing.Any',nIconIndex:'typing.Any',nIconSize:'typing.Any') -> 'None': - """ - Description of Extract. - -Args: - - pszFile(typing.Any):Description for pszFile - nIconIndex(typing.Any):Description for nIconIndex - nIconSize(typing.Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. - -Returns: - - None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or - -(None,None) if the underlying function returns S_FALSE, indicating - -the calling application should extract it. - - - """ - pass - - - def GetIconLocation(self,uFlags:'typing.Any',cchMax:'typing.Any') -> 'None': - """ - Description of GetIconLocation. - -Args: - - uFlags(typing.Any):Description for uFlags - cchMax(typing.Any):Buffer size to allocate for file name - -Returns: - - None - - """ - pass - - -class PyIExtractIconW(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Extract(self,pszFile:'typing.Any',nIconIndex:'typing.Any',nIconSize:'typing.Any') -> 'None': - """ - Description of Extract. - -Args: - - pszFile(typing.Any):Description for pszFile - nIconIndex(typing.Any):Description for nIconIndex - nIconSize(typing.Any):Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or (None,None) if the underlying function returns S_FALSE, indicating the calling application should extract it. - -Returns: - - None:Description for nIconIndexReturn ValueThe result is (hicon_large, hicon_small), or - -(None,None) if the underlying function returns S_FALSE, indicating - -the calling application should extract it. - - - """ - pass - - - def GetIconLocation(self,uFlags:'typing.Any',cchMax:'typing.Any') -> 'None': - """ - Description of GetIconLocation. - -Args: - - uFlags(typing.Any):Description for uFlags - cchMax(typing.Any):Buffer size to allocate for file name - -Returns: - - None - - """ - pass - - -class PyIExtractImage(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLocation(self,dwPriority:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]',dwRecClrDepth:'typing.Any',pdwFlags:'typing.Any') -> 'None': - """ - Description of GetLocation. - -Args: - - dwPriority(typing.Any):Description for dwPriority - size(typing.Tuple[typing.Any, typing.Any]):Description for prgSize - dwRecClrDepth(typing.Any):Description for dwRecClrDepth - pdwFlags(typing.Any):Description for pdwFlags - -Returns: - - None - - """ - pass - - - def Extract(self,) -> 'None': - """ - Description of Extract. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIFileOperation(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Advise(self,Sink:'PyGFileOperationProgressSink') -> 'typing.Any': - """ - Connects an event sink to receive updates - -Args: - - Sink(PyGFileOperationProgressSink):Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect - -Returns: - - typing.Any:Interface that receives progress updatesReturn ValueReturns a cookie to be passed to PyIFileOperation::Unadvise to disconnect - - - """ - pass - - - def Unadvise(self,Cookie:'typing.Any') -> 'None': - """ - Disconnects a progress sink - -Args: - - Cookie(typing.Any):Identifies the sink to disconnect, as returned by PyIFileOperation::Advise - -Returns: - - None - - """ - pass - - - def SetOperationFlags(self,OperationFlags:'typing.Any') -> 'None': - """ - Sets option flags for the operation - -Args: - - OperationFlags(typing.Any):Combination of shellcon.FOF_* and FOFX_* flags - -Returns: - - None - - """ - pass - - - def SetProgressMessage(self,Message:'typing.Any') -> 'None': - """ - Not implemented. - -Args: - - Message(typing.Any):Description for Message - -Returns: - - None - - """ - pass - - - def SetProgressDialog(self,popd:'typing.Any') -> 'None': - """ - Provides an interface used to display a progress dialog - -Args: - - popd(typing.Any):Progress dialog interfaceCommentsIOperationsProgressDialog is not yet supported - -Returns: - - None - - """ - pass - - - def SetProperties(self,proparray:'PyIPropertyChangeArray') -> 'None': - """ - Specifies a set of properties to be changed. - -Args: - - proparray(PyIPropertyChangeArray):Sequence of property changes to be performed (see propsys::PSCreatePropertyChangeArray)CommentsNote that these properties will be set for *any* files created by the operation, not just items passed to ApplyPropertiesToItem(s). New items created as the result of a rename, copy, or move must have a property handler, or the operation fails with the vague com_error: (-2147467259, 'Unspecified error', None, None) (E_FAIL, or 0x80004005 in hex) even though the given file operation was actually performed. - -Returns: - - None - - """ - pass - - - def SetOwnerWindow(self,Owner:'int') -> 'None': - """ - Sets the parent window for any UI displayed. - -Args: - - Owner(int):Handle to parent window - -Returns: - - None - - """ - pass - - - def ApplyPropertiesToItem(self,Item:'PyIShellItem') -> 'None': - """ - Specifies the item that will receive property changes - -Args: - - Item(PyIShellItem):The item to which property changes will be applied - -Returns: - - None - - """ - pass - - - def ApplyPropertiesToItems(self,Items:'PyIUnknown') -> 'None': - """ - Specifies multiple items that will receive property changes - -Args: - - Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the target items - -Returns: - - None - - """ - pass - - - def RenameItem(self,Item:'PyIShellItem',NewName:'typing.Any',Sink:'PyGFileOperationProgressSink'=None) -> 'None': - """ - Adds a rename to the operation sequence - -Args: - - Item(PyIShellItem):The item to be renamed - NewName(typing.Any):The new name - Sink(PyGFileOperationProgressSink):Progress sink for this operation only. - -Returns: - - None - - """ - pass - - - def RenameItems(self,pUnkItems:'PyIUnknown',NewName:'typing.Any') -> 'None': - """ - Adds multiple renames to the operation sequence - -Args: - - pUnkItems(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be renamed - NewName(typing.Any):New name for all items. Collisions handled automatically. - -Returns: - - None - - """ - pass - - - def MoveItem(self,Item:'PyIShellItem',DestinationFolder:'PyIShellItem',pszNewName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': - """ - Adds a move operation to the configuration - -Args: - - Item(PyIShellItem):The item to be moved - DestinationFolder(PyIShellItem):The folder into which it will be moved - pszNewName(typing.Any):Name to be given to moved item, use None to keep original name - Sink(PyGFileOperationProgressSink):Progress sink to receive notification for just this operation - -Returns: - - None - - """ - pass - - - def MoveItems(self,Items:'PyIUnknown',DestinationFolder:'PyIShellItem') -> 'None': - """ - Adds multiple move operations to the configuration - -Args: - - Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be moved - DestinationFolder(PyIShellItem):Folder into which all items will be moved - -Returns: - - None - - """ - pass - - - def CopyItem(self,Item:'PyIShellItem',DestinationFolder:'PyIShellItem',CopyName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': - """ - Adds a copy operation to the configuration - -Args: - - Item(PyIShellItem):Item to be copied - DestinationFolder(PyIShellItem):Folder into which it will be copied - CopyName(typing.Any):New name for the copied file, use None to keep original name - Sink(PyGFileOperationProgressSink):Progress sink for just this operation - -Returns: - - None - - """ - pass - - - def CopyItems(self,Items:'PyIUnknown',DestinationFolder:'PyIShellItem') -> 'None': - """ - Adds multiple copy operations to the configuration - -Args: - - Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing items to be copied - DestinationFolder(PyIShellItem):Folder into which they will be copied - -Returns: - - None - - """ - pass - - - def DeleteItem(self,Item:'PyIShellItem',Sink:'PyGFileOperationProgressSink'=None) -> 'None': - """ - Adds a delete operation to the configuration - -Args: - - Item(PyIShellItem):Description for psiItem - Sink(PyGFileOperationProgressSink):Progress sink for just this operation - -Returns: - - None - - """ - pass - - - def DeleteItems(self,Items:'PyIUnknown') -> 'None': - """ - Adds multiple delete operations to the configuration - -Args: - - Items(PyIUnknown):PyIShellItemArray, PyIDataObject, or PyIEnumShellItems containing the items to be deleted - -Returns: - - None - - """ - pass - - - def NewItem(self,DestinationFolder:'PyIShellItem',FileAttributes:'typing.Any',Name:'typing.Any',TemplateName:'typing.Any'=None,Sink:'PyGFileOperationProgressSink'=None) -> 'None': - """ - Creates a new file as part of the operation - -Args: - - DestinationFolder(PyIShellItem):Folder in which to create the file - FileAttributes(typing.Any):Combination of win32con.FILE_ATTRIBUTE_* flags - Name(typing.Any):Name of the new file - TemplateName(typing.Any):Template file used to initialize the new file - Sink(PyGFileOperationProgressSink):Progress sink for just this operation - -Returns: - - None - - """ - pass - - - def PerformOperations(self,) -> 'None': - """ - Effects all configured file system modifications - -Args: - - - -Returns: - - None - - """ - pass - - - def GetAnyOperationsAborted(self,) -> 'typing.Any': - """ - Determines if any operations were terminated - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIIdentityName(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyIInitializeWithFile(object): - """Initializes a property handler that requires a file path instead of a stream""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,FilePath:'typing.Any',Mode:'typing.Any') -> 'None': - """ - Passes a file path to a property handler on startup - -Args: - - FilePath(typing.Any):Full path to the file whose properties are to be accessed - Mode(typing.Any):Indicates if properties can be written, STGM_READ or STGM_READWRITE - -Returns: - - None - - """ - pass - - -class PyIInitializeWithStream(object): - """Interface that initializes a handler capable of reading properties from a stream""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,Stream:'PyIStream',Mode:'typing.Any') -> 'None': - """ - Initializes a property handler with a stream - -Args: - - Stream(PyIStream):Stream containing the contents from which to extract properties - Mode(typing.Any):Indicates if stream is writable, STGM_READ or STGM_READWRITE - -Returns: - - None - - """ - pass - - -class PyIInputObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def TranslateAccelerator(self,pmsg:'typing.Any') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - pmsg(typing.Any):Description for pmsg - -Returns: - - None - - """ - pass - - - def UIActivate(self,uState:'typing.Any') -> 'None': - """ - Description of UIActivate. - -Args: - - uState(typing.Any):Description for uState - -Returns: - - None - - """ - pass - - - def HasFocusIO(self,) -> 'None': - """ - Description of Refresh. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetBindInfo(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetBindInfo(self,) -> 'None': - """ - Description of GetBindInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetBindString(self,) -> 'None': - """ - Description of GetBindString. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetPriority(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetPriority(self,nPriority:'typing.Any') -> 'None': - """ - Description of SetPriority. - -Args: - - nPriority(typing.Any):Description for nPriority - -Returns: - - None - - """ - pass - - - def GetPriority(self,) -> 'None': - """ - Description of GetPriority. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetProtocol(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Read(self,cb:'typing.Any') -> 'None': - """ - Description of Read. - -Args: - - cb(typing.Any):Description for cb - -Returns: - - None - - """ - pass - - - def Seek(self,dlibMove:'LARGE_INTEGER',dwOrigin:'typing.Any') -> 'None': - """ - Description of Seek. - -Args: - - dlibMove(LARGE_INTEGER):Description for dlibMove - dwOrigin(typing.Any):Description for dwOrigin - -Returns: - - None - - """ - pass - - - def LockRequest(self,dwOptions:'typing.Any') -> 'None': - """ - Description of LockRequest. - -Args: - - dwOptions(typing.Any):Description for dwOptions - -Returns: - - None - - """ - pass - - - def UnlockRequest(self,) -> 'None': - """ - Description of UnlockRequest. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetProtocolInfo(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ParseUrl(self,pwzUrl:'typing.Any',ParseAction:'typing.Any',dwParseFlags:'typing.Any',cchResult:'typing.Any',dwReserved:'typing.Any') -> 'None': - """ - Description of ParseUrl. - -Args: - - pwzUrl(typing.Any):Description for pwzUrl - ParseAction(typing.Any):Description for ParseAction - dwParseFlags(typing.Any):Description for dwParseFlags - cchResult(typing.Any):Description for cchResult - dwReserved(typing.Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def CombineUrl(self,pwzBaseUrl:'typing.Any',pwzRelativeUrl:'typing.Any',dwCombineFlags:'typing.Any',cchResult:'typing.Any',dwReserved:'typing.Any') -> 'None': - """ - Description of CombineUrl. - -Args: - - pwzBaseUrl(typing.Any):Description for pwzBaseUrl - pwzRelativeUrl(typing.Any):Description for pwzRelativeUrl - dwCombineFlags(typing.Any):Description for dwCombineFlags - cchResult(typing.Any):Description for cchResult - dwReserved(typing.Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def CompareUrl(self,pwzUrl1:'typing.Any',pwzUrl2:'typing.Any',dwCompareFlags:'typing.Any') -> 'None': - """ - Description of CompareUrl. - -Args: - - pwzUrl1(typing.Any):Description for pwzUrl1 - pwzUrl2(typing.Any):Description for pwzUrl2 - dwCompareFlags(typing.Any):Description for dwCompareFlags - -Returns: - - None - - """ - pass - - - def QueryInfo(self,pwzUrl:'typing.Any',OueryOption:'typing.Any',dwQueryFlags:'typing.Any',cbBuffer:'typing.Any',dwReserved:'typing.Any') -> 'typing.Any': - """ - Description of QueryInfo. - -Args: - - pwzUrl(typing.Any):Description for pwzUrl - OueryOption(typing.Any):Description for OueryOption - dwQueryFlags(typing.Any):Description for dwQueryFlags - cbBuffer(typing.Any):Description for cbBuffer - dwReserved(typing.Any):Description for dwReservedCommentsIf the buffer size is the size of an integer, an integer will be returned, otherwise a string. - -Returns: - - typing.Any - - """ - pass - - -class PyIInternetProtocolRoot(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Start(self,szUrl:'typing.Any',pOIProtSink:'PyIInternetProtocolSink',pOIBindInfo:'PyIInternetBindInfo',grfPI:'typing.Any',dwReserved:'typing.Any') -> 'None': - """ - Description of Start. - -Args: - - szUrl(typing.Any):Description for szUrl - pOIProtSink(PyIInternetProtocolSink):Description for pOIProtSink - pOIBindInfo(PyIInternetBindInfo):Description for pOIBindInfo - grfPI(typing.Any):Description for grfPI - dwReserved(typing.Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def Continue(self,) -> 'None': - """ - Description of Continue. - -Args: - - - -Returns: - - None - - """ - pass - - - def Abort(self,hrReason:'typing.Any',dwOptions:'typing.Any') -> 'None': - """ - Description of Abort. - -Args: - - hrReason(typing.Any):Description for hrReason - dwOptions(typing.Any):Description for dwOptions - -Returns: - - None - - """ - pass - - - def Terminate(self,dwOptions:'typing.Any') -> 'None': - """ - Description of Terminate. - -Args: - - dwOptions(typing.Any):Description for dwOptions - -Returns: - - None - - """ - pass - - - def Suspend(self,) -> 'None': - """ - Description of Suspend. - -Args: - - - -Returns: - - None - - """ - pass - - - def Resume(self,) -> 'None': - """ - Description of Resume. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIInternetProtocolSink(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Switch(self,) -> 'None': - """ - Description of Switch. - -Args: - - - -Returns: - - None - - """ - pass - - - def ReportProgress(self,ulStatusCode:'typing.Any',szStatusText:'typing.Any') -> 'None': - """ - Description of ReportProgress. - -Args: - - ulStatusCode(typing.Any):Description for ulStatusCode - szStatusText(typing.Any):Description for szStatusText - -Returns: - - None - - """ - pass - - - def ReportData(self,grfBSCF:'typing.Any',ulProgress:'typing.Any',ulProgressMax:'typing.Any') -> 'None': - """ - Description of ReportData. - -Args: - - grfBSCF(typing.Any):Description for grfBSCF - ulProgress(typing.Any):Description for ulProgress - ulProgressMax(typing.Any):Description for ulProgressMax - -Returns: - - None - - """ - pass - - - def ReportResult(self,hrResult:'typing.Any',dwError:'typing.Any',szResult:'typing.Any') -> 'None': - """ - Description of ReportResult. - -Args: - - hrResult(typing.Any):Description for hrResult - dwError(typing.Any):Description for dwError - szResult(typing.Any):Description for szResult - -Returns: - - None - - """ - pass - - -class PyIInternetSecurityManager(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetSecuritySite(self,pSite:'typing.Any') -> 'None': - """ - Description of SetSecuritySite. - -Args: - - pSite(typing.Any):Description for pSite - -Returns: - - None - - """ - pass - - - def GetSecuritySite(self,) -> 'None': - """ - Description of GetSecuritySite. - -Args: - - - -Returns: - - None - - """ - pass - - - def MapUrlToZone(self,pwszUrl:'typing.Any',dwFlags:'typing.Any') -> 'None': - """ - Description of MapUrlToZone. - -Args: - - pwszUrl(typing.Any):Description for pwszUrl - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def GetSecurityId(self,pwszUrl:'typing.Any',pcbSecurityId:'typing.Any') -> 'None': - """ - Description of GetSecurityId. - -Args: - - pwszUrl(typing.Any):Description for pwszUrl - pcbSecurityId(typing.Any):Description for pcbSecurityId - -Returns: - - None - - """ - pass - - - def ProcessUrlAction(self,pwszUrl:'typing.Any',dwAction:'typing.Any',context:'typing.Any',dwFlags:'typing.Any') -> 'None': - """ - Description of ProcessUrlAction. - -Args: - - pwszUrl(typing.Any):Description for pwszUrl - dwAction(typing.Any):Description for dwAction - context(typing.Any): - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def SetZoneMapping(self,dwZone:'typing.Any',lpszPattern:'typing.Any',dwFlags:'typing.Any') -> 'None': - """ - Description of SetZoneMapping. - -Args: - - dwZone(typing.Any):Description for dwZone - lpszPattern(typing.Any):Description for lpszPattern - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def GetZoneMappings(self,dwZone:'typing.Any',dwFlags:'typing.Any') -> 'None': - """ - Description of GetZoneMappings. - -Args: - - dwZone(typing.Any):Description for dwZone - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - -class PyIKnownFolder(object): - """Interface representing a known folder that serves - -as a replacement for the numeric CSIDL definitions and API functions. - -Requires Vista or later.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetId(self,) -> 'PyIID': - """ - Returns the id of the folder - -Args: - - - -Returns: - - PyIID - - """ - pass - - - def GetCategory(self,) -> 'typing.Any': - """ - Returns the category for a folder (shellcon.KF_CATEGORY_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetShellItem(self,riid:'PyIID',Flags:'typing.Any'=0) -> 'PyIShellItem': - """ - Returns a shell interface for the folder - -Args: - - riid(PyIID):The interface to return (IShellItem or IShellItem2) - Flags(typing.Any):Combination of shellcon.KF_FLAG_* values - -Returns: - - PyIShellItem - - """ - pass - - - def GetPath(self,Flags:'typing.Any'=0) -> 'typing.Any': - """ - Returns the path to the folder - -Args: - - Flags(typing.Any):Combination of shellcon.KF_FLAG_* flags controlling how the path is returned - -Returns: - - typing.Any - - """ - pass - - - def SetPath(self,Flags:'typing.Any',Path:'typing.Any') -> 'None': - """ - Changes the location of the folder - -Args: - - Flags(typing.Any):KF_FLAG_DONT_UNEXPAND, or 0 - Path(typing.Any):New path for known folder - -Returns: - - None - - """ - pass - - - def GetIDList(self,Flags:'typing.Any') -> 'PyIDL': - """ - Returns the folder's location as an item id list. - -Args: - - Flags(typing.Any):Combination of shellcon.KF_FLAG_* values that affect how the operation is performed - -Returns: - - PyIDL - - """ - pass - - - def GetFolderType(self,) -> 'PyIID': - """ - Returns the type of the folder - -Args: - - - -Returns: - - PyIID:PyIKnownFolder.GetFolderType -PyIID = GetFolderType()Returns the type of the folder -Return ValueReturns a folder type guid (shell.FOLDERTYPEID_*) - - - """ - pass - - - def GetRedirectionCapabilities(self,) -> 'typing.Any': - """ - Returns flags indicating how the folder can be redirected - -Args: - - - -Returns: - - typing.Any:PyIKnownFolder.GetRedirectionCapabilities - -int = GetRedirectionCapabilities()Returns flags indicating how the folder can be redirected -Return ValueCombination of shellcon.KF_REDIRECTION_CAPABILITIES_* flags - - - """ - pass - - - def GetFolderDefinition(self,) -> 'typing.Any': - """ - Retrieves detailed information about a known folder - -Args: - - - -Returns: - - typing.Any:PyIKnownFolder.GetFolderDefinition - -dict = GetFolderDefinition()Retrieves detailed information about a known folder -Return ValueReturns a dict containing info from a KNOWNFOLDER_DEFINITION struct - - - """ - pass - - -class PyIKnownFolderManager(object): - """Interface used to manage known folder definitions.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def FolderIdFromCsidl(self,Csidl:'typing.Any') -> 'PyIID': - """ - Returns the folder id that corresponds to a CSIDL - -Args: - - Csidl(typing.Any):The legacy CSIDL identifying a folder - -Returns: - - PyIID - - """ - pass - - - def FolderIdToCsidl(self,_id:'PyIID') -> 'typing.Any': - """ - Returns the CSIDL equivalent of a known folder - -Args: - - _id(PyIID):A known folder id (shell.FOLDERID_*) - -Returns: - - typing.Any - - """ - pass - - - def GetFolderIds(self,) -> 'typing.Tuple[PyIID, ...]': - """ - Retrieves all known folder ids. - -Args: - - - -Returns: - - typing.Tuple[PyIID, ...] - - """ - pass - - - def GetFolder(self,_id:'PyIID') -> 'PyIKnownFolder': - """ - Returns a folder by its id. - -Args: - - _id(PyIID):A known folder id (shell.FOLDERID_*) - -Returns: - - PyIKnownFolder - - """ - pass - - - def GetFolderByName(self,Name:'typing.Any') -> 'PyIKnownFolder': - """ - Returns a folder by canonical name - -Args: - - Name(typing.Any):The nonlocalized name of a known folder - -Returns: - - PyIKnownFolder - - """ - pass - - - def RegisterFolder(self,_id:'PyIID',Definition:'typing.Any') -> 'None': - """ - Defines a new known folder - -Args: - - _id(PyIID):GUID used to identify the new known folder - Definition(typing.Any):Dictionary containing info to be placed in a KNOWNFOLDER_DEFINITION structCommentsPyIKnownFolder::GetFolderDefinition can be used to get a template dictionary - -Returns: - - None - - """ - pass - - - def UnregisterFolder(self,_id:'PyIID') -> 'None': - """ - Removes the definition of a known folder - -Args: - - _id(PyIID):GUID of a known folder to be unregistered - -Returns: - - None - - """ - pass - - - def FindFolderFromPath(self,Path:'typing.Any',Mode:'typing.Any') -> 'PyIKnownFolder': - """ - Retrieves a known folder by path - -Args: - - Path(typing.Any):Path of a folder - Mode(typing.Any):FFFP_EXACTMATCH or FFFP_NEARESTPARENTMATCH - -Returns: - - PyIKnownFolder - - """ - pass - - - def FindFolderFromIDList(self,pidl:'PyIDL') -> 'PyIKnownFolder': - """ - Retrieves a known folder using its item id - -list. - -Args: - - pidl(PyIDL):Item id list of the folder - -Returns: - - PyIKnownFolder - - """ - pass - - - def Redirect(self,_id:'PyIID',hwnd:'int',flags:'typing.Any',TargetPath:'typing.Any',Exclusion:'typing.Tuple[PyIID, ...]') -> 'None': - """ - Redirects a known folder to an alternate location - -Args: - - _id(PyIID):Id of the known folder to be redirected - hwnd(int):Handle of window to be used for user interaction - flags(typing.Any):Combination of KF_REDIRECT_* flags - TargetPath(typing.Any):Path to which the known folder will be redirected - Exclusion(typing.Tuple[PyIID, ...]):Sequence of known folder ids of subfolders to be excluded from redirection - -Returns: - - None - - """ - pass - - -class PyILockBytes(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ReadAt(self,ulOffset:'ULARGE_INTEGER',cb:'typing.Any') -> 'str': - """ - Reads a specified number of bytes starting at a specified offset from the - -beginning of the byte array object. - -Args: - - ulOffset(ULARGE_INTEGER):Offset to start reading - cb(typing.Any):Number of bytes to readCommentsThe result is a binary buffer returned in a string. - -Returns: - - str - - """ - pass - - - def WriteAt(self,ulOffset:'ULARGE_INTEGER',data:'str') -> 'typing.Any': - """ - Writes the specified number of bytes starting at a specified offset from the - -beginning of the byte array. - -Args: - - ulOffset(ULARGE_INTEGER):Offset to write at. - data(str):Data to writeReturn ValueThe result is the number of bytes actually written. - -Returns: - - typing.Any:Data to writeReturn ValueThe result is the number of bytes actually written. - - - """ - pass - - - def Flush(self,) -> 'None': - """ - Ensures that any internal buffers maintained by the byte array object are written out - -to the backing storage. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetSize(self,cb:'ULARGE_INTEGER') -> 'None': - """ - Changes the size of the byte array. - -Args: - - cb(ULARGE_INTEGER):The new size. - -Returns: - - None - - """ - pass - - - def LockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'typing.Any') -> 'None': - """ - Restricts access to a specified range of bytes in the byte array. - -Args: - - libOffset(ULARGE_INTEGER):The beginning of the region to lock. - cb(ULARGE_INTEGER):The number of bytes to lock. - dwLockType(typing.Any):Specifies the restrictions being requested on accessing the range. - -Returns: - - None - - """ - pass - - - def UnlockRegion(self,libOffset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',dwLockType:'typing.Any') -> 'None': - """ - None - -Args: - - libOffset(ULARGE_INTEGER):The beginning of the region to unlock. - cb(ULARGE_INTEGER):The number of bytes to lock. - dwLockType(typing.Any):Specifies the restrictions being requested on accessing the range. - -Returns: - - None - - """ - pass - - - def Stat(self,grfStatFlag:'typing.Any') -> 'STATSTG': - """ - None - -Args: - - grfStatFlag(typing.Any):Specifies that this method does not return some of the fields in the STATSTG structure, thus saving a memory allocation operation. Values are taken from the STATFLAG enumerationg - -Returns: - - STATSTG - - """ - pass - - -class PyIMAPIContainer(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': - """ - Opens an object and returns an interface object for further access. - -Args: - - entryId(str):The EntryID to open. - iid(PyIID):The IID of the returned interface, or None for the default interface. - flags(typing.Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) - -Returns: - - typing.Any - - """ - pass - - - def GetContentsTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - Returns an object representing the container's contents table. - -Args: - - flags(typing.Any):The flags to use. - -Returns: - - PyIMAPITable - - """ - pass - - - def GetHierarchyTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - Returns an object representing the container's hierarchy table. - -Args: - - flags(typing.Any):The flags to use. - -Returns: - - PyIMAPITable - - """ - pass - - -class PyIMAPIFolder(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns the last error code for the object. - -Args: - - hr(typing.Any):Contains the error code generated in the previous method call. - flags(typing.Any):Indicates for format for the output. - -Returns: - - typing.Any - - """ - pass - - - def CreateFolder(self,folderType:'typing.Any',folderName:'str',folderComment:'str'=None,iid:'PyIID'=None,flags:'typing.Any'=0) -> 'PyIMAPIFolder': - """ - Creates a folder object. - -Args: - - folderType(typing.Any):The type of folder to create - folderName(str):The name of the folder. - folderComment(str):A comment for the folder or None - iid(PyIID):The IID of the object to return. Should usually be None. - flags(typing.Any): - -Returns: - - PyIMAPIFolder - - """ - pass - - - def CreateMessage(self,iid:'PyIID',flags:'typing.Any') -> 'PyIMessage': - """ - Creates a message in a folder - -Args: - - iid(PyIID):The IID of the object to return. Should usually be None. - flags(typing.Any): - -Returns: - - PyIMessage - - """ - pass - - - def CopyMessages(self,msgs:'PySBinaryArray',iid:'PyIID',folder:'PyIMAPIFolder',ulUIParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Copies the specified messages - -Args: - - msgs(PySBinaryArray): - iid(PyIID):IID representing the interface to be used to access the destination folder. Should usually be None. - folder(PyIMAPIFolder):The destination folder - ulUIParam(typing.Any):Handle of the parent window for any dialog boxes or windows this method displays. - progress(typing.Any):A progress object, or None - flags(typing.Any):A bitmask ofMaskDescriptionMAPI_DECLINE_OKInforms the message store provider to immediately return MAPI_E_DECLINE_COPY if it implements CopyMessage by calling the support object's IMAPISupport::DoCopyTo or IMAPISupport::DoCopyProps method.MESSAGE_DIALOGDisplays a progress indicator as the operation proceeds.MESSAGE_MOVEThe message or messages are to be moved rather than copied. If MESSAGE_MOVE is not set, the messages are copied. - -Returns: - - typing.Any - - """ - pass - - - def DeleteFolder(self,entryId:'str',uiParam:'typing.Any',progress:'typing.Any') -> 'None': - """ - Deletes a subfolder. - -Args: - - entryId(str):The EntryID of the subfolder to delete. - uiParam(typing.Any):Handle of the parent window of the progress indicator. - progress(typing.Any):A progress object, or None - -Returns: - - None - - """ - pass - - - def DeleteMessages(self,msgs:'PySBinaryArray',uiParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Deletes the specified messages. - -Args: - - msgs(PySBinaryArray): - uiParam(typing.Any):A HWND for the progress - progress(typing.Any):A progress object, or None - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - - def EmptyFolder(self,uiParam:'typing.Any',progress:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - deletes all messages and subfolders from a folder without deleting the folder itself. - -Args: - - uiParam(typing.Any):A HWND for the progress - progress(typing.Any):A progress object, or None - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - - def SetReadFlags(self,msgs:'PySBinaryArray',uiParam:'typing.Any',progress:'typing.Any',flag:'typing.Any') -> 'None': - """ - Sets or clears the MSGFLAG_READ flag in the PR_MESSAGE_FLAGS (PidTagMessageFlags) property of one or more of the folder's messages, and manages the sending of read reports. - -Args: - - msgs(PySBinaryArray): - uiParam(typing.Any):A HWND for the progress - progress(typing.Any):A progress object, or None - flag(typing.Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. - -Returns: - - None - - """ - pass - - -class PyIMAPIProp(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetProps(self,propList:'PySPropTagArray',flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Returns a list of property values. - -Args: - - propList(PySPropTagArray):The list of properties - flags(typing.Any): - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def DeleteProps(self,propList:'PySPropTagArray',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Deletes a set of properties. - -Args: - - propList(PySPropTagArray):The list of properties - wantProblems(typing.Any):Return detailed error information - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def SetProps(self,propList:'typing.Tuple[typing.Any, typing.Any]',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Sets a set of properties. - -Args: - - propList(typing.Tuple[typing.Any, typing.Any]):The list of properties - wantProblems(typing.Any):Return detailed error information - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def CopyTo(self,IIDExcludeList:'typing.Tuple[typing.Any, typing.Any]',propTags:'PySPropTagArray',uiParam:'typing.Any',progress:'typing.Any',resultIID:'PyIID',dest:'PyIMAPIProp',flags:'typing.Any',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Copies an object to another - -Args: - - IIDExcludeList(typing.Tuple[typing.Any, typing.Any]):A sequence of IIDs to exclude. - propTags(PySPropTagArray):The property tags to exclude. - uiParam(typing.Any):Handle to the parent window of the progress object - progress(typing.Any):Reserved - must pass None - resultIID(PyIID):IID of the destination object - dest(PyIMAPIProp):The destination object - flags(typing.Any):flags - wantProblems(typing.Any):Return detailed error information - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def CopyProps(self,propTags:'PySPropTagArray',uiParam:'typing.Any',progress:'typing.Any',resultIID:'PyIID',dest:'PyIMAPIProp',flags:'typing.Any',wantProblems:'typing.Any'=False) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Copies a set of properties to another object - -Args: - - propTags(PySPropTagArray):The property tags to copy - uiParam(typing.Any):Handle to the parent window of the progress object - progress(typing.Any):Reserved - must pass None - resultIID(PyIID):IID of the destination object - dest(PyIMAPIProp):The destination object - flags(typing.Any):flags - wantProblems(typing.Any):Return detailed error information - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def OpenProperty(self,propTag:'typing.Any',iid:'PyIID',interfaceOptions:'typing.Any',flags:'typing.Any') -> 'PyIUnknown': - """ - Returns an interface object to be used to access a property. - -Args: - - propTag(typing.Any):The property tag to open - iid(PyIID):The IID of the resulting interface. - interfaceOptions(typing.Any):Data that relates to the interface identified by the lpiid parameter. - flags(typing.Any):flags - -Returns: - - PyIUnknown - - """ - pass - - - def GetIDsFromNames(self,nameIds:'PyMAPINAMEIDArray',flags:'typing.Any'=0) -> 'PySPropTagArray': - """ - Determines property IDs - -Args: - - nameIds(PyMAPINAMEIDArray):Sequence of name ids - flags(typing.Any): - -Returns: - - PySPropTagArray - - """ - pass - - - def GetNamesFromIDs(self,propTags:'PySPropTagArray',propSetGuid:'PyIID'=None,flags:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PySPropTagArray, PyMAPINAMEIDArray]': - """ - Determines property names - -Args: - - propTags(PySPropTagArray):Sequence of property tags, or None - propSetGuid(PyIID):a globally unique identifier, identifying a property set, or None - flags(typing.Any): - -Returns: - - typing.Tuple[typing.Any, PySPropTagArray, PyMAPINAMEIDArray] - - """ - pass - - - def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns the last error code for the object. - -Args: - - hr(typing.Any):Contains the error code generated in the previous method call. - flags(typing.Any):Indicates for format for the output. - -Returns: - - typing.Any - - """ - pass - - - def SaveChanges(self,flags:'typing.Any') -> 'None': - """ - Saves pending changes to the object - -Args: - - flags(typing.Any):flags - -Returns: - - None - - """ - pass - - - def GetPropList(self,flags:'typing.Any') -> 'PySPropTagArray': - """ - Gets a list of properties - -Args: - - flags(typing.Any):flags - -Returns: - - PySPropTagArray - - """ - pass - - -class PyIMAPISession(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': - """ - Opens an object and returns an interface object for further access. - -Args: - - entryId(str):The EntryID to open. - iid(PyIID):The IID of the returned interface, or None for the default interface. - flags(typing.Any):Flags for the call. May include MAPI_BEST_ACCESS, MAPI_DEFERRED_ERRORS, MAPI_MODIFY and possibly others (see the MAPI documentation) - -Returns: - - typing.Any - - """ - pass - - - def OpenMsgStore(self,uiParam:'typing.Any',entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'PyIUnknown': - """ - Opens a message store. - -Args: - - uiParam(typing.Any):Handle to the parent window for dialogs. - entryId(str):The entry ID of the message store to open. - iid(PyIID):The IID of the interface returned, or None - flags(typing.Any):Options for the call.CommentsThe result is the interface specified by the IID, or IID_IMsgStore if None is used. - -Returns: - - PyIUnknown - - """ - pass - - - def QueryIdentity(self,) -> 'str': - """ - Returns the entry identifier of the object that provides the primary identity for the session. - -Args: - - - -Returns: - - str - - """ - pass - - - def Advise(self,entryId:'str',mask:'typing.Any',sink:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - entryId(str):The entryID of the object - mask(typing.Any): - sink(typing.Any):Return ValueThe result is an integer which should be passed to PyIMAPISession::Unadvise - -Returns: - - typing.Any:Return ValueThe result is an integer which should be passed to - -PyIMAPISession::Unadvise - - - """ - pass - - - def Unadvise(self,connection:'typing.Any') -> 'None': - """ - None - -Args: - - connection(typing.Any):Value returned from PyIMAPISession::Advise - -Returns: - - None - - """ - pass - - - def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': - """ - Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object - -Args: - - entryId(str):The first entry ID to be compared - entryId1(str):The second entry ID to be compared - flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - -Returns: - - typing.Any:Reserved - must be zero. -Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - - - """ - pass - - - def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns the last error code for the object. - -Args: - - hr(typing.Any):Contains the error code generated in the previous method call. - flags(typing.Any):Indicates for format for the output. - -Returns: - - typing.Any - - """ - pass - - - def GetMsgStoresTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - Provides access to the message store table - a table with information about all of the message stores in the session profile. - -Args: - - flags(typing.Any):Flags that control the opening. - -Returns: - - PyIMAPITable - - """ - pass - - - def GetStatusTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - Provides access to the status table - a table with information about all of the MAPI resources in the session. - -Args: - - flags(typing.Any):Flags that control the opening. - -Returns: - - PyIMAPITable - - """ - pass - - - def Logoff(self,uiParm:'typing.Any',flags:'typing.Any',reserved:'typing.Any') -> 'None': - """ - Ends a MAPI session. - -Args: - - uiParm(typing.Any):hwnd of a dialog is to be displayed. - flags(typing.Any):Bitmask of flags that control the logoff operation. - reserved(typing.Any):Reserved; must be zero. - -Returns: - - None - - """ - pass - - - def OpenAddressBook(self,uiParm:'typing.Any',iid:'PyIID',flags:'typing.Any') -> 'PyIAddrBook': - """ - Opens the integrated address book. - -Args: - - uiParm(typing.Any):hwnd of a dialog is to be displayed. - iid(PyIID):The IID of the interface, or None. - flags(typing.Any):Flags that control the opening - AB_NO_DIALOG. - -Returns: - - PyIAddrBook - - """ - pass - - - def OpenProfileSection(self,iidSection:'PyIID',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': - """ - Opens a section of the current profile and returns an object for futher access - -Args: - - iidSection(PyIID):The MAPIIID of the profile section - iid(PyIID):The IID of the interface, or None. - flags(typing.Any):Flags that control the opening. - -Returns: - - typing.Any - - """ - pass - - - def AdminServices(self,flags:'typing.Any'=0) -> 'PyIMsgServiceAdmin': - """ - Provides access to a message service administration object for making changes to the message services. - -Args: - - flags(typing.Any):reserved; must be zero. - -Returns: - - PyIMsgServiceAdmin - - """ - pass - - -class PyIMAPIStatus(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ChangePassword(self,oldPassword:'typing.Any',newPassword:'typing.Any',ulFlags:'typing.Any') -> 'None': - """ - None - -Args: - - oldPassword(typing.Any): - newPassword(typing.Any): - ulFlags(typing.Any): - -Returns: - - None - - """ - pass - - - def SettingsDialog(self,ulUIParam:'typing.Any',ulFlags:'typing.Any') -> 'None': - """ - None - -Args: - - ulUIParam(typing.Any): - ulFlags(typing.Any): - -Returns: - - None - - """ - pass - - - def ValidateState(self,ulUIParam:'typing.Any',ulFlags:'typing.Any') -> 'None': - """ - None - -Args: - - ulUIParam(typing.Any): - ulFlags(typing.Any): - -Returns: - - None - - """ - pass - - - def FlushQueues(self,ulUIParam:'typing.Any',transport:'str',ulFlags:'typing.Any') -> 'None': - """ - None - -Args: - - ulUIParam(typing.Any): - transport(str):Blob of data - ulFlags(typing.Any): - -Returns: - - None - - """ - pass - - -class PyIMAPITable(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns the last error code for the object. - -Args: - - hr(typing.Any):Contains the error code generated in the previous method call. - flags(typing.Any):Indicates for format for the output. - -Returns: - - typing.Any - - """ - pass - - - def Advise(self,eventMask:'typing.Any',adviseSink:'typing.Any') -> 'typing.Any': - """ - Registers to receive notification of specified events affecting the table. - -Args: - - eventMask(typing.Any): - adviseSink(typing.Any): - -Returns: - - typing.Any - - """ - pass - - - def SeekRow(self,bookmark:'typing.Any',rowCount:'typing.Any') -> 'typing.Any': - """ - Moves the cursor to a specific position in the table. - -Args: - - bookmark(typing.Any):The bookmark. - rowCount(typing.Any):Return ValueThe result is the number of rows processed. - -Returns: - - typing.Any:Return ValueThe result is the number of rows processed. - - - """ - pass - - - def SeekRowApprox(self,numerator:'typing.Any',denominator:'typing.Any') -> 'None': - """ - Moves the cursor to an approximate fractional position in the table. - -Args: - - numerator(typing.Any):The numerator of the fraction representing the table position - denominator(typing.Any):The denominator of the fraction representing the table position. This must not be zero. - -Returns: - - None - - """ - pass - - - def GetRowCount(self,flags:'typing.Any') -> 'typing.Any': - """ - Returns the total number of rows in the table. - -Args: - - flags(typing.Any):Reserved - must be zero - -Returns: - - typing.Any - - """ - pass - - - def QueryRows(self,rowCount:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns one or more rows from a table, beginning at the current cursor position. - -Args: - - rowCount(typing.Any):Number of rows to retrieve - flags(typing.Any):Flags. - -Returns: - - typing.Any - - """ - pass - - - def SetColumns(self,propTags:'typing.Any',flags:'typing.Any') -> 'None': - """ - Defines the particular properties and order of properties to appear as columns in the table. - -Args: - - propTags(typing.Any):Sequence of property tags identifying properties to be included as columns in the table. - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def GetStatus(self,) -> 'None': - """ - Returns the table's status and type. - -Args: - - - -Returns: - - None:PyIMAPITable.GetStatus -GetStatus()Returns the table's status and type. -Return ValueResult is a tuple of (tableStatus, tableType) - - - """ - pass - - - def QueryPosition(self,) -> 'None': - """ - Retrieves the current table row position of the cursor, based on a fractional value. - -Args: - - - -Returns: - - None:PyIMAPITable.QueryPosition -QueryPosition()Retrieves the current table row position of the cursor, based on a fractional value. -Return ValueResult is a tuple of (row, numerator, denominator) - - - """ - pass - - - def QueryColumns(self,flags:'typing.Any') -> 'typing.Any': - """ - Returns a list of columns for the table. - -Args: - - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - - def Abort(self,) -> 'None': - """ - Stops any asynchronous operations currently in progress for the table. - -Args: - - - -Returns: - - None - - """ - pass - - - def FreeBookmark(self,bookmark:'typing.Any') -> 'None': - """ - Releases the memory associated with a bookmark. - -Args: - - bookmark(typing.Any): - -Returns: - - None - - """ - pass - - - def CreateBookmark(self,) -> 'typing.Any': - """ - Marks the table's current position. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Restrict(self,restriction:'PySRestriction',flags:'typing.Any') -> 'None': - """ - Applies a filter to a table, reducing the row set to only those rows matching the specified criteria. - -Args: - - restriction(PySRestriction): - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def FindRow(self,restriction:'PySRestriction',bookmarkOrigin:'typing.Any',flags:'typing.Any') -> 'None': - """ - Finds the next row in a table that matches specific search criteria. - -Args: - - restriction(PySRestriction): - bookmarkOrigin(typing.Any): - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def SortTable(self,sortOrderSet:'PySSortOrderSet',flags:'typing.Any') -> 'None': - """ - Orders the rows of the table based on sort criteria. - -Args: - - sortOrderSet(PySSortOrderSet): - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def Unadvise(self,handle:'typing.Any') -> 'None': - """ - Cancels the sending of notifications previously set up with a call to the IMAPITable::Advise method. - -Args: - - handle(typing.Any):Handle returned from PyIMAPITable::Advise - -Returns: - - None - - """ - pass - - -class PyIMachineDebugManager(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddApplication(self,pda:'PyIRemoteDebugApplication') -> 'None': - """ - Description of AddApplication. - -Args: - - pda(PyIRemoteDebugApplication):Description for pda - -Returns: - - None - - """ - pass - - - def RemoveApplication(self,dwAppCookie:'typing.Any') -> 'None': - """ - Description of RemoveApplication. - -Args: - - dwAppCookie(typing.Any):Description for dwAppCookie - -Returns: - - None - - """ - pass - - - def EnumApplications(self,) -> 'None': - """ - Description of EnumApplications. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIMachineDebugManagerEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def onAddApplication(self,pda:'PyIRemoteDebugApplication',dwAppCookie:'typing.Any') -> 'None': - """ - Description of onAddApplication. - -Args: - - pda(PyIRemoteDebugApplication):Description for pda - dwAppCookie(typing.Any):Description for dwAppCookie - -Returns: - - None - - """ - pass - - - def onRemoveApplication(self,pda:'PyIRemoteDebugApplication',dwAppCookie:'typing.Any') -> 'None': - """ - Description of onRemoveApplication. - -Args: - - pda(PyIRemoteDebugApplication):Description for pda - dwAppCookie(typing.Any):Description for dwAppCookie - -Returns: - - None - - """ - pass - - -class PyIMessage(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetReadFlag(self,flag:'typing.Any') -> 'None': - """ - Sets the read flags for a message - -Args: - - flag(typing.Any):Bitmask of flags that controls the setting of a message's read flag - that is, the message's MSGFLAG_READ flag in its PR_MESSAGE_FLAGS property and the processing of read reports. - -Returns: - - None - - """ - pass - - - def GetAttachmentTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - Returns the message's attachment table. - -Args: - - flags(typing.Any):Bitmask of flags that relate to the creation of the table. - -Returns: - - PyIMAPITable - - """ - pass - - - def OpenAttach(self,attachmentNum:'typing.Any',interface:'PyIID',flags:'typing.Any') -> 'PyIAttach': - """ - Opens an attachment - -Args: - - attachmentNum(typing.Any): - interface(PyIID):The interface to use, or None - flags(typing.Any):Bitmask of flags that controls how the attachment is opened. - -Returns: - - PyIAttach - - """ - pass - - - def CreateAttach(self,interface:'PyIID',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIAttach]': - """ - Creates an attachment - -Args: - - interface(PyIID):The interface to use, or None - flags(typing.Any):Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) - -Returns: - - typing.Tuple[typing.Any, PyIAttach]:Bitmask of flags that controls how the attachment is created.Return ValueThe result is a tuple of (attachmentNum, attachmentObject) - - - """ - pass - - - def DeleteAttach(self,attachmentNum:'typing.Any',ulUIParam:'typing.Any',interface:'typing.Any',flags:'typing.Any') -> 'None': - """ - Deletes an attachment - -Args: - - attachmentNum(typing.Any): - ulUIParam(typing.Any): - interface(typing.Any):The interface to use, or None - flags(typing.Any):Bitmask of flags that controls the display of a user interface. - -Returns: - - None - - """ - pass - - - def ModifyRecipients(self,flags:'typing.Any',mods:'typing.Any') -> 'None': - """ - adds, deletes, or modifies message recipients. - -Args: - - flags(typing.Any):Bitmask of flags that controls the recipient changes. If zero is passed for the ulFlags parameter, ModifyRecipients replaces all existing recipients with the recipient list in the mods parameter. - mods(typing.Any):The list of recipients. - -Returns: - - None - - """ - pass - - - def GetRecipientTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - Returns the message's recipient table. - -Args: - - flags(typing.Any):Bitmask of flags that relate to the creation of the table. - -Returns: - - PyIMAPITable - - """ - pass - - - def SubmitMessage(self,flags:'typing.Any') -> 'None': - """ - Saves all of the message's properties and marks the message as ready to be sent. - -Args: - - flags(typing.Any):Flags which specify how the message is submitted. - -Returns: - - None - - """ - pass - - -class PyIMoniker(object): - """A Python interface to IMoniker""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BindToObject(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker',iidResult:'typing.Any') -> 'PyIUnknown': - """ - Uses the moniker to bind to the object it identifies. - -Args: - - bindCtx(PyIBindCtx):bind context object to be used. - moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None - iidResult(typing.Any):IID of the result object. - -Returns: - - PyIUnknown - - """ - pass - - - def BindToStorage(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker',iidResult:'typing.Any') -> 'PyIUnknown': - """ - Retrieves an interface object to the storage that contains the - -object identified by the moniker. - -Args: - - bindCtx(PyIBindCtx):bind context object to be used. - moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None - iidResult(typing.Any):IID of the result object. - -Returns: - - PyIUnknown - - """ - pass - - - def GetDisplayName(self,bindCtx:'PyIBindCtx',moniker:'PyIMoniker') -> 'str': - """ - Gets the display name , which is a user-readable representation of this - -moniker. - -Args: - - bindCtx(PyIBindCtx):bind context object to be used. - moniker(PyIMoniker):If the moniker is part of a composite moniker, otherwise None - -Returns: - - str - - """ - pass - - - def ComposeWith(self,mkRight:'PyIMoniker',fOnlyIfNotGeneric:'typing.Any') -> 'PyIMoniker': - """ - Combines the current moniker with another moniker, creating a new - -composite moniker. - -Args: - - mkRight(PyIMoniker):The IMoniker interface on the moniker to compose onto the end of this moniker. - fOnlyIfNotGeneric(typing.Any):If TRUE, the caller requires a non-generic composition, so the operation should proceed only if pmkRight is a moniker class that this moniker can compose with in some way other than forming a generic composite. If FALSE, the method can create a generic composite if necessary. - -Returns: - - PyIMoniker - - """ - pass - - - def Enum(self,fForward:'typing.Any'=True) -> 'PyIEnumMoniker': - """ - Supplies an enumerator that can enumerate the components of a composite - -moniker. - -Args: - - fForward(typing.Any):If TRUE, enumerates the monikers from left to right. If FALSE, enumerates from right to left. - -Returns: - - PyIEnumMoniker - - """ - pass - - - def IsEqual(self,other:'PyIMoniker') -> 'typing.Any': - """ - Compares this moniker with a specified moniker and indicates whether they are - -identical. - -Args: - - other(PyIMoniker):The moniker to compare - -Returns: - - typing.Any - - """ - pass - - - def IsSystemMoniker(self,) -> 'typing.Any': - """ - Indicates whether this moniker is of one of the system-supplied moniker - -classes. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Hash(self,) -> 'typing.Any': - """ - Calculates a 32-bit integer using the internal state of the moniker. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIMsgServiceAdmin(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns the last error code for the object. - -Args: - - hr(typing.Any):Contains the error code generated in the previous method call. - flags(typing.Any):Indicates for format for the output. - -Returns: - - typing.Any - - """ - pass - - - def CreateMsgService(self,serviceName:'str',displayName:'str',flags:'typing.Any',uiParam:'typing.Any'=0) -> 'None': - """ - Creates a message service. - -Args: - - serviceName(str):The name of the service. - displayName(str):Display name of the service, or None - flags(typing.Any):A bitmask of flags that controls how the message service is installed. - uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. - -Returns: - - None - - """ - pass - - - def ConfigureMsgService(self,iid:'PyIID',ulUIParam:'typing.Any',ulFlags:'typing.Any',arg:'typing.List[typing.Any]') -> 'None': - """ - Reconfigures a message service. - -Args: - - iid(PyIID):The unique identifier for the message service to configure. - ulUIParam(typing.Any):Handle of the parent window for the configuration property sheet. - ulFlags(typing.Any):Bitmask of flags that controls the display of the property sheet. - arg(typing.List[typing.Any]):Property values describing the properties to display in the property sheet. Should not be None if the service is to be configured without a message service. - -Returns: - - None - - """ - pass - - - def GetMsgServiceTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - Retrieves a table of services. - -Args: - - flags(typing.Any): - -Returns: - - PyIMAPITable - - """ - pass - - - def GetProviderTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - Retrieves a table of service providers. - -Args: - - flags(typing.Any): - -Returns: - - PyIMAPITable - - """ - pass - - - def DeleteMsgService(self,uuid:'PyIID') -> 'None': - """ - Deletes the specified service - -Args: - - uuid(PyIID):The ID of the service - -Returns: - - None - - """ - pass - - - def RenameMsgService(self,uuid:'PyIID',flags:'typing.Any',newName:'str') -> 'None': - """ - Renames the specified service - -Args: - - uuid(PyIID):The ID of the service - flags(typing.Any): - newName(str):The new name for the service.CommentsThis is deprecated, and there is no replacement referenced to use instead. - -Returns: - - None - - """ - pass - - - def OpenProfileSection(self,uuid:'PyIID',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': - """ - Opens a profile section - -Args: - - uuid(PyIID):The ID of the service - iid(PyIID):The IID of the resulting object, or None for the default - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - - def AdminProviders(self,uuid:'PyIID',flags:'typing.Any') -> 'typing.Any': - """ - Returns an object providing access - -to a provider administration object. - -Args: - - uuid(PyIID):The ID of the service - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - -class PyIMsgStore(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OpenEntry(self,entryId:'str',iid:'PyIID',flags:'typing.Any') -> 'typing.Any': - """ - Opens a folder or message and returns an interface object for further access. - -Args: - - entryId(str):The entryID of the object - iid(PyIID):The IID of the object to return, or None for the default IID - flags(typing.Any):Bitmask of flags that controls how the object is opened. - -Returns: - - typing.Any - - """ - pass - - - def GetReceiveFolder(self,messageClass:'str'=None,flags:'typing.Any'=0) -> 'typing.Tuple[PyIID, str]': - """ - Obtains the folder that was established as the destination for incoming messages of a specified message class or the default receive folder for the message store. - -Args: - - messageClass(str):Message class that is associated with a receive folder. If this parameter is set to None or an empty string, GetReceiveFolder returns the default receive folder for the message store. - flags(typing.Any): - -Returns: - - typing.Tuple[PyIID, str] - - """ - pass - - - def GetReceiveFolderTable(self,flags:'typing.Any') -> 'PyIMAPITable': - """ - provides access to the receive folder table, a table that includes information about all of the receive folders for the message store. - -Args: - - flags(typing.Any):Bitmask of flags that controls table access - -Returns: - - PyIMAPITable - - """ - pass - - - def CompareEntryIDs(self,entryId:'str',entryId1:'str',flags:'typing.Any'=0) -> 'typing.Any': - """ - Compares two entry identifiers belonging to a particular address book provider to determine if they refer to the same address book object - -Args: - - entryId(str):The first entry ID to be compared - entryId1(str):The second entry ID to be compared - flags(typing.Any):Reserved - must be zero.Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - -Returns: - - typing.Any:Reserved - must be zero. -Return ValueThe result is set to TRUE if the two entry identifiers refer to the same object, and FALSE otherwise. - - - """ - pass - - - def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns the last error code for the object. - -Args: - - hr(typing.Any):Contains the error code generated in the previous method call. - flags(typing.Any):Indicates for format for the output. - -Returns: - - typing.Any - - """ - pass - - - def AbortSubmit(self,entryId:'str',flags:'typing.Any'=0) -> 'typing.Any': - """ - Attempts to remove a message from the outgoing queue. - -Args: - - entryId(str):The entry ID of the item to be aborted. - flags(typing.Any):Reserved - must be zero. - -Returns: - - typing.Any - - """ - pass - - - def Advise(self,entryId:'str',eventMask:'typing.Any',adviseSink:'typing.Any') -> 'None': - """ - Registers to receive notification of specified events that affect the message store. - -Args: - - entryId(str):entry identifier of the folder or message about which notifications should be generated, or None - eventMask(typing.Any):A mask of values that indicate the types of notification events. - adviseSink(typing.Any):An advise sink. - -Returns: - - None - - """ - pass - - - def Unadvise(self,connection:'typing.Any') -> 'None': - """ - Cancels the sending of notifications previously set up with a call to the IMsgStore::Advise method. - -Args: - - connection(typing.Any):Connection number returned from PyIMsgStore::Advise - -Returns: - - None - - """ - pass - - -class PyINameSpaceTreeControl(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,hwndParent:'typing.Union[typing.Any]',prc:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',nsctsFlags:'typing.Any') -> 'None': - """ - Description of Initialize. - -Args: - - hwndParent(typing.Union[typing.Any]):Description for hwndParent - prc(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prc - nsctsFlags(typing.Any):Description for nsctsFlags - -Returns: - - None - - """ - pass - - - def TreeAdvise(self,punk:'PyIUnknown') -> 'None': - """ - Description of TreeAdvise. - -Args: - - punk(PyIUnknown):Description for punk - -Returns: - - None - - """ - pass - - - def TreeUnadvise(self,dwCookie:'typing.Any') -> 'None': - """ - Description of TreeUnadvise. - -Args: - - dwCookie(typing.Any):Description for dwCookie - -Returns: - - None - - """ - pass - - - def AppendRoot(self,psiRoot:'PyIShellItem',grfEnumFlags:'typing.Any',grfRootStyle:'typing.Any',pif:'typing.Any') -> 'None': - """ - Description of AppendRoot. - -Args: - - psiRoot(PyIShellItem):Description for psiRoot - grfEnumFlags(typing.Any):Description for grfEnumFlags - grfRootStyle(typing.Any):Description for grfRootStyle - pif(typing.Any):Description for pif - -Returns: - - None - - """ - pass - - - def InsertRoot(self,iIndex:'typing.Any',psiRoot:'PyIShellItem',grfEnumFlags:'typing.Any',grfRootStyle:'typing.Any',pif:'typing.Any') -> 'None': - """ - Description of InsertRoot. - -Args: - - iIndex(typing.Any):Description for iIndex - psiRoot(PyIShellItem):Description for psiRoot - grfEnumFlags(typing.Any):Description for grfEnumFlags - grfRootStyle(typing.Any):Description for grfRootStyle - pif(typing.Any):Description for pif - -Returns: - - None - - """ - pass - - - def RemoveRoot(self,psiRoot:'PyIShellItem') -> 'None': - """ - Description of RemoveRoot. - -Args: - - psiRoot(PyIShellItem):Description for psiRoot - -Returns: - - None - - """ - pass - - - def RemoveAllRoots(self,) -> 'None': - """ - Description of RemoveAllRoots. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetRootItems(self,) -> 'None': - """ - Description of GetRootItems. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetItemState(self,psi:'PyIShellItem',nstcisMask:'typing.Any',nstcisFlags:'typing.Any') -> 'None': - """ - Description of SetItemState. - -Args: - - psi(PyIShellItem):Description for psi - nstcisMask(typing.Any):Description for nstcisMask - nstcisFlags(typing.Any):Description for nstcisFlags - -Returns: - - None - - """ - pass - - - def GetItemState(self,psi:'PyIShellItem',nstcisMask:'typing.Any') -> 'None': - """ - Description of GetItemState. - -Args: - - psi(PyIShellItem):Description for psi - nstcisMask(typing.Any):Description for nstcisMask - -Returns: - - None - - """ - pass - - - def GetSelectedItems(self,) -> 'None': - """ - Description of GetSelectedItems. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetItemCustomState(self,psi:'PyIShellItem') -> 'None': - """ - Description of GetItemCustomState. - -Args: - - psi(PyIShellItem):Description for psi - -Returns: - - None - - """ - pass - - - def SetItemCustomState(self,psi:'PyIShellItem',iStateNumber:'typing.Any') -> 'None': - """ - Description of SetItemCustomState. - -Args: - - psi(PyIShellItem):Description for psi - iStateNumber(typing.Any):Description for iStateNumber - -Returns: - - None - - """ - pass - - - def EnsureItemVisible(self,psi:'PyIShellItem') -> 'None': - """ - Description of EnsureItemVisible. - -Args: - - psi(PyIShellItem):Description for psi - -Returns: - - None - - """ - pass - - - def SetTheme(self,pszTheme:'typing.Any') -> 'None': - """ - Description of SetTheme. - -Args: - - pszTheme(typing.Any):Description for pszTheme - -Returns: - - None - - """ - pass - - - def GetNextItem(self,psi:'PyIShellItem',nstcgi:'typing.Any') -> 'None': - """ - Description of GetNextItem. - -Args: - - psi(PyIShellItem):Description for psi - nstcgi(typing.Any):Description for nstcgi - -Returns: - - None - - """ - pass - - - def HitTest(self,pt:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Description of HitTest. - -Args: - - pt(typing.Tuple[typing.Any, typing.Any]):Description for ppt - -Returns: - - None - - """ - pass - - - def GetItemRect(self,) -> 'None': - """ - Description of GetItemRect. - -Args: - - - -Returns: - - None - - """ - pass - - - def CollapseAll(self,) -> 'None': - """ - Description of CollapseAll. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyINamedPropertyStore(object): - """Contains a collection of properties indentified by name""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetNamedValue(self,Name:'typing.Any') -> 'PyPROPVARIANT': - """ - Retrieves a property value by name - -Args: - - Name(typing.Any):Name of the property - -Returns: - - PyPROPVARIANT - - """ - pass - - - def SetNamedValue(self,propvar:'typing.Any') -> 'None': - """ - Sets the value of a property - -Args: - - propvar(typing.Any):Description for propvar - -Returns: - - None - - """ - pass - - - def GetNameCount(self,) -> 'typing.Any': - """ - Retrieves the number of named properties in the store - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetNameAt(self,Index:'typing.Any') -> 'typing.Any': - """ - Retrieves a property name by zero-based index - -Args: - - Index(typing.Any):Index of the property name - -Returns: - - typing.Any - - """ - pass - - -class PyIObjectArray(object): - """Holds a collection of interface objects""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'typing.Any': - """ - Returns number of objects in collection - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetAt(self,Index:'typing.Any',riid:'PyIID') -> 'PyIUnknown': - """ - Retrieves an item by zero-based index - -Args: - - Index(typing.Any):Index of item to retrieve - riid(PyIID):The interface to return - -Returns: - - PyIUnknown - - """ - pass - - -class PyIObjectCollection(object): - """Modifiable container for a number of IUnknown objects""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddObject(self,punk:'PyIUnknown') -> 'None': - """ - Adds a single object to the collection - -Args: - - punk(PyIUnknown):Object to be added - -Returns: - - None - - """ - pass - - - def AddFromArray(self,Source:'PyIObjectArray') -> 'None': - """ - None - -Args: - - Source(PyIObjectArray):Objects to be added to the collection - -Returns: - - None - - """ - pass - - - def RemoveObjectAt(self,Index:'typing.Any') -> 'None': - """ - Removes a single object from the collection - -Args: - - Index(typing.Any):Zero-based index of item to remove - -Returns: - - None - - """ - pass - - - def Clear(self,) -> 'None': - """ - Empties the container. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIObjectWithPropertyKey(object): - """Interface implemented by objects that have an associated property id""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetPropertyKey(self,key:'PyPROPERTYKEY') -> 'None': - """ - Sets the property id - -Args: - - key(PyPROPERTYKEY):The identifier of the property - -Returns: - - None - - """ - pass - - - def GetPropertyKey(self,) -> 'PyPROPERTYKEY': - """ - Returns the property id - -Args: - - - -Returns: - - PyPROPERTYKEY - - """ - pass - - -class PyIObjectWithSite(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetSite(self,pUnkSite:'typing.Any') -> 'None': - """ - Description of SetSite. - -Args: - - pUnkSite(typing.Any):Description for pUnkSite - -Returns: - - None - - """ - pass - - - def GetSite(self,riid:'PyIID') -> 'None': - """ - Description of GetSite. - -Args: - - riid(PyIID):Description for riid - -Returns: - - None - - """ - pass - - -class PyIOleClientSite(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SaveObject(self,) -> 'None': - """ - Description of SaveObject. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetMoniker(self,dwAssign:'typing.Any',dwWhichMoniker:'typing.Any') -> 'None': - """ - Description of GetMoniker. - -Args: - - dwAssign(typing.Any):Description for dwAssign - dwWhichMoniker(typing.Any):Description for dwWhichMoniker - -Returns: - - None - - """ - pass - - - def GetContainer(self,) -> 'None': - """ - Description of GetContainer. - -Args: - - - -Returns: - - None - - """ - pass - - - def ShowObject(self,) -> 'None': - """ - Description of ShowObject. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnShowWindow(self,fShow:'typing.Any') -> 'None': - """ - Description of OnShowWindow. - -Args: - - fShow(typing.Any):Description for fShow - -Returns: - - None - - """ - pass - - - def RequestNewObjectLayout(self,) -> 'None': - """ - Description of RequestNewObjectLayout. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleCommandTarget(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryStatus(self,) -> 'None': - """ - Description of QueryStatus. - -Args: - - - -Returns: - - None - - """ - pass - - - def Exec(self,) -> 'None': - """ - Description of Exec. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleControl(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetControlInfo(self,) -> 'None': - """ - Description of GetControlInfo. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnMnemonic(self,msg:'typing.Any') -> 'None': - """ - Description of OnMnemonic. - -Args: - - msg(typing.Any):A tuple representing a MSG structure. - -Returns: - - None - - """ - pass - - - def OnAmbientPropertyChange(self,dispID:'typing.Any') -> 'None': - """ - Description of OnAmbientPropertyChange. - -Args: - - dispID(typing.Any):Description for dispID - -Returns: - - None - - """ - pass - - - def FreezeEvents(self,bFreeze:'typing.Any') -> 'None': - """ - Description of FreezeEvents. - -Args: - - bFreeze(typing.Any):Description for bFreeze - -Returns: - - None - - """ - pass - - -class PyIOleControlSite(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnControlInfoChanged(self,) -> 'None': - """ - Description of OnControlInfoChanged. - -Args: - - - -Returns: - - None - - """ - pass - - - def LockInPlaceActive(self,fLock:'typing.Any') -> 'None': - """ - Description of LockInPlaceActive. - -Args: - - fLock(typing.Any):Description for fLock - -Returns: - - None - - """ - pass - - - def GetExtendedControl(self,) -> 'None': - """ - Description of GetExtendedControl. - -Args: - - - -Returns: - - None - - """ - pass - - - def TransformCoords(self,PtlHimetric:'typing.Tuple[typing.Any, typing.Any]',pPtfContainer:'typing.Tuple[float, float]',dwFlags:'typing.Any') -> 'None': - """ - Description of TransformCoords. - -Args: - - PtlHimetric(typing.Tuple[typing.Any, typing.Any]):Description for pPtlHimetric - pPtfContainer(typing.Tuple[float, float]):Description for pPtfContainer - dwFlags(typing.Any):Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, a tuple of ((int, int), (float, float)) - -Returns: - - None:Description for dwFlagsReturn ValueThe result is a tuple of the transformed input points - ie, - -a tuple of ((int, int), (float, float)) - - - """ - pass - - - def TranslateAccelerator(self,pMsg:'PyMSG',grfModifiers:'typing.Any') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - pMsg(PyMSG):Description for pMsg - grfModifiers(typing.Any):Description for grfModifiers - -Returns: - - None - - """ - pass - - - def OnFocus(self,fGotFocus:'typing.Any') -> 'None': - """ - Description of OnFocus. - -Args: - - fGotFocus(typing.Any):Description for fGotFocus - -Returns: - - None - - """ - pass - - - def ShowPropertyFrame(self,) -> 'None': - """ - Description of ShowPropertyFrame. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceActiveObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def TranslateAccelerator(self,lpmsg:'PyMSG') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - lpmsg(PyMSG):Description for lpmsg - -Returns: - - None - - """ - pass - - - def OnFrameWindowActivate(self,fActivate:'typing.Any') -> 'None': - """ - Description of OnFrameWindowActivate. - -Args: - - fActivate(typing.Any):Description for fActivate - -Returns: - - None - - """ - pass - - - def OnDocWindowActivate(self,fActivate:'typing.Any') -> 'None': - """ - Description of OnDocWindowActivate. - -Args: - - fActivate(typing.Any):Description for fActivate - -Returns: - - None - - """ - pass - - - def ResizeBorder(self,rcBorder:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pUIWindow:'PyIOleInPlaceUIWindow',fFrameWindow:'typing.Any') -> 'None': - """ - Description of ResizeBorder. - -Args: - - rcBorder(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcBorder - pUIWindow(PyIOleInPlaceUIWindow):Description for pUIWindow - fFrameWindow(typing.Any):Description for fFrameWindow - -Returns: - - None - - """ - pass - - - def EnableModeless(self,fEnable:'typing.Any') -> 'None': - """ - Description of EnableModeless. - -Args: - - fEnable(typing.Any):Description for fEnable - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceFrame(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InsertMenus(self,hmenuShared:'typing.Union[typing.Any]',menuWidths:'PyOLEMENUGROUPWIDTHS') -> 'None': - """ - Description of InsertMenus. - -Args: - - hmenuShared(typing.Union[typing.Any]):Description for hmenuShared - menuWidths(PyOLEMENUGROUPWIDTHS): - -Returns: - - None - - """ - pass - - - def SetMenu(self,hmenuShared:'typing.Union[typing.Any]',holemenu:'typing.Union[typing.Any]',hwndActiveObject:'typing.Union[typing.Any]') -> 'None': - """ - Description of SetMenu. - -Args: - - hmenuShared(typing.Union[typing.Any]):Description for hmenuShared - holemenu(typing.Union[typing.Any]):Description for holemenu - hwndActiveObject(typing.Union[typing.Any]):Description for hwndActiveObject - -Returns: - - None - - """ - pass - - - def RemoveMenus(self,hmenuShared:'typing.Union[typing.Any]') -> 'None': - """ - Description of RemoveMenus. - -Args: - - hmenuShared(typing.Union[typing.Any]):Description for hmenuShared - -Returns: - - None - - """ - pass - - - def SetStatusText(self,pszStatusText:'typing.Any') -> 'None': - """ - Description of SetStatusText. - -Args: - - pszStatusText(typing.Any):Description for pszStatusText - -Returns: - - None - - """ - pass - - - def EnableModeless(self,fEnable:'typing.Any') -> 'None': - """ - Description of EnableModeless. - -Args: - - fEnable(typing.Any):Description for fEnable - -Returns: - - None - - """ - pass - - - def TranslateAccelerator(self,lpmsg:'PyMSG',wID:'typing.Any') -> 'None': - """ - Description of TranslateAccelerator. - -Args: - - lpmsg(PyMSG):Description for lpmsg - wID(typing.Any):Description for wID - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InPlaceDeactivate(self,) -> 'None': - """ - Description of InPlaceDeactivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def UIDeactivate(self,) -> 'None': - """ - Description of UIDeactivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetObjectRects(self,) -> 'None': - """ - Description of SetObjectRects. - -Args: - - - -Returns: - - None - - """ - pass - - - def ReactivateAndUndo(self,) -> 'None': - """ - Description of ReactivateAndUndo. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceSite(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CanInPlaceActivate(self,) -> 'None': - """ - Description of CanInPlaceActivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnInPlaceActivate(self,) -> 'None': - """ - Description of OnInPlaceActivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnUIActivate(self,) -> 'None': - """ - Description of OnUIActivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetWindowContext(self,) -> 'None': - """ - Description of GetWindowContext. - -Args: - - - -Returns: - - None - - """ - pass - - - def Scroll(self,) -> 'None': - """ - Description of Scroll. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnUIDeactivate(self,fUndoable:'typing.Any') -> 'None': - """ - Description of OnUIDeactivate. - -Args: - - fUndoable(typing.Any):Description for fUndoable - -Returns: - - None - - """ - pass - - - def OnInPlaceDeactivate(self,) -> 'None': - """ - Description of OnInPlaceDeactivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def DiscardUndoState(self,) -> 'None': - """ - Description of DiscardUndoState. - -Args: - - - -Returns: - - None - - """ - pass - - - def DeactivateAndUndo(self,) -> 'None': - """ - Description of DeactivateAndUndo. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnPosRectChange(self,) -> 'None': - """ - Description of OnPosRectChange. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceSiteEx(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnInPlaceActivateEx(self,dwFlags:'typing.Any') -> 'None': - """ - Description of OnInPlaceActivateEx. - -Args: - - dwFlags(typing.Any):Description for dwFlags - -Returns: - - None - - """ - pass - - - def OnInPlaceDeactivateEx(self,fNoRedraw:'typing.Any') -> 'None': - """ - Description of OnInPlaceDeactivateEx. - -Args: - - fNoRedraw(typing.Any):Description for fNoRedraw - -Returns: - - None - - """ - pass - - - def RequestUIActivate(self,) -> 'None': - """ - Description of RequestUIActivate. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceSiteWindowless(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CanWindowlessActivate(self,) -> 'None': - """ - Description of CanWindowlessActivate. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCapture(self,) -> 'None': - """ - Description of GetCapture. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetCapture(self,fCapture:'typing.Any') -> 'None': - """ - Description of SetCapture. - -Args: - - fCapture(typing.Any):Description for fCapture - -Returns: - - None - - """ - pass - - - def GetFocus(self,) -> 'None': - """ - Description of GetFocus. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFocus(self,fFocus:'typing.Any') -> 'None': - """ - Description of SetFocus. - -Args: - - fFocus(typing.Any):Description for fFocus - -Returns: - - None - - """ - pass - - - def GetDC(self,grfFlags:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Description of GetDC. - -Args: - - grfFlags(typing.Any):Description for grfFlags - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): - -Returns: - - None - - """ - pass - - - def ReleaseDC(self,hDC:'typing.Any') -> 'None': - """ - Description of ReleaseDC. - -Args: - - hDC(typing.Any):Description for hDC - -Returns: - - None - - """ - pass - - - def InvalidateRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',fErase:'typing.Any') -> 'None': - """ - Description of InvalidateRect. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): - fErase(typing.Any):Description for fErase - -Returns: - - None - - """ - pass - - - def InvalidateRgn(self,hRgn:'typing.Any',fErase:'typing.Any') -> 'None': - """ - Description of InvalidateRgn. - -Args: - - hRgn(typing.Any):Handle to a region - fErase(typing.Any):Description for fErase - -Returns: - - None - - """ - pass - - - def ScrollRect(self,dx:'typing.Any',dy:'typing.Any') -> 'None': - """ - Description of ScrollRect. - -Args: - - dx(typing.Any):Description for dx - dy(typing.Any):Description for dy - -Returns: - - None - - """ - pass - - - def AdjustRect(self,) -> 'None': - """ - Description of AdjustRect. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnDefWindowMessage(self,msg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'None': - """ - Description of OnDefWindowMessage. - -Args: - - msg(typing.Any):Description for msg - wParam(typing.Any):Description for wParam - lParam(typing.Any):Description for lParam - -Returns: - - None - - """ - pass - - -class PyIOleInPlaceUIWindow(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetBorder(self,) -> 'None': - """ - Description of GetBorder. - -Args: - - - -Returns: - - None - - """ - pass - - - def RequestBorderSpace(self,borderwidths:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Description of RequestBorderSpace. - -Args: - - borderwidths(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for pborderwidths - -Returns: - - None - - """ - pass - - - def SetBorderSpace(self,borderwidths:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Description of SetBorderSpace. - -Args: - - borderwidths(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for pborderwidths - -Returns: - - None - - """ - pass - - - def SetActiveObject(self,pActiveObject:'PyIOleInPlaceActiveObject',pszObjName:'typing.Any') -> 'None': - """ - Description of SetActiveObject. - -Args: - - pActiveObject(PyIOleInPlaceActiveObject):Description for pActiveObject - pszObjName(typing.Any):Description for pszObjName - -Returns: - - None - - """ - pass - - -class PyIOleObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetClientSite(self,pClientSite:'PyIOleClientSite') -> 'None': - """ - Description of SetClientSite. - -Args: - - pClientSite(PyIOleClientSite):Description for pClientSite - -Returns: - - None - - """ - pass - - - def GetClientSite(self,) -> 'None': - """ - Description of GetClientSite. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetHostNames(self,szContainerApp:'typing.Any',szContainerObj:'typing.Any') -> 'None': - """ - Description of SetHostNames. - -Args: - - szContainerApp(typing.Any):Description for szContainerApp - szContainerObj(typing.Any):Description for szContainerObj - -Returns: - - None - - """ - pass - - - def Close(self,dwSaveOption:'typing.Any') -> 'None': - """ - Description of Close. - -Args: - - dwSaveOption(typing.Any):Description for dwSaveOption - -Returns: - - None - - """ - pass - - - def SetMoniker(self,dwWhichMoniker:'typing.Any',pmk:'PyIMoniker') -> 'None': - """ - Description of SetMoniker. - -Args: - - dwWhichMoniker(typing.Any):Description for dwWhichMoniker - pmk(PyIMoniker):Description for pmk - -Returns: - - None - - """ - pass - - - def GetMoniker(self,dwAssign:'typing.Any',dwWhichMoniker:'typing.Any') -> 'None': - """ - Description of GetMoniker. - -Args: - - dwAssign(typing.Any):Description for dwAssign - dwWhichMoniker(typing.Any):Description for dwWhichMoniker - -Returns: - - None - - """ - pass - - - def InitFromData(self,pDataObject:'PyIDataObject',fCreation:'typing.Any',dwReserved:'typing.Any') -> 'None': - """ - Description of InitFromData. - -Args: - - pDataObject(PyIDataObject):Description for pDataObject - fCreation(typing.Any):Description for fCreation - dwReserved(typing.Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def GetClipboardData(self,dwReserved:'typing.Any') -> 'None': - """ - Description of GetClipboardData. - -Args: - - dwReserved(typing.Any):Description for dwReserved - -Returns: - - None - - """ - pass - - - def DoVerb(self,iVerb:'typing.Any',msg:'PyMSG',pActiveSite:'PyIOleClientSite',lindex:'typing.Any',hwndParent:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Description of DoVerb. - -Args: - - iVerb(typing.Any):Description for iVerb - msg(PyMSG):MSG tuple, a-la win32gui etc. - pActiveSite(PyIOleClientSite):Description for pActiveSite - lindex(typing.Any):Description for lindex - hwndParent(typing.Any):Description for hwndParent - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]): - -Returns: - - None - - """ - pass - - - def EnumVerbs(self,) -> 'None': - """ - Description of EnumVerbs. - -Args: - - - -Returns: - - None - - """ - pass - - - def Update(self,) -> 'None': - """ - Description of Update. - -Args: - - - -Returns: - - None - - """ - pass - - - def IsUpToDate(self,) -> 'None': - """ - Description of IsUpToDate. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetUserClassID(self,) -> 'None': - """ - Description of GetUserClassID. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetUserType(self,dwFormOfType:'typing.Any') -> 'None': - """ - Description of GetUserType. - -Args: - - dwFormOfType(typing.Any):Description for dwFormOfType - -Returns: - - None - - """ - pass - - - def SetExtent(self,dwDrawAspect:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Description of SetExtent. - -Args: - - dwDrawAspect(typing.Any):Description for dwDrawAspect - size(typing.Tuple[typing.Any, typing.Any]):Size limit for the object. - -Returns: - - None - - """ - pass - - - def GetExtent(self,dwDrawAspect:'typing.Any',size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Description of GetExtent. - -Args: - - dwDrawAspect(typing.Any):Description for dwDrawAspect - size(typing.Tuple[typing.Any, typing.Any]):Size limit for the object. - -Returns: - - None - - """ - pass - - - def Advise(self,pAdvSink:'typing.Any') -> 'None': - """ - Description of Advise. - -Args: - - pAdvSink(typing.Any):Description for pAdvSink - -Returns: - - None - - """ - pass - - - def Unadvise(self,dwConnection:'typing.Any') -> 'None': - """ - Description of Unadvise. - -Args: - - dwConnection(typing.Any):Description for dwConnection - -Returns: - - None - - """ - pass - - - def EnumAdvise(self,) -> 'None': - """ - Description of EnumAdvise. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetMiscStatus(self,dwAspect:'typing.Any') -> 'None': - """ - Description of GetMiscStatus. - -Args: - - dwAspect(typing.Any):Description for dwAspect - -Returns: - - None - - """ - pass - - - def SetColorScheme(self,) -> 'None': - """ - Description of SetColorScheme. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIOleWindow(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetWindow(self,) -> 'None': - """ - Description of GetWindow. - -Args: - - - -Returns: - - None - - """ - pass - - - def ContextSensitiveHelp(self,fEnterMode:'typing.Any') -> 'None': - """ - Description of ContextSensitiveHelp. - -Args: - - fEnterMode(typing.Any):Description for fEnterMode - -Returns: - - None - - """ - pass - - -class PyIPersist(object): - """A Python interface to IPersist""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetClassID(self,) -> 'PyIID': - """ - Returns the class identifier (CLSID) for the component object. - -Args: - - - -Returns: - - PyIID - - """ - pass - - -class PyIPersistFile(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsDirty(self,) -> 'None': - """ - Checks an object for changes since it was last saved to its current file. - -Args: - - - -Returns: - - None:PyIPersistFile.IsDirty -IsDirty()Checks an object for changes since it was last saved to its current file. -Return ValueThis method returns the raw COM error code without raising the normal COM exception. - -You should treat any error return codes as an indication that the object has changed. - -Unless this method explicitly returns S_FALSE, assume that the object must be saved. - - - """ - pass - - - def Load(self,FileName:'typing.Any',Mode:'typing.Any') -> 'None': - """ - Opens the specified file and initializes an object from the file contents. - -Args: - - FileName(typing.Any):Absolute path of the file to open - Mode(typing.Any):Specifies the access mode from the STGM enumeration. - -Returns: - - None - - """ - pass - - - def Save(self,FileName:'typing.Any',fRemember:'typing.Any') -> 'None': - """ - Saves the object into the specified file. - -Args: - - FileName(typing.Any):absolute path of the file where the object is saved. - fRemember(typing.Any):Specifies whether the file is to be the current working file or not. - -Returns: - - None - - """ - pass - - - def SaveCompleted(self,FileName:'typing.Any') -> 'None': - """ - Notifies the object that it can revert from NoScribble mode to Normal mode. - -Args: - - FileName(typing.Any):Absolute path of the file where the object was saved. - -Returns: - - None - - """ - pass - - - def GetCurFile(self,) -> 'typing.Any': - """ - Gets the current name of the file associated with the object. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIPersistFolder(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,pidl:'PyIDL') -> 'None': - """ - Description of Initialize. - -Args: - - pidl(PyIDL):Description for pidl - -Returns: - - None - - """ - pass - - -class PyIPersistFolder2(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCurFolder(self,) -> 'None': - """ - Description of GetCurFolder. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIPersistPropertyBag(object): - """A Python wrapper for a COM IPersistPropertyBag interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InitNew(self,) -> 'None': - """ - Called by the container when the control is initialized to initialize the - -property bag. - -Args: - - - -Returns: - - None - - """ - pass - - - def Load(self,bag:'PyIPropertyBag',log:'PyIErrorLog'=None) -> 'None': - """ - Called by the container to load the control's properties. - -Args: - - bag(PyIPropertyBag):the caller's property bag. - log(PyIErrorLog):the caller's error log, or None - -Returns: - - None - - """ - pass - - - def Save(self,bag:'PyIPropertyBag',clearDirty:'typing.Any',saveProperties:'typing.Any') -> 'None': - """ - Called by the container to save the object's properties. - -Args: - - bag(PyIPropertyBag):the caller's property bag. - clearDirty(typing.Any):Specifies whether to clear the dirty flag. - saveProperties(typing.Any):Specifies whether to save all properties or just those that have changed - -Returns: - - None - - """ - pass - - -class PyIPersistSerializedPropStorage(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetFlags(self,flags:'typing.Any') -> 'None': - """ - Sets flags for the store - -Args: - - flags(typing.Any):Combination of pscon.FPSPS_* values - -Returns: - - None - - """ - pass - - - def SetPropertyStorage(self,ps:'typing.Any') -> 'None': - """ - Initializes the store with a serialized buffer - -Args: - - ps(typing.Any):Bytes or buffer object containing a serialized property store - -Returns: - - None - - """ - pass - - - def GetPropertyStorage(self,) -> 'typing.Any': - """ - Retrieves the current contents of the property - -store - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIPersistStorage(object): - """A Python wrapper of a COM IPersistStorage interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsDirty(self,) -> 'typing.Any': - """ - Checks the object for changes since it was last saved. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def InitNew(self,PyIStorage:'PyIStorage') -> 'None': - """ - Initializes a new object, providing a storage object to be used for the object. - -Args: - - PyIStorage(PyIStorage):PyIStorage for the new storage object to be initialized. The container creates a nested storage object in its storage object (see PyIStorage::CreateStorage). Then, the container calls the PyIPersistStorage::WriteClassStg function to initialize the new storage object with the object class identifier (CLSID). - -Returns: - - None - - """ - pass - - - def Load(self,storage:'PyIStorage') -> 'None': - """ - Loads an object from its existing storage. - -Args: - - storage(PyIStorage):Existing storage for the object. - -Returns: - - None - - """ - pass - - - def Save(self,PyIStorage:'PyIStorage',_int:'typing.Any') -> 'None': - """ - None - -Args: - - PyIStorage(PyIStorage):Storage for the object - _int(typing.Any):Indicates whether the specified storage object is the current one. This parameter is set to FALSE when performing a Save As or Save A Copy To operation or when performing a full save. In the latter case, this method saves to a temporary file, deletes the original file, and renames the temporary file. This parameter is set to TRUE to perform a full save in a low-memory situation or to perform a fast incremental save in which only the dirty components are saved. - -Returns: - - None - - """ - pass - - - def SaveCompleted(self,PyIStorage:'PyIStorage') -> 'None': - """ - None - -Args: - - PyIStorage(PyIStorage):The current storage object - -Returns: - - None - - """ - pass - - - def HandsOffStorage(self,) -> 'None': - """ - Instructs the object to release all storage objects that have been - -passed to it by its container and to enter HandsOff mode, in which the object cannot do anything and the only - -operation that works is a close operation. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIPersistStream(object): - """A Python interface to IPersistStream""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsDirty(self,) -> 'typing.Any': - """ - Checks the object for changes since it was last saved. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Load(self,stream:'PyIStream') -> 'None': - """ - Initializes an object from the stream where it was previously saved. - -Args: - - stream(PyIStream):Stream object to load from.CommentsThis method loads an object from its associated stream. The seek pointer is set as it was in the most recent PyIPersistStream::Save method. This method can seek and read from the stream, but cannot write to it.On exit, the seek pointer must be in the same position it was in on entry, immediately past the end of the data. - -Returns: - - None - - """ - pass - - - def Save(self,stream:'PyIStream',bClearDirty:'typing.Any') -> 'None': - """ - Saves an object to the specified stream. - -Args: - - stream(PyIStream):The stream to save to. - bClearDirty(typing.Any):Indicates whether to clear the dirty flag after the save is complete - -Returns: - - None - - """ - pass - - - def GetSizeMax(self,) -> 'ULARGE_INTEGER': - """ - Returns the size in bytes of the stream needed to save the - -object. - -Args: - - - -Returns: - - ULARGE_INTEGER - - """ - pass - - -class PyIPersistStreamInit(object): - """A Python interface to IPersistStreamInit""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InitNew(self,) -> 'None': - """ - Initializes the object to a default state. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIProcessDebugManager(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateApplication(self,) -> 'None': - """ - Description of CreateApplication. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDefaultApplication(self,) -> 'None': - """ - Description of GetDefaultApplication. - -Args: - - - -Returns: - - None - - """ - pass - - - def AddApplication(self,pda:'PyIDebugApplication') -> 'None': - """ - Description of AddApplication. - -Args: - - pda(PyIDebugApplication):Description for pda - -Returns: - - None - - """ - pass - - - def RemoveApplication(self,dwAppCookie:'typing.Any') -> 'None': - """ - Description of RemoveApplication. - -Args: - - dwAppCookie(typing.Any):Description for dwAppCookie - -Returns: - - None - - """ - pass - - - def CreateDebugDocumentHelper(self,unkOuter:'typing.Any') -> 'None': - """ - Description of CreateDebugDocumentHelper. - -Args: - - unkOuter(typing.Any):The outer object for aggregation, or (usually!) None - -Returns: - - None - - """ - pass - - -class PyIProfAdmin(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetLastError(self,hr:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns the last error code for the object. - -Args: - - hr(typing.Any):Contains the error code generated in the previous method call. - flags(typing.Any):Indicates for format for the output. - -Returns: - - typing.Any - - """ - pass - - - def CreateProfile(self,oldProfileName:'str',Password:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': - """ - Creates a new profile. - -Args: - - oldProfileName(str):The name of the new profile. - Password(str):Must be None - uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def DeleteProfile(self,oldProfileName:'str',flags:'typing.Any'=0) -> 'None': - """ - Deletes a profile. - -Args: - - oldProfileName(str):The name of the profile to be deleted. - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def CopyProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': - """ - Copies a profile. - -Args: - - oldProfileName(str):The name of the profile to copy. - Password(str):Must be None - newProfileName(str):The new name of the copied profile. - uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def RenameProfile(self,oldProfileName:'str',Password:'str',newProfileName:'str',uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'None': - """ - Assigns a new name to a profile. - -Args: - - oldProfileName(str):The current name of the profile to rename. - Password(str):Must be None - newProfileName(str):The new name of the profile to rename. - uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def SetDefaultProfile(self,profileName:'str',flags:'typing.Any'=0) -> 'None': - """ - Sets or clears a client's default profile. - -Args: - - profileName(str):The name of the profile that will become the default, or None. Setting profileName to None indicates that SetDefaultProfile should remove the existing default profile, leaving the client without a default. - flags(typing.Any): - -Returns: - - None - - """ - pass - - - def AdminServices(self,profileName:'str',Password:'str'=None,uiParam:'typing.Any'=0,flags:'typing.Any'=0) -> 'PyIProfAdmin': - """ - Provides access to a message service administration object for making changes to the message services in a profile. - -Args: - - profileName(str):The name of the profile to be modified. - Password(str): - uiParam(typing.Any):A handle of the parent window for any dialog boxes or windows that this method displays. - flags(typing.Any): - -Returns: - - PyIProfAdmin - - """ - pass - - -class PyIPropertyBag(object): - """A Python wrapper for a COM IPropertyBag interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Read(self,propName:'typing.Any',propType:'typing.Any',errorLog:'PyIErrorLog'=None) -> 'typing.Any': - """ - Called by the control to read a property from the storage provided by the - -container. - -Args: - - propName(typing.Any):Name of the property to read. - propType(typing.Any):The type of the object to read. Must be a VT_* Variant Type constant. - errorLog(PyIErrorLog):The caller's PyIErrorLog object in which the property bag stores any errors that occur during reads. Can be None in which case the caller is not interested in errors.CommentsThe result is a Python object, mapped from a COM VARIANT of type as specified in the propType parameter. - -Returns: - - typing.Any - - """ - pass - - - def Write(self,propName:'typing.Any',value:'typing.Any') -> 'None': - """ - Called by the control to write each property in turn to the storage provided by the - -container. - -Args: - - propName(typing.Any):Name of the property to read. - value(typing.Any):The value for the property. The value must be able to be converted to a COM VARIANT. - -Returns: - - None - - """ - pass - - -class PyIPropertyChange(object): - """Interface used to specify a change to a property""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ApplyToPropVariant(self,OrigVal:'PyPROPVARIANT') -> 'PyPROPVARIANT': - """ - Applies the change to a variant value - -Args: - - OrigVal(PyPROPVARIANT):The value to be modified - -Returns: - - PyPROPVARIANT - - """ - pass - - -class PyIPropertyChangeArray(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'typing.Any': - """ - Returns the number of changes in the array - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetAt(self,Index:'typing.Any',riid:'PyIID') -> 'PyIPropertyChange': - """ - Retrieves a change by zero-based index - -Args: - - Index(typing.Any):Index of the change to retrieve - riid(PyIID):The interface to return - -Returns: - - PyIPropertyChange - - """ - pass - - - def InsertAt(self,Index:'typing.Any',PropChange:'PyIPropertyChange') -> 'None': - """ - Inserts a change at a specific position - -Args: - - Index(typing.Any):Position at which to place the change - PropChange(PyIPropertyChange):The change to be added - -Returns: - - None - - """ - pass - - - def Append(self,PropChange:'PyIPropertyChange') -> 'None': - """ - Adds a change to the end of the array - -Args: - - PropChange(PyIPropertyChange):The change to be added - -Returns: - - None - - """ - pass - - - def AppendOrReplace(self,PropChange:'PyIPropertyChange') -> 'None': - """ - Adds a change, or replaces if an identical property key is already - -in container - -Args: - - PropChange(PyIPropertyChange):The change to be added or replaced - -Returns: - - None - - """ - pass - - - def RemoveAt(self,Index:'typing.Any') -> 'None': - """ - Removes a change from the array - -Args: - - Index(typing.Any):Index of change to be removed - -Returns: - - None - - """ - pass - - - def IsKeyInArray(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Checks if array contains a change to a property - -Args: - - key(PyPROPERTYKEY):Property key to look for - -Returns: - - typing.Any - - """ - pass - - -class PyIPropertyDescription(object): - """Gives access to the details of a property definition""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPropertyKey(self,) -> 'PyPROPERTYKEY': - """ - Returns the unique identifier for a property - -Args: - - - -Returns: - - PyPROPERTYKEY - - """ - pass - - - def GetCanonicalName(self,) -> 'typing.Any': - """ - Returns the name of the property - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetPropertyType(self,) -> 'typing.Any': - """ - Returns the variant type of the property (VT_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetDisplayName(self,) -> 'typing.Any': - """ - Returns the property name as shown in the UI - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetEditInvitation(self,) -> 'typing.Any': - """ - Returns the input prompt used in edit controls - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTypeFlags(self,mask:'typing.Any') -> 'typing.Any': - """ - Returns type flags for the property - -Args: - - mask(typing.Any):Specifies which flags to retrieve (PDTF_*) - -Returns: - - typing.Any - - """ - pass - - - def GetViewFlags(self,) -> 'typing.Any': - """ - Returns the view flags that control how the property is displayed - -(PDVF_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetDefaultColumnWidth(self,) -> 'typing.Any': - """ - Returns the default width in characters - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetDisplayType(self,) -> 'typing.Any': - """ - Returns the display type (PDDT_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetColumnState(self,) -> 'typing.Any': - """ - Returns flags that control how property is displayed in column - -(SHCOLSTATE_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetGroupingRange(self,) -> 'typing.Any': - """ - Returns property's grouping attributes (PDGR_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetRelativeDescriptionType(self,) -> 'typing.Any': - """ - Returns the relative description type (PDRDT_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetRelativeDescription(self,var1:'PyPROPVARIANT',var2:'PyPROPVARIANT') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Compares two values - -Args: - - var1(PyPROPVARIANT):The first value - var2(PyPROPVARIANT):The second value - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetSortDescription(self,) -> 'typing.Any': - """ - Returns value that determines how sorting options are - -displayed (PDSD_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSortDescriptionLabel(self,Descending:'typing.Any') -> 'typing.Any': - """ - Returns description of current sort order - -Args: - - Descending(typing.Any):Indicates if order is reversed - -Returns: - - typing.Any - - """ - pass - - - def GetAggregationType(self,) -> 'typing.Any': - """ - Describes how properties for multiple items are displayed - -(PDAT_*) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetConditionType(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns options that determine how the property is used - -to build a search query - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any]:PyIPropertyDescription.GetConditionType - -(int, int) = GetConditionType()Returns options that determine how the property is used - -to build a search query -Return ValueReturns the condition type (PDCOT_*) and default operation (COP_*) - - - """ - pass - - - def GetEnumTypeList(self,riid:'PyIID') -> 'PyIPropertyEnumTypeList': - """ - Returns an interface used for querying - -valid property range - -Args: - - riid(PyIID):IID of the requested interface - -Returns: - - PyIPropertyEnumTypeList - - """ - pass - - - def CoerceToCanonicalValue(self,Value:'PyPROPVARIANT') -> 'typing.Any': - """ - Converts a variant value to the exact type expected by - -the property - -Args: - - Value(PyPROPVARIANT):The property value to be convertedCommentsThis method mutates the PyPROPVARIANT in place. It may be cleared on failure.Return ValueReturns the HRESULT from the operation on success. - -Returns: - - typing.Any:The property value to be convertedComments - -This method mutates the PyPROPVARIANT in place. It may be cleared on failure. -Return ValueReturns the HRESULT from the operation on success. - - - """ - pass - - - def FormatForDisplay(self,Value:'PyPROPVARIANT',Flags:'typing.Any') -> 'typing.Any': - """ - Converts a value to its string representation - -Args: - - Value(PyPROPVARIANT):The value to be formatted - Flags(typing.Any):Combination of PROPDESC_FORMAT_FLAGS (PDFF_*) - -Returns: - - typing.Any - - """ - pass - - - def IsValueCanonical(self,Value:'typing.Any') -> 'typing.Any': - """ - Determines if a value exactly matches the specification for - -the property - -Args: - - Value(typing.Any):The value to check - -Returns: - - typing.Any - - """ - pass - - -class PyIPropertyDescriptionAliasInfo(object): - """Interface that gives access to the sorting columns for a property""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetSortByAlias(self,riid:'PyIID') -> 'PyIPropertyDescription': - """ - Returns the primary column used - -for sorting - -Args: - - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescription - - """ - pass - - - def GetAdditionalSortByAliases(self,riid:'PyIID') -> 'PyIPropertyDescriptionList': - """ - Returns secondary - -sorting columns - -Args: - - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescriptionList - - """ - pass - - -class PyIPropertyDescriptionList(object): - """Container for a number of property descriptions""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'typing.Any': - """ - Gets the number of properties in the list - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetAt(self,Elem:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescription': - """ - Retrieves a description from the list - -Args: - - Elem(typing.Any):Index of the element to return - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescription - - """ - pass - - -class PyIPropertyDescriptionSearchInfo(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetSearchInfoFlags(self,) -> 'typing.Any': - """ - Returns flags controlling how property is indexed - -Args: - - - -Returns: - - typing.Any:PyIPropertyDescriptionSearchInfo.GetSearchInfoFlags - -int = GetSearchInfoFlags()Returns flags controlling how property is indexed -Return ValueReturns a combination of PROPDESC_SEARCHINFO_FLAGS values - - - """ - pass - - - def GetColumnIndexType(self,) -> 'typing.Any': - """ - Returns flags indicating type of property - -Args: - - - -Returns: - - typing.Any:PyIPropertyDescriptionSearchInfo.GetColumnIndexType - -int = GetColumnIndexType()Returns flags indicating type of property -Return ValueReturns a value from the PROPDESC_COLUMNINDEX_TYPE enum - - - """ - pass - - - def GetProjectionString(self,) -> 'typing.Any': - """ - Returns the canonical name of the property - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetMaxSize(self,) -> 'typing.Any': - """ - Returns the maximum size specified in search options - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIPropertyEnumType(object): - """Contains information about an allowable value or range for a property""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetEnumType(self,) -> 'typing.Any': - """ - Retrieves the type (PROPENUMTYPE) - -Args: - - - -Returns: - - typing.Any:PyIPropertyEnumType.GetEnumType - -int = GetEnumType()Retrieves the type (PROPENUMTYPE) -Return Valuepscon.PET_* - - - """ - pass - - - def GetValue(self,) -> 'PyPROPVARIANT': - """ - Retrieves the defined value - -Args: - - - -Returns: - - PyPROPVARIANT - - """ - pass - - - def GetRangeMinValue(self,) -> 'PyPROPVARIANT': - """ - Returns the minimum allowed value for the property - -Args: - - - -Returns: - - PyPROPVARIANT - - """ - pass - - - def GetRangeSetValue(self,) -> 'PyPROPVARIANT': - """ - Returns a fixed value defined for the property - -Args: - - - -Returns: - - PyPROPVARIANT - - """ - pass - - - def GetDisplayText(self,) -> 'None': - """ - Returns the display text for the enumerated type - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIPropertyEnumTypeList(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'typing.Any': - """ - Returns the number of objects in the list - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetAt(self,itype:'typing.Any',riid:'PyIID') -> 'PyIPropertyEnumType': - """ - Retrieves an item by index - -Args: - - itype(typing.Any):Zero based index of type to return - riid(PyIID):The interface to return - -Returns: - - PyIPropertyEnumType - - """ - pass - - - def FindMatchingIndex(self,Cmp:'PyPROPVARIANT') -> 'typing.Any': - """ - Attempts to match the specified value to one of the allowable - -values for the property - -Args: - - Cmp(PyPROPVARIANT):A value to match against the defined values of the property - -Returns: - - typing.Any - - """ - pass - - -class PyIPropertySetStorage(object): - """Container for a collection of property sets. - -Can be iterated over to enumerate property sets.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Create(self,fmtid:'PyIID',clsid:'PyIID',Flags:'typing.Any',Mode:'typing.Any') -> 'PyIPropertyStorage': - """ - Creates a new property set in the storage object - -Args: - - fmtid(PyIID):GUID identifying a property set, pythoncom.FMTID_* - clsid(PyIID):CLSID of property set handler, usually same as fmtid - Flags(typing.Any):Specifies behaviour of property set, storagecon.PROPSETFLAG_* - Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags - -Returns: - - PyIPropertyStorage - - """ - pass - - - def Open(self,fmtid:'PyIID',Mode:'typing.Any') -> 'PyIPropertyStorage': - """ - Opens an existing property set - -Args: - - fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* - Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags - -Returns: - - PyIPropertyStorage - - """ - pass - - - def Delete(self,fmtid:'PyIID') -> 'None': - """ - Removes a property set from this storage object - -Args: - - fmtid(PyIID):GUID of a property set, pythoncom.FMTID_* - -Returns: - - None - - """ - pass - - - def Enum(self,) -> 'PyIEnumSTATPROPSETSTG': - """ - Creates an iterator to enumerate contained property - -sets - -Args: - - - -Returns: - - PyIEnumSTATPROPSETSTG - - """ - pass - - -class PyIPropertyStorage(object): - """Structured storage object that contains a set of properties. - -Supports iteration to list properties.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ReadMultiple(self,props:'typing.Tuple[PROPSPEC, ...]') -> 'typing.Tuple[typing.Any, ...]': - """ - Reads specified properties from the current property set. - -Args: - - props(typing.Tuple[PROPSPEC, ...]):Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type - -Returns: - - typing.Tuple[typing.Any, ...]:Sequence of property IDs or names.Return ValueReturned values are automatically converted to an appropriate python type - - - """ - pass - - - def WriteMultiple(self,props:'typing.Tuple[PROPSPEC, ...]',values:'typing.Tuple[typing.Any, ...]',propidNameFirst:'typing.Any'=2) -> 'None': - """ - Creates or modifies properties in the property set - -Args: - - props(typing.Tuple[PROPSPEC, ...]):Sequence containing names or integer ids of properties to write - values(typing.Tuple[typing.Any, ...]):The values for the properties. - propidNameFirst(typing.Any):Minimum property id to be assigned to new properties specified by name - -Returns: - - None - - """ - pass - - - def DeleteMultiple(self,props:'typing.Tuple[PROPSPEC, ...]') -> 'None': - """ - Deletes properties from the property set - -Args: - - props(typing.Tuple[PROPSPEC, ...]):Sequence containing names or IDs of properties to be deleted - -Returns: - - None - - """ - pass - - - def ReadPropertyNames(self,props:'typing.Tuple[typing.Any, ...]') -> 'typing.Tuple[typing.Any, ...]': - """ - Retrieves any existing string names for the specified - -property identifiers. - -Args: - - props(typing.Tuple[typing.Any, ...]):Sequence of ints containing property IDs. - -Returns: - - typing.Tuple[typing.Any, ...] - - """ - pass - - - def WritePropertyNames(self,props:'typing.Tuple[typing.Any, ...]',names:'typing.Tuple[str, ...]') -> 'None': - """ - Assigns string names to a specified array of property IDs in the - -current property set. - -Args: - - props(typing.Tuple[typing.Any, ...]):Sequence containing the property IDs. - names(typing.Tuple[str, ...]):Equal length sequence of property names. - -Returns: - - None - - """ - pass - - - def DeletePropertyNames(self,props:'typing.Tuple[typing.Any, ...]') -> 'None': - """ - Removes property names from specified properties. - -Args: - - props(typing.Tuple[typing.Any, ...]):Sequence of ints containing property IDs. - -Returns: - - None - - """ - pass - - - def Commit(self,CommitFlags:'typing.Any') -> 'None': - """ - Persists the property set to its base storage - -Args: - - CommitFlags(typing.Any):Combination of storagecon.STGC_* flags - -Returns: - - None - - """ - pass - - - def Revert(self,) -> 'None': - """ - Discards any changes that have been made - -Args: - - - -Returns: - - None - - """ - pass - - - def Enum(self,) -> 'PyIEnumSTATPROPSTG': - """ - Creates an enumerator for properties in the property set - -Args: - - - -Returns: - - PyIEnumSTATPROPSTG - - """ - pass - - - def SetTimes(self,ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': - """ - Sets the creation, last access, and modification time - -Args: - - ctime(PyTime):Creation time, or None for no change - atime(PyTime):Last access time, or None for no change - mtime(PyTime):Modification time, or None for no changeCommentsSome property sets do not support these times. - -Returns: - - None - - """ - pass - - - def SetClass(self,clsid:'PyIID') -> 'None': - """ - Sets the GUID for the property set - -Args: - - clsid(PyIID):Description for clsid - -Returns: - - None - - """ - pass - - - def Stat(self,) -> 'typing.Any': - """ - Returns various infomation about the property set - -Args: - - - -Returns: - - typing.Any:PyIPropertyStorage.Stat - -tuple = Stat()Returns various infomation about the property set -Return ValueReturns a tuple representing a STATPROPSETSTG struct. - - - """ - pass - - -class PyIPropertyStore(object): - """Contains a collection of properties""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCount(self,) -> 'typing.Any': - """ - Returns the number of properties in the store - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetAt(self,iProp:'typing.Any') -> 'PyPROPERTYKEY': - """ - Returns the property key for the specified property - -Args: - - iProp(typing.Any):Zero-based index of property - -Returns: - - PyPROPERTYKEY - - """ - pass - - - def GetValue(self,Key:'PyPROPERTYKEY') -> 'PyPROPVARIANT': - """ - Retrieves the value of a property - -Args: - - Key(PyPROPERTYKEY):Property key as returned by PyIPropertyStore::GetAt - -Returns: - - PyPROPVARIANT - - """ - pass - - - def SetValue(self,Key:'PyPROPERTYKEY',Value:'PyPROPVARIANT') -> 'None': - """ - Sets the value of a property - -Args: - - Key(PyPROPERTYKEY):Property key (see PyIPropertyStore::GetAt) - Value(PyPROPVARIANT):Variant value which can be converted to the appropriate variant type for the property Pass a VT_EMPTY variant to indicate that the property should be removed. - -Returns: - - None - - """ - pass - - - def Commit(self,) -> 'None': - """ - Commits property changes - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIPropertyStoreCache(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetState(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Retrieves the current state of a property - -Args: - - key(PyPROPERTYKEY):Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) - -Returns: - - typing.Any:Property identifierReturn ValueA value from the PSC_STATE enum (PSC_NORMAL, PSC_NOTINSOURCE. PSC_DIRTY) - - - """ - pass - - - def GetValueAndState(self,key:'PyPROPERTYKEY') -> 'typing.Tuple[PyPROPVARIANT, typing.Any]': - """ - Retrieves the current value and state of a - -property - -Args: - - key(PyPROPERTYKEY):Property identifier - -Returns: - - typing.Tuple[PyPROPVARIANT, typing.Any] - - """ - pass - - - def SetState(self,key:'PyPROPERTYKEY',state:'typing.Any') -> 'None': - """ - Sets the state of a property - -Args: - - key(PyPROPERTYKEY):Property identifier - state(typing.Any):Value from the PSC_STATE enum (pscon.PSC_*) - -Returns: - - None - - """ - pass - - - def SetValueAndState(self,key:'PyPROPERTYKEY',value:'PyPROPVARIANT',state:'typing.Any') -> 'None': - """ - Sets the value and state of a property - -Args: - - key(PyPROPERTYKEY):Property identifier - value(PyPROPVARIANT):The new value - state(typing.Any):The new state (pscon.PSC_*) - -Returns: - - None - - """ - pass - - -class PyIPropertyStoreCapabilities(object): - """Property providers use this interface to indicate whether properties are - -writeable.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsPropertyWritable(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Asks provider if a property can be editted. - -Args: - - key(PyPROPERTYKEY):Property identifier - -Returns: - - typing.Any - - """ - pass - - -class PyIPropertySystem(object): - """Wraps the IPropertySystem interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPropertyDescription(self,Key:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescription': - """ - Returns an interface used to describe a - -property - -Args: - - Key(PyPROPERTYKEY):Fmtid and propertyid that uniquely identifies a property - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescription - - """ - pass - - - def GetPropertyDescriptionByName(self,CanonicalName:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescription': - """ - Returns an interface used to - -describe a property - -Args: - - CanonicalName(typing.Any):Registered name of the property - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescription - - """ - pass - - - def GetPropertyDescriptionListFromString(self,PropList:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescriptionList': - """ - Retrieves property - -descriptions from a string of property names - -Args: - - PropList(typing.Any):String containing a list of properties and flags - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescriptionList - - """ - pass - - - def EnumeratePropertyDescriptions(self,Filter:'typing.Any',riid:'PyIID') -> 'PyIPropertyDescriptionList': - """ - Returns an interface used to - -list defined properties - -Args: - - Filter(typing.Any):Value from PROPDESC_ENUMFILTER (pscon.PDEF_*) that limits what types of properties are listed - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescriptionList - - """ - pass - - - def FormatForDisplay(self,Key:'PyPROPERTYKEY',Value:'PyPROPVARIANT',Flags:'typing.Any') -> 'typing.Any': - """ - Formats a property into a string - -Args: - - Key(PyPROPERTYKEY):Fmtid and property id that identifies the property - Value(PyPROPVARIANT):The value to format - Flags(typing.Any):Combination of PROPDESC_FORMAT_FLAGS (pscon.PDFF_*) indicating formatting options - -Returns: - - typing.Any - - """ - pass - - - def RegisterPropertySchema(self,Path:'typing.Any') -> 'None': - """ - Registers a set of properties defined in a .propdesc file - -Args: - - Path(typing.Any):Path to a property schema XML file (.propdesc) - -Returns: - - None - - """ - pass - - - def UnregisterPropertySchema(self,Path:'typing.Any') -> 'None': - """ - Removes a set of registered properties - -Args: - - Path(typing.Any):Path to a property schema XML file (.propdesc) - -Returns: - - None - - """ - pass - - - def RefreshPropertySchema(self,) -> 'None': - """ - Not currently implemented by the OS - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIProvideClassInfo(object): - """A Python interface to IProvideClassInfo""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetClassInfo(self,) -> 'PyITypeInfo': - """ - Gets information about the CO_CLASS. - -Args: - - - -Returns: - - PyITypeInfo - - """ - pass - - -class PyIProvideClassInfo2(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetGUID(self,flags:'typing.Any') -> 'PyIID': - """ - Gets the GUID for the object. - -Args: - - flags(typing.Any):The flags for the GUID. - -Returns: - - PyIID - - """ - pass - - -class PyIProvideExpressionContexts(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnumExpressionContexts(self,) -> 'None': - """ - Description of EnumStackFrames. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIProvideTaskPage(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPage(self,tpType:'typing.Any',PersistChanges:'typing.Any') -> 'None': - """ - Return a property sheet page handle for the spedified type - -(TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) - -Args: - - tpType(typing.Any):Type of page to retreive (TASKPAGE_TASK,TASKPAGE_SCHEDULE,TASKPAGE_SETTINGS) - PersistChanges(typing.Any):Indicates if changes should be saved automaticallyCommentsThere's not yet anything useful that can be done with this handle - return type subject to change - -Returns: - - None - - """ - pass - - -class PyIQueryAssociations(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Init(self,flags:'typing.Any',assoc:'str',hkeyProgId:'PyHKEY'=None,hwnd:'int'=None) -> 'None': - """ - Initializes the IQueryAssociations interface and sets the root key to the - -appropriate ProgID. - -Args: - - flags(typing.Any):One of shellcon.ASSOCF_* flags - assoc(str):The string data (ie, extension, prog-id, etc) - hkeyProgId(PyHKEY):Root registry key, can be None - hwnd(int):Reserved, must be 0 or None - -Returns: - - None - - """ - pass - - - def GetKey(self,flags:'typing.Any',assocKey:'typing.Any',arg:'str') -> 'typing.Any': - """ - Searches for and retrieves a file association-related key from the - -registry. - -Args: - - flags(typing.Any):Used to control the search. - assocKey(typing.Any):Specifies the type of key that is to be returned. - arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used. - -Returns: - - typing.Any - - """ - pass - - - def GetString(self,flags:'typing.Any',assocStr:'typing.Any',arg:'str') -> 'typing.Any': - """ - Searches for and retrieves a file association-related string from the - -registry. - -Args: - - flags(typing.Any):Used to control the search. - assocStr(typing.Any):Specifies the type of string that is to be returned. - arg(str):Optional string with information about the location of the key. It is normally set to a shell verb such as 'open'. Set this parameter to None if it is not used.CommentsNote that ASSOCF_NOTRUNCATE semantics are currently not supported - the buffer passed is 2048 bytes long, and will be truncated by the shell if too small. - -Returns: - - typing.Any - - """ - pass - - -class PyIRelatedItem(object): - """Interface used as the base for objects that have a related shell item - -(eg ITransferMediumItem, IDisplayItem, etc). Should not be used directly.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetItemIDList(self,) -> 'PyIDL': - """ - Returns the ID list of the related item - -Args: - - - -Returns: - - PyIDL - - """ - pass - - - def GetItem(self,) -> 'PyIShellItem': - """ - Returns the related item - -Args: - - - -Returns: - - PyIShellItem - - """ - pass - - -class PyIRemoteDebugApplication(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ResumeFromBreakPoint(self,prptFocus:'PyIRemoteDebugApplicationThread',bra:'typing.Any',era:'typing.Any') -> 'None': - """ - Continue an application which is currently in a breakpoint. - -Args: - - prptFocus(PyIRemoteDebugApplicationThread):Description for prptFocus - bra(typing.Any):Break resume action - era(typing.Any):Error resume action - -Returns: - - None - - """ - pass - - - def CauseBreak(self,) -> 'None': - """ - Causes the application to break into the debugger at the earliest - -opportunity. - -Args: - - - -Returns: - - None - - """ - pass - - - def ConnectDebugger(self,pad:'PyIApplicationDebugger') -> 'None': - """ - Connects a debugger to the application. - -Args: - - pad(PyIApplicationDebugger):Description for padCommentsOnly one debugger may be connected at a time; this method fails if there is already a debugger connected. - -Returns: - - None - - """ - pass - - - def DisconnectDebugger(self,) -> 'None': - """ - Disconnects the current debugger from the application. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDebugger(self,) -> 'PyIApplicationDebugger': - """ - Returns the current debugger connected to - -the application. - -Args: - - - -Returns: - - PyIApplicationDebugger - - """ - pass - - - def CreateInstanceAtApplication(self,rclsid:'PyIID',pUnkOuter:'PyIUnknown',dwClsContext:'typing.Any',riid:'PyIID') -> 'PyIUnknown': - """ - Create objects in the application - -process address space. - -Args: - - rclsid(PyIID):Description for rclsid - pUnkOuter(PyIUnknown):Description for pUnkOuter - dwClsContext(typing.Any):Description for dwClsContext - riid(PyIID):Description for riidCommentsProvides a mechanism for the debugger IDE, running out-of-process to the application, to create objects in the application process. This method simply delegates to CoCreateInstance. - -Returns: - - PyIUnknown - - """ - pass - - - def QueryAlive(self,) -> 'None': - """ - Returns True if alive, else False. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumThreads(self,) -> 'PyIEnumRemoteDebugApplicationThreads': - """ - Enumerates all threads known - -to be associated with the application. - -Args: - - - -Returns: - - PyIEnumRemoteDebugApplicationThreads - - """ - pass - - - def GetName(self,) -> 'None': - """ - Description of GetName. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetRootNode(self,) -> 'PyIDebugApplicationNode': - """ - Returns the application node under which - -all nodes associated with the application are added. - -Args: - - - -Returns: - - PyIDebugApplicationNode - - """ - pass - - - def EnumGlobalExpressionContexts(self,) -> 'typing.Any': - """ - Enumerates all - -global expression contexts - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIRemoteDebugApplicationEvents(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnConnectDebugger(self,pad:'PyIApplicationDebugger') -> 'None': - """ - Description of OnConnectDebugger. - -Args: - - pad(PyIApplicationDebugger):Description for pad - -Returns: - - None - - """ - pass - - - def OnDisconnectDebugger(self,) -> 'None': - """ - Description of OnDisconnectDebugger. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnSetName(self,pstrName:'typing.Any') -> 'None': - """ - Description of OnSetName. - -Args: - - pstrName(typing.Any):Description for pstrName - -Returns: - - None - - """ - pass - - - def OnDebugOutput(self,pstr:'typing.Any') -> 'None': - """ - Description of OnDebugOutput. - -Args: - - pstr(typing.Any):Description for pstr - -Returns: - - None - - """ - pass - - - def OnClose(self,) -> 'None': - """ - Description of OnClose. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnEnterBreakPoint(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': - """ - Description of OnEnterBreakPoint. - -Args: - - prdat(PyIRemoteDebugApplicationThread):Description for prdat - -Returns: - - None - - """ - pass - - - def OnLeaveBreakPoint(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': - """ - Description of OnLeaveBreakPoint. - -Args: - - prdat(PyIRemoteDebugApplicationThread):Description for prdat - -Returns: - - None - - """ - pass - - - def OnCreateThread(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': - """ - Description of OnCreateThread. - -Args: - - prdat(PyIRemoteDebugApplicationThread):Description for prdat - -Returns: - - None - - """ - pass - - - def OnDestroyThread(self,prdat:'PyIRemoteDebugApplicationThread') -> 'None': - """ - Description of OnDestroyThread. - -Args: - - prdat(PyIRemoteDebugApplicationThread):Description for prdat - -Returns: - - None - - """ - pass - - - def OnBreakFlagChange(self,abf:'typing.Any',prdatSteppingThread:'PyIRemoteDebugApplicationThread') -> 'None': - """ - Description of OnBreakFlagChange. - -Args: - - abf(typing.Any):Description for abf - prdatSteppingThread(PyIRemoteDebugApplicationThread):Description for prdatSteppingThread - -Returns: - - None - - """ - pass - - -class PyIRemoteDebugApplicationThread(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetSystemThreadId(self,) -> 'None': - """ - Description of GetSystemThreadId. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetApplication(self,) -> 'None': - """ - Description of GetApplication. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumStackFrames(self,) -> 'None': - """ - Description of EnumStackFrames. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDescription(self,) -> 'None': - """ - Description of GetDescription. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetNextStatement(self,pStackFrame:'PyIDebugStackFrame',pCodeContext:'PyIDebugCodeContext') -> 'None': - """ - Description of SetNextStatement. - -Args: - - pStackFrame(PyIDebugStackFrame):Description for pStackFrame - pCodeContext(PyIDebugCodeContext):Description for pCodeContext - -Returns: - - None - - """ - pass - - - def GetState(self,) -> 'None': - """ - Description of GetState. - -Args: - - - -Returns: - - None - - """ - pass - - - def Suspend(self,) -> 'None': - """ - Description of Suspend. - -Args: - - - -Returns: - - None - - """ - pass - - - def Resume(self,) -> 'None': - """ - Description of Resume. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSuspendCount(self,) -> 'None': - """ - Description of GetSuspendCount. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIRunningObjectTable(object): - """A Python interface to IRunningObjectTable""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Register(self,) -> 'typing.Any': - """ - Registers an object and its identifying moniker in the Running Object - -Table (ROT). - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Revoke(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsRunning(self,objectName:'PyIMoniker') -> 'typing.Any': - """ - Checks whether an object is running. - -Args: - - objectName(PyIMoniker):The PyIMoniker interface on the moniker to search for in the Running Object Table.Return ValueDescriptionS_OK (ie, 0)The object identified by objectName is running.S_FALSE (ie, 1)There is no entry for objectName in the ROT, or that the object it identifies is no longer running (in which case, the entry is revoked). - -Returns: - - typing.Any - - """ - pass - - - def GetObject(self,objectName:'PyIMoniker') -> 'PyIUnknown': - """ - Checks whether an object is running. - -Args: - - objectName(PyIMoniker):The PyIMoniker interface on the moniker to search for in the Running Object Table. - -Returns: - - PyIUnknown - - """ - pass - - - def EnumRunning(self,) -> 'PyIEnumMoniker': - """ - Creates an enumerator that can list the monikers of - -all the objects currently registered in the Running Object Table (ROT). - -Args: - - - -Returns: - - PyIEnumMoniker - - """ - pass - - -class PyIScheduledWorkItem(object): - """Python object that encapsulates the IScheduledWorkItem interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateTrigger(self,) -> 'typing.Tuple[typing.Any, PyITaskTrigger]': - """ - Creates a new trigger for a task, returns index and - -new ITaskTrigger interface - -Args: - - - -Returns: - - typing.Tuple[typing.Any, PyITaskTrigger] - - """ - pass - - - def DeleteTrigger(self,Trigger:'typing.Any') -> 'None': - """ - Deletes specified trigger - -Args: - - Trigger(typing.Any):Index of trigger to delete - -Returns: - - None - - """ - pass - - - def GetTriggerCount(self,) -> 'typing.Any': - """ - Returns number of triggers defined for the task - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTrigger(self,iTrigger:'typing.Any') -> 'PyITaskTrigger': - """ - Retrieves ITaskTrigger interface for specified trigger - -index - -Args: - - iTrigger(typing.Any):Index of trigger to retrieve - -Returns: - - PyITaskTrigger - - """ - pass - - - def GetTriggerString(self,) -> 'typing.Any': - """ - Creates a human-readable summary of specified trigger - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetRunTimes(self,Count:'typing.Any',Begin:'PyTime',End:'PyTime') -> 'typing.Tuple[PyTime, typing.Any, typing.Any, typing.Any]': - """ - Return specified number of run times within given time - -frame - -Args: - - Count(typing.Any):Number of run times to retrieve - Begin(PyTime):Start time, defaults to current time if not passed or None - End(PyTime):End time, defaults to unlimited if not passed or None - -Returns: - - typing.Tuple[PyTime, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetNextRunTime(self,) -> 'PyTime': - """ - Returns next time that task is scheduled to run - -Args: - - - -Returns: - - PyTime - - """ - pass - - - def SetIdleWait(self,wIdleMinutes:'typing.Any',wDeadlineMinutes:'typing.Any') -> 'None': - """ - Sets idle parms for task with trigger of type TASK_EVENT_TRIGGER_ON_IDLE - -Args: - - wIdleMinutes(typing.Any):Nbr of minutes computer must be idle before task fires - wDeadlineMinutes(typing.Any):Maximum nbr of minutes task will wait for computer to become idle - -Returns: - - None - - """ - pass - - - def GetIdleWait(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Gets IdleMinutes and DeadlineMinutes parms for task with trigger - -of type TASK_EVENT_TRIGGER_ON_IDLE - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def Run(self,) -> 'None': - """ - Starts task - -Args: - - - -Returns: - - None - - """ - pass - - - def Terminate(self,) -> 'None': - """ - Terminate process if task is running - -Args: - - - -Returns: - - None - - """ - pass - - - def EditWorkItem(self,hParent:'int',dwReserved:'typing.Any') -> 'None': - """ - Brings up standard Scheduled Task dialog - -Args: - - hParent(int):Reserved, use 0 or None if passed - dwReserved(typing.Any):Reserved, use 0 if passed - -Returns: - - None - - """ - pass - - - def GetMostRecentRunTime(self,) -> 'PyTime': - """ - Returns last time task ran - -Args: - - - -Returns: - - PyTime - - """ - pass - - - def GetStatus(self,) -> 'typing.Any': - """ - Returns status (SCHED_S_TASK... constants) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetExitCode(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns tuple of task's exit code and error returned to Task - -Scheduler if process could not start - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def SetComment(self,Comment:'typing.Any') -> 'None': - """ - Set comment string for task - -Args: - - Comment(typing.Any):Freeform comment string - -Returns: - - None - - """ - pass - - - def GetComment(self,) -> 'str': - """ - Return comment string associated with task. - -Args: - - - -Returns: - - str - - """ - pass - - - def SetCreator(self,Creator:'typing.Any') -> 'None': - """ - Specify who (or what) created task, can be any string - -Args: - - Creator(typing.Any):Originator of task, does not have to be valid username - -Returns: - - None - - """ - pass - - - def GetCreator(self,) -> 'None': - """ - Returns creator info, can be any string data - -Args: - - - -Returns: - - None - - """ - pass - - - def SetWorkItemData(self,Data:'str') -> 'None': - """ - Set data associated with task (treated as uninterpreted bytes) - -Args: - - Data(str):Character data, treated as uninterpreted bytes - -Returns: - - None - - """ - pass - - - def GetWorkItemData(self,) -> 'str': - """ - Retrieve data associated with task - -Args: - - - -Returns: - - str - - """ - pass - - - def SetErrorRetryCount(self,wRetryCount:'typing.Any') -> 'None': - """ - Specify nbr of times to attempt to run task if it can't start (not - -currently implemented) - -Args: - - wRetryCount(typing.Any):Nbr of attemps to start task - -Returns: - - None - - """ - pass - - - def GetErrorRetryCount(self,) -> 'None': - """ - Return nbr of times Task scheduler should try to run task (not - -currently implemented) - -Args: - - - -Returns: - - None - - """ - pass - - - def SetErrorRetryInterval(self,RetryInterval:'typing.Any') -> 'None': - """ - Interval in minutes between attempts to run task. Not - -implemented according to SDK - -Args: - - RetryInterval(typing.Any):Interval in minutes - -Returns: - - None - - """ - pass - - - def GetErrorRetryInterval(self,) -> 'None': - """ - Returns nbr of minutes between attempts to run task. Not - -implemented according to SDK - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFlags(self,dwFlags:'typing.Any') -> 'None': - """ - Set flags for task - -Args: - - dwFlags(typing.Any):Combination of TASK_FLAG_* constants - -Returns: - - None - - """ - pass - - - def GetFlags(self,) -> 'typing.Any': - """ - Returns flags for task (TASK_FLAG_* constants) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetAccountInformation(self,AccountName:'typing.Any',Password:'typing.Any') -> 'None': - """ - Set username and password under which task will run - -Args: - - AccountName(typing.Any):AccountName, use "" for local system account (can only be used by Administrators) - Password(typing.Any):Password - Can be None for local System account, or if TASK_FLAG_RUN_ONLY_IF_LOGGED_ON is setCommentsOn some systems, username and password are verified at the time the task is saved, on others when the task tries to run - -Returns: - - None - - """ - pass - - - def GetAccountInformation(self,) -> 'typing.Any': - """ - Returns username that task will run under - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIServerSecurity(object): - """Interface used to access client security settings and perform impersonation""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryBlanket(self,Capabilities:'typing.Any'=0) -> 'typing.Any': - """ - Retrieves security settings specified by the client - -Args: - - Capabilities(typing.Any):Can be EOAC_MAKE_FULLSIC for SChannel provider - -Returns: - - typing.Any - - """ - pass - - - def ImpersonateClient(self,) -> 'None': - """ - Initiates impersonation of client - -Args: - - - -Returns: - - None - - """ - pass - - - def RevertToSelf(self,) -> 'None': - """ - Ends impersonation of client - -Args: - - - -Returns: - - None - - """ - pass - - - def IsImpersonating(self,) -> 'typing.Any': - """ - Determines if server is currently impersonating a client - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyIServiceProvider(object): - """A Python interface to IServiceProvider""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryService(self,clsid:'PyIID',iid:'PyIID') -> 'PyIUnknown': - """ - Creates or accesses the specified service and returns an - -interface object to the specified interface for the service. - -Args: - - clsid(PyIID):Unique identifier for the requested service. - iid(PyIID):Unique identifier for the requested interface on the service. - -Returns: - - PyIUnknown - - """ - pass - - -class PyIShellBrowser(object): - """Exposed by Windows Explorer and the Open File common dialog box to provide services for - -namespace extensions.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def InsertMenusSB(self,hmenuShared:'int',lpMenuWidths:'PyOLEMENUGROUPWIDTHS') -> 'PyOLEMENUGROUPWIDTHS': - """ - Updates a composite menu with container's options - -Args: - - hmenuShared(int):Newly created menu that contains no items - lpMenuWidths(PyOLEMENUGROUPWIDTHS):Tuple of 6 ints. Items 0,2,and 4 are updated when the tuple is returned. - -Returns: - - PyOLEMENUGROUPWIDTHS - - """ - pass - - - def SetMenuSB(self,hmenuShared:'int',holemenuRes:'int',hwndActiveObject:'int') -> 'None': - """ - Attaches a shared menu to a shell view window - -Args: - - hmenuShared(int):Handle to the shared menu - holemenuRes(int):Reserved, use only None (or 0) - hwndActiveObject(int):Handle to the shell window - -Returns: - - None - - """ - pass - - - def RemoveMenusSB(self,hmenuShared:'int') -> 'None': - """ - Asks container to remove any items it added to a composite menu - -Args: - - hmenuShared(int):Handle to the composite menu - -Returns: - - None - - """ - pass - - - def SetStatusTextSB(self,pszStatusText:'typing.Any') -> 'None': - """ - Sets the status text in view's status bar - -Args: - - pszStatusText(typing.Any):New status to be displayed - -Returns: - - None - - """ - pass - - - def EnableModelessSB(self,fEnable:'typing.Any') -> 'None': - """ - Enables or disables modeless dialogs - -Args: - - fEnable(typing.Any):Use True to enable or False to disable modeless dialog boxes - -Returns: - - None - - """ - pass - - - def TranslateAcceleratorSB(self,pmsg:'PyMSG',wID:'typing.Any') -> 'None': - """ - Translates keystrokes used as menu item activators - -Args: - - pmsg(PyMSG):Keystroke message to be translated - wID(typing.Any):Menu command id for the keystroke - -Returns: - - None - - """ - pass - - - def BrowseObject(self,pidl:'PyIDL',wFlags:'typing.Any') -> 'None': - """ - Navigates to a different location - -Args: - - pidl(PyIDL):Item id list that specifies the new browse location, can be None - wFlags(typing.Any):Combination of shellcon.SBSP_* flags - -Returns: - - None - - """ - pass - - - def GetViewStateStream(self,grfMode:'typing.Any') -> 'PyIStream': - """ - Returns a stream that can be used to access view state - -information - -Args: - - grfMode(typing.Any):Read/write mode, one of STGM_READ,STGM_WRITE,STGM_READWRITE - -Returns: - - PyIStream - - """ - pass - - - def GetControlWindow(self,_id:'typing.Any') -> 'None': - """ - Returns a handle to one of the browser's control elements - -Args: - - _id(typing.Any):One of shellcon.FCW_* values - -Returns: - - None - - """ - pass - - - def SendControlMsg(self,_id:'typing.Any',uMsg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'typing.Any': - """ - Sends a control msg to browser's toolbar or status bar - -Args: - - _id(typing.Any):shellcon.FCW_TOOLBAR or FCW_STATUS - uMsg(typing.Any):The message to send - wParam(typing.Any):Value is dependent on the message - lParam(typing.Any):Value is dependent on the message - -Returns: - - typing.Any - - """ - pass - - - def QueryActiveShellView(self,) -> 'PyIShellView': - """ - Returns the currently displayed view - -Args: - - - -Returns: - - PyIShellView - - """ - pass - - - def OnViewWindowActive(self,pshv:'PyIShellView') -> 'None': - """ - Callback triggered when a view window is activated - -Args: - - pshv(PyIShellView):The activated view object - -Returns: - - None - - """ - pass - - - def SetToolbarItems(self,lpButtons:'typing.Any',uFlags:'typing.Any') -> 'None': - """ - Adds toolbar buttons to the browser's toolbar - -Args: - - lpButtons(typing.Any):Sequence of tuples describing the buttons to be added - uFlags(typing.Any):Indicates button positions, combination of shellcon.FCT_* - -Returns: - - None - - """ - pass - - -class PyIShellExtInit(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Initialize(self,pFolder:'PyIDL',pDataObject:'PyIDataObject',hkey:'int') -> 'None': - """ - Description of Initialize. - -Args: - - pFolder(PyIDL):Description for pFolder - pDataObject(PyIDataObject):Description for pDataObject - hkey(int):Description for hkey - -Returns: - - None - - """ - pass - - -class PyIShellFolder(object): - """Interface that represents an Explorer folder""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ParseDisplayName(self,hwndOwner:'int',pbc:'PyIBindCtx',DisplayName:'typing.Any',Attributes:'typing.Any'=0) -> 'typing.Any': - """ - Returns the PIDL of an item in a shell folder - -Args: - - hwndOwner(int):Window in which to display any dialogs or message boxes, can be 0 - pbc(PyIBindCtx):Bind context that affects how parsing is performed, can be None - DisplayName(typing.Any):Display name to parse, format is dependent on the shell folder. Desktop folder will accept a file path, as well as guids of the form ::{guid} Example: '::%s\\::%s' %(shell.CLSID_MyComputer,shell.CLSID_ControlPanel) - Attributes(typing.Any):Combination of shellcon.SFGAO_* constants specifying which attributes should be returnedReturn ValueThe result is a tuple of cchEaten, pidl, attrItems[0] int : cchEatenthe number of characters of the input name that were parsed[1] PyIDL : pidlspecifies the relative path from the parsing folder to the object[2] int : Attributesreturns any requested attributes - -Returns: - - typing.Any:Combination of shellcon.SFGAO_* constants specifying which attributes should be returned -Return ValueThe result is a tuple of cchEaten, pidl, attr -Items[0] int : cchEaten -the number of characters of the input name that were parsed -[1] PyIDL : pidl -specifies the relative path from the parsing folder to the object -[2] int : Attributes -returns any requested attributes - - - """ - pass - - - def EnumObjects(self,grfFlags:'typing.Any',hwndOwner:'int'=None) -> 'PyIEnumIDList': - """ - Creates an enumerator to list the contents of the shell folder - -Args: - - grfFlags(typing.Any):Combination of shellcon.SHCONTF_* constants - hwndOwner(int):Window to use if any user interaction is required - -Returns: - - PyIEnumIDList - - """ - pass - - - def BindToObject(self,pidl:'PyIDL',pbc:'PyIBindCtx',riid:'PyIID') -> 'PyIShellFolder': - """ - Returns an IShellFolder interface for a subfolder - -Args: - - pidl(PyIDL):Relative item id list that identifies the subfolder, can be multi-level - pbc(PyIBindCtx):Bind context to be used, can be None - riid(PyIID):IID of the desired interface, usually IID_IShellFolder - -Returns: - - PyIShellFolder - - """ - pass - - - def BindToStorage(self,pidl:'PyIDL',pbc:'PyIBindCtx',riid:'PyIID') -> 'typing.Any': - """ - Returns an interface to a storage object in a shell folder - -Args: - - pidl(PyIDL):Relative pidl for the folder item, must be a single item id - pbc(PyIBindCtx):Bind context that affects how binding is performed, can be None - riid(PyIID):IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in - -Returns: - - typing.Any:IID of the desired interface, one of IID_IStream, IID_IStorage, IID_IPropertySetStorageReturn ValueReturns PyIStream, PyIStorage or PyIPropertySetStorage depending on the riid passed in - - - """ - pass - - - def CompareIDs(self,lparam:'typing.Any',pidl1:'PyIDL',pidl2:'PyIDL') -> 'typing.Any': - """ - Determines the sorting order of 2 items in shell folder - -Args: - - lparam(typing.Any):Lower 16 bits specify folder-dependent sorting rules, 0 means to sort by display name. System folder view uses these as a column number. Upper sixteen bits is used for flags SHCIDS_ALLFIELDS or SHCIDS_CANONICALONLY - pidl1(PyIDL):Item id list that idenfies an object relative to the folder - pidl2(PyIDL):Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first - -Returns: - - typing.Any:Item id list that idenfies an object relative to the folderReturn ValueReturns 0 if items compare equal, -1 if the pidl1 comes first, or 1 if pidl2 comes first - - - """ - pass - - - def CreateViewObject(self,hwndOwner:'typing.Any',riid:'PyIID') -> 'PyIShellView': - """ - Creates a view object for a shell folder. - -Args: - - hwndOwner(typing.Any):Parent window for a custom folder view, or 0 - riid(PyIID):IID of the desired interface, usually IID_IShellView - -Returns: - - PyIShellView - - """ - pass - - - def GetAttributesOf(self,pidl:'typing.Tuple[PyIDL, ...]',rgfInOut:'typing.Any') -> 'typing.Any': - """ - Queries attributes of items within the shell folder - -Args: - - pidl(typing.Tuple[PyIDL, ...]):A sequence of single-level pidls identifying items directly contained by the folder - rgfInOut(typing.Any):Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items - -Returns: - - typing.Any:Combination of shellcon.SFGAO_* constantsReturn ValueThe requested attributes are only returned if they are common to all of the specified items - - - """ - pass - - - def GetUIObjectOf(self,hwndOwner:'int',pidl:'typing.Tuple[PyIDL, ...]',riid:'PyIID',iidout:'PyIID',Reserved:'typing.Any'=0) -> 'typing.Tuple[typing.Any, PyIUnknown]': - """ - Creates an interface to one or more items in a shell - -folder - -Args: - - hwndOwner(int):Specifies a window in which to display any required dialogs or errors, can be 0 - pidl(typing.Tuple[PyIDL, ...]):A sequence of single-level pidls identifying items in the folder - riid(PyIID):The interface to create, one of IID_IContextMenu, IID_IContextMenu2, IID_IDataObject, IID_IDropTarget, IID_IExtractIcon, IID_IQueryInfo - iidout(PyIID):The interface to return. Can be used in the case where there is not a python wrapper for the desired interface. You must make certain that the interface identified by riid actually supports the iidout interface, or Bad Things Will Happen. It should always be safe to return PyIUnknown, which is the base for all interfaces.Return ValueReturns the Reserved parameter and the requested interface - Reserved(typing.Any):Reserved, use 0 if passed in - -Returns: - - typing.Tuple[typing.Any, PyIUnknown]:The interface to return. Can be used in the case where there is not a - -python wrapper for the desired interface. You must make certain that the interface identified by riid - -actually supports the iidout interface, or Bad Things Will Happen. - -It should always be safe to return PyIUnknown, which is the base for all interfaces. -Return ValueReturns the Reserved parameter and the requested interface - - - """ - pass - - - def GetDisplayNameOf(self,pidl:'PyIDL',uFlags:'typing.Any') -> 'typing.Any': - """ - Returns the display name of an item within this shell folder - -Args: - - pidl(PyIDL):PIDL that identifies the item relative to the parent folder - uFlags(typing.Any):Combination of shellcon.SHGDN_* flags - -Returns: - - typing.Any - - """ - pass - - - def SetNameOf(self,hwndOwner:'typing.Any',pidl:'PyIDL',Name:'typing.Any',Flags:'typing.Any') -> 'PyIDL': - """ - Sets the display name of an item and changes its PIDL - -Args: - - hwndOwner(typing.Any):Window in which to display any message boxes or dialogs, can be 0 - pidl(PyIDL):PIDL that identifies the item relative to the parent folder - Name(typing.Any):New name for the item - Flags(typing.Any):Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item - -Returns: - - PyIDL:Combination of shellcon.SHGDM_* valuesReturn ValueReturns the new PIDL for item - - - """ - pass - - -class PyIShellFolder2(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDefaultSearchGUID(self,pguid:'PyIID') -> 'PyIID': - """ - Retrieves the default search for the folder - -Args: - - pguid(PyIID):Description for pguid - -Returns: - - PyIID - - """ - pass - - - def EnumSearches(self,) -> 'typing.Any': - """ - Returns an interface that lists searches defined for - -the folder - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetDefaultColumn(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns the columns used for sorting and display - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetDefaultColumnState(self,iColumn:'typing.Any') -> 'typing.Any': - """ - Returns flags indicating the default behaviour of the column - -Args: - - iColumn(typing.Any):Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags - -Returns: - - typing.Any:Zero-based index of the columnReturn ValueReturns a combination of shellcon.SHCOLSTATE_* flags - - - """ - pass - - - def GetDetailsEx(self,pidl:'PyIDL',pscid:'typing.Any') -> 'typing.Any': - """ - Returns the details of an item by Column ID - -Args: - - pidl(PyIDL):Relative id list of an item in the folder - pscid(typing.Any):The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column - -Returns: - - typing.Any:The Column id/property key of a column in the folder's Details viewReturn ValueThe type of returned object is determined by the variant type of the requested column - - - """ - pass - - - def GetDetailsOf(self,pidl:'PyIDL',iColumn:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Returns the value or title of a column in the folder's Details - -view. - -Args: - - pidl(PyIDL):The relative idl of an item in the folder. Use None to retrieve column title. - iColumn(typing.Any):Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in characters, and string representation of the requested value - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any]:Zero based index of columnReturn ValueReturns a tuple representing a SHELLDETAILS struct, containing the formst (LVCFMT_*), column width in - -characters, - -and string representation of the requested value - - - """ - pass - - - def MapColumnToSCID(self,Column:'typing.Any') -> 'typing.Any': - """ - Returns the unique identifier (FMTID, pid) of a column - -Args: - - Column(typing.Any):The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. For Vista and later, this is the Property Key used with the property system interfaces. - -Returns: - - typing.Any:The zero-based index of the column as presented by the folder's Details viewReturn ValueOn XP and earlier, this is the Column Id as provided by PyIColumnProvider. - -For Vista and later, this is the Property Key used with the property system interfaces. - - - """ - pass - - -class PyIShellIcon(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetIconOf(self,pidl:'PyIDL') -> 'None': - """ - Description of GetIconOf. - -Args: - - pidl(PyIDL):Description for pidl - -Returns: - - None - - """ - pass - - -class PyIShellIconOverlay(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetOverlayIndex(self,pidl:'PyIDL') -> 'None': - """ - Description of GetOverlayIndex. - -Args: - - pidl(PyIDL):Description for pidl - -Returns: - - None - - """ - pass - - - def GetOverlayIconIndex(self,pidl:'PyIDL') -> 'None': - """ - Description of GetOverlayIconIndex. - -Args: - - pidl(PyIDL):Description for pidl - -Returns: - - None - - """ - pass - - -class PyIShellIconOverlayIdentifier(object): - """Interface that supplies icon overlay information to the shell""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsMemberOf(self,path:'str',attrib:'typing.Any') -> 'typing.Any': - """ - Determines if a shell object should have an icon overlay - -Args: - - path(str):Fully qualified path of the shell object - attrib(typing.Any):Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. The client implementation of this function returns the same values - ie, Python's True and False should not be used, as S_OK==0==False. - -Returns: - - typing.Any:Shell attributes, combination of shellcon.SFGAO_* flagsReturn ValueThe gateway implementation of this function should return winerror.S_OK to - -display the overlay, S_FALSE if not, or throw a COM exception with E_FAIL on error. - -The client implementation of this function returns the same values - ie, - -Python's True and False should not be used, as S_OK==0==False. - - - """ - pass - - - def GetOverlayInfo(self,) -> 'typing.Tuple[str, typing.Any, typing.Any]': - """ - Retrieves the path to the overlay - -icon - -Args: - - - -Returns: - - typing.Tuple[str, typing.Any, typing.Any]:PyIShellIconOverlayIdentifier.GetOverlayInfo - -(PyUnicode, int, int) = GetOverlayInfo()Retrieves the path to the overlay - -icon -Return ValueReturns the path to the icon file, the index of icon within the file, and Flags containing - -combination of shellcon.ISIOI_ICON* flags - - - """ - pass - - - def GetPriority(self,) -> 'typing.Any': - """ - Retrieves the relative priority of the overlay - -Args: - - - -Returns: - - typing.Any:PyIShellIconOverlayIdentifier.GetPriority - -int = GetPriority()Retrieves the relative priority of the overlay -Return ValueImplementation of this function should return a number in the range 0-100 (0 is highest priority) - - - """ - pass - - -class PyIShellIconOverlayManager(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetFileOverlayInfo(self,path:'typing.Any',attrib:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Returns an index into the system image list for the icon - -image or overlay image - -Args: - - path(typing.Any):Full path to the file - attrib(typing.Any):File attributes (win32com.FILE_ATTRIBUTE_*) - flags(typing.Any):SIOM_OVERLAYINDEX (1) or SIOM_ICONINDEX (2) - -Returns: - - typing.Any - - """ - pass - - - def GetReservedOverlayInfo(self,path:'typing.Any',attrib:'typing.Any',flags:'typing.Any',ireservedID:'typing.Any') -> 'None': - """ - Description of GetReservedOverlayInfo. - -Args: - - path(typing.Any):Description for path - attrib(typing.Any):Description for attrib - flags(typing.Any):Description for flags - ireservedID(typing.Any):Description for ireservedID - -Returns: - - None - - """ - pass - - - def RefreshOverlayImages(self,flags:'typing.Any') -> 'None': - """ - Description of RefreshOverlayImages. - -Args: - - flags(typing.Any):Description for flags - -Returns: - - None - - """ - pass - - - def LoadNonloadedOverlayIdentifiers(self,) -> 'None': - """ - Description of LoadNonloadedOverlayIdentifiers. - -Args: - - - -Returns: - - None - - """ - pass - - - def OverlayIndexFromImageIndex(self,iImage:'typing.Any',fAdd:'typing.Any') -> 'None': - """ - Description of OverlayIndexFromImageIndex. - -Args: - - iImage(typing.Any):Description for iImage - fAdd(typing.Any):Description for fAdd - -Returns: - - None - - """ - pass - - -class PyIShellItem(object): - """Interface that represents an item in the Explorer shell""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BindToHandler(self,pbc:'PyIBindCtx',bhid:'PyIID',riid:'PyIID') -> 'typing.Any': - """ - Creates an instance of one of the item's handlers - -Args: - - pbc(PyIBindCtx):Used to pass parameters that influence the binding operation, can be None - bhid(PyIID):GUID that identifies a handler (shell.BHID_*) - riid(PyIID):The interface to return - -Returns: - - typing.Any - - """ - pass - - - def GetParent(self,) -> 'PyIShellItem': - """ - Retrieves the parent of this item - -Args: - - - -Returns: - - PyIShellItem - - """ - pass - - - def GetDisplayName(self,sigdnName:'typing.Any') -> 'typing.Any': - """ - Returns the display name of the item in the specified format - -Args: - - sigdnName(typing.Any):Format of name to return, shellcon.SIGDN_* - -Returns: - - typing.Any - - """ - pass - - - def GetAttributes(self,Mask:'typing.Any') -> 'typing.Any': - """ - Returns shell attributes of the item - -Args: - - Mask(typing.Any):Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values - -Returns: - - typing.Any:Combination of shellcon.SFGAO_* values indicating the flags to returnReturn ValueReturns a combination of shellcon.SFGAO_* values - - - """ - pass - - - def Compare(self,psi:'PyIShellItem',hint:'typing.Any') -> 'typing.Any': - """ - Compares another shell item with this item - -Args: - - psi(PyIShellItem):A shell item to be compared with this item - hint(typing.Any):shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise - -Returns: - - typing.Any:shellcon.SICHINT_* value indicating how the comparison is to be performedReturn ValueReturns 0 if items compare as equal, nonzero otherwise - - - """ - pass - - -class PyIShellItem2(object): - """Extends the IShellItem interface, giving access to an item's properties""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPropertyStore(self,Flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': - """ - Returns a collection of the item's properties - -Args: - - Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) - riid(PyIID):The interface to return - -Returns: - - PyIPropertyStore - - """ - pass - - - def GetPropertyStoreForKeys(self,Keys:'typing.Tuple[typing.Any, ...]',Flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': - """ - Creates a property store containing just the - -specified properties of the item - -Args: - - Keys(typing.Tuple[typing.Any, ...]):A sequence of property identifiers - Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) - riid(PyIID):The interface to return - -Returns: - - PyIPropertyStore - - """ - pass - - - def GetPropertyStoreWithCreateObject(self,Flags:'typing.Any',CreateObject:'PyIUnknown',riid:'PyIID') -> 'PyIPropertyStore': - """ - Returns the property store for the - -item, with alternate handler instantiation - -Args: - - Flags(typing.Any):Combination of GETPROPERTYSTOREFLAGS values (shellcon.GPS_*) - CreateObject(PyIUnknown):An interface that implements ICreateObject, used to create the property handler - riid(PyIID):The interface to be createdCommentsPrimarily used to create a handler in a separate process with reduced privileges - -Returns: - - PyIPropertyStore - - """ - pass - - - def GetPropertyDescriptionList(self,Type:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescriptionList': - """ - Retrieves descriptions of - -properties in a particular group - -Args: - - Type(PyPROPERTYKEY):Property list identifier (pscon.PKEY_PropList_*) - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescriptionList - - """ - pass - - - def Update(self,BindCtx:'typing.Any'=None) -> 'None': - """ - Refreshes properties that have been modified since interface was created - -Args: - - BindCtx(typing.Any):Bind context used when requesting the interface, or None - -Returns: - - None - - """ - pass - - - def GetProperty(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Retrieves the value of a property, converted to an appropriate python type - -Args: - - key(PyPROPERTYKEY):The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property - -Returns: - - typing.Any:The id of the property to retrieveReturn ValueType of returned object is determined by the variant type of the property - - - """ - pass - - - def GetCLSID(self,key:'PyPROPERTYKEY') -> 'PyIID': - """ - Retrieves the value of a property as a CLSID (VT_CLSID) - -Args: - - key(PyPROPERTYKEY):The id of the property to retrieve - -Returns: - - PyIID - - """ - pass - - - def GetFileTime(self,key:'PyPROPERTYKEY') -> 'PyTime': - """ - Retrieves the value of a property as a FILETIME - -Args: - - key(PyPROPERTYKEY):The id of the property to retrieve - -Returns: - - PyTime - - """ - pass - - - def GetInt32(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Retrieves the value of a property as a 32 bit int. - -Args: - - key(PyPROPERTYKEY):The id of the property to retrieve - -Returns: - - typing.Any - - """ - pass - - - def GetString(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Retrieves the value of a property as a string - -Args: - - key(PyPROPERTYKEY):The id of the property to retrieve - -Returns: - - typing.Any - - """ - pass - - - def GetUInt32(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Returns the value of a property as a 32 bit unsigned int - -Args: - - key(PyPROPERTYKEY):The id of the property to retrieve - -Returns: - - typing.Any - - """ - pass - - - def GetUInt64(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Returns the value of a property as an unsigned 64-bit int - -Args: - - key(PyPROPERTYKEY):The id of the property to retrieve - -Returns: - - typing.Any - - """ - pass - - - def GetBool(self,key:'PyPROPERTYKEY') -> 'typing.Any': - """ - Returns the value of a property as a boolean - -Args: - - key(PyPROPERTYKEY):The id of the property to retrieve - -Returns: - - typing.Any - - """ - pass - - -class PyIShellItemArray(object): - """Container for a number of shell items""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BindToHandler(self,pbc:'PyIBindCtx',rbhid:'PyIID',riid:'PyIID') -> 'typing.Any': - """ - Creates an instance of a handler for the items in the container - -Args: - - pbc(PyIBindCtx):Bind context, can be None - rbhid(PyIID):Bind handler GUID (shell.BHID_*) - riid(PyIID):The interface to return - -Returns: - - typing.Any - - """ - pass - - - def GetPropertyStore(self,flags:'typing.Any',riid:'PyIID') -> 'PyIPropertyStore': - """ - Retrieves a store containing consolidated - -properties of items in container - -Args: - - flags(typing.Any):Flags indicating how the properties are retrieved (shellcon.GPS_*) - riid(PyIID):The interface to return, IID_IPropertyStore or related interface - -Returns: - - PyIPropertyStore - - """ - pass - - - def GetPropertyDescriptionList(self,Type:'PyPROPERTYKEY',riid:'PyIID') -> 'PyIPropertyDescriptionList': - """ - Retrieves descriptions for a - -defined group of properties - -Args: - - Type(PyPROPERTYKEY):Property list identifier (pscon.PKEY_PropList_*) - riid(PyIID):The interface to return - -Returns: - - PyIPropertyDescriptionList - - """ - pass - - - def GetAttributes(self,AttribFlags:'typing.Any',Mask:'typing.Any') -> 'typing.Any': - """ - Retrieves shell attributes of contained items - -Args: - - AttribFlags(typing.Any):SIATTRIBFLAGS value (shellcon.SIATTRIBFLAGS_*) specifying how to combine attributes of multiple items - Mask(typing.Any):Combination of SFGAOF flags (shellcon.SFGAO_*) specifying which attributes to return - -Returns: - - typing.Any - - """ - pass - - - def GetCount(self,) -> 'typing.Any': - """ - Returns the number of items in the container - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetItemAt(self,dwIndex:'typing.Any') -> 'PyIShellItem': - """ - Retrieves an item by index - -Args: - - dwIndex(typing.Any):Zero-based index of item to retrieve - -Returns: - - PyIShellItem - - """ - pass - - - def EnumItems(self,) -> 'PyIEnumShellItems': - """ - Returns an enumeration interface to list contained items - -Args: - - - -Returns: - - PyIEnumShellItems - - """ - pass - - -class PyIShellItemResources(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetAttributes(self,) -> 'None': - """ - Description of GetAttributes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSize(self,) -> 'typing.Any': - """ - Description of GetSize. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTimes(self,) -> 'None': - """ - Description of GetTimes. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetTimes(self,pftCreation:'PyTime',pftWrite:'PyTime',pftAccess:'PyTime') -> 'None': - """ - Description of SetTimes. - -Args: - - pftCreation(PyTime):Description for pftCreation - pftWrite(PyTime):Description for pftWrite - pftAccess(PyTime):Description for pftAccess - -Returns: - - None - - """ - pass - - - def GetResourceDescription(self,pcsir:'PySHELL_ITEM_RESOURCE') -> 'None': - """ - Description of GetResourceDescription. - -Args: - - pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir - -Returns: - - None - - """ - pass - - - def EnumResources(self,) -> 'PyIEnumResources': - """ - Description of EnumResources. - -Args: - - - -Returns: - - PyIEnumResources - - """ - pass - - - def SupportsResource(self,pcsir:'PySHELL_ITEM_RESOURCE') -> 'typing.Any': - """ - Description of SupportsResource. - -Args: - - pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir - -Returns: - - typing.Any - - """ - pass - - - def OpenResource(self,pcsir:'PySHELL_ITEM_RESOURCE',riid:'PyIID') -> 'PyIUnknown': - """ - Description of OpenResource. - -Args: - - pcsir(PySHELL_ITEM_RESOURCE):Description for pcsir - riid(PyIID):The interface to return - -Returns: - - PyIUnknown - - """ - pass - - - def CreateResource(self,sir:'PySHELL_ITEM_RESOURCE',riid:'PyIID') -> 'typing.Any': - """ - Description of CreateResource. - -Args: - - sir(PySHELL_ITEM_RESOURCE):Resource identifier - riid(PyIID):The interface to return - -Returns: - - typing.Any - - """ - pass - - - def MarkForDelete(self,) -> 'None': - """ - Description of MarkForDelete. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIShellLibrary(object): - """Interface used to access Libraries""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def LoadLibraryFromItem(self,Library:'PyIShellItem',Mode:'typing.Any') -> 'None': - """ - Loads an existing library file - -Args: - - Library(PyIShellItem):Shell item interface representing the library file - Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags - -Returns: - - None - - """ - pass - - - def LoadLibraryFromKnownFolder(self,Library:'PyIID',Mode:'typing.Any') -> 'None': - """ - Initializes library from a known folder - -Args: - - Library(PyIID):Known folder id, shell.FOLDERID_* - Mode(typing.Any):Access mode, combination of storagecon.STGM_* flags - -Returns: - - None - - """ - pass - - - def AddFolder(self,Location:'PyIShellItem') -> 'None': - """ - Includes a folder - -Args: - - Location(PyIShellItem):Shell item interface representing the folder - -Returns: - - None - - """ - pass - - - def RemoveFolder(self,Location:'PyIShellItem') -> 'None': - """ - Removes a folder - -Args: - - Location(PyIShellItem):Shell item interface representing the folder - -Returns: - - None - - """ - pass - - - def GetFolders(self,Filter:'typing.Any',riid:'PyIID') -> 'PyIShellItemArray': - """ - Retrieves a collection of folders in the library - -Args: - - Filter(typing.Any):Specifies what types of folder to return (shellcon.LFF_*) - riid(PyIID):The interface to return, IObjectCollection and IObjectArray also accepted. - -Returns: - - PyIShellItemArray - - """ - pass - - - def ResolveFolder(self,FolderToResolve:'PyIShellItem',Timeout:'typing.Any',riid:'PyIID') -> 'PyIShellItem': - """ - Attempts to locate a folder that has been moved or renamed - -Args: - - FolderToResolve(PyIShellItem):Library item whose location has changed - Timeout(typing.Any):Max search time, specified in milliseconds - riid(PyIID):The interface to return - -Returns: - - PyIShellItem - - """ - pass - - - def GetDefaultSaveFolder(self,Type:'typing.Any',riid:'PyIID') -> 'PyIShellItem': - """ - Returns the default folder in which new items are - -saved - -Args: - - Type(typing.Any):Specifies whether to return public or private save location, shellcon.DSFT_* - riid(PyIID):The interface to return - -Returns: - - PyIShellItem - - """ - pass - - - def SetDefaultSaveFolder(self,Type:'typing.Any',SaveFolder:'PyIShellItem') -> 'None': - """ - Sets the default save location - -Args: - - Type(typing.Any):Specifies public or private save location, shellcon.DSFT_* - SaveFolder(PyIShellItem):New default location, must be in the library - -Returns: - - None - - """ - pass - - - def GetOptions(self,) -> 'typing.Any': - """ - Retrieves library option flags - -Args: - - - -Returns: - - typing.Any:PyIShellLibrary.GetOptions - -int = GetOptions()Retrieves library option flags -Return ValueReturns a combination of shellcon.LOF_* flags - - - """ - pass - - - def SetOptions(self,Mask:'typing.Any',Options:'typing.Any') -> 'None': - """ - Sets library option flags - -Args: - - Mask(typing.Any):Bitmask of flags to be changed, combination of shellcon.LOF_* values - Options(typing.Any):New options, combination of shellcon.LOF_* values - -Returns: - - None - - """ - pass - - - def GetFolderType(self,) -> 'PyIID': - """ - Returns the library type, shell.FOLDERTYPEID_* - -Args: - - - -Returns: - - PyIID - - """ - pass - - - def SetFolderType(self,Type:'PyIID') -> 'None': - """ - Sets the folder type for the library - -Args: - - Type(PyIID):New type, shell.FOLDERTYPEID_* - -Returns: - - None - - """ - pass - - - def GetIcon(self,) -> 'typing.Any': - """ - Returns the location of the library's icon - -Args: - - - -Returns: - - typing.Any:PyIShellLibrary.GetIcon - -str = GetIcon()Returns the location of the library's icon -Return ValueUses "module,resource" format - - - """ - pass - - - def SetIcon(self,Icon:'typing.Any') -> 'None': - """ - Sets the library icon - -Args: - - Icon(typing.Any):Icon location in "module,resource" syntax - -Returns: - - None - - """ - pass - - - def Commit(self,) -> 'None': - """ - Saves changes (only if loaded from an existing library) - -Args: - - - -Returns: - - None - - """ - pass - - - def Save(self,FolderToSaveIn:'PyIShellItem',LibraryName:'typing.Any',Flags:'typing.Any') -> 'PyIShellItem': - """ - Saves the library to a specific location - -Args: - - FolderToSaveIn(PyIShellItem):The destination folder, use None to save in current user's Libraries folder - LibraryName(typing.Any):Filename for the new library, without file extension - Flags(typing.Any):Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. - -Returns: - - PyIShellItem:Determines behaviour if file already exists, shellcon.LSF_*Return ValueReturns a shell item for the saved file. - - - """ - pass - - - def SaveInKnownFolder(self,FolderToSaveIn:'PyIID',LibraryName:'typing.Any',Flags:'typing.Any') -> 'PyIShellItem': - """ - Saves the library in a known folder - -Args: - - FolderToSaveIn(PyIID):The destination folder, shell.FOLDERID_* - LibraryName(typing.Any):Filename for the new library, without file extension - Flags(typing.Any):Determines behaviour if file already exists, shellcon.LSF_* - -Returns: - - PyIShellItem - - """ - pass - - -class PyIShellLink(object): - """Interface used to access the properties of a shell link file (*.lnk)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPath(self,fFlags:'typing.Any',cchMaxPath:'typing.Any') -> 'typing.Tuple[typing.Any, WIN32_FIND_DATA]': - """ - Retrieves the target path and file name of a shell link - -object - -Args: - - fFlags(typing.Any):One of the following values:ValueDescriptionSLGP_SHORTPATHRetrieves the standard short (8.3 format) file name.SLGP_UNCPRIORITYRetrieves the Universal Naming Convention (UNC) path name of the file.SLGP_RAWPATHRetrieves the raw path name. A raw path is something that might not exist and may include environment variables that need to be expanded. - cchMaxPath(typing.Any):Number of characters to allocate for returned filenameCommentsThe AlternateFileName (8.3) member of WIN32_FIND_DATA does not return information - -Returns: - - typing.Tuple[typing.Any, WIN32_FIND_DATA] - - """ - pass - - - def GetIDList(self,) -> 'PyIDL': - """ - Retrieves the item id list that identifies the target of the shell link. - -Args: - - - -Returns: - - PyIDL - - """ - pass - - - def SetIDList(self,pidl:'PyIDL') -> 'None': - """ - Sets the target of the link using an item id list - -Args: - - pidl(PyIDL):Absolute item id list that identifies the target - -Returns: - - None - - """ - pass - - - def GetDescription(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': - """ - Retrieves the description of the link (displays as Comment in the UI) - -Args: - - cchMaxName(typing.Any):Number of character to allocate for the retrieved text - -Returns: - - typing.Any - - """ - pass - - - def SetDescription(self,Name:'typing.Any') -> 'None': - """ - Sets the description of the link (displays as Comment in the UI) - -Args: - - Name(typing.Any):The description for the link - -Returns: - - None - - """ - pass - - - def GetWorkingDirectory(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': - """ - Retrieves the working directory for the link - -Args: - - cchMaxName(typing.Any):Number of characters to allocate for returned text - -Returns: - - typing.Any - - """ - pass - - - def SetWorkingDirectory(self,Dir:'typing.Any') -> 'None': - """ - Sets the working directory for the link. - -Args: - - Dir(typing.Any):The working directory for the link - -Returns: - - None - - """ - pass - - - def GetArguments(self,cchMaxName:'typing.Any'=1024) -> 'typing.Any': - """ - Retrieves the command-line arguments associated with a shell link object. - -Args: - - cchMaxName(typing.Any):Number of characters to fetch. - -Returns: - - typing.Any - - """ - pass - - - def SetArguments(self,args:'typing.Any') -> 'None': - """ - Sets the command-line arguments associated with a shell link object. - -Args: - - args(typing.Any):The new arguments. - -Returns: - - None - - """ - pass - - - def GetHotkey(self,) -> 'typing.Any': - """ - Retrieves the hot key for a shell link object. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetHotkey(self,wHotkey:'typing.Any') -> 'None': - """ - Sets the hot key for a shell link object. - -Args: - - wHotkey(typing.Any):The virtual key code is in the low-order byte, and the modifier flags are in the high-order byte. The modifier flags can be a combination of the values specified in the description of the PyIShellLink::GetHotkey method. - -Returns: - - None - - """ - pass - - - def GetShowCmd(self,) -> 'typing.Any': - """ - Retrieves the show (SW_) command for a shell link object. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetShowCmd(self,iShowCmd:'typing.Any') -> 'None': - """ - Sets the show (SW_) command for a shell link object. - -Args: - - iShowCmd(typing.Any):The new show command value. - -Returns: - - None - - """ - pass - - - def GetIconLocation(self,cchMaxPath:'typing.Any') -> 'typing.Any': - """ - Retrieves the location (path and index) of the icon for a shell link - -object. - -Args: - - cchMaxPath(typing.Any):Number of characters to allocate for the result string. - -Returns: - - typing.Any - - """ - pass - - - def SetIconLocation(self,iconPath:'str',iIcon:'typing.Any') -> 'None': - """ - Sets the location (path and index) of the icon for a shell link object. - -Args: - - iconPath(str):Path to the file with the icon. - iIcon(typing.Any):Index of the icon. - -Returns: - - None - - """ - pass - - - def SetRelativePath(self,relPath:'str',reserved:'typing.Any'=0) -> 'None': - """ - Sets the relative path for a shell link object. - -Args: - - relPath(str):The relative path. - reserved(typing.Any):Reserved - must be zero.CommentsThis mechanism allows for moved link files to reestablish connection with relative files through similar-prefix comparisons - -Returns: - - None - - """ - pass - - - def Resolve(self,hwnd:'typing.Any',fFlags:'typing.Any') -> 'None': - """ - Resolves a shell link by searching for the shell link object and updating the - -shell link path and its list of identifiers (if necessary) - -Args: - - hwnd(typing.Any):The parent window of a dialog which will pop up if resolution fails. - fFlags(typing.Any):One of the following constants:ValueDescriptionSLR_INVOKE_MSICall the Microsoft Windows Installer.SLR_NOLINKINFODisable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting SLR_NOLINKINFO disables both types of tracking.SLR_NO_UIDo not display a dialog box if the link cannot be resolved. When SLR_NO_UI is set, the high-order word of fFlags can be set to a time-out value that specifies the maximum amount of time to be spent resolving the link. The function returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration will be set to the default value of 3,000 milliseconds (3 seconds). To specify a value, set the high word of fFlags to the desired time-out duration, in milliseconds.SLR_NOUPDATEDo not update the link information.SLR_NOSEARCHDo not execute the search heuristics.SLR_NOTRACKDo not use distributed link tracking.SLR_UPDATEIf the link object has changed, update its path and list of identifiers. If SLR_UPDATE is set, you do not need to call IPersistFile::IsDirty to determine whether or not the link object has changed. - -Returns: - - None - - """ - pass - - - def SetPath(self,path:'str') -> 'None': - """ - Sets the path and file name of a shell link object. - -Args: - - path(str):The path and filename of the link. - -Returns: - - None - - """ - pass - - -class PyIShellLinkDataList(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddDataBlock(self,DataBlock:'typing.Any') -> 'None': - """ - Inserts a data block into the link - -Args: - - DataBlock(typing.Any):Contents are dependent on type of data block being addedCommentsInput should be one of NT_CONSOLE_PROPS, NT_FE_CONSOLE_PROPS, EXP_SPECIAL_FOLDER, EXP_DARWIN_LINK, or EXP_SZ_LINK. Expected form is indicated by the Signature member. - -Returns: - - None - - """ - pass - - - def CopyDataBlock(self,Sig:'typing.Any') -> 'typing.Any': - """ - Retrieves the specified data block from the link - -Args: - - Sig(typing.Any):The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in - -Returns: - - typing.Any:The type of data block to retrieve, one of the shellcon.*_SIG constantsReturn ValueThe returned dictionary will contain different information depending on the value passed in - - - """ - pass - - - def GetFlags(self,) -> 'typing.Any': - """ - Retrieves the link's flags - -Args: - - - -Returns: - - typing.Any:PyIShellLinkDataList.GetFlags - -int = GetFlags()Retrieves the link's flags -Return ValueReturns combination of shellcon.SLDF_* flags - - - """ - pass - - - def RemoveDataBlock(self,Sig:'typing.Any') -> 'None': - """ - Deletes one of the link's data blocks - -Args: - - Sig(typing.Any):Identifies which block is to be removed, one of shellcon.*_SIG constants - -Returns: - - None - - """ - pass - - - def SetFlags(self,Flags:'typing.Any') -> 'None': - """ - Sets the flags indicating which data blocks are present - -Args: - - Flags(typing.Any):Combination of shellcon.SLDF_* flags - -Returns: - - None - - """ - pass - - -class PyIShellView(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def TranslateAccelerator(self,pmsg:'typing.Any') -> 'typing.Any': - """ - Description of TranslateAccelerator. - -Args: - - pmsg(typing.Any):Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call - -Returns: - - typing.Any:Description for pmsgReturn ValueThe result is the HRESULT from the underlying TranslateAccelerator call - - - """ - pass - - - def EnableModeless(self,fEnable:'typing.Any') -> 'None': - """ - Description of EnableModeless. - -Args: - - fEnable(typing.Any):Description for fEnable - -Returns: - - None - - """ - pass - - - def UIActivate(self,uState:'typing.Any') -> 'None': - """ - Description of UIActivate. - -Args: - - uState(typing.Any):Description for uState - -Returns: - - None - - """ - pass - - - def Refresh(self,) -> 'None': - """ - Description of Refresh. - -Args: - - - -Returns: - - None - - """ - pass - - - def CreateViewWindow(self,psvPrevious:'PyIShellView',pfs:'typing.Tuple[typing.Any, typing.Any]',psb:'PyIShellBrowser',prcView:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Any': - """ - Description of CreateViewWindow. - -Args: - - psvPrevious(PyIShellView):Description for psvPrevious - pfs(typing.Tuple[typing.Any, typing.Any]):Description for pfs - psb(PyIShellBrowser):Description for psb - prcView(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Description for prcViewReturn ValueThe result is an integer handle to the new window. - -Returns: - - typing.Any:Description for prcViewReturn ValueThe result is an integer handle to the new window. - - - """ - pass - - - def DestroyViewWindow(self,) -> 'None': - """ - Description of DestroyViewWindow. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurrentInfo(self,) -> 'typing.Any': - """ - Description of GetCurrentInfo. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SaveViewState(self,) -> 'None': - """ - Description of SaveViewState. - -Args: - - - -Returns: - - None - - """ - pass - - - def SelectItem(self,pidlItem:'PyIDL',uFlags:'typing.Any') -> 'None': - """ - Description of SelectItem. - -Args: - - pidlItem(PyIDL):Description for pidlItem - uFlags(typing.Any):Description for uFlags - -Returns: - - None - - """ - pass - - - def GetItemObject(self,uItem:'typing.Any',riid:'PyIID') -> 'PyIUnknown': - """ - Description of GetItemObject. - -Args: - - uItem(typing.Any):Description for uItem - riid(PyIID):Description for riid - -Returns: - - PyIUnknown - - """ - pass - - -class PyISpecifyPropertyPages(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPages(self,) -> 'None': - """ - Description of GetPages. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIStorage(object): - """Structured storage compound storage object""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateStream(self,Name:'typing.Any',Mode:'typing.Any',reserved1:'typing.Any'=0,reserved2:'typing.Any'=0) -> 'PyIStream': - """ - Creates and opens a stream object with the specified name contained - -in this storage object. All elements within a storage object — both streams and other storage objects — are kept in - -the same name space. - -Args: - - Name(typing.Any):Name of the new stream - Mode(typing.Any):Access mode, storagecon.STGM_* - reserved1(typing.Any):Reserved - must be zero. - reserved2(typing.Any):Reserved - must be zero. - -Returns: - - PyIStream - - """ - pass - - - def OpenStream(self,Name:'typing.Any',reserved1:'typing.Any',Mode:'typing.Any',reserved2:'typing.Any'=0) -> 'PyIStream': - """ - Opens an existing stream object within this storage object in the - -specified access mode. - -Args: - - Name(typing.Any):Name of stream to be opened - reserved1(typing.Any):A reserved param. Always pass None. NULL is always passed to the COM function - Mode(typing.Any):Access mode, storagecon.STGM_* - reserved2(typing.Any):Reserved - must be zero. - -Returns: - - PyIStream - - """ - pass - - - def CreateStorage(self,Name:'typing.Any',Mode:'typing.Any',StgFmt:'typing.Any',reserved2:'typing.Any'=0) -> 'PyIStorage': - """ - Creates and opens a new storage object nested within this storage - -object. - -Args: - - Name(typing.Any):The name of the newly created stream. - Mode(typing.Any):Access mode - combination of storagecon.STGM_* flags - StgFmt(typing.Any):Documented as "reserved"! - reserved2(typing.Any):Description for reserved2 - -Returns: - - PyIStorage - - """ - pass - - - def OpenStorage(self,Name:'typing.Any',Priority:'PyIStorage',Mode:'typing.Any',snbExclude:'typing.Any',reserved:'typing.Any'=0) -> 'PyIStorage': - """ - Opens an existing storage object with the specified name in the - -specified access mode. - -Args: - - Name(typing.Any):Name of the storage, or None. - Priority(PyIStorage):If the pstgPriority parameter is not None, it is a PyIStorage object to a previous opening of an element of the storage object, usually one that was opened in priority mode. The storage object should be closed and re-opened according to grfMode. When the PyIStorage::OpenStorage method returns, pstgPriority is no longer valid - use the result value. If the pstgPriority parameter is None, it is ignored. - Mode(typing.Any):Access mode - combination of storagecon.STGM_* flags (must include STGM_SHARE_EXCLUSIVE) - snbExclude(typing.Any):Reserved for later - Must be None - reserved(typing.Any):Reserved integer param. - -Returns: - - PyIStorage - - """ - pass - - - def CopyTo(self,rgiidExclude:'typing.Tuple[typing.Any, typing.Any]',snbExclude:'typing.Any',stgDest:'PyIStorage') -> 'None': - """ - Copies the entire contents of an open storage object to another storage object. - -Args: - - rgiidExclude(typing.Tuple[typing.Any, typing.Any]):List of IID's to be excluded. Use empty seq to exclude all objects, or None to indicate no excludes. - snbExclude(typing.Any):Reserved for later - Must be None - stgDest(PyIStorage):The open storage object into which this storage object is to be copied. The destination storage object can be a different implementation of the PyIStorage interface from the source storage object. Thus, IStorage::CopyTo can only use publicly available methods of the destination storage object. If stgDest is open in transacted mode, it can be reverted by calling its PyIStorage::Revert method. - -Returns: - - None - - """ - pass - - - def MoveElementTo(self,Name:'typing.Any',stgDest:'PyIStorage',NewName:'typing.Any',Flags:'typing.Any') -> 'None': - """ - Copies or moves a substorage or stream from this storage object to another - -storage object. - -Args: - - Name(typing.Any):A string that contains the name of the element in this storage object to be moved or copied. - stgDest(PyIStorage):PyIStorage for the destination storage object. - NewName(typing.Any):A string that contains the new name for the element in its new storage object. - Flags(typing.Any):Specifies whether to move or copy (storagecon.STGMOVE_MOVE or STGMOVE_COPY) - -Returns: - - None - - """ - pass - - - def Commit(self,grfCommitFlags:'typing.Any') -> 'None': - """ - Ensures that any changes made to a storage object open in transacted mode are reflected - -in the parent storage; for a root storage, reflects the changes in the actual device, for example, a file on disk. - -For a root storage object opened in direct mode, this method has no effect except to flush all memory buffers to the - -disk. For non-root storage objects in direct mode, this method has no effect. - -Args: - - grfCommitFlags(typing.Any):Controls how the changes are committed to the storage object. See the STGC enumeration for a definition of these values. - -Returns: - - None - - """ - pass - - - def Revert(self,) -> 'None': - """ - Discards all changes that have been made to the storage object since the last commit. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnumElements(self,reserved1:'typing.Any'=0,reserved2:'typing.Any'=None,reserved3:'typing.Any'=0) -> 'PyIEnumSTATSTG': - """ - Retrieves an enumerator object that can be used to enumerate the - -storage and stream objects contained within this storage object. - -Args: - - reserved1(typing.Any):Reserved - must be zero. - reserved2(typing.Any):A reserved param. Always pass None. NULL is always passed to the COM function - reserved3(typing.Any):Reserved - must be zero. - -Returns: - - PyIEnumSTATSTG - - """ - pass - - - def DestroyElement(self,name:'str') -> 'None': - """ - Removes the specified storage or stream from this storage object. - -Args: - - name(str):The name of the element to be removed. - -Returns: - - None - - """ - pass - - - def RenameElement(self,OldName:'typing.Any',NewName:'typing.Any') -> 'None': - """ - Renames the specified substorage or stream in this storage object. - -Args: - - OldName(typing.Any):The name of the substorage or stream to be changed. - NewName(typing.Any):The new name for the specified sustorage or stream. - -Returns: - - None - - """ - pass - - - def SetElementTimes(self,name:'typing.Any',ctime:'PyTime',atime:'PyTime',mtime:'PyTime') -> 'None': - """ - Sets the modification, access, and creation times of the specified storage - -element, if supported by the underlying file system. - -Args: - - name(typing.Any):The name of the storage object element whose times are to be modified. If NULL, the time is set on the root storage rather than one of its elements. - ctime(PyTime):Either the new creation time for the element or None if the creation time is not to be modified. - atime(PyTime):Either the new access time for the element or None if the access time is not to be modified. - mtime(PyTime):Either the new modification time for the element or None if the modification time is not to be modified. - -Returns: - - None - - """ - pass - - - def SetClass(self,clsid:'PyIID') -> 'None': - """ - Assigns the specified CLSID to this storage object. - -Args: - - clsid(PyIID):The class identifier (CLSID) that is to be associated with the storage object. - -Returns: - - None - - """ - pass - - - def SetStateBits(self,grfStateBits:'typing.Any',grfMask:'typing.Any') -> 'None': - """ - Stores up to 32 bits of state information in this storage object. - -Args: - - grfStateBits(typing.Any):Specifies the new values of the bits to set. No legal values are defined for these bits; they are all reserved for future use and must not be used by applications. - grfMask(typing.Any):A binary mask indicating which bits in grfStateBits are significant in this call. - -Returns: - - None - - """ - pass - - - def Stat(self,grfStatFlag:'typing.Any') -> 'STATSTG': - """ - Retrieves the STATSTG structure for this open storage object. - -Args: - - grfStatFlag(typing.Any):Specifies that some of the fields in the STATSTG structure are not returned, thus saving a memory allocation operation. Values are taken from the STATFLAG enumeration. - -Returns: - - STATSTG - - """ - pass - - -class PyIStream(object): - """A Python interface to IStream""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Read(self,numBytes:'typing.Any') -> 'str': - """ - Read the specified number of bytes from the string. - -Args: - - numBytes(typing.Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - -Returns: - - str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - - - """ - pass - - - def read(self,numBytes:'typing.Any') -> 'str': - """ - Read the specified number of bytes from the string. - -Args: - - numBytes(typing.Any):The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - -Returns: - - str:The number of bytes to read from the stream. Must not be zero.Return ValueThe result is a string containing binary data. - - - """ - pass - - - def Write(self,data:'str') -> 'None': - """ - Write data to a stream - -Args: - - data(str):The binary data to write. - -Returns: - - None - - """ - pass - - - def write(self,data:'str') -> 'None': - """ - Write data to a stream - -Args: - - data(str):The binary data to write. - -Returns: - - None - - """ - pass - - - def Seek(self,offset:'typing.Any',origin:'typing.Any') -> 'ULARGE_INTEGER': - """ - Changes the seek pointer to a new location. - -Args: - - offset(typing.Any):The new location - origin(typing.Any):Relative to where? - -Returns: - - ULARGE_INTEGER - - """ - pass - - - def SetSize(self,newSize:'ULARGE_INTEGER') -> 'None': - """ - Changes the size of the stream object. - -Args: - - newSize(ULARGE_INTEGER):The new size - -Returns: - - None - - """ - pass - - - def CopyTo(self,stream:'PyIStream',cb:'ULARGE_INTEGER') -> 'ULARGE_INTEGER': - """ - Copies a specified number of bytes from the current seek pointer in the - -stream to the current seek pointer in another stream. - -Args: - - stream(PyIStream):The stream to write to. - cb(ULARGE_INTEGER):The number of bytes to write.Return ValueThe return value is the number of bytes actually written. - -Returns: - - ULARGE_INTEGER:The number of bytes to write.Return ValueThe return value is the number of bytes actually written. - - - """ - pass - - - def Commit(self,flags:'typing.Any') -> 'None': - """ - Ensures that any changes made to a stream object open in transacted mode are reflected in - -the parent storage. - -Args: - - flags(typing.Any):Controls how changes are performed. - -Returns: - - None - - """ - pass - - - def Revert(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def LockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'typing.Any') -> 'None': - """ - Restricts access to a specified range of bytes in the stream. - -Args: - - offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. - cb(ULARGE_INTEGER):The number of bytes to restrict. - lockType(typing.Any):Restrictions requested. - -Returns: - - None - - """ - pass - - - def UnLockRegion(self,offset:'ULARGE_INTEGER',cb:'ULARGE_INTEGER',lockType:'typing.Any') -> 'None': - """ - None - -Args: - - offset(ULARGE_INTEGER):Integer that specifies the byte offset for the beginning of the range. - cb(ULARGE_INTEGER):The number of bytes to restrict. - lockType(typing.Any):Restrictions requested. - -Returns: - - None - - """ - pass - - - def Clone(self,) -> 'PyIStream': - """ - Creates a new stream object with its own seek pointer that references the - -same bytes as the original stream. - -Args: - - - -Returns: - - PyIStream - - """ - pass - - - def Stat(self,grfStatFlag:'typing.Any'=0) -> 'STATSTG': - """ - Returns information about the stream - -Args: - - grfStatFlag(typing.Any):Flags. - -Returns: - - STATSTG - - """ - pass - - -class PyITask(object): - """Python object that encapsulates the ITask interface, inherits all the methods of PyIScheduledWorkItem""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetApplicationName(self,ApplicationName:'typing.Any') -> 'None': - """ - Specify which program the task will run - -Args: - - ApplicationName(typing.Any):Program to execute - -Returns: - - None - - """ - pass - - - def GetApplicationName(self,) -> 'typing.Any': - """ - Retrieve name of program that task will run - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetParameters(self,Parameters:'typing.Any') -> 'None': - """ - Sets command line parameters - -Args: - - Parameters(typing.Any):String containing command line parameters - -Returns: - - None - - """ - pass - - - def GetParameters(self,) -> 'typing.Any': - """ - Returns command line parameters for task - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetWorkingDirectory(self,WorkingDirectory:'typing.Any') -> 'None': - """ - Sets initial working directory for task - -Args: - - WorkingDirectory(typing.Any):Initial working directory - -Returns: - - None - - """ - pass - - - def GetWorkingDirectory(self,) -> 'typing.Any': - """ - Return working directory that the task will start out in - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetPriority(self,Priority:'typing.Any') -> 'None': - """ - Sets priority for task - -Args: - - Priority(typing.Any):One of REALTIME_PRIORITY_CLASS, HIGH_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, IDLE_PRIORITY_CLASS - -Returns: - - None - - """ - pass - - - def GetPriority(self,) -> 'typing.Any': - """ - Gets priority that will be assigned to process when task starts - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetTaskFlags(self,dwFlags:'typing.Any') -> 'None': - """ - Sets flag for task. - -Args: - - dwFlags(typing.Any):None currently defined - -Returns: - - None - - """ - pass - - - def GetTaskFlags(self,) -> 'typing.Any': - """ - Retrieve task flags (None currently defined) - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetMaxRunTime(self,MaxRunTimeMS:'typing.Any') -> 'None': - """ - Sets maximun run time for task, use -1 to disable - -Args: - - MaxRunTimeMS(typing.Any):Specified in milliseconds (use -1 to disable, not 0) - -Returns: - - None - - """ - pass - - - def GetMaxRunTime(self,) -> 'typing.Any': - """ - Returns maximun run time for task - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyITaskScheduler(object): - """Interface to the Windows Task Scheduler""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetTargetComputer(self,Computer:'typing.Any') -> 'None': - """ - Connect to another machine to manage its tasks - -Args: - - Computer(typing.Any):Name of system to connect toCommentsLeading backslashes are required. Call will succeed without them, but no other methods will work. - -Returns: - - None - - """ - pass - - - def GetTargetComputer(self,) -> 'typing.Any': - """ - Returns name of computer that the Task Scheduler is - -connected to - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Enum(self,) -> 'typing.Tuple[str, ...]': - """ - Retrieve list of task names - -Args: - - - -Returns: - - typing.Tuple[str, ...] - - """ - pass - - - def Activate(self,Name:'typing.Any',riid:'PyIID') -> 'PyITask': - """ - Opens the specified task and returns an ITask interface for it - -Args: - - Name(typing.Any):Name of task to retreive - riid(PyIID):IID to return, currently only IID_ITask accepted - -Returns: - - PyITask - - """ - pass - - - def Delete(self,TaskName:'typing.Any') -> 'None': - """ - Delete task by name - -Args: - - TaskName(typing.Any):Name of task to delete - -Returns: - - None - - """ - pass - - - def NewWorkItem(self,TaskName:'typing.Any',rclsid:'PyIID',riid:'PyIID') -> 'PyITask': - """ - Creates a new task - -Args: - - TaskName(typing.Any):Name of new task - rclsid(PyIID):Class id of work item, currently only CLSID_CTask (defaults if not passed in) - riid(PyIID):Interface IID to return, currently only IID_ITask (defaults if not passed in) - -Returns: - - PyITask - - """ - pass - - - def AddWorkItem(self,TaskName:'typing.Any',WorkItem:'PyITask') -> 'None': - """ - Create a new scheduled task from PyITask object - -Args: - - TaskName(typing.Any):Name of task to be created - WorkItem(PyITask):Existing PyITask objectCommentsThe PyItask passed in is modified in place and on success is associated with the new task, not the old one - -Returns: - - None - - """ - pass - - - def IsOfType(self,Name:'typing.Any',riid:'PyIID') -> 'None': - """ - Check if named object supports specified interface - -Args: - - Name(typing.Any):Name of object - riid(PyIID):Named object is checked that it supports the interface of this IID - -Returns: - - None - - """ - pass - - -class PyITaskTrigger(object): - """Python object that encapsulates the ITaskTrigger interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetTrigger(self,Trigger:'PyTASK_TRIGGER') -> 'None': - """ - Set trigger parameters from a PyTASK_TRIGGER object - -Args: - - Trigger(PyTASK_TRIGGER):Python object representing a TASK_TRIGGER struct - -Returns: - - None - - """ - pass - - - def GetTrigger(self,) -> 'PyTASK_TRIGGER': - """ - Retrieves trigger parms as a PyTASK_TRIGGER object - -Args: - - - -Returns: - - PyTASK_TRIGGER - - """ - pass - - - def GetTriggerString(self,) -> 'str': - """ - Build text summary of trigger - -Args: - - - -Returns: - - str - - """ - pass - - -class PyITaskbarList(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def HrInit(self,) -> 'None': - """ - Intializes the interface before use - -Args: - - - -Returns: - - None - - """ - pass - - - def AddTab(self,hwnd:'int') -> 'None': - """ - Places a window on the taskbar - -Args: - - hwnd(int):Handle to window, should have WS_CAPTION style - -Returns: - - None - - """ - pass - - - def DeleteTab(self,hwnd:'int') -> 'None': - """ - Removes a window from the taskbar - -Args: - - hwnd(int):Handle to window, should have WS_CAPTION style - -Returns: - - None - - """ - pass - - - def ActivateTab(self,hwnd:'int') -> 'None': - """ - Marks a window as the active tab on the taskbar - -Args: - - hwnd(int):Handle to window, should have WS_CAPTION style - -Returns: - - None - - """ - pass - - - def SetActiveAlt(self,hwnd:'int') -> 'None': - """ - Sets the window as the active tab, without displaying it as pressed on the - -taskbar - -Args: - - hwnd(int):Handle to window, should have WS_CAPTION style - -Returns: - - None - - """ - pass - - -class PyITransferAdviseSink(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def UpdateProgress(self,SizeCurrent:'typing.Any',SizeTotal:'typing.Any',FilesCurrent:'typing.Any',FilesTotal:'typing.Any',FoldersCurrent:'typing.Any',FoldersTotal:'typing.Any') -> 'None': - """ - Gives an estimate of amount of work completed - -Args: - - SizeCurrent(typing.Any):Bytes transferred so far - SizeTotal(typing.Any):Total number of bytes - FilesCurrent(typing.Any):Number of files processed already - FilesTotal(typing.Any):Total number of files - FoldersCurrent(typing.Any):Number of folders processed already - FoldersTotal(typing.Any):Total number of folder - -Returns: - - None - - """ - pass - - - def UpdateTransferState(self,State:'typing.Any') -> 'None': - """ - Notifies client of current operation state - -Args: - - State(typing.Any):A TRANSFER_ADVISE_STATE value (shellcon.TS_*) - -Returns: - - None - - """ - pass - - - def ConfirmOverwrite(self,Source:'PyIShellItem',DestParent:'PyIShellItem',Name:'typing.Any') -> 'typing.Any': - """ - Asks user for permission to overwrite an existing item - -Args: - - Source(PyIShellItem):The item that will replace existing item - DestParent(PyIShellItem):Folder into which item will be placed - Name(typing.Any):New name for item, or None if item is to keep original name - -Returns: - - typing.Any - - """ - pass - - - def ConfirmEncryptionLoss(self,Source:'PyIShellItem') -> 'typing.Any': - """ - Notifies user when an item can't be encrypted at - -destination - -Args: - - Source(PyIShellItem):Item that failed to be encrypted - -Returns: - - typing.Any - - """ - pass - - - def FileFailure(self,Item:'PyIShellItem',ItemName:'typing.Any',Error:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Notifies user of failure, and queries how to proceed - -Args: - - Item(PyIShellItem):The shell item that caused the failure - ItemName(typing.Any):Name of item if different than above, can be None - Error(typing.Any):HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure - -Returns: - - typing.Tuple[typing.Any, typing.Any]:HRESULT error code from operationReturn ValueReturns the HRESULT and new file name if renaming resolved the failure - - - """ - pass - - - def SubStreamFailure(self,Item:'PyIShellItem',StreamName:'typing.Any',Error:'typing.Any') -> 'typing.Any': - """ - Notifies user of failure on a substream, and queries how to - -proceed - -Args: - - Item(PyIShellItem):The item whose stream couldn't be created - StreamName(typing.Any):Name of the failed stream - Error(typing.Any):HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled - -Returns: - - typing.Any:HRESULT failure code from operationReturn ValueReturns COPYENGINE_S_* if operation is to continue, or COPYENGINE_E_* HRESULT if cancelled - - - """ - pass - - - def PropertyFailure(self,Item:'PyIShellItem',key:'PyPROPERTYKEY',Error:'typing.Any') -> 'typing.Any': - """ - Notifies user of failure to set an item's properties - -Args: - - Item(PyIShellItem):The item whose property could not be set - key(PyPROPERTYKEY):Identifies the property that caused the error, or None if all properties failed - Error(typing.Any):HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or COPYENGINE_E_USERCANCELLED to cancel pending operations - -Returns: - - typing.Any:HRESULT error code returned by the operationReturn ValueReturns COPYENGINE_S_* to indicate that the failure was handled, or - -COPYENGINE_E_USERCANCELLED to cancel pending operations - - - """ - pass - - -class PyITransferDestination(object): - """Implemented by shell extensions that act as targets for item copy or move operations""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Advise(self,Sink:'PyITransferAdviseSink') -> 'typing.Any': - """ - Connects an advise sink - -Args: - - Sink(PyITransferAdviseSink):Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise - -Returns: - - typing.Any:Event sink to receive notificationsReturn ValueReturns an id for the connection, to be passed to PyITransferDestination::Unadvise - - - """ - pass - - - def Unadvise(self,Cookie:'typing.Any') -> 'None': - """ - Disconnects an advise sink - -Args: - - Cookie(typing.Any):Connection identifier as returned by PyITransferDestination::Advise - -Returns: - - None - - """ - pass - - - def CreateItem(self,Name:'typing.Any',Attributes:'typing.Any',Size:'typing.Any',Flags:'typing.Any',riidItem:'PyIID',riidResources:'PyIID') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Requests that a new item be created - -Args: - - Name(typing.Any):Filename to be created - Attributes(typing.Any):File attributes - Size(typing.Any):Size of file - Flags(typing.Any):Combination of shellcon.TSF_* flags - riidItem(PyIID):Item interface to return - riidResources(PyIID):Resource interface to returnReturn ValueReturns the HRESULT and requested interfaces. Interfaces may be None if function returns one of the informational codes (shellcon.COPYENGINE_S_*) - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any]:Resource interface to return -Return ValueReturns the HRESULT and requested interfaces. Interfaces may be None if - -function returns one of the informational codes (shellcon.COPYENGINE_S_*) - - - """ - pass - - -class PyITransferMediumItem(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyITransferSource(object): - """Implemented by shell folders that can act as the source of shell item operations""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Advise(self,Sink:'PyITransferAdviseSink') -> 'typing.Any': - """ - Connects an advise sink to receive notifications - -Args: - - Sink(PyITransferAdviseSink):Event sink to respond to notifications - -Returns: - - typing.Any - - """ - pass - - - def Unadvise(self,Cookie:'typing.Any') -> 'None': - """ - Disconnects an event sink - -Args: - - Cookie(typing.Any):Connection id as returned by PyITransferSource::Advise - -Returns: - - None - - """ - pass - - - def SetProperties(self,proparray:'PyIPropertyChangeArray') -> 'None': - """ - Specifies changes to be applied to items' properties - -Args: - - proparray(PyIPropertyChangeArray):Property changes to be applied by PyITransferSource::ApplyPropertiesToItem - -Returns: - - None - - """ - pass - - - def OpenItem(self,Item:'PyIShellItem',flags:'typing.Any',riid:'PyIID') -> 'typing.Tuple[typing.Any, PyIShellItemResources]': - """ - Initiates the copying of an item - -Args: - - Item(PyIShellItem):The item to be copied. - flags(typing.Any):Combination of shellcon.TSF_* flags - riid(PyIID):The interface to return - -Returns: - - typing.Tuple[typing.Any, PyIShellItemResources] - - """ - pass - - - def MoveItem(self,Item:'PyIShellItem',ParentDst:'PyIShellItem',NameDst:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': - """ - Moves a shell item into another folder - -Args: - - Item(PyIShellItem):Item to be moved - ParentDst(PyIShellItem):The folder into which it will be moved - NameDst(typing.Any):New name for item after move, None to keep same name - flags(typing.Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions of expected actions for specific error codes. - -Returns: - - typing.Tuple[typing.Any, PyIShellItem]:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT from the operation and the new shell item, which may be None - -when the code in one of the informational COPYENGINE_S_* values. See MSDN for descriptions - -of expected actions for specific error codes. - - - """ - pass - - - def RecycleItem(self,Source:'PyIShellItem',ParentDest:'PyIShellItem',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': - """ - Moves an item to the recycle bin - -Args: - - Source(PyIShellItem):The item to be recycled - ParentDest(PyIShellItem):Shell item representing the recycle bin - flags(typing.Any):Combination of shellcon.TSF_* flags - -Returns: - - typing.Tuple[typing.Any, PyIShellItem] - - """ - pass - - - def RemoveItem(self,Source:'PyIShellItem',flags:'typing.Any') -> 'typing.Any': - """ - Deletes an item without recycling - -Args: - - Source(PyIShellItem):The item to be deleted - flags(typing.Any):Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation - -Returns: - - typing.Any:Combination of shellcon.TSF_* flagsReturn ValueReturns the HRESULT of the operation - - - """ - pass - - - def RenameItem(self,Source:'PyIShellItem',NewName:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': - """ - Renames a shell item - -Args: - - Source(PyIShellItem):Item to be renamed - NewName(typing.Any):The name to be given to the item - flags(typing.Any):Combination of shellcon.TSF_* flags - -Returns: - - typing.Tuple[typing.Any, PyIShellItem] - - """ - pass - - - def LinkItem(self,Source:'PyIShellItem',ParentDest:'PyIShellItem',NewName:'typing.Any',flags:'typing.Any') -> 'typing.Tuple[typing.Any, PyIShellItem]': - """ - Not implemented, according to MSDN - -Args: - - Source(PyIShellItem):Description for psiSource - ParentDest(PyIShellItem):Description for psiParentDest - NewName(typing.Any):Description for NewName - flags(typing.Any):Combination of shellcon.TSF_* flags - -Returns: - - typing.Tuple[typing.Any, PyIShellItem] - - """ - pass - - - def ApplyPropertiesToItem(self,Source:'PyIShellItem') -> 'PyIShellItem': - """ - None - -Args: - - Source(PyIShellItem):Item whose properties are to be changed - -Returns: - - PyIShellItem - - """ - pass - - - def GetDefaultDestinationName(self,Source:'PyIShellItem',ParentDest:'PyIShellItem') -> 'typing.Any': - """ - Determines the name of an item as it would appear in a - -given folder - -Args: - - Source(PyIShellItem):The item whose name is wanted - ParentDest(PyIShellItem):The destination folder - -Returns: - - typing.Any - - """ - pass - - - def EnterFolder(self,ChildFolderDest:'PyIShellItem') -> 'typing.Any': - """ - Informs the copy engine that a folder will be the target of a file - -operation - -Args: - - ChildFolderDest(PyIShellItem):The destination folder for the operation - -Returns: - - typing.Any - - """ - pass - - - def LeaveFolder(self,ChildFolderDest:'PyIShellItem') -> 'typing.Any': - """ - Informs the copy engine that the operation on a destination folder is - -finished - -Args: - - ChildFolderDest(PyIShellItem):Destination folder - -Returns: - - typing.Any - - """ - pass - - -class PyITypeComp(object): - """An object that implements the ITypeComp interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Bind(self,szName:'str',wflags:'typing.Any'=0) -> 'typing.Any': - """ - binds to a variable/type - -Args: - - szName(str):The name to bind to - wflags(typing.Any):the bind flags - -Returns: - - typing.Any - - """ - pass - - - def BindType(self,szName:'str') -> 'typing.Any': - """ - binds to a type - -Args: - - szName(str):The name to bind to - -Returns: - - typing.Any - - """ - pass - - -class PyITypeInfo(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetContainingTypeLib(self,) -> 'typing.Tuple[PyITypeLib, typing.Any]': - """ - Retrieves the containing type library and the index of - -the type description within that type library. - -Args: - - - -Returns: - - typing.Tuple[PyITypeLib, typing.Any] - - """ - pass - - - def GetDocumentation(self,memberId:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Retrieves the documentation string, - -the complete Help file name and path, and the context ID for the Help topic for a specified type description. - -Args: - - memberId(typing.Any): - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetFuncDesc(self,memberId:'typing.Any') -> 'FUNCDESC': - """ - None - -Args: - - memberId(typing.Any): - -Returns: - - FUNCDESC - - """ - pass - - - def GetImplTypeFlags(self,index:'typing.Any') -> 'typing.Any': - """ - Retrieves the IMPLTYPEFLAGS enumeration for one implemented interface or - -base interface in a type description. - -Args: - - index(typing.Any): - -Returns: - - typing.Any - - """ - pass - - - def GetIDsOfNames(self,) -> 'typing.Any': - """ - Maps between member names and member IDs, and parameter names and parameter - -IDs. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetNames(self,memberId:'typing.Any') -> 'typing.Any': - """ - Retrieves the variable with the specified member ID (or the name of - -the property or method and its parameters) that correspond to the specified function ID. - -Args: - - memberId(typing.Any): - -Returns: - - typing.Any - - """ - pass - - - def GetTypeAttr(self,) -> 'TYPEATTR': - """ - None - -Args: - - - -Returns: - - TYPEATTR - - """ - pass - - - def GetRefTypeInfo(self,hRefType:'typing.Any') -> 'PyITypeInfo': - """ - If a type description references other type descriptions, it - -retrieves the referenced type descriptions. - -Args: - - hRefType(typing.Any): - -Returns: - - PyITypeInfo - - """ - pass - - - def GetRefTypeOfImplType(self,hRefType:'typing.Any') -> 'typing.Any': - """ - Retrieves the type description of the implemented interface types. - -Args: - - hRefType(typing.Any):CommentsIf a type description describes a COM class, it retrieves the type description of the implemented interface types. For an interface, GetRefTypeOfImplType returns the type information for inherited interfaces, if any exist. - -Returns: - - typing.Any - - """ - pass - - - def GetVarDesc(self,memberId:'typing.Any') -> 'VARDESC': - """ - None - -Args: - - memberId(typing.Any): - -Returns: - - VARDESC - - """ - pass - - - def GetTypeComp(self,) -> 'PyITypeComp': - """ - None - -Args: - - - -Returns: - - PyITypeComp - - """ - pass - - -class PyITypeLib(object): - """An object that implements the ITypeLib interface.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDocumentation(self,index:'typing.Any') -> 'typing.Any': - """ - Retrieves documentation information about the library. - -Args: - - index(typing.Any):The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) - -Returns: - - typing.Any:The index of the type description within the libraryReturn ValueThe return type is a tuple of (name of item, documentation string, help context integer, help file name) - - - """ - pass - - - def GetLibAttr(self,) -> 'TLIBATTR': - """ - Retrieves the libraries attributes - -Args: - - - -Returns: - - TLIBATTR - - """ - pass - - - def GetTypeComp(self,) -> 'PyITypeComp': - """ - None - -Args: - - - -Returns: - - PyITypeComp - - """ - pass - - - def GetTypeInfo(self,index:'typing.Any') -> 'PyITypeInfo': - """ - Retrieves the specified type description in the library. - -Args: - - index(typing.Any):The index of the type description within the library - -Returns: - - PyITypeInfo - - """ - pass - - - def GetTypeInfoCount(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTypeInfoOfGuid(self,iid:'PyIID') -> 'PyITypeInfo': - """ - Retrieves the type info of the specified GUID. - -Args: - - iid(PyIID):GUID of the type description. - -Returns: - - PyITypeInfo - - """ - pass - - - def GetTypeInfoType(self,index:'typing.Any') -> 'typing.Any': - """ - Retrieves the type of a type description. - -Args: - - index(typing.Any):The index of the type description within the library - -Returns: - - typing.Any - - """ - pass - - -class PyIUniformResourceLocator(object): - """Interface to an internet shortcut""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetURL(self,) -> 'typing.Any': - """ - Returns the URL for the shortcut - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetURL(self,URL:'typing.Any',InFlags:'typing.Any'=0) -> 'None': - """ - Sets the URL for the shortcut - -Args: - - URL(typing.Any):The url to be set - InFlags(typing.Any):One of the shellcon.IURL_SETURL* flags - -Returns: - - None - - """ - pass - - - def InvokeCommand(self,Verb:'typing.Any',Flags:'typing.Any'=0,hwndParent:'int'=0) -> 'typing.Any': - """ - Performs one of the object's predefined actions - -Args: - - Verb(typing.Any):The verb to be invoked - Flags(typing.Any):Combination of shellcon.IURL_INVOKECOMMAND_* flags - hwndParent(int):Handle to parent window - -Returns: - - typing.Any - - """ - pass - - -class PyIUnknown(object): - """The base object for all PythonCOM objects. Wraps a COM IUnknown object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def QueryInterface(self,iid:'typing.Any',useIID:'typing.Any'=None) -> 'PyIUnknown': - """ - Queries an object for a specific interface. - -Args: - - iid(typing.Any):The IID requested. - useIID(typing.Any):If provided and not None, will return an interface for the specified IID if (and only if) a native interface can not be supported. If the interface specified by iid is natively supported, this option is ignored.CommentsThe useIID parameter is a very dangerous option, and should only be used when you are sure you need it! By specifying this parameter, you are telling the COM framework that regardless of the true type of the result (as specified by iid), a Python wrapper of type useIID will be created. If iid does not derive from useIID, then it is almost certain that using the object will cause an Access Violation. For example, this option can be used to obtain a PyIUnknown object if pythoncom does not natively support the interface. Another example might be to return an unsupported persistence interface as a PyIPersist instance. For backwards compatibility: the integer 0 implies None, and the integer 1 implies IID_IUnknown.Return ValueThe result is always an object derived from PyIUnknown. Any error (including E_NOINTERFACE) will generate a com_error exception. - -Returns: - - PyIUnknown:If provided and not None, will return an - -interface for the specified IID if (and only if) a native interface can not be supported. - -If the interface specified by iid is natively supported, this option is ignored. -Comments - -The useIID parameter is a very dangerous option, and should only - -be used when you are sure you need it! - -By specifying this parameter, you are telling the COM framework that regardless - -of the true type of the result (as specified by iid), a Python wrapper - -of type useIID will be created. If iid does not derive from useIID, - -then it is almost certain that using the object will cause an Access Violation. - -For example, this option can be used to obtain a PyIUnknown object if - -pythoncom does not natively support the interface. - -Another example might be to return an unsupported persistence interface as a - -PyIPersist instance. - -For backwards compatibility: the integer 0 implies None, and the - -integer 1 implies IID_IUnknown. -Return ValueThe result is always an object derived from PyIUnknown. - -Any error (including E_NOINTERFACE) will generate a com_error exception. - - - """ - pass - - -class PyIViewObject(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Draw(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any',hdcTargetDev:'typing.Any',hdcDraw:'typing.Any',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',funcContinue:'typing.Any',obContinue:'typing.Any') -> 'None': - """ - Description of Draw. - -Args: - - dwDrawAspect(typing.Any):Description for dwDrawAspect - lindex(typing.Any):Description for lindex - aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. - hdcTargetDev(typing.Any):Description for hdcTargetDev - hdcDraw(typing.Any):Description for hdcDraw - arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Bounds rectangle. - arg1(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):WBounds rectangle. - funcContinue(typing.Any):A continue function. - obContinue(typing.Any):Value passed to the function. - -Returns: - - None - - """ - pass - - - def GetColorSet(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any',hicTargetDev:'typing.Any') -> 'None': - """ - Description of GetColorSet. - -Args: - - dwDrawAspect(typing.Any):Description for dwDrawAspect - lindex(typing.Any):Description for lindex - aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. - hicTargetDev(typing.Any):Description for hicTargetDev - -Returns: - - None - - """ - pass - - - def Freeze(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',aspectFlags:'typing.Any') -> 'None': - """ - Description of Freeze. - -Args: - - dwDrawAspect(typing.Any):Description for dwDrawAspect - lindex(typing.Any):Description for lindex - aspectFlags(typing.Any):Integer value for the dwFlags item of the DVASPECTINFO structure. - -Returns: - - None - - """ - pass - - - def Unfreeze(self,dwFreeze:'typing.Any') -> 'None': - """ - Description of Unfreeze. - -Args: - - dwFreeze(typing.Any):Description for dwFreeze - -Returns: - - None - - """ - pass - - - def SetAdvise(self,aspects:'typing.Any',advf:'typing.Any',pAdvSink:'typing.Any') -> 'None': - """ - Description of SetAdvise. - -Args: - - aspects(typing.Any):Description for aspects - advf(typing.Any):Description for advf - pAdvSink(typing.Any):Description for pAdvSink - -Returns: - - None - - """ - pass - - - def GetAdvise(self,) -> 'None': - """ - Description of GetAdvise. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyIViewObject2(object): - """Description of the interface""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetExtent(self,dwDrawAspect:'typing.Any',lindex:'typing.Any',targetDevice:'typing.Any') -> 'None': - """ - Description of GetExtent. - -Args: - - dwDrawAspect(typing.Any):Description for dwDrawAspect - lindex(typing.Any):Description for lindex - targetDevice(typing.Any):Description for lindex - -Returns: - - None - - """ - pass - - -class PyMAPINAMEIDArray(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyOLEMENUGROUPWIDTHS(object): - """Tuple containing 6 ints indicating nbr of options in each menu group""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyPROPERTYKEY(object): - """A tuple of a fmtid and property id (IID, int) that uniquely identifies a property""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyPROPVARIANT(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def vt(self)->'typing.Any': - """The variant type, a combination of VARENUM values including flags. (read only)MethodsGetValueReturns an object representing the variant value ToStringReturns the value as a string ChangeTypeCoerce to a different variant type """ - pass - - - def GetValue(self,) -> 'typing.Any': - """ - Returns an object representing the variant value - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def ToString(self,) -> 'typing.Any': - """ - Returns the value as a string - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def ChangeType(self,Type:'typing.Any',Flags:'typing.Any'=0) -> 'PyPROPVARIANT': - """ - Coerce to a different variant type - -Args: - - Type(typing.Any):New variant type, combination of pythoncom.VT_* values - Flags(typing.Any):Reserved (PROPVAR_CHANGE_FLAGS)Win32 API References - -Returns: - - PyPROPVARIANT - - """ - pass - - -class PySAndRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySBinaryArray(object): - """A sequence of strings containing binary data.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySBitMaskRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySContentRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySExistRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySHELL_ITEM_RESOURCE(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySNotRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySOrRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySPropTagArray(object): - """A sequence of integers""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySPropValue(object): - """A MAPI property value. Property values can either be passed from - -python into MAPI functions, or returned from MAPI functions to Python.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySPropValueArray(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySPropertyRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySRestriction(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySRow(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySRowSet(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySSortOrderItem(object): - """An item in a SortOrderSet.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySSortOrderSet(object): - """An object describing a SortOrderSet.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PySTGMEDIUM(object): - """A STGMEDIUM object represents a COM STGMEDIUM structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def tymed(self)->'typing.Any': - """An integer indicating the type of data in the stgmedium""" - pass - - - @property - def data(self)->'typing.Any': - """The data in the stgmedium. The result depends on the value of the 'tymed' property of the PySTGMEDIUM object.tymedResult TypeTYMED_GDIAn integer GDI handleTYMED_MFPICTAn integer METAFILE handleTYMED_ENHMFAn integer ENHMETAFILE handleTYMED_HGLOBALA string with the bytes of the global memory object.TYMED_FILEA string/unicode filenameTYMED_ISTREAMA PyIStream objectTYMED_ISTORAGEA PyIStorage object""" - pass - - - @property - def data_handle(self)->'typing.Any': - """The raw 'integer' representation of the data. For TYMED_HGLOBAL, this is the handle rather than the string data. For the string and interface types, this is an integer holding the pointer.""" - pass - - - def set(self,tymed:'typing.Any',data:'typing.Any') -> 'None': - """ - Sets the type and data of the object. - -Args: - - tymed(typing.Any):The type of the data - data(typing.Any): - -Returns: - - None - - """ - pass - - -class PyTASK_TRIGGER(object): - """Python object representing a TASK_TRIGGER structure via the structmember Api""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class RTF_WCSINFO(object): - """A tuple representing a RTF_WCSINFO structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SHFILEINFO(object): - """A tuple representing a SHFILEINFO structure - -Represented as a tuple of (hIcon, iIcon, dwAttributes, displayName, typeName)""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SHFILEOPSTRUCT(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SI_ACCESS(object): - """Tuple of 4 items representing SI_ACCESS struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SI_INHERIT_TYPE(object): - """Tuple of 3 items describing a method of inheritance""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class SI_OBJECT_INFO(object): - """Six-tuple representing SI_OBJECT_INFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class STATSTG(object): - """A tuple representing a STATSTG structure""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class TLIBATTR(object): - """Type library attributes are represented as a tuple of:""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class TYPEATTR(object): - """A TYPEATTR object represents a COM TYPEATTR structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def iid(self)->'PyIID': - """The IID""" - pass - - - @property - def lcid(self)->'typing.Any': - """The lcid""" - pass - - - @property - def memidConstructor(self)->'typing.Any': - """ID of constructor""" - pass - - - @property - def memidDestructor(self)->'typing.Any': - """ID of destructor""" - pass - - - @property - def cbSizeInstance(self)->'typing.Any': - """The size of an instance of this type""" - pass - - - @property - def typekind(self)->'typing.Any': - """The kind of type this information describes. One of the win32con.TKIND_* constants.""" - pass - - - @property - def cFuncs(self)->'typing.Any': - """Number of functions.""" - pass - - - @property - def cVars(self)->'typing.Any': - """Number of variables/data members.""" - pass - - - @property - def cImplTypes(self)->'typing.Any': - """Number of implemented interfaces.""" - pass - - - @property - def cbSizeVft(self)->'typing.Any': - """The size of this type's VTBL""" - pass - - - @property - def cbAlignment(self)->'typing.Any': - """Byte alignment for an instance of this type.""" - pass - - - @property - def wTypeFlags(self)->'typing.Any': - """One of the pythoncom TYPEFLAG_""" - pass - - - @property - def wMajorVerNum(self)->'typing.Any': - """Major version number.""" - pass - - - @property - def wMinorVerNum(self)->'typing.Any': - """Minor version number.""" - pass - - - @property - def tdescAlias(self)->'TYPEDESC': - """If TypeKind == pythoncom.TKIND_ALIAS, specifies the type for which this type is an alias.""" - pass - - - @property - def idldeskType(self)->'IDLDESC': - """IDL attributes of the described type.""" - pass - - -class TYPEDESC(object): - """A typedesc is a complicated, recursive object, - -It may be either a simple Python type, or a tuple of (indirectType, object), where object - -may be a simple Python type, or a tuple of etc ...""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class VARDESC(object): - """A VARDESC object represents a COM VARDESC structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def memid(self)->'typing.Any': - """The dispid of the member""" - pass - - - @property - def value(self)->'typing.Union[typing.Any]': - """A value for the variant. If PERINSTANCE then an offset into the instance, otherwise a variant converted to a Python object.""" - pass - - - @property - def elemdescVar(self)->'ELEMDESC': - """Object describing the member.""" - pass - - - @property - def varFlags(self)->'typing.Any': - """Variable flags""" - pass - - - @property - def varkind(self)->'typing.Any': - """Kind flags.""" - pass - - -class CHARFORMAT(object): - """Describes a CHARFORMAT tuple""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class CREATESTRUCT(object): - """A representation of a Windows CREATESTRUCT structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class LV_COLUMN(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class LV_ITEM(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PARAFORMAT(object): - """Describes a PARAFORMAT tuple""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyAssocCObject(object): - """An internal class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyAssocObject(object): - """An internal class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AttachObject(self,) -> 'None': - """ - Attaches a Python object for lookup of "virtual" functions. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetAttachedObject(self,) -> 'typing.Any': - """ - Returned the attached Python object, or None. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCBitmap(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateCompatibleBitmap(self,dc:'PyCDC',width:'typing.Any',height:'typing.Any') -> 'None': - """ - Creates a bitmap compatible with the specified device context. - -Args: - - dc(PyCDC):Specifies the device context. - width(typing.Any):The width (in bits) of the bitmap - height(typing.Any):The height (in bits) of the bitmap. - -Returns: - - None - - """ - pass - - - def GetSize(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns the size of the bitmap object. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetHandle(self,) -> 'typing.Any': - """ - Returns the HBITMAP for a bitmap object - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def LoadBitmap(self,idRes:'typing.Any',obDLL:'PyDLL'=None) -> 'None': - """ - Loads a bitmap from a DLL object. - -Args: - - idRes(typing.Any):The resource ID of the bitmap - obDLL(PyDLL):The DLL object to load from. - -Returns: - - None - - """ - pass - - - def LoadBitmapFile(self,fileObject:'typing.Any') -> 'None': - """ - Loads a bitmap (.BMP) format - -from a file object. - -Args: - - fileObject(typing.Any):The file object to load the .BMP format file from. - -Returns: - - None - - """ - pass - - - def LoadPPMFile(self,fileObject:'typing.Any',cols:'typing.Any',rows:'typing.Any') -> 'None': - """ - Loads a bitmap in Portable Pix Map (PPM) format - -from a file object. - -Args: - - fileObject(typing.Any):The file object to load the PPM format file from. - cols(typing.Any):The number of columns in the bitmap. - rows(typing.Any):The number of rows in the bitmap. - -Returns: - - None - - """ - pass - - - def Paint(self,dcObject:'PyCDC',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Paint a bitmap. - -Args: - - dcObject(PyCDC):The DC object to paint the bitmap to. - arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The destination rectangle to paint to. - arg1(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The source rectangle to paint from. - -Returns: - - None - - """ - pass - - - def GetInfo(self,) -> 'typing.Any': - """ - Returns the BITMAP structure info - -Args: - - - -Returns: - - typing.Any:PyCBitmap.GetInfo - -dict = GetInfo()Returns the BITMAP structure info -Return ValueA dictionary of integers, keyed by the following strings: - -bmType - -bmWidth - -bmHeight - -bmWidthBytes - -bmPlanes - -bmBitsPixel - - - """ - pass - - - def GetBitmapBits(self,asString:'typing.Any'=0) -> 'typing.Union[str, typing.Any]': - """ - Returns the bitmap bits. - -Args: - - asString(typing.Any):If False, the result is a tuple of integers, if True, the result is a Python string - -Returns: - - typing.Union[str, typing.Any] - - """ - pass - - - def SaveBitmapFile(self,dcObject:'PyCDC',Filename:'str') -> 'typing.Any': - """ - Saves a bitmap to a file. - -Args: - - dcObject(PyCDC):The DC object that has rendered the bitmap. - Filename(str):The file to save the bitmap to - -Returns: - - typing.Any - - """ - pass - - -class PyCBrush(object): - """An object encapsulating an MFC PyCBrush class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateSolidBrush(self,) -> 'None': - """ - Initializes a brush with a specified solid color. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSafeHandle(self,) -> 'typing.Any': - """ - Retrieves the HBRUSH for the brush as an integer - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCButton(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,caption:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': - """ - Creates the window for a new button object. - -Args: - - caption(str):The caption (text) for the button. - style(typing.Any):The style for the button. Use any of the win32con.BS_* constants. - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the button. - parent(PyCWnd):The parent window of the button. Usually a PyCDialog. - _id(typing.Any):The buttons control ID. - -Returns: - - None - - """ - pass - - - def GetBitmap(self,) -> 'typing.Any': - """ - Get the button's bitmap - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetBitmap(self,hBitmap:'typing.Any'=1) -> 'typing.Any': - """ - Set the button's bitmap - -Args: - - hBitmap(typing.Any):Handle of the new bitmap - -Returns: - - typing.Any - - """ - pass - - - def GetCheck(self,) -> 'typing.Any': - """ - Retrieves the check state of a radio button or check box. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetCheck(self,idCheck:'typing.Any') -> 'None': - """ - Sets or resets the state of a radio button or check box. - -Args: - - idCheck(typing.Any):The ID of the button. - -Returns: - - None - - """ - pass - - - def GetState(self,) -> 'typing.Any': - """ - Returns the state of the button. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetState(self,bHighlight:'typing.Any') -> 'typing.Any': - """ - Sets the state of the button. - -Args: - - bHighlight(typing.Any):The new state for the button.CommentsHighlighting affects the exterior of a button control. It has no effect on the check state of a radio button or check box. - -Returns: - - typing.Any - - """ - pass - - - def GetButtonStyle(self,) -> 'typing.Any': - """ - Gets the style of the button. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetButtonStyle(self,style:'typing.Any',bRedraw:'typing.Any'=1) -> 'typing.Any': - """ - Sets the style of the button. - -Args: - - style(typing.Any):The new style for the button. - bRedraw(typing.Any):Should the button be redrawn? - -Returns: - - typing.Any - - """ - pass - - -class PyCCmdTarget(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BeginWaitCursor(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def EndWaitCursor(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def HookCommand(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': - """ - Hook a windows command handler. - -Args: - - obHandler(typing.Any):The handler for the command message. This must be a callable object. - _id(typing.Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives command notification messages with the specified ID. Command notification messages are usually sent in response to menu or toolbar commands. When updating a user interface element, Pythonwin will first check if a handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone determines the state of the interface object. If no Update handler exists, PythonWin will automatically enable a menu/toolbar item if a command handler exists The handler will be called with 2 arguments * The command id being handled. * The command notification code. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed. This method is best suited to handling messages from user interface elements, such as menus, toolbars, etc. To handle notification messages from a control, you should use PyCCmdTarget::HookNotifyReturn ValueThe return value is the previous handler, or None. - -Returns: - - typing.Any:The ID of the command to be handled, or zero to handle all command messages.Comments - -obHandler will be called as the application receives command notification messages with the specified ID. - -Command notification messages are usually sent in response to menu or toolbar commands. - -When updating a user interface element, Pythonwin will first check if a - -handler has been installed via PyCCmdTarget::HookCommandUpdate. If so, this alone - -determines the state of the interface object. If no Update handler exists, - -PythonWin will automatically enable a menu/toolbar item if a command handler exists - -The handler will be called with 2 arguments - -* The command id being handled. - -* The command notification code. - -If the handler returns TRUE, then the command will be passed on to the - -default handler, otherwise the message will be consumed. - -This method is best suited to handling messages from user interface - -elements, such as menus, toolbars, etc. To handle notification messages from a control, - -you should use PyCCmdTarget::HookNotify -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def HookCommandUpdate(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': - """ - Hook a windows command update handler. - -Args: - - obHandler(typing.Any):The handler for the command message. This must be a callable object. - _id(typing.Any):The ID of the command to be handled.CommentsThe handler object passed will be called as the application updates user interface elements with the specified ID. See PyCCmdTarget::HookCommand for a description of the rules used to determine command routing and updating.Return ValueThe return value is the previous handler, or None. - -Returns: - - typing.Any:The ID of the command to be handled.Comments - -The handler object passed will be called as - -the application updates user interface elements - -with the specified ID. - -See PyCCmdTarget::HookCommand for a description - -of the rules used to determine command routing and updating. -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def HookOleEvent(self,) -> 'typing.Any': - """ - Hook an OLE Event. - -Args: - - - -Returns: - - typing.Any:PyCCmdTarget.HookOleEvent - -object = HookOleEvent()Hook an OLE Event. -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def HookNotify(self,obHandler:'typing.Any',_id:'typing.Any') -> 'typing.Any': - """ - Hook a windows command handler. - -Args: - - obHandler(typing.Any):The handler for the command message. This must be a callable object. - _id(typing.Any):The ID of the command to be handled, or zero to handle all command messages.CommentsobHandler will be called as the application receives control notification messages. These may also be handled via PyCCmdTarget::HookCommand, but this method is specific to control notifications, and therefore provides more information.The handler will be called with 2 arguments A tuple describing standard notification information. A tuple describing extra notification params, or an integer containing the address of the first byte of the extended information. If the handler returns TRUE, then the command will be passed on to the default handler, otherwise the message will be consumed.Certain notification codes are recognised internally, and these are converted to a Python tuple. If the extra information is not recognised, the address is passed. These addresses could be extracted using win32ui::GetBytes and the struct module, or using Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program can install certain knowledge about handlers, but this has not been implemented.)Return ValueThe return value is the previous handler, or None. - -Returns: - - typing.Any:The ID of the command to be handled, or zero to handle all command messages.Comments - -obHandler will be called as the application receives control notification messages. - -These may also be handled via PyCCmdTarget::HookCommand, but this method is specific - -to control notifications, and therefore provides more information. - -The handler will be called with 2 arguments - -A tuple describing standard notification information. - -A tuple describing extra notification params, or an integer containing the address of the first byte of the - -extended information. If the handler returns TRUE, then the command will be passed on to the default handler, - -otherwise the message will be consumed. - -Certain notification codes are recognised internally, and these are converted to a Python tuple. - -If the extra information is not recognised, the address is passed. These addresses could be - -extracted using win32ui::GetBytes and the struct module, or using - -Sam Rushing's calldll/dynwin module. (It would be possible to extend Pythonwin so a program - -can install certain knowledge about handlers, but this has not been implemented.) -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def RestoreWaitCursor(self,) -> 'None': - """ - Restores the appropriate hourglass cursor after the system cursor has - -changed. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCCmdUI(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def m_nIndex(self)->'typing.Any': - """""" - pass - - - @property - def m_nID(self)->'typing.Any': - """""" - pass - - - @property - def m_pMenu(self)->'PyCMenu': - """""" - pass - - - @property - def m_pSubMenu(self)->'PyCMenu': - """""" - pass - - - def Enable(self,bEnable:'typing.Any'=1) -> 'None': - """ - Enables or disables the user-interface item for this command. - -Args: - - bEnable(typing.Any):TRUE if the item should be enabled, false otherwise. - -Returns: - - None - - """ - pass - - - def SetCheck(self,state:'typing.Any'=1) -> 'None': - """ - Sets the check state of the user-interface item for this command. - -Args: - - state(typing.Any):0 for unchecked, 1 for checked, or 2 for indeterminate. - -Returns: - - None - - """ - pass - - - def SetRadio(self,bOn:'typing.Any'=1) -> 'None': - """ - Like the SetCheck member function, but operates on radio groups. - -Args: - - bOn(typing.Any):TRUE if the item should be enabled, false otherwise. - -Returns: - - None - - """ - pass - - - def SetText(self,text:'str') -> 'None': - """ - Sets the text for the user-interface item for this command. - -Args: - - text(str):The text for the interface element. - -Returns: - - None - - """ - pass - - - def ContinueRouting(self,) -> 'None': - """ - Tells the command-routing mechanism to continue routing the current message down - -the chain of handlers. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCColorDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetColor(self,) -> 'typing.Any': - """ - Determines the selected color. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def DoModal(self,) -> 'typing.Any': - """ - Displays a dialog and allows the user to make a selection. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSavedCustomColors(self,) -> 'typing.Any': - """ - Returns the saved custom colors. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetCurrentColor(self,color:'typing.Any') -> 'None': - """ - Sets the currently selected color. - -Args: - - color(typing.Any):The color to set.MFC References - -Returns: - - None - - """ - pass - - - def SetCustomColors(self,) -> 'None': - """ - Sets one or more custom colors - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCustomColors(self,) -> 'typing.Tuple[typing.Any, ...]': - """ - Gets the 16 currently defined custom colors - -Args: - - - -Returns: - - typing.Tuple[typing.Any, ...] - - """ - pass - - -class PyCComboBox(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddString(self,_object:'typing.Any') -> 'typing.Any': - """ - Adds a string to a combobox. - -Args: - - _object(typing.Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References - -Returns: - - typing.Any:CComboBox::AddString -Return ValueThe zero based index of the new string. - - - """ - pass - - - def DeleteString(self,pos:'typing.Any') -> 'typing.Any': - """ - Deletes an item from a combobox. - -Args: - - pos(typing.Any):The zero based index of the item to delete.MFC References - -Returns: - - typing.Any:CComboBox::DeleteString -Return ValueThe count of the items remaining in the list. - - - """ - pass - - - def Dir(self,attr:'typing.Any',wild:'str') -> 'typing.Any': - """ - Fills the list portion of a combobox with a directory listing. - -Args: - - attr(typing.Any):The attributes of the files to locate - wild(str):A file specification string - eg, *.*MFC References - -Returns: - - typing.Any:CComboBox::Dir -Return ValueThe index of the last file name added to the list. - - - """ - pass - - - def GetCount(self,) -> 'typing.Any': - """ - Returns the count of items in the combobox. - -Args: - - - -Returns: - - typing.Any:CListBox::GetCount -Return ValueReturns the number of items currently in the combobox. - - - """ - pass - - - def GetCurSel(self,) -> 'typing.Any': - """ - Returns the index of the currently selected item. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetEditSel(self,) -> 'typing.Any': - """ - Returns the selection of the edit control portion of a combo box. - -Args: - - - -Returns: - - typing.Any:CComboBox::GetEditSel -Return ValueA 32-bit value that contains the starting position in the low-order word and - -the position of the first nonselected character after the end of - -the selection in the high-order word. If this function is used on a combo box - -without an edit control, an exception is raised. - - - """ - pass - - - def GetExtendedUI(self,) -> 'typing.Any': - """ - Indicates if the combo has the extended interface. - -Args: - - - -Returns: - - typing.Any:CComboBox::GetExtendedUI -Return ValueNonzero if the combo box has the extended user interface; otherwise 0. - - - """ - pass - - - def GetItemData(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the application-specific object associated with an item. - -Args: - - item(typing.Any):The index of the item whose data is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def GetItemValue(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the application-specific value associated with an item. - -Args: - - item(typing.Any):The index of the item whose data is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def GetLBText(self,index:'typing.Any') -> 'str': - """ - Gets the string from the list of a combo box. - -Args: - - index(typing.Any):The index of the item to return the string for.Return ValueThe requested string. If index does not specify a valid index, no exception is raised. - -Returns: - - str:The index of the item to return the string for.Return ValueThe requested string. If index does - -not specify a valid index, no exception is raised. - - - """ - pass - - - def GetLBTextLen(self,index:'typing.Any') -> 'typing.Any': - """ - Returns the length of a string in the list of a combobox. - -Args: - - index(typing.Any):The index of the item to return the length of.MFC References - -Returns: - - typing.Any - - """ - pass - - - def InsertString(self,pos:'typing.Any',_object:'typing.Any') -> 'typing.Any': - """ - Insert a string into a combobox. - -Args: - - pos(typing.Any):The zero based index in the combobox to insert the new string - _object(typing.Any):The object to be added to the comboboxMFC References - -Returns: - - typing.Any:CComboBox::InsertString -Return ValueThe zero based index of the new string added. - - - """ - pass - - - def LimitText(self,_max:'typing.Any') -> 'typing.Any': - """ - Limits the amount of text the edit portion of a combo box can hold. - -Args: - - _max(typing.Any):The maximum number of characters the user can enter. If zero, the size is set to (virtually) unlimited.MFC References - -Returns: - - typing.Any - - """ - pass - - - def ResetContent(self,) -> 'None': - """ - Clear all the items from a combobox. - -Args: - - - -Returns: - - None - - """ - pass - - - def SelectString(self,after:'typing.Any',string:'str') -> 'None': - """ - Searches for a combobox item that matches the specified string, and selects it. - -Args: - - after(typing.Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire combobox. - string(str):The string to search for.MFC References - -Returns: - - None:CComboBoxBox::SelectString -Return ValueThe return value is always None - an exception is raised if the string can not be located. - - - """ - pass - - - def SetCurSel(self,index:'typing.Any') -> 'None': - """ - Selects an item in a combobox. - -Args: - - index(typing.Any):The zero based index of the item to select.MFC References - -Returns: - - None - - """ - pass - - - def SetEditSel(self,start:'typing.Any',end:'typing.Any') -> 'None': - """ - Sets the selection in the edit control portion of a combo box. - -Args: - - start(typing.Any):Specifies the starting position. If the starting position is set to -1, then any existing selection is removed. - end(typing.Any):Specifies the ending position. If the ending position is set to -1, then all text from the starting position to the last character in the edit control is selected.MFC References - -Returns: - - None:PyCComboBox::SetEditSel -Return ValueThe return value is always None - an exception is raised if the combo is a dropdown style, or does not - -have an edit control. - - - """ - pass - - - def SetExtendedUI(self,bExtended:'typing.Any'=1) -> 'None': - """ - Selects the Extended UI mode for a combo box. - -Args: - - bExtended(typing.Any):Indicates if the combo should have the extended user interface.CommentsA combo box with the Extended UI flag set can be identified in the following ways:~ Clicking the static control displays the list box only for combo boxes with the CBS_DROPDOWNLIST style.~ Pressing the DOWN ARROW key displays the list box (F4 is disabled).~ Scrolling in the static control is disabled when the item list is not visible (the arrow keys are disabled).MFC References - -Returns: - - None - - """ - pass - - - def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': - """ - Sets the item's application-specific object value. - -Args: - - item(typing.Any):Index of the item whose Data is to be set. - Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. - -Returns: - - typing.Any - - """ - pass - - - def SetItemValue(self,item:'typing.Any',data:'typing.Any') -> 'typing.Any': - """ - Sets the item's application-specific value. - -Args: - - item(typing.Any):Index of the item whose Data is to be set. - data(typing.Any):New value for the data. - -Returns: - - typing.Any - - """ - pass - - - def ShowDropDown(self,bShowIt:'typing.Any'=1) -> 'None': - """ - Shows or hides the listbox portion of a combo box. - -Args: - - bShowIt(typing.Any):Indicates if the listbox should be shown or hidden. - -Returns: - - None - - """ - pass - - -class PyCCommonDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCControl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCControlBar(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def dockSite(self)->'PyCFrameWnd': - """Current dock site, if dockable""" - pass - - - @property - def dockBar(self)->'PyCWnd': - """Current dock bar, if dockable""" - pass - - - @property - def dockContext(self)->'PyCDockContext': - """Used during dragging""" - pass - - - @property - def dwStyle(self)->'typing.Any': - """creation style (used for layout)""" - pass - - - @property - def dwDockStyle(self)->'typing.Any': - """indicates how bar can be docked""" - pass - - - def CalcDynamicLayout(self,length:'typing.Any',dwMode:'typing.Any') -> 'typing.Any': - """ - The framework calls this member function to calculate the dimensions of - -a dynamic toolbar. - -Args: - - length(typing.Any):The requested dimension of the control bar, either horizontal or vertical, depending on dwMode. - dwMode(typing.Any):A combination of flags. - -Returns: - - typing.Any - - """ - pass - - - def CalcFixedLayout(self,bStretch:'typing.Any',bHorz:'typing.Any') -> 'typing.Any': - """ - Calculates the horizontal size of a control bar - -Args: - - bStretch(typing.Any):Indicates whether the bar should be stretched to the size of the frame. The bStretch parameter is nonzero when the bar is not a docking bar (not available for docking) and is 0 when it is docked or floating (available for docking). - bHorz(typing.Any):Indicates that the bar is horizontally or vertically oriented. - -Returns: - - typing.Any - - """ - pass - - - def EnableDocking(self,style:'typing.Any') -> 'None': - """ - pecifies whether the control bar supports docking and the sides of its parent - -window. - -Args: - - style(typing.Any):Enables a control bar to be docked. - -Returns: - - None - - """ - pass - - - def EraseNonClient(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def GetBarStyle(self,) -> 'typing.Any': - """ - Retrieves the control bar style settings. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetCount(self,) -> 'typing.Any': - """ - Returns the number of non-HWND elements in the control bar. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetDockingFrame(self,) -> 'PyCFrameWnd': - """ - Returns the frame window to which a control bar is docked. - -Args: - - - -Returns: - - PyCFrameWnd - - """ - pass - - - def IsFloating(self,) -> 'typing.Any': - """ - Returns a nonzero value if the control bar in question is a floating control - -bar. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetBarStyle(self,style:'typing.Any') -> 'None': - """ - Modifies the control bar style settings. - -Args: - - style(typing.Any):The new style - -Returns: - - None - - """ - pass - - - def ShowWindow(self,) -> 'typing.Any': - """ - Shows the toolbar, and recalculates the button layout. - -Args: - - - -Returns: - - typing.Any:PyCControlBar.ShowWindow - -int = ShowWindow()Shows the toolbar, and recalculates the button layout. -Comments - -This method is provided for convenience. For further details, see - -PyCWnd::ShowWindow and PyCFrameWnd::RecalcLayout -Return ValueThe return value is that returned from PyCWnd::ShowWindow - - - """ - pass - - -class PyCCtrlView(object): - """A class which implementes a CCtrlView (ie, a view based on a dialog resource.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(typing.Any): - lparam(typing.Any):See Also - -Returns: - - None - - """ - pass - - -class PyCDC(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AbortDoc(self,) -> 'None': - """ - Aborts a print job - -Args: - - - -Returns: - - None - - """ - pass - - - def Arc(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pointStart:'typing.Tuple[typing.Any, typing.Any]',pointEnd:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Draws an eliptical arc. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangle - pointStart(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. - pointEnd(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsThe arc drawn by using the function is a segment of the ellipse defined by the specified bounding rectangle. The actual starting point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified starting point intersects the ellipse. The actual ending point of the arc is the point at which a ray drawn from the center of the bounding rectangle through the specified ending point intersects the ellipse. The arc is drawn in a counterclockwise direction. Since an arc is not a closed figure, it is not filled. Both the width and height of the rectangle must be greater than 2 units and less than 32,767 units.MFC References - -Returns: - - None:CDC::Arc -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - - def BeginPath(self,) -> 'None': - """ - Opens a path bracket in the device context - -Args: - - - -Returns: - - None - - """ - pass - - - def BitBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',dc:'PyCDC',srcPos:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': - """ - Copies a bitmap from the source device context to this device context. - -Args: - - destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. - size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. - dc(PyCDC):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. - srcPos(typing.Tuple[typing.Any, typing.Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. - rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References - -Returns: - - None - - """ - pass - - - def Chord(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',pointStart:'typing.Tuple[typing.Any, typing.Any]',pointEnd:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Draws a chord. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangle - pointStart(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's starting point (in logical units). This point does not have to lie exactly on the arc. - pointEnd(typing.Tuple[typing.Any, typing.Any]):Specifies the x- and y-coordinates of the point that defines the arc's ending point (in logical units). This point does not have to lie exactly on the arc.CommentsDraws a chord (a closed figure bounded by the intersection of an ellipse and a line segment). The rect parameter specify the upper-left and lower-right corners, respectively, of a rectangle bounding the ellipse that is part of the chord. The pointStart and pointEnd parameters specify the endpoints of a line that intersects the ellipse. The chord is drawn by using the selected pen and filled by using the selected brush.MFC References - -Returns: - - None:CDC::Chord -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - - def CreateCompatibleDC(self,dcFrom:'PyCDC'=None) -> 'None': - """ - Creates a memory device context that is compatible with this DC. - -Args: - - dcFrom(PyCDC):The source DC, or None to make a screen compatible DC.CommentsNote that unlike the MFC version, this function calls the global CreateCompatibleDC function and returns a new PyCDC object.MFC References - -Returns: - - None - - """ - pass - - - def CreatePrinterDC(self,printerName:'str'=None) -> 'None': - """ - Creates a device context for a specific printer - -Args: - - printerName(str):The printer name, or None for the default printerMFC References - -Returns: - - None - - """ - pass - - - def DeleteDC(self,) -> 'None': - """ - Deletes all resources associated with a device context. - -Args: - - - -Returns: - - None - - """ - pass - - - def DPtoLP(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Converts device units into logical units. - -Args: - - point(typing.Tuple[typing.Any, typing.Any]):The point to convertAlternative Parameters - x(typing.Any):The x coordinate to convert. - y(typing.Any):The y coordinate to convert.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CDC::DPtoLP - To Do Should really handle list of (x,y) points -Return ValueThe converted coordinates. - - - """ - pass - - - def Draw3dRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',colorTopLeft:'typing.Any',colorBotRight:'typing.Any') -> 'None': - """ - Draws a three-dimensional rectangle. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. - colorTopLeft(typing.Any):Specifies the color of the top and left sides of the three-dimensional rectangle. - colorBotRight(typing.Any):Specifies the color of the bottom and right sides of the three-dimensional rectangle.MFC References - -Returns: - - None - - """ - pass - - - def DrawFocusRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Draws a rectangle in the style used to - -indicate the rectangle has focus - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates of the rectangleMFC References - -Returns: - - None - - """ - pass - - - def DrawFrameControl(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',typ:'typing.Any',state:'typing.Any') -> 'None': - """ - Draws a frame control of the specified type and style. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. - typ(typing.Any): - state(typing.Any):MFC References - -Returns: - - None - - """ - pass - - - def DrawIcon(self,point:'typing.Tuple[typing.Any, typing.Any]',hIcon:'int') -> 'None': - """ - Draws an icon on the DC. - -Args: - - point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to draw to. - hIcon(int):The handle of the icon to draw.MFC References - -Returns: - - None - - """ - pass - - - def DrawText(self,s:'str',_tuple:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',_format:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Formats text in the given rectangle - -Args: - - s(str):The desired output string - _tuple(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The bounding rectangle in the form: (left, top, right, bottom) expressed in logical units (depending on selected coordinate system - see PyCDC::SetMapMode) - _format(typing.Any):Specifies one or more bit-or'd format values, such as DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see the Microsoft Win32 API documentation.ExampleExampleimport win32ui<nl> import win32con<nl> INCH = 1440 # twips - 1440 per inch allows fine res<nl> def drawtext_test():<nl> dc = win32ui.CreateDC()<nl> dc.CreatePrinterDC() # ties to default printer<nl> dc.StartDoc('My Python Document')<nl> dc.StartPage()<nl> <nl> # note: upper left is 0,0 with x increasing to the right,<nl> # and y decreasing (negative) moving down<nl> dc.SetMapMode(win32con.MM_TWIPS)<nl> <nl> # Centers "TEST" about an inch down on page<nl> dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> dc.EndPage()<nl> dc.EndDoc()<nl> del dc<nl>Return ValueHeight of text in pixelsThe return value is the height of the text, in logical units. If DT_VCENTER or DT_BOTTOM is specified, the return value is the offset from rect.top to the bottom of the drawn text. If the function fails, the return value is zero (no Python exception is thrown) - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any]:Specifies one or more bit-or'd format values, such as - -DT_BOTTOM, DT_CENTERDT_RIGHT, DT_VCENTER. For a complete list, see - -the Microsoft Win32 API documentation.ExampleExample -import win32ui<nl> - - import win32con<nl> - - INCH = 1440 # twips - 1440 per inch allows fine res<nl> - - def drawtext_test():<nl> - - dc = win32ui.CreateDC()<nl> - - dc.CreatePrinterDC() # ties to default printer<nl> - - dc.StartDoc('My Python Document')<nl> - - dc.StartPage()<nl> - - <nl> - - # note: upper left is 0,0 with x increasing to the right,<nl> - - # and y decreasing (negative) moving down<nl> - - dc.SetMapMode(win32con.MM_TWIPS)<nl> - - <nl> - - # Centers "TEST" about an inch down on page<nl> - - dc.DrawText('TEST', (0,INCH*-1,INCH*8,INCH*-2), win32con.DT_CENTER )<nl> - - dc.EndPage()<nl> - - dc.EndDoc()<nl> - - del dc<nl> - - -Return ValueHeight of text in pixels - - - -The return value is the height of the text, in logical units. - -If DT_VCENTER or DT_BOTTOM is specified, the return value is the - -offset from rect.top to the bottom of the drawn text. - -If the function fails, the return value is zero (no Python exception is thrown) - - - """ - pass - - - def Ellipse(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Draws an Ellipse. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the ellipse's bounding rectangleCommentsThe center of the ellipse is the center of the bounding rectangle specified by rect. The ellipse is drawn with the current pen, and its interior is filled with the current brush.MFC References - -Returns: - - None:CDC::Ellipse -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - - def EndDoc(self,) -> 'None': - """ - Finishes spooling the document and starts printing it - -Args: - - - -Returns: - - None - - """ - pass - - - def EndPage(self,) -> 'None': - """ - Finishes a page on a printer DC - -Args: - - - -Returns: - - None - - """ - pass - - - def EndPath(self,) -> 'None': - """ - Closes a path bracket and selects the path defined by the bracket into the specified device - -context - -Args: - - - -Returns: - - None - - """ - pass - - - def ExtTextOut(self,_int:'typing.Any',_int1:'typing.Any',_int2:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',string:'typing.Any',_tuple:'typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]') -> 'None': - """ - Writes text to the DC. - -Args: - - _int(typing.Any):The x coordinate to write the text to. - _int1(typing.Any):The y coordinate to write the text to. - _int2(typing.Any):Specifies the rectangle type. This parameter can be one, both, or neither of ETO_CLIPPED and ETO_OPAQUE - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the text's bounding rectangle. (Can be None.) - string(typing.Any):The text to write. - _tuple(typing.Tuple[typing.Tuple[typing.Any, typing.Any], ...]):Optional array of values that indicate distance between origins of character cells.MFC References - -Returns: - - None:CDC::ExtTextOut -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - - def FillPath(self,) -> 'None': - """ - Closes any open figures in the current path and fills the path's interior by using the - -current brush and polygon-filling mode. After its interior is filled, the path is discarded from the device context. - -Args: - - - -Returns: - - None - - """ - pass - - - def FillRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',brush:'PyCBrush') -> 'None': - """ - Fills a given rectangle with the specified brush - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. - brush(PyCBrush):Specifies the brush to use.MFC References - -Returns: - - None - - """ - pass - - - def FillSolidRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',color:'typing.Any') -> 'None': - """ - Fills the given rectangle with the specified solid color. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. - color(typing.Any):Specifies the color to use.MFC References - -Returns: - - None - - """ - pass - - - def FrameRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',brush:'PyCBrush') -> 'None': - """ - Draws a border around the rectangle specified by rect - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units. - brush(PyCBrush):Specifies the brush to use.MFC References - -Returns: - - None - - """ - pass - - - def GetBrushOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Retrieves the origin (in device units) of the brush currently selected for the - -device context. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetClipBox(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Retrieves the dimensions of the smallest bounding rectangle - -around the current clipping boundary. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]:CDC::GetClipBox -Return ValueA tuple of integers specifying the rectangle. - - - """ - pass - - - def GetCurrentPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Retrieves the current position (in logical coordinates). - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetDeviceCaps(self,index:'typing.Any') -> 'typing.Any': - """ - Retrieves a capability of the device context. - -Args: - - index(typing.Any):The information requested. See the win32api documentation for details.MFC References - -Returns: - - typing.Any:CDC::GetDeviceCaps -Return ValueThe value of the requested capability - - - """ - pass - - - def GetHandleAttrib(self,) -> 'typing.Any': - """ - Retrieves the handle of the attribute device context. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetHandleOutput(self,) -> 'typing.Any': - """ - Retrieves the handle of the output device context. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetMapMode(self,) -> 'typing.Any': - """ - Gets the mapping mode for the device context. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetNearestColor(self,color:'typing.Any') -> 'typing.Any': - """ - Returns the closest color a device can map. - -Args: - - color(typing.Any):Specifies the color to be matched. - -Returns: - - typing.Any - - """ - pass - - - def GetPixel(self,x:'typing.Any',y:'typing.Any') -> 'None': - """ - Gets a pixel at a local in a device context - -Args: - - x(typing.Any):Horizontal coordinate. - y(typing.Any):Vertical coordinate. - -Returns: - - None - - """ - pass - - - def GetSafeHdc(self,) -> 'typing.Any': - """ - Returns the HDC of this DC object. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTextExtent(self,text:'str') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Calculates the width and height of a line of text using the current font to - -determine the dimensions. - -Args: - - text(str):The text to calculate for.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CFC::GetTextExtent -Return ValueA tuple of integers with the size of the string, in logical units. - - - """ - pass - - - def GetTextExtentPoint(self,text:'str') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - None - -Args: - - text(str):The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. - -Returns: - - typing.Tuple[typing.Any, typing.Any]:The text to calculate for.Return ValueA tuple of integers with the size of the string, in logical units. - - - """ - pass - - - def GetTextFace(self,) -> 'str': - """ - Returns typeface name of the current font. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetTextMetrics(self,) -> 'typing.Any': - """ - Retrieves the metrics for the current font in this device context. - -Args: - - - -Returns: - - typing.Any:CDC::GetTextMetrics -Return ValueA dictionary of integers, keyed by the following strings: - -tmHeight - -tmAscent - -tmDescent - -tmInternalLeading - -tmExternalLeading - -tmAveCharWidth - -tmMaxCharWidth - -tmWeight - -tmItalic - -tmUnderlined - -tmStruckOut - -tmFirstChar - -tmLastChar - -tmDefaultChar - -tmBreakChar - -tmPitchAndFamily - -tmCharSet - -tmOverhang - -tmDigitizedAspectX - -tmDigitizedAspectY - - - """ - pass - - - def GetViewportExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Gets the viewport extent of the device context - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetViewportOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Gets the viewport origin of the device context - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetWindowExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Gets the window extent of the device context - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetWindowOrg(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Retrieves the x- and y-coordinates of the origin of the window associated with the - -device context. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def IntersectClipRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Creates a new clipping region by forming the intersection of the current region - -and the rectangle specified - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Specifies the bounding rectangle, in logical units.MFC References - -Returns: - - None:CDC::IntersectClipRect -Return Valueregion type as integer - - - """ - pass - - - def IsPrinting(self,) -> 'typing.Any': - """ - Returns 1 if the DC is currently printing, else 0 - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def LineTo(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'None': - """ - Draws a line to a specified point, using the currently selected pen. - -Args: - - point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to draw to.Alternative Parameters - x(typing.Any):The x coordinate to draw to. - y(typing.Any):The y coordinate to draw to.MFC References - -Returns: - - None - - """ - pass - - - def LPtoDP(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Converts logical units into device units. - -Args: - - point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to convert.Alternative Parameters - x(typing.Any):The x coordinate to convert. - y(typing.Any):The y coordinate to convert.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CDC::LPtoDP -Return ValueThe converted coordinates. - - - """ - pass - - - def MoveTo(self,point:'typing.Tuple[typing.Any, typing.Any]',x:'typing.Any',y:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Moves the current position to a specified point. - -Args: - - point(typing.Tuple[typing.Any, typing.Any]):The point coordinate to move to.Alternative Parameters - x(typing.Any):The x coordinate to move to. - y(typing.Any):The y coordinate to move to.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CDC::MoveTo -Return ValueThe previous position. - - - """ - pass - - - def OffsetWindowOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Modifies the coordinates of the window origin relative to the coordinates of the - -current window origin. - -Args: - - arg(typing.Tuple[typing.Any, typing.Any]):The new origin offset.Return ValueThe previous origin as a tuple (x,y) - -Returns: - - typing.Tuple[typing.Any, typing.Any]:The new origin offset.Return ValueThe previous origin as a tuple (x,y) - - - """ - pass - - - def OffsetViewportOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Modifies the coordinates of the viewport origin relative to the coordinates of - -the current viewport origin - -Args: - - arg(typing.Tuple[typing.Any, typing.Any]):The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) - -Returns: - - typing.Tuple[typing.Any, typing.Any]:The new origin offset.Return ValueThe previous viewport origin as a tuple (x,y) - - - """ - pass - - - def PatBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': - """ - Creates a bit pattern on the device. - -Args: - - destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. - size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. - rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References - -Returns: - - None - - """ - pass - - - def Pie(self,x1:'typing.Any',y1:'typing.Any',x2:'typing.Any',y2:'typing.Any',x3:'typing.Any',y3:'typing.Any',x4:'typing.Any',y4:'typing.Any') -> 'None': - """ - Draws a pie slice in a device context - -Args: - - x1(typing.Any):X coordinate of upper left corner - y1(typing.Any):Y coordinate of upper left corner - x2(typing.Any):X coordinate of lower right corner - y2(typing.Any):Y coordinate of lower right corner - x3(typing.Any):X coordinate of starting point of arc - y3(typing.Any):Y coordinate of starting point of arc - x4(typing.Any):X coordinate of ending point of arc - y4(typing.Any):Y coordinate of ending point of arc - -Returns: - - None - - """ - pass - - - def PolyBezier(self,) -> 'None': - """ - Draws one or more Bezier splines. - -Args: - - - -Returns: - - None - - """ - pass - - - def Polygon(self,) -> 'None': - """ - Draws an Polygon. - -Args: - - - -Returns: - - None - - """ - pass - - - def Polyline(self,points:'typing.List[typing.Tuple[typing.Any, typing.Any]]') -> 'None': - """ - Draws a Polyline. - -Args: - - points(typing.List[typing.Tuple[typing.Any, typing.Any]]):A sequence of points - -Returns: - - None - - """ - pass - - - def RealizePalette(self,) -> 'typing.Any': - """ - Maps palette entries in the current logical palette to the system palette. - -Args: - - - -Returns: - - typing.Any:PyCDC.RealizePalette - -int = RealizePalette()Maps palette entries in the current logical palette to the system palette. -Return ValueIndicates how many entries in the logical palette were mapped to different entries - -in the system palette. This represents the number of entries that this function - -remapped to accommodate changes in the system palette since the logical palette - -was last realized. - - - """ - pass - - - def Rectangle(self,) -> 'typing.Any': - """ - Draws a rectangle using the current pen. The interior of the rectangle is filled using - -the current brush. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def RectVisible(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Any': - """ - Determines whether any part of the given rectangle lies within the clipping region of - -the display context. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates of the reactangle to be checked.MFC References - -Returns: - - typing.Any:CDC::RectVisible -Return ValueNon zero if any part of the rectangle lies within the clipping region, else zero. - - - """ - pass - - - def RestoreDC(self,saved:'typing.Any') -> 'None': - """ - Restores the state of the device context. - -Args: - - saved(typing.Any):The id of a previously saved device context. See PyCDC::SaveDCMFC References - -Returns: - - None - - """ - pass - - - def SaveDC(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any:CDC::SaveDC -Return ValueAn integer identifying the context, which can be used by PyCDC::RestoreDC. - -An exception is raised if this function fails. - - - """ - pass - - - def ScaleWindowExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Modifies the window extents relative to the current values. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def ScaleViewportExt(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Modifies the viewport extents relative to the current values. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def SelectClipRgn(self,) -> 'typing.Any': - """ - Selects the given region as the current clipping region for the device context - -Args: - - - -Returns: - - typing.Any:PyCDC.SelectClipRgn - -obRgn = SelectClipRgn()Selects the given region as the current clipping region for the device context -Return ValueThe return value specifies the region's complexity (integer) - - - """ - pass - - - def SelectObject(self,ob:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - ob(typing.Any):The object to select.MFC References - -Returns: - - typing.Any:CDC::SelectObject -Return ValueThe previously selected object. This will be the same type as the object parameter. - - - """ - pass - - - def SetBkColor(self,color:'typing.Any') -> 'typing.Any': - """ - Sets the current background color to the specified color. - -Args: - - color(typing.Any):A windows color specification. See the win32api documentation for details.CommentsIf the background mode is OPAQUE, the system uses the background color to fill the gaps in styled lines, the gaps between hatched lines in brushes, and the background in character cells. The system also uses the background color when converting bitmaps between color and monochrome device contexts.MFC References - -Returns: - - typing.Any:CDC::SetBkColor -Return ValueThe return value is the previous background color. - - - """ - pass - - - def SetBkMode(self,mode:'typing.Any') -> 'typing.Any': - """ - Sets the current background mode to the specified mode. - -Args: - - mode(typing.Any):A background mode. May be either TRANSPARENT or OPAQUE.CommentsSpecifies the mode to be set. This parameter can be either OPAQUE or TRANSPARENTMFC References - -Returns: - - typing.Any:CDC::SetBkMode -Return ValueThe return value is the previous background mode. - - - """ - pass - - - def SetBrushOrg(self,point:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Specifies the origin that GDI will assign to the next brush that the - -application selects into the device context. - -Args: - - point(typing.Tuple[typing.Any, typing.Any]):The new origin in device units.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CDC::SetBrushOrg -Return ValueThe previous origin in device units. - - - """ - pass - - - def SetGraphicsMode(self,mode:'typing.Any') -> 'typing.Any': - """ - Sets the graphics mode for the specified device context - -Args: - - mode(typing.Any):The new mode. - -Returns: - - typing.Any - - """ - pass - - - def SetMapMode(self,newMode:'typing.Any') -> 'typing.Any': - """ - Sets the mapping mode for the device context. - -Args: - - newMode(typing.Any):The new mode. Can be one of MM_ANISOTROPIC, MM_HIENGLISH, MM_HIMETRIC, MM_ISOTROPIC, MM_LOENGLISH, MM_LOMETRIC, MM_TEXT, MM_TWIPSMFC References - -Returns: - - typing.Any:CDC::SetMapMode -Return ValueThe previous mapping mode. - - - """ - pass - - - def SetPixel(self,x:'typing.Any',y:'typing.Any',color:'typing.Any') -> 'None': - """ - Sets a pixel in a device context - -Args: - - x(typing.Any):Horizontal coordinate. - y(typing.Any):Vertical coordinate. - color(typing.Any):The brush color. - -Returns: - - None - - """ - pass - - - def SetPolyFillMode(self,point:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': - """ - Sets the polygon-filling mode. - -Args: - - point(typing.Tuple[typing.Any, typing.Any]):The new origin in device units.MFC References - -Returns: - - typing.Any:CDC::SetPolyFillMode -Return ValueThe previous PolyFillMode as integer - - - -The previous PolyFillMode. - - - """ - pass - - - def SetROP2(self,mode:'typing.Any') -> 'typing.Any': - """ - Sets the current drawing mode. - -Args: - - mode(typing.Any):The new drawing mode.MFC References - -Returns: - - typing.Any - - """ - pass - - - def SetTextAlign(self,newFlags:'typing.Any') -> 'typing.Any': - """ - Sets the text-alignment flags. - -Args: - - newFlags(typing.Any):The new alignment flags. Can be a combination of (TA_CENTER, TA_LEFT, TA_RIGHT), (TA_BASELINE, TA_BOTTOM, TA_TOP) and (TA_NOUPDATECP, TA_UPDATECP) The default is TA_LEFT|TA_TOP|TA_NOUPDATECPMFC References - -Returns: - - typing.Any:CDC::SetTextAlign -Return ValueThe old alignment flags. - - - """ - pass - - - def SetTextColor(self,color:'typing.Any') -> 'typing.Any': - """ - Sets the text color to the specified color. - -Args: - - color(typing.Any):A windows color specification. See the win32api documentation for details.CommentsThis text color is used when writing text to this device context and also when converting bitmaps between color and monochrome device contexts. If the device cannot represent the specified color, the system sets the text color to the nearest physical color. The background color for a character is specified by the SetBkColor and SetBkMode member functions.MFC References - -Returns: - - typing.Any:CDC::SetTextColor -Return ValueThe return value is the previous text color. - - - """ - pass - - - def SetWindowExt(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Sets the x,y extents of the window associated with the device context. - -Args: - - size(typing.Tuple[typing.Any, typing.Any]):The new size.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CDC::SetWindowExt -Return ValueThe previous extents of the window (in logical units). - - - """ - pass - - - def SetWindowOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Sets the window origin of the device context - -Args: - - arg(typing.Tuple[typing.Any, typing.Any]):The new origin. - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def SetViewportExt(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Sets the x,y extents of the viewport of the device context. - -Args: - - size(typing.Tuple[typing.Any, typing.Any]):The new size.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CDC::SetViewportExt -Return ValueThe previous extents of the viewport (in logical units). - - - """ - pass - - - def SetViewportOrg(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Sets the viewport origin of the device context - -Args: - - arg(typing.Tuple[typing.Any, typing.Any]):The new origin. - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def SetWorldTransform(self,) -> 'typing.Any': - """ - sets a two-dimensional linear transformation between world space and page space - -for the specified device context. This transformation can be used to scale, rotate, shear, or translate graphics - -output. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def StartDoc(self,docName:'str',outputFile:'str') -> 'None': - """ - Starts spooling a document to a printer DC - -Args: - - docName(str):The document name - outputFile(str):The output file name. Use this to spool to a file. Omit to send to the printer. - -Returns: - - None - - """ - pass - - - def StartPage(self,) -> 'None': - """ - Starts a new page on a printer DC - -Args: - - - -Returns: - - None - - """ - pass - - - def StretchBlt(self,destPos:'typing.Tuple[typing.Any, typing.Any]',size:'typing.Tuple[typing.Any, typing.Any]',dc:'PyCDC',srcPos:'typing.Tuple[typing.Any, typing.Any]',size1:'typing.Tuple[typing.Any, typing.Any]',rop:'typing.Any') -> 'None': - """ - Copies a bitmap from the source device context to this device context. - -Args: - - destPos(typing.Tuple[typing.Any, typing.Any]):The logical x,y coordinates of the upper-left corner of the destination rectangle. - size(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. - dc(PyCDC):Specifies the PyCDC object from which the bitmap will be copied. It must be None if rop specifies a raster operation that does not include a source. - srcPos(typing.Tuple[typing.Any, typing.Any]):Specifies the logical x,y coordinates of the upper-left corner of the source bitmap. - size1(typing.Tuple[typing.Any, typing.Any]):Specifies the width and height (in logical units) of the destination rectangle and source bitmap. - rop(typing.Any):Specifies the raster operation to be performed. See the win32 api documentation for details.MFC References - -Returns: - - None - - """ - pass - - - def StrokeAndFillPath(self,) -> 'None': - """ - Closes any open figures in a path, strokes the outline of the path by using the - -current pen, and fills its interior by using the current brush. The device context must contain a closed path. - -Args: - - - -Returns: - - None - - """ - pass - - - def StrokePath(self,) -> 'None': - """ - Renders the specified path by using the current pen. - -Args: - - - -Returns: - - None - - """ - pass - - - def TextOut(self,_int:'typing.Any',_int1:'typing.Any',string:'typing.Any') -> 'None': - """ - Outputs text to the display context, using the currently selected font. - -Args: - - _int(typing.Any):The x coordinate to write the text to. - _int1(typing.Any):The y coordinate to write the text to. - string(typing.Any):The text to write.MFC References - -Returns: - - None:CDC::TextOut -Return ValueAlways none. If the function fails, an exception is raised. - - - """ - pass - - -class PyCDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,obParent:'PyCWnd'=None) -> 'None': - """ - Create a modeless window for the dialog box. - -Args: - - obParent(PyCWnd):The parent window for the new windowMFC References - -Returns: - - None - - """ - pass - - - def DoModal(self,) -> 'typing.Any': - """ - Create a modal window for the dialog box. - -Args: - - - -Returns: - - typing.Any:CDialog::DoModal -Return ValueThe return value from the dialog. This is the value passed to PyCDialog::EndDialog. - - - """ - pass - - - def EndDialog(self,result:'typing.Any') -> 'None': - """ - Ends a modal dialog box. - -Args: - - result(typing.Any):The value to be returned by the PyCDialog::DoModal method.MFC References - -Returns: - - None - - """ - pass - - - def GotoDlgCtrl(self,control:'PyCWnd') -> 'None': - """ - Moves the focus to the specified control in the dialog box. - -Args: - - control(PyCWnd):The control to get the focus. - -Returns: - - None - - """ - pass - - - def MapDialogRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Converts the dialog-box units of a rectangle to screen - -units. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The rect to be converted - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def OnCancel(self,) -> 'None': - """ - Calls the default MFC OnCancel handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnOK(self,) -> 'None': - """ - Calls the default MFC OnOK handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnInitDialog(self,) -> 'typing.Any': - """ - Calls the default MFC OnInitDialog handler. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCDialogBar(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,parent:'PyCWnd',template:'PyResourceId',style:'typing.Any',_id:'typing.Any') -> 'None': - """ - None - -Args: - - parent(PyCWnd):The parent window - template(PyResourceId):Template name or integer resource id - style(typing.Any):The style for the window - _id(typing.Any):The ID of the window - -Returns: - - None - - """ - pass - - -class PyCDocTemplate(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DoCreateDoc(self,fileName:'str'=None) -> 'PyCDocument': - """ - Creates an underlying document object. - -Args: - - fileName(str):The name of the file to load. - -Returns: - - PyCDocument - - """ - pass - - - def FindOpenDocument(self,fileName:'str') -> 'PyCDocument': - """ - Returns an existing document with the specified file name. - -Args: - - fileName(str):The fully qualified filename to search for. - -Returns: - - PyCDocument - - """ - pass - - - def GetDocString(self,docIndex:'typing.Any') -> 'str': - """ - Retrieves a specific substring describing the document type. - -Args: - - docIndex(typing.Any):The document index. Must be one of the win32ui.CDocTemplate_* constants.CommentsFor more information on the doc strings, please see PyCDocTemplate::SetDocStrings - -Returns: - - str - - """ - pass - - - def GetDocumentList(self,) -> 'typing.Any': - """ - Return a list of all open documents. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetResourceID(self,) -> 'None': - """ - Returns the resource ID in use. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetSharedMenu(self,) -> 'PyCMenu': - """ - Returns the shared menu object for all frames using this template. - -Args: - - - -Returns: - - PyCMenu - - """ - pass - - - def InitialUpdateFrame(self,frame:'PyCFrameWnd'=None,doc:'PyCDocument'=None,bMakeVisible:'typing.Any'=1) -> 'None': - """ - Calls the default OnInitialFrame handler. - -Args: - - frame(PyCFrameWnd):The frame window. - doc(PyCDocument):A document for the frame. - bMakeVisible(typing.Any):Indicates of the frame should be shown.See Also - -Returns: - - None - - """ - pass - - - def SetContainerInfo(self,_id:'typing.Any') -> 'None': - """ - Sets the resources to be used when an OLE 2 object is in-place activated. - -Args: - - _id(typing.Any):The resource ID. - -Returns: - - None - - """ - pass - - - def SetDocStrings(self,docStrings:'str') -> 'None': - """ - Assigns the document strings for the template. - -Args: - - docStrings(str):The document strings.CommentsThe string must be a \\n seperated list of docstrings. The elements are:elementNameDescriptionwindowTitleTitle used for the window (only for SDI applications)docNameRoot for the default document name.fileNewNameName of the document type, as displayed in the "File/New" dialogfilterNameDescription of the document type and a wildcard spec for the file open dialog.filterExtExtension for documents of this file type.regFileTypeIdInternal Id of the document as registered in the registry. Used to associate the extension with the file type.regFileTypeNameName of the document, as stored in the reigstry. This is the name presented to the user. - -Returns: - - None - - """ - pass - - - def OpenDocumentFile(self,filename:'str',bMakeVisible:'typing.Any'=1) -> 'None': - """ - Opens a document file, creating a view and frame. - -Args: - - filename(str):Name of file to open, or None - bMakeVisible(typing.Any):Indicates if the document should be created visible. - -Returns: - - None - - """ - pass - - -class PyCDockContext(object): - """A class which encapsulates an MFC CDockContext object""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ptLast(self)->'typing.Tuple[typing.Any, typing.Any]': - """""" - pass - - - @property - def rectLast(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """""" - pass - - - @property - def sizeLast(self)->'typing.Tuple[typing.Any, typing.Any]': - """""" - pass - - - @property - def bDitherLast(self)->'typing.Any': - """""" - pass - - - @property - def rectDragHorz(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """""" - pass - - - @property - def rectDragVert(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """""" - pass - - - @property - def rectFrameDragHorz(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """""" - pass - - - @property - def rectFrameDragVert(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """""" - pass - - - @property - def dwDockStyle(self)->'typing.Any': - """allowable dock styles for bar""" - pass - - - @property - def dwOverDockStyle(self)->'typing.Any': - """style of dock that rect is over""" - pass - - - @property - def dwStyle(self)->'typing.Any': - """style of control bar""" - pass - - - @property - def bFlip(self)->'typing.Any': - """if shift key is down""" - pass - - - @property - def bForceFrame(self)->'typing.Any': - """if ctrl key is down CDC* m_pDC; // where to draw during drag""" - pass - - - @property - def bDragging(self)->'typing.Any': - """""" - pass - - - @property - def nHitTest(self)->'typing.Any': - """""" - pass - - - @property - def uMRUDockID(self)->'typing.Any': - """""" - pass - - - @property - def rectMRUDockPos(self)->'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """""" - pass - - - @property - def dwMRUFloatStyle(self)->'typing.Any': - """""" - pass - - - @property - def ptMRUFloatPos(self)->'typing.Tuple[typing.Any, typing.Any]': - """Sentinel""" - pass - - - def EndDrag(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def StartDrag(self,pt:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': - """ - None - -Args: - - pt(typing.Tuple[typing.Any, typing.Any]): - -Returns: - - typing.Any - - """ - pass - - - def EndResize(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def StartResize(self,hittest:'typing.Any',pt:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': - """ - None - -Args: - - hittest(typing.Any): - pt(typing.Tuple[typing.Any, typing.Any]): - -Returns: - - typing.Any - - """ - pass - - - def ToggleDocking(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCDocument(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DeleteContents(self,) -> 'None': - """ - Call the MFC DeleteContents method. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - - -Returns: - - None - - """ - pass - - - def DoSave(self,fileName:'str',bReplace:'typing.Any'=1) -> 'None': - """ - Calls the underlying MFC DoSave method. - -Args: - - fileName(str):The name of the file to save to. - bReplace(typing.Any):Should an existing file be silently replaced?.CommentsIf invalid or no filename, will prompt for a name, else will perform the actual saving of the document.See Also - -Returns: - - None - - """ - pass - - - def DoFileSave(self,) -> 'None': - """ - Checks the file attributes. - -If the file is read only, a new name is prompted, else the - -file is saved (by calling DoSave) - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDocTemplate(self,) -> 'PyCDocTemplate': - """ - Returns the template for the document. - -Args: - - - -Returns: - - PyCDocTemplate - - """ - pass - - - def GetAllViews(self,) -> 'typing.List[typing.Any]': - """ - Returns a list of all views for the current document. - -Args: - - - -Returns: - - typing.List[typing.Any] - - """ - pass - - - def GetFirstView(self,) -> 'PyCView': - """ - Returns the first view object attached to this document. - -Args: - - - -Returns: - - PyCView - - """ - pass - - - def GetPathName(self,) -> 'str': - """ - Returns the full path name of the current document. - -The string will be empty if no path name has been set. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetTitle(self,) -> 'str': - """ - Returns the title of the current document. - -This will often be the file name portion of the path name. - -Args: - - - -Returns: - - str - - """ - pass - - - def IsModified(self,) -> 'typing.Any': - """ - Return a flag indicating if the document has been modified. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnChangedViewList(self,) -> 'None': - """ - Informs the document when a view is added or removed. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnCloseDocument(self,) -> 'None': - """ - Call the MFC OnCloseDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnNewDocument(self,) -> 'None': - """ - Call the MFC OnNewDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnOpenDocument(self,pathName:'str') -> 'None': - """ - Call the MFC OnOpenDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - pathName(str):The full path of the file to open.MFC References - -Returns: - - None - - """ - pass - - - def OnSaveDocument(self,pathName:'str') -> 'None': - """ - Call the MFC OnSaveDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - pathName(str):The full path of the file to save.MFC References - -Returns: - - None - - """ - pass - - - def SetModifiedFlag(self,bModified:'typing.Any'=1) -> 'None': - """ - Set the "dirty" flag for the document. - -Args: - - bModified(typing.Any):Set dirty flagMFC References - -Returns: - - None - - """ - pass - - - def SaveModified(self,) -> 'typing.Any': - """ - Call the underlying MFC method. - -Args: - - - -Returns: - - typing.Any:CDocument::SaveModified -Return ValueNonzero if it is safe to continue and close the document; 0 if the document should not be closed. - - - """ - pass - - - def SetPathName(self,path:'str') -> 'None': - """ - Set the full path name for the document. - -Args: - - path(str):The full path of the file.MFC References - -Returns: - - None - - """ - pass - - - def SetTitle(self,title:'str') -> 'None': - """ - Set the title of the document (ie, the name - -to appear in the window caption for the document. - -Args: - - title(str):The new title.MFC References - -Returns: - - None - - """ - pass - - - def UpdateAllViews(self,sender:'PyCView',hint:'typing.Any'=None) -> 'None': - """ - Informs each view when a document changes. - -Args: - - sender(PyCView):The view who initiated the update - hint(typing.Any):A hint for the update.MFC References - -Returns: - - None - - """ - pass - - -class PyCEdit(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': - """ - Creates the window for a new Edit object. - -Args: - - style(typing.Any):The style for the Edit. Use any of the win32con.BS_* constants. - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the Edit. - parent(PyCWnd):The parent window of the Edit. Usually a PyCDialog. - _id(typing.Any):The Edits control ID. - -Returns: - - None - - """ - pass - - - def Clear(self,) -> 'typing.Any': - """ - Clears all text in an edit control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Copy(self,) -> 'None': - """ - Copys the current selection to the clipboard. - -Args: - - - -Returns: - - None - - """ - pass - - - def Cut(self,) -> 'None': - """ - Cuts the current selection to the clipboard. - -Args: - - - -Returns: - - None - - """ - pass - - - def FmtLines(self,bAddEOL:'typing.Any') -> 'typing.Any': - """ - Sets the formatting options for the control. - -Args: - - bAddEOL(typing.Any):Specifies whether soft line-break characters are to be inserted. A value of TRUE inserts the characters; a value of FALSE removes them.MFC References - -Returns: - - typing.Any:CEdit::FmtLines -Return ValueNonzero if any formatting occurs; otherwise 0. - - - """ - pass - - - def GetFirstVisibleLine(self,) -> 'typing.Any': - """ - Returns zero-based index of the topmost visible line. - -Args: - - - -Returns: - - typing.Any:CEdit::GetFirstVisibleLine -Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. - - - """ - pass - - - def GetSel(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns the start and end of the current selection. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CEdit::GetSel -Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the - -end of the current selection) - - - """ - pass - - - def GetLine(self,lineNo:'typing.Any') -> 'typing.Any': - """ - Returns the text in a specified line. - -Args: - - lineNo(typing.Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. - -Returns: - - typing.Any - - """ - pass - - - def GetLineCount(self,) -> 'typing.Any': - """ - Gets the number of lines in an edit control. - -Args: - - - -Returns: - - typing.Any:CEdit::GetLineCount -Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. - - - """ - pass - - - def LimitText(self,nChars:'typing.Any'=0) -> 'None': - """ - Sets max length of text that user can enter - -Args: - - nChars(typing.Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References - -Returns: - - None - - """ - pass - - - def LineFromChar(self,charNo:'typing.Any'=-1) -> 'typing.Any': - """ - Returns the line number of the specified character. - -Args: - - charNo(typing.Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References - -Returns: - - typing.Any:CEdit::LineFromChar -Return ValueThe zero-based line number of the line containing the character index specified by charNo. - -If charNo is -1, the number of the line that contains the first character of the selection is returned. - -If there is no selection, the current line number is returned. - - - """ - pass - - - def LineIndex(self,lineNo:'typing.Any'=-1) -> 'typing.Any': - """ - Retrieves the character index of a line within a multiple-line edit control. - -Args: - - lineNo(typing.Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References - -Returns: - - typing.Any:CEdit::LineIndex -Return ValueThe character index of the line specified in lineNo, or -1 if - -the specified line number is greater then the number of lines in - -the edit control. - - - """ - pass - - - def LineScroll(self,nLines:'typing.Any',nChars:'typing.Any'=0) -> 'typing.Any': - """ - Scroll the control vertically and horizontally - -Args: - - nLines(typing.Any):Specifies the number of lines to scroll vertically. - nChars(typing.Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References - -Returns: - - typing.Any - - """ - pass - - - def Paste(self,) -> 'None': - """ - Pastes the contents of the clipboard into the control. - -Args: - - - -Returns: - - None - - """ - pass - - - def ReplaceSel(self,text:'str') -> 'None': - """ - Replaces the selection with the specified text. - -Args: - - text(str):The text to replace the selection with.MFC References - -Returns: - - None - - """ - pass - - - def SetReadOnly(self,bReadOnly:'typing.Any'=1) -> 'None': - """ - Sets or clears the read-only status of the listbox. - -Args: - - bReadOnly(typing.Any):The read-only state to set.MFC References - -Returns: - - None - - """ - pass - - - def SetSel(self,start:'typing.Any',end:'typing.Any',arg:'typing.Any',bNoScroll1:'typing.Any',bNoScroll:'typing.Any'=0) -> 'None': - """ - Sets the selection in the edit control. - -Args: - - start(typing.Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. - end(typing.Any):Specifies the ending position. - arg(typing.Any):As for normal start, end args. - bNoScroll1(typing.Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.MFC References - bNoScroll(typing.Any):Indicates whether the caret should be scrolled into view. If 0, the caret is scrolled into view. If 1, the caret is not scrolled into view.Alternative Parameters - -Returns: - - None - - """ - pass - - -class PyCEditView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def IsModified(self,) -> 'typing.Any': - """ - Indicates if the view's document has the modified flag set. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def LoadFile(self,fileName:'str') -> 'None': - """ - Loads a file into the view. - -Args: - - fileName(str):The name of the file to be loaded. - -Returns: - - None - - """ - pass - - - def SetModifiedFlag(self,bModified:'typing.Any'=1) -> 'None': - """ - Sets the modified flag for the view's document. - -Args: - - bModified(typing.Any):The modified state to set. - -Returns: - - None - - """ - pass - - - def GetEditCtrl(self,) -> 'typing.Any': - """ - returns the underlying edit control object. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. - -Returns: - - typing.Any - - """ - pass - - - def SaveFile(self,fileName:'str') -> 'None': - """ - Saves the view to a file. - -Args: - - fileName(str):The name of the file to be written. - -Returns: - - None - - """ - pass - - - def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(typing.Any): - lparam(typing.Any):See Also - -Returns: - - None - - """ - pass - - -class PyCFileDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPathName(self,) -> 'str': - """ - Retrives the path name from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetFileName(self,) -> 'str': - """ - Retrives the file name from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetFileExt(self,) -> 'str': - """ - Retrives the file extension from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetFileTitle(self,) -> 'str': - """ - Retrives the file title from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetPathNames(self,) -> 'str': - """ - Retrieves the list of path names from the file dialog. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetReadOnlyPref(self,) -> 'typing.Any': - """ - Retrives the value of the "Read Only" checkbox on the file dialog. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetOFNTitle(self,title:'str') -> 'None': - """ - Sets the Title for the dialog. - -Args: - - title(str):The title for the dialog box. May be None. - -Returns: - - None - - """ - pass - - - def SetOFNInitialDir(self,title:'str') -> 'None': - """ - Sets the initial directory for the dialog. - -Args: - - title(str):The initial directory for the dialog box. May be None. - -Returns: - - None - - """ - pass - - -class PyCFont(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetSafeHandle(self,) -> 'typing.Any': - """ - Retrieves the HFONT for the font as an integer - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCFontDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DoModal(self,) -> 'typing.Any': - """ - Displays a dialog and allows the user to make a selection. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetCurrentFont(self,) -> 'typing.Any': - """ - Returns a dictionary describing the current font. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetCharFormat(self,) -> 'typing.Any': - """ - Returns the font selection in a CHARFORMAT tuple. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetColor(self,) -> 'typing.Any': - """ - Determines the color of the selected font. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetFaceName(self,) -> 'str': - """ - Returns the face name of the selected font. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetStyleName(self,) -> 'str': - """ - Returns the style name of the selected font. - -Args: - - - -Returns: - - str - - """ - pass - - - def GetSize(self,) -> 'typing.Any': - """ - Returns he font's size, in tenths of a point. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetWeight(self,) -> 'typing.Any': - """ - Returns the font's weight. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsStrikeOut(self,) -> 'typing.Any': - """ - Determines whether the font is displayed with strikeout. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsUnderline(self,) -> 'typing.Any': - """ - Determines whether the font is displayed with underline. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsBold(self,) -> 'typing.Any': - """ - Determines whether the font is displayed bold. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsItalic(self,) -> 'typing.Any': - """ - Determines whether the font is displayed with italic. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCFormView(object): - """A class which implementes a CFormView (ie, a view based on a dialog resource.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(typing.Any): - lparam(typing.Any):See Also - -Returns: - - None - - """ - pass - - -class PyCFrameWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def BeginModalState(self,) -> 'None': - """ - Sets the frame window to modal. - -Args: - - - -Returns: - - None - - """ - pass - - - def CreateWindow(self,wndClass:'str',title:'str',style:'typing.Any',PyCWnd:'typing.Any',menuId:'typing.Any',styleEx:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None,createContext:'typing.Any'=None) -> 'typing.Any': - """ - Creates the actual window for the PyCFrameWnd object. - -Args: - - wndClass(str):The window class name, or None - title(str):The window title - style(typing.Any):The window style - PyCWnd(typing.Any):The parent window - menuId(typing.Any):The string or integer id for the menu. - styleEx(typing.Any):The extended style of the window being created.MFC References - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle - createContext(typing.Any):A tuple representing a CREATECONTEXT structure. - -Returns: - - typing.Any - - """ - pass - - - def EndModalState(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def DockControlBar(self,controlBar:'PyCControlBar',arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',dockBarId:'typing.Any'=0) -> 'None': - """ - Docks a control bar. - -Args: - - controlBar(PyCControlBar):The control bar to dock. - arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Determines, in screen coordinates, where the control bar will be docked in the nonclient area of the destination frame window.MFC References - dockBarId(typing.Any):Determines which sides of the frame window to consider for docking. - -Returns: - - None - - """ - pass - - - def EnableDocking(self,style:'typing.Any') -> 'None': - """ - Enable dockable control bars in a frame window - -Args: - - style(typing.Any):Specifies which sides of the frame window can serve as docking sites for control bars.CommentsBy default, control bars will be docked to a side of the frame window in the following order: top, bottom, left, right. - -Returns: - - None - - """ - pass - - - def FloatControlBar(self,controlBar:'PyCControlBar',arg:'typing.Tuple[typing.Any, typing.Any]',style:'typing.Any') -> 'None': - """ - Floats a control bar. - -Args: - - controlBar(PyCControlBar):The control bar to dock. - arg(typing.Tuple[typing.Any, typing.Any]):The location, in screen coordinates, where the top left corner of the control bar will be placed. - style(typing.Any):Determines which sides of the frame window to consider for docking.MFC References - -Returns: - - None - - """ - pass - - - def GetActiveDocument(self,) -> 'PyCDocument': - """ - Gets the currently active document, else None - -Args: - - - -Returns: - - PyCDocument - - """ - pass - - - def GetControlBar(self,_id:'typing.Any') -> 'PyCControlBar': - """ - Retrieves the specified control bar. - -Args: - - _id(typing.Any):The ID of the toolbar to be retrieved - -Returns: - - PyCControlBar - - """ - pass - - - def GetMessageString(self,_id:'typing.Any') -> 'str': - """ - Retrieves message corresponding to a command ID. - -Args: - - _id(typing.Any):The ID to be retrievedSee Also - -Returns: - - str - - """ - pass - - - def GetMessageBar(self,) -> 'PyCWnd': - """ - Retrieves the message bar for the frame. - -Args: - - - -Returns: - - PyCWnd - - """ - pass - - - def IsTracking(self,) -> 'typing.Any': - """ - Determines if splitter bar is currently being moved. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def InModalState(self,) -> 'typing.Any': - """ - Returns a value indicating whether or not a frame window is in a modal state. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def LoadAccelTable(self,_id:'PyResourceId') -> 'None': - """ - Loads an accelerator table. - -Args: - - _id(PyResourceId):Name or id of the resource that contains the table - -Returns: - - None - - """ - pass - - - def LoadFrame(self,idResource:'typing.Any',style:'typing.Any'=-1,wndParent:'PyCWnd'=None,context:'typing.Any'=None) -> 'None': - """ - Loads a Windows frame window and associated resources - -Args: - - idResource(typing.Any):The Id of the resources (menu, icon, etc) for this window - style(typing.Any):The window style. Note -1 implies win32con.WS_OVERLAPPEDWINDOW|win32con.FWS_ADDTOTITLE - wndParent(PyCWnd):The parent of the window, or None. - context(typing.Any):An object passed to the OnCreateClient for the frame,MFC References - -Returns: - - None - - """ - pass - - - def LoadBarState(self,profileName:'str') -> 'None': - """ - Loads a control bars settings - -Args: - - profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References - -Returns: - - None - - """ - pass - - - def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - typing.Any - - """ - pass - - - def SaveBarState(self,profileName:'str') -> 'None': - """ - Saves a control bars settings - -Args: - - profileName(str):Name of a section in the initialization file or a key in the Windows registry where state information is stored.MFC References - -Returns: - - None - - """ - pass - - - def ShowControlBar(self,controlBar:'PyCControlBar',bShow:'typing.Any',bDelay:'typing.Any') -> 'None': - """ - Shows a control bar. - -Args: - - controlBar(PyCControlBar):The control bar to dock. - bShow(typing.Any):Show or hide flag. - bDelay(typing.Any):If TRUE, delay showing the control bar. If FALSE, show the control bar immediately.MFC References - -Returns: - - None - - """ - pass - - - def RecalcLayout(self,bNotify:'typing.Any'=1) -> 'None': - """ - Called by the framework when the standard control bars are toggled on or off or - -when the frame window is resized. - -Args: - - bNotify(typing.Any):Notify flagMFC References - -Returns: - - None - - """ - pass - - - def GetActiveView(self,) -> 'PyCView': - """ - Retrieves the active view. - -Args: - - - -Returns: - - PyCView - - """ - pass - - - def OnBarCheck(self,_id:'typing.Any') -> 'typing.Any': - """ - Changes the state of the specified controlbar. - -Args: - - _id(typing.Any):The control ID of the control bar. - -Returns: - - typing.Any - - """ - pass - - - def OnUpdateControlBarMenu(self,cmdUI:'PyCCmdUI') -> 'typing.Any': - """ - Checks the state of a menu item - -Args: - - cmdUI(PyCCmdUI):A cmdui object - -Returns: - - typing.Any - - """ - pass - - - def SetActiveView(self,view:'PyCView',bNotify:'typing.Any'=1) -> 'None': - """ - Sets the active view for a frame. - -Args: - - view(PyCView):The view to set active. - bNotify(typing.Any):Specifies whether the view is to be notified of activation. If TRUE, OnActivateView is called for the new view; if FALSE, it is not. - -Returns: - - None - - """ - pass - - -class PyCGdiObject(object): - """A class which encapsulates an MFC CGdiObject.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCImageList(object): - """A Python type encapsulating an MFC CImageList class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Add(self,arg:'typing.Tuple[typing.Any, typing.Any]',bitmap:'typing.Any',color:'typing.Any',hIcon:'typing.Any') -> 'typing.Any': - """ - Adds an image to the list. - -Args: - - arg(typing.Tuple[typing.Any, typing.Any]):2 Bitmaps to use (primary and mask)Alternative Parameters - bitmap(typing.Any):Bitmap to use - color(typing.Any):Color to use for the mask.Alternative Parameters - hIcon(typing.Any):Handle of an icon to add.Return ValueZero-based index of the first new image. - -Returns: - - typing.Any:Handle of an icon to add. -Return ValueZero-based index of the first new image. - - - """ - pass - - - def Destroy(self,) -> 'None': - """ - Destroys the underlying CImageList - -Args: - - - -Returns: - - None - - """ - pass - - - def DeleteImageList(self,) -> 'None': - """ - Deletes an image list. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetBkColor(self,) -> 'typing.Any': - """ - Retrieves the background color of an Image List. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSafeHandle(self,) -> 'typing.Any': - """ - Retrieves the HIMAGELIST for the object - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetImageCount(self,) -> 'typing.Any': - """ - Retrieves the number of images in an image list. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetImageInfo(self,index:'typing.Any') -> 'typing.Any': - """ - Retrieves information about an image. - -Args: - - index(typing.Any):Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. - -Returns: - - typing.Any:Index of image.Return ValueThe return info is a tuple describing an IMAGELIST structure. - - - """ - pass - - - def SetBkColor(self,color:'typing.Any') -> 'None': - """ - Sets the background color for an Image List. - -Args: - - color(typing.Any):The new background color. - -Returns: - - None - - """ - pass - - -class PyCListBox(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddString(self,_object:'typing.Any') -> 'typing.Any': - """ - Adds a string to a listbox. - -Args: - - _object(typing.Any):Any object. If not a string, __str__, __repr__ or a default repr() will be usedMFC References - -Returns: - - typing.Any:CListBox::AddString -Return ValueThe zero based index of the new string. - - - """ - pass - - - def DeleteString(self,pos:'typing.Any') -> 'typing.Any': - """ - Deletes an item from a listbox. - -Args: - - pos(typing.Any):The zero based index of the item to delete.MFC References - -Returns: - - typing.Any:CListBox::DeleteString -Return ValueThe count of the items remaining in the list. - - - """ - pass - - - def Dir(self,attr:'typing.Any',wild:'str') -> 'typing.Any': - """ - Fills a listbox with a directory listing. - -Args: - - attr(typing.Any):The attributes of the files to locate - wild(str):A file specification string - eg, *.*MFC References - -Returns: - - typing.Any:CListBox::Dir -Return ValueThe index of the last file name added to the list. - - - """ - pass - - - def GetCaretIndex(self,) -> 'typing.Any': - """ - Returns the index of the item which has focus. - -Args: - - - -Returns: - - typing.Any:PyCListBox.GetCaretIndex - -int = GetCaretIndex()Returns the index of the item which has focus. -Return ValueThe zero-based index of the item that has the focus rectangle in a list box. - -If the list box is a single-selection list box, the return value is the index of the item that is selected, if - -any. - - - """ - pass - - - def GetCount(self,) -> 'typing.Any': - """ - Returns the count of items in the listbox. - -Args: - - - -Returns: - - typing.Any:CListBox::GetCount -Return ValueReturns the number of items currently in the listbox. - - - """ - pass - - - def GetCurSel(self,) -> 'typing.Any': - """ - Returns the index of the currently selected item. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetItemData(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the application-specific object associated with an item. - -Args: - - item(typing.Any):The index of the item whose data is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def GetItemValue(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the application-specific value associated with an item. - -Args: - - item(typing.Any):The index of the item whose data is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def GetSel(self,index:'typing.Any') -> 'typing.Any': - """ - Returns the selection state of a specified item. - -Args: - - index(typing.Any):The index of the item to return the state for.MFC References - -Returns: - - typing.Any:CListBox::GetSel -Return ValueA +ve number if the item is selected, else zero. - - - """ - pass - - - def GetSelCount(self,) -> 'typing.Any': - """ - Returns the number of selected items in a multiple selection listbox. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSelItems(self,) -> 'typing.Any': - """ - Returns a list of the indexes of the currently selected items in a multiple - -selection listbox. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSelTextItems(self,) -> 'typing.Any': - """ - Returns a list of the strings of the currently selected items in a multiple - -selection listbox. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTopIndex(self,) -> 'typing.Any': - """ - Returns the index of the top most visible item. - -Args: - - - -Returns: - - typing.Any:CListBox::GetTopIndex -Return ValueThe zero based index of the top most visible item. - - - """ - pass - - - def GetText(self,index:'typing.Any') -> 'str': - """ - Returns the string for a specified item. - -Args: - - index(typing.Any):The index of the item to retrieve the text of - -Returns: - - str - - """ - pass - - - def GetTextLen(self,index:'typing.Any') -> 'typing.Any': - """ - Returns the length of the string for a specified item. - -Args: - - index(typing.Any):The index of the item to retrieve the length of the text.MFC References - -Returns: - - typing.Any - - """ - pass - - - def InsertString(self,pos:'typing.Any',_object:'typing.Any') -> 'typing.Any': - """ - Insert a string into a listbox. - -Args: - - pos(typing.Any):The zero based index in the listbox to insert the new string - _object(typing.Any):The object to be added to the listboxMFC References - -Returns: - - typing.Any:CListBox::InsertString -Return ValueThe zero based index of the new string added. - - - """ - pass - - - def ResetContent(self,) -> 'None': - """ - Clear all the items from a listbox. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetCaretIndex(self,index:'typing.Any',bScroll:'typing.Any'=1) -> 'None': - """ - Sets the focus rectange to a specified item. - -Args: - - index(typing.Any):The zero based index of the item. - bScroll(typing.Any):Should the listbox scroll to the item?MFC References - -Returns: - - None - - """ - pass - - - def SelectString(self,after:'typing.Any',string:'str') -> 'None': - """ - Searches for a list-box item that matches the specified string, and selects it. - -Args: - - after(typing.Any):Contains the zero-based index of the item before the first item to be searched, or -1 for the entire listbox. - string(str):The string to search for.MFC References - -Returns: - - None:CListBox::SelectString -Return ValueThe return value is always None - an exception is raised if the string can not be located. - - - """ - pass - - - def SelItemRange(self,bSel:'typing.Any',start:'typing.Any',end:'typing.Any') -> 'None': - """ - Selects an item range. - -Args: - - bSel(typing.Any):Should the selection specified be set or cleared? - start(typing.Any):The zero based index of the first item to select. - end(typing.Any):The zero based index of the last item to select. - -Returns: - - None - - """ - pass - - - def SetCurSel(self,index:'typing.Any') -> 'None': - """ - Selects an item in a single selection listbox. - -Args: - - index(typing.Any):The zero based index of the item to select.MFC References - -Returns: - - None - - """ - pass - - - def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': - """ - Sets the item's application-specific object value. - -Args: - - item(typing.Any):Index of the item whose Data is to be set. - Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. - -Returns: - - typing.Any - - """ - pass - - - def SetItemValue(self,item:'typing.Any',data:'typing.Any') -> 'typing.Any': - """ - Sets the item's application-specific value. - -Args: - - item(typing.Any):Index of the item whose Data is to be set. - data(typing.Any):New value for the data. - -Returns: - - typing.Any - - """ - pass - - - def SetSel(self,index:'typing.Any',bSel:'typing.Any'=1) -> 'None': - """ - Selects an item in a multiple selection listbox. - -Args: - - index(typing.Any):The zero based index of the item to select. - bSel(typing.Any):Should the item be selected or deselected?MFC References - -Returns: - - None - - """ - pass - - - def SetTabStops(self,eachTabStop:'typing.Any',tabStops:'typing.Any') -> 'None': - """ - Sets the tab stops for a listbox. - -Args: - - eachTabStop(typing.Any):The position for each tab stop.Alternative Parameters - tabStops(typing.Any):Each individual tab stop. - -Returns: - - None - - """ - pass - - - def SetTopIndex(self,index:'typing.Any') -> 'None': - """ - Sets the top index (top most visible item) of the listbox. - -Args: - - index(typing.Any):The zero based index of the item to place at the top of the list.MFC References - -Returns: - - None - - """ - pass - - -class PyCListCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Arrange(self,code:'typing.Any') -> 'None': - """ - Aligns items on a grid. - -Args: - - code(typing.Any):Specifies the alignment style for the items - -Returns: - - None - - """ - pass - - - def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',PyCWnd:'typing.Any',_id:'typing.Any') -> 'None': - """ - Creates the actual window for the object. - -Args: - - style(typing.Any):The window style - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle - PyCWnd(typing.Any):The parent window - _id(typing.Any):The control IDMFC References - -Returns: - - None - - """ - pass - - - def DeleteAllItems(self,) -> 'None': - """ - Deletes all items from the list. - -Args: - - - -Returns: - - None - - """ - pass - - - def DeleteItem(self,item:'typing.Any') -> 'None': - """ - Deletes the specified item. - -Args: - - item(typing.Any):The item to delete. - -Returns: - - None - - """ - pass - - - def GetTextColor(self,) -> 'typing.Any': - """ - Retrieves the text color of a list view control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetTextColor(self,color:'typing.Any') -> 'None': - """ - Sets the text color of a list view control. - -Args: - - color(typing.Any):The new color. - -Returns: - - None - - """ - pass - - - def GetBkColor(self,) -> 'typing.Any': - """ - Retrieves the background color of the control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetBkColor(self,color:'typing.Any') -> 'None': - """ - Sets the background color of the control. - -Args: - - color(typing.Any):The new background color. - -Returns: - - None - - """ - pass - - - def GetItem(self,item:'typing.Any',sub:'typing.Any') -> 'LV_ITEM': - """ - Retrieves the details of an items attributes. - -Args: - - item(typing.Any):The index of the item whose attributes are to be retrieved. - sub(typing.Any):Specifies the subitem whose text is to be retrieved. - -Returns: - - LV_ITEM - - """ - pass - - - def GetItemCount(self,) -> 'typing.Any': - """ - Retrieves the number of items in a list view control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetItemRect(self,item:'typing.Any',bTextOnly:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Retrieves the bounding rectangle of a list view item. - -Args: - - item(typing.Any):Index of the item whose Data is to be set. - bTextOnly(typing.Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the list view control. - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetEditControl(self,) -> 'PyCEdit': - """ - Retrieves the handle of the edit control used to edit the specified - -list view item. - -Args: - - - -Returns: - - PyCEdit - - """ - pass - - - def EditLabel(self,item:'typing.Any') -> 'PyCEdit': - """ - Edits a specified list view item in-place. - -Args: - - item(typing.Any):The index of item to edit. - -Returns: - - PyCEdit - - """ - pass - - - def EnsureVisible(self,item:'typing.Any',bPartialOK:'typing.Any') -> 'typing.Any': - """ - Ensures that a list view item is visible in its list view control. - -Args: - - item(typing.Any):The index of item to edit. - bPartialOK(typing.Any):Specifies whether partial visibility is acceptable. - -Returns: - - typing.Any - - """ - pass - - - def CreateDragImage(self,item:'typing.Any') -> 'typing.Tuple[PyCImageList, typing.Any, typing.Any]': - """ - Creates a dragging bitmap for the specified list view - -item. - -Args: - - item(typing.Any):The index of the item to edit. - -Returns: - - typing.Tuple[PyCImageList, typing.Any, typing.Any] - - """ - pass - - - def GetImageList(self,nImageList:'typing.Any') -> 'PyCImageList': - """ - Retrieves the current image list. - -Args: - - nImageList(typing.Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. - -Returns: - - PyCImageList - - """ - pass - - - def GetNextItem(self,item:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Searches for a list view item with specified properties and with specified - -relationship to a given item. - -Args: - - item(typing.Any):Index of the item to begin the searching with, or -1 to find the first item that matches the specified flags. The specified item itself is excluded from the search. - flags(typing.Any):Geometric relation of the requested item to the specified item, and the state of the requested item. The geometric relation can be one of these values: LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT The state can be zero, or it can be one or more of these values: LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED If an item does not have all of the specified state flags set, the search continues with the next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. - -Returns: - - typing.Any:Geometric relation of the requested item to the specified item, - -and the state of the requested item. The geometric relation can be one of these values: - -LVNI_ABOVELVNI_ALLLVNI_BELOWLVNI_TOLEFTLVNI_TORIGHT - -The state can be zero, or it can be one or more of these values: - -LVNI_DROPHILITEDLVNI_FOCUSEDLVNI_HIDDENLVNI_MARKEDLVNI_SELECTED - -If an item does not have all of the specified state flags set, the search continues with the - -next item.Return ValueReturns an integer index, or raises a win32ui.error exception if not item can be found. - - - """ - pass - - - def InsertColumn(self,colNo:'typing.Any',item:'LV_COLUMN') -> 'typing.Any': - """ - Inserts a column into a list control when in report view. - -Args: - - colNo(typing.Any):The new column number - item(LV_COLUMN):A tuple describing the new column. - -Returns: - - typing.Any - - """ - pass - - - def InsertItem(self,item:'LV_ITEM',item1:'typing.Any',text:'typing.Any',image:'typing.Any',item2:'typing.Any',text1:'typing.Any') -> 'typing.Any': - """ - Inserts an item into the list. - -Args: - - item(LV_ITEM):A tuple describing the new item.Alternative Parameters - item1(typing.Any):The index of the item. - text(typing.Any):The text of the item. - image(typing.Any):The index of the image to use.Alternative Parameters - item2(typing.Any):The index of the item. - text1(typing.Any):The text of the item. - -Returns: - - typing.Any - - """ - pass - - - def SetImageList(self,imageList:'PyCImageList',imageType:'typing.Any') -> 'typing.Any': - """ - Assigns an image list to a list view control. - -Args: - - imageList(PyCImageList):The Image List to use. - imageType(typing.Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE - -Returns: - - typing.Any - - """ - pass - - - def GetColumn(self,column:'typing.Any') -> 'LV_COLUMN': - """ - Retrieves the details of a column in the control. - -Args: - - column(typing.Any):The index of the column whose attributes are to be retrieved. - -Returns: - - LV_COLUMN - - """ - pass - - - def GetTextBkColor(self,) -> 'typing.Any': - """ - Retrieves the text background color of a list view control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetTextBkColor(self,color:'typing.Any') -> 'None': - """ - Sets the text background color of a list view control. - -Args: - - color(typing.Any):The new background color. - -Returns: - - None - - """ - pass - - - def GetTopIndex(self,) -> 'typing.Any': - """ - Retrieves the index of the topmost visible item. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetCountPerPage(self,) -> 'typing.Any': - """ - Calculates the number of items that can fit vertically in a list view - -control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSelectedCount(self,) -> 'typing.Any': - """ - Retrieves the number of selected items in the list view control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetItem(self,item:'LV_ITEM') -> 'typing.Any': - """ - Sets some of all of an items attributes. - -Args: - - item(LV_ITEM):A tuple describing the new item. - -Returns: - - typing.Any - - """ - pass - - - def SetItemState(self,item:'typing.Any',state:'typing.Any',mask:'typing.Any') -> 'typing.Any': - """ - Changes the state of an item in a list view control. - -Args: - - item(typing.Any):Index of the item whose state is to be set. - state(typing.Any):New values for the state bits. - mask(typing.Any):Mask specifying which state bits to change. - -Returns: - - typing.Any - - """ - pass - - - def GetItemState(self,item:'typing.Any',mask:'typing.Any') -> 'typing.Any': - """ - Retrieves the state of a list view item. - -Args: - - item(typing.Any):The index of the item whose position is to be retrieved. - mask(typing.Any):Mask specifying which of the item's state flags to return. - -Returns: - - typing.Any - - """ - pass - - - def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': - """ - Sets the item's application-specific value. - -Args: - - item(typing.Any):Index of the item whose Data is to be set. - Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. - -Returns: - - typing.Any - - """ - pass - - - def GetItemData(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the application-specific value associated with an item. - -Args: - - item(typing.Any):The index of the item whose data is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def SetItemCount(self,count:'typing.Any') -> 'None': - """ - Prepares a list view control for adding a large number of items. - -Args: - - count(typing.Any):Number of items that the control will ultimately contain.CommentsBy calling this function before adding a large number of items, you enable a list view control to reallocate its internal data structures only once rather than every time you add an item. - -Returns: - - None - - """ - pass - - - def SetItemText(self,item:'typing.Any',sub:'typing.Any',text:'str') -> 'typing.Any': - """ - Changes the text of a list view item or subitem. - -Args: - - item(typing.Any):Index of the item whose text is to be set. - sub(typing.Any):Index of the subitem, or zero to set the item label. - text(str):String that contains the new item text. - -Returns: - - typing.Any - - """ - pass - - - def GetItemText(self,item:'typing.Any',sub:'typing.Any') -> 'typing.Any': - """ - Retrieves the text of a list view item or subitem. - -Args: - - item(typing.Any):The index of the item whose text is to be retrieved. - sub(typing.Any):Specifies the subitem whose text is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def RedrawItems(self,first:'typing.Any',first1:'typing.Any') -> 'typing.Any': - """ - Forces a listview to repaint a range of items. - -Args: - - first(typing.Any):Index of the first item to be repainted. - first1(typing.Any):Index of the last item to be repainted.CommentsThe specified items are not actually repainted until the list view window receives a WM_PAINT message. To repaint immediately, call the Windows UpdateWindow function after using this function. - -Returns: - - typing.Any - - """ - pass - - - def Update(self,item:'typing.Any') -> 'None': - """ - Forces the control to repaint a specified item. - -Args: - - item(typing.Any):The new color. - -Returns: - - None - - """ - pass - - - def SetColumn(self,colNo:'typing.Any',item:'LV_COLUMN') -> 'typing.Any': - """ - Changes column state in a list control when in report view. - -Args: - - colNo(typing.Any):The to be modified column number - item(LV_COLUMN):A tuple describing the modified column. - -Returns: - - typing.Any - - """ - pass - - - def DeleteColumn(self,first:'typing.Any') -> 'typing.Any': - """ - Deletes the specified column from the list control. - -Args: - - first(typing.Any):Index of the column to be removed. - -Returns: - - typing.Any - - """ - pass - - - def GetColumnWidth(self,first:'typing.Any') -> 'typing.Any': - """ - Gets the width of the specified column in the list control. - -Args: - - first(typing.Any):Index of the column whose width is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def SetColumnWidth(self,first:'typing.Any',first1:'typing.Any') -> 'typing.Any': - """ - Sets the width of the specified column in the list control. - -Args: - - first(typing.Any):Index of the column to be changed. - first1(typing.Any):New width of the column. - -Returns: - - typing.Any - - """ - pass - - - def GetStringWidth(self,first:'typing.Any') -> 'typing.Any': - """ - Gets the necessary column width to fully display this text in a column. - -Args: - - first(typing.Any):String that contains the text whose width is to be determined.CommentsDoesn't take the size of an included Image in account, only the size of the text is determined. - -Returns: - - typing.Any - - """ - pass - - - def HitTest(self,arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Determines which list view item, if any, is at a specified position. - -Args: - - arg(typing.Any):The point to test.Return ValueThe result is a tuple of (flags, item, subItem). flags may be a combination of the following values:ValueDescriptioncommctrl.LVHT_ABOVEThe position is above the control's client area.commctrl.LVHT_BELOWThe position is below the control's client area.commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a list item.commctrl.LVHT_ONITEMICONThe position is over a list view item's icon.commctrl.LVHT_ONITEMLABELThe position is over a list view item's text.commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item.commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area.commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, item, subItem). - -flags may be a combination of the following values: - - - -Value - - -Description - - - -commctrl.LVHT_ABOVEThe position is above the control's client area. -commctrl.LVHT_BELOWThe position is below the control's client area. -commctrl.LVHT_NOWHEREThe position is inside the list view control's client window, but it is not over a - -list item. -commctrl.LVHT_ONITEMICONThe position is over a list view item's icon. -commctrl.LVHT_ONITEMLABELThe position is over a list view item's text. -commctrl.LVHT_ONITEMSTATEICONThe position is over the state image of a list view item. -commctrl.LVHT_TOLEFTThe position is to the left of the list view control's client area. -commctrl.LVHT_TORIGHTThe position is to the right of the list view control's client area. - - - """ - pass - - - def GetItemPosition(self,item:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Determines the position of the specified item. - -Args: - - item(typing.Any):The item to determine the position for. - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - -class PyCListView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. - -Returns: - - typing.Any - - """ - pass - - - def GetListCtrl(self,) -> 'PyCListCtrl': - """ - Returns the underlying list control object. - -Args: - - - -Returns: - - PyCListCtrl - - """ - pass - - - def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(typing.Any): - lparam(typing.Any):See Also - -Returns: - - None - - """ - pass - - -class PyCMDIChildWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ActivateFrame(self,cmdShow:'typing.Any'=-1) -> 'None': - """ - Calls the underlying MFC ActivateFrame method. - -Args: - - cmdShow(typing.Any):The status of the window.See Also - -Returns: - - None - - """ - pass - - - def CreateWindow(self,wndClass:'str',title:'str',style:'typing.Any',PyCWnd:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None,createContext:'typing.Any'=None) -> 'typing.Any': - """ - Creates the actual window for the PyCWnd object. - -Args: - - wndClass(str):The window class name, or None - title(str):The window title - style(typing.Any):The window style - PyCWnd(typing.Any):The parent window - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle - createContext(typing.Any):A tuple representing a CREATECONTEXT structure.CommentsYou do not need to call this method if you use the MFC Document/View framework. - -Returns: - - typing.Any - - """ - pass - - - def GetMDIFrame(self,) -> 'None': - """ - Returns the MDI parent frame - -Args: - - - -Returns: - - None - - """ - pass - - - def MDIActivate(self,cmdShow:'typing.Any'=-1) -> 'None': - """ - Activates the MDI frame independent of the main frame. - -Args: - - cmdShow(typing.Any):The status of the window.See Also - -Returns: - - None - - """ - pass - - - def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - typing.Any - - """ - pass - - - def PreTranslateMessage(self,) -> 'None': - """ - Calls the base PreTranslateMessage handler - -Args: - - - -Returns: - - None - - """ - pass - - - def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(typing.Any): - lparam(typing.Any):See Also - -Returns: - - None - - """ - pass - - - def OnClose(self,) -> 'None': - """ - Calls the standard Python framework OnClose handler - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCMDIFrameWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetMDIClient(self,) -> 'PyCMDIFrameWnd': - """ - Returns the MDI client window - -Args: - - - -Returns: - - PyCMDIFrameWnd - - """ - pass - - - def MDIGetActive(self,) -> 'typing.Tuple[PyCMDIChildWnd, typing.Any]': - """ - Retrieves the current active MDI child window, along - -with a flag indicating whether the child window is maximized. - -Args: - - - -Returns: - - typing.Tuple[PyCMDIChildWnd, typing.Any] - - """ - pass - - - def MDIActivate(self,window:'PyCWnd') -> 'PyCMDIFrameWnd': - """ - Activate an MDI child window - -Args: - - window(PyCWnd):The window to activate. - -Returns: - - PyCMDIFrameWnd - - """ - pass - - - def MDINext(self,fNext:'typing.Any'=0) -> 'None': - """ - Activates the next MDI window - -Args: - - fNext(typing.Any):Indicates if the next (0) or previous (non-zero) window is requested.CommentsUnlike MFC, this version supports the fNext param in the WM_MDINEXT message. - -Returns: - - None - - """ - pass - - - def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - typing.Any - - """ - pass - - - def PreTranslateMessage(self,) -> 'None': - """ - Calls the base PreTranslateMessage handler - -Args: - - - -Returns: - - None - - """ - pass - - - def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(typing.Any): - lparam(typing.Any):See Also - -Returns: - - None - - """ - pass - - - def OnContextHelp(self,) -> 'typing.Any': - """ - Calls the underlying MFC OnContextHelp method. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnClose(self,) -> 'None': - """ - Calls the standard Python framework OnClose handler - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCMenu(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AppendMenu(self,flags:'typing.Any',_id:'typing.Any'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': - """ - Appends a new item to the end of a menu. Python can specify the state of the menu item - -by setting values in nFlags. - -Args: - - flags(typing.Any):Specifies information about the state of the new menu item when it is added to the menu. May be a combination of the win32con.MF_* values. - _id(typing.Any):Specifies either the command ID of the new menu item. - value(typing.Union[str, typing.Any]):Specifies the content of the new menu item. If used, flags must contain win32con.MF_STRING. - -Returns: - - None - - """ - pass - - - def DeleteMenu(self,_id:'typing.Any',flags:'typing.Any') -> 'str': - """ - Deletes the specified menu item. - -Args: - - _id(typing.Any):The id of the item being deleted. - flags(typing.Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. - -Returns: - - str - - """ - pass - - - def EnableMenuItem(self,_id:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Enables, disables, or dims a menu item. - -Args: - - _id(typing.Any):Specifies the command ID of the menu item. This parameter can specify pop-up menu items as well as standard menu items. - flags(typing.Any):Specifies the action to take. It can be a combination of MF_DISABLED, MF_ENABLED, or MF_GRAYED, with MF_BYCOMMAND or MF_BYPOSITIONCommentsThe PyCMenu::CreateMenu, PyCMenu::InsertMenu, PyCMenu::ModifyMenu, and PyCMenu::LoadMenuIndirect member functions can also set the state (enabled, disabled, or dimmed) of a menu item. - -Returns: - - typing.Any - - """ - pass - - - def GetHandle(self,) -> 'typing.Any': - """ - Returns the menu object's underlying hMenu. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetMenuItemCount(self,) -> 'typing.Any': - """ - Determines the number of items in a menu. - -Args: - - - -Returns: - - typing.Any:PyCMenu.GetMenuItemCount - -int = GetMenuItemCount()Determines the number of items in a menu. -Return ValueThe number of items in the menu if the function is successful; otherwise -1. - - - """ - pass - - - def GetMenuItemID(self,pos:'typing.Any') -> 'typing.Any': - """ - Returns the item ID for the specified item in a pop-up menu. - -Args: - - pos(typing.Any):The position (zero-based) of the menu item whose ID is being retrieved.CommentsIf the specified item is a pop-up menu (as opposed to an item within the pop-up menu), the return value is -1. If nPos corresponds to a SEPARATOR menu item, the return value is 0. - -Returns: - - typing.Any - - """ - pass - - - def GetMenuString(self,_id:'typing.Any',arg:'typing.Any') -> 'str': - """ - Returns the string for a specified menu item. - -Args: - - _id(typing.Any):The id of the item being requested. - arg(typing.Any):Specifies how the id parameter is interpreted. It must be one of win32con.MF_BYCOMMAND or win32con.MF_BYPOSITION. - -Returns: - - str - - """ - pass - - - def GetSubMenu(self,pos:'typing.Any') -> 'PyCMenu': - """ - Returns a submenu. - -Args: - - pos(typing.Any):The position (zero-based) of the menu item being retrieved. - -Returns: - - PyCMenu - - """ - pass - - - def InsertMenu(self,pos:'typing.Any',flags:'typing.Any',_id:'typing.Union[PyCMenu, typing.Any]'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': - """ - Inserts an item into a menu. - -Args: - - pos(typing.Any):The position (zero-based) the item should be inserted. - flags(typing.Any):Flags for the new item. - _id(typing.Union[PyCMenu, typing.Any]):The ID for a new menu item, or handle to a submenu - value(typing.Union[str, typing.Any]):A string for the menu item. - -Returns: - - None - - """ - pass - - - def ModifyMenu(self,pos:'typing.Any',flags:'typing.Any',_id:'typing.Any'=0,value:'typing.Union[str, typing.Any]'=None) -> 'None': - """ - Modify an item in a menu. - -Args: - - pos(typing.Any):The position (zero-based) the item to be changed. - flags(typing.Any):Flags for the item. - _id(typing.Any):The ID for the item. - value(typing.Union[str, typing.Any]):A string for the menu item. - -Returns: - - None - - """ - pass - - - def TrackPopupMenu(self,arg:'typing.Tuple[typing.Any, typing.Any]',arg1:'typing.Any',arg2:'PyCWnd') -> 'None': - """ - Creates a popup menu anywhere on the screen. - -Args: - - arg(typing.Tuple[typing.Any, typing.Any]):The position for the menu.. - arg1(typing.Any):Flags for the menu. - arg2(PyCWnd):The owner of the menu.CommentsThe TrackPopupMenu function displays a floating pop-up menu at the specified location and tracks the selection of items on the pop-up menu. The floating pop-up menu can appear anywhere on the screen.Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is returned instead of the normal exception. - -Returns: - - None:The owner of the menu. -Comments - -The TrackPopupMenu function displays a floating pop-up menu at the - -specified location and tracks the selection of items on the pop-up menu. - -The floating pop-up menu can appear anywhere on the screen. -Return ValueIf the underlying MFC function fails, but TPM_RETURNCMD is set in the flags parameter, then None is - -returned instead of the normal exception. - - - """ - pass - - -class PyCOleClientItem(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateNewItem(self,) -> 'None': - """ - Creates an embedded item. - -Args: - - - -Returns: - - None - - """ - pass - - - def Close(self,) -> 'None': - """ - Closes the item - -Args: - - - -Returns: - - None - - """ - pass - - - def DoVerb(self,) -> 'None': - """ - Executes the specified verb. - -Args: - - - -Returns: - - None - - """ - pass - - - def Draw(self,) -> 'None': - """ - Draws the OLE item into the specified bounding rectangle using the specified device - -context. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetActiveView(self,) -> 'PyCView': - """ - Obtains the active view for the item - -Args: - - - -Returns: - - PyCView - - """ - pass - - - def GetDocument(self,) -> 'PyCDocument': - """ - Obtains the current document for the item - -Args: - - - -Returns: - - PyCDocument - - """ - pass - - - def GetInPlaceWindow(self,) -> 'PyCWnd': - """ - Obtains the window in which the item has been opened for - -in-place editing. - -Args: - - - -Returns: - - PyCWnd - - """ - pass - - - def GetItemState(self,) -> 'None': - """ - Obtains the OLE item's current state - -Args: - - - -Returns: - - None - - """ - pass - - - def GetObject(self,) -> 'PyIUnknown': - """ - Returns the COM object to the item. This is the m_lpObject - -variable in MFC. - -Args: - - - -Returns: - - PyIUnknown - - """ - pass - - - def GetStorage(self,) -> 'None': - """ - Returns the COM object used for storage - -Args: - - - -Returns: - - None - - """ - pass - - - def OnActivate(self,) -> 'None': - """ - Calls the underlying MFC method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnChange(self,) -> 'None': - """ - Calls the underlying MFC method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnChangeItemPosition(self,) -> 'typing.Any': - """ - Calls the underlying MFC method. - -Args: - - - -Returns: - - typing.Any:PyCOleClientItem.OnChangeItemPosition - -int = OnChangeItemPosition()Calls the underlying MFC method. -Return ValueThe result is a BOOL indicating if the function succeeded. No exception is thrown. - - - """ - pass - - - def OnDeactivateUI(self,) -> 'typing.Any': - """ - Calls the underlying MFC method. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Run(self,) -> 'None': - """ - Runs the application associated with this item. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetItemRects(self,) -> 'None': - """ - Sets the bounding rectangle or the visible rectangle of the OLE item. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCOleDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCOleDocument(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def EnableCompoundFile(self,bEnable:'typing.Any'=1) -> 'None': - """ - Call this function if you want to store the document using the - -compound-file format. - -Args: - - bEnable(typing.Any):Specifies whether compound file support is enabled or disabled. - -Returns: - - None - - """ - pass - - - def GetStartPosition(self,) -> 'typing.Any': - """ - Obtains the position of the first item in the document. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetNextItem(self,pos:'typing.Any') -> 'typing.Tuple[typing.Any, PyCOleClientItem]': - """ - Call this function repeatedly to access each of - -the items in your document. - -Args: - - pos(typing.Any):The position to iterate from. - -Returns: - - typing.Tuple[typing.Any, PyCOleClientItem] - - """ - pass - - - def GetInPlaceActiveItem(self,wnd:'PyCWnd') -> 'PyCOleClientItem': - """ - Obtains the OLE item that is currently activated - -in place in the frame window containing the view identified by obWnd. - -Args: - - wnd(PyCWnd):The window. - -Returns: - - PyCOleClientItem - - """ - pass - - -class PyCOleInsertDialog(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetClassID(self,) -> 'typing.Any': - """ - Returns the CLSID associated with the selected item - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSelectionType(self,) -> 'typing.Any': - """ - Returns the type of selection made - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetPathName(self,) -> 'typing.Any': - """ - Returns the full path to the file selected in the dialog box - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCPrintDialog(object): - """An object which encapsulates an MFC CPrintDialog object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCPrintInfo(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DocObject(self,) -> 'None': - """ - Return true if the document being printed is a DocObject. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDwFlags(self,) -> 'None': - """ - A flags specifying DocObject printing operations. Valid only if data member - -m_bDocObject is TRUE. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDwFlags(self,) -> 'None': - """ - Set a flag specifying DocObject printing operations. Valid only if data member - -m_bDocObject is TRUE. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDocOffsetPage(self,) -> 'None': - """ - Get the number of pages preceding the first page of a particular DocObject - -in a combined DocObject print job. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDocOffsetPage(self,) -> 'None': - """ - Set the number of pages preceding the first page of a particular DocObject - -in a combined DocObject print job. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPrintDialog(self,) -> 'None': - """ - Set a pointer to the CPrintDialog object used to display the Print dialog box - -for the print job. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDirect(self,) -> 'None': - """ - TRUE if the Print dialog box will be bypassed for direct printing; FALSE otherwise. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDirect(self,) -> 'None': - """ - Sets to TRUE if the Print dialog box will be bypassed for direct printing; FALSE - -otherwise. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPreview(self,) -> 'None': - """ - A flag indicating whether the document is being previewed. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPreview(self,) -> 'None': - """ - Set whether the document is being previewed. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetContinuePrinting(self,) -> 'None': - """ - A flag indicating whether the framework should continue the print loop. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetContinuePrinting(self,) -> 'None': - """ - Set whether the framework should continue the print loop. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCurPage(self,) -> 'None': - """ - Get the number of the current page. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetCurPage(self,) -> 'None': - """ - Set the number of the current page. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetNumPreviewPages(self,) -> 'None': - """ - Get the number of pages displayed in preview mode. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetNumPreviewPages(self,) -> 'None': - """ - Set the number of pages displayed in preview mode. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetUserData(self,) -> 'None': - """ - Get a user-created structure. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetUserData(self,) -> 'None': - """ - Set a user-created structure. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDraw(self,) -> 'None': - """ - Get the usable drawing area of the page in logical coordinates. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDraw(self,) -> 'None': - """ - Set the usable drawing area of the page in logical coordinates. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPageDesc(self,) -> 'None': - """ - Get the format string used to display the page numbers during print preview - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPageDesc(self,) -> 'None': - """ - Set the format string used to display the page numbers during print preview - -Args: - - - -Returns: - - None - - """ - pass - - - def GetMinPage(self,) -> 'None': - """ - Get the number of the first page of the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetMinPage(self,) -> 'None': - """ - Set the number of the first page of the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetMaxPage(self,) -> 'None': - """ - Get the number of the last page of the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetMaxPage(self,) -> 'None': - """ - Set the number of the last page of the document. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetOffsetPage(self,) -> 'None': - """ - Get the number of pages preceding the first page of a DocObject item being - -printed in a combined DocObject print job. This currently does NOT work, as, if I include the symbol - -pInfo->GetOffsetPage(), the link fails to find its definition. Allways returns 0. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFromPage(self,) -> 'None': - """ - The number of the first page to be printed. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetToPage(self,) -> 'None': - """ - The number of the last page to be printed. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetHDC(self,hdc:'typing.Any') -> 'None': - """ - Sets the printer DC compatible with the users choices, call after the print dialog - -DoModal finishes. - -Args: - - hdc(typing.Any):The DC.MFC References - -Returns: - - None - - """ - pass - - - def CreatePrinterDC(self,) -> 'None': - """ - Handle to the newly created printer device context, call only after DoModal - -finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def DoModal(self,) -> 'None': - """ - Call DoModal on the dialog. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetCopies(self,) -> 'None': - """ - The number of copies requested, call only after DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDefaults(self,) -> 'None': - """ - Nonzero if the function was successful; otherwise 0. Call this function to - -retrieve the device defaults of the default printer without displaying a dialog box. The retrieved values are placed - -in the m_pd structure. In some cases, a call to this function will call the constructor for CPrintDialog with - -bPrintSetupOnly set to FALSE. In these cases, a printer DC and hDevNames and hDevMode (two handles located in the - -m_pd data member) are automatically allocated. If the constructor for CPrintDialog was called with bPrintSetupOnly - -set to FALSE, this function will not only return hDevNames and hDevMode (located in m_pd.hDevNames and m_pd.hDevMode) - -to the caller, but will also return a printer DC in m_pd.hDC. It is the responsibility of the caller to delete the - -printer DC and call the WindowsGlobalFree function on the handles when you are finished with the CPrintDialog object. - -Args: - - - -Returns: - - None - - """ - pass - - - def FreeDefaults(self,) -> 'None': - """ - After a call to GetDefaults, and you are through with the CPrintDialog object, - -this call deletes the printer DC and calls GlobalFree function on the handles. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDeviceName(self,) -> 'None': - """ - The name of the currently selected printer, call only after DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDriverName(self,) -> 'None': - """ - The name of the currently selected printer device driver, call only after - -DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDlgFromPage(self,) -> 'None': - """ - Retrieves the starting page of the print range. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetDlgToPage(self,) -> 'None': - """ - Retrieves the ending page of the print range. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPortName(self,) -> 'None': - """ - The name of the currently selected printer port, call only after DoModal - -finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPrinterDC(self,) -> 'None': - """ - A handle to the printer device context if successful; otherwise NULL. If the - -bPrintSetupOnly parameter of the CPrintDialog constructor was FALSE (indicating that the Print dialog box is - -displayed), then GetPrinterDC returns a handle to the printer device context. You must call the WindowsDeleteDC - -function to delete the device context when you are done using it. - -Args: - - - -Returns: - - None - - """ - pass - - - def PrintAll(self,) -> 'None': - """ - Nonzero if all pages in the document are to be printed; otherwise 0, call only after - -DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def PrintCollate(self,) -> 'None': - """ - Nonzero if the user selects the collate check box in the dialog box; otherwise - -0, call only after DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def PrintRange(self,) -> 'None': - """ - Nonzero if only a range of pages in the document are to be printed; otherwise 0, - -call only after DoModal finishes. - -Args: - - - -Returns: - - None - - """ - pass - - - def PrintSelection(self,) -> 'None': - """ - Nonzero if only the selected items are to be printed; otherwise 0., call only - -after DoModal finishes - -Args: - - - -Returns: - - None - - """ - pass - - - def GetHDC(self,) -> 'None': - """ - Identifies a device context or an information context, depending on whether the Flags - -member specifies the PD_RETURNDC or PC_RETURNIC flag. If neither flag is specified, the value of this member is - -undefined. If both flags are specified, PD_RETURNDC has priority. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetFlags(self,) -> 'None': - """ - A set of bit flags that you can use to initialize the Print common dialog box. When - -the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the - -following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, - -PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, - -PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, - -PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, - -PD_USEDEVMODECOPIESANDCOLLATE. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFlags(self,) -> 'None': - """ - A set of bit flags that you can use to initialize the Print common dialog box. When - -the dialog box returns, it sets these flags to indicate the user's input. This member can be a combination of the - -following flags: PD_ALLPAGES, PD_COLLATE, PD_DISABLEPRINTTOFILE, PD_ENABLEPRINTHOOK, PD_ENABLEPRINTTEMPLATE, - -PD_ENABLEPRINTTEMPLATEHANDLE, PD_ENABLESETUPHOOK, PD_ENABLESETUPTEMPLATE, PD_ENABLESETUPTEMPLATEHANDLE, - -PD_HIDEPRINTTOFILE, PD_NONETWORKBUTTON, PD_NOPAGENUMS, PD_NOSELECTION, PD_NOWARNING, PD_PAGENUMS, PD_PRINTSETUP, - -PD_PRINTTOFILE, PD_RETURNDC, PD_RETURNDEFAULT, PD_RETURNIC, PD_SELECTION, PD_SHOWHELP, PD_USEDEVMODECOPIES, - -PD_USEDEVMODECOPIESANDCOLLATE. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFromPage(self,) -> 'None': - """ - The number of the first page to be printed. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetToPage(self,) -> 'None': - """ - The number of the last page to be printed. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPRINTDLGMinPage(self,) -> 'None': - """ - Get the minimum value for the page range specified in the From and To page - -edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are - -disabled. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPRINTDLGMinPage(self,) -> 'None': - """ - Set the minimum value for the page range specified in the From and To page - -edit controls. If nMinPage equals nMaxPage, the Pages radio button and the starting and ending page edit controls are - -disabled. - -Args: - - - -Returns: - - None - - """ - pass - - - def GetPRINTDLGCopies(self,) -> 'None': - """ - Get the initial number of copies for the Copies edit control if hDevMode is - -NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, - -nCopies contains the actual number of copies to print. This value depends on whether the application or the printer - -driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags - -member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the - -flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more - -information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetPRINTDLGCopies(self,) -> 'None': - """ - Set the initial number of copies for the Copies edit control if hDevMode is - -NULL; otherwise, the dmCopies member of theDEVMODE structure contains the initial value. When PrintDlg returns, - -nCopies contains the actual number of copies to print. This value depends on whether the application or the printer - -driver is responsible for printing multiple copies. If the PD_USEDEVMODECOPIESANDCOLLATE flag is set in the Flags - -member, nCopies is always 1 on return, and the printer driver is responsible for printing multiple copies. If the - -flag is not set, the application is responsible for printing the number of copies specified by nCopies. For more - -information, see the description of the PD_USEDEVMODECOPIESANDCOLLATE flag. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCProgressCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': - """ - Creates the actual control. - -Args: - - style(typing.Any):The style for the control. - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. - parent(PyCWnd):The parent window of the control. Usually a PyCDialog. - _id(typing.Any):The control's ID. - -Returns: - - None - - """ - pass - - - def SetRange(self,nLower:'typing.Any'=1,nUpper:'typing.Any'=1) -> 'None': - """ - Set the control's bounds - -Args: - - nLower(typing.Any):Specifies the lower limit of the range (default is zero). - nUpper(typing.Any):Specifies the upper limit of the range (default is 100). - -Returns: - - None - - """ - pass - - - def SetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': - """ - Set the control's position - -Args: - - nPos(typing.Any):New position of the progress bar control. - -Returns: - - typing.Any - - """ - pass - - - def OffsetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': - """ - Advances the progress bar control's current position by the increment - -specified - -Args: - - nPos(typing.Any):Amount to advance the position. - -Returns: - - typing.Any - - """ - pass - - - def SetStep(self,nStep:'typing.Any'=1) -> 'typing.Any': - """ - Specifies the step increment for a progress bar control. - -Args: - - nStep(typing.Any):New step increment. - -Returns: - - typing.Any - - """ - pass - - - def StepIt(self,) -> 'typing.Any': - """ - Advances the current position for a progress bar control by the step increment. - -Returns previous position. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCPropertyPage(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CancelToClose(self,) -> 'None': - """ - Changes the Cancel button to Close. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnCancel(self,) -> 'None': - """ - Calls the default MFC OnCancel handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnOK(self,) -> 'None': - """ - Calls the default MFC OnOK handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnApply(self,) -> 'None': - """ - Calls the default MFC OnApply handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnReset(self,) -> 'None': - """ - Calls the default MFC OnReset handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnQueryCancel(self,) -> 'None': - """ - Calls the default MFC OnQueryCancel handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnWizardBack(self,) -> 'None': - """ - Calls the default MFC OnWizardBack handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnWizardNext(self,) -> 'None': - """ - Calls the default MFC OnWizardNext handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnWizardFinish(self,) -> 'None': - """ - Calls the default MFC OnWizardFinish handler. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnSetActive(self,) -> 'typing.Any': - """ - Calls the default MFC OnSetActive handler. - -Args: - - - -Returns: - - typing.Any:PyCPropertyPage.OnSetActive virtual method -Return ValueThe result is true if the page should be made active. - -Typically this result should be passed to the original OnSetActive handler. - - - """ - pass - - - def OnKillActive(self,) -> 'typing.Any': - """ - Calls the default MFC OnKillActive handler. - -Args: - - - -Returns: - - typing.Any:PyCPropertyPage.OnKillActive virtual method -Return ValueThe result is true if the page should be deselected. - -Typically this result should be passed to the original OnSetActive handler. - - - """ - pass - - - def SetModified(self,bChanged:'typing.Any'=1) -> 'None': - """ - Sets the modified flag. - -Args: - - bChanged(typing.Any):A flag to indicate the new modified state. - -Returns: - - None - - """ - pass - - - def SetPSPBit(self,bitMask:'typing.Any',bitValue:'typing.Any') -> 'None': - """ - Sets or clears a bit in m_psp.dwFlags - -Args: - - bitMask(typing.Any):The PSP_* bit mask constant - bitValue(typing.Any):1 to set, 0 to clear - -Returns: - - None - - """ - pass - - -class PyCPropertySheet(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddPage(self,page:'PyCPropertyPage') -> 'None': - """ - Adds the supplied page with the rightmost tab in the property sheet. - -Args: - - page(PyCPropertyPage):The page to be added.CommentsAdd pages to the property sheet in the left-to-right order you want them to appear.MFC References - -Returns: - - None - - """ - pass - - - def CreateWindow(self,style:'typing.Any',exStyle:'typing.Any',parent:'PyCWnd'=None) -> 'None': - """ - Displays the property sheet as a modeless dialog. - -Args: - - style(typing.Any):The style for the window. - exStyle(typing.Any):The extended style for the window. - parent(PyCWnd):The parent of the dialog. - -Returns: - - None - - """ - pass - - - def DoModal(self,) -> 'typing.Any': - """ - Displays the property sheet as a modal dialog. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def EnableStackedTabs(self,stacked:'typing.Any') -> 'PyCPropertyPage': - """ - Enables or disables stacked tabs. - -Args: - - stacked(typing.Any):A boolean flag - -Returns: - - PyCPropertyPage - - """ - pass - - - def EndDialog(self,result:'typing.Any') -> 'None': - """ - Closes the dialog, with the specified result. - -Args: - - result(typing.Any):The result to be returned by DoModal. - -Returns: - - None - - """ - pass - - - def GetActiveIndex(self,) -> 'typing.Any': - """ - Retrieves the index of the active page of the property sheet. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetActivePage(self,) -> 'PyCPropertyPage': - """ - Returns the currently active property page. - -Args: - - - -Returns: - - PyCPropertyPage - - """ - pass - - - def GetPage(self,pageNo:'typing.Any') -> 'PyCPropertyPage': - """ - Returns the specified property page. - -Args: - - pageNo(typing.Any):The index of the page toretrieve.MFC References - -Returns: - - PyCPropertyPage - - """ - pass - - - def GetPageIndex(self,page:'PyCPropertyPage') -> 'typing.Any': - """ - Retrieves the index of the specified page of the property sheet. - -Args: - - page(PyCPropertyPage):The page. - -Returns: - - typing.Any - - """ - pass - - - def GetPageCount(self,) -> 'typing.Any': - """ - Returns the number of pages. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTabCtrl(self,) -> 'PyCTabCtrl': - """ - Returns the tab control used by the sheet. - -Args: - - - -Returns: - - PyCTabCtrl - - """ - pass - - - def OnInitDialog(self,) -> 'typing.Any': - """ - Calls the default MFC OnInitDialog handler. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def PressButton(self,button:'typing.Any') -> 'None': - """ - Simulates the choice of the specified button in a property sheet. - -Args: - - button(typing.Any):The button to press - -Returns: - - None - - """ - pass - - - def RemovePage(self,offset:'typing.Any',page:'typing.Any') -> 'None': - """ - Removes the specified page from the sheet. - -Args: - - offset(typing.Any):The page number to removeAlternative Parameters - page(typing.Any):The page to remove - -Returns: - - None - - """ - pass - - - def SetActivePage(self,page:'PyCPropertyPage') -> 'None': - """ - Programmatically sets the active page object. - -Args: - - page(PyCPropertyPage):The page. - -Returns: - - None - - """ - pass - - - def SetTitle(self,title:'str') -> 'None': - """ - Sets the caption for the property sheet. - -Args: - - title(str):The new caption - -Returns: - - None - - """ - pass - - - def SetFinishText(self,text:'str') -> 'None': - """ - Sets the text for the Finish button - -Args: - - text(str):The next for the button - -Returns: - - None - - """ - pass - - - def SetWizardMode(self,) -> 'None': - """ - Enables the wizard mode - -Args: - - - -Returns: - - None - - """ - pass - - - def SetWizardButtons(self,flags:'typing.Any') -> 'None': - """ - Enables the wizard buttons - -Args: - - flags(typing.Any):The wizard flags - -Returns: - - None - - """ - pass - - - def SetPSHBit(self,bitMask:'typing.Any',bitValue:'typing.Any') -> 'None': - """ - Sets or clears a bit in m_psh.dwFlags - -Args: - - bitMask(typing.Any):The PSH_* bit mask constant - bitValue(typing.Any):1 to set, 0 to clear - -Returns: - - None - - """ - pass - - -class PyCRect(object): - """A Python interface the the MFC CRect class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCRgn(object): - """An object encapsulating an MFC PyCRgn class.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class PyCRichEditCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def Clear(self,) -> 'typing.Any': - """ - Clears all text in an edit control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Copy(self,) -> 'None': - """ - Copys the current selection to the clipboard. - -Args: - - - -Returns: - - None - - """ - pass - - - def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': - """ - Creates a rich edit control window. - -Args: - - style(typing.Any):The control style - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The position of the control - parent(PyCWnd):The parent window. Must not be None - _id(typing.Any):The control ID - -Returns: - - None - - """ - pass - - - def Cut(self,) -> 'None': - """ - Cuts the current selection to the clipboard. - -Args: - - - -Returns: - - None - - """ - pass - - - def FindText(self,charPos:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Finds text in the control - -Args: - - charPos(typing.Any):The character position - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetCharPos(self,charPos:'typing.Any') -> 'typing.Any': - """ - Returns the location of the top-left corner of the character specified - -by charPos. - -Args: - - charPos(typing.Any):The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple - -Returns: - - typing.Any:The character positionReturn ValueThe return value is a win32ui::CHARFORMAT tuple - - - - """ - pass - - - def GetDefaultCharFormat(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any:CRichEditCtrl::GetDefaultCharFormat -Return ValueThe return value is a win32ui::CHARFORMAT tuple - - - - """ - pass - - - def GetEventMask(self,) -> 'typing.Any': - """ - Returns the current event mask. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSelectionCharFormat(self,) -> 'typing.Any': - """ - Returns the character formatting of the selection. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetFirstVisibleLine(self,) -> 'typing.Any': - """ - Returns zero-based index of the topmost visible line. - -Args: - - - -Returns: - - typing.Any:CRichEditCtrl::GetFirstVisibleLine -Return ValueThe zero-based index of the topmost visible line. For single-line edit controls, the return value is 0. - - - """ - pass - - - def GetParaFormat(self,) -> 'typing.Any': - """ - Returns the current paragraph formatting attributes. - -Args: - - - -Returns: - - typing.Any:CRichEditCtrl::GetParaFormat -Return ValueThe return value is a win32ui::PARAFORMAT tuple - - - - """ - pass - - - def GetSel(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns the start and end of the current selection. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::GetSel -Return ValueThe return tuple is (the first character in the current selection, first nonselected character past the - -end of the current selection) - - - """ - pass - - - def GetSelText(self,) -> 'str': - """ - Returns the currently selected text - -Args: - - - -Returns: - - str - - """ - pass - - - def GetTextLength(self,) -> 'typing.Any': - """ - Returns the length of the text in the control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetLine(self,lineNo:'typing.Any') -> 'typing.Any': - """ - Returns the text in a specified line. - -Args: - - lineNo(typing.Any):Contains the zero-based index value for the desired line.CommentsThis function is not an MFC wrapper. - -Returns: - - typing.Any - - """ - pass - - - def GetModify(self,) -> 'typing.Any': - """ - Nonzero if the text in this control has been modified; otherwise 0. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetLineCount(self,) -> 'typing.Any': - """ - Gets the number of lines in an edit control. - -Args: - - - -Returns: - - typing.Any:CRichEditCtrl::GetLineCount -Return ValueThe number of lines in the buffer. If the control is empty, the return value is 1. - - - """ - pass - - - def LimitText(self,nChars:'typing.Any'=0) -> 'None': - """ - Sets max length of text that user can enter - -Args: - - nChars(typing.Any):Specifies the length (in bytes) of the text that the user can enter. If this parameter is 0, the text length is set to UINT_MAX bytes. This is the default behavior.MFC References - -Returns: - - None - - """ - pass - - - def LineFromChar(self,charNo:'typing.Any'=-1) -> 'typing.Any': - """ - Returns the line number of the specified character. - -Args: - - charNo(typing.Any):Contains the zero-based index value for the desired character in the text of the edit control, or -1. If -1, then it specifies the current line.MFC References - -Returns: - - typing.Any:CRichEditCtrl::LineFromChar -Return ValueThe zero-based line number of the line containing the character index specified by charNo. - -If charNo is -1, the number of the line that contains the first character of the selection is returned. - -If there is no selection, the current line number is returned. - - - """ - pass - - - def LineIndex(self,lineNo:'typing.Any'=-1) -> 'typing.Any': - """ - Retrieves the character index of a line within a multiple-line edit control. - -Args: - - lineNo(typing.Any):Contains the index value for the desired line in the text of the edit control, or contains -1. If -1, then it specifies the current line.CommentsThis method only works on multi-linr edit controls.MFC References - -Returns: - - typing.Any:CRichEditCtrl::LineIndex -Return ValueThe character index of the line specified in lineNo, or -1 if - -the specified line number is greater then the number of lines in - -the edit control. - - - """ - pass - - - def LineScroll(self,nLines:'typing.Any',nChars:'typing.Any'=0) -> 'typing.Any': - """ - Scroll the control vertically and horizontally - -Args: - - nLines(typing.Any):Specifies the number of lines to scroll vertically. - nChars(typing.Any):Specifies the number of character positions to scroll horizontally. This value is ignored if the edit control has either the ES_RIGHT or ES_CENTER style.CommentsThis method only works on multi-linr edit controls.MFC References - -Returns: - - typing.Any - - """ - pass - - - def Paste(self,) -> 'None': - """ - Pastes the contents of the clipboard into the control. - -Args: - - - -Returns: - - None - - """ - pass - - - def ReplaceSel(self,text:'str') -> 'None': - """ - Replaces the selection with the specified text. - -Args: - - text(str):The text to replace the selection with.MFC References - -Returns: - - None - - """ - pass - - - def SetBackgroundColor(self,bSysColor:'typing.Any',cr:'typing.Any'=0) -> 'typing.Any': - """ - Sets the background color for the control. - -Args: - - bSysColor(typing.Any):Indicates if the background color should be set to the system value. If this value is TRUE, cr is ignored. - cr(typing.Any):The requested background color. Used only if bSysColor is FALSE.MFC References - -Returns: - - typing.Any:CRichEditCtrl::SetEventMask -Return ValueThe return value is the previous background color. - - - """ - pass - - - def SetDefaultCharFormat(self,charFormat:'typing.Any') -> 'None': - """ - None - -Args: - - charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References - -Returns: - - None - - """ - pass - - - def SetEventMask(self,eventMask:'typing.Any') -> 'typing.Any': - """ - Sets the event motification mask. - -Args: - - eventMask(typing.Any):The new event mask. Must be one of the win32con.ENM_* flags.MFC References - -Returns: - - typing.Any:CRichEditCtrl::SetEventMask -Return ValueThe return value is the previous event mask. - - - """ - pass - - - def SetSelectionCharFormat(self,charFormat:'typing.Any') -> 'None': - """ - Sets the current selections character formatting attributes. - -Args: - - charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.MFC References - -Returns: - - None - - """ - pass - - - def SetModify(self,modified:'typing.Any'=1) -> 'None': - """ - Sets the modified flag for this control - -Args: - - modified(typing.Any):Indicates the new value for the modified flag.MFC References - -Returns: - - None - - """ - pass - - - def SetOptions(self,op:'typing.Any',flags:'typing.Any') -> 'None': - """ - Sets options for the control. - -Args: - - op(typing.Any):Indicates the operation. Must be one of the win32con.ECOOP_* flags. - flags(typing.Any):Indicates the options. Must be one a combination of win32con.ECO_* flags.MFC References - -Returns: - - None - - """ - pass - - - def SetParaFormat(self,paraFormat:'typing.Any') -> 'typing.Any': - """ - Sets the paragraph formatting - -Args: - - paraFormat(typing.Any):A charformat tuple. See win32ui::PARAFORMAT tuple for details.MFC References - -Returns: - - typing.Any:CRichEditCtrl::SetParaFormat -Return ValueThis function seems to return occasionally return failure, but - -the formatting is applied. Therefore an exception is not raised on failure, - -but the BOOL return code is passed back. - - - """ - pass - - - def SetReadOnly(self,bReadOnly:'typing.Any'=1) -> 'None': - """ - Sets or clears the read-only status of the listbox. - -Args: - - bReadOnly(typing.Any):The read-only state to set.MFC References - -Returns: - - None - - """ - pass - - - def SetSel(self,start:'typing.Any',end:'typing.Any',arg:'typing.Any') -> 'None': - """ - Sets the selection in the edit control. - -Args: - - start(typing.Any):Specifies the starting position. If start is 0 and end is -1, all the text in the edit control is selected. If start is -1, any current selection is removed. - end(typing.Any):Specifies the ending position.Alternative Parameters - arg(typing.Any):As for normal start, end args.MFC References - -Returns: - - None - - """ - pass - - - def SetSelAndCharFormat(self,charFormat:'typing.Any') -> 'None': - """ - Sets the selection and char format. - -Args: - - charFormat(typing.Any):A charformat tuple. See win32ui::CHARFORMAT tuple for details.CommentsHighly optimised for speed for color editors.MFC References - -Returns: - - None - - """ - pass - - - def SetTargetDevice(self,dc:'PyCDC',lineWidth:'typing.Any') -> 'None': - """ - Sets the target device for the control - -Args: - - dc(PyCDC):The new DC - may be None - lineWidth(typing.Any):Line width to use for formatting.MFC References - -Returns: - - None - - """ - pass - - - def StreamIn(self,_format:'typing.Any',method:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Invokes a callback to stream data into the control. - -Args: - - _format(typing.Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) - method(typing.Any):A callable object (eg, a method or function) This method is called with a single integer param, which is the maximum number of bytes to fetch. The method should return a zero length string, or None to finish the operation, and a string otherwise.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::StreamIn -Return ValueThe return value is a tuple of (no bytes written, error code) - - - """ - pass - - - def StreamOut(self,_format:'typing.Any',method:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Invokes a callback to stream data into the control. - -Args: - - _format(typing.Any):The format. One of the win32con.SF_* flags (SF_TEXT,SF_RTF) and may also combine SFF_SELECTION. - method(typing.Any):A callable object (eg, a method or function) This method is called with a string parameter. It should return an integer, zero to abort, non zero otherwise.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CRichEditCtrl::StreamOut -Return ValueThe return value is a tuple of (no bytes written, error code) - - - """ - pass - - -class PyCRichEditDoc(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def OnCloseDocument(self,) -> 'None': - """ - Call the MFC OnCloseDocument handler. - -This routine is provided so a document object which overrides this method - -can call the original MFC version if required. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCRichEditDocTemplate(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def DoCreateRichEditDoc(self,fileName:'str'=None) -> 'PyCRichEditDoc': - """ - Creates an underlying document object. - -Args: - - fileName(str):The name of the file to load. - -Returns: - - PyCRichEditDoc - - """ - pass - - -class PyCRichEditView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetRichEditCtrl(self,) -> 'PyCRichEditCtrl': - """ - Returns the underlying rich edit control object. - -Args: - - - -Returns: - - PyCRichEditCtrl - - """ - pass - - - def SetWordWrap(self,wordWrap:'typing.Any') -> 'typing.Any': - """ - Sets the wordwrap state for the control. - -Args: - - wordWrap(typing.Any):The new word-wrap state.MFC References - -Returns: - - typing.Any - - """ - pass - - - def WrapChanged(self,) -> 'typing.Any': - """ - Calls the underlying WrapChanged method. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SaveTextFile(self,FileName:'typing.Any') -> 'typing.Any': - """ - Saves the contents of the control as a test file - -Args: - - FileName(typing.Any):Name of file to saveCommentsTheere is no equivilent MFC method. This is implemented in this module for performance reasons. - -Returns: - - typing.Any - - """ - pass - - -class PyCScrollView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetDeviceScrollPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns the positon of the scroll bars in device units. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetDC(self,) -> 'PyCDC': - """ - Gets the view's current DC. - -Args: - - - -Returns: - - PyCDC - - """ - pass - - - def GetScrollPosition(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns the current position of the scroll bars (in logical units). - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def GetTotalSize(self,) -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Returns the total size of the view in logical units. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(typing.Any): - lparam(typing.Any):See Also - -Returns: - - None - - """ - pass - - - def ResizeParentToFit(self,bShrinkOnly:'typing.Any'=1) -> 'typing.Any': - """ - Lets the size of a view dictate the size of its frame window. - -Args: - - bShrinkOnly(typing.Any):The kind of resizing to perform. The default value, TRUE, shrinks the frame window if appropriate.CommentsThis is recommended only for views in MDI child frame windows. Use ResizeParentToFit in the OnInitialUpdate handler function of your View class. You must ensure the parent's PyCFrameWnd::RecalcLayout is called before using this method. - -Returns: - - typing.Any - - """ - pass - - - def SetScaleToFitSize(self,size:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Scales the viewport size to the current window size automatically. - -Args: - - size(typing.Tuple[typing.Any, typing.Any]):The horizontal and vertical sizes to which the view is to be scaled. The scroll view's size is measured in logical units. - -Returns: - - None - - """ - pass - - - def ScrollToPosition(self,position:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Scrolls to a given point in the view. - -Args: - - position(typing.Tuple[typing.Any, typing.Any]):The position to scroll to. - -Returns: - - None - - """ - pass - - - def SetScrollSizes(self,mapMode:'typing.Any',sizeTotal:'typing.Tuple[typing.Any, typing.Any]',arg:'typing.Tuple[typing.Any, typing.Any]',arg1:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Sets the sizes of the scroll bars - -Args: - - mapMode(typing.Any):The mapping mode for this view. - sizeTotal(typing.Tuple[typing.Any, typing.Any]):The total size of the view. Sizes are in logical units. Both x and y must be greater than zero. - arg(typing.Tuple[typing.Any, typing.Any]):The number of untils to scroll in response to a page-down command. - arg1(typing.Tuple[typing.Any, typing.Any]):The number of untils to scroll in response to a line-down command. - -Returns: - - None - - """ - pass - - - def UpdateBars(self,) -> 'None': - """ - Update the scroll bars state - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCSliderCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': - """ - Creates the actual control. - -Args: - - style(typing.Any):The style for the control. - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. - parent(PyCWnd):The parent window of the control. Usually a PyCDialog. - _id(typing.Any):The control's ID. - -Returns: - - None - - """ - pass - - - def GetLineSize(self,) -> 'typing.Any': - """ - Get the control's position - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetLineSize(self,nLineSize:'typing.Any'=1) -> 'typing.Any': - """ - Set the control's line size. Returns the previous line size. - -Args: - - nLineSize(typing.Any):New line size of the Slider bar control - -Returns: - - typing.Any - - """ - pass - - - def GetPageSize(self,) -> 'typing.Any': - """ - Get the control's position - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetPageSize(self,nPageSize:'typing.Any'=1) -> 'typing.Any': - """ - Set the control's page size Returns the previous page size. - -Args: - - nPageSize(typing.Any):New page size of the Slider bar control. - -Returns: - - typing.Any - - """ - pass - - - def GetRangeMax(self,) -> 'typing.Any': - """ - Get the control's Maximum - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetRangeMin(self,) -> 'typing.Any': - """ - Get the control's Minimum - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetRange(self,) -> 'typing.Any': - """ - Get the control's min and max - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetRange(self,nRangeMin:'typing.Any'=1,nRangeMax:'typing.Any'=1,bRedraw:'typing.Any'=1) -> 'typing.Any': - """ - Set the control's min and max - -Args: - - nRangeMin(typing.Any):New minimum of the Slider bar control. - nRangeMax(typing.Any):New maximum of the Slider bar control. - bRedraw(typing.Any):Should slider be redrawn? - -Returns: - - typing.Any - - """ - pass - - - def GetSelection(self,) -> 'typing.Any': - """ - Get the control's selection start and end positions - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetSelection(self,nRangeMin:'typing.Any'=1,nRangeMax:'typing.Any'=1) -> 'typing.Any': - """ - Set the control's selection start and end positions - -Args: - - nRangeMin(typing.Any):New start of the Slider's selection. - nRangeMax(typing.Any):New end of the Slider's selection. - -Returns: - - typing.Any - - """ - pass - - - def GetChannelRect(self,) -> 'typing.Any': - """ - Get the control's channel rectangle - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetThumbRect(self,) -> 'typing.Any': - """ - Get the control's thumb rectangle - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetPos(self,) -> 'typing.Any': - """ - Get the control's position - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetPos(self,nPos:'typing.Any'=1) -> 'typing.Any': - """ - Set the control's position - -Args: - - nPos(typing.Any):New position of the Slider bar control. - -Returns: - - typing.Any - - """ - pass - - - def GetNumTics(self,) -> 'typing.Any': - """ - Get number of tics in the slider - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTicArray(self,) -> 'typing.Any': - """ - Get a tuple of slider tic positions - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetTic(self,nTic:'typing.Any'=1) -> 'typing.Any': - """ - Get the position of the specified tic number - -Args: - - nTic(typing.Any):Zero based index of the tic mark - -Returns: - - typing.Any - - """ - pass - - - def GetTicPos(self,nTic:'typing.Any'=1) -> 'typing.Any': - """ - Get the position of the specified tic number in client coordinates - -Args: - - nTic(typing.Any):Zero based index of the tic mark - -Returns: - - typing.Any - - """ - pass - - - def SetTic(self,nTic:'typing.Any'=1) -> 'typing.Any': - """ - Set a tic at the specified position - -Args: - - nTic(typing.Any):Position of the desired tic mark - -Returns: - - typing.Any - - """ - pass - - - def SetTicFreq(self,nFreq:'typing.Any'=1) -> 'typing.Any': - """ - Set the tic frequency - -Args: - - nFreq(typing.Any):Frequency of tic marks - -Returns: - - typing.Any - - """ - pass - - - def ClearSel(self,bRedraw:'typing.Any'=1) -> 'typing.Any': - """ - Clear the selection - -Args: - - bRedraw(typing.Any):Redraw the control? - -Returns: - - typing.Any - - """ - pass - - - def VerifyPos(self,) -> 'typing.Any': - """ - Verify the position is between configured min and max - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def ClearTics(self,bRedraw:'typing.Any'=1) -> 'typing.Any': - """ - Clear the control's tic marks - -Args: - - bRedraw(typing.Any):Redraw the control? - -Returns: - - typing.Any - - """ - pass - - -class PyCSpinButtonCtrl(object): - """A windows spin button control. Encapsulates an MFC CSpinButtonCtrl object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPos(self,) -> 'typing.Any': - """ - Obtains the current position for a spin button control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetPos(self,pos:'typing.Any') -> 'typing.Any': - """ - Sets the current position for a spin button control. - -Args: - - pos(typing.Any):The new position.Return ValueThe result is the previous position. - -Returns: - - typing.Any:The new position.Return ValueThe result is the previous position. - - - """ - pass - - - def SetRange(self,) -> 'typing.Any': - """ - Sets the upper and lower limits (range) for a spin button control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetRange32(self,) -> 'typing.Any': - """ - Sets the 32 bit upper and lower limits (range) for a spin button control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCSplitterWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPane(self,row:'typing.Any',col:'typing.Any') -> 'PyCWnd': - """ - None - -Args: - - row(typing.Any):The row in the splitter. - col(typing.Any):The column in the splitter.CommentsTheoretically the return value can be a PyCWnd object, but currently it will always be a PyCView or derived object. - -Returns: - - PyCWnd - - """ - pass - - - def CreateView(self,view:'PyCView',row:'typing.Any',col:'typing.Any',arg:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Creates a view in a splitter window - -Args: - - view(PyCView):The view to place in the splitter pane. - row(typing.Any):The row in the splitter to place the view. - col(typing.Any):The column in the splitter to place the view. - arg(typing.Tuple[typing.Any, typing.Any]):The initial size of the new view.MFC References - -Returns: - - None - - """ - pass - - - def CreateStatic(self,parent:'typing.Any',rows:'typing.Any',cols:'typing.Any',style:'typing.Any',_id:'typing.Any') -> 'None': - """ - Creates a static splitter window. - -Args: - - parent(typing.Any):The parent window. - rows(typing.Any):The number of rows in the splitter. - cols(typing.Any):The number of columns in the splitter. - style(typing.Any):Specifies the window style - _id(typing.Any):The child window ID of the window. The ID can be AFX_IDW_PANE_FIRST unless the splitter window is nested inside another splitter window.CommentsA static splitter window is a splitter where the number of panes are fixed at window creation time. Currently this is the only splitter window supported by win32ui.MFC References - -Returns: - - None - - """ - pass - - - def SetColumnInfo(self,column:'typing.Any',ideal:'typing.Any',_min:'typing.Any') -> 'None': - """ - Sets a new minimum height and ideal height for a column - -Args: - - column(typing.Any):The column in the splitter. - ideal(typing.Any):Specifies an ideal height for the splitter window column in pixels. - _min(typing.Any):Specifies a minimum height for the splitter window column in pixels. - -Returns: - - None - - """ - pass - - - def SetRowInfo(self,row:'typing.Any',ideal:'typing.Any',_min:'typing.Any') -> 'None': - """ - Sets a new minimum height and ideal height for a row. - -Args: - - row(typing.Any):The row in the splitter. - ideal(typing.Any):Specifies an ideal height for the splitter window row in pixels. - _min(typing.Any):Specifies a minimum height for the splitter window row in pixels. - -Returns: - - None - - """ - pass - - - def IdFromRowCol(self,row:'typing.Any',col:'typing.Any') -> 'None': - """ - Gets the child window ID for the specified child. - -Args: - - row(typing.Any):The row in the splitter. - col(typing.Any):The col in the splitter - -Returns: - - None - - """ - pass - - - def DoKeyboardSplit(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCStatusBar(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetPaneInfo(self,index:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Returns the id, style, and width of the indicator pane at the - -location specified by index. - -Args: - - index(typing.Any):Index of the pane whose information is to be retrieved.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetStatusBarCtrl(self,) -> 'PyCStatusBarCtrl': - """ - Gets the statusbar control object for the statusbar. - -Args: - - - -Returns: - - PyCStatusBarCtrl - - """ - pass - - - def SetIndicators(self,indicators:'typing.Any') -> 'None': - """ - Sets each indicator's ID. - -Args: - - indicators(typing.Any):A tuple containing the ID's of the indicators. - -Returns: - - None - - """ - pass - - - def SetPaneInfo(self,index:'typing.Any',_id:'typing.Any',style:'typing.Any',width:'typing.Any') -> 'None': - """ - Sets the specified indicator pane to a new ID, style, and width. - -Args: - - index(typing.Any):Index of the indicator pane whose style is to be set. - _id(typing.Any):New ID for the indicator pane. - style(typing.Any):New style for the indicator pane.The following indicator styles are supported:afxres.SBPS_NOBORDERS - No 3-D border around the pane.afxres.SBPS_POPOUT - Reverse border so that text "pops out."afxres.SBPS_DISABLED - Do not draw text.afxres.SBPS_STRETCH - Stretch pane to fill unused space. Only one pane per status bar can have this style.afxres.SBPS_NORMAL - No stretch, borders, or pop-out. - width(typing.Any):New width for the indicator pane.MFC References - -Returns: - - None - - """ - pass - - -class PyCStatusBarCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': - """ - Creates the actual control. - -Args: - - style(typing.Any):The style for the control. - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the control. - parent(PyCWnd):The parent window of the control. Usually a PyCDialog. - _id(typing.Any):The control's ID. - -Returns: - - None - - """ - pass - - - def GetBorders(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any]': - """ - Retrieve the status bar control's current widths of - -the horizontal and vertical borders and of the space between rectangles. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetParts(self,nParts:'typing.Any') -> 'typing.Any': - """ - Retrieve coordinates of the parts in a status bar control. - -Args: - - nParts(typing.Any):The number of coordinates to retrieveCommentsThis function, as designed in MFC, returns both the *number* of parts, and, through an OUT parameter, an array of ints giving the coordinates of the parts. There is also an IN parameter saying how many coordinates to give back. Here, we're explicitly changing the semantics a bit.GetParts() -> Tuple of all coordinates GetParts(n) -> Tuple of the first n coordinates (or all coordinates, if fewer than n)So, in Python, you can't simultaneously find out how many coordinates there are, and retrieve a subset of them. In a reasonable universe, there would have been GetParts() -> int, and GetCoords() -> List. This means that I need to call the MFC method twice; once to find out how many there are, and another time to get them. - -Returns: - - typing.Any - - """ - pass - - - def GetRect(self,nPane:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Retrieves the bounding rectangle of a part in a status - -bar control. - -Args: - - nPane(typing.Any):Zero-based index of the part whose bounding rectangle is to be retrieved. - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetText(self,nPane:'typing.Any') -> 'typing.Any': - """ - Retrieve the text from the given part of a status bar control. - -Args: - - nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def GetTextAttr(self,nPane:'typing.Any') -> 'typing.Any': - """ - Retrieve the attributes of the text in the given part of a status bar - -control. - -Args: - - nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def GetTextLength(self,nPane:'typing.Any') -> 'typing.Any': - """ - Retrieve the length the text in the given part of a status bar control. - -Args: - - nPane(typing.Any):Zero-based index of the part whose text is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def SetMinHeight(self,nHeight:'typing.Any') -> 'None': - """ - Set the minimum height of a status bar control's drawing area. - -Args: - - nHeight(typing.Any):Minimum height - -Returns: - - None - - """ - pass - - - def SetParts(self,coord:'typing.Any') -> 'None': - """ - Sets the number of parts in a status bar control and the coordinate of the right - -edge of each part. - -Args: - - coord(typing.Any):Coordinates of each part - -Returns: - - None - - """ - pass - - - def SetText(self,text:'str',nPane:'typing.Any',nType:'typing.Any') -> 'None': - """ - Set the text in the given part of a status bar control. - -Args: - - text(str):The text to display - nPane(typing.Any):Zero-based index of the part to set. - nType(typing.Any):Type of drawing operation.CommentsThe drawing type can be set to one of:~ 0 - The text is drawn with a border to appear lower than the plane of the status bar.~ win32con.SBT_NOBORDERS - The text is drawn without borders.~ win32con.SBT_OWNERDRAW - The text is drawn by the parent window.~ win32con.SBT_POPOUT - The text is drawn with a border to appear higher than the plane of the status bar. - -Returns: - - None - - """ - pass - - - def SetTipText(self,nPane:'typing.Any',text:'str') -> 'None': - """ - Sets the tooltip text for a pane in a status bar. The status bar must have - -been created with the afxres.SBT_TOOLTIPS control style to enable ToolTips. - -Args: - - nPane(typing.Any):The zero-based index of status bar pane to receive the tooltip text. - text(str):The string containing the tooltip text.CommentsPay attention, this tooltip text is ONLY displayed in two situations: 1. When the corresponding pane in the status bar contains only an icon. 2. When the corresponding pane in the status bar contains text that is truncated due to the size of the pane. To make the tooltip appear even if the text is not truncated, you could add additional spaces to the end of the pane text.MFC References - -Returns: - - None - - """ - pass - - -class PyCTabCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetCurSel(self,) -> 'typing.Any': - """ - Gets the current selection of a tab control. - -Args: - - - -Returns: - - typing.Any:PyCTabCtrl.GetCurSel - -int = GetCurSel()Gets the current selection of a tab control. -Return ValueThe zero-based index of the currently selected item, or -1 if no selection. - - - """ - pass - - - def GetItemCountl(self,) -> 'typing.Any': - """ - Returns the number of tabs in the control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetCurSel(self,index:'typing.Any') -> 'typing.Any': - """ - Sets the current selection of a tab control. - -Args: - - index(typing.Any):The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. - -Returns: - - typing.Any:The index of the tab to set current.Return ValueThe zero-based index of the previously selected item. - - - """ - pass - - -class PyCToolBar(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetButtonStyle(self,index:'typing.Any') -> 'None': - """ - Retrieves the style for a button. - -Args: - - index(typing.Any):Index of the item whose style is to be retrieved. - -Returns: - - None - - """ - pass - - - def GetButtonText(self,index:'typing.Any') -> 'str': - """ - Gets the text for a button. - -Args: - - index(typing.Any):Index of the item whose text is to be retrieved. - -Returns: - - str - - """ - pass - - - def GetItemID(self,index:'typing.Any') -> 'None': - """ - Returns the command ID of a button or separator at the given index. - -Args: - - index(typing.Any):Index of the item whose ID is to be retrieved. - -Returns: - - None - - """ - pass - - - def SetButtonInfo(self,index:'typing.Any',ID:'typing.Any',style:'typing.Any',imageIx:'typing.Any') -> 'None': - """ - Sets the button's command ID, style, and image number. - -Args: - - index(typing.Any):Index of the button or separator whose information is to be set. - ID(typing.Any):The value to which the button's command ID is set. - style(typing.Any):The new button style - imageIx(typing.Any):New index for the button's image within the bitmap - -Returns: - - None - - """ - pass - - - def GetToolBarCtrl(self,) -> 'PyCToolBarCtrl': - """ - Gets the toolbar control object for the toolbar - -Args: - - - -Returns: - - PyCToolBarCtrl - - """ - pass - - - def LoadBitmap(self,_id:'PyResourceId') -> 'None': - """ - Loads the bitmap containing bitmap-button images. - -Args: - - _id(PyResourceId):Name or id of the resource that contains the bitmap.CommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. - -Returns: - - None - - """ - pass - - - def LoadToolBar(self,_id:'PyResourceId') -> 'None': - """ - Loads a toolbar from a toolbar resource. - -Args: - - _id(PyResourceId):Name or resource id of the resourceCommentsThe bitmap should contain one image for each toolbar button. If the images are not of the standard size (16 pixels wide and 15 pixels high), call PyCToolBar::SetSizes to set the button sizes and their images. - -Returns: - - None - - """ - pass - - - def SetBarStyle(self,style:'typing.Any') -> 'None': - """ - Sets the toolbar part of style - -Args: - - style(typing.Any):The toolbar style to set. - -Returns: - - None - - """ - pass - - - def SetBitmap(self,hBitmap:'typing.Any') -> 'None': - """ - Sets a bitmapped image. - -Args: - - hBitmap(typing.Any):The handle to a bitmap resource.CommentsCall this method to set the bitmap image for the toolbar. For example, call SetBitmap to change the bitmapped image after the user takes an action on a document that changes the action of a button. - -Returns: - - None - - """ - pass - - - def SetButtons(self,buttons:'typing.Any',numButtons:'typing.Any') -> 'None': - """ - Sets button styles and an index of button images within the bitmap. - -Args: - - buttons(typing.Any):A tuple containing the ID's of the buttons.Alternative Parameters - numButtons(typing.Any):The number of buttons to pre-allocate. If this option is used, then PyCToolBar::PySetButtonInfo must be used. - -Returns: - - None - - """ - pass - - - def SetButtonStyle(self,index:'typing.Any',style:'typing.Any') -> 'None': - """ - Sets the style for a button. - -Args: - - index(typing.Any):Index of the item whose style is to be set - style(typing.Any):The new style - -Returns: - - None - - """ - pass - - - def SetHeight(self,height:'typing.Any') -> 'None': - """ - Sets the height of the toolbar. - -Args: - - height(typing.Any):The height in pixels of the toolbar. - -Returns: - - None - - """ - pass - - - def SetSizes(self,sizeButton:'typing.Tuple[typing.Any, typing.Any]',sizeButton1:'typing.Tuple[typing.Any, typing.Any]') -> 'None': - """ - Sets the size of each button. - -Args: - - sizeButton(typing.Tuple[typing.Any, typing.Any]):The size of each button. - sizeButton1(typing.Tuple[typing.Any, typing.Any]):The size of each bitmap. - -Returns: - - None - - """ - pass - - -class PyCToolBarCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddBitmap(self,numButtons:'typing.Any',bitmap:'typing.Any') -> 'typing.Any': - """ - Add one or more button images to the list of button images - -Args: - - numButtons(typing.Any):Number of button images in the bitmap. - bitmap(typing.Any):Bitmap containing button or buttons to be addedMFC References - -Returns: - - typing.Any - - """ - pass - - - def AddButtons(self,) -> 'typing.Any': - """ - Add one or more buttons to the toolbar - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def AddStrings(self,strings:'typing.Any') -> 'typing.Any': - """ - Add one or more strings to the toolbar - -Args: - - strings(typing.Any):Strings to add. Can give more than one string. - -Returns: - - typing.Any - - """ - pass - - - def AutoSize(self,) -> 'None': - """ - Resize the entire toolbar control - -Args: - - - -Returns: - - None - - """ - pass - - - def CheckButton(self,nID:'typing.Any',bCheck:'typing.Any'=1) -> 'typing.Any': - """ - Check or clear a given button in a toolbar control - -Args: - - nID(typing.Any):Command identifier of the button to check or clear. - bCheck(typing.Any):1 to check, 0 to clear the buttonMFC References - -Returns: - - typing.Any - - """ - pass - - - def CommandToIndex(self,nID:'typing.Any') -> 'typing.Any': - """ - Retrieve the zero-based index for the button associated with the - -specified command identifier. - -Args: - - nID(typing.Any):Command identifier of the button you want to find.MFC References - -Returns: - - typing.Any - - """ - pass - - - def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any') -> 'None': - """ - Creates the window for a new toolbar object - -Args: - - style(typing.Any):The style for the button. Use any of the win32con.BS_* constants. - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the button. - parent(PyCWnd):The parent window of the button. Usually a PyCDialog. - _id(typing.Any):The buttons control ID.MFC References - -Returns: - - None - - """ - pass - - - def Customize(self,) -> 'None': - """ - Display the Customize Toolbar dialog box. - -Args: - - - -Returns: - - None - - """ - pass - - - def DeleteButton(self,nID:'typing.Any') -> 'None': - """ - Delete a button from the toolbar control. - -Args: - - nID(typing.Any):ID of the button to delete.MFC References - -Returns: - - None - - """ - pass - - - def EnableButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': - """ - Enable or disable a toolbar control button. - -Args: - - nID(typing.Any):ID of the button to enable or disable. - bEnable(typing.Any):1 to enable, 0 to disableMFC References - -Returns: - - None - - """ - pass - - - def GetBitmapFlags(self,) -> 'typing.Any': - """ - retrieve the bitmap flags from the toolbar. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetButton(self,nID:'typing.Any') -> 'typing.Any': - """ - Retrieve information about the specified button in a - -toolbar control. - -Args: - - nID(typing.Any):ID of the button to retrieve.MFC References - -Returns: - - typing.Any - - """ - pass - - - def GetButtonCount(self,) -> 'typing.Any': - """ - Retrieve a count of the buttons currently in the toolbar control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetItemRect(self,nID:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Retrieve the bounding rectangle of a button in a - -toolbar control. - -Args: - - nID(typing.Any):ID of the button.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetRows(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Retrieve the number of rows of buttons currently displayed - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def HideButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': - """ - Hide or show the specified button in a toolbar control. - -Args: - - nID(typing.Any):ID of the button to hide. - bEnable(typing.Any):1 to hide, 0 to show.MFC References - -Returns: - - None - - """ - pass - - - def Indeterminate(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': - """ - Mark or unmark the specified button as indeterminate - -Args: - - nID(typing.Any):ID of the button to mark. - bEnable(typing.Any):1 to hide, 0 to show.MFC References - -Returns: - - None - - """ - pass - - - def InsertButton(self,nID:'typing.Any',button:'PyCToolBarCtrl') -> 'typing.Any': - """ - Insert a button in a toolbar control. - -Args: - - nID(typing.Any):Zero-based index of a button. This function inserts the new button to the left of this button. - button(PyCToolBarCtrl):Bitmap containing button to be insertedCommentsThe image and/or string whose index you provide must have previously been added to the toolbar control's list using PyCToolBarCtrl::AddBitmap, PyCToolBarCtrl::AddString, and/or PyCToolBarCtrl::AddStrings.MFC References - -Returns: - - typing.Any - - """ - pass - - - def IsButtonChecked(self,nID:'typing.Any') -> 'typing.Any': - """ - Determine whether the specified button in a toolbar control is checked. - -Args: - - nID(typing.Any):ID of the button to check.MFC References - -Returns: - - typing.Any - - """ - pass - - - def IsButtonEnabled(self,nID:'typing.Any') -> 'typing.Any': - """ - Determine whether the specified button in a toolbar control is enabled. - -Args: - - nID(typing.Any):ID of the button to check.MFC References - -Returns: - - typing.Any - - """ - pass - - - def IsButtonHidden(self,nID:'typing.Any') -> 'typing.Any': - """ - Determine whether the specified button in a toolbar control is hidden. - -Args: - - nID(typing.Any):ID of the button to check.MFC References - -Returns: - - typing.Any - - """ - pass - - - def IsButtonIndeterminate(self,nID:'typing.Any') -> 'typing.Any': - """ - Determine whether the specified button in a toolbar control is - -indeterminate. - -Args: - - nID(typing.Any):ID of the button to check.MFC References - -Returns: - - typing.Any - - """ - pass - - - def IsButtonPressed(self,nID:'typing.Any') -> 'typing.Any': - """ - Determine whether the specified button in a toolbar control is pressed. - -Args: - - nID(typing.Any):ID of the button to check.MFC References - -Returns: - - typing.Any - - """ - pass - - - def PressButton(self,nID:'typing.Any',bEnable:'typing.Any'=1) -> 'None': - """ - Mark or unmark the specified button as pressed. - -Args: - - nID(typing.Any):ID of the button to mark. - bEnable(typing.Any):1 to mark, 0 to unmark.MFC References - -Returns: - - None - - """ - pass - - - def SetBitmapSize(self,width1:'typing.Any',height1:'typing.Any',width:'typing.Any'=16,height:'typing.Any'=15) -> 'None': - """ - Set the size of the actual bitmapped images to be added to a toolbar control. - -Args: - - width1(typing.Any):Width of bitmap images. - height1(typing.Any):Height of bitmap images.MFC References - width(typing.Any):Width of bitmap images. - height(typing.Any):Height of bitmap images.Alternative Parameters - -Returns: - - None - - """ - pass - - - def SetButtonSize(self,width1:'typing.Any',height1:'typing.Any',width:'typing.Any'=16,height:'typing.Any'=15) -> 'None': - """ - Set the size of the buttons to be added to a toolbar control. - -Args: - - width1(typing.Any):Width of bitmap images. - height1(typing.Any):Height of bitmap images.MFC References - width(typing.Any):Width of buttons - height(typing.Any):Height of buttonsAlternative Parameters - -Returns: - - None - - """ - pass - - - def SetCmdID(self,nIndex:'typing.Any',nID:'typing.Any') -> 'None': - """ - Set the command identifier which will be sent to the owner window when the - -specified button is pressed. - -Args: - - nIndex(typing.Any):The zero-based index of the button whose command ID is to be set. - nID(typing.Any):The command ID to set the selected button to.MFC References - -Returns: - - None - - """ - pass - - - def SetRows(self,nRows:'typing.Any',bLarger:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Ask the toolbar control to resize itself to the requested - -number of rows. - -Args: - - nRows(typing.Any):Requested number of rows. - bLarger(typing.Any):Tells whether to use more rows or fewer rows if the toolbar cannot be resized to the requested number of rows.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - -class PyCToolTipCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,parent:'PyCWnd',style:'typing.Any') -> 'None': - """ - Creates the actual control. - -Args: - - parent(PyCWnd):The parent window of the control. - style(typing.Any):The style for the control. - -Returns: - - None - - """ - pass - - - def UpdateTipText(self,text:'str',wnd:'PyCWnd',_id:'typing.Any') -> 'None': - """ - Update the tool tip text for a control's tools - -Args: - - text(str):The text for the tool. - wnd(PyCWnd):The window of the tool. - _id(typing.Any):The id of the tool - -Returns: - - None - - """ - pass - - - def AddTool(self,wnd:'PyCWnd',text:'str',_id:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None) -> 'None': - """ - Adds a tool to tooltip control. - -Args: - - wnd(PyCWnd):The window of the tool. - text(str):The text for the tool. - _id(typing.Any):The id of the tool - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle - -Returns: - - None - - """ - pass - - - def SetMaxTipWidth(self,width:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - width(typing.Any):The new width - -Returns: - - typing.Any - - """ - pass - - -class PyCTreeCtrl(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',PyCWnd:'typing.Any',_id:'typing.Any') -> 'None': - """ - Creates the actual window for the object. - -Args: - - style(typing.Any):The window style - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default rectangle - PyCWnd(typing.Any):The parent window - _id(typing.Any):The control IDMFC References - -Returns: - - None - - """ - pass - - - def GetCount(self,) -> 'typing.Any': - """ - Retrieves the number of tree items associated with a tree view control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetIndent(self,) -> 'typing.Any': - """ - Retrieves the offset (in pixels) of a tree view item from its parent. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetIndent(self,indent:'typing.Any') -> 'None': - """ - Sets the offset (in pixels) of a tree view item from its parent. - -Args: - - indent(typing.Any):The new indent. - -Returns: - - None - - """ - pass - - - def GetImageList(self,nImageList:'typing.Any') -> 'PyCImageList': - """ - Retrieves the current image list. - -Args: - - nImageList(typing.Any):Value specifying which image list to retrieve. It can be one of: - commctrl.LVSIL_NORMAL Image list with large icons. - commctrl.LVSIL_SMALL Image list with small icons. - commctrl.LVSIL_STATE Image list with state images. - -Returns: - - PyCImageList - - """ - pass - - - def SetImageList(self,imageList:'PyCImageList',imageType:'typing.Any') -> 'typing.Any': - """ - Assigns an image list to a list view control. - -Args: - - imageList(PyCImageList):The Image List to use. - imageType(typing.Any):Type of image list. It can be one of (COMMCTRL.) LVSIL_NORMAL, LVSIL_SMALL or LVSIL_STATE - -Returns: - - typing.Any - - """ - pass - - - def GetNextItem(self,item:'typing.Any',code:'typing.Any') -> 'typing.Any': - """ - Retrieves the next item. - -Args: - - item(typing.Any):The specified item - code(typing.Any):Specifies the relationship of the item to fetch. - -Returns: - - typing.Any - - """ - pass - - - def ItemHasChildren(self,item:'typing.Any') -> 'typing.Any': - """ - Returns nonzero if the specified item has child items. - -Args: - - item(typing.Any):The specified item - -Returns: - - typing.Any - - """ - pass - - - def GetChildItem(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the first child item. - -Args: - - item(typing.Any):The specified item - -Returns: - - typing.Any - - """ - pass - - - def GetNextSiblingItem(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the next sibling of the specified tree view item. - -Args: - - item(typing.Any):The specified item - -Returns: - - typing.Any - - """ - pass - - - def GetPrevSiblingItem(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the previous sibling of the specified tree view item. - -Args: - - item(typing.Any):The specified item - -Returns: - - typing.Any - - """ - pass - - - def GetParentItem(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the parent item of the specified tree view item. - -Args: - - item(typing.Any):The specified item - -Returns: - - typing.Any - - """ - pass - - - def GetFirstVisibleItem(self,) -> 'typing.Any': - """ - Retrieves the first visible item of the tree view control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetNextVisibleItem(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the next visible item of the specified tree view item. - -Args: - - item(typing.Any):The specified item - -Returns: - - typing.Any - - """ - pass - - - def GetSelectedItem(self,) -> 'typing.Any': - """ - Retrieves the currently selected tree view item. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetDropHilightItem(self,) -> 'typing.Any': - """ - Retrieves the target of a drag-and-drop operation. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetRootItem(self,) -> 'typing.Any': - """ - Retrieves the root of the specified tree view item. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetToolTips(self,) -> 'typing.Any': - """ - Returns the tooltip control - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetItem(self,item:'typing.Any',arg:'typing.Any') -> 'TV_ITEM': - """ - Retrieves the details of an items attributes. - -Args: - - item(typing.Any):The item whose attributes are to be retrieved. - arg(typing.Any):The requested attributes. - -Returns: - - TV_ITEM - - """ - pass - - - def SetItem(self,item:'TV_ITEM') -> 'typing.Any': - """ - Sets some of all of an items attributes. - -Args: - - item(TV_ITEM):A tuple describing the new item. - -Returns: - - typing.Any - - """ - pass - - - def GetItemState(self,item:'typing.Any',stateMask:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Retrieves the state and mask of an item. - -Args: - - item(typing.Any):The specified item - stateMask(typing.Any):The mask for the result. - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def SetItemState(self,item:'typing.Any',state:'typing.Any',stateMask:'typing.Any') -> 'None': - """ - Sets the state of item. - -Args: - - item(typing.Any):The specified item - state(typing.Any):The new state - stateMask(typing.Any):The mask for the new state - -Returns: - - None - - """ - pass - - - def GetItemImage(self,item:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Retrieves the index of an items images. - -Args: - - item(typing.Any):The specified item - -Returns: - - typing.Tuple[typing.Any, typing.Any] - - """ - pass - - - def SetItemImage(self,item:'typing.Any',iImage:'typing.Any',iSelectedImage:'typing.Any') -> 'None': - """ - Sets the index of an items images. - -Args: - - item(typing.Any):The specified item - iImage(typing.Any):The offset of the image. - iSelectedImage(typing.Any):The offset of the selected image. - -Returns: - - None - - """ - pass - - - def SetItemText(self,item:'typing.Any',text:'str') -> 'typing.Any': - """ - Changes the text of a list view item or subitem. - -Args: - - item(typing.Any):The item whose text is to be retrieved. - text(str):String that contains the new item text. - -Returns: - - typing.Any - - """ - pass - - - def GetItemText(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the text of a list view item or subitem. - -Args: - - item(typing.Any):The item whose text is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def GetItemData(self,item:'typing.Any') -> 'typing.Any': - """ - Retrieves the application-specific value associated with an item. - -Args: - - item(typing.Any):The index of the item whose data is to be retrieved. - -Returns: - - typing.Any - - """ - pass - - - def SetItemData(self,item:'typing.Any',Data:'typing.Any') -> 'typing.Any': - """ - Sets the item's application-specific value. - -Args: - - item(typing.Any):The item whose Data is to be set. - Data(typing.Any):New value for the data.CommentsNote that a reference count is not added to the object. This it is your responsibility to make sure the object remains alive while in the list. - -Returns: - - typing.Any - - """ - pass - - - def GetItemRect(self,item:'typing.Any',bTextOnly:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Retrieves the bounding rectangle of a tree view item. - -Args: - - item(typing.Any):The item whose Data is to be set. - bTextOnly(typing.Any):f this parameter is nonzero, the bounding rectangle includes only the text of the item. Otherwise it includes the entire line that the item occupies in the tree view control. - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetEditControl(self,) -> 'PyCEdit': - """ - Retrieves the handle of the edit control used to edit the specified - -tree view item. - -Args: - - - -Returns: - - PyCEdit - - """ - pass - - - def GetVisibleCount(self,) -> 'typing.Any': - """ - Retrieves the number of visible tree items associated with a tree view - -control. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def InsertItem(self,hParent:'typing.Any',hInsertAfter:'typing.Any',item:'TV_ITEM',mask:'typing.Any',text:'typing.Any',image:'typing.Any',selectedImage:'typing.Any',state:'typing.Any',stateMask:'typing.Any',lParam:'typing.Any',parent:'typing.Any',parent1:'typing.Any',text1:'typing.Any',image1:'typing.Any',selectedImage1:'typing.Any',parent2:'typing.Any',insertAfter:'typing.Any',text2:'typing.Any',parent3:'typing.Any',parent4:'typing.Any') -> 'typing.Any': - """ - Inserts an item into the list. - -Args: - - hParent(typing.Any):The parent item. If commctrl.TVI_ROOT or 0, it is added to the root. - hInsertAfter(typing.Any):The item to insert after. Can be an item or TVI_FIRST, TVI_LAST or TVI_SORT - item(TV_ITEM):A tuple describing the new item.Alternative Parameters - mask(typing.Any):Integer specifying which attributes to set - text(typing.Any):The text of the item. - image(typing.Any):The index of the image to use. - selectedImage(typing.Any):The index of the items selected image. - state(typing.Any):The initial state of the item. - stateMask(typing.Any):Specifies which bits of the state are valid. - lParam(typing.Any):A user defined object for the item. - parent(typing.Any):The parent of the item. - parent1(typing.Any):The parent of the item.Alternative Parameters - text1(typing.Any):The text for the item. - image1(typing.Any):The index of the image to use. - selectedImage1(typing.Any):The index of the items selected image. - parent2(typing.Any):The parent of the item. - insertAfter(typing.Any):The item to insert the new item after, or TVI_FIRST, TVI_LAST or TVI_SORTAlternative Parameters - text2(typing.Any):The text for the item. - parent3(typing.Any):The parent of the item. - parent4(typing.Any):The parent of the item. - -Returns: - - typing.Any - - """ - pass - - - def DeleteItem(self,item:'typing.Any') -> 'None': - """ - Deletes the specified item. - -Args: - - item(typing.Any):The specified item - -Returns: - - None - - """ - pass - - - def DeleteAllItems(self,) -> 'typing.Any': - """ - Deletes all items in the control - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Expand(self,item:'typing.Any',code:'typing.Any') -> 'None': - """ - Expands, or collapses, the child items of the specified tree view item. - -Args: - - item(typing.Any):The specified item - code(typing.Any):The action to take - -Returns: - - None - - """ - pass - - - def Select(self,item:'typing.Any',code:'typing.Any') -> 'None': - """ - Selects, scrolls into view, or redraws a specified tree view item. - -Args: - - item(typing.Any):The specified item - code(typing.Any):The action to take - -Returns: - - None - - """ - pass - - - def SelectItem(self,item:'typing.Any') -> 'None': - """ - Selects a specified tree view item. - -Args: - - item(typing.Any):The specified item - -Returns: - - None - - """ - pass - - - def SelectDropTarget(self,item:'typing.Any') -> 'None': - """ - Redraws the tree item as the target of a drag-and-drop operation. - -Args: - - item(typing.Any):The specified item - -Returns: - - None - - """ - pass - - - def SelectSetFirstVisible(self,item:'typing.Any') -> 'None': - """ - Selects a specified tree view item as the first visible item. - -Args: - - item(typing.Any):The specified item - -Returns: - - None - - """ - pass - - - def EditLabel(self,item:'typing.Any') -> 'PyCEdit': - """ - Edits a specified tree view item in-place. - -Args: - - item(typing.Any):The item to edit. - -Returns: - - PyCEdit - - """ - pass - - - def CreateDragImage(self,item:'typing.Any') -> 'PyCImageList': - """ - Creates a dragging bitmap for the specified tree view item. - -Args: - - item(typing.Any):The item to edit. - -Returns: - - PyCImageList - - """ - pass - - - def SortChildren(self,item:'typing.Any') -> 'None': - """ - Sorts the children of a given parent item. - -Args: - - item(typing.Any):The specified parent item - -Returns: - - None - - """ - pass - - - def EnsureVisible(self,item:'typing.Any') -> 'typing.Any': - """ - Ensures that a tree view item is visible in its tree view control. - -Args: - - item(typing.Any):The item to edit. - -Returns: - - typing.Any - - """ - pass - - - def HitTest(self,arg:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Determines which tree view item, if any, is at a specified position. - -Args: - - arg(typing.Any):The point to test.Return ValueThe result is a tuple of (flags, hItem). flags may be a combination of the following values:ValueDescriptioncommctrl.TVHT_ABOVEAbove the client area.commctrl.TVHT_BELOWBelow the client area.commctrl.TVHT_NOWHEREIn the client area, but below the last item.commctrl.TVHT_ONITEMOn the bitmap or label associated with an item.commctrl.TVHT_ONITEMBUTTONOn the button associated with an item.commctrl.TVHT_ONITEMICONOn the bitmap associated with an item.commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item.commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item.commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item.commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state.commctrl.TVHT_TOLEFTTo the left of the client area.commctrl.TVHT_TORIGHTTo the right of the client area. - -Returns: - - typing.Tuple[typing.Any, typing.Any]:The point to test.Return ValueThe result is a tuple of (flags, hItem). - -flags may be a combination of the following values: - - - -Value - - -Description - - - -commctrl.TVHT_ABOVEAbove the client area. -commctrl.TVHT_BELOWBelow the client area. -commctrl.TVHT_NOWHEREIn the client area, but below the last item. -commctrl.TVHT_ONITEMOn the bitmap or label associated with an item. -commctrl.TVHT_ONITEMBUTTONOn the button associated with an item. -commctrl.TVHT_ONITEMICONOn the bitmap associated with an item. -commctrl.TVHT_ONITEMINDENTIn the indentation associated with an item. -commctrl.TVHT_ONITEMLABELOn the label (string) associated with an item. -commctrl.TVHT_ONITEMRIGHTIn the area to the right of an item. -commctrl.TVHT_ONITEMSTATEICONOn the state icon for a tree view item that is in a user-defined state. -commctrl.TVHT_TOLEFTTo the left of the client area. -commctrl.TVHT_TORIGHTTo the right of the client area. - - - """ - pass - - -class PyCTreeView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(typing.Any):A tuple representing a CREATESTRUCT structure. - -Returns: - - typing.Any - - """ - pass - - - def GetTreeCtrl(self,) -> 'PyCTreeCtrl': - """ - Returns the underlying tree control object. - -Args: - - - -Returns: - - PyCTreeCtrl - - """ - pass - - - def OnCommand(self,wparam:'typing.Any',lparam:'typing.Any') -> 'None': - """ - Calls the standard Python framework OnCommand handler - -Args: - - wparam(typing.Any): - lparam(typing.Any):See Also - -Returns: - - None - - """ - pass - - -class PyCView(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateWindow(self,parent:'PyCWnd',arg:'typing.Any',arg1:'typing.Any',arg2:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]') -> 'None': - """ - Creates the window for a view. - -Args: - - parent(PyCWnd):The parent window (usually a frame) - arg(typing.Any):The child ID for the view - arg1(typing.Any):The style for the view - arg2(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The default position of the window. - -Returns: - - None - - """ - pass - - - def GetDocument(self,) -> 'PyCDocument': - """ - Returns the document for a view. - -Args: - - - -Returns: - - PyCDocument - - """ - pass - - - def OnActivateView(self,activate:'typing.Any',activateView:'PyCView',DeactivateView:'PyCView') -> 'typing.Any': - """ - Calls the underlying MFC OnActivateView method. - -Args: - - activate(typing.Any):Indicates whether the view is being activated or deactivated. - activateView(PyCView):The view object that is being activated. - DeactivateView(PyCView):The view object that is being deactivated.See Also - -Returns: - - typing.Any - - """ - pass - - - def OnInitialUpdate(self,) -> 'None': - """ - Calls the underlying MFC OnInitialUpdate method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnMouseActivate(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': - """ - Calls the base MFC OnMouseActivate function. - -Args: - - wnd(PyCWnd): - hittest(typing.Any): - message(typing.Any):See Also - -Returns: - - typing.Any - - """ - pass - - - def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - typing.Any - - """ - pass - - - def OnFilePrint(self,) -> 'None': - """ - Calls the underlying MFC OnFilePrint method. - -Args: - - - -Returns: - - None - - """ - pass - - - def DoPreparePrinting(self,) -> 'typing.Any': - """ - Invoke the Print dialog box and create a printer device context. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnBeginPrinting(self,) -> 'None': - """ - Calls the underlying MFC OnBeginPrinting method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnEndPrinting(self,) -> 'None': - """ - Calls the underlying MFC OnEndPrinting method. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyCWinApp(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddDocTemplate(self,template:'PyCDocTemplate') -> 'None': - """ - Adds a template to the application list. - -Args: - - template(PyCDocTemplate):The template to be added. - -Returns: - - None - - """ - pass - - - def FindOpenDocument(self,fileName:'str') -> 'PyCDocument': - """ - Returns an existing document with the specified file name. - -Args: - - fileName(str):The fully qualified filename to search for. - -Returns: - - PyCDocument - - """ - pass - - - def GetDocTemplateList(self,) -> 'typing.List[typing.Any]': - """ - Returns a list of all document templates. - -Args: - - - -Returns: - - typing.List[typing.Any] - - """ - pass - - - def InitDlgInstance(self,dialog:'PyCDialog') -> 'None': - """ - Calls critical InitInstance processing for a dialog based application. - -Args: - - dialog(PyCDialog):The dialog object to be used as the main window for the application. - -Returns: - - None - - """ - pass - - - def LoadCursor(self,cursorId:'PyResourceId') -> 'typing.Any': - """ - Loads a cursor. - -Args: - - cursorId(PyResourceId):The resource id or name of the cursor to load. - -Returns: - - typing.Any - - """ - pass - - - def LoadStandardCursor(self,cursorId:'PyResourceId') -> 'typing.Any': - """ - Loads a standard cursor. - -Args: - - cursorId(PyResourceId):The resource ID or name of the cursor to load. - -Returns: - - typing.Any - - """ - pass - - - def LoadOEMCursor(self,cursorId:'typing.Any') -> 'typing.Any': - """ - Loads an OEM cursor. - -Args: - - cursorId(typing.Any):The ID of the cursor to load. - -Returns: - - typing.Any - - """ - pass - - - def LoadIcon(self,idResource:'typing.Any') -> 'typing.Any': - """ - Loads an icon resource. - -Args: - - idResource(typing.Any):The ID of the icon to load. - -Returns: - - typing.Any - - """ - pass - - - def LoadStandardIcon(self,resourceName:'PyResourceId') -> 'typing.Any': - """ - Loads an icon resource. - -Args: - - resourceName(PyResourceId):The resource name or id of the standard icon to load. - -Returns: - - typing.Any - - """ - pass - - - def OpenDocumentFile(self,fileName:'str') -> 'None': - """ - Opens a document file by name. - -Args: - - fileName(str):The name of the document to open. - -Returns: - - None - - """ - pass - - - def OnFileNew(self,) -> 'None': - """ - Calls the underlying OnFileNew MFC method. - -Args: - - - -Returns: - - None - - """ - pass - - - def OnFileOpen(self,) -> 'None': - """ - Calls the underlying OnFileOpen MFC method. - -Args: - - - -Returns: - - None - - """ - pass - - - def RemoveDocTemplate(self,template:'PyCDocTemplate') -> 'None': - """ - Removes a template to the application list. - -Args: - - template(PyCDocTemplate):The template to be removed. Must have previously been added by PyCWinApp::AddDocTemplate.CommentsNote that MFC does not provide an equivilent function. - -Returns: - - None - - """ - pass - - - def Run(self,) -> 'typing.Any': - """ - Starts the message pump. Advanced users only - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsInproc(self,) -> 'typing.Any': - """ - Returns a flag to indicate if the created CWinApp was in the DLL, or an external - -EXE. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - -class PyCWinThread(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def CreateThread(self,) -> 'None': - """ - Creates the actual thread behind the thread object. - -Args: - - - -Returns: - - None - - """ - pass - - - def PumpIdle(self,) -> 'None': - """ - Pumps all idle messages. - -Args: - - - -Returns: - - None - - """ - pass - - - def PumpMessages(self,) -> 'None': - """ - Pumps all messages to the application until a WM_QUIT message is received. - -Args: - - - -Returns: - - None - - """ - pass - - - def Run(self,) -> 'typing.Any': - """ - Starts the message pump. Advanced users only - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetMainFrame(self,mainFrame:'PyCWnd') -> 'None': - """ - Sets the threads main frame - -Args: - - mainFrame(PyCWnd):The applications main frame.CommentsYou can pass None to this function to reset the main frame. Should I free this? I dont think so! - -Returns: - - None - - """ - pass - - - def SetThreadPriority(self,priority:'PyCWnd') -> 'None': - """ - Sets the threads priority. Returns TRUE if successful. - -Args: - - priority(PyCWnd):The threads priority. - -Returns: - - None - - """ - pass - - -class PyCWnd(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ActivateFrame(self,cmdShow:'typing.Any') -> 'None': - """ - Searches upwards for a parent window which has - -a frame, and activates it. - -Args: - - cmdShow(typing.Any):The param passed to CFrameWnd::ShowWindow. See also PyCWnd::ShowWindow.MFC References - -Returns: - - None - - """ - pass - - - def BringWindowToTop(self,) -> 'None': - """ - Brings the window to the top of a stack of overlapping windows. - -Args: - - - -Returns: - - None - - """ - pass - - - def BeginPaint(self,) -> 'typing.Tuple[PyCDC, typing.Any]': - """ - Prepares a window for painting - -Args: - - - -Returns: - - typing.Tuple[PyCDC, typing.Any]:PyCWnd.BeginPaint -PyCDC, PAINTSTRUCT - - = BeginPaint()Prepares a window for painting -Return ValueYou must pass the PAINTSTRUCT param to the PyCWnd::EndPaint method. - - - """ - pass - - - def CalcWindowRect(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',nAdjustType:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Computes the size of the window rectangle based on the desired client - -rectangle size. The resulting size can then be used as the initial - -size for the window object. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size to calculate from - nAdjustType(typing.Any):An enumerated type used for in-place editing. It can have the following values: CWnd::adjustBorder = 0, which means that scrollbar sizes are ignored in calculation; and CWnd::adjustOutside = 1, which means that they are added into the final measurements of the rectangle.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def CenterWindow(self,altwin:'PyCWnd'=None) -> 'None': - """ - Centers a window relative to its parent. - -Args: - - altwin(PyCWnd):alternate window relative to which it will be centered (other than the parent window).MFC References - -Returns: - - None - - """ - pass - - - def CheckRadioButton(self,idFirst:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any') -> 'None': - """ - Selects the specified radio button, and clears - -all others in the group. - -Args: - - idFirst(typing.Any):The identifier of the first radio button in the group. - idLast(typing.Any):The identifier of the last radio button in the group. - idCheck(typing.Any):The identifier of the radio button to be checked.MFC References - -Returns: - - None - - """ - pass - - - def ChildWindowFromPoint(self,x:'typing.Any',y:'typing.Any',flag:'typing.Any'=0) -> 'PyCWnd': - """ - Returns the child window that contains the point - -Args: - - x(typing.Any):x coordinate of point - y(typing.Any):y coordinate of point - flag(typing.Any):Specifies which child windows to skipMFC References - -Returns: - - PyCWnd - - """ - pass - - - def ClientToScreen(self,point:'typing.Tuple[typing.Any, typing.Any]',rect:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Converts the client coordinates of a given point on the display - -to screen coordinates. - -Args: - - point(typing.Tuple[typing.Any, typing.Any]):The client coordinates.Alternative Parameters - rect(typing.Any):The client coordinates.CommentsThe new screen coordinates are relative to the upper-left corner of the system display. This function assumes that the given pointis in client coordinates.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def CreateWindow(self,classId:'str',windowName:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any',context:'typing.Any'=None) -> 'None': - """ - Creates the actual window - -Args: - - classId(str):The class ID for the window, or None - windowName(str):The title for the window, or None - style(typing.Any):The style for the window. - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the window. - parent(PyCWnd):The parent window of the new window.. - _id(typing.Any):The control's ID. - context(typing.Any):A CreateContext object.MFC References - -Returns: - - None - - """ - pass - - - def CreateWindowEx(self,styleEx:'typing.Any',classId:'str',windowName:'str',style:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',parent:'PyCWnd',_id:'typing.Any',createStruct1:'typing.Any',createStruct:'CREATESTRUCT'=None) -> 'None': - """ - Creates the actual window using extended capabilities. - -Args: - - styleEx(typing.Any):The extended style of the window being created. - classId(str):The class ID for the window. May not be None. - windowName(str):The title for the window, or None - style(typing.Any):The style for the window. - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The size and position of the window. - parent(PyCWnd):The parent window of the new window.. - _id(typing.Any):The control's ID. - createStruct1(typing.Any):A tuple representing a CREATESTRUCT structure.MFC References - createStruct(CREATESTRUCT):A CreateStruct object (ie, a tuple) - -Returns: - - None - - """ - pass - - - def DefWindowProc(self,message:'typing.Any',idLast:'typing.Any',idCheck:'typing.Any') -> 'typing.Any': - """ - Calls the default message handler. - -Args: - - message(typing.Any):The Windows message. - idLast(typing.Any):The lParam for the message. - idCheck(typing.Any):The wParam for the message.MFC References - -Returns: - - typing.Any - - """ - pass - - - def DestroyWindow(self,) -> 'None': - """ - Destroy the window attached to the object. - -Args: - - - -Returns: - - None - - """ - pass - - - def DlgDirList(self,defPath:'str',idListbox:'typing.Any',idStaticPath:'typing.Any',fileType:'typing.Any') -> 'None': - """ - Fill a list box with a file or directory listing. - -Args: - - defPath(str):The file spec to fill the list box with - idListbox(typing.Any):The Id of the listbox control to fill. - idStaticPath(typing.Any):The Id of the static control used to display the current drive and directory. If idStaticPath is 0, it is assumed that no such control exists. - fileType(typing.Any):Specifies the attributes of the files to be displayed. It can be any combination of DDL_READWRITE, DDL_READONLY, DDL_HIDDEN, DDL_SYSTEM, DDL_DIRECTORY, DDL_ARCHIVE, DDL_POSTMSGS, DDL_DRIVES or DDL_EXCLUSIVEMFC References - -Returns: - - None - - """ - pass - - - def DlgDirListComboBox(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def DlgDirSelect(self,idListbox:'typing.Any') -> 'str': - """ - None - -Args: - - idListbox(typing.Any):The Id of the listbox.MFC References - -Returns: - - str - - """ - pass - - - def DlgDirSelectComboBox(self,idListbox:'typing.Any') -> 'str': - """ - None - -Args: - - idListbox(typing.Any):The Id of the combobox.MFC References - -Returns: - - str - - """ - pass - - - def DragAcceptFiles(self,bAccept:'typing.Any'=1) -> 'None': - """ - Indicates that the window and children supports files dropped from file manager - -Args: - - bAccept(typing.Any):A flag indicating if files are accepted.MFC References - -Returns: - - None - - """ - pass - - - def DrawMenuBar(self,) -> 'None': - """ - Redraws the menu bar. Can be called if the menu changes. - -Args: - - - -Returns: - - None - - """ - pass - - - def EnableWindow(self,bEnable:'typing.Any'=1) -> 'typing.Any': - """ - Enables or disables the window. Typically used for dialog controls. - -Args: - - bEnable(typing.Any):A flag indicating if the window is to be enabled or disabled.MFC References - -Returns: - - typing.Any:CWnd::EnableWindow -Return ValueReturns the state before the EnableWindow member function was called - - - """ - pass - - - def EndModalLoop(self,result:'typing.Any') -> 'None': - """ - Ends a modal loop. - -Args: - - result(typing.Any):The result as returned to RunModalLoop - -Returns: - - None - - """ - pass - - - def EndPaint(self,paintStruct:'typing.Any') -> 'None': - """ - Ends painting - -Args: - - paintStruct(typing.Any):The object returned from PyCWnd::BeginPaint - -Returns: - - None - - """ - pass - - - def GetCheckedRadioButton(self,idFirst:'typing.Any',idLast:'typing.Any') -> 'typing.Any': - """ - Returns the ID of the checked radio button, or 0 if none is selected. - -Args: - - idFirst(typing.Any):The Id of the first radio button in the group. - idLast(typing.Any):The Id of the last radio button in the group.MFC References - -Returns: - - typing.Any - - """ - pass - - - def GetClientRect(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Returns the client coordinates of the window. left and top - -will be zero. - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetDC(self,) -> 'PyCDC': - """ - Gets the windows current DC object. - -Args: - - - -Returns: - - PyCDC:PyCWnd.GetDC -PyCDC = GetDC()Gets the windows current DC object. -Return ValueThe result is a PyCDC, or a win32ui.error exception is raised. - - - """ - pass - - - def GetDCEx(self,) -> 'PyCDC': - """ - Gets the windows current DC object with extended caps. - -Args: - - - -Returns: - - PyCDC - - """ - pass - - - def GetDlgCtrlID(self,) -> 'typing.Any': - """ - Returns the ID of this child window. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetDlgItem(self,idControl:'typing.Any') -> 'PyCWnd': - """ - None - -Args: - - idControl(typing.Any):The Id of the control to be retrieved.MFC References - -Returns: - - PyCWnd:CWnd::GetDlgItem -Return ValueThe result is a PyCWnd (or derived) object, or a win32ui.error exception is raised. - - - """ - pass - - - def GetDlgItemInt(self,idControl:'typing.Any',bUnsigned:'typing.Any'=1) -> 'typing.Any': - """ - Returns the integer value of a child window or control with the specified ID. - -Args: - - idControl(typing.Any):The Id of the control to be retrieved. - bUnsigned(typing.Any):Should the function check for a minus signMFC References - -Returns: - - typing.Any:CWnd::GetDlgItemInt -Return ValueIf the value can not be converted, a ValueError is raised. - - - """ - pass - - - def GetDlgItemText(self,idControl:'typing.Any') -> 'str': - """ - Returns the text of child window or control with the specified ID. - -Args: - - idControl(typing.Any):The Id of the control to be retrieved.MFC References - -Returns: - - str - - """ - pass - - - def GetLastActivePopup(self,) -> 'PyCWnd': - """ - Returns the last active popup Window, or the Window itself. - -Args: - - - -Returns: - - PyCWnd:CWnd::GetLastActivePopup -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetMenu(self,) -> 'PyCMenu': - """ - Returns the menu object for the window's menu. - -Args: - - - -Returns: - - PyCMenu:CWnd::GetMenu -Return ValueThe result is a PyMenu - - object, or an exception is thrown. - - - """ - pass - - - def GetParent(self,) -> 'PyCWnd': - """ - Returns the window's parent. - -Args: - - - -Returns: - - PyCWnd:CWnd::GetParent -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetParentFrame(self,) -> 'PyCWnd': - """ - Returns the window's frame. - -Args: - - - -Returns: - - PyCWnd:CWnd::GetParentFrame -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetSafeHwnd(self,) -> 'typing.Any': - """ - Returns the HWnd of this window. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetScrollInfo(self,nBar:'typing.Any',mask:'typing.Any') -> 'typing.Any': - """ - Returns information about a scroll bar - -Args: - - nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ - mask(typing.Any):The mask for attributes to retrieve. - -Returns: - - typing.Any - - """ - pass - - - def GetScrollPos(self,nBar:'typing.Any') -> 'typing.Any': - """ - Retrieves the current position of the scroll box of a scroll bar. - -Args: - - nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_VERT or win32con.SB_HORZ - -Returns: - - typing.Any - - """ - pass - - - def GetStyle(self,) -> 'typing.Any': - """ - Retrieves the window style - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetExStyle(self,) -> 'typing.Any': - """ - Retrieves the window's extended style - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def GetSystemMenu(self,) -> 'PyCMenu': - """ - Returns the menu object for the window's system menu. - -Args: - - - -Returns: - - PyCMenu - - """ - pass - - - def GetTopLevelFrame(self,) -> 'PyCWnd': - """ - Returns the top-level frame of the window. - -Args: - - - -Returns: - - PyCWnd:CWnd::GetTopLevelFrame -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetTopLevelOwner(self,) -> 'PyCWnd': - """ - Returns the top-level owner of the window. - -Args: - - - -Returns: - - PyCWnd:CWnd::GetTopLevelOwner -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetTopLevelParent(self,) -> 'PyCWnd': - """ - Returns the top-level parent of the window. - -Args: - - - -Returns: - - PyCWnd:CWnd::GetTopLevelParent -Return ValueThe result is a PyCWnd object, or None if no Window can be found. - - - """ - pass - - - def GetTopWindow(self,) -> 'PyCWnd': - """ - Identifies the top-level child window in a linked list of child windows. - -Args: - - - -Returns: - - PyCWnd:CWnd::GetTopWindow -Return ValueIf no child windows exist, the value is None. - - - """ - pass - - - def GetWindow(self,_type:'typing.Any') -> 'PyCWnd': - """ - Returns a window, with the specified relationship to this window. - -Args: - - _type(typing.Any):Specifies the relationship between the current and the returned window. It can take one of the following values: GW_CHILD, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV or GW_OWNERMFC References - -Returns: - - PyCWnd:CWnd::GetWindow -Return ValueThe result is a PyCWnd or None if no Window can be found. - - - """ - pass - - - def GetWindowDC(self,) -> 'PyCDC': - """ - Gets the windows current DC object. - -Args: - - - -Returns: - - PyCDC - - """ - pass - - - def GetWindowPlacement(self,) -> 'typing.Any': - """ - Returns placement information about the current window. - -Args: - - - -Returns: - - typing.Any:CWnd::GetWindowPlacement -Return ValueThe result is a tuple of - -(flags, showCmd, (minposX, minposY), (maxposX, maxposY), (normalposX, normalposY)) - - - -Item - - -Description - - - -flagsOne of the WPF_* constants -showCmdCurrent state - one of the SW_* constants. -minposSpecifies the coordinates of the window's upper-left corner when the window is minimized. -maxposSpecifies the coordinates of the window's upper-left corner when the window is maximized. -normalposSpecifies the window's coordinates when the window is in the restored position. - - - """ - pass - - - def GetWindowRect(self,) -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Returns the screen coordinates of the windows upper left - -corner - -Args: - - - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any] - - """ - pass - - - def GetWindowText(self,) -> 'str': - """ - Returns the windows text. - -Args: - - - -Returns: - - str - - """ - pass - - - def HideCaret(self,) -> 'None': - """ - Hides the caret - -Args: - - - -Returns: - - None - - """ - pass - - - def HookAllKeyStrokes(self,obHandler:'typing.Any') -> 'None': - """ - Hook a key stroke handler for all key strokes. - -Args: - - obHandler(typing.Any):The handler for the keystrokes. This must be a callable object.CommentsThe handler object passed will be called as the application receives WM_CHAR messages. The handler will be called with 2 arguments The handler object (as per all hook functions). The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise it will be consumed. Note: This handler will prevent any PyCWnd::HookKeyStroke hooks from being called. - -Returns: - - None - - """ - pass - - - def HookKeyStroke(self,obHandler:'typing.Any',ch:'typing.Any') -> 'typing.Any': - """ - Hook a key stroke handler - -Args: - - obHandler(typing.Any):The handler of the keystroke. This must be a callable object. - ch(typing.Any):The ID for the keystroke to be handled. This may be an ascii code, or a virtual key code.CommentsThe handler object passed will be called as the application receives WM_CHAR message for the specified character code. The handler will be called with 2 arguments The handler object (as per all hook functions) The keystroke being handled. If the handler returns TRUE, then the keystroke will be passed on to the default handler, otherwise the keystroke will be consumed. Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place.Return ValueThe return value is the previous handler, or None. - -Returns: - - typing.Any:The ID for the keystroke to be handled. - -This may be an ascii code, or a virtual key code.Comments - -The handler object passed will be called as the application receives WM_CHAR message for the specified - -character code. The handler will be called with 2 arguments - -The handler object (as per all hook functions) - -The keystroke being handled. - -If the handler returns TRUE, then the keystroke will be passed on to the - -default handler, otherwise the keystroke will be consumed. - -Note: This handler will not be called if a PyCWnd::HookAllKeyStrokes hook is in place. -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def HookMessage(self,obHandler:'typing.Any',message:'typing.Any') -> 'typing.Any': - """ - Hook a message notification handler - -Args: - - obHandler(typing.Any):The handler for the message notification. This must be a callable object. - message(typing.Any):The ID of the message to be handled.CommentsThe handler object passed will be called as the application receives messages with the specified ID. Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. The handler will be called with 2 arguments The handler object (as per all hook functions). A tuple representing the message. The message tuple is in the following format:Items[0] int : hwndThe hwnd of the window.[1] int : messageThe message.[2] int : wParamThe wParam sent with the message.[3] int : lParamThe lParam sent with the message.[4] int : timeThe time the message was posted.[5] int, int : pointThe point where the mouse was when the message was posted.Return ValueThe return value is the previous handler, or None. - -Returns: - - typing.Any:The ID of the message to be handled.Comments - -The handler object passed will be called as the application receives messages with the specified ID. - -Note that it is not possible for PythonWin to consume a message - it is always passed on to the default handler. - -The handler will be called with 2 arguments - -The handler object (as per all hook functions). - -A tuple representing the message. - -The message tuple is in the following format: -Items[0] int : hwnd -The hwnd of the window. -[1] int : message -The message. -[2] int : wParam -The wParam sent with the message. -[3] int : lParam -The lParam sent with the message. -[4] int : time -The time the message was posted. -[5] int, int : point -The point where the mouse was when the message was posted. -Return ValueThe return value is the previous handler, or None. - - - """ - pass - - - def InvalidateRect(self,arg:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',bErase:'typing.Any'=1) -> 'None': - """ - Invalidates an area of a window. - -Args: - - arg(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):Rectangle to be updated. If default param is used, the entire window is invalidated. - bErase(typing.Any):Specifies whether the background within the update region is to be erased.MFC References - -Returns: - - None - - """ - pass - - - def InvalidateRgn(self,region:'PyCRgn',bErase:'typing.Any'=1) -> 'None': - """ - Invalidates a region of the window - -Args: - - region(PyCRgn):The region to erase. - bErase(typing.Any):Indicates if the region should be erased. - -Returns: - - None - - """ - pass - - - def IsChild(self,obWnd:'PyCWnd') -> 'typing.Any': - """ - Determines if a given window is a child of this window. - -Args: - - obWnd(PyCWnd):The window to be checkedMFC References - -Returns: - - typing.Any - - """ - pass - - - def IsDlgButtonChecked(self,idCtl:'typing.Any') -> 'typing.Any': - """ - Determines if a dialog button is checked. - -Args: - - idCtl(typing.Any):The ID of the button to check.MFC References - -Returns: - - typing.Any - - """ - pass - - - def IsIconic(self,) -> 'typing.Any': - """ - Determines if the window is currently displayed as an icon. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsZoomed(self,) -> 'typing.Any': - """ - Determines if the window is currently maximised. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsWindow(self,) -> 'typing.Any': - """ - determines whether the specified window handle identifies an existing window - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsWindowVisible(self,) -> 'typing.Any': - """ - Determines if the window is currently visible. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def KillTimer(self,) -> 'typing.Any': - """ - Kills a system timer - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def LockWindowUpdate(self,) -> 'None': - """ - Disables drawing in the given window - -Args: - - - -Returns: - - None - - """ - pass - - - def MapWindowPoints(self,wnd:'PyCWnd',points:'typing.List[typing.Tuple[typing.Any, typing.Any]]') -> 'None': - """ - Converts (maps) a set of points from the coordinate space of a window to the - -coordinate space of another window. - -Args: - - wnd(PyCWnd): - points(typing.List[typing.Tuple[typing.Any, typing.Any]]):The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another window. - -Returns: - - None:The points to mapReturn ValueA list of the mapped points from the coordinate space of the CWnd to the coordinate space of another - -window. - - - """ - pass - - - def MouseCaptured(self,) -> 'typing.Any': - """ - Returns 1 if the window has the mouse capture, else 0 - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def MessageBox(self,message:'str',arg:'typing.Any',title:'typing.Union[str, typing.Any]'=None) -> 'None': - """ - Display a message box. - -Args: - - message(str):The message to be displayed in the message box. - arg(typing.Any):The style of the message box.MFC References - title(typing.Union[str, typing.Any]):The title for the message box. If None, the applications title will be used. - -Returns: - - None:CWnd::MessageBox -Return ValueAn integer identifying the button pressed to dismiss the dialog. - - - """ - pass - - - def ModifyStyle(self,remove:'typing.Any',add:'typing.Any',flags:'typing.Any'=0) -> 'typing.Any': - """ - Modifies the style of a window. - -Args: - - remove(typing.Any):Specifies window styles to be removed during style modification. - add(typing.Any):Specifies window styles to be added during style modification. - flags(typing.Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyle calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleExMFC References - -Returns: - - typing.Any:CWnd::ModifyStyle -Return ValueThe result is true if the style was changed, or false if the style - -is already the same as requested and no change was made. - - - """ - pass - - - def ModifyStyleEx(self,remove:'typing.Any',add:'typing.Any',flags:'typing.Any'=0) -> 'typing.Any': - """ - Modifies the extended style of a window. - -Args: - - remove(typing.Any):Specifies extended window styles to be removed during style modification. - add(typing.Any):Specifies extended extended window styles to be added during style modification. - flags(typing.Any):Flags to be passed to SetWindowPos, or zero if SetWindowPos should not be called. The default is zero.CommentsIf nFlags is nonzero, ModifyStyleEx calls the Windows API function ::SetWindowPos and redraws the window by combining nFlags with the following four preset flags: * SWP_NOSIZE Retains the current size. * SWP_NOMOVE Retains the current position. * SWP_NOZORDER Retains the current Z order. * SWP_NOACTIVATE Does not activate the window. See also PyCWnd::ModifyStyleMFC References - -Returns: - - typing.Any:CWnd::ModifyStyleEx -Return ValueThe result is true if the style was changed, or false if the style - -is already the same as requested and no change was made. - - - """ - pass - - - def MoveWindow(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',bRepaint:'typing.Any'=1) -> 'None': - """ - Move a window to a new location. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The new location of the window, relative to the parent. - bRepaint(typing.Any):Indicates if the window should be repainted after the move.MFC References - -Returns: - - None - - """ - pass - - - def OnClose(self,) -> 'typing.Any': - """ - Calls the default MFC OnClose handler. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnCtlColor(self,dc:'PyCDC',control:'typing.Any',_type:'typing.Any') -> 'typing.Any': - """ - Calls the default MFC OnCtlColor handler. - -Args: - - dc(PyCDC):The dc - control(typing.Any):The control that want's it's color changed - _type(typing.Any):Type of controlSee Also - -Returns: - - typing.Any - - """ - pass - - - def OnEraseBkgnd(self,dc:'PyCDC') -> 'typing.Any': - """ - Calls the default MFC OnEraseBkgnd handler. - -Args: - - dc(PyCDC):The dcSee Also - -Returns: - - typing.Any - - """ - pass - - - def OnNcHitTest(self,arg:'typing.Tuple[typing.Any, typing.Any]') -> 'typing.Any': - """ - Calls the base MFC OnNcHitTest function. - -Args: - - arg(typing.Tuple[typing.Any, typing.Any]):The pointSee Also - -Returns: - - typing.Any - - """ - pass - - - def OnPaint(self,) -> 'typing.Any': - """ - Calls the default MFC OnPaint handler. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnQueryDragIcon(self,) -> 'typing.Any': - """ - Calls the default MFC OnQueryDragIcon handler. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnQueryNewPalette(self,) -> 'typing.Any': - """ - Calls the underlying MFC OnQueryNewPalette method. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def OnSetCursor(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': - """ - Calls the base MFC OnSetCursor function. - -Args: - - wnd(PyCWnd): - hittest(typing.Any): - message(typing.Any):See Also - -Returns: - - typing.Any - - """ - pass - - - def OnMouseActivate(self,wnd:'PyCWnd',hittest:'typing.Any',message:'typing.Any') -> 'typing.Any': - """ - Calls the base MFC OnMouseActivate function. - -Args: - - wnd(PyCWnd): - hittest(typing.Any): - message(typing.Any):See Also - -Returns: - - typing.Any - - """ - pass - - - def OnWndMsg(self,msg:'typing.Any',wParam:'typing.Any',lParam:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any]': - """ - Calls the default MFC Window Message handler. - -Args: - - msg(typing.Any):The message - wParam(typing.Any):The wParam for the message - lParam(typing.Any):The lParam for the messageMFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any]:CWnd::OnWndMsg -Return ValueThe return value is a tuple of (int, int), being the - -return value from the MFC function call, and the value of the - -lResult param. Please see the MFC documentation for more details. - - - """ - pass - - - def PreCreateWindow(self,createStruct:'typing.Any') -> 'typing.Any': - """ - Calls the underlying MFC PreCreateWindow method. - -Args: - - createStruct(typing.Any):A tuple representing a CREATESTRUCT structure.See Also - -Returns: - - typing.Any - - """ - pass - - - def PumpWaitingMessages(self,firstMsg:'typing.Any',lastMsg:'typing.Any') -> 'None': - """ - Pump messages associate with a window. - -Args: - - firstMsg(typing.Any):First message ID to process - lastMsg(typing.Any):First message ID to processMFC References - -Returns: - - None - - """ - pass - - - def RedrawWindow(self,_object:'PyCRgn',flags:'typing.Any',rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]'=None) -> 'None': - """ - Updates the specified rectangle or region in the given window's client area. - -Args: - - _object(PyCRgn):A region - flags(typing.Any):MFC References - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):A rect, or None - -Returns: - - None - - """ - pass - - - def ReleaseCapture(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def ReleaseDC(self,dc:'PyCDC') -> 'None': - """ - Releases a device context, freeing it for use by other applications. - -Args: - - dc(PyCDC):The DC to be released. - -Returns: - - None - - """ - pass - - - def RepositionBars(self,idFirst:'typing.Any',idLast:'typing.Any',idLeftOver:'typing.Any') -> 'None': - """ - Repositions the windows control bars.( UINT nIDFirst, UINT nIDLast, UINT - -nIDLeftOver, UINT nFlag = CWnd::reposDefault, LPRECT lpRectParam = NULL, LPCRECT lpRectClient = NULL, BOOL bStretch = - -TRUE ); - -Args: - - idFirst(typing.Any):The ID of the first control to reposition. - idLast(typing.Any):The ID of the last control to reposition. - idLeftOver(typing.Any): - -Returns: - - None - - """ - pass - - - def RunModalLoop(self,flags:'typing.Any') -> 'typing.Any': - """ - Begins a modal loop for the window. - -Args: - - flags(typing.Any): - -Returns: - - typing.Any - - """ - pass - - - def PostMessage(self,idMessage:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0) -> 'None': - """ - Post a message to the window. - -Args: - - idMessage(typing.Any):The ID of the message to post. - wParam(typing.Any):The wParam for the message - lParam(typing.Any):The lParam for the messageMFC References - -Returns: - - None - - """ - pass - - - def SendMessageToDescendants(self,idMessage:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0,bDeep:'typing.Any'=1) -> 'None': - """ - Send a message to all descendant windows. - -Args: - - idMessage(typing.Any):The ID of the message to send. - wParam(typing.Any):The wParam for the message - lParam(typing.Any):The lParam for the message - bDeep(typing.Any):Indicates if the message should be recursively sent to all childrenMFC References - -Returns: - - None - - """ - pass - - - def SendMessage(self,idMessage:'typing.Any',idMessage1:'typing.Any',ob:'typing.Any',wParam:'typing.Any'=0,lParam:'typing.Any'=0) -> 'None': - """ - Send a message to the window. - -Args: - - idMessage(typing.Any):The ID of the message to send. - idMessage1(typing.Any):The ID of the message to send. - ob(typing.Any):A buffer whose size is passed in wParam, and address is passed in lParamMFC References - wParam(typing.Any):The wParam for the message - lParam(typing.Any):The lParam for the messageAlternative Parameters - -Returns: - - None - - """ - pass - - - def SetActiveWindow(self,) -> 'PyCWnd': - """ - Sets the window active. Returns the previously active window, or None. - -Args: - - - -Returns: - - PyCWnd:PyCWnd.SetActiveWindow -PyCWnd = SetActiveWindow()Sets the window active. Returns the previously active window, or None. -Return ValueThe result is the previous window with focus, or None. - - - """ - pass - - - def SetForegroundWindow(self,) -> 'None': - """ - Puts the window into the foreground and activates the window. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetWindowPos(self,hWndInsertAfter:'typing.Any',position:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]',flags:'typing.Any') -> 'None': - """ - Sets the windows position information - -Args: - - hWndInsertAfter(typing.Any):A hwnd, else one of the win32con.HWND_* constants. - position(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any]):The new position of the window. - flags(typing.Any):Window positioning flags.MFC References - -Returns: - - None - - """ - pass - - - def ScreenToClient(self,rect:'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]',pnt:'typing.Any') -> 'typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]': - """ - Converts the screen coordinates of a given point - -or rectangle on the display to client coordinates. - -Args: - - rect(typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]):The coordinates to convert.Alternative Parameters - pnt(typing.Any):The coordinates to convert.MFC References - -Returns: - - typing.Tuple[typing.Any, typing.Any, typing.Any, typing.Any, typing.Any]:CWnd::ScreenToClient -Return ValueThe result is the same size as the input argument. - - - """ - pass - - - def SetCapture(self,) -> 'None': - """ - Causes all subsequent mouse input to be sent to the window object regardless of the - -position of the cursor. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetDlgItemText(self,idControl:'typing.Any',text:'str') -> 'None': - """ - Sets the text for the child window or control with the specified ID. - -Args: - - idControl(typing.Any):The Id of the control - text(str):The new textMFC References - -Returns: - - None - - """ - pass - - - def SetFocus(self,) -> 'None': - """ - Claims the input focus. The object that previously had the focus loses it. - -Args: - - - -Returns: - - None - - """ - pass - - - def SetFont(self,font:'PyCFont',bRedraw:'typing.Any'=1) -> 'None': - """ - Sets the window's current font to the specified font. - -Args: - - font(PyCFont):The new font to use. - bRedraw(typing.Any):If TRUE, redraw the window. - -Returns: - - None - - """ - pass - - - def SetIcon(self,) -> 'typing.Any': - """ - Calls the underlying MFC SetIcon method. - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def SetMenu(self,menuObj:'PyCMenu') -> 'None': - """ - Sets the menu for a window. - -Args: - - menuObj(PyCMenu):The menu object to set, or None to remove the window. - -Returns: - - None - - """ - pass - - - def SetRedraw(self,bState:'typing.Any'=1) -> 'None': - """ - Allows changes to be redrawn or to prevent changes from being redrawn. - -Args: - - bState(typing.Any):Specifies the state of the redraw flag.MFC References - -Returns: - - None - - """ - pass - - - def SetScrollPos(self,nBar:'typing.Any',nPos:'typing.Any',redraw:'typing.Any'=1) -> 'typing.Any': - """ - Sets the current position of the scroll box of a scroll bar. - -Args: - - nBar(typing.Any):The scroll bar to set. Can be one of win32con.SB_VERT or win32con.SB_HORZ - nPos(typing.Any):The new position - redraw(typing.Any):A flag indicating if the scrollbar should be redrawn. - -Returns: - - typing.Any - - """ - pass - - - def SetScrollInfo(self,nBar:'typing.Any',ScrollInfo:'typing.Any',redraw:'typing.Any'=1) -> 'typing.Any': - """ - Set information about a scroll bar - -Args: - - nBar(typing.Any):The scroll bar to examine. Can be one of win32con.SB_BOTH, win32con.SB_VERT or win32con.SB_HORZ - ScrollInfo(typing.Any):The information to set - redraw(typing.Any):A flag indicating if the scrollbar should be re-drawn. - -Returns: - - typing.Any - - """ - pass - - - def SetTimer(self,idEvent:'typing.Any',elapse:'typing.Any') -> 'typing.Any': - """ - Installs a system timer - -Args: - - idEvent(typing.Any):The ID of the event - elapse(typing.Any):How often the timer should fire.MFC References - -Returns: - - typing.Any - - """ - pass - - - def SetWindowPlacement(self,placement:'typing.Any') -> 'None': - """ - Sets the windows placement - -Args: - - placement(typing.Any):A tuple representing the WINDOWPLACEMENT structure.MFC References - -Returns: - - None - - """ - pass - - - def SetWindowText(self,text:'str') -> 'None': - """ - Sets the window's text. - -Args: - - text(str):The windows text.MFC References - -Returns: - - None - - """ - pass - - - def ShowCaret(self,) -> 'None': - """ - Shows the caret - -Args: - - - -Returns: - - None - - """ - pass - - - def ShowScrollBar(self,nBar:'typing.Any',bShow:'typing.Any'=1) -> 'None': - """ - Shows or hides a scroll bar. - -An application should not call ShowScrollBar to hide a scroll bar while processing a scroll-bar notification message. - -Args: - - nBar(typing.Any):Specifies whether the scroll bar is a control or part of a window's nonclient area. If it is part of the nonclient area, nBar also indicates whether the scroll bar is positioned horizontally, vertically, or both. It must be one of win32con.SB_BOTH, win32con.SB_HORZ or win32con.SB_VERT. - bShow(typing.Any):Indicates if the scroll bar should be shown or hidden.MFC References - -Returns: - - None - - """ - pass - - - def ShowWindow(self,arg:'typing.Any') -> 'typing.Any': - """ - Sets the visibility state of the window. - -Args: - - arg(typing.Any):Specifies how the window is to be shown. It must be one of win32con.SW_HIDE, win32con.SW_MINIMIZE, win32con.SW_RESTORE, win32con.SW_SHOW, win32con.SW_SHOWMAXIMIZED win32con.SW_SHOWMINIMIZED, win32con.SW_SHOWMINNOACTIVE, win32con.SW_SHOWNA, win32con.SW_SHOWNOACTIVATE, or win32con.SW_SHOWNORMALMFC References - -Returns: - - typing.Any:CWnd::ShowWindow -Return ValueReturns TRUE is the window was previously visible. - - - """ - pass - - - def UnLockWindowUpdate(self,) -> 'None': - """ - Unlocks a window that was locked with LockWindowUpdate - -Args: - - - -Returns: - - None - - """ - pass - - - def UpdateData(self,bSaveAndValidate:'typing.Any'=1) -> 'typing.Any': - """ - Initialises data in a dialog box, or to retrieves and validates dialog data. - -Returns nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of - -nonzero means that the data is successfully validated. - -Args: - - bSaveAndValidate(typing.Any):Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).MFC References - -Returns: - - typing.Any - - """ - pass - - - def UpdateDialogControls(self,pTarget:'PyCCmdTarget',disableIfNoHandler:'typing.Any') -> 'typing.Any': - """ - None - -Args: - - pTarget(PyCCmdTarget):The main frame window of the application, and is used for routing update messages. - disableIfNoHandler(typing.Any):Flag that indicates whether a control that has no update handler should be automatically displayed as disabled. - -Returns: - - typing.Any - - """ - pass - - - def UpdateWindow(self,) -> 'None': - """ - Updates a window. This forces a paint message to be sent to the window, if any part - -of the window is marked as invalid. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDDEConv(object): - """A DDE topic.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def ConnectTo(self,service:'str',topic:'str') -> 'None': - """ - Connects to a server - -Args: - - service(str):The service to connect to - topic(str):The topic to connect to - -Returns: - - None - - """ - pass - - - def Connected(self,) -> 'None': - """ - Determines if the conversation is connected. - -Args: - - - -Returns: - - None - - """ - pass - - - def Exec(self,Cmd:'str') -> 'None': - """ - Executes a command. - -Args: - - Cmd(str):The Python statement to execute - -Returns: - - None - - """ - pass - - - def Request(self,) -> 'None': - """ - Sends a request. - -Args: - - - -Returns: - - None - - """ - pass - - - def Poke(self,) -> 'None': - """ - Sends a poke. - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDDEServer(object): - """A DDE server.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddTopic(self,topic:'PyDDETopic') -> 'None': - """ - None - -Args: - - topic(PyDDETopic):The topic to add. - -Returns: - - None - - """ - pass - - - def Create(self,name:'str',filterFlags:'typing.Any'=0) -> 'None': - """ - Create a server - -Args: - - name(str):Name of the server to start. - filterFlags(typing.Any):Filter flags.CommentsNote there can only be one server per application. - -Returns: - - None - - """ - pass - - - def Destroy(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def GetLastError(self,) -> 'typing.Any': - """ - None - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def Shutdown(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDDEStringItem(object): - """A DDE string item.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def SetData(self,data:'str') -> 'None': - """ - Sets an items data, and causes any underlying notification. - -Args: - - data(str):The data to set. - -Returns: - - None - - """ - pass - - -class PyDDETopic(object): - """A DDE topic.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def AddItem(self,item:'typing.Any') -> 'None': - """ - Add an item to the topic. - -Args: - - item(typing.Any):The item to add - -Returns: - - None - - """ - pass - - - def Destroy(self,) -> 'None': - """ - Destroys an item - -Args: - - - -Returns: - - None - - """ - pass - - -class PyDLL(object): - """A DLL object. A general utility object, and not associated with an MFC object.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetFileName(self,) -> 'str': - """ - Returns the name of the module associated with the DLL. - -Args: - - - -Returns: - - str - - """ - pass - - - def AttachToMFC(self,) -> 'None': - """ - Attaches the DLL object to the MFC list of DLL's. - -Args: - - - -Returns: - - None - - """ - pass - - -class SCROLLINFO(object): - """Tuple representing a SCROLLINFO struct""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class TV_ITEM(object): - """""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - -class EXTENSION_CONTROL_BLOCK(object): - """A python representation of an ISAPI - -EXTENSION_CONTROL_BLOCK.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Version(self)->'int': - """Version info of this spec (read-only)""" - pass - - - @property - def TotalBytes(self)->'typing.Any': - """Total bytes indicated from client""" - pass - - - @property - def AvailableBytes(self)->'typing.Any': - """Available number of bytes""" - pass - - - @property - def HttpStatusCode(self)->'typing.Any': - """The status of the current transaction when the request is completed.""" - pass - - - @property - def Method(self)->'typing.Any': - """REQUEST_METHOD""" - pass - - - @property - def ConnID(self)->'typing.Any': - """Context number (read-only)""" - pass - - - @property - def QueryString(self)->'typing.Any': - """QUERY_STRING""" - pass - - - @property - def PathInfo(self)->'typing.Any': - """PATH_INFO""" - pass - - - @property - def PathTranslated(self)->'typing.Any': - """PATH_TRANSLATED""" - pass - - - @property - def AvailableData(self)->'typing.Any': - """Pointer to cbAvailable bytes""" - pass - - - @property - def ContentType(self)->'typing.Any': - """Content type of client data""" - pass - - - @property - def LogData(self)->'typing.Any': - """log data string""" - pass - - - def WriteClient(self,data:'typing.Union[str, typing.Any]',reserved:'typing.Any'=0) -> 'typing.Any': - """ - None - -Args: - - data(typing.Union[str, typing.Any]):The data to write - reserved(typing.Any):Return Valuethe result is the number of bytes written. - -Returns: - - typing.Any: -Return Valuethe result is the number of bytes written. - - - """ - pass - - - def GetServerVariable(self,variable:'str',default:'typing.Any') -> 'str': - """ - None - -Args: - - variable(str): - default(typing.Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. - -Returns: - - str:If specified, the function will return this - -value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name - -begins with 'UNICODE_', in which case it is a unicode object - see the - -ISAPI docs for more details. - - - """ - pass - - - def ReadClient(self,nbytes:'typing.Any') -> 'str': - """ - None - -Args: - - nbytes(typing.Any):Default is to read all available data. - -Returns: - - str - - """ - pass - - - def SendResponseHeaders(self,reply:'str',headers:'str',keepAlive:'typing.Any'=False) -> 'None': - """ - Calls ServerSupportFunction with - -HSE_REQ_SEND_RESPONSE_HEADER_EX - -Args: - - reply(str): - headers(str): - keepAlive(typing.Any): - -Returns: - - None - - """ - pass - - - def SetFlushFlag(self,flag:'typing.Any') -> 'None': - """ - Calls ServerSupportFunction with HSE_REQ_SET_FLUSH_FLAG. - -Args: - - flag(typing.Any): - -Returns: - - None - - """ - pass - - - def TransmitFile(self,callback:'typing.Any',param:'typing.Any',hFile:'typing.Any',statusCode:'str',BytesToWrite:'typing.Any',Offset:'typing.Any',head:'str',tail:'str',flags:'typing.Any') -> 'typing.Any': - """ - Calls ServerSupportFunction with HSE_REQ_TRANSMIT_FILE - -Args: - - callback(typing.Any): - param(typing.Any):Any object - passed as 2nd arg to callback. - hFile(typing.Any): - statusCode(str): - BytesToWrite(typing.Any): - Offset(typing.Any): - head(str): - tail(str): - flags(typing.Any):CommentsThe callback is called with 4 args - (PyECB, param, cbIO, dwErrCode) - -Returns: - - typing.Any - - """ - pass - - - def MapURLToPath(self,) -> 'None': - """ - Calls ServerSupportFunction with HSE_REQ_MAP_URL_TO_PATH - -Args: - - - -Returns: - - None - - """ - pass - - - def DoneWithSession(self,status:'typing.Any') -> 'None': - """ - Calls ServerSupportFunction with HSE_REQ_DONE_WITH_SESSION - -Args: - - status(typing.Any):An optional status. HSE_STATUS_SUCCESS_AND_KEEP_CONN is supported by IIS to keep the connection alive. - -Returns: - - None - - """ - pass - - - def Redirect(self,url:'str') -> 'None': - """ - Calls ServerSupportFunction with HSE_REQ_SEND_URL_REDIRECT_RESP - -Args: - - url(str):The URL to redirect to - -Returns: - - None - - """ - pass - - - def IsKeepAlive(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - - def GetAnonymousToken(self,metabase_path:'typing.Union[str, typing.Any]') -> 'typing.Any': - """ - Calls ServerSupportFunction with HSE_REQ_GET_ANONYMOUS_TOKEN - -or HSE_REQ_GET_UNICODE_ANONYMOUS_TOKEN - -Args: - - metabase_path(typing.Union[str, typing.Any]): - -Returns: - - typing.Any - - """ - pass - - - def GetImpersonationToken(self,) -> 'typing.Any': - """ - Calls ServerSupportFunction with - -HSE_REQ_GET_IMPERSONATION_TOKEN - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def IsKeepConn(self,) -> 'typing.Any': - """ - Calls ServerSupportFunction with HSE_REQ_IS_KEEP_CONN - -Args: - - - -Returns: - - typing.Any - - """ - pass - - - def ExecURL(self,url:'str',method:'str',clientHeaders:'str',info:'typing.Any',entity:'typing.Any',flags:'typing.Any') -> 'typing.Any': - """ - Calls ServerSupportFunction with HSE_REQ_EXEC_URL - -Args: - - url(str): - method(str): - clientHeaders(str): - info(typing.Any):Must be None - entity(typing.Any):Must be None - flags(typing.Any):CommentsThis function is only available in IIS6 and later. - -Returns: - - typing.Any - - """ - pass - - - def GetExecURLStatus(self,) -> 'typing.Any': - """ - Calls ServerSupportFunction with HSE_REQ_GET_EXEC_URL_STATUS - -Args: - - - -Returns: - - typing.Any:Search for HSE_EXEC_URL_STATUS at msdn, google or google groups. -Return ValueThe result of a tuple of 3 integers - (uHttpStatusCode, uHttpSubStatus, dwWin32Error) - - - """ - pass - - - def IOCompletion(self,func:'typing.Any',arg:'typing.Any'=None) -> 'typing.Any': - """ - Set a callback that will be used for handling asynchronous I/O - -operations. - -Args: - - func(typing.Any):The function to call, as described by the EXTENSION_CONTROL_BLOCK::IOCallback method. - arg(typing.Any):Any object which will be supplied as an argument to the callback function.CommentsIf you call this multiple times, the previous callback will be discarded.A reference to the callback and args are held until EXTENSION_CONTROL_BLOCK::DoneWithSession is called. If the callback function fails, DoneWithSession(HSE_STATUS_ERROR) will automatically be called and no further callbacks for the ECB will be made. - -Returns: - - typing.Any - - """ - pass - - - def ReportUnhealthy(self,reason:'str'=None) -> 'typing.Any': - """ - Calls ServerSupportFunction with HSE_REQ_REPORT_UNHEALTHY - -Args: - - reason(str):An optional reason to be written to the log. - -Returns: - - typing.Any - - """ - pass - - - def IOCallback(self,ecb:'EXTENSION_CONTROL_BLOCK',arg:'typing.Any',cbIO:'typing.Any',dwError:'typing.Any') -> 'typing.Any': - """ - A placeholder for a user-supplied callback function. - -Args: - - ecb(EXTENSION_CONTROL_BLOCK):The extension control block that is associated with the current, active request. - arg(typing.Any):The user-supplied argument supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function. - cbIO(typing.Any):An integer that contains the number of bytes of I/O in the last call. - dwError(typing.Any):The error code returned.CommentsThis is not a function you can call, it describes the signature of the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion function.Return ValueThe result of this function is ignored. - -Returns: - - typing.Any:The error code returned.Comments - -This is not a function you can call, it describes the signature of - -the callback function supplied to the EXTENSION_CONTROL_BLOCK::IOCompletion - -function. -Return ValueThe result of this function is ignored. - - - """ - pass - - -class HSE_VERSION_INFO(object): - """An object used by ISAPI GetExtensionVersion""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ExtensionDesc(self)->'str': - """The description of the extension.""" - pass - - -class HTTP_FILTER_AUTHENT(object): - """A Python representation of an ISAPI - -HTTP_FILTER_AUTHENT structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def User(self)->'str': - """""" - pass - - - @property - def Password(self)->'str': - """""" - pass - - -class HTTP_FILTER_CONTEXT(object): - """A Python representation of an ISAPI - -HTTP_FILTER_CONTEXT structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def Revision(self)->'typing.Any': - """(read-only)""" - pass - - - @property - def fIsSecurePort(self)->'typing.Any': - """(read-only)""" - pass - - - @property - def NotificationType(self)->'typing.Any': - """(read-only)""" - pass - - - @property - def FilterContext(self)->'typing.Any': - """Any object you wish to associate with the request.""" - pass - - - def GetData(self,) -> 'typing.Any': - """ - Obtains the data passed to - -The HttpFilterProc function. This is not techinally part of the - -HTTP_FILTER_CONTEXT structure, but packaged here for convenience. - -Args: - - - -Returns: - - typing.Any:HTTP_FILTER_CONTEXT.GetData - -object = GetData()Obtains the data passed to - -The HttpFilterProc function. This is not techinally part of the - -HTTP_FILTER_CONTEXT structure, but packaged here for convenience. -Return ValueThe result depends on the value of HTTP_FILTER_CONTEXT::NotificationType - - - - -NotificationType - - -Result type - - - -SF_NOTIFY_URL_MAPHTTP_FILTER_URL_MAP -SF_NOTIFY_PREPROC_HEADERSHTTP_FILTER_PREPROC_HEADERS -SF_NOTIFY_LOGHTTP_FILTER_LOG -SF_NOTIFY_SEND_RAW_DATAHTTP_FILTER_RAW_DATA -SF_NOTIFY_READ_RAW_DATAHTTP_FILTER_RAW_DATA -SF_NOTIFY_AUTHENTICATIONHTTP_FILTER_AUTHENT - - - """ - pass - - - def GetServerVariable(self,variable:'str',default:'typing.Any') -> 'str': - """ - None - -Args: - - variable(str): - default(typing.Any):If specified, the function will return this value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name begins with 'UNICODE_', in which case it is a unicode object - see the ISAPI docs for more details. - -Returns: - - str:If specified, the function will return this - -value instead of raising an error if the variable could not be fetched.Return ValueThe result is a string object, unless the server variable name - -begins with 'UNICODE_', in which case it is a unicode object - see the - -ISAPI docs for more details. - - - """ - pass - - - def WriteClient(self,data:'str',reserverd:'typing.Any'=0) -> 'None': - """ - None - -Args: - - data(str): - reserverd(typing.Any): - -Returns: - - None - - """ - pass - - - def AddResponseHeaders(self,data:'str',reserverd:'typing.Any'=0) -> 'None': - """ - None - -Args: - - data(str): - reserverd(typing.Any): - -Returns: - - None - - """ - pass - - - def SendResponseHeader(self,status:'str',header:'str') -> 'None': - """ - None - -Args: - - status(str): - header(str): - -Returns: - - None - - """ - pass - - - def DisableNotifications(self,flags:'typing.Any') -> 'None': - """ - None - -Args: - - flags(typing.Any): - -Returns: - - None - - """ - pass - - -class HTTP_FILTER_LOG(object): - """A Python representation of an ISAPI - -HTTP_FILTER_LOG structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ClientHostName(self)->'str': - """""" - pass - - - @property - def ClientUserName(self)->'str': - """""" - pass - - - @property - def ServerName(self)->'str': - """""" - pass - - - @property - def Operation(self)->'str': - """""" - pass - - - @property - def Target(self)->'str': - """""" - pass - - - @property - def Parameters(self)->'str': - """""" - pass - - - @property - def HttpStatus(self)->'typing.Any': - """""" - pass - - -class HTTP_FILTER_PREPROC_HEADERS(object): - """A Python representation of an ISAPI - -HTTP_FILTER_PREPROC_HEADERS structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - def GetHeader(self,header:'str',default:'typing.Any') -> 'str': - """ - None - -Args: - - header(str): - default(typing.Any):If specified, this will be returned on error. - -Returns: - - str - - """ - pass - - - def SetHeader(self,name:'str',val:'str') -> 'None': - """ - None - -Args: - - name(str): - val(str): - -Returns: - - None - - """ - pass - - - def AddHeader(self,) -> 'None': - """ - None - -Args: - - - -Returns: - - None - - """ - pass - - -class HTTP_FILTER_RAW_DATA(object): - """A Python representation of an ISAPI - -HTTP_FILTER_RAW_DATA structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def InData(self)->'str': - """""" - pass - - -class HTTP_FILTER_URL_MAP(object): - """A Python representation of an ISAPI - -HTTP_FILTER_URL_MAP structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def URL(self)->'str': - """""" - pass - - - @property - def PhysicalPath(self)->'str': - """""" - pass - - -class HTTP_FILTER_VERSION(object): - """A Python interface to the ISAPI HTTP_FILTER_VERSION - -structure.""" - - def __new__(cls): - raise Exception('This class just for typing, can not be instanced!') - - - @property - def ServerFilterVersion(self)->'typing.Any': - """(read-only)""" - pass - - - @property - def FilterVersion(self)->'typing.Any': - """""" - pass - - - @property - def Flags(self)->'typing.Any': - """""" - pass - - - @property - def FilterDesc(self)->'str': - """""" - pass From 6b928ca8bab4cfdc29e4c0206696f0d0bac60218 Mon Sep 17 00:00:00 2001 From: Samuel T Date: Fri, 2 Sep 2022 22:38:05 -0400 Subject: [PATCH 25/54] Toml profiles + Python 3.10 (#140) * Typings update * Full setup and configuration update * User Profile, Revamped settings, Start image fixes & __auto_splitter method refactor --- .flake8 | 25 +- .github/workflows/lint-and-build.yml | 136 +-- .vscode/extensions.json | 15 +- .vscode/launch.json | 29 + .vscode/settings.json | 54 +- .vscode/tasks.json | 32 + README.md | 18 +- pyproject.toml | 75 +- scripts/build.bat | 2 - scripts/build.ps1 | 8 + scripts/compile_resources.bat | 7 - scripts/compile_resources.ps1 | 29 + scripts/designer.bat | 19 - scripts/designer.ps1 | 6 + scripts/install.bat | 4 - scripts/install.ps1 | 17 + scripts/lint.ps1 | 23 +- scripts/requirements-dev.txt | 30 + scripts/requirements.txt | 42 +- scripts/start.bat | 2 - scripts/start.ps1 | 3 + src/AutoControlledWorker.py | 7 +- src/AutoSplit.py | 392 ++++---- src/AutoSplitImage.py | 42 +- src/capture_windows.py | 35 +- src/compare.py | 15 +- src/error_messages.py | 3 +- src/hotkeys.py | 16 +- src/menu_bar.py | 55 +- src/screen_region.py | 12 +- src/settings_file.py | 234 ----- src/split_parser.py | 24 +- src/user_profile.py | 209 +++++ typings/PyInstaller/utils/hooks/__init__.pyi | 20 +- typings/cv2-stubs/Error.pyi | 110 +++ typings/cv2-stubs/__init__.pyi | 883 +++++-------------- typings/imagehash/__init__.pyi | 104 --- typings/keyboard/__init__.pyi | 382 +++----- typings/keyboard/_canonical_names.pyi | 8 +- typings/keyboard/_generic.pyi | 50 +- typings/keyboard/_keyboard_event.pyi | 47 +- typings/keyboard/_mouse_event.pyi | 47 + typings/keyboard/mouse.pyi | 76 ++ typings/pyautogui/__init__.pyi | 423 +++++---- 44 files changed, 1767 insertions(+), 2003 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json delete mode 100644 scripts/build.bat create mode 100644 scripts/build.ps1 delete mode 100644 scripts/compile_resources.bat create mode 100644 scripts/compile_resources.ps1 delete mode 100644 scripts/designer.bat create mode 100644 scripts/designer.ps1 delete mode 100644 scripts/install.bat create mode 100644 scripts/install.ps1 create mode 100644 scripts/requirements-dev.txt delete mode 100644 scripts/start.bat create mode 100644 scripts/start.ps1 delete mode 100644 src/settings_file.py create mode 100644 src/user_profile.py create mode 100644 typings/cv2-stubs/Error.pyi delete mode 100644 typings/imagehash/__init__.pyi create mode 100644 typings/keyboard/_mouse_event.pyi create mode 100644 typings/keyboard/mouse.pyi diff --git a/.flake8 b/.flake8 index 595b400e..387edfed 100644 --- a/.flake8 +++ b/.flake8 @@ -1,28 +1,31 @@ [flake8] color=always max-line-length=120 -exclude= - src/gen/, ; Auto generated - typings/cv2-stubs/__init__.pyi, ; External existing stub +; Auto generated +exclude=src/gen/, typings/cv2-stubs/__init__.pyi ignore= - W503, ; Linebreak before binary operator - E402, ; Allow imports at the bottom of file - Y026, ; Not using typing_extensions + W503, ; Linebreak before binary operator + E402, ; Allow imports at the bottom of file + Y026, ; Not using typing_extensions + SIM105, ; contextlib.suppress is roughly 3x slower than try/except + CCE001, ; False positives for attribute docstrings per-file-ignores= ; Docstrings in type stubs ; Function bodys contain other than just ... (eg: raise) ; Single quote docstrings - typings/cv2-stubs/__init__.pyi: Q000,N8,E704, Y021,Y010,Q002 - + typings/cv2-stubs/__init__.pyi: Q000,E704,E501,N8,A002,A003,CCE002,F401, Y021,Y010,Q002 ; Quotes ; Allow ... on same line as def ; Line too long ; Naming conventions can't be controlled for external libraries - typings/**: Q000,E704,E501,N8 - + ; Argument names can't be controlled for external libraries + ; attribute names can't be controlled for external libraries + ; False positive Class level expression with elipsis + ; Type re-exports + *.pyi: Q000,E704,E501,N8,A002,A003,CCE002,F401 ; PyQt methods ignore-names=closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent ; McCabe max-complexity is also taken care of by Pylint and doesn't fail the build there ; So this is the hard limit max-complexity=32 -inline-quotes=" +inline-quotes=double diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 1b13d5da..62d39ad2 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -1,130 +1,134 @@ # https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions name: Lint and build on: + workflow_dispatch: # Allows manual builds push: branches: - main - master - - 2.0.0 paths: - - '**.py' - - '**.pyi' - - '**.ui' + - "**.py" + - "**.pyi" + - "**.ui" pull_request: branches: - main - master - - dev - dev* - 2.0.0 paths: - - '**.py' - - '**.pyi' - - '**.ui' + - "**.py" + - "**.pyi" + - "**.ui" + +env: + GITHUB_HEAD_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name }} + jobs: Pyright: runs-on: windows-latest strategy: + fail-fast: false matrix: - python-version: ["3.8", "3.9"] + python-version: ["3.9", "3.10"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Node - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install wheel - pip install -r "scripts/requirements.txt" - npm install -g pyright - - run: scripts/compile_resources.bat - - name: Analysing the code with ${{ job.name }} + cache: "pip" + cache-dependency-path: "scripts/requirements*.txt" + - run: scripts/install.ps1 + shell: pwsh + - name: Analysing the code with Pyright run: pyright --warnings Pylint: runs-on: windows-latest strategy: + fail-fast: false matrix: - python-version: ["3.8", "3.9"] + python-version: ["3.9", "3.10"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install wheel - pip install -r "scripts/requirements.txt" - - run: scripts/compile_resources.bat - - name: Analysing the code with ${{ job.name }} - run: pylint --reports=y --output-format=colorized $(git ls-files '**/*.py') + cache: "pip" + cache-dependency-path: "scripts/requirements*.txt" + - run: scripts/install.ps1 + shell: pwsh + - name: Analysing the code with Pylint + run: pylint --reports=y --output-format=colorized src/ Flake8: runs-on: windows-latest strategy: + fail-fast: false matrix: - python-version: ["3.8", "3.9"] + python-version: ["3.9", "3.10"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install wheel - pip install -r "scripts/requirements.txt" - - run: scripts/compile_resources.bat - - name: Analysing the code with ${{ job.name }} + cache: "pip" + cache-dependency-path: "scripts/requirements*.txt" + - run: scripts/install.ps1 + shell: pwsh + - name: Analysing the code with Flake8 run: flake8 Bandit: runs-on: windows-latest - strategy: - matrix: - python-version: ["3.8", "3.9"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v4 with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install wheel - pip install -r "scripts/requirements.txt" - - run: scripts/compile_resources.bat - - name: Analysing the code with ${{ job.name }} + python-version: "3.10" + cache: "pip" + cache-dependency-path: "scripts/requirements*.txt" + - run: scripts/install.ps1 + shell: pwsh + - name: Analysing the code with Bandit run: bandit -n 1 --severity-level medium --recursive src Build: runs-on: windows-latest strategy: + fail-fast: false matrix: - python-version: ["3.8", "3.9"] + python-version: ["3.10"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install wheel - pip install -r "scripts/requirements.txt" - - run: scripts/build.bat + cache: "pip" + - run: scripts/install.ps1 + shell: pwsh + - run: scripts/build.ps1 + shell: pwsh - name: Upload Build Artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: AutoSplit (Python ${{ matrix.python-version }}) - path: dist/AutoSplit.exe + path: dist/AutoSplit* + if-no-files-found: error + - name: Upload Build logs + uses: actions/upload-artifact@v3 + with: + name: Build logs (Python ${{ matrix.python-version }}) + path: | + build/AutoSplit/*.toc + build/AutoSplit/*.txt + build/AutoSplit/*.html + if-no-files-found: error diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 49ec5de6..e6b47305 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -4,13 +4,18 @@ "bungcip.better-toml", "davidanson.vscode-markdownlint", "eamodio.gitlens", + "ms-python.flake8", "ms-python.python", "ms-python.vscode-pylance", + "ms-vscode.powershell", "pkief.material-icon-theme", + "redhat.vscode-yaml", "shardulm94.trailing-spaces", "sonarsource.sonarlint-vscode" ], "unwantedRecommendations": [ + // Must disable in this workspace // + // // VSCode has implemented an optimized version "coenraads.bracket-pair-colorizer", "coenraads.bracket-pair-colorizer-2", @@ -21,7 +26,15 @@ "ms-vscode.vscode-typescript-tslint-plugin", // Obsoleted by Pylance "ms-pyright.pyright", - // The ESLint plugin is sufficient in JS-only projects + // Not configurable per workspace, tends to conflict with other linters + // Use eslint-plugin-sonarjs for JS/TS projects "sonarsource.sonarlint-vscode", + // + // Don't recommend to autoinstall // + // + // This is a Git project + "johnstoncode.svn-scm", + // Prefer using VSCode itself as a text editor + "vscodevim.vim", ] } diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..db52528d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,29 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python: AutoSplit", + "type": "python", + "request": "launch", + "preLaunchTask": "Compile resources", + "program": "src/AutoSplit.py", + "console": "integratedTerminal", + "justMyCode": true + }, + { + "name": "Python: AutoSplit --auto-controlled", + "type": "python", + "request": "launch", + "preLaunchTask": "Compile resources", + "program": "src/AutoSplit.py", + "args": [ + "--auto-controlled" + ], + "console": "integratedTerminal", + "justMyCode": true + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 4b96d023..601ce64c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,6 +24,9 @@ "markdown" ], "files.associations": { + "*.json": "json", + "extensions.json": "jsonc", + "settings.json": "jsonc", "*.qrc": "xml", "*.ui": "xml" }, @@ -39,10 +42,9 @@ "**/__pycache__": true, }, "search.exclude": { - "**/node_modules": true, "**/bower_components": true, "**/*.code-search": true, - "typings": true, + "*.lock": true, }, "[python]": { "editor.tabSize": 4, @@ -52,21 +54,42 @@ // 88, // Black default 99, // PEP8-17 acceptable max 120, // Our hard rule - ] + ], }, + "python.analysis.diagnosticMode": "workspace", "python.linting.enabled": true, "python.linting.pylintEnabled": true, "python.linting.pylintCategorySeverity.convention": "Warning", "python.linting.pylintCategorySeverity.refactor": "Warning", - "python.linting.flake8Enabled": true, - // pycodestyles - "python.linting.flake8CategorySeverity.E": "Warning", - // Pyflakes - "python.linting.flake8CategorySeverity.F": "Warning", - // PEP8 Naming convention - "python.linting.flake8CategorySeverity.N": "Warning", - // PYI - "python.linting.flake8CategorySeverity.Y": "Warning", + // Use the new Flake8 extension instead + "python.linting.flake8Enabled": false, + "flake8.severity": { + "convention": "Warning", + "error": "Error", + "fatal": "Error", + "refactor": "Warning", + "warning": "Warning", + "info": "Warning", + // builtins + "A": "Warning", + // mccabe + "C": "Warning", + // class attributes order + "CCE": "Warning", + // pycodestyles + "E": "Warning", + "E9": "Error", // Runtime + "W": "Warning", + // Pyflakes + "F": "Warning", + // PEP8 Naming convention + "N": "Warning", + // Simplify + "SIM": "Warning", + "SIM9": "Information", + // PYI + "Y": "Warning", + }, // PyRight obsoletes mypy "python.linting.mypyEnabled": false, // Is already wrapped by Flake8, prospector and pylama @@ -76,4 +99,11 @@ // Just another wrapper, use Flake8 OR this "python.linting.pylamaEnabled": false, "python.linting.banditEnabled": true, + "powershell.codeFormatting.pipelineIndentationStyle": "IncreaseIndentationForFirstPipeline", + "powershell.codeFormatting.autoCorrectAliases": true, + "powershell.codeFormatting.trimWhitespaceAroundPipe": true, + "powershell.codeFormatting.useConstantStrings": true, + "powershell.codeFormatting.useCorrectCasing": true, + "powershell.codeFormatting.whitespaceBetweenParameters": true, + "powershell.integratedConsole.showOnStartup": false, } diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..39a29147 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,32 @@ +{ + "version": "2.0.0", + "windows": { + "options": { + "shell": { + "executable": "powershell", + "args": [ + "-NoProfile", + "-ExecutionPolicy", + "Bypass", + "-Command" + ] + } + } + }, + "tasks": [ + { + "label": "Compile resources", + "type": "shell", + "command": "scripts/compile_resources.ps1" + }, + { + "label": "Build AutoSplit", + "type": "shell", + "command": "scripts/build.ps1", + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} diff --git a/README.md b/README.md index ea90d068..b2983070 100644 --- a/README.md +++ b/README.md @@ -170,19 +170,19 @@ This option does not loop single, specific images. See the Custom Split Image Se If this option is enabled, when the reset hotkey is hit, the reset button is pressed, or the reset split image meets its threshold, AutoSplit will reset and automatically start again back at the first split image. If this option is disabled, when the reset hotkey is hit, the reset button is pressed, or the reset split image meets its threshold, AutoSplit will stop running comparisons. -### Settings +### Profiles -- Settings files use the extension `.pkl`. Settings files can be saved and opened by using File -> Save Settings As... and File -> Load Settings. A settings file can be loaded upon opening AutoSplit if placed in the same directory as AutoSplit.exe. -- The settings in the settings file include split image directory, capture region, capture region dimensions, fps limit, threshold and pause time settings, all hotkeys, "Group dummy splits when undoing/skipping" check box, "Loop Split Images" check box, and "Auto Start On Reset" check box. -- You can save multiple settings files, which is useful if you speedrun multiple games. -- If you are upgrading to Windows 11, it's possible that save files may not transfer perfectly. You may need to readjust or reselect your Capture Region, for example. +- Profiles are saved under `%appdata%\AutoSplit\profiles` and use the extension `.toml`. Profiles can be saved and loaded by using File -> Save Profile As... and File -> Load Profile. +- The profile contains all of your settings, including information about the capture region. +- You can save multiple profiles, which is useful if you speedrun multiple games. +- If you change your display setup (like using a new monitor, or upgrading to Windows 11), you may need to readjust or reselect your Capture Region. ## LiveSplit Integration The AutoSplit LiveSplit Component will directly connect AutoSplit with LiveSplit. LiveSplit integration is only supported in AutoSplit v1.6.0 or higher. This integration will allow you to: - Use hotkeys directly from LiveSplit to control AutoSplit and LiveSplit together -- Load AutoSplit and any AutoSplit settings automatically when opening a LiveSplit layout. +- Load AutoSplit and any AutoSplit profile automatically when opening a LiveSplit layout. ### LiveSplit Integration Tutorial @@ -190,9 +190,9 @@ The AutoSplit LiveSplit Component will directly connect AutoSplit with LiveSplit - Place the .dll file into your `[...]\LiveSplit\Components` folder. - Open LiveSplit -> Right Click -> Edit Layout -> Plus Button -> Control -> AutoSplit Integration. - Click Layout Settings -> AutoSplit Integration -- Click the Browse buttons to locate your AutoSplit Path (path to AutoSplit.exe) and Settings Path (path to your AutoSplit `.pkl` settings file) respectively. - - If you have not yet set saved a settings file, you can do so using AutoSplit, and then go back and set your Settings Path. -- Once set, click OK, and then OK again to close the Layout Editor. Right click LiveSplit -> Save Layout to save your layout. AutoSplit and its settings will now open automatically when opening that LiveSplit Layout `.lsl` file. +- Click the Browse buttons to locate your AutoSplit Path (path to AutoSplit.exe) and Profile Path (path to your AutoSplit `.toml` profile file) respectively. + - If you have not yet set saved a profile, you can do so using AutoSplit, and then go back and set your Settings Path. +- Once set, click OK, and then OK again to close the Layout Editor. Right click LiveSplit -> Save Layout to save your layout. AutoSplit and your selected profile will now open automatically when opening that LiveSplit Layout `.lsl` file. ## Known Limitations diff --git a/pyproject.toml b/pyproject.toml index 4daa124b..b198a748 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,6 @@ aggressive = 3 # https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file [tool.pyright] -pythonPlatform = "Windows" typeCheckingMode = "strict" # Extra strict reportImplicitStringConcatenation="error" @@ -23,16 +22,21 @@ reportPropertyTypeMismatch="error" reportUninitializedInstanceVariable="error" reportUnnecessaryTypeIgnoreComment="error" reportUnusedCallResult="none" -ignore = [ - # Auto generated +# Exclude from scanning when running pyright +exclude = [ + # Auto generated, produces unecessary `# type: ignore` "src/gen/", +] +# Ignore must be specified for Pylance to stop displaying errors +ignore = [ # We expect stub files to be incomplete or contain useless statements - "typings/", + "**/*.pyi", ] +# Type stubs may not be completable reportMissingTypeStubs = "warning" # False positives with TYPE_CHECKING reportImportCycles = "information" -# False positives with PyQt .connect . pylint(no-member) works instead +# False positives with PyQt .connect. pylint(no-member) works instead reportFunctionMemberAccess = "none" # Extra runtime safety reportUnnecessaryComparison = "warning" @@ -44,21 +48,28 @@ reportUnknownMemberType = "none" # https://github.com/PyCQA/pylint/blob/main/examples/pylintrc # https://pylint.pycqa.org/en/latest/technical_reference/features.html [tool.pylint.REPORTS] -# Just like default but any error will make drop to 9 or less -evaluation = "10.0 - error - ((float((warning + convention) * 10 + refactor ) / statement) * 10)" +# Just like default but any error, warning or convention will make drop to 9 or less. refactor are worth more +evaluation = "10.0 - error - warning - convention - ((10 * refactor) / statement) * 10" [tool.pylint.MASTER] fail-under = 9.0 +# https://pydocbrowser.github.io/pylint/latest/pylint.extensions.html # https://pylint.pycqa.org/en/latest/technical_reference/extensions.html load-plugins = [ - "pylint.extensions.emptystring", + "pylint.extensions.bad_builtin", + "pylint.extensions.check_elif", + "pylint.extensions.comparison_placement", "pylint.extensions.confusing_elif", "pylint.extensions.consider_ternary_expression", - "pylint.extensions.bad_builtin", + "pylint.extensions.empty_comment", + "pylint.extensions.emptystring", + "pylint.extensions.for_any_all", + "pylint.extensions.eq_without_hash", "pylint.extensions.mccabe", - "pylint.extensions.check_elif", - "pylint.extensions.redefined_variable_type", + "pylint.extensions.no_self_use", "pylint.extensions.overlapping_exceptions", - "pylint.extensions.empty_comment", + "pylint.extensions.private_import", + "pylint.extensions.redefined_loop_name", + "pylint.extensions.redefined_variable_type", "pylint.extensions.set_membership", "pylint.extensions.typing", # TODO: Maybe later @@ -69,23 +80,14 @@ load-plugins = [ # "pylint.extensions.comparetozero", # "pylint.extensions.docstyle", # "pylint.extensions.while_used", - # Didn't work - # "pylint.extensions.comparison_placement", - # "pylint.extensions.for_any_all", ] -# Auto generated (doesn't work) -ignore-paths = ["src/gen/.*"] - # We expect stub files to be incomplete or contain useless statements -ignore-patterns = [ - ".*\\.pyi", +ignore-paths = [ # Auto generated - "about.py", - "design.py", - "resources_rc.py", - "settings.py", - "update_checker.py", + "^src/gen/.*$", + # We expect stub files to be incomplete or contain useless statements + "^.*.pyi$", ] -extension-pkg-allow-list = ["PyQt6", "win32ui"] +extension-pkg-allow-list = ["PyQt6", "PySide6", "win32ui"] [tool.pylint.FORMAT] max-line-length = 120 @@ -102,6 +104,9 @@ max-locals = 15 max-complexity = 15 # At least same as max-complexity max-branches = 15 +# https://github.com/PyCQA/pep8-naming/issues/164 +# OR doesn't fit CaptureMethodMeta +valid-classmethod-first-arg = "self" # https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles module-naming-style = "any" # Can't make private class with PascalCase @@ -115,18 +120,28 @@ disable = [ # No need to mention the fixmes "fixme", "missing-docstring", - # We group imports + # Already taken care of by Flake8 and isort + "ungrouped-imports", + "unused-import", + "wrong-import-order", "wrong-import-position", # Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride "unused-argument", - # Already taken care of by Flake8 - "unused-import", + # Only reports a single instance. Pyright does a better job anyway + "cyclic-import", + # Doesn't work with local imports + "import-error", # Similar lines in 2 files, doesn't really work "R0801", ] [tool.pylint.TYPECHECK] -generated-members = "cv2" +generated-members = [ + # https://github.com/PyCQA/pylint/issues/4987 + "cv2", + # https://github.com/mhammond/pywin32/issues/1913 + "pywintypes.error", +] [tool.isort] line_length = 120 diff --git a/scripts/build.bat b/scripts/build.bat deleted file mode 100644 index bfc6d7ee..00000000 --- a/scripts/build.bat +++ /dev/null @@ -1,2 +0,0 @@ -CALL "%~p0compile_resources.bat" -pyinstaller --windowed --onefile --additional-hooks-dir=Pyinstaller\hooks --icon=res\icon.ico "%~p0..\src\AutoSplit.py" diff --git a/scripts/build.ps1 b/scripts/build.ps1 new file mode 100644 index 00000000..cbd5631f --- /dev/null +++ b/scripts/build.ps1 @@ -0,0 +1,8 @@ +& "$PSScriptRoot/compile_resources.ps1" + +pyinstaller ` + --windowed ` + --onefile ` + --additional-hooks-dir=Pyinstaller/hooks ` + --icon=res/icon.ico ` + "$PSScriptRoot/../src/AutoSplit.py" diff --git a/scripts/compile_resources.bat b/scripts/compile_resources.bat deleted file mode 100644 index d5ef6cf0..00000000 --- a/scripts/compile_resources.bat +++ /dev/null @@ -1,7 +0,0 @@ -cd "%~dp0.." -md .\src\gen -pyuic6 ".\res\about.ui" -o ".\src\gen\about.py" -pyuic6 ".\res\design.ui" -o ".\src\gen\design.py" -pyuic6 ".\res\settings.ui" -o ".\src\gen\settings.py" -pyuic6 ".\res\update_checker.ui" -o ".\src\gen\update_checker.py" -pyside6-rcc ".\res\resources.qrc" -o ".\src\gen\resources_rc.py" diff --git a/scripts/compile_resources.ps1 b/scripts/compile_resources.ps1 new file mode 100644 index 00000000..a1a4ba2f --- /dev/null +++ b/scripts/compile_resources.ps1 @@ -0,0 +1,29 @@ +$originalDirectory = $pwd +Set-Location "$PSScriptRoot/.." + +New-Item -Force -ItemType directory ./src/gen | Out-Null +pyuic6 './res/about.ui' -o './src/gen/about.py' +pyuic6 './res/design.ui' -o './src/gen/design.py' +pyuic6 './res/settings.ui' -o './src/gen/settings.py' +pyuic6 './res/update_checker.ui' -o './src/gen/update_checker.py' +pyside6-rcc './res/resources.qrc' -o './src/gen/resources_rc.py' +Write-Host 'Generated code from .ui files' + +$build_vars_path = "$PSScriptRoot/../src/gen/build_vars.py" +$BUILD_NUMBER = Get-Date -Format yyMMddHHmm +$GITHUB_REPOSITORY = $Env:GITHUB_HEAD_REPOSITORY +If (-not $GITHUB_REPOSITORY) { + $repo_url = git config --get remote.origin.url + $GITHUB_REPOSITORY = $repo_url.substring(19, $repo_url.length - 19 - 4) +} +If (-not $GITHUB_REPOSITORY) { + $GITHUB_REPOSITORY = 'Toufool/Auto-Split' +} + +New-Item $build_vars_path -ItemType File -Force | Out-Null +Add-Content $build_vars_path "AUTOSPLIT_BUILD_NUMBER = `"$BUILD_NUMBER`"" +Add-Content $build_vars_path "AUTOSPLIT_GITHUB_REPOSITORY = `"$GITHUB_REPOSITORY`"" +Write-Host "Generated build number: `"$BUILD_NUMBER`"" +Write-Host "Set repository to `"$GITHUB_REPOSITORY`"" + +Set-Location $originalDirectory diff --git a/scripts/designer.bat b/scripts/designer.bat deleted file mode 100644 index d3b61064..00000000 --- a/scripts/designer.bat +++ /dev/null @@ -1,19 +0,0 @@ -@ECHO OFF - -IF NOT DEFINED PYTHONPATH ( - setlocal EnableDelayedExpansion - - SET n=0 - FOR /f "delims=" %%p in ('where python') do ( - SET pythonFiles[!n!]=%%p - SET /A n+=1 - ) - SET PYTHONPATH=!pythonFiles[0]! -) - -START "Qt Designer" "%PYTHONPATH:~0,-11%\Lib\site-packages\qt6_applications\Qt\bin\designer.exe"^ - "%~d0%~p0..\res\design.ui"^ - "%~d0%~p0..\res\about.ui"^ - "%~d0%~p0..\res\settings.ui"^ - "%~d0%~p0..\res\update_checker.ui" - diff --git a/scripts/designer.ps1 b/scripts/designer.ps1 new file mode 100644 index 00000000..13d2450a --- /dev/null +++ b/scripts/designer.ps1 @@ -0,0 +1,6 @@ +$qt6_applications_path = python3 -c 'import qt6_applications; print(qt6_applications.__path__[0])' +& "$qt6_applications_path/Qt/bin/designer" ` + "$PSScriptRoot/../res/design.ui" ` + "$PSScriptRoot/../res/about.ui" ` + "$PSScriptRoot/../res/settings.ui" ` + "$PSScriptRoot/../res/update_checker.ui" diff --git a/scripts/install.bat b/scripts/install.bat deleted file mode 100644 index 1b61fb02..00000000 --- a/scripts/install.bat +++ /dev/null @@ -1,4 +0,0 @@ -py -3.9 -m pip install wheel --upgrade -py -3.9 -m pip install -r "%~p0requirements.txt" --upgrade -npm install -g pyright@latest -CALL "%~p0compile_resources.bat" diff --git a/scripts/install.ps1 b/scripts/install.ps1 new file mode 100644 index 00000000..0bbf770c --- /dev/null +++ b/scripts/install.ps1 @@ -0,0 +1,17 @@ +# Alias python3 to python on Windows +If ($IsWindows) { + $python = (Get-Command python).Source + $python3 = "$((Get-Item $python).Directory.FullName)/python3.exe" + New-Item -ItemType SymbolicLink -Path $python3 -Target $python -ErrorAction SilentlyContinue +} + +# Installing Python dependencies +$dev = If ($env:GITHUB_JOB -eq 'Build') { '' } Else { '-dev' } +# Ensures installation tools are up to date. +python3 -m pip install wheel pip setuptools --upgrade +python3 -m pip install -r "$PSScriptRoot/requirements$dev.txt" + +# Don't compile resources on the Build CI job as it'll do so in build script +If ($dev) { + & "$PSScriptRoot/compile_resources.ps1" +} diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index 03b3d774..f5931602 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -1,23 +1,25 @@ $originalDirectory = $pwd -cd "$PSScriptRoot\.." -Write-Host $Script:MyInvocation.MyCommand.Path +Set-Location "$PSScriptRoot/.." $exitCodes = 0 Write-Host "`nRunning Pyright..." +$Env:PYRIGHT_PYTHON_FORCE_VERSION = 'latest' pyright --warnings $exitCodes += $LastExitCode if ($LastExitCode -gt 0) { Write-Host "`Pyright failed ($LastExitCode)" -ForegroundColor Red -} else { +} +else { Write-Host "`Pyright passed" -ForegroundColor Green } Write-Host "`nRunning Pylint..." -pylint --score=n --output-format=colorized $(git ls-files '**/*.py') +pylint --output-format=colorized src/ $exitCodes += $LastExitCode if ($LastExitCode -gt 0) { Write-Host "`Pylint failed ($LastExitCode)" -ForegroundColor Red -} else { +} +else { Write-Host "`Pylint passed" -ForegroundColor Green } @@ -26,7 +28,8 @@ flake8 $exitCodes += $LastExitCode if ($LastExitCode -gt 0) { Write-Host "`Flake8 failed ($LastExitCode)" -ForegroundColor Red -} else { +} +else { Write-Host "`Flake8 passed" -ForegroundColor Green } @@ -35,15 +38,17 @@ bandit -f custom --silent --recursive src # $exitCodes += $LastExitCode # Returns 1 on low if ($LastExitCode -gt 0) { Write-Host "`Bandit warning ($LastExitCode)" -ForegroundColor Yellow -} else { +} +else { Write-Host "`Bandit passed" -ForegroundColor Green } if ($exitCodes -gt 0) { Write-Host "`nLinting failed ($exitCodes)" -ForegroundColor Red -} else { +} +else { Write-Host "`nLinting passed" -ForegroundColor Green } -cd $originalDirectory +Set-Location $originalDirectory diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt new file mode 100644 index 00000000..5a8cd923 --- /dev/null +++ b/scripts/requirements-dev.txt @@ -0,0 +1,30 @@ +# Usage: ./scripts/install.ps1 +# +# If you're having issues with the libraries, you might want to first run: +# pip uninstall -y -r ./scripts/requirements-dev.txt +# +# Dependencies +-r requirements.txt +# +# Linting and formatters +bandit +flake8>=5 # flake8-pyi deprecation warnings +flake8-builtins +flake8-bugbear +flake8-class-attributes-order +flake8-comprehensions>=3.8 # flake8 5 support +flake8-datetimez +flake8-isort>=4.2 # flake8 5 support +flake8-pyi>=22.8.1 # flake8 5 support +flake8-quotes +flake8-simplify +pep8-naming +pylint>=2.13.9 # Respect ignore configuration options with --recursive=y +pyright +# +# Run `./scripts/designer.ps1` to quickly open the bundled PyQt Designer. +# Can also be downloaded externally as a non-python package +qt6-applications +# Types +pywin32-stubs>=1.0.7 # Added error types +typing-extensions diff --git a/scripts/requirements.txt b/scripts/requirements.txt index db47cb05..5bc12d6c 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -2,38 +2,32 @@ # # Python: CPython 3.9+ # -# Usage: .\scripts\install.bat +# Usage: ./scripts/install.ps1 # # If you're having issues with the libraries, you might want to first run: -# pip3.9 uninstall -r .\scripts\requirements.txt +# pip uninstall -y -r ./scripts/requirements-dev.txt # -# Creating AutoSplit.exe with PyInstaller: .\scripts\build.bat +# Creating anAutoSplit executable with PyInstaller: ./scripts/build.ps1 # # Dependencies: -ImageHash +numpy>=1.23 # Updated types +opencv-python-headless>=4.5.4,<4.6 # https://github.com/pyinstaller/pyinstaller/issues/6889 +PyQt6>=6.2.1 # Python 3.10 support +git+https://github.com/JohannesBuchner/imagehash#egg=ImageHash # Contains type information keyboard -numpy>=1.22.0rc1 -opencv-python packaging Pillow -PyQt6 -PyQt6-tools -PySide6 -pyautogui -pywin32 +PyAutoGUI requests -# Linting, formatters and Types -bandit -isort -flake8 -flake8-pyi -flake8-quotes -flake8-isort -pylint>=2.13 -git+https://github.com/Avasam/pywin32-stubs.git#egg=pywin32-stubs # https://github.com/kaluluosi/pywin32-stubs/pull/4 -simplejson -types-simplejson>=3.17.2 -types-requests +certifi +toml +psutil +git+https://github.com/Avasam/python_grabber.git@complete-types#egg=pygrabber # https://github.com/andreaschiavinato/python_grabber/pull/18 +# Windows-only +pywin32>=301 +winsdk>=v1.0.0b4 +git+https://github.com/ranchen421/D3DShot.git#egg=D3DShot # https://github.com/SerpentAI/D3DShot/issues/44 # -# Comment this out if you don't want to build AutoSplit.exe: +# Build and compile resources PyInstaller +PySide6 diff --git a/scripts/start.bat b/scripts/start.bat deleted file mode 100644 index cd894a28..00000000 --- a/scripts/start.bat +++ /dev/null @@ -1,2 +0,0 @@ -CALL "%~p0compile_resources.bat" -py -3.9 "%~p0..\src\AutoSplit.py" %* diff --git a/scripts/start.ps1 b/scripts/start.ps1 new file mode 100644 index 00000000..d1e8ec08 --- /dev/null +++ b/scripts/start.ps1 @@ -0,0 +1,3 @@ +param ([string]$p1) +& "$PSScriptRoot/compile_resources.ps1" +python3 "$PSScriptRoot/../src/AutoSplit.py" $p1 diff --git a/src/AutoControlledWorker.py b/src/AutoControlledWorker.py index 61cf678b..5b3238c1 100644 --- a/src/AutoControlledWorker.py +++ b/src/AutoControlledWorker.py @@ -5,7 +5,7 @@ from PyQt6 import QtCore import error_messages -import settings_file as settings +import user_profile if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -25,8 +25,7 @@ def run(self): break except EOFError: continue - # TODO: "AutoSplit Integration" needs to call this and wait instead of outright killing the app. - # For now this can only used in a Development environment + # This is for use in a Development environment if line == "kill": self.autosplit.closeEvent() break @@ -40,7 +39,7 @@ def run(self): self.autosplit.reset_signal.emit() elif line.startswith("settings"): # Allow for any split character between "settings" and the path - settings.load_settings(self.autosplit, line[9:]) + user_profile.load_settings(self.autosplit, line[9:]) # TODO: Not yet implemented in AutoSplit Integration # elif line == 'pause': # self.pause_signal.emit() diff --git a/src/AutoSplit.py b/src/AutoSplit.py index c8fe95b0..bbd2480d 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -16,7 +16,6 @@ from collections.abc import Callable from time import time from types import FunctionType, TracebackType -from typing import Optional, Union import certifi import cv2 @@ -26,17 +25,17 @@ from win32 import win32gui import error_messages -import settings_file as settings +import user_profile from AutoControlledWorker import AutoControlledWorker from AutoSplitImage import COMPARISON_RESIZE, AutoSplitImage, ImageType from capture_windows import capture_region, set_ui_image -from gen import about, design, settings as settings_ui, update_checker +from gen import about, design, settings, update_checker from hotkeys import after_setting_hotkey, send_command from menu_bar import (VERSION, check_for_updates, get_default_settings_from_ui, open_about, open_settings, open_update_checker, view_help) from screen_region import align_region, select_region, select_window, validate_before_parsing -from settings_file import FROZEN from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images +from user_profile import DEFAULT_PROFILE, FROZEN CREATE_NEW_ISSUE_MESSAGE = ( "Please create a New Issue at " @@ -46,10 +45,12 @@ # Needed when compiled, along with the custom hook-requests PyInstaller hook os.environ["REQUESTS_CA_BUNDLE"] = certifi.where() +myappid = f"Toufool.AutoSplit.v{VERSION}" +ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) def make_excepthook(autosplit: AutoSplit): - def excepthook(exception_type: type[BaseException], exception: BaseException, _traceback: Optional[TracebackType]): + def excepthook(exception_type: type[BaseException], exception: BaseException, _traceback: TracebackType | None): # Catch Keyboard Interrupts for a clean close if exception_type is KeyboardInterrupt or isinstance(exception, KeyboardInterrupt): sys.exit(0) @@ -61,9 +62,6 @@ def excepthook(exception_type: type[BaseException], exception: BaseException, _t class AutoSplit(QMainWindow, design.Ui_MainWindow): - myappid = f"Toufool.AutoSplit.v{VERSION}" - ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) - # Parse command line args is_auto_controlled = "--auto-controlled" in sys.argv @@ -75,6 +73,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): pause_signal = QtCore.pyqtSignal() after_setting_hotkey_signal = QtCore.pyqtSignal() update_checker_widget_signal = QtCore.pyqtSignal(str, bool) + load_start_image_signal = QtCore.pyqtSignal([], [bool], [bool, bool]) # Use this signal when trying to show an error from outside the main thread show_error_signal = QtCore.pyqtSignal(FunctionType) @@ -83,48 +82,48 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): timer_start_image = QtCore.QTimer() # Widgets - AboutWidget: Optional[about.Ui_AboutAutoSplitWidget] = None - UpdateCheckerWidget: Optional[update_checker.Ui_UpdateChecker] = None - CheckForUpdatesThread: Optional[QtCore.QThread] = None - SettingsWidget: Optional[settings_ui.Ui_DialogSettings] = None + AboutWidget: about.Ui_AboutAutoSplitWidget | None = None + UpdateCheckerWidget: update_checker.Ui_UpdateChecker | None = None + CheckForUpdatesThread: QtCore.QThread | None = None + SettingsWidget: settings.Ui_DialogSettings | None = None # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py # and for type safety in both hotkeys.py and settings_file.py - split_hotkey: Optional[Callable[[], None]] = None - reset_hotkey: Optional[Callable[[], None]] = None - skip_split_hotkey: Optional[Callable[[], None]] = None - undo_split_hotkey: Optional[Callable[[], None]] = None - pause_hotkey: Optional[Callable[[], None]] = None + split_hotkey: Callable[[], None] | None = None + reset_hotkey: Callable[[], None] | None = None + skip_split_hotkey: Callable[[], None] | None = None + undo_split_hotkey: Callable[[], None] | None = None + pause_hotkey: Callable[[], None] | None = None # Initialize a few attributes hwnd = 0 """Window Handle used for Capture Region""" - last_saved_settings: list[Union[str, float, int, bool]] = [] + last_saved_settings = DEFAULT_PROFILE similarity = 0.0 split_image_number = 0 split_images_and_loop_number: list[tuple[AutoSplitImage, int]] = [] split_groups: list[list[int]] = [] # Last loaded settings empty and last successful loaded settings file path to None until we try to load them - last_loaded_settings: list[Union[str, float, int]] = [] - last_successfully_loaded_settings_file_path: Optional[str] = None + last_loaded_settings = DEFAULT_PROFILE + last_successfully_loaded_settings_file_path: str | None = None """For when a file has never loaded, but you successfully "Save File As".""" # Automatic timer start highest_similarity = 0.0 - check_start_image_timestamp = 0.0 + reset_highest_similarity = 0.0 # Define all other attributes - start_image_split_below_threshold: bool - waiting_for_split_delay: bool - split_below_threshold: bool - run_start_time: float - start_image: Optional[AutoSplitImage] = None - reset_image: Optional[AutoSplitImage] = None + start_image_split_below_threshold = False + waiting_for_split_delay = False + split_below_threshold = False + run_start_time = 0.0 + start_image: AutoSplitImage | None = None + reset_image: AutoSplitImage | None = None split_images: list[AutoSplitImage] = [] - split_image: AutoSplitImage + split_image: AutoSplitImage | None = None - def __init__(self, parent: Optional[QWidget] = None): + def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-statements super().__init__(parent) # Setup global error handling @@ -136,15 +135,15 @@ def __init__(self, parent: Optional[QWidget] = None): # Get default values defined in SettingsDialog self.settings_dict = get_default_settings_from_ui(self) - settings.load_check_for_updates_on_open(self) + user_profile.load_check_for_updates_on_open(self) self.action_view_help.triggered.connect(view_help) self.action_about.triggered.connect(lambda: open_about(self)) self.action_check_for_updates.triggered.connect(lambda: check_for_updates(self)) self.action_settings.triggered.connect(lambda: open_settings(self)) - self.action_save_profile.triggered.connect(lambda: settings.save_settings(self)) - self.action_save_profile_as.triggered.connect(lambda: settings.save_settings_as(self)) - self.action_load_profile.triggered.connect(lambda: settings.load_settings(self)) + self.action_save_profile.triggered.connect(lambda: user_profile.save_settings(self)) + self.action_save_profile_as.triggered.connect(lambda: user_profile.save_settings_as(self)) + self.action_load_profile.triggered.connect(lambda: user_profile.load_settings(self)) if self.SettingsWidget: self.SettingsWidget.split_input.setEnabled(False) @@ -157,6 +156,7 @@ def __init__(self, parent: Optional[QWidget] = None): self.start_auto_splitter_button.setEnabled(False) # Send version and process ID to stdout + # THIS HAS TO BE THE FIRST TWO LINES SENT print(f"{VERSION}\n{os.getpid()}", flush=True) # Use and Start the thread that checks for updates from LiveSplit @@ -182,8 +182,8 @@ def __init__(self, parent: Optional[QWidget] = None): self.previous_image_button.clicked.connect(lambda: self.__undo_split(True)) self.align_region_button.clicked.connect(lambda: align_region(self)) self.select_window_button.clicked.connect(lambda: select_window(self)) - self.reload_start_image_button.clicked.connect(lambda: self.load_start_image(True, True)) - self.action_check_for_updates_on_open.changed.connect(lambda: settings.set_check_for_updates_on_open( + self.reload_start_image_button.clicked.connect(lambda: self.__load_start_image(True, True)) + self.action_check_for_updates_on_open.changed.connect(lambda: user_profile.set_check_for_updates_on_open( self, self.action_check_for_updates_on_open.isChecked()) ) @@ -199,20 +199,23 @@ def __init__(self, parent: Optional[QWidget] = None): self.start_auto_splitter_signal.connect(self.__auto_splitter) self.update_checker_widget_signal.connect(lambda latest_version, check_on_open: open_update_checker(self, latest_version, check_on_open)) + self.load_start_image_signal.connect(self.__load_start_image) + self.load_start_image_signal[bool].connect(self.__load_start_image) + self.load_start_image_signal[bool, bool].connect(self.__load_start_image) self.reset_signal.connect(self.reset) self.skip_split_signal.connect(self.__skip_split) self.undo_split_signal.connect(self.__undo_split) self.pause_signal.connect(self.pause) # live image checkbox - self.timer_live_image.start(int(1000 / 60)) self.timer_live_image.timeout.connect(self.__live_image_function) + self.timer_live_image.start(int(1000 / 60)) # Automatic timer start self.timer_start_image.timeout.connect(self.__start_image_function) if not self.is_auto_controlled: - settings.load_settings_on_open(self) + user_profile.load_settings_on_open(self) self.show() @@ -222,20 +225,19 @@ def __init__(self, parent: Optional[QWidget] = None): # FUNCTIONS - # TODO add checkbox for going back to image 1 when resetting. def __browse(self): # User selects the file with the split images in it. new_split_image_directory = QFileDialog.getExistingDirectory( self, "Select Split Image Directory", - os.path.join(self.settings_dict["split_image_directory"] or settings.auto_split_directory, "..")) + os.path.join(self.settings_dict["split_image_directory"] or user_profile.auto_split_directory, "..")) # If the user doesn't select a folder, it defaults to "". if new_split_image_directory: # set the split image folder line to the directory text self.settings_dict["split_image_directory"] = new_split_image_directory self.split_image_folder_input.setText(f"{new_split_image_directory}/") - self.load_start_image() + self.load_start_image_signal.emit() def __live_image_function(self): self.capture_region_window_label.setText(self.settings_dict["captured_window_title"]) @@ -249,60 +251,56 @@ def __live_image_function(self): self.settings_dict["force_print_window"]) set_ui_image(self.live_image, capture, False) - def load_start_image(self, started_by_button: bool = False, wait_for_delay: bool = True): + def __load_start_image(self, started_by_button: bool = False, wait_for_delay: bool = True): + """ + Not thread safe (if triggered by LiveSplit for example). Use `load_start_image_signal.emit` instead. + """ self.timer_start_image.stop() self.current_image_file_label.setText("-") self.start_image_status_value_label.setText("not found") - QApplication.processEvents() if not self.is_auto_controlled \ and (not self.settings_dict["split_hotkey"] or not self.settings_dict["reset_hotkey"] or not self.settings_dict["pause_hotkey"]): error_messages.load_start_image() + QApplication.processEvents() return if not (validate_before_parsing(self, started_by_button) and parse_and_validate_images(self)): + QApplication.processEvents() return if self.start_image is None: if started_by_button: error_messages.no_keyword_image("start_auto_splitter") + QApplication.processEvents() return self.split_image_number = 0 start_pause_time = self.start_image.get_pause_time(self) if not wait_for_delay and start_pause_time > 0: - self.check_start_image_timestamp = time() + start_pause_time self.start_image_status_value_label.setText("paused") self.table_current_image_highest_label.setText("-") self.table_current_image_threshold_label.setText("-") else: - self.check_start_image_timestamp = 0.0 self.start_image_status_value_label.setText("ready") self.__update_split_image(self.start_image) self.highest_similarity = 0.0 + self.reset_highest_similarity = 0.0 self.start_image_split_below_threshold = False self.timer_start_image.start(int(1000 / self.settings_dict["fps_limit"])) QApplication.processEvents() def __start_image_function(self): - if self.start_image is None \ - or not self.start_image \ - or time() < self.check_start_image_timestamp \ - or (not self.settings_dict["split_hotkey"] and not self.is_auto_controlled): - pause_time_left = self.check_start_image_timestamp - time() - self.current_split_image.setText( - f"None\n (Paused before loading Start Image).\n {seconds_remaining_text(pause_time_left)}") + if not self.start_image: return - if self.check_start_image_timestamp > 0: - self.check_start_image_timestamp = 0.0 - self.start_image_status_value_label.setText("ready") - self.__update_split_image(self.start_image) + self.start_image_status_value_label.setText("ready") + self.__update_split_image(self.start_image) capture = self.__get_capture_for_comparison() start_image_threshold = self.start_image.get_similarity_threshold(self) @@ -310,27 +308,28 @@ def __start_image_function(self): self.table_current_image_threshold_label.setText(f"{start_image_threshold:.2f}") # Show live similarity if the checkbox is checked - self.table_current_image_live_label.setText(str(start_image_similarity)[:4]) + self.table_current_image_live_label.setText(f"{start_image_similarity:.2f}") # If the similarity becomes higher than highest similarity, set it as such. if start_image_similarity > self.highest_similarity: self.highest_similarity = start_image_similarity # Show live highest similarity if the checkbox is checked - self.table_current_image_highest_label.setText(str(self.highest_similarity)[:4]) + self.table_current_image_highest_label.setText(f"{self.highest_similarity:.2f}") # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold below_flag = self.start_image.check_flag(BELOW_FLAG) + + # Negative means belove threshold, positive means above + similarity_diff = start_image_threshold - start_image_similarity if below_flag \ and not self.start_image_split_below_threshold \ - and start_image_similarity >= start_image_threshold: + and similarity_diff >= 0: self.start_image_split_below_threshold = True return - if (below_flag - and self.start_image_split_below_threshold - and start_image_similarity < start_image_threshold) \ - or (start_image_similarity >= start_image_threshold and not below_flag): + if (below_flag and self.start_image_split_below_threshold and similarity_diff < 0) \ + or (not below_flag and similarity_diff >= 0): self.timer_start_image.stop() self.start_image_split_below_threshold = False @@ -353,16 +352,16 @@ def __start_image_function(self): # update x, y, width, height when spinbox values are changed def __update_x(self): - self.settings_dict["capture_region"].x = self.x_spinbox.value() + self.settings_dict["capture_region"]["x"] = self.x_spinbox.value() def __update_y(self): - self.settings_dict["capture_region"].y = self.y_spinbox.value() + self.settings_dict["capture_region"]["y"] = self.y_spinbox.value() def __update_width(self): - self.settings_dict["capture_region"].width = self.width_spinbox.value() + self.settings_dict["capture_region"]["width"] = self.width_spinbox.value() def __update_height(self): - self.settings_dict["capture_region"].height = self.height_spinbox.value() + self.settings_dict["capture_region"]["height"] = self.height_spinbox.value() def __take_screenshot(self): if not validate_before_parsing(self, check_empty_directory=False): @@ -491,7 +490,10 @@ def start_auto_splitter(self): self.start_auto_splitter_signal.emit() - def __check_for_reset(self): + def __check_for_reset_state_update_ui(self): + """ + Check if AutoSplit is started, if not either restart (loop splits) or update the GUI + """ if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT: if self.settings_dict["loop_splits"]: self.start_auto_splitter_signal.emit() @@ -551,66 +553,15 @@ def __auto_splitter(self): self.__update_split_image() - # second while loop: stays in this loop until similarity threshold is met - # skip loop if we just finished waiting for the split delay and need to press the split key! - start = time() - while True: - if self.__check_for_reset(): - return - - # calculate similarity for reset image - capture = self.__get_capture_for_comparison() - - _ = self.__reset_if_should(capture) - - if self.__check_for_reset(): - return - - # calculate similarity for split image - self.similarity = self.split_image.compare_with_capture(self, capture) - - # show live similarity if the checkbox is checked - self.table_current_image_live_label.setText(str(self.similarity)[:4]) - - # if the similarity becomes higher than highest similarity, set it as such. - if self.similarity > self.highest_similarity: - self.highest_similarity = self.similarity - - # show live highest similarity if the checkbox is checked - self.table_current_image_highest_label.setText(str(self.highest_similarity)[:4]) - - # If its the last split image and last loop number, disable the next image button - # If its the first split image, disable the undo split and previous image buttons - self.next_image_button.setEnabled(self.split_image_number != number_of_split_images - 1) - self.previous_image_button.setEnabled(self.split_image_number != 0) - if not self.is_auto_controlled: - # If its the last non-dummy split image and last loop number, disable the skip split button - self.skip_split_button.setEnabled(dummy_splits_array[self.split_image_number:].count(False) > 1) - self.undo_split_button.setEnabled(self.split_image_number != 0) - - # if the b flag is set, let similarity go above threshold first, - # then split on similarity below threshold. - # if no b flag, just split when similarity goes above threshold. - if not self.waiting_for_split_delay: - if self.similarity >= self.split_image.get_similarity_threshold(self): - if not self.split_image.check_flag(BELOW_FLAG): - break - if not self.split_below_threshold: - self.split_below_threshold = True - continue - elif self.split_image.check_flag(BELOW_FLAG) and self.split_below_threshold: - self.split_below_threshold = False - break - - # limit the number of time the comparison runs to reduce cpu usage - frame_interval: float = 1 / self.settings_dict["fps_limit"] - QTest.qWait(int(frame_interval - (time() - start) % frame_interval)) - QApplication.processEvents() + # Type checking + if not self.split_image: + return - # comes here when threshold gets met + # Second while loop: stays in this loop until similarity threshold is met + if self.__similarity_threshold_loop(number_of_split_images, dummy_splits_array): + return - # We need to make sure that this isn't a dummy split before sending - # the key press. + # We need to make sure that this isn't a dummy split before sending the key press. if not self.split_image.check_flag(DUMMY_FLAG): # If it's a delayed split, check if the delay has passed # Otherwise calculate the split time for the key press @@ -623,18 +574,8 @@ def __auto_splitter(self): self.current_image_file_label.clear() # check for reset while delayed and display a counter of the remaining split delay time - delay_start_time = time() - while time() - delay_start_time < split_delay: - delay_time_left = split_delay - (time() - delay_start_time) - self.current_split_image.setText(f"Delayed Split: {seconds_remaining_text(delay_time_left)}") - if self.__check_for_reset(): - return - - # calculate similarity for reset image - capture = self.__get_capture_for_comparison() - if self.__reset_if_should(capture): - continue - QTest.qWait(1) + if self.__pause_loop(split_delay, "Delayed Split:"): + return self.waiting_for_split_delay = False @@ -648,50 +589,110 @@ def __auto_splitter(self): else: self.split_image_number += 1 - # Set a "pause" split image number. - # This is done so that it can detect if user hit split/undo split while paused. - pause_split_image_number = self.split_image_number - - # if its not the last split image, pause for the amount set by the user - if number_of_split_images != self.split_image_number: - - # If its the last split image and last loop number, disable the next image button - # If its the first split image, disable the undo split and previous image buttons - self.next_image_button.setEnabled(self.split_image_number != number_of_split_images - 1) - self.previous_image_button.setEnabled(self.split_image_number != 0) - if not self.is_auto_controlled: - # If its the last non-dummy split image and last loop number, disable the skip split button - self.skip_split_button.setEnabled(dummy_splits_array[self.split_image_number:].count(False) > 1) - self.undo_split_button.setEnabled(self.split_image_number != 0) - - QApplication.processEvents() - + # If its not the last split image, pause for the amount set by the user # A pause loop to check if the user presses skip split, undo split, or reset here. # Also updates the current split image text, counting down the time until the next split image pause_time = self.split_image.get_pause_time(self) - if pause_time > 0: - pause_start_time = time() - while time() - pause_start_time < pause_time: - pause_time_left = pause_time - (time() - pause_start_time) - self.current_split_image.setText(f"None (Paused). {seconds_remaining_text(pause_time_left)}") + if self.__pause_loop(pause_time, "None (Paused)."): + return - if self.__check_for_reset(): - return + # loop breaks to here when the last image splits + self.gui_changes_on_reset() - # check for skip/undo split: - if self.split_image_number != pause_split_image_number: - break + def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_array: list[bool]): + """ + Wait until the similarity threshold is met. - # calculate similarity for reset image - capture = self.__get_capture_for_comparison() - if self.__reset_if_should(capture): - send_command(self, "reset") - self.reset() + Returns True if the loop was interrupted by a reset. + """ + # Type checking + if not self.split_image: + return False + + start = time() + while True: + capture = self.__get_capture_for_comparison() + + if self.__reset_if_should(capture): + return True + + similarity = self.split_image.compare_with_capture(self, capture) + + # Show live similarity + self.table_current_image_live_label.setText(f"{similarity:.2f}") + + # if the similarity becomes higher than highest similarity, set it as such. + if similarity > self.highest_similarity: + self.highest_similarity = similarity + + # show live highest similarity if the checkbox is checked + self.table_current_image_highest_label.setText(f"{self.highest_similarity:.2f}") + + # If its the last split image and last loop number, disable the next image button + # If its the first split image, disable the undo split and previous image buttons + self.next_image_button.setEnabled(self.split_image_number != number_of_split_images - 1) + self.previous_image_button.setEnabled(self.split_image_number != 0) + if not self.is_auto_controlled: + # If its the last non-dummy split image and last loop number, disable the skip split button + self.skip_split_button.setEnabled(dummy_splits_array[self.split_image_number:].count(False) > 1) + self.undo_split_button.setEnabled(self.split_image_number != 0) + QApplication.processEvents() + + # Limit the number of time the comparison runs to reduce cpu usage + # Use a time delta to have a consistant check interval + frame_interval: float = 1 / self.settings_dict["fps_limit"] + wait_delta = int(frame_interval - (time() - start) % frame_interval) + + # if the b flag is set, let similarity go above threshold first, + # then split on similarity below threshold. + # if no b flag, just split when similarity goes above threshold. + if not self.waiting_for_split_delay: + if similarity >= self.split_image.get_similarity_threshold(self): + if not self.split_image.check_flag(BELOW_FLAG): + break + if not self.split_below_threshold: + self.split_below_threshold = True + QTest.qWait(wait_delta) continue - QTest.qWait(1) - # loop breaks to here when the last image splits - self.gui_changes_on_reset() + elif ( # pylint: disable=confusing-consecutive-elif + self.split_image.check_flag(BELOW_FLAG) and self.split_below_threshold): + self.split_below_threshold = False + break + + QTest.qWait(wait_delta) + + def __pause_loop(self, stop_time: float, message: str): + """ + Wait for a certain time and show the timer to the user. + Can be stopped early if the current split goes past the one when the loop started. + + Returns True if the loop was interrupted by a reset. + """ + if stop_time <= 0: + return False + start_time = time() + # Set a "pause" split image number. + # This is done so that it can detect if user hit split/undo split while paused. + pause_split_image_number = self.split_image_number + while True: + # Calculate similarity for reset image + if self.__reset_if_should(self.__get_capture_for_comparison()): + return True + + time_delta = time() - start_time + if ( + # Check for end of the pause/delay + time_delta >= stop_time + # Check for skip split / next image: + or self.split_image_number > pause_split_image_number + ): + break + + self.current_split_image.setText(f"{message} {seconds_remaining_text(stop_time - time_delta)}") + + QTest.qWait(1) + return False def gui_changes_on_start(self): self.timer_start_image.stop() @@ -724,6 +725,9 @@ def gui_changes_on_reset(self): self.table_current_image_live_label.setText("-") self.table_current_image_highest_label.setText("-") self.table_current_image_threshold_label.setText("-") + self.table_reset_image_live_label.setText("-") + self.table_reset_image_highest_label.setText("-") + self.table_reset_image_threshold_label.setText("-") self.browse_button.setEnabled(True) self.reload_start_image_button.setEnabled(True) self.previous_image_button.setEnabled(False) @@ -742,7 +746,7 @@ def gui_changes_on_reset(self): self.skip_split_button.setEnabled(False) QApplication.processEvents() - self.load_start_image(False, False) + self.load_start_image_signal[bool, bool].emit(False, False) def __get_capture_for_comparison(self): """ @@ -765,23 +769,31 @@ def __get_capture_for_comparison(self): self.settings_dict["force_print_window"]) return None if capture is None else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) - def __reset_if_should(self, capture: Optional[cv2.ndarray]): + def __reset_if_should(self, capture: cv2.ndarray | None): """ Check if we should reset, resets if it's the case, and returns the result """ - if not self.reset_image: - return False + if self.reset_image: + similarity = self.reset_image.compare_with_capture(self, capture) + threshold = self.reset_image.get_similarity_threshold(self) - reset_similarity = self.reset_image.compare_with_capture(self, capture) - should_reset = reset_similarity >= self.reset_image.get_similarity_threshold(self) \ - and time() - self.run_start_time > self.reset_image.get_pause_time(self) + if similarity > self.reset_highest_similarity: + self.reset_highest_similarity = similarity - if should_reset: - send_command(self, "reset") - self.reset() - return should_reset + self.table_reset_image_live_label.setText(f"{similarity:.2f}") + self.table_reset_image_highest_label.setText(f"{self.reset_highest_similarity:.2f}") + self.table_reset_image_threshold_label.setText(f"{threshold:.2f}") + + should_reset = similarity >= threshold \ + and time() - self.run_start_time > self.reset_image.get_pause_time(self) + + if should_reset: + send_command(self, "reset") + self.reset() + + return self.__check_for_reset_state_update_ui() - def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None): + def __update_split_image(self, specific_image: AutoSplitImage | None = None): # Splitting/skipping when there are no images left or Undoing past the first image # Start image is expected to be out of range (index 0 of 0-length array) if (not specific_image or specific_image.image_type != ImageType.START) \ @@ -791,8 +803,8 @@ def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None): # Get split image self.split_image = specific_image or self.split_images_and_loop_number[0 + self.split_image_number][0] - if self.split_image.bytes is not None: - set_ui_image(self.current_split_image, self.split_image.bytes, True) + if self.split_image.byte_array is not None: + set_ui_image(self.current_split_image, self.split_image.byte_array, True) self.current_image_file_label.setText(self.split_image.filename) self.table_current_image_threshold_label.setText(f"{self.split_image.get_similarity_threshold(self):.2f}") @@ -808,7 +820,7 @@ def __update_split_image(self, specific_image: Optional[AutoSplitImage] = None): # need to set split below threshold to false each time an image updates. self.split_below_threshold = False - def closeEvent(self, a0: Optional[QtGui.QCloseEvent] = None): + def closeEvent(self, a0: QtGui.QCloseEvent | None = None): """ Exit safely when closing the window """ @@ -829,7 +841,7 @@ def exit_program(): if a0 is None: exit_program() - if settings.have_settings_changed(self): + if user_profile.have_settings_changed(self): # Give a different warning if there was never a settings file that was loaded successfully, # and "save as" instead of "save". settings_file_name = "Untitled" \ @@ -843,7 +855,7 @@ def exit_program(): QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No | QMessageBox.StandardButton.Cancel) if warning is QMessageBox.StandardButton.Yes: - if settings.save_settings(self): + if user_profile.save_settings(self): exit_program() else: a0.ignore() diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index 8b281e6e..08d8147e 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -2,7 +2,7 @@ import os from enum import Enum -from typing import TYPE_CHECKING, Optional, Union +from typing import TYPE_CHECKING import cv2 import numpy as np @@ -34,17 +34,17 @@ class AutoSplitImage(): flags: int loops: int image_type: ImageType - bytes: Optional[cv2.ndarray] = None - mask: Optional[cv2.ndarray] = None + byte_array: cv2.ndarray | None = None + mask: cv2.ndarray | None = None # This value is internal, check for mask instead - _has_transparency: bool + _has_transparency = False # These values should be overriden by Defaults if None. Use getters instead - __delay_time: Optional[float] = None - __comparison_method: Optional[int] = None - __pause_time: Optional[float] = None - __similarity_threshold: Optional[float] = None + __delay_time: float | None = None + __comparison_method: int | None = None + __pause_time: float | None = None + __similarity_threshold: float | None = None - def get_delay_time(self, default: Union[AutoSplit, int]): + def get_delay_time(self, default: AutoSplit | int): """ Get image's delay time or fallback to the default value from spinbox """ @@ -53,7 +53,7 @@ def get_delay_time(self, default: Union[AutoSplit, int]): else default.settings_dict["default_delay_time"] return default_value if self.__delay_time is None else self.__delay_time - def __get_comparison_method(self, default: Union[AutoSplit, int]): + def __get_comparison_method(self, default: AutoSplit | int): """ Get image's comparison or fallback to the default value from combobox """ @@ -62,7 +62,7 @@ def __get_comparison_method(self, default: Union[AutoSplit, int]): else default.settings_dict["default_comparison_method"] return default_value if self.__comparison_method is None else self.__comparison_method - def get_pause_time(self, default: Union[AutoSplit, float]): + def get_pause_time(self, default: AutoSplit | float): """ Get image's pause time or fallback to the default value from spinbox """ @@ -71,9 +71,9 @@ def get_pause_time(self, default: Union[AutoSplit, float]): else default.settings_dict["default_pause_time"] return default_value if self.__pause_time is None else self.__pause_time - def get_similarity_threshold(self, default: Union[AutoSplit, float]): + def get_similarity_threshold(self, default: AutoSplit | float): """ - Get image's similarity threashold or fallback to the default value from spinbox + Get image's similarity threshold or fallback to the default value from spinbox """ default_value = default \ if isinstance(default, float) \ @@ -101,7 +101,7 @@ def __init__(self, path: str): def __read_image_bytes(self, path: str): image = cv2.imread(path, cv2.IMREAD_UNCHANGED) if image is None: - self.bytes = None + self.byte_array = None error_messages.image_type(path) return @@ -117,27 +117,27 @@ def __read_image_bytes(self, path: str): elif image.shape[2] == 3: image = cv2.cvtColor(image, cv2.COLOR_BGR2BGRA) - self.bytes = image + self.byte_array = image def check_flag(self, flag: int): return self.flags & flag == flag def compare_with_capture( self, - default: Union[AutoSplit, int], - capture: Optional[cv2.ndarray] + default: AutoSplit | int, + capture: cv2.ndarray | None ): """ Compare image with capture using image's comparison method. Falls back to combobox """ - if self.bytes is None or capture is None: + if self.byte_array is None or capture is None: return 0.0 comparison_method = self.__get_comparison_method(default) if comparison_method == 0: - return compare_l2_norm(self.bytes, capture, self.mask) + return compare_l2_norm(self.byte_array, capture, self.mask) if comparison_method == 1: - return compare_histograms(self.bytes, capture, self.mask) + return compare_histograms(self.byte_array, capture, self.mask) if comparison_method == 2: - return compare_phash(self.bytes, capture, self.mask) + return compare_phash(self.byte_array, capture, self.mask) return 0.0 diff --git a/src/capture_windows.py b/src/capture_windows.py index 3eb9e8dd..b9d2a402 100644 --- a/src/capture_windows.py +++ b/src/capture_windows.py @@ -2,8 +2,7 @@ import ctypes import ctypes.wintypes -from dataclasses import dataclass -from typing import Optional, cast +from typing import TypedDict, cast import cv2 import numpy as np @@ -18,13 +17,11 @@ PW_RENDERFULLCONTENT = 0x00000002 -@dataclass -class Region(): - def __init__(self, x: int, y: int, width: int, height: int): - self.x = x - self.y = y - self.width = width - self.height = height +class Region(TypedDict): + x: int + y: int + width: int + height: int def capture_region(hwnd: int, selection: Region, print_window: bool): @@ -48,32 +45,32 @@ def capture_region(hwnd: int, selection: Region, print_window: bool): compatible_dc = dc_object.CreateCompatibleDC() bitmap = win32ui.CreateBitmap() - bitmap.CreateCompatibleBitmap(dc_object, selection.width, selection.height) + bitmap.CreateCompatibleBitmap(dc_object, selection["width"], selection["height"]) compatible_dc.SelectObject(bitmap) - compatible_dc.BitBlt((0, 0), - (selection.width, selection.height), - dc_object, - (selection.x, selection.y), - win32con.SRCCOPY) + compatible_dc.BitBlt( + (0, 0), + (selection["width"], selection["height"]), + dc_object, + (selection["x"], selection["y"]), + win32con.SRCCOPY) except (win32ui.error, pywintypes.error): return None image = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") - image.shape = (selection.height, selection.width, 4) + image.shape = (selection["height"], selection["width"], 4) try: dc_object.DeleteDC() compatible_dc.DeleteDC() win32gui.ReleaseDC(hwnd, window_dc) win32gui.DeleteObject(bitmap.GetHandle()) - # https://github.com/kaluluosi/pywin32-stubs/issues/5 - except win32ui.error: # type: ignore + except win32ui.error: pass return image -def set_ui_image(qlabel: QLabel, image: Optional[cv2.ndarray], transparency: bool): +def set_ui_image(qlabel: QLabel, image: cv2.ndarray | None, transparency: bool): if image is None: # Clear current pixmap if image is None. But don't clear text if not qlabel.text(): diff --git a/src/compare.py b/src/compare.py index b9b31ed3..61c81c5a 100644 --- a/src/compare.py +++ b/src/compare.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import Optional +from typing import cast import cv2 import imagehash # https://github.com/JohannesBuchner/imagehash/issues/151 @@ -14,7 +14,7 @@ ranges = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] -def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): +def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | None = None): """ Compares two images by calculating their histograms, normalizing them, and then comparing them using Bhattacharyya distance. @@ -34,7 +34,7 @@ def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional return 1 - cv2.compareHist(source_hist, capture_hist, cv2.HISTCMP_BHATTACHARYYA) -def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): +def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | None = None): """ Compares two images by calculating the L2 Error (square-root of sum of squared error) @param source: Image of any given shape @@ -43,8 +43,7 @@ def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv @return: The similarity between the images as a number 0 to 1. """ - # https://github.com/microsoft/pylance-release/issues/2089 - error = cv2.norm(source, capture, cv2.NORM_L2, mask) # type: ignore + error = cv2.norm(source, capture, cv2.NORM_L2, mask) # The L2 Error is summed across all pixels, so this normalizes max_error = (source.size ** 0.5) * MAXBYTE \ @@ -56,7 +55,7 @@ def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv return 1 - (error / max_error) -def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): +def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | None = None): """ Checks if the source is located within the capture by using the sum of square differences. The mask is used to search for non-rectangular images within the capture @@ -80,7 +79,7 @@ def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[c return 1 - (min_val / max_error) -def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: Optional[cv2.ndarray] = None): +def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | None = None): """ Compares the Perceptual Hash of the two given images and returns the similarity between the two. @@ -111,7 +110,7 @@ def check_if_image_has_transparency(image: cv2.ndarray): # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) if image.shape[2] != 4: return False - mean: float = np.mean(image[:, :, 3]) + mean = cast(float, np.mean(image[:, :, 3])) if mean == 0: # Non-transparent images code path is usually faster and simpler, so let's return that return False diff --git a/src/error_messages.py b/src/error_messages.py index 006d1fc9..2eac0fcc 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -69,7 +69,8 @@ def reset_hotkey(): def old_version_settings_file(): - set_text_message("Old version settings file detected. This version allows settings files from v1.3 and above.") + set_text_message( + "Old version settings file detected. This version allows settings files in .toml format. Starting from v2.0.") def invalid_settings(): diff --git a/src/hotkeys.py b/src/hotkeys.py index b8207db0..55c8987d 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -2,10 +2,10 @@ import threading from collections.abc import Callable -from typing import TYPE_CHECKING, Literal, Optional, Union +from typing import TYPE_CHECKING, Literal -import keyboard # https://github.com/boppreh/keyboard/issues/505 -import pyautogui # https://github.com/asweigart/pyautogui/issues/645 +import keyboard +import pyautogui if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -43,7 +43,7 @@ def after_setting_hotkey(autosplit: AutoSplit): getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setEnabled(True) -def is_digit(key: Optional[str]): +def is_digit(key: str | int | None): """ Checks if `key` is a single-digit string from 0-9 """ @@ -73,7 +73,7 @@ def send_command(autosplit: AutoSplit, command: Commands): raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") -def _unhook(hotkey_callback: Optional[Callable[[], None]]): +def _unhook(hotkey_callback: Callable[[], None] | None): try: if hotkey_callback: keyboard.unhook_key(hotkey_callback) @@ -81,7 +81,7 @@ def _unhook(hotkey_callback: Optional[Callable[[], None]]): pass -def _send_hotkey(hotkey_or_scan_code: Union[int, str, None]): +def _send_hotkey(hotkey_or_scan_code: int | str | None): """ Supports sending the appropriate scan code for all the special cases """ @@ -183,7 +183,6 @@ def __read_hotkey(): if keyboard_event.event_type == keyboard.KEY_UP: break key_name = __get_key_name(keyboard_event) - print(key_name) # Ignore long presses if names and names[-1] == key_name: continue @@ -245,5 +244,4 @@ def callback(): # Try to remove the previously set hotkey if there is one. _unhook(getattr(autosplit, f"{hotkey}_hotkey")) - thread = threading.Thread(target=callback) - thread.start() + threading.Thread(target=callback).start() diff --git a/src/menu_bar.py b/src/menu_bar.py index 547d88ca..7856d874 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -8,11 +8,9 @@ from PyQt6 import QtWidgets from PyQt6.QtCore import QThread from requests.exceptions import RequestException -from simplejson.errors import JSONDecodeError import error_messages -import settings_file as settings -from capture_windows import Region +import user_profile from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa: F401 from hotkeys import set_hotkey @@ -63,7 +61,7 @@ def open_update(self): self.close() def do_not_ask_me_again_state_changed(self): - settings.set_check_for_updates_on_open( + user_profile.set_check_for_updates_on_open( self.design_window, self.do_not_ask_again_checkbox.isChecked()) @@ -87,7 +85,7 @@ def run(self): response = requests.get("https://api.github.com/repos/Toufool/Auto-Split/releases/latest") latest_version = str(response.json()["name"]).split("v")[1] self.autosplit.update_checker_widget_signal.emit(latest_version, self.check_on_open) - except (RequestException, KeyError, JSONDecodeError): + except (RequestException, KeyError): if not self.check_on_open: self.autosplit.show_error_signal.emit(error_messages.check_for_updates) @@ -98,14 +96,25 @@ def check_for_updates(autosplit: AutoSplit, check_on_open: bool = False): class __SettingsWidget(QtWidgets.QDialog, settings_ui.Ui_DialogSettings): + def __update_default_threshold(self, value: Any): + self.__set_value("default_similarity_threshold", value) + self.autosplit.table_current_image_threshold_label.setText( + f"{self.autosplit.split_image.get_similarity_threshold(self.autosplit):.2f}" + if self.autosplit.split_image + else "-") + self.autosplit.table_reset_image_threshold_label.setText( + f"{self.autosplit.reset_image.get_similarity_threshold(self.autosplit):.2f}" + if self.autosplit.reset_image + else "-") + + def __set_value(self, key: str, value: Any): + self.autosplit.settings_dict[key] = value + def __init__(self, autosplit: AutoSplit): super().__init__() self.setupUi(self) self.autosplit = autosplit - def set_value(key: str, value: Any): - autosplit.settings_dict[key] = value - # region Set initial values # Hotkeys self.split_input.setText(autosplit.settings_dict["split_hotkey"]) @@ -135,30 +144,29 @@ def set_value(key: str, value: Any): self.set_pause_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "pause")) # Capture Settings - self.fps_limit_spinbox.valueChanged.connect(lambda: set_value( + self.fps_limit_spinbox.valueChanged.connect(lambda: self.__set_value( "fps_limit", self.fps_limit_spinbox.value())) - self.live_capture_region_checkbox.stateChanged.connect(lambda: set_value( + self.live_capture_region_checkbox.stateChanged.connect(lambda: self.__set_value( "live_capture_region", self.live_capture_region_checkbox.isChecked())) - self.force_print_window_checkbox.stateChanged.connect(lambda: set_value( + self.force_print_window_checkbox.stateChanged.connect(lambda: self.__set_value( "force_print_window", self.force_print_window_checkbox.isChecked())) # Image Settings - self.default_comparison_method.currentIndexChanged.connect(lambda: set_value( + self.default_comparison_method.currentIndexChanged.connect(lambda: self.__set_value( "default_comparison_method", self.default_comparison_method.currentIndex())) - self.default_similarity_threshold_spinbox.valueChanged.connect(lambda: set_value( - "default_similarity_threshold", + self.default_similarity_threshold_spinbox.valueChanged.connect(lambda: self.__update_default_threshold( self.default_similarity_threshold_spinbox.value())) - self.default_delay_time_spinbox.valueChanged.connect(lambda: set_value( + self.default_delay_time_spinbox.valueChanged.connect(lambda: self.__set_value( "default_delay_time", self.default_delay_time_spinbox.value())) - self.default_pause_time_spinbox.valueChanged.connect(lambda: set_value( + self.default_pause_time_spinbox.valueChanged.connect(lambda: self.__set_value( "default_pause_time", self.default_pause_time_spinbox.value())) - self.loop_splits_checkbox.stateChanged.connect(lambda: set_value( + self.loop_splits_checkbox.stateChanged.connect(lambda: self.__set_value( "loop_splits", self.loop_splits_checkbox.isChecked())) # endregion @@ -174,7 +182,7 @@ def get_default_settings_from_ui(autosplit: AutoSplit): temp_dialog = QtWidgets.QDialog() default_settings_dialog = settings_ui.Ui_DialogSettings() default_settings_dialog.setupUi(temp_dialog) - default_settings: settings.SettingsDict = { + default_settings: user_profile.UserProfileDict = { "split_hotkey": default_settings_dialog.split_input.text(), "reset_hotkey": default_settings_dialog.reset_input.text(), "undo_split_hotkey": default_settings_dialog.undo_split_input.text(), @@ -191,11 +199,12 @@ def get_default_settings_from_ui(autosplit: AutoSplit): "split_image_directory": autosplit.split_image_folder_input.text(), "captured_window_title": "", - "capture_region": Region( - autosplit.x_spinbox.value(), - autosplit.y_spinbox.value(), - autosplit.width_spinbox.value(), - autosplit.height_spinbox.value()) + "capture_region": { + "x": autosplit.x_spinbox.value(), + "y": autosplit.y_spinbox.value(), + "width": autosplit.width_spinbox.value(), + "height": autosplit.height_spinbox.value(), + } } del temp_dialog return default_settings diff --git a/src/screen_region.py b/src/screen_region.py index e4eb4e79..bbfb8410 100644 --- a/src/screen_region.py +++ b/src/screen_region.py @@ -150,17 +150,17 @@ def align_region(autosplit: AutoSplit): # The new region can be defined by using the min_loc point and the best_height and best_width of the template. __set_region_values(autosplit, - left=autosplit.settings_dict["capture_region"].x + best_loc[0], - top=autosplit.settings_dict["capture_region"].y + best_loc[1], + left=autosplit.settings_dict["capture_region"]["x"] + best_loc[0], + top=autosplit.settings_dict["capture_region"]["y"] + best_loc[1], width=best_width, height=best_height) def __set_region_values(autosplit: AutoSplit, left: int, top: int, width: int, height: int): - autosplit.settings_dict["capture_region"].x = left - autosplit.settings_dict["capture_region"].y = top - autosplit.settings_dict["capture_region"].width = width - autosplit.settings_dict["capture_region"].height = height + autosplit.settings_dict["capture_region"]["x"] = left + autosplit.settings_dict["capture_region"]["y"] = top + autosplit.settings_dict["capture_region"]["width"] = width + autosplit.settings_dict["capture_region"]["height"] = height autosplit.x_spinbox.setValue(left) autosplit.y_spinbox.setValue(top) diff --git a/src/settings_file.py b/src/settings_file.py deleted file mode 100644 index c0e848be..00000000 --- a/src/settings_file.py +++ /dev/null @@ -1,234 +0,0 @@ -from __future__ import annotations - -import os -import pickle -import sys -from typing import TYPE_CHECKING, Any, TypedDict - -import keyboard # https://github.com/boppreh/keyboard/issues/505 -from PyQt6 import QtCore, QtWidgets -from win32 import win32gui - -import error_messages -from capture_windows import Region -from gen import design -from hotkeys import set_hotkey - -if TYPE_CHECKING: - from AutoSplit import AutoSplit - -# Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller -FROZEN = hasattr(sys, "frozen") -# Get the directory of either AutoSplit.exe or AutoSplit.py -auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) - - -class SettingsDict(TypedDict): - split_hotkey: str - reset_hotkey: str - undo_split_hotkey: str - skip_split_hotkey: str - pause_hotkey: str - fps_limit: int - live_capture_region: bool - force_print_window: bool - default_comparison_method: int - default_similarity_threshold: float - default_delay_time: int - default_pause_time: float - loop_splits: bool - - split_image_directory: str - captured_window_title: str - capture_region: Region - - -class RestrictedUnpickler(pickle.Unpickler): - - def find_class(self, module: str, name: str): - raise pickle.UnpicklingError(f"'{module}.{name}' is forbidden") - - -def get_save_settings_values(autosplit: AutoSplit): - return [ - autosplit.settings_dict["split_image_directory"], - autosplit.settings_dict["default_similarity_threshold"], - autosplit.settings_dict["default_comparison_method"], - autosplit.settings_dict["default_pause_time"], - autosplit.settings_dict["fps_limit"], - autosplit.settings_dict["split_hotkey"], - autosplit.settings_dict["reset_hotkey"], - autosplit.settings_dict["skip_split_hotkey"], - autosplit.settings_dict["undo_split_hotkey"], - autosplit.settings_dict["pause_hotkey"], - autosplit.settings_dict["capture_region"].x, - autosplit.settings_dict["capture_region"].y, - autosplit.settings_dict["capture_region"].width, - autosplit.settings_dict["capture_region"].height, - autosplit.settings_dict["captured_window_title"], - 0, - 0, - 1, - autosplit.settings_dict["loop_splits"], - 0, - autosplit.settings_dict["force_print_window"]] - - -def have_settings_changed(autosplit: AutoSplit): - # One small caveat in this: if you load a settings file from an old version, but dont change settings, - # the current save settings and last load settings will have different # of elements and it will ask - # the user to save changes upon closing even though there were none - return get_save_settings_values(autosplit) not in (autosplit.last_loaded_settings, autosplit.last_saved_settings) - - -def save_settings(autosplit: AutoSplit): - """ - @return: The save settings filepath. Or None if "Save Settings As" is cancelled - """ - if not autosplit.last_successfully_loaded_settings_file_path: - return save_settings_as(autosplit) - - autosplit.last_saved_settings = get_save_settings_values(autosplit) - # Save settings to a .pkl file - with open(autosplit.last_successfully_loaded_settings_file_path, "wb") as file: - pickle.dump(autosplit.last_saved_settings, file) - return autosplit.last_successfully_loaded_settings_file_path - - -def save_settings_as(autosplit: AutoSplit): - """ - @return: The save settings filepath selected. Empty if cancelled - """ - # User picks save destination - save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( - autosplit, - "Save Settings As", - autosplit.last_successfully_loaded_settings_file_path - or os.path.join(auto_split_directory, "settings.pkl"), - "PKL (*.pkl)")[0] - - # If user cancels save destination window, don't save settings - if not save_settings_file_path: - return "" - - autosplit.last_saved_settings = get_save_settings_values(autosplit) - - # Save settings to a .pkl file - with open(save_settings_file_path, "wb") as file: - pickle.dump(autosplit.last_saved_settings, file) - - autosplit.last_successfully_loaded_settings_file_path = save_settings_file_path - return save_settings_file_path - - -def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str): - try: - with open(load_settings_file_path, "rb") as file: - settings: list[Any] = RestrictedUnpickler(file).load() - settings_count = len(settings) - if settings_count < 18: - autosplit.show_error_signal.emit(error_messages.old_version_settings_file) - return False - # v1.3-1.4 settings. Add default pause_key and auto_start_on_reset_setting - if settings_count == 18: - settings.insert(9, "") - settings.insert(20, 0) - # v1.5 settings - if settings_count == 20: - settings.insert(21, False) - # v1.6.X settings - elif settings_count != 21: - autosplit.show_error_signal.emit(error_messages.invalid_settings) - return False - autosplit.last_loaded_settings = settings - except (FileNotFoundError, MemoryError, pickle.UnpicklingError): - autosplit.show_error_signal.emit(error_messages.invalid_settings) - return False - - autosplit.settings_dict["split_image_directory"] = settings[0] - autosplit.split_image_folder_input.setText(settings[0]) - autosplit.settings_dict["default_similarity_threshold"] = settings[1] - autosplit.settings_dict["default_comparison_method"] = settings[2] - autosplit.settings_dict["default_pause_time"] = settings[3] - autosplit.settings_dict["fps_limit"] = settings[4] - keyboard.unhook_all() - if not autosplit.is_auto_controlled: - set_hotkey(autosplit, "split", settings[5]) - set_hotkey(autosplit, "reset", settings[6]) - set_hotkey(autosplit, "skip_split", settings[7]) - set_hotkey(autosplit, "undo_split", settings[8]) - set_hotkey(autosplit, "pause", settings[9]) - autosplit.x_spinbox.setValue(settings[10]) - autosplit.y_spinbox.setValue(settings[11]) - autosplit.width_spinbox.setValue(settings[12]) - autosplit.height_spinbox.setValue(settings[13]) - autosplit.settings_dict["captured_window_title"] = settings[14] - autosplit.settings_dict["loop_splits"] = settings[18] - autosplit.settings_dict["force_print_window"] = settings[20] - - if autosplit.settings_dict["captured_window_title"]: - hwnd = win32gui.FindWindow(None, autosplit.settings_dict["captured_window_title"]) - if hwnd: - autosplit.hwnd = hwnd - else: - autosplit.live_image.setText( - "Reload settings after opening" - + f'\n"{autosplit.settings_dict["captured_window_title"]}"' - + "\nto automatically load Capture Region") - return True - - -def load_settings( - autosplit: AutoSplit, - from_path: str = "" -): - load_settings_file_path = from_path or QtWidgets.QFileDialog.getOpenFileName( - autosplit, - "Load Settings", - os.path.join(auto_split_directory, "settings.pkl"), - "PKL (*.pkl)")[0] - if not (load_settings_file_path and __load_settings_from_file(autosplit, load_settings_file_path)): - return - - autosplit.last_successfully_loaded_settings_file_path = load_settings_file_path - autosplit.load_start_image() - - -def load_settings_on_open(autosplit: AutoSplit): - settings_files = [ - file for file - in os.listdir(auto_split_directory) - if file.endswith(".pkl")] - - # find all .pkls in AutoSplit folder, error if there is none or more than 1 - if len(settings_files) < 1: - error_messages.no_settings_file_on_open() - autosplit.last_loaded_settings = [] - return - if len(settings_files) > 1: - error_messages.too_many_settings_files_on_open() - autosplit.last_loaded_settings = [] - return - load_settings(autosplit, os.path.join(auto_split_directory, settings_files[0])) - - -def load_check_for_updates_on_open(autosplit: AutoSplit): - """ - Retrieve the "Check For Updates On Open" QSettings and set the checkbox state - These are only global settings values. They are not *pkl settings values. - """ - value = QtCore \ - .QSettings("AutoSplit", "Check For Updates On Open") \ - .value("check_for_updates_on_open", True, type=bool) - autosplit.action_check_for_updates_on_open.setChecked(value) - - -def set_check_for_updates_on_open(design_window: design.Ui_MainWindow, value: bool): - """ - Sets the "Check For Updates On Open" QSettings value and the checkbox state - """ - - design_window.action_check_for_updates_on_open.setChecked(value) - QtCore \ - .QSettings("AutoSplit", "Check For Updates On Open") \ - .setValue("check_for_updates_on_open", value) diff --git a/src/split_parser.py b/src/split_parser.py index ef84beeb..b43208cc 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -34,7 +34,7 @@ def __value_from_filename( def threshold_from_filename(filename: str): """ Retrieve the threshold from the filename, if there is no threshold or the threshold - doesn't meet the requirements of being between 0.0 and 1.0, then None is returned. + doesn't meet the requirements of being [0, 1], then None is returned. @param filename: String containing the file's name @return: A valid threshold, if not then None @@ -45,13 +45,13 @@ def threshold_from_filename(filename: str): value = __value_from_filename(filename, "()", -1.0) # Check to make sure if it is a valid threshold - return value if 0.0 < value < 1.0 else None + return value if 0.0 <= value <= 1.0 else None def pause_from_filename(filename: str): """ Retrieve the pause time from the filename, if there is no pause time or the pause time - isn't a valid number, then None is returned + isn't a valid positive number or 0, then None is returned. @param filename: String containing the file's name @return: A valid pause time, if not then None @@ -68,15 +68,15 @@ def pause_from_filename(filename: str): def delay_time_from_filename(filename: str): """ Retrieve the delay time from the filename, if there is no delay time or the delay time - isn't a valid number, then 0 is returned + isn't a valid positive number or 0 number, then None is returned. @param filename: String containing the file's name - @return: A valid delay time, if not then 0 + @return: A valid delay time, if not then none """ # Check to make sure there is a valid delay time between brackets # of the filename - value = __value_from_filename(filename, "##", 0) + value = __value_from_filename(filename, "##", -1) # Delay times should always be positive or zero return value if value >= 0 else None @@ -101,11 +101,11 @@ def loop_from_filename(filename: str): def comparison_method_from_filename(filename: str): """ - Retrieve the number of loops from filename, if there is no loop number or the loop number isn't valid, - then 1 is returned. + Retrieve the comparison method index from filename, if there is no comparison method or the index isn't valid, + then None is returned. @param filename: String containing the file's name - @return: A valid loop number, if not then 1 + @return: A valid comparison method index, if not then none """ # Check to make sure there is a valid delay time between brackets @@ -138,8 +138,8 @@ def flags_from_filename(filename: str): flags = 0x00 - for character in flags_str: - character = character.upper() + for flag_str in flags_str: + character = flag_str.upper() if character == "D": flags |= DUMMY_FLAG elif character == "B": @@ -187,7 +187,7 @@ def parse_and_validate_images(autosplit: AutoSplit): # according to all of the settings selected by the user. for image in autosplit.split_images: # Test for image without transparency - if image.bytes is None: + if image.byte_array is None: autosplit.gui_changes_on_reset() return False diff --git a/src/user_profile.py b/src/user_profile.py new file mode 100644 index 00000000..f44ddca1 --- /dev/null +++ b/src/user_profile.py @@ -0,0 +1,209 @@ +from __future__ import annotations + +import os +import sys +from typing import TYPE_CHECKING, TypedDict, cast + +import keyboard +import toml +from PyQt6 import QtCore, QtWidgets +from win32 import win32gui + +import error_messages +from capture_windows import Region +from gen import design +from hotkeys import set_hotkey + +if TYPE_CHECKING: + from AutoSplit import AutoSplit +# Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller +FROZEN = hasattr(sys, "frozen") +# Get the directory of either AutoSplit.exe or AutoSplit.py +auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) + + +class UserProfileDict(TypedDict): + split_hotkey: str + reset_hotkey: str + undo_split_hotkey: str + skip_split_hotkey: str + pause_hotkey: str + fps_limit: int + live_capture_region: bool + force_print_window: bool + default_comparison_method: int + default_similarity_threshold: float + default_delay_time: int + default_pause_time: float + loop_splits: bool + + split_image_directory: str + captured_window_title: str + capture_region: Region + + +DEFAULT_PROFILE = UserProfileDict( + split_hotkey="", + reset_hotkey="", + undo_split_hotkey="", + skip_split_hotkey="", + pause_hotkey="", + fps_limit=60, + live_capture_region=True, + force_print_window=False, + default_comparison_method=0, + default_similarity_threshold=0.95, + default_delay_time=0, + default_pause_time=10, + loop_splits=False, + split_image_directory="", + captured_window_title="", + capture_region=Region(x=0, y=0, width=1, height=1), +) + + +def have_settings_changed(autosplit: AutoSplit): + return autosplit.settings_dict not in (autosplit.last_loaded_settings, autosplit.last_saved_settings) + + +def save_settings(autosplit: AutoSplit): + """ + @return: The save settings filepath. Or None if "Save Settings As" is cancelled + """ + if not autosplit.last_successfully_loaded_settings_file_path: + return save_settings_as(autosplit) + + autosplit.last_saved_settings = autosplit.settings_dict + # Save settings to a .toml file + with open(autosplit.last_successfully_loaded_settings_file_path, "w", encoding="utf-8") as file: + toml.dump(autosplit.last_saved_settings, file) + return autosplit.last_successfully_loaded_settings_file_path + + +def save_settings_as(autosplit: AutoSplit): + """ + @return: The save settings filepath selected. Empty if cancelled + """ + # User picks save destination + save_settings_file_path = QtWidgets.QFileDialog.getSaveFileName( + autosplit, + "Save Settings As", + autosplit.last_successfully_loaded_settings_file_path + or os.path.join(auto_split_directory, "settings.toml"), + "TOML (*.toml)")[0] + + # If user cancels save destination window, don't save settings + if not save_settings_file_path: + return "" + + autosplit.last_saved_settings = autosplit.settings_dict + + # Save settings to a .toml file + with open(save_settings_file_path, "w", encoding="utf-8") as file: + toml.dump(autosplit.last_saved_settings, file) + + autosplit.last_successfully_loaded_settings_file_path = save_settings_file_path + return save_settings_file_path + + +def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str): + if load_settings_file_path.endswith(".pkl"): + autosplit.show_error_signal.emit(error_messages.old_version_settings_file) + return False + try: + with open(load_settings_file_path, "r", encoding="utf-8") as file: + # Casting here just so we can build an actual UserProfileDict once we're done validating + # Fallback to default settings if some are missing from the file. This happens when new settings are added. + loaded_settings = cast(UserProfileDict, { + **DEFAULT_PROFILE, + **toml.load(file), + }) + # TODO: Data Validation / fallbacks ? + autosplit.settings_dict = UserProfileDict(**loaded_settings) + autosplit.last_loaded_settings = autosplit.settings_dict + + autosplit.x_spinbox.setValue(autosplit.settings_dict["capture_region"]["x"]) + autosplit.y_spinbox.setValue(autosplit.settings_dict["capture_region"]["y"]) + autosplit.width_spinbox.setValue(autosplit.settings_dict["capture_region"]["width"]) + autosplit.height_spinbox.setValue(autosplit.settings_dict["capture_region"]["height"]) + except (FileNotFoundError, MemoryError, TypeError, toml.TomlDecodeError): + autosplit.show_error_signal.emit(error_messages.invalid_settings) + return False + + autosplit.split_image_folder_input.setText(autosplit.settings_dict["split_image_directory"]) + keyboard.unhook_all() + if not autosplit.is_auto_controlled: + if autosplit.settings_dict["split_hotkey"]: + set_hotkey(autosplit, "split", autosplit.settings_dict["split_hotkey"]) + if autosplit.settings_dict["reset_hotkey"]: + set_hotkey(autosplit, "reset", autosplit.settings_dict["reset_hotkey"]) + if autosplit.settings_dict["skip_split_hotkey"]: + set_hotkey(autosplit, "skip_split", autosplit.settings_dict["skip_split_hotkey"]) + if autosplit.settings_dict["undo_split_hotkey"]: + set_hotkey(autosplit, "undo_split", autosplit.settings_dict["undo_split_hotkey"]) + if autosplit.settings_dict["pause_hotkey"]: + set_hotkey(autosplit, "pause", autosplit.settings_dict["pause_hotkey"]) + + if autosplit.settings_dict["captured_window_title"]: + hwnd = win32gui.FindWindow(None, autosplit.settings_dict["captured_window_title"]) + if hwnd: + autosplit.hwnd = hwnd + else: + autosplit.live_image.setText("Reload settings after opening" + + f'\n"{autosplit.settings_dict["captured_window_title"]}"' + + "\nto automatically load Capture Region") + return True + + +def load_settings( + autosplit: AutoSplit, + from_path: str = "" +): + load_settings_file_path = from_path or QtWidgets.QFileDialog.getOpenFileName( + autosplit, + "Load Profile", + os.path.join(auto_split_directory, "settings.toml"), + "TOML (*.toml)")[0] + if not (load_settings_file_path and __load_settings_from_file(autosplit, load_settings_file_path)): + return + + autosplit.last_successfully_loaded_settings_file_path = load_settings_file_path + autosplit.load_start_image_signal.emit() + + +def load_settings_on_open(autosplit: AutoSplit): + settings_files = [ + file for file + in os.listdir(auto_split_directory) + if file.endswith(".toml")] + + # find all .tomls in AutoSplit folder, error if there is none or more than 1 + if len(settings_files) < 1: + error_messages.no_settings_file_on_open() + return + if len(settings_files) > 1: + error_messages.too_many_settings_files_on_open() + return + load_settings(autosplit, os.path.join(auto_split_directory, settings_files[0])) + + +def load_check_for_updates_on_open(autosplit: AutoSplit): + """ + Retrieve the "Check For Updates On Open" QSettings and set the checkbox state + These are only global settings values. They are not *toml settings values. + """ + value = QtCore \ + .QSettings("AutoSplit", "Check For Updates On Open") \ + .value("check_for_updates_on_open", True, type=bool) + autosplit.action_check_for_updates_on_open.setChecked(value) + + +def set_check_for_updates_on_open(design_window: design.Ui_MainWindow, value: bool): + """ + Sets the "Check For Updates On Open" QSettings value and the checkbox state + """ + + design_window.action_check_for_updates_on_open.setChecked(value) + QtCore \ + .QSettings("AutoSplit", "Check For Updates On Open") \ + .setValue("check_for_updates_on_open", value) diff --git a/typings/PyInstaller/utils/hooks/__init__.pyi b/typings/PyInstaller/utils/hooks/__init__.pyi index 2e09bc15..c89940ed 100644 --- a/typings/PyInstaller/utils/hooks/__init__.pyi +++ b/typings/PyInstaller/utils/hooks/__init__.pyi @@ -1,7 +1,8 @@ """ # noqa: Y021 This type stub file was generated by pyright. """ -from typing import Any, Callable, Literal, Optional, Union +from collections.abc import Callable +from typing import Any, Literal logger = ... PY_IGNORE_EXTENSIONS: set @@ -24,19 +25,19 @@ def exec_script_rc(script_filename, *args, env=...): ... -def eval_statement(statement) -> Union[Any, Literal[""]]: +def eval_statement(statement) -> Any | Literal[""]: ... -def eval_script(scriptfilename, *args, env=...) -> Union[Any, Literal[""]]: +def eval_script(scriptfilename, *args, env=...) -> Any | Literal[""]: ... -def get_pyextension_imports(modname) -> Union[Any, list]: +def get_pyextension_imports(modname) -> Any | list: ... -def get_homebrew_path(formula=...) -> Optional[str]: +def get_homebrew_path(formula=...) -> str | None: ... @@ -76,7 +77,7 @@ def get_package_paths(package) -> tuple[str, str]: ... -def collect_submodules(package: str, filter: Optional[Callable[[str], bool]] = ...) -> list[str]: +def collect_submodules(package: str, filter: Callable[[str], bool] | None = ...) -> list[str]: ... @@ -87,11 +88,12 @@ def is_module_or_submodule(name, mod_or_submod): PY_DYLIB_PATTERNS: str -def collect_dynamic_libs(package: str, destdir: Optional[str] = ...) -> list[tuple[str, str]]: +def collect_dynamic_libs(package: str, destdir: str | None = ...) -> list[tuple[str, str]]: ... -def collect_data_files(package, include_py_files=..., subdir=..., excludes=..., includes=...) -> list[tuple[str, str]]: +def collect_data_files(package: str, include_py_files: bool = ..., subdir: str = ..., + excludes: list[str] = ..., includes: list[str] = ...) -> list[tuple[str, str]]: ... @@ -103,7 +105,7 @@ def copy_metadata(package_name, recursive=...) -> list: ... -def get_installer(module) -> Optional[str]: +def get_installer(module) -> str | None: ... diff --git a/typings/cv2-stubs/Error.pyi b/typings/cv2-stubs/Error.pyi new file mode 100644 index 00000000..f3cc4e03 --- /dev/null +++ b/typings/cv2-stubs/Error.pyi @@ -0,0 +1,110 @@ +BadAlign = -21 +BAD_ALIGN = -21 +BadAlphaChannel = -18 +BAD_ALPHA_CHANNEL = -18 +BadCOI = -24 +BAD_COI = -24 +BadCallBack = -22 +BAD_CALL_BACK = -22 +BadDataPtr = -12 +BAD_DATA_PTR = -12 +BadDepth = -17 +BAD_DEPTH = -17 +BadImageSize = -10 +BAD_IMAGE_SIZE = -10 +BadModelOrChSeq = -14 +BAD_MODEL_OR_CH_SEQ = -14 +BadNumChannel1U = -16 +BAD_NUM_CHANNEL1U = -16 +BadNumChannels = -15 +BAD_NUM_CHANNELS = -15 +BadOffset = -11 +BAD_OFFSET = -11 +BadOrder = -19 +BAD_ORDER = -19 +BadOrigin = -20 +BAD_ORIGIN = -20 +BadROISize = -25 +BAD_ROISIZE = -25 +BadStep = -13 +BAD_STEP = -13 +BadTileSize = -23 +BAD_TILE_SIZE = -23 +GpuApiCallError = -217 +GPU_API_CALL_ERROR = -217 +GpuNotSupported = -216 +GPU_NOT_SUPPORTED = -216 +HeaderIsNull = -9 +HEADER_IS_NULL = -9 +MaskIsTiled = -26 +MASK_IS_TILED = -26 +OpenCLApiCallError = -220 +OPEN_CLAPI_CALL_ERROR = -220 +OpenCLDoubleNotSupported = -221 +OPEN_CLDOUBLE_NOT_SUPPORTED = -221 +OpenCLInitError = -222 +OPEN_CLINIT_ERROR = -222 +OpenCLNoAMDBlasFft = -223 +OPEN_CLNO_AMDBLAS_FFT = -223 +OpenGlApiCallError = -219 +OPEN_GL_API_CALL_ERROR = -219 +OpenGlNotSupported = -218 +OPEN_GL_NOT_SUPPORTED = -218 +StsAssert = -215 +STS_ASSERT = -215 +StsAutoTrace = -8 +STS_AUTO_TRACE = -8 +StsBackTrace = -1 +STS_BACK_TRACE = -1 +StsBadArg = -5 +STS_BAD_ARG = -5 +StsBadFlag = -206 +STS_BAD_FLAG = -206 +StsBadFunc = -6 +STS_BAD_FUNC = -6 +StsBadMask = -208 +STS_BAD_MASK = -208 +StsBadMemBlock = -214 +STS_BAD_MEM_BLOCK = -214 +StsBadPoint = -207 +STS_BAD_POINT = -207 +StsBadSize = -201 +STS_BAD_SIZE = -201 +StsDivByZero = -202 +STS_DIV_BY_ZERO = -202 +StsError = -2 +STS_ERROR = -2 +StsFilterOffsetErr = -31 +STS_FILTER_OFFSET_ERR = -31 +StsFilterStructContentErr = -29 +STS_FILTER_STRUCT_CONTENT_ERR = -29 +StsInplaceNotSupported = -203 +STS_INPLACE_NOT_SUPPORTED = -203 +StsInternal = -3 +STS_INTERNAL = -3 +StsKernelStructContentErr = -30 +STS_KERNEL_STRUCT_CONTENT_ERR = -30 +StsNoConv = -7 +STS_NO_CONV = -7 +StsNoMem = -4 +STS_NO_MEM = -4 +StsNotImplemented = -213 +STS_NOT_IMPLEMENTED = -213 +StsNullPtr = -27 +STS_NULL_PTR = -27 +StsObjectNotFound = -204 +STS_OBJECT_NOT_FOUND = -204 +StsOk = 0 # noqa: Y015 +STS_OK = 0 # noqa: Y015 +StsOutOfRange = -211 +STS_OUT_OF_RANGE = -211 +StsParseError = -212 +STS_PARSE_ERROR = -212 +StsUnmatchedFormats = -205 +STS_UNMATCHED_FORMATS = -205 +StsUnmatchedSizes = -209 +STS_UNMATCHED_SIZES = -209 +StsUnsupportedFormat = -210 +STS_UNSUPPORTED_FORMAT = -210 +StsVecLengthErr = -28 +STS_VEC_LENGTH_ERR = -28 diff --git a/typings/cv2-stubs/__init__.pyi b/typings/cv2-stubs/__init__.pyi index 3a682025..5bbd26ff 100644 --- a/typings/cv2-stubs/__init__.pyi +++ b/typings/cv2-stubs/__init__.pyi @@ -1,12 +1,17 @@ # Python: 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] # Library: cv2, version: 4.4.0 # Module: cv2.cv2, version: 4.4.0 -# https://github.com/microsoft/python-type-stubs/pull/112 +import builtins as _mod_builtins import typing +from dataclasses import dataclass + import cv2 as _mod_cv2 -import numpy +import cv2.Error as Error +import numpy as np + +__all__ = ["Error"] -ndarray = numpy.ndarray[int, numpy.dtype[typing.Any]] +Mat = np.ndarray[int, np.dtype[np.generic]] ACCESS_FAST: int ACCESS_MASK: int @@ -26,14 +31,10 @@ AKAZE_DESCRIPTOR_KAZE: int AKAZE_DESCRIPTOR_KAZE_UPRIGHT: int AKAZE_DESCRIPTOR_MLDB: int AKAZE_DESCRIPTOR_MLDB_UPRIGHT: int - - -def AKAZE_create(descriptor_type=..., descriptor_size=..., descriptor_channels=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=... -) -> typing.Any: +def AKAZE_create(descriptor_type=..., descriptor_size=..., descriptor_channels=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: 'AKAZE_create([, descriptor_type[, descriptor_size[, descriptor_channels[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]]) -> retval\n. @brief The AKAZE constructor\n. \n. @param descriptor_type Type of the extracted descriptor: DESCRIPTOR_KAZE,\n. DESCRIPTOR_KAZE_UPRIGHT, DESCRIPTOR_MLDB or DESCRIPTOR_MLDB_UPRIGHT.\n. @param descriptor_size Size of the descriptor in bits. 0 -\\> Full size\n. @param descriptor_channels Number of channels in the descriptor (1, 2, 3)\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' ... - AgastFeatureDetector = _mod_cv2.AgastFeatureDetector AgastFeatureDetector_AGAST_5_8: int AgastFeatureDetector_AGAST_7_12d: int @@ -41,25 +42,19 @@ AgastFeatureDetector_AGAST_7_12s: int AgastFeatureDetector_NONMAX_SUPPRESSION: int AgastFeatureDetector_OAST_9_16: int AgastFeatureDetector_THRESHOLD: int - - def AgastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...) -> typing.Any: 'AgastFeatureDetector_create([, threshold[, nonmaxSuppression[, type]]]) -> retval\n.' ... - Algorithm = _mod_cv2.Algorithm AlignExposures = _mod_cv2.AlignExposures AlignMTB = _mod_cv2.AlignMTB AsyncArray = _mod_cv2.AsyncArray BFMatcher = _mod_cv2.BFMatcher - - def BFMatcher_create(normType: int = ..., crossCheck=...) -> typing.Any: "BFMatcher_create([, normType[, crossCheck]]) -> retval\n. @brief Brute-force matcher create method.\n. @param normType One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. L1 and L2 norms are\n. preferable choices for SIFT and SURF descriptors, NORM_HAMMING should be used with ORB, BRISK and\n. BRIEF, NORM_HAMMING2 should be used with ORB when WTA_K==3 or 4 (see ORB::ORB constructor\n. description).\n. @param crossCheck If it is false, this is will be default BFMatcher behaviour when it finds the k\n. nearest neighbors for each query descriptor. If crossCheck==true, then the knnMatch() method with\n. k=1 will only return pairs (i,j) such that for i-th query descriptor the j-th descriptor in the\n. matcher's collection is the nearest and vice versa, i.e. the BFMatcher will only return consistent\n. pairs. Such technique usually produces best results with minimal number of outliers when there are\n. enough matches. This is alternative to the ratio test, used by D. Lowe in SIFT paper." ... - BORDER_CONSTANT: int BORDER_DEFAULT: int BORDER_ISOLATED: int @@ -73,13 +68,10 @@ BOWImgDescriptorExtractor = _mod_cv2.BOWImgDescriptorExtractor BOWKMeansTrainer = _mod_cv2.BOWKMeansTrainer BOWTrainer = _mod_cv2.BOWTrainer BRISK = _mod_cv2.BRISK - - def BRISK_create(thresh=..., octaves=..., patternScale=...) -> typing.Any: 'BRISK_create([, thresh[, octaves[, patternScale]]]) -> retval\n. @brief The BRISK constructor\n. \n. @param thresh AGAST detection threshold score.\n. @param octaves detection octaves. Use 0 to do single scale.\n. @param patternScale apply this scale to the pattern used for sampling the neighbourhood of a\n. keypoint.\n\n\n\nBRISK_create(radiusList, numberList[, dMax[, dMin[, indexChange]]]) -> retval\n. @brief The BRISK constructor for a custom pattern\n. \n. @param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for\n. keypoint scale 1).\n. @param numberList defines the number of sampling points on the sampling circle. Must be the same\n. size as radiusList..\n. @param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint\n. scale 1).\n. @param dMin threshold for the long pairings used for orientation determination (in pixels for\n. keypoint scale 1).\n. @param indexChange index remapping of the bits.\n\n\n\nBRISK_create(thresh, octaves, radiusList, numberList[, dMax[, dMin[, indexChange]]]) -> retval\n. @brief The BRISK constructor for a custom pattern, detection threshold and octaves\n. \n. @param thresh AGAST detection threshold score.\n. @param octaves detection octaves. Use 0 to do single scale.\n. @param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for\n. keypoint scale 1).\n. @param numberList defines the number of sampling points on the sampling circle. Must be the same\n. size as radiusList..\n. @param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint\n. scale 1).\n. @param dMin threshold for the long pairings used for orientation determination (in pixels for\n. keypoint scale 1).\n. @param indexChange index remapping of the bits.' ... - BackgroundSubtractor = _mod_cv2.BackgroundSubtractor BackgroundSubtractorKNN = _mod_cv2.BackgroundSubtractorKNN BackgroundSubtractorMOG2 = _mod_cv2.BackgroundSubtractorMOG2 @@ -830,26 +822,19 @@ CV_8UC4: int CalibrateCRF = _mod_cv2.CalibrateCRF CalibrateDebevec = _mod_cv2.CalibrateDebevec CalibrateRobertson = _mod_cv2.CalibrateRobertson - - def CamShift(probImage, window, criteria) -> typing.Any: 'CamShift(probImage, window, criteria) -> retval, window\n. @brief Finds an object center, size, and orientation.\n. \n. @param probImage Back projection of the object histogram. See calcBackProject.\n. @param window Initial search window.\n. @param criteria Stop criteria for the underlying meanShift.\n. returns\n. (in old interfaces) Number of iterations CAMSHIFT took to converge\n. The function implements the CAMSHIFT object tracking algorithm @cite Bradski98 . First, it finds an\n. object center using meanShift and then adjusts the window size and finds the optimal rotation. The\n. function returns the rotated rectangle structure that includes the object position, size, and\n. orientation. The next position of the search window can be obtained with RotatedRect::boundingRect()\n. \n. See the OpenCV sample camshiftdemo.c that tracks colored objects.\n. \n. @note\n. - (Python) A sample explaining the camshift tracking algorithm can be found at\n. opencv_source_code/samples/python/camshift.py' ... - -def Canny(image: ndarray, threshold1, threshold2, edges=..., apertureSize=..., L2gradient=...) -> typing.Any: +def Canny(image: Mat, threshold1, threshold2, edges=..., apertureSize=..., L2gradient=...) -> typing.Any: 'Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]]) -> edges\n. @brief Finds edges in an image using the Canny algorithm @cite Canny86 .\n. \n. The function finds edges in the input image and marks them in the output map edges using the\n. Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The\n. largest value is used to find initial segments of strong edges. See\n. \n. \n. @param image 8-bit input image.\n. @param edges output edge map; single channels 8-bit image, which has the same size as image .\n. @param threshold1 first threshold for the hysteresis procedure.\n. @param threshold2 second threshold for the hysteresis procedure.\n. @param apertureSize aperture size for the Sobel operator.\n. @param L2gradient a flag, indicating whether a more accurate \\f$L_2\\f$ norm\n. \\f$=\\sqrt{(dI/dx)^2 + (dI/dy)^2}\\f$ should be used to calculate the image gradient magnitude (\n. L2gradient=true ), or whether the default \\f$L_1\\f$ norm \\f$=|dI/dx|+|dI/dy|\\f$ is enough (\n. L2gradient=false ).\n\n\n\nCanny(dx, dy, threshold1, threshold2[, edges[, L2gradient]]) -> edges\n. \\overload\n. \n. Finds edges in an image using the Canny algorithm with custom image gradient.\n. \n. @param dx 16-bit x derivative of input image (CV_16SC1 or CV_16SC3).\n. @param dy 16-bit y derivative of input image (same type as dx).\n. @param edges output edge map; single channels 8-bit image, which has the same size as image .\n. @param threshold1 first threshold for the hysteresis procedure.\n. @param threshold2 second threshold for the hysteresis procedure.\n. @param L2gradient a flag, indicating whether a more accurate \\f$L_2\\f$ norm\n. \\f$=\\sqrt{(dI/dx)^2 + (dI/dy)^2}\\f$ should be used to calculate the image gradient magnitude (\n. L2gradient=true ), or whether the default \\f$L_1\\f$ norm \\f$=|dI/dx|+|dI/dy|\\f$ is enough (\n. L2gradient=false ).' ... - CascadeClassifier = _mod_cv2.CascadeClassifier - - def CascadeClassifier_convert(oldcascade, newcascade) -> typing.Any: 'CascadeClassifier_convert(oldcascade, newcascade) -> retval\n.' ... - CirclesGridFinderParameters = _mod_cv2.CirclesGridFinderParameters CirclesGridFinderParameters_ASYMMETRIC_GRID: int CirclesGridFinderParameters_SYMMETRIC_GRID: int @@ -880,13 +865,10 @@ DISOpticalFlow = _mod_cv2.DISOpticalFlow DISOpticalFlow_PRESET_FAST: int DISOpticalFlow_PRESET_MEDIUM: int DISOpticalFlow_PRESET_ULTRAFAST: int - - def DISOpticalFlow_create(preset=...) -> typing.Any: 'DISOpticalFlow_create([, preset]) -> retval\n. @brief Creates an instance of DISOpticalFlow\n. \n. @param preset one of PRESET_ULTRAFAST, PRESET_FAST and PRESET_MEDIUM' ... - DIST_C: int DIST_FAIR: int DIST_HUBER: int @@ -913,24 +895,18 @@ DescriptorMatcher_BRUTEFORCE_HAMMINGLUT: int DescriptorMatcher_BRUTEFORCE_L1: int DescriptorMatcher_BRUTEFORCE_SL2: int DescriptorMatcher_FLANNBASED: int - - def DescriptorMatcher_create(descriptorMatcherType) -> typing.Any: 'DescriptorMatcher_create(descriptorMatcherType) -> retval\n. @brief Creates a descriptor matcher of a given type with the default parameters (using default\n. constructor).\n. \n. @param descriptorMatcherType Descriptor matcher type. Now the following matcher types are\n. supported:\n. - `BruteForce` (it uses L2 )\n. - `BruteForce-L1`\n. - `BruteForce-Hamming`\n. - `BruteForce-Hamming(2)`\n. - `FlannBased`\n\n\n\nDescriptorMatcher_create(matcherType) -> retval\n.' ... - DrawMatchesFlags_DEFAULT: int DrawMatchesFlags_DRAW_OVER_OUTIMG: int DrawMatchesFlags_DRAW_RICH_KEYPOINTS: int DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS: int - - def EMD(signature1, signature2, distType, cost=..., lowerBound=..., flow=...) -> typing.Any: 'EMD(signature1, signature2, distType[, cost[, lowerBound[, flow]]]) -> retval, lowerBound, flow\n. @brief Computes the "minimal work" distance between two weighted point configurations.\n. \n. The function computes the earth mover distance and/or a lower boundary of the distance between the\n. two weighted point configurations. One of the applications described in @cite RubnerSept98,\n. @cite Rubner2000 is multi-dimensional histogram comparison for image retrieval. EMD is a transportation\n. problem that is solved using some modification of a simplex algorithm, thus the complexity is\n. exponential in the worst case, though, on average it is much faster. In the case of a real metric\n. the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used\n. to determine roughly whether the two signatures are far enough so that they cannot relate to the\n. same object.\n. \n. @param signature1 First signature, a \\f$\\texttt{size1}\\times \\texttt{dims}+1\\f$ floating-point matrix.\n. Each row stores the point weight followed by the point coordinates. The matrix is allowed to have\n. a single column (weights only) if the user-defined cost matrix is used. The weights must be\n. non-negative and have at least one non-zero value.\n. @param signature2 Second signature of the same format as signature1 , though the number of rows\n. may be different. The total weights may be different. In this case an extra "dummy" point is added\n. to either signature1 or signature2. The weights must be non-negative and have at least one non-zero\n. value.\n. @param distType Used metric. See #DistanceTypes.\n. @param cost User-defined \\f$\\texttt{size1}\\times \\texttt{size2}\\f$ cost matrix. Also, if a cost matrix\n. is used, lower boundary lowerBound cannot be calculated because it needs a metric function.\n. @param lowerBound Optional input/output parameter: lower boundary of a distance between the two\n. signatures that is a distance between mass centers. The lower boundary may not be calculated if\n. the user-defined cost matrix is used, the total weights of point configurations are not equal, or\n. if the signatures consist of weights only (the signature matrices have a single column). You\n. **must** initialize \\*lowerBound . If the calculated distance between mass centers is greater or\n. equal to \\*lowerBound (it means that the signatures are far enough), the function does not\n. calculate EMD. In any case \\*lowerBound is set to the calculated distance between mass centers on\n. return. Thus, if you want to calculate both distance between mass centers and EMD, \\*lowerBound\n. should be set to 0.\n. @param flow Resultant \\f$\\texttt{size1} \\times \\texttt{size2}\\f$ flow matrix: \\f$\\texttt{flow}_{i,j}\\f$ is\n. a flow from \\f$i\\f$ -th point of signature1 to \\f$j\\f$ -th point of signature2 .' ... - EVENT_FLAG_ALTKEY: int EVENT_FLAG_CTRLKEY: int EVENT_FLAG_LBUTTON: int @@ -1007,13 +983,10 @@ FORMATTER_FMT_MATLAB: int FORMATTER_FMT_NUMPY: int FORMATTER_FMT_PYTHON: int FarnebackOpticalFlow = _mod_cv2.FarnebackOpticalFlow - - def FarnebackOpticalFlow_create(numLevels=..., pyrScale=..., fastPyramids=..., winSize=..., numIters=..., polyN=..., polySigma=..., flags: int = ...) -> typing.Any: 'FarnebackOpticalFlow_create([, numLevels[, pyrScale[, fastPyramids[, winSize[, numIters[, polyN[, polySigma[, flags]]]]]]]]) -> retval\n.' ... - FastFeatureDetector = _mod_cv2.FastFeatureDetector FastFeatureDetector_FAST_N: int FastFeatureDetector_NONMAX_SUPPRESSION: int @@ -1021,13 +994,10 @@ FastFeatureDetector_THRESHOLD: int FastFeatureDetector_TYPE_5_8: int FastFeatureDetector_TYPE_7_12: int FastFeatureDetector_TYPE_9_16: int - - def FastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...) -> typing.Any: 'FastFeatureDetector_create([, threshold[, nonmaxSuppression[, type]]]) -> retval\n.' ... - Feature2D = _mod_cv2.Feature2D FileNode = _mod_cv2.FileNode FileNode_EMPTY: int @@ -1060,13 +1030,10 @@ FileStorage_VALUE_EXPECTED: int FileStorage_WRITE: int FileStorage_WRITE_BASE64: int FlannBasedMatcher = _mod_cv2.FlannBasedMatcher - - def FlannBasedMatcher_create() -> typing.Any: 'FlannBasedMatcher_create() -> retval\n.' ... - Formatter_FMT_C: int Formatter_FMT_CSV: int Formatter_FMT_DEFAULT: int @@ -1085,18 +1052,14 @@ GEMM_1_T: int GEMM_2_T: int GEMM_3_T: int GFTTDetector = _mod_cv2.GFTTDetector - - def GFTTDetector_create(maxCorners=..., qualityLevel=..., minDistance=..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: 'GFTTDetector_create([, maxCorners[, qualityLevel[, minDistance[, blockSize[, useHarrisDetector[, k]]]]]]) -> retval\n. \n\n\n\nGFTTDetector_create(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize[, useHarrisDetector[, k]]) -> retval\n.' ... - -def GaussianBlur(src: ndarray, ksize, sigmaX, dts: ndarray = ..., sigmaY=..., borderType=...) -> typing.Any: +def GaussianBlur(src: Mat, ksize, sigmaX, dts: Mat = ..., sigmaY=..., borderType=...) -> typing.Any: "GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]]) -> dst\n. @brief Blurs an image using a Gaussian filter.\n. \n. The function convolves the source image with the specified Gaussian kernel. In-place filtering is\n. supported.\n. \n. @param src input image; the image can have any number of channels, which are processed\n. independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param ksize Gaussian kernel size. ksize.width and ksize.height can differ but they both must be\n. positive and odd. Or, they can be zero's and then they are computed from sigma.\n. @param sigmaX Gaussian kernel standard deviation in X direction.\n. @param sigmaY Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be\n. equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height,\n. respectively (see #getGaussianKernel for details); to fully control the result regardless of\n. possible future modifications of all this semantics, it is recommended to specify all of ksize,\n. sigmaX, and sigmaY.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. \n. @sa sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur" ... - GeneralizedHough = _mod_cv2.GeneralizedHough GeneralizedHoughBallard = _mod_cv2.GeneralizedHoughBallard GeneralizedHoughGuil = _mod_cv2.GeneralizedHoughGuil @@ -1116,50 +1079,39 @@ HOGDescriptor_DEFAULT_NLEVELS: int HOGDescriptor_DESCR_FORMAT_COL_BY_COL: int HOGDescriptor_DESCR_FORMAT_ROW_BY_ROW: int HOGDescriptor_L2Hys: int - - def HOGDescriptor_getDaimlerPeopleDetector() -> typing.Any: 'HOGDescriptor_getDaimlerPeopleDetector() -> retval\n. @brief Returns coefficients of the classifier trained for people detection (for 48x96 windows).' ... - def HOGDescriptor_getDefaultPeopleDetector() -> typing.Any: 'HOGDescriptor_getDefaultPeopleDetector() -> retval\n. @brief Returns coefficients of the classifier trained for people detection (for 64x128 windows).' ... - HOUGH_GRADIENT: int HOUGH_GRADIENT_ALT: int HOUGH_MULTI_SCALE: int HOUGH_PROBABILISTIC: int HOUGH_STANDARD: int - - -def HoughCircles(image: ndarray, method: int, dp, minDist, circles=..., param1=..., param2=..., minRadius=..., maxRadius=...) -> typing.Any: +def HoughCircles(image: Mat, method: int, dp, minDist, circles=..., param1=..., param2=..., minRadius=..., maxRadius=...) -> typing.Any: 'HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]]) -> circles\n. @brief Finds circles in a grayscale image using the Hough transform.\n. \n. The function finds circles in a grayscale image using a modification of the Hough transform.\n. \n. Example: :\n. @include snippets/imgproc_HoughLinesCircles.cpp\n. \n. @note Usually the function detects the centers of circles well. However, it may fail to find correct\n. radii. You can assist to the function by specifying the radius range ( minRadius and maxRadius ) if\n. you know it. Or, in the case of #HOUGH_GRADIENT method you may set maxRadius to a negative number\n. to return centers only without radius search, and find the correct radius using an additional procedure.\n. \n. It also helps to smooth image a bit unless it\'s already soft. For example,\n. GaussianBlur() with 7x7 kernel and 1.5x1.5 sigma or similar blurring may help.\n. \n. @param image 8-bit, single-channel, grayscale input image.\n. @param circles Output vector of found circles. Each vector is encoded as 3 or 4 element\n. floating-point vector \\f$(x, y, radius)\\f$ or \\f$(x, y, radius, votes)\\f$ .\n. @param method Detection method, see #HoughModes. The available methods are #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT.\n. @param dp Inverse ratio of the accumulator resolution to the image resolution. For example, if\n. dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has\n. half as big width and height. For #HOUGH_GRADIENT_ALT the recommended value is dp=1.5,\n. unless some small very circles need to be detected.\n. @param minDist Minimum distance between the centers of the detected circles. If the parameter is\n. too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is\n. too large, some circles may be missed.\n. @param param1 First method-specific parameter. In case of #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT,\n. it is the higher threshold of the two passed to the Canny edge detector (the lower one is twice smaller).\n. Note that #HOUGH_GRADIENT_ALT uses #Scharr algorithm to compute image derivatives, so the threshold value\n. shough normally be higher, such as 300 or normally exposed and contrasty images.\n. @param param2 Second method-specific parameter. In case of #HOUGH_GRADIENT, it is the\n. accumulator threshold for the circle centers at the detection stage. The smaller it is, the more\n. false circles may be detected. Circles, corresponding to the larger accumulator values, will be\n. returned first. In the case of #HOUGH_GRADIENT_ALT algorithm, this is the circle "perfectness" measure.\n. The closer it to 1, the better shaped circles algorithm selects. In most cases 0.9 should be fine.\n. If you want get better detection of small circles, you may decrease it to 0.85, 0.8 or even less.\n. But then also try to limit the search range [minRadius, maxRadius] to avoid many false circles.\n. @param minRadius Minimum circle radius.\n. @param maxRadius Maximum circle radius. If <= 0, uses the maximum image dimension. If < 0, #HOUGH_GRADIENT returns\n. centers without finding the radius. #HOUGH_GRADIENT_ALT always computes circle radiuses.\n. \n. @sa fitEllipse, minEnclosingCircle' ... - -def HoughLines(image: ndarray, rho, theta, threshold, lines=..., srn=..., stn=..., min_theta=..., max_theta=...) -> typing.Any: +def HoughLines(image: Mat, rho, theta, threshold, lines=..., srn=..., stn=..., min_theta=..., max_theta=...) -> typing.Any: 'HoughLines(image, rho, theta, threshold[, lines[, srn[, stn[, min_theta[, max_theta]]]]]) -> lines\n. @brief Finds lines in a binary image using the standard Hough transform.\n. \n. The function implements the standard or standard multi-scale Hough transform algorithm for line\n. detection. See for a good explanation of Hough\n. transform.\n. \n. @param image 8-bit, single-channel binary source image. The image may be modified by the function.\n. @param lines Output vector of lines. Each line is represented by a 2 or 3 element vector\n. \\f$(\\rho, \\theta)\\f$ or \\f$(\\rho, \\theta, \\textrm{votes})\\f$ . \\f$\\rho\\f$ is the distance from the coordinate origin \\f$(0,0)\\f$ (top-left corner of\n. the image). \\f$\\theta\\f$ is the line rotation angle in radians (\n. \\f$0 \\sim \\textrm{vertical line}, \\pi/2 \\sim \\textrm{horizontal line}\\f$ ).\n. \\f$\\textrm{votes}\\f$ is the value of accumulator.\n. @param rho Distance resolution of the accumulator in pixels.\n. @param theta Angle resolution of the accumulator in radians.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ ).\n. @param srn For the multi-scale Hough transform, it is a divisor for the distance resolution rho .\n. The coarse accumulator distance resolution is rho and the accurate accumulator resolution is\n. rho/srn . If both srn=0 and stn=0 , the classical Hough transform is used. Otherwise, both these\n. parameters should be positive.\n. @param stn For the multi-scale Hough transform, it is a divisor for the distance resolution theta.\n. @param min_theta For standard and multi-scale Hough transform, minimum angle to check for lines.\n. Must fall between 0 and max_theta.\n. @param max_theta For standard and multi-scale Hough transform, maximum angle to check for lines.\n. Must fall between min_theta and CV_PI.' ... - -def HoughLinesP(image: ndarray, rho, theta, threshold, lines=..., minLineLength=..., maxLineGap=...) -> typing.Any: +def HoughLinesP(image: Mat, rho, theta, threshold, lines=..., minLineLength=..., maxLineGap=...) -> typing.Any: 'HoughLinesP(image, rho, theta, threshold[, lines[, minLineLength[, maxLineGap]]]) -> lines\n. @brief Finds line segments in a binary image using the probabilistic Hough transform.\n. \n. The function implements the probabilistic Hough transform algorithm for line detection, described\n. in @cite Matas00\n. \n. See the line detection example below:\n. @include snippets/imgproc_HoughLinesP.cpp\n. This is a sample picture the function parameters have been tuned for:\n. \n. ![image](pics/building.jpg)\n. \n. And this is the output of the above program in case of the probabilistic Hough transform:\n. \n. ![image](pics/houghp.png)\n. \n. @param image 8-bit, single-channel binary source image. The image may be modified by the function.\n. @param lines Output vector of lines. Each line is represented by a 4-element vector\n. \\f$(x_1, y_1, x_2, y_2)\\f$ , where \\f$(x_1,y_1)\\f$ and \\f$(x_2, y_2)\\f$ are the ending points of each detected\n. line segment.\n. @param rho Distance resolution of the accumulator in pixels.\n. @param theta Angle resolution of the accumulator in radians.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ ).\n. @param minLineLength Minimum line length. Line segments shorter than that are rejected.\n. @param maxLineGap Maximum allowed gap between points on the same line to link them.\n. \n. @sa LineSegmentDetector' ... - def HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step, _lines=...) -> typing.Any: "HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step[, _lines]) -> _lines\n. @brief Finds lines in a set of points using the standard Hough transform.\n. \n. The function finds lines in a set of points using a modification of the Hough transform.\n. @include snippets/imgproc_HoughLinesPointSet.cpp\n. @param _point Input vector of points. Each vector must be encoded as a Point vector \\f$(x,y)\\f$. Type must be CV_32FC2 or CV_32SC2.\n. @param _lines Output vector of found lines. Each vector is encoded as a vector \\f$(votes, rho, theta)\\f$.\n. The larger the value of 'votes', the higher the reliability of the Hough line.\n. @param lines_max Max count of hough lines.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ )\n. @param min_rho Minimum Distance value of the accumulator in pixels.\n. @param max_rho Maximum Distance value of the accumulator in pixels.\n. @param rho_step Distance resolution of the accumulator in pixels.\n. @param min_theta Minimum angle value of the accumulator in radians.\n. @param max_theta Maximum angle value of the accumulator in radians.\n. @param theta_step Angle resolution of the accumulator in radians." ... - def HuMoments(m, hu=...) -> typing.Any: 'HuMoments(m[, hu]) -> hu\n. @overload' ... - IMREAD_ANYCOLOR: int IMREAD_ANYDEPTH: int IMREAD_COLOR: int @@ -1225,30 +1177,23 @@ KAZE_DIFF_CHARBONNIER: int KAZE_DIFF_PM_G1: int KAZE_DIFF_PM_G2: int KAZE_DIFF_WEICKERT: int - - def KAZE_create(extended=..., upright=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: 'KAZE_create([, extended[, upright[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]) -> retval\n. @brief The KAZE constructor\n. \n. @param extended Set to enable extraction of extended (128-byte) descriptor.\n. @param upright Set to enable use of upright descriptors (non rotation-invariant).\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' ... - KMEANS_PP_CENTERS: int KMEANS_RANDOM_CENTERS: int KMEANS_USE_INITIAL_LABELS: int KalmanFilter = _mod_cv2.KalmanFilter KeyPoint = _mod_cv2.KeyPoint - - def KeyPoint_convert(keypoints, keypointIndexes=...) -> typing.Any: 'KeyPoint_convert(keypoints[, keypointIndexes]) -> points2f\n. This method converts vector of keypoints to vector of points or the reverse, where each keypoint is\n. assigned the same size and the same orientation.\n. \n. @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB\n. @param points2f Array of (x,y) coordinates of each keypoint\n. @param keypointIndexes Array of indexes of keypoints to be converted to points. (Acts like a mask to\n. convert only specified keypoints)\n\n\n\nKeyPoint_convert(points2f[, size[, response[, octave[, class_id]]]]) -> keypoints\n. @overload\n. @param points2f Array of (x,y) coordinates of each keypoint\n. @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB\n. @param size keypoint diameter\n. @param response keypoint detector response on the keypoint (that is, strength of the keypoint)\n. @param octave pyramid octave in which the keypoint has been detected\n. @param class_id object id' ... - def KeyPoint_overlap(kp1, kp2) -> typing.Any: "KeyPoint_overlap(kp1, kp2) -> retval\n. This method computes overlap for pair of keypoints. Overlap is the ratio between area of keypoint\n. regions' intersection and area of keypoint regions' union (considering keypoint region as circle).\n. If they don't overlap, we get zero. If they coincide at same location with same size, we get 1.\n. @param kp1 First keypoint\n. @param kp2 Second keypoint" ... - LDR_SIZE: int LINE_4: int LINE_8: int @@ -1257,18 +1202,14 @@ LMEDS: int LSD_REFINE_ADV: int LSD_REFINE_NONE: int LSD_REFINE_STD: int - - -def LUT(src: ndarray, lut, dts: ndarray = ...) -> typing.Any: +def LUT(src: Mat, lut, dts: Mat = ...) -> typing.Any: 'LUT(src, lut[, dst]) -> dst\n. @brief Performs a look-up table transform of an array.\n. \n. The function LUT fills the output array with values from the look-up table. Indices of the entries\n. are taken from the input array. That is, the function processes each element of src as follows:\n. \\f[\\texttt{dst} (I) \\leftarrow \\texttt{lut(src(I) + d)}\\f]\n. where\n. \\f[d = \\fork{0}{if \\(\\texttt{src}\\) has depth \\(\\texttt{CV_8U}\\)}{128}{if \\(\\texttt{src}\\) has depth \\(\\texttt{CV_8S}\\)}\\f]\n. @param src input array of 8-bit elements.\n. @param lut look-up table of 256 elements; in case of multi-channel input array, the table should\n. either have a single channel (in this case the same table is used for all channels) or the same\n. number of channels as in the input array.\n. @param dst output array of the same size and number of channels as src, and the same depth as lut.\n. @sa convertScaleAbs, Mat::convertTo' ... - -def Laplacian(src: ndarray, ddepth, dts: ndarray = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: +def Laplacian(src: Mat, ddepth, dts: Mat = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: 'Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst\n. @brief Calculates the Laplacian of an image.\n. \n. The function calculates the Laplacian of the source image by adding up the second x and y\n. derivatives calculated using the Sobel operator:\n. \n. \\f[\\texttt{dst} = \\Delta \\texttt{src} = \\frac{\\partial^2 \\texttt{src}}{\\partial x^2} + \\frac{\\partial^2 \\texttt{src}}{\\partial y^2}\\f]\n. \n. This is done when `ksize > 1`. When `ksize == 1`, the Laplacian is computed by filtering the image\n. with the following \\f$3 \\times 3\\f$ aperture:\n. \n. \\f[\\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\\f]\n. \n. @param src Source image.\n. @param dst Destination image of the same size and the same number of channels as src .\n. @param ddepth Desired depth of the destination image.\n. @param ksize Aperture size used to compute the second-derivative filters. See #getDerivKernels for\n. details. The size must be positive and odd.\n. @param scale Optional scale factor for the computed Laplacian values. By default, no scaling is\n. applied. See #getDerivKernels for details.\n. @param delta Optional delta value that is added to the results prior to storing them in dst .\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa Sobel, Scharr' ... - LineSegmentDetector = _mod_cv2.LineSegmentDetector MARKER_CROSS: int MARKER_DIAMOND: int @@ -1302,18 +1243,14 @@ MOTION_EUCLIDEAN: int MOTION_HOMOGRAPHY: int MOTION_TRANSLATION: int MSER = _mod_cv2.MSER - - def MSER_create(_delta=..., _min_area=..., _max_area=..., _max_variation=..., _min_diversity=..., _max_evolution=..., _area_threshold=..., _min_margin=..., _edge_blur_size=...) -> typing.Any: 'MSER_create([, _delta[, _min_area[, _max_area[, _max_variation[, _min_diversity[, _max_evolution[, _area_threshold[, _min_margin[, _edge_blur_size]]]]]]]]]) -> retval\n. @brief Full constructor for %MSER detector\n. \n. @param _delta it compares \\f$(size_{i}-size_{i-delta})/size_{i-delta}\\f$\n. @param _min_area prune the area which smaller than minArea\n. @param _max_area prune the area which bigger than maxArea\n. @param _max_variation prune the area have similar size to its children\n. @param _min_diversity for color image, trace back to cut off mser with diversity less than min_diversity\n. @param _max_evolution for color image, the evolution steps\n. @param _area_threshold for color image, the area threshold to cause re-initialize\n. @param _min_margin for color image, ignore too small margin\n. @param _edge_blur_size for color image, the aperture size for edge blur' ... - def Mahalanobis(v1, v2, icovar) -> typing.Any: 'Mahalanobis(v1, v2, icovar) -> retval\n. @brief Calculates the Mahalanobis distance between two vectors.\n. \n. The function cv::Mahalanobis calculates and returns the weighted distance between two vectors:\n. \\f[d( \\texttt{vec1} , \\texttt{vec2} )= \\sqrt{\\sum_{i,j}{\\texttt{icovar(i,j)}\\cdot(\\texttt{vec1}(I)-\\texttt{vec2}(I))\\cdot(\\texttt{vec1(j)}-\\texttt{vec2(j)})} }\\f]\n. The covariance matrix may be calculated using the #calcCovarMatrix function and then inverted using\n. the invert function (preferably using the #DECOMP_SVD method, as the most accurate).\n. @param v1 first 1D input vector.\n. @param v2 second 1D input vector.\n. @param icovar inverse covariance matrix.' ... - Mat_AUTO_STEP: int Mat_CONTINUOUS_FLAG: int Mat_DEPTH_MASK: int @@ -1342,13 +1279,10 @@ OPTFLOW_USE_INITIAL_FLOW: int ORB = _mod_cv2.ORB ORB_FAST_SCORE: int ORB_HARRIS_SCORE: int - - def ORB_create(nfeatures=..., scaleFactor=..., nlevels=..., edgeThreshold=..., firstLevel=..., WTA_K=..., scoreType=..., patchSize=..., fastThreshold=...) -> typing.Any: 'ORB_create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval\n. @brief The ORB constructor\n. \n. @param nfeatures The maximum number of features to retain.\n. @param scaleFactor Pyramid decimation ratio, greater than 1. scaleFactor==2 means the classical\n. pyramid, where each next level has 4x less pixels than the previous, but such a big scale factor\n. will degrade feature matching scores dramatically. On the other hand, too close to 1 scale factor\n. will mean that to cover certain scale range you will need more pyramid levels and so the speed\n. will suffer.\n. @param nlevels The number of pyramid levels. The smallest level will have linear size equal to\n. input_image_linear_size/pow(scaleFactor, nlevels - firstLevel).\n. @param edgeThreshold This is size of the border where the features are not detected. It should\n. roughly match the patchSize parameter.\n. @param firstLevel The level of pyramid to put source image to. Previous layers are filled\n. with upscaled source image.\n. @param WTA_K The number of points that produce each element of the oriented BRIEF descriptor. The\n. default value 2 means the BRIEF where we take a random point pair and compare their brightnesses,\n. so we get 0/1 response. Other possible values are 3 and 4. For example, 3 means that we take 3\n. random points (of course, those point coordinates are random, but they are generated from the\n. pre-defined seed, so each element of BRIEF descriptor is computed deterministically from the pixel\n. rectangle), find point of maximum brightness and output index of the winner (0, 1 or 2). Such\n. output will occupy 2 bits, and therefore it will need a special variant of Hamming distance,\n. denoted as NORM_HAMMING2 (2 bits per bin). When WTA_K=4, we take 4 random points to compute each\n. bin (that will also occupy 2 bits with possible values 0, 1, 2 or 3).\n. @param scoreType The default HARRIS_SCORE means that Harris algorithm is used to rank features\n. (the score is written to KeyPoint::score and is used to retain best nfeatures features);\n. FAST_SCORE is alternative value of the parameter that produces slightly less stable keypoints,\n. but it is a little faster to compute.\n. @param patchSize size of the patch used by the oriented BRIEF descriptor. Of course, on smaller\n. pyramid layers the perceived image area covered by a feature will be larger.\n. @param fastThreshold the fast threshold' ... - PARAM_ALGORITHM: int PARAM_BOOLEAN: int PARAM_FLOAT: int @@ -1361,40 +1295,31 @@ PARAM_STRING: int PARAM_UCHAR: int PARAM_UINT64: int PARAM_UNSIGNED_INT: int - - def PCABackProject(data, mean, eigenvectors, result=...) -> typing.Any: 'PCABackProject(data, mean, eigenvectors[, result]) -> result\n. wrap PCA::backProject' ... - def PCACompute(data, mean, eigenvectors=..., maxComponents=...) -> typing.Any: 'PCACompute(data, mean[, eigenvectors[, maxComponents]]) -> mean, eigenvectors\n. wrap PCA::operator()\n\n\n\nPCACompute(data, mean, retainedVariance[, eigenvectors]) -> mean, eigenvectors\n. wrap PCA::operator()' ... - def PCACompute2(data, mean, eigenvectors=..., eigenvalues=..., maxComponents=...) -> typing.Any: 'PCACompute2(data, mean[, eigenvectors[, eigenvalues[, maxComponents]]]) -> mean, eigenvectors, eigenvalues\n. wrap PCA::operator() and add eigenvalues output parameter\n\n\n\nPCACompute2(data, mean, retainedVariance[, eigenvectors[, eigenvalues]]) -> mean, eigenvectors, eigenvalues\n. wrap PCA::operator() and add eigenvalues output parameter' ... - def PCAProject(data, mean, eigenvectors, result=...) -> typing.Any: 'PCAProject(data, mean, eigenvectors[, result]) -> result\n. wrap PCA::project' ... - PCA_DATA_AS_COL: int PCA_DATA_AS_ROW: int PCA_USE_AVG: int PROJ_SPHERICAL_EQRECT: int PROJ_SPHERICAL_ORTHO: int - - -def PSNR(src1: ndarray, src2: ndarray, R=...) -> typing.Any: +def PSNR(src1: Mat, src2: Mat, R=...) -> typing.Any: 'PSNR(src1, src2[, R]) -> retval\n. @brief Computes the Peak Signal-to-Noise Ratio (PSNR) image quality metric.\n. \n. This function calculates the Peak Signal-to-Noise Ratio (PSNR) image quality metric in decibels (dB),\n. between two input arrays src1 and src2. The arrays must have the same type.\n. \n. The PSNR is calculated as follows:\n. \n. \\f[\n. \\texttt{PSNR} = 10 \\cdot \\log_{10}{\\left( \\frac{R^2}{MSE} \\right) }\n. \\f]\n. \n. where R is the maximum integer value of depth (e.g. 255 in the case of CV_8U data)\n. and MSE is the mean squared error between the two arrays.\n. \n. @param src1 first input array.\n. @param src2 second input array of the same size as src1.\n. @param R the maximum pixel value (255 by default)' ... - Param_ALGORITHM: int Param_BOOLEAN: int Param_FLOAT: int @@ -1438,26 +1363,19 @@ RNG_UNIFORM: int ROTATE_180: int ROTATE_90_CLOCKWISE: int ROTATE_90_COUNTERCLOCKWISE: int - - -def RQDecomp3x3(src: ndarray, mtxR=..., mtxQ=..., Qx=..., Qy=..., Qz=...) -> typing.Any: +def RQDecomp3x3(src: Mat, mtxR=..., mtxQ=..., Qx=..., Qy=..., Qz=...) -> typing.Any: 'RQDecomp3x3(src[, mtxR[, mtxQ[, Qx[, Qy[, Qz]]]]]) -> retval, mtxR, mtxQ, Qx, Qy, Qz\n. @brief Computes an RQ decomposition of 3x3 matrices.\n. \n. @param src 3x3 input matrix.\n. @param mtxR Output 3x3 upper-triangular matrix.\n. @param mtxQ Output 3x3 orthogonal matrix.\n. @param Qx Optional output 3x3 rotation matrix around x-axis.\n. @param Qy Optional output 3x3 rotation matrix around y-axis.\n. @param Qz Optional output 3x3 rotation matrix around z-axis.\n. \n. The function computes a RQ decomposition using the given rotations. This function is used in\n. decomposeProjectionMatrix to decompose the left 3x3 submatrix of a projection matrix into a camera\n. and a rotation matrix.\n. \n. It optionally returns three rotation matrices, one for each axis, and the three Euler angles in\n. degrees (as the return value) that could be used in OpenGL. Note, there is always more than one\n. sequence of rotations about the three principal axes that results in the same orientation of an\n. object, e.g. see @cite Slabaugh . Returned tree rotation matrices and corresponding three Euler angles\n. are only one of the possible solutions.' ... - -def Rodrigues(src: ndarray, dts: ndarray = ..., jacobian=...) -> typing.Any: +def Rodrigues(src: Mat, dts: Mat = ..., jacobian=...) -> typing.Any: 'Rodrigues(src[, dst[, jacobian]]) -> dst, jacobian\n. @brief Converts a rotation matrix to a rotation vector or vice versa.\n. \n. @param src Input rotation vector (3x1 or 1x3) or rotation matrix (3x3).\n. @param dst Output rotation matrix (3x3) or rotation vector (3x1 or 1x3), respectively.\n. @param jacobian Optional output Jacobian matrix, 3x9 or 9x3, which is a matrix of partial\n. derivatives of the output array components with respect to the input array components.\n. \n. \\f[\\begin{array}{l} \\theta \\leftarrow norm(r) \\\\ r \\leftarrow r/ \\theta \\\\ R = \\cos(\\theta) I + (1- \\cos{\\theta} ) r r^T + \\sin(\\theta) \\vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} \\end{array}\\f]\n. \n. Inverse transformation can be also done easily, since\n. \n. \\f[\\sin ( \\theta ) \\vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} = \\frac{R - R^T}{2}\\f]\n. \n. A rotation vector is a convenient and most compact representation of a rotation matrix (since any\n. rotation matrix has just 3 degrees of freedom). The representation is used in the global 3D geometry\n. optimization procedures like @ref calibrateCamera, @ref stereoCalibrate, or @ref solvePnP .\n. \n. @note More information about the computation of the derivative of a 3D rotation matrix with respect to its exponential coordinate\n. can be found in:\n. - A Compact Formula for the Derivative of a 3-D Rotation in Exponential Coordinates, Guillermo Gallego, Anthony J. Yezzi @cite Gallego2014ACF\n. \n. @note Useful information on SE(3) and Lie Groups can be found in:\n. - A tutorial on SE(3) transformation parameterizations and on-manifold optimization, Jose-Luis Blanco @cite blanco2010tutorial\n. - Lie Groups for 2D and 3D Transformation, Ethan Eade @cite Eade17\n. - A micro Lie theory for state estimation in robotics, Joan Solà, Jérémie Deray, Dinesh Atchuthan @cite Sol2018AML' ... - SIFT = _mod_cv2.SIFT - - def SIFT_create(nfeatures=..., nOctaveLayers=..., contrastThreshold=..., edgeThreshold=..., sigma=...) -> typing.Any: 'SIFT_create([, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma]]]]]) -> retval\n. @param nfeatures The number of best features to retain. The features are ranked by their scores\n. (measured in SIFT algorithm as the local contrast)\n. \n. @param nOctaveLayers The number of layers in each octave. 3 is the value used in D. Lowe paper. The\n. number of octaves is computed automatically from the image resolution.\n. \n. @param contrastThreshold The contrast threshold used to filter out weak features in semi-uniform\n. (low-contrast) regions. The larger the threshold, the less features are produced by the detector.\n. \n. @note The contrast threshold will be divided by nOctaveLayers when the filtering is applied. When\n. nOctaveLayers is set to default and if you want to use the value used in D. Lowe paper, 0.03, set\n. this argument to 0.09.\n. \n. @param edgeThreshold The threshold used to filter out edge-like features. Note that the its meaning\n. is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are\n. filtered out (more features are retained).\n. \n. @param sigma The sigma of the Gaussian applied to the input image at the octave \\#0. If your image\n. is captured with a weak camera with soft lenses, you might want to reduce the number.' ... - SOLVELP_MULTI: int SOLVELP_SINGLE: int SOLVELP_UNBOUNDED: int @@ -1506,65 +1424,48 @@ SUBDIV2D_PTLOC_INSIDE: int SUBDIV2D_PTLOC_ON_EDGE: int SUBDIV2D_PTLOC_OUTSIDE_RECT: int SUBDIV2D_PTLOC_VERTEX: int - - -def SVBackSubst(w, u, vt, rhs, dts: ndarray = ...) -> typing.Any: +def SVBackSubst(w, u, vt, rhs, dts: Mat = ...) -> typing.Any: 'SVBackSubst(w, u, vt, rhs[, dst]) -> dst\n. wrap SVD::backSubst' ... - SVD_FULL_UV: int SVD_MODIFY_A: int SVD_NO_UV: int - - -def SVDecomp(src: ndarray, w=..., u=..., vt=..., flags: int = ...) -> typing.Any: +def SVDecomp(src: Mat, w=..., u=..., vt=..., flags: int = ...) -> typing.Any: 'SVDecomp(src[, w[, u[, vt[, flags]]]]) -> w, u, vt\n. wrap SVD::compute' ... - -def Scharr(src: ndarray, ddepth, dx, dy, dts: ndarray = ..., scale=..., delta=..., borderType=...) -> typing.Any: +def Scharr(src: Mat, ddepth, dx, dy, dts: Mat = ..., scale=..., delta=..., borderType=...) -> typing.Any: 'Scharr(src, ddepth, dx, dy[, dst[, scale[, delta[, borderType]]]]) -> dst\n. @brief Calculates the first x- or y- image derivative using Scharr operator.\n. \n. The function computes the first x- or y- spatial image derivative using the Scharr operator. The\n. call\n. \n. \\f[\\texttt{Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)}\\f]\n. \n. is equivalent to\n. \n. \\f[\\texttt{Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)} .\\f]\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src.\n. @param ddepth output image depth, see @ref filter_depths "combinations"\n. @param dx order of the derivative x.\n. @param dy order of the derivative y.\n. @param scale optional scale factor for the computed derivative values; by default, no scaling is\n. applied (see #getDerivKernels for details).\n. @param delta optional delta value that is added to the results prior to storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa cartToPolar' ... - SimpleBlobDetector = _mod_cv2.SimpleBlobDetector SimpleBlobDetector_Params = _mod_cv2.SimpleBlobDetector_Params - - def SimpleBlobDetector_create(parameters=...) -> typing.Any: 'SimpleBlobDetector_create([, parameters]) -> retval\n.' ... - -def Sobel(src: ndarray, ddepth, dx, dy, dts: ndarray = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: +def Sobel(src: Mat, ddepth, dx, dy, dts: Mat = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: 'Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst\n. @brief Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator.\n. \n. In all cases except one, the \\f$\\texttt{ksize} \\times \\texttt{ksize}\\f$ separable kernel is used to\n. calculate the derivative. When \\f$\\texttt{ksize = 1}\\f$, the \\f$3 \\times 1\\f$ or \\f$1 \\times 3\\f$\n. kernel is used (that is, no Gaussian smoothing is done). `ksize = 1` can only be used for the first\n. or the second x- or y- derivatives.\n. \n. There is also the special value `ksize = #FILTER_SCHARR (-1)` that corresponds to the \\f$3\\times3\\f$ Scharr\n. filter that may give more accurate results than the \\f$3\\times3\\f$ Sobel. The Scharr aperture is\n. \n. \\f[\\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\\f]\n. \n. for the x-derivative, or transposed for the y-derivative.\n. \n. The function calculates an image derivative by convolving the image with the appropriate kernel:\n. \n. \\f[\\texttt{dst} = \\frac{\\partial^{xorder+yorder} \\texttt{src}}{\\partial x^{xorder} \\partial y^{yorder}}\\f]\n. \n. The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less\n. resistant to the noise. Most often, the function is called with ( xorder = 1, yorder = 0, ksize = 3)\n. or ( xorder = 0, yorder = 1, ksize = 3) to calculate the first x- or y- image derivative. The first\n. case corresponds to a kernel of:\n. \n. \\f[\\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\\f]\n. \n. The second case corresponds to a kernel of:\n. \n. \\f[\\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\\f]\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src .\n. @param ddepth output image depth, see @ref filter_depths "combinations"; in the case of\n. 8-bit input images it will result in truncated derivatives.\n. @param dx order of the derivative x.\n. @param dy order of the derivative y.\n. @param ksize size of the extended Sobel kernel; it must be 1, 3, 5, or 7.\n. @param scale optional scale factor for the computed derivative values; by default, no scaling is\n. applied (see #getDerivKernels for details).\n. @param delta optional delta value that is added to the results prior to storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa Scharr, Laplacian, sepFilter2D, filter2D, GaussianBlur, cartToPolar' ... - SparseMat_HASH_BIT: int SparseMat_HASH_SCALE: int SparseMat_MAGIC_VAL: int SparseMat_MAX_DIM: int SparseOpticalFlow = _mod_cv2.SparseOpticalFlow SparsePyrLKOpticalFlow = _mod_cv2.SparsePyrLKOpticalFlow - - def SparsePyrLKOpticalFlow_create(winSize=..., maxLevel=..., crit=..., flags: int = ..., minEigThreshold=...) -> typing.Any: 'SparsePyrLKOpticalFlow_create([, winSize[, maxLevel[, crit[, flags[, minEigThreshold]]]]]) -> retval\n.' ... - StereoBM = _mod_cv2.StereoBM StereoBM_PREFILTER_NORMALIZED_RESPONSE: int StereoBM_PREFILTER_XSOBEL: int - - def StereoBM_create(numDisparities=..., blockSize=...) -> typing.Any: 'StereoBM_create([, numDisparities[, blockSize]]) -> retval\n. @brief Creates StereoBM object\n. \n. @param numDisparities the disparity search range. For each pixel algorithm will find the best\n. disparity from 0 (default minimum disparity) to numDisparities. The search range can then be\n. shifted by changing the minimum disparity.\n. @param blockSize the linear size of the blocks compared by the algorithm. The size should be odd\n. (as the block is centered at the current pixel). Larger block size implies smoother, though less\n. accurate disparity map. Smaller block size gives more detailed disparity map, but there is higher\n. chance for algorithm to find a wrong correspondence.\n. \n. The function create StereoBM object. You can then call StereoBM::compute() to compute disparity for\n. a specific stereo pair.' ... - StereoMatcher = _mod_cv2.StereoMatcher StereoMatcher_DISP_SCALE: int StereoMatcher_DISP_SHIFT: int @@ -1573,13 +1474,10 @@ StereoSGBM_MODE_HH: int StereoSGBM_MODE_HH4: int StereoSGBM_MODE_SGBM: int StereoSGBM_MODE_SGBM_3WAY: int - - def StereoSGBM_create(minDisparity=..., numDisparities=..., blockSize=..., P1=..., P2=..., disp12MaxDiff=..., preFilterCap=..., uniquenessRatio=..., speckleWindowSize=..., speckleRange=..., mode=...) -> typing.Any: 'StereoSGBM_create([, minDisparity[, numDisparities[, blockSize[, P1[, P2[, disp12MaxDiff[, preFilterCap[, uniquenessRatio[, speckleWindowSize[, speckleRange[, mode]]]]]]]]]]]) -> retval\n. @brief Creates StereoSGBM object\n. \n. @param minDisparity Minimum possible disparity value. Normally, it is zero but sometimes\n. rectification algorithms can shift images, so this parameter needs to be adjusted accordingly.\n. @param numDisparities Maximum disparity minus minimum disparity. The value is always greater than\n. zero. In the current implementation, this parameter must be divisible by 16.\n. @param blockSize Matched block size. It must be an odd number \\>=1 . Normally, it should be\n. somewhere in the 3..11 range.\n. @param P1 The first parameter controlling the disparity smoothness. See below.\n. @param P2 The second parameter controlling the disparity smoothness. The larger the values are,\n. the smoother the disparity is. P1 is the penalty on the disparity change by plus or minus 1\n. between neighbor pixels. P2 is the penalty on the disparity change by more than 1 between neighbor\n. pixels. The algorithm requires P2 \\> P1 . See stereo_match.cpp sample where some reasonably good\n. P1 and P2 values are shown (like 8\\*number_of_image_channels\\*blockSize\\*blockSize and\n. 32\\*number_of_image_channels\\*blockSize\\*blockSize , respectively).\n. @param disp12MaxDiff Maximum allowed difference (in integer pixel units) in the left-right\n. disparity check. Set it to a non-positive value to disable the check.\n. @param preFilterCap Truncation value for the prefiltered image pixels. The algorithm first\n. computes x-derivative at each pixel and clips its value by [-preFilterCap, preFilterCap] interval.\n. The result values are passed to the Birchfield-Tomasi pixel cost function.\n. @param uniquenessRatio Margin in percentage by which the best (minimum) computed cost function\n. value should "win" the second best value to consider the found match correct. Normally, a value\n. within the 5-15 range is good enough.\n. @param speckleWindowSize Maximum size of smooth disparity regions to consider their noise speckles\n. and invalidate. Set it to 0 to disable speckle filtering. Otherwise, set it somewhere in the\n. 50-200 range.\n. @param speckleRange Maximum disparity variation within each connected component. If you do speckle\n. filtering, set the parameter to a positive value, it will be implicitly multiplied by 16.\n. Normally, 1 or 2 is good enough.\n. @param mode Set it to StereoSGBM::MODE_HH to run the full-scale two-pass dynamic programming\n. algorithm. It will consume O(W\\*H\\*numDisparities) bytes, which is large for 640x480 stereo and\n. huge for HD-size pictures. By default, it is set to false .\n. \n. The first constructor initializes StereoSGBM with all the default parameters. So, you only have to\n. set StereoSGBM::numDisparities at minimum. The second constructor enables you to set each parameter\n. to a custom value.' ... - Stitcher = _mod_cv2.Stitcher Stitcher_ERR_CAMERA_PARAMS_ADJUST_FAIL: int Stitcher_ERR_HOMOGRAPHY_EST_FAIL: int @@ -1587,13 +1485,10 @@ Stitcher_ERR_NEED_MORE_IMGS: int Stitcher_OK: int Stitcher_PANORAMA: int Stitcher_SCANS: int - - def Stitcher_create(mode=...) -> typing.Any: 'Stitcher_create([, mode]) -> retval\n. @brief Creates a Stitcher configured in one of the stitching modes.\n. \n. @param mode Scenario for stitcher operation. This is usually determined by source of images\n. to stitch and their transformation. Default parameters will be chosen for operation in given\n. scenario.\n. @return Stitcher class instance.' ... - Subdiv2D = _mod_cv2.Subdiv2D Subdiv2D_NEXT_AROUND_DST: int Subdiv2D_NEXT_AROUND_LEFT: int @@ -1664,18 +1559,14 @@ UMat_MAGIC_MASK: int UMat_MAGIC_VAL: int UMat_SUBMATRIX_FLAG: int UMat_TYPE_MASK: int - - def UMat_context() -> typing.Any: 'UMat_context() -> retval\n.' ... - def UMat_queue() -> typing.Any: 'UMat_queue() -> retval\n.' ... - USAGE_ALLOCATE_DEVICE_MEMORY: int USAGE_ALLOCATE_HOST_MEMORY: int USAGE_ALLOCATE_SHARED_MEMORY: int @@ -1685,22 +1576,28 @@ VIDEOWRITER_PROP_IS_COLOR: int VIDEOWRITER_PROP_NSTRIPES: int VIDEOWRITER_PROP_QUALITY: int VariationalRefinement = _mod_cv2.VariationalRefinement - - def VariationalRefinement_create() -> typing.Any: 'VariationalRefinement_create() -> retval\n. @brief Creates an instance of VariationalRefinement' ... +class VideoCapture(): + name: str + device_id: int + def __init__(self, device_id: int | str, backend: int | None = ...): ... + def set(self, property: int, value: int): ... + def get(self, property: int) -> int: ... + def grab(self) -> bool: ... + def read(self) -> typing.Tuple[bool, Mat]: ... + def release(self): ... + def setExceptionMode(self, error: bool): ... + def getBackendName(self) -> str: ... + def isOpened(self) -> bool: ... -VideoCapture = _mod_cv2.VideoCapture VideoWriter = _mod_cv2.VideoWriter - - def VideoWriter_fourcc(c1, c2, c3, c4) -> typing.Any: 'VideoWriter_fourcc(c1, c2, c3, c4) -> retval\n. @brief Concatenates 4 chars to a fourcc code\n. \n. @return a fourcc code\n. \n. This static method constructs the fourcc code of the codec to be used in the constructor\n. VideoWriter::VideoWriter or VideoWriter::open.' ... - WARP_FILL_OUTLIERS: int WARP_INVERSE_MAP: int WARP_POLAR_LINEAR: int @@ -1790,453 +1687,362 @@ __file__: str __name__: str __package__: str __version__: str - - -def absdiff(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: +def absdiff(src1: Mat, src2: Mat, dts: Mat = ...) -> typing.Any: 'absdiff(src1, src2[, dst]) -> dst\n. @brief Calculates the per-element absolute difference between two arrays or between an array and a scalar.\n. \n. The function cv::absdiff calculates:\n. * Absolute difference between two arrays when they have the same\n. size and type:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1}(I) - \\texttt{src2}(I)|)\\f]\n. * Absolute difference between an array and a scalar when the second\n. array is constructed from Scalar or has as many elements as the\n. number of channels in `src1`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1}(I) - \\texttt{src2} |)\\f]\n. * Absolute difference between a scalar and an array when the first\n. array is constructed from Scalar or has as many elements as the\n. number of channels in `src2`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1} - \\texttt{src2}(I) |)\\f]\n. where I is a multi-dimensional index of array elements. In case of\n. multi-channel arrays, each channel is processed independently.\n. @note Saturation is not applied when the arrays have the depth CV_32S.\n. You may even get a negative value in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as input arrays.\n. @sa cv::abs(const Mat&)' ... - -def accumulate(src: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: +def accumulate(src: Mat, dts: Mat, mask: Mat = ...) -> typing.Any: 'accumulate(src, dst[, mask]) -> dst\n. @brief Adds an image to the accumulator image.\n. \n. The function adds src or some of its elements to dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. The function cv::accumulate can be used, for example, to collect statistics of a scene background\n. viewed by a still camera and for the further foreground-background segmentation.\n. \n. @param src Input image of type CV_8UC(n), CV_16UC(n), CV_32FC(n) or CV_64FC(n), where n is a positive integer.\n. @param dst %Accumulator image with the same number of channels as input image, and a depth of CV_32F or CV_64F.\n. @param mask Optional operation mask.\n. \n. @sa accumulateSquare, accumulateProduct, accumulateWeighted' ... - -def accumulateProduct(src1: ndarray, src2: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: +def accumulateProduct(src1: Mat, src2: Mat, dts: Mat, mask: Mat = ...) -> typing.Any: 'accumulateProduct(src1, src2, dst[, mask]) -> dst\n. @brief Adds the per-element product of two input images to the accumulator image.\n. \n. The function adds the product of two images or their selected regions to the accumulator dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src1} (x,y) \\cdot \\texttt{src2} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src1 First input image, 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param src2 Second input image of the same type and the same size as src1 .\n. @param dst %Accumulator image with the same number of channels as input images, 32-bit or 64-bit\n. floating-point.\n. @param mask Optional operation mask.\n. \n. @sa accumulate, accumulateSquare, accumulateWeighted' ... - -def accumulateSquare(src: ndarray, dts: ndarray, mask: ndarray = ...) -> typing.Any: +def accumulateSquare(src: Mat, dts: Mat, mask: Mat = ...) -> typing.Any: 'accumulateSquare(src, dst[, mask]) -> dst\n. @brief Adds the square of a source image to the accumulator image.\n. \n. The function adds the input image src or its selected region, raised to a power of 2, to the\n. accumulator dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src} (x,y)^2 \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src Input image as 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param dst %Accumulator image with the same number of channels as input image, 32-bit or 64-bit\n. floating-point.\n. @param mask Optional operation mask.\n. \n. @sa accumulateSquare, accumulateProduct, accumulateWeighted' ... - -def accumulateWeighted(src: ndarray, dts: ndarray, alpha, mask: ndarray = ...) -> typing.Any: +def accumulateWeighted(src: Mat, dts: Mat, alpha, mask: Mat = ...) -> typing.Any: 'accumulateWeighted(src, dst, alpha[, mask]) -> dst\n. @brief Updates a running average.\n. \n. The function calculates the weighted sum of the input image src and the accumulator dst so that dst\n. becomes a running average of a frame sequence:\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow (1- \\texttt{alpha} ) \\cdot \\texttt{dst} (x,y) + \\texttt{alpha} \\cdot \\texttt{src} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. That is, alpha regulates the update speed (how fast the accumulator "forgets" about earlier images).\n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src Input image as 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param dst %Accumulator image with the same number of channels as input image, 32-bit or 64-bit\n. floating-point.\n. @param alpha Weight of the input image.\n. @param mask Optional operation mask.\n. \n. @sa accumulate, accumulateSquare, accumulateProduct' ... - -def adaptiveThreshold(src: ndarray, maxValue, adaptiveMethod, thresholdType, blockSize, C, dts: ndarray = ...) -> typing.Any: +def adaptiveThreshold(src: Mat, maxValue, adaptiveMethod, thresholdType, blockSize, C, dts: Mat = ...) -> typing.Any: 'adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) -> dst\n. @brief Applies an adaptive threshold to an array.\n. \n. The function transforms a grayscale image to a binary image according to the formulae:\n. - **THRESH_BINARY**\n. \\f[dst(x,y) = \\fork{\\texttt{maxValue}}{if \\(src(x,y) > T(x,y)\\)}{0}{otherwise}\\f]\n. - **THRESH_BINARY_INV**\n. \\f[dst(x,y) = \\fork{0}{if \\(src(x,y) > T(x,y)\\)}{\\texttt{maxValue}}{otherwise}\\f]\n. where \\f$T(x,y)\\f$ is a threshold calculated individually for each pixel (see adaptiveMethod parameter).\n. \n. The function can process the image in-place.\n. \n. @param src Source 8-bit single-channel image.\n. @param dst Destination image of the same size and the same type as src.\n. @param maxValue Non-zero value assigned to the pixels for which the condition is satisfied\n. @param adaptiveMethod Adaptive thresholding algorithm to use, see #AdaptiveThresholdTypes.\n. The #BORDER_REPLICATE | #BORDER_ISOLATED is used to process boundaries.\n. @param thresholdType Thresholding type that must be either #THRESH_BINARY or #THRESH_BINARY_INV,\n. see #ThresholdTypes.\n. @param blockSize Size of a pixel neighborhood that is used to calculate a threshold value for the\n. pixel: 3, 5, 7, and so on.\n. @param C Constant subtracted from the mean or weighted mean (see the details below). Normally, it\n. is positive but may be zero or negative as well.\n. \n. @sa threshold, blur, GaussianBlur' ... - -def add(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ..., dtype=...) -> typing.Any: +def add(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ..., dtype=...) -> typing.Any: 'add(src1, src2[, dst[, mask[, dtype]]]) -> dst\n. @brief Calculates the per-element sum of two arrays or an array and a scalar.\n. \n. The function add calculates:\n. - Sum of two arrays when both input arrays have the same size and the same number of channels:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) + \\texttt{src2}(I)) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Sum of an array and a scalar when src2 is constructed from Scalar or has the same number of\n. elements as `src1.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) + \\texttt{src2} ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Sum of a scalar and an array when src1 is constructed from Scalar or has the same number of\n. elements as `src2.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1} + \\texttt{src2}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. where `I` is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. \n. The first function in the list above can be replaced with matrix expressions:\n. @code{.cpp}\n. dst = src1 + src2;\n. dst += src1; // equivalent to add(dst, src1, dst);\n. @endcode\n. The input arrays and the output array can all have the same or different depths. For example, you\n. can add a 16-bit unsigned array to a 8-bit signed array and store the sum as a 32-bit\n. floating-point array. Depth of the output array is determined by the dtype parameter. In the second\n. and third cases above, as well as in the first case, when src1.depth() == src2.depth(), dtype can\n. be set to the default -1. In this case, the output array will have the same depth as the input\n. array, be it src1, src2 or both.\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and number of channels as the input array(s); the\n. depth is defined by dtype or src1/src2.\n. @param mask optional operation mask - 8-bit single channel array, that specifies elements of the\n. output array to be changed.\n. @param dtype optional depth of the output array (see the discussion below).\n. @sa subtract, addWeighted, scaleAdd, Mat::convertTo' ... - -def addText(img: ndarray, text, org, nameFont, pointSize=..., color=..., weight=..., style=..., spacing=...) -> typing.Any: +def addText(img: Mat, text, org, nameFont, pointSize=..., color=..., weight=..., style=..., spacing=...) -> typing.Any: 'addText(img, text, org, nameFont[, pointSize[, color[, weight[, style[, spacing]]]]]) -> None\n. @brief Draws a text on the image.\n. \n. @param img 8-bit 3-channel image where the text should be drawn.\n. @param text Text to write on an image.\n. @param org Point(x,y) where the text should start on an image.\n. @param nameFont Name of the font. The name should match the name of a system font (such as\n. *Times*). If the font is not found, a default one is used.\n. @param pointSize Size of the font. If not specified, equal zero or negative, the point size of the\n. font is set to a system-dependent default value. Generally, this is 12 points.\n. @param color Color of the font in BGRA where A = 255 is fully transparent.\n. @param weight Font weight. Available operation flags are : cv::QtFontWeights You can also specify a positive integer for better control.\n. @param style Font style. Available operation flags are : cv::QtFontStyles\n. @param spacing Spacing between characters. It can be negative or positive.' ... - -def addWeighted(src1: ndarray, alpha, src2: ndarray, beta, gamma, dts: ndarray = ..., dtype=...) -> typing.Any: +def addWeighted(src1: Mat, alpha, src2: Mat, beta, gamma, dts: Mat = ..., dtype=...) -> typing.Any: 'addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) -> dst\n. @brief Calculates the weighted sum of two arrays.\n. \n. The function addWeighted calculates the weighted sum of two arrays as follows:\n. \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{src1} (I)* \\texttt{alpha} + \\texttt{src2} (I)* \\texttt{beta} + \\texttt{gamma} )\\f]\n. where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. The function can be replaced with a matrix expression:\n. @code{.cpp}\n. dst = src1*alpha + src2*beta + gamma;\n. @endcode\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array.\n. @param alpha weight of the first array elements.\n. @param src2 second input array of the same size and channel number as src1.\n. @param beta weight of the second array elements.\n. @param gamma scalar added to each sum.\n. @param dst output array that has the same size and number of channels as the input arrays.\n. @param dtype optional depth of the output array; when both input arrays have the same depth, dtype\n. can be set to -1, which will be equivalent to src1.depth().\n. @sa add, subtract, scaleAdd, Mat::convertTo' ... - -def applyColorMap(src: ndarray, colormap, dts: ndarray = ...) -> typing.Any: +def applyColorMap(src: Mat, colormap, dts: Mat = ...) -> typing.Any: 'applyColorMap(src, colormap[, dst]) -> dst\n. @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image.\n. \n. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.\n. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.\n. @param colormap The colormap to apply, see #ColormapTypes\n\n\n\napplyColorMap(src, userColor[, dst]) -> dst\n. @brief Applies a user colormap on a given image.\n. \n. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.\n. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.\n. @param userColor The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256' ... - def approxPolyDP(curve, epsilon, closed, approxCurve=...) -> typing.Any: 'approxPolyDP(curve, epsilon, closed[, approxCurve]) -> approxCurve\n. @brief Approximates a polygonal curve(s) with the specified precision.\n. \n. The function cv::approxPolyDP approximates a curve or a polygon with another curve/polygon with less\n. vertices so that the distance between them is less or equal to the specified precision. It uses the\n. Douglas-Peucker algorithm \n. \n. @param curve Input vector of a 2D point stored in std::vector or Mat\n. @param approxCurve Result of the approximation. The type should match the type of the input curve.\n. @param epsilon Parameter specifying the approximation accuracy. This is the maximum distance\n. between the original curve and its approximation.\n. @param closed If true, the approximated curve is closed (its first and last vertices are\n. connected). Otherwise, it is not closed.' ... - def arcLength(curve, closed) -> typing.Any: 'arcLength(curve, closed) -> retval\n. @brief Calculates a contour perimeter or a curve length.\n. \n. The function computes a curve length or a closed contour perimeter.\n. \n. @param curve Input vector of 2D points, stored in std::vector or Mat.\n. @param closed Flag indicating whether the curve is closed or not.' ... - -def arrowedLine(img: ndarray, pt1, pt2, color, thickness=..., line_type=..., shift=..., tipLength=...) -> typing.Any: +def arrowedLine(img: Mat, pt1, pt2, color, thickness=..., line_type=..., shift=..., tipLength=...) -> typing.Any: 'arrowedLine(img, pt1, pt2, color[, thickness[, line_type[, shift[, tipLength]]]]) -> img\n. @brief Draws a arrow segment pointing from the first point to the second one.\n. \n. The function cv::arrowedLine draws an arrow between pt1 and pt2 points in the image. See also #line.\n. \n. @param img Image.\n. @param pt1 The point the arrow starts from.\n. @param pt2 The point the arrow points to.\n. @param color Line color.\n. @param thickness Line thickness.\n. @param line_type Type of the line. See #LineTypes\n. @param shift Number of fractional bits in the point coordinates.\n. @param tipLength The length of the arrow tip in relation to the arrow length' ... - -def batchDistance(src1: ndarray, src2: ndarray, dtype, dist=..., nidx=..., normType: int = ..., K=..., mask: ndarray = ..., update=..., crosscheck=...) -> typing.Any: +def batchDistance(src1: Mat, src2: Mat, dtype, dist=..., nidx=..., normType: int = ..., K=..., mask: Mat = ..., update=..., crosscheck=...) -> typing.Any: 'batchDistance(src1, src2, dtype[, dist[, nidx[, normType[, K[, mask[, update[, crosscheck]]]]]]]) -> dist, nidx\n. @brief naive nearest neighbor finder\n. \n. see http://en.wikipedia.org/wiki/Nearest_neighbor_search\n. @todo document' ... - -def bilateralFilter(src: ndarray, d, sigmaColor, sigmaSpace, dts: ndarray = ..., borderType=...) -> typing.Any: +def bilateralFilter(src: Mat, d, sigmaColor, sigmaSpace, dts: Mat = ..., borderType=...) -> typing.Any: 'bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]]) -> dst\n. @brief Applies the bilateral filter to an image.\n. \n. The function applies bilateral filtering to the input image, as described in\n. http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html\n. bilateralFilter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is\n. very slow compared to most filters.\n. \n. _Sigma values_: For simplicity, you can set the 2 sigma values to be the same. If they are small (\\<\n. 10), the filter will not have much effect, whereas if they are large (\\> 150), they will have a very\n. strong effect, making the image look "cartoonish".\n. \n. _Filter size_: Large filters (d \\> 5) are very slow, so it is recommended to use d=5 for real-time\n. applications, and perhaps d=9 for offline applications that need heavy noise filtering.\n. \n. This filter does not work inplace.\n. @param src Source 8-bit or floating-point, 1-channel or 3-channel image.\n. @param dst Destination image of the same size and type as src .\n. @param d Diameter of each pixel neighborhood that is used during filtering. If it is non-positive,\n. it is computed from sigmaSpace.\n. @param sigmaColor Filter sigma in the color space. A larger value of the parameter means that\n. farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting\n. in larger areas of semi-equal color.\n. @param sigmaSpace Filter sigma in the coordinate space. A larger value of the parameter means that\n. farther pixels will influence each other as long as their colors are close enough (see sigmaColor\n. ). When d\\>0, it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is\n. proportional to sigmaSpace.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes' ... - -def bitwise_and(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: +def bitwise_and(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ...) -> typing.Any: 'bitwise_and(src1, src2[, dst[, mask]]) -> dst\n. @brief computes bitwise conjunction of the two arrays (dst = src1 & src2)\n. Calculates the per-element bit-wise conjunction of two arrays or an\n. array and a scalar.\n. \n. The function cv::bitwise_and calculates the per-element bit-wise logical conjunction for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\wedge \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\wedge \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\wedge \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the second and third cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' ... - -def bitwise_not(src: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: +def bitwise_not(src: Mat, dts: Mat = ..., mask: Mat = ...) -> typing.Any: 'bitwise_not(src[, dst[, mask]]) -> dst\n. @brief Inverts every bit of an array.\n. \n. The function cv::bitwise_not calculates per-element bit-wise inversion of the input\n. array:\n. \\f[\\texttt{dst} (I) = \\neg \\texttt{src} (I)\\f]\n. In case of a floating-point input array, its machine-specific bit\n. representation (usually IEEE754-compliant) is used for the operation. In\n. case of multi-channel arrays, each channel is processed independently.\n. @param src input array.\n. @param dst output array that has the same size and type as the input\n. array.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' ... - -def bitwise_or(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: +def bitwise_or(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ...) -> typing.Any: 'bitwise_or(src1, src2[, dst[, mask]]) -> dst\n. @brief Calculates the per-element bit-wise disjunction of two arrays or an\n. array and a scalar.\n. \n. The function cv::bitwise_or calculates the per-element bit-wise logical disjunction for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\vee \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\vee \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\vee \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the second and third cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' ... - -def bitwise_xor(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ...) -> typing.Any: +def bitwise_xor(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ...) -> typing.Any: 'bitwise_xor(src1, src2[, dst[, mask]]) -> dst\n. @brief Calculates the per-element bit-wise "exclusive or" operation on two\n. arrays or an array and a scalar.\n. \n. The function cv::bitwise_xor calculates the per-element bit-wise logical "exclusive-or"\n. operation for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\oplus \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\oplus \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\oplus \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the 2nd and 3rd cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' ... - -def blur(src: ndarray, ksize, dts: ndarray = ..., anchor=..., borderType=...) -> typing.Any: +def blur(src: Mat, ksize, dts: Mat = ..., anchor=..., borderType=...) -> typing.Any: 'blur(src, ksize[, dst[, anchor[, borderType]]]) -> dst\n. @brief Blurs an image using the normalized box filter.\n. \n. The function smooths an image using the kernel:\n. \n. \\f[\\texttt{K} = \\frac{1}{\\texttt{ksize.width*ksize.height}} \\begin{bmatrix} 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\hdotsfor{6} \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\end{bmatrix}\\f]\n. \n. The call `blur(src, dst, ksize, anchor, borderType)` is equivalent to `boxFilter(src, dst, src.type(), ksize,\n. anchor, true, borderType)`.\n. \n. @param src input image; it can have any number of channels, which are processed independently, but\n. the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param ksize blurring kernel size.\n. @param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel\n. center.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa boxFilter, bilateralFilter, GaussianBlur, medianBlur' ... - def borderInterpolate(p, len, borderType) -> typing.Any: 'borderInterpolate(p, len, borderType) -> retval\n. @brief Computes the source location of an extrapolated pixel.\n. \n. The function computes and returns the coordinate of a donor pixel corresponding to the specified\n. extrapolated pixel when using the specified extrapolation border mode. For example, if you use\n. cv::BORDER_WRAP mode in the horizontal direction, cv::BORDER_REFLECT_101 in the vertical direction and\n. want to compute value of the "virtual" pixel Point(-5, 100) in a floating-point image img , it\n. looks like:\n. @code{.cpp}\n. float val = img.at(borderInterpolate(100, img.rows, cv::BORDER_REFLECT_101),\n. borderInterpolate(-5, img.cols, cv::BORDER_WRAP));\n. @endcode\n. Normally, the function is not called directly. It is used inside filtering functions and also in\n. copyMakeBorder.\n. @param p 0-based coordinate of the extrapolated pixel along one of the axes, likely \\<0 or \\>= len\n. @param len Length of the array along the corresponding axis.\n. @param borderType Border type, one of the #BorderTypes, except for #BORDER_TRANSPARENT and\n. #BORDER_ISOLATED . When borderType==#BORDER_CONSTANT , the function always returns -1, regardless\n. of p and len.\n. \n. @sa copyMakeBorder' ... - def boundingRect(array) -> typing.Any: 'boundingRect(array) -> retval\n. @brief Calculates the up-right bounding rectangle of a point set or non-zero pixels of gray-scale image.\n. \n. The function calculates and returns the minimal up-right bounding rectangle for the specified point set or\n. non-zero pixels of gray-scale image.\n. \n. @param array Input gray-scale image or 2D point set, stored in std::vector or Mat.' ... - -def boxFilter(src: ndarray, ddepth, ksize, dts: ndarray = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: +def boxFilter(src: Mat, ddepth, ksize, dts: Mat = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: 'boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst\n. @brief Blurs an image using the box filter.\n. \n. The function smooths an image using the kernel:\n. \n. \\f[\\texttt{K} = \\alpha \\begin{bmatrix} 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\hdotsfor{6} \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[\\alpha = \\begin{cases} \\frac{1}{\\texttt{ksize.width*ksize.height}} & \\texttt{when } \\texttt{normalize=true} \\\\1 & \\texttt{otherwise}\\end{cases}\\f]\n. \n. Unnormalized box filter is useful for computing various integral characteristics over each pixel\n. neighborhood, such as covariance matrices of image derivatives (used in dense optical flow\n. algorithms, and so on). If you need to compute pixel sums over variable-size windows, use #integral.\n. \n. @param src input image.\n. @param dst output image of the same size and type as src.\n. @param ddepth the output image depth (-1 to use src.depth()).\n. @param ksize blurring kernel size.\n. @param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel\n. center.\n. @param normalize flag, specifying whether the kernel is normalized by its area or not.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa blur, bilateralFilter, GaussianBlur, medianBlur, integral' ... - def boxPoints(box, points=...) -> typing.Any: 'boxPoints(box[, points]) -> points\n. @brief Finds the four vertices of a rotated rect. Useful to draw the rotated rectangle.\n. \n. The function finds the four vertices of a rotated rectangle. This function is useful to draw the\n. rectangle. In C++, instead of using this function, you can directly use RotatedRect::points method. Please\n. visit the @ref tutorial_bounding_rotated_ellipses "tutorial on Creating Bounding rotated boxes and ellipses for contours" for more information.\n. \n. @param box The input rotated rectangle. It may be the output of\n. @param points The output array of four vertices of rectangles.' ... - -def buildOpticalFlowPyramid(img: ndarray, winSize, maxLevel, pyramid=..., withDerivatives=..., pyrBorder=..., derivBorder=..., tryReuseInputImage=...) -> typing.Any: +def buildOpticalFlowPyramid(img: Mat, winSize, maxLevel, pyramid=..., withDerivatives=..., pyrBorder=..., derivBorder=..., tryReuseInputImage=...) -> typing.Any: 'buildOpticalFlowPyramid(img, winSize, maxLevel[, pyramid[, withDerivatives[, pyrBorder[, derivBorder[, tryReuseInputImage]]]]]) -> retval, pyramid\n. @brief Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK.\n. \n. @param img 8-bit input image.\n. @param pyramid output pyramid.\n. @param winSize window size of optical flow algorithm. Must be not less than winSize argument of\n. calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels.\n. @param maxLevel 0-based maximal pyramid level number.\n. @param withDerivatives set to precompute gradients for the every pyramid level. If pyramid is\n. constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally.\n. @param pyrBorder the border mode for pyramid layers.\n. @param derivBorder the border mode for gradients.\n. @param tryReuseInputImage put ROI of input image into the pyramid if possible. You can pass false\n. to force data copying.\n. @return number of levels in constructed pyramid. Can be less than maxLevel.' ... - -def calcBackProject(images: typing.List[ndarray], channels: typing.List[int], hist, ranges: typing.List[int], scale, dts: ndarray = ...) -> typing.Any: +def calcBackProject(images: typing.List[Mat], channels: typing.List[int], hist, ranges: typing.List[int], scale, dts: Mat = ...) -> typing.Any: 'calcBackProject(images, channels, hist, ranges, scale[, dst]) -> dst\n. @overload' ... - def calcCovarMatrix(samples, mean, flags: int, covar=..., ctype=...) -> typing.Any: "calcCovarMatrix(samples, mean, flags[, covar[, ctype]]) -> covar, mean\n. @overload\n. @note use #COVAR_ROWS or #COVAR_COLS flag\n. @param samples samples stored as rows/columns of a single matrix.\n. @param covar output covariance matrix of the type ctype and square size.\n. @param mean input or output (depending on the flags) array as the average value of the input vectors.\n. @param flags operation flags as a combination of #CovarFlags\n. @param ctype type of the matrixl; it equals 'CV_64F' by default." ... - -def calcHist(images: typing.List[ndarray], channels: typing.List[int], mask: typing.Optional[ndarray], histSize: typing.List[int], ranges: typing.List[int], hist=..., accumulate=...) -> ndarray: +def calcHist(images: typing.List[Mat], channels: typing.List[int], mask: typing.Optional[Mat], histSize: typing.List[int], ranges: typing.List[int], hist=..., accumulate=...) -> Mat: 'calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) -> hist\n. @overload' ... - def calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags: int) -> typing.Any: "calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags) -> flow\n. @brief Computes a dense optical flow using the Gunnar Farneback's algorithm.\n. \n. @param prev first 8-bit single-channel input image.\n. @param next second input image of the same size and the same type as prev.\n. @param flow computed flow image that has the same size as prev and type CV_32FC2.\n. @param pyr_scale parameter, specifying the image scale (\\<1) to build pyramids for each image;\n. pyr_scale=0.5 means a classical pyramid, where each next layer is twice smaller than the previous\n. one.\n. @param levels number of pyramid layers including the initial image; levels=1 means that no extra\n. layers are created and only the original images are used.\n. @param winsize averaging window size; larger values increase the algorithm robustness to image\n. noise and give more chances for fast motion detection, but yield more blurred motion field.\n. @param iterations number of iterations the algorithm does at each pyramid level.\n. @param poly_n size of the pixel neighborhood used to find polynomial expansion in each pixel;\n. larger values mean that the image will be approximated with smoother surfaces, yielding more\n. robust algorithm and more blurred motion field, typically poly_n =5 or 7.\n. @param poly_sigma standard deviation of the Gaussian that is used to smooth derivatives used as a\n. basis for the polynomial expansion; for poly_n=5, you can set poly_sigma=1.1, for poly_n=7, a\n. good value would be poly_sigma=1.5.\n. @param flags operation flags that can be a combination of the following:\n. - **OPTFLOW_USE_INITIAL_FLOW** uses the input flow as an initial flow approximation.\n. - **OPTFLOW_FARNEBACK_GAUSSIAN** uses the Gaussian \\f$\\texttt{winsize}\\times\\texttt{winsize}\\f$\n. filter instead of a box filter of the same size for optical flow estimation; usually, this\n. option gives z more accurate flow than with a box filter, at the cost of lower speed;\n. normally, winsize for a Gaussian window should be set to a larger value to achieve the same\n. level of robustness.\n. \n. The function finds an optical flow for each prev pixel using the @cite Farneback2003 algorithm so that\n. \n. \\f[\\texttt{prev} (y,x) \\sim \\texttt{next} ( y + \\texttt{flow} (y,x)[1], x + \\texttt{flow} (y,x)[0])\\f]\n. \n. @note\n. \n. - An example using the optical flow algorithm described by Gunnar Farneback can be found at\n. opencv_source_code/samples/cpp/fback.cpp\n. - (Python) An example using the optical flow algorithm described by Gunnar Farneback can be\n. found at opencv_source_code/samples/python/opt_flow.py" ... - def calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status=..., err=..., winSize=..., maxLevel=..., criteria=..., flags: int = ..., minEigThreshold=...) -> typing.Any: "calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts[, status[, err[, winSize[, maxLevel[, criteria[, flags[, minEigThreshold]]]]]]]) -> nextPts, status, err\n. @brief Calculates an optical flow for a sparse feature set using the iterative Lucas-Kanade method with\n. pyramids.\n. \n. @param prevImg first 8-bit input image or pyramid constructed by buildOpticalFlowPyramid.\n. @param nextImg second input image or pyramid of the same size and the same type as prevImg.\n. @param prevPts vector of 2D points for which the flow needs to be found; point coordinates must be\n. single-precision floating-point numbers.\n. @param nextPts output vector of 2D points (with single-precision floating-point coordinates)\n. containing the calculated new positions of input features in the second image; when\n. OPTFLOW_USE_INITIAL_FLOW flag is passed, the vector must have the same size as in the input.\n. @param status output status vector (of unsigned chars); each element of the vector is set to 1 if\n. the flow for the corresponding features has been found, otherwise, it is set to 0.\n. @param err output vector of errors; each element of the vector is set to an error for the\n. corresponding feature, type of the error measure can be set in flags parameter; if the flow wasn't\n. found then the error is not defined (use the status parameter to find such cases).\n. @param winSize size of the search window at each pyramid level.\n. @param maxLevel 0-based maximal pyramid level number; if set to 0, pyramids are not used (single\n. level), if set to 1, two levels are used, and so on; if pyramids are passed to input then\n. algorithm will use as many levels as pyramids have but no more than maxLevel.\n. @param criteria parameter, specifying the termination criteria of the iterative search algorithm\n. (after the specified maximum number of iterations criteria.maxCount or when the search window\n. moves by less than criteria.epsilon.\n. @param flags operation flags:\n. - **OPTFLOW_USE_INITIAL_FLOW** uses initial estimations, stored in nextPts; if the flag is\n. not set, then prevPts is copied to nextPts and is considered the initial estimate.\n. - **OPTFLOW_LK_GET_MIN_EIGENVALS** use minimum eigen values as an error measure (see\n. minEigThreshold description); if the flag is not set, then L1 distance between patches\n. around the original and a moved point, divided by number of pixels in a window, is used as a\n. error measure.\n. @param minEigThreshold the algorithm calculates the minimum eigen value of a 2x2 normal matrix of\n. optical flow equations (this matrix is called a spatial gradient matrix in @cite Bouguet00), divided\n. by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding\n. feature is filtered out and its flow is not processed, so it allows to remove bad points and get a\n. performance boost.\n. \n. The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See\n. @cite Bouguet00 . The function is parallelized with the TBB library.\n. \n. @note\n. \n. - An example using the Lucas-Kanade optical flow algorithm can be found at\n. opencv_source_code/samples/cpp/lkdemo.cpp\n. - (Python) An example using the Lucas-Kanade optical flow algorithm can be found at\n. opencv_source_code/samples/python/lk_track.py\n. - (Python) An example using the Lucas-Kanade tracker for homography matching can be found at\n. opencv_source_code/samples/python/lk_homography.py" ... - def calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., flags: int = ..., criteria=...) -> typing.Any: 'calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs\n. @overload' ... - def calibrateCameraExtended(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., stdDeviationsIntrinsics=..., stdDeviationsExtrinsics=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: "calibrateCameraExtended(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors\n. @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration\n. pattern.\n. \n. @param objectPoints In the new interface it is a vector of vectors of calibration pattern points in\n. the calibration pattern coordinate space (e.g. std::vector>). The outer\n. vector contains as many elements as the number of pattern views. If the same calibration pattern\n. is shown in each view and it is fully visible, all the vectors will be the same. Although, it is\n. possible to use partially occluded patterns or even different patterns in different views. Then,\n. the vectors will be different. Although the points are 3D, they all lie in the calibration pattern's\n. XY coordinate plane (thus 0 in the Z-coordinate), if the used calibration pattern is a planar rig.\n. In the old interface all the vectors of object points from different views are concatenated\n. together.\n. @param imagePoints In the new interface it is a vector of vectors of the projections of calibration\n. pattern points (e.g. std::vector>). imagePoints.size() and\n. objectPoints.size(), and imagePoints[i].size() and objectPoints[i].size() for each i, must be equal,\n. respectively. In the old interface all the vectors of object points from different views are\n. concatenated together.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrix.\n. @param cameraMatrix Input/output 3x3 floating-point camera matrix\n. \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ . If CV\\_CALIB\\_USE\\_INTRINSIC\\_GUESS\n. and/or CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be\n. initialized before calling the function.\n. @param distCoeffs Input/output vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements.\n. @param rvecs Output vector of rotation vectors (@ref Rodrigues ) estimated for each pattern view\n. (e.g. std::vector>). That is, each i-th rotation vector together with the corresponding\n. i-th translation vector (see the next output parameter description) brings the calibration pattern\n. from the object coordinate space (in which object points are specified) to the camera coordinate\n. space. In more technical terms, the tuple of the i-th rotation and translation vector performs\n. a change of basis from object coordinate space to camera coordinate space. Due to its duality, this\n. tuple is equivalent to the position of the calibration pattern with respect to the camera coordinate\n. space.\n. @param tvecs Output vector of translation vectors estimated for each pattern view, see parameter\n. describtion above.\n. @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic\n. parameters. Order of deviations values:\n. \\f$(f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3,\n. s_4, \\tau_x, \\tau_y)\\f$ If one of parameters is not estimated, it's deviation is equals to zero.\n. @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic\n. parameters. Order of deviations values: \\f$(R_0, T_0, \\dotsc , R_{M - 1}, T_{M - 1})\\f$ where M is\n. the number of pattern views. \\f$R_i, T_i\\f$ are concatenated 1x3 vectors.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of the following values:\n. - **CALIB_USE_INTRINSIC_GUESS** cameraMatrix contains valid initial values of\n. fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image\n. center ( imageSize is used), and focal distances are computed in a least-squares fashion.\n. Note, that if intrinsic parameters are known, there is no need to use this function just to\n. estimate extrinsic parameters. Use solvePnP instead.\n. - **CALIB_FIX_PRINCIPAL_POINT** The principal point is not changed during the global\n. optimization. It stays at the center or at a different location specified when\n. CALIB_USE_INTRINSIC_GUESS is set too.\n. - **CALIB_FIX_ASPECT_RATIO** The functions consider only fy as a free parameter. The\n. ratio fx/fy stays the same as in the input cameraMatrix . When\n. CALIB_USE_INTRINSIC_GUESS is not set, the actual input values of fx and fy are\n. ignored, only their ratio is computed and used further.\n. - **CALIB_ZERO_TANGENT_DIST** Tangential distortion coefficients \\f$(p_1, p_2)\\f$ are set\n. to zeros and stay zero.\n. - **CALIB_FIX_K1,...,CALIB_FIX_K6** The corresponding radial distortion\n. coefficient is not changed during the optimization. If CALIB_USE_INTRINSIC_GUESS is\n. set, the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_RATIONAL_MODEL** Coefficients k4, k5, and k6 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the rational model and return 8 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the thin prism model and return 12 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the tilted sensor model and return 14 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. @return the overall RMS re-projection error.\n. \n. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the\n. views. The algorithm is based on @cite Zhang2000 and @cite BouguetMCT . The coordinates of 3D object\n. points and their corresponding 2D projections in each view must be specified. That may be achieved\n. by using an object with known geometry and easily detectable feature points. Such an object is\n. called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as\n. a calibration rig (see @ref findChessboardCorners). Currently, initialization of intrinsic\n. parameters (when CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration\n. patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also\n. be used as long as initial cameraMatrix is provided.\n. \n. The algorithm performs the following steps:\n. \n. - Compute the initial intrinsic parameters (the option only available for planar calibration\n. patterns) or read them from the input parameters. The distortion coefficients are all set to\n. zeros initially unless some of CALIB_FIX_K? are specified.\n. \n. - Estimate the initial camera pose as if the intrinsic parameters have been already known. This is\n. done using solvePnP .\n. \n. - Run the global Levenberg-Marquardt optimization algorithm to minimize the reprojection error,\n. that is, the total sum of squared distances between the observed feature points imagePoints and\n. the projected (using the current estimates for camera parameters and the poses) object points\n. objectPoints. See projectPoints for details.\n. \n. @note\n. If you use a non-square (i.e. non-N-by-N) grid and @ref findChessboardCorners for calibration,\n. and @ref calibrateCamera returns bad values (zero distortion coefficients, \\f$c_x\\f$ and\n. \\f$c_y\\f$ very far from the image center, and/or large differences between \\f$f_x\\f$ and\n. \\f$f_y\\f$ (ratios of 10:1 or more)), then you are probably using patternSize=cvSize(rows,cols)\n. instead of using patternSize=cvSize(cols,rows) in @ref findChessboardCorners.\n. \n. @sa\n. calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate,\n. undistort" ... - def calibrateCameraRO(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., newObjPoints=..., flags: int = ..., criteria=...) -> typing.Any: 'calibrateCameraRO(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs[, rvecs[, tvecs[, newObjPoints[, flags[, criteria]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, newObjPoints\n. @overload' ... - def calibrateCameraROExtended(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., newObjPoints=..., stdDeviationsIntrinsics=..., stdDeviationsExtrinsics=..., stdDeviationsObjPoints=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: 'calibrateCameraROExtended(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs[, rvecs[, tvecs[, newObjPoints[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, stdDeviationsObjPoints[, perViewErrors[, flags[, criteria]]]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, newObjPoints, stdDeviationsIntrinsics, stdDeviationsExtrinsics, stdDeviationsObjPoints, perViewErrors\n. @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern.\n. \n. This function is an extension of calibrateCamera() with the method of releasing object which was\n. proposed in @cite strobl2011iccv. In many common cases with inaccurate, unmeasured, roughly planar\n. targets (calibration plates), this method can dramatically improve the precision of the estimated\n. camera parameters. Both the object-releasing method and standard method are supported by this\n. function. Use the parameter **iFixedPoint** for method selection. In the internal implementation,\n. calibrateCamera() is a wrapper for this function.\n. \n. @param objectPoints Vector of vectors of calibration pattern points in the calibration pattern\n. coordinate space. See calibrateCamera() for details. If the method of releasing object to be used,\n. the identical calibration board must be used in each view and it must be fully visible, and all\n. objectPoints[i] must be the same and all points should be roughly close to a plane. **The calibration\n. target has to be rigid, or at least static if the camera (rather than the calibration target) is\n. shifted for grabbing images.**\n. @param imagePoints Vector of vectors of the projections of calibration pattern points. See\n. calibrateCamera() for details.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrix.\n. @param iFixedPoint The index of the 3D object point in objectPoints[0] to be fixed. It also acts as\n. a switch for calibration method selection. If object-releasing method to be used, pass in the\n. parameter in the range of [1, objectPoints[0].size()-2], otherwise a value out of this range will\n. make standard calibration method selected. Usually the top-right corner point of the calibration\n. board grid is recommended to be fixed when object-releasing method being utilized. According to\n. \\cite strobl2011iccv, two other points are also fixed. In this implementation, objectPoints[0].front\n. and objectPoints[0].back.z are used. With object-releasing method, accurate rvecs, tvecs and\n. newObjPoints are only possible if coordinates of these three fixed points are accurate enough.\n. @param cameraMatrix Output 3x3 floating-point camera matrix. See calibrateCamera() for details.\n. @param distCoeffs Output vector of distortion coefficients. See calibrateCamera() for details.\n. @param rvecs Output vector of rotation vectors estimated for each pattern view. See calibrateCamera()\n. for details.\n. @param tvecs Output vector of translation vectors estimated for each pattern view.\n. @param newObjPoints The updated output vector of calibration pattern points. The coordinates might\n. be scaled based on three fixed points. The returned coordinates are accurate only if the above\n. mentioned three fixed points are accurate. If not needed, noArray() can be passed in. This parameter\n. is ignored with standard calibration method.\n. @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters.\n. See calibrateCamera() for details.\n. @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters.\n. See calibrateCamera() for details.\n. @param stdDeviationsObjPoints Output vector of standard deviations estimated for refined coordinates\n. of calibration pattern points. It has the same size and order as objectPoints[0] vector. This\n. parameter is ignored with standard calibration method.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of some predefined values. See\n. calibrateCamera() for details. If the method of releasing object is used, the calibration time may\n. be much longer. CALIB_USE_QR or CALIB_USE_LU could be used for faster calibration with potentially\n. less precise and less stable in some rare cases.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. @return the overall RMS re-projection error.\n. \n. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the\n. views. The algorithm is based on @cite Zhang2000, @cite BouguetMCT and @cite strobl2011iccv. See\n. calibrateCamera() for other detailed explanations.\n. @sa\n. calibrateCamera, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort' ... - def calibrateHandEye(R_gripper2base, t_gripper2base, R_target2cam, t_target2cam, R_cam2gripper=..., t_cam2gripper=..., method: int = ...) -> typing.Any: 'calibrateHandEye(R_gripper2base, t_gripper2base, R_target2cam, t_target2cam[, R_cam2gripper[, t_cam2gripper[, method]]]) -> R_cam2gripper, t_cam2gripper\n. @brief Computes Hand-Eye calibration: \\f$_{}^{g}\\textrm{T}_c\\f$\n. \n. @param[in] R_gripper2base Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the gripper frame to the robot base frame (\\f$_{}^{b}\\textrm{T}_g\\f$).\n. This is a vector (`vector`) that contains the rotation matrices for all the transformations\n. from gripper frame to robot base frame.\n. @param[in] t_gripper2base Translation part extracted from the homogeneous matrix that transforms a point\n. expressed in the gripper frame to the robot base frame (\\f$_{}^{b}\\textrm{T}_g\\f$).\n. This is a vector (`vector`) that contains the translation vectors for all the transformations\n. from gripper frame to robot base frame.\n. @param[in] R_target2cam Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the target frame to the camera frame (\\f$_{}^{c}\\textrm{T}_t\\f$).\n. This is a vector (`vector`) that contains the rotation matrices for all the transformations\n. from calibration target frame to camera frame.\n. @param[in] t_target2cam Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the target frame to the camera frame (\\f$_{}^{c}\\textrm{T}_t\\f$).\n. This is a vector (`vector`) that contains the translation vectors for all the transformations\n. from calibration target frame to camera frame.\n. @param[out] R_cam2gripper Estimated rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the camera frame to the gripper frame (\\f$_{}^{g}\\textrm{T}_c\\f$).\n. @param[out] t_cam2gripper Estimated translation part extracted from the homogeneous matrix that transforms a point\n. expressed in the camera frame to the gripper frame (\\f$_{}^{g}\\textrm{T}_c\\f$).\n. @param[in] method One of the implemented Hand-Eye calibration method, see cv::HandEyeCalibrationMethod\n. \n. The function performs the Hand-Eye calibration using various methods. One approach consists in estimating the\n. rotation then the translation (separable solutions) and the following methods are implemented:\n. - R. Tsai, R. Lenz A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/EyeCalibration \\cite Tsai89\n. - F. Park, B. Martin Robot Sensor Calibration: Solving AX = XB on the Euclidean Group \\cite Park94\n. - R. Horaud, F. Dornaika Hand-Eye Calibration \\cite Horaud95\n. \n. Another approach consists in estimating simultaneously the rotation and the translation (simultaneous solutions),\n. with the following implemented method:\n. - N. Andreff, R. Horaud, B. Espiau On-line Hand-Eye Calibration \\cite Andreff99\n. - K. Daniilidis Hand-Eye Calibration Using Dual Quaternions \\cite Daniilidis98\n. \n. The following picture describes the Hand-Eye calibration problem where the transformation between a camera ("eye")\n. mounted on a robot gripper ("hand") has to be estimated.\n. \n. ![](pics/hand-eye_figure.png)\n. \n. The calibration procedure is the following:\n. - a static calibration pattern is used to estimate the transformation between the target frame\n. and the camera frame\n. - the robot gripper is moved in order to acquire several poses\n. - for each pose, the homogeneous transformation between the gripper frame and the robot base frame is recorded using for\n. instance the robot kinematics\n. \\f[\n. \\begin{bmatrix}\n. X_b\\\\\n. Y_b\\\\\n. Z_b\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{b}\\textrm{R}_g & _{}^{b}\\textrm{t}_g \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_g\\\\\n. Y_g\\\\\n. Z_g\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. - for each pose, the homogeneous transformation between the calibration target frame and the camera frame is recorded using\n. for instance a pose estimation method (PnP) from 2D-3D point correspondences\n. \\f[\n. \\begin{bmatrix}\n. X_c\\\\\n. Y_c\\\\\n. Z_c\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{c}\\textrm{R}_t & _{}^{c}\\textrm{t}_t \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_t\\\\\n. Y_t\\\\\n. Z_t\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. \n. The Hand-Eye calibration procedure returns the following homogeneous transformation\n. \\f[\n. \\begin{bmatrix}\n. X_g\\\\\n. Y_g\\\\\n. Z_g\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{g}\\textrm{R}_c & _{}^{g}\\textrm{t}_c \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_c\\\\\n. Y_c\\\\\n. Z_c\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. \n. This problem is also known as solving the \\f$\\mathbf{A}\\mathbf{X}=\\mathbf{X}\\mathbf{B}\\f$ equation:\n. \\f[\n. \\begin{align*}\n. ^{b}{\\textrm{T}_g}^{(1)} \\hspace{0.2em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(1)} &=\n. \\hspace{0.1em} ^{b}{\\textrm{T}_g}^{(2)} \\hspace{0.2em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(2)} \\\\\n. \n. (^{b}{\\textrm{T}_g}^{(2)})^{-1} \\hspace{0.2em} ^{b}{\\textrm{T}_g}^{(1)} \\hspace{0.2em} ^{g}\\textrm{T}_c &=\n. \\hspace{0.1em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(2)} (^{c}{\\textrm{T}_t}^{(1)})^{-1} \\\\\n. \n. \\textrm{A}_i \\textrm{X} &= \\textrm{X} \\textrm{B}_i \\\\\n. \\end{align*}\n. \\f]\n. \n. \\note\n. Additional information can be found on this [website](http://campar.in.tum.de/Chair/HandEyeCalibration).\n. \\note\n. A minimum of 2 motions with non parallel rotation axes are necessary to determine the hand-eye transformation.\n. So at least 3 different poses are required, but it is strongly recommended to use many more poses.' ... - def calibrationMatrixValues(cameraMatrix, imageSize, apertureWidth, apertureHeight) -> typing.Any: "calibrationMatrixValues(cameraMatrix, imageSize, apertureWidth, apertureHeight) -> fovx, fovy, focalLength, principalPoint, aspectRatio\n. @brief Computes useful camera characteristics from the camera matrix.\n. \n. @param cameraMatrix Input camera matrix that can be estimated by calibrateCamera or\n. stereoCalibrate .\n. @param imageSize Input image size in pixels.\n. @param apertureWidth Physical width in mm of the sensor.\n. @param apertureHeight Physical height in mm of the sensor.\n. @param fovx Output field of view in degrees along the horizontal sensor axis.\n. @param fovy Output field of view in degrees along the vertical sensor axis.\n. @param focalLength Focal length of the lens in mm.\n. @param principalPoint Principal point in mm.\n. @param aspectRatio \\f$f_y/f_x\\f$\n. \n. The function computes various useful camera characteristics from the previously estimated camera\n. matrix.\n. \n. @note\n. Do keep in mind that the unity measure 'mm' stands for whatever unit of measure one chooses for\n. the chessboard pitch (it can thus be any value)." ... - def cartToPolar(x, y, magnitude=..., angle=..., angleInDegrees=...) -> typing.Any: 'cartToPolar(x, y[, magnitude[, angle[, angleInDegrees]]]) -> magnitude, angle\n. @brief Calculates the magnitude and angle of 2D vectors.\n. \n. The function cv::cartToPolar calculates either the magnitude, angle, or both\n. for every 2D vector (x(I),y(I)):\n. \\f[\\begin{array}{l} \\texttt{magnitude} (I)= \\sqrt{\\texttt{x}(I)^2+\\texttt{y}(I)^2} , \\\\ \\texttt{angle} (I)= \\texttt{atan2} ( \\texttt{y} (I), \\texttt{x} (I))[ \\cdot180 / \\pi ] \\end{array}\\f]\n. \n. The angles are calculated with accuracy about 0.3 degrees. For the point\n. (0,0), the angle is set to 0.\n. @param x array of x-coordinates; this must be a single-precision or\n. double-precision floating-point array.\n. @param y array of y-coordinates, that must have the same size and same type as x.\n. @param magnitude output array of magnitudes of the same size and type as x.\n. @param angle output array of angles that has the same size and type as\n. x; the angles are measured in radians (from 0 to 2\\*Pi) or in degrees (0 to 360 degrees).\n. @param angleInDegrees a flag, indicating whether the angles are measured\n. in radians (which is by default), or in degrees.\n. @sa Sobel, Scharr' ... - -def checkChessboard(img: ndarray, size) -> typing.Any: +def checkChessboard(img: Mat, size) -> typing.Any: 'checkChessboard(img, size) -> retval\n.' ... - def checkHardwareSupport(feature) -> typing.Any: 'checkHardwareSupport(feature) -> retval\n. @brief Returns true if the specified feature is supported by the host hardware.\n. \n. The function returns true if the host hardware supports the specified feature. When user calls\n. setUseOptimized(false), the subsequent calls to checkHardwareSupport() will return false until\n. setUseOptimized(true) is called. This way user can dynamically switch on and off the optimized code\n. in OpenCV.\n. @param feature The feature of interest, one of cv::CpuFeatures' ... - def checkRange(a, quiet=..., minVal=..., maxVal=...) -> typing.Any: 'checkRange(a[, quiet[, minVal[, maxVal]]]) -> retval, pos\n. @brief Checks every element of an input array for invalid values.\n. \n. The function cv::checkRange checks that every array element is neither NaN nor infinite. When minVal \\>\n. -DBL_MAX and maxVal \\< DBL_MAX, the function also checks that each value is between minVal and\n. maxVal. In case of multi-channel arrays, each channel is processed independently. If some values\n. are out of range, position of the first outlier is stored in pos (when pos != NULL). Then, the\n. function either returns false (when quiet=true) or throws an exception.\n. @param a input array.\n. @param quiet a flag, indicating whether the functions quietly return false when the array elements\n. are out of range or they throw an exception.\n. @param pos optional output parameter, when not NULL, must be a pointer to array of src.dims\n. elements.\n. @param minVal inclusive lower boundary of valid values range.\n. @param maxVal exclusive upper boundary of valid values range.' ... - -def circle(img: ndarray, center, radius, color, thickness=..., lineType=..., shift=...) -> typing.Any: +def circle(img: Mat, center, radius, color, thickness=..., lineType=..., shift=...) -> typing.Any: 'circle(img, center, radius, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a circle.\n. \n. The function cv::circle draws a simple or filled circle with a given center and radius.\n. @param img Image where the circle is drawn.\n. @param center Center of the circle.\n. @param radius Radius of the circle.\n. @param color Circle color.\n. @param thickness Thickness of the circle outline, if positive. Negative values, like #FILLED,\n. mean that a filled circle is to be drawn.\n. @param lineType Type of the circle boundary. See #LineTypes\n. @param shift Number of fractional bits in the coordinates of the center and in the radius value.' ... - def clipLine(imgRect, pt1, pt2) -> typing.Any: 'clipLine(imgRect, pt1, pt2) -> retval, pt1, pt2\n. @overload\n. @param imgRect Image rectangle.\n. @param pt1 First line point.\n. @param pt2 Second line point.' ... - -def colorChange(src: ndarray, mask: ndarray, dts: ndarray = ..., red_mul=..., green_mul=..., blue_mul=...) -> typing.Any: +def colorChange(src: Mat, mask: Mat, dts: Mat = ..., red_mul=..., green_mul=..., blue_mul=...) -> typing.Any: 'colorChange(src, mask[, dst[, red_mul[, green_mul[, blue_mul]]]]) -> dst\n. @brief Given an original color image, two differently colored versions of this image can be mixed\n. seamlessly.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src .\n. @param red_mul R-channel multiply factor.\n. @param green_mul G-channel multiply factor.\n. @param blue_mul B-channel multiply factor.\n. \n. Multiplication factor is between .5 to 2.5.' ... - -def compare(src1: ndarray, src2: ndarray, cmpop, dts: ndarray = ...) -> typing.Any: +def compare(src1: Mat, src2: Mat, cmpop, dts: Mat = ...) -> typing.Any: 'compare(src1, src2, cmpop[, dst]) -> dst\n. @brief Performs the per-element comparison of two arrays or an array and scalar value.\n. \n. The function compares:\n. * Elements of two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\,\\texttt{cmpop}\\, \\texttt{src2} (I)\\f]\n. * Elements of src1 with a scalar src2 when src2 is constructed from\n. Scalar or has a single element:\n. \\f[\\texttt{dst} (I) = \\texttt{src1}(I) \\,\\texttt{cmpop}\\, \\texttt{src2}\\f]\n. * src1 with elements of src2 when src1 is constructed from Scalar or\n. has a single element:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\,\\texttt{cmpop}\\, \\texttt{src2} (I)\\f]\n. When the comparison result is true, the corresponding element of output\n. array is set to 255. The comparison operations can be replaced with the\n. equivalent matrix expressions:\n. @code{.cpp}\n. Mat dst1 = src1 >= src2;\n. Mat dst2 = src1 < 8;\n. ...\n. @endcode\n. @param src1 first input array or a scalar; when it is an array, it must have a single channel.\n. @param src2 second input array or a scalar; when it is an array, it must have a single channel.\n. @param dst output array of type ref CV_8U that has the same size and the same number of channels as\n. the input arrays.\n. @param cmpop a flag, that specifies correspondence between the arrays (cv::CmpTypes)\n. @sa checkRange, min, max, threshold' ... - -def compareHist(H1: ndarray, H2: ndarray, method: int) -> float: +def compareHist(H1: Mat, H2: Mat, method: int) -> float: 'compareHist(H1, H2, method) -> retval\n. @brief Compares two histograms.\n. \n. The function cv::compareHist compares two dense or two sparse histograms using the specified method.\n. \n. The function returns \\f$d(H_1, H_2)\\f$ .\n. \n. While the function works well with 1-, 2-, 3-dimensional dense histograms, it may not be suitable\n. for high-dimensional sparse histograms. In such histograms, because of aliasing and sampling\n. problems, the coordinates of non-zero histogram bins can slightly shift. To compare such histograms\n. or more general sparse configurations of weighted points, consider using the #EMD function.\n. \n. @param H1 First compared histogram.\n. @param H2 Second compared histogram of the same size as H1 .\n. @param method Comparison method, see #HistCompMethods' ... - def completeSymm(m, lowerToUpper=...) -> typing.Any: 'completeSymm(m[, lowerToUpper]) -> m\n. @brief Copies the lower or the upper half of a square matrix to its another half.\n. \n. The function cv::completeSymm copies the lower or the upper half of a square matrix to\n. its another half. The matrix diagonal remains unchanged:\n. - \\f$\\texttt{m}_{ij}=\\texttt{m}_{ji}\\f$ for \\f$i > j\\f$ if\n. lowerToUpper=false\n. - \\f$\\texttt{m}_{ij}=\\texttt{m}_{ji}\\f$ for \\f$i < j\\f$ if\n. lowerToUpper=true\n. \n. @param m input-output floating-point square matrix.\n. @param lowerToUpper operation flag; if true, the lower half is copied to\n. the upper half. Otherwise, the upper half is copied to the lower half.\n. @sa flip, transpose' ... - def composeRT(rvec1, tvec1, rvec2, tvec2, rvec3=..., tvec3=..., dr3dr1=..., dr3dt1=..., dr3dr2=..., dr3dt2=..., dt3dr1=..., dt3dt1=..., dt3dr2=..., dt3dt2=...) -> typing.Any: 'composeRT(rvec1, tvec1, rvec2, tvec2[, rvec3[, tvec3[, dr3dr1[, dr3dt1[, dr3dr2[, dr3dt2[, dt3dr1[, dt3dt1[, dt3dr2[, dt3dt2]]]]]]]]]]) -> rvec3, tvec3, dr3dr1, dr3dt1, dr3dr2, dr3dt2, dt3dr1, dt3dt1, dt3dr2, dt3dt2\n. @brief Combines two rotation-and-shift transformations.\n. \n. @param rvec1 First rotation vector.\n. @param tvec1 First translation vector.\n. @param rvec2 Second rotation vector.\n. @param tvec2 Second translation vector.\n. @param rvec3 Output rotation vector of the superposition.\n. @param tvec3 Output translation vector of the superposition.\n. @param dr3dr1 Optional output derivative of rvec3 with regard to rvec1\n. @param dr3dt1 Optional output derivative of rvec3 with regard to tvec1\n. @param dr3dr2 Optional output derivative of rvec3 with regard to rvec2\n. @param dr3dt2 Optional output derivative of rvec3 with regard to tvec2\n. @param dt3dr1 Optional output derivative of tvec3 with regard to rvec1\n. @param dt3dt1 Optional output derivative of tvec3 with regard to tvec1\n. @param dt3dr2 Optional output derivative of tvec3 with regard to rvec2\n. @param dt3dt2 Optional output derivative of tvec3 with regard to tvec2\n. \n. The functions compute:\n. \n. \\f[\\begin{array}{l} \\texttt{rvec3} = \\mathrm{rodrigues} ^{-1} \\left ( \\mathrm{rodrigues} ( \\texttt{rvec2} ) \\cdot \\mathrm{rodrigues} ( \\texttt{rvec1} ) \\right ) \\\\ \\texttt{tvec3} = \\mathrm{rodrigues} ( \\texttt{rvec2} ) \\cdot \\texttt{tvec1} + \\texttt{tvec2} \\end{array} ,\\f]\n. \n. where \\f$\\mathrm{rodrigues}\\f$ denotes a rotation vector to a rotation matrix transformation, and\n. \\f$\\mathrm{rodrigues}^{-1}\\f$ denotes the inverse transformation. See Rodrigues for details.\n. \n. Also, the functions can compute the derivatives of the output vectors with regards to the input\n. vectors (see matMulDeriv ). The functions are used inside stereoCalibrate but can also be used in\n. your own code where Levenberg-Marquardt or another gradient-based solver is used to optimize a\n. function that contains a matrix multiplication.' ... - def computeCorrespondEpilines(points, whichImage, F, lines=...) -> typing.Any: 'computeCorrespondEpilines(points, whichImage, F[, lines]) -> lines\n. @brief For points in an image of a stereo pair, computes the corresponding epilines in the other image.\n. \n. @param points Input points. \\f$N \\times 1\\f$ or \\f$1 \\times N\\f$ matrix of type CV_32FC2 or\n. vector\\ .\n. @param whichImage Index of the image (1 or 2) that contains the points .\n. @param F Fundamental matrix that can be estimated using findFundamentalMat or stereoRectify .\n. @param lines Output vector of the epipolar lines corresponding to the points in the other image.\n. Each line \\f$ax + by + c=0\\f$ is encoded by 3 numbers \\f$(a, b, c)\\f$ .\n. \n. For every point in one of the two images of a stereo pair, the function finds the equation of the\n. corresponding epipolar line in the other image.\n. \n. From the fundamental matrix definition (see findFundamentalMat ), line \\f$l^{(2)}_i\\f$ in the second\n. image for the point \\f$p^{(1)}_i\\f$ in the first image (when whichImage=1 ) is computed as:\n. \n. \\f[l^{(2)}_i = F p^{(1)}_i\\f]\n. \n. And vice versa, when whichImage=2, \\f$l^{(1)}_i\\f$ is computed from \\f$p^{(2)}_i\\f$ as:\n. \n. \\f[l^{(1)}_i = F^T p^{(2)}_i\\f]\n. \n. Line coefficients are defined up to a scale. They are normalized so that \\f$a_i^2+b_i^2=1\\f$ .' ... - def computeECC(templateImage, inputImage, inputMask=...) -> typing.Any: 'computeECC(templateImage, inputImage[, inputMask]) -> retval\n. @brief Computes the Enhanced Correlation Coefficient value between two images @cite EP08 .\n. \n. @param templateImage single-channel template image; CV_8U or CV_32F array.\n. @param inputImage single-channel input image to be warped to provide an image similar to\n. templateImage, same type as templateImage.\n. @param inputMask An optional mask to indicate valid values of inputImage.\n. \n. @sa\n. findTransformECC' ... - -def connectedComponents(image: ndarray, labels=..., connectivity=..., ltype=...) -> typing.Any: +def connectedComponents(image: Mat, labels=..., connectivity=..., ltype=...) -> typing.Any: 'connectedComponents(image[, labels[, connectivity[, ltype]]]) -> retval, labels\n. @overload\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.' ... - -def connectedComponentsWithAlgorithm(image: ndarray, connectivity, ltype, ccltype, labels=...) -> typing.Any: +def connectedComponentsWithAlgorithm(image: Mat, connectivity, ltype, ccltype, labels=...) -> typing.Any: "connectedComponentsWithAlgorithm(image, connectivity, ltype, ccltype[, labels]) -> retval, labels\n. @brief computes the connected components labeled image of boolean image\n. \n. image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0\n. represents the background label. ltype specifies the output label image type, an important\n. consideration based on the total number of labels or alternatively the total number of pixels in\n. the source image. ccltype specifies the connected components labeling algorithm to use, currently\n. Grana (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes\n. for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.\n. This function uses parallel version of both Grana and Wu's algorithms if at least one allowed\n. parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.\n. @param ccltype connected components algorithm type (see the #ConnectedComponentsAlgorithmsTypes)." ... - -def connectedComponentsWithStats(image: ndarray, labels=..., stats=..., centroids=..., connectivity=..., ltype=...) -> typing.Any: +def connectedComponentsWithStats(image: Mat, labels=..., stats=..., centroids=..., connectivity=..., ltype=...) -> typing.Any: 'connectedComponentsWithStats(image[, labels[, stats[, centroids[, connectivity[, ltype]]]]]) -> retval, labels, stats, centroids\n. @overload\n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param stats statistics output for each label, including the background label.\n. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of\n. #ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.\n. @param centroids centroid output for each label, including the background label. Centroids are\n. accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.' ... - -def connectedComponentsWithStatsWithAlgorithm(image: ndarray, connectivity, ltype, ccltype, labels=..., stats=..., centroids=...) -> typing.Any: +def connectedComponentsWithStatsWithAlgorithm(image: Mat, connectivity, ltype, ccltype, labels=..., stats=..., centroids=...) -> typing.Any: "connectedComponentsWithStatsWithAlgorithm(image, connectivity, ltype, ccltype[, labels[, stats[, centroids]]]) -> retval, labels, stats, centroids\n. @brief computes the connected components labeled image of boolean image and also produces a statistics output for each label\n. \n. image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0\n. represents the background label. ltype specifies the output label image type, an important\n. consideration based on the total number of labels or alternatively the total number of pixels in\n. the source image. ccltype specifies the connected components labeling algorithm to use, currently\n. Grana's (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes\n. for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.\n. This function uses parallel version of both Grana and Wu's algorithms (statistics included) if at least one allowed\n. parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param stats statistics output for each label, including the background label.\n. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of\n. #ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.\n. @param centroids centroid output for each label, including the background label. Centroids are\n. accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.\n. @param ccltype connected components algorithm type (see #ConnectedComponentsAlgorithmsTypes)." ... - def contourArea(contour, oriented=...) -> typing.Any: 'contourArea(contour[, oriented]) -> retval\n. @brief Calculates a contour area.\n. \n. The function computes a contour area. Similarly to moments , the area is computed using the Green\n. formula. Thus, the returned area and the number of non-zero pixels, if you draw the contour using\n. #drawContours or #fillPoly , can be different. Also, the function will most certainly give a wrong\n. results for contours with self-intersections.\n. \n. Example:\n. @code\n. vector contour;\n. contour.push_back(Point2f(0, 0));\n. contour.push_back(Point2f(10, 0));\n. contour.push_back(Point2f(10, 10));\n. contour.push_back(Point2f(5, 4));\n. \n. double area0 = contourArea(contour);\n. vector approx;\n. approxPolyDP(contour, approx, 5, true);\n. double area1 = contourArea(approx);\n. \n. cout << "area0 =" << area0 << endl <<\n. "area1 =" << area1 << endl <<\n. "approx poly vertices" << approx.size() << endl;\n. @endcode\n. @param contour Input vector of 2D points (contour vertices), stored in std::vector or Mat.\n. @param oriented Oriented area flag. If it is true, the function returns a signed area value,\n. depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can\n. determine orientation of a contour by taking the sign of an area. By default, the parameter is\n. false, which means that the absolute value is returned.' ... - -def convertFp16(src: ndarray, dts: ndarray = ...) -> typing.Any: +def convertFp16(src: Mat, dts: Mat = ...) -> typing.Any: 'convertFp16(src[, dst]) -> dst\n. @brief Converts an array to half precision floating number.\n. \n. This function converts FP32 (single precision floating point) from/to FP16 (half precision floating point). CV_16S format is used to represent FP16 data.\n. There are two use modes (src -> dst): CV_32F -> CV_16S and CV_16S -> CV_32F. The input array has to have type of CV_32F or\n. CV_16S to represent the bit depth. If the input array is neither of them, the function will raise an error.\n. The format of half precision floating point is defined in IEEE 754-2008.\n. \n. @param src input array.\n. @param dst output array.' ... - def convertMaps(map1, map2, dstmap1type, dstmap1=..., dstmap2=..., nninterpolation=...) -> typing.Any: 'convertMaps(map1, map2, dstmap1type[, dstmap1[, dstmap2[, nninterpolation]]]) -> dstmap1, dstmap2\n. @brief Converts image transformation maps from one representation to another.\n. \n. The function converts a pair of maps for remap from one representation to another. The following\n. options ( (map1.type(), map2.type()) \\f$\\rightarrow\\f$ (dstmap1.type(), dstmap2.type()) ) are\n. supported:\n. \n. - \\f$\\texttt{(CV_32FC1, CV_32FC1)} \\rightarrow \\texttt{(CV_16SC2, CV_16UC1)}\\f$. This is the\n. most frequently used conversion operation, in which the original floating-point maps (see remap )\n. are converted to a more compact and much faster fixed-point representation. The first output array\n. contains the rounded coordinates and the second array (created only when nninterpolation=false )\n. contains indices in the interpolation tables.\n. \n. - \\f$\\texttt{(CV_32FC2)} \\rightarrow \\texttt{(CV_16SC2, CV_16UC1)}\\f$. The same as above but\n. the original maps are stored in one 2-channel matrix.\n. \n. - Reverse conversion. Obviously, the reconstructed floating-point maps will not be exactly the same\n. as the originals.\n. \n. @param map1 The first input map of type CV_16SC2, CV_32FC1, or CV_32FC2 .\n. @param map2 The second input map of type CV_16UC1, CV_32FC1, or none (empty matrix),\n. respectively.\n. @param dstmap1 The first output map that has the type dstmap1type and the same size as src .\n. @param dstmap2 The second output map.\n. @param dstmap1type Type of the first output map that should be CV_16SC2, CV_32FC1, or\n. CV_32FC2 .\n. @param nninterpolation Flag indicating whether the fixed-point maps are used for the\n. nearest-neighbor or for a more complex interpolation.\n. \n. @sa remap, undistort, initUndistortRectifyMap' ... - -def convertPointsFromHomogeneous(src: ndarray, dts: ndarray = ...) -> typing.Any: +def convertPointsFromHomogeneous(src: Mat, dts: Mat = ...) -> typing.Any: 'convertPointsFromHomogeneous(src[, dst]) -> dst\n. @brief Converts points from homogeneous to Euclidean space.\n. \n. @param src Input vector of N-dimensional points.\n. @param dst Output vector of N-1-dimensional points.\n. \n. The function converts points homogeneous to Euclidean space using perspective projection. That is,\n. each point (x1, x2, ... x(n-1), xn) is converted to (x1/xn, x2/xn, ..., x(n-1)/xn). When xn=0, the\n. output point coordinates will be (0,0,0,...).' ... - -def convertPointsToHomogeneous(src: ndarray, dts: ndarray = ...) -> typing.Any: +def convertPointsToHomogeneous(src: Mat, dts: Mat = ...) -> typing.Any: "convertPointsToHomogeneous(src[, dst]) -> dst\n. @brief Converts points from Euclidean to homogeneous space.\n. \n. @param src Input vector of N-dimensional points.\n. @param dst Output vector of N+1-dimensional points.\n. \n. The function converts points from Euclidean to homogeneous space by appending 1's to the tuple of\n. point coordinates. That is, each point (x1, x2, ..., xn) is converted to (x1, x2, ..., xn, 1)." ... - -def convertScaleAbs(src: ndarray, dts: ndarray = ..., alpha=..., beta=...) -> typing.Any: +def convertScaleAbs(src: Mat, dts: Mat = ..., alpha=..., beta=...) -> typing.Any: 'convertScaleAbs(src[, dst[, alpha[, beta]]]) -> dst\n. @brief Scales, calculates absolute values, and converts the result to 8-bit.\n. \n. On each element of the input array, the function convertScaleAbs\n. performs three operations sequentially: scaling, taking an absolute\n. value, conversion to an unsigned 8-bit type:\n. \\f[\\texttt{dst} (I)= \\texttt{saturate\\_cast} (| \\texttt{src} (I)* \\texttt{alpha} + \\texttt{beta} |)\\f]\n. In case of multi-channel arrays, the function processes each channel\n. independently. When the output is not 8-bit, the operation can be\n. emulated by calling the Mat::convertTo method (or by using matrix\n. expressions) and then by calculating an absolute value of the result.\n. For example:\n. @code{.cpp}\n. Mat_ A(30,30);\n. randu(A, Scalar(-100), Scalar(100));\n. Mat_ B = A*5 + 3;\n. B = abs(B);\n. // Mat_ B = abs(A*5+3) will also do the job,\n. // but it will allocate a temporary matrix\n. @endcode\n. @param src input array.\n. @param dst output array.\n. @param alpha optional scale factor.\n. @param beta optional delta added to the scaled values.\n. @sa Mat::convertTo, cv::abs(const Mat&)' ... - def convexHull(points, hull=..., clockwise=..., returnPoints=...) -> typing.Any: 'convexHull(points[, hull[, clockwise[, returnPoints]]]) -> hull\n. @brief Finds the convex hull of a point set.\n. \n. The function cv::convexHull finds the convex hull of a 2D point set using the Sklansky\'s algorithm @cite Sklansky82\n. that has *O(N logN)* complexity in the current implementation.\n. \n. @param points Input 2D point set, stored in std::vector or Mat.\n. @param hull Output convex hull. It is either an integer vector of indices or vector of points. In\n. the first case, the hull elements are 0-based indices of the convex hull points in the original\n. array (since the set of convex hull points is a subset of the original point set). In the second\n. case, hull elements are the convex hull points themselves.\n. @param clockwise Orientation flag. If it is true, the output convex hull is oriented clockwise.\n. Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing\n. to the right, and its Y axis pointing upwards.\n. @param returnPoints Operation flag. In case of a matrix, when the flag is true, the function\n. returns convex hull points. Otherwise, it returns indices of the convex hull points. When the\n. output array is std::vector, the flag is ignored, and the output depends on the type of the\n. vector: std::vector\\ implies returnPoints=false, std::vector\\ implies\n. returnPoints=true.\n. \n. @note `points` and `hull` should be different arrays, inplace processing isn\'t supported.\n. \n. Check @ref tutorial_hull "the corresponding tutorial" for more details.\n. \n. useful links:\n. \n. https://www.learnopencv.com/convex-hull-using-opencv-in-python-and-c/' ... - def convexityDefects(contour, convexhull, convexityDefects=...) -> typing.Any: 'convexityDefects(contour, convexhull[, convexityDefects]) -> convexityDefects\n. @brief Finds the convexity defects of a contour.\n. \n. The figure below displays convexity defects of a hand contour:\n. \n. ![image](pics/defects.png)\n. \n. @param contour Input contour.\n. @param convexhull Convex hull obtained using convexHull that should contain indices of the contour\n. points that make the hull.\n. @param convexityDefects The output vector of convexity defects. In C++ and the new Python/Java\n. interface each convexity defect is represented as 4-element integer vector (a.k.a. #Vec4i):\n. (start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices\n. in the original contour of the convexity defect beginning, end and the farthest point, and\n. fixpt_depth is fixed-point approximation (with 8 fractional bits) of the distance between the\n. farthest contour point and the hull. That is, to get the floating-point value of the depth will be\n. fixpt_depth/256.0.' ... - -def copyMakeBorder(src: ndarray, top, bottom, left, right, borderType, dts: ndarray = ..., value=...) -> typing.Any: +def copyMakeBorder(src: Mat, top, bottom, left, right, borderType, dts: Mat = ..., value=...) -> typing.Any: 'copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]]) -> dst\n. @brief Forms a border around an image.\n. \n. The function copies the source image into the middle of the destination image. The areas to the\n. left, to the right, above and below the copied source image will be filled with extrapolated\n. pixels. This is not what filtering functions based on it do (they extrapolate pixels on-fly), but\n. what other more complex functions, including your own, may do to simplify image boundary handling.\n. \n. The function supports the mode when src is already in the middle of dst . In this case, the\n. function does not copy src itself but simply constructs the border, for example:\n. \n. @code{.cpp}\n. // let border be the same in all directions\n. int border=2;\n. // constructs a larger image to fit both the image and the border\n. Mat gray_buf(rgb.rows + border*2, rgb.cols + border*2, rgb.depth());\n. // select the middle part of it w/o copying data\n. Mat gray(gray_canvas, Rect(border, border, rgb.cols, rgb.rows));\n. // convert image from RGB to grayscale\n. cvtColor(rgb, gray, COLOR_RGB2GRAY);\n. // form a border in-place\n. copyMakeBorder(gray, gray_buf, border, border,\n. border, border, BORDER_REPLICATE);\n. // now do some custom filtering ...\n. ...\n. @endcode\n. @note When the source image is a part (ROI) of a bigger image, the function will try to use the\n. pixels outside of the ROI to form a border. To disable this feature and always do extrapolation, as\n. if src was not a ROI, use borderType | #BORDER_ISOLATED.\n. \n. @param src Source image.\n. @param dst Destination image of the same type as src and the size Size(src.cols+left+right,\n. src.rows+top+bottom) .\n. @param top the top pixels\n. @param bottom the bottom pixels\n. @param left the left pixels\n. @param right Parameter specifying how many pixels in each direction from the source image rectangle\n. to extrapolate. For example, top=1, bottom=1, left=1, right=1 mean that 1 pixel-wide border needs\n. to be built.\n. @param borderType Border type. See borderInterpolate for details.\n. @param value Border value if borderType==BORDER_CONSTANT .\n. \n. @sa borderInterpolate' ... - -def copyTo(src: ndarray, mask: ndarray, dts: ndarray = ...) -> typing.Any: +def copyTo(src: Mat, mask: Mat, dts: Mat = ...) -> typing.Any: 'copyTo(src, mask[, dst]) -> dst\n. @brief This is an overloaded member function, provided for convenience (python)\n. Copies the matrix to another one.\n. When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, the newly allocated matrix is initialized with all zeros before copying the data.\n. @param src source matrix.\n. @param dst Destination matrix. If it does not have a proper size or type before the operation, it is\n. reallocated.\n. @param mask Operation mask of the same size as \\*this. Its non-zero elements indicate which matrix\n. elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels.' ... - -def cornerEigenValsAndVecs(src: ndarray, blockSize, ksize, dts: ndarray = ..., borderType=...) -> typing.Any: +def cornerEigenValsAndVecs(src: Mat, blockSize, ksize, dts: Mat = ..., borderType=...) -> typing.Any: 'cornerEigenValsAndVecs(src, blockSize, ksize[, dst[, borderType]]) -> dst\n. @brief Calculates eigenvalues and eigenvectors of image blocks for corner detection.\n. \n. For every pixel \\f$p\\f$ , the function cornerEigenValsAndVecs considers a blockSize \\f$\\times\\f$ blockSize\n. neighborhood \\f$S(p)\\f$ . It calculates the covariation matrix of derivatives over the neighborhood as:\n. \n. \\f[M = \\begin{bmatrix} \\sum _{S(p)}(dI/dx)^2 & \\sum _{S(p)}dI/dx dI/dy \\\\ \\sum _{S(p)}dI/dx dI/dy & \\sum _{S(p)}(dI/dy)^2 \\end{bmatrix}\\f]\n. \n. where the derivatives are computed using the Sobel operator.\n. \n. After that, it finds eigenvectors and eigenvalues of \\f$M\\f$ and stores them in the destination image as\n. \\f$(\\lambda_1, \\lambda_2, x_1, y_1, x_2, y_2)\\f$ where\n. \n. - \\f$\\lambda_1, \\lambda_2\\f$ are the non-sorted eigenvalues of \\f$M\\f$\n. - \\f$x_1, y_1\\f$ are the eigenvectors corresponding to \\f$\\lambda_1\\f$\n. - \\f$x_2, y_2\\f$ are the eigenvectors corresponding to \\f$\\lambda_2\\f$\n. \n. The output of the function can be used for robust edge or corner detection.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the results. It has the same size as src and the type CV_32FC(6) .\n. @param blockSize Neighborhood size (see details below).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.\n. \n. @sa cornerMinEigenVal, cornerHarris, preCornerDetect' ... - -def cornerHarris(src: ndarray, blockSize, ksize, k, dts: ndarray = ..., borderType=...) -> typing.Any: +def cornerHarris(src: Mat, blockSize, ksize, k, dts: Mat = ..., borderType=...) -> typing.Any: 'cornerHarris(src, blockSize, ksize, k[, dst[, borderType]]) -> dst\n. @brief Harris corner detector.\n. \n. The function runs the Harris corner detector on the image. Similarly to cornerMinEigenVal and\n. cornerEigenValsAndVecs , for each pixel \\f$(x, y)\\f$ it calculates a \\f$2\\times2\\f$ gradient covariance\n. matrix \\f$M^{(x,y)}\\f$ over a \\f$\\texttt{blockSize} \\times \\texttt{blockSize}\\f$ neighborhood. Then, it\n. computes the following characteristic:\n. \n. \\f[\\texttt{dst} (x,y) = \\mathrm{det} M^{(x,y)} - k \\cdot \\left ( \\mathrm{tr} M^{(x,y)} \\right )^2\\f]\n. \n. Corners in the image can be found as the local maxima of this response map.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the Harris detector responses. It has the type CV_32FC1 and the same\n. size as src .\n. @param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param k Harris detector free parameter. See the formula above.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' ... - -def cornerMinEigenVal(src: ndarray, blockSize, dts: ndarray = ..., ksize=..., borderType=...) -> typing.Any: +def cornerMinEigenVal(src: Mat, blockSize, dts: Mat = ..., ksize=..., borderType=...) -> typing.Any: 'cornerMinEigenVal(src, blockSize[, dst[, ksize[, borderType]]]) -> dst\n. @brief Calculates the minimal eigenvalue of gradient matrices for corner detection.\n. \n. The function is similar to cornerEigenValsAndVecs but it calculates and stores only the minimal\n. eigenvalue of the covariance matrix of derivatives, that is, \\f$\\min(\\lambda_1, \\lambda_2)\\f$ in terms\n. of the formulae in the cornerEigenValsAndVecs description.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the minimal eigenvalues. It has the type CV_32FC1 and the same size as\n. src .\n. @param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' ... - -def cornerSubPix(image: ndarray, corners, winSize, zeroZone, criteria) -> typing.Any: +def cornerSubPix(image: Mat, corners, winSize, zeroZone, criteria) -> typing.Any: 'cornerSubPix(image, corners, winSize, zeroZone, criteria) -> corners\n. @brief Refines the corner locations.\n. \n. The function iterates to find the sub-pixel accurate location of corners or radial saddle points, as\n. shown on the figure below.\n. \n. ![image](pics/cornersubpix.png)\n. \n. Sub-pixel accurate corner locator is based on the observation that every vector from the center \\f$q\\f$\n. to a point \\f$p\\f$ located within a neighborhood of \\f$q\\f$ is orthogonal to the image gradient at \\f$p\\f$\n. subject to image and measurement noise. Consider the expression:\n. \n. \\f[\\epsilon _i = {DI_{p_i}}^T \\cdot (q - p_i)\\f]\n. \n. where \\f${DI_{p_i}}\\f$ is an image gradient at one of the points \\f$p_i\\f$ in a neighborhood of \\f$q\\f$ . The\n. value of \\f$q\\f$ is to be found so that \\f$\\epsilon_i\\f$ is minimized. A system of equations may be set up\n. with \\f$\\epsilon_i\\f$ set to zero:\n. \n. \\f[\\sum _i(DI_{p_i} \\cdot {DI_{p_i}}^T) \\cdot q - \\sum _i(DI_{p_i} \\cdot {DI_{p_i}}^T \\cdot p_i)\\f]\n. \n. where the gradients are summed within a neighborhood ("search window") of \\f$q\\f$ . Calling the first\n. gradient term \\f$G\\f$ and the second gradient term \\f$b\\f$ gives:\n. \n. \\f[q = G^{-1} \\cdot b\\f]\n. \n. The algorithm sets the center of the neighborhood window at this new center \\f$q\\f$ and then iterates\n. until the center stays within a set threshold.\n. \n. @param image Input single-channel, 8-bit or float image.\n. @param corners Initial coordinates of the input corners and refined coordinates provided for\n. output.\n. @param winSize Half of the side length of the search window. For example, if winSize=Size(5,5) ,\n. then a \\f$(5*2+1) \\times (5*2+1) = 11 \\times 11\\f$ search window is used.\n. @param zeroZone Half of the size of the dead region in the middle of the search zone over which\n. the summation in the formula below is not done. It is used sometimes to avoid possible\n. singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such\n. a size.\n. @param criteria Criteria for termination of the iterative process of corner refinement. That is,\n. the process of corner position refinement stops either after criteria.maxCount iterations or when\n. the corner position moves by less than criteria.epsilon on some iteration.' ... - def correctMatches(F, points1, points2, newPoints1=..., newPoints2=...) -> typing.Any: 'correctMatches(F, points1, points2[, newPoints1[, newPoints2]]) -> newPoints1, newPoints2\n. @brief Refines coordinates of corresponding points.\n. \n. @param F 3x3 fundamental matrix.\n. @param points1 1xN array containing the first set of points.\n. @param points2 1xN array containing the second set of points.\n. @param newPoints1 The optimized points1.\n. @param newPoints2 The optimized points2.\n. \n. The function implements the Optimal Triangulation Method (see Multiple View Geometry for details).\n. For each given point correspondence points1[i] \\<-\\> points2[i], and a fundamental matrix F, it\n. computes the corrected correspondences newPoints1[i] \\<-\\> newPoints2[i] that minimize the geometric\n. error \\f$d(points1[i], newPoints1[i])^2 + d(points2[i],newPoints2[i])^2\\f$ (where \\f$d(a,b)\\f$ is the\n. geometric distance between points \\f$a\\f$ and \\f$b\\f$ ) subject to the epipolar constraint\n. \\f$newPoints2^T * F * newPoints1 = 0\\f$ .' ... - def countNonZero(src) -> typing.Any: 'countNonZero(src) -> retval\n. @brief Counts non-zero array elements.\n. \n. The function returns the number of non-zero elements in src :\n. \\f[\\sum _{I: \\; \\texttt{src} (I) \\ne0 } 1\\f]\n. @param src single-channel array.\n. @sa mean, meanStdDev, norm, minMaxLoc, calcCovarMatrix' ... - def createAlignMTB(max_bits=..., exclude_range=..., cut=...) -> typing.Any: 'createAlignMTB([, max_bits[, exclude_range[, cut]]]) -> retval\n. @brief Creates AlignMTB object\n. \n. @param max_bits logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are\n. usually good enough (31 and 63 pixels shift respectively).\n. @param exclude_range range for exclusion bitmap that is constructed to suppress noise around the\n. median value.\n. @param cut if true cuts images, otherwise fills the new regions with zeros.' ... - def createBackgroundSubtractorKNN(history=..., dist2Threshold=..., detectShadows=...) -> typing.Any: 'createBackgroundSubtractorKNN([, history[, dist2Threshold[, detectShadows]]]) -> retval\n. @brief Creates KNN Background Subtractor\n. \n. @param history Length of the history.\n. @param dist2Threshold Threshold on the squared distance between the pixel and the sample to decide\n. whether a pixel is close to that sample. This parameter does not affect the background update.\n. @param detectShadows If true, the algorithm will detect shadows and mark them. It decreases the\n. speed a bit, so if you do not need this feature, set the parameter to false.' ... - def createBackgroundSubtractorMOG2(history=..., varThreshold=..., detectShadows=...) -> typing.Any: 'createBackgroundSubtractorMOG2([, history[, varThreshold[, detectShadows]]]) -> retval\n. @brief Creates MOG2 Background Subtractor\n. \n. @param history Length of the history.\n. @param varThreshold Threshold on the squared Mahalanobis distance between the pixel and the model\n. to decide whether a pixel is well described by the background model. This parameter does not\n. affect the background update.\n. @param detectShadows If true, the algorithm will detect shadows and mark them. It decreases the\n. speed a bit, so if you do not need this feature, set the parameter to false.' ... - def createButton(buttonName, onChange, userData=..., buttonType=..., initialButtonState=...) -> typing.Any: 'createButton(buttonName, onChange [, userData, buttonType, initialButtonState]) -> None' ... - def createCLAHE(clipLimit=..., tileGridSize=...) -> typing.Any: 'createCLAHE([, clipLimit[, tileGridSize]]) -> retval\n. @brief Creates a smart pointer to a cv::CLAHE class and initializes it.\n. \n. @param clipLimit Threshold for contrast limiting.\n. @param tileGridSize Size of grid for histogram equalization. Input image will be divided into\n. equally sized rectangular tiles. tileGridSize defines the number of tiles in row and column.' ... - def createCalibrateDebevec(samples=..., lambda_=..., random=...) -> typing.Any: 'createCalibrateDebevec([, samples[, lambda[, random]]]) -> retval\n. @brief Creates CalibrateDebevec object\n. \n. @param samples number of pixel locations to use\n. @param lambda smoothness term weight. Greater values produce smoother results, but can alter the\n. response.\n. @param random if true sample pixel locations are chosen at random, otherwise they form a\n. rectangular grid.' ... - def createCalibrateRobertson(max_iter=..., threshold=...) -> typing.Any: 'createCalibrateRobertson([, max_iter[, threshold]]) -> retval\n. @brief Creates CalibrateRobertson object\n. \n. @param max_iter maximal number of Gauss-Seidel solver iterations.\n. @param threshold target difference between results of two successive steps of the minimization.' ... - def createGeneralizedHoughBallard() -> typing.Any: 'createGeneralizedHoughBallard() -> retval\n. @brief Creates a smart pointer to a cv::GeneralizedHoughBallard class and initializes it.' ... - def createGeneralizedHoughGuil() -> typing.Any: 'createGeneralizedHoughGuil() -> retval\n. @brief Creates a smart pointer to a cv::GeneralizedHoughGuil class and initializes it.' ... - -def createHanningWindow(winSize, type, dts: ndarray = ...) -> typing.Any: +def createHanningWindow(winSize, type, dts: Mat = ...) -> typing.Any: 'createHanningWindow(winSize, type[, dst]) -> dst\n. @brief This function computes a Hanning window coefficients in two dimensions.\n. \n. See (http://en.wikipedia.org/wiki/Hann_function) and (http://en.wikipedia.org/wiki/Window_function)\n. for more information.\n. \n. An example is shown below:\n. @code\n. // create hanning window of size 100x100 and type CV_32F\n. Mat hann;\n. createHanningWindow(hann, Size(100, 100), CV_32F);\n. @endcode\n. @param dst Destination array to place Hann coefficients in\n. @param winSize The window size specifications (both width and height must be > 1)\n. @param type Created array type' ... - def createLineSegmentDetector(_refine=..., _scale=..., _sigma_scale=..., _quant=..., _ang_th=..., _log_eps=..., _density_th=..., _n_bins=...) -> typing.Any: 'createLineSegmentDetector([, _refine[, _scale[, _sigma_scale[, _quant[, _ang_th[, _log_eps[, _density_th[, _n_bins]]]]]]]]) -> retval\n. @brief Creates a smart pointer to a LineSegmentDetector object and initializes it.\n. \n. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want\n. to edit those, as to tailor it for their own application.\n. \n. @param _refine The way found lines will be refined, see #LineSegmentDetectorModes\n. @param _scale The scale of the image that will be used to find the lines. Range (0..1].\n. @param _sigma_scale Sigma for Gaussian filter. It is computed as sigma = _sigma_scale/_scale.\n. @param _quant Bound to the quantization error on the gradient norm.\n. @param _ang_th Gradient angle tolerance in degrees.\n. @param _log_eps Detection threshold: -log10(NFA) \\> log_eps. Used only when advance refinement\n. is chosen.\n. @param _density_th Minimal density of aligned region points in the enclosing rectangle.\n. @param _n_bins Number of bins in pseudo-ordering of gradient modulus.\n. \n. @note Implementation has been removed due original code license conflict' ... - def createMergeDebevec() -> typing.Any: 'createMergeDebevec() -> retval\n. @brief Creates MergeDebevec object' ... - def createMergeMertens(contrast_weight=..., saturation_weight=..., exposure_weight=...) -> typing.Any: 'createMergeMertens([, contrast_weight[, saturation_weight[, exposure_weight]]]) -> retval\n. @brief Creates MergeMertens object\n. \n. @param contrast_weight contrast measure weight. See MergeMertens.\n. @param saturation_weight saturation measure weight\n. @param exposure_weight well-exposedness measure weight' ... - def createMergeRobertson() -> typing.Any: 'createMergeRobertson() -> retval\n. @brief Creates MergeRobertson object' ... - def createTonemap(gamma=...) -> typing.Any: 'createTonemap([, gamma]) -> retval\n. @brief Creates simple linear mapper with gamma correction\n. \n. @param gamma positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma\n. equal to 2.2f is suitable for most displays.\n. Generally gamma \\> 1 brightens the image and gamma \\< 1 darkens it.' ... - def createTonemapDrago(gamma=..., saturation=..., bias=...) -> typing.Any: 'createTonemapDrago([, gamma[, saturation[, bias]]]) -> retval\n. @brief Creates TonemapDrago object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param saturation positive saturation enhancement value. 1.0 preserves saturation, values greater\n. than 1 increase saturation and values less than 1 decrease it.\n. @param bias value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best\n. results, default value is 0.85.' ... - def createTonemapMantiuk(gamma=..., scale=..., saturation=...) -> typing.Any: 'createTonemapMantiuk([, gamma[, scale[, saturation]]]) -> retval\n. @brief Creates TonemapMantiuk object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param scale contrast scale factor. HVS response is multiplied by this parameter, thus compressing\n. dynamic range. Values from 0.6 to 0.9 produce best results.\n. @param saturation saturation enhancement value. See createTonemapDrago' ... - def createTonemapReinhard(gamma=..., intensity=..., light_adapt=..., color_adapt=...) -> typing.Any: "createTonemapReinhard([, gamma[, intensity[, light_adapt[, color_adapt]]]]) -> retval\n. @brief Creates TonemapReinhard object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param intensity result intensity in [-8, 8] range. Greater intensity produces brighter results.\n. @param light_adapt light adaptation in [0, 1] range. If 1 adaptation is based only on pixel\n. value, if 0 it's global, otherwise it's a weighted mean of this two cases.\n. @param color_adapt chromatic adaptation in [0, 1] range. If 1 channels are treated independently,\n. if 0 adaptation level is the same for each channel." ... - def createTrackbar(trackbarName, windowName, value, count, onChange) -> typing.Any: 'createTrackbar(trackbarName, windowName, value, count, onChange) -> None' ... - def cubeRoot(val) -> typing.Any: 'cubeRoot(val) -> retval\n. @brief Computes the cube root of an argument.\n. \n. The function cubeRoot computes \\f$\\sqrt[3]{\\texttt{val}}\\f$. Negative arguments are handled correctly.\n. NaN and Inf are not handled. The accuracy approaches the maximum possible accuracy for\n. single-precision data.\n. @param val A function argument.' ... - cuda_BufferPool = _mod_cv2.cuda_BufferPool cuda_DeviceInfo = _mod_cv2.cuda_DeviceInfo cuda_Event = _mod_cv2.cuda_Event @@ -2245,68 +2051,54 @@ cuda_GpuMat_Allocator = _mod_cv2.cuda_GpuMat_Allocator cuda_HostMem = _mod_cv2.cuda_HostMem cuda_Stream = _mod_cv2.cuda_Stream cuda_TargetArchs = _mod_cv2.cuda_TargetArchs - - -def cvtColor(src: ndarray, code: int, dts: ndarray = ..., dstCn: int = ...) -> ndarray: +def cvtColor(src: Mat, code: int, dts: Mat = ..., dstCn: int = ...) -> Mat: 'cvtColor(src, code[, dst[, dstCn]]) -> dst\n. @brief Converts an image from one color space to another.\n. \n. The function converts an input image from one color space to another. In case of a transformation\n. to-from RGB color space, the order of the channels should be specified explicitly (RGB or BGR). Note\n. that the default color format in OpenCV is often referred to as RGB but it is actually BGR (the\n. bytes are reversed). So the first byte in a standard (24-bit) color image will be an 8-bit Blue\n. component, the second byte will be Green, and the third byte will be Red. The fourth, fifth, and\n. sixth bytes would then be the second pixel (Blue, then Green, then Red), and so on.\n. \n. The conventional ranges for R, G, and B channel values are:\n. - 0 to 255 for CV_8U images\n. - 0 to 65535 for CV_16U images\n. - 0 to 1 for CV_32F images\n. \n. In case of linear transformations, the range does not matter. But in case of a non-linear\n. transformation, an input RGB image should be normalized to the proper value range to get the correct\n. results, for example, for RGB \\f$\\rightarrow\\f$ L\\*u\\*v\\* transformation. For example, if you have a\n. 32-bit floating-point image directly converted from an 8-bit image without any scaling, then it will\n. have the 0..255 value range instead of 0..1 assumed by the function. So, before calling #cvtColor ,\n. you need first to scale the image down:\n. @code\n. img *= 1./255;\n. cvtColor(img, img, COLOR_BGR2Luv);\n. @endcode\n. If you use #cvtColor with 8-bit images, the conversion will have some information lost. For many\n. applications, this will not be noticeable but it is recommended to use 32-bit images in applications\n. that need the full range of colors or that convert an image before an operation and then convert\n. back.\n. \n. If conversion adds the alpha channel, its value will set to the maximum of corresponding channel\n. range: 255 for CV_8U, 65535 for CV_16U, 1 for CV_32F.\n. \n. @param src input image: 8-bit unsigned, 16-bit unsigned ( CV_16UC... ), or single-precision\n. floating-point.\n. @param dst output image of the same size and depth as src.\n. @param code color space conversion code (see #ColorConversionCodes).\n. @param dstCn number of channels in the destination image; if the parameter is 0, the number of the\n. channels is derived automatically from src and code.\n. \n. @see @ref imgproc_color_conversions' ... - -def cvtColorTwoPlane(src1: ndarray, src2: ndarray, code: int, dts: ndarray = ...) -> typing.Any: +def cvtColorTwoPlane(src1: Mat, src2: Mat, code: int, dts: Mat = ...) -> typing.Any: 'cvtColorTwoPlane(src1, src2, code[, dst]) -> dst\n. @brief Converts an image from one color space to another where the source image is\n. stored in two planes.\n. \n. This function only supports YUV420 to RGB conversion as of now.\n. \n. @param src1: 8-bit image (#CV_8U) of the Y plane.\n. @param src2: image containing interleaved U/V plane.\n. @param dst: output image.\n. @param code: Specifies the type of conversion. It can take any of the following values:\n. - #COLOR_YUV2BGR_NV12\n. - #COLOR_YUV2RGB_NV12\n. - #COLOR_YUV2BGRA_NV12\n. - #COLOR_YUV2RGBA_NV12\n. - #COLOR_YUV2BGR_NV21\n. - #COLOR_YUV2RGB_NV21\n. - #COLOR_YUV2BGRA_NV21\n. - #COLOR_YUV2RGBA_NV21' ... - -def dct(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: +def dct(src: Mat, dts: Mat = ..., flags: int = ...) -> typing.Any: 'dct(src[, dst[, flags]]) -> dst\n. @brief Performs a forward or inverse discrete Cosine transform of 1D or 2D array.\n. \n. The function cv::dct performs a forward or inverse discrete Cosine transform (DCT) of a 1D or 2D\n. floating-point array:\n. - Forward Cosine transform of a 1D vector of N elements:\n. \\f[Y = C^{(N)} \\cdot X\\f]\n. where\n. \\f[C^{(N)}_{jk}= \\sqrt{\\alpha_j/N} \\cos \\left ( \\frac{\\pi(2k+1)j}{2N} \\right )\\f]\n. and\n. \\f$\\alpha_0=1\\f$, \\f$\\alpha_j=2\\f$ for *j \\> 0*.\n. - Inverse Cosine transform of a 1D vector of N elements:\n. \\f[X = \\left (C^{(N)} \\right )^{-1} \\cdot Y = \\left (C^{(N)} \\right )^T \\cdot Y\\f]\n. (since \\f$C^{(N)}\\f$ is an orthogonal matrix, \\f$C^{(N)} \\cdot \\left(C^{(N)}\\right)^T = I\\f$ )\n. - Forward 2D Cosine transform of M x N matrix:\n. \\f[Y = C^{(N)} \\cdot X \\cdot \\left (C^{(N)} \\right )^T\\f]\n. - Inverse 2D Cosine transform of M x N matrix:\n. \\f[X = \\left (C^{(N)} \\right )^T \\cdot X \\cdot C^{(N)}\\f]\n. \n. The function chooses the mode of operation by looking at the flags and size of the input array:\n. - If (flags & #DCT_INVERSE) == 0 , the function does a forward 1D or 2D transform. Otherwise, it\n. is an inverse 1D or 2D transform.\n. - If (flags & #DCT_ROWS) != 0 , the function performs a 1D transform of each row.\n. - If the array is a single column or a single row, the function performs a 1D transform.\n. - If none of the above is true, the function performs a 2D transform.\n. \n. @note Currently dct supports even-size arrays (2, 4, 6 ...). For data analysis and approximation, you\n. can pad the array when necessary.\n. Also, the function performance depends very much, and not monotonically, on the array size (see\n. getOptimalDFTSize ). In the current implementation DCT of a vector of size N is calculated via DFT\n. of a vector of size N/2 . Thus, the optimal DCT size N1 \\>= N can be calculated as:\n. @code\n. size_t getOptimalDCTSize(size_t N) { return 2*getOptimalDFTSize((N+1)/2); }\n. N1 = getOptimalDCTSize(N);\n. @endcode\n. @param src input floating-point array.\n. @param dst output array of the same size and type as src .\n. @param flags transformation flags as a combination of cv::DftFlags (DCT_*)\n. @sa dft , getOptimalDFTSize , idct' ... - -def decolor(src: ndarray, grayscale=..., color_boost=...) -> typing.Any: +def decolor(src: Mat, grayscale=..., color_boost=...) -> typing.Any: 'decolor(src[, grayscale[, color_boost]]) -> grayscale, color_boost\n. @brief Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized\n. black-and-white photograph rendering, and in many single channel image processing applications\n. @cite CL12 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param grayscale Output 8-bit 1-channel image.\n. @param color_boost Output 8-bit 3-channel image.\n. \n. This function is to be applied on color images.' ... - def decomposeEssentialMat(E, R1=..., R2=..., t=...) -> typing.Any: "decomposeEssentialMat(E[, R1[, R2[, t]]]) -> R1, R2, t\n. @brief Decompose an essential matrix to possible rotations and translation.\n. \n. @param E The input essential matrix.\n. @param R1 One possible rotation matrix.\n. @param R2 Another possible rotation matrix.\n. @param t One possible translation.\n. \n. This function decomposes the essential matrix E using svd decomposition @cite HartleyZ00. In\n. general, four possible poses exist for the decomposition of E. They are \\f$[R_1, t]\\f$,\n. \\f$[R_1, -t]\\f$, \\f$[R_2, t]\\f$, \\f$[R_2, -t]\\f$.\n. \n. If E gives the epipolar constraint \\f$[p_2; 1]^T A^{-T} E A^{-1} [p_1; 1] = 0\\f$ between the image\n. points \\f$p_1\\f$ in the first image and \\f$p_2\\f$ in second image, then any of the tuples\n. \\f$[R_1, t]\\f$, \\f$[R_1, -t]\\f$, \\f$[R_2, t]\\f$, \\f$[R_2, -t]\\f$ is a change of basis from the first\n. camera's coordinate system to the second camera's coordinate system. However, by decomposing E, one\n. can only get the direction of the translation. For this reason, the translation t is returned with\n. unit length." ... - def decomposeHomographyMat(H, K, rotations=..., translations=..., normals=...) -> typing.Any: "decomposeHomographyMat(H, K[, rotations[, translations[, normals]]]) -> retval, rotations, translations, normals\n. @brief Decompose a homography matrix to rotation(s), translation(s) and plane normal(s).\n. \n. @param H The input homography matrix between two images.\n. @param K The input intrinsic camera calibration matrix.\n. @param rotations Array of rotation matrices.\n. @param translations Array of translation matrices.\n. @param normals Array of plane normal matrices.\n. \n. This function extracts relative camera motion between two views of a planar object and returns up to\n. four mathematical solution tuples of rotation, translation, and plane normal. The decomposition of\n. the homography matrix H is described in detail in @cite Malis.\n. \n. If the homography H, induced by the plane, gives the constraint\n. \\f[s_i \\vecthree{x'_i}{y'_i}{1} \\sim H \\vecthree{x_i}{y_i}{1}\\f] on the source image points\n. \\f$p_i\\f$ and the destination image points \\f$p'_i\\f$, then the tuple of rotations[k] and\n. translations[k] is a change of basis from the source camera's coordinate system to the destination\n. camera's coordinate system. However, by decomposing H, one can only get the translation normalized\n. by the (typically unknown) depth of the scene, i.e. its direction but with normalized length.\n. \n. If point correspondences are available, at least two solutions may further be invalidated, by\n. applying positive depth constraint, i.e. all points must be in front of the camera." ... - def decomposeProjectionMatrix(projMatrix, cameraMatrix=..., rotMatrix=..., transVect=..., rotMatrixX=..., rotMatrixY=..., rotMatrixZ=..., eulerAngles=...) -> typing.Any: 'decomposeProjectionMatrix(projMatrix[, cameraMatrix[, rotMatrix[, transVect[, rotMatrixX[, rotMatrixY[, rotMatrixZ[, eulerAngles]]]]]]]) -> cameraMatrix, rotMatrix, transVect, rotMatrixX, rotMatrixY, rotMatrixZ, eulerAngles\n. @brief Decomposes a projection matrix into a rotation matrix and a camera matrix.\n. \n. @param projMatrix 3x4 input projection matrix P.\n. @param cameraMatrix Output 3x3 camera matrix K.\n. @param rotMatrix Output 3x3 external rotation matrix R.\n. @param transVect Output 4x1 translation vector T.\n. @param rotMatrixX Optional 3x3 rotation matrix around x-axis.\n. @param rotMatrixY Optional 3x3 rotation matrix around y-axis.\n. @param rotMatrixZ Optional 3x3 rotation matrix around z-axis.\n. @param eulerAngles Optional three-element vector containing three Euler angles of rotation in\n. degrees.\n. \n. The function computes a decomposition of a projection matrix into a calibration and a rotation\n. matrix and the position of a camera.\n. \n. It optionally returns three rotation matrices, one for each axis, and three Euler angles that could\n. be used in OpenGL. Note, there is always more than one sequence of rotations about the three\n. principal axes that results in the same orientation of an object, e.g. see @cite Slabaugh . Returned\n. tree rotation matrices and corresponding three Euler angles are only one of the possible solutions.\n. \n. The function is based on RQDecomp3x3 .' ... - -def demosaicing(src: ndarray, code: int, dts: ndarray = ..., dstCn: int = ...) -> typing.Any: +def demosaicing(src: Mat, code: int, dts: Mat = ..., dstCn: int = ...) -> typing.Any: 'demosaicing(src, code[, dst[, dstCn]]) -> dst\n. @brief main function for all demosaicing processes\n. \n. @param src input image: 8-bit unsigned or 16-bit unsigned.\n. @param dst output image of the same size and depth as src.\n. @param code Color space conversion code (see the description below).\n. @param dstCn number of channels in the destination image; if the parameter is 0, the number of the\n. channels is derived automatically from src and code.\n. \n. The function can do the following transformations:\n. \n. - Demosaicing using bilinear interpolation\n. \n. #COLOR_BayerBG2BGR , #COLOR_BayerGB2BGR , #COLOR_BayerRG2BGR , #COLOR_BayerGR2BGR\n. \n. #COLOR_BayerBG2GRAY , #COLOR_BayerGB2GRAY , #COLOR_BayerRG2GRAY , #COLOR_BayerGR2GRAY\n. \n. - Demosaicing using Variable Number of Gradients.\n. \n. #COLOR_BayerBG2BGR_VNG , #COLOR_BayerGB2BGR_VNG , #COLOR_BayerRG2BGR_VNG , #COLOR_BayerGR2BGR_VNG\n. \n. - Edge-Aware Demosaicing.\n. \n. #COLOR_BayerBG2BGR_EA , #COLOR_BayerGB2BGR_EA , #COLOR_BayerRG2BGR_EA , #COLOR_BayerGR2BGR_EA\n. \n. - Demosaicing with alpha channel\n. \n. #COLOR_BayerBG2BGRA , #COLOR_BayerGB2BGRA , #COLOR_BayerRG2BGRA , #COLOR_BayerGR2BGRA\n. \n. @sa cvtColor' ... - def denoise_TVL1(observations, result, lambda_=..., niters=...) -> typing.Any: "denoise_TVL1(observations, result[, lambda[, niters]]) -> None\n. @brief Primal-dual algorithm is an algorithm for solving special types of variational problems (that is,\n. finding a function to minimize some functional). As the image denoising, in particular, may be seen\n. as the variational problem, primal-dual algorithm then can be used to perform denoising and this is\n. exactly what is implemented.\n. \n. It should be noted, that this implementation was taken from the July 2013 blog entry\n. @cite MA13 , which also contained (slightly more general) ready-to-use source code on Python.\n. Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end\n. of July 2013 and finally it was slightly adapted by later authors.\n. \n. Although the thorough discussion and justification of the algorithm involved may be found in\n. @cite ChambolleEtAl, it might make sense to skim over it here, following @cite MA13 . To begin\n. with, we consider the 1-byte gray-level images as the functions from the rectangular domain of\n. pixels (it may be seen as set\n. \\f$\\left\\{(x,y)\\in\\mathbb{N}\\times\\mathbb{N}\\mid 1\\leq x\\leq n,\\;1\\leq y\\leq m\\right\\}\\f$ for some\n. \\f$m,\\;n\\in\\mathbb{N}\\f$) into \\f$\\{0,1,\\dots,255\\}\\f$. We shall denote the noised images as \\f$f_i\\f$ and with\n. this view, given some image \\f$x\\f$ of the same size, we may measure how bad it is by the formula\n. \n. \\f[\\left\\|\\left\\|\\nabla x\\right\\|\\right\\| + \\lambda\\sum_i\\left\\|\\left\\|x-f_i\\right\\|\\right\\|\\f]\n. \n. \\f$\\|\\|\\cdot\\|\\|\\f$ here denotes \\f$L_2\\f$-norm and as you see, the first addend states that we want our\n. image to be smooth (ideally, having zero gradient, thus being constant) and the second states that\n. we want our result to be close to the observations we've got. If we treat \\f$x\\f$ as a function, this is\n. exactly the functional what we seek to minimize and here the Primal-Dual algorithm comes into play.\n. \n. @param observations This array should contain one or more noised versions of the image that is to\n. be restored.\n. @param result Here the denoised image will be stored. There is no need to do pre-allocation of\n. storage space, as it will be automatically allocated, if necessary.\n. @param lambda Corresponds to \\f$\\lambda\\f$ in the formulas above. As it is enlarged, the smooth\n. (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly\n. speaking, as it becomes smaller, the result will be more blur but more sever outliers will be\n. removed.\n. @param niters Number of iterations that the algorithm will run. Of course, as more iterations as\n. better, but it is hard to quantitatively refine this statement, so just use the default and\n. increase it if the results are poor." ... - def destroyAllWindows() -> typing.Any: 'destroyAllWindows() -> None\n. @brief Destroys all of the HighGUI windows.\n. \n. The function destroyAllWindows destroys all of the opened HighGUI windows.' ... - def destroyWindow(winname) -> typing.Any: 'destroyWindow(winname) -> None\n. @brief Destroys the specified window.\n. \n. The function destroyWindow destroys the window with the given name.\n. \n. @param winname Name of the window to be destroyed.' ... - -def detailEnhance(src: ndarray, dts: ndarray = ..., sigma_s=..., sigma_r=...) -> typing.Any: +def detailEnhance(src: Mat, dts: Mat = ..., sigma_s=..., sigma_r=...) -> typing.Any: 'detailEnhance(src[, dst[, sigma_s[, sigma_r]]]) -> dst\n. @brief This filter enhances the details of a particular image.\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' ... - detail_AffineBasedEstimator = _mod_cv2.detail_AffineBasedEstimator detail_AffineBestOf2NearestMatcher = _mod_cv2.detail_AffineBestOf2NearestMatcher detail_BestOf2NearestMatcher = _mod_cv2.detail_BestOf2NearestMatcher @@ -2343,48 +2135,38 @@ detail_SphericalProjector = _mod_cv2.detail_SphericalProjector detail_Timelapser = _mod_cv2.detail_Timelapser detail_TimelapserCrop = _mod_cv2.detail_TimelapserCrop detail_VoronoiSeamFinder = _mod_cv2.detail_VoronoiSeamFinder - - def determinant(mtx) -> typing.Any: 'determinant(mtx) -> retval\n. @brief Returns the determinant of a square floating-point matrix.\n. \n. The function cv::determinant calculates and returns the determinant of the\n. specified matrix. For small matrices ( mtx.cols=mtx.rows\\<=3 ), the\n. direct method is used. For larger matrices, the function uses LU\n. factorization with partial pivoting.\n. \n. For symmetric positively-determined matrices, it is also possible to use\n. eigen decomposition to calculate the determinant.\n. @param mtx input matrix that must have CV_32FC1 or CV_64FC1 type and\n. square size.\n. @sa trace, invert, solve, eigen, @ref MatrixExpressions' ... - -def dft(src: ndarray, dts: ndarray = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: +def dft(src: Mat, dts: Mat = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: 'dft(src[, dst[, flags[, nonzeroRows]]]) -> dst\n. @brief Performs a forward or inverse Discrete Fourier transform of a 1D or 2D floating-point array.\n. \n. The function cv::dft performs one of the following:\n. - Forward the Fourier transform of a 1D vector of N elements:\n. \\f[Y = F^{(N)} \\cdot X,\\f]\n. where \\f$F^{(N)}_{jk}=\\exp(-2\\pi i j k/N)\\f$ and \\f$i=\\sqrt{-1}\\f$\n. - Inverse the Fourier transform of a 1D vector of N elements:\n. \\f[\\begin{array}{l} X\'= \\left (F^{(N)} \\right )^{-1} \\cdot Y = \\left (F^{(N)} \\right )^* \\cdot y \\\\ X = (1/N) \\cdot X, \\end{array}\\f]\n. where \\f$F^*=\\left(\\textrm{Re}(F^{(N)})-\\textrm{Im}(F^{(N)})\\right)^T\\f$\n. - Forward the 2D Fourier transform of a M x N matrix:\n. \\f[Y = F^{(M)} \\cdot X \\cdot F^{(N)}\\f]\n. - Inverse the 2D Fourier transform of a M x N matrix:\n. \\f[\\begin{array}{l} X\'= \\left (F^{(M)} \\right )^* \\cdot Y \\cdot \\left (F^{(N)} \\right )^* \\\\ X = \\frac{1}{M \\cdot N} \\cdot X\' \\end{array}\\f]\n. \n. In case of real (single-channel) data, the output spectrum of the forward Fourier transform or input\n. spectrum of the inverse Fourier transform can be represented in a packed format called *CCS*\n. (complex-conjugate-symmetrical). It was borrowed from IPL (Intel\\* Image Processing Library). Here\n. is how 2D *CCS* spectrum looks:\n. \\f[\\begin{bmatrix} Re Y_{0,0} & Re Y_{0,1} & Im Y_{0,1} & Re Y_{0,2} & Im Y_{0,2} & \\cdots & Re Y_{0,N/2-1} & Im Y_{0,N/2-1} & Re Y_{0,N/2} \\\\ Re Y_{1,0} & Re Y_{1,1} & Im Y_{1,1} & Re Y_{1,2} & Im Y_{1,2} & \\cdots & Re Y_{1,N/2-1} & Im Y_{1,N/2-1} & Re Y_{1,N/2} \\\\ Im Y_{1,0} & Re Y_{2,1} & Im Y_{2,1} & Re Y_{2,2} & Im Y_{2,2} & \\cdots & Re Y_{2,N/2-1} & Im Y_{2,N/2-1} & Im Y_{1,N/2} \\\\ \\hdotsfor{9} \\\\ Re Y_{M/2-1,0} & Re Y_{M-3,1} & Im Y_{M-3,1} & \\hdotsfor{3} & Re Y_{M-3,N/2-1} & Im Y_{M-3,N/2-1}& Re Y_{M/2-1,N/2} \\\\ Im Y_{M/2-1,0} & Re Y_{M-2,1} & Im Y_{M-2,1} & \\hdotsfor{3} & Re Y_{M-2,N/2-1} & Im Y_{M-2,N/2-1}& Im Y_{M/2-1,N/2} \\\\ Re Y_{M/2,0} & Re Y_{M-1,1} & Im Y_{M-1,1} & \\hdotsfor{3} & Re Y_{M-1,N/2-1} & Im Y_{M-1,N/2-1}& Re Y_{M/2,N/2} \\end{bmatrix}\\f]\n. \n. In case of 1D transform of a real vector, the output looks like the first row of the matrix above.\n. \n. So, the function chooses an operation mode depending on the flags and size of the input array:\n. - If #DFT_ROWS is set or the input array has a single row or single column, the function\n. performs a 1D forward or inverse transform of each row of a matrix when #DFT_ROWS is set.\n. Otherwise, it performs a 2D transform.\n. - If the input array is real and #DFT_INVERSE is not set, the function performs a forward 1D or\n. 2D transform:\n. - When #DFT_COMPLEX_OUTPUT is set, the output is a complex matrix of the same size as\n. input.\n. - When #DFT_COMPLEX_OUTPUT is not set, the output is a real matrix of the same size as\n. input. In case of 2D transform, it uses the packed format as shown above. In case of a\n. single 1D transform, it looks like the first row of the matrix above. In case of\n. multiple 1D transforms (when using the #DFT_ROWS flag), each row of the output matrix\n. looks like the first row of the matrix above.\n. - If the input array is complex and either #DFT_INVERSE or #DFT_REAL_OUTPUT are not set, the\n. output is a complex array of the same size as input. The function performs a forward or\n. inverse 1D or 2D transform of the whole input array or each row of the input array\n. independently, depending on the flags DFT_INVERSE and DFT_ROWS.\n. - When #DFT_INVERSE is set and the input array is real, or it is complex but #DFT_REAL_OUTPUT\n. is set, the output is a real array of the same size as input. The function performs a 1D or 2D\n. inverse transformation of the whole input array or each individual row, depending on the flags\n. #DFT_INVERSE and #DFT_ROWS.\n. \n. If #DFT_SCALE is set, the scaling is done after the transformation.\n. \n. Unlike dct , the function supports arrays of arbitrary size. But only those arrays are processed\n. efficiently, whose sizes can be factorized in a product of small prime numbers (2, 3, and 5 in the\n. current implementation). Such an efficient DFT size can be calculated using the getOptimalDFTSize\n. method.\n. \n. The sample below illustrates how to calculate a DFT-based convolution of two 2D real arrays:\n. @code\n. void convolveDFT(InputArray A, InputArray B, OutputArray C)\n. {\n. // reallocate the output array if needed\n. C.create(abs(A.rows - B.rows)+1, abs(A.cols - B.cols)+1, A.type());\n. Size dftSize;\n. // calculate the size of DFT transform\n. dftSize.width = getOptimalDFTSize(A.cols + B.cols - 1);\n. dftSize.height = getOptimalDFTSize(A.rows + B.rows - 1);\n. \n. // allocate temporary buffers and initialize them with 0\'s\n. Mat tempA(dftSize, A.type(), Scalar::all(0));\n. Mat tempB(dftSize, B.type(), Scalar::all(0));\n. \n. // copy A and B to the top-left corners of tempA and tempB, respectively\n. Mat roiA(tempA, Rect(0,0,A.cols,A.rows));\n. A.copyTo(roiA);\n. Mat roiB(tempB, Rect(0,0,B.cols,B.rows));\n. B.copyTo(roiB);\n. \n. // now transform the padded A & B in-place;\n. // use "nonzeroRows" hint for faster processing\n. dft(tempA, tempA, 0, A.rows);\n. dft(tempB, tempB, 0, B.rows);\n. \n. // multiply the spectrums;\n. // the function handles packed spectrum representations well\n. mulSpectrums(tempA, tempB, tempA);\n. \n. // transform the product back from the frequency domain.\n. // Even though all the result rows will be non-zero,\n. // you need only the first C.rows of them, and thus you\n. // pass nonzeroRows == C.rows\n. dft(tempA, tempA, DFT_INVERSE + DFT_SCALE, C.rows);\n. \n. // now copy the result back to C.\n. tempA(Rect(0, 0, C.cols, C.rows)).copyTo(C);\n. \n. // all the temporary buffers will be deallocated automatically\n. }\n. @endcode\n. To optimize this sample, consider the following approaches:\n. - Since nonzeroRows != 0 is passed to the forward transform calls and since A and B are copied to\n. the top-left corners of tempA and tempB, respectively, it is not necessary to clear the whole\n. tempA and tempB. It is only necessary to clear the tempA.cols - A.cols ( tempB.cols - B.cols)\n. rightmost columns of the matrices.\n. - This DFT-based convolution does not have to be applied to the whole big arrays, especially if B\n. is significantly smaller than A or vice versa. Instead, you can calculate convolution by parts.\n. To do this, you need to split the output array C into multiple tiles. For each tile, estimate\n. which parts of A and B are required to calculate convolution in this tile. If the tiles in C are\n. too small, the speed will decrease a lot because of repeated work. In the ultimate case, when\n. each tile in C is a single pixel, the algorithm becomes equivalent to the naive convolution\n. algorithm. If the tiles are too big, the temporary arrays tempA and tempB become too big and\n. there is also a slowdown because of bad cache locality. So, there is an optimal tile size\n. somewhere in the middle.\n. - If different tiles in C can be calculated in parallel and, thus, the convolution is done by\n. parts, the loop can be threaded.\n. \n. All of the above improvements have been implemented in #matchTemplate and #filter2D . Therefore, by\n. using them, you can get the performance even better than with the above theoretically optimal\n. implementation. Though, those two functions actually calculate cross-correlation, not convolution,\n. so you need to "flip" the second convolution operand B vertically and horizontally using flip .\n. @note\n. - An example using the discrete fourier transform can be found at\n. opencv_source_code/samples/cpp/dft.cpp\n. - (Python) An example using the dft functionality to perform Wiener deconvolution can be found\n. at opencv_source/samples/python/deconvolution.py\n. - (Python) An example rearranging the quadrants of a Fourier image can be found at\n. opencv_source/samples/python/dft.py\n. @param src input array that could be real or complex.\n. @param dst output array whose size and type depends on the flags .\n. @param flags transformation flags, representing a combination of the #DftFlags\n. @param nonzeroRows when the parameter is not zero, the function assumes that only the first\n. nonzeroRows rows of the input array (#DFT_INVERSE is not set) or only the first nonzeroRows of the\n. output array (#DFT_INVERSE is set) contain non-zeros, thus, the function can handle the rest of the\n. rows more efficiently and save some time; this technique is very useful for calculating array\n. cross-correlation or convolution using DFT.\n. @sa dct , getOptimalDFTSize , mulSpectrums, filter2D , matchTemplate , flip , cartToPolar ,\n. magnitude , phase' ... - -def dilate(src: ndarray, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: +def dilate(src: Mat, kernel, dts: Mat = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: "dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Dilates an image by using a specific structuring element.\n. \n. The function dilates the source image using the specified structuring element that determines the\n. shape of a pixel neighborhood over which the maximum is taken:\n. \\f[\\texttt{dst} (x,y) = \\max _{(x',y'): \\, \\texttt{element} (x',y') \\ne0 } \\texttt{src} (x+x',y+y')\\f]\n. \n. The function supports the in-place mode. Dilation can be applied several ( iterations ) times. In\n. case of multi-channel images, each channel is processed independently.\n. \n. @param src input image; the number of channels can be arbitrary, but the depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param kernel structuring element used for dilation; if elemenat=Mat(), a 3 x 3 rectangular\n. structuring element is used. Kernel can be created using #getStructuringElement\n. @param anchor position of the anchor within the element; default value (-1, -1) means that the\n. anchor is at the element center.\n. @param iterations number of times dilation is applied.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not suported.\n. @param borderValue border value in case of a constant border\n. @sa erode, morphologyEx, getStructuringElement" ... - def displayOverlay(winname, text, delayms=...) -> typing.Any: 'displayOverlay(winname, text[, delayms]) -> None\n. @brief Displays a text on a window image as an overlay for a specified duration.\n. \n. The function displayOverlay displays useful information/tips on top of the window for a certain\n. amount of time *delayms*. The function does not modify the image, displayed in the window, that is,\n. after the specified delay the original content of the window is restored.\n. \n. @param winname Name of the window.\n. @param text Overlay text to write on a window image.\n. @param delayms The period (in milliseconds), during which the overlay text is displayed. If this\n. function is called before the previous overlay text timed out, the timer is restarted and the text\n. is updated. If this value is zero, the text never disappears.' ... - def displayStatusBar(winname, text, delayms=...) -> typing.Any: 'displayStatusBar(winname, text[, delayms]) -> None\n. @brief Displays a text on the window statusbar during the specified period of time.\n. \n. The function displayStatusBar displays useful information/tips on top of the window for a certain\n. amount of time *delayms* . This information is displayed on the window statusbar (the window must be\n. created with the CV_GUI_EXPANDED flags).\n. \n. @param winname Name of the window.\n. @param text Text to write on the window statusbar.\n. @param delayms Duration (in milliseconds) to display the text. If this function is called before\n. the previous text timed out, the timer is restarted and the text is updated. If this value is\n. zero, the text never disappears.' ... - -def distanceTransform(src: ndarray, distanceType, maskSize, dts: ndarray = ..., dstType=...) -> typing.Any: +def distanceTransform(src: Mat, distanceType, maskSize, dts: Mat = ..., dstType=...) -> typing.Any: 'distanceTransform(src, distanceType, maskSize[, dst[, dstType]]) -> dst\n. @overload\n. @param src 8-bit, single-channel (binary) source image.\n. @param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point,\n. single-channel image of the same size as src .\n. @param distanceType Type of distance, see #DistanceTypes\n. @param maskSize Size of the distance transform mask, see #DistanceTransformMasks. In case of the\n. #DIST_L1 or #DIST_C distance type, the parameter is forced to 3 because a \\f$3\\times 3\\f$ mask gives\n. the same result as \\f$5\\times 5\\f$ or any larger aperture.\n. @param dstType Type of output image. It can be CV_8U or CV_32F. Type CV_8U can be used only for\n. the first variant of the function and distanceType == #DIST_L1.' ... - -def distanceTransformWithLabels(src: ndarray, distanceType, maskSize, dts: ndarray = ..., labels=..., labelType=...) -> typing.Any: +def distanceTransformWithLabels(src: Mat, distanceType, maskSize, dts: Mat = ..., labels=..., labelType=...) -> typing.Any: "distanceTransformWithLabels(src, distanceType, maskSize[, dst[, labels[, labelType]]]) -> dst, labels\n. @brief Calculates the distance to the closest zero pixel for each pixel of the source image.\n. \n. The function cv::distanceTransform calculates the approximate or precise distance from every binary\n. image pixel to the nearest zero pixel. For zero image pixels, the distance will obviously be zero.\n. \n. When maskSize == #DIST_MASK_PRECISE and distanceType == #DIST_L2 , the function runs the\n. algorithm described in @cite Felzenszwalb04 . This algorithm is parallelized with the TBB library.\n. \n. In other cases, the algorithm @cite Borgefors86 is used. This means that for a pixel the function\n. finds the shortest path to the nearest zero pixel consisting of basic shifts: horizontal, vertical,\n. diagonal, or knight's move (the latest is available for a \\f$5\\times 5\\f$ mask). The overall\n. distance is calculated as a sum of these basic distances. Since the distance function should be\n. symmetric, all of the horizontal and vertical shifts must have the same cost (denoted as a ), all\n. the diagonal shifts must have the same cost (denoted as `b`), and all knight's moves must have the\n. same cost (denoted as `c`). For the #DIST_C and #DIST_L1 types, the distance is calculated\n. precisely, whereas for #DIST_L2 (Euclidean distance) the distance can be calculated only with a\n. relative error (a \\f$5\\times 5\\f$ mask gives more accurate results). For `a`,`b`, and `c`, OpenCV\n. uses the values suggested in the original paper:\n. - DIST_L1: `a = 1, b = 2`\n. - DIST_L2:\n. - `3 x 3`: `a=0.955, b=1.3693`\n. - `5 x 5`: `a=1, b=1.4, c=2.1969`\n. - DIST_C: `a = 1, b = 1`\n. \n. Typically, for a fast, coarse distance estimation #DIST_L2, a \\f$3\\times 3\\f$ mask is used. For a\n. more accurate distance estimation #DIST_L2, a \\f$5\\times 5\\f$ mask or the precise algorithm is used.\n. Note that both the precise and the approximate algorithms are linear on the number of pixels.\n. \n. This variant of the function does not only compute the minimum distance for each pixel \\f$(x, y)\\f$\n. but also identifies the nearest connected component consisting of zero pixels\n. (labelType==#DIST_LABEL_CCOMP) or the nearest zero pixel (labelType==#DIST_LABEL_PIXEL). Index of the\n. component/pixel is stored in `labels(x, y)`. When labelType==#DIST_LABEL_CCOMP, the function\n. automatically finds connected components of zero pixels in the input image and marks them with\n. distinct labels. When labelType==#DIST_LABEL_CCOMP, the function scans through the input image and\n. marks all the zero pixels with distinct labels.\n. \n. In this mode, the complexity is still linear. That is, the function provides a very fast way to\n. compute the Voronoi diagram for a binary image. Currently, the second variant can use only the\n. approximate distance transform algorithm, i.e. maskSize=#DIST_MASK_PRECISE is not supported\n. yet.\n. \n. @param src 8-bit, single-channel (binary) source image.\n. @param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point,\n. single-channel image of the same size as src.\n. @param labels Output 2D array of labels (the discrete Voronoi diagram). It has the type\n. CV_32SC1 and the same size as src.\n. @param distanceType Type of distance, see #DistanceTypes\n. @param maskSize Size of the distance transform mask, see #DistanceTransformMasks.\n. #DIST_MASK_PRECISE is not supported by this variant. In case of the #DIST_L1 or #DIST_C distance type,\n. the parameter is forced to 3 because a \\f$3\\times 3\\f$ mask gives the same result as \\f$5\\times\n. 5\\f$ or any larger aperture.\n. @param labelType Type of the label array to build, see #DistanceTransformLabelTypes." ... - -def divide(src1: ndarray, src2: ndarray, dts: ndarray = ..., scale=..., dtype=...) -> typing.Any: +def divide(src1: Mat, src2: Mat, dts: Mat = ..., scale=..., dtype=...) -> typing.Any: 'divide(src1, src2[, dst[, scale[, dtype]]]) -> dst\n. @brief Performs per-element division of two arrays or a scalar by an array.\n. \n. The function cv::divide divides one array by another:\n. \\f[\\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\\f]\n. or a scalar by an array when there is no src1 :\n. \\f[\\texttt{dst(I) = saturate(scale/src2(I))}\\f]\n. \n. Different channels of multi-channel arrays are processed independently.\n. \n. For integer types when src2(I) is zero, dst(I) will also be zero.\n. \n. @note In case of floating point data there is no special defined behavior for zero src2(I) values.\n. Regular floating-point division is used.\n. Expect correct IEEE-754 behaviour for floating-point data (with NaN, Inf result values).\n. \n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1.\n. @param scale scalar factor.\n. @param dst output array of the same size and type as src2.\n. @param dtype optional depth of the output array; if -1, dst will have depth src2.depth(), but in\n. case of an array-by-array division, you can only pass -1 when src1.depth()==src2.depth().\n. @sa multiply, add, subtract\n\n\n\ndivide(scale, src2[, dst[, dtype]]) -> dst\n. @overload' ... - dnn_ClassificationModel = _mod_cv2.dnn_ClassificationModel dnn_DetectionModel = _mod_cv2.dnn_DetectionModel dnn_DictValue = _mod_cv2.dnn_DictValue @@ -2393,664 +2175,535 @@ dnn_Layer = _mod_cv2.dnn_Layer dnn_Model = _mod_cv2.dnn_Model dnn_Net = _mod_cv2.dnn_Net dnn_SegmentationModel = _mod_cv2.dnn_SegmentationModel - - def dnn_registerLayer() -> typing.Any: 'registerLayer(type, class) -> None' ... - def dnn_unregisterLayer() -> typing.Any: 'unregisterLayer(type) -> None' ... - -def drawChessboardCorners(image: ndarray, patternSize, corners, patternWasFound) -> typing.Any: +def drawChessboardCorners(image: Mat, patternSize, corners, patternWasFound) -> typing.Any: 'drawChessboardCorners(image, patternSize, corners, patternWasFound) -> image\n. @brief Renders the detected chessboard corners.\n. \n. @param image Destination image. It must be an 8-bit color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. (patternSize = cv::Size(points_per_row,points_per_column)).\n. @param corners Array of detected corners, the output of findChessboardCorners.\n. @param patternWasFound Parameter indicating whether the complete board was found or not. The\n. return value of findChessboardCorners should be passed here.\n. \n. The function draws individual chessboard corners detected either as red circles if the board was not\n. found, or as colored corners connected with lines if the board was found.' ... - -def drawContours(image: ndarray, contours, contourIdx, color, thickness=..., lineType=..., hierarchy=..., maxLevel=..., offset=...) -> typing.Any: +def drawContours(image: Mat, contours, contourIdx, color, thickness=..., lineType=..., hierarchy=..., maxLevel=..., offset=...) -> typing.Any: 'drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> image\n. @brief Draws contours outlines or filled contours.\n. \n. The function draws contour outlines in the image if \\f$\\texttt{thickness} \\ge 0\\f$ or fills the area\n. bounded by the contours if \\f$\\texttt{thickness}<0\\f$ . The example below shows how to retrieve\n. connected components from the binary image and label them: :\n. @include snippets/imgproc_drawContours.cpp\n. \n. @param image Destination image.\n. @param contours All the input contours. Each contour is stored as a point vector.\n. @param contourIdx Parameter indicating a contour to draw. If it is negative, all the contours are drawn.\n. @param color Color of the contours.\n. @param thickness Thickness of lines the contours are drawn with. If it is negative (for example,\n. thickness=#FILLED ), the contour interiors are drawn.\n. @param lineType Line connectivity. See #LineTypes\n. @param hierarchy Optional information about hierarchy. It is only needed if you want to draw only\n. some of the contours (see maxLevel ).\n. @param maxLevel Maximal level for drawn contours. If it is 0, only the specified contour is drawn.\n. If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function\n. draws the contours, all the nested contours, all the nested-to-nested contours, and so on. This\n. parameter is only taken into account when there is hierarchy available.\n. @param offset Optional contour shift parameter. Shift all the drawn contours by the specified\n. \\f$\\texttt{offset}=(dx,dy)\\f$ .\n. @note When thickness=#FILLED, the function is designed to handle connected components with holes correctly\n. even when no hierarchy date is provided. This is done by analyzing all the outlines together\n. using even-odd rule. This may give incorrect results if you have a joint collection of separately retrieved\n. contours. In order to solve this problem, you need to call #drawContours separately for each sub-group\n. of contours, or iterate over the collection using contourIdx parameter.' ... - -def drawFrameAxes(image: ndarray, cameraMatrix, distCoeffs, rvec, tvec, length, thickness=...) -> typing.Any: +def drawFrameAxes(image: Mat, cameraMatrix, distCoeffs, rvec, tvec, length, thickness=...) -> typing.Any: 'drawFrameAxes(image, cameraMatrix, distCoeffs, rvec, tvec, length[, thickness]) -> image\n. @brief Draw axes of the world/object coordinate system from pose estimation. @sa solvePnP\n. \n. @param image Input/output image. It must have 1 or 3 channels. The number of channels is not altered.\n. @param cameraMatrix Input 3x3 floating-point matrix of camera intrinsic parameters.\n. \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.\n. @param rvec Rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Translation vector.\n. @param length Length of the painted axes in the same unit than tvec (usually in meters).\n. @param thickness Line thickness of the painted axes.\n. \n. This function draws the axes of the world/object coordinate system w.r.t. to the camera frame.\n. OX is drawn in red, OY in green and OZ in blue.' ... - -def drawKeypoints(image: ndarray, keypoints, outImage, color=..., flags: int = ...) -> typing.Any: +def drawKeypoints(image: Mat, keypoints, outImage, color=..., flags: int = ...) -> typing.Any: 'drawKeypoints(image, keypoints, outImage[, color[, flags]]) -> outImage\n. @brief Draws keypoints.\n. \n. @param image Source image.\n. @param keypoints Keypoints from the source image.\n. @param outImage Output image. Its content depends on the flags value defining what is drawn in the\n. output image. See possible flags bit values below.\n. @param color Color of keypoints.\n. @param flags Flags setting drawing features. Possible flags bit values are defined by\n. DrawMatchesFlags. See details above in drawMatches .\n. \n. @note\n. For Python API, flags are modified as cv.DRAW_MATCHES_FLAGS_DEFAULT,\n. cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG,\n. cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS' ... - -def drawMarker(img: ndarray, position, color, markerType=..., markerSize=..., thickness=..., line_type=...) -> typing.Any: +def drawMarker(img: Mat, position, color, markerType=..., markerSize=..., thickness=..., line_type=...) -> typing.Any: 'drawMarker(img, position, color[, markerType[, markerSize[, thickness[, line_type]]]]) -> img\n. @brief Draws a marker on a predefined position in an image.\n. \n. The function cv::drawMarker draws a marker on a given position in the image. For the moment several\n. marker types are supported, see #MarkerTypes for more information.\n. \n. @param img Image.\n. @param position The point where the crosshair is positioned.\n. @param color Line color.\n. @param markerType The specific type of marker you want to use, see #MarkerTypes\n. @param thickness Line thickness.\n. @param line_type Type of the line, See #LineTypes\n. @param markerSize The length of the marker axis [default = 20 pixels]' ... - def drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor=..., singlePointColor=..., matchesMask=..., flags: int = ...) -> typing.Any: 'drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg\n. @brief Draws the found matches of keypoints from two images.\n. \n. @param img1 First source image.\n. @param keypoints1 Keypoints from the first source image.\n. @param img2 Second source image.\n. @param keypoints2 Keypoints from the second source image.\n. @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]\n. has a corresponding point in keypoints2[matches[i]] .\n. @param outImg Output image. Its content depends on the flags value defining what is drawn in the\n. output image. See possible flags bit values below.\n. @param matchColor Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1)\n. , the color is generated randomly.\n. @param singlePointColor Color of single keypoints (circles), which means that keypoints do not\n. have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.\n. @param matchesMask Mask determining which matches are drawn. If the mask is empty, all matches are\n. drawn.\n. @param flags Flags setting drawing features. Possible flags bit values are defined by\n. DrawMatchesFlags.\n. \n. This function draws matches of keypoints from two images in the output image. Match is a line\n. connecting two keypoints (circles). See cv::DrawMatchesFlags.' ... - def drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor=..., singlePointColor=..., matchesMask=..., flags: int = ...) -> typing.Any: 'drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg\n. @overload' ... - -def edgePreservingFilter(src: ndarray, dts: ndarray = ..., flags: int = ..., sigma_s=..., sigma_r=...) -> typing.Any: +def edgePreservingFilter(src: Mat, dts: Mat = ..., flags: int = ..., sigma_s=..., sigma_r=...) -> typing.Any: 'edgePreservingFilter(src[, dst[, flags[, sigma_s[, sigma_r]]]]) -> dst\n. @brief Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing\n. filters are used in many different applications @cite EM11 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output 8-bit 3-channel image.\n. @param flags Edge preserving filters: cv::RECURS_FILTER or cv::NORMCONV_FILTER\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' ... - -def eigen(src: ndarray, eigenvalues=..., eigenvectors=...) -> typing.Any: +def eigen(src: Mat, eigenvalues=..., eigenvectors=...) -> typing.Any: 'eigen(src[, eigenvalues[, eigenvectors]]) -> retval, eigenvalues, eigenvectors\n. @brief Calculates eigenvalues and eigenvectors of a symmetric matrix.\n. \n. The function cv::eigen calculates just eigenvalues, or eigenvalues and eigenvectors of the symmetric\n. matrix src:\n. @code\n. src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()\n. @endcode\n. \n. @note Use cv::eigenNonSymmetric for calculation of real eigenvalues and eigenvectors of non-symmetric matrix.\n. \n. @param src input matrix that must have CV_32FC1 or CV_64FC1 type, square size and be symmetrical\n. (src ^T^ == src).\n. @param eigenvalues output vector of eigenvalues of the same type as src; the eigenvalues are stored\n. in the descending order.\n. @param eigenvectors output matrix of eigenvectors; it has the same size and type as src; the\n. eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding\n. eigenvalues.\n. @sa eigenNonSymmetric, completeSymm , PCA' ... - -def eigenNonSymmetric(src: ndarray, eigenvalues=..., eigenvectors=...) -> typing.Any: +def eigenNonSymmetric(src: Mat, eigenvalues=..., eigenvectors=...) -> typing.Any: 'eigenNonSymmetric(src[, eigenvalues[, eigenvectors]]) -> eigenvalues, eigenvectors\n. @brief Calculates eigenvalues and eigenvectors of a non-symmetric matrix (real eigenvalues only).\n. \n. @note Assumes real eigenvalues.\n. \n. The function calculates eigenvalues and eigenvectors (optional) of the square matrix src:\n. @code\n. src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()\n. @endcode\n. \n. @param src input matrix (CV_32FC1 or CV_64FC1 type).\n. @param eigenvalues output vector of eigenvalues (type is the same type as src).\n. @param eigenvectors output matrix of eigenvectors (type is the same type as src). The eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding eigenvalues.\n. @sa eigen' ... - -def ellipse(img: ndarray, center, axes, angle, startAngle, endAngle, color, thickness=..., lineType=..., shift=...) -> typing.Any: +def ellipse(img: Mat, center, axes, angle, startAngle, endAngle, color, thickness=..., lineType=..., shift=...) -> typing.Any: 'ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a simple or thick elliptic arc or fills an ellipse sector.\n. \n. The function cv::ellipse with more parameters draws an ellipse outline, a filled ellipse, an elliptic\n. arc, or a filled ellipse sector. The drawing code uses general parametric form.\n. A piecewise-linear curve is used to approximate the elliptic arc\n. boundary. If you need more control of the ellipse rendering, you can retrieve the curve using\n. #ellipse2Poly and then render it with #polylines or fill it with #fillPoly. If you use the first\n. variant of the function and want to draw the whole ellipse, not an arc, pass `startAngle=0` and\n. `endAngle=360`. If `startAngle` is greater than `endAngle`, they are swapped. The figure below explains\n. the meaning of the parameters to draw the blue arc.\n. \n. ![Parameters of Elliptic Arc](pics/ellipse.svg)\n. \n. @param img Image.\n. @param center Center of the ellipse.\n. @param axes Half of the size of the ellipse main axes.\n. @param angle Ellipse rotation angle in degrees.\n. @param startAngle Starting angle of the elliptic arc in degrees.\n. @param endAngle Ending angle of the elliptic arc in degrees.\n. @param color Ellipse color.\n. @param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that\n. a filled ellipse sector is to be drawn.\n. @param lineType Type of the ellipse boundary. See #LineTypes\n. @param shift Number of fractional bits in the coordinates of the center and values of axes.\n\n\n\nellipse(img, box, color[, thickness[, lineType]]) -> img\n. @overload\n. @param img Image.\n. @param box Alternative ellipse representation via RotatedRect. This means that the function draws\n. an ellipse inscribed in the rotated rectangle.\n. @param color Ellipse color.\n. @param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that\n. a filled ellipse sector is to be drawn.\n. @param lineType Type of the ellipse boundary. See #LineTypes' ... - def ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> typing.Any: 'ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> pts\n. @brief Approximates an elliptic arc with a polyline.\n. \n. The function ellipse2Poly computes the vertices of a polyline that approximates the specified\n. elliptic arc. It is used by #ellipse. If `arcStart` is greater than `arcEnd`, they are swapped.\n. \n. @param center Center of the arc.\n. @param axes Half of the size of the ellipse main axes. See #ellipse for details.\n. @param angle Rotation angle of the ellipse in degrees. See #ellipse for details.\n. @param arcStart Starting angle of the elliptic arc in degrees.\n. @param arcEnd Ending angle of the elliptic arc in degrees.\n. @param delta Angle between the subsequent polyline vertices. It defines the approximation\n. accuracy.\n. @param pts Output vector of polyline vertices.' ... - -def equalizeHist(src: ndarray, dts: ndarray = ...) -> typing.Any: +def equalizeHist(src: Mat, dts: Mat = ...) -> typing.Any: "equalizeHist(src[, dst]) -> dst\n. @brief Equalizes the histogram of a grayscale image.\n. \n. The function equalizes the histogram of the input image using the following algorithm:\n. \n. - Calculate the histogram \\f$H\\f$ for src .\n. - Normalize the histogram so that the sum of histogram bins is 255.\n. - Compute the integral of the histogram:\n. \\f[H'_i = \\sum _{0 \\le j < i} H(j)\\f]\n. - Transform the image using \\f$H'\\f$ as a look-up table: \\f$\\texttt{dst}(x,y) = H'(\\texttt{src}(x,y))\\f$\n. \n. The algorithm normalizes the brightness and increases the contrast of the image.\n. \n. @param src Source 8-bit single channel image.\n. @param dst Destination image of the same size and type as src ." ... - -def erode(src: ndarray, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: +def erode(src: Mat, kernel, dts: Mat = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: "erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Erodes an image by using a specific structuring element.\n. \n. The function erodes the source image using the specified structuring element that determines the\n. shape of a pixel neighborhood over which the minimum is taken:\n. \n. \\f[\\texttt{dst} (x,y) = \\min _{(x',y'): \\, \\texttt{element} (x',y') \\ne0 } \\texttt{src} (x+x',y+y')\\f]\n. \n. The function supports the in-place mode. Erosion can be applied several ( iterations ) times. In\n. case of multi-channel images, each channel is processed independently.\n. \n. @param src input image; the number of channels can be arbitrary, but the depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param kernel structuring element used for erosion; if `element=Mat()`, a `3 x 3` rectangular\n. structuring element is used. Kernel can be created using #getStructuringElement.\n. @param anchor position of the anchor within the element; default value (-1, -1) means that the\n. anchor is at the element center.\n. @param iterations number of times erosion is applied.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @param borderValue border value in case of a constant border\n. @sa dilate, morphologyEx, getStructuringElement" ... - -error = _mod_cv2.error - +class error(Exception): + code: int + err: str + file: str + func: str + line: int + msg: str def estimateAffine2D(from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=...) -> typing.Any: 'estimateAffine2D(from, to[, inliers[, method[, ransacReprojThreshold[, maxIters[, confidence[, refineIters]]]]]]) -> retval, inliers\n. @brief Computes an optimal affine transformation between two 2D point sets.\n. \n. It computes\n. \\f[\n. \\begin{bmatrix}\n. x\\\\\n. y\\\\\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. a_{11} & a_{12}\\\\\n. a_{21} & a_{22}\\\\\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X\\\\\n. Y\\\\\n. \\end{bmatrix}\n. +\n. \\begin{bmatrix}\n. b_1\\\\\n. b_2\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. @param from First input 2D point set containing \\f$(X,Y)\\f$.\n. @param to Second input 2D point set containing \\f$(x,y)\\f$.\n. @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. @param method Robust method used to compute transformation. The following methods are possible:\n. - cv::RANSAC - RANSAC-based robust method\n. - cv::LMEDS - Least-Median robust method\n. RANSAC is the default method.\n. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider\n. a point as an inlier. Applies only to RANSAC.\n. @param maxIters The maximum number of robust method iterations.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. @param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).\n. Passing 0 will disable refining, so the output matrix will be output of robust method.\n. \n. @return Output 2D affine transformation matrix \\f$2 \\times 3\\f$ or empty matrix if transformation\n. could not be estimated. The returned matrix has the following form:\n. \\f[\n. \\begin{bmatrix}\n. a_{11} & a_{12} & b_1\\\\\n. a_{21} & a_{22} & b_2\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. The function estimates an optimal 2D affine transformation between two 2D point sets using the\n. selected robust algorithm.\n. \n. The computed transformation is then refined further (using only inliers) with the\n. Levenberg-Marquardt method to reduce the re-projection error even more.\n. \n. @note\n. The RANSAC method can handle practically any ratio of outliers but needs a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers.\n. \n. @sa estimateAffinePartial2D, getAffineTransform' ... - -def estimateAffine3D(src: ndarray, dts: ndarray, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: +def estimateAffine3D(src: Mat, dts: Mat, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: 'estimateAffine3D(src, dst[, out[, inliers[, ransacThreshold[, confidence]]]]) -> retval, out, inliers\n. @brief Computes an optimal affine transformation between two 3D point sets.\n. \n. It computes\n. \\f[\n. \\begin{bmatrix}\n. x\\\\\n. y\\\\\n. z\\\\\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. a_{11} & a_{12} & a_{13}\\\\\n. a_{21} & a_{22} & a_{23}\\\\\n. a_{31} & a_{32} & a_{33}\\\\\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X\\\\\n. Y\\\\\n. Z\\\\\n. \\end{bmatrix}\n. +\n. \\begin{bmatrix}\n. b_1\\\\\n. b_2\\\\\n. b_3\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. @param src First input 3D point set containing \\f$(X,Y,Z)\\f$.\n. @param dst Second input 3D point set containing \\f$(x,y,z)\\f$.\n. @param out Output 3D affine transformation matrix \\f$3 \\times 4\\f$ of the form\n. \\f[\n. \\begin{bmatrix}\n. a_{11} & a_{12} & a_{13} & b_1\\\\\n. a_{21} & a_{22} & a_{23} & b_2\\\\\n. a_{31} & a_{32} & a_{33} & b_3\\\\\n. \\end{bmatrix}\n. \\f]\n. @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as\n. an inlier.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. \n. The function estimates an optimal 3D affine transformation between two 3D point sets using the\n. RANSAC algorithm.' ... - def estimateAffinePartial2D(from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=...) -> typing.Any: 'estimateAffinePartial2D(from, to[, inliers[, method[, ransacReprojThreshold[, maxIters[, confidence[, refineIters]]]]]]) -> retval, inliers\n. @brief Computes an optimal limited affine transformation with 4 degrees of freedom between\n. two 2D point sets.\n. \n. @param from First input 2D point set.\n. @param to Second input 2D point set.\n. @param inliers Output vector indicating which points are inliers.\n. @param method Robust method used to compute transformation. The following methods are possible:\n. - cv::RANSAC - RANSAC-based robust method\n. - cv::LMEDS - Least-Median robust method\n. RANSAC is the default method.\n. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider\n. a point as an inlier. Applies only to RANSAC.\n. @param maxIters The maximum number of robust method iterations.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. @param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).\n. Passing 0 will disable refining, so the output matrix will be output of robust method.\n. \n. @return Output 2D affine transformation (4 degrees of freedom) matrix \\f$2 \\times 3\\f$ or\n. empty matrix if transformation could not be estimated.\n. \n. The function estimates an optimal 2D affine transformation with 4 degrees of freedom limited to\n. combinations of translation, rotation, and uniform scaling. Uses the selected algorithm for robust\n. estimation.\n. \n. The computed transformation is then refined further (using only inliers) with the\n. Levenberg-Marquardt method to reduce the re-projection error even more.\n. \n. Estimated transformation matrix is:\n. \\f[ \\begin{bmatrix} \\cos(\\theta) \\cdot s & -\\sin(\\theta) \\cdot s & t_x \\\\\n. \\sin(\\theta) \\cdot s & \\cos(\\theta) \\cdot s & t_y\n. \\end{bmatrix} \\f]\n. Where \\f$ \\theta \\f$ is the rotation angle, \\f$ s \\f$ the scaling factor and \\f$ t_x, t_y \\f$ are\n. translations in \\f$ x, y \\f$ axes respectively.\n. \n. @note\n. The RANSAC method can handle practically any ratio of outliers but need a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers.\n. \n. @sa estimateAffine2D, getAffineTransform' ... - -def estimateChessboardSharpness(image: ndarray, patternSize, corners, rise_distance=..., vertical=..., sharpness=...) -> typing.Any: +def estimateChessboardSharpness(image: Mat, patternSize, corners, rise_distance=..., vertical=..., sharpness=...) -> typing.Any: 'estimateChessboardSharpness(image, patternSize, corners[, rise_distance[, vertical[, sharpness]]]) -> retval, sharpness\n. @brief Estimates the sharpness of a detected chessboard.\n. \n. Image sharpness, as well as brightness, are a critical parameter for accuracte\n. camera calibration. For accessing these parameters for filtering out\n. problematic calibraiton images, this method calculates edge profiles by traveling from\n. black to white chessboard cell centers. Based on this, the number of pixels is\n. calculated required to transit from black to white. This width of the\n. transition area is a good indication of how sharp the chessboard is imaged\n. and should be below ~3.0 pixels.\n. \n. @param image Gray image used to find chessboard corners\n. @param patternSize Size of a found chessboard pattern\n. @param corners Corners found by findChessboardCorners(SB)\n. @param rise_distance Rise distance 0.8 means 10% ... 90% of the final signal strength\n. @param vertical By default edge responses for horizontal lines are calculated\n. @param sharpness Optional output array with a sharpness value for calculated edge responses (see description)\n. \n. The optional sharpness array is of type CV_32FC1 and has for each calculated\n. profile one row with the following five entries:\n. * 0 = x coordinate of the underlying edge in the image\n. * 1 = y coordinate of the underlying edge in the image\n. * 2 = width of the transition area (sharpness)\n. * 3 = signal strength in the black cell (min brightness)\n. * 4 = signal strength in the white cell (max brightness)\n. \n. @return Scalar(average sharpness, average min brightness, average max brightness,0)' ... - -def estimateTranslation3D(src: ndarray, dts: ndarray, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: +def estimateTranslation3D(src: Mat, dts: Mat, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: 'estimateTranslation3D(src, dst[, out[, inliers[, ransacThreshold[, confidence]]]]) -> retval, out, inliers\n. @brief Computes an optimal translation between two 3D point sets.\n. *\n. * It computes\n. * \\f[\n. * \\begin{bmatrix}\n. * x\\\\\n. * y\\\\\n. * z\\\\\n. * \\end{bmatrix}\n. * =\n. * \\begin{bmatrix}\n. * X\\\\\n. * Y\\\\\n. * Z\\\\\n. * \\end{bmatrix}\n. * +\n. * \\begin{bmatrix}\n. * b_1\\\\\n. * b_2\\\\\n. * b_3\\\\\n. * \\end{bmatrix}\n. * \\f]\n. *\n. * @param src First input 3D point set containing \\f$(X,Y,Z)\\f$.\n. * @param dst Second input 3D point set containing \\f$(x,y,z)\\f$.\n. * @param out Output 3D translation vector \\f$3 \\times 1\\f$ of the form\n. * \\f[\n. * \\begin{bmatrix}\n. * b_1 \\\\\n. * b_2 \\\\\n. * b_3 \\\\\n. * \\end{bmatrix}\n. * \\f]\n. * @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. * @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as\n. * an inlier.\n. * @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. * between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. * significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. *\n. * The function estimates an optimal 3D translation between two 3D point sets using the\n. * RANSAC algorithm.\n. *' ... - -def exp(src: ndarray, dts: ndarray = ...) -> typing.Any: +def exp(src: Mat, dts: Mat = ...) -> typing.Any: 'exp(src[, dst]) -> dst\n. @brief Calculates the exponent of every array element.\n. \n. The function cv::exp calculates the exponent of every element of the input\n. array:\n. \\f[\\texttt{dst} [I] = e^{ src(I) }\\f]\n. \n. The maximum relative error is about 7e-6 for single-precision input and\n. less than 1e-10 for double-precision input. Currently, the function\n. converts denormalized values to zeros on output. Special values (NaN,\n. Inf) are not handled.\n. @param src input array.\n. @param dst output array of the same size and type as src.\n. @sa log , cartToPolar , polarToCart , phase , pow , sqrt , magnitude' ... - -def extractChannel(src: ndarray, coi, dts: ndarray = ...) -> typing.Any: +def extractChannel(src: Mat, coi, dts: Mat = ...) -> typing.Any: 'extractChannel(src, coi[, dst]) -> dst\n. @brief Extracts a single channel from src (coi is 0-based index)\n. @param src input array\n. @param dst output array\n. @param coi index of channel to extract\n. @sa mixChannels, split' ... - def fastAtan2(y, x) -> typing.Any: 'fastAtan2(y, x) -> retval\n. @brief Calculates the angle of a 2D vector in degrees.\n. \n. The function fastAtan2 calculates the full-range angle of an input 2D vector. The angle is measured\n. in degrees and varies from 0 to 360 degrees. The accuracy is about 0.3 degrees.\n. @param x x-coordinate of the vector.\n. @param y y-coordinate of the vector.' ... - -def fastNlMeansDenoising(src: ndarray, dts: ndarray = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: +def fastNlMeansDenoising(src: Mat, dts: Mat = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: 'fastNlMeansDenoising(src[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst\n. @brief Perform image denoising using Non-local Means Denoising algorithm\n. with several computational\n. optimizations. Noise expected to be a gaussian white noise\n. \n. @param src Input 8-bit 1-channel, 2-channel, 3-channel or 4-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength. Big h value perfectly removes noise but also\n. removes image details, smaller h value preserves details but also preserves some noise\n. \n. This function expected to be applied to grayscale images. For colored images look at\n. fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored\n. image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting\n. image to CIELAB colorspace and then separately denoise L and AB components with different h\n. parameter.\n\n\n\nfastNlMeansDenoising(src, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst\n. @brief Perform image denoising using Non-local Means Denoising algorithm\n. with several computational\n. optimizations. Noise expected to be a gaussian white noise\n. \n. @param src Input 8-bit or 16-bit (only with NORM_L1) 1-channel,\n. 2-channel, 3-channel or 4-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Array of parameters regulating filter strength, either one\n. parameter applied to all channels or one per channel in dst. Big h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n. @param normType Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1\n. \n. This function expected to be applied to grayscale images. For colored images look at\n. fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored\n. image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting\n. image to CIELAB colorspace and then separately denoise L and AB components with different h\n. parameter.' ... - -def fastNlMeansDenoisingColored(src: ndarray, dts: ndarray = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: +def fastNlMeansDenoisingColored(src: Mat, dts: Mat = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: 'fastNlMeansDenoisingColored(src[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for colored images\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength for luminance component. Bigger h value perfectly\n. removes noise but also removes image details, smaller h value preserves details but also preserves\n. some noise\n. @param hColor The same as h but for color components. For most images value equals 10\n. will be enough to remove colored noise and do not distort colors\n. \n. The function converts image to CIELAB colorspace and then separately denoise L and AB components\n. with given h parameters using fastNlMeansDenoising function.' ... - -def fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: ndarray = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: +def fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: Mat = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: 'fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst\n. @brief Modification of fastNlMeansDenoisingMulti function for colored images sequences\n. \n. @param srcImgs Input 8-bit 3-channel images sequence. All images should have the same type and\n. size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength for luminance component. Bigger h value perfectly\n. removes noise but also removes image details, smaller h value preserves details but also preserves\n. some noise.\n. @param hColor The same as h but for color components.\n. \n. The function converts images to CIELAB colorspace and then separately denoise L and AB components\n. with given h parameters using fastNlMeansDenoisingMulti function.' ... - -def fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: ndarray = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: +def fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: Mat = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: 'fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been\n. captured in small period of time. For example video. This version of the function is for grayscale\n. images or for manual manipulation with colorspaces. For more details see\n. \n. \n. @param srcImgs Input 8-bit 1-channel, 2-channel, 3-channel or\n. 4-channel images sequence. All images should have the same type and\n. size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength. Bigger h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n\n\n\nfastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been\n. captured in small period of time. For example video. This version of the function is for grayscale\n. images or for manual manipulation with colorspaces. For more details see\n. \n. \n. @param srcImgs Input 8-bit or 16-bit (only with NORM_L1) 1-channel,\n. 2-channel, 3-channel or 4-channel images sequence. All images should\n. have the same type and size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Array of parameters regulating filter strength, either one\n. parameter applied to all channels or one per channel in dst. Big h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n. @param normType Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1' ... - -def fillConvexPoly(img: ndarray, points, color, lineType=..., shift=...) -> typing.Any: +def fillConvexPoly(img: Mat, points, color, lineType=..., shift=...) -> typing.Any: 'fillConvexPoly(img, points, color[, lineType[, shift]]) -> img\n. @brief Fills a convex polygon.\n. \n. The function cv::fillConvexPoly draws a filled convex polygon. This function is much faster than the\n. function #fillPoly . It can fill not only convex polygons but any monotonic polygon without\n. self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line)\n. twice at the most (though, its top-most and/or the bottom edge could be horizontal).\n. \n. @param img Image.\n. @param points Polygon vertices.\n. @param color Polygon color.\n. @param lineType Type of the polygon boundaries. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.' ... - -def fillPoly(img: ndarray, pts, color, lineType=..., shift=..., offset=...) -> typing.Any: +def fillPoly(img: Mat, pts, color, lineType=..., shift=..., offset=...) -> typing.Any: 'fillPoly(img, pts, color[, lineType[, shift[, offset]]]) -> img\n. @brief Fills the area bounded by one or more polygons.\n. \n. The function cv::fillPoly fills an area bounded by several polygonal contours. The function can fill\n. complex areas, for example, areas with holes, contours with self-intersections (some of their\n. parts), and so forth.\n. \n. @param img Image.\n. @param pts Array of polygons where each polygon is represented as an array of points.\n. @param color Polygon color.\n. @param lineType Type of the polygon boundaries. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.\n. @param offset Optional offset of all points of the contours.' ... - -def filter2D(src: ndarray, ddepth, kernel, dts: ndarray = ..., anchor=..., delta=..., borderType=...) -> typing.Any: +def filter2D(src: Mat, ddepth, kernel, dts: Mat = ..., anchor=..., delta=..., borderType=...) -> typing.Any: 'filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]]) -> dst\n. @brief Convolves an image with the kernel.\n. \n. The function applies an arbitrary linear filter to an image. In-place operation is supported. When\n. the aperture is partially outside the image, the function interpolates outlier pixel values\n. according to the specified border mode.\n. \n. The function does actually compute correlation, not the convolution:\n. \n. \\f[\\texttt{dst} (x,y) = \\sum _{ \\substack{0\\leq x\' < \\texttt{kernel.cols}\\\\{0\\leq y\' < \\texttt{kernel.rows}}}} \\texttt{kernel} (x\',y\')* \\texttt{src} (x+x\'- \\texttt{anchor.x} ,y+y\'- \\texttt{anchor.y} )\\f]\n. \n. That is, the kernel is not mirrored around the anchor point. If you need a real convolution, flip\n. the kernel using #flip and set the new anchor to `(kernel.cols - anchor.x - 1, kernel.rows -\n. anchor.y - 1)`.\n. \n. The function uses the DFT-based algorithm in case of sufficiently large kernels (~`11 x 11` or\n. larger) and the direct algorithm for small kernels.\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src.\n. @param ddepth desired depth of the destination image, see @ref filter_depths "combinations"\n. @param kernel convolution kernel (or rather a correlation kernel), a single-channel floating point\n. matrix; if you want to apply different kernels to different channels, split the image into\n. separate color planes using split and process them individually.\n. @param anchor anchor of the kernel that indicates the relative position of a filtered point within\n. the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor\n. is at the kernel center.\n. @param delta optional value added to the filtered pixels before storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa sepFilter2D, dft, matchTemplate' ... - def filterHomographyDecompByVisibleRefpoints(rotations, normals, beforePoints, afterPoints, possibleSolutions=..., pointsMask=...) -> typing.Any: 'filterHomographyDecompByVisibleRefpoints(rotations, normals, beforePoints, afterPoints[, possibleSolutions[, pointsMask]]) -> possibleSolutions\n. @brief Filters homography decompositions based on additional information.\n. \n. @param rotations Vector of rotation matrices.\n. @param normals Vector of plane normal matrices.\n. @param beforePoints Vector of (rectified) visible reference points before the homography is applied\n. @param afterPoints Vector of (rectified) visible reference points after the homography is applied\n. @param possibleSolutions Vector of int indices representing the viable solution set after filtering\n. @param pointsMask optional Mat/Vector of 8u type representing the mask for the inliers as given by the findHomography function\n. \n. This function is intended to filter the output of the decomposeHomographyMat based on additional\n. information as described in @cite Malis . The summary of the method: the decomposeHomographyMat function\n. returns 2 unique solutions and their "opposites" for a total of 4 solutions. If we have access to the\n. sets of points visible in the camera frame before and after the homography transformation is applied,\n. we can determine which are the true potential solutions and which are the opposites by verifying which\n. homographies are consistent with all visible reference points being in front of the camera. The inputs\n. are left unchanged; the filtered solution set is returned as indices into the existing one.' ... - -def filterSpeckles(img: ndarray, newVal, maxSpeckleSize, maxDiff, buf=...) -> typing.Any: +def filterSpeckles(img: Mat, newVal, maxSpeckleSize, maxDiff, buf=...) -> typing.Any: 'filterSpeckles(img, newVal, maxSpeckleSize, maxDiff[, buf]) -> img, buf\n. @brief Filters off small noise blobs (speckles) in the disparity map\n. \n. @param img The input 16-bit signed disparity image\n. @param newVal The disparity value used to paint-off the speckles\n. @param maxSpeckleSize The maximum speckle size to consider it a speckle. Larger blobs are not\n. affected by the algorithm\n. @param maxDiff Maximum difference between neighbor disparity pixels to put them into the same\n. blob. Note that since StereoBM, StereoSGBM and may be other algorithms return a fixed-point\n. disparity map, where disparity values are multiplied by 16, this scale factor should be taken into\n. account when specifying this parameter value.\n. @param buf The optional temporary buffer to avoid memory allocation within the function.' ... - -def find4QuadCornerSubpix(img: ndarray, corners, region_size) -> typing.Any: +def find4QuadCornerSubpix(img: Mat, corners, region_size) -> typing.Any: 'find4QuadCornerSubpix(img, corners, region_size) -> retval, corners\n.' ... - -def findChessboardCorners(image: ndarray, patternSize, corners=..., flags: int = ...) -> typing.Any: +def findChessboardCorners(image: Mat, patternSize, corners=..., flags: int = ...) -> typing.Any: 'findChessboardCorners(image, patternSize[, corners[, flags]]) -> retval, corners\n. @brief Finds the positions of internal corners of the chessboard.\n. \n. @param image Source chessboard view. It must be an 8-bit grayscale or color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ).\n. @param corners Output array of detected corners.\n. @param flags Various operation flags that can be zero or a combination of the following values:\n. - **CALIB_CB_ADAPTIVE_THRESH** Use adaptive thresholding to convert the image to black\n. and white, rather than a fixed threshold level (computed from the average image brightness).\n. - **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before\n. applying fixed or adaptive thresholding.\n. - **CALIB_CB_FILTER_QUADS** Use additional criteria (like contour area, perimeter,\n. square-like shape) to filter out false quads extracted at the contour retrieval stage.\n. - **CALIB_CB_FAST_CHECK** Run a fast check on the image that looks for chessboard corners,\n. and shortcut the call if none is found. This can drastically speed up the call in the\n. degenerate condition when no chessboard is observed.\n. \n. The function attempts to determine whether the input image is a view of the chessboard pattern and\n. locate the internal chessboard corners. The function returns a non-zero value if all of the corners\n. are found and they are placed in a certain order (row by row, left to right in every row).\n. Otherwise, if the function fails to find all the corners or reorder them, it returns 0. For example,\n. a regular chessboard has 8 x 8 squares and 7 x 7 internal corners, that is, points where the black\n. squares touch each other. The detected coordinates are approximate, and to determine their positions\n. more accurately, the function calls cornerSubPix. You also may use the function cornerSubPix with\n. different parameters if returned coordinates are not accurate enough.\n. \n. Sample usage of detecting and drawing chessboard corners: :\n. @code\n. Size patternsize(8,6); //interior number of corners\n. Mat gray = ....; //source image\n. vector corners; //this will be filled by the detected corners\n. \n. //CALIB_CB_FAST_CHECK saves a lot of time on images\n. //that do not contain any chessboard corners\n. bool patternfound = findChessboardCorners(gray, patternsize, corners,\n. CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE\n. + CALIB_CB_FAST_CHECK);\n. \n. if(patternfound)\n. cornerSubPix(gray, corners, Size(11, 11), Size(-1, -1),\n. TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1));\n. \n. drawChessboardCorners(img, patternsize, Mat(corners), patternfound);\n. @endcode\n. @note The function requires white space (like a square-thick border, the wider the better) around\n. the board to make the detection more robust in various environments. Otherwise, if there is no\n. border and the background is dark, the outer black squares cannot be segmented properly and so the\n. square grouping and ordering algorithm fails.' ... - -def findChessboardCornersSB(image: ndarray, patternSize, corners=..., flags: int = ...) -> typing.Any: +def findChessboardCornersSB(image: Mat, patternSize, corners=..., flags: int = ...) -> typing.Any: 'findChessboardCornersSB(image, patternSize[, corners[, flags]]) -> retval, corners\n. @overload' ... - -def findChessboardCornersSBWithMeta(image: ndarray, patternSize, flags: int, corners=..., meta=...) -> typing.Any: +def findChessboardCornersSBWithMeta(image: Mat, patternSize, flags: int, corners=..., meta=...) -> typing.Any: 'findChessboardCornersSBWithMeta(image, patternSize, flags[, corners[, meta]]) -> retval, corners, meta\n. @brief Finds the positions of internal corners of the chessboard using a sector based approach.\n. \n. @param image Source chessboard view. It must be an 8-bit grayscale or color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ).\n. @param corners Output array of detected corners.\n. @param flags Various operation flags that can be zero or a combination of the following values:\n. - **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before detection.\n. - **CALIB_CB_EXHAUSTIVE** Run an exhaustive search to improve detection rate.\n. - **CALIB_CB_ACCURACY** Up sample input image to improve sub-pixel accuracy due to aliasing effects.\n. - **CALIB_CB_LARGER** The detected pattern is allowed to be larger than patternSize (see description).\n. - **CALIB_CB_MARKER** The detected pattern must have a marker (see description).\n. This should be used if an accurate camera calibration is required.\n. @param meta Optional output arrray of detected corners (CV_8UC1 and size = cv::Size(columns,rows)).\n. Each entry stands for one corner of the pattern and can have one of the following values:\n. - 0 = no meta data attached\n. - 1 = left-top corner of a black cell\n. - 2 = left-top corner of a white cell\n. - 3 = left-top corner of a black cell with a white marker dot\n. - 4 = left-top corner of a white cell with a black marker dot (pattern origin in case of markers otherwise first corner)\n. \n. The function is analog to findchessboardCorners but uses a localized radon\n. transformation approximated by box filters being more robust to all sort of\n. noise, faster on larger images and is able to directly return the sub-pixel\n. position of the internal chessboard corners. The Method is based on the paper\n. @cite duda2018 "Accurate Detection and Localization of Checkerboard Corners for\n. Calibration" demonstrating that the returned sub-pixel positions are more\n. accurate than the one returned by cornerSubPix allowing a precise camera\n. calibration for demanding applications.\n. \n. In the case, the flags **CALIB_CB_LARGER** or **CALIB_CB_MARKER** are given,\n. the result can be recovered from the optional meta array. Both flags are\n. helpful to use calibration patterns exceeding the field of view of the camera.\n. These oversized patterns allow more accurate calibrations as corners can be\n. utilized, which are as close as possible to the image borders. For a\n. consistent coordinate system across all images, the optional marker (see image\n. below) can be used to move the origin of the board to the location where the\n. black circle is located.\n. \n. @note The function requires a white boarder with roughly the same width as one\n. of the checkerboard fields around the whole board to improve the detection in\n. various environments. In addition, because of the localized radon\n. transformation it is beneficial to use round corners for the field corners\n. which are located on the outside of the board. The following figure illustrates\n. a sample checkerboard optimized for the detection. However, any other checkerboard\n. can be used as well.\n. ![Checkerboard](pics/checkerboard_radon.png)' ... - -def findCirclesGrid(image: ndarray, patternSize, flags: int, blobDetector, parameters, centers=...) -> typing.Any: +def findCirclesGrid(image: Mat, patternSize, flags: int, blobDetector, parameters, centers=...) -> typing.Any: 'findCirclesGrid(image, patternSize, flags, blobDetector, parameters[, centers]) -> retval, centers\n. @brief Finds centers in the grid of circles.\n. \n. @param image grid view of input circles; it must be an 8-bit grayscale or color image.\n. @param patternSize number of circles per row and column\n. ( patternSize = Size(points_per_row, points_per_colum) ).\n. @param centers output array of detected centers.\n. @param flags various operation flags that can be one of the following values:\n. - **CALIB_CB_SYMMETRIC_GRID** uses symmetric pattern of circles.\n. - **CALIB_CB_ASYMMETRIC_GRID** uses asymmetric pattern of circles.\n. - **CALIB_CB_CLUSTERING** uses a special algorithm for grid detection. It is more robust to\n. perspective distortions but much more sensitive to background clutter.\n. @param blobDetector feature detector that finds blobs like dark circles on light background.\n. @param parameters struct for finding circles in a grid pattern.\n. \n. The function attempts to determine whether the input image contains a grid of circles. If it is, the\n. function locates centers of the circles. The function returns a non-zero value if all of the centers\n. have been found and they have been placed in a certain order (row by row, left to right in every\n. row). Otherwise, if the function fails to find all the corners or reorder them, it returns 0.\n. \n. Sample usage of detecting and drawing the centers of circles: :\n. @code\n. Size patternsize(7,7); //number of centers\n. Mat gray = ....; //source image\n. vector centers; //this will be filled by the detected centers\n. \n. bool patternfound = findCirclesGrid(gray, patternsize, centers);\n. \n. drawChessboardCorners(img, patternsize, Mat(centers), patternfound);\n. @endcode\n. @note The function requires white space (like a square-thick border, the wider the better) around\n. the board to make the detection more robust in various environments.\n\n\n\nfindCirclesGrid(image, patternSize[, centers[, flags[, blobDetector]]]) -> retval, centers\n. @overload' ... - -def findContours(image: ndarray, mode, method: int, contours=..., hierarchy=..., offset=...) -> typing.Any: +def findContours(image: Mat, mode, method: int, contours=..., hierarchy=..., offset=...) -> typing.Any: "findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours, hierarchy\n. @brief Finds contours in a binary image.\n. \n. The function retrieves contours from the binary image using the algorithm @cite Suzuki85 . The contours\n. are a useful tool for shape analysis and object detection and recognition. See squares.cpp in the\n. OpenCV sample directory.\n. @note Since opencv 3.2 source image is not modified by this function.\n. \n. @param image Source, an 8-bit single-channel image. Non-zero pixels are treated as 1's. Zero\n. pixels remain 0's, so the image is treated as binary . You can use #compare, #inRange, #threshold ,\n. #adaptiveThreshold, #Canny, and others to create a binary image out of a grayscale or color one.\n. If mode equals to #RETR_CCOMP or #RETR_FLOODFILL, the input can also be a 32-bit integer image of labels (CV_32SC1).\n. @param contours Detected contours. Each contour is stored as a vector of points (e.g.\n. std::vector >).\n. @param hierarchy Optional output vector (e.g. std::vector), containing information about the image topology. It has\n. as many elements as the number of contours. For each i-th contour contours[i], the elements\n. hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , and hierarchy[i][3] are set to 0-based indices\n. in contours of the next and previous contours at the same hierarchical level, the first child\n. contour and the parent contour, respectively. If for the contour i there are no next, previous,\n. parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.\n. @param mode Contour retrieval mode, see #RetrievalModes\n. @param method Contour approximation method, see #ContourApproximationModes\n. @param offset Optional offset by which every contour point is shifted. This is useful if the\n. contours are extracted from the image ROI and then they should be analyzed in the whole image\n. context." ... - -def findEssentialMat(points1, points2, cameraMatrix, method: int = ..., prob=..., threshold=..., mask: ndarray = ...) -> typing.Any: +def findEssentialMat(points1, points2, cameraMatrix, method: int = ..., prob=..., threshold=..., mask: Mat = ...) -> typing.Any: 'findEssentialMat(points1, points2, cameraMatrix[, method[, prob[, threshold[, mask]]]]) -> retval, mask\n. @brief Calculates an essential matrix from the corresponding points in two images.\n. \n. @param points1 Array of N (N \\>= 5) 2D points from the first image. The point coordinates should\n. be floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param cameraMatrix Camera matrix \\f$K = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix. If this assumption does not hold for your use case, use\n. `undistortPoints()` with `P = cv::NoArray()` for both cameras to transform image points\n. to normalized image coordinates, which are valid for the identity camera matrix. When\n. passing these coordinates, pass the identity matrix for this parameter.\n. @param method Method for computing an essential matrix.\n. - **RANSAC** for the RANSAC algorithm.\n. - **LMEDS** for the LMedS algorithm.\n. @param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of\n. confidence (probability) that the estimated matrix is correct.\n. @param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1\n. for the other points. The array is computed only in the RANSAC and LMedS methods.\n. \n. This function estimates essential matrix based on the five-point algorithm solver in @cite Nister03 .\n. @cite SteweniusCFS is also a related. The epipolar geometry is described by the following equation:\n. \n. \\f[[p_2; 1]^T K^{-T} E K^{-1} [p_1; 1] = 0\\f]\n. \n. where \\f$E\\f$ is an essential matrix, \\f$p_1\\f$ and \\f$p_2\\f$ are corresponding points in the first and the\n. second images, respectively. The result of this function may be passed further to\n. decomposeEssentialMat or recoverPose to recover the relative pose between cameras.\n\n\n\nfindEssentialMat(points1, points2[, focal[, pp[, method[, prob[, threshold[, mask]]]]]]) -> retval, mask\n. @overload\n. @param points1 Array of N (N \\>= 5) 2D points from the first image. The point coordinates should\n. be floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param focal focal length of the camera. Note that this function assumes that points1 and points2\n. are feature points from cameras with same focal length and principal point.\n. @param pp principal point of the camera.\n. @param method Method for computing a fundamental matrix.\n. - **RANSAC** for the RANSAC algorithm.\n. - **LMEDS** for the LMedS algorithm.\n. @param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of\n. confidence (probability) that the estimated matrix is correct.\n. @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1\n. for the other points. The array is computed only in the RANSAC and LMedS methods.\n. \n. This function differs from the one above that it computes camera matrix from focal length and\n. principal point:\n. \n. \\f[K =\n. \\begin{bmatrix}\n. f & 0 & x_{pp} \\\\\n. 0 & f & y_{pp} \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\\f]' ... - -def findFundamentalMat(points1, points2, method: int, ransacReprojThreshold, confidence, maxIters, mask: ndarray = ...) -> typing.Any: +def findFundamentalMat(points1, points2, method: int, ransacReprojThreshold, confidence, maxIters, mask: Mat = ...) -> typing.Any: 'findFundamentalMat(points1, points2, method, ransacReprojThreshold, confidence, maxIters[, mask]) -> retval, mask\n. @brief Calculates a fundamental matrix from the corresponding points in two images.\n. \n. @param points1 Array of N points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param method Method for computing a fundamental matrix.\n. - **CV_FM_7POINT** for a 7-point algorithm. \\f$N = 7\\f$\n. - **CV_FM_8POINT** for an 8-point algorithm. \\f$N \\ge 8\\f$\n. - **CV_FM_RANSAC** for the RANSAC algorithm. \\f$N \\ge 8\\f$\n. - **CV_FM_LMEDS** for the LMedS algorithm. \\f$N \\ge 8\\f$\n. @param ransacReprojThreshold Parameter used only for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param confidence Parameter used for the RANSAC and LMedS methods only. It specifies a desirable level\n. of confidence (probability) that the estimated matrix is correct.\n. @param mask\n. @param maxIters The maximum number of robust method iterations.\n. \n. The epipolar geometry is described by the following equation:\n. \n. \\f[[p_2; 1]^T F [p_1; 1] = 0\\f]\n. \n. where \\f$F\\f$ is a fundamental matrix, \\f$p_1\\f$ and \\f$p_2\\f$ are corresponding points in the first and the\n. second images, respectively.\n. \n. The function calculates the fundamental matrix using one of four methods listed above and returns\n. the found fundamental matrix. Normally just one matrix is found. But in case of the 7-point\n. algorithm, the function may return up to 3 solutions ( \\f$9 \\times 3\\f$ matrix that stores all 3\n. matrices sequentially).\n. \n. The calculated fundamental matrix may be passed further to computeCorrespondEpilines that finds the\n. epipolar lines corresponding to the specified points. It can also be passed to\n. stereoRectifyUncalibrated to compute the rectification transformation. :\n. @code\n. // Example. Estimation of fundamental matrix using the RANSAC algorithm\n. int point_count = 100;\n. vector points1(point_count);\n. vector points2(point_count);\n. \n. // initialize the points here ...\n. for( int i = 0; i < point_count; i++ )\n. {\n. points1[i] = ...;\n. points2[i] = ...;\n. }\n. \n. Mat fundamental_matrix =\n. findFundamentalMat(points1, points2, FM_RANSAC, 3, 0.99);\n. @endcode\n\n\n\nfindFundamentalMat(points1, points2[, method[, ransacReprojThreshold[, confidence[, mask]]]]) -> retval, mask\n. @overload' ... - -def findHomography(srcPoints, dstPoints, method: int = ..., ransacReprojThreshold=..., mask: ndarray = ..., maxIters=..., confidence=...) -> typing.Any: +def findHomography(srcPoints, dstPoints, method: int = ..., ransacReprojThreshold=..., mask: Mat = ..., maxIters=..., confidence=...) -> typing.Any: "findHomography(srcPoints, dstPoints[, method[, ransacReprojThreshold[, mask[, maxIters[, confidence]]]]]) -> retval, mask\n. @brief Finds a perspective transformation between two planes.\n. \n. @param srcPoints Coordinates of the points in the original plane, a matrix of the type CV_32FC2\n. or vector\\ .\n. @param dstPoints Coordinates of the points in the target plane, a matrix of the type CV_32FC2 or\n. a vector\\ .\n. @param method Method used to compute a homography matrix. The following methods are possible:\n. - **0** - a regular method using all the points, i.e., the least squares method\n. - **RANSAC** - RANSAC-based robust method\n. - **LMEDS** - Least-Median robust method\n. - **RHO** - PROSAC-based robust method\n. @param ransacReprojThreshold Maximum allowed reprojection error to treat a point pair as an inlier\n. (used in the RANSAC and RHO methods only). That is, if\n. \\f[\\| \\texttt{dstPoints} _i - \\texttt{convertPointsHomogeneous} ( \\texttt{H} * \\texttt{srcPoints} _i) \\|_2 > \\texttt{ransacReprojThreshold}\\f]\n. then the point \\f$i\\f$ is considered as an outlier. If srcPoints and dstPoints are measured in pixels,\n. it usually makes sense to set this parameter somewhere in the range of 1 to 10.\n. @param mask Optional output mask set by a robust method ( RANSAC or LMEDS ). Note that the input\n. mask values are ignored.\n. @param maxIters The maximum number of RANSAC iterations.\n. @param confidence Confidence level, between 0 and 1.\n. \n. The function finds and returns the perspective transformation \\f$H\\f$ between the source and the\n. destination planes:\n. \n. \\f[s_i \\vecthree{x'_i}{y'_i}{1} \\sim H \\vecthree{x_i}{y_i}{1}\\f]\n. \n. so that the back-projection error\n. \n. \\f[\\sum _i \\left ( x'_i- \\frac{h_{11} x_i + h_{12} y_i + h_{13}}{h_{31} x_i + h_{32} y_i + h_{33}} \\right )^2+ \\left ( y'_i- \\frac{h_{21} x_i + h_{22} y_i + h_{23}}{h_{31} x_i + h_{32} y_i + h_{33}} \\right )^2\\f]\n. \n. is minimized. If the parameter method is set to the default value 0, the function uses all the point\n. pairs to compute an initial homography estimate with a simple least-squares scheme.\n. \n. However, if not all of the point pairs ( \\f$srcPoints_i\\f$, \\f$dstPoints_i\\f$ ) fit the rigid perspective\n. transformation (that is, there are some outliers), this initial estimate will be poor. In this case,\n. you can use one of the three robust methods. The methods RANSAC, LMeDS and RHO try many different\n. random subsets of the corresponding point pairs (of four pairs each, collinear pairs are discarded), estimate the homography matrix\n. using this subset and a simple least-squares algorithm, and then compute the quality/goodness of the\n. computed homography (which is the number of inliers for RANSAC or the least median re-projection error for\n. LMeDS). The best subset is then used to produce the initial estimate of the homography matrix and\n. the mask of inliers/outliers.\n. \n. Regardless of the method, robust or not, the computed homography matrix is refined further (using\n. inliers only in case of a robust method) with the Levenberg-Marquardt method to reduce the\n. re-projection error even more.\n. \n. The methods RANSAC and RHO can handle practically any ratio of outliers but need a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers. Finally, if there are no outliers and the\n. noise is rather small, use the default method (method=0).\n. \n. The function is used to find initial intrinsic and extrinsic matrices. Homography matrix is\n. determined up to a scale. Thus, it is normalized so that \\f$h_{33}=1\\f$. Note that whenever an \\f$H\\f$ matrix\n. cannot be estimated, an empty one will be returned.\n. \n. @sa\n. getAffineTransform, estimateAffine2D, estimateAffinePartial2D, getPerspectiveTransform, warpPerspective,\n. perspectiveTransform" ... - -def findNonZero(src: ndarray, idx=...) -> typing.Any: +def findNonZero(src: Mat, idx=...) -> typing.Any: 'findNonZero(src[, idx]) -> idx\n. @brief Returns the list of locations of non-zero pixels\n. \n. Given a binary matrix (likely returned from an operation such\n. as threshold(), compare(), >, ==, etc, return all of\n. the non-zero indices as a cv::Mat or std::vector (x,y)\n. For example:\n. @code{.cpp}\n. cv::Mat binaryImage; // input, binary image\n. cv::Mat locations; // output, locations of non-zero pixels\n. cv::findNonZero(binaryImage, locations);\n. \n. // access pixel coordinates\n. Point pnt = locations.at(i);\n. @endcode\n. or\n. @code{.cpp}\n. cv::Mat binaryImage; // input, binary image\n. vector locations; // output, locations of non-zero pixels\n. cv::findNonZero(binaryImage, locations);\n. \n. // access pixel coordinates\n. Point pnt = locations[i];\n. @endcode\n. @param src single-channel array\n. @param idx the output array, type of cv::Mat or std::vector, corresponding to non-zero indices in the input' ... - def findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize) -> typing.Any: "findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize) -> retval, warpMatrix\n. @brief Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 .\n. \n. @param templateImage single-channel template image; CV_8U or CV_32F array.\n. @param inputImage single-channel input image which should be warped with the final warpMatrix in\n. order to provide an image similar to templateImage, same type as templateImage.\n. @param warpMatrix floating-point \\f$2\\times 3\\f$ or \\f$3\\times 3\\f$ mapping matrix (warp).\n. @param motionType parameter, specifying the type of motion:\n. - **MOTION_TRANSLATION** sets a translational motion model; warpMatrix is \\f$2\\times 3\\f$ with\n. the first \\f$2\\times 2\\f$ part being the unity matrix and the rest two parameters being\n. estimated.\n. - **MOTION_EUCLIDEAN** sets a Euclidean (rigid) transformation as motion model; three\n. parameters are estimated; warpMatrix is \\f$2\\times 3\\f$.\n. - **MOTION_AFFINE** sets an affine motion model (DEFAULT); six parameters are estimated;\n. warpMatrix is \\f$2\\times 3\\f$.\n. - **MOTION_HOMOGRAPHY** sets a homography as a motion model; eight parameters are\n. estimated;\\`warpMatrix\\` is \\f$3\\times 3\\f$.\n. @param criteria parameter, specifying the termination criteria of the ECC algorithm;\n. criteria.epsilon defines the threshold of the increment in the correlation coefficient between two\n. iterations (a negative criteria.epsilon makes criteria.maxcount the only termination criterion).\n. Default values are shown in the declaration above.\n. @param inputMask An optional mask to indicate valid values of inputImage.\n. @param gaussFiltSize An optional value indicating size of gaussian blur filter; (DEFAULT: 5)\n. \n. The function estimates the optimum transformation (warpMatrix) with respect to ECC criterion\n. (@cite EP08), that is\n. \n. \\f[\\texttt{warpMatrix} = \\arg\\max_{W} \\texttt{ECC}(\\texttt{templateImage}(x,y),\\texttt{inputImage}(x',y'))\\f]\n. \n. where\n. \n. \\f[\\begin{bmatrix} x' \\\\ y' \\end{bmatrix} = W \\cdot \\begin{bmatrix} x \\\\ y \\\\ 1 \\end{bmatrix}\\f]\n. \n. (the equation holds with homogeneous coordinates for homography). It returns the final enhanced\n. correlation coefficient, that is the correlation coefficient between the template image and the\n. final warped input image. When a \\f$3\\times 3\\f$ matrix is given with motionType =0, 1 or 2, the third\n. row is ignored.\n. \n. Unlike findHomography and estimateRigidTransform, the function findTransformECC implements an\n. area-based alignment that builds on intensity similarities. In essence, the function updates the\n. initial transformation that roughly aligns the images. If this information is missing, the identity\n. warp (unity matrix) is used as an initialization. Note that if images undergo strong\n. displacements/rotations, an initial transformation that roughly aligns the images is necessary\n. (e.g., a simple euclidean/similarity transform that allows for the images showing the same image\n. content approximately). Use inverse warping in the second image to take an image close to the first\n. one, i.e. use the flag WARP_INVERSE_MAP with warpAffine or warpPerspective. See also the OpenCV\n. sample image_alignment.cpp that demonstrates the use of the function. Note that the function throws\n. an exception if algorithm does not converges.\n. \n. @sa\n. computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography" ... - def fitEllipse(points) -> typing.Any: 'fitEllipse(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits (in a least-squares sense) a set of 2D points best of\n. all. It returns the rotated rectangle in which the ellipse is inscribed. The first algorithm described by @cite Fitzgibbon95\n. is used. Developer should keep in mind that it is possible that the returned\n. ellipse/rotatedRect data contains negative indices, due to the data points being close to the\n. border of the containing Mat element.\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' ... - def fitEllipseAMS(points) -> typing.Any: 'fitEllipseAMS(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits a set of 2D points.\n. It returns the rotated rectangle in which the ellipse is inscribed.\n. The Approximate Mean Square (AMS) proposed by @cite Taubin1991 is used.\n. \n. For an ellipse, this basis set is \\f$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) \\f$,\n. which is a set of six free coefficients \\f$ A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} \\f$.\n. However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \\f$ (a,b) \\f$,\n. the position \\f$ (x_0,y_0) \\f$, and the orientation \\f$ \\theta \\f$. This is because the basis set includes lines,\n. quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits.\n. If the fit is found to be a parabolic or hyperbolic function then the standard #fitEllipse method is used.\n. The AMS method restricts the fit to parabolic, hyperbolic and elliptical curves\n. by imposing the condition that \\f$ A^T ( D_x^T D_x + D_y^T D_y) A = 1 \\f$ where\n. the matrices \\f$ Dx \\f$ and \\f$ Dy \\f$ are the partial derivatives of the design matrix \\f$ D \\f$ with\n. respect to x and y. The matrices are formed row by row applying the following to\n. each of the points in the set:\n. \\f{align*}{\n. D(i,:)&=\\left\\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\\right\\} &\n. D_x(i,:)&=\\left\\{2 x_i,y_i,0,1,0,0\\right\\} &\n. D_y(i,:)&=\\left\\{0,x_i,2 y_i,0,1,0\\right\\}\n. \\f}\n. The AMS method minimizes the cost function\n. \\f{equation*}{\n. \\epsilon ^2=\\frac{ A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T }\n. \\f}\n. \n. The minimum cost is found by solving the generalized eigenvalue problem.\n. \n. \\f{equation*}{\n. D^T D A = \\lambda \\left( D_x^T D_x + D_y^T D_y\\right) A\n. \\f}\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' ... - def fitEllipseDirect(points) -> typing.Any: 'fitEllipseDirect(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits a set of 2D points.\n. It returns the rotated rectangle in which the ellipse is inscribed.\n. The Direct least square (Direct) method by @cite Fitzgibbon1999 is used.\n. \n. For an ellipse, this basis set is \\f$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) \\f$,\n. which is a set of six free coefficients \\f$ A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} \\f$.\n. However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \\f$ (a,b) \\f$,\n. the position \\f$ (x_0,y_0) \\f$, and the orientation \\f$ \\theta \\f$. This is because the basis set includes lines,\n. quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits.\n. The Direct method confines the fit to ellipses by ensuring that \\f$ 4 A_{xx} A_{yy}- A_{xy}^2 > 0 \\f$.\n. The condition imposed is that \\f$ 4 A_{xx} A_{yy}- A_{xy}^2=1 \\f$ which satisfies the inequality\n. and as the coefficients can be arbitrarily scaled is not overly restrictive.\n. \n. \\f{equation*}{\n. \\epsilon ^2= A^T D^T D A \\quad \\text{with} \\quad A^T C A =1 \\quad \\text{and} \\quad C=\\left(\\begin{matrix}\n. 0 & 0 & 2 & 0 & 0 & 0 \\\\\n. 0 & -1 & 0 & 0 & 0 & 0 \\\\\n. 2 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0\n. \\end{matrix} \\right)\n. \\f}\n. \n. The minimum cost is found by solving the generalized eigenvalue problem.\n. \n. \\f{equation*}{\n. D^T D A = \\lambda \\left( C\\right) A\n. \\f}\n. \n. The system produces only one positive eigenvalue \\f$ \\lambda\\f$ which is chosen as the solution\n. with its eigenvector \\f$\\mathbf{u}\\f$. These are used to find the coefficients\n. \n. \\f{equation*}{\n. A = \\sqrt{\\frac{1}{\\mathbf{u}^T C \\mathbf{u}}} \\mathbf{u}\n. \\f}\n. The scaling factor guarantees that \\f$A^T C A =1\\f$.\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' ... - def fitLine(points, distType, param, reps, aeps, line=...) -> typing.Any: 'fitLine(points, distType, param, reps, aeps[, line]) -> line\n. @brief Fits a line to a 2D or 3D point set.\n. \n. The function fitLine fits a line to a 2D or 3D point set by minimizing \\f$\\sum_i \\rho(r_i)\\f$ where\n. \\f$r_i\\f$ is a distance between the \\f$i^{th}\\f$ point, the line and \\f$\\rho(r)\\f$ is a distance function, one\n. of the following:\n. - DIST_L2\n. \\f[\\rho (r) = r^2/2 \\quad \\text{(the simplest and the fastest least-squares method)}\\f]\n. - DIST_L1\n. \\f[\\rho (r) = r\\f]\n. - DIST_L12\n. \\f[\\rho (r) = 2 \\cdot ( \\sqrt{1 + \\frac{r^2}{2}} - 1)\\f]\n. - DIST_FAIR\n. \\f[\\rho \\left (r \\right ) = C^2 \\cdot \\left ( \\frac{r}{C} - \\log{\\left(1 + \\frac{r}{C}\\right)} \\right ) \\quad \\text{where} \\quad C=1.3998\\f]\n. - DIST_WELSCH\n. \\f[\\rho \\left (r \\right ) = \\frac{C^2}{2} \\cdot \\left ( 1 - \\exp{\\left(-\\left(\\frac{r}{C}\\right)^2\\right)} \\right ) \\quad \\text{where} \\quad C=2.9846\\f]\n. - DIST_HUBER\n. \\f[\\rho (r) = \\fork{r^2/2}{if \\(r < C\\)}{C \\cdot (r-C/2)}{otherwise} \\quad \\text{where} \\quad C=1.345\\f]\n. \n. The algorithm is based on the M-estimator ( ) technique\n. that iteratively fits the line using the weighted least-squares algorithm. After each iteration the\n. weights \\f$w_i\\f$ are adjusted to be inversely proportional to \\f$\\rho(r_i)\\f$ .\n. \n. @param points Input vector of 2D or 3D points, stored in std::vector\\<\\> or Mat.\n. @param line Output line parameters. In case of 2D fitting, it should be a vector of 4 elements\n. (like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line and\n. (x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements (like\n. Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector collinear to the line\n. and (x0, y0, z0) is a point on the line.\n. @param distType Distance used by the M-estimator, see #DistanceTypes\n. @param param Numerical parameter ( C ) for some types of distances. If it is 0, an optimal value\n. is chosen.\n. @param reps Sufficient accuracy for the radius (distance between the coordinate origin and the line).\n. @param aeps Sufficient accuracy for the angle. 0.01 would be a good default value for reps and aeps.' ... - flann_Index = _mod_cv2.flann_Index - - -def flip(src: ndarray, flipCode, dts: ndarray = ...) -> typing.Any: +def flip(src: Mat, flipCode, dts: Mat = ...) -> typing.Any: 'flip(src, flipCode[, dst]) -> dst\n. @brief Flips a 2D array around vertical, horizontal, or both axes.\n. \n. The function cv::flip flips the array in one of three different ways (row\n. and column indices are 0-based):\n. \\f[\\texttt{dst} _{ij} =\n. \\left\\{\n. \\begin{array}{l l}\n. \\texttt{src} _{\\texttt{src.rows}-i-1,j} & if\\; \\texttt{flipCode} = 0 \\\\\n. \\texttt{src} _{i, \\texttt{src.cols} -j-1} & if\\; \\texttt{flipCode} > 0 \\\\\n. \\texttt{src} _{ \\texttt{src.rows} -i-1, \\texttt{src.cols} -j-1} & if\\; \\texttt{flipCode} < 0 \\\\\n. \\end{array}\n. \\right.\\f]\n. The example scenarios of using the function are the following:\n. * Vertical flipping of the image (flipCode == 0) to switch between\n. top-left and bottom-left image origin. This is a typical operation\n. in video processing on Microsoft Windows\\* OS.\n. * Horizontal flipping of the image with the subsequent horizontal\n. shift and absolute difference calculation to check for a\n. vertical-axis symmetry (flipCode \\> 0).\n. * Simultaneous horizontal and vertical flipping of the image with\n. the subsequent shift and absolute difference calculation to check\n. for a central symmetry (flipCode \\< 0).\n. * Reversing the order of point arrays (flipCode \\> 0 or\n. flipCode == 0).\n. @param src input array.\n. @param dst output array of the same size and type as src.\n. @param flipCode a flag to specify how to flip the array; 0 means\n. flipping around the x-axis and positive value (for example, 1) means\n. flipping around y-axis. Negative value (for example, -1) means flipping\n. around both axes.\n. @sa transpose , repeat , completeSymm' ... - -def floodFill(image: ndarray, mask: typing.Optional[ndarray], seedPoint, newVal, loDiff=..., upDiff=..., flags: int = ...) -> typing.Any: +def floodFill(image: Mat, mask: typing.Optional[Mat], seedPoint, newVal, loDiff=..., upDiff=..., flags: int = ...) -> typing.Any: "floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]]) -> retval, image, mask, rect\n. @brief Fills a connected component with the given color.\n. \n. The function cv::floodFill fills a connected component starting from the seed point with the specified\n. color. The connectivity is determined by the color/brightness closeness of the neighbor pixels. The\n. pixel at \\f$(x,y)\\f$ is considered to belong to the repainted domain if:\n. \n. - in case of a grayscale image and floating range\n. \\f[\\texttt{src} (x',y')- \\texttt{loDiff} \\leq \\texttt{src} (x,y) \\leq \\texttt{src} (x',y')+ \\texttt{upDiff}\\f]\n. \n. \n. - in case of a grayscale image and fixed range\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)- \\texttt{loDiff} \\leq \\texttt{src} (x,y) \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)+ \\texttt{upDiff}\\f]\n. \n. \n. - in case of a color image and floating range\n. \\f[\\texttt{src} (x',y')_r- \\texttt{loDiff} _r \\leq \\texttt{src} (x,y)_r \\leq \\texttt{src} (x',y')_r+ \\texttt{upDiff} _r,\\f]\n. \\f[\\texttt{src} (x',y')_g- \\texttt{loDiff} _g \\leq \\texttt{src} (x,y)_g \\leq \\texttt{src} (x',y')_g+ \\texttt{upDiff} _g\\f]\n. and\n. \\f[\\texttt{src} (x',y')_b- \\texttt{loDiff} _b \\leq \\texttt{src} (x,y)_b \\leq \\texttt{src} (x',y')_b+ \\texttt{upDiff} _b\\f]\n. \n. \n. - in case of a color image and fixed range\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_r- \\texttt{loDiff} _r \\leq \\texttt{src} (x,y)_r \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_r+ \\texttt{upDiff} _r,\\f]\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_g- \\texttt{loDiff} _g \\leq \\texttt{src} (x,y)_g \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_g+ \\texttt{upDiff} _g\\f]\n. and\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_b- \\texttt{loDiff} _b \\leq \\texttt{src} (x,y)_b \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_b+ \\texttt{upDiff} _b\\f]\n. \n. \n. where \\f$src(x',y')\\f$ is the value of one of pixel neighbors that is already known to belong to the\n. component. That is, to be added to the connected component, a color/brightness of the pixel should\n. be close enough to:\n. - Color/brightness of one of its neighbors that already belong to the connected component in case\n. of a floating range.\n. - Color/brightness of the seed point in case of a fixed range.\n. \n. Use these functions to either mark a connected component with the specified color in-place, or build\n. a mask and then extract the contour, or copy the region to another image, and so on.\n. \n. @param image Input/output 1- or 3-channel, 8-bit, or floating-point image. It is modified by the\n. function unless the #FLOODFILL_MASK_ONLY flag is set in the second variant of the function. See\n. the details below.\n. @param mask Operation mask that should be a single-channel 8-bit image, 2 pixels wider and 2 pixels\n. taller than image. Since this is both an input and output parameter, you must take responsibility\n. of initializing it. Flood-filling cannot go across non-zero pixels in the input mask. For example,\n. an edge detector output can be used as a mask to stop filling at edges. On output, pixels in the\n. mask corresponding to filled pixels in the image are set to 1 or to the a value specified in flags\n. as described below. Additionally, the function fills the border of the mask with ones to simplify\n. internal processing. It is therefore possible to use the same mask in multiple calls to the function\n. to make sure the filled areas do not overlap.\n. @param seedPoint Starting point.\n. @param newVal New value of the repainted domain pixels.\n. @param loDiff Maximal lower brightness/color difference between the currently observed pixel and\n. one of its neighbors belonging to the component, or a seed pixel being added to the component.\n. @param upDiff Maximal upper brightness/color difference between the currently observed pixel and\n. one of its neighbors belonging to the component, or a seed pixel being added to the component.\n. @param rect Optional output parameter set by the function to the minimum bounding rectangle of the\n. repainted domain.\n. @param flags Operation flags. The first 8 bits contain a connectivity value. The default value of\n. 4 means that only the four nearest neighbor pixels (those that share an edge) are considered. A\n. connectivity value of 8 means that the eight nearest neighbor pixels (those that share a corner)\n. will be considered. The next 8 bits (8-16) contain a value between 1 and 255 with which to fill\n. the mask (the default value is 1). For example, 4 | ( 255 \\<\\< 8 ) will consider 4 nearest\n. neighbours and fill the mask with a value of 255. The following additional options occupy higher\n. bits and therefore may be further combined with the connectivity and mask fill values using\n. bit-wise or (|), see #FloodFillFlags.\n. \n. @note Since the mask is larger than the filled image, a pixel \\f$(x, y)\\f$ in image corresponds to the\n. pixel \\f$(x+1, y+1)\\f$ in the mask .\n. \n. @sa findContours" ... - -def gemm(src1: ndarray, src2: ndarray, alpha, src3, beta, dts: ndarray = ..., flags: int = ...) -> typing.Any: +def gemm(src1: Mat, src2: Mat, alpha, src3, beta, dts: Mat = ..., flags: int = ...) -> typing.Any: 'gemm(src1, src2, alpha, src3, beta[, dst[, flags]]) -> dst\n. @brief Performs generalized matrix multiplication.\n. \n. The function cv::gemm performs generalized matrix multiplication similar to the\n. gemm functions in BLAS level 3. For example,\n. `gemm(src1, src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T)`\n. corresponds to\n. \\f[\\texttt{dst} = \\texttt{alpha} \\cdot \\texttt{src1} ^T \\cdot \\texttt{src2} + \\texttt{beta} \\cdot \\texttt{src3} ^T\\f]\n. \n. In case of complex (two-channel) data, performed a complex matrix\n. multiplication.\n. \n. The function can be replaced with a matrix expression. For example, the\n. above call can be replaced with:\n. @code{.cpp}\n. dst = alpha*src1.t()*src2 + beta*src3.t();\n. @endcode\n. @param src1 first multiplied input matrix that could be real(CV_32FC1,\n. CV_64FC1) or complex(CV_32FC2, CV_64FC2).\n. @param src2 second multiplied input matrix of the same type as src1.\n. @param alpha weight of the matrix product.\n. @param src3 third optional delta matrix added to the matrix product; it\n. should have the same type as src1 and src2.\n. @param beta weight of src3.\n. @param dst output matrix; it has the proper size and the same type as\n. input matrices.\n. @param flags operation flags (cv::GemmFlags)\n. @sa mulTransposed , transform' ... - -def getAffineTransform(src: ndarray, dts: ndarray) -> typing.Any: +def getAffineTransform(src: Mat, dts: Mat) -> typing.Any: 'getAffineTransform(src, dst) -> retval\n. @overload' ... - def getBuildInformation() -> typing.Any: 'getBuildInformation() -> retval\n. @brief Returns full configuration time cmake output.\n. \n. Returned value is raw cmake output including version control system revision, compiler version,\n. compiler flags, enabled modules and third party libraries, etc. Output format depends on target\n. architecture.' ... - def getCPUFeaturesLine() -> typing.Any: 'getCPUFeaturesLine() -> retval\n. @brief Returns list of CPU features enabled during compilation.\n. \n. Returned value is a string containing space separated list of CPU features with following markers:\n. \n. - no markers - baseline features\n. - prefix `*` - features enabled in dispatcher\n. - suffix `?` - features enabled but not available in HW\n. \n. Example: `SSE SSE2 SSE3 *SSE4.1 *SSE4.2 *FP16 *AVX *AVX2 *AVX512-SKX?`' ... - def getCPUTickCount() -> typing.Any: 'getCPUTickCount() -> retval\n. @brief Returns the number of CPU ticks.\n. \n. The function returns the current number of CPU ticks on some architectures (such as x86, x64,\n. PowerPC). On other platforms the function is equivalent to getTickCount. It can also be used for\n. very accurate time measurements, as well as for RNG initialization. Note that in case of multi-CPU\n. systems a thread, from which getCPUTickCount is called, can be suspended and resumed at another CPU\n. with its own counter. So, theoretically (and practically) the subsequent calls to the function do\n. not necessary return the monotonously increasing values. Also, since a modern CPU varies the CPU\n. frequency depending on the load, the number of CPU clocks spent in some code cannot be directly\n. converted to time units. Therefore, getTickCount is generally a preferable solution for measuring\n. execution time.' ... - def getDefaultNewCameraMatrix(cameraMatrix, imgsize=..., centerPrincipalPoint=...) -> typing.Any: 'getDefaultNewCameraMatrix(cameraMatrix[, imgsize[, centerPrincipalPoint]]) -> retval\n. @brief Returns the default new camera matrix.\n. \n. The function returns the camera matrix that is either an exact copy of the input cameraMatrix (when\n. centerPrinicipalPoint=false ), or the modified one (when centerPrincipalPoint=true).\n. \n. In the latter case, the new camera matrix will be:\n. \n. \\f[\\begin{bmatrix} f_x && 0 && ( \\texttt{imgSize.width} -1)*0.5 \\\\ 0 && f_y && ( \\texttt{imgSize.height} -1)*0.5 \\\\ 0 && 0 && 1 \\end{bmatrix} ,\\f]\n. \n. where \\f$f_x\\f$ and \\f$f_y\\f$ are \\f$(0,0)\\f$ and \\f$(1,1)\\f$ elements of cameraMatrix, respectively.\n. \n. By default, the undistortion functions in OpenCV (see #initUndistortRectifyMap, #undistort) do not\n. move the principal point. However, when you work with stereo, it is important to move the principal\n. points in both views to the same y-coordinate (which is required by most of stereo correspondence\n. algorithms), and may be to the same x-coordinate too. So, you can form the new camera matrix for\n. each view where the principal points are located at the center.\n. \n. @param cameraMatrix Input camera matrix.\n. @param imgsize Camera view image size in pixels.\n. @param centerPrincipalPoint Location of the principal point in the new camera matrix. The\n. parameter indicates whether this location should be at the image center or not.' ... - def getDerivKernels(dx, dy, ksize, kx=..., ky=..., normalize=..., ktype=...) -> typing.Any: 'getDerivKernels(dx, dy, ksize[, kx[, ky[, normalize[, ktype]]]]) -> kx, ky\n. @brief Returns filter coefficients for computing spatial image derivatives.\n. \n. The function computes and returns the filter coefficients for spatial image derivatives. When\n. `ksize=FILTER_SCHARR`, the Scharr \\f$3 \\times 3\\f$ kernels are generated (see #Scharr). Otherwise, Sobel\n. kernels are generated (see #Sobel). The filters are normally passed to #sepFilter2D or to\n. \n. @param kx Output matrix of row filter coefficients. It has the type ktype .\n. @param ky Output matrix of column filter coefficients. It has the type ktype .\n. @param dx Derivative order in respect of x.\n. @param dy Derivative order in respect of y.\n. @param ksize Aperture size. It can be FILTER_SCHARR, 1, 3, 5, or 7.\n. @param normalize Flag indicating whether to normalize (scale down) the filter coefficients or not.\n. Theoretically, the coefficients should have the denominator \\f$=2^{ksize*2-dx-dy-2}\\f$. If you are\n. going to filter floating-point images, you are likely to use the normalized kernels. But if you\n. compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve\n. all the fractional bits, you may want to set normalize=false .\n. @param ktype Type of filter coefficients. It can be CV_32f or CV_64F .' ... - def getFontScaleFromHeight(fontFace, pixelHeight, thickness=...) -> typing.Any: 'getFontScaleFromHeight(fontFace, pixelHeight[, thickness]) -> retval\n. @brief Calculates the font-specific size to use to achieve a given height in pixels.\n. \n. @param fontFace Font to use, see cv::HersheyFonts.\n. @param pixelHeight Pixel height to compute the fontScale for\n. @param thickness Thickness of lines used to render the text.See putText for details.\n. @return The fontSize to use for cv::putText\n. \n. @see cv::putText' ... - def getGaborKernel(ksize, sigma, theta, lambd, gamma, psi=..., ktype=...) -> typing.Any: 'getGaborKernel(ksize, sigma, theta, lambd, gamma[, psi[, ktype]]) -> retval\n. @brief Returns Gabor filter coefficients.\n. \n. For more details about gabor filter equations and parameters, see: [Gabor\n. Filter](http://en.wikipedia.org/wiki/Gabor_filter).\n. \n. @param ksize Size of the filter returned.\n. @param sigma Standard deviation of the gaussian envelope.\n. @param theta Orientation of the normal to the parallel stripes of a Gabor function.\n. @param lambd Wavelength of the sinusoidal factor.\n. @param gamma Spatial aspect ratio.\n. @param psi Phase offset.\n. @param ktype Type of filter coefficients. It can be CV_32F or CV_64F .' ... - def getGaussianKernel(ksize, sigma, ktype=...) -> typing.Any: 'getGaussianKernel(ksize, sigma[, ktype]) -> retval\n. @brief Returns Gaussian filter coefficients.\n. \n. The function computes and returns the \\f$\\texttt{ksize} \\times 1\\f$ matrix of Gaussian filter\n. coefficients:\n. \n. \\f[G_i= \\alpha *e^{-(i-( \\texttt{ksize} -1)/2)^2/(2* \\texttt{sigma}^2)},\\f]\n. \n. where \\f$i=0..\\texttt{ksize}-1\\f$ and \\f$\\alpha\\f$ is the scale factor chosen so that \\f$\\sum_i G_i=1\\f$.\n. \n. Two of such generated kernels can be passed to sepFilter2D. Those functions automatically recognize\n. smoothing kernels (a symmetrical kernel with sum of weights equal to 1) and handle them accordingly.\n. You may also use the higher-level GaussianBlur.\n. @param ksize Aperture size. It should be odd ( \\f$\\texttt{ksize} \\mod 2 = 1\\f$ ) and positive.\n. @param sigma Gaussian standard deviation. If it is non-positive, it is computed from ksize as\n. `sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8`.\n. @param ktype Type of filter coefficients. It can be CV_32F or CV_64F .\n. @sa sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur' ... - def getHardwareFeatureName(feature) -> typing.Any: 'getHardwareFeatureName(feature) -> retval\n. @brief Returns feature name by ID\n. \n. Returns empty string if feature is not defined' ... - def getNumThreads() -> typing.Any: 'getNumThreads() -> retval\n. @brief Returns the number of threads used by OpenCV for parallel regions.\n. \n. Always returns 1 if OpenCV is built without threading support.\n. \n. The exact meaning of return value depends on the threading framework used by OpenCV library:\n. - `TBB` - The number of threads, that OpenCV will try to use for parallel regions. If there is\n. any tbb::thread_scheduler_init in user code conflicting with OpenCV, then function returns\n. default number of threads used by TBB library.\n. - `OpenMP` - An upper bound on the number of threads that could be used to form a new team.\n. - `Concurrency` - The number of threads, that OpenCV will try to use for parallel regions.\n. - `GCD` - Unsupported; returns the GCD thread pool limit (512) for compatibility.\n. - `C=` - The number of threads, that OpenCV will try to use for parallel regions, if before\n. called setNumThreads with threads \\> 0, otherwise returns the number of logical CPUs,\n. available for the process.\n. @sa setNumThreads, getThreadNum' ... - def getNumberOfCPUs() -> typing.Any: 'getNumberOfCPUs() -> retval\n. @brief Returns the number of logical CPUs available for the process.' ... - def getOptimalDFTSize(vecsize) -> typing.Any: "getOptimalDFTSize(vecsize) -> retval\n. @brief Returns the optimal DFT size for a given vector size.\n. \n. DFT performance is not a monotonic function of a vector size. Therefore, when you calculate\n. convolution of two arrays or perform the spectral analysis of an array, it usually makes sense to\n. pad the input data with zeros to get a bit larger array that can be transformed much faster than the\n. original one. Arrays whose size is a power-of-two (2, 4, 8, 16, 32, ...) are the fastest to process.\n. Though, the arrays whose size is a product of 2's, 3's, and 5's (for example, 300 = 5\\*5\\*3\\*2\\*2)\n. are also processed quite efficiently.\n. \n. The function cv::getOptimalDFTSize returns the minimum number N that is greater than or equal to vecsize\n. so that the DFT of a vector of size N can be processed efficiently. In the current implementation N\n. = 2 ^p^ \\* 3 ^q^ \\* 5 ^r^ for some integer p, q, r.\n. \n. The function returns a negative number if vecsize is too large (very close to INT_MAX ).\n. \n. While the function cannot be used directly to estimate the optimal vector size for DCT transform\n. (since the current DCT implementation supports only even-size vectors), it can be easily processed\n. as getOptimalDFTSize((vecsize+1)/2)\\*2.\n. @param vecsize vector size.\n. @sa dft , dct , idft , idct , mulSpectrums" ... - def getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha, newImgSize=..., centerPrincipalPoint=...) -> typing.Any: 'getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha[, newImgSize[, centerPrincipalPoint]]) -> retval, validPixROI\n. @brief Returns the new camera matrix based on the free scaling parameter.\n. \n. @param cameraMatrix Input camera matrix.\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param imageSize Original image size.\n. @param alpha Free scaling parameter between 0 (when all the pixels in the undistorted image are\n. valid) and 1 (when all the source image pixels are retained in the undistorted image). See\n. stereoRectify for details.\n. @param newImgSize Image size after rectification. By default, it is set to imageSize .\n. @param validPixROI Optional output rectangle that outlines all-good-pixels region in the\n. undistorted image. See roi1, roi2 description in stereoRectify .\n. @param centerPrincipalPoint Optional flag that indicates whether in the new camera matrix the\n. principal point should be at the image center or not. By default, the principal point is chosen to\n. best fit a subset of the source image (determined by alpha) to the corrected image.\n. @return new_camera_matrix Output new camera matrix.\n. \n. The function computes and returns the optimal new camera matrix based on the free scaling parameter.\n. By varying this parameter, you may retrieve only sensible pixels alpha=0 , keep all the original\n. image pixels if there is valuable information in the corners alpha=1 , or get something in between.\n. When alpha\\>0 , the undistorted result is likely to have some black pixels corresponding to\n. "virtual" pixels outside of the captured distorted image. The original camera matrix, distortion\n. coefficients, the computed new camera matrix, and newImageSize should be passed to\n. initUndistortRectifyMap to produce the maps for remap .' ... - -def getPerspectiveTransform(src: ndarray, dts: ndarray, solveMethod=...) -> typing.Any: +def getPerspectiveTransform(src: Mat, dts: Mat, solveMethod=...) -> typing.Any: "getPerspectiveTransform(src, dst[, solveMethod]) -> retval\n. @brief Calculates a perspective transform from four pairs of the corresponding points.\n. \n. The function calculates the \\f$3 \\times 3\\f$ matrix of a perspective transform so that:\n. \n. \\f[\\begin{bmatrix} t_i x'_i \\\\ t_i y'_i \\\\ t_i \\end{bmatrix} = \\texttt{map_matrix} \\cdot \\begin{bmatrix} x_i \\\\ y_i \\\\ 1 \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2,3\\f]\n. \n. @param src Coordinates of quadrangle vertices in the source image.\n. @param dst Coordinates of the corresponding quadrangle vertices in the destination image.\n. @param solveMethod method passed to cv::solve (#DecompTypes)\n. \n. @sa findHomography, warpPerspective, perspectiveTransform" ... - -def getRectSubPix(image: ndarray, patchSize, center, patch=..., patchType=...) -> typing.Any: +def getRectSubPix(image: Mat, patchSize, center, patch=..., patchType=...) -> typing.Any: 'getRectSubPix(image, patchSize, center[, patch[, patchType]]) -> patch\n. @brief Retrieves a pixel rectangle from an image with sub-pixel accuracy.\n. \n. The function getRectSubPix extracts pixels from src:\n. \n. \\f[patch(x, y) = src(x + \\texttt{center.x} - ( \\texttt{dst.cols} -1)*0.5, y + \\texttt{center.y} - ( \\texttt{dst.rows} -1)*0.5)\\f]\n. \n. where the values of the pixels at non-integer coordinates are retrieved using bilinear\n. interpolation. Every channel of multi-channel images is processed independently. Also\n. the image should be a single channel or three channel image. While the center of the\n. rectangle must be inside the image, parts of the rectangle may be outside.\n. \n. @param image Source image.\n. @param patchSize Size of the extracted patch.\n. @param center Floating point coordinates of the center of the extracted rectangle within the\n. source image. The center must be inside the image.\n. @param patch Extracted patch that has the size patchSize and the same number of channels as src .\n. @param patchType Depth of the extracted pixels. By default, they have the same depth as src .\n. \n. @sa warpAffine, warpPerspective' ... - def getRotationMatrix2D(center, angle, scale) -> typing.Any: 'getRotationMatrix2D(center, angle, scale) -> retval\n. @brief Calculates an affine matrix of 2D rotation.\n. \n. The function calculates the following matrix:\n. \n. \\f[\\begin{bmatrix} \\alpha & \\beta & (1- \\alpha ) \\cdot \\texttt{center.x} - \\beta \\cdot \\texttt{center.y} \\\\ - \\beta & \\alpha & \\beta \\cdot \\texttt{center.x} + (1- \\alpha ) \\cdot \\texttt{center.y} \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[\\begin{array}{l} \\alpha = \\texttt{scale} \\cdot \\cos \\texttt{angle} , \\\\ \\beta = \\texttt{scale} \\cdot \\sin \\texttt{angle} \\end{array}\\f]\n. \n. The transformation maps the rotation center to itself. If this is not the target, adjust the shift.\n. \n. @param center Center of the rotation in the source image.\n. @param angle Rotation angle in degrees. Positive values mean counter-clockwise rotation (the\n. coordinate origin is assumed to be the top-left corner).\n. @param scale Isotropic scale factor.\n. \n. @sa getAffineTransform, warpAffine, transform' ... - def getStructuringElement(shape, ksize, anchor=...) -> typing.Any: 'getStructuringElement(shape, ksize[, anchor]) -> retval\n. @brief Returns a structuring element of the specified size and shape for morphological operations.\n. \n. The function constructs and returns the structuring element that can be further passed to #erode,\n. #dilate or #morphologyEx. But you can also construct an arbitrary binary mask yourself and use it as\n. the structuring element.\n. \n. @param shape Element shape that could be one of #MorphShapes\n. @param ksize Size of the structuring element.\n. @param anchor Anchor position within the element. The default value \\f$(-1, -1)\\f$ means that the\n. anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor\n. position. In other cases the anchor just regulates how much the result of the morphological\n. operation is shifted.' ... - def getTextSize(text, fontFace, fontScale, thickness) -> typing.Any: 'getTextSize(text, fontFace, fontScale, thickness) -> retval, baseLine\n. @brief Calculates the width and height of a text string.\n. \n. The function cv::getTextSize calculates and returns the size of a box that contains the specified text.\n. That is, the following code renders some text, the tight box surrounding it, and the baseline: :\n. @code\n. String text = "Funny text inside the box";\n. int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX;\n. double fontScale = 2;\n. int thickness = 3;\n. \n. Mat img(600, 800, CV_8UC3, Scalar::all(0));\n. \n. int baseline=0;\n. Size textSize = getTextSize(text, fontFace,\n. fontScale, thickness, &baseline);\n. baseline += thickness;\n. \n. // center the text\n. Point textOrg((img.cols - textSize.width)/2,\n. (img.rows + textSize.height)/2);\n. \n. // draw the box\n. rectangle(img, textOrg + Point(0, baseline),\n. textOrg + Point(textSize.width, -textSize.height),\n. Scalar(0,0,255));\n. // ... and the baseline first\n. line(img, textOrg + Point(0, thickness),\n. textOrg + Point(textSize.width, thickness),\n. Scalar(0, 0, 255));\n. \n. // then put the text itself\n. putText(img, text, textOrg, fontFace, fontScale,\n. Scalar::all(255), thickness, 8);\n. @endcode\n. \n. @param text Input text string.\n. @param fontFace Font to use, see #HersheyFonts.\n. @param fontScale Font scale factor that is multiplied by the font-specific base size.\n. @param thickness Thickness of lines used to render the text. See #putText for details.\n. @param[out] baseLine y-coordinate of the baseline relative to the bottom-most text\n. point.\n. @return The size of a box that contains the specified text.\n. \n. @see putText' ... - def getThreadNum() -> typing.Any: "getThreadNum() -> retval\n. @brief Returns the index of the currently executed thread within the current parallel region. Always\n. returns 0 if called outside of parallel region.\n. \n. @deprecated Current implementation doesn't corresponding to this documentation.\n. \n. The exact meaning of the return value depends on the threading framework used by OpenCV library:\n. - `TBB` - Unsupported with current 4.1 TBB release. Maybe will be supported in future.\n. - `OpenMP` - The thread number, within the current team, of the calling thread.\n. - `Concurrency` - An ID for the virtual processor that the current context is executing on (0\n. for master thread and unique number for others, but not necessary 1,2,3,...).\n. - `GCD` - System calling thread's ID. Never returns 0 inside parallel region.\n. - `C=` - The index of the current parallel task.\n. @sa setNumThreads, getNumThreads" ... - def getTickCount() -> typing.Any: 'getTickCount() -> retval\n. @brief Returns the number of ticks.\n. \n. The function returns the number of ticks after the certain event (for example, when the machine was\n. turned on). It can be used to initialize RNG or to measure a function execution time by reading the\n. tick count before and after the function call.\n. @sa getTickFrequency, TickMeter' ... - def getTickFrequency() -> typing.Any: 'getTickFrequency() -> retval\n. @brief Returns the number of ticks per second.\n. \n. The function returns the number of ticks per second. That is, the following code computes the\n. execution time in seconds:\n. @code\n. double t = (double)getTickCount();\n. // do something ...\n. t = ((double)getTickCount() - t)/getTickFrequency();\n. @endcode\n. @sa getTickCount, TickMeter' ... - def getTrackbarPos(trackbarname, winname) -> typing.Any: 'getTrackbarPos(trackbarname, winname) -> retval\n. @brief Returns the trackbar position.\n. \n. The function returns the current position of the specified trackbar.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of the trackbar.' ... - def getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize) -> typing.Any: 'getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize) -> retval\n.' ... - def getVersionMajor() -> typing.Any: 'getVersionMajor() -> retval\n. @brief Returns major library version' ... - def getVersionMinor() -> typing.Any: 'getVersionMinor() -> retval\n. @brief Returns minor library version' ... - def getVersionRevision() -> typing.Any: 'getVersionRevision() -> retval\n. @brief Returns revision field of the library version' ... - def getVersionString() -> typing.Any: 'getVersionString() -> retval\n. @brief Returns library version string\n. \n. For example "3.4.1-dev".\n. \n. @sa getMajorVersion, getMinorVersion, getRevisionVersion' ... - def getWindowImageRect(winname) -> typing.Any: 'getWindowImageRect(winname) -> retval\n. @brief Provides rectangle of image in the window.\n. \n. The function getWindowImageRect returns the client screen coordinates, width and height of the image rendering area.\n. \n. @param winname Name of the window.\n. \n. @sa resizeWindow moveWindow' ... - def getWindowProperty(winname, prop_id) -> typing.Any: 'getWindowProperty(winname, prop_id) -> retval\n. @brief Provides parameters of a window.\n. \n. The function getWindowProperty returns properties of a window.\n. \n. @param winname Name of the window.\n. @param prop_id Window property to retrieve. The following operation flags are available: (cv::WindowPropertyFlags)\n. \n. @sa setWindowProperty' ... - -def goodFeaturesToTrack(image: ndarray, maxCorners, qualityLevel, minDistance, corners=..., mask: ndarray = ..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: +def goodFeaturesToTrack(image: Mat, maxCorners, qualityLevel, minDistance, corners=..., mask: Mat = ..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: 'goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) -> corners\n. @brief Determines strong corners on an image.\n. \n. The function finds the most prominent corners in the image or in the specified image region, as\n. described in @cite Shi94\n. \n. - Function calculates the corner quality measure at every source image pixel using the\n. #cornerMinEigenVal or #cornerHarris .\n. - Function performs a non-maximum suppression (the local maximums in *3 x 3* neighborhood are\n. retained).\n. - The corners with the minimal eigenvalue less than\n. \\f$\\texttt{qualityLevel} \\cdot \\max_{x,y} qualityMeasureMap(x,y)\\f$ are rejected.\n. - The remaining corners are sorted by the quality measure in the descending order.\n. - Function throws away each corner for which there is a stronger corner at a distance less than\n. maxDistance.\n. \n. The function can be used to initialize a point-based tracker of an object.\n. \n. @note If the function is called with different values A and B of the parameter qualityLevel , and\n. A \\> B, the vector of returned corners with qualityLevel=A will be the prefix of the output vector\n. with qualityLevel=B .\n. \n. @param image Input 8-bit or floating-point 32-bit, single-channel image.\n. @param corners Output vector of detected corners.\n. @param maxCorners Maximum number of corners to return. If there are more corners than are found,\n. the strongest of them is returned. `maxCorners <= 0` implies that no limit on the maximum is set\n. and all detected corners are returned.\n. @param qualityLevel Parameter characterizing the minimal accepted quality of image corners. The\n. parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue\n. (see #cornerMinEigenVal ) or the Harris function response (see #cornerHarris ). The corners with the\n. quality measure less than the product are rejected. For example, if the best corner has the\n. quality measure = 1500, and the qualityLevel=0.01 , then all the corners with the quality measure\n. less than 15 are rejected.\n. @param minDistance Minimum possible Euclidean distance between the returned corners.\n. @param mask Optional region of interest. If the image is not empty (it needs to have the type\n. CV_8UC1 and the same size as image ), it specifies the region in which the corners are detected.\n. @param blockSize Size of an average block for computing a derivative covariation matrix over each\n. pixel neighborhood. See cornerEigenValsAndVecs .\n. @param useHarrisDetector Parameter indicating whether to use a Harris detector (see #cornerHarris)\n. or #cornerMinEigenVal.\n. @param k Free parameter of the Harris detector.\n. \n. @sa cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform,\n\n\n\ngoodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, mask, blockSize, gradientSize[, corners[, useHarrisDetector[, k]]]) -> corners\n.' ... - -def grabCut(img: ndarray, mask: typing.Optional[ndarray], rect, bgdModel, fgdModel, iterCount, mode=...) -> typing.Any: +def grabCut(img: Mat, mask: typing.Optional[Mat], rect, bgdModel, fgdModel, iterCount, mode=...) -> typing.Any: 'grabCut(img, mask, rect, bgdModel, fgdModel, iterCount[, mode]) -> mask, bgdModel, fgdModel\n. @brief Runs the GrabCut algorithm.\n. \n. The function implements the [GrabCut image segmentation algorithm](http://en.wikipedia.org/wiki/GrabCut).\n. \n. @param img Input 8-bit 3-channel image.\n. @param mask Input/output 8-bit single-channel mask. The mask is initialized by the function when\n. mode is set to #GC_INIT_WITH_RECT. Its elements may have one of the #GrabCutClasses.\n. @param rect ROI containing a segmented object. The pixels outside of the ROI are marked as\n. "obvious background". The parameter is only used when mode==#GC_INIT_WITH_RECT .\n. @param bgdModel Temporary array for the background model. Do not modify it while you are\n. processing the same image.\n. @param fgdModel Temporary arrays for the foreground model. Do not modify it while you are\n. processing the same image.\n. @param iterCount Number of iterations the algorithm should make before returning the result. Note\n. that the result can be refined with further calls with mode==#GC_INIT_WITH_MASK or\n. mode==GC_EVAL .\n. @param mode Operation mode that could be one of the #GrabCutModes' ... - def groupRectangles(rectList, groupThreshold, eps=...) -> typing.Any: 'groupRectangles(rectList, groupThreshold[, eps]) -> rectList, weights\n. @overload' ... - def haveImageReader(filename: str) -> typing.Any: 'haveImageReader(filename) -> retval\n. @brief Returns true if the specified image can be decoded by OpenCV\n. \n. @param filename File name of the image' ... - def haveImageWriter(filename: str) -> typing.Any: 'haveImageWriter(filename) -> retval\n. @brief Returns true if an image with the specified filename can be encoded by OpenCV\n. \n. @param filename File name of the image' ... - def haveOpenVX() -> typing.Any: 'haveOpenVX() -> retval\n.' ... - -def hconcat(src: ndarray, dts: ndarray = ...) -> typing.Any: +def hconcat(src: Mat, dts: Mat = ...) -> typing.Any: 'hconcat(src[, dst]) -> dst\n. @overload\n. @code{.cpp}\n. std::vector matrices = { cv::Mat(4, 1, CV_8UC1, cv::Scalar(1)),\n. cv::Mat(4, 1, CV_8UC1, cv::Scalar(2)),\n. cv::Mat(4, 1, CV_8UC1, cv::Scalar(3)),};\n. \n. cv::Mat out;\n. cv::hconcat( matrices, out );\n. //out:\n. //[1, 2, 3;\n. // 1, 2, 3;\n. // 1, 2, 3;\n. // 1, 2, 3]\n. @endcode\n. @param src input array or vector of matrices. all of the matrices must have the same number of rows and the same depth.\n. @param dst output array. It has the same number of rows and depth as the src, and the sum of cols of the src.\n. same depth.' ... - -def idct(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: +def idct(src: Mat, dts: Mat = ..., flags: int = ...) -> typing.Any: 'idct(src[, dst[, flags]]) -> dst\n. @brief Calculates the inverse Discrete Cosine Transform of a 1D or 2D array.\n. \n. idct(src, dst, flags) is equivalent to dct(src, dst, flags | DCT_INVERSE).\n. @param src input floating-point single-channel array.\n. @param dst output array of the same size and type as src.\n. @param flags operation flags.\n. @sa dct, dft, idft, getOptimalDFTSize' ... - -def idft(src: ndarray, dts: ndarray = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: +def idft(src: Mat, dts: Mat = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: 'idft(src[, dst[, flags[, nonzeroRows]]]) -> dst\n. @brief Calculates the inverse Discrete Fourier Transform of a 1D or 2D array.\n. \n. idft(src, dst, flags) is equivalent to dft(src, dst, flags | #DFT_INVERSE) .\n. @note None of dft and idft scales the result by default. So, you should pass #DFT_SCALE to one of\n. dft or idft explicitly to make these transforms mutually inverse.\n. @sa dft, dct, idct, mulSpectrums, getOptimalDFTSize\n. @param src input floating-point real or complex array.\n. @param dst output array whose size and type depend on the flags.\n. @param flags operation flags (see dft and #DftFlags).\n. @param nonzeroRows number of dst rows to process; the rest of the rows have undefined content (see\n. the convolution sample in dft description.' ... - -def illuminationChange(src: ndarray, mask: ndarray, dts: ndarray = ..., alpha=..., beta=...) -> typing.Any: +def illuminationChange(src: Mat, mask: Mat, dts: Mat = ..., alpha=..., beta=...) -> typing.Any: 'illuminationChange(src, mask[, dst[, alpha[, beta]]]) -> dst\n. @brief Applying an appropriate non-linear transformation to the gradient field inside the selection and\n. then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param alpha Value ranges between 0-2.\n. @param beta Value ranges between 0-2.\n. \n. This is useful to highlight under-exposed foreground objects or to reduce specular reflections.' ... - def imdecode(buf, flags: int) -> typing.Any: 'imdecode(buf, flags) -> retval\n. @brief Reads an image from a buffer in memory.\n. \n. The function imdecode reads an image from the specified buffer in the memory. If the buffer is too short or\n. contains invalid data, the function returns an empty matrix ( Mat::data==NULL ).\n. \n. See cv::imread for the list of supported formats and flags description.\n. \n. @note In the case of color images, the decoded images will have the channels stored in **B G R** order.\n. @param buf Input array or vector of bytes.\n. @param flags The same flags as in cv::imread, see cv::ImreadModes.' ... - -def imencode(ext, img: ndarray, params=...) -> typing.Any: +def imencode(ext, img: Mat, params=...) -> typing.Any: 'imencode(ext, img[, params]) -> retval, buf\n. @brief Encodes an image into a memory buffer.\n. \n. The function imencode compresses the image and stores it in the memory buffer that is resized to fit the\n. result. See cv::imwrite for the list of supported formats and flags description.\n. \n. @param ext File extension that defines the output format.\n. @param img Image to be written.\n. @param buf Output buffer resized to fit the compressed image.\n. @param params Format-specific parameters. See cv::imwrite and cv::ImwriteFlags.' ... - -def imread(filename: str, flags: int = ...) -> ndarray: +def imread(filename: str, flags: int = ...) -> Mat: 'imread(filename[, flags]) -> retval\n. @brief Loads an image from a file.\n. \n. @anchor imread\n. \n. The function imread loads an image from the specified file and returns it. If the image cannot be\n. read (because of missing file, improper permissions, unsupported or invalid format), the function\n. returns an empty matrix ( Mat::data==NULL ).\n. \n. Currently, the following file formats are supported:\n. \n. - Windows bitmaps - \\*.bmp, \\*.dib (always supported)\n. - JPEG files - \\*.jpeg, \\*.jpg, \\*.jpe (see the *Note* section)\n. - JPEG 2000 files - \\*.jp2 (see the *Note* section)\n. - Portable Network Graphics - \\*.png (see the *Note* section)\n. - WebP - \\*.webp (see the *Note* section)\n. - Portable image format - \\*.pbm, \\*.pgm, \\*.ppm \\*.pxm, \\*.pnm (always supported)\n. - PFM files - \\*.pfm (see the *Note* section)\n. - Sun rasters - \\*.sr, \\*.ras (always supported)\n. - TIFF files - \\*.tiff, \\*.tif (see the *Note* section)\n. - OpenEXR Image files - \\*.exr (see the *Note* section)\n. - Radiance HDR - \\*.hdr, \\*.pic (always supported)\n. - Raster and Vector geospatial data supported by GDAL (see the *Note* section)\n. \n. @note\n. - The function determines the type of an image by the content, not by the file extension.\n. - In the case of color images, the decoded images will have the channels stored in **B G R** order.\n. - When using IMREAD_GRAYSCALE, the codec\'s internal grayscale conversion will be used, if available.\n. Results may differ to the output of cvtColor()\n. - On Microsoft Windows\\* OS and MacOSX\\*, the codecs shipped with an OpenCV image (libjpeg,\n. libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs,\n. and TIFFs. On MacOSX, there is also an option to use native MacOSX image readers. But beware\n. that currently these native image loaders give images with different pixel values because of\n. the color management embedded into MacOSX.\n. - On Linux\\*, BSD flavors and other Unix-like open-source operating systems, OpenCV looks for\n. codecs supplied with an OS image. Install the relevant packages (do not forget the development\n. files, for example, "libjpeg-dev", in Debian\\* and Ubuntu\\*) to get the codec support or turn\n. on the OPENCV_BUILD_3RDPARTY_LIBS flag in CMake.\n. - In the case you set *WITH_GDAL* flag to true in CMake and @ref IMREAD_LOAD_GDAL to load the image,\n. then the [GDAL](http://www.gdal.org) driver will be used in order to decode the image, supporting\n. the following formats: [Raster](http://www.gdal.org/formats_list.html),\n. [Vector](http://www.gdal.org/ogr_formats.html).\n. - If EXIF information is embedded in the image file, the EXIF orientation will be taken into account\n. and thus the image will be rotated accordingly except if the flags @ref IMREAD_IGNORE_ORIENTATION\n. or @ref IMREAD_UNCHANGED are passed.\n. - Use the IMREAD_UNCHANGED flag to keep the floating point values from PFM image.\n. - By default number of pixels must be less than 2^30. Limit can be set using system\n. variable OPENCV_IO_MAX_IMAGE_PIXELS\n. \n. @param filename Name of file to be loaded.\n. @param flags Flag that can take values of cv::ImreadModes' ... - def imreadmulti(filename: str, mats=..., flags: int = ...) -> typing.Any: 'imreadmulti(filename[, mats[, flags]]) -> retval, mats\n. @brief Loads a multi-page image from a file.\n. \n. The function imreadmulti loads a multi-page image from the specified file into a vector of Mat objects.\n. @param filename Name of file to be loaded.\n. @param flags Flag that can take values of cv::ImreadModes, default with cv::IMREAD_ANYCOLOR.\n. @param mats A vector of Mat objects holding each page, if more than one.\n. @sa cv::imread' ... - def imshow(winname, mat) -> typing.Any: 'imshow(winname, mat) -> None\n. @brief Displays an image in the specified window.\n. \n. The function imshow displays an image in the specified window. If the window was created with the\n. cv::WINDOW_AUTOSIZE flag, the image is shown with its original size, however it is still limited by the screen resolution.\n. Otherwise, the image is scaled to fit the window. The function may scale the image, depending on its depth:\n. \n. - If the image is 8-bit unsigned, it is displayed as is.\n. - If the image is 16-bit unsigned or 32-bit integer, the pixels are divided by 256. That is, the\n. value range [0,255\\*256] is mapped to [0,255].\n. - If the image is 32-bit or 64-bit floating-point, the pixel values are multiplied by 255. That is, the\n. value range [0,1] is mapped to [0,255].\n. \n. If window was created with OpenGL support, cv::imshow also support ogl::Buffer , ogl::Texture2D and\n. cuda::GpuMat as input.\n. \n. If the window was not created before this function, it is assumed creating a window with cv::WINDOW_AUTOSIZE.\n. \n. If you need to show an image that is bigger than the screen resolution, you will need to call namedWindow("", WINDOW_NORMAL) before the imshow.\n. \n. @note This function should be followed by cv::waitKey function which displays the image for specified\n. milliseconds. Otherwise, it won\'t display the image. For example, **waitKey(0)** will display the window\n. infinitely until any keypress (it is suitable for image display). **waitKey(25)** will display a frame\n. for 25 ms, after which display will be automatically closed. (If you put it in a loop to read\n. videos, it will display the video frame-by-frame)\n. \n. @note\n. \n. [__Windows Backend Only__] Pressing Ctrl+C will copy the image to the clipboard.\n. \n. [__Windows Backend Only__] Pressing Ctrl+S will show a dialog to save the image.\n. \n. @param winname Name of the window.\n. @param mat Image to be shown.' ... - -def imwrite(filename: str, img: ndarray, params: typing.List[int] = ...) -> bool: +def imwrite(filename: str, img: Mat, params: typing.List[int] = ...) -> bool: "imwrite(filename, img[, params]) -> retval\n. @brief Saves an image to a specified file.\n. \n. The function imwrite saves the image to the specified file. The image format is chosen based on the\n. filename extension (see cv::imread for the list of extensions). In general, only 8-bit\n. single-channel or 3-channel (with 'BGR' channel order) images\n. can be saved using this function, with these exceptions:\n. \n. - 16-bit unsigned (CV_16U) images can be saved in the case of PNG, JPEG 2000, and TIFF formats\n. - 32-bit float (CV_32F) images can be saved in PFM, TIFF, OpenEXR, and Radiance HDR formats;\n. 3-channel (CV_32FC3) TIFF images will be saved using the LogLuv high dynamic range encoding\n. (4 bytes per pixel)\n. - PNG images with an alpha channel can be saved using this function. To do this, create\n. 8-bit (or 16-bit) 4-channel image BGRA, where the alpha channel goes last. Fully transparent pixels\n. should have alpha set to 0, fully opaque pixels should have alpha set to 255/65535 (see the code sample below).\n. - Multiple images (vector of Mat) can be saved in TIFF format (see the code sample below).\n. \n. If the format, depth or channel order is different, use\n. Mat::convertTo and cv::cvtColor to convert it before saving. Or, use the universal FileStorage I/O\n. functions to save the image to XML or YAML format.\n. \n. The sample below shows how to create a BGRA image, how to set custom compression parameters and save it to a PNG file.\n. It also demonstrates how to save multiple images in a TIFF file:\n. @include snippets/imgcodecs_imwrite.cpp\n. @param filename Name of the file.\n. @param img (Mat or vector of Mat) Image or Images to be saved.\n. @param params Format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .) see cv::ImwriteFlags" ... - -def inRange(src: ndarray, lowerBound: ndarray, upperbBound: ndarray, dts: ndarray = ...) -> ndarray: +def inRange(src: Mat, lowerBound: Mat, upperbBound: Mat, dts: Mat = ...) -> Mat: 'inRange(src, lowerBound, upperbBound[, dst]) -> dst\n. @brief Checks if array elements lie between the elements of two other arrays.\n. \n. The function checks the range as follows:\n. - For every element of a single-channel input array:\n. \\f[\\texttt{dst} (I)= \\texttt{lowerBound} (I)_0 \\leq \\texttt{src} (I)_0 \\leq \\texttt{upperbBound} (I)_0\\f]\n. - For two-channel arrays:\n. \\f[\\texttt{dst} (I)= \\texttt{lowerBound} (I)_0 \\leq \\texttt{src} (I)_0 \\leq \\texttt{upperbBound} (I)_0 \\land \\texttt{lowerBound} (I)_1 \\leq \\texttt{src} (I)_1 \\leq \\texttt{upperbBound} (I)_1\\f]\n. - and so forth.\n. \n. That is, dst (I) is set to 255 (all 1 -bits) if src (I) is within the\n. specified 1D, 2D, 3D, ... box and 0 otherwise.\n. \n. When the lower and/or upper boundary parameters are scalars, the indexes\n. (I) at lowerBound and upperbBound in the above formulas should be omitted.\n. @param src first input array.\n. @param lowerBound inclusive lower boundary array or a scalar.\n. @param upperbBound inclusive upper boundary array or a scalar.\n. @param dst output array of the same size as src and CV_8U type.' ... - def initCameraMatrix2D(objectPoints, imagePoints, imageSize, aspectRatio=...) -> typing.Any: 'initCameraMatrix2D(objectPoints, imagePoints, imageSize[, aspectRatio]) -> retval\n. @brief Finds an initial camera matrix from 3D-2D point correspondences.\n. \n. @param objectPoints Vector of vectors of the calibration pattern points in the calibration pattern\n. coordinate space. In the old interface all the per-view vectors are concatenated. See\n. calibrateCamera for details.\n. @param imagePoints Vector of vectors of the projections of the calibration pattern points. In the\n. old interface all the per-view vectors are concatenated.\n. @param imageSize Image size in pixels used to initialize the principal point.\n. @param aspectRatio If it is zero or negative, both \\f$f_x\\f$ and \\f$f_y\\f$ are estimated independently.\n. Otherwise, \\f$f_x = f_y * \\texttt{aspectRatio}\\f$ .\n. \n. The function estimates and returns an initial camera matrix for the camera calibration process.\n. Currently, the function only supports planar calibration patterns, which are patterns where each\n. object point has z-coordinate =0.' ... - def initUndistortRectifyMap(cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type, map1=..., map2=...) -> typing.Any: "initUndistortRectifyMap(cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type[, map1[, map2]]) -> map1, map2\n. @brief Computes the undistortion and rectification transformation map.\n. \n. The function computes the joint undistortion and rectification transformation and represents the\n. result in the form of maps for remap. The undistorted image looks like original, as if it is\n. captured with a camera using the camera matrix =newCameraMatrix and zero distortion. In case of a\n. monocular camera, newCameraMatrix is usually equal to cameraMatrix, or it can be computed by\n. #getOptimalNewCameraMatrix for a better control over scaling. In case of a stereo camera,\n. newCameraMatrix is normally set to P1 or P2 computed by #stereoRectify .\n. \n. Also, this new camera is oriented differently in the coordinate space, according to R. That, for\n. example, helps to align two heads of a stereo camera so that the epipolar lines on both images\n. become horizontal and have the same y- coordinate (in case of a horizontally aligned stereo camera).\n. \n. The function actually builds the maps for the inverse mapping algorithm that is used by remap. That\n. is, for each pixel \\f$(u, v)\\f$ in the destination (corrected and rectified) image, the function\n. computes the corresponding coordinates in the source image (that is, in the original image from\n. camera). The following process is applied:\n. \\f[\n. \\begin{array}{l}\n. x \\leftarrow (u - {c'}_x)/{f'}_x \\\\\n. y \\leftarrow (v - {c'}_y)/{f'}_y \\\\\n. {[X\\,Y\\,W]} ^T \\leftarrow R^{-1}*[x \\, y \\, 1]^T \\\\\n. x' \\leftarrow X/W \\\\\n. y' \\leftarrow Y/W \\\\\n. r^2 \\leftarrow x'^2 + y'^2 \\\\\n. x'' \\leftarrow x' \\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\n. + 2p_1 x' y' + p_2(r^2 + 2 x'^2) + s_1 r^2 + s_2 r^4\\\\\n. y'' \\leftarrow y' \\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\n. + p_1 (r^2 + 2 y'^2) + 2 p_2 x' y' + s_3 r^2 + s_4 r^4 \\\\\n. s\\vecthree{x'''}{y'''}{1} =\n. \\vecthreethree{R_{33}(\\tau_x, \\tau_y)}{0}{-R_{13}((\\tau_x, \\tau_y)}\n. {0}{R_{33}(\\tau_x, \\tau_y)}{-R_{23}(\\tau_x, \\tau_y)}\n. {0}{0}{1} R(\\tau_x, \\tau_y) \\vecthree{x''}{y''}{1}\\\\\n. map_x(u,v) \\leftarrow x''' f_x + c_x \\\\\n. map_y(u,v) \\leftarrow y''' f_y + c_y\n. \\end{array}\n. \\f]\n. where \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. are the distortion coefficients.\n. \n. In case of a stereo camera, this function is called twice: once for each camera head, after\n. stereoRectify, which in its turn is called after #stereoCalibrate. But if the stereo camera\n. was not calibrated, it is still possible to compute the rectification transformations directly from\n. the fundamental matrix using #stereoRectifyUncalibrated. For each camera, the function computes\n. homography H as the rectification transformation in a pixel domain, not a rotation matrix R in 3D\n. space. R can be computed from H as\n. \\f[\\texttt{R} = \\texttt{cameraMatrix} ^{-1} \\cdot \\texttt{H} \\cdot \\texttt{cameraMatrix}\\f]\n. where cameraMatrix can be chosen arbitrarily.\n. \n. @param cameraMatrix Input camera matrix \\f$A=\\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param R Optional rectification transformation in the object space (3x3 matrix). R1 or R2 ,\n. computed by #stereoRectify can be passed here. If the matrix is empty, the identity transformation\n. is assumed. In cvInitUndistortMap R assumed to be an identity matrix.\n. @param newCameraMatrix New camera matrix \\f$A'=\\vecthreethree{f_x'}{0}{c_x'}{0}{f_y'}{c_y'}{0}{0}{1}\\f$.\n. @param size Undistorted image size.\n. @param m1type Type of the first output map that can be CV_32FC1, CV_32FC2 or CV_16SC2, see #convertMaps\n. @param map1 The first output map.\n. @param map2 The second output map." ... - -def inpaint(src: ndarray, inpaintMask, inpaintRadius, flags: int, dts: ndarray = ...) -> typing.Any: +def inpaint(src: Mat, inpaintMask, inpaintRadius, flags: int, dts: Mat = ...) -> typing.Any: 'inpaint(src, inpaintMask, inpaintRadius, flags[, dst]) -> dst\n. @brief Restores the selected region in an image using the region neighborhood.\n. \n. @param src Input 8-bit, 16-bit unsigned or 32-bit float 1-channel or 8-bit 3-channel image.\n. @param inpaintMask Inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that\n. needs to be inpainted.\n. @param dst Output image with the same size and type as src .\n. @param inpaintRadius Radius of a circular neighborhood of each point inpainted that is considered\n. by the algorithm.\n. @param flags Inpainting method that could be cv::INPAINT_NS or cv::INPAINT_TELEA\n. \n. The function reconstructs the selected image area from the pixel near the area boundary. The\n. function may be used to remove dust and scratches from a scanned photo, or to remove undesirable\n. objects from still images or video. See for more details.\n. \n. @note\n. - An example using the inpainting technique can be found at\n. opencv_source_code/samples/cpp/inpaint.cpp\n. - (Python) An example using the inpainting technique can be found at\n. opencv_source_code/samples/python/inpaint.py' ... - -def insertChannel(src: ndarray, dts: ndarray, coi) -> typing.Any: +def insertChannel(src: Mat, dts: Mat, coi) -> typing.Any: 'insertChannel(src, dst, coi) -> dst\n. @brief Inserts a single channel to dst (coi is 0-based index)\n. @param src input array\n. @param dst output array\n. @param coi index of channel for insertion\n. @sa mixChannels, merge' ... - -def integral(src: ndarray, sum=..., sdepth=...) -> typing.Any: +def integral(src: Mat, sum=..., sdepth=...) -> typing.Any: 'integral(src[, sum[, sdepth]]) -> sum\n. @overload' ... - -def integral2(src: ndarray, sum=..., sqsum=..., sdepth=..., sqdepth=...) -> typing.Any: +def integral2(src: Mat, sum=..., sqsum=..., sdepth=..., sqdepth=...) -> typing.Any: 'integral2(src[, sum[, sqsum[, sdepth[, sqdepth]]]]) -> sum, sqsum\n. @overload' ... - -def integral3(src: ndarray, sum=..., sqsum=..., tilted=..., sdepth=..., sqdepth=...) -> typing.Any: +def integral3(src: Mat, sum=..., sqsum=..., tilted=..., sdepth=..., sqdepth=...) -> typing.Any: 'integral3(src[, sum[, sqsum[, tilted[, sdepth[, sqdepth]]]]]) -> sum, sqsum, tilted\n. @brief Calculates the integral of an image.\n. \n. The function calculates one or more integral images for the source image as follows:\n. \n. \\f[\\texttt{sum} (X,Y) = \\sum _{x typing.Any: "intersectConvexConvex(_p1, _p2[, _p12[, handleNested]]) -> retval, _p12\n. @brief Finds intersection of two convex polygons\n. \n. @param _p1 First polygon\n. @param _p2 Second polygon\n. @param _p12 Output polygon describing the intersecting area\n. @param handleNested When true, an intersection is found if one of the polygons is fully enclosed in the other.\n. When false, no intersection is found. If the polygons share a side or the vertex of one polygon lies on an edge\n. of the other, they are not considered nested and an intersection will be found regardless of the value of handleNested.\n. \n. @returns Absolute value of area of intersecting polygon\n. \n. @note intersectConvexConvex doesn't confirm that both polygons are convex and will return invalid results if they aren't." ... - -def invert(src: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: +def invert(src: Mat, dts: Mat = ..., flags: int = ...) -> typing.Any: 'invert(src[, dst[, flags]]) -> retval, dst\n. @brief Finds the inverse or pseudo-inverse of a matrix.\n. \n. The function cv::invert inverts the matrix src and stores the result in dst\n. . When the matrix src is singular or non-square, the function calculates\n. the pseudo-inverse matrix (the dst matrix) so that norm(src\\*dst - I) is\n. minimal, where I is an identity matrix.\n. \n. In case of the #DECOMP_LU method, the function returns non-zero value if\n. the inverse has been successfully calculated and 0 if src is singular.\n. \n. In case of the #DECOMP_SVD method, the function returns the inverse\n. condition number of src (the ratio of the smallest singular value to the\n. largest singular value) and 0 if src is singular. The SVD method\n. calculates a pseudo-inverse matrix if src is singular.\n. \n. Similarly to #DECOMP_LU, the method #DECOMP_CHOLESKY works only with\n. non-singular square matrices that should also be symmetrical and\n. positively defined. In this case, the function stores the inverted\n. matrix in dst and returns non-zero. Otherwise, it returns 0.\n. \n. @param src input floating-point M x N matrix.\n. @param dst output matrix of N x M size and the same type as src.\n. @param flags inversion method (cv::DecompTypes)\n. @sa solve, SVD' ... - def invertAffineTransform(M, iM=...) -> typing.Any: 'invertAffineTransform(M[, iM]) -> iM\n. @brief Inverts an affine transformation.\n. \n. The function computes an inverse affine transformation represented by \\f$2 \\times 3\\f$ matrix M:\n. \n. \\f[\\begin{bmatrix} a_{11} & a_{12} & b_1 \\\\ a_{21} & a_{22} & b_2 \\end{bmatrix}\\f]\n. \n. The result is also a \\f$2 \\times 3\\f$ matrix of the same type as M.\n. \n. @param M Original affine transformation.\n. @param iM Output reverse affine transformation.' ... - def isContourConvex(contour) -> typing.Any: 'isContourConvex(contour) -> retval\n. @brief Tests a contour convexity.\n. \n. The function tests whether the input contour is convex or not. The contour must be simple, that is,\n. without self-intersections. Otherwise, the function output is undefined.\n. \n. @param contour Input vector of 2D points, stored in std::vector\\<\\> or Mat' ... - def kmeans(data, K, bestLabels, criteria, attempts, flags: int, centers=...) -> typing.Any: 'kmeans(data, K, bestLabels, criteria, attempts, flags[, centers]) -> retval, bestLabels, centers\n. @brief Finds centers of clusters and groups input samples around the clusters.\n. \n. The function kmeans implements a k-means algorithm that finds the centers of cluster_count clusters\n. and groups the input samples around the clusters. As an output, \\f$\\texttt{bestLabels}_i\\f$ contains a\n. 0-based cluster index for the sample stored in the \\f$i^{th}\\f$ row of the samples matrix.\n. \n. @note\n. - (Python) An example on K-means clustering can be found at\n. opencv_source_code/samples/python/kmeans.py\n. @param data Data for clustering. An array of N-Dimensional points with float coordinates is needed.\n. Examples of this array can be:\n. - Mat points(count, 2, CV_32F);\n. - Mat points(count, 1, CV_32FC2);\n. - Mat points(1, count, CV_32FC2);\n. - std::vector\\ points(sampleCount);\n. @param K Number of clusters to split the set by.\n. @param bestLabels Input/output integer array that stores the cluster indices for every sample.\n. @param criteria The algorithm termination criteria, that is, the maximum number of iterations and/or\n. the desired accuracy. The accuracy is specified as criteria.epsilon. As soon as each of the cluster\n. centers moves by less than criteria.epsilon on some iteration, the algorithm stops.\n. @param attempts Flag to specify the number of times the algorithm is executed using different\n. initial labellings. The algorithm returns the labels that yield the best compactness (see the last\n. function parameter).\n. @param flags Flag that can take values of cv::KmeansFlags\n. @param centers Output matrix of the cluster centers, one row per each cluster center.\n. @return The function returns the compactness measure that is computed as\n. \\f[\\sum _i \\| \\texttt{samples} _i - \\texttt{centers} _{ \\texttt{labels} _i} \\| ^2\\f]\n. after every attempt. The best (minimum) value is chosen and the corresponding labels and the\n. compactness value are returned by the function. Basically, you can use only the core of the\n. function, set the number of attempts to 1, initialize labels each time using a custom algorithm,\n. pass them with the ( flags = #KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best\n. (most-compact) clustering.' ... - -def line(img: ndarray, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: +def line(img: Mat, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: 'line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a line segment connecting two points.\n. \n. The function line draws the line segment between pt1 and pt2 points in the image. The line is\n. clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected\n. or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased\n. lines are drawn using Gaussian filtering.\n. \n. @param img Image.\n. @param pt1 First point of the line segment.\n. @param pt2 Second point of the line segment.\n. @param color Line color.\n. @param thickness Line thickness.\n. @param lineType Type of the line. See #LineTypes.\n. @param shift Number of fractional bits in the point coordinates.' ... - -def linearPolar(src: ndarray, center, maxRadius, flags: int, dts: ndarray = ...) -> typing.Any: +def linearPolar(src: Mat, center, maxRadius, flags: int, dts: Mat = ...) -> typing.Any: 'linearPolar(src, center, maxRadius, flags[, dst]) -> dst\n. @brief Remaps an image to polar coordinates space.\n. \n. @deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags)\n. \n. @internal\n. Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image c)"):\n. \\f[\\begin{array}{l}\n. dst( \\rho , \\phi ) = src(x,y) \\\\\n. dst.size() \\leftarrow src.size()\n. \\end{array}\\f]\n. \n. where\n. \\f[\\begin{array}{l}\n. I = (dx,dy) = (x - center.x,y - center.y) \\\\\n. \\rho = Kmag \\cdot \\texttt{magnitude} (I) ,\\\\\n. \\phi = angle \\cdot \\texttt{angle} (I)\n. \\end{array}\\f]\n. \n. and\n. \\f[\\begin{array}{l}\n. Kx = src.cols / maxRadius \\\\\n. Ky = src.rows / 2\\Pi\n. \\end{array}\\f]\n. \n. \n. @param src Source image\n. @param dst Destination image. It will have same size and type as src.\n. @param center The transformation center;\n. @param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.\n. @param flags A combination of interpolation methods, see #InterpolationFlags\n. \n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. \n. @sa cv::logPolar\n. @endinternal' ... - -def log(src: ndarray, dts: ndarray = ...) -> typing.Any: +def log(src: Mat, dts: Mat = ...) -> typing.Any: 'log(src[, dst]) -> dst\n. @brief Calculates the natural logarithm of every array element.\n. \n. The function cv::log calculates the natural logarithm of every element of the input array:\n. \\f[\\texttt{dst} (I) = \\log (\\texttt{src}(I)) \\f]\n. \n. Output on zero, negative and special (NaN, Inf) values is undefined.\n. \n. @param src input array.\n. @param dst output array of the same size and type as src .\n. @sa exp, cartToPolar, polarToCart, phase, pow, sqrt, magnitude' ... - -def logPolar(src: ndarray, center, M, flags: int, dts: ndarray = ...) -> typing.Any: +def logPolar(src: Mat, center, M, flags: int, dts: Mat = ...) -> typing.Any: 'logPolar(src, center, M, flags[, dst]) -> dst\n. @brief Remaps an image to semilog-polar coordinates space.\n. \n. @deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags+WARP_POLAR_LOG);\n. \n. @internal\n. Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image d)"):\n. \\f[\\begin{array}{l}\n. dst( \\rho , \\phi ) = src(x,y) \\\\\n. dst.size() \\leftarrow src.size()\n. \\end{array}\\f]\n. \n. where\n. \\f[\\begin{array}{l}\n. I = (dx,dy) = (x - center.x,y - center.y) \\\\\n. \\rho = M \\cdot log_e(\\texttt{magnitude} (I)) ,\\\\\n. \\phi = Kangle \\cdot \\texttt{angle} (I) \\\\\n. \\end{array}\\f]\n. \n. and\n. \\f[\\begin{array}{l}\n. M = src.cols / log_e(maxRadius) \\\\\n. Kangle = src.rows / 2\\Pi \\\\\n. \\end{array}\\f]\n. \n. The function emulates the human "foveal" vision and can be used for fast scale and\n. rotation-invariant template matching, for object tracking and so forth.\n. @param src Source image\n. @param dst Destination image. It will have same size and type as src.\n. @param center The transformation center; where the output precision is maximal\n. @param M Magnitude scale parameter. It determines the radius of the bounding circle to transform too.\n. @param flags A combination of interpolation methods, see #InterpolationFlags\n. \n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. \n. @sa cv::linearPolar\n. @endinternal' ... - def magnitude(x, y, magnitude=...) -> typing.Any: 'magnitude(x, y[, magnitude]) -> magnitude\n. @brief Calculates the magnitude of 2D vectors.\n. \n. The function cv::magnitude calculates the magnitude of 2D vectors formed\n. from the corresponding elements of x and y arrays:\n. \\f[\\texttt{dst} (I) = \\sqrt{\\texttt{x}(I)^2 + \\texttt{y}(I)^2}\\f]\n. @param x floating-point array of x-coordinates of the vectors.\n. @param y floating-point array of y-coordinates of the vectors; it must\n. have the same size as x.\n. @param magnitude output array of the same size and type as x.\n. @sa cartToPolar, polarToCart, phase, sqrt' ... - def matMulDeriv(A, B, dABdA=..., dABdB=...) -> typing.Any: 'matMulDeriv(A, B[, dABdA[, dABdB]]) -> dABdA, dABdB\n. @brief Computes partial derivatives of the matrix product for each multiplied matrix.\n. \n. @param A First multiplied matrix.\n. @param B Second multiplied matrix.\n. @param dABdA First output derivative matrix d(A\\*B)/dA of size\n. \\f$\\texttt{A.rows*B.cols} \\times {A.rows*A.cols}\\f$ .\n. @param dABdB Second output derivative matrix d(A\\*B)/dB of size\n. \\f$\\texttt{A.rows*B.cols} \\times {B.rows*B.cols}\\f$ .\n. \n. The function computes partial derivatives of the elements of the matrix product \\f$A*B\\f$ with regard to\n. the elements of each of the two input matrices. The function is used to compute the Jacobian\n. matrices in stereoCalibrate but can also be used in any other similar optimization function.' ... - def matchShapes(contour1, contour2, method: int, parameter) -> typing.Any: 'matchShapes(contour1, contour2, method, parameter) -> retval\n. @brief Compares two shapes.\n. \n. The function compares two shapes. All three implemented methods use the Hu invariants (see #HuMoments)\n. \n. @param contour1 First contour or grayscale image.\n. @param contour2 Second contour or grayscale image.\n. @param method Comparison method, see #ShapeMatchModes\n. @param parameter Method-specific parameter (not supported now).' ... - -def matchTemplate(image: ndarray, templ: ndarray, method: int, result: ndarray = ..., mask: typing.Optional[ndarray] = ...) -> ndarray: +def matchTemplate(image: Mat, templ: Mat, method: int, result: Mat = ..., mask: typing.Optional[Mat] = ...) -> Mat: "matchTemplate(image, templ, method[, result[, mask]]) -> result\n. @brief Compares a template against overlapped image regions.\n. \n. The function slides through image , compares the overlapped patches of size \\f$w \\times h\\f$ against\n. templ using the specified method and stores the comparison results in result . #TemplateMatchModes\n. describes the formulae for the available comparison methods ( \\f$I\\f$ denotes image, \\f$T\\f$\n. template, \\f$R\\f$ result, \\f$M\\f$ the optional mask ). The summation is done over template and/or\n. the image patch: \\f$x' = 0...w-1, y' = 0...h-1\\f$\n. \n. After the function finishes the comparison, the best matches can be found as global minimums (when\n. #TM_SQDIFF was used) or maximums (when #TM_CCORR or #TM_CCOEFF was used) using the\n. #minMaxLoc function. In case of a color image, template summation in the numerator and each sum in\n. the denominator is done over all of the channels and separate mean values are used for each channel.\n. That is, the function can take a color template and a color image. The result will still be a\n. single-channel image, which is easier to analyze.\n. \n. @param image Image where the search is running. It must be 8-bit or 32-bit floating-point.\n. @param templ Searched template. It must be not greater than the source image and have the same\n. data type.\n. @param result Map of comparison results. It must be single-channel 32-bit floating-point. If image\n. is \\f$W \\times H\\f$ and templ is \\f$w \\times h\\f$ , then result is \\f$(W-w+1) \\times (H-h+1)\\f$ .\n. @param method Parameter specifying the comparison method, see #TemplateMatchModes\n. @param mask Optional mask. It must have the same size as templ. It must either have the same number\n. of channels as template or only one channel, which is then used for all template and\n. image channels. If the data type is #CV_8U, the mask is interpreted as a binary mask,\n. meaning only elements where mask is nonzero are used and are kept unchanged independent\n. of the actual mask value (weight equals 1). For data tpye #CV_32F, the mask values are\n. used as weights. The exact formulas are documented in #TemplateMatchModes." ... - -def max(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: +def max(src1: Mat, src2: Mat, dts: Mat = ...) -> typing.Any: 'max(src1, src2[, dst]) -> dst\n. @brief Calculates per-element maximum of two arrays or an array and a scalar.\n. \n. The function cv::max calculates the per-element maximum of two arrays:\n. \\f[\\texttt{dst} (I)= \\max ( \\texttt{src1} (I), \\texttt{src2} (I))\\f]\n. or array and a scalar:\n. \\f[\\texttt{dst} (I)= \\max ( \\texttt{src1} (I), \\texttt{value} )\\f]\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1 .\n. @param dst output array of the same size and type as src1.\n. @sa min, compare, inRange, minMaxLoc, @ref MatrixExpressions' ... - -def mean(src: ndarray, mask: ndarray = ...) -> typing.Any: +def mean(src: Mat, mask: Mat = ...) -> typing.Any: "mean(src[, mask]) -> retval\n. @brief Calculates an average (mean) of array elements.\n. \n. The function cv::mean calculates the mean value M of array elements,\n. independently for each channel, and return it:\n. \\f[\\begin{array}{l} N = \\sum _{I: \\; \\texttt{mask} (I) \\ne 0} 1 \\\\ M_c = \\left ( \\sum _{I: \\; \\texttt{mask} (I) \\ne 0}{ \\texttt{mtx} (I)_c} \\right )/N \\end{array}\\f]\n. When all the mask elements are 0's, the function returns Scalar::all(0)\n. @param src input array that should have from 1 to 4 channels so that the result can be stored in\n. Scalar_ .\n. @param mask optional operation mask.\n. @sa countNonZero, meanStdDev, norm, minMaxLoc" ... - def meanShift(probImage, window, criteria) -> typing.Any: 'meanShift(probImage, window, criteria) -> retval, window\n. @brief Finds an object on a back projection image.\n. \n. @param probImage Back projection of the object histogram. See calcBackProject for details.\n. @param window Initial search window.\n. @param criteria Stop criteria for the iterative search algorithm.\n. returns\n. : Number of iterations CAMSHIFT took to converge.\n. The function implements the iterative object search algorithm. It takes the input back projection of\n. an object and the initial position. The mass center in window of the back projection image is\n. computed and the search window center shifts to the mass center. The procedure is repeated until the\n. specified number of iterations criteria.maxCount is done or until the window center shifts by less\n. than criteria.epsilon. The algorithm is used inside CamShift and, unlike CamShift , the search\n. window size or orientation do not change during the search. You can simply pass the output of\n. calcBackProject to this function. But better results can be obtained if you pre-filter the back\n. projection and remove the noise. For example, you can do this by retrieving connected components\n. with findContours , throwing away contours with small area ( contourArea ), and rendering the\n. remaining contours with drawContours.' ... - -def meanStdDev(src: ndarray, mean=..., stddev=..., mask: ndarray = ...) -> typing.Any: +def meanStdDev(src: Mat, mean=..., stddev=..., mask: Mat = ...) -> typing.Any: "meanStdDev(src[, mean[, stddev[, mask]]]) -> mean, stddev\n. Calculates a mean and standard deviation of array elements.\n. \n. The function cv::meanStdDev calculates the mean and the standard deviation M\n. of array elements independently for each channel and returns it via the\n. output parameters:\n. \\f[\\begin{array}{l} N = \\sum _{I, \\texttt{mask} (I) \\ne 0} 1 \\\\ \\texttt{mean} _c = \\frac{\\sum_{ I: \\; \\texttt{mask}(I) \\ne 0} \\texttt{src} (I)_c}{N} \\\\ \\texttt{stddev} _c = \\sqrt{\\frac{\\sum_{ I: \\; \\texttt{mask}(I) \\ne 0} \\left ( \\texttt{src} (I)_c - \\texttt{mean} _c \\right )^2}{N}} \\end{array}\\f]\n. When all the mask elements are 0's, the function returns\n. mean=stddev=Scalar::all(0).\n. @note The calculated standard deviation is only the diagonal of the\n. complete normalized covariance matrix. If the full matrix is needed, you\n. can reshape the multi-channel array M x N to the single-channel array\n. M\\*N x mtx.channels() (only possible when the matrix is continuous) and\n. then pass the matrix to calcCovarMatrix .\n. @param src input array that should have from 1 to 4 channels so that the results can be stored in\n. Scalar_ 's.\n. @param mean output parameter: calculated mean value.\n. @param stddev output parameter: calculated standard deviation.\n. @param mask optional operation mask.\n. @sa countNonZero, mean, norm, minMaxLoc, calcCovarMatrix" ... - -def medianBlur(src: ndarray, ksize, dts: ndarray = ...) -> typing.Any: +def medianBlur(src: Mat, ksize, dts: Mat = ...) -> typing.Any: 'medianBlur(src, ksize[, dst]) -> dst\n. @brief Blurs an image using the median filter.\n. \n. The function smoothes an image using the median filter with the \\f$\\texttt{ksize} \\times\n. \\texttt{ksize}\\f$ aperture. Each channel of a multi-channel image is processed independently.\n. In-place operation is supported.\n. \n. @note The median filter uses #BORDER_REPLICATE internally to cope with border pixels, see #BorderTypes\n. \n. @param src input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be\n. CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U.\n. @param dst destination array of the same size and type as src.\n. @param ksize aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ...\n. @sa bilateralFilter, blur, boxFilter, GaussianBlur' ... - -def merge(mv, dts: ndarray = ...) -> typing.Any: +def merge(mv, dts: Mat = ...) -> typing.Any: 'merge(mv[, dst]) -> dst\n. @overload\n. @param mv input vector of matrices to be merged; all the matrices in mv must have the same\n. size and the same depth.\n. @param dst output array of the same size and the same depth as mv[0]; The number of channels will\n. be the total number of channels in the matrix array.' ... - -def min(src1: ndarray, src2: ndarray, dts: ndarray = ...) -> typing.Any: +def min(src1: Mat, src2: Mat, dts: Mat = ...) -> typing.Any: 'min(src1, src2[, dst]) -> dst\n. @brief Calculates per-element minimum of two arrays or an array and a scalar.\n. \n. The function cv::min calculates the per-element minimum of two arrays:\n. \\f[\\texttt{dst} (I)= \\min ( \\texttt{src1} (I), \\texttt{src2} (I))\\f]\n. or array and a scalar:\n. \\f[\\texttt{dst} (I)= \\min ( \\texttt{src1} (I), \\texttt{value} )\\f]\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1.\n. @param dst output array of the same size and type as src1.\n. @sa max, compare, inRange, minMaxLoc' ... - def minAreaRect(points) -> typing.Any: 'minAreaRect(points) -> retval\n. @brief Finds a rotated rectangle of the minimum area enclosing the input 2D point set.\n. \n. The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a\n. specified point set. Developer should keep in mind that the returned RotatedRect can contain negative\n. indices when data is close to the containing Mat element boundary.\n. \n. @param points Input vector of 2D points, stored in std::vector\\<\\> or Mat' ... - def minEnclosingCircle(points) -> typing.Any: 'minEnclosingCircle(points) -> center, radius\n. @brief Finds a circle of the minimum area enclosing a 2D point set.\n. \n. The function finds the minimal enclosing circle of a 2D point set using an iterative algorithm.\n. \n. @param points Input vector of 2D points, stored in std::vector\\<\\> or Mat\n. @param center Output center of the circle.\n. @param radius Output radius of the circle.' ... - def minEnclosingTriangle(points, triangle=...) -> typing.Any: "minEnclosingTriangle(points[, triangle]) -> retval, triangle\n. @brief Finds a triangle of minimum area enclosing a 2D point set and returns its area.\n. \n. The function finds a triangle of minimum area enclosing the given set of 2D points and returns its\n. area. The output for a given 2D point set is shown in the image below. 2D points are depicted in\n. *red* and the enclosing triangle in *yellow*.\n. \n. ![Sample output of the minimum enclosing triangle function](pics/minenclosingtriangle.png)\n. \n. The implementation of the algorithm is based on O'Rourke's @cite ORourke86 and Klee and Laskowski's\n. @cite KleeLaskowski85 papers. O'Rourke provides a \\f$\\theta(n)\\f$ algorithm for finding the minimal\n. enclosing triangle of a 2D convex polygon with n vertices. Since the #minEnclosingTriangle function\n. takes a 2D point set as input an additional preprocessing step of computing the convex hull of the\n. 2D point set is required. The complexity of the #convexHull function is \\f$O(n log(n))\\f$ which is higher\n. than \\f$\\theta(n)\\f$. Thus the overall complexity of the function is \\f$O(n log(n))\\f$.\n. \n. @param points Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector\\<\\> or Mat\n. @param triangle Output vector of three 2D points defining the vertices of the triangle. The depth\n. of the OutputArray must be CV_32F." ... - -def minMaxLoc(src: ndarray, mask: ndarray = ...) -> typing.Tuple[float, float, typing.Tuple[int, int], typing.Tuple[int, int]]: +def minMaxLoc(src: Mat, mask: Mat = ...) -> typing.Tuple[float, float, typing.Tuple[int, int], typing.Tuple[int, int]]: 'minMaxLoc(src[, mask]) -> minVal, maxVal, minLoc, maxLoc\n. @brief Finds the global minimum and maximum in an array.\n. \n. The function cv::minMaxLoc finds the minimum and maximum element values and their positions. The\n. extremums are searched across the whole array or, if mask is not an empty array, in the specified\n. array region.\n. \n. The function do not work with multi-channel arrays. If you need to find minimum or maximum\n. elements across all the channels, use Mat::reshape first to reinterpret the array as\n. single-channel. Or you may extract the particular channel using either extractImageCOI , or\n. mixChannels , or split .\n. @param src input single-channel array.\n. @param minVal pointer to the returned minimum value; NULL is used if not required.\n. @param maxVal pointer to the returned maximum value; NULL is used if not required.\n. @param minLoc pointer to the returned minimum location (in 2D case); NULL is used if not required.\n. @param maxLoc pointer to the returned maximum location (in 2D case); NULL is used if not required.\n. @param mask optional mask used to select a sub-array.\n. @sa max, min, compare, inRange, extractImageCOI, mixChannels, split, Mat::reshape' ... - -def mixChannels(src: ndarray, dts: ndarray, fromTo) -> typing.Any: +def mixChannels(src: Mat, dts: Mat, fromTo) -> typing.Any: 'mixChannels(src, dst, fromTo) -> dst\n. @overload\n. @param src input array or vector of matrices; all of the matrices must have the same size and the\n. same depth.\n. @param dst output array or vector of matrices; all the matrices **must be allocated**; their size and\n. depth must be the same as in src[0].\n. @param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\\*2] is\n. a 0-based index of the input channel in src, fromTo[k\\*2+1] is an index of the output channel in\n. dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to\n. src[0].channels()-1, the second input image channels are indexed from src[0].channels() to\n. src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image\n. channels; as a special case, when fromTo[k\\*2] is negative, the corresponding output channel is\n. filled with zero .' ... - ml_ANN_MLP = _mod_cv2.ml_ANN_MLP ml_Boost = _mod_cv2.ml_Boost ml_DTrees = _mod_cv2.ml_DTrees @@ -3064,515 +2717,409 @@ ml_SVM = _mod_cv2.ml_SVM ml_SVMSGD = _mod_cv2.ml_SVMSGD ml_StatModel = _mod_cv2.ml_StatModel ml_TrainData = _mod_cv2.ml_TrainData - - def moments(array, binaryImage=...) -> typing.Any: "moments(array[, binaryImage]) -> retval\n. @brief Calculates all of the moments up to the third order of a polygon or rasterized shape.\n. \n. The function computes moments, up to the 3rd order, of a vector shape or a rasterized shape. The\n. results are returned in the structure cv::Moments.\n. \n. @param array Raster image (single-channel, 8-bit or floating-point 2D array) or an array (\n. \\f$1 \\times N\\f$ or \\f$N \\times 1\\f$ ) of 2D points (Point or Point2f ).\n. @param binaryImage If it is true, all non-zero image pixels are treated as 1's. The parameter is\n. used for images only.\n. @returns moments.\n. \n. @note Only applicable to contour moments calculations from Python bindings: Note that the numpy\n. type for the input array should be either np.int32 or np.float32.\n. \n. @sa contourArea, arcLength" ... - -def morphologyEx(src: ndarray, op, kernel, dts: ndarray = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: +def morphologyEx(src: Mat, op, kernel, dts: Mat = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: 'morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Performs advanced morphological transformations.\n. \n. The function cv::morphologyEx can perform advanced morphological transformations using an erosion and dilation as\n. basic operations.\n. \n. Any of the operations can be done in-place. In case of multi-channel images, each channel is\n. processed independently.\n. \n. @param src Source image. The number of channels can be arbitrary. The depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst Destination image of the same size and type as source image.\n. @param op Type of a morphological operation, see #MorphTypes\n. @param kernel Structuring element. It can be created using #getStructuringElement.\n. @param anchor Anchor position with the kernel. Negative values mean that the anchor is at the\n. kernel center.\n. @param iterations Number of times erosion and dilation are applied.\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @param borderValue Border value in case of a constant border. The default value has a special\n. meaning.\n. @sa dilate, erode, getStructuringElement\n. @note The number of iterations is the number of times erosion or dilatation operation will be applied.\n. For instance, an opening operation (#MORPH_OPEN) with two iterations is equivalent to apply\n. successively: erode -> erode -> dilate -> dilate (and not erode -> dilate -> erode -> dilate).' ... - def moveWindow(winname, x, y) -> typing.Any: 'moveWindow(winname, x, y) -> None\n. @brief Moves window to the specified position\n. \n. @param winname Name of the window.\n. @param x The new x-coordinate of the window.\n. @param y The new y-coordinate of the window.' ... - def mulSpectrums(a, b, flags: int, c=..., conjB=...) -> typing.Any: 'mulSpectrums(a, b, flags[, c[, conjB]]) -> c\n. @brief Performs the per-element multiplication of two Fourier spectrums.\n. \n. The function cv::mulSpectrums performs the per-element multiplication of the two CCS-packed or complex\n. matrices that are results of a real or complex Fourier transform.\n. \n. The function, together with dft and idft , may be used to calculate convolution (pass conjB=false )\n. or correlation (pass conjB=true ) of two arrays rapidly. When the arrays are complex, they are\n. simply multiplied (per element) with an optional conjugation of the second-array elements. When the\n. arrays are real, they are assumed to be CCS-packed (see dft for details).\n. @param a first input array.\n. @param b second input array of the same size and type as src1 .\n. @param c output array of the same size and type as src1 .\n. @param flags operation flags; currently, the only supported flag is cv::DFT_ROWS, which indicates that\n. each row of src1 and src2 is an independent 1D Fourier spectrum. If you do not want to use this flag, then simply add a `0` as value.\n. @param conjB optional flag that conjugates the second input array before the multiplication (true)\n. or not (false).' ... - -def mulTransposed(src: ndarray, aTa, dts: ndarray = ..., delta=..., scale=..., dtype=...) -> typing.Any: +def mulTransposed(src: Mat, aTa, dts: Mat = ..., delta=..., scale=..., dtype=...) -> typing.Any: 'mulTransposed(src, aTa[, dst[, delta[, scale[, dtype]]]]) -> dst\n. @brief Calculates the product of a matrix and its transposition.\n. \n. The function cv::mulTransposed calculates the product of src and its\n. transposition:\n. \\f[\\texttt{dst} = \\texttt{scale} ( \\texttt{src} - \\texttt{delta} )^T ( \\texttt{src} - \\texttt{delta} )\\f]\n. if aTa=true , and\n. \\f[\\texttt{dst} = \\texttt{scale} ( \\texttt{src} - \\texttt{delta} ) ( \\texttt{src} - \\texttt{delta} )^T\\f]\n. otherwise. The function is used to calculate the covariance matrix. With\n. zero delta, it can be used as a faster substitute for general matrix\n. product A\\*B when B=A\'\n. @param src input single-channel matrix. Note that unlike gemm, the\n. function can multiply not only floating-point matrices.\n. @param dst output square matrix.\n. @param aTa Flag specifying the multiplication ordering. See the\n. description below.\n. @param delta Optional delta matrix subtracted from src before the\n. multiplication. When the matrix is empty ( delta=noArray() ), it is\n. assumed to be zero, that is, nothing is subtracted. If it has the same\n. size as src , it is simply subtracted. Otherwise, it is "repeated" (see\n. repeat ) to cover the full src and then subtracted. Type of the delta\n. matrix, when it is not empty, must be the same as the type of created\n. output matrix. See the dtype parameter description below.\n. @param scale Optional scale factor for the matrix product.\n. @param dtype Optional type of the output matrix. When it is negative,\n. the output matrix will have the same type as src . Otherwise, it will be\n. type=CV_MAT_DEPTH(dtype) that should be either CV_32F or CV_64F .\n. @sa calcCovarMatrix, gemm, repeat, reduce' ... - -def multiply(src1: ndarray, src2: ndarray, dts: ndarray = ..., scale=..., dtype=...) -> typing.Any: +def multiply(src1: Mat, src2: Mat, dts: Mat = ..., scale=..., dtype=...) -> typing.Any: 'multiply(src1, src2[, dst[, scale[, dtype]]]) -> dst\n. @brief Calculates the per-element scaled product of two arrays.\n. \n. The function multiply calculates the per-element product of two arrays:\n. \n. \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{scale} \\cdot \\texttt{src1} (I) \\cdot \\texttt{src2} (I))\\f]\n. \n. There is also a @ref MatrixExpressions -friendly variant of the first function. See Mat::mul .\n. \n. For a not-per-element matrix product, see gemm .\n. \n. @note Saturation is not applied when the output array has the depth\n. CV_32S. You may even get result of an incorrect sign in the case of\n. overflow.\n. @param src1 first input array.\n. @param src2 second input array of the same size and the same type as src1.\n. @param dst output array of the same size and type as src1.\n. @param scale optional scale factor.\n. @param dtype optional depth of the output array\n. @sa add, subtract, divide, scaleAdd, addWeighted, accumulate, accumulateProduct, accumulateSquare,\n. Mat::convertTo' ... - def namedWindow(winname, flags: int = ...) -> typing.Any: 'namedWindow(winname[, flags]) -> None\n. @brief Creates a window.\n. \n. The function namedWindow creates a window that can be used as a placeholder for images and\n. trackbars. Created windows are referred to by their names.\n. \n. If a window with the same name already exists, the function does nothing.\n. \n. You can call cv::destroyWindow or cv::destroyAllWindows to close the window and de-allocate any associated\n. memory usage. For a simple program, you do not really have to call these functions because all the\n. resources and windows of the application are closed automatically by the operating system upon exit.\n. \n. @note\n. \n. Qt backend supports additional flags:\n. - **WINDOW_NORMAL or WINDOW_AUTOSIZE:** WINDOW_NORMAL enables you to resize the\n. window, whereas WINDOW_AUTOSIZE adjusts automatically the window size to fit the\n. displayed image (see imshow ), and you cannot change the window size manually.\n. - **WINDOW_FREERATIO or WINDOW_KEEPRATIO:** WINDOW_FREERATIO adjusts the image\n. with no respect to its ratio, whereas WINDOW_KEEPRATIO keeps the image ratio.\n. - **WINDOW_GUI_NORMAL or WINDOW_GUI_EXPANDED:** WINDOW_GUI_NORMAL is the old way to draw the window\n. without statusbar and toolbar, whereas WINDOW_GUI_EXPANDED is a new enhanced GUI.\n. By default, flags == WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED\n. \n. @param winname Name of the window in the window caption that may be used as a window identifier.\n. @param flags Flags of the window. The supported flags are: (cv::WindowFlags)' ... - -def norm(src1: ndarray, src2: ndarray, normType: int = ..., mask: ndarray = ...) -> float: +def norm(src1: Mat, src2: Mat, normType: int = ..., mask: typing.Optional[Mat] = ...) -> float: 'norm(src1, src2[, normType[, mask]]) -> retval\n. @brief Calculates the absolute norm of an array.\n. \n. This version of #norm calculates the absolute norm of src1. The type of norm to calculate is specified using #NormTypes.\n. \n. As example for one array consider the function \\f$r(x)= \\begin{pmatrix} x \\\\ 1-x \\end{pmatrix}, x \\in [-1;1]\\f$.\n. The \\f$ L_{1}, L_{2} \\f$ and \\f$ L_{\\infty} \\f$ norm for the sample value \\f$r(-1) = \\begin{pmatrix} -1 \\\\ 2 \\end{pmatrix}\\f$\n. is calculated as follows\n. \\f{align*}\n. \\| r(-1) \\|_{L_1} &= |-1| + |2| = 3 \\\\\n. \\| r(-1) \\|_{L_2} &= \\sqrt{(-1)^{2} + (2)^{2}} = \\sqrt{5} \\\\\n. \\| r(-1) \\|_{L_\\infty} &= \\max(|-1|,|2|) = 2\n. \\f}\n. and for \\f$r(0.5) = \\begin{pmatrix} 0.5 \\\\ 0.5 \\end{pmatrix}\\f$ the calculation is\n. \\f{align*}\n. \\| r(0.5) \\|_{L_1} &= |0.5| + |0.5| = 1 \\\\\n. \\| r(0.5) \\|_{L_2} &= \\sqrt{(0.5)^{2} + (0.5)^{2}} = \\sqrt{0.5} \\\\\n. \\| r(0.5) \\|_{L_\\infty} &= \\max(|0.5|,|0.5|) = 0.5.\n. \\f}\n. The following graphic shows all values for the three norm functions \\f$\\| r(x) \\|_{L_1}, \\| r(x) \\|_{L_2}\\f$ and \\f$\\| r(x) \\|_{L_\\infty}\\f$.\n. It is notable that the \\f$ L_{1} \\f$ norm forms the upper and the \\f$ L_{\\infty} \\f$ norm forms the lower border for the example function \\f$ r(x) \\f$.\n. ![Graphs for the different norm functions from the above example](pics/NormTypes_OneArray_1-2-INF.png)\n. \n. When the mask parameter is specified and it is not empty, the norm is\n. \n. If normType is not specified, #NORM_L2 is used.\n. calculated only over the region specified by the mask.\n. \n. Multi-channel input arrays are treated as single-channel arrays, that is,\n. the results for all channels are combined.\n. \n. Hamming norms can only be calculated with CV_8U depth arrays.\n. \n. @param src1 first input array.\n. @param normType type of the norm (see #NormTypes).\n. @param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.\n\n\n\nnorm(src1, src2[, normType[, mask]]) -> retval\n. @brief Calculates an absolute difference norm or a relative difference norm.\n. \n. This version of cv::norm calculates the absolute difference norm\n. or the relative difference norm of arrays src1 and src2.\n. The type of norm to calculate is specified using #NormTypes.\n. \n. @param src1 first input array.\n. @param src2 second input array of the same size and the same type as src1.\n. @param normType type of the norm (see #NormTypes).\n. @param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.' ... - -def normalize(src: ndarray, dts: ndarray, alpha=..., beta=..., normType: int = ..., dtype=..., mask: ndarray = ...) -> ndarray: +def normalize(src: Mat, dts: Mat, alpha=..., beta=..., normType: int = ..., dtype=..., mask: Mat = ...) -> Mat: 'normalize(src, dst[, alpha[, beta[, normType[, dtype[, mask]]]]]) -> dst\n. @brief Normalizes the norm or value range of an array.\n. \n. The function cv::normalize normalizes scale and shift the input array elements so that\n. \\f[\\| \\texttt{dst} \\| _{L_p}= \\texttt{alpha}\\f]\n. (where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that\n. \\f[\\min _I \\texttt{dst} (I)= \\texttt{alpha} , \\, \\, \\max _I \\texttt{dst} (I)= \\texttt{beta}\\f]\n. \n. when normType=NORM_MINMAX (for dense arrays only). The optional mask specifies a sub-array to be\n. normalized. This means that the norm or min-n-max are calculated over the sub-array, and then this\n. sub-array is modified to be normalized. If you want to only use the mask to calculate the norm or\n. min-max but modify the whole array, you can use norm and Mat::convertTo.\n. \n. In case of sparse matrices, only the non-zero values are analyzed and transformed. Because of this,\n. the range transformation for sparse matrices is not allowed since it can shift the zero level.\n. \n. Possible usage with some positive example data:\n. @code{.cpp}\n. vector positiveData = { 2.0, 8.0, 10.0 };\n. vector normalizedData_l1, normalizedData_l2, normalizedData_inf, normalizedData_minmax;\n. \n. // Norm to probability (total count)\n. // sum(numbers) = 20.0\n. // 2.0 0.1 (2.0/20.0)\n. // 8.0 0.4 (8.0/20.0)\n. // 10.0 0.5 (10.0/20.0)\n. normalize(positiveData, normalizedData_l1, 1.0, 0.0, NORM_L1);\n. \n. // Norm to unit vector: ||positiveData|| = 1.0\n. // 2.0 0.15\n. // 8.0 0.62\n. // 10.0 0.77\n. normalize(positiveData, normalizedData_l2, 1.0, 0.0, NORM_L2);\n. \n. // Norm to max element\n. // 2.0 0.2 (2.0/10.0)\n. // 8.0 0.8 (8.0/10.0)\n. // 10.0 1.0 (10.0/10.0)\n. normalize(positiveData, normalizedData_inf, 1.0, 0.0, NORM_INF);\n. \n. // Norm to range [0.0;1.0]\n. // 2.0 0.0 (shift to left border)\n. // 8.0 0.75 (6.0/8.0)\n. // 10.0 1.0 (shift to right border)\n. normalize(positiveData, normalizedData_minmax, 1.0, 0.0, NORM_MINMAX);\n. @endcode\n. \n. @param src input array.\n. @param dst output array of the same size as src .\n. @param alpha norm value to normalize to or the lower range boundary in case of the range\n. normalization.\n. @param beta upper range boundary in case of the range normalization; it is not used for the norm\n. normalization.\n. @param normType normalization type (see cv::NormTypes).\n. @param dtype when negative, the output array has the same type as src; otherwise, it has the same\n. number of channels as src and the depth =CV_MAT_DEPTH(dtype).\n. @param mask optional operation mask.\n. @sa norm, Mat::convertTo, SparseMat::convertTo' ... - ocl_Device = _mod_cv2.ocl_Device - - def patchNaNs(a, val=...) -> typing.Any: "patchNaNs(a[, val]) -> a\n. @brief converts NaN's to the given number" ... - -def pencilSketch(src: ndarray, dts1: ndarray = ..., dts2: ndarray = ..., sigma_s=..., sigma_r=..., shade_factor=...) -> typing.Any: +def pencilSketch(src: Mat, dts1: Mat = ..., dts2: Mat = ..., sigma_s=..., sigma_r=..., shade_factor=...) -> typing.Any: 'pencilSketch(src[, dst1[, dst2[, sigma_s[, sigma_r[, shade_factor]]]]]) -> dst1, dst2\n. @brief Pencil-like non-photorealistic line drawing\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst1 Output 8-bit 1-channel image.\n. @param dst2 Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.\n. @param shade_factor %Range between 0 to 0.1.' ... - -def perspectiveTransform(src: ndarray, m, dts: ndarray = ...) -> typing.Any: +def perspectiveTransform(src: Mat, m, dts: Mat = ...) -> typing.Any: "perspectiveTransform(src, m[, dst]) -> dst\n. @brief Performs the perspective matrix transformation of vectors.\n. \n. The function cv::perspectiveTransform transforms every element of src by\n. treating it as a 2D or 3D vector, in the following way:\n. \\f[(x, y, z) \\rightarrow (x'/w, y'/w, z'/w)\\f]\n. where\n. \\f[(x', y', z', w') = \\texttt{mat} \\cdot \\begin{bmatrix} x & y & z & 1 \\end{bmatrix}\\f]\n. and\n. \\f[w = \\fork{w'}{if \\(w' \\ne 0\\)}{\\infty}{otherwise}\\f]\n. \n. Here a 3D vector transformation is shown. In case of a 2D vector\n. transformation, the z component is omitted.\n. \n. @note The function transforms a sparse set of 2D or 3D vectors. If you\n. want to transform an image using perspective transformation, use\n. warpPerspective . If you have an inverse problem, that is, you want to\n. compute the most probable perspective transformation out of several\n. pairs of corresponding points, you can use getPerspectiveTransform or\n. findHomography .\n. @param src input two-channel or three-channel floating-point array; each\n. element is a 2D/3D vector to be transformed.\n. @param dst output array of the same size and type as src.\n. @param m 3x3 or 4x4 floating-point transformation matrix.\n. @sa transform, warpPerspective, getPerspectiveTransform, findHomography" ... - def phase(x, y, angle=..., angleInDegrees=...) -> typing.Any: 'phase(x, y[, angle[, angleInDegrees]]) -> angle\n. @brief Calculates the rotation angle of 2D vectors.\n. \n. The function cv::phase calculates the rotation angle of each 2D vector that\n. is formed from the corresponding elements of x and y :\n. \\f[\\texttt{angle} (I) = \\texttt{atan2} ( \\texttt{y} (I), \\texttt{x} (I))\\f]\n. \n. The angle estimation accuracy is about 0.3 degrees. When x(I)=y(I)=0 ,\n. the corresponding angle(I) is set to 0.\n. @param x input floating-point array of x-coordinates of 2D vectors.\n. @param y input array of y-coordinates of 2D vectors; it must have the\n. same size and the same type as x.\n. @param angle output array of vector angles; it has the same size and\n. same type as x .\n. @param angleInDegrees when true, the function calculates the angle in\n. degrees, otherwise, they are measured in radians.' ... - -def phaseCorrelate(src1: ndarray, src2: ndarray, window=...) -> typing.Any: +def phaseCorrelate(src1: Mat, src2: Mat, window=...) -> typing.Any: 'phaseCorrelate(src1, src2[, window]) -> retval, response\n. @brief The function is used to detect translational shifts that occur between two images.\n. \n. The operation takes advantage of the Fourier shift theorem for detecting the translational shift in\n. the frequency domain. It can be used for fast image registration as well as motion estimation. For\n. more information please see \n. \n. Calculates the cross-power spectrum of two supplied source arrays. The arrays are padded if needed\n. with getOptimalDFTSize.\n. \n. The function performs the following equations:\n. - First it applies a Hanning window (see ) to each\n. image to remove possible edge effects. This window is cached until the array size changes to speed\n. up processing time.\n. - Next it computes the forward DFTs of each source array:\n. \\f[\\mathbf{G}_a = \\mathcal{F}\\{src_1\\}, \\; \\mathbf{G}_b = \\mathcal{F}\\{src_2\\}\\f]\n. where \\f$\\mathcal{F}\\f$ is the forward DFT.\n. - It then computes the cross-power spectrum of each frequency domain array:\n. \\f[R = \\frac{ \\mathbf{G}_a \\mathbf{G}_b^*}{|\\mathbf{G}_a \\mathbf{G}_b^*|}\\f]\n. - Next the cross-correlation is converted back into the time domain via the inverse DFT:\n. \\f[r = \\mathcal{F}^{-1}\\{R\\}\\f]\n. - Finally, it computes the peak location and computes a 5x5 weighted centroid around the peak to\n. achieve sub-pixel accuracy.\n. \\f[(\\Delta x, \\Delta y) = \\texttt{weightedCentroid} \\{\\arg \\max_{(x, y)}\\{r\\}\\}\\f]\n. - If non-zero, the response parameter is computed as the sum of the elements of r within the 5x5\n. centroid around the peak location. It is normalized to a maximum of 1 (meaning there is a single\n. peak) and will be smaller when there are multiple peaks.\n. \n. @param src1 Source floating point array (CV_32FC1 or CV_64FC1)\n. @param src2 Source floating point array (CV_32FC1 or CV_64FC1)\n. @param window Floating point array with windowing coefficients to reduce edge effects (optional).\n. @param response Signal power within the 5x5 centroid around the peak, between 0 and 1 (optional).\n. @returns detected phase shift (sub-pixel) between the two arrays.\n. \n. @sa dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow' ... - def pointPolygonTest(contour, pt, measureDist) -> typing.Any: 'pointPolygonTest(contour, pt, measureDist) -> retval\n. @brief Performs a point-in-contour test.\n. \n. The function determines whether the point is inside a contour, outside, or lies on an edge (or\n. coincides with a vertex). It returns positive (inside), negative (outside), or zero (on an edge)\n. value, correspondingly. When measureDist=false , the return value is +1, -1, and 0, respectively.\n. Otherwise, the return value is a signed distance between the point and the nearest contour edge.\n. \n. See below a sample output of the function where each image pixel is tested against the contour:\n. \n. ![sample output](pics/pointpolygon.png)\n. \n. @param contour Input contour.\n. @param pt Point tested against the contour.\n. @param measureDist If true, the function estimates the signed distance from the point to the\n. nearest contour edge. Otherwise, the function only checks if the point is inside a contour or not.' ... - def polarToCart(magnitude, angle, x=..., y=..., angleInDegrees=...) -> typing.Any: 'polarToCart(magnitude, angle[, x[, y[, angleInDegrees]]]) -> x, y\n. @brief Calculates x and y coordinates of 2D vectors from their magnitude and angle.\n. \n. The function cv::polarToCart calculates the Cartesian coordinates of each 2D\n. vector represented by the corresponding elements of magnitude and angle:\n. \\f[\\begin{array}{l} \\texttt{x} (I) = \\texttt{magnitude} (I) \\cos ( \\texttt{angle} (I)) \\\\ \\texttt{y} (I) = \\texttt{magnitude} (I) \\sin ( \\texttt{angle} (I)) \\\\ \\end{array}\\f]\n. \n. The relative accuracy of the estimated coordinates is about 1e-6.\n. @param magnitude input floating-point array of magnitudes of 2D vectors;\n. it can be an empty matrix (=Mat()), in this case, the function assumes\n. that all the magnitudes are =1; if it is not empty, it must have the\n. same size and type as angle.\n. @param angle input floating-point array of angles of 2D vectors.\n. @param x output array of x-coordinates of 2D vectors; it has the same\n. size and type as angle.\n. @param y output array of y-coordinates of 2D vectors; it has the same\n. size and type as angle.\n. @param angleInDegrees when true, the input angles are measured in\n. degrees, otherwise, they are measured in radians.\n. @sa cartToPolar, magnitude, phase, exp, log, pow, sqrt' ... - -def polylines(img: ndarray, pts, isClosed, color, thickness=..., lineType=..., shift=...) -> typing.Any: +def polylines(img: Mat, pts, isClosed, color, thickness=..., lineType=..., shift=...) -> typing.Any: 'polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws several polygonal curves.\n. \n. @param img Image.\n. @param pts Array of polygonal curves.\n. @param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed,\n. the function draws a line from the last vertex of each curve to its first vertex.\n. @param color Polyline color.\n. @param thickness Thickness of the polyline edges.\n. @param lineType Type of the line segments. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.\n. \n. The function cv::polylines draws one or more polygonal curves.' ... - -def pow(src: ndarray, power, dts: ndarray = ...) -> typing.Any: +def pow(src: Mat, power, dts: Mat = ...) -> typing.Any: 'pow(src, power[, dst]) -> dst\n. @brief Raises every array element to a power.\n. \n. The function cv::pow raises every element of the input array to power :\n. \\f[\\texttt{dst} (I) = \\fork{\\texttt{src}(I)^{power}}{if \\(\\texttt{power}\\) is integer}{|\\texttt{src}(I)|^{power}}{otherwise}\\f]\n. \n. So, for a non-integer power exponent, the absolute values of input array\n. elements are used. However, it is possible to get true values for\n. negative values using some extra operations. In the example below,\n. computing the 5th root of array src shows:\n. @code{.cpp}\n. Mat mask = src < 0;\n. pow(src, 1./5, dst);\n. subtract(Scalar::all(0), dst, dst, mask);\n. @endcode\n. For some values of power, such as integer values, 0.5 and -0.5,\n. specialized faster algorithms are used.\n. \n. Special values (NaN, Inf) are not handled.\n. @param src input array.\n. @param power exponent of power.\n. @param dst output array of the same size and type as src.\n. @sa sqrt, exp, log, cartToPolar, polarToCart' ... - -def preCornerDetect(src: ndarray, ksize, dts: ndarray = ..., borderType=...) -> typing.Any: +def preCornerDetect(src: Mat, ksize, dts: Mat = ..., borderType=...) -> typing.Any: 'preCornerDetect(src, ksize[, dst[, borderType]]) -> dst\n. @brief Calculates a feature map for corner detection.\n. \n. The function calculates the complex spatial derivative-based function of the source image\n. \n. \\f[\\texttt{dst} = (D_x \\texttt{src} )^2 \\cdot D_{yy} \\texttt{src} + (D_y \\texttt{src} )^2 \\cdot D_{xx} \\texttt{src} - 2 D_x \\texttt{src} \\cdot D_y \\texttt{src} \\cdot D_{xy} \\texttt{src}\\f]\n. \n. where \\f$D_x\\f$,\\f$D_y\\f$ are the first image derivatives, \\f$D_{xx}\\f$,\\f$D_{yy}\\f$ are the second image\n. derivatives, and \\f$D_{xy}\\f$ is the mixed derivative.\n. \n. The corners can be found as local maximums of the functions, as shown below:\n. @code\n. Mat corners, dilated_corners;\n. preCornerDetect(image, corners, 3);\n. // dilation with 3x3 rectangular structuring element\n. dilate(corners, dilated_corners, Mat(), 1);\n. Mat corner_mask = corners == dilated_corners;\n. @endcode\n. \n. @param src Source single-channel 8-bit of floating-point image.\n. @param dst Output image that has the type CV_32F and the same size as src .\n. @param ksize %Aperture size of the Sobel .\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' ... - def projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs, imagePoints=..., jacobian=..., aspectRatio=...) -> typing.Any: 'projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs[, imagePoints[, jacobian[, aspectRatio]]]) -> imagePoints, jacobian\n. @brief Projects 3D points to an image plane.\n. \n. @param objectPoints Array of object points expressed wrt. the world coordinate frame. A 3xN/Nx3\n. 1-channel or 1xN/Nx1 3-channel (or vector\\ ), where N is the number of points in the view.\n. @param rvec The rotation vector (@ref Rodrigues) that, together with tvec, performs a change of\n. basis from world to camera coordinate system, see @ref calibrateCamera for details.\n. @param tvec The translation vector, see parameter description above.\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.\n. @param imagePoints Output array of image points, 1xN/Nx1 2-channel, or\n. vector\\ .\n. @param jacobian Optional output 2Nx(10+\\) jacobian matrix of derivatives of image\n. points with respect to components of the rotation vector, translation vector, focal lengths,\n. coordinates of the principal point and the distortion coefficients. In the old interface different\n. components of the jacobian are returned via different output parameters.\n. @param aspectRatio Optional "fixed aspect ratio" parameter. If the parameter is not 0, the\n. function assumes that the aspect ratio (\\f$f_x / f_y\\f$) is fixed and correspondingly adjusts the\n. jacobian matrix.\n. \n. The function computes the 2D projections of 3D points to the image plane, given intrinsic and\n. extrinsic camera parameters. Optionally, the function computes Jacobians -matrices of partial\n. derivatives of image points coordinates (as functions of all the input parameters) with respect to\n. the particular parameters, intrinsic and/or extrinsic. The Jacobians are used during the global\n. optimization in @ref calibrateCamera, @ref solvePnP, and @ref stereoCalibrate. The function itself\n. can also be used to compute a re-projection error, given the current intrinsic and extrinsic\n. parameters.\n. \n. @note By setting rvec = tvec = \\f$[0, 0, 0]\\f$, or by setting cameraMatrix to a 3x3 identity matrix,\n. or by passing zero distortion coefficients, one can get various useful partial cases of the\n. function. This means, one can compute the distorted coordinates for a sparse set of points or apply\n. a perspective transformation (and also compute the derivatives) in the ideal zero-distortion setup.' ... - -def putText(img: ndarray, text, org, fontFace, fontScale, color, thickness=..., lineType=..., bottomLeftOrigin=...) -> typing.Any: +def putText(img: Mat, text, org, fontFace, fontScale, color, thickness=..., lineType=..., bottomLeftOrigin=...) -> typing.Any: 'putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]]) -> img\n. @brief Draws a text string.\n. \n. The function cv::putText renders the specified text string in the image. Symbols that cannot be rendered\n. using the specified font are replaced by question marks. See #getTextSize for a text rendering code\n. example.\n. \n. @param img Image.\n. @param text Text string to be drawn.\n. @param org Bottom-left corner of the text string in the image.\n. @param fontFace Font type, see #HersheyFonts.\n. @param fontScale Font scale factor that is multiplied by the font-specific base size.\n. @param color Text color.\n. @param thickness Thickness of the lines used to draw a text.\n. @param lineType Line type. See #LineTypes\n. @param bottomLeftOrigin When true, the image data origin is at the bottom-left corner. Otherwise,\n. it is at the top-left corner.' ... - -def pyrDown(src: ndarray, dts: ndarray = ..., dstsize=..., borderType=...) -> typing.Any: +def pyrDown(src: Mat, dts: Mat = ..., dstsize=..., borderType=...) -> typing.Any: "pyrDown(src[, dst[, dstsize[, borderType]]]) -> dst\n. @brief Blurs an image and downsamples it.\n. \n. By default, size of the output image is computed as `Size((src.cols+1)/2, (src.rows+1)/2)`, but in\n. any case, the following conditions should be satisfied:\n. \n. \\f[\\begin{array}{l} | \\texttt{dstsize.width} *2-src.cols| \\leq 2 \\\\ | \\texttt{dstsize.height} *2-src.rows| \\leq 2 \\end{array}\\f]\n. \n. The function performs the downsampling step of the Gaussian pyramid construction. First, it\n. convolves the source image with the kernel:\n. \n. \\f[\\frac{1}{256} \\begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\\\ 4 & 16 & 24 & 16 & 4 \\\\ 6 & 24 & 36 & 24 & 6 \\\\ 4 & 16 & 24 & 16 & 4 \\\\ 1 & 4 & 6 & 4 & 1 \\end{bmatrix}\\f]\n. \n. Then, it downsamples the image by rejecting even rows and columns.\n. \n. @param src input image.\n. @param dst output image; it has the specified size and the same type as src.\n. @param dstsize size of the output image.\n. @param borderType Pixel extrapolation method, see #BorderTypes (#BORDER_CONSTANT isn't supported)" ... - -def pyrMeanShiftFiltering(src: ndarray, sp, sr, dts: ndarray = ..., maxLevel=..., termcrit=...) -> typing.Any: +def pyrMeanShiftFiltering(src: Mat, sp, sr, dts: Mat = ..., maxLevel=..., termcrit=...) -> typing.Any: 'pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]]) -> dst\n. @brief Performs initial step of meanshift segmentation of an image.\n. \n. The function implements the filtering stage of meanshift segmentation, that is, the output of the\n. function is the filtered "posterized" image with color gradients and fine-grain texture flattened.\n. At every pixel (X,Y) of the input image (or down-sized input image, see below) the function executes\n. meanshift iterations, that is, the pixel (X,Y) neighborhood in the joint space-color hyperspace is\n. considered:\n. \n. \\f[(x,y): X- \\texttt{sp} \\le x \\le X+ \\texttt{sp} , Y- \\texttt{sp} \\le y \\le Y+ \\texttt{sp} , ||(R,G,B)-(r,g,b)|| \\le \\texttt{sr}\\f]\n. \n. where (R,G,B) and (r,g,b) are the vectors of color components at (X,Y) and (x,y), respectively\n. (though, the algorithm does not depend on the color space used, so any 3-component color space can\n. be used instead). Over the neighborhood the average spatial value (X\',Y\') and average color vector\n. (R\',G\',B\') are found and they act as the neighborhood center on the next iteration:\n. \n. \\f[(X,Y)~(X\',Y\'), (R,G,B)~(R\',G\',B\').\\f]\n. \n. After the iterations over, the color components of the initial pixel (that is, the pixel from where\n. the iterations started) are set to the final value (average color at the last iteration):\n. \n. \\f[I(X,Y) <- (R*,G*,B*)\\f]\n. \n. When maxLevel \\> 0, the gaussian pyramid of maxLevel+1 levels is built, and the above procedure is\n. run on the smallest layer first. After that, the results are propagated to the larger layer and the\n. iterations are run again only on those pixels where the layer colors differ by more than sr from the\n. lower-resolution layer of the pyramid. That makes boundaries of color regions sharper. Note that the\n. results will be actually different from the ones obtained by running the meanshift procedure on the\n. whole original image (i.e. when maxLevel==0).\n. \n. @param src The source 8-bit, 3-channel image.\n. @param dst The destination image of the same format and the same size as the source.\n. @param sp The spatial window radius.\n. @param sr The color window radius.\n. @param maxLevel Maximum level of the pyramid for the segmentation.\n. @param termcrit Termination criteria: when to stop meanshift iterations.' ... - -def pyrUp(src: ndarray, dts: ndarray = ..., dstsize=..., borderType=...) -> typing.Any: +def pyrUp(src: Mat, dts: Mat = ..., dstsize=..., borderType=...) -> typing.Any: 'pyrUp(src[, dst[, dstsize[, borderType]]]) -> dst\n. @brief Upsamples an image and then blurs it.\n. \n. By default, size of the output image is computed as `Size(src.cols\\*2, (src.rows\\*2)`, but in any\n. case, the following conditions should be satisfied:\n. \n. \\f[\\begin{array}{l} | \\texttt{dstsize.width} -src.cols*2| \\leq ( \\texttt{dstsize.width} \\mod 2) \\\\ | \\texttt{dstsize.height} -src.rows*2| \\leq ( \\texttt{dstsize.height} \\mod 2) \\end{array}\\f]\n. \n. The function performs the upsampling step of the Gaussian pyramid construction, though it can\n. actually be used to construct the Laplacian pyramid. First, it upsamples the source image by\n. injecting even zero rows and columns and then convolves the result with the same kernel as in\n. pyrDown multiplied by 4.\n. \n. @param src input image.\n. @param dst output image. It has the specified size and the same type as src .\n. @param dstsize size of the output image.\n. @param borderType Pixel extrapolation method, see #BorderTypes (only #BORDER_DEFAULT is supported)' ... - -def randShuffle(dts: ndarray, iterFactor=...) -> typing.Any: +def randShuffle(dts: Mat, iterFactor=...) -> typing.Any: 'randShuffle(dst[, iterFactor]) -> dst\n. @brief Shuffles the array elements randomly.\n. \n. The function cv::randShuffle shuffles the specified 1D array by randomly choosing pairs of elements and\n. swapping them. The number of such swap operations will be dst.rows\\*dst.cols\\*iterFactor .\n. @param dst input/output numerical 1D array.\n. @param iterFactor scale factor that determines the number of random swap operations (see the details\n. below).\n. @param rng optional random number generator used for shuffling; if it is zero, theRNG () is used\n. instead.\n. @sa RNG, sort' ... - -def randn(dts: ndarray, mean, stddev) -> typing.Any: +def randn(dts: Mat, mean, stddev) -> typing.Any: 'randn(dst, mean, stddev) -> dst\n. @brief Fills the array with normally distributed random numbers.\n. \n. The function cv::randn fills the matrix dst with normally distributed random numbers with the specified\n. mean vector and the standard deviation matrix. The generated random numbers are clipped to fit the\n. value range of the output array data type.\n. @param dst output array of random numbers; the array must be pre-allocated and have 1 to 4 channels.\n. @param mean mean value (expectation) of the generated random numbers.\n. @param stddev standard deviation of the generated random numbers; it can be either a vector (in\n. which case a diagonal standard deviation matrix is assumed) or a square matrix.\n. @sa RNG, randu' ... - -def randu(dts: ndarray, low, high) -> typing.Any: +def randu(dts: Mat, low, high) -> typing.Any: 'randu(dst, low, high) -> dst\n. @brief Generates a single uniformly-distributed random number or an array of random numbers.\n. \n. Non-template variant of the function fills the matrix dst with uniformly-distributed\n. random numbers from the specified range:\n. \\f[\\texttt{low} _c \\leq \\texttt{dst} (I)_c < \\texttt{high} _c\\f]\n. @param dst output array of random numbers; the array must be pre-allocated.\n. @param low inclusive lower boundary of the generated random numbers.\n. @param high exclusive upper boundary of the generated random numbers.\n. @sa RNG, randn, theRNG' ... - def readOpticalFlow(path) -> typing.Any: 'readOpticalFlow(path) -> retval\n. @brief Read a .flo file\n. \n. @param path Path to the file to be loaded\n. \n. The function readOpticalFlow loads a flow field from a file and returns it as a single matrix.\n. Resulting Mat has a type CV_32FC2 - floating-point, 2-channel. First channel corresponds to the\n. flow in the horizontal direction (u), second - vertical (v).' ... - -def recoverPose(E, points1, points2, cameraMatrix, R=..., t=..., mask: ndarray = ...) -> typing.Any: +def recoverPose(E, points1, points2, cameraMatrix, R=..., t=..., mask: Mat = ...) -> typing.Any: "recoverPose(E, points1, points2, cameraMatrix[, R[, t[, mask]]]) -> retval, R, t, mask\n. @brief Recovers the relative camera rotation and the translation from an estimated essential\n. matrix and the corresponding points in two images, using cheirality check. Returns the number of\n. inliers that pass the check.\n. \n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix.\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. described below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. \n. This function decomposes an essential matrix using @ref decomposeEssentialMat and then verifies\n. possible pose hypotheses by doing cheirality check. The cheirality check means that the\n. triangulated 3D points should have positive depth. Some details can be found in @cite Nister03.\n. \n. This function can be used to process the output E and mask from @ref findEssentialMat. In this\n. scenario, points1 and points2 are the same input for findEssentialMat.:\n. @code\n. // Example. Estimation of fundamental matrix using the RANSAC algorithm\n. int point_count = 100;\n. vector points1(point_count);\n. vector points2(point_count);\n. \n. // initialize the points here ...\n. for( int i = 0; i < point_count; i++ )\n. {\n. points1[i] = ...;\n. points2[i] = ...;\n. }\n. \n. // cametra matrix with both focal lengths = 1, and principal point = (0, 0)\n. Mat cameraMatrix = Mat::eye(3, 3, CV_64F);\n. \n. Mat E, R, t, mask;\n. \n. E = findEssentialMat(points1, points2, cameraMatrix, RANSAC, 0.999, 1.0, mask);\n. recoverPose(E, points1, points2, cameraMatrix, R, t, mask);\n. @endcode\n\n\n\nrecoverPose(E, points1, points2[, R[, t[, focal[, pp[, mask]]]]]) -> retval, R, t, mask\n. @overload\n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. description below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param focal Focal length of the camera. Note that this function assumes that points1 and points2\n. are feature points from cameras with same focal length and principal point.\n. @param pp principal point of the camera.\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. \n. This function differs from the one above that it computes camera matrix from focal length and\n. principal point:\n. \n. \\f[A =\n. \\begin{bmatrix}\n. f & 0 & x_{pp} \\\\\n. 0 & f & y_{pp} \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\\f]\n\n\n\nrecoverPose(E, points1, points2, cameraMatrix, distanceThresh[, R[, t[, mask[, triangulatedPoints]]]]) -> retval, R, t, mask, triangulatedPoints\n. @overload\n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1.\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix.\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. description below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param distanceThresh threshold distance which is used to filter out far away points (i.e. infinite\n. points).\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. @param triangulatedPoints 3D points which were reconstructed by triangulation.\n. \n. This function differs from the one above that it outputs the triangulated 3D point that are used for\n. the cheirality check." ... - -def rectangle(img: ndarray, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: +def rectangle(img: Mat, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: 'rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a simple, thick, or filled up-right rectangle.\n. \n. The function cv::rectangle draws a rectangle outline or a filled rectangle whose two opposite corners\n. are pt1 and pt2.\n. \n. @param img Image.\n. @param pt1 Vertex of the rectangle.\n. @param pt2 Vertex of the rectangle opposite to pt1 .\n. @param color Rectangle color or brightness (grayscale image).\n. @param thickness Thickness of lines that make up the rectangle. Negative values, like #FILLED,\n. mean that the function has to draw a filled rectangle.\n. @param lineType Type of the line. See #LineTypes\n. @param shift Number of fractional bits in the point coordinates.\n\n\n\nrectangle(img, rec, color[, thickness[, lineType[, shift]]]) -> img\n. @overload\n. \n. use `rec` parameter as alternative specification of the drawn rectangle: `r.tl() and\n. r.br()-Point(1,1)` are opposite corners' ... - def rectify3Collinear(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, cameraMatrix3, distCoeffs3, imgpt1, imgpt3, imageSize, R12, T12, R13, T13, alpha, newImgSize, flags: int, R1=..., R2=..., R3=..., P1=..., P2=..., P3=..., Q=...) -> typing.Any: 'rectify3Collinear(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, cameraMatrix3, distCoeffs3, imgpt1, imgpt3, imageSize, R12, T12, R13, T13, alpha, newImgSize, flags[, R1[, R2[, R3[, P1[, P2[, P3[, Q]]]]]]]) -> retval, R1, R2, R3, P1, P2, P3, Q, roi1, roi2\n.' ... - def redirectError(onError) -> typing.Any: 'redirectError(onError) -> None' ... - -def reduce(src: ndarray, dim, rtype, dts: ndarray = ..., dtype=...) -> typing.Any: +def reduce(src: Mat, dim, rtype, dts: Mat = ..., dtype=...) -> typing.Any: 'reduce(src, dim, rtype[, dst[, dtype]]) -> dst\n. @brief Reduces a matrix to a vector.\n. \n. The function #reduce reduces the matrix to a vector by treating the matrix rows/columns as a set of\n. 1D vectors and performing the specified operation on the vectors until a single row/column is\n. obtained. For example, the function can be used to compute horizontal and vertical projections of a\n. raster image. In case of #REDUCE_MAX and #REDUCE_MIN , the output image should have the same type as the source one.\n. In case of #REDUCE_SUM and #REDUCE_AVG , the output may have a larger element bit-depth to preserve accuracy.\n. And multi-channel arrays are also supported in these two reduction modes.\n. \n. The following code demonstrates its usage for a single channel matrix.\n. @snippet snippets/core_reduce.cpp example\n. \n. And the following code demonstrates its usage for a two-channel matrix.\n. @snippet snippets/core_reduce.cpp example2\n. \n. @param src input 2D matrix.\n. @param dst output vector. Its size and type is defined by dim and dtype parameters.\n. @param dim dimension index along which the matrix is reduced. 0 means that the matrix is reduced to\n. a single row. 1 means that the matrix is reduced to a single column.\n. @param rtype reduction operation that could be one of #ReduceTypes\n. @param dtype when negative, the output vector will have the same type as the input matrix,\n. otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()).\n. @sa repeat' ... - -def remap(src: ndarray, map1, map2, interpolation: int, dts: ndarray = ..., borderMode=..., borderValue=...) -> typing.Any: +def remap(src: Mat, map1, map2, interpolation: int, dts: Mat = ..., borderMode=..., borderValue=...) -> typing.Any: 'remap(src, map1, map2, interpolation[, dst[, borderMode[, borderValue]]]) -> dst\n. @brief Applies a generic geometrical transformation to an image.\n. \n. The function remap transforms the source image using the specified map:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} (map_x(x,y),map_y(x,y))\\f]\n. \n. where values of pixels with non-integer coordinates are computed using one of available\n. interpolation methods. \\f$map_x\\f$ and \\f$map_y\\f$ can be encoded as separate floating-point maps\n. in \\f$map_1\\f$ and \\f$map_2\\f$ respectively, or interleaved floating-point maps of \\f$(x,y)\\f$ in\n. \\f$map_1\\f$, or fixed-point maps created by using convertMaps. The reason you might want to\n. convert from floating to fixed-point representations of a map is that they can yield much faster\n. (\\~2x) remapping operations. In the converted case, \\f$map_1\\f$ contains pairs (cvFloor(x),\n. cvFloor(y)) and \\f$map_2\\f$ contains indices in a table of interpolation coefficients.\n. \n. This function cannot operate in-place.\n. \n. @param src Source image.\n. @param dst Destination image. It has the same size as map1 and the same type as src .\n. @param map1 The first map of either (x,y) points or just x values having the type CV_16SC2 ,\n. CV_32FC1, or CV_32FC2. See convertMaps for details on converting a floating point\n. representation to fixed-point for speed.\n. @param map2 The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map\n. if map1 is (x,y) points), respectively.\n. @param interpolation Interpolation method (see #InterpolationFlags). The method #INTER_AREA is\n. not supported by this function.\n. @param borderMode Pixel extrapolation method (see #BorderTypes). When\n. borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image that\n. corresponds to the "outliers" in the source image are not modified by the function.\n. @param borderValue Value used in case of a constant border. By default, it is 0.\n. @note\n. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.' ... - -def repeat(src: ndarray, ny, nx, dts: ndarray = ...) -> typing.Any: +def repeat(src: Mat, ny, nx, dts: Mat = ...) -> typing.Any: 'repeat(src, ny, nx[, dst]) -> dst\n. @brief Fills the output array with repeated copies of the input array.\n. \n. The function cv::repeat duplicates the input array one or more times along each of the two axes:\n. \\f[\\texttt{dst} _{ij}= \\texttt{src} _{i\\mod src.rows, \\; j\\mod src.cols }\\f]\n. The second variant of the function is more convenient to use with @ref MatrixExpressions.\n. @param src input array to replicate.\n. @param ny Flag to specify how many times the `src` is repeated along the\n. vertical axis.\n. @param nx Flag to specify how many times the `src` is repeated along the\n. horizontal axis.\n. @param dst output array of the same type as `src`.\n. @sa cv::reduce' ... - def reprojectImageTo3D(disparity, Q, _3dImage=..., handleMissingValues=..., ddepth=...) -> typing.Any: "reprojectImageTo3D(disparity, Q[, _3dImage[, handleMissingValues[, ddepth]]]) -> _3dImage\n. @brief Reprojects a disparity image to 3D space.\n. \n. @param disparity Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit\n. floating-point disparity image. The values of 8-bit / 16-bit signed formats are assumed to have no\n. fractional bits. If the disparity is 16-bit signed format, as computed by @ref StereoBM or\n. @ref StereoSGBM and maybe other algorithms, it should be divided by 16 (and scaled to float) before\n. being used here.\n. @param _3dImage Output 3-channel floating-point image of the same size as disparity. Each element of\n. _3dImage(x,y) contains 3D coordinates of the point (x,y) computed from the disparity map. If one\n. uses Q obtained by @ref stereoRectify, then the returned points are represented in the first\n. camera's rectified coordinate system.\n. @param Q \\f$4 \\times 4\\f$ perspective transformation matrix that can be obtained with\n. @ref stereoRectify.\n. @param handleMissingValues Indicates, whether the function should handle missing values (i.e.\n. points where the disparity was not computed). If handleMissingValues=true, then pixels with the\n. minimal disparity that corresponds to the outliers (see StereoMatcher::compute ) are transformed\n. to 3D points with a very large Z value (currently set to 10000).\n. @param ddepth The optional output array depth. If it is -1, the output image will have CV_32F\n. depth. ddepth can also be set to CV_16S, CV_32S or CV_32F.\n. \n. The function transforms a single-channel disparity map to a 3-channel image representing a 3D\n. surface. That is, for each pixel (x,y) and the corresponding disparity d=disparity(x,y) , it\n. computes:\n. \n. \\f[\\begin{bmatrix}\n. X \\\\\n. Y \\\\\n. Z \\\\\n. W\n. \\end{bmatrix} = Q \\begin{bmatrix}\n. x \\\\\n. y \\\\\n. \\texttt{disparity} (x,y) \\\\\n. z\n. \\end{bmatrix}.\\f]\n. \n. @sa\n. To reproject a sparse set of points {(x,y,d),...} to 3D space, use perspectiveTransform." ... - -def resize(src: ndarray, dsize: typing.Tuple[int, int], dts: ndarray = ..., fx: int = ..., fy: int = ..., interpolation: int = ...) -> ndarray: +def resize(src: Mat, dsize: typing.Tuple[int, int], dts: Mat = ..., fx: int = ..., fy: int = ..., interpolation: int = ...) -> Mat: 'resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) -> dst\n. @brief Resizes an image.\n. \n. The function resize resizes the image src down to or up to the specified size. Note that the\n. initial dst type or size are not taken into account. Instead, the size and type are derived from\n. the `src`,`dsize`,`fx`, and `fy`. If you want to resize src so that it fits the pre-created dst,\n. you may call the function as follows:\n. @code\n. // explicitly specify dsize=dst.size(); fx and fy will be computed from that.\n. resize(src, dst, dst.size(), 0, 0, interpolation);\n. @endcode\n. If you want to decimate the image by factor of 2 in each direction, you can call the function this\n. way:\n. @code\n. // specify fx and fy and let the function compute the destination image size.\n. resize(src, dst, Size(), 0.5, 0.5, interpolation);\n. @endcode\n. To shrink an image, it will generally look best with #INTER_AREA interpolation, whereas to\n. enlarge an image, it will generally look best with c#INTER_CUBIC (slow) or #INTER_LINEAR\n. (faster but still looks OK).\n. \n. @param src input image.\n. @param dst output image; it has the size dsize (when it is non-zero) or the size computed from\n. src.size(), fx, and fy; the type of dst is the same as of src.\n. @param dsize output image size; if it equals zero, it is computed as:\n. \\f[\\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\\f]\n. Either dsize or both fx and fy must be non-zero.\n. @param fx scale factor along the horizontal axis; when it equals 0, it is computed as\n. \\f[\\texttt{(double)dsize.width/src.cols}\\f]\n. @param fy scale factor along the vertical axis; when it equals 0, it is computed as\n. \\f[\\texttt{(double)dsize.height/src.rows}\\f]\n. @param interpolation interpolation method, see #InterpolationFlags\n. \n. @sa warpAffine, warpPerspective, remap' ... - def resizeWindow(winname, width, height) -> typing.Any: 'resizeWindow(winname, width, height) -> None\n. @brief Resizes window to the specified size\n. \n. @note\n. \n. - The specified window size is for the image area. Toolbars are not counted.\n. - Only windows created without cv::WINDOW_AUTOSIZE flag can be resized.\n. \n. @param winname Window name.\n. @param width The new window width.\n. @param height The new window height.\n\n\n\nresizeWindow(winname, size) -> None\n. @overload\n. @param winname Window name.\n. @param size The new window size.' ... - -def rotate(src: ndarray, rotateCode, dts: ndarray = ...) -> typing.Any: +def rotate(src: Mat, rotateCode, dts: Mat = ...) -> typing.Any: 'rotate(src, rotateCode[, dst]) -> dst\n. @brief Rotates a 2D array in multiples of 90 degrees.\n. The function cv::rotate rotates the array in one of three different ways:\n. * Rotate by 90 degrees clockwise (rotateCode = ROTATE_90_CLOCKWISE).\n. * Rotate by 180 degrees clockwise (rotateCode = ROTATE_180).\n. * Rotate by 270 degrees clockwise (rotateCode = ROTATE_90_COUNTERCLOCKWISE).\n. @param src input array.\n. @param dst output array of the same type as src. The size is the same with ROTATE_180,\n. and the rows and cols are switched for ROTATE_90_CLOCKWISE and ROTATE_90_COUNTERCLOCKWISE.\n. @param rotateCode an enum to specify how to rotate the array; see the enum #RotateFlags\n. @sa transpose , repeat , completeSymm, flip, RotateFlags' ... - def rotatedRectangleIntersection(rect1, rect2, intersectingRegion=...) -> typing.Any: 'rotatedRectangleIntersection(rect1, rect2[, intersectingRegion]) -> retval, intersectingRegion\n. @brief Finds out if there is any intersection between two rotated rectangles.\n. \n. If there is then the vertices of the intersecting region are returned as well.\n. \n. Below are some examples of intersection configurations. The hatched pattern indicates the\n. intersecting region and the red vertices are returned by the function.\n. \n. ![intersection examples](pics/intersection.png)\n. \n. @param rect1 First rectangle\n. @param rect2 Second rectangle\n. @param intersectingRegion The output array of the vertices of the intersecting region. It returns\n. at most 8 vertices. Stored as std::vector\\ or cv::Mat as Mx1 of type CV_32FC2.\n. @returns One of #RectanglesIntersectTypes' ... - def sampsonDistance(pt1, pt2, F) -> typing.Any: 'sampsonDistance(pt1, pt2, F) -> retval\n. @brief Calculates the Sampson Distance between two points.\n. \n. The function cv::sampsonDistance calculates and returns the first order approximation of the geometric error as:\n. \\f[\n. sd( \\texttt{pt1} , \\texttt{pt2} )=\n. \\frac{(\\texttt{pt2}^t \\cdot \\texttt{F} \\cdot \\texttt{pt1})^2}\n. {((\\texttt{F} \\cdot \\texttt{pt1})(0))^2 +\n. ((\\texttt{F} \\cdot \\texttt{pt1})(1))^2 +\n. ((\\texttt{F}^t \\cdot \\texttt{pt2})(0))^2 +\n. ((\\texttt{F}^t \\cdot \\texttt{pt2})(1))^2}\n. \\f]\n. The fundamental matrix may be calculated using the cv::findFundamentalMat function. See @cite HartleyZ00 11.4.3 for details.\n. @param pt1 first homogeneous 2d point\n. @param pt2 second homogeneous 2d point\n. @param F fundamental matrix\n. @return The computed Sampson distance.' ... - -def scaleAdd(src1: ndarray, alpha, src2: ndarray, dts: ndarray = ...) -> typing.Any: +def scaleAdd(src1: Mat, alpha, src2: Mat, dts: Mat = ...) -> typing.Any: 'scaleAdd(src1, alpha, src2[, dst]) -> dst\n. @brief Calculates the sum of a scaled array and another array.\n. \n. The function scaleAdd is one of the classical primitive linear algebra operations, known as DAXPY\n. or SAXPY in [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms). It calculates\n. the sum of a scaled array and another array:\n. \\f[\\texttt{dst} (I)= \\texttt{scale} \\cdot \\texttt{src1} (I) + \\texttt{src2} (I)\\f]\n. The function can also be emulated with a matrix expression, for example:\n. @code{.cpp}\n. Mat A(3, 3, CV_64F);\n. ...\n. A.row(0) = A.row(1)*2 + A.row(2);\n. @endcode\n. @param src1 first input array.\n. @param alpha scale factor for the first array.\n. @param src2 second input array of the same size and type as src1.\n. @param dst output array of the same size and type as src1.\n. @sa add, addWeighted, subtract, Mat::dot, Mat::convertTo' ... - -def seamlessClone(src: ndarray, dts: ndarray, mask: typing.Optional[ndarray], p, flags: int, blend=...) -> typing.Any: +def seamlessClone(src: Mat, dts: Mat, mask: typing.Optional[Mat], p, flags: int, blend=...) -> typing.Any: 'seamlessClone(src, dst, mask, p, flags[, blend]) -> blend\n. @brief Image editing tasks concern either global changes (color/intensity corrections, filters,\n. deformations) or local changes concerned to a selection. Here we are interested in achieving local\n. changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless\n. manner. The extent of the changes ranges from slight distortions to complete replacement by novel\n. content @cite PM03 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param p Point in dst image where object is placed.\n. @param blend Output image with the same size and type as dst.\n. @param flags Cloning method that could be cv::NORMAL_CLONE, cv::MIXED_CLONE or cv::MONOCHROME_TRANSFER' ... - -def selectROI(windowName, img: ndarray, showCrosshair=..., fromCenter=...) -> typing.Any: +def selectROI(windowName, img: Mat, showCrosshair=..., fromCenter=...) -> typing.Any: "selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval\n. @brief Selects ROI on the given image.\n. Function creates a window and allows user to select a ROI using mouse.\n. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).\n. \n. @param windowName name of the window where selection process will be shown.\n. @param img image to select a ROI.\n. @param showCrosshair if true crosshair of selection rectangle will be shown.\n. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of\n. selection rectangle will correspont to the initial mouse position.\n. @return selected ROI or empty rect if selection canceled.\n. \n. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).\n. After finish of work an empty callback will be set for the used window.\n\n\n\nselectROI(img[, showCrosshair[, fromCenter]]) -> retval\n. @overload" ... - -def selectROIs(windowName, img: ndarray, showCrosshair=..., fromCenter=...) -> typing.Any: +def selectROIs(windowName, img: Mat, showCrosshair=..., fromCenter=...) -> typing.Any: "selectROIs(windowName, img[, showCrosshair[, fromCenter]]) -> boundingBoxes\n. @brief Selects ROIs on the given image.\n. Function creates a window and allows user to select a ROIs using mouse.\n. Controls: use `space` or `enter` to finish current selection and start a new one,\n. use `esc` to terminate multiple ROI selection process.\n. \n. @param windowName name of the window where selection process will be shown.\n. @param img image to select a ROI.\n. @param boundingBoxes selected ROIs.\n. @param showCrosshair if true crosshair of selection rectangle will be shown.\n. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of\n. selection rectangle will correspont to the initial mouse position.\n. \n. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).\n. After finish of work an empty callback will be set for the used window." ... - -def sepFilter2D(src: ndarray, ddepth, kernelX, kernelY, dts: ndarray = ..., anchor=..., delta=..., borderType=...) -> typing.Any: +def sepFilter2D(src: Mat, ddepth, kernelX, kernelY, dts: Mat = ..., anchor=..., delta=..., borderType=...) -> typing.Any: 'sepFilter2D(src, ddepth, kernelX, kernelY[, dst[, anchor[, delta[, borderType]]]]) -> dst\n. @brief Applies a separable linear filter to an image.\n. \n. The function applies a separable linear filter to the image. That is, first, every row of src is\n. filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D\n. kernel kernelY. The final result shifted by delta is stored in dst .\n. \n. @param src Source image.\n. @param dst Destination image of the same size and the same number of channels as src .\n. @param ddepth Destination image depth, see @ref filter_depths "combinations"\n. @param kernelX Coefficients for filtering each row.\n. @param kernelY Coefficients for filtering each column.\n. @param anchor Anchor position within the kernel. The default value \\f$(-1,-1)\\f$ means that the anchor\n. is at the kernel center.\n. @param delta Value added to the filtered results before storing them.\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa filter2D, Sobel, GaussianBlur, boxFilter, blur' ... - def setIdentity(mtx, s=...) -> typing.Any: 'setIdentity(mtx[, s]) -> mtx\n. @brief Initializes a scaled identity matrix.\n. \n. The function cv::setIdentity initializes a scaled identity matrix:\n. \\f[\\texttt{mtx} (i,j)= \\fork{\\texttt{value}}{ if \\(i=j\\)}{0}{otherwise}\\f]\n. \n. The function can also be emulated using the matrix initializers and the\n. matrix expressions:\n. @code\n. Mat A = Mat::eye(4, 3, CV_32F)*5;\n. // A will be set to [[5, 0, 0], [0, 5, 0], [0, 0, 5], [0, 0, 0]]\n. @endcode\n. @param mtx matrix to initialize (not necessarily square).\n. @param s value to assign to diagonal elements.\n. @sa Mat::zeros, Mat::ones, Mat::setTo, Mat::operator=' ... - def setMouseCallback(windowName, onMouse, param=...) -> typing.Any: 'setMouseCallback(windowName, onMouse [, param]) -> None' ... - def setNumThreads(nthreads) -> typing.Any: "setNumThreads(nthreads) -> None\n. @brief OpenCV will try to set the number of threads for the next parallel region.\n. \n. If threads == 0, OpenCV will disable threading optimizations and run all it's functions\n. sequentially. Passing threads \\< 0 will reset threads number to system default. This function must\n. be called outside of parallel region.\n. \n. OpenCV will try to run its functions with specified threads number, but some behaviour differs from\n. framework:\n. - `TBB` - User-defined parallel constructions will run with the same threads number, if\n. another is not specified. If later on user creates his own scheduler, OpenCV will use it.\n. - `OpenMP` - No special defined behaviour.\n. - `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run its\n. functions sequentially.\n. - `GCD` - Supports only values \\<= 0.\n. - `C=` - No special defined behaviour.\n. @param nthreads Number of threads used by OpenCV.\n. @sa getNumThreads, getThreadNum" ... - def setRNGSeed(seed) -> typing.Any: 'setRNGSeed(seed) -> None\n. @brief Sets state of default random number generator.\n. \n. The function cv::setRNGSeed sets state of default random number generator to custom value.\n. @param seed new state for default random number generator\n. @sa RNG, randu, randn' ... - def setTrackbarMax(trackbarname, winname, maxval) -> typing.Any: 'setTrackbarMax(trackbarname, winname, maxval) -> None\n. @brief Sets the trackbar maximum position.\n. \n. The function sets the maximum position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param maxval New maximum position.' ... - def setTrackbarMin(trackbarname, winname, minval) -> typing.Any: 'setTrackbarMin(trackbarname, winname, minval) -> None\n. @brief Sets the trackbar minimum position.\n. \n. The function sets the minimum position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param minval New minimum position.' ... - def setTrackbarPos(trackbarname, winname, pos) -> typing.Any: 'setTrackbarPos(trackbarname, winname, pos) -> None\n. @brief Sets the trackbar position.\n. \n. The function sets the position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param pos New position.' ... - def setUseOpenVX(flag) -> typing.Any: 'setUseOpenVX(flag) -> None\n.' ... - def setUseOptimized(onoff) -> typing.Any: 'setUseOptimized(onoff) -> None\n. @brief Enables or disables the optimized code.\n. \n. The function can be used to dynamically turn on and off optimized dispatched code (code that uses SSE4.2, AVX/AVX2,\n. and other instructions on the platforms that support it). It sets a global flag that is further\n. checked by OpenCV functions. Since the flag is not checked in the inner OpenCV loops, it is only\n. safe to call the function on the very top level in your application where you can be sure that no\n. other OpenCV function is currently executed.\n. \n. By default, the optimized code is enabled unless you disable it in CMake. The current status can be\n. retrieved using useOptimized.\n. @param onoff The boolean flag specifying whether the optimized code should be used (onoff=true)\n. or not (onoff=false).' ... - def setWindowProperty(winname, prop_id, prop_value) -> typing.Any: 'setWindowProperty(winname, prop_id, prop_value) -> None\n. @brief Changes parameters of a window dynamically.\n. \n. The function setWindowProperty enables changing properties of a window.\n. \n. @param winname Name of the window.\n. @param prop_id Window property to edit. The supported operation flags are: (cv::WindowPropertyFlags)\n. @param prop_value New value of the window property. The supported flags are: (cv::WindowFlags)' ... - def setWindowTitle(winname, title) -> typing.Any: 'setWindowTitle(winname, title) -> None\n. @brief Updates window title\n. @param winname Name of the window.\n. @param title New title.' ... - -def solve(src1: ndarray, src2: ndarray, dts: ndarray = ..., flags: int = ...) -> typing.Any: +def solve(src1: Mat, src2: Mat, dts: Mat = ..., flags: int = ...) -> typing.Any: 'solve(src1, src2[, dst[, flags]]) -> retval, dst\n. @brief Solves one or more linear systems or least-squares problems.\n. \n. The function cv::solve solves a linear system or least-squares problem (the\n. latter is possible with SVD or QR methods, or by specifying the flag\n. #DECOMP_NORMAL ):\n. \\f[\\texttt{dst} = \\arg \\min _X \\| \\texttt{src1} \\cdot \\texttt{X} - \\texttt{src2} \\|\\f]\n. \n. If #DECOMP_LU or #DECOMP_CHOLESKY method is used, the function returns 1\n. if src1 (or \\f$\\texttt{src1}^T\\texttt{src1}\\f$ ) is non-singular. Otherwise,\n. it returns 0. In the latter case, dst is not valid. Other methods find a\n. pseudo-solution in case of a singular left-hand side part.\n. \n. @note If you want to find a unity-norm solution of an under-defined\n. singular system \\f$\\texttt{src1}\\cdot\\texttt{dst}=0\\f$ , the function solve\n. will not do the work. Use SVD::solveZ instead.\n. \n. @param src1 input matrix on the left-hand side of the system.\n. @param src2 input matrix on the right-hand side of the system.\n. @param dst output solution.\n. @param flags solution (matrix inversion) method (#DecompTypes)\n. @sa invert, SVD, eigen' ... - def solveCubic(coeffs, roots=...) -> typing.Any: 'solveCubic(coeffs[, roots]) -> retval, roots\n. @brief Finds the real roots of a cubic equation.\n. \n. The function solveCubic finds the real roots of a cubic equation:\n. - if coeffs is a 4-element vector:\n. \\f[\\texttt{coeffs} [0] x^3 + \\texttt{coeffs} [1] x^2 + \\texttt{coeffs} [2] x + \\texttt{coeffs} [3] = 0\\f]\n. - if coeffs is a 3-element vector:\n. \\f[x^3 + \\texttt{coeffs} [0] x^2 + \\texttt{coeffs} [1] x + \\texttt{coeffs} [2] = 0\\f]\n. \n. The roots are stored in the roots array.\n. @param coeffs equation coefficients, an array of 3 or 4 elements.\n. @param roots output array of real roots that has 1 or 3 elements.\n. @return number of real roots. It can be 0, 1 or 2.' ... - def solveLP(Func, Constr, z=...) -> typing.Any: 'solveLP(Func, Constr[, z]) -> retval, z\n. @brief Solve given (non-integer) linear programming problem using the Simplex Algorithm (Simplex Method).\n. \n. What we mean here by "linear programming problem" (or LP problem, for short) can be formulated as:\n. \n. \\f[\\mbox{Maximize } c\\cdot x\\\\\n. \\mbox{Subject to:}\\\\\n. Ax\\leq b\\\\\n. x\\geq 0\\f]\n. \n. Where \\f$c\\f$ is fixed `1`-by-`n` row-vector, \\f$A\\f$ is fixed `m`-by-`n` matrix, \\f$b\\f$ is fixed `m`-by-`1`\n. column vector and \\f$x\\f$ is an arbitrary `n`-by-`1` column vector, which satisfies the constraints.\n. \n. Simplex algorithm is one of many algorithms that are designed to handle this sort of problems\n. efficiently. Although it is not optimal in theoretical sense (there exist algorithms that can solve\n. any problem written as above in polynomial time, while simplex method degenerates to exponential\n. time for some special cases), it is well-studied, easy to implement and is shown to work well for\n. real-life purposes.\n. \n. The particular implementation is taken almost verbatim from **Introduction to Algorithms, third\n. edition** by T. H. Cormen, C. E. Leiserson, R. L. Rivest and Clifford Stein. In particular, the\n. Bland\'s rule is used to prevent cycling.\n. \n. @param Func This row-vector corresponds to \\f$c\\f$ in the LP problem formulation (see above). It should\n. contain 32- or 64-bit floating point numbers. As a convenience, column-vector may be also submitted,\n. in the latter case it is understood to correspond to \\f$c^T\\f$.\n. @param Constr `m`-by-`n+1` matrix, whose rightmost column corresponds to \\f$b\\f$ in formulation above\n. and the remaining to \\f$A\\f$. It should contain 32- or 64-bit floating point numbers.\n. @param z The solution will be returned here as a column-vector - it corresponds to \\f$c\\f$ in the\n. formulation above. It will contain 64-bit floating point numbers.\n. @return One of cv::SolveLPResult' ... - def solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags: int, rvecs=..., tvecs=...) -> typing.Any: 'solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags[, rvecs[, tvecs]]) -> retval, rvecs, tvecs\n. @brief Finds an object pose from 3 3D-2D point correspondences.\n. \n. @param objectPoints Array of object points in the object coordinate space, 3x3 1-channel or\n. 1x3/3x1 3-channel. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, 3x2 1-channel or 1x3/3x1 2-channel.\n. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvecs Output rotation vectors (see @ref Rodrigues ) that, together with tvecs, brings points from\n. the model coordinate system to the camera coordinate system. A P3P problem has up to 4 solutions.\n. @param tvecs Output translation vectors.\n. @param flags Method for solving a P3P problem:\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke and S. Roumeliotis.\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. \n. The function estimates the object pose given 3 object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients.\n. \n. @note\n. The solutions are sorted by reprojection errors (lowest to highest).' ... - def solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., flags: int = ...) -> typing.Any: 'solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, flags]]]]) -> retval, rvec, tvec\n. @brief Finds an object pose from 3D-2D point correspondences.\n. This function returns the rotation and the translation vectors that transform a 3D point expressed in the object\n. coordinate frame to the camera coordinate frame, using different methods:\n. - P3P methods (@ref SOLVEPNP_P3P, @ref SOLVEPNP_AP3P): need 4 input points to return a unique solution.\n. - @ref SOLVEPNP_IPPE Input points must be >= 4 and object points must be coplanar.\n. - @ref SOLVEPNP_IPPE_SQUARE Special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. - for all the other flags, number of input points must be >= 4 and object points can be in any configuration.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Output translation vector.\n. @param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param flags Method for solving a PnP problem:\n. - **SOLVEPNP_ITERATIVE** Iterative method is based on a Levenberg-Marquardt optimization. In\n. this case the function finds such a pose that minimizes reprojection error, that is the sum\n. of squared distances between the observed projections imagePoints and the projected (using\n. projectPoints ) objectPoints .\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_EPNP** Method has been introduced by F. Moreno-Noguer, V. Lepetit and P. Fua in the\n. paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).\n. - **SOLVEPNP_DLS** Method is based on the paper of J. Hesch and S. Roumeliotis.\n. "A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).\n. - **SOLVEPNP_UPNP** Method is based on the paper of A. Penate-Sanchez, J. Andrade-Cetto,\n. F. Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length\n. Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \\f$f_x\\f$ and \\f$f_y\\f$\n. assuming that both have the same value. Then the cameraMatrix is updated with the estimated\n. focal length.\n. - **SOLVEPNP_IPPE** Method is based on the paper of T. Collins and A. Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method requires coplanar object points.\n. - **SOLVEPNP_IPPE_SQUARE** Method is based on the paper of Toby Collins and Adrien Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method is suitable for marker pose estimation.\n. It requires 4 coplanar object points defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. \n. The function estimates the object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients, see the figure below\n. (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward\n. and the Z-axis forward).\n. \n. ![](pnp.jpg)\n. \n. Points expressed in the world frame \\f$ \\bf{X}_w \\f$ are projected into the image plane \\f$ \\left[ u, v \\right] \\f$\n. using the perspective projection model \\f$ \\Pi \\f$ and the camera intrinsic parameters matrix \\f$ \\bf{A} \\f$:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\bf{A} \\hspace{0.1em} \\Pi \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. f_x & 0 & c_x \\\\\n. 0 & f_y & c_y \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. 1 & 0 & 0 & 0 \\\\\n. 0 & 1 & 0 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow transforming\n. a 3D point expressed in the world frame into the camera frame:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. @note\n. - An example of how to use solvePnP for planar augmented reality can be found at\n. opencv_source_code/samples/python/plane_ar.py\n. - If you are using Python:\n. - Numpy array slices won\'t work as input because solvePnP requires contiguous\n. arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of\n. modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. - The P3P algorithm requires image points to be in an array of shape (N,1,2) due\n. to its calling of cv::undistortPoints (around line 75 of modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. which requires 2-channel information.\n. - Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of\n. it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =\n. np.ascontiguousarray(D[:,:2]).reshape((N,1,2))\n. - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are\n. unstable and sometimes give completely wrong results. If you pass one of these two\n. flags, **SOLVEPNP_EPNP** method will be used instead.\n. - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**\n. methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions\n. of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).\n. - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points\n. are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the\n. global solution to converge.\n. - With **SOLVEPNP_IPPE** input points must be >= 4 and object points must be coplanar.\n. - With **SOLVEPNP_IPPE_SQUARE** this is a special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]' ... - def solvePnPGeneric(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., useExtrinsicGuess=..., flags: int = ..., rvec=..., tvec=..., reprojectionError=...) -> typing.Any: 'solvePnPGeneric(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvecs[, tvecs[, useExtrinsicGuess[, flags[, rvec[, tvec[, reprojectionError]]]]]]]) -> retval, rvecs, tvecs, reprojectionError\n. @brief Finds an object pose from 3D-2D point correspondences.\n. This function returns a list of all the possible solutions (a solution is a \n. couple), depending on the number of input points and the chosen method:\n. - P3P methods (@ref SOLVEPNP_P3P, @ref SOLVEPNP_AP3P): 3 or 4 input points. Number of returned solutions can be between 0 and 4 with 3 input points.\n. - @ref SOLVEPNP_IPPE Input points must be >= 4 and object points must be coplanar. Returns 2 solutions.\n. - @ref SOLVEPNP_IPPE_SQUARE Special case suitable for marker pose estimation.\n. Number of input points must be 4 and 2 solutions are returned. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. - for all the other flags, number of input points must be >= 4 and object points can be in any configuration.\n. Only 1 solution is returned.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvecs Vector of output rotation vectors (see @ref Rodrigues ) that, together with tvecs, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvecs Vector of output translation vectors.\n. @param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param flags Method for solving a PnP problem:\n. - **SOLVEPNP_ITERATIVE** Iterative method is based on a Levenberg-Marquardt optimization. In\n. this case the function finds such a pose that minimizes reprojection error, that is the sum\n. of squared distances between the observed projections imagePoints and the projected (using\n. projectPoints ) objectPoints .\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_EPNP** Method has been introduced by F.Moreno-Noguer, V.Lepetit and P.Fua in the\n. paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).\n. - **SOLVEPNP_DLS** Method is based on the paper of Joel A. Hesch and Stergios I. Roumeliotis.\n. "A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).\n. - **SOLVEPNP_UPNP** Method is based on the paper of A.Penate-Sanchez, J.Andrade-Cetto,\n. F.Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length\n. Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \\f$f_x\\f$ and \\f$f_y\\f$\n. assuming that both have the same value. Then the cameraMatrix is updated with the estimated\n. focal length.\n. - **SOLVEPNP_IPPE** Method is based on the paper of T. Collins and A. Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method requires coplanar object points.\n. - **SOLVEPNP_IPPE_SQUARE** Method is based on the paper of Toby Collins and Adrien Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method is suitable for marker pose estimation.\n. It requires 4 coplanar object points defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. @param rvec Rotation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE\n. and useExtrinsicGuess is set to true.\n. @param tvec Translation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE\n. and useExtrinsicGuess is set to true.\n. @param reprojectionError Optional vector of reprojection error, that is the RMS error\n. (\\f$ \\text{RMSE} = \\sqrt{\\frac{\\sum_{i}^{N} \\left ( \\hat{y_i} - y_i \\right )^2}{N}} \\f$) between the input image points\n. and the 3D object points projected with the estimated pose.\n. \n. The function estimates the object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients, see the figure below\n. (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward\n. and the Z-axis forward).\n. \n. ![](pnp.jpg)\n. \n. Points expressed in the world frame \\f$ \\bf{X}_w \\f$ are projected into the image plane \\f$ \\left[ u, v \\right] \\f$\n. using the perspective projection model \\f$ \\Pi \\f$ and the camera intrinsic parameters matrix \\f$ \\bf{A} \\f$:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\bf{A} \\hspace{0.1em} \\Pi \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. f_x & 0 & c_x \\\\\n. 0 & f_y & c_y \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. 1 & 0 & 0 & 0 \\\\\n. 0 & 1 & 0 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow transforming\n. a 3D point expressed in the world frame into the camera frame:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. @note\n. - An example of how to use solvePnP for planar augmented reality can be found at\n. opencv_source_code/samples/python/plane_ar.py\n. - If you are using Python:\n. - Numpy array slices won\'t work as input because solvePnP requires contiguous\n. arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of\n. modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. - The P3P algorithm requires image points to be in an array of shape (N,1,2) due\n. to its calling of cv::undistortPoints (around line 75 of modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. which requires 2-channel information.\n. - Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of\n. it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =\n. np.ascontiguousarray(D[:,:2]).reshape((N,1,2))\n. - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are\n. unstable and sometimes give completely wrong results. If you pass one of these two\n. flags, **SOLVEPNP_EPNP** method will be used instead.\n. - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**\n. methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions\n. of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).\n. - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points\n. are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the\n. global solution to converge.\n. - With **SOLVEPNP_IPPE** input points must be >= 4 and object points must be coplanar.\n. - With **SOLVEPNP_IPPE_SQUARE** this is a special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]' ... - def solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., iterationsCount=..., reprojectionError=..., confidence=..., inliers=..., flags: int = ...) -> typing.Any: 'solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, iterationsCount[, reprojectionError[, confidence[, inliers[, flags]]]]]]]]) -> retval, rvec, tvec, inliers\n. @brief Finds an object pose from 3D-2D point correspondences using the RANSAC scheme.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{fx}{0}{cx}{0}{fy}{cy}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Output translation vector.\n. @param useExtrinsicGuess Parameter used for @ref SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param iterationsCount Number of iterations.\n. @param reprojectionError Inlier threshold value used by the RANSAC procedure. The parameter value\n. is the maximum allowed distance between the observed and computed point projections to consider it\n. an inlier.\n. @param confidence The probability that the algorithm produces a useful result.\n. @param inliers Output vector that contains indices of inliers in objectPoints and imagePoints .\n. @param flags Method for solving a PnP problem (see @ref solvePnP ).\n. \n. The function estimates an object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients. This function finds such\n. a pose that minimizes reprojection error, that is, the sum of squared distances between the observed\n. projections imagePoints and the projected (using @ref projectPoints ) objectPoints. The use of RANSAC\n. makes the function resistant to outliers.\n. \n. @note\n. - An example of how to use solvePNPRansac for object detection can be found at\n. opencv_source_code/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/\n. - The default method used to estimate the camera pose for the Minimal Sample Sets step\n. is #SOLVEPNP_EPNP. Exceptions are:\n. - if you choose #SOLVEPNP_P3P or #SOLVEPNP_AP3P, these methods will be used.\n. - if the number of input points is equal to 4, #SOLVEPNP_P3P is used.\n. - The method used to estimate the camera pose using all the inliers is defined by the\n. flags parameters unless it is equal to #SOLVEPNP_P3P or #SOLVEPNP_AP3P. In this case,\n. the method #SOLVEPNP_EPNP will be used instead.' ... - def solvePnPRefineLM(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=...) -> typing.Any: 'solvePnPRefineLM(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec[, criteria]) -> rvec, tvec\n. @brief Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame\n. to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Input/Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system. Input values are used as an initial solution.\n. @param tvec Input/Output translation vector. Input values are used as an initial solution.\n. @param criteria Criteria when to stop the Levenberg-Marquard iterative algorithm.\n. \n. The function refines the object pose given at least 3 object points, their corresponding image\n. projections, an initial solution for the rotation and translation vector,\n. as well as the camera matrix and the distortion coefficients.\n. The function minimizes the projection error with respect to the rotation and the translation vectors, according\n. to a Levenberg-Marquardt iterative minimization @cite Madsen04 @cite Eade13 process.' ... - def solvePnPRefineVVS(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=..., VVSlambda=...) -> typing.Any: 'solvePnPRefineVVS(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec[, criteria[, VVSlambda]]) -> rvec, tvec\n. @brief Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame\n. to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Input/Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system. Input values are used as an initial solution.\n. @param tvec Input/Output translation vector. Input values are used as an initial solution.\n. @param criteria Criteria when to stop the Levenberg-Marquard iterative algorithm.\n. @param VVSlambda Gain for the virtual visual servoing control law, equivalent to the \\f$\\alpha\\f$\n. gain in the Damped Gauss-Newton formulation.\n. \n. The function refines the object pose given at least 3 object points, their corresponding image\n. projections, an initial solution for the rotation and translation vector,\n. as well as the camera matrix and the distortion coefficients.\n. The function minimizes the projection error with respect to the rotation and the translation vectors, using a\n. virtual visual servoing (VVS) @cite Chaumette06 @cite Marchand16 scheme.' ... - def solvePoly(coeffs, roots=..., maxIters=...) -> typing.Any: 'solvePoly(coeffs[, roots[, maxIters]]) -> retval, roots\n. @brief Finds the real or complex roots of a polynomial equation.\n. \n. The function cv::solvePoly finds real and complex roots of a polynomial equation:\n. \\f[\\texttt{coeffs} [n] x^{n} + \\texttt{coeffs} [n-1] x^{n-1} + ... + \\texttt{coeffs} [1] x + \\texttt{coeffs} [0] = 0\\f]\n. @param coeffs array of polynomial coefficients.\n. @param roots output (complex) array of roots.\n. @param maxIters maximum number of iterations the algorithm does.' ... - -def sort(src: ndarray, flags: int, dts: ndarray = ...) -> typing.Any: +def sort(src: Mat, flags: int, dts: Mat = ...) -> typing.Any: 'sort(src, flags[, dst]) -> dst\n. @brief Sorts each row or each column of a matrix.\n. \n. The function cv::sort sorts each matrix row or each matrix column in\n. ascending or descending order. So you should pass two operation flags to\n. get desired behaviour. If you want to sort matrix rows or columns\n. lexicographically, you can use STL std::sort generic function with the\n. proper comparison predicate.\n. \n. @param src input single-channel array.\n. @param dst output array of the same size and type as src.\n. @param flags operation flags, a combination of #SortFlags\n. @sa sortIdx, randShuffle' ... - -def sortIdx(src: ndarray, flags: int, dts: ndarray = ...) -> typing.Any: +def sortIdx(src: Mat, flags: int, dts: Mat = ...) -> typing.Any: 'sortIdx(src, flags[, dst]) -> dst\n. @brief Sorts each row or each column of a matrix.\n. \n. The function cv::sortIdx sorts each matrix row or each matrix column in the\n. ascending or descending order. So you should pass two operation flags to\n. get desired behaviour. Instead of reordering the elements themselves, it\n. stores the indices of sorted elements in the output array. For example:\n. @code\n. Mat A = Mat::eye(3,3,CV_32F), B;\n. sortIdx(A, B, SORT_EVERY_ROW + SORT_ASCENDING);\n. // B will probably contain\n. // (because of equal elements in A some permutations are possible):\n. // [[1, 2, 0], [0, 2, 1], [0, 1, 2]]\n. @endcode\n. @param src input single-channel array.\n. @param dst output integer array of the same size as src.\n. @param flags operation flags that could be a combination of cv::SortFlags\n. @sa sort, randShuffle' ... - -def spatialGradient(src: ndarray, dx=..., dy=..., ksize=..., borderType=...) -> typing.Any: +def spatialGradient(src: Mat, dx=..., dy=..., ksize=..., borderType=...) -> typing.Any: 'spatialGradient(src[, dx[, dy[, ksize[, borderType]]]]) -> dx, dy\n. @brief Calculates the first order image derivative in both x and y using a Sobel operator\n. \n. Equivalent to calling:\n. \n. @code\n. Sobel( src, dx, CV_16SC1, 1, 0, 3 );\n. Sobel( src, dy, CV_16SC1, 0, 1, 3 );\n. @endcode\n. \n. @param src input image.\n. @param dx output image with first-order derivative in x.\n. @param dy output image with first-order derivative in y.\n. @param ksize size of Sobel kernel. It must be 3.\n. @param borderType pixel extrapolation method, see #BorderTypes.\n. Only #BORDER_DEFAULT=#BORDER_REFLECT_101 and #BORDER_REPLICATE are supported.\n. \n. @sa Sobel' ... - def split(m, mv=...) -> typing.Any: 'split(m[, mv]) -> mv\n. @overload\n. @param m input multi-channel array.\n. @param mv output vector of arrays; the arrays themselves are reallocated, if needed.' ... - -def sqrBoxFilter(src: ndarray, ddepth, ksize, dts: ndarray = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: +def sqrBoxFilter(src: Mat, ddepth, ksize, dts: Mat = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: "sqrBoxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst\n. @brief Calculates the normalized sum of squares of the pixel values overlapping the filter.\n. \n. For every pixel \\f$ (x, y) \\f$ in the source image, the function calculates the sum of squares of those neighboring\n. pixel values which overlap the filter placed over the pixel \\f$ (x, y) \\f$.\n. \n. The unnormalized square box filter can be useful in computing local image statistics such as the the local\n. variance and standard deviation around the neighborhood of a pixel.\n. \n. @param src input image\n. @param dst output image of the same size and type as _src\n. @param ddepth the output image depth (-1 to use src.depth())\n. @param ksize kernel size\n. @param anchor kernel anchor point. The default value of Point(-1, -1) denotes that the anchor is at the kernel\n. center.\n. @param normalize flag, specifying whether the kernel is to be normalized by it's area or not.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa boxFilter" ... - -def sqrt(src: ndarray, dts: ndarray = ...) -> typing.Any: +def sqrt(src: Mat, dts: Mat = ...) -> typing.Any: 'sqrt(src[, dst]) -> dst\n. @brief Calculates a square root of array elements.\n. \n. The function cv::sqrt calculates a square root of each input array element.\n. In case of multi-channel arrays, each channel is processed\n. independently. The accuracy is approximately the same as of the built-in\n. std::sqrt .\n. @param src input floating-point array.\n. @param dst output array of the same size and type as src.' ... - def startWindowThread() -> typing.Any: 'startWindowThread() -> retval\n.' ... - def stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R=..., T=..., E=..., F=..., flags: int = ..., criteria=...) -> typing.Any: 'stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize[, R[, T[, E[, F[, flags[, criteria]]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F\n.' ... - def stereoCalibrateExtended(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, E=..., F=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: "stereoCalibrateExtended(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T[, E[, F[, perViewErrors[, flags[, criteria]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F, perViewErrors\n. @brief Calibrates a stereo camera set up. This function finds the intrinsic parameters\n. for each of the two cameras and the extrinsic parameters between the two cameras.\n. \n. @param objectPoints Vector of vectors of the calibration pattern points. The same structure as\n. in @ref calibrateCamera. For each pattern view, both cameras need to see the same object\n. points. Therefore, objectPoints.size(), imagePoints1.size(), and imagePoints2.size() need to be\n. equal as well as objectPoints[i].size(), imagePoints1[i].size(), and imagePoints2[i].size() need to\n. be equal for each i.\n. @param imagePoints1 Vector of vectors of the projections of the calibration pattern points,\n. observed by the first camera. The same structure as in @ref calibrateCamera.\n. @param imagePoints2 Vector of vectors of the projections of the calibration pattern points,\n. observed by the second camera. The same structure as in @ref calibrateCamera.\n. @param cameraMatrix1 Input/output camera matrix for the first camera, the same as in\n. @ref calibrateCamera. Furthermore, for the stereo case, additional flags may be used, see below.\n. @param distCoeffs1 Input/output vector of distortion coefficients, the same as in\n. @ref calibrateCamera.\n. @param cameraMatrix2 Input/output second camera matrix for the second camera. See description for\n. cameraMatrix1.\n. @param distCoeffs2 Input/output lens distortion coefficients for the second camera. See\n. description for distCoeffs1.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrices.\n. @param R Output rotation matrix. Together with the translation vector T, this matrix brings\n. points given in the first camera's coordinate system to points in the second camera's\n. coordinate system. In more technical terms, the tuple of R and T performs a change of basis\n. from the first camera's coordinate system to the second camera's coordinate system. Due to its\n. duality, this tuple is equivalent to the position of the first camera with respect to the\n. second camera coordinate system.\n. @param T Output translation vector, see description above.\n. @param E Output essential matrix.\n. @param F Output fundamental matrix.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of the following values:\n. - **CALIB_FIX_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E, and F\n. matrices are estimated.\n. - **CALIB_USE_INTRINSIC_GUESS** Optimize some or all of the intrinsic parameters\n. according to the specified flags. Initial values are provided by the user.\n. - **CALIB_USE_EXTRINSIC_GUESS** R and T contain valid initial values that are optimized further.\n. Otherwise R and T are initialized to the median value of the pattern views (each dimension separately).\n. - **CALIB_FIX_PRINCIPAL_POINT** Fix the principal points during the optimization.\n. - **CALIB_FIX_FOCAL_LENGTH** Fix \\f$f^{(j)}_x\\f$ and \\f$f^{(j)}_y\\f$ .\n. - **CALIB_FIX_ASPECT_RATIO** Optimize \\f$f^{(j)}_y\\f$ . Fix the ratio \\f$f^{(j)}_x/f^{(j)}_y\\f$\n. .\n. - **CALIB_SAME_FOCAL_LENGTH** Enforce \\f$f^{(0)}_x=f^{(1)}_x\\f$ and \\f$f^{(0)}_y=f^{(1)}_y\\f$ .\n. - **CALIB_ZERO_TANGENT_DIST** Set tangential distortion coefficients for each camera to\n. zeros and fix there.\n. - **CALIB_FIX_K1,...,CALIB_FIX_K6** Do not change the corresponding radial\n. distortion coefficient during the optimization. If CALIB_USE_INTRINSIC_GUESS is set,\n. the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_RATIONAL_MODEL** Enable coefficients k4, k5, and k6. To provide the backward\n. compatibility, this extra flag should be explicitly specified to make the calibration\n. function use the rational model and return 8 coefficients. If the flag is not set, the\n. function computes and returns only 5 distortion coefficients.\n. - **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the thin prism model and return 12 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the tilted sensor model and return 14 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. The function estimates the transformation between two cameras making a stereo pair. If one computes\n. the poses of an object relative to the first camera and to the second camera,\n. ( \\f$R_1\\f$,\\f$T_1\\f$ ) and (\\f$R_2\\f$,\\f$T_2\\f$), respectively, for a stereo camera where the\n. relative position and orientation between the two cameras are fixed, then those poses definitely\n. relate to each other. This means, if the relative position and orientation (\\f$R\\f$,\\f$T\\f$) of the\n. two cameras is known, it is possible to compute (\\f$R_2\\f$,\\f$T_2\\f$) when (\\f$R_1\\f$,\\f$T_1\\f$) is\n. given. This is what the described function does. It computes (\\f$R\\f$,\\f$T\\f$) such that:\n. \n. \\f[R_2=R R_1\\f]\n. \\f[T_2=R T_1 + T.\\f]\n. \n. Therefore, one can compute the coordinate representation of a 3D point for the second camera's\n. coordinate system when given the point's coordinate representation in the first camera's coordinate\n. system:\n. \n. \\f[\\begin{bmatrix}\n. X_2 \\\\\n. Y_2 \\\\\n. Z_2 \\\\\n. 1\n. \\end{bmatrix} = \\begin{bmatrix}\n. R & T \\\\\n. 0 & 1\n. \\end{bmatrix} \\begin{bmatrix}\n. X_1 \\\\\n. Y_1 \\\\\n. Z_1 \\\\\n. 1\n. \\end{bmatrix}.\\f]\n. \n. \n. Optionally, it computes the essential matrix E:\n. \n. \\f[E= \\vecthreethree{0}{-T_2}{T_1}{T_2}{0}{-T_0}{-T_1}{T_0}{0} R\\f]\n. \n. where \\f$T_i\\f$ are components of the translation vector \\f$T\\f$ : \\f$T=[T_0, T_1, T_2]^T\\f$ .\n. And the function can also compute the fundamental matrix F:\n. \n. \\f[F = cameraMatrix2^{-T}\\cdot E \\cdot cameraMatrix1^{-1}\\f]\n. \n. Besides the stereo-related information, the function can also perform a full calibration of each of\n. the two cameras. However, due to the high dimensionality of the parameter space and noise in the\n. input data, the function can diverge from the correct solution. If the intrinsic parameters can be\n. estimated with high accuracy for each of the cameras individually (for example, using\n. calibrateCamera ), you are recommended to do so and then pass CALIB_FIX_INTRINSIC flag to the\n. function along with the computed intrinsic parameters. Otherwise, if all the parameters are\n. estimated at once, it makes sense to restrict some parameters, for example, pass\n. CALIB_SAME_FOCAL_LENGTH and CALIB_ZERO_TANGENT_DIST flags, which is usually a\n. reasonable assumption.\n. \n. Similarly to calibrateCamera, the function minimizes the total re-projection error for all the\n. points in all the available views from both cameras. The function returns the final value of the\n. re-projection error." ... - def stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, R1=..., R2=..., P1=..., P2=..., Q=..., flags: int = ..., alpha=..., newImageSize=...) -> typing.Any: 'stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T[, R1[, R2[, P1[, P2[, Q[, flags[, alpha[, newImageSize]]]]]]]]) -> R1, R2, P1, P2, Q, validPixROI1, validPixROI2\n. @brief Computes rectification transforms for each head of a calibrated stereo camera.\n. \n. @param cameraMatrix1 First camera matrix.\n. @param distCoeffs1 First camera distortion parameters.\n. @param cameraMatrix2 Second camera matrix.\n. @param distCoeffs2 Second camera distortion parameters.\n. @param imageSize Size of the image used for stereo calibration.\n. @param R Rotation matrix from the coordinate system of the first camera to the second camera,\n. see @ref stereoCalibrate.\n. @param T Translation vector from the coordinate system of the first camera to the second camera,\n. see @ref stereoCalibrate.\n. @param R1 Output 3x3 rectification transform (rotation matrix) for the first camera. This matrix\n. brings points given in the unrectified first camera\'s coordinate system to points in the rectified\n. first camera\'s coordinate system. In more technical terms, it performs a change of basis from the\n. unrectified first camera\'s coordinate system to the rectified first camera\'s coordinate system.\n. @param R2 Output 3x3 rectification transform (rotation matrix) for the second camera. This matrix\n. brings points given in the unrectified second camera\'s coordinate system to points in the rectified\n. second camera\'s coordinate system. In more technical terms, it performs a change of basis from the\n. unrectified second camera\'s coordinate system to the rectified second camera\'s coordinate system.\n. @param P1 Output 3x4 projection matrix in the new (rectified) coordinate systems for the first\n. camera, i.e. it projects points given in the rectified first camera coordinate system into the\n. rectified first camera\'s image.\n. @param P2 Output 3x4 projection matrix in the new (rectified) coordinate systems for the second\n. camera, i.e. it projects points given in the rectified first camera coordinate system into the\n. rectified second camera\'s image.\n. @param Q Output \\f$4 \\times 4\\f$ disparity-to-depth mapping matrix (see @ref reprojectImageTo3D).\n. @param flags Operation flags that may be zero or CALIB_ZERO_DISPARITY . If the flag is set,\n. the function makes the principal points of each camera have the same pixel coordinates in the\n. rectified views. And if the flag is not set, the function may still shift the images in the\n. horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the\n. useful image area.\n. @param alpha Free scaling parameter. If it is -1 or absent, the function performs the default\n. scaling. Otherwise, the parameter should be between 0 and 1. alpha=0 means that the rectified\n. images are zoomed and shifted so that only valid pixels are visible (no black areas after\n. rectification). alpha=1 means that the rectified image is decimated and shifted so that all the\n. pixels from the original images from the cameras are retained in the rectified images (no source\n. image pixels are lost). Any intermediate value yields an intermediate result between\n. those two extreme cases.\n. @param newImageSize New image resolution after rectification. The same size should be passed to\n. initUndistortRectifyMap (see the stereo_calib.cpp sample in OpenCV samples directory). When (0,0)\n. is passed (default), it is set to the original imageSize . Setting it to a larger value can help you\n. preserve details in the original image, especially when there is a big radial distortion.\n. @param validPixROI1 Optional output rectangles inside the rectified images where all the pixels\n. are valid. If alpha=0 , the ROIs cover the whole images. Otherwise, they are likely to be smaller\n. (see the picture below).\n. @param validPixROI2 Optional output rectangles inside the rectified images where all the pixels\n. are valid. If alpha=0 , the ROIs cover the whole images. Otherwise, they are likely to be smaller\n. (see the picture below).\n. \n. The function computes the rotation matrices for each camera that (virtually) make both camera image\n. planes the same plane. Consequently, this makes all the epipolar lines parallel and thus simplifies\n. the dense stereo correspondence problem. The function takes the matrices computed by stereoCalibrate\n. as input. As output, it provides two rotation matrices and also two projection matrices in the new\n. coordinates. The function distinguishes the following two cases:\n. \n. - **Horizontal stereo**: the first and the second camera views are shifted relative to each other\n. mainly along the x-axis (with possible small vertical shift). In the rectified images, the\n. corresponding epipolar lines in the left and right cameras are horizontal and have the same\n. y-coordinate. P1 and P2 look like:\n. \n. \\f[\\texttt{P1} = \\begin{bmatrix}\n. f & 0 & cx_1 & 0 \\\\\n. 0 & f & cy & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\\f]\n. \n. \\f[\\texttt{P2} = \\begin{bmatrix}\n. f & 0 & cx_2 & T_x*f \\\\\n. 0 & f & cy & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix} ,\\f]\n. \n. where \\f$T_x\\f$ is a horizontal shift between the cameras and \\f$cx_1=cx_2\\f$ if\n. CALIB_ZERO_DISPARITY is set.\n. \n. - **Vertical stereo**: the first and the second camera views are shifted relative to each other\n. mainly in the vertical direction (and probably a bit in the horizontal direction too). The epipolar\n. lines in the rectified images are vertical and have the same x-coordinate. P1 and P2 look like:\n. \n. \\f[\\texttt{P1} = \\begin{bmatrix}\n. f & 0 & cx & 0 \\\\\n. 0 & f & cy_1 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\\f]\n. \n. \\f[\\texttt{P2} = \\begin{bmatrix}\n. f & 0 & cx & 0 \\\\\n. 0 & f & cy_2 & T_y*f \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix},\\f]\n. \n. where \\f$T_y\\f$ is a vertical shift between the cameras and \\f$cy_1=cy_2\\f$ if\n. CALIB_ZERO_DISPARITY is set.\n. \n. As you can see, the first three columns of P1 and P2 will effectively be the new "rectified" camera\n. matrices. The matrices, together with R1 and R2 , can then be passed to initUndistortRectifyMap to\n. initialize the rectification map for each camera.\n. \n. See below the screenshot from the stereo_calib.cpp sample. Some red horizontal lines pass through\n. the corresponding image regions. This means that the images are well rectified, which is what most\n. stereo correspondence algorithms rely on. The green rectangles are roi1 and roi2 . You see that\n. their interiors are all valid pixels.\n. \n. ![image](pics/stereo_undistort.jpg)' ... - def stereoRectifyUncalibrated(points1, points2, F, imgSize, H1=..., H2=..., threshold=...) -> typing.Any: 'stereoRectifyUncalibrated(points1, points2, F, imgSize[, H1[, H2[, threshold]]]) -> retval, H1, H2\n. @brief Computes a rectification transform for an uncalibrated stereo camera.\n. \n. @param points1 Array of feature points in the first image.\n. @param points2 The corresponding points in the second image. The same formats as in\n. findFundamentalMat are supported.\n. @param F Input fundamental matrix. It can be computed from the same set of point pairs using\n. findFundamentalMat .\n. @param imgSize Size of the image.\n. @param H1 Output rectification homography matrix for the first image.\n. @param H2 Output rectification homography matrix for the second image.\n. @param threshold Optional threshold used to filter out the outliers. If the parameter is greater\n. than zero, all the point pairs that do not comply with the epipolar geometry (that is, the points\n. for which \\f$|\\texttt{points2[i]}^T*\\texttt{F}*\\texttt{points1[i]}|>\\texttt{threshold}\\f$ ) are\n. rejected prior to computing the homographies. Otherwise, all the points are considered inliers.\n. \n. The function computes the rectification transformations without knowing intrinsic parameters of the\n. cameras and their relative position in the space, which explains the suffix "uncalibrated". Another\n. related difference from stereoRectify is that the function outputs not the rectification\n. transformations in the object (3D) space, but the planar perspective transformations encoded by the\n. homography matrices H1 and H2 . The function implements the algorithm @cite Hartley99 .\n. \n. @note\n. While the algorithm does not need to know the intrinsic parameters of the cameras, it heavily\n. depends on the epipolar geometry. Therefore, if the camera lenses have a significant distortion,\n. it would be better to correct it before computing the fundamental matrix and calling this\n. function. For example, distortion coefficients can be estimated for each head of stereo camera\n. separately by using calibrateCamera . Then, the images can be corrected using undistort , or\n. just the point coordinates can be corrected with undistortPoints .' ... - -def stylization(src: ndarray, dts: ndarray = ..., sigma_s=..., sigma_r=...) -> typing.Any: +def stylization(src: Mat, dts: Mat = ..., sigma_s=..., sigma_r=...) -> typing.Any: 'stylization(src[, dst[, sigma_s[, sigma_r]]]) -> dst\n. @brief Stylization aims to produce digital imagery with a wide variety of effects not focused on\n. photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low\n. contrast while preserving, or enhancing, high-contrast features.\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' ... - -def subtract(src1: ndarray, src2: ndarray, dts: ndarray = ..., mask: ndarray = ..., dtype=...) -> typing.Any: +def subtract(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ..., dtype=...) -> typing.Any: 'subtract(src1, src2[, dst[, mask[, dtype]]]) -> dst\n. @brief Calculates the per-element difference between two arrays or array and a scalar.\n. \n. The function subtract calculates:\n. - Difference between two arrays, when both input arrays have the same size and the same number of\n. channels:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) - \\texttt{src2}(I)) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Difference between an array and a scalar, when src2 is constructed from Scalar or has the same\n. number of elements as `src1.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) - \\texttt{src2} ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Difference between a scalar and an array, when src1 is constructed from Scalar or has the same\n. number of elements as `src2.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1} - \\texttt{src2}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - The reverse difference between a scalar and an array in the case of `SubRS`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src2} - \\texttt{src1}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. \n. The first function in the list above can be replaced with matrix expressions:\n. @code{.cpp}\n. dst = src1 - src2;\n. dst -= src1; // equivalent to subtract(dst, src1, dst);\n. @endcode\n. The input arrays and the output array can all have the same or different depths. For example, you\n. can subtract to 8-bit unsigned arrays and store the difference in a 16-bit signed array. Depth of\n. the output array is determined by dtype parameter. In the second and third cases above, as well as\n. in the first case, when src1.depth() == src2.depth(), dtype can be set to the default -1. In this\n. case the output array will have the same depth as the input array, be it src1, src2 or both.\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array of the same size and the same number of channels as the input array.\n. @param mask optional operation mask; this is an 8-bit single channel array that specifies elements\n. of the output array to be changed.\n. @param dtype optional depth of the output array\n. @sa add, addWeighted, scaleAdd, Mat::convertTo' ... - def sumElems(src) -> typing.Any: 'sumElems(src) -> retval\n. @brief Calculates the sum of array elements.\n. \n. The function cv::sum calculates and returns the sum of array elements,\n. independently for each channel.\n. @param src input array that must have from 1 to 4 channels.\n. @sa countNonZero, mean, meanStdDev, norm, minMaxLoc, reduce' ... - -def textureFlattening(src: ndarray, mask: ndarray, dts: ndarray = ..., low_threshold=..., high_threshold=..., kernel_size=...) -> typing.Any: +def textureFlattening(src: Mat, mask: Mat, dts: Mat = ..., low_threshold=..., high_threshold=..., kernel_size=...) -> typing.Any: "textureFlattening(src, mask[, dst[, low_threshold[, high_threshold[, kernel_size]]]]) -> dst\n. @brief By retaining only the gradients at edge locations, before integrating with the Poisson solver, one\n. washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param low_threshold %Range from 0 to 100.\n. @param high_threshold Value \\> 100.\n. @param kernel_size The size of the Sobel kernel to be used.\n. \n. @note\n. The algorithm assumes that the color of the source image is close to that of the destination. This\n. assumption means that when the colors don't match, the source image color gets tinted toward the\n. color of the destination image." ... - -def threshold(src: ndarray, thresh, maxval, type, dts: ndarray = ...) -> typing.Any: +def threshold(src: Mat, thresh, maxval, type, dts: Mat = ...) -> typing.Any: "threshold(src, thresh, maxval, type[, dst]) -> retval, dst\n. @brief Applies a fixed-level threshold to each array element.\n. \n. The function applies fixed-level thresholding to a multiple-channel array. The function is typically\n. used to get a bi-level (binary) image out of a grayscale image ( #compare could be also used for\n. this purpose) or for removing a noise, that is, filtering out pixels with too small or too large\n. values. There are several types of thresholding supported by the function. They are determined by\n. type parameter.\n. \n. Also, the special values #THRESH_OTSU or #THRESH_TRIANGLE may be combined with one of the\n. above values. In these cases, the function determines the optimal threshold value using the Otsu's\n. or Triangle algorithm and uses it instead of the specified thresh.\n. \n. @note Currently, the Otsu's and Triangle methods are implemented only for 8-bit single-channel images.\n. \n. @param src input array (multiple-channel, 8-bit or 32-bit floating point).\n. @param dst output array of the same size and type and the same number of channels as src.\n. @param thresh threshold value.\n. @param maxval maximum value to use with the #THRESH_BINARY and #THRESH_BINARY_INV thresholding\n. types.\n. @param type thresholding type (see #ThresholdTypes).\n. @return the computed threshold value if Otsu's or Triangle methods used.\n. \n. @sa adaptiveThreshold, findContours, compare, min, max" ... - def trace(mtx) -> typing.Any: 'trace(mtx) -> retval\n. @brief Returns the trace of a matrix.\n. \n. The function cv::trace returns the sum of the diagonal elements of the\n. matrix mtx .\n. \\f[\\mathrm{tr} ( \\texttt{mtx} ) = \\sum _i \\texttt{mtx} (i,i)\\f]\n. @param mtx input matrix.' ... - -def transform(src: ndarray, m, dts: ndarray = ...) -> typing.Any: +def transform(src: Mat, m, dts: Mat = ...) -> typing.Any: 'transform(src, m[, dst]) -> dst\n. @brief Performs the matrix transformation of every array element.\n. \n. The function cv::transform performs the matrix transformation of every\n. element of the array src and stores the results in dst :\n. \\f[\\texttt{dst} (I) = \\texttt{m} \\cdot \\texttt{src} (I)\\f]\n. (when m.cols=src.channels() ), or\n. \\f[\\texttt{dst} (I) = \\texttt{m} \\cdot [ \\texttt{src} (I); 1]\\f]\n. (when m.cols=src.channels()+1 )\n. \n. Every element of the N -channel array src is interpreted as N -element\n. vector that is transformed using the M x N or M x (N+1) matrix m to\n. M-element vector - the corresponding element of the output array dst .\n. \n. The function may be used for geometrical transformation of\n. N -dimensional points, arbitrary linear color space transformation (such\n. as various kinds of RGB to YUV transforms), shuffling the image\n. channels, and so forth.\n. @param src input array that must have as many channels (1 to 4) as\n. m.cols or m.cols-1.\n. @param dst output array of the same size and depth as src; it has as\n. many channels as m.rows.\n. @param m transformation 2x2 or 2x3 floating-point matrix.\n. @sa perspectiveTransform, getAffineTransform, estimateAffine2D, warpAffine, warpPerspective' ... - -def transpose(src: ndarray, dts: ndarray = ...) -> typing.Any: +def transpose(src: Mat, dts: Mat = ...) -> typing.Any: 'transpose(src[, dst]) -> dst\n. @brief Transposes a matrix.\n. \n. The function cv::transpose transposes the matrix src :\n. \\f[\\texttt{dst} (i,j) = \\texttt{src} (j,i)\\f]\n. @note No complex conjugation is done in case of a complex matrix. It\n. should be done separately if needed.\n. @param src input array.\n. @param dst output array of the same type as src.' ... - def triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D=...) -> typing.Any: "triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2[, points4D]) -> points4D\n. @brief This function reconstructs 3-dimensional points (in homogeneous coordinates) by using\n. their observations with a stereo camera.\n. \n. @param projMatr1 3x4 projection matrix of the first camera, i.e. this matrix projects 3D points\n. given in the world's coordinate system into the first image.\n. @param projMatr2 3x4 projection matrix of the second camera, i.e. this matrix projects 3D points\n. given in the world's coordinate system into the second image.\n. @param projPoints1 2xN array of feature points in the first image. In the case of the c++ version,\n. it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.\n. @param projPoints2 2xN array of corresponding points in the second image. In the case of the c++\n. version, it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.\n. @param points4D 4xN array of reconstructed points in homogeneous coordinates. These points are\n. returned in the world's coordinate system.\n. \n. @note\n. Keep in mind that all input data should be of float type in order for this function to work.\n. \n. @note\n. If the projection matrices from @ref stereoRectify are used, then the returned points are\n. represented in the first camera's rectified coordinate system.\n. \n. @sa\n. reprojectImageTo3D" ... - -def undistort(src: ndarray, cameraMatrix, distCoeffs, dts: ndarray = ..., newCameraMatrix=...) -> typing.Any: +def undistort(src: Mat, cameraMatrix, distCoeffs, dts: Mat = ..., newCameraMatrix=...) -> typing.Any: 'undistort(src, cameraMatrix, distCoeffs[, dst[, newCameraMatrix]]) -> dst\n. @brief Transforms an image to compensate for lens distortion.\n. \n. The function transforms an image to compensate radial and tangential lens distortion.\n. \n. The function is simply a combination of #initUndistortRectifyMap (with unity R ) and #remap\n. (with bilinear interpolation). See the former function for details of the transformation being\n. performed.\n. \n. Those pixels in the destination image, for which there is no correspondent pixels in the source\n. image, are filled with zeros (black color).\n. \n. A particular subset of the source image that will be visible in the corrected image can be regulated\n. by newCameraMatrix. You can use #getOptimalNewCameraMatrix to compute the appropriate\n. newCameraMatrix depending on your requirements.\n. \n. The camera matrix and the distortion parameters can be determined using #calibrateCamera. If\n. the resolution of images is different from the resolution used at the calibration stage, \\f$f_x,\n. f_y, c_x\\f$ and \\f$c_y\\f$ need to be scaled accordingly, while the distortion coefficients remain\n. the same.\n. \n. @param src Input (distorted) image.\n. @param dst Output (corrected) image that has the same size and type as src .\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param newCameraMatrix Camera matrix of the distorted image. By default, it is the same as\n. cameraMatrix but you may additionally scale and shift the result by using a different matrix.' ... - -def undistortPoints(src: ndarray, cameraMatrix, distCoeffs, dts: ndarray = ..., R=..., P=...) -> typing.Any: +def undistortPoints(src: Mat, cameraMatrix, distCoeffs, dts: Mat = ..., R=..., P=...) -> typing.Any: 'undistortPoints(src, cameraMatrix, distCoeffs[, dst[, R[, P]]]) -> dst\n. @brief Computes the ideal point coordinates from the observed point coordinates.\n. \n. The function is similar to #undistort and #initUndistortRectifyMap but it operates on a\n. sparse set of points instead of a raster image. Also the function performs a reverse transformation\n. to projectPoints. In case of a 3D object, it does not reconstruct its 3D coordinates, but for a\n. planar object, it does, up to a translation vector, if the proper R is specified.\n. \n. For each observed point coordinate \\f$(u, v)\\f$ the function computes:\n. \\f[\n. \\begin{array}{l}\n. x^{"} \\leftarrow (u - c_x)/f_x \\\\\n. y^{"} \\leftarrow (v - c_y)/f_y \\\\\n. (x\',y\') = undistort(x^{"},y^{"}, \\texttt{distCoeffs}) \\\\\n. {[X\\,Y\\,W]} ^T \\leftarrow R*[x\' \\, y\' \\, 1]^T \\\\\n. x \\leftarrow X/W \\\\\n. y \\leftarrow Y/W \\\\\n. \\text{only performed if P is specified:} \\\\\n. u\' \\leftarrow x {f\'}_x + {c\'}_x \\\\\n. v\' \\leftarrow y {f\'}_y + {c\'}_y\n. \\end{array}\n. \\f]\n. \n. where *undistort* is an approximate iterative algorithm that estimates the normalized original\n. point coordinates out of the normalized distorted point coordinates ("normalized" means that the\n. coordinates do not depend on the camera matrix).\n. \n. The function can be used for both a stereo camera head or a monocular camera (when R is empty).\n. @param src Observed point coordinates, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel (CV_32FC2 or CV_64FC2) (or\n. vector\\ ).\n. @param dst Output ideal point coordinates (1xN/Nx1 2-channel or vector\\ ) after undistortion and reverse perspective\n. transformation. If matrix P is identity or omitted, dst will contain normalized point coordinates.\n. @param cameraMatrix Camera matrix \\f$\\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param R Rectification transformation in the object space (3x3 matrix). R1 or R2 computed by\n. #stereoRectify can be passed here. If the matrix is empty, the identity transformation is used.\n. @param P New camera matrix (3x3) or new projection matrix (3x4) \\f$\\begin{bmatrix} {f\'}_x & 0 & {c\'}_x & t_x \\\\ 0 & {f\'}_y & {c\'}_y & t_y \\\\ 0 & 0 & 1 & t_z \\end{bmatrix}\\f$. P1 or P2 computed by\n. #stereoRectify can be passed here. If the matrix is empty, the identity new camera matrix is used.' ... - -def undistortPointsIter(src: ndarray, cameraMatrix, distCoeffs, R, P, criteria, dts: ndarray = ...) -> typing.Any: +def undistortPointsIter(src: Mat, cameraMatrix, distCoeffs, R, P, criteria, dts: Mat = ...) -> typing.Any: 'undistortPointsIter(src, cameraMatrix, distCoeffs, R, P, criteria[, dst]) -> dst\n. @overload\n. @note Default version of #undistortPoints does 5 iterations to compute undistorted points.' ... - def useOpenVX() -> typing.Any: 'useOpenVX() -> retval\n.' ... - def useOptimized() -> typing.Any: 'useOptimized() -> retval\n. @brief Returns the status of optimized code usage.\n. \n. The function returns true if the optimized code is enabled. Otherwise, it returns false.' ... - def validateDisparity(disparity, cost, minDisparity, numberOfDisparities, disp12MaxDisp=...) -> typing.Any: 'validateDisparity(disparity, cost, minDisparity, numberOfDisparities[, disp12MaxDisp]) -> disparity\n.' ... - -def vconcat(src: ndarray, dts: ndarray = ...) -> typing.Any: +def vconcat(src: Mat, dts: Mat = ...) -> typing.Any: 'vconcat(src[, dst]) -> dst\n. @overload\n. @code{.cpp}\n. std::vector matrices = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)),\n. cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)),\n. cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),};\n. \n. cv::Mat out;\n. cv::vconcat( matrices, out );\n. //out:\n. //[1, 1, 1, 1;\n. // 2, 2, 2, 2;\n. // 3, 3, 3, 3]\n. @endcode\n. @param src input array or vector of matrices. all of the matrices must have the same number of cols and the same depth\n. @param dst output array. It has the same number of cols and depth as the src, and the sum of rows of the src.\n. same depth.' ... - def waitKey(delay=...) -> typing.Any: 'waitKey([, delay]) -> retval\n. @brief Waits for a pressed key.\n. \n. The function waitKey waits for a key event infinitely (when \\f$\\texttt{delay}\\leq 0\\f$ ) or for delay\n. milliseconds, when it is positive. Since the OS has a minimum time between switching threads, the\n. function will not wait exactly delay ms, it will wait at least delay ms, depending on what else is\n. running on your computer at that time. It returns the code of the pressed key or -1 if no key was\n. pressed before the specified time had elapsed.\n. \n. @note\n. \n. This function is the only method in HighGUI that can fetch and handle events, so it needs to be\n. called periodically for normal event processing unless HighGUI is used within an environment that\n. takes care of event processing.\n. \n. @note\n. \n. The function only works if there is at least one HighGUI window created and the window is active.\n. If there are several HighGUI windows, any of them can be active.\n. \n. @param delay Delay in milliseconds. 0 is the special value that means "forever".' ... - def waitKeyEx(delay=...) -> typing.Any: 'waitKeyEx([, delay]) -> retval\n. @brief Similar to #waitKey, but returns full key code.\n. \n. @note\n. \n. Key code is implementation specific and depends on used backend: QT/GTK/Win32/etc' ... - -def warpAffine(src: ndarray, M, dsize: typing.Tuple[int, int], dts: ndarray = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: +def warpAffine(src: Mat, M, dsize: typing.Tuple[int, int], dts: Mat = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: 'warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst\n. @brief Applies an affine transformation to an image.\n. \n. The function warpAffine transforms the source image using the specified matrix:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} ( \\texttt{M} _{11} x + \\texttt{M} _{12} y + \\texttt{M} _{13}, \\texttt{M} _{21} x + \\texttt{M} _{22} y + \\texttt{M} _{23})\\f]\n. \n. when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted\n. with #invertAffineTransform and then put in the formula above instead of M. The function cannot\n. operate in-place.\n. \n. @param src input image.\n. @param dst output image that has the size dsize and the same type as src .\n. @param M \\f$2\\times 3\\f$ transformation matrix.\n. @param dsize size of the output image.\n. @param flags combination of interpolation methods (see #InterpolationFlags) and the optional\n. flag #WARP_INVERSE_MAP that means that M is the inverse transformation (\n. \\f$\\texttt{dst}\\rightarrow\\texttt{src}\\f$ ).\n. @param borderMode pixel extrapolation method (see #BorderTypes); when\n. borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image corresponding to\n. the "outliers" in the source image are not modified by the function.\n. @param borderValue value used in case of a constant border; by default, it is 0.\n. \n. @sa warpPerspective, resize, remap, getRectSubPix, transform' ... - -def warpPerspective(src: ndarray, M, dsize: typing.Tuple[int, int], dts: ndarray = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: +def warpPerspective(src: Mat, M, dsize: typing.Tuple[int, int], dts: Mat = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: 'warpPerspective(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst\n. @brief Applies a perspective transformation to an image.\n. \n. The function warpPerspective transforms the source image using the specified matrix:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} \\left ( \\frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} ,\n. \\frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \\right )\\f]\n. \n. when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted with invert\n. and then put in the formula above instead of M. The function cannot operate in-place.\n. \n. @param src input image.\n. @param dst output image that has the size dsize and the same type as src .\n. @param M \\f$3\\times 3\\f$ transformation matrix.\n. @param dsize size of the output image.\n. @param flags combination of interpolation methods (#INTER_LINEAR or #INTER_NEAREST) and the\n. optional flag #WARP_INVERSE_MAP, that sets M as the inverse transformation (\n. \\f$\\texttt{dst}\\rightarrow\\texttt{src}\\f$ ).\n. @param borderMode pixel extrapolation method (#BORDER_CONSTANT or #BORDER_REPLICATE).\n. @param borderValue value used in case of a constant border; by default, it equals 0.\n. \n. @sa warpAffine, resize, remap, getRectSubPix, perspectiveTransform' ... - -def warpPolar(src: ndarray, dsize: typing.Tuple[int, int], center, maxRadius, flags: int, dts: ndarray = ...) -> typing.Any: +def warpPolar(src: Mat, dsize: typing.Tuple[int, int], center, maxRadius, flags: int, dts: Mat = ...) -> typing.Any: 'warpPolar(src, dsize: typing.Tuple[int, int], center, maxRadius, flags[, dst]) -> dst\n. \\brief Remaps an image to polar or semilog-polar coordinates space\n. \n. @anchor polar_remaps_reference_image\n. ![Polar remaps reference](pics/polar_remap_doc.png)\n. \n. Transform the source image using the following transformation:\n. \\f[\n. dst(\\rho , \\phi ) = src(x,y)\n. \\f]\n. \n. where\n. \\f[\n. \\begin{array}{l}\n. \\vec{I} = (x - center.x, \\;y - center.y) \\\\\n. \\phi = Kangle \\cdot \\texttt{angle} (\\vec{I}) \\\\\n. \\rho = \\left\\{\\begin{matrix}\n. Klin \\cdot \\texttt{magnitude} (\\vec{I}) & default \\\\\n. Klog \\cdot log_e(\\texttt{magnitude} (\\vec{I})) & if \\; semilog \\\\\n. \\end{matrix}\\right.\n. \\end{array}\n. \\f]\n. \n. and\n. \\f[\n. \\begin{array}{l}\n. Kangle = dsize.height / 2\\Pi \\\\\n. Klin = dsize.width / maxRadius \\\\\n. Klog = dsize.width / log_e(maxRadius) \\\\\n. \\end{array}\n. \\f]\n. \n. \n. \\par Linear vs semilog mapping\n. \n. Polar mapping can be linear or semi-log. Add one of #WarpPolarMode to `flags` to specify the polar mapping mode.\n. \n. Linear is the default mode.\n. \n. The semilog mapping emulates the human "foveal" vision that permit very high acuity on the line of sight (central vision)\n. in contrast to peripheral vision where acuity is minor.\n. \n. \\par Option on `dsize`:\n. \n. - if both values in `dsize <=0 ` (default),\n. the destination image will have (almost) same area of source bounding circle:\n. \\f[\\begin{array}{l}\n. dsize.area \\leftarrow (maxRadius^2 \\cdot \\Pi) \\\\\n. dsize.width = \\texttt{cvRound}(maxRadius) \\\\\n. dsize.height = \\texttt{cvRound}(maxRadius \\cdot \\Pi) \\\\\n. \\end{array}\\f]\n. \n. \n. - if only `dsize.height <= 0`,\n. the destination image area will be proportional to the bounding circle area but scaled by `Kx * Kx`:\n. \\f[\\begin{array}{l}\n. dsize.height = \\texttt{cvRound}(dsize.width \\cdot \\Pi) \\\\\n. \\end{array}\n. \\f]\n. \n. - if both values in `dsize > 0 `,\n. the destination image will have the given size therefore the area of the bounding circle will be scaled to `dsize`.\n. \n. \n. \\par Reverse mapping\n. \n. You can get reverse mapping adding #WARP_INVERSE_MAP to `flags`\n. \\snippet polar_transforms.cpp InverseMap\n. \n. In addiction, to calculate the original coordinate from a polar mapped coordinate \\f$(rho, phi)->(x, y)\\f$:\n. \\snippet polar_transforms.cpp InverseCoordinate\n. \n. @param src Source image.\n. @param dst Destination image. It will have same type as src.\n. @param dsize The destination image size (see description for valid options).\n. @param center The transformation center.\n. @param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.\n. @param flags A combination of interpolation methods, #InterpolationFlags + #WarpPolarMode.\n. - Add #WARP_POLAR_LINEAR to select linear polar mapping (default)\n. - Add #WARP_POLAR_LOG to select semilog polar mapping\n. - Add #WARP_INVERSE_MAP for reverse mapping.\n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. - This function uses #remap. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.\n. \n. @sa cv::remap' ... - -def watershed(image: ndarray, markers) -> typing.Any: +def watershed(image: Mat, markers) -> typing.Any: 'watershed(image, markers) -> markers\n. @brief Performs a marker-based image segmentation using the watershed algorithm.\n. \n. The function implements one of the variants of watershed, non-parametric marker-based segmentation\n. algorithm, described in @cite Meyer92 .\n. \n. Before passing the image to the function, you have to roughly outline the desired regions in the\n. image markers with positive (\\>0) indices. So, every region is represented as one or more connected\n. components with the pixel values 1, 2, 3, and so on. Such markers can be retrieved from a binary\n. mask using #findContours and #drawContours (see the watershed.cpp demo). The markers are "seeds" of\n. the future image regions. All the other pixels in markers , whose relation to the outlined regions\n. is not known and should be defined by the algorithm, should be set to 0\'s. In the function output,\n. each pixel in markers is set to a value of the "seed" components or to -1 at boundaries between the\n. regions.\n. \n. @note Any two neighbor connected components are not necessarily separated by a watershed boundary\n. (-1\'s pixels); for example, they can touch each other in the initial marker image passed to the\n. function.\n. \n. @param image Input 8-bit 3-channel image.\n. @param markers Input/output 32-bit single-channel image (map) of markers. It should have the same\n. size as image .\n. \n. @sa findContours\n. \n. @ingroup imgproc_misc' ... - def writeOpticalFlow(path, flow) -> typing.Any: 'writeOpticalFlow(path, flow) -> retval\n. @brief Write a .flo to disk\n. \n. @param path Path to the file to be written\n. @param flow Flow field to be stored\n. \n. The function stores a flow field in a file, returns true on success, false otherwise.\n. The flow field must be a 2-channel, floating-point matrix (CV_32FC2). First channel corresponds\n. to the flow in the horizontal direction (u), second - vertical (v).' ... - -def __getattr__(name) -> typing.Any: - ... +def __getattr__(name) -> typing.Any: ... #incomplete diff --git a/typings/imagehash/__init__.pyi b/typings/imagehash/__init__.pyi deleted file mode 100644 index 3d255b19..00000000 --- a/typings/imagehash/__init__.pyi +++ /dev/null @@ -1,104 +0,0 @@ -""" # noqa: Y021 -This type stub file was generated by pyright. -""" -from __future__ import absolute_import, annotations, division, print_function - -from PIL import Image - -__version__: str - - -class ImageHash: - def __init__(self, binary_array) -> None: - ... - - def __sub__(self, other: ImageHash) -> int: - ... - - def __eq__(self, other: ImageHash) -> bool: - ... - - def __ne__(self, other: ImageHash) -> bool: - ... - - def __hash__(self) -> int: - ... - - def __len__(self) -> int: - ... - - -def hex_to_hash(hexstr) -> ImageHash: - ... - - -def hex_to_flathash(hexstr, hashsize) -> ImageHash: - ... - - -def old_hex_to_hash(hexstr, hash_size=...) -> ImageHash: - ... - - -def average_hash(image, hash_size=..., mean=...) -> ImageHash: - ... - - -def phash(image: Image.Image, hash_size: int = ..., highfreq_factor: int = ...) -> ImageHash: - ... - - -def phash_simple(image, hash_size=..., highfreq_factor=...) -> ImageHash: - ... - - -def dhash(image, hash_size=...) -> ImageHash: - ... - - -def dhash_vertical(image, hash_size=...) -> ImageHash: - ... - - -def whash(image, hash_size=..., image_scale=..., mode=..., remove_max_haar_ll=...) -> ImageHash: - ... - - -def colorhash(image, binbits=...) -> ImageHash: - ... - - -class ImageMultiHash: - def __init__(self, hashes) -> None: - ... - - def __eq__(self, other) -> bool: - ... - - def __ne__(self, other) -> bool: - ... - - def __sub__(self, other, hamming_cutoff=..., bit_error_rate=...) -> int | float: - ... - - def __hash__(self) -> int: - ... - - def hash_diff(self, other_hash, hamming_cutoff=..., bit_error_rate=...) -> tuple[int, int]: - ... - - def matches(self, other_hash, region_cutoff=..., hamming_cutoff=..., bit_error_rate=...): - ... - - def best_match(self, other_hashes, hamming_cutoff=..., bit_error_rate=...): - ... - - -def crop_resistant_hash( - image, - hash_func=..., - limit_segments=..., - segment_threshold=..., - min_segment_size=..., - segmentation_image_size=...) -> ImageMultiHash: - ... diff --git a/typings/keyboard/__init__.pyi b/typings/keyboard/__init__.pyi index 82be3f32..44268b9c 100644 --- a/typings/keyboard/__init__.pyi +++ b/typings/keyboard/__init__.pyi @@ -1,235 +1,150 @@ -""" # noqa: Y021 -This type stub file was generated by pyright. -""" -from __future__ import print_function as _print_function - -from collections.abc import Callable -from threading import Lock as _Lock -from typing import Any, Optional, Union - -from keyboard._canonical_names import all_modifiers, normalize_name, sided_modifiers -from keyboard._generic import GenericListener as _GenericListener -from keyboard._keyboard_event import KEY_DOWN, KEY_UP, KeyboardEvent - -__all__ = [ - "KEY_DOWN", - "KEY_UP", - "KeyboardEvent", - "_GenericListener", - "all_modifiers", - "normalize_name", - "sided_modifiers"] - -try: - # Python2 - # threading.Event is a function in Python2 wrappin _Event (?!). - from threading import _Event as _UninterruptibleEvent # type: ignore -except NameError: - # Python3 - import queue as _queue - from threading import Event as _UninterruptibleEvent - -Callback = Callable[[KeyboardEvent], None] -Unknown = ... +from collections import Counter, defaultdict, deque +from collections.abc import Callable, Generator, Iterable, Sequence +from queue import Queue +from threading import Event as _UninterruptibleEvent -version: str -_is_str = Callable[[Any], bool] -_is_number = Callable[[Any], bool] -_is_list: Callable[[Any], bool] - - -class _State: - ... +from typing_extensions import Literal, TypeAlias +from ._canonical_names import all_modifiers as all_modifiers, sided_modifiers as sided_modifiers +from ._generic import GenericListener as _GenericListener +from ._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent -class _Event(_UninterruptibleEvent): - def wait(self) -> None: - ... - +_Key: TypeAlias = int | str +_ScanCodeList: TypeAlias = list[int] | tuple[int, ...] +_ParseableHotkey: TypeAlias = _Key | list[int | _ScanCodeList] | tuple[int | _ScanCodeList, ...] +_Callback: TypeAlias = Callable[[KeyboardEvent], bool | None] | Callable[[], bool | None] +# Can't use ParamSpecArgs on `args`, only on `*args` +# _P = ParamSpec("_P") +_P: TypeAlias = tuple[object, ...] -_modifier_scan_codes: set +version: str -def is_modifier(key) -> bool: - ... +class _Event(_UninterruptibleEvent): + def wait(self) -> None: ... -_pressed_events_lock: _Lock -_pressed_events: dict -_physically_pressed_keys: dict -_logically_pressed_keys: dict +def is_modifier(key: _Key | None) -> bool: ... class _KeyboardListener(_GenericListener): - transition_table = { - ('free', KEY_UP, 'modifier'): (False, True, 'free'), # noqa: Y020 - ('free', KEY_DOWN, 'modifier'): (False, False, 'pending'), # noqa: Y020 - ('pending', KEY_UP, 'modifier'): (True, True, 'free'), # noqa: Y020 - ('pending', KEY_DOWN, 'modifier'): (False, True, 'allowed'), # noqa: Y020 - ('suppressed', KEY_UP, 'modifier'): (False, False, 'free'), # noqa: Y020 - ('suppressed', KEY_DOWN, 'modifier'): (False, False, 'suppressed'), # noqa: Y020 - ('allowed', KEY_UP, 'modifier'): (False, True, 'free'), # noqa: Y020 - ('allowed', KEY_DOWN, 'modifier'): (False, True, 'allowed'), # noqa: Y020 - - ('free', KEY_UP, 'hotkey'): (False, None, 'free'), # noqa: Y020 - ('free', KEY_DOWN, 'hotkey'): (False, None, 'free'), # noqa: Y020 - ('pending', KEY_UP, 'hotkey'): (False, None, 'suppressed'), # noqa: Y020 - ('pending', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), # noqa: Y020 - ('suppressed', KEY_UP, 'hotkey'): (False, None, 'suppressed'), # noqa: Y020 - ('suppressed', KEY_DOWN, 'hotkey'): (False, None, 'suppressed'), # noqa: Y020 - ('allowed', KEY_UP, 'hotkey'): (False, None, 'allowed'), # noqa: Y020 - ('allowed', KEY_DOWN, 'hotkey'): (False, None, 'allowed'), # noqa: Y020 - - ('free', KEY_UP, 'other'): (False, True, 'free'), # noqa: Y020 - ('free', KEY_DOWN, 'other'): (False, True, 'free'), # noqa: Y020 - ('pending', KEY_UP, 'other'): (True, True, 'allowed'), # noqa: Y020 - ('pending', KEY_DOWN, 'other'): (True, True, 'allowed'), # noqa: Y020 - # Necessary when hotkeys are removed after beign triggered, such as - # TestKeyboard.test_add_hotkey_multistep_suppress_modifier. - ('suppressed', KEY_UP, 'other'): (False, False, 'allowed'), # noqa: Y020 - ('suppressed', KEY_DOWN, 'other'): (True, True, 'allowed'), # noqa: Y020 - ('allowed', KEY_UP, 'other'): (False, True, 'allowed'), # noqa: Y020 - ('allowed', KEY_DOWN, 'other'): (False, True, 'allowed'), # noqa: Y020 - } - - def init(self) -> None: - ... - - def pre_process_event(self, event): - ... - - def direct_callback(self, event): - ... - - def listen(self) -> None: - ... - - -_listener: _KeyboardListener - - -def key_to_scan_codes(key: Union[int, str, list[Union[int, str]]], error_if_missing: bool = ...) -> list[int]: - ... - - -def parse_hotkey(hotkey) -> tuple[ - tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...]] -] | tuple[ - tuple[tuple[Unknown] | Unknown | tuple[()] | tuple[Unknown, ...], ...] -] | tuple[Unknown, ...]: - ... - - -def send(hotkey: Union[str, int], do_press: bool = ..., do_release: bool = ...) -> None: - ... + transition_table: dict[ + tuple[Literal["free"], Literal["up"], Literal["modifier"]] + | tuple[Literal["free"], Literal["down"], Literal["modifier"]] + | tuple[Literal["pending"], Literal["up"], Literal["modifier"]] + | tuple[Literal["pending"], Literal["down"], Literal["modifier"]] + | tuple[Literal["suppressed"], Literal["up"], Literal["modifier"]] + | tuple[Literal["suppressed"], Literal["down"], Literal["modifier"]] + | tuple[Literal["allowed"], Literal["up"], Literal["modifier"]] + | tuple[Literal["allowed"], Literal["down"], Literal["modifier"]] + | tuple[Literal["free"], Literal["up"], Literal["hotkey"]] + | tuple[Literal["free"], Literal["down"], Literal["hotkey"]] + | tuple[Literal["pending"], Literal["up"], Literal["hotkey"]] + | tuple[Literal["pending"], Literal["down"], Literal["hotkey"]] + | tuple[Literal["suppressed"], Literal["up"], Literal["hotkey"]] + | tuple[Literal["suppressed"], Literal["down"], Literal["hotkey"]] + | tuple[Literal["allowed"], Literal["up"], Literal["hotkey"]] + | tuple[Literal["allowed"], Literal["down"], Literal["hotkey"]] + | tuple[Literal["free"], Literal["up"], Literal["other"]] + | tuple[Literal["free"], Literal["down"], Literal["other"]] + | tuple[Literal["pending"], Literal["up"], Literal["other"]] + | tuple[Literal["pending"], Literal["down"], Literal["other"]] + | tuple[Literal["suppressed"], Literal["up"], Literal["other"]] + | tuple[Literal["suppressed"], Literal["down"], Literal["other"]] + | tuple[Literal["allowed"], Literal["up"], Literal["other"]] + | tuple[Literal["allowed"], Literal["down"], Literal["other"]], + tuple[Literal[False], Literal[True], Literal["free"]] + | tuple[Literal[False], Literal[False], Literal["pending"]] + | tuple[Literal[True], Literal[True], Literal["free"]] + | tuple[Literal[False], Literal[True], Literal["allowed"]] + | tuple[Literal[False], Literal[False], Literal["free"]] + | tuple[Literal[False], Literal[False], Literal["suppressed"]] + | tuple[Literal[False], None, Literal["free"]] + | tuple[Literal[False], None, Literal["suppressed"]] + | tuple[Literal[False], None, Literal["allowed"]] + | tuple[Literal[True], Literal[True], Literal["allowed"]] + | tuple[Literal[False], Literal[False], Literal["allowed"]], + ] + active_modifiers: set[int] + blocking_hooks: list[_Callback] + blocking_keys: defaultdict[int, list[_Callback]] + nonblocking_keys: defaultdict[int, list[_Callback]] + blocking_hotkeys: defaultdict[tuple[int, ...], list[_Callback]] + nonblocking_hotkeys: defaultdict[tuple[int, ...], list[_Callback]] + filtered_modifiers: Counter[int] + is_replaying: bool + modifier_states: dict[_Key, str] + def init(self) -> None: ... + def pre_process_event(self, event): ... + def direct_callback(self, event): ... + def listen(self) -> None: ... + + +def key_to_scan_codes(key: _ParseableHotkey, error_if_missing: bool = ...) -> tuple[int, ...]: ... +def parse_hotkey(hotkey: _ParseableHotkey) -> tuple[tuple[tuple[int, ...], ...], ...]: ... +def send(hotkey: _ParseableHotkey, do_press: bool = ..., do_release: bool = ...) -> None: ... press_and_release = send -def press(hotkey) -> None: - ... - - -def release(hotkey) -> None: - ... - - -def is_pressed(hotkey) -> bool: - ... - - -def call_later(fn, args=..., delay=...) -> None: - ... - - -_hooks: dict[Callable, Unknown] - - -def hook(callback: Callback, suppress=..., on_remove=...) -> Callable[[], None]: - ... - - -def on_press(callback: Callback, suppress=...) -> Callable[[], None]: - ... - - -def on_release(callback: Callback, suppress=...) -> Callable[[], None]: - ... - +def press(hotkey: _ParseableHotkey) -> None: ... +def release(hotkey: _ParseableHotkey) -> None: ... -def hook_key( - key: Union[int, str, list[Union[int, str]]], - callback: Callback, - suppress: bool = ... -) -> Callable[[], None]: - ... +# is_pressed cannot check multi-step hotkeys, so not using _ParseableHotkey -def on_press_key(key, callback: Callback, suppress=...) -> Callable[[], None]: - ... - - -def on_release_key(key, callback: Callback, suppress=...) -> Callable[[], None]: - ... - - -def unhook(remove: Callable[[], None]) -> None: - ... +def is_pressed(hotkey: _Key | _ScanCodeList) -> bool: ... +def call_later(fn: Callable[..., None], args: _P = ..., delay: float = ...) -> None: ... +def hook(callback: _Callback, suppress: bool = ..., on_remove: Callable[[], None] = ...) -> Callable[[], None]: ... +def on_press(callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... +def on_release(callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... +def hook_key(key: _ParseableHotkey, callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... +def on_press_key(key: _ParseableHotkey, callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... +def on_release_key(key: _ParseableHotkey, callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... +def unhook(remove: _Callback) -> None: ... unhook_key = unhook -def unhook_all() -> None: - ... - - -def block_key(key) -> Callable[[], None]: - ... +def unhook_all() -> None: ... +def block_key(key: _ParseableHotkey) -> Callable[[], None]: ... unblock_key = unhook_key -def remap_key(src, dst) -> Callable[[], None]: - ... +def remap_key(src: _ParseableHotkey, dst: _ParseableHotkey) -> Callable[[], None]: ... unremap_key = unhook_key -def parse_hotkey_combinations(hotkey) -> tuple[tuple[tuple[Unknown, ...], ...], ...]: - ... - - -_hotkeys: dict +def parse_hotkey_combinations(hotkey: _ParseableHotkey) -> tuple[tuple[tuple[int, ...], ...], ...]: ... def add_hotkey( - hotkey, - callback: Callable, - args=..., - suppress=..., - timeout=..., - trigger_on_release=... -) -> Callable[[], None]: - ... + hotkey: _ParseableHotkey, + callback: Callable[..., bool | None], + args: _P = ..., + suppress: bool = ..., + timeout: float = ..., + trigger_on_release: bool = ..., +) -> Callable[[], None]: ... register_hotkey = add_hotkey -def remove_hotkey(hotkey_or_callback) -> None: - ... +def remove_hotkey(hotkey_or_callback: _ParseableHotkey | _Callback) -> None: ... unregister_hotkey = remove_hotkey clear_hotkey = remove_hotkey -def unhook_all_hotkeys() -> None: - ... +def unhook_all_hotkeys() -> None: ... unregister_all_hotkeys = unhook_all_hotkeys @@ -237,97 +152,46 @@ remove_all_hotkeys = unhook_all_hotkeys clear_all_hotkeys = unhook_all_hotkeys -def remap_hotkey(src, dst, suppress=..., trigger_on_release=...) -> Callable[[], None]: - ... +def remap_hotkey( + src: _ParseableHotkey, dst: _ParseableHotkey, suppress: bool = ..., trigger_on_release: bool = ... +) -> Callable[[], None]: ... unremap_hotkey = remove_hotkey -def stash_state() -> list: - ... - - -def restore_state(scan_codes) -> None: - ... - - -def restore_modifiers(scan_codes) -> None: - ... - - -def write(text, delay=..., restore_state_after=..., exact=...): - ... - - -def wait(hotkey=..., suppress=..., trigger_on_release=...) -> None: - ... - - -def get_hotkey_name(names=...) -> str: - ... +def stash_state() -> list[int]: ... +def restore_state(scan_codes: Iterable[int]) -> None: ... +def restore_modifiers(scan_codes: Iterable[int]) -> None: ... +def write(text: str, delay: float = ..., restore_state_after: bool = ..., exact: bool | None = ...) -> None: ... +def wait(hotkey: _ParseableHotkey | None = ..., suppress: bool = ..., trigger_on_release: bool = ...) -> None: ... +def get_hotkey_name(names: Iterable[str] | None = ...) -> str: ... +def read_event(suppress: bool = ...) -> KeyboardEvent: ... +def read_key(suppress: bool = ...) -> _Key: ... +def read_hotkey(suppress: bool = ...) -> str: ... +def get_typed_strings(events: Iterable[KeyboardEvent], allow_backspace: bool = ...) -> Generator[str, None, None]: ... -def read_event(suppress: bool = ...) -> KeyboardEvent: - ... - - -def read_key(suppress=...): - ... - - -def read_hotkey(suppress=...) -> str: - ... - - -def get_typed_strings(events, allow_backspace=...): - ... - - -_recording: Optional[tuple[Unknown | _queue.Queue, Callable[[], None]]] - - -def start_recording(recorded_events_queue=...) -> tuple[Unknown | _queue.Queue, Callable[[], None]]: - ... - - -def stop_recording() -> list: - ... - - -def record(until=..., suppress=..., trigger_on_release=...) -> list: - ... - - -def play(events, speed_factor=...): - ... +def start_recording( + recorded_events_queue: Queue[KeyboardEvent] | None = ..., +) -> tuple[Queue[KeyboardEvent], Callable[[], None]]: ... +def stop_recording() -> list[deque[KeyboardEvent]]: ... +def record(until: str = ..., suppress: bool = ..., trigger_on_release: bool = ...) -> list[deque[KeyboardEvent]]: ... +def play(events: Iterable[KeyboardEvent], speed_factor: float = ...) -> None: ... replay = play -_word_listeners: dict def add_word_listener( - word, - callback: Callback, - triggers=..., - match_suffix=..., - timeout=... -) -> Callable[[], None]: - ... - - -def remove_word_listener(word_or_handler) -> None: - ... + word: str, callback: _Callback, triggers: Sequence[str] = ..., match_suffix: bool = ..., timeout: float = ... +) -> Callable[[], None]: ... +def remove_word_listener(word_or_handler: str | _Callback) -> None: ... def add_abbreviation( - source_text, - replacement_text, - match_suffix=..., - timeout=... -) -> Callable[[], None]: - ... + source_text: str, replacement_text: str, match_suffix: bool = ..., timeout: float = ... +) -> Callable[[], None]: ... register_word_listener = add_word_listener diff --git a/typings/keyboard/_canonical_names.pyi b/typings/keyboard/_canonical_names.pyi index e27d5381..dee5d6db 100644 --- a/typings/keyboard/_canonical_names.pyi +++ b/typings/keyboard/_canonical_names.pyi @@ -1,11 +1,7 @@ -""" # noqa: Y021 -This type stub file was generated by pyright. -""" - +basestring = str canonical_names: dict[str, str] sided_modifiers: set[str] all_modifiers: set[str] -def normalize_name(name: str) -> str: - ... +def normalize_name(name: str) -> str: ... diff --git a/typings/keyboard/_generic.pyi b/typings/keyboard/_generic.pyi index c594fab0..ed33c29a 100644 --- a/typings/keyboard/_generic.pyi +++ b/typings/keyboard/_generic.pyi @@ -1,39 +1,25 @@ -""" # noqa: Y021 -This type stub file was generated by pyright. -""" +from collections.abc import Callable +from queue import Queue +from threading import Lock, Thread -from threading import Lock -from typing import NoReturn +from typing_extensions import Literal, TypeAlias -try: - from queue import Queue -except ImportError: - from Queue import Queue +from ._keyboard_event import KeyboardEvent +from ._mouse_event import _MouseEvent + +_Event: TypeAlias = KeyboardEvent | _MouseEvent class GenericListener: lock: Lock - handlers: list + handlers: list[Callable[[_Event], bool | None]] listening: bool - queue: Queue - - def __init__(self) -> None: - ... - - def invoke_handlers(self, event): - ... - - def start_if_necessary(self) -> None: - ... - - def pre_process_event(self, event): - ... - - def process(self) -> NoReturn: - ... - - def add_handler(self, handler) -> None: - ... - - def remove_handler(self, handler) -> None: - ... + queue: Queue[_Event] + listening_thread: Thread | None + processing_thread: Thread | None + def invoke_handlers(self, event: _Event) -> Literal[1] | None: ... + def start_if_necessary(self) -> None: ... + def pre_process_event(self, event: _Event) -> None: ... + def process(self) -> None: ... + def add_handler(self, handler: Callable[[_Event], bool | None]) -> None: ... + def remove_handler(self, handler: Callable[[_Event], bool | None]) -> None: ... diff --git a/typings/keyboard/_keyboard_event.pyi b/typings/keyboard/_keyboard_event.pyi index 4a6bfec5..cdeac60f 100644 --- a/typings/keyboard/_keyboard_event.pyi +++ b/typings/keyboard/_keyboard_event.pyi @@ -1,37 +1,30 @@ -""" # noqa: Y021 -This type stub file was generated by pyright. -""" -from __future__ import annotations +from typing_extensions import Literal -from typing import Literal, Optional +from ._canonical_names import canonical_names as canonical_names, normalize_name as normalize_name +basestring = str KEY_DOWN: Literal["down"] KEY_UP: Literal["up"] class KeyboardEvent: - event_type: Optional[Literal["down", "up"]] = ... - scan_code: Optional[int] = ... - name: Optional[str] = ... - time: Optional = ... - device: Optional = ... - modifiers: Optional = ... - is_keypad: Optional[bool] = ... + event_type: Literal["down", "up"] | None + scan_code: int + name: str | None + time: float | None + device: str | None + modifiers: tuple[str, ...] | None + is_keypad: bool | None def __init__( self, - event_type: Optional[Literal["down", "up"]], - scan_code: Optional[int], - name: Optional[str] = ..., - time: Optional = ..., - device: Optional = ..., - modifiers: Optional = ..., - is_keypad: Optional[bool] = ... - ) -> None: - ... - - def to_json(self, ensure_ascii: bool = ...) -> str: - ... - - def __eq__(self, other: KeyboardEvent) -> bool: - ... + event_type: Literal["down", "up"] | None, + scan_code: int, + name: str | None = ..., + time: float | None = ..., + device: str | None = ..., + modifiers: tuple[str, ...] | None = ..., + is_keypad: bool | None = ..., + ) -> None: ... + def to_json(self, ensure_ascii: bool = ...) -> str: ... + def __eq__(self, other: object) -> bool: ... diff --git a/typings/keyboard/_mouse_event.pyi b/typings/keyboard/_mouse_event.pyi new file mode 100644 index 00000000..912a4bbf --- /dev/null +++ b/typings/keyboard/_mouse_event.pyi @@ -0,0 +1,47 @@ +import sys +from typing import NamedTuple + +from typing_extensions import Literal, TypeAlias + +_MouseEvent: TypeAlias = ButtonEvent | WheelEvent | MoveEvent # noqa: Y047 # Used outside + +LEFT: Literal["left"] +RIGHT: Literal["right"] +MIDDLE: Literal["middle"] +X: Literal["x"] +X2: Literal["x2"] + +UP: Literal["up"] +DOWN: Literal["down"] +DOUBLE: Literal["double"] +WHEEL: Literal["wheel"] + +VERTICAL: Literal["vertical"] +HORIZONTAL: Literal["horizontal"] + +if sys.platform == "linux" or sys.platform == "win32": + _MouseButton: TypeAlias = Literal["left", "right", "middle", "x", "x2"] +else: + _MouseButton: TypeAlias = Literal["left", "right", "middle"] + +if sys.platform == "win32": + _MouseEventType: TypeAlias = Literal["up", "down", "double", "wheel"] +else: + _MouseEventType: TypeAlias = Literal["up", "down"] + + +class ButtonEvent(NamedTuple): + event_type: _MouseEventType + button: _MouseButton + time: float + + +class WheelEvent(NamedTuple): + delta: int + time: float + + +class MoveEvent(NamedTuple): + x: int + y: int + time: float diff --git a/typings/keyboard/mouse.pyi b/typings/keyboard/mouse.pyi new file mode 100644 index 00000000..9db6f2be --- /dev/null +++ b/typings/keyboard/mouse.pyi @@ -0,0 +1,76 @@ +import sys +from collections.abc import Callable, Iterable +from ctypes import c_long + +from keyboard._generic import GenericListener as _GenericListener +from keyboard._mouse_event import (DOUBLE as DOUBLE, DOWN as DOWN, LEFT as LEFT, MIDDLE as MIDDLE, RIGHT as RIGHT, + UP as UP, X2 as X2, ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, + WheelEvent as WheelEvent, X as X, _MouseButton, _MouseEvent, _MouseEventType) +from typing_extensions import Literal, TypeAlias + +# Can't use ParamSpecArgs on `args`, only on `*args` +# _P = ParamSpec("_P") +_P: TypeAlias = tuple[object, ...] +_Callback: TypeAlias = Callable[[_MouseEvent], bool | None] + + +class _MouseListener(_GenericListener): + def init(self) -> None: ... + + def pre_process_event( + self, event: _MouseEvent + ) -> Literal[True]: ... + def listen(self) -> None: ... + + +def is_pressed(button: _MouseButton = ...): + ... + + +def press(button: _MouseButton = ...) -> None: ... +def release(button: _MouseButton = ...) -> None: ... +def click(button: _MouseButton = ...) -> None: ... +def double_click(button: _MouseButton = ...) -> None: ... +def right_click() -> None: ... +def wheel(delta: int = ...) -> None: ... +def move(x: int | c_long, y: int | c_long, absolute: bool = ..., duration: float = ...) -> None: ... +def drag(start_x: int, start_y: int, end_x: int, end_y: int, absolute: bool = ..., duration: float = ...) -> None: ... + + +def on_button( + callback: Callable[..., None], + args: _P = ..., + buttons: list[_MouseButton] | tuple[_MouseButton, ...] | _MouseButton = ..., + types: list[_MouseEventType] | tuple[_MouseEventType, ...] | _MouseEventType = ..., +) -> _Callback: ... +def on_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... +def on_double_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... +def on_right_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... +def on_middle_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... +def wait(button: _MouseButton = ..., target_types: tuple[_MouseEventType] = ...) -> None: ... + + +if sys.platform == "win32": + def get_position() -> tuple[c_long, c_long]: ... + +else: + def get_position() -> tuple[int, int]: ... + + +def hook(callback: _Callback) -> _Callback: ... +def unhook(callback: _Callback) -> None: ... +def unhook_all() -> None: ... +def record(button: _MouseButton = ..., target_types: tuple[_MouseEventType] = ...) -> _MouseEvent: ... + + +def play( + events: Iterable[_MouseEvent], + speed_factor: float = ..., + include_clicks: bool = ..., + include_moves: bool = ..., + include_wheel: bool = ..., +) -> None: ... + + +replay = play +hold = press diff --git a/typings/pyautogui/__init__.pyi b/typings/pyautogui/__init__.pyi index afe75bb4..102b8a52 100644 --- a/typings/pyautogui/__init__.pyi +++ b/typings/pyautogui/__init__.pyi @@ -1,15 +1,10 @@ -"""# noqa: Y021 -This type stub file was generated by pyright. -""" -from __future__ import absolute_import, division, print_function - -import sys -from collections.abc import Callable -from contextlib import contextmanager +from collections.abc import Callable, Generator, Iterable, Sequence from datetime import datetime -from typing import Literal, Union +from typing import NamedTuple, TypeVar, overload -__version__: str +from typing_extensions import ParamSpec + +# from pyscreeze import Box class PyAutoGUIException(Exception): @@ -24,212 +19,290 @@ class ImageNotFoundException(PyAutoGUIException): ... -if sys.version_info[0] == 2 or sys.version_info[0:2] in ((3, 1), (3, 2)): # noqa: Y003 - # Python 2 and 3.1 and 3.2 uses collections.Sequence - import collections +_P = ParamSpec("_P") +_R = TypeVar("_R") - collectionsSequence = collections.Sequence -else: - # Python 3.3+ uses collections.abc.Sequence - import collections.abc +# TODO: Complete types with pyscreeze once we can import it as a type dependency +# Actually `pyscreeze.Box`, but typeshed doesn't currently have stubs for pyscreeze +# (and the library doesn't have type annotations either) - collectionsSequence = collections.abc.Sequence +class _Box(NamedTuple): + left: int + top: int + width: int + height: int -def raisePyAutoGUIImageNotFoundException(wrappedFunction) -> Callable: - ... +def raisePyAutoGUIImageNotFoundException(wrappedFunction: Callable[_P, _R]) -> Callable[_P, _R]: ... -def useImageNotFoundException(value=...) -> None: - ... +# These functions reuse pyscreeze functions directly. See above TODO. -KEY_NAMES = ... -KEYBOARD_KEYS = ... -LEFT = ... -MIDDLE = ... -RIGHT = ... -PRIMARY = ... -SECONDARY = ... -QWERTY = ... -QWERTZ = ... +def locate(*args, **kwargs) -> _Box | None: ... +def locateAll(*args, **kwargs) -> Generator[_Box, None, None]: ... +def locateAllOnScreen(*args, **kwargs) -> Generator[_Box, None, None]: ... +def locateCenterOnScreen(*args, **kwargs) -> Point | None: ... +def locateOnScreen(*args, **kwargs) -> _Box | None: ... +def locateOnWindow(*args, **kwargs) -> _Box | None: ... +def mouseInfo() -> None: ... +def useImageNotFoundException(value: bool | None = ...) -> None: ... -def isShiftCharacter(character) -> bool: - ... +KEY_NAMES: list[str] +KEYBOARD_KEYS: list[str] +LEFT: str +MIDDLE: str +RIGHT: str +PRIMARY: str +SECONDARY: str +QWERTY: str +QWERTZ: str -MINIMUM_DURATION = ... -MINIMUM_SLEEP = ... -PAUSE = ... -DARWIN_CATCH_UP_TIME = ... -FAILSAFE = bool -FAILSAFE_POINTS = ... -LOG_SCREENSHOTS = ... -LOG_SCREENSHOTS_LIMIT = ... -G_LOG_SCREENSHOTS_FILENAMES = ... -Point = ... -Size = ... +def isShiftCharacter(character: str) -> bool: ... -def getPointOnLine(x1: int, y1: int, x2: int, y2: int, n: float) -> tuple[int, int]: - ... +MINIMUM_DURATION: float +MINIMUM_SLEEP: float +PAUSE: float +DARWIN_CATCH_UP_TIME: float +FAILSAFE: bool +FAILSAFE_POINTS: list[tuple[int, int]] +LOG_SCREENSHOTS: bool +LOG_SCREENSHOTS_LIMIT: int +G_LOG_SCREENSHOTS_FILENAMES: list[str] -def linear(n): - ... +class Point(NamedTuple): + x: float + y: float -def position(x=..., y=...) -> Point: - ... +class Size(NamedTuple): + width: int + height: int -def size() -> Size: - ... +def getPointOnLine(x1: float, y1: float, x2: float, y2: float, n: float) -> tuple[float, float]: ... +def linear(n: float) -> float: ... +def position(x: int | None = ..., y: int | None = ...) -> Point: ... +def size() -> Size: ... +@overload +def onScreen(x: tuple[float, float], y: None = ...) -> bool: ... +@overload +def onScreen(x: float, y: float) -> bool: ... -def onScreen(x, y=...) -> bool: - ... +def mouseDown( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + button: str = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... -def mouseDown(x=..., y=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... - - -def mouseUp(x=..., y=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... +def mouseUp( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + button: str = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... def click( - x=..., - y=..., - clicks=..., - interval=..., - button=..., - duration=..., - tween=..., - logScreenshot=..., - _pause=...) -> None: - ... - - -def leftClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... - - -def rightClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... - - -def middleClick(x=..., y=..., interval=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... - - -def doubleClick(x=..., y=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... - - -def tripleClick(x=..., y=..., interval=..., button=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... - - -def scroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: - ... - - -def hscroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: - ... - - -def vscroll(clicks, x=..., y=..., logScreenshot=..., _pause=...) -> None: - ... - - -def moveTo(x=..., y=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... - - -def moveRel(xOffset=..., yOffset=..., duration=..., tween=..., logScreenshot=..., _pause=...) -> None: - ... - - -move = ... - - -def dragTo(x=..., y=..., duration=..., tween=..., button=..., logScreenshot=..., _pause=..., mouseDownUp=...) -> None: - ... + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + clicks: int = ..., + interval: float = ..., + # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + button: str = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def leftClick( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + interval: float = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def rightClick( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + interval: float = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def middleClick( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + interval: float = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def doubleClick( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + interval: float = ..., + # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + button: str = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def tripleClick( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + interval: float = ..., + # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + button: str = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def scroll( + clicks: float, + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def hscroll( + clicks: float, + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def vscroll( + clicks: float, + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., +) -> None: ... + + +def moveTo( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool = ..., + _pause: bool = ..., +) -> None: ... + + +def moveRel( + xOffset: float | Sequence[float] | str | None = ..., + yOffset: float | None = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + logScreenshot: bool = ..., + _pause: bool = ..., +) -> None: ... + + +move = moveRel + + +def dragTo( + x: float | Sequence[float] | str | None = ..., + y: float | None = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + button: str = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., + mouseDownUp: bool = ..., +) -> None: ... def dragRel( - xOffset=..., - yOffset=..., - duration=..., - tween=..., - button=..., - logScreenshot=..., - _pause=..., - mouseDownUp=...): - ... + xOffset: float | Sequence[float] | str = ..., + yOffset: float = ..., + duration: float = ..., + tween: Callable[[float], float] = ..., + # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + button: str = ..., + logScreenshot: bool | None = ..., + _pause: bool = ..., + mouseDownUp: bool = ..., +) -> None: ... -drag = ... +drag = dragRel -def isValidKey(key) -> bool: - ... +def isValidKey(key: str) -> bool: ... +def keyDown(key: str, logScreenshot: bool | None = ..., _pause: bool = ...) -> None: ... +def keyUp(key: str, logScreenshot: bool | None = ..., _pause: bool = ...) -> None: ... -def keyDown(key, logScreenshot=..., _pause=...) -> None: - ... +def press( + keys: str | Iterable[str], + presses: int = ..., + interval: float = ..., + logScreenshot: bool | None = ..., + _pause: bool = ...) -> None: ... -def keyUp(key, logScreenshot=..., _pause=...) -> None: - ... - - -def press(keys, presses=..., interval=..., logScreenshot=..., _pause=...): - ... - - -@contextmanager -def hold(keys, logScreenshot=..., _pause=...): - ... +def hold(keys: str | Iterable[str], + logScreenshot: bool | None = ..., + _pause: bool = ...) -> Generator[None, + None, + None]: ... -def typewrite(message, interval=..., logScreenshot=..., _pause=...) -> None: - ... +def typewrite( + message: str | Sequence[str], interval: float = ..., logScreenshot: bool | None = ..., _pause: bool = ... +) -> None: ... -write = ... +write = typewrite -def hotkey(*args: str, **kwargs: Union[int, bool, None]) -> None: - ... - - -def failSafeCheck() -> None: - ... - - -def displayMousePosition(xOffset=..., yOffset=...): - ... - - -def sleep(seconds) -> None: - ... - - -def countdown(seconds) -> None: - ... - - -def run(commandStr, _ssCount=...) -> None: - ... - - -def printInfo(dontPrint=...) -> str: - ... - - -def getInfo() -> tuple[str, str, Literal['0.9.53'], str, Size, datetime]: - ... +def hotkey(*args: str, logScreenshot: bool | None = ..., interval: float = ...) -> None: ... +def failSafeCheck() -> None: ... +def displayMousePosition(xOffset: float = ..., yOffset: float = ...) -> None: ... +def sleep(seconds: float) -> None: ... +def countdown(seconds: int) -> None: ... +def run(commandStr: str, _ssCount: Sequence[int] | None = ...) -> None: ... +def printInfo(dontPrint: bool = ...) -> str: ... +def getInfo() -> tuple[str, str, str, str, Size, datetime]: ... From 3b39fa1ec1f33680ce170071c9e8c7f5a8a7494e Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sat, 3 Sep 2022 13:42:26 -0400 Subject: [PATCH 26/54] Added new Capture Method system for more capture options + utils (#141) * Add D3DShot types from https://github.com/python/typeshed/pull/8652 * New Capture Method system --- README.md | 28 ++- res/design.ui | 5 - res/settings.ui | 112 ++++++--- src/AutoSplit.py | 112 +++++---- src/AutoSplitImage.py | 12 +- src/capture_method/BitBltCaptureMethod.py | 76 ++++++ .../DesktopDuplicationCaptureMethod.py | 44 ++++ .../ForceFullContentRenderingCaptureMethod.py | 5 + .../VideoCaptureDeviceCaptureMethod.py | 83 +++++++ .../WindowsGraphicsCaptureMethod.py | 145 +++++++++++ src/capture_method/__init__.py | 235 ++++++++++++++++++ src/capture_method/interface.py | 40 +++ src/capture_windows.py | 92 ------- src/compare.py | 8 +- src/error_messages.py | 5 + src/menu_bar.py | 109 +++++++- src/{screen_region.py => region_selection.py} | 119 ++++++--- src/split_parser.py | 3 +- src/user_profile.py | 40 +-- src/utils.py | 109 ++++++++ typings/d3dshot/__init__.pyi | 13 + typings/d3dshot/capture_output.pyi | 35 +++ typings/d3dshot/capture_outputs/__init__.pyi | 0 .../capture_outputs/numpy_capture_output.pyi | 19 ++ .../numpy_float_capture_output.pyi | 19 ++ .../capture_outputs/pil_capture_output.pyi | 16 ++ .../pytorch_capture_output.pyi | 17 ++ .../pytorch_float_capture_output.pyi | 17 ++ .../pytorch_float_gpu_capture_output.pyi | 18 ++ .../pytorch_gpu_capture_output.pyi | 18 ++ typings/d3dshot/d3dshot.pyi | 50 ++++ typings/d3dshot/display.pyi | 48 ++++ typings/d3dshot/dll/__init__.pyi | 0 typings/d3dshot/dll/d3d.pyi | 44 ++++ typings/d3dshot/dll/dxgi.pyi | 98 ++++++++ typings/d3dshot/dll/shcore.pyi | 1 + typings/d3dshot/dll/user32.pyi | 14 ++ 37 files changed, 1549 insertions(+), 260 deletions(-) create mode 100644 src/capture_method/BitBltCaptureMethod.py create mode 100644 src/capture_method/DesktopDuplicationCaptureMethod.py create mode 100644 src/capture_method/ForceFullContentRenderingCaptureMethod.py create mode 100644 src/capture_method/VideoCaptureDeviceCaptureMethod.py create mode 100644 src/capture_method/WindowsGraphicsCaptureMethod.py create mode 100644 src/capture_method/__init__.py create mode 100644 src/capture_method/interface.py delete mode 100644 src/capture_windows.py rename src/{screen_region.py => region_selection.py} (72%) create mode 100644 src/utils.py create mode 100644 typings/d3dshot/__init__.pyi create mode 100644 typings/d3dshot/capture_output.pyi create mode 100644 typings/d3dshot/capture_outputs/__init__.pyi create mode 100644 typings/d3dshot/capture_outputs/numpy_capture_output.pyi create mode 100644 typings/d3dshot/capture_outputs/numpy_float_capture_output.pyi create mode 100644 typings/d3dshot/capture_outputs/pil_capture_output.pyi create mode 100644 typings/d3dshot/capture_outputs/pytorch_capture_output.pyi create mode 100644 typings/d3dshot/capture_outputs/pytorch_float_capture_output.pyi create mode 100644 typings/d3dshot/capture_outputs/pytorch_float_gpu_capture_output.pyi create mode 100644 typings/d3dshot/capture_outputs/pytorch_gpu_capture_output.pyi create mode 100644 typings/d3dshot/d3dshot.pyi create mode 100644 typings/d3dshot/display.pyi create mode 100644 typings/d3dshot/dll/__init__.pyi create mode 100644 typings/d3dshot/dll/d3d.pyi create mode 100644 typings/d3dshot/dll/dxgi.pyi create mode 100644 typings/d3dshot/dll/shcore.pyi create mode 100644 typings/d3dshot/dll/user32.pyi diff --git a/README.md b/README.md index b2983070..55d2295b 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ This program can be used to automatically start, split, and reset your preferred ## Avg. FPS -- Calculates the average comparison rate of the capture region to split images. This value will likely be much higher than needed (unless you [Force Full-Content-Rendering](#Full-Content-Rendering)), so it is highly recommended to limit your FPS depending on the frame rate of the game you are capturing. +- Calculates the average comparison rate of the capture region to split images. This value will likely be much higher than needed, so it is highly recommended to limit your FPS depending on the frame rate of the game you are capturing. ## OPTIONS @@ -72,9 +72,29 @@ This program can be used to automatically start, split, and reset your preferred - Histograms: An explanation on Histograms comparison can be found [here](https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html). This is a great method to use if you are using several masked images. - Perceptual Hash: An explanation on pHash comparison can be found [here](http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html). It is highly recommended to NOT use pHash if you use masked images. It is very inaccurate. -### Full Content Rendering - -- Certain windows (namely hardware accelerated ones) won't always render their content. To work around this, you can "Force Full Content Rendering". This option is not recommended unless you really need it. It will cause a 10-15x performance drop based on the size of the complete window that's being captured (not the selected region, but rather the actual window size). It can also mess with some applications' rendering pipeline. +### Capture Method + +- **BitBlt** (fastest, least compatible) + A good default fast option. But it cannot properly record OpenGL, Hardware Accelerated or Exclusive Fullscreen windows. + The smaller the selected region, the more efficient it is. +- **Windows Graphics Capture** (fast, most compatible, capped at 60fps) + Only available in Windows 10.0.17134 and up. + Due to current technical limitations, it requires having at least one audio or video Capture Device connected and enabled. Even if it won't be used. + Allows recording UWP apps, Hardware Accelerated and Exclusive Fullscreen windows. + Adds a yellow border on Windows 10 (not on Windows 11). + Caps at around 60 FPS. +- **Direct3D Desktop Duplication** (slower, bound to display) + Duplicates the desktop using Direct3D. + It can record OpenGL and Hardware Accelerated windows. + About 10-15x slower than BitBlt. Not affected by window size. + overlapping windows will show up and can't record across displays. +- **Force Full Content Rendering** (very slow, can affect rendering pipeline) + Uses BitBlt behind the scene, but passes a special flag to PrintWindow to force rendering the entire desktop. + About 10-15x slower than BitBlt based on original window size and can mess up some applications' rendering pipelines. +- **Video Capture Device** + Uses a Video Capture Device, like a webcam, virtual cam, or capture card. + There are currently performance issues, but it might be more convenient. + If you want to use this with OBS' Virtual Camera, use the [Virtualcam plugin](https://obsproject.com/forum/resources/obs-virtualcam.949/) instead. ### Show Live Similarity diff --git a/res/design.ui b/res/design.ui index ea0037ef..c53cc31f 100644 --- a/res/design.ui +++ b/res/design.ui @@ -1008,11 +1008,6 @@ Check for Updates on Open - - - Force Full Render - - Check For Updates On Open diff --git a/res/settings.ui b/res/settings.ui index 0546658c..ba2984fb 100644 --- a/res/settings.ui +++ b/res/settings.ui @@ -7,7 +7,7 @@ 0 0 289 - 540 + 621 @@ -19,13 +19,13 @@ 289 - 540 + 621 289 - 540 + 621 @@ -46,40 +46,12 @@ 10 180 271 - 101 + 181 Capture Settings - - - true - - - - 6 - 73 - 204 - 20 - - - - Force a full render of the capture window, which is required for some applications to be captured - - - - - - Force Full Render (slower Max FPS) - - - false - - - false - - @@ -143,12 +115,64 @@ false + + + + 6 + 97 + 251 + 22 + + + + + + + 6 + 75 + 151 + 16 + + + + Capture method: + + + + + + 6 + 126 + 151 + 16 + + + + Capture device: + + + + + false + + + + 6 + 148 + 251 + 22 + + + + Scanning for existing devices... + + 10 - 290 + 370 271 241 @@ -175,10 +199,21 @@ - - - - + L2 Norm: +This method should be fine to use for most cases. +It finds the difference between each pixel, squares it, sums it over the entire image and takes the square root. +This is very fast but is a problem if your image is high frequency. +Any translational movement or rotation can cause similarity to be very different. + +Histograms: +An explanation on Histograms comparison can be found here +https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html +This is a great method to use if you are using several masked images. + +Perceptual Hash: +An explanation on pHash comparison can be found here +http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html +It is highly recommended to NOT use pHash if you use masked images. It is very inaccurate. @@ -192,7 +227,7 @@ - Perceptual Hash + pHash @@ -646,7 +681,6 @@ loop_splits_checkbox fps_limit_spinbox live_capture_region_checkbox - force_print_window_checkbox diff --git a/src/AutoSplit.py b/src/AutoSplit.py index bbd2480d..0c3e71c2 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -21,26 +21,22 @@ import cv2 from PyQt6 import QtCore, QtGui from PyQt6.QtTest import QTest -from PyQt6.QtWidgets import QApplication, QFileDialog, QMainWindow, QMessageBox, QWidget -from win32 import win32gui +from PyQt6.QtWidgets import QApplication, QFileDialog, QLabel, QMainWindow, QMessageBox, QWidget import error_messages import user_profile from AutoControlledWorker import AutoControlledWorker from AutoSplitImage import COMPARISON_RESIZE, AutoSplitImage, ImageType -from capture_windows import capture_region, set_ui_image +from capture_method import CaptureMethodEnum, CaptureMethodInterface from gen import about, design, settings, update_checker from hotkeys import after_setting_hotkey, send_command from menu_bar import (VERSION, check_for_updates, get_default_settings_from_ui, open_about, open_settings, open_update_checker, view_help) -from screen_region import align_region, select_region, select_window, validate_before_parsing +from region_selection import align_region, select_region, select_window, validate_before_parsing from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images -from user_profile import DEFAULT_PROFILE, FROZEN +from user_profile import DEFAULT_PROFILE +from utils import FROZEN, START_AUTO_SPLITTER_TEXT, is_valid_image -CREATE_NEW_ISSUE_MESSAGE = ( - "Please create a New Issue at " - + "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below") -START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" CHECK_FPS_ITERATIONS = 10 # Needed when compiled, along with the custom hook-requests PyInstaller hook @@ -54,10 +50,12 @@ def excepthook(exception_type: type[BaseException], exception: BaseException, _t # Catch Keyboard Interrupts for a clean close if exception_type is KeyboardInterrupt or isinstance(exception, KeyboardInterrupt): sys.exit(0) - autosplit.show_error_signal.emit(lambda: error_messages.exception_traceback( - "AutoSplit encountered an unhandled exception and will try to recover, " - + f"however, there is no guarantee it will keep working properly. {CREATE_NEW_ISSUE_MESSAGE}", - exception)) + autosplit.show_error_signal.emit( + lambda: error_messages.exception_traceback( + "AutoSplit encountered an unhandled exception and will try to recover, " + + "however, there is no guarantee it will keep working properly." + + error_messages.CREATE_NEW_ISSUE_MESSAGE, + exception)) return excepthook @@ -103,6 +101,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): split_image_number = 0 split_images_and_loop_number: list[tuple[AutoSplitImage, int]] = [] split_groups: list[list[int]] = [] + capture_method = CaptureMethodInterface() # Last loaded settings empty and last successful loaded settings file path to None until we try to load them last_loaded_settings = DEFAULT_PROFILE @@ -240,16 +239,16 @@ def __browse(self): self.load_start_image_signal.emit() def __live_image_function(self): - self.capture_region_window_label.setText(self.settings_dict["captured_window_title"]) - if not (self.settings_dict["live_capture_region"] and self.settings_dict["captured_window_title"]): + capture_region_window_label = self.settings_dict["capture_device_name"] \ + if self.settings_dict["capture_method"] == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE \ + else self.settings_dict["captured_window_title"] + self.capture_region_window_label.setText(capture_region_window_label) + if not (self.settings_dict["live_capture_region"] and capture_region_window_label): self.live_image.clear() return # Set live image in UI - if self.hwnd: - capture = capture_region(self.hwnd, - self.settings_dict["capture_region"], - self.settings_dict["force_print_window"]) - set_ui_image(self.live_image, capture, False) + capture, _ = self.capture_method.get_frame(self) + set_preview_image(self.live_image, capture, False) def __load_start_image(self, started_by_button: bool = False, wait_for_delay: bool = True): """ @@ -302,7 +301,7 @@ def __start_image_function(self): self.start_image_status_value_label.setText("ready") self.__update_split_image(self.start_image) - capture = self.__get_capture_for_comparison() + capture, _ = self.__get_capture_for_comparison() start_image_threshold = self.start_image.get_similarity_threshold(self) start_image_similarity = self.start_image.compare_with_capture(self, capture) self.table_current_image_threshold_label.setText(f"{start_image_threshold:.2f}") @@ -380,10 +379,8 @@ def __take_screenshot(self): screenshot_index += 1 # Grab screenshot of capture region - capture = capture_region(self.hwnd, - self.settings_dict["capture_region"], - self.settings_dict["force_print_window"]) - if capture is None: + capture, _ = self.capture_method.get_frame(self) + if not is_valid_image(capture): error_messages.region() return @@ -407,9 +404,10 @@ def __check_fps(self): for image in images: count = 0 while count < CHECK_FPS_ITERATIONS: - capture = self.__get_capture_for_comparison() + capture, is_old_image = self.__get_capture_for_comparison() _ = image.compare_with_capture(self, capture) - count += 1 + if not is_old_image: + count += 1 # calculate FPS t1 = time() @@ -611,7 +609,7 @@ def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_ start = time() while True: - capture = self.__get_capture_for_comparison() + capture, _ = self.__get_capture_for_comparison() if self.__reset_if_should(capture): return True @@ -677,7 +675,7 @@ def __pause_loop(self, stop_time: float, message: str): pause_split_image_number = self.split_image_number while True: # Calculate similarity for reset image - if self.__reset_if_should(self.__get_capture_for_comparison()): + if self.__reset_if_should(self.__get_capture_for_comparison()[0]): return True time_delta = time() - start_time @@ -752,22 +750,23 @@ def __get_capture_for_comparison(self): """ Grab capture region and resize for comparison """ - capture = capture_region(self.hwnd, - self.settings_dict["capture_region"], - self.settings_dict["force_print_window"]) + capture, is_old_image = self.capture_method.get_frame(self) # This most likely means we lost capture (ie the captured window was closed, crashed, etc.) - if capture is None: + if not is_valid_image(capture): # Try to recover by using the window name - self.live_image.setText("Trying to recover window...") - hwnd = win32gui.FindWindow(None, self.settings_dict["captured_window_title"]) - # Don't fallback to desktop - if hwnd: - self.hwnd = hwnd - capture = capture_region(self.hwnd, - self.settings_dict["capture_region"], - self.settings_dict["force_print_window"]) - return None if capture is None else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) + if self.settings_dict["capture_method"] == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: + self.live_image.setText("Waiting for capture device...") + else: + self.live_image.setText("Trying to recover window...") + recovered = self.capture_method.recover_window(self.settings_dict["captured_window_title"], self) + if recovered: + capture, _ = self.capture_method.get_frame(self) + + return (None + if not is_valid_image(capture) + else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST), + is_old_image) def __reset_if_should(self, capture: cv2.ndarray | None): """ @@ -803,8 +802,8 @@ def __update_split_image(self, specific_image: AutoSplitImage | None = None): # Get split image self.split_image = specific_image or self.split_images_and_loop_number[0 + self.split_image_number][0] - if self.split_image.byte_array is not None: - set_ui_image(self.current_split_image, self.split_image.byte_array, True) + if is_valid_image(self.split_image.byte_array): + set_preview_image(self.current_split_image, self.split_image.byte_array, True) self.current_image_file_label.setText(self.split_image.filename) self.table_current_image_threshold_label.setText(f"{self.split_image.get_similarity_threshold(self):.2f}") @@ -867,6 +866,28 @@ def exit_program(): exit_program() +def set_preview_image(qlabel: QLabel, image: cv2.Mat | None, transparency: bool): + if not is_valid_image(image): + # Clear current pixmap if no image. But don't clear text + if not qlabel.text(): + qlabel.clear() + else: + if transparency: + color_code = cv2.COLOR_BGRA2RGBA + image_format = QtGui.QImage.Format.Format_RGBA8888 + else: + color_code = cv2.COLOR_BGRA2BGR + image_format = QtGui.QImage.Format.Format_BGR888 + + capture = cv2.cvtColor(image, color_code) + height, width, channels = capture.shape + qimage = QtGui.QImage(capture.data, width, height, width * channels, image_format) + qlabel.setPixmap(QtGui.QPixmap(qimage).scaled( + qlabel.size(), + QtCore.Qt.AspectRatioMode.IgnoreAspectRatio, + QtCore.Qt.TransformationMode.SmoothTransformation)) + + def seconds_remaining_text(seconds: float): return f"{seconds:.1f} second{'' if 0 < seconds <= 1 else 's'} remaining" @@ -886,7 +907,8 @@ def main(): exit_code = app.exec() except Exception as exception: # pylint: disable=broad-except # We really want to catch everything here - message = f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}" + message = "AutoSplit encountered an unrecoverable exception and will now close." \ + + error_messages.CREATE_NEW_ISSUE_MESSAGE # Print error to console if not running in executable if FROZEN: error_messages.exception_traceback(message, exception) diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index 08d8147e..40fa7b54 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -10,8 +10,7 @@ import error_messages from compare import check_if_image_has_transparency, compare_histograms, compare_l2_norm, compare_phash -from split_parser import (comparison_method_from_filename, delay_time_from_filename, flags_from_filename, - loop_from_filename, pause_from_filename, threshold_from_filename) +from utils import is_valid_image if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -100,7 +99,7 @@ def __init__(self, path: str): def __read_image_bytes(self, path: str): image = cv2.imread(path, cv2.IMREAD_UNCHANGED) - if image is None: + if not is_valid_image(image): self.byte_array = None error_messages.image_type(path) return @@ -131,7 +130,7 @@ def compare_with_capture( Compare image with capture using image's comparison method. Falls back to combobox """ - if self.byte_array is None or capture is None: + if not is_valid_image(self.byte_array) or not is_valid_image(capture): return 0.0 comparison_method = self.__get_comparison_method(default) if comparison_method == 0: @@ -141,3 +140,8 @@ def compare_with_capture( if comparison_method == 2: return compare_phash(self.byte_array, capture, self.mask) return 0.0 + + +if True: # pylint: disable=using-constant-test + from split_parser import (comparison_method_from_filename, delay_time_from_filename, flags_from_filename, + loop_from_filename, pause_from_filename, threshold_from_filename) diff --git a/src/capture_method/BitBltCaptureMethod.py b/src/capture_method/BitBltCaptureMethod.py new file mode 100644 index 00000000..23d2a30f --- /dev/null +++ b/src/capture_method/BitBltCaptureMethod.py @@ -0,0 +1,76 @@ +from __future__ import annotations + +import ctypes +import ctypes.wintypes +from typing import TYPE_CHECKING, cast + +import cv2 +import numpy as np +import pywintypes +import win32con +import win32ui +from win32 import win32gui + +from capture_method.interface import CaptureMethodInterface +from utils import get_window_bounds, is_valid_hwnd + +if TYPE_CHECKING: + from AutoSplit import AutoSplit + +# This is an undocumented nFlag value for PrintWindow +PW_RENDERFULLCONTENT = 0x00000002 + + +class BitBltCaptureMethod(CaptureMethodInterface): + _render_full_content = False + + def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: + selection = autosplit.settings_dict["capture_region"] + hwnd = autosplit.hwnd + image: cv2.Mat | None = None + if not self.check_selected_region_exists(autosplit): + return None, False + + # If the window closes while it's being manipulated, it could cause a crash + try: + window_dc = win32gui.GetWindowDC(hwnd) + dc_object = win32ui.CreateDCFromHandle(window_dc) + + # Causes a 10-15x performance drop. But allows recording hardware accelerated windows + if self._render_full_content: + ctypes.windll.user32.PrintWindow(hwnd, dc_object.GetSafeHdc(), PW_RENDERFULLCONTENT) + + # On Windows there is a shadow around the windows that we need to account for. + left_bounds, top_bounds, *_ = get_window_bounds(hwnd) + + compatible_dc = dc_object.CreateCompatibleDC() + bitmap = win32ui.CreateBitmap() + bitmap.CreateCompatibleBitmap(dc_object, selection["width"], selection["height"]) + compatible_dc.SelectObject(bitmap) + compatible_dc.BitBlt( + (0, 0), + (selection["width"], selection["height"]), + dc_object, + (selection["x"] + left_bounds, selection["y"] + top_bounds), + win32con.SRCCOPY) + image = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype=np.uint8) + image.shape = (selection["height"], selection["width"], 4) + except (win32ui.error, pywintypes.error): + return None, False + # We already obtained the image, so we can ignore errors during cleanup + try: + dc_object.DeleteDC() + dc_object.DeleteDC() + compatible_dc.DeleteDC() + win32gui.ReleaseDC(hwnd, window_dc) + win32gui.DeleteObject(bitmap.GetHandle()) + except win32ui.error: + pass + return image, False + + def recover_window(self, captured_window_title: str, autosplit: AutoSplit): + hwnd = win32gui.FindWindow(None, captured_window_title) + if not is_valid_hwnd(hwnd): + return False + autosplit.hwnd = hwnd + return self.check_selected_region_exists(autosplit) diff --git a/src/capture_method/DesktopDuplicationCaptureMethod.py b/src/capture_method/DesktopDuplicationCaptureMethod.py new file mode 100644 index 00000000..e067e7bf --- /dev/null +++ b/src/capture_method/DesktopDuplicationCaptureMethod.py @@ -0,0 +1,44 @@ +from __future__ import annotations + +import ctypes +import ctypes.wintypes +from typing import TYPE_CHECKING + +import cv2 +import d3dshot +import win32con +from win32 import win32gui + +from capture_method.BitBltCaptureMethod import BitBltCaptureMethod +from utils import get_window_bounds + +if TYPE_CHECKING: + from AutoSplit import AutoSplit + +desktop_duplication = d3dshot.create(capture_output="numpy") + + +class DesktopDuplicationCaptureMethod(BitBltCaptureMethod): # pylint: disable=too-few-public-methods + def get_frame(self, autosplit: AutoSplit): + selection = autosplit.settings_dict["capture_region"] + hwnd = autosplit.hwnd + hmonitor = ctypes.windll.user32.MonitorFromWindow(hwnd, win32con.MONITOR_DEFAULTTONEAREST) + if not hmonitor or not self.check_selected_region_exists(autosplit): + return None, False + + left_bounds, top_bounds, *_ = get_window_bounds(hwnd) + desktop_duplication.display = [ + display for display + in desktop_duplication.displays + if display.hmonitor == hmonitor][0] + offset_x, offset_y, *_ = win32gui.GetWindowRect(hwnd) + offset_x -= desktop_duplication.display.position["left"] + offset_y -= desktop_duplication.display.position["top"] + left = selection["x"] + offset_x + left_bounds + top = selection["y"] + offset_y + top_bounds + right = selection["width"] + left + bottom = selection["height"] + top + screenshot = desktop_duplication.screenshot((left, top, right, bottom)) + if screenshot is None: + return None, False + return cv2.cvtColor(screenshot, cv2.COLOR_RGBA2BGRA), False diff --git a/src/capture_method/ForceFullContentRenderingCaptureMethod.py b/src/capture_method/ForceFullContentRenderingCaptureMethod.py new file mode 100644 index 00000000..ea2acd76 --- /dev/null +++ b/src/capture_method/ForceFullContentRenderingCaptureMethod.py @@ -0,0 +1,5 @@ +from capture_method.BitBltCaptureMethod import BitBltCaptureMethod + + +class ForceFullContentRenderingCaptureMethod(BitBltCaptureMethod): # pylint: disable=too-few-public-methods + _render_full_content = True diff --git a/src/capture_method/VideoCaptureDeviceCaptureMethod.py b/src/capture_method/VideoCaptureDeviceCaptureMethod.py new file mode 100644 index 00000000..612697ff --- /dev/null +++ b/src/capture_method/VideoCaptureDeviceCaptureMethod.py @@ -0,0 +1,83 @@ +from __future__ import annotations + +from threading import Event, Thread +from typing import TYPE_CHECKING + +import cv2 + +from capture_method.interface import CaptureMethodInterface +from error_messages import CREATE_NEW_ISSUE_MESSAGE, exception_traceback +from utils import is_valid_image + +if TYPE_CHECKING: + from AutoSplit import AutoSplit + + +class VideoCaptureDeviceCaptureMethod(CaptureMethodInterface): + capture_device: cv2.VideoCapture + capture_thread: Thread | None + last_captured_frame: cv2.Mat | None = None + is_old_image = False + stop_thread = Event() + + def __read_loop(self, autosplit: AutoSplit): + try: + while not self.stop_thread.is_set(): + try: + result, image = self.capture_device.read() + except cv2.error as error: + if error.code != cv2.Error.STS_ERROR: + raise + # STS_ERROR most likely means the camera is occupied + result = False + image = None + self.last_captured_frame = image if result else None + self.is_old_image = False + except Exception as exception: # pylint: disable=broad-except # We really want to catch everything here + error = exception + self.capture_device.release() + autosplit.show_error_signal.emit(lambda: exception_traceback( + "AutoSplit encountered an unhandled exception while trying to grab a frame and has stopped capture. " + + CREATE_NEW_ISSUE_MESSAGE, + error)) + + def __init__(self, autosplit: AutoSplit): + super().__init__() + self.capture_device = cv2.VideoCapture(autosplit.settings_dict["capture_device_id"]) + self.capture_device.setExceptionMode(True) + self.stop_thread = Event() + self.capture_thread = Thread(target=lambda: self.__read_loop(autosplit)) + self.capture_thread.start() + + def close(self, autosplit: AutoSplit): + self.stop_thread.set() + if self.capture_thread: + self.capture_thread.join() + self.capture_thread = None + self.capture_device.release() + + def get_frame(self, autosplit: AutoSplit): + selection = autosplit.settings_dict["capture_region"] + if not self.check_selected_region_exists(autosplit): + return None, False + + image = self.last_captured_frame + is_old_image = self.is_old_image + self.is_old_image = True + if not is_valid_image(image): + return None, is_old_image + + # Ensure we can't go OOB of the image + y = min(selection["y"], image.shape[0] - 1) + x = min(selection["x"], image.shape[1] - 1) + image = image[ + y:y + selection["height"], + x:x + selection["width"], + ] + return cv2.cvtColor(image, cv2.COLOR_BGR2BGRA), is_old_image + + def recover_window(self, captured_window_title: str, autosplit: AutoSplit) -> bool: + raise NotImplementedError() + + def check_selected_region_exists(self, autosplit: AutoSplit): + return bool(self.capture_device.isOpened()) diff --git a/src/capture_method/WindowsGraphicsCaptureMethod.py b/src/capture_method/WindowsGraphicsCaptureMethod.py new file mode 100644 index 00000000..8a687078 --- /dev/null +++ b/src/capture_method/WindowsGraphicsCaptureMethod.py @@ -0,0 +1,145 @@ +from __future__ import annotations + +import asyncio +from typing import TYPE_CHECKING, cast + +import cv2 +import numpy as np +from win32 import win32gui +from winsdk.windows.graphics import SizeInt32 +from winsdk.windows.graphics.capture import Direct3D11CaptureFramePool, GraphicsCaptureSession +from winsdk.windows.graphics.capture.interop import create_for_window +from winsdk.windows.graphics.directx import DirectXPixelFormat +from winsdk.windows.graphics.imaging import BitmapBufferAccessMode, SoftwareBitmap +from winsdk.windows.media.capture import MediaCapture + +from capture_method.interface import CaptureMethodInterface +from utils import WINDOWS_BUILD_NUMBER, is_valid_hwnd + +if TYPE_CHECKING: + from AutoSplit import AutoSplit + +WGC_NO_BORDER_MIN_BUILD = 20348 + + +class WindowsGraphicsCaptureMethod(CaptureMethodInterface): + size: SizeInt32 + frame_pool: Direct3D11CaptureFramePool | None = None + session: GraphicsCaptureSession | None = None + """This is stored to prevent session from being garbage collected""" + last_captured_frame: cv2.Mat | None = None + + def __init__(self, autosplit: AutoSplit): + super().__init__(autosplit) + if not is_valid_hwnd(autosplit.hwnd): + return + # Note: Must create in the same thread (can't use a global) otherwise when ran from LiveSplit it will raise: + # OSError: The application called an interface that was marshalled for a different thread + media_capture = MediaCapture() + item = create_for_window(autosplit.hwnd) + + async def coroutine(): + await (media_capture.initialize_async() or asyncio.sleep(0)) + asyncio.run(coroutine()) + + if not media_capture.media_capture_settings: + raise OSError("Unable to initialize a Direct3D Device.") + frame_pool = Direct3D11CaptureFramePool.create_free_threaded( + media_capture.media_capture_settings.direct3_d11_device, + DirectXPixelFormat.B8_G8_R8_A8_UINT_NORMALIZED, + 1, + item.size) + if not frame_pool: + raise OSError("Unable to create a frame pool for a capture session.") + session = frame_pool.create_capture_session(item) + if not session: + raise OSError("Unable to create a capture session.") + session.is_cursor_capture_enabled = False + if WINDOWS_BUILD_NUMBER >= WGC_NO_BORDER_MIN_BUILD: + session.is_border_required = False + session.start_capture() + + self.session = session + self.size = item.size + self.frame_pool = frame_pool + + def close(self, autosplit: AutoSplit): + if self.frame_pool: + self.frame_pool.close() + self.frame_pool = None + if self.session: + try: + self.session.close() + except OSError: + # OSError: The application called an interface that was marshalled for a different thread + # This still seems to close the session and prevent the following hard crash in LiveSplit + # pylint: disable=line-too-long + # "AutoSplit.exe " # noqa E501 + pass + self.session = None + + def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: + selection = autosplit.settings_dict["capture_region"] + # We still need to check the hwnd because WGC will return a blank black image + if not (self.check_selected_region_exists(autosplit) + # Only needed for the type-checker + and self.frame_pool): + return None, False + + try: + frame = self.frame_pool.try_get_next_frame() + # Frame pool is closed + except OSError: + return None, False + + # We were too fast and the next frame wasn't ready yet + if not frame: + return self.last_captured_frame, True + + async def coroutine(): + return await (SoftwareBitmap.create_copy_from_surface_async(frame.surface) or asyncio.sleep(0, None)) + try: + software_bitmap = asyncio.run(coroutine()) + except SystemError as exception: + # HACK: can happen when closing the GraphicsCapturePicker + if str(exception).endswith("returned a result with an error set"): + return self.last_captured_frame, True + raise + + if not software_bitmap: + # HACK: Can happen when starting the region selector + return self.last_captured_frame, True + # raise ValueError("Unable to convert Direct3D11CaptureFrame to SoftwareBitmap.") + bitmap_buffer = software_bitmap.lock_buffer(BitmapBufferAccessMode.READ_WRITE) + if not bitmap_buffer: + raise ValueError("Unable to obtain the BitmapBuffer from SoftwareBitmap.") + reference = bitmap_buffer.create_reference() + image = np.frombuffer(cast(bytes, reference), dtype=np.uint8) + image.shape = (self.size.height, self.size.width, 4) + image = image[ + selection["y"]:selection["y"] + selection["height"], + selection["x"]:selection["x"] + selection["width"], + ] + self.last_captured_frame = image + return image, False + + def recover_window(self, captured_window_title: str, autosplit: AutoSplit): + hwnd = win32gui.FindWindow(None, captured_window_title) + if not is_valid_hwnd(hwnd): + return False + autosplit.hwnd = hwnd + self.close(autosplit) + try: + self.__init__(autosplit) # pylint: disable=unnecessary-dunder-call + # Unrecordable hwnd found as the game is crashing + except OSError as exception: + if str(exception).endswith("The parameter is incorrect"): + return False + raise + return self.check_selected_region_exists(autosplit) + + def check_selected_region_exists(self, autosplit: AutoSplit): + return bool( + is_valid_hwnd(autosplit.hwnd) + and self.frame_pool + and self.session) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py new file mode 100644 index 00000000..8a6cd28f --- /dev/null +++ b/src/capture_method/__init__.py @@ -0,0 +1,235 @@ +from __future__ import annotations + +import asyncio +from collections import OrderedDict +from dataclasses import dataclass +from enum import Enum, EnumMeta, unique +from typing import TYPE_CHECKING, TypedDict + +import cv2 +from pygrabber import dshow_graph +from winsdk.windows.media.capture import MediaCapture + +from capture_method.BitBltCaptureMethod import BitBltCaptureMethod +from capture_method.DesktopDuplicationCaptureMethod import DesktopDuplicationCaptureMethod +from capture_method.ForceFullContentRenderingCaptureMethod import ForceFullContentRenderingCaptureMethod +from capture_method.interface import CaptureMethodInterface +from capture_method.VideoCaptureDeviceCaptureMethod import VideoCaptureDeviceCaptureMethod +from capture_method.WindowsGraphicsCaptureMethod import WindowsGraphicsCaptureMethod +from utils import WINDOWS_BUILD_NUMBER + +if TYPE_CHECKING: + from AutoSplit import AutoSplit + +WGC_MIN_BUILD = 17134 +"""https://docs.microsoft.com/en-us/uwp/api/windows.graphics.capture.graphicscapturepicker#applies-to""" + + +class Region(TypedDict): + x: int + y: int + width: int + height: int + + +@dataclass +class CaptureMethodInfo(): + name: str + short_description: str + description: str + implementation: type[CaptureMethodInterface] + + +class CaptureMethodMeta(EnumMeta): + # Allow checking if simple string is enum + def __contains__(self, other: str): + try: + self(other) # pyright: ignore [reportGeneralTypeIssues] pylint: disable=no-value-for-parameter + except ValueError: + return False + else: + return True + + +@unique +class CaptureMethodEnum(Enum, metaclass=CaptureMethodMeta): + # Allow TOML to save as a simple string + def __repr__(self): + return self.value + __str__ = __repr__ + + # Allow direct comparison with strings + def __eq__(self, other: object): + return self.value == other.__str__() + + # Restore hashing functionality + def __hash__(self): + return self.value.__hash__() + + NONE = "" + BITBLT = "BITBLT" + WINDOWS_GRAPHICS_CAPTURE = "WINDOWS_GRAPHICS_CAPTURE" + PRINTWINDOW_RENDERFULLCONTENT = "PRINTWINDOW_RENDERFULLCONTENT" + DESKTOP_DUPLICATION = "DESKTOP_DUPLICATION" + VIDEO_CAPTURE_DEVICE = "VIDEO_CAPTURE_DEVICE" + + +class CaptureMethodDict(OrderedDict[CaptureMethodEnum, CaptureMethodInfo]): + + def get_method_by_index(self, index: int): + if len(self) <= 0: + return CaptureMethodEnum.NONE + if index < 0: + return next(iter(self)) + return list(self.keys())[index] + + def __getitem__(self, key: CaptureMethodEnum): + if key == CaptureMethodEnum.NONE: + return NONE_CAPTURE_METHOD + try: + return super().__getitem__(key) + # If requested method does not exists... + except KeyError: + try: + # ...fallback to the first one + return super().__getitem__(self.get_method_by_index(0)) + except KeyError: + # ...fallback to an empty capture method to avoid crashes + return NONE_CAPTURE_METHOD + + +NONE_CAPTURE_METHOD = CaptureMethodInfo( + name="None", + short_description="", + description="", + implementation=CaptureMethodInterface +) + +CAPTURE_METHODS = CaptureMethodDict({ + CaptureMethodEnum.BITBLT: CaptureMethodInfo( + name="BitBlt", + short_description="fastest, least compatible", + description=( + "\nA good default fast option. But it cannot properly record " + "\nOpenGL, Hardware Accelerated or Exclusive Fullscreen windows. " + "\nThe smaller the selected region, the more efficient it is. " + ), + + implementation=BitBltCaptureMethod, + ), + CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE: CaptureMethodInfo( + name="Windows Graphics Capture", + short_description="fast, most compatible, capped at 60fps", + description=( + f"\nOnly available in Windows 10.0.{WGC_MIN_BUILD} and up. " + "\nDue to current technical limitations, it requires having at least one " + "\naudio or video Capture Device connected and enabled. Even if it won't be used. " + "\nAllows recording UWP apps, Hardware Accelerated and Exclusive Fullscreen windows. " + "\nAdds a yellow border on Windows 10 (not on Windows 11)." + "\nCaps at around 60 FPS. " + ), + implementation=WindowsGraphicsCaptureMethod, + ), + CaptureMethodEnum.DESKTOP_DUPLICATION: CaptureMethodInfo( + name="Direct3D Desktop Duplication", + short_description="slower, bound to display", + description=( + "\nDuplicates the desktop using Direct3D. " + "\nIt can record OpenGL and Hardware Accelerated windows. " + "\nAbout 10-15x slower than BitBlt. Not affected by window size. " + "\nOverlapping windows will show up and can't record across displays. " + ), + implementation=DesktopDuplicationCaptureMethod, + ), + CaptureMethodEnum.PRINTWINDOW_RENDERFULLCONTENT: CaptureMethodInfo( + name="Force Full Content Rendering", + short_description="very slow, can affect rendering pipeline", + description=( + "\nUses BitBlt behind the scene, but passes a special flag " + "\nto PrintWindow to force rendering the entire desktop. " + "\nAbout 10-15x slower than BitBlt based on original window size " + "\nand can mess up some applications' rendering pipelines. " + ), + implementation=ForceFullContentRenderingCaptureMethod, + ), + CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: CaptureMethodInfo( + name="Video Capture Device", + short_description="see below", + description=( + "\nUses a Video Capture Device, like a webcam, virtual cam, or capture card. " + "\nYou can select one below. " + "\nThere are currently performance issues, but it might be more convenient. " + "\nIf you want to use this with OBS' Virtual Camera, use the Virtualcam plugin instead " + "\nhttps://obsproject.com/forum/resources/obs-virtualcam.949/." + ), + implementation=VideoCaptureDeviceCaptureMethod, + ), +}) + + +def test_for_media_capture(): + async def coroutine(): + return await (MediaCapture().initialize_async() or asyncio.sleep(0)) + try: + asyncio.run(coroutine()) + return True + except OSError: + return False + + +# Detect and remove unsupported capture methods +if ( # Windows Graphics Capture requires a minimum Windows Build + WINDOWS_BUILD_NUMBER < WGC_MIN_BUILD + # Our current implementation of Windows Graphics Capture requires at least one CaptureDevice + or not test_for_media_capture() +): + CAPTURE_METHODS.pop(CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE) + + +def change_capture_method(selected_capture_method: CaptureMethodEnum, autosplit: AutoSplit): + autosplit.capture_method.close(autosplit) + autosplit.capture_method = CAPTURE_METHODS[selected_capture_method].implementation(autosplit) + if selected_capture_method == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: + autosplit.select_region_button.setDisabled(True) + autosplit.select_window_button.setDisabled(True) + else: + autosplit.select_region_button.setDisabled(False) + autosplit.select_window_button.setDisabled(False) + + +@dataclass +class CameraInfo(): + device_id: int + name: str + occupied: bool + backend: str + + +async def get_all_video_capture_devices() -> list[CameraInfo]: + named_video_inputs = dshow_graph.FilterGraph().get_input_devices() + + async def get_camera_info(index: int, device_name: str): + video_capture = cv2.VideoCapture(index) + video_capture.setExceptionMode(True) + backend = "" + try: + # https://docs.opencv.org/3.4/d4/d15/group__videoio__flags__base.html#ga023786be1ee68a9105bf2e48c700294d + backend = video_capture.getBackendName() # STS_ASSERT + video_capture.grab() # STS_ERROR + except cv2.error as error: + return CameraInfo(index, device_name, True, backend) \ + if error.code in (cv2.Error.STS_ERROR, cv2.Error.STS_ASSERT) \ + else None + finally: + video_capture.release() + return CameraInfo(index, device_name, False, backend) + + future = asyncio.gather(*[ + get_camera_info(index, name) for index, name + in enumerate(named_video_inputs) + ]) + + return [ + camera_info for camera_info + in await future + if camera_info is not None] diff --git a/src/capture_method/interface.py b/src/capture_method/interface.py new file mode 100644 index 00000000..253eb6cc --- /dev/null +++ b/src/capture_method/interface.py @@ -0,0 +1,40 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +import cv2 + +from utils import is_valid_hwnd + +if TYPE_CHECKING: + from AutoSplit import AutoSplit + +# pylint: disable=no-self-use,unnecessary-dunder-call + + +class CaptureMethodInterface(): + def __init__(self, autosplit: AutoSplit | None = None): + pass + + def reinitialize(self, autosplit: AutoSplit): + self.close(autosplit) + self.__init__(autosplit) # pylint: disable=unnecessary-dunder-call + + def close(self, autosplit: AutoSplit): + pass + + def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: + """ + Captures an image of the region for a window matching the given + parameters of the bounding box + + @return: The image of the region in the window in BGRA format + """ + return None, False + + def recover_window(self, captured_window_title: str, autosplit: AutoSplit) -> bool: + return False + + def check_selected_region_exists(self, autosplit: AutoSplit) -> bool: + return is_valid_hwnd(autosplit.hwnd) +# pylint: enable=no-self-use,unnecessary-dunder-call diff --git a/src/capture_windows.py b/src/capture_windows.py deleted file mode 100644 index b9d2a402..00000000 --- a/src/capture_windows.py +++ /dev/null @@ -1,92 +0,0 @@ -from __future__ import annotations - -import ctypes -import ctypes.wintypes -from typing import TypedDict, cast - -import cv2 -import numpy as np -import pywintypes -import win32con -import win32ui -from PyQt6 import QtCore, QtGui -from PyQt6.QtWidgets import QLabel -from win32 import win32gui - -# This is an undocumented nFlag value for PrintWindow -PW_RENDERFULLCONTENT = 0x00000002 - - -class Region(TypedDict): - x: int - y: int - width: int - height: int - - -def capture_region(hwnd: int, selection: Region, print_window: bool): - """ - Captures an image of the region for a window matching the given - parameters of the bounding box - - @param hwnd: Handle to the window being captured - @param selection: The coordinates of the region - @return: The image of the region in the window in BGRA format - """ - - # If the window closes while it's being manipulated, it could cause a crash - try: - window_dc = win32gui.GetWindowDC(hwnd) - dc_object = win32ui.CreateDCFromHandle(window_dc) - - # Causes a 10-15x performance drop. But allows recording hardware accelerated windows - if print_window: - ctypes.windll.user32.PrintWindow(hwnd, dc_object.GetSafeHdc(), PW_RENDERFULLCONTENT) - - compatible_dc = dc_object.CreateCompatibleDC() - bitmap = win32ui.CreateBitmap() - bitmap.CreateCompatibleBitmap(dc_object, selection["width"], selection["height"]) - compatible_dc.SelectObject(bitmap) - compatible_dc.BitBlt( - (0, 0), - (selection["width"], selection["height"]), - dc_object, - (selection["x"], selection["y"]), - win32con.SRCCOPY) - except (win32ui.error, pywintypes.error): - return None - - image = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype="uint8") - image.shape = (selection["height"], selection["width"], 4) - - try: - dc_object.DeleteDC() - compatible_dc.DeleteDC() - win32gui.ReleaseDC(hwnd, window_dc) - win32gui.DeleteObject(bitmap.GetHandle()) - except win32ui.error: - pass - - return image - - -def set_ui_image(qlabel: QLabel, image: cv2.ndarray | None, transparency: bool): - if image is None: - # Clear current pixmap if image is None. But don't clear text - if not qlabel.text(): - qlabel.clear() - else: - if transparency: - color_code = cv2.COLOR_BGRA2RGBA - image_format = QtGui.QImage.Format.Format_RGBA8888 - else: - color_code = cv2.COLOR_BGRA2BGR - image_format = QtGui.QImage.Format.Format_BGR888 - - capture = cv2.cvtColor(image, color_code) - height, width, channels = capture.shape - qimage = QtGui.QImage(capture.data, width, height, width * channels, image_format) - qlabel.setPixmap(QtGui.QPixmap(qimage).scaled( - qlabel.size(), - QtCore.Qt.AspectRatioMode.IgnoreAspectRatio, - QtCore.Qt.TransformationMode.SmoothTransformation)) diff --git a/src/compare.py b/src/compare.py index 61c81c5a..b76b27b4 100644 --- a/src/compare.py +++ b/src/compare.py @@ -8,6 +8,8 @@ from PIL import Image from win32con import MAXBYTE +from utils import is_valid_image + MAXRANGE = MAXBYTE + 1 channels = [0, 1, 2] histogram_size = [8, 8, 8] @@ -47,7 +49,7 @@ def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray # The L2 Error is summed across all pixels, so this normalizes max_error = (source.size ** 0.5) * MAXBYTE \ - if mask is None \ + if not is_valid_image(mask)\ else (3 * np.count_nonzero(mask) * MAXBYTE * MAXBYTE) ** 0.5 if not max_error: @@ -73,7 +75,7 @@ def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarra # matchTemplate returns the sum of square differences, this is the max # that the value can be. Used for normalizing from 0 to 1. max_error = source.size * MAXBYTE * MAXBYTE \ - if mask is None \ + if not is_valid_image(mask) \ else np.count_nonzero(mask) return 1 - (min_val / max_error) @@ -94,7 +96,7 @@ def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | # each of the images. As a result of this, this function is not going to be very # helpful for large masks as the images when shrinked down to 8x8 will mostly be # the same - if mask is not None: + if is_valid_image(mask): source = cv2.bitwise_and(source, source, mask=mask) capture = cv2.bitwise_and(capture, capture, mask=mask) diff --git a/src/error_messages.py b/src/error_messages.py index 2eac0fcc..c670c7c3 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -103,3 +103,8 @@ def exception_traceback(message: str, exception: BaseException): set_text_message( message, "\n".join(traceback.format_exception(None, exception, exception.__traceback__))) + + +CREATE_NEW_ISSUE_MESSAGE = ( + "Please create a New Issue at " + + "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below") diff --git a/src/menu_bar.py b/src/menu_bar.py index 7856d874..55c8042d 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -1,18 +1,22 @@ from __future__ import annotations +import asyncio import webbrowser -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, cast import requests from packaging import version -from PyQt6 import QtWidgets +from PyQt6 import QtCore, QtWidgets from PyQt6.QtCore import QThread from requests.exceptions import RequestException import error_messages import user_profile -from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa: F401 +from capture_method import (CAPTURE_METHODS, CameraInfo, CaptureMethodEnum, change_capture_method, + get_all_video_capture_devices) +from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa F401 from hotkeys import set_hotkey +from utils import fire_and_forget if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -95,7 +99,23 @@ def check_for_updates(autosplit: AutoSplit, check_on_open: bool = False): autosplit.CheckForUpdatesThread.start() +def get_capture_method_index(capture_method: str | CaptureMethodEnum): + """ + Returns 0 if the capture_method is invalid or unsupported + """ + try: + return list(CAPTURE_METHODS.keys()).index(cast(CaptureMethodEnum, capture_method)) + except ValueError: + return 0 + + class __SettingsWidget(QtWidgets.QDialog, settings_ui.Ui_DialogSettings): + __video_capture_devices: list[CameraInfo] = [] + """ + Used to temporarily store the existing cameras, + we don't want to call `get_all_video_capture_devices` agains and possibly have a different result + """ + def __update_default_threshold(self, value: Any): self.__set_value("default_similarity_threshold", value) self.autosplit.table_current_image_threshold_label.setText( @@ -110,11 +130,75 @@ def __update_default_threshold(self, value: Any): def __set_value(self, key: str, value: Any): self.autosplit.settings_dict[key] = value + def get_capture_device_index(self, capture_device_id: int): + """ + Returns 0 if the capture_device_id is invalid + """ + try: + return [device.device_id for device in self.__video_capture_devices].index(capture_device_id) + except ValueError: + return 0 + + def __capture_method_changed(self): + selected_capture_method = CAPTURE_METHODS.get_method_by_index(self.capture_method_combobox.currentIndex()) + change_capture_method(selected_capture_method, self.autosplit) + return selected_capture_method + + def __capture_device_changed(self): + device_index = self.capture_device_combobox.currentIndex() + if device_index == -1: + return + capture_device = self.__video_capture_devices[device_index] + self.autosplit.settings_dict["capture_device_name"] = capture_device.name + self.autosplit.settings_dict["capture_device_id"] = capture_device.device_id + if self.autosplit.settings_dict["capture_method"] == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: + change_capture_method(CaptureMethodEnum.VIDEO_CAPTURE_DEVICE, self.autosplit) + + @fire_and_forget + def __set_all_capture_devices(self): + self.__video_capture_devices = asyncio.run(get_all_video_capture_devices()) + if len(self.__video_capture_devices) > 0: + for i in range(self.capture_device_combobox.count()): + self.capture_device_combobox.removeItem(i) + self.capture_device_combobox.addItems([ + f"* {device.name}" + + (f" [{device.backend}]" if device.backend else "") + + (" (occupied)" if device.occupied else "") + for device in self.__video_capture_devices]) + self.capture_device_combobox.setEnabled(True) + self.capture_device_combobox.setCurrentIndex( + self.get_capture_device_index(self.autosplit.settings_dict["capture_device_id"])) + else: + self.capture_device_combobox.setPlaceholderText("No device found.") + def __init__(self, autosplit: AutoSplit): super().__init__() self.setupUi(self) self.autosplit = autosplit +# region Build the Capture method combobox + capture_method_values = CAPTURE_METHODS.values() + self.__set_all_capture_devices() + capture_list_items = [ + f"- {method.name} ({method.short_description})" + for method in capture_method_values + ] + list_view = QtWidgets.QListView() + list_view.setWordWrap(True) + # HACK: The first time the dropdown is rendered, it does not have the right height + # Assuming all options take 2 lines (except camera and BitBlt which have 1). + # And all lines take 16 pixels + # And all separators take 2 pixels + doubled_len = 2 * len(capture_method_values) or 2 + list_view.setMinimumHeight((doubled_len - 2) * 16 + doubled_len) + list_view.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.capture_method_combobox.setView(list_view) + self.capture_method_combobox.addItems(capture_list_items) + self.capture_method_combobox.setToolTip("\n\n".join([ + f"{method.name} :\n{method.description}" + for method in capture_method_values])) +# endregion + # region Set initial values # Hotkeys self.split_input.setText(autosplit.settings_dict["split_hotkey"]) @@ -126,7 +210,11 @@ def __init__(self, autosplit: AutoSplit): # Capture Settings self.fps_limit_spinbox.setValue(autosplit.settings_dict["fps_limit"]) self.live_capture_region_checkbox.setChecked(autosplit.settings_dict["live_capture_region"]) - self.force_print_window_checkbox.setChecked(autosplit.settings_dict["force_print_window"]) + self.capture_method_combobox.setCurrentIndex( + get_capture_method_index(autosplit.settings_dict["capture_method"])) + self.capture_device_combobox.currentIndexChanged.connect(lambda: self.__set_value( + "capture_device_id", + self.__capture_device_changed())) # Image Settings self.default_comparison_method.setCurrentIndex(autosplit.settings_dict["default_comparison_method"]) @@ -150,9 +238,10 @@ def __init__(self, autosplit: AutoSplit): self.live_capture_region_checkbox.stateChanged.connect(lambda: self.__set_value( "live_capture_region", self.live_capture_region_checkbox.isChecked())) - self.force_print_window_checkbox.stateChanged.connect(lambda: self.__set_value( - "force_print_window", - self.force_print_window_checkbox.isChecked())) + self.capture_method_combobox.currentIndexChanged.connect(lambda: self.__set_value( + "capture_method", + self.__capture_method_changed())) + self.capture_device_combobox.currentIndexChanged.connect(self.__capture_device_changed) # Image Settings self.default_comparison_method.currentIndexChanged.connect(lambda: self.__set_value( @@ -190,13 +279,15 @@ def get_default_settings_from_ui(autosplit: AutoSplit): "pause_hotkey": default_settings_dialog.pause_input.text(), "fps_limit": default_settings_dialog.fps_limit_spinbox.value(), "live_capture_region": default_settings_dialog.live_capture_region_checkbox.isChecked(), - "force_print_window": default_settings_dialog.force_print_window_checkbox.isChecked(), + "capture_method": CAPTURE_METHODS.get_method_by_index( + default_settings_dialog.capture_method_combobox.currentIndex()), + "capture_device_id": default_settings_dialog.capture_device_combobox.currentIndex(), + "capture_device_name": "", "default_comparison_method": default_settings_dialog.default_comparison_method.currentIndex(), "default_similarity_threshold": default_settings_dialog.default_similarity_threshold_spinbox.value(), "default_delay_time": default_settings_dialog.default_delay_time_spinbox.value(), "default_pause_time": default_settings_dialog.default_pause_time_spinbox.value(), "loop_splits": default_settings_dialog.loop_splits_checkbox.isChecked(), - "split_image_directory": autosplit.split_image_folder_input.text(), "captured_window_title": "", "capture_region": { diff --git a/src/screen_region.py b/src/region_selection.py similarity index 72% rename from src/screen_region.py rename to src/region_selection.py index bbfb8410..5eb6b7aa 100644 --- a/src/screen_region.py +++ b/src/region_selection.py @@ -3,6 +3,7 @@ import ctypes import ctypes.wintypes import os +from math import ceil from typing import TYPE_CHECKING, cast import cv2 @@ -11,24 +12,53 @@ from PyQt6.QtTest import QTest from win32 import win32gui from win32con import GA_ROOT, MAXBYTE, SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN +from winsdk._winrt import initialize_with_window +from winsdk.windows.foundation import AsyncStatus, IAsyncOperation +from winsdk.windows.graphics.capture import GraphicsCaptureItem, GraphicsCapturePicker -import capture_windows import error_messages +from utils import get_window_bounds, is_valid_hwnd, is_valid_image if TYPE_CHECKING: from AutoSplit import AutoSplit -WINDOWS_SHADOW_SIZE = 8 -WINDOWS_TOPBAR_SIZE = 24 user32 = ctypes.windll.user32 +def __select_graphics_item(autosplit: AutoSplit): # pyright: ignore [reportUnusedFunction] + # TODO: For later as a different picker option + """ + Uses the built-in GraphicsCapturePicker to select the Window + """ + def callback(async_operation: IAsyncOperation[GraphicsCaptureItem], async_status: AsyncStatus): + try: + if async_status != AsyncStatus.COMPLETED: + return + except SystemError as exception: + # HACK: can happen when closing the GraphicsCapturePicker + if str(exception).endswith("returned a result with an error set"): + return + raise + item = async_operation.get_results() + if not item: + return + autosplit.settings_dict["captured_window_title"] = item.display_name + autosplit.capture_method.reinitialize(autosplit) + + picker = GraphicsCapturePicker() + initialize_with_window(picker, int(autosplit.effectiveWinId())) + async_operation = picker.pick_single_item_async() + # None if the selection is canceled + if async_operation: + async_operation.completed = callback + + def select_region(autosplit: AutoSplit): # Create a screen selector widget selector = SelectRegionWidget() - # Need to wait until the user has selected a region using the widget before moving on with - # selecting the window settings + # Need to wait until the user has selected a region using the widget + # before moving on with selecting the window settings while True: width = selector.width() height = selector.height() @@ -40,17 +70,19 @@ def select_region(autosplit: AutoSplit): del selector hwnd, window_text = __get_window_from_point(x, y) - # Don't select desktop - if not hwnd or not window_text: + if not is_valid_hwnd(hwnd) or not window_text: error_messages.region() return + autosplit.hwnd = hwnd autosplit.settings_dict["captured_window_title"] = window_text + autosplit.capture_method.reinitialize(autosplit) - offset_x, offset_y, *_ = win32gui.GetWindowRect(autosplit.hwnd) + left_bounds, top_bounds, *_ = get_window_bounds(hwnd) + window_x, window_y, *_ = win32gui.GetWindowRect(hwnd) __set_region_values(autosplit, - left=x - offset_x, - top=y - offset_y, + left=x - window_x - left_bounds, + top=y - window_y - top_bounds, width=width, height=height) @@ -70,24 +102,25 @@ def select_window(autosplit: AutoSplit): del selector hwnd, window_text = __get_window_from_point(x, y) - # Don't select desktop - if not hwnd or not window_text: + if not is_valid_hwnd(hwnd) or not window_text: error_messages.region() return + autosplit.hwnd = hwnd autosplit.settings_dict["captured_window_title"] = window_text + autosplit.capture_method.reinitialize(autosplit) + + # Exlude the borders and titlebar from the window selection. To only get the client area. + _, __, window_width, window_height = get_window_bounds(hwnd) + _, __, client_width, client_height = win32gui.GetClientRect(hwnd) + border_width = ceil((window_width - client_width) / 2) + titlebar_with_border_height = window_height - client_height - border_width - # Getting window bounds - # On Windows there is a shadow around the windows that we need to account for - # The top bar with the window name is also not accounted for - # HACK: This isn't an ideal solution because it assumes every window will have a top bar and shadows of default size - # FIXME: Which results in cutting *into* windows which don't have shadows or have a smaller top bars - _, __, width, height = win32gui.GetClientRect(autosplit.hwnd) __set_region_values(autosplit, - left=WINDOWS_SHADOW_SIZE, - top=WINDOWS_SHADOW_SIZE + WINDOWS_TOPBAR_SIZE, - width=width, - height=height - WINDOWS_TOPBAR_SIZE) + left=border_width, + top=titlebar_with_border_height, + width=client_width, + height=client_height - border_width * 2) def __get_window_from_point(x: int, y: int): @@ -107,7 +140,7 @@ def __get_window_from_point(x: int, y: int): def align_region(autosplit: AutoSplit): # Check to see if a region has been set - if autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): + if not autosplit.capture_method.check_selected_region_exists(autosplit): error_messages.region() return # This is the image used for aligning the capture region to the best fit for the user. @@ -115,7 +148,7 @@ def align_region(autosplit: AutoSplit): autosplit, "Select Reference Image", "", - "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)" + "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)", )[0] # Return if the user presses cancel @@ -125,18 +158,15 @@ def align_region(autosplit: AutoSplit): template = cv2.imread(template_filename, cv2.IMREAD_COLOR) # Validate template is a valid image file - if template is None: + if not is_valid_image(template): error_messages.align_region_image_type() return # Obtaining the capture of a region which contains the # subregion being searched for to align the image. - capture = capture_windows.capture_region( - autosplit.hwnd, - autosplit.settings_dict["capture_region"], - autosplit.settings_dict["force_print_window"]) + capture, _ = autosplit.capture_method.get_frame(autosplit) - if capture is None: + if not is_valid_image(capture): error_messages.region() return @@ -168,13 +198,15 @@ def __set_region_values(autosplit: AutoSplit, left: int, top: int, width: int, h autosplit.height_spinbox.setValue(height) -def __test_alignment(capture: cv2.ndarray, template: cv2.ndarray): - # Obtain the best matching point for the template within the - # capture. This assumes that the template is actually smaller - # than the dimensions of the capture. Since we are using SQDIFF - # the best match will be the min_val which is located at min_loc. - # The best match found in the image, set everything to 0 by default - # so that way the first match will overwrite these values +def __test_alignment(capture: cv2.Mat, template: cv2.Mat): # pylint: disable=too-many-locals + """ + Obtain the best matching point for the template within the + capture. This assumes that the template is actually smaller + than the dimensions of the capture. Since we are using SQDIFF + the best match will be the min_val which is located at min_loc. + The best match found in the image, set everything to 0 by default + so that way the first match will overwrite these values + """ best_match = 0.0 best_height = 0 best_width = 0 @@ -216,7 +248,7 @@ def validate_before_parsing(autosplit: AutoSplit, show_error: bool = True, check error = error_messages.split_image_directory_not_found elif check_empty_directory and not os.listdir(autosplit.settings_dict["split_image_directory"]): error = error_messages.split_image_directory_empty - elif autosplit.hwnd <= 0 or not win32gui.GetWindowText(autosplit.hwnd): + elif not autosplit.capture_method.check_selected_region_exists(autosplit): error = error_messages.region if error and show_error: error() @@ -252,17 +284,22 @@ def keyPressEvent(self, a0: QtGui.QKeyEvent): self.close() -# Widget to select a window and obtain its bounds class SelectWindowWidget(BaseSelectWidget): + """ + Widget to select a window and obtain its bounds + """ + def mouseReleaseEvent(self, a0: QtGui.QMouseEvent): self._x = int(a0.position().x()) + self.geometry().x() self._y = int(a0.position().y()) + self.geometry().y() self.close() -# Widget for dragging screen region -# https://github.com/harupy/snipping-tool class SelectRegionWidget(BaseSelectWidget): + """ + Widget for dragging screen region + https://github.com/harupy/snipping-tool + """ _right: int = 0 _bottom: int = 0 __begin = QtCore.QPoint() diff --git a/src/split_parser.py b/src/split_parser.py index b43208cc..26ad1521 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -5,6 +5,7 @@ import error_messages from AutoSplitImage import AutoSplitImage, ImageType +from utils import is_valid_image if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -187,7 +188,7 @@ def parse_and_validate_images(autosplit: AutoSplit): # according to all of the settings selected by the user. for image in autosplit.split_images: # Test for image without transparency - if image.byte_array is None: + if not is_valid_image(image.byte_array): autosplit.gui_changes_on_reset() return False diff --git a/src/user_profile.py b/src/user_profile.py index f44ddca1..54e13267 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -7,10 +7,9 @@ import keyboard import toml from PyQt6 import QtCore, QtWidgets -from win32 import win32gui import error_messages -from capture_windows import Region +from capture_method import CAPTURE_METHODS, CaptureMethodEnum, Region, change_capture_method from gen import design from hotkeys import set_hotkey @@ -30,7 +29,9 @@ class UserProfileDict(TypedDict): pause_hotkey: str fps_limit: int live_capture_region: bool - force_print_window: bool + capture_method: str | CaptureMethodEnum + capture_device_id: int + capture_device_name: str default_comparison_method: int default_similarity_threshold: float default_delay_time: int @@ -50,7 +51,9 @@ class UserProfileDict(TypedDict): pause_hotkey="", fps_limit=60, live_capture_region=True, - force_print_window=False, + capture_method=CAPTURE_METHODS.get_method_by_index(0), + capture_device_id=0, + capture_device_name="", default_comparison_method=0, default_similarity_threshold=0.95, default_delay_time=0, @@ -144,14 +147,13 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str if autosplit.settings_dict["pause_hotkey"]: set_hotkey(autosplit, "pause", autosplit.settings_dict["pause_hotkey"]) - if autosplit.settings_dict["captured_window_title"]: - hwnd = win32gui.FindWindow(None, autosplit.settings_dict["captured_window_title"]) - if hwnd: - autosplit.hwnd = hwnd - else: - autosplit.live_image.setText("Reload settings after opening" - + f'\n"{autosplit.settings_dict["captured_window_title"]}"' - + "\nto automatically load Capture Region") + change_capture_method(cast(CaptureMethodEnum, autosplit.settings_dict["capture_method"]), autosplit) + autosplit.capture_method.recover_window(autosplit.settings_dict["captured_window_title"], autosplit) + if not autosplit.capture_method.check_selected_region_exists(autosplit): + autosplit.live_image.setText("Reload settings after opening" + + f'\n"{autosplit.settings_dict["captured_window_title"]}"' + + "\nto automatically load Capture Region") + return True @@ -177,13 +179,17 @@ def load_settings_on_open(autosplit: AutoSplit): in os.listdir(auto_split_directory) if file.endswith(".toml")] - # find all .tomls in AutoSplit folder, error if there is none or more than 1 + # Find all .tomls in AutoSplit folder, error if there is not exactly 1 + error = None if len(settings_files) < 1: - error_messages.no_settings_file_on_open() - return - if len(settings_files) > 1: - error_messages.too_many_settings_files_on_open() + error = error_messages.no_settings_file_on_open + elif len(settings_files) > 1: + error = error_messages.too_many_settings_files_on_open + if error: + change_capture_method(CAPTURE_METHODS.get_method_by_index(0), autosplit) + error() return + load_settings(autosplit, os.path.join(auto_split_directory, settings_files[0])) diff --git a/src/utils.py b/src/utils.py new file mode 100644 index 00000000..07f8c23d --- /dev/null +++ b/src/utils.py @@ -0,0 +1,109 @@ +from __future__ import annotations + +import asyncio +import ctypes +import ctypes.wintypes +import os +import sys +from collections.abc import Callable, Iterable +from platform import version +from threading import Thread +from typing import TYPE_CHECKING, Any, TypeVar, cast + +import cv2 +from win32 import win32gui + +from gen.build_vars import AUTOSPLIT_BUILD_NUMBER + +if TYPE_CHECKING: + from typing_extensions import TypeGuard + +DWMWA_EXTENDED_FRAME_BOUNDS = 9 + + +def decimal(value: int | float): + return f"{int(value * 100) / 100:.2f}" + + +def is_digit(value: str | int | None): + """ + Checks if `value` is a single-digit string from 0-9 + """ + if value is None: + return False + try: + return 0 <= int(value) <= 9 + except (ValueError, TypeError): + return False + + +def is_valid_image(image: cv2.Mat | None) -> TypeGuard[cv2.Mat]: + return image is not None and bool(image.size) + + +def is_valid_hwnd(hwnd: int): + """Validate the hwnd points to a valid window and not the desktop or whatever window obtained with `\"\"`""" + if not hwnd: + return False + if sys.platform == "win32": + return bool(win32gui.IsWindow(hwnd) and win32gui.GetWindowText(hwnd)) + return True + + +T = TypeVar("T") + + +def first(iterable: Iterable[T]) -> T: + """@return: The first element of a collection. Dictionaries will return the first key""" + return next(iter(iterable)) + + +def get_window_bounds(hwnd: int) -> tuple[int, int, int, int]: + extended_frame_bounds = ctypes.wintypes.RECT() + ctypes.windll.dwmapi.DwmGetWindowAttribute( + hwnd, + DWMWA_EXTENDED_FRAME_BOUNDS, + ctypes.byref(extended_frame_bounds), + ctypes.sizeof(extended_frame_bounds)) + + window_rect = win32gui.GetWindowRect(hwnd) + window_left_bounds = cast(int, extended_frame_bounds.left) - window_rect[0] + window_top_bounds = cast(int, extended_frame_bounds.top) - window_rect[1] + window_width = cast(int, extended_frame_bounds.right) - cast(int, extended_frame_bounds.left) + window_height = cast(int, extended_frame_bounds.bottom) - cast(int, extended_frame_bounds.top) + return window_left_bounds, window_top_bounds, window_width, window_height + + +def fire_and_forget(func: Callable[..., Any]): + """ + Runs synchronous function asynchronously without waiting for a response + + Uses threads on Windows because `RuntimeError: There is no current event loop in thread 'MainThread'.` + + Uses asyncio on Linux because of a `Segmentation fault (core dumped)` + """ + def wrapped(*args: Any, **kwargs: Any): + if sys.platform == "win32": + thread = Thread(target=func, args=args, kwargs=kwargs) + thread.start() + return thread + return asyncio.get_event_loop().run_in_executor(None, func, *args, *kwargs) + + return wrapped + + +# Environment specifics +WINDOWS_BUILD_NUMBER = int(version().split(".")[2]) +FIRST_WIN_11_BUILD = 22000 +"""AutoSplit Version number""" +FROZEN = hasattr(sys, "frozen") +"""Running from build made by PyInstaller""" +auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) +"""The directory of either AutoSplit.exe or AutoSplit.py""" + +# Shared strings +# DIRTY_VERSION_EXTENSION = "" +DIRTY_VERSION_EXTENSION = "-" + AUTOSPLIT_BUILD_NUMBER +"""Set DIRTY_VERSION_EXTENSION to an empty string to generate a clean version number""" +AUTOSPLIT_VERSION = "2.0.0-alpha.4" + DIRTY_VERSION_EXTENSION +START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" diff --git a/typings/d3dshot/__init__.pyi b/typings/d3dshot/__init__.pyi new file mode 100644 index 00000000..882abe1f --- /dev/null +++ b/typings/d3dshot/__init__.pyi @@ -0,0 +1,13 @@ +from d3dshot.capture_output import CaptureOutputs as CaptureOutputs +from d3dshot.d3dshot import D3DShot as D3DShot + +pil_is_available: bool +numpy_is_available: bool +pytorch_is_available: bool +pytorch_gpu_is_available: bool +capture_output_mapping: dict[str, CaptureOutputs] +capture_outputs: list[str] + + +def determine_available_capture_outputs() -> list[CaptureOutputs]: ... +def create(capture_output: str = ..., frame_buffer_size: int = ...) -> D3DShot: ... diff --git a/typings/d3dshot/capture_output.pyi b/typings/d3dshot/capture_output.pyi new file mode 100644 index 00000000..ec338a77 --- /dev/null +++ b/typings/d3dshot/capture_output.pyi @@ -0,0 +1,35 @@ +import enum +from typing import Any + +from _typeshed import Incomplete +from PIL.Image import Image +from typing_extensions import TypeAlias + +Frame: TypeAlias = Any +# Frame: TypeAlias = Image | npt.NDArray[np.int32] | npt.NDArray[np.float32] | torch.Tensor +Pointer: TypeAlias = Incomplete + + +class CaptureOutputs(enum.Enum): + PIL: int + NUMPY: int + NUMPY_FLOAT: int + PYTORCH: int + PYTORCH_FLOAT: int + PYTORCH_GPU: int + PYTORCH_FLOAT_GPU: int + + +class CaptureOutputError(BaseException): + ... + + +class CaptureOutput: + backend: CaptureOutput + def __init__(self, backend: CaptureOutputs = ...) -> None: ... + + def process( + self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int + ) -> Frame: ... + def to_pil(self, frame: Frame) -> Image: ... + def stack(self, frames: list[Frame], stack_dimension) -> Frame: ... diff --git a/typings/d3dshot/capture_outputs/__init__.pyi b/typings/d3dshot/capture_outputs/__init__.pyi new file mode 100644 index 00000000..e69de29b diff --git a/typings/d3dshot/capture_outputs/numpy_capture_output.pyi b/typings/d3dshot/capture_outputs/numpy_capture_output.pyi new file mode 100644 index 00000000..e165ef32 --- /dev/null +++ b/typings/d3dshot/capture_outputs/numpy_capture_output.pyi @@ -0,0 +1,19 @@ +import numpy as np +import numpy.typing as npt +from _typeshed import Incomplete +from d3dshot.capture_output import CaptureOutput as CaptureOutput +from PIL.Image import Image +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete +NDArray: TypeAlias = npt.NDArray[np.int32] + + +class NumpyCaptureOutput(CaptureOutput): + def __init__(self) -> None: ... + + def process( + self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int + ) -> NDArray: ... + def to_pil(self, frame: NDArray) -> Image: ... + def stack(self, frames: list[NDArray] | NDArray, stack_dimension: int) -> NDArray: ... diff --git a/typings/d3dshot/capture_outputs/numpy_float_capture_output.pyi b/typings/d3dshot/capture_outputs/numpy_float_capture_output.pyi new file mode 100644 index 00000000..96226290 --- /dev/null +++ b/typings/d3dshot/capture_outputs/numpy_float_capture_output.pyi @@ -0,0 +1,19 @@ +import numpy as np +import numpy.typing as npt +from _typeshed import Incomplete +from d3dshot.capture_output import CaptureOutput as CaptureOutput +from PIL.Image import Image +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete +NDArray: TypeAlias = npt.NDArray[np.float32] + + +class NumpyFloatCaptureOutput(CaptureOutput): + def __init__(self) -> None: ... + + def process( + self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int + ) -> NDArray: ... + def to_pil(self, frame: NDArray) -> Image: ... + def stack(self, frames: list[NDArray] | NDArray, stack_dimension: int) -> NDArray: ... diff --git a/typings/d3dshot/capture_outputs/pil_capture_output.pyi b/typings/d3dshot/capture_outputs/pil_capture_output.pyi new file mode 100644 index 00000000..553d48bf --- /dev/null +++ b/typings/d3dshot/capture_outputs/pil_capture_output.pyi @@ -0,0 +1,16 @@ +from _typeshed import Incomplete +from d3dshot.capture_output import CaptureOutput as CaptureOutput +from PIL.Image import Image +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete + + +class PILCaptureOutput(CaptureOutput): + def __init__(self) -> None: ... + + def process( + self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int + ) -> Image: ... + def to_pil(self, frame: Image) -> Image: ... + def stack(self, frames: list[Image], stack_dimension: int) -> list[Image]: ... diff --git a/typings/d3dshot/capture_outputs/pytorch_capture_output.pyi b/typings/d3dshot/capture_outputs/pytorch_capture_output.pyi new file mode 100644 index 00000000..fde2eb95 --- /dev/null +++ b/typings/d3dshot/capture_outputs/pytorch_capture_output.pyi @@ -0,0 +1,17 @@ +import torch +from _typeshed import Incomplete +from d3dshot.capture_output import CaptureOutput as CaptureOutput +from PIL.Image import Image +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete + + +class PytorchCaptureOutput(CaptureOutput): + def __init__(self) -> None: ... + + def process( + self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int + ) -> torch.Tensor: ... + def to_pil(self, frame: torch.Tensor) -> Image: ... + def stack(self, frames: list[torch.Tensor], stack_dimension: int) -> torch.Tensor: ... diff --git a/typings/d3dshot/capture_outputs/pytorch_float_capture_output.pyi b/typings/d3dshot/capture_outputs/pytorch_float_capture_output.pyi new file mode 100644 index 00000000..e6264993 --- /dev/null +++ b/typings/d3dshot/capture_outputs/pytorch_float_capture_output.pyi @@ -0,0 +1,17 @@ +import torch +from _typeshed import Incomplete +from d3dshot.capture_output import CaptureOutput as CaptureOutput +from PIL.Image import Image +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete + + +class PytorchFloatCaptureOutput(CaptureOutput): + def __init__(self) -> None: ... + + def process( + self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int + ) -> torch.Tensor: ... + def to_pil(self, frame: torch.Tensor) -> Image: ... + def stack(self, frames: list[torch.Tensor], stack_dimension: int) -> torch.Tensor: ... diff --git a/typings/d3dshot/capture_outputs/pytorch_float_gpu_capture_output.pyi b/typings/d3dshot/capture_outputs/pytorch_float_gpu_capture_output.pyi new file mode 100644 index 00000000..ec685f18 --- /dev/null +++ b/typings/d3dshot/capture_outputs/pytorch_float_gpu_capture_output.pyi @@ -0,0 +1,18 @@ +import torch +from _typeshed import Incomplete +from d3dshot.capture_output import CaptureOutput as CaptureOutput +from PIL.Image import Image +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete + + +class PytorchFloatGPUCaptureOutput(CaptureOutput): + device: Incomplete + def __init__(self) -> None: ... + + def process( + self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int + ) -> torch.Tensor: ... + def to_pil(self, frame: torch.Tensor) -> Image: ... + def stack(self, frames: list[torch.Tensor], stack_dimension: int) -> torch.Tensor: ... diff --git a/typings/d3dshot/capture_outputs/pytorch_gpu_capture_output.pyi b/typings/d3dshot/capture_outputs/pytorch_gpu_capture_output.pyi new file mode 100644 index 00000000..e8cbfb11 --- /dev/null +++ b/typings/d3dshot/capture_outputs/pytorch_gpu_capture_output.pyi @@ -0,0 +1,18 @@ +import torch +from _typeshed import Incomplete +from d3dshot.capture_output import CaptureOutput as CaptureOutput +from PIL.Image import Image +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete + + +class PytorchGPUCaptureOutput(CaptureOutput): + device: torch.device + def __init__(self) -> None: ... + + def process( + self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int + ) -> torch.Tensor: ... + def to_pil(self, frame: torch.Tensor) -> Image: ... + def stack(self, frames: list[torch.Tensor], stack_dimension: int): ... diff --git a/typings/d3dshot/d3dshot.pyi b/typings/d3dshot/d3dshot.pyi new file mode 100644 index 00000000..bea62ad8 --- /dev/null +++ b/typings/d3dshot/d3dshot.pyi @@ -0,0 +1,50 @@ +from collections import deque +from typing import Any + +from d3dshot.capture_output import CaptureOutput as CaptureOutput, CaptureOutputs as CaptureOutputs +from d3dshot.display import Display as Display +from typing_extensions import TypeAlias + +Frame: TypeAlias = Any +# Frame: TypeAlias = Image | npt.NDArray[np.int32] | npt.NDArray[np.float32] | torch.Tensor + + +class D3DShot: + displays: list[Display] + display: Display + capture_output: CaptureOutput + frame_buffer_size: int + frame_buffer: deque[Frame] + previous_screenshot: Frame | None + region: tuple[int, int, int, int] | None + + def __init__( + self, + capture_output: CaptureOutputs = ..., + frame_buffer_size: int = ..., + pil_is_available: bool = ..., + numpy_is_available: bool = ..., + pytorch_is_available: bool = ..., + pytorch_gpu_is_available: bool = ..., + ) -> None: ... + @property + def is_capturing(self) -> bool: ... + def get_latest_frame(self) -> Frame | None: ... + def get_frame(self, frame_index: int) -> Frame | None: ... + def get_frames(self, frame_indices: list[int]) -> list[Frame]: ... + def get_frame_stack(self, frame_indices: list[int], stack_dimension: str | None = ...) -> Frame: ... + def screenshot(self, region: tuple[int, int, int, int] | None = ...) -> Frame | None: ... + + def screenshot_to_disk( + self, directory: str | None = ..., file_name: str | None = ..., region: tuple[int, int, int, int] | None = ... + ) -> str: ... + def frame_buffer_to_disk(self, directory: str | None = ...) -> None: ... + def capture(self, target_fps: int = ..., region: tuple[int, int, int, int] | None = ...) -> bool: ... + def screenshot_every(self, interval: float, region: tuple[int, int, int, int] | None = ...) -> bool: ... + + def screenshot_to_disk_every( + self, interval: float, directory: str | None = ..., region: tuple[int, int, int, int] | None = ... + ) -> bool: ... + def stop(self) -> bool: ... + def benchmark(self) -> None: ... + def detect_displays(self) -> None: ... diff --git a/typings/d3dshot/display.pyi b/typings/d3dshot/display.pyi new file mode 100644 index 00000000..f2df9ab9 --- /dev/null +++ b/typings/d3dshot/display.pyi @@ -0,0 +1,48 @@ +from collections.abc import Callable +from typing import Any, Literal + +from _typeshed import Incomplete +from typing_extensions import TypeAlias + +Frame: TypeAlias = Any +# Frame: TypeAlias = Image | npt.NDArray[np.int32] | npt.NDArray[np.float32] | torch.Tensor +Pointer: TypeAlias = Incomplete + + +class Display: + name: str + adapter_name: str + resolution: tuple[int, int] + position: dict[Literal["left", "top", "right", "bottom"], int] + rotation: int + scale_factor: int + is_primary: bool + hmonitor: int + dxgi_output: Incomplete | None + dxgi_adapter: Incomplete | None + d3d_device: Incomplete # ctypes.POINTER(ID3D11Device)() + d3d_device_context: Incomplete # ctypes.POINTER(ID3D11DeviceContext)() + dxgi_output_duplication: Incomplete # ctypes.POINTER(IDXGIOutputDuplication)() + + def __init__( + self, + name: str | None = ..., + adapter_name: str | None = ..., + resolution: tuple[int, int] | None = ..., + position: dict[Literal["left", "top", "right", "bottom"], int] | None = ..., + rotation: int | None = ..., + scale_factor: int | None = ..., + is_primary: bool = ..., + hmonitor: int | None = ..., + dxgi_output: Incomplete | None = ..., + dxgi_adapter: Incomplete | None = ..., + ) -> None: ... + + def capture( + self, + # Incomplete: dxgi_mapped_rect.pBits + process_func: Callable[[Pointer, int, int, int, tuple[int, int, int, int], int], Frame | None] | None, + region: tuple[int, int, int, int] = ..., + ) -> Frame: ... + @classmethod + def discover_displays(cls) -> list[Display]: ... diff --git a/typings/d3dshot/dll/__init__.pyi b/typings/d3dshot/dll/__init__.pyi new file mode 100644 index 00000000..e69de29b diff --git a/typings/d3dshot/dll/d3d.pyi b/typings/d3dshot/dll/d3d.pyi new file mode 100644 index 00000000..c11a7e3b --- /dev/null +++ b/typings/d3dshot/dll/d3d.pyi @@ -0,0 +1,44 @@ +import ctypes + +import comtypes +from _typeshed import Incomplete +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete + + +class DXGI_SAMPLE_DESC(ctypes.Structure): + ... + + +class D3D11_BOX(ctypes.Structure): + ... + + +class D3D11_TEXTURE2D_DESC(ctypes.Structure): + ... + + +class ID3D11DeviceChild(comtypes.IUnknown): + ... + + +class ID3D11Resource(ID3D11DeviceChild): + ... + + +class ID3D11Texture2D(ID3D11Resource): + ... + + +class ID3D11DeviceContext(ID3D11DeviceChild): + ... + + +class ID3D11Device(comtypes.IUnknown): + ... + + +def initialize_d3d_device(dxgi_adapter: Pointer) -> tuple[Pointer, Pointer]: ... +def describe_d3d11_texture_2d(d3d11_texture_2d: Pointer) -> D3D11_TEXTURE2D_DESC: ... +def prepare_d3d11_texture_2d_for_cpu(d3d11_texture_2d: Pointer, d3d_device: Pointer) -> Pointer: ... diff --git a/typings/d3dshot/dll/dxgi.pyi b/typings/d3dshot/dll/dxgi.pyi new file mode 100644 index 00000000..7947d5bc --- /dev/null +++ b/typings/d3dshot/dll/dxgi.pyi @@ -0,0 +1,98 @@ +import ctypes +from collections.abc import Callable +from typing import Any + +import comtypes +from _typeshed import Incomplete +from typing_extensions import TypeAlias + +Frame: TypeAlias = Any +# Frame: TypeAlias = Image | npt.NDArray[np.int32] | npt.NDArray[np.float32] | torch.Tensor +Pointer: TypeAlias = Incomplete + + +class LUID(ctypes.Structure): + ... + + +class DXGI_ADAPTER_DESC1(ctypes.Structure): + ... + + +class DXGI_OUTPUT_DESC(ctypes.Structure): + ... + + +class DXGI_OUTDUPL_POINTER_POSITION(ctypes.Structure): + ... + + +class DXGI_OUTDUPL_FRAME_INFO(ctypes.Structure): + ... + + +class DXGI_MAPPED_RECT(ctypes.Structure): + ... + + +class IDXGIObject(comtypes.IUnknown): + ... + + +class IDXGIDeviceSubObject(IDXGIObject): + ... + + +class IDXGIResource(IDXGIDeviceSubObject): + ... + + +class IDXGISurface(IDXGIDeviceSubObject): + ... + + +class IDXGIOutputDuplication(IDXGIObject): + ... + + +class IDXGIOutput(IDXGIObject): + ... + + +class IDXGIOutput1(IDXGIOutput): + ... + + +class IDXGIAdapter(IDXGIObject): + ... + + +class IDXGIAdapter1(IDXGIAdapter): + ... + + +class IDXGIFactory(IDXGIObject): + ... + + +class IDXGIFactory1(IDXGIFactory): + ... + + +def initialize_dxgi_factory() -> Pointer: ... # ctypes.POINTER(IDXGIFactory1)(handle.value) +def discover_dxgi_adapters(dxgi_factory: Pointer) -> list[Pointer]: ... +def describe_dxgi_adapter(dxgi_adapter: Pointer) -> Pointer: ... +def discover_dxgi_outputs(dxgi_adapter: Pointer) -> list[Pointer]: ... +def describe_dxgi_output(dxgi_output: Pointer) -> Pointer: ... +def initialize_dxgi_output_duplication(dxgi_output: Pointer, d3d_device: Pointer) -> Pointer: ... + + +def get_dxgi_output_duplication_frame( + dxgi_output_duplication: Pointer, + d3d_device: Pointer, + process_func: Callable[[Pointer, int, int, int, tuple[int, int, int, int], int], Frame | None] | None = ..., + width: int = ..., + height: int = ..., + region: tuple[int, int, int, int] | None = ..., + rotation: int = ..., +) -> Frame: ... diff --git a/typings/d3dshot/dll/shcore.pyi b/typings/d3dshot/dll/shcore.pyi new file mode 100644 index 00000000..15a24dba --- /dev/null +++ b/typings/d3dshot/dll/shcore.pyi @@ -0,0 +1 @@ +def get_scale_factor_for_monitor(hmonitor: int) -> float: ... diff --git a/typings/d3dshot/dll/user32.pyi b/typings/d3dshot/dll/user32.pyi new file mode 100644 index 00000000..b9720356 --- /dev/null +++ b/typings/d3dshot/dll/user32.pyi @@ -0,0 +1,14 @@ +import ctypes + +from _typeshed import Incomplete +from typing_extensions import TypeAlias + +Pointer: TypeAlias = Incomplete + + +class DISPLAY_DEVICE(ctypes.Structure): + ... + + +def get_display_device_name_mapping() -> dict[str, tuple[str, bool]]: ... +def get_hmonitor_by_point(x: int, y: int) -> Pointer: ... # ctypes.windll.user32.MonitorFromPoint(point, 0) From 537f8bf2be63397d07a1e920a5bdadd918aa66cb Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sat, 3 Sep 2022 17:01:25 -0400 Subject: [PATCH 27/54] Warning if AutoSplit is already open + Build number + Splash Screen + Doc update + Fixes (#161) * Doc + Setup update * typings update * Warning if AutoSplit is already open + Build number + Splash Screen * Target the right repository/fork * Fix #155 * Actions shortcut and prevent double open window Closes #154 * ImageHash hotfix --- .github/workflows/codeql-analysis.yml | 6 +- README.md | 141 +++++++------- res/about.ui | 14 +- res/design.ui | 128 +++++++------ res/icon.ico | Bin 33490 -> 15881 bytes res/settings.ui | 71 +++---- res/splash.png | Bin 0 -> 30994 bytes scripts/build.ps1 | 2 +- scripts/requirements-dev.txt | 2 +- scripts/requirements.txt | 4 +- src/AutoSplit.py | 259 ++++++++++++++------------ src/AutoSplitImage.py | 20 +- src/compare.py | 27 ++- src/error_messages.py | 77 +++++++- src/hotkeys.py | 78 +++++--- src/menu_bar.py | 93 +++++---- src/region_selection.py | 21 ++- src/split_parser.py | 11 +- src/user_profile.py | 45 ++--- src/utils.py | 3 +- typings/keyboard/__init__.pyi | 22 +-- typings/keyboard/_darwinkeyboard.pyi | 57 ++++++ typings/keyboard/_darwinmouse.pyi | 36 ++++ typings/keyboard/_generic.pyi | 7 +- typings/keyboard/_keyboard_event.pyi | 3 +- typings/keyboard/_mouse_event.pyi | 8 +- typings/keyboard/_nixcommon.pyi | 52 ++++++ typings/keyboard/_nixkeyboard.pyi | 40 ++++ typings/keyboard/_nixmouse.pyi | 55 ++++++ typings/keyboard/_winkeyboard.pyi | 238 +++++++++++++++++++++++ typings/keyboard/_winmouse.pyi | 118 ++++++++++++ typings/keyboard/mouse.pyi | 20 +- typings/pyautogui/__init__.pyi | 118 ++++++------ typings/pyautogui/_pyautogui_osx.pyi | 2 + typings/pyautogui/_pyautogui_win.pyi | 39 ++++ typings/pyautogui/_pyautogui_x11.pyi | 2 + 36 files changed, 1296 insertions(+), 523 deletions(-) create mode 100644 res/splash.png create mode 100644 typings/keyboard/_darwinkeyboard.pyi create mode 100644 typings/keyboard/_darwinmouse.pyi create mode 100644 typings/keyboard/_nixcommon.pyi create mode 100644 typings/keyboard/_nixkeyboard.pyi create mode 100644 typings/keyboard/_nixmouse.pyi create mode 100644 typings/keyboard/_winkeyboard.pyi create mode 100644 typings/keyboard/_winmouse.pyi create mode 100644 typings/pyautogui/_pyautogui_osx.pyi create mode 100644 typings/pyautogui/_pyautogui_win.pyi create mode 100644 typings/pyautogui/_pyautogui_x11.pyi diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f74d7190..55844c5a 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -50,7 +50,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v1 + uses: github/codeql-action/autobuild@v2 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -64,4 +64,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 diff --git a/README.md b/README.md index 55d2295b..c53827e9 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=security_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) -[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) [![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=Avasam_Auto-Split) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Avasam_Auto-Split) +[![SemVer](https://badgen.net/badge/_/SemVer%20compliant/grey?label)](https://semver.org/) Easy to use image comparison based auto splitter for speedrunning on console or PC. @@ -18,28 +18,29 @@ This program can be used to automatically start, split, and reset your preferred ## DOWNLOAD AND OPEN -### Compatibility - -- Windows 7, 10, and 11. +- Download the [latest version](/../../releases/latest) -### Opening the program +### Compatibility -- Download the [latest version](/../../releases/latest) -- Extract the file and open AutoSplit.exe. +- Windows 10 and 11. ### Building (This is not required for normal use) -- Microsoft Visual C++ 14.0 or greater may be required to build the executable. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) +- Python 3.9 - 3.10. +- Microsoft Visual C++ 14.0 or greater may be required to build the executable. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/). - Node is optional, but required for complete linting (using Pyright). -- Read [requirements.txt](/scripts/requirements.txt) for more information on how to install, run and build the python code - - Run `.\scripts\install.bat` to install all dependencies - - Run the app directly with `.\scripts\start.bat [--auto-controlled]` - - Run `.\scripts\build.bat` to build an executable -- Recompile resources after modifications by running `.\scripts\compile_resources.bat` +- Read [requirements.txt](/scripts/requirements.txt) for more information on how to install, run and build the python code. + - Run `./scripts/install.ps1` to install all dependencies. + - Run the app directly with `./scripts/start.ps1 [--auto-controlled]`. + - Run `./scripts/build.ps1` to build an executable. +- Recompile resources after modifications by running `./scripts/compile_resources.ps1`. +- All configured for VSCode, including Run (F5) and Build (Ctrl+Shift+B) commands. -## Split Image Folder +## OPTIONS + +#### Split Image Folder - Supported image file types: .png, .jpg, .jpeg, .bmp, and [more](https://docs.opencv.org/3.0-beta/modules/imgcodecs/doc/reading_and_writing_images.html#imread). - Images can be any size. @@ -48,31 +49,31 @@ This program can be used to automatically start, split, and reset your preferred - Custom split image settings are handled in the filename. See how [here](#custom-split-image-settings). - To create split images, it is recommended to use AutoSplit's Take Screenshot button for accuracy. However, images can be created using any method including Print Screen and [Snipping Tool](https://support.microsoft.com/en-us/help/4027213/windows-10-open-snipping-tool-and-take-a-screenshot). -## Capture Region +#### Capture Region - This is the region that your split images are compared to. Usually, this is going to be the full game screen. -- Click "Select Region" +- Click "Select Region". - Click and drag to form a rectangle over the region you want to capture. - Adjust the x, y, width, and height of the capture region manually to make adjustments as needed. -- If you want to align your capture region by using a reference image, click "Align Region" +- If you want to align your capture region by using a reference image, click "Align Region". - You can freely move the window that the program is capturing, but resizing the window will cause the capture region to change. - Once you are happy with your capture region, you may unselect Live Capture Region to decrease CPU usage if you wish. - You can save a screenshot of the capture region to your split image folder using the Take Screenshot button. -## Avg. FPS +#### Avg. FPS - Calculates the average comparison rate of the capture region to split images. This value will likely be much higher than needed, so it is highly recommended to limit your FPS depending on the frame rate of the game you are capturing. -## OPTIONS +### Settings -### Comparison Method +#### Comparison Method - There are three comparison methods to choose from: L2 Norm, Histograms, and Perceptual Hash (or pHash). - - L2 Norm: This method should be fine to use for most cases. it finds the difference between each pixel, squares it, and sums it over the entire image and takes the square root. This is very fast but is a problem if your image is high frequency. Any translational movement or rotation can cause similarity to be very different. + - L2 Norm: This method should be fine to use for most cases. It finds the difference between each pixel, squares it, sums it over the entire image and takes the square root. This is very fast but is a problem if your image is high frequency. Any translational movement or rotation can cause similarity to be very different. - Histograms: An explanation on Histograms comparison can be found [here](https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html). This is a great method to use if you are using several masked images. - Perceptual Hash: An explanation on pHash comparison can be found [here](http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html). It is highly recommended to NOT use pHash if you use masked images. It is very inaccurate. -### Capture Method +#### Capture Method - **BitBlt** (fastest, least compatible) A good default fast option. But it cannot properly record OpenGL, Hardware Accelerated or Exclusive Fullscreen windows. @@ -96,34 +97,59 @@ This program can be used to automatically start, split, and reset your preferred There are currently performance issues, but it might be more convenient. If you want to use this with OBS' Virtual Camera, use the [Virtualcam plugin](https://obsproject.com/forum/resources/obs-virtualcam.949/) instead. -### Show Live Similarity +#### Show Live Similarity - Displays the live similarity between the capture region and the current split image. This number is between 0 and 1, with 1 being a perfect match. -### Show Highest Similarity +#### Show Highest Similarity - Shows the highest similarity between the capture region and current split image. -### Current Similarity Threshold +#### Current Similarity Threshold - When the live similarity goes above this value, the program hits your split hotkey and moves to the next split image. -### Default Similarity Threshold +#### Default Similarity Threshold - This value will be set as the threshold for an image if there is no custom threshold set for that image. -### Pause Time +#### Pause Time - Time in seconds that the program stops comparison after a split. Useful for if you have two of the same split images in a row and want to avoid double-splitting. Also useful for reducing CPU usage. -### Default Pause Time +#### Default Pause Time - This value will be set as the Pause Time for an image if there is no custom Pause Time set for that image. -### Delay Time +#### Delay Time - Time in milliseconds that the program waits before hitting the split hotkey for that specific split. +#### Dummy splits when undoing / skipping + +AutoSplit will group dummy splits together with a real split when undoing/skipping. This basically allows you to tie one or more dummy splits to a real split to keep it as in sync as possible with the real splits in LiveSplit/wsplit. If they are out of sync, you can always use "Previous Image" and "Next Image". + +Examples: +Given these splits: 1 dummy, 2 normal, 3 dummy, 4 dummy, 5 normal, 6 normal. + +In this situation you would have only 3 splits in LiveSplit/wsplit (even though there are 6 split images, only 3 are "real" splits). This basically results in 3 groups of splits: 1st split is images 1 and 2. 2nd split is images 3, 4 and 5. 3rd split is image 6. + +- If you are in the 1st or 2nd image and press the skip key, it will end up on the 3rd image +- If you are in the 3rd, 4th or 5th image and press the undo key, it will end up on the 2nd image +- If you are in the 3rd, 4th or 5th image and press the skip key, it will end up on the 6th image +- If you are in the 6th image and press the undo key, it will end up on the 5th image + +#### Loop Split Images + +If this option is enabled, when the last split meets the threshold and splits, AutoSplit will loop back to the first split image and continue comparisons. +If this option is disabled, when the last split meets the threshold and splits, AutoSplit will stop running comparisons. +This option does not loop single, specific images. See the Custom Split Image Settings section above for this feature. + +#### Auto Start On Reset + +If this option is enabled, when the reset hotkey is hit, the reset button is pressed, or the reset split image meets its threshold, AutoSplit will reset and automatically start again back at the first split image. +If this option is disabled, when the reset hotkey is hit, the reset button is pressed, or the reset split image meets its threshold, AutoSplit will stop running comparisons. + ### Custom Split Image Settings - Each split image can have different thresholds, pause times, delay split times, loop amounts, and can be flagged. @@ -131,17 +157,23 @@ This program can be used to automatically start, split, and reset your preferred - Custom thresholds are place between parenthesis `()` in the filename. This value will override the default threshold. - Custom pause times are placed between square brackets `[]` in the filename. This value will override the default pause time. - Custom delay times are placed between hash signs `##` in the filename. Note that these are in milliseconds. For example, a 10 second split delay would be `#10000#`. You cannot skip or undo splits during split delays. +- A different comparison method can be specified with their 0-base index between carets `^^`: + - `^0^`: L2 Norm + - `^1^`: Histogram + - `^2^`: Perceptual Hash - Image loop amounts are placed between at symbols `@@` in the filename. For example, a specific image that you want to split 5 times in a row would be `@5@`. The current loop # is conveniently located beneath the current split image. - Flags are placed between curly brackets `{}` in the filename. Multiple flags are placed in the same set of curly brackets. Current available flags: - - {d} dummy split image. When matched, it moves to the next image without hitting your split hotkey. - - {b} split when similarity goes below the threshold rather than above. When a split image filename has this flag, the split image similarity will go above the threshold, do nothing, and then split the next time the similarity goes below the threshold. - - {p} pause flag. When a split image filename has this flag, it will hit your pause hotkey rather than your split hokey. + - `{d}` dummy split image. When matched, it moves to the next image without hitting your split hotkey. + - `{b}` split when similarity goes below the threshold rather than above. When a split image filename has this flag, the split image similarity will go above the threshold, do nothing, and then split the next time the similarity goes below the threshold. + - `{p}` pause flag. When a split image filename has this flag, it will hit your pause hotkey rather than your split hokey. - Filename examples: - `001_SplitName_(0.9)_[10].png` is a split image with a threshold of 0.9 and a pause time of 10 seconds. - `002_SplitName_(0.9)_[10]_{d}.png` is the second split image with a threshold of 0.9, pause time of 10, and is a dummy split. - `003_SplitName_(0.85)_[20]_#3500#.png` is the third split image with a threshold of 0.85, pause time of 20 and has a delay split time of 3.5 seconds. - `004_SplitName_(0.9)_[10]_#3500#_@3@_{b}.png` is the fourth split image with a threshold of 0.9, pause time of 10 seconds, delay split time of 3.5 seconds, will loop 3 times, and will split when similarity is below the threshold rather than above. +## Special images + ### How to Create a Masked Image Masked images are very useful if only a certain part of the capture region is consistent (for example, consistent text on the screen, but the background is always different). Histogram or L2 norm comparison is recommended if you use any masked images. It is highly recommended that you do NOT use pHash comparison if you use any masked images, as it is very inaccurate. @@ -158,38 +190,6 @@ You can have one (and only one) image with the keyword `reset` in its name. Auto The start image is similar to the reset image. You can only have one start image with the keyword `start_auto_splitter`.You can reload the image using the "`Reload Start Image`" button. The pause time is the amount of seconds AutoSplit will wait before checking for the start image once a run ends/is reset. Delay times will be used to delay starting your timer after the threshold is met. If you need to pause comparison for any amount of time after the Start Image, the best option right now is to use a dummy split image `{d}` with a similarity threshold of `(0.00)` and a pause threshold `[]` of however long you need to pause comparison as your first split image. This will trigger the pause immediately after your timer is started. -### Timer Global Hotkeys - -- Click "Set Hotkey" on each hotkey to set the hotkeys to AutoSplit. The Start / Split hotkey and Pause hotkey must be the same as the one used in your preferred timer program in order for the splitting/pausing to work properly. -- Make sure that Global Hotkeys are enabled in your speedrun timer. -- All of these actions can also be handled by their corresponding buttons. -- Note that pressing your Pause Hotkey does not serve any function in AutoSplit itself and is strictly used for the Pause flag. - -### Dummy splits when undoing / skipping - -AutoSplit will group dummy splits together with a real split when undoing/skipping. This basically allows you to tie one or more dummy splits to a real split to keep it as in sync as possible with the real splits in LiveSplit/wsplit. If they are out of sync, you can always use "Previous Image" and "Next Image". - -Examples: -Given these splits: 1 dummy, 2 normal, 3 dummy, 4 dummy, 5 normal, 6 normal. - -In this situation you would have only 3 splits in LiveSplit/wsplit (even though there are 6 split images, only 3 are "real" splits). This basically results in 3 groups of splits: 1st split is images 1 and 2. 2nd split is images 3, 4 and 5. 3rd split is image 6. - -- If you are in the 1st or 2nd image and press the skip key, it will end up on the 3rd image -- If you are in the 3rd, 4th or 5th image and press the undo key, it will end up on the 2nd image -- If you are in the 3rd, 4th or 5th image and press the skip key, it will end up on the 6th image -- If you are in the 6th image and press the undo key, it will end up on the 5th image - -### Loop Split Images - -If this option is enabled, when the last split meets the threshold and splits, AutoSplit will loop back to the first split image and continue comparisons. -If this option is disabled, when the last split meets the threshold and splits, AutoSplit will stop running comparisons. -This option does not loop single, specific images. See the Custom Split Image Settings section above for this feature. - -### Auto Start On Reset - -If this option is enabled, when the reset hotkey is hit, the reset button is pressed, or the reset split image meets its threshold, AutoSplit will reset and automatically start again back at the first split image. -If this option is disabled, when the reset hotkey is hit, the reset button is pressed, or the reset split image meets its threshold, AutoSplit will stop running comparisons. - ### Profiles - Profiles are saved under `%appdata%\AutoSplit\profiles` and use the extension `.toml`. Profiles can be saved and loaded by using File -> Save Profile As... and File -> Load Profile. @@ -197,14 +197,23 @@ If this option is disabled, when the reset hotkey is hit, the reset button is pr - You can save multiple profiles, which is useful if you speedrun multiple games. - If you change your display setup (like using a new monitor, or upgrading to Windows 11), you may need to readjust or reselect your Capture Region. -## LiveSplit Integration +## Timer Integration + +### Timer Global Hotkeys + +- Click "Set Hotkey" on each hotkey to set the hotkeys to AutoSplit. The Start / Split hotkey and Pause hotkey must be the same as the one used in your preferred timer program in order for the splitting/pausing to work properly. +- Make sure that Global Hotkeys are enabled in your speedrun timer. +- All of these actions can also be handled by their corresponding buttons. +- Note that pressing your Pause Hotkey does not serve any function in AutoSplit itself and is strictly used for the Pause flag. + +### LiveSplit Integration The AutoSplit LiveSplit Component will directly connect AutoSplit with LiveSplit. LiveSplit integration is only supported in AutoSplit v1.6.0 or higher. This integration will allow you to: - Use hotkeys directly from LiveSplit to control AutoSplit and LiveSplit together - Load AutoSplit and any AutoSplit profile automatically when opening a LiveSplit layout. -### LiveSplit Integration Tutorial +#### LiveSplit Integration Tutorial - Click [here](https://github.com/Toufool/LiveSplit.AutoSplitIntegration/raw/main/update/Components/LiveSplit.AutoSplitIntegration.dll) to download the latest component. - Place the .dll file into your `[...]\LiveSplit\Components` folder. diff --git a/res/about.ui b/res/about.ui index 4cb2cc3d..05e4914a 100644 --- a/res/about.ui +++ b/res/about.ui @@ -52,7 +52,7 @@ 10 44 - 161 + 171 32 @@ -112,10 +112,10 @@ consider donating. Thank you! - 190 + 181 17 - 62 - 71 + 64 + 64 @@ -124,7 +124,13 @@ consider donating. Thank you! :/resources/icon.ico + + true + + icon_label + version_label + created_by_label diff --git a/res/design.ui b/res/design.ui index c53cc31f..a34632df 100644 --- a/res/design.ui +++ b/res/design.ui @@ -40,12 +40,6 @@ :/resources/icon.ico:/resources/icon.ico - - - - - Qt::LeftToRight - @@ -172,7 +166,7 @@ 92 - 255 + 254 20 20 @@ -184,8 +178,8 @@ - 119 - 68 + 120 + 67 320 240 @@ -212,8 +206,8 @@ - 450 - 68 + 449 + 67 320 240 @@ -231,7 +225,7 @@ - 451 + 449 31 318 20 @@ -274,7 +268,7 @@ 65 - 255 + 254 26 20 @@ -289,9 +283,12 @@ 11 200 44 - 22 + 24 + + QAbstractSpinBox::CorrectToNearestValue + 1 @@ -308,9 +305,12 @@ 66 200 44 - 22 + 24 + + QAbstractSpinBox::CorrectToNearestValue + 1 @@ -324,9 +324,9 @@ - 119 + 120 31 - 319 + 318 20 @@ -340,7 +340,7 @@ - 478 + 477 49 264 20 @@ -375,15 +375,15 @@ 11 160 44 - 22 + 24 - - false - QAbstractSpinBox::UpDownArrows + + QAbstractSpinBox::CorrectToNearestValue + 0 @@ -403,14 +403,11 @@ 66 160 44 - 22 + 24 - - false - - - QAbstractSpinBox::UpDownArrows + + QAbstractSpinBox::CorrectToNearestValue 0 @@ -813,7 +810,7 @@ 449 344 - 98 + 101 16 @@ -824,7 +821,7 @@ - 550 + 560 344 98 16 @@ -853,7 +850,7 @@ - 449 + 448 49 27 18 @@ -875,7 +872,7 @@ - 744 + 743 49 27 18 @@ -944,7 +941,10 @@ + + + @@ -963,75 +963,83 @@ View Help + + F1 + - About + About AutoSplit - - - - Split Image Settings + + QAction::AboutRole Save Profile + + Ctrl+S + Load Profile + + Ctrl+O + Save Profile As... + + Ctrl+Shift+S + Check For Updates - + + + Settings + + + Ctrl+, + + + QAction::PreferencesRole + + + true true - - true - - - Check for Updates on Open - - - Check For Updates On Open - + - Dummy Splits When Undoing/Skipping + About Qt - - - - Settings + + QAction::AboutQtRole - - - true - - - true - + - Check For Updates On Open + About Qt for Python + + + QAction::AboutQtRole diff --git a/res/icon.ico b/res/icon.ico index fae0f994402385bfa8a70d6c031bce929d865d0a..485824af146c4b97f5b6bfd6cad4e8bb1194057f 100644 GIT binary patch literal 15881 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 L)#NH=%!B_A8|p$` literal 33490 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 - - ArrowCursor + + + 9 + Settings + + + :/resources/icon.ico:/resources/icon.ico + false @@ -61,8 +67,8 @@ 22 - - ArrowCursor + + QAbstractSpinBox::CorrectToNearestValue 20 @@ -86,9 +92,6 @@ This value will limit the amount of frames per second that AutoSplit will run comparisons - - - Comparison FPS Limit: @@ -253,9 +256,6 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 16 - - - Default Pause Time (sec): @@ -272,6 +272,9 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i The amount of time in seconds that comparison will be paused before moving to the next image. + + QAbstractSpinBox::CorrectToNearestValue + 2 @@ -294,12 +297,6 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 16 - - - - - - Default Similarity Threshold: @@ -316,6 +313,9 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i Threshold that the live similarity will need to go above to consider the image a match. + + QAbstractSpinBox::CorrectToNearestValue + 1.000000000000000 @@ -363,9 +363,6 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i true - - teset - <html><head/><body><p>Custom image settings and flags are set in the <br></br> image file name. These will override the default <br></br> values. View the <a href="https://github.com/Toufool/Auto-Split#readme"><span style=" text-decoration: underline; color:#0000ff;">README</span></a> for full details on all <br></br> available custom image settings.</p></body></html> @@ -379,12 +376,6 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 16 - - - - - - Default Delay Time (ms): @@ -398,12 +389,12 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 22 - - ArrowCursor - After an image is matched, this is the amount of time in millseconds that will be delayed before splitting. + + QAbstractSpinBox::CorrectToNearestValue + 999999999 @@ -474,9 +465,6 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 20 - - Qt::StrongFocus - @@ -506,9 +494,6 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 20 - - IBeamCursor - @@ -599,9 +584,6 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 20 - - Qt::StrongFocus - @@ -670,13 +652,18 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i - split_input - reset_input - undo_split_input - skip_split_input - pause_input + set_split_hotkey_button + set_reset_hotkey_button + set_undo_split_hotkey_button + set_skip_split_hotkey_button + set_pause_hotkey_button + fps_limit_spinbox + live_capture_region_checkbox + capture_method_combobox + capture_device_combobox default_comparison_method default_similarity_threshold_spinbox + default_delay_time_spinbox default_pause_time_spinbox loop_splits_checkbox fps_limit_spinbox diff --git a/res/splash.png b/res/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..2858bdb90148d137e0f1b986f24c8ff507cee7e6 GIT binary patch literal 30994 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 B0cHRI literal 0 HcmV?d00001 diff --git a/scripts/build.ps1 b/scripts/build.ps1 index cbd5631f..4ba5a3f8 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,8 +1,8 @@ & "$PSScriptRoot/compile_resources.ps1" - pyinstaller ` --windowed ` --onefile ` --additional-hooks-dir=Pyinstaller/hooks ` --icon=res/icon.ico ` + --splash=res/splash.png ` "$PSScriptRoot/../src/AutoSplit.py" diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt index 5a8cd923..99f7134e 100644 --- a/scripts/requirements-dev.txt +++ b/scripts/requirements-dev.txt @@ -6,7 +6,7 @@ # Dependencies -r requirements.txt # -# Linting and formatters +# Linters and formatters bandit flake8>=5 # flake8-pyi deprecation warnings flake8-builtins diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 5bc12d6c..00d56180 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -7,13 +7,13 @@ # If you're having issues with the libraries, you might want to first run: # pip uninstall -y -r ./scripts/requirements-dev.txt # -# Creating anAutoSplit executable with PyInstaller: ./scripts/build.ps1 +# Creating an AutoSplit executable with PyInstaller: ./scripts/build.ps1 # # Dependencies: numpy>=1.23 # Updated types opencv-python-headless>=4.5.4,<4.6 # https://github.com/pyinstaller/pyinstaller/issues/6889 PyQt6>=6.2.1 # Python 3.10 support -git+https://github.com/JohannesBuchner/imagehash#egg=ImageHash # Contains type information +git+https://github.com/Avasam/imagehash.git@patch-2#egg=ImageHash # Contains type information + setup as package not module keyboard packaging Pillow diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 0c3e71c2..949e7e8d 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -1,24 +1,18 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- - -# Imports grouping: -# - Typings -# - Standards -# - Externals -# - Internals from __future__ import annotations import ctypes import os import signal import sys -import traceback from collections.abc import Callable from time import time -from types import FunctionType, TracebackType +from types import FunctionType import certifi import cv2 +from psutil import process_iter from PyQt6 import QtCore, QtGui from PyQt6.QtTest import QTest from PyQt6.QtWidgets import QApplication, QFileDialog, QLabel, QMainWindow, QMessageBox, QWidget @@ -26,39 +20,26 @@ import error_messages import user_profile from AutoControlledWorker import AutoControlledWorker -from AutoSplitImage import COMPARISON_RESIZE, AutoSplitImage, ImageType +from AutoSplitImage import COMPARISON_RESIZE, START_KEYWORD, AutoSplitImage, ImageType from capture_method import CaptureMethodEnum, CaptureMethodInterface from gen import about, design, settings, update_checker -from hotkeys import after_setting_hotkey, send_command -from menu_bar import (VERSION, check_for_updates, get_default_settings_from_ui, open_about, open_settings, - open_update_checker, view_help) +from hotkeys import HOTKEYS, after_setting_hotkey, send_command +from menu_bar import (about_qt, about_qt_for_python, check_for_updates, get_default_settings_from_ui, open_about, + open_settings, open_update_checker, view_help) from region_selection import align_region, select_region, select_window, validate_before_parsing from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images from user_profile import DEFAULT_PROFILE -from utils import FROZEN, START_AUTO_SPLITTER_TEXT, is_valid_image +from utils import (AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, FROZEN, START_AUTO_SPLITTER_TEXT, WINDOWS_BUILD_NUMBER, + auto_split_directory, decimal, is_valid_image) CHECK_FPS_ITERATIONS = 10 # Needed when compiled, along with the custom hook-requests PyInstaller hook os.environ["REQUESTS_CA_BUNDLE"] = certifi.where() -myappid = f"Toufool.AutoSplit.v{VERSION}" +myappid = f"Toufool.AutoSplit.v{AUTOSPLIT_VERSION}" ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) -def make_excepthook(autosplit: AutoSplit): - def excepthook(exception_type: type[BaseException], exception: BaseException, _traceback: TracebackType | None): - # Catch Keyboard Interrupts for a clean close - if exception_type is KeyboardInterrupt or isinstance(exception, KeyboardInterrupt): - sys.exit(0) - autosplit.show_error_signal.emit( - lambda: error_messages.exception_traceback( - "AutoSplit encountered an unhandled exception and will try to recover, " - + "however, there is no guarantee it will keep working properly." - + error_messages.CREATE_NEW_ISSUE_MESSAGE, - exception)) - return excepthook - - class AutoSplit(QMainWindow, design.Ui_MainWindow): # Parse command line args is_auto_controlled = "--auto-controlled" in sys.argv @@ -112,7 +93,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): highest_similarity = 0.0 reset_highest_similarity = 0.0 - # Define all other attributes + # Ensure all other attributes are defined start_image_split_below_threshold = False waiting_for_split_delay = False split_below_threshold = False @@ -121,6 +102,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): reset_image: AutoSplitImage | None = None split_images: list[AutoSplitImage] = [] split_image: AutoSplitImage | None = None + update_auto_control: QtCore.QThread | None = None def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-statements super().__init__(parent) @@ -128,35 +110,29 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s # Setup global error handling self.show_error_signal.connect(lambda errorMessageBox: errorMessageBox()) # Whithin LiveSplit excepthook needs to use MainWindow's signals to show errors - sys.excepthook = make_excepthook(self) + sys.excepthook = error_messages.make_excepthook(self) self.setupUi(self) + self.setWindowTitle(f"AutoSplit v{AUTOSPLIT_VERSION}") + # Spinbox frame disappears and reappears on Windows 11. It's much cleaner to just disable them. + # Most likely related: https://bugreports.qt.io/browse/QTBUG-95215?jql=labels%20%3D%20Windows11 + # Arrow buttons tend to move a lot as well + if WINDOWS_BUILD_NUMBER >= FIRST_WIN_11_BUILD: + self.x_spinbox.setFrame(False) + self.y_spinbox.setFrame(False) + self.width_spinbox.setFrame(False) + self.height_spinbox.setFrame(False) # Get default values defined in SettingsDialog self.settings_dict = get_default_settings_from_ui(self) user_profile.load_check_for_updates_on_open(self) - self.action_view_help.triggered.connect(view_help) - self.action_about.triggered.connect(lambda: open_about(self)) - self.action_check_for_updates.triggered.connect(lambda: check_for_updates(self)) - self.action_settings.triggered.connect(lambda: open_settings(self)) - self.action_save_profile.triggered.connect(lambda: user_profile.save_settings(self)) - self.action_save_profile_as.triggered.connect(lambda: user_profile.save_settings_as(self)) - self.action_load_profile.triggered.connect(lambda: user_profile.load_settings(self)) - - if self.SettingsWidget: - self.SettingsWidget.split_input.setEnabled(False) - self.SettingsWidget.reset_input.setEnabled(False) - self.SettingsWidget.skip_split_input.setEnabled(False) - self.SettingsWidget.undo_split_input.setEnabled(False) - self.SettingsWidget.pause_input.setEnabled(False) - if self.is_auto_controlled: self.start_auto_splitter_button.setEnabled(False) # Send version and process ID to stdout # THIS HAS TO BE THE FIRST TWO LINES SENT - print(f"{VERSION}\n{os.getpid()}", flush=True) + print(f"{AUTOSPLIT_VERSION}\n{os.getpid()}", flush=True) # Use and Start the thread that checks for updates from LiveSplit self.update_auto_control = QtCore.QThread() @@ -168,6 +144,25 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s # split image folder line edit text self.split_image_folder_input.setText("No Folder Selected") + # Connecting menu actions + self.action_view_help.triggered.connect(view_help) + self.action_about.triggered.connect(lambda: open_about(self)) + self.action_about_qt.triggered.connect(lambda: about_qt) + self.action_about_qt_for_python.triggered.connect(lambda: about_qt_for_python) + self.action_check_for_updates.triggered.connect(lambda: check_for_updates(self)) + self.action_settings.triggered.connect(lambda: open_settings(self)) + self.action_save_profile.triggered.connect(lambda: user_profile.save_settings(self)) + self.action_save_profile_as.triggered.connect(lambda: user_profile.save_settings_as(self)) + self.action_load_profile.triggered.connect(lambda: user_profile.load_settings(self)) + + # Shortcut context can't be set through the designer because of a bug in pyuic6 that generates invalid code + # Email sent to pyqt@riverbankcomputing.com + self.action_view_help.setShortcutContext(QtCore.Qt.ShortcutContext.ApplicationShortcut) + self.action_settings.setShortcutContext(QtCore.Qt.ShortcutContext.ApplicationShortcut) + self.action_save_profile.setShortcutContext(QtCore.Qt.ShortcutContext.ApplicationShortcut) + self.action_save_profile_as.setShortcutContext(QtCore.Qt.ShortcutContext.ApplicationShortcut) + self.action_load_profile.setShortcutContext(QtCore.Qt.ShortcutContext.ApplicationShortcut) + # Connecting button clicks to functions self.browse_button.clicked.connect(self.__browse) self.select_region_button.clicked.connect(lambda: select_region(self)) @@ -175,10 +170,10 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s self.start_auto_splitter_button.clicked.connect(self.__auto_splitter) self.check_fps_button.clicked.connect(self.__check_fps) self.reset_button.clicked.connect(self.reset) - self.skip_split_button.clicked.connect(self.__skip_split) - self.undo_split_button.clicked.connect(self.__undo_split) - self.next_image_button.clicked.connect(lambda: self.__skip_split(True)) - self.previous_image_button.clicked.connect(lambda: self.__undo_split(True)) + self.skip_split_button.clicked.connect(self.skip_split) + self.undo_split_button.clicked.connect(self.undo_split) + self.next_image_button.clicked.connect(lambda: self.skip_split(True)) + self.previous_image_button.clicked.connect(lambda: self.undo_split(True)) self.align_region_button.clicked.connect(lambda: align_region(self)) self.select_window_button.clicked.connect(lambda: select_window(self)) self.reload_start_image_button.clicked.connect(lambda: self.__load_start_image(True, True)) @@ -202,8 +197,8 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s self.load_start_image_signal[bool].connect(self.__load_start_image) self.load_start_image_signal[bool, bool].connect(self.__load_start_image) self.reset_signal.connect(self.reset) - self.skip_split_signal.connect(self.__skip_split) - self.undo_split_signal.connect(self.__undo_split) + self.skip_split_signal.connect(self.skip_split) + self.undo_split_signal.connect(self.undo_split) self.pause_signal.connect(self.pause) # live image checkbox @@ -213,12 +208,18 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s # Automatic timer start self.timer_start_image.timeout.connect(self.__start_image_function) - if not self.is_auto_controlled: - user_profile.load_settings_on_open(self) - self.show() - # Needs to be after Ui_MainWindow.show() to be shown overtop + try: + import pyi_splash # type: ignore # pylint: disable=import-outside-toplevel + pyi_splash.close() + except ModuleNotFoundError: + pass + + # Needs to be after Ui_MainWindow.show() to be shown on top + if not self.is_auto_controlled: + # Must also be done later to help load the saved capture window + user_profile.load_settings_on_open(self) if self.action_check_for_updates_on_open.isChecked(): check_for_updates(self, check_on_open=True) @@ -229,7 +230,7 @@ def __browse(self): new_split_image_directory = QFileDialog.getExistingDirectory( self, "Select Split Image Directory", - os.path.join(self.settings_dict["split_image_directory"] or user_profile.auto_split_directory, "..")) + os.path.join(self.settings_dict["split_image_directory"] or auto_split_directory, "..")) # If the user doesn't select a folder, it defaults to "". if new_split_image_directory: @@ -258,21 +259,21 @@ def __load_start_image(self, started_by_button: bool = False, wait_for_delay: bo self.current_image_file_label.setText("-") self.start_image_status_value_label.setText("not found") - if not self.is_auto_controlled \ - and (not self.settings_dict["split_hotkey"] - or not self.settings_dict["reset_hotkey"] - or not self.settings_dict["pause_hotkey"]): - error_messages.load_start_image() - QApplication.processEvents() - return - if not (validate_before_parsing(self, started_by_button) and parse_and_validate_images(self)): QApplication.processEvents() return - if self.start_image is None: + if self.start_image: + if not self.is_auto_controlled \ + and (not self.settings_dict["split_hotkey"] + or not self.settings_dict["reset_hotkey"] + or not self.settings_dict["pause_hotkey"]): + error_messages.load_start_image() + QApplication.processEvents() + return + else: if started_by_button: - error_messages.no_keyword_image("start_auto_splitter") + error_messages.no_keyword_image(START_KEYWORD) QApplication.processEvents() return @@ -304,24 +305,21 @@ def __start_image_function(self): capture, _ = self.__get_capture_for_comparison() start_image_threshold = self.start_image.get_similarity_threshold(self) start_image_similarity = self.start_image.compare_with_capture(self, capture) - self.table_current_image_threshold_label.setText(f"{start_image_threshold:.2f}") - - # Show live similarity if the checkbox is checked - self.table_current_image_live_label.setText(f"{start_image_similarity:.2f}") # If the similarity becomes higher than highest similarity, set it as such. if start_image_similarity > self.highest_similarity: self.highest_similarity = start_image_similarity - # Show live highest similarity if the checkbox is checked - self.table_current_image_highest_label.setText(f"{self.highest_similarity:.2f}") + self.table_current_image_threshold_label.setText(decimal(start_image_threshold)) + self.table_current_image_live_label.setText(decimal(start_image_similarity)) + self.table_current_image_highest_label.setText(decimal(self.highest_similarity)) # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold below_flag = self.start_image.check_flag(BELOW_FLAG) # Negative means belove threshold, positive means above - similarity_diff = start_image_threshold - start_image_similarity + similarity_diff = start_image_similarity - start_image_threshold if below_flag \ and not self.start_image_split_below_threshold \ and similarity_diff >= 0: @@ -389,8 +387,10 @@ def __take_screenshot(self): os.startfile(screenshot_path) # nosec def __check_fps(self): - self.fps_value_label.clear() + self.fps_value_label.setText("...") + QApplication.processEvents() if not (validate_before_parsing(self) and parse_and_validate_images(self)): + self.fps_value_label.clear() return images = self.split_images @@ -418,9 +418,9 @@ def __is_current_split_out_of_range(self): return self.split_image_number < 0 \ or self.split_image_number > len(self.split_images_and_loop_number) - 1 - def __undo_split(self, navigate_image_only: bool = False): + def undo_split(self, navigate_image_only: bool = False): """ - "Undo Split" and "Prev. Img." buttons and hotkey connect to here + "Undo Split" and "Prev. Img." buttons connect to here """ # Can't undo until timer is started # or Undoing past the first image @@ -442,9 +442,9 @@ def __undo_split(self, navigate_image_only: bool = False): if not navigate_image_only: send_command(self, "undo") - def __skip_split(self, navigate_image_only: bool = False): + def skip_split(self, navigate_image_only: bool = False): """ - "Skip Split" and "Next Img." buttons and hotkey connect to here + "Skip Split" and "Next Img." buttons connect to here """ # Can't skip or split until timer is started # or Splitting/skipping when there are no images left @@ -496,18 +496,18 @@ def __check_for_reset_state_update_ui(self): if self.settings_dict["loop_splits"]: self.start_auto_splitter_signal.emit() else: - self.gui_changes_on_reset() + self.gui_changes_on_reset(True) return True return False def __auto_splitter(self): if not self.settings_dict["split_hotkey"] and not self.is_auto_controlled: - self.gui_changes_on_reset() + self.gui_changes_on_reset(True) error_messages.split_hotkey() return if not (validate_before_parsing(self) and parse_and_validate_images(self)): - self.gui_changes_on_reset() + self.gui_changes_on_reset(True) return # Construct a list of images + loop count tuples. @@ -539,7 +539,7 @@ def __auto_splitter(self): dummy_splits_array = [image_loop[0].check_flag(DUMMY_FLAG) for image_loop in self.split_images_and_loop_number] self.run_start_time = time() - # First while loop: stays in this loop until all of the split images have been split + # First loop: stays in this loop until all of the split images have been split while self.split_image_number < number_of_split_images: # Check if we are not waiting for the split delay to send the key press @@ -555,7 +555,7 @@ def __auto_splitter(self): if not self.split_image: return - # Second while loop: stays in this loop until similarity threshold is met + # Second loop: stays in this loop until similarity threshold is met if self.__similarity_threshold_loop(number_of_split_images, dummy_splits_array): return @@ -595,7 +595,7 @@ def __auto_splitter(self): return # loop breaks to here when the last image splits - self.gui_changes_on_reset() + self.gui_changes_on_reset(True) def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_array: list[bool]): """ @@ -617,14 +617,14 @@ def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_ similarity = self.split_image.compare_with_capture(self, capture) # Show live similarity - self.table_current_image_live_label.setText(f"{similarity:.2f}") + self.table_current_image_live_label.setText(decimal(similarity)) # if the similarity becomes higher than highest similarity, set it as such. if similarity > self.highest_similarity: self.highest_similarity = similarity # show live highest similarity if the checkbox is checked - self.table_current_image_highest_label.setText(f"{self.highest_similarity:.2f}") + self.table_current_image_highest_label.setText(decimal(self.highest_similarity)) # If its the last split image and last loop number, disable the next image button # If its the first split image, disable the undo split and previous image buttons @@ -700,12 +700,11 @@ def gui_changes_on_start(self): self.previous_image_button.setEnabled(True) self.next_image_button.setEnabled(True) + # TODO: Do we actually need to disable setting new hotkeys once started? + # What does this achieve? (See below TODO) if self.SettingsWidget: - self.SettingsWidget.set_split_hotkey_button.setEnabled(False) - self.SettingsWidget.set_reset_hotkey_button.setEnabled(False) - self.SettingsWidget.set_skip_split_hotkey_button.setEnabled(False) - self.SettingsWidget.set_undo_split_hotkey_button.setEnabled(False) - self.SettingsWidget.set_pause_hotkey_button.setEnabled(False) + for hotkey in HOTKEYS: + getattr(self.SettingsWidget, f"set_{hotkey}_hotkey_button").setEnabled(False) if not self.is_auto_controlled: self.start_auto_splitter_button.setEnabled(False) @@ -715,7 +714,7 @@ def gui_changes_on_start(self): QApplication.processEvents() - def gui_changes_on_reset(self): + def gui_changes_on_reset(self, safe_to_reload_start_image: bool = False): self.start_auto_splitter_button.setText(START_AUTO_SPLITTER_TEXT) self.image_loop_value_label.setText("N/A") self.current_split_image.clear() @@ -731,12 +730,12 @@ def gui_changes_on_reset(self): self.previous_image_button.setEnabled(False) self.next_image_button.setEnabled(False) - if self.SettingsWidget: - self.SettingsWidget.set_split_hotkey_button.setEnabled(True) - self.SettingsWidget.set_reset_hotkey_button.setEnabled(True) - self.SettingsWidget.set_skip_split_hotkey_button.setEnabled(True) - self.SettingsWidget.set_undo_split_hotkey_button.setEnabled(True) - self.SettingsWidget.set_pause_hotkey_button.setEnabled(True) + # TODO: Do we actually need to disable setting new hotkeys once started? + # What does this achieve? (see above TODO) + if self.SettingsWidget and not self.is_auto_controlled: + for hotkey in HOTKEYS: + getattr(self.SettingsWidget, f"set_{hotkey}_hotkey_button").setEnabled(True) + if not self.is_auto_controlled: self.start_auto_splitter_button.setEnabled(True) self.reset_button.setEnabled(False) @@ -744,7 +743,8 @@ def gui_changes_on_reset(self): self.skip_split_button.setEnabled(False) QApplication.processEvents() - self.load_start_image_signal[bool, bool].emit(False, False) + if safe_to_reload_start_image: + self.load_start_image_signal[bool, bool].emit(False, False) def __get_capture_for_comparison(self): """ @@ -768,23 +768,26 @@ def __get_capture_for_comparison(self): else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST), is_old_image) - def __reset_if_should(self, capture: cv2.ndarray | None): + def __reset_if_should(self, capture: cv2.Mat | None): """ - Check if we should reset, resets if it's the case, and returns the result + Checks if we should reset, resets if it's the case, and returns the result """ if self.reset_image: similarity = self.reset_image.compare_with_capture(self, capture) threshold = self.reset_image.get_similarity_threshold(self) - if similarity > self.reset_highest_similarity: - self.reset_highest_similarity = similarity - - self.table_reset_image_live_label.setText(f"{similarity:.2f}") - self.table_reset_image_highest_label.setText(f"{self.reset_highest_similarity:.2f}") - self.table_reset_image_threshold_label.setText(f"{threshold:.2f}") + paused = time() - self.run_start_time <= self.reset_image.get_pause_time(self) + if paused: + should_reset = False + self.table_reset_image_live_label.setText("paused") + else: + should_reset = similarity >= threshold + if similarity > self.reset_highest_similarity: + self.reset_highest_similarity = similarity + self.table_reset_image_highest_label.setText(decimal(self.reset_highest_similarity)) + self.table_reset_image_live_label.setText(decimal(similarity)) - should_reset = similarity >= threshold \ - and time() - self.run_start_time > self.reset_image.get_pause_time(self) + self.table_reset_image_threshold_label.setText(decimal(threshold)) if should_reset: send_command(self, "reset") @@ -806,9 +809,9 @@ def __update_split_image(self, specific_image: AutoSplitImage | None = None): set_preview_image(self.current_split_image, self.split_image.byte_array, True) self.current_image_file_label.setText(self.split_image.filename) - self.table_current_image_threshold_label.setText(f"{self.split_image.get_similarity_threshold(self):.2f}") + self.table_current_image_threshold_label.setText(decimal(self.split_image.get_similarity_threshold(self))) - # Set Image Loop # + # Set Image Loop number if specific_image and specific_image.image_type == ImageType.START: self.image_loop_value_label.setText("N/A") else: @@ -825,12 +828,12 @@ def closeEvent(self, a0: QtGui.QCloseEvent | None = None): """ def exit_program(): + if self.update_auto_control: + self.update_auto_control.terminate() if a0 is not None: a0.accept() if self.is_auto_controlled: - self.update_auto_control.terminate() # stop main thread (which is probably blocked reading input) via an interrupt signal - # only available for windows in version 3.2 or higher os.kill(os.getpid(), signal.SIGINT) sys.exit() @@ -844,7 +847,7 @@ def exit_program(): # Give a different warning if there was never a settings file that was loaded successfully, # and "save as" instead of "save". settings_file_name = "Untitled" \ - if self.last_successfully_loaded_settings_file_path is None \ + if not self.last_successfully_loaded_settings_file_path \ else os.path.basename(self.last_successfully_loaded_settings_file_path) warning = QMessageBox.warning( @@ -892,11 +895,28 @@ def seconds_remaining_text(seconds: float): return f"{seconds:.1f} second{'' if 0 < seconds <= 1 else 's'} remaining" +def is_already_running(): + # When running directly in Python, any AutoSplit process means it's already open + # When bundled, we must ignore itself and the splash screen + max_processes = 3 if FROZEN else 1 + process_count = 0 + for process in process_iter(): + if process.name() == "AutoSplit.exe": + process_count += 1 + if process_count >= max_processes: + return True + return False + + def main(): # Call to QApplication outside the try-except so we can show error messages app = QApplication(sys.argv) try: app.setWindowIcon(QtGui.QIcon(":/resources/icon.ico")) + + if is_already_running(): + error_messages.already_running() + AutoSplit() if not FROZEN: @@ -907,14 +927,7 @@ def main(): exit_code = app.exec() except Exception as exception: # pylint: disable=broad-except # We really want to catch everything here - message = "AutoSplit encountered an unrecoverable exception and will now close." \ - + error_messages.CREATE_NEW_ISSUE_MESSAGE - # Print error to console if not running in executable - if FROZEN: - error_messages.exception_traceback(message, exception) - else: - traceback.print_exception(type(exception), exception, exception.__traceback__) - sys.exit(1) + error_messages.handle_top_level_exceptions(exception) # Catch Keyboard Interrupts for a clean close signal.signal(signal.SIGINT, lambda code, _: sys.exit(code)) diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index 40fa7b54..fe747356 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -19,6 +19,10 @@ COMPARISON_RESIZE_WIDTH = 320 COMPARISON_RESIZE_HEIGHT = 240 COMPARISON_RESIZE = (COMPARISON_RESIZE_WIDTH, COMPARISON_RESIZE_HEIGHT) +LOWER_BOUND = np.array([0, 0, 0, 1], dtype="uint8") +UPPER_BOUND = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") +START_KEYWORD = "start_auto_splitter" +RESET_KEYWORD = "reset" class ImageType(Enum): @@ -33,11 +37,11 @@ class AutoSplitImage(): flags: int loops: int image_type: ImageType - byte_array: cv2.ndarray | None = None - mask: cv2.ndarray | None = None + byte_array: cv2.Mat | None = None + mask: cv2.Mat | None = None # This value is internal, check for mask instead _has_transparency = False - # These values should be overriden by Defaults if None. Use getters instead + # These values should be overriden by some Defaults if None. Use getters instead __delay_time: float | None = None __comparison_method: int | None = None __pause_time: float | None = None @@ -90,9 +94,9 @@ def __init__(self, path: str): self.__similarity_threshold = threshold_from_filename(self.filename) self.__read_image_bytes(path) - if "start_auto_splitter" in self.filename: + if START_KEYWORD in self.filename: self.image_type = ImageType.START - elif "reset" in self.filename: + elif RESET_KEYWORD in self.filename: self.image_type = ImageType.RESET else: self.image_type = ImageType.SPLIT @@ -109,9 +113,7 @@ def __read_image_bytes(self, path: str): # If image has transparency, create a mask if self._has_transparency: # Create mask based on resized, nearest neighbor interpolated split image - lower = np.array([0, 0, 0, 1], dtype="uint8") - upper = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") - self.mask = cv2.inRange(image, lower, upper) + self.mask = cv2.inRange(image, LOWER_BOUND, UPPER_BOUND) # Add Alpha channel if missing elif image.shape[2] == 3: image = cv2.cvtColor(image, cv2.COLOR_BGR2BGRA) @@ -124,7 +126,7 @@ def check_flag(self, flag: int): def compare_with_capture( self, default: AutoSplit | int, - capture: cv2.ndarray | None + capture: cv2.Mat | None ): """ Compare image with capture using image's comparison method. Falls back to combobox diff --git a/src/compare.py b/src/compare.py index b76b27b4..28061777 100644 --- a/src/compare.py +++ b/src/compare.py @@ -1,9 +1,7 @@ from __future__ import annotations -from typing import cast - import cv2 -import imagehash # https://github.com/JohannesBuchner/imagehash/issues/151 +import imagehash import numpy as np from PIL import Image from win32con import MAXBYTE @@ -11,12 +9,13 @@ from utils import is_valid_image MAXRANGE = MAXBYTE + 1 -channels = [0, 1, 2] -histogram_size = [8, 8, 8] -ranges = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] +CHANNELS = [0, 1, 2] +HISTOGRAM_SIZE = [8, 8, 8] +RANGES = [0, MAXRANGE, 0, MAXRANGE, 0, MAXRANGE] +MASK_SIZE_MULTIPLIER = 3 * MAXBYTE * MAXBYTE -def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | None = None): +def compare_histograms(source: cv2.Mat, capture: cv2.Mat, mask: cv2.Mat | None = None): """ Compares two images by calculating their histograms, normalizing them, and then comparing them using Bhattacharyya distance. @@ -27,8 +26,8 @@ def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndar @return: The similarity between the histograms as a number 0 to 1. """ - source_hist = cv2.calcHist([source], channels, mask, histogram_size, ranges) - capture_hist = cv2.calcHist([capture], channels, mask, histogram_size, ranges) + source_hist = cv2.calcHist([source], CHANNELS, mask, HISTOGRAM_SIZE, RANGES) + capture_hist = cv2.calcHist([capture], CHANNELS, mask, HISTOGRAM_SIZE, RANGES) cv2.normalize(source_hist, source_hist) cv2.normalize(capture_hist, capture_hist) @@ -36,7 +35,7 @@ def compare_histograms(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndar return 1 - cv2.compareHist(source_hist, capture_hist, cv2.HISTCMP_BHATTACHARYYA) -def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | None = None): +def compare_l2_norm(source: cv2.Mat, capture: cv2.Mat, mask: cv2.Mat | None = None): """ Compares two images by calculating the L2 Error (square-root of sum of squared error) @param source: Image of any given shape @@ -57,7 +56,7 @@ def compare_l2_norm(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray return 1 - (error / max_error) -def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | None = None): +def compare_template(source: cv2.Mat, capture: cv2.Mat, mask: cv2.Mat | None = None): """ Checks if the source is located within the capture by using the sum of square differences. The mask is used to search for non-rectangular images within the capture @@ -81,7 +80,7 @@ def compare_template(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarra return 1 - (min_val / max_error) -def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | None = None): +def compare_phash(source: cv2.Mat, capture: cv2.Mat, mask: cv2.Mat | None = None): """ Compares the Perceptual Hash of the two given images and returns the similarity between the two. @@ -108,11 +107,11 @@ def compare_phash(source: cv2.ndarray, capture: cv2.ndarray, mask: cv2.ndarray | return 1 - (hash_diff / 64.0) -def check_if_image_has_transparency(image: cv2.ndarray): +def check_if_image_has_transparency(image: cv2.Mat): # Check if there's a transparency channel (4th channel) and if at least one pixel is transparent (< 255) if image.shape[2] != 4: return False - mean = cast(float, np.mean(image[:, :, 3])) + mean: float = image[:, :, 3].mean() if mean == 0: # Non-transparent images code path is usually faster and simpler, so let's return that return False diff --git a/src/error_messages.py b/src/error_messages.py index c670c7c3..d93d295b 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -1,15 +1,41 @@ +"""Error messages""" +from __future__ import annotations + +import os +import signal +import sys import traceback +from types import TracebackType +from typing import TYPE_CHECKING from PyQt6 import QtCore, QtWidgets +from utils import FROZEN, GITHUB_REPOSITORY + +if TYPE_CHECKING: + from AutoSplit import AutoSplit + + +def __exit_program(): + # stop main thread (which is probably blocked reading input) via an interrupt signal + os.kill(os.getpid(), signal.SIGINT) + sys.exit(1) + -def set_text_message(message: str, details: str = ""): +def set_text_message(message: str, details: str = "", kill_button: str = "", accept_button: str = ""): message_box = QtWidgets.QMessageBox() message_box.setWindowTitle("Error") message_box.setTextFormat(QtCore.Qt.TextFormat.RichText) message_box.setText(message) + # Button order is important for default focus + if accept_button: + message_box.addButton(accept_button, QtWidgets.QMessageBox.ButtonRole.AcceptRole) + if kill_button: + force_quit_button = message_box.addButton(kill_button, QtWidgets.QMessageBox.ButtonRole.ResetRole) + force_quit_button.clicked.connect(__exit_program) if details: message_box.setDetailedText(details) + # Preopen the details for button in message_box.buttons(): if message_box.buttonRole(button) == QtWidgets.QMessageBox.ButtonRole.ActionRole: button.click() @@ -77,6 +103,10 @@ def invalid_settings(): set_text_message("Invalid settings file.") +def invalid_hotkey(hotkey_name: str): + set_text_message(f'Invalid hotkey "{hotkey_name}"') + + def no_settings_file_on_open(): set_text_message("No settings file found. One can be loaded on open if placed in the same folder as AutoSplit.exe") @@ -99,12 +129,51 @@ def stdin_lost(): set_text_message("stdin not supported or lost, external control like LiveSplit integration will not work.") +def already_running(): + set_text_message( + "An instance of AutoSplit is already running.
Are you sure you want to open a another one?", + "", + "Don't open", + "Ignore") + + def exception_traceback(message: str, exception: BaseException): set_text_message( message, - "\n".join(traceback.format_exception(None, exception, exception.__traceback__))) + "\n".join(traceback.format_exception(None, exception, exception.__traceback__)), + "Close AutoSplit") CREATE_NEW_ISSUE_MESSAGE = ( - "Please create a New Issue at " - + "github.com/Toufool/Auto-Split/issues, describe what happened, and copy & paste the error message below") + f"Please create a New Issue at " + + f"github.com/{GITHUB_REPOSITORY}/issues, describe what happened, " + + "and copy & paste the entire error message below") + + +def make_excepthook(autosplit: AutoSplit): + def excepthook(exception_type: type[BaseException], exception: BaseException, _traceback: TracebackType | None): + # Catch Keyboard Interrupts for a clean close + if exception_type is KeyboardInterrupt or isinstance(exception, KeyboardInterrupt): + sys.exit(0) + # HACK: Can happen when starting the region selector while capturing with WindowsGraphicsCapture + if ( + exception_type is SystemError + and str(exception) == " returned a result with an error set" + ): + return + # Whithin LiveSplit excepthook needs to use MainWindow's signals to show errors + autosplit.show_error_signal.emit(lambda: exception_traceback( + "AutoSplit encountered an unhandled exception and will try to recover, " + + f"however, there is no guarantee it will keep working properly. {CREATE_NEW_ISSUE_MESSAGE}", + exception)) + return excepthook + + +def handle_top_level_exceptions(exception: Exception): + message = f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}" + # Print error to console if not running in executable + if FROZEN: + exception_traceback(message, exception) + else: + traceback.print_exception(type(exception), exception, exception.__traceback__) + sys.exit(1) diff --git a/src/hotkeys.py b/src/hotkeys.py index 55c8987d..d5fa6f90 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -1,11 +1,14 @@ from __future__ import annotations -import threading from collections.abc import Callable -from typing import TYPE_CHECKING, Literal +from typing import TYPE_CHECKING, Literal, cast import keyboard import pyautogui +from PyQt6 import QtWidgets + +from error_messages import invalid_hotkey +from utils import START_AUTO_SPLITTER_TEXT, fire_and_forget, is_digit if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -36,25 +39,14 @@ def after_setting_hotkey(autosplit: AutoSplit): Do all of these things after you set a hotkey. A signal connects to this because changing GUI stuff is only possible in the main thread """ - autosplit.start_auto_splitter_button.setEnabled(True) + if autosplit.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT: + autosplit.start_auto_splitter_button.setEnabled(True) if autosplit.SettingsWidget: for hotkey in HOTKEYS: getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setText(SET_HOTKEY_TEXT) getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setEnabled(True) -def is_digit(key: str | int | None): - """ - Checks if `key` is a single-digit string from 0-9 - """ - if key is None: - return False - try: - return 0 <= int(key) <= 9 - except ValueError: - return False - - def send_command(autosplit: AutoSplit, command: Commands): if autosplit.is_auto_controlled: print(command, flush=True) @@ -193,8 +185,31 @@ def __read_hotkey(): return __get_hotkey_name(names) -def __is_key_already_set(autosplit: AutoSplit, key_name: str): - return key_name in [autosplit.settings_dict[f"{hotkey}_hotkey"] for hotkey in HOTKEYS] +def __remove_key_already_set(autosplit: AutoSplit, key_name: str): + for hotkey in HOTKEYS: + settings_key = f"{hotkey}_hotkey" + if autosplit.settings_dict[settings_key] == key_name: + _unhook(getattr(autosplit, f"{hotkey}_hotkey")) + autosplit.settings_dict[settings_key] = "" + if autosplit.SettingsWidget: + getattr(autosplit.SettingsWidget, f"{hotkey}_input").setText("") + + +def __get_hotkey_action(autosplit: AutoSplit, hotkey: Hotkeys): + if hotkey == "split": + return autosplit.start_auto_splitter + if hotkey == "skip_split": + return lambda: autosplit.skip_split(True) + if hotkey == "undo_split": + return lambda: autosplit.undo_split(True) + return getattr(autosplit, f"{hotkey}_signal").emit + + +def is_valid_hotkey_name(hotkey_name: str): + return any( + key and not keyboard.is_modifier(keyboard.key_to_scan_codes(key)[0]) + for key + in hotkey_name.split("+")) # TODO: using getattr/setattr is NOT a good way to go about this. It was only temporarily done to # reduce duplicated code. We should use a dictionary of hotkey class or something. @@ -202,6 +217,8 @@ def __is_key_already_set(autosplit: AutoSplit, key_name: str): def set_hotkey(autosplit: AutoSplit, hotkey: Hotkeys, preselected_hotkey_name: str = ""): if autosplit.SettingsWidget: + # Unfocus all fields + cast(QtWidgets.QDialog, autosplit.SettingsWidget).setFocus() getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setText(PRESS_A_KEY_TEXT) # Disable some buttons @@ -209,20 +226,21 @@ def set_hotkey(autosplit: AutoSplit, hotkey: Hotkeys, preselected_hotkey_name: s # New thread points to callback. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey + @fire_and_forget def callback(): hotkey_name = preselected_hotkey_name if preselected_hotkey_name else __read_hotkey() - # If the key the user presses is equal to itself or another hotkey already set, - # this causes issues. so here, it catches that, and will make no changes to the hotkey. - if __is_key_already_set(autosplit, hotkey_name): - autosplit.after_setting_hotkey_signal.emit() + if not is_valid_hotkey_name(hotkey_name): + autosplit.show_error_signal.emit(lambda: invalid_hotkey(hotkey_name)) return - # We need to inspect the event to know if it comes from numpad because of _canonial_names. - # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 - # The best way to achieve this is make our own hotkey handling on top of hook - # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 - action = autosplit.start_auto_splitter if hotkey == "split" else getattr(autosplit, f"{hotkey}_signal").emit + # Try to remove the previously set hotkey if there is one + _unhook(getattr(autosplit, f"{hotkey}_hotkey")) + # Remove any hotkey using the same key combination + + __remove_key_already_set(autosplit, hotkey_name) + + action = __get_hotkey_action(autosplit, hotkey) setattr( autosplit, f"{hotkey}_hotkey", @@ -232,6 +250,10 @@ def callback(): # keyboard module allows you to hit multiple keys for a hotkey. they are joined together by +. keyboard.add_hotkey(hotkey_name, action) if "+" in hotkey_name + # We need to inspect the event to know if it comes from numpad because of _canonial_names. + # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 + # The best way to achieve this is make our own hotkey handling on top of hook + # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 else keyboard.hook_key( hotkey_name, lambda keyboard_event: _hotkey_action(keyboard_event, hotkey_name, action)) @@ -242,6 +264,4 @@ def callback(): autosplit.settings_dict[f"{hotkey}_hotkey"] = hotkey_name autosplit.after_setting_hotkey_signal.emit() - # Try to remove the previously set hotkey if there is one. - _unhook(getattr(autosplit, f"{hotkey}_hotkey")) - threading.Thread(target=callback).start() + callback() diff --git a/src/menu_bar.py b/src/menu_bar.py index 55c8042d..98458605 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -5,9 +5,8 @@ from typing import TYPE_CHECKING, Any, cast import requests -from packaging import version +from packaging.version import parse as version_parse from PyQt6 import QtCore, QtWidgets -from PyQt6.QtCore import QThread from requests.exceptions import RequestException import error_messages @@ -15,42 +14,43 @@ from capture_method import (CAPTURE_METHODS, CameraInfo, CaptureMethodEnum, change_capture_method, get_all_video_capture_devices) from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa F401 -from hotkeys import set_hotkey -from utils import fire_and_forget +from hotkeys import HOTKEYS, Hotkeys, set_hotkey +from utils import (AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, GITHUB_REPOSITORY, WINDOWS_BUILD_NUMBER, decimal, + fire_and_forget) if TYPE_CHECKING: from AutoSplit import AutoSplit -# AutoSplit Version number -VERSION = "1.6.1" - -# About Window class __AboutWidget(QtWidgets.QWidget, about.Ui_AboutAutoSplitWidget): + """About Window""" + def __init__(self): super().__init__() self.setupUi(self) self.created_by_label.setOpenExternalLinks(True) self.donate_button_label.setOpenExternalLinks(True) - self.version_label.setText(f"Version: {VERSION}") + self.version_label.setText(f"Version: {AUTOSPLIT_VERSION}") self.show() def open_about(autosplit: AutoSplit): - autosplit.AboutWidget = __AboutWidget() + if not autosplit.AboutWidget or cast(QtWidgets.QWidget, autosplit.AboutWidget).isHidden(): + autosplit.AboutWidget = __AboutWidget() class __UpdateCheckerWidget(QtWidgets.QWidget, update_checker.Ui_UpdateChecker): def __init__(self, latest_version: str, design_window: design.Ui_MainWindow, check_on_open: bool = False): super().__init__() self.setupUi(self) - self.current_version_number_label.setText(VERSION) + self.current_version_number_label.setText(AUTOSPLIT_VERSION) self.latest_version_number_label.setText(latest_version) self.left_button.clicked.connect(self.open_update) self.do_not_ask_again_checkbox.stateChanged.connect(self.do_not_ask_me_again_state_changed) self.design_window = design_window - if version.parse(latest_version) > version.parse(VERSION): + if version_parse(latest_version) > version_parse(AUTOSPLIT_VERSION): self.do_not_ask_again_checkbox.setVisible(check_on_open) + self.left_button.setFocus() self.show() elif not check_on_open: self.update_status_label.setText("You are on the latest AutoSplit version.") @@ -61,7 +61,7 @@ def __init__(self, latest_version: str, design_window: design.Ui_MainWindow, che self.show() def open_update(self): - webbrowser.open("https://github.com/Toufool/Auto-Split/releases/latest") + webbrowser.open(f"https://github.com/{GITHUB_REPOSITORY}/releases/latest") self.close() def do_not_ask_me_again_state_changed(self): @@ -71,14 +71,15 @@ def do_not_ask_me_again_state_changed(self): def open_update_checker(autosplit: AutoSplit, latest_version: str, check_on_open: bool): - autosplit.UpdateCheckerWidget = __UpdateCheckerWidget(latest_version, autosplit, check_on_open) + if not autosplit.UpdateCheckerWidget or cast(QtWidgets.QWidget, autosplit.UpdateCheckerWidget).isHidden(): + autosplit.UpdateCheckerWidget = __UpdateCheckerWidget(latest_version, autosplit, check_on_open) def view_help(): - webbrowser.open("https://github.com/Toufool/Auto-Split#tutorial") + webbrowser.open(f"https://github.com/{GITHUB_REPOSITORY}#tutorial") -class __CheckForUpdatesThread(QThread): +class __CheckForUpdatesThread(QtCore.QThread): def __init__(self, autosplit: AutoSplit, check_on_open: bool): super().__init__() self.autosplit = autosplit @@ -86,7 +87,7 @@ def __init__(self, autosplit: AutoSplit, check_on_open: bool): def run(self): try: - response = requests.get("https://api.github.com/repos/Toufool/Auto-Split/releases/latest") + response = requests.get(f"https://api.github.com/repos/{GITHUB_REPOSITORY}/releases/latest") latest_version = str(response.json()["name"]).split("v")[1] self.autosplit.update_checker_widget_signal.emit(latest_version, self.check_on_open) except (RequestException, KeyError): @@ -94,6 +95,14 @@ def run(self): self.autosplit.show_error_signal.emit(error_messages.check_for_updates) +def about_qt(): + webbrowser.open("https://wiki.qt.io/About_Qt") + + +def about_qt_for_python(): + webbrowser.open("https://wiki.qt.io/Qt_for_Python") + + def check_for_updates(autosplit: AutoSplit, check_on_open: bool = False): autosplit.CheckForUpdatesThread = __CheckForUpdatesThread(autosplit, check_on_open) autosplit.CheckForUpdatesThread.start() @@ -119,11 +128,11 @@ class __SettingsWidget(QtWidgets.QDialog, settings_ui.Ui_DialogSettings): def __update_default_threshold(self, value: Any): self.__set_value("default_similarity_threshold", value) self.autosplit.table_current_image_threshold_label.setText( - f"{self.autosplit.split_image.get_similarity_threshold(self.autosplit):.2f}" + decimal(self.autosplit.split_image.get_similarity_threshold(self.autosplit)) if self.autosplit.split_image else "-") self.autosplit.table_reset_image_threshold_label.setText( - f"{self.autosplit.reset_image.get_similarity_threshold(self.autosplit):.2f}" + decimal(self.autosplit.reset_image.get_similarity_threshold(self.autosplit)) if self.autosplit.reset_image else "-") @@ -175,6 +184,21 @@ def __init__(self, autosplit: AutoSplit): super().__init__() self.setupUi(self) self.autosplit = autosplit + # Spinbox frame disappears and reappears on Windows 11. It's much cleaner to just disable them. + # Most likely related: https://bugreports.qt.io/browse/QTBUG-95215?jql=labels%20%3D%20Windows11 + # Arrow buttons tend to move a lot as well + if WINDOWS_BUILD_NUMBER >= FIRST_WIN_11_BUILD: + self.fps_limit_spinbox.setFrame(False) + self.default_similarity_threshold_spinbox.setFrame(False) + self.default_delay_time_spinbox.setFrame(False) + self.default_pause_time_spinbox.setFrame(False) + # Don't autofocus any particular field + self.setFocus() + + self.custom_image_settings_info_label.setText( + self.custom_image_settings_info_label + .text() + .format(GITHUB_REPOSITORY=GITHUB_REPOSITORY)) # region Build the Capture method combobox capture_method_values = CAPTURE_METHODS.values() @@ -199,14 +223,21 @@ def __init__(self, autosplit: AutoSplit): for method in capture_method_values])) # endregion -# region Set initial values - # Hotkeys - self.split_input.setText(autosplit.settings_dict["split_hotkey"]) - self.reset_input.setText(autosplit.settings_dict["reset_hotkey"]) - self.undo_split_input.setText(autosplit.settings_dict["undo_split_hotkey"]) - self.skip_split_input.setText(autosplit.settings_dict["skip_split_hotkey"]) - self.pause_input.setText(autosplit.settings_dict["pause_hotkey"]) + # Hotkeys initial values and bindings + def hotkey_connect(hotkey: Hotkeys): + return lambda: set_hotkey(self.autosplit, hotkey) + for hotkey in HOTKEYS: + hotkey_input: QtWidgets.QLineEdit = getattr(self, f"{hotkey}_input") + set_hotkey_hotkey_button: QtWidgets.QPushButton = getattr(self, f"set_{hotkey}_hotkey_button") + hotkey_input.setText(cast(str, autosplit.settings_dict[f"{hotkey}_hotkey"])) + + set_hotkey_hotkey_button.clicked.connect(hotkey_connect(hotkey)) + # Make it very clear that hotkeys are not used when auto-controlled + if autosplit.is_auto_controlled: + set_hotkey_hotkey_button.setEnabled(False) + hotkey_input.setEnabled(False) +# region Set initial values # Capture Settings self.fps_limit_spinbox.setValue(autosplit.settings_dict["fps_limit"]) self.live_capture_region_checkbox.setChecked(autosplit.settings_dict["live_capture_region"]) @@ -224,13 +255,6 @@ def __init__(self, autosplit: AutoSplit): self.loop_splits_checkbox.setChecked(autosplit.settings_dict["loop_splits"]) # endregion # region Binding - # Hotkeys - self.set_split_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "split")) - self.set_reset_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "reset")) - self.set_skip_split_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "skip_split")) - self.set_undo_split_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "undo_split")) - self.set_pause_hotkey_button.clicked.connect(lambda: set_hotkey(self.autosplit, "pause")) - # Capture Settings self.fps_limit_spinbox.valueChanged.connect(lambda: self.__set_value( "fps_limit", @@ -264,7 +288,8 @@ def __init__(self, autosplit: AutoSplit): def open_settings(autosplit: AutoSplit): - autosplit.SettingsWidget = __SettingsWidget(autosplit) + if not autosplit.SettingsWidget or cast(QtWidgets.QDialog, autosplit.SettingsWidget).isHidden(): + autosplit.SettingsWidget = __SettingsWidget(autosplit) def get_default_settings_from_ui(autosplit: AutoSplit): diff --git a/src/region_selection.py b/src/region_selection.py index 5eb6b7aa..4ea266cd 100644 --- a/src/region_selection.py +++ b/src/region_selection.py @@ -22,6 +22,25 @@ if TYPE_CHECKING: from AutoSplit import AutoSplit +SUPPORTED_IMREAD_FORMATS = [ + ("Windows bitmaps", "*.bmp *.dib"), + ("JPEG files", "*.jpeg *.jpg *.jpe"), + ("JPEG 2000 files", "*.jp2"), + ("Portable Network Graphics", "*.png"), + ("WebP", "*.webp"), + ("Portable image format", "*.pbm *.pgm *.ppm *.pxm *.pnm"), + ("PFM files", "*.pfm"), + ("Sun rasters", "*.sr *.ras"), + ("TIFF files", "*.tiff *.tif"), + ("OpenEXR Image files", "*.exr"), + ("Radiance HDR", "*.hdr *.pic"), +] +"""https://docs.opencv.org/4.5.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56""" +IMREAD_EXT_FILTER = "All Files (" \ + + " ".join([f"{extensions}" for _, extensions in SUPPORTED_IMREAD_FORMATS]) \ + + ");;"\ + + ";;".join([f"{imread_format} ({extensions})" for imread_format, extensions in SUPPORTED_IMREAD_FORMATS]) + user32 = ctypes.windll.user32 @@ -148,7 +167,7 @@ def align_region(autosplit: AutoSplit): autosplit, "Select Reference Image", "", - "Image Files (*.png *.jpg *.jpeg *.jpe *.jp2 *.bmp *.tiff *.tif *.dib *.webp *.pbm *.pgm *.ppm *.sr *.ras)", + IMREAD_EXT_FILTER, )[0] # Return if the user presses cancel diff --git a/src/split_parser.py b/src/split_parser.py index 26ad1521..c8c9699d 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -4,7 +4,7 @@ from typing import TYPE_CHECKING, TypeVar import error_messages -from AutoSplitImage import AutoSplitImage, ImageType +from AutoSplitImage import RESET_KEYWORD, START_KEYWORD, AutoSplitImage, ImageType from utils import is_valid_image if TYPE_CHECKING: @@ -17,6 +17,9 @@ T = TypeVar("T", str, int, float) +# Note, the following symbols cannot be used in a filename: +# / \ : * ? " < > | + def __value_from_filename( filename: str, @@ -111,7 +114,7 @@ def comparison_method_from_filename(filename: str): # Check to make sure there is a valid delay time between brackets # of the filename - value = __value_from_filename(filename, "<>", -1) + value = __value_from_filename(filename, "^^", -1) # Comparison method should always be positive or zero return value if value >= 0 else None @@ -208,12 +211,12 @@ def parse_and_validate_images(autosplit: AutoSplit): error_messages.reset_hotkey() return False autosplit.gui_changes_on_reset() - error_messages.multiple_keyword_images("reset") + error_messages.multiple_keyword_images(RESET_KEYWORD) return False # Check that there's only one start image if image.image_type == ImageType.START: autosplit.gui_changes_on_reset() - error_messages.multiple_keyword_images("start_auto_splitter") + error_messages.multiple_keyword_images(START_KEYWORD) return False return True diff --git a/src/user_profile.py b/src/user_profile.py index 54e13267..a0990f4f 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -1,7 +1,6 @@ from __future__ import annotations import os -import sys from typing import TYPE_CHECKING, TypedDict, cast import keyboard @@ -11,14 +10,11 @@ import error_messages from capture_method import CAPTURE_METHODS, CaptureMethodEnum, Region, change_capture_method from gen import design -from hotkeys import set_hotkey +from hotkeys import HOTKEYS, set_hotkey +from utils import auto_split_directory if TYPE_CHECKING: from AutoSplit import AutoSplit -# Keyword "frozen" is for setting basedir while in onefile mode in pyinstaller -FROZEN = hasattr(sys, "frozen") -# Get the directory of either AutoSplit.exe or AutoSplit.py -auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) class UserProfileDict(TypedDict): @@ -73,14 +69,9 @@ def save_settings(autosplit: AutoSplit): """ @return: The save settings filepath. Or None if "Save Settings As" is cancelled """ - if not autosplit.last_successfully_loaded_settings_file_path: - return save_settings_as(autosplit) - - autosplit.last_saved_settings = autosplit.settings_dict - # Save settings to a .toml file - with open(autosplit.last_successfully_loaded_settings_file_path, "w", encoding="utf-8") as file: - toml.dump(autosplit.last_saved_settings, file) - return autosplit.last_successfully_loaded_settings_file_path + return __save_settings_to_file(autosplit, autosplit.last_successfully_loaded_settings_file_path) \ + if autosplit.last_successfully_loaded_settings_file_path \ + else save_settings_as(autosplit) def save_settings_as(autosplit: AutoSplit): @@ -99,12 +90,14 @@ def save_settings_as(autosplit: AutoSplit): if not save_settings_file_path: return "" - autosplit.last_saved_settings = autosplit.settings_dict + return __save_settings_to_file(autosplit, save_settings_file_path) + +def __save_settings_to_file(autosplit: AutoSplit, save_settings_file_path: str): + autosplit.last_saved_settings = autosplit.settings_dict # Save settings to a .toml file with open(save_settings_file_path, "w", encoding="utf-8") as file: toml.dump(autosplit.last_saved_settings, file) - autosplit.last_successfully_loaded_settings_file_path = save_settings_file_path return save_settings_file_path @@ -129,23 +122,16 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str autosplit.y_spinbox.setValue(autosplit.settings_dict["capture_region"]["y"]) autosplit.width_spinbox.setValue(autosplit.settings_dict["capture_region"]["width"]) autosplit.height_spinbox.setValue(autosplit.settings_dict["capture_region"]["height"]) + autosplit.split_image_folder_input.setText(autosplit.settings_dict["split_image_directory"]) except (FileNotFoundError, MemoryError, TypeError, toml.TomlDecodeError): autosplit.show_error_signal.emit(error_messages.invalid_settings) return False - autosplit.split_image_folder_input.setText(autosplit.settings_dict["split_image_directory"]) keyboard.unhook_all() if not autosplit.is_auto_controlled: - if autosplit.settings_dict["split_hotkey"]: - set_hotkey(autosplit, "split", autosplit.settings_dict["split_hotkey"]) - if autosplit.settings_dict["reset_hotkey"]: - set_hotkey(autosplit, "reset", autosplit.settings_dict["reset_hotkey"]) - if autosplit.settings_dict["skip_split_hotkey"]: - set_hotkey(autosplit, "skip_split", autosplit.settings_dict["skip_split_hotkey"]) - if autosplit.settings_dict["undo_split_hotkey"]: - set_hotkey(autosplit, "undo_split", autosplit.settings_dict["undo_split_hotkey"]) - if autosplit.settings_dict["pause_hotkey"]: - set_hotkey(autosplit, "pause", autosplit.settings_dict["pause_hotkey"]) + for hotkey, hotkey_name in [(hotkey, f"{hotkey}_hotkey") for hotkey in HOTKEYS]: + if autosplit.settings_dict[hotkey_name]: + set_hotkey(autosplit, hotkey, cast(str, autosplit.settings_dict[hotkey_name])) change_capture_method(cast(CaptureMethodEnum, autosplit.settings_dict["capture_method"]), autosplit) autosplit.capture_method.recover_window(autosplit.settings_dict["captured_window_title"], autosplit) @@ -157,10 +143,7 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str return True -def load_settings( - autosplit: AutoSplit, - from_path: str = "" -): +def load_settings(autosplit: AutoSplit, from_path: str = ""): load_settings_file_path = from_path or QtWidgets.QFileDialog.getOpenFileName( autosplit, "Load Profile", diff --git a/src/utils.py b/src/utils.py index 07f8c23d..b4147944 100644 --- a/src/utils.py +++ b/src/utils.py @@ -13,7 +13,7 @@ import cv2 from win32 import win32gui -from gen.build_vars import AUTOSPLIT_BUILD_NUMBER +from gen.build_vars import AUTOSPLIT_BUILD_NUMBER, AUTOSPLIT_GITHUB_REPOSITORY if TYPE_CHECKING: from typing_extensions import TypeGuard @@ -107,3 +107,4 @@ def wrapped(*args: Any, **kwargs: Any): """Set DIRTY_VERSION_EXTENSION to an empty string to generate a clean version number""" AUTOSPLIT_VERSION = "2.0.0-alpha.4" + DIRTY_VERSION_EXTENSION START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" +GITHUB_REPOSITORY = AUTOSPLIT_GITHUB_REPOSITORY diff --git a/typings/keyboard/__init__.pyi b/typings/keyboard/__init__.pyi index 44268b9c..6d9f5e54 100644 --- a/typings/keyboard/__init__.pyi +++ b/typings/keyboard/__init__.pyi @@ -1,18 +1,18 @@ from collections import Counter, defaultdict, deque -from collections.abc import Callable, Generator, Iterable, Sequence +from collections.abc import Callable, Generator, Sequence from queue import Queue from threading import Event as _UninterruptibleEvent +from typing import Optional # noqa: Y037 # mypy issue +from keyboard._canonical_names import all_modifiers as all_modifiers, sided_modifiers as sided_modifiers +from keyboard._generic import GenericListener as _GenericListener +from keyboard._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent from typing_extensions import Literal, TypeAlias -from ._canonical_names import all_modifiers as all_modifiers, sided_modifiers as sided_modifiers -from ._generic import GenericListener as _GenericListener -from ._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent - _Key: TypeAlias = int | str _ScanCodeList: TypeAlias = list[int] | tuple[int, ...] _ParseableHotkey: TypeAlias = _Key | list[int | _ScanCodeList] | tuple[int | _ScanCodeList, ...] -_Callback: TypeAlias = Callable[[KeyboardEvent], bool | None] | Callable[[], bool | None] +_Callback: TypeAlias = Callable[[KeyboardEvent], Optional[bool]] | Callable[[], Optional[bool]] # Can't use ParamSpecArgs on `args`, only on `*args` # _P = ParamSpec("_P") _P: TypeAlias = tuple[object, ...] @@ -161,15 +161,15 @@ unremap_hotkey = remove_hotkey def stash_state() -> list[int]: ... -def restore_state(scan_codes: Iterable[int]) -> None: ... -def restore_modifiers(scan_codes: Iterable[int]) -> None: ... +def restore_state(scan_codes: Sequence[int]) -> None: ... +def restore_modifiers(scan_codes: Sequence[int]) -> None: ... def write(text: str, delay: float = ..., restore_state_after: bool = ..., exact: bool | None = ...) -> None: ... def wait(hotkey: _ParseableHotkey | None = ..., suppress: bool = ..., trigger_on_release: bool = ...) -> None: ... -def get_hotkey_name(names: Iterable[str] | None = ...) -> str: ... +def get_hotkey_name(names: Sequence[str] | None = ...) -> str: ... def read_event(suppress: bool = ...) -> KeyboardEvent: ... def read_key(suppress: bool = ...) -> _Key: ... def read_hotkey(suppress: bool = ...) -> str: ... -def get_typed_strings(events: Iterable[KeyboardEvent], allow_backspace: bool = ...) -> Generator[str, None, None]: ... +def get_typed_strings(events: Sequence[KeyboardEvent], allow_backspace: bool = ...) -> Generator[str, None, None]: ... def start_recording( @@ -177,7 +177,7 @@ def start_recording( ) -> tuple[Queue[KeyboardEvent], Callable[[], None]]: ... def stop_recording() -> list[deque[KeyboardEvent]]: ... def record(until: str = ..., suppress: bool = ..., trigger_on_release: bool = ...) -> list[deque[KeyboardEvent]]: ... -def play(events: Iterable[KeyboardEvent], speed_factor: float = ...) -> None: ... +def play(events: Sequence[KeyboardEvent], speed_factor: float = ...) -> None: ... replay = play diff --git a/typings/keyboard/_darwinkeyboard.pyi b/typings/keyboard/_darwinkeyboard.pyi new file mode 100644 index 00000000..b0760a1b --- /dev/null +++ b/typings/keyboard/_darwinkeyboard.pyi @@ -0,0 +1,57 @@ +from collections.abc import Callable, Generator, Sequence +from ctypes import CDLL +from typing import TypeVar + +from _typeshed import Incomplete +from keyboard._canonical_names import normalize_name as normalize_name +from keyboard._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent +from typing_extensions import TypeAlias + +_Unused: TypeAlias = object + +# https://github.com/ronaldoussoren/pyobjc/milestone/3 +_CGEventTap: TypeAlias = Incomplete # Quartz.CGEventTap +_KCGEvent: TypeAlias = Incomplete # Quartz.kCGEvent +_T = TypeVar("_T") + +unichr = chr +Carbon: CDLL + + +class KeyMap: + non_layout_keys: dict[int, str] + layout_specific_keys: dict[int, tuple[str, str]] + def character_to_vk(self, character: str) -> tuple[int, list[str]]: ... + def vk_to_character(self, vk: int, modifiers: Sequence[str] = ...): ... + + +class KeyController: + key_map: KeyMap + current_modifiers: dict[str, bool] + media_keys: dict[str, int] + def press(self, key_code: int) -> None: ... + def release(self, key_code: int) -> None: ... + def map_char(self, character: str) -> tuple[int, list[str]]: ... + def map_scan_code(self, scan_code: int) -> int | str | None: ... + + +class KeyEventListener: + blocking: bool + callback: Callable[[KeyboardEvent], None] + listening: bool + tap: _CGEventTap + def __init__(self, callback: Callable[[KeyboardEvent], None], blocking: bool = ...) -> None: ... + def run(self) -> None: ... + def handler(self, proxy: _Unused, e_type: _KCGEvent, event: _T, refcon: _Unused) -> _T: ... + + +key_controller: KeyController + + +def init() -> None: ... +def press(scan_code: int) -> None: ... +def release(scan_code: int) -> None: ... +def map_name(name: str) -> Generator[tuple[int, list[str]], None, None]: ... +def name_from_scancode(scan_code: int) -> int | str | None: ... +def listen(callback: Callable[[KeyboardEvent], None]) -> None: ... +def type_unicode(character: str) -> None: ... diff --git a/typings/keyboard/_darwinmouse.pyi b/typings/keyboard/_darwinmouse.pyi new file mode 100644 index 00000000..61711c0f --- /dev/null +++ b/typings/keyboard/_darwinmouse.pyi @@ -0,0 +1,36 @@ +from collections.abc import Callable +from queue import Queue +from typing import TypeVar + +from _typeshed import Incomplete +from keyboard._keyboard_event import KeyboardEvent +from keyboard._mouse_event import (DOWN as DOWN, LEFT as LEFT, MIDDLE as MIDDLE, RIGHT as RIGHT, UP as UP, X2 as X2, + ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, WheelEvent as WheelEvent, X as X, + _MouseButton) +from typing_extensions import TypeAlias + +_Unused: TypeAlias = object + +# https://github.com/ronaldoussoren/pyobjc/milestone/3 +_CGEventTap: TypeAlias = Incomplete # Quartz.CGEventTap +_KCGEventKey: TypeAlias = Incomplete # Quartz.kCGEventKey +_T = TypeVar("_T") + + +class MouseEventListener: + blocking: bool + callback: Callable[[KeyboardEvent], None] + listening: bool + def __init__(self, callback: Callable[[KeyboardEvent], None], blocking: bool = ...) -> None: ... + tap: _CGEventTap + def run(self) -> None: ... + def handler(self, proxy: _Unused, e_type: _KCGEventKey, event: _T, refcon: _Unused) -> _T: ... + + +def init() -> None: ... +def listen(queue: Queue[KeyboardEvent]) -> None: ... +def press(button: _MouseButton = ...) -> None: ... +def release(button: _MouseButton = ...) -> None: ... +def wheel(delta: int = ...) -> None: ... +def move_to(x: int, y: int) -> None: ... +def get_position() -> tuple[int, int]: ... diff --git a/typings/keyboard/_generic.pyi b/typings/keyboard/_generic.pyi index ed33c29a..9c62225f 100644 --- a/typings/keyboard/_generic.pyi +++ b/typings/keyboard/_generic.pyi @@ -2,12 +2,11 @@ from collections.abc import Callable from queue import Queue from threading import Lock, Thread +from keyboard._keyboard_event import KeyboardEvent +from keyboard._mouse_event import ButtonEvent, MoveEvent, WheelEvent from typing_extensions import Literal, TypeAlias -from ._keyboard_event import KeyboardEvent -from ._mouse_event import _MouseEvent - -_Event: TypeAlias = KeyboardEvent | _MouseEvent +_Event: TypeAlias = KeyboardEvent | ButtonEvent | WheelEvent | MoveEvent class GenericListener: diff --git a/typings/keyboard/_keyboard_event.pyi b/typings/keyboard/_keyboard_event.pyi index cdeac60f..1e0453fc 100644 --- a/typings/keyboard/_keyboard_event.pyi +++ b/typings/keyboard/_keyboard_event.pyi @@ -1,7 +1,6 @@ +from keyboard._canonical_names import canonical_names as canonical_names, normalize_name as normalize_name from typing_extensions import Literal -from ._canonical_names import canonical_names as canonical_names, normalize_name as normalize_name - basestring = str KEY_DOWN: Literal["down"] KEY_UP: Literal["up"] diff --git a/typings/keyboard/_mouse_event.pyi b/typings/keyboard/_mouse_event.pyi index 912a4bbf..9d1b5f74 100644 --- a/typings/keyboard/_mouse_event.pyi +++ b/typings/keyboard/_mouse_event.pyi @@ -3,8 +3,6 @@ from typing import NamedTuple from typing_extensions import Literal, TypeAlias -_MouseEvent: TypeAlias = ButtonEvent | WheelEvent | MoveEvent # noqa: Y047 # Used outside - LEFT: Literal["left"] RIGHT: Literal["right"] MIDDLE: Literal["middle"] @@ -25,13 +23,13 @@ else: _MouseButton: TypeAlias = Literal["left", "right", "middle"] if sys.platform == "win32": - _MouseEventType: TypeAlias = Literal["up", "down", "double", "wheel"] + _MouseEvent: TypeAlias = Literal["up", "down", "double", "wheel"] else: - _MouseEventType: TypeAlias = Literal["up", "down"] + _MouseEvent: TypeAlias = Literal["up", "down"] class ButtonEvent(NamedTuple): - event_type: _MouseEventType + event_type: _MouseEvent button: _MouseButton time: float diff --git a/typings/keyboard/_nixcommon.pyi b/typings/keyboard/_nixcommon.pyi new file mode 100644 index 00000000..3c616d86 --- /dev/null +++ b/typings/keyboard/_nixcommon.pyi @@ -0,0 +1,52 @@ +from collections.abc import Generator, Sequence +from io import BufferedReader, BufferedWriter +from queue import Queue +from typing import NamedTuple + +from _typeshed import Incomplete +from typing_extensions import Literal + +event_bin_format: Literal["llHHI"] +EV_SYN: Literal[0] +EV_KEY: Literal[1] +EV_REL: Literal[2] +EV_ABS: Literal[3] +EV_MSC: Literal[4] + + +def make_uinput() -> BufferedWriter: ... + + +class EventDevice: + path: str + def __init__(self, path: str) -> None: ... + @property + def input_file(self) -> BufferedReader: ... + @property + def output_file(self) -> BufferedWriter: ... + def read_event(self) -> tuple[float, Incomplete, Incomplete, Incomplete, str]: ... + def write_event(self, type, code, value) -> None: ... + + +class AggregatedEventDevice: + event_queue: Queue[tuple[float, Incomplete, Incomplete, Incomplete, str]] + devices: Sequence[EventDevice] + output: EventDevice + def __init__(self, devices: Sequence[EventDevice], output: EventDevice | None = ...) -> None: ... + def read_event(self) -> EventDevice: ... + def write_event(self, type, code, value) -> None: ... + + +class DeviceDescription(NamedTuple): + event_file: str + is_mouse: bool + is_keyboard: bool + + +device_pattern: str + + +def list_devices_from_proc(type_name: str) -> Generator[EventDevice, None, None]: ... +def list_devices_from_by_id(name_suffix: str, by_id: bool = ...) -> Generator[EventDevice, None, None]: ... +def aggregate_devices(type_name: str) -> AggregatedEventDevice | EventDevice: ... +def ensure_root() -> None: ... diff --git a/typings/keyboard/_nixkeyboard.pyi b/typings/keyboard/_nixkeyboard.pyi new file mode 100644 index 00000000..226b101c --- /dev/null +++ b/typings/keyboard/_nixkeyboard.pyi @@ -0,0 +1,40 @@ +from collections import defaultdict +from collections.abc import Callable, Generator + +from keyboard._canonical_names import all_modifiers as all_modifiers, normalize_name as normalize_name +from keyboard._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent +from keyboard._nixcommon import (EV_KEY as EV_KEY, AggregatedEventDevice, EventDevice, + aggregate_devices as aggregate_devices, ensure_root as ensure_root) + +# + + +def cleanup_key(name: str) -> tuple[str, bool]: ... +def cleanup_modifier(modifier: str) -> str: ... + + +to_name: defaultdict[tuple[int, tuple[str, ...]], list[str] | str] +from_name: defaultdict[str, list[tuple[int, tuple[str, ...]]]] +keypad_scan_codes: set[str] + + +def register_key(key_and_modifiers: tuple[int, tuple[str, ...]], name: str) -> None: ... +def build_tables() -> None: ... + + +device: AggregatedEventDevice | EventDevice | None + + +def build_device() -> None: ... +def init() -> None: ... + + +pressed_modifiers: set[str] + + +def listen(callback: Callable[[KeyboardEvent], None]) -> None: ... +def write_event(scan_code: int, is_down: bool | int) -> None: ... +def map_name(name: str) -> Generator[tuple[int, tuple[str, ...]], None, None]: ... +def press(scan_code: int) -> None: ... +def release(scan_code: int) -> None: ... +def type_unicode(character: str | bytes | bytearray) -> None: ... diff --git a/typings/keyboard/_nixmouse.pyi b/typings/keyboard/_nixmouse.pyi new file mode 100644 index 00000000..d292cb28 --- /dev/null +++ b/typings/keyboard/_nixmouse.pyi @@ -0,0 +1,55 @@ +from ctypes import CDLL +from queue import Queue +from subprocess import check_output as check_output + +from _typeshed import Incomplete +from keyboard._mouse_event import (DOWN as DOWN, LEFT as LEFT, MIDDLE as MIDDLE, RIGHT as RIGHT, UP as UP, X2 as X2, + ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, WheelEvent as WheelEvent, X as X, + _MouseButton) +from keyboard._nixcommon import (EV_ABS as EV_ABS, EV_KEY as EV_KEY, EV_MSC as EV_MSC, EV_REL as EV_REL, + EV_SYN as EV_SYN, AggregatedEventDevice, EventDevice, + aggregate_devices as aggregate_devices, ensure_root as ensure_root) +from typing_extensions import Literal + +x11: CDLL | None +display: Incomplete # x11.XOpenDisplay(None) +window: Incomplete # x11.XDefaultRootWindow(display) + + +def build_display() -> None: ... +def get_position() -> tuple[int, int]: ... +def move_to(x, y) -> None: ... + + +REL_X: Literal[0] +REL_Y: Literal[1] +REL_Z: Literal[2] +REL_HWHEEL: Literal[6] +REL_WHEEL: Literal[8] + +ABS_X: Literal[0] +ABS_Y: Literal[1] + +BTN_MOUSE: Literal[272] +BTN_LEFT: Literal[272] +BTN_RIGHT: Literal[273] +BTN_MIDDLE: Literal[274] +BTN_SIDE: Literal[275] +BTN_EXTRA: Literal[276] + +button_by_code: dict[int, str] +code_by_button: dict[str, int] +device: AggregatedEventDevice | EventDevice | None + + +def build_device() -> None: ... + + +init = build_device + + +def listen(queue: Queue[ButtonEvent | WheelEvent | MoveEvent]) -> None: ... +def press(button: _MouseButton = ...) -> None: ... +def release(button: _MouseButton = ...) -> None: ... +def move_relative(x: int, y: int) -> None: ... +def wheel(delta: int = ...) -> None: ... diff --git a/typings/keyboard/_winkeyboard.pyi b/typings/keyboard/_winkeyboard.pyi new file mode 100644 index 00000000..7d273869 --- /dev/null +++ b/typings/keyboard/_winkeyboard.pyi @@ -0,0 +1,238 @@ +import sys +from collections import defaultdict +from collections.abc import Callable, Generator, Sequence +from ctypes import (Array, Structure, Union, c_char as c_char, c_int, c_int32 as c_int32, c_long, c_short, c_uint, + c_uint8, c_uint32 as c_uint32, c_wchar) +from ctypes.wintypes import (BOOL, DWORD, HHOOK, HMODULE, LONG, LPARAM, LPCWSTR, LPDWORD, LPMSG as LPMSG, LPWSTR, WCHAR, + WORD, WPARAM) +from threading import Lock + +from _typeshed import Incomplete +from keyboard._canonical_names import normalize_name as normalize_name +from keyboard._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent +from typing_extensions import Literal, TypeAlias + +if sys.platform == "win32": + from ctypes import WinDLL + + kernel32: WinDLL + user32: WinDLL + +ULONG_PTR: TypeAlias = LPDWORD +GetModuleHandleW: Callable[[LPCWSTR | None], HMODULE] +VK_PACKET: Literal[231] +INPUT_MOUSE: Literal[0] +INPUT_KEYBOARD: Literal[1] +INPUT_HARDWARE: Literal[2] +KEYEVENTF_KEYUP: Literal[2] +KEYEVENTF_UNICODE: Literal[4] + + +class KBDLLHOOKSTRUCT(Structure): + vk_code: DWORD + scan_code: DWORD + flags: DWORD + time: c_int + dwExtraInfo: ULONG_PTR + + +class MOUSEINPUT(Structure): + dx: LONG + dy: LONG + mouseData: DWORD + dwFlags: DWORD + time: DWORD + dwExtraInfo: ULONG_PTR + + +class KEYBDINPUT(Structure): + wVk: WORD + wScan: WORD + dwFlags: DWORD + time: DWORD + dwExtraInfo: ULONG_PTR + + +class HARDWAREINPUT(Structure): + uMsg: DWORD + wParamL: WORD + wParamH: WORD + + +class _INPUTunion(Union): + mi: MOUSEINPUT + ki: KEYBDINPUT + hi: HARDWAREINPUT + + +class INPUT(Structure): + type: DWORD + union: _INPUTunion + + +_POINTER_KBDLLHOOKSTRUCT: TypeAlias = Incomplete # POINTER(KBDLLHOOKSTRUCT) +_LRESULT: TypeAlias = Incomplete +_POINTER_INPUT: TypeAlias = Incomplete # POINTER(INPUT) +_LowLevelKeyboardProc: TypeAlias = Callable[[Callable[[c_int, WPARAM, LPARAM], c_int]], _POINTER_KBDLLHOOKSTRUCT] +LowLevelKeyboardProc: _LowLevelKeyboardProc +SetWindowsHookEx: Callable[[c_int, _LowLevelKeyboardProc, c_int, c_int], HHOOK] +CallNextHookEx: Callable[[c_int, c_int, WPARAM, LPARAM], c_int] +UnhookWindowsHookEx: Callable[[HHOOK], BOOL] +GetMessage: Callable[[LPMSG, c_int, c_int, c_int], BOOL] +TranslateMessage: Callable[[LPMSG], BOOL] +DispatchMessage: Callable[[LPMSG], _LRESULT] +_KeyboardStateType: TypeAlias = Array[c_uint8] +keyboard_state_type: _KeyboardStateType +GetKeyboardState: Callable[[_KeyboardStateType], BOOL] +GetKeyNameText: Callable[[c_long, LPWSTR, c_int], c_int] +MapVirtualKey: Callable[[c_uint, c_uint], c_uint] +ToUnicode: Callable[[c_uint, c_uint, _KeyboardStateType, LPWSTR, c_int, c_uint], c_int] +SendInput: Callable[[c_uint, _POINTER_INPUT, c_int], c_uint] +MAPVK_VK_TO_CHAR: Literal[2] +MAPVK_VK_TO_VSC: Literal[0] +MAPVK_VSC_TO_VK: Literal[1] +MAPVK_VK_TO_VSC_EX: Literal[4] +MAPVK_VSC_TO_VK_EX: Literal[3] +VkKeyScan: Callable[[WCHAR], c_short] +LLKHF_INJECTED: Literal[16] + +WM_KEYDOWN: Literal[256] +WM_KEYUP: Literal[257] +WM_SYSKEYDOWN: Literal[260] +WM_SYSKEYUP: Literal[261] +keyboard_event_types: dict[int, str] +official_virtual_keys: dict[ + int, + tuple[Literal["control-break processing"], Literal[False]] + | tuple[Literal["backspace"], Literal[False]] + | tuple[Literal["tab"], Literal[False]] + | tuple[Literal["clear"], Literal[False]] + | tuple[Literal["enter"], Literal[False]] + | tuple[Literal["shift"], Literal[False]] + | tuple[Literal["ctrl"], Literal[False]] + | tuple[Literal["alt"], Literal[False]] + | tuple[Literal["pause"], Literal[False]] + | tuple[Literal["caps lock"], Literal[False]] + | tuple[Literal["ime kana mode"], Literal[False]] + | tuple[Literal["ime hanguel mode"], Literal[False]] + | tuple[Literal["ime hangul mode"], Literal[False]] + | tuple[Literal["ime junja mode"], Literal[False]] + | tuple[Literal["ime final mode"], Literal[False]] + | tuple[Literal["ime hanja mode"], Literal[False]] + | tuple[Literal["ime kanji mode"], Literal[False]] + | tuple[Literal["esc"], Literal[False]] + | tuple[Literal["ime convert"], Literal[False]] + | tuple[Literal["ime nonconvert"], Literal[False]] + | tuple[Literal["ime accept"], Literal[False]] + | tuple[Literal["ime mode change request"], Literal[False]] + | tuple[Literal["spacebar"], Literal[False]] + | tuple[Literal["page up"], Literal[False]] + | tuple[Literal["page down"], Literal[False]] + | tuple[Literal["end"], Literal[False]] + | tuple[Literal["home"], Literal[False]] + | tuple[Literal["left"], Literal[False]] + | tuple[Literal["up"], Literal[False]] + | tuple[Literal["right"], Literal[False]] + | tuple[Literal["down"], Literal[False]] + | tuple[Literal["select"], Literal[False]] + | tuple[Literal["print"], Literal[False]] + | tuple[Literal["execute"], Literal[False]] + | tuple[Literal["print screen"], Literal[False]] + | tuple[Literal["insert"], Literal[False]] + | tuple[Literal["delete"], Literal[False]] + | tuple[Literal["help"], Literal[False]] + | tuple[Literal["0"], Literal[False]] + | tuple[Literal["1"], Literal[False]] + | tuple[Literal["2"], Literal[False]] + | tuple[Literal["3"], Literal[False]] + | tuple[Literal["4"], Literal[False]] + | tuple[Literal["5"], Literal[False]] + | tuple[Literal["6"], Literal[False]] + | tuple[Literal["7"], Literal[False]] + | tuple[Literal["8"], Literal[False]] + | tuple[Literal["9"], Literal[False]] + | tuple[Literal["a"], Literal[False]] + | tuple[Literal["b"], Literal[False]] + | tuple[Literal["c"], Literal[False]] + | tuple[Literal["d"], Literal[False]] + | tuple[Literal["e"], Literal[False]] + | tuple[Literal["f"], Literal[False]] + | tuple[Literal["g"], Literal[False]] + | tuple[Literal["h"], Literal[False]] + | tuple[Literal["i"], Literal[False]] + | tuple[Literal["j"], Literal[False]] + | tuple[Literal["k"], Literal[False]] + | tuple[Literal["l"], Literal[False]] + | tuple[Literal["m"], Literal[False]] + | tuple[Literal["n"], Literal[False]] + | tuple[Literal["o"], Literal[False]] + | tuple[Literal["p"], Literal[False]], +] +tables_lock: Lock +to_name: defaultdict[tuple[int, int, int, str | int | tuple[str, ...]] | tuple[int, int, int, int, int], list[str]] +from_name: defaultdict[str, list[tuple[int, tuple[str | int | tuple[str, ...], ...]]]] +scan_code_to_vk: dict[int, int] +distinct_modifiers: list[ + tuple[()] + | tuple[Literal["shift"]] + | tuple[Literal["alt gr"]] + | tuple[Literal["num lock"]] + | tuple[Literal["shift"], Literal["num lock"]] + | tuple[Literal["caps lock"]] + | tuple[Literal["shift"], Literal["caps lock"]] + | tuple[Literal["alt gr"], Literal["num lock"]] +] +name_buffer: Array[c_wchar] +unicode_buffer: Array[c_wchar] +keyboard_state: _KeyboardStateType + + +def get_event_names( + scan_code: int, vk: int, is_extended: Literal[0, 1], modifiers: Sequence[str] +) -> Generator[str, None, None]: ... + + +init: Callable[[], None] +keypad_keys: list[ + tuple[Literal[126], Literal[194], Literal[0]] + | tuple[Literal[28], Literal[13], Literal[1]] + | tuple[Literal[53], Literal[111], Literal[1]] + | tuple[Literal[55], Literal[106], Literal[0]] + | tuple[Literal[69], Literal[144], Literal[1]] + | tuple[Literal[71], Literal[103], Literal[0]] + | tuple[Literal[71], Literal[36], Literal[0]] + | tuple[Literal[72], Literal[104], Literal[0]] + | tuple[Literal[72], Literal[38], Literal[0]] + | tuple[Literal[73], Literal[105], Literal[0]] + | tuple[Literal[73], Literal[33], Literal[0]] + | tuple[Literal[74], Literal[109], Literal[0]] + | tuple[Literal[75], Literal[100], Literal[0]] + | tuple[Literal[75], Literal[37], Literal[0]] + | tuple[Literal[76], Literal[101], Literal[0]] + | tuple[Literal[76], Literal[12], Literal[0]] + | tuple[Literal[77], Literal[102], Literal[0]] + | tuple[Literal[77], Literal[39], Literal[0]] + | tuple[Literal[78], Literal[107], Literal[0]] + | tuple[Literal[79], Literal[35], Literal[0]] + | tuple[Literal[79], Literal[97], Literal[0]] + | tuple[Literal[80], Literal[40], Literal[0]] + | tuple[Literal[80], Literal[98], Literal[0]] + | tuple[Literal[81], Literal[34], Literal[0]] + | tuple[Literal[81], Literal[99], Literal[0]] + | tuple[Literal[82], Literal[45], Literal[0]] + | tuple[Literal[82], Literal[96], Literal[0]] + | tuple[Literal[83], Literal[110], Literal[0]] + | tuple[Literal[83], Literal[46], Literal[0]] +] +shift_is_pressed: bool +altgr_is_pressed: bool +ignore_next_right_alt: bool +shift_vks: set[int] + + +def prepare_intercept(callback: Callable[[KeyboardEvent], bool]) -> None: ... +def listen(callback: Callable[[KeyboardEvent], bool]) -> None: ... +def map_name(name: str) -> Generator[tuple[int, str | int | tuple[str, ...]], None, None]: ... +def press(code: int) -> None: ... +def release(code: int) -> None: ... +def type_unicode(character: str) -> None: ... diff --git a/typings/keyboard/_winmouse.pyi b/typings/keyboard/_winmouse.pyi new file mode 100644 index 00000000..d9b5fc7b --- /dev/null +++ b/typings/keyboard/_winmouse.pyi @@ -0,0 +1,118 @@ +import sys +from collections.abc import Callable +from ctypes import (Structure, c_char as c_char, c_int, c_int32, c_long, c_short as c_short, c_uint as c_uint, + c_uint8 as c_uint8, c_uint32 as c_uint32) +from ctypes.wintypes import BOOL, DWORD, HHOOK, LPARAM, LPMSG as LPMSG, LPWSTR as LPWSTR, WCHAR as WCHAR, WPARAM +from queue import Queue + +from _typeshed import Incomplete +from keyboard._mouse_event import (DOUBLE as DOUBLE, DOWN as DOWN, HORIZONTAL as HORIZONTAL, LEFT as LEFT, + MIDDLE as MIDDLE, RIGHT as RIGHT, UP as UP, VERTICAL as VERTICAL, WHEEL as WHEEL, + X2 as X2, ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, + WheelEvent as WheelEvent, X as X, _MouseButton) +from typing_extensions import Literal, TypeAlias + +if sys.platform == "win32": + from ctypes import WinDLL + + user32: WinDLL + + +class MSLLHOOKSTRUCT(Structure): + x: c_long + y: c_long + data: c_int32 + reserved: c_int32 + flags: DWORD + time: c_int + + +_POINTER_MSLLHOOKSTRUCT: TypeAlias = Incomplete # POINTER(MSLLHOOKSTRUCT) +_LRESULT: TypeAlias = Incomplete +LowLevelMouseProc: TypeAlias = Callable[[Callable[[c_int, WPARAM, LPARAM], c_int]], _POINTER_MSLLHOOKSTRUCT] +SetWindowsHookEx: Callable[[c_int, LowLevelMouseProc, c_int, c_int], HHOOK] +CallNextHookEx: Callable[[c_int, c_int, WPARAM, LPARAM], c_int] +UnhookWindowsHookEx: Callable[[HHOOK], BOOL] +GetMessage: Callable[[LPMSG, c_int, c_int, c_int], BOOL] +TranslateMessage: Callable[[LPMSG], BOOL] +DispatchMessage: Callable[[LPMSG], _LRESULT] +WM_MOUSEMOVE: Literal[512] +WM_LBUTTONDOWN: Literal[513] +WM_LBUTTONUP: Literal[514] +WM_LBUTTONDBLCLK: Literal[515] +WM_RBUTTONDOWN: Literal[516] +WM_RBUTTONUP: Literal[517] +WM_RBUTTONDBLCLK: Literal[518] +WM_MBUTTONDOWN: Literal[519] +WM_MBUTTONUP: Literal[520] +WM_MBUTTONDBLCLK: Literal[521] +WM_MOUSEWHEEL: Literal[522] +WM_XBUTTONDOWN: Literal[523] +WM_XBUTTONUP: Literal[524] +WM_XBUTTONDBLCLK: Literal[525] +WM_NCXBUTTONDOWN: Literal[171] +WM_NCXBUTTONUP: Literal[172] +WM_NCXBUTTONDBLCLK: Literal[173] +WM_MOUSEHWHEEL: Literal[526] +buttons_by_wm_code: dict[ + int, + tuple[Literal["down"], Literal["left"]] + | tuple[Literal["up"], Literal["left"]] + | tuple[Literal["double"], Literal["left"]] + | tuple[Literal["down"], Literal["right"]] + | tuple[Literal["up"], Literal["right"]] + | tuple[Literal["double"], Literal["right"]] + | tuple[Literal["down"], Literal["middle"]] + | tuple[Literal["up"], Literal["middle"]] + | tuple[Literal["double"], Literal["middle"]] + | tuple[Literal["down"], Literal["x"]] + | tuple[Literal["up"], Literal["x"]] + | tuple[Literal["double"], Literal["x"]], +] +MOUSEEVENTF_ABSOLUTE: Literal[32768] +MOUSEEVENTF_MOVE: Literal[1] +MOUSEEVENTF_WHEEL: Literal[2048] +MOUSEEVENTF_HWHEEL: Literal[4096] +MOUSEEVENTF_LEFTDOWN: Literal[2] +MOUSEEVENTF_LEFTUP: Literal[4] +MOUSEEVENTF_RIGHTDOWN: Literal[8] +MOUSEEVENTF_RIGHTUP: Literal[16] +MOUSEEVENTF_MIDDLEDOWN: Literal[32] +MOUSEEVENTF_MIDDLEUP: Literal[64] +MOUSEEVENTF_XDOWN: Literal[128] +MOUSEEVENTF_XUP: Literal[256] +simulated_mouse_codes: dict[ + tuple[Literal["wheel"], Literal["horizontal"]] + | tuple[Literal["wheel"], Literal["vertical"]] + | tuple[Literal["down"], Literal["left"]] + | tuple[Literal["up"], Literal["left"]] + | tuple[Literal["down"], Literal["right"]] + | tuple[Literal["up"], Literal["right"]] + | tuple[Literal["down"], Literal["middle"]] + | tuple[Literal["up"], Literal["middle"]] + | tuple[Literal["down"], Literal["x"]] + | tuple[Literal["up"], Literal["x"]], + int, +] +NULL: c_long +WHEEL_DELTA: Literal[120] +init: Callable[[], None] + + +def listen(queue: Queue[MoveEvent | WheelEvent | ButtonEvent]): + ... + + +def press(button: _MouseButton = ...) -> None: ... +def release(button: _MouseButton = ...) -> None: ... +def wheel(delta: int = ...) -> None: ... +def move_to(x: int | c_long, y: int | c_long) -> None: ... +def move_relative(x: int | c_long, y: int | c_long) -> None: ... + + +class POINT(Structure): + x: c_long + y: c_long + + +def get_position() -> tuple[c_long, c_long]: ... diff --git a/typings/keyboard/mouse.pyi b/typings/keyboard/mouse.pyi index 9db6f2be..1de736be 100644 --- a/typings/keyboard/mouse.pyi +++ b/typings/keyboard/mouse.pyi @@ -1,24 +1,25 @@ import sys -from collections.abc import Callable, Iterable +from collections.abc import Callable, Sequence from ctypes import c_long +from typing import TypeVar from keyboard._generic import GenericListener as _GenericListener from keyboard._mouse_event import (DOUBLE as DOUBLE, DOWN as DOWN, LEFT as LEFT, MIDDLE as MIDDLE, RIGHT as RIGHT, UP as UP, X2 as X2, ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, - WheelEvent as WheelEvent, X as X, _MouseButton, _MouseEvent, _MouseEventType) + WheelEvent as WheelEvent, X as X, _MouseButton, _MouseEvent) from typing_extensions import Literal, TypeAlias # Can't use ParamSpecArgs on `args`, only on `*args` # _P = ParamSpec("_P") _P: TypeAlias = tuple[object, ...] -_Callback: TypeAlias = Callable[[_MouseEvent], bool | None] +_Callback: TypeAlias = Callable[[ButtonEvent | WheelEvent | MoveEvent], bool | None] class _MouseListener(_GenericListener): def init(self) -> None: ... def pre_process_event( - self, event: _MouseEvent + self, event: ButtonEvent | MoveEvent | WheelEvent ) -> Literal[True]: ... def listen(self) -> None: ... @@ -41,13 +42,13 @@ def on_button( callback: Callable[..., None], args: _P = ..., buttons: list[_MouseButton] | tuple[_MouseButton, ...] | _MouseButton = ..., - types: list[_MouseEventType] | tuple[_MouseEventType, ...] | _MouseEventType = ..., + types: list[_MouseEvent] | tuple[_MouseEvent, ...] | _MouseEvent = ..., ) -> _Callback: ... def on_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... def on_double_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... def on_right_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... def on_middle_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... -def wait(button: _MouseButton = ..., target_types: tuple[_MouseEventType] = ...) -> None: ... +def wait(button: _MouseButton = ..., target_types: tuple[_MouseEvent] = ...) -> None: ... if sys.platform == "win32": @@ -60,11 +61,14 @@ else: def hook(callback: _Callback) -> _Callback: ... def unhook(callback: _Callback) -> None: ... def unhook_all() -> None: ... -def record(button: _MouseButton = ..., target_types: tuple[_MouseEventType] = ...) -> _MouseEvent: ... + + +def record(button: _MouseButton = ..., target_types: tuple[_MouseEvent] + = ...) -> ButtonEvent | WheelEvent | MoveEvent: ... def play( - events: Iterable[_MouseEvent], + events: Sequence[ButtonEvent | WheelEvent | MoveEvent], speed_factor: float = ..., include_clicks: bool = ..., include_moves: bool = ..., diff --git a/typings/pyautogui/__init__.pyi b/typings/pyautogui/__init__.pyi index 102b8a52..0fe65284 100644 --- a/typings/pyautogui/__init__.pyi +++ b/typings/pyautogui/__init__.pyi @@ -1,7 +1,9 @@ -from collections.abc import Callable, Generator, Iterable, Sequence +import collections.abc +from collections.abc import Callable, Generator from datetime import datetime from typing import NamedTuple, TypeVar, overload +from _typeshed import Incomplete from typing_extensions import ParamSpec # from pyscreeze import Box @@ -19,12 +21,13 @@ class ImageNotFoundException(PyAutoGUIException): ... +collectionsSequence = collections.abc.Sequence + _P = ParamSpec("_P") _R = TypeVar("_R") -# TODO: Complete types with pyscreeze once we can import it as a type dependency -# Actually `pyscreeze.Box`, but typeshed doesn't currently have stubs for pyscreeze -# (and the library doesn't have type annotations either) +# TODO: Complete types with pyscreeze once we can import non-types dependencies +# See: https://github.com/python/typeshed/issues/5768 class _Box(NamedTuple): @@ -35,16 +38,12 @@ class _Box(NamedTuple): def raisePyAutoGUIImageNotFoundException(wrappedFunction: Callable[_P, _R]) -> Callable[_P, _R]: ... - -# These functions reuse pyscreeze functions directly. See above TODO. - - -def locate(*args, **kwargs) -> _Box | None: ... -def locateAll(*args, **kwargs) -> Generator[_Box, None, None]: ... -def locateAllOnScreen(*args, **kwargs) -> Generator[_Box, None, None]: ... -def locateCenterOnScreen(*args, **kwargs) -> Point | None: ... -def locateOnScreen(*args, **kwargs) -> _Box | None: ... -def locateOnWindow(*args, **kwargs) -> _Box | None: ... +def locate(*args: Incomplete, **kwargs: Incomplete) -> _Box | None: ... +def locateAll(*args: Incomplete, **kwargs: Incomplete) -> Generator[_Box, None, None]: ... +def locateAllOnScreen(*args: Incomplete, **kwargs: Incomplete) -> Generator[_Box, None, None]: ... +def locateCenterOnScreen(*args: Incomplete, **kwargs: Incomplete) -> Point | None: ... +def locateOnScreen(*args: Incomplete, **kwargs: Incomplete) -> _Box | None: ... +def locateOnWindow(*args: Incomplete, **kwargs: Incomplete) -> _Box | None: ... def mouseInfo() -> None: ... def useImageNotFoundException(value: bool | None = ...) -> None: ... @@ -89,15 +88,14 @@ def linear(n: float) -> float: ... def position(x: int | None = ..., y: int | None = ...) -> Point: ... def size() -> Size: ... @overload -def onScreen(x: tuple[float, float], y: None = ...) -> bool: ... +def onScreen(xy: tuple[float, float]) -> bool: ... @overload def onScreen(x: float, y: float) -> bool: ... def mouseDown( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., - # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., button: str = ..., duration: float = ..., tween: Callable[[float], float] = ..., @@ -107,9 +105,8 @@ def mouseDown( def mouseUp( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., - # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., button: str = ..., duration: float = ..., tween: Callable[[float], float] = ..., @@ -119,11 +116,10 @@ def mouseUp( def click( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., clicks: int = ..., interval: float = ..., - # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` button: str = ..., duration: float = ..., tween: Callable[[float], float] = ..., @@ -133,8 +129,8 @@ def click( def leftClick( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., interval: float = ..., duration: float = ..., tween: Callable[[float], float] = ..., @@ -144,8 +140,8 @@ def leftClick( def rightClick( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., interval: float = ..., duration: float = ..., tween: Callable[[float], float] = ..., @@ -155,8 +151,8 @@ def rightClick( def middleClick( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., interval: float = ..., duration: float = ..., tween: Callable[[float], float] = ..., @@ -166,10 +162,9 @@ def middleClick( def doubleClick( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., interval: float = ..., - # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` button: str = ..., duration: float = ..., tween: Callable[[float], float] = ..., @@ -179,10 +174,9 @@ def doubleClick( def tripleClick( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., interval: float = ..., - # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` button: str = ..., duration: float = ..., tween: Callable[[float], float] = ..., @@ -193,8 +187,8 @@ def tripleClick( def scroll( clicks: float, - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., logScreenshot: bool | None = ..., _pause: bool = ..., ) -> None: ... @@ -202,8 +196,8 @@ def scroll( def hscroll( clicks: float, - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., logScreenshot: bool | None = ..., _pause: bool = ..., ) -> None: ... @@ -211,16 +205,16 @@ def hscroll( def vscroll( clicks: float, - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., logScreenshot: bool | None = ..., _pause: bool = ..., ) -> None: ... def moveTo( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., duration: float = ..., tween: Callable[[float], float] = ..., logScreenshot: bool = ..., @@ -229,8 +223,8 @@ def moveTo( def moveRel( - xOffset: float | Sequence[float] | str | None = ..., - yOffset: float | None = ..., + xOffset: float | collectionsSequence[int] | None = ..., + yOffset: float | collectionsSequence[int] | None = ..., duration: float = ..., tween: Callable[[float], float] = ..., logScreenshot: bool = ..., @@ -242,11 +236,10 @@ move = moveRel def dragTo( - x: float | Sequence[float] | str | None = ..., - y: float | None = ..., + x: float | collectionsSequence[int] | None = ..., + y: float | collectionsSequence[int] | None = ..., duration: float = ..., tween: Callable[[float], float] = ..., - # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` button: str = ..., logScreenshot: bool | None = ..., _pause: bool = ..., @@ -255,11 +248,10 @@ def dragTo( def dragRel( - xOffset: float | Sequence[float] | str = ..., - yOffset: float = ..., + xOffset: float | collectionsSequence[int] = ..., + yOffset: float | collectionsSequence[int] = ..., duration: float = ..., tween: Callable[[float], float] = ..., - # Docstring says `button` can also be `int`, but `.lower()` is called unconditionally in `_normalizeButton()` button: str = ..., logScreenshot: bool | None = ..., _pause: bool = ..., @@ -275,15 +267,11 @@ def keyDown(key: str, logScreenshot: bool | None = ..., _pause: bool = ...) -> N def keyUp(key: str, logScreenshot: bool | None = ..., _pause: bool = ...) -> None: ... -def press( - keys: str | Iterable[str], - presses: int = ..., - interval: float = ..., - logScreenshot: bool | None = ..., - _pause: bool = ...) -> None: ... +def press(keys: str | list[str], presses: int = ..., interval: float = ..., + logScreenshot: bool | None = ..., _pause: bool = ...) -> None: ... -def hold(keys: str | Iterable[str], +def hold(keys: str | list[str], logScreenshot: bool | None = ..., _pause: bool = ...) -> Generator[None, None, @@ -291,18 +279,20 @@ def hold(keys: str | Iterable[str], def typewrite( - message: str | Sequence[str], interval: float = ..., logScreenshot: bool | None = ..., _pause: bool = ... -) -> None: ... + message: str | list[str], + interval: float = ..., + logScreenshot: bool | None = ..., + _pause: bool = ...) -> None: ... write = typewrite -def hotkey(*args: str, logScreenshot: bool | None = ..., interval: float = ...) -> None: ... +def hotkey(*args: str, **kwargs: float | bool | None) -> None: ... def failSafeCheck() -> None: ... def displayMousePosition(xOffset: float = ..., yOffset: float = ...) -> None: ... -def sleep(seconds: float) -> None: ... +def sleep(seconds: int) -> None: ... def countdown(seconds: int) -> None: ... -def run(commandStr: str, _ssCount: Sequence[int] | None = ...) -> None: ... +def run(commandStr: str, _ssCount: list[int] | None = ...) -> None: ... def printInfo(dontPrint: bool = ...) -> str: ... def getInfo() -> tuple[str, str, str, str, Size, datetime]: ... diff --git a/typings/pyautogui/_pyautogui_osx.pyi b/typings/pyautogui/_pyautogui_osx.pyi new file mode 100644 index 00000000..569791ac --- /dev/null +++ b/typings/pyautogui/_pyautogui_osx.pyi @@ -0,0 +1,2 @@ +keyboardMapping: dict[str, int] +special_key_translate_table: dict[str, int] diff --git a/typings/pyautogui/_pyautogui_win.pyi b/typings/pyautogui/_pyautogui_win.pyi new file mode 100644 index 00000000..738766ce --- /dev/null +++ b/typings/pyautogui/_pyautogui_win.pyi @@ -0,0 +1,39 @@ +import ctypes + +MOUSEEVENTF_MOVE: int +MOUSEEVENTF_LEFTDOWN: int +MOUSEEVENTF_LEFTUP: int +MOUSEEVENTF_LEFTCLICK: int +MOUSEEVENTF_RIGHTDOWN: int +MOUSEEVENTF_RIGHTUP: int +MOUSEEVENTF_RIGHTCLICK: int +MOUSEEVENTF_MIDDLEDOWN: int +MOUSEEVENTF_MIDDLEUP: int +MOUSEEVENTF_MIDDLECLICK: int +MOUSEEVENTF_ABSOLUTE: int +MOUSEEVENTF_WHEEL: int +MOUSEEVENTF_HWHEEL: int +KEYEVENTF_KEYDOWN: int +KEYEVENTF_KEYUP: int +INPUT_MOUSE: int +INPUT_KEYBOARD: int + + +class MOUSEINPUT(ctypes.Structure): + ... + + +class KEYBDINPUT(ctypes.Structure): + ... + + +class HARDWAREINPUT(ctypes.Structure): + ... + + +class INPUT(ctypes.Structure): + class _I(ctypes.Union): + ... + + +keyboardMapping: dict[str, int] diff --git a/typings/pyautogui/_pyautogui_x11.pyi b/typings/pyautogui/_pyautogui_x11.pyi new file mode 100644 index 00000000..24d90ecc --- /dev/null +++ b/typings/pyautogui/_pyautogui_x11.pyi @@ -0,0 +1,2 @@ +BUTTON_NAME_MAPPING: dict[str | int, int] +keyboardMapping: dict[str, int] From 3845f60024c999035b4b7941aa63f4cfcc13b1ae Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sat, 3 Sep 2022 20:39:27 -0400 Subject: [PATCH 28/54] Toggle autoreset image + ui adjustments (#164) --- .github/workflows/codeql-analysis.yml | 58 +++++++-------- PyInstaller/hooks/hook-cv2.py | 24 ------ README.md | 9 ++- res/about.ui | 20 +++-- res/settings.ui | 102 ++++++++++++++++++++------ src/AutoSplit.py | 37 +++++----- src/hotkeys.py | 15 +++- src/menu_bar.py | 12 ++- src/user_profile.py | 5 +- 9 files changed, 173 insertions(+), 109 deletions(-) delete mode 100644 PyInstaller/hooks/hook-cv2.py diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 55844c5a..0f31025a 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,12 +13,12 @@ name: "CodeQL" on: push: - branches: [ main, master, develop, dev, 2.0.0] + branches: [main, master, develop, dev, 2.0.0] pull_request: # The branches below must be a subset of the branches above - branches: [ develop, dev, 2.0.0 ] + branches: [develop, dev, 2.0.0] schedule: - - cron: '26 13 * * 6' + - cron: "26 13 * * 6" jobs: analyze: @@ -28,40 +28,40 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'python' ] + language: ["python"] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed steps: - - name: Checkout repository - uses: actions/checkout@v2 + - name: Checkout repository + uses: actions/checkout@v2 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v2 + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl + # ℹ️ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language + # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language - #- run: | - # make bootstrap - # make release + #- run: | + # make bootstrap + # make release - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff --git a/PyInstaller/hooks/hook-cv2.py b/PyInstaller/hooks/hook-cv2.py deleted file mode 100644 index 620319d3..00000000 --- a/PyInstaller/hooks/hook-cv2.py +++ /dev/null @@ -1,24 +0,0 @@ -""" -Copyright (c) 2020 PyInstaller Development Team. - -This file is distributed under the terms of the GNU General Public -License (version 2.0 or later). - -The full license is available in LICENSE.GPL.txt, distributed with -this software. - -SPDX-License-Identifier: GPL-2.0-or-later - -https://github.com/pyinstaller/pyinstaller-hooks-contrib/blob/master/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-cv2.py -""" - -from PyInstaller.utils.hooks import collect_data_files, collect_dynamic_libs - -hiddenimports = ["numpy"] - -# Include any DLLs from site-packages/cv2 (opencv_videoio_ffmpeg*.dll can be found there in the PyPI version) -binaries = collect_dynamic_libs("cv2") - -# https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/110 -# OpenCV loader from 4.5.4.60 requires extra config files and modules -datas = collect_data_files("cv2", include_py_files=True, includes=["**/*.py"]) diff --git a/README.md b/README.md index c53827e9..1533db35 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ This program can be used to automatically start, split, and reset your preferred ### Compatibility +- Python 3.9+ - Windows 10 and 11. ### Building @@ -30,7 +31,7 @@ This program can be used to automatically start, split, and reset your preferred - Python 3.9 - 3.10. - Microsoft Visual C++ 14.0 or greater may be required to build the executable. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/). -- Node is optional, but required for complete linting (using Pyright). + - Read [requirements.txt](/scripts/requirements.txt) for more information on how to install, run and build the python code. - Run `./scripts/install.ps1` to install all dependencies. - Run the app directly with `./scripts/start.ps1 [--auto-controlled]`. @@ -97,6 +98,10 @@ This program can be used to automatically start, split, and reset your preferred There are currently performance issues, but it might be more convenient. If you want to use this with OBS' Virtual Camera, use the [Virtualcam plugin](https://obsproject.com/forum/resources/obs-virtualcam.949/) instead. +#### Capture Device + +Select the Video Capture Device that you wanna use if selecting the `Video Capture Device` Capture Method. Will show `[occupied]` if a device is detected but can't be started. + #### Show Live Similarity - Displays the live similarity between the capture region and the current split image. This number is between 0 and 1, with 1 being a perfect match. @@ -240,7 +245,7 @@ Still need help? - Created by [Toufool](https://twitter.com/Toufool) and [Faschz](https://twitter.com/faschz). - [Harutaka Kawamura](https://github.com/harupy/) for the snipping tool code that I used to integrate into the autosplitter. - [amaringos](https://twitter.com/amaringos) for the icon. -- [ZanasoBayncuh](https://twitter.com/ZanasoBayncuh) for motivating me to start this project back up and for all of the time spent testing and suggesting improvements. +- [Zana_G](https://www.twitch.tv/zana_g) for motivating me to start this project back up and for all of the time spent testing and suggesting improvements. - [Avasam](https://twitter.com/Avasam06) for their continued work on making an incredible amount of improvements and changes to AutoSplit while I have not had the time/motivation to do so. - [KaDiWa](https://github.com/KaDiWa4) for the LiveSplit integration. - [Tyron18](https://twitter.com/Tyron18_) for assisting with Windows 11 testing. diff --git a/res/about.ui b/res/about.ui index 05e4914a..04ff482c 100644 --- a/res/about.ui +++ b/res/about.ui @@ -52,7 +52,7 @@ 10 44 - 171 + 241 32 @@ -65,7 +65,7 @@ 10 21 - 161 + 241 16 @@ -76,15 +76,16 @@ - 30 - 95 - 204 - 32 + 10 + 90 + 241 + 41 - If you enjoy using this program, please -consider donating. Thank you! + If you enjoy using this program, +please consider donating. +Thank you! Qt::AlignCenter @@ -128,6 +129,9 @@ consider donating. Thank you! true + ok_button + donate_text_label + donate_button_label icon_label version_label created_by_label diff --git a/res/settings.ui b/res/settings.ui index 239356da..4f5cc6eb 100644 --- a/res/settings.ui +++ b/res/settings.ui @@ -6,8 +6,8 @@ 0 0 - 289 - 621 + 291 + 661 @@ -18,14 +18,14 @@ - 289 - 621 + 291 + 661 - 289 - 621 + 291 + 661 @@ -50,7 +50,7 @@ 10 - 180 + 200 271 181 @@ -175,9 +175,9 @@ 10 - 370 + 390 271 - 241 + 261 @@ -196,7 +196,7 @@ 167 - 26 + 25 88 22 @@ -238,7 +238,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 6 - 29 + 28 161 16 @@ -251,7 +251,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 6 - 117 + 118 161 16 @@ -264,7 +264,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 167 - 114 + 115 87 22 @@ -305,7 +305,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 167 - 56 + 55 52 22 @@ -333,7 +333,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 6 - 144 + 143 235 20 @@ -352,7 +352,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 6 - 173 + 193 261 61 @@ -364,7 +364,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i - <html><head/><body><p>Custom image settings and flags are set in the <br></br> image file name. These will override the default <br></br> values. View the <a href="https://github.com/Toufool/Auto-Split#readme"><span style=" text-decoration: underline; color:#0000ff;">README</span></a> for full details on all <br></br> available custom image settings.</p></body></html> + <html><head/><body><p>Custom image settings and flags are set in the <br></br> image file name. These will override the default <br></br> values. View the <a href="https://github.com/{GITHUB_REPOSITORY}#readme"><span style=" text-decoration: underline; color:#0000ff;">README</span></a> for full details on all <br></br> available custom image settings.</p></body></html> @@ -399,6 +399,22 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 999999999 + + + + 6 + 168 + 151 + 20 + + + + Enable auto reset image + + + true + + @@ -406,7 +422,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 10 10 271 - 161 + 191 @@ -550,7 +566,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 180 - 28 + 30 81 21 @@ -649,6 +665,52 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i true + + + + 180 + 155 + 81 + 21 + + + + Qt::NoFocus + + + Set Hotkey + + + + + + 6 + 154 + 71 + 31 + + + + Toggle auto +reset image + + + + + + 76 + 155 + 94 + 20 + + + + + + + true + + @@ -666,8 +728,6 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i default_delay_time_spinbox default_pause_time_spinbox loop_splits_checkbox - fps_limit_spinbox - live_capture_region_checkbox diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 949e7e8d..0a98c6f8 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -773,25 +773,28 @@ def __reset_if_should(self, capture: cv2.Mat | None): Checks if we should reset, resets if it's the case, and returns the result """ if self.reset_image: - similarity = self.reset_image.compare_with_capture(self, capture) - threshold = self.reset_image.get_similarity_threshold(self) - - paused = time() - self.run_start_time <= self.reset_image.get_pause_time(self) - if paused: - should_reset = False - self.table_reset_image_live_label.setText("paused") - else: - should_reset = similarity >= threshold - if similarity > self.reset_highest_similarity: - self.reset_highest_similarity = similarity - self.table_reset_image_highest_label.setText(decimal(self.reset_highest_similarity)) - self.table_reset_image_live_label.setText(decimal(similarity)) + if self.settings_dict["enable_auto_reset"]: + similarity = self.reset_image.compare_with_capture(self, capture) + threshold = self.reset_image.get_similarity_threshold(self) + + paused = time() - self.run_start_time <= self.reset_image.get_pause_time(self) + if paused: + should_reset = False + self.table_reset_image_live_label.setText("paused") + else: + should_reset = similarity >= threshold + if similarity > self.reset_highest_similarity: + self.reset_highest_similarity = similarity + self.table_reset_image_highest_label.setText(decimal(self.reset_highest_similarity)) + self.table_reset_image_live_label.setText(decimal(similarity)) - self.table_reset_image_threshold_label.setText(decimal(threshold)) + self.table_reset_image_threshold_label.setText(decimal(threshold)) - if should_reset: - send_command(self, "reset") - self.reset() + if should_reset: + send_command(self, "reset") + self.reset() + else: + self.table_reset_image_live_label.setText("disabled") return self.__check_for_reset_state_update_ui() diff --git a/src/hotkeys.py b/src/hotkeys.py index d5fa6f90..a7aff538 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -20,8 +20,8 @@ PRESS_A_KEY_TEXT = "Press a key..." Commands = Literal["split", "start", "pause", "reset", "skip", "undo"] -Hotkeys = Literal["split", "reset", "skip_split", "undo_split", "pause"] -HOTKEYS: list[Hotkeys] = ["split", "reset", "skip_split", "undo_split", "pause"] +Hotkey = Literal["split", "reset", "skip_split", "undo_split", "pause", "toggle_auto_reset_image"] +HOTKEYS: list[Hotkey] = ["split", "reset", "skip_split", "undo_split", "pause", "toggle_auto_reset_image"] def before_setting_hotkey(autosplit: AutoSplit): @@ -195,13 +195,20 @@ def __remove_key_already_set(autosplit: AutoSplit, key_name: str): getattr(autosplit.SettingsWidget, f"{hotkey}_input").setText("") -def __get_hotkey_action(autosplit: AutoSplit, hotkey: Hotkeys): +def __get_hotkey_action(autosplit: AutoSplit, hotkey: Hotkey): if hotkey == "split": return autosplit.start_auto_splitter if hotkey == "skip_split": return lambda: autosplit.skip_split(True) if hotkey == "undo_split": return lambda: autosplit.undo_split(True) + if hotkey == "toggle_auto_reset_image": + def toggle_auto_reset_image(): + new_value = not autosplit.settings_dict["enable_auto_reset"] + autosplit.settings_dict["enable_auto_reset"] = new_value + if autosplit.SettingsWidget: + autosplit.SettingsWidget.enable_auto_reset_image_checkbox.setChecked(new_value) + return toggle_auto_reset_image return getattr(autosplit, f"{hotkey}_signal").emit @@ -215,7 +222,7 @@ def is_valid_hotkey_name(hotkey_name: str): # reduce duplicated code. We should use a dictionary of hotkey class or something. -def set_hotkey(autosplit: AutoSplit, hotkey: Hotkeys, preselected_hotkey_name: str = ""): +def set_hotkey(autosplit: AutoSplit, hotkey: Hotkey, preselected_hotkey_name: str = ""): if autosplit.SettingsWidget: # Unfocus all fields cast(QtWidgets.QDialog, autosplit.SettingsWidget).setFocus() diff --git a/src/menu_bar.py b/src/menu_bar.py index 98458605..37dd5602 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -14,7 +14,7 @@ from capture_method import (CAPTURE_METHODS, CameraInfo, CaptureMethodEnum, change_capture_method, get_all_video_capture_devices) from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa F401 -from hotkeys import HOTKEYS, Hotkeys, set_hotkey +from hotkeys import HOTKEYS, Hotkey, set_hotkey from utils import (AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, GITHUB_REPOSITORY, WINDOWS_BUILD_NUMBER, decimal, fire_and_forget) @@ -223,8 +223,8 @@ def __init__(self, autosplit: AutoSplit): for method in capture_method_values])) # endregion - # Hotkeys initial values and bindings - def hotkey_connect(hotkey: Hotkeys): + # Hotkey initial values and bindings + def hotkey_connect(hotkey: Hotkey): return lambda: set_hotkey(self.autosplit, hotkey) for hotkey in HOTKEYS: hotkey_input: QtWidgets.QLineEdit = getattr(self, f"{hotkey}_input") @@ -253,6 +253,7 @@ def hotkey_connect(hotkey: Hotkeys): self.default_delay_time_spinbox.setValue(autosplit.settings_dict["default_delay_time"]) self.default_pause_time_spinbox.setValue(autosplit.settings_dict["default_pause_time"]) self.loop_splits_checkbox.setChecked(autosplit.settings_dict["loop_splits"]) + self.enable_auto_reset_image_checkbox.setChecked(autosplit.settings_dict["enable_auto_reset"]) # endregion # region Binding # Capture Settings @@ -282,6 +283,9 @@ def hotkey_connect(hotkey: Hotkeys): self.loop_splits_checkbox.stateChanged.connect(lambda: self.__set_value( "loop_splits", self.loop_splits_checkbox.isChecked())) + self.enable_auto_reset_image_checkbox.stateChanged.connect(lambda: self.__set_value( + "enable_auto_reset", + self.enable_auto_reset_image_checkbox.isChecked())) # endregion self.show() @@ -302,8 +306,10 @@ def get_default_settings_from_ui(autosplit: AutoSplit): "undo_split_hotkey": default_settings_dialog.undo_split_input.text(), "skip_split_hotkey": default_settings_dialog.skip_split_input.text(), "pause_hotkey": default_settings_dialog.pause_input.text(), + "toggle_auto_reset_image_hotkey": default_settings_dialog.toggle_auto_reset_image_input.text(), "fps_limit": default_settings_dialog.fps_limit_spinbox.value(), "live_capture_region": default_settings_dialog.live_capture_region_checkbox.isChecked(), + "enable_auto_reset": default_settings_dialog.enable_auto_reset_image_checkbox.isChecked(), "capture_method": CAPTURE_METHODS.get_method_by_index( default_settings_dialog.capture_method_combobox.currentIndex()), "capture_device_id": default_settings_dialog.capture_device_combobox.currentIndex(), diff --git a/src/user_profile.py b/src/user_profile.py index a0990f4f..d7d3e0c8 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -23,8 +23,10 @@ class UserProfileDict(TypedDict): undo_split_hotkey: str skip_split_hotkey: str pause_hotkey: str + toggle_auto_reset_image_hotkey: str fps_limit: int live_capture_region: bool + enable_auto_reset: bool capture_method: str | CaptureMethodEnum capture_device_id: int capture_device_name: str @@ -33,7 +35,6 @@ class UserProfileDict(TypedDict): default_delay_time: int default_pause_time: float loop_splits: bool - split_image_directory: str captured_window_title: str capture_region: Region @@ -45,8 +46,10 @@ class UserProfileDict(TypedDict): undo_split_hotkey="", skip_split_hotkey="", pause_hotkey="", + toggle_auto_reset_image_hotkey="", fps_limit=60, live_capture_region=True, + enable_auto_reset=True, capture_method=CAPTURE_METHODS.get_method_by_index(0), capture_device_id=0, capture_device_name="", From 60576df78af1f74d7873e060cafa51b35b5d0110 Mon Sep 17 00:00:00 2001 From: Austin <37423484+Toufool@users.noreply.github.com> Date: Sat, 3 Sep 2022 20:54:27 -0400 Subject: [PATCH 29/54] merge master into 2.0.0 (#165) * update credits * oops * Toggle autoreset image (#162) * Fix #52 Comparisons with empty masks * Save 'Check For Updates On Open' immediatly * showErrorSignal to show error message box from another thread * Fixes #86 Stop uncaught exceptions from silently crashing the app * Fixes #86 Stop uncaught exceptions from silently crashing the app * Fix #114, try to load Start Image on browse & load settings, don't allow a start image to load if hotkeys are not set. * First linting pass Configured VSCode and Markdownlint settings Added and configured the following linters as strict as I could: pylint, flake8, mypy, bandit, pyright Partially filled in some type stubs: cv2, imagehash, keyboard, pyautogui, pythonwin, win32helper [Breaking change] Using interpolation=cv2.INTER_NEAREST everywhere as it is the fastest interlpolation method Hide generated/compiled files SelectRegionWidget width and height as functions Added validate_images_before_parsing() to validate images both before maxFPS and starting autosplitter * Moved most settings to pyproject.toml and ran autopep8 * Removed mypy and Fixed import-outside-toplevel * Double quotes and pylint complete linting * Configured linting workflow * Async check for updates * Fix crash on LiveSplit open and missing link in error message * Merge * Fixed certificate error and random crash on open when compiled * Using python/typeshed/pull/6492 * PEP8 naming convention * Added build artifact * AutoSplitImage Class and simplified code Simplified and reduced image conversions Reduced duplicated code, especially in settings Build Artifact * Average FPS over all images with all actions * Added badges * Fixed "Select Window" not working for windows with negative coordinates Split screen_region in smaller functions WIP towards #94: No pop-up on loading settings with no capture window Don't stop/reset AutoSplit upon loosing capture window No pop-up on loosing capture window Don't allow selecting desktop. * Ability to recover window Fixed regressions: Fix crash on clising window mid-run Forgot to migrate split_delay to image.delay Removed dead load_pyqt_settings code Fixed dummy groups Pause time from filename not set correctly Setting hotkeys on load * Differentiate "undo/skip split" from "previous/next image" Skip/udo will now actually call command This makes grouping option obsolete as user now has finer control anyway UI is a bit cramped, but that should be resolved with UI revamp Updated README * Make Save Settings more intuitive Don't close if user has cancelled "saving sattings as" Removed more attributes from AutoSplit class Don't update last_successfully_loaded_settings_file_path if load was not successful "Save Settings As" defaults to the last_successfully_loaded_settings_file_path THEN the .exe When closing app, ue save_settings instead of save_settings_as * Initial UI update for 2.0.0. Add settings window. * Hooked new settings window to actual values (#151) * Initial UI update for 2.0.0. Add settings window. * hooked new settings window to actual values * Better "seconds remaining" text * Undo split goes to the end of the group Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> * Image comparison method and default delay time (#135) * hooked new settings window to actual values * Implemented image specific comparison method and default delay time. Closes #26 * Initial UI update for 2.0.0. Add settings window. * hooked new settings window to actual values * Better "seconds remaining" text * Undo split goes to the end of the group * Fixed images comparison method defaulting to 0 rather than none Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> * Support hotkeys with modifiers (#136) * hooked new settings window to actual values * Better "seconds remaining" text * Support modifiers the same way LiveSplit does. Closes #34 * Initial UI update for 2.0.0. Add settings window. * hooked new settings window to actual values * Better "seconds remaining" text * Undo split goes to the end of the group Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> * Linted pyi files (#137) * hooked new settings window to actual values * Linted pyi files * Initial UI update for 2.0.0. Add settings window. * hooked new settings window to actual values * Better "seconds remaining" text * Undo split goes to the end of the group * Turn off pyright(reportFunctionMemberAccess) in favor of pylint(no-member) * Massively sped up Flake tests Removed 400+kb of type stubs * Centralized qWait typing fix * Autosort imports * Resynced settings Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> * Toml profiles + Python 3.10 (#140) * Typings update * Full setup and configuration update * User Profile, Revamped settings, Start image fixes & __auto_splitter method refactor * Added new Capture Method system for more capture options + utils (#141) * Add D3DShot types from https://github.com/python/typeshed/pull/8652 * New Capture Method system * Warning if AutoSplit is already open + Build number + Splash Screen + Doc update + Fixes (#161) * Doc + Setup update * typings update * Warning if AutoSplit is already open + Build number + Splash Screen * Target the right repository/fork * Fix #155 * Actions shortcut and prevent double open window Closes #154 * ImageHash hotfix * Toggle autoreset image + ui adjustments Co-authored-by: Austin <37423484+Toufool@users.noreply.github.com> * Revert "Toggle autoreset image (#162)" (#163) This reverts commit 9e48c514c7784c9f52e2283e5df68ec30dd5ac8d. Co-authored-by: Samuel T From 2c6cd9ceccb107e538b15b3b07101819906ae2b9 Mon Sep 17 00:00:00 2001 From: Austin <37423484+Toufool@users.noreply.github.com> Date: Sun, 4 Sep 2022 10:27:55 -0400 Subject: [PATCH 30/54] test building without --windowed --- scripts/build.ps1 | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/build.ps1 b/scripts/build.ps1 index 4ba5a3f8..c3deb02d 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,6 +1,5 @@ & "$PSScriptRoot/compile_resources.ps1" pyinstaller ` - --windowed ` --onefile ` --additional-hooks-dir=Pyinstaller/hooks ` --icon=res/icon.ico ` From cae39198ec0a44c11725046bd8bef5d7dce50d0f Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sun, 4 Sep 2022 16:50:21 -0400 Subject: [PATCH 31/54] First round of QA testing fixes (#171) * Added sonarcloud.properties * Remove duplicate DeleteDC & allow errors to show May fix #167 * Rename CaptureMethodInterface to CaptureMethodBase * Added autofix script and faster linting * Disable device probing for now. Fixes #169 * Updated settings widget text and workaround to fix #170 * Bump AUTOSPLIT_VERSION * Next Image even if it's not possible to split Fixes #168 * Fix build --- .github/workflows/lint-and-build.yml | 8 +-- .sonarcloud.properties | 1 + .vscode/extensions.json | 5 +- .vscode/settings.json | 2 + res/design.ui | 6 -- res/settings.ui | 61 ++++++++++++------- res/update_checker.ui | 6 -- scripts/lint.ps1 | 12 ++-- scripts/requirements-dev.txt | 2 +- scripts/requirements.txt | 2 +- src/AutoSplit.py | 25 ++++---- src/capture_method/BitBltCaptureMethod.py | 18 +++--- .../{interface.py => CaptureMethodBase.py} | 2 +- .../VideoCaptureDeviceCaptureMethod.py | 4 +- .../WindowsGraphicsCaptureMethod.py | 4 +- src/capture_method/__init__.py | 35 ++++++----- src/hotkeys.py | 2 +- src/menu_bar.py | 31 +++++++--- src/utils.py | 7 +-- 19 files changed, 128 insertions(+), 105 deletions(-) create mode 100644 .sonarcloud.properties rename src/capture_method/{interface.py => CaptureMethodBase.py} (97%) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 62d39ad2..0fe853ba 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -45,7 +45,7 @@ jobs: - run: scripts/install.ps1 shell: pwsh - name: Analysing the code with Pyright - run: pyright --warnings + run: pyright src/ --warnings Pylint: runs-on: windows-latest strategy: @@ -64,7 +64,7 @@ jobs: - run: scripts/install.ps1 shell: pwsh - name: Analysing the code with Pylint - run: pylint --reports=y --output-format=colorized src/ + run: pylint src/ --reports=y --output-format=colorized Flake8: runs-on: windows-latest strategy: @@ -83,7 +83,7 @@ jobs: - run: scripts/install.ps1 shell: pwsh - name: Analysing the code with Flake8 - run: flake8 + run: flake8 src/ typings/ Bandit: runs-on: windows-latest steps: @@ -98,7 +98,7 @@ jobs: - run: scripts/install.ps1 shell: pwsh - name: Analysing the code with Bandit - run: bandit -n 1 --severity-level medium --recursive src + run: bandit src/ -n 1 --severity-level medium --recursive Build: runs-on: windows-latest strategy: diff --git a/.sonarcloud.properties b/.sonarcloud.properties new file mode 100644 index 00000000..79132012 --- /dev/null +++ b/.sonarcloud.properties @@ -0,0 +1 @@ +sonar.python.version=3.9, 3.10 diff --git a/.vscode/extensions.json b/.vscode/extensions.json index e6b47305..33859d80 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -9,9 +9,10 @@ "ms-python.vscode-pylance", "ms-vscode.powershell", "pkief.material-icon-theme", + "redhat.vscode-xml", "redhat.vscode-yaml", "shardulm94.trailing-spaces", - "sonarsource.sonarlint-vscode" + "sonarsource.sonarlint-vscode", ], "unwantedRecommendations": [ // Must disable in this workspace // @@ -36,5 +37,5 @@ "johnstoncode.svn-scm", // Prefer using VSCode itself as a text editor "vscodevim.vim", - ] + ], } diff --git a/.vscode/settings.json b/.vscode/settings.json index 601ce64c..ab483d74 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -106,4 +106,6 @@ "powershell.codeFormatting.useCorrectCasing": true, "powershell.codeFormatting.whitespaceBetweenParameters": true, "powershell.integratedConsole.showOnStartup": false, + "xml.codeLens.enabled": true, + "xml.format.spaceBeforeEmptyCloseTag": false, } diff --git a/res/design.ui b/res/design.ui index a34632df..03aa78f7 100644 --- a/res/design.ui +++ b/res/design.ui @@ -10,12 +10,6 @@ 424 - - - 0 - 0 - - 777 diff --git a/res/settings.ui b/res/settings.ui index 4f5cc6eb..ecc0a9d7 100644 --- a/res/settings.ui +++ b/res/settings.ui @@ -1,7 +1,7 @@ - DialogSettings - + SettingsWidget + 0 @@ -10,12 +10,6 @@ 661 - - - 0 - 0 - - 291 @@ -40,12 +34,6 @@ :/resources/icon.ico:/resources/icon.ico - - false - - - false - @@ -352,7 +340,7 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 6 - 193 + 190 261 61 @@ -364,7 +352,10 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i - <html><head/><body><p>Custom image settings and flags are set in the <br></br> image file name. These will override the default <br></br> values. View the <a href="https://github.com/{GITHUB_REPOSITORY}#readme"><span style=" text-decoration: underline; color:#0000ff;">README</span></a> for full details on all <br></br> available custom image settings.</p></body></html> + <html><head/><body><p>Image settings and flags can be set per image through the image file name. These will override the default values. View the <a href="https://github.com/{GITHUB_REPOSITORY}#readme"><span style="text-decoration: underline; color:#0000ff;">README</span></a> for full details on all available custom image settings.</p></body></html> + + + true @@ -399,6 +390,34 @@ It is highly recommended to NOT use pHash if you use masked images. It is very i 999999999 + + + + 140 + 210 + 71 + 31 + + + + + 8 + true + + + + README + + + + 0 + 0 + + + + This is a workaround because custom_image_settings_info_label simply will not open links with a left click no matter what we tried. + + @@ -714,11 +733,11 @@ reset image - set_split_hotkey_button - set_reset_hotkey_button - set_undo_split_hotkey_button - set_skip_split_hotkey_button - set_pause_hotkey_button + split_input + reset_input + undo_split_input + skip_split_input + pause_input fps_limit_spinbox live_capture_region_checkbox capture_method_combobox diff --git a/res/update_checker.ui b/res/update_checker.ui index 53567fc1..75fbc852 100644 --- a/res/update_checker.ui +++ b/res/update_checker.ui @@ -13,12 +13,6 @@ 133 - - - 0 - 0 - - 313 diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index f5931602..8466ea2e 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -2,9 +2,13 @@ $originalDirectory = $pwd Set-Location "$PSScriptRoot/.." $exitCodes = 0 +Write-Host "`nRunning autofixes..." +isort src/ typings/ +autopep8 src/ typings/ --in-place + Write-Host "`nRunning Pyright..." $Env:PYRIGHT_PYTHON_FORCE_VERSION = 'latest' -pyright --warnings +pyright src/ --warnings $exitCodes += $LastExitCode if ($LastExitCode -gt 0) { Write-Host "`Pyright failed ($LastExitCode)" -ForegroundColor Red @@ -14,7 +18,7 @@ else { } Write-Host "`nRunning Pylint..." -pylint --output-format=colorized src/ +pylint src/ --output-format=colorized $exitCodes += $LastExitCode if ($LastExitCode -gt 0) { Write-Host "`Pylint failed ($LastExitCode)" -ForegroundColor Red @@ -24,7 +28,7 @@ else { } Write-Host "`nRunning Flake8..." -flake8 +flake8 src/ typings/ $exitCodes += $LastExitCode if ($LastExitCode -gt 0) { Write-Host "`Flake8 failed ($LastExitCode)" -ForegroundColor Red @@ -34,7 +38,7 @@ else { } Write-Host "`nRunning Bandit..." -bandit -f custom --silent --recursive src +bandit src/ -f custom --silent --recursive # $exitCodes += $LastExitCode # Returns 1 on low if ($LastExitCode -gt 0) { Write-Host "`Bandit warning ($LastExitCode)" -ForegroundColor Yellow diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt index 99f7134e..bcb5e46d 100644 --- a/scripts/requirements-dev.txt +++ b/scripts/requirements-dev.txt @@ -19,7 +19,7 @@ flake8-pyi>=22.8.1 # flake8 5 support flake8-quotes flake8-simplify pep8-naming -pylint>=2.13.9 # Respect ignore configuration options with --recursive=y +pylint>=2.13.9,<3.0.0 # Respect ignore configuration options with --recursive=y # 3.0 still in pre-release pyright # # Run `./scripts/designer.ps1` to quickly open the bundled PyQt Designer. diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 00d56180..ef80a6a1 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -13,7 +13,7 @@ numpy>=1.23 # Updated types opencv-python-headless>=4.5.4,<4.6 # https://github.com/pyinstaller/pyinstaller/issues/6889 PyQt6>=6.2.1 # Python 3.10 support -git+https://github.com/Avasam/imagehash.git@patch-2#egg=ImageHash # Contains type information + setup as package not module +git+https://github.com/JohannesBuchner/imagehash.git#egg=ImageHash # Contains type information + setup as package not module keyboard packaging Pillow diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 0a98c6f8..dc5af4cd 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -6,7 +6,6 @@ import os import signal import sys -from collections.abc import Callable from time import time from types import FunctionType @@ -21,7 +20,7 @@ import user_profile from AutoControlledWorker import AutoControlledWorker from AutoSplitImage import COMPARISON_RESIZE, START_KEYWORD, AutoSplitImage, ImageType -from capture_method import CaptureMethodEnum, CaptureMethodInterface +from capture_method import CaptureMethodBase, CaptureMethodEnum from gen import about, design, settings, update_checker from hotkeys import HOTKEYS, after_setting_hotkey, send_command from menu_bar import (about_qt, about_qt_for_python, check_for_updates, get_default_settings_from_ui, open_about, @@ -64,15 +63,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): AboutWidget: about.Ui_AboutAutoSplitWidget | None = None UpdateCheckerWidget: update_checker.Ui_UpdateChecker | None = None CheckForUpdatesThread: QtCore.QThread | None = None - SettingsWidget: settings.Ui_DialogSettings | None = None - - # hotkeys need to be initialized to be passed as thread arguments in hotkeys.py - # and for type safety in both hotkeys.py and settings_file.py - split_hotkey: Callable[[], None] | None = None - reset_hotkey: Callable[[], None] | None = None - skip_split_hotkey: Callable[[], None] | None = None - undo_split_hotkey: Callable[[], None] | None = None - pause_hotkey: Callable[[], None] | None = None + SettingsWidget: settings.Ui_SettingsWidget | None = None # Initialize a few attributes hwnd = 0 @@ -82,7 +73,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): split_image_number = 0 split_images_and_loop_number: list[tuple[AutoSplitImage, int]] = [] split_groups: list[list[int]] = [] - capture_method = CaptureMethodInterface() + capture_method = CaptureMethodBase() # Last loaded settings empty and last successful loaded settings file path to None until we try to load them last_loaded_settings = DEFAULT_PROFILE @@ -123,6 +114,10 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s self.width_spinbox.setFrame(False) self.height_spinbox.setFrame(False) + # Hotkeys need to be initialized to be passed as thread arguments in hotkeys.py + for hotkey in HOTKEYS: + setattr(self, f"{hotkey}_hotkey", None) + # Get default values defined in SettingsDialog self.settings_dict = get_default_settings_from_ui(self) user_profile.load_check_for_updates_on_open(self) @@ -450,7 +445,7 @@ def skip_split(self, navigate_image_only: bool = False): # or Splitting/skipping when there are no images left if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ or "Delayed Split" in self.current_split_image.text() \ - or (not self.skip_split_button.isEnabled() and not self.is_auto_controlled) \ + or not (self.skip_split_button.isEnabled() or self.is_auto_controlled or navigate_image_only) \ or self.__is_current_split_out_of_range(): return @@ -795,6 +790,10 @@ def __reset_if_should(self, capture: cv2.Mat | None): self.reset() else: self.table_reset_image_live_label.setText("disabled") + else: + self.table_reset_image_live_label.setText("N/A") + self.table_reset_image_threshold_label.setText("N/A") + self.table_reset_image_highest_label.setText("N/A") return self.__check_for_reset_state_update_ui() diff --git a/src/capture_method/BitBltCaptureMethod.py b/src/capture_method/BitBltCaptureMethod.py index 23d2a30f..e7ddabdc 100644 --- a/src/capture_method/BitBltCaptureMethod.py +++ b/src/capture_method/BitBltCaptureMethod.py @@ -11,7 +11,7 @@ import win32ui from win32 import win32gui -from capture_method.interface import CaptureMethodInterface +from capture_method.CaptureMethodBase import CaptureMethodBase from utils import get_window_bounds, is_valid_hwnd if TYPE_CHECKING: @@ -21,7 +21,7 @@ PW_RENDERFULLCONTENT = 0x00000002 -class BitBltCaptureMethod(CaptureMethodInterface): +class BitBltCaptureMethod(CaptureMethodBase): _render_full_content = False def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: @@ -57,15 +57,11 @@ def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: image.shape = (selection["height"], selection["width"], 4) except (win32ui.error, pywintypes.error): return None, False - # We already obtained the image, so we can ignore errors during cleanup - try: - dc_object.DeleteDC() - dc_object.DeleteDC() - compatible_dc.DeleteDC() - win32gui.ReleaseDC(hwnd, window_dc) - win32gui.DeleteObject(bitmap.GetHandle()) - except win32ui.error: - pass + # Cleanup DC and handle + dc_object.DeleteDC() + compatible_dc.DeleteDC() + win32gui.ReleaseDC(hwnd, window_dc) + win32gui.DeleteObject(bitmap.GetHandle()) return image, False def recover_window(self, captured_window_title: str, autosplit: AutoSplit): diff --git a/src/capture_method/interface.py b/src/capture_method/CaptureMethodBase.py similarity index 97% rename from src/capture_method/interface.py rename to src/capture_method/CaptureMethodBase.py index 253eb6cc..3f6d1212 100644 --- a/src/capture_method/interface.py +++ b/src/capture_method/CaptureMethodBase.py @@ -12,7 +12,7 @@ # pylint: disable=no-self-use,unnecessary-dunder-call -class CaptureMethodInterface(): +class CaptureMethodBase(): def __init__(self, autosplit: AutoSplit | None = None): pass diff --git a/src/capture_method/VideoCaptureDeviceCaptureMethod.py b/src/capture_method/VideoCaptureDeviceCaptureMethod.py index 612697ff..20e2fb18 100644 --- a/src/capture_method/VideoCaptureDeviceCaptureMethod.py +++ b/src/capture_method/VideoCaptureDeviceCaptureMethod.py @@ -5,7 +5,7 @@ import cv2 -from capture_method.interface import CaptureMethodInterface +from capture_method.CaptureMethodBase import CaptureMethodBase from error_messages import CREATE_NEW_ISSUE_MESSAGE, exception_traceback from utils import is_valid_image @@ -13,7 +13,7 @@ from AutoSplit import AutoSplit -class VideoCaptureDeviceCaptureMethod(CaptureMethodInterface): +class VideoCaptureDeviceCaptureMethod(CaptureMethodBase): capture_device: cv2.VideoCapture capture_thread: Thread | None last_captured_frame: cv2.Mat | None = None diff --git a/src/capture_method/WindowsGraphicsCaptureMethod.py b/src/capture_method/WindowsGraphicsCaptureMethod.py index 8a687078..7fca63d8 100644 --- a/src/capture_method/WindowsGraphicsCaptureMethod.py +++ b/src/capture_method/WindowsGraphicsCaptureMethod.py @@ -13,7 +13,7 @@ from winsdk.windows.graphics.imaging import BitmapBufferAccessMode, SoftwareBitmap from winsdk.windows.media.capture import MediaCapture -from capture_method.interface import CaptureMethodInterface +from capture_method.CaptureMethodBase import CaptureMethodBase from utils import WINDOWS_BUILD_NUMBER, is_valid_hwnd if TYPE_CHECKING: @@ -22,7 +22,7 @@ WGC_NO_BORDER_MIN_BUILD = 20348 -class WindowsGraphicsCaptureMethod(CaptureMethodInterface): +class WindowsGraphicsCaptureMethod(CaptureMethodBase): size: SizeInt32 frame_pool: Direct3D11CaptureFramePool | None = None session: GraphicsCaptureSession | None = None diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 8a6cd28f..2957bef2 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -6,14 +6,13 @@ from enum import Enum, EnumMeta, unique from typing import TYPE_CHECKING, TypedDict -import cv2 from pygrabber import dshow_graph from winsdk.windows.media.capture import MediaCapture from capture_method.BitBltCaptureMethod import BitBltCaptureMethod +from capture_method.CaptureMethodBase import CaptureMethodBase from capture_method.DesktopDuplicationCaptureMethod import DesktopDuplicationCaptureMethod from capture_method.ForceFullContentRenderingCaptureMethod import ForceFullContentRenderingCaptureMethod -from capture_method.interface import CaptureMethodInterface from capture_method.VideoCaptureDeviceCaptureMethod import VideoCaptureDeviceCaptureMethod from capture_method.WindowsGraphicsCaptureMethod import WindowsGraphicsCaptureMethod from utils import WINDOWS_BUILD_NUMBER @@ -37,7 +36,7 @@ class CaptureMethodInfo(): name: str short_description: str description: str - implementation: type[CaptureMethodInterface] + implementation: type[CaptureMethodBase] class CaptureMethodMeta(EnumMeta): @@ -102,7 +101,7 @@ def __getitem__(self, key: CaptureMethodEnum): name="None", short_description="", description="", - implementation=CaptureMethodInterface + implementation=CaptureMethodBase ) CAPTURE_METHODS = CaptureMethodDict({ @@ -209,19 +208,23 @@ async def get_all_video_capture_devices() -> list[CameraInfo]: named_video_inputs = dshow_graph.FilterGraph().get_input_devices() async def get_camera_info(index: int, device_name: str): - video_capture = cv2.VideoCapture(index) - video_capture.setExceptionMode(True) backend = "" - try: - # https://docs.opencv.org/3.4/d4/d15/group__videoio__flags__base.html#ga023786be1ee68a9105bf2e48c700294d - backend = video_capture.getBackendName() # STS_ASSERT - video_capture.grab() # STS_ERROR - except cv2.error as error: - return CameraInfo(index, device_name, True, backend) \ - if error.code in (cv2.Error.STS_ERROR, cv2.Error.STS_ASSERT) \ - else None - finally: - video_capture.release() + # Probing freezes some devices (like GV-USB2 and AverMedia) if already in use + # https://github.com/Toufool/Auto-Split/issues/169 + # FIXME: Maybe offer the option to the user to obtain more info about their devies? + # Off by default. With a tooltip to explain the risk. + # video_capture = cv2.VideoCapture(index) + # video_capture.setExceptionMode(True) + # try: + # # https://docs.opencv.org/3.4/d4/d15/group__videoio__flags__base.html#ga023786be1ee68a9105bf2e48c700294d + # backend = video_capture.getBackendName() # STS_ASSERT + # video_capture.grab() # STS_ERROR + # except cv2.error as error: + # return CameraInfo(index, device_name, True, backend) \ + # if error.code in (cv2.Error.STS_ERROR, cv2.Error.STS_ASSERT) \ + # else None + # finally: + # video_capture.release() return CameraInfo(index, device_name, False, backend) future = asyncio.gather(*[ diff --git a/src/hotkeys.py b/src/hotkeys.py index a7aff538..fb23600a 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -225,7 +225,7 @@ def is_valid_hotkey_name(hotkey_name: str): def set_hotkey(autosplit: AutoSplit, hotkey: Hotkey, preselected_hotkey_name: str = ""): if autosplit.SettingsWidget: # Unfocus all fields - cast(QtWidgets.QDialog, autosplit.SettingsWidget).setFocus() + cast(QtWidgets.QWidget, autosplit.SettingsWidget).setFocus() getattr(autosplit.SettingsWidget, f"set_{hotkey}_hotkey_button").setText(PRESS_A_KEY_TEXT) # Disable some buttons diff --git a/src/menu_bar.py b/src/menu_bar.py index 37dd5602..8cbcb36c 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -118,7 +118,7 @@ def get_capture_method_index(capture_method: str | CaptureMethodEnum): return 0 -class __SettingsWidget(QtWidgets.QDialog, settings_ui.Ui_DialogSettings): +class __SettingsWidget(QtWidgets.QWidget, settings_ui.Ui_SettingsWidget): __video_capture_devices: list[CameraInfo] = [] """ Used to temporarily store the existing cameras, @@ -180,10 +180,7 @@ def __set_all_capture_devices(self): else: self.capture_device_combobox.setPlaceholderText("No device found.") - def __init__(self, autosplit: AutoSplit): - super().__init__() - self.setupUi(self) - self.autosplit = autosplit + def __apply_os_specific_ui_fixes(self): # Spinbox frame disappears and reappears on Windows 11. It's much cleaner to just disable them. # Most likely related: https://bugreports.qt.io/browse/QTBUG-95215?jql=labels%20%3D%20Windows11 # Arrow buttons tend to move a lot as well @@ -192,13 +189,27 @@ def __init__(self, autosplit: AutoSplit): self.default_similarity_threshold_spinbox.setFrame(False) self.default_delay_time_spinbox.setFrame(False) self.default_pause_time_spinbox.setFrame(False) - # Don't autofocus any particular field - self.setFocus() + def __set_readme_link(self): self.custom_image_settings_info_label.setText( self.custom_image_settings_info_label .text() .format(GITHUB_REPOSITORY=GITHUB_REPOSITORY)) + # HACK: This is a workaround because custom_image_settings_info_label + # simply will not open links with a left click no matter what we tried. + self.readme_link_button.clicked.connect( + lambda: webbrowser.open(f"https://github.com/{GITHUB_REPOSITORY}#readme")) + self.readme_link_button.setStyleSheet("border: 0px; background-color:rgba(0,0,0,0%);") + + def __init__(self, autosplit: AutoSplit): + super().__init__() + self.setupUi(self) + self.autosplit = autosplit + self.__apply_os_specific_ui_fixes() + self.__set_readme_link() + # Don't autofocus any particular field + self.setFocus() + # region Build the Capture method combobox capture_method_values = CAPTURE_METHODS.values() @@ -292,13 +303,13 @@ def hotkey_connect(hotkey: Hotkey): def open_settings(autosplit: AutoSplit): - if not autosplit.SettingsWidget or cast(QtWidgets.QDialog, autosplit.SettingsWidget).isHidden(): + if not autosplit.SettingsWidget or cast(QtWidgets.QWidget, autosplit.SettingsWidget).isHidden(): autosplit.SettingsWidget = __SettingsWidget(autosplit) def get_default_settings_from_ui(autosplit: AutoSplit): - temp_dialog = QtWidgets.QDialog() - default_settings_dialog = settings_ui.Ui_DialogSettings() + temp_dialog = QtWidgets.QWidget() + default_settings_dialog = settings_ui.Ui_SettingsWidget() default_settings_dialog.setupUi(temp_dialog) default_settings: user_profile.UserProfileDict = { "split_hotkey": default_settings_dialog.split_input.text(), diff --git a/src/utils.py b/src/utils.py index b4147944..7f6547c7 100644 --- a/src/utils.py +++ b/src/utils.py @@ -102,9 +102,8 @@ def wrapped(*args: Any, **kwargs: Any): """The directory of either AutoSplit.exe or AutoSplit.py""" # Shared strings -# DIRTY_VERSION_EXTENSION = "" -DIRTY_VERSION_EXTENSION = "-" + AUTOSPLIT_BUILD_NUMBER -"""Set DIRTY_VERSION_EXTENSION to an empty string to generate a clean version number""" -AUTOSPLIT_VERSION = "2.0.0-alpha.4" + DIRTY_VERSION_EXTENSION +# Set AUTOSPLIT_BUILD_NUMBER to an empty string to generate a clean version number +# AUTOSPLIT_BUILD_NUMBER = "" # pyright: ignore[reportConstantRedefinition] # noqa: F811 +AUTOSPLIT_VERSION = "2.0.0-alpha.5" + (f"-{AUTOSPLIT_BUILD_NUMBER}" if AUTOSPLIT_BUILD_NUMBER else "") START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" GITHUB_REPOSITORY = AUTOSPLIT_GITHUB_REPOSITORY From c055ab668abd202d9061bdd3c24f5e21a7e63c32 Mon Sep 17 00:00:00 2001 From: Samuel T Date: Mon, 5 Sep 2022 10:11:39 -0400 Subject: [PATCH 32/54] First round of QA testing fixes + build fixes (#172) --- .vscode/launch.json | 9 +++++++++ .vscode/settings.json | 1 + scripts/requirements.txt | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index db52528d..957b8d50 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,6 +4,15 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + { + "name": "Python: AutoSplit (debug non-user code)", + "type": "python", + "request": "launch", + "preLaunchTask": "Compile resources", + "program": "src/AutoSplit.py", + "console": "integratedTerminal", + "justMyCode": false + }, { "name": "Python: AutoSplit", "type": "python", diff --git a/.vscode/settings.json b/.vscode/settings.json index ab483d74..e240084e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -80,6 +80,7 @@ "E": "Warning", "E9": "Error", // Runtime "W": "Warning", + "W6": "Error", // Deprecation warning // Pyflakes "F": "Warning", // PEP8 Naming convention diff --git a/scripts/requirements.txt b/scripts/requirements.txt index ef80a6a1..3ecf1bbe 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -16,7 +16,7 @@ PyQt6>=6.2.1 # Python 3.10 support git+https://github.com/JohannesBuchner/imagehash.git#egg=ImageHash # Contains type information + setup as package not module keyboard packaging -Pillow +Pillow>=7.2.0 # https://github.com/SerpentAI/D3DShot/issues/44 PyAutoGUI requests certifi @@ -26,7 +26,7 @@ git+https://github.com/Avasam/python_grabber.git@complete-types#egg=pygrabber # # Windows-only pywin32>=301 winsdk>=v1.0.0b4 -git+https://github.com/ranchen421/D3DShot.git#egg=D3DShot # https://github.com/SerpentAI/D3DShot/issues/44 +D3DShot # # Build and compile resources PyInstaller From 9553271121685d4ea3ecff2afb0dcd22d792be56 Mon Sep 17 00:00:00 2001 From: Austin <37423484+Toufool@users.noreply.github.com> Date: Mon, 5 Sep 2022 18:53:42 -0400 Subject: [PATCH 33/54] back to windowed --- scripts/build.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/build.ps1 b/scripts/build.ps1 index c3deb02d..0dd9aae5 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,6 +1,7 @@ & "$PSScriptRoot/compile_resources.ps1" pyinstaller ` --onefile ` + --windowed ` --additional-hooks-dir=Pyinstaller/hooks ` --icon=res/icon.ico ` --splash=res/splash.png ` From a139d2939dec8a31b32b552c7cde392c982380b2 Mon Sep 17 00:00:00 2001 From: Samuel T Date: Wed, 7 Sep 2022 23:38:44 -0400 Subject: [PATCH 34/54] Fix #47, updated some configs and types from typeshed (#173) * Updated configs * Updated typings * Updated some code * Fix #47 * Revert mypy stuff --- pyproject.toml | 2 +- scripts/build.ps1 | 1 - scripts/lint.ps1 | 2 +- scripts/requirements-dev.txt | 2 + src/AutoSplit.py | 2 +- src/region_selection.py | 1 + src/user_profile.py | 3 +- src/utils.py | 3 +- typings/PyInstaller/__init__.pyi | 11 + typings/PyInstaller/__main__.pyi | 13 + typings/PyInstaller/building/build_main.pyi | 32 ++ typings/PyInstaller/building/datastruct.pyi | 36 +++ typings/PyInstaller/compat.pyi | 91 ++++++ typings/PyInstaller/depend/imphookapi.pyi | 16 + typings/PyInstaller/isolated/__init__.pyi | 1 + typings/PyInstaller/isolated/_parent.pyi | 17 ++ typings/PyInstaller/utils/__init__.pyi | 0 typings/PyInstaller/utils/hooks/__init__.pyi | 173 +++++------ typings/PyInstaller/utils/hooks/conda.pyi | 57 ++++ typings/PyInstaller/utils/hooks/win32.pyi | 4 + typings/keyboard/__init__.pyi | 199 ------------- typings/keyboard/_canonical_names.pyi | 7 - typings/keyboard/_darwinkeyboard.pyi | 57 ---- typings/keyboard/_darwinmouse.pyi | 36 --- typings/keyboard/_generic.pyi | 24 -- typings/keyboard/_keyboard_event.pyi | 29 -- typings/keyboard/_mouse_event.pyi | 45 --- typings/keyboard/_nixcommon.pyi | 52 ---- typings/keyboard/_nixkeyboard.pyi | 40 --- typings/keyboard/_nixmouse.pyi | 55 ---- typings/keyboard/_winkeyboard.pyi | 238 --------------- typings/keyboard/_winmouse.pyi | 118 -------- typings/keyboard/mouse.pyi | 80 ----- typings/pyautogui/__init__.pyi | 298 ------------------- typings/pyautogui/_pyautogui_osx.pyi | 2 - typings/pyautogui/_pyautogui_win.pyi | 39 --- typings/pyautogui/_pyautogui_x11.pyi | 2 - typings/pyi_splash/__init__.pyi | 14 + 38 files changed, 378 insertions(+), 1424 deletions(-) create mode 100644 typings/PyInstaller/__init__.pyi create mode 100644 typings/PyInstaller/__main__.pyi create mode 100644 typings/PyInstaller/building/build_main.pyi create mode 100644 typings/PyInstaller/building/datastruct.pyi create mode 100644 typings/PyInstaller/compat.pyi create mode 100644 typings/PyInstaller/depend/imphookapi.pyi create mode 100644 typings/PyInstaller/isolated/__init__.pyi create mode 100644 typings/PyInstaller/isolated/_parent.pyi create mode 100644 typings/PyInstaller/utils/__init__.pyi create mode 100644 typings/PyInstaller/utils/hooks/conda.pyi create mode 100644 typings/PyInstaller/utils/hooks/win32.pyi delete mode 100644 typings/keyboard/__init__.pyi delete mode 100644 typings/keyboard/_canonical_names.pyi delete mode 100644 typings/keyboard/_darwinkeyboard.pyi delete mode 100644 typings/keyboard/_darwinmouse.pyi delete mode 100644 typings/keyboard/_generic.pyi delete mode 100644 typings/keyboard/_keyboard_event.pyi delete mode 100644 typings/keyboard/_mouse_event.pyi delete mode 100644 typings/keyboard/_nixcommon.pyi delete mode 100644 typings/keyboard/_nixkeyboard.pyi delete mode 100644 typings/keyboard/_nixmouse.pyi delete mode 100644 typings/keyboard/_winkeyboard.pyi delete mode 100644 typings/keyboard/_winmouse.pyi delete mode 100644 typings/keyboard/mouse.pyi delete mode 100644 typings/pyautogui/__init__.pyi delete mode 100644 typings/pyautogui/_pyautogui_osx.pyi delete mode 100644 typings/pyautogui/_pyautogui_win.pyi delete mode 100644 typings/pyautogui/_pyautogui_x11.pyi create mode 100644 typings/pyi_splash/__init__.pyi diff --git a/pyproject.toml b/pyproject.toml index b198a748..062ba09c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,6 @@ reportMissingSuperCall="none" # False positives on base classes reportPropertyTypeMismatch="error" reportUninitializedInstanceVariable="error" reportUnnecessaryTypeIgnoreComment="error" -reportUnusedCallResult="none" # Exclude from scanning when running pyright exclude = [ # Auto generated, produces unecessary `# type: ignore` @@ -32,6 +31,7 @@ ignore = [ # We expect stub files to be incomplete or contain useless statements "**/*.pyi", ] +reportUnusedCallResult="none" # Type stubs may not be completable reportMissingTypeStubs = "warning" # False positives with TYPE_CHECKING diff --git a/scripts/build.ps1 b/scripts/build.ps1 index 0dd9aae5..c3deb02d 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,7 +1,6 @@ & "$PSScriptRoot/compile_resources.ps1" pyinstaller ` --onefile ` - --windowed ` --additional-hooks-dir=Pyinstaller/hooks ` --icon=res/icon.ico ` --splash=res/splash.png ` diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index 8466ea2e..cd0ece24 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -4,7 +4,7 @@ $exitCodes = 0 Write-Host "`nRunning autofixes..." isort src/ typings/ -autopep8 src/ typings/ --in-place +autopep8 $(git ls-files '**.py*') --in-place Write-Host "`nRunning Pyright..." $Env:PYRIGHT_PYTHON_FORCE_VERSION = 'latest' diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt index bcb5e46d..41816245 100644 --- a/scripts/requirements-dev.txt +++ b/scripts/requirements-dev.txt @@ -27,4 +27,6 @@ pyright qt6-applications # Types pywin32-stubs>=1.0.7 # Added error types +types-keyboard +types-pyautogui typing-extensions diff --git a/src/AutoSplit.py b/src/AutoSplit.py index dc5af4cd..670e5a0b 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -206,7 +206,7 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s self.show() try: - import pyi_splash # type: ignore # pylint: disable=import-outside-toplevel + import pyi_splash # pyright: ignore[reportMissingModuleSource] # pylint: disable=import-outside-toplevel pyi_splash.close() except ModuleNotFoundError: pass diff --git a/src/region_selection.py b/src/region_selection.py index 4ea266cd..d943e448 100644 --- a/src/region_selection.py +++ b/src/region_selection.py @@ -149,6 +149,7 @@ def __get_window_from_point(x: int, y: int): # Want to pull the parent window from the window handle # By using GetAncestor we are able to get the parent window instead # of the owner window. + # TODO: Fix stubs, IsChild should return a boolean while win32gui.IsChild(win32gui.GetParent(hwnd), hwnd): hwnd = cast(int, user32.GetAncestor(hwnd, GA_ROOT)) diff --git a/src/user_profile.py b/src/user_profile.py index d7d3e0c8..1679ffd1 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -137,7 +137,8 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str set_hotkey(autosplit, hotkey, cast(str, autosplit.settings_dict[hotkey_name])) change_capture_method(cast(CaptureMethodEnum, autosplit.settings_dict["capture_method"]), autosplit) - autosplit.capture_method.recover_window(autosplit.settings_dict["captured_window_title"], autosplit) + if autosplit.settings_dict["capture_method"] != CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: + autosplit.capture_method.recover_window(autosplit.settings_dict["captured_window_title"], autosplit) if not autosplit.capture_method.check_selected_region_exists(autosplit): autosplit.live_image.setText("Reload settings after opening" + f'\n"{autosplit.settings_dict["captured_window_title"]}"' diff --git a/src/utils.py b/src/utils.py index 7f6547c7..227c7f43 100644 --- a/src/utils.py +++ b/src/utils.py @@ -46,6 +46,7 @@ def is_valid_hwnd(hwnd: int): if not hwnd: return False if sys.platform == "win32": + # TODO: Fix stubs, IsWindow should return a boolean return bool(win32gui.IsWindow(hwnd) and win32gui.GetWindowText(hwnd)) return True @@ -104,6 +105,6 @@ def wrapped(*args: Any, **kwargs: Any): # Shared strings # Set AUTOSPLIT_BUILD_NUMBER to an empty string to generate a clean version number # AUTOSPLIT_BUILD_NUMBER = "" # pyright: ignore[reportConstantRedefinition] # noqa: F811 -AUTOSPLIT_VERSION = "2.0.0-alpha.5" + (f"-{AUTOSPLIT_BUILD_NUMBER}" if AUTOSPLIT_BUILD_NUMBER else "") +AUTOSPLIT_VERSION = "2.0.0-alpha.6" + (f"-{AUTOSPLIT_BUILD_NUMBER}" if AUTOSPLIT_BUILD_NUMBER else "") START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" GITHUB_REPOSITORY = AUTOSPLIT_GITHUB_REPOSITORY diff --git a/typings/PyInstaller/__init__.pyi b/typings/PyInstaller/__init__.pyi new file mode 100644 index 00000000..df51e4d4 --- /dev/null +++ b/typings/PyInstaller/__init__.pyi @@ -0,0 +1,11 @@ +from typing_extensions import LiteralString + +from PyInstaller import compat as compat + +__all__ = ("HOMEPATH", "PLATFORM", "__version__", "DEFAULT_DISTPATH", "DEFAULT_SPECPATH", "DEFAULT_WORKPATH") +__version__: str = ... +HOMEPATH: str = ... +DEFAULT_SPECPATH: str = ... +DEFAULT_DISTPATH: str = ... +DEFAULT_WORKPATH: str = ... +PLATFORM: LiteralString = ... diff --git a/typings/PyInstaller/__main__.pyi b/typings/PyInstaller/__main__.pyi new file mode 100644 index 00000000..d1f8064d --- /dev/null +++ b/typings/PyInstaller/__main__.pyi @@ -0,0 +1,13 @@ +# https://pyinstaller.org/en/stable/usage.html#running-pyinstaller-from-python-code +from collections.abc import Iterable + +from _typeshed import SupportsKeysAndGetItem +from typing_extensions import TypeAlias + +# Used to update PyInstaller.config.CONF +_PyIConfig: TypeAlias = ( + SupportsKeysAndGetItem[str, bool | str | list[str] | None] | Iterable[tuple[str, bool | str | list[str] | None]] +) + + +def run(pyi_args: Iterable[str] | None = ..., pyi_config: _PyIConfig | None = ...) -> None: ... diff --git a/typings/PyInstaller/building/build_main.pyi b/typings/PyInstaller/building/build_main.pyi new file mode 100644 index 00000000..1d3f44d5 --- /dev/null +++ b/typings/PyInstaller/building/build_main.pyi @@ -0,0 +1,32 @@ +# Referenced in: https://pyinstaller.org/en/stable/hooks.html?highlight=get_hook_config#PyInstaller.utils.hooks.get_hook_config +# Not to be imported during runtime, but is the type reference for hooks and analysis configuration + +from collections.abc import Iterable + +from _typeshed import StrOrBytesPath +from PyInstaller.building.datastruct import Target # type: ignore[import] + +# + + +class Analysis(Target): + # https://pyinstaller.org/en/stable/hooks-config.html#hook-configuration-options + hooksconfig: dict[str, dict[str, object]] + + def __init__( + self, + scripts: Iterable[StrOrBytesPath], + pathex=..., + binaries=..., + datas=..., + hiddenimports=..., + hookspath=..., + hooksconfig: dict[str, dict[str, object]] | None = ..., + excludes=..., + runtime_hooks=..., + cipher=..., + win_no_prefer_redirects: bool = ..., + win_private_assemblies: bool = ..., + noarchive: bool = ..., + module_collection_mode=..., + ) -> None: ... diff --git a/typings/PyInstaller/building/datastruct.pyi b/typings/PyInstaller/building/datastruct.pyi new file mode 100644 index 00000000..922bfa4a --- /dev/null +++ b/typings/PyInstaller/building/datastruct.pyi @@ -0,0 +1,36 @@ +# https://pyinstaller.org/en/stable/advanced-topics.html#the-toc-and-tree-classes +from collections.abc import Iterable, Sequence +from typing import ClassVar + +from typing_extensions import Literal, LiteralString, TypeAlias + +_TypeCode: TypeAlias = Literal["DATA", "BINARY", "EXTENSION", "OPTION"] +_TOCTuple: TypeAlias = tuple[str, str | None, _TypeCode | None] + + +class TOC(list[_TOCTuple]): + filenames: set[str] + def __init__(self, initlist: Iterable[_TOCTuple] | None = ...) -> None: ... + + +class Target: + invcnum: ClassVar[int] + tocfilename: LiteralString + tocbasename: LiteralString + dependencies: TOC + + +class Tree(Target, TOC): + root: str | None + prefix: str | None + excludes: list[str] | None + typecode: _TypeCode + + def __init__( + self, + root: str | None = ..., + prefix: str | None = ..., + excludes: Sequence[str] | None = ..., + typecode: _TypeCode = ...) -> None: ... + + def assemble(self) -> None: ... diff --git a/typings/PyInstaller/compat.pyi b/typings/PyInstaller/compat.pyi new file mode 100644 index 00000000..0d512b77 --- /dev/null +++ b/typings/PyInstaller/compat.pyi @@ -0,0 +1,91 @@ +from collections.abc import Iterable +from importlib.abc import _Path +from types import ModuleType +from typing import AnyStr, overload + +from _typeshed import GenericPath, StrOrBytesPath +from typing_extensions import Literal, TypeAlias + +_OpenFile: TypeAlias = StrOrBytesPath | int + +is_64bits: bool +is_py35: bool +is_py36: bool +is_py37: bool +is_py38: bool +is_py39: bool +is_py310: bool +is_win: bool +is_win_10: bool +is_win_wine: bool +is_cygwin: bool +is_darwin: bool +is_linux: bool +is_solar: bool +is_aix: bool +is_freebsd: bool +is_openbsd: bool +is_hpux: bool +is_unix: bool +is_musl: bool +is_macos_11_compat: tuple[int, ...] | bool | None +is_macos_11_native: tuple[int, ...] | bool | None +is_macos_11: tuple[int, ...] | bool | None +PYDYLIB_NAMES: set[str] +base_prefix: str +is_venv: bool +is_conda: bool +is_pure_conda: bool +python_executable: str +is_ms_app_store: bool +BYTECODE_MAGIC: bytes +EXTENSION_SUFFIXES: list[str] +ALL_SUFFIXES: list[str] + +architecture: Literal["64bit", "n32bit", "32bit"] +system: Literal["Cygwin", "Linux", "Darwin", "Java", "Windows"] +machine: Literal["sw_64", "loongarch64", "arm", "intel", "ppc", "mips", "riscv", "s390x", "unknown"] | None + + +def is_wine_dll(filename: _OpenFile) -> bool: ... +@overload +def getenv(name: str, default: str = ...) -> str: ... +@overload +def getenv(name: str, default: None = ...) -> str | None: ... +def setenv(name: str, value: str) -> None: ... +def unsetenv(name: str) -> None: ... + + +def exec_command(*cmdargs: str, encoding: str | None = ..., raise_enoent: bool + | None = ..., **kwargs: int | bool | Iterable[int] | None) -> str: ... + + +def exec_command_rc(*cmdargs: str, **kwargs: float | bool | Iterable[int] | None) -> int: ... + + +def exec_command_stdout( + *command_args: str, encoding: str | None = ..., **kwargs: float | str | bytes | bool | Iterable[int] | None +) -> str: ... + + +def exec_command_all( + *cmdargs: str, encoding: str | None = ..., **kwargs: int | bool | Iterable[int] | None +) -> tuple[int, str, str]: ... +def exec_python(*args: str, **kwargs: str | None) -> str: ... +def exec_python_rc(*args: str, **kwargs: str | None) -> int: ... +def expand_path(path: GenericPath[AnyStr]) -> AnyStr: ... +def getsitepackages(prefixes: Iterable[str] | None = ...) -> list[str]: ... +def importlib_load_source(name: str, pathname: _Path) -> ModuleType: ... + + +PY3_BASE_MODULES: set[str] +PURE_PYTHON_MODULE_TYPES: set[str] +SPECIAL_MODULE_TYPES: set[str] +BINARY_MODULE_TYPES: set[str] +VALID_MODULE_TYPES: set[str] +BAD_MODULE_TYPES: set[str] +ALL_MODULE_TYPES: set[str] +MODULE_TYPES_TO_TOC_DICT: dict[str, str] + + +def check_requirements() -> None: ... diff --git a/typings/PyInstaller/depend/imphookapi.pyi b/typings/PyInstaller/depend/imphookapi.pyi new file mode 100644 index 00000000..b2a06998 --- /dev/null +++ b/typings/PyInstaller/depend/imphookapi.pyi @@ -0,0 +1,16 @@ +# https://pyinstaller.org/en/stable/hooks-config.html `hook_api` is a PostGraphAPI + +from collections.abc import Iterable + +from _typeshed import StrOrBytesPath +from PyInstaller.building.build_main import Analysis # type: ignore[import] + +# + + +class PostGraphAPI: + @property + def __path__(self) -> tuple[str, ...] | None: ... + @property + def analysis(self) -> Analysis: ... + def add_datas(self, list_of_tuples: Iterable[tuple[StrOrBytesPath, StrOrBytesPath]]) -> None: ... diff --git a/typings/PyInstaller/isolated/__init__.pyi b/typings/PyInstaller/isolated/__init__.pyi new file mode 100644 index 00000000..100495ee --- /dev/null +++ b/typings/PyInstaller/isolated/__init__.pyi @@ -0,0 +1 @@ +from PyInstaller.isolated._parent import Python as Python, call as call, decorate as decorate diff --git a/typings/PyInstaller/isolated/_parent.pyi b/typings/PyInstaller/isolated/_parent.pyi new file mode 100644 index 00000000..aa5ff6d8 --- /dev/null +++ b/typings/PyInstaller/isolated/_parent.pyi @@ -0,0 +1,17 @@ +from collections.abc import Callable +from functools import _AnyCallable +from typing import TypeVar + +from typing_extensions import ParamSpec + +_AC = TypeVar("_AC", bound=_AnyCallable) +_R = TypeVar("_R") +_P = ParamSpec("_P") + + +class Python: + def call(self, function: Callable[_P, _R], *args: _P.args, **kwargs: _P.kwargs) -> _R: ... + + +def call(function: Callable[_P, _R], *args: _P.args, **kwargs: _P.kwargs) -> _R: ... +def decorate(function: _AC) -> _AC: ... diff --git a/typings/PyInstaller/utils/__init__.pyi b/typings/PyInstaller/utils/__init__.pyi new file mode 100644 index 00000000..e69de29b diff --git a/typings/PyInstaller/utils/hooks/__init__.pyi b/typings/PyInstaller/utils/hooks/__init__.pyi index c89940ed..de5ec5ec 100644 --- a/typings/PyInstaller/utils/hooks/__init__.pyi +++ b/typings/PyInstaller/utils/hooks/__init__.pyi @@ -1,126 +1,105 @@ -""" # noqa: Y021 -This type stub file was generated by pyright. -""" -from collections.abc import Callable -from typing import Any, Literal +# https://pyinstaller.org/en/stable/hooks.html -logger = ... -PY_IGNORE_EXTENSIONS: set -hook_variables: dict +import os +from collections.abc import Callable, Iterable +from typing import Any, AnyStr +import pkg_resources +from _typeshed import AnyOrLiteralStr, StrOrBytesPath, SupportsKeysAndGetItem +from PyInstaller.depend.imphookapi import PostGraphAPI # type: ignore[import] +from PyInstaller.utils.hooks import conda as conda_support +from PyInstaller.utils.hooks.win32 import get_pywin32_module_file_attribute as get_pywin32_module_file_attribute +from typing_extensions import Literal, TypeAlias -def exec_statement(statement): - ... +from PyInstaller import isolated +_Environ: TypeAlias = SupportsKeysAndGetItem[str, str] | Iterable[tuple[str, str]] | os._Environ[str] -def exec_statement_rc(statement): - ... +PY_IGNORE_EXTENSIONS: set[str] +hook_variables: dict[str, str] -def exec_script(script_filename, *args, env=...): - ... +def exec_statement(statement: str) -> str | int: ... +def exec_statement_rc(statement: str) -> str | int: ... -def exec_script_rc(script_filename, *args, env=...): - ... +def exec_script(script_filename: os.PathLike[AnyStr] | AnyOrLiteralStr, + *args: str, env: _Environ | None = ...) -> str | int: ... -def eval_statement(statement) -> Any | Literal[""]: - ... +def exec_script_rc( + script_filename: os.PathLike[AnyStr] | AnyOrLiteralStr, *args: str, env: _Environ | None = ... +) -> str | int: ... +def eval_statement(statement: str) -> Any | Literal[""]: ... -def eval_script(scriptfilename, *args, env=...) -> Any | Literal[""]: - ... +def eval_script( + scriptfilename: os.PathLike[AnyStr] | AnyOrLiteralStr, *args: str, env: _Environ | None = ... +) -> Any | Literal[""]: ... +@isolated.decorate +def get_pyextension_imports(module_name: str) -> list[str]: ... +def get_homebrew_path(formula: str = ...) -> str | None: ... +def remove_prefix(string: str, prefix: str) -> str: ... +def remove_suffix(string: str, suffix: str) -> str: ... +def remove_file_extension(filename: str) -> str: ... +@isolated.decorate +def can_import_module(module_name: str) -> bool: ... +def get_module_attribute(module_name: str, attr_name: str) -> Any: ... +def get_module_file_attribute(package: str) -> str | None: ... -def get_pyextension_imports(modname) -> Any | list: - ... +def is_module_satisfies( + requirements: Iterable[str] | pkg_resources.Requirement, + version: str | pkg_resources.Distribution | None = ..., + version_attr: str = ..., +) -> bool: ... +def is_package(module_name: str) -> bool: ... +def get_all_package_paths(package: str) -> list[str]: ... +def package_base_path(package_path: str, package: str) -> str: ... +def get_package_paths(package: str) -> tuple[str, str]: ... -def get_homebrew_path(formula=...) -> str | None: - ... +def collect_submodules( + package: str, filter: Callable[[str], bool] = ..., on_error: Literal["ignore", "warn once", "warn", "raise"] = ... +) -> list[str]: ... +def is_module_or_submodule(name: str, mod_or_submod: str) -> bool: ... -def remove_prefix(string, prefix): - ... +PY_DYLIB_PATTERNS: list[str] -def remove_suffix(string, suffix): - ... +def collect_dynamic_libs(package: str, destdir: object | None = ...) -> list[tuple[str, str]]: ... -def remove_file_extension(filename): - ... +def collect_data_files( + package: str, + include_py_files: bool = ..., + subdir: StrOrBytesPath | None = ..., + excludes: Iterable[str] | None = ..., + includes: Iterable[str] | None = ..., +) -> list[tuple[str, str]]: ... -def can_import_module(module_name): - ... +def collect_system_data_files( + path: str, destdir: StrOrBytesPath | None = ..., include_py_files: bool = ... +) -> list[tuple[str, str]]: ... +def copy_metadata(package_name: str, recursive: bool = ...) -> list[tuple[str, str]]: ... +def get_installer(module: str) -> str | None: ... +def requirements_for_package(package_name: str) -> list[str]: ... -def get_module_attribute(module_name, attr_name): - ... +def collect_all( + package_name: str, + include_py_files: bool = ..., + filter_submodules: Callable[[str], bool] | None = ..., + exclude_datas: Iterable[str] | None = ..., + include_datas: Iterable[str] | None = ..., + on_error: Literal["ignore", "warn once", "warn", "raise"] = ..., +) -> tuple[list[tuple[str, str]], list[tuple[str, str]], list[str]]: ... +def collect_entry_point(name: str) -> tuple[tuple[str, str], list[str]]: ... +def get_hook_config(hook_api: PostGraphAPI, module_name: str, key: str) -> None: ... -def get_module_file_attribute(package): - ... - - -def is_module_satisfies(requirements, version=..., version_attr=...): - ... - - -def is_package(module_name) -> Literal[False]: - ... - - -def get_package_paths(package) -> tuple[str, str]: - ... - - -def collect_submodules(package: str, filter: Callable[[str], bool] | None = ...) -> list[str]: - ... - - -def is_module_or_submodule(name, mod_or_submod): - ... - - -PY_DYLIB_PATTERNS: str - - -def collect_dynamic_libs(package: str, destdir: str | None = ...) -> list[tuple[str, str]]: - ... - - -def collect_data_files(package: str, include_py_files: bool = ..., subdir: str = ..., - excludes: list[str] = ..., includes: list[str] = ...) -> list[tuple[str, str]]: - ... - - -def collect_system_data_files(path, destdir=..., include_py_files=...): - ... - - -def copy_metadata(package_name, recursive=...) -> list: - ... - - -def get_installer(module) -> str | None: - ... - - -def requirements_for_package(package_name) -> list: - ... - - -def collect_all(package_name, include_py_files=..., filter_submodules=..., - exclude_datas=..., include_datas=...) -> tuple[list, list, list]: - ... - - -def collect_entry_point(name: str) -> tuple[list, list]: - ... - - -def get_hook_config(hook_api, module_name, key) -> None: - ... +def include_or_exclude_file( + filename: str, include_list: Iterable[str] | None = ..., exclude_list: Iterable[str] | None = ... +) -> bool: ... diff --git a/typings/PyInstaller/utils/hooks/conda.pyi b/typings/PyInstaller/utils/hooks/conda.pyi new file mode 100644 index 00000000..657ed28d --- /dev/null +++ b/typings/PyInstaller/utils/hooks/conda.pyi @@ -0,0 +1,57 @@ +# https://pyinstaller.org/en/stable/hooks.html?highlight=conda_support#module-PyInstaller.utils.hooks.conda + +import sys +from collections.abc import Sequence +from pathlib import Path, PurePath +from typing import Any + +from _typeshed import StrOrBytesPath +from typing_extensions import TypeAlias, TypedDict + +if sys.version_info >= (3, 8): + from importlib.metadata import PackagePath as _PackagePath +else: + _PackagePath: TypeAlias = Any + +CONDA_ROOT: Path +CONDA_META_DIR: Path +PYTHONPATH_PREFIXES: list[Path] + + +class _RawDict(TypedDict): + name: str + version: str + files: list[StrOrBytesPath | PurePath] + depends: list[str] + + +class Distribution: + raw: _RawDict + name: str + version: str + files: list[PackagePath] + dependencies: list[str] + packages: list[str | None] + def __init__(self, json_path: str) -> None: ... + @classmethod + def from_name(cls, name: str) -> Distribution: ... + @classmethod + def from_package_name(cls, name: str) -> Distribution: ... + + +class PackagePath(_PackagePath): + def locate(self) -> Path: ... + + +def walk_dependency_tree(initial: str, excludes: Sequence[str] | None = ...) -> dict[str, Distribution]: ... +def requires(name: str, strip_versions: bool = ...) -> list[str]: ... +def files(name: str, dependencies: bool = ..., excludes: Sequence[str] | None = ...) -> list[PackagePath]: ... + + +def collect_dynamic_libs( + name: str, dest: str = ..., dependencies: bool = ..., excludes: Sequence[str] | None = ... +) -> list[tuple[str, str]]: ... + + +distributions: dict[str, Distribution] +distributions_by_package: dict[str | None, Distribution] diff --git a/typings/PyInstaller/utils/hooks/win32.pyi b/typings/PyInstaller/utils/hooks/win32.pyi new file mode 100644 index 00000000..cf597c88 --- /dev/null +++ b/typings/PyInstaller/utils/hooks/win32.pyi @@ -0,0 +1,4 @@ +__all__ = ("get_pywin32_module_file_attribute",) + + +def get_pywin32_module_file_attribute(module_name: str) -> str | int: ... diff --git a/typings/keyboard/__init__.pyi b/typings/keyboard/__init__.pyi deleted file mode 100644 index 6d9f5e54..00000000 --- a/typings/keyboard/__init__.pyi +++ /dev/null @@ -1,199 +0,0 @@ -from collections import Counter, defaultdict, deque -from collections.abc import Callable, Generator, Sequence -from queue import Queue -from threading import Event as _UninterruptibleEvent -from typing import Optional # noqa: Y037 # mypy issue - -from keyboard._canonical_names import all_modifiers as all_modifiers, sided_modifiers as sided_modifiers -from keyboard._generic import GenericListener as _GenericListener -from keyboard._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent -from typing_extensions import Literal, TypeAlias - -_Key: TypeAlias = int | str -_ScanCodeList: TypeAlias = list[int] | tuple[int, ...] -_ParseableHotkey: TypeAlias = _Key | list[int | _ScanCodeList] | tuple[int | _ScanCodeList, ...] -_Callback: TypeAlias = Callable[[KeyboardEvent], Optional[bool]] | Callable[[], Optional[bool]] -# Can't use ParamSpecArgs on `args`, only on `*args` -# _P = ParamSpec("_P") -_P: TypeAlias = tuple[object, ...] - -version: str - - -class _Event(_UninterruptibleEvent): - def wait(self) -> None: ... - - -def is_modifier(key: _Key | None) -> bool: ... - - -class _KeyboardListener(_GenericListener): - transition_table: dict[ - tuple[Literal["free"], Literal["up"], Literal["modifier"]] - | tuple[Literal["free"], Literal["down"], Literal["modifier"]] - | tuple[Literal["pending"], Literal["up"], Literal["modifier"]] - | tuple[Literal["pending"], Literal["down"], Literal["modifier"]] - | tuple[Literal["suppressed"], Literal["up"], Literal["modifier"]] - | tuple[Literal["suppressed"], Literal["down"], Literal["modifier"]] - | tuple[Literal["allowed"], Literal["up"], Literal["modifier"]] - | tuple[Literal["allowed"], Literal["down"], Literal["modifier"]] - | tuple[Literal["free"], Literal["up"], Literal["hotkey"]] - | tuple[Literal["free"], Literal["down"], Literal["hotkey"]] - | tuple[Literal["pending"], Literal["up"], Literal["hotkey"]] - | tuple[Literal["pending"], Literal["down"], Literal["hotkey"]] - | tuple[Literal["suppressed"], Literal["up"], Literal["hotkey"]] - | tuple[Literal["suppressed"], Literal["down"], Literal["hotkey"]] - | tuple[Literal["allowed"], Literal["up"], Literal["hotkey"]] - | tuple[Literal["allowed"], Literal["down"], Literal["hotkey"]] - | tuple[Literal["free"], Literal["up"], Literal["other"]] - | tuple[Literal["free"], Literal["down"], Literal["other"]] - | tuple[Literal["pending"], Literal["up"], Literal["other"]] - | tuple[Literal["pending"], Literal["down"], Literal["other"]] - | tuple[Literal["suppressed"], Literal["up"], Literal["other"]] - | tuple[Literal["suppressed"], Literal["down"], Literal["other"]] - | tuple[Literal["allowed"], Literal["up"], Literal["other"]] - | tuple[Literal["allowed"], Literal["down"], Literal["other"]], - tuple[Literal[False], Literal[True], Literal["free"]] - | tuple[Literal[False], Literal[False], Literal["pending"]] - | tuple[Literal[True], Literal[True], Literal["free"]] - | tuple[Literal[False], Literal[True], Literal["allowed"]] - | tuple[Literal[False], Literal[False], Literal["free"]] - | tuple[Literal[False], Literal[False], Literal["suppressed"]] - | tuple[Literal[False], None, Literal["free"]] - | tuple[Literal[False], None, Literal["suppressed"]] - | tuple[Literal[False], None, Literal["allowed"]] - | tuple[Literal[True], Literal[True], Literal["allowed"]] - | tuple[Literal[False], Literal[False], Literal["allowed"]], - ] - active_modifiers: set[int] - blocking_hooks: list[_Callback] - blocking_keys: defaultdict[int, list[_Callback]] - nonblocking_keys: defaultdict[int, list[_Callback]] - blocking_hotkeys: defaultdict[tuple[int, ...], list[_Callback]] - nonblocking_hotkeys: defaultdict[tuple[int, ...], list[_Callback]] - filtered_modifiers: Counter[int] - is_replaying: bool - modifier_states: dict[_Key, str] - def init(self) -> None: ... - def pre_process_event(self, event): ... - def direct_callback(self, event): ... - def listen(self) -> None: ... - - -def key_to_scan_codes(key: _ParseableHotkey, error_if_missing: bool = ...) -> tuple[int, ...]: ... -def parse_hotkey(hotkey: _ParseableHotkey) -> tuple[tuple[tuple[int, ...], ...], ...]: ... -def send(hotkey: _ParseableHotkey, do_press: bool = ..., do_release: bool = ...) -> None: ... - - -press_and_release = send - - -def press(hotkey: _ParseableHotkey) -> None: ... -def release(hotkey: _ParseableHotkey) -> None: ... - -# is_pressed cannot check multi-step hotkeys, so not using _ParseableHotkey - - -def is_pressed(hotkey: _Key | _ScanCodeList) -> bool: ... -def call_later(fn: Callable[..., None], args: _P = ..., delay: float = ...) -> None: ... -def hook(callback: _Callback, suppress: bool = ..., on_remove: Callable[[], None] = ...) -> Callable[[], None]: ... -def on_press(callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... -def on_release(callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... -def hook_key(key: _ParseableHotkey, callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... -def on_press_key(key: _ParseableHotkey, callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... -def on_release_key(key: _ParseableHotkey, callback: _Callback, suppress: bool = ...) -> Callable[[], None]: ... -def unhook(remove: _Callback) -> None: ... - - -unhook_key = unhook - - -def unhook_all() -> None: ... -def block_key(key: _ParseableHotkey) -> Callable[[], None]: ... - - -unblock_key = unhook_key - - -def remap_key(src: _ParseableHotkey, dst: _ParseableHotkey) -> Callable[[], None]: ... - - -unremap_key = unhook_key - - -def parse_hotkey_combinations(hotkey: _ParseableHotkey) -> tuple[tuple[tuple[int, ...], ...], ...]: ... - - -def add_hotkey( - hotkey: _ParseableHotkey, - callback: Callable[..., bool | None], - args: _P = ..., - suppress: bool = ..., - timeout: float = ..., - trigger_on_release: bool = ..., -) -> Callable[[], None]: ... - - -register_hotkey = add_hotkey - - -def remove_hotkey(hotkey_or_callback: _ParseableHotkey | _Callback) -> None: ... - - -unregister_hotkey = remove_hotkey -clear_hotkey = remove_hotkey - - -def unhook_all_hotkeys() -> None: ... - - -unregister_all_hotkeys = unhook_all_hotkeys -remove_all_hotkeys = unhook_all_hotkeys -clear_all_hotkeys = unhook_all_hotkeys - - -def remap_hotkey( - src: _ParseableHotkey, dst: _ParseableHotkey, suppress: bool = ..., trigger_on_release: bool = ... -) -> Callable[[], None]: ... - - -unremap_hotkey = remove_hotkey - - -def stash_state() -> list[int]: ... -def restore_state(scan_codes: Sequence[int]) -> None: ... -def restore_modifiers(scan_codes: Sequence[int]) -> None: ... -def write(text: str, delay: float = ..., restore_state_after: bool = ..., exact: bool | None = ...) -> None: ... -def wait(hotkey: _ParseableHotkey | None = ..., suppress: bool = ..., trigger_on_release: bool = ...) -> None: ... -def get_hotkey_name(names: Sequence[str] | None = ...) -> str: ... -def read_event(suppress: bool = ...) -> KeyboardEvent: ... -def read_key(suppress: bool = ...) -> _Key: ... -def read_hotkey(suppress: bool = ...) -> str: ... -def get_typed_strings(events: Sequence[KeyboardEvent], allow_backspace: bool = ...) -> Generator[str, None, None]: ... - - -def start_recording( - recorded_events_queue: Queue[KeyboardEvent] | None = ..., -) -> tuple[Queue[KeyboardEvent], Callable[[], None]]: ... -def stop_recording() -> list[deque[KeyboardEvent]]: ... -def record(until: str = ..., suppress: bool = ..., trigger_on_release: bool = ...) -> list[deque[KeyboardEvent]]: ... -def play(events: Sequence[KeyboardEvent], speed_factor: float = ...) -> None: ... - - -replay = play - - -def add_word_listener( - word: str, callback: _Callback, triggers: Sequence[str] = ..., match_suffix: bool = ..., timeout: float = ... -) -> Callable[[], None]: ... -def remove_word_listener(word_or_handler: str | _Callback) -> None: ... - - -def add_abbreviation( - source_text: str, replacement_text: str, match_suffix: bool = ..., timeout: float = ... -) -> Callable[[], None]: ... - - -register_word_listener = add_word_listener -register_abbreviation = add_abbreviation -remove_abbreviation = remove_word_listener diff --git a/typings/keyboard/_canonical_names.pyi b/typings/keyboard/_canonical_names.pyi deleted file mode 100644 index dee5d6db..00000000 --- a/typings/keyboard/_canonical_names.pyi +++ /dev/null @@ -1,7 +0,0 @@ -basestring = str -canonical_names: dict[str, str] -sided_modifiers: set[str] -all_modifiers: set[str] - - -def normalize_name(name: str) -> str: ... diff --git a/typings/keyboard/_darwinkeyboard.pyi b/typings/keyboard/_darwinkeyboard.pyi deleted file mode 100644 index b0760a1b..00000000 --- a/typings/keyboard/_darwinkeyboard.pyi +++ /dev/null @@ -1,57 +0,0 @@ -from collections.abc import Callable, Generator, Sequence -from ctypes import CDLL -from typing import TypeVar - -from _typeshed import Incomplete -from keyboard._canonical_names import normalize_name as normalize_name -from keyboard._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent -from typing_extensions import TypeAlias - -_Unused: TypeAlias = object - -# https://github.com/ronaldoussoren/pyobjc/milestone/3 -_CGEventTap: TypeAlias = Incomplete # Quartz.CGEventTap -_KCGEvent: TypeAlias = Incomplete # Quartz.kCGEvent -_T = TypeVar("_T") - -unichr = chr -Carbon: CDLL - - -class KeyMap: - non_layout_keys: dict[int, str] - layout_specific_keys: dict[int, tuple[str, str]] - def character_to_vk(self, character: str) -> tuple[int, list[str]]: ... - def vk_to_character(self, vk: int, modifiers: Sequence[str] = ...): ... - - -class KeyController: - key_map: KeyMap - current_modifiers: dict[str, bool] - media_keys: dict[str, int] - def press(self, key_code: int) -> None: ... - def release(self, key_code: int) -> None: ... - def map_char(self, character: str) -> tuple[int, list[str]]: ... - def map_scan_code(self, scan_code: int) -> int | str | None: ... - - -class KeyEventListener: - blocking: bool - callback: Callable[[KeyboardEvent], None] - listening: bool - tap: _CGEventTap - def __init__(self, callback: Callable[[KeyboardEvent], None], blocking: bool = ...) -> None: ... - def run(self) -> None: ... - def handler(self, proxy: _Unused, e_type: _KCGEvent, event: _T, refcon: _Unused) -> _T: ... - - -key_controller: KeyController - - -def init() -> None: ... -def press(scan_code: int) -> None: ... -def release(scan_code: int) -> None: ... -def map_name(name: str) -> Generator[tuple[int, list[str]], None, None]: ... -def name_from_scancode(scan_code: int) -> int | str | None: ... -def listen(callback: Callable[[KeyboardEvent], None]) -> None: ... -def type_unicode(character: str) -> None: ... diff --git a/typings/keyboard/_darwinmouse.pyi b/typings/keyboard/_darwinmouse.pyi deleted file mode 100644 index 61711c0f..00000000 --- a/typings/keyboard/_darwinmouse.pyi +++ /dev/null @@ -1,36 +0,0 @@ -from collections.abc import Callable -from queue import Queue -from typing import TypeVar - -from _typeshed import Incomplete -from keyboard._keyboard_event import KeyboardEvent -from keyboard._mouse_event import (DOWN as DOWN, LEFT as LEFT, MIDDLE as MIDDLE, RIGHT as RIGHT, UP as UP, X2 as X2, - ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, WheelEvent as WheelEvent, X as X, - _MouseButton) -from typing_extensions import TypeAlias - -_Unused: TypeAlias = object - -# https://github.com/ronaldoussoren/pyobjc/milestone/3 -_CGEventTap: TypeAlias = Incomplete # Quartz.CGEventTap -_KCGEventKey: TypeAlias = Incomplete # Quartz.kCGEventKey -_T = TypeVar("_T") - - -class MouseEventListener: - blocking: bool - callback: Callable[[KeyboardEvent], None] - listening: bool - def __init__(self, callback: Callable[[KeyboardEvent], None], blocking: bool = ...) -> None: ... - tap: _CGEventTap - def run(self) -> None: ... - def handler(self, proxy: _Unused, e_type: _KCGEventKey, event: _T, refcon: _Unused) -> _T: ... - - -def init() -> None: ... -def listen(queue: Queue[KeyboardEvent]) -> None: ... -def press(button: _MouseButton = ...) -> None: ... -def release(button: _MouseButton = ...) -> None: ... -def wheel(delta: int = ...) -> None: ... -def move_to(x: int, y: int) -> None: ... -def get_position() -> tuple[int, int]: ... diff --git a/typings/keyboard/_generic.pyi b/typings/keyboard/_generic.pyi deleted file mode 100644 index 9c62225f..00000000 --- a/typings/keyboard/_generic.pyi +++ /dev/null @@ -1,24 +0,0 @@ -from collections.abc import Callable -from queue import Queue -from threading import Lock, Thread - -from keyboard._keyboard_event import KeyboardEvent -from keyboard._mouse_event import ButtonEvent, MoveEvent, WheelEvent -from typing_extensions import Literal, TypeAlias - -_Event: TypeAlias = KeyboardEvent | ButtonEvent | WheelEvent | MoveEvent - - -class GenericListener: - lock: Lock - handlers: list[Callable[[_Event], bool | None]] - listening: bool - queue: Queue[_Event] - listening_thread: Thread | None - processing_thread: Thread | None - def invoke_handlers(self, event: _Event) -> Literal[1] | None: ... - def start_if_necessary(self) -> None: ... - def pre_process_event(self, event: _Event) -> None: ... - def process(self) -> None: ... - def add_handler(self, handler: Callable[[_Event], bool | None]) -> None: ... - def remove_handler(self, handler: Callable[[_Event], bool | None]) -> None: ... diff --git a/typings/keyboard/_keyboard_event.pyi b/typings/keyboard/_keyboard_event.pyi deleted file mode 100644 index 1e0453fc..00000000 --- a/typings/keyboard/_keyboard_event.pyi +++ /dev/null @@ -1,29 +0,0 @@ -from keyboard._canonical_names import canonical_names as canonical_names, normalize_name as normalize_name -from typing_extensions import Literal - -basestring = str -KEY_DOWN: Literal["down"] -KEY_UP: Literal["up"] - - -class KeyboardEvent: - event_type: Literal["down", "up"] | None - scan_code: int - name: str | None - time: float | None - device: str | None - modifiers: tuple[str, ...] | None - is_keypad: bool | None - - def __init__( - self, - event_type: Literal["down", "up"] | None, - scan_code: int, - name: str | None = ..., - time: float | None = ..., - device: str | None = ..., - modifiers: tuple[str, ...] | None = ..., - is_keypad: bool | None = ..., - ) -> None: ... - def to_json(self, ensure_ascii: bool = ...) -> str: ... - def __eq__(self, other: object) -> bool: ... diff --git a/typings/keyboard/_mouse_event.pyi b/typings/keyboard/_mouse_event.pyi deleted file mode 100644 index 9d1b5f74..00000000 --- a/typings/keyboard/_mouse_event.pyi +++ /dev/null @@ -1,45 +0,0 @@ -import sys -from typing import NamedTuple - -from typing_extensions import Literal, TypeAlias - -LEFT: Literal["left"] -RIGHT: Literal["right"] -MIDDLE: Literal["middle"] -X: Literal["x"] -X2: Literal["x2"] - -UP: Literal["up"] -DOWN: Literal["down"] -DOUBLE: Literal["double"] -WHEEL: Literal["wheel"] - -VERTICAL: Literal["vertical"] -HORIZONTAL: Literal["horizontal"] - -if sys.platform == "linux" or sys.platform == "win32": - _MouseButton: TypeAlias = Literal["left", "right", "middle", "x", "x2"] -else: - _MouseButton: TypeAlias = Literal["left", "right", "middle"] - -if sys.platform == "win32": - _MouseEvent: TypeAlias = Literal["up", "down", "double", "wheel"] -else: - _MouseEvent: TypeAlias = Literal["up", "down"] - - -class ButtonEvent(NamedTuple): - event_type: _MouseEvent - button: _MouseButton - time: float - - -class WheelEvent(NamedTuple): - delta: int - time: float - - -class MoveEvent(NamedTuple): - x: int - y: int - time: float diff --git a/typings/keyboard/_nixcommon.pyi b/typings/keyboard/_nixcommon.pyi deleted file mode 100644 index 3c616d86..00000000 --- a/typings/keyboard/_nixcommon.pyi +++ /dev/null @@ -1,52 +0,0 @@ -from collections.abc import Generator, Sequence -from io import BufferedReader, BufferedWriter -from queue import Queue -from typing import NamedTuple - -from _typeshed import Incomplete -from typing_extensions import Literal - -event_bin_format: Literal["llHHI"] -EV_SYN: Literal[0] -EV_KEY: Literal[1] -EV_REL: Literal[2] -EV_ABS: Literal[3] -EV_MSC: Literal[4] - - -def make_uinput() -> BufferedWriter: ... - - -class EventDevice: - path: str - def __init__(self, path: str) -> None: ... - @property - def input_file(self) -> BufferedReader: ... - @property - def output_file(self) -> BufferedWriter: ... - def read_event(self) -> tuple[float, Incomplete, Incomplete, Incomplete, str]: ... - def write_event(self, type, code, value) -> None: ... - - -class AggregatedEventDevice: - event_queue: Queue[tuple[float, Incomplete, Incomplete, Incomplete, str]] - devices: Sequence[EventDevice] - output: EventDevice - def __init__(self, devices: Sequence[EventDevice], output: EventDevice | None = ...) -> None: ... - def read_event(self) -> EventDevice: ... - def write_event(self, type, code, value) -> None: ... - - -class DeviceDescription(NamedTuple): - event_file: str - is_mouse: bool - is_keyboard: bool - - -device_pattern: str - - -def list_devices_from_proc(type_name: str) -> Generator[EventDevice, None, None]: ... -def list_devices_from_by_id(name_suffix: str, by_id: bool = ...) -> Generator[EventDevice, None, None]: ... -def aggregate_devices(type_name: str) -> AggregatedEventDevice | EventDevice: ... -def ensure_root() -> None: ... diff --git a/typings/keyboard/_nixkeyboard.pyi b/typings/keyboard/_nixkeyboard.pyi deleted file mode 100644 index 226b101c..00000000 --- a/typings/keyboard/_nixkeyboard.pyi +++ /dev/null @@ -1,40 +0,0 @@ -from collections import defaultdict -from collections.abc import Callable, Generator - -from keyboard._canonical_names import all_modifiers as all_modifiers, normalize_name as normalize_name -from keyboard._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent -from keyboard._nixcommon import (EV_KEY as EV_KEY, AggregatedEventDevice, EventDevice, - aggregate_devices as aggregate_devices, ensure_root as ensure_root) - -# - - -def cleanup_key(name: str) -> tuple[str, bool]: ... -def cleanup_modifier(modifier: str) -> str: ... - - -to_name: defaultdict[tuple[int, tuple[str, ...]], list[str] | str] -from_name: defaultdict[str, list[tuple[int, tuple[str, ...]]]] -keypad_scan_codes: set[str] - - -def register_key(key_and_modifiers: tuple[int, tuple[str, ...]], name: str) -> None: ... -def build_tables() -> None: ... - - -device: AggregatedEventDevice | EventDevice | None - - -def build_device() -> None: ... -def init() -> None: ... - - -pressed_modifiers: set[str] - - -def listen(callback: Callable[[KeyboardEvent], None]) -> None: ... -def write_event(scan_code: int, is_down: bool | int) -> None: ... -def map_name(name: str) -> Generator[tuple[int, tuple[str, ...]], None, None]: ... -def press(scan_code: int) -> None: ... -def release(scan_code: int) -> None: ... -def type_unicode(character: str | bytes | bytearray) -> None: ... diff --git a/typings/keyboard/_nixmouse.pyi b/typings/keyboard/_nixmouse.pyi deleted file mode 100644 index d292cb28..00000000 --- a/typings/keyboard/_nixmouse.pyi +++ /dev/null @@ -1,55 +0,0 @@ -from ctypes import CDLL -from queue import Queue -from subprocess import check_output as check_output - -from _typeshed import Incomplete -from keyboard._mouse_event import (DOWN as DOWN, LEFT as LEFT, MIDDLE as MIDDLE, RIGHT as RIGHT, UP as UP, X2 as X2, - ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, WheelEvent as WheelEvent, X as X, - _MouseButton) -from keyboard._nixcommon import (EV_ABS as EV_ABS, EV_KEY as EV_KEY, EV_MSC as EV_MSC, EV_REL as EV_REL, - EV_SYN as EV_SYN, AggregatedEventDevice, EventDevice, - aggregate_devices as aggregate_devices, ensure_root as ensure_root) -from typing_extensions import Literal - -x11: CDLL | None -display: Incomplete # x11.XOpenDisplay(None) -window: Incomplete # x11.XDefaultRootWindow(display) - - -def build_display() -> None: ... -def get_position() -> tuple[int, int]: ... -def move_to(x, y) -> None: ... - - -REL_X: Literal[0] -REL_Y: Literal[1] -REL_Z: Literal[2] -REL_HWHEEL: Literal[6] -REL_WHEEL: Literal[8] - -ABS_X: Literal[0] -ABS_Y: Literal[1] - -BTN_MOUSE: Literal[272] -BTN_LEFT: Literal[272] -BTN_RIGHT: Literal[273] -BTN_MIDDLE: Literal[274] -BTN_SIDE: Literal[275] -BTN_EXTRA: Literal[276] - -button_by_code: dict[int, str] -code_by_button: dict[str, int] -device: AggregatedEventDevice | EventDevice | None - - -def build_device() -> None: ... - - -init = build_device - - -def listen(queue: Queue[ButtonEvent | WheelEvent | MoveEvent]) -> None: ... -def press(button: _MouseButton = ...) -> None: ... -def release(button: _MouseButton = ...) -> None: ... -def move_relative(x: int, y: int) -> None: ... -def wheel(delta: int = ...) -> None: ... diff --git a/typings/keyboard/_winkeyboard.pyi b/typings/keyboard/_winkeyboard.pyi deleted file mode 100644 index 7d273869..00000000 --- a/typings/keyboard/_winkeyboard.pyi +++ /dev/null @@ -1,238 +0,0 @@ -import sys -from collections import defaultdict -from collections.abc import Callable, Generator, Sequence -from ctypes import (Array, Structure, Union, c_char as c_char, c_int, c_int32 as c_int32, c_long, c_short, c_uint, - c_uint8, c_uint32 as c_uint32, c_wchar) -from ctypes.wintypes import (BOOL, DWORD, HHOOK, HMODULE, LONG, LPARAM, LPCWSTR, LPDWORD, LPMSG as LPMSG, LPWSTR, WCHAR, - WORD, WPARAM) -from threading import Lock - -from _typeshed import Incomplete -from keyboard._canonical_names import normalize_name as normalize_name -from keyboard._keyboard_event import KEY_DOWN as KEY_DOWN, KEY_UP as KEY_UP, KeyboardEvent as KeyboardEvent -from typing_extensions import Literal, TypeAlias - -if sys.platform == "win32": - from ctypes import WinDLL - - kernel32: WinDLL - user32: WinDLL - -ULONG_PTR: TypeAlias = LPDWORD -GetModuleHandleW: Callable[[LPCWSTR | None], HMODULE] -VK_PACKET: Literal[231] -INPUT_MOUSE: Literal[0] -INPUT_KEYBOARD: Literal[1] -INPUT_HARDWARE: Literal[2] -KEYEVENTF_KEYUP: Literal[2] -KEYEVENTF_UNICODE: Literal[4] - - -class KBDLLHOOKSTRUCT(Structure): - vk_code: DWORD - scan_code: DWORD - flags: DWORD - time: c_int - dwExtraInfo: ULONG_PTR - - -class MOUSEINPUT(Structure): - dx: LONG - dy: LONG - mouseData: DWORD - dwFlags: DWORD - time: DWORD - dwExtraInfo: ULONG_PTR - - -class KEYBDINPUT(Structure): - wVk: WORD - wScan: WORD - dwFlags: DWORD - time: DWORD - dwExtraInfo: ULONG_PTR - - -class HARDWAREINPUT(Structure): - uMsg: DWORD - wParamL: WORD - wParamH: WORD - - -class _INPUTunion(Union): - mi: MOUSEINPUT - ki: KEYBDINPUT - hi: HARDWAREINPUT - - -class INPUT(Structure): - type: DWORD - union: _INPUTunion - - -_POINTER_KBDLLHOOKSTRUCT: TypeAlias = Incomplete # POINTER(KBDLLHOOKSTRUCT) -_LRESULT: TypeAlias = Incomplete -_POINTER_INPUT: TypeAlias = Incomplete # POINTER(INPUT) -_LowLevelKeyboardProc: TypeAlias = Callable[[Callable[[c_int, WPARAM, LPARAM], c_int]], _POINTER_KBDLLHOOKSTRUCT] -LowLevelKeyboardProc: _LowLevelKeyboardProc -SetWindowsHookEx: Callable[[c_int, _LowLevelKeyboardProc, c_int, c_int], HHOOK] -CallNextHookEx: Callable[[c_int, c_int, WPARAM, LPARAM], c_int] -UnhookWindowsHookEx: Callable[[HHOOK], BOOL] -GetMessage: Callable[[LPMSG, c_int, c_int, c_int], BOOL] -TranslateMessage: Callable[[LPMSG], BOOL] -DispatchMessage: Callable[[LPMSG], _LRESULT] -_KeyboardStateType: TypeAlias = Array[c_uint8] -keyboard_state_type: _KeyboardStateType -GetKeyboardState: Callable[[_KeyboardStateType], BOOL] -GetKeyNameText: Callable[[c_long, LPWSTR, c_int], c_int] -MapVirtualKey: Callable[[c_uint, c_uint], c_uint] -ToUnicode: Callable[[c_uint, c_uint, _KeyboardStateType, LPWSTR, c_int, c_uint], c_int] -SendInput: Callable[[c_uint, _POINTER_INPUT, c_int], c_uint] -MAPVK_VK_TO_CHAR: Literal[2] -MAPVK_VK_TO_VSC: Literal[0] -MAPVK_VSC_TO_VK: Literal[1] -MAPVK_VK_TO_VSC_EX: Literal[4] -MAPVK_VSC_TO_VK_EX: Literal[3] -VkKeyScan: Callable[[WCHAR], c_short] -LLKHF_INJECTED: Literal[16] - -WM_KEYDOWN: Literal[256] -WM_KEYUP: Literal[257] -WM_SYSKEYDOWN: Literal[260] -WM_SYSKEYUP: Literal[261] -keyboard_event_types: dict[int, str] -official_virtual_keys: dict[ - int, - tuple[Literal["control-break processing"], Literal[False]] - | tuple[Literal["backspace"], Literal[False]] - | tuple[Literal["tab"], Literal[False]] - | tuple[Literal["clear"], Literal[False]] - | tuple[Literal["enter"], Literal[False]] - | tuple[Literal["shift"], Literal[False]] - | tuple[Literal["ctrl"], Literal[False]] - | tuple[Literal["alt"], Literal[False]] - | tuple[Literal["pause"], Literal[False]] - | tuple[Literal["caps lock"], Literal[False]] - | tuple[Literal["ime kana mode"], Literal[False]] - | tuple[Literal["ime hanguel mode"], Literal[False]] - | tuple[Literal["ime hangul mode"], Literal[False]] - | tuple[Literal["ime junja mode"], Literal[False]] - | tuple[Literal["ime final mode"], Literal[False]] - | tuple[Literal["ime hanja mode"], Literal[False]] - | tuple[Literal["ime kanji mode"], Literal[False]] - | tuple[Literal["esc"], Literal[False]] - | tuple[Literal["ime convert"], Literal[False]] - | tuple[Literal["ime nonconvert"], Literal[False]] - | tuple[Literal["ime accept"], Literal[False]] - | tuple[Literal["ime mode change request"], Literal[False]] - | tuple[Literal["spacebar"], Literal[False]] - | tuple[Literal["page up"], Literal[False]] - | tuple[Literal["page down"], Literal[False]] - | tuple[Literal["end"], Literal[False]] - | tuple[Literal["home"], Literal[False]] - | tuple[Literal["left"], Literal[False]] - | tuple[Literal["up"], Literal[False]] - | tuple[Literal["right"], Literal[False]] - | tuple[Literal["down"], Literal[False]] - | tuple[Literal["select"], Literal[False]] - | tuple[Literal["print"], Literal[False]] - | tuple[Literal["execute"], Literal[False]] - | tuple[Literal["print screen"], Literal[False]] - | tuple[Literal["insert"], Literal[False]] - | tuple[Literal["delete"], Literal[False]] - | tuple[Literal["help"], Literal[False]] - | tuple[Literal["0"], Literal[False]] - | tuple[Literal["1"], Literal[False]] - | tuple[Literal["2"], Literal[False]] - | tuple[Literal["3"], Literal[False]] - | tuple[Literal["4"], Literal[False]] - | tuple[Literal["5"], Literal[False]] - | tuple[Literal["6"], Literal[False]] - | tuple[Literal["7"], Literal[False]] - | tuple[Literal["8"], Literal[False]] - | tuple[Literal["9"], Literal[False]] - | tuple[Literal["a"], Literal[False]] - | tuple[Literal["b"], Literal[False]] - | tuple[Literal["c"], Literal[False]] - | tuple[Literal["d"], Literal[False]] - | tuple[Literal["e"], Literal[False]] - | tuple[Literal["f"], Literal[False]] - | tuple[Literal["g"], Literal[False]] - | tuple[Literal["h"], Literal[False]] - | tuple[Literal["i"], Literal[False]] - | tuple[Literal["j"], Literal[False]] - | tuple[Literal["k"], Literal[False]] - | tuple[Literal["l"], Literal[False]] - | tuple[Literal["m"], Literal[False]] - | tuple[Literal["n"], Literal[False]] - | tuple[Literal["o"], Literal[False]] - | tuple[Literal["p"], Literal[False]], -] -tables_lock: Lock -to_name: defaultdict[tuple[int, int, int, str | int | tuple[str, ...]] | tuple[int, int, int, int, int], list[str]] -from_name: defaultdict[str, list[tuple[int, tuple[str | int | tuple[str, ...], ...]]]] -scan_code_to_vk: dict[int, int] -distinct_modifiers: list[ - tuple[()] - | tuple[Literal["shift"]] - | tuple[Literal["alt gr"]] - | tuple[Literal["num lock"]] - | tuple[Literal["shift"], Literal["num lock"]] - | tuple[Literal["caps lock"]] - | tuple[Literal["shift"], Literal["caps lock"]] - | tuple[Literal["alt gr"], Literal["num lock"]] -] -name_buffer: Array[c_wchar] -unicode_buffer: Array[c_wchar] -keyboard_state: _KeyboardStateType - - -def get_event_names( - scan_code: int, vk: int, is_extended: Literal[0, 1], modifiers: Sequence[str] -) -> Generator[str, None, None]: ... - - -init: Callable[[], None] -keypad_keys: list[ - tuple[Literal[126], Literal[194], Literal[0]] - | tuple[Literal[28], Literal[13], Literal[1]] - | tuple[Literal[53], Literal[111], Literal[1]] - | tuple[Literal[55], Literal[106], Literal[0]] - | tuple[Literal[69], Literal[144], Literal[1]] - | tuple[Literal[71], Literal[103], Literal[0]] - | tuple[Literal[71], Literal[36], Literal[0]] - | tuple[Literal[72], Literal[104], Literal[0]] - | tuple[Literal[72], Literal[38], Literal[0]] - | tuple[Literal[73], Literal[105], Literal[0]] - | tuple[Literal[73], Literal[33], Literal[0]] - | tuple[Literal[74], Literal[109], Literal[0]] - | tuple[Literal[75], Literal[100], Literal[0]] - | tuple[Literal[75], Literal[37], Literal[0]] - | tuple[Literal[76], Literal[101], Literal[0]] - | tuple[Literal[76], Literal[12], Literal[0]] - | tuple[Literal[77], Literal[102], Literal[0]] - | tuple[Literal[77], Literal[39], Literal[0]] - | tuple[Literal[78], Literal[107], Literal[0]] - | tuple[Literal[79], Literal[35], Literal[0]] - | tuple[Literal[79], Literal[97], Literal[0]] - | tuple[Literal[80], Literal[40], Literal[0]] - | tuple[Literal[80], Literal[98], Literal[0]] - | tuple[Literal[81], Literal[34], Literal[0]] - | tuple[Literal[81], Literal[99], Literal[0]] - | tuple[Literal[82], Literal[45], Literal[0]] - | tuple[Literal[82], Literal[96], Literal[0]] - | tuple[Literal[83], Literal[110], Literal[0]] - | tuple[Literal[83], Literal[46], Literal[0]] -] -shift_is_pressed: bool -altgr_is_pressed: bool -ignore_next_right_alt: bool -shift_vks: set[int] - - -def prepare_intercept(callback: Callable[[KeyboardEvent], bool]) -> None: ... -def listen(callback: Callable[[KeyboardEvent], bool]) -> None: ... -def map_name(name: str) -> Generator[tuple[int, str | int | tuple[str, ...]], None, None]: ... -def press(code: int) -> None: ... -def release(code: int) -> None: ... -def type_unicode(character: str) -> None: ... diff --git a/typings/keyboard/_winmouse.pyi b/typings/keyboard/_winmouse.pyi deleted file mode 100644 index d9b5fc7b..00000000 --- a/typings/keyboard/_winmouse.pyi +++ /dev/null @@ -1,118 +0,0 @@ -import sys -from collections.abc import Callable -from ctypes import (Structure, c_char as c_char, c_int, c_int32, c_long, c_short as c_short, c_uint as c_uint, - c_uint8 as c_uint8, c_uint32 as c_uint32) -from ctypes.wintypes import BOOL, DWORD, HHOOK, LPARAM, LPMSG as LPMSG, LPWSTR as LPWSTR, WCHAR as WCHAR, WPARAM -from queue import Queue - -from _typeshed import Incomplete -from keyboard._mouse_event import (DOUBLE as DOUBLE, DOWN as DOWN, HORIZONTAL as HORIZONTAL, LEFT as LEFT, - MIDDLE as MIDDLE, RIGHT as RIGHT, UP as UP, VERTICAL as VERTICAL, WHEEL as WHEEL, - X2 as X2, ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, - WheelEvent as WheelEvent, X as X, _MouseButton) -from typing_extensions import Literal, TypeAlias - -if sys.platform == "win32": - from ctypes import WinDLL - - user32: WinDLL - - -class MSLLHOOKSTRUCT(Structure): - x: c_long - y: c_long - data: c_int32 - reserved: c_int32 - flags: DWORD - time: c_int - - -_POINTER_MSLLHOOKSTRUCT: TypeAlias = Incomplete # POINTER(MSLLHOOKSTRUCT) -_LRESULT: TypeAlias = Incomplete -LowLevelMouseProc: TypeAlias = Callable[[Callable[[c_int, WPARAM, LPARAM], c_int]], _POINTER_MSLLHOOKSTRUCT] -SetWindowsHookEx: Callable[[c_int, LowLevelMouseProc, c_int, c_int], HHOOK] -CallNextHookEx: Callable[[c_int, c_int, WPARAM, LPARAM], c_int] -UnhookWindowsHookEx: Callable[[HHOOK], BOOL] -GetMessage: Callable[[LPMSG, c_int, c_int, c_int], BOOL] -TranslateMessage: Callable[[LPMSG], BOOL] -DispatchMessage: Callable[[LPMSG], _LRESULT] -WM_MOUSEMOVE: Literal[512] -WM_LBUTTONDOWN: Literal[513] -WM_LBUTTONUP: Literal[514] -WM_LBUTTONDBLCLK: Literal[515] -WM_RBUTTONDOWN: Literal[516] -WM_RBUTTONUP: Literal[517] -WM_RBUTTONDBLCLK: Literal[518] -WM_MBUTTONDOWN: Literal[519] -WM_MBUTTONUP: Literal[520] -WM_MBUTTONDBLCLK: Literal[521] -WM_MOUSEWHEEL: Literal[522] -WM_XBUTTONDOWN: Literal[523] -WM_XBUTTONUP: Literal[524] -WM_XBUTTONDBLCLK: Literal[525] -WM_NCXBUTTONDOWN: Literal[171] -WM_NCXBUTTONUP: Literal[172] -WM_NCXBUTTONDBLCLK: Literal[173] -WM_MOUSEHWHEEL: Literal[526] -buttons_by_wm_code: dict[ - int, - tuple[Literal["down"], Literal["left"]] - | tuple[Literal["up"], Literal["left"]] - | tuple[Literal["double"], Literal["left"]] - | tuple[Literal["down"], Literal["right"]] - | tuple[Literal["up"], Literal["right"]] - | tuple[Literal["double"], Literal["right"]] - | tuple[Literal["down"], Literal["middle"]] - | tuple[Literal["up"], Literal["middle"]] - | tuple[Literal["double"], Literal["middle"]] - | tuple[Literal["down"], Literal["x"]] - | tuple[Literal["up"], Literal["x"]] - | tuple[Literal["double"], Literal["x"]], -] -MOUSEEVENTF_ABSOLUTE: Literal[32768] -MOUSEEVENTF_MOVE: Literal[1] -MOUSEEVENTF_WHEEL: Literal[2048] -MOUSEEVENTF_HWHEEL: Literal[4096] -MOUSEEVENTF_LEFTDOWN: Literal[2] -MOUSEEVENTF_LEFTUP: Literal[4] -MOUSEEVENTF_RIGHTDOWN: Literal[8] -MOUSEEVENTF_RIGHTUP: Literal[16] -MOUSEEVENTF_MIDDLEDOWN: Literal[32] -MOUSEEVENTF_MIDDLEUP: Literal[64] -MOUSEEVENTF_XDOWN: Literal[128] -MOUSEEVENTF_XUP: Literal[256] -simulated_mouse_codes: dict[ - tuple[Literal["wheel"], Literal["horizontal"]] - | tuple[Literal["wheel"], Literal["vertical"]] - | tuple[Literal["down"], Literal["left"]] - | tuple[Literal["up"], Literal["left"]] - | tuple[Literal["down"], Literal["right"]] - | tuple[Literal["up"], Literal["right"]] - | tuple[Literal["down"], Literal["middle"]] - | tuple[Literal["up"], Literal["middle"]] - | tuple[Literal["down"], Literal["x"]] - | tuple[Literal["up"], Literal["x"]], - int, -] -NULL: c_long -WHEEL_DELTA: Literal[120] -init: Callable[[], None] - - -def listen(queue: Queue[MoveEvent | WheelEvent | ButtonEvent]): - ... - - -def press(button: _MouseButton = ...) -> None: ... -def release(button: _MouseButton = ...) -> None: ... -def wheel(delta: int = ...) -> None: ... -def move_to(x: int | c_long, y: int | c_long) -> None: ... -def move_relative(x: int | c_long, y: int | c_long) -> None: ... - - -class POINT(Structure): - x: c_long - y: c_long - - -def get_position() -> tuple[c_long, c_long]: ... diff --git a/typings/keyboard/mouse.pyi b/typings/keyboard/mouse.pyi deleted file mode 100644 index 1de736be..00000000 --- a/typings/keyboard/mouse.pyi +++ /dev/null @@ -1,80 +0,0 @@ -import sys -from collections.abc import Callable, Sequence -from ctypes import c_long -from typing import TypeVar - -from keyboard._generic import GenericListener as _GenericListener -from keyboard._mouse_event import (DOUBLE as DOUBLE, DOWN as DOWN, LEFT as LEFT, MIDDLE as MIDDLE, RIGHT as RIGHT, - UP as UP, X2 as X2, ButtonEvent as ButtonEvent, MoveEvent as MoveEvent, - WheelEvent as WheelEvent, X as X, _MouseButton, _MouseEvent) -from typing_extensions import Literal, TypeAlias - -# Can't use ParamSpecArgs on `args`, only on `*args` -# _P = ParamSpec("_P") -_P: TypeAlias = tuple[object, ...] -_Callback: TypeAlias = Callable[[ButtonEvent | WheelEvent | MoveEvent], bool | None] - - -class _MouseListener(_GenericListener): - def init(self) -> None: ... - - def pre_process_event( - self, event: ButtonEvent | MoveEvent | WheelEvent - ) -> Literal[True]: ... - def listen(self) -> None: ... - - -def is_pressed(button: _MouseButton = ...): - ... - - -def press(button: _MouseButton = ...) -> None: ... -def release(button: _MouseButton = ...) -> None: ... -def click(button: _MouseButton = ...) -> None: ... -def double_click(button: _MouseButton = ...) -> None: ... -def right_click() -> None: ... -def wheel(delta: int = ...) -> None: ... -def move(x: int | c_long, y: int | c_long, absolute: bool = ..., duration: float = ...) -> None: ... -def drag(start_x: int, start_y: int, end_x: int, end_y: int, absolute: bool = ..., duration: float = ...) -> None: ... - - -def on_button( - callback: Callable[..., None], - args: _P = ..., - buttons: list[_MouseButton] | tuple[_MouseButton, ...] | _MouseButton = ..., - types: list[_MouseEvent] | tuple[_MouseEvent, ...] | _MouseEvent = ..., -) -> _Callback: ... -def on_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... -def on_double_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... -def on_right_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... -def on_middle_click(callback: Callable[..., None], args: _P = ...) -> _Callback: ... -def wait(button: _MouseButton = ..., target_types: tuple[_MouseEvent] = ...) -> None: ... - - -if sys.platform == "win32": - def get_position() -> tuple[c_long, c_long]: ... - -else: - def get_position() -> tuple[int, int]: ... - - -def hook(callback: _Callback) -> _Callback: ... -def unhook(callback: _Callback) -> None: ... -def unhook_all() -> None: ... - - -def record(button: _MouseButton = ..., target_types: tuple[_MouseEvent] - = ...) -> ButtonEvent | WheelEvent | MoveEvent: ... - - -def play( - events: Sequence[ButtonEvent | WheelEvent | MoveEvent], - speed_factor: float = ..., - include_clicks: bool = ..., - include_moves: bool = ..., - include_wheel: bool = ..., -) -> None: ... - - -replay = play -hold = press diff --git a/typings/pyautogui/__init__.pyi b/typings/pyautogui/__init__.pyi deleted file mode 100644 index 0fe65284..00000000 --- a/typings/pyautogui/__init__.pyi +++ /dev/null @@ -1,298 +0,0 @@ -import collections.abc -from collections.abc import Callable, Generator -from datetime import datetime -from typing import NamedTuple, TypeVar, overload - -from _typeshed import Incomplete -from typing_extensions import ParamSpec - -# from pyscreeze import Box - - -class PyAutoGUIException(Exception): - ... - - -class FailSafeException(PyAutoGUIException): - ... - - -class ImageNotFoundException(PyAutoGUIException): - ... - - -collectionsSequence = collections.abc.Sequence - -_P = ParamSpec("_P") -_R = TypeVar("_R") - -# TODO: Complete types with pyscreeze once we can import non-types dependencies -# See: https://github.com/python/typeshed/issues/5768 - - -class _Box(NamedTuple): - left: int - top: int - width: int - height: int - - -def raisePyAutoGUIImageNotFoundException(wrappedFunction: Callable[_P, _R]) -> Callable[_P, _R]: ... -def locate(*args: Incomplete, **kwargs: Incomplete) -> _Box | None: ... -def locateAll(*args: Incomplete, **kwargs: Incomplete) -> Generator[_Box, None, None]: ... -def locateAllOnScreen(*args: Incomplete, **kwargs: Incomplete) -> Generator[_Box, None, None]: ... -def locateCenterOnScreen(*args: Incomplete, **kwargs: Incomplete) -> Point | None: ... -def locateOnScreen(*args: Incomplete, **kwargs: Incomplete) -> _Box | None: ... -def locateOnWindow(*args: Incomplete, **kwargs: Incomplete) -> _Box | None: ... -def mouseInfo() -> None: ... -def useImageNotFoundException(value: bool | None = ...) -> None: ... - - -KEY_NAMES: list[str] -KEYBOARD_KEYS: list[str] -LEFT: str -MIDDLE: str -RIGHT: str -PRIMARY: str -SECONDARY: str -QWERTY: str -QWERTZ: str - - -def isShiftCharacter(character: str) -> bool: ... - - -MINIMUM_DURATION: float -MINIMUM_SLEEP: float -PAUSE: float -DARWIN_CATCH_UP_TIME: float -FAILSAFE: bool -FAILSAFE_POINTS: list[tuple[int, int]] -LOG_SCREENSHOTS: bool -LOG_SCREENSHOTS_LIMIT: int -G_LOG_SCREENSHOTS_FILENAMES: list[str] - - -class Point(NamedTuple): - x: float - y: float - - -class Size(NamedTuple): - width: int - height: int - - -def getPointOnLine(x1: float, y1: float, x2: float, y2: float, n: float) -> tuple[float, float]: ... -def linear(n: float) -> float: ... -def position(x: int | None = ..., y: int | None = ...) -> Point: ... -def size() -> Size: ... -@overload -def onScreen(xy: tuple[float, float]) -> bool: ... -@overload -def onScreen(x: float, y: float) -> bool: ... - - -def mouseDown( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - button: str = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def mouseUp( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - button: str = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def click( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - clicks: int = ..., - interval: float = ..., - button: str = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def leftClick( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - interval: float = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def rightClick( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - interval: float = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def middleClick( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - interval: float = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def doubleClick( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - interval: float = ..., - button: str = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def tripleClick( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - interval: float = ..., - button: str = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def scroll( - clicks: float, - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def hscroll( - clicks: float, - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def vscroll( - clicks: float, - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., -) -> None: ... - - -def moveTo( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool = ..., - _pause: bool = ..., -) -> None: ... - - -def moveRel( - xOffset: float | collectionsSequence[int] | None = ..., - yOffset: float | collectionsSequence[int] | None = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - logScreenshot: bool = ..., - _pause: bool = ..., -) -> None: ... - - -move = moveRel - - -def dragTo( - x: float | collectionsSequence[int] | None = ..., - y: float | collectionsSequence[int] | None = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - button: str = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., - mouseDownUp: bool = ..., -) -> None: ... - - -def dragRel( - xOffset: float | collectionsSequence[int] = ..., - yOffset: float | collectionsSequence[int] = ..., - duration: float = ..., - tween: Callable[[float], float] = ..., - button: str = ..., - logScreenshot: bool | None = ..., - _pause: bool = ..., - mouseDownUp: bool = ..., -) -> None: ... - - -drag = dragRel - - -def isValidKey(key: str) -> bool: ... -def keyDown(key: str, logScreenshot: bool | None = ..., _pause: bool = ...) -> None: ... -def keyUp(key: str, logScreenshot: bool | None = ..., _pause: bool = ...) -> None: ... - - -def press(keys: str | list[str], presses: int = ..., interval: float = ..., - logScreenshot: bool | None = ..., _pause: bool = ...) -> None: ... - - -def hold(keys: str | list[str], - logScreenshot: bool | None = ..., - _pause: bool = ...) -> Generator[None, - None, - None]: ... - - -def typewrite( - message: str | list[str], - interval: float = ..., - logScreenshot: bool | None = ..., - _pause: bool = ...) -> None: ... - - -write = typewrite - - -def hotkey(*args: str, **kwargs: float | bool | None) -> None: ... -def failSafeCheck() -> None: ... -def displayMousePosition(xOffset: float = ..., yOffset: float = ...) -> None: ... -def sleep(seconds: int) -> None: ... -def countdown(seconds: int) -> None: ... -def run(commandStr: str, _ssCount: list[int] | None = ...) -> None: ... -def printInfo(dontPrint: bool = ...) -> str: ... -def getInfo() -> tuple[str, str, str, str, Size, datetime]: ... diff --git a/typings/pyautogui/_pyautogui_osx.pyi b/typings/pyautogui/_pyautogui_osx.pyi deleted file mode 100644 index 569791ac..00000000 --- a/typings/pyautogui/_pyautogui_osx.pyi +++ /dev/null @@ -1,2 +0,0 @@ -keyboardMapping: dict[str, int] -special_key_translate_table: dict[str, int] diff --git a/typings/pyautogui/_pyautogui_win.pyi b/typings/pyautogui/_pyautogui_win.pyi deleted file mode 100644 index 738766ce..00000000 --- a/typings/pyautogui/_pyautogui_win.pyi +++ /dev/null @@ -1,39 +0,0 @@ -import ctypes - -MOUSEEVENTF_MOVE: int -MOUSEEVENTF_LEFTDOWN: int -MOUSEEVENTF_LEFTUP: int -MOUSEEVENTF_LEFTCLICK: int -MOUSEEVENTF_RIGHTDOWN: int -MOUSEEVENTF_RIGHTUP: int -MOUSEEVENTF_RIGHTCLICK: int -MOUSEEVENTF_MIDDLEDOWN: int -MOUSEEVENTF_MIDDLEUP: int -MOUSEEVENTF_MIDDLECLICK: int -MOUSEEVENTF_ABSOLUTE: int -MOUSEEVENTF_WHEEL: int -MOUSEEVENTF_HWHEEL: int -KEYEVENTF_KEYDOWN: int -KEYEVENTF_KEYUP: int -INPUT_MOUSE: int -INPUT_KEYBOARD: int - - -class MOUSEINPUT(ctypes.Structure): - ... - - -class KEYBDINPUT(ctypes.Structure): - ... - - -class HARDWAREINPUT(ctypes.Structure): - ... - - -class INPUT(ctypes.Structure): - class _I(ctypes.Union): - ... - - -keyboardMapping: dict[str, int] diff --git a/typings/pyautogui/_pyautogui_x11.pyi b/typings/pyautogui/_pyautogui_x11.pyi deleted file mode 100644 index 24d90ecc..00000000 --- a/typings/pyautogui/_pyautogui_x11.pyi +++ /dev/null @@ -1,2 +0,0 @@ -BUTTON_NAME_MAPPING: dict[str | int, int] -keyboardMapping: dict[str, int] diff --git a/typings/pyi_splash/__init__.pyi b/typings/pyi_splash/__init__.pyi new file mode 100644 index 00000000..b7a573d4 --- /dev/null +++ b/typings/pyi_splash/__init__.pyi @@ -0,0 +1,14 @@ +# Referenced in: https://pyinstaller.org/en/stable/advanced-topics.html#module-pyi_splash +# https://github.com/pyinstaller/pyinstaller/blob/develop/PyInstaller/fake-modules/pyi_splash.py +from typing_extensions import Literal + +__all__ = ["CLOSE_CONNECTION", "FLUSH_CHARACTER", "is_alive", "close", "update_text"] + + +def is_alive() -> bool: ... +def update_text(msg: str) -> None: ... +def close() -> None: ... + + +CLOSE_CONNECTION: Literal[b"\u0004"] = ... +FLUSH_CHARACTER: Literal[b"\r"] = ... From 4b060654a1bab77af93cda99e6b74d511c19f173 Mon Sep 17 00:00:00 2001 From: Samuel T Date: Mon, 17 Oct 2022 10:01:32 -0400 Subject: [PATCH 35/54] More consistent formatting (#174) * More consistent formatting and types - Added autofixes to the lint script. - Added a quotes autofixer using `unify` - Added a trailing comma checker and autofixer - Applied trailing commas - Ordered requirements alphabetically - Ensure the last version of D3DShot is used (0.1.5, not 0.1.3) - Remove configuration for unused linters (black/prettier/sonarlint) - Updated types from typeshed * Updated virtual camera link * Update types and pylint --- .flake8 | 7 +- .github/workflows/lint-and-build.yml | 15 + .vscode/extensions.json | 10 +- .vscode/settings.json | 14 +- README.md | 2 +- pyproject.toml | 16 +- scripts/lint.ps1 | 2 + scripts/requirements-dev.txt | 17 +- scripts/requirements.txt | 18 +- src/AutoSplit.py | 77 +- src/AutoSplitImage.py | 8 +- src/capture_method/BitBltCaptureMethod.py | 3 +- src/capture_method/CaptureMethodBase.py | 3 - .../DesktopDuplicationCaptureMethod.py | 7 +- .../VideoCaptureDeviceCaptureMethod.py | 18 +- .../WindowsGraphicsCaptureMethod.py | 21 +- src/capture_method/__init__.py | 17 +- src/error_messages.py | 53 +- src/hotkeys.py | 25 +- src/menu_bar.py | 110 +- src/region_selection.py | 39 +- src/split_parser.py | 23 +- src/user_profile.py | 27 +- src/utils.py | 3 +- typings/PyInstaller/__init__.pyi | 11 - typings/PyInstaller/__main__.pyi | 13 - typings/PyInstaller/building/build_main.pyi | 32 - typings/PyInstaller/building/datastruct.pyi | 36 - typings/PyInstaller/compat.pyi | 91 - typings/PyInstaller/depend/imphookapi.pyi | 16 - typings/PyInstaller/isolated/__init__.pyi | 1 - typings/PyInstaller/isolated/_parent.pyi | 17 - typings/PyInstaller/utils/__init__.pyi | 0 typings/PyInstaller/utils/hooks/__init__.pyi | 105 - typings/PyInstaller/utils/hooks/conda.pyi | 57 - typings/PyInstaller/utils/hooks/win32.pyi | 4 - typings/cv2-stubs/Error.pyi | 110 - typings/cv2-stubs/__init__.pyi | 3125 ---------- typings/cv2/Error.pyi | 110 + typings/cv2/__init__.pyi | 17 + typings/cv2/cv2.pyi | 5176 +++++++++++++++++ typings/cv2/mat_wrapper/__init__.pyi | 19 + typings/d3dshot/__init__.pyi | 13 - typings/d3dshot/capture_output.pyi | 35 - typings/d3dshot/capture_outputs/__init__.pyi | 0 .../capture_outputs/numpy_capture_output.pyi | 19 - .../numpy_float_capture_output.pyi | 19 - .../capture_outputs/pil_capture_output.pyi | 16 - .../pytorch_capture_output.pyi | 17 - .../pytorch_float_capture_output.pyi | 17 - .../pytorch_float_gpu_capture_output.pyi | 18 - .../pytorch_gpu_capture_output.pyi | 18 - typings/d3dshot/d3dshot.pyi | 50 - typings/d3dshot/display.pyi | 48 - typings/d3dshot/dll/__init__.pyi | 0 typings/d3dshot/dll/d3d.pyi | 44 - typings/d3dshot/dll/dxgi.pyi | 98 - typings/d3dshot/dll/shcore.pyi | 1 - typings/d3dshot/dll/user32.pyi | 14 - typings/pyi_splash/__init__.pyi | 14 - 60 files changed, 5648 insertions(+), 4268 deletions(-) delete mode 100644 typings/PyInstaller/__init__.pyi delete mode 100644 typings/PyInstaller/__main__.pyi delete mode 100644 typings/PyInstaller/building/build_main.pyi delete mode 100644 typings/PyInstaller/building/datastruct.pyi delete mode 100644 typings/PyInstaller/compat.pyi delete mode 100644 typings/PyInstaller/depend/imphookapi.pyi delete mode 100644 typings/PyInstaller/isolated/__init__.pyi delete mode 100644 typings/PyInstaller/isolated/_parent.pyi delete mode 100644 typings/PyInstaller/utils/__init__.pyi delete mode 100644 typings/PyInstaller/utils/hooks/__init__.pyi delete mode 100644 typings/PyInstaller/utils/hooks/conda.pyi delete mode 100644 typings/PyInstaller/utils/hooks/win32.pyi delete mode 100644 typings/cv2-stubs/Error.pyi delete mode 100644 typings/cv2-stubs/__init__.pyi create mode 100644 typings/cv2/Error.pyi create mode 100644 typings/cv2/__init__.pyi create mode 100644 typings/cv2/cv2.pyi create mode 100644 typings/cv2/mat_wrapper/__init__.pyi delete mode 100644 typings/d3dshot/__init__.pyi delete mode 100644 typings/d3dshot/capture_output.pyi delete mode 100644 typings/d3dshot/capture_outputs/__init__.pyi delete mode 100644 typings/d3dshot/capture_outputs/numpy_capture_output.pyi delete mode 100644 typings/d3dshot/capture_outputs/numpy_float_capture_output.pyi delete mode 100644 typings/d3dshot/capture_outputs/pil_capture_output.pyi delete mode 100644 typings/d3dshot/capture_outputs/pytorch_capture_output.pyi delete mode 100644 typings/d3dshot/capture_outputs/pytorch_float_capture_output.pyi delete mode 100644 typings/d3dshot/capture_outputs/pytorch_float_gpu_capture_output.pyi delete mode 100644 typings/d3dshot/capture_outputs/pytorch_gpu_capture_output.pyi delete mode 100644 typings/d3dshot/d3dshot.pyi delete mode 100644 typings/d3dshot/display.pyi delete mode 100644 typings/d3dshot/dll/__init__.pyi delete mode 100644 typings/d3dshot/dll/d3d.pyi delete mode 100644 typings/d3dshot/dll/dxgi.pyi delete mode 100644 typings/d3dshot/dll/shcore.pyi delete mode 100644 typings/d3dshot/dll/user32.pyi delete mode 100644 typings/pyi_splash/__init__.pyi diff --git a/.flake8 b/.flake8 index 387edfed..f6b15399 100644 --- a/.flake8 +++ b/.flake8 @@ -13,16 +13,17 @@ per-file-ignores= ; Docstrings in type stubs ; Function bodys contain other than just ... (eg: raise) ; Single quote docstrings - typings/cv2-stubs/__init__.pyi: Q000,E704,E501,N8,A002,A003,CCE002,F401, Y021,Y010,Q002 + typings/cv2-stubs/__init__.pyi: Q000,E704,E501,N8,A001,A002,A003,CCE002,F401, Y021,Y010,Q002 ; Quotes ; Allow ... on same line as def ; Line too long ; Naming conventions can't be controlled for external libraries + ; Variable names can't be controlled for external libraries ; Argument names can't be controlled for external libraries - ; attribute names can't be controlled for external libraries + ; Attribute names can't be controlled for external libraries ; False positive Class level expression with elipsis ; Type re-exports - *.pyi: Q000,E704,E501,N8,A002,A003,CCE002,F401 + *.pyi: Q000,E704,E501,N8,A001,A002,A003,CCE002,F401 ; PyQt methods ignore-names=closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent ; McCabe max-complexity is also taken care of by Pylint and doesn't fail the build there diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 0fe853ba..a3b54bfb 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -25,6 +25,21 @@ env: GITHUB_HEAD_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name }} jobs: + add-trailing-comma: + runs-on: windows-latest + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + cache: "pip" + cache-dependency-path: "scripts/requirements*.txt" + - run: scripts/install.ps1 + shell: pwsh + - name: Analysing the code with add-trailing-comma + run: add-trailing-comma $(git ls-files '**.py*') --py36-plus Pyright: runs-on: windows-latest strategy: diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 33859d80..d09fadc3 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,6 +5,7 @@ "davidanson.vscode-markdownlint", "eamodio.gitlens", "ms-python.flake8", + "ms-python.pylint", "ms-python.python", "ms-python.vscode-pylance", "ms-vscode.powershell", @@ -12,23 +13,18 @@ "redhat.vscode-xml", "redhat.vscode-yaml", "shardulm94.trailing-spaces", - "sonarsource.sonarlint-vscode", ], "unwantedRecommendations": [ // Must disable in this workspace // + // https://github.com/microsoft/vscode/issues/40239 // // // VSCode has implemented an optimized version "coenraads.bracket-pair-colorizer", "coenraads.bracket-pair-colorizer-2", - // Lots of conflicts - "esbenp.prettier-vscode", - // Replaced by ESLint - "eg2.tslint", - "ms-vscode.vscode-typescript-tslint-plugin", // Obsoleted by Pylance "ms-pyright.pyright", + "ms-python.black-formatter", // Not configurable per workspace, tends to conflict with other linters - // Use eslint-plugin-sonarjs for JS/TS projects "sonarsource.sonarlint-vscode", // // Don't recommend to autoinstall // diff --git a/.vscode/settings.json b/.vscode/settings.json index e240084e..c5b9d108 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -58,11 +58,19 @@ }, "python.analysis.diagnosticMode": "workspace", "python.linting.enabled": true, - "python.linting.pylintEnabled": true, - "python.linting.pylintCategorySeverity.convention": "Warning", - "python.linting.pylintCategorySeverity.refactor": "Warning", + // Use the new Pylint extension instead + "python.linting.pylintEnabled": false, + "pylint.severity": { + "convention": "Warning", + "error": "Error", + "fatal": "Error", + "refactor": "Warning", + "warning": "Warning", + "info": "Information" + }, // Use the new Flake8 extension instead "python.linting.flake8Enabled": false, + // Partial codes don't work yet: https://github.com/microsoft/vscode-flake8/issues/7 "flake8.severity": { "convention": "Warning", "error": "Error", diff --git a/README.md b/README.md index 1533db35..e4b47c4c 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ This program can be used to automatically start, split, and reset your preferred - **Video Capture Device** Uses a Video Capture Device, like a webcam, virtual cam, or capture card. There are currently performance issues, but it might be more convenient. - If you want to use this with OBS' Virtual Camera, use the [Virtualcam plugin](https://obsproject.com/forum/resources/obs-virtualcam.949/) instead. + If you want to use this with OBS' Virtual Camera, use the [Virtualcam plugin](https://github.com/Avasam/obs-virtual-cam/releases) instead. #### Capture Device diff --git a/pyproject.toml b/pyproject.toml index 062ba09c..06a851a6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,15 +1,11 @@ -# https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file -[tool.black] -line-length = 120 -# Auto generated -force-exclude = "src/gen/.*\\.py$" - # https://github.com/hhatto/autopep8#usage # https://github.com/hhatto/autopep8#more-advanced-usage [tool.autopep8] max_line_length = 120 recursive = true aggressive = 3 +ignore = ["E70"] # Allow ... on same line as def + # https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file [tool.pyright] @@ -65,10 +61,9 @@ load-plugins = [ "pylint.extensions.for_any_all", "pylint.extensions.eq_without_hash", "pylint.extensions.mccabe", - "pylint.extensions.no_self_use", "pylint.extensions.overlapping_exceptions", "pylint.extensions.private_import", - "pylint.extensions.redefined_loop_name", + # "pylint.extensions.redefined_loop_name", # 2.16 "pylint.extensions.redefined_variable_type", "pylint.extensions.set_membership", "pylint.extensions.typing", @@ -79,6 +74,7 @@ load-plugins = [ # "pylint.extensions.code_style", # "pylint.extensions.comparetozero", # "pylint.extensions.docstyle", + # "pylint.extensions.no_self_use", # "pylint.extensions.while_used", ] ignore-paths = [ @@ -87,7 +83,7 @@ ignore-paths = [ # We expect stub files to be incomplete or contain useless statements "^.*.pyi$", ] -extension-pkg-allow-list = ["PyQt6", "PySide6", "win32ui"] +extension-pkg-allow-list = ["PyQt6", "PySide6", "win32ui", "win32.win32gui"] [tool.pylint.FORMAT] max-line-length = 120 @@ -146,3 +142,5 @@ generated-members = [ [tool.isort] line_length = 120 combine_as_imports = true +include_trailing_comma = true +multi_line_output = 5 diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index cd0ece24..e9cd2a43 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -5,6 +5,8 @@ $exitCodes = 0 Write-Host "`nRunning autofixes..." isort src/ typings/ autopep8 $(git ls-files '**.py*') --in-place +unify src/ --recursive --in-place --quote='"""' +add-trailing-comma $(git ls-files '**.py*') --py36-plus Write-Host "`nRunning Pyright..." $Env:PYRIGHT_PYTHON_FORCE_VERSION = 'latest' diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt index 41816245..a57d6b12 100644 --- a/scripts/requirements-dev.txt +++ b/scripts/requirements-dev.txt @@ -7,26 +7,29 @@ -r requirements.txt # # Linters and formatters +add-trailing-comma bandit -flake8>=5 # flake8-pyi deprecation warnings +flake8>=5 # flake8-pyi deprecation warnings flake8-builtins flake8-bugbear flake8-class-attributes-order flake8-comprehensions>=3.8 # flake8 5 support flake8-datetimez -flake8-isort>=4.2 # flake8 5 support -flake8-pyi>=22.8.1 # flake8 5 support +flake8-isort>=4.2 # flake8 5 support +flake8-pyi>=22.10.0 # Fixes for negative numbers flake8-quotes flake8-simplify pep8-naming -pylint>=2.13.9,<3.0.0 # Respect ignore configuration options with --recursive=y # 3.0 still in pre-release -pyright +pylint>=2.14,<3.0.0 # New checks # 3.0 still in pre-release +pyright>=1.1.270 # Typeshed update +unify # # Run `./scripts/designer.ps1` to quickly open the bundled PyQt Designer. # Can also be downloaded externally as a non-python package qt6-applications # Types -pywin32-stubs>=1.0.7 # Added error types +types-d3dshot types-keyboard -types-pyautogui +types-pyinstaller +types-pywin32 typing-extensions diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 3ecf1bbe..89f1fd78 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -10,23 +10,23 @@ # Creating an AutoSplit executable with PyInstaller: ./scripts/build.ps1 # # Dependencies: -numpy>=1.23 # Updated types -opencv-python-headless>=4.5.4,<4.6 # https://github.com/pyinstaller/pyinstaller/issues/6889 -PyQt6>=6.2.1 # Python 3.10 support -git+https://github.com/JohannesBuchner/imagehash.git#egg=ImageHash # Contains type information + setup as package not module +certifi +ImageHash>=4.3.1 # Contains type information + setup as package not module keyboard +numpy>=1.23 # Updated types +opencv-python-headless>=4.5.4,<4.6 # https://github.com/pyinstaller/pyinstaller/issues/6889 packaging -Pillow>=7.2.0 # https://github.com/SerpentAI/D3DShot/issues/44 +Pillow>=7.2.0 # https://github.com/SerpentAI/D3DShot/issues/44 +psutil PyAutoGUI +git+https://github.com/Avasam/python_grabber.git@complete-types#egg=pygrabber # https://github.com/andreaschiavinato/python_grabber/pull/18 +PyQt6>=6.2.1 # Python 3.10 support requests -certifi toml -psutil -git+https://github.com/Avasam/python_grabber.git@complete-types#egg=pygrabber # https://github.com/andreaschiavinato/python_grabber/pull/18 # Windows-only +git+https://github.com/ranchen421/D3DShot.git#egg=D3DShot # D3DShot from PyPI with Pillow>=7.2.0 will install 0.1.3 instead of 0.1.5 pywin32>=301 winsdk>=v1.0.0b4 -D3DShot # # Build and compile resources PyInstaller diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 670e5a0b..831cfca7 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -23,13 +23,17 @@ from capture_method import CaptureMethodBase, CaptureMethodEnum from gen import about, design, settings, update_checker from hotkeys import HOTKEYS, after_setting_hotkey, send_command -from menu_bar import (about_qt, about_qt_for_python, check_for_updates, get_default_settings_from_ui, open_about, - open_settings, open_update_checker, view_help) +from menu_bar import ( + about_qt, about_qt_for_python, check_for_updates, get_default_settings_from_ui, open_about, open_settings, + open_update_checker, view_help, +) from region_selection import align_region, select_region, select_window, validate_before_parsing from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images from user_profile import DEFAULT_PROFILE -from utils import (AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, FROZEN, START_AUTO_SPLITTER_TEXT, WINDOWS_BUILD_NUMBER, - auto_split_directory, decimal, is_valid_image) +from utils import ( + AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, FROZEN, START_AUTO_SPLITTER_TEXT, WINDOWS_BUILD_NUMBER, auto_split_directory, + decimal, is_valid_image, +) CHECK_FPS_ITERATIONS = 10 @@ -172,9 +176,8 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s self.align_region_button.clicked.connect(lambda: align_region(self)) self.select_window_button.clicked.connect(lambda: select_window(self)) self.reload_start_image_button.clicked.connect(lambda: self.__load_start_image(True, True)) - self.action_check_for_updates_on_open.changed.connect(lambda: user_profile.set_check_for_updates_on_open( - self, - self.action_check_for_updates_on_open.isChecked()) + self.action_check_for_updates_on_open.changed.connect( + lambda: user_profile.set_check_for_updates_on_open(self, self.action_check_for_updates_on_open.isChecked()), ) # update x, y, width, and height when changing the value of these spinbox's are changed @@ -186,8 +189,9 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s # connect signals to functions self.after_setting_hotkey_signal.connect(lambda: after_setting_hotkey(self)) self.start_auto_splitter_signal.connect(self.__auto_splitter) - self.update_checker_widget_signal.connect(lambda latest_version, check_on_open: - open_update_checker(self, latest_version, check_on_open)) + self.update_checker_widget_signal.connect( + lambda latest_version, check_on_open: open_update_checker(self, latest_version, check_on_open), + ) self.load_start_image_signal.connect(self.__load_start_image) self.load_start_image_signal[bool].connect(self.__load_start_image) self.load_start_image_signal[bool, bool].connect(self.__load_start_image) @@ -225,7 +229,8 @@ def __browse(self): new_split_image_directory = QFileDialog.getExistingDirectory( self, "Select Split Image Directory", - os.path.join(self.settings_dict["split_image_directory"] or auto_split_directory, "..")) + os.path.join(self.settings_dict["split_image_directory"] or auto_split_directory, ".."), + ) # If the user doesn't select a folder, it defaults to "". if new_split_image_directory: @@ -260,9 +265,11 @@ def __load_start_image(self, started_by_button: bool = False, wait_for_delay: bo if self.start_image: if not self.is_auto_controlled \ - and (not self.settings_dict["split_hotkey"] - or not self.settings_dict["reset_hotkey"] - or not self.settings_dict["pause_hotkey"]): + and ( + not self.settings_dict["split_hotkey"] + or not self.settings_dict["reset_hotkey"] + or not self.settings_dict["pause_hotkey"] + ): error_messages.load_start_image() QApplication.processEvents() return @@ -334,7 +341,8 @@ def __start_image_function(self): while time() - delay_start_time < start_delay: delay_time_left = start_delay - (time() - delay_start_time) self.current_split_image.setText( - f"Delayed Before Starting:\n {seconds_remaining_text(delay_time_left)}") + f"Delayed Before Starting:\n {seconds_remaining_text(delay_time_left)}", + ) QTest.qWait(1) self.start_image_status_value_label.setText("started") @@ -366,7 +374,8 @@ def __take_screenshot(self): while True: screenshot_path = os.path.join( self.settings_dict["split_image_directory"], - f"{screenshot_index:03}_SplitImage.png") + f"{screenshot_index:03}_SplitImage.png", + ) if not os.path.exists(screenshot_path): break screenshot_index += 1 @@ -426,7 +435,7 @@ def undo_split(self, navigate_image_only: bool = False): return if not navigate_image_only: - for i, group in enumerate(self.split_groups,): + for i, group in enumerate(self.split_groups): if i > 0 and self.split_image_number in group: self.split_image_number = self.split_groups[i - 1][-1] break @@ -508,10 +517,13 @@ def __auto_splitter(self): # Construct a list of images + loop count tuples. self.split_images_and_loop_number = [ item for flattenlist - in [[(split_image, i + 1) for i in range(split_image.loops)] + in [ + [(split_image, i + 1) for i in range(split_image.loops)] for split_image - in self.split_images] - for item in flattenlist] + in self.split_images + ] + for item in flattenlist + ] # Construct groups of splits self.split_groups = [] @@ -649,7 +661,8 @@ def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_ continue elif ( # pylint: disable=confusing-consecutive-elif - self.split_image.check_flag(BELOW_FLAG) and self.split_below_threshold): + self.split_image.check_flag(BELOW_FLAG) and self.split_below_threshold + ): self.split_below_threshold = False break @@ -758,10 +771,12 @@ def __get_capture_for_comparison(self): if recovered: capture, _ = self.capture_method.get_frame(self) - return (None - if not is_valid_image(capture) - else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST), - is_old_image) + return ( + None + if not is_valid_image(capture) + else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST), + is_old_image, + ) def __reset_if_should(self, capture: cv2.Mat | None): """ @@ -856,7 +871,8 @@ def exit_program(): self, "AutoSplit", f"Do you want to save changes made to settings file {settings_file_name}?", - QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No | QMessageBox.StandardButton.Cancel) + QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No | QMessageBox.StandardButton.Cancel, + ) if warning is QMessageBox.StandardButton.Yes: if user_profile.save_settings(self): @@ -887,10 +903,13 @@ def set_preview_image(qlabel: QLabel, image: cv2.Mat | None, transparency: bool) capture = cv2.cvtColor(image, color_code) height, width, channels = capture.shape qimage = QtGui.QImage(capture.data, width, height, width * channels, image_format) - qlabel.setPixmap(QtGui.QPixmap(qimage).scaled( - qlabel.size(), - QtCore.Qt.AspectRatioMode.IgnoreAspectRatio, - QtCore.Qt.TransformationMode.SmoothTransformation)) + qlabel.setPixmap( + QtGui.QPixmap(qimage).scaled( + qlabel.size(), + QtCore.Qt.AspectRatioMode.IgnoreAspectRatio, + QtCore.Qt.TransformationMode.SmoothTransformation, + ), + ) def seconds_remaining_text(seconds: float): diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index fe747356..1bdd64be 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -126,7 +126,7 @@ def check_flag(self, flag: int): def compare_with_capture( self, default: AutoSplit | int, - capture: cv2.Mat | None + capture: cv2.Mat | None, ): """ Compare image with capture using image's comparison method. Falls back to combobox @@ -145,5 +145,7 @@ def compare_with_capture( if True: # pylint: disable=using-constant-test - from split_parser import (comparison_method_from_filename, delay_time_from_filename, flags_from_filename, - loop_from_filename, pause_from_filename, threshold_from_filename) + from split_parser import ( + comparison_method_from_filename, delay_time_from_filename, flags_from_filename, loop_from_filename, + pause_from_filename, threshold_from_filename, + ) diff --git a/src/capture_method/BitBltCaptureMethod.py b/src/capture_method/BitBltCaptureMethod.py index e7ddabdc..a8a0bc4a 100644 --- a/src/capture_method/BitBltCaptureMethod.py +++ b/src/capture_method/BitBltCaptureMethod.py @@ -52,7 +52,8 @@ def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: (selection["width"], selection["height"]), dc_object, (selection["x"] + left_bounds, selection["y"] + top_bounds), - win32con.SRCCOPY) + win32con.SRCCOPY, + ) image = np.frombuffer(cast(bytes, bitmap.GetBitmapBits(True)), dtype=np.uint8) image.shape = (selection["height"], selection["width"], 4) except (win32ui.error, pywintypes.error): diff --git a/src/capture_method/CaptureMethodBase.py b/src/capture_method/CaptureMethodBase.py index 3f6d1212..0c5057c8 100644 --- a/src/capture_method/CaptureMethodBase.py +++ b/src/capture_method/CaptureMethodBase.py @@ -9,8 +9,6 @@ if TYPE_CHECKING: from AutoSplit import AutoSplit -# pylint: disable=no-self-use,unnecessary-dunder-call - class CaptureMethodBase(): def __init__(self, autosplit: AutoSplit | None = None): @@ -37,4 +35,3 @@ def recover_window(self, captured_window_title: str, autosplit: AutoSplit) -> bo def check_selected_region_exists(self, autosplit: AutoSplit) -> bool: return is_valid_hwnd(autosplit.hwnd) -# pylint: enable=no-self-use,unnecessary-dunder-call diff --git a/src/capture_method/DesktopDuplicationCaptureMethod.py b/src/capture_method/DesktopDuplicationCaptureMethod.py index e067e7bf..74452fc9 100644 --- a/src/capture_method/DesktopDuplicationCaptureMethod.py +++ b/src/capture_method/DesktopDuplicationCaptureMethod.py @@ -2,7 +2,7 @@ import ctypes import ctypes.wintypes -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, cast import cv2 import d3dshot @@ -30,7 +30,8 @@ def get_frame(self, autosplit: AutoSplit): desktop_duplication.display = [ display for display in desktop_duplication.displays - if display.hmonitor == hmonitor][0] + if display.hmonitor == hmonitor + ][0] offset_x, offset_y, *_ = win32gui.GetWindowRect(hwnd) offset_x -= desktop_duplication.display.position["left"] offset_y -= desktop_duplication.display.position["top"] @@ -41,4 +42,4 @@ def get_frame(self, autosplit: AutoSplit): screenshot = desktop_duplication.screenshot((left, top, right, bottom)) if screenshot is None: return None, False - return cv2.cvtColor(screenshot, cv2.COLOR_RGBA2BGRA), False + return cv2.cvtColor(cast(cv2.Mat, screenshot), cv2.COLOR_RGBA2BGRA), False diff --git a/src/capture_method/VideoCaptureDeviceCaptureMethod.py b/src/capture_method/VideoCaptureDeviceCaptureMethod.py index 20e2fb18..ed0759f3 100644 --- a/src/capture_method/VideoCaptureDeviceCaptureMethod.py +++ b/src/capture_method/VideoCaptureDeviceCaptureMethod.py @@ -26,7 +26,11 @@ def __read_loop(self, autosplit: AutoSplit): try: result, image = self.capture_device.read() except cv2.error as error: - if error.code != cv2.Error.STS_ERROR: + if not ( + error.code == cv2.Error.STS_ERROR and error.msg.endswith( + "in function 'cv::VideoCapture::grab'\n", + ) + ): raise # STS_ERROR most likely means the camera is occupied result = False @@ -36,10 +40,14 @@ def __read_loop(self, autosplit: AutoSplit): except Exception as exception: # pylint: disable=broad-except # We really want to catch everything here error = exception self.capture_device.release() - autosplit.show_error_signal.emit(lambda: exception_traceback( - "AutoSplit encountered an unhandled exception while trying to grab a frame and has stopped capture. " - + CREATE_NEW_ISSUE_MESSAGE, - error)) + autosplit.show_error_signal.emit( + lambda: exception_traceback( + "AutoSplit encountered an unhandled exception while " + + "trying to grab a frame and has stopped capture. " + + CREATE_NEW_ISSUE_MESSAGE, + error, + ), + ) def __init__(self, autosplit: AutoSplit): super().__init__() diff --git a/src/capture_method/WindowsGraphicsCaptureMethod.py b/src/capture_method/WindowsGraphicsCaptureMethod.py index 7fca63d8..b5ca8abd 100644 --- a/src/capture_method/WindowsGraphicsCaptureMethod.py +++ b/src/capture_method/WindowsGraphicsCaptureMethod.py @@ -48,7 +48,8 @@ async def coroutine(): media_capture.media_capture_settings.direct3_d11_device, DirectXPixelFormat.B8_G8_R8_A8_UINT_NORMALIZED, 1, - item.size) + item.size, + ) if not frame_pool: raise OSError("Unable to create a frame pool for a capture session.") session = frame_pool.create_capture_session(item) @@ -81,9 +82,11 @@ def close(self, autosplit: AutoSplit): def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: selection = autosplit.settings_dict["capture_region"] # We still need to check the hwnd because WGC will return a blank black image - if not (self.check_selected_region_exists(autosplit) - # Only needed for the type-checker - and self.frame_pool): + if not ( + self.check_selected_region_exists(autosplit) + # Only needed for the type-checker + and self.frame_pool + ): return None, False try: @@ -92,11 +95,10 @@ def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: except OSError: return None, False - # We were too fast and the next frame wasn't ready yet - if not frame: - return self.last_captured_frame, True - async def coroutine(): + # We were too fast and the next frame wasn't ready yet + if not frame: + return None return await (SoftwareBitmap.create_copy_from_surface_async(frame.surface) or asyncio.sleep(0, None)) try: software_bitmap = asyncio.run(coroutine()) @@ -142,4 +144,5 @@ def check_selected_region_exists(self, autosplit: AutoSplit): return bool( is_valid_hwnd(autosplit.hwnd) and self.frame_pool - and self.session) + and self.session, + ) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 2957bef2..1d051b5a 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -101,7 +101,7 @@ def __getitem__(self, key: CaptureMethodEnum): name="None", short_description="", description="", - implementation=CaptureMethodBase + implementation=CaptureMethodBase, ) CAPTURE_METHODS = CaptureMethodDict({ @@ -159,7 +159,7 @@ def __getitem__(self, key: CaptureMethodEnum): "\nYou can select one below. " "\nThere are currently performance issues, but it might be more convenient. " "\nIf you want to use this with OBS' Virtual Camera, use the Virtualcam plugin instead " - "\nhttps://obsproject.com/forum/resources/obs-virtualcam.949/." + "\nhttps://github.com/Avasam/obs-virtual-cam/releases" ), implementation=VideoCaptureDeviceCaptureMethod, ), @@ -227,12 +227,15 @@ async def get_camera_info(index: int, device_name: str): # video_capture.release() return CameraInfo(index, device_name, False, backend) - future = asyncio.gather(*[ - get_camera_info(index, name) for index, name - in enumerate(named_video_inputs) - ]) + future = asyncio.gather( + *[ + get_camera_info(index, name) for index, name + in enumerate(named_video_inputs) + ], + ) return [ camera_info for camera_info in await future - if camera_info is not None] + if camera_info is not None + ] diff --git a/src/error_messages.py b/src/error_messages.py index d93d295b..fba1024d 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -56,13 +56,17 @@ def split_image_directory_empty(): def image_type(image: str): - set_text_message(f'"{image}" is not a valid image file, does not exist, ' - + "or the full image file path contains a special character.") + set_text_message( + f'"{image}" is not a valid image file, does not exist, ' + + "or the full image file path contains a special character.", + ) def region(): - set_text_message("No region is selected or the Capture Region window is not open. " - + "Select a region or load settings while the Capture Region window is open.") + set_text_message( + "No region is selected or the Capture Region window is not open. " + + "Select a region or load settings while the Capture Region window is open.", + ) def split_hotkey(): @@ -70,8 +74,10 @@ def split_hotkey(): def pause_hotkey(): - set_text_message("Your split image folder contains an image filename with a pause flag {p}, " - + "but no pause hotkey is set.") + set_text_message( + "Your split image folder contains an image filename with a pause flag {p}, " + + "but no pause hotkey is set.", + ) def align_region_image_type(): @@ -96,7 +102,8 @@ def reset_hotkey(): def old_version_settings_file(): set_text_message( - "Old version settings file detected. This version allows settings files in .toml format. Starting from v2.0.") + "Old version settings file detected. This version allows settings files in .toml format. Starting from v2.0.", + ) def invalid_settings(): @@ -112,8 +119,10 @@ def no_settings_file_on_open(): def too_many_settings_files_on_open(): - set_text_message("Too many settings files found. " - + "Only one can be loaded on open if placed in the same folder as AutoSplit.exe") + set_text_message( + "Too many settings files found. " + + "Only one can be loaded on open if placed in the same folder as AutoSplit.exe", + ) def check_for_updates(): @@ -121,8 +130,10 @@ def check_for_updates(): def load_start_image(): - set_text_message("Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. " - + "Please set these hotkeys, and then click the Reload Start Image button.") + set_text_message( + "Start Image found, but cannot be loaded unless Start, Reset, and Pause hotkeys are set. " + + "Please set these hotkeys, and then click the Reload Start Image button.", + ) def stdin_lost(): @@ -134,20 +145,23 @@ def already_running(): "An instance of AutoSplit is already running.
Are you sure you want to open a another one?", "", "Don't open", - "Ignore") + "Ignore", + ) def exception_traceback(message: str, exception: BaseException): set_text_message( message, "\n".join(traceback.format_exception(None, exception, exception.__traceback__)), - "Close AutoSplit") + "Close AutoSplit", + ) CREATE_NEW_ISSUE_MESSAGE = ( f"Please create a New Issue at " + f"github.com/{GITHUB_REPOSITORY}/issues, describe what happened, " - + "and copy & paste the entire error message below") + + "and copy & paste the entire error message below" +) def make_excepthook(autosplit: AutoSplit): @@ -162,10 +176,13 @@ def excepthook(exception_type: type[BaseException], exception: BaseException, _t ): return # Whithin LiveSplit excepthook needs to use MainWindow's signals to show errors - autosplit.show_error_signal.emit(lambda: exception_traceback( - "AutoSplit encountered an unhandled exception and will try to recover, " - + f"however, there is no guarantee it will keep working properly. {CREATE_NEW_ISSUE_MESSAGE}", - exception)) + autosplit.show_error_signal.emit( + lambda: exception_traceback( + "AutoSplit encountered an unhandled exception and will try to recover, " + + f"however, there is no guarantee it will keep working properly. {CREATE_NEW_ISSUE_MESSAGE}", + exception, + ), + ) return excepthook diff --git a/src/hotkeys.py b/src/hotkeys.py index fb23600a..814663b7 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -91,10 +91,13 @@ def _send_hotkey(hotkey_or_scan_code: int | str | None): # Deal with problematic keys. Even by sending specific scan code "keyboard" still sends the default (wrong) key # keyboard also has issues with capitalization modifier (shift+A) # keyboard.send(keyboard.key_to_scan_codes(key_or_scan_code)[1]) - pyautogui.hotkey(*[ - "+" if key == "plus" else key - for key - in hotkey_or_scan_code.replace(" ", "").split("+")]) + pyautogui.hotkey( + *[ + "+" if key == "plus" else key + for key + in hotkey_or_scan_code.replace(" ", "").split("+") + ], + ) def __validate_keypad(expected_key: str, keyboard_event: keyboard.KeyboardEvent) -> bool: @@ -115,9 +118,11 @@ def __validate_keypad(expected_key: str, keyboard_event: keyboard.KeyboardEvent) # Prevent "action keys" from triggering "keypad keys" if keyboard_event.name and is_digit(keyboard_event.name[-1]): # Prevent "regular numbers" and "keypad numbers" from activating each other - return bool(keyboard_event.is_keypad - if expected_key.startswith("num ") - else not keyboard_event.is_keypad) + return bool( + keyboard_event.is_keypad + if expected_key.startswith("num ") + else not keyboard_event.is_keypad, + ) # Prevent "keypad action keys" from triggering "regular numbers" and "keypad numbers" # Still allow the same key that might be localized differently on keypad vs non-keypad @@ -216,7 +221,8 @@ def is_valid_hotkey_name(hotkey_name: str): return any( key and not keyboard.is_modifier(keyboard.key_to_scan_codes(key)[0]) for key - in hotkey_name.split("+")) + in hotkey_name.split("+") + ) # TODO: using getattr/setattr is NOT a good way to go about this. It was only temporarily done to # reduce duplicated code. We should use a dictionary of hotkey class or something. @@ -263,7 +269,8 @@ def callback(): # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 else keyboard.hook_key( hotkey_name, - lambda keyboard_event: _hotkey_action(keyboard_event, hotkey_name, action)) + lambda keyboard_event: _hotkey_action(keyboard_event, hotkey_name, action), + ), ) if autosplit.SettingsWidget: diff --git a/src/menu_bar.py b/src/menu_bar.py index 8cbcb36c..fddf36a0 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -11,12 +11,14 @@ import error_messages import user_profile -from capture_method import (CAPTURE_METHODS, CameraInfo, CaptureMethodEnum, change_capture_method, - get_all_video_capture_devices) +from capture_method import ( + CAPTURE_METHODS, CameraInfo, CaptureMethodEnum, change_capture_method, get_all_video_capture_devices, +) from gen import about, design, resources_rc, settings as settings_ui, update_checker # noqa F401 from hotkeys import HOTKEYS, Hotkey, set_hotkey -from utils import (AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, GITHUB_REPOSITORY, WINDOWS_BUILD_NUMBER, decimal, - fire_and_forget) +from utils import ( + AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, GITHUB_REPOSITORY, WINDOWS_BUILD_NUMBER, decimal, fire_and_forget, +) if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -67,7 +69,8 @@ def open_update(self): def do_not_ask_me_again_state_changed(self): user_profile.set_check_for_updates_on_open( self.design_window, - self.do_not_ask_again_checkbox.isChecked()) + self.do_not_ask_again_checkbox.isChecked(), + ) def open_update_checker(autosplit: AutoSplit, latest_version: str, check_on_open: bool): @@ -87,7 +90,7 @@ def __init__(self, autosplit: AutoSplit, check_on_open: bool): def run(self): try: - response = requests.get(f"https://api.github.com/repos/{GITHUB_REPOSITORY}/releases/latest") + response = requests.get(f"https://api.github.com/repos/{GITHUB_REPOSITORY}/releases/latest", timeout=30) latest_version = str(response.json()["name"]).split("v")[1] self.autosplit.update_checker_widget_signal.emit(latest_version, self.check_on_open) except (RequestException, KeyError): @@ -101,6 +104,7 @@ def about_qt(): def about_qt_for_python(): webbrowser.open("https://wiki.qt.io/Qt_for_Python") + webbrowser.open("https://www.riverbankcomputing.com/software/pyqt") def check_for_updates(autosplit: AutoSplit, check_on_open: bool = False): @@ -130,11 +134,13 @@ def __update_default_threshold(self, value: Any): self.autosplit.table_current_image_threshold_label.setText( decimal(self.autosplit.split_image.get_similarity_threshold(self.autosplit)) if self.autosplit.split_image - else "-") + else "-", + ) self.autosplit.table_reset_image_threshold_label.setText( decimal(self.autosplit.reset_image.get_similarity_threshold(self.autosplit)) if self.autosplit.reset_image - else "-") + else "-", + ) def __set_value(self, key: str, value: Any): self.autosplit.settings_dict[key] = value @@ -173,10 +179,12 @@ def __set_all_capture_devices(self): f"* {device.name}" + (f" [{device.backend}]" if device.backend else "") + (" (occupied)" if device.occupied else "") - for device in self.__video_capture_devices]) + for device in self.__video_capture_devices + ]) self.capture_device_combobox.setEnabled(True) self.capture_device_combobox.setCurrentIndex( - self.get_capture_device_index(self.autosplit.settings_dict["capture_device_id"])) + self.get_capture_device_index(self.autosplit.settings_dict["capture_device_id"]), + ) else: self.capture_device_combobox.setPlaceholderText("No device found.") @@ -194,11 +202,13 @@ def __set_readme_link(self): self.custom_image_settings_info_label.setText( self.custom_image_settings_info_label .text() - .format(GITHUB_REPOSITORY=GITHUB_REPOSITORY)) + .format(GITHUB_REPOSITORY=GITHUB_REPOSITORY), + ) # HACK: This is a workaround because custom_image_settings_info_label # simply will not open links with a left click no matter what we tried. self.readme_link_button.clicked.connect( - lambda: webbrowser.open(f"https://github.com/{GITHUB_REPOSITORY}#readme")) + lambda: webbrowser.open(f"https://github.com/{GITHUB_REPOSITORY}#readme"), + ) self.readme_link_button.setStyleSheet("border: 0px; background-color:rgba(0,0,0,0%);") def __init__(self, autosplit: AutoSplit): @@ -229,9 +239,12 @@ def __init__(self, autosplit: AutoSplit): list_view.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) self.capture_method_combobox.setView(list_view) self.capture_method_combobox.addItems(capture_list_items) - self.capture_method_combobox.setToolTip("\n\n".join([ - f"{method.name} :\n{method.description}" - for method in capture_method_values])) + self.capture_method_combobox.setToolTip( + "\n\n".join([ + f"{method.name} :\n{method.description}" + for method in capture_method_values + ]), + ) # endregion # Hotkey initial values and bindings @@ -253,10 +266,11 @@ def hotkey_connect(hotkey: Hotkey): self.fps_limit_spinbox.setValue(autosplit.settings_dict["fps_limit"]) self.live_capture_region_checkbox.setChecked(autosplit.settings_dict["live_capture_region"]) self.capture_method_combobox.setCurrentIndex( - get_capture_method_index(autosplit.settings_dict["capture_method"])) - self.capture_device_combobox.currentIndexChanged.connect(lambda: self.__set_value( - "capture_device_id", - self.__capture_device_changed())) + get_capture_method_index(autosplit.settings_dict["capture_method"]), + ) + self.capture_device_combobox.currentIndexChanged.connect( + lambda: self.__set_value("capture_device_id", self.__capture_device_changed()), + ) # Image Settings self.default_comparison_method.setCurrentIndex(autosplit.settings_dict["default_comparison_method"]) @@ -268,35 +282,36 @@ def hotkey_connect(hotkey: Hotkey): # endregion # region Binding # Capture Settings - self.fps_limit_spinbox.valueChanged.connect(lambda: self.__set_value( - "fps_limit", - self.fps_limit_spinbox.value())) - self.live_capture_region_checkbox.stateChanged.connect(lambda: self.__set_value( - "live_capture_region", - self.live_capture_region_checkbox.isChecked())) - self.capture_method_combobox.currentIndexChanged.connect(lambda: self.__set_value( - "capture_method", - self.__capture_method_changed())) + self.fps_limit_spinbox.valueChanged.connect( + lambda: self.__set_value("fps_limit", self.fps_limit_spinbox.value()), + ) + self.live_capture_region_checkbox.stateChanged.connect( + lambda: self.__set_value("live_capture_region", self.live_capture_region_checkbox.isChecked()), + ) + self.capture_method_combobox.currentIndexChanged.connect( + lambda: self.__set_value("capture_method", self.__capture_method_changed()), + ) self.capture_device_combobox.currentIndexChanged.connect(self.__capture_device_changed) # Image Settings - self.default_comparison_method.currentIndexChanged.connect(lambda: self.__set_value( - "default_comparison_method", - self.default_comparison_method.currentIndex())) - self.default_similarity_threshold_spinbox.valueChanged.connect(lambda: self.__update_default_threshold( - self.default_similarity_threshold_spinbox.value())) - self.default_delay_time_spinbox.valueChanged.connect(lambda: self.__set_value( - "default_delay_time", - self.default_delay_time_spinbox.value())) - self.default_pause_time_spinbox.valueChanged.connect(lambda: self.__set_value( - "default_pause_time", - self.default_pause_time_spinbox.value())) - self.loop_splits_checkbox.stateChanged.connect(lambda: self.__set_value( - "loop_splits", - self.loop_splits_checkbox.isChecked())) - self.enable_auto_reset_image_checkbox.stateChanged.connect(lambda: self.__set_value( - "enable_auto_reset", - self.enable_auto_reset_image_checkbox.isChecked())) + self.default_comparison_method.currentIndexChanged.connect( + lambda: self.__set_value("default_comparison_method", self.default_comparison_method.currentIndex()), + ) + self.default_similarity_threshold_spinbox.valueChanged.connect( + lambda: self.__update_default_threshold(self.default_similarity_threshold_spinbox.value()), + ) + self.default_delay_time_spinbox.valueChanged.connect( + lambda: self.__set_value("default_delay_time", self.default_delay_time_spinbox.value()), + ) + self.default_pause_time_spinbox.valueChanged.connect( + lambda: self.__set_value("default_pause_time", self.default_pause_time_spinbox.value()), + ) + self.loop_splits_checkbox.stateChanged.connect( + lambda: self.__set_value("loop_splits", self.loop_splits_checkbox.isChecked()), + ) + self.enable_auto_reset_image_checkbox.stateChanged.connect( + lambda: self.__set_value("enable_auto_reset", self.enable_auto_reset_image_checkbox.isChecked()), + ) # endregion self.show() @@ -322,7 +337,8 @@ def get_default_settings_from_ui(autosplit: AutoSplit): "live_capture_region": default_settings_dialog.live_capture_region_checkbox.isChecked(), "enable_auto_reset": default_settings_dialog.enable_auto_reset_image_checkbox.isChecked(), "capture_method": CAPTURE_METHODS.get_method_by_index( - default_settings_dialog.capture_method_combobox.currentIndex()), + default_settings_dialog.capture_method_combobox.currentIndex(), + ), "capture_device_id": default_settings_dialog.capture_device_combobox.currentIndex(), "capture_device_name": "", "default_comparison_method": default_settings_dialog.default_comparison_method.currentIndex(), @@ -337,7 +353,7 @@ def get_default_settings_from_ui(autosplit: AutoSplit): "y": autosplit.y_spinbox.value(), "width": autosplit.width_spinbox.value(), "height": autosplit.height_spinbox.value(), - } + }, } del temp_dialog return default_settings diff --git a/src/region_selection.py b/src/region_selection.py index d943e448..9bea31df 100644 --- a/src/region_selection.py +++ b/src/region_selection.py @@ -99,11 +99,13 @@ def select_region(autosplit: AutoSplit): left_bounds, top_bounds, *_ = get_window_bounds(hwnd) window_x, window_y, *_ = win32gui.GetWindowRect(hwnd) - __set_region_values(autosplit, - left=x - window_x - left_bounds, - top=y - window_y - top_bounds, - width=width, - height=height) + __set_region_values( + autosplit, + left=x - window_x - left_bounds, + top=y - window_y - top_bounds, + width=width, + height=height, + ) def select_window(autosplit: AutoSplit): @@ -135,11 +137,13 @@ def select_window(autosplit: AutoSplit): border_width = ceil((window_width - client_width) / 2) titlebar_with_border_height = window_height - client_height - border_width - __set_region_values(autosplit, - left=border_width, - top=titlebar_with_border_height, - width=client_width, - height=client_height - border_width * 2) + __set_region_values( + autosplit, + left=border_width, + top=titlebar_with_border_height, + width=client_width, + height=client_height - border_width * 2, + ) def __get_window_from_point(x: int, y: int): @@ -199,11 +203,13 @@ def align_region(autosplit: AutoSplit): return # The new region can be defined by using the min_loc point and the best_height and best_width of the template. - __set_region_values(autosplit, - left=autosplit.settings_dict["capture_region"]["x"] + best_loc[0], - top=autosplit.settings_dict["capture_region"]["y"] + best_loc[1], - width=best_width, - height=best_height) + __set_region_values( + autosplit, + left=autosplit.settings_dict["capture_region"]["x"] + best_loc[0], + top=autosplit.settings_dict["capture_region"]["y"] + best_loc[1], + width=best_width, + height=best_height, + ) def __set_region_values(autosplit: AutoSplit, left: int, top: int, width: int, height: int): @@ -293,7 +299,8 @@ def __init__(self): user32.GetSystemMetrics(SM_XVIRTUALSCREEN), user32.GetSystemMetrics(SM_YVIRTUALSCREEN), user32.GetSystemMetrics(SM_CXVIRTUALSCREEN), - user32.GetSystemMetrics(SM_CYVIRTUALSCREEN)) + user32.GetSystemMetrics(SM_CYVIRTUALSCREEN), + ) self.setWindowTitle(" ") self.setWindowOpacity(0.5) self.setWindowFlags(QtCore.Qt.WindowType.FramelessWindowHint) diff --git a/src/split_parser.py b/src/split_parser.py index c8c9699d..422e8abd 100644 --- a/src/split_parser.py +++ b/src/split_parser.py @@ -10,10 +10,12 @@ if TYPE_CHECKING: from AutoSplit import AutoSplit -[DUMMY_FLAG, - BELOW_FLAG, - PAUSE_FLAG, - *_] = [1 << i for i in range(31)] # 32 bits of flags +[ + DUMMY_FLAG, + BELOW_FLAG, + PAUSE_FLAG, + *_, +] = [1 << i for i in range(31)] # 32 bits of flags T = TypeVar("T", str, int, float) @@ -24,7 +26,7 @@ def __value_from_filename( filename: str, delimiters: str, - default_value: T + default_value: T, ) -> T: if len(delimiters) != 2: raise ValueError("delimiters parameter must contain exactly 2 characters") @@ -180,7 +182,8 @@ def parse_and_validate_images(autosplit: AutoSplit): all_images = [ AutoSplitImage(os.path.join(autosplit.settings_dict["split_image_directory"], image_name)) for image_name - in os.listdir(autosplit.settings_dict["split_image_directory"])] + in os.listdir(autosplit.settings_dict["split_image_directory"]) + ] # Find non-split images and then remove them from the list autosplit.start_image = __pop_image_type(all_images, ImageType.START) @@ -196,9 +199,11 @@ def parse_and_validate_images(autosplit: AutoSplit): return False # error out if there is a {p} flag but no pause hotkey set and is not auto controlled. - if (not autosplit.settings_dict["pause_hotkey"] - and image.check_flag(PAUSE_FLAG) - and not autosplit.is_auto_controlled): + if ( + not autosplit.settings_dict["pause_hotkey"] + and image.check_flag(PAUSE_FLAG) + and not autosplit.is_auto_controlled + ): autosplit.gui_changes_on_reset() error_messages.pause_hotkey() return False diff --git a/src/user_profile.py b/src/user_profile.py index 1679ffd1..3934afdd 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -87,7 +87,8 @@ def save_settings_as(autosplit: AutoSplit): "Save Settings As", autosplit.last_successfully_loaded_settings_file_path or os.path.join(auto_split_directory, "settings.toml"), - "TOML (*.toml)")[0] + "TOML (*.toml)", + )[0] # If user cancels save destination window, don't save settings if not save_settings_file_path: @@ -113,10 +114,12 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str with open(load_settings_file_path, "r", encoding="utf-8") as file: # Casting here just so we can build an actual UserProfileDict once we're done validating # Fallback to default settings if some are missing from the file. This happens when new settings are added. - loaded_settings = cast(UserProfileDict, { - **DEFAULT_PROFILE, - **toml.load(file), - }) + loaded_settings = cast( + UserProfileDict, { + **DEFAULT_PROFILE, + **toml.load(file), + }, + ) # TODO: Data Validation / fallbacks ? autosplit.settings_dict = UserProfileDict(**loaded_settings) autosplit.last_loaded_settings = autosplit.settings_dict @@ -140,9 +143,11 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str if autosplit.settings_dict["capture_method"] != CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: autosplit.capture_method.recover_window(autosplit.settings_dict["captured_window_title"], autosplit) if not autosplit.capture_method.check_selected_region_exists(autosplit): - autosplit.live_image.setText("Reload settings after opening" - + f'\n"{autosplit.settings_dict["captured_window_title"]}"' - + "\nto automatically load Capture Region") + autosplit.live_image.setText( + "Reload settings after opening" + + f'\n"{autosplit.settings_dict["captured_window_title"]}"' + + "\nto automatically load Capture Region", + ) return True @@ -152,7 +157,8 @@ def load_settings(autosplit: AutoSplit, from_path: str = ""): autosplit, "Load Profile", os.path.join(auto_split_directory, "settings.toml"), - "TOML (*.toml)")[0] + "TOML (*.toml)", + )[0] if not (load_settings_file_path and __load_settings_from_file(autosplit, load_settings_file_path)): return @@ -164,7 +170,8 @@ def load_settings_on_open(autosplit: AutoSplit): settings_files = [ file for file in os.listdir(auto_split_directory) - if file.endswith(".toml")] + if file.endswith(".toml") + ] # Find all .tomls in AutoSplit folder, error if there is not exactly 1 error = None diff --git a/src/utils.py b/src/utils.py index 227c7f43..31266caa 100644 --- a/src/utils.py +++ b/src/utils.py @@ -65,7 +65,8 @@ def get_window_bounds(hwnd: int) -> tuple[int, int, int, int]: hwnd, DWMWA_EXTENDED_FRAME_BOUNDS, ctypes.byref(extended_frame_bounds), - ctypes.sizeof(extended_frame_bounds)) + ctypes.sizeof(extended_frame_bounds), + ) window_rect = win32gui.GetWindowRect(hwnd) window_left_bounds = cast(int, extended_frame_bounds.left) - window_rect[0] diff --git a/typings/PyInstaller/__init__.pyi b/typings/PyInstaller/__init__.pyi deleted file mode 100644 index df51e4d4..00000000 --- a/typings/PyInstaller/__init__.pyi +++ /dev/null @@ -1,11 +0,0 @@ -from typing_extensions import LiteralString - -from PyInstaller import compat as compat - -__all__ = ("HOMEPATH", "PLATFORM", "__version__", "DEFAULT_DISTPATH", "DEFAULT_SPECPATH", "DEFAULT_WORKPATH") -__version__: str = ... -HOMEPATH: str = ... -DEFAULT_SPECPATH: str = ... -DEFAULT_DISTPATH: str = ... -DEFAULT_WORKPATH: str = ... -PLATFORM: LiteralString = ... diff --git a/typings/PyInstaller/__main__.pyi b/typings/PyInstaller/__main__.pyi deleted file mode 100644 index d1f8064d..00000000 --- a/typings/PyInstaller/__main__.pyi +++ /dev/null @@ -1,13 +0,0 @@ -# https://pyinstaller.org/en/stable/usage.html#running-pyinstaller-from-python-code -from collections.abc import Iterable - -from _typeshed import SupportsKeysAndGetItem -from typing_extensions import TypeAlias - -# Used to update PyInstaller.config.CONF -_PyIConfig: TypeAlias = ( - SupportsKeysAndGetItem[str, bool | str | list[str] | None] | Iterable[tuple[str, bool | str | list[str] | None]] -) - - -def run(pyi_args: Iterable[str] | None = ..., pyi_config: _PyIConfig | None = ...) -> None: ... diff --git a/typings/PyInstaller/building/build_main.pyi b/typings/PyInstaller/building/build_main.pyi deleted file mode 100644 index 1d3f44d5..00000000 --- a/typings/PyInstaller/building/build_main.pyi +++ /dev/null @@ -1,32 +0,0 @@ -# Referenced in: https://pyinstaller.org/en/stable/hooks.html?highlight=get_hook_config#PyInstaller.utils.hooks.get_hook_config -# Not to be imported during runtime, but is the type reference for hooks and analysis configuration - -from collections.abc import Iterable - -from _typeshed import StrOrBytesPath -from PyInstaller.building.datastruct import Target # type: ignore[import] - -# - - -class Analysis(Target): - # https://pyinstaller.org/en/stable/hooks-config.html#hook-configuration-options - hooksconfig: dict[str, dict[str, object]] - - def __init__( - self, - scripts: Iterable[StrOrBytesPath], - pathex=..., - binaries=..., - datas=..., - hiddenimports=..., - hookspath=..., - hooksconfig: dict[str, dict[str, object]] | None = ..., - excludes=..., - runtime_hooks=..., - cipher=..., - win_no_prefer_redirects: bool = ..., - win_private_assemblies: bool = ..., - noarchive: bool = ..., - module_collection_mode=..., - ) -> None: ... diff --git a/typings/PyInstaller/building/datastruct.pyi b/typings/PyInstaller/building/datastruct.pyi deleted file mode 100644 index 922bfa4a..00000000 --- a/typings/PyInstaller/building/datastruct.pyi +++ /dev/null @@ -1,36 +0,0 @@ -# https://pyinstaller.org/en/stable/advanced-topics.html#the-toc-and-tree-classes -from collections.abc import Iterable, Sequence -from typing import ClassVar - -from typing_extensions import Literal, LiteralString, TypeAlias - -_TypeCode: TypeAlias = Literal["DATA", "BINARY", "EXTENSION", "OPTION"] -_TOCTuple: TypeAlias = tuple[str, str | None, _TypeCode | None] - - -class TOC(list[_TOCTuple]): - filenames: set[str] - def __init__(self, initlist: Iterable[_TOCTuple] | None = ...) -> None: ... - - -class Target: - invcnum: ClassVar[int] - tocfilename: LiteralString - tocbasename: LiteralString - dependencies: TOC - - -class Tree(Target, TOC): - root: str | None - prefix: str | None - excludes: list[str] | None - typecode: _TypeCode - - def __init__( - self, - root: str | None = ..., - prefix: str | None = ..., - excludes: Sequence[str] | None = ..., - typecode: _TypeCode = ...) -> None: ... - - def assemble(self) -> None: ... diff --git a/typings/PyInstaller/compat.pyi b/typings/PyInstaller/compat.pyi deleted file mode 100644 index 0d512b77..00000000 --- a/typings/PyInstaller/compat.pyi +++ /dev/null @@ -1,91 +0,0 @@ -from collections.abc import Iterable -from importlib.abc import _Path -from types import ModuleType -from typing import AnyStr, overload - -from _typeshed import GenericPath, StrOrBytesPath -from typing_extensions import Literal, TypeAlias - -_OpenFile: TypeAlias = StrOrBytesPath | int - -is_64bits: bool -is_py35: bool -is_py36: bool -is_py37: bool -is_py38: bool -is_py39: bool -is_py310: bool -is_win: bool -is_win_10: bool -is_win_wine: bool -is_cygwin: bool -is_darwin: bool -is_linux: bool -is_solar: bool -is_aix: bool -is_freebsd: bool -is_openbsd: bool -is_hpux: bool -is_unix: bool -is_musl: bool -is_macos_11_compat: tuple[int, ...] | bool | None -is_macos_11_native: tuple[int, ...] | bool | None -is_macos_11: tuple[int, ...] | bool | None -PYDYLIB_NAMES: set[str] -base_prefix: str -is_venv: bool -is_conda: bool -is_pure_conda: bool -python_executable: str -is_ms_app_store: bool -BYTECODE_MAGIC: bytes -EXTENSION_SUFFIXES: list[str] -ALL_SUFFIXES: list[str] - -architecture: Literal["64bit", "n32bit", "32bit"] -system: Literal["Cygwin", "Linux", "Darwin", "Java", "Windows"] -machine: Literal["sw_64", "loongarch64", "arm", "intel", "ppc", "mips", "riscv", "s390x", "unknown"] | None - - -def is_wine_dll(filename: _OpenFile) -> bool: ... -@overload -def getenv(name: str, default: str = ...) -> str: ... -@overload -def getenv(name: str, default: None = ...) -> str | None: ... -def setenv(name: str, value: str) -> None: ... -def unsetenv(name: str) -> None: ... - - -def exec_command(*cmdargs: str, encoding: str | None = ..., raise_enoent: bool - | None = ..., **kwargs: int | bool | Iterable[int] | None) -> str: ... - - -def exec_command_rc(*cmdargs: str, **kwargs: float | bool | Iterable[int] | None) -> int: ... - - -def exec_command_stdout( - *command_args: str, encoding: str | None = ..., **kwargs: float | str | bytes | bool | Iterable[int] | None -) -> str: ... - - -def exec_command_all( - *cmdargs: str, encoding: str | None = ..., **kwargs: int | bool | Iterable[int] | None -) -> tuple[int, str, str]: ... -def exec_python(*args: str, **kwargs: str | None) -> str: ... -def exec_python_rc(*args: str, **kwargs: str | None) -> int: ... -def expand_path(path: GenericPath[AnyStr]) -> AnyStr: ... -def getsitepackages(prefixes: Iterable[str] | None = ...) -> list[str]: ... -def importlib_load_source(name: str, pathname: _Path) -> ModuleType: ... - - -PY3_BASE_MODULES: set[str] -PURE_PYTHON_MODULE_TYPES: set[str] -SPECIAL_MODULE_TYPES: set[str] -BINARY_MODULE_TYPES: set[str] -VALID_MODULE_TYPES: set[str] -BAD_MODULE_TYPES: set[str] -ALL_MODULE_TYPES: set[str] -MODULE_TYPES_TO_TOC_DICT: dict[str, str] - - -def check_requirements() -> None: ... diff --git a/typings/PyInstaller/depend/imphookapi.pyi b/typings/PyInstaller/depend/imphookapi.pyi deleted file mode 100644 index b2a06998..00000000 --- a/typings/PyInstaller/depend/imphookapi.pyi +++ /dev/null @@ -1,16 +0,0 @@ -# https://pyinstaller.org/en/stable/hooks-config.html `hook_api` is a PostGraphAPI - -from collections.abc import Iterable - -from _typeshed import StrOrBytesPath -from PyInstaller.building.build_main import Analysis # type: ignore[import] - -# - - -class PostGraphAPI: - @property - def __path__(self) -> tuple[str, ...] | None: ... - @property - def analysis(self) -> Analysis: ... - def add_datas(self, list_of_tuples: Iterable[tuple[StrOrBytesPath, StrOrBytesPath]]) -> None: ... diff --git a/typings/PyInstaller/isolated/__init__.pyi b/typings/PyInstaller/isolated/__init__.pyi deleted file mode 100644 index 100495ee..00000000 --- a/typings/PyInstaller/isolated/__init__.pyi +++ /dev/null @@ -1 +0,0 @@ -from PyInstaller.isolated._parent import Python as Python, call as call, decorate as decorate diff --git a/typings/PyInstaller/isolated/_parent.pyi b/typings/PyInstaller/isolated/_parent.pyi deleted file mode 100644 index aa5ff6d8..00000000 --- a/typings/PyInstaller/isolated/_parent.pyi +++ /dev/null @@ -1,17 +0,0 @@ -from collections.abc import Callable -from functools import _AnyCallable -from typing import TypeVar - -from typing_extensions import ParamSpec - -_AC = TypeVar("_AC", bound=_AnyCallable) -_R = TypeVar("_R") -_P = ParamSpec("_P") - - -class Python: - def call(self, function: Callable[_P, _R], *args: _P.args, **kwargs: _P.kwargs) -> _R: ... - - -def call(function: Callable[_P, _R], *args: _P.args, **kwargs: _P.kwargs) -> _R: ... -def decorate(function: _AC) -> _AC: ... diff --git a/typings/PyInstaller/utils/__init__.pyi b/typings/PyInstaller/utils/__init__.pyi deleted file mode 100644 index e69de29b..00000000 diff --git a/typings/PyInstaller/utils/hooks/__init__.pyi b/typings/PyInstaller/utils/hooks/__init__.pyi deleted file mode 100644 index de5ec5ec..00000000 --- a/typings/PyInstaller/utils/hooks/__init__.pyi +++ /dev/null @@ -1,105 +0,0 @@ -# https://pyinstaller.org/en/stable/hooks.html - -import os -from collections.abc import Callable, Iterable -from typing import Any, AnyStr - -import pkg_resources -from _typeshed import AnyOrLiteralStr, StrOrBytesPath, SupportsKeysAndGetItem -from PyInstaller.depend.imphookapi import PostGraphAPI # type: ignore[import] -from PyInstaller.utils.hooks import conda as conda_support -from PyInstaller.utils.hooks.win32 import get_pywin32_module_file_attribute as get_pywin32_module_file_attribute -from typing_extensions import Literal, TypeAlias - -from PyInstaller import isolated - -_Environ: TypeAlias = SupportsKeysAndGetItem[str, str] | Iterable[tuple[str, str]] | os._Environ[str] - -PY_IGNORE_EXTENSIONS: set[str] -hook_variables: dict[str, str] - - -def exec_statement(statement: str) -> str | int: ... -def exec_statement_rc(statement: str) -> str | int: ... - - -def exec_script(script_filename: os.PathLike[AnyStr] | AnyOrLiteralStr, - *args: str, env: _Environ | None = ...) -> str | int: ... - - -def exec_script_rc( - script_filename: os.PathLike[AnyStr] | AnyOrLiteralStr, *args: str, env: _Environ | None = ... -) -> str | int: ... -def eval_statement(statement: str) -> Any | Literal[""]: ... - - -def eval_script( - scriptfilename: os.PathLike[AnyStr] | AnyOrLiteralStr, *args: str, env: _Environ | None = ... -) -> Any | Literal[""]: ... -@isolated.decorate -def get_pyextension_imports(module_name: str) -> list[str]: ... -def get_homebrew_path(formula: str = ...) -> str | None: ... -def remove_prefix(string: str, prefix: str) -> str: ... -def remove_suffix(string: str, suffix: str) -> str: ... -def remove_file_extension(filename: str) -> str: ... -@isolated.decorate -def can_import_module(module_name: str) -> bool: ... -def get_module_attribute(module_name: str, attr_name: str) -> Any: ... -def get_module_file_attribute(package: str) -> str | None: ... - - -def is_module_satisfies( - requirements: Iterable[str] | pkg_resources.Requirement, - version: str | pkg_resources.Distribution | None = ..., - version_attr: str = ..., -) -> bool: ... -def is_package(module_name: str) -> bool: ... -def get_all_package_paths(package: str) -> list[str]: ... -def package_base_path(package_path: str, package: str) -> str: ... -def get_package_paths(package: str) -> tuple[str, str]: ... - - -def collect_submodules( - package: str, filter: Callable[[str], bool] = ..., on_error: Literal["ignore", "warn once", "warn", "raise"] = ... -) -> list[str]: ... -def is_module_or_submodule(name: str, mod_or_submod: str) -> bool: ... - - -PY_DYLIB_PATTERNS: list[str] - - -def collect_dynamic_libs(package: str, destdir: object | None = ...) -> list[tuple[str, str]]: ... - - -def collect_data_files( - package: str, - include_py_files: bool = ..., - subdir: StrOrBytesPath | None = ..., - excludes: Iterable[str] | None = ..., - includes: Iterable[str] | None = ..., -) -> list[tuple[str, str]]: ... - - -def collect_system_data_files( - path: str, destdir: StrOrBytesPath | None = ..., include_py_files: bool = ... -) -> list[tuple[str, str]]: ... -def copy_metadata(package_name: str, recursive: bool = ...) -> list[tuple[str, str]]: ... -def get_installer(module: str) -> str | None: ... -def requirements_for_package(package_name: str) -> list[str]: ... - - -def collect_all( - package_name: str, - include_py_files: bool = ..., - filter_submodules: Callable[[str], bool] | None = ..., - exclude_datas: Iterable[str] | None = ..., - include_datas: Iterable[str] | None = ..., - on_error: Literal["ignore", "warn once", "warn", "raise"] = ..., -) -> tuple[list[tuple[str, str]], list[tuple[str, str]], list[str]]: ... -def collect_entry_point(name: str) -> tuple[tuple[str, str], list[str]]: ... -def get_hook_config(hook_api: PostGraphAPI, module_name: str, key: str) -> None: ... - - -def include_or_exclude_file( - filename: str, include_list: Iterable[str] | None = ..., exclude_list: Iterable[str] | None = ... -) -> bool: ... diff --git a/typings/PyInstaller/utils/hooks/conda.pyi b/typings/PyInstaller/utils/hooks/conda.pyi deleted file mode 100644 index 657ed28d..00000000 --- a/typings/PyInstaller/utils/hooks/conda.pyi +++ /dev/null @@ -1,57 +0,0 @@ -# https://pyinstaller.org/en/stable/hooks.html?highlight=conda_support#module-PyInstaller.utils.hooks.conda - -import sys -from collections.abc import Sequence -from pathlib import Path, PurePath -from typing import Any - -from _typeshed import StrOrBytesPath -from typing_extensions import TypeAlias, TypedDict - -if sys.version_info >= (3, 8): - from importlib.metadata import PackagePath as _PackagePath -else: - _PackagePath: TypeAlias = Any - -CONDA_ROOT: Path -CONDA_META_DIR: Path -PYTHONPATH_PREFIXES: list[Path] - - -class _RawDict(TypedDict): - name: str - version: str - files: list[StrOrBytesPath | PurePath] - depends: list[str] - - -class Distribution: - raw: _RawDict - name: str - version: str - files: list[PackagePath] - dependencies: list[str] - packages: list[str | None] - def __init__(self, json_path: str) -> None: ... - @classmethod - def from_name(cls, name: str) -> Distribution: ... - @classmethod - def from_package_name(cls, name: str) -> Distribution: ... - - -class PackagePath(_PackagePath): - def locate(self) -> Path: ... - - -def walk_dependency_tree(initial: str, excludes: Sequence[str] | None = ...) -> dict[str, Distribution]: ... -def requires(name: str, strip_versions: bool = ...) -> list[str]: ... -def files(name: str, dependencies: bool = ..., excludes: Sequence[str] | None = ...) -> list[PackagePath]: ... - - -def collect_dynamic_libs( - name: str, dest: str = ..., dependencies: bool = ..., excludes: Sequence[str] | None = ... -) -> list[tuple[str, str]]: ... - - -distributions: dict[str, Distribution] -distributions_by_package: dict[str | None, Distribution] diff --git a/typings/PyInstaller/utils/hooks/win32.pyi b/typings/PyInstaller/utils/hooks/win32.pyi deleted file mode 100644 index cf597c88..00000000 --- a/typings/PyInstaller/utils/hooks/win32.pyi +++ /dev/null @@ -1,4 +0,0 @@ -__all__ = ("get_pywin32_module_file_attribute",) - - -def get_pywin32_module_file_attribute(module_name: str) -> str | int: ... diff --git a/typings/cv2-stubs/Error.pyi b/typings/cv2-stubs/Error.pyi deleted file mode 100644 index f3cc4e03..00000000 --- a/typings/cv2-stubs/Error.pyi +++ /dev/null @@ -1,110 +0,0 @@ -BadAlign = -21 -BAD_ALIGN = -21 -BadAlphaChannel = -18 -BAD_ALPHA_CHANNEL = -18 -BadCOI = -24 -BAD_COI = -24 -BadCallBack = -22 -BAD_CALL_BACK = -22 -BadDataPtr = -12 -BAD_DATA_PTR = -12 -BadDepth = -17 -BAD_DEPTH = -17 -BadImageSize = -10 -BAD_IMAGE_SIZE = -10 -BadModelOrChSeq = -14 -BAD_MODEL_OR_CH_SEQ = -14 -BadNumChannel1U = -16 -BAD_NUM_CHANNEL1U = -16 -BadNumChannels = -15 -BAD_NUM_CHANNELS = -15 -BadOffset = -11 -BAD_OFFSET = -11 -BadOrder = -19 -BAD_ORDER = -19 -BadOrigin = -20 -BAD_ORIGIN = -20 -BadROISize = -25 -BAD_ROISIZE = -25 -BadStep = -13 -BAD_STEP = -13 -BadTileSize = -23 -BAD_TILE_SIZE = -23 -GpuApiCallError = -217 -GPU_API_CALL_ERROR = -217 -GpuNotSupported = -216 -GPU_NOT_SUPPORTED = -216 -HeaderIsNull = -9 -HEADER_IS_NULL = -9 -MaskIsTiled = -26 -MASK_IS_TILED = -26 -OpenCLApiCallError = -220 -OPEN_CLAPI_CALL_ERROR = -220 -OpenCLDoubleNotSupported = -221 -OPEN_CLDOUBLE_NOT_SUPPORTED = -221 -OpenCLInitError = -222 -OPEN_CLINIT_ERROR = -222 -OpenCLNoAMDBlasFft = -223 -OPEN_CLNO_AMDBLAS_FFT = -223 -OpenGlApiCallError = -219 -OPEN_GL_API_CALL_ERROR = -219 -OpenGlNotSupported = -218 -OPEN_GL_NOT_SUPPORTED = -218 -StsAssert = -215 -STS_ASSERT = -215 -StsAutoTrace = -8 -STS_AUTO_TRACE = -8 -StsBackTrace = -1 -STS_BACK_TRACE = -1 -StsBadArg = -5 -STS_BAD_ARG = -5 -StsBadFlag = -206 -STS_BAD_FLAG = -206 -StsBadFunc = -6 -STS_BAD_FUNC = -6 -StsBadMask = -208 -STS_BAD_MASK = -208 -StsBadMemBlock = -214 -STS_BAD_MEM_BLOCK = -214 -StsBadPoint = -207 -STS_BAD_POINT = -207 -StsBadSize = -201 -STS_BAD_SIZE = -201 -StsDivByZero = -202 -STS_DIV_BY_ZERO = -202 -StsError = -2 -STS_ERROR = -2 -StsFilterOffsetErr = -31 -STS_FILTER_OFFSET_ERR = -31 -StsFilterStructContentErr = -29 -STS_FILTER_STRUCT_CONTENT_ERR = -29 -StsInplaceNotSupported = -203 -STS_INPLACE_NOT_SUPPORTED = -203 -StsInternal = -3 -STS_INTERNAL = -3 -StsKernelStructContentErr = -30 -STS_KERNEL_STRUCT_CONTENT_ERR = -30 -StsNoConv = -7 -STS_NO_CONV = -7 -StsNoMem = -4 -STS_NO_MEM = -4 -StsNotImplemented = -213 -STS_NOT_IMPLEMENTED = -213 -StsNullPtr = -27 -STS_NULL_PTR = -27 -StsObjectNotFound = -204 -STS_OBJECT_NOT_FOUND = -204 -StsOk = 0 # noqa: Y015 -STS_OK = 0 # noqa: Y015 -StsOutOfRange = -211 -STS_OUT_OF_RANGE = -211 -StsParseError = -212 -STS_PARSE_ERROR = -212 -StsUnmatchedFormats = -205 -STS_UNMATCHED_FORMATS = -205 -StsUnmatchedSizes = -209 -STS_UNMATCHED_SIZES = -209 -StsUnsupportedFormat = -210 -STS_UNSUPPORTED_FORMAT = -210 -StsVecLengthErr = -28 -STS_VEC_LENGTH_ERR = -28 diff --git a/typings/cv2-stubs/__init__.pyi b/typings/cv2-stubs/__init__.pyi deleted file mode 100644 index 5bbd26ff..00000000 --- a/typings/cv2-stubs/__init__.pyi +++ /dev/null @@ -1,3125 +0,0 @@ -# Python: 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] -# Library: cv2, version: 4.4.0 -# Module: cv2.cv2, version: 4.4.0 -import builtins as _mod_builtins -import typing -from dataclasses import dataclass - -import cv2 as _mod_cv2 -import cv2.Error as Error -import numpy as np - -__all__ = ["Error"] - -Mat = np.ndarray[int, np.dtype[np.generic]] - -ACCESS_FAST: int -ACCESS_MASK: int -ACCESS_READ: int -ACCESS_RW: int -ACCESS_WRITE: int -ADAPTIVE_THRESH_GAUSSIAN_C: int -ADAPTIVE_THRESH_MEAN_C: int -AGAST_FEATURE_DETECTOR_AGAST_5_8: int -AGAST_FEATURE_DETECTOR_AGAST_7_12D: int -AGAST_FEATURE_DETECTOR_AGAST_7_12S: int -AGAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION: int -AGAST_FEATURE_DETECTOR_OAST_9_16: int -AGAST_FEATURE_DETECTOR_THRESHOLD: int -AKAZE = _mod_cv2.AKAZE -AKAZE_DESCRIPTOR_KAZE: int -AKAZE_DESCRIPTOR_KAZE_UPRIGHT: int -AKAZE_DESCRIPTOR_MLDB: int -AKAZE_DESCRIPTOR_MLDB_UPRIGHT: int -def AKAZE_create(descriptor_type=..., descriptor_size=..., descriptor_channels=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: - 'AKAZE_create([, descriptor_type[, descriptor_size[, descriptor_channels[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]]) -> retval\n. @brief The AKAZE constructor\n. \n. @param descriptor_type Type of the extracted descriptor: DESCRIPTOR_KAZE,\n. DESCRIPTOR_KAZE_UPRIGHT, DESCRIPTOR_MLDB or DESCRIPTOR_MLDB_UPRIGHT.\n. @param descriptor_size Size of the descriptor in bits. 0 -\\> Full size\n. @param descriptor_channels Number of channels in the descriptor (1, 2, 3)\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' - ... - -AgastFeatureDetector = _mod_cv2.AgastFeatureDetector -AgastFeatureDetector_AGAST_5_8: int -AgastFeatureDetector_AGAST_7_12d: int -AgastFeatureDetector_AGAST_7_12s: int -AgastFeatureDetector_NONMAX_SUPPRESSION: int -AgastFeatureDetector_OAST_9_16: int -AgastFeatureDetector_THRESHOLD: int -def AgastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...) -> typing.Any: - 'AgastFeatureDetector_create([, threshold[, nonmaxSuppression[, type]]]) -> retval\n.' - ... - -Algorithm = _mod_cv2.Algorithm -AlignExposures = _mod_cv2.AlignExposures -AlignMTB = _mod_cv2.AlignMTB -AsyncArray = _mod_cv2.AsyncArray -BFMatcher = _mod_cv2.BFMatcher -def BFMatcher_create(normType: int = ..., crossCheck=...) -> typing.Any: - "BFMatcher_create([, normType[, crossCheck]]) -> retval\n. @brief Brute-force matcher create method.\n. @param normType One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. L1 and L2 norms are\n. preferable choices for SIFT and SURF descriptors, NORM_HAMMING should be used with ORB, BRISK and\n. BRIEF, NORM_HAMMING2 should be used with ORB when WTA_K==3 or 4 (see ORB::ORB constructor\n. description).\n. @param crossCheck If it is false, this is will be default BFMatcher behaviour when it finds the k\n. nearest neighbors for each query descriptor. If crossCheck==true, then the knnMatch() method with\n. k=1 will only return pairs (i,j) such that for i-th query descriptor the j-th descriptor in the\n. matcher's collection is the nearest and vice versa, i.e. the BFMatcher will only return consistent\n. pairs. Such technique usually produces best results with minimal number of outliers when there are\n. enough matches. This is alternative to the ratio test, used by D. Lowe in SIFT paper." - ... - -BORDER_CONSTANT: int -BORDER_DEFAULT: int -BORDER_ISOLATED: int -BORDER_REFLECT: int -BORDER_REFLECT101: int -BORDER_REFLECT_101: int -BORDER_REPLICATE: int -BORDER_TRANSPARENT: int -BORDER_WRAP: int -BOWImgDescriptorExtractor = _mod_cv2.BOWImgDescriptorExtractor -BOWKMeansTrainer = _mod_cv2.BOWKMeansTrainer -BOWTrainer = _mod_cv2.BOWTrainer -BRISK = _mod_cv2.BRISK -def BRISK_create(thresh=..., octaves=..., patternScale=...) -> typing.Any: - 'BRISK_create([, thresh[, octaves[, patternScale]]]) -> retval\n. @brief The BRISK constructor\n. \n. @param thresh AGAST detection threshold score.\n. @param octaves detection octaves. Use 0 to do single scale.\n. @param patternScale apply this scale to the pattern used for sampling the neighbourhood of a\n. keypoint.\n\n\n\nBRISK_create(radiusList, numberList[, dMax[, dMin[, indexChange]]]) -> retval\n. @brief The BRISK constructor for a custom pattern\n. \n. @param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for\n. keypoint scale 1).\n. @param numberList defines the number of sampling points on the sampling circle. Must be the same\n. size as radiusList..\n. @param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint\n. scale 1).\n. @param dMin threshold for the long pairings used for orientation determination (in pixels for\n. keypoint scale 1).\n. @param indexChange index remapping of the bits.\n\n\n\nBRISK_create(thresh, octaves, radiusList, numberList[, dMax[, dMin[, indexChange]]]) -> retval\n. @brief The BRISK constructor for a custom pattern, detection threshold and octaves\n. \n. @param thresh AGAST detection threshold score.\n. @param octaves detection octaves. Use 0 to do single scale.\n. @param radiusList defines the radii (in pixels) where the samples around a keypoint are taken (for\n. keypoint scale 1).\n. @param numberList defines the number of sampling points on the sampling circle. Must be the same\n. size as radiusList..\n. @param dMax threshold for the short pairings used for descriptor formation (in pixels for keypoint\n. scale 1).\n. @param dMin threshold for the long pairings used for orientation determination (in pixels for\n. keypoint scale 1).\n. @param indexChange index remapping of the bits.' - ... - -BackgroundSubtractor = _mod_cv2.BackgroundSubtractor -BackgroundSubtractorKNN = _mod_cv2.BackgroundSubtractorKNN -BackgroundSubtractorMOG2 = _mod_cv2.BackgroundSubtractorMOG2 -BaseCascadeClassifier = _mod_cv2.BaseCascadeClassifier -CALIB_CB_ACCURACY: int -CALIB_CB_ADAPTIVE_THRESH: int -CALIB_CB_ASYMMETRIC_GRID: int -CALIB_CB_CLUSTERING: int -CALIB_CB_EXHAUSTIVE: int -CALIB_CB_FAST_CHECK: int -CALIB_CB_FILTER_QUADS: int -CALIB_CB_LARGER: int -CALIB_CB_MARKER: int -CALIB_CB_NORMALIZE_IMAGE: int -CALIB_CB_SYMMETRIC_GRID: int -CALIB_FIX_ASPECT_RATIO: int -CALIB_FIX_FOCAL_LENGTH: int -CALIB_FIX_INTRINSIC: int -CALIB_FIX_K1: int -CALIB_FIX_K2: int -CALIB_FIX_K3: int -CALIB_FIX_K4: int -CALIB_FIX_K5: int -CALIB_FIX_K6: int -CALIB_FIX_PRINCIPAL_POINT: int -CALIB_FIX_S1_S2_S3_S4: int -CALIB_FIX_TANGENT_DIST: int -CALIB_FIX_TAUX_TAUY: int -CALIB_HAND_EYE_ANDREFF: int -CALIB_HAND_EYE_DANIILIDIS: int -CALIB_HAND_EYE_HORAUD: int -CALIB_HAND_EYE_PARK: int -CALIB_HAND_EYE_TSAI: int -CALIB_NINTRINSIC: int -CALIB_RATIONAL_MODEL: int -CALIB_SAME_FOCAL_LENGTH: int -CALIB_THIN_PRISM_MODEL: int -CALIB_TILTED_MODEL: int -CALIB_USE_EXTRINSIC_GUESS: int -CALIB_USE_INTRINSIC_GUESS: int -CALIB_USE_LU: int -CALIB_USE_QR: int -CALIB_ZERO_DISPARITY: int -CALIB_ZERO_TANGENT_DIST: int -CAP_ANDROID: int -CAP_ANY: int -CAP_ARAVIS: int -CAP_AVFOUNDATION: int -CAP_CMU1394: int -CAP_DC1394: int -CAP_DSHOW: int -CAP_FFMPEG: int -CAP_FIREWARE: int -CAP_FIREWIRE: int -CAP_GIGANETIX: int -CAP_GPHOTO2: int -CAP_GSTREAMER: int -CAP_IEEE1394: int -CAP_IMAGES: int -CAP_INTELPERC: int -CAP_INTELPERC_DEPTH_GENERATOR: int -CAP_INTELPERC_DEPTH_MAP: int -CAP_INTELPERC_GENERATORS_MASK: int -CAP_INTELPERC_IMAGE: int -CAP_INTELPERC_IMAGE_GENERATOR: int -CAP_INTELPERC_IR_GENERATOR: int -CAP_INTELPERC_IR_MAP: int -CAP_INTELPERC_UVDEPTH_MAP: int -CAP_INTEL_MFX: int -CAP_MSMF: int -CAP_OPENCV_MJPEG: int -CAP_OPENNI: int -CAP_OPENNI2: int -CAP_OPENNI2_ASUS: int -CAP_OPENNI_ASUS: int -CAP_OPENNI_BGR_IMAGE: int -CAP_OPENNI_DEPTH_GENERATOR: int -CAP_OPENNI_DEPTH_GENERATOR_BASELINE: int -CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH: int -CAP_OPENNI_DEPTH_GENERATOR_PRESENT: int -CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION: int -CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON: int -CAP_OPENNI_DEPTH_MAP: int -CAP_OPENNI_DISPARITY_MAP: int -CAP_OPENNI_DISPARITY_MAP_32F: int -CAP_OPENNI_GENERATORS_MASK: int -CAP_OPENNI_GRAY_IMAGE: int -CAP_OPENNI_IMAGE_GENERATOR: int -CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE: int -CAP_OPENNI_IMAGE_GENERATOR_PRESENT: int -CAP_OPENNI_IR_GENERATOR: int -CAP_OPENNI_IR_GENERATOR_PRESENT: int -CAP_OPENNI_IR_IMAGE: int -CAP_OPENNI_POINT_CLOUD_MAP: int -CAP_OPENNI_QVGA_30HZ: int -CAP_OPENNI_QVGA_60HZ: int -CAP_OPENNI_SXGA_15HZ: int -CAP_OPENNI_SXGA_30HZ: int -CAP_OPENNI_VALID_DEPTH_MASK: int -CAP_OPENNI_VGA_30HZ: int -CAP_PROP_APERTURE: int -CAP_PROP_ARAVIS_AUTOTRIGGER: int -CAP_PROP_AUTOFOCUS: int -CAP_PROP_AUTO_EXPOSURE: int -CAP_PROP_AUTO_WB: int -CAP_PROP_BACKEND: int -CAP_PROP_BACKLIGHT: int -CAP_PROP_BITRATE: int -CAP_PROP_BRIGHTNESS: int -CAP_PROP_BUFFERSIZE: int -CAP_PROP_CHANNEL: int -CAP_PROP_CODEC_PIXEL_FORMAT: int -CAP_PROP_CONTRAST: int -CAP_PROP_CONVERT_RGB: int -CAP_PROP_DC1394_MAX: int -CAP_PROP_DC1394_MODE_AUTO: int -CAP_PROP_DC1394_MODE_MANUAL: int -CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO: int -CAP_PROP_DC1394_OFF: int -CAP_PROP_EXPOSURE: int -CAP_PROP_EXPOSUREPROGRAM: int -CAP_PROP_FOCUS: int -CAP_PROP_FORMAT: int -CAP_PROP_FOURCC: int -CAP_PROP_FPS: int -CAP_PROP_FRAME_COUNT: int -CAP_PROP_FRAME_HEIGHT: int -CAP_PROP_FRAME_WIDTH: int -CAP_PROP_GAIN: int -CAP_PROP_GAMMA: int -CAP_PROP_GIGA_FRAME_HEIGH_MAX: int -CAP_PROP_GIGA_FRAME_OFFSET_X: int -CAP_PROP_GIGA_FRAME_OFFSET_Y: int -CAP_PROP_GIGA_FRAME_SENS_HEIGH: int -CAP_PROP_GIGA_FRAME_SENS_WIDTH: int -CAP_PROP_GIGA_FRAME_WIDTH_MAX: int -CAP_PROP_GPHOTO2_COLLECT_MSGS: int -CAP_PROP_GPHOTO2_FLUSH_MSGS: int -CAP_PROP_GPHOTO2_PREVIEW: int -CAP_PROP_GPHOTO2_RELOAD_CONFIG: int -CAP_PROP_GPHOTO2_RELOAD_ON_CHANGE: int -CAP_PROP_GPHOTO2_WIDGET_ENUMERATE: int -CAP_PROP_GSTREAMER_QUEUE_LENGTH: int -CAP_PROP_GUID: int -CAP_PROP_HUE: int -CAP_PROP_IMAGES_BASE: int -CAP_PROP_IMAGES_LAST: int -CAP_PROP_INTELPERC_DEPTH_CONFIDENCE_THRESHOLD: int -CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_HORZ: int -CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_VERT: int -CAP_PROP_INTELPERC_DEPTH_LOW_CONFIDENCE_VALUE: int -CAP_PROP_INTELPERC_DEPTH_SATURATION_VALUE: int -CAP_PROP_INTELPERC_PROFILE_COUNT: int -CAP_PROP_INTELPERC_PROFILE_IDX: int -CAP_PROP_IOS_DEVICE_EXPOSURE: int -CAP_PROP_IOS_DEVICE_FLASH: int -CAP_PROP_IOS_DEVICE_FOCUS: int -CAP_PROP_IOS_DEVICE_TORCH: int -CAP_PROP_IOS_DEVICE_WHITEBALANCE: int -CAP_PROP_IRIS: int -CAP_PROP_ISO_SPEED: int -CAP_PROP_MODE: int -CAP_PROP_MONOCHROME: int -CAP_PROP_OPENNI2_MIRROR: int -CAP_PROP_OPENNI2_SYNC: int -CAP_PROP_OPENNI_APPROX_FRAME_SYNC: int -CAP_PROP_OPENNI_BASELINE: int -CAP_PROP_OPENNI_CIRCLE_BUFFER: int -CAP_PROP_OPENNI_FOCAL_LENGTH: int -CAP_PROP_OPENNI_FRAME_MAX_DEPTH: int -CAP_PROP_OPENNI_GENERATOR_PRESENT: int -CAP_PROP_OPENNI_MAX_BUFFER_SIZE: int -CAP_PROP_OPENNI_MAX_TIME_DURATION: int -CAP_PROP_OPENNI_OUTPUT_MODE: int -CAP_PROP_OPENNI_REGISTRATION: int -CAP_PROP_OPENNI_REGISTRATION_ON: int -CAP_PROP_PAN: int -CAP_PROP_POS_AVI_RATIO: int -CAP_PROP_POS_FRAMES: int -CAP_PROP_POS_MSEC: int -CAP_PROP_PVAPI_BINNINGX: int -CAP_PROP_PVAPI_BINNINGY: int -CAP_PROP_PVAPI_DECIMATIONHORIZONTAL: int -CAP_PROP_PVAPI_DECIMATIONVERTICAL: int -CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE: int -CAP_PROP_PVAPI_MULTICASTIP: int -CAP_PROP_PVAPI_PIXELFORMAT: int -CAP_PROP_RECTIFICATION: int -CAP_PROP_ROLL: int -CAP_PROP_SAR_DEN: int -CAP_PROP_SAR_NUM: int -CAP_PROP_SATURATION: int -CAP_PROP_SETTINGS: int -CAP_PROP_SHARPNESS: int -CAP_PROP_SPEED: int -CAP_PROP_TEMPERATURE: int -CAP_PROP_TILT: int -CAP_PROP_TRIGGER: int -CAP_PROP_TRIGGER_DELAY: int -CAP_PROP_VIEWFINDER: int -CAP_PROP_WB_TEMPERATURE: int -CAP_PROP_WHITE_BALANCE_BLUE_U: int -CAP_PROP_WHITE_BALANCE_RED_V: int -CAP_PROP_XI_ACQ_BUFFER_SIZE: int -CAP_PROP_XI_ACQ_BUFFER_SIZE_UNIT: int -CAP_PROP_XI_ACQ_FRAME_BURST_COUNT: int -CAP_PROP_XI_ACQ_TIMING_MODE: int -CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_COMMIT: int -CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_SIZE: int -CAP_PROP_XI_AEAG: int -CAP_PROP_XI_AEAG_LEVEL: int -CAP_PROP_XI_AEAG_ROI_HEIGHT: int -CAP_PROP_XI_AEAG_ROI_OFFSET_X: int -CAP_PROP_XI_AEAG_ROI_OFFSET_Y: int -CAP_PROP_XI_AEAG_ROI_WIDTH: int -CAP_PROP_XI_AE_MAX_LIMIT: int -CAP_PROP_XI_AG_MAX_LIMIT: int -CAP_PROP_XI_APPLY_CMS: int -CAP_PROP_XI_AUTO_BANDWIDTH_CALCULATION: int -CAP_PROP_XI_AUTO_WB: int -CAP_PROP_XI_AVAILABLE_BANDWIDTH: int -CAP_PROP_XI_BINNING_HORIZONTAL: int -CAP_PROP_XI_BINNING_PATTERN: int -CAP_PROP_XI_BINNING_SELECTOR: int -CAP_PROP_XI_BINNING_VERTICAL: int -CAP_PROP_XI_BPC: int -CAP_PROP_XI_BUFFERS_QUEUE_SIZE: int -CAP_PROP_XI_BUFFER_POLICY: int -CAP_PROP_XI_CC_MATRIX_00: int -CAP_PROP_XI_CC_MATRIX_01: int -CAP_PROP_XI_CC_MATRIX_02: int -CAP_PROP_XI_CC_MATRIX_03: int -CAP_PROP_XI_CC_MATRIX_10: int -CAP_PROP_XI_CC_MATRIX_11: int -CAP_PROP_XI_CC_MATRIX_12: int -CAP_PROP_XI_CC_MATRIX_13: int -CAP_PROP_XI_CC_MATRIX_20: int -CAP_PROP_XI_CC_MATRIX_21: int -CAP_PROP_XI_CC_MATRIX_22: int -CAP_PROP_XI_CC_MATRIX_23: int -CAP_PROP_XI_CC_MATRIX_30: int -CAP_PROP_XI_CC_MATRIX_31: int -CAP_PROP_XI_CC_MATRIX_32: int -CAP_PROP_XI_CC_MATRIX_33: int -CAP_PROP_XI_CHIP_TEMP: int -CAP_PROP_XI_CMS: int -CAP_PROP_XI_COLOR_FILTER_ARRAY: int -CAP_PROP_XI_COLUMN_FPN_CORRECTION: int -CAP_PROP_XI_COOLING: int -CAP_PROP_XI_COUNTER_SELECTOR: int -CAP_PROP_XI_COUNTER_VALUE: int -CAP_PROP_XI_DATA_FORMAT: int -CAP_PROP_XI_DEBOUNCE_EN: int -CAP_PROP_XI_DEBOUNCE_POL: int -CAP_PROP_XI_DEBOUNCE_T0: int -CAP_PROP_XI_DEBOUNCE_T1: int -CAP_PROP_XI_DEBUG_LEVEL: int -CAP_PROP_XI_DECIMATION_HORIZONTAL: int -CAP_PROP_XI_DECIMATION_PATTERN: int -CAP_PROP_XI_DECIMATION_SELECTOR: int -CAP_PROP_XI_DECIMATION_VERTICAL: int -CAP_PROP_XI_DEFAULT_CC_MATRIX: int -CAP_PROP_XI_DEVICE_MODEL_ID: int -CAP_PROP_XI_DEVICE_RESET: int -CAP_PROP_XI_DEVICE_SN: int -CAP_PROP_XI_DOWNSAMPLING: int -CAP_PROP_XI_DOWNSAMPLING_TYPE: int -CAP_PROP_XI_EXPOSURE: int -CAP_PROP_XI_EXPOSURE_BURST_COUNT: int -CAP_PROP_XI_EXP_PRIORITY: int -CAP_PROP_XI_FFS_ACCESS_KEY: int -CAP_PROP_XI_FFS_FILE_ID: int -CAP_PROP_XI_FFS_FILE_SIZE: int -CAP_PROP_XI_FRAMERATE: int -CAP_PROP_XI_FREE_FFS_SIZE: int -CAP_PROP_XI_GAIN: int -CAP_PROP_XI_GAIN_SELECTOR: int -CAP_PROP_XI_GAMMAC: int -CAP_PROP_XI_GAMMAY: int -CAP_PROP_XI_GPI_LEVEL: int -CAP_PROP_XI_GPI_MODE: int -CAP_PROP_XI_GPI_SELECTOR: int -CAP_PROP_XI_GPO_MODE: int -CAP_PROP_XI_GPO_SELECTOR: int -CAP_PROP_XI_HDR: int -CAP_PROP_XI_HDR_KNEEPOINT_COUNT: int -CAP_PROP_XI_HDR_T1: int -CAP_PROP_XI_HDR_T2: int -CAP_PROP_XI_HEIGHT: int -CAP_PROP_XI_HOUS_BACK_SIDE_TEMP: int -CAP_PROP_XI_HOUS_TEMP: int -CAP_PROP_XI_HW_REVISION: int -CAP_PROP_XI_IMAGE_BLACK_LEVEL: int -CAP_PROP_XI_IMAGE_DATA_BIT_DEPTH: int -CAP_PROP_XI_IMAGE_DATA_FORMAT: int -CAP_PROP_XI_IMAGE_DATA_FORMAT_RGB32_ALPHA: int -CAP_PROP_XI_IMAGE_IS_COLOR: int -CAP_PROP_XI_IMAGE_PAYLOAD_SIZE: int -CAP_PROP_XI_IS_COOLED: int -CAP_PROP_XI_IS_DEVICE_EXIST: int -CAP_PROP_XI_KNEEPOINT1: int -CAP_PROP_XI_KNEEPOINT2: int -CAP_PROP_XI_LED_MODE: int -CAP_PROP_XI_LED_SELECTOR: int -CAP_PROP_XI_LENS_APERTURE_VALUE: int -CAP_PROP_XI_LENS_FEATURE: int -CAP_PROP_XI_LENS_FEATURE_SELECTOR: int -CAP_PROP_XI_LENS_FOCAL_LENGTH: int -CAP_PROP_XI_LENS_FOCUS_DISTANCE: int -CAP_PROP_XI_LENS_FOCUS_MOVE: int -CAP_PROP_XI_LENS_FOCUS_MOVEMENT_VALUE: int -CAP_PROP_XI_LENS_MODE: int -CAP_PROP_XI_LIMIT_BANDWIDTH: int -CAP_PROP_XI_LUT_EN: int -CAP_PROP_XI_LUT_INDEX: int -CAP_PROP_XI_LUT_VALUE: int -CAP_PROP_XI_MANUAL_WB: int -CAP_PROP_XI_OFFSET_X: int -CAP_PROP_XI_OFFSET_Y: int -CAP_PROP_XI_OUTPUT_DATA_BIT_DEPTH: int -CAP_PROP_XI_OUTPUT_DATA_PACKING: int -CAP_PROP_XI_OUTPUT_DATA_PACKING_TYPE: int -CAP_PROP_XI_RECENT_FRAME: int -CAP_PROP_XI_REGION_MODE: int -CAP_PROP_XI_REGION_SELECTOR: int -CAP_PROP_XI_ROW_FPN_CORRECTION: int -CAP_PROP_XI_SENSOR_BOARD_TEMP: int -CAP_PROP_XI_SENSOR_CLOCK_FREQ_HZ: int -CAP_PROP_XI_SENSOR_CLOCK_FREQ_INDEX: int -CAP_PROP_XI_SENSOR_DATA_BIT_DEPTH: int -CAP_PROP_XI_SENSOR_FEATURE_SELECTOR: int -CAP_PROP_XI_SENSOR_FEATURE_VALUE: int -CAP_PROP_XI_SENSOR_MODE: int -CAP_PROP_XI_SENSOR_OUTPUT_CHANNEL_COUNT: int -CAP_PROP_XI_SENSOR_TAPS: int -CAP_PROP_XI_SHARPNESS: int -CAP_PROP_XI_SHUTTER_TYPE: int -CAP_PROP_XI_TARGET_TEMP: int -CAP_PROP_XI_TEST_PATTERN: int -CAP_PROP_XI_TEST_PATTERN_GENERATOR_SELECTOR: int -CAP_PROP_XI_TIMEOUT: int -CAP_PROP_XI_TRANSPORT_PIXEL_FORMAT: int -CAP_PROP_XI_TRG_DELAY: int -CAP_PROP_XI_TRG_SELECTOR: int -CAP_PROP_XI_TRG_SOFTWARE: int -CAP_PROP_XI_TRG_SOURCE: int -CAP_PROP_XI_TS_RST_MODE: int -CAP_PROP_XI_TS_RST_SOURCE: int -CAP_PROP_XI_USED_FFS_SIZE: int -CAP_PROP_XI_WB_KB: int -CAP_PROP_XI_WB_KG: int -CAP_PROP_XI_WB_KR: int -CAP_PROP_XI_WIDTH: int -CAP_PROP_ZOOM: int -CAP_PVAPI: int -CAP_PVAPI_DECIMATION_2OUTOF16: int -CAP_PVAPI_DECIMATION_2OUTOF4: int -CAP_PVAPI_DECIMATION_2OUTOF8: int -CAP_PVAPI_DECIMATION_OFF: int -CAP_PVAPI_FSTRIGMODE_FIXEDRATE: int -CAP_PVAPI_FSTRIGMODE_FREERUN: int -CAP_PVAPI_FSTRIGMODE_SOFTWARE: int -CAP_PVAPI_FSTRIGMODE_SYNCIN1: int -CAP_PVAPI_FSTRIGMODE_SYNCIN2: int -CAP_PVAPI_PIXELFORMAT_BAYER16: int -CAP_PVAPI_PIXELFORMAT_BAYER8: int -CAP_PVAPI_PIXELFORMAT_BGR24: int -CAP_PVAPI_PIXELFORMAT_BGRA32: int -CAP_PVAPI_PIXELFORMAT_MONO16: int -CAP_PVAPI_PIXELFORMAT_MONO8: int -CAP_PVAPI_PIXELFORMAT_RGB24: int -CAP_PVAPI_PIXELFORMAT_RGBA32: int -CAP_QT: int -CAP_REALSENSE: int -CAP_UNICAP: int -CAP_V4L: int -CAP_V4L2: int -CAP_VFW: int -CAP_WINRT: int -CAP_XIAPI: int -CAP_XINE: int -CASCADE_DO_CANNY_PRUNING: int -CASCADE_DO_ROUGH_SEARCH: int -CASCADE_FIND_BIGGEST_OBJECT: int -CASCADE_SCALE_IMAGE: int -CCL_DEFAULT: int -CCL_GRANA: int -CCL_WU: int -CC_STAT_AREA: int -CC_STAT_HEIGHT: int -CC_STAT_LEFT: int -CC_STAT_MAX: int -CC_STAT_TOP: int -CC_STAT_WIDTH: int -CHAIN_APPROX_NONE: int -CHAIN_APPROX_SIMPLE: int -CHAIN_APPROX_TC89_KCOS: int -CHAIN_APPROX_TC89_L1: int -CIRCLES_GRID_FINDER_PARAMETERS_ASYMMETRIC_GRID: int -CIRCLES_GRID_FINDER_PARAMETERS_SYMMETRIC_GRID: int -CLAHE = _mod_cv2.CLAHE -CMP_EQ: int -CMP_GE: int -CMP_GT: int -CMP_LE: int -CMP_LT: int -CMP_NE: int -COLORMAP_AUTUMN: int -COLORMAP_BONE: int -COLORMAP_CIVIDIS: int -COLORMAP_COOL: int -COLORMAP_DEEPGREEN: int -COLORMAP_HOT: int -COLORMAP_HSV: int -COLORMAP_INFERNO: int -COLORMAP_JET: int -COLORMAP_MAGMA: int -COLORMAP_OCEAN: int -COLORMAP_PARULA: int -COLORMAP_PINK: int -COLORMAP_PLASMA: int -COLORMAP_RAINBOW: int -COLORMAP_SPRING: int -COLORMAP_SUMMER: int -COLORMAP_TURBO: int -COLORMAP_TWILIGHT: int -COLORMAP_TWILIGHT_SHIFTED: int -COLORMAP_VIRIDIS: int -COLORMAP_WINTER: int -COLOR_BAYER_BG2BGR: int -COLOR_BAYER_BG2BGRA: int -COLOR_BAYER_BG2BGR_EA: int -COLOR_BAYER_BG2BGR_VNG: int -COLOR_BAYER_BG2GRAY: int -COLOR_BAYER_BG2RGB: int -COLOR_BAYER_BG2RGBA: int -COLOR_BAYER_BG2RGB_EA: int -COLOR_BAYER_BG2RGB_VNG: int -COLOR_BAYER_GB2BGR: int -COLOR_BAYER_GB2BGRA: int -COLOR_BAYER_GB2BGR_EA: int -COLOR_BAYER_GB2BGR_VNG: int -COLOR_BAYER_GB2GRAY: int -COLOR_BAYER_GB2RGB: int -COLOR_BAYER_GB2RGBA: int -COLOR_BAYER_GB2RGB_EA: int -COLOR_BAYER_GB2RGB_VNG: int -COLOR_BAYER_GR2BGR: int -COLOR_BAYER_GR2BGRA: int -COLOR_BAYER_GR2BGR_EA: int -COLOR_BAYER_GR2BGR_VNG: int -COLOR_BAYER_GR2GRAY: int -COLOR_BAYER_GR2RGB: int -COLOR_BAYER_GR2RGBA: int -COLOR_BAYER_GR2RGB_EA: int -COLOR_BAYER_GR2RGB_VNG: int -COLOR_BAYER_RG2BGR: int -COLOR_BAYER_RG2BGRA: int -COLOR_BAYER_RG2BGR_EA: int -COLOR_BAYER_RG2BGR_VNG: int -COLOR_BAYER_RG2GRAY: int -COLOR_BAYER_RG2RGB: int -COLOR_BAYER_RG2RGBA: int -COLOR_BAYER_RG2RGB_EA: int -COLOR_BAYER_RG2RGB_VNG: int -COLOR_BGR2BGR555: int -COLOR_BGR2BGR565: int -COLOR_BGR2BGRA: int -COLOR_BGR2GRAY: int -COLOR_BGR2HLS: int -COLOR_BGR2HLS_FULL: int -COLOR_BGR2HSV: int -COLOR_BGR2HSV_FULL: int -COLOR_BGR2LAB: int -COLOR_BGR2LUV: int -COLOR_BGR2Lab: int -COLOR_BGR2Luv: int -COLOR_BGR2RGB: int -COLOR_BGR2RGBA: int -COLOR_BGR2XYZ: int -COLOR_BGR2YCR_CB: int -COLOR_BGR2YCrCb: int -COLOR_BGR2YUV: int -COLOR_BGR2YUV_I420: int -COLOR_BGR2YUV_IYUV: int -COLOR_BGR2YUV_YV12: int -COLOR_BGR5552BGR: int -COLOR_BGR5552BGRA: int -COLOR_BGR5552GRAY: int -COLOR_BGR5552RGB: int -COLOR_BGR5552RGBA: int -COLOR_BGR5652BGR: int -COLOR_BGR5652BGRA: int -COLOR_BGR5652GRAY: int -COLOR_BGR5652RGB: int -COLOR_BGR5652RGBA: int -COLOR_BGRA2BGR: int -COLOR_BGRA2BGR555: int -COLOR_BGRA2BGR565: int -COLOR_BGRA2GRAY: int -COLOR_BGRA2RGB: int -COLOR_BGRA2RGBA: int -COLOR_BGRA2YUV_I420: int -COLOR_BGRA2YUV_IYUV: int -COLOR_BGRA2YUV_YV12: int -COLOR_BayerBG2BGR: int -COLOR_BayerBG2BGRA: int -COLOR_BayerBG2BGR_EA: int -COLOR_BayerBG2BGR_VNG: int -COLOR_BayerBG2GRAY: int -COLOR_BayerBG2RGB: int -COLOR_BayerBG2RGBA: int -COLOR_BayerBG2RGB_EA: int -COLOR_BayerBG2RGB_VNG: int -COLOR_BayerGB2BGR: int -COLOR_BayerGB2BGRA: int -COLOR_BayerGB2BGR_EA: int -COLOR_BayerGB2BGR_VNG: int -COLOR_BayerGB2GRAY: int -COLOR_BayerGB2RGB: int -COLOR_BayerGB2RGBA: int -COLOR_BayerGB2RGB_EA: int -COLOR_BayerGB2RGB_VNG: int -COLOR_BayerGR2BGR: int -COLOR_BayerGR2BGRA: int -COLOR_BayerGR2BGR_EA: int -COLOR_BayerGR2BGR_VNG: int -COLOR_BayerGR2GRAY: int -COLOR_BayerGR2RGB: int -COLOR_BayerGR2RGBA: int -COLOR_BayerGR2RGB_EA: int -COLOR_BayerGR2RGB_VNG: int -COLOR_BayerRG2BGR: int -COLOR_BayerRG2BGRA: int -COLOR_BayerRG2BGR_EA: int -COLOR_BayerRG2BGR_VNG: int -COLOR_BayerRG2GRAY: int -COLOR_BayerRG2RGB: int -COLOR_BayerRG2RGBA: int -COLOR_BayerRG2RGB_EA: int -COLOR_BayerRG2RGB_VNG: int -COLOR_COLORCVT_MAX: int -COLOR_GRAY2BGR: int -COLOR_GRAY2BGR555: int -COLOR_GRAY2BGR565: int -COLOR_GRAY2BGRA: int -COLOR_GRAY2RGB: int -COLOR_GRAY2RGBA: int -COLOR_HLS2BGR: int -COLOR_HLS2BGR_FULL: int -COLOR_HLS2RGB: int -COLOR_HLS2RGB_FULL: int -COLOR_HSV2BGR: int -COLOR_HSV2BGR_FULL: int -COLOR_HSV2RGB: int -COLOR_HSV2RGB_FULL: int -COLOR_LAB2BGR: int -COLOR_LAB2LBGR: int -COLOR_LAB2LRGB: int -COLOR_LAB2RGB: int -COLOR_LBGR2LAB: int -COLOR_LBGR2LUV: int -COLOR_LBGR2Lab: int -COLOR_LBGR2Luv: int -COLOR_LRGB2LAB: int -COLOR_LRGB2LUV: int -COLOR_LRGB2Lab: int -COLOR_LRGB2Luv: int -COLOR_LUV2BGR: int -COLOR_LUV2LBGR: int -COLOR_LUV2LRGB: int -COLOR_LUV2RGB: int -COLOR_Lab2BGR: int -COLOR_Lab2LBGR: int -COLOR_Lab2LRGB: int -COLOR_Lab2RGB: int -COLOR_Luv2BGR: int -COLOR_Luv2LBGR: int -COLOR_Luv2LRGB: int -COLOR_Luv2RGB: int -COLOR_M_RGBA2RGBA: int -COLOR_RGB2BGR: int -COLOR_RGB2BGR555: int -COLOR_RGB2BGR565: int -COLOR_RGB2BGRA: int -COLOR_RGB2GRAY: int -COLOR_RGB2HLS: int -COLOR_RGB2HLS_FULL: int -COLOR_RGB2HSV: int -COLOR_RGB2HSV_FULL: int -COLOR_RGB2LAB: int -COLOR_RGB2LUV: int -COLOR_RGB2Lab: int -COLOR_RGB2Luv: int -COLOR_RGB2RGBA: int -COLOR_RGB2XYZ: int -COLOR_RGB2YCR_CB: int -COLOR_RGB2YCrCb: int -COLOR_RGB2YUV: int -COLOR_RGB2YUV_I420: int -COLOR_RGB2YUV_IYUV: int -COLOR_RGB2YUV_YV12: int -COLOR_RGBA2BGR: int -COLOR_RGBA2BGR555: int -COLOR_RGBA2BGR565: int -COLOR_RGBA2BGRA: int -COLOR_RGBA2GRAY: int -COLOR_RGBA2M_RGBA: int -COLOR_RGBA2RGB: int -COLOR_RGBA2YUV_I420: int -COLOR_RGBA2YUV_IYUV: int -COLOR_RGBA2YUV_YV12: int -COLOR_RGBA2mRGBA: int -COLOR_XYZ2BGR: int -COLOR_XYZ2RGB: int -COLOR_YCR_CB2BGR: int -COLOR_YCR_CB2RGB: int -COLOR_YCrCb2BGR: int -COLOR_YCrCb2RGB: int -COLOR_YUV2BGR: int -COLOR_YUV2BGRA_I420: int -COLOR_YUV2BGRA_IYUV: int -COLOR_YUV2BGRA_NV12: int -COLOR_YUV2BGRA_NV21: int -COLOR_YUV2BGRA_UYNV: int -COLOR_YUV2BGRA_UYVY: int -COLOR_YUV2BGRA_Y422: int -COLOR_YUV2BGRA_YUNV: int -COLOR_YUV2BGRA_YUY2: int -COLOR_YUV2BGRA_YUYV: int -COLOR_YUV2BGRA_YV12: int -COLOR_YUV2BGRA_YVYU: int -COLOR_YUV2BGR_I420: int -COLOR_YUV2BGR_IYUV: int -COLOR_YUV2BGR_NV12: int -COLOR_YUV2BGR_NV21: int -COLOR_YUV2BGR_UYNV: int -COLOR_YUV2BGR_UYVY: int -COLOR_YUV2BGR_Y422: int -COLOR_YUV2BGR_YUNV: int -COLOR_YUV2BGR_YUY2: int -COLOR_YUV2BGR_YUYV: int -COLOR_YUV2BGR_YV12: int -COLOR_YUV2BGR_YVYU: int -COLOR_YUV2GRAY_420: int -COLOR_YUV2GRAY_I420: int -COLOR_YUV2GRAY_IYUV: int -COLOR_YUV2GRAY_NV12: int -COLOR_YUV2GRAY_NV21: int -COLOR_YUV2GRAY_UYNV: int -COLOR_YUV2GRAY_UYVY: int -COLOR_YUV2GRAY_Y422: int -COLOR_YUV2GRAY_YUNV: int -COLOR_YUV2GRAY_YUY2: int -COLOR_YUV2GRAY_YUYV: int -COLOR_YUV2GRAY_YV12: int -COLOR_YUV2GRAY_YVYU: int -COLOR_YUV2RGB: int -COLOR_YUV2RGBA_I420: int -COLOR_YUV2RGBA_IYUV: int -COLOR_YUV2RGBA_NV12: int -COLOR_YUV2RGBA_NV21: int -COLOR_YUV2RGBA_UYNV: int -COLOR_YUV2RGBA_UYVY: int -COLOR_YUV2RGBA_Y422: int -COLOR_YUV2RGBA_YUNV: int -COLOR_YUV2RGBA_YUY2: int -COLOR_YUV2RGBA_YUYV: int -COLOR_YUV2RGBA_YV12: int -COLOR_YUV2RGBA_YVYU: int -COLOR_YUV2RGB_I420: int -COLOR_YUV2RGB_IYUV: int -COLOR_YUV2RGB_NV12: int -COLOR_YUV2RGB_NV21: int -COLOR_YUV2RGB_UYNV: int -COLOR_YUV2RGB_UYVY: int -COLOR_YUV2RGB_Y422: int -COLOR_YUV2RGB_YUNV: int -COLOR_YUV2RGB_YUY2: int -COLOR_YUV2RGB_YUYV: int -COLOR_YUV2RGB_YV12: int -COLOR_YUV2RGB_YVYU: int -COLOR_YUV420P2BGR: int -COLOR_YUV420P2BGRA: int -COLOR_YUV420P2GRAY: int -COLOR_YUV420P2RGB: int -COLOR_YUV420P2RGBA: int -COLOR_YUV420SP2BGR: int -COLOR_YUV420SP2BGRA: int -COLOR_YUV420SP2GRAY: int -COLOR_YUV420SP2RGB: int -COLOR_YUV420SP2RGBA: int -COLOR_YUV420p2BGR: int -COLOR_YUV420p2BGRA: int -COLOR_YUV420p2GRAY: int -COLOR_YUV420p2RGB: int -COLOR_YUV420p2RGBA: int -COLOR_YUV420sp2BGR: int -COLOR_YUV420sp2BGRA: int -COLOR_YUV420sp2GRAY: int -COLOR_YUV420sp2RGB: int -COLOR_YUV420sp2RGBA: int -COLOR_mRGBA2RGBA: int -CONTOURS_MATCH_I1: int -CONTOURS_MATCH_I2: int -CONTOURS_MATCH_I3: int -COVAR_COLS: int -COVAR_NORMAL: int -COVAR_ROWS: int -COVAR_SCALE: int -COVAR_SCRAMBLED: int -COVAR_USE_AVG: int -CV_16S: int -CV_16SC1: int -CV_16SC2: int -CV_16SC3: int -CV_16SC4: int -CV_16U: int -CV_16UC1: int -CV_16UC2: int -CV_16UC3: int -CV_16UC4: int -CV_32F: int -CV_32FC1: int -CV_32FC2: int -CV_32FC3: int -CV_32FC4: int -CV_32S: int -CV_32SC1: int -CV_32SC2: int -CV_32SC3: int -CV_32SC4: int -CV_64F: int -CV_64FC1: int -CV_64FC2: int -CV_64FC3: int -CV_64FC4: int -CV_8S: int -CV_8SC1: int -CV_8SC2: int -CV_8SC3: int -CV_8SC4: int -CV_8U: int -CV_8UC1: int -CV_8UC2: int -CV_8UC3: int -CV_8UC4: int -CalibrateCRF = _mod_cv2.CalibrateCRF -CalibrateDebevec = _mod_cv2.CalibrateDebevec -CalibrateRobertson = _mod_cv2.CalibrateRobertson -def CamShift(probImage, window, criteria) -> typing.Any: - 'CamShift(probImage, window, criteria) -> retval, window\n. @brief Finds an object center, size, and orientation.\n. \n. @param probImage Back projection of the object histogram. See calcBackProject.\n. @param window Initial search window.\n. @param criteria Stop criteria for the underlying meanShift.\n. returns\n. (in old interfaces) Number of iterations CAMSHIFT took to converge\n. The function implements the CAMSHIFT object tracking algorithm @cite Bradski98 . First, it finds an\n. object center using meanShift and then adjusts the window size and finds the optimal rotation. The\n. function returns the rotated rectangle structure that includes the object position, size, and\n. orientation. The next position of the search window can be obtained with RotatedRect::boundingRect()\n. \n. See the OpenCV sample camshiftdemo.c that tracks colored objects.\n. \n. @note\n. - (Python) A sample explaining the camshift tracking algorithm can be found at\n. opencv_source_code/samples/python/camshift.py' - ... - -def Canny(image: Mat, threshold1, threshold2, edges=..., apertureSize=..., L2gradient=...) -> typing.Any: - 'Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]]) -> edges\n. @brief Finds edges in an image using the Canny algorithm @cite Canny86 .\n. \n. The function finds edges in the input image and marks them in the output map edges using the\n. Canny algorithm. The smallest value between threshold1 and threshold2 is used for edge linking. The\n. largest value is used to find initial segments of strong edges. See\n. \n. \n. @param image 8-bit input image.\n. @param edges output edge map; single channels 8-bit image, which has the same size as image .\n. @param threshold1 first threshold for the hysteresis procedure.\n. @param threshold2 second threshold for the hysteresis procedure.\n. @param apertureSize aperture size for the Sobel operator.\n. @param L2gradient a flag, indicating whether a more accurate \\f$L_2\\f$ norm\n. \\f$=\\sqrt{(dI/dx)^2 + (dI/dy)^2}\\f$ should be used to calculate the image gradient magnitude (\n. L2gradient=true ), or whether the default \\f$L_1\\f$ norm \\f$=|dI/dx|+|dI/dy|\\f$ is enough (\n. L2gradient=false ).\n\n\n\nCanny(dx, dy, threshold1, threshold2[, edges[, L2gradient]]) -> edges\n. \\overload\n. \n. Finds edges in an image using the Canny algorithm with custom image gradient.\n. \n. @param dx 16-bit x derivative of input image (CV_16SC1 or CV_16SC3).\n. @param dy 16-bit y derivative of input image (same type as dx).\n. @param edges output edge map; single channels 8-bit image, which has the same size as image .\n. @param threshold1 first threshold for the hysteresis procedure.\n. @param threshold2 second threshold for the hysteresis procedure.\n. @param L2gradient a flag, indicating whether a more accurate \\f$L_2\\f$ norm\n. \\f$=\\sqrt{(dI/dx)^2 + (dI/dy)^2}\\f$ should be used to calculate the image gradient magnitude (\n. L2gradient=true ), or whether the default \\f$L_1\\f$ norm \\f$=|dI/dx|+|dI/dy|\\f$ is enough (\n. L2gradient=false ).' - ... - -CascadeClassifier = _mod_cv2.CascadeClassifier -def CascadeClassifier_convert(oldcascade, newcascade) -> typing.Any: - 'CascadeClassifier_convert(oldcascade, newcascade) -> retval\n.' - ... - -CirclesGridFinderParameters = _mod_cv2.CirclesGridFinderParameters -CirclesGridFinderParameters_ASYMMETRIC_GRID: int -CirclesGridFinderParameters_SYMMETRIC_GRID: int -DCT_INVERSE: int -DCT_ROWS: int -DECOMP_CHOLESKY: int -DECOMP_EIG: int -DECOMP_LU: int -DECOMP_NORMAL: int -DECOMP_QR: int -DECOMP_SVD: int -DESCRIPTOR_MATCHER_BRUTEFORCE: int -DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMING: int -DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMINGLUT: int -DESCRIPTOR_MATCHER_BRUTEFORCE_L1: int -DESCRIPTOR_MATCHER_BRUTEFORCE_SL2: int -DESCRIPTOR_MATCHER_FLANNBASED: int -DFT_COMPLEX_INPUT: int -DFT_COMPLEX_OUTPUT: int -DFT_INVERSE: int -DFT_REAL_OUTPUT: int -DFT_ROWS: int -DFT_SCALE: int -DISOPTICAL_FLOW_PRESET_FAST: int -DISOPTICAL_FLOW_PRESET_MEDIUM: int -DISOPTICAL_FLOW_PRESET_ULTRAFAST: int -DISOpticalFlow = _mod_cv2.DISOpticalFlow -DISOpticalFlow_PRESET_FAST: int -DISOpticalFlow_PRESET_MEDIUM: int -DISOpticalFlow_PRESET_ULTRAFAST: int -def DISOpticalFlow_create(preset=...) -> typing.Any: - 'DISOpticalFlow_create([, preset]) -> retval\n. @brief Creates an instance of DISOpticalFlow\n. \n. @param preset one of PRESET_ULTRAFAST, PRESET_FAST and PRESET_MEDIUM' - ... - -DIST_C: int -DIST_FAIR: int -DIST_HUBER: int -DIST_L1: int -DIST_L12: int -DIST_L2: int -DIST_LABEL_CCOMP: int -DIST_LABEL_PIXEL: int -DIST_MASK_3: int -DIST_MASK_5: int -DIST_MASK_PRECISE: int -DIST_USER: int -DIST_WELSCH: int -DMatch = _mod_cv2.DMatch -DRAW_MATCHES_FLAGS_DEFAULT: int -DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG: int -DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS: int -DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS: int -DenseOpticalFlow = _mod_cv2.DenseOpticalFlow -DescriptorMatcher = _mod_cv2.DescriptorMatcher -DescriptorMatcher_BRUTEFORCE: int -DescriptorMatcher_BRUTEFORCE_HAMMING: int -DescriptorMatcher_BRUTEFORCE_HAMMINGLUT: int -DescriptorMatcher_BRUTEFORCE_L1: int -DescriptorMatcher_BRUTEFORCE_SL2: int -DescriptorMatcher_FLANNBASED: int -def DescriptorMatcher_create(descriptorMatcherType) -> typing.Any: - 'DescriptorMatcher_create(descriptorMatcherType) -> retval\n. @brief Creates a descriptor matcher of a given type with the default parameters (using default\n. constructor).\n. \n. @param descriptorMatcherType Descriptor matcher type. Now the following matcher types are\n. supported:\n. - `BruteForce` (it uses L2 )\n. - `BruteForce-L1`\n. - `BruteForce-Hamming`\n. - `BruteForce-Hamming(2)`\n. - `FlannBased`\n\n\n\nDescriptorMatcher_create(matcherType) -> retval\n.' - ... - -DrawMatchesFlags_DEFAULT: int -DrawMatchesFlags_DRAW_OVER_OUTIMG: int -DrawMatchesFlags_DRAW_RICH_KEYPOINTS: int -DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS: int -def EMD(signature1, signature2, distType, cost=..., lowerBound=..., flow=...) -> typing.Any: - 'EMD(signature1, signature2, distType[, cost[, lowerBound[, flow]]]) -> retval, lowerBound, flow\n. @brief Computes the "minimal work" distance between two weighted point configurations.\n. \n. The function computes the earth mover distance and/or a lower boundary of the distance between the\n. two weighted point configurations. One of the applications described in @cite RubnerSept98,\n. @cite Rubner2000 is multi-dimensional histogram comparison for image retrieval. EMD is a transportation\n. problem that is solved using some modification of a simplex algorithm, thus the complexity is\n. exponential in the worst case, though, on average it is much faster. In the case of a real metric\n. the lower boundary can be calculated even faster (using linear-time algorithm) and it can be used\n. to determine roughly whether the two signatures are far enough so that they cannot relate to the\n. same object.\n. \n. @param signature1 First signature, a \\f$\\texttt{size1}\\times \\texttt{dims}+1\\f$ floating-point matrix.\n. Each row stores the point weight followed by the point coordinates. The matrix is allowed to have\n. a single column (weights only) if the user-defined cost matrix is used. The weights must be\n. non-negative and have at least one non-zero value.\n. @param signature2 Second signature of the same format as signature1 , though the number of rows\n. may be different. The total weights may be different. In this case an extra "dummy" point is added\n. to either signature1 or signature2. The weights must be non-negative and have at least one non-zero\n. value.\n. @param distType Used metric. See #DistanceTypes.\n. @param cost User-defined \\f$\\texttt{size1}\\times \\texttt{size2}\\f$ cost matrix. Also, if a cost matrix\n. is used, lower boundary lowerBound cannot be calculated because it needs a metric function.\n. @param lowerBound Optional input/output parameter: lower boundary of a distance between the two\n. signatures that is a distance between mass centers. The lower boundary may not be calculated if\n. the user-defined cost matrix is used, the total weights of point configurations are not equal, or\n. if the signatures consist of weights only (the signature matrices have a single column). You\n. **must** initialize \\*lowerBound . If the calculated distance between mass centers is greater or\n. equal to \\*lowerBound (it means that the signatures are far enough), the function does not\n. calculate EMD. In any case \\*lowerBound is set to the calculated distance between mass centers on\n. return. Thus, if you want to calculate both distance between mass centers and EMD, \\*lowerBound\n. should be set to 0.\n. @param flow Resultant \\f$\\texttt{size1} \\times \\texttt{size2}\\f$ flow matrix: \\f$\\texttt{flow}_{i,j}\\f$ is\n. a flow from \\f$i\\f$ -th point of signature1 to \\f$j\\f$ -th point of signature2 .' - ... - -EVENT_FLAG_ALTKEY: int -EVENT_FLAG_CTRLKEY: int -EVENT_FLAG_LBUTTON: int -EVENT_FLAG_MBUTTON: int -EVENT_FLAG_RBUTTON: int -EVENT_FLAG_SHIFTKEY: int -EVENT_LBUTTONDBLCLK: int -EVENT_LBUTTONDOWN: int -EVENT_LBUTTONUP: int -EVENT_MBUTTONDBLCLK: int -EVENT_MBUTTONDOWN: int -EVENT_MBUTTONUP: int -EVENT_MOUSEHWHEEL: int -EVENT_MOUSEMOVE: int -EVENT_MOUSEWHEEL: int -EVENT_RBUTTONDBLCLK: int -EVENT_RBUTTONDOWN: int -EVENT_RBUTTONUP: int -FAST_FEATURE_DETECTOR_FAST_N: int -FAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION: int -FAST_FEATURE_DETECTOR_THRESHOLD: int -FAST_FEATURE_DETECTOR_TYPE_5_8: int -FAST_FEATURE_DETECTOR_TYPE_7_12: int -FAST_FEATURE_DETECTOR_TYPE_9_16: int -FILE_NODE_EMPTY: int -FILE_NODE_FLOAT: int -FILE_NODE_FLOW: int -FILE_NODE_INT: int -FILE_NODE_MAP: int -FILE_NODE_NAMED: int -FILE_NODE_NONE: int -FILE_NODE_REAL: int -FILE_NODE_SEQ: int -FILE_NODE_STR: int -FILE_NODE_STRING: int -FILE_NODE_TYPE_MASK: int -FILE_NODE_UNIFORM: int -FILE_STORAGE_APPEND: int -FILE_STORAGE_BASE64: int -FILE_STORAGE_FORMAT_AUTO: int -FILE_STORAGE_FORMAT_JSON: int -FILE_STORAGE_FORMAT_MASK: int -FILE_STORAGE_FORMAT_XML: int -FILE_STORAGE_FORMAT_YAML: int -FILE_STORAGE_INSIDE_MAP: int -FILE_STORAGE_MEMORY: int -FILE_STORAGE_NAME_EXPECTED: int -FILE_STORAGE_READ: int -FILE_STORAGE_UNDEFINED: int -FILE_STORAGE_VALUE_EXPECTED: int -FILE_STORAGE_WRITE: int -FILE_STORAGE_WRITE_BASE64: int -FILLED: int -FILTER_SCHARR: int -FLOODFILL_FIXED_RANGE: int -FLOODFILL_MASK_ONLY: int -FM_7POINT: int -FM_8POINT: int -FM_LMEDS: int -FM_RANSAC: int -FONT_HERSHEY_COMPLEX: int -FONT_HERSHEY_COMPLEX_SMALL: int -FONT_HERSHEY_DUPLEX: int -FONT_HERSHEY_PLAIN: int -FONT_HERSHEY_SCRIPT_COMPLEX: int -FONT_HERSHEY_SCRIPT_SIMPLEX: int -FONT_HERSHEY_SIMPLEX: int -FONT_HERSHEY_TRIPLEX: int -FONT_ITALIC: int -FORMATTER_FMT_C: int -FORMATTER_FMT_CSV: int -FORMATTER_FMT_DEFAULT: int -FORMATTER_FMT_MATLAB: int -FORMATTER_FMT_NUMPY: int -FORMATTER_FMT_PYTHON: int -FarnebackOpticalFlow = _mod_cv2.FarnebackOpticalFlow -def FarnebackOpticalFlow_create(numLevels=..., pyrScale=..., fastPyramids=..., winSize=..., numIters=..., polyN=..., polySigma=..., flags: int = ...) -> typing.Any: - 'FarnebackOpticalFlow_create([, numLevels[, pyrScale[, fastPyramids[, winSize[, numIters[, polyN[, polySigma[, flags]]]]]]]]) -> retval\n.' - ... - -FastFeatureDetector = _mod_cv2.FastFeatureDetector -FastFeatureDetector_FAST_N: int -FastFeatureDetector_NONMAX_SUPPRESSION: int -FastFeatureDetector_THRESHOLD: int -FastFeatureDetector_TYPE_5_8: int -FastFeatureDetector_TYPE_7_12: int -FastFeatureDetector_TYPE_9_16: int -def FastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...) -> typing.Any: - 'FastFeatureDetector_create([, threshold[, nonmaxSuppression[, type]]]) -> retval\n.' - ... - -Feature2D = _mod_cv2.Feature2D -FileNode = _mod_cv2.FileNode -FileNode_EMPTY: int -FileNode_FLOAT: int -FileNode_FLOW: int -FileNode_INT: int -FileNode_MAP: int -FileNode_NAMED: int -FileNode_NONE: int -FileNode_REAL: int -FileNode_SEQ: int -FileNode_STR: int -FileNode_STRING: int -FileNode_TYPE_MASK: int -FileNode_UNIFORM: int -FileStorage = _mod_cv2.FileStorage -FileStorage_APPEND: int -FileStorage_BASE64: int -FileStorage_FORMAT_AUTO: int -FileStorage_FORMAT_JSON: int -FileStorage_FORMAT_MASK: int -FileStorage_FORMAT_XML: int -FileStorage_FORMAT_YAML: int -FileStorage_INSIDE_MAP: int -FileStorage_MEMORY: int -FileStorage_NAME_EXPECTED: int -FileStorage_READ: int -FileStorage_UNDEFINED: int -FileStorage_VALUE_EXPECTED: int -FileStorage_WRITE: int -FileStorage_WRITE_BASE64: int -FlannBasedMatcher = _mod_cv2.FlannBasedMatcher -def FlannBasedMatcher_create() -> typing.Any: - 'FlannBasedMatcher_create() -> retval\n.' - ... - -Formatter_FMT_C: int -Formatter_FMT_CSV: int -Formatter_FMT_DEFAULT: int -Formatter_FMT_MATLAB: int -Formatter_FMT_NUMPY: int -Formatter_FMT_PYTHON: int -GC_BGD: int -GC_EVAL: int -GC_EVAL_FREEZE_MODEL: int -GC_FGD: int -GC_INIT_WITH_MASK: int -GC_INIT_WITH_RECT: int -GC_PR_BGD: int -GC_PR_FGD: int -GEMM_1_T: int -GEMM_2_T: int -GEMM_3_T: int -GFTTDetector = _mod_cv2.GFTTDetector -def GFTTDetector_create(maxCorners=..., qualityLevel=..., minDistance=..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: - 'GFTTDetector_create([, maxCorners[, qualityLevel[, minDistance[, blockSize[, useHarrisDetector[, k]]]]]]) -> retval\n. \n\n\n\nGFTTDetector_create(maxCorners, qualityLevel, minDistance, blockSize, gradiantSize[, useHarrisDetector[, k]]) -> retval\n.' - ... - -def GaussianBlur(src: Mat, ksize, sigmaX, dts: Mat = ..., sigmaY=..., borderType=...) -> typing.Any: - "GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]]) -> dst\n. @brief Blurs an image using a Gaussian filter.\n. \n. The function convolves the source image with the specified Gaussian kernel. In-place filtering is\n. supported.\n. \n. @param src input image; the image can have any number of channels, which are processed\n. independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param ksize Gaussian kernel size. ksize.width and ksize.height can differ but they both must be\n. positive and odd. Or, they can be zero's and then they are computed from sigma.\n. @param sigmaX Gaussian kernel standard deviation in X direction.\n. @param sigmaY Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be\n. equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height,\n. respectively (see #getGaussianKernel for details); to fully control the result regardless of\n. possible future modifications of all this semantics, it is recommended to specify all of ksize,\n. sigmaX, and sigmaY.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. \n. @sa sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur" - ... - -GeneralizedHough = _mod_cv2.GeneralizedHough -GeneralizedHoughBallard = _mod_cv2.GeneralizedHoughBallard -GeneralizedHoughGuil = _mod_cv2.GeneralizedHoughGuil -HISTCMP_BHATTACHARYYA: int -HISTCMP_CHISQR: int -HISTCMP_CHISQR_ALT: int -HISTCMP_CORREL: int -HISTCMP_HELLINGER: int -HISTCMP_INTERSECT: int -HISTCMP_KL_DIV: int -HOGDESCRIPTOR_DEFAULT_NLEVELS: int -HOGDESCRIPTOR_DESCR_FORMAT_COL_BY_COL: int -HOGDESCRIPTOR_DESCR_FORMAT_ROW_BY_ROW: int -HOGDESCRIPTOR_L2HYS: int -HOGDescriptor = _mod_cv2.HOGDescriptor -HOGDescriptor_DEFAULT_NLEVELS: int -HOGDescriptor_DESCR_FORMAT_COL_BY_COL: int -HOGDescriptor_DESCR_FORMAT_ROW_BY_ROW: int -HOGDescriptor_L2Hys: int -def HOGDescriptor_getDaimlerPeopleDetector() -> typing.Any: - 'HOGDescriptor_getDaimlerPeopleDetector() -> retval\n. @brief Returns coefficients of the classifier trained for people detection (for 48x96 windows).' - ... - -def HOGDescriptor_getDefaultPeopleDetector() -> typing.Any: - 'HOGDescriptor_getDefaultPeopleDetector() -> retval\n. @brief Returns coefficients of the classifier trained for people detection (for 64x128 windows).' - ... - -HOUGH_GRADIENT: int -HOUGH_GRADIENT_ALT: int -HOUGH_MULTI_SCALE: int -HOUGH_PROBABILISTIC: int -HOUGH_STANDARD: int -def HoughCircles(image: Mat, method: int, dp, minDist, circles=..., param1=..., param2=..., minRadius=..., maxRadius=...) -> typing.Any: - 'HoughCircles(image, method, dp, minDist[, circles[, param1[, param2[, minRadius[, maxRadius]]]]]) -> circles\n. @brief Finds circles in a grayscale image using the Hough transform.\n. \n. The function finds circles in a grayscale image using a modification of the Hough transform.\n. \n. Example: :\n. @include snippets/imgproc_HoughLinesCircles.cpp\n. \n. @note Usually the function detects the centers of circles well. However, it may fail to find correct\n. radii. You can assist to the function by specifying the radius range ( minRadius and maxRadius ) if\n. you know it. Or, in the case of #HOUGH_GRADIENT method you may set maxRadius to a negative number\n. to return centers only without radius search, and find the correct radius using an additional procedure.\n. \n. It also helps to smooth image a bit unless it\'s already soft. For example,\n. GaussianBlur() with 7x7 kernel and 1.5x1.5 sigma or similar blurring may help.\n. \n. @param image 8-bit, single-channel, grayscale input image.\n. @param circles Output vector of found circles. Each vector is encoded as 3 or 4 element\n. floating-point vector \\f$(x, y, radius)\\f$ or \\f$(x, y, radius, votes)\\f$ .\n. @param method Detection method, see #HoughModes. The available methods are #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT.\n. @param dp Inverse ratio of the accumulator resolution to the image resolution. For example, if\n. dp=1 , the accumulator has the same resolution as the input image. If dp=2 , the accumulator has\n. half as big width and height. For #HOUGH_GRADIENT_ALT the recommended value is dp=1.5,\n. unless some small very circles need to be detected.\n. @param minDist Minimum distance between the centers of the detected circles. If the parameter is\n. too small, multiple neighbor circles may be falsely detected in addition to a true one. If it is\n. too large, some circles may be missed.\n. @param param1 First method-specific parameter. In case of #HOUGH_GRADIENT and #HOUGH_GRADIENT_ALT,\n. it is the higher threshold of the two passed to the Canny edge detector (the lower one is twice smaller).\n. Note that #HOUGH_GRADIENT_ALT uses #Scharr algorithm to compute image derivatives, so the threshold value\n. shough normally be higher, such as 300 or normally exposed and contrasty images.\n. @param param2 Second method-specific parameter. In case of #HOUGH_GRADIENT, it is the\n. accumulator threshold for the circle centers at the detection stage. The smaller it is, the more\n. false circles may be detected. Circles, corresponding to the larger accumulator values, will be\n. returned first. In the case of #HOUGH_GRADIENT_ALT algorithm, this is the circle "perfectness" measure.\n. The closer it to 1, the better shaped circles algorithm selects. In most cases 0.9 should be fine.\n. If you want get better detection of small circles, you may decrease it to 0.85, 0.8 or even less.\n. But then also try to limit the search range [minRadius, maxRadius] to avoid many false circles.\n. @param minRadius Minimum circle radius.\n. @param maxRadius Maximum circle radius. If <= 0, uses the maximum image dimension. If < 0, #HOUGH_GRADIENT returns\n. centers without finding the radius. #HOUGH_GRADIENT_ALT always computes circle radiuses.\n. \n. @sa fitEllipse, minEnclosingCircle' - ... - -def HoughLines(image: Mat, rho, theta, threshold, lines=..., srn=..., stn=..., min_theta=..., max_theta=...) -> typing.Any: - 'HoughLines(image, rho, theta, threshold[, lines[, srn[, stn[, min_theta[, max_theta]]]]]) -> lines\n. @brief Finds lines in a binary image using the standard Hough transform.\n. \n. The function implements the standard or standard multi-scale Hough transform algorithm for line\n. detection. See for a good explanation of Hough\n. transform.\n. \n. @param image 8-bit, single-channel binary source image. The image may be modified by the function.\n. @param lines Output vector of lines. Each line is represented by a 2 or 3 element vector\n. \\f$(\\rho, \\theta)\\f$ or \\f$(\\rho, \\theta, \\textrm{votes})\\f$ . \\f$\\rho\\f$ is the distance from the coordinate origin \\f$(0,0)\\f$ (top-left corner of\n. the image). \\f$\\theta\\f$ is the line rotation angle in radians (\n. \\f$0 \\sim \\textrm{vertical line}, \\pi/2 \\sim \\textrm{horizontal line}\\f$ ).\n. \\f$\\textrm{votes}\\f$ is the value of accumulator.\n. @param rho Distance resolution of the accumulator in pixels.\n. @param theta Angle resolution of the accumulator in radians.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ ).\n. @param srn For the multi-scale Hough transform, it is a divisor for the distance resolution rho .\n. The coarse accumulator distance resolution is rho and the accurate accumulator resolution is\n. rho/srn . If both srn=0 and stn=0 , the classical Hough transform is used. Otherwise, both these\n. parameters should be positive.\n. @param stn For the multi-scale Hough transform, it is a divisor for the distance resolution theta.\n. @param min_theta For standard and multi-scale Hough transform, minimum angle to check for lines.\n. Must fall between 0 and max_theta.\n. @param max_theta For standard and multi-scale Hough transform, maximum angle to check for lines.\n. Must fall between min_theta and CV_PI.' - ... - -def HoughLinesP(image: Mat, rho, theta, threshold, lines=..., minLineLength=..., maxLineGap=...) -> typing.Any: - 'HoughLinesP(image, rho, theta, threshold[, lines[, minLineLength[, maxLineGap]]]) -> lines\n. @brief Finds line segments in a binary image using the probabilistic Hough transform.\n. \n. The function implements the probabilistic Hough transform algorithm for line detection, described\n. in @cite Matas00\n. \n. See the line detection example below:\n. @include snippets/imgproc_HoughLinesP.cpp\n. This is a sample picture the function parameters have been tuned for:\n. \n. ![image](pics/building.jpg)\n. \n. And this is the output of the above program in case of the probabilistic Hough transform:\n. \n. ![image](pics/houghp.png)\n. \n. @param image 8-bit, single-channel binary source image. The image may be modified by the function.\n. @param lines Output vector of lines. Each line is represented by a 4-element vector\n. \\f$(x_1, y_1, x_2, y_2)\\f$ , where \\f$(x_1,y_1)\\f$ and \\f$(x_2, y_2)\\f$ are the ending points of each detected\n. line segment.\n. @param rho Distance resolution of the accumulator in pixels.\n. @param theta Angle resolution of the accumulator in radians.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ ).\n. @param minLineLength Minimum line length. Line segments shorter than that are rejected.\n. @param maxLineGap Maximum allowed gap between points on the same line to link them.\n. \n. @sa LineSegmentDetector' - ... - -def HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step, _lines=...) -> typing.Any: - "HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step[, _lines]) -> _lines\n. @brief Finds lines in a set of points using the standard Hough transform.\n. \n. The function finds lines in a set of points using a modification of the Hough transform.\n. @include snippets/imgproc_HoughLinesPointSet.cpp\n. @param _point Input vector of points. Each vector must be encoded as a Point vector \\f$(x,y)\\f$. Type must be CV_32FC2 or CV_32SC2.\n. @param _lines Output vector of found lines. Each vector is encoded as a vector \\f$(votes, rho, theta)\\f$.\n. The larger the value of 'votes', the higher the reliability of the Hough line.\n. @param lines_max Max count of hough lines.\n. @param threshold Accumulator threshold parameter. Only those lines are returned that get enough\n. votes ( \\f$>\\texttt{threshold}\\f$ )\n. @param min_rho Minimum Distance value of the accumulator in pixels.\n. @param max_rho Maximum Distance value of the accumulator in pixels.\n. @param rho_step Distance resolution of the accumulator in pixels.\n. @param min_theta Minimum angle value of the accumulator in radians.\n. @param max_theta Maximum angle value of the accumulator in radians.\n. @param theta_step Angle resolution of the accumulator in radians." - ... - -def HuMoments(m, hu=...) -> typing.Any: - 'HuMoments(m[, hu]) -> hu\n. @overload' - ... - -IMREAD_ANYCOLOR: int -IMREAD_ANYDEPTH: int -IMREAD_COLOR: int -IMREAD_GRAYSCALE: int -IMREAD_IGNORE_ORIENTATION: int -IMREAD_LOAD_GDAL: int -IMREAD_REDUCED_COLOR_2: int -IMREAD_REDUCED_COLOR_4: int -IMREAD_REDUCED_COLOR_8: int -IMREAD_REDUCED_GRAYSCALE_2: int -IMREAD_REDUCED_GRAYSCALE_4: int -IMREAD_REDUCED_GRAYSCALE_8: int -IMREAD_UNCHANGED: int -IMWRITE_EXR_TYPE: int -IMWRITE_EXR_TYPE_FLOAT: int -IMWRITE_EXR_TYPE_HALF: int -IMWRITE_JPEG2000_COMPRESSION_X1000: int -IMWRITE_JPEG_CHROMA_QUALITY: int -IMWRITE_JPEG_LUMA_QUALITY: int -IMWRITE_JPEG_OPTIMIZE: int -IMWRITE_JPEG_PROGRESSIVE: int -IMWRITE_JPEG_QUALITY: int -IMWRITE_JPEG_RST_INTERVAL: int -IMWRITE_PAM_FORMAT_BLACKANDWHITE: int -IMWRITE_PAM_FORMAT_GRAYSCALE: int -IMWRITE_PAM_FORMAT_GRAYSCALE_ALPHA: int -IMWRITE_PAM_FORMAT_NULL: int -IMWRITE_PAM_FORMAT_RGB: int -IMWRITE_PAM_FORMAT_RGB_ALPHA: int -IMWRITE_PAM_TUPLETYPE: int -IMWRITE_PNG_BILEVEL: int -IMWRITE_PNG_COMPRESSION: int -IMWRITE_PNG_STRATEGY: int -IMWRITE_PNG_STRATEGY_DEFAULT: int -IMWRITE_PNG_STRATEGY_FILTERED: int -IMWRITE_PNG_STRATEGY_FIXED: int -IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY: int -IMWRITE_PNG_STRATEGY_RLE: int -IMWRITE_PXM_BINARY: int -IMWRITE_TIFF_COMPRESSION: int -IMWRITE_TIFF_RESUNIT: int -IMWRITE_TIFF_XDPI: int -IMWRITE_TIFF_YDPI: int -IMWRITE_WEBP_QUALITY: int -INPAINT_NS: int -INPAINT_TELEA: int -INTERSECT_FULL: int -INTERSECT_NONE: int -INTERSECT_PARTIAL: int -INTER_AREA: int -INTER_BITS: int -INTER_BITS2: int -INTER_CUBIC: int -INTER_LANCZOS4: int -INTER_LINEAR: int -INTER_LINEAR_EXACT: int -INTER_MAX: int -INTER_NEAREST: int -INTER_TAB_SIZE: int -INTER_TAB_SIZE2: int -KAZE = _mod_cv2.KAZE -KAZE_DIFF_CHARBONNIER: int -KAZE_DIFF_PM_G1: int -KAZE_DIFF_PM_G2: int -KAZE_DIFF_WEICKERT: int -def KAZE_create(extended=..., upright=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...) -> typing.Any: - 'KAZE_create([, extended[, upright[, threshold[, nOctaves[, nOctaveLayers[, diffusivity]]]]]]) -> retval\n. @brief The KAZE constructor\n. \n. @param extended Set to enable extraction of extended (128-byte) descriptor.\n. @param upright Set to enable use of upright descriptors (non rotation-invariant).\n. @param threshold Detector response threshold to accept point\n. @param nOctaves Maximum octave evolution of the image\n. @param nOctaveLayers Default number of sublevels per scale level\n. @param diffusivity Diffusivity type. DIFF_PM_G1, DIFF_PM_G2, DIFF_WEICKERT or\n. DIFF_CHARBONNIER' - ... - -KMEANS_PP_CENTERS: int -KMEANS_RANDOM_CENTERS: int -KMEANS_USE_INITIAL_LABELS: int -KalmanFilter = _mod_cv2.KalmanFilter -KeyPoint = _mod_cv2.KeyPoint -def KeyPoint_convert(keypoints, keypointIndexes=...) -> typing.Any: - 'KeyPoint_convert(keypoints[, keypointIndexes]) -> points2f\n. This method converts vector of keypoints to vector of points or the reverse, where each keypoint is\n. assigned the same size and the same orientation.\n. \n. @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB\n. @param points2f Array of (x,y) coordinates of each keypoint\n. @param keypointIndexes Array of indexes of keypoints to be converted to points. (Acts like a mask to\n. convert only specified keypoints)\n\n\n\nKeyPoint_convert(points2f[, size[, response[, octave[, class_id]]]]) -> keypoints\n. @overload\n. @param points2f Array of (x,y) coordinates of each keypoint\n. @param keypoints Keypoints obtained from any feature detection algorithm like SIFT/SURF/ORB\n. @param size keypoint diameter\n. @param response keypoint detector response on the keypoint (that is, strength of the keypoint)\n. @param octave pyramid octave in which the keypoint has been detected\n. @param class_id object id' - ... - -def KeyPoint_overlap(kp1, kp2) -> typing.Any: - "KeyPoint_overlap(kp1, kp2) -> retval\n. This method computes overlap for pair of keypoints. Overlap is the ratio between area of keypoint\n. regions' intersection and area of keypoint regions' union (considering keypoint region as circle).\n. If they don't overlap, we get zero. If they coincide at same location with same size, we get 1.\n. @param kp1 First keypoint\n. @param kp2 Second keypoint" - ... - -LDR_SIZE: int -LINE_4: int -LINE_8: int -LINE_AA: int -LMEDS: int -LSD_REFINE_ADV: int -LSD_REFINE_NONE: int -LSD_REFINE_STD: int -def LUT(src: Mat, lut, dts: Mat = ...) -> typing.Any: - 'LUT(src, lut[, dst]) -> dst\n. @brief Performs a look-up table transform of an array.\n. \n. The function LUT fills the output array with values from the look-up table. Indices of the entries\n. are taken from the input array. That is, the function processes each element of src as follows:\n. \\f[\\texttt{dst} (I) \\leftarrow \\texttt{lut(src(I) + d)}\\f]\n. where\n. \\f[d = \\fork{0}{if \\(\\texttt{src}\\) has depth \\(\\texttt{CV_8U}\\)}{128}{if \\(\\texttt{src}\\) has depth \\(\\texttt{CV_8S}\\)}\\f]\n. @param src input array of 8-bit elements.\n. @param lut look-up table of 256 elements; in case of multi-channel input array, the table should\n. either have a single channel (in this case the same table is used for all channels) or the same\n. number of channels as in the input array.\n. @param dst output array of the same size and number of channels as src, and the same depth as lut.\n. @sa convertScaleAbs, Mat::convertTo' - ... - -def Laplacian(src: Mat, ddepth, dts: Mat = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: - 'Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst\n. @brief Calculates the Laplacian of an image.\n. \n. The function calculates the Laplacian of the source image by adding up the second x and y\n. derivatives calculated using the Sobel operator:\n. \n. \\f[\\texttt{dst} = \\Delta \\texttt{src} = \\frac{\\partial^2 \\texttt{src}}{\\partial x^2} + \\frac{\\partial^2 \\texttt{src}}{\\partial y^2}\\f]\n. \n. This is done when `ksize > 1`. When `ksize == 1`, the Laplacian is computed by filtering the image\n. with the following \\f$3 \\times 3\\f$ aperture:\n. \n. \\f[\\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\\f]\n. \n. @param src Source image.\n. @param dst Destination image of the same size and the same number of channels as src .\n. @param ddepth Desired depth of the destination image.\n. @param ksize Aperture size used to compute the second-derivative filters. See #getDerivKernels for\n. details. The size must be positive and odd.\n. @param scale Optional scale factor for the computed Laplacian values. By default, no scaling is\n. applied. See #getDerivKernels for details.\n. @param delta Optional delta value that is added to the results prior to storing them in dst .\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa Sobel, Scharr' - ... - -LineSegmentDetector = _mod_cv2.LineSegmentDetector -MARKER_CROSS: int -MARKER_DIAMOND: int -MARKER_SQUARE: int -MARKER_STAR: int -MARKER_TILTED_CROSS: int -MARKER_TRIANGLE_DOWN: int -MARKER_TRIANGLE_UP: int -MAT_AUTO_STEP: int -MAT_CONTINUOUS_FLAG: int -MAT_DEPTH_MASK: int -MAT_MAGIC_MASK: int -MAT_MAGIC_VAL: int -MAT_SUBMATRIX_FLAG: int -MAT_TYPE_MASK: int -MIXED_CLONE: int -MONOCHROME_TRANSFER: int -MORPH_BLACKHAT: int -MORPH_CLOSE: int -MORPH_CROSS: int -MORPH_DILATE: int -MORPH_ELLIPSE: int -MORPH_ERODE: int -MORPH_GRADIENT: int -MORPH_HITMISS: int -MORPH_OPEN: int -MORPH_RECT: int -MORPH_TOPHAT: int -MOTION_AFFINE: int -MOTION_EUCLIDEAN: int -MOTION_HOMOGRAPHY: int -MOTION_TRANSLATION: int -MSER = _mod_cv2.MSER -def MSER_create(_delta=..., _min_area=..., _max_area=..., _max_variation=..., _min_diversity=..., _max_evolution=..., _area_threshold=..., _min_margin=..., _edge_blur_size=...) -> typing.Any: - 'MSER_create([, _delta[, _min_area[, _max_area[, _max_variation[, _min_diversity[, _max_evolution[, _area_threshold[, _min_margin[, _edge_blur_size]]]]]]]]]) -> retval\n. @brief Full constructor for %MSER detector\n. \n. @param _delta it compares \\f$(size_{i}-size_{i-delta})/size_{i-delta}\\f$\n. @param _min_area prune the area which smaller than minArea\n. @param _max_area prune the area which bigger than maxArea\n. @param _max_variation prune the area have similar size to its children\n. @param _min_diversity for color image, trace back to cut off mser with diversity less than min_diversity\n. @param _max_evolution for color image, the evolution steps\n. @param _area_threshold for color image, the area threshold to cause re-initialize\n. @param _min_margin for color image, ignore too small margin\n. @param _edge_blur_size for color image, the aperture size for edge blur' - ... - -def Mahalanobis(v1, v2, icovar) -> typing.Any: - 'Mahalanobis(v1, v2, icovar) -> retval\n. @brief Calculates the Mahalanobis distance between two vectors.\n. \n. The function cv::Mahalanobis calculates and returns the weighted distance between two vectors:\n. \\f[d( \\texttt{vec1} , \\texttt{vec2} )= \\sqrt{\\sum_{i,j}{\\texttt{icovar(i,j)}\\cdot(\\texttt{vec1}(I)-\\texttt{vec2}(I))\\cdot(\\texttt{vec1(j)}-\\texttt{vec2(j)})} }\\f]\n. The covariance matrix may be calculated using the #calcCovarMatrix function and then inverted using\n. the invert function (preferably using the #DECOMP_SVD method, as the most accurate).\n. @param v1 first 1D input vector.\n. @param v2 second 1D input vector.\n. @param icovar inverse covariance matrix.' - ... - -Mat_AUTO_STEP: int -Mat_CONTINUOUS_FLAG: int -Mat_DEPTH_MASK: int -Mat_MAGIC_MASK: int -Mat_MAGIC_VAL: int -Mat_SUBMATRIX_FLAG: int -Mat_TYPE_MASK: int -MergeDebevec = _mod_cv2.MergeDebevec -MergeExposures = _mod_cv2.MergeExposures -MergeMertens = _mod_cv2.MergeMertens -MergeRobertson = _mod_cv2.MergeRobertson -NORMAL_CLONE: int -NORMCONV_FILTER: int -NORM_HAMMING: int -NORM_HAMMING2: int -NORM_INF: int -NORM_L1: int -NORM_L2: int -NORM_L2SQR: int -NORM_MINMAX: int -NORM_RELATIVE: int -NORM_TYPE_MASK: int -OPTFLOW_FARNEBACK_GAUSSIAN: int -OPTFLOW_LK_GET_MIN_EIGENVALS: int -OPTFLOW_USE_INITIAL_FLOW: int -ORB = _mod_cv2.ORB -ORB_FAST_SCORE: int -ORB_HARRIS_SCORE: int -def ORB_create(nfeatures=..., scaleFactor=..., nlevels=..., edgeThreshold=..., firstLevel=..., WTA_K=..., scoreType=..., patchSize=..., fastThreshold=...) -> typing.Any: - 'ORB_create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval\n. @brief The ORB constructor\n. \n. @param nfeatures The maximum number of features to retain.\n. @param scaleFactor Pyramid decimation ratio, greater than 1. scaleFactor==2 means the classical\n. pyramid, where each next level has 4x less pixels than the previous, but such a big scale factor\n. will degrade feature matching scores dramatically. On the other hand, too close to 1 scale factor\n. will mean that to cover certain scale range you will need more pyramid levels and so the speed\n. will suffer.\n. @param nlevels The number of pyramid levels. The smallest level will have linear size equal to\n. input_image_linear_size/pow(scaleFactor, nlevels - firstLevel).\n. @param edgeThreshold This is size of the border where the features are not detected. It should\n. roughly match the patchSize parameter.\n. @param firstLevel The level of pyramid to put source image to. Previous layers are filled\n. with upscaled source image.\n. @param WTA_K The number of points that produce each element of the oriented BRIEF descriptor. The\n. default value 2 means the BRIEF where we take a random point pair and compare their brightnesses,\n. so we get 0/1 response. Other possible values are 3 and 4. For example, 3 means that we take 3\n. random points (of course, those point coordinates are random, but they are generated from the\n. pre-defined seed, so each element of BRIEF descriptor is computed deterministically from the pixel\n. rectangle), find point of maximum brightness and output index of the winner (0, 1 or 2). Such\n. output will occupy 2 bits, and therefore it will need a special variant of Hamming distance,\n. denoted as NORM_HAMMING2 (2 bits per bin). When WTA_K=4, we take 4 random points to compute each\n. bin (that will also occupy 2 bits with possible values 0, 1, 2 or 3).\n. @param scoreType The default HARRIS_SCORE means that Harris algorithm is used to rank features\n. (the score is written to KeyPoint::score and is used to retain best nfeatures features);\n. FAST_SCORE is alternative value of the parameter that produces slightly less stable keypoints,\n. but it is a little faster to compute.\n. @param patchSize size of the patch used by the oriented BRIEF descriptor. Of course, on smaller\n. pyramid layers the perceived image area covered by a feature will be larger.\n. @param fastThreshold the fast threshold' - ... - -PARAM_ALGORITHM: int -PARAM_BOOLEAN: int -PARAM_FLOAT: int -PARAM_INT: int -PARAM_MAT: int -PARAM_MAT_VECTOR: int -PARAM_REAL: int -PARAM_SCALAR: int -PARAM_STRING: int -PARAM_UCHAR: int -PARAM_UINT64: int -PARAM_UNSIGNED_INT: int -def PCABackProject(data, mean, eigenvectors, result=...) -> typing.Any: - 'PCABackProject(data, mean, eigenvectors[, result]) -> result\n. wrap PCA::backProject' - ... - -def PCACompute(data, mean, eigenvectors=..., maxComponents=...) -> typing.Any: - 'PCACompute(data, mean[, eigenvectors[, maxComponents]]) -> mean, eigenvectors\n. wrap PCA::operator()\n\n\n\nPCACompute(data, mean, retainedVariance[, eigenvectors]) -> mean, eigenvectors\n. wrap PCA::operator()' - ... - -def PCACompute2(data, mean, eigenvectors=..., eigenvalues=..., maxComponents=...) -> typing.Any: - 'PCACompute2(data, mean[, eigenvectors[, eigenvalues[, maxComponents]]]) -> mean, eigenvectors, eigenvalues\n. wrap PCA::operator() and add eigenvalues output parameter\n\n\n\nPCACompute2(data, mean, retainedVariance[, eigenvectors[, eigenvalues]]) -> mean, eigenvectors, eigenvalues\n. wrap PCA::operator() and add eigenvalues output parameter' - ... - -def PCAProject(data, mean, eigenvectors, result=...) -> typing.Any: - 'PCAProject(data, mean, eigenvectors[, result]) -> result\n. wrap PCA::project' - ... - -PCA_DATA_AS_COL: int -PCA_DATA_AS_ROW: int -PCA_USE_AVG: int -PROJ_SPHERICAL_EQRECT: int -PROJ_SPHERICAL_ORTHO: int -def PSNR(src1: Mat, src2: Mat, R=...) -> typing.Any: - 'PSNR(src1, src2[, R]) -> retval\n. @brief Computes the Peak Signal-to-Noise Ratio (PSNR) image quality metric.\n. \n. This function calculates the Peak Signal-to-Noise Ratio (PSNR) image quality metric in decibels (dB),\n. between two input arrays src1 and src2. The arrays must have the same type.\n. \n. The PSNR is calculated as follows:\n. \n. \\f[\n. \\texttt{PSNR} = 10 \\cdot \\log_{10}{\\left( \\frac{R^2}{MSE} \\right) }\n. \\f]\n. \n. where R is the maximum integer value of depth (e.g. 255 in the case of CV_8U data)\n. and MSE is the mean squared error between the two arrays.\n. \n. @param src1 first input array.\n. @param src2 second input array of the same size as src1.\n. @param R the maximum pixel value (255 by default)' - ... - -Param_ALGORITHM: int -Param_BOOLEAN: int -Param_FLOAT: int -Param_INT: int -Param_MAT: int -Param_MAT_VECTOR: int -Param_REAL: int -Param_SCALAR: int -Param_STRING: int -Param_UCHAR: int -Param_UINT64: int -Param_UNSIGNED_INT: int -PyRotationWarper = _mod_cv2.PyRotationWarper -QRCodeDetector = _mod_cv2.QRCodeDetector -QT_CHECKBOX: int -QT_FONT_BLACK: int -QT_FONT_BOLD: int -QT_FONT_DEMIBOLD: int -QT_FONT_LIGHT: int -QT_FONT_NORMAL: int -QT_NEW_BUTTONBAR: int -QT_PUSH_BUTTON: int -QT_RADIOBOX: int -QT_STYLE_ITALIC: int -QT_STYLE_NORMAL: int -QT_STYLE_OBLIQUE: int -RANSAC: int -RECURS_FILTER: int -REDUCE_AVG: int -REDUCE_MAX: int -REDUCE_MIN: int -REDUCE_SUM: int -RETR_CCOMP: int -RETR_EXTERNAL: int -RETR_FLOODFILL: int -RETR_LIST: int -RETR_TREE: int -RHO: int -RNG_NORMAL: int -RNG_UNIFORM: int -ROTATE_180: int -ROTATE_90_CLOCKWISE: int -ROTATE_90_COUNTERCLOCKWISE: int -def RQDecomp3x3(src: Mat, mtxR=..., mtxQ=..., Qx=..., Qy=..., Qz=...) -> typing.Any: - 'RQDecomp3x3(src[, mtxR[, mtxQ[, Qx[, Qy[, Qz]]]]]) -> retval, mtxR, mtxQ, Qx, Qy, Qz\n. @brief Computes an RQ decomposition of 3x3 matrices.\n. \n. @param src 3x3 input matrix.\n. @param mtxR Output 3x3 upper-triangular matrix.\n. @param mtxQ Output 3x3 orthogonal matrix.\n. @param Qx Optional output 3x3 rotation matrix around x-axis.\n. @param Qy Optional output 3x3 rotation matrix around y-axis.\n. @param Qz Optional output 3x3 rotation matrix around z-axis.\n. \n. The function computes a RQ decomposition using the given rotations. This function is used in\n. decomposeProjectionMatrix to decompose the left 3x3 submatrix of a projection matrix into a camera\n. and a rotation matrix.\n. \n. It optionally returns three rotation matrices, one for each axis, and the three Euler angles in\n. degrees (as the return value) that could be used in OpenGL. Note, there is always more than one\n. sequence of rotations about the three principal axes that results in the same orientation of an\n. object, e.g. see @cite Slabaugh . Returned tree rotation matrices and corresponding three Euler angles\n. are only one of the possible solutions.' - ... - -def Rodrigues(src: Mat, dts: Mat = ..., jacobian=...) -> typing.Any: - 'Rodrigues(src[, dst[, jacobian]]) -> dst, jacobian\n. @brief Converts a rotation matrix to a rotation vector or vice versa.\n. \n. @param src Input rotation vector (3x1 or 1x3) or rotation matrix (3x3).\n. @param dst Output rotation matrix (3x3) or rotation vector (3x1 or 1x3), respectively.\n. @param jacobian Optional output Jacobian matrix, 3x9 or 9x3, which is a matrix of partial\n. derivatives of the output array components with respect to the input array components.\n. \n. \\f[\\begin{array}{l} \\theta \\leftarrow norm(r) \\\\ r \\leftarrow r/ \\theta \\\\ R = \\cos(\\theta) I + (1- \\cos{\\theta} ) r r^T + \\sin(\\theta) \\vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} \\end{array}\\f]\n. \n. Inverse transformation can be also done easily, since\n. \n. \\f[\\sin ( \\theta ) \\vecthreethree{0}{-r_z}{r_y}{r_z}{0}{-r_x}{-r_y}{r_x}{0} = \\frac{R - R^T}{2}\\f]\n. \n. A rotation vector is a convenient and most compact representation of a rotation matrix (since any\n. rotation matrix has just 3 degrees of freedom). The representation is used in the global 3D geometry\n. optimization procedures like @ref calibrateCamera, @ref stereoCalibrate, or @ref solvePnP .\n. \n. @note More information about the computation of the derivative of a 3D rotation matrix with respect to its exponential coordinate\n. can be found in:\n. - A Compact Formula for the Derivative of a 3-D Rotation in Exponential Coordinates, Guillermo Gallego, Anthony J. Yezzi @cite Gallego2014ACF\n. \n. @note Useful information on SE(3) and Lie Groups can be found in:\n. - A tutorial on SE(3) transformation parameterizations and on-manifold optimization, Jose-Luis Blanco @cite blanco2010tutorial\n. - Lie Groups for 2D and 3D Transformation, Ethan Eade @cite Eade17\n. - A micro Lie theory for state estimation in robotics, Joan Solà, Jérémie Deray, Dinesh Atchuthan @cite Sol2018AML' - ... - -SIFT = _mod_cv2.SIFT -def SIFT_create(nfeatures=..., nOctaveLayers=..., contrastThreshold=..., edgeThreshold=..., sigma=...) -> typing.Any: - 'SIFT_create([, nfeatures[, nOctaveLayers[, contrastThreshold[, edgeThreshold[, sigma]]]]]) -> retval\n. @param nfeatures The number of best features to retain. The features are ranked by their scores\n. (measured in SIFT algorithm as the local contrast)\n. \n. @param nOctaveLayers The number of layers in each octave. 3 is the value used in D. Lowe paper. The\n. number of octaves is computed automatically from the image resolution.\n. \n. @param contrastThreshold The contrast threshold used to filter out weak features in semi-uniform\n. (low-contrast) regions. The larger the threshold, the less features are produced by the detector.\n. \n. @note The contrast threshold will be divided by nOctaveLayers when the filtering is applied. When\n. nOctaveLayers is set to default and if you want to use the value used in D. Lowe paper, 0.03, set\n. this argument to 0.09.\n. \n. @param edgeThreshold The threshold used to filter out edge-like features. Note that the its meaning\n. is different from the contrastThreshold, i.e. the larger the edgeThreshold, the less features are\n. filtered out (more features are retained).\n. \n. @param sigma The sigma of the Gaussian applied to the input image at the octave \\#0. If your image\n. is captured with a weak camera with soft lenses, you might want to reduce the number.' - ... - -SOLVELP_MULTI: int -SOLVELP_SINGLE: int -SOLVELP_UNBOUNDED: int -SOLVELP_UNFEASIBLE: int -SOLVEPNP_AP3P: int -SOLVEPNP_DLS: int -SOLVEPNP_EPNP: int -SOLVEPNP_IPPE: int -SOLVEPNP_IPPE_SQUARE: int -SOLVEPNP_ITERATIVE: int -SOLVEPNP_MAX_COUNT: int -SOLVEPNP_P3P: int -SOLVEPNP_UPNP: int -SORT_ASCENDING: int -SORT_DESCENDING: int -SORT_EVERY_COLUMN: int -SORT_EVERY_ROW: int -SPARSE_MAT_HASH_BIT: int -SPARSE_MAT_HASH_SCALE: int -SPARSE_MAT_MAGIC_VAL: int -SPARSE_MAT_MAX_DIM: int -STEREO_BM_PREFILTER_NORMALIZED_RESPONSE: int -STEREO_BM_PREFILTER_XSOBEL: int -STEREO_MATCHER_DISP_SCALE: int -STEREO_MATCHER_DISP_SHIFT: int -STEREO_SGBM_MODE_HH: int -STEREO_SGBM_MODE_HH4: int -STEREO_SGBM_MODE_SGBM: int -STEREO_SGBM_MODE_SGBM_3WAY: int -STITCHER_ERR_CAMERA_PARAMS_ADJUST_FAIL: int -STITCHER_ERR_HOMOGRAPHY_EST_FAIL: int -STITCHER_ERR_NEED_MORE_IMGS: int -STITCHER_OK: int -STITCHER_PANORAMA: int -STITCHER_SCANS: int -SUBDIV2D_NEXT_AROUND_DST: int -SUBDIV2D_NEXT_AROUND_LEFT: int -SUBDIV2D_NEXT_AROUND_ORG: int -SUBDIV2D_NEXT_AROUND_RIGHT: int -SUBDIV2D_PREV_AROUND_DST: int -SUBDIV2D_PREV_AROUND_LEFT: int -SUBDIV2D_PREV_AROUND_ORG: int -SUBDIV2D_PREV_AROUND_RIGHT: int -SUBDIV2D_PTLOC_ERROR: int -SUBDIV2D_PTLOC_INSIDE: int -SUBDIV2D_PTLOC_ON_EDGE: int -SUBDIV2D_PTLOC_OUTSIDE_RECT: int -SUBDIV2D_PTLOC_VERTEX: int -def SVBackSubst(w, u, vt, rhs, dts: Mat = ...) -> typing.Any: - 'SVBackSubst(w, u, vt, rhs[, dst]) -> dst\n. wrap SVD::backSubst' - ... - -SVD_FULL_UV: int -SVD_MODIFY_A: int -SVD_NO_UV: int -def SVDecomp(src: Mat, w=..., u=..., vt=..., flags: int = ...) -> typing.Any: - 'SVDecomp(src[, w[, u[, vt[, flags]]]]) -> w, u, vt\n. wrap SVD::compute' - ... - -def Scharr(src: Mat, ddepth, dx, dy, dts: Mat = ..., scale=..., delta=..., borderType=...) -> typing.Any: - 'Scharr(src, ddepth, dx, dy[, dst[, scale[, delta[, borderType]]]]) -> dst\n. @brief Calculates the first x- or y- image derivative using Scharr operator.\n. \n. The function computes the first x- or y- spatial image derivative using the Scharr operator. The\n. call\n. \n. \\f[\\texttt{Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)}\\f]\n. \n. is equivalent to\n. \n. \\f[\\texttt{Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)} .\\f]\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src.\n. @param ddepth output image depth, see @ref filter_depths "combinations"\n. @param dx order of the derivative x.\n. @param dy order of the derivative y.\n. @param scale optional scale factor for the computed derivative values; by default, no scaling is\n. applied (see #getDerivKernels for details).\n. @param delta optional delta value that is added to the results prior to storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa cartToPolar' - ... - -SimpleBlobDetector = _mod_cv2.SimpleBlobDetector -SimpleBlobDetector_Params = _mod_cv2.SimpleBlobDetector_Params -def SimpleBlobDetector_create(parameters=...) -> typing.Any: - 'SimpleBlobDetector_create([, parameters]) -> retval\n.' - ... - -def Sobel(src: Mat, ddepth, dx, dy, dts: Mat = ..., ksize=..., scale=..., delta=..., borderType=...) -> typing.Any: - 'Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst\n. @brief Calculates the first, second, third, or mixed image derivatives using an extended Sobel operator.\n. \n. In all cases except one, the \\f$\\texttt{ksize} \\times \\texttt{ksize}\\f$ separable kernel is used to\n. calculate the derivative. When \\f$\\texttt{ksize = 1}\\f$, the \\f$3 \\times 1\\f$ or \\f$1 \\times 3\\f$\n. kernel is used (that is, no Gaussian smoothing is done). `ksize = 1` can only be used for the first\n. or the second x- or y- derivatives.\n. \n. There is also the special value `ksize = #FILTER_SCHARR (-1)` that corresponds to the \\f$3\\times3\\f$ Scharr\n. filter that may give more accurate results than the \\f$3\\times3\\f$ Sobel. The Scharr aperture is\n. \n. \\f[\\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\\f]\n. \n. for the x-derivative, or transposed for the y-derivative.\n. \n. The function calculates an image derivative by convolving the image with the appropriate kernel:\n. \n. \\f[\\texttt{dst} = \\frac{\\partial^{xorder+yorder} \\texttt{src}}{\\partial x^{xorder} \\partial y^{yorder}}\\f]\n. \n. The Sobel operators combine Gaussian smoothing and differentiation, so the result is more or less\n. resistant to the noise. Most often, the function is called with ( xorder = 1, yorder = 0, ksize = 3)\n. or ( xorder = 0, yorder = 1, ksize = 3) to calculate the first x- or y- image derivative. The first\n. case corresponds to a kernel of:\n. \n. \\f[\\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\\f]\n. \n. The second case corresponds to a kernel of:\n. \n. \\f[\\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\\f]\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src .\n. @param ddepth output image depth, see @ref filter_depths "combinations"; in the case of\n. 8-bit input images it will result in truncated derivatives.\n. @param dx order of the derivative x.\n. @param dy order of the derivative y.\n. @param ksize size of the extended Sobel kernel; it must be 1, 3, 5, or 7.\n. @param scale optional scale factor for the computed derivative values; by default, no scaling is\n. applied (see #getDerivKernels for details).\n. @param delta optional delta value that is added to the results prior to storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa Scharr, Laplacian, sepFilter2D, filter2D, GaussianBlur, cartToPolar' - ... - -SparseMat_HASH_BIT: int -SparseMat_HASH_SCALE: int -SparseMat_MAGIC_VAL: int -SparseMat_MAX_DIM: int -SparseOpticalFlow = _mod_cv2.SparseOpticalFlow -SparsePyrLKOpticalFlow = _mod_cv2.SparsePyrLKOpticalFlow -def SparsePyrLKOpticalFlow_create(winSize=..., maxLevel=..., crit=..., flags: int = ..., minEigThreshold=...) -> typing.Any: - 'SparsePyrLKOpticalFlow_create([, winSize[, maxLevel[, crit[, flags[, minEigThreshold]]]]]) -> retval\n.' - ... - -StereoBM = _mod_cv2.StereoBM -StereoBM_PREFILTER_NORMALIZED_RESPONSE: int -StereoBM_PREFILTER_XSOBEL: int -def StereoBM_create(numDisparities=..., blockSize=...) -> typing.Any: - 'StereoBM_create([, numDisparities[, blockSize]]) -> retval\n. @brief Creates StereoBM object\n. \n. @param numDisparities the disparity search range. For each pixel algorithm will find the best\n. disparity from 0 (default minimum disparity) to numDisparities. The search range can then be\n. shifted by changing the minimum disparity.\n. @param blockSize the linear size of the blocks compared by the algorithm. The size should be odd\n. (as the block is centered at the current pixel). Larger block size implies smoother, though less\n. accurate disparity map. Smaller block size gives more detailed disparity map, but there is higher\n. chance for algorithm to find a wrong correspondence.\n. \n. The function create StereoBM object. You can then call StereoBM::compute() to compute disparity for\n. a specific stereo pair.' - ... - -StereoMatcher = _mod_cv2.StereoMatcher -StereoMatcher_DISP_SCALE: int -StereoMatcher_DISP_SHIFT: int -StereoSGBM = _mod_cv2.StereoSGBM -StereoSGBM_MODE_HH: int -StereoSGBM_MODE_HH4: int -StereoSGBM_MODE_SGBM: int -StereoSGBM_MODE_SGBM_3WAY: int -def StereoSGBM_create(minDisparity=..., numDisparities=..., blockSize=..., P1=..., P2=..., disp12MaxDiff=..., preFilterCap=..., uniquenessRatio=..., speckleWindowSize=..., speckleRange=..., mode=...) -> typing.Any: - 'StereoSGBM_create([, minDisparity[, numDisparities[, blockSize[, P1[, P2[, disp12MaxDiff[, preFilterCap[, uniquenessRatio[, speckleWindowSize[, speckleRange[, mode]]]]]]]]]]]) -> retval\n. @brief Creates StereoSGBM object\n. \n. @param minDisparity Minimum possible disparity value. Normally, it is zero but sometimes\n. rectification algorithms can shift images, so this parameter needs to be adjusted accordingly.\n. @param numDisparities Maximum disparity minus minimum disparity. The value is always greater than\n. zero. In the current implementation, this parameter must be divisible by 16.\n. @param blockSize Matched block size. It must be an odd number \\>=1 . Normally, it should be\n. somewhere in the 3..11 range.\n. @param P1 The first parameter controlling the disparity smoothness. See below.\n. @param P2 The second parameter controlling the disparity smoothness. The larger the values are,\n. the smoother the disparity is. P1 is the penalty on the disparity change by plus or minus 1\n. between neighbor pixels. P2 is the penalty on the disparity change by more than 1 between neighbor\n. pixels. The algorithm requires P2 \\> P1 . See stereo_match.cpp sample where some reasonably good\n. P1 and P2 values are shown (like 8\\*number_of_image_channels\\*blockSize\\*blockSize and\n. 32\\*number_of_image_channels\\*blockSize\\*blockSize , respectively).\n. @param disp12MaxDiff Maximum allowed difference (in integer pixel units) in the left-right\n. disparity check. Set it to a non-positive value to disable the check.\n. @param preFilterCap Truncation value for the prefiltered image pixels. The algorithm first\n. computes x-derivative at each pixel and clips its value by [-preFilterCap, preFilterCap] interval.\n. The result values are passed to the Birchfield-Tomasi pixel cost function.\n. @param uniquenessRatio Margin in percentage by which the best (minimum) computed cost function\n. value should "win" the second best value to consider the found match correct. Normally, a value\n. within the 5-15 range is good enough.\n. @param speckleWindowSize Maximum size of smooth disparity regions to consider their noise speckles\n. and invalidate. Set it to 0 to disable speckle filtering. Otherwise, set it somewhere in the\n. 50-200 range.\n. @param speckleRange Maximum disparity variation within each connected component. If you do speckle\n. filtering, set the parameter to a positive value, it will be implicitly multiplied by 16.\n. Normally, 1 or 2 is good enough.\n. @param mode Set it to StereoSGBM::MODE_HH to run the full-scale two-pass dynamic programming\n. algorithm. It will consume O(W\\*H\\*numDisparities) bytes, which is large for 640x480 stereo and\n. huge for HD-size pictures. By default, it is set to false .\n. \n. The first constructor initializes StereoSGBM with all the default parameters. So, you only have to\n. set StereoSGBM::numDisparities at minimum. The second constructor enables you to set each parameter\n. to a custom value.' - ... - -Stitcher = _mod_cv2.Stitcher -Stitcher_ERR_CAMERA_PARAMS_ADJUST_FAIL: int -Stitcher_ERR_HOMOGRAPHY_EST_FAIL: int -Stitcher_ERR_NEED_MORE_IMGS: int -Stitcher_OK: int -Stitcher_PANORAMA: int -Stitcher_SCANS: int -def Stitcher_create(mode=...) -> typing.Any: - 'Stitcher_create([, mode]) -> retval\n. @brief Creates a Stitcher configured in one of the stitching modes.\n. \n. @param mode Scenario for stitcher operation. This is usually determined by source of images\n. to stitch and their transformation. Default parameters will be chosen for operation in given\n. scenario.\n. @return Stitcher class instance.' - ... - -Subdiv2D = _mod_cv2.Subdiv2D -Subdiv2D_NEXT_AROUND_DST: int -Subdiv2D_NEXT_AROUND_LEFT: int -Subdiv2D_NEXT_AROUND_ORG: int -Subdiv2D_NEXT_AROUND_RIGHT: int -Subdiv2D_PREV_AROUND_DST: int -Subdiv2D_PREV_AROUND_LEFT: int -Subdiv2D_PREV_AROUND_ORG: int -Subdiv2D_PREV_AROUND_RIGHT: int -Subdiv2D_PTLOC_ERROR: int -Subdiv2D_PTLOC_INSIDE: int -Subdiv2D_PTLOC_ON_EDGE: int -Subdiv2D_PTLOC_OUTSIDE_RECT: int -Subdiv2D_PTLOC_VERTEX: int -TERM_CRITERIA_COUNT: int -TERM_CRITERIA_EPS: int -TERM_CRITERIA_MAX_ITER: int -THRESH_BINARY: int -THRESH_BINARY_INV: int -THRESH_MASK: int -THRESH_OTSU: int -THRESH_TOZERO: int -THRESH_TOZERO_INV: int -THRESH_TRIANGLE: int -THRESH_TRUNC: int -TM_CCOEFF: int -TM_CCOEFF_NORMED: int -TM_CCORR: int -TM_CCORR_NORMED: int -TM_SQDIFF: int -TM_SQDIFF_NORMED: int -TermCriteria_COUNT: int -TermCriteria_EPS: int -TermCriteria_MAX_ITER: int -TickMeter = _mod_cv2.TickMeter -Tonemap = _mod_cv2.Tonemap -TonemapDrago = _mod_cv2.TonemapDrago -TonemapMantiuk = _mod_cv2.TonemapMantiuk -TonemapReinhard = _mod_cv2.TonemapReinhard -UMAT_AUTO_STEP: int -UMAT_CONTINUOUS_FLAG: int -UMAT_DATA_ASYNC_CLEANUP: int -UMAT_DATA_COPY_ON_MAP: int -UMAT_DATA_DEVICE_COPY_OBSOLETE: int -UMAT_DATA_DEVICE_MEM_MAPPED: int -UMAT_DATA_HOST_COPY_OBSOLETE: int -UMAT_DATA_TEMP_COPIED_UMAT: int -UMAT_DATA_TEMP_UMAT: int -UMAT_DATA_USER_ALLOCATED: int -UMAT_DEPTH_MASK: int -UMAT_MAGIC_MASK: int -UMAT_MAGIC_VAL: int -UMAT_SUBMATRIX_FLAG: int -UMAT_TYPE_MASK: int -UMat = _mod_cv2.UMat -UMatData_ASYNC_CLEANUP: int -UMatData_COPY_ON_MAP: int -UMatData_DEVICE_COPY_OBSOLETE: int -UMatData_DEVICE_MEM_MAPPED: int -UMatData_HOST_COPY_OBSOLETE: int -UMatData_TEMP_COPIED_UMAT: int -UMatData_TEMP_UMAT: int -UMatData_USER_ALLOCATED: int -UMat_AUTO_STEP: int -UMat_CONTINUOUS_FLAG: int -UMat_DEPTH_MASK: int -UMat_MAGIC_MASK: int -UMat_MAGIC_VAL: int -UMat_SUBMATRIX_FLAG: int -UMat_TYPE_MASK: int -def UMat_context() -> typing.Any: - 'UMat_context() -> retval\n.' - ... - -def UMat_queue() -> typing.Any: - 'UMat_queue() -> retval\n.' - ... - -USAGE_ALLOCATE_DEVICE_MEMORY: int -USAGE_ALLOCATE_HOST_MEMORY: int -USAGE_ALLOCATE_SHARED_MEMORY: int -USAGE_DEFAULT: int -VIDEOWRITER_PROP_FRAMEBYTES: int -VIDEOWRITER_PROP_IS_COLOR: int -VIDEOWRITER_PROP_NSTRIPES: int -VIDEOWRITER_PROP_QUALITY: int -VariationalRefinement = _mod_cv2.VariationalRefinement -def VariationalRefinement_create() -> typing.Any: - 'VariationalRefinement_create() -> retval\n. @brief Creates an instance of VariationalRefinement' - ... - -class VideoCapture(): - name: str - device_id: int - def __init__(self, device_id: int | str, backend: int | None = ...): ... - def set(self, property: int, value: int): ... - def get(self, property: int) -> int: ... - def grab(self) -> bool: ... - def read(self) -> typing.Tuple[bool, Mat]: ... - def release(self): ... - def setExceptionMode(self, error: bool): ... - def getBackendName(self) -> str: ... - def isOpened(self) -> bool: ... - -VideoWriter = _mod_cv2.VideoWriter -def VideoWriter_fourcc(c1, c2, c3, c4) -> typing.Any: - 'VideoWriter_fourcc(c1, c2, c3, c4) -> retval\n. @brief Concatenates 4 chars to a fourcc code\n. \n. @return a fourcc code\n. \n. This static method constructs the fourcc code of the codec to be used in the constructor\n. VideoWriter::VideoWriter or VideoWriter::open.' - ... - -WARP_FILL_OUTLIERS: int -WARP_INVERSE_MAP: int -WARP_POLAR_LINEAR: int -WARP_POLAR_LOG: int -WINDOW_AUTOSIZE: int -WINDOW_FREERATIO: int -WINDOW_FULLSCREEN: int -WINDOW_GUI_EXPANDED: int -WINDOW_GUI_NORMAL: int -WINDOW_KEEPRATIO: int -WINDOW_NORMAL: int -WINDOW_OPENGL: int -WND_PROP_ASPECT_RATIO: int -WND_PROP_AUTOSIZE: int -WND_PROP_FULLSCREEN: int -WND_PROP_OPENGL: int -WND_PROP_TOPMOST: int -WND_PROP_VISIBLE: int -WarperCreator = _mod_cv2.WarperCreator -_INPUT_ARRAY_CUDA_GPU_MAT: int -_INPUT_ARRAY_CUDA_HOST_MEM: int -_INPUT_ARRAY_EXPR: int -_INPUT_ARRAY_FIXED_SIZE: int -_INPUT_ARRAY_FIXED_TYPE: int -_INPUT_ARRAY_KIND_MASK: int -_INPUT_ARRAY_KIND_SHIFT: int -_INPUT_ARRAY_MAT: int -_INPUT_ARRAY_MATX: int -_INPUT_ARRAY_NONE: int -_INPUT_ARRAY_OPENGL_BUFFER: int -_INPUT_ARRAY_STD_ARRAY: int -_INPUT_ARRAY_STD_ARRAY_MAT: int -_INPUT_ARRAY_STD_BOOL_VECTOR: int -_INPUT_ARRAY_STD_VECTOR: int -_INPUT_ARRAY_STD_VECTOR_CUDA_GPU_MAT: int -_INPUT_ARRAY_STD_VECTOR_MAT: int -_INPUT_ARRAY_STD_VECTOR_UMAT: int -_INPUT_ARRAY_STD_VECTOR_VECTOR: int -_INPUT_ARRAY_UMAT: int -_InputArray_CUDA_GPU_MAT: int -_InputArray_CUDA_HOST_MEM: int -_InputArray_EXPR: int -_InputArray_FIXED_SIZE: int -_InputArray_FIXED_TYPE: int -_InputArray_KIND_MASK: int -_InputArray_KIND_SHIFT: int -_InputArray_MAT: int -_InputArray_MATX: int -_InputArray_NONE: int -_InputArray_OPENGL_BUFFER: int -_InputArray_STD_ARRAY: int -_InputArray_STD_ARRAY_MAT: int -_InputArray_STD_BOOL_VECTOR: int -_InputArray_STD_VECTOR: int -_InputArray_STD_VECTOR_CUDA_GPU_MAT: int -_InputArray_STD_VECTOR_MAT: int -_InputArray_STD_VECTOR_UMAT: int -_InputArray_STD_VECTOR_VECTOR: int -_InputArray_UMAT: int -_OUTPUT_ARRAY_DEPTH_MASK_16F: int -_OUTPUT_ARRAY_DEPTH_MASK_16S: int -_OUTPUT_ARRAY_DEPTH_MASK_16U: int -_OUTPUT_ARRAY_DEPTH_MASK_32F: int -_OUTPUT_ARRAY_DEPTH_MASK_32S: int -_OUTPUT_ARRAY_DEPTH_MASK_64F: int -_OUTPUT_ARRAY_DEPTH_MASK_8S: int -_OUTPUT_ARRAY_DEPTH_MASK_8U: int -_OUTPUT_ARRAY_DEPTH_MASK_ALL: int -_OUTPUT_ARRAY_DEPTH_MASK_ALL_16F: int -_OUTPUT_ARRAY_DEPTH_MASK_ALL_BUT_8S: int -_OUTPUT_ARRAY_DEPTH_MASK_FLT: int -_OutputArray_DEPTH_MASK_16F: int -_OutputArray_DEPTH_MASK_16S: int -_OutputArray_DEPTH_MASK_16U: int -_OutputArray_DEPTH_MASK_32F: int -_OutputArray_DEPTH_MASK_32S: int -_OutputArray_DEPTH_MASK_64F: int -_OutputArray_DEPTH_MASK_8S: int -_OutputArray_DEPTH_MASK_8U: int -_OutputArray_DEPTH_MASK_ALL: int -_OutputArray_DEPTH_MASK_ALL_16F: int -_OutputArray_DEPTH_MASK_ALL_BUT_8S: int -_OutputArray_DEPTH_MASK_FLT: int -__UMAT_USAGE_FLAGS_32BIT: int -__doc__: str -__file__: str -__name__: str -__package__: str -__version__: str -def absdiff(src1: Mat, src2: Mat, dts: Mat = ...) -> typing.Any: - 'absdiff(src1, src2[, dst]) -> dst\n. @brief Calculates the per-element absolute difference between two arrays or between an array and a scalar.\n. \n. The function cv::absdiff calculates:\n. * Absolute difference between two arrays when they have the same\n. size and type:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1}(I) - \\texttt{src2}(I)|)\\f]\n. * Absolute difference between an array and a scalar when the second\n. array is constructed from Scalar or has as many elements as the\n. number of channels in `src1`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1}(I) - \\texttt{src2} |)\\f]\n. * Absolute difference between a scalar and an array when the first\n. array is constructed from Scalar or has as many elements as the\n. number of channels in `src2`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} (| \\texttt{src1} - \\texttt{src2}(I) |)\\f]\n. where I is a multi-dimensional index of array elements. In case of\n. multi-channel arrays, each channel is processed independently.\n. @note Saturation is not applied when the arrays have the depth CV_32S.\n. You may even get a negative value in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as input arrays.\n. @sa cv::abs(const Mat&)' - ... - -def accumulate(src: Mat, dts: Mat, mask: Mat = ...) -> typing.Any: - 'accumulate(src, dst[, mask]) -> dst\n. @brief Adds an image to the accumulator image.\n. \n. The function adds src or some of its elements to dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. The function cv::accumulate can be used, for example, to collect statistics of a scene background\n. viewed by a still camera and for the further foreground-background segmentation.\n. \n. @param src Input image of type CV_8UC(n), CV_16UC(n), CV_32FC(n) or CV_64FC(n), where n is a positive integer.\n. @param dst %Accumulator image with the same number of channels as input image, and a depth of CV_32F or CV_64F.\n. @param mask Optional operation mask.\n. \n. @sa accumulateSquare, accumulateProduct, accumulateWeighted' - ... - -def accumulateProduct(src1: Mat, src2: Mat, dts: Mat, mask: Mat = ...) -> typing.Any: - 'accumulateProduct(src1, src2, dst[, mask]) -> dst\n. @brief Adds the per-element product of two input images to the accumulator image.\n. \n. The function adds the product of two images or their selected regions to the accumulator dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src1} (x,y) \\cdot \\texttt{src2} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src1 First input image, 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param src2 Second input image of the same type and the same size as src1 .\n. @param dst %Accumulator image with the same number of channels as input images, 32-bit or 64-bit\n. floating-point.\n. @param mask Optional operation mask.\n. \n. @sa accumulate, accumulateSquare, accumulateWeighted' - ... - -def accumulateSquare(src: Mat, dts: Mat, mask: Mat = ...) -> typing.Any: - 'accumulateSquare(src, dst[, mask]) -> dst\n. @brief Adds the square of a source image to the accumulator image.\n. \n. The function adds the input image src or its selected region, raised to a power of 2, to the\n. accumulator dst :\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow \\texttt{dst} (x,y) + \\texttt{src} (x,y)^2 \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src Input image as 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param dst %Accumulator image with the same number of channels as input image, 32-bit or 64-bit\n. floating-point.\n. @param mask Optional operation mask.\n. \n. @sa accumulateSquare, accumulateProduct, accumulateWeighted' - ... - -def accumulateWeighted(src: Mat, dts: Mat, alpha, mask: Mat = ...) -> typing.Any: - 'accumulateWeighted(src, dst, alpha[, mask]) -> dst\n. @brief Updates a running average.\n. \n. The function calculates the weighted sum of the input image src and the accumulator dst so that dst\n. becomes a running average of a frame sequence:\n. \n. \\f[\\texttt{dst} (x,y) \\leftarrow (1- \\texttt{alpha} ) \\cdot \\texttt{dst} (x,y) + \\texttt{alpha} \\cdot \\texttt{src} (x,y) \\quad \\text{if} \\quad \\texttt{mask} (x,y) \\ne 0\\f]\n. \n. That is, alpha regulates the update speed (how fast the accumulator "forgets" about earlier images).\n. The function supports multi-channel images. Each channel is processed independently.\n. \n. @param src Input image as 1- or 3-channel, 8-bit or 32-bit floating point.\n. @param dst %Accumulator image with the same number of channels as input image, 32-bit or 64-bit\n. floating-point.\n. @param alpha Weight of the input image.\n. @param mask Optional operation mask.\n. \n. @sa accumulate, accumulateSquare, accumulateProduct' - ... - -def adaptiveThreshold(src: Mat, maxValue, adaptiveMethod, thresholdType, blockSize, C, dts: Mat = ...) -> typing.Any: - 'adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C[, dst]) -> dst\n. @brief Applies an adaptive threshold to an array.\n. \n. The function transforms a grayscale image to a binary image according to the formulae:\n. - **THRESH_BINARY**\n. \\f[dst(x,y) = \\fork{\\texttt{maxValue}}{if \\(src(x,y) > T(x,y)\\)}{0}{otherwise}\\f]\n. - **THRESH_BINARY_INV**\n. \\f[dst(x,y) = \\fork{0}{if \\(src(x,y) > T(x,y)\\)}{\\texttt{maxValue}}{otherwise}\\f]\n. where \\f$T(x,y)\\f$ is a threshold calculated individually for each pixel (see adaptiveMethod parameter).\n. \n. The function can process the image in-place.\n. \n. @param src Source 8-bit single-channel image.\n. @param dst Destination image of the same size and the same type as src.\n. @param maxValue Non-zero value assigned to the pixels for which the condition is satisfied\n. @param adaptiveMethod Adaptive thresholding algorithm to use, see #AdaptiveThresholdTypes.\n. The #BORDER_REPLICATE | #BORDER_ISOLATED is used to process boundaries.\n. @param thresholdType Thresholding type that must be either #THRESH_BINARY or #THRESH_BINARY_INV,\n. see #ThresholdTypes.\n. @param blockSize Size of a pixel neighborhood that is used to calculate a threshold value for the\n. pixel: 3, 5, 7, and so on.\n. @param C Constant subtracted from the mean or weighted mean (see the details below). Normally, it\n. is positive but may be zero or negative as well.\n. \n. @sa threshold, blur, GaussianBlur' - ... - -def add(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ..., dtype=...) -> typing.Any: - 'add(src1, src2[, dst[, mask[, dtype]]]) -> dst\n. @brief Calculates the per-element sum of two arrays or an array and a scalar.\n. \n. The function add calculates:\n. - Sum of two arrays when both input arrays have the same size and the same number of channels:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) + \\texttt{src2}(I)) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Sum of an array and a scalar when src2 is constructed from Scalar or has the same number of\n. elements as `src1.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) + \\texttt{src2} ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Sum of a scalar and an array when src1 is constructed from Scalar or has the same number of\n. elements as `src2.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1} + \\texttt{src2}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. where `I` is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. \n. The first function in the list above can be replaced with matrix expressions:\n. @code{.cpp}\n. dst = src1 + src2;\n. dst += src1; // equivalent to add(dst, src1, dst);\n. @endcode\n. The input arrays and the output array can all have the same or different depths. For example, you\n. can add a 16-bit unsigned array to a 8-bit signed array and store the sum as a 32-bit\n. floating-point array. Depth of the output array is determined by the dtype parameter. In the second\n. and third cases above, as well as in the first case, when src1.depth() == src2.depth(), dtype can\n. be set to the default -1. In this case, the output array will have the same depth as the input\n. array, be it src1, src2 or both.\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and number of channels as the input array(s); the\n. depth is defined by dtype or src1/src2.\n. @param mask optional operation mask - 8-bit single channel array, that specifies elements of the\n. output array to be changed.\n. @param dtype optional depth of the output array (see the discussion below).\n. @sa subtract, addWeighted, scaleAdd, Mat::convertTo' - ... - -def addText(img: Mat, text, org, nameFont, pointSize=..., color=..., weight=..., style=..., spacing=...) -> typing.Any: - 'addText(img, text, org, nameFont[, pointSize[, color[, weight[, style[, spacing]]]]]) -> None\n. @brief Draws a text on the image.\n. \n. @param img 8-bit 3-channel image where the text should be drawn.\n. @param text Text to write on an image.\n. @param org Point(x,y) where the text should start on an image.\n. @param nameFont Name of the font. The name should match the name of a system font (such as\n. *Times*). If the font is not found, a default one is used.\n. @param pointSize Size of the font. If not specified, equal zero or negative, the point size of the\n. font is set to a system-dependent default value. Generally, this is 12 points.\n. @param color Color of the font in BGRA where A = 255 is fully transparent.\n. @param weight Font weight. Available operation flags are : cv::QtFontWeights You can also specify a positive integer for better control.\n. @param style Font style. Available operation flags are : cv::QtFontStyles\n. @param spacing Spacing between characters. It can be negative or positive.' - ... - -def addWeighted(src1: Mat, alpha, src2: Mat, beta, gamma, dts: Mat = ..., dtype=...) -> typing.Any: - 'addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]]) -> dst\n. @brief Calculates the weighted sum of two arrays.\n. \n. The function addWeighted calculates the weighted sum of two arrays as follows:\n. \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{src1} (I)* \\texttt{alpha} + \\texttt{src2} (I)* \\texttt{beta} + \\texttt{gamma} )\\f]\n. where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. The function can be replaced with a matrix expression:\n. @code{.cpp}\n. dst = src1*alpha + src2*beta + gamma;\n. @endcode\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array.\n. @param alpha weight of the first array elements.\n. @param src2 second input array of the same size and channel number as src1.\n. @param beta weight of the second array elements.\n. @param gamma scalar added to each sum.\n. @param dst output array that has the same size and number of channels as the input arrays.\n. @param dtype optional depth of the output array; when both input arrays have the same depth, dtype\n. can be set to -1, which will be equivalent to src1.depth().\n. @sa add, subtract, scaleAdd, Mat::convertTo' - ... - -def applyColorMap(src: Mat, colormap, dts: Mat = ...) -> typing.Any: - 'applyColorMap(src, colormap[, dst]) -> dst\n. @brief Applies a GNU Octave/MATLAB equivalent colormap on a given image.\n. \n. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.\n. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.\n. @param colormap The colormap to apply, see #ColormapTypes\n\n\n\napplyColorMap(src, userColor[, dst]) -> dst\n. @brief Applies a user colormap on a given image.\n. \n. @param src The source image, grayscale or colored of type CV_8UC1 or CV_8UC3.\n. @param dst The result is the colormapped source image. Note: Mat::create is called on dst.\n. @param userColor The colormap to apply of type CV_8UC1 or CV_8UC3 and size 256' - ... - -def approxPolyDP(curve, epsilon, closed, approxCurve=...) -> typing.Any: - 'approxPolyDP(curve, epsilon, closed[, approxCurve]) -> approxCurve\n. @brief Approximates a polygonal curve(s) with the specified precision.\n. \n. The function cv::approxPolyDP approximates a curve or a polygon with another curve/polygon with less\n. vertices so that the distance between them is less or equal to the specified precision. It uses the\n. Douglas-Peucker algorithm \n. \n. @param curve Input vector of a 2D point stored in std::vector or Mat\n. @param approxCurve Result of the approximation. The type should match the type of the input curve.\n. @param epsilon Parameter specifying the approximation accuracy. This is the maximum distance\n. between the original curve and its approximation.\n. @param closed If true, the approximated curve is closed (its first and last vertices are\n. connected). Otherwise, it is not closed.' - ... - -def arcLength(curve, closed) -> typing.Any: - 'arcLength(curve, closed) -> retval\n. @brief Calculates a contour perimeter or a curve length.\n. \n. The function computes a curve length or a closed contour perimeter.\n. \n. @param curve Input vector of 2D points, stored in std::vector or Mat.\n. @param closed Flag indicating whether the curve is closed or not.' - ... - -def arrowedLine(img: Mat, pt1, pt2, color, thickness=..., line_type=..., shift=..., tipLength=...) -> typing.Any: - 'arrowedLine(img, pt1, pt2, color[, thickness[, line_type[, shift[, tipLength]]]]) -> img\n. @brief Draws a arrow segment pointing from the first point to the second one.\n. \n. The function cv::arrowedLine draws an arrow between pt1 and pt2 points in the image. See also #line.\n. \n. @param img Image.\n. @param pt1 The point the arrow starts from.\n. @param pt2 The point the arrow points to.\n. @param color Line color.\n. @param thickness Line thickness.\n. @param line_type Type of the line. See #LineTypes\n. @param shift Number of fractional bits in the point coordinates.\n. @param tipLength The length of the arrow tip in relation to the arrow length' - ... - -def batchDistance(src1: Mat, src2: Mat, dtype, dist=..., nidx=..., normType: int = ..., K=..., mask: Mat = ..., update=..., crosscheck=...) -> typing.Any: - 'batchDistance(src1, src2, dtype[, dist[, nidx[, normType[, K[, mask[, update[, crosscheck]]]]]]]) -> dist, nidx\n. @brief naive nearest neighbor finder\n. \n. see http://en.wikipedia.org/wiki/Nearest_neighbor_search\n. @todo document' - ... - -def bilateralFilter(src: Mat, d, sigmaColor, sigmaSpace, dts: Mat = ..., borderType=...) -> typing.Any: - 'bilateralFilter(src, d, sigmaColor, sigmaSpace[, dst[, borderType]]) -> dst\n. @brief Applies the bilateral filter to an image.\n. \n. The function applies bilateral filtering to the input image, as described in\n. http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html\n. bilateralFilter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is\n. very slow compared to most filters.\n. \n. _Sigma values_: For simplicity, you can set the 2 sigma values to be the same. If they are small (\\<\n. 10), the filter will not have much effect, whereas if they are large (\\> 150), they will have a very\n. strong effect, making the image look "cartoonish".\n. \n. _Filter size_: Large filters (d \\> 5) are very slow, so it is recommended to use d=5 for real-time\n. applications, and perhaps d=9 for offline applications that need heavy noise filtering.\n. \n. This filter does not work inplace.\n. @param src Source 8-bit or floating-point, 1-channel or 3-channel image.\n. @param dst Destination image of the same size and type as src .\n. @param d Diameter of each pixel neighborhood that is used during filtering. If it is non-positive,\n. it is computed from sigmaSpace.\n. @param sigmaColor Filter sigma in the color space. A larger value of the parameter means that\n. farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting\n. in larger areas of semi-equal color.\n. @param sigmaSpace Filter sigma in the coordinate space. A larger value of the parameter means that\n. farther pixels will influence each other as long as their colors are close enough (see sigmaColor\n. ). When d\\>0, it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is\n. proportional to sigmaSpace.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes' - ... - -def bitwise_and(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ...) -> typing.Any: - 'bitwise_and(src1, src2[, dst[, mask]]) -> dst\n. @brief computes bitwise conjunction of the two arrays (dst = src1 & src2)\n. Calculates the per-element bit-wise conjunction of two arrays or an\n. array and a scalar.\n. \n. The function cv::bitwise_and calculates the per-element bit-wise logical conjunction for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\wedge \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\wedge \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\wedge \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the second and third cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' - ... - -def bitwise_not(src: Mat, dts: Mat = ..., mask: Mat = ...) -> typing.Any: - 'bitwise_not(src[, dst[, mask]]) -> dst\n. @brief Inverts every bit of an array.\n. \n. The function cv::bitwise_not calculates per-element bit-wise inversion of the input\n. array:\n. \\f[\\texttt{dst} (I) = \\neg \\texttt{src} (I)\\f]\n. In case of a floating-point input array, its machine-specific bit\n. representation (usually IEEE754-compliant) is used for the operation. In\n. case of multi-channel arrays, each channel is processed independently.\n. @param src input array.\n. @param dst output array that has the same size and type as the input\n. array.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' - ... - -def bitwise_or(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ...) -> typing.Any: - 'bitwise_or(src1, src2[, dst[, mask]]) -> dst\n. @brief Calculates the per-element bit-wise disjunction of two arrays or an\n. array and a scalar.\n. \n. The function cv::bitwise_or calculates the per-element bit-wise logical disjunction for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\vee \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\vee \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\vee \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the second and third cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' - ... - -def bitwise_xor(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ...) -> typing.Any: - 'bitwise_xor(src1, src2[, dst[, mask]]) -> dst\n. @brief Calculates the per-element bit-wise "exclusive or" operation on two\n. arrays or an array and a scalar.\n. \n. The function cv::bitwise_xor calculates the per-element bit-wise logical "exclusive-or"\n. operation for:\n. * Two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\oplus \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * An array and a scalar when src2 is constructed from Scalar or has\n. the same number of elements as `src1.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\oplus \\texttt{src2} \\quad \\texttt{if mask} (I) \\ne0\\f]\n. * A scalar and an array when src1 is constructed from Scalar or has\n. the same number of elements as `src2.channels()`:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\oplus \\texttt{src2} (I) \\quad \\texttt{if mask} (I) \\ne0\\f]\n. In case of floating-point arrays, their machine-specific bit\n. representations (usually IEEE754-compliant) are used for the operation.\n. In case of multi-channel arrays, each channel is processed\n. independently. In the 2nd and 3rd cases above, the scalar is first\n. converted to the array type.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array that has the same size and type as the input\n. arrays.\n. @param mask optional operation mask, 8-bit single channel array, that\n. specifies elements of the output array to be changed.' - ... - -def blur(src: Mat, ksize, dts: Mat = ..., anchor=..., borderType=...) -> typing.Any: - 'blur(src, ksize[, dst[, anchor[, borderType]]]) -> dst\n. @brief Blurs an image using the normalized box filter.\n. \n. The function smooths an image using the kernel:\n. \n. \\f[\\texttt{K} = \\frac{1}{\\texttt{ksize.width*ksize.height}} \\begin{bmatrix} 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\hdotsfor{6} \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\end{bmatrix}\\f]\n. \n. The call `blur(src, dst, ksize, anchor, borderType)` is equivalent to `boxFilter(src, dst, src.type(), ksize,\n. anchor, true, borderType)`.\n. \n. @param src input image; it can have any number of channels, which are processed independently, but\n. the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param ksize blurring kernel size.\n. @param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel\n. center.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa boxFilter, bilateralFilter, GaussianBlur, medianBlur' - ... - -def borderInterpolate(p, len, borderType) -> typing.Any: - 'borderInterpolate(p, len, borderType) -> retval\n. @brief Computes the source location of an extrapolated pixel.\n. \n. The function computes and returns the coordinate of a donor pixel corresponding to the specified\n. extrapolated pixel when using the specified extrapolation border mode. For example, if you use\n. cv::BORDER_WRAP mode in the horizontal direction, cv::BORDER_REFLECT_101 in the vertical direction and\n. want to compute value of the "virtual" pixel Point(-5, 100) in a floating-point image img , it\n. looks like:\n. @code{.cpp}\n. float val = img.at(borderInterpolate(100, img.rows, cv::BORDER_REFLECT_101),\n. borderInterpolate(-5, img.cols, cv::BORDER_WRAP));\n. @endcode\n. Normally, the function is not called directly. It is used inside filtering functions and also in\n. copyMakeBorder.\n. @param p 0-based coordinate of the extrapolated pixel along one of the axes, likely \\<0 or \\>= len\n. @param len Length of the array along the corresponding axis.\n. @param borderType Border type, one of the #BorderTypes, except for #BORDER_TRANSPARENT and\n. #BORDER_ISOLATED . When borderType==#BORDER_CONSTANT , the function always returns -1, regardless\n. of p and len.\n. \n. @sa copyMakeBorder' - ... - -def boundingRect(array) -> typing.Any: - 'boundingRect(array) -> retval\n. @brief Calculates the up-right bounding rectangle of a point set or non-zero pixels of gray-scale image.\n. \n. The function calculates and returns the minimal up-right bounding rectangle for the specified point set or\n. non-zero pixels of gray-scale image.\n. \n. @param array Input gray-scale image or 2D point set, stored in std::vector or Mat.' - ... - -def boxFilter(src: Mat, ddepth, ksize, dts: Mat = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: - 'boxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst\n. @brief Blurs an image using the box filter.\n. \n. The function smooths an image using the kernel:\n. \n. \\f[\\texttt{K} = \\alpha \\begin{bmatrix} 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\\\ \\hdotsfor{6} \\\\ 1 & 1 & 1 & \\cdots & 1 & 1 \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[\\alpha = \\begin{cases} \\frac{1}{\\texttt{ksize.width*ksize.height}} & \\texttt{when } \\texttt{normalize=true} \\\\1 & \\texttt{otherwise}\\end{cases}\\f]\n. \n. Unnormalized box filter is useful for computing various integral characteristics over each pixel\n. neighborhood, such as covariance matrices of image derivatives (used in dense optical flow\n. algorithms, and so on). If you need to compute pixel sums over variable-size windows, use #integral.\n. \n. @param src input image.\n. @param dst output image of the same size and type as src.\n. @param ddepth the output image depth (-1 to use src.depth()).\n. @param ksize blurring kernel size.\n. @param anchor anchor point; default value Point(-1,-1) means that the anchor is at the kernel\n. center.\n. @param normalize flag, specifying whether the kernel is normalized by its area or not.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa blur, bilateralFilter, GaussianBlur, medianBlur, integral' - ... - -def boxPoints(box, points=...) -> typing.Any: - 'boxPoints(box[, points]) -> points\n. @brief Finds the four vertices of a rotated rect. Useful to draw the rotated rectangle.\n. \n. The function finds the four vertices of a rotated rectangle. This function is useful to draw the\n. rectangle. In C++, instead of using this function, you can directly use RotatedRect::points method. Please\n. visit the @ref tutorial_bounding_rotated_ellipses "tutorial on Creating Bounding rotated boxes and ellipses for contours" for more information.\n. \n. @param box The input rotated rectangle. It may be the output of\n. @param points The output array of four vertices of rectangles.' - ... - -def buildOpticalFlowPyramid(img: Mat, winSize, maxLevel, pyramid=..., withDerivatives=..., pyrBorder=..., derivBorder=..., tryReuseInputImage=...) -> typing.Any: - 'buildOpticalFlowPyramid(img, winSize, maxLevel[, pyramid[, withDerivatives[, pyrBorder[, derivBorder[, tryReuseInputImage]]]]]) -> retval, pyramid\n. @brief Constructs the image pyramid which can be passed to calcOpticalFlowPyrLK.\n. \n. @param img 8-bit input image.\n. @param pyramid output pyramid.\n. @param winSize window size of optical flow algorithm. Must be not less than winSize argument of\n. calcOpticalFlowPyrLK. It is needed to calculate required padding for pyramid levels.\n. @param maxLevel 0-based maximal pyramid level number.\n. @param withDerivatives set to precompute gradients for the every pyramid level. If pyramid is\n. constructed without the gradients then calcOpticalFlowPyrLK will calculate them internally.\n. @param pyrBorder the border mode for pyramid layers.\n. @param derivBorder the border mode for gradients.\n. @param tryReuseInputImage put ROI of input image into the pyramid if possible. You can pass false\n. to force data copying.\n. @return number of levels in constructed pyramid. Can be less than maxLevel.' - ... - -def calcBackProject(images: typing.List[Mat], channels: typing.List[int], hist, ranges: typing.List[int], scale, dts: Mat = ...) -> typing.Any: - 'calcBackProject(images, channels, hist, ranges, scale[, dst]) -> dst\n. @overload' - ... - -def calcCovarMatrix(samples, mean, flags: int, covar=..., ctype=...) -> typing.Any: - "calcCovarMatrix(samples, mean, flags[, covar[, ctype]]) -> covar, mean\n. @overload\n. @note use #COVAR_ROWS or #COVAR_COLS flag\n. @param samples samples stored as rows/columns of a single matrix.\n. @param covar output covariance matrix of the type ctype and square size.\n. @param mean input or output (depending on the flags) array as the average value of the input vectors.\n. @param flags operation flags as a combination of #CovarFlags\n. @param ctype type of the matrixl; it equals 'CV_64F' by default." - ... - -def calcHist(images: typing.List[Mat], channels: typing.List[int], mask: typing.Optional[Mat], histSize: typing.List[int], ranges: typing.List[int], hist=..., accumulate=...) -> Mat: - 'calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) -> hist\n. @overload' - ... - -def calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags: int) -> typing.Any: - "calcOpticalFlowFarneback(prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags) -> flow\n. @brief Computes a dense optical flow using the Gunnar Farneback's algorithm.\n. \n. @param prev first 8-bit single-channel input image.\n. @param next second input image of the same size and the same type as prev.\n. @param flow computed flow image that has the same size as prev and type CV_32FC2.\n. @param pyr_scale parameter, specifying the image scale (\\<1) to build pyramids for each image;\n. pyr_scale=0.5 means a classical pyramid, where each next layer is twice smaller than the previous\n. one.\n. @param levels number of pyramid layers including the initial image; levels=1 means that no extra\n. layers are created and only the original images are used.\n. @param winsize averaging window size; larger values increase the algorithm robustness to image\n. noise and give more chances for fast motion detection, but yield more blurred motion field.\n. @param iterations number of iterations the algorithm does at each pyramid level.\n. @param poly_n size of the pixel neighborhood used to find polynomial expansion in each pixel;\n. larger values mean that the image will be approximated with smoother surfaces, yielding more\n. robust algorithm and more blurred motion field, typically poly_n =5 or 7.\n. @param poly_sigma standard deviation of the Gaussian that is used to smooth derivatives used as a\n. basis for the polynomial expansion; for poly_n=5, you can set poly_sigma=1.1, for poly_n=7, a\n. good value would be poly_sigma=1.5.\n. @param flags operation flags that can be a combination of the following:\n. - **OPTFLOW_USE_INITIAL_FLOW** uses the input flow as an initial flow approximation.\n. - **OPTFLOW_FARNEBACK_GAUSSIAN** uses the Gaussian \\f$\\texttt{winsize}\\times\\texttt{winsize}\\f$\n. filter instead of a box filter of the same size for optical flow estimation; usually, this\n. option gives z more accurate flow than with a box filter, at the cost of lower speed;\n. normally, winsize for a Gaussian window should be set to a larger value to achieve the same\n. level of robustness.\n. \n. The function finds an optical flow for each prev pixel using the @cite Farneback2003 algorithm so that\n. \n. \\f[\\texttt{prev} (y,x) \\sim \\texttt{next} ( y + \\texttt{flow} (y,x)[1], x + \\texttt{flow} (y,x)[0])\\f]\n. \n. @note\n. \n. - An example using the optical flow algorithm described by Gunnar Farneback can be found at\n. opencv_source_code/samples/cpp/fback.cpp\n. - (Python) An example using the optical flow algorithm described by Gunnar Farneback can be\n. found at opencv_source_code/samples/python/opt_flow.py" - ... - -def calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status=..., err=..., winSize=..., maxLevel=..., criteria=..., flags: int = ..., minEigThreshold=...) -> typing.Any: - "calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts[, status[, err[, winSize[, maxLevel[, criteria[, flags[, minEigThreshold]]]]]]]) -> nextPts, status, err\n. @brief Calculates an optical flow for a sparse feature set using the iterative Lucas-Kanade method with\n. pyramids.\n. \n. @param prevImg first 8-bit input image or pyramid constructed by buildOpticalFlowPyramid.\n. @param nextImg second input image or pyramid of the same size and the same type as prevImg.\n. @param prevPts vector of 2D points for which the flow needs to be found; point coordinates must be\n. single-precision floating-point numbers.\n. @param nextPts output vector of 2D points (with single-precision floating-point coordinates)\n. containing the calculated new positions of input features in the second image; when\n. OPTFLOW_USE_INITIAL_FLOW flag is passed, the vector must have the same size as in the input.\n. @param status output status vector (of unsigned chars); each element of the vector is set to 1 if\n. the flow for the corresponding features has been found, otherwise, it is set to 0.\n. @param err output vector of errors; each element of the vector is set to an error for the\n. corresponding feature, type of the error measure can be set in flags parameter; if the flow wasn't\n. found then the error is not defined (use the status parameter to find such cases).\n. @param winSize size of the search window at each pyramid level.\n. @param maxLevel 0-based maximal pyramid level number; if set to 0, pyramids are not used (single\n. level), if set to 1, two levels are used, and so on; if pyramids are passed to input then\n. algorithm will use as many levels as pyramids have but no more than maxLevel.\n. @param criteria parameter, specifying the termination criteria of the iterative search algorithm\n. (after the specified maximum number of iterations criteria.maxCount or when the search window\n. moves by less than criteria.epsilon.\n. @param flags operation flags:\n. - **OPTFLOW_USE_INITIAL_FLOW** uses initial estimations, stored in nextPts; if the flag is\n. not set, then prevPts is copied to nextPts and is considered the initial estimate.\n. - **OPTFLOW_LK_GET_MIN_EIGENVALS** use minimum eigen values as an error measure (see\n. minEigThreshold description); if the flag is not set, then L1 distance between patches\n. around the original and a moved point, divided by number of pixels in a window, is used as a\n. error measure.\n. @param minEigThreshold the algorithm calculates the minimum eigen value of a 2x2 normal matrix of\n. optical flow equations (this matrix is called a spatial gradient matrix in @cite Bouguet00), divided\n. by number of pixels in a window; if this value is less than minEigThreshold, then a corresponding\n. feature is filtered out and its flow is not processed, so it allows to remove bad points and get a\n. performance boost.\n. \n. The function implements a sparse iterative version of the Lucas-Kanade optical flow in pyramids. See\n. @cite Bouguet00 . The function is parallelized with the TBB library.\n. \n. @note\n. \n. - An example using the Lucas-Kanade optical flow algorithm can be found at\n. opencv_source_code/samples/cpp/lkdemo.cpp\n. - (Python) An example using the Lucas-Kanade optical flow algorithm can be found at\n. opencv_source_code/samples/python/lk_track.py\n. - (Python) An example using the Lucas-Kanade tracker for homography matching can be found at\n. opencv_source_code/samples/python/lk_homography.py" - ... - -def calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., flags: int = ..., criteria=...) -> typing.Any: - 'calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, flags[, criteria]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs\n. @overload' - ... - -def calibrateCameraExtended(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., stdDeviationsIntrinsics=..., stdDeviationsExtrinsics=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: - "calibrateCameraExtended(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs[, rvecs[, tvecs[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, perViewErrors[, flags[, criteria]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors\n. @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration\n. pattern.\n. \n. @param objectPoints In the new interface it is a vector of vectors of calibration pattern points in\n. the calibration pattern coordinate space (e.g. std::vector>). The outer\n. vector contains as many elements as the number of pattern views. If the same calibration pattern\n. is shown in each view and it is fully visible, all the vectors will be the same. Although, it is\n. possible to use partially occluded patterns or even different patterns in different views. Then,\n. the vectors will be different. Although the points are 3D, they all lie in the calibration pattern's\n. XY coordinate plane (thus 0 in the Z-coordinate), if the used calibration pattern is a planar rig.\n. In the old interface all the vectors of object points from different views are concatenated\n. together.\n. @param imagePoints In the new interface it is a vector of vectors of the projections of calibration\n. pattern points (e.g. std::vector>). imagePoints.size() and\n. objectPoints.size(), and imagePoints[i].size() and objectPoints[i].size() for each i, must be equal,\n. respectively. In the old interface all the vectors of object points from different views are\n. concatenated together.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrix.\n. @param cameraMatrix Input/output 3x3 floating-point camera matrix\n. \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ . If CV\\_CALIB\\_USE\\_INTRINSIC\\_GUESS\n. and/or CALIB_FIX_ASPECT_RATIO are specified, some or all of fx, fy, cx, cy must be\n. initialized before calling the function.\n. @param distCoeffs Input/output vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements.\n. @param rvecs Output vector of rotation vectors (@ref Rodrigues ) estimated for each pattern view\n. (e.g. std::vector>). That is, each i-th rotation vector together with the corresponding\n. i-th translation vector (see the next output parameter description) brings the calibration pattern\n. from the object coordinate space (in which object points are specified) to the camera coordinate\n. space. In more technical terms, the tuple of the i-th rotation and translation vector performs\n. a change of basis from object coordinate space to camera coordinate space. Due to its duality, this\n. tuple is equivalent to the position of the calibration pattern with respect to the camera coordinate\n. space.\n. @param tvecs Output vector of translation vectors estimated for each pattern view, see parameter\n. describtion above.\n. @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic\n. parameters. Order of deviations values:\n. \\f$(f_x, f_y, c_x, c_y, k_1, k_2, p_1, p_2, k_3, k_4, k_5, k_6 , s_1, s_2, s_3,\n. s_4, \\tau_x, \\tau_y)\\f$ If one of parameters is not estimated, it's deviation is equals to zero.\n. @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic\n. parameters. Order of deviations values: \\f$(R_0, T_0, \\dotsc , R_{M - 1}, T_{M - 1})\\f$ where M is\n. the number of pattern views. \\f$R_i, T_i\\f$ are concatenated 1x3 vectors.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of the following values:\n. - **CALIB_USE_INTRINSIC_GUESS** cameraMatrix contains valid initial values of\n. fx, fy, cx, cy that are optimized further. Otherwise, (cx, cy) is initially set to the image\n. center ( imageSize is used), and focal distances are computed in a least-squares fashion.\n. Note, that if intrinsic parameters are known, there is no need to use this function just to\n. estimate extrinsic parameters. Use solvePnP instead.\n. - **CALIB_FIX_PRINCIPAL_POINT** The principal point is not changed during the global\n. optimization. It stays at the center or at a different location specified when\n. CALIB_USE_INTRINSIC_GUESS is set too.\n. - **CALIB_FIX_ASPECT_RATIO** The functions consider only fy as a free parameter. The\n. ratio fx/fy stays the same as in the input cameraMatrix . When\n. CALIB_USE_INTRINSIC_GUESS is not set, the actual input values of fx and fy are\n. ignored, only their ratio is computed and used further.\n. - **CALIB_ZERO_TANGENT_DIST** Tangential distortion coefficients \\f$(p_1, p_2)\\f$ are set\n. to zeros and stay zero.\n. - **CALIB_FIX_K1,...,CALIB_FIX_K6** The corresponding radial distortion\n. coefficient is not changed during the optimization. If CALIB_USE_INTRINSIC_GUESS is\n. set, the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_RATIONAL_MODEL** Coefficients k4, k5, and k6 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the rational model and return 8 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the thin prism model and return 12 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the tilted sensor model and return 14 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. @return the overall RMS re-projection error.\n. \n. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the\n. views. The algorithm is based on @cite Zhang2000 and @cite BouguetMCT . The coordinates of 3D object\n. points and their corresponding 2D projections in each view must be specified. That may be achieved\n. by using an object with known geometry and easily detectable feature points. Such an object is\n. called a calibration rig or calibration pattern, and OpenCV has built-in support for a chessboard as\n. a calibration rig (see @ref findChessboardCorners). Currently, initialization of intrinsic\n. parameters (when CALIB_USE_INTRINSIC_GUESS is not set) is only implemented for planar calibration\n. patterns (where Z-coordinates of the object points must be all zeros). 3D calibration rigs can also\n. be used as long as initial cameraMatrix is provided.\n. \n. The algorithm performs the following steps:\n. \n. - Compute the initial intrinsic parameters (the option only available for planar calibration\n. patterns) or read them from the input parameters. The distortion coefficients are all set to\n. zeros initially unless some of CALIB_FIX_K? are specified.\n. \n. - Estimate the initial camera pose as if the intrinsic parameters have been already known. This is\n. done using solvePnP .\n. \n. - Run the global Levenberg-Marquardt optimization algorithm to minimize the reprojection error,\n. that is, the total sum of squared distances between the observed feature points imagePoints and\n. the projected (using the current estimates for camera parameters and the poses) object points\n. objectPoints. See projectPoints for details.\n. \n. @note\n. If you use a non-square (i.e. non-N-by-N) grid and @ref findChessboardCorners for calibration,\n. and @ref calibrateCamera returns bad values (zero distortion coefficients, \\f$c_x\\f$ and\n. \\f$c_y\\f$ very far from the image center, and/or large differences between \\f$f_x\\f$ and\n. \\f$f_y\\f$ (ratios of 10:1 or more)), then you are probably using patternSize=cvSize(rows,cols)\n. instead of using patternSize=cvSize(cols,rows) in @ref findChessboardCorners.\n. \n. @sa\n. calibrateCameraRO, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate,\n. undistort" - ... - -def calibrateCameraRO(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., newObjPoints=..., flags: int = ..., criteria=...) -> typing.Any: - 'calibrateCameraRO(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs[, rvecs[, tvecs[, newObjPoints[, flags[, criteria]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, newObjPoints\n. @overload' - ... - -def calibrateCameraROExtended(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., newObjPoints=..., stdDeviationsIntrinsics=..., stdDeviationsExtrinsics=..., stdDeviationsObjPoints=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: - 'calibrateCameraROExtended(objectPoints, imagePoints, imageSize, iFixedPoint, cameraMatrix, distCoeffs[, rvecs[, tvecs[, newObjPoints[, stdDeviationsIntrinsics[, stdDeviationsExtrinsics[, stdDeviationsObjPoints[, perViewErrors[, flags[, criteria]]]]]]]]]) -> retval, cameraMatrix, distCoeffs, rvecs, tvecs, newObjPoints, stdDeviationsIntrinsics, stdDeviationsExtrinsics, stdDeviationsObjPoints, perViewErrors\n. @brief Finds the camera intrinsic and extrinsic parameters from several views of a calibration pattern.\n. \n. This function is an extension of calibrateCamera() with the method of releasing object which was\n. proposed in @cite strobl2011iccv. In many common cases with inaccurate, unmeasured, roughly planar\n. targets (calibration plates), this method can dramatically improve the precision of the estimated\n. camera parameters. Both the object-releasing method and standard method are supported by this\n. function. Use the parameter **iFixedPoint** for method selection. In the internal implementation,\n. calibrateCamera() is a wrapper for this function.\n. \n. @param objectPoints Vector of vectors of calibration pattern points in the calibration pattern\n. coordinate space. See calibrateCamera() for details. If the method of releasing object to be used,\n. the identical calibration board must be used in each view and it must be fully visible, and all\n. objectPoints[i] must be the same and all points should be roughly close to a plane. **The calibration\n. target has to be rigid, or at least static if the camera (rather than the calibration target) is\n. shifted for grabbing images.**\n. @param imagePoints Vector of vectors of the projections of calibration pattern points. See\n. calibrateCamera() for details.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrix.\n. @param iFixedPoint The index of the 3D object point in objectPoints[0] to be fixed. It also acts as\n. a switch for calibration method selection. If object-releasing method to be used, pass in the\n. parameter in the range of [1, objectPoints[0].size()-2], otherwise a value out of this range will\n. make standard calibration method selected. Usually the top-right corner point of the calibration\n. board grid is recommended to be fixed when object-releasing method being utilized. According to\n. \\cite strobl2011iccv, two other points are also fixed. In this implementation, objectPoints[0].front\n. and objectPoints[0].back.z are used. With object-releasing method, accurate rvecs, tvecs and\n. newObjPoints are only possible if coordinates of these three fixed points are accurate enough.\n. @param cameraMatrix Output 3x3 floating-point camera matrix. See calibrateCamera() for details.\n. @param distCoeffs Output vector of distortion coefficients. See calibrateCamera() for details.\n. @param rvecs Output vector of rotation vectors estimated for each pattern view. See calibrateCamera()\n. for details.\n. @param tvecs Output vector of translation vectors estimated for each pattern view.\n. @param newObjPoints The updated output vector of calibration pattern points. The coordinates might\n. be scaled based on three fixed points. The returned coordinates are accurate only if the above\n. mentioned three fixed points are accurate. If not needed, noArray() can be passed in. This parameter\n. is ignored with standard calibration method.\n. @param stdDeviationsIntrinsics Output vector of standard deviations estimated for intrinsic parameters.\n. See calibrateCamera() for details.\n. @param stdDeviationsExtrinsics Output vector of standard deviations estimated for extrinsic parameters.\n. See calibrateCamera() for details.\n. @param stdDeviationsObjPoints Output vector of standard deviations estimated for refined coordinates\n. of calibration pattern points. It has the same size and order as objectPoints[0] vector. This\n. parameter is ignored with standard calibration method.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of some predefined values. See\n. calibrateCamera() for details. If the method of releasing object is used, the calibration time may\n. be much longer. CALIB_USE_QR or CALIB_USE_LU could be used for faster calibration with potentially\n. less precise and less stable in some rare cases.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. @return the overall RMS re-projection error.\n. \n. The function estimates the intrinsic camera parameters and extrinsic parameters for each of the\n. views. The algorithm is based on @cite Zhang2000, @cite BouguetMCT and @cite strobl2011iccv. See\n. calibrateCamera() for other detailed explanations.\n. @sa\n. calibrateCamera, findChessboardCorners, solvePnP, initCameraMatrix2D, stereoCalibrate, undistort' - ... - -def calibrateHandEye(R_gripper2base, t_gripper2base, R_target2cam, t_target2cam, R_cam2gripper=..., t_cam2gripper=..., method: int = ...) -> typing.Any: - 'calibrateHandEye(R_gripper2base, t_gripper2base, R_target2cam, t_target2cam[, R_cam2gripper[, t_cam2gripper[, method]]]) -> R_cam2gripper, t_cam2gripper\n. @brief Computes Hand-Eye calibration: \\f$_{}^{g}\\textrm{T}_c\\f$\n. \n. @param[in] R_gripper2base Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the gripper frame to the robot base frame (\\f$_{}^{b}\\textrm{T}_g\\f$).\n. This is a vector (`vector`) that contains the rotation matrices for all the transformations\n. from gripper frame to robot base frame.\n. @param[in] t_gripper2base Translation part extracted from the homogeneous matrix that transforms a point\n. expressed in the gripper frame to the robot base frame (\\f$_{}^{b}\\textrm{T}_g\\f$).\n. This is a vector (`vector`) that contains the translation vectors for all the transformations\n. from gripper frame to robot base frame.\n. @param[in] R_target2cam Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the target frame to the camera frame (\\f$_{}^{c}\\textrm{T}_t\\f$).\n. This is a vector (`vector`) that contains the rotation matrices for all the transformations\n. from calibration target frame to camera frame.\n. @param[in] t_target2cam Rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the target frame to the camera frame (\\f$_{}^{c}\\textrm{T}_t\\f$).\n. This is a vector (`vector`) that contains the translation vectors for all the transformations\n. from calibration target frame to camera frame.\n. @param[out] R_cam2gripper Estimated rotation part extracted from the homogeneous matrix that transforms a point\n. expressed in the camera frame to the gripper frame (\\f$_{}^{g}\\textrm{T}_c\\f$).\n. @param[out] t_cam2gripper Estimated translation part extracted from the homogeneous matrix that transforms a point\n. expressed in the camera frame to the gripper frame (\\f$_{}^{g}\\textrm{T}_c\\f$).\n. @param[in] method One of the implemented Hand-Eye calibration method, see cv::HandEyeCalibrationMethod\n. \n. The function performs the Hand-Eye calibration using various methods. One approach consists in estimating the\n. rotation then the translation (separable solutions) and the following methods are implemented:\n. - R. Tsai, R. Lenz A New Technique for Fully Autonomous and Efficient 3D Robotics Hand/EyeCalibration \\cite Tsai89\n. - F. Park, B. Martin Robot Sensor Calibration: Solving AX = XB on the Euclidean Group \\cite Park94\n. - R. Horaud, F. Dornaika Hand-Eye Calibration \\cite Horaud95\n. \n. Another approach consists in estimating simultaneously the rotation and the translation (simultaneous solutions),\n. with the following implemented method:\n. - N. Andreff, R. Horaud, B. Espiau On-line Hand-Eye Calibration \\cite Andreff99\n. - K. Daniilidis Hand-Eye Calibration Using Dual Quaternions \\cite Daniilidis98\n. \n. The following picture describes the Hand-Eye calibration problem where the transformation between a camera ("eye")\n. mounted on a robot gripper ("hand") has to be estimated.\n. \n. ![](pics/hand-eye_figure.png)\n. \n. The calibration procedure is the following:\n. - a static calibration pattern is used to estimate the transformation between the target frame\n. and the camera frame\n. - the robot gripper is moved in order to acquire several poses\n. - for each pose, the homogeneous transformation between the gripper frame and the robot base frame is recorded using for\n. instance the robot kinematics\n. \\f[\n. \\begin{bmatrix}\n. X_b\\\\\n. Y_b\\\\\n. Z_b\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{b}\\textrm{R}_g & _{}^{b}\\textrm{t}_g \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_g\\\\\n. Y_g\\\\\n. Z_g\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. - for each pose, the homogeneous transformation between the calibration target frame and the camera frame is recorded using\n. for instance a pose estimation method (PnP) from 2D-3D point correspondences\n. \\f[\n. \\begin{bmatrix}\n. X_c\\\\\n. Y_c\\\\\n. Z_c\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{c}\\textrm{R}_t & _{}^{c}\\textrm{t}_t \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_t\\\\\n. Y_t\\\\\n. Z_t\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. \n. The Hand-Eye calibration procedure returns the following homogeneous transformation\n. \\f[\n. \\begin{bmatrix}\n. X_g\\\\\n. Y_g\\\\\n. Z_g\\\\\n. 1\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. _{}^{g}\\textrm{R}_c & _{}^{g}\\textrm{t}_c \\\\\n. 0_{1 \\times 3} & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_c\\\\\n. Y_c\\\\\n. Z_c\\\\\n. 1\n. \\end{bmatrix}\n. \\f]\n. \n. This problem is also known as solving the \\f$\\mathbf{A}\\mathbf{X}=\\mathbf{X}\\mathbf{B}\\f$ equation:\n. \\f[\n. \\begin{align*}\n. ^{b}{\\textrm{T}_g}^{(1)} \\hspace{0.2em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(1)} &=\n. \\hspace{0.1em} ^{b}{\\textrm{T}_g}^{(2)} \\hspace{0.2em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(2)} \\\\\n. \n. (^{b}{\\textrm{T}_g}^{(2)})^{-1} \\hspace{0.2em} ^{b}{\\textrm{T}_g}^{(1)} \\hspace{0.2em} ^{g}\\textrm{T}_c &=\n. \\hspace{0.1em} ^{g}\\textrm{T}_c \\hspace{0.2em} ^{c}{\\textrm{T}_t}^{(2)} (^{c}{\\textrm{T}_t}^{(1)})^{-1} \\\\\n. \n. \\textrm{A}_i \\textrm{X} &= \\textrm{X} \\textrm{B}_i \\\\\n. \\end{align*}\n. \\f]\n. \n. \\note\n. Additional information can be found on this [website](http://campar.in.tum.de/Chair/HandEyeCalibration).\n. \\note\n. A minimum of 2 motions with non parallel rotation axes are necessary to determine the hand-eye transformation.\n. So at least 3 different poses are required, but it is strongly recommended to use many more poses.' - ... - -def calibrationMatrixValues(cameraMatrix, imageSize, apertureWidth, apertureHeight) -> typing.Any: - "calibrationMatrixValues(cameraMatrix, imageSize, apertureWidth, apertureHeight) -> fovx, fovy, focalLength, principalPoint, aspectRatio\n. @brief Computes useful camera characteristics from the camera matrix.\n. \n. @param cameraMatrix Input camera matrix that can be estimated by calibrateCamera or\n. stereoCalibrate .\n. @param imageSize Input image size in pixels.\n. @param apertureWidth Physical width in mm of the sensor.\n. @param apertureHeight Physical height in mm of the sensor.\n. @param fovx Output field of view in degrees along the horizontal sensor axis.\n. @param fovy Output field of view in degrees along the vertical sensor axis.\n. @param focalLength Focal length of the lens in mm.\n. @param principalPoint Principal point in mm.\n. @param aspectRatio \\f$f_y/f_x\\f$\n. \n. The function computes various useful camera characteristics from the previously estimated camera\n. matrix.\n. \n. @note\n. Do keep in mind that the unity measure 'mm' stands for whatever unit of measure one chooses for\n. the chessboard pitch (it can thus be any value)." - ... - -def cartToPolar(x, y, magnitude=..., angle=..., angleInDegrees=...) -> typing.Any: - 'cartToPolar(x, y[, magnitude[, angle[, angleInDegrees]]]) -> magnitude, angle\n. @brief Calculates the magnitude and angle of 2D vectors.\n. \n. The function cv::cartToPolar calculates either the magnitude, angle, or both\n. for every 2D vector (x(I),y(I)):\n. \\f[\\begin{array}{l} \\texttt{magnitude} (I)= \\sqrt{\\texttt{x}(I)^2+\\texttt{y}(I)^2} , \\\\ \\texttt{angle} (I)= \\texttt{atan2} ( \\texttt{y} (I), \\texttt{x} (I))[ \\cdot180 / \\pi ] \\end{array}\\f]\n. \n. The angles are calculated with accuracy about 0.3 degrees. For the point\n. (0,0), the angle is set to 0.\n. @param x array of x-coordinates; this must be a single-precision or\n. double-precision floating-point array.\n. @param y array of y-coordinates, that must have the same size and same type as x.\n. @param magnitude output array of magnitudes of the same size and type as x.\n. @param angle output array of angles that has the same size and type as\n. x; the angles are measured in radians (from 0 to 2\\*Pi) or in degrees (0 to 360 degrees).\n. @param angleInDegrees a flag, indicating whether the angles are measured\n. in radians (which is by default), or in degrees.\n. @sa Sobel, Scharr' - ... - -def checkChessboard(img: Mat, size) -> typing.Any: - 'checkChessboard(img, size) -> retval\n.' - ... - -def checkHardwareSupport(feature) -> typing.Any: - 'checkHardwareSupport(feature) -> retval\n. @brief Returns true if the specified feature is supported by the host hardware.\n. \n. The function returns true if the host hardware supports the specified feature. When user calls\n. setUseOptimized(false), the subsequent calls to checkHardwareSupport() will return false until\n. setUseOptimized(true) is called. This way user can dynamically switch on and off the optimized code\n. in OpenCV.\n. @param feature The feature of interest, one of cv::CpuFeatures' - ... - -def checkRange(a, quiet=..., minVal=..., maxVal=...) -> typing.Any: - 'checkRange(a[, quiet[, minVal[, maxVal]]]) -> retval, pos\n. @brief Checks every element of an input array for invalid values.\n. \n. The function cv::checkRange checks that every array element is neither NaN nor infinite. When minVal \\>\n. -DBL_MAX and maxVal \\< DBL_MAX, the function also checks that each value is between minVal and\n. maxVal. In case of multi-channel arrays, each channel is processed independently. If some values\n. are out of range, position of the first outlier is stored in pos (when pos != NULL). Then, the\n. function either returns false (when quiet=true) or throws an exception.\n. @param a input array.\n. @param quiet a flag, indicating whether the functions quietly return false when the array elements\n. are out of range or they throw an exception.\n. @param pos optional output parameter, when not NULL, must be a pointer to array of src.dims\n. elements.\n. @param minVal inclusive lower boundary of valid values range.\n. @param maxVal exclusive upper boundary of valid values range.' - ... - -def circle(img: Mat, center, radius, color, thickness=..., lineType=..., shift=...) -> typing.Any: - 'circle(img, center, radius, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a circle.\n. \n. The function cv::circle draws a simple or filled circle with a given center and radius.\n. @param img Image where the circle is drawn.\n. @param center Center of the circle.\n. @param radius Radius of the circle.\n. @param color Circle color.\n. @param thickness Thickness of the circle outline, if positive. Negative values, like #FILLED,\n. mean that a filled circle is to be drawn.\n. @param lineType Type of the circle boundary. See #LineTypes\n. @param shift Number of fractional bits in the coordinates of the center and in the radius value.' - ... - -def clipLine(imgRect, pt1, pt2) -> typing.Any: - 'clipLine(imgRect, pt1, pt2) -> retval, pt1, pt2\n. @overload\n. @param imgRect Image rectangle.\n. @param pt1 First line point.\n. @param pt2 Second line point.' - ... - -def colorChange(src: Mat, mask: Mat, dts: Mat = ..., red_mul=..., green_mul=..., blue_mul=...) -> typing.Any: - 'colorChange(src, mask[, dst[, red_mul[, green_mul[, blue_mul]]]]) -> dst\n. @brief Given an original color image, two differently colored versions of this image can be mixed\n. seamlessly.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src .\n. @param red_mul R-channel multiply factor.\n. @param green_mul G-channel multiply factor.\n. @param blue_mul B-channel multiply factor.\n. \n. Multiplication factor is between .5 to 2.5.' - ... - -def compare(src1: Mat, src2: Mat, cmpop, dts: Mat = ...) -> typing.Any: - 'compare(src1, src2, cmpop[, dst]) -> dst\n. @brief Performs the per-element comparison of two arrays or an array and scalar value.\n. \n. The function compares:\n. * Elements of two arrays when src1 and src2 have the same size:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} (I) \\,\\texttt{cmpop}\\, \\texttt{src2} (I)\\f]\n. * Elements of src1 with a scalar src2 when src2 is constructed from\n. Scalar or has a single element:\n. \\f[\\texttt{dst} (I) = \\texttt{src1}(I) \\,\\texttt{cmpop}\\, \\texttt{src2}\\f]\n. * src1 with elements of src2 when src1 is constructed from Scalar or\n. has a single element:\n. \\f[\\texttt{dst} (I) = \\texttt{src1} \\,\\texttt{cmpop}\\, \\texttt{src2} (I)\\f]\n. When the comparison result is true, the corresponding element of output\n. array is set to 255. The comparison operations can be replaced with the\n. equivalent matrix expressions:\n. @code{.cpp}\n. Mat dst1 = src1 >= src2;\n. Mat dst2 = src1 < 8;\n. ...\n. @endcode\n. @param src1 first input array or a scalar; when it is an array, it must have a single channel.\n. @param src2 second input array or a scalar; when it is an array, it must have a single channel.\n. @param dst output array of type ref CV_8U that has the same size and the same number of channels as\n. the input arrays.\n. @param cmpop a flag, that specifies correspondence between the arrays (cv::CmpTypes)\n. @sa checkRange, min, max, threshold' - ... - -def compareHist(H1: Mat, H2: Mat, method: int) -> float: - 'compareHist(H1, H2, method) -> retval\n. @brief Compares two histograms.\n. \n. The function cv::compareHist compares two dense or two sparse histograms using the specified method.\n. \n. The function returns \\f$d(H_1, H_2)\\f$ .\n. \n. While the function works well with 1-, 2-, 3-dimensional dense histograms, it may not be suitable\n. for high-dimensional sparse histograms. In such histograms, because of aliasing and sampling\n. problems, the coordinates of non-zero histogram bins can slightly shift. To compare such histograms\n. or more general sparse configurations of weighted points, consider using the #EMD function.\n. \n. @param H1 First compared histogram.\n. @param H2 Second compared histogram of the same size as H1 .\n. @param method Comparison method, see #HistCompMethods' - ... - -def completeSymm(m, lowerToUpper=...) -> typing.Any: - 'completeSymm(m[, lowerToUpper]) -> m\n. @brief Copies the lower or the upper half of a square matrix to its another half.\n. \n. The function cv::completeSymm copies the lower or the upper half of a square matrix to\n. its another half. The matrix diagonal remains unchanged:\n. - \\f$\\texttt{m}_{ij}=\\texttt{m}_{ji}\\f$ for \\f$i > j\\f$ if\n. lowerToUpper=false\n. - \\f$\\texttt{m}_{ij}=\\texttt{m}_{ji}\\f$ for \\f$i < j\\f$ if\n. lowerToUpper=true\n. \n. @param m input-output floating-point square matrix.\n. @param lowerToUpper operation flag; if true, the lower half is copied to\n. the upper half. Otherwise, the upper half is copied to the lower half.\n. @sa flip, transpose' - ... - -def composeRT(rvec1, tvec1, rvec2, tvec2, rvec3=..., tvec3=..., dr3dr1=..., dr3dt1=..., dr3dr2=..., dr3dt2=..., dt3dr1=..., dt3dt1=..., dt3dr2=..., dt3dt2=...) -> typing.Any: - 'composeRT(rvec1, tvec1, rvec2, tvec2[, rvec3[, tvec3[, dr3dr1[, dr3dt1[, dr3dr2[, dr3dt2[, dt3dr1[, dt3dt1[, dt3dr2[, dt3dt2]]]]]]]]]]) -> rvec3, tvec3, dr3dr1, dr3dt1, dr3dr2, dr3dt2, dt3dr1, dt3dt1, dt3dr2, dt3dt2\n. @brief Combines two rotation-and-shift transformations.\n. \n. @param rvec1 First rotation vector.\n. @param tvec1 First translation vector.\n. @param rvec2 Second rotation vector.\n. @param tvec2 Second translation vector.\n. @param rvec3 Output rotation vector of the superposition.\n. @param tvec3 Output translation vector of the superposition.\n. @param dr3dr1 Optional output derivative of rvec3 with regard to rvec1\n. @param dr3dt1 Optional output derivative of rvec3 with regard to tvec1\n. @param dr3dr2 Optional output derivative of rvec3 with regard to rvec2\n. @param dr3dt2 Optional output derivative of rvec3 with regard to tvec2\n. @param dt3dr1 Optional output derivative of tvec3 with regard to rvec1\n. @param dt3dt1 Optional output derivative of tvec3 with regard to tvec1\n. @param dt3dr2 Optional output derivative of tvec3 with regard to rvec2\n. @param dt3dt2 Optional output derivative of tvec3 with regard to tvec2\n. \n. The functions compute:\n. \n. \\f[\\begin{array}{l} \\texttt{rvec3} = \\mathrm{rodrigues} ^{-1} \\left ( \\mathrm{rodrigues} ( \\texttt{rvec2} ) \\cdot \\mathrm{rodrigues} ( \\texttt{rvec1} ) \\right ) \\\\ \\texttt{tvec3} = \\mathrm{rodrigues} ( \\texttt{rvec2} ) \\cdot \\texttt{tvec1} + \\texttt{tvec2} \\end{array} ,\\f]\n. \n. where \\f$\\mathrm{rodrigues}\\f$ denotes a rotation vector to a rotation matrix transformation, and\n. \\f$\\mathrm{rodrigues}^{-1}\\f$ denotes the inverse transformation. See Rodrigues for details.\n. \n. Also, the functions can compute the derivatives of the output vectors with regards to the input\n. vectors (see matMulDeriv ). The functions are used inside stereoCalibrate but can also be used in\n. your own code where Levenberg-Marquardt or another gradient-based solver is used to optimize a\n. function that contains a matrix multiplication.' - ... - -def computeCorrespondEpilines(points, whichImage, F, lines=...) -> typing.Any: - 'computeCorrespondEpilines(points, whichImage, F[, lines]) -> lines\n. @brief For points in an image of a stereo pair, computes the corresponding epilines in the other image.\n. \n. @param points Input points. \\f$N \\times 1\\f$ or \\f$1 \\times N\\f$ matrix of type CV_32FC2 or\n. vector\\ .\n. @param whichImage Index of the image (1 or 2) that contains the points .\n. @param F Fundamental matrix that can be estimated using findFundamentalMat or stereoRectify .\n. @param lines Output vector of the epipolar lines corresponding to the points in the other image.\n. Each line \\f$ax + by + c=0\\f$ is encoded by 3 numbers \\f$(a, b, c)\\f$ .\n. \n. For every point in one of the two images of a stereo pair, the function finds the equation of the\n. corresponding epipolar line in the other image.\n. \n. From the fundamental matrix definition (see findFundamentalMat ), line \\f$l^{(2)}_i\\f$ in the second\n. image for the point \\f$p^{(1)}_i\\f$ in the first image (when whichImage=1 ) is computed as:\n. \n. \\f[l^{(2)}_i = F p^{(1)}_i\\f]\n. \n. And vice versa, when whichImage=2, \\f$l^{(1)}_i\\f$ is computed from \\f$p^{(2)}_i\\f$ as:\n. \n. \\f[l^{(1)}_i = F^T p^{(2)}_i\\f]\n. \n. Line coefficients are defined up to a scale. They are normalized so that \\f$a_i^2+b_i^2=1\\f$ .' - ... - -def computeECC(templateImage, inputImage, inputMask=...) -> typing.Any: - 'computeECC(templateImage, inputImage[, inputMask]) -> retval\n. @brief Computes the Enhanced Correlation Coefficient value between two images @cite EP08 .\n. \n. @param templateImage single-channel template image; CV_8U or CV_32F array.\n. @param inputImage single-channel input image to be warped to provide an image similar to\n. templateImage, same type as templateImage.\n. @param inputMask An optional mask to indicate valid values of inputImage.\n. \n. @sa\n. findTransformECC' - ... - -def connectedComponents(image: Mat, labels=..., connectivity=..., ltype=...) -> typing.Any: - 'connectedComponents(image[, labels[, connectivity[, ltype]]]) -> retval, labels\n. @overload\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.' - ... - -def connectedComponentsWithAlgorithm(image: Mat, connectivity, ltype, ccltype, labels=...) -> typing.Any: - "connectedComponentsWithAlgorithm(image, connectivity, ltype, ccltype[, labels]) -> retval, labels\n. @brief computes the connected components labeled image of boolean image\n. \n. image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0\n. represents the background label. ltype specifies the output label image type, an important\n. consideration based on the total number of labels or alternatively the total number of pixels in\n. the source image. ccltype specifies the connected components labeling algorithm to use, currently\n. Grana (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes\n. for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.\n. This function uses parallel version of both Grana and Wu's algorithms if at least one allowed\n. parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.\n. @param ccltype connected components algorithm type (see the #ConnectedComponentsAlgorithmsTypes)." - ... - -def connectedComponentsWithStats(image: Mat, labels=..., stats=..., centroids=..., connectivity=..., ltype=...) -> typing.Any: - 'connectedComponentsWithStats(image[, labels[, stats[, centroids[, connectivity[, ltype]]]]]) -> retval, labels, stats, centroids\n. @overload\n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param stats statistics output for each label, including the background label.\n. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of\n. #ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.\n. @param centroids centroid output for each label, including the background label. Centroids are\n. accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.' - ... - -def connectedComponentsWithStatsWithAlgorithm(image: Mat, connectivity, ltype, ccltype, labels=..., stats=..., centroids=...) -> typing.Any: - "connectedComponentsWithStatsWithAlgorithm(image, connectivity, ltype, ccltype[, labels[, stats[, centroids]]]) -> retval, labels, stats, centroids\n. @brief computes the connected components labeled image of boolean image and also produces a statistics output for each label\n. \n. image with 4 or 8 way connectivity - returns N, the total number of labels [0, N-1] where 0\n. represents the background label. ltype specifies the output label image type, an important\n. consideration based on the total number of labels or alternatively the total number of pixels in\n. the source image. ccltype specifies the connected components labeling algorithm to use, currently\n. Grana's (BBDT) and Wu's (SAUF) algorithms are supported, see the #ConnectedComponentsAlgorithmsTypes\n. for details. Note that SAUF algorithm forces a row major ordering of labels while BBDT does not.\n. This function uses parallel version of both Grana and Wu's algorithms (statistics included) if at least one allowed\n. parallel framework is enabled and if the rows of the image are at least twice the number returned by #getNumberOfCPUs.\n. \n. @param image the 8-bit single-channel image to be labeled\n. @param labels destination labeled image\n. @param stats statistics output for each label, including the background label.\n. Statistics are accessed via stats(label, COLUMN) where COLUMN is one of\n. #ConnectedComponentsTypes, selecting the statistic. The data type is CV_32S.\n. @param centroids centroid output for each label, including the background label. Centroids are\n. accessed via centroids(label, 0) for x and centroids(label, 1) for y. The data type CV_64F.\n. @param connectivity 8 or 4 for 8-way or 4-way connectivity respectively\n. @param ltype output image label type. Currently CV_32S and CV_16U are supported.\n. @param ccltype connected components algorithm type (see #ConnectedComponentsAlgorithmsTypes)." - ... - -def contourArea(contour, oriented=...) -> typing.Any: - 'contourArea(contour[, oriented]) -> retval\n. @brief Calculates a contour area.\n. \n. The function computes a contour area. Similarly to moments , the area is computed using the Green\n. formula. Thus, the returned area and the number of non-zero pixels, if you draw the contour using\n. #drawContours or #fillPoly , can be different. Also, the function will most certainly give a wrong\n. results for contours with self-intersections.\n. \n. Example:\n. @code\n. vector contour;\n. contour.push_back(Point2f(0, 0));\n. contour.push_back(Point2f(10, 0));\n. contour.push_back(Point2f(10, 10));\n. contour.push_back(Point2f(5, 4));\n. \n. double area0 = contourArea(contour);\n. vector approx;\n. approxPolyDP(contour, approx, 5, true);\n. double area1 = contourArea(approx);\n. \n. cout << "area0 =" << area0 << endl <<\n. "area1 =" << area1 << endl <<\n. "approx poly vertices" << approx.size() << endl;\n. @endcode\n. @param contour Input vector of 2D points (contour vertices), stored in std::vector or Mat.\n. @param oriented Oriented area flag. If it is true, the function returns a signed area value,\n. depending on the contour orientation (clockwise or counter-clockwise). Using this feature you can\n. determine orientation of a contour by taking the sign of an area. By default, the parameter is\n. false, which means that the absolute value is returned.' - ... - -def convertFp16(src: Mat, dts: Mat = ...) -> typing.Any: - 'convertFp16(src[, dst]) -> dst\n. @brief Converts an array to half precision floating number.\n. \n. This function converts FP32 (single precision floating point) from/to FP16 (half precision floating point). CV_16S format is used to represent FP16 data.\n. There are two use modes (src -> dst): CV_32F -> CV_16S and CV_16S -> CV_32F. The input array has to have type of CV_32F or\n. CV_16S to represent the bit depth. If the input array is neither of them, the function will raise an error.\n. The format of half precision floating point is defined in IEEE 754-2008.\n. \n. @param src input array.\n. @param dst output array.' - ... - -def convertMaps(map1, map2, dstmap1type, dstmap1=..., dstmap2=..., nninterpolation=...) -> typing.Any: - 'convertMaps(map1, map2, dstmap1type[, dstmap1[, dstmap2[, nninterpolation]]]) -> dstmap1, dstmap2\n. @brief Converts image transformation maps from one representation to another.\n. \n. The function converts a pair of maps for remap from one representation to another. The following\n. options ( (map1.type(), map2.type()) \\f$\\rightarrow\\f$ (dstmap1.type(), dstmap2.type()) ) are\n. supported:\n. \n. - \\f$\\texttt{(CV_32FC1, CV_32FC1)} \\rightarrow \\texttt{(CV_16SC2, CV_16UC1)}\\f$. This is the\n. most frequently used conversion operation, in which the original floating-point maps (see remap )\n. are converted to a more compact and much faster fixed-point representation. The first output array\n. contains the rounded coordinates and the second array (created only when nninterpolation=false )\n. contains indices in the interpolation tables.\n. \n. - \\f$\\texttt{(CV_32FC2)} \\rightarrow \\texttt{(CV_16SC2, CV_16UC1)}\\f$. The same as above but\n. the original maps are stored in one 2-channel matrix.\n. \n. - Reverse conversion. Obviously, the reconstructed floating-point maps will not be exactly the same\n. as the originals.\n. \n. @param map1 The first input map of type CV_16SC2, CV_32FC1, or CV_32FC2 .\n. @param map2 The second input map of type CV_16UC1, CV_32FC1, or none (empty matrix),\n. respectively.\n. @param dstmap1 The first output map that has the type dstmap1type and the same size as src .\n. @param dstmap2 The second output map.\n. @param dstmap1type Type of the first output map that should be CV_16SC2, CV_32FC1, or\n. CV_32FC2 .\n. @param nninterpolation Flag indicating whether the fixed-point maps are used for the\n. nearest-neighbor or for a more complex interpolation.\n. \n. @sa remap, undistort, initUndistortRectifyMap' - ... - -def convertPointsFromHomogeneous(src: Mat, dts: Mat = ...) -> typing.Any: - 'convertPointsFromHomogeneous(src[, dst]) -> dst\n. @brief Converts points from homogeneous to Euclidean space.\n. \n. @param src Input vector of N-dimensional points.\n. @param dst Output vector of N-1-dimensional points.\n. \n. The function converts points homogeneous to Euclidean space using perspective projection. That is,\n. each point (x1, x2, ... x(n-1), xn) is converted to (x1/xn, x2/xn, ..., x(n-1)/xn). When xn=0, the\n. output point coordinates will be (0,0,0,...).' - ... - -def convertPointsToHomogeneous(src: Mat, dts: Mat = ...) -> typing.Any: - "convertPointsToHomogeneous(src[, dst]) -> dst\n. @brief Converts points from Euclidean to homogeneous space.\n. \n. @param src Input vector of N-dimensional points.\n. @param dst Output vector of N+1-dimensional points.\n. \n. The function converts points from Euclidean to homogeneous space by appending 1's to the tuple of\n. point coordinates. That is, each point (x1, x2, ..., xn) is converted to (x1, x2, ..., xn, 1)." - ... - -def convertScaleAbs(src: Mat, dts: Mat = ..., alpha=..., beta=...) -> typing.Any: - 'convertScaleAbs(src[, dst[, alpha[, beta]]]) -> dst\n. @brief Scales, calculates absolute values, and converts the result to 8-bit.\n. \n. On each element of the input array, the function convertScaleAbs\n. performs three operations sequentially: scaling, taking an absolute\n. value, conversion to an unsigned 8-bit type:\n. \\f[\\texttt{dst} (I)= \\texttt{saturate\\_cast} (| \\texttt{src} (I)* \\texttt{alpha} + \\texttt{beta} |)\\f]\n. In case of multi-channel arrays, the function processes each channel\n. independently. When the output is not 8-bit, the operation can be\n. emulated by calling the Mat::convertTo method (or by using matrix\n. expressions) and then by calculating an absolute value of the result.\n. For example:\n. @code{.cpp}\n. Mat_ A(30,30);\n. randu(A, Scalar(-100), Scalar(100));\n. Mat_ B = A*5 + 3;\n. B = abs(B);\n. // Mat_ B = abs(A*5+3) will also do the job,\n. // but it will allocate a temporary matrix\n. @endcode\n. @param src input array.\n. @param dst output array.\n. @param alpha optional scale factor.\n. @param beta optional delta added to the scaled values.\n. @sa Mat::convertTo, cv::abs(const Mat&)' - ... - -def convexHull(points, hull=..., clockwise=..., returnPoints=...) -> typing.Any: - 'convexHull(points[, hull[, clockwise[, returnPoints]]]) -> hull\n. @brief Finds the convex hull of a point set.\n. \n. The function cv::convexHull finds the convex hull of a 2D point set using the Sklansky\'s algorithm @cite Sklansky82\n. that has *O(N logN)* complexity in the current implementation.\n. \n. @param points Input 2D point set, stored in std::vector or Mat.\n. @param hull Output convex hull. It is either an integer vector of indices or vector of points. In\n. the first case, the hull elements are 0-based indices of the convex hull points in the original\n. array (since the set of convex hull points is a subset of the original point set). In the second\n. case, hull elements are the convex hull points themselves.\n. @param clockwise Orientation flag. If it is true, the output convex hull is oriented clockwise.\n. Otherwise, it is oriented counter-clockwise. The assumed coordinate system has its X axis pointing\n. to the right, and its Y axis pointing upwards.\n. @param returnPoints Operation flag. In case of a matrix, when the flag is true, the function\n. returns convex hull points. Otherwise, it returns indices of the convex hull points. When the\n. output array is std::vector, the flag is ignored, and the output depends on the type of the\n. vector: std::vector\\ implies returnPoints=false, std::vector\\ implies\n. returnPoints=true.\n. \n. @note `points` and `hull` should be different arrays, inplace processing isn\'t supported.\n. \n. Check @ref tutorial_hull "the corresponding tutorial" for more details.\n. \n. useful links:\n. \n. https://www.learnopencv.com/convex-hull-using-opencv-in-python-and-c/' - ... - -def convexityDefects(contour, convexhull, convexityDefects=...) -> typing.Any: - 'convexityDefects(contour, convexhull[, convexityDefects]) -> convexityDefects\n. @brief Finds the convexity defects of a contour.\n. \n. The figure below displays convexity defects of a hand contour:\n. \n. ![image](pics/defects.png)\n. \n. @param contour Input contour.\n. @param convexhull Convex hull obtained using convexHull that should contain indices of the contour\n. points that make the hull.\n. @param convexityDefects The output vector of convexity defects. In C++ and the new Python/Java\n. interface each convexity defect is represented as 4-element integer vector (a.k.a. #Vec4i):\n. (start_index, end_index, farthest_pt_index, fixpt_depth), where indices are 0-based indices\n. in the original contour of the convexity defect beginning, end and the farthest point, and\n. fixpt_depth is fixed-point approximation (with 8 fractional bits) of the distance between the\n. farthest contour point and the hull. That is, to get the floating-point value of the depth will be\n. fixpt_depth/256.0.' - ... - -def copyMakeBorder(src: Mat, top, bottom, left, right, borderType, dts: Mat = ..., value=...) -> typing.Any: - 'copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]]) -> dst\n. @brief Forms a border around an image.\n. \n. The function copies the source image into the middle of the destination image. The areas to the\n. left, to the right, above and below the copied source image will be filled with extrapolated\n. pixels. This is not what filtering functions based on it do (they extrapolate pixels on-fly), but\n. what other more complex functions, including your own, may do to simplify image boundary handling.\n. \n. The function supports the mode when src is already in the middle of dst . In this case, the\n. function does not copy src itself but simply constructs the border, for example:\n. \n. @code{.cpp}\n. // let border be the same in all directions\n. int border=2;\n. // constructs a larger image to fit both the image and the border\n. Mat gray_buf(rgb.rows + border*2, rgb.cols + border*2, rgb.depth());\n. // select the middle part of it w/o copying data\n. Mat gray(gray_canvas, Rect(border, border, rgb.cols, rgb.rows));\n. // convert image from RGB to grayscale\n. cvtColor(rgb, gray, COLOR_RGB2GRAY);\n. // form a border in-place\n. copyMakeBorder(gray, gray_buf, border, border,\n. border, border, BORDER_REPLICATE);\n. // now do some custom filtering ...\n. ...\n. @endcode\n. @note When the source image is a part (ROI) of a bigger image, the function will try to use the\n. pixels outside of the ROI to form a border. To disable this feature and always do extrapolation, as\n. if src was not a ROI, use borderType | #BORDER_ISOLATED.\n. \n. @param src Source image.\n. @param dst Destination image of the same type as src and the size Size(src.cols+left+right,\n. src.rows+top+bottom) .\n. @param top the top pixels\n. @param bottom the bottom pixels\n. @param left the left pixels\n. @param right Parameter specifying how many pixels in each direction from the source image rectangle\n. to extrapolate. For example, top=1, bottom=1, left=1, right=1 mean that 1 pixel-wide border needs\n. to be built.\n. @param borderType Border type. See borderInterpolate for details.\n. @param value Border value if borderType==BORDER_CONSTANT .\n. \n. @sa borderInterpolate' - ... - -def copyTo(src: Mat, mask: Mat, dts: Mat = ...) -> typing.Any: - 'copyTo(src, mask[, dst]) -> dst\n. @brief This is an overloaded member function, provided for convenience (python)\n. Copies the matrix to another one.\n. When the operation mask is specified, if the Mat::create call shown above reallocates the matrix, the newly allocated matrix is initialized with all zeros before copying the data.\n. @param src source matrix.\n. @param dst Destination matrix. If it does not have a proper size or type before the operation, it is\n. reallocated.\n. @param mask Operation mask of the same size as \\*this. Its non-zero elements indicate which matrix\n. elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels.' - ... - -def cornerEigenValsAndVecs(src: Mat, blockSize, ksize, dts: Mat = ..., borderType=...) -> typing.Any: - 'cornerEigenValsAndVecs(src, blockSize, ksize[, dst[, borderType]]) -> dst\n. @brief Calculates eigenvalues and eigenvectors of image blocks for corner detection.\n. \n. For every pixel \\f$p\\f$ , the function cornerEigenValsAndVecs considers a blockSize \\f$\\times\\f$ blockSize\n. neighborhood \\f$S(p)\\f$ . It calculates the covariation matrix of derivatives over the neighborhood as:\n. \n. \\f[M = \\begin{bmatrix} \\sum _{S(p)}(dI/dx)^2 & \\sum _{S(p)}dI/dx dI/dy \\\\ \\sum _{S(p)}dI/dx dI/dy & \\sum _{S(p)}(dI/dy)^2 \\end{bmatrix}\\f]\n. \n. where the derivatives are computed using the Sobel operator.\n. \n. After that, it finds eigenvectors and eigenvalues of \\f$M\\f$ and stores them in the destination image as\n. \\f$(\\lambda_1, \\lambda_2, x_1, y_1, x_2, y_2)\\f$ where\n. \n. - \\f$\\lambda_1, \\lambda_2\\f$ are the non-sorted eigenvalues of \\f$M\\f$\n. - \\f$x_1, y_1\\f$ are the eigenvectors corresponding to \\f$\\lambda_1\\f$\n. - \\f$x_2, y_2\\f$ are the eigenvectors corresponding to \\f$\\lambda_2\\f$\n. \n. The output of the function can be used for robust edge or corner detection.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the results. It has the same size as src and the type CV_32FC(6) .\n. @param blockSize Neighborhood size (see details below).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.\n. \n. @sa cornerMinEigenVal, cornerHarris, preCornerDetect' - ... - -def cornerHarris(src: Mat, blockSize, ksize, k, dts: Mat = ..., borderType=...) -> typing.Any: - 'cornerHarris(src, blockSize, ksize, k[, dst[, borderType]]) -> dst\n. @brief Harris corner detector.\n. \n. The function runs the Harris corner detector on the image. Similarly to cornerMinEigenVal and\n. cornerEigenValsAndVecs , for each pixel \\f$(x, y)\\f$ it calculates a \\f$2\\times2\\f$ gradient covariance\n. matrix \\f$M^{(x,y)}\\f$ over a \\f$\\texttt{blockSize} \\times \\texttt{blockSize}\\f$ neighborhood. Then, it\n. computes the following characteristic:\n. \n. \\f[\\texttt{dst} (x,y) = \\mathrm{det} M^{(x,y)} - k \\cdot \\left ( \\mathrm{tr} M^{(x,y)} \\right )^2\\f]\n. \n. Corners in the image can be found as the local maxima of this response map.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the Harris detector responses. It has the type CV_32FC1 and the same\n. size as src .\n. @param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param k Harris detector free parameter. See the formula above.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' - ... - -def cornerMinEigenVal(src: Mat, blockSize, dts: Mat = ..., ksize=..., borderType=...) -> typing.Any: - 'cornerMinEigenVal(src, blockSize[, dst[, ksize[, borderType]]]) -> dst\n. @brief Calculates the minimal eigenvalue of gradient matrices for corner detection.\n. \n. The function is similar to cornerEigenValsAndVecs but it calculates and stores only the minimal\n. eigenvalue of the covariance matrix of derivatives, that is, \\f$\\min(\\lambda_1, \\lambda_2)\\f$ in terms\n. of the formulae in the cornerEigenValsAndVecs description.\n. \n. @param src Input single-channel 8-bit or floating-point image.\n. @param dst Image to store the minimal eigenvalues. It has the type CV_32FC1 and the same size as\n. src .\n. @param blockSize Neighborhood size (see the details on #cornerEigenValsAndVecs ).\n. @param ksize Aperture parameter for the Sobel operator.\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' - ... - -def cornerSubPix(image: Mat, corners, winSize, zeroZone, criteria) -> typing.Any: - 'cornerSubPix(image, corners, winSize, zeroZone, criteria) -> corners\n. @brief Refines the corner locations.\n. \n. The function iterates to find the sub-pixel accurate location of corners or radial saddle points, as\n. shown on the figure below.\n. \n. ![image](pics/cornersubpix.png)\n. \n. Sub-pixel accurate corner locator is based on the observation that every vector from the center \\f$q\\f$\n. to a point \\f$p\\f$ located within a neighborhood of \\f$q\\f$ is orthogonal to the image gradient at \\f$p\\f$\n. subject to image and measurement noise. Consider the expression:\n. \n. \\f[\\epsilon _i = {DI_{p_i}}^T \\cdot (q - p_i)\\f]\n. \n. where \\f${DI_{p_i}}\\f$ is an image gradient at one of the points \\f$p_i\\f$ in a neighborhood of \\f$q\\f$ . The\n. value of \\f$q\\f$ is to be found so that \\f$\\epsilon_i\\f$ is minimized. A system of equations may be set up\n. with \\f$\\epsilon_i\\f$ set to zero:\n. \n. \\f[\\sum _i(DI_{p_i} \\cdot {DI_{p_i}}^T) \\cdot q - \\sum _i(DI_{p_i} \\cdot {DI_{p_i}}^T \\cdot p_i)\\f]\n. \n. where the gradients are summed within a neighborhood ("search window") of \\f$q\\f$ . Calling the first\n. gradient term \\f$G\\f$ and the second gradient term \\f$b\\f$ gives:\n. \n. \\f[q = G^{-1} \\cdot b\\f]\n. \n. The algorithm sets the center of the neighborhood window at this new center \\f$q\\f$ and then iterates\n. until the center stays within a set threshold.\n. \n. @param image Input single-channel, 8-bit or float image.\n. @param corners Initial coordinates of the input corners and refined coordinates provided for\n. output.\n. @param winSize Half of the side length of the search window. For example, if winSize=Size(5,5) ,\n. then a \\f$(5*2+1) \\times (5*2+1) = 11 \\times 11\\f$ search window is used.\n. @param zeroZone Half of the size of the dead region in the middle of the search zone over which\n. the summation in the formula below is not done. It is used sometimes to avoid possible\n. singularities of the autocorrelation matrix. The value of (-1,-1) indicates that there is no such\n. a size.\n. @param criteria Criteria for termination of the iterative process of corner refinement. That is,\n. the process of corner position refinement stops either after criteria.maxCount iterations or when\n. the corner position moves by less than criteria.epsilon on some iteration.' - ... - -def correctMatches(F, points1, points2, newPoints1=..., newPoints2=...) -> typing.Any: - 'correctMatches(F, points1, points2[, newPoints1[, newPoints2]]) -> newPoints1, newPoints2\n. @brief Refines coordinates of corresponding points.\n. \n. @param F 3x3 fundamental matrix.\n. @param points1 1xN array containing the first set of points.\n. @param points2 1xN array containing the second set of points.\n. @param newPoints1 The optimized points1.\n. @param newPoints2 The optimized points2.\n. \n. The function implements the Optimal Triangulation Method (see Multiple View Geometry for details).\n. For each given point correspondence points1[i] \\<-\\> points2[i], and a fundamental matrix F, it\n. computes the corrected correspondences newPoints1[i] \\<-\\> newPoints2[i] that minimize the geometric\n. error \\f$d(points1[i], newPoints1[i])^2 + d(points2[i],newPoints2[i])^2\\f$ (where \\f$d(a,b)\\f$ is the\n. geometric distance between points \\f$a\\f$ and \\f$b\\f$ ) subject to the epipolar constraint\n. \\f$newPoints2^T * F * newPoints1 = 0\\f$ .' - ... - -def countNonZero(src) -> typing.Any: - 'countNonZero(src) -> retval\n. @brief Counts non-zero array elements.\n. \n. The function returns the number of non-zero elements in src :\n. \\f[\\sum _{I: \\; \\texttt{src} (I) \\ne0 } 1\\f]\n. @param src single-channel array.\n. @sa mean, meanStdDev, norm, minMaxLoc, calcCovarMatrix' - ... - -def createAlignMTB(max_bits=..., exclude_range=..., cut=...) -> typing.Any: - 'createAlignMTB([, max_bits[, exclude_range[, cut]]]) -> retval\n. @brief Creates AlignMTB object\n. \n. @param max_bits logarithm to the base 2 of maximal shift in each dimension. Values of 5 and 6 are\n. usually good enough (31 and 63 pixels shift respectively).\n. @param exclude_range range for exclusion bitmap that is constructed to suppress noise around the\n. median value.\n. @param cut if true cuts images, otherwise fills the new regions with zeros.' - ... - -def createBackgroundSubtractorKNN(history=..., dist2Threshold=..., detectShadows=...) -> typing.Any: - 'createBackgroundSubtractorKNN([, history[, dist2Threshold[, detectShadows]]]) -> retval\n. @brief Creates KNN Background Subtractor\n. \n. @param history Length of the history.\n. @param dist2Threshold Threshold on the squared distance between the pixel and the sample to decide\n. whether a pixel is close to that sample. This parameter does not affect the background update.\n. @param detectShadows If true, the algorithm will detect shadows and mark them. It decreases the\n. speed a bit, so if you do not need this feature, set the parameter to false.' - ... - -def createBackgroundSubtractorMOG2(history=..., varThreshold=..., detectShadows=...) -> typing.Any: - 'createBackgroundSubtractorMOG2([, history[, varThreshold[, detectShadows]]]) -> retval\n. @brief Creates MOG2 Background Subtractor\n. \n. @param history Length of the history.\n. @param varThreshold Threshold on the squared Mahalanobis distance between the pixel and the model\n. to decide whether a pixel is well described by the background model. This parameter does not\n. affect the background update.\n. @param detectShadows If true, the algorithm will detect shadows and mark them. It decreases the\n. speed a bit, so if you do not need this feature, set the parameter to false.' - ... - -def createButton(buttonName, onChange, userData=..., buttonType=..., initialButtonState=...) -> typing.Any: - 'createButton(buttonName, onChange [, userData, buttonType, initialButtonState]) -> None' - ... - -def createCLAHE(clipLimit=..., tileGridSize=...) -> typing.Any: - 'createCLAHE([, clipLimit[, tileGridSize]]) -> retval\n. @brief Creates a smart pointer to a cv::CLAHE class and initializes it.\n. \n. @param clipLimit Threshold for contrast limiting.\n. @param tileGridSize Size of grid for histogram equalization. Input image will be divided into\n. equally sized rectangular tiles. tileGridSize defines the number of tiles in row and column.' - ... - -def createCalibrateDebevec(samples=..., lambda_=..., random=...) -> typing.Any: - 'createCalibrateDebevec([, samples[, lambda[, random]]]) -> retval\n. @brief Creates CalibrateDebevec object\n. \n. @param samples number of pixel locations to use\n. @param lambda smoothness term weight. Greater values produce smoother results, but can alter the\n. response.\n. @param random if true sample pixel locations are chosen at random, otherwise they form a\n. rectangular grid.' - ... - -def createCalibrateRobertson(max_iter=..., threshold=...) -> typing.Any: - 'createCalibrateRobertson([, max_iter[, threshold]]) -> retval\n. @brief Creates CalibrateRobertson object\n. \n. @param max_iter maximal number of Gauss-Seidel solver iterations.\n. @param threshold target difference between results of two successive steps of the minimization.' - ... - -def createGeneralizedHoughBallard() -> typing.Any: - 'createGeneralizedHoughBallard() -> retval\n. @brief Creates a smart pointer to a cv::GeneralizedHoughBallard class and initializes it.' - ... - -def createGeneralizedHoughGuil() -> typing.Any: - 'createGeneralizedHoughGuil() -> retval\n. @brief Creates a smart pointer to a cv::GeneralizedHoughGuil class and initializes it.' - ... - -def createHanningWindow(winSize, type, dts: Mat = ...) -> typing.Any: - 'createHanningWindow(winSize, type[, dst]) -> dst\n. @brief This function computes a Hanning window coefficients in two dimensions.\n. \n. See (http://en.wikipedia.org/wiki/Hann_function) and (http://en.wikipedia.org/wiki/Window_function)\n. for more information.\n. \n. An example is shown below:\n. @code\n. // create hanning window of size 100x100 and type CV_32F\n. Mat hann;\n. createHanningWindow(hann, Size(100, 100), CV_32F);\n. @endcode\n. @param dst Destination array to place Hann coefficients in\n. @param winSize The window size specifications (both width and height must be > 1)\n. @param type Created array type' - ... - -def createLineSegmentDetector(_refine=..., _scale=..., _sigma_scale=..., _quant=..., _ang_th=..., _log_eps=..., _density_th=..., _n_bins=...) -> typing.Any: - 'createLineSegmentDetector([, _refine[, _scale[, _sigma_scale[, _quant[, _ang_th[, _log_eps[, _density_th[, _n_bins]]]]]]]]) -> retval\n. @brief Creates a smart pointer to a LineSegmentDetector object and initializes it.\n. \n. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want\n. to edit those, as to tailor it for their own application.\n. \n. @param _refine The way found lines will be refined, see #LineSegmentDetectorModes\n. @param _scale The scale of the image that will be used to find the lines. Range (0..1].\n. @param _sigma_scale Sigma for Gaussian filter. It is computed as sigma = _sigma_scale/_scale.\n. @param _quant Bound to the quantization error on the gradient norm.\n. @param _ang_th Gradient angle tolerance in degrees.\n. @param _log_eps Detection threshold: -log10(NFA) \\> log_eps. Used only when advance refinement\n. is chosen.\n. @param _density_th Minimal density of aligned region points in the enclosing rectangle.\n. @param _n_bins Number of bins in pseudo-ordering of gradient modulus.\n. \n. @note Implementation has been removed due original code license conflict' - ... - -def createMergeDebevec() -> typing.Any: - 'createMergeDebevec() -> retval\n. @brief Creates MergeDebevec object' - ... - -def createMergeMertens(contrast_weight=..., saturation_weight=..., exposure_weight=...) -> typing.Any: - 'createMergeMertens([, contrast_weight[, saturation_weight[, exposure_weight]]]) -> retval\n. @brief Creates MergeMertens object\n. \n. @param contrast_weight contrast measure weight. See MergeMertens.\n. @param saturation_weight saturation measure weight\n. @param exposure_weight well-exposedness measure weight' - ... - -def createMergeRobertson() -> typing.Any: - 'createMergeRobertson() -> retval\n. @brief Creates MergeRobertson object' - ... - -def createTonemap(gamma=...) -> typing.Any: - 'createTonemap([, gamma]) -> retval\n. @brief Creates simple linear mapper with gamma correction\n. \n. @param gamma positive value for gamma correction. Gamma value of 1.0 implies no correction, gamma\n. equal to 2.2f is suitable for most displays.\n. Generally gamma \\> 1 brightens the image and gamma \\< 1 darkens it.' - ... - -def createTonemapDrago(gamma=..., saturation=..., bias=...) -> typing.Any: - 'createTonemapDrago([, gamma[, saturation[, bias]]]) -> retval\n. @brief Creates TonemapDrago object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param saturation positive saturation enhancement value. 1.0 preserves saturation, values greater\n. than 1 increase saturation and values less than 1 decrease it.\n. @param bias value for bias function in [0, 1] range. Values from 0.7 to 0.9 usually give best\n. results, default value is 0.85.' - ... - -def createTonemapMantiuk(gamma=..., scale=..., saturation=...) -> typing.Any: - 'createTonemapMantiuk([, gamma[, scale[, saturation]]]) -> retval\n. @brief Creates TonemapMantiuk object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param scale contrast scale factor. HVS response is multiplied by this parameter, thus compressing\n. dynamic range. Values from 0.6 to 0.9 produce best results.\n. @param saturation saturation enhancement value. See createTonemapDrago' - ... - -def createTonemapReinhard(gamma=..., intensity=..., light_adapt=..., color_adapt=...) -> typing.Any: - "createTonemapReinhard([, gamma[, intensity[, light_adapt[, color_adapt]]]]) -> retval\n. @brief Creates TonemapReinhard object\n. \n. @param gamma gamma value for gamma correction. See createTonemap\n. @param intensity result intensity in [-8, 8] range. Greater intensity produces brighter results.\n. @param light_adapt light adaptation in [0, 1] range. If 1 adaptation is based only on pixel\n. value, if 0 it's global, otherwise it's a weighted mean of this two cases.\n. @param color_adapt chromatic adaptation in [0, 1] range. If 1 channels are treated independently,\n. if 0 adaptation level is the same for each channel." - ... - -def createTrackbar(trackbarName, windowName, value, count, onChange) -> typing.Any: - 'createTrackbar(trackbarName, windowName, value, count, onChange) -> None' - ... - -def cubeRoot(val) -> typing.Any: - 'cubeRoot(val) -> retval\n. @brief Computes the cube root of an argument.\n. \n. The function cubeRoot computes \\f$\\sqrt[3]{\\texttt{val}}\\f$. Negative arguments are handled correctly.\n. NaN and Inf are not handled. The accuracy approaches the maximum possible accuracy for\n. single-precision data.\n. @param val A function argument.' - ... - -cuda_BufferPool = _mod_cv2.cuda_BufferPool -cuda_DeviceInfo = _mod_cv2.cuda_DeviceInfo -cuda_Event = _mod_cv2.cuda_Event -cuda_GpuMat = _mod_cv2.cuda_GpuMat -cuda_GpuMat_Allocator = _mod_cv2.cuda_GpuMat_Allocator -cuda_HostMem = _mod_cv2.cuda_HostMem -cuda_Stream = _mod_cv2.cuda_Stream -cuda_TargetArchs = _mod_cv2.cuda_TargetArchs -def cvtColor(src: Mat, code: int, dts: Mat = ..., dstCn: int = ...) -> Mat: - 'cvtColor(src, code[, dst[, dstCn]]) -> dst\n. @brief Converts an image from one color space to another.\n. \n. The function converts an input image from one color space to another. In case of a transformation\n. to-from RGB color space, the order of the channels should be specified explicitly (RGB or BGR). Note\n. that the default color format in OpenCV is often referred to as RGB but it is actually BGR (the\n. bytes are reversed). So the first byte in a standard (24-bit) color image will be an 8-bit Blue\n. component, the second byte will be Green, and the third byte will be Red. The fourth, fifth, and\n. sixth bytes would then be the second pixel (Blue, then Green, then Red), and so on.\n. \n. The conventional ranges for R, G, and B channel values are:\n. - 0 to 255 for CV_8U images\n. - 0 to 65535 for CV_16U images\n. - 0 to 1 for CV_32F images\n. \n. In case of linear transformations, the range does not matter. But in case of a non-linear\n. transformation, an input RGB image should be normalized to the proper value range to get the correct\n. results, for example, for RGB \\f$\\rightarrow\\f$ L\\*u\\*v\\* transformation. For example, if you have a\n. 32-bit floating-point image directly converted from an 8-bit image without any scaling, then it will\n. have the 0..255 value range instead of 0..1 assumed by the function. So, before calling #cvtColor ,\n. you need first to scale the image down:\n. @code\n. img *= 1./255;\n. cvtColor(img, img, COLOR_BGR2Luv);\n. @endcode\n. If you use #cvtColor with 8-bit images, the conversion will have some information lost. For many\n. applications, this will not be noticeable but it is recommended to use 32-bit images in applications\n. that need the full range of colors or that convert an image before an operation and then convert\n. back.\n. \n. If conversion adds the alpha channel, its value will set to the maximum of corresponding channel\n. range: 255 for CV_8U, 65535 for CV_16U, 1 for CV_32F.\n. \n. @param src input image: 8-bit unsigned, 16-bit unsigned ( CV_16UC... ), or single-precision\n. floating-point.\n. @param dst output image of the same size and depth as src.\n. @param code color space conversion code (see #ColorConversionCodes).\n. @param dstCn number of channels in the destination image; if the parameter is 0, the number of the\n. channels is derived automatically from src and code.\n. \n. @see @ref imgproc_color_conversions' - ... - -def cvtColorTwoPlane(src1: Mat, src2: Mat, code: int, dts: Mat = ...) -> typing.Any: - 'cvtColorTwoPlane(src1, src2, code[, dst]) -> dst\n. @brief Converts an image from one color space to another where the source image is\n. stored in two planes.\n. \n. This function only supports YUV420 to RGB conversion as of now.\n. \n. @param src1: 8-bit image (#CV_8U) of the Y plane.\n. @param src2: image containing interleaved U/V plane.\n. @param dst: output image.\n. @param code: Specifies the type of conversion. It can take any of the following values:\n. - #COLOR_YUV2BGR_NV12\n. - #COLOR_YUV2RGB_NV12\n. - #COLOR_YUV2BGRA_NV12\n. - #COLOR_YUV2RGBA_NV12\n. - #COLOR_YUV2BGR_NV21\n. - #COLOR_YUV2RGB_NV21\n. - #COLOR_YUV2BGRA_NV21\n. - #COLOR_YUV2RGBA_NV21' - ... - -def dct(src: Mat, dts: Mat = ..., flags: int = ...) -> typing.Any: - 'dct(src[, dst[, flags]]) -> dst\n. @brief Performs a forward or inverse discrete Cosine transform of 1D or 2D array.\n. \n. The function cv::dct performs a forward or inverse discrete Cosine transform (DCT) of a 1D or 2D\n. floating-point array:\n. - Forward Cosine transform of a 1D vector of N elements:\n. \\f[Y = C^{(N)} \\cdot X\\f]\n. where\n. \\f[C^{(N)}_{jk}= \\sqrt{\\alpha_j/N} \\cos \\left ( \\frac{\\pi(2k+1)j}{2N} \\right )\\f]\n. and\n. \\f$\\alpha_0=1\\f$, \\f$\\alpha_j=2\\f$ for *j \\> 0*.\n. - Inverse Cosine transform of a 1D vector of N elements:\n. \\f[X = \\left (C^{(N)} \\right )^{-1} \\cdot Y = \\left (C^{(N)} \\right )^T \\cdot Y\\f]\n. (since \\f$C^{(N)}\\f$ is an orthogonal matrix, \\f$C^{(N)} \\cdot \\left(C^{(N)}\\right)^T = I\\f$ )\n. - Forward 2D Cosine transform of M x N matrix:\n. \\f[Y = C^{(N)} \\cdot X \\cdot \\left (C^{(N)} \\right )^T\\f]\n. - Inverse 2D Cosine transform of M x N matrix:\n. \\f[X = \\left (C^{(N)} \\right )^T \\cdot X \\cdot C^{(N)}\\f]\n. \n. The function chooses the mode of operation by looking at the flags and size of the input array:\n. - If (flags & #DCT_INVERSE) == 0 , the function does a forward 1D or 2D transform. Otherwise, it\n. is an inverse 1D or 2D transform.\n. - If (flags & #DCT_ROWS) != 0 , the function performs a 1D transform of each row.\n. - If the array is a single column or a single row, the function performs a 1D transform.\n. - If none of the above is true, the function performs a 2D transform.\n. \n. @note Currently dct supports even-size arrays (2, 4, 6 ...). For data analysis and approximation, you\n. can pad the array when necessary.\n. Also, the function performance depends very much, and not monotonically, on the array size (see\n. getOptimalDFTSize ). In the current implementation DCT of a vector of size N is calculated via DFT\n. of a vector of size N/2 . Thus, the optimal DCT size N1 \\>= N can be calculated as:\n. @code\n. size_t getOptimalDCTSize(size_t N) { return 2*getOptimalDFTSize((N+1)/2); }\n. N1 = getOptimalDCTSize(N);\n. @endcode\n. @param src input floating-point array.\n. @param dst output array of the same size and type as src .\n. @param flags transformation flags as a combination of cv::DftFlags (DCT_*)\n. @sa dft , getOptimalDFTSize , idct' - ... - -def decolor(src: Mat, grayscale=..., color_boost=...) -> typing.Any: - 'decolor(src[, grayscale[, color_boost]]) -> grayscale, color_boost\n. @brief Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized\n. black-and-white photograph rendering, and in many single channel image processing applications\n. @cite CL12 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param grayscale Output 8-bit 1-channel image.\n. @param color_boost Output 8-bit 3-channel image.\n. \n. This function is to be applied on color images.' - ... - -def decomposeEssentialMat(E, R1=..., R2=..., t=...) -> typing.Any: - "decomposeEssentialMat(E[, R1[, R2[, t]]]) -> R1, R2, t\n. @brief Decompose an essential matrix to possible rotations and translation.\n. \n. @param E The input essential matrix.\n. @param R1 One possible rotation matrix.\n. @param R2 Another possible rotation matrix.\n. @param t One possible translation.\n. \n. This function decomposes the essential matrix E using svd decomposition @cite HartleyZ00. In\n. general, four possible poses exist for the decomposition of E. They are \\f$[R_1, t]\\f$,\n. \\f$[R_1, -t]\\f$, \\f$[R_2, t]\\f$, \\f$[R_2, -t]\\f$.\n. \n. If E gives the epipolar constraint \\f$[p_2; 1]^T A^{-T} E A^{-1} [p_1; 1] = 0\\f$ between the image\n. points \\f$p_1\\f$ in the first image and \\f$p_2\\f$ in second image, then any of the tuples\n. \\f$[R_1, t]\\f$, \\f$[R_1, -t]\\f$, \\f$[R_2, t]\\f$, \\f$[R_2, -t]\\f$ is a change of basis from the first\n. camera's coordinate system to the second camera's coordinate system. However, by decomposing E, one\n. can only get the direction of the translation. For this reason, the translation t is returned with\n. unit length." - ... - -def decomposeHomographyMat(H, K, rotations=..., translations=..., normals=...) -> typing.Any: - "decomposeHomographyMat(H, K[, rotations[, translations[, normals]]]) -> retval, rotations, translations, normals\n. @brief Decompose a homography matrix to rotation(s), translation(s) and plane normal(s).\n. \n. @param H The input homography matrix between two images.\n. @param K The input intrinsic camera calibration matrix.\n. @param rotations Array of rotation matrices.\n. @param translations Array of translation matrices.\n. @param normals Array of plane normal matrices.\n. \n. This function extracts relative camera motion between two views of a planar object and returns up to\n. four mathematical solution tuples of rotation, translation, and plane normal. The decomposition of\n. the homography matrix H is described in detail in @cite Malis.\n. \n. If the homography H, induced by the plane, gives the constraint\n. \\f[s_i \\vecthree{x'_i}{y'_i}{1} \\sim H \\vecthree{x_i}{y_i}{1}\\f] on the source image points\n. \\f$p_i\\f$ and the destination image points \\f$p'_i\\f$, then the tuple of rotations[k] and\n. translations[k] is a change of basis from the source camera's coordinate system to the destination\n. camera's coordinate system. However, by decomposing H, one can only get the translation normalized\n. by the (typically unknown) depth of the scene, i.e. its direction but with normalized length.\n. \n. If point correspondences are available, at least two solutions may further be invalidated, by\n. applying positive depth constraint, i.e. all points must be in front of the camera." - ... - -def decomposeProjectionMatrix(projMatrix, cameraMatrix=..., rotMatrix=..., transVect=..., rotMatrixX=..., rotMatrixY=..., rotMatrixZ=..., eulerAngles=...) -> typing.Any: - 'decomposeProjectionMatrix(projMatrix[, cameraMatrix[, rotMatrix[, transVect[, rotMatrixX[, rotMatrixY[, rotMatrixZ[, eulerAngles]]]]]]]) -> cameraMatrix, rotMatrix, transVect, rotMatrixX, rotMatrixY, rotMatrixZ, eulerAngles\n. @brief Decomposes a projection matrix into a rotation matrix and a camera matrix.\n. \n. @param projMatrix 3x4 input projection matrix P.\n. @param cameraMatrix Output 3x3 camera matrix K.\n. @param rotMatrix Output 3x3 external rotation matrix R.\n. @param transVect Output 4x1 translation vector T.\n. @param rotMatrixX Optional 3x3 rotation matrix around x-axis.\n. @param rotMatrixY Optional 3x3 rotation matrix around y-axis.\n. @param rotMatrixZ Optional 3x3 rotation matrix around z-axis.\n. @param eulerAngles Optional three-element vector containing three Euler angles of rotation in\n. degrees.\n. \n. The function computes a decomposition of a projection matrix into a calibration and a rotation\n. matrix and the position of a camera.\n. \n. It optionally returns three rotation matrices, one for each axis, and three Euler angles that could\n. be used in OpenGL. Note, there is always more than one sequence of rotations about the three\n. principal axes that results in the same orientation of an object, e.g. see @cite Slabaugh . Returned\n. tree rotation matrices and corresponding three Euler angles are only one of the possible solutions.\n. \n. The function is based on RQDecomp3x3 .' - ... - -def demosaicing(src: Mat, code: int, dts: Mat = ..., dstCn: int = ...) -> typing.Any: - 'demosaicing(src, code[, dst[, dstCn]]) -> dst\n. @brief main function for all demosaicing processes\n. \n. @param src input image: 8-bit unsigned or 16-bit unsigned.\n. @param dst output image of the same size and depth as src.\n. @param code Color space conversion code (see the description below).\n. @param dstCn number of channels in the destination image; if the parameter is 0, the number of the\n. channels is derived automatically from src and code.\n. \n. The function can do the following transformations:\n. \n. - Demosaicing using bilinear interpolation\n. \n. #COLOR_BayerBG2BGR , #COLOR_BayerGB2BGR , #COLOR_BayerRG2BGR , #COLOR_BayerGR2BGR\n. \n. #COLOR_BayerBG2GRAY , #COLOR_BayerGB2GRAY , #COLOR_BayerRG2GRAY , #COLOR_BayerGR2GRAY\n. \n. - Demosaicing using Variable Number of Gradients.\n. \n. #COLOR_BayerBG2BGR_VNG , #COLOR_BayerGB2BGR_VNG , #COLOR_BayerRG2BGR_VNG , #COLOR_BayerGR2BGR_VNG\n. \n. - Edge-Aware Demosaicing.\n. \n. #COLOR_BayerBG2BGR_EA , #COLOR_BayerGB2BGR_EA , #COLOR_BayerRG2BGR_EA , #COLOR_BayerGR2BGR_EA\n. \n. - Demosaicing with alpha channel\n. \n. #COLOR_BayerBG2BGRA , #COLOR_BayerGB2BGRA , #COLOR_BayerRG2BGRA , #COLOR_BayerGR2BGRA\n. \n. @sa cvtColor' - ... - -def denoise_TVL1(observations, result, lambda_=..., niters=...) -> typing.Any: - "denoise_TVL1(observations, result[, lambda[, niters]]) -> None\n. @brief Primal-dual algorithm is an algorithm for solving special types of variational problems (that is,\n. finding a function to minimize some functional). As the image denoising, in particular, may be seen\n. as the variational problem, primal-dual algorithm then can be used to perform denoising and this is\n. exactly what is implemented.\n. \n. It should be noted, that this implementation was taken from the July 2013 blog entry\n. @cite MA13 , which also contained (slightly more general) ready-to-use source code on Python.\n. Subsequently, that code was rewritten on C++ with the usage of openCV by Vadim Pisarevsky at the end\n. of July 2013 and finally it was slightly adapted by later authors.\n. \n. Although the thorough discussion and justification of the algorithm involved may be found in\n. @cite ChambolleEtAl, it might make sense to skim over it here, following @cite MA13 . To begin\n. with, we consider the 1-byte gray-level images as the functions from the rectangular domain of\n. pixels (it may be seen as set\n. \\f$\\left\\{(x,y)\\in\\mathbb{N}\\times\\mathbb{N}\\mid 1\\leq x\\leq n,\\;1\\leq y\\leq m\\right\\}\\f$ for some\n. \\f$m,\\;n\\in\\mathbb{N}\\f$) into \\f$\\{0,1,\\dots,255\\}\\f$. We shall denote the noised images as \\f$f_i\\f$ and with\n. this view, given some image \\f$x\\f$ of the same size, we may measure how bad it is by the formula\n. \n. \\f[\\left\\|\\left\\|\\nabla x\\right\\|\\right\\| + \\lambda\\sum_i\\left\\|\\left\\|x-f_i\\right\\|\\right\\|\\f]\n. \n. \\f$\\|\\|\\cdot\\|\\|\\f$ here denotes \\f$L_2\\f$-norm and as you see, the first addend states that we want our\n. image to be smooth (ideally, having zero gradient, thus being constant) and the second states that\n. we want our result to be close to the observations we've got. If we treat \\f$x\\f$ as a function, this is\n. exactly the functional what we seek to minimize and here the Primal-Dual algorithm comes into play.\n. \n. @param observations This array should contain one or more noised versions of the image that is to\n. be restored.\n. @param result Here the denoised image will be stored. There is no need to do pre-allocation of\n. storage space, as it will be automatically allocated, if necessary.\n. @param lambda Corresponds to \\f$\\lambda\\f$ in the formulas above. As it is enlarged, the smooth\n. (blurred) images are treated more favorably than detailed (but maybe more noised) ones. Roughly\n. speaking, as it becomes smaller, the result will be more blur but more sever outliers will be\n. removed.\n. @param niters Number of iterations that the algorithm will run. Of course, as more iterations as\n. better, but it is hard to quantitatively refine this statement, so just use the default and\n. increase it if the results are poor." - ... - -def destroyAllWindows() -> typing.Any: - 'destroyAllWindows() -> None\n. @brief Destroys all of the HighGUI windows.\n. \n. The function destroyAllWindows destroys all of the opened HighGUI windows.' - ... - -def destroyWindow(winname) -> typing.Any: - 'destroyWindow(winname) -> None\n. @brief Destroys the specified window.\n. \n. The function destroyWindow destroys the window with the given name.\n. \n. @param winname Name of the window to be destroyed.' - ... - -def detailEnhance(src: Mat, dts: Mat = ..., sigma_s=..., sigma_r=...) -> typing.Any: - 'detailEnhance(src[, dst[, sigma_s[, sigma_r]]]) -> dst\n. @brief This filter enhances the details of a particular image.\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' - ... - -detail_AffineBasedEstimator = _mod_cv2.detail_AffineBasedEstimator -detail_AffineBestOf2NearestMatcher = _mod_cv2.detail_AffineBestOf2NearestMatcher -detail_BestOf2NearestMatcher = _mod_cv2.detail_BestOf2NearestMatcher -detail_BestOf2NearestRangeMatcher = _mod_cv2.detail_BestOf2NearestRangeMatcher -detail_Blender = _mod_cv2.detail_Blender -detail_BlocksChannelsCompensator = _mod_cv2.detail_BlocksChannelsCompensator -detail_BlocksCompensator = _mod_cv2.detail_BlocksCompensator -detail_BlocksGainCompensator = _mod_cv2.detail_BlocksGainCompensator -detail_BundleAdjusterAffine = _mod_cv2.detail_BundleAdjusterAffine -detail_BundleAdjusterAffinePartial = _mod_cv2.detail_BundleAdjusterAffinePartial -detail_BundleAdjusterBase = _mod_cv2.detail_BundleAdjusterBase -detail_BundleAdjusterRay = _mod_cv2.detail_BundleAdjusterRay -detail_BundleAdjusterReproj = _mod_cv2.detail_BundleAdjusterReproj -detail_CameraParams = _mod_cv2.detail_CameraParams -detail_ChannelsCompensator = _mod_cv2.detail_ChannelsCompensator -detail_DpSeamFinder = _mod_cv2.detail_DpSeamFinder -detail_Estimator = _mod_cv2.detail_Estimator -detail_ExposureCompensator = _mod_cv2.detail_ExposureCompensator -detail_FeatherBlender = _mod_cv2.detail_FeatherBlender -detail_FeaturesMatcher = _mod_cv2.detail_FeaturesMatcher -detail_GainCompensator = _mod_cv2.detail_GainCompensator -detail_GraphCutSeamFinder = _mod_cv2.detail_GraphCutSeamFinder -detail_HomographyBasedEstimator = _mod_cv2.detail_HomographyBasedEstimator -detail_ImageFeatures = _mod_cv2.detail_ImageFeatures -detail_MatchesInfo = _mod_cv2.detail_MatchesInfo -detail_MultiBandBlender = _mod_cv2.detail_MultiBandBlender -detail_NoBundleAdjuster = _mod_cv2.detail_NoBundleAdjuster -detail_NoExposureCompensator = _mod_cv2.detail_NoExposureCompensator -detail_NoSeamFinder = _mod_cv2.detail_NoSeamFinder -detail_PairwiseSeamFinder = _mod_cv2.detail_PairwiseSeamFinder -detail_ProjectorBase = _mod_cv2.detail_ProjectorBase -detail_SeamFinder = _mod_cv2.detail_SeamFinder -detail_SphericalProjector = _mod_cv2.detail_SphericalProjector -detail_Timelapser = _mod_cv2.detail_Timelapser -detail_TimelapserCrop = _mod_cv2.detail_TimelapserCrop -detail_VoronoiSeamFinder = _mod_cv2.detail_VoronoiSeamFinder -def determinant(mtx) -> typing.Any: - 'determinant(mtx) -> retval\n. @brief Returns the determinant of a square floating-point matrix.\n. \n. The function cv::determinant calculates and returns the determinant of the\n. specified matrix. For small matrices ( mtx.cols=mtx.rows\\<=3 ), the\n. direct method is used. For larger matrices, the function uses LU\n. factorization with partial pivoting.\n. \n. For symmetric positively-determined matrices, it is also possible to use\n. eigen decomposition to calculate the determinant.\n. @param mtx input matrix that must have CV_32FC1 or CV_64FC1 type and\n. square size.\n. @sa trace, invert, solve, eigen, @ref MatrixExpressions' - ... - -def dft(src: Mat, dts: Mat = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: - 'dft(src[, dst[, flags[, nonzeroRows]]]) -> dst\n. @brief Performs a forward or inverse Discrete Fourier transform of a 1D or 2D floating-point array.\n. \n. The function cv::dft performs one of the following:\n. - Forward the Fourier transform of a 1D vector of N elements:\n. \\f[Y = F^{(N)} \\cdot X,\\f]\n. where \\f$F^{(N)}_{jk}=\\exp(-2\\pi i j k/N)\\f$ and \\f$i=\\sqrt{-1}\\f$\n. - Inverse the Fourier transform of a 1D vector of N elements:\n. \\f[\\begin{array}{l} X\'= \\left (F^{(N)} \\right )^{-1} \\cdot Y = \\left (F^{(N)} \\right )^* \\cdot y \\\\ X = (1/N) \\cdot X, \\end{array}\\f]\n. where \\f$F^*=\\left(\\textrm{Re}(F^{(N)})-\\textrm{Im}(F^{(N)})\\right)^T\\f$\n. - Forward the 2D Fourier transform of a M x N matrix:\n. \\f[Y = F^{(M)} \\cdot X \\cdot F^{(N)}\\f]\n. - Inverse the 2D Fourier transform of a M x N matrix:\n. \\f[\\begin{array}{l} X\'= \\left (F^{(M)} \\right )^* \\cdot Y \\cdot \\left (F^{(N)} \\right )^* \\\\ X = \\frac{1}{M \\cdot N} \\cdot X\' \\end{array}\\f]\n. \n. In case of real (single-channel) data, the output spectrum of the forward Fourier transform or input\n. spectrum of the inverse Fourier transform can be represented in a packed format called *CCS*\n. (complex-conjugate-symmetrical). It was borrowed from IPL (Intel\\* Image Processing Library). Here\n. is how 2D *CCS* spectrum looks:\n. \\f[\\begin{bmatrix} Re Y_{0,0} & Re Y_{0,1} & Im Y_{0,1} & Re Y_{0,2} & Im Y_{0,2} & \\cdots & Re Y_{0,N/2-1} & Im Y_{0,N/2-1} & Re Y_{0,N/2} \\\\ Re Y_{1,0} & Re Y_{1,1} & Im Y_{1,1} & Re Y_{1,2} & Im Y_{1,2} & \\cdots & Re Y_{1,N/2-1} & Im Y_{1,N/2-1} & Re Y_{1,N/2} \\\\ Im Y_{1,0} & Re Y_{2,1} & Im Y_{2,1} & Re Y_{2,2} & Im Y_{2,2} & \\cdots & Re Y_{2,N/2-1} & Im Y_{2,N/2-1} & Im Y_{1,N/2} \\\\ \\hdotsfor{9} \\\\ Re Y_{M/2-1,0} & Re Y_{M-3,1} & Im Y_{M-3,1} & \\hdotsfor{3} & Re Y_{M-3,N/2-1} & Im Y_{M-3,N/2-1}& Re Y_{M/2-1,N/2} \\\\ Im Y_{M/2-1,0} & Re Y_{M-2,1} & Im Y_{M-2,1} & \\hdotsfor{3} & Re Y_{M-2,N/2-1} & Im Y_{M-2,N/2-1}& Im Y_{M/2-1,N/2} \\\\ Re Y_{M/2,0} & Re Y_{M-1,1} & Im Y_{M-1,1} & \\hdotsfor{3} & Re Y_{M-1,N/2-1} & Im Y_{M-1,N/2-1}& Re Y_{M/2,N/2} \\end{bmatrix}\\f]\n. \n. In case of 1D transform of a real vector, the output looks like the first row of the matrix above.\n. \n. So, the function chooses an operation mode depending on the flags and size of the input array:\n. - If #DFT_ROWS is set or the input array has a single row or single column, the function\n. performs a 1D forward or inverse transform of each row of a matrix when #DFT_ROWS is set.\n. Otherwise, it performs a 2D transform.\n. - If the input array is real and #DFT_INVERSE is not set, the function performs a forward 1D or\n. 2D transform:\n. - When #DFT_COMPLEX_OUTPUT is set, the output is a complex matrix of the same size as\n. input.\n. - When #DFT_COMPLEX_OUTPUT is not set, the output is a real matrix of the same size as\n. input. In case of 2D transform, it uses the packed format as shown above. In case of a\n. single 1D transform, it looks like the first row of the matrix above. In case of\n. multiple 1D transforms (when using the #DFT_ROWS flag), each row of the output matrix\n. looks like the first row of the matrix above.\n. - If the input array is complex and either #DFT_INVERSE or #DFT_REAL_OUTPUT are not set, the\n. output is a complex array of the same size as input. The function performs a forward or\n. inverse 1D or 2D transform of the whole input array or each row of the input array\n. independently, depending on the flags DFT_INVERSE and DFT_ROWS.\n. - When #DFT_INVERSE is set and the input array is real, or it is complex but #DFT_REAL_OUTPUT\n. is set, the output is a real array of the same size as input. The function performs a 1D or 2D\n. inverse transformation of the whole input array or each individual row, depending on the flags\n. #DFT_INVERSE and #DFT_ROWS.\n. \n. If #DFT_SCALE is set, the scaling is done after the transformation.\n. \n. Unlike dct , the function supports arrays of arbitrary size. But only those arrays are processed\n. efficiently, whose sizes can be factorized in a product of small prime numbers (2, 3, and 5 in the\n. current implementation). Such an efficient DFT size can be calculated using the getOptimalDFTSize\n. method.\n. \n. The sample below illustrates how to calculate a DFT-based convolution of two 2D real arrays:\n. @code\n. void convolveDFT(InputArray A, InputArray B, OutputArray C)\n. {\n. // reallocate the output array if needed\n. C.create(abs(A.rows - B.rows)+1, abs(A.cols - B.cols)+1, A.type());\n. Size dftSize;\n. // calculate the size of DFT transform\n. dftSize.width = getOptimalDFTSize(A.cols + B.cols - 1);\n. dftSize.height = getOptimalDFTSize(A.rows + B.rows - 1);\n. \n. // allocate temporary buffers and initialize them with 0\'s\n. Mat tempA(dftSize, A.type(), Scalar::all(0));\n. Mat tempB(dftSize, B.type(), Scalar::all(0));\n. \n. // copy A and B to the top-left corners of tempA and tempB, respectively\n. Mat roiA(tempA, Rect(0,0,A.cols,A.rows));\n. A.copyTo(roiA);\n. Mat roiB(tempB, Rect(0,0,B.cols,B.rows));\n. B.copyTo(roiB);\n. \n. // now transform the padded A & B in-place;\n. // use "nonzeroRows" hint for faster processing\n. dft(tempA, tempA, 0, A.rows);\n. dft(tempB, tempB, 0, B.rows);\n. \n. // multiply the spectrums;\n. // the function handles packed spectrum representations well\n. mulSpectrums(tempA, tempB, tempA);\n. \n. // transform the product back from the frequency domain.\n. // Even though all the result rows will be non-zero,\n. // you need only the first C.rows of them, and thus you\n. // pass nonzeroRows == C.rows\n. dft(tempA, tempA, DFT_INVERSE + DFT_SCALE, C.rows);\n. \n. // now copy the result back to C.\n. tempA(Rect(0, 0, C.cols, C.rows)).copyTo(C);\n. \n. // all the temporary buffers will be deallocated automatically\n. }\n. @endcode\n. To optimize this sample, consider the following approaches:\n. - Since nonzeroRows != 0 is passed to the forward transform calls and since A and B are copied to\n. the top-left corners of tempA and tempB, respectively, it is not necessary to clear the whole\n. tempA and tempB. It is only necessary to clear the tempA.cols - A.cols ( tempB.cols - B.cols)\n. rightmost columns of the matrices.\n. - This DFT-based convolution does not have to be applied to the whole big arrays, especially if B\n. is significantly smaller than A or vice versa. Instead, you can calculate convolution by parts.\n. To do this, you need to split the output array C into multiple tiles. For each tile, estimate\n. which parts of A and B are required to calculate convolution in this tile. If the tiles in C are\n. too small, the speed will decrease a lot because of repeated work. In the ultimate case, when\n. each tile in C is a single pixel, the algorithm becomes equivalent to the naive convolution\n. algorithm. If the tiles are too big, the temporary arrays tempA and tempB become too big and\n. there is also a slowdown because of bad cache locality. So, there is an optimal tile size\n. somewhere in the middle.\n. - If different tiles in C can be calculated in parallel and, thus, the convolution is done by\n. parts, the loop can be threaded.\n. \n. All of the above improvements have been implemented in #matchTemplate and #filter2D . Therefore, by\n. using them, you can get the performance even better than with the above theoretically optimal\n. implementation. Though, those two functions actually calculate cross-correlation, not convolution,\n. so you need to "flip" the second convolution operand B vertically and horizontally using flip .\n. @note\n. - An example using the discrete fourier transform can be found at\n. opencv_source_code/samples/cpp/dft.cpp\n. - (Python) An example using the dft functionality to perform Wiener deconvolution can be found\n. at opencv_source/samples/python/deconvolution.py\n. - (Python) An example rearranging the quadrants of a Fourier image can be found at\n. opencv_source/samples/python/dft.py\n. @param src input array that could be real or complex.\n. @param dst output array whose size and type depends on the flags .\n. @param flags transformation flags, representing a combination of the #DftFlags\n. @param nonzeroRows when the parameter is not zero, the function assumes that only the first\n. nonzeroRows rows of the input array (#DFT_INVERSE is not set) or only the first nonzeroRows of the\n. output array (#DFT_INVERSE is set) contain non-zeros, thus, the function can handle the rest of the\n. rows more efficiently and save some time; this technique is very useful for calculating array\n. cross-correlation or convolution using DFT.\n. @sa dct , getOptimalDFTSize , mulSpectrums, filter2D , matchTemplate , flip , cartToPolar ,\n. magnitude , phase' - ... - -def dilate(src: Mat, kernel, dts: Mat = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: - "dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Dilates an image by using a specific structuring element.\n. \n. The function dilates the source image using the specified structuring element that determines the\n. shape of a pixel neighborhood over which the maximum is taken:\n. \\f[\\texttt{dst} (x,y) = \\max _{(x',y'): \\, \\texttt{element} (x',y') \\ne0 } \\texttt{src} (x+x',y+y')\\f]\n. \n. The function supports the in-place mode. Dilation can be applied several ( iterations ) times. In\n. case of multi-channel images, each channel is processed independently.\n. \n. @param src input image; the number of channels can be arbitrary, but the depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param kernel structuring element used for dilation; if elemenat=Mat(), a 3 x 3 rectangular\n. structuring element is used. Kernel can be created using #getStructuringElement\n. @param anchor position of the anchor within the element; default value (-1, -1) means that the\n. anchor is at the element center.\n. @param iterations number of times dilation is applied.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not suported.\n. @param borderValue border value in case of a constant border\n. @sa erode, morphologyEx, getStructuringElement" - ... - -def displayOverlay(winname, text, delayms=...) -> typing.Any: - 'displayOverlay(winname, text[, delayms]) -> None\n. @brief Displays a text on a window image as an overlay for a specified duration.\n. \n. The function displayOverlay displays useful information/tips on top of the window for a certain\n. amount of time *delayms*. The function does not modify the image, displayed in the window, that is,\n. after the specified delay the original content of the window is restored.\n. \n. @param winname Name of the window.\n. @param text Overlay text to write on a window image.\n. @param delayms The period (in milliseconds), during which the overlay text is displayed. If this\n. function is called before the previous overlay text timed out, the timer is restarted and the text\n. is updated. If this value is zero, the text never disappears.' - ... - -def displayStatusBar(winname, text, delayms=...) -> typing.Any: - 'displayStatusBar(winname, text[, delayms]) -> None\n. @brief Displays a text on the window statusbar during the specified period of time.\n. \n. The function displayStatusBar displays useful information/tips on top of the window for a certain\n. amount of time *delayms* . This information is displayed on the window statusbar (the window must be\n. created with the CV_GUI_EXPANDED flags).\n. \n. @param winname Name of the window.\n. @param text Text to write on the window statusbar.\n. @param delayms Duration (in milliseconds) to display the text. If this function is called before\n. the previous text timed out, the timer is restarted and the text is updated. If this value is\n. zero, the text never disappears.' - ... - -def distanceTransform(src: Mat, distanceType, maskSize, dts: Mat = ..., dstType=...) -> typing.Any: - 'distanceTransform(src, distanceType, maskSize[, dst[, dstType]]) -> dst\n. @overload\n. @param src 8-bit, single-channel (binary) source image.\n. @param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point,\n. single-channel image of the same size as src .\n. @param distanceType Type of distance, see #DistanceTypes\n. @param maskSize Size of the distance transform mask, see #DistanceTransformMasks. In case of the\n. #DIST_L1 or #DIST_C distance type, the parameter is forced to 3 because a \\f$3\\times 3\\f$ mask gives\n. the same result as \\f$5\\times 5\\f$ or any larger aperture.\n. @param dstType Type of output image. It can be CV_8U or CV_32F. Type CV_8U can be used only for\n. the first variant of the function and distanceType == #DIST_L1.' - ... - -def distanceTransformWithLabels(src: Mat, distanceType, maskSize, dts: Mat = ..., labels=..., labelType=...) -> typing.Any: - "distanceTransformWithLabels(src, distanceType, maskSize[, dst[, labels[, labelType]]]) -> dst, labels\n. @brief Calculates the distance to the closest zero pixel for each pixel of the source image.\n. \n. The function cv::distanceTransform calculates the approximate or precise distance from every binary\n. image pixel to the nearest zero pixel. For zero image pixels, the distance will obviously be zero.\n. \n. When maskSize == #DIST_MASK_PRECISE and distanceType == #DIST_L2 , the function runs the\n. algorithm described in @cite Felzenszwalb04 . This algorithm is parallelized with the TBB library.\n. \n. In other cases, the algorithm @cite Borgefors86 is used. This means that for a pixel the function\n. finds the shortest path to the nearest zero pixel consisting of basic shifts: horizontal, vertical,\n. diagonal, or knight's move (the latest is available for a \\f$5\\times 5\\f$ mask). The overall\n. distance is calculated as a sum of these basic distances. Since the distance function should be\n. symmetric, all of the horizontal and vertical shifts must have the same cost (denoted as a ), all\n. the diagonal shifts must have the same cost (denoted as `b`), and all knight's moves must have the\n. same cost (denoted as `c`). For the #DIST_C and #DIST_L1 types, the distance is calculated\n. precisely, whereas for #DIST_L2 (Euclidean distance) the distance can be calculated only with a\n. relative error (a \\f$5\\times 5\\f$ mask gives more accurate results). For `a`,`b`, and `c`, OpenCV\n. uses the values suggested in the original paper:\n. - DIST_L1: `a = 1, b = 2`\n. - DIST_L2:\n. - `3 x 3`: `a=0.955, b=1.3693`\n. - `5 x 5`: `a=1, b=1.4, c=2.1969`\n. - DIST_C: `a = 1, b = 1`\n. \n. Typically, for a fast, coarse distance estimation #DIST_L2, a \\f$3\\times 3\\f$ mask is used. For a\n. more accurate distance estimation #DIST_L2, a \\f$5\\times 5\\f$ mask or the precise algorithm is used.\n. Note that both the precise and the approximate algorithms are linear on the number of pixels.\n. \n. This variant of the function does not only compute the minimum distance for each pixel \\f$(x, y)\\f$\n. but also identifies the nearest connected component consisting of zero pixels\n. (labelType==#DIST_LABEL_CCOMP) or the nearest zero pixel (labelType==#DIST_LABEL_PIXEL). Index of the\n. component/pixel is stored in `labels(x, y)`. When labelType==#DIST_LABEL_CCOMP, the function\n. automatically finds connected components of zero pixels in the input image and marks them with\n. distinct labels. When labelType==#DIST_LABEL_CCOMP, the function scans through the input image and\n. marks all the zero pixels with distinct labels.\n. \n. In this mode, the complexity is still linear. That is, the function provides a very fast way to\n. compute the Voronoi diagram for a binary image. Currently, the second variant can use only the\n. approximate distance transform algorithm, i.e. maskSize=#DIST_MASK_PRECISE is not supported\n. yet.\n. \n. @param src 8-bit, single-channel (binary) source image.\n. @param dst Output image with calculated distances. It is a 8-bit or 32-bit floating-point,\n. single-channel image of the same size as src.\n. @param labels Output 2D array of labels (the discrete Voronoi diagram). It has the type\n. CV_32SC1 and the same size as src.\n. @param distanceType Type of distance, see #DistanceTypes\n. @param maskSize Size of the distance transform mask, see #DistanceTransformMasks.\n. #DIST_MASK_PRECISE is not supported by this variant. In case of the #DIST_L1 or #DIST_C distance type,\n. the parameter is forced to 3 because a \\f$3\\times 3\\f$ mask gives the same result as \\f$5\\times\n. 5\\f$ or any larger aperture.\n. @param labelType Type of the label array to build, see #DistanceTransformLabelTypes." - ... - -def divide(src1: Mat, src2: Mat, dts: Mat = ..., scale=..., dtype=...) -> typing.Any: - 'divide(src1, src2[, dst[, scale[, dtype]]]) -> dst\n. @brief Performs per-element division of two arrays or a scalar by an array.\n. \n. The function cv::divide divides one array by another:\n. \\f[\\texttt{dst(I) = saturate(src1(I)*scale/src2(I))}\\f]\n. or a scalar by an array when there is no src1 :\n. \\f[\\texttt{dst(I) = saturate(scale/src2(I))}\\f]\n. \n. Different channels of multi-channel arrays are processed independently.\n. \n. For integer types when src2(I) is zero, dst(I) will also be zero.\n. \n. @note In case of floating point data there is no special defined behavior for zero src2(I) values.\n. Regular floating-point division is used.\n. Expect correct IEEE-754 behaviour for floating-point data (with NaN, Inf result values).\n. \n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1.\n. @param scale scalar factor.\n. @param dst output array of the same size and type as src2.\n. @param dtype optional depth of the output array; if -1, dst will have depth src2.depth(), but in\n. case of an array-by-array division, you can only pass -1 when src1.depth()==src2.depth().\n. @sa multiply, add, subtract\n\n\n\ndivide(scale, src2[, dst[, dtype]]) -> dst\n. @overload' - ... - -dnn_ClassificationModel = _mod_cv2.dnn_ClassificationModel -dnn_DetectionModel = _mod_cv2.dnn_DetectionModel -dnn_DictValue = _mod_cv2.dnn_DictValue -dnn_KeypointsModel = _mod_cv2.dnn_KeypointsModel -dnn_Layer = _mod_cv2.dnn_Layer -dnn_Model = _mod_cv2.dnn_Model -dnn_Net = _mod_cv2.dnn_Net -dnn_SegmentationModel = _mod_cv2.dnn_SegmentationModel -def dnn_registerLayer() -> typing.Any: - 'registerLayer(type, class) -> None' - ... - -def dnn_unregisterLayer() -> typing.Any: - 'unregisterLayer(type) -> None' - ... - -def drawChessboardCorners(image: Mat, patternSize, corners, patternWasFound) -> typing.Any: - 'drawChessboardCorners(image, patternSize, corners, patternWasFound) -> image\n. @brief Renders the detected chessboard corners.\n. \n. @param image Destination image. It must be an 8-bit color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. (patternSize = cv::Size(points_per_row,points_per_column)).\n. @param corners Array of detected corners, the output of findChessboardCorners.\n. @param patternWasFound Parameter indicating whether the complete board was found or not. The\n. return value of findChessboardCorners should be passed here.\n. \n. The function draws individual chessboard corners detected either as red circles if the board was not\n. found, or as colored corners connected with lines if the board was found.' - ... - -def drawContours(image: Mat, contours, contourIdx, color, thickness=..., lineType=..., hierarchy=..., maxLevel=..., offset=...) -> typing.Any: - 'drawContours(image, contours, contourIdx, color[, thickness[, lineType[, hierarchy[, maxLevel[, offset]]]]]) -> image\n. @brief Draws contours outlines or filled contours.\n. \n. The function draws contour outlines in the image if \\f$\\texttt{thickness} \\ge 0\\f$ or fills the area\n. bounded by the contours if \\f$\\texttt{thickness}<0\\f$ . The example below shows how to retrieve\n. connected components from the binary image and label them: :\n. @include snippets/imgproc_drawContours.cpp\n. \n. @param image Destination image.\n. @param contours All the input contours. Each contour is stored as a point vector.\n. @param contourIdx Parameter indicating a contour to draw. If it is negative, all the contours are drawn.\n. @param color Color of the contours.\n. @param thickness Thickness of lines the contours are drawn with. If it is negative (for example,\n. thickness=#FILLED ), the contour interiors are drawn.\n. @param lineType Line connectivity. See #LineTypes\n. @param hierarchy Optional information about hierarchy. It is only needed if you want to draw only\n. some of the contours (see maxLevel ).\n. @param maxLevel Maximal level for drawn contours. If it is 0, only the specified contour is drawn.\n. If it is 1, the function draws the contour(s) and all the nested contours. If it is 2, the function\n. draws the contours, all the nested contours, all the nested-to-nested contours, and so on. This\n. parameter is only taken into account when there is hierarchy available.\n. @param offset Optional contour shift parameter. Shift all the drawn contours by the specified\n. \\f$\\texttt{offset}=(dx,dy)\\f$ .\n. @note When thickness=#FILLED, the function is designed to handle connected components with holes correctly\n. even when no hierarchy date is provided. This is done by analyzing all the outlines together\n. using even-odd rule. This may give incorrect results if you have a joint collection of separately retrieved\n. contours. In order to solve this problem, you need to call #drawContours separately for each sub-group\n. of contours, or iterate over the collection using contourIdx parameter.' - ... - -def drawFrameAxes(image: Mat, cameraMatrix, distCoeffs, rvec, tvec, length, thickness=...) -> typing.Any: - 'drawFrameAxes(image, cameraMatrix, distCoeffs, rvec, tvec, length[, thickness]) -> image\n. @brief Draw axes of the world/object coordinate system from pose estimation. @sa solvePnP\n. \n. @param image Input/output image. It must have 1 or 3 channels. The number of channels is not altered.\n. @param cameraMatrix Input 3x3 floating-point matrix of camera intrinsic parameters.\n. \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.\n. @param rvec Rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Translation vector.\n. @param length Length of the painted axes in the same unit than tvec (usually in meters).\n. @param thickness Line thickness of the painted axes.\n. \n. This function draws the axes of the world/object coordinate system w.r.t. to the camera frame.\n. OX is drawn in red, OY in green and OZ in blue.' - ... - -def drawKeypoints(image: Mat, keypoints, outImage, color=..., flags: int = ...) -> typing.Any: - 'drawKeypoints(image, keypoints, outImage[, color[, flags]]) -> outImage\n. @brief Draws keypoints.\n. \n. @param image Source image.\n. @param keypoints Keypoints from the source image.\n. @param outImage Output image. Its content depends on the flags value defining what is drawn in the\n. output image. See possible flags bit values below.\n. @param color Color of keypoints.\n. @param flags Flags setting drawing features. Possible flags bit values are defined by\n. DrawMatchesFlags. See details above in drawMatches .\n. \n. @note\n. For Python API, flags are modified as cv.DRAW_MATCHES_FLAGS_DEFAULT,\n. cv.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS, cv.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG,\n. cv.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS' - ... - -def drawMarker(img: Mat, position, color, markerType=..., markerSize=..., thickness=..., line_type=...) -> typing.Any: - 'drawMarker(img, position, color[, markerType[, markerSize[, thickness[, line_type]]]]) -> img\n. @brief Draws a marker on a predefined position in an image.\n. \n. The function cv::drawMarker draws a marker on a given position in the image. For the moment several\n. marker types are supported, see #MarkerTypes for more information.\n. \n. @param img Image.\n. @param position The point where the crosshair is positioned.\n. @param color Line color.\n. @param markerType The specific type of marker you want to use, see #MarkerTypes\n. @param thickness Line thickness.\n. @param line_type Type of the line, See #LineTypes\n. @param markerSize The length of the marker axis [default = 20 pixels]' - ... - -def drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor=..., singlePointColor=..., matchesMask=..., flags: int = ...) -> typing.Any: - 'drawMatches(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg\n. @brief Draws the found matches of keypoints from two images.\n. \n. @param img1 First source image.\n. @param keypoints1 Keypoints from the first source image.\n. @param img2 Second source image.\n. @param keypoints2 Keypoints from the second source image.\n. @param matches1to2 Matches from the first image to the second one, which means that keypoints1[i]\n. has a corresponding point in keypoints2[matches[i]] .\n. @param outImg Output image. Its content depends on the flags value defining what is drawn in the\n. output image. See possible flags bit values below.\n. @param matchColor Color of matches (lines and connected keypoints). If matchColor==Scalar::all(-1)\n. , the color is generated randomly.\n. @param singlePointColor Color of single keypoints (circles), which means that keypoints do not\n. have the matches. If singlePointColor==Scalar::all(-1) , the color is generated randomly.\n. @param matchesMask Mask determining which matches are drawn. If the mask is empty, all matches are\n. drawn.\n. @param flags Flags setting drawing features. Possible flags bit values are defined by\n. DrawMatchesFlags.\n. \n. This function draws matches of keypoints from two images in the output image. Match is a line\n. connecting two keypoints (circles). See cv::DrawMatchesFlags.' - ... - -def drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg, matchColor=..., singlePointColor=..., matchesMask=..., flags: int = ...) -> typing.Any: - 'drawMatchesKnn(img1, keypoints1, img2, keypoints2, matches1to2, outImg[, matchColor[, singlePointColor[, matchesMask[, flags]]]]) -> outImg\n. @overload' - ... - -def edgePreservingFilter(src: Mat, dts: Mat = ..., flags: int = ..., sigma_s=..., sigma_r=...) -> typing.Any: - 'edgePreservingFilter(src[, dst[, flags[, sigma_s[, sigma_r]]]]) -> dst\n. @brief Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing\n. filters are used in many different applications @cite EM11 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output 8-bit 3-channel image.\n. @param flags Edge preserving filters: cv::RECURS_FILTER or cv::NORMCONV_FILTER\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' - ... - -def eigen(src: Mat, eigenvalues=..., eigenvectors=...) -> typing.Any: - 'eigen(src[, eigenvalues[, eigenvectors]]) -> retval, eigenvalues, eigenvectors\n. @brief Calculates eigenvalues and eigenvectors of a symmetric matrix.\n. \n. The function cv::eigen calculates just eigenvalues, or eigenvalues and eigenvectors of the symmetric\n. matrix src:\n. @code\n. src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()\n. @endcode\n. \n. @note Use cv::eigenNonSymmetric for calculation of real eigenvalues and eigenvectors of non-symmetric matrix.\n. \n. @param src input matrix that must have CV_32FC1 or CV_64FC1 type, square size and be symmetrical\n. (src ^T^ == src).\n. @param eigenvalues output vector of eigenvalues of the same type as src; the eigenvalues are stored\n. in the descending order.\n. @param eigenvectors output matrix of eigenvectors; it has the same size and type as src; the\n. eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding\n. eigenvalues.\n. @sa eigenNonSymmetric, completeSymm , PCA' - ... - -def eigenNonSymmetric(src: Mat, eigenvalues=..., eigenvectors=...) -> typing.Any: - 'eigenNonSymmetric(src[, eigenvalues[, eigenvectors]]) -> eigenvalues, eigenvectors\n. @brief Calculates eigenvalues and eigenvectors of a non-symmetric matrix (real eigenvalues only).\n. \n. @note Assumes real eigenvalues.\n. \n. The function calculates eigenvalues and eigenvectors (optional) of the square matrix src:\n. @code\n. src*eigenvectors.row(i).t() = eigenvalues.at(i)*eigenvectors.row(i).t()\n. @endcode\n. \n. @param src input matrix (CV_32FC1 or CV_64FC1 type).\n. @param eigenvalues output vector of eigenvalues (type is the same type as src).\n. @param eigenvectors output matrix of eigenvectors (type is the same type as src). The eigenvectors are stored as subsequent matrix rows, in the same order as the corresponding eigenvalues.\n. @sa eigen' - ... - -def ellipse(img: Mat, center, axes, angle, startAngle, endAngle, color, thickness=..., lineType=..., shift=...) -> typing.Any: - 'ellipse(img, center, axes, angle, startAngle, endAngle, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a simple or thick elliptic arc or fills an ellipse sector.\n. \n. The function cv::ellipse with more parameters draws an ellipse outline, a filled ellipse, an elliptic\n. arc, or a filled ellipse sector. The drawing code uses general parametric form.\n. A piecewise-linear curve is used to approximate the elliptic arc\n. boundary. If you need more control of the ellipse rendering, you can retrieve the curve using\n. #ellipse2Poly and then render it with #polylines or fill it with #fillPoly. If you use the first\n. variant of the function and want to draw the whole ellipse, not an arc, pass `startAngle=0` and\n. `endAngle=360`. If `startAngle` is greater than `endAngle`, they are swapped. The figure below explains\n. the meaning of the parameters to draw the blue arc.\n. \n. ![Parameters of Elliptic Arc](pics/ellipse.svg)\n. \n. @param img Image.\n. @param center Center of the ellipse.\n. @param axes Half of the size of the ellipse main axes.\n. @param angle Ellipse rotation angle in degrees.\n. @param startAngle Starting angle of the elliptic arc in degrees.\n. @param endAngle Ending angle of the elliptic arc in degrees.\n. @param color Ellipse color.\n. @param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that\n. a filled ellipse sector is to be drawn.\n. @param lineType Type of the ellipse boundary. See #LineTypes\n. @param shift Number of fractional bits in the coordinates of the center and values of axes.\n\n\n\nellipse(img, box, color[, thickness[, lineType]]) -> img\n. @overload\n. @param img Image.\n. @param box Alternative ellipse representation via RotatedRect. This means that the function draws\n. an ellipse inscribed in the rotated rectangle.\n. @param color Ellipse color.\n. @param thickness Thickness of the ellipse arc outline, if positive. Otherwise, this indicates that\n. a filled ellipse sector is to be drawn.\n. @param lineType Type of the ellipse boundary. See #LineTypes' - ... - -def ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> typing.Any: - 'ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> pts\n. @brief Approximates an elliptic arc with a polyline.\n. \n. The function ellipse2Poly computes the vertices of a polyline that approximates the specified\n. elliptic arc. It is used by #ellipse. If `arcStart` is greater than `arcEnd`, they are swapped.\n. \n. @param center Center of the arc.\n. @param axes Half of the size of the ellipse main axes. See #ellipse for details.\n. @param angle Rotation angle of the ellipse in degrees. See #ellipse for details.\n. @param arcStart Starting angle of the elliptic arc in degrees.\n. @param arcEnd Ending angle of the elliptic arc in degrees.\n. @param delta Angle between the subsequent polyline vertices. It defines the approximation\n. accuracy.\n. @param pts Output vector of polyline vertices.' - ... - -def equalizeHist(src: Mat, dts: Mat = ...) -> typing.Any: - "equalizeHist(src[, dst]) -> dst\n. @brief Equalizes the histogram of a grayscale image.\n. \n. The function equalizes the histogram of the input image using the following algorithm:\n. \n. - Calculate the histogram \\f$H\\f$ for src .\n. - Normalize the histogram so that the sum of histogram bins is 255.\n. - Compute the integral of the histogram:\n. \\f[H'_i = \\sum _{0 \\le j < i} H(j)\\f]\n. - Transform the image using \\f$H'\\f$ as a look-up table: \\f$\\texttt{dst}(x,y) = H'(\\texttt{src}(x,y))\\f$\n. \n. The algorithm normalizes the brightness and increases the contrast of the image.\n. \n. @param src Source 8-bit single channel image.\n. @param dst Destination image of the same size and type as src ." - ... - -def erode(src: Mat, kernel, dts: Mat = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: - "erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Erodes an image by using a specific structuring element.\n. \n. The function erodes the source image using the specified structuring element that determines the\n. shape of a pixel neighborhood over which the minimum is taken:\n. \n. \\f[\\texttt{dst} (x,y) = \\min _{(x',y'): \\, \\texttt{element} (x',y') \\ne0 } \\texttt{src} (x+x',y+y')\\f]\n. \n. The function supports the in-place mode. Erosion can be applied several ( iterations ) times. In\n. case of multi-channel images, each channel is processed independently.\n. \n. @param src input image; the number of channels can be arbitrary, but the depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst output image of the same size and type as src.\n. @param kernel structuring element used for erosion; if `element=Mat()`, a `3 x 3` rectangular\n. structuring element is used. Kernel can be created using #getStructuringElement.\n. @param anchor position of the anchor within the element; default value (-1, -1) means that the\n. anchor is at the element center.\n. @param iterations number of times erosion is applied.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @param borderValue border value in case of a constant border\n. @sa dilate, morphologyEx, getStructuringElement" - ... - -class error(Exception): - code: int - err: str - file: str - func: str - line: int - msg: str - -def estimateAffine2D(from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=...) -> typing.Any: - 'estimateAffine2D(from, to[, inliers[, method[, ransacReprojThreshold[, maxIters[, confidence[, refineIters]]]]]]) -> retval, inliers\n. @brief Computes an optimal affine transformation between two 2D point sets.\n. \n. It computes\n. \\f[\n. \\begin{bmatrix}\n. x\\\\\n. y\\\\\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. a_{11} & a_{12}\\\\\n. a_{21} & a_{22}\\\\\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X\\\\\n. Y\\\\\n. \\end{bmatrix}\n. +\n. \\begin{bmatrix}\n. b_1\\\\\n. b_2\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. @param from First input 2D point set containing \\f$(X,Y)\\f$.\n. @param to Second input 2D point set containing \\f$(x,y)\\f$.\n. @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. @param method Robust method used to compute transformation. The following methods are possible:\n. - cv::RANSAC - RANSAC-based robust method\n. - cv::LMEDS - Least-Median robust method\n. RANSAC is the default method.\n. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider\n. a point as an inlier. Applies only to RANSAC.\n. @param maxIters The maximum number of robust method iterations.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. @param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).\n. Passing 0 will disable refining, so the output matrix will be output of robust method.\n. \n. @return Output 2D affine transformation matrix \\f$2 \\times 3\\f$ or empty matrix if transformation\n. could not be estimated. The returned matrix has the following form:\n. \\f[\n. \\begin{bmatrix}\n. a_{11} & a_{12} & b_1\\\\\n. a_{21} & a_{22} & b_2\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. The function estimates an optimal 2D affine transformation between two 2D point sets using the\n. selected robust algorithm.\n. \n. The computed transformation is then refined further (using only inliers) with the\n. Levenberg-Marquardt method to reduce the re-projection error even more.\n. \n. @note\n. The RANSAC method can handle practically any ratio of outliers but needs a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers.\n. \n. @sa estimateAffinePartial2D, getAffineTransform' - ... - -def estimateAffine3D(src: Mat, dts: Mat, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: - 'estimateAffine3D(src, dst[, out[, inliers[, ransacThreshold[, confidence]]]]) -> retval, out, inliers\n. @brief Computes an optimal affine transformation between two 3D point sets.\n. \n. It computes\n. \\f[\n. \\begin{bmatrix}\n. x\\\\\n. y\\\\\n. z\\\\\n. \\end{bmatrix}\n. =\n. \\begin{bmatrix}\n. a_{11} & a_{12} & a_{13}\\\\\n. a_{21} & a_{22} & a_{23}\\\\\n. a_{31} & a_{32} & a_{33}\\\\\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X\\\\\n. Y\\\\\n. Z\\\\\n. \\end{bmatrix}\n. +\n. \\begin{bmatrix}\n. b_1\\\\\n. b_2\\\\\n. b_3\\\\\n. \\end{bmatrix}\n. \\f]\n. \n. @param src First input 3D point set containing \\f$(X,Y,Z)\\f$.\n. @param dst Second input 3D point set containing \\f$(x,y,z)\\f$.\n. @param out Output 3D affine transformation matrix \\f$3 \\times 4\\f$ of the form\n. \\f[\n. \\begin{bmatrix}\n. a_{11} & a_{12} & a_{13} & b_1\\\\\n. a_{21} & a_{22} & a_{23} & b_2\\\\\n. a_{31} & a_{32} & a_{33} & b_3\\\\\n. \\end{bmatrix}\n. \\f]\n. @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as\n. an inlier.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. \n. The function estimates an optimal 3D affine transformation between two 3D point sets using the\n. RANSAC algorithm.' - ... - -def estimateAffinePartial2D(from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=...) -> typing.Any: - 'estimateAffinePartial2D(from, to[, inliers[, method[, ransacReprojThreshold[, maxIters[, confidence[, refineIters]]]]]]) -> retval, inliers\n. @brief Computes an optimal limited affine transformation with 4 degrees of freedom between\n. two 2D point sets.\n. \n. @param from First input 2D point set.\n. @param to Second input 2D point set.\n. @param inliers Output vector indicating which points are inliers.\n. @param method Robust method used to compute transformation. The following methods are possible:\n. - cv::RANSAC - RANSAC-based robust method\n. - cv::LMEDS - Least-Median robust method\n. RANSAC is the default method.\n. @param ransacReprojThreshold Maximum reprojection error in the RANSAC algorithm to consider\n. a point as an inlier. Applies only to RANSAC.\n. @param maxIters The maximum number of robust method iterations.\n. @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. @param refineIters Maximum number of iterations of refining algorithm (Levenberg-Marquardt).\n. Passing 0 will disable refining, so the output matrix will be output of robust method.\n. \n. @return Output 2D affine transformation (4 degrees of freedom) matrix \\f$2 \\times 3\\f$ or\n. empty matrix if transformation could not be estimated.\n. \n. The function estimates an optimal 2D affine transformation with 4 degrees of freedom limited to\n. combinations of translation, rotation, and uniform scaling. Uses the selected algorithm for robust\n. estimation.\n. \n. The computed transformation is then refined further (using only inliers) with the\n. Levenberg-Marquardt method to reduce the re-projection error even more.\n. \n. Estimated transformation matrix is:\n. \\f[ \\begin{bmatrix} \\cos(\\theta) \\cdot s & -\\sin(\\theta) \\cdot s & t_x \\\\\n. \\sin(\\theta) \\cdot s & \\cos(\\theta) \\cdot s & t_y\n. \\end{bmatrix} \\f]\n. Where \\f$ \\theta \\f$ is the rotation angle, \\f$ s \\f$ the scaling factor and \\f$ t_x, t_y \\f$ are\n. translations in \\f$ x, y \\f$ axes respectively.\n. \n. @note\n. The RANSAC method can handle practically any ratio of outliers but need a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers.\n. \n. @sa estimateAffine2D, getAffineTransform' - ... - -def estimateChessboardSharpness(image: Mat, patternSize, corners, rise_distance=..., vertical=..., sharpness=...) -> typing.Any: - 'estimateChessboardSharpness(image, patternSize, corners[, rise_distance[, vertical[, sharpness]]]) -> retval, sharpness\n. @brief Estimates the sharpness of a detected chessboard.\n. \n. Image sharpness, as well as brightness, are a critical parameter for accuracte\n. camera calibration. For accessing these parameters for filtering out\n. problematic calibraiton images, this method calculates edge profiles by traveling from\n. black to white chessboard cell centers. Based on this, the number of pixels is\n. calculated required to transit from black to white. This width of the\n. transition area is a good indication of how sharp the chessboard is imaged\n. and should be below ~3.0 pixels.\n. \n. @param image Gray image used to find chessboard corners\n. @param patternSize Size of a found chessboard pattern\n. @param corners Corners found by findChessboardCorners(SB)\n. @param rise_distance Rise distance 0.8 means 10% ... 90% of the final signal strength\n. @param vertical By default edge responses for horizontal lines are calculated\n. @param sharpness Optional output array with a sharpness value for calculated edge responses (see description)\n. \n. The optional sharpness array is of type CV_32FC1 and has for each calculated\n. profile one row with the following five entries:\n. * 0 = x coordinate of the underlying edge in the image\n. * 1 = y coordinate of the underlying edge in the image\n. * 2 = width of the transition area (sharpness)\n. * 3 = signal strength in the black cell (min brightness)\n. * 4 = signal strength in the white cell (max brightness)\n. \n. @return Scalar(average sharpness, average min brightness, average max brightness,0)' - ... - -def estimateTranslation3D(src: Mat, dts: Mat, out=..., inliers=..., ransacThreshold=..., confidence=...) -> typing.Any: - 'estimateTranslation3D(src, dst[, out[, inliers[, ransacThreshold[, confidence]]]]) -> retval, out, inliers\n. @brief Computes an optimal translation between two 3D point sets.\n. *\n. * It computes\n. * \\f[\n. * \\begin{bmatrix}\n. * x\\\\\n. * y\\\\\n. * z\\\\\n. * \\end{bmatrix}\n. * =\n. * \\begin{bmatrix}\n. * X\\\\\n. * Y\\\\\n. * Z\\\\\n. * \\end{bmatrix}\n. * +\n. * \\begin{bmatrix}\n. * b_1\\\\\n. * b_2\\\\\n. * b_3\\\\\n. * \\end{bmatrix}\n. * \\f]\n. *\n. * @param src First input 3D point set containing \\f$(X,Y,Z)\\f$.\n. * @param dst Second input 3D point set containing \\f$(x,y,z)\\f$.\n. * @param out Output 3D translation vector \\f$3 \\times 1\\f$ of the form\n. * \\f[\n. * \\begin{bmatrix}\n. * b_1 \\\\\n. * b_2 \\\\\n. * b_3 \\\\\n. * \\end{bmatrix}\n. * \\f]\n. * @param inliers Output vector indicating which points are inliers (1-inlier, 0-outlier).\n. * @param ransacThreshold Maximum reprojection error in the RANSAC algorithm to consider a point as\n. * an inlier.\n. * @param confidence Confidence level, between 0 and 1, for the estimated transformation. Anything\n. * between 0.95 and 0.99 is usually good enough. Values too close to 1 can slow down the estimation\n. * significantly. Values lower than 0.8-0.9 can result in an incorrectly estimated transformation.\n. *\n. * The function estimates an optimal 3D translation between two 3D point sets using the\n. * RANSAC algorithm.\n. *' - ... - -def exp(src: Mat, dts: Mat = ...) -> typing.Any: - 'exp(src[, dst]) -> dst\n. @brief Calculates the exponent of every array element.\n. \n. The function cv::exp calculates the exponent of every element of the input\n. array:\n. \\f[\\texttt{dst} [I] = e^{ src(I) }\\f]\n. \n. The maximum relative error is about 7e-6 for single-precision input and\n. less than 1e-10 for double-precision input. Currently, the function\n. converts denormalized values to zeros on output. Special values (NaN,\n. Inf) are not handled.\n. @param src input array.\n. @param dst output array of the same size and type as src.\n. @sa log , cartToPolar , polarToCart , phase , pow , sqrt , magnitude' - ... - -def extractChannel(src: Mat, coi, dts: Mat = ...) -> typing.Any: - 'extractChannel(src, coi[, dst]) -> dst\n. @brief Extracts a single channel from src (coi is 0-based index)\n. @param src input array\n. @param dst output array\n. @param coi index of channel to extract\n. @sa mixChannels, split' - ... - -def fastAtan2(y, x) -> typing.Any: - 'fastAtan2(y, x) -> retval\n. @brief Calculates the angle of a 2D vector in degrees.\n. \n. The function fastAtan2 calculates the full-range angle of an input 2D vector. The angle is measured\n. in degrees and varies from 0 to 360 degrees. The accuracy is about 0.3 degrees.\n. @param x x-coordinate of the vector.\n. @param y y-coordinate of the vector.' - ... - -def fastNlMeansDenoising(src: Mat, dts: Mat = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: - 'fastNlMeansDenoising(src[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst\n. @brief Perform image denoising using Non-local Means Denoising algorithm\n. with several computational\n. optimizations. Noise expected to be a gaussian white noise\n. \n. @param src Input 8-bit 1-channel, 2-channel, 3-channel or 4-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength. Big h value perfectly removes noise but also\n. removes image details, smaller h value preserves details but also preserves some noise\n. \n. This function expected to be applied to grayscale images. For colored images look at\n. fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored\n. image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting\n. image to CIELAB colorspace and then separately denoise L and AB components with different h\n. parameter.\n\n\n\nfastNlMeansDenoising(src, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst\n. @brief Perform image denoising using Non-local Means Denoising algorithm\n. with several computational\n. optimizations. Noise expected to be a gaussian white noise\n. \n. @param src Input 8-bit or 16-bit (only with NORM_L1) 1-channel,\n. 2-channel, 3-channel or 4-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Array of parameters regulating filter strength, either one\n. parameter applied to all channels or one per channel in dst. Big h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n. @param normType Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1\n. \n. This function expected to be applied to grayscale images. For colored images look at\n. fastNlMeansDenoisingColored. Advanced usage of this functions can be manual denoising of colored\n. image in different colorspaces. Such approach is used in fastNlMeansDenoisingColored by converting\n. image to CIELAB colorspace and then separately denoise L and AB components with different h\n. parameter.' - ... - -def fastNlMeansDenoisingColored(src: Mat, dts: Mat = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: - 'fastNlMeansDenoisingColored(src[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for colored images\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src .\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength for luminance component. Bigger h value perfectly\n. removes noise but also removes image details, smaller h value preserves details but also preserves\n. some noise\n. @param hColor The same as h but for color components. For most images value equals 10\n. will be enough to remove colored noise and do not distort colors\n. \n. The function converts image to CIELAB colorspace and then separately denoise L and AB components\n. with given h parameters using fastNlMeansDenoising function.' - ... - -def fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: Mat = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: - 'fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst\n. @brief Modification of fastNlMeansDenoisingMulti function for colored images sequences\n. \n. @param srcImgs Input 8-bit 3-channel images sequence. All images should have the same type and\n. size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength for luminance component. Bigger h value perfectly\n. removes noise but also removes image details, smaller h value preserves details but also preserves\n. some noise.\n. @param hColor The same as h but for color components.\n. \n. The function converts images to CIELAB colorspace and then separately denoise L and AB components\n. with given h parameters using fastNlMeansDenoisingMulti function.' - ... - -def fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, dts: Mat = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> typing.Any: - 'fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been\n. captured in small period of time. For example video. This version of the function is for grayscale\n. images or for manual manipulation with colorspaces. For more details see\n. \n. \n. @param srcImgs Input 8-bit 1-channel, 2-channel, 3-channel or\n. 4-channel images sequence. All images should have the same type and\n. size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Parameter regulating filter strength. Bigger h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n\n\n\nfastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst\n. @brief Modification of fastNlMeansDenoising function for images sequence where consecutive images have been\n. captured in small period of time. For example video. This version of the function is for grayscale\n. images or for manual manipulation with colorspaces. For more details see\n. \n. \n. @param srcImgs Input 8-bit or 16-bit (only with NORM_L1) 1-channel,\n. 2-channel, 3-channel or 4-channel images sequence. All images should\n. have the same type and size.\n. @param imgToDenoiseIndex Target image to denoise index in srcImgs sequence\n. @param temporalWindowSize Number of surrounding images to use for target image denoising. Should\n. be odd. Images from imgToDenoiseIndex - temporalWindowSize / 2 to\n. imgToDenoiseIndex - temporalWindowSize / 2 from srcImgs will be used to denoise\n. srcImgs[imgToDenoiseIndex] image.\n. @param dst Output image with the same size and type as srcImgs images.\n. @param templateWindowSize Size in pixels of the template patch that is used to compute weights.\n. Should be odd. Recommended value 7 pixels\n. @param searchWindowSize Size in pixels of the window that is used to compute weighted average for\n. given pixel. Should be odd. Affect performance linearly: greater searchWindowsSize - greater\n. denoising time. Recommended value 21 pixels\n. @param h Array of parameters regulating filter strength, either one\n. parameter applied to all channels or one per channel in dst. Big h value\n. perfectly removes noise but also removes image details, smaller h\n. value preserves details but also preserves some noise\n. @param normType Type of norm used for weight calculation. Can be either NORM_L2 or NORM_L1' - ... - -def fillConvexPoly(img: Mat, points, color, lineType=..., shift=...) -> typing.Any: - 'fillConvexPoly(img, points, color[, lineType[, shift]]) -> img\n. @brief Fills a convex polygon.\n. \n. The function cv::fillConvexPoly draws a filled convex polygon. This function is much faster than the\n. function #fillPoly . It can fill not only convex polygons but any monotonic polygon without\n. self-intersections, that is, a polygon whose contour intersects every horizontal line (scan line)\n. twice at the most (though, its top-most and/or the bottom edge could be horizontal).\n. \n. @param img Image.\n. @param points Polygon vertices.\n. @param color Polygon color.\n. @param lineType Type of the polygon boundaries. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.' - ... - -def fillPoly(img: Mat, pts, color, lineType=..., shift=..., offset=...) -> typing.Any: - 'fillPoly(img, pts, color[, lineType[, shift[, offset]]]) -> img\n. @brief Fills the area bounded by one or more polygons.\n. \n. The function cv::fillPoly fills an area bounded by several polygonal contours. The function can fill\n. complex areas, for example, areas with holes, contours with self-intersections (some of their\n. parts), and so forth.\n. \n. @param img Image.\n. @param pts Array of polygons where each polygon is represented as an array of points.\n. @param color Polygon color.\n. @param lineType Type of the polygon boundaries. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.\n. @param offset Optional offset of all points of the contours.' - ... - -def filter2D(src: Mat, ddepth, kernel, dts: Mat = ..., anchor=..., delta=..., borderType=...) -> typing.Any: - 'filter2D(src, ddepth, kernel[, dst[, anchor[, delta[, borderType]]]]) -> dst\n. @brief Convolves an image with the kernel.\n. \n. The function applies an arbitrary linear filter to an image. In-place operation is supported. When\n. the aperture is partially outside the image, the function interpolates outlier pixel values\n. according to the specified border mode.\n. \n. The function does actually compute correlation, not the convolution:\n. \n. \\f[\\texttt{dst} (x,y) = \\sum _{ \\substack{0\\leq x\' < \\texttt{kernel.cols}\\\\{0\\leq y\' < \\texttt{kernel.rows}}}} \\texttt{kernel} (x\',y\')* \\texttt{src} (x+x\'- \\texttt{anchor.x} ,y+y\'- \\texttt{anchor.y} )\\f]\n. \n. That is, the kernel is not mirrored around the anchor point. If you need a real convolution, flip\n. the kernel using #flip and set the new anchor to `(kernel.cols - anchor.x - 1, kernel.rows -\n. anchor.y - 1)`.\n. \n. The function uses the DFT-based algorithm in case of sufficiently large kernels (~`11 x 11` or\n. larger) and the direct algorithm for small kernels.\n. \n. @param src input image.\n. @param dst output image of the same size and the same number of channels as src.\n. @param ddepth desired depth of the destination image, see @ref filter_depths "combinations"\n. @param kernel convolution kernel (or rather a correlation kernel), a single-channel floating point\n. matrix; if you want to apply different kernels to different channels, split the image into\n. separate color planes using split and process them individually.\n. @param anchor anchor of the kernel that indicates the relative position of a filtered point within\n. the kernel; the anchor should lie within the kernel; default value (-1,-1) means that the anchor\n. is at the kernel center.\n. @param delta optional value added to the filtered pixels before storing them in dst.\n. @param borderType pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa sepFilter2D, dft, matchTemplate' - ... - -def filterHomographyDecompByVisibleRefpoints(rotations, normals, beforePoints, afterPoints, possibleSolutions=..., pointsMask=...) -> typing.Any: - 'filterHomographyDecompByVisibleRefpoints(rotations, normals, beforePoints, afterPoints[, possibleSolutions[, pointsMask]]) -> possibleSolutions\n. @brief Filters homography decompositions based on additional information.\n. \n. @param rotations Vector of rotation matrices.\n. @param normals Vector of plane normal matrices.\n. @param beforePoints Vector of (rectified) visible reference points before the homography is applied\n. @param afterPoints Vector of (rectified) visible reference points after the homography is applied\n. @param possibleSolutions Vector of int indices representing the viable solution set after filtering\n. @param pointsMask optional Mat/Vector of 8u type representing the mask for the inliers as given by the findHomography function\n. \n. This function is intended to filter the output of the decomposeHomographyMat based on additional\n. information as described in @cite Malis . The summary of the method: the decomposeHomographyMat function\n. returns 2 unique solutions and their "opposites" for a total of 4 solutions. If we have access to the\n. sets of points visible in the camera frame before and after the homography transformation is applied,\n. we can determine which are the true potential solutions and which are the opposites by verifying which\n. homographies are consistent with all visible reference points being in front of the camera. The inputs\n. are left unchanged; the filtered solution set is returned as indices into the existing one.' - ... - -def filterSpeckles(img: Mat, newVal, maxSpeckleSize, maxDiff, buf=...) -> typing.Any: - 'filterSpeckles(img, newVal, maxSpeckleSize, maxDiff[, buf]) -> img, buf\n. @brief Filters off small noise blobs (speckles) in the disparity map\n. \n. @param img The input 16-bit signed disparity image\n. @param newVal The disparity value used to paint-off the speckles\n. @param maxSpeckleSize The maximum speckle size to consider it a speckle. Larger blobs are not\n. affected by the algorithm\n. @param maxDiff Maximum difference between neighbor disparity pixels to put them into the same\n. blob. Note that since StereoBM, StereoSGBM and may be other algorithms return a fixed-point\n. disparity map, where disparity values are multiplied by 16, this scale factor should be taken into\n. account when specifying this parameter value.\n. @param buf The optional temporary buffer to avoid memory allocation within the function.' - ... - -def find4QuadCornerSubpix(img: Mat, corners, region_size) -> typing.Any: - 'find4QuadCornerSubpix(img, corners, region_size) -> retval, corners\n.' - ... - -def findChessboardCorners(image: Mat, patternSize, corners=..., flags: int = ...) -> typing.Any: - 'findChessboardCorners(image, patternSize[, corners[, flags]]) -> retval, corners\n. @brief Finds the positions of internal corners of the chessboard.\n. \n. @param image Source chessboard view. It must be an 8-bit grayscale or color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ).\n. @param corners Output array of detected corners.\n. @param flags Various operation flags that can be zero or a combination of the following values:\n. - **CALIB_CB_ADAPTIVE_THRESH** Use adaptive thresholding to convert the image to black\n. and white, rather than a fixed threshold level (computed from the average image brightness).\n. - **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before\n. applying fixed or adaptive thresholding.\n. - **CALIB_CB_FILTER_QUADS** Use additional criteria (like contour area, perimeter,\n. square-like shape) to filter out false quads extracted at the contour retrieval stage.\n. - **CALIB_CB_FAST_CHECK** Run a fast check on the image that looks for chessboard corners,\n. and shortcut the call if none is found. This can drastically speed up the call in the\n. degenerate condition when no chessboard is observed.\n. \n. The function attempts to determine whether the input image is a view of the chessboard pattern and\n. locate the internal chessboard corners. The function returns a non-zero value if all of the corners\n. are found and they are placed in a certain order (row by row, left to right in every row).\n. Otherwise, if the function fails to find all the corners or reorder them, it returns 0. For example,\n. a regular chessboard has 8 x 8 squares and 7 x 7 internal corners, that is, points where the black\n. squares touch each other. The detected coordinates are approximate, and to determine their positions\n. more accurately, the function calls cornerSubPix. You also may use the function cornerSubPix with\n. different parameters if returned coordinates are not accurate enough.\n. \n. Sample usage of detecting and drawing chessboard corners: :\n. @code\n. Size patternsize(8,6); //interior number of corners\n. Mat gray = ....; //source image\n. vector corners; //this will be filled by the detected corners\n. \n. //CALIB_CB_FAST_CHECK saves a lot of time on images\n. //that do not contain any chessboard corners\n. bool patternfound = findChessboardCorners(gray, patternsize, corners,\n. CALIB_CB_ADAPTIVE_THRESH + CALIB_CB_NORMALIZE_IMAGE\n. + CALIB_CB_FAST_CHECK);\n. \n. if(patternfound)\n. cornerSubPix(gray, corners, Size(11, 11), Size(-1, -1),\n. TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1));\n. \n. drawChessboardCorners(img, patternsize, Mat(corners), patternfound);\n. @endcode\n. @note The function requires white space (like a square-thick border, the wider the better) around\n. the board to make the detection more robust in various environments. Otherwise, if there is no\n. border and the background is dark, the outer black squares cannot be segmented properly and so the\n. square grouping and ordering algorithm fails.' - ... - -def findChessboardCornersSB(image: Mat, patternSize, corners=..., flags: int = ...) -> typing.Any: - 'findChessboardCornersSB(image, patternSize[, corners[, flags]]) -> retval, corners\n. @overload' - ... - -def findChessboardCornersSBWithMeta(image: Mat, patternSize, flags: int, corners=..., meta=...) -> typing.Any: - 'findChessboardCornersSBWithMeta(image, patternSize, flags[, corners[, meta]]) -> retval, corners, meta\n. @brief Finds the positions of internal corners of the chessboard using a sector based approach.\n. \n. @param image Source chessboard view. It must be an 8-bit grayscale or color image.\n. @param patternSize Number of inner corners per a chessboard row and column\n. ( patternSize = cv::Size(points_per_row,points_per_colum) = cv::Size(columns,rows) ).\n. @param corners Output array of detected corners.\n. @param flags Various operation flags that can be zero or a combination of the following values:\n. - **CALIB_CB_NORMALIZE_IMAGE** Normalize the image gamma with equalizeHist before detection.\n. - **CALIB_CB_EXHAUSTIVE** Run an exhaustive search to improve detection rate.\n. - **CALIB_CB_ACCURACY** Up sample input image to improve sub-pixel accuracy due to aliasing effects.\n. - **CALIB_CB_LARGER** The detected pattern is allowed to be larger than patternSize (see description).\n. - **CALIB_CB_MARKER** The detected pattern must have a marker (see description).\n. This should be used if an accurate camera calibration is required.\n. @param meta Optional output arrray of detected corners (CV_8UC1 and size = cv::Size(columns,rows)).\n. Each entry stands for one corner of the pattern and can have one of the following values:\n. - 0 = no meta data attached\n. - 1 = left-top corner of a black cell\n. - 2 = left-top corner of a white cell\n. - 3 = left-top corner of a black cell with a white marker dot\n. - 4 = left-top corner of a white cell with a black marker dot (pattern origin in case of markers otherwise first corner)\n. \n. The function is analog to findchessboardCorners but uses a localized radon\n. transformation approximated by box filters being more robust to all sort of\n. noise, faster on larger images and is able to directly return the sub-pixel\n. position of the internal chessboard corners. The Method is based on the paper\n. @cite duda2018 "Accurate Detection and Localization of Checkerboard Corners for\n. Calibration" demonstrating that the returned sub-pixel positions are more\n. accurate than the one returned by cornerSubPix allowing a precise camera\n. calibration for demanding applications.\n. \n. In the case, the flags **CALIB_CB_LARGER** or **CALIB_CB_MARKER** are given,\n. the result can be recovered from the optional meta array. Both flags are\n. helpful to use calibration patterns exceeding the field of view of the camera.\n. These oversized patterns allow more accurate calibrations as corners can be\n. utilized, which are as close as possible to the image borders. For a\n. consistent coordinate system across all images, the optional marker (see image\n. below) can be used to move the origin of the board to the location where the\n. black circle is located.\n. \n. @note The function requires a white boarder with roughly the same width as one\n. of the checkerboard fields around the whole board to improve the detection in\n. various environments. In addition, because of the localized radon\n. transformation it is beneficial to use round corners for the field corners\n. which are located on the outside of the board. The following figure illustrates\n. a sample checkerboard optimized for the detection. However, any other checkerboard\n. can be used as well.\n. ![Checkerboard](pics/checkerboard_radon.png)' - ... - -def findCirclesGrid(image: Mat, patternSize, flags: int, blobDetector, parameters, centers=...) -> typing.Any: - 'findCirclesGrid(image, patternSize, flags, blobDetector, parameters[, centers]) -> retval, centers\n. @brief Finds centers in the grid of circles.\n. \n. @param image grid view of input circles; it must be an 8-bit grayscale or color image.\n. @param patternSize number of circles per row and column\n. ( patternSize = Size(points_per_row, points_per_colum) ).\n. @param centers output array of detected centers.\n. @param flags various operation flags that can be one of the following values:\n. - **CALIB_CB_SYMMETRIC_GRID** uses symmetric pattern of circles.\n. - **CALIB_CB_ASYMMETRIC_GRID** uses asymmetric pattern of circles.\n. - **CALIB_CB_CLUSTERING** uses a special algorithm for grid detection. It is more robust to\n. perspective distortions but much more sensitive to background clutter.\n. @param blobDetector feature detector that finds blobs like dark circles on light background.\n. @param parameters struct for finding circles in a grid pattern.\n. \n. The function attempts to determine whether the input image contains a grid of circles. If it is, the\n. function locates centers of the circles. The function returns a non-zero value if all of the centers\n. have been found and they have been placed in a certain order (row by row, left to right in every\n. row). Otherwise, if the function fails to find all the corners or reorder them, it returns 0.\n. \n. Sample usage of detecting and drawing the centers of circles: :\n. @code\n. Size patternsize(7,7); //number of centers\n. Mat gray = ....; //source image\n. vector centers; //this will be filled by the detected centers\n. \n. bool patternfound = findCirclesGrid(gray, patternsize, centers);\n. \n. drawChessboardCorners(img, patternsize, Mat(centers), patternfound);\n. @endcode\n. @note The function requires white space (like a square-thick border, the wider the better) around\n. the board to make the detection more robust in various environments.\n\n\n\nfindCirclesGrid(image, patternSize[, centers[, flags[, blobDetector]]]) -> retval, centers\n. @overload' - ... - -def findContours(image: Mat, mode, method: int, contours=..., hierarchy=..., offset=...) -> typing.Any: - "findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours, hierarchy\n. @brief Finds contours in a binary image.\n. \n. The function retrieves contours from the binary image using the algorithm @cite Suzuki85 . The contours\n. are a useful tool for shape analysis and object detection and recognition. See squares.cpp in the\n. OpenCV sample directory.\n. @note Since opencv 3.2 source image is not modified by this function.\n. \n. @param image Source, an 8-bit single-channel image. Non-zero pixels are treated as 1's. Zero\n. pixels remain 0's, so the image is treated as binary . You can use #compare, #inRange, #threshold ,\n. #adaptiveThreshold, #Canny, and others to create a binary image out of a grayscale or color one.\n. If mode equals to #RETR_CCOMP or #RETR_FLOODFILL, the input can also be a 32-bit integer image of labels (CV_32SC1).\n. @param contours Detected contours. Each contour is stored as a vector of points (e.g.\n. std::vector >).\n. @param hierarchy Optional output vector (e.g. std::vector), containing information about the image topology. It has\n. as many elements as the number of contours. For each i-th contour contours[i], the elements\n. hierarchy[i][0] , hierarchy[i][1] , hierarchy[i][2] , and hierarchy[i][3] are set to 0-based indices\n. in contours of the next and previous contours at the same hierarchical level, the first child\n. contour and the parent contour, respectively. If for the contour i there are no next, previous,\n. parent, or nested contours, the corresponding elements of hierarchy[i] will be negative.\n. @param mode Contour retrieval mode, see #RetrievalModes\n. @param method Contour approximation method, see #ContourApproximationModes\n. @param offset Optional offset by which every contour point is shifted. This is useful if the\n. contours are extracted from the image ROI and then they should be analyzed in the whole image\n. context." - ... - -def findEssentialMat(points1, points2, cameraMatrix, method: int = ..., prob=..., threshold=..., mask: Mat = ...) -> typing.Any: - 'findEssentialMat(points1, points2, cameraMatrix[, method[, prob[, threshold[, mask]]]]) -> retval, mask\n. @brief Calculates an essential matrix from the corresponding points in two images.\n. \n. @param points1 Array of N (N \\>= 5) 2D points from the first image. The point coordinates should\n. be floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param cameraMatrix Camera matrix \\f$K = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix. If this assumption does not hold for your use case, use\n. `undistortPoints()` with `P = cv::NoArray()` for both cameras to transform image points\n. to normalized image coordinates, which are valid for the identity camera matrix. When\n. passing these coordinates, pass the identity matrix for this parameter.\n. @param method Method for computing an essential matrix.\n. - **RANSAC** for the RANSAC algorithm.\n. - **LMEDS** for the LMedS algorithm.\n. @param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of\n. confidence (probability) that the estimated matrix is correct.\n. @param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1\n. for the other points. The array is computed only in the RANSAC and LMedS methods.\n. \n. This function estimates essential matrix based on the five-point algorithm solver in @cite Nister03 .\n. @cite SteweniusCFS is also a related. The epipolar geometry is described by the following equation:\n. \n. \\f[[p_2; 1]^T K^{-T} E K^{-1} [p_1; 1] = 0\\f]\n. \n. where \\f$E\\f$ is an essential matrix, \\f$p_1\\f$ and \\f$p_2\\f$ are corresponding points in the first and the\n. second images, respectively. The result of this function may be passed further to\n. decomposeEssentialMat or recoverPose to recover the relative pose between cameras.\n\n\n\nfindEssentialMat(points1, points2[, focal[, pp[, method[, prob[, threshold[, mask]]]]]]) -> retval, mask\n. @overload\n. @param points1 Array of N (N \\>= 5) 2D points from the first image. The point coordinates should\n. be floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param focal focal length of the camera. Note that this function assumes that points1 and points2\n. are feature points from cameras with same focal length and principal point.\n. @param pp principal point of the camera.\n. @param method Method for computing a fundamental matrix.\n. - **RANSAC** for the RANSAC algorithm.\n. - **LMEDS** for the LMedS algorithm.\n. @param threshold Parameter used for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param prob Parameter used for the RANSAC or LMedS methods only. It specifies a desirable level of\n. confidence (probability) that the estimated matrix is correct.\n. @param mask Output array of N elements, every element of which is set to 0 for outliers and to 1\n. for the other points. The array is computed only in the RANSAC and LMedS methods.\n. \n. This function differs from the one above that it computes camera matrix from focal length and\n. principal point:\n. \n. \\f[K =\n. \\begin{bmatrix}\n. f & 0 & x_{pp} \\\\\n. 0 & f & y_{pp} \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\\f]' - ... - -def findFundamentalMat(points1, points2, method: int, ransacReprojThreshold, confidence, maxIters, mask: Mat = ...) -> typing.Any: - 'findFundamentalMat(points1, points2, method, ransacReprojThreshold, confidence, maxIters[, mask]) -> retval, mask\n. @brief Calculates a fundamental matrix from the corresponding points in two images.\n. \n. @param points1 Array of N points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param method Method for computing a fundamental matrix.\n. - **CV_FM_7POINT** for a 7-point algorithm. \\f$N = 7\\f$\n. - **CV_FM_8POINT** for an 8-point algorithm. \\f$N \\ge 8\\f$\n. - **CV_FM_RANSAC** for the RANSAC algorithm. \\f$N \\ge 8\\f$\n. - **CV_FM_LMEDS** for the LMedS algorithm. \\f$N \\ge 8\\f$\n. @param ransacReprojThreshold Parameter used only for RANSAC. It is the maximum distance from a point to an epipolar\n. line in pixels, beyond which the point is considered an outlier and is not used for computing the\n. final fundamental matrix. It can be set to something like 1-3, depending on the accuracy of the\n. point localization, image resolution, and the image noise.\n. @param confidence Parameter used for the RANSAC and LMedS methods only. It specifies a desirable level\n. of confidence (probability) that the estimated matrix is correct.\n. @param mask\n. @param maxIters The maximum number of robust method iterations.\n. \n. The epipolar geometry is described by the following equation:\n. \n. \\f[[p_2; 1]^T F [p_1; 1] = 0\\f]\n. \n. where \\f$F\\f$ is a fundamental matrix, \\f$p_1\\f$ and \\f$p_2\\f$ are corresponding points in the first and the\n. second images, respectively.\n. \n. The function calculates the fundamental matrix using one of four methods listed above and returns\n. the found fundamental matrix. Normally just one matrix is found. But in case of the 7-point\n. algorithm, the function may return up to 3 solutions ( \\f$9 \\times 3\\f$ matrix that stores all 3\n. matrices sequentially).\n. \n. The calculated fundamental matrix may be passed further to computeCorrespondEpilines that finds the\n. epipolar lines corresponding to the specified points. It can also be passed to\n. stereoRectifyUncalibrated to compute the rectification transformation. :\n. @code\n. // Example. Estimation of fundamental matrix using the RANSAC algorithm\n. int point_count = 100;\n. vector points1(point_count);\n. vector points2(point_count);\n. \n. // initialize the points here ...\n. for( int i = 0; i < point_count; i++ )\n. {\n. points1[i] = ...;\n. points2[i] = ...;\n. }\n. \n. Mat fundamental_matrix =\n. findFundamentalMat(points1, points2, FM_RANSAC, 3, 0.99);\n. @endcode\n\n\n\nfindFundamentalMat(points1, points2[, method[, ransacReprojThreshold[, confidence[, mask]]]]) -> retval, mask\n. @overload' - ... - -def findHomography(srcPoints, dstPoints, method: int = ..., ransacReprojThreshold=..., mask: Mat = ..., maxIters=..., confidence=...) -> typing.Any: - "findHomography(srcPoints, dstPoints[, method[, ransacReprojThreshold[, mask[, maxIters[, confidence]]]]]) -> retval, mask\n. @brief Finds a perspective transformation between two planes.\n. \n. @param srcPoints Coordinates of the points in the original plane, a matrix of the type CV_32FC2\n. or vector\\ .\n. @param dstPoints Coordinates of the points in the target plane, a matrix of the type CV_32FC2 or\n. a vector\\ .\n. @param method Method used to compute a homography matrix. The following methods are possible:\n. - **0** - a regular method using all the points, i.e., the least squares method\n. - **RANSAC** - RANSAC-based robust method\n. - **LMEDS** - Least-Median robust method\n. - **RHO** - PROSAC-based robust method\n. @param ransacReprojThreshold Maximum allowed reprojection error to treat a point pair as an inlier\n. (used in the RANSAC and RHO methods only). That is, if\n. \\f[\\| \\texttt{dstPoints} _i - \\texttt{convertPointsHomogeneous} ( \\texttt{H} * \\texttt{srcPoints} _i) \\|_2 > \\texttt{ransacReprojThreshold}\\f]\n. then the point \\f$i\\f$ is considered as an outlier. If srcPoints and dstPoints are measured in pixels,\n. it usually makes sense to set this parameter somewhere in the range of 1 to 10.\n. @param mask Optional output mask set by a robust method ( RANSAC or LMEDS ). Note that the input\n. mask values are ignored.\n. @param maxIters The maximum number of RANSAC iterations.\n. @param confidence Confidence level, between 0 and 1.\n. \n. The function finds and returns the perspective transformation \\f$H\\f$ between the source and the\n. destination planes:\n. \n. \\f[s_i \\vecthree{x'_i}{y'_i}{1} \\sim H \\vecthree{x_i}{y_i}{1}\\f]\n. \n. so that the back-projection error\n. \n. \\f[\\sum _i \\left ( x'_i- \\frac{h_{11} x_i + h_{12} y_i + h_{13}}{h_{31} x_i + h_{32} y_i + h_{33}} \\right )^2+ \\left ( y'_i- \\frac{h_{21} x_i + h_{22} y_i + h_{23}}{h_{31} x_i + h_{32} y_i + h_{33}} \\right )^2\\f]\n. \n. is minimized. If the parameter method is set to the default value 0, the function uses all the point\n. pairs to compute an initial homography estimate with a simple least-squares scheme.\n. \n. However, if not all of the point pairs ( \\f$srcPoints_i\\f$, \\f$dstPoints_i\\f$ ) fit the rigid perspective\n. transformation (that is, there are some outliers), this initial estimate will be poor. In this case,\n. you can use one of the three robust methods. The methods RANSAC, LMeDS and RHO try many different\n. random subsets of the corresponding point pairs (of four pairs each, collinear pairs are discarded), estimate the homography matrix\n. using this subset and a simple least-squares algorithm, and then compute the quality/goodness of the\n. computed homography (which is the number of inliers for RANSAC or the least median re-projection error for\n. LMeDS). The best subset is then used to produce the initial estimate of the homography matrix and\n. the mask of inliers/outliers.\n. \n. Regardless of the method, robust or not, the computed homography matrix is refined further (using\n. inliers only in case of a robust method) with the Levenberg-Marquardt method to reduce the\n. re-projection error even more.\n. \n. The methods RANSAC and RHO can handle practically any ratio of outliers but need a threshold to\n. distinguish inliers from outliers. The method LMeDS does not need any threshold but it works\n. correctly only when there are more than 50% of inliers. Finally, if there are no outliers and the\n. noise is rather small, use the default method (method=0).\n. \n. The function is used to find initial intrinsic and extrinsic matrices. Homography matrix is\n. determined up to a scale. Thus, it is normalized so that \\f$h_{33}=1\\f$. Note that whenever an \\f$H\\f$ matrix\n. cannot be estimated, an empty one will be returned.\n. \n. @sa\n. getAffineTransform, estimateAffine2D, estimateAffinePartial2D, getPerspectiveTransform, warpPerspective,\n. perspectiveTransform" - ... - -def findNonZero(src: Mat, idx=...) -> typing.Any: - 'findNonZero(src[, idx]) -> idx\n. @brief Returns the list of locations of non-zero pixels\n. \n. Given a binary matrix (likely returned from an operation such\n. as threshold(), compare(), >, ==, etc, return all of\n. the non-zero indices as a cv::Mat or std::vector (x,y)\n. For example:\n. @code{.cpp}\n. cv::Mat binaryImage; // input, binary image\n. cv::Mat locations; // output, locations of non-zero pixels\n. cv::findNonZero(binaryImage, locations);\n. \n. // access pixel coordinates\n. Point pnt = locations.at(i);\n. @endcode\n. or\n. @code{.cpp}\n. cv::Mat binaryImage; // input, binary image\n. vector locations; // output, locations of non-zero pixels\n. cv::findNonZero(binaryImage, locations);\n. \n. // access pixel coordinates\n. Point pnt = locations[i];\n. @endcode\n. @param src single-channel array\n. @param idx the output array, type of cv::Mat or std::vector, corresponding to non-zero indices in the input' - ... - -def findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize) -> typing.Any: - "findTransformECC(templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize) -> retval, warpMatrix\n. @brief Finds the geometric transform (warp) between two images in terms of the ECC criterion @cite EP08 .\n. \n. @param templateImage single-channel template image; CV_8U or CV_32F array.\n. @param inputImage single-channel input image which should be warped with the final warpMatrix in\n. order to provide an image similar to templateImage, same type as templateImage.\n. @param warpMatrix floating-point \\f$2\\times 3\\f$ or \\f$3\\times 3\\f$ mapping matrix (warp).\n. @param motionType parameter, specifying the type of motion:\n. - **MOTION_TRANSLATION** sets a translational motion model; warpMatrix is \\f$2\\times 3\\f$ with\n. the first \\f$2\\times 2\\f$ part being the unity matrix and the rest two parameters being\n. estimated.\n. - **MOTION_EUCLIDEAN** sets a Euclidean (rigid) transformation as motion model; three\n. parameters are estimated; warpMatrix is \\f$2\\times 3\\f$.\n. - **MOTION_AFFINE** sets an affine motion model (DEFAULT); six parameters are estimated;\n. warpMatrix is \\f$2\\times 3\\f$.\n. - **MOTION_HOMOGRAPHY** sets a homography as a motion model; eight parameters are\n. estimated;\\`warpMatrix\\` is \\f$3\\times 3\\f$.\n. @param criteria parameter, specifying the termination criteria of the ECC algorithm;\n. criteria.epsilon defines the threshold of the increment in the correlation coefficient between two\n. iterations (a negative criteria.epsilon makes criteria.maxcount the only termination criterion).\n. Default values are shown in the declaration above.\n. @param inputMask An optional mask to indicate valid values of inputImage.\n. @param gaussFiltSize An optional value indicating size of gaussian blur filter; (DEFAULT: 5)\n. \n. The function estimates the optimum transformation (warpMatrix) with respect to ECC criterion\n. (@cite EP08), that is\n. \n. \\f[\\texttt{warpMatrix} = \\arg\\max_{W} \\texttt{ECC}(\\texttt{templateImage}(x,y),\\texttt{inputImage}(x',y'))\\f]\n. \n. where\n. \n. \\f[\\begin{bmatrix} x' \\\\ y' \\end{bmatrix} = W \\cdot \\begin{bmatrix} x \\\\ y \\\\ 1 \\end{bmatrix}\\f]\n. \n. (the equation holds with homogeneous coordinates for homography). It returns the final enhanced\n. correlation coefficient, that is the correlation coefficient between the template image and the\n. final warped input image. When a \\f$3\\times 3\\f$ matrix is given with motionType =0, 1 or 2, the third\n. row is ignored.\n. \n. Unlike findHomography and estimateRigidTransform, the function findTransformECC implements an\n. area-based alignment that builds on intensity similarities. In essence, the function updates the\n. initial transformation that roughly aligns the images. If this information is missing, the identity\n. warp (unity matrix) is used as an initialization. Note that if images undergo strong\n. displacements/rotations, an initial transformation that roughly aligns the images is necessary\n. (e.g., a simple euclidean/similarity transform that allows for the images showing the same image\n. content approximately). Use inverse warping in the second image to take an image close to the first\n. one, i.e. use the flag WARP_INVERSE_MAP with warpAffine or warpPerspective. See also the OpenCV\n. sample image_alignment.cpp that demonstrates the use of the function. Note that the function throws\n. an exception if algorithm does not converges.\n. \n. @sa\n. computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography" - ... - -def fitEllipse(points) -> typing.Any: - 'fitEllipse(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits (in a least-squares sense) a set of 2D points best of\n. all. It returns the rotated rectangle in which the ellipse is inscribed. The first algorithm described by @cite Fitzgibbon95\n. is used. Developer should keep in mind that it is possible that the returned\n. ellipse/rotatedRect data contains negative indices, due to the data points being close to the\n. border of the containing Mat element.\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' - ... - -def fitEllipseAMS(points) -> typing.Any: - 'fitEllipseAMS(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits a set of 2D points.\n. It returns the rotated rectangle in which the ellipse is inscribed.\n. The Approximate Mean Square (AMS) proposed by @cite Taubin1991 is used.\n. \n. For an ellipse, this basis set is \\f$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) \\f$,\n. which is a set of six free coefficients \\f$ A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} \\f$.\n. However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \\f$ (a,b) \\f$,\n. the position \\f$ (x_0,y_0) \\f$, and the orientation \\f$ \\theta \\f$. This is because the basis set includes lines,\n. quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits.\n. If the fit is found to be a parabolic or hyperbolic function then the standard #fitEllipse method is used.\n. The AMS method restricts the fit to parabolic, hyperbolic and elliptical curves\n. by imposing the condition that \\f$ A^T ( D_x^T D_x + D_y^T D_y) A = 1 \\f$ where\n. the matrices \\f$ Dx \\f$ and \\f$ Dy \\f$ are the partial derivatives of the design matrix \\f$ D \\f$ with\n. respect to x and y. The matrices are formed row by row applying the following to\n. each of the points in the set:\n. \\f{align*}{\n. D(i,:)&=\\left\\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\\right\\} &\n. D_x(i,:)&=\\left\\{2 x_i,y_i,0,1,0,0\\right\\} &\n. D_y(i,:)&=\\left\\{0,x_i,2 y_i,0,1,0\\right\\}\n. \\f}\n. The AMS method minimizes the cost function\n. \\f{equation*}{\n. \\epsilon ^2=\\frac{ A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T }\n. \\f}\n. \n. The minimum cost is found by solving the generalized eigenvalue problem.\n. \n. \\f{equation*}{\n. D^T D A = \\lambda \\left( D_x^T D_x + D_y^T D_y\\right) A\n. \\f}\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' - ... - -def fitEllipseDirect(points) -> typing.Any: - 'fitEllipseDirect(points) -> retval\n. @brief Fits an ellipse around a set of 2D points.\n. \n. The function calculates the ellipse that fits a set of 2D points.\n. It returns the rotated rectangle in which the ellipse is inscribed.\n. The Direct least square (Direct) method by @cite Fitzgibbon1999 is used.\n. \n. For an ellipse, this basis set is \\f$ \\chi= \\left(x^2, x y, y^2, x, y, 1\\right) \\f$,\n. which is a set of six free coefficients \\f$ A^T=\\left\\{A_{\\text{xx}},A_{\\text{xy}},A_{\\text{yy}},A_x,A_y,A_0\\right\\} \\f$.\n. However, to specify an ellipse, all that is needed is five numbers; the major and minor axes lengths \\f$ (a,b) \\f$,\n. the position \\f$ (x_0,y_0) \\f$, and the orientation \\f$ \\theta \\f$. This is because the basis set includes lines,\n. quadratics, parabolic and hyperbolic functions as well as elliptical functions as possible fits.\n. The Direct method confines the fit to ellipses by ensuring that \\f$ 4 A_{xx} A_{yy}- A_{xy}^2 > 0 \\f$.\n. The condition imposed is that \\f$ 4 A_{xx} A_{yy}- A_{xy}^2=1 \\f$ which satisfies the inequality\n. and as the coefficients can be arbitrarily scaled is not overly restrictive.\n. \n. \\f{equation*}{\n. \\epsilon ^2= A^T D^T D A \\quad \\text{with} \\quad A^T C A =1 \\quad \\text{and} \\quad C=\\left(\\begin{matrix}\n. 0 & 0 & 2 & 0 & 0 & 0 \\\\\n. 0 & -1 & 0 & 0 & 0 & 0 \\\\\n. 2 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0 \\\\\n. 0 & 0 & 0 & 0 & 0 & 0\n. \\end{matrix} \\right)\n. \\f}\n. \n. The minimum cost is found by solving the generalized eigenvalue problem.\n. \n. \\f{equation*}{\n. D^T D A = \\lambda \\left( C\\right) A\n. \\f}\n. \n. The system produces only one positive eigenvalue \\f$ \\lambda\\f$ which is chosen as the solution\n. with its eigenvector \\f$\\mathbf{u}\\f$. These are used to find the coefficients\n. \n. \\f{equation*}{\n. A = \\sqrt{\\frac{1}{\\mathbf{u}^T C \\mathbf{u}}} \\mathbf{u}\n. \\f}\n. The scaling factor guarantees that \\f$A^T C A =1\\f$.\n. \n. @param points Input 2D point set, stored in std::vector\\<\\> or Mat' - ... - -def fitLine(points, distType, param, reps, aeps, line=...) -> typing.Any: - 'fitLine(points, distType, param, reps, aeps[, line]) -> line\n. @brief Fits a line to a 2D or 3D point set.\n. \n. The function fitLine fits a line to a 2D or 3D point set by minimizing \\f$\\sum_i \\rho(r_i)\\f$ where\n. \\f$r_i\\f$ is a distance between the \\f$i^{th}\\f$ point, the line and \\f$\\rho(r)\\f$ is a distance function, one\n. of the following:\n. - DIST_L2\n. \\f[\\rho (r) = r^2/2 \\quad \\text{(the simplest and the fastest least-squares method)}\\f]\n. - DIST_L1\n. \\f[\\rho (r) = r\\f]\n. - DIST_L12\n. \\f[\\rho (r) = 2 \\cdot ( \\sqrt{1 + \\frac{r^2}{2}} - 1)\\f]\n. - DIST_FAIR\n. \\f[\\rho \\left (r \\right ) = C^2 \\cdot \\left ( \\frac{r}{C} - \\log{\\left(1 + \\frac{r}{C}\\right)} \\right ) \\quad \\text{where} \\quad C=1.3998\\f]\n. - DIST_WELSCH\n. \\f[\\rho \\left (r \\right ) = \\frac{C^2}{2} \\cdot \\left ( 1 - \\exp{\\left(-\\left(\\frac{r}{C}\\right)^2\\right)} \\right ) \\quad \\text{where} \\quad C=2.9846\\f]\n. - DIST_HUBER\n. \\f[\\rho (r) = \\fork{r^2/2}{if \\(r < C\\)}{C \\cdot (r-C/2)}{otherwise} \\quad \\text{where} \\quad C=1.345\\f]\n. \n. The algorithm is based on the M-estimator ( ) technique\n. that iteratively fits the line using the weighted least-squares algorithm. After each iteration the\n. weights \\f$w_i\\f$ are adjusted to be inversely proportional to \\f$\\rho(r_i)\\f$ .\n. \n. @param points Input vector of 2D or 3D points, stored in std::vector\\<\\> or Mat.\n. @param line Output line parameters. In case of 2D fitting, it should be a vector of 4 elements\n. (like Vec4f) - (vx, vy, x0, y0), where (vx, vy) is a normalized vector collinear to the line and\n. (x0, y0) is a point on the line. In case of 3D fitting, it should be a vector of 6 elements (like\n. Vec6f) - (vx, vy, vz, x0, y0, z0), where (vx, vy, vz) is a normalized vector collinear to the line\n. and (x0, y0, z0) is a point on the line.\n. @param distType Distance used by the M-estimator, see #DistanceTypes\n. @param param Numerical parameter ( C ) for some types of distances. If it is 0, an optimal value\n. is chosen.\n. @param reps Sufficient accuracy for the radius (distance between the coordinate origin and the line).\n. @param aeps Sufficient accuracy for the angle. 0.01 would be a good default value for reps and aeps.' - ... - -flann_Index = _mod_cv2.flann_Index -def flip(src: Mat, flipCode, dts: Mat = ...) -> typing.Any: - 'flip(src, flipCode[, dst]) -> dst\n. @brief Flips a 2D array around vertical, horizontal, or both axes.\n. \n. The function cv::flip flips the array in one of three different ways (row\n. and column indices are 0-based):\n. \\f[\\texttt{dst} _{ij} =\n. \\left\\{\n. \\begin{array}{l l}\n. \\texttt{src} _{\\texttt{src.rows}-i-1,j} & if\\; \\texttt{flipCode} = 0 \\\\\n. \\texttt{src} _{i, \\texttt{src.cols} -j-1} & if\\; \\texttt{flipCode} > 0 \\\\\n. \\texttt{src} _{ \\texttt{src.rows} -i-1, \\texttt{src.cols} -j-1} & if\\; \\texttt{flipCode} < 0 \\\\\n. \\end{array}\n. \\right.\\f]\n. The example scenarios of using the function are the following:\n. * Vertical flipping of the image (flipCode == 0) to switch between\n. top-left and bottom-left image origin. This is a typical operation\n. in video processing on Microsoft Windows\\* OS.\n. * Horizontal flipping of the image with the subsequent horizontal\n. shift and absolute difference calculation to check for a\n. vertical-axis symmetry (flipCode \\> 0).\n. * Simultaneous horizontal and vertical flipping of the image with\n. the subsequent shift and absolute difference calculation to check\n. for a central symmetry (flipCode \\< 0).\n. * Reversing the order of point arrays (flipCode \\> 0 or\n. flipCode == 0).\n. @param src input array.\n. @param dst output array of the same size and type as src.\n. @param flipCode a flag to specify how to flip the array; 0 means\n. flipping around the x-axis and positive value (for example, 1) means\n. flipping around y-axis. Negative value (for example, -1) means flipping\n. around both axes.\n. @sa transpose , repeat , completeSymm' - ... - -def floodFill(image: Mat, mask: typing.Optional[Mat], seedPoint, newVal, loDiff=..., upDiff=..., flags: int = ...) -> typing.Any: - "floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]]) -> retval, image, mask, rect\n. @brief Fills a connected component with the given color.\n. \n. The function cv::floodFill fills a connected component starting from the seed point with the specified\n. color. The connectivity is determined by the color/brightness closeness of the neighbor pixels. The\n. pixel at \\f$(x,y)\\f$ is considered to belong to the repainted domain if:\n. \n. - in case of a grayscale image and floating range\n. \\f[\\texttt{src} (x',y')- \\texttt{loDiff} \\leq \\texttt{src} (x,y) \\leq \\texttt{src} (x',y')+ \\texttt{upDiff}\\f]\n. \n. \n. - in case of a grayscale image and fixed range\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)- \\texttt{loDiff} \\leq \\texttt{src} (x,y) \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)+ \\texttt{upDiff}\\f]\n. \n. \n. - in case of a color image and floating range\n. \\f[\\texttt{src} (x',y')_r- \\texttt{loDiff} _r \\leq \\texttt{src} (x,y)_r \\leq \\texttt{src} (x',y')_r+ \\texttt{upDiff} _r,\\f]\n. \\f[\\texttt{src} (x',y')_g- \\texttt{loDiff} _g \\leq \\texttt{src} (x,y)_g \\leq \\texttt{src} (x',y')_g+ \\texttt{upDiff} _g\\f]\n. and\n. \\f[\\texttt{src} (x',y')_b- \\texttt{loDiff} _b \\leq \\texttt{src} (x,y)_b \\leq \\texttt{src} (x',y')_b+ \\texttt{upDiff} _b\\f]\n. \n. \n. - in case of a color image and fixed range\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_r- \\texttt{loDiff} _r \\leq \\texttt{src} (x,y)_r \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_r+ \\texttt{upDiff} _r,\\f]\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_g- \\texttt{loDiff} _g \\leq \\texttt{src} (x,y)_g \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_g+ \\texttt{upDiff} _g\\f]\n. and\n. \\f[\\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_b- \\texttt{loDiff} _b \\leq \\texttt{src} (x,y)_b \\leq \\texttt{src} ( \\texttt{seedPoint} .x, \\texttt{seedPoint} .y)_b+ \\texttt{upDiff} _b\\f]\n. \n. \n. where \\f$src(x',y')\\f$ is the value of one of pixel neighbors that is already known to belong to the\n. component. That is, to be added to the connected component, a color/brightness of the pixel should\n. be close enough to:\n. - Color/brightness of one of its neighbors that already belong to the connected component in case\n. of a floating range.\n. - Color/brightness of the seed point in case of a fixed range.\n. \n. Use these functions to either mark a connected component with the specified color in-place, or build\n. a mask and then extract the contour, or copy the region to another image, and so on.\n. \n. @param image Input/output 1- or 3-channel, 8-bit, or floating-point image. It is modified by the\n. function unless the #FLOODFILL_MASK_ONLY flag is set in the second variant of the function. See\n. the details below.\n. @param mask Operation mask that should be a single-channel 8-bit image, 2 pixels wider and 2 pixels\n. taller than image. Since this is both an input and output parameter, you must take responsibility\n. of initializing it. Flood-filling cannot go across non-zero pixels in the input mask. For example,\n. an edge detector output can be used as a mask to stop filling at edges. On output, pixels in the\n. mask corresponding to filled pixels in the image are set to 1 or to the a value specified in flags\n. as described below. Additionally, the function fills the border of the mask with ones to simplify\n. internal processing. It is therefore possible to use the same mask in multiple calls to the function\n. to make sure the filled areas do not overlap.\n. @param seedPoint Starting point.\n. @param newVal New value of the repainted domain pixels.\n. @param loDiff Maximal lower brightness/color difference between the currently observed pixel and\n. one of its neighbors belonging to the component, or a seed pixel being added to the component.\n. @param upDiff Maximal upper brightness/color difference between the currently observed pixel and\n. one of its neighbors belonging to the component, or a seed pixel being added to the component.\n. @param rect Optional output parameter set by the function to the minimum bounding rectangle of the\n. repainted domain.\n. @param flags Operation flags. The first 8 bits contain a connectivity value. The default value of\n. 4 means that only the four nearest neighbor pixels (those that share an edge) are considered. A\n. connectivity value of 8 means that the eight nearest neighbor pixels (those that share a corner)\n. will be considered. The next 8 bits (8-16) contain a value between 1 and 255 with which to fill\n. the mask (the default value is 1). For example, 4 | ( 255 \\<\\< 8 ) will consider 4 nearest\n. neighbours and fill the mask with a value of 255. The following additional options occupy higher\n. bits and therefore may be further combined with the connectivity and mask fill values using\n. bit-wise or (|), see #FloodFillFlags.\n. \n. @note Since the mask is larger than the filled image, a pixel \\f$(x, y)\\f$ in image corresponds to the\n. pixel \\f$(x+1, y+1)\\f$ in the mask .\n. \n. @sa findContours" - ... - -def gemm(src1: Mat, src2: Mat, alpha, src3, beta, dts: Mat = ..., flags: int = ...) -> typing.Any: - 'gemm(src1, src2, alpha, src3, beta[, dst[, flags]]) -> dst\n. @brief Performs generalized matrix multiplication.\n. \n. The function cv::gemm performs generalized matrix multiplication similar to the\n. gemm functions in BLAS level 3. For example,\n. `gemm(src1, src2, alpha, src3, beta, dst, GEMM_1_T + GEMM_3_T)`\n. corresponds to\n. \\f[\\texttt{dst} = \\texttt{alpha} \\cdot \\texttt{src1} ^T \\cdot \\texttt{src2} + \\texttt{beta} \\cdot \\texttt{src3} ^T\\f]\n. \n. In case of complex (two-channel) data, performed a complex matrix\n. multiplication.\n. \n. The function can be replaced with a matrix expression. For example, the\n. above call can be replaced with:\n. @code{.cpp}\n. dst = alpha*src1.t()*src2 + beta*src3.t();\n. @endcode\n. @param src1 first multiplied input matrix that could be real(CV_32FC1,\n. CV_64FC1) or complex(CV_32FC2, CV_64FC2).\n. @param src2 second multiplied input matrix of the same type as src1.\n. @param alpha weight of the matrix product.\n. @param src3 third optional delta matrix added to the matrix product; it\n. should have the same type as src1 and src2.\n. @param beta weight of src3.\n. @param dst output matrix; it has the proper size and the same type as\n. input matrices.\n. @param flags operation flags (cv::GemmFlags)\n. @sa mulTransposed , transform' - ... - -def getAffineTransform(src: Mat, dts: Mat) -> typing.Any: - 'getAffineTransform(src, dst) -> retval\n. @overload' - ... - -def getBuildInformation() -> typing.Any: - 'getBuildInformation() -> retval\n. @brief Returns full configuration time cmake output.\n. \n. Returned value is raw cmake output including version control system revision, compiler version,\n. compiler flags, enabled modules and third party libraries, etc. Output format depends on target\n. architecture.' - ... - -def getCPUFeaturesLine() -> typing.Any: - 'getCPUFeaturesLine() -> retval\n. @brief Returns list of CPU features enabled during compilation.\n. \n. Returned value is a string containing space separated list of CPU features with following markers:\n. \n. - no markers - baseline features\n. - prefix `*` - features enabled in dispatcher\n. - suffix `?` - features enabled but not available in HW\n. \n. Example: `SSE SSE2 SSE3 *SSE4.1 *SSE4.2 *FP16 *AVX *AVX2 *AVX512-SKX?`' - ... - -def getCPUTickCount() -> typing.Any: - 'getCPUTickCount() -> retval\n. @brief Returns the number of CPU ticks.\n. \n. The function returns the current number of CPU ticks on some architectures (such as x86, x64,\n. PowerPC). On other platforms the function is equivalent to getTickCount. It can also be used for\n. very accurate time measurements, as well as for RNG initialization. Note that in case of multi-CPU\n. systems a thread, from which getCPUTickCount is called, can be suspended and resumed at another CPU\n. with its own counter. So, theoretically (and practically) the subsequent calls to the function do\n. not necessary return the monotonously increasing values. Also, since a modern CPU varies the CPU\n. frequency depending on the load, the number of CPU clocks spent in some code cannot be directly\n. converted to time units. Therefore, getTickCount is generally a preferable solution for measuring\n. execution time.' - ... - -def getDefaultNewCameraMatrix(cameraMatrix, imgsize=..., centerPrincipalPoint=...) -> typing.Any: - 'getDefaultNewCameraMatrix(cameraMatrix[, imgsize[, centerPrincipalPoint]]) -> retval\n. @brief Returns the default new camera matrix.\n. \n. The function returns the camera matrix that is either an exact copy of the input cameraMatrix (when\n. centerPrinicipalPoint=false ), or the modified one (when centerPrincipalPoint=true).\n. \n. In the latter case, the new camera matrix will be:\n. \n. \\f[\\begin{bmatrix} f_x && 0 && ( \\texttt{imgSize.width} -1)*0.5 \\\\ 0 && f_y && ( \\texttt{imgSize.height} -1)*0.5 \\\\ 0 && 0 && 1 \\end{bmatrix} ,\\f]\n. \n. where \\f$f_x\\f$ and \\f$f_y\\f$ are \\f$(0,0)\\f$ and \\f$(1,1)\\f$ elements of cameraMatrix, respectively.\n. \n. By default, the undistortion functions in OpenCV (see #initUndistortRectifyMap, #undistort) do not\n. move the principal point. However, when you work with stereo, it is important to move the principal\n. points in both views to the same y-coordinate (which is required by most of stereo correspondence\n. algorithms), and may be to the same x-coordinate too. So, you can form the new camera matrix for\n. each view where the principal points are located at the center.\n. \n. @param cameraMatrix Input camera matrix.\n. @param imgsize Camera view image size in pixels.\n. @param centerPrincipalPoint Location of the principal point in the new camera matrix. The\n. parameter indicates whether this location should be at the image center or not.' - ... - -def getDerivKernels(dx, dy, ksize, kx=..., ky=..., normalize=..., ktype=...) -> typing.Any: - 'getDerivKernels(dx, dy, ksize[, kx[, ky[, normalize[, ktype]]]]) -> kx, ky\n. @brief Returns filter coefficients for computing spatial image derivatives.\n. \n. The function computes and returns the filter coefficients for spatial image derivatives. When\n. `ksize=FILTER_SCHARR`, the Scharr \\f$3 \\times 3\\f$ kernels are generated (see #Scharr). Otherwise, Sobel\n. kernels are generated (see #Sobel). The filters are normally passed to #sepFilter2D or to\n. \n. @param kx Output matrix of row filter coefficients. It has the type ktype .\n. @param ky Output matrix of column filter coefficients. It has the type ktype .\n. @param dx Derivative order in respect of x.\n. @param dy Derivative order in respect of y.\n. @param ksize Aperture size. It can be FILTER_SCHARR, 1, 3, 5, or 7.\n. @param normalize Flag indicating whether to normalize (scale down) the filter coefficients or not.\n. Theoretically, the coefficients should have the denominator \\f$=2^{ksize*2-dx-dy-2}\\f$. If you are\n. going to filter floating-point images, you are likely to use the normalized kernels. But if you\n. compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve\n. all the fractional bits, you may want to set normalize=false .\n. @param ktype Type of filter coefficients. It can be CV_32f or CV_64F .' - ... - -def getFontScaleFromHeight(fontFace, pixelHeight, thickness=...) -> typing.Any: - 'getFontScaleFromHeight(fontFace, pixelHeight[, thickness]) -> retval\n. @brief Calculates the font-specific size to use to achieve a given height in pixels.\n. \n. @param fontFace Font to use, see cv::HersheyFonts.\n. @param pixelHeight Pixel height to compute the fontScale for\n. @param thickness Thickness of lines used to render the text.See putText for details.\n. @return The fontSize to use for cv::putText\n. \n. @see cv::putText' - ... - -def getGaborKernel(ksize, sigma, theta, lambd, gamma, psi=..., ktype=...) -> typing.Any: - 'getGaborKernel(ksize, sigma, theta, lambd, gamma[, psi[, ktype]]) -> retval\n. @brief Returns Gabor filter coefficients.\n. \n. For more details about gabor filter equations and parameters, see: [Gabor\n. Filter](http://en.wikipedia.org/wiki/Gabor_filter).\n. \n. @param ksize Size of the filter returned.\n. @param sigma Standard deviation of the gaussian envelope.\n. @param theta Orientation of the normal to the parallel stripes of a Gabor function.\n. @param lambd Wavelength of the sinusoidal factor.\n. @param gamma Spatial aspect ratio.\n. @param psi Phase offset.\n. @param ktype Type of filter coefficients. It can be CV_32F or CV_64F .' - ... - -def getGaussianKernel(ksize, sigma, ktype=...) -> typing.Any: - 'getGaussianKernel(ksize, sigma[, ktype]) -> retval\n. @brief Returns Gaussian filter coefficients.\n. \n. The function computes and returns the \\f$\\texttt{ksize} \\times 1\\f$ matrix of Gaussian filter\n. coefficients:\n. \n. \\f[G_i= \\alpha *e^{-(i-( \\texttt{ksize} -1)/2)^2/(2* \\texttt{sigma}^2)},\\f]\n. \n. where \\f$i=0..\\texttt{ksize}-1\\f$ and \\f$\\alpha\\f$ is the scale factor chosen so that \\f$\\sum_i G_i=1\\f$.\n. \n. Two of such generated kernels can be passed to sepFilter2D. Those functions automatically recognize\n. smoothing kernels (a symmetrical kernel with sum of weights equal to 1) and handle them accordingly.\n. You may also use the higher-level GaussianBlur.\n. @param ksize Aperture size. It should be odd ( \\f$\\texttt{ksize} \\mod 2 = 1\\f$ ) and positive.\n. @param sigma Gaussian standard deviation. If it is non-positive, it is computed from ksize as\n. `sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8`.\n. @param ktype Type of filter coefficients. It can be CV_32F or CV_64F .\n. @sa sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur' - ... - -def getHardwareFeatureName(feature) -> typing.Any: - 'getHardwareFeatureName(feature) -> retval\n. @brief Returns feature name by ID\n. \n. Returns empty string if feature is not defined' - ... - -def getNumThreads() -> typing.Any: - 'getNumThreads() -> retval\n. @brief Returns the number of threads used by OpenCV for parallel regions.\n. \n. Always returns 1 if OpenCV is built without threading support.\n. \n. The exact meaning of return value depends on the threading framework used by OpenCV library:\n. - `TBB` - The number of threads, that OpenCV will try to use for parallel regions. If there is\n. any tbb::thread_scheduler_init in user code conflicting with OpenCV, then function returns\n. default number of threads used by TBB library.\n. - `OpenMP` - An upper bound on the number of threads that could be used to form a new team.\n. - `Concurrency` - The number of threads, that OpenCV will try to use for parallel regions.\n. - `GCD` - Unsupported; returns the GCD thread pool limit (512) for compatibility.\n. - `C=` - The number of threads, that OpenCV will try to use for parallel regions, if before\n. called setNumThreads with threads \\> 0, otherwise returns the number of logical CPUs,\n. available for the process.\n. @sa setNumThreads, getThreadNum' - ... - -def getNumberOfCPUs() -> typing.Any: - 'getNumberOfCPUs() -> retval\n. @brief Returns the number of logical CPUs available for the process.' - ... - -def getOptimalDFTSize(vecsize) -> typing.Any: - "getOptimalDFTSize(vecsize) -> retval\n. @brief Returns the optimal DFT size for a given vector size.\n. \n. DFT performance is not a monotonic function of a vector size. Therefore, when you calculate\n. convolution of two arrays or perform the spectral analysis of an array, it usually makes sense to\n. pad the input data with zeros to get a bit larger array that can be transformed much faster than the\n. original one. Arrays whose size is a power-of-two (2, 4, 8, 16, 32, ...) are the fastest to process.\n. Though, the arrays whose size is a product of 2's, 3's, and 5's (for example, 300 = 5\\*5\\*3\\*2\\*2)\n. are also processed quite efficiently.\n. \n. The function cv::getOptimalDFTSize returns the minimum number N that is greater than or equal to vecsize\n. so that the DFT of a vector of size N can be processed efficiently. In the current implementation N\n. = 2 ^p^ \\* 3 ^q^ \\* 5 ^r^ for some integer p, q, r.\n. \n. The function returns a negative number if vecsize is too large (very close to INT_MAX ).\n. \n. While the function cannot be used directly to estimate the optimal vector size for DCT transform\n. (since the current DCT implementation supports only even-size vectors), it can be easily processed\n. as getOptimalDFTSize((vecsize+1)/2)\\*2.\n. @param vecsize vector size.\n. @sa dft , dct , idft , idct , mulSpectrums" - ... - -def getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha, newImgSize=..., centerPrincipalPoint=...) -> typing.Any: - 'getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, imageSize, alpha[, newImgSize[, centerPrincipalPoint]]) -> retval, validPixROI\n. @brief Returns the new camera matrix based on the free scaling parameter.\n. \n. @param cameraMatrix Input camera matrix.\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param imageSize Original image size.\n. @param alpha Free scaling parameter between 0 (when all the pixels in the undistorted image are\n. valid) and 1 (when all the source image pixels are retained in the undistorted image). See\n. stereoRectify for details.\n. @param newImgSize Image size after rectification. By default, it is set to imageSize .\n. @param validPixROI Optional output rectangle that outlines all-good-pixels region in the\n. undistorted image. See roi1, roi2 description in stereoRectify .\n. @param centerPrincipalPoint Optional flag that indicates whether in the new camera matrix the\n. principal point should be at the image center or not. By default, the principal point is chosen to\n. best fit a subset of the source image (determined by alpha) to the corrected image.\n. @return new_camera_matrix Output new camera matrix.\n. \n. The function computes and returns the optimal new camera matrix based on the free scaling parameter.\n. By varying this parameter, you may retrieve only sensible pixels alpha=0 , keep all the original\n. image pixels if there is valuable information in the corners alpha=1 , or get something in between.\n. When alpha\\>0 , the undistorted result is likely to have some black pixels corresponding to\n. "virtual" pixels outside of the captured distorted image. The original camera matrix, distortion\n. coefficients, the computed new camera matrix, and newImageSize should be passed to\n. initUndistortRectifyMap to produce the maps for remap .' - ... - -def getPerspectiveTransform(src: Mat, dts: Mat, solveMethod=...) -> typing.Any: - "getPerspectiveTransform(src, dst[, solveMethod]) -> retval\n. @brief Calculates a perspective transform from four pairs of the corresponding points.\n. \n. The function calculates the \\f$3 \\times 3\\f$ matrix of a perspective transform so that:\n. \n. \\f[\\begin{bmatrix} t_i x'_i \\\\ t_i y'_i \\\\ t_i \\end{bmatrix} = \\texttt{map_matrix} \\cdot \\begin{bmatrix} x_i \\\\ y_i \\\\ 1 \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2,3\\f]\n. \n. @param src Coordinates of quadrangle vertices in the source image.\n. @param dst Coordinates of the corresponding quadrangle vertices in the destination image.\n. @param solveMethod method passed to cv::solve (#DecompTypes)\n. \n. @sa findHomography, warpPerspective, perspectiveTransform" - ... - -def getRectSubPix(image: Mat, patchSize, center, patch=..., patchType=...) -> typing.Any: - 'getRectSubPix(image, patchSize, center[, patch[, patchType]]) -> patch\n. @brief Retrieves a pixel rectangle from an image with sub-pixel accuracy.\n. \n. The function getRectSubPix extracts pixels from src:\n. \n. \\f[patch(x, y) = src(x + \\texttt{center.x} - ( \\texttt{dst.cols} -1)*0.5, y + \\texttt{center.y} - ( \\texttt{dst.rows} -1)*0.5)\\f]\n. \n. where the values of the pixels at non-integer coordinates are retrieved using bilinear\n. interpolation. Every channel of multi-channel images is processed independently. Also\n. the image should be a single channel or three channel image. While the center of the\n. rectangle must be inside the image, parts of the rectangle may be outside.\n. \n. @param image Source image.\n. @param patchSize Size of the extracted patch.\n. @param center Floating point coordinates of the center of the extracted rectangle within the\n. source image. The center must be inside the image.\n. @param patch Extracted patch that has the size patchSize and the same number of channels as src .\n. @param patchType Depth of the extracted pixels. By default, they have the same depth as src .\n. \n. @sa warpAffine, warpPerspective' - ... - -def getRotationMatrix2D(center, angle, scale) -> typing.Any: - 'getRotationMatrix2D(center, angle, scale) -> retval\n. @brief Calculates an affine matrix of 2D rotation.\n. \n. The function calculates the following matrix:\n. \n. \\f[\\begin{bmatrix} \\alpha & \\beta & (1- \\alpha ) \\cdot \\texttt{center.x} - \\beta \\cdot \\texttt{center.y} \\\\ - \\beta & \\alpha & \\beta \\cdot \\texttt{center.x} + (1- \\alpha ) \\cdot \\texttt{center.y} \\end{bmatrix}\\f]\n. \n. where\n. \n. \\f[\\begin{array}{l} \\alpha = \\texttt{scale} \\cdot \\cos \\texttt{angle} , \\\\ \\beta = \\texttt{scale} \\cdot \\sin \\texttt{angle} \\end{array}\\f]\n. \n. The transformation maps the rotation center to itself. If this is not the target, adjust the shift.\n. \n. @param center Center of the rotation in the source image.\n. @param angle Rotation angle in degrees. Positive values mean counter-clockwise rotation (the\n. coordinate origin is assumed to be the top-left corner).\n. @param scale Isotropic scale factor.\n. \n. @sa getAffineTransform, warpAffine, transform' - ... - -def getStructuringElement(shape, ksize, anchor=...) -> typing.Any: - 'getStructuringElement(shape, ksize[, anchor]) -> retval\n. @brief Returns a structuring element of the specified size and shape for morphological operations.\n. \n. The function constructs and returns the structuring element that can be further passed to #erode,\n. #dilate or #morphologyEx. But you can also construct an arbitrary binary mask yourself and use it as\n. the structuring element.\n. \n. @param shape Element shape that could be one of #MorphShapes\n. @param ksize Size of the structuring element.\n. @param anchor Anchor position within the element. The default value \\f$(-1, -1)\\f$ means that the\n. anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor\n. position. In other cases the anchor just regulates how much the result of the morphological\n. operation is shifted.' - ... - -def getTextSize(text, fontFace, fontScale, thickness) -> typing.Any: - 'getTextSize(text, fontFace, fontScale, thickness) -> retval, baseLine\n. @brief Calculates the width and height of a text string.\n. \n. The function cv::getTextSize calculates and returns the size of a box that contains the specified text.\n. That is, the following code renders some text, the tight box surrounding it, and the baseline: :\n. @code\n. String text = "Funny text inside the box";\n. int fontFace = FONT_HERSHEY_SCRIPT_SIMPLEX;\n. double fontScale = 2;\n. int thickness = 3;\n. \n. Mat img(600, 800, CV_8UC3, Scalar::all(0));\n. \n. int baseline=0;\n. Size textSize = getTextSize(text, fontFace,\n. fontScale, thickness, &baseline);\n. baseline += thickness;\n. \n. // center the text\n. Point textOrg((img.cols - textSize.width)/2,\n. (img.rows + textSize.height)/2);\n. \n. // draw the box\n. rectangle(img, textOrg + Point(0, baseline),\n. textOrg + Point(textSize.width, -textSize.height),\n. Scalar(0,0,255));\n. // ... and the baseline first\n. line(img, textOrg + Point(0, thickness),\n. textOrg + Point(textSize.width, thickness),\n. Scalar(0, 0, 255));\n. \n. // then put the text itself\n. putText(img, text, textOrg, fontFace, fontScale,\n. Scalar::all(255), thickness, 8);\n. @endcode\n. \n. @param text Input text string.\n. @param fontFace Font to use, see #HersheyFonts.\n. @param fontScale Font scale factor that is multiplied by the font-specific base size.\n. @param thickness Thickness of lines used to render the text. See #putText for details.\n. @param[out] baseLine y-coordinate of the baseline relative to the bottom-most text\n. point.\n. @return The size of a box that contains the specified text.\n. \n. @see putText' - ... - -def getThreadNum() -> typing.Any: - "getThreadNum() -> retval\n. @brief Returns the index of the currently executed thread within the current parallel region. Always\n. returns 0 if called outside of parallel region.\n. \n. @deprecated Current implementation doesn't corresponding to this documentation.\n. \n. The exact meaning of the return value depends on the threading framework used by OpenCV library:\n. - `TBB` - Unsupported with current 4.1 TBB release. Maybe will be supported in future.\n. - `OpenMP` - The thread number, within the current team, of the calling thread.\n. - `Concurrency` - An ID for the virtual processor that the current context is executing on (0\n. for master thread and unique number for others, but not necessary 1,2,3,...).\n. - `GCD` - System calling thread's ID. Never returns 0 inside parallel region.\n. - `C=` - The index of the current parallel task.\n. @sa setNumThreads, getNumThreads" - ... - -def getTickCount() -> typing.Any: - 'getTickCount() -> retval\n. @brief Returns the number of ticks.\n. \n. The function returns the number of ticks after the certain event (for example, when the machine was\n. turned on). It can be used to initialize RNG or to measure a function execution time by reading the\n. tick count before and after the function call.\n. @sa getTickFrequency, TickMeter' - ... - -def getTickFrequency() -> typing.Any: - 'getTickFrequency() -> retval\n. @brief Returns the number of ticks per second.\n. \n. The function returns the number of ticks per second. That is, the following code computes the\n. execution time in seconds:\n. @code\n. double t = (double)getTickCount();\n. // do something ...\n. t = ((double)getTickCount() - t)/getTickFrequency();\n. @endcode\n. @sa getTickCount, TickMeter' - ... - -def getTrackbarPos(trackbarname, winname) -> typing.Any: - 'getTrackbarPos(trackbarname, winname) -> retval\n. @brief Returns the trackbar position.\n. \n. The function returns the current position of the specified trackbar.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of the trackbar.' - ... - -def getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize) -> typing.Any: - 'getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize) -> retval\n.' - ... - -def getVersionMajor() -> typing.Any: - 'getVersionMajor() -> retval\n. @brief Returns major library version' - ... - -def getVersionMinor() -> typing.Any: - 'getVersionMinor() -> retval\n. @brief Returns minor library version' - ... - -def getVersionRevision() -> typing.Any: - 'getVersionRevision() -> retval\n. @brief Returns revision field of the library version' - ... - -def getVersionString() -> typing.Any: - 'getVersionString() -> retval\n. @brief Returns library version string\n. \n. For example "3.4.1-dev".\n. \n. @sa getMajorVersion, getMinorVersion, getRevisionVersion' - ... - -def getWindowImageRect(winname) -> typing.Any: - 'getWindowImageRect(winname) -> retval\n. @brief Provides rectangle of image in the window.\n. \n. The function getWindowImageRect returns the client screen coordinates, width and height of the image rendering area.\n. \n. @param winname Name of the window.\n. \n. @sa resizeWindow moveWindow' - ... - -def getWindowProperty(winname, prop_id) -> typing.Any: - 'getWindowProperty(winname, prop_id) -> retval\n. @brief Provides parameters of a window.\n. \n. The function getWindowProperty returns properties of a window.\n. \n. @param winname Name of the window.\n. @param prop_id Window property to retrieve. The following operation flags are available: (cv::WindowPropertyFlags)\n. \n. @sa setWindowProperty' - ... - -def goodFeaturesToTrack(image: Mat, maxCorners, qualityLevel, minDistance, corners=..., mask: Mat = ..., blockSize=..., useHarrisDetector=..., k=...) -> typing.Any: - 'goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance[, corners[, mask[, blockSize[, useHarrisDetector[, k]]]]]) -> corners\n. @brief Determines strong corners on an image.\n. \n. The function finds the most prominent corners in the image or in the specified image region, as\n. described in @cite Shi94\n. \n. - Function calculates the corner quality measure at every source image pixel using the\n. #cornerMinEigenVal or #cornerHarris .\n. - Function performs a non-maximum suppression (the local maximums in *3 x 3* neighborhood are\n. retained).\n. - The corners with the minimal eigenvalue less than\n. \\f$\\texttt{qualityLevel} \\cdot \\max_{x,y} qualityMeasureMap(x,y)\\f$ are rejected.\n. - The remaining corners are sorted by the quality measure in the descending order.\n. - Function throws away each corner for which there is a stronger corner at a distance less than\n. maxDistance.\n. \n. The function can be used to initialize a point-based tracker of an object.\n. \n. @note If the function is called with different values A and B of the parameter qualityLevel , and\n. A \\> B, the vector of returned corners with qualityLevel=A will be the prefix of the output vector\n. with qualityLevel=B .\n. \n. @param image Input 8-bit or floating-point 32-bit, single-channel image.\n. @param corners Output vector of detected corners.\n. @param maxCorners Maximum number of corners to return. If there are more corners than are found,\n. the strongest of them is returned. `maxCorners <= 0` implies that no limit on the maximum is set\n. and all detected corners are returned.\n. @param qualityLevel Parameter characterizing the minimal accepted quality of image corners. The\n. parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue\n. (see #cornerMinEigenVal ) or the Harris function response (see #cornerHarris ). The corners with the\n. quality measure less than the product are rejected. For example, if the best corner has the\n. quality measure = 1500, and the qualityLevel=0.01 , then all the corners with the quality measure\n. less than 15 are rejected.\n. @param minDistance Minimum possible Euclidean distance between the returned corners.\n. @param mask Optional region of interest. If the image is not empty (it needs to have the type\n. CV_8UC1 and the same size as image ), it specifies the region in which the corners are detected.\n. @param blockSize Size of an average block for computing a derivative covariation matrix over each\n. pixel neighborhood. See cornerEigenValsAndVecs .\n. @param useHarrisDetector Parameter indicating whether to use a Harris detector (see #cornerHarris)\n. or #cornerMinEigenVal.\n. @param k Free parameter of the Harris detector.\n. \n. @sa cornerMinEigenVal, cornerHarris, calcOpticalFlowPyrLK, estimateRigidTransform,\n\n\n\ngoodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, mask, blockSize, gradientSize[, corners[, useHarrisDetector[, k]]]) -> corners\n.' - ... - -def grabCut(img: Mat, mask: typing.Optional[Mat], rect, bgdModel, fgdModel, iterCount, mode=...) -> typing.Any: - 'grabCut(img, mask, rect, bgdModel, fgdModel, iterCount[, mode]) -> mask, bgdModel, fgdModel\n. @brief Runs the GrabCut algorithm.\n. \n. The function implements the [GrabCut image segmentation algorithm](http://en.wikipedia.org/wiki/GrabCut).\n. \n. @param img Input 8-bit 3-channel image.\n. @param mask Input/output 8-bit single-channel mask. The mask is initialized by the function when\n. mode is set to #GC_INIT_WITH_RECT. Its elements may have one of the #GrabCutClasses.\n. @param rect ROI containing a segmented object. The pixels outside of the ROI are marked as\n. "obvious background". The parameter is only used when mode==#GC_INIT_WITH_RECT .\n. @param bgdModel Temporary array for the background model. Do not modify it while you are\n. processing the same image.\n. @param fgdModel Temporary arrays for the foreground model. Do not modify it while you are\n. processing the same image.\n. @param iterCount Number of iterations the algorithm should make before returning the result. Note\n. that the result can be refined with further calls with mode==#GC_INIT_WITH_MASK or\n. mode==GC_EVAL .\n. @param mode Operation mode that could be one of the #GrabCutModes' - ... - -def groupRectangles(rectList, groupThreshold, eps=...) -> typing.Any: - 'groupRectangles(rectList, groupThreshold[, eps]) -> rectList, weights\n. @overload' - ... - -def haveImageReader(filename: str) -> typing.Any: - 'haveImageReader(filename) -> retval\n. @brief Returns true if the specified image can be decoded by OpenCV\n. \n. @param filename File name of the image' - ... - -def haveImageWriter(filename: str) -> typing.Any: - 'haveImageWriter(filename) -> retval\n. @brief Returns true if an image with the specified filename can be encoded by OpenCV\n. \n. @param filename File name of the image' - ... - -def haveOpenVX() -> typing.Any: - 'haveOpenVX() -> retval\n.' - ... - -def hconcat(src: Mat, dts: Mat = ...) -> typing.Any: - 'hconcat(src[, dst]) -> dst\n. @overload\n. @code{.cpp}\n. std::vector matrices = { cv::Mat(4, 1, CV_8UC1, cv::Scalar(1)),\n. cv::Mat(4, 1, CV_8UC1, cv::Scalar(2)),\n. cv::Mat(4, 1, CV_8UC1, cv::Scalar(3)),};\n. \n. cv::Mat out;\n. cv::hconcat( matrices, out );\n. //out:\n. //[1, 2, 3;\n. // 1, 2, 3;\n. // 1, 2, 3;\n. // 1, 2, 3]\n. @endcode\n. @param src input array or vector of matrices. all of the matrices must have the same number of rows and the same depth.\n. @param dst output array. It has the same number of rows and depth as the src, and the sum of cols of the src.\n. same depth.' - ... - -def idct(src: Mat, dts: Mat = ..., flags: int = ...) -> typing.Any: - 'idct(src[, dst[, flags]]) -> dst\n. @brief Calculates the inverse Discrete Cosine Transform of a 1D or 2D array.\n. \n. idct(src, dst, flags) is equivalent to dct(src, dst, flags | DCT_INVERSE).\n. @param src input floating-point single-channel array.\n. @param dst output array of the same size and type as src.\n. @param flags operation flags.\n. @sa dct, dft, idft, getOptimalDFTSize' - ... - -def idft(src: Mat, dts: Mat = ..., flags: int = ..., nonzeroRows=...) -> typing.Any: - 'idft(src[, dst[, flags[, nonzeroRows]]]) -> dst\n. @brief Calculates the inverse Discrete Fourier Transform of a 1D or 2D array.\n. \n. idft(src, dst, flags) is equivalent to dft(src, dst, flags | #DFT_INVERSE) .\n. @note None of dft and idft scales the result by default. So, you should pass #DFT_SCALE to one of\n. dft or idft explicitly to make these transforms mutually inverse.\n. @sa dft, dct, idct, mulSpectrums, getOptimalDFTSize\n. @param src input floating-point real or complex array.\n. @param dst output array whose size and type depend on the flags.\n. @param flags operation flags (see dft and #DftFlags).\n. @param nonzeroRows number of dst rows to process; the rest of the rows have undefined content (see\n. the convolution sample in dft description.' - ... - -def illuminationChange(src: Mat, mask: Mat, dts: Mat = ..., alpha=..., beta=...) -> typing.Any: - 'illuminationChange(src, mask[, dst[, alpha[, beta]]]) -> dst\n. @brief Applying an appropriate non-linear transformation to the gradient field inside the selection and\n. then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param alpha Value ranges between 0-2.\n. @param beta Value ranges between 0-2.\n. \n. This is useful to highlight under-exposed foreground objects or to reduce specular reflections.' - ... - -def imdecode(buf, flags: int) -> typing.Any: - 'imdecode(buf, flags) -> retval\n. @brief Reads an image from a buffer in memory.\n. \n. The function imdecode reads an image from the specified buffer in the memory. If the buffer is too short or\n. contains invalid data, the function returns an empty matrix ( Mat::data==NULL ).\n. \n. See cv::imread for the list of supported formats and flags description.\n. \n. @note In the case of color images, the decoded images will have the channels stored in **B G R** order.\n. @param buf Input array or vector of bytes.\n. @param flags The same flags as in cv::imread, see cv::ImreadModes.' - ... - -def imencode(ext, img: Mat, params=...) -> typing.Any: - 'imencode(ext, img[, params]) -> retval, buf\n. @brief Encodes an image into a memory buffer.\n. \n. The function imencode compresses the image and stores it in the memory buffer that is resized to fit the\n. result. See cv::imwrite for the list of supported formats and flags description.\n. \n. @param ext File extension that defines the output format.\n. @param img Image to be written.\n. @param buf Output buffer resized to fit the compressed image.\n. @param params Format-specific parameters. See cv::imwrite and cv::ImwriteFlags.' - ... - -def imread(filename: str, flags: int = ...) -> Mat: - 'imread(filename[, flags]) -> retval\n. @brief Loads an image from a file.\n. \n. @anchor imread\n. \n. The function imread loads an image from the specified file and returns it. If the image cannot be\n. read (because of missing file, improper permissions, unsupported or invalid format), the function\n. returns an empty matrix ( Mat::data==NULL ).\n. \n. Currently, the following file formats are supported:\n. \n. - Windows bitmaps - \\*.bmp, \\*.dib (always supported)\n. - JPEG files - \\*.jpeg, \\*.jpg, \\*.jpe (see the *Note* section)\n. - JPEG 2000 files - \\*.jp2 (see the *Note* section)\n. - Portable Network Graphics - \\*.png (see the *Note* section)\n. - WebP - \\*.webp (see the *Note* section)\n. - Portable image format - \\*.pbm, \\*.pgm, \\*.ppm \\*.pxm, \\*.pnm (always supported)\n. - PFM files - \\*.pfm (see the *Note* section)\n. - Sun rasters - \\*.sr, \\*.ras (always supported)\n. - TIFF files - \\*.tiff, \\*.tif (see the *Note* section)\n. - OpenEXR Image files - \\*.exr (see the *Note* section)\n. - Radiance HDR - \\*.hdr, \\*.pic (always supported)\n. - Raster and Vector geospatial data supported by GDAL (see the *Note* section)\n. \n. @note\n. - The function determines the type of an image by the content, not by the file extension.\n. - In the case of color images, the decoded images will have the channels stored in **B G R** order.\n. - When using IMREAD_GRAYSCALE, the codec\'s internal grayscale conversion will be used, if available.\n. Results may differ to the output of cvtColor()\n. - On Microsoft Windows\\* OS and MacOSX\\*, the codecs shipped with an OpenCV image (libjpeg,\n. libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs,\n. and TIFFs. On MacOSX, there is also an option to use native MacOSX image readers. But beware\n. that currently these native image loaders give images with different pixel values because of\n. the color management embedded into MacOSX.\n. - On Linux\\*, BSD flavors and other Unix-like open-source operating systems, OpenCV looks for\n. codecs supplied with an OS image. Install the relevant packages (do not forget the development\n. files, for example, "libjpeg-dev", in Debian\\* and Ubuntu\\*) to get the codec support or turn\n. on the OPENCV_BUILD_3RDPARTY_LIBS flag in CMake.\n. - In the case you set *WITH_GDAL* flag to true in CMake and @ref IMREAD_LOAD_GDAL to load the image,\n. then the [GDAL](http://www.gdal.org) driver will be used in order to decode the image, supporting\n. the following formats: [Raster](http://www.gdal.org/formats_list.html),\n. [Vector](http://www.gdal.org/ogr_formats.html).\n. - If EXIF information is embedded in the image file, the EXIF orientation will be taken into account\n. and thus the image will be rotated accordingly except if the flags @ref IMREAD_IGNORE_ORIENTATION\n. or @ref IMREAD_UNCHANGED are passed.\n. - Use the IMREAD_UNCHANGED flag to keep the floating point values from PFM image.\n. - By default number of pixels must be less than 2^30. Limit can be set using system\n. variable OPENCV_IO_MAX_IMAGE_PIXELS\n. \n. @param filename Name of file to be loaded.\n. @param flags Flag that can take values of cv::ImreadModes' - ... - -def imreadmulti(filename: str, mats=..., flags: int = ...) -> typing.Any: - 'imreadmulti(filename[, mats[, flags]]) -> retval, mats\n. @brief Loads a multi-page image from a file.\n. \n. The function imreadmulti loads a multi-page image from the specified file into a vector of Mat objects.\n. @param filename Name of file to be loaded.\n. @param flags Flag that can take values of cv::ImreadModes, default with cv::IMREAD_ANYCOLOR.\n. @param mats A vector of Mat objects holding each page, if more than one.\n. @sa cv::imread' - ... - -def imshow(winname, mat) -> typing.Any: - 'imshow(winname, mat) -> None\n. @brief Displays an image in the specified window.\n. \n. The function imshow displays an image in the specified window. If the window was created with the\n. cv::WINDOW_AUTOSIZE flag, the image is shown with its original size, however it is still limited by the screen resolution.\n. Otherwise, the image is scaled to fit the window. The function may scale the image, depending on its depth:\n. \n. - If the image is 8-bit unsigned, it is displayed as is.\n. - If the image is 16-bit unsigned or 32-bit integer, the pixels are divided by 256. That is, the\n. value range [0,255\\*256] is mapped to [0,255].\n. - If the image is 32-bit or 64-bit floating-point, the pixel values are multiplied by 255. That is, the\n. value range [0,1] is mapped to [0,255].\n. \n. If window was created with OpenGL support, cv::imshow also support ogl::Buffer , ogl::Texture2D and\n. cuda::GpuMat as input.\n. \n. If the window was not created before this function, it is assumed creating a window with cv::WINDOW_AUTOSIZE.\n. \n. If you need to show an image that is bigger than the screen resolution, you will need to call namedWindow("", WINDOW_NORMAL) before the imshow.\n. \n. @note This function should be followed by cv::waitKey function which displays the image for specified\n. milliseconds. Otherwise, it won\'t display the image. For example, **waitKey(0)** will display the window\n. infinitely until any keypress (it is suitable for image display). **waitKey(25)** will display a frame\n. for 25 ms, after which display will be automatically closed. (If you put it in a loop to read\n. videos, it will display the video frame-by-frame)\n. \n. @note\n. \n. [__Windows Backend Only__] Pressing Ctrl+C will copy the image to the clipboard.\n. \n. [__Windows Backend Only__] Pressing Ctrl+S will show a dialog to save the image.\n. \n. @param winname Name of the window.\n. @param mat Image to be shown.' - ... - -def imwrite(filename: str, img: Mat, params: typing.List[int] = ...) -> bool: - "imwrite(filename, img[, params]) -> retval\n. @brief Saves an image to a specified file.\n. \n. The function imwrite saves the image to the specified file. The image format is chosen based on the\n. filename extension (see cv::imread for the list of extensions). In general, only 8-bit\n. single-channel or 3-channel (with 'BGR' channel order) images\n. can be saved using this function, with these exceptions:\n. \n. - 16-bit unsigned (CV_16U) images can be saved in the case of PNG, JPEG 2000, and TIFF formats\n. - 32-bit float (CV_32F) images can be saved in PFM, TIFF, OpenEXR, and Radiance HDR formats;\n. 3-channel (CV_32FC3) TIFF images will be saved using the LogLuv high dynamic range encoding\n. (4 bytes per pixel)\n. - PNG images with an alpha channel can be saved using this function. To do this, create\n. 8-bit (or 16-bit) 4-channel image BGRA, where the alpha channel goes last. Fully transparent pixels\n. should have alpha set to 0, fully opaque pixels should have alpha set to 255/65535 (see the code sample below).\n. - Multiple images (vector of Mat) can be saved in TIFF format (see the code sample below).\n. \n. If the format, depth or channel order is different, use\n. Mat::convertTo and cv::cvtColor to convert it before saving. Or, use the universal FileStorage I/O\n. functions to save the image to XML or YAML format.\n. \n. The sample below shows how to create a BGRA image, how to set custom compression parameters and save it to a PNG file.\n. It also demonstrates how to save multiple images in a TIFF file:\n. @include snippets/imgcodecs_imwrite.cpp\n. @param filename Name of the file.\n. @param img (Mat or vector of Mat) Image or Images to be saved.\n. @param params Format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .) see cv::ImwriteFlags" - ... - -def inRange(src: Mat, lowerBound: Mat, upperbBound: Mat, dts: Mat = ...) -> Mat: - 'inRange(src, lowerBound, upperbBound[, dst]) -> dst\n. @brief Checks if array elements lie between the elements of two other arrays.\n. \n. The function checks the range as follows:\n. - For every element of a single-channel input array:\n. \\f[\\texttt{dst} (I)= \\texttt{lowerBound} (I)_0 \\leq \\texttt{src} (I)_0 \\leq \\texttt{upperbBound} (I)_0\\f]\n. - For two-channel arrays:\n. \\f[\\texttt{dst} (I)= \\texttt{lowerBound} (I)_0 \\leq \\texttt{src} (I)_0 \\leq \\texttt{upperbBound} (I)_0 \\land \\texttt{lowerBound} (I)_1 \\leq \\texttt{src} (I)_1 \\leq \\texttt{upperbBound} (I)_1\\f]\n. - and so forth.\n. \n. That is, dst (I) is set to 255 (all 1 -bits) if src (I) is within the\n. specified 1D, 2D, 3D, ... box and 0 otherwise.\n. \n. When the lower and/or upper boundary parameters are scalars, the indexes\n. (I) at lowerBound and upperbBound in the above formulas should be omitted.\n. @param src first input array.\n. @param lowerBound inclusive lower boundary array or a scalar.\n. @param upperbBound inclusive upper boundary array or a scalar.\n. @param dst output array of the same size as src and CV_8U type.' - ... - -def initCameraMatrix2D(objectPoints, imagePoints, imageSize, aspectRatio=...) -> typing.Any: - 'initCameraMatrix2D(objectPoints, imagePoints, imageSize[, aspectRatio]) -> retval\n. @brief Finds an initial camera matrix from 3D-2D point correspondences.\n. \n. @param objectPoints Vector of vectors of the calibration pattern points in the calibration pattern\n. coordinate space. In the old interface all the per-view vectors are concatenated. See\n. calibrateCamera for details.\n. @param imagePoints Vector of vectors of the projections of the calibration pattern points. In the\n. old interface all the per-view vectors are concatenated.\n. @param imageSize Image size in pixels used to initialize the principal point.\n. @param aspectRatio If it is zero or negative, both \\f$f_x\\f$ and \\f$f_y\\f$ are estimated independently.\n. Otherwise, \\f$f_x = f_y * \\texttt{aspectRatio}\\f$ .\n. \n. The function estimates and returns an initial camera matrix for the camera calibration process.\n. Currently, the function only supports planar calibration patterns, which are patterns where each\n. object point has z-coordinate =0.' - ... - -def initUndistortRectifyMap(cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type, map1=..., map2=...) -> typing.Any: - "initUndistortRectifyMap(cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type[, map1[, map2]]) -> map1, map2\n. @brief Computes the undistortion and rectification transformation map.\n. \n. The function computes the joint undistortion and rectification transformation and represents the\n. result in the form of maps for remap. The undistorted image looks like original, as if it is\n. captured with a camera using the camera matrix =newCameraMatrix and zero distortion. In case of a\n. monocular camera, newCameraMatrix is usually equal to cameraMatrix, or it can be computed by\n. #getOptimalNewCameraMatrix for a better control over scaling. In case of a stereo camera,\n. newCameraMatrix is normally set to P1 or P2 computed by #stereoRectify .\n. \n. Also, this new camera is oriented differently in the coordinate space, according to R. That, for\n. example, helps to align two heads of a stereo camera so that the epipolar lines on both images\n. become horizontal and have the same y- coordinate (in case of a horizontally aligned stereo camera).\n. \n. The function actually builds the maps for the inverse mapping algorithm that is used by remap. That\n. is, for each pixel \\f$(u, v)\\f$ in the destination (corrected and rectified) image, the function\n. computes the corresponding coordinates in the source image (that is, in the original image from\n. camera). The following process is applied:\n. \\f[\n. \\begin{array}{l}\n. x \\leftarrow (u - {c'}_x)/{f'}_x \\\\\n. y \\leftarrow (v - {c'}_y)/{f'}_y \\\\\n. {[X\\,Y\\,W]} ^T \\leftarrow R^{-1}*[x \\, y \\, 1]^T \\\\\n. x' \\leftarrow X/W \\\\\n. y' \\leftarrow Y/W \\\\\n. r^2 \\leftarrow x'^2 + y'^2 \\\\\n. x'' \\leftarrow x' \\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\n. + 2p_1 x' y' + p_2(r^2 + 2 x'^2) + s_1 r^2 + s_2 r^4\\\\\n. y'' \\leftarrow y' \\frac{1 + k_1 r^2 + k_2 r^4 + k_3 r^6}{1 + k_4 r^2 + k_5 r^4 + k_6 r^6}\n. + p_1 (r^2 + 2 y'^2) + 2 p_2 x' y' + s_3 r^2 + s_4 r^4 \\\\\n. s\\vecthree{x'''}{y'''}{1} =\n. \\vecthreethree{R_{33}(\\tau_x, \\tau_y)}{0}{-R_{13}((\\tau_x, \\tau_y)}\n. {0}{R_{33}(\\tau_x, \\tau_y)}{-R_{23}(\\tau_x, \\tau_y)}\n. {0}{0}{1} R(\\tau_x, \\tau_y) \\vecthree{x''}{y''}{1}\\\\\n. map_x(u,v) \\leftarrow x''' f_x + c_x \\\\\n. map_y(u,v) \\leftarrow y''' f_y + c_y\n. \\end{array}\n. \\f]\n. where \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. are the distortion coefficients.\n. \n. In case of a stereo camera, this function is called twice: once for each camera head, after\n. stereoRectify, which in its turn is called after #stereoCalibrate. But if the stereo camera\n. was not calibrated, it is still possible to compute the rectification transformations directly from\n. the fundamental matrix using #stereoRectifyUncalibrated. For each camera, the function computes\n. homography H as the rectification transformation in a pixel domain, not a rotation matrix R in 3D\n. space. R can be computed from H as\n. \\f[\\texttt{R} = \\texttt{cameraMatrix} ^{-1} \\cdot \\texttt{H} \\cdot \\texttt{cameraMatrix}\\f]\n. where cameraMatrix can be chosen arbitrarily.\n. \n. @param cameraMatrix Input camera matrix \\f$A=\\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param R Optional rectification transformation in the object space (3x3 matrix). R1 or R2 ,\n. computed by #stereoRectify can be passed here. If the matrix is empty, the identity transformation\n. is assumed. In cvInitUndistortMap R assumed to be an identity matrix.\n. @param newCameraMatrix New camera matrix \\f$A'=\\vecthreethree{f_x'}{0}{c_x'}{0}{f_y'}{c_y'}{0}{0}{1}\\f$.\n. @param size Undistorted image size.\n. @param m1type Type of the first output map that can be CV_32FC1, CV_32FC2 or CV_16SC2, see #convertMaps\n. @param map1 The first output map.\n. @param map2 The second output map." - ... - -def inpaint(src: Mat, inpaintMask, inpaintRadius, flags: int, dts: Mat = ...) -> typing.Any: - 'inpaint(src, inpaintMask, inpaintRadius, flags[, dst]) -> dst\n. @brief Restores the selected region in an image using the region neighborhood.\n. \n. @param src Input 8-bit, 16-bit unsigned or 32-bit float 1-channel or 8-bit 3-channel image.\n. @param inpaintMask Inpainting mask, 8-bit 1-channel image. Non-zero pixels indicate the area that\n. needs to be inpainted.\n. @param dst Output image with the same size and type as src .\n. @param inpaintRadius Radius of a circular neighborhood of each point inpainted that is considered\n. by the algorithm.\n. @param flags Inpainting method that could be cv::INPAINT_NS or cv::INPAINT_TELEA\n. \n. The function reconstructs the selected image area from the pixel near the area boundary. The\n. function may be used to remove dust and scratches from a scanned photo, or to remove undesirable\n. objects from still images or video. See for more details.\n. \n. @note\n. - An example using the inpainting technique can be found at\n. opencv_source_code/samples/cpp/inpaint.cpp\n. - (Python) An example using the inpainting technique can be found at\n. opencv_source_code/samples/python/inpaint.py' - ... - -def insertChannel(src: Mat, dts: Mat, coi) -> typing.Any: - 'insertChannel(src, dst, coi) -> dst\n. @brief Inserts a single channel to dst (coi is 0-based index)\n. @param src input array\n. @param dst output array\n. @param coi index of channel for insertion\n. @sa mixChannels, merge' - ... - -def integral(src: Mat, sum=..., sdepth=...) -> typing.Any: - 'integral(src[, sum[, sdepth]]) -> sum\n. @overload' - ... - -def integral2(src: Mat, sum=..., sqsum=..., sdepth=..., sqdepth=...) -> typing.Any: - 'integral2(src[, sum[, sqsum[, sdepth[, sqdepth]]]]) -> sum, sqsum\n. @overload' - ... - -def integral3(src: Mat, sum=..., sqsum=..., tilted=..., sdepth=..., sqdepth=...) -> typing.Any: - 'integral3(src[, sum[, sqsum[, tilted[, sdepth[, sqdepth]]]]]) -> sum, sqsum, tilted\n. @brief Calculates the integral of an image.\n. \n. The function calculates one or more integral images for the source image as follows:\n. \n. \\f[\\texttt{sum} (X,Y) = \\sum _{x typing.Any: - "intersectConvexConvex(_p1, _p2[, _p12[, handleNested]]) -> retval, _p12\n. @brief Finds intersection of two convex polygons\n. \n. @param _p1 First polygon\n. @param _p2 Second polygon\n. @param _p12 Output polygon describing the intersecting area\n. @param handleNested When true, an intersection is found if one of the polygons is fully enclosed in the other.\n. When false, no intersection is found. If the polygons share a side or the vertex of one polygon lies on an edge\n. of the other, they are not considered nested and an intersection will be found regardless of the value of handleNested.\n. \n. @returns Absolute value of area of intersecting polygon\n. \n. @note intersectConvexConvex doesn't confirm that both polygons are convex and will return invalid results if they aren't." - ... - -def invert(src: Mat, dts: Mat = ..., flags: int = ...) -> typing.Any: - 'invert(src[, dst[, flags]]) -> retval, dst\n. @brief Finds the inverse or pseudo-inverse of a matrix.\n. \n. The function cv::invert inverts the matrix src and stores the result in dst\n. . When the matrix src is singular or non-square, the function calculates\n. the pseudo-inverse matrix (the dst matrix) so that norm(src\\*dst - I) is\n. minimal, where I is an identity matrix.\n. \n. In case of the #DECOMP_LU method, the function returns non-zero value if\n. the inverse has been successfully calculated and 0 if src is singular.\n. \n. In case of the #DECOMP_SVD method, the function returns the inverse\n. condition number of src (the ratio of the smallest singular value to the\n. largest singular value) and 0 if src is singular. The SVD method\n. calculates a pseudo-inverse matrix if src is singular.\n. \n. Similarly to #DECOMP_LU, the method #DECOMP_CHOLESKY works only with\n. non-singular square matrices that should also be symmetrical and\n. positively defined. In this case, the function stores the inverted\n. matrix in dst and returns non-zero. Otherwise, it returns 0.\n. \n. @param src input floating-point M x N matrix.\n. @param dst output matrix of N x M size and the same type as src.\n. @param flags inversion method (cv::DecompTypes)\n. @sa solve, SVD' - ... - -def invertAffineTransform(M, iM=...) -> typing.Any: - 'invertAffineTransform(M[, iM]) -> iM\n. @brief Inverts an affine transformation.\n. \n. The function computes an inverse affine transformation represented by \\f$2 \\times 3\\f$ matrix M:\n. \n. \\f[\\begin{bmatrix} a_{11} & a_{12} & b_1 \\\\ a_{21} & a_{22} & b_2 \\end{bmatrix}\\f]\n. \n. The result is also a \\f$2 \\times 3\\f$ matrix of the same type as M.\n. \n. @param M Original affine transformation.\n. @param iM Output reverse affine transformation.' - ... - -def isContourConvex(contour) -> typing.Any: - 'isContourConvex(contour) -> retval\n. @brief Tests a contour convexity.\n. \n. The function tests whether the input contour is convex or not. The contour must be simple, that is,\n. without self-intersections. Otherwise, the function output is undefined.\n. \n. @param contour Input vector of 2D points, stored in std::vector\\<\\> or Mat' - ... - -def kmeans(data, K, bestLabels, criteria, attempts, flags: int, centers=...) -> typing.Any: - 'kmeans(data, K, bestLabels, criteria, attempts, flags[, centers]) -> retval, bestLabels, centers\n. @brief Finds centers of clusters and groups input samples around the clusters.\n. \n. The function kmeans implements a k-means algorithm that finds the centers of cluster_count clusters\n. and groups the input samples around the clusters. As an output, \\f$\\texttt{bestLabels}_i\\f$ contains a\n. 0-based cluster index for the sample stored in the \\f$i^{th}\\f$ row of the samples matrix.\n. \n. @note\n. - (Python) An example on K-means clustering can be found at\n. opencv_source_code/samples/python/kmeans.py\n. @param data Data for clustering. An array of N-Dimensional points with float coordinates is needed.\n. Examples of this array can be:\n. - Mat points(count, 2, CV_32F);\n. - Mat points(count, 1, CV_32FC2);\n. - Mat points(1, count, CV_32FC2);\n. - std::vector\\ points(sampleCount);\n. @param K Number of clusters to split the set by.\n. @param bestLabels Input/output integer array that stores the cluster indices for every sample.\n. @param criteria The algorithm termination criteria, that is, the maximum number of iterations and/or\n. the desired accuracy. The accuracy is specified as criteria.epsilon. As soon as each of the cluster\n. centers moves by less than criteria.epsilon on some iteration, the algorithm stops.\n. @param attempts Flag to specify the number of times the algorithm is executed using different\n. initial labellings. The algorithm returns the labels that yield the best compactness (see the last\n. function parameter).\n. @param flags Flag that can take values of cv::KmeansFlags\n. @param centers Output matrix of the cluster centers, one row per each cluster center.\n. @return The function returns the compactness measure that is computed as\n. \\f[\\sum _i \\| \\texttt{samples} _i - \\texttt{centers} _{ \\texttt{labels} _i} \\| ^2\\f]\n. after every attempt. The best (minimum) value is chosen and the corresponding labels and the\n. compactness value are returned by the function. Basically, you can use only the core of the\n. function, set the number of attempts to 1, initialize labels each time using a custom algorithm,\n. pass them with the ( flags = #KMEANS_USE_INITIAL_LABELS ) flag, and then choose the best\n. (most-compact) clustering.' - ... - -def line(img: Mat, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: - 'line(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a line segment connecting two points.\n. \n. The function line draws the line segment between pt1 and pt2 points in the image. The line is\n. clipped by the image boundaries. For non-antialiased lines with integer coordinates, the 8-connected\n. or 4-connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased\n. lines are drawn using Gaussian filtering.\n. \n. @param img Image.\n. @param pt1 First point of the line segment.\n. @param pt2 Second point of the line segment.\n. @param color Line color.\n. @param thickness Line thickness.\n. @param lineType Type of the line. See #LineTypes.\n. @param shift Number of fractional bits in the point coordinates.' - ... - -def linearPolar(src: Mat, center, maxRadius, flags: int, dts: Mat = ...) -> typing.Any: - 'linearPolar(src, center, maxRadius, flags[, dst]) -> dst\n. @brief Remaps an image to polar coordinates space.\n. \n. @deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags)\n. \n. @internal\n. Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image c)"):\n. \\f[\\begin{array}{l}\n. dst( \\rho , \\phi ) = src(x,y) \\\\\n. dst.size() \\leftarrow src.size()\n. \\end{array}\\f]\n. \n. where\n. \\f[\\begin{array}{l}\n. I = (dx,dy) = (x - center.x,y - center.y) \\\\\n. \\rho = Kmag \\cdot \\texttt{magnitude} (I) ,\\\\\n. \\phi = angle \\cdot \\texttt{angle} (I)\n. \\end{array}\\f]\n. \n. and\n. \\f[\\begin{array}{l}\n. Kx = src.cols / maxRadius \\\\\n. Ky = src.rows / 2\\Pi\n. \\end{array}\\f]\n. \n. \n. @param src Source image\n. @param dst Destination image. It will have same size and type as src.\n. @param center The transformation center;\n. @param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.\n. @param flags A combination of interpolation methods, see #InterpolationFlags\n. \n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. \n. @sa cv::logPolar\n. @endinternal' - ... - -def log(src: Mat, dts: Mat = ...) -> typing.Any: - 'log(src[, dst]) -> dst\n. @brief Calculates the natural logarithm of every array element.\n. \n. The function cv::log calculates the natural logarithm of every element of the input array:\n. \\f[\\texttt{dst} (I) = \\log (\\texttt{src}(I)) \\f]\n. \n. Output on zero, negative and special (NaN, Inf) values is undefined.\n. \n. @param src input array.\n. @param dst output array of the same size and type as src .\n. @sa exp, cartToPolar, polarToCart, phase, pow, sqrt, magnitude' - ... - -def logPolar(src: Mat, center, M, flags: int, dts: Mat = ...) -> typing.Any: - 'logPolar(src, center, M, flags[, dst]) -> dst\n. @brief Remaps an image to semilog-polar coordinates space.\n. \n. @deprecated This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags+WARP_POLAR_LOG);\n. \n. @internal\n. Transform the source image using the following transformation (See @ref polar_remaps_reference_image "Polar remaps reference image d)"):\n. \\f[\\begin{array}{l}\n. dst( \\rho , \\phi ) = src(x,y) \\\\\n. dst.size() \\leftarrow src.size()\n. \\end{array}\\f]\n. \n. where\n. \\f[\\begin{array}{l}\n. I = (dx,dy) = (x - center.x,y - center.y) \\\\\n. \\rho = M \\cdot log_e(\\texttt{magnitude} (I)) ,\\\\\n. \\phi = Kangle \\cdot \\texttt{angle} (I) \\\\\n. \\end{array}\\f]\n. \n. and\n. \\f[\\begin{array}{l}\n. M = src.cols / log_e(maxRadius) \\\\\n. Kangle = src.rows / 2\\Pi \\\\\n. \\end{array}\\f]\n. \n. The function emulates the human "foveal" vision and can be used for fast scale and\n. rotation-invariant template matching, for object tracking and so forth.\n. @param src Source image\n. @param dst Destination image. It will have same size and type as src.\n. @param center The transformation center; where the output precision is maximal\n. @param M Magnitude scale parameter. It determines the radius of the bounding circle to transform too.\n. @param flags A combination of interpolation methods, see #InterpolationFlags\n. \n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. \n. @sa cv::linearPolar\n. @endinternal' - ... - -def magnitude(x, y, magnitude=...) -> typing.Any: - 'magnitude(x, y[, magnitude]) -> magnitude\n. @brief Calculates the magnitude of 2D vectors.\n. \n. The function cv::magnitude calculates the magnitude of 2D vectors formed\n. from the corresponding elements of x and y arrays:\n. \\f[\\texttt{dst} (I) = \\sqrt{\\texttt{x}(I)^2 + \\texttt{y}(I)^2}\\f]\n. @param x floating-point array of x-coordinates of the vectors.\n. @param y floating-point array of y-coordinates of the vectors; it must\n. have the same size as x.\n. @param magnitude output array of the same size and type as x.\n. @sa cartToPolar, polarToCart, phase, sqrt' - ... - -def matMulDeriv(A, B, dABdA=..., dABdB=...) -> typing.Any: - 'matMulDeriv(A, B[, dABdA[, dABdB]]) -> dABdA, dABdB\n. @brief Computes partial derivatives of the matrix product for each multiplied matrix.\n. \n. @param A First multiplied matrix.\n. @param B Second multiplied matrix.\n. @param dABdA First output derivative matrix d(A\\*B)/dA of size\n. \\f$\\texttt{A.rows*B.cols} \\times {A.rows*A.cols}\\f$ .\n. @param dABdB Second output derivative matrix d(A\\*B)/dB of size\n. \\f$\\texttt{A.rows*B.cols} \\times {B.rows*B.cols}\\f$ .\n. \n. The function computes partial derivatives of the elements of the matrix product \\f$A*B\\f$ with regard to\n. the elements of each of the two input matrices. The function is used to compute the Jacobian\n. matrices in stereoCalibrate but can also be used in any other similar optimization function.' - ... - -def matchShapes(contour1, contour2, method: int, parameter) -> typing.Any: - 'matchShapes(contour1, contour2, method, parameter) -> retval\n. @brief Compares two shapes.\n. \n. The function compares two shapes. All three implemented methods use the Hu invariants (see #HuMoments)\n. \n. @param contour1 First contour or grayscale image.\n. @param contour2 Second contour or grayscale image.\n. @param method Comparison method, see #ShapeMatchModes\n. @param parameter Method-specific parameter (not supported now).' - ... - -def matchTemplate(image: Mat, templ: Mat, method: int, result: Mat = ..., mask: typing.Optional[Mat] = ...) -> Mat: - "matchTemplate(image, templ, method[, result[, mask]]) -> result\n. @brief Compares a template against overlapped image regions.\n. \n. The function slides through image , compares the overlapped patches of size \\f$w \\times h\\f$ against\n. templ using the specified method and stores the comparison results in result . #TemplateMatchModes\n. describes the formulae for the available comparison methods ( \\f$I\\f$ denotes image, \\f$T\\f$\n. template, \\f$R\\f$ result, \\f$M\\f$ the optional mask ). The summation is done over template and/or\n. the image patch: \\f$x' = 0...w-1, y' = 0...h-1\\f$\n. \n. After the function finishes the comparison, the best matches can be found as global minimums (when\n. #TM_SQDIFF was used) or maximums (when #TM_CCORR or #TM_CCOEFF was used) using the\n. #minMaxLoc function. In case of a color image, template summation in the numerator and each sum in\n. the denominator is done over all of the channels and separate mean values are used for each channel.\n. That is, the function can take a color template and a color image. The result will still be a\n. single-channel image, which is easier to analyze.\n. \n. @param image Image where the search is running. It must be 8-bit or 32-bit floating-point.\n. @param templ Searched template. It must be not greater than the source image and have the same\n. data type.\n. @param result Map of comparison results. It must be single-channel 32-bit floating-point. If image\n. is \\f$W \\times H\\f$ and templ is \\f$w \\times h\\f$ , then result is \\f$(W-w+1) \\times (H-h+1)\\f$ .\n. @param method Parameter specifying the comparison method, see #TemplateMatchModes\n. @param mask Optional mask. It must have the same size as templ. It must either have the same number\n. of channels as template or only one channel, which is then used for all template and\n. image channels. If the data type is #CV_8U, the mask is interpreted as a binary mask,\n. meaning only elements where mask is nonzero are used and are kept unchanged independent\n. of the actual mask value (weight equals 1). For data tpye #CV_32F, the mask values are\n. used as weights. The exact formulas are documented in #TemplateMatchModes." - ... - -def max(src1: Mat, src2: Mat, dts: Mat = ...) -> typing.Any: - 'max(src1, src2[, dst]) -> dst\n. @brief Calculates per-element maximum of two arrays or an array and a scalar.\n. \n. The function cv::max calculates the per-element maximum of two arrays:\n. \\f[\\texttt{dst} (I)= \\max ( \\texttt{src1} (I), \\texttt{src2} (I))\\f]\n. or array and a scalar:\n. \\f[\\texttt{dst} (I)= \\max ( \\texttt{src1} (I), \\texttt{value} )\\f]\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1 .\n. @param dst output array of the same size and type as src1.\n. @sa min, compare, inRange, minMaxLoc, @ref MatrixExpressions' - ... - -def mean(src: Mat, mask: Mat = ...) -> typing.Any: - "mean(src[, mask]) -> retval\n. @brief Calculates an average (mean) of array elements.\n. \n. The function cv::mean calculates the mean value M of array elements,\n. independently for each channel, and return it:\n. \\f[\\begin{array}{l} N = \\sum _{I: \\; \\texttt{mask} (I) \\ne 0} 1 \\\\ M_c = \\left ( \\sum _{I: \\; \\texttt{mask} (I) \\ne 0}{ \\texttt{mtx} (I)_c} \\right )/N \\end{array}\\f]\n. When all the mask elements are 0's, the function returns Scalar::all(0)\n. @param src input array that should have from 1 to 4 channels so that the result can be stored in\n. Scalar_ .\n. @param mask optional operation mask.\n. @sa countNonZero, meanStdDev, norm, minMaxLoc" - ... - -def meanShift(probImage, window, criteria) -> typing.Any: - 'meanShift(probImage, window, criteria) -> retval, window\n. @brief Finds an object on a back projection image.\n. \n. @param probImage Back projection of the object histogram. See calcBackProject for details.\n. @param window Initial search window.\n. @param criteria Stop criteria for the iterative search algorithm.\n. returns\n. : Number of iterations CAMSHIFT took to converge.\n. The function implements the iterative object search algorithm. It takes the input back projection of\n. an object and the initial position. The mass center in window of the back projection image is\n. computed and the search window center shifts to the mass center. The procedure is repeated until the\n. specified number of iterations criteria.maxCount is done or until the window center shifts by less\n. than criteria.epsilon. The algorithm is used inside CamShift and, unlike CamShift , the search\n. window size or orientation do not change during the search. You can simply pass the output of\n. calcBackProject to this function. But better results can be obtained if you pre-filter the back\n. projection and remove the noise. For example, you can do this by retrieving connected components\n. with findContours , throwing away contours with small area ( contourArea ), and rendering the\n. remaining contours with drawContours.' - ... - -def meanStdDev(src: Mat, mean=..., stddev=..., mask: Mat = ...) -> typing.Any: - "meanStdDev(src[, mean[, stddev[, mask]]]) -> mean, stddev\n. Calculates a mean and standard deviation of array elements.\n. \n. The function cv::meanStdDev calculates the mean and the standard deviation M\n. of array elements independently for each channel and returns it via the\n. output parameters:\n. \\f[\\begin{array}{l} N = \\sum _{I, \\texttt{mask} (I) \\ne 0} 1 \\\\ \\texttt{mean} _c = \\frac{\\sum_{ I: \\; \\texttt{mask}(I) \\ne 0} \\texttt{src} (I)_c}{N} \\\\ \\texttt{stddev} _c = \\sqrt{\\frac{\\sum_{ I: \\; \\texttt{mask}(I) \\ne 0} \\left ( \\texttt{src} (I)_c - \\texttt{mean} _c \\right )^2}{N}} \\end{array}\\f]\n. When all the mask elements are 0's, the function returns\n. mean=stddev=Scalar::all(0).\n. @note The calculated standard deviation is only the diagonal of the\n. complete normalized covariance matrix. If the full matrix is needed, you\n. can reshape the multi-channel array M x N to the single-channel array\n. M\\*N x mtx.channels() (only possible when the matrix is continuous) and\n. then pass the matrix to calcCovarMatrix .\n. @param src input array that should have from 1 to 4 channels so that the results can be stored in\n. Scalar_ 's.\n. @param mean output parameter: calculated mean value.\n. @param stddev output parameter: calculated standard deviation.\n. @param mask optional operation mask.\n. @sa countNonZero, mean, norm, minMaxLoc, calcCovarMatrix" - ... - -def medianBlur(src: Mat, ksize, dts: Mat = ...) -> typing.Any: - 'medianBlur(src, ksize[, dst]) -> dst\n. @brief Blurs an image using the median filter.\n. \n. The function smoothes an image using the median filter with the \\f$\\texttt{ksize} \\times\n. \\texttt{ksize}\\f$ aperture. Each channel of a multi-channel image is processed independently.\n. In-place operation is supported.\n. \n. @note The median filter uses #BORDER_REPLICATE internally to cope with border pixels, see #BorderTypes\n. \n. @param src input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be\n. CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U.\n. @param dst destination array of the same size and type as src.\n. @param ksize aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ...\n. @sa bilateralFilter, blur, boxFilter, GaussianBlur' - ... - -def merge(mv, dts: Mat = ...) -> typing.Any: - 'merge(mv[, dst]) -> dst\n. @overload\n. @param mv input vector of matrices to be merged; all the matrices in mv must have the same\n. size and the same depth.\n. @param dst output array of the same size and the same depth as mv[0]; The number of channels will\n. be the total number of channels in the matrix array.' - ... - -def min(src1: Mat, src2: Mat, dts: Mat = ...) -> typing.Any: - 'min(src1, src2[, dst]) -> dst\n. @brief Calculates per-element minimum of two arrays or an array and a scalar.\n. \n. The function cv::min calculates the per-element minimum of two arrays:\n. \\f[\\texttt{dst} (I)= \\min ( \\texttt{src1} (I), \\texttt{src2} (I))\\f]\n. or array and a scalar:\n. \\f[\\texttt{dst} (I)= \\min ( \\texttt{src1} (I), \\texttt{value} )\\f]\n. @param src1 first input array.\n. @param src2 second input array of the same size and type as src1.\n. @param dst output array of the same size and type as src1.\n. @sa max, compare, inRange, minMaxLoc' - ... - -def minAreaRect(points) -> typing.Any: - 'minAreaRect(points) -> retval\n. @brief Finds a rotated rectangle of the minimum area enclosing the input 2D point set.\n. \n. The function calculates and returns the minimum-area bounding rectangle (possibly rotated) for a\n. specified point set. Developer should keep in mind that the returned RotatedRect can contain negative\n. indices when data is close to the containing Mat element boundary.\n. \n. @param points Input vector of 2D points, stored in std::vector\\<\\> or Mat' - ... - -def minEnclosingCircle(points) -> typing.Any: - 'minEnclosingCircle(points) -> center, radius\n. @brief Finds a circle of the minimum area enclosing a 2D point set.\n. \n. The function finds the minimal enclosing circle of a 2D point set using an iterative algorithm.\n. \n. @param points Input vector of 2D points, stored in std::vector\\<\\> or Mat\n. @param center Output center of the circle.\n. @param radius Output radius of the circle.' - ... - -def minEnclosingTriangle(points, triangle=...) -> typing.Any: - "minEnclosingTriangle(points[, triangle]) -> retval, triangle\n. @brief Finds a triangle of minimum area enclosing a 2D point set and returns its area.\n. \n. The function finds a triangle of minimum area enclosing the given set of 2D points and returns its\n. area. The output for a given 2D point set is shown in the image below. 2D points are depicted in\n. *red* and the enclosing triangle in *yellow*.\n. \n. ![Sample output of the minimum enclosing triangle function](pics/minenclosingtriangle.png)\n. \n. The implementation of the algorithm is based on O'Rourke's @cite ORourke86 and Klee and Laskowski's\n. @cite KleeLaskowski85 papers. O'Rourke provides a \\f$\\theta(n)\\f$ algorithm for finding the minimal\n. enclosing triangle of a 2D convex polygon with n vertices. Since the #minEnclosingTriangle function\n. takes a 2D point set as input an additional preprocessing step of computing the convex hull of the\n. 2D point set is required. The complexity of the #convexHull function is \\f$O(n log(n))\\f$ which is higher\n. than \\f$\\theta(n)\\f$. Thus the overall complexity of the function is \\f$O(n log(n))\\f$.\n. \n. @param points Input vector of 2D points with depth CV_32S or CV_32F, stored in std::vector\\<\\> or Mat\n. @param triangle Output vector of three 2D points defining the vertices of the triangle. The depth\n. of the OutputArray must be CV_32F." - ... - -def minMaxLoc(src: Mat, mask: Mat = ...) -> typing.Tuple[float, float, typing.Tuple[int, int], typing.Tuple[int, int]]: - 'minMaxLoc(src[, mask]) -> minVal, maxVal, minLoc, maxLoc\n. @brief Finds the global minimum and maximum in an array.\n. \n. The function cv::minMaxLoc finds the minimum and maximum element values and their positions. The\n. extremums are searched across the whole array or, if mask is not an empty array, in the specified\n. array region.\n. \n. The function do not work with multi-channel arrays. If you need to find minimum or maximum\n. elements across all the channels, use Mat::reshape first to reinterpret the array as\n. single-channel. Or you may extract the particular channel using either extractImageCOI , or\n. mixChannels , or split .\n. @param src input single-channel array.\n. @param minVal pointer to the returned minimum value; NULL is used if not required.\n. @param maxVal pointer to the returned maximum value; NULL is used if not required.\n. @param minLoc pointer to the returned minimum location (in 2D case); NULL is used if not required.\n. @param maxLoc pointer to the returned maximum location (in 2D case); NULL is used if not required.\n. @param mask optional mask used to select a sub-array.\n. @sa max, min, compare, inRange, extractImageCOI, mixChannels, split, Mat::reshape' - ... - -def mixChannels(src: Mat, dts: Mat, fromTo) -> typing.Any: - 'mixChannels(src, dst, fromTo) -> dst\n. @overload\n. @param src input array or vector of matrices; all of the matrices must have the same size and the\n. same depth.\n. @param dst output array or vector of matrices; all the matrices **must be allocated**; their size and\n. depth must be the same as in src[0].\n. @param fromTo array of index pairs specifying which channels are copied and where; fromTo[k\\*2] is\n. a 0-based index of the input channel in src, fromTo[k\\*2+1] is an index of the output channel in\n. dst; the continuous channel numbering is used: the first input image channels are indexed from 0 to\n. src[0].channels()-1, the second input image channels are indexed from src[0].channels() to\n. src[0].channels() + src[1].channels()-1, and so on, the same scheme is used for the output image\n. channels; as a special case, when fromTo[k\\*2] is negative, the corresponding output channel is\n. filled with zero .' - ... - -ml_ANN_MLP = _mod_cv2.ml_ANN_MLP -ml_Boost = _mod_cv2.ml_Boost -ml_DTrees = _mod_cv2.ml_DTrees -ml_EM = _mod_cv2.ml_EM -ml_KNearest = _mod_cv2.ml_KNearest -ml_LogisticRegression = _mod_cv2.ml_LogisticRegression -ml_NormalBayesClassifier = _mod_cv2.ml_NormalBayesClassifier -ml_ParamGrid = _mod_cv2.ml_ParamGrid -ml_RTrees = _mod_cv2.ml_RTrees -ml_SVM = _mod_cv2.ml_SVM -ml_SVMSGD = _mod_cv2.ml_SVMSGD -ml_StatModel = _mod_cv2.ml_StatModel -ml_TrainData = _mod_cv2.ml_TrainData -def moments(array, binaryImage=...) -> typing.Any: - "moments(array[, binaryImage]) -> retval\n. @brief Calculates all of the moments up to the third order of a polygon or rasterized shape.\n. \n. The function computes moments, up to the 3rd order, of a vector shape or a rasterized shape. The\n. results are returned in the structure cv::Moments.\n. \n. @param array Raster image (single-channel, 8-bit or floating-point 2D array) or an array (\n. \\f$1 \\times N\\f$ or \\f$N \\times 1\\f$ ) of 2D points (Point or Point2f ).\n. @param binaryImage If it is true, all non-zero image pixels are treated as 1's. The parameter is\n. used for images only.\n. @returns moments.\n. \n. @note Only applicable to contour moments calculations from Python bindings: Note that the numpy\n. type for the input array should be either np.int32 or np.float32.\n. \n. @sa contourArea, arcLength" - ... - -def morphologyEx(src: Mat, op, kernel, dts: Mat = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> typing.Any: - 'morphologyEx(src, op, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst\n. @brief Performs advanced morphological transformations.\n. \n. The function cv::morphologyEx can perform advanced morphological transformations using an erosion and dilation as\n. basic operations.\n. \n. Any of the operations can be done in-place. In case of multi-channel images, each channel is\n. processed independently.\n. \n. @param src Source image. The number of channels can be arbitrary. The depth should be one of\n. CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.\n. @param dst Destination image of the same size and type as source image.\n. @param op Type of a morphological operation, see #MorphTypes\n. @param kernel Structuring element. It can be created using #getStructuringElement.\n. @param anchor Anchor position with the kernel. Negative values mean that the anchor is at the\n. kernel center.\n. @param iterations Number of times erosion and dilation are applied.\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @param borderValue Border value in case of a constant border. The default value has a special\n. meaning.\n. @sa dilate, erode, getStructuringElement\n. @note The number of iterations is the number of times erosion or dilatation operation will be applied.\n. For instance, an opening operation (#MORPH_OPEN) with two iterations is equivalent to apply\n. successively: erode -> erode -> dilate -> dilate (and not erode -> dilate -> erode -> dilate).' - ... - -def moveWindow(winname, x, y) -> typing.Any: - 'moveWindow(winname, x, y) -> None\n. @brief Moves window to the specified position\n. \n. @param winname Name of the window.\n. @param x The new x-coordinate of the window.\n. @param y The new y-coordinate of the window.' - ... - -def mulSpectrums(a, b, flags: int, c=..., conjB=...) -> typing.Any: - 'mulSpectrums(a, b, flags[, c[, conjB]]) -> c\n. @brief Performs the per-element multiplication of two Fourier spectrums.\n. \n. The function cv::mulSpectrums performs the per-element multiplication of the two CCS-packed or complex\n. matrices that are results of a real or complex Fourier transform.\n. \n. The function, together with dft and idft , may be used to calculate convolution (pass conjB=false )\n. or correlation (pass conjB=true ) of two arrays rapidly. When the arrays are complex, they are\n. simply multiplied (per element) with an optional conjugation of the second-array elements. When the\n. arrays are real, they are assumed to be CCS-packed (see dft for details).\n. @param a first input array.\n. @param b second input array of the same size and type as src1 .\n. @param c output array of the same size and type as src1 .\n. @param flags operation flags; currently, the only supported flag is cv::DFT_ROWS, which indicates that\n. each row of src1 and src2 is an independent 1D Fourier spectrum. If you do not want to use this flag, then simply add a `0` as value.\n. @param conjB optional flag that conjugates the second input array before the multiplication (true)\n. or not (false).' - ... - -def mulTransposed(src: Mat, aTa, dts: Mat = ..., delta=..., scale=..., dtype=...) -> typing.Any: - 'mulTransposed(src, aTa[, dst[, delta[, scale[, dtype]]]]) -> dst\n. @brief Calculates the product of a matrix and its transposition.\n. \n. The function cv::mulTransposed calculates the product of src and its\n. transposition:\n. \\f[\\texttt{dst} = \\texttt{scale} ( \\texttt{src} - \\texttt{delta} )^T ( \\texttt{src} - \\texttt{delta} )\\f]\n. if aTa=true , and\n. \\f[\\texttt{dst} = \\texttt{scale} ( \\texttt{src} - \\texttt{delta} ) ( \\texttt{src} - \\texttt{delta} )^T\\f]\n. otherwise. The function is used to calculate the covariance matrix. With\n. zero delta, it can be used as a faster substitute for general matrix\n. product A\\*B when B=A\'\n. @param src input single-channel matrix. Note that unlike gemm, the\n. function can multiply not only floating-point matrices.\n. @param dst output square matrix.\n. @param aTa Flag specifying the multiplication ordering. See the\n. description below.\n. @param delta Optional delta matrix subtracted from src before the\n. multiplication. When the matrix is empty ( delta=noArray() ), it is\n. assumed to be zero, that is, nothing is subtracted. If it has the same\n. size as src , it is simply subtracted. Otherwise, it is "repeated" (see\n. repeat ) to cover the full src and then subtracted. Type of the delta\n. matrix, when it is not empty, must be the same as the type of created\n. output matrix. See the dtype parameter description below.\n. @param scale Optional scale factor for the matrix product.\n. @param dtype Optional type of the output matrix. When it is negative,\n. the output matrix will have the same type as src . Otherwise, it will be\n. type=CV_MAT_DEPTH(dtype) that should be either CV_32F or CV_64F .\n. @sa calcCovarMatrix, gemm, repeat, reduce' - ... - -def multiply(src1: Mat, src2: Mat, dts: Mat = ..., scale=..., dtype=...) -> typing.Any: - 'multiply(src1, src2[, dst[, scale[, dtype]]]) -> dst\n. @brief Calculates the per-element scaled product of two arrays.\n. \n. The function multiply calculates the per-element product of two arrays:\n. \n. \\f[\\texttt{dst} (I)= \\texttt{saturate} ( \\texttt{scale} \\cdot \\texttt{src1} (I) \\cdot \\texttt{src2} (I))\\f]\n. \n. There is also a @ref MatrixExpressions -friendly variant of the first function. See Mat::mul .\n. \n. For a not-per-element matrix product, see gemm .\n. \n. @note Saturation is not applied when the output array has the depth\n. CV_32S. You may even get result of an incorrect sign in the case of\n. overflow.\n. @param src1 first input array.\n. @param src2 second input array of the same size and the same type as src1.\n. @param dst output array of the same size and type as src1.\n. @param scale optional scale factor.\n. @param dtype optional depth of the output array\n. @sa add, subtract, divide, scaleAdd, addWeighted, accumulate, accumulateProduct, accumulateSquare,\n. Mat::convertTo' - ... - -def namedWindow(winname, flags: int = ...) -> typing.Any: - 'namedWindow(winname[, flags]) -> None\n. @brief Creates a window.\n. \n. The function namedWindow creates a window that can be used as a placeholder for images and\n. trackbars. Created windows are referred to by their names.\n. \n. If a window with the same name already exists, the function does nothing.\n. \n. You can call cv::destroyWindow or cv::destroyAllWindows to close the window and de-allocate any associated\n. memory usage. For a simple program, you do not really have to call these functions because all the\n. resources and windows of the application are closed automatically by the operating system upon exit.\n. \n. @note\n. \n. Qt backend supports additional flags:\n. - **WINDOW_NORMAL or WINDOW_AUTOSIZE:** WINDOW_NORMAL enables you to resize the\n. window, whereas WINDOW_AUTOSIZE adjusts automatically the window size to fit the\n. displayed image (see imshow ), and you cannot change the window size manually.\n. - **WINDOW_FREERATIO or WINDOW_KEEPRATIO:** WINDOW_FREERATIO adjusts the image\n. with no respect to its ratio, whereas WINDOW_KEEPRATIO keeps the image ratio.\n. - **WINDOW_GUI_NORMAL or WINDOW_GUI_EXPANDED:** WINDOW_GUI_NORMAL is the old way to draw the window\n. without statusbar and toolbar, whereas WINDOW_GUI_EXPANDED is a new enhanced GUI.\n. By default, flags == WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED\n. \n. @param winname Name of the window in the window caption that may be used as a window identifier.\n. @param flags Flags of the window. The supported flags are: (cv::WindowFlags)' - ... - -def norm(src1: Mat, src2: Mat, normType: int = ..., mask: typing.Optional[Mat] = ...) -> float: - 'norm(src1, src2[, normType[, mask]]) -> retval\n. @brief Calculates the absolute norm of an array.\n. \n. This version of #norm calculates the absolute norm of src1. The type of norm to calculate is specified using #NormTypes.\n. \n. As example for one array consider the function \\f$r(x)= \\begin{pmatrix} x \\\\ 1-x \\end{pmatrix}, x \\in [-1;1]\\f$.\n. The \\f$ L_{1}, L_{2} \\f$ and \\f$ L_{\\infty} \\f$ norm for the sample value \\f$r(-1) = \\begin{pmatrix} -1 \\\\ 2 \\end{pmatrix}\\f$\n. is calculated as follows\n. \\f{align*}\n. \\| r(-1) \\|_{L_1} &= |-1| + |2| = 3 \\\\\n. \\| r(-1) \\|_{L_2} &= \\sqrt{(-1)^{2} + (2)^{2}} = \\sqrt{5} \\\\\n. \\| r(-1) \\|_{L_\\infty} &= \\max(|-1|,|2|) = 2\n. \\f}\n. and for \\f$r(0.5) = \\begin{pmatrix} 0.5 \\\\ 0.5 \\end{pmatrix}\\f$ the calculation is\n. \\f{align*}\n. \\| r(0.5) \\|_{L_1} &= |0.5| + |0.5| = 1 \\\\\n. \\| r(0.5) \\|_{L_2} &= \\sqrt{(0.5)^{2} + (0.5)^{2}} = \\sqrt{0.5} \\\\\n. \\| r(0.5) \\|_{L_\\infty} &= \\max(|0.5|,|0.5|) = 0.5.\n. \\f}\n. The following graphic shows all values for the three norm functions \\f$\\| r(x) \\|_{L_1}, \\| r(x) \\|_{L_2}\\f$ and \\f$\\| r(x) \\|_{L_\\infty}\\f$.\n. It is notable that the \\f$ L_{1} \\f$ norm forms the upper and the \\f$ L_{\\infty} \\f$ norm forms the lower border for the example function \\f$ r(x) \\f$.\n. ![Graphs for the different norm functions from the above example](pics/NormTypes_OneArray_1-2-INF.png)\n. \n. When the mask parameter is specified and it is not empty, the norm is\n. \n. If normType is not specified, #NORM_L2 is used.\n. calculated only over the region specified by the mask.\n. \n. Multi-channel input arrays are treated as single-channel arrays, that is,\n. the results for all channels are combined.\n. \n. Hamming norms can only be calculated with CV_8U depth arrays.\n. \n. @param src1 first input array.\n. @param normType type of the norm (see #NormTypes).\n. @param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.\n\n\n\nnorm(src1, src2[, normType[, mask]]) -> retval\n. @brief Calculates an absolute difference norm or a relative difference norm.\n. \n. This version of cv::norm calculates the absolute difference norm\n. or the relative difference norm of arrays src1 and src2.\n. The type of norm to calculate is specified using #NormTypes.\n. \n. @param src1 first input array.\n. @param src2 second input array of the same size and the same type as src1.\n. @param normType type of the norm (see #NormTypes).\n. @param mask optional operation mask; it must have the same size as src1 and CV_8UC1 type.' - ... - -def normalize(src: Mat, dts: Mat, alpha=..., beta=..., normType: int = ..., dtype=..., mask: Mat = ...) -> Mat: - 'normalize(src, dst[, alpha[, beta[, normType[, dtype[, mask]]]]]) -> dst\n. @brief Normalizes the norm or value range of an array.\n. \n. The function cv::normalize normalizes scale and shift the input array elements so that\n. \\f[\\| \\texttt{dst} \\| _{L_p}= \\texttt{alpha}\\f]\n. (where p=Inf, 1 or 2) when normType=NORM_INF, NORM_L1, or NORM_L2, respectively; or so that\n. \\f[\\min _I \\texttt{dst} (I)= \\texttt{alpha} , \\, \\, \\max _I \\texttt{dst} (I)= \\texttt{beta}\\f]\n. \n. when normType=NORM_MINMAX (for dense arrays only). The optional mask specifies a sub-array to be\n. normalized. This means that the norm or min-n-max are calculated over the sub-array, and then this\n. sub-array is modified to be normalized. If you want to only use the mask to calculate the norm or\n. min-max but modify the whole array, you can use norm and Mat::convertTo.\n. \n. In case of sparse matrices, only the non-zero values are analyzed and transformed. Because of this,\n. the range transformation for sparse matrices is not allowed since it can shift the zero level.\n. \n. Possible usage with some positive example data:\n. @code{.cpp}\n. vector positiveData = { 2.0, 8.0, 10.0 };\n. vector normalizedData_l1, normalizedData_l2, normalizedData_inf, normalizedData_minmax;\n. \n. // Norm to probability (total count)\n. // sum(numbers) = 20.0\n. // 2.0 0.1 (2.0/20.0)\n. // 8.0 0.4 (8.0/20.0)\n. // 10.0 0.5 (10.0/20.0)\n. normalize(positiveData, normalizedData_l1, 1.0, 0.0, NORM_L1);\n. \n. // Norm to unit vector: ||positiveData|| = 1.0\n. // 2.0 0.15\n. // 8.0 0.62\n. // 10.0 0.77\n. normalize(positiveData, normalizedData_l2, 1.0, 0.0, NORM_L2);\n. \n. // Norm to max element\n. // 2.0 0.2 (2.0/10.0)\n. // 8.0 0.8 (8.0/10.0)\n. // 10.0 1.0 (10.0/10.0)\n. normalize(positiveData, normalizedData_inf, 1.0, 0.0, NORM_INF);\n. \n. // Norm to range [0.0;1.0]\n. // 2.0 0.0 (shift to left border)\n. // 8.0 0.75 (6.0/8.0)\n. // 10.0 1.0 (shift to right border)\n. normalize(positiveData, normalizedData_minmax, 1.0, 0.0, NORM_MINMAX);\n. @endcode\n. \n. @param src input array.\n. @param dst output array of the same size as src .\n. @param alpha norm value to normalize to or the lower range boundary in case of the range\n. normalization.\n. @param beta upper range boundary in case of the range normalization; it is not used for the norm\n. normalization.\n. @param normType normalization type (see cv::NormTypes).\n. @param dtype when negative, the output array has the same type as src; otherwise, it has the same\n. number of channels as src and the depth =CV_MAT_DEPTH(dtype).\n. @param mask optional operation mask.\n. @sa norm, Mat::convertTo, SparseMat::convertTo' - ... - -ocl_Device = _mod_cv2.ocl_Device -def patchNaNs(a, val=...) -> typing.Any: - "patchNaNs(a[, val]) -> a\n. @brief converts NaN's to the given number" - ... - -def pencilSketch(src: Mat, dts1: Mat = ..., dts2: Mat = ..., sigma_s=..., sigma_r=..., shade_factor=...) -> typing.Any: - 'pencilSketch(src[, dst1[, dst2[, sigma_s[, sigma_r[, shade_factor]]]]]) -> dst1, dst2\n. @brief Pencil-like non-photorealistic line drawing\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst1 Output 8-bit 1-channel image.\n. @param dst2 Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.\n. @param shade_factor %Range between 0 to 0.1.' - ... - -def perspectiveTransform(src: Mat, m, dts: Mat = ...) -> typing.Any: - "perspectiveTransform(src, m[, dst]) -> dst\n. @brief Performs the perspective matrix transformation of vectors.\n. \n. The function cv::perspectiveTransform transforms every element of src by\n. treating it as a 2D or 3D vector, in the following way:\n. \\f[(x, y, z) \\rightarrow (x'/w, y'/w, z'/w)\\f]\n. where\n. \\f[(x', y', z', w') = \\texttt{mat} \\cdot \\begin{bmatrix} x & y & z & 1 \\end{bmatrix}\\f]\n. and\n. \\f[w = \\fork{w'}{if \\(w' \\ne 0\\)}{\\infty}{otherwise}\\f]\n. \n. Here a 3D vector transformation is shown. In case of a 2D vector\n. transformation, the z component is omitted.\n. \n. @note The function transforms a sparse set of 2D or 3D vectors. If you\n. want to transform an image using perspective transformation, use\n. warpPerspective . If you have an inverse problem, that is, you want to\n. compute the most probable perspective transformation out of several\n. pairs of corresponding points, you can use getPerspectiveTransform or\n. findHomography .\n. @param src input two-channel or three-channel floating-point array; each\n. element is a 2D/3D vector to be transformed.\n. @param dst output array of the same size and type as src.\n. @param m 3x3 or 4x4 floating-point transformation matrix.\n. @sa transform, warpPerspective, getPerspectiveTransform, findHomography" - ... - -def phase(x, y, angle=..., angleInDegrees=...) -> typing.Any: - 'phase(x, y[, angle[, angleInDegrees]]) -> angle\n. @brief Calculates the rotation angle of 2D vectors.\n. \n. The function cv::phase calculates the rotation angle of each 2D vector that\n. is formed from the corresponding elements of x and y :\n. \\f[\\texttt{angle} (I) = \\texttt{atan2} ( \\texttt{y} (I), \\texttt{x} (I))\\f]\n. \n. The angle estimation accuracy is about 0.3 degrees. When x(I)=y(I)=0 ,\n. the corresponding angle(I) is set to 0.\n. @param x input floating-point array of x-coordinates of 2D vectors.\n. @param y input array of y-coordinates of 2D vectors; it must have the\n. same size and the same type as x.\n. @param angle output array of vector angles; it has the same size and\n. same type as x .\n. @param angleInDegrees when true, the function calculates the angle in\n. degrees, otherwise, they are measured in radians.' - ... - -def phaseCorrelate(src1: Mat, src2: Mat, window=...) -> typing.Any: - 'phaseCorrelate(src1, src2[, window]) -> retval, response\n. @brief The function is used to detect translational shifts that occur between two images.\n. \n. The operation takes advantage of the Fourier shift theorem for detecting the translational shift in\n. the frequency domain. It can be used for fast image registration as well as motion estimation. For\n. more information please see \n. \n. Calculates the cross-power spectrum of two supplied source arrays. The arrays are padded if needed\n. with getOptimalDFTSize.\n. \n. The function performs the following equations:\n. - First it applies a Hanning window (see ) to each\n. image to remove possible edge effects. This window is cached until the array size changes to speed\n. up processing time.\n. - Next it computes the forward DFTs of each source array:\n. \\f[\\mathbf{G}_a = \\mathcal{F}\\{src_1\\}, \\; \\mathbf{G}_b = \\mathcal{F}\\{src_2\\}\\f]\n. where \\f$\\mathcal{F}\\f$ is the forward DFT.\n. - It then computes the cross-power spectrum of each frequency domain array:\n. \\f[R = \\frac{ \\mathbf{G}_a \\mathbf{G}_b^*}{|\\mathbf{G}_a \\mathbf{G}_b^*|}\\f]\n. - Next the cross-correlation is converted back into the time domain via the inverse DFT:\n. \\f[r = \\mathcal{F}^{-1}\\{R\\}\\f]\n. - Finally, it computes the peak location and computes a 5x5 weighted centroid around the peak to\n. achieve sub-pixel accuracy.\n. \\f[(\\Delta x, \\Delta y) = \\texttt{weightedCentroid} \\{\\arg \\max_{(x, y)}\\{r\\}\\}\\f]\n. - If non-zero, the response parameter is computed as the sum of the elements of r within the 5x5\n. centroid around the peak location. It is normalized to a maximum of 1 (meaning there is a single\n. peak) and will be smaller when there are multiple peaks.\n. \n. @param src1 Source floating point array (CV_32FC1 or CV_64FC1)\n. @param src2 Source floating point array (CV_32FC1 or CV_64FC1)\n. @param window Floating point array with windowing coefficients to reduce edge effects (optional).\n. @param response Signal power within the 5x5 centroid around the peak, between 0 and 1 (optional).\n. @returns detected phase shift (sub-pixel) between the two arrays.\n. \n. @sa dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow' - ... - -def pointPolygonTest(contour, pt, measureDist) -> typing.Any: - 'pointPolygonTest(contour, pt, measureDist) -> retval\n. @brief Performs a point-in-contour test.\n. \n. The function determines whether the point is inside a contour, outside, or lies on an edge (or\n. coincides with a vertex). It returns positive (inside), negative (outside), or zero (on an edge)\n. value, correspondingly. When measureDist=false , the return value is +1, -1, and 0, respectively.\n. Otherwise, the return value is a signed distance between the point and the nearest contour edge.\n. \n. See below a sample output of the function where each image pixel is tested against the contour:\n. \n. ![sample output](pics/pointpolygon.png)\n. \n. @param contour Input contour.\n. @param pt Point tested against the contour.\n. @param measureDist If true, the function estimates the signed distance from the point to the\n. nearest contour edge. Otherwise, the function only checks if the point is inside a contour or not.' - ... - -def polarToCart(magnitude, angle, x=..., y=..., angleInDegrees=...) -> typing.Any: - 'polarToCart(magnitude, angle[, x[, y[, angleInDegrees]]]) -> x, y\n. @brief Calculates x and y coordinates of 2D vectors from their magnitude and angle.\n. \n. The function cv::polarToCart calculates the Cartesian coordinates of each 2D\n. vector represented by the corresponding elements of magnitude and angle:\n. \\f[\\begin{array}{l} \\texttt{x} (I) = \\texttt{magnitude} (I) \\cos ( \\texttt{angle} (I)) \\\\ \\texttt{y} (I) = \\texttt{magnitude} (I) \\sin ( \\texttt{angle} (I)) \\\\ \\end{array}\\f]\n. \n. The relative accuracy of the estimated coordinates is about 1e-6.\n. @param magnitude input floating-point array of magnitudes of 2D vectors;\n. it can be an empty matrix (=Mat()), in this case, the function assumes\n. that all the magnitudes are =1; if it is not empty, it must have the\n. same size and type as angle.\n. @param angle input floating-point array of angles of 2D vectors.\n. @param x output array of x-coordinates of 2D vectors; it has the same\n. size and type as angle.\n. @param y output array of y-coordinates of 2D vectors; it has the same\n. size and type as angle.\n. @param angleInDegrees when true, the input angles are measured in\n. degrees, otherwise, they are measured in radians.\n. @sa cartToPolar, magnitude, phase, exp, log, pow, sqrt' - ... - -def polylines(img: Mat, pts, isClosed, color, thickness=..., lineType=..., shift=...) -> typing.Any: - 'polylines(img, pts, isClosed, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws several polygonal curves.\n. \n. @param img Image.\n. @param pts Array of polygonal curves.\n. @param isClosed Flag indicating whether the drawn polylines are closed or not. If they are closed,\n. the function draws a line from the last vertex of each curve to its first vertex.\n. @param color Polyline color.\n. @param thickness Thickness of the polyline edges.\n. @param lineType Type of the line segments. See #LineTypes\n. @param shift Number of fractional bits in the vertex coordinates.\n. \n. The function cv::polylines draws one or more polygonal curves.' - ... - -def pow(src: Mat, power, dts: Mat = ...) -> typing.Any: - 'pow(src, power[, dst]) -> dst\n. @brief Raises every array element to a power.\n. \n. The function cv::pow raises every element of the input array to power :\n. \\f[\\texttt{dst} (I) = \\fork{\\texttt{src}(I)^{power}}{if \\(\\texttt{power}\\) is integer}{|\\texttt{src}(I)|^{power}}{otherwise}\\f]\n. \n. So, for a non-integer power exponent, the absolute values of input array\n. elements are used. However, it is possible to get true values for\n. negative values using some extra operations. In the example below,\n. computing the 5th root of array src shows:\n. @code{.cpp}\n. Mat mask = src < 0;\n. pow(src, 1./5, dst);\n. subtract(Scalar::all(0), dst, dst, mask);\n. @endcode\n. For some values of power, such as integer values, 0.5 and -0.5,\n. specialized faster algorithms are used.\n. \n. Special values (NaN, Inf) are not handled.\n. @param src input array.\n. @param power exponent of power.\n. @param dst output array of the same size and type as src.\n. @sa sqrt, exp, log, cartToPolar, polarToCart' - ... - -def preCornerDetect(src: Mat, ksize, dts: Mat = ..., borderType=...) -> typing.Any: - 'preCornerDetect(src, ksize[, dst[, borderType]]) -> dst\n. @brief Calculates a feature map for corner detection.\n. \n. The function calculates the complex spatial derivative-based function of the source image\n. \n. \\f[\\texttt{dst} = (D_x \\texttt{src} )^2 \\cdot D_{yy} \\texttt{src} + (D_y \\texttt{src} )^2 \\cdot D_{xx} \\texttt{src} - 2 D_x \\texttt{src} \\cdot D_y \\texttt{src} \\cdot D_{xy} \\texttt{src}\\f]\n. \n. where \\f$D_x\\f$,\\f$D_y\\f$ are the first image derivatives, \\f$D_{xx}\\f$,\\f$D_{yy}\\f$ are the second image\n. derivatives, and \\f$D_{xy}\\f$ is the mixed derivative.\n. \n. The corners can be found as local maximums of the functions, as shown below:\n. @code\n. Mat corners, dilated_corners;\n. preCornerDetect(image, corners, 3);\n. // dilation with 3x3 rectangular structuring element\n. dilate(corners, dilated_corners, Mat(), 1);\n. Mat corner_mask = corners == dilated_corners;\n. @endcode\n. \n. @param src Source single-channel 8-bit of floating-point image.\n. @param dst Output image that has the type CV_32F and the same size as src .\n. @param ksize %Aperture size of the Sobel .\n. @param borderType Pixel extrapolation method. See #BorderTypes. #BORDER_WRAP is not supported.' - ... - -def projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs, imagePoints=..., jacobian=..., aspectRatio=...) -> typing.Any: - 'projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs[, imagePoints[, jacobian[, aspectRatio]]]) -> imagePoints, jacobian\n. @brief Projects 3D points to an image plane.\n. \n. @param objectPoints Array of object points expressed wrt. the world coordinate frame. A 3xN/Nx3\n. 1-channel or 1xN/Nx1 3-channel (or vector\\ ), where N is the number of points in the view.\n. @param rvec The rotation vector (@ref Rodrigues) that, together with tvec, performs a change of\n. basis from world to camera coordinate system, see @ref calibrateCamera for details.\n. @param tvec The translation vector, see parameter description above.\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{_1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is empty, the zero distortion coefficients are assumed.\n. @param imagePoints Output array of image points, 1xN/Nx1 2-channel, or\n. vector\\ .\n. @param jacobian Optional output 2Nx(10+\\) jacobian matrix of derivatives of image\n. points with respect to components of the rotation vector, translation vector, focal lengths,\n. coordinates of the principal point and the distortion coefficients. In the old interface different\n. components of the jacobian are returned via different output parameters.\n. @param aspectRatio Optional "fixed aspect ratio" parameter. If the parameter is not 0, the\n. function assumes that the aspect ratio (\\f$f_x / f_y\\f$) is fixed and correspondingly adjusts the\n. jacobian matrix.\n. \n. The function computes the 2D projections of 3D points to the image plane, given intrinsic and\n. extrinsic camera parameters. Optionally, the function computes Jacobians -matrices of partial\n. derivatives of image points coordinates (as functions of all the input parameters) with respect to\n. the particular parameters, intrinsic and/or extrinsic. The Jacobians are used during the global\n. optimization in @ref calibrateCamera, @ref solvePnP, and @ref stereoCalibrate. The function itself\n. can also be used to compute a re-projection error, given the current intrinsic and extrinsic\n. parameters.\n. \n. @note By setting rvec = tvec = \\f$[0, 0, 0]\\f$, or by setting cameraMatrix to a 3x3 identity matrix,\n. or by passing zero distortion coefficients, one can get various useful partial cases of the\n. function. This means, one can compute the distorted coordinates for a sparse set of points or apply\n. a perspective transformation (and also compute the derivatives) in the ideal zero-distortion setup.' - ... - -def putText(img: Mat, text, org, fontFace, fontScale, color, thickness=..., lineType=..., bottomLeftOrigin=...) -> typing.Any: - 'putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]]) -> img\n. @brief Draws a text string.\n. \n. The function cv::putText renders the specified text string in the image. Symbols that cannot be rendered\n. using the specified font are replaced by question marks. See #getTextSize for a text rendering code\n. example.\n. \n. @param img Image.\n. @param text Text string to be drawn.\n. @param org Bottom-left corner of the text string in the image.\n. @param fontFace Font type, see #HersheyFonts.\n. @param fontScale Font scale factor that is multiplied by the font-specific base size.\n. @param color Text color.\n. @param thickness Thickness of the lines used to draw a text.\n. @param lineType Line type. See #LineTypes\n. @param bottomLeftOrigin When true, the image data origin is at the bottom-left corner. Otherwise,\n. it is at the top-left corner.' - ... - -def pyrDown(src: Mat, dts: Mat = ..., dstsize=..., borderType=...) -> typing.Any: - "pyrDown(src[, dst[, dstsize[, borderType]]]) -> dst\n. @brief Blurs an image and downsamples it.\n. \n. By default, size of the output image is computed as `Size((src.cols+1)/2, (src.rows+1)/2)`, but in\n. any case, the following conditions should be satisfied:\n. \n. \\f[\\begin{array}{l} | \\texttt{dstsize.width} *2-src.cols| \\leq 2 \\\\ | \\texttt{dstsize.height} *2-src.rows| \\leq 2 \\end{array}\\f]\n. \n. The function performs the downsampling step of the Gaussian pyramid construction. First, it\n. convolves the source image with the kernel:\n. \n. \\f[\\frac{1}{256} \\begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\\\ 4 & 16 & 24 & 16 & 4 \\\\ 6 & 24 & 36 & 24 & 6 \\\\ 4 & 16 & 24 & 16 & 4 \\\\ 1 & 4 & 6 & 4 & 1 \\end{bmatrix}\\f]\n. \n. Then, it downsamples the image by rejecting even rows and columns.\n. \n. @param src input image.\n. @param dst output image; it has the specified size and the same type as src.\n. @param dstsize size of the output image.\n. @param borderType Pixel extrapolation method, see #BorderTypes (#BORDER_CONSTANT isn't supported)" - ... - -def pyrMeanShiftFiltering(src: Mat, sp, sr, dts: Mat = ..., maxLevel=..., termcrit=...) -> typing.Any: - 'pyrMeanShiftFiltering(src, sp, sr[, dst[, maxLevel[, termcrit]]]) -> dst\n. @brief Performs initial step of meanshift segmentation of an image.\n. \n. The function implements the filtering stage of meanshift segmentation, that is, the output of the\n. function is the filtered "posterized" image with color gradients and fine-grain texture flattened.\n. At every pixel (X,Y) of the input image (or down-sized input image, see below) the function executes\n. meanshift iterations, that is, the pixel (X,Y) neighborhood in the joint space-color hyperspace is\n. considered:\n. \n. \\f[(x,y): X- \\texttt{sp} \\le x \\le X+ \\texttt{sp} , Y- \\texttt{sp} \\le y \\le Y+ \\texttt{sp} , ||(R,G,B)-(r,g,b)|| \\le \\texttt{sr}\\f]\n. \n. where (R,G,B) and (r,g,b) are the vectors of color components at (X,Y) and (x,y), respectively\n. (though, the algorithm does not depend on the color space used, so any 3-component color space can\n. be used instead). Over the neighborhood the average spatial value (X\',Y\') and average color vector\n. (R\',G\',B\') are found and they act as the neighborhood center on the next iteration:\n. \n. \\f[(X,Y)~(X\',Y\'), (R,G,B)~(R\',G\',B\').\\f]\n. \n. After the iterations over, the color components of the initial pixel (that is, the pixel from where\n. the iterations started) are set to the final value (average color at the last iteration):\n. \n. \\f[I(X,Y) <- (R*,G*,B*)\\f]\n. \n. When maxLevel \\> 0, the gaussian pyramid of maxLevel+1 levels is built, and the above procedure is\n. run on the smallest layer first. After that, the results are propagated to the larger layer and the\n. iterations are run again only on those pixels where the layer colors differ by more than sr from the\n. lower-resolution layer of the pyramid. That makes boundaries of color regions sharper. Note that the\n. results will be actually different from the ones obtained by running the meanshift procedure on the\n. whole original image (i.e. when maxLevel==0).\n. \n. @param src The source 8-bit, 3-channel image.\n. @param dst The destination image of the same format and the same size as the source.\n. @param sp The spatial window radius.\n. @param sr The color window radius.\n. @param maxLevel Maximum level of the pyramid for the segmentation.\n. @param termcrit Termination criteria: when to stop meanshift iterations.' - ... - -def pyrUp(src: Mat, dts: Mat = ..., dstsize=..., borderType=...) -> typing.Any: - 'pyrUp(src[, dst[, dstsize[, borderType]]]) -> dst\n. @brief Upsamples an image and then blurs it.\n. \n. By default, size of the output image is computed as `Size(src.cols\\*2, (src.rows\\*2)`, but in any\n. case, the following conditions should be satisfied:\n. \n. \\f[\\begin{array}{l} | \\texttt{dstsize.width} -src.cols*2| \\leq ( \\texttt{dstsize.width} \\mod 2) \\\\ | \\texttt{dstsize.height} -src.rows*2| \\leq ( \\texttt{dstsize.height} \\mod 2) \\end{array}\\f]\n. \n. The function performs the upsampling step of the Gaussian pyramid construction, though it can\n. actually be used to construct the Laplacian pyramid. First, it upsamples the source image by\n. injecting even zero rows and columns and then convolves the result with the same kernel as in\n. pyrDown multiplied by 4.\n. \n. @param src input image.\n. @param dst output image. It has the specified size and the same type as src .\n. @param dstsize size of the output image.\n. @param borderType Pixel extrapolation method, see #BorderTypes (only #BORDER_DEFAULT is supported)' - ... - -def randShuffle(dts: Mat, iterFactor=...) -> typing.Any: - 'randShuffle(dst[, iterFactor]) -> dst\n. @brief Shuffles the array elements randomly.\n. \n. The function cv::randShuffle shuffles the specified 1D array by randomly choosing pairs of elements and\n. swapping them. The number of such swap operations will be dst.rows\\*dst.cols\\*iterFactor .\n. @param dst input/output numerical 1D array.\n. @param iterFactor scale factor that determines the number of random swap operations (see the details\n. below).\n. @param rng optional random number generator used for shuffling; if it is zero, theRNG () is used\n. instead.\n. @sa RNG, sort' - ... - -def randn(dts: Mat, mean, stddev) -> typing.Any: - 'randn(dst, mean, stddev) -> dst\n. @brief Fills the array with normally distributed random numbers.\n. \n. The function cv::randn fills the matrix dst with normally distributed random numbers with the specified\n. mean vector and the standard deviation matrix. The generated random numbers are clipped to fit the\n. value range of the output array data type.\n. @param dst output array of random numbers; the array must be pre-allocated and have 1 to 4 channels.\n. @param mean mean value (expectation) of the generated random numbers.\n. @param stddev standard deviation of the generated random numbers; it can be either a vector (in\n. which case a diagonal standard deviation matrix is assumed) or a square matrix.\n. @sa RNG, randu' - ... - -def randu(dts: Mat, low, high) -> typing.Any: - 'randu(dst, low, high) -> dst\n. @brief Generates a single uniformly-distributed random number or an array of random numbers.\n. \n. Non-template variant of the function fills the matrix dst with uniformly-distributed\n. random numbers from the specified range:\n. \\f[\\texttt{low} _c \\leq \\texttt{dst} (I)_c < \\texttt{high} _c\\f]\n. @param dst output array of random numbers; the array must be pre-allocated.\n. @param low inclusive lower boundary of the generated random numbers.\n. @param high exclusive upper boundary of the generated random numbers.\n. @sa RNG, randn, theRNG' - ... - -def readOpticalFlow(path) -> typing.Any: - 'readOpticalFlow(path) -> retval\n. @brief Read a .flo file\n. \n. @param path Path to the file to be loaded\n. \n. The function readOpticalFlow loads a flow field from a file and returns it as a single matrix.\n. Resulting Mat has a type CV_32FC2 - floating-point, 2-channel. First channel corresponds to the\n. flow in the horizontal direction (u), second - vertical (v).' - ... - -def recoverPose(E, points1, points2, cameraMatrix, R=..., t=..., mask: Mat = ...) -> typing.Any: - "recoverPose(E, points1, points2, cameraMatrix[, R[, t[, mask]]]) -> retval, R, t, mask\n. @brief Recovers the relative camera rotation and the translation from an estimated essential\n. matrix and the corresponding points in two images, using cheirality check. Returns the number of\n. inliers that pass the check.\n. \n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix.\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. described below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. \n. This function decomposes an essential matrix using @ref decomposeEssentialMat and then verifies\n. possible pose hypotheses by doing cheirality check. The cheirality check means that the\n. triangulated 3D points should have positive depth. Some details can be found in @cite Nister03.\n. \n. This function can be used to process the output E and mask from @ref findEssentialMat. In this\n. scenario, points1 and points2 are the same input for findEssentialMat.:\n. @code\n. // Example. Estimation of fundamental matrix using the RANSAC algorithm\n. int point_count = 100;\n. vector points1(point_count);\n. vector points2(point_count);\n. \n. // initialize the points here ...\n. for( int i = 0; i < point_count; i++ )\n. {\n. points1[i] = ...;\n. points2[i] = ...;\n. }\n. \n. // cametra matrix with both focal lengths = 1, and principal point = (0, 0)\n. Mat cameraMatrix = Mat::eye(3, 3, CV_64F);\n. \n. Mat E, R, t, mask;\n. \n. E = findEssentialMat(points1, points2, cameraMatrix, RANSAC, 0.999, 1.0, mask);\n. recoverPose(E, points1, points2, cameraMatrix, R, t, mask);\n. @endcode\n\n\n\nrecoverPose(E, points1, points2[, R[, t[, focal[, pp[, mask]]]]]) -> retval, R, t, mask\n. @overload\n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1 .\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. description below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param focal Focal length of the camera. Note that this function assumes that points1 and points2\n. are feature points from cameras with same focal length and principal point.\n. @param pp principal point of the camera.\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. \n. This function differs from the one above that it computes camera matrix from focal length and\n. principal point:\n. \n. \\f[A =\n. \\begin{bmatrix}\n. f & 0 & x_{pp} \\\\\n. 0 & f & y_{pp} \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\\f]\n\n\n\nrecoverPose(E, points1, points2, cameraMatrix, distanceThresh[, R[, t[, mask[, triangulatedPoints]]]]) -> retval, R, t, mask, triangulatedPoints\n. @overload\n. @param E The input essential matrix.\n. @param points1 Array of N 2D points from the first image. The point coordinates should be\n. floating-point (single or double precision).\n. @param points2 Array of the second image points of the same size and format as points1.\n. @param cameraMatrix Camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. Note that this function assumes that points1 and points2 are feature points from cameras with the\n. same camera matrix.\n. @param R Output rotation matrix. Together with the translation vector, this matrix makes up a tuple\n. that performs a change of basis from the first camera's coordinate system to the second camera's\n. coordinate system. Note that, in general, t can not be used for this tuple, see the parameter\n. description below.\n. @param t Output translation vector. This vector is obtained by @ref decomposeEssentialMat and\n. therefore is only known up to scale, i.e. t is the direction of the translation vector and has unit\n. length.\n. @param distanceThresh threshold distance which is used to filter out far away points (i.e. infinite\n. points).\n. @param mask Input/output mask for inliers in points1 and points2. If it is not empty, then it marks\n. inliers in points1 and points2 for then given essential matrix E. Only these inliers will be used to\n. recover pose. In the output mask only inliers which pass the cheirality check.\n. @param triangulatedPoints 3D points which were reconstructed by triangulation.\n. \n. This function differs from the one above that it outputs the triangulated 3D point that are used for\n. the cheirality check." - ... - -def rectangle(img: Mat, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> typing.Any: - 'rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img\n. @brief Draws a simple, thick, or filled up-right rectangle.\n. \n. The function cv::rectangle draws a rectangle outline or a filled rectangle whose two opposite corners\n. are pt1 and pt2.\n. \n. @param img Image.\n. @param pt1 Vertex of the rectangle.\n. @param pt2 Vertex of the rectangle opposite to pt1 .\n. @param color Rectangle color or brightness (grayscale image).\n. @param thickness Thickness of lines that make up the rectangle. Negative values, like #FILLED,\n. mean that the function has to draw a filled rectangle.\n. @param lineType Type of the line. See #LineTypes\n. @param shift Number of fractional bits in the point coordinates.\n\n\n\nrectangle(img, rec, color[, thickness[, lineType[, shift]]]) -> img\n. @overload\n. \n. use `rec` parameter as alternative specification of the drawn rectangle: `r.tl() and\n. r.br()-Point(1,1)` are opposite corners' - ... - -def rectify3Collinear(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, cameraMatrix3, distCoeffs3, imgpt1, imgpt3, imageSize, R12, T12, R13, T13, alpha, newImgSize, flags: int, R1=..., R2=..., R3=..., P1=..., P2=..., P3=..., Q=...) -> typing.Any: - 'rectify3Collinear(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, cameraMatrix3, distCoeffs3, imgpt1, imgpt3, imageSize, R12, T12, R13, T13, alpha, newImgSize, flags[, R1[, R2[, R3[, P1[, P2[, P3[, Q]]]]]]]) -> retval, R1, R2, R3, P1, P2, P3, Q, roi1, roi2\n.' - ... - -def redirectError(onError) -> typing.Any: - 'redirectError(onError) -> None' - ... - -def reduce(src: Mat, dim, rtype, dts: Mat = ..., dtype=...) -> typing.Any: - 'reduce(src, dim, rtype[, dst[, dtype]]) -> dst\n. @brief Reduces a matrix to a vector.\n. \n. The function #reduce reduces the matrix to a vector by treating the matrix rows/columns as a set of\n. 1D vectors and performing the specified operation on the vectors until a single row/column is\n. obtained. For example, the function can be used to compute horizontal and vertical projections of a\n. raster image. In case of #REDUCE_MAX and #REDUCE_MIN , the output image should have the same type as the source one.\n. In case of #REDUCE_SUM and #REDUCE_AVG , the output may have a larger element bit-depth to preserve accuracy.\n. And multi-channel arrays are also supported in these two reduction modes.\n. \n. The following code demonstrates its usage for a single channel matrix.\n. @snippet snippets/core_reduce.cpp example\n. \n. And the following code demonstrates its usage for a two-channel matrix.\n. @snippet snippets/core_reduce.cpp example2\n. \n. @param src input 2D matrix.\n. @param dst output vector. Its size and type is defined by dim and dtype parameters.\n. @param dim dimension index along which the matrix is reduced. 0 means that the matrix is reduced to\n. a single row. 1 means that the matrix is reduced to a single column.\n. @param rtype reduction operation that could be one of #ReduceTypes\n. @param dtype when negative, the output vector will have the same type as the input matrix,\n. otherwise, its type will be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()).\n. @sa repeat' - ... - -def remap(src: Mat, map1, map2, interpolation: int, dts: Mat = ..., borderMode=..., borderValue=...) -> typing.Any: - 'remap(src, map1, map2, interpolation[, dst[, borderMode[, borderValue]]]) -> dst\n. @brief Applies a generic geometrical transformation to an image.\n. \n. The function remap transforms the source image using the specified map:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} (map_x(x,y),map_y(x,y))\\f]\n. \n. where values of pixels with non-integer coordinates are computed using one of available\n. interpolation methods. \\f$map_x\\f$ and \\f$map_y\\f$ can be encoded as separate floating-point maps\n. in \\f$map_1\\f$ and \\f$map_2\\f$ respectively, or interleaved floating-point maps of \\f$(x,y)\\f$ in\n. \\f$map_1\\f$, or fixed-point maps created by using convertMaps. The reason you might want to\n. convert from floating to fixed-point representations of a map is that they can yield much faster\n. (\\~2x) remapping operations. In the converted case, \\f$map_1\\f$ contains pairs (cvFloor(x),\n. cvFloor(y)) and \\f$map_2\\f$ contains indices in a table of interpolation coefficients.\n. \n. This function cannot operate in-place.\n. \n. @param src Source image.\n. @param dst Destination image. It has the same size as map1 and the same type as src .\n. @param map1 The first map of either (x,y) points or just x values having the type CV_16SC2 ,\n. CV_32FC1, or CV_32FC2. See convertMaps for details on converting a floating point\n. representation to fixed-point for speed.\n. @param map2 The second map of y values having the type CV_16UC1, CV_32FC1, or none (empty map\n. if map1 is (x,y) points), respectively.\n. @param interpolation Interpolation method (see #InterpolationFlags). The method #INTER_AREA is\n. not supported by this function.\n. @param borderMode Pixel extrapolation method (see #BorderTypes). When\n. borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image that\n. corresponds to the "outliers" in the source image are not modified by the function.\n. @param borderValue Value used in case of a constant border. By default, it is 0.\n. @note\n. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.' - ... - -def repeat(src: Mat, ny, nx, dts: Mat = ...) -> typing.Any: - 'repeat(src, ny, nx[, dst]) -> dst\n. @brief Fills the output array with repeated copies of the input array.\n. \n. The function cv::repeat duplicates the input array one or more times along each of the two axes:\n. \\f[\\texttt{dst} _{ij}= \\texttt{src} _{i\\mod src.rows, \\; j\\mod src.cols }\\f]\n. The second variant of the function is more convenient to use with @ref MatrixExpressions.\n. @param src input array to replicate.\n. @param ny Flag to specify how many times the `src` is repeated along the\n. vertical axis.\n. @param nx Flag to specify how many times the `src` is repeated along the\n. horizontal axis.\n. @param dst output array of the same type as `src`.\n. @sa cv::reduce' - ... - -def reprojectImageTo3D(disparity, Q, _3dImage=..., handleMissingValues=..., ddepth=...) -> typing.Any: - "reprojectImageTo3D(disparity, Q[, _3dImage[, handleMissingValues[, ddepth]]]) -> _3dImage\n. @brief Reprojects a disparity image to 3D space.\n. \n. @param disparity Input single-channel 8-bit unsigned, 16-bit signed, 32-bit signed or 32-bit\n. floating-point disparity image. The values of 8-bit / 16-bit signed formats are assumed to have no\n. fractional bits. If the disparity is 16-bit signed format, as computed by @ref StereoBM or\n. @ref StereoSGBM and maybe other algorithms, it should be divided by 16 (and scaled to float) before\n. being used here.\n. @param _3dImage Output 3-channel floating-point image of the same size as disparity. Each element of\n. _3dImage(x,y) contains 3D coordinates of the point (x,y) computed from the disparity map. If one\n. uses Q obtained by @ref stereoRectify, then the returned points are represented in the first\n. camera's rectified coordinate system.\n. @param Q \\f$4 \\times 4\\f$ perspective transformation matrix that can be obtained with\n. @ref stereoRectify.\n. @param handleMissingValues Indicates, whether the function should handle missing values (i.e.\n. points where the disparity was not computed). If handleMissingValues=true, then pixels with the\n. minimal disparity that corresponds to the outliers (see StereoMatcher::compute ) are transformed\n. to 3D points with a very large Z value (currently set to 10000).\n. @param ddepth The optional output array depth. If it is -1, the output image will have CV_32F\n. depth. ddepth can also be set to CV_16S, CV_32S or CV_32F.\n. \n. The function transforms a single-channel disparity map to a 3-channel image representing a 3D\n. surface. That is, for each pixel (x,y) and the corresponding disparity d=disparity(x,y) , it\n. computes:\n. \n. \\f[\\begin{bmatrix}\n. X \\\\\n. Y \\\\\n. Z \\\\\n. W\n. \\end{bmatrix} = Q \\begin{bmatrix}\n. x \\\\\n. y \\\\\n. \\texttt{disparity} (x,y) \\\\\n. z\n. \\end{bmatrix}.\\f]\n. \n. @sa\n. To reproject a sparse set of points {(x,y,d),...} to 3D space, use perspectiveTransform." - ... - -def resize(src: Mat, dsize: typing.Tuple[int, int], dts: Mat = ..., fx: int = ..., fy: int = ..., interpolation: int = ...) -> Mat: - 'resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) -> dst\n. @brief Resizes an image.\n. \n. The function resize resizes the image src down to or up to the specified size. Note that the\n. initial dst type or size are not taken into account. Instead, the size and type are derived from\n. the `src`,`dsize`,`fx`, and `fy`. If you want to resize src so that it fits the pre-created dst,\n. you may call the function as follows:\n. @code\n. // explicitly specify dsize=dst.size(); fx and fy will be computed from that.\n. resize(src, dst, dst.size(), 0, 0, interpolation);\n. @endcode\n. If you want to decimate the image by factor of 2 in each direction, you can call the function this\n. way:\n. @code\n. // specify fx and fy and let the function compute the destination image size.\n. resize(src, dst, Size(), 0.5, 0.5, interpolation);\n. @endcode\n. To shrink an image, it will generally look best with #INTER_AREA interpolation, whereas to\n. enlarge an image, it will generally look best with c#INTER_CUBIC (slow) or #INTER_LINEAR\n. (faster but still looks OK).\n. \n. @param src input image.\n. @param dst output image; it has the size dsize (when it is non-zero) or the size computed from\n. src.size(), fx, and fy; the type of dst is the same as of src.\n. @param dsize output image size; if it equals zero, it is computed as:\n. \\f[\\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\\f]\n. Either dsize or both fx and fy must be non-zero.\n. @param fx scale factor along the horizontal axis; when it equals 0, it is computed as\n. \\f[\\texttt{(double)dsize.width/src.cols}\\f]\n. @param fy scale factor along the vertical axis; when it equals 0, it is computed as\n. \\f[\\texttt{(double)dsize.height/src.rows}\\f]\n. @param interpolation interpolation method, see #InterpolationFlags\n. \n. @sa warpAffine, warpPerspective, remap' - ... - -def resizeWindow(winname, width, height) -> typing.Any: - 'resizeWindow(winname, width, height) -> None\n. @brief Resizes window to the specified size\n. \n. @note\n. \n. - The specified window size is for the image area. Toolbars are not counted.\n. - Only windows created without cv::WINDOW_AUTOSIZE flag can be resized.\n. \n. @param winname Window name.\n. @param width The new window width.\n. @param height The new window height.\n\n\n\nresizeWindow(winname, size) -> None\n. @overload\n. @param winname Window name.\n. @param size The new window size.' - ... - -def rotate(src: Mat, rotateCode, dts: Mat = ...) -> typing.Any: - 'rotate(src, rotateCode[, dst]) -> dst\n. @brief Rotates a 2D array in multiples of 90 degrees.\n. The function cv::rotate rotates the array in one of three different ways:\n. * Rotate by 90 degrees clockwise (rotateCode = ROTATE_90_CLOCKWISE).\n. * Rotate by 180 degrees clockwise (rotateCode = ROTATE_180).\n. * Rotate by 270 degrees clockwise (rotateCode = ROTATE_90_COUNTERCLOCKWISE).\n. @param src input array.\n. @param dst output array of the same type as src. The size is the same with ROTATE_180,\n. and the rows and cols are switched for ROTATE_90_CLOCKWISE and ROTATE_90_COUNTERCLOCKWISE.\n. @param rotateCode an enum to specify how to rotate the array; see the enum #RotateFlags\n. @sa transpose , repeat , completeSymm, flip, RotateFlags' - ... - -def rotatedRectangleIntersection(rect1, rect2, intersectingRegion=...) -> typing.Any: - 'rotatedRectangleIntersection(rect1, rect2[, intersectingRegion]) -> retval, intersectingRegion\n. @brief Finds out if there is any intersection between two rotated rectangles.\n. \n. If there is then the vertices of the intersecting region are returned as well.\n. \n. Below are some examples of intersection configurations. The hatched pattern indicates the\n. intersecting region and the red vertices are returned by the function.\n. \n. ![intersection examples](pics/intersection.png)\n. \n. @param rect1 First rectangle\n. @param rect2 Second rectangle\n. @param intersectingRegion The output array of the vertices of the intersecting region. It returns\n. at most 8 vertices. Stored as std::vector\\ or cv::Mat as Mx1 of type CV_32FC2.\n. @returns One of #RectanglesIntersectTypes' - ... - -def sampsonDistance(pt1, pt2, F) -> typing.Any: - 'sampsonDistance(pt1, pt2, F) -> retval\n. @brief Calculates the Sampson Distance between two points.\n. \n. The function cv::sampsonDistance calculates and returns the first order approximation of the geometric error as:\n. \\f[\n. sd( \\texttt{pt1} , \\texttt{pt2} )=\n. \\frac{(\\texttt{pt2}^t \\cdot \\texttt{F} \\cdot \\texttt{pt1})^2}\n. {((\\texttt{F} \\cdot \\texttt{pt1})(0))^2 +\n. ((\\texttt{F} \\cdot \\texttt{pt1})(1))^2 +\n. ((\\texttt{F}^t \\cdot \\texttt{pt2})(0))^2 +\n. ((\\texttt{F}^t \\cdot \\texttt{pt2})(1))^2}\n. \\f]\n. The fundamental matrix may be calculated using the cv::findFundamentalMat function. See @cite HartleyZ00 11.4.3 for details.\n. @param pt1 first homogeneous 2d point\n. @param pt2 second homogeneous 2d point\n. @param F fundamental matrix\n. @return The computed Sampson distance.' - ... - -def scaleAdd(src1: Mat, alpha, src2: Mat, dts: Mat = ...) -> typing.Any: - 'scaleAdd(src1, alpha, src2[, dst]) -> dst\n. @brief Calculates the sum of a scaled array and another array.\n. \n. The function scaleAdd is one of the classical primitive linear algebra operations, known as DAXPY\n. or SAXPY in [BLAS](http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms). It calculates\n. the sum of a scaled array and another array:\n. \\f[\\texttt{dst} (I)= \\texttt{scale} \\cdot \\texttt{src1} (I) + \\texttt{src2} (I)\\f]\n. The function can also be emulated with a matrix expression, for example:\n. @code{.cpp}\n. Mat A(3, 3, CV_64F);\n. ...\n. A.row(0) = A.row(1)*2 + A.row(2);\n. @endcode\n. @param src1 first input array.\n. @param alpha scale factor for the first array.\n. @param src2 second input array of the same size and type as src1.\n. @param dst output array of the same size and type as src1.\n. @sa add, addWeighted, subtract, Mat::dot, Mat::convertTo' - ... - -def seamlessClone(src: Mat, dts: Mat, mask: typing.Optional[Mat], p, flags: int, blend=...) -> typing.Any: - 'seamlessClone(src, dst, mask, p, flags[, blend]) -> blend\n. @brief Image editing tasks concern either global changes (color/intensity corrections, filters,\n. deformations) or local changes concerned to a selection. Here we are interested in achieving local\n. changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless\n. manner. The extent of the changes ranges from slight distortions to complete replacement by novel\n. content @cite PM03 .\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param p Point in dst image where object is placed.\n. @param blend Output image with the same size and type as dst.\n. @param flags Cloning method that could be cv::NORMAL_CLONE, cv::MIXED_CLONE or cv::MONOCHROME_TRANSFER' - ... - -def selectROI(windowName, img: Mat, showCrosshair=..., fromCenter=...) -> typing.Any: - "selectROI(windowName, img[, showCrosshair[, fromCenter]]) -> retval\n. @brief Selects ROI on the given image.\n. Function creates a window and allows user to select a ROI using mouse.\n. Controls: use `space` or `enter` to finish selection, use key `c` to cancel selection (function will return the zero cv::Rect).\n. \n. @param windowName name of the window where selection process will be shown.\n. @param img image to select a ROI.\n. @param showCrosshair if true crosshair of selection rectangle will be shown.\n. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of\n. selection rectangle will correspont to the initial mouse position.\n. @return selected ROI or empty rect if selection canceled.\n. \n. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).\n. After finish of work an empty callback will be set for the used window.\n\n\n\nselectROI(img[, showCrosshair[, fromCenter]]) -> retval\n. @overload" - ... - -def selectROIs(windowName, img: Mat, showCrosshair=..., fromCenter=...) -> typing.Any: - "selectROIs(windowName, img[, showCrosshair[, fromCenter]]) -> boundingBoxes\n. @brief Selects ROIs on the given image.\n. Function creates a window and allows user to select a ROIs using mouse.\n. Controls: use `space` or `enter` to finish current selection and start a new one,\n. use `esc` to terminate multiple ROI selection process.\n. \n. @param windowName name of the window where selection process will be shown.\n. @param img image to select a ROI.\n. @param boundingBoxes selected ROIs.\n. @param showCrosshair if true crosshair of selection rectangle will be shown.\n. @param fromCenter if true center of selection will match initial mouse position. In opposite case a corner of\n. selection rectangle will correspont to the initial mouse position.\n. \n. @note The function sets it's own mouse callback for specified window using cv::setMouseCallback(windowName, ...).\n. After finish of work an empty callback will be set for the used window." - ... - -def sepFilter2D(src: Mat, ddepth, kernelX, kernelY, dts: Mat = ..., anchor=..., delta=..., borderType=...) -> typing.Any: - 'sepFilter2D(src, ddepth, kernelX, kernelY[, dst[, anchor[, delta[, borderType]]]]) -> dst\n. @brief Applies a separable linear filter to an image.\n. \n. The function applies a separable linear filter to the image. That is, first, every row of src is\n. filtered with the 1D kernel kernelX. Then, every column of the result is filtered with the 1D\n. kernel kernelY. The final result shifted by delta is stored in dst .\n. \n. @param src Source image.\n. @param dst Destination image of the same size and the same number of channels as src .\n. @param ddepth Destination image depth, see @ref filter_depths "combinations"\n. @param kernelX Coefficients for filtering each row.\n. @param kernelY Coefficients for filtering each column.\n. @param anchor Anchor position within the kernel. The default value \\f$(-1,-1)\\f$ means that the anchor\n. is at the kernel center.\n. @param delta Value added to the filtered results before storing them.\n. @param borderType Pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa filter2D, Sobel, GaussianBlur, boxFilter, blur' - ... - -def setIdentity(mtx, s=...) -> typing.Any: - 'setIdentity(mtx[, s]) -> mtx\n. @brief Initializes a scaled identity matrix.\n. \n. The function cv::setIdentity initializes a scaled identity matrix:\n. \\f[\\texttt{mtx} (i,j)= \\fork{\\texttt{value}}{ if \\(i=j\\)}{0}{otherwise}\\f]\n. \n. The function can also be emulated using the matrix initializers and the\n. matrix expressions:\n. @code\n. Mat A = Mat::eye(4, 3, CV_32F)*5;\n. // A will be set to [[5, 0, 0], [0, 5, 0], [0, 0, 5], [0, 0, 0]]\n. @endcode\n. @param mtx matrix to initialize (not necessarily square).\n. @param s value to assign to diagonal elements.\n. @sa Mat::zeros, Mat::ones, Mat::setTo, Mat::operator=' - ... - -def setMouseCallback(windowName, onMouse, param=...) -> typing.Any: - 'setMouseCallback(windowName, onMouse [, param]) -> None' - ... - -def setNumThreads(nthreads) -> typing.Any: - "setNumThreads(nthreads) -> None\n. @brief OpenCV will try to set the number of threads for the next parallel region.\n. \n. If threads == 0, OpenCV will disable threading optimizations and run all it's functions\n. sequentially. Passing threads \\< 0 will reset threads number to system default. This function must\n. be called outside of parallel region.\n. \n. OpenCV will try to run its functions with specified threads number, but some behaviour differs from\n. framework:\n. - `TBB` - User-defined parallel constructions will run with the same threads number, if\n. another is not specified. If later on user creates his own scheduler, OpenCV will use it.\n. - `OpenMP` - No special defined behaviour.\n. - `Concurrency` - If threads == 1, OpenCV will disable threading optimizations and run its\n. functions sequentially.\n. - `GCD` - Supports only values \\<= 0.\n. - `C=` - No special defined behaviour.\n. @param nthreads Number of threads used by OpenCV.\n. @sa getNumThreads, getThreadNum" - ... - -def setRNGSeed(seed) -> typing.Any: - 'setRNGSeed(seed) -> None\n. @brief Sets state of default random number generator.\n. \n. The function cv::setRNGSeed sets state of default random number generator to custom value.\n. @param seed new state for default random number generator\n. @sa RNG, randu, randn' - ... - -def setTrackbarMax(trackbarname, winname, maxval) -> typing.Any: - 'setTrackbarMax(trackbarname, winname, maxval) -> None\n. @brief Sets the trackbar maximum position.\n. \n. The function sets the maximum position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param maxval New maximum position.' - ... - -def setTrackbarMin(trackbarname, winname, minval) -> typing.Any: - 'setTrackbarMin(trackbarname, winname, minval) -> None\n. @brief Sets the trackbar minimum position.\n. \n. The function sets the minimum position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param minval New minimum position.' - ... - -def setTrackbarPos(trackbarname, winname, pos) -> typing.Any: - 'setTrackbarPos(trackbarname, winname, pos) -> None\n. @brief Sets the trackbar position.\n. \n. The function sets the position of the specified trackbar in the specified window.\n. \n. @note\n. \n. [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control\n. panel.\n. \n. @param trackbarname Name of the trackbar.\n. @param winname Name of the window that is the parent of trackbar.\n. @param pos New position.' - ... - -def setUseOpenVX(flag) -> typing.Any: - 'setUseOpenVX(flag) -> None\n.' - ... - -def setUseOptimized(onoff) -> typing.Any: - 'setUseOptimized(onoff) -> None\n. @brief Enables or disables the optimized code.\n. \n. The function can be used to dynamically turn on and off optimized dispatched code (code that uses SSE4.2, AVX/AVX2,\n. and other instructions on the platforms that support it). It sets a global flag that is further\n. checked by OpenCV functions. Since the flag is not checked in the inner OpenCV loops, it is only\n. safe to call the function on the very top level in your application where you can be sure that no\n. other OpenCV function is currently executed.\n. \n. By default, the optimized code is enabled unless you disable it in CMake. The current status can be\n. retrieved using useOptimized.\n. @param onoff The boolean flag specifying whether the optimized code should be used (onoff=true)\n. or not (onoff=false).' - ... - -def setWindowProperty(winname, prop_id, prop_value) -> typing.Any: - 'setWindowProperty(winname, prop_id, prop_value) -> None\n. @brief Changes parameters of a window dynamically.\n. \n. The function setWindowProperty enables changing properties of a window.\n. \n. @param winname Name of the window.\n. @param prop_id Window property to edit. The supported operation flags are: (cv::WindowPropertyFlags)\n. @param prop_value New value of the window property. The supported flags are: (cv::WindowFlags)' - ... - -def setWindowTitle(winname, title) -> typing.Any: - 'setWindowTitle(winname, title) -> None\n. @brief Updates window title\n. @param winname Name of the window.\n. @param title New title.' - ... - -def solve(src1: Mat, src2: Mat, dts: Mat = ..., flags: int = ...) -> typing.Any: - 'solve(src1, src2[, dst[, flags]]) -> retval, dst\n. @brief Solves one or more linear systems or least-squares problems.\n. \n. The function cv::solve solves a linear system or least-squares problem (the\n. latter is possible with SVD or QR methods, or by specifying the flag\n. #DECOMP_NORMAL ):\n. \\f[\\texttt{dst} = \\arg \\min _X \\| \\texttt{src1} \\cdot \\texttt{X} - \\texttt{src2} \\|\\f]\n. \n. If #DECOMP_LU or #DECOMP_CHOLESKY method is used, the function returns 1\n. if src1 (or \\f$\\texttt{src1}^T\\texttt{src1}\\f$ ) is non-singular. Otherwise,\n. it returns 0. In the latter case, dst is not valid. Other methods find a\n. pseudo-solution in case of a singular left-hand side part.\n. \n. @note If you want to find a unity-norm solution of an under-defined\n. singular system \\f$\\texttt{src1}\\cdot\\texttt{dst}=0\\f$ , the function solve\n. will not do the work. Use SVD::solveZ instead.\n. \n. @param src1 input matrix on the left-hand side of the system.\n. @param src2 input matrix on the right-hand side of the system.\n. @param dst output solution.\n. @param flags solution (matrix inversion) method (#DecompTypes)\n. @sa invert, SVD, eigen' - ... - -def solveCubic(coeffs, roots=...) -> typing.Any: - 'solveCubic(coeffs[, roots]) -> retval, roots\n. @brief Finds the real roots of a cubic equation.\n. \n. The function solveCubic finds the real roots of a cubic equation:\n. - if coeffs is a 4-element vector:\n. \\f[\\texttt{coeffs} [0] x^3 + \\texttt{coeffs} [1] x^2 + \\texttt{coeffs} [2] x + \\texttt{coeffs} [3] = 0\\f]\n. - if coeffs is a 3-element vector:\n. \\f[x^3 + \\texttt{coeffs} [0] x^2 + \\texttt{coeffs} [1] x + \\texttt{coeffs} [2] = 0\\f]\n. \n. The roots are stored in the roots array.\n. @param coeffs equation coefficients, an array of 3 or 4 elements.\n. @param roots output array of real roots that has 1 or 3 elements.\n. @return number of real roots. It can be 0, 1 or 2.' - ... - -def solveLP(Func, Constr, z=...) -> typing.Any: - 'solveLP(Func, Constr[, z]) -> retval, z\n. @brief Solve given (non-integer) linear programming problem using the Simplex Algorithm (Simplex Method).\n. \n. What we mean here by "linear programming problem" (or LP problem, for short) can be formulated as:\n. \n. \\f[\\mbox{Maximize } c\\cdot x\\\\\n. \\mbox{Subject to:}\\\\\n. Ax\\leq b\\\\\n. x\\geq 0\\f]\n. \n. Where \\f$c\\f$ is fixed `1`-by-`n` row-vector, \\f$A\\f$ is fixed `m`-by-`n` matrix, \\f$b\\f$ is fixed `m`-by-`1`\n. column vector and \\f$x\\f$ is an arbitrary `n`-by-`1` column vector, which satisfies the constraints.\n. \n. Simplex algorithm is one of many algorithms that are designed to handle this sort of problems\n. efficiently. Although it is not optimal in theoretical sense (there exist algorithms that can solve\n. any problem written as above in polynomial time, while simplex method degenerates to exponential\n. time for some special cases), it is well-studied, easy to implement and is shown to work well for\n. real-life purposes.\n. \n. The particular implementation is taken almost verbatim from **Introduction to Algorithms, third\n. edition** by T. H. Cormen, C. E. Leiserson, R. L. Rivest and Clifford Stein. In particular, the\n. Bland\'s rule is used to prevent cycling.\n. \n. @param Func This row-vector corresponds to \\f$c\\f$ in the LP problem formulation (see above). It should\n. contain 32- or 64-bit floating point numbers. As a convenience, column-vector may be also submitted,\n. in the latter case it is understood to correspond to \\f$c^T\\f$.\n. @param Constr `m`-by-`n+1` matrix, whose rightmost column corresponds to \\f$b\\f$ in formulation above\n. and the remaining to \\f$A\\f$. It should contain 32- or 64-bit floating point numbers.\n. @param z The solution will be returned here as a column-vector - it corresponds to \\f$c\\f$ in the\n. formulation above. It will contain 64-bit floating point numbers.\n. @return One of cv::SolveLPResult' - ... - -def solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags: int, rvecs=..., tvecs=...) -> typing.Any: - 'solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, flags[, rvecs[, tvecs]]) -> retval, rvecs, tvecs\n. @brief Finds an object pose from 3 3D-2D point correspondences.\n. \n. @param objectPoints Array of object points in the object coordinate space, 3x3 1-channel or\n. 1x3/3x1 3-channel. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, 3x2 1-channel or 1x3/3x1 2-channel.\n. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvecs Output rotation vectors (see @ref Rodrigues ) that, together with tvecs, brings points from\n. the model coordinate system to the camera coordinate system. A P3P problem has up to 4 solutions.\n. @param tvecs Output translation vectors.\n. @param flags Method for solving a P3P problem:\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke and S. Roumeliotis.\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. \n. The function estimates the object pose given 3 object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients.\n. \n. @note\n. The solutions are sorted by reprojection errors (lowest to highest).' - ... - -def solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., flags: int = ...) -> typing.Any: - 'solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, flags]]]]) -> retval, rvec, tvec\n. @brief Finds an object pose from 3D-2D point correspondences.\n. This function returns the rotation and the translation vectors that transform a 3D point expressed in the object\n. coordinate frame to the camera coordinate frame, using different methods:\n. - P3P methods (@ref SOLVEPNP_P3P, @ref SOLVEPNP_AP3P): need 4 input points to return a unique solution.\n. - @ref SOLVEPNP_IPPE Input points must be >= 4 and object points must be coplanar.\n. - @ref SOLVEPNP_IPPE_SQUARE Special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. - for all the other flags, number of input points must be >= 4 and object points can be in any configuration.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Output translation vector.\n. @param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param flags Method for solving a PnP problem:\n. - **SOLVEPNP_ITERATIVE** Iterative method is based on a Levenberg-Marquardt optimization. In\n. this case the function finds such a pose that minimizes reprojection error, that is the sum\n. of squared distances between the observed projections imagePoints and the projected (using\n. projectPoints ) objectPoints .\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_EPNP** Method has been introduced by F. Moreno-Noguer, V. Lepetit and P. Fua in the\n. paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).\n. - **SOLVEPNP_DLS** Method is based on the paper of J. Hesch and S. Roumeliotis.\n. "A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).\n. - **SOLVEPNP_UPNP** Method is based on the paper of A. Penate-Sanchez, J. Andrade-Cetto,\n. F. Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length\n. Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \\f$f_x\\f$ and \\f$f_y\\f$\n. assuming that both have the same value. Then the cameraMatrix is updated with the estimated\n. focal length.\n. - **SOLVEPNP_IPPE** Method is based on the paper of T. Collins and A. Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method requires coplanar object points.\n. - **SOLVEPNP_IPPE_SQUARE** Method is based on the paper of Toby Collins and Adrien Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method is suitable for marker pose estimation.\n. It requires 4 coplanar object points defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. \n. The function estimates the object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients, see the figure below\n. (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward\n. and the Z-axis forward).\n. \n. ![](pnp.jpg)\n. \n. Points expressed in the world frame \\f$ \\bf{X}_w \\f$ are projected into the image plane \\f$ \\left[ u, v \\right] \\f$\n. using the perspective projection model \\f$ \\Pi \\f$ and the camera intrinsic parameters matrix \\f$ \\bf{A} \\f$:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\bf{A} \\hspace{0.1em} \\Pi \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. f_x & 0 & c_x \\\\\n. 0 & f_y & c_y \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. 1 & 0 & 0 & 0 \\\\\n. 0 & 1 & 0 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow transforming\n. a 3D point expressed in the world frame into the camera frame:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. @note\n. - An example of how to use solvePnP for planar augmented reality can be found at\n. opencv_source_code/samples/python/plane_ar.py\n. - If you are using Python:\n. - Numpy array slices won\'t work as input because solvePnP requires contiguous\n. arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of\n. modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. - The P3P algorithm requires image points to be in an array of shape (N,1,2) due\n. to its calling of cv::undistortPoints (around line 75 of modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. which requires 2-channel information.\n. - Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of\n. it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =\n. np.ascontiguousarray(D[:,:2]).reshape((N,1,2))\n. - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are\n. unstable and sometimes give completely wrong results. If you pass one of these two\n. flags, **SOLVEPNP_EPNP** method will be used instead.\n. - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**\n. methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions\n. of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).\n. - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points\n. are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the\n. global solution to converge.\n. - With **SOLVEPNP_IPPE** input points must be >= 4 and object points must be coplanar.\n. - With **SOLVEPNP_IPPE_SQUARE** this is a special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]' - ... - -def solvePnPGeneric(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvecs=..., tvecs=..., useExtrinsicGuess=..., flags: int = ..., rvec=..., tvec=..., reprojectionError=...) -> typing.Any: - 'solvePnPGeneric(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvecs[, tvecs[, useExtrinsicGuess[, flags[, rvec[, tvec[, reprojectionError]]]]]]]) -> retval, rvecs, tvecs, reprojectionError\n. @brief Finds an object pose from 3D-2D point correspondences.\n. This function returns a list of all the possible solutions (a solution is a \n. couple), depending on the number of input points and the chosen method:\n. - P3P methods (@ref SOLVEPNP_P3P, @ref SOLVEPNP_AP3P): 3 or 4 input points. Number of returned solutions can be between 0 and 4 with 3 input points.\n. - @ref SOLVEPNP_IPPE Input points must be >= 4 and object points must be coplanar. Returns 2 solutions.\n. - @ref SOLVEPNP_IPPE_SQUARE Special case suitable for marker pose estimation.\n. Number of input points must be 4 and 2 solutions are returned. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. - for all the other flags, number of input points must be >= 4 and object points can be in any configuration.\n. Only 1 solution is returned.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvecs Vector of output rotation vectors (see @ref Rodrigues ) that, together with tvecs, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvecs Vector of output translation vectors.\n. @param useExtrinsicGuess Parameter used for #SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param flags Method for solving a PnP problem:\n. - **SOLVEPNP_ITERATIVE** Iterative method is based on a Levenberg-Marquardt optimization. In\n. this case the function finds such a pose that minimizes reprojection error, that is the sum\n. of squared distances between the observed projections imagePoints and the projected (using\n. projectPoints ) objectPoints .\n. - **SOLVEPNP_P3P** Method is based on the paper of X.S. Gao, X.-R. Hou, J. Tang, H.-F. Chang\n. "Complete Solution Classification for the Perspective-Three-Point Problem" (@cite gao2003complete).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_AP3P** Method is based on the paper of T. Ke, S. Roumeliotis\n. "An Efficient Algebraic Solution to the Perspective-Three-Point Problem" (@cite Ke17).\n. In this case the function requires exactly four object and image points.\n. - **SOLVEPNP_EPNP** Method has been introduced by F.Moreno-Noguer, V.Lepetit and P.Fua in the\n. paper "EPnP: Efficient Perspective-n-Point Camera Pose Estimation" (@cite lepetit2009epnp).\n. - **SOLVEPNP_DLS** Method is based on the paper of Joel A. Hesch and Stergios I. Roumeliotis.\n. "A Direct Least-Squares (DLS) Method for PnP" (@cite hesch2011direct).\n. - **SOLVEPNP_UPNP** Method is based on the paper of A.Penate-Sanchez, J.Andrade-Cetto,\n. F.Moreno-Noguer. "Exhaustive Linearization for Robust Camera Pose and Focal Length\n. Estimation" (@cite penate2013exhaustive). In this case the function also estimates the parameters \\f$f_x\\f$ and \\f$f_y\\f$\n. assuming that both have the same value. Then the cameraMatrix is updated with the estimated\n. focal length.\n. - **SOLVEPNP_IPPE** Method is based on the paper of T. Collins and A. Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method requires coplanar object points.\n. - **SOLVEPNP_IPPE_SQUARE** Method is based on the paper of Toby Collins and Adrien Bartoli.\n. "Infinitesimal Plane-Based Pose Estimation" (@cite Collins14). This method is suitable for marker pose estimation.\n. It requires 4 coplanar object points defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]\n. @param rvec Rotation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE\n. and useExtrinsicGuess is set to true.\n. @param tvec Translation vector used to initialize an iterative PnP refinement algorithm, when flag is SOLVEPNP_ITERATIVE\n. and useExtrinsicGuess is set to true.\n. @param reprojectionError Optional vector of reprojection error, that is the RMS error\n. (\\f$ \\text{RMSE} = \\sqrt{\\frac{\\sum_{i}^{N} \\left ( \\hat{y_i} - y_i \\right )^2}{N}} \\f$) between the input image points\n. and the 3D object points projected with the estimated pose.\n. \n. The function estimates the object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients, see the figure below\n. (more precisely, the X-axis of the camera frame is pointing to the right, the Y-axis downward\n. and the Z-axis forward).\n. \n. ![](pnp.jpg)\n. \n. Points expressed in the world frame \\f$ \\bf{X}_w \\f$ are projected into the image plane \\f$ \\left[ u, v \\right] \\f$\n. using the perspective projection model \\f$ \\Pi \\f$ and the camera intrinsic parameters matrix \\f$ \\bf{A} \\f$:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\bf{A} \\hspace{0.1em} \\Pi \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. u \\\\\n. v \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. f_x & 0 & c_x \\\\\n. 0 & f_y & c_y \\\\\n. 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. 1 & 0 & 0 & 0 \\\\\n. 0 & 1 & 0 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. The estimated pose is thus the rotation (`rvec`) and the translation (`tvec`) vectors that allow transforming\n. a 3D point expressed in the world frame into the camera frame:\n. \n. \\f[\n. \\begin{align*}\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\hspace{0.2em} ^{c}\\bf{T}_w\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix} \\\\\n. \\begin{bmatrix}\n. X_c \\\\\n. Y_c \\\\\n. Z_c \\\\\n. 1\n. \\end{bmatrix} &=\n. \\begin{bmatrix}\n. r_{11} & r_{12} & r_{13} & t_x \\\\\n. r_{21} & r_{22} & r_{23} & t_y \\\\\n. r_{31} & r_{32} & r_{33} & t_z \\\\\n. 0 & 0 & 0 & 1\n. \\end{bmatrix}\n. \\begin{bmatrix}\n. X_{w} \\\\\n. Y_{w} \\\\\n. Z_{w} \\\\\n. 1\n. \\end{bmatrix}\n. \\end{align*}\n. \\f]\n. \n. @note\n. - An example of how to use solvePnP for planar augmented reality can be found at\n. opencv_source_code/samples/python/plane_ar.py\n. - If you are using Python:\n. - Numpy array slices won\'t work as input because solvePnP requires contiguous\n. arrays (enforced by the assertion using cv::Mat::checkVector() around line 55 of\n. modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. - The P3P algorithm requires image points to be in an array of shape (N,1,2) due\n. to its calling of cv::undistortPoints (around line 75 of modules/calib3d/src/solvepnp.cpp version 2.4.9)\n. which requires 2-channel information.\n. - Thus, given some data D = np.array(...) where D.shape = (N,M), in order to use a subset of\n. it as, e.g., imagePoints, one must effectively copy it into a new array: imagePoints =\n. np.ascontiguousarray(D[:,:2]).reshape((N,1,2))\n. - The methods **SOLVEPNP_DLS** and **SOLVEPNP_UPNP** cannot be used as the current implementations are\n. unstable and sometimes give completely wrong results. If you pass one of these two\n. flags, **SOLVEPNP_EPNP** method will be used instead.\n. - The minimum number of points is 4 in the general case. In the case of **SOLVEPNP_P3P** and **SOLVEPNP_AP3P**\n. methods, it is required to use exactly 4 points (the first 3 points are used to estimate all the solutions\n. of the P3P problem, the last one is used to retain the best solution that minimizes the reprojection error).\n. - With **SOLVEPNP_ITERATIVE** method and `useExtrinsicGuess=true`, the minimum number of points is 3 (3 points\n. are sufficient to compute a pose but there are up to 4 solutions). The initial solution should be close to the\n. global solution to converge.\n. - With **SOLVEPNP_IPPE** input points must be >= 4 and object points must be coplanar.\n. - With **SOLVEPNP_IPPE_SQUARE** this is a special case suitable for marker pose estimation.\n. Number of input points must be 4. Object points must be defined in the following order:\n. - point 0: [-squareLength / 2, squareLength / 2, 0]\n. - point 1: [ squareLength / 2, squareLength / 2, 0]\n. - point 2: [ squareLength / 2, -squareLength / 2, 0]\n. - point 3: [-squareLength / 2, -squareLength / 2, 0]' - ... - -def solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., iterationsCount=..., reprojectionError=..., confidence=..., inliers=..., flags: int = ...) -> typing.Any: - 'solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs[, rvec[, tvec[, useExtrinsicGuess[, iterationsCount[, reprojectionError[, confidence[, inliers[, flags]]]]]]]]) -> retval, rvec, tvec, inliers\n. @brief Finds an object pose from 3D-2D point correspondences using the RANSAC scheme.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or\n. 1xN/Nx1 3-channel, where N is the number of points. vector\\ can be also passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can be also passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{fx}{0}{cx}{0}{fy}{cy}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system.\n. @param tvec Output translation vector.\n. @param useExtrinsicGuess Parameter used for @ref SOLVEPNP_ITERATIVE. If true (1), the function uses\n. the provided rvec and tvec values as initial approximations of the rotation and translation\n. vectors, respectively, and further optimizes them.\n. @param iterationsCount Number of iterations.\n. @param reprojectionError Inlier threshold value used by the RANSAC procedure. The parameter value\n. is the maximum allowed distance between the observed and computed point projections to consider it\n. an inlier.\n. @param confidence The probability that the algorithm produces a useful result.\n. @param inliers Output vector that contains indices of inliers in objectPoints and imagePoints .\n. @param flags Method for solving a PnP problem (see @ref solvePnP ).\n. \n. The function estimates an object pose given a set of object points, their corresponding image\n. projections, as well as the camera matrix and the distortion coefficients. This function finds such\n. a pose that minimizes reprojection error, that is, the sum of squared distances between the observed\n. projections imagePoints and the projected (using @ref projectPoints ) objectPoints. The use of RANSAC\n. makes the function resistant to outliers.\n. \n. @note\n. - An example of how to use solvePNPRansac for object detection can be found at\n. opencv_source_code/samples/cpp/tutorial_code/calib3d/real_time_pose_estimation/\n. - The default method used to estimate the camera pose for the Minimal Sample Sets step\n. is #SOLVEPNP_EPNP. Exceptions are:\n. - if you choose #SOLVEPNP_P3P or #SOLVEPNP_AP3P, these methods will be used.\n. - if the number of input points is equal to 4, #SOLVEPNP_P3P is used.\n. - The method used to estimate the camera pose using all the inliers is defined by the\n. flags parameters unless it is equal to #SOLVEPNP_P3P or #SOLVEPNP_AP3P. In this case,\n. the method #SOLVEPNP_EPNP will be used instead.' - ... - -def solvePnPRefineLM(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=...) -> typing.Any: - 'solvePnPRefineLM(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec[, criteria]) -> rvec, tvec\n. @brief Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame\n. to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Input/Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system. Input values are used as an initial solution.\n. @param tvec Input/Output translation vector. Input values are used as an initial solution.\n. @param criteria Criteria when to stop the Levenberg-Marquard iterative algorithm.\n. \n. The function refines the object pose given at least 3 object points, their corresponding image\n. projections, an initial solution for the rotation and translation vector,\n. as well as the camera matrix and the distortion coefficients.\n. The function minimizes the projection error with respect to the rotation and the translation vectors, according\n. to a Levenberg-Marquardt iterative minimization @cite Madsen04 @cite Eade13 process.' - ... - -def solvePnPRefineVVS(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=..., VVSlambda=...) -> typing.Any: - 'solvePnPRefineVVS(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec[, criteria[, VVSlambda]]) -> rvec, tvec\n. @brief Refine a pose (the translation and the rotation that transform a 3D point expressed in the object coordinate frame\n. to the camera coordinate frame) from a 3D-2D point correspondences and starting from an initial solution.\n. \n. @param objectPoints Array of object points in the object coordinate space, Nx3 1-channel or 1xN/Nx1 3-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param imagePoints Array of corresponding image points, Nx2 1-channel or 1xN/Nx1 2-channel,\n. where N is the number of points. vector\\ can also be passed here.\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$ of\n. 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are\n. assumed.\n. @param rvec Input/Output rotation vector (see @ref Rodrigues ) that, together with tvec, brings points from\n. the model coordinate system to the camera coordinate system. Input values are used as an initial solution.\n. @param tvec Input/Output translation vector. Input values are used as an initial solution.\n. @param criteria Criteria when to stop the Levenberg-Marquard iterative algorithm.\n. @param VVSlambda Gain for the virtual visual servoing control law, equivalent to the \\f$\\alpha\\f$\n. gain in the Damped Gauss-Newton formulation.\n. \n. The function refines the object pose given at least 3 object points, their corresponding image\n. projections, an initial solution for the rotation and translation vector,\n. as well as the camera matrix and the distortion coefficients.\n. The function minimizes the projection error with respect to the rotation and the translation vectors, using a\n. virtual visual servoing (VVS) @cite Chaumette06 @cite Marchand16 scheme.' - ... - -def solvePoly(coeffs, roots=..., maxIters=...) -> typing.Any: - 'solvePoly(coeffs[, roots[, maxIters]]) -> retval, roots\n. @brief Finds the real or complex roots of a polynomial equation.\n. \n. The function cv::solvePoly finds real and complex roots of a polynomial equation:\n. \\f[\\texttt{coeffs} [n] x^{n} + \\texttt{coeffs} [n-1] x^{n-1} + ... + \\texttt{coeffs} [1] x + \\texttt{coeffs} [0] = 0\\f]\n. @param coeffs array of polynomial coefficients.\n. @param roots output (complex) array of roots.\n. @param maxIters maximum number of iterations the algorithm does.' - ... - -def sort(src: Mat, flags: int, dts: Mat = ...) -> typing.Any: - 'sort(src, flags[, dst]) -> dst\n. @brief Sorts each row or each column of a matrix.\n. \n. The function cv::sort sorts each matrix row or each matrix column in\n. ascending or descending order. So you should pass two operation flags to\n. get desired behaviour. If you want to sort matrix rows or columns\n. lexicographically, you can use STL std::sort generic function with the\n. proper comparison predicate.\n. \n. @param src input single-channel array.\n. @param dst output array of the same size and type as src.\n. @param flags operation flags, a combination of #SortFlags\n. @sa sortIdx, randShuffle' - ... - -def sortIdx(src: Mat, flags: int, dts: Mat = ...) -> typing.Any: - 'sortIdx(src, flags[, dst]) -> dst\n. @brief Sorts each row or each column of a matrix.\n. \n. The function cv::sortIdx sorts each matrix row or each matrix column in the\n. ascending or descending order. So you should pass two operation flags to\n. get desired behaviour. Instead of reordering the elements themselves, it\n. stores the indices of sorted elements in the output array. For example:\n. @code\n. Mat A = Mat::eye(3,3,CV_32F), B;\n. sortIdx(A, B, SORT_EVERY_ROW + SORT_ASCENDING);\n. // B will probably contain\n. // (because of equal elements in A some permutations are possible):\n. // [[1, 2, 0], [0, 2, 1], [0, 1, 2]]\n. @endcode\n. @param src input single-channel array.\n. @param dst output integer array of the same size as src.\n. @param flags operation flags that could be a combination of cv::SortFlags\n. @sa sort, randShuffle' - ... - -def spatialGradient(src: Mat, dx=..., dy=..., ksize=..., borderType=...) -> typing.Any: - 'spatialGradient(src[, dx[, dy[, ksize[, borderType]]]]) -> dx, dy\n. @brief Calculates the first order image derivative in both x and y using a Sobel operator\n. \n. Equivalent to calling:\n. \n. @code\n. Sobel( src, dx, CV_16SC1, 1, 0, 3 );\n. Sobel( src, dy, CV_16SC1, 0, 1, 3 );\n. @endcode\n. \n. @param src input image.\n. @param dx output image with first-order derivative in x.\n. @param dy output image with first-order derivative in y.\n. @param ksize size of Sobel kernel. It must be 3.\n. @param borderType pixel extrapolation method, see #BorderTypes.\n. Only #BORDER_DEFAULT=#BORDER_REFLECT_101 and #BORDER_REPLICATE are supported.\n. \n. @sa Sobel' - ... - -def split(m, mv=...) -> typing.Any: - 'split(m[, mv]) -> mv\n. @overload\n. @param m input multi-channel array.\n. @param mv output vector of arrays; the arrays themselves are reallocated, if needed.' - ... - -def sqrBoxFilter(src: Mat, ddepth, ksize, dts: Mat = ..., anchor=..., normalize=..., borderType=...) -> typing.Any: - "sqrBoxFilter(src, ddepth, ksize[, dst[, anchor[, normalize[, borderType]]]]) -> dst\n. @brief Calculates the normalized sum of squares of the pixel values overlapping the filter.\n. \n. For every pixel \\f$ (x, y) \\f$ in the source image, the function calculates the sum of squares of those neighboring\n. pixel values which overlap the filter placed over the pixel \\f$ (x, y) \\f$.\n. \n. The unnormalized square box filter can be useful in computing local image statistics such as the the local\n. variance and standard deviation around the neighborhood of a pixel.\n. \n. @param src input image\n. @param dst output image of the same size and type as _src\n. @param ddepth the output image depth (-1 to use src.depth())\n. @param ksize kernel size\n. @param anchor kernel anchor point. The default value of Point(-1, -1) denotes that the anchor is at the kernel\n. center.\n. @param normalize flag, specifying whether the kernel is to be normalized by it's area or not.\n. @param borderType border mode used to extrapolate pixels outside of the image, see #BorderTypes. #BORDER_WRAP is not supported.\n. @sa boxFilter" - ... - -def sqrt(src: Mat, dts: Mat = ...) -> typing.Any: - 'sqrt(src[, dst]) -> dst\n. @brief Calculates a square root of array elements.\n. \n. The function cv::sqrt calculates a square root of each input array element.\n. In case of multi-channel arrays, each channel is processed\n. independently. The accuracy is approximately the same as of the built-in\n. std::sqrt .\n. @param src input floating-point array.\n. @param dst output array of the same size and type as src.' - ... - -def startWindowThread() -> typing.Any: - 'startWindowThread() -> retval\n.' - ... - -def stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R=..., T=..., E=..., F=..., flags: int = ..., criteria=...) -> typing.Any: - 'stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize[, R[, T[, E[, F[, flags[, criteria]]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F\n.' - ... - -def stereoCalibrateExtended(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, E=..., F=..., perViewErrors=..., flags: int = ..., criteria=...) -> typing.Any: - "stereoCalibrateExtended(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T[, E[, F[, perViewErrors[, flags[, criteria]]]]]) -> retval, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, R, T, E, F, perViewErrors\n. @brief Calibrates a stereo camera set up. This function finds the intrinsic parameters\n. for each of the two cameras and the extrinsic parameters between the two cameras.\n. \n. @param objectPoints Vector of vectors of the calibration pattern points. The same structure as\n. in @ref calibrateCamera. For each pattern view, both cameras need to see the same object\n. points. Therefore, objectPoints.size(), imagePoints1.size(), and imagePoints2.size() need to be\n. equal as well as objectPoints[i].size(), imagePoints1[i].size(), and imagePoints2[i].size() need to\n. be equal for each i.\n. @param imagePoints1 Vector of vectors of the projections of the calibration pattern points,\n. observed by the first camera. The same structure as in @ref calibrateCamera.\n. @param imagePoints2 Vector of vectors of the projections of the calibration pattern points,\n. observed by the second camera. The same structure as in @ref calibrateCamera.\n. @param cameraMatrix1 Input/output camera matrix for the first camera, the same as in\n. @ref calibrateCamera. Furthermore, for the stereo case, additional flags may be used, see below.\n. @param distCoeffs1 Input/output vector of distortion coefficients, the same as in\n. @ref calibrateCamera.\n. @param cameraMatrix2 Input/output second camera matrix for the second camera. See description for\n. cameraMatrix1.\n. @param distCoeffs2 Input/output lens distortion coefficients for the second camera. See\n. description for distCoeffs1.\n. @param imageSize Size of the image used only to initialize the intrinsic camera matrices.\n. @param R Output rotation matrix. Together with the translation vector T, this matrix brings\n. points given in the first camera's coordinate system to points in the second camera's\n. coordinate system. In more technical terms, the tuple of R and T performs a change of basis\n. from the first camera's coordinate system to the second camera's coordinate system. Due to its\n. duality, this tuple is equivalent to the position of the first camera with respect to the\n. second camera coordinate system.\n. @param T Output translation vector, see description above.\n. @param E Output essential matrix.\n. @param F Output fundamental matrix.\n. @param perViewErrors Output vector of the RMS re-projection error estimated for each pattern view.\n. @param flags Different flags that may be zero or a combination of the following values:\n. - **CALIB_FIX_INTRINSIC** Fix cameraMatrix? and distCoeffs? so that only R, T, E, and F\n. matrices are estimated.\n. - **CALIB_USE_INTRINSIC_GUESS** Optimize some or all of the intrinsic parameters\n. according to the specified flags. Initial values are provided by the user.\n. - **CALIB_USE_EXTRINSIC_GUESS** R and T contain valid initial values that are optimized further.\n. Otherwise R and T are initialized to the median value of the pattern views (each dimension separately).\n. - **CALIB_FIX_PRINCIPAL_POINT** Fix the principal points during the optimization.\n. - **CALIB_FIX_FOCAL_LENGTH** Fix \\f$f^{(j)}_x\\f$ and \\f$f^{(j)}_y\\f$ .\n. - **CALIB_FIX_ASPECT_RATIO** Optimize \\f$f^{(j)}_y\\f$ . Fix the ratio \\f$f^{(j)}_x/f^{(j)}_y\\f$\n. .\n. - **CALIB_SAME_FOCAL_LENGTH** Enforce \\f$f^{(0)}_x=f^{(1)}_x\\f$ and \\f$f^{(0)}_y=f^{(1)}_y\\f$ .\n. - **CALIB_ZERO_TANGENT_DIST** Set tangential distortion coefficients for each camera to\n. zeros and fix there.\n. - **CALIB_FIX_K1,...,CALIB_FIX_K6** Do not change the corresponding radial\n. distortion coefficient during the optimization. If CALIB_USE_INTRINSIC_GUESS is set,\n. the coefficient from the supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_RATIONAL_MODEL** Enable coefficients k4, k5, and k6. To provide the backward\n. compatibility, this extra flag should be explicitly specified to make the calibration\n. function use the rational model and return 8 coefficients. If the flag is not set, the\n. function computes and returns only 5 distortion coefficients.\n. - **CALIB_THIN_PRISM_MODEL** Coefficients s1, s2, s3 and s4 are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the thin prism model and return 12 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_S1_S2_S3_S4** The thin prism distortion coefficients are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. - **CALIB_TILTED_MODEL** Coefficients tauX and tauY are enabled. To provide the\n. backward compatibility, this extra flag should be explicitly specified to make the\n. calibration function use the tilted sensor model and return 14 coefficients. If the flag is not\n. set, the function computes and returns only 5 distortion coefficients.\n. - **CALIB_FIX_TAUX_TAUY** The coefficients of the tilted sensor model are not changed during\n. the optimization. If CALIB_USE_INTRINSIC_GUESS is set, the coefficient from the\n. supplied distCoeffs matrix is used. Otherwise, it is set to 0.\n. @param criteria Termination criteria for the iterative optimization algorithm.\n. \n. The function estimates the transformation between two cameras making a stereo pair. If one computes\n. the poses of an object relative to the first camera and to the second camera,\n. ( \\f$R_1\\f$,\\f$T_1\\f$ ) and (\\f$R_2\\f$,\\f$T_2\\f$), respectively, for a stereo camera where the\n. relative position and orientation between the two cameras are fixed, then those poses definitely\n. relate to each other. This means, if the relative position and orientation (\\f$R\\f$,\\f$T\\f$) of the\n. two cameras is known, it is possible to compute (\\f$R_2\\f$,\\f$T_2\\f$) when (\\f$R_1\\f$,\\f$T_1\\f$) is\n. given. This is what the described function does. It computes (\\f$R\\f$,\\f$T\\f$) such that:\n. \n. \\f[R_2=R R_1\\f]\n. \\f[T_2=R T_1 + T.\\f]\n. \n. Therefore, one can compute the coordinate representation of a 3D point for the second camera's\n. coordinate system when given the point's coordinate representation in the first camera's coordinate\n. system:\n. \n. \\f[\\begin{bmatrix}\n. X_2 \\\\\n. Y_2 \\\\\n. Z_2 \\\\\n. 1\n. \\end{bmatrix} = \\begin{bmatrix}\n. R & T \\\\\n. 0 & 1\n. \\end{bmatrix} \\begin{bmatrix}\n. X_1 \\\\\n. Y_1 \\\\\n. Z_1 \\\\\n. 1\n. \\end{bmatrix}.\\f]\n. \n. \n. Optionally, it computes the essential matrix E:\n. \n. \\f[E= \\vecthreethree{0}{-T_2}{T_1}{T_2}{0}{-T_0}{-T_1}{T_0}{0} R\\f]\n. \n. where \\f$T_i\\f$ are components of the translation vector \\f$T\\f$ : \\f$T=[T_0, T_1, T_2]^T\\f$ .\n. And the function can also compute the fundamental matrix F:\n. \n. \\f[F = cameraMatrix2^{-T}\\cdot E \\cdot cameraMatrix1^{-1}\\f]\n. \n. Besides the stereo-related information, the function can also perform a full calibration of each of\n. the two cameras. However, due to the high dimensionality of the parameter space and noise in the\n. input data, the function can diverge from the correct solution. If the intrinsic parameters can be\n. estimated with high accuracy for each of the cameras individually (for example, using\n. calibrateCamera ), you are recommended to do so and then pass CALIB_FIX_INTRINSIC flag to the\n. function along with the computed intrinsic parameters. Otherwise, if all the parameters are\n. estimated at once, it makes sense to restrict some parameters, for example, pass\n. CALIB_SAME_FOCAL_LENGTH and CALIB_ZERO_TANGENT_DIST flags, which is usually a\n. reasonable assumption.\n. \n. Similarly to calibrateCamera, the function minimizes the total re-projection error for all the\n. points in all the available views from both cameras. The function returns the final value of the\n. re-projection error." - ... - -def stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, R1=..., R2=..., P1=..., P2=..., Q=..., flags: int = ..., alpha=..., newImageSize=...) -> typing.Any: - 'stereoRectify(cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T[, R1[, R2[, P1[, P2[, Q[, flags[, alpha[, newImageSize]]]]]]]]) -> R1, R2, P1, P2, Q, validPixROI1, validPixROI2\n. @brief Computes rectification transforms for each head of a calibrated stereo camera.\n. \n. @param cameraMatrix1 First camera matrix.\n. @param distCoeffs1 First camera distortion parameters.\n. @param cameraMatrix2 Second camera matrix.\n. @param distCoeffs2 Second camera distortion parameters.\n. @param imageSize Size of the image used for stereo calibration.\n. @param R Rotation matrix from the coordinate system of the first camera to the second camera,\n. see @ref stereoCalibrate.\n. @param T Translation vector from the coordinate system of the first camera to the second camera,\n. see @ref stereoCalibrate.\n. @param R1 Output 3x3 rectification transform (rotation matrix) for the first camera. This matrix\n. brings points given in the unrectified first camera\'s coordinate system to points in the rectified\n. first camera\'s coordinate system. In more technical terms, it performs a change of basis from the\n. unrectified first camera\'s coordinate system to the rectified first camera\'s coordinate system.\n. @param R2 Output 3x3 rectification transform (rotation matrix) for the second camera. This matrix\n. brings points given in the unrectified second camera\'s coordinate system to points in the rectified\n. second camera\'s coordinate system. In more technical terms, it performs a change of basis from the\n. unrectified second camera\'s coordinate system to the rectified second camera\'s coordinate system.\n. @param P1 Output 3x4 projection matrix in the new (rectified) coordinate systems for the first\n. camera, i.e. it projects points given in the rectified first camera coordinate system into the\n. rectified first camera\'s image.\n. @param P2 Output 3x4 projection matrix in the new (rectified) coordinate systems for the second\n. camera, i.e. it projects points given in the rectified first camera coordinate system into the\n. rectified second camera\'s image.\n. @param Q Output \\f$4 \\times 4\\f$ disparity-to-depth mapping matrix (see @ref reprojectImageTo3D).\n. @param flags Operation flags that may be zero or CALIB_ZERO_DISPARITY . If the flag is set,\n. the function makes the principal points of each camera have the same pixel coordinates in the\n. rectified views. And if the flag is not set, the function may still shift the images in the\n. horizontal or vertical direction (depending on the orientation of epipolar lines) to maximize the\n. useful image area.\n. @param alpha Free scaling parameter. If it is -1 or absent, the function performs the default\n. scaling. Otherwise, the parameter should be between 0 and 1. alpha=0 means that the rectified\n. images are zoomed and shifted so that only valid pixels are visible (no black areas after\n. rectification). alpha=1 means that the rectified image is decimated and shifted so that all the\n. pixels from the original images from the cameras are retained in the rectified images (no source\n. image pixels are lost). Any intermediate value yields an intermediate result between\n. those two extreme cases.\n. @param newImageSize New image resolution after rectification. The same size should be passed to\n. initUndistortRectifyMap (see the stereo_calib.cpp sample in OpenCV samples directory). When (0,0)\n. is passed (default), it is set to the original imageSize . Setting it to a larger value can help you\n. preserve details in the original image, especially when there is a big radial distortion.\n. @param validPixROI1 Optional output rectangles inside the rectified images where all the pixels\n. are valid. If alpha=0 , the ROIs cover the whole images. Otherwise, they are likely to be smaller\n. (see the picture below).\n. @param validPixROI2 Optional output rectangles inside the rectified images where all the pixels\n. are valid. If alpha=0 , the ROIs cover the whole images. Otherwise, they are likely to be smaller\n. (see the picture below).\n. \n. The function computes the rotation matrices for each camera that (virtually) make both camera image\n. planes the same plane. Consequently, this makes all the epipolar lines parallel and thus simplifies\n. the dense stereo correspondence problem. The function takes the matrices computed by stereoCalibrate\n. as input. As output, it provides two rotation matrices and also two projection matrices in the new\n. coordinates. The function distinguishes the following two cases:\n. \n. - **Horizontal stereo**: the first and the second camera views are shifted relative to each other\n. mainly along the x-axis (with possible small vertical shift). In the rectified images, the\n. corresponding epipolar lines in the left and right cameras are horizontal and have the same\n. y-coordinate. P1 and P2 look like:\n. \n. \\f[\\texttt{P1} = \\begin{bmatrix}\n. f & 0 & cx_1 & 0 \\\\\n. 0 & f & cy & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\\f]\n. \n. \\f[\\texttt{P2} = \\begin{bmatrix}\n. f & 0 & cx_2 & T_x*f \\\\\n. 0 & f & cy & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix} ,\\f]\n. \n. where \\f$T_x\\f$ is a horizontal shift between the cameras and \\f$cx_1=cx_2\\f$ if\n. CALIB_ZERO_DISPARITY is set.\n. \n. - **Vertical stereo**: the first and the second camera views are shifted relative to each other\n. mainly in the vertical direction (and probably a bit in the horizontal direction too). The epipolar\n. lines in the rectified images are vertical and have the same x-coordinate. P1 and P2 look like:\n. \n. \\f[\\texttt{P1} = \\begin{bmatrix}\n. f & 0 & cx & 0 \\\\\n. 0 & f & cy_1 & 0 \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix}\\f]\n. \n. \\f[\\texttt{P2} = \\begin{bmatrix}\n. f & 0 & cx & 0 \\\\\n. 0 & f & cy_2 & T_y*f \\\\\n. 0 & 0 & 1 & 0\n. \\end{bmatrix},\\f]\n. \n. where \\f$T_y\\f$ is a vertical shift between the cameras and \\f$cy_1=cy_2\\f$ if\n. CALIB_ZERO_DISPARITY is set.\n. \n. As you can see, the first three columns of P1 and P2 will effectively be the new "rectified" camera\n. matrices. The matrices, together with R1 and R2 , can then be passed to initUndistortRectifyMap to\n. initialize the rectification map for each camera.\n. \n. See below the screenshot from the stereo_calib.cpp sample. Some red horizontal lines pass through\n. the corresponding image regions. This means that the images are well rectified, which is what most\n. stereo correspondence algorithms rely on. The green rectangles are roi1 and roi2 . You see that\n. their interiors are all valid pixels.\n. \n. ![image](pics/stereo_undistort.jpg)' - ... - -def stereoRectifyUncalibrated(points1, points2, F, imgSize, H1=..., H2=..., threshold=...) -> typing.Any: - 'stereoRectifyUncalibrated(points1, points2, F, imgSize[, H1[, H2[, threshold]]]) -> retval, H1, H2\n. @brief Computes a rectification transform for an uncalibrated stereo camera.\n. \n. @param points1 Array of feature points in the first image.\n. @param points2 The corresponding points in the second image. The same formats as in\n. findFundamentalMat are supported.\n. @param F Input fundamental matrix. It can be computed from the same set of point pairs using\n. findFundamentalMat .\n. @param imgSize Size of the image.\n. @param H1 Output rectification homography matrix for the first image.\n. @param H2 Output rectification homography matrix for the second image.\n. @param threshold Optional threshold used to filter out the outliers. If the parameter is greater\n. than zero, all the point pairs that do not comply with the epipolar geometry (that is, the points\n. for which \\f$|\\texttt{points2[i]}^T*\\texttt{F}*\\texttt{points1[i]}|>\\texttt{threshold}\\f$ ) are\n. rejected prior to computing the homographies. Otherwise, all the points are considered inliers.\n. \n. The function computes the rectification transformations without knowing intrinsic parameters of the\n. cameras and their relative position in the space, which explains the suffix "uncalibrated". Another\n. related difference from stereoRectify is that the function outputs not the rectification\n. transformations in the object (3D) space, but the planar perspective transformations encoded by the\n. homography matrices H1 and H2 . The function implements the algorithm @cite Hartley99 .\n. \n. @note\n. While the algorithm does not need to know the intrinsic parameters of the cameras, it heavily\n. depends on the epipolar geometry. Therefore, if the camera lenses have a significant distortion,\n. it would be better to correct it before computing the fundamental matrix and calling this\n. function. For example, distortion coefficients can be estimated for each head of stereo camera\n. separately by using calibrateCamera . Then, the images can be corrected using undistort , or\n. just the point coordinates can be corrected with undistortPoints .' - ... - -def stylization(src: Mat, dts: Mat = ..., sigma_s=..., sigma_r=...) -> typing.Any: - 'stylization(src[, dst[, sigma_s[, sigma_r]]]) -> dst\n. @brief Stylization aims to produce digital imagery with a wide variety of effects not focused on\n. photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low\n. contrast while preserving, or enhancing, high-contrast features.\n. \n. @param src Input 8-bit 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param sigma_s %Range between 0 to 200.\n. @param sigma_r %Range between 0 to 1.' - ... - -def subtract(src1: Mat, src2: Mat, dts: Mat = ..., mask: Mat = ..., dtype=...) -> typing.Any: - 'subtract(src1, src2[, dst[, mask[, dtype]]]) -> dst\n. @brief Calculates the per-element difference between two arrays or array and a scalar.\n. \n. The function subtract calculates:\n. - Difference between two arrays, when both input arrays have the same size and the same number of\n. channels:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) - \\texttt{src2}(I)) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Difference between an array and a scalar, when src2 is constructed from Scalar or has the same\n. number of elements as `src1.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1}(I) - \\texttt{src2} ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - Difference between a scalar and an array, when src1 is constructed from Scalar or has the same\n. number of elements as `src2.channels()`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src1} - \\texttt{src2}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. - The reverse difference between a scalar and an array in the case of `SubRS`:\n. \\f[\\texttt{dst}(I) = \\texttt{saturate} ( \\texttt{src2} - \\texttt{src1}(I) ) \\quad \\texttt{if mask}(I) \\ne0\\f]\n. where I is a multi-dimensional index of array elements. In case of multi-channel arrays, each\n. channel is processed independently.\n. \n. The first function in the list above can be replaced with matrix expressions:\n. @code{.cpp}\n. dst = src1 - src2;\n. dst -= src1; // equivalent to subtract(dst, src1, dst);\n. @endcode\n. The input arrays and the output array can all have the same or different depths. For example, you\n. can subtract to 8-bit unsigned arrays and store the difference in a 16-bit signed array. Depth of\n. the output array is determined by dtype parameter. In the second and third cases above, as well as\n. in the first case, when src1.depth() == src2.depth(), dtype can be set to the default -1. In this\n. case the output array will have the same depth as the input array, be it src1, src2 or both.\n. @note Saturation is not applied when the output array has the depth CV_32S. You may even get\n. result of an incorrect sign in the case of overflow.\n. @param src1 first input array or a scalar.\n. @param src2 second input array or a scalar.\n. @param dst output array of the same size and the same number of channels as the input array.\n. @param mask optional operation mask; this is an 8-bit single channel array that specifies elements\n. of the output array to be changed.\n. @param dtype optional depth of the output array\n. @sa add, addWeighted, scaleAdd, Mat::convertTo' - ... - -def sumElems(src) -> typing.Any: - 'sumElems(src) -> retval\n. @brief Calculates the sum of array elements.\n. \n. The function cv::sum calculates and returns the sum of array elements,\n. independently for each channel.\n. @param src input array that must have from 1 to 4 channels.\n. @sa countNonZero, mean, meanStdDev, norm, minMaxLoc, reduce' - ... - -def textureFlattening(src: Mat, mask: Mat, dts: Mat = ..., low_threshold=..., high_threshold=..., kernel_size=...) -> typing.Any: - "textureFlattening(src, mask[, dst[, low_threshold[, high_threshold[, kernel_size]]]]) -> dst\n. @brief By retaining only the gradients at edge locations, before integrating with the Poisson solver, one\n. washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge %Detector is used.\n. \n. @param src Input 8-bit 3-channel image.\n. @param mask Input 8-bit 1 or 3-channel image.\n. @param dst Output image with the same size and type as src.\n. @param low_threshold %Range from 0 to 100.\n. @param high_threshold Value \\> 100.\n. @param kernel_size The size of the Sobel kernel to be used.\n. \n. @note\n. The algorithm assumes that the color of the source image is close to that of the destination. This\n. assumption means that when the colors don't match, the source image color gets tinted toward the\n. color of the destination image." - ... - -def threshold(src: Mat, thresh, maxval, type, dts: Mat = ...) -> typing.Any: - "threshold(src, thresh, maxval, type[, dst]) -> retval, dst\n. @brief Applies a fixed-level threshold to each array element.\n. \n. The function applies fixed-level thresholding to a multiple-channel array. The function is typically\n. used to get a bi-level (binary) image out of a grayscale image ( #compare could be also used for\n. this purpose) or for removing a noise, that is, filtering out pixels with too small or too large\n. values. There are several types of thresholding supported by the function. They are determined by\n. type parameter.\n. \n. Also, the special values #THRESH_OTSU or #THRESH_TRIANGLE may be combined with one of the\n. above values. In these cases, the function determines the optimal threshold value using the Otsu's\n. or Triangle algorithm and uses it instead of the specified thresh.\n. \n. @note Currently, the Otsu's and Triangle methods are implemented only for 8-bit single-channel images.\n. \n. @param src input array (multiple-channel, 8-bit or 32-bit floating point).\n. @param dst output array of the same size and type and the same number of channels as src.\n. @param thresh threshold value.\n. @param maxval maximum value to use with the #THRESH_BINARY and #THRESH_BINARY_INV thresholding\n. types.\n. @param type thresholding type (see #ThresholdTypes).\n. @return the computed threshold value if Otsu's or Triangle methods used.\n. \n. @sa adaptiveThreshold, findContours, compare, min, max" - ... - -def trace(mtx) -> typing.Any: - 'trace(mtx) -> retval\n. @brief Returns the trace of a matrix.\n. \n. The function cv::trace returns the sum of the diagonal elements of the\n. matrix mtx .\n. \\f[\\mathrm{tr} ( \\texttt{mtx} ) = \\sum _i \\texttt{mtx} (i,i)\\f]\n. @param mtx input matrix.' - ... - -def transform(src: Mat, m, dts: Mat = ...) -> typing.Any: - 'transform(src, m[, dst]) -> dst\n. @brief Performs the matrix transformation of every array element.\n. \n. The function cv::transform performs the matrix transformation of every\n. element of the array src and stores the results in dst :\n. \\f[\\texttt{dst} (I) = \\texttt{m} \\cdot \\texttt{src} (I)\\f]\n. (when m.cols=src.channels() ), or\n. \\f[\\texttt{dst} (I) = \\texttt{m} \\cdot [ \\texttt{src} (I); 1]\\f]\n. (when m.cols=src.channels()+1 )\n. \n. Every element of the N -channel array src is interpreted as N -element\n. vector that is transformed using the M x N or M x (N+1) matrix m to\n. M-element vector - the corresponding element of the output array dst .\n. \n. The function may be used for geometrical transformation of\n. N -dimensional points, arbitrary linear color space transformation (such\n. as various kinds of RGB to YUV transforms), shuffling the image\n. channels, and so forth.\n. @param src input array that must have as many channels (1 to 4) as\n. m.cols or m.cols-1.\n. @param dst output array of the same size and depth as src; it has as\n. many channels as m.rows.\n. @param m transformation 2x2 or 2x3 floating-point matrix.\n. @sa perspectiveTransform, getAffineTransform, estimateAffine2D, warpAffine, warpPerspective' - ... - -def transpose(src: Mat, dts: Mat = ...) -> typing.Any: - 'transpose(src[, dst]) -> dst\n. @brief Transposes a matrix.\n. \n. The function cv::transpose transposes the matrix src :\n. \\f[\\texttt{dst} (i,j) = \\texttt{src} (j,i)\\f]\n. @note No complex conjugation is done in case of a complex matrix. It\n. should be done separately if needed.\n. @param src input array.\n. @param dst output array of the same type as src.' - ... - -def triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D=...) -> typing.Any: - "triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2[, points4D]) -> points4D\n. @brief This function reconstructs 3-dimensional points (in homogeneous coordinates) by using\n. their observations with a stereo camera.\n. \n. @param projMatr1 3x4 projection matrix of the first camera, i.e. this matrix projects 3D points\n. given in the world's coordinate system into the first image.\n. @param projMatr2 3x4 projection matrix of the second camera, i.e. this matrix projects 3D points\n. given in the world's coordinate system into the second image.\n. @param projPoints1 2xN array of feature points in the first image. In the case of the c++ version,\n. it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.\n. @param projPoints2 2xN array of corresponding points in the second image. In the case of the c++\n. version, it can be also a vector of feature points or two-channel matrix of size 1xN or Nx1.\n. @param points4D 4xN array of reconstructed points in homogeneous coordinates. These points are\n. returned in the world's coordinate system.\n. \n. @note\n. Keep in mind that all input data should be of float type in order for this function to work.\n. \n. @note\n. If the projection matrices from @ref stereoRectify are used, then the returned points are\n. represented in the first camera's rectified coordinate system.\n. \n. @sa\n. reprojectImageTo3D" - ... - -def undistort(src: Mat, cameraMatrix, distCoeffs, dts: Mat = ..., newCameraMatrix=...) -> typing.Any: - 'undistort(src, cameraMatrix, distCoeffs[, dst[, newCameraMatrix]]) -> dst\n. @brief Transforms an image to compensate for lens distortion.\n. \n. The function transforms an image to compensate radial and tangential lens distortion.\n. \n. The function is simply a combination of #initUndistortRectifyMap (with unity R ) and #remap\n. (with bilinear interpolation). See the former function for details of the transformation being\n. performed.\n. \n. Those pixels in the destination image, for which there is no correspondent pixels in the source\n. image, are filled with zeros (black color).\n. \n. A particular subset of the source image that will be visible in the corrected image can be regulated\n. by newCameraMatrix. You can use #getOptimalNewCameraMatrix to compute the appropriate\n. newCameraMatrix depending on your requirements.\n. \n. The camera matrix and the distortion parameters can be determined using #calibrateCamera. If\n. the resolution of images is different from the resolution used at the calibration stage, \\f$f_x,\n. f_y, c_x\\f$ and \\f$c_y\\f$ need to be scaled accordingly, while the distortion coefficients remain\n. the same.\n. \n. @param src Input (distorted) image.\n. @param dst Output (corrected) image that has the same size and type as src .\n. @param cameraMatrix Input camera matrix \\f$A = \\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param newCameraMatrix Camera matrix of the distorted image. By default, it is the same as\n. cameraMatrix but you may additionally scale and shift the result by using a different matrix.' - ... - -def undistortPoints(src: Mat, cameraMatrix, distCoeffs, dts: Mat = ..., R=..., P=...) -> typing.Any: - 'undistortPoints(src, cameraMatrix, distCoeffs[, dst[, R[, P]]]) -> dst\n. @brief Computes the ideal point coordinates from the observed point coordinates.\n. \n. The function is similar to #undistort and #initUndistortRectifyMap but it operates on a\n. sparse set of points instead of a raster image. Also the function performs a reverse transformation\n. to projectPoints. In case of a 3D object, it does not reconstruct its 3D coordinates, but for a\n. planar object, it does, up to a translation vector, if the proper R is specified.\n. \n. For each observed point coordinate \\f$(u, v)\\f$ the function computes:\n. \\f[\n. \\begin{array}{l}\n. x^{"} \\leftarrow (u - c_x)/f_x \\\\\n. y^{"} \\leftarrow (v - c_y)/f_y \\\\\n. (x\',y\') = undistort(x^{"},y^{"}, \\texttt{distCoeffs}) \\\\\n. {[X\\,Y\\,W]} ^T \\leftarrow R*[x\' \\, y\' \\, 1]^T \\\\\n. x \\leftarrow X/W \\\\\n. y \\leftarrow Y/W \\\\\n. \\text{only performed if P is specified:} \\\\\n. u\' \\leftarrow x {f\'}_x + {c\'}_x \\\\\n. v\' \\leftarrow y {f\'}_y + {c\'}_y\n. \\end{array}\n. \\f]\n. \n. where *undistort* is an approximate iterative algorithm that estimates the normalized original\n. point coordinates out of the normalized distorted point coordinates ("normalized" means that the\n. coordinates do not depend on the camera matrix).\n. \n. The function can be used for both a stereo camera head or a monocular camera (when R is empty).\n. @param src Observed point coordinates, 2xN/Nx2 1-channel or 1xN/Nx1 2-channel (CV_32FC2 or CV_64FC2) (or\n. vector\\ ).\n. @param dst Output ideal point coordinates (1xN/Nx1 2-channel or vector\\ ) after undistortion and reverse perspective\n. transformation. If matrix P is identity or omitted, dst will contain normalized point coordinates.\n. @param cameraMatrix Camera matrix \\f$\\vecthreethree{f_x}{0}{c_x}{0}{f_y}{c_y}{0}{0}{1}\\f$ .\n. @param distCoeffs Input vector of distortion coefficients\n. \\f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6[, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]])\\f$\n. of 4, 5, 8, 12 or 14 elements. If the vector is NULL/empty, the zero distortion coefficients are assumed.\n. @param R Rectification transformation in the object space (3x3 matrix). R1 or R2 computed by\n. #stereoRectify can be passed here. If the matrix is empty, the identity transformation is used.\n. @param P New camera matrix (3x3) or new projection matrix (3x4) \\f$\\begin{bmatrix} {f\'}_x & 0 & {c\'}_x & t_x \\\\ 0 & {f\'}_y & {c\'}_y & t_y \\\\ 0 & 0 & 1 & t_z \\end{bmatrix}\\f$. P1 or P2 computed by\n. #stereoRectify can be passed here. If the matrix is empty, the identity new camera matrix is used.' - ... - -def undistortPointsIter(src: Mat, cameraMatrix, distCoeffs, R, P, criteria, dts: Mat = ...) -> typing.Any: - 'undistortPointsIter(src, cameraMatrix, distCoeffs, R, P, criteria[, dst]) -> dst\n. @overload\n. @note Default version of #undistortPoints does 5 iterations to compute undistorted points.' - ... - -def useOpenVX() -> typing.Any: - 'useOpenVX() -> retval\n.' - ... - -def useOptimized() -> typing.Any: - 'useOptimized() -> retval\n. @brief Returns the status of optimized code usage.\n. \n. The function returns true if the optimized code is enabled. Otherwise, it returns false.' - ... - -def validateDisparity(disparity, cost, minDisparity, numberOfDisparities, disp12MaxDisp=...) -> typing.Any: - 'validateDisparity(disparity, cost, minDisparity, numberOfDisparities[, disp12MaxDisp]) -> disparity\n.' - ... - -def vconcat(src: Mat, dts: Mat = ...) -> typing.Any: - 'vconcat(src[, dst]) -> dst\n. @overload\n. @code{.cpp}\n. std::vector matrices = { cv::Mat(1, 4, CV_8UC1, cv::Scalar(1)),\n. cv::Mat(1, 4, CV_8UC1, cv::Scalar(2)),\n. cv::Mat(1, 4, CV_8UC1, cv::Scalar(3)),};\n. \n. cv::Mat out;\n. cv::vconcat( matrices, out );\n. //out:\n. //[1, 1, 1, 1;\n. // 2, 2, 2, 2;\n. // 3, 3, 3, 3]\n. @endcode\n. @param src input array or vector of matrices. all of the matrices must have the same number of cols and the same depth\n. @param dst output array. It has the same number of cols and depth as the src, and the sum of rows of the src.\n. same depth.' - ... - -def waitKey(delay=...) -> typing.Any: - 'waitKey([, delay]) -> retval\n. @brief Waits for a pressed key.\n. \n. The function waitKey waits for a key event infinitely (when \\f$\\texttt{delay}\\leq 0\\f$ ) or for delay\n. milliseconds, when it is positive. Since the OS has a minimum time between switching threads, the\n. function will not wait exactly delay ms, it will wait at least delay ms, depending on what else is\n. running on your computer at that time. It returns the code of the pressed key or -1 if no key was\n. pressed before the specified time had elapsed.\n. \n. @note\n. \n. This function is the only method in HighGUI that can fetch and handle events, so it needs to be\n. called periodically for normal event processing unless HighGUI is used within an environment that\n. takes care of event processing.\n. \n. @note\n. \n. The function only works if there is at least one HighGUI window created and the window is active.\n. If there are several HighGUI windows, any of them can be active.\n. \n. @param delay Delay in milliseconds. 0 is the special value that means "forever".' - ... - -def waitKeyEx(delay=...) -> typing.Any: - 'waitKeyEx([, delay]) -> retval\n. @brief Similar to #waitKey, but returns full key code.\n. \n. @note\n. \n. Key code is implementation specific and depends on used backend: QT/GTK/Win32/etc' - ... - -def warpAffine(src: Mat, M, dsize: typing.Tuple[int, int], dts: Mat = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: - 'warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst\n. @brief Applies an affine transformation to an image.\n. \n. The function warpAffine transforms the source image using the specified matrix:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} ( \\texttt{M} _{11} x + \\texttt{M} _{12} y + \\texttt{M} _{13}, \\texttt{M} _{21} x + \\texttt{M} _{22} y + \\texttt{M} _{23})\\f]\n. \n. when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted\n. with #invertAffineTransform and then put in the formula above instead of M. The function cannot\n. operate in-place.\n. \n. @param src input image.\n. @param dst output image that has the size dsize and the same type as src .\n. @param M \\f$2\\times 3\\f$ transformation matrix.\n. @param dsize size of the output image.\n. @param flags combination of interpolation methods (see #InterpolationFlags) and the optional\n. flag #WARP_INVERSE_MAP that means that M is the inverse transformation (\n. \\f$\\texttt{dst}\\rightarrow\\texttt{src}\\f$ ).\n. @param borderMode pixel extrapolation method (see #BorderTypes); when\n. borderMode=#BORDER_TRANSPARENT, it means that the pixels in the destination image corresponding to\n. the "outliers" in the source image are not modified by the function.\n. @param borderValue value used in case of a constant border; by default, it is 0.\n. \n. @sa warpPerspective, resize, remap, getRectSubPix, transform' - ... - -def warpPerspective(src: Mat, M, dsize: typing.Tuple[int, int], dts: Mat = ..., flags: int = ..., borderMode=..., borderValue=...) -> typing.Any: - 'warpPerspective(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) -> dst\n. @brief Applies a perspective transformation to an image.\n. \n. The function warpPerspective transforms the source image using the specified matrix:\n. \n. \\f[\\texttt{dst} (x,y) = \\texttt{src} \\left ( \\frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} ,\n. \\frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \\right )\\f]\n. \n. when the flag #WARP_INVERSE_MAP is set. Otherwise, the transformation is first inverted with invert\n. and then put in the formula above instead of M. The function cannot operate in-place.\n. \n. @param src input image.\n. @param dst output image that has the size dsize and the same type as src .\n. @param M \\f$3\\times 3\\f$ transformation matrix.\n. @param dsize size of the output image.\n. @param flags combination of interpolation methods (#INTER_LINEAR or #INTER_NEAREST) and the\n. optional flag #WARP_INVERSE_MAP, that sets M as the inverse transformation (\n. \\f$\\texttt{dst}\\rightarrow\\texttt{src}\\f$ ).\n. @param borderMode pixel extrapolation method (#BORDER_CONSTANT or #BORDER_REPLICATE).\n. @param borderValue value used in case of a constant border; by default, it equals 0.\n. \n. @sa warpAffine, resize, remap, getRectSubPix, perspectiveTransform' - ... - -def warpPolar(src: Mat, dsize: typing.Tuple[int, int], center, maxRadius, flags: int, dts: Mat = ...) -> typing.Any: - 'warpPolar(src, dsize: typing.Tuple[int, int], center, maxRadius, flags[, dst]) -> dst\n. \\brief Remaps an image to polar or semilog-polar coordinates space\n. \n. @anchor polar_remaps_reference_image\n. ![Polar remaps reference](pics/polar_remap_doc.png)\n. \n. Transform the source image using the following transformation:\n. \\f[\n. dst(\\rho , \\phi ) = src(x,y)\n. \\f]\n. \n. where\n. \\f[\n. \\begin{array}{l}\n. \\vec{I} = (x - center.x, \\;y - center.y) \\\\\n. \\phi = Kangle \\cdot \\texttt{angle} (\\vec{I}) \\\\\n. \\rho = \\left\\{\\begin{matrix}\n. Klin \\cdot \\texttt{magnitude} (\\vec{I}) & default \\\\\n. Klog \\cdot log_e(\\texttt{magnitude} (\\vec{I})) & if \\; semilog \\\\\n. \\end{matrix}\\right.\n. \\end{array}\n. \\f]\n. \n. and\n. \\f[\n. \\begin{array}{l}\n. Kangle = dsize.height / 2\\Pi \\\\\n. Klin = dsize.width / maxRadius \\\\\n. Klog = dsize.width / log_e(maxRadius) \\\\\n. \\end{array}\n. \\f]\n. \n. \n. \\par Linear vs semilog mapping\n. \n. Polar mapping can be linear or semi-log. Add one of #WarpPolarMode to `flags` to specify the polar mapping mode.\n. \n. Linear is the default mode.\n. \n. The semilog mapping emulates the human "foveal" vision that permit very high acuity on the line of sight (central vision)\n. in contrast to peripheral vision where acuity is minor.\n. \n. \\par Option on `dsize`:\n. \n. - if both values in `dsize <=0 ` (default),\n. the destination image will have (almost) same area of source bounding circle:\n. \\f[\\begin{array}{l}\n. dsize.area \\leftarrow (maxRadius^2 \\cdot \\Pi) \\\\\n. dsize.width = \\texttt{cvRound}(maxRadius) \\\\\n. dsize.height = \\texttt{cvRound}(maxRadius \\cdot \\Pi) \\\\\n. \\end{array}\\f]\n. \n. \n. - if only `dsize.height <= 0`,\n. the destination image area will be proportional to the bounding circle area but scaled by `Kx * Kx`:\n. \\f[\\begin{array}{l}\n. dsize.height = \\texttt{cvRound}(dsize.width \\cdot \\Pi) \\\\\n. \\end{array}\n. \\f]\n. \n. - if both values in `dsize > 0 `,\n. the destination image will have the given size therefore the area of the bounding circle will be scaled to `dsize`.\n. \n. \n. \\par Reverse mapping\n. \n. You can get reverse mapping adding #WARP_INVERSE_MAP to `flags`\n. \\snippet polar_transforms.cpp InverseMap\n. \n. In addiction, to calculate the original coordinate from a polar mapped coordinate \\f$(rho, phi)->(x, y)\\f$:\n. \\snippet polar_transforms.cpp InverseCoordinate\n. \n. @param src Source image.\n. @param dst Destination image. It will have same type as src.\n. @param dsize The destination image size (see description for valid options).\n. @param center The transformation center.\n. @param maxRadius The radius of the bounding circle to transform. It determines the inverse magnitude scale parameter too.\n. @param flags A combination of interpolation methods, #InterpolationFlags + #WarpPolarMode.\n. - Add #WARP_POLAR_LINEAR to select linear polar mapping (default)\n. - Add #WARP_POLAR_LOG to select semilog polar mapping\n. - Add #WARP_INVERSE_MAP for reverse mapping.\n. @note\n. - The function can not operate in-place.\n. - To calculate magnitude and angle in degrees #cartToPolar is used internally thus angles are measured from 0 to 360 with accuracy about 0.3 degrees.\n. - This function uses #remap. Due to current implementation limitations the size of an input and output images should be less than 32767x32767.\n. \n. @sa cv::remap' - ... - -def watershed(image: Mat, markers) -> typing.Any: - 'watershed(image, markers) -> markers\n. @brief Performs a marker-based image segmentation using the watershed algorithm.\n. \n. The function implements one of the variants of watershed, non-parametric marker-based segmentation\n. algorithm, described in @cite Meyer92 .\n. \n. Before passing the image to the function, you have to roughly outline the desired regions in the\n. image markers with positive (\\>0) indices. So, every region is represented as one or more connected\n. components with the pixel values 1, 2, 3, and so on. Such markers can be retrieved from a binary\n. mask using #findContours and #drawContours (see the watershed.cpp demo). The markers are "seeds" of\n. the future image regions. All the other pixels in markers , whose relation to the outlined regions\n. is not known and should be defined by the algorithm, should be set to 0\'s. In the function output,\n. each pixel in markers is set to a value of the "seed" components or to -1 at boundaries between the\n. regions.\n. \n. @note Any two neighbor connected components are not necessarily separated by a watershed boundary\n. (-1\'s pixels); for example, they can touch each other in the initial marker image passed to the\n. function.\n. \n. @param image Input 8-bit 3-channel image.\n. @param markers Input/output 32-bit single-channel image (map) of markers. It should have the same\n. size as image .\n. \n. @sa findContours\n. \n. @ingroup imgproc_misc' - ... - -def writeOpticalFlow(path, flow) -> typing.Any: - 'writeOpticalFlow(path, flow) -> retval\n. @brief Write a .flo to disk\n. \n. @param path Path to the file to be written\n. @param flow Flow field to be stored\n. \n. The function stores a flow field in a file, returns true on success, false otherwise.\n. The flow field must be a 2-channel, floating-point matrix (CV_32FC2). First channel corresponds\n. to the flow in the horizontal direction (u), second - vertical (v).' - ... - -def __getattr__(name) -> typing.Any: ... #incomplete diff --git a/typings/cv2/Error.pyi b/typings/cv2/Error.pyi new file mode 100644 index 00000000..40853539 --- /dev/null +++ b/typings/cv2/Error.pyi @@ -0,0 +1,110 @@ +BAD_ALIGN: int +BAD_ALPHA_CHANNEL: int +BAD_CALL_BACK: int +BAD_COI: int +BAD_DATA_PTR: int +BAD_DEPTH: int +BAD_IMAGE_SIZE: int +BAD_MODEL_OR_CH_SEQ: int +BAD_NUM_CHANNEL1U: int +BAD_NUM_CHANNELS: int +BAD_OFFSET: int +BAD_ORDER: int +BAD_ORIGIN: int +BAD_ROISIZE: int +BAD_STEP: int +BAD_TILE_SIZE: int +BadAlign: int +BadAlphaChannel: int +BadCOI: int +BadCallBack: int +BadDataPtr: int +BadDepth: int +BadImageSize: int +BadModelOrChSeq: int +BadNumChannel1U: int +BadNumChannels: int +BadOffset: int +BadOrder: int +BadOrigin: int +BadROISize: int +BadStep: int +BadTileSize: int +GPU_API_CALL_ERROR: int +GPU_NOT_SUPPORTED: int +GpuApiCallError: int +GpuNotSupported: int +HEADER_IS_NULL: int +HeaderIsNull: int +MASK_IS_TILED: int +MaskIsTiled: int +OPEN_CLAPI_CALL_ERROR: int +OPEN_CLDOUBLE_NOT_SUPPORTED: int +OPEN_CLINIT_ERROR: int +OPEN_CLNO_AMDBLAS_FFT: int +OPEN_GL_API_CALL_ERROR: int +OPEN_GL_NOT_SUPPORTED: int +OpenCLApiCallError: int +OpenCLDoubleNotSupported: int +OpenCLInitError: int +OpenCLNoAMDBlasFft: int +OpenGlApiCallError: int +OpenGlNotSupported: int +STS_ASSERT: int +STS_AUTO_TRACE: int +STS_BACK_TRACE: int +STS_BAD_ARG: int +STS_BAD_FLAG: int +STS_BAD_FUNC: int +STS_BAD_MASK: int +STS_BAD_MEM_BLOCK: int +STS_BAD_POINT: int +STS_BAD_SIZE: int +STS_DIV_BY_ZERO: int +STS_ERROR: int +STS_FILTER_OFFSET_ERR: int +STS_FILTER_STRUCT_CONTENT_ERR: int +STS_INPLACE_NOT_SUPPORTED: int +STS_INTERNAL: int +STS_KERNEL_STRUCT_CONTENT_ERR: int +STS_NOT_IMPLEMENTED: int +STS_NO_CONV: int +STS_NO_MEM: int +STS_NULL_PTR: int +STS_OBJECT_NOT_FOUND: int +STS_OK: int +STS_OUT_OF_RANGE: int +STS_PARSE_ERROR: int +STS_UNMATCHED_FORMATS: int +STS_UNMATCHED_SIZES: int +STS_UNSUPPORTED_FORMAT: int +STS_VEC_LENGTH_ERR: int +StsAssert: int +StsAutoTrace: int +StsBackTrace: int +StsBadArg: int +StsBadFlag: int +StsBadFunc: int +StsBadMask: int +StsBadMemBlock: int +StsBadPoint: int +StsBadSize: int +StsDivByZero: int +StsError: int +StsFilterOffsetErr: int +StsFilterStructContentErr: int +StsInplaceNotSupported: int +StsInternal: int +StsKernelStructContentErr: int +StsNoConv: int +StsNoMem: int +StsNotImplemented: int +StsNullPtr: int +StsObjectNotFound: int +StsOk: int +StsOutOfRange: int +StsParseError: int +StsUnmatchedFormats: int +StsUnmatchedSizes: int +StsUnsupportedFormat: int +StsVecLengthErr: int diff --git a/typings/cv2/__init__.pyi b/typings/cv2/__init__.pyi new file mode 100644 index 00000000..6fb4b21c --- /dev/null +++ b/typings/cv2/__init__.pyi @@ -0,0 +1,17 @@ +from cv2 import ( + Error as Error, data as data, gapi as gapi, mat_wrapper as mat_wrapper, misc as misc, utils as utils, + version as version, +) +from cv2.cv2 import * # noqa: F403 +from cv2.mat_wrapper import Mat as WrappedMat, _NDArray +from typing_extensions import TypeAlias + +__all__: list[str] = [] + + +def bootstrap() -> None: ... + + +Mat: TypeAlias = WrappedMat | _NDArray +# TODO: Make Mat generic with int or float +_MatF: TypeAlias = WrappedMat | _NDArray # noqa: Y047 diff --git a/typings/cv2/cv2.pyi b/typings/cv2/cv2.pyi new file mode 100644 index 00000000..7cb1e09c --- /dev/null +++ b/typings/cv2/cv2.pyi @@ -0,0 +1,5176 @@ +from collections.abc import Sequence +from typing import Any, ClassVar, TypeVar, Union, overload # noqa: Y037 + +from cv2 import Mat, _MatF +from cv2.gapi.streaming import queue_capacity +from typing_extensions import TypeAlias + +# Y047 & Y018 (Unused TypeAlias and TypeVar): Helper types reused everywhere. +# The noqa comments won't be necessary as types in this module are completed + +# Function argument types +_NumericScalar: TypeAlias = float | bool | None +_Scalar: TypeAlias = Mat | _NumericScalar | Sequence[_NumericScalar] +_Point: TypeAlias = Union[tuple[int, int], Sequence[int]] # noqa: Y047 +_Size: TypeAlias = Union[tuple[int, int], Sequence[int]] # noqa: Y047 +_Range: TypeAlias = Union[tuple[int, int], Sequence[int]] # noqa: Y047 +_PointFloat: TypeAlias = Union[tuple[float, float], Sequence[float]] # noqa: Y047 +_SizeFloat: TypeAlias = Union[tuple[float, float], Sequence[float]] # noqa: Y047 +_Rect: TypeAlias = Union[tuple[int, int, int, int], Sequence[int]] # noqa: Y047 +_Boolean: TypeAlias = bool | int | None # noqa: Y047 +# _UMat also covers InputArray and InputOutputArray +_UMat: TypeAlias = UMat | Mat | _NumericScalar +_UMatF: TypeAlias = UMat | _MatF | _NumericScalar + +_TUMat = TypeVar("_TUMat", bound=_UMat) # noqa: Y018 +_TUMatF = TypeVar("_TUMatF", bound=_UMatF) # noqa: Y018 + +# TODO: Complete types until all the aliases below are gone! +# These are temporary placeholder return types, as were in the docstrings signatures from microsoft/python-type-stubs +# This is often (but not always) sign a TypeVar should be used to return the same type as a param. +# retval is equivalent to Unknown +_flow: TypeAlias = Any # noqa: Y042 +_image: TypeAlias = Any # noqa: Y042 +_edgeList: TypeAlias = Any # noqa: Y042 +_leadingEdgeList: TypeAlias = Any # noqa: Y042 +_triangleList: TypeAlias = Any # noqa: Y042 +_matches_info: TypeAlias = Any # noqa: Y042 +_arg3: TypeAlias = Any # noqa: Y042 +_outputBlobs: TypeAlias = Any # noqa: Y042 +_layersTypes: TypeAlias = Any # noqa: Y042 +_detections: TypeAlias = Any # noqa: Y042 +_results: TypeAlias = Any # noqa: Y042 +_corners: TypeAlias = Any # noqa: Y042 +_pts: TypeAlias = Any # noqa: Y042 +_dst: TypeAlias = Any # noqa: Y042 +_markers: TypeAlias = Any # noqa: Y042 +_masks: TypeAlias = Any # noqa: Y042 +_window: TypeAlias = Any # noqa: Y042 +_edges: TypeAlias = Any # noqa: Y042 +_lowerBound: TypeAlias = Any # noqa: Y042 +_circles: TypeAlias = Any # noqa: Y042 +_lines: TypeAlias = Any # noqa: Y042 +_hu: TypeAlias = Any # noqa: Y042 +_points2f: TypeAlias = Any # noqa: Y042 +_keypoints: TypeAlias = Any # noqa: Y042 +_mean: TypeAlias = Any # noqa: Y042 +_eigenvectors: TypeAlias = Any # noqa: Y042 +_eigenvalues: TypeAlias = Any # noqa: Y042 +_result: TypeAlias = Any # noqa: Y042 +_mtxR: TypeAlias = Any # noqa: Y042 +_mtxQ: TypeAlias = Any # noqa: Y042 +_Qx: TypeAlias = Any # noqa: Y042 +_Qy: TypeAlias = Any # noqa: Y042 +_Qz: TypeAlias = Any # noqa: Y042 +_jacobian: TypeAlias = Any # noqa: Y042 +_w: TypeAlias = Any # noqa: Y042 +_u: TypeAlias = Any # noqa: Y042 +_vt: TypeAlias = Any # noqa: Y042 +_approxCurve: TypeAlias = Any # noqa: Y042 +_img: TypeAlias = Any # noqa: Y042 +_dist: TypeAlias = Any # noqa: Y042 +_nidx: TypeAlias = Any # noqa: Y042 +_points: TypeAlias = Any # noqa: Y042 +_pyramid: TypeAlias = Any # noqa: Y042 +_covar: TypeAlias = Any # noqa: Y042 +_nextPts: TypeAlias = Any # noqa: Y042 +_status: TypeAlias = Any # noqa: Y042 +_err: TypeAlias = Any # noqa: Y042 +_cameraMatrix: TypeAlias = Any # noqa: Y042 +_distCoeffs: TypeAlias = Any # noqa: Y042 +_rvecs: TypeAlias = Any # noqa: Y042 +_tvecs: TypeAlias = Any # noqa: Y042 +_stdDeviationsIntrinsics: TypeAlias = Any # noqa: Y042 +_stdDeviationsExtrinsics: TypeAlias = Any # noqa: Y042 +_perViewErrors: TypeAlias = Any # noqa: Y042 +_newObjPoints: TypeAlias = Any # noqa: Y042 +_stdDeviationsObjPoints: TypeAlias = Any # noqa: Y042 +_R_cam2gripper: TypeAlias = Any # noqa: Y042 +_t_cam2gripper: TypeAlias = Any # noqa: Y042 +_fovx: TypeAlias = Any # noqa: Y042 +_fovy: TypeAlias = Any # noqa: Y042 +_focalLength: TypeAlias = Any # noqa: Y042 +_principalPoint: TypeAlias = Any # noqa: Y042 +_aspectRatio: TypeAlias = Any # noqa: Y042 +_magnitude: TypeAlias = Any # noqa: Y042 +_angle: TypeAlias = Any # noqa: Y042 +_pt1: TypeAlias = Any # noqa: Y042 +_pt2: TypeAlias = Any # noqa: Y042 +_pos: TypeAlias = Any # noqa: Y042 +_m: TypeAlias = Any # noqa: Y042 +_rvec3: TypeAlias = Any # noqa: Y042 +_tvec3: TypeAlias = Any # noqa: Y042 +_dr3dr1: TypeAlias = Any # noqa: Y042 +_dr3dt1: TypeAlias = Any # noqa: Y042 +_dr3dr2: TypeAlias = Any # noqa: Y042 +_dr3dt2: TypeAlias = Any # noqa: Y042 +_dt3dr1: TypeAlias = Any # noqa: Y042 +_dt3dt1: TypeAlias = Any # noqa: Y042 +_dt3dr2: TypeAlias = Any # noqa: Y042 +_dt3dt2: TypeAlias = Any # noqa: Y042 +_labels: TypeAlias = Any # noqa: Y042 +_stats: TypeAlias = Any # noqa: Y042 +_centroids: TypeAlias = Any # noqa: Y042 +_dstmap1: TypeAlias = Any # noqa: Y042 +_dstmap2: TypeAlias = Any # noqa: Y042 +_hull: TypeAlias = Any # noqa: Y042 +_convexityDefects: TypeAlias = Any # noqa: Y042 +_newPoints1: TypeAlias = Any # noqa: Y042 +_newPoints2: TypeAlias = Any # noqa: Y042 +_grayscale: TypeAlias = Any # noqa: Y042 +_color_boost: TypeAlias = Any # noqa: Y042 +_R1: TypeAlias = Any # noqa: Y042 +_R2: TypeAlias = Any # noqa: Y042 +_t: TypeAlias = Any # noqa: Y042 +_rotations: TypeAlias = Any # noqa: Y042 +_translations: TypeAlias = Any # noqa: Y042 +_normals: TypeAlias = Any # noqa: Y042 +_rotMatrix: TypeAlias = Any # noqa: Y042 +_transVect: TypeAlias = Any # noqa: Y042 +_rotMatrixX: TypeAlias = Any # noqa: Y042 +_rotMatrixY: TypeAlias = Any # noqa: Y042 +_rotMatrixZ: TypeAlias = Any # noqa: Y042 +_eulerAngles: TypeAlias = Any # noqa: Y042 +_outImage: TypeAlias = Any # noqa: Y042 +_outImg: TypeAlias = Any # noqa: Y042 +_inliers: TypeAlias = Any # noqa: Y042 +_out: TypeAlias = Any # noqa: Y042 +_sharpness: TypeAlias = Any # noqa: Y042 +_possibleSolutions: TypeAlias = Any # noqa: Y042 +_buf: TypeAlias = Any # noqa: Y042 +_meta: TypeAlias = Any # noqa: Y042 +_centers: TypeAlias = Any # noqa: Y042 +_contours: TypeAlias = Any # noqa: Y042 +_hierarchy: TypeAlias = Any # noqa: Y042 +_mask: TypeAlias = Any # noqa: Y042 +_idx: TypeAlias = Any # noqa: Y042 +_warpMatrix: TypeAlias = Any # noqa: Y042 +_line: TypeAlias = Any # noqa: Y042 +_rect: TypeAlias = Any # noqa: Y042 +_kx: TypeAlias = Any # noqa: Y042 +_ky: TypeAlias = Any # noqa: Y042 +_validPixROI: TypeAlias = Any # noqa: Y042 +_patch: TypeAlias = Any # noqa: Y042 +_baseLine: TypeAlias = Any # noqa: Y042 +_bgdModel: TypeAlias = Any # noqa: Y042 +_fgdModel: TypeAlias = Any # noqa: Y042 +_rectList: TypeAlias = Any # noqa: Y042 +_weights: TypeAlias = Any # noqa: Y042 +_mats: TypeAlias = Any # noqa: Y042 +_map1: TypeAlias = Any # noqa: Y042 +_map2: TypeAlias = Any # noqa: Y042 +_sum: TypeAlias = Any # noqa: Y042 +_sqsum: TypeAlias = Any # noqa: Y042 +_tilted: TypeAlias = Any # noqa: Y042 +_p12: TypeAlias = Any # noqa: Y042 +_iM: TypeAlias = Any # noqa: Y042 +_bestLabels: TypeAlias = Any # noqa: Y042 +_dABdA: TypeAlias = Any # noqa: Y042 +_dABdB: TypeAlias = Any # noqa: Y042 +_stddev: TypeAlias = Any # noqa: Y042 +_center: TypeAlias = Any # noqa: Y042 +_radius: TypeAlias = Any # noqa: Y042 +_triangle: TypeAlias = Any # noqa: Y042 +_c: TypeAlias = Any # noqa: Y042 +_a: TypeAlias = Any # noqa: Y042 +_dst1: TypeAlias = Any # noqa: Y042 +_dst2: TypeAlias = Any # noqa: Y042 +_response: TypeAlias = Any # noqa: Y042 +_x: TypeAlias = Any # noqa: Y042 +_y: TypeAlias = Any # noqa: Y042 +_imagePoints: TypeAlias = Any # noqa: Y042 +_R: TypeAlias = Any # noqa: Y042 +_R3: TypeAlias = Any # noqa: Y042 +_P1: TypeAlias = Any # noqa: Y042 +_P2: TypeAlias = Any # noqa: Y042 +_P3: TypeAlias = Any # noqa: Y042 +_Q: TypeAlias = Any # noqa: Y042 +_roi1: TypeAlias = Any # noqa: Y042 +_roi2: TypeAlias = Any # noqa: Y042 +_3dImage: TypeAlias = Any # noqa: Y042 +_intersectingRegion: TypeAlias = Any # noqa: Y042 +_blend: TypeAlias = Any # noqa: Y042 +_boundingBoxes: TypeAlias = Any # noqa: Y042 +_mtx: TypeAlias = Any # noqa: Y042 +_roots: TypeAlias = Any # noqa: Y042 +_z: TypeAlias = Any # noqa: Y042 +_rvec: TypeAlias = Any # noqa: Y042 +_tvec: TypeAlias = Any # noqa: Y042 +_reprojectionError: TypeAlias = Any # noqa: Y042 +_dx: TypeAlias = Any # noqa: Y042 +_dy: TypeAlias = Any # noqa: Y042 +_mv: TypeAlias = Any # noqa: Y042 +_cameraMatrix1: TypeAlias = Any # noqa: Y042 +_distCoeffs1: TypeAlias = Any # noqa: Y042 +_cameraMatrix2: TypeAlias = Any # noqa: Y042 +_distCoeffs2: TypeAlias = Any # noqa: Y042 +_T: TypeAlias = Any # noqa: Y042 +_E: TypeAlias = Any # noqa: Y042 +_F: TypeAlias = Any # noqa: Y042 +_validPixROI1: TypeAlias = Any # noqa: Y042 +_validPixROI2: TypeAlias = Any # noqa: Y042 +_H1: TypeAlias = Any # noqa: Y042 +_H2: TypeAlias = Any # noqa: Y042 +_points4D: TypeAlias = Any # noqa: Y042 +_disparity: TypeAlias = Any # noqa: Y042 +_triangulatedPoints: TypeAlias = Any # noqa: Y042 + +__version__: str + +ACCESS_FAST: int +ACCESS_MASK: int +ACCESS_READ: int +ACCESS_RW: int +ACCESS_WRITE: int +ADAPTIVE_THRESH_GAUSSIAN_C: int +ADAPTIVE_THRESH_MEAN_C: int +AGAST_FEATURE_DETECTOR_AGAST_5_8: int +AGAST_FEATURE_DETECTOR_AGAST_7_12D: int +AGAST_FEATURE_DETECTOR_AGAST_7_12S: int +AGAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION: int +AGAST_FEATURE_DETECTOR_OAST_9_16: int +AGAST_FEATURE_DETECTOR_THRESHOLD: int +AKAZE_DESCRIPTOR_KAZE: int +AKAZE_DESCRIPTOR_KAZE_UPRIGHT: int +AKAZE_DESCRIPTOR_MLDB: int +AKAZE_DESCRIPTOR_MLDB_UPRIGHT: int +AgastFeatureDetector_AGAST_5_8: int +AgastFeatureDetector_AGAST_7_12d: int +AgastFeatureDetector_AGAST_7_12s: int +AgastFeatureDetector_NONMAX_SUPPRESSION: int +AgastFeatureDetector_OAST_9_16: int +AgastFeatureDetector_THRESHOLD: int +BORDER_CONSTANT: int +BORDER_DEFAULT: int +BORDER_ISOLATED: int +BORDER_REFLECT: int +BORDER_REFLECT101: int +BORDER_REFLECT_101: int +BORDER_REPLICATE: int +BORDER_TRANSPARENT: int +BORDER_WRAP: int +CALIB_CB_ACCURACY: int +CALIB_CB_ADAPTIVE_THRESH: int +CALIB_CB_ASYMMETRIC_GRID: int +CALIB_CB_CLUSTERING: int +CALIB_CB_EXHAUSTIVE: int +CALIB_CB_FAST_CHECK: int +CALIB_CB_FILTER_QUADS: int +CALIB_CB_LARGER: int +CALIB_CB_MARKER: int +CALIB_CB_NORMALIZE_IMAGE: int +CALIB_CB_SYMMETRIC_GRID: int +CALIB_FIX_ASPECT_RATIO: int +CALIB_FIX_FOCAL_LENGTH: int +CALIB_FIX_INTRINSIC: int +CALIB_FIX_K1: int +CALIB_FIX_K2: int +CALIB_FIX_K3: int +CALIB_FIX_K4: int +CALIB_FIX_K5: int +CALIB_FIX_K6: int +CALIB_FIX_PRINCIPAL_POINT: int +CALIB_FIX_S1_S2_S3_S4: int +CALIB_FIX_TANGENT_DIST: int +CALIB_FIX_TAUX_TAUY: int +CALIB_HAND_EYE_ANDREFF: int +CALIB_HAND_EYE_DANIILIDIS: int +CALIB_HAND_EYE_HORAUD: int +CALIB_HAND_EYE_PARK: int +CALIB_HAND_EYE_TSAI: int +CALIB_NINTRINSIC: int +CALIB_RATIONAL_MODEL: int +CALIB_ROBOT_WORLD_HAND_EYE_LI: int +CALIB_ROBOT_WORLD_HAND_EYE_SHAH: int +CALIB_SAME_FOCAL_LENGTH: int +CALIB_THIN_PRISM_MODEL: int +CALIB_TILTED_MODEL: int +CALIB_USE_EXTRINSIC_GUESS: int +CALIB_USE_INTRINSIC_GUESS: int +CALIB_USE_LU: int +CALIB_USE_QR: int +CALIB_ZERO_DISPARITY: int +CALIB_ZERO_TANGENT_DIST: int +CAP_ANDROID: int +CAP_ANY: int +CAP_ARAVIS: int +CAP_AVFOUNDATION: int +CAP_CMU1394: int +CAP_DC1394: int +CAP_DSHOW: int +CAP_FFMPEG: int +CAP_FIREWARE: int +CAP_FIREWIRE: int +CAP_GIGANETIX: int +CAP_GPHOTO2: int +CAP_GSTREAMER: int +CAP_IEEE1394: int +CAP_IMAGES: int +CAP_INTELPERC: int +CAP_INTELPERC_DEPTH_GENERATOR: int +CAP_INTELPERC_DEPTH_MAP: int +CAP_INTELPERC_GENERATORS_MASK: int +CAP_INTELPERC_IMAGE: int +CAP_INTELPERC_IMAGE_GENERATOR: int +CAP_INTELPERC_IR_GENERATOR: int +CAP_INTELPERC_IR_MAP: int +CAP_INTELPERC_UVDEPTH_MAP: int +CAP_INTEL_MFX: int +CAP_MSMF: int +CAP_OPENCV_MJPEG: int +CAP_OPENNI: int +CAP_OPENNI2: int +CAP_OPENNI2_ASTRA: int +CAP_OPENNI2_ASUS: int +CAP_OPENNI_ASUS: int +CAP_OPENNI_BGR_IMAGE: int +CAP_OPENNI_DEPTH_GENERATOR: int +CAP_OPENNI_DEPTH_GENERATOR_BASELINE: int +CAP_OPENNI_DEPTH_GENERATOR_FOCAL_LENGTH: int +CAP_OPENNI_DEPTH_GENERATOR_PRESENT: int +CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION: int +CAP_OPENNI_DEPTH_GENERATOR_REGISTRATION_ON: int +CAP_OPENNI_DEPTH_MAP: int +CAP_OPENNI_DISPARITY_MAP: int +CAP_OPENNI_DISPARITY_MAP_32F: int +CAP_OPENNI_GENERATORS_MASK: int +CAP_OPENNI_GRAY_IMAGE: int +CAP_OPENNI_IMAGE_GENERATOR: int +CAP_OPENNI_IMAGE_GENERATOR_OUTPUT_MODE: int +CAP_OPENNI_IMAGE_GENERATOR_PRESENT: int +CAP_OPENNI_IR_GENERATOR: int +CAP_OPENNI_IR_GENERATOR_PRESENT: int +CAP_OPENNI_IR_IMAGE: int +CAP_OPENNI_POINT_CLOUD_MAP: int +CAP_OPENNI_QVGA_30HZ: int +CAP_OPENNI_QVGA_60HZ: int +CAP_OPENNI_SXGA_15HZ: int +CAP_OPENNI_SXGA_30HZ: int +CAP_OPENNI_VALID_DEPTH_MASK: int +CAP_OPENNI_VGA_30HZ: int +CAP_PROP_APERTURE: int +CAP_PROP_ARAVIS_AUTOTRIGGER: int +CAP_PROP_AUDIO_BASE_INDEX: int +CAP_PROP_AUDIO_DATA_DEPTH: int +CAP_PROP_AUDIO_POS: int +CAP_PROP_AUDIO_SAMPLES_PER_SECOND: int +CAP_PROP_AUDIO_SHIFT_NSEC: int +CAP_PROP_AUDIO_STREAM: int +CAP_PROP_AUDIO_SYNCHRONIZE: int +CAP_PROP_AUDIO_TOTAL_CHANNELS: int +CAP_PROP_AUDIO_TOTAL_STREAMS: int +CAP_PROP_AUTOFOCUS: int +CAP_PROP_AUTO_EXPOSURE: int +CAP_PROP_AUTO_WB: int +CAP_PROP_BACKEND: int +CAP_PROP_BACKLIGHT: int +CAP_PROP_BITRATE: int +CAP_PROP_BRIGHTNESS: int +CAP_PROP_BUFFERSIZE: int +CAP_PROP_CHANNEL: int +CAP_PROP_CODEC_EXTRADATA_INDEX: int +CAP_PROP_CODEC_PIXEL_FORMAT: int +CAP_PROP_CONTRAST: int +CAP_PROP_CONVERT_RGB: int +CAP_PROP_DC1394_MAX: int +CAP_PROP_DC1394_MODE_AUTO: int +CAP_PROP_DC1394_MODE_MANUAL: int +CAP_PROP_DC1394_MODE_ONE_PUSH_AUTO: int +CAP_PROP_DC1394_OFF: int +CAP_PROP_EXPOSURE: int +CAP_PROP_EXPOSUREPROGRAM: int +CAP_PROP_FOCUS: int +CAP_PROP_FORMAT: int +CAP_PROP_FOURCC: int +CAP_PROP_FPS: int +CAP_PROP_FRAME_COUNT: int +CAP_PROP_FRAME_HEIGHT: int +CAP_PROP_FRAME_WIDTH: int +CAP_PROP_GAIN: int +CAP_PROP_GAMMA: int +CAP_PROP_GIGA_FRAME_HEIGH_MAX: int +CAP_PROP_GIGA_FRAME_OFFSET_X: int +CAP_PROP_GIGA_FRAME_OFFSET_Y: int +CAP_PROP_GIGA_FRAME_SENS_HEIGH: int +CAP_PROP_GIGA_FRAME_SENS_WIDTH: int +CAP_PROP_GIGA_FRAME_WIDTH_MAX: int +CAP_PROP_GPHOTO2_COLLECT_MSGS: int +CAP_PROP_GPHOTO2_FLUSH_MSGS: int +CAP_PROP_GPHOTO2_PREVIEW: int +CAP_PROP_GPHOTO2_RELOAD_CONFIG: int +CAP_PROP_GPHOTO2_RELOAD_ON_CHANGE: int +CAP_PROP_GPHOTO2_WIDGET_ENUMERATE: int +CAP_PROP_GSTREAMER_QUEUE_LENGTH: int +CAP_PROP_GUID: int +CAP_PROP_HUE: int +CAP_PROP_HW_ACCELERATION: int +CAP_PROP_HW_ACCELERATION_USE_OPENCL: int +CAP_PROP_HW_DEVICE: int +CAP_PROP_IMAGES_BASE: int +CAP_PROP_IMAGES_LAST: int +CAP_PROP_INTELPERC_DEPTH_CONFIDENCE_THRESHOLD: int +CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_HORZ: int +CAP_PROP_INTELPERC_DEPTH_FOCAL_LENGTH_VERT: int +CAP_PROP_INTELPERC_DEPTH_LOW_CONFIDENCE_VALUE: int +CAP_PROP_INTELPERC_DEPTH_SATURATION_VALUE: int +CAP_PROP_INTELPERC_PROFILE_COUNT: int +CAP_PROP_INTELPERC_PROFILE_IDX: int +CAP_PROP_IOS_DEVICE_EXPOSURE: int +CAP_PROP_IOS_DEVICE_FLASH: int +CAP_PROP_IOS_DEVICE_FOCUS: int +CAP_PROP_IOS_DEVICE_TORCH: int +CAP_PROP_IOS_DEVICE_WHITEBALANCE: int +CAP_PROP_IRIS: int +CAP_PROP_ISO_SPEED: int +CAP_PROP_LRF_HAS_KEY_FRAME: int +CAP_PROP_MODE: int +CAP_PROP_MONOCHROME: int +CAP_PROP_OPENNI2_MIRROR: int +CAP_PROP_OPENNI2_SYNC: int +CAP_PROP_OPENNI_APPROX_FRAME_SYNC: int +CAP_PROP_OPENNI_BASELINE: int +CAP_PROP_OPENNI_CIRCLE_BUFFER: int +CAP_PROP_OPENNI_FOCAL_LENGTH: int +CAP_PROP_OPENNI_FRAME_MAX_DEPTH: int +CAP_PROP_OPENNI_GENERATOR_PRESENT: int +CAP_PROP_OPENNI_MAX_BUFFER_SIZE: int +CAP_PROP_OPENNI_MAX_TIME_DURATION: int +CAP_PROP_OPENNI_OUTPUT_MODE: int +CAP_PROP_OPENNI_REGISTRATION: int +CAP_PROP_OPENNI_REGISTRATION_ON: int +CAP_PROP_OPEN_TIMEOUT_MSEC: int +CAP_PROP_ORIENTATION_AUTO: int +CAP_PROP_ORIENTATION_META: int +CAP_PROP_PAN: int +CAP_PROP_POS_AVI_RATIO: int +CAP_PROP_POS_FRAMES: int +CAP_PROP_POS_MSEC: int +CAP_PROP_PVAPI_BINNINGX: int +CAP_PROP_PVAPI_BINNINGY: int +CAP_PROP_PVAPI_DECIMATIONHORIZONTAL: int +CAP_PROP_PVAPI_DECIMATIONVERTICAL: int +CAP_PROP_PVAPI_FRAMESTARTTRIGGERMODE: int +CAP_PROP_PVAPI_MULTICASTIP: int +CAP_PROP_PVAPI_PIXELFORMAT: int +CAP_PROP_READ_TIMEOUT_MSEC: int +CAP_PROP_RECTIFICATION: int +CAP_PROP_ROLL: int +CAP_PROP_SAR_DEN: int +CAP_PROP_SAR_NUM: int +CAP_PROP_SATURATION: int +CAP_PROP_SETTINGS: int +CAP_PROP_SHARPNESS: int +CAP_PROP_SPEED: int +CAP_PROP_STREAM_OPEN_TIME_USEC: int +CAP_PROP_TEMPERATURE: int +CAP_PROP_TILT: int +CAP_PROP_TRIGGER: int +CAP_PROP_TRIGGER_DELAY: int +CAP_PROP_VIDEO_STREAM: int +CAP_PROP_VIDEO_TOTAL_CHANNELS: int +CAP_PROP_VIEWFINDER: int +CAP_PROP_WB_TEMPERATURE: int +CAP_PROP_WHITE_BALANCE_BLUE_U: int +CAP_PROP_WHITE_BALANCE_RED_V: int +CAP_PROP_XI_ACQ_BUFFER_SIZE: int +CAP_PROP_XI_ACQ_BUFFER_SIZE_UNIT: int +CAP_PROP_XI_ACQ_FRAME_BURST_COUNT: int +CAP_PROP_XI_ACQ_TIMING_MODE: int +CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_COMMIT: int +CAP_PROP_XI_ACQ_TRANSPORT_BUFFER_SIZE: int +CAP_PROP_XI_AEAG: int +CAP_PROP_XI_AEAG_LEVEL: int +CAP_PROP_XI_AEAG_ROI_HEIGHT: int +CAP_PROP_XI_AEAG_ROI_OFFSET_X: int +CAP_PROP_XI_AEAG_ROI_OFFSET_Y: int +CAP_PROP_XI_AEAG_ROI_WIDTH: int +CAP_PROP_XI_AE_MAX_LIMIT: int +CAP_PROP_XI_AG_MAX_LIMIT: int +CAP_PROP_XI_APPLY_CMS: int +CAP_PROP_XI_AUTO_BANDWIDTH_CALCULATION: int +CAP_PROP_XI_AUTO_WB: int +CAP_PROP_XI_AVAILABLE_BANDWIDTH: int +CAP_PROP_XI_BINNING_HORIZONTAL: int +CAP_PROP_XI_BINNING_PATTERN: int +CAP_PROP_XI_BINNING_SELECTOR: int +CAP_PROP_XI_BINNING_VERTICAL: int +CAP_PROP_XI_BPC: int +CAP_PROP_XI_BUFFERS_QUEUE_SIZE: int +CAP_PROP_XI_BUFFER_POLICY: int +CAP_PROP_XI_CC_MATRIX_00: int +CAP_PROP_XI_CC_MATRIX_01: int +CAP_PROP_XI_CC_MATRIX_02: int +CAP_PROP_XI_CC_MATRIX_03: int +CAP_PROP_XI_CC_MATRIX_10: int +CAP_PROP_XI_CC_MATRIX_11: int +CAP_PROP_XI_CC_MATRIX_12: int +CAP_PROP_XI_CC_MATRIX_13: int +CAP_PROP_XI_CC_MATRIX_20: int +CAP_PROP_XI_CC_MATRIX_21: int +CAP_PROP_XI_CC_MATRIX_22: int +CAP_PROP_XI_CC_MATRIX_23: int +CAP_PROP_XI_CC_MATRIX_30: int +CAP_PROP_XI_CC_MATRIX_31: int +CAP_PROP_XI_CC_MATRIX_32: int +CAP_PROP_XI_CC_MATRIX_33: int +CAP_PROP_XI_CHIP_TEMP: int +CAP_PROP_XI_CMS: int +CAP_PROP_XI_COLOR_FILTER_ARRAY: int +CAP_PROP_XI_COLUMN_FPN_CORRECTION: int +CAP_PROP_XI_COOLING: int +CAP_PROP_XI_COUNTER_SELECTOR: int +CAP_PROP_XI_COUNTER_VALUE: int +CAP_PROP_XI_DATA_FORMAT: int +CAP_PROP_XI_DEBOUNCE_EN: int +CAP_PROP_XI_DEBOUNCE_POL: int +CAP_PROP_XI_DEBOUNCE_T0: int +CAP_PROP_XI_DEBOUNCE_T1: int +CAP_PROP_XI_DEBUG_LEVEL: int +CAP_PROP_XI_DECIMATION_HORIZONTAL: int +CAP_PROP_XI_DECIMATION_PATTERN: int +CAP_PROP_XI_DECIMATION_SELECTOR: int +CAP_PROP_XI_DECIMATION_VERTICAL: int +CAP_PROP_XI_DEFAULT_CC_MATRIX: int +CAP_PROP_XI_DEVICE_MODEL_ID: int +CAP_PROP_XI_DEVICE_RESET: int +CAP_PROP_XI_DEVICE_SN: int +CAP_PROP_XI_DOWNSAMPLING: int +CAP_PROP_XI_DOWNSAMPLING_TYPE: int +CAP_PROP_XI_EXPOSURE: int +CAP_PROP_XI_EXPOSURE_BURST_COUNT: int +CAP_PROP_XI_EXP_PRIORITY: int +CAP_PROP_XI_FFS_ACCESS_KEY: int +CAP_PROP_XI_FFS_FILE_ID: int +CAP_PROP_XI_FFS_FILE_SIZE: int +CAP_PROP_XI_FRAMERATE: int +CAP_PROP_XI_FREE_FFS_SIZE: int +CAP_PROP_XI_GAIN: int +CAP_PROP_XI_GAIN_SELECTOR: int +CAP_PROP_XI_GAMMAC: int +CAP_PROP_XI_GAMMAY: int +CAP_PROP_XI_GPI_LEVEL: int +CAP_PROP_XI_GPI_MODE: int +CAP_PROP_XI_GPI_SELECTOR: int +CAP_PROP_XI_GPO_MODE: int +CAP_PROP_XI_GPO_SELECTOR: int +CAP_PROP_XI_HDR: int +CAP_PROP_XI_HDR_KNEEPOINT_COUNT: int +CAP_PROP_XI_HDR_T1: int +CAP_PROP_XI_HDR_T2: int +CAP_PROP_XI_HEIGHT: int +CAP_PROP_XI_HOUS_BACK_SIDE_TEMP: int +CAP_PROP_XI_HOUS_TEMP: int +CAP_PROP_XI_HW_REVISION: int +CAP_PROP_XI_IMAGE_BLACK_LEVEL: int +CAP_PROP_XI_IMAGE_DATA_BIT_DEPTH: int +CAP_PROP_XI_IMAGE_DATA_FORMAT: int +CAP_PROP_XI_IMAGE_DATA_FORMAT_RGB32_ALPHA: int +CAP_PROP_XI_IMAGE_IS_COLOR: int +CAP_PROP_XI_IMAGE_PAYLOAD_SIZE: int +CAP_PROP_XI_IS_COOLED: int +CAP_PROP_XI_IS_DEVICE_EXIST: int +CAP_PROP_XI_KNEEPOINT1: int +CAP_PROP_XI_KNEEPOINT2: int +CAP_PROP_XI_LED_MODE: int +CAP_PROP_XI_LED_SELECTOR: int +CAP_PROP_XI_LENS_APERTURE_VALUE: int +CAP_PROP_XI_LENS_FEATURE: int +CAP_PROP_XI_LENS_FEATURE_SELECTOR: int +CAP_PROP_XI_LENS_FOCAL_LENGTH: int +CAP_PROP_XI_LENS_FOCUS_DISTANCE: int +CAP_PROP_XI_LENS_FOCUS_MOVE: int +CAP_PROP_XI_LENS_FOCUS_MOVEMENT_VALUE: int +CAP_PROP_XI_LENS_MODE: int +CAP_PROP_XI_LIMIT_BANDWIDTH: int +CAP_PROP_XI_LUT_EN: int +CAP_PROP_XI_LUT_INDEX: int +CAP_PROP_XI_LUT_VALUE: int +CAP_PROP_XI_MANUAL_WB: int +CAP_PROP_XI_OFFSET_X: int +CAP_PROP_XI_OFFSET_Y: int +CAP_PROP_XI_OUTPUT_DATA_BIT_DEPTH: int +CAP_PROP_XI_OUTPUT_DATA_PACKING: int +CAP_PROP_XI_OUTPUT_DATA_PACKING_TYPE: int +CAP_PROP_XI_RECENT_FRAME: int +CAP_PROP_XI_REGION_MODE: int +CAP_PROP_XI_REGION_SELECTOR: int +CAP_PROP_XI_ROW_FPN_CORRECTION: int +CAP_PROP_XI_SENSOR_BOARD_TEMP: int +CAP_PROP_XI_SENSOR_CLOCK_FREQ_HZ: int +CAP_PROP_XI_SENSOR_CLOCK_FREQ_INDEX: int +CAP_PROP_XI_SENSOR_DATA_BIT_DEPTH: int +CAP_PROP_XI_SENSOR_FEATURE_SELECTOR: int +CAP_PROP_XI_SENSOR_FEATURE_VALUE: int +CAP_PROP_XI_SENSOR_MODE: int +CAP_PROP_XI_SENSOR_OUTPUT_CHANNEL_COUNT: int +CAP_PROP_XI_SENSOR_TAPS: int +CAP_PROP_XI_SHARPNESS: int +CAP_PROP_XI_SHUTTER_TYPE: int +CAP_PROP_XI_TARGET_TEMP: int +CAP_PROP_XI_TEST_PATTERN: int +CAP_PROP_XI_TEST_PATTERN_GENERATOR_SELECTOR: int +CAP_PROP_XI_TIMEOUT: int +CAP_PROP_XI_TRANSPORT_PIXEL_FORMAT: int +CAP_PROP_XI_TRG_DELAY: int +CAP_PROP_XI_TRG_SELECTOR: int +CAP_PROP_XI_TRG_SOFTWARE: int +CAP_PROP_XI_TRG_SOURCE: int +CAP_PROP_XI_TS_RST_MODE: int +CAP_PROP_XI_TS_RST_SOURCE: int +CAP_PROP_XI_USED_FFS_SIZE: int +CAP_PROP_XI_WB_KB: int +CAP_PROP_XI_WB_KG: int +CAP_PROP_XI_WB_KR: int +CAP_PROP_XI_WIDTH: int +CAP_PROP_ZOOM: int +CAP_PVAPI: int +CAP_PVAPI_DECIMATION_2OUTOF16: int +CAP_PVAPI_DECIMATION_2OUTOF4: int +CAP_PVAPI_DECIMATION_2OUTOF8: int +CAP_PVAPI_DECIMATION_OFF: int +CAP_PVAPI_FSTRIGMODE_FIXEDRATE: int +CAP_PVAPI_FSTRIGMODE_FREERUN: int +CAP_PVAPI_FSTRIGMODE_SOFTWARE: int +CAP_PVAPI_FSTRIGMODE_SYNCIN1: int +CAP_PVAPI_FSTRIGMODE_SYNCIN2: int +CAP_PVAPI_PIXELFORMAT_BAYER16: int +CAP_PVAPI_PIXELFORMAT_BAYER8: int +CAP_PVAPI_PIXELFORMAT_BGR24: int +CAP_PVAPI_PIXELFORMAT_BGRA32: int +CAP_PVAPI_PIXELFORMAT_MONO16: int +CAP_PVAPI_PIXELFORMAT_MONO8: int +CAP_PVAPI_PIXELFORMAT_RGB24: int +CAP_PVAPI_PIXELFORMAT_RGBA32: int +CAP_QT: int +CAP_REALSENSE: int +CAP_UEYE: int +CAP_UNICAP: int +CAP_V4L: int +CAP_V4L2: int +CAP_VFW: int +CAP_WINRT: int +CAP_XIAPI: int +CAP_XINE: int +CASCADE_DO_CANNY_PRUNING: int +CASCADE_DO_ROUGH_SEARCH: int +CASCADE_FIND_BIGGEST_OBJECT: int +CASCADE_SCALE_IMAGE: int +CCL_BBDT: int +CCL_BOLELLI: int +CCL_DEFAULT: int +CCL_GRANA: int +CCL_SAUF: int +CCL_SPAGHETTI: int +CCL_WU: int +CC_STAT_AREA: int +CC_STAT_HEIGHT: int +CC_STAT_LEFT: int +CC_STAT_MAX: int +CC_STAT_TOP: int +CC_STAT_WIDTH: int +CHAIN_APPROX_NONE: int +CHAIN_APPROX_SIMPLE: int +CHAIN_APPROX_TC89_KCOS: int +CHAIN_APPROX_TC89_L1: int +CIRCLES_GRID_FINDER_PARAMETERS_ASYMMETRIC_GRID: int +CIRCLES_GRID_FINDER_PARAMETERS_SYMMETRIC_GRID: int +CMP_EQ: int +CMP_GE: int +CMP_GT: int +CMP_LE: int +CMP_LT: int +CMP_NE: int +COLORMAP_AUTUMN: int +COLORMAP_BONE: int +COLORMAP_CIVIDIS: int +COLORMAP_COOL: int +COLORMAP_DEEPGREEN: int +COLORMAP_HOT: int +COLORMAP_HSV: int +COLORMAP_INFERNO: int +COLORMAP_JET: int +COLORMAP_MAGMA: int +COLORMAP_OCEAN: int +COLORMAP_PARULA: int +COLORMAP_PINK: int +COLORMAP_PLASMA: int +COLORMAP_RAINBOW: int +COLORMAP_SPRING: int +COLORMAP_SUMMER: int +COLORMAP_TURBO: int +COLORMAP_TWILIGHT: int +COLORMAP_TWILIGHT_SHIFTED: int +COLORMAP_VIRIDIS: int +COLORMAP_WINTER: int +COLOR_BAYER_BG2BGR: int +COLOR_BAYER_BG2BGRA: int +COLOR_BAYER_BG2BGR_EA: int +COLOR_BAYER_BG2BGR_VNG: int +COLOR_BAYER_BG2GRAY: int +COLOR_BAYER_BG2RGB: int +COLOR_BAYER_BG2RGBA: int +COLOR_BAYER_BG2RGB_EA: int +COLOR_BAYER_BG2RGB_VNG: int +COLOR_BAYER_BGGR2BGR: int +COLOR_BAYER_BGGR2BGRA: int +COLOR_BAYER_BGGR2BGR_EA: int +COLOR_BAYER_BGGR2BGR_VNG: int +COLOR_BAYER_BGGR2GRAY: int +COLOR_BAYER_BGGR2RGB: int +COLOR_BAYER_BGGR2RGBA: int +COLOR_BAYER_BGGR2RGB_EA: int +COLOR_BAYER_BGGR2RGB_VNG: int +COLOR_BAYER_GB2BGR: int +COLOR_BAYER_GB2BGRA: int +COLOR_BAYER_GB2BGR_EA: int +COLOR_BAYER_GB2BGR_VNG: int +COLOR_BAYER_GB2GRAY: int +COLOR_BAYER_GB2RGB: int +COLOR_BAYER_GB2RGBA: int +COLOR_BAYER_GB2RGB_EA: int +COLOR_BAYER_GB2RGB_VNG: int +COLOR_BAYER_GBRG2BGR: int +COLOR_BAYER_GBRG2BGRA: int +COLOR_BAYER_GBRG2BGR_EA: int +COLOR_BAYER_GBRG2BGR_VNG: int +COLOR_BAYER_GBRG2GRAY: int +COLOR_BAYER_GBRG2RGB: int +COLOR_BAYER_GBRG2RGBA: int +COLOR_BAYER_GBRG2RGB_EA: int +COLOR_BAYER_GBRG2RGB_VNG: int +COLOR_BAYER_GR2BGR: int +COLOR_BAYER_GR2BGRA: int +COLOR_BAYER_GR2BGR_EA: int +COLOR_BAYER_GR2BGR_VNG: int +COLOR_BAYER_GR2GRAY: int +COLOR_BAYER_GR2RGB: int +COLOR_BAYER_GR2RGBA: int +COLOR_BAYER_GR2RGB_EA: int +COLOR_BAYER_GR2RGB_VNG: int +COLOR_BAYER_GRBG2BGR: int +COLOR_BAYER_GRBG2BGRA: int +COLOR_BAYER_GRBG2BGR_EA: int +COLOR_BAYER_GRBG2BGR_VNG: int +COLOR_BAYER_GRBG2GRAY: int +COLOR_BAYER_GRBG2RGB: int +COLOR_BAYER_GRBG2RGBA: int +COLOR_BAYER_GRBG2RGB_EA: int +COLOR_BAYER_GRBG2RGB_VNG: int +COLOR_BAYER_RG2BGR: int +COLOR_BAYER_RG2BGRA: int +COLOR_BAYER_RG2BGR_EA: int +COLOR_BAYER_RG2BGR_VNG: int +COLOR_BAYER_RG2GRAY: int +COLOR_BAYER_RG2RGB: int +COLOR_BAYER_RG2RGBA: int +COLOR_BAYER_RG2RGB_EA: int +COLOR_BAYER_RG2RGB_VNG: int +COLOR_BAYER_RGGB2BGR: int +COLOR_BAYER_RGGB2BGRA: int +COLOR_BAYER_RGGB2BGR_EA: int +COLOR_BAYER_RGGB2BGR_VNG: int +COLOR_BAYER_RGGB2GRAY: int +COLOR_BAYER_RGGB2RGB: int +COLOR_BAYER_RGGB2RGBA: int +COLOR_BAYER_RGGB2RGB_EA: int +COLOR_BAYER_RGGB2RGB_VNG: int +COLOR_BGR2BGR555: int +COLOR_BGR2BGR565: int +COLOR_BGR2BGRA: int +COLOR_BGR2GRAY: int +COLOR_BGR2HLS: int +COLOR_BGR2HLS_FULL: int +COLOR_BGR2HSV: int +COLOR_BGR2HSV_FULL: int +COLOR_BGR2LAB: int +COLOR_BGR2LUV: int +COLOR_BGR2Lab: int +COLOR_BGR2Luv: int +COLOR_BGR2RGB: int +COLOR_BGR2RGBA: int +COLOR_BGR2XYZ: int +COLOR_BGR2YCR_CB: int +COLOR_BGR2YCrCb: int +COLOR_BGR2YUV: int +COLOR_BGR2YUV_I420: int +COLOR_BGR2YUV_IYUV: int +COLOR_BGR2YUV_YV12: int +COLOR_BGR5552BGR: int +COLOR_BGR5552BGRA: int +COLOR_BGR5552GRAY: int +COLOR_BGR5552RGB: int +COLOR_BGR5552RGBA: int +COLOR_BGR5652BGR: int +COLOR_BGR5652BGRA: int +COLOR_BGR5652GRAY: int +COLOR_BGR5652RGB: int +COLOR_BGR5652RGBA: int +COLOR_BGRA2BGR: int +COLOR_BGRA2BGR555: int +COLOR_BGRA2BGR565: int +COLOR_BGRA2GRAY: int +COLOR_BGRA2RGB: int +COLOR_BGRA2RGBA: int +COLOR_BGRA2YUV_I420: int +COLOR_BGRA2YUV_IYUV: int +COLOR_BGRA2YUV_YV12: int +COLOR_BayerBG2BGR: int +COLOR_BayerBG2BGRA: int +COLOR_BayerBG2BGR_EA: int +COLOR_BayerBG2BGR_VNG: int +COLOR_BayerBG2GRAY: int +COLOR_BayerBG2RGB: int +COLOR_BayerBG2RGBA: int +COLOR_BayerBG2RGB_EA: int +COLOR_BayerBG2RGB_VNG: int +COLOR_BayerBGGR2BGR: int +COLOR_BayerBGGR2BGRA: int +COLOR_BayerBGGR2BGR_EA: int +COLOR_BayerBGGR2BGR_VNG: int +COLOR_BayerBGGR2GRAY: int +COLOR_BayerBGGR2RGB: int +COLOR_BayerBGGR2RGBA: int +COLOR_BayerBGGR2RGB_EA: int +COLOR_BayerBGGR2RGB_VNG: int +COLOR_BayerGB2BGR: int +COLOR_BayerGB2BGRA: int +COLOR_BayerGB2BGR_EA: int +COLOR_BayerGB2BGR_VNG: int +COLOR_BayerGB2GRAY: int +COLOR_BayerGB2RGB: int +COLOR_BayerGB2RGBA: int +COLOR_BayerGB2RGB_EA: int +COLOR_BayerGB2RGB_VNG: int +COLOR_BayerGBRG2BGR: int +COLOR_BayerGBRG2BGRA: int +COLOR_BayerGBRG2BGR_EA: int +COLOR_BayerGBRG2BGR_VNG: int +COLOR_BayerGBRG2GRAY: int +COLOR_BayerGBRG2RGB: int +COLOR_BayerGBRG2RGBA: int +COLOR_BayerGBRG2RGB_EA: int +COLOR_BayerGBRG2RGB_VNG: int +COLOR_BayerGR2BGR: int +COLOR_BayerGR2BGRA: int +COLOR_BayerGR2BGR_EA: int +COLOR_BayerGR2BGR_VNG: int +COLOR_BayerGR2GRAY: int +COLOR_BayerGR2RGB: int +COLOR_BayerGR2RGBA: int +COLOR_BayerGR2RGB_EA: int +COLOR_BayerGR2RGB_VNG: int +COLOR_BayerGRBG2BGR: int +COLOR_BayerGRBG2BGRA: int +COLOR_BayerGRBG2BGR_EA: int +COLOR_BayerGRBG2BGR_VNG: int +COLOR_BayerGRBG2GRAY: int +COLOR_BayerGRBG2RGB: int +COLOR_BayerGRBG2RGBA: int +COLOR_BayerGRBG2RGB_EA: int +COLOR_BayerGRBG2RGB_VNG: int +COLOR_BayerRG2BGR: int +COLOR_BayerRG2BGRA: int +COLOR_BayerRG2BGR_EA: int +COLOR_BayerRG2BGR_VNG: int +COLOR_BayerRG2GRAY: int +COLOR_BayerRG2RGB: int +COLOR_BayerRG2RGBA: int +COLOR_BayerRG2RGB_EA: int +COLOR_BayerRG2RGB_VNG: int +COLOR_BayerRGGB2BGR: int +COLOR_BayerRGGB2BGRA: int +COLOR_BayerRGGB2BGR_EA: int +COLOR_BayerRGGB2BGR_VNG: int +COLOR_BayerRGGB2GRAY: int +COLOR_BayerRGGB2RGB: int +COLOR_BayerRGGB2RGBA: int +COLOR_BayerRGGB2RGB_EA: int +COLOR_BayerRGGB2RGB_VNG: int +COLOR_COLORCVT_MAX: int +COLOR_GRAY2BGR: int +COLOR_GRAY2BGR555: int +COLOR_GRAY2BGR565: int +COLOR_GRAY2BGRA: int +COLOR_GRAY2RGB: int +COLOR_GRAY2RGBA: int +COLOR_HLS2BGR: int +COLOR_HLS2BGR_FULL: int +COLOR_HLS2RGB: int +COLOR_HLS2RGB_FULL: int +COLOR_HSV2BGR: int +COLOR_HSV2BGR_FULL: int +COLOR_HSV2RGB: int +COLOR_HSV2RGB_FULL: int +COLOR_LAB2BGR: int +COLOR_LAB2LBGR: int +COLOR_LAB2LRGB: int +COLOR_LAB2RGB: int +COLOR_LBGR2LAB: int +COLOR_LBGR2LUV: int +COLOR_LBGR2Lab: int +COLOR_LBGR2Luv: int +COLOR_LRGB2LAB: int +COLOR_LRGB2LUV: int +COLOR_LRGB2Lab: int +COLOR_LRGB2Luv: int +COLOR_LUV2BGR: int +COLOR_LUV2LBGR: int +COLOR_LUV2LRGB: int +COLOR_LUV2RGB: int +COLOR_Lab2BGR: int +COLOR_Lab2LBGR: int +COLOR_Lab2LRGB: int +COLOR_Lab2RGB: int +COLOR_Luv2BGR: int +COLOR_Luv2LBGR: int +COLOR_Luv2LRGB: int +COLOR_Luv2RGB: int +COLOR_M_RGBA2RGBA: int +COLOR_RGB2BGR: int +COLOR_RGB2BGR555: int +COLOR_RGB2BGR565: int +COLOR_RGB2BGRA: int +COLOR_RGB2GRAY: int +COLOR_RGB2HLS: int +COLOR_RGB2HLS_FULL: int +COLOR_RGB2HSV: int +COLOR_RGB2HSV_FULL: int +COLOR_RGB2LAB: int +COLOR_RGB2LUV: int +COLOR_RGB2Lab: int +COLOR_RGB2Luv: int +COLOR_RGB2RGBA: int +COLOR_RGB2XYZ: int +COLOR_RGB2YCR_CB: int +COLOR_RGB2YCrCb: int +COLOR_RGB2YUV: int +COLOR_RGB2YUV_I420: int +COLOR_RGB2YUV_IYUV: int +COLOR_RGB2YUV_YV12: int +COLOR_RGBA2BGR: int +COLOR_RGBA2BGR555: int +COLOR_RGBA2BGR565: int +COLOR_RGBA2BGRA: int +COLOR_RGBA2GRAY: int +COLOR_RGBA2M_RGBA: int +COLOR_RGBA2RGB: int +COLOR_RGBA2YUV_I420: int +COLOR_RGBA2YUV_IYUV: int +COLOR_RGBA2YUV_YV12: int +COLOR_RGBA2mRGBA: int +COLOR_XYZ2BGR: int +COLOR_XYZ2RGB: int +COLOR_YCR_CB2BGR: int +COLOR_YCR_CB2RGB: int +COLOR_YCrCb2BGR: int +COLOR_YCrCb2RGB: int +COLOR_YUV2BGR: int +COLOR_YUV2BGRA_I420: int +COLOR_YUV2BGRA_IYUV: int +COLOR_YUV2BGRA_NV12: int +COLOR_YUV2BGRA_NV21: int +COLOR_YUV2BGRA_UYNV: int +COLOR_YUV2BGRA_UYVY: int +COLOR_YUV2BGRA_Y422: int +COLOR_YUV2BGRA_YUNV: int +COLOR_YUV2BGRA_YUY2: int +COLOR_YUV2BGRA_YUYV: int +COLOR_YUV2BGRA_YV12: int +COLOR_YUV2BGRA_YVYU: int +COLOR_YUV2BGR_I420: int +COLOR_YUV2BGR_IYUV: int +COLOR_YUV2BGR_NV12: int +COLOR_YUV2BGR_NV21: int +COLOR_YUV2BGR_UYNV: int +COLOR_YUV2BGR_UYVY: int +COLOR_YUV2BGR_Y422: int +COLOR_YUV2BGR_YUNV: int +COLOR_YUV2BGR_YUY2: int +COLOR_YUV2BGR_YUYV: int +COLOR_YUV2BGR_YV12: int +COLOR_YUV2BGR_YVYU: int +COLOR_YUV2GRAY_420: int +COLOR_YUV2GRAY_I420: int +COLOR_YUV2GRAY_IYUV: int +COLOR_YUV2GRAY_NV12: int +COLOR_YUV2GRAY_NV21: int +COLOR_YUV2GRAY_UYNV: int +COLOR_YUV2GRAY_UYVY: int +COLOR_YUV2GRAY_Y422: int +COLOR_YUV2GRAY_YUNV: int +COLOR_YUV2GRAY_YUY2: int +COLOR_YUV2GRAY_YUYV: int +COLOR_YUV2GRAY_YV12: int +COLOR_YUV2GRAY_YVYU: int +COLOR_YUV2RGB: int +COLOR_YUV2RGBA_I420: int +COLOR_YUV2RGBA_IYUV: int +COLOR_YUV2RGBA_NV12: int +COLOR_YUV2RGBA_NV21: int +COLOR_YUV2RGBA_UYNV: int +COLOR_YUV2RGBA_UYVY: int +COLOR_YUV2RGBA_Y422: int +COLOR_YUV2RGBA_YUNV: int +COLOR_YUV2RGBA_YUY2: int +COLOR_YUV2RGBA_YUYV: int +COLOR_YUV2RGBA_YV12: int +COLOR_YUV2RGBA_YVYU: int +COLOR_YUV2RGB_I420: int +COLOR_YUV2RGB_IYUV: int +COLOR_YUV2RGB_NV12: int +COLOR_YUV2RGB_NV21: int +COLOR_YUV2RGB_UYNV: int +COLOR_YUV2RGB_UYVY: int +COLOR_YUV2RGB_Y422: int +COLOR_YUV2RGB_YUNV: int +COLOR_YUV2RGB_YUY2: int +COLOR_YUV2RGB_YUYV: int +COLOR_YUV2RGB_YV12: int +COLOR_YUV2RGB_YVYU: int +COLOR_YUV420P2BGR: int +COLOR_YUV420P2BGRA: int +COLOR_YUV420P2GRAY: int +COLOR_YUV420P2RGB: int +COLOR_YUV420P2RGBA: int +COLOR_YUV420SP2BGR: int +COLOR_YUV420SP2BGRA: int +COLOR_YUV420SP2GRAY: int +COLOR_YUV420SP2RGB: int +COLOR_YUV420SP2RGBA: int +COLOR_YUV420p2BGR: int +COLOR_YUV420p2BGRA: int +COLOR_YUV420p2GRAY: int +COLOR_YUV420p2RGB: int +COLOR_YUV420p2RGBA: int +COLOR_YUV420sp2BGR: int +COLOR_YUV420sp2BGRA: int +COLOR_YUV420sp2GRAY: int +COLOR_YUV420sp2RGB: int +COLOR_YUV420sp2RGBA: int +COLOR_mRGBA2RGBA: int +CONTOURS_MATCH_I1: int +CONTOURS_MATCH_I2: int +CONTOURS_MATCH_I3: int +COVAR_COLS: int +COVAR_NORMAL: int +COVAR_ROWS: int +COVAR_SCALE: int +COVAR_SCRAMBLED: int +COVAR_USE_AVG: int +CV_16S: int +CV_16SC1: int +CV_16SC2: int +CV_16SC3: int +CV_16SC4: int +CV_16U: int +CV_16UC1: int +CV_16UC2: int +CV_16UC3: int +CV_16UC4: int +CV_32F: int +CV_32FC1: int +CV_32FC2: int +CV_32FC3: int +CV_32FC4: int +CV_32S: int +CV_32SC1: int +CV_32SC2: int +CV_32SC3: int +CV_32SC4: int +CV_64F: int +CV_64FC1: int +CV_64FC2: int +CV_64FC3: int +CV_64FC4: int +CV_8S: int +CV_8SC1: int +CV_8SC2: int +CV_8SC3: int +CV_8SC4: int +CV_8U: int +CV_8UC1: int +CV_8UC2: int +CV_8UC3: int +CV_8UC4: int +CirclesGridFinderParameters_ASYMMETRIC_GRID: int +CirclesGridFinderParameters_SYMMETRIC_GRID: int +DCT_INVERSE: int +DCT_ROWS: int +DECOMP_CHOLESKY: int +DECOMP_EIG: int +DECOMP_LU: int +DECOMP_NORMAL: int +DECOMP_QR: int +DECOMP_SVD: int +DESCRIPTOR_MATCHER_BRUTEFORCE: int +DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMING: int +DESCRIPTOR_MATCHER_BRUTEFORCE_HAMMINGLUT: int +DESCRIPTOR_MATCHER_BRUTEFORCE_L1: int +DESCRIPTOR_MATCHER_BRUTEFORCE_SL2: int +DESCRIPTOR_MATCHER_FLANNBASED: int +DFT_COMPLEX_INPUT: int +DFT_COMPLEX_OUTPUT: int +DFT_INVERSE: int +DFT_REAL_OUTPUT: int +DFT_ROWS: int +DFT_SCALE: int +DISOPTICAL_FLOW_PRESET_FAST: int +DISOPTICAL_FLOW_PRESET_MEDIUM: int +DISOPTICAL_FLOW_PRESET_ULTRAFAST: int +DISOpticalFlow_PRESET_FAST: int +DISOpticalFlow_PRESET_MEDIUM: int +DISOpticalFlow_PRESET_ULTRAFAST: int +DIST_C: int +DIST_FAIR: int +DIST_HUBER: int +DIST_L1: int +DIST_L12: int +DIST_L2: int +DIST_LABEL_CCOMP: int +DIST_LABEL_PIXEL: int +DIST_MASK_3: int +DIST_MASK_5: int +DIST_MASK_PRECISE: int +DIST_USER: int +DIST_WELSCH: int +DRAW_MATCHES_FLAGS_DEFAULT: int +DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG: int +DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS: int +DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS: int +DescriptorMatcher_BRUTEFORCE: int +DescriptorMatcher_BRUTEFORCE_HAMMING: int +DescriptorMatcher_BRUTEFORCE_HAMMINGLUT: int +DescriptorMatcher_BRUTEFORCE_L1: int +DescriptorMatcher_BRUTEFORCE_SL2: int +DescriptorMatcher_FLANNBASED: int +DrawMatchesFlags_DEFAULT: int +DrawMatchesFlags_DRAW_OVER_OUTIMG: int +DrawMatchesFlags_DRAW_RICH_KEYPOINTS: int +DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS: int +EVENT_FLAG_ALTKEY: int +EVENT_FLAG_CTRLKEY: int +EVENT_FLAG_LBUTTON: int +EVENT_FLAG_MBUTTON: int +EVENT_FLAG_RBUTTON: int +EVENT_FLAG_SHIFTKEY: int +EVENT_LBUTTONDBLCLK: int +EVENT_LBUTTONDOWN: int +EVENT_LBUTTONUP: int +EVENT_MBUTTONDBLCLK: int +EVENT_MBUTTONDOWN: int +EVENT_MBUTTONUP: int +EVENT_MOUSEHWHEEL: int +EVENT_MOUSEMOVE: int +EVENT_MOUSEWHEEL: int +EVENT_RBUTTONDBLCLK: int +EVENT_RBUTTONDOWN: int +EVENT_RBUTTONUP: int +FACE_RECOGNIZER_SF_FR_COSINE: int +FACE_RECOGNIZER_SF_FR_NORM_L2: int +FAST_FEATURE_DETECTOR_FAST_N: int +FAST_FEATURE_DETECTOR_NONMAX_SUPPRESSION: int +FAST_FEATURE_DETECTOR_THRESHOLD: int +FAST_FEATURE_DETECTOR_TYPE_5_8: int +FAST_FEATURE_DETECTOR_TYPE_7_12: int +FAST_FEATURE_DETECTOR_TYPE_9_16: int +FILE_NODE_EMPTY: int +FILE_NODE_FLOAT: int +FILE_NODE_FLOW: int +FILE_NODE_INT: int +FILE_NODE_MAP: int +FILE_NODE_NAMED: int +FILE_NODE_NONE: int +FILE_NODE_REAL: int +FILE_NODE_SEQ: int +FILE_NODE_STR: int +FILE_NODE_STRING: int +FILE_NODE_TYPE_MASK: int +FILE_NODE_UNIFORM: int +FILE_STORAGE_APPEND: int +FILE_STORAGE_BASE64: int +FILE_STORAGE_FORMAT_AUTO: int +FILE_STORAGE_FORMAT_JSON: int +FILE_STORAGE_FORMAT_MASK: int +FILE_STORAGE_FORMAT_XML: int +FILE_STORAGE_FORMAT_YAML: int +FILE_STORAGE_INSIDE_MAP: int +FILE_STORAGE_MEMORY: int +FILE_STORAGE_NAME_EXPECTED: int +FILE_STORAGE_READ: int +FILE_STORAGE_UNDEFINED: int +FILE_STORAGE_VALUE_EXPECTED: int +FILE_STORAGE_WRITE: int +FILE_STORAGE_WRITE_BASE64: int +FILLED: int +FILTER_SCHARR: int +FLOODFILL_FIXED_RANGE: int +FLOODFILL_MASK_ONLY: int +FM_7POINT: int +FM_8POINT: int +FM_LMEDS: int +FM_RANSAC: int +FONT_HERSHEY_COMPLEX: int +FONT_HERSHEY_COMPLEX_SMALL: int +FONT_HERSHEY_DUPLEX: int +FONT_HERSHEY_PLAIN: int +FONT_HERSHEY_SCRIPT_COMPLEX: int +FONT_HERSHEY_SCRIPT_SIMPLEX: int +FONT_HERSHEY_SIMPLEX: int +FONT_HERSHEY_TRIPLEX: int +FONT_ITALIC: int +FORMATTER_FMT_C: int +FORMATTER_FMT_CSV: int +FORMATTER_FMT_DEFAULT: int +FORMATTER_FMT_MATLAB: int +FORMATTER_FMT_NUMPY: int +FORMATTER_FMT_PYTHON: int +FaceRecognizerSF_FR_COSINE: int +FaceRecognizerSF_FR_NORM_L2: int +FastFeatureDetector_FAST_N: int +FastFeatureDetector_NONMAX_SUPPRESSION: int +FastFeatureDetector_THRESHOLD: int +FastFeatureDetector_TYPE_5_8: int +FastFeatureDetector_TYPE_7_12: int +FastFeatureDetector_TYPE_9_16: int +FileNode_EMPTY: int +FileNode_FLOAT: int +FileNode_FLOW: int +FileNode_INT: int +FileNode_MAP: int +FileNode_NAMED: int +FileNode_NONE: int +FileNode_REAL: int +FileNode_SEQ: int +FileNode_STR: int +FileNode_STRING: int +FileNode_TYPE_MASK: int +FileNode_UNIFORM: int +FileStorage_APPEND: int +FileStorage_BASE64: int +FileStorage_FORMAT_AUTO: int +FileStorage_FORMAT_JSON: int +FileStorage_FORMAT_MASK: int +FileStorage_FORMAT_XML: int +FileStorage_FORMAT_YAML: int +FileStorage_INSIDE_MAP: int +FileStorage_MEMORY: int +FileStorage_NAME_EXPECTED: int +FileStorage_READ: int +FileStorage_UNDEFINED: int +FileStorage_VALUE_EXPECTED: int +FileStorage_WRITE: int +FileStorage_WRITE_BASE64: int +Formatter_FMT_C: int +Formatter_FMT_CSV: int +Formatter_FMT_DEFAULT: int +Formatter_FMT_MATLAB: int +Formatter_FMT_NUMPY: int +Formatter_FMT_PYTHON: int +GC_BGD: int +GC_EVAL: int +GC_EVAL_FREEZE_MODEL: int +GC_FGD: int +GC_INIT_WITH_MASK: int +GC_INIT_WITH_RECT: int +GC_PR_BGD: int +GC_PR_FGD: int +GEMM_1_T: int +GEMM_2_T: int +GEMM_3_T: int +GFLUID_KERNEL_KIND_FILTER: int +GFLUID_KERNEL_KIND_RESIZE: int +GFLUID_KERNEL_KIND_YUV420TO_RGB: int +GFluidKernel_Kind_Filter: int +GFluidKernel_Kind_Resize: int +GFluidKernel_Kind_YUV420toRGB: int +GSHAPE_GARRAY: int +GSHAPE_GFRAME: int +GSHAPE_GMAT: int +GSHAPE_GOPAQUE: int +GSHAPE_GSCALAR: int +GShape_GARRAY: int +GShape_GFRAME: int +GShape_GMAT: int +GShape_GOPAQUE: int +GShape_GSCALAR: int +HISTCMP_BHATTACHARYYA: int +HISTCMP_CHISQR: int +HISTCMP_CHISQR_ALT: int +HISTCMP_CORREL: int +HISTCMP_HELLINGER: int +HISTCMP_INTERSECT: int +HISTCMP_KL_DIV: int +HOGDESCRIPTOR_DEFAULT_NLEVELS: int +HOGDESCRIPTOR_DESCR_FORMAT_COL_BY_COL: int +HOGDESCRIPTOR_DESCR_FORMAT_ROW_BY_ROW: int +HOGDESCRIPTOR_L2HYS: int +HOGDescriptor_DEFAULT_NLEVELS: int +HOGDescriptor_DESCR_FORMAT_COL_BY_COL: int +HOGDescriptor_DESCR_FORMAT_ROW_BY_ROW: int +HOGDescriptor_L2Hys: int +HOUGH_GRADIENT: int +HOUGH_GRADIENT_ALT: int +HOUGH_MULTI_SCALE: int +HOUGH_PROBABILISTIC: int +HOUGH_STANDARD: int +IMREAD_ANYCOLOR: int +IMREAD_ANYDEPTH: int +IMREAD_COLOR: int +IMREAD_GRAYSCALE: int +IMREAD_IGNORE_ORIENTATION: int +IMREAD_LOAD_GDAL: int +IMREAD_REDUCED_COLOR_2: int +IMREAD_REDUCED_COLOR_4: int +IMREAD_REDUCED_COLOR_8: int +IMREAD_REDUCED_GRAYSCALE_2: int +IMREAD_REDUCED_GRAYSCALE_4: int +IMREAD_REDUCED_GRAYSCALE_8: int +IMREAD_UNCHANGED: int +IMWRITE_EXR_COMPRESSION: int +IMWRITE_EXR_COMPRESSION_B44: int +IMWRITE_EXR_COMPRESSION_B44A: int +IMWRITE_EXR_COMPRESSION_DWAA: int +IMWRITE_EXR_COMPRESSION_DWAB: int +IMWRITE_EXR_COMPRESSION_NO: int +IMWRITE_EXR_COMPRESSION_PIZ: int +IMWRITE_EXR_COMPRESSION_PXR24: int +IMWRITE_EXR_COMPRESSION_RLE: int +IMWRITE_EXR_COMPRESSION_ZIP: int +IMWRITE_EXR_COMPRESSION_ZIPS: int +IMWRITE_EXR_TYPE: int +IMWRITE_EXR_TYPE_FLOAT: int +IMWRITE_EXR_TYPE_HALF: int +IMWRITE_JPEG2000_COMPRESSION_X1000: int +IMWRITE_JPEG_CHROMA_QUALITY: int +IMWRITE_JPEG_LUMA_QUALITY: int +IMWRITE_JPEG_OPTIMIZE: int +IMWRITE_JPEG_PROGRESSIVE: int +IMWRITE_JPEG_QUALITY: int +IMWRITE_JPEG_RST_INTERVAL: int +IMWRITE_PAM_FORMAT_BLACKANDWHITE: int +IMWRITE_PAM_FORMAT_GRAYSCALE: int +IMWRITE_PAM_FORMAT_GRAYSCALE_ALPHA: int +IMWRITE_PAM_FORMAT_NULL: int +IMWRITE_PAM_FORMAT_RGB: int +IMWRITE_PAM_FORMAT_RGB_ALPHA: int +IMWRITE_PAM_TUPLETYPE: int +IMWRITE_PNG_BILEVEL: int +IMWRITE_PNG_COMPRESSION: int +IMWRITE_PNG_STRATEGY: int +IMWRITE_PNG_STRATEGY_DEFAULT: int +IMWRITE_PNG_STRATEGY_FILTERED: int +IMWRITE_PNG_STRATEGY_FIXED: int +IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY: int +IMWRITE_PNG_STRATEGY_RLE: int +IMWRITE_PXM_BINARY: int +IMWRITE_TIFF_COMPRESSION: int +IMWRITE_TIFF_RESUNIT: int +IMWRITE_TIFF_XDPI: int +IMWRITE_TIFF_YDPI: int +IMWRITE_WEBP_QUALITY: int +INPAINT_NS: int +INPAINT_TELEA: int +INTERSECT_FULL: int +INTERSECT_NONE: int +INTERSECT_PARTIAL: int +INTER_AREA: int +INTER_BITS: int +INTER_BITS2: int +INTER_CUBIC: int +INTER_LANCZOS4: int +INTER_LINEAR: int +INTER_LINEAR_EXACT: int +INTER_MAX: int +INTER_NEAREST: int +INTER_NEAREST_EXACT: int +INTER_TAB_SIZE: int +INTER_TAB_SIZE2: int +KAZE_DIFF_CHARBONNIER: int +KAZE_DIFF_PM_G1: int +KAZE_DIFF_PM_G2: int +KAZE_DIFF_WEICKERT: int +KMEANS_PP_CENTERS: int +KMEANS_RANDOM_CENTERS: int +KMEANS_USE_INITIAL_LABELS: int +LDR_SIZE: int +LINE_4: int +LINE_8: int +LINE_AA: int +LMEDS: int +LOCAL_OPTIM_GC: int +LOCAL_OPTIM_INNER_AND_ITER_LO: int +LOCAL_OPTIM_INNER_LO: int +LOCAL_OPTIM_NULL: int +LOCAL_OPTIM_SIGMA: int +LSD_REFINE_ADV: int +LSD_REFINE_NONE: int +LSD_REFINE_STD: int +MARKER_CROSS: int +MARKER_DIAMOND: int +MARKER_SQUARE: int +MARKER_STAR: int +MARKER_TILTED_CROSS: int +MARKER_TRIANGLE_DOWN: int +MARKER_TRIANGLE_UP: int +MAT_AUTO_STEP: int +MAT_CONTINUOUS_FLAG: int +MAT_DEPTH_MASK: int +MAT_MAGIC_MASK: int +MAT_MAGIC_VAL: int +MAT_SUBMATRIX_FLAG: int +MAT_TYPE_MASK: int +MEDIA_FORMAT_BGR: int +MEDIA_FORMAT_NV12: int +MEDIA_FRAME_ACCESS_R: int +MEDIA_FRAME_ACCESS_W: int +MIXED_CLONE: int +MONOCHROME_TRANSFER: int +MORPH_BLACKHAT: int +MORPH_CLOSE: int +MORPH_CROSS: int +MORPH_DILATE: int +MORPH_ELLIPSE: int +MORPH_ERODE: int +MORPH_GRADIENT: int +MORPH_HITMISS: int +MORPH_OPEN: int +MORPH_RECT: int +MORPH_TOPHAT: int +MOTION_AFFINE: int +MOTION_EUCLIDEAN: int +MOTION_HOMOGRAPHY: int +MOTION_TRANSLATION: int +Mat_AUTO_STEP: int +Mat_CONTINUOUS_FLAG: int +Mat_DEPTH_MASK: int +Mat_MAGIC_MASK: int +Mat_MAGIC_VAL: int +Mat_SUBMATRIX_FLAG: int +Mat_TYPE_MASK: int +MediaFormat_BGR: int +MediaFormat_NV12: int +MediaFrame_Access_R: int +MediaFrame_Access_W: int +NEIGH_FLANN_KNN: int +NEIGH_FLANN_RADIUS: int +NEIGH_GRID: int +NORMAL_CLONE: int +NORMCONV_FILTER: int +NORM_HAMMING: int +NORM_HAMMING2: int +NORM_INF: int +NORM_L1: int +NORM_L2: int +NORM_L2SQR: int +NORM_MINMAX: int +NORM_RELATIVE: int +NORM_TYPE_MASK: int +OPTFLOW_FARNEBACK_GAUSSIAN: int +OPTFLOW_LK_GET_MIN_EIGENVALS: int +OPTFLOW_USE_INITIAL_FLOW: int +ORB_FAST_SCORE: int +ORB_HARRIS_SCORE: int +PARAM_ALGORITHM: int +PARAM_BOOLEAN: int +PARAM_FLOAT: int +PARAM_INT: int +PARAM_MAT: int +PARAM_MAT_VECTOR: int +PARAM_REAL: int +PARAM_SCALAR: int +PARAM_STRING: int +PARAM_UCHAR: int +PARAM_UINT64: int +PARAM_UNSIGNED_INT: int +PCA_DATA_AS_COL: int +PCA_DATA_AS_ROW: int +PCA_USE_AVG: int +PROJ_SPHERICAL_EQRECT: int +PROJ_SPHERICAL_ORTHO: int +Param_ALGORITHM: int +Param_BOOLEAN: int +Param_FLOAT: int +Param_INT: int +Param_MAT: int +Param_MAT_VECTOR: int +Param_REAL: int +Param_SCALAR: int +Param_STRING: int +Param_UCHAR: int +Param_UINT64: int +Param_UNSIGNED_INT: int +QRCODE_ENCODER_CORRECT_LEVEL_H: int +QRCODE_ENCODER_CORRECT_LEVEL_L: int +QRCODE_ENCODER_CORRECT_LEVEL_M: int +QRCODE_ENCODER_CORRECT_LEVEL_Q: int +QRCODE_ENCODER_ECI_UTF8: int +QRCODE_ENCODER_MODE_ALPHANUMERIC: int +QRCODE_ENCODER_MODE_AUTO: int +QRCODE_ENCODER_MODE_BYTE: int +QRCODE_ENCODER_MODE_ECI: int +QRCODE_ENCODER_MODE_KANJI: int +QRCODE_ENCODER_MODE_NUMERIC: int +QRCODE_ENCODER_MODE_STRUCTURED_APPEND: int +QRCodeEncoder_CORRECT_LEVEL_H: int +QRCodeEncoder_CORRECT_LEVEL_L: int +QRCodeEncoder_CORRECT_LEVEL_M: int +QRCodeEncoder_CORRECT_LEVEL_Q: int +QRCodeEncoder_ECI_UTF8: int +QRCodeEncoder_MODE_ALPHANUMERIC: int +QRCodeEncoder_MODE_AUTO: int +QRCodeEncoder_MODE_BYTE: int +QRCodeEncoder_MODE_ECI: int +QRCodeEncoder_MODE_KANJI: int +QRCodeEncoder_MODE_NUMERIC: int +QRCodeEncoder_MODE_STRUCTURED_APPEND: int +QT_CHECKBOX: int +QT_FONT_BLACK: int +QT_FONT_BOLD: int +QT_FONT_DEMIBOLD: int +QT_FONT_LIGHT: int +QT_FONT_NORMAL: int +QT_NEW_BUTTONBAR: int +QT_PUSH_BUTTON: int +QT_RADIOBOX: int +QT_STYLE_ITALIC: int +QT_STYLE_NORMAL: int +QT_STYLE_OBLIQUE: int +QUAT_ASSUME_NOT_UNIT: int +QUAT_ASSUME_UNIT: int +QUAT_ENUM_EULER_ANGLES_MAX_VALUE: int +QUAT_ENUM_EXT_XYX: int +QUAT_ENUM_EXT_XYZ: int +QUAT_ENUM_EXT_XZX: int +QUAT_ENUM_EXT_XZY: int +QUAT_ENUM_EXT_YXY: int +QUAT_ENUM_EXT_YXZ: int +QUAT_ENUM_EXT_YZX: int +QUAT_ENUM_EXT_YZY: int +QUAT_ENUM_EXT_ZXY: int +QUAT_ENUM_EXT_ZXZ: int +QUAT_ENUM_EXT_ZYX: int +QUAT_ENUM_EXT_ZYZ: int +QUAT_ENUM_INT_XYX: int +QUAT_ENUM_INT_XYZ: int +QUAT_ENUM_INT_XZX: int +QUAT_ENUM_INT_XZY: int +QUAT_ENUM_INT_YXY: int +QUAT_ENUM_INT_YXZ: int +QUAT_ENUM_INT_YZX: int +QUAT_ENUM_INT_YZY: int +QUAT_ENUM_INT_ZXY: int +QUAT_ENUM_INT_ZXZ: int +QUAT_ENUM_INT_ZYX: int +QUAT_ENUM_INT_ZYZ: int +QuatEnum_EULER_ANGLES_MAX_VALUE: int +QuatEnum_EXT_XYX: int +QuatEnum_EXT_XYZ: int +QuatEnum_EXT_XZX: int +QuatEnum_EXT_XZY: int +QuatEnum_EXT_YXY: int +QuatEnum_EXT_YXZ: int +QuatEnum_EXT_YZX: int +QuatEnum_EXT_YZY: int +QuatEnum_EXT_ZXY: int +QuatEnum_EXT_ZXZ: int +QuatEnum_EXT_ZYX: int +QuatEnum_EXT_ZYZ: int +QuatEnum_INT_XYX: int +QuatEnum_INT_XYZ: int +QuatEnum_INT_XZX: int +QuatEnum_INT_XZY: int +QuatEnum_INT_YXY: int +QuatEnum_INT_YXZ: int +QuatEnum_INT_YZX: int +QuatEnum_INT_YZY: int +QuatEnum_INT_ZXY: int +QuatEnum_INT_ZXZ: int +QuatEnum_INT_ZYX: int +QuatEnum_INT_ZYZ: int +RANSAC: int +RECURS_FILTER: int +REDUCE_AVG: int +REDUCE_MAX: int +REDUCE_MIN: int +REDUCE_SUM: int +RETR_CCOMP: int +RETR_EXTERNAL: int +RETR_FLOODFILL: int +RETR_LIST: int +RETR_TREE: int +RHO: int +RMAT_ACCESS_R: int +RMAT_ACCESS_W: int +RMat_Access_R: int +RMat_Access_W: int +RNG_NORMAL: int +RNG_UNIFORM: int +ROTATE_180: int +ROTATE_90_CLOCKWISE: int +ROTATE_90_COUNTERCLOCKWISE: int +SAMPLING_NAPSAC: int +SAMPLING_PROGRESSIVE_NAPSAC: int +SAMPLING_PROSAC: int +SAMPLING_UNIFORM: int +SCORE_METHOD_LMEDS: int +SCORE_METHOD_MAGSAC: int +SCORE_METHOD_MSAC: int +SCORE_METHOD_RANSAC: int +SOLVELP_MULTI: int +SOLVELP_SINGLE: int +SOLVELP_UNBOUNDED: int +SOLVELP_UNFEASIBLE: int +SOLVEPNP_AP3P: int +SOLVEPNP_DLS: int +SOLVEPNP_EPNP: int +SOLVEPNP_IPPE: int +SOLVEPNP_IPPE_SQUARE: int +SOLVEPNP_ITERATIVE: int +SOLVEPNP_MAX_COUNT: int +SOLVEPNP_P3P: int +SOLVEPNP_SQPNP: int +SOLVEPNP_UPNP: int +SORT_ASCENDING: int +SORT_DESCENDING: int +SORT_EVERY_COLUMN: int +SORT_EVERY_ROW: int +SPARSE_MAT_HASH_BIT: int +SPARSE_MAT_HASH_SCALE: int +SPARSE_MAT_MAGIC_VAL: int +SPARSE_MAT_MAX_DIM: int +STEREO_BM_PREFILTER_NORMALIZED_RESPONSE: int +STEREO_BM_PREFILTER_XSOBEL: int +STEREO_MATCHER_DISP_SCALE: int +STEREO_MATCHER_DISP_SHIFT: int +STEREO_SGBM_MODE_HH: int +STEREO_SGBM_MODE_HH4: int +STEREO_SGBM_MODE_SGBM: int +STEREO_SGBM_MODE_SGBM_3WAY: int +STITCHER_ERR_CAMERA_PARAMS_ADJUST_FAIL: int +STITCHER_ERR_HOMOGRAPHY_EST_FAIL: int +STITCHER_ERR_NEED_MORE_IMGS: int +STITCHER_OK: int +STITCHER_PANORAMA: int +STITCHER_SCANS: int +SUBDIV2D_NEXT_AROUND_DST: int +SUBDIV2D_NEXT_AROUND_LEFT: int +SUBDIV2D_NEXT_AROUND_ORG: int +SUBDIV2D_NEXT_AROUND_RIGHT: int +SUBDIV2D_PREV_AROUND_DST: int +SUBDIV2D_PREV_AROUND_LEFT: int +SUBDIV2D_PREV_AROUND_ORG: int +SUBDIV2D_PREV_AROUND_RIGHT: int +SUBDIV2D_PTLOC_ERROR: int +SUBDIV2D_PTLOC_INSIDE: int +SUBDIV2D_PTLOC_ON_EDGE: int +SUBDIV2D_PTLOC_OUTSIDE_RECT: int +SUBDIV2D_PTLOC_VERTEX: int +SVD_FULL_UV: int +SVD_MODIFY_A: int +SVD_NO_UV: int +SparseMat_HASH_BIT: int +SparseMat_HASH_SCALE: int +SparseMat_MAGIC_VAL: int +SparseMat_MAX_DIM: int +StereoBM_PREFILTER_NORMALIZED_RESPONSE: int +StereoBM_PREFILTER_XSOBEL: int +StereoMatcher_DISP_SCALE: int +StereoMatcher_DISP_SHIFT: int +StereoSGBM_MODE_HH: int +StereoSGBM_MODE_HH4: int +StereoSGBM_MODE_SGBM: int +StereoSGBM_MODE_SGBM_3WAY: int +Stitcher_ERR_CAMERA_PARAMS_ADJUST_FAIL: int +Stitcher_ERR_HOMOGRAPHY_EST_FAIL: int +Stitcher_ERR_NEED_MORE_IMGS: int +Stitcher_OK: int +Stitcher_PANORAMA: int +Stitcher_SCANS: int +Subdiv2D_NEXT_AROUND_DST: int +Subdiv2D_NEXT_AROUND_LEFT: int +Subdiv2D_NEXT_AROUND_ORG: int +Subdiv2D_NEXT_AROUND_RIGHT: int +Subdiv2D_PREV_AROUND_DST: int +Subdiv2D_PREV_AROUND_LEFT: int +Subdiv2D_PREV_AROUND_ORG: int +Subdiv2D_PREV_AROUND_RIGHT: int +Subdiv2D_PTLOC_ERROR: int +Subdiv2D_PTLOC_INSIDE: int +Subdiv2D_PTLOC_ON_EDGE: int +Subdiv2D_PTLOC_OUTSIDE_RECT: int +Subdiv2D_PTLOC_VERTEX: int +TERM_CRITERIA_COUNT: int +TERM_CRITERIA_EPS: int +TERM_CRITERIA_MAX_ITER: int +THRESH_BINARY: int +THRESH_BINARY_INV: int +THRESH_MASK: int +THRESH_OTSU: int +THRESH_TOZERO: int +THRESH_TOZERO_INV: int +THRESH_TRIANGLE: int +THRESH_TRUNC: int +TM_CCOEFF: int +TM_CCOEFF_NORMED: int +TM_CCORR: int +TM_CCORR_NORMED: int +TM_SQDIFF: int +TM_SQDIFF_NORMED: int +TermCriteria_COUNT: int +TermCriteria_EPS: int +TermCriteria_MAX_ITER: int +UMAT_AUTO_STEP: int +UMAT_CONTINUOUS_FLAG: int +UMAT_DATA_ASYNC_CLEANUP: int +UMAT_DATA_COPY_ON_MAP: int +UMAT_DATA_DEVICE_COPY_OBSOLETE: int +UMAT_DATA_DEVICE_MEM_MAPPED: int +UMAT_DATA_HOST_COPY_OBSOLETE: int +UMAT_DATA_TEMP_COPIED_UMAT: int +UMAT_DATA_TEMP_UMAT: int +UMAT_DATA_USER_ALLOCATED: int +UMAT_DEPTH_MASK: int +UMAT_MAGIC_MASK: int +UMAT_MAGIC_VAL: int +UMAT_SUBMATRIX_FLAG: int +UMAT_TYPE_MASK: int +UMatData_ASYNC_CLEANUP: int +UMatData_COPY_ON_MAP: int +UMatData_DEVICE_COPY_OBSOLETE: int +UMatData_DEVICE_MEM_MAPPED: int +UMatData_HOST_COPY_OBSOLETE: int +UMatData_TEMP_COPIED_UMAT: int +UMatData_TEMP_UMAT: int +UMatData_USER_ALLOCATED: int +UMat_AUTO_STEP: int +UMat_CONTINUOUS_FLAG: int +UMat_DEPTH_MASK: int +UMat_MAGIC_MASK: int +UMat_MAGIC_VAL: int +UMat_SUBMATRIX_FLAG: int +UMat_TYPE_MASK: int +USAC_ACCURATE: int +USAC_DEFAULT: int +USAC_FAST: int +USAC_FM_8PTS: int +USAC_MAGSAC: int +USAC_PARALLEL: int +USAC_PROSAC: int +USAGE_ALLOCATE_DEVICE_MEMORY: int +USAGE_ALLOCATE_HOST_MEMORY: int +USAGE_ALLOCATE_SHARED_MEMORY: int +USAGE_DEFAULT: int +VIDEOWRITER_PROP_DEPTH: int +VIDEOWRITER_PROP_FRAMEBYTES: int +VIDEOWRITER_PROP_HW_ACCELERATION: int +VIDEOWRITER_PROP_HW_ACCELERATION_USE_OPENCL: int +VIDEOWRITER_PROP_HW_DEVICE: int +VIDEOWRITER_PROP_IS_COLOR: int +VIDEOWRITER_PROP_NSTRIPES: int +VIDEOWRITER_PROP_QUALITY: int +VIDEO_ACCELERATION_ANY: int +VIDEO_ACCELERATION_D3D11: int +VIDEO_ACCELERATION_MFX: int +VIDEO_ACCELERATION_NONE: int +VIDEO_ACCELERATION_VAAPI: int +WARP_FILL_OUTLIERS: int +WARP_INVERSE_MAP: int +WARP_POLAR_LINEAR: int +WARP_POLAR_LOG: int +WINDOW_AUTOSIZE: int +WINDOW_FREERATIO: int +WINDOW_FULLSCREEN: int +WINDOW_GUI_EXPANDED: int +WINDOW_GUI_NORMAL: int +WINDOW_KEEPRATIO: int +WINDOW_NORMAL: int +WINDOW_OPENGL: int +WND_PROP_ASPECT_RATIO: int +WND_PROP_AUTOSIZE: int +WND_PROP_FULLSCREEN: int +WND_PROP_OPENGL: int +WND_PROP_TOPMOST: int +WND_PROP_VISIBLE: int +WND_PROP_VSYNC: int + + +class AKAZE(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getDescriptorChannels(self, *args, **kwargs): ... # incomplete + def getDescriptorSize(self, *args, **kwargs): ... # incomplete + def getDescriptorType(self, *args, **kwargs): ... # incomplete + def getDiffusivity(self, *args, **kwargs): ... # incomplete + def getNOctaveLayers(self, *args, **kwargs): ... # incomplete + def getNOctaves(self, *args, **kwargs): ... # incomplete + def getThreshold(self, *args, **kwargs): ... # incomplete + def setDescriptorChannels(self, dch) -> None: ... + def setDescriptorSize(self, dsize) -> None: ... + def setDescriptorType(self, dtype) -> None: ... + def setDiffusivity(self, diff) -> None: ... + def setNOctaveLayers(self, octaveLayers) -> None: ... + def setNOctaves(self, octaves) -> None: ... + def setThreshold(self, threshold) -> None: ... + + +class AffineFeature(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getViewParams(self, tilts, rolls) -> None: ... + def setViewParams(self, tilts, rolls) -> None: ... + + +class AgastFeatureDetector(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getNonmaxSuppression(self, *args, **kwargs): ... # incomplete + def getThreshold(self, *args, **kwargs): ... # incomplete + def getType(self, *args, **kwargs): ... # incomplete + def setNonmaxSuppression(self, f) -> None: ... + def setThreshold(self, threshold) -> None: ... + def setType(self, type) -> None: ... + + +class Algorithm: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def clear(self) -> None: ... + def empty(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def read(self, fn) -> None: ... + def save(self, filename) -> None: ... + def write(self, *args, **kwargs): ... # incomplete + + +class AlignExposures(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def process(self, src, dst, times, response) -> None: ... + + +class AlignMTB(AlignExposures): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def calculateShift(self, *args, **kwargs): ... # incomplete + def computeBitmaps(self, *args, **kwargs): ... # incomplete + def getCut(self, *args, **kwargs): ... # incomplete + def getExcludeRange(self, *args, **kwargs): ... # incomplete + def getMaxBits(self, *args, **kwargs): ... # incomplete + @overload + def process(self, src, dst, times, response) -> None: ... + @overload + def process(src, dst) -> None: ... + def setCut(self, value) -> None: ... + def setExcludeRange(self, exclude_range) -> None: ... + def setMaxBits(self, max_bits) -> None: ... + def shiftMat(self, *args, **kwargs): ... # incomplete + + +class AsyncArray: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def get(self, *args, **kwargs): ... # incomplete + def release(self) -> None: ... + def valid(self, *args, **kwargs): ... # incomplete + def wait_for(self, *args, **kwargs): ... # incomplete + + +class BFMatcher(DescriptorMatcher): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + + +class BOWImgDescriptorExtractor: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def compute(self, *args, **kwargs): ... # incomplete + def descriptorSize(self, *args, **kwargs): ... # incomplete + def descriptorType(self, *args, **kwargs): ... # incomplete + def getVocabulary(self, *args, **kwargs): ... # incomplete + def setVocabulary(self, vocabulary) -> None: ... + + +class BOWKMeansTrainer(BOWTrainer): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def cluster(self, *args, **kwargs): ... # incomplete + + +class BOWTrainer: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def add(self, descriptors) -> None: ... + def clear(self) -> None: ... + def cluster(self, *args, **kwargs): ... # incomplete + def descriptorsCount(self, *args, **kwargs): ... # incomplete + def getDescriptors(self, *args, **kwargs): ... # incomplete + + +class BRISK(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getOctaves(self, *args, **kwargs): ... # incomplete + def getThreshold(self, *args, **kwargs): ... # incomplete + def setOctaves(self, octaves) -> None: ... + def setThreshold(self, threshold) -> None: ... + + +class BackgroundSubtractor(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, *args, **kwargs): ... # incomplete + def getBackgroundImage(self, *args, **kwargs): ... # incomplete + + +class BackgroundSubtractorKNN(BackgroundSubtractor): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getDetectShadows(self, *args, **kwargs): ... # incomplete + def getDist2Threshold(self, *args, **kwargs): ... # incomplete + def getHistory(self, *args, **kwargs): ... # incomplete + def getNSamples(self, *args, **kwargs): ... # incomplete + def getShadowThreshold(self, *args, **kwargs): ... # incomplete + def getShadowValue(self, *args, **kwargs): ... # incomplete + def getkNNSamples(self, *args, **kwargs): ... # incomplete + def setDetectShadows(self, detectShadows) -> None: ... + def setDist2Threshold(self, _dist2Threshold) -> None: ... + def setHistory(self, history) -> None: ... + def setNSamples(self, _nN) -> None: ... + def setShadowThreshold(self, threshold) -> None: ... + def setShadowValue(self, value) -> None: ... + def setkNNSamples(self, _nkNN) -> None: ... + + +class BackgroundSubtractorMOG2(BackgroundSubtractor): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, *args, **kwargs): ... # incomplete + def getBackgroundRatio(self, *args, **kwargs): ... # incomplete + def getComplexityReductionThreshold(self, *args, **kwargs): ... # incomplete + def getDetectShadows(self, *args, **kwargs): ... # incomplete + def getHistory(self, *args, **kwargs): ... # incomplete + def getNMixtures(self, *args, **kwargs): ... # incomplete + def getShadowThreshold(self, *args, **kwargs): ... # incomplete + def getShadowValue(self, *args, **kwargs): ... # incomplete + def getVarInit(self, *args, **kwargs): ... # incomplete + def getVarMax(self, *args, **kwargs): ... # incomplete + def getVarMin(self, *args, **kwargs): ... # incomplete + def getVarThreshold(self, *args, **kwargs): ... # incomplete + def getVarThresholdGen(self, *args, **kwargs): ... # incomplete + def setBackgroundRatio(self, ratio) -> None: ... + def setComplexityReductionThreshold(self, ct) -> None: ... + def setDetectShadows(self, detectShadows) -> None: ... + def setHistory(self, history) -> None: ... + def setNMixtures(self, nmixtures) -> None: ... + def setShadowThreshold(self, threshold) -> None: ... + def setShadowValue(self, value) -> None: ... + def setVarInit(self, varInit) -> None: ... + def setVarMax(self, varMax) -> None: ... + def setVarMin(self, varMin) -> None: ... + def setVarThreshold(self, varThreshold) -> None: ... + def setVarThresholdGen(self, varThresholdGen) -> None: ... + + +class BaseCascadeClassifier(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class CLAHE(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, *args, **kwargs): ... # incomplete + def collectGarbage(self) -> None: ... + def getClipLimit(self, *args, **kwargs): ... # incomplete + def getTilesGridSize(self, *args, **kwargs): ... # incomplete + def setClipLimit(self, clipLimit) -> None: ... + def setTilesGridSize(self, tileGridSize) -> None: ... + + +class CalibrateCRF(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def process(self, *args, **kwargs): ... # incomplete + + +class CalibrateDebevec(CalibrateCRF): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getLambda(self, *args, **kwargs): ... # incomplete + def getRandom(self, *args, **kwargs): ... # incomplete + def getSamples(self, *args, **kwargs): ... # incomplete + def setLambda(self, lambda_) -> None: ... + def setRandom(self, random) -> None: ... + def setSamples(self, samples) -> None: ... + + +class CalibrateRobertson(CalibrateCRF): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getMaxIter(self, *args, **kwargs): ... # incomplete + def getRadiance(self, *args, **kwargs): ... # incomplete + def getThreshold(self, *args, **kwargs): ... # incomplete + def setMaxIter(self, max_iter) -> None: ... + def setThreshold(self, threshold) -> None: ... + + +class CascadeClassifier: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def convert(self, *args, **kwargs): ... # incomplete + def detectMultiScale(self, *args, **kwargs): ... # incomplete + def detectMultiScale2(self, *args, **kwargs): ... # incomplete + def detectMultiScale3(self, *args, **kwargs): ... # incomplete + def empty(self, *args, **kwargs): ... # incomplete + def getFeatureType(self, *args, **kwargs): ... # incomplete + def getOriginalWindowSize(self, *args, **kwargs): ... # incomplete + def isOldFormatCascade(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def read(self, *args, **kwargs): ... # incomplete + + +class CirclesGridFinderParameters: + convexHullFactor: Any + densityNeighborhoodSize: Any + edgeGain: Any + edgePenalty: Any + existingVertexGain: Any + keypointScale: Any + kmeansAttempts: Any + maxRectifiedDistance: Any + minDensity: Any + minDistanceToAddKeypoint: Any + minGraphConfidence: Any + minRNGEdgeSwitchDist: Any + squareSize: Any + vertexGain: Any + vertexPenalty: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class DISOpticalFlow(DenseOpticalFlow): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getFinestScale(self, *args, **kwargs): ... # incomplete + def getGradientDescentIterations(self, *args, **kwargs): ... # incomplete + def getPatchSize(self, *args, **kwargs): ... # incomplete + def getPatchStride(self, *args, **kwargs): ... # incomplete + def getUseMeanNormalization(self, *args, **kwargs): ... # incomplete + def getUseSpatialPropagation(self, *args, **kwargs): ... # incomplete + def getVariationalRefinementAlpha(self, *args, **kwargs): ... # incomplete + def getVariationalRefinementDelta(self, *args, **kwargs): ... # incomplete + def getVariationalRefinementGamma(self, *args, **kwargs): ... # incomplete + def getVariationalRefinementIterations(self, *args, **kwargs): ... # incomplete + def setFinestScale(self, val) -> None: ... + def setGradientDescentIterations(self, val) -> None: ... + def setPatchSize(self, val) -> None: ... + def setPatchStride(self, val) -> None: ... + def setUseMeanNormalization(self, val) -> None: ... + def setUseSpatialPropagation(self, val) -> None: ... + def setVariationalRefinementAlpha(self, val) -> None: ... + def setVariationalRefinementDelta(self, val) -> None: ... + def setVariationalRefinementGamma(self, val) -> None: ... + def setVariationalRefinementIterations(self, val) -> None: ... + + +class DMatch: + distance: Any + imgIdx: Any + queryIdx: Any + trainIdx: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class DenseOpticalFlow(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def calc(self, I0, I1, flow) -> _flow: ... + def collectGarbage(self) -> None: ... + + +class DescriptorMatcher(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def add(self, descriptors) -> None: ... + def clear(self) -> None: ... + def clone(self, *args, **kwargs): ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def empty(self, *args, **kwargs): ... # incomplete + def getTrainDescriptors(self, *args, **kwargs): ... # incomplete + def isMaskSupported(self, *args, **kwargs): ... # incomplete + def knnMatch(self, *args, **kwargs): ... # incomplete + def match(self, *args, **kwargs): ... # incomplete + def radiusMatch(self, *args, **kwargs): ... # incomplete + def read(self, fileName) -> None: ... + def train(self) -> None: ... + def write(self, fileName) -> None: ... + + +class FaceDetectorYN: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def detect(self, *args, **kwargs): ... # incomplete + def getInputSize(self, *args, **kwargs): ... # incomplete + def getNMSThreshold(self, *args, **kwargs): ... # incomplete + def getScoreThreshold(self, *args, **kwargs): ... # incomplete + def getTopK(self, *args, **kwargs): ... # incomplete + def setInputSize(self, input_size) -> None: ... + def setNMSThreshold(self, nms_threshold) -> None: ... + def setScoreThreshold(self, score_threshold) -> None: ... + def setTopK(self, top_k) -> None: ... + + +class FaceRecognizerSF: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def alignCrop(self, *args, **kwargs): ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def feature(self, *args, **kwargs): ... # incomplete + def match(self, *args, **kwargs): ... # incomplete + + +class FarnebackOpticalFlow(DenseOpticalFlow): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getFastPyramids(self, *args, **kwargs): ... # incomplete + def getFlags(self, *args, **kwargs): ... # incomplete + def getNumIters(self, *args, **kwargs): ... # incomplete + def getNumLevels(self, *args, **kwargs): ... # incomplete + def getPolyN(self, *args, **kwargs): ... # incomplete + def getPolySigma(self, *args, **kwargs): ... # incomplete + def getPyrScale(self, *args, **kwargs): ... # incomplete + def getWinSize(self, *args, **kwargs): ... # incomplete + def setFastPyramids(self, fastPyramids) -> None: ... + def setFlags(self, flags) -> None: ... + def setNumIters(self, numIters) -> None: ... + def setNumLevels(self, numLevels) -> None: ... + def setPolyN(self, polyN) -> None: ... + def setPolySigma(self, polySigma) -> None: ... + def setPyrScale(self, pyrScale) -> None: ... + def setWinSize(self, winSize) -> None: ... + + +class FastFeatureDetector(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getNonmaxSuppression(self, *args, **kwargs): ... # incomplete + def getThreshold(self, *args, **kwargs): ... # incomplete + def getType(self, *args, **kwargs): ... # incomplete + def setNonmaxSuppression(self, f) -> None: ... + def setThreshold(self, threshold) -> None: ... + def setType(self, type) -> None: ... + + +class Feature2D: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def compute(self, *args, **kwargs): ... # incomplete + def defaultNorm(self, *args, **kwargs): ... # incomplete + def descriptorSize(self, *args, **kwargs): ... # incomplete + def descriptorType(self, *args, **kwargs): ... # incomplete + def detect(self, *args, **kwargs): ... # incomplete + def detectAndCompute(self, *args, **kwargs): ... # incomplete + def empty(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + @overload + def read(self, fileName) -> None: ... + @overload + def read(arg1) -> None: ... + def write(self, fileName) -> None: ... + + +class FileNode: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def at(self, *args, **kwargs): ... # incomplete + def empty(self, *args, **kwargs): ... # incomplete + def getNode(self, *args, **kwargs): ... # incomplete + def isInt(self, *args, **kwargs): ... # incomplete + def isMap(self, *args, **kwargs): ... # incomplete + def isNamed(self, *args, **kwargs): ... # incomplete + def isNone(self, *args, **kwargs): ... # incomplete + def isReal(self, *args, **kwargs): ... # incomplete + def isSeq(self, *args, **kwargs): ... # incomplete + def isString(self, *args, **kwargs): ... # incomplete + def keys(self, *args, **kwargs): ... # incomplete + def mat(self, *args, **kwargs): ... # incomplete + def name(self, *args, **kwargs): ... # incomplete + def rawSize(self, *args, **kwargs): ... # incomplete + def real(self, *args, **kwargs): ... # incomplete + def size(self, *args, **kwargs): ... # incomplete + def string(self, *args, **kwargs): ... # incomplete + def type(self, *args, **kwargs): ... # incomplete + + +class FileStorage: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def endWriteStruct(self) -> None: ... + def getFirstTopLevelNode(self, *args, **kwargs): ... # incomplete + def getFormat(self, *args, **kwargs): ... # incomplete + def getNode(self, *args, **kwargs): ... # incomplete + def isOpened(self, *args, **kwargs): ... # incomplete + def open(self, *args, **kwargs): ... # incomplete + def release(self) -> None: ... + def releaseAndGetString(self, *args, **kwargs): ... # incomplete + def root(self, *args, **kwargs): ... # incomplete + def startWriteStruct(self, *args, **kwargs): ... # incomplete + def write(self, name, val) -> None: ... + def writeComment(self, *args, **kwargs): ... # incomplete + + +class FlannBasedMatcher(DescriptorMatcher): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + + +class GArrayDesc: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class GArrayT: + def __init__(self, type: int) -> None: ... + def type(self) -> int: ... + + +class GCompileArg: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class GComputation: + def __init__(self, arg: gapi_GKernelPackage | gapi_GNetPackage | queue_capacity) -> None: ... + def apply(self): ... + def compileStreaming(self, *args, **kwargs): ... # incomplete + + +class GFTTDetector(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getBlockSize(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getHarrisDetector(self, *args, **kwargs): ... # incomplete + def getK(self, *args, **kwargs): ... # incomplete + def getMaxFeatures(self, *args, **kwargs): ... # incomplete + def getMinDistance(self, *args, **kwargs): ... # incomplete + def getQualityLevel(self, *args, **kwargs): ... # incomplete + def setBlockSize(self, blockSize) -> None: ... + def setHarrisDetector(self, val) -> None: ... + def setK(self, k) -> None: ... + def setMaxFeatures(self, maxFeatures) -> None: ... + def setMinDistance(self, minDistance) -> None: ... + def setQualityLevel(self, qlevel) -> None: ... + + +class GFrame: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class GInferInputs: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def setInput(self, *args, **kwargs): ... # incomplete + + +class GInferListInputs: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def setInput(self, *args, **kwargs): ... # incomplete + + +class GInferListOutputs: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def at(self, *args, **kwargs): ... # incomplete + + +class GInferOutputs: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def at(self, *args, **kwargs): ... # incomplete + + +class GMat: + def __init__(self) -> None: ... + + +class GMatDesc: + chan: Any + depth: Any + dims: Any + planar: Any + size: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def asInterleaved(self, *args, **kwargs): ... # incomplete + def asPlanar(self, *args, **kwargs): ... # incomplete + def withDepth(self, *args, **kwargs): ... # incomplete + def withSize(self, *args, **kwargs): ... # incomplete + def withSizeDelta(self, *args, **kwargs): ... # incomplete + def withType(self, *args, **kwargs): ... # incomplete + + +class GOpaqueDesc: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class GOpaqueT: + def __init__(self, type: int) -> None: ... + def type(self) -> int: ... + + +class GScalar: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class GScalarDesc: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class GStreamingCompiled: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def pull(self, *args, **kwargs): ... # incomplete + def running(self, *args, **kwargs): ... # incomplete + @overload + def setSource(self, callback) -> None: ... + @overload + def setSource(self): ... + def start(self) -> None: ... + def stop(self) -> None: ... + + +class GeneralizedHough(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def detect(self, *args, **kwargs): ... # incomplete + def getCannyHighThresh(self, *args, **kwargs): ... # incomplete + def getCannyLowThresh(self, *args, **kwargs): ... # incomplete + def getDp(self, *args, **kwargs): ... # incomplete + def getMaxBufferSize(self, *args, **kwargs): ... # incomplete + def getMinDist(self, *args, **kwargs): ... # incomplete + def setCannyHighThresh(self, cannyHighThresh) -> None: ... + def setCannyLowThresh(self, cannyLowThresh) -> None: ... + def setDp(self, dp) -> None: ... + def setMaxBufferSize(self, maxBufferSize) -> None: ... + def setMinDist(self, minDist) -> None: ... + def setTemplate(self, *args, **kwargs): ... # incomplete + + +class GeneralizedHoughBallard(GeneralizedHough): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getLevels(self, *args, **kwargs): ... # incomplete + def getVotesThreshold(self, *args, **kwargs): ... # incomplete + def setLevels(self, levels) -> None: ... + def setVotesThreshold(self, votesThreshold) -> None: ... + + +class GeneralizedHoughGuil(GeneralizedHough): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getAngleEpsilon(self, *args, **kwargs): ... # incomplete + def getAngleStep(self, *args, **kwargs): ... # incomplete + def getAngleThresh(self, *args, **kwargs): ... # incomplete + def getLevels(self, *args, **kwargs): ... # incomplete + def getMaxAngle(self, *args, **kwargs): ... # incomplete + def getMaxScale(self, *args, **kwargs): ... # incomplete + def getMinAngle(self, *args, **kwargs): ... # incomplete + def getMinScale(self, *args, **kwargs): ... # incomplete + def getPosThresh(self, *args, **kwargs): ... # incomplete + def getScaleStep(self, *args, **kwargs): ... # incomplete + def getScaleThresh(self, *args, **kwargs): ... # incomplete + def getXi(self, *args, **kwargs): ... # incomplete + def setAngleEpsilon(self, angleEpsilon) -> None: ... + def setAngleStep(self, angleStep) -> None: ... + def setAngleThresh(self, angleThresh) -> None: ... + def setLevels(self, levels) -> None: ... + def setMaxAngle(self, maxAngle) -> None: ... + def setMaxScale(self, maxScale) -> None: ... + def setMinAngle(self, minAngle) -> None: ... + def setMinScale(self, minScale) -> None: ... + def setPosThresh(self, posThresh) -> None: ... + def setScaleStep(self, scaleStep) -> None: ... + def setScaleThresh(self, scaleThresh) -> None: ... + def setXi(self, xi) -> None: ... + + +class HOGDescriptor: + L2HysThreshold: Any + blockSize: Any + blockStride: Any + cellSize: Any + derivAperture: Any + gammaCorrection: Any + histogramNormType: Any + nbins: Any + nlevels: Any + signedGradient: Any + svmDetector: Any + winSigma: Any + winSize: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def checkDetectorSize(self, *args, **kwargs): ... # incomplete + def compute(self, *args, **kwargs): ... # incomplete + def computeGradient(self, *args, **kwargs): ... # incomplete + def detect(self, *args, **kwargs): ... # incomplete + def detectMultiScale(self, *args, **kwargs): ... # incomplete + def getDaimlerPeopleDetector(self, *args, **kwargs): ... # incomplete + def getDefaultPeopleDetector(self, *args, **kwargs): ... # incomplete + def getDescriptorSize(self, *args, **kwargs): ... # incomplete + def getWinSigma(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def save(self, *args, **kwargs): ... # incomplete + def setSVMDetector(self, svmdetector) -> None: ... + + +class KAZE(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getDiffusivity(self, *args, **kwargs): ... # incomplete + def getExtended(self, *args, **kwargs): ... # incomplete + def getNOctaveLayers(self, *args, **kwargs): ... # incomplete + def getNOctaves(self, *args, **kwargs): ... # incomplete + def getThreshold(self, *args, **kwargs): ... # incomplete + def getUpright(self, *args, **kwargs): ... # incomplete + def setDiffusivity(self, diff) -> None: ... + def setExtended(self, extended) -> None: ... + def setNOctaveLayers(self, octaveLayers) -> None: ... + def setNOctaves(self, octaves) -> None: ... + def setThreshold(self, threshold) -> None: ... + def setUpright(self, upright) -> None: ... + + +class KalmanFilter: + controlMatrix: Any + errorCovPost: Any + errorCovPre: Any + gain: Any + measurementMatrix: Any + measurementNoiseCov: Any + processNoiseCov: Any + statePost: Any + statePre: Any + transitionMatrix: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def correct(self, *args, **kwargs): ... # incomplete + def predict(self, *args, **kwargs): ... # incomplete + + +class KeyPoint: + angle: Any + class_id: Any + octave: Any + pt: Any + response: Any + size: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def convert(self, *args, **kwargs): ... # incomplete + def overlap(self, *args, **kwargs): ... # incomplete + + +class LineSegmentDetector(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def compareSegments(self, *args, **kwargs): ... # incomplete + def detect(self, *args, **kwargs): ... # incomplete + def drawSegments(self, image, lines) -> _image: ... + + +class MSER(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def detectRegions(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getDelta(self, *args, **kwargs): ... # incomplete + def getMaxArea(self, *args, **kwargs): ... # incomplete + def getMinArea(self, *args, **kwargs): ... # incomplete + def getPass2Only(self, *args, **kwargs): ... # incomplete + def setDelta(self, delta) -> None: ... + def setMaxArea(self, maxArea) -> None: ... + def setMinArea(self, minArea) -> None: ... + def setPass2Only(self, f) -> None: ... + + +class MergeDebevec(MergeExposures): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def process(self, *args, **kwargs): ... # incomplete + + +class MergeExposures(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def process(self, *args, **kwargs): ... # incomplete + + +class MergeMertens(MergeExposures): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getContrastWeight(self, *args, **kwargs): ... # incomplete + def getExposureWeight(self, *args, **kwargs): ... # incomplete + def getSaturationWeight(self, *args, **kwargs): ... # incomplete + def process(self, *args, **kwargs): ... # incomplete + def setContrastWeight(self, contrast_weiht) -> None: ... + def setExposureWeight(self, exposure_weight) -> None: ... + def setSaturationWeight(self, saturation_weight) -> None: ... + + +class MergeRobertson(MergeExposures): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def process(self, *args, **kwargs): ... # incomplete + + +class ORB(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + def getEdgeThreshold(self, *args, **kwargs): ... # incomplete + def getFastThreshold(self, *args, **kwargs): ... # incomplete + def getFirstLevel(self, *args, **kwargs): ... # incomplete + def getMaxFeatures(self, *args, **kwargs): ... # incomplete + def getNLevels(self, *args, **kwargs): ... # incomplete + def getPatchSize(self, *args, **kwargs): ... # incomplete + def getScaleFactor(self, *args, **kwargs): ... # incomplete + def getScoreType(self, *args, **kwargs): ... # incomplete + def getWTA_K(self, *args, **kwargs): ... # incomplete + def setEdgeThreshold(self, edgeThreshold) -> None: ... + def setFastThreshold(self, fastThreshold) -> None: ... + def setFirstLevel(self, firstLevel) -> None: ... + def setMaxFeatures(self, maxFeatures) -> None: ... + def setNLevels(self, nlevels) -> None: ... + def setPatchSize(self, patchSize) -> None: ... + def setScaleFactor(self, scaleFactor) -> None: ... + def setScoreType(self, scoreType) -> None: ... + def setWTA_K(self, wta_k) -> None: ... + + +class PyRotationWarper: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def buildMaps(self, *args, **kwargs): ... # incomplete + def getScale(self, *args, **kwargs): ... # incomplete + def setScale(self, arg1) -> None: ... + def warp(self, *args, **kwargs): ... # incomplete + def warpBackward(self, *args, **kwargs): ... # incomplete + def warpPoint(self, *args, **kwargs): ... # incomplete + def warpPointBackward(self, *args, **kwargs): ... # incomplete + def warpRoi(self, *args, **kwargs): ... # incomplete + + +class QRCodeDetector: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def decode(self, *args, **kwargs): ... # incomplete + def decodeCurved(self, *args, **kwargs): ... # incomplete + def decodeMulti(self, *args, **kwargs): ... # incomplete + def detect(self, *args, **kwargs): ... # incomplete + def detectAndDecode(self, *args, **kwargs): ... # incomplete + def detectAndDecodeCurved(self, *args, **kwargs): ... # incomplete + def detectAndDecodeMulti(self, *args, **kwargs): ... # incomplete + def detectMulti(self, *args, **kwargs): ... # incomplete + def setEpsX(self, epsX) -> None: ... + def setEpsY(self, epsY) -> None: ... + + +class QRCodeEncoder: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def encode(self, *args, **kwargs): ... # incomplete + def encodeStructuredAppend(self, *args, **kwargs): ... # incomplete + + +class QRCodeEncoder_Params: + correction_level: Any + mode: Any + structure_number: Any + version: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class SIFT(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + + +class SimpleBlobDetector(Feature2D): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getDefaultName(self, *args, **kwargs): ... # incomplete + + +class SimpleBlobDetector_Params: + blobColor: Any + filterByArea: Any + filterByCircularity: Any + filterByColor: Any + filterByConvexity: Any + filterByInertia: Any + maxArea: Any + maxCircularity: Any + maxConvexity: Any + maxInertiaRatio: Any + maxThreshold: Any + minArea: Any + minCircularity: Any + minConvexity: Any + minDistBetweenBlobs: Any + minInertiaRatio: Any + minRepeatability: Any + minThreshold: Any + thresholdStep: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class SparseOpticalFlow(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def calc(self, *args, **kwargs): ... # incomplete + + +class SparsePyrLKOpticalFlow(SparseOpticalFlow): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getFlags(self, *args, **kwargs): ... # incomplete + def getMaxLevel(self, *args, **kwargs): ... # incomplete + def getMinEigThreshold(self, *args, **kwargs): ... # incomplete + def getTermCriteria(self, *args, **kwargs): ... # incomplete + def getWinSize(self, *args, **kwargs): ... # incomplete + def setFlags(self, flags) -> None: ... + def setMaxLevel(self, maxLevel) -> None: ... + def setMinEigThreshold(self, minEigThreshold) -> None: ... + def setTermCriteria(self, crit) -> None: ... + def setWinSize(self, winSize) -> None: ... + + +class StereoBM(StereoMatcher): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getPreFilterCap(self, *args, **kwargs): ... # incomplete + def getPreFilterSize(self, *args, **kwargs): ... # incomplete + def getPreFilterType(self, *args, **kwargs): ... # incomplete + def getROI1(self, *args, **kwargs): ... # incomplete + def getROI2(self, *args, **kwargs): ... # incomplete + def getSmallerBlockSize(self, *args, **kwargs): ... # incomplete + def getTextureThreshold(self, *args, **kwargs): ... # incomplete + def getUniquenessRatio(self, *args, **kwargs): ... # incomplete + def setPreFilterCap(self, preFilterCap) -> None: ... + def setPreFilterSize(self, preFilterSize) -> None: ... + def setPreFilterType(self, preFilterType) -> None: ... + def setROI1(self, roi1) -> None: ... + def setROI2(self, roi2) -> None: ... + def setSmallerBlockSize(self, blockSize) -> None: ... + def setTextureThreshold(self, textureThreshold) -> None: ... + def setUniquenessRatio(self, uniquenessRatio) -> None: ... + + +class StereoMatcher(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def compute(self, *args, **kwargs): ... # incomplete + def getBlockSize(self, *args, **kwargs): ... # incomplete + def getDisp12MaxDiff(self, *args, **kwargs): ... # incomplete + def getMinDisparity(self, *args, **kwargs): ... # incomplete + def getNumDisparities(self, *args, **kwargs): ... # incomplete + def getSpeckleRange(self, *args, **kwargs): ... # incomplete + def getSpeckleWindowSize(self, *args, **kwargs): ... # incomplete + def setBlockSize(self, blockSize) -> None: ... + def setDisp12MaxDiff(self, disp12MaxDiff) -> None: ... + def setMinDisparity(self, minDisparity) -> None: ... + def setNumDisparities(self, numDisparities) -> None: ... + def setSpeckleRange(self, speckleRange) -> None: ... + def setSpeckleWindowSize(self, speckleWindowSize) -> None: ... + + +class StereoSGBM(StereoMatcher): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getMode(self, *args, **kwargs): ... # incomplete + def getP1(self, *args, **kwargs): ... # incomplete + def getP2(self, *args, **kwargs): ... # incomplete + def getPreFilterCap(self, *args, **kwargs): ... # incomplete + def getUniquenessRatio(self, *args, **kwargs): ... # incomplete + def setMode(self, mode) -> None: ... + def setP1(self, P1) -> None: ... + def setP2(self, P2) -> None: ... + def setPreFilterCap(self, preFilterCap) -> None: ... + def setUniquenessRatio(self, uniquenessRatio) -> None: ... + + +class Stitcher: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def composePanorama(self, *args, **kwargs): ... # incomplete + def compositingResol(self, *args, **kwargs): ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def estimateTransform(self, *args, **kwargs): ... # incomplete + def interpolationFlags(self, *args, **kwargs): ... # incomplete + def panoConfidenceThresh(self, *args, **kwargs): ... # incomplete + def registrationResol(self, *args, **kwargs): ... # incomplete + def seamEstimationResol(self, *args, **kwargs): ... # incomplete + def setCompositingResol(self, resol_mpx) -> None: ... + def setInterpolationFlags(self, interp_flags) -> None: ... + def setPanoConfidenceThresh(self, conf_thresh) -> None: ... + def setRegistrationResol(self, resol_mpx) -> None: ... + def setSeamEstimationResol(self, resol_mpx) -> None: ... + def setWaveCorrection(self, flag) -> None: ... + def stitch(self, *args, **kwargs): ... # incomplete + def waveCorrection(self, *args, **kwargs): ... # incomplete + def workScale(self, *args, **kwargs): ... # incomplete + + +class Subdiv2D: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def edgeDst(self, *args, **kwargs): ... # incomplete + def edgeOrg(self, *args, **kwargs): ... # incomplete + def findNearest(self, *args, **kwargs): ... # incomplete + def getEdge(self, *args, **kwargs): ... # incomplete + def getEdgeList(self) -> _edgeList: ... + def getLeadingEdgeList(self) -> _leadingEdgeList: ... + def getTriangleList(self) -> _triangleList: ... + def getVertex(self, *args, **kwargs): ... # incomplete + def getVoronoiFacetList(self, *args, **kwargs): ... # incomplete + def initDelaunay(self, rect) -> None: ... + def insert(self, ptvec) -> None: ... + def locate(self, *args, **kwargs): ... # incomplete + def nextEdge(self, *args, **kwargs): ... # incomplete + def rotateEdge(self, *args, **kwargs): ... # incomplete + def symEdge(self, *args, **kwargs): ... # incomplete + + +class TickMeter: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getAvgTimeMilli(self, *args, **kwargs): ... # incomplete + def getAvgTimeSec(self, *args, **kwargs): ... # incomplete + def getCounter(self, *args, **kwargs): ... # incomplete + def getFPS(self, *args, **kwargs): ... # incomplete + def getTimeMicro(self, *args, **kwargs): ... # incomplete + def getTimeMilli(self, *args, **kwargs): ... # incomplete + def getTimeSec(self, *args, **kwargs): ... # incomplete + def getTimeTicks(self, *args, **kwargs): ... # incomplete + def reset(self) -> None: ... + def start(self) -> None: ... + def stop(self) -> None: ... + + +class Tonemap(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getGamma(self, *args, **kwargs): ... # incomplete + def process(self, *args, **kwargs): ... # incomplete + def setGamma(self, gamma) -> None: ... + + +class TonemapDrago(Tonemap): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getBias(self, *args, **kwargs): ... # incomplete + def getSaturation(self, *args, **kwargs): ... # incomplete + def setBias(self, bias) -> None: ... + def setSaturation(self, saturation) -> None: ... + + +class TonemapMantiuk(Tonemap): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getSaturation(self, *args, **kwargs): ... # incomplete + def getScale(self, *args, **kwargs): ... # incomplete + def setSaturation(self, saturation) -> None: ... + def setScale(self, scale) -> None: ... + + +class TonemapReinhard(Tonemap): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getColorAdaptation(self, *args, **kwargs): ... # incomplete + def getIntensity(self, *args, **kwargs): ... # incomplete + def getLightAdaptation(self, *args, **kwargs): ... # incomplete + def setColorAdaptation(self, color_adapt) -> None: ... + def setIntensity(self, intensity) -> None: ... + def setLightAdaptation(self, light_adapt) -> None: ... + + +class Tracker: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def init(self, image, boundingBox) -> None: ... + def update(self, *args, **kwargs): ... # incomplete + + +class TrackerDaSiamRPN(Tracker): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getTrackingScore(self, *args, **kwargs): ... # incomplete + + +class TrackerDaSiamRPN_Params: + backend: Any + kernel_cls1: Any + kernel_r1: Any + model: Any + target: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class TrackerGOTURN(Tracker): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + + +class TrackerGOTURN_Params: + modelBin: Any + modelTxt: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class TrackerMIL(Tracker): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + + +class TrackerMIL_Params: + featureSetNumFeatures: Any + samplerInitInRadius: Any + samplerInitMaxNegNum: Any + samplerSearchWinSize: Any + samplerTrackInRadius: Any + samplerTrackMaxNegNum: Any + samplerTrackMaxPosNum: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class UMat: + offset: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + @staticmethod + def context(): ... + def get(self): ... + def handle(self, accessFlags): ... + def isContinuous(self): ... + def isSubmatrix(self): ... + @staticmethod + def queue(): ... + + +class UsacParams: + confidence: Any + isParallel: Any + loIterations: Any + loMethod: Any + loSampleSize: Any + maxIterations: Any + neighborsSearch: Any + randomGeneratorState: Any + sampler: Any + score: Any + threshold: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class VariationalRefinement(DenseOpticalFlow): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def calcUV(self, *args, **kwargs): ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getAlpha(self, *args, **kwargs): ... # incomplete + def getDelta(self, *args, **kwargs): ... # incomplete + def getFixedPointIterations(self, *args, **kwargs): ... # incomplete + def getGamma(self, *args, **kwargs): ... # incomplete + def getOmega(self, *args, **kwargs): ... # incomplete + def getSorIterations(self, *args, **kwargs): ... # incomplete + def setAlpha(self, val) -> None: ... + def setDelta(self, val) -> None: ... + def setFixedPointIterations(self, val) -> None: ... + def setGamma(self, val) -> None: ... + def setOmega(self, val) -> None: ... + def setSorIterations(self, val) -> None: ... + + +class VideoCapture: + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, filename: str) -> None: ... + @overload + def __init__(self, filename: str, apiPreference: int | None, params: Sequence[int] = ...) -> None: ... + @overload + def __init__(self, index: int) -> None: ... + @overload + def __init__(self, index: int, apiPreference: int | None, params: Sequence[int] = ...) -> None: ... + def get(self, propId: int) -> int: ... + def getBackendName(self) -> str: ... + def getExceptionMode(self) -> bool: ... + def grab(self) -> bool: ... + def isOpened(self) -> bool: ... + @overload + def open(self, filename: str, apiPreference: int = ...) -> bool: ... + @overload + def open(self, filename: str, apiPreference: int, params: Sequence[int]) -> bool: ... + @overload + def open(self, index: int, apiPreference: int = ...) -> bool: ... + @overload + def open(self, index: int, apiPreference: int, params: Sequence[int]) -> bool: ... + @overload + def read(self, image: None = ...) -> tuple[bool, Mat]: ... + @overload + def read(self, image: _TUMat) -> tuple[bool, _TUMat]: ... + def release(self) -> None: ... + @overload + def retrieve(self, image: None = ..., flag: int = ...) -> tuple[bool, Mat]: ... + @overload + def retrieve(self, image: _TUMat, flag: int = ...) -> tuple[bool, _TUMat]: ... + def set(self, propId: int, value: int) -> bool: ... + def setExceptionMode(self, enable: bool) -> None: ... + + +class VideoWriter: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def fourcc(self, *args, **kwargs): ... # incomplete + def get(self, *args, **kwargs): ... # incomplete + def getBackendName(self, *args, **kwargs): ... # incomplete + def isOpened(self, *args, **kwargs): ... # incomplete + def open(self, *args, **kwargs): ... # incomplete + def release(self) -> None: ... + def set(self, *args, **kwargs): ... # incomplete + def write(self, image) -> None: ... + + +class WarperCreator: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class cuda_BufferPool: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getAllocator(self, *args, **kwargs): ... # incomplete + def getBuffer(self, *args, **kwargs): ... # incomplete + + +class cuda_DeviceInfo: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def ECCEnabled(self, *args, **kwargs): ... # incomplete + def asyncEngineCount(self, *args, **kwargs): ... # incomplete + def canMapHostMemory(self, *args, **kwargs): ... # incomplete + def clockRate(self, *args, **kwargs): ... # incomplete + def computeMode(self, *args, **kwargs): ... # incomplete + def concurrentKernels(self, *args, **kwargs): ... # incomplete + def deviceID(self, *args, **kwargs): ... # incomplete + def freeMemory(self, *args, **kwargs): ... # incomplete + def integrated(self, *args, **kwargs): ... # incomplete + def isCompatible(self, *args, **kwargs): ... # incomplete + def kernelExecTimeoutEnabled(self, *args, **kwargs): ... # incomplete + def l2CacheSize(self, *args, **kwargs): ... # incomplete + def majorVersion(self, *args, **kwargs): ... # incomplete + def maxGridSize(self, *args, **kwargs): ... # incomplete + def maxSurface1D(self, *args, **kwargs): ... # incomplete + def maxSurface1DLayered(self, *args, **kwargs): ... # incomplete + def maxSurface2D(self, *args, **kwargs): ... # incomplete + def maxSurface2DLayered(self, *args, **kwargs): ... # incomplete + def maxSurface3D(self, *args, **kwargs): ... # incomplete + def maxSurfaceCubemap(self, *args, **kwargs): ... # incomplete + def maxSurfaceCubemapLayered(self, *args, **kwargs): ... # incomplete + def maxTexture1D(self, *args, **kwargs): ... # incomplete + def maxTexture1DLayered(self, *args, **kwargs): ... # incomplete + def maxTexture1DLinear(self, *args, **kwargs): ... # incomplete + def maxTexture1DMipmap(self, *args, **kwargs): ... # incomplete + def maxTexture2D(self, *args, **kwargs): ... # incomplete + def maxTexture2DGather(self, *args, **kwargs): ... # incomplete + def maxTexture2DLayered(self, *args, **kwargs): ... # incomplete + def maxTexture2DLinear(self, *args, **kwargs): ... # incomplete + def maxTexture2DMipmap(self, *args, **kwargs): ... # incomplete + def maxTexture3D(self, *args, **kwargs): ... # incomplete + def maxTextureCubemap(self, *args, **kwargs): ... # incomplete + def maxTextureCubemapLayered(self, *args, **kwargs): ... # incomplete + def maxThreadsDim(self, *args, **kwargs): ... # incomplete + def maxThreadsPerBlock(self, *args, **kwargs): ... # incomplete + def maxThreadsPerMultiProcessor(self, *args, **kwargs): ... # incomplete + def memPitch(self, *args, **kwargs): ... # incomplete + def memoryBusWidth(self, *args, **kwargs): ... # incomplete + def memoryClockRate(self, *args, **kwargs): ... # incomplete + def minorVersion(self, *args, **kwargs): ... # incomplete + def multiProcessorCount(self, *args, **kwargs): ... # incomplete + def pciBusID(self, *args, **kwargs): ... # incomplete + def pciDeviceID(self, *args, **kwargs): ... # incomplete + def pciDomainID(self, *args, **kwargs): ... # incomplete + def queryMemory(self, totalMemory, freeMemory) -> None: ... + def regsPerBlock(self, *args, **kwargs): ... # incomplete + def sharedMemPerBlock(self, *args, **kwargs): ... # incomplete + def surfaceAlignment(self, *args, **kwargs): ... # incomplete + def tccDriver(self, *args, **kwargs): ... # incomplete + def textureAlignment(self, *args, **kwargs): ... # incomplete + def texturePitchAlignment(self, *args, **kwargs): ... # incomplete + def totalConstMem(self, *args, **kwargs): ... # incomplete + def totalGlobalMem(self, *args, **kwargs): ... # incomplete + def totalMemory(self, *args, **kwargs): ... # incomplete + def unifiedAddressing(self, *args, **kwargs): ... # incomplete + def warpSize(self, *args, **kwargs): ... # incomplete + + +class cuda_Event: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def elapsedTime(self, *args, **kwargs): ... # incomplete + def queryIfComplete(self, *args, **kwargs): ... # incomplete + def record(self, *args, **kwargs): ... # incomplete + def waitForCompletion(self) -> None: ... + + +class cuda_GpuData: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class cuda_GpuMat: + step: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def adjustROI(self, *args, **kwargs): ... # incomplete + def assignTo(self, *args, **kwargs): ... # incomplete + def channels(self, *args, **kwargs): ... # incomplete + def clone(self, *args, **kwargs): ... # incomplete + def col(self, *args, **kwargs): ... # incomplete + def colRange(self, *args, **kwargs): ... # incomplete + def convertTo(self, *args, **kwargs): ... # incomplete + def copyTo(self, *args, **kwargs): ... # incomplete + @overload + def create(self, rows, cols, type) -> None: ... + @overload + def create(size, type) -> None: ... + def cudaPtr(self, *args, **kwargs): ... # incomplete + def defaultAllocator(self, *args, **kwargs): ... # incomplete + def depth(self, *args, **kwargs): ... # incomplete + def download(self, *args, **kwargs): ... # incomplete + def elemSize(self, *args, **kwargs): ... # incomplete + def elemSize1(self, *args, **kwargs): ... # incomplete + def empty(self, *args, **kwargs): ... # incomplete + def isContinuous(self, *args, **kwargs): ... # incomplete + def locateROI(self, wholeSize, ofs) -> None: ... + def reshape(self, *args, **kwargs): ... # incomplete + def row(self, *args, **kwargs): ... # incomplete + def rowRange(self, *args, **kwargs): ... # incomplete + def setDefaultAllocator(self, *args, **kwargs): ... # incomplete + def setTo(self, *args, **kwargs): ... # incomplete + def size(self, *args, **kwargs): ... # incomplete + def step1(self, *args, **kwargs): ... # incomplete + def swap(self, mat) -> None: ... + def type(self, *args, **kwargs): ... # incomplete + def updateContinuityFlag(self) -> None: ... + @overload + def upload(self, arr) -> None: ... + @overload + def upload(arr, stream) -> None: ... + + +class cuda_GpuMatND: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class cuda_GpuMat_Allocator: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class cuda_HostMem: + step: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def channels(self, *args, **kwargs): ... # incomplete + def clone(self, *args, **kwargs): ... # incomplete + def create(self, rows, cols, type) -> None: ... + def createMatHeader(self, *args, **kwargs): ... # incomplete + def depth(self, *args, **kwargs): ... # incomplete + def elemSize(self, *args, **kwargs): ... # incomplete + def elemSize1(self, *args, **kwargs): ... # incomplete + def empty(self, *args, **kwargs): ... # incomplete + def isContinuous(self, *args, **kwargs): ... # incomplete + def reshape(self, *args, **kwargs): ... # incomplete + def size(self, *args, **kwargs): ... # incomplete + def step1(self, *args, **kwargs): ... # incomplete + def swap(self, b) -> None: ... + def type(self, *args, **kwargs): ... # incomplete + + +class cuda_Stream: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def Null(self, *args, **kwargs): ... # incomplete + def cudaPtr(self, *args, **kwargs): ... # incomplete + def queryIfComplete(self, *args, **kwargs): ... # incomplete + def waitEvent(self, event) -> None: ... + def waitForCompletion(self) -> None: ... + + +class cuda_TargetArchs: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def has(self, *args, **kwargs): ... # incomplete + def hasBin(self, *args, **kwargs): ... # incomplete + def hasEqualOrGreater(self, *args, **kwargs): ... # incomplete + def hasEqualOrGreaterBin(self, *args, **kwargs): ... # incomplete + def hasEqualOrGreaterPtx(self, *args, **kwargs): ... # incomplete + def hasEqualOrLessPtx(self, *args, **kwargs): ... # incomplete + def hasPtx(self, *args, **kwargs): ... # incomplete + + +class detail_AffineBasedEstimator(detail_Estimator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_AffineBestOf2NearestMatcher(detail_BestOf2NearestMatcher): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_BestOf2NearestMatcher(detail_FeaturesMatcher): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def collectGarbage(self) -> None: ... + def create(self, *args, **kwargs): ... # incomplete + + +class detail_BestOf2NearestRangeMatcher(detail_BestOf2NearestMatcher): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_Blender: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def blend(self, *args, **kwargs): ... # incomplete + def createDefault(self, *args, **kwargs): ... # incomplete + def feed(self, img, mask, tl) -> None: ... + @overload + def prepare(self, corners, sizes) -> None: ... + @overload + def prepare(self, dst_roi) -> None: ... + + +class detail_BlocksChannelsCompensator(detail_BlocksCompensator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_BlocksCompensator(detail_ExposureCompensator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, index, corner, image, mask) -> _image: ... + def getBlockSize(self, *args, **kwargs): ... # incomplete + def getMatGains(self, *args, **kwargs): ... # incomplete + def getNrFeeds(self, *args, **kwargs): ... # incomplete + def getNrGainsFilteringIterations(self, *args, **kwargs): ... # incomplete + def getSimilarityThreshold(self, *args, **kwargs): ... # incomplete + @overload + def setBlockSize(self, width, height) -> None: ... + @overload + def setBlockSize(size) -> None: ... + def setMatGains(self, umv) -> None: ... + def setNrFeeds(self, nr_feeds) -> None: ... + def setNrGainsFilteringIterations(self, nr_iterations) -> None: ... + def setSimilarityThreshold(self, similarity_threshold) -> None: ... + + +class detail_BlocksGainCompensator(detail_BlocksCompensator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, index, corner, image, mask) -> _image: ... + def getMatGains(self, *args, **kwargs): ... # incomplete + def setMatGains(self, umv) -> None: ... + + +class detail_BundleAdjusterAffine(detail_BundleAdjusterBase): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_BundleAdjusterAffinePartial(detail_BundleAdjusterBase): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_BundleAdjusterBase(detail_Estimator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def confThresh(self, *args, **kwargs): ... # incomplete + def refinementMask(self, *args, **kwargs): ... # incomplete + def setConfThresh(self, conf_thresh) -> None: ... + def setRefinementMask(self, mask) -> None: ... + def setTermCriteria(self, term_criteria) -> None: ... + def termCriteria(self, *args, **kwargs): ... # incomplete + + +class detail_BundleAdjusterRay(detail_BundleAdjusterBase): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_BundleAdjusterReproj(detail_BundleAdjusterBase): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_CameraParams: + R: Any + aspect: Any + focal: Any + ppx: Any + ppy: Any + t: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def K(self, *args, **kwargs): ... # incomplete + + +class detail_ChannelsCompensator(detail_ExposureCompensator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, index, corner, image, mask) -> _image: ... + def getMatGains(self, *args, **kwargs): ... # incomplete + def getNrFeeds(self, *args, **kwargs): ... # incomplete + def getSimilarityThreshold(self, *args, **kwargs): ... # incomplete + def setMatGains(self, umv) -> None: ... + def setNrFeeds(self, nr_feeds) -> None: ... + def setSimilarityThreshold(self, similarity_threshold) -> None: ... + + +class detail_DpSeamFinder(detail_SeamFinder): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def setCostFunction(self, val) -> None: ... + + +class detail_Estimator: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, *args, **kwargs): ... # incomplete + + +class detail_ExposureCompensator: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, index, corner, image, mask) -> _image: ... + def createDefault(self, *args, **kwargs): ... # incomplete + def feed(self, corners, images, masks) -> None: ... + def getMatGains(self, *args, **kwargs): ... # incomplete + def getUpdateGain(self, *args, **kwargs): ... # incomplete + def setMatGains(self, arg1) -> None: ... + def setUpdateGain(self, b) -> None: ... + + +class detail_FeatherBlender(detail_Blender): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def blend(self, *args, **kwargs): ... # incomplete + def createWeightMaps(self, *args, **kwargs): ... # incomplete + def feed(self, img, mask, tl) -> None: ... + def prepare(self, dst_roi) -> None: ... # type: ignore[override] + def setSharpness(self, val) -> None: ... + def sharpness(self, *args, **kwargs): ... # incomplete + + +class detail_FeaturesMatcher: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, features1, features2) -> _matches_info: ... + def apply2(self, *args, **kwargs): ... # incomplete + def collectGarbage(self) -> None: ... + def isThreadSafe(self, *args, **kwargs): ... # incomplete + + +class detail_GainCompensator(detail_ExposureCompensator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, index, corner, image, mask) -> _image: ... + def getMatGains(self, *args, **kwargs): ... # incomplete + def getNrFeeds(self, *args, **kwargs): ... # incomplete + def getSimilarityThreshold(self, *args, **kwargs): ... # incomplete + def setMatGains(self, umv) -> None: ... + def setNrFeeds(self, nr_feeds) -> None: ... + def setSimilarityThreshold(self, similarity_threshold) -> None: ... + + +class detail_GraphCutSeamFinder: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def find(self, src, corners, masks) -> None: ... + + +class detail_HomographyBasedEstimator(detail_Estimator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_ImageFeatures: + descriptors: Any + img_idx: Any + img_size: Any + keypoints: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getKeypoints(self, *args, **kwargs): ... # incomplete + + +class detail_MatchesInfo: + H: Any + confidence: Any + dst_img_idx: Any + num_inliers: Any + src_img_idx: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getInliers(self, *args, **kwargs): ... # incomplete + def getMatches(self, *args, **kwargs): ... # incomplete + + +class detail_MultiBandBlender(detail_Blender): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def blend(self, *args, **kwargs): ... # incomplete + def feed(self, img, mask, tl) -> None: ... + def numBands(self, *args, **kwargs): ... # incomplete + def prepare(self, dst_roi) -> None: ... # type: ignore[override] + def setNumBands(self, val) -> None: ... + + +class detail_NoBundleAdjuster(detail_BundleAdjusterBase): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_NoExposureCompensator(detail_ExposureCompensator): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def apply(self, arg1, arg2, arg3, arg4) -> _arg3: ... + def getMatGains(self, *args, **kwargs): ... # incomplete + def setMatGains(self, umv) -> None: ... + + +class detail_NoSeamFinder(detail_SeamFinder): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def find(self, arg1, arg2, arg3) -> _arg3: ... + + +class detail_PairwiseSeamFinder(detail_SeamFinder): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def find(self, src, corners, masks) -> _masks: ... + + +class detail_ProjectorBase: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_SeamFinder: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def createDefault(self, *args, **kwargs): ... # incomplete + def find(self, src, corners, masks) -> _masks: ... + + +class detail_SphericalProjector(detail_ProjectorBase): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def mapBackward(self, u, v, x, y) -> None: ... + def mapForward(self, x, y, u, v) -> None: ... + + +class detail_Timelapser: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def createDefault(self, *args, **kwargs): ... # incomplete + def getDst(self, *args, **kwargs): ... # incomplete + def initialize(self, corners, sizes) -> None: ... + def process(self, img, mask, tl) -> None: ... + + +class detail_TimelapserCrop(detail_Timelapser): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class detail_VoronoiSeamFinder(detail_PairwiseSeamFinder): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def find(self, src, corners, masks) -> _masks: ... + + +class dnn_ClassificationModel(dnn_Model): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def classify(self, *args, **kwargs): ... # incomplete + + +class dnn_DetectionModel(dnn_Model): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def detect(self, *args, **kwargs): ... # incomplete + def getNmsAcrossClasses(self, *args, **kwargs): ... # incomplete + def setNmsAcrossClasses(self, *args, **kwargs): ... # incomplete + + +class dnn_DictValue: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getIntValue(self, *args, **kwargs): ... # incomplete + def getRealValue(self, *args, **kwargs): ... # incomplete + def getStringValue(self, *args, **kwargs): ... # incomplete + def isInt(self, *args, **kwargs): ... # incomplete + def isReal(self, *args, **kwargs): ... # incomplete + def isString(self, *args, **kwargs): ... # incomplete + + +class dnn_KeypointsModel(dnn_Model): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def estimate(self, *args, **kwargs): ... # incomplete + + +class dnn_Layer(Algorithm): + blobs: Any + name: Any + preferableTarget: Any + type: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def finalize(self, *args, **kwargs): ... # incomplete + def outputNameToIndex(self, *args, **kwargs): ... # incomplete + def run(self, *args, **kwargs): ... # incomplete + + +class dnn_Model: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def predict(self, *args, **kwargs): ... # incomplete + def setInputCrop(self, *args, **kwargs): ... # incomplete + def setInputMean(self, *args, **kwargs): ... # incomplete + def setInputParams(self, *args, **kwargs): ... # incomplete + def setInputScale(self, *args, **kwargs): ... # incomplete + def setInputSize(self, *args, **kwargs): ... # incomplete + def setInputSwapRB(self, *args, **kwargs): ... # incomplete + def setPreferableBackend(self, *args, **kwargs): ... # incomplete + def setPreferableTarget(self, *args, **kwargs): ... # incomplete + + +class dnn_Net: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def connect(self, outPin, inpPin) -> None: ... + def dump(self, *args, **kwargs): ... # incomplete + def dumpToFile(self, path) -> None: ... + def empty(self, *args, **kwargs): ... # incomplete + def enableFusion(self, fusion) -> None: ... + def forward(self, *args, **kwargs): ... # incomplete + def forwardAndRetrieve(self, outBlobNames) -> _outputBlobs: ... + def forwardAsync(self, *args, **kwargs): ... # incomplete + def getFLOPS(self, *args, **kwargs): ... # incomplete + def getInputDetails(self, *args, **kwargs): ... # incomplete + def getLayer(self, *args, **kwargs): ... # incomplete + def getLayerId(self, *args, **kwargs): ... # incomplete + def getLayerNames(self, *args, **kwargs): ... # incomplete + def getLayerTypes(self) -> _layersTypes: ... + def getLayersCount(self, *args, **kwargs): ... # incomplete + def getLayersShapes(self, *args, **kwargs): ... # incomplete + def getMemoryConsumption(self, *args, **kwargs): ... # incomplete + def getOutputDetails(self, *args, **kwargs): ... # incomplete + def getParam(self, *args, **kwargs): ... # incomplete + def getPerfProfile(self, *args, **kwargs): ... # incomplete + def getUnconnectedOutLayers(self, *args, **kwargs): ... # incomplete + def getUnconnectedOutLayersNames(self, *args, **kwargs): ... # incomplete + def quantize(self, *args, **kwargs): ... # incomplete + def readFromModelOptimizer(self, *args, **kwargs): ... # incomplete + def setHalideScheduler(self, scheduler) -> None: ... + def setInput(self, *args, **kwargs): ... # incomplete + def setInputShape(self, inputName, shape) -> None: ... + def setInputsNames(self, inputBlobNames) -> None: ... + def setParam(self, layer, numParam, blob) -> None: ... + def setPreferableBackend(self, backendId) -> None: ... + def setPreferableTarget(self, targetId) -> None: ... + + +class dnn_SegmentationModel(dnn_Model): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def segment(self, *args, **kwargs): ... # incomplete + + +class dnn_TextDetectionModel(dnn_Model): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def detect(self, frame) -> _detections: ... + def detectTextRectangles(self, frame) -> _detections: ... + + +class dnn_TextDetectionModel_DB(dnn_TextDetectionModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getBinaryThreshold(self, *args, **kwargs): ... # incomplete + def getMaxCandidates(self, *args, **kwargs): ... # incomplete + def getPolygonThreshold(self, *args, **kwargs): ... # incomplete + def getUnclipRatio(self, *args, **kwargs): ... # incomplete + def setBinaryThreshold(self, *args, **kwargs): ... # incomplete + def setMaxCandidates(self, *args, **kwargs): ... # incomplete + def setPolygonThreshold(self, *args, **kwargs): ... # incomplete + def setUnclipRatio(self, *args, **kwargs): ... # incomplete + + +class dnn_TextDetectionModel_EAST(dnn_TextDetectionModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getConfidenceThreshold(self, *args, **kwargs): ... # incomplete + def getNMSThreshold(self, *args, **kwargs): ... # incomplete + def setConfidenceThreshold(self, *args, **kwargs): ... # incomplete + def setNMSThreshold(self, *args, **kwargs): ... # incomplete + + +class dnn_TextRecognitionModel(dnn_Model): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getDecodeType(self, *args, **kwargs): ... # incomplete + def getVocabulary(self, *args, **kwargs): ... # incomplete + def recognize(self, frame, roiRects) -> _results: ... + def setDecodeOptsCTCPrefixBeamSearch(self, *args, **kwargs): ... # incomplete + def setDecodeType(self, *args, **kwargs): ... # incomplete + def setVocabulary(self, *args, **kwargs): ... # incomplete + + +class error(Exception): + code: ClassVar[int] + err: ClassVar[str] + file: ClassVar[str] + func: ClassVar[str] + line: ClassVar[int] + msg: ClassVar[str] + + +class flann_Index: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def build(self, *args, **kwargs): ... # incomplete + def getAlgorithm(self, *args, **kwargs): ... # incomplete + def getDistance(self, *args, **kwargs): ... # incomplete + def knnSearch(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def radiusSearch(self, *args, **kwargs): ... # incomplete + def release(self) -> None: ... + def save(self, filename) -> None: ... + + +class gapi_GKernelPackage: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_GNetPackage: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_GNetParam: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_ie_PyParams: + @overload + def __init__(self) -> None: ... + @overload + def __init__(self, tag: str, model: str, device: str) -> None: ... + @overload + def __init__(self, tag: str, model: str, weights: str, device: str) -> None: ... + def cfgBatchSize(self, size): ... + def cfgNumRequests(self, nireq): ... + def constInput(self, layer_name, data, hint=...): ... + + +class gapi_streaming_queue_capacity: + capacity: int + def __init__(self, cap: int = ...) -> None: ... + + +class gapi_wip_GOutputs: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def getGArray(self, *args, **kwargs): ... # incomplete + def getGMat(self, *args, **kwargs): ... # incomplete + def getGOpaque(self, *args, **kwargs): ... # incomplete + def getGScalar(self, *args, **kwargs): ... # incomplete + + +class gapi_wip_IStreamSource: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_wip_draw_Circle: + center: Any + color: Any + lt: Any + radius: Any + shift: Any + thick: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_wip_draw_Image: + alpha: Any + img: Any + org: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_wip_draw_Line: + color: Any + lt: Any + pt1: Any + pt2: Any + shift: Any + thick: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_wip_draw_Mosaic: + cellSz: Any + decim: Any + mos: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_wip_draw_Poly: + color: Any + lt: Any + points: Any + shift: Any + thick: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_wip_draw_Rect: + color: Any + lt: Any + rect: Any + shift: Any + thick: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class gapi_wip_draw_Text: + bottom_left_origin: bool + color: tuple[float, float, float, float] + ff: int + fs: float + lt: int + org: _Point + text: str + thick: int + def __init__(self, text_: str, org_: _Point, ff_: int, fs_: float, color_: _Scalar) -> None: ... + + +class ml_ANN_MLP(ml_StatModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getAnnealCoolingRatio(self, *args, **kwargs): ... # incomplete + def getAnnealFinalT(self, *args, **kwargs): ... # incomplete + def getAnnealInitialT(self, *args, **kwargs): ... # incomplete + def getAnnealItePerStep(self, *args, **kwargs): ... # incomplete + def getBackpropMomentumScale(self, *args, **kwargs): ... # incomplete + def getBackpropWeightScale(self, *args, **kwargs): ... # incomplete + def getLayerSizes(self, *args, **kwargs): ... # incomplete + def getRpropDW0(self, *args, **kwargs): ... # incomplete + def getRpropDWMax(self, *args, **kwargs): ... # incomplete + def getRpropDWMin(self, *args, **kwargs): ... # incomplete + def getRpropDWMinus(self, *args, **kwargs): ... # incomplete + def getRpropDWPlus(self, *args, **kwargs): ... # incomplete + def getTermCriteria(self, *args, **kwargs): ... # incomplete + def getTrainMethod(self, *args, **kwargs): ... # incomplete + def getWeights(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def setActivationFunction(self, *args, **kwargs): ... # incomplete + def setAnnealCoolingRatio(self, val) -> None: ... + def setAnnealFinalT(self, val) -> None: ... + def setAnnealInitialT(self, val) -> None: ... + def setAnnealItePerStep(self, val) -> None: ... + def setBackpropMomentumScale(self, val) -> None: ... + def setBackpropWeightScale(self, val) -> None: ... + def setLayerSizes(self, _layer_sizes) -> None: ... + def setRpropDW0(self, val) -> None: ... + def setRpropDWMax(self, val) -> None: ... + def setRpropDWMin(self, val) -> None: ... + def setRpropDWMinus(self, val) -> None: ... + def setRpropDWPlus(self, val) -> None: ... + def setTermCriteria(self, val) -> None: ... + def setTrainMethod(self, *args, **kwargs): ... # incomplete + + +class ml_Boost(ml_DTrees): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getBoostType(self, *args, **kwargs): ... # incomplete + def getWeakCount(self, *args, **kwargs): ... # incomplete + def getWeightTrimRate(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def setBoostType(self, val) -> None: ... + def setWeakCount(self, val) -> None: ... + def setWeightTrimRate(self, val) -> None: ... + + +class ml_DTrees(ml_StatModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getCVFolds(self, *args, **kwargs): ... # incomplete + def getMaxCategories(self, *args, **kwargs): ... # incomplete + def getMaxDepth(self, *args, **kwargs): ... # incomplete + def getMinSampleCount(self, *args, **kwargs): ... # incomplete + def getPriors(self, *args, **kwargs): ... # incomplete + def getRegressionAccuracy(self, *args, **kwargs): ... # incomplete + def getTruncatePrunedTree(self, *args, **kwargs): ... # incomplete + def getUse1SERule(self, *args, **kwargs): ... # incomplete + def getUseSurrogates(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def setCVFolds(self, val) -> None: ... + def setMaxCategories(self, val) -> None: ... + def setMaxDepth(self, val) -> None: ... + def setMinSampleCount(self, val) -> None: ... + def setPriors(self, val) -> None: ... + def setRegressionAccuracy(self, val) -> None: ... + def setTruncatePrunedTree(self, val) -> None: ... + def setUse1SERule(self, val) -> None: ... + def setUseSurrogates(self, val) -> None: ... + + +class ml_EM(ml_StatModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getClustersNumber(self, *args, **kwargs): ... # incomplete + def getCovarianceMatrixType(self, *args, **kwargs): ... # incomplete + def getCovs(self, *args, **kwargs): ... # incomplete + def getMeans(self, *args, **kwargs): ... # incomplete + def getTermCriteria(self, *args, **kwargs): ... # incomplete + def getWeights(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def predict(self, *args, **kwargs): ... # incomplete + def predict2(self, *args, **kwargs): ... # incomplete + def setClustersNumber(self, val) -> None: ... + def setCovarianceMatrixType(self, val) -> None: ... + def setTermCriteria(self, val) -> None: ... + def trainE(self, *args, **kwargs): ... # incomplete + def trainEM(self, *args, **kwargs): ... # incomplete + def trainM(self, *args, **kwargs): ... # incomplete + + +class ml_KNearest(ml_StatModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def findNearest(self, *args, **kwargs): ... # incomplete + def getAlgorithmType(self, *args, **kwargs): ... # incomplete + def getDefaultK(self, *args, **kwargs): ... # incomplete + def getEmax(self, *args, **kwargs): ... # incomplete + def getIsClassifier(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def setAlgorithmType(self, val) -> None: ... + def setDefaultK(self, val) -> None: ... + def setEmax(self, val) -> None: ... + def setIsClassifier(self, val) -> None: ... + + +class ml_LogisticRegression(ml_StatModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getIterations(self, *args, **kwargs): ... # incomplete + def getLearningRate(self, *args, **kwargs): ... # incomplete + def getMiniBatchSize(self, *args, **kwargs): ... # incomplete + def getRegularization(self, *args, **kwargs): ... # incomplete + def getTermCriteria(self, *args, **kwargs): ... # incomplete + def getTrainMethod(self, *args, **kwargs): ... # incomplete + def get_learnt_thetas(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def predict(self, *args, **kwargs): ... # incomplete + def setIterations(self, val) -> None: ... + def setLearningRate(self, val) -> None: ... + def setMiniBatchSize(self, val) -> None: ... + def setRegularization(self, val) -> None: ... + def setTermCriteria(self, val) -> None: ... + def setTrainMethod(self, val) -> None: ... + + +class ml_NormalBayesClassifier(ml_StatModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def predictProb(self, *args, **kwargs): ... # incomplete + + +class ml_ParamGrid: + logStep: Any + maxVal: Any + minVal: Any + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + + +class ml_RTrees(ml_DTrees): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getActiveVarCount(self, *args, **kwargs): ... # incomplete + def getCalculateVarImportance(self, *args, **kwargs): ... # incomplete + def getOOBError(self, *args, **kwargs): ... # incomplete + def getTermCriteria(self, *args, **kwargs): ... # incomplete + def getVarImportance(self, *args, **kwargs): ... # incomplete + def getVotes(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def setActiveVarCount(self, val) -> None: ... + def setCalculateVarImportance(self, val) -> None: ... + def setTermCriteria(self, val) -> None: ... + + +class ml_SVM(ml_StatModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getC(self, *args, **kwargs): ... # incomplete + def getClassWeights(self, *args, **kwargs): ... # incomplete + def getCoef0(self, *args, **kwargs): ... # incomplete + def getDecisionFunction(self, *args, **kwargs): ... # incomplete + def getDefaultGridPtr(self, *args, **kwargs): ... # incomplete + def getDegree(self, *args, **kwargs): ... # incomplete + def getGamma(self, *args, **kwargs): ... # incomplete + def getKernelType(self, *args, **kwargs): ... # incomplete + def getNu(self, *args, **kwargs): ... # incomplete + def getP(self, *args, **kwargs): ... # incomplete + def getSupportVectors(self, *args, **kwargs): ... # incomplete + def getTermCriteria(self, *args, **kwargs): ... # incomplete + def getType(self, *args, **kwargs): ... # incomplete + def getUncompressedSupportVectors(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def setC(self, val) -> None: ... + def setClassWeights(self, val) -> None: ... + def setCoef0(self, val) -> None: ... + def setDegree(self, val) -> None: ... + def setGamma(self, val) -> None: ... + def setKernel(self, kernelType) -> None: ... + def setNu(self, val) -> None: ... + def setP(self, val) -> None: ... + def setTermCriteria(self, val) -> None: ... + def setType(self, val) -> None: ... + def trainAuto(self, *args, **kwargs): ... # incomplete + + +class ml_SVMSGD(ml_StatModel): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getInitialStepSize(self, *args, **kwargs): ... # incomplete + def getMarginRegularization(self, *args, **kwargs): ... # incomplete + def getMarginType(self, *args, **kwargs): ... # incomplete + def getShift(self, *args, **kwargs): ... # incomplete + def getStepDecreasingPower(self, *args, **kwargs): ... # incomplete + def getSvmsgdType(self, *args, **kwargs): ... # incomplete + def getTermCriteria(self, *args, **kwargs): ... # incomplete + def getWeights(self, *args, **kwargs): ... # incomplete + def load(self, *args, **kwargs): ... # incomplete + def setInitialStepSize(self, InitialStepSize) -> None: ... + def setMarginRegularization(self, marginRegularization) -> None: ... + def setMarginType(self, marginType) -> None: ... + def setOptimalParameters(self, *args, **kwargs): ... # incomplete + def setStepDecreasingPower(self, stepDecreasingPower) -> None: ... + def setSvmsgdType(self, svmsgdType) -> None: ... + def setTermCriteria(self, val) -> None: ... + + +class ml_StatModel(Algorithm): + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def calcError(self, *args, **kwargs): ... # incomplete + def empty(self, *args, **kwargs): ... # incomplete + def getVarCount(self, *args, **kwargs): ... # incomplete + def isClassifier(self, *args, **kwargs): ... # incomplete + def isTrained(self, *args, **kwargs): ... # incomplete + def predict(self, *args, **kwargs): ... # incomplete + def train(self, *args, **kwargs): ... # incomplete + + +class ml_TrainData: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def create(self, *args, **kwargs): ... # incomplete + def getCatCount(self, *args, **kwargs): ... # incomplete + def getCatMap(self, *args, **kwargs): ... # incomplete + def getCatOfs(self, *args, **kwargs): ... # incomplete + def getClassLabels(self, *args, **kwargs): ... # incomplete + def getDefaultSubstValues(self, *args, **kwargs): ... # incomplete + def getLayout(self, *args, **kwargs): ... # incomplete + def getMissing(self, *args, **kwargs): ... # incomplete + def getNAllVars(self, *args, **kwargs): ... # incomplete + def getNSamples(self, *args, **kwargs): ... # incomplete + def getNTestSamples(self, *args, **kwargs): ... # incomplete + def getNTrainSamples(self, *args, **kwargs): ... # incomplete + def getNVars(self, *args, **kwargs): ... # incomplete + def getNames(self, names) -> None: ... + def getNormCatResponses(self, *args, **kwargs): ... # incomplete + def getResponseType(self, *args, **kwargs): ... # incomplete + def getResponses(self, *args, **kwargs): ... # incomplete + def getSample(self, varIdx, sidx, buf) -> None: ... + def getSampleWeights(self, *args, **kwargs): ... # incomplete + def getSamples(self, *args, **kwargs): ... # incomplete + def getSubMatrix(self, *args, **kwargs): ... # incomplete + def getSubVector(self, *args, **kwargs): ... # incomplete + def getTestNormCatResponses(self, *args, **kwargs): ... # incomplete + def getTestResponses(self, *args, **kwargs): ... # incomplete + def getTestSampleIdx(self, *args, **kwargs): ... # incomplete + def getTestSampleWeights(self, *args, **kwargs): ... # incomplete + def getTestSamples(self, *args, **kwargs): ... # incomplete + def getTrainNormCatResponses(self, *args, **kwargs): ... # incomplete + def getTrainResponses(self, *args, **kwargs): ... # incomplete + def getTrainSampleIdx(self, *args, **kwargs): ... # incomplete + def getTrainSampleWeights(self, *args, **kwargs): ... # incomplete + def getTrainSamples(self, *args, **kwargs): ... # incomplete + def getValues(self, vi, sidx, values) -> None: ... + def getVarIdx(self, *args, **kwargs): ... # incomplete + def getVarSymbolFlags(self, *args, **kwargs): ... # incomplete + def getVarType(self, *args, **kwargs): ... # incomplete + def setTrainTestSplit(self, *args, **kwargs): ... # incomplete + def setTrainTestSplitRatio(self, *args, **kwargs): ... # incomplete + def shuffleTrainTest(self) -> None: ... + + +class ocl_Device: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def OpenCLVersion(self, *args, **kwargs): ... # incomplete + def OpenCL_C_Version(self, *args, **kwargs): ... # incomplete + def addressBits(self, *args, **kwargs): ... # incomplete + def available(self, *args, **kwargs): ... # incomplete + def compilerAvailable(self, *args, **kwargs): ... # incomplete + def deviceVersionMajor(self, *args, **kwargs): ... # incomplete + def deviceVersionMinor(self, *args, **kwargs): ... # incomplete + def doubleFPConfig(self, *args, **kwargs): ... # incomplete + def driverVersion(self, *args, **kwargs): ... # incomplete + def endianLittle(self, *args, **kwargs): ... # incomplete + def errorCorrectionSupport(self, *args, **kwargs): ... # incomplete + def executionCapabilities(self, *args, **kwargs): ... # incomplete + def extensions(self, *args, **kwargs): ... # incomplete + def getDefault(self, *args, **kwargs): ... # incomplete + def globalMemCacheLineSize(self, *args, **kwargs): ... # incomplete + def globalMemCacheSize(self, *args, **kwargs): ... # incomplete + def globalMemCacheType(self, *args, **kwargs): ... # incomplete + def globalMemSize(self, *args, **kwargs): ... # incomplete + def halfFPConfig(self, *args, **kwargs): ... # incomplete + def hostUnifiedMemory(self, *args, **kwargs): ... # incomplete + def image2DMaxHeight(self, *args, **kwargs): ... # incomplete + def image2DMaxWidth(self, *args, **kwargs): ... # incomplete + def image3DMaxDepth(self, *args, **kwargs): ... # incomplete + def image3DMaxHeight(self, *args, **kwargs): ... # incomplete + def image3DMaxWidth(self, *args, **kwargs): ... # incomplete + def imageFromBufferSupport(self, *args, **kwargs): ... # incomplete + def imageMaxArraySize(self, *args, **kwargs): ... # incomplete + def imageMaxBufferSize(self, *args, **kwargs): ... # incomplete + def imageSupport(self, *args, **kwargs): ... # incomplete + def intelSubgroupsSupport(self, *args, **kwargs): ... # incomplete + def isAMD(self, *args, **kwargs): ... # incomplete + def isExtensionSupported(self, *args, **kwargs): ... # incomplete + def isIntel(self, *args, **kwargs): ... # incomplete + def isNVidia(self, *args, **kwargs): ... # incomplete + def linkerAvailable(self, *args, **kwargs): ... # incomplete + def localMemSize(self, *args, **kwargs): ... # incomplete + def localMemType(self, *args, **kwargs): ... # incomplete + def maxClockFrequency(self, *args, **kwargs): ... # incomplete + def maxComputeUnits(self, *args, **kwargs): ... # incomplete + def maxConstantArgs(self, *args, **kwargs): ... # incomplete + def maxConstantBufferSize(self, *args, **kwargs): ... # incomplete + def maxMemAllocSize(self, *args, **kwargs): ... # incomplete + def maxParameterSize(self, *args, **kwargs): ... # incomplete + def maxReadImageArgs(self, *args, **kwargs): ... # incomplete + def maxSamplers(self, *args, **kwargs): ... # incomplete + def maxWorkGroupSize(self, *args, **kwargs): ... # incomplete + def maxWorkItemDims(self, *args, **kwargs): ... # incomplete + def maxWriteImageArgs(self, *args, **kwargs): ... # incomplete + def memBaseAddrAlign(self, *args, **kwargs): ... # incomplete + def name(self, *args, **kwargs): ... # incomplete + def nativeVectorWidthChar(self, *args, **kwargs): ... # incomplete + def nativeVectorWidthDouble(self, *args, **kwargs): ... # incomplete + def nativeVectorWidthFloat(self, *args, **kwargs): ... # incomplete + def nativeVectorWidthHalf(self, *args, **kwargs): ... # incomplete + def nativeVectorWidthInt(self, *args, **kwargs): ... # incomplete + def nativeVectorWidthLong(self, *args, **kwargs): ... # incomplete + def nativeVectorWidthShort(self, *args, **kwargs): ... # incomplete + def preferredVectorWidthChar(self, *args, **kwargs): ... # incomplete + def preferredVectorWidthDouble(self, *args, **kwargs): ... # incomplete + def preferredVectorWidthFloat(self, *args, **kwargs): ... # incomplete + def preferredVectorWidthHalf(self, *args, **kwargs): ... # incomplete + def preferredVectorWidthInt(self, *args, **kwargs): ... # incomplete + def preferredVectorWidthLong(self, *args, **kwargs): ... # incomplete + def preferredVectorWidthShort(self, *args, **kwargs): ... # incomplete + def printfBufferSize(self, *args, **kwargs): ... # incomplete + def profilingTimerResolution(self, *args, **kwargs): ... # incomplete + def singleFPConfig(self, *args, **kwargs): ... # incomplete + def type(self, *args, **kwargs): ... # incomplete + def vendorID(self, *args, **kwargs): ... # incomplete + def vendorName(self, *args, **kwargs): ... # incomplete + def version(self, *args, **kwargs): ... # incomplete + + +class ocl_OpenCLExecutionContext: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + + +class segmentation_IntelligentScissorsMB: + def __init__(self, *args, **kwargs) -> None: ... # incomplete + def applyImage(self, *args, **kwargs): ... # incomplete + def applyImageFeatures(self, *args, **kwargs): ... # incomplete + def buildMap(self, sourcePt) -> None: ... + def getContour(self, *args, **kwargs): ... # incomplete + def setEdgeFeatureCannyParameters(self, *args, **kwargs): ... # incomplete + def setEdgeFeatureZeroCrossingParameters(self, *args, **kwargs): ... # incomplete + def setGradientMagnitudeMaxLimit(self, *args, **kwargs): ... # incomplete + def setWeights(self, *args, **kwargs): ... # incomplete + + +def AKAZE_create( + descriptor_type=..., + descriptor_size=..., + descriptor_channels=..., + threshold=..., + nOctaves=..., + nOctaveLayers=..., + diffusivity=..., +): ... +def AffineFeature_create(*args, **kwargs): ... # incomplete +def AgastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...): ... +def BFMatcher_create(normType: int = ..., crossCheck=...): ... +@overload +def BRISK_create(thresh=..., octaves=..., patternScale=...): ... +@overload +def BRISK_create(radiusList, numberList, dMax=..., dMin=..., indexChange=...): ... +@overload +def BRISK_create(thresh, octaves, radiusList, numberList, dMax=..., dMin=..., indexChange=...): ... +def CamShift(probImage, window, criteria) -> tuple[tuple[Any, _window]]: ... +@overload +def Canny(image: Mat, threshold1, threshold2, edges=..., apertureSize=..., L2gradient=...) -> _edges: ... +@overload +def Canny(dx, dy, threshold1, threshold2, edges=..., L2gradient=...) -> _edges: ... +def CascadeClassifier_convert(oldcascade, newcascade): ... +def DISOpticalFlow_create(preset=...): ... +@overload +def DescriptorMatcher_create(descriptorMatcherType: str) -> DescriptorMatcher: ... +@overload +def DescriptorMatcher_create(matcherType: int) -> DescriptorMatcher: ... + + +def EMD( + signature1, + signature2, + distType, + cost=..., + lowerBound=..., + flow=..., +) -> tuple[ + tuple[ + Any, + _lowerBound, + _flow, + ] +]: ... + + +def FaceDetectorYN_create(*args, **kwargs): ... # incomplete +def FaceRecognizerSF_create(*args, **kwargs): ... # incomplete + + +def FarnebackOpticalFlow_create( + numLevels=..., + pyrScale=..., + fastPyramids=..., + winSize=..., + numIters=..., + polyN=..., + polySigma=..., + flags: int = ..., +): ... + + +def FastFeatureDetector_create(threshold=..., nonmaxSuppression=..., type=...): ... +def FlannBasedMatcher_create(): ... + + +@overload +def GFTTDetector_create( + maxCorners=..., + qualityLevel=..., + minDistance=..., + blockSize=..., + useHarrisDetector=..., + k=..., +): ... + + +@overload +def GFTTDetector_create( + maxCorners, + qualityLevel, + minDistance, + blockSize, + gradiantSize, + useHarrisDetector=..., + k=..., +): ... + + +def GaussianBlur(src: Mat, ksize, sigmaX, dst: Mat = ..., sigmaY=..., borderType=...) -> _dst: ... +def HOGDescriptor_getDaimlerPeopleDetector(): ... +def HOGDescriptor_getDefaultPeopleDetector(): ... + + +def HoughCircles( + image: Mat, method: int, dp, minDist, circles=..., param1=..., param2=..., minRadius=..., maxRadius=..., +) -> _circles: ... + + +def HoughLines( + image: Mat, rho, theta, threshold, lines=..., srn=..., + stn=..., min_theta=..., max_theta=..., +) -> _lines: ... + + +def HoughLinesP(image: Mat, rho, theta, threshold, lines=..., minLineLength=..., maxLineGap=...) -> _lines: ... + + +def HoughLinesPointSet( + _point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step, _lines=..., +) -> _lines: ... +def HoughLinesWithAccumulator(*args, **kwargs): ... # incomplete +def HuMoments(m, hu=...) -> _hu: ... +def KAZE_create(extended=..., upright=..., threshold=..., nOctaves=..., nOctaveLayers=..., diffusivity=...): ... +@overload +def KeyPoint_convert(keypoints, keypointIndexes=...) -> _points2f: ... +@overload +def KeyPoint_convert(points2f, size=..., response=..., octave=..., class_id=...) -> _keypoints: ... +def KeyPoint_overlap(kp1, kp2): ... +def LUT(src: Mat, lut, dst: Mat = ...) -> _dst: ... +def Laplacian(src: Mat, ddepth, dst: Mat = ..., ksize=..., scale=..., delta=..., borderType=...) -> _dst: ... + + +def MSER_create( + _delta=..., + _min_area=..., + _max_area=..., + _max_variation=..., + _min_diversity=..., + _max_evolution=..., + _area_threshold=..., + _min_margin=..., + _edge_blur_size=..., +): ... +def Mahalanobis(v1, v2, icovar): ... + + +def ORB_create( + nfeatures=..., + scaleFactor=..., + nlevels=..., + edgeThreshold=..., + firstLevel=..., + WTA_K=..., + scoreType=..., + patchSize=..., + fastThreshold=..., +): ... +def PCABackProject(data, mean, eigenvectors, result=...): ... +@overload +def PCACompute(data, mean, eigenvectors=..., maxComponents=...) -> tuple[tuple[_mean, _eigenvectors]]: ... +@overload +def PCACompute(data, mean, retainedVariance, eigenvectors=...) -> tuple[tuple[_mean, _eigenvectors]]: ... + + +@overload +def PCACompute2( + data, mean, eigenvectors=..., eigenvalues=..., maxComponents=..., +) -> tuple[tuple[_mean, _eigenvectors, _eigenvalues]]: ... + + +@overload +def PCACompute2( + data, mean, retainedVariance, eigenvectors=..., eigenvalues=..., +) -> tuple[tuple[_mean, _eigenvectors, _eigenvalues]]: ... +def PCAProject(data, mean, eigenvectors, result=...) -> _result: ... +def PSNR(src1: Mat, src2: Mat, R=...): ... +def QRCodeEncoder_create(*args, **kwargs): ... # incomplete + + +def RQDecomp3x3( + src: Mat, mtxR=..., mtxQ=..., Qx=..., Qy=..., Qz=..., +) -> tuple[tuple[Any, _mtxR, _mtxQ, _Qx, _Qy, _Qz]]: ... +def Rodrigues(src: Mat, dst: Mat = ..., jacobian=...) -> tuple[tuple[_dst, _jacobian]]: ... +def SIFT_create(nfeatures=..., nOctaveLayers=..., contrastThreshold=..., edgeThreshold=..., sigma=...): ... +def SVBackSubst(w, u, vt, rhs, dst: Mat = ...) -> _dst: ... +def SVDecomp(src: Mat, w=..., u=..., vt=..., flags: int = ...) -> tuple[tuple[_w, _u, _vt]]: ... +def Scharr(src: Mat, ddepth, dx, dy, dst: Mat = ..., scale=..., delta=..., borderType=...) -> _dst: ... +def SimpleBlobDetector_create(parameters=...): ... +def Sobel(src: Mat, ddepth, dx, dy, dst: Mat = ..., ksize=..., scale=..., delta=..., borderType=...) -> _dst: ... +def SparsePyrLKOpticalFlow_create(winSize=..., maxLevel=..., crit=..., flags: int = ..., minEigThreshold=...): ... +def StereoBM_create(numDisparities=..., blockSize=...): ... + + +def StereoSGBM_create( + minDisparity=..., + numDisparities=..., + blockSize=..., + P1=..., + P2=..., + disp12MaxDiff=..., + preFilterCap=..., + uniquenessRatio=..., + speckleWindowSize=..., + speckleRange=..., + mode=..., +): ... +def Stitcher_create(mode=...): ... +def TrackerDaSiamRPN_create(*args, **kwargs): ... # incomplete +def TrackerGOTURN_create(*args, **kwargs): ... # incomplete +def TrackerMIL_create(*args, **kwargs): ... # incomplete +def UMat_context(): ... +def UMat_queue(): ... +def VariationalRefinement_create(): ... +def VideoWriter_fourcc(c1, c2, c3, c4): ... +def _registerMatType(*args, **kwargs): ... # incomplete +def absdiff(src1: Mat, src2: Mat, dst: Mat = ...) -> _dst: ... +def accumulate(src: Mat, dst: Mat, mask: Mat = ...) -> _dst: ... +def accumulateProduct(src1: Mat, src2: Mat, dst: Mat, mask: Mat = ...) -> _dst: ... +def accumulateSquare(src: Mat, dst: Mat, mask: Mat = ...) -> _dst: ... +def accumulateWeighted(src: Mat, dst: Mat, alpha, mask: Mat = ...) -> _dst: ... +def adaptiveThreshold(src: Mat, maxValue, adaptiveMethod, thresholdType, blockSize, C, dst: Mat = ...) -> _dst: ... +def add(src1: Mat | _NumericScalar, src2: Mat | _NumericScalar, dst: Mat = ..., mask: Mat = ..., dtype=...) -> _dst: ... +def addText(img: Mat, text, org, nameFont, pointSize=..., color=..., weight=..., style=..., spacing=...) -> None: ... +def addWeighted(src1: Mat, alpha, src2: Mat, beta, gamma, dst: Mat = ..., dtype=...) -> _dst: ... +@overload +def applyColorMap(src: Mat, colormap, dst: Mat = ...) -> _dst: ... +@overload +def applyColorMap(src, userColor, dst=...) -> _dst: ... +def approxPolyDP(curve, epsilon, closed, approxCurve=...) -> _approxCurve: ... +def arcLength(curve, closed): ... +def arrowedLine(img: Mat, pt1, pt2, color, thickness=..., line_type=..., shift=..., tipLength=...) -> _img: ... + + +def batchDistance( + src1: Mat, + src2: Mat, + dtype, + dist=..., + nidx=..., + normType: int = ..., + K=..., + mask: Mat = ..., + update=..., + crosscheck=..., +) -> tuple[ + _dist, + _nidx, +]: ... + + +def bilateralFilter(src: Mat, d, sigmaColor, sigmaSpace, dst: Mat = ..., borderType=...) -> _dst: ... +def bitwise_and(src1: Mat, src2: Mat, dst: Mat = ..., mask: Mat = ...) -> _dst: ... +def bitwise_not(src: Mat, dst: Mat = ..., mask: Mat = ...) -> _dst: ... +def bitwise_or(src1: Mat, src2: Mat, dst: Mat = ..., mask: Mat = ...) -> _dst: ... +def bitwise_xor(src1: Mat, src2: Mat, dst: Mat = ..., mask: Mat = ...) -> _dst: ... +def blendLinear(*args, **kwargs): ... # incomplete +def blur(src: Mat, ksize, dst: Mat = ..., anchor=..., borderType=...) -> _dst: ... +def borderInterpolate(p, len, borderType): ... +def boundingRect(array): ... +def boxFilter(src: Mat, ddepth, ksize, dst: Mat = ..., anchor=..., normalize=..., borderType=...) -> _dst: ... +def boxPoints(box, points=...) -> _points: ... + + +def buildOpticalFlowPyramid( + img: Mat, + winSize, + maxLevel, + pyramid=..., + withDerivatives=..., + pyrBorder=..., + derivBorder=..., + tryReuseInputImage=..., +) -> tuple[ + Any, + _pyramid, +]: ... + + +def calcBackProject( + images: Sequence[Mat], channels: Sequence[int], hist, ranges: Sequence[int], scale, dst: Mat = ..., +) -> _dst: ... +def calcCovarMatrix(samples, mean, flags: int, covar=..., ctype=...) -> tuple[_covar, _mean]: ... + + +def calcHist( + images: Sequence[Mat], + channels: Sequence[int], + mask: Mat | None, + histSize: Sequence[int], + ranges: Sequence[int], + hist: Mat = ..., + accumulate=..., +) -> Mat: ... + + +def calcOpticalFlowFarneback( + prev, next, flow, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags: int, +) -> _flow: ... + + +def calcOpticalFlowPyrLK( + prevImg, + nextImg, + prevPts, + nextPts, + status=..., + err=..., + winSize=..., + maxLevel=..., + criteria=..., + flags: int = ..., + minEigThreshold=..., +) -> tuple[_nextPts, _status, _err]: ... + + +def calibrateCamera( + objectPoints, + imagePoints, + imageSize, + cameraMatrix, + distCoeffs, + rvecs=..., + tvecs=..., + flags: int = ..., + criteria=..., +) -> tuple[ + Any, + _cameraMatrix, + _distCoeffs, + _rvecs, + _tvecs, +]: ... + + +def calibrateCameraExtended( + objectPoints, + imagePoints, + imageSize, + cameraMatrix, + distCoeffs, + rvecs=..., + tvecs=..., + stdDeviationsIntrinsics=..., + stdDeviationsExtrinsics=..., + perViewErrors=..., + flags: int = ..., + criteria=..., +) -> tuple[ + Any, _cameraMatrix, _distCoeffs, _rvecs, _tvecs, _stdDeviationsIntrinsics, _stdDeviationsExtrinsics, _perViewErrors, +]: ... + + +def calibrateCameraRO( + objectPoints, + imagePoints, + imageSize, + iFixedPoint, + cameraMatrix, + distCoeffs, + rvecs=..., + tvecs=..., + newObjPoints=..., + flags: int = ..., + criteria=..., +) -> tuple[Any, _cameraMatrix, _distCoeffs, _rvecs, _tvecs, _newObjPoints]: ... + + +def calibrateCameraROExtended( + objectPoints, + imagePoints, + imageSize, + iFixedPoint, + cameraMatrix, + distCoeffs, + rvecs=..., + tvecs=..., + newObjPoints=..., + stdDeviationsIntrinsics=..., + stdDeviationsExtrinsics=..., + stdDeviationsObjPoints=..., + perViewErrors=..., + flags: int = ..., + criteria=..., +) -> tuple[ + Any, + _cameraMatrix, + _distCoeffs, + _rvecs, + _tvecs, + _newObjPoints, + _stdDeviationsIntrinsics, + _stdDeviationsExtrinsics, + _stdDeviationsObjPoints, + _perViewErrors, +]: ... + + +def calibrateHandEye( + R_gripper2base, t_gripper2base, R_target2cam, t_target2cam, R_cam2gripper=..., t_cam2gripper=..., method: int = ..., +) -> tuple[_R_cam2gripper, _t_cam2gripper]: ... +def calibrateRobotWorldHandEye(*args, **kwargs): ... # incomplete + + +def calibrationMatrixValues( + cameraMatrix, imageSize, apertureWidth, apertureHeight, +) -> tuple[_fovx, _fovy, _focalLength, _principalPoint, _aspectRatio]: ... +def cartToPolar(x, y, magnitude=..., angle=..., angleInDegrees=...) -> tuple[_magnitude, _angle]: ... +def checkChessboard(img: Mat, size): ... +def checkHardwareSupport(feature): ... +def checkRange(a, quiet=..., minVal=..., maxVal=...) -> tuple[Any, _pos]: ... +def circle(img: Mat, center, radius, color, thickness=..., lineType=..., shift=...) -> _img: ... +def clipLine(imgRect, pt1, pt2) -> tuple[Any, _pt1, _pt2]: ... +def colorChange(src: Mat, mask: Mat, dst: Mat = ..., red_mul=..., green_mul=..., blue_mul=...) -> _dst: ... +def compare(src1: Mat, src2: Mat, cmpop, dst: Mat = ...) -> _dst: ... +def compareHist(H1: Mat, H2: Mat, method: int) -> float: ... +def completeSymm(m, lowerToUpper=...) -> _m: ... + + +def composeRT( + rvec1, + tvec1, + rvec2, + tvec2, + rvec3=..., + tvec3=..., + dr3dr1=..., + dr3dt1=..., + dr3dr2=..., + dr3dt2=..., + dt3dr1=..., + dt3dt1=..., + dt3dr2=..., + dt3dt2=..., +) -> tuple[_rvec3, _tvec3, _dr3dr1, _dr3dt1, _dr3dr2, _dr3dt2, _dt3dr1, _dt3dt1, _dt3dr2, _dt3dt2]: ... +def computeCorrespondEpilines(points, whichImage, F, lines=...) -> _lines: ... +def computeECC(templateImage, inputImage, inputMask=...): ... +def connectedComponents(image: Mat, labels=..., connectivity=..., ltype=...) -> tuple[Any, _labels]: ... +def connectedComponentsWithAlgorithm(image: Mat, connectivity, ltype, ccltype, labels=...) -> tuple[Any, _labels]: ... + + +def connectedComponentsWithStats( + image: Mat, labels=..., stats=..., centroids=..., connectivity=..., ltype=..., +) -> tuple[Any, _labels, _stats, _centroids]: ... + + +def connectedComponentsWithStatsWithAlgorithm( + image: Mat, connectivity, ltype, ccltype, labels=..., stats=..., centroids=..., +) -> tuple[Any, _labels, _stats, _centroids]: ... +@overload +def contourArea(approx): ... +@overload +def contourArea(contour, oriented=...): ... +def convertFp16(src: Mat, dst: Mat = ...) -> _dst: ... + + +def convertMaps( + map1, + map2, + dstmap1type, + dstmap1=..., + dstmap2=..., + nninterpolation=..., +) -> tuple[ + _dstmap1, + _dstmap2, +]: ... + + +def convertPointsFromHomogeneous(src: Mat, dst: Mat = ...) -> _dst: ... +def convertPointsToHomogeneous(src: Mat, dst: Mat = ...) -> _dst: ... +def convertScaleAbs(src: Mat, dst: Mat = ..., alpha=..., beta=...) -> _dst: ... +def convexHull(points, hull=..., clockwise=..., returnPoints=...) -> _hull: ... +def convexityDefects(contour, convexhull, convexityDefects=...) -> _convexityDefects: ... +def copyMakeBorder(src: Mat, top, bottom, left, right, borderType, dst: Mat = ..., value=...) -> _dst: ... +def copyTo(src: Mat, mask: Mat, dst: Mat = ...) -> _dst: ... +def cornerEigenValsAndVecs(src: Mat, blockSize, ksize, dst: Mat = ..., borderType=...) -> _dst: ... +def cornerHarris(src: Mat, blockSize, ksize, k, dst: Mat = ..., borderType=...) -> _dst: ... +def cornerMinEigenVal(src: Mat, blockSize, dst: Mat = ..., ksize=..., borderType=...) -> _dst: ... +def cornerSubPix(image: Mat, corners, winSize, zeroZone, criteria) -> _corners: ... +def correctMatches(F, points1, points2, newPoints1=..., newPoints2=...) -> tuple[_newPoints1, _newPoints2]: ... +def countNonZero(src): ... +def createAlignMTB(max_bits=..., exclude_range=..., cut=...): ... +def createBackgroundSubtractorKNN(history=..., dist2Threshold=..., detectShadows=...): ... +def createBackgroundSubtractorMOG2(history=..., varThreshold=..., detectShadows=...): ... +def createButton(buttonName, onChange, userData=..., buttonType=..., initialButtonState=...) -> None: ... +def createCLAHE(clipLimit=..., tileGridSize=...): ... +def createCalibrateDebevec(samples=..., lambda_=..., random=...): ... +def createCalibrateRobertson(max_iter=..., threshold=...): ... +def createGeneralizedHoughBallard(): ... +def createGeneralizedHoughGuil(): ... +def createHanningWindow(winSize, type, dst: Mat = ...) -> _dst: ... + + +def createLineSegmentDetector( + _refine=..., _scale=..., _sigma_scale=..., _quant=..., _ang_th=..., _log_eps=..., _density_th=..., _n_bins=..., +): ... +def createMergeDebevec(): ... +def createMergeMertens(contrast_weight=..., saturation_weight=..., exposure_weight=...): ... +def createMergeRobertson(): ... +def createTonemap(gamma=...): ... +def createTonemapDrago(gamma=..., saturation=..., bias=...): ... +def createTonemapMantiuk(gamma=..., scale=..., saturation=...): ... +def createTonemapReinhard(gamma=..., intensity=..., light_adapt=..., color_adapt=...): ... +def createTrackbar(trackbarName, windowName, value, count, onChange) -> None: ... +def cubeRoot(val): ... +def cvtColor(src: Mat, code: int, dst: Mat = ..., dstCn: int = ...) -> Mat: ... +def cvtColorTwoPlane(src1: Mat, src2: Mat, code: int, dst: Mat = ...) -> _dst: ... +def dct(src: Mat, dst: Mat = ..., flags: int = ...) -> _dst: ... +def decolor(src: Mat, grayscale=..., color_boost=...) -> tuple[_grayscale, _color_boost]: ... +def decomposeEssentialMat(E, R1=..., R2=..., t=...) -> tuple[_R1, _R2, _t]: ... + + +def decomposeHomographyMat( + H, K, rotations=..., translations=..., normals=..., +) -> tuple[Any, _rotations, _translations, _normals]: ... + + +def decomposeProjectionMatrix( + projMatrix, + cameraMatrix=..., + rotMatrix=..., + transVect=..., + rotMatrixX=..., + rotMatrixY=..., + rotMatrixZ=..., + eulerAngles=..., +) -> tuple[ + _cameraMatrix, + _rotMatrix, + _transVect, + _rotMatrixX, + _rotMatrixY, + _rotMatrixZ, + _eulerAngles, +]: ... + + +def demosaicing(src: Mat, code: int, dst: Mat = ..., dstCn: int = ...) -> _dst: ... +def denoise_TVL1(observations, result, lambda_=..., niters=...) -> None: ... +def destroyAllWindows() -> None: ... +def destroyWindow(winname) -> None: ... +def detailEnhance(src: Mat, dst: Mat = ..., sigma_s=..., sigma_r=...) -> _dst: ... +def determinant(mtx): ... +def dft(src: Mat, dst: Mat = ..., flags: int = ..., nonzeroRows=...) -> _dst: ... +def dilate(src: Mat, kernel, dst: Mat = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> _dst: ... +def displayOverlay(winname, text, delayms=...) -> None: ... +def displayStatusBar(winname, text, delayms=...) -> None: ... +def distanceTransform(src: Mat, distanceType, maskSize, dst: Mat = ..., dstType=...) -> _dst: ... + + +def distanceTransformWithLabels( + src: Mat, distanceType, maskSize, dst: Mat = ..., labels=..., labelType=..., +) -> tuple[_dst, _labels]: ... +def divSpectrums(*args, **kwargs): ... # incomplete +@overload +def divide(src1: Mat, src2: Mat, dst: Mat = ..., scale=..., dtype=...) -> _dst: ... +@overload +def divide(scale, src2, dst=..., dtype=...) -> _dst: ... +def dnn_registerLayer() -> None: ... +def dnn_unregisterLayer() -> None: ... +def drawChessboardCorners(image: Mat, patternSize, corners, patternWasFound) -> _image: ... + + +def drawContours( + image: Mat, contours, contourIdx, color, thickness=..., lineType=..., hierarchy=..., maxLevel=..., offset=..., +) -> _image: ... +def drawFrameAxes(image: Mat, cameraMatrix, distCoeffs, rvec, tvec, length, thickness=...) -> _image: ... +def drawKeypoints(image: Mat, keypoints, outImage, color=..., flags: int = ...) -> _outImage: ... +def drawMarker(img: Mat, position, color, markerType=..., markerSize=..., thickness=..., line_type=...) -> _img: ... + + +def drawMatches( + img1, + keypoints1, + img2, + keypoints2, + matches1to2, + outImg, + matchColor=..., + singlePointColor=..., + matchesMask=..., + flags: int = ..., +) -> _outImg: ... + + +def drawMatchesKnn( + img1, + keypoints1, + img2, + keypoints2, + matches1to2, + outImg, + matchColor=..., + singlePointColor=..., + matchesMask=..., + flags: int = ..., +) -> _outImg: ... +def edgePreservingFilter(src: Mat, dst: Mat = ..., flags: int = ..., sigma_s=..., sigma_r=...) -> _dst: ... +def eigen(src: Mat, eigenvalues=..., eigenvectors=...) -> tuple[Any, _eigenvalues, _eigenvectors]: ... +def eigenNonSymmetric(src: Mat, eigenvalues=..., eigenvectors=...) -> tuple[_eigenvalues, _eigenvectors]: ... + + +@overload +def ellipse( + img: Mat, + center, + axes, + angle, + startAngle, + endAngle, + color, + thickness=..., + lineType=..., + shift=..., +) -> _img: ... + + +@overload +def ellipse(img, box, color, thickness=..., lineType=...) -> _img: ... +def ellipse2Poly(center, axes, angle, arcStart, arcEnd, delta) -> _pts: ... +def empty_array_desc(*args, **kwargs): ... # incomplete +def empty_gopaque_desc(*args, **kwargs): ... # incomplete +def empty_scalar_desc(*args, **kwargs): ... # incomplete +def equalizeHist(src: Mat, dst: Mat = ...) -> _dst: ... +def erode(src: Mat, kernel, dst: Mat = ..., anchor=..., iterations=..., borderType=..., borderValue=...) -> _dst: ... + + +def estimateAffine2D( + from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=..., +) -> tuple[Any, _inliers]: ... + + +def estimateAffine3D( + src: Mat, dst: Mat, out=..., inliers=..., ransacThreshold=..., confidence=..., +) -> tuple[Any, _out, _inliers]: ... + + +def estimateAffinePartial2D( + from_, to, inliers=..., method: int = ..., ransacReprojThreshold=..., maxIters=..., confidence=..., refineIters=..., +) -> tuple[Any, _inliers]: ... + + +def estimateChessboardSharpness( + image: Mat, patternSize, corners, rise_distance=..., vertical=..., sharpness=..., +) -> tuple[Any, _sharpness]: ... + + +def estimateTranslation3D( + src: Mat, dst: Mat, out=..., inliers=..., ransacThreshold=..., confidence=..., +) -> tuple[Any, _out, _inliers]: ... +def exp(src: Mat, dst: Mat = ...) -> _dst: ... +def extractChannel(src: Mat, coi, dst: Mat = ...) -> _dst: ... +def fastAtan2(y, x): ... +@overload +def fastNlMeansDenoising(src: Mat, dst: Mat = ..., h=..., templateWindowSize=..., searchWindowSize=...) -> _dst: ... +@overload +def fastNlMeansDenoising(src, h, dst=..., templateWindowSize=..., searchWindowSize=..., normType=...) -> _dst: ... + + +def fastNlMeansDenoisingColored( + src: Mat, dst: Mat = ..., h=..., hColor=..., templateWindowSize=..., searchWindowSize=..., +) -> _dst: ... + + +def fastNlMeansDenoisingColoredMulti( + srcImgs, + imgToDenoiseIndex, + temporalWindowSize, + dst: Mat = ..., + h=..., + hColor=..., + templateWindowSize=..., + searchWindowSize=..., +) -> _dst: ... + + +@overload +def fastNlMeansDenoisingMulti( + srcImgs, imgToDenoiseIndex, temporalWindowSize, dst: Mat = ..., h=..., templateWindowSize=..., searchWindowSize=..., +) -> _dst: ... + + +@overload +def fastNlMeansDenoisingMulti( + srcImgs, + imgToDenoiseIndex, + temporalWindowSize, + h, + dst=..., + templateWindowSize=..., + searchWindowSize=..., + normType=..., +) -> _dst: ... + + +def fillConvexPoly(img: Mat, points, color, lineType=..., shift=...) -> _img: ... +def fillPoly(img: Mat, pts, color, lineType=..., shift=..., offset=...) -> _img: ... +def filter2D(src: Mat, ddepth, kernel, dst: Mat = ..., anchor=..., delta=..., borderType=...) -> _dst: ... + + +def filterHomographyDecompByVisibleRefpoints( + rotations, normals, beforePoints, afterPoints, possibleSolutions=..., pointsMask=..., +) -> _possibleSolutions: ... +def filterSpeckles(img: Mat, newVal, maxSpeckleSize, maxDiff, buf=...) -> tuple[_img, _buf]: ... +def find4QuadCornerSubpix(img: Mat, corners, region_size) -> tuple[Any, _corners]: ... +def findChessboardCorners(image: Mat, patternSize, corners=..., flags: int = ...) -> tuple[Any, _corners]: ... +def findChessboardCornersSB(image: Mat, patternSize, corners=..., flags: int = ...) -> tuple[Any, _corners]: ... + + +def findChessboardCornersSBWithMeta( + image: Mat, patternSize, flags: int, corners=..., meta=..., +) -> tuple[Any, _corners, _meta]: ... + + +@overload +def findCirclesGrid( + image: Mat, patternSize, flags: int, blobDetector, parameters, centers=..., +) -> tuple[Any, _centers]: ... +@overload +def findCirclesGrid(image, patternSize, centers=..., flags=..., blobDetector=...) -> tuple[Any, _centers]: ... + + +def findContours( + image: Mat, + mode, + method: int, + contours=..., + hierarchy=..., + offset=..., +) -> tuple[ + _contours, + _hierarchy, +]: ... + + +@overload +def findEssentialMat( + points1, points2, cameraMatrix, method: int = ..., prob=..., threshold=..., mask: Mat = ..., +) -> tuple[Any, _mask]: ... + + +@overload +def findEssentialMat( + points1, points2, focal=..., pp=..., method=..., prob=..., threshold=..., mask=..., +) -> tuple[Any, _mask]: ... + + +@overload +def findFundamentalMat( + points1, points2, method: int, ransacReprojThreshold, confidence, maxIters, mask: Mat = ..., +) -> tuple[Any, _mask]: ... + + +@overload +def findFundamentalMat( + points1, points2, method=..., ransacReprojThreshold=..., confidence=..., mask=..., +) -> tuple[Any, _mask]: ... + + +def findHomography( + srcPoints, dstPoints, method: int = ..., ransacReprojThreshold=..., mask: Mat = ..., maxIters=..., confidence=..., +) -> tuple[Any, _mask]: ... +def findNonZero(src: Mat, idx=...) -> _idx: ... + + +def findTransformECC( + templateImage, inputImage, warpMatrix, motionType, criteria, inputMask, gaussFiltSize, +) -> tuple[Any, _warpMatrix]: ... +def fitEllipse(points): ... +def fitEllipseAMS(points): ... +def fitEllipseDirect(points): ... +def fitLine(points, distType, param, reps, aeps, line=...) -> _line: ... +def flip(src: Mat, flipCode, dst: Mat = ...) -> _dst: ... + + +def floodFill( + image: Mat, mask: Mat | None, seedPoint, newVal, loDiff=..., upDiff=..., flags: int = ..., +) -> tuple[Any, _image, _mask, _rect]: ... +def gemm(src1: Mat, src2: Mat, alpha, src3, beta, dst: Mat = ..., flags: int = ...) -> _dst: ... +def getAffineTransform(src: Mat, dst: Mat): ... +def getBuildInformation(): ... +def getCPUFeaturesLine(): ... +def getCPUTickCount(): ... +def getDefaultNewCameraMatrix(cameraMatrix, imgsize=..., centerPrincipalPoint=...): ... +def getDerivKernels(dx, dy, ksize, kx=..., ky=..., normalize=..., ktype=...) -> tuple[_kx, _ky]: ... +def getFontScaleFromHeight(fontFace, pixelHeight, thickness=...): ... +def getGaborKernel(ksize, sigma, theta, lambd, gamma, psi=..., ktype=...): ... +def getGaussianKernel(ksize, sigma, ktype=...): ... +def getHardwareFeatureName(feature): ... +def getLogLevel(*args, **kwargs): ... # incomplete +def getNumThreads(): ... +def getNumberOfCPUs(): ... +def getOptimalDFTSize(vecsize): ... + + +def getOptimalNewCameraMatrix( + cameraMatrix, distCoeffs, imageSize, alpha, newImgSize=..., centerPrincipalPoint=..., +) -> tuple[Any, _validPixROI]: ... +def getPerspectiveTransform(src: Mat, dst: Mat, solveMethod=...): ... +def getRectSubPix(image: Mat, patchSize, center, patch=..., patchType=...) -> _patch: ... +def getRotationMatrix2D(center, angle, scale): ... +def getStructuringElement(shape, ksize, anchor=...): ... +def getTextSize(text, fontFace, fontScale, thickness) -> tuple[Any, _baseLine]: ... +def getThreadNum(): ... +def getTickCount(): ... +def getTickFrequency(): ... +def getTrackbarPos(trackbarname, winname): ... +def getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, blockSize): ... +def getVersionMajor(): ... +def getVersionMinor(): ... +def getVersionRevision(): ... +def getVersionString(): ... +def getWindowImageRect(winname): ... +def getWindowProperty(winname, prop_id): ... + + +@overload +def goodFeaturesToTrack( + image: Mat, + maxCorners, + qualityLevel, + minDistance, + corners=..., + mask: Mat = ..., + blockSize=..., + useHarrisDetector=..., + k=..., +) -> _corners: ... + + +@overload +def goodFeaturesToTrack( + image, + maxCorners, + qualityLevel, + minDistance, + mask, + blockSize, + gradientSize, + corners=..., + useHarrisDetector=..., + k=..., +) -> _corners: ... + + +def goodFeaturesToTrackWithQuality(*args, **kwargs): ... # incomplete + + +def grabCut( + img: Mat, + mask: Mat | None, + rect, + bgdModel, + fgdModel, + iterCount, + mode=..., +) -> tuple[ + _mask, + _bgdModel, + _fgdModel, +]: ... + + +def groupRectangles(rectList, groupThreshold, eps=...) -> tuple[_rectList, _weights]: ... +def haveImageReader(filename: str): ... +def haveImageWriter(filename: str): ... +def haveOpenVX(): ... +def hconcat(src: Mat | Sequence[Mat], dst: Mat = ...) -> _dst: ... +def idct(src: Mat, dst: Mat = ..., flags: int = ...) -> _dst: ... +def idft(src: Mat, dst: Mat = ..., flags: int = ..., nonzeroRows=...) -> _dst: ... +def illuminationChange(src: Mat, mask: Mat, dst: Mat = ..., alpha=..., beta=...) -> _dst: ... +def imcount(*args, **kwargs): ... # incomplete +def imdecode(buf, flags: int): ... +def imencode(ext, img: Mat, params=...) -> tuple[Any, _buf]: ... +def imread(filename: str, flags: int = ...) -> Mat: ... +def imreadmulti(filename: str, mats=..., flags: int = ...) -> tuple[Any, _mats]: ... +def imshow(winname, mat) -> None: ... +def imwrite(filename: str, img: Mat, params: Sequence[int] = ...) -> bool: ... +def imwritemulti(*args, **kwargs): ... # incomplete +def inRange(src: Mat, lowerBound: Mat, upperbBound: Mat, dst: Mat = ...) -> Mat: ... +def initCameraMatrix2D(objectPoints, imagePoints, imageSize, aspectRatio=...): ... +def initInverseRectificationMap(*args, **kwargs): ... # incomplete + + +def initUndistortRectifyMap( + cameraMatrix, distCoeffs, R, newCameraMatrix, size, m1type, map1=..., map2=..., +) -> tuple[_map1, _map2]: ... +def inpaint(src: Mat, inpaintMask, inpaintRadius, flags: int, dst: Mat = ...) -> _dst: ... +def insertChannel(src: Mat, dst: Mat, coi) -> _dst: ... +def integral(src: Mat, sum=..., sdepth=...) -> _sum: ... +def integral2(src: Mat, sum=..., sqsum=..., sdepth=..., sqdepth=...) -> tuple[_sum, _sqsum]: ... +def integral3(src: Mat, sum=..., sqsum=..., tilted=..., sdepth=..., sqdepth=...) -> tuple[_sum, _sqsum, _tilted]: ... +def intersectConvexConvex(_p1, _p2, _p12=..., handleNested=...) -> tuple[Any, _p12]: ... +def invert(src: Mat, dst: Mat = ..., flags: int = ...) -> tuple[Any, _dst]: ... +def invertAffineTransform(M, iM=...) -> _iM: ... +def isContourConvex(contour): ... +def kmeans(data, K, bestLabels, criteria, attempts, flags: int, centers=...) -> tuple[Any, _bestLabels, _centers]: ... +def line(img: Mat, pt1, pt2, color, thickness=..., lineType=..., shift=...) -> _img: ... +def linearPolar(src: Mat, center, maxRadius, flags: int, dst: Mat = ...) -> _dst: ... +def log(src: Mat, dst: Mat = ...) -> _dst: ... +def logPolar(src: Mat, center, M, flags: int, dst: Mat = ...) -> _dst: ... +def magnitude(x, y, magnitude=...) -> _magnitude: ... +def matMulDeriv(A, B, dABdA=..., dABdB=...) -> tuple[_dABdA, _dABdB]: ... +def matchShapes(contour1, contour2, method: int, parameter): ... +def matchTemplate(image: Mat, templ: Mat, method: int, result: Mat = ..., mask: Mat | None = ...) -> Mat: ... +def max(src1: Mat, src2: Mat, dst: Mat = ...) -> _dst: ... +def mean(src: Mat, mask: Mat = ...): ... +def meanShift(probImage, window, criteria) -> tuple[Any, _window]: ... +def meanStdDev(src: Mat, mean=..., stddev=..., mask: Mat = ...) -> tuple[_mean, _stddev]: ... +def medianBlur(src: Mat, ksize, dst: Mat = ...) -> _dst: ... +def merge(mv, dst: Mat = ...) -> _dst: ... +def min(src1: Mat, src2: Mat, dst: Mat = ...) -> _dst: ... +def minAreaRect(points): ... +def minEnclosingCircle(points) -> tuple[_center, _radius]: ... +def minEnclosingTriangle(points, triangle=...) -> tuple[Any, _triangle]: ... +def minMaxLoc(src: Mat, mask: Mat = ...) -> tuple[float, float, tuple[int, int], tuple[int, int]]: ... +def mixChannels(src: Mat, dst: Mat, fromTo) -> _dst: ... +def moments(array, binaryImage=...): ... + + +def morphologyEx( + src: Mat, + op, + kernel, + dst: Mat = ..., + anchor=..., + iterations=..., + borderType=..., + borderValue=..., +) -> _dst: ... + + +def moveWindow(winname, x, y) -> None: ... +def mulSpectrums(a, b, flags: int, c=..., conjB=...) -> _c: ... +def mulTransposed(src: Mat, aTa, dst: Mat = ..., delta=..., scale=..., dtype=...) -> _dst: ... +def multiply(src1: Mat, src2: Mat, dst: Mat = ..., scale=..., dtype=...) -> _dst: ... +def namedWindow(winname, flags: int = ...) -> None: ... +@overload +def norm(src1: Mat, src2: Mat, normType: int = ..., mask: Mat | None = ...) -> float: ... +@overload +def norm(src1: Mat, src2: Mat, mask: Mat | None = ...) -> float: ... +def normalize(src: Mat, dst: Mat, alpha=..., beta=..., norm_type: int = ..., dtype=..., mask: Mat = ...) -> Mat: ... +def patchNaNs(a, val=...) -> _a: ... + + +def pencilSketch( + src: Mat, dst1: Mat = ..., dst2: Mat = ..., sigma_s=..., sigma_r=..., shade_factor=..., +) -> tuple[_dst1, _dst2]: ... +def perspectiveTransform(src: Mat, m, dst: Mat = ...) -> _dst: ... +def phase(x, y, angle=..., angleInDegrees=...) -> _angle: ... +def phaseCorrelate(src1: Mat, src2: Mat, window=...) -> tuple[Any, _response]: ... +def pointPolygonTest(contour, pt, measureDist): ... +def polarToCart(magnitude, angle, x=..., y=..., angleInDegrees=...) -> tuple[_x, _y]: ... +def pollKey(*args, **kwargs): ... # incomplete +def polylines(img: Mat, pts, isClosed, color, thickness=..., lineType=..., shift=...) -> _img: ... +def pow(src: Mat, power, dst: Mat = ...) -> _dst: ... +def preCornerDetect(src: Mat, ksize, dst: Mat = ..., borderType=...) -> _dst: ... + + +def projectPoints( + objectPoints, rvec, tvec, cameraMatrix, distCoeffs, imagePoints=..., jacobian=..., aspectRatio=..., +) -> tuple[_imagePoints, _jacobian]: ... + + +def putText( + img: Mat, + text, + org, + fontFace, + fontScale, + color, + thickness=..., + lineType=..., + bottomLeftOrigin=..., +) -> _img: ... + + +def pyrDown(src: Mat, dst: Mat = ..., dstsize=..., borderType=...) -> _dst: ... +def pyrMeanShiftFiltering(src: Mat, sp, sr, dst: Mat = ..., maxLevel=..., termcrit=...) -> _dst: ... +def pyrUp(src: Mat, dst: Mat = ..., dstsize=..., borderType=...) -> _dst: ... +def randShuffle(dst: Mat, iterFactor=...) -> _dst: ... +def randn(dst: Mat, mean, stddev) -> _dst: ... +def randu(dst: Mat, low, high) -> _dst: ... +def readOpticalFlow(path): ... +@overload +def recoverPose(points1, points2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, E, R, t, mask): ... +@overload +def recoverPose(E, points1, points2, cameraMatrix, R=..., t=..., mask: Mat = ...) -> tuple[Any, _R, _t, _mask]: ... +@overload +def recoverPose(E, points1, points2, R=..., t=..., focal=..., pp=..., mask=...) -> tuple[Any, _R, _t, _mask]: ... + + +@overload +def recoverPose( + E, points1, points2, cameraMatrix, distanceThresh, R=..., t=..., mask=..., triangulatedPoints=..., +) -> tuple[Any, _R, _t, _mask, _triangulatedPoints]: ... +@overload +def rectangle(img: Mat, pt1: _Point, pt2: _Point, color, thickness=..., lineType=..., shift=...) -> Mat: ... +@overload +def rectangle(img: Mat, rec: _Rect, color, thickness=..., lineType=..., shift=...) -> Mat: ... + + +def rectify3Collinear( + cameraMatrix1, + distCoeffs1, + cameraMatrix2, + distCoeffs2, + cameraMatrix3, + distCoeffs3, + imgpt1, + imgpt3, + imageSize, + R12, + T12, + R13, + T13, + alpha, + newImgSize, + flags: int, + R1=..., + R2=..., + R3=..., + P1=..., + P2=..., + P3=..., + Q=..., +) -> tuple[Any, _R1, _R2, _R3, _P1, _P2, _P3, _Q, _roi1, _roi2]: ... +def redirectError(onError) -> None: ... +def reduce(src: Mat, dim, rtype, dst: Mat = ..., dtype=...) -> _dst: ... +def reduceArgMax(*args, **kwargs): ... # incomplete +def reduceArgMin(*args, **kwargs): ... # incomplete +def remap(src: Mat, map1, map2, interpolation: int, dst: Mat = ..., borderMode=..., borderValue=...) -> _dst: ... +def repeat(src: Mat, ny, nx, dst: Mat = ...) -> _dst: ... +def reprojectImageTo3D(disparity, Q, _3dImage=..., handleMissingValues=..., ddepth=...) -> _3dImage: ... + + +def resize( + src: Mat, dsize: _Size, dst: Mat = ..., fx: float = ..., + fy: float = ..., interpolation: int = ..., +) -> Mat: ... + + +@overload +def resizeWindow(winname, width, height) -> None: ... +@overload +def resizeWindow(winname, size) -> None: ... +def rotate(src: Mat, rotateCode, dst: Mat = ...) -> _dst: ... +def rotatedRectangleIntersection(rect1, rect2, intersectingRegion=...) -> tuple[Any, _intersectingRegion]: ... +def sampsonDistance(pt1, pt2, F): ... +def scaleAdd(src1: Mat, alpha, src2: Mat, dst: Mat = ...) -> _dst: ... +def seamlessClone(src: Mat, dst: Mat, mask: Mat | None, p, flags: int, blend=...) -> _blend: ... +@overload +def selectROI(windowName, img: Mat, showCrosshair=..., fromCenter=...): ... +@overload +def selectROI(img: Mat, showCrosshair=..., fromCenter=...): ... +def selectROIs(windowName, img: Mat, showCrosshair=..., fromCenter=...) -> _boundingBoxes: ... +def sepFilter2D(src: Mat, ddepth, kernelX, kernelY, dst: Mat = ..., anchor=..., delta=..., borderType=...) -> _dst: ... +def setIdentity(mtx, s=...) -> _mtx: ... +def setLogLevel(*args, **kwargs): ... # incomplete +def setMouseCallback(windowName, onMouse, param=...) -> None: ... +def setNumThreads(nthreads) -> None: ... +def setRNGSeed(seed) -> None: ... +def setTrackbarMax(trackbarname, winname, maxval) -> None: ... +def setTrackbarMin(trackbarname, winname, minval) -> None: ... +def setTrackbarPos(trackbarname, winname, pos) -> None: ... +def setUseOpenVX(flag) -> None: ... +def setUseOptimized(onoff) -> None: ... +def setWindowProperty(winname, prop_id, prop_value) -> None: ... +def setWindowTitle(winname, title) -> None: ... +def solve(src1: Mat, src2: Mat, dst: Mat = ..., flags: int = ...) -> tuple[Any, _dst]: ... +def solveCubic(coeffs, roots=...) -> tuple[Any, _roots]: ... +def solveLP(Func, Constr, z=...) -> tuple[Any, _z]: ... + + +def solveP3P( + objectPoints, imagePoints, cameraMatrix, distCoeffs, flags: int, rvecs=..., tvecs=..., +) -> tuple[Any, _rvecs, _tvecs]: ... + + +def solvePnP( + objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec=..., tvec=..., useExtrinsicGuess=..., flags: int = ..., +) -> tuple[Any, _rvec, _tvec]: ... + + +def solvePnPGeneric( + objectPoints, + imagePoints, + cameraMatrix, + distCoeffs, + rvecs=..., + tvecs=..., + useExtrinsicGuess=..., + flags: int = ..., + rvec=..., + tvec=..., + reprojectionError=..., +) -> tuple[Any, _rvecs, _tvecs, _reprojectionError]: ... + + +def solvePnPRansac( + objectPoints, + imagePoints, + cameraMatrix, + distCoeffs, + rvec=..., + tvec=..., + useExtrinsicGuess=..., + iterationsCount=..., + reprojectionError=..., + confidence=..., + inliers=..., + flags: int = ..., +) -> tuple[Any, _rvec, _tvec, _inliers]: ... + + +def solvePnPRefineLM( + objectPoints, + imagePoints, + cameraMatrix, + distCoeffs, + rvec, + tvec, + criteria=..., +) -> tuple[ + _rvec, + _tvec, +]: ... + + +def solvePnPRefineVVS( + objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, criteria=..., VVSlambda=..., +) -> tuple[_rvec, _tvec]: ... +def solvePoly(coeffs, roots=..., maxIters=...) -> tuple[Any, _roots]: ... +def sort(src: Mat, flags: int, dst: Mat = ...) -> _dst: ... +def sortIdx(src: Mat, flags: int, dst: Mat = ...) -> _dst: ... +def spatialGradient(src: Mat, dx=..., dy=..., ksize=..., borderType=...) -> tuple[_dx, _dy]: ... +def split(m, mv=...) -> _mv: ... +def sqrBoxFilter(src: Mat, ddepth, ksize, dst: Mat = ..., anchor=..., normalize=..., borderType=...) -> _dst: ... +def sqrt(src: Mat, dst: Mat = ...) -> _dst: ... +def startWindowThread(): ... + + +def stereoCalibrate( + objectPoints, + imagePoints1, + imagePoints2, + cameraMatrix1, + distCoeffs1, + cameraMatrix2, + distCoeffs2, + imageSize, + R=..., + T=..., + E=..., + F=..., + flags: int = ..., + criteria=..., +) -> tuple[Any, _cameraMatrix1, _distCoeffs1, _cameraMatrix2, _distCoeffs2, _R, _T, _E, _F]: ... + + +def stereoCalibrateExtended( + objectPoints, + imagePoints1, + imagePoints2, + cameraMatrix1, + distCoeffs1, + cameraMatrix2, + distCoeffs2, + imageSize, + R, + T, + E=..., + F=..., + perViewErrors=..., + flags: int = ..., + criteria=..., +) -> tuple[Any, _cameraMatrix1, _distCoeffs1, _cameraMatrix2, _distCoeffs2, _R, _T, _E, _F, _perViewErrors]: ... + + +def stereoRectify( + cameraMatrix1, + distCoeffs1, + cameraMatrix2, + distCoeffs2, + imageSize, + R, + T, + R1=..., + R2=..., + P1=..., + P2=..., + Q=..., + flags: int = ..., + alpha=..., + newImageSize=..., +) -> tuple[_R1, _R2, _P1, _P2, _Q, _validPixROI1, _validPixROI2]: ... +def stereoRectifyUncalibrated(points1, points2, F, imgSize, H1=..., H2=..., threshold=...) -> tuple[Any, _H1, _H2]: ... +def stylization(src: Mat, dst: Mat = ..., sigma_s=..., sigma_r=...) -> _dst: ... + + +def subtract( + src1: Mat | _NumericScalar, + src2: Mat | _NumericScalar, + dst: Mat = ..., + mask: Mat = ..., + dtype=..., +) -> _dst: ... + + +def sumElems(src): ... + + +def textureFlattening( + src: Mat, + mask: Mat, + dst: Mat = ..., + low_threshold=..., + high_threshold=..., + kernel_size=..., +) -> _dst: ... + + +def threshold(src: Mat, thresh, maxval, type, dst: Mat = ...) -> tuple[Any, _dst]: ... +def trace(mtx): ... +def transform(src: Mat, m, dst: Mat = ...) -> _dst: ... +def transpose(src: Mat, dst: Mat = ...) -> _dst: ... +def triangulatePoints(projMatr1, projMatr2, projPoints1, projPoints2, points4D=...) -> _points4D: ... +def undistort(src: Mat, cameraMatrix, distCoeffs, dst: Mat = ..., newCameraMatrix=...) -> _dst: ... +def undistortPoints(src: Mat, cameraMatrix, distCoeffs, dst: Mat = ..., R=..., P=...) -> _dst: ... +def undistortPointsIter(src: Mat, cameraMatrix, distCoeffs, R, P, criteria, dst: Mat = ...) -> _dst: ... +def useOpenVX(): ... +def useOptimized(): ... +def validateDisparity(disparity, cost, minDisparity, numberOfDisparities, disp12MaxDisp=...) -> _disparity: ... +def vconcat(src: Mat | Sequence[Mat], dst: Mat = ...) -> Mat: ... +def waitKey(delay=...): ... +def waitKeyEx(delay=...): ... + + +def warpAffine( + src: Mat, + M, + dsize: _Size, + _dst: Mat = ..., + _flags: int = ..., + _borderMode=..., + _borderValue=..., +) -> _dst: ... + + +def warpPerspective( + src: Mat, + M, + dsize: _Size, + _dst: Mat = ..., + _flags: int = ..., + _borderMode=..., + _borderValue=..., +) -> _dst: ... + + +def warpPolar(src: Mat, dsize: _Size, _center, _maxRadius, _flags: int, _dst: Mat = ...) -> _dst: ... +def watershed(image: Mat, markers) -> _markers: ... +def writeOpticalFlow(path, flow): ... diff --git a/typings/cv2/mat_wrapper/__init__.pyi b/typings/cv2/mat_wrapper/__init__.pyi new file mode 100644 index 00000000..7507add6 --- /dev/null +++ b/typings/cv2/mat_wrapper/__init__.pyi @@ -0,0 +1,19 @@ +import numpy +from typing_extensions import TypeAlias + +_Unused: TypeAlias = object + +__all__: list[str] = [] + + +_NDArray = numpy.ndarray[float, numpy.dtype[numpy.generic]] + +# TODO: Make Mat generic with int or float + + +class Mat(_NDArray): + wrap_channels: bool | None + + def __new__(cls, arr: _NDArray, wrap_channels: bool = ..., **kwargs: _Unused) -> _NDArray: ... + def __init__(self, arr: _NDArray, wrap_channels: bool = ...) -> None: ... + def __array_finalize__(self, obj: _NDArray | None) -> None: ... diff --git a/typings/d3dshot/__init__.pyi b/typings/d3dshot/__init__.pyi deleted file mode 100644 index 882abe1f..00000000 --- a/typings/d3dshot/__init__.pyi +++ /dev/null @@ -1,13 +0,0 @@ -from d3dshot.capture_output import CaptureOutputs as CaptureOutputs -from d3dshot.d3dshot import D3DShot as D3DShot - -pil_is_available: bool -numpy_is_available: bool -pytorch_is_available: bool -pytorch_gpu_is_available: bool -capture_output_mapping: dict[str, CaptureOutputs] -capture_outputs: list[str] - - -def determine_available_capture_outputs() -> list[CaptureOutputs]: ... -def create(capture_output: str = ..., frame_buffer_size: int = ...) -> D3DShot: ... diff --git a/typings/d3dshot/capture_output.pyi b/typings/d3dshot/capture_output.pyi deleted file mode 100644 index ec338a77..00000000 --- a/typings/d3dshot/capture_output.pyi +++ /dev/null @@ -1,35 +0,0 @@ -import enum -from typing import Any - -from _typeshed import Incomplete -from PIL.Image import Image -from typing_extensions import TypeAlias - -Frame: TypeAlias = Any -# Frame: TypeAlias = Image | npt.NDArray[np.int32] | npt.NDArray[np.float32] | torch.Tensor -Pointer: TypeAlias = Incomplete - - -class CaptureOutputs(enum.Enum): - PIL: int - NUMPY: int - NUMPY_FLOAT: int - PYTORCH: int - PYTORCH_FLOAT: int - PYTORCH_GPU: int - PYTORCH_FLOAT_GPU: int - - -class CaptureOutputError(BaseException): - ... - - -class CaptureOutput: - backend: CaptureOutput - def __init__(self, backend: CaptureOutputs = ...) -> None: ... - - def process( - self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int - ) -> Frame: ... - def to_pil(self, frame: Frame) -> Image: ... - def stack(self, frames: list[Frame], stack_dimension) -> Frame: ... diff --git a/typings/d3dshot/capture_outputs/__init__.pyi b/typings/d3dshot/capture_outputs/__init__.pyi deleted file mode 100644 index e69de29b..00000000 diff --git a/typings/d3dshot/capture_outputs/numpy_capture_output.pyi b/typings/d3dshot/capture_outputs/numpy_capture_output.pyi deleted file mode 100644 index e165ef32..00000000 --- a/typings/d3dshot/capture_outputs/numpy_capture_output.pyi +++ /dev/null @@ -1,19 +0,0 @@ -import numpy as np -import numpy.typing as npt -from _typeshed import Incomplete -from d3dshot.capture_output import CaptureOutput as CaptureOutput -from PIL.Image import Image -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete -NDArray: TypeAlias = npt.NDArray[np.int32] - - -class NumpyCaptureOutput(CaptureOutput): - def __init__(self) -> None: ... - - def process( - self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int - ) -> NDArray: ... - def to_pil(self, frame: NDArray) -> Image: ... - def stack(self, frames: list[NDArray] | NDArray, stack_dimension: int) -> NDArray: ... diff --git a/typings/d3dshot/capture_outputs/numpy_float_capture_output.pyi b/typings/d3dshot/capture_outputs/numpy_float_capture_output.pyi deleted file mode 100644 index 96226290..00000000 --- a/typings/d3dshot/capture_outputs/numpy_float_capture_output.pyi +++ /dev/null @@ -1,19 +0,0 @@ -import numpy as np -import numpy.typing as npt -from _typeshed import Incomplete -from d3dshot.capture_output import CaptureOutput as CaptureOutput -from PIL.Image import Image -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete -NDArray: TypeAlias = npt.NDArray[np.float32] - - -class NumpyFloatCaptureOutput(CaptureOutput): - def __init__(self) -> None: ... - - def process( - self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int - ) -> NDArray: ... - def to_pil(self, frame: NDArray) -> Image: ... - def stack(self, frames: list[NDArray] | NDArray, stack_dimension: int) -> NDArray: ... diff --git a/typings/d3dshot/capture_outputs/pil_capture_output.pyi b/typings/d3dshot/capture_outputs/pil_capture_output.pyi deleted file mode 100644 index 553d48bf..00000000 --- a/typings/d3dshot/capture_outputs/pil_capture_output.pyi +++ /dev/null @@ -1,16 +0,0 @@ -from _typeshed import Incomplete -from d3dshot.capture_output import CaptureOutput as CaptureOutput -from PIL.Image import Image -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete - - -class PILCaptureOutput(CaptureOutput): - def __init__(self) -> None: ... - - def process( - self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int - ) -> Image: ... - def to_pil(self, frame: Image) -> Image: ... - def stack(self, frames: list[Image], stack_dimension: int) -> list[Image]: ... diff --git a/typings/d3dshot/capture_outputs/pytorch_capture_output.pyi b/typings/d3dshot/capture_outputs/pytorch_capture_output.pyi deleted file mode 100644 index fde2eb95..00000000 --- a/typings/d3dshot/capture_outputs/pytorch_capture_output.pyi +++ /dev/null @@ -1,17 +0,0 @@ -import torch -from _typeshed import Incomplete -from d3dshot.capture_output import CaptureOutput as CaptureOutput -from PIL.Image import Image -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete - - -class PytorchCaptureOutput(CaptureOutput): - def __init__(self) -> None: ... - - def process( - self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int - ) -> torch.Tensor: ... - def to_pil(self, frame: torch.Tensor) -> Image: ... - def stack(self, frames: list[torch.Tensor], stack_dimension: int) -> torch.Tensor: ... diff --git a/typings/d3dshot/capture_outputs/pytorch_float_capture_output.pyi b/typings/d3dshot/capture_outputs/pytorch_float_capture_output.pyi deleted file mode 100644 index e6264993..00000000 --- a/typings/d3dshot/capture_outputs/pytorch_float_capture_output.pyi +++ /dev/null @@ -1,17 +0,0 @@ -import torch -from _typeshed import Incomplete -from d3dshot.capture_output import CaptureOutput as CaptureOutput -from PIL.Image import Image -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete - - -class PytorchFloatCaptureOutput(CaptureOutput): - def __init__(self) -> None: ... - - def process( - self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int - ) -> torch.Tensor: ... - def to_pil(self, frame: torch.Tensor) -> Image: ... - def stack(self, frames: list[torch.Tensor], stack_dimension: int) -> torch.Tensor: ... diff --git a/typings/d3dshot/capture_outputs/pytorch_float_gpu_capture_output.pyi b/typings/d3dshot/capture_outputs/pytorch_float_gpu_capture_output.pyi deleted file mode 100644 index ec685f18..00000000 --- a/typings/d3dshot/capture_outputs/pytorch_float_gpu_capture_output.pyi +++ /dev/null @@ -1,18 +0,0 @@ -import torch -from _typeshed import Incomplete -from d3dshot.capture_output import CaptureOutput as CaptureOutput -from PIL.Image import Image -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete - - -class PytorchFloatGPUCaptureOutput(CaptureOutput): - device: Incomplete - def __init__(self) -> None: ... - - def process( - self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int - ) -> torch.Tensor: ... - def to_pil(self, frame: torch.Tensor) -> Image: ... - def stack(self, frames: list[torch.Tensor], stack_dimension: int) -> torch.Tensor: ... diff --git a/typings/d3dshot/capture_outputs/pytorch_gpu_capture_output.pyi b/typings/d3dshot/capture_outputs/pytorch_gpu_capture_output.pyi deleted file mode 100644 index e8cbfb11..00000000 --- a/typings/d3dshot/capture_outputs/pytorch_gpu_capture_output.pyi +++ /dev/null @@ -1,18 +0,0 @@ -import torch -from _typeshed import Incomplete -from d3dshot.capture_output import CaptureOutput as CaptureOutput -from PIL.Image import Image -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete - - -class PytorchGPUCaptureOutput(CaptureOutput): - device: torch.device - def __init__(self) -> None: ... - - def process( - self, pointer: Pointer, size: int, width: int, height: int, region: tuple[int, int, int, int], rotation: int - ) -> torch.Tensor: ... - def to_pil(self, frame: torch.Tensor) -> Image: ... - def stack(self, frames: list[torch.Tensor], stack_dimension: int): ... diff --git a/typings/d3dshot/d3dshot.pyi b/typings/d3dshot/d3dshot.pyi deleted file mode 100644 index bea62ad8..00000000 --- a/typings/d3dshot/d3dshot.pyi +++ /dev/null @@ -1,50 +0,0 @@ -from collections import deque -from typing import Any - -from d3dshot.capture_output import CaptureOutput as CaptureOutput, CaptureOutputs as CaptureOutputs -from d3dshot.display import Display as Display -from typing_extensions import TypeAlias - -Frame: TypeAlias = Any -# Frame: TypeAlias = Image | npt.NDArray[np.int32] | npt.NDArray[np.float32] | torch.Tensor - - -class D3DShot: - displays: list[Display] - display: Display - capture_output: CaptureOutput - frame_buffer_size: int - frame_buffer: deque[Frame] - previous_screenshot: Frame | None - region: tuple[int, int, int, int] | None - - def __init__( - self, - capture_output: CaptureOutputs = ..., - frame_buffer_size: int = ..., - pil_is_available: bool = ..., - numpy_is_available: bool = ..., - pytorch_is_available: bool = ..., - pytorch_gpu_is_available: bool = ..., - ) -> None: ... - @property - def is_capturing(self) -> bool: ... - def get_latest_frame(self) -> Frame | None: ... - def get_frame(self, frame_index: int) -> Frame | None: ... - def get_frames(self, frame_indices: list[int]) -> list[Frame]: ... - def get_frame_stack(self, frame_indices: list[int], stack_dimension: str | None = ...) -> Frame: ... - def screenshot(self, region: tuple[int, int, int, int] | None = ...) -> Frame | None: ... - - def screenshot_to_disk( - self, directory: str | None = ..., file_name: str | None = ..., region: tuple[int, int, int, int] | None = ... - ) -> str: ... - def frame_buffer_to_disk(self, directory: str | None = ...) -> None: ... - def capture(self, target_fps: int = ..., region: tuple[int, int, int, int] | None = ...) -> bool: ... - def screenshot_every(self, interval: float, region: tuple[int, int, int, int] | None = ...) -> bool: ... - - def screenshot_to_disk_every( - self, interval: float, directory: str | None = ..., region: tuple[int, int, int, int] | None = ... - ) -> bool: ... - def stop(self) -> bool: ... - def benchmark(self) -> None: ... - def detect_displays(self) -> None: ... diff --git a/typings/d3dshot/display.pyi b/typings/d3dshot/display.pyi deleted file mode 100644 index f2df9ab9..00000000 --- a/typings/d3dshot/display.pyi +++ /dev/null @@ -1,48 +0,0 @@ -from collections.abc import Callable -from typing import Any, Literal - -from _typeshed import Incomplete -from typing_extensions import TypeAlias - -Frame: TypeAlias = Any -# Frame: TypeAlias = Image | npt.NDArray[np.int32] | npt.NDArray[np.float32] | torch.Tensor -Pointer: TypeAlias = Incomplete - - -class Display: - name: str - adapter_name: str - resolution: tuple[int, int] - position: dict[Literal["left", "top", "right", "bottom"], int] - rotation: int - scale_factor: int - is_primary: bool - hmonitor: int - dxgi_output: Incomplete | None - dxgi_adapter: Incomplete | None - d3d_device: Incomplete # ctypes.POINTER(ID3D11Device)() - d3d_device_context: Incomplete # ctypes.POINTER(ID3D11DeviceContext)() - dxgi_output_duplication: Incomplete # ctypes.POINTER(IDXGIOutputDuplication)() - - def __init__( - self, - name: str | None = ..., - adapter_name: str | None = ..., - resolution: tuple[int, int] | None = ..., - position: dict[Literal["left", "top", "right", "bottom"], int] | None = ..., - rotation: int | None = ..., - scale_factor: int | None = ..., - is_primary: bool = ..., - hmonitor: int | None = ..., - dxgi_output: Incomplete | None = ..., - dxgi_adapter: Incomplete | None = ..., - ) -> None: ... - - def capture( - self, - # Incomplete: dxgi_mapped_rect.pBits - process_func: Callable[[Pointer, int, int, int, tuple[int, int, int, int], int], Frame | None] | None, - region: tuple[int, int, int, int] = ..., - ) -> Frame: ... - @classmethod - def discover_displays(cls) -> list[Display]: ... diff --git a/typings/d3dshot/dll/__init__.pyi b/typings/d3dshot/dll/__init__.pyi deleted file mode 100644 index e69de29b..00000000 diff --git a/typings/d3dshot/dll/d3d.pyi b/typings/d3dshot/dll/d3d.pyi deleted file mode 100644 index c11a7e3b..00000000 --- a/typings/d3dshot/dll/d3d.pyi +++ /dev/null @@ -1,44 +0,0 @@ -import ctypes - -import comtypes -from _typeshed import Incomplete -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete - - -class DXGI_SAMPLE_DESC(ctypes.Structure): - ... - - -class D3D11_BOX(ctypes.Structure): - ... - - -class D3D11_TEXTURE2D_DESC(ctypes.Structure): - ... - - -class ID3D11DeviceChild(comtypes.IUnknown): - ... - - -class ID3D11Resource(ID3D11DeviceChild): - ... - - -class ID3D11Texture2D(ID3D11Resource): - ... - - -class ID3D11DeviceContext(ID3D11DeviceChild): - ... - - -class ID3D11Device(comtypes.IUnknown): - ... - - -def initialize_d3d_device(dxgi_adapter: Pointer) -> tuple[Pointer, Pointer]: ... -def describe_d3d11_texture_2d(d3d11_texture_2d: Pointer) -> D3D11_TEXTURE2D_DESC: ... -def prepare_d3d11_texture_2d_for_cpu(d3d11_texture_2d: Pointer, d3d_device: Pointer) -> Pointer: ... diff --git a/typings/d3dshot/dll/dxgi.pyi b/typings/d3dshot/dll/dxgi.pyi deleted file mode 100644 index 7947d5bc..00000000 --- a/typings/d3dshot/dll/dxgi.pyi +++ /dev/null @@ -1,98 +0,0 @@ -import ctypes -from collections.abc import Callable -from typing import Any - -import comtypes -from _typeshed import Incomplete -from typing_extensions import TypeAlias - -Frame: TypeAlias = Any -# Frame: TypeAlias = Image | npt.NDArray[np.int32] | npt.NDArray[np.float32] | torch.Tensor -Pointer: TypeAlias = Incomplete - - -class LUID(ctypes.Structure): - ... - - -class DXGI_ADAPTER_DESC1(ctypes.Structure): - ... - - -class DXGI_OUTPUT_DESC(ctypes.Structure): - ... - - -class DXGI_OUTDUPL_POINTER_POSITION(ctypes.Structure): - ... - - -class DXGI_OUTDUPL_FRAME_INFO(ctypes.Structure): - ... - - -class DXGI_MAPPED_RECT(ctypes.Structure): - ... - - -class IDXGIObject(comtypes.IUnknown): - ... - - -class IDXGIDeviceSubObject(IDXGIObject): - ... - - -class IDXGIResource(IDXGIDeviceSubObject): - ... - - -class IDXGISurface(IDXGIDeviceSubObject): - ... - - -class IDXGIOutputDuplication(IDXGIObject): - ... - - -class IDXGIOutput(IDXGIObject): - ... - - -class IDXGIOutput1(IDXGIOutput): - ... - - -class IDXGIAdapter(IDXGIObject): - ... - - -class IDXGIAdapter1(IDXGIAdapter): - ... - - -class IDXGIFactory(IDXGIObject): - ... - - -class IDXGIFactory1(IDXGIFactory): - ... - - -def initialize_dxgi_factory() -> Pointer: ... # ctypes.POINTER(IDXGIFactory1)(handle.value) -def discover_dxgi_adapters(dxgi_factory: Pointer) -> list[Pointer]: ... -def describe_dxgi_adapter(dxgi_adapter: Pointer) -> Pointer: ... -def discover_dxgi_outputs(dxgi_adapter: Pointer) -> list[Pointer]: ... -def describe_dxgi_output(dxgi_output: Pointer) -> Pointer: ... -def initialize_dxgi_output_duplication(dxgi_output: Pointer, d3d_device: Pointer) -> Pointer: ... - - -def get_dxgi_output_duplication_frame( - dxgi_output_duplication: Pointer, - d3d_device: Pointer, - process_func: Callable[[Pointer, int, int, int, tuple[int, int, int, int], int], Frame | None] | None = ..., - width: int = ..., - height: int = ..., - region: tuple[int, int, int, int] | None = ..., - rotation: int = ..., -) -> Frame: ... diff --git a/typings/d3dshot/dll/shcore.pyi b/typings/d3dshot/dll/shcore.pyi deleted file mode 100644 index 15a24dba..00000000 --- a/typings/d3dshot/dll/shcore.pyi +++ /dev/null @@ -1 +0,0 @@ -def get_scale_factor_for_monitor(hmonitor: int) -> float: ... diff --git a/typings/d3dshot/dll/user32.pyi b/typings/d3dshot/dll/user32.pyi deleted file mode 100644 index b9720356..00000000 --- a/typings/d3dshot/dll/user32.pyi +++ /dev/null @@ -1,14 +0,0 @@ -import ctypes - -from _typeshed import Incomplete -from typing_extensions import TypeAlias - -Pointer: TypeAlias = Incomplete - - -class DISPLAY_DEVICE(ctypes.Structure): - ... - - -def get_display_device_name_mapping() -> dict[str, tuple[str, bool]]: ... -def get_hmonitor_by_point(x: int, y: int) -> Pointer: ... # ctypes.windll.user32.MonitorFromPoint(point, 0) diff --git a/typings/pyi_splash/__init__.pyi b/typings/pyi_splash/__init__.pyi deleted file mode 100644 index b7a573d4..00000000 --- a/typings/pyi_splash/__init__.pyi +++ /dev/null @@ -1,14 +0,0 @@ -# Referenced in: https://pyinstaller.org/en/stable/advanced-topics.html#module-pyi_splash -# https://github.com/pyinstaller/pyinstaller/blob/develop/PyInstaller/fake-modules/pyi_splash.py -from typing_extensions import Literal - -__all__ = ["CLOSE_CONNECTION", "FLUSH_CHARACTER", "is_alive", "close", "update_text"] - - -def is_alive() -> bool: ... -def update_text(msg: str) -> None: ... -def close() -> None: ... - - -CLOSE_CONNECTION: Literal[b"\u0004"] = ... -FLUSH_CHARACTER: Literal[b"\r"] = ... From af21cfddf82e0173ebe113c7e385bfde7db42546 Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sat, 29 Oct 2022 11:49:43 -0400 Subject: [PATCH 36/54] Batch fixes (#176) * pyright update * lint-and-build cover more files * Get IDirect3dDevice from LearningModelDevice Closes #175 Co-authored-by: Algomancer * Ensure we're using the right camera size And not OpenCV's default 640x480 * Fix rounding error in displayed decimal * Revert "back to windowed" This reverts commit 9553271121685d4ea3ecff2afb0dcd22d792be56. * Fix highest similarity for start image * Fix split below treshold when image is not valid * Detect gray frames from OBS-Camera Co-authored-by: Algomancer --- .github/workflows/lint-and-build.yml | 5 ++- README.md | 2 +- scripts/build.ps1 | 1 + scripts/requirements-dev.txt | 6 +-- src/AutoSplit.py | 42 +++++++++---------- .../VideoCaptureDeviceCaptureMethod.py | 35 +++++++++++++++- .../WindowsGraphicsCaptureMethod.py | 16 ++----- src/capture_method/__init__.py | 31 +++++++------- src/compare.py | 2 +- src/utils.py | 23 +++++++++- typings/cv2/cv2.pyi | 4 +- 11 files changed, 107 insertions(+), 60 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index a3b54bfb..1d43a35c 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -8,8 +8,9 @@ on: - master paths: - "**.py" - - "**.pyi" - "**.ui" + - ".github/workflows/lint-and-build.yml" + - "**/requirements.txt" pull_request: branches: - main @@ -20,6 +21,8 @@ on: - "**.py" - "**.pyi" - "**.ui" + - ".github/workflows/lint-and-build.yml" + - "**/requirements*.txt" env: GITHUB_HEAD_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name }} diff --git a/README.md b/README.md index e4b47c4c..a27a31ec 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ This program can be used to automatically start, split, and reset your preferred The smaller the selected region, the more efficient it is. - **Windows Graphics Capture** (fast, most compatible, capped at 60fps) Only available in Windows 10.0.17134 and up. - Due to current technical limitations, it requires having at least one audio or video Capture Device connected and enabled. Even if it won't be used. + Due to current technical limitations, Windows versions below 10.0.0.17763 require having at least one audio or video Capture Device connected and enabled. Allows recording UWP apps, Hardware Accelerated and Exclusive Fullscreen windows. Adds a yellow border on Windows 10 (not on Windows 11). Caps at around 60 FPS. diff --git a/scripts/build.ps1 b/scripts/build.ps1 index c3deb02d..0dd9aae5 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,6 +1,7 @@ & "$PSScriptRoot/compile_resources.ps1" pyinstaller ` --onefile ` + --windowed ` --additional-hooks-dir=Pyinstaller/hooks ` --icon=res/icon.ico ` --splash=res/splash.png ` diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt index a57d6b12..eab2e420 100644 --- a/scripts/requirements-dev.txt +++ b/scripts/requirements-dev.txt @@ -21,15 +21,11 @@ flake8-quotes flake8-simplify pep8-naming pylint>=2.14,<3.0.0 # New checks # 3.0 still in pre-release -pyright>=1.1.270 # Typeshed update +pyright>=1.1.276 # Typeshed update unify # # Run `./scripts/designer.ps1` to quickly open the bundled PyQt Designer. # Can also be downloaded externally as a non-python package qt6-applications # Types -types-d3dshot -types-keyboard -types-pyinstaller -types-pywin32 typing-extensions diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 831cfca7..93edffa3 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -89,7 +89,6 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): reset_highest_similarity = 0.0 # Ensure all other attributes are defined - start_image_split_below_threshold = False waiting_for_split_delay = False split_below_threshold = False run_start_time = 0.0 @@ -292,7 +291,7 @@ def __load_start_image(self, started_by_button: bool = False, wait_for_delay: bo self.highest_similarity = 0.0 self.reset_highest_similarity = 0.0 - self.start_image_split_below_threshold = False + self.split_below_threshold = False self.timer_start_image.start(int(1000 / self.settings_dict["fps_limit"])) QApplication.processEvents() @@ -312,26 +311,25 @@ def __start_image_function(self): if start_image_similarity > self.highest_similarity: self.highest_similarity = start_image_similarity - self.table_current_image_threshold_label.setText(decimal(start_image_threshold)) self.table_current_image_live_label.setText(decimal(start_image_similarity)) self.table_current_image_highest_label.setText(decimal(self.highest_similarity)) + self.table_current_image_threshold_label.setText(decimal(start_image_threshold)) # If the {b} flag is set, let similarity go above threshold first, then split on similarity below threshold # Otherwise just split when similarity goes above threshold + # TODO: Abstract with similar check in split image below_flag = self.start_image.check_flag(BELOW_FLAG) # Negative means belove threshold, positive means above similarity_diff = start_image_similarity - start_image_threshold - if below_flag \ - and not self.start_image_split_below_threshold \ - and similarity_diff >= 0: - self.start_image_split_below_threshold = True + if below_flag and not self.split_below_threshold and similarity_diff >= 0: + self.split_below_threshold = True return - if (below_flag and self.start_image_split_below_threshold and similarity_diff < 0) \ - or (not below_flag and similarity_diff >= 0): + if (below_flag and self.split_below_threshold and similarity_diff < 0 and is_valid_image(capture)) \ + or (not below_flag and similarity_diff >= 0): # pylint: disable=too-many-boolean-expressions self.timer_start_image.stop() - self.start_image_split_below_threshold = False + self.split_below_threshold = False # delay start image if needed if self.start_image.get_delay_time(self) > 0: @@ -410,6 +408,7 @@ def __check_fps(self): while count < CHECK_FPS_ITERATIONS: capture, is_old_image = self.__get_capture_for_comparison() _ = image.compare_with_capture(self, capture) + # TODO: If is_old_image=true is always returned, this becomes an infinite loop if not is_old_image: count += 1 @@ -648,12 +647,14 @@ def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_ frame_interval: float = 1 / self.settings_dict["fps_limit"] wait_delta = int(frame_interval - (time() - start) % frame_interval) + below_flag = self.split_image.check_flag(BELOW_FLAG) # if the b flag is set, let similarity go above threshold first, # then split on similarity below threshold. # if no b flag, just split when similarity goes above threshold. + # TODO: Abstract with similar check in start image if not self.waiting_for_split_delay: if similarity >= self.split_image.get_similarity_threshold(self): - if not self.split_image.check_flag(BELOW_FLAG): + if not below_flag: break if not self.split_below_threshold: self.split_below_threshold = True @@ -661,7 +662,7 @@ def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_ continue elif ( # pylint: disable=confusing-consecutive-elif - self.split_image.check_flag(BELOW_FLAG) and self.split_below_threshold + below_flag and self.split_below_threshold and is_valid_image(capture) ): self.split_below_threshold = False break @@ -813,12 +814,15 @@ def __reset_if_should(self, capture: cv2.Mat | None): return self.__check_for_reset_state_update_ui() def __update_split_image(self, specific_image: AutoSplitImage | None = None): - # Splitting/skipping when there are no images left or Undoing past the first image # Start image is expected to be out of range (index 0 of 0-length array) - if (not specific_image or specific_image.image_type != ImageType.START) \ - and self.__is_current_split_out_of_range(): - self.reset() - return + if not specific_image or specific_image.image_type != ImageType.START: + # need to reset highest_similarity and split_below_threshold each time an image updates. + self.highest_similarity = 0.0 + self.split_below_threshold = False + # Splitting/skipping when there are no images left or Undoing past the first image + if self.__is_current_split_out_of_range(): + self.reset() + return # Get split image self.split_image = specific_image or self.split_images_and_loop_number[0 + self.split_image_number][0] @@ -835,10 +839,6 @@ def __update_split_image(self, specific_image: AutoSplitImage | None = None): loop_tuple = self.split_images_and_loop_number[self.split_image_number] self.image_loop_value_label.setText(f"{loop_tuple[1]}/{loop_tuple[0].loops}") - self.highest_similarity = 0.0 - # need to set split below threshold to false each time an image updates. - self.split_below_threshold = False - def closeEvent(self, a0: QtGui.QCloseEvent | None = None): """ Exit safely when closing the window diff --git a/src/capture_method/VideoCaptureDeviceCaptureMethod.py b/src/capture_method/VideoCaptureDeviceCaptureMethod.py index ed0759f3..f15fe082 100644 --- a/src/capture_method/VideoCaptureDeviceCaptureMethod.py +++ b/src/capture_method/VideoCaptureDeviceCaptureMethod.py @@ -4,6 +4,7 @@ from typing import TYPE_CHECKING import cv2 +from pygrabber import dshow_graph from capture_method.CaptureMethodBase import CaptureMethodBase from error_messages import CREATE_NEW_ISSUE_MESSAGE, exception_traceback @@ -12,6 +13,19 @@ if TYPE_CHECKING: from AutoSplit import AutoSplit +OBS_CAMERA_BLANK = [127, 129, 128] + + +def is_blank(image: cv2.Mat): + # Running np.all on the entire array is extremely slow. + # Because it always converts the entire array to boolean first + # So instead we loop manually to stop early. + for row in image: + for pixel in row: + if all(pixel != OBS_CAMERA_BLANK): + return False + return True + class VideoCaptureDeviceCaptureMethod(CaptureMethodBase): capture_device: cv2.VideoCapture @@ -35,7 +49,14 @@ def __read_loop(self, autosplit: AutoSplit): # STS_ERROR most likely means the camera is occupied result = False image = None - self.last_captured_frame = image if result else None + if not result: + image = None + + # Blank frame. Reuse the previous one. + if image is not None and is_blank(image): + continue + + self.last_captured_frame = image self.is_old_image = False except Exception as exception: # pylint: disable=broad-except # We really want to catch everything here error = exception @@ -51,8 +72,20 @@ def __read_loop(self, autosplit: AutoSplit): def __init__(self, autosplit: AutoSplit): super().__init__() + filter_graph = dshow_graph.FilterGraph() + filter_graph.add_video_input_device(autosplit.settings_dict["capture_device_id"]) + width, height = filter_graph.get_input_device().get_current_format() + filter_graph.remove_filters() + self.capture_device = cv2.VideoCapture(autosplit.settings_dict["capture_device_id"]) self.capture_device.setExceptionMode(True) + # Ensure we're using the right camera size. And not OpenCV's default 640x480 + try: + self.capture_device.set(cv2.CAP_PROP_FRAME_WIDTH, width) + self.capture_device.set(cv2.CAP_PROP_FRAME_HEIGHT, height) + # Some cameras don't allow changing the resolution + except cv2.error: + pass self.stop_thread = Event() self.capture_thread = Thread(target=lambda: self.__read_loop(autosplit)) self.capture_thread.start() diff --git a/src/capture_method/WindowsGraphicsCaptureMethod.py b/src/capture_method/WindowsGraphicsCaptureMethod.py index b5ca8abd..35874999 100644 --- a/src/capture_method/WindowsGraphicsCaptureMethod.py +++ b/src/capture_method/WindowsGraphicsCaptureMethod.py @@ -11,10 +11,9 @@ from winsdk.windows.graphics.capture.interop import create_for_window from winsdk.windows.graphics.directx import DirectXPixelFormat from winsdk.windows.graphics.imaging import BitmapBufferAccessMode, SoftwareBitmap -from winsdk.windows.media.capture import MediaCapture from capture_method.CaptureMethodBase import CaptureMethodBase -from utils import WINDOWS_BUILD_NUMBER, is_valid_hwnd +from utils import WINDOWS_BUILD_NUMBER, get_direct3d_device, is_valid_hwnd if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -33,19 +32,10 @@ def __init__(self, autosplit: AutoSplit): super().__init__(autosplit) if not is_valid_hwnd(autosplit.hwnd): return - # Note: Must create in the same thread (can't use a global) otherwise when ran from LiveSplit it will raise: - # OSError: The application called an interface that was marshalled for a different thread - media_capture = MediaCapture() - item = create_for_window(autosplit.hwnd) - - async def coroutine(): - await (media_capture.initialize_async() or asyncio.sleep(0)) - asyncio.run(coroutine()) - if not media_capture.media_capture_settings: - raise OSError("Unable to initialize a Direct3D Device.") + item = create_for_window(autosplit.hwnd) frame_pool = Direct3D11CaptureFramePool.create_free_threaded( - media_capture.media_capture_settings.direct3_d11_device, + get_direct3d_device(), DirectXPixelFormat.B8_G8_R8_A8_UINT_NORMALIZED, 1, item.size, diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 1d051b5a..d8de71e0 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -7,7 +7,6 @@ from typing import TYPE_CHECKING, TypedDict from pygrabber import dshow_graph -from winsdk.windows.media.capture import MediaCapture from capture_method.BitBltCaptureMethod import BitBltCaptureMethod from capture_method.CaptureMethodBase import CaptureMethodBase @@ -15,13 +14,15 @@ from capture_method.ForceFullContentRenderingCaptureMethod import ForceFullContentRenderingCaptureMethod from capture_method.VideoCaptureDeviceCaptureMethod import VideoCaptureDeviceCaptureMethod from capture_method.WindowsGraphicsCaptureMethod import WindowsGraphicsCaptureMethod -from utils import WINDOWS_BUILD_NUMBER +from utils import WINDOWS_BUILD_NUMBER, get_direct3d_device if TYPE_CHECKING: from AutoSplit import AutoSplit WGC_MIN_BUILD = 17134 """https://docs.microsoft.com/en-us/uwp/api/windows.graphics.capture.graphicscapturepicker#applies-to""" +LEARNING_MODE_DEVICE_BUILD = 17763 +"""https://learn.microsoft.com/en-us/uwp/api/windows.ai.machinelearning.learningmodeldevice""" class Region(TypedDict): @@ -121,8 +122,8 @@ def __getitem__(self, key: CaptureMethodEnum): short_description="fast, most compatible, capped at 60fps", description=( f"\nOnly available in Windows 10.0.{WGC_MIN_BUILD} and up. " - "\nDue to current technical limitations, it requires having at least one " - "\naudio or video Capture Device connected and enabled. Even if it won't be used. " + f"\nDue to current technical limitations, Windows versions below 10.0.0.{LEARNING_MODE_DEVICE_BUILD}" + "\nrequire having at least one audio or video Capture Device connected and enabled." "\nAllows recording UWP apps, Hardware Accelerated and Exclusive Fullscreen windows. " "\nAdds a yellow border on Windows 10 (not on Windows 11)." "\nCaps at around 60 FPS. " @@ -166,21 +167,18 @@ def __getitem__(self, key: CaptureMethodEnum): }) -def test_for_media_capture(): - async def coroutine(): - return await (MediaCapture().initialize_async() or asyncio.sleep(0)) +def try_get_direct3d_device(): try: - asyncio.run(coroutine()) - return True + return get_direct3d_device() except OSError: - return False + return None # Detect and remove unsupported capture methods if ( # Windows Graphics Capture requires a minimum Windows Build WINDOWS_BUILD_NUMBER < WGC_MIN_BUILD - # Our current implementation of Windows Graphics Capture requires at least one CaptureDevice - or not test_for_media_capture() + # Our current implementation of Windows Graphics Capture does not ensure we can get an ID3DDevice + or not try_get_direct3d_device() ): CAPTURE_METHODS.pop(CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE) @@ -202,10 +200,12 @@ class CameraInfo(): name: str occupied: bool backend: str + size: tuple[int, int] async def get_all_video_capture_devices() -> list[CameraInfo]: - named_video_inputs = dshow_graph.FilterGraph().get_input_devices() + filter_graph = dshow_graph.FilterGraph() + named_video_inputs = filter_graph.get_input_devices() async def get_camera_info(index: int, device_name: str): backend = "" @@ -225,7 +225,10 @@ async def get_camera_info(index: int, device_name: str): # else None # finally: # video_capture.release() - return CameraInfo(index, device_name, False, backend) + filter_graph.add_video_input_device(index) + size = filter_graph.get_input_device().get_current_format() + filter_graph.remove_filters() + return CameraInfo(index, device_name, False, backend, size) future = asyncio.gather( *[ diff --git a/src/compare.py b/src/compare.py index 28061777..1e14160f 100644 --- a/src/compare.py +++ b/src/compare.py @@ -47,7 +47,7 @@ def compare_l2_norm(source: cv2.Mat, capture: cv2.Mat, mask: cv2.Mat | None = No error = cv2.norm(source, capture, cv2.NORM_L2, mask) # The L2 Error is summed across all pixels, so this normalizes - max_error = (source.size ** 0.5) * MAXBYTE \ + max_error: float = (source.size ** 0.5) * MAXBYTE \ if not is_valid_image(mask)\ else (3 * np.count_nonzero(mask) * MAXBYTE * MAXBYTE) ** 0.5 diff --git a/src/utils.py b/src/utils.py index 31266caa..2e986e3d 100644 --- a/src/utils.py +++ b/src/utils.py @@ -12,6 +12,8 @@ import cv2 from win32 import win32gui +from winsdk.windows.ai.machinelearning import LearningModelDevice, LearningModelDeviceKind +from winsdk.windows.media.capture import MediaCapture from gen.build_vars import AUTOSPLIT_BUILD_NUMBER, AUTOSPLIT_GITHUB_REPOSITORY @@ -22,7 +24,9 @@ def decimal(value: int | float): - return f"{int(value * 100) / 100:.2f}" + # NOTE: The coeficient (1000) has to be above what's mathematically necessary (100) + # because of python float rounding errors (ie: xx.99999999999999) + return f"{int(value * 1000) / 1000:.2f}" def is_digit(value: str | int | None): @@ -76,6 +80,23 @@ def get_window_bounds(hwnd: int) -> tuple[int, int, int, int]: return window_left_bounds, window_top_bounds, window_width, window_height +def get_direct3d_device(): + direct_3d_device = LearningModelDevice(LearningModelDeviceKind.DIRECT_X_HIGH_PERFORMANCE).direct3_d11_device + if not direct_3d_device: + # Note: Must create in the same thread (can't use a global) otherwise when ran from LiveSplit it will raise: + # OSError: The application called an interface that was marshalled for a different thread + media_capture = MediaCapture() + + async def coroutine(): + await (media_capture.initialize_async() or asyncio.sleep(0)) + asyncio.run(coroutine()) + direct_3d_device = media_capture.media_capture_settings and \ + media_capture.media_capture_settings.direct3_d11_device + if not direct_3d_device: + raise OSError("Unable to initialize a Direct3D Device.") + return direct_3d_device + + def fire_and_forget(func: Callable[..., Any]): """ Runs synchronous function asynchronously without waiting for a response diff --git a/typings/cv2/cv2.pyi b/typings/cv2/cv2.pyi index 7cb1e09c..5d07549a 100644 --- a/typings/cv2/cv2.pyi +++ b/typings/cv2/cv2.pyi @@ -2857,7 +2857,7 @@ class VideoCapture: def __init__(self, index: int) -> None: ... @overload def __init__(self, index: int, apiPreference: int | None, params: Sequence[int] = ...) -> None: ... - def get(self, propId: int) -> int: ... + def get(self, propId: int) -> float: ... def getBackendName(self) -> str: ... def getExceptionMode(self) -> bool: ... def grab(self) -> bool: ... @@ -2879,7 +2879,7 @@ class VideoCapture: def retrieve(self, image: None = ..., flag: int = ...) -> tuple[bool, Mat]: ... @overload def retrieve(self, image: _TUMat, flag: int = ...) -> tuple[bool, _TUMat]: ... - def set(self, propId: int, value: int) -> bool: ... + def set(self, propId: int, value: float) -> bool: ... def setExceptionMode(self, enable: bool) -> None: ... From 58731174f6e8e4ac7df7138077c4d9f6b22221e2 Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sat, 29 Oct 2022 11:50:36 -0400 Subject: [PATCH 37/54] Adaptive resizing for masked images (#177) Especially in the case of 1080p or higher, if the non-transparent area of the mask image used for the split is small, resizing the entire image to 320x240 will lose the information inside the mask. One idea to prevent this is to adaptively determine the target size according to the number of nonzero elements in the alpha channel of the split image. At least for the L2 norm and histogram, such a change would not affect performance since they only use information about the mask's interior. Masks are not recommended with pHash anyway. Co-authored-by: zalgo3 --- src/AutoSplit.py | 9 ++------- src/AutoSplitImage.py | 34 ++++++++++++++++++++++++++-------- src/compare.py | 5 ++--- typings/cv2/cv2.pyi | 4 ++-- 4 files changed, 32 insertions(+), 20 deletions(-) diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 93edffa3..0a1298c2 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -19,7 +19,7 @@ import error_messages import user_profile from AutoControlledWorker import AutoControlledWorker -from AutoSplitImage import COMPARISON_RESIZE, START_KEYWORD, AutoSplitImage, ImageType +from AutoSplitImage import START_KEYWORD, AutoSplitImage, ImageType from capture_method import CaptureMethodBase, CaptureMethodEnum from gen import about, design, settings, update_checker from hotkeys import HOTKEYS, after_setting_hotkey, send_command @@ -772,12 +772,7 @@ def __get_capture_for_comparison(self): if recovered: capture, _ = self.capture_method.get_frame(self) - return ( - None - if not is_valid_image(capture) - else cv2.resize(capture, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST), - is_old_image, - ) + return capture, is_old_image def __reset_if_should(self, capture: cv2.Mat | None): """ diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index 1bdd64be..cd65bb7f 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -19,8 +19,9 @@ COMPARISON_RESIZE_WIDTH = 320 COMPARISON_RESIZE_HEIGHT = 240 COMPARISON_RESIZE = (COMPARISON_RESIZE_WIDTH, COMPARISON_RESIZE_HEIGHT) -LOWER_BOUND = np.array([0, 0, 0, 1], dtype="uint8") -UPPER_BOUND = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") +COMPARISON_RESIZE_AREA = COMPARISON_RESIZE_WIDTH * COMPARISON_RESIZE_HEIGHT +MASK_LOWER_BOUND = np.array([1], dtype="uint8") +MASK_UPPER_BOUND = np.array([MAXBYTE], dtype="uint8") START_KEYWORD = "start_auto_splitter" RESET_KEYWORD = "reset" @@ -108,15 +109,31 @@ def __read_image_bytes(self, path: str): error_messages.image_type(path) return - image = cv2.resize(image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) self._has_transparency = check_if_image_has_transparency(image) # If image has transparency, create a mask if self._has_transparency: - # Create mask based on resized, nearest neighbor interpolated split image - self.mask = cv2.inRange(image, LOWER_BOUND, UPPER_BOUND) - # Add Alpha channel if missing - elif image.shape[2] == 3: - image = cv2.cvtColor(image, cv2.COLOR_BGR2BGRA) + # Adaptively determine the target size according to + # the number of nonzero elements in the alpha channel of the split image. + # This may result in images bigger than COMPARISON_RESIZE if there's plenty of transparency. + # Which wouldn't incur any performance loss in methods where masked regions are ignored. + alpha_channel = image[:, :, 3] + scale = min(1, (COMPARISON_RESIZE_AREA / cv2.countNonZero(alpha_channel)) ** 0.5) + + image = cv2.resize( + image, + dsize=None, + fx=scale, + fy=scale, + interpolation=cv2.INTER_NEAREST, + ) + + # Mask based on adaptively resized, nearest neighbor interpolated split image + self.mask = cv2.inRange(alpha_channel, MASK_LOWER_BOUND, MASK_UPPER_BOUND) + else: + image = cv2.resize(image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) + # Add Alpha channel if missing + if image.shape[2] == 3: + image = cv2.cvtColor(image, cv2.COLOR_BGR2BGRA) self.byte_array = image @@ -134,6 +151,7 @@ def compare_with_capture( if not is_valid_image(self.byte_array) or not is_valid_image(capture): return 0.0 + capture = cv2.resize(capture, self.byte_array.shape[1::-1]) comparison_method = self.__get_comparison_method(default) if comparison_method == 0: return compare_l2_norm(self.byte_array, capture, self.mask) diff --git a/src/compare.py b/src/compare.py index 1e14160f..445bdff0 100644 --- a/src/compare.py +++ b/src/compare.py @@ -2,7 +2,6 @@ import cv2 import imagehash -import numpy as np from PIL import Image from win32con import MAXBYTE @@ -49,7 +48,7 @@ def compare_l2_norm(source: cv2.Mat, capture: cv2.Mat, mask: cv2.Mat | None = No # The L2 Error is summed across all pixels, so this normalizes max_error: float = (source.size ** 0.5) * MAXBYTE \ if not is_valid_image(mask)\ - else (3 * np.count_nonzero(mask) * MAXBYTE * MAXBYTE) ** 0.5 + else (3 * cv2.countNonZero(mask) * MAXBYTE * MAXBYTE) ** 0.5 if not max_error: return 0.0 @@ -75,7 +74,7 @@ def compare_template(source: cv2.Mat, capture: cv2.Mat, mask: cv2.Mat | None = N # that the value can be. Used for normalizing from 0 to 1. max_error = source.size * MAXBYTE * MAXBYTE \ if not is_valid_image(mask) \ - else np.count_nonzero(mask) + else cv2.countNonZero(mask) return 1 - (min_val / max_error) diff --git a/typings/cv2/cv2.pyi b/typings/cv2/cv2.pyi index 5d07549a..a3c433bb 100644 --- a/typings/cv2/cv2.pyi +++ b/typings/cv2/cv2.pyi @@ -4391,7 +4391,7 @@ def cornerHarris(src: Mat, blockSize, ksize, k, dst: Mat = ..., borderType=...) def cornerMinEigenVal(src: Mat, blockSize, dst: Mat = ..., ksize=..., borderType=...) -> _dst: ... def cornerSubPix(image: Mat, corners, winSize, zeroZone, criteria) -> _corners: ... def correctMatches(F, points1, points2, newPoints1=..., newPoints2=...) -> tuple[_newPoints1, _newPoints2]: ... -def countNonZero(src): ... +def countNonZero(src: Mat | _NumericScalar) -> int: ... def createAlignMTB(max_bits=..., exclude_range=..., cut=...): ... def createBackgroundSubtractorKNN(history=..., dist2Threshold=..., detectShadows=...): ... def createBackgroundSubtractorMOG2(history=..., varThreshold=..., detectShadows=...): ... @@ -4948,7 +4948,7 @@ def reprojectImageTo3D(disparity, Q, _3dImage=..., handleMissingValues=..., ddep def resize( - src: Mat, dsize: _Size, dst: Mat = ..., fx: float = ..., + src: Mat | int | bool, dsize: _Size | None, dst: Mat | _NumericScalar = ..., fx: float = ..., fy: float = ..., interpolation: int = ..., ) -> Mat: ... From d1d8247cb69407dc34b1f89ae197e10a6219d752 Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sat, 29 Oct 2022 11:51:26 -0400 Subject: [PATCH 38/54] Bump opencv-python to 4.6 (#178) --- scripts/requirements.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 89f1fd78..d425896f 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -14,7 +14,7 @@ certifi ImageHash>=4.3.1 # Contains type information + setup as package not module keyboard numpy>=1.23 # Updated types -opencv-python-headless>=4.5.4,<4.6 # https://github.com/pyinstaller/pyinstaller/issues/6889 +opencv-python-headless>=4.6 # Breaking changes importing cv2.cv2 packaging Pillow>=7.2.0 # https://github.com/SerpentAI/D3DShot/issues/44 psutil @@ -29,5 +29,6 @@ pywin32>=301 winsdk>=v1.0.0b4 # # Build and compile resources -PyInstaller +PyInstaller>=5.2 # opencv-python 4.6 support +pyinstaller-hooks-contrib>=2022.9 # opencv-python 4.6 support. Changes for pywintypes and comtypes PySide6 From a698ec8dbd85c12a394bf699bf0a5e9ee5e0c03b Mon Sep 17 00:00:00 2001 From: Samuel T Date: Sat, 29 Oct 2022 13:53:12 -0400 Subject: [PATCH 39/54] Point python_grabber to andreaschiavinato (#179) --- scripts/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/requirements.txt b/scripts/requirements.txt index d425896f..96b20edb 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -19,7 +19,7 @@ packaging Pillow>=7.2.0 # https://github.com/SerpentAI/D3DShot/issues/44 psutil PyAutoGUI -git+https://github.com/Avasam/python_grabber.git@complete-types#egg=pygrabber # https://github.com/andreaschiavinato/python_grabber/pull/18 +git+https://github.com/andreaschiavinato/python_grabber.git#egg=pygrabber # Completed types PyQt6>=6.2.1 # Python 3.10 support requests toml From aa975fa999dfef7e67d1da37c03ba29334e0d6e9 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 19 Nov 2022 10:37:10 -0500 Subject: [PATCH 40/54] Batch of updates and fixes for 2.0.0 (#188) * Point python_grabber to andreaschiavinato * Added summary of histogram * Backport changes from linux branch * Improved pyright and formatters usage * Config updates * Fix links * Disable next/previous while delaying * proper `is_running` variable * Fix loading and clearing of start image * Rename "already_running" to "already_open" * Fix delay intervals * Add support for start image pause time * Default to MediaCapture's d3d * Re-enable buttons after delay * Beta 1 (feature-freeze, bugfixes only) --- .flake8 | 9 +- .github/workflows/lint-and-build.yml | 12 +- .vscode/extensions.json | 5 + .vscode/settings.json | 18 +- README.md | 16 +- build instructions.md | 25 +++ pyproject.toml | 28 ++- res/about.ui | 6 +- res/design.ui | 40 ++-- res/settings.ui | 6 +- scripts/build.ps1 | 16 +- scripts/install.ps1 | 7 +- scripts/lint.ps1 | 2 +- scripts/requirements-dev.txt | 14 +- scripts/requirements.txt | 19 +- src/AutoSplit.py | 96 ++++++---- src/AutoSplitImage.py | 3 +- src/capture_method/BitBltCaptureMethod.py | 1 + src/capture_method/CaptureMethodBase.py | 2 + .../DesktopDuplicationCaptureMethod.py | 1 - .../VideoCaptureDeviceCaptureMethod.py | 4 +- src/capture_method/__init__.py | 177 +++++++++--------- src/compare.py | 9 +- src/error_messages.py | 25 ++- src/hotkeys.py | 95 +++++----- src/menu_bar.py | 21 +-- src/region_selection.py | 47 +++-- src/user_profile.py | 17 +- src/utils.py | 79 ++++++-- 29 files changed, 479 insertions(+), 321 deletions(-) create mode 100644 build instructions.md diff --git a/.flake8 b/.flake8 index f6b15399..01e8f922 100644 --- a/.flake8 +++ b/.flake8 @@ -5,16 +5,14 @@ max-line-length=120 exclude=src/gen/, typings/cv2-stubs/__init__.pyi ignore= W503, ; Linebreak before binary operator + E124, ; Closing bracket may not match multi-line method invocation style (enforced by add-trailing-comma) E402, ; Allow imports at the bottom of file Y026, ; Not using typing_extensions SIM105, ; contextlib.suppress is roughly 3x slower than try/except CCE001, ; False positives for attribute docstrings per-file-ignores= - ; Docstrings in type stubs - ; Function bodys contain other than just ... (eg: raise) - ; Single quote docstrings - typings/cv2-stubs/__init__.pyi: Q000,E704,E501,N8,A001,A002,A003,CCE002,F401, Y021,Y010,Q002 ; Quotes + ; Allow ... on same line as class ; Allow ... on same line as def ; Line too long ; Naming conventions can't be controlled for external libraries @@ -23,7 +21,8 @@ per-file-ignores= ; Attribute names can't be controlled for external libraries ; False positive Class level expression with elipsis ; Type re-exports - *.pyi: Q000,E704,E501,N8,A001,A002,A003,CCE002,F401 + ; mypy 3.7 Union issue + *.pyi: Q000,E701,E704,E501,N8,A001,A002,A003,CCE002,F401,Y037 ; PyQt methods ignore-names=closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent ; McCabe max-complexity is also taken care of by Pylint and doesn't fail the build there diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 1d43a35c..126b6f4c 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -47,13 +47,12 @@ jobs: runs-on: windows-latest strategy: fail-fast: false + # Pyright is version and platform sensible matrix: python-version: ["3.9", "3.10"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} uses: actions/checkout@v3 - - name: Set up Node - uses: actions/setup-node@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: @@ -63,11 +62,15 @@ jobs: - run: scripts/install.ps1 shell: pwsh - name: Analysing the code with Pyright - run: pyright src/ --warnings + uses: jakebailey/pyright-action@v1 + with: + working-directory: src/ + extra-args: --warnings Pylint: runs-on: windows-latest strategy: fail-fast: false + # Pylint is version and platform sensible matrix: python-version: ["3.9", "3.10"] steps: @@ -87,6 +90,7 @@ jobs: runs-on: windows-latest strategy: fail-fast: false + # Flake8 is tied to the version of Python on which it runs. Platform checks are ignored matrix: python-version: ["3.9", "3.10"] steps: @@ -103,6 +107,7 @@ jobs: - name: Analysing the code with Flake8 run: flake8 src/ typings/ Bandit: + # Bandit only matters on the version deployed. Platform checks are ignored runs-on: windows-latest steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} @@ -121,6 +126,7 @@ jobs: runs-on: windows-latest strategy: fail-fast: false + # Only the Python version we plan on shipping matters. matrix: python-version: ["3.10"] steps: diff --git a/.vscode/extensions.json b/.vscode/extensions.json index d09fadc3..d2d596de 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -4,7 +4,10 @@ "bungcip.better-toml", "davidanson.vscode-markdownlint", "eamodio.gitlens", + "emeraldwalk.runonsave", + "ms-python.autopep8", "ms-python.flake8", + "ms-python.isort", "ms-python.pylint", "ms-python.python", "ms-python.vscode-pylance", @@ -18,6 +21,8 @@ // Must disable in this workspace // // https://github.com/microsoft/vscode/issues/40239 // // + // We use autopep8 + "ms-python.black-formatter", // VSCode has implemented an optimized version "coenraads.bracket-pair-colorizer", "coenraads.bracket-pair-colorizer-2", diff --git a/.vscode/settings.json b/.vscode/settings.json index c5b9d108..d6d1feeb 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -23,6 +23,18 @@ "trailing-spaces.syntaxIgnore": [ "markdown" ], + "emeraldwalk.runonsave": { + "commands": [ + { + "match": "\\.pyi?", + "cmd": "unify ${file} --in-place --quote=\"\\\"\"" + }, + { + "match": "\\.pyi?", + "cmd": "add-trailing-comma ${file} --py36-plus" + }, + ] + }, "files.associations": { "*.json": "json", "extensions.json": "jsonc", @@ -47,15 +59,18 @@ "*.lock": true, }, "[python]": { + // Cannot use autotpep8 until https://github.com/microsoft/vscode-autopep8/issues/32 is fixed + "editor.defaultFormatter": "ms-python.python", "editor.tabSize": 4, "editor.rulers": [ 72, // PEP8-17 docstrings // 79, // PEP8-17 default max // 88, // Black default - 99, // PEP8-17 acceptable max + // 99, // PEP8-17 acceptable max 120, // Our hard rule ], }, + "python.formatting.provider": "autopep8", "python.analysis.diagnosticMode": "workspace", "python.linting.enabled": true, // Use the new Pylint extension instead @@ -115,6 +130,7 @@ "powershell.codeFormatting.useCorrectCasing": true, "powershell.codeFormatting.whitespaceBetweenParameters": true, "powershell.integratedConsole.showOnStartup": false, + "terminal.integrated.defaultProfile.windows": "PowerShell", "xml.codeLens.enabled": true, "xml.format.spaceBeforeEmptyCloseTag": false, } diff --git a/README.md b/README.md index a27a31ec..6f21235c 100644 --- a/README.md +++ b/README.md @@ -27,17 +27,8 @@ This program can be used to automatically start, split, and reset your preferred ### Building -(This is not required for normal use) - -- Python 3.9 - 3.10. -- Microsoft Visual C++ 14.0 or greater may be required to build the executable. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/). - -- Read [requirements.txt](/scripts/requirements.txt) for more information on how to install, run and build the python code. - - Run `./scripts/install.ps1` to install all dependencies. - - Run the app directly with `./scripts/start.ps1 [--auto-controlled]`. - - Run `./scripts/build.ps1` to build an executable. -- Recompile resources after modifications by running `./scripts/compile_resources.ps1`. -- All configured for VSCode, including Run (F5) and Build (Ctrl+Shift+B) commands. +(This is not required for normal use) +Refer to the [build instructions](build%20instructions.md) if you'd like to build the application yourself or run it directly in Python. ## OPTIONS @@ -72,6 +63,7 @@ This program can be used to automatically start, split, and reset your preferred - There are three comparison methods to choose from: L2 Norm, Histograms, and Perceptual Hash (or pHash). - L2 Norm: This method should be fine to use for most cases. It finds the difference between each pixel, squares it, sums it over the entire image and takes the square root. This is very fast but is a problem if your image is high frequency. Any translational movement or rotation can cause similarity to be very different. - Histograms: An explanation on Histograms comparison can be found [here](https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html). This is a great method to use if you are using several masked images. + > This algorithm is particular reliable when the colour is a strong predictor of the object identity. The histogram intersection [...] is robust to occluding objects in the foreground. - Perceptual Hash: An explanation on pHash comparison can be found [here](http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html). It is highly recommended to NOT use pHash if you use masked images. It is very inaccurate. #### Capture Method @@ -224,7 +216,7 @@ The AutoSplit LiveSplit Component will directly connect AutoSplit with LiveSplit - Place the .dll file into your `[...]\LiveSplit\Components` folder. - Open LiveSplit -> Right Click -> Edit Layout -> Plus Button -> Control -> AutoSplit Integration. - Click Layout Settings -> AutoSplit Integration -- Click the Browse buttons to locate your AutoSplit Path (path to AutoSplit.exe) and Profile Path (path to your AutoSplit `.toml` profile file) respectively. +- Click the Browse buttons to locate your AutoSplit Path (path to AutoSplit executable) and Profile Path (path to your AutoSplit `.toml` profile file) respectively. - If you have not yet set saved a profile, you can do so using AutoSplit, and then go back and set your Settings Path. - Once set, click OK, and then OK again to close the Layout Editor. Right click LiveSplit -> Save Layout to save your layout. AutoSplit and your selected profile will now open automatically when opening that LiveSplit Layout `.lsl` file. diff --git a/build instructions.md b/build instructions.md new file mode 100644 index 00000000..d40c8317 --- /dev/null +++ b/build instructions.md @@ -0,0 +1,25 @@ +# Install and Build instructions + +## Requirements + +### Windows + +- Microsoft Visual C++ 14.0 or greater may be required to build the executable. Get it with [Microsoft C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/). + +### All platforms + +- [Python](https://www.python.org/downloads/) 3.9+. +- [Node](https://nodejs.org) is optional, but required for complete linting. + - Alternatively you can install the [pyright python wrapper](https://pypi.org/project/pyright/) which has a bit of an overhead delay. +- [VSCode](https://code.visualstudio.com/Download) is not required, but highly recommended. + - Everything already configured in the workspace, including Run (F5) and Build (Ctrl+Shift+B) commands, default shell, and recommended extensions. + - [PyCharm](https://www.jetbrains.com/pycharm/) is also a good Python IDE, but nothing is configured. If you are a PyCharm user, feel free to open a PR with all necessary workspace configurations! + +## Install and Build steps + +- Read [requirements.txt](/scripts/requirements.txt) for more information on how to install, run and build the python code. + - Run `./scripts/install.ps1` to install all dependencies. + - Run the app directly with `./scripts/start.ps1 [--auto-controlled]`. + - Or debug by pressing `F5` in VSCode + - Run `./scripts/build.ps1` or press `CTRL+Shift+B` in VSCode to build an executable. +- Recompile resources after modifications by running `./scripts/compile_resources.ps1`. diff --git a/pyproject.toml b/pyproject.toml index 06a851a6..d7fe7563 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,19 +4,22 @@ max_line_length = 120 recursive = true aggressive = 3 -ignore = ["E70"] # Allow ... on same line as def +ignore = [ + "E124", # Closing bracket may not match multi-line method invocation style (enforced by add-trailing-comma) + "E70" # Allow ... on same line as def +] # https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file [tool.pyright] typeCheckingMode = "strict" # Extra strict -reportImplicitStringConcatenation="error" -reportCallInDefaultInitializer="error" -reportMissingSuperCall="none" # False positives on base classes -reportPropertyTypeMismatch="error" -reportUninitializedInstanceVariable="error" -reportUnnecessaryTypeIgnoreComment="error" +reportImplicitStringConcatenation = "error" +reportCallInDefaultInitializer = "error" +reportMissingSuperCall = "none" # False positives on base classes +reportPropertyTypeMismatch = "error" +reportUninitializedInstanceVariable = "error" +reportUnnecessaryTypeIgnoreComment = "error" # Exclude from scanning when running pyright exclude = [ # Auto generated, produces unecessary `# type: ignore` @@ -27,7 +30,7 @@ ignore = [ # We expect stub files to be incomplete or contain useless statements "**/*.pyi", ] -reportUnusedCallResult="none" +reportUnusedCallResult = "none" # Type stubs may not be completable reportMissingTypeStubs = "warning" # False positives with TYPE_CHECKING @@ -105,13 +108,6 @@ max-branches = 15 valid-classmethod-first-arg = "self" # https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles module-naming-style = "any" -# Can't make private class with PascalCase -class-rgx = "_?_?[a-zA-Z]+?$" -good-names = [ - # PyQt methods - "closeEvent", "paintEvent", "keyPressEvent", "mousePressEvent", "mouseMoveEvent", "mouseReleaseEvent", - # https://github.com/PyCQA/pylint/issues/2018 - "id", "x", "y", "a0", "i", "t0", "t1"] disable = [ # No need to mention the fixmes "fixme", @@ -121,6 +117,8 @@ disable = [ "unused-import", "wrong-import-order", "wrong-import-position", + # Already taken care of by Flake8-naming, which does a better job + "invalid-name", # Already taken care of and grayed out. Also conflicts with Pylance reportIncompatibleMethodOverride "unused-argument", # Only reports a single instance. Pyright does a better job anyway diff --git a/res/about.ui b/res/about.ui index 04ff482c..5aa56a75 100644 --- a/res/about.ui +++ b/res/about.ui @@ -32,7 +32,9 @@
- :/resources/icon.ico:/resources/icon.ico + :/resources/icon.ico + :/resources/icon.ico + @@ -101,7 +103,7 @@ Thank you! - + <html><head/><body><p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=BYRHQG69YRHBA&amp;item_name=AutoSplit+development&amp;currency_code=USD&amp;source=url"><img src=":/resources/btn_donateCC_LG.png"/></a></p></body></html> :/resources/btn_donateCC_LG.png diff --git a/res/design.ui b/res/design.ui index 03aa78f7..7d67e0e0 100644 --- a/res/design.ui +++ b/res/design.ui @@ -32,21 +32,26 @@ - :/resources/icon.ico:/resources/icon.ico + :/resources/icon.ico + :/resources/icon.ico + - 30 + 11 143 - 7 - 16 + 44 + 20 X + + Qt::AlignCenter + @@ -235,28 +240,34 @@ - 17 + 11 183 - 33 - 16 + 44 + 20 Width + + Qt::AlignCenter + - 70 + 66 183 - 41 - 16 + 44 + 20 Height + + Qt::AlignCenter + @@ -416,15 +427,18 @@ - 85 + 66 143 - 7 - 16 + 44 + 20 Y + + Qt::AlignCenter + diff --git a/res/settings.ui b/res/settings.ui index ecc0a9d7..cec1678a 100644 --- a/res/settings.ui +++ b/res/settings.ui @@ -32,7 +32,9 @@ - :/resources/icon.ico:/resources/icon.ico + :/resources/icon.ico + :/resources/icon.ico + @@ -200,6 +202,8 @@ Histograms: An explanation on Histograms comparison can be found here https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html This is a great method to use if you are using several masked images. +> This algorithm is particular reliable when the colour is a strong predictor of the object identity. +> The histogram intersection [...] is robust to occluding objects in the foreground. Perceptual Hash: An explanation on pHash comparison can be found here diff --git a/scripts/build.ps1 b/scripts/build.ps1 index 0dd9aae5..2435d2c2 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -1,8 +1,10 @@ & "$PSScriptRoot/compile_resources.ps1" -pyinstaller ` - --onefile ` - --windowed ` - --additional-hooks-dir=Pyinstaller/hooks ` - --icon=res/icon.ico ` - --splash=res/splash.png ` - "$PSScriptRoot/../src/AutoSplit.py" + +$arguments = @( + '--onefile', + '--windowed', + '--additional-hooks-dir=Pyinstaller/hooks', + '--icon=res/icon.ico', + '--splash=res/splash.png') + +Start-Process pyinstaller -Wait -ArgumentList "$arguments `"$PSScriptRoot/../src/AutoSplit.py`"" diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 0bbf770c..669eeb4d 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -7,9 +7,12 @@ If ($IsWindows) { # Installing Python dependencies $dev = If ($env:GITHUB_JOB -eq 'Build') { '' } Else { '-dev' } -# Ensures installation tools are up to date. +# Ensures installation tools are up to date. This also aliases pip to pip3 on MacOS. python3 -m pip install wheel pip setuptools --upgrade -python3 -m pip install -r "$PSScriptRoot/requirements$dev.txt" +pip install -r "$PSScriptRoot/requirements$dev.txt" --upgrade +if (Get-Command 'npm' -ErrorAction SilentlyContinue) { + npm i --global pyright@latest +} # Don't compile resources on the Build CI job as it'll do so in build script If ($dev) { diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index e9cd2a43..be1a0452 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -5,7 +5,7 @@ $exitCodes = 0 Write-Host "`nRunning autofixes..." isort src/ typings/ autopep8 $(git ls-files '**.py*') --in-place -unify src/ --recursive --in-place --quote='"""' +unify src/ --recursive --in-place --quote='"' add-trailing-comma $(git ls-files '**.py*') --py36-plus Write-Host "`nRunning Pyright..." diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt index eab2e420..28bd6fae 100644 --- a/scripts/requirements-dev.txt +++ b/scripts/requirements-dev.txt @@ -6,8 +6,7 @@ # Dependencies -r requirements.txt # -# Linters and formatters -add-trailing-comma +# Linters bandit flake8>=5 # flake8-pyi deprecation warnings flake8-builtins @@ -15,17 +14,24 @@ flake8-bugbear flake8-class-attributes-order flake8-comprehensions>=3.8 # flake8 5 support flake8-datetimez -flake8-isort>=4.2 # flake8 5 support +flake8-isort>=4.2,<=5.0 # flake8 5 support ; Breaking issue (https://github.com/gforcada/flake8-isort/issues/128) flake8-pyi>=22.10.0 # Fixes for negative numbers flake8-quotes flake8-simplify pep8-naming pylint>=2.14,<3.0.0 # New checks # 3.0 still in pre-release -pyright>=1.1.276 # Typeshed update +# Formatters +add-trailing-comma>=2.3.0 # Added support for with statement +autopep8>=2.0.0 # New checks +isort unify # # Run `./scripts/designer.ps1` to quickly open the bundled PyQt Designer. # Can also be downloaded externally as a non-python package qt6-applications # Types +types-d3dshot +types-keyboard +types-pyinstaller +types-pywin32 typing-extensions diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 96b20edb..2ce61e47 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -12,23 +12,26 @@ # Dependencies: certifi ImageHash>=4.3.1 # Contains type information + setup as package not module -keyboard +git+https://github.com/Avasam/keyboard.git@fix-563#egg=keyboard # Fix install on linux-ci https://github.com/boppreh/keyboard/pull/568 numpy>=1.23 # Updated types opencv-python-headless>=4.6 # Breaking changes importing cv2.cv2 packaging -Pillow>=7.2.0 # https://github.com/SerpentAI/D3DShot/issues/44 +Pillow>=9.2 # gnome-screeshot checks psutil PyAutoGUI -git+https://github.com/andreaschiavinato/python_grabber.git#egg=pygrabber # Completed types PyQt6>=6.2.1 # Python 3.10 support requests toml -# Windows-only -git+https://github.com/ranchen421/D3DShot.git#egg=D3DShot # D3DShot from PyPI with Pillow>=7.2.0 will install 0.1.3 instead of 0.1.5 -pywin32>=301 -winsdk>=v1.0.0b4 # # Build and compile resources PyInstaller>=5.2 # opencv-python 4.6 support pyinstaller-hooks-contrib>=2022.9 # opencv-python 4.6 support. Changes for pywintypes and comtypes -PySide6 +PySide6>=6.2.2 # Apple silicon support +# +# https://peps.python.org/pep-0508/#environment-markers +# +# Windows-only dependencies: +git+https://github.com/andreaschiavinato/python_grabber.git#egg=pygrabber ; sys_platform == 'win32' # Completed types +pywin32>=301 ; sys_platform == 'win32' +winsdk>=v1.0.0b4 ; sys_platform == 'win32' +git+https://github.com/ranchen421/D3DShot.git#egg=D3DShot ; sys_platform == 'win32' # D3DShot from PyPI with Pillow>=7.2.0 will install 0.1.3 instead of 0.1.5 diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 0a1298c2..86bab32b 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -31,8 +31,8 @@ from split_parser import BELOW_FLAG, DUMMY_FLAG, PAUSE_FLAG, parse_and_validate_images from user_profile import DEFAULT_PROFILE from utils import ( - AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, FROZEN, START_AUTO_SPLITTER_TEXT, WINDOWS_BUILD_NUMBER, auto_split_directory, - decimal, is_valid_image, + AUTOSPLIT_VERSION, FIRST_WIN_11_BUILD, FROZEN, WINDOWS_BUILD_NUMBER, auto_split_directory, decimal, is_valid_image, + open_file, ) CHECK_FPS_ITERATIONS = 10 @@ -43,7 +43,7 @@ ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(myappid) -class AutoSplit(QMainWindow, design.Ui_MainWindow): +class AutoSplit(QMainWindow, design.Ui_MainWindow): # pylint: disable=too-many-instance-attributes # Parse command line args is_auto_controlled = "--auto-controlled" in sys.argv @@ -78,6 +78,7 @@ class AutoSplit(QMainWindow, design.Ui_MainWindow): split_images_and_loop_number: list[tuple[AutoSplitImage, int]] = [] split_groups: list[list[int]] = [] capture_method = CaptureMethodBase() + is_running = False # Last loaded settings empty and last successful loaded settings file path to None until we try to load them last_loaded_settings = DEFAULT_PROFILE @@ -103,7 +104,6 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s # Setup global error handling self.show_error_signal.connect(lambda errorMessageBox: errorMessageBox()) - # Whithin LiveSplit excepthook needs to use MainWindow's signals to show errors sys.excepthook = error_messages.make_excepthook(self) self.setupUi(self) @@ -145,8 +145,8 @@ def __init__(self, parent: QWidget | None = None): # pylint: disable=too-many-s # Connecting menu actions self.action_view_help.triggered.connect(view_help) self.action_about.triggered.connect(lambda: open_about(self)) - self.action_about_qt.triggered.connect(lambda: about_qt) - self.action_about_qt_for_python.triggered.connect(lambda: about_qt_for_python) + self.action_about_qt.triggered.connect(about_qt) + self.action_about_qt_for_python.triggered.connect(about_qt_for_python) self.action_check_for_updates.triggered.connect(lambda: check_for_updates(self)) self.action_settings.triggered.connect(lambda: open_settings(self)) self.action_save_profile.triggered.connect(lambda: user_profile.save_settings(self)) @@ -257,6 +257,7 @@ def __load_start_image(self, started_by_button: bool = False, wait_for_delay: bo self.timer_start_image.stop() self.current_image_file_label.setText("-") self.start_image_status_value_label.setText("not found") + set_preview_image(self.current_split_image, None, True) if not (validate_before_parsing(self, started_by_button) and parse_and_validate_images(self)): QApplication.processEvents() @@ -280,8 +281,7 @@ def __load_start_image(self, started_by_button: bool = False, wait_for_delay: bo self.split_image_number = 0 - start_pause_time = self.start_image.get_pause_time(self) - if not wait_for_delay and start_pause_time > 0: + if not wait_for_delay and self.start_image.get_pause_time(self) > 0: self.start_image_status_value_label.setText("paused") self.table_current_image_highest_label.setText("-") self.table_current_image_threshold_label.setText("-") @@ -336,16 +336,18 @@ def __start_image_function(self): self.start_image_status_value_label.setText("delaying start...") delay_start_time = time() start_delay = self.start_image.get_delay_time(self) / 1000 - while time() - delay_start_time < start_delay: - delay_time_left = start_delay - (time() - delay_start_time) + time_delta = 0 + while time_delta < start_delay: + delay_time_left = start_delay - time_delta self.current_split_image.setText( f"Delayed Before Starting:\n {seconds_remaining_text(delay_time_left)}", ) - QTest.qWait(1) + # Wait 0.1s. Doesn't need to be shorter as we only show 1 decimal + QTest.qWait(100) + time_delta = time() - delay_start_time self.start_image_status_value_label.setText("started") send_command(self, "start") - QTest.qWait(int(1 / self.settings_dict["fps_limit"])) self.start_auto_splitter() # update x, y, width, height when spinbox values are changed @@ -384,9 +386,9 @@ def __take_screenshot(self): error_messages.region() return - # save and open image + # Save and open image cv2.imwrite(screenshot_path, capture) - os.startfile(screenshot_path) # nosec + open_file(screenshot_path) def __check_fps(self): self.fps_value_label.setText("...") @@ -427,7 +429,7 @@ def undo_split(self, navigate_image_only: bool = False): """ # Can't undo until timer is started # or Undoing past the first image - if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ + if not self.is_running \ or "Delayed Split" in self.current_split_image.text() \ or (not self.undo_split_button.isEnabled() and not self.is_auto_controlled) \ or self.__is_current_split_out_of_range(): @@ -451,7 +453,7 @@ def skip_split(self, navigate_image_only: bool = False): """ # Can't skip or split until timer is started # or Splitting/skipping when there are no images left - if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT \ + if not self.is_running \ or "Delayed Split" in self.current_split_image.text() \ or not (self.skip_split_button.isEnabled() or self.is_auto_controlled or navigate_image_only) \ or self.__is_current_split_out_of_range(): @@ -474,14 +476,16 @@ def pause(self): pass def reset(self): - # When the reset button or hotkey is pressed, it will change this text, - # which will trigger in the __auto_splitter function, if running, to abort and change GUI. - self.start_auto_splitter_button.setText(START_AUTO_SPLITTER_TEXT) + """" + When the reset button or hotkey is pressed, it will set `is_running` to False, + which will trigger in the __auto_splitter function, if running, to abort and change GUI. + """ + self.is_running = False # Functions for the hotkeys to return to the main thread from signals and start their corresponding functions def start_auto_splitter(self): # If the auto splitter is already running or the button is disabled, don't emit the signal to start it. - if self.start_auto_splitter_button.text() == "Running..." \ + if self.is_running \ or (not self.start_auto_splitter_button.isEnabled() and not self.is_auto_controlled): return @@ -495,7 +499,7 @@ def __check_for_reset_state_update_ui(self): """ Check if AutoSplit is started, if not either restart (loop splits) or update the GUI """ - if self.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT: + if not self.is_running: if self.settings_dict["loop_splits"]: self.start_auto_splitter_signal.emit() else: @@ -534,8 +538,13 @@ def __auto_splitter(self): current_group = [] self.split_groups.append(current_group) + self.is_running = True self.gui_changes_on_start() + # Start pause time + if self.start_image: + self.__pause_loop(self.start_image.get_pause_time(self), "None (Paused).") + # Initialize a few attributes self.split_image_number = 0 self.waiting_for_split_delay = False @@ -573,14 +582,23 @@ def __auto_splitter(self): if split_delay > 0 and not self.waiting_for_split_delay: split_time = round(time() + split_delay * 1000) self.waiting_for_split_delay = True - self.undo_split_button.setEnabled(False) - self.skip_split_button.setEnabled(False) + buttons_to_disable = [ + self.next_image_button, + self.previous_image_button, + self.undo_split_button, + self.skip_split_button, + ] + for button in buttons_to_disable: + button.setEnabled(False) self.current_image_file_label.clear() # check for reset while delayed and display a counter of the remaining split delay time if self.__pause_loop(split_delay, "Delayed Split:"): return + for button in buttons_to_disable: + button.setEnabled(True) + self.waiting_for_split_delay = False # if {p} flag hit pause key, otherwise hit split hotkey @@ -596,8 +614,7 @@ def __auto_splitter(self): # If its not the last split image, pause for the amount set by the user # A pause loop to check if the user presses skip split, undo split, or reset here. # Also updates the current split image text, counting down the time until the next split image - pause_time = self.split_image.get_pause_time(self) - if self.__pause_loop(pause_time, "None (Paused)."): + if self.__pause_loop(self.split_image.get_pause_time(self), "None (Paused)."): return # loop breaks to here when the last image splits @@ -643,9 +660,9 @@ def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_ QApplication.processEvents() # Limit the number of time the comparison runs to reduce cpu usage + frame_interval = 1 / self.settings_dict["fps_limit"] # Use a time delta to have a consistant check interval - frame_interval: float = 1 / self.settings_dict["fps_limit"] - wait_delta = int(frame_interval - (time() - start) % frame_interval) + wait_delta_ms = int((frame_interval - (time() - start) % frame_interval) * 1000) below_flag = self.split_image.check_flag(BELOW_FLAG) # if the b flag is set, let similarity go above threshold first, @@ -658,7 +675,7 @@ def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_ break if not self.split_below_threshold: self.split_below_threshold = True - QTest.qWait(wait_delta) + QTest.qWait(wait_delta_ms) continue elif ( # pylint: disable=confusing-consecutive-elif @@ -667,7 +684,7 @@ def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_ self.split_below_threshold = False break - QTest.qWait(wait_delta) + QTest.qWait(wait_delta_ms) def __pause_loop(self, stop_time: float, message: str): """ @@ -680,7 +697,7 @@ def __pause_loop(self, stop_time: float, message: str): return False start_time = time() # Set a "pause" split image number. - # This is done so that it can detect if user hit split/undo split while paused. + # This is done so that it can detect if user hit split/undo split while paused/delayed. pause_split_image_number = self.split_image_number while True: # Calculate similarity for reset image @@ -693,6 +710,8 @@ def __pause_loop(self, stop_time: float, message: str): time_delta >= stop_time # Check for skip split / next image: or self.split_image_number > pause_split_image_number + # Check for undo split / previous image: + or self.split_image_number < pause_split_image_number ): break @@ -724,7 +743,7 @@ def gui_changes_on_start(self): QApplication.processEvents() def gui_changes_on_reset(self, safe_to_reload_start_image: bool = False): - self.start_auto_splitter_button.setText(START_AUTO_SPLITTER_TEXT) + self.start_auto_splitter_button.setText("Start Auto Splitter") self.image_loop_value_label.setText("N/A") self.current_split_image.clear() self.current_image_file_label.clear() @@ -761,7 +780,8 @@ def __get_capture_for_comparison(self): """ capture, is_old_image = self.capture_method.get_frame(self) - # This most likely means we lost capture (ie the captured window was closed, crashed, etc.) + # This most likely means we lost capture + # (ie the captured window was closed, crashed, lost capture device, etc.) if not is_valid_image(capture): # Try to recover by using the window name if self.settings_dict["capture_method"] == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: @@ -783,7 +803,10 @@ def __reset_if_should(self, capture: cv2.Mat | None): similarity = self.reset_image.compare_with_capture(self, capture) threshold = self.reset_image.get_similarity_threshold(self) - paused = time() - self.run_start_time <= self.reset_image.get_pause_time(self) + pause_times = [self.reset_image.get_pause_time(self)] + if self.start_image: + pause_times.append(self.start_image.get_pause_time(self)) + paused = time() - self.run_start_time <= max(pause_times) if paused: should_reset = False self.table_reset_image_live_label.setText("paused") @@ -842,6 +865,7 @@ def closeEvent(self, a0: QtGui.QCloseEvent | None = None): def exit_program(): if self.update_auto_control: self.update_auto_control.terminate() + self.capture_method.close(self) if a0 is not None: a0.accept() if self.is_auto_controlled: @@ -911,7 +935,7 @@ def seconds_remaining_text(seconds: float): return f"{seconds:.1f} second{'' if 0 < seconds <= 1 else 's'} remaining" -def is_already_running(): +def is_already_open(): # When running directly in Python, any AutoSplit process means it's already open # When bundled, we must ignore itself and the splash screen max_processes = 3 if FROZEN else 1 @@ -930,8 +954,8 @@ def main(): try: app.setWindowIcon(QtGui.QIcon(":/resources/icon.ico")) - if is_already_running(): - error_messages.already_running() + if is_already_open(): + error_messages.already_open() AutoSplit() diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index cd65bb7f..8988b81c 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -6,11 +6,10 @@ import cv2 import numpy as np -from win32con import MAXBYTE import error_messages from compare import check_if_image_has_transparency, compare_histograms, compare_l2_norm, compare_phash -from utils import is_valid_image +from utils import MAXBYTE, is_valid_image if TYPE_CHECKING: from AutoSplit import AutoSplit diff --git a/src/capture_method/BitBltCaptureMethod.py b/src/capture_method/BitBltCaptureMethod.py index a8a0bc4a..9eca085b 100644 --- a/src/capture_method/BitBltCaptureMethod.py +++ b/src/capture_method/BitBltCaptureMethod.py @@ -28,6 +28,7 @@ def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: selection = autosplit.settings_dict["capture_region"] hwnd = autosplit.hwnd image: cv2.Mat | None = None + if not self.check_selected_region_exists(autosplit): return None, False diff --git a/src/capture_method/CaptureMethodBase.py b/src/capture_method/CaptureMethodBase.py index 0c5057c8..e75caf07 100644 --- a/src/capture_method/CaptureMethodBase.py +++ b/src/capture_method/CaptureMethodBase.py @@ -12,6 +12,7 @@ class CaptureMethodBase(): def __init__(self, autosplit: AutoSplit | None = None): + # Some capture methods don't need an initialization process pass def reinitialize(self, autosplit: AutoSplit): @@ -19,6 +20,7 @@ def reinitialize(self, autosplit: AutoSplit): self.__init__(autosplit) # pylint: disable=unnecessary-dunder-call def close(self, autosplit: AutoSplit): + # Some capture methods don't need an initialization process pass def get_frame(self, autosplit: AutoSplit) -> tuple[cv2.Mat | None, bool]: diff --git a/src/capture_method/DesktopDuplicationCaptureMethod.py b/src/capture_method/DesktopDuplicationCaptureMethod.py index 74452fc9..07706501 100644 --- a/src/capture_method/DesktopDuplicationCaptureMethod.py +++ b/src/capture_method/DesktopDuplicationCaptureMethod.py @@ -1,7 +1,6 @@ from __future__ import annotations import ctypes -import ctypes.wintypes from typing import TYPE_CHECKING, cast import cv2 diff --git a/src/capture_method/VideoCaptureDeviceCaptureMethod.py b/src/capture_method/VideoCaptureDeviceCaptureMethod.py index f15fe082..3a2843f1 100644 --- a/src/capture_method/VideoCaptureDeviceCaptureMethod.py +++ b/src/capture_method/VideoCaptureDeviceCaptureMethod.py @@ -63,10 +63,10 @@ def __read_loop(self, autosplit: AutoSplit): self.capture_device.release() autosplit.show_error_signal.emit( lambda: exception_traceback( + error, "AutoSplit encountered an unhandled exception while " + "trying to grab a frame and has stopped capture. " + CREATE_NEW_ISSUE_MESSAGE, - error, ), ) @@ -98,7 +98,6 @@ def close(self, autosplit: AutoSplit): self.capture_device.release() def get_frame(self, autosplit: AutoSplit): - selection = autosplit.settings_dict["capture_region"] if not self.check_selected_region_exists(autosplit): return None, False @@ -108,6 +107,7 @@ def get_frame(self, autosplit: AutoSplit): if not is_valid_image(image): return None, is_old_image + selection = autosplit.settings_dict["capture_region"] # Ensure we can't go OOB of the image y = min(selection["y"], image.shape[0] - 1) x = min(selection["x"], image.shape[1] - 1) diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index d8de71e0..2e5dbf9e 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -4,9 +4,9 @@ from collections import OrderedDict from dataclasses import dataclass from enum import Enum, EnumMeta, unique -from typing import TYPE_CHECKING, TypedDict +from typing import TYPE_CHECKING, TypedDict, cast -from pygrabber import dshow_graph +from pygrabber.dshow_graph import FilterGraph from capture_method.BitBltCaptureMethod import BitBltCaptureMethod from capture_method.CaptureMethodBase import CaptureMethodBase @@ -14,7 +14,7 @@ from capture_method.ForceFullContentRenderingCaptureMethod import ForceFullContentRenderingCaptureMethod from capture_method.VideoCaptureDeviceCaptureMethod import VideoCaptureDeviceCaptureMethod from capture_method.WindowsGraphicsCaptureMethod import WindowsGraphicsCaptureMethod -from utils import WINDOWS_BUILD_NUMBER, get_direct3d_device +from utils import WINDOWS_BUILD_NUMBER, first, try_get_direct3d_device if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -75,27 +75,39 @@ def __hash__(self): class CaptureMethodDict(OrderedDict[CaptureMethodEnum, CaptureMethodInfo]): + def get_index(self, capture_method: str | CaptureMethodEnum): + """ + Returns 0 if the capture_method is invalid or unsupported + """ + try: + return list(self.keys()).index(cast(CaptureMethodEnum, capture_method)) + except ValueError: + return 0 def get_method_by_index(self, index: int): + """ + Returns the `CaptureMethodEnum` at index. + If index is invalid, returns the first (default) `CaptureMethodEnum`. + Returns `CaptureMethodEnum.NONE` if there are no capture methods available. + """ if len(self) <= 0: return CaptureMethodEnum.NONE - if index < 0: - return next(iter(self)) + if index <= 0: + return first(self) return list(self.keys())[index] - def __getitem__(self, key: CaptureMethodEnum): - if key == CaptureMethodEnum.NONE: + if TYPE_CHECKING: # noqa: CCE002 + __getitem__ = None # pyright: ignore[reportGeneralTypeIssues] # Disallow unsafe get + + def get(self, __key: CaptureMethodEnum): + """ + Returns the `CaptureMethodInfo` for `CaptureMethodEnum` if `CaptureMethodEnum` is available, + else defaults to the first available `CaptureMethodEnum`. + Returns the `CaptureMethodBase` (default) implementation if there's no capture methods. + """ + if __key == CaptureMethodEnum.NONE or len(self) <= 0: return NONE_CAPTURE_METHOD - try: - return super().__getitem__(key) - # If requested method does not exists... - except KeyError: - try: - # ...fallback to the first one - return super().__getitem__(self.get_method_by_index(0)) - except KeyError: - # ...fallback to an empty capture method to avoid crashes - return NONE_CAPTURE_METHOD + return super().get(__key, first(self.values())) NONE_CAPTURE_METHOD = CaptureMethodInfo( @@ -105,19 +117,24 @@ def __getitem__(self, key: CaptureMethodEnum): implementation=CaptureMethodBase, ) -CAPTURE_METHODS = CaptureMethodDict({ - CaptureMethodEnum.BITBLT: CaptureMethodInfo( - name="BitBlt", - short_description="fastest, least compatible", - description=( - "\nA good default fast option. But it cannot properly record " - "\nOpenGL, Hardware Accelerated or Exclusive Fullscreen windows. " - "\nThe smaller the selected region, the more efficient it is. " - ), - - implementation=BitBltCaptureMethod, +CAPTURE_METHODS = CaptureMethodDict() +CAPTURE_METHODS[CaptureMethodEnum.BITBLT] = CaptureMethodInfo( + name="BitBlt", + short_description="fastest, least compatible", + description=( + "\nA good default fast option. But it cannot properly record " + "\nOpenGL, Hardware Accelerated or Exclusive Fullscreen windows. " + "\nThe smaller the selected region, the more efficient it is. " ), - CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE: CaptureMethodInfo( + + implementation=BitBltCaptureMethod, +) +if ( # Windows Graphics Capture requires a minimum Windows Build + WINDOWS_BUILD_NUMBER >= WGC_MIN_BUILD + # Our current implementation of Windows Graphics Capture does not ensure we can get an ID3DDevice + and try_get_direct3d_device() +): + CAPTURE_METHODS[CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE] = CaptureMethodInfo( name="Windows Graphics Capture", short_description="fast, most compatible, capped at 60fps", description=( @@ -129,63 +146,46 @@ def __getitem__(self, key: CaptureMethodEnum): "\nCaps at around 60 FPS. " ), implementation=WindowsGraphicsCaptureMethod, + ) +CAPTURE_METHODS[CaptureMethodEnum.DESKTOP_DUPLICATION] = CaptureMethodInfo( + name="Direct3D Desktop Duplication", + short_description="slower, bound to display", + description=( + "\nDuplicates the desktop using Direct3D. " + "\nIt can record OpenGL and Hardware Accelerated windows. " + "\nAbout 10-15x slower than BitBlt. Not affected by window size. " + "\nOverlapping windows will show up and can't record across displays. " ), - CaptureMethodEnum.DESKTOP_DUPLICATION: CaptureMethodInfo( - name="Direct3D Desktop Duplication", - short_description="slower, bound to display", - description=( - "\nDuplicates the desktop using Direct3D. " - "\nIt can record OpenGL and Hardware Accelerated windows. " - "\nAbout 10-15x slower than BitBlt. Not affected by window size. " - "\nOverlapping windows will show up and can't record across displays. " - ), - implementation=DesktopDuplicationCaptureMethod, - ), - CaptureMethodEnum.PRINTWINDOW_RENDERFULLCONTENT: CaptureMethodInfo( - name="Force Full Content Rendering", - short_description="very slow, can affect rendering pipeline", - description=( - "\nUses BitBlt behind the scene, but passes a special flag " - "\nto PrintWindow to force rendering the entire desktop. " - "\nAbout 10-15x slower than BitBlt based on original window size " - "\nand can mess up some applications' rendering pipelines. " - ), - implementation=ForceFullContentRenderingCaptureMethod, + implementation=DesktopDuplicationCaptureMethod, +) +CAPTURE_METHODS[CaptureMethodEnum.PRINTWINDOW_RENDERFULLCONTENT] = CaptureMethodInfo( + name="Force Full Content Rendering", + short_description="very slow, can affect rendering pipeline", + description=( + "\nUses BitBlt behind the scene, but passes a special flag " + "\nto PrintWindow to force rendering the entire desktop. " + "\nAbout 10-15x slower than BitBlt based on original window size " + "\nand can mess up some applications' rendering pipelines. " ), - CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: CaptureMethodInfo( - name="Video Capture Device", - short_description="see below", - description=( - "\nUses a Video Capture Device, like a webcam, virtual cam, or capture card. " - "\nYou can select one below. " - "\nThere are currently performance issues, but it might be more convenient. " - "\nIf you want to use this with OBS' Virtual Camera, use the Virtualcam plugin instead " - "\nhttps://github.com/Avasam/obs-virtual-cam/releases" - ), - implementation=VideoCaptureDeviceCaptureMethod, + implementation=ForceFullContentRenderingCaptureMethod, +) +CAPTURE_METHODS[CaptureMethodEnum.VIDEO_CAPTURE_DEVICE] = CaptureMethodInfo( + name="Video Capture Device", + short_description="see below", + description=( + "\nUses a Video Capture Device, like a webcam, virtual cam, or capture card. " + "\nYou can select one below. " + "\nThere are currently performance issues, but it might be more convenient. " + "\nIf you want to use this with OBS' Virtual Camera, use the Virtualcam plugin instead " + "\nhttps://github.com/Avasam/obs-virtual-cam/releases" ), -}) - - -def try_get_direct3d_device(): - try: - return get_direct3d_device() - except OSError: - return None - - -# Detect and remove unsupported capture methods -if ( # Windows Graphics Capture requires a minimum Windows Build - WINDOWS_BUILD_NUMBER < WGC_MIN_BUILD - # Our current implementation of Windows Graphics Capture does not ensure we can get an ID3DDevice - or not try_get_direct3d_device() -): - CAPTURE_METHODS.pop(CaptureMethodEnum.WINDOWS_GRAPHICS_CAPTURE) + implementation=VideoCaptureDeviceCaptureMethod, +) def change_capture_method(selected_capture_method: CaptureMethodEnum, autosplit: AutoSplit): autosplit.capture_method.close(autosplit) - autosplit.capture_method = CAPTURE_METHODS[selected_capture_method].implementation(autosplit) + autosplit.capture_method = CAPTURE_METHODS.get(selected_capture_method).implementation(autosplit) if selected_capture_method == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: autosplit.select_region_button.setDisabled(True) autosplit.select_window_button.setDisabled(True) @@ -200,12 +200,19 @@ class CameraInfo(): name: str occupied: bool backend: str - size: tuple[int, int] + resolution: tuple[int, int] | None + + +def get_input_device_resolution(index: int): + filter_graph = FilterGraph() + filter_graph.add_video_input_device(index) + resolution = filter_graph.get_input_device().get_current_format() + filter_graph.remove_filters() + return resolution async def get_all_video_capture_devices() -> list[CameraInfo]: - filter_graph = dshow_graph.FilterGraph() - named_video_inputs = filter_graph.get_input_devices() + named_video_inputs = FilterGraph().get_input_devices() async def get_camera_info(index: int, device_name: str): backend = "" @@ -225,10 +232,8 @@ async def get_camera_info(index: int, device_name: str): # else None # finally: # video_capture.release() - filter_graph.add_video_input_device(index) - size = filter_graph.get_input_device().get_current_format() - filter_graph.remove_filters() - return CameraInfo(index, device_name, False, backend, size) + + return CameraInfo(index, device_name, False, backend, get_input_device_resolution(index)) future = asyncio.gather( *[ diff --git a/src/compare.py b/src/compare.py index 445bdff0..cac03ec1 100644 --- a/src/compare.py +++ b/src/compare.py @@ -1,11 +1,12 @@ from __future__ import annotations +from math import sqrt + import cv2 import imagehash from PIL import Image -from win32con import MAXBYTE -from utils import is_valid_image +from utils import MAXBYTE, is_valid_image MAXRANGE = MAXBYTE + 1 CHANNELS = [0, 1, 2] @@ -46,9 +47,9 @@ def compare_l2_norm(source: cv2.Mat, capture: cv2.Mat, mask: cv2.Mat | None = No error = cv2.norm(source, capture, cv2.NORM_L2, mask) # The L2 Error is summed across all pixels, so this normalizes - max_error: float = (source.size ** 0.5) * MAXBYTE \ + max_error = sqrt(source.size) * MAXBYTE \ if not is_valid_image(mask)\ - else (3 * cv2.countNonZero(mask) * MAXBYTE * MAXBYTE) ** 0.5 + else sqrt(cv2.countNonZero(mask) * MASK_SIZE_MULTIPLIER) if not max_error: return 0.0 diff --git a/src/error_messages.py b/src/error_messages.py index fba1024d..2658a083 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -115,13 +115,15 @@ def invalid_hotkey(hotkey_name: str): def no_settings_file_on_open(): - set_text_message("No settings file found. One can be loaded on open if placed in the same folder as AutoSplit.exe") + set_text_message( + "No settings file found. One can be loaded on open if placed in the same folder as the AutoSplit executable.", + ) def too_many_settings_files_on_open(): set_text_message( "Too many settings files found. " - + "Only one can be loaded on open if placed in the same folder as AutoSplit.exe", + + "Only one can be loaded on open if placed in the same folder as the AutoSplit executable.", ) @@ -140,7 +142,7 @@ def stdin_lost(): set_text_message("stdin not supported or lost, external control like LiveSplit integration will not work.") -def already_running(): +def already_open(): set_text_message( "An instance of AutoSplit is already running.
Are you sure you want to open a another one?", "", @@ -149,7 +151,10 @@ def already_running(): ) -def exception_traceback(message: str, exception: BaseException): +def exception_traceback(exception: BaseException, message: str = ""): + if not message: + message = "AutoSplit encountered an unhandled exception and will try to recover, " + \ + f"however, there is no guarantee it will keep working properly. {CREATE_NEW_ISSUE_MESSAGE}" set_text_message( message, "\n".join(traceback.format_exception(None, exception, exception.__traceback__)), @@ -176,21 +181,15 @@ def excepthook(exception_type: type[BaseException], exception: BaseException, _t ): return # Whithin LiveSplit excepthook needs to use MainWindow's signals to show errors - autosplit.show_error_signal.emit( - lambda: exception_traceback( - "AutoSplit encountered an unhandled exception and will try to recover, " - + f"however, there is no guarantee it will keep working properly. {CREATE_NEW_ISSUE_MESSAGE}", - exception, - ), - ) + autosplit.show_error_signal.emit(lambda: exception_traceback(exception)) return excepthook def handle_top_level_exceptions(exception: Exception): - message = f"AutoSplit encountered an unrecoverable exception and will now close. {CREATE_NEW_ISSUE_MESSAGE}" + message = f"AutoSplit encountered an unrecoverable exception and will likely now close. {CREATE_NEW_ISSUE_MESSAGE}" # Print error to console if not running in executable if FROZEN: - exception_traceback(message, exception) + exception_traceback(exception, message) else: traceback.print_exception(type(exception), exception, exception.__traceback__) sys.exit(1) diff --git a/src/hotkeys.py b/src/hotkeys.py index 814663b7..64f7f5f4 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -7,8 +7,8 @@ import pyautogui from PyQt6 import QtWidgets -from error_messages import invalid_hotkey -from utils import START_AUTO_SPLITTER_TEXT, fire_and_forget, is_digit +import error_messages +from utils import fire_and_forget, is_digit if TYPE_CHECKING: from AutoSplit import AutoSplit @@ -24,6 +24,10 @@ HOTKEYS: list[Hotkey] = ["split", "reset", "skip_split", "undo_split", "pause", "toggle_auto_reset_image"] +def remove_all_hotkeys(): + keyboard.unhook_all() + + def before_setting_hotkey(autosplit: AutoSplit): """ Do all of these after you click "Set Hotkey" but before you type the hotkey @@ -39,7 +43,7 @@ def after_setting_hotkey(autosplit: AutoSplit): Do all of these things after you set a hotkey. A signal connects to this because changing GUI stuff is only possible in the main thread """ - if autosplit.start_auto_splitter_button.text() == START_AUTO_SPLITTER_TEXT: + if not autosplit.is_running: autosplit.start_auto_splitter_button.setEnabled(True) if autosplit.SettingsWidget: for hotkey in HOTKEYS: @@ -193,9 +197,9 @@ def __read_hotkey(): def __remove_key_already_set(autosplit: AutoSplit, key_name: str): for hotkey in HOTKEYS: settings_key = f"{hotkey}_hotkey" - if autosplit.settings_dict[settings_key] == key_name: + if autosplit.settings_dict[settings_key] == key_name: # pyright: ignore[reportGeneralTypeIssues] _unhook(getattr(autosplit, f"{hotkey}_hotkey")) - autosplit.settings_dict[settings_key] = "" + autosplit.settings_dict[settings_key] = "" # pyright: ignore[reportGeneralTypeIssues] if autosplit.SettingsWidget: getattr(autosplit.SettingsWidget, f"{hotkey}_input").setText("") @@ -237,45 +241,50 @@ def set_hotkey(autosplit: AutoSplit, hotkey: Hotkey, preselected_hotkey_name: st # Disable some buttons before_setting_hotkey(autosplit) - # New thread points to callback. this thread is needed or GUI will freeze + # New thread points to read_and_set_hotkey. this thread is needed or GUI will freeze # while the program waits for user input on the hotkey @fire_and_forget - def callback(): - hotkey_name = preselected_hotkey_name if preselected_hotkey_name else __read_hotkey() - - if not is_valid_hotkey_name(hotkey_name): - autosplit.show_error_signal.emit(lambda: invalid_hotkey(hotkey_name)) - return - - # Try to remove the previously set hotkey if there is one - _unhook(getattr(autosplit, f"{hotkey}_hotkey")) - # Remove any hotkey using the same key combination - - __remove_key_already_set(autosplit, hotkey_name) - - action = __get_hotkey_action(autosplit, hotkey) - setattr( - autosplit, - f"{hotkey}_hotkey", - # keyboard.add_hotkey doesn't give the last keyboard event, so we can't __validate_keypad. - # This means "ctrl + num 5" and "ctrl + 5" will both be registered. - # For that reason, we still prefer keyboard.hook_key for single keys. - # keyboard module allows you to hit multiple keys for a hotkey. they are joined together by +. - keyboard.add_hotkey(hotkey_name, action) - if "+" in hotkey_name - # We need to inspect the event to know if it comes from numpad because of _canonial_names. - # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 - # The best way to achieve this is make our own hotkey handling on top of hook - # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 - else keyboard.hook_key( - hotkey_name, - lambda keyboard_event: _hotkey_action(keyboard_event, hotkey_name, action), - ), - ) + def read_and_set_hotkey(): + try: + hotkey_name = preselected_hotkey_name if preselected_hotkey_name else __read_hotkey() - if autosplit.SettingsWidget: - getattr(autosplit.SettingsWidget, f"{hotkey}_input").setText(hotkey_name) - autosplit.settings_dict[f"{hotkey}_hotkey"] = hotkey_name - autosplit.after_setting_hotkey_signal.emit() + if not is_valid_hotkey_name(hotkey_name): + autosplit.show_error_signal.emit(lambda: error_messages.invalid_hotkey(hotkey_name)) + return - callback() + # Try to remove the previously set hotkey if there is one + _unhook(getattr(autosplit, f"{hotkey}_hotkey")) + # Remove any hotkey using the same key combination + + __remove_key_already_set(autosplit, hotkey_name) + + action = __get_hotkey_action(autosplit, hotkey) + setattr( + autosplit, + f"{hotkey}_hotkey", + # keyboard.add_hotkey doesn't give the last keyboard event, so we can't __validate_keypad. + # This means "ctrl + num 5" and "ctrl + 5" will both be registered. + # For that reason, we still prefer keyboard.hook_key for single keys. + # keyboard module allows you to hit multiple keys for a hotkey. they are joined together by +. + keyboard.add_hotkey(hotkey_name, action) + if "+" in hotkey_name + # We need to inspect the event to know if it comes from numpad because of _canonial_names. + # See: https://github.com/boppreh/keyboard/issues/161#issuecomment-386825737 + # The best way to achieve this is make our own hotkey handling on top of hook + # See: https://github.com/boppreh/keyboard/issues/216#issuecomment-431999553 + else keyboard.hook_key( + hotkey_name, + lambda keyboard_event: _hotkey_action(keyboard_event, hotkey_name, action), + ), + ) + + if autosplit.SettingsWidget: + getattr(autosplit.SettingsWidget, f"{hotkey}_input").setText(hotkey_name) + autosplit.settings_dict[f"{hotkey}_hotkey"] = hotkey_name # pyright: ignore[reportGeneralTypeIssues] + except Exception as exception: # pylint: disable=broad-except # We really want to catch everything here + error = exception + autosplit.show_error_signal.emit(lambda: error_messages.exception_traceback(error)) + finally: + autosplit.after_setting_hotkey_signal.emit() + + read_and_set_hotkey() diff --git a/src/menu_bar.py b/src/menu_bar.py index fddf36a0..27467e4c 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -112,16 +112,6 @@ def check_for_updates(autosplit: AutoSplit, check_on_open: bool = False): autosplit.CheckForUpdatesThread.start() -def get_capture_method_index(capture_method: str | CaptureMethodEnum): - """ - Returns 0 if the capture_method is invalid or unsupported - """ - try: - return list(CAPTURE_METHODS.keys()).index(cast(CaptureMethodEnum, capture_method)) - except ValueError: - return 0 - - class __SettingsWidget(QtWidgets.QWidget, settings_ui.Ui_SettingsWidget): __video_capture_devices: list[CameraInfo] = [] """ @@ -253,11 +243,16 @@ def hotkey_connect(hotkey: Hotkey): for hotkey in HOTKEYS: hotkey_input: QtWidgets.QLineEdit = getattr(self, f"{hotkey}_input") set_hotkey_hotkey_button: QtWidgets.QPushButton = getattr(self, f"set_{hotkey}_hotkey_button") - hotkey_input.setText(cast(str, autosplit.settings_dict[f"{hotkey}_hotkey"])) + hotkey_input.setText( + cast( + str, + autosplit.settings_dict[f"{hotkey}_hotkey"], # pyright: ignore[reportGeneralTypeIssues] + ), + ) set_hotkey_hotkey_button.clicked.connect(hotkey_connect(hotkey)) # Make it very clear that hotkeys are not used when auto-controlled - if autosplit.is_auto_controlled: + if autosplit.is_auto_controlled and hotkey != "toggle_auto_reset_image": set_hotkey_hotkey_button.setEnabled(False) hotkey_input.setEnabled(False) @@ -266,7 +261,7 @@ def hotkey_connect(hotkey: Hotkey): self.fps_limit_spinbox.setValue(autosplit.settings_dict["fps_limit"]) self.live_capture_region_checkbox.setChecked(autosplit.settings_dict["live_capture_region"]) self.capture_method_combobox.setCurrentIndex( - get_capture_method_index(autosplit.settings_dict["capture_method"]), + CAPTURE_METHODS.get_index(autosplit.settings_dict["capture_method"]), ) self.capture_device_combobox.currentIndexChanged.connect( lambda: self.__set_value("capture_device_id", self.__capture_device_changed()), diff --git a/src/region_selection.py b/src/region_selection.py index 9bea31df..998ba92a 100644 --- a/src/region_selection.py +++ b/src/region_selection.py @@ -4,24 +4,27 @@ import ctypes.wintypes import os from math import ceil -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING import cv2 import numpy as np from PyQt6 import QtCore, QtGui, QtWidgets from PyQt6.QtTest import QTest from win32 import win32gui -from win32con import GA_ROOT, MAXBYTE, SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN +from win32con import SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN, SM_XVIRTUALSCREEN, SM_YVIRTUALSCREEN from winsdk._winrt import initialize_with_window from winsdk.windows.foundation import AsyncStatus, IAsyncOperation from winsdk.windows.graphics.capture import GraphicsCaptureItem, GraphicsCapturePicker import error_messages -from utils import get_window_bounds, is_valid_hwnd, is_valid_image +from utils import MAXBYTE, get_window_bounds, getTopWindowAt, is_valid_hwnd, is_valid_image + +user32 = ctypes.windll.user32 if TYPE_CHECKING: from AutoSplit import AutoSplit + SUPPORTED_IMREAD_FORMATS = [ ("Windows bitmaps", "*.bmp *.dib"), ("JPEG files", "*.jpeg *.jpg *.jpe"), @@ -41,8 +44,6 @@ + ");;"\ + ";;".join([f"{imread_format} ({extensions})" for imread_format, extensions in SUPPORTED_IMREAD_FORMATS]) -user32 = ctypes.windll.user32 - def __select_graphics_item(autosplit: AutoSplit): # pyright: ignore [reportUnusedFunction] # TODO: For later as a different picker option @@ -88,7 +89,12 @@ def select_region(autosplit: AutoSplit): QTest.qWait(1) del selector - hwnd, window_text = __get_window_from_point(x, y) + window = getTopWindowAt(x, y) + if not window: + error_messages.region() + return + hwnd = window.getHandle() + window_text = window.title if not is_valid_hwnd(hwnd) or not window_text: error_messages.region() return @@ -99,10 +105,12 @@ def select_region(autosplit: AutoSplit): left_bounds, top_bounds, *_ = get_window_bounds(hwnd) window_x, window_y, *_ = win32gui.GetWindowRect(hwnd) + offset_x = window_x + left_bounds + offset_y = window_y + top_bounds __set_region_values( autosplit, - left=x - window_x - left_bounds, - top=y - window_y - top_bounds, + left=x - offset_x, + top=y - offset_y, width=width, height=height, ) @@ -122,7 +130,12 @@ def select_window(autosplit: AutoSplit): QTest.qWait(1) del selector - hwnd, window_text = __get_window_from_point(x, y) + window = getTopWindowAt(x, y) + if not window: + error_messages.region() + return + hwnd = window.getHandle() + window_text = window.title if not is_valid_hwnd(hwnd) or not window_text: error_messages.region() return @@ -146,22 +159,6 @@ def select_window(autosplit: AutoSplit): ) -def __get_window_from_point(x: int, y: int): - # Grab the window handle from the coordinates selected by the widget - hwnd = cast(int, win32gui.WindowFromPoint((x, y))) - - # Want to pull the parent window from the window handle - # By using GetAncestor we are able to get the parent window instead - # of the owner window. - # TODO: Fix stubs, IsChild should return a boolean - while win32gui.IsChild(win32gui.GetParent(hwnd), hwnd): - hwnd = cast(int, user32.GetAncestor(hwnd, GA_ROOT)) - - window_text = win32gui.GetWindowText(hwnd) - - return hwnd, window_text - - def align_region(autosplit: AutoSplit): # Check to see if a region has been set if not autosplit.capture_method.check_selected_region_exists(autosplit): diff --git a/src/user_profile.py b/src/user_profile.py index 3934afdd..8c6faaad 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -3,14 +3,13 @@ import os from typing import TYPE_CHECKING, TypedDict, cast -import keyboard import toml from PyQt6 import QtCore, QtWidgets import error_messages from capture_method import CAPTURE_METHODS, CaptureMethodEnum, Region, change_capture_method from gen import design -from hotkeys import HOTKEYS, set_hotkey +from hotkeys import HOTKEYS, remove_all_hotkeys, set_hotkey from utils import auto_split_directory if TYPE_CHECKING: @@ -133,11 +132,15 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str autosplit.show_error_signal.emit(error_messages.invalid_settings) return False - keyboard.unhook_all() + remove_all_hotkeys() if not autosplit.is_auto_controlled: for hotkey, hotkey_name in [(hotkey, f"{hotkey}_hotkey") for hotkey in HOTKEYS]: - if autosplit.settings_dict[hotkey_name]: - set_hotkey(autosplit, hotkey, cast(str, autosplit.settings_dict[hotkey_name])) + if autosplit.settings_dict[hotkey_name]: # pyright: ignore[reportGeneralTypeIssues] + set_hotkey( + autosplit, + hotkey, + cast(str, autosplit.settings_dict[hotkey_name]), # pyright: ignore[reportGeneralTypeIssues] + ) change_capture_method(cast(CaptureMethodEnum, autosplit.settings_dict["capture_method"]), autosplit) if autosplit.settings_dict["capture_method"] != CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: @@ -163,7 +166,9 @@ def load_settings(autosplit: AutoSplit, from_path: str = ""): return autosplit.last_successfully_loaded_settings_file_path = load_settings_file_path - autosplit.load_start_image_signal.emit() + # TODO: Should this check be in `__load_start_image` ? + if not autosplit.is_running: + autosplit.load_start_image_signal.emit() def load_settings_on_open(autosplit: AutoSplit): diff --git a/src/utils.py b/src/utils.py index 2e986e3d..e2596682 100644 --- a/src/utils.py +++ b/src/utils.py @@ -18,7 +18,8 @@ from gen.build_vars import AUTOSPLIT_BUILD_NUMBER, AUTOSPLIT_GITHUB_REPOSITORY if TYPE_CHECKING: - from typing_extensions import TypeGuard + from typing_extensions import ParamSpec, TypeGuard + P = ParamSpec("P") DWMWA_EXTENDED_FRAME_BOUNDS = 9 @@ -80,23 +81,48 @@ def get_window_bounds(hwnd: int) -> tuple[int, int, int, int]: return window_left_bounds, window_top_bounds, window_width, window_height +def open_file(file_path: str): + os.startfile(file_path) # nosec B606 + + +def get_or_create_eventloop(): + try: + return asyncio.get_event_loop() + except RuntimeError: + loop = asyncio.new_event_loop() + asyncio.set_event_loop(loop) + return asyncio.get_event_loop() + + def get_direct3d_device(): - direct_3d_device = LearningModelDevice(LearningModelDeviceKind.DIRECT_X_HIGH_PERFORMANCE).direct3_d11_device + # Note: Must create in the same thread (can't use a global) otherwise when ran from LiveSplit it will raise: + # OSError: The application called an interface that was marshalled for a different thread + media_capture = MediaCapture() + + async def init_mediacapture(): + await (media_capture.initialize_async() or asyncio.sleep(0)) + asyncio.run(init_mediacapture()) + direct_3d_device = media_capture.media_capture_settings and \ + media_capture.media_capture_settings.direct3_d11_device if not direct_3d_device: - # Note: Must create in the same thread (can't use a global) otherwise when ran from LiveSplit it will raise: - # OSError: The application called an interface that was marshalled for a different thread - media_capture = MediaCapture() - - async def coroutine(): - await (media_capture.initialize_async() or asyncio.sleep(0)) - asyncio.run(coroutine()) - direct_3d_device = media_capture.media_capture_settings and \ - media_capture.media_capture_settings.direct3_d11_device + try: + # May be problematic? https://github.com/pywinrt/python-winsdk/issues/11#issuecomment-1315345318 + direct_3d_device = LearningModelDevice(LearningModelDeviceKind.DIRECT_X_HIGH_PERFORMANCE).direct3_d11_device + # TODO: Unknown potential error, I don't have an older Win10 machine to test. + except BaseException: # pylint: disable=broad-except + pass if not direct_3d_device: raise OSError("Unable to initialize a Direct3D Device.") return direct_3d_device +def try_get_direct3d_device(): + try: + return get_direct3d_device() + except OSError: + return None + + def fire_and_forget(func: Callable[..., Any]): """ Runs synchronous function asynchronously without waiting for a response @@ -110,23 +136,44 @@ def wrapped(*args: Any, **kwargs: Any): thread = Thread(target=func, args=args, kwargs=kwargs) thread.start() return thread - return asyncio.get_event_loop().run_in_executor(None, func, *args, *kwargs) + return get_or_create_eventloop().run_in_executor(None, func, *args, *kwargs) return wrapped +def getTopWindowAt(x: int, y: int): # noqa: N802 + # Immitating PyWinCTL's function + class Win32Window(): + def __init__(self, hwnd: int) -> None: + self._hWnd = hwnd + + def getHandle(self): # noqa: N802 + return self._hWnd + + @property + def title(self): + return win32gui.GetWindowText(self._hWnd) + hwnd = win32gui.WindowFromPoint((x, y)) + + # Want to pull the parent window from the window handle + # By using GetAncestor we are able to get the parent window instead of the owner window. + while win32gui.IsChild(win32gui.GetParent(hwnd), hwnd): + hwnd = ctypes.windll.user32.GetAncestor(hwnd, 2) + return Win32Window(hwnd) if hwnd else None + + # Environment specifics -WINDOWS_BUILD_NUMBER = int(version().split(".")[2]) +WINDOWS_BUILD_NUMBER = int(version().split(".")[2]) if sys.platform == "win32" else -1 FIRST_WIN_11_BUILD = 22000 """AutoSplit Version number""" FROZEN = hasattr(sys, "frozen") """Running from build made by PyInstaller""" auto_split_directory = os.path.dirname(sys.executable if FROZEN else os.path.abspath(__file__)) -"""The directory of either AutoSplit.exe or AutoSplit.py""" +"""The directory of either the AutoSplit executable or AutoSplit.py""" +MAXBYTE = 255 # Shared strings # Set AUTOSPLIT_BUILD_NUMBER to an empty string to generate a clean version number # AUTOSPLIT_BUILD_NUMBER = "" # pyright: ignore[reportConstantRedefinition] # noqa: F811 -AUTOSPLIT_VERSION = "2.0.0-alpha.6" + (f"-{AUTOSPLIT_BUILD_NUMBER}" if AUTOSPLIT_BUILD_NUMBER else "") -START_AUTO_SPLITTER_TEXT = "Start Auto Splitter" +AUTOSPLIT_VERSION = "2.0.0-beta.1" + (f"-{AUTOSPLIT_BUILD_NUMBER}" if AUTOSPLIT_BUILD_NUMBER else "") GITHUB_REPOSITORY = AUTOSPLIT_GITHUB_REPOSITORY From bc0cde0793d43432f95eaa89e88e33e12864306c Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 19 Nov 2022 14:44:41 -0500 Subject: [PATCH 41/54] Updated configs to use Python 3.11 (#180) --- .github/workflows/lint-and-build.yml | 12 ++++++------ .sonarcloud.properties | 2 +- pyproject.toml | 1 - scripts/requirements.txt | 11 ++++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 126b6f4c..ed3c1c5f 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -49,7 +49,7 @@ jobs: fail-fast: false # Pyright is version and platform sensible matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.9", "3.10", "3.11"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} uses: actions/checkout@v3 @@ -72,7 +72,7 @@ jobs: fail-fast: false # Pylint is version and platform sensible matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.9", "3.10", "3.11"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} uses: actions/checkout@v3 @@ -92,7 +92,7 @@ jobs: fail-fast: false # Flake8 is tied to the version of Python on which it runs. Platform checks are ignored matrix: - python-version: ["3.9", "3.10"] + python-version: ["3.9", "3.10", "3.11"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} uses: actions/checkout@v3 @@ -112,10 +112,10 @@ jobs: steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} uses: actions/checkout@v3 - - name: Set up Python 3.10 + - name: Set up Python 3.11 uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.11" cache: "pip" cache-dependency-path: "scripts/requirements*.txt" - run: scripts/install.ps1 @@ -128,7 +128,7 @@ jobs: fail-fast: false # Only the Python version we plan on shipping matters. matrix: - python-version: ["3.10"] + python-version: ["3.10", "3.11"] steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} uses: actions/checkout@v3 diff --git a/.sonarcloud.properties b/.sonarcloud.properties index 79132012..ff239edf 100644 --- a/.sonarcloud.properties +++ b/.sonarcloud.properties @@ -1 +1 @@ -sonar.python.version=3.9, 3.10 +sonar.python.version=3.9, 3.10, 3.11 diff --git a/pyproject.toml b/pyproject.toml index d7fe7563..5b21dbf3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,6 @@ ignore = [ "E70" # Allow ... on same line as def ] - # https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file [tool.pyright] typeCheckingMode = "strict" diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 2ce61e47..14bd6b0e 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -13,25 +13,26 @@ certifi ImageHash>=4.3.1 # Contains type information + setup as package not module git+https://github.com/Avasam/keyboard.git@fix-563#egg=keyboard # Fix install on linux-ci https://github.com/boppreh/keyboard/pull/568 -numpy>=1.23 # Updated types +numpy>=1.23.2 # Python 3.11 wheels opencv-python-headless>=4.6 # Breaking changes importing cv2.cv2 packaging Pillow>=9.2 # gnome-screeshot checks psutil PyAutoGUI -PyQt6>=6.2.1 # Python 3.10 support +--extra-index-url https://www.riverbankcomputing.com/pypi/simple/ --pre +PyQt6>6.4.0 # Python 3.11 support requests toml # # Build and compile resources -PyInstaller>=5.2 # opencv-python 4.6 support +PyInstaller>=5.5 # Python 3.11 support pyinstaller-hooks-contrib>=2022.9 # opencv-python 4.6 support. Changes for pywintypes and comtypes -PySide6>=6.2.2 # Apple silicon support +PySide6>=6.4.0.1 # Python 3.11 support # # https://peps.python.org/pep-0508/#environment-markers # # Windows-only dependencies: git+https://github.com/andreaschiavinato/python_grabber.git#egg=pygrabber ; sys_platform == 'win32' # Completed types pywin32>=301 ; sys_platform == 'win32' -winsdk>=v1.0.0b4 ; sys_platform == 'win32' +winsdk>=v1.0.0b7 ; sys_platform == 'win32' # Python 3.11 support git+https://github.com/ranchen421/D3DShot.git#egg=D3DShot ; sys_platform == 'win32' # D3DShot from PyPI with Pillow>=7.2.0 will install 0.1.3 instead of 0.1.5 From e154acc2709c5faaa38e34e7209f0e7e541554a9 Mon Sep 17 00:00:00 2001 From: Avasam Date: Fri, 23 Dec 2022 14:16:34 -0500 Subject: [PATCH 42/54] Option to build without build number + Adaptive mask fix (#189) * Option to build without build number * Fix repo url from workflow build * Resize mask with image * Pin more dependencies, Speed-up installs and update comments * Add mypy config for optional support. --- .flake8 | 18 ++++++--- .github/workflows/lint-and-build.yml | 55 ++++++++++++++++++---------- .vscode/extensions.json | 5 +-- .vscode/settings.json | 32 ++++++++++------ README.md | 2 +- mypy.ini | 21 +++++++++++ pyproject.toml | 6 +-- scripts/compile_resources.ps1 | 4 +- scripts/install.ps1 | 5 ++- scripts/lint.ps1 | 2 - scripts/requirements-dev.txt | 15 +++++--- scripts/requirements.txt | 9 +++-- src/AutoSplitImage.py | 10 ++--- src/utils.py | 5 +-- typings/cv2/gapi/streaming.pyi | 15 ++++++++ 15 files changed, 134 insertions(+), 70 deletions(-) create mode 100644 mypy.ini create mode 100644 typings/cv2/gapi/streaming.pyi diff --git a/.flake8 b/.flake8 index 01e8f922..93d41a1a 100644 --- a/.flake8 +++ b/.flake8 @@ -4,12 +4,18 @@ max-line-length=120 ; Auto generated exclude=src/gen/, typings/cv2-stubs/__init__.pyi ignore= - W503, ; Linebreak before binary operator - E124, ; Closing bracket may not match multi-line method invocation style (enforced by add-trailing-comma) - E402, ; Allow imports at the bottom of file - Y026, ; Not using typing_extensions - SIM105, ; contextlib.suppress is roughly 3x slower than try/except - CCE001, ; False positives for attribute docstrings + ; Linebreak before binary operator + W503, + ; Closing bracket may not match multi-line method invocation style (enforced by add-trailing-comma) + E124, + ; Allow imports at the bottom of file + E402, + ; Not using typing_extensions + Y026, + ; contextlib.suppress is roughly 3x slower than try/except + SIM105, + ; False positives for attribute docstrings + CCE001, per-file-ignores= ; Quotes ; Allow ... on same line as class diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index ed3c1c5f..60316e46 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -2,6 +2,12 @@ name: Lint and build on: workflow_dispatch: # Allows manual builds + inputs: + excludeBuildNumber: + description: "Exclude build number" + required: true + default: false + type: boolean push: branches: - main @@ -26,23 +32,49 @@ on: env: GITHUB_HEAD_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name }} + GITHUB_EXCLUDE_BUILD_NUMBER: ${{ inputs.excludeBuildNumber }} jobs: - add-trailing-comma: + isort: runs-on: windows-latest steps: - name: Checkout ${{ github.repository }}/${{ github.ref }} uses: actions/checkout@v3 - - name: Set up Python 3.10 + - name: Set up Python 3.11 uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.11" cache: "pip" cache-dependency-path: "scripts/requirements*.txt" - run: scripts/install.ps1 shell: pwsh + - name: Analysing the code with isort + run: isort src/ typings/ --check-only + add-trailing-comma: + runs-on: windows-latest + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v3 + - name: Set up Python 3.11 + uses: actions/setup-python@v4 + with: + python-version: "3.11" + - run: pip install add-trailing-comma - name: Analysing the code with add-trailing-comma run: add-trailing-comma $(git ls-files '**.py*') --py36-plus + Bandit: + # Bandit only matters on the version deployed. Platform checks are ignored + runs-on: windows-latest + steps: + - name: Checkout ${{ github.repository }}/${{ github.ref }} + uses: actions/checkout@v3 + - name: Set up Python 3.11 + uses: actions/setup-python@v4 + with: + python-version: "3.11" + - run: pip install bandit + - name: Analysing the code with Bandit + run: bandit src/ -n 1 --severity-level medium --recursive Pyright: runs-on: windows-latest strategy: @@ -106,22 +138,6 @@ jobs: shell: pwsh - name: Analysing the code with Flake8 run: flake8 src/ typings/ - Bandit: - # Bandit only matters on the version deployed. Platform checks are ignored - runs-on: windows-latest - steps: - - name: Checkout ${{ github.repository }}/${{ github.ref }} - uses: actions/checkout@v3 - - name: Set up Python 3.11 - uses: actions/setup-python@v4 - with: - python-version: "3.11" - cache: "pip" - cache-dependency-path: "scripts/requirements*.txt" - - run: scripts/install.ps1 - shell: pwsh - - name: Analysing the code with Bandit - run: bandit src/ -n 1 --severity-level medium --recursive Build: runs-on: windows-latest strategy: @@ -137,6 +153,7 @@ jobs: with: python-version: ${{ matrix.python-version }} cache: "pip" + cache-dependency-path: "scripts/requirements.txt" - run: scripts/install.ps1 shell: pwsh - run: scripts/build.ps1 diff --git a/.vscode/extensions.json b/.vscode/extensions.json index d2d596de..a5cf6e6f 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -21,19 +21,18 @@ // Must disable in this workspace // // https://github.com/microsoft/vscode/issues/40239 // // - // We use autopep8 - "ms-python.black-formatter", // VSCode has implemented an optimized version "coenraads.bracket-pair-colorizer", "coenraads.bracket-pair-colorizer-2", // Obsoleted by Pylance "ms-pyright.pyright", - "ms-python.black-formatter", // Not configurable per workspace, tends to conflict with other linters "sonarsource.sonarlint-vscode", // // Don't recommend to autoinstall // // + // We use autopep8 + "ms-python.black-formatter", // This is a Git project "johnstoncode.svn-scm", // Prefer using VSCode itself as a text editor diff --git a/.vscode/settings.json b/.vscode/settings.json index d6d1feeb..807a07f0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,6 +8,19 @@ 72 ] }, + "trailing-spaces.includeEmptyLines": true, + "trailing-spaces.trimOnSave": true, + "trailing-spaces.syntaxIgnore": [ + "markdown" + ], + "[markdown]": { + "files.trimTrailingWhitespace": false, + }, + "files.trimTrailingWhitespace": true, + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + "editor.comments.insertSpace": true, + "editor.insertSpaces": true, "editor.detectIndentation": false, "editor.tabSize": 2, "editor.formatOnSave": true, @@ -17,12 +30,6 @@ "source.fixAll.convertImportFormat": true, "source.organizeImports": true, }, - "files.insertFinalNewline": true, - "trailing-spaces.includeEmptyLines": true, - "trailing-spaces.trimOnSave": true, - "trailing-spaces.syntaxIgnore": [ - "markdown" - ], "emeraldwalk.runonsave": { "commands": [ { @@ -36,9 +43,7 @@ ] }, "files.associations": { - "*.json": "json", - "extensions.json": "jsonc", - "settings.json": "jsonc", + ".flake8": "properties", "*.qrc": "xml", "*.ui": "xml" }, @@ -50,11 +55,10 @@ "**/.DS_Store": true, "**/Thumbs.db": true, "build": true, - ".mypy_cache": true, + "**/.mypy_cache": true, "**/__pycache__": true, }, "search.exclude": { - "**/bower_components": true, "**/*.code-search": true, "*.lock": true, }, @@ -70,8 +74,12 @@ 120, // Our hard rule ], }, - "python.formatting.provider": "autopep8", + // Important to follow the config in pyrightconfig.json + "python.analysis.useLibraryCodeForTypes": false, "python.analysis.diagnosticMode": "workspace", + "python.formatting.provider": "autopep8", + "isort.check": true, + "isort.importStrategy": "fromEnvironment", "python.linting.enabled": true, // Use the new Pylint extension instead "python.linting.pylintEnabled": false, diff --git a/README.md b/README.md index 6f21235c..3c788ecb 100644 --- a/README.md +++ b/README.md @@ -92,7 +92,7 @@ Refer to the [build instructions](build%20instructions.md) if you'd like to buil #### Capture Device -Select the Video Capture Device that you wanna use if selecting the `Video Capture Device` Capture Method. Will show `[occupied]` if a device is detected but can't be started. +Select the Video Capture Device that you wanna use if selecting the `Video Capture Device` Capture Method. #### Show Live Similarity diff --git a/mypy.ini b/mypy.ini new file mode 100644 index 00000000..27f9c438 --- /dev/null +++ b/mypy.ini @@ -0,0 +1,21 @@ +; We don't run mypy in the CI. This is just to help anyone who would like to use it manually. +; Namely, the mypy_primer tool. +[mypy] +strict=true +; Implicit return types ! +disallow_untyped_calls=false +disallow_untyped_defs=false +disallow_incomplete_defs=false + +; Of course my stubs are going to be incomplete. Otherwise they'd be on typeshed! +; Mypy becomes really whack with its errors inside these stubs though +mypy_path=typings,src +; exclude doesn't work with strict=true Why? +exclude=.*(typings|gen)/.* + +[mypy-gen.*,cv2.*,] +; strict=false ; Doesn't work in overrides +follow_imports=skip +implicit_reexport=true +strict_optional=false +disable_error_code=attr-defined, misc, name-defined diff --git a/pyproject.toml b/pyproject.toml index 5b21dbf3..495b3a6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -105,13 +105,11 @@ max-branches = 15 # https://github.com/PyCQA/pep8-naming/issues/164 # OR doesn't fit CaptureMethodMeta valid-classmethod-first-arg = "self" -# https://pylint.pycqa.org/en/latest/user_guide/options.html#naming-styles -module-naming-style = "any" disable = [ # No need to mention the fixmes "fixme", "missing-docstring", - # Already taken care of by Flake8 and isort + # Already taken care of by isort "ungrouped-imports", "unused-import", "wrong-import-order", @@ -122,8 +120,6 @@ disable = [ "unused-argument", # Only reports a single instance. Pyright does a better job anyway "cyclic-import", - # Doesn't work with local imports - "import-error", # Similar lines in 2 files, doesn't really work "R0801", ] diff --git a/scripts/compile_resources.ps1 b/scripts/compile_resources.ps1 index a1a4ba2f..1b660e6d 100644 --- a/scripts/compile_resources.ps1 +++ b/scripts/compile_resources.ps1 @@ -10,11 +10,11 @@ pyside6-rcc './res/resources.qrc' -o './src/gen/resources_rc.py' Write-Host 'Generated code from .ui files' $build_vars_path = "$PSScriptRoot/../src/gen/build_vars.py" -$BUILD_NUMBER = Get-Date -Format yyMMddHHmm +$BUILD_NUMBER = If ($Env:GITHUB_EXCLUDE_BUILD_NUMBER -eq $true) { '' } Else { Get-Date -Format yyMMddHHmm } $GITHUB_REPOSITORY = $Env:GITHUB_HEAD_REPOSITORY If (-not $GITHUB_REPOSITORY) { $repo_url = git config --get remote.origin.url - $GITHUB_REPOSITORY = $repo_url.substring(19, $repo_url.length - 19 - 4) + $GITHUB_REPOSITORY = $repo_url.substring(19, $repo_url.length - 19) -replace '\.git', '' } If (-not $GITHUB_REPOSITORY) { $GITHUB_REPOSITORY = 'Toufool/Auto-Split' diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 669eeb4d..a7ed1534 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -6,11 +6,12 @@ If ($IsWindows) { } # Installing Python dependencies -$dev = If ($env:GITHUB_JOB -eq 'Build') { '' } Else { '-dev' } +$dev = If ($Env:GITHUB_JOB -eq 'Build') { '' } Else { '-dev' } # Ensures installation tools are up to date. This also aliases pip to pip3 on MacOS. python3 -m pip install wheel pip setuptools --upgrade pip install -r "$PSScriptRoot/requirements$dev.txt" --upgrade -if (Get-Command 'npm' -ErrorAction SilentlyContinue) { +# Don't install pyright on CI. We use an action +if (-not $Env:CI -and (Get-Command 'npm' -ErrorAction SilentlyContinue)) { npm i --global pyright@latest } diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index be1a0452..69ba1820 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -41,7 +41,6 @@ else { Write-Host "`nRunning Bandit..." bandit src/ -f custom --silent --recursive -# $exitCodes += $LastExitCode # Returns 1 on low if ($LastExitCode -gt 0) { Write-Host "`Bandit warning ($LastExitCode)" -ForegroundColor Yellow } @@ -49,7 +48,6 @@ else { Write-Host "`Bandit passed" -ForegroundColor Green } - if ($exitCodes -gt 0) { Write-Host "`nLinting failed ($exitCodes)" -ForegroundColor Red } diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt index 28bd6fae..0b0f0d8c 100644 --- a/scripts/requirements-dev.txt +++ b/scripts/requirements-dev.txt @@ -8,18 +8,16 @@ # # Linters bandit -flake8>=5 # flake8-pyi deprecation warnings +flake8>=6 # Validates configuration flake8-builtins flake8-bugbear flake8-class-attributes-order -flake8-comprehensions>=3.8 # flake8 5 support +flake8-comprehensions>=3.8 # flake8 v5 support flake8-datetimez -flake8-isort>=4.2,<=5.0 # flake8 5 support ; Breaking issue (https://github.com/gforcada/flake8-isort/issues/128) -flake8-pyi>=22.10.0 # Fixes for negative numbers -flake8-quotes +flake8-pyi>=22.11.0 # flake8 v6 support flake8-simplify pep8-naming -pylint>=2.14,<3.0.0 # New checks # 3.0 still in pre-release +pylint>=2.14,<3.0.0 # New checks # 2.16 and 3.0 still in pre-release # Formatters add-trailing-comma>=2.3.0 # Added support for with statement autopep8>=2.0.0 # New checks @@ -32,6 +30,11 @@ qt6-applications # Types types-d3dshot types-keyboard +types-Pillow +types-psutil +types-PyAutoGUI types-pyinstaller types-pywin32 +types-requests +types-toml typing-extensions diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 14bd6b0e..7d11f5e6 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -12,20 +12,21 @@ # Dependencies: certifi ImageHash>=4.3.1 # Contains type information + setup as package not module -git+https://github.com/Avasam/keyboard.git@fix-563#egg=keyboard # Fix install on linux-ci https://github.com/boppreh/keyboard/pull/568 +git+https://github.com/boppreh/keyboard.git#egg=keyboard # Fix install on macos and linux-ci https://github.com/boppreh/keyboard/pull/568 numpy>=1.23.2 # Python 3.11 wheels opencv-python-headless>=4.6 # Breaking changes importing cv2.cv2 packaging Pillow>=9.2 # gnome-screeshot checks psutil PyAutoGUI ---extra-index-url https://www.riverbankcomputing.com/pypi/simple/ --pre -PyQt6>6.4.0 # Python 3.11 support +# 6.4.1 fixes the rare Illegal Operation issue from RTADan, but the dev wheels are currently broken :/ +# 2.0.0-beta.2 contains the fixes if anyone needs it. +PyQt6>=6.4.0 # Python 3.11 support requests toml # # Build and compile resources -PyInstaller>=5.5 # Python 3.11 support +pyinstaller>=5.5 # Python 3.11 support pyinstaller-hooks-contrib>=2022.9 # opencv-python 4.6 support. Changes for pywintypes and comtypes PySide6>=6.4.0.1 # Python 3.11 support # diff --git a/src/AutoSplitImage.py b/src/AutoSplitImage.py index 8988b81c..7adc0b24 100644 --- a/src/AutoSplitImage.py +++ b/src/AutoSplitImage.py @@ -2,6 +2,7 @@ import os from enum import Enum +from math import sqrt from typing import TYPE_CHECKING import cv2 @@ -19,8 +20,8 @@ COMPARISON_RESIZE_HEIGHT = 240 COMPARISON_RESIZE = (COMPARISON_RESIZE_WIDTH, COMPARISON_RESIZE_HEIGHT) COMPARISON_RESIZE_AREA = COMPARISON_RESIZE_WIDTH * COMPARISON_RESIZE_HEIGHT -MASK_LOWER_BOUND = np.array([1], dtype="uint8") -MASK_UPPER_BOUND = np.array([MAXBYTE], dtype="uint8") +MASK_LOWER_BOUND = np.array([0, 0, 0, 1], dtype="uint8") +MASK_UPPER_BOUND = np.array([MAXBYTE, MAXBYTE, MAXBYTE, MAXBYTE], dtype="uint8") START_KEYWORD = "start_auto_splitter" RESET_KEYWORD = "reset" @@ -115,8 +116,7 @@ def __read_image_bytes(self, path: str): # the number of nonzero elements in the alpha channel of the split image. # This may result in images bigger than COMPARISON_RESIZE if there's plenty of transparency. # Which wouldn't incur any performance loss in methods where masked regions are ignored. - alpha_channel = image[:, :, 3] - scale = min(1, (COMPARISON_RESIZE_AREA / cv2.countNonZero(alpha_channel)) ** 0.5) + scale = min(1, sqrt(COMPARISON_RESIZE_AREA / cv2.countNonZero(image[:, :, 3]))) image = cv2.resize( image, @@ -127,7 +127,7 @@ def __read_image_bytes(self, path: str): ) # Mask based on adaptively resized, nearest neighbor interpolated split image - self.mask = cv2.inRange(alpha_channel, MASK_LOWER_BOUND, MASK_UPPER_BOUND) + self.mask = cv2.inRange(image, MASK_LOWER_BOUND, MASK_UPPER_BOUND) else: image = cv2.resize(image, COMPARISON_RESIZE, interpolation=cv2.INTER_NEAREST) # Add Alpha channel if missing diff --git a/src/utils.py b/src/utils.py index e2596682..6214f9c0 100644 --- a/src/utils.py +++ b/src/utils.py @@ -81,7 +81,7 @@ def get_window_bounds(hwnd: int) -> tuple[int, int, int, int]: return window_left_bounds, window_top_bounds, window_width, window_height -def open_file(file_path: str): +def open_file(file_path: str | bytes | os.PathLike[str] | os.PathLike[bytes]): os.startfile(file_path) # nosec B606 @@ -173,7 +173,6 @@ def title(self): MAXBYTE = 255 # Shared strings -# Set AUTOSPLIT_BUILD_NUMBER to an empty string to generate a clean version number -# AUTOSPLIT_BUILD_NUMBER = "" # pyright: ignore[reportConstantRedefinition] # noqa: F811 +# Check `excludeBuildNumber` during workflow dispatch build generate a clean version number AUTOSPLIT_VERSION = "2.0.0-beta.1" + (f"-{AUTOSPLIT_BUILD_NUMBER}" if AUTOSPLIT_BUILD_NUMBER else "") GITHUB_REPOSITORY = AUTOSPLIT_GITHUB_REPOSITORY diff --git a/typings/cv2/gapi/streaming.pyi b/typings/cv2/gapi/streaming.pyi new file mode 100644 index 00000000..c330960f --- /dev/null +++ b/typings/cv2/gapi/streaming.pyi @@ -0,0 +1,15 @@ +from cv2.cv2 import GMat, GOpaqueT, gapi_streaming_queue_capacity + +SYNC_POLICY_DONT_SYNC: int +SYNC_POLICY_DROP: int +sync_policy_dont_sync: int +sync_policy_drop: int + +queue_capacity = gapi_streaming_queue_capacity + + +def desync(g: GMat) -> GMat: ... +def seqNo(arg1: GMat) -> GOpaqueT: ... +def seq_id(arg1: GMat) -> GOpaqueT: ... +def size(src: GMat) -> GOpaqueT: ... +def timestamp(arg1: GMat) -> GOpaqueT: ... From 5fcf7ab6a6696be81c94babc766bf8dfbb5088e4 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 14 Jan 2023 16:31:48 -0500 Subject: [PATCH 43/54] pin requests and allow pyright warnings (#193) --- .github/workflows/lint-and-build.yml | 1 - pyproject.toml | 4 +++- scripts/lint.ps1 | 2 +- scripts/requirements.txt | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/lint-and-build.yml b/.github/workflows/lint-and-build.yml index 60316e46..e8ca03ee 100644 --- a/.github/workflows/lint-and-build.yml +++ b/.github/workflows/lint-and-build.yml @@ -97,7 +97,6 @@ jobs: uses: jakebailey/pyright-action@v1 with: working-directory: src/ - extra-args: --warnings Pylint: runs-on: windows-latest strategy: diff --git a/pyproject.toml b/pyproject.toml index 495b3a6e..2350488c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,6 +12,8 @@ ignore = [ # https://github.com/microsoft/pyright/blob/main/docs/configuration.md#sample-pyprojecttoml-file [tool.pyright] typeCheckingMode = "strict" +# Prefer `pyright: ignore` +enableTypeIgnoreComments = false # Extra strict reportImplicitStringConcatenation = "error" reportCallInDefaultInitializer = "error" @@ -21,7 +23,7 @@ reportUninitializedInstanceVariable = "error" reportUnnecessaryTypeIgnoreComment = "error" # Exclude from scanning when running pyright exclude = [ - # Auto generated, produces unecessary `# type: ignore` + # Auto generated, fails some strict pyright checks "src/gen/", ] # Ignore must be specified for Pylance to stop displaying errors diff --git a/scripts/lint.ps1 b/scripts/lint.ps1 index 69ba1820..b45edcf1 100644 --- a/scripts/lint.ps1 +++ b/scripts/lint.ps1 @@ -10,7 +10,7 @@ add-trailing-comma $(git ls-files '**.py*') --py36-plus Write-Host "`nRunning Pyright..." $Env:PYRIGHT_PYTHON_FORCE_VERSION = 'latest' -pyright src/ --warnings +pyright src/ $exitCodes += $LastExitCode if ($LastExitCode -gt 0) { Write-Host "`Pyright failed ($LastExitCode)" -ForegroundColor Red diff --git a/scripts/requirements.txt b/scripts/requirements.txt index 7d11f5e6..4c488716 100644 --- a/scripts/requirements.txt +++ b/scripts/requirements.txt @@ -16,13 +16,13 @@ git+https://github.com/boppreh/keyboard.git#egg=keyboard # Fix install on macos numpy>=1.23.2 # Python 3.11 wheels opencv-python-headless>=4.6 # Breaking changes importing cv2.cv2 packaging -Pillow>=9.2 # gnome-screeshot checks +Pillow>=9.2 # gnome-screeshot checks psutil PyAutoGUI # 6.4.1 fixes the rare Illegal Operation issue from RTADan, but the dev wheels are currently broken :/ # 2.0.0-beta.2 contains the fixes if anyone needs it. PyQt6>=6.4.0 # Python 3.11 support -requests +requests<=2.28.1 # 2.28.2 has issues with PyInstaller https://github.com/pyinstaller/pyinstaller-hooks-contrib/issues/534 toml # # Build and compile resources From d8caf9e09017f51a78ac7d42958cfa3158eeb5b4 Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 14 Jan 2023 17:39:16 -0500 Subject: [PATCH 44/54] Fix B028 (#194) --- src/error_messages.py | 8 ++++---- src/hotkeys.py | 2 +- src/user_profile.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/error_messages.py b/src/error_messages.py index 2658a083..0c271e03 100644 --- a/src/error_messages.py +++ b/src/error_messages.py @@ -57,7 +57,7 @@ def split_image_directory_empty(): def image_type(image: str): set_text_message( - f'"{image}" is not a valid image file, does not exist, ' + f"{image!r} is not a valid image file, does not exist, " + "or the full image file path contains a special character.", ) @@ -89,11 +89,11 @@ def alignment_not_matched(): def no_keyword_image(keyword: str): - set_text_message(f'Your split image folder does not contain an image with the keyword "{keyword}".') + set_text_message(f"Your split image folder does not contain an image with the keyword {keyword!r}.") def multiple_keyword_images(keyword: str): - set_text_message(f'Only one image with the keyword "{keyword}" is allowed.') + set_text_message(f"Only one image with the keyword {keyword!r} is allowed.") def reset_hotkey(): @@ -111,7 +111,7 @@ def invalid_settings(): def invalid_hotkey(hotkey_name: str): - set_text_message(f'Invalid hotkey "{hotkey_name}"') + set_text_message(f"Invalid hotkey {hotkey_name!r}") def no_settings_file_on_open(): diff --git a/src/hotkeys.py b/src/hotkeys.py index 64f7f5f4..3648416f 100644 --- a/src/hotkeys.py +++ b/src/hotkeys.py @@ -66,7 +66,7 @@ def send_command(autosplit: AutoSplit, command: Commands): _send_hotkey(autosplit.settings_dict["undo_split_hotkey"]) else: - raise KeyError(f"'{command}' is not a valid LiveSplit.AutoSplitIntegration command") + raise KeyError(f"{command!r} is not a valid LiveSplit.AutoSplitIntegration command") def _unhook(hotkey_callback: Callable[[], None] | None): diff --git a/src/user_profile.py b/src/user_profile.py index 8c6faaad..b737a543 100644 --- a/src/user_profile.py +++ b/src/user_profile.py @@ -148,7 +148,7 @@ def __load_settings_from_file(autosplit: AutoSplit, load_settings_file_path: str if not autosplit.capture_method.check_selected_region_exists(autosplit): autosplit.live_image.setText( "Reload settings after opening" - + f'\n"{autosplit.settings_dict["captured_window_title"]}"' + + f"\n{autosplit.settings_dict['captured_window_title']!r}" + "\nto automatically load Capture Region", ) From 0d6fc7fa55fa4b79aef180aee9a6215a59046063 Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 2 Feb 2023 19:31:04 -0500 Subject: [PATCH 45/54] Fixed run_start_time with start image pause loop (#197) Also fixed run_start_time not accounting for the delay in parsing images --- src/AutoSplit.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 86bab32b..90ac747b 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -517,6 +517,15 @@ def __auto_splitter(self): self.gui_changes_on_reset(True) return + # Initialize a few attributes + self.run_start_time = time() + self.split_image_number = 0 + self.waiting_for_split_delay = False + self.split_below_threshold = False + split_time = 0 + number_of_split_images = len(self.split_images_and_loop_number) + dummy_splits_array = [image_loop[0].check_flag(DUMMY_FLAG) for image_loop in self.split_images_and_loop_number] + # Construct a list of images + loop count tuples. self.split_images_and_loop_number = [ item for flattenlist @@ -545,15 +554,6 @@ def __auto_splitter(self): if self.start_image: self.__pause_loop(self.start_image.get_pause_time(self), "None (Paused).") - # Initialize a few attributes - self.split_image_number = 0 - self.waiting_for_split_delay = False - self.split_below_threshold = False - split_time = 0 - number_of_split_images = len(self.split_images_and_loop_number) - dummy_splits_array = [image_loop[0].check_flag(DUMMY_FLAG) for image_loop in self.split_images_and_loop_number] - self.run_start_time = time() - # First loop: stays in this loop until all of the split images have been split while self.split_image_number < number_of_split_images: From 0e05151939cce9066bdc49135f0557dfeb42d7ae Mon Sep 17 00:00:00 2001 From: Avasam Date: Thu, 2 Feb 2023 20:28:58 -0500 Subject: [PATCH 46/54] Disable Capture device: dropdown when Capture method: is not Video Capture Device (#198) Fix issue with programatically setting capture_device_combobox index --- src/menu_bar.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/menu_bar.py b/src/menu_bar.py index 27467e4c..df01fd40 100644 --- a/src/menu_bar.py +++ b/src/menu_bar.py @@ -144,8 +144,24 @@ def get_capture_device_index(self, capture_device_id: int): except ValueError: return 0 + def __enable_capture_device_if_its_selected_method( + self, selected_capture_method: str | CaptureMethodEnum | None = None, + ): + if selected_capture_method is None: + selected_capture_method = self.autosplit.settings_dict["capture_method"] + is_video_capture_device = selected_capture_method == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE + self.capture_device_combobox.setEnabled(is_video_capture_device) + if is_video_capture_device: + self.capture_device_combobox.setCurrentIndex( + self.get_capture_device_index(self.autosplit.settings_dict["capture_device_id"]), + ) + else: + self.capture_device_combobox.setPlaceholderText('Select "Video Capture Device" above') + self.capture_device_combobox.setCurrentIndex(-1) + def __capture_method_changed(self): selected_capture_method = CAPTURE_METHODS.get_method_by_index(self.capture_method_combobox.currentIndex()) + self.__enable_capture_device_if_its_selected_method(selected_capture_method) change_capture_method(selected_capture_method, self.autosplit) return selected_capture_method @@ -157,6 +173,7 @@ def __capture_device_changed(self): self.autosplit.settings_dict["capture_device_name"] = capture_device.name self.autosplit.settings_dict["capture_device_id"] = capture_device.device_id if self.autosplit.settings_dict["capture_method"] == CaptureMethodEnum.VIDEO_CAPTURE_DEVICE: + # Re-initializes the VideoCaptureDeviceCaptureMethod change_capture_method(CaptureMethodEnum.VIDEO_CAPTURE_DEVICE, self.autosplit) @fire_and_forget @@ -171,10 +188,7 @@ def __set_all_capture_devices(self): + (" (occupied)" if device.occupied else "") for device in self.__video_capture_devices ]) - self.capture_device_combobox.setEnabled(True) - self.capture_device_combobox.setCurrentIndex( - self.get_capture_device_index(self.autosplit.settings_dict["capture_device_id"]), - ) + self.__enable_capture_device_if_its_selected_method() else: self.capture_device_combobox.setPlaceholderText("No device found.") @@ -263,9 +277,8 @@ def hotkey_connect(hotkey: Hotkey): self.capture_method_combobox.setCurrentIndex( CAPTURE_METHODS.get_index(autosplit.settings_dict["capture_method"]), ) - self.capture_device_combobox.currentIndexChanged.connect( - lambda: self.__set_value("capture_device_id", self.__capture_device_changed()), - ) + # No self.capture_device_combobox.setCurrentIndex + # It'll set itself asynchronously in self.__set_all_capture_devices() # Image Settings self.default_comparison_method.setCurrentIndex(autosplit.settings_dict["default_comparison_method"]) From 26f5e6ebc476acd3d76e6e35c4c1123ad60e9cb3 Mon Sep 17 00:00:00 2001 From: Avasam Date: Tue, 14 Feb 2023 22:52:51 -0500 Subject: [PATCH 47/54] Fix start issue after finishing splits (#199) * Fix start issue after finishing splits - `self.is_running = False` at the end of `__auto_splitter` - Revert moving initialization of some values - Move `self.run_start_time = time()` before parsing images * Update hardcoded references to repo name --- README.md | 10 +++++----- scripts/compile_resources.ps1 | 2 +- src/AutoSplit.py | 21 ++++++++++++--------- src/capture_method/__init__.py | 2 +- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 3c788ecb..afca4ff6 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # LiveSplit AutoSplit [![CodeQL](/../../actions/workflows/codeql-analysis.yml/badge.svg)](/../../actions/workflows/codeql-analysis.yml) [![Lint and build](/../../actions/workflows/lint-and-build.yml/badge.svg)](/../../actions/workflows/lint-and-build.yml) -[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) -[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) -[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=security_rating)](https://sonarcloud.io/dashboard?id=Avasam_Auto-Split) -[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=Avasam_Auto-Split) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Avasam_Auto-Split&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Avasam_Auto-Split) +[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_AutoSplit&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=Avasam_AutoSplit) +[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_AutoSplit&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=Avasam_AutoSplit) +[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=Avasam_AutoSplit&metric=security_rating)](https://sonarcloud.io/dashboard?id=Avasam_AutoSplit) +[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=Avasam_AutoSplit&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=Avasam_AutoSplit) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Avasam_AutoSplit&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=Avasam_AutoSplit) [![SemVer](https://badgen.net/badge/_/SemVer%20compliant/grey?label)](https://semver.org/) Easy to use image comparison based auto splitter for speedrunning on console or PC. diff --git a/scripts/compile_resources.ps1 b/scripts/compile_resources.ps1 index 1b660e6d..909036fe 100644 --- a/scripts/compile_resources.ps1 +++ b/scripts/compile_resources.ps1 @@ -17,7 +17,7 @@ If (-not $GITHUB_REPOSITORY) { $GITHUB_REPOSITORY = $repo_url.substring(19, $repo_url.length - 19) -replace '\.git', '' } If (-not $GITHUB_REPOSITORY) { - $GITHUB_REPOSITORY = 'Toufool/Auto-Split' + $GITHUB_REPOSITORY = 'Toufool/AutoSplit' } New-Item $build_vars_path -ItemType File -Force | Out-Null diff --git a/src/AutoSplit.py b/src/AutoSplit.py index 90ac747b..b2fb5e3d 100644 --- a/src/AutoSplit.py +++ b/src/AutoSplit.py @@ -513,19 +513,13 @@ def __auto_splitter(self): error_messages.split_hotkey() return + # Set start time before parsing the images as it's a heavy operation that will cause delays + self.run_start_time = time() + if not (validate_before_parsing(self) and parse_and_validate_images(self)): self.gui_changes_on_reset(True) return - # Initialize a few attributes - self.run_start_time = time() - self.split_image_number = 0 - self.waiting_for_split_delay = False - self.split_below_threshold = False - split_time = 0 - number_of_split_images = len(self.split_images_and_loop_number) - dummy_splits_array = [image_loop[0].check_flag(DUMMY_FLAG) for image_loop in self.split_images_and_loop_number] - # Construct a list of images + loop count tuples. self.split_images_and_loop_number = [ item for flattenlist @@ -554,6 +548,14 @@ def __auto_splitter(self): if self.start_image: self.__pause_loop(self.start_image.get_pause_time(self), "None (Paused).") + # Initialize a few attributes + self.split_image_number = 0 + self.waiting_for_split_delay = False + self.split_below_threshold = False + split_time = 0 + number_of_split_images = len(self.split_images_and_loop_number) + dummy_splits_array = [image_loop[0].check_flag(DUMMY_FLAG) for image_loop in self.split_images_and_loop_number] + # First loop: stays in this loop until all of the split images have been split while self.split_image_number < number_of_split_images: @@ -618,6 +620,7 @@ def __auto_splitter(self): return # loop breaks to here when the last image splits + self.is_running = False self.gui_changes_on_reset(True) def __similarity_threshold_loop(self, number_of_split_images: int, dummy_splits_array: list[bool]): diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 2e5dbf9e..38a6b2de 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -217,7 +217,7 @@ async def get_all_video_capture_devices() -> list[CameraInfo]: async def get_camera_info(index: int, device_name: str): backend = "" # Probing freezes some devices (like GV-USB2 and AverMedia) if already in use - # https://github.com/Toufool/Auto-Split/issues/169 + # #169 # FIXME: Maybe offer the option to the user to obtain more info about their devies? # Off by default. With a tooltip to explain the risk. # video_capture = cv2.VideoCapture(index) From eeac9638465dee6b4f2a114aac3fd75d79765ade Mon Sep 17 00:00:00 2001 From: Avasam Date: Sat, 18 Feb 2023 13:34:02 -0500 Subject: [PATCH 48/54] Change default capture method to WGA (#200) --- README.md | 6 +++--- src/capture_method/__init__.py | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index afca4ff6..268be797 100644 --- a/README.md +++ b/README.md @@ -68,15 +68,15 @@ Refer to the [build instructions](build%20instructions.md) if you'd like to buil #### Capture Method -- **BitBlt** (fastest, least compatible) - A good default fast option. But it cannot properly record OpenGL, Hardware Accelerated or Exclusive Fullscreen windows. - The smaller the selected region, the more efficient it is. - **Windows Graphics Capture** (fast, most compatible, capped at 60fps) Only available in Windows 10.0.17134 and up. Due to current technical limitations, Windows versions below 10.0.0.17763 require having at least one audio or video Capture Device connected and enabled. Allows recording UWP apps, Hardware Accelerated and Exclusive Fullscreen windows. Adds a yellow border on Windows 10 (not on Windows 11). Caps at around 60 FPS. +- **BitBlt** (fastest, least compatible) + The best option when compatible. But it cannot properly record OpenGL, Hardware Accelerated or Exclusive Fullscreen windows. + The smaller the selected region, the more efficient it is. - **Direct3D Desktop Duplication** (slower, bound to display) Duplicates the desktop using Direct3D. It can record OpenGL and Hardware Accelerated windows. diff --git a/src/capture_method/__init__.py b/src/capture_method/__init__.py index 38a6b2de..ba2715f6 100644 --- a/src/capture_method/__init__.py +++ b/src/capture_method/__init__.py @@ -118,17 +118,6 @@ def get(self, __key: CaptureMethodEnum): ) CAPTURE_METHODS = CaptureMethodDict() -CAPTURE_METHODS[CaptureMethodEnum.BITBLT] = CaptureMethodInfo( - name="BitBlt", - short_description="fastest, least compatible", - description=( - "\nA good default fast option. But it cannot properly record " - "\nOpenGL, Hardware Accelerated or Exclusive Fullscreen windows. " - "\nThe smaller the selected region, the more efficient it is. " - ), - - implementation=BitBltCaptureMethod, -) if ( # Windows Graphics Capture requires a minimum Windows Build WINDOWS_BUILD_NUMBER >= WGC_MIN_BUILD # Our current implementation of Windows Graphics Capture does not ensure we can get an ID3DDevice @@ -147,6 +136,17 @@ def get(self, __key: CaptureMethodEnum): ), implementation=WindowsGraphicsCaptureMethod, ) +CAPTURE_METHODS[CaptureMethodEnum.BITBLT] = CaptureMethodInfo( + name="BitBlt", + short_description="fastest, least compatible", + description=( + "\nThe best option when compatible. But it cannot properly record " + "\nOpenGL, Hardware Accelerated or Exclusive Fullscreen windows. " + "\nThe smaller the selected region, the more efficient it is. " + ), + + implementation=BitBltCaptureMethod, +) CAPTURE_METHODS[CaptureMethodEnum.DESKTOP_DUPLICATION] = CaptureMethodInfo( name="Direct3D Desktop Duplication", short_description="slower, bound to display", From d110bd0b3baf3237595ca7f3bf3785c40a08de21 Mon Sep 17 00:00:00 2001 From: Austin <37423484+Toufool@users.noreply.github.com> Date: Mon, 20 Feb 2023 10:16:16 -0500 Subject: [PATCH 49/54] Delete example1.6.0.gif --- res/example1.6.0.gif | Bin 4643185 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 res/example1.6.0.gif diff --git a/res/example1.6.0.gif b/res/example1.6.0.gif deleted file mode 100644 index 7e4854c62062568c1acbc679fa8c3fc522f97cd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4643185 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 z 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

(jVlObdx)eid^*zzAB67xPC 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ΞP=y^L1PS^&6$42WBfV{PYN1{ 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
OcyC1#wDJ*I;z1% zRIK)rDo2fVG*kM$_pbVovA%@y0pdfEtY{|ONa+M9QVgswTTKbSvHp+uH30$njF@Ww3OJB)RO57y5=WgSrj`Uu( z-ECPv-)F0prHY|~I0xGv+^BV_);0gy-~Mj(r8;mzCRW()P+ax<$-QgVZyB5^A}aqhz)EbksQTabsN7(_on#~Pb0 zNEED~s(e`(*hobjwaZSkP+0pxbLFv8 E6!uyoCjo6;`P2}6n?3<^sS1GrP2j+G1 zZ#@_2W8{G0zBiFK!u+-K;ucvqQV9AJ3yr%X*3{gzs&*+KVn?5Qkcpr19ypCndY}W% zH5kvcgBJS6II+OZ@67!0Q16e>WVW+IP;*+17dgQmcp?5CISEvjHxtRMV#!Q$Ug5CGHSJmN}dmSPdA;Tz~ zjmO!xl-Xbk)aNN|Zm*`7q8((2oWmgHa}lu`TpfF`V#YPX?8s$0Tig;k&*D(*F>mqWs z(Wwj++Vb}I!DufwIa+38R$aOP`*! z3KcHzs(jv6e*Q!ovve-KZ%Z)X*=zqW@uMq~|Le~SfiA?xMpox^=`X3_t3_Z(3dEg& zAj**tGDid-gg^E9TvHxRrW+sXAa+p z7Jf_!c*`~a@$Lz#$e)x+4C>)=(t7I))V9D=$8TCEh5W=p>`!Y%&XdJY-&7nQHKUe> zbxWCw!+*bC(W{>xi!`&i`nhJH(fu~qGj^g=DFpbvlyC)6O?`If6jsCsVgiAp+MwQ9 zNVyT|3v8qQSm~jkf(#Da=O37!N3TbkB=T*_q5N0)EfmlTD{x#$kvCds`C;stIF3?u z_Mw!P!8a&OK%4iMRv^g9>a;=IH%`(^V~OwDMd=N?rH#=Y?Ph&G9(iroaU1SmbeVZ8 z?x2vHrAIF$4u`Bx3cI@Ncd6FJ)S#2EDPLYneuGdb&?wS}&o;$vRy*<4|96YJDweTrP64$H8|rkUaxzBGkork4DWRz;pLL(7cBIu0^le z)~SabjyMLbtUj*pb!szAe6P&e3z{hwR11H)z8^AQDeKg8Dfy-7zGUa46qO1h)3;1y z9P}HB8d0wjYb{(m8p$pz)$$HA8bKX16IJpa{cclwTs*_@lX>AQV5QaG&y6ZUrWUpW zOy(IZS$SXtIHx?61-DbBWN=xUK-bRMiFs3^j{PCG4LRtG#_&6+ zV^3QM`6ldJh=kO{S>jHO#SzQSbnZ%urKzZDt!8u$c8DuRM@l}cx`)12hTv1sdv)xv zqzI}M(y4l7oo>i1lCE2qDpP+%0M&l5R*LWXmKmA4&^-jE(1R9w}T)&js(e6vdk=ME8UcA@NP13rp55xa(+ks zn=rFpyB;8-#$7>izuG}AB^v1X+jmXKyDVxHzjLB{t%uR9KwT6XVOH-cm=xZ4>dLS1=6EO?{*Au3@%BZP`4!2iv!`Ig$6Y@V zr8=AB8n1Ms^Xl%Nb}EhZl0IK_zEpiZln%M(2hQ$wkwc@OTZ={~wMYxom_+a9yy1as@Tay)1)=ef;qISOuLlIIFN@fB z2ECIiO?Y&zw6S(DdbL@WSp+}7yMiD*@_P9}8%TuTSAXm-T9a2mMcJ9eKz<58!Bpc|yexP&1wdxGrq7nZqQX4b8 zaxVPaz(vTm6+aV)Jv#iw+(Pkd4}JKrV+uZHs-mMvAgNoAPpCWKWj`t{NOTdZbsFBn z`6*70TLA8m^$sC^#tS8vF1VvxuzyVoO_n4%KEMGA8#T1bY}tWgVn1yZz?*TRQBK$ zfm9`>hNK+ReJam{h#YU7)9RJ%z)Iv+#)<~PU;fS&-P|kCaKWM}q&zuW^%CWtPyvp) zMGJX@HnuQ>@QVz@ZN(OvteciAD_b~g9_3iwf(1KLz_KJ~gs zLvOe!(HqDIDUI+5H$jHVNQ>U7&sR~Rm73Yws$f=E)pD_@;bR`dO%F?@Q9&?ELm*#u zw~DMvy98fU2Vdpo8L<9Tac;ibSf}jis8kDajb;=1#bfVmZqSdgJ0>VUhN^HgM!x>{ z04#o!%3HRVCt=url_+}&eK8E1``t}@NqQ$56+aUoBxpCT2W;wRyM>zmD09sR9S7#X zEd7%Ba#BFJ2}-`}N@%xd>_Xagw!LOEmNzeUMl}Xo!=T^hdzb;1Ypkjvb_B?+Lwxd%e_l zFN#VC@d<2B<%9{`trIr`^wzp92PipAJecI)n<+h=dCKo)8gDvm=F&c;P-mK}!PPzw zx4Km*0lEgt#9JH+wvr)o@*7BdOLbx9O)etq!cEo61^zQ{M`Ph=Jy0bdAH=1x{pSi{ zq*)eQwMRR1yPYQ`R>SQbrpVOL^aZn(EiEuysF~7^@br>Me`XLF&L_r`P*24}a~{FL z76SdSS=sNF#im>e0*OXtM8j6yU@+ulOUuC2v3mTGV2LOYJu6!k3}5_xm24x4Rfyp! zX%L$;{P<&g{<8Q_GIiUblDWb^TJo? zeC#U}J{1+H`!3BEZYj%Bm%Nj29hD~VCLk*{h2vl6oWGS9p`pdY&&fOf9#E*u3F6I< zHJ3d^1;PtFZew$()1m=Ss>o7*P^-lq6F=CeesAiyC#BEGSq>N5cF71-3B_`i6S+dn zQO3RN;6j6A!Q;mwfj314n1Y>UUNG6W`8&J!LbP(o?9CrTJhKYcTnVq_1AnnJ3}uh) zXINBPE5PPzQrz*NTmcC*REjDg|X^jnq$npq0?i1{TK(&9QnG%trZh1>jC@pWbjW%{NcOv?o2DX15FW z!sh#4tFRxZS$VNxHEe~nqqd8I(LBlK&k1u9*p$QX8#_fNLtN^W-8f)dg_0u@Z*xU77`p#`=&auuNq=1W2GxTI}Xo z(adjszkwJS*1}&|)1MUAP@HzNJ}%bRw=#TK`5SmA;a+oW+eol=ss^~658_G|bsUv( z>7$vFt_Mu(RF$dd^TVuDXz=k-ILkbQneXe>@Y}>(VB6y1Fl3N`64Wev{B&W}o@REC zX9jz4a`$Lxp~AZ!&=Fb?#+h~6&-Vh{vLMlTjwYo;?mCh3-SGKNx-$hOOw)ZDH zV@_WMirPbHRjXH7nuZJgG_-F1g9fSx8*D}fAJru%BS%0S8WwJb_5!;}o1sNO76%{_ z)7%1YvnzJJ^Mlr8x`ti~DEM0syoICD0n%sY-5da+)=nHV0EOh`r3z?=_U9QDS>N*$ zv{px~Kb<$7XT$N=+s$a!jKgJX=CbXdyzbH&6J|dBp^Z0u$h41k`P_Y1O@^(V%l&UO zD{C730HlC+RD{sX_Gqp}`D9FkG`Gb8%mUa6kpF35uHZd*;Lk+)@6xXs zuDXeHoIjWJlx_4iYydxK2ch{^%$XxjXZ8nB*)+J|E-f>jW&v}wAiG(3(JZL6A2GKe z|Jj>T?Cfs3*~`*u%$F>Sj5C!NIzkpr*dW94JcENC9Rm~^4Yp*{$n*BrC893#U@HZh z5r_PDk<7EUc59J5`H-Wnd*RG#^{;(e2bC7$R&sFA$v-d#k9`E+WxKFxy!@t8D2Oxr zQAtexgLjY49EL$WepNJ0-yI=By!AX?QiN62QME;`$(f$7UfQ9WXKcW33YxUVMYbY% z^~ax8OO})QfrHZEjGpU~b-uBs$aN7T{f-ctWB#qTrK_x&IST^Vc^333S4qq@?^8R7 z#Gu)W+`PAX&$!*)G-XsVm$Yg+nA&Wmp^&GZvY}4SE4%?g{i02oi0Iy?x$3f9Cmd!N z5Gz~AM{{vrU`sW<%Z-dWc}>t6?`drciMMzhrT^F&Z#p%vm-5W#QrMB=C{Le7vPM0b z{60TaNesNtzN1c4@bl%o%Ii)yH?H>$kY0b=Ia=u8l`jj!*QNte~^?$za=cjPtnlUBP^NCfK|_Zxz?~kJP7R9)6X90; z>+{uw+r6QPyau_Z4`A2hrsOTXR{mg*GhyrdPt%`{W}svVdqtTIhM(?-eahKLMO71m z^0WYNhBD33ukCI%0rczhKHLv`Pcq{ShE;f({Ww+p<9g3Or+_L4d>V(8JpHXaTXPzT z1GRu)Q>j&9_l z@#6UcJg8aS$6Fe%I602CNXaHE3JL8O#As0Qj}*cW}N>PY@zxy&_)J z1Ek5Q7uFFnDG`dKT82oo#}>iLOg z#IlQ8Va`{smA0O`-Xq#X4?p3>dm_^82j|p@`A9Fv;3*;hLn3{H!t=;V6NQF^uYN6> zyfnyt3#hUeQa>K`jmn?HZke%uE6aYP_A798QzPCIIBgw0;}xAlIz5+?dq%UwMYp8z z_Qn7^-wQ)fw1y6jD-WIdP-BDgoVX^aUG{Rcwy3F%q=)hn{d`6H_RGA>*R#&--m1Kz zedAW^n>r?N6W6_YcUSA!M@|d%ODlj#^`4FdO>co}!(%i6&nC~u4D(gU#sUpJWE&a* z&l)8E2o?2)=hpuIFn_98+vd}=1;yZP^jbJdwkX=sRnY1jjf^kY=*bV_D2FogBL^Wv z1zKVDo<7*3*xC=T&zroxqPK&FyA$#^%0iE*hBNrXhu)=UL@MHhw?BNiat3#{xcp7z z=bvYmA!mv8)Jx7$w;txfNni9ZML${rh{Mt8lrM0vT>0$Dv<7NA7WTfqwfjL|k8!TT z+1wvKlkr#1y|<~_w&r`EgVIe|>-OKYI{?G7J^bn+N3dw`gHFpni10_GX?KMr3iamo z&ApFEK`g9bv%+C_&*Pp?asTD54?$xmjO%Lzt*hf~hZ5{26YQ4~99|?ieo1ipn?UAG zbUs3XswKLfOmuTfbPr7QIGgC1o#<7O=-rm+GnD8%ndrBa=>H-y;7elQ-$V*;QjkPa zuv${c$)r%Hq_DuG@Uuw~*-4QVNl|S{(L+h64kwdhmi~tZJ@X~$?BAqV-sCum&Hl6NwN z=9H2jm{M>yr7%0Cs3N7fEu~~ArF1f-Y$>JuMauavDHVTH=)9?wM>tcp)asL|HBPCu zfvI(8Q!iwv)>ou9w52u0?gmmjlzUoK3%) zojzWXeyuJ2`cV3f$@Gb(^qVizZ+%Ih{F{Er=FOOr$hfVRF?}*)#wlYqFk|j)#+~ep z`HGB%wv4+&8H%zV0(`RqmJ^Dmh%{$_6RW^GGk?WkqFJel>%DeHA$)|<0gZ?lgomaKPe zS?`CkK1^nPT*~_NBJ1;)tS^7F_IR`RC9=P&Wq&)F{oN`1M_~5Pv)TV-XCG8#|7y$r zJ(T_LWcHt>?EhY5AAZUH`!}0fkB`Mq@U+QqUn56pT%9$6p%axN)JiDIs zW#|6IWVIK!vi<^jR8k1rw+ncs9S2f~FXzrnn4MQiReycAPA%lYK&r;u2dyXbcvRCg z->vjGbvh2FX?=KfDRBC{YP$BP%_|nc^NjT5f}Dx7AYLAQowLtwB~RzdX6VH)4z-#U z9*;>L@x0p{qT5kx?)JjC@qwqKq1Qo82>#? zcy}jvD)ZB)w{1DxmudqDz#u9$9cC)B?LF+rrZf;Bw)O1=ejDl>2=5t@jv{w)0*6cF ze0@iWt-CI!MESPJOQ)%^A}Z<2LVf3XT}h4|KCTvPbA(WD$Og2Paelk3JBa15}ptdyLnuCf}k{Eu5#T` z?V77x_gN8I9V)g19MTUC>H`P%fCJh=zD*#X3qbE0h+8SQOCf|z<8sIb+NFW4&q1tW z;FbX>6E~!>725bDpTS89U6P8iKJlah!BCT+M?4zJRMA#d)KF3)DyR^pRn#ODRPk~r zq@>hjBsAo3hBCtD(n5B4VV7fqCSn4rqCyHH0y2VF94}Ug7cGE-^TJ>VZWscJMuCMe z;9~+{Ng;@gFhoWKDvRTm6Nf8Gz?CIYDpEWu(mVuN9(6fhO*yo#EW$t%YAgvpDGM`F z<~2~^H#i|+tj13w@R_Oeo2UzuG)2ucMJ%;NtaU`~^~Ah%kNN6~d+Qx@HazBNB;jN% z>2y-cg(T%ll5sbc^E8$9F_rT*mG-xh3b2z3u#xq(RP?q~_OR1%bw26rX6@`|;_s*x zWUCxvqZnqV80H`!PF9F?Qi^m`iE=s-?Myi3LOAWLcGg)X-c32qT`k^SJ<&@m!AtvS zP4v`A@YYQB)k^WzO7+)H_18@c(9iHUNcA&J_9Z3znWYDqWQCjNL>lKr803cN&_c8d z!!%1G^h?5Z%fgA}k%nbw%*)T3SDw|YJ*`@EMz8v;dE+_DmN<*nIPRfbzdmQPKNUwy7mOP+gYj!Q4qsXxnMAe($K%Vj9bbu^nin(s7L;4)g^ zF;MK)T^i6{7T9qRpZqx-#G*WIg1c@l}_>I@9eT({Gs>{P1GvlS`r7BN4AJN4>ii^LaLQZ#i}MLDuHoiaV1H zgRF}+opTkP&&xW$ly)7QXa24l{I}uCzn$zqeRF?U5B^+x^k?eDpF6MrEWZ1*^!d-) z*FPIS{(FA#-}dkSwtoG$_4^O(5bz9s%$mix0p-Tx{B}RLn5FFREL7{9J$|!Py*{%7$>2rz?b)r|g^x_M6k2oQ)ccL_=f}|x~Dd>8`JC`nN z4Ox@Te|NE+lf@6TslE$U+ee-}t>{$>q0=mCNjXx%8N$-j>5r#&y8N09QAYg!HS45&((vz9IdCkaWtoD#GNs*`yHD=O1{ zvz<~-^r|`D@Js1xr`6|5%V`E-v zA?m(>O*pP)^9=f{d^=1uk|`;7%njRN9Yzz7+D_H&Td5X5Grr$SHsg{l%FK{)r?^Hj ziB_%XdzCF7X(A)@QU&;P5iSW^!jIZZ1ae_AM(^V8bk)VUwENePrHYU2RN)(vWilgM zxsh6Yp0edeRUt)()TzrbnTjH9*ilNf<4rs6F!9w88>;+~H6wKD<8TkLZ=lZ6SoF0y z$HVQl#j#XPe``CQF%wjDeS2Vi0xWoqs_{IH`*^V-(5AN~H`qohx#(A`xP=zf&CVY^ zZzX}DpRP{T@T=?|&<;k1U&#V^J zl~)YFS{sgL&XzK-YaS%dB!r;ClsWp;dt8M{XXh)6WO8?ht?}pqnLzPm%#P?#MWi}h zDzQjb{?IuOC0po`NE0sV$iN$NyEj&*N6I#Yx-3YQTv=5(7R`_>z_%Jn*~rn4jl>7i z{ccBv)VQ514yxhwdr4~#S-|=#%)b(4dAJ{`N0k4kby21Q58Sw~H)Q@YqO=I5zcMdB z^ylk6ofj`xRixW0+QV zSb4E|nT}{ElQ`s@G>`2Si|3#sTwHo<>2}!N#Tf?`u4@KbwlTHJASnS!^%>e5)sh@@ z8GS+caw<8YjtL(0Dl9bEZRdK|Va_ePuUpt6OK2|M4!mbp%w9)D9GN?OS7bFfv$Ls( zBvc2c(AvDyL@mwUU2CrJXC_e9rny!CK+-&)!5^_oMSq5W5dMZDf(7 zxGRw?u41n4MN&g!Iq`OQ)G6Pc$gU!fTx)D*>Wr$q?Q)4vO_A$81+`>7`}dbS#lIXx zR^@u%R1QBSu0S-GCGEo<#yIlU?I6#evD|v|lGMguGtWM`tP+x?>gW z-}5TCjx(xjG#T}TUiUXqvWKpqV}2urPS#RbUPNd8rmmU+iT|kGe@KmyrZjf-n^?j= zibe`t77+atq$RF9CBd?VSNSI%{fJo^;a5c~F(G38*BTaWwPEM980|g!=marVxktSm zG!E~%dB(kl>(h^kU5BBxL^Ijw)30pBxl{y^%IniWX|WOO>EIwLkk0e1Na2~itZsX? zqxrxn4K$eioKVQlyv-*wIxYSNu&O<_9bnNi7~>S;hNp4GH{It*ekXJ5%}~J~Bhhdi zr}$YT_cg}RGY5`Says(mwIzr9Wv>v@on5a~(3!o_F)=vV(Cs_7Zn#&to*Vt4|7(Gq zrEXO3S`l^A^Z3WufsoGW^A-9+QeSq@)ky*?l8REr3+{hC42q~M*B)xuRP(Z`Uwe9f z%5*9E!``%#@Kmu=hE#Adsbu?h5%hG)m8ol6V42NeZe-xNqiE}Cj9ayv2BRXs6h9-r zL(V%n_EJl}Xle_#AM8vE7P$WmDmSnNJ3a1m=fwLs&|P0?d@oFEld-R7KT4A>eM>H6 zd#Aecy$%-pcU@o>R(qkmG8G>z#H38C;8^FA{&0!J#LlPyD#OgddFb+@S&5xt9;caH zbf5L?_#zrN=YPbjwA!T4@SC9Yi7>c_mHw_B8r^Mn_fTsREk2N{LDmt$Uv1Ep={nx^Os_HN`2 zzKK@9-XlvGjsoIOq7u~j{o%fsb5ryewbn^x=u|FN!Tvd_Pr_i zo_T#uj8Jm!f}Gf3Wd7O)0hE@PJ6p9&Q@o@4BKzMUUIlx2*Jpyy6_-mfHOgJjO(cny z0A52`~+ChkLPZSvU9>6b#%YS3Obn|m^ph}c#?{RD1TSkwti764&{EGzR zEHmfC(_Z3&-dEF_oQHYbHI1J4k&>G>4l#Lie@rq|u3*L1TbGMp>BT8GP#6)>+@H!m z=~LjyT=o{+x~x|<(+n{y#tJICAO}-t@c!k9nBl=@Y&TU&?%!)+;s7yaAy^fe{{j_$ zo{oM(=WdPQ83cfo2x&|cXbMH0KS804?i-OC|I{59^cXPo54RBqKqiHpX2qv4xC4L0 zcbVWOuI3r8=NWYzn@mo)mjheTfqh`}_z0gxvv~qMaq(_9F(=xGae8P@~icqUqv?SiuMYl&;~Qovb#vo!v_WhtuT~G29ve z;71M@dYwA7&D|uOb9f$*HhCGfNCyrMdsI%@j_%mBCMcBCPxbF}tFgdJyRZ;SUP^3w zcYB_(S4mGw$ru;y?v#a4km8h@o5_g`j&^W}>*@N~AZKVWl`p0pc6y)RWE=OM zfiuK#=Lw|dS{KO_!i08U&({FQ=)q`K@WnXpD13a?j{0MWaFZbX{w&Uxf*ag|g>s;p zy?H-!OE999d=0pM5!&;AGTnQyJKr+*E?3?a!QQBcy%Of_CYCLZd->|hegp7kV+xkX zv6+I0pwzEAVH(`piVB4xf*wR}9YO9F`_OPa^sJV2#IQnRW%<=*@jD0SM~R>uHXI!b zFXtdON!&k$c#m%t4VXX^0a6lQB}-V|&1864dv4D@(3TB`y(>P$QKu76U9~FV*SnB# zE&Uru%P*jgq zI$KT8#yT7Wg>;BU4l8Kn*5nr!{!@Unq2R*z1R^l0mrX!96nKY5EgFxI{Z$k~<}RR; z6x`H<7U0bocs?E3z0Di@2w=}iYuSaM$*?I)TnAG+QLkk+H70ojkgBKZez*eo&ThG1 zcVW*0OVevTO8E;0wQluYc;JjxFBW_*DHKV9MgZ{V@UF6R5}R?*V6qUX!&s$KsLMNL z#2Fk!hK5m~8hc#!qGFDE@cc?{Wd*U&SnifM1>}fm6Id^>n~NDo@85<*ljCFca7D4F z)>1nZeur-KwLH1j`tDc9_BErv{R@waTi*Yw|HjFT!w8+c>=XPIipI#t#_B5X3kGAL z*E!sAvM?*>E;~u^Wg-}igHkY1T{7?stl|<81e$h2Q(&W&(E4v0%-po(6==tvZy&b3 zXB%>c;EBeF%KjEr^yy7X^L$%;A;m^D`U;N~Go1RqHw(c$r1>xl`oqhQ20~MqG<~Kw zG%FL3{YFOc@qXuCd`&_u)U6+xJR{n5M8k5y@0*L+Y=J4U{S+#MxW$G1jf*BIw@5jw zrs7Vpac4N9bTTYy4RHTRUobFh@&U45>_FTgWUmZ1kGHTF- z6Dajk6$NP!KW6=}HN1Qos^ z@`}K-&K@2lK{fFs23t6YXm6CWlaZP7EveDQ8`mr}!ZdI2jJ6*QnqBYmy)HHvROVh) zv<9-`Tpuh2JMJC%LBW<}+;xt^r}wq#q|0u&p_W)Hg=M~AkWhX&6vBjbx7Rfv3_2nUeL0rXMPuePE$W6@qz z;AP3&Hmq}NrGInNG4!!1R3hN1rESiF>{8n!`E1mv%X4&%?elIfB#hJQ(V|2Tq&-TkH+lXo0(N&=<~*1MlWF{s84!!IC84 zk-5$A>9hs|*6k`%UJVZcK;8Fz^#SSS#A|2{P|254GnWPx|u3EN?q5&WR%j@6EAae%D9Y5tt zhBzBRx^qA}%J3Spv9sNYv-qVWL)+OkiD=e5GwspuV^BUnunp(Y>C6Y7)P=KbtMn~} zXpBP;17yg)Zp8r^P(hJ-&iJrXUjZ}E|@YULJ_46$M+wT!)*cXY(@;xRs5$$=} z-}Kv`3Aa0J!dkZm;x=vMnLLMEnB&`g#@hmp+fx7Dw>kDGdkcQ-IpGzP+lwgpU!3cF z3q;7?F@f{6^yyOX=F-Fec3Nz@Pk)fl{C;OAalXCrWyo*XJ8^_Q7oss%WCZ>K&4BlY zz{h~N3IdEteZk!JKjL@-b9>v6Lp^V0Pyx455k#6@L@Qd)YW^5W~t;n$_(8HNN1g${+_ zZU!?TWCC|7gOqo39UaU4xl{1-FM;sAcfb`s646m7wYv1y?sMYp7w00iqXhLYsr?OT z?|abL3h(AN$nIza83_vO0w^&-`;-?b3yFs+Lf9ti%L zB{6sR($|L%KK>#c6r4TyML$UR{I!(#n`*_^4|vGwe>u)35Hi&mJh#k)+$p&vSd#~B z`2}g~Qn0W&Ve#8r?*!iAZ|liMLA`~~`p>!Lr)=ZePo!`EXnAE_vFh0SlA*l<>-nmm z&w;v$?)L>fKog+xfu>)#^*awcE+%Q6913yj2AO7O|Mx5XVDsds;=qF^OaDC^I(TvN zVDZd>(pld16HqI}`Ct;{d!cbwk9P{cyw2LwaC(0~12v9^%S4;?vp& zt~Iv9Bx#H3oCkF{y6J4)Yp)*0n;2(+WvjjyEq7Yc@mehN1sPe}a$IFujg4zh4c%Ny zKY_^+HyrfQ0^r;t$prtWyHQl`r50%NXP6RA0V{o>JV8i*CK4-STdQPI;uf{*H4=8e z)uPGclh2jY&u-<5d4Bf0p7`ncY?J4gfLkW}uR+aDft1_S{r^;(y@n~7<-+{N$9}~I zE!2M5{uEUOZ_rT)OS#a@w`d2#!l{GE~wfRQVrVP^hLQzJX>`Yp>s@#w|f3n8M||Sf)s|nOIXc z?qP%k&q)+&c*a;}*!<3Mv&xaXQofc@4K~cIO#LpPocAS)k5-|(Lbom#p9V-Hl}TI{ zg3hK>p_{9EQUkGV+k!bHJ)>PxhO`zVjJzV410uQ@Jd25V&vbTX`S z87U!sy_ZT{}gQHeGS>NDZn=;yQ3#11(cTxjm%`sZ_ojG3L< ztfs4j&g(H(r+mH`31|xu18X5*B>XNEt4YZ~TZ>E+rcuOu)Q}4E^G`zgEunG!=aoJ&&3KBQ z(_iYB|D@_*ZLO91lCQE>l?(@CgaXr-0hwO14R$7&^b3rl`X*Zgw!UakKpr(t!@&1nCPyQ}JD z;{S1U-eF0$|NCc)2nY%eLprgg;(VXy`O0}9OHrw$K7uFsI}1X=$0}yN zS)umOCL!ucR%E7X;6?+d%;efN3Bs%g@T|{()OKY-@x2Dew|TqfJl>xCS6m;T(FHu^G}M^XuINV?SVCG0=N~dpK_EaZfeSFLD+s^8K^SpH`?}| zgFSwMc6v);{Bl~u7@Tug6Z#&6dAhk`I9SxWuc0iIV+0~Am;o=3lVd)^>HTC%4BS_J zg4IgXU>X#sGz6?&!B?Jm6|@PcWT-dk(0Aogkp(vnndoTUxO6PcI^@K7u7b^_)epIj zZJHm`f4FOdF1kB+DWIu+C9Yi{R2s=0ch{1)X_kg1gm6jL)(%W2NOf*{=s({<1!LPd z#bl2c@~U2loxK>5rolBZ3o-~Rpl>S?>Fd|+S9sk)Lxax`Y9p{^F_wc{sv^pc!ZzF( z22A$X-982e!!;keN)4!*m81=df?(B~#1)N&YY2~5M?-^l_z(-3d5YoJKC9Sp6U`Ex z{Gw)ubN}1${=h4_b@Xdt{a?!c_t~;H?z?9#52DtE#j8TL+ZqQJH{os=$}VSO6miWF zT+(`;@3g^g(qT);CY`f(A!z3P05l-xcA{~X)m@}D!&&*bg6IQ8W&f@;7Zq0T%1 zh5`0g>9}#&`I??y>*yxkfzz0cI&oCi{Dlcp1qfw^Jh|-N5-rAM92;|d}rXH z{4D}Z$iXe|i{0v$6gyJ&a1T1X%Z9{94L${h=F$Drr8zC6#IriC$W->E&$)mdHY%oh6Kb1*HzNeRi5qz0930tfkOQ6T_4Hm+5hkb*}`Ge4UMoYa>nUw zaq6IXnOB`mUyJz_uU-=oPVrzXC4XHuY}^>yWJ`ATfTm!D9UkOmN6J6X<4g}sa8xHK zuZ?95G)x`;+UDNk^5NxW{KbwRCXT0y{bT1b#Y|6=@Fh5%NH;E;Q`AAw6dSV%swW`4gV%QLN$MRj+)cxk=kp&W(w!^dNb&OTF;z|E0`oi0%FD;4>WfXN!law?^ zZ==nvPe!dRgHFD3*lvEg>Uq^04oH0_8fw!Vq-b-(3yV6wN>^b&3_bqNt)$;w4`)^U zarlOrKa1mX`xiWB^_$x54rogpdtY>(p)zj{Vwc4(j#-`mAJXQWguLKOh;LCTxUhkU zG;tP0aM;vT4=`eqWmCNpSlUnY_)=IB>=qGJkE$=S8jvu!-bUKT4y}5+>-F4R(Dye+1X8;WAKv}(G5k*tNI7{|5t(5v0^m62izKRB0d(*Q;kkWL;DPvO`yVKEb16Ik>jPEnX;Z;(jFW%hPP1B&Pk?aWNb z2gX%*CKsOH>lA0maxw_>HT><~2b)kF9@K9pk=jzqXd=YN6hQbm1iHWtJjrGBb3GNi z6%B^ywjN48mv-F}DI?2v5w3auDMqh2oz=7JIN%qxn<>?Jy+uJcaOd2%JPX{wjeJOY^p z%prXT2z6OL2Px@L?Cfal3+c@9 zH`&d(f9~zsob^IC05oZpOUvVitrjJ$52aCXHddt``~f;20{+EqeNi+ou=1lotUEYe z^G)4kP#u!3yvnLSFop&IcSgWudqh6F1d?Ir5m}2MU;|PjDLTP|U~1%^3=DP1tDaR= zzfsR<;2tU^RTGR|#!E-OOU9CA4>>G0yGY=JViGN3g;+OB6$ZN)0Lca2T4bQACFuZ<$AZ>ue2xL!+6z zL?$mfLM_aZ`|2dtW)!H=?}-HfF_?gI3HKC|>Bye2Gm>qF>aRQvzS4b=2TBx26 z+Yv-d0qmU`fvpF4=?$2Cd%Wvm-|jTcQ$K^-FWpags#$MkwDXeYsZR=S5nKkK>-Paz zG6UwV4J{0Dbk!>@eRDCI0XsW59m*;SVnD;BTsH<#1;fTPFcE(N%G8&H^=NCmhUfgJh zvFc5KZP`C{w^J2`#^DnK8c8=JF_XoI zOW4%@+kXf}Oa?Dm&QzzucCnzrDcmgs*Z!oz_H4lRWWv%+A!3X9l~Ysf`W8xwwcip&VJWPuz6Zyt?tWHNy`4fYE>JNMgD zWy_h~oW(x;4m2FNvmg5L{%y-Bh#Zj}I0_9EG{1271pqB%3xQ{Q2d%r@=CX04HVePr zD4$!u9Uc&!7kRnlJmgrTy4PUg_>#_DW50s)3y{YPKqKkw8|{XyQAjT1MD+=A$$Ucq zHlq3jUa{iwH}JNJi@;%@C>Ato0~%QZ4bLmOx}|8pYj4!XogEWgH|F;4&FpT^7;Fj) zllkP;)hB|I7~(8orxY5|Yf}DG&AAs$!+GDSP9NDVC%FZ18* z8@lat;Qi;sl%RxY$Xb$&{*cTA-Ax$!lTupEATP6W@n=f%!B z=*|hK%OZ5kwHG-|g~PoHM=&dNFL817wxiU>?T0GH;nkynGQ3#f$V3q}HZ&Ro_3Pi3 z&;i9J$yXb?|F%O!N74KdC^I$=?+8?-0K<*gFJ4BygaU=@fK}}stF8~DHK13QxtsSN zbCN=M8W7jVD@|>10y9k1 zt#G+B?d`=qobwLhuXA42?qu>nb`u9P=rMW8`91M5GEs5?FFA1z8Y6x2KiKNl)A2bB z1*aYb6>gNE}&0Z-969i#OkggfY13M$16tx3y{sGn=yL^l6XmZ@A5}pfD&O&feN(KD+P`f#ks5WYsH79 z3RD3&bR~A;6l>YeHUCneaES*gDt4qEb&bzt)-Sx#i zhtN+3X5Zahe0O{6)3h8|(#FSx6kcmLYz?$_y(gYyw0iGo%DqJex7FK$6u13#_7_y3 z{*0owFz85H2;7rB8JIe4&Yp>RAAv55JesOZdL~#0sB9E^=3OoDI-7=4Ha7MhL%i2@nWMu4X1723kLKFN1>rPiBF8ZGDPkn!Bm%Mfl<*Hs%8 zf6L8_lzz`lgX8-@+HU`HbMAHiqu1B2z1T2H|6{)X_rt!#jxTrB*1`Y011l^-F7lG) zG;;NISMT*S(&_=n^dswq)XcIE9Ks1lh`YuFYF8J3>-MnGA_EUL%#l514-_!=25rll zJ-T-;_mdWS2YLhWEceVd$I2U%?PE*r!N<9}RX|M<(59rYqW9#4z&z1dhvEy~nx{jv z)GB2Zs;}Ly+JKvVGYR> z^-2`mYP>Wr@-~PG|P-uljiK-(R<7@1Vs8-7LO>f9y}|;5GgE0nz=MI{M>k^6#TR z4(?$d4i@zJI&PI$CDuN?m=sx;l$F0vfs5zoZL|0^-O=O`^) zu|K^kEOcD2vE9f?d~;Fu+2-RdhyS%^JNLqKgLFKkxn0Gw3-z!2ukCYr^6poU?5@#z zufuxl%P-E}Ja_f4^o!y0%WYbDa=q&JjeV?}+Yg8I(gR{4uA?z}Sf*Kr{xxcv^()OGEgr0hHU?WySgHcrmg!yH0;H=N zs5uW%g7mz~-?}!hUfa9l!j{~(@Z~EEWuYf~c_!1RI8gh*s!&1azlT@_&EyVtEdg~W z&I@e!pw}Jk{Rum&S93rvdp%Or^Cl$L3P+0A4Wsw|2Y5s-)=HC-$2JKPc9-awJqjJs zlKV3CQ|)M8X@yOH zWNXykX=c39o*NHeJ!_n{1?)(_^nO;9F>A{V0Jqu-#tcuGWit*G!Z{4R5)7T8r)jPZ z&RJ3nouDnA7jSZ(oakk`?-jlld%n%Gq&qJRT(7jx!_j?=>WC@~T}K>wNi(Ibny2$% zGrg6Vz_)s*W&HWm2-Q$F}_k@V>W``-L*KJaOLi^c74Pv6xY-2M0}7n5@4`V^3+5l=*l z5L(nugh`j>`5eW#U;K8}v-iXbH*0O)9$vVz3^!^tqu&9|Cst`N_4yj$brOmn>RpA( zs2q8=bDFF`{NXHflsA-Yb$VIy^7q`Gvp<*b--YbSC0GN>y&k40oV?M#x9jYUSA!~- zueA@W{~qx*X>hTY+fk9hm%0hLEtK(+A?fFwInB^72-9AXz*8P=TVGy@P~WrqGo~=h`d`xUYaA8 zFxyd@GKb_r#+_9hI3g!m$%Q`tw<4ICUr;$?NN3{Og~+|{Q73+r;O-O&wg$sERf-h# z9B6uI2)1h_SJp?Zp5^p;*~U7LykVYmer((ocxiqK9rpv3IT~nxmRV$ku##6<(3K7K zYe_gEnb|>C&-*f@TXIjk!N>Q|{T(r%vvZBHmIit=zo~GBpgb+JwX%f}29^$XZe3s6 z9-9YJZI6YumxzsWCcv|pxDxs*8%=Mdp)vugfX6c6-hFuq1Omp?r;M@v(oOi0V7*dk za2CE(P)DBVE!rIV5*6d#NMhoOn@By}o&rO&c;owH-$3d&@*Y@Us-<&^V7#&QVX>&~ zX1vCrMsM|WdTxo)+*mu%t<4J@de6E1=LBK$sR!8qYRU8WG;CQ4Ku?Wa0{s++JKN2!9NKiqEQO|Yr^9o#GM0?|34k-!i+2w6rM#qgyLsb_x31A}Z6dDD6ib07AR}Yt zs)~fgbL_If@|YgF*%P|EH-AV+We#>x=G2tSY};&8sZlH5XFRkO4o)LHDb{SbLpl)g zaz6*x3*cdIx3ymWW6UfxnGwR0Wa>8@O)T;z%cHv_bqzL^tDWMrn~PH89#Ookjz#t@ znjuT3YD4U9`&RB@r| zuz#?t`_(^8#%TSgI1!XJh|L%+G-L#og*4FRy(>f7Q|m>hwgN;H#+^v;DRx`|R6F%E zN54PO8>*(s3nK>gyiLtd^*<~uo7VmFom!G<{Tj;`4H>PElu`$1N-qveR6F=ZmL2Sl zM@P&Lw3_AlrfUv3zBOrjS{{AWT+@~~t^Du+>e4S}7b?Qy@CD6> zyzcD|?q)4^UU8*Cp&X{HR^CE_nPedi>8Rseu)ZS@q1GYVvNJkHscZtQg=8Oc*ujR) z_Eorvq{_qaj_=ombFAzaX_c8nl)!34NCOA=>tUf5p%c0pGE8xrU?UH(3bz_8V|e{= zod^$JQ+fb8+5K7i6MLS`02y5sx{y-Mfk7vQ%Hek|>E8LFK>bRC+4c9KC1%g9j^B8Y zR9C;b`&LEbYRf};neguHxSfeBdgo7wJuM`Ml@diaG(}w_89i3BWs%@JoTN(Oze=-7 zb&3J&P*d!Yh%(=VWo!wRYmhbr=t?LNUb;C(B8e3>)!(F0j$8x0fDngEDf7Z0^>^nkpEfo?8|0Hb{}XZI^DI~{oJwBzF&wr=Gb@f zNI+Q#<`(Xn=}<}$y>NX=guHM4_%VU1?`rV&Uc{E6Grg5PFd=PwYQ)*&_swDFrGf=3 zmW;L|7ErkV!n5b^dmI+O^c=i>QS(;jVo_6Nr&0{y^uK#zc+J)Mp&!357wujS5H9U8 zDtEiN`@r&BJK~W~dxp@TTSo_v$d1Eb7nlVt*A|jm+)Ea|)3D7cHxSX(LWll1sQxMo zJ_|&rmy~I(G*I`D(c(n|=DXwes!_G3w*Hs~20LYtp$MTb5(7#)M}=O+Q#O4;e7Ve)bS`@W!CL>wOidoIe3pBwvEr&20g|1c0sT zlok5P_n>BNo!s{l>lAexTS4=o`k>7)i!MzIsl?jRJ@E?0Zf0yyJo0Mq31y$f2$^P+ z!-1Gn6(AjmWO|WWs zczEZaVp{aRT8>WdcuE+`z*eGeB+*ac7^O=#1>N6dAR(kn^qVExwh~f@SjnXdUQ4x$ ziSI5Qv^NQNeEJmk>$Fzf;ME3NBywKuG`k0Ps?bicymka>brZ zVDjxEqLg-E27c4FkyY@oHs)Br2Gj%H;_(!aWH0hG(o;@v>)qJJ;I*e5OX3qBpZv5# zT$zvqT?pDN_5BRGd!XK?+2D*T>`XVuqT+;!&eOn{q5N-cgFA`#4bme=+`)N;4z&{P zKMKSlHp#Kva6yoD0Es`MBInc-JS0X;$?s?hshN$*WqI*gb}_AvTz4=f+({!27btv$ z2geYG{YHm+^7tiOu|`)Fc|!U7W{$?SqP`^>p+XGV3DJm#Jmb#l^aC|5hc&JgDZQoH z+f5ZpMaTz$zlwTDra@Bp3X0T%l3js#dcjlcI!aHc?1~_5>P*OcDcQa8?C#I!CLJq# ze0_qg2IFVuO&r0JQJ+`0y*A%j&L9x%k(&xoFNcZA*|W4@DO{U@-IT&Hgv8f!Bqq2Q zn=I+-9UNm@kWK@LJVQg)vc4s775J>J{6t4C*s1N@ZtbNwY=9Mxt`ni#XM66C8N6_$ zOm{0I^`%IQ0W#nUPhT0XeM>7J@C<7%QVRv*{ZVmEG~f4C`b7_mrbJ4k+PCI+72Au* zdM$dq)smwoWp$nBPrvmv1IJU`Yh45f&(2pYb51;p1n++0V;^?v6Wy*q<&+&S^xLY* z9bUE08w~Vme%#<;JCUq6-yO_y-(hKLDiy~fR*0)?oDbdbz(1h#AWG&a=>W~74V1W3 zLV!q=3ILu75QPH(#g0NddzO=YQ{orqOHw~oOMXw#NGkxW22^tZNU}2a-5XHIrJ-%9 z=&xcu(sRQrP-Dk6PaLJfqN0Q?(WKHvJ|`LId+I$Rc!&P2HVwYKLldC;zxFk&FU6k>hjDm!e$yNFHn<4y528- z05mq_Nl3mZ#(`seb{zRu8YP-2&4GpW#y^xDpLbGAgUfc)+f z`sL%!7KdIs`4jCIAFgY=OPk0sV9~8!p{#R(25le{K1Y8IjpU0whW3Jo_9_f*R!m{p zy`np_z|JOQ$B06k4NhW_I^_VJI10czvhlIN@fBc826+W^zrIndF+(HEq64OA_dRiG zU^DGtJ9is#W%bF6yS z?KeF(e4o7o{Q3%XRWSa-)cnbA$!@N?g@IMTE4utiv$-!V&*vis|E3!KlCN{2+T@Kx z*ZIqIQymda`we;j8XIUxH)3M_!|0hgVxs|&3Gq1zLPyLrA1V-iWpLdE)i8lO7(~DZ zfsKe|dM=kZ&YKAQk28`3+qBUUna&GWrfticoq z_|R~+fS(K+cw#PSZrwJ?~{#s!x-?Azpu1OP+;AmaYNO z?L+$M?>3c!C?rW(J6(JHo-UsXZ!SLM2%#5J;UxgYi9y}2Ad3o4rrir2N<>Ibqh`r^H9)3(j7|)Ry@h3^AdF=-JpVV zu}@4Kpt`SGoU8Q)b6N3ELKK?;Hy;OFbH1m?AAZtMGCCWC&@I0-LDN|gU%5@AOpE6= zBDUon0OLSEcXIXnhmCEi{jU^_F!#WvQ~qx3fa^O^IQBj*po#{Y`$@iEu(236>gzqU z(iiNNb=6Sd4clFeE%Jc&K}AEWy$N65PQWmI$LwqegO@mtoABaqbUP_X{b&Cfb3kJ2@bZTSxW27e*d~gVjCg2DYF-T|iLm#|Q}VGb`0WTV`wD~bKx2RRw%;x5kMbPiBxwBnd z6~-a2u!kg`CXQxC={-6FG>vE)ewF&abru#0yg5u&)^Nx+)l<((?96<)A;dhjSe;m$(Rc*xmQ-pHZ0l3xc-8d32p{W2ZS3} ztjlQK*Unt?z-rKn6QAgQy@nd18mc>BXGFK=MbjEIRhGG`BRg40D{uDOf5fT3c+2gC z>tW#6P5cwgs0zZ9(zFM!f~*G3nOS06up?!koo%7RCUCiSZ@q@9DdMT^ACTD}j=eq@ z{SqcfhA&Dh1sNOrO6hskVnPDQ@Cs0?LL7ITCHt_CD_^FH>fC0)u0#3zTtUy%J@cTF zBz2C)D=-&| zy-ug(Wi8kYHn0v_Sh|1FbGKX39J(N(^hzu=jyF0MZr%W?pW{#l8c+1ljR!#1{p>fJ z>GvAC4gEoj2P$@50I8=t8b`PghFJ1tQOE;qEfT>qf8``7Bq%|6_gI@6{uri6C=K+b ze?b6Fru15`bMfHR!TyP5EnW|roQ9kYzKi3s?b>F{TN4`9kl}8S7@h7beB2dwG zwnsovUjv`uv)*;~MZtLABnpFR@0mZuLpG}$xa4gB=-g6O3bWZUPU2CDHEd{M^wGCd z0$M#9trPD*=}t^a`g+5?qgwxRgWZ} ziYKC7UwE#~{aMSRLm?kG|FL`b5Mq9O^ghWZaiG?4Po3GktUE^N6?s-YxwFrR94%9Y z(h{0z?e$@Fv7u&p7g-%7d{{;wR6Q|!La4m;^XLn{`vYr;@;m|VuAohj7Fyh#&}ao(FQ!OQ zwhu-hqFj+qZESj`jmJaRU+aU)qxL7)sx*=sgfKlmm7}1;m&e@oN-SFxH}zuND=Z>R z-799Vi0G*KI~rirTT1uLl%LhZ(CGlD_cPPmj(jn{^?qpSgWk8NAs@9eA8fI3{oa!* za0NGx4bPV439IU3>c}1S3HdkVDRZAo$J&x~WWT=AitEm|YbG}Xi|;$k$StOxwu)KD z<)rzuO7?_9XHoVG{3WiM8$6Dy8l3Xvc^knoZRC9C+bmpTj5zVc&a$B;h6^D40so3b z^swS~rr+Ro>xn$~W6tZNgS}qJ)Hc4$>N=S3Mrhb?O(JK#ly z`&~?H#e7Wba)s^aTup@!?ftyG6$Tx(Dl9c8To1dde|6>q6SeR5=TY*x&^t}JPqp?C zLtowD)kZ?q|G@ltv}2t29gVPR^2FW0gq6|8T@USjD!nIJ?p2=FKe4sGa`b>IT@aga zJm6`Byqu7cg5~CfFvVH;U`JplOxBit(1b~COg%1l@Ot9Hvd7{Sh#4h=l{5mS{33nP z(p{nd0W;pw3YXiDcKX~qWVq?gDwuzaU2g`{NWwH)Y}v~=TKuw-Ay=K{s3avzHM<$+ z(`zZL@3#)vKmGktti0>br?L8s$M46rl8GVDRR7U>|3E+a$cNd&$7$~@qmoD*4arBf zWaHqPV+$a4$cpk6$EoTnc(2<=<1;N1yx18|$2Kvc6til@fCLbVS;93TO!8n4fKU>% zxuX3NXVj?(V!+4lB3=in{Sm94k#dc6vPzhiV0A%<1WjNaE= zo7F(Ajx1u;vUO?jAjQka&E$*(78@bAnZ2XBm&m5ESa!vMUSqP-<7!iyZaJ zEas;rxc&AptJqS=Uld3~7p5{vp1~CDY&_Y$;2QQWBQJ()n_M1!_2l z@n^P4!P*-vc%T4;Kh1*ZXTE|Hs2tT5Mx$ASa8pJ~DU)idUWMVRb_^8~hG>|BmM!Gq z;$oPTqyU{($sEmu*(RI^hJ}JPzvl7meRvkxWi)V_?8^;qqbH1+p70H1vmH3sxAH(&M;bYb?$K8tJe-i9f}}~Cs6cp z50|UCU6b0$IVM`9qg^4hUu|ifpWFzgr4?8th!}Kng(H{1DXg9RmMK*9$n=w#hgBf8&$-G9= zWvKc3OLGGB%^taWH2+B6tCsTkkZ;py{fI@{HP3%95C9j>4eui|zzR09hQ5dU4xs3& z)|g(-xA4M0ANBFTV#9xVx(>w0aph7EBbOPc3kfYK=7xtpY_epFV+(OL^Wx#@PsM$8 zVUXm#B6u|AMA`@d*Rp{JW?3QJ6Lup!om-L1Oojbwbj-dRAZ=WG(Z7Q8=nVct4N?Ql zDT$1<)`)55ZYs1o{iy=bEmpah39VmRQwrxxR9i?r+2ewI*vCXZnI4r0r5~ zVK!RvA^eO_WnmS&tpox(v4`r#X=0->_X`Q_2YA_c;*en)Xu=eLX3dT3t|0Bx^Pr{?;>7*#g~apg%bOgR6kCTu8V7jWEYed?qwqe@vR=P#X)$_!G<`bI7t?SOKRtW)IIgyKgKy0ff83 zmpdrC4W>+a$)q2xP0VsZP&gD7KK$e7sAZa7>SJ^C=ica9n-uzc{=y%#ZyiztJnTC z|4G8C1%M=0MOZPk)pYF$DmC;$HY>CAt>O%ILvd!4D>d!PUPgG*Dz z*;)PmsdJ-<-Yp9+#v5q3Jh3M1pFQDZby%BT=LG_3Uqss3#XRA@%sB5ZJ&%-S?*W05 zJ@EEZ5#FontAwl_%QDU^GVjCLHSqQYZ+UjEtg!#xQ_@GE;e_F6QA zAm*Ii~5_)9Rqp7Ro>S zbpQ5M-K=awS}w>e$9`P|`X+wBm4+_#Ji}yfX<0j>qUfpuy0JJy&K~}E!3(sHrYT5t z6AY^pK|7q6+*9=EM?Lm+mZ?nKS9-LB5BLbJ*{!yxIy<{9tM-lZFDgb&sFIzk;2DRf zvQ;}ouVr6B$Xu#Io&cC3fc3DH0Z9(0;SP@kK`kp5oeZ>SC@>cFJE{9+8yY!gH7p{b zmRTBwk0fiLGwBscodT4WNbxOp?R!d9^b16X{10T7#m`F?#qIx%28>Ug1GXe7XYC

gVo{?@_+6RMbf&|~*{pD>@`M=c@o5iz3G-DTwIyS8y3il=(4AD{`p-iIDf+Vj zQ)A(PGx{q5D0!7zJo+9MY?HxdA|6`Kx;tZd5!aL2Bw671@N0LAIKIwFwC)|a)P zG0ex5=QrrbI!VGm*=|2CyICZT6_^q^d(J{|X@pDvy;7)A*`HQpb{72wpdak&b#_bm zFrg!kkZmG=@w85EK#B{yBgSCZs(M)}`-H%7xsE}`^~c&-2(fblR7~(P1x>7rgE#^p zRMEFOj>SqMbY_V-u%y2AHOUO9ydXtG$e0b1(oGN42vrXAM%1bx6Gg9EY8=);D0zPd ztjGd>-~8q@4AcqSO?tz(IwZ+bD3ik5NlK4c@Fz9MDbng1y^26Ry;_P=DB5b+sg3tM z7W}|X@hTIAcj~C%NBGjd^^kvl~!n~GckX{~hrCvFDKxsj=g!vGQ z-AX#|L`KqvbZg~{u_?-` zIzr3>0KH5?FR}(r9@x)F5!Avrxgz8uU^#CP^BJK0N`yFFY;lRT_KLS<46b?i@}*3$ z=JYDOiG=8)Dm{wLST|nl!X$qP+V&y@(cc5iMIB3VM>0*3tE)`Z_gHM5MH}oR{8AWt zhV~nC1UGZ-?T4qtQh??xX1H<`VM9_4cC~zr*>}P6BNYY6D8vnsLgQ3N0f+(8ZO(b@ z?)}T~y%1*sFcY8bMuNo%wub?_lCBVCQQ`=1A<&GBl}b@k0Qyg-g-MtBOe~@#_IIWT z`AXz)G!uO~R z@s4o90{|%-%iVV!Ocy{xsp?Han`)qD#Z_+;n(|v|h9kN3SUqx8FL{xg_M=UqglgV& z+2I2VF?vwvEa_eE36+8|TIT&S2x1WIpr|9~@b=L#$yf$-0Q54FhXz9mY3W zFs2*t)nxWWqlo>=eU?GONB-HWm_SvvIOVSZ1Zn9DjI3fGM@+HTj*vn|5s;K8MOkV* zKPjX`Pn#}8eU@Uq#5gapiW*R5s|WrUNdffDJ_YPlPIZbGz!EQE)t`59{d z=!<8x9U~Nw;^Z~9YPlr$$qxvR+U10 zNzfR9GHC=u64w9jSK)jnt&)_cq{wS5Up4d>DvuyUn zY@BcRbTS{~c`PPgjwB6UUuAX)5O+j~%N|>Q<3<)Sk1>bEngy-$VE|zVE|_d+aZ6&j zL(S5qY9~;ro-Yg$3gT&MAM%D$#rP=kHO0yrA`W3 z#YCa55uQ1y+!VsS6BT(icCJ&Z;rhbnkuxlXrO-b6vP_`!L^J7WwY?;;ijuZD_tlY4 z!4`W5QR|#-FN3a(Thiq0cG#K;q`pn6;OJ~djzLm@EA z^3E&2el5UQ)}R;9+2J)6y(Yz)&?27;u%YB#8=@;xDUy;FJWznJ?1m3)-+AuK1#KZ_ z2B6d~fTytF{v+@Tfr61c3;<=$r69svwY5B3HkxEB`!+9FS!_lqJqJ|wNfnnT_x@}_ z;4Vy(w=Ng+1aV7KY_f))^NVt^hF+6~%irk$?UmG}7d|?VEpE?vH?R1~j@g`2vph;z z@V?@71=uCTAeJyDOC%X)h?D@L>j1GHabGKre4PMhjr)2x{_Q_SzY$LoJ1&vvOW3ah z?AF)gVwTb(we#;UdoQK)?Xku=FDx?MtuSEa5h>z;2=>YqmM?&>?zBz^D9Tpg;q8^( z0HwEtV-k_Y%Glb9^2d8sYZ-+TS7Q-RODtBa5#ME}4exx?{$EJ!(lJ-<7Y?UiR4#qC zaBC@~t%St9wA!j+ziY+r`HYq9b5$JS*pfyC@SDwDjd0ntt7}VNoC|V{KoF|flU0;K zVPRxS78z$E#&8$rie*IeM_myco@tZDHRs>FC*jr$pAY%r|^iQp<}Jm;+m2>kwx1xozMbh$OQZ>@aic5K_Z12>=Qx zgk?+=i1p4Y9)|@qd!z!|D@1IZY1BZ8RqIG4aZCOmxOLlTwSixgOX>gDDtFv0IA5dI z+bAx>+wi_L1UB0jK7@Fgu5OF9+iSn>WYZDc=&^U%_S$rWRh#H&WcO9u3lnX=yUyoB z@2ho%UW_?wef90ENzm$p8+H!s@1G@_cyTd6NlU2;%J!rb>@ zKnO}ItFsJ!;9sqBj@@MJNO>xV>zg2#)x(;qY1|Rro&U?%pzY?CtZ8{RJ0AMHk_(m@ z_h)%G21Co$EaOKjG^b&|3#KKCRq8=~lJ% zh*xiK!dTN;yF0-@d`}Xt&hKCSr^P|bf2BpNZX!Ehq*-Ga9Llj@b69r2RYBPygm|BFt z)i5=!Hp>%*!^b6f9^xmJ5YByDf1+#oAQr6bu^#J=atyT^#z$rv7vYrWz1nj_k()-; zciFB(HPXt0c!UhzHR4f zRZ@-XqVj!BdPFKS7UBYDT-dK7L>d!x=TezTXHVx_Q{2NAX+aOwB(<%*p#~AzJiGgZ zMYj0c1*ex9U+yWAc+5$-QL`mT@j}t=QT>*#VCm-T9V!S)L__t67L%3bsZj?sP5?)( z#2P4DX-s-2p%!RC`o*i*Vx;xZ`gWwvg9!l2?$6;ubQmiOrWu>U_QZ#J#O+W;JK#L= zktxDqHQX+jXwB5oH(ubB5;kA;$r~eBi_w{i>~WKe4?g>0=&O{rvwZqE#Xg?1|50m0 z%Xm-3q(or${>G1(0(WD)loiwW3m?&IJ|~U5>gBt?9Zipr`S;$f(?4csSwI0@(&Guz zcj>qFDp_2Jonq*>FMKXDZuP(QUNg%>=&82tYc(`;f6BE__)~TOxQfkJGF%6bZ&A=b zu%HFLV`(e8c-L-@HHeQ81Z^TDme8^!ArU`%RfCy9p7`+CzMF3^DF28)fLe$w8U?#f zW`DT(@zLRrcdG84H$#c0L@iZ|`4=em&&1+XG2crLR>#u84|`JJ*XLW*E_P@>q6Rg} z$z{k8_#iI95`6at8;MHsNB{DK=rheRYGS#Z7%RIt>iH-J+{ms@=NFo!08wd-LFyw* zm{rMAtlK!Mu|=+-`LhxK$I^L6CH4P*oDC`{xW$EgZ_TZ^x8mN0dn?YI35ZIr(3}m! zky?&$q_%OSW@TtYv!&UvZE3ss{P>>pJLi4w;T-NCm&-Zt3(wc{`FI8ZRt0@c4GdVU z*w^m#*$fBPbB(Mco@reo!QV##2Jd_?o{P~82pkGWawJ}gJikXIC{-cGo6EdhX4ieKiB#?R(N?DQFy2u4SYZl#kDcVs|(c_BYR0>}0$xEpo1 z`A!sfnO^5xCRH1$%n1;{Gl$LrN2p@!-O!3fxK9*cZ0!QR+qef)SMtuNF6o0Bw%e{Q z<)wdJoN}e)+q1`L?_PEw(~}%l`i~Jy%4J@d#hD-eCO~3t3pLYT;%xxb%f@VoGLFK3 zvXetZbc>(UzY&wa2QxUiCE(L$|B|;67#R}d*fsSulm0EAGQV={ALS(b&wO=@T=$^UO?A%E0=L$e zUguyp5mjc$Lf^@dZUM^Aa()Yb#cH}MuujPP%g?NA5R9YlIr zU}=0Hf99?~c!qOc`3nKB?80F&1aGyu+B(;Cma4XMYo7f_`R;Or^e#(<*+n z^gTeINkzsnMgs7$Xp82Daz8&L7XRr?#HwkbZdO~4qAujvFL-5CRZ2hQAbuF(fEBu% z(-O-`!Mg30=~9!M#BmzaQoB6 zyJepq`q)9$T+N?r-T z^6Q`-xr!~QZf>W*a6oY-=3|BKlWCcE>o?@{JL@N!VzD=PwUbF&)<6?{MtlF9B6>b1`3i=^y>MNM51yyDq8oW5gm!!tgdMB&jadf5lC6_IC|l{)7KJcjkU~BZ+N>HzfFh3tO*F_(?NPg3tIr_h${k%FR_5kH z1q8d)gPOGbl{BX8#fb(qG&TKU7tNC%?2={56|Lfz0uqR6!EJAQ3LZ);P*G5`x5gK#Ph#prFcSNiKq4%OiJynWClX=N0NBBqdKX-S@L8^1Z&HKA zkp?B8W=M4U++@klF?GH}{KgI%qajY<7fwfF#1ko6L&Daj-&{&*wFSy9yW?U;3P?7g zmiWU3{Kfe^D?b9)M8G%sq7Oxp`On}4!<1Z##$7Hr3Ah=dj}!T7n21sa*n(l-1cV0@ zAfG}Y#smnFQdhF<7VI`2F3*w$PScQvw>2~;x3|8nd;T*aOu_j4uDa2fRX4$8G1dtt zY%>O^1!p&YFc7!`Lhi*Sq670o7hUpmi1oqc1;`t)E2&gZ<$?+z12!Havq;?yb z->gu~_ig)Grd7oxf`W#JB|{VN5eb_R4;I8W9%3~LSYpVG`m(QmNdDJ?7Tlmdu2|qZ;qnpa6-;)oMlz z9!2Iu5sdI{TI=Gt{+rBvr~+8o`ahNYwy9u&h7wj^J;^__jp)Ts28)!k_fSCRm~)|$lik; z+J(J264~TNS6Jzgh(7)62!{M9r6d``b-}mUKpD_#X8OBc>%`;_vo^UZ#zGba%!@`6 zDK+nu`l9xY|MB{7&KwJtJdqfX@p|Fdcs%Lf1M44e1X5Y~X2v`L3NiNxVCsI7Cv^90 zBKjHL7gqu2IDiZ@{x)I(g$OfeKts?lE&8dVMX)oo*iaeGn+kw^;R!sxCQ+qgT{wnc zm^X-~71Gt$29Evey?JghVZQuMm{n^~jg)(y5wKtWUGUQ}xBsB|1><$Gb9H0w6+cX^ zTWGM>-H8g93qZld!Ne|H;LtIVj)V%^~c9_63|dq zgWbSVq-elV7ejPfa-`@q7pC&1Lz$;_G9Yef=8Y6g+ND9+_ao^QB{ha<4^!N&;PN32 zpBNYCd5()_abAc-dIWrUfn8_w_84EF3#HW?Zb)N&)%;vOe1TPZo?V-~cDQ+ie>d#p zad#toaF1Pzcpu>$7mEOfL!*gM61#pR8X^gYg)?MCw_xd;uq+1H3C$F5fMOmaK0E>( zOu_WQ2eSr1VqaP_Pe5Er^gsP03O`251g17=C8mq&4*tgDj8Q%nB2wi&{rc8Pg96;pg8*x@lOlHTMI&fm`g)Uz)Qkw;g{r#5%md-42j zB)+38L;{!DCN!yoB0`*a)KnsDX4+pa2TtbE8MLGo5>=o}{3skC>RpFy*6Ff~po2>T zcP@9_xqOuJ{_6AhmI{y6En}j49@kiX)w^Z>TC$9fVt+5#pwROO(&IW_D*^eh-y9+RG z)*3X84NK?1oLjxM3dNZkovnDjMt1C|DC`n^)|3SC+hthHK*Klf1DArt?Ao!ShQ075;C{wK@-AhE2M2gERhi-?OH`H$?GoK=Z0q3 z!7L_!?C#;uF0gd+Y9t3S$!yd%zc*=EknMl&fZ{@X>>c6qQ*Q4dVE|0psOrLF0Obkb z*rUn(;z_VwuX=QAo*TxlQ6{5HiOAlFK|LNB5_bHX*v!paIy30QbIqYPo%35NHHy|^ z=Un37%#FHXW)?)PORlBsq^~5nER|@*;+j%o#_iAMGtfBZl2O;W^M=+uh$!DmNq{*K zdhkV2q8Q9~Q|TZs{*b+6$DJ#H|n|(WaB5hwY`BWUp0xHsv=g)$;59B}q!eY_TTPx3DS!xQN^o_@WjzrAf zFJUaBRYxDP?u2nAGGce365C2MD-=)NckWS-4<{_0PrE1@ov(grt>j~AN&0JF;1w}Dh_cZ*u2TRZ@LeUz9JlZ zMHG$Ryeu0EUw*R4sMNf1?5R7(%#Mo@*4;wkk){nImHcx`)hqFD^2X7ott7ri5`6lI zLx$;_wnMjLfc-HInoJho@!dCTfslcB_OV15kC#kLy&uk0jU&S9H9m=Nfqc?WXVqYG ze(gzpfdr5+Z*-O0c0SG1j(lI<|1UCM=pXV0524okF7Pn&>M26n)pt4`&d-Zp8^4$L z`?CA(KA|Mx`+)(GIgZOT@k=j>w;l2|Y(l5`py9-)@7F4D@`uh51v)G*UBfFxVfasQ z0H+wudLK@iCU^$0K4!92-Z1m98e z;oO5C;ymBnyp}(SyHw(2qhF_Ug3Z^6hYOy7#^a$k&J;a<78ij|kO}|?HLCm<1GZ*? zq&bT@HLb3%w?qGJi>^SxA-_*~8@RpONTKSVUcUPeg+@UHl|wk2b~HXQ-MDqmmIEE5 z;@uOn^1`WB$|U3E`bzhWFi2^gjK=LAw>XUk+1N*;uiRU;PrH@FbT;msSncsTA%3s# z7SB8YOP6Zu^G-&QoKtZ+SifYQDpV=}xjq=&t?Szb;cJx8B`_Tu6vf>o^pdaUM&Fv4 z)(O90f8gh<0g7HYmlZ(4O1f6nD~7VuetqqomNW_P=}%@%0o%05vAdfJvGcVs!=iq| z3Y93p>6DJ+Fgq#9mD*VScE5_H)OEi_?@qrP)ne=Zxof>&SAJw}PFD!2MLqeM_3|cW zCMH8`IO5{wSzP#|CtnL&&W)Lu|$*9qV*bj(@bOUj@`~n&9^AVm`yuv#w-`t#ji8Ne1SB% zj|11k`t?2Q4A_g&@FjJn8M+dEhf*a0`C2O5~o`_vdTAgDc--&SQtL=zu87)<+!O7 zl`5*A?RgnqZDrIcwbT=qM7h!A1u~i9z$}2!28XLZV}<|^>{IK4zY5bMUaLY?M7_Dn znEs>Ju`GLi%}xBafXOpPOfAKg_e(&jT73p471Q5|P^#SxESD;t_bnF<*^x3v8LD^j z=`0h9lF!`2Z6_Np;kRoImtD8(Oz*qSI;3Cz{yUX5D{eXEwZv8C{T1?k98Ljgc$1IuH0Mop}s)o&wU(^{-;2dzeuK!3lxfs~XqqZ@N7lA63Kc!q&{07?jO|}O@d^z+35E()W?eKe)xavy&~2u8Ms3g}L5l2GSqL zFMkse@ePWO=T@I8ujvW@`nf_mA}R~o5@J>*o>g4`9IG#Oj#eePP;jguEr#(MN25%m zVNu^__*}JPFx8w*=I?HV-G^zxd{T$(cQV4Ygz9&@P*i&ks>?AE6bA7*%H$Ii{}OJYP?&G+&G^ zs!hJV53#p4zT#b+fmVv`P_;3e_pQ(AiFFp9MmVWcF|soEmG1{nc-4YLYIdCL?6U+S z==K0ql9N_8h98JvHcT!$DXZM%&$8pUAlehv1ZMDG?)Q0f`6%;O4oBAnlewm=Q^BwmR8;}exzY=%K+b>?yz(B-A(G_L+ zE!FBSK*+F!A`mE=hM^-Iap=xzCuMtde*Y_(X8^d_;mjYokC-;izbc9L5e|*E9^gDT)*~dpQcIQ$U)VEh3XR0PGXC}M2pcCf%cvCq&Y=SCQMa-wJ7@T?yCqJ)(A+G(w) z;P=bKO2an0`Ji%erV-|eXVcNCf~HrvPwhT-orG{Fm4^PjK9GLKUSnZRW9_WnD|`8~mx!*2q&OP>BsFk5KHO>lv@Ru!EHiz>;p*e zB>LY$=LysN4TWF1w^&X!!1hJJHCC9nOEd{gJN?NB)Wr);0(=dY7|{W*oVM$0LB3iN4YjE1>z<83)LsKul{sDviZVy zVaTgXME2X9j_%6$ieaGKA0}>xnUa}cClHFhD9*;gj6bxX3#~pJbuyd5JXByQrIF8< zms;qTQ22B4&DbZ*y;sx+P8`^P;4rb$==h`C=~E7pQzt27f{rExJuz7s73U{i4UT@B z_TUK)pw*zVJ$7eHqU}k>cwgkl4Ml~H)M|gj7vsS12VAi~Syh&V3#0xb+_yOZ=D2)_zWa z>6^XhpNzH^XA>%owU4gp{}_=$O+BW21zVEF~ywnbWLAad-MwG zJOO6@Qcmbz-!-{?4nU37YeQNu+($=GGw-D1KFLMQ?U(d7>~Iu+&cX z&l?}h%Kn;a(5|+aA5ML1b?Jl=CIw(6iEx<08ga_69g~}-_c+Xguhf|TH)|yFLa!v{ ztmC2*>OQ;tF*9hXPySvXo~(l6ZxW=Pl^ftexxk58D9v@$V-Bdl(b|69WKM)uyum#? zD-8*LF^yLT$xMN?(O@1~$^zGI#-VDEx|ECBr3+@HHz@))sYY#J7hfxTmW_@K#M-P} z3r~e@+AQPf+67>XB&CmT?Stm!eM>rnp$;r*@QYcU;hVOWR~)SN>7^Scuiwt{$8`W? z5ITckt3|LwfJ1IqxfLC3e;@21N+*dR{B9mE9MG`X1bfcSwOq0!-kS65DL-Chdh*hF zbGFLNOrIm}6vfQW2}iRgfbZX;K8Ur}N)k6BsoIgx$X>o6>oMi5u6ur0$f%zpv#zk| z08WuMGHIhK;y_9%&9F_1(kg}b(M;5hh91eKJ6=^If>fD`8YyH|ZW}057;GR3ZUJ7F zt8S44mFuI+M<4U#Wec4>i{jf3CAVElOAsyZr)2}Ig6$#JEU;$}*v?G%04Hky8QA#SxHL0j=IjMa)$Ewz7v!is-=jACG%wP|DAo1Dy(R z7BVQ;QU|5IpoBI!Z$hR~rB zGseNLzK;T+J|X9{^cz(BspdGaDS}(Rh{vdjA|ysAvTaoL-Ah5S7lK8~C2KD1yX*bl z?)Y&_C-AX_=58l-ciEuLgSyj+c5~Ug?WYqt84c>G1ozxU`Wrl@xrF<4zqs}5CBMll z57#7GxYqE&2twHtyWk~!#h!;91+sSp(na&}`swM5KM~M2g}Evm%p$m=IhIM~;iKht zM4GE)g-3Y>svGKYHNf-EeN+uJRDXq91XdiN>eH#JZN8@J?cba6$v* ztpWZOdurbgJN!t_A{VO}sb@gaY-pf9V=Sd;(Z8ht`V}sZKK4sU4>EnfIvOp1;mZ)e z2x4QLfL{t~zhcnl=$^@q^gqwMd*GYTe@M=%2x8%$|M%Mu)5QFFU%tEa{Ub}lwVn4v z+4n;k&|p{SPyx+(b9$C~-)qVkH5M>n7DDq18DIzV-VF&^in$HaPNIf;mK#kmR1K-2 z3Lv%Y2HE}_ur?1Nb8tc2f*yT2XMBPdqIWh|52Mha$8dOZJoKY)w_JA6$vcm(7(!Dk z?!f3?70f%gV}kX?{Qb-}e9bnxuhM?)^JnX&mKD9P_>oJjSmSdZ}a>iTorTaDJ#F@5@smE_A9neCt$22wRv>uC;gwN(AV9phrpC zaMy{1b=FWt1Oc3gL8#+Ty*2DoWCEW6X^Qmb;W7z9zxO0o1>9oyq|a_a z{eY!n;p)FrvWAP#KbD;Pha&0=#^#TCQC%aQ)q~ew*->z(VUkZ_1r-!Jl)4i@U5xZN zBXB9Cm9iW8Mg<{!EkH!I)jd9%LT{xk_Ma_?lB}1Qv<^84fD(0@VFl%K&(3YQQI+wa ztu#d~;;70E9V7h(gMRG42OTum_Ia~%nNOlLwx7Y__>lVe(2n@9;rQ@t@e#}Mk8Ad%8aC{!%6h|BpwE&dN`@(T2k$DQr)wp`cFwmxk(Jcr>8lq?{X08Mu}*xSTTdEM@pp%6V=IOE7grE_GBlb<8Gp z+&lFGj|Q5NI(ayCsy_8%N9v{F)XUdWuPmoteU^IdQ|fgdoLVq#S}u({qnkEslQ!p_ zb|WfnJ|k`6aN1&h+Rcu%rFoYe1TDY+!xbC2@FLuKDeX>gY8kE~U%$$B_XDRRwag5z z8$!+Bt-9Zly1Wc8OM-Ih)2EhU_YqZs?2l7|a1rLmAXlyD8L4H9m9P-%Gu@2W85wU5 zXYABxyzR(%H=ObQTE>UvjE~PUK7Gpg%+1&p%={vk`BgV_&n9!FZfCce7-lXUToelK(FYCzP!qpRK5utz?_6?31l>Fk3Y1@sO*;?1L zweM!@JkQqsoUQj?w!Tn~fqagkUXGD%j9JODXGj`#WG)wjnJ_M#=|@mzVbv;01V0CFk&eo*auve0(4EeKce zO~Ca#6_BTrlt=mboh0!iS}%_Rpt`#t@~iTb%MR(weODmm`K|2-*dhuS4w2Rl0p#)} z)d3YQ-@Sb3l%sj&&wqq104nszX?G8mOBOuS_(}iqBut1}JxR`d^V7Wb2dHhY-u9=* z0-!~R+F(joV*H5kDQrH!r$8)hffs~M?pvyTYws&OI=RQsE^IxTPrSR=ako$f@cX|D zIf;qC6!3ZWdI*b2z-gC5y>Fga2vG%ge)CHf*1q|r#3B#d{y1~@_wt!Ne)aDH>c7L( z=oV^!h8K#)?>UlKo~U^k=azC-3}U7y$ZqsBFL?P+c88B^7Z zUJ?zJ!nti?2YZD>2a(}t!BIV+h?AhuW_Vy7%&!vaLj!pfgB>#XTr;FSlN4R!l)Qo@ z?Ogno#-R8hw2XbVk2dmSNL zJrNsS5#G^WU)aV#)W%2xZzSPhEahY@>1-nDdO*_MOv>F{#>GO;*+S06T;APM-rG`^ zU?uBkjq|fr_Wj>d^0!e4vc(12-~#aq{`Shj4yvIJsu6A~QJ%^NJrtvyRU({JBb_x4 zx@kmu>V|q6gt_WPxa$(#bYk2!;i zH_W#9p!H#*H8sY%Jl3ir-nt?YUzKc6Pj{#$In-v^Fj6cUQj8i?w2q}2H>F#*WZE@n zIyRG>k7m17=lN6>hSV1j8jF0Ii@lB)dz~)u?96lR%60C^ck3fTRELdJg^X4Nja39+s0zMN8$NzCVxm5B zsy^akUHGM=;a8g?t~DRL)*N}Yg?RCJ!ql0iwesdrHpTv^QNa>So6+mo56ZAyPBx}TK%55(w(j&x7#6mdGca=F7g?*p3WsYbQw%f1oa$XQsHv!i?(zqqG{>2YV^bnG41 zUiH{%{oA=S+X{Scbr_`Jw=axgUOy~381dJI!?Zf2`1sM=*L||qrCb>hWKn3dgXvHs z=XGiP?Y(~gfv7u|F1%l3#op@hx;*jm@l?+HXX%#RpPxe|EJ|EYzHls+_yts3%`(nAv#|_(Z823S7fSYfJanx{=hW|zDa;8(w@|I?TK&#QChK@(4 z=e;}sD_#dyNk?`9ABqRe89bCNMjO%<(#I(-xFZBmt74u)BVDl^G1D4V_Tho7oH8hz zuBcu_UpQDhB)W*J(np8VkmG$%W!s@$-Sq}vUvD49!!%wp9L1AgHn^&~9mg-}yy>x< zF>#E@5>=QKa`yQe3kvb`QgN0kj;ne=ICiGNS-KFRh)_u3_v?_0qwhnDKVE2cmP(2X zc998_g~B9%t^lj@N$jj<1wG7Y6~U(vDlX|I)aojlvL!Ncs25(%KD=EBJpr;pEx+3Jn^&(IW9%Vxr?WM7+F*u_%M3= zfb?&=@4Je$p*DD8ak$`EbGdaGd7{;a*%xK2TJ>ih7Z0lw@6NC z%f2#dttF5)FqF*D8xFgChLJuAD{a#sHDoG8(Z3(~lz;TpF-(PW6 z8+vT->0_yLj}We9(t^YVe6!1*16IkFh^8#yUL1$IU=QZ5+>l5ZAGtuT{N(GVTu?hQ zC#*Vh=)83NCha>{n)nF=2PYi=Otyj(WauwPJ zYUW-QM%0k8t~V`*UM&onod4@0Z~g7tT9uXonNH8&wa^E*{kpQ<=l& z8u|B&=YhAzO*ixoU9f9(oyo&hN`epy6>VZw(h0;YsCZP{mNN~LQCii9Y_fxjZI1n@ zl(l?QlYhO`^oc(fIhZak4^tXOe6P)sX`Rro7}%dykqmE$iA$7poU0IK#sZX!gtZPd z2?|Z}KUD}i)GS!}I*;;*F}Sp*8*Oer+eRA^*(wqut8I@Q%z5 z7sk0SBpkP&@k~y3y@hZ*$)oc5(=r+>hLR*xlEe_Ug!= zo6o0)XKddM-9(ortp`udRcMMTqRB+IqD51CvkXWW1qoC%-q8%H6BIIz0mw-%j^v9i zlaCZi9mF1^+tsG3**yw-KINcj{gM)Cbh}5@^yW?Pht4U?L2*HsLdI+Bw^i5px@&uVzP2ra*u^esbpyK1R5bEno4dpneb|o`Lrb4WN5#k409`r-n7HG% z#hukX^wtia>AEBy#wLqT;b6XI9@kiBq{ma!20@Qg?A%sXj1Nb=M*OtN2%; zArm@%sMb+|-gVdREF~?HZ7=b&8Rj1GPOxAP1P-v^5fq^)-zkcB-o`QMpG&rOMvmls zYLosr8-o2=W&5`i2x}t)W29(`uFbs;%st_^aR6M9eb?{{JH67ybt|P%+I~bkFo{QDw?0gQzVt=^c&Op@Bc$p*k+%9pH_B}%)$owxDqRJ-Q{#+4x?)XtY zTU|yW%#E)>uv##W=|H)*Ypq2BA`{eSHN+JVRsjh}GmYLq^hRh${d^zu7k5WdRH6Go z+q6JT0nqOs=6G)k9;}*Vr+^I&J03^{wsRoL!U|f1r0t7$KcyEEZQ(I; zSIp3E<5K{v-4VD%_ezVo*Z*@RpWsj$Ln1zam}(Vp(8@RjpDnvr7JzjffNd&8| zQ>o{wGK=oBR|#s-%DDkoPsC*%@jV&C`Cxp*Prd0PcadG8eiDE7>uPVCX>T_w8@`FJ?dGXqR1<(WEkpi~= zwF5ixP|ZPZBH@D~`};ghnVVJ3p@BrdSEgROj61?SJphJ$qeQxO8YOYIZ-j{G3b=Ic;J;H9ujpAOyq6K@i^k-)7wJrod^ek*vMWRJ{xPg4~+O2aZTT6KqBX$8f~rI8a}5!1chwzD}S# z8%!m0@2qM}4Yvt}-0h4Y3(g0Yq1>JOEU1BVvo*X}HnlrKhFk%DjIU@19 zkO>zzs-xoD2gNo&%kh%R=xCYm%|earyhE%4Bs=ffL_q``_IFq43>y1hm2U=s?PTi* zu6bz_4*NV1Im7||N0z}j$?U*w>&xY7*`CP&*aM8$Ua-9EmqW;Hy+VM8)3k`1D%R$P z;Ab4x3=MU|l<6{n%|F7qXTJc0AlO>8bQ~_NfC+D0lpu;6eg%ELf1U)gJf`y!xWH_@%&aLaBYk)80H%-?AslU|jFWD14(@r83L1g8O49*D$* zRHAPrf&I#+XkiJ*$bVME#9Bm4)SwL@QEU#}sq?T}Z;afeAd)3CiNKm|ddjYV=m<)` zUC0w->2wk_of%Z5uUN#a)_p}U-IN*yr9A~!|DHPf7lHlFsPVU_{bUIdH`9fIq#SgO z|5u?r0Li}**hmDe`BgXW=395FTyw?##}EpjCLF$yl*5E2aGd4sgx@W3%Db=H(zCehN4^R=}Co}5)l`op~*yjfW2EW;RuZkU&Lco z0N5=R?7#a#PqT`3?;Q=h*lhC?4RBLoFEq&gY7kTK{S{alYo?NaprLcR!C@!&M$j5CD?|Sn7py6lD;Dbj8!-qfcT_a&Rvl|U{afnbggFL@ z$8@cnzJBur5Kvaoz?wdmFL09ZCbF3x- zn}F9SXT!g!M;=Bi#N|LeHgmd0`g*ot_L@esem-v4b6uC*JT}lDN$0Gy&VA%{Id7aB z{(bHoKem4fz`_oUyANDAJ}}IWjoE~HkC*^ozz*s|(~d*3cYCwNy8b=&5I;+2L z1oBHs=@8j4-A|KcevbS5JbN!U>z9zh6xK42g(zm70g`*afRH2*T6#ncm-JLQNtZNY zqM4M<1~hWSct-Z=3HZ4Qs4u#IAqs}J=@gOA;8 z?~bn5-UKy}6|siAXO^H10E<741p~0JiCCjHtPc~CKqhE?g+G`zM6!bbmoG%58iT@l zkiCLF-E1KS}O9-CDvu_pZN5(goHn=b9aP+Y6Q@g$CuUcllWcmO!#EpiAg&)xTI!q zuO}!A56?Xg$w*13d5-=o1f8*9Yqo5M-8;pd%kc7<-Y3jb*^wmarS)ShIrMp<|L|Ovw>2J0RkQ zz5V6yf$TxbL{HYlSQZ;m0AHZEyN2Fweym=M5sWbT-=0T!Iw2JFe$=kqtA8L%iJ;22OF@U#dyB<-Mh_9yW%*7p{5H+ zePLx^SU%@^Fsx{ZqTBrin!Z=Ro@aO@pr^O%7WV4OpaR=^<<<|D&`-4VXToZkD^@j< zyV{ktTGqeX_oeC+arKk_J*L6E19t?ocjY%eK>w_ezD1Az`+g>x;THgy^&~I1zwMe& zg}C54{7CX#L-Aq&ytr{Ri?rb05FJK><*?KpoA?%+`G8jur&rCJ(IVCccGlB|A7c=~ z^H`fcrz?tBh2o>Q7){j|nkS}LN}jHD16Qxs3i+g*p+&A&macoHEXYV(ugn61O9vbE z`HpdHseo9+3-Yl5Pb7ZO?rCOZ7A)`Vlzz#Wna5yz@>MS;#7E~4%^xngArho>^_wT0 zIHOcUdf3c(EZ+Dy=ZpBokLEd@7LAgGH> zKn|;xhCUsYKct42iIy*cXN3_jmaRPt=RntiqEsWeRLX-<$5XE6lG*#h`U(%50Gb^R zk_@s!QKVtRy4D7}sNWzGu9M63wH*5pIG%RY(CBGi)>FgbmB*#eHoejhbZl>aeEMu? z+jRNXcfz(^$J3wsV0#WE3^nUTfH<&YARpcHS)`jgq!7k}hL%Thm)KW|F8S-D`t8aH z;(_fy5Pv2#gbh8os}}i8ELziJ{GX{ts=l;gAUAev?1q7$<3l~5CO3CQO6(&-xnt?; zBWMafc;klb=bhtG6^7IX#OU^pk=)zB58E&AY&T^HS#`X%5nO+D>gj(tUiH^l7zZL_ z0C7TF*D&}D4G;%_o*u@qNK%smuL*05=t~gWZ*?lst6}~_eQf`d#@x( zraVB+7*I)wEvn*w-D`a>gijd-4jEd+oe{tE8q1@YW9(tgod+7GZO`8eJltuX`$c$M z_c^K z^}3Mwr^o_lNg6H6Y4Mnp@-eX-37n}*+Cx{^Qs{lDdCb2F?&~irhs)X5@!PgXINo%& za24^P;;g}UTIA~uZ2IQMbik+Wu`6O@fd+dDPUjS)RzEracj+7Xv-|b^ZyBF|*?ji+ zZ{JJk^Vf{GZz6>ncR%~#@vgh28qyEcYhaNxi{%-~3MR|5)C3KmU95`tQNJzr9a? z_Rahjc$8lU4T~3?)sN84*wJ}90}W!?gy3M($05$-?(qNBVYKnqJP&8( zB6BPa5Yg=Z^f(Ej*=NXE23U642-(#E7^D zY`qkA`n?m|Xg>u|q~mCtEC->wq^=sZC47&t2O8sPVE80y7G=7M2iGlWI`Fs;A9!cj zS%iCE!0#{43Oy1&GIX)#FCvb?X#~fan0DZ1F$Ck|jg-g6qvb%WuRoQJT5jw*FrGUq z)uUnj7#i>;vBrz>aJ<~e+x$%rcg)-J^IT5%-a`-fzVG#ZcP|&f>Z~+j>tS zbOL;*RXZqw(+URQS#Kr5qS)Er4I!TJt|&po#^~Hfb5Ja^}!Z2hP$Otq~); zwTfZi6cSGz`ag=!#h>Z-f8#sb3ERwUs5Xb0^Bi+3+nj|El2dcYDdmt#=N*}2NXVg_ zlB7bCblT?75<(KCLMoL?C10t0e*66adpzEc?Y`f8-Pe6x*Au3NpnqLwKycpHqw~GF zKV$W zbMnWYE#%vLo&0f{2|}oOI4*b9lljZ}A}tuk!<`}|cyy&c+?3^z_NexZ-o^}*tV^?B zjUHD095j0pcK)0|YCTjYDp$~0t7f!8AxhZ+91na2ySo;a%J>kFc-pmz-t&+`j z2LDi*zK1}03$+ck0tBU)MLC5brWWw6WH%N_0X7NI*>IHl;F;wL;C8XQ@# z-0_UqlyCemV+G^-b@QJax{*7Mf1d<=?Ad7T4>PCFxE|{Q7p@2MJL9rZ%10-iHd)tQ zXQmrsb2Rc<)LTrYLnHi64#DqUn@JyIk?G|ckw_0>x9EtH@S9EKhY<^G=H>mqXTh)R zGbq_#!nIWTGWw09sG76%7-jL5@qDdFIK!w8m($88)3Di_*|SG%-^zvsGdJutrOGY7 z&=s%R>}@n175a@H)iGaq-S=AM&pS5#Sq4b9+@&e*TL8N{oGJ7?ZW_Ce3W-GCD0~8u z+NdYES1e>WZ#nN8_C1QTac#!_#H(#u2~J`EF}gf_4vn3;AjozIfcFsJrndW44Q-f`1+a#ozSmx*}_T9agS z{17gU$n1$T0|AMGQtgB9Xxrlb@ug#>P3c)WTFj1ZNm8|8aqo9atcAYO6H0n!jT)oSqRHM_i$h0;DqZNp`66~UH zB7vE<-B2`~>fCW)9!Bj@@M2p4>v3b^&B*Zy{Q0t+ITyTAvjFy5HkQpOTKo0nTqsksv?4mdczbn)QiA*$m6? z_)0NUBOo<5u%=mgcRN^klyAc}2jTMEA#oT9Jh{)+THUXgqQ32cn-3%e`Ha6|)ez&b z$_>r&t|I?|BUVnjV%19)`Oq!#EVUOm2n2n1W@1Q*^;(09gi^0JHibOnt6g@5Ugu_; zK)VbPI(5tR`@ime^NF=?&{4e{%N!_jPwpITyqTW0?{dQF z{+q|-AfVxZF*)?a4;hHzh0AYvLJNHH?j!ak*65K0g z&)!;H<;FXoWJW21SDK&nao<02j?sMZ?Eaxny}>m2?%J&Ik5hx#mF69xZDx&ji)t`1sBt1x*7|eMwYjM zuk%zN#AnLS%}DUePGljdROB)oGN|zc}+wlYlOygZr!5C4;OfL355&#hr6wfzoY*EEuIG7 zfaWM#+csS}Q)bMp*lKe>K~kg@w%H-e~@`jV)^dylzL`&?X2F z%R$z{9bKDTN5BTH3~h$9vqLY14%*-j#4G@m3VRjBfbfh=FEIq`+_~@x;sw8LZ=>Do zE}WcH3jpE{4}hnZ&{_%Y4-)gA__mC#f+;0xuQJGRyFS~;`42S+dmn2zz1^gD+zeia z$+LmX5DQo`>7JPWSj+58eaE3)7jZ`&f5q4Csw47LHe`KlI$p?!dqSo?px(Zn*9|ha z1rtm^@~8G*a;B+=`wPPtpp0pO&kSS>9c(HF839m_Y{16rA|8RpRW9u1RXL*z<@{dZ zLKJi|S`c?d;2^H{b_d4{)K5JIYaSspY59SFOXH4|W^?*J?S%`Z;QS17gRRHyXpAbtaeC5bRMKzvr}QTKo>H;1U^-Fn$T_&=BlvLf zjnWc}K^uearDEgRya(q9u+@sg_W2Go;B^LBkbxSQNFVwJzRHL!sY@C7I^z0kLFIoV zh$hRDix~##&3*};k*u2!94k{v;C*#_GQg>Y>SC^m&kjP?`H2fNmkJgEhKZ0|nTLLbK$MM2ZwR-`V#aXtpi{5O2_FI7u4H}vP4UHG>jEDY` z2pnz1zbLS0KOcLGA^zppf*3*^nQQQi6RG>euy5>VFW_k?)JH@@QUq3ZP|t-5hrl-N z7nSz$b#LY>63r~;wiQfE2f1vtC5^DzmwzA-9PsDtG+l5Uv5h72aum1o#A+G;ZuE`b zubmaRufKbKvf5}3Jb9=o>kxU8cTa(LHpeq?lH@(=qxdZAOF&a=R`$ioCJxNDMxggt z@Qu~!FM{qQ3jLPk8!2%6h`_%K8nj2Ym3LMCv)_hrl~*~D7k5QjO+=sVMT z2#XA+Gx$vU^&j0uyXL_xPTQH6{A-k<#3Pl|x9CD=RrLc{3;N9+(Rl-8f+hL7#yM^B zx%#ab4XYmhHA@KS##X)dOXX8%z3G9c&c3|;PA8!CrQ;wpTqeBt?&bY=j(4D8cb-Ax z$(PBFUycm?ZS1x z!rX1af^U{w9GqJY<(6OFRbf2wqj%SGi@>q#YMVLO5Wshr^%$XQ_AphqigdQl*f|Zg z-`Zty)v2Z|25|6Tk=k$G!&ROs1Kj#dep_%UQ9E=JP_tFMAvPT1#DI8;1zwEZ;S{az zJ#SX3tM0uLuD*gkco+KnS!mc~Xn5hn)n~%>q0m3iUf%259Yzf6F%CQ4rEsV#>lhI^ zpo$y_pMhUfkiXTUUkF|z6nD^IZt)N|hGI}FG>8b*(uPL73JbU4;xIrgoJ%+ve(vm4 zMfI!7EkVn9kS|ZKF&B8X`$FvLN>rS{3H}nWh70(kUV(0EvEORHuV~@jy1J$x7`6(M zE%40T!58i7UWtn!#nLNxg{ff>hU|66GYin$t^ad*Ye^-pp5486cK4s5-A5LM5rw;V zx4yOQe|zN-)c$^S#0>OVWwiaUaP?QTqe<9rmC2(ulknJi_<68pxxV8(L~j7%njvr# z3w)YP{6*J7tW#16pUoN@PHx?S7%E80iF z0rqv>T@J6A=Zx-y#{}TjkLniB@@LKXW=lL%_fj>B*Y-pCcA)}&aQ(M#fzu4wrm2Sk zFPNoiOa#15rGBs-723Xr{`ckO`iZxIiQTsS(Xg(!4oWe*C!@EnuSYZPS6rDDj`uu^ zjfXilz74k->v5Sm8b5zDW8PBi*Y#}U@}8-eJ&@`h&+Z9w3FLSF*6*I5m?f6ZPVL!) zDZKox=v+;Hg}E`Dnpo_J(X%ZF+j2gZH}Y-DAs!;0wg_ZAl2Cn~XVA(s@#WjBRv2~i z)tG$zF|&tf-Yq>kslT z*Wvx!4(q+o_GTXaDvVl+>x3;t)qL*G+#BXH7Do#UGk|by^yd8(|Hr+$O)U5%74)q1 zqO75K*@Ay8XX4#L!TDWN#z8^-k3A;!nH;c%4d1S*-f5_QJvaTMS_)7tgG(<2Z_kDd zPCz_XK{^wmSUmS%2*h>d z(}&EjA6j?AWWsz|sDn@3ebv1kozd-tg)1JPxBA@U+*hxv|J=3yA<8%NS1c?Ru#iv= z!w8Z)55Y#|s-?|{y|~A!Nf5w6Ef%4?G9dMDZ|q<%s!qhK#d2g{<14QwRT%?4Xt&){ z_)%>d1!o$L7J=2`xr7WLkx^(d;%2nK3nd9OG8bL|&Kc0b+bK_v-vt?V$yNH)lHZpb z#$>e~+aeA^chaE#L}5~F+k9q`JrBHhcTBew+4-cx{wd{}fj5_<%;bMvH^4go;q5ZG1p2-g?|CQWd8TqXHWFk& zB-u2f^rR3^dB0ODNS7hcYJHc-zRa3<-ro{PoB4^xJGP9R->Q|god}IEj`SLNZ!K@^ z-v3@bJAH27kC>e+#Us&cul65%|KQ%eA4a!+B>cZ&dv9Dk?9R2%Bx73}P zv20kP`%kOnpW{CTIpz@iC2;uc`Q`NuO5Hp`oClfGQoA}lrq=JE!}8{gJY1R z%nG&B_}Uj5SmofclR#rep`qv?tcfST05e`lFv#FheR;ZFpv~n!-3tW+X9PB@537{G zcJBMi&SU**d32jbFS3>=IjLAzXlB6Ji~+Y!f($0{MoS=_u$8*aYXu8X+O3t?H`58% zKNx@e(5duoV_)FDov{6;KV#hwq$DS&#eFm1e)#u!*ygNz-#+SRBFV?kHS~n+3pmn- z2Q0IaUtv}cGfw|ey*5T_4ChY+FirT{`)JRRBtpR1vHfzp2^OndXt=<$z<{qz%16DU za-c0u#8Vdmi6X8}>)&-62Si;sejoF1WH;*ZhvUXJd{#N6YlF~1&A^_)zdi}dzm;P! z`Ows6ZF=)s!xLd>)BaEQ)AZvwyIZ5V*ACtI`XPHJ`loAh>Vu=dhS#oMg5@u*rI{Xp zxgTiL`?HPB+1mXLkodyMrN*8nU;=#Vj0FVFpML9is-1uS_auJu*`IqCoH25bNGtZ) zrhjptB zyV`d1pnncdBu%x)4*WIPJ6%q?DJ!ZpOG&y-vVxtv=uv5Xb(ck4wF#3KAP>54NgnG; zjqX>hvP&2l2lA=j6*e^2CBp2VTkzM?tkW3m96w8Gpv>^Y%-`RzfR`P%pPVj_)wu|f z)kO!)V0fBW^WxNvEw$(L0$Rd;r^y|%c7*V|O>Hi@B~;G}o6A4?hBtA@?e4l|F}!T8 z#9*#7)-#yvs);oxV3?ayV12^>p-Ah+5Cx%V z1;GliEE+eHwRb6XL~UpKtlVNLOLxW7yD&Yd1H`id_*o_s3SKmm+b_82jBsj&Z(Wv} zCx+{+va?EVxHP>S*{^yp!q4E?S1zqTw@>|;QTrocj6JNfbs3-^N|2G15}#H`Pg9P#Z-^-%M`vOtJo2wEU2zV1arwL~&R#ym8LbwQhmF+CUK$|ZOL+ADS40_-pF zgg)C@UTaFpY3)Y*@0^h|OKm$N(uIg|CDvv|#iTw}iMaFM*1z8$JD$q!nkn`)>7K9i zG^i4s$Th8TQMd0+D{jG21lu+#Xqf7dT%R~U?2}K??~I~3sPC+Y2fW2+J-#W3n`pcE*JOe z0)Qfy#afiFuiSH12%)hlifeOD8x~TE@{(rJyV*IaCAf`7dA0i1S6G<_LYO^X>lmb6 zK(($#^d6~&vlb?mIb?_qovT}h!~O&5%b2+K!q6V5fv+4D)UXaZb=%#gI_&J$g< zX|<@>B`N9sfxEW7K&5@M#_^3yE@s6s zPb=52n!7~7{75O+Dnnr17Y7HsgZ0mCTV`U9`GPe&!M875o<&-I#E@E=Ory`UH{WGW zqJ3t(ywKXjN9{?xmbWn< zd1|*AF?m1q9yzbu++s}#4Zf;rum4*mR4-#=PA1+;q>J4>{4x)kc3qQk#yoZrrVVu8 z!maTv#c$b8Iyf_tgXNHtm!W{XGNOxZ1>AJ#z>^~Bv+Xf0R|67KW=cyQQpVq z2%Br5ChS@2`nplhS~K}P)sh0E*L=_0PF{>u37xdxYTbV3>f-fP!y-{$jOUib&akB@ zwaYerTKQgOi7&6K-IMhh?3d)6^ZB^nrq6u4=|X<;-;R<~kJD~X>GXd3}#wG{)CE$)n8 zka?U7gC&`D)VT?Z4^2 z6+-df^;DB8Np669n#wI2%<8^m+V5*X^0A-&-4D$6eEPcFjb`t(nY?<=tp%v-_FcLW z^F2!$B*na_ccvOK5w(g^7SqNFHH_Q*~Qc=#y;1_Q`G{Cn-Bxxg+lNe9+M z&46M_oIA9;fJyO5$;5RNaPxzjf9z9^f8YKWa++G)xxDF^*5lVn&bTtQHI9v4fBR2Y&Ih{Q__6E4IEO6=ov+T{D{>?h)V|{zHrz=;gxf*aO-9ww!M(0Ap&MFq8`GB=BaD z(`UsVRR^xg#}_IY+zrcI<_0OnS$e#ef$wEf;MF8H7tg?gjo#q@dH$pWhQCWTHK?yB zzVg!PBf;erb3uZ$oAP!0^6qiaioW_x?KaVbum9!}Rrw!&W+;}&krMSyvX7_sd zOWlk3R9n75i`1kmph#E=)sHwR(Xaw+gjBpdP#ZeaGPXH}tz8J*n#v^hO2{#8S~M)B zuop4lrz^)%mq;*1K%EZYMh6LD(HB+4_?W~%%+Dwl^w|8J2~&(*w?g=RNpSk?t!>fD zZ3tk>Vz?%=5RDc|{V%3w;ci!%M28O0mTS(CSEP9_oK6m2zYpKxrqL9_{)fz(4fAi1 z*zS_yMfJbEH=tyUO%bn9Ixb{_7K_@zGRQSueWTOou1(SM`1s`X)SG=mZ-XX~=XX}P z4cO!MIF;yXW(h0PcQS{c)dOw3<23~-jB$@V1CAQxRX=3d~!9s-h5Ifu9;X zXxNBL;$Xht;}8f^t(IwR9jNx*Dyyxd{+2*+-n!ejzs{<3E^g4vKcif|gS+(*mk0qdZTY4H*f$E1V8|sa+JHeNj4@AFvL8u3gR3kBP~%;RCLL zZeHa@*7UibtTVUS>Dj*Rj;hDmKv(@EJ+sD8t8|`vo&-NXjL%~lV?o=ObaZ=jN60*l z4zdmaq*DS^tKq=Q0dNO&?_Z~Y^WeZ?RdCq5PpdmAMsH4d4P47$uKKE47X&wsyAd%w zRjo-LWz=>}qJA6;?obBnaB+)DYL-C0CKE@O43amf58{p{G8MZS6Tr$SDF7{F_y=zQ zr))TJTzyY$Q|A7Kpe|u3C(~lRRq^IQT*TjC*Vj+<=eM7pdZHgzY!Fa6{hOs%R6>np zrG4B`Dhb`3-qU^arFS6dc5mf=>iHQzzFrI0YxynS3u#yV$S8=Vn{gUpB8QtXsSFS) zjEO22r&_-2NdmxId+bVjHvc7CRXf?{IoY_Y&|0~gT?{2LBO{$#-}^Mf-BT@wJ4}~9 zqNJHJIiNeq(|6fK=R|*xmUTp997^z0d;DX7;2M=kLSuC72GmG-lz~tX)b#8T&c21sOy@+ttl3c$Gg;m}QZ2WQ`Su9tK5#n=sksCdDTS@ekb z*{)a2(&oY87S_?w$cEyW7R7I<~|Jt=>v6$3)zMAUL17Q@ta0B!7A zmuS{75YxT~Y7F7=mrUHjf#&r#zTm(dkRk1=P8AS655VA=*t=ZD6!U0|NE8e~k8|)w z615g?{e}Sl)+$?bp6;?LID@ChmTxUCE~Z6!m9Y`Q{cN)Pi*7UoFg1ALQ80 zApbC+s*PylWbr1QJ_<3o$DE_f=IPNHdUSwJ3sVIG+<29MStxS00=n5y8()0Qn+o<{ zxb}6JBhT@xeBda}bH4kSshVn-Hhi*NG6JV>(>vm7@plOH+lBBy(ByKt4%9exmggqj zpu5Dgq`O+>CExu)oA}xUR)6I4C4Qz&ZK^d>k{|A?!Ir}66d8)J5*PHGI* zYTm%IM+21!y{uycNoQ!By@Bjto-t)=JhSWoYF2r;FZFI*NZWzPf1zHcd-n^ugGrL> zb%X5Q@OFjc062%UAmG69Da_x%drdPNN0|Q`pIxP&?>#hvXHr<+)bwtqU*&vvcRO=ozqR?>6h?S@9s-C z7%Ht`ATj`lGCMprJya-PhF5WP0GgW?n7+l%I^_>5&r8UfJdK!y2QMtu7l7b$Qt)%} zMH$*5M6xj^%kzU|la5q7Sh|qIqZMA`ZDDCQEvqs{t+x}azKW3n)k^UP@lOFkp8@ik z>J#u7#RZ0Pi%Ff)o>ht3&gNc8}|UB5*Zg+R4VtZ@*pLQzWAk!t02rr!I4 zn_+4cDx-`pmZbrxl^w}>9g0u|iu6lg}nURgMGC)O|Rm*Ijqmo1pF5)v|5QI2-KhI-}dg(~G#H&$pCSn{<>| zOtW-bK=PN@HS4R_>KfJm@br_U*CSYZy;66iN7pZqVaj&xeJq1=-jz2zwW>#lk`5h; zaa-5z@+?VX>CXVqc5@{MnZ%6cgFkGN6x<{NvHJrLq&rWmX#l;KWhl}x!SkZKv|aZjb%wpW%D<8?A4kPglERx@RL+yM;-JXI}gyMh@CmTcn~2 zJ>)|XzU;#HadF_4{Trd*)!1C2V6<+xL%&5Xg!u>>wIAvJ(WI1^E8Cl|QsbpK-vn1v zCegPYLBDt)U7W-pPUbMswNh$fKQ;kmNCy}$v+!MFQUh?~UAk7&vWn)q1ul$faKk>! z8;LX&;>YuT>h$e0XQ1?0OOhpRhecf?&uio>om!0O0I1yH=+y9ZbdD?CJ>2s_Tnk`6 zBqMQ4aXH~4)uqGzhwp#5A}c``L_DRIy?fuy<=fEeD}JO-ly0+FmKvw9ru$?DI_Lhm z=UT{wP01{H1S{%Fb7C5Z3b+ym7@^X5S}CA353nj={4K<@lXdyUnvTxhFRGf-{4D0} zkPqX>028Q(^nE@P^{jR2V_-YaV1d;rW2(0T4=TXfyMSYKCf>abe~fsYCiH$t8Pe%{ ze;vs98@ZIlW-bWIzkMcd`vpfXOx3O=-ml)Rh#J^klCa~__FC6)yP=nxQ)Z>v z8hT$}ZcZL=3RDTbYG8BqZD;1s_g6KnV9`C+Zx5n&Hpe|VG#er`lxwI@g5E`)-Fx=N z9l5l5hB~yXBjQ%t=$<_TYS;Ro5ZvmEg(!ki!irIIN5T%>(Q^iY?JR+a?6Bu<64Or$ zqVRIVRuQqS@_%sbgM;6;at+R0^sKNxXWoYhEKxtO&=h$_LAl2H)MOY}O7<9{CXCa` zZ~Hul^epehN0MDU&zkIBUjEnvIDMhw6yV>ic9!FMuSi8VN&?Nzn3)w4Oy-zbnrV|j zQAschgwQSbWg&D5n&xu!qUz?5mltth?>It48j3VcA2k)W)(MKDYO%1s?zYn53PWJtm7i{`;a@T$)5!w)=Rb z%h}NP?Zs+w*CwM-Moml7{E@;N&P6V?T`|~+7Fh$@P#P~0C^K5~!OFbPL$}_b_W@PC z>6dk|_LN7Ev&2MBWP!yP8+_Uk^Qk`Hpr)xru7CpccqVuiR?15T<69<_Lwb)5uJw$EYawUsgTv*4_ttbTLP)#iBvK7lRq&dpF7AIaN zOB8obr#>=%-l!%woIJeFYoW@L+gVrKNcWKb?rq(>a{K$LY<0`R&in0A4LsVm=-yl9 z=db$C3;5GZcKo|bMJy(|r7X}#@(yL(1=mJ<&2lVM>_6XiLQn=c^T@4!bjk%B0Zd*t5-Vau*M|Go1<`Csr2IY5)9<<}6Mm7*z;R!_c!9T?@o~o0UmEkVPLA;9#`c`E0FBQA57@fXKc0 zpzlZa$g2=4P@pWketQJ(Z^OjdsdpxulE^b)Rs^En%jN5^_B7dS#-h@Z+C7a+VuG7MGHY~M*Jk0f;ZFitZDQqA@gt| zI(%`6qBY{1WoN=c1~B-AdH}8hX4n17FR&BEGUtZ<*v8N#o^mRjr5M5BtI6~K72T@f zK{0@sp2d1m9OykEhFQ08fji5k_~wyjebFpBya_bd&FTEFRgq!LmbA|GGb8VlVTvHB z*(rd4441%hX;dW1SD-~K0MhTyTD6_?-nU;R?Nj@-O)JiB)BSkO`5CP37}PF>!#7?z zx)URrQq4_`QVZ}>(zBWE9+;6HJelofYGhp&wy2czchE&`Bqh_VycV;_hpg)wj5fKz zSryyhy}!g_o=FvW!-Bhl-2hfGpk$^{v<&zS5H?lSMiu-G6Q+?RSuA+1e?_`Pb2{LR z!!iX~@&bf6NQdZ(bAYpvfK6-Ste}(eNOZZB)C(}6(I`lhCbFsST&LP!^Zgol>cs*~ zkhUfh{xB>S>sgFL`aPDH6+f8;JoLUjeD>PGo1guABZm+04ph&zcy=F(Q93ZV&2<)D zZU1IZ>4pSfC$Jlye-JcL8QxPMY(D+l!f) zlGfh(d3S_MMkK;H1H6$w0CGHpZ@6qRzq&QWzl6swx>Mw&vu;D7??~riPtbd*d96at zq!DN&gRc=l%Bs)-Dh8LcaOJiE`=^{Q$C6KXTr0HHZ=xeiGej>sKD}n&=Kwb}j0acJ zp;R3Soaq~jDSb4kty7EeE##?`umyT4pAlYNpZOHcNJR1hP5zd+?zK;+C7AZJw z3ukiJ9k{cD!O=4`DK3*PdR|hibk_Hw+h}UR#_z1-R(}BCObuQoG)}3ctCvd1%&zvI z!@I(raBQ*>F{v0m`HVN(0m!nHD_X8i2wcc|wn|W@d1-j7E0WB1?v zS5R5omOTDm@ruPwA_5pymsR4{p_O+kK5Y5l?QCrbcKgDW!jA2qxC3*; z+3S7oAeOrNl=NGKe8>w(VqwoMtQj<4T{Ipt>Cf99SN;rI?Lq;{5OE_5U?-LJDhIPI7?7+2^Re2=)S^ zf*g8YysO3(bu$G;G1?H7pS9L}eVFG~;`4`rJ|LxMfwujTasM2Z8BFSH4%8mP#d-!u znyyHGib)}kDpfAY^AZ0i#VkD9YOU!#}<1gfT}`^@^PV{Bq!(AV+U zs)rbpb<9I830zZ#>ILYekypaR@pWRQlse_R;=sYhOcWdaL*Q@iRPoSY%;@oB08AlXd_A}1t3gu0okal0+^ev08( zO0~fyblLD)uUYlLBQ(=X(|J+UGN;j@710PZ!u6|3WqBn&j|bfi8@Z%_L1jF*-ITMkiQI3d)BFDK5ShsmfqHj3dBY%NneLSI==Br8ap5v^?b zCsF7RPEDLGO-rmC0KBRY=1zNh06Qv0$ zpi#ybxfqJH9!4d3jHdWrNsLM)&M1(ab!*r^`o*X!9O)4s*{~$6n1Svt)}2b+2ZmntXCvc`1RBgU}L4~epJXz64Anvbqm{qS28 zDOK^DP4DmyjLbcsiQ+Sp|=>i!I>i-9U;BgbZtrD9Yg8NTtF!V@w21=}ty>PggPM6(54 zeZRf+F!E$EKbQj~M|ou5u!*Z-uDBxa_HRD+4OxE1K^=``e^f8?T`kB43Xno%(gT=+ zQJ;nPvvlw5s0j39jb8foN!;@arH^y%X%lCFTeCJ4!QG_v>*G8Ah=yBJ8VrvPO@MAH zwuqJH+%3JhstX0UYaDo{7^zf?{k{&MXqi6-oL1Y)@RgHCrEH`R!1-VgWL_*kpeh5n zSQClmirD2g1Kml6m5@2DCH4huT~ZCqrjg_2LdMKeUogDB!{9J41Yr@`46wQ7IS-3T zbdaefkOiUu{puen9esNvq_Eo^$S{-D0uONj%l_~V1Tf$G*}?Fso79nyTmK7igx)lc z`=S|VTs<+?1If*r#I|)Y(aGMejn~)2Tn%)oMmJLt{7ktYprl1BpmDz%L}F+M;nOu} z_3xM^Hs1P~rj(-Y#qdpv2Ahi^U2Ifr%^savO!*FFj3n^gywZIJx z$|Jj-NJYgK>aBx-iUL4##fYGs9ooP^W%w}+=2qA>)VdCZ<1cz^6mK&p~Nd8vjtJZsKOR8Ob)I$NhBgphGP z#rtBVkY6|x3U-l$o~glT&7u=IA=dzkC2f0;tysycNn%@rQ?)2W3A)8RximZFe9bPk zeIBY}Rlo!UmF>G>iba+24F8=ZCBcu4g>_bk6lE{8i`ip`9AhKthCM zU6nPff&o!nDa2wRX`zfLiX>)o3ClZAW!0*W3wvZmYYRU=qBlo=(an1A@B6BQtsI0t zEOLW>ekEZPRKg6ibG0?&|Jsn6BpSWUtxSbB+~en7S&*bm5ewW=$*>#mzGksK@93-OU_)O#|`Bsd}yOOLem0a{&}K_EY% z5(B){oOMEGpzmi;MDbzL44GJS`#c-Io(uHVLey~*US(c^>E!JFrgc6wIRNhD4np7_ zIz%iWx5Vr@zAFrDly}xIaCo(P_K1`?i&c;GAu|tt*pFYHD)>?kTv}Bjl21D_3;qSy zFlSFVG6|VL(hOdy2p%!xZ*sOE`LO%;(e@OLE|E@1t7hbxmszUhn?88S{|lXvTE!P) z<+?b`NlAUjqTs_2IB1s;s0(ogKz-OskOk-DbHH`l6#md}c$XNNBhD&gzs+MaH-3f0 z*FdEl>dF6MiDJbT&I2C6a2uQ^d{_2q@BUbZ+U^=yIy>8RUr6wrm#JdzZqb%5|J358 zZEfb_a)kFQ+w))6uHC+TUX_bAn9VQZUjT;U-)GePnLO1AFh5;^cCnRz zh^b1v^KH>{_g9N~W-BMQylv*NZIf`-FR@Pi>t4EYz*BNt7JI>Md z71G7pA?7;i422NfJyUOF3pT`aD9kUO)zOD+M6OmKbnl4EuHe-73_mGX79;MBP%afH zPOC;x2nNRqD~C^!)~hAD)l$-yG5tGZr119Vhb7wf(%rLTPj{YpzH=;rLh7B%x|XbX ziE>gsCsHg@kt1j}%WuMKF-Yb^(#+`>-Wz-vkQj9tcgyA^YMi?z?o;x_^BH9mri#A= zTr`7f7PAVsqusv^O-@tOFsNQWusyVyG-JoQ{veOsvW2H`Xy(fA9_S~SV55Bb7TvFR zx!UHpYx9s!un1W(hHU)V47`_dtNwxFmKo^lP*;jnKa3DhAub)B{dkxtpb+Dk1Xi^q zx|V7%E!`A;%Ix?F-7tAxLi%gxtlG(W%GNpUe@_h^h=mgM7D}YTZ_TD!Wl)-m<_@N9 zEzT}7a-Cc|aWL%p!GHC2l7|QECr{PKx<7}`F>($?s-?~1wG31~nILljs0IL{q6Xg0 zkQd#eJH&9gocSK0SJjVImtbYCifcv+5p0Dt0CPATH*+6)i1X!OjY6sJamkdRq~?7T zB6r&mYs?@#@*Sd74to6Fd{szNIQgCA=;98XcREQV0#0QENngu=JT5Rkl0d&VwpZ(| z)z%ZX5u+ONYQIS0;^A3-5YgayX%Qa?Jk1n7ss7b=e8*>pNmz-9;?N%jeF_z;FXp>6M@c&m+bz21)woVs_td zKB7`O<##do_CaV+!1LCYprW+~lk2bVeHyDhlbIvPl5DigSS7QZ;TTr$2r3;DD59H8iu^xLhMIV;Or#JH3X?_t~dP(63LIBJ?Vg z#f ziPH~Nao6EGx129{(}4>rU(UT3s_kSH2`~r`{H1mL+7@I&L$Qx%!o|{vkWpI2 z{sBPtd3IX1ZXW%I`{e@5Ihl4Idk&$0)j>5k$b2+FC8SNNjyJm6g$vTVzh>vBSDy}z z%4wt1>o|o*cZ{?P!{)NHLT~@rW;YS?xNNui*eWnmz-`rz?n+5>-^fXqBK2z`q6V;j z0jaL?kozqmb}(NeRt=_O_|7q3=~#_@9TI@XDL{KB!L(~cicq>C=AcXm0X-jL-ta0G3uQ{As_kuB)=_8sk0MIWDaQT5iu3ep%5KZr{C*TDl%w*H4sA2GSu z^||pcRP?C(Y@XdG-ST*;hraW-HBbHje&1UEXh@zw242(e?#tP!8sa`MaorqqCFpum zV#lS8iJlXd3xg+&J10uDwGFh=?aL#xzN|8%k7|y2to;a9V3s_qDw9{u{NWyMI*zG$|sh`wkz)*t*57K;Z#GKvZ>pZJsLuHd|Oi$Icm%mW7F<`!EFdv%_JPlokuA5T^B0BYOU<)AYy?YR$qsyWjn*{ogaaXs^%#+?)66P zp9D?Z>_158nZyQnni`gTh;fsJvq}}J9rVq%kL{XL{Xg>V^Qoyd>Kkx6NeGYtfzT6r zC-e@XhaP&DP(=j^y<skv@MJ)}*UN)3jc5lgb&7(;bp*1OgI?%yPZ1En;M6KefC z_xwhB9kjadTScPhaH$3hy43}h7O!W-*RM(;|)T0=}laaEFg=M$O0N0B5tGMc1^JCAng(@ZM2NQyuNqHSLX z*0mQpfTI({dTNVgIAY7f;QzeM`cXEUZc3J$Z4oqUWc{nUTHN8adKdDTSbmO^b(Wi;TT z#2wm#LF>KBn0+sayiiqr9E(zGxyqRi~%cY;vSb7u%OW z=?rm{XaOW~6)3F+gW!okV)JIbXv3^%AKhE5mtu~OUV@s!ZABJ%ZFA)4R{wJa4OC)@ z*)tnzn2C&F;x5vH*kHGWT_F zcsPY2S{Td}xA1|FrL@@pGOU%D#0%z8nNstqc4gFtBEV@f(t8*ri(B)GwUov7Q;WVL zN6ejBCqM3dZM7f(kv^pQf9k$4@wtfZseDIk?S79`4q4uk$uR8$TXPd(DkJcfH2|O8C2{p!*;iwe?6ffT|c=%GaR5` z=JPIagleiz-WZY@5Xnzaek6};M|d>{eHIgj0+zGxqz>u3&^|BhU%$(;?pqri^N)%= zqhy0QiuSG(UW)po+ewe^jdmz^a<;9*)xPd6ahgI|zTU$v&>R*1kjjsYO$e`mm)>=YLyLydKpu#;=>f#OV^BtZkyVQJjszQUC(;Hb3Eh9@4h$tGS}6P z-g}}kd*8^tb`~p~<>J00KpP|aAKXpuROsP9jxwD{yn8%)M_$Sl73q7ww&tp;qspNQ z6?DXw{kG4IGTIrRCQetOmm!=;2m0=u6B{js{*0|cxRN5#OqLzG@CQ^K2c%l97x0g< zdz#u;P|jp+a5M=lxk?rEAJ+pPUj(fY>5zZVPuO2`t=(abn%!8A#nj=^_reO06I(c2 zF+;um?;h~|u%0U~1b;nbk))`lGOQ7n~Hhc%D?E)bj-ZawHzR%eRbh70Zphx-3TdhpJPdaqafMsFde{UCQO5YM$Zk8Nd+I@)SiV0$+aKD6hOg-9>FZo(CfuBn zPWz1h)Kh$LY_Yf=ghK6#*w$t|>d44Z$pi@_v-T0d&nNC(RO{MBqVOV7UdREeBlQcG zt|}708sg_eIMi-9agHi*gPL}jJVryDeUoHQgq#ULK>bj!0F3-3!Iva~lg3yr711FY zp$ULsQ2EAtz=kY{I}s8|gxavcmh?hXBA*up;^GHGQK7s7up>I&b0Io7>P5V-=s(;t$)^pY~;a37BC# zCd$X?dn_R%Q2s0)!~9Wl%`fWgFyi?r;!qNGp${dS=nOcg;m|z;|J5;n zmz6`&&FMSvnwTSvhY`XSNg0c_8sq20zLgj>;hRzrT7LrZr{(F?dnJDs)z9mREkyE{ z6vv$$BOiZ>A7@!v00|`l)&dz>oL&CYi%E9FN#_8_rWQf@w@6I0PXqyZhErETg7cWu znOKN75fZ_In3fgl0Ej&1P1p;KB38Okz>dyfeO6)bT)oJ_NQ^ou;YAT>&bd{M4hkv; zS@0|dc8qs(jBss?8V78~u3GD>3T8vQOiwy4oiU>^ol6@x)Xr|H$!8u;{L*WvhjDC6 zMs%K2uf#V&J{xu7OaCZi3ci<~I3gmP75Aaz2%y0$RWXT!N9|n_J^3SZIMSxt*?O7^ z6zoh<{3lR#dXK!244hnoNkH2A_7Wpi$hWfRz@ zF;$-?{ml7n$jz>gy%|5?v{S-OZVF9#KaCDD-(p2<0^!B1l6k;59`pBW+ad>$y=vux zNkrdIg!i#6?ln)4V6H1!lFltLly+<|>Ly2E8-T3l^0A4UKle2>w#zH1a0N*ykp&sg zgoLsnJQm^V2>AYt|HT#^6bly20&8)kglkXRzCJD14hk^tTzzxewj8sjTy(Fi)q>s1 z+dB$Go(*#uy#6HrzkAyM45>jV8DZO!Ha1ZonbK~STMeeUn82|9OKHySep%q*d%!U#5k9>-s}Ur zKRzwRe^Cw8odgeXN>^m3DJIpwyo7#37RH>IVEasW zA<9%Qn!8>$&!HN7Szn^SPESJYmI2uQb~sG@=OW-k8N2|^=e0ZLPK5;1Pd>*&j}`lm zIbYG4gX$8cEe=i%qwo_aXuK!z#42Aa=W-#3C()e7_}&2E=$)$U|B*kh?nS$)4GyVa zdQ|aGev#qZBN`?1#mGx5C=pE1_WSwQ8r~8{J*U!9CCdQ)r^so)DHdz`6otSv#K0#U z4@Nlhz1}%QNiTsrkSCt9%h0AhzVWD z`wS66W_z;7s{wJ?O*Q9H?M5P|j06|c*U@Jdnp42WqqejD5HdHkTNgUBV9UM*0Ei&+ zxdKm#0Eza_*{2;u)YXgXS2;f`Eji%BumAy@n_%~qhR+#B1Z=fIPYdjTEIxwz;Cd~i zK4OUjz_?#a3GNZ8bxP}ZnFSEOxgr(i#aJdHo5-xcOrvjh1zPu$)^+`D?Kw=G7^eYY zR*dM%L11g)Od{VMMH!8H@V{l!lx2&q0!SQSmh6wY8X$dDyz@rZ(v6&}FC0KY>7A$D zCcL#eIb~q=DR45>^QyH>yp z6WzWSfFWJOit*Gd%NY^=+3Z!9^Ff11sY?)|K(^~HmSB0z@O+eE-hh$16}Yd?KqmC>+_=3Vb6l7nEkGE0=2nS0y#QDs zVo(|639g8i;J;e@&N*RN7aJ_lKCbr`6)T=JM{@!nedH6te|7WU`lVV|HUxJW!r~w~ zYnH+r|L)18Gz`Pb(1>KN8)X^bGz`@To1$2H2Pm#8Pu8i9YruC) z&^xXV<@_P%IckMG!#O{^oBce654BQut+2M$2@*p=e!LC%^&YX`@(x8ouvqZAUFCo5 zOhb57G2Rxfo6aj=$FgljYQdL(M(fkTF8y3W!P?JIOvvk272<{nu<^JtCjIQ2wc{VK z?au_lmIrf#MD`xmIc}kb53hU>S(L6N71UuevoemB36EF_89V#9d0}J9T!H*uwCN@` zL^7)YeRG}t2~!WF$+mPuWRM}o5uU$yvj zhj(8a?0s?2Pg_fSxF>0|fRWW1a4Ek^3cf4i1#*7^Uh+~|G41!kLp`~W>GOJSGzVhh zzO?KK7&0kE=Ex0B+*t>VOx0U7A1X!0`suG{#gKmmRWPZKJ~sW>{`>fmXwlnLr>xC{ zDPB6u?{3nm8-VjdyXOx$NcijIK`OEv5c*Z?y^U5pndtAyqq?~-d@g#p5}`@mcZP31 zCcN1Ds=0=5Tf3RRN5Bg14SQf7khc(Dg47I*_)?5;4W5yFW_rbjpBGQs)8l z+J7TVn4bz;g&@Nr3(($I5eed zGi&c$FKrq}WCQ2aDjBLsJ+kgv{~CY5`0*IDB2sMFf6&0$+sLIsBcPvj$BxZ)!h_^r<|ku7CmFlDzu z;$2j+L==8Ea5Q?U8e#7kzkcj)o5&rH{a@oVOrN5EVykx6FUEkFKO7rR1MPxFsI{|S z$(w{)du}=$yRM ztjh#eiXQ^dibZy8HyDFxO;spXGL=#!+CN3*lcSrQE4x&`LYY%OSIW>rE!%Fw6+ipf z>WcdKCOL?Or0zN3qU!HCoIENlny{qQ!-G+` z(hn3C4Y>W%9wyN=yHWxyGU@tB7ql9@w!B<*^IUZ?=gw4(*}Kv!1Ccg;4c#>USd*6^pr%>PmG~PPf>vln5_a=x{p+df5zUf8D$q zxV$rd%bxkr@F{9m%UFHDKzK5?P($kyH7+9lvK!v?NfL$6$9v()i)Dyg&~K-Lr<64jU$d+ON4&sb5zdyh|gyXh)D@(zrMdE|dBXD99k zu358r8HZoM^%{Z~Ci)7-vh`tR;M>8B(y`>HF{dygONDW7KQ{yzj40NU6>IIoT+|;& zvy|#-qYBmB^T*3nw&&COC0z+I;a`wt3javsNaqj=nNyo(x;Rz&&-*v~%Zd(S*CR@# z58;QkvB-X38$JoR%q+k6uFcD)a1RN1T@mrYt*WEq-{7q&kMc79&G}(@-BoksWu059 z(V>&>`LOJ`Ln-!8beEbZrfyJc&Q^~0Y4RuJ#Ls98$16x|i%CQkzrD9}(BPt0Q*h}) zgW5+oy`(L~`@xV0W*Yl3U2JcpOW%ocFL`0;(u3^E;YkAJBXW0RN&GBT6&B~g=d$!H zKOHay^DBqQdvJRXeIuu#kOvO(M)-f=J5!HpvA~QD0#i8po7a+;KK;L8zxb*UQs5uuX^iH@PPKaY3^h9xxl7);)=PvwlGE*Y- z?M=P<4gN#BpxOI%jk;{00G~(&_V~Ul73R}CC+dcW=$1ywf-q%)5XDV@#75A$%tjN4 zf?3jSkC!9ZLDk5n_?g>Y+wxAA0v%Lr31fbp`e%lSks8J022Vnd83#o+`knIX{1o&G zx3G))7C%z1H=$K^JSAKal2l^cY14j$HYfEF4|j>%O#HK@FqA4b?E_5L>8nh)Ne9#5duDeFj1fUL6fMQd(lpjS$LSWXiF!7GgZ)g-t^t za;Yr(vV+9T8e>n^Tk;9RjAYSwrq88QF9d zBGR}R_w?UIy2&B|W{7CWncOWDIWwa`a<*0atIzyzm!1MVSH>YX4=e1GdO}QX5EO~2 zzUUaf2)4RULW@|x>>yHr|0ZrwUGBm{z_l-3p9UqLtQfD_Os7xI$$noc(LbIlFrZp$ z(0vZ!le&pHA+Qq;%()FjbB3x)55o71YOjVq?=9nx(A0_*3F=MTQxCOww`oj6-KJJy zyL;^wVfRWbxCEgb_%42j1tS&$QIXpW+&s0|3R2$_d0e1 z){Jl9O7CB8H8OyGRCAhEq@Q@5+4n#c>_Oudvw{53k*+}89e}tV zS8MOGt;_E}wgM8tTT*XKZcKBatT|JZg6EjFjOE(_Q3lYf6rzOO;M!ho1#}oeq;{rY zR}LaDw>t~i7!;|H+uaze9&%Vn9yqEcUI^1MFPjD`#2J_5rt=1v}9#e4BS9{?VW6>ND zR;r|RaA9TH>5x*Y%Kng=emV#rZ=;&@5fnH?&0aA z8ffcF!S=JSsq^;Zwtu_*e)4AC^;Sx$WZQ^P8UPILM4wZn^&)(@Ajus{DWF7ZFfk+b zzYi}cTH9qnM>=Ev1{JDA!d1m-Ph}S1CRw_8X7FeIkx7QgNI49l?!#a?&lKQG6^mW^ zb;xQ1v#c@^%TlJ$fH2|`(Ne^M7x+1&w?0DL2C+^fABr&R)Jq*Grm)=tBK^R?kOD3Q zUNbBeLWD56%l`nm%zKjOEf>K`p|;j0-GGq7#;ta5W_R4tYg=V)+>MDg5!vS6;mXbS z)V>khU9dR`tPLMiRK*aNg<7f82E9!46{b1O+$pM8kD_W&+7%etTWrP@Uo4O$f&_jd z%1@dQ;)b-IUL43Q$TnxF;+T59T_N)NdX#4OmU1?O1&*K#lPC3QU}FmDYroQx1W4G~ z+U#hvHoI+#P%fJ55LkIVXvWTfJZ67v#zX}CMG z1j!cyHYznY8MglYK!+@)A;~}d-B~=L9??P;ckb04HB(?5+;>d&6&D{Ekw{_cG&5`; zPy3lN6sZg?0Q1j%9ayg&B~;Zim1zWUC^^S8Emg}b1lgE^HRwXx)E3EIA?*-R@ySaJ zGDwZg>GW2m#Dgp2nWWKjVO5|oTNKL$;+q);RDd1{r@_6X1K?ByN~^L!>TCwHuz!q~ zm__Rc-EuzjY)Q0z!Ax`^IMg7*g6Xq=9l62CHDJEj0&A==R5_M}9mWfdLc_%y26*1Z zstHvzJ(5veX_0BN0>qI)2MR=_5{cRCEv-Oq?W5XD(8?v)1(IY2Pkw{N zflatN2a=ae7oUU{` zEA6qV>G9A0^3MTgw(p&6o`he@Sla^N+axl<_H`CDbqnJa7&a8NZ*DbaKvdV-diQ_ zeqZktF3Nm3(p>2)Snuo2@j>w4Q@ZAKuvsR!-B;C#-~C_~Y`MQ|I%v%vb08AIzubg= z7J9+}H-Fu-3kfwa$uk(ygxC_b9N?>Gwg^19!+xJ>3}9+CgD$C7Tw*b_cpE~;cnKZb zje7+0B*g7D!I91zq*DM+ogX4GU*v+cOc*kO$XjLjVz=`Dm`>+N-Wh5V8TU$`E-h1Z zYeh!v&rz}Zgj%KNECb(ZWx!Zfp?9>qf6y331vL#g3AZnW*aNI-r$@|7!RCt(O?F)` z&U$Yi{03`w-8XD-Jo3jAkY{kA(=jb9;HaYU!4u|&6vRep)!W?AcMg(!9pdg+XqCx) zbfsU7#Tf2jXqQs#7gv#AAVpz;#R-AMN@w-=^$N-ua_fvaeVojqba5q{u`X1n23Js( zsKq|6FkxScV+gC&UZR6kNfpCXr-lTOS}y|@dZDGV|@==6V2c|vUysobkQPyxU^V4Ku- zlItaUjU`wG3+I8xQ2?u;`y!w#YMjT1rq;1j46WfMF>i)GW?ln~4Bsr9>;0MVn69WW2c@lyZfO1 z3={Hd&e!Kkz{|%FZ*JkvT8RHK!?C>(FAjuEf>`&uQsPxD;1Jkk;g!6i03Si=vhY`> zhJiHb7y&wM2-PkHF2pnN`#|q+Al0}b{&PSv>b&C-AkU*$1$bz#fLeDDx6@3__$SzFA~W1n$lOc7^kC)R9l*d!Rn0l&dsl%5KEKK>}@dO*>K!m+iGboo;q%%Yz~MFBXd z=gMj?v~Y9T*9}*6FcT^5T&=2Js#ETDcPq(i zD`LGuT~;AyBhKZOa{4Cs!^V+32tjsJA=Z3L>7=yTxNk*Uk$cD?Sg3cV;h~@{{c3pw z55WL#WM0>y?@CcYQGlS{io@x##<76kX;8m)#zis?e?VrhH5lKn9rCCfLYOH&Q-j}d zyE^|Ajb24MSz!ts`1?2YZ5@X$ksMpKN~5&k*Y=|GKfZZ!uLbZvcL*?6Fv(;yNLEC~%y10)Z2Ee*H%W@uy+1(RVkyT)RF7-~o=iGYh}RU6YF9EQl`)BC`#YSt-DqfK*vR zSAC`X8YlTQOM52Doz9jEA7RuFx{Gi64eaZq%4!~cJ3MN2?6m3GHm`LCW&Puaf33aO z8Ah-6o#S$}N{e_HD_Ud#7pZ{{FxX-!Y}aC}`uN+k*niHb&SV|ix%2Vk znPYBL`p1tS`zDVK&>?TAfN%eS%eCPaR6q>!)2wXK`OKnu*z41R3D>8}UXh!

Y>)Y=-5$6i#of)^T2MsYn9dV3< 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%0Au$w~4=}puH@^`Md0`NF0o$m~ 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∨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 vOl`QK5D`%$ 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 -<@)_%1Trj_ZJP%<%)5oaS>TLWr=s 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�-#TLL6L`cnM?H zz58faTfc~p*V4F>O8}b>jGm%S3C@YrkFwDVt!W=9_n_@yS-R)_Xi7%^pT%zjlBCF( z@H;crT}SGr-g-??G!&5pT&hJK{@2xB^Bpg$Ge7O0KdfJcFs?9L({vYZM5QR56bMs& zX0Q>n*DlM`d(yM?y5J8$PH6a-4bhLcQ2WUILPN>Xb0-BVEKhI|k{{I_+d7Z9Ea8_y z-WCsuo4SMzl{OPyiWvEt6wY0JW#nuVU6N!hXAPTmf0_IYo0pl}(5hClRG3IJhQJ>u ze81gwu7Gk`f&7m~+tZ^IYsMxfnqZnMz6$5M`&9Q;{_k_rN5hq(jK>pybhK--8c|=9 zD)}ztKFnc|s17Ys3$;h@DiV2+BJF>`g6Q@?qMsKs*m)D{b{|eL%uL*|SC2fY#D$^Y zRnt>1x54ROX6M)7G#N0I?Y$w#-8i1c-+sv0$?tYA_G!0^JjkQGo2FdFgJ1CTaZB&$ zM$3n!%haT^JcN2B!5nhQT4j!@*4RE9amN@u+0?C37h+g$Q zvJALV;Lm1~CjIbWjeS*5JU?&3w?-rG5UEf+D4?C2*)Dio<^;>g*m#0T_)6q1UeAS- zxPLNpcZj$O%RCXuyt;wB`u4oiz1;G|yl*5_IUb3-;~>8*DG`e-U?TT7^M9+N(#isQ zwH-`_G6#e*t+G*{D^aE08C4u0=oA~RwcmC za>Ecy!?R%8>aL+X;S|sw#@GeF06z1^z7YhYU=m!l$tp|e;#Q)-kpSnLcXG{sx*W)3 zY)4#v4_sW`zQ{3t@$Z;RW7=UWZ4`aLEBL2;&J4)}3my?wSY0g45l`>b;hNdw0yD{bgn0^Xo zfQETM!ak*86L>i%NH!t^X+sd~1G1^M3no6PI`Jgt3@?^W$Mmz0AgP$Ugqr&h>?jpG zM#c^?F?14kl)}Dcu#?^B8uqC>F~5Y}DkLF|EzIBai0_wDboP*&JL-ib^$Im)$6fpO zH^>U6xevUooT?%*qwEKOe_=#FJVK#1Liwprq+9l!e0lk6*sJ~`eOlzT)na1p1sjNZ zr=YiyT--NkoK+~YLQQ?1HDd@TDYLUtZo&=AR(##=4MMrPrBAA!60i^Hn7b4V)2iw& z9rKV{H9@(eGg6g@!rr4`lJ>7?x?l$AmK@=)ywJ_K8yx3MX=Z=`r-Oa8+=La`%wB~YQ`Zp9C?gnEW69#!_5Ln^`_ z97uw@cf;*ypgRd}PqNB}!xKZUN>%?K29h+g{UrQe3~} zbvd-jT{PwRTB(X(LH1F~D`!q~qQhVvCszDrvnu)s1biG7I6;V$8@CWmT+)v0O zv(hbaesO*jL=qk$TdAHwz5F#!;lvnnM>=dl9c9bReBPt%utBwfRMfSUWedPP>CJmj ziRC%$h)4OZ1g?64>vdfs zkFQ4NVMQ&m!*tUbnr=*o+|#Lszo;u2*V^E3YeF`T>&fzMfP~mop{4vC`V5xWPZIYM}Yk)kak}K{F$I9>B#i1V+2vX zH564yuT|(%iC+&h9&Jj(wQyxxer)Ut@a*TgRW(t9{eB7?`vwzLP-R+n;)+QdE}3?x z`)2Yz%+AS1@6a}cF9s=Dm7v>rpEN+;?@r9a4B>C#_g$+f$Y{F3c{&(E0jHhpRhFg5 z<;OiK>{h3x?_2Zj7WV=?G6s(urcDtpdqQ&!O6gT-^W3-|g* za9HkB16l7d*>_bdW`$#P+8!|)GEQ_S=+>J`ZMg;2ck$RxCh7`4 ztd@xk&r%PiTnb}IP5a?x6?$x#%@I`OWsZBUHYkJmduLk|4xK>pK5e9wm@7C3ivaK( zSGY9;2xs2jKc3Bk=g=&A$LB5&+X>Wnp?i-T{_CSpki%fRPBB6TXQRyy7lsg31V=;0>q4iqn zMJ7_>P#l>ORn}4_mjYNpD#qhINQ5Gdyk5tt*oF1Ng>|dbbgehfo@DoBvlAu(fVU43 zlsAr&_5;>*3^UIH#t?wrWIWCscGP?RIeBC><$2a`%wuX*UnX{#dXu>^x|w$;+4|9s zq|t@K$=^2J@Za496X*qXdNm=iSJ^s(#Euyt*^IDbCLLD?z1lHX^T{YTe#`Q~7tmO7 zwpaM#6ta+pFYor3Jx~Z1I2BfM;cX&d34zPrkI0KVj``-(oKj>pm6dRt`0^eY)ICu@ z4+|XiDQN}UM9e?MN7>@VSJPPc$FF92dBBGM%!DP6z^TtQCNYHy)jmm+n|W=Cx|4IA zvv0)af|ai&C{)2oRh@+9H`_>LqNLrF(s>fw=BILDDBmDRrN^(YzV==^$6Z&x9{YBV3X3%AzEEtoVA)OdBp|-7 z8yZ`;J{l~#8zIi;mwcm1URAArUS3P_j-?hER-?~wx%TFADq|4;)=>X#YvkKz{qC9j zZ#yO@BO)H%C15(cuchN>*psogctD8*tQ$h6k&y-6NVY!~xlUO&(+ps%MQIuvOL9ng z#exzq`r+|me|z%O%a1MZHEbhue!f>z00ucK2-y3ci6krX(2g@AkzjIv2 z*5VXCZS4Zk;Ej{X)KJ-B@~K=Hhdm?2J{Poq7E^gf0n{t5em@mu#3+MtF<c&Zmw*bSy?MV*%JaPr zO!7O-gdTQ;@bfXf`$THn8!=27N%Hv&@KF^YcO$d(kb#u-5h-Arm-@}IFdCud9fxPC zy1T`pN*V9IWAQ$CWDUe(>d0oj4>EG_1toNi(y9MMmzN=Ld~Mz+TSRISVdmYE z)XPB-$Bd_(;_xOHo-=Gtxq@Za98Ysl0iO&!`Sg8x+*8iO8ucw!{-ao7HL2QM7nr%s zn389QXEtUE8V_9Ka~ZDxU7?!%!RdLQuG(ET$P#h=?82r>co&J- zDiO#J?h7J=zAmWxkEHK^9>5qd z7D_gqMhk+qvt?cHwd6U=*;R-Orw1s^%2<~ICplykE85kJih=3JCQo-otTLzC9Wy{4 zjbK4pp0Q?&k_^;!kJ{ycwdX31ihjcbm$SKLJZDP2+O}5AkggG{PN#3+0djEN09u>h)O}DCj%SzWo z9_-!A77641{iXZK)lJ7b|9i_aYBF+z@I$BL(%|Zo^jvnwl1o9FYjQ%U2_aHU_Cp<^ zCUSCWj*^>k=E}D+d1oHdwl12uRIy`1NB(+9K^!kI*LD5wPU>zEKINQ!>E34HbyC)>hLQ#s365X!2f@I-TOP!{~teao0)BF zW}EYA8|EzJFrv0O11p#9hEYvcaU!EGI%h$sl*_x(37w~?pj->;vik} zn^ElP{OC#z%{)ny(S)413w|0oOK=OYG#jbEBh0_}U+8trA*d!$3IY$q*`==LlW1w- zvTvlDi{Tx%Tk-AyL)2d5O;DMK_4cv5RR3R**)zT&H^o(tXgB0I=Fl3a44Hyf03`ox zWd!bTSvvDUcq552i9O)5m@Rg=y+4N#S!*`q-|ee|&uO4H_#O1RKO$~_$$n4#&6m;l z;%{F)Ku|bz?P|r9qifer1&8)MP1Ear9QEl!L}|{-e%yzvgrqdI$9%}CpD&^eMrfli zWt@%38q$CAlPZ;Q;cZD}gmuUNlSx=b3f`RzPA4Z^%5 zLmx$X81d}RlVieq#Bod!DTra2Hd9#I>v#ydbZToME3bvF15qobGmnIO1k1J}*u_DSwS1tkV5ngC=L@Y5I?uQ<!ip8779 z|0Pp{d-ajr0CDKvN>stoC3~gUA`9lfrqrX51IDs(V~1)|Bm#RWLSe;D`7S4OH>Tdq zojV}k?wetl9}cg}u~nYsfOqxPOUIkItILz2%S(vJxEmls=65ZjMR@$dUpp;*@?|H| zqUoYEQ<|Dug0HDRe3r(Nb@+Y1OAH6~pi%}n)b@7Ga4+NfXD$ughgfUIS)Ujn`dT-L zFr9ex*vNni28a&TE#9r4#za?hL7F16P^Sqff?rP_Z*Nho)9Hsd zgbygUZ?Lu2ub*50#QR;>iPR%9;>eZnT|1Cs)h{|yoJswu-Z$C1JL=&!pIFMMSEU*K zgMM3W0D`^MfzpcUCQr-ETx+MR?xl`psd~*iV#g&T<)cHb=D-$ryPgN!&{G^ig8hW| z+|~F2`2pg>A>Yj$m!5FwVt4`kNGHfRxLqQ-SF7T!h+BCl0C6x%RGwd~?3&_*uJ~Vk zWi#73rU6|SRz;|=&2j43jXYQmA_%4hIiJjUh*abZx|*6z*&<8lYR9?U5)sp$H9lcu z)K9u2GNN7ySLc5}j5>K!w{ttpMh*(ZJ;&ZZb(f4trY_0K>WX!mRh-*PjE#%h6Eqik zAW%OZn_x34(|P)a{TpD-?M$3xwex_Y>a;`hUkW@*`H*~??Q&SIaemOR2)T|<5PsT- zpl+87ruf^c4Nb5Od+U)o9FV4DR~Px;g4CxoEbO#yj&`XlI@xEJGO+9En~;W%%2xI$ zF#Lw2q(7>vHDW_|vso8g%7G8*;$bc}#vS2BWA6ctTV7%YF$@Vee;}#bOH|+*Uifq2 z(*9F4knFB{XiRaPTBP-Tfpsts=FREHq||UgHubmmfs>0fI`j|4CEwov_NvP}y!x$l zdxLwk7Yni(lCj?J75#2y-m7-Wzs5%eVV&2E>RcKY?&48d@&gLheD-c51~kIxDmu3q zY=NXmtL;JHRlA=4XgPj-P}G#5?+JBWKk+PYV)v!FlogUZle^wyr`4ifOO*_VxXFu# zT@4e{)DM?L2iYpV)z8vRm$i;U%gD7`y)t`kyhj22PWB@$Lp!@*IEZTNb8Z%_(AWh( zu{ABY@!`s}G8}5_kanZ|{(392QGO7jTiRT^bWk{fiMzu$hFI*1)u77H&t1GZXuYEO zJ3^K=!qx>;wXO}r6vur`7L*x`fpZNy~NGVGy+vX$KkIH zYMobz;GTC(40vR@#!u~sxN4WbsKK%|vB~fws}yuunE07FPp>P|Occ@tT-*d8=RQWj zOX*`3(iy%T17@GD26|*y(vMBd%>qe?o z?v0zL<71l>eJ-Tk#*fHcyI?PWy93LQsDIg0ME1(`7QG+exhQvjL4uac!d3L%bGBxh zMr|bLWm;FKZ9~zUj!#_QyFH@)hB0GLHS(8<4j5 z-8`j1GSK;fit7Um4t#izbUAZxEUV;h{l&`U8|&}I{E-M}ny5M#fb&Nhav&?x0$_Fk z5bqDvU9ixM0NJIprow=KSfb{1^vyYWvbG3go3+0av`~B{5q8-_gj8;}K%IfPcA8QRK1mnTFXFLbKOcC>Gc z*k7n*&RpbejPShd9(hN~sz%x`f8xdF+{KMubYE;rs(K)O0(*B=Rv7hmrGw1Fm_{e> zYZ8GDAmb}1sFRlanTSHSd|VG3h3&sOj9DyOptC@@VMHvQlEsnYr$l) z(zEw$6t&+_D{f_FmyK+9GNt3RQIbF(VLSZN2rTwd(L8wtO$mtPgz@hletxxY^ln1e zMQQ0wzihUNq@HOEGs>jMu#>3^=~5r5iV9}y;q*sI^gf_Qy3{k2j9xl$vyo9P;^>kyQpK%yNg@*|)$Hn< z6-btO`hHWAie9DE^jfE3D^O!Y-(nFnlnc~a9T~728;s2D%C7K@8!H-<4KE%W#dOE) z?uWL^en98(ASK|FI>OM%VfFkdtXoV>hEo_@F#SXH?;S16US^gja0z$bG+Wf((M>qG zu1jLor|jNMbVdd-arB4rP5T^Y*{j-ROQx74yFCvsviJ8oPi}~sY)P8Sv!bh^nRDtY z6Bt+hmbNK3%Sx76FUu;uXxc^eM?D0sCzDfSrdO;wvj#MCDVXN$cMjg|3y@Xa?fU4) zv;RO7wPCJ9pi!WKM9B~GsP&C|IoBc`!8hbb$27o)T6G5fn-Tq)k|AQ`Lm**1VRx9Q z{VK~WOn!z7P~I{$rNeE1+TdoZ7~(`z=aNXBdVu!vFWnwcoO9v`BS&O5onS+ zK%}vV#H*$w?iP>B@+UC)@}h6X1lk1$Gz{stspyKv6TrxJQEP1vTS*m*tzPrpz<(P6 z9kzT942ZN=Y=TZ$WIQhj28*XsdGZr`G$lmiA02)o8zG;mwyvZGqIA)zZ>Dmg_L))H znMe4XIGSeNVx~_e+m^~wj0e`f2A=N*C=opsXDMWoy15a{gfqU@Rt{8Xm;?X`t!{Q( zqBof!P@eU2&%p93{{9vAt}LwP5qmOZO}a8wn`2mI{KCUDyic9&a+sr-|M?lvm# z?_lb6vW|T2Y$pTT53ooFfLIQ>72jm8KC~S0yv6t~(f(zM&4XAG$?JJakzr#zd8*M9 zFB`W9L)Ox&cB5eek?9C3Ro$*RC49PXLZX(bnYapern5|pn3_hc-JQ%&osDkg?RJ}P z_gqE)Y(5SB#43FAViyFxJ6p8KY1gu2Re%9T4_}y~YkEu3)L~0h;S>R|#)REt0Xf-P zTYyB(?2Bsvy<*WC$NK@{Gio1ojr>Ky);!}*V_mws8C+vx8{s4^<&oNLq`>^tJCa9z zdF^Llba!T&Q+|wpW^euT$WAZo`(8H9Z9Q+iy5+sq8~0wbz2HN+CN2$rz?yUPn-DO3&H<`NA(jJ}XUF^r^1une;>uNpRT-&|W{c{Cw!RVSCwP!rl^_$V z6LkEH-$wJ|37L17MZLR>@_iySnQjLk(7+xcLv|CT!8t5DdC|=)jLRo>n^Uv(CRl|A zVPW@xX6d31v%$&1h2|$f*?D-k)!?-aP>Q0dRSw(c)2=BomeuR0pK3(s{ytXaXXo{* zs%a}4l5(bBSL-UU-N)T5ku1V00E?`?0cD0yF6j176(8%yj?bw>j4MgyKIFx~Tg#$T zCA-|;rFLb8Ce%F4Ui|#|ZFuHO-LqqQ5Bx4RfQQzi4qgKv#xlwL_rI(58X=Qn> zt;R;>=rLB}+g5{KQHwCpYiN~owu)^!i@2pr-q=S2sZvRMT!|kNPmXH}BG9F=?RC6K zGe}_dEK`^%aXwqEk$&G`f@#`nWR!04ES*KJ3?}*?HiuYdFKQ93x+)+Q;5H*;lBk8~ zIMS9`b`AQ6guQ6F0ir3s?lQbg@V3dzTOEP4yR=RG7gHUdC%O z-lEkQ%L&hdl9k>JT26Z`v;5ZjlW1AB&62^jD9N40)YuDx^%tQRWuqgmd3`Zh*|3RL z?TM&P_Om}DCKin_T52~&0w?~os>&M}(3u7WK(}cYe}-k9{eEw!TUt$Byau$(itV%| ze;Z%;_Yc~gb2#O!`>l^H`{Y6KWpxUwcRj((&-@|-4luu1@zKu2`Qq}N1zoc(qlo|r zlM+`|nNyrSr*6b-R$WvIEmtQ2k%Q|ZavO-MOrTb2)Jh!U>n6OaMUxr8XX>c;#H(Re1`;w5`{!6C`g=nLSB|2=ExuEpJaZM}urE61h| z?@eGkkGvpLKcqgm?50mwBh@K#h4tS__7Rsb4+Mb}UD0RR1g&9D-=OZTy=oUKrIKWr z&Es|d+C)7CsxgT?IiQq8)&6Ia%T z<|k^W=dhJmQhZ`kSXRYMHHg$JpF7`zv-LW2T4mgIb6Vmg^~^Rpx9SrA)JYjryUkdQ z23irjKDaL&(=gfpD>4hVd*AoyT^pu{)9^{hqNv`JXOCSZJPpgFeQEaEqqVYU__>Wo zrDv$r$tE@OH^x^*(Yd6D@!qW6gfJ2&Oj_WRls49C-K$L|vNap@UX!&tL#ysH6-Zs6 z-+8RmxAL~c1dCpvt|M@RKmCPzr~ekyib#HF&4L?(uKKcyvBheS%^plMw~b`-_VM;~ zmcbgUl|Nnj@JOoK(md+IcGbSznB!@px3{B<2~bo+fZ?pKivkBIxBDY zWPtrPfLgP!R2`Xm*)m3SHB%%IpUpC7u*c{u`>-o6v|vlFsQCu#P0~D|B_%pul+1na zHjBR>7~l^1v`=~%up~T3P2a2tR#yQH-+!kSR=|6KQQHC>T&TU8|T z1oq{HV^i0j^Blp4X=1+xjL$US_v$*F6?~UJXl2V@R~mG55#&N@wA#}!AAmUdOf*lC z?LxoO{q4M(y^(%{tv>KgiqM%IdD_`tE<9$Rmnfp+kGFaNb!c-h^+a4^Z{s_wx1x&; z>E)8HA&-9_Hcqv(17=&L-lA5OHi`GE?&WyD63#uVO=Dryj+p5SheK&J@G}3QJ=yRiSNG`0A3D>QCu{Bm9{M1TPzgqv{SkQ4UD1lBi$)DS z*=`pI!PQ91!O>E@Lxp+jH(}GcmfJ-Wop0*<3)SrMO;SJhSa=a!D+nRqFuIu5;Ue;x zMRprX(>Wgr2R06MORG7TiL8a&jbbz*Csswiy*ERuyZ6$P@N5SuoLkx+&plvCCG(@R zBeC6t#p;K{FFLArYdx!F_;9qLC{R60@AwRT4H4}&wy`*TepjNv`p=J#FS}p*7aV?8 zW3~JNq=;F4_Ro=J`1$L(SZ{!{t&CEN@EE0-WBpBBDO7S22xn_7W+}RD@mbQO3GN`F z+$h;etHf!=iE!bEeK20wkO7UTib?h(oF{$D)~t0TzzPLLXQpxp7XpN{(9F(F1vE)} za}YzN)r-mbk|sr^JU>pbj@nrBGUS7`$+mE_ADy5|H*e!i<%Hhw8u^IUq#=cfo`o!> zCohurrvP6hJ(3Bs1K6Wp6&UYV;&n}ioXSu(wck0P$6Q`Zu@4V`*zGtYU%uYT+g^ znmYiu*dR4aJJi%?$omLgTR24<7cF{gJlGkpp0v zl#%)&RH*ipV@KqK^MHKtQm$>EnMSxhu1w^LQ}^-MQYXz^?BcMZPX`a8RY#x7(JTpz z@FNtFzNv>_VmExgwMTZyiBQ(LX|LeAPH3qOawUsO5ohVPa1taOB<<=r%|@a$y9 z%41v9&WsrES40Q#9x00sjAqLFYL^V6ePY71?tYw05|cZ$124!Dlq;QEkl>OU}cq! zN=P0c;`MpK6eBnEoL$Ys;Bok)09(ZlD*ahWn^ZLZjcgqUq@kPxLtO#JcW^TH1REm4 zHu@DR`S(=5b!P4ThkMM{vb#V&lKvt_VJy03uy$2rulqdaa)b7xOM{CNKk-1>QEIk@ zWG>XyNEzXOtXEBgkx$05a4X4sUD8*j;$sGshd3F!M&S@!|9&~3agL*11gdiONs&3@ z!uQdFgyL~G*O`JT^;q_Z ziimKDF^%`X#Xz}eqB#07SyJ&75M{{5Y3lQ!-W;GD$ic|G376#}f;TzeHWp>#rTJ36 zVWUvnZqc(l-8?{8>5q(M|V)gbFdp3-qbLa=-+aAvKnS>r-YS&)Qm!%!*2It2||Z* zx?Zp$P@E;|9=N{g8e?*^jhk0C))}kg7T(=H-J7Y$rLq$Z8PHHMFQlsW_0J0=Xu7Z= zNB>pk{)r6q1ZB{Mht1rx#DlYmgE+7> z;qXI_5?rjpsBvpf>x2I}loz#|P`_JUQgxHF{GU2TJ#U}wbI{}S#T-z)J!jPWkN6)` zQKXR(z9LLS92aaG9D#n=KBKm%k!iiPV0)41`pSxT^P%7fYU}(M&a#V|fCHliYlql= zRTE;y#KZ98H<*!6Ak8|V?&TDA}lO@kp z4=m3bfldEig~~MQsSaW16`uDFnfp2kS75#0>)sq5c1!ST9=)N8-n1EChBg(CmwA{H~r5o88A-eKvoqSiKHDLtaLmG#4m)Xj+f{*^Aqey^MZPk@{fM|Ta3TIZAH-qUL zDmh(QJMYv{pg0^}r9wK8T$xh^f(_E8Dl9TsMoYa#h=9Z)+44f(RH`fOqT zYm%*SP+)PIh4{#aO}#Z&zEreRZ5BN6Ej%;#pJP~++zrfm;DKSSNiMwRJW@zJYWL4D z)MOt_Dv=Lj<@<4cZU?(+vHJbef&KVd>T#h}31P~)QvgjKLJv@(5&*PeAc?&7S%9q_ zR>8?%;r`ICe_RYz)(Mb#FrVyRF74n3ki1%`0%6O>kQMD3fK~tsjhq3`s+umODUa>i zL9v@T+J$(X(qRie76DV6;02F8;^=$TaY=)MRqW*r^98L2YG{x?OHV@fs7`$UlB%m^XQ#&lf9hC z{#qRKrf}O?l1aB$uDJSArSE`>cLg&luzVes6<;;8ZLes=z$ectq>$yB7z1t%Ih($9 z-V80qIIZl!NEaDECu{hGHJ3NohiW)f3?f?an^zk)?_(V^H6&L;^%Gd|sYQcAmh-hG z;?kmF+JG)|$wbM(nEW3p9Vas8aNR310Er)zTyONjIx3Oaj zih7|dQRB)^fzj|ZQRhXx%dIA2pT_4i8jg>dxn=gzeE=bViWM2g88PEbnE2K?+U$%% zaEKCpM7Y|d*5|3#^YR=N`VNFqQtZc4n>ln|g8u=yJVUXU@Fq2iEHgx?1f0i`rCb@n z&*(q}WgA_5ltF`JNf57x{5%^fH_MaPzpU6f*IfcQ_-ER;7O=8KPEL-{h#x;le|OND zKnJgCf8iTm!%EDk>dmM!BU)l}H5@}%%pqz9Oj`qHi}T8&1@fRCzC7vyP+1u`FSyT8 z%O@Xg4}7uyOqe57r-f`ohvlb5&|5s~s*%J8o-zW*;`OI;ojj#<+$){Sxo>>Yk&fDr zJd`I?G+ML&L@_Jx;-_k*IEg% zuuT2qCa2%1BuT+ZQu4mcoUF)M8DY>@+UjnF5`V;Al5LIr!(k$hY#O)LE4D|?@!{hQ z2;Wx2I((EM;#%rzUl%~GhM|~3PWiTqE5oTPGui)|u*fX95ig-#rC^9mlcji>zvk$x zs{O5VGYQQZs4|J?kI3$Ua8%1GH6j)j7ntIYNA!>+#v}wETSF^uO$_x;^?!~6 zAhVz+IJ8O~h3qHF;A)|nr&!5QT-WSSrQo>a&yck^&TQ=$oqM-F6}-Y5?$wo2T#Xdg zYoOYhsvqnB)G=p1ZR{M~?@Mq@X6bd*DM;|NTB7e_Z&k z<-MfU3c=f#RVqqlrE1Fk_~|#T4k+McW(aV&kIX#d(_i$@QBzV=a=A=qjG;mVz}Xkz z^Q52%3>IG(XtF4S;a*~QIE_xN>Y_9L=olidyObJm zRj;p)zKsN4nls<^;6eOEl&D1~6Gyz(qZxNpu-a!sQO8V&l3dj30Momp{KeIo@^{01 z0Hp+#ZN~dM_X*dgUC`MKr6$L*A$`Kq*Ck5CEMpWXRXm9$%>C}sjPjfr z3MQXAf`dS#5GP(JSiimviHJ){vKVF&g`@uo-f_=_EN9;8B!!nt6 z)~(=yCyV|{Ej@0eEwS`*z~`n%3O$$An%?a!zu6A!zhewM7D}!f0c36qfu&AN-+4_1 zL=I*hg)ym#X3jD`b&M1d>wWS7WF zbhW>I(mFnyN+WAmW~wxriZnS&062ISLCJiXEu>@ z7Ls-9ckOKs*U<@4@HQ>b$cz|y^%hLIT;VrEbP3tWRtRFs)yS*r^QANjd7i%Jmt_=E zVr=R-EK6UhjZ-Ti3V%PQ{2rd+mHh@>6CEI1BAGKIc&5_-;_OWuuKDh0sTBG z&l_sh|KyD!chsFs<0)Y1^6BCV|B~M8*ACo~tr6ZCU?|Gz6U3};4XE8w%Vhsu7RR#o z&wh*u80ZYh8*pyFnR-rKr!VEsz0~;U zBXG`pl{yq&^sXu6Vu68(<{ULVM~+mtqJBs?5xdc+j6EQE`j2MxM3TQB9#guHQEe_h!{ zNC%$3^G2?cA$yA_cbXjWA3%-)0Ce$Q`!h8h`%iuKR4XsatMTZ@%yiDWg{M>0spF*` zE`vKb1t&nPM}>4*NhaSx4S~ohDvB ze%CS5r0_~7Nh&es8mq1Q=cPh}k`H_b;E$61#|_%882$Y_8pb=yy{Au%sQW+3*U(Xt z5uQ4jf(jN{=fw7d&B(BHHTiW5rQ-V1kBO%b!QJ$x!;)M=TqWp9ZO6tY?R6q1_&k}& zDX~;1jBN0w%jPn6JhYLlv^H<*gt*cc`S(zq4euCDs~>L)6jHhIGB=OKSS6pj%a!_P zANj3d-|tp*A^>TccH1aLZJRx{c;z8&_AQY}CtUr{5zyy1w~%pSRR5x-lY5_0o{_myzBMwWomeZPaS|%W}jbyCg^j6lPV6 zp6-l7b@(odF_7L!MI!^+$lvpqpPkrQ!nYFCk^MAw9AJdJN7Pyl+4oASkEeF}k)Po7 z+`$_>b?cOYyYrtKG~YGocQonQF&*B0-Jw`c^{8l4|6V{NAC^yT^T^u@%$L0(3X)`J z37}y5PK}i8xW|*TNiJ@(V0B4`ba0M1xw6|CATvKIJL}-6;(j!8PAV=x(-!cf=W=+< zf|ADWnQrNLA=GHflu0WVXRJMZPgW`0c_nqOz{?`&w#_WT`rBoj`K+t+UjJa|UHZYS zHW%jG+d=A)592=mJ%3>&+WHbHoEa_+sFoEd{R7~&DH_WCStgV>UHjgp1C*_S1nQ}q zUV@(Y_Mx3AbE!;xFPJ31u;}29R%V!!|aQSVTuZG5B&Qqo{=fxd67Gwk-PE_nq6zq{gI3*28KT=Oi8^}6g) z?@(@4e#GaBUsv>tyXF7Sp}h5pD0C>RWp4jphw=v8;&?*PUH)pO=ITx4$`ezF zo8XD#@~QpMi-Ct#l8wfU2D%sj=TN@<<1#1>Kwnnzv&tzznVUGR7hC*G?dmj9@B(hd>MgYYN*sHNgACKQ}B zpw0Pi=65uTUG*)S;1);)4TJ@F6570rE1-*_Tw63c@@Lt0pB>$ZYlCz8#!2z0_r|Vz|m3KJNRLlg%6&wIKDESCp>^ z3@-}#^=h=?RocbjE)}2D=~u-*z5XG?N^Zeu`!Yw$+MxMcean+MxC(zEPHS~r8gZFi zvLtL%V`w~fv)a^%>$)9!;q$F4_kGdMz%EIIt#;DAPq&8QAcWCS>!Bp2K#>}-aa%E4 zP5ul1UHJKh#WFUK#)E;bFnMEMckK9w9rBC@u|`CQMfw*w%g7FQ7FG7`2SEGK1W@iH zJMwGk!?G1*+d@AR)Z~wyX8>5wy(Ta`9h`Z#gQdUdzKB7s$4?S9%WisM`WH{ zdm{OBL-~>2u<_)=K&6cFafKt|x+9e}U2BfJX(Kg?*_|M>j&Nbp)Ky&-08KK{%cpT< zt`@$(wQ*w6*||YhYwCl82dy7fl+IGT%grzb>6q^Ch?`&-5YvfEBJmq48M+wA z3;-yQO6Le`2M@z?UF!P=jljU|CU{(osIHPPWS>rhKOq*Q<)?E45D%+Jt<;oDQ}C)9 zFKgK?*LY7Tr z7(@Cm3Y!#N3%eUJHP4++L>9bW+%~^@^?dF34mNI<{>(V|W5lp?#XcSt%$%Z2cpO}7_-t}bH12nS-e0RGZg353}voXY8Ms?@H}rL zBL;+mWunHpnf9FoLMUaNFrt_;y~Zs%a<%*Pf>4| zC)9dJ-6-1gc6!wyELA+rsTg?ZDqS4-RK}}Han#Y!JnLY9dv|Rr>xAj2F0R!V@b8RK7S{F_nVrAN;yWcKs+dDIFn`H+!>FQ#^;Pym%U7q0)(bq(w~9)Q@+- z6k}~4{Q5g@7E?kTvYbjJGStsG{F2Hff$*{=!+R2*5KHc`3$LZ-R2q#TLv9_6n;!^m z$!L*`<}*_EUE#06(Jq>bo#15Yc3#v>}f1jgdD$pr&b4GM0bWR6< zrdkxw^LkX%el+6lFUW|RRS|yGHyhW!c1pAwEFVwFwfyWAmyO3%i@YOTi|*T1wg7o; zOhG^9z8I1JfN}}^fb8omRr>tAk+6ArpXQ9mMehdt5hqDk0wBjR?8{49Z~mz#^Pu6) zr_dvY{k5w;liJe-iGMx=QZbIZ4Cce1k?*inez;;T93Ut8P5`TvZ@zN1r!}=J+bZ^w zcIkTaV1At}6}$?KAr;(GV;*gJRyX1eFm(ugIDM~T0gkL&J9e6U(SE~8@dqe|n&^dcq@HF{mtJ!GbAnvaG#Q4wM zrmocfw_6TkX7`+M>u()ZR;gLKt8z)0sP+Ar5HVft@OOTd%d$;a(xbIDEfM^}rDtB2 z7Wrh!U>fsc$8Iq#TD=75_TM*~hI`J~)jUTg65mCwZyejI-C%zGd*J1o13@ri<1;vk zYiNp6kB@M!?`6Y$!+@w_x|r!|zhcA#lzB(sXej-y+&@mHuJHLkzSW94gWHu5#%>rdp4zy)@4PQ&?GsH*qf zdWpj^{b{pywfH5SugezyZSQ|nbRS)}gM2sq_xGeg@bJkc0lR45UzWtCliY*K&mtLw zeD$-201SZv2QG|0SeI^Kqmv(@OzX`lWXypuG4K=cX)fX}_s%Tc#oLzXJz$0hNDKH< zV;oomUA#0*;+sf#->1icAi@!kGLy@~+|ZBJW>`-`60pVnY#8k1Ggz__On*(h5epMs zX^?Mds1t!HQ`{7DVUjH=rx$s?xgM|vXg;=6a`iiig`)X8J#f9MncxO)}DiH|eysWM*0xI?$#kXKKkRfTT~ zH^6Jlu#W^-&8{!S*J1jx5>~)Z?VN`kDp%0ay%Z*Smn89P5dMV^ZT~!X>(IlY>km2Vt5M&)L7K0V@=Yr2--yNZYfxPsDM&}0^ySFyrhV@eEBH|~7 zF>%gYVysZ_lkSgI^YAR>ax~||-dO=*UpddtE^^u%aS6q;x3REm1Dy?g*y1vx;aWoA z2<)0|QV$owo_w}Kmk_jvStEuJHGJ*wZO}@tTQ&V(N0M&a4c#K3(k4LdU%2p|TJ463 z-oWHn{OC}3;u#xsmqkf!&q-;!SHsH>fC}vjEJQ?O7fQ{ zQa>Ec*FmfDUV#>*^9SP184%DDEV>j?jXh$=!?-SBjCSuf`;N&UM(YEl%IM-k+wc~@ z+u9{%o`Xc;JpUk3vJ4w87qN*u?b z-y5sEc`nfFGSQO|v03Xjc+)NUu2gOH*gl@;F7lTEUk*xB*lxdTGjO16OcMqVPL z;XHiIO@iL3PF=M$bJkcL-@`j^J=){?d0h2N_`WXT*TA{GNH%zNK=11fy-BoMalhKi zbG4}+_j?E2c_{Z6KMa2|l)`ul4s=xUBZ&vL(uh*Gx<^zH?s}hyBkEWgz6XL7pdhP- zZqsy>Za0Qx=52pd#2tXaGvFruU~jq@BuD&Y7_40cc9ISr$4XCSfh$GMdGm#lO%PQ? z%#|edg~J%)!y!22k3$F)-14$vm`L%cB-e|axv`#*H!lVR3u<#Ip}$i?m(BM6G!6ZV3;j$!C~Bs&@k4FGl={Nk z2I}ka8KC-@zXvQKM!|wmx!@aZ5Nky2oI2ty_CPFuPXNbqi32%8hxjjfk#CAP<8+)E z7-usS7waC!2l>(|P$%)z954X`fdJ}e2f@8zh|@CuZd{PSnJe{;j?lM96w0vIu|XHS zi_g-UR?iSgnLZzO^$@XAazJY^uCn!tDhkY z<_Sk1tFBfgY~M`y^h<5x*g-Mb#P7agUw;|`(hlz2qJ91q_PfmOD^GP5u;ecz?oR?) zaY3zI$S>!JsxZl=Y)QivIGY02Op%+WWY75hco&fu0wEofSH4e(6V#r@^PdZwtZxB(bujYfUTQU)HAsHI$MeDI*qn#)R=5Tl2Mh7z+}!o(aiwe+J9pbSKfd6@EA&a%F`Koi2`5dX_< zXyupoT}xOcY27BhTYdC~{q0#H{vFV9T+r-(l3p-+r^aunU^3v`W?J#&cF|;tj;vpi zSbCjUWdiyF4f^Vwo=BD#R*cXCvLcDCV-X|V_j^4wNQs(9I1tE^&Xb~a&cZKlVZ88|9vBA+k`ONt@=yO@c)(tntYNYSe6YXs$z5n>uzNo5w zw^g((6ZUiZ?3!iAX9b(ptxhYx=n@@;!Xf7P9+(CA4Aya01kx_@ zcAhRl=R#JnXjDDQYC*`mHrSS9NIhs_+BJp_O81Fj%z~(4V$7G|lL}$pobF|gpVkC; zm3wM){ax$xts5^pt@~ls6}aGwp-ihU4OOiN*IHv=$7CfPU@{Rm%8Ag+;C8Ftj3CNC zz?FiabD!>9`Pw70XxZ`KY^}ts+GE8#%M9>ix|n2gnk@&o!o4C(mcBNIf`vPv!zJU= z1(La*l>N7%^CajH7v(-%rto(tt`Qv=2Fkt-`tjP&1)Jp~A|`Co7zEurN=F3pK}KK2 zJLo|V&Eh}M5wiWa8Q&R(v4p&0oGfslOCc`f+q;VLNx{_&bKQQb?m#j6=I^65S*IQa zD3cerd&7encmAlB;lq|+-Kjs7_|>=e69dBKf-{f%xP^(vk)Du7J!TroN@Tb{SGT;&VzIL))km7Nf9iPk zVp~O98dM!8{gqmcYu@SSR7=J6W8AbKRkZDXa!7T)lxkfNbozf*=B+~-e+h-_EL=0IYcCt9= z(ji2jhong}qK?!b|4n^0EN|CoT!)X`&C1CQ{<9FL35z2z%e8$eXzlciH+OPr-hGqX z_un-yK7z{?N~ceWn^QNpdnLB?ENy82)vM@oROZ7~9XOIpBAHI4tT%r=tuh85$wh`I{*9o7?>yQTc*=8+`VX0i^ z>mI{*GH>3!IQ!Y)O`T;e{ddZ+gau9dc#_S|mxaAapHf06pQ}31!QXOs9p$E+sswqD z13O6j%n9&@Jf!kNS`7(Wci+#Al$FF0OQ9pVBj%w3b4LT9rP|6ahFHP_v4{&}2B#{d zO2tmn5hwYeBP2u}{exvctd0X)&E>9;B+MJO+C?>G;w#dv!g}4?vP$8Ijvi3Q`aiw~ z&G56({Ip`;x`JI_Vt?*B`1xnuUcha)=cS=G_uZa*3EZI-Uw@k#eDcy8-DmT=djYq- zN6kMifb-1@3-aeUYG(X3%pk?xI@fs-B$Ps+XkFi?PF$9Bv&#j2PfDaVQq!Y?kaIVC zGonS7aA37FynzivYy0+ePEzb849pKSwem*TIhHA_{tNhMNhOQ8p_KY>>O#fRsfAj9 zpjkL)^}7~V^-cX_k*ZCZ_ku}up|54~Yq(6pR%mXj-2jr`aK|Sb?f1&hMg|oH;V7p1kbNW75(xn0#_2uV*Z6CQ9ux;wsRTP zR9tG#aQb;RfYO)=$EaInYlky4wlq>VdYyW-OM-5*&7n-p$MafL&feHR?3|%ols>G6 zxKJamQcR;96RO*`aQ&Xn5g4JD_d-5mHhjOIO;Wv`x080gnCkvBm1Qz^nm8G_jr@Y0 zOh8FgxL-tYlz2e&P2P~A`7KZG$+KfTHafWMu$;7H zPmrNnl@t9cC%IqvP<{6>=lIwapy*5hc`iyEl0TI!PFNbHG-+d6fyrWzQz)?D!I#i8moRYgI<0yU z<}vM7I%QgiPaAf!ubB`4ydop?j!>>-Rmu#@dvAxaQSKyw*n!ls`o!gmgM}wnsuSx1_Cd}e z{!|B@4W(6LSPI7d3WrbMLVfAyzE^O;EvbZL?uD2|f14CFp;j`zR>A?;>W6 zSJEc5nk90@e@Y#|^e~+adcy1+IN7=|WeuUrydUrMe+awpsHFceZukgamJ|0*+*@(a z3~+BWw`OSWi7U;l0CA_{)@Zi>+^n{8*=s};c|s(B%fh5S3u8E;lWYGhf)qC+%wSwq!bC-QR~5O z&Cm9{6|&=^)l499eK{yP%u|uKq7W}eM#bRH%Kn#&zPp%g5=0d_J-ufht+|LytAKpq zHs-{-NO?NemDWBGTPav~x^Z_{J=W23cAiwwW>p|GwIS$?8uWOs{OBQpPOa)>0~N)y z&IxRWUkw@1?8k|bSYSC73VcQT(L*KGJJ2QuSBo04?}x)G<(AD|e~R)35Frv$O~@lz zw&=GgU3(@EDWu}vT-FLiYnsMqQ#mZV#Hz6h3Dfjq^LbbH<>>{49m=H7WTWR04#rB< zJgyZA;LQ1L=%{4QxZETQsuweO2$X}rsPS?rU_7<~*+g+pFRLwVY>O`4yTN_KZSScDp0_^h0!vQ%$j^*$;!g~Kb$D=vR~c955l z1s3Zf!h=7iw_AVd^wg|+%venY>~y>IODw^Zm>-^s>mJbayw8u`InwowT;ThjG7;^O zb}1xp^-CcElDkmE`)8f?OAA_a_A;nM6ErW7MS_Tv+W`eO*}S3;RELBMGku?oH_JYu6+M=9`0$fU?%JFGXJ`>-3w1XU+nn6 z0HFYUErCCtqv2%hg5bSUfGTC!sp?RIU38S1j}V5X{CqB3#87xAQdd07OBR;3Zr0-E zmrtL?ALn;{q_TqzG%u9zp@QUvHJr`#=urr+64-vE@E49U8p|W%a z)VV`nh>+2DXUPaUuux^yls|HylLk%93k|-M`QqNthKDI>NN%KyDiiY%h7I5mkl85I z&j}Mgo}MdHT?r#b7Ds+=&Xq&VI3q4M@%d(fk*DmMEYpwb?Az~}pcx~9IAbI$ z&yRY^RaA#Gpuhpa&8I0s5jP>8+{=6I4Q19BB;^-aBa(4UJJD_iT=d1D5CLq0Si-*MK)vjj?o-AbBowA22_~h|+CCtmm+^M;L3ra%0@|BB;4|X9?g{ee{RQ9F( zcvs_x13@X`*$k>i$?=6{Ju^b1)v9i?g(0KLmb z-g>dtdmaBi>6p9!*(b#c5-Hv;ZcD)S#4%u%j|VB}iQuEGw2$=uk~T z>_rsjD$FtR_2zJVBOmZrDEF>}-{P??pMCeVleF9Z9```!mH6x@26SQ)7eYnYp$7!H zZ+MVz{;lb55CN^ycjE8oJL7R7?OGQp!1h(ANa6bp%FI7<1!4x{4l8Nvpla?-uviiYW_M5ql~?8Ze!ZxnRK z>_iYs+2;cx@<@&oMLZ64l-LdnaDqi*PDZdKQW<7xSi6c!@YjO;*pB=??bbu%JW;dP zlOm5MXJwxHXKJ|fFbX`BeCcWCZ;33KX>x9K7CD+s?#SXT8>>~Ha-oi@3=f#PiawVq;zxjl5EJw0@;U@aDg!W`hTuW4S|Xy5 zfVA3%eQeTps5`OWF(k)}izLGRu;K?;I^MmCW^G>c1>)T+qMftQdH*1nRlpvE$72Al zh#1K(eLDuYF<}V|vtxwVVv*GNjz&%f(Nb%dU6_yCup57P#134<7OZN##nqozB-l(#Zn-QED>`O zBtAkQk@~}?I6D@CI2~$AhJ~Zbi0n9#6eMvQ#tjh-PYdjffO-k?J zh&2o1)dVp?iMyCW&FrD>WYPQLrCoMGFaYmBmN#aUx)EVfoYHh9uS5(SM-&n5)cDd- z8~>=*sX2-x6?!~8Gd92A)Wgj5&Zv{-vy>ELjqrH;aeTPd~r_vbb@b zj1*%|#Y%O$2~pD=3vq3V;5M#M$3*sHV2Tbw`nl@X(~tu!h>#;yY5tfQ1CrJPC_V(A zCL#-nX~qm#6c%=K3vT)d7P`mC88UJ1{0U$QXGQ|W(r|DBw!xGDa*Bdd%V#!7R^?VvxMMZ#9FW|`ixOxGuWLV5J5Y5f_MFYlkSS-0Q zhS?xp4B1bHg>HrIXQY@j&pTOEp3l_WdJeWG9QGu_?Wa9YlaK{0*!oqN8~14}iDWEp zr4t%%ba2`q9)daB7I^rVD%80Gumt&k`h7Mh%*%&;&c6xTF)Qg8te?QW3|LF zVZK<%9+q$(bsZ+13Gr4G-$1sfXtkfBByZMdZaunC_B}Hvp!}FcJ>-!!kVWQ~Dg?C1 zGDLd*v3huYy}CD4HX9a8Oblf~16Jwh_>IJp{4mp~?7E&^B?)2U z_F03V{v^0B8g|nW=>~$AOe0E3jnPfw?w~Z-9?mT02-Jb3WIJPu!-c3QL2-^y6>yuE z_H|dSI|Ousj~DQ|tHFZ+y6+3(W*N>p1O0zuk<^RfAE1Zni7Lf+-3dTa$-VXXq&QgS z@$Z?N`4>{>dj56P!Rv2AAK#S5c4TXJfV1gP1~-tHN7)$~wJ4fGM-*`P4}YLlHRwMP zxu#OOi%x^}<3KbM7R<16$yHBQ4cm_yz%d}Q{a(Ht-C9Co0ts16mybi6ZnViihv2b9 zVCRV3;2((V`o&<(iHDb}+bt?Iw8S6wxBj{wAn{7shY)dye%*rz45g{Bzk*hL${-O( z{U%_C39v(qdxt)cy62zz_cChl_sw!;!v4V)@Q*J0NlwUp3FP< zw}U~5HOc&jLU|6vgaA#V_a7m%aH|=iO{0;Z7%w?pb2Q*c0$$HC98rKL7P!LZb!QP?(q-5Q~BJYTVdQrX|J2aComLxkwiLfBu}=2*^swG9RAk?kEZXM|A;rZsgF;a_!8F!*z{y zEaX`dG8(%Fv1NJ+{Oxy)RchGf?M3nRU;!f(PO zB*{F-CU{b;rT%o^*T%xpt+1jN7?tdu!iI*fvXPr!AXT zT$iuz#C#6{Mq)b`5Rj)?u-PV9I4NB+?v=PDTw@hZMZu{IGkqr@jvx`TaYcErNPRjR zVn&ElJ_a!s5a-B<>%_lKrgT% zzjw86V?FNXdb8fAtD&x!CqG`GOTj@?7l|MJCO=Ybq`OThZ#!CQ>im~?f?pRWmzO-gt|Wc^Q1*5G%GXbmU%!0) z`c3c~SD^gi@$FaAx2>{ozps4zGx_cB*Khv>IXwCth$jb{%z>BhagaS6zA28tH;$0d zhOqvIsON@w@`hyjhIG${?9_(*w+#iM?~3~0l|8?!CVy8i|E}5dU3==g?zivyLO%@j ze;9fGFiHMlR{q1H=ZDqQkNw|%91!}6)BkDf`O`l6r(^j~=boRgQ$O9m{qz+2<)#1Y zpyw~&>N6J1=>=pnSWiXS-x-yY$<3xzO(l{ohrdziX0z z*OmWn==t3^_50kn-xq{-n)G*CJa^iXciPK$I(v35P3>I%w$mf@r*}{P&sEPq*OUL; zEdO(>=g;k_KX=fXQBTMZjF23M_cvqr#MJJ0Ebo-U-<+vk zIS}8AQ-8A$2uY&(Bw2soly7}UK^D+^)1G@-Q#@BWf8XEVOV{V42(EGz{-sXsa_17Z z4sT6d*xMCCK>VDQDHTcEnz-zJ3uSC9n@qctE^`jQ%Hja!{sCr%ung1R+(O{Ci zx-kDEdb-KJTy4bccw)!ZzZz_^Muqx7q(ND zAJynbzg_s9wl>q|+0Jz+Gd|D%Zw}?#-D5x3pZ7$+d;9nJ_QuLo`{8$cCw71T`u5@7 zyZ^6435fcTa4^|)4i2GQO~UhPU*q8Ujb=%<|I49Fu@iAM-mnup=#yeE5uCnZFLk6k z#X%Qoo4OaG5UdHd&gSIqGLbST}7 zpZTP@oBsbelv6jnDQGZKMFR~+_~D$U5iq=u7dF!e4R+DYnB~b;vmc`zR2ofr>f)Ug@@@)fo!-E(HJ!9?Ko+1c}kzxnkVi`|;fHS^~pk$LaG7RPdeGza3xDJB4 z4F0M<=+o|Jj$8JL^z?ic8KP;pc&#w; zD;Be;I~tf6c=zVv%tI5`L8M_{5SaE@!0ctnr~T%O$&f1sAuv=v>qWLvek}$34Ru4D zSQJLP@rHKp`P?Gq3e+M((lhoZ2rjYRPp&$26m+m5Ir7+px+3?{h%+XB3~t!Ww)D$$ zVRrUBWhYkr8K>)_h;cB&qU5XAU^jaT)Wa84bL`LM%uiP&xBs&#{S0dQp4hCcQ-&gM zCqUnxG!40aa3P52-X{r(dB*WCufN^in0!5Q_qPM1`aX}D<;tjR&lX3d?yFU5w!qf) z=n1~b`cx5Nsk0jsCi>W)M;mK))28j^ayZq0BoLdqJ4f$i2pz6FaddR>`TotvgQJH= zyf#fvzN4Hj@85o3b--q65oetj_7UD3`ufwKCpPH+!4d-hH%mz7vV>%w0iR!&9TNry^{Q6RookTOB)OnSIFe zRET9^ka=lv&VLrC|3C$O3`u_6 zGUCF6DZX5L(3IrM^#(BsUfj}8Am}F&^y57B;yv}bx?sE~CYE3rLokXa7)KF|BMGJv zp4>8t@Gyw-(2a4|j`7gpRZrvnqLb!fr~lUf?mB23wpTr5ry63b7Hq2? zY^xT8R|~+Z2HB_u;go~$N`ZJ~Eq%MbN?PeiSn5bxXiJ)DNtkMi8>omX z$?!=C!v*+Ya5xm;5`c}U5*s480;X&Pd6^bhLmMjB(%Elu-q zHr!-}3wYah9R4cae!$LU$liO>&gTW*XTi>Y%_(@pHT0)z=r4ETrbpN&;mD>})aJq1 zO}~WA04`2Q+6+nC3eDUmW^Etl)_*s)h*_IqN56+>e2BIsPg7X|7VqMXVU-k36Iz8y&o&2MZry$ThxK-MWa;n2mA~U_e<#2E zo%#0n#m1k7jqQaWJFkE3zTWx|Cw%vNZ*gaD`On|?yL;UF-&jI5ppE%|UeUxqAJnn)?}Z&HtArJVWSe_c&{<7}TpY z)p_uu<%#bqD4mx#N$2kG{Ps zoE7&>?E&&|*xQL)S3ite+m@`}THh$9mLtzQxF1Eo14sObC{9G`&RN@>9NFHmV|W&~ z*gtk_OF(x|ja6wMzUSLu7<9GSwNCGoua;2Gb!KYDAwz9H9p+w@_-t`atj`snBK1pg z^IAg3bcFr6=go7Li~e1mDty9ayO+Ft5durR zy4RUXq5B?l4+3iCv?&RgzGSBIYCT53ch&2i+Zxf_yEKM>+~Z&<-6dE3n^M^t zI-W6J1@csM<(N{*PcO2FmtB)xp8U}mYT>QF*}K(7E~4 zQvUJ)D9z1i4D{@=-qo?C@#>T4zA?oT>r})Z+J#*w%dcLK?nfFSD0#y8<<(r2LqZd# z4sz=FO$D#nrVWYElgA4OdOvR`;Ww@rCJ$t;1-GAeqaJ%$(pGYdxi5QK5iaGo>_-!G zNNR#gIEUaOM^eOYK}B7B+rOmg#|Og_!zs6_C#Em$uDW$SBPumc_vvG@)Bu#79&qVj0JZtZ2EeQ2-P2%b{MX-H z^Q5bA;TS|Fhmflv7RLMM8rbF*BTt1k(K{MnD{+xTQ;Mmn7m|Pfb)+A^gj8$-k5WbY zp3l4(@GE~;xc9~EPLn{5_mPT!k1r=>S_!<-QkGziYU_}1Uw@-FY|)#Qms)o_#NT}D z)^uKyc~Shrzg{YeKYK()N%5r#CrseQD=q)S8V{IDC4xc+bLD2~es=srC|VYvDreBD zwa6o!W=N1nSMd7h{6J^bybP?4P%&$z2>u2G@>-8+3+Wm#3$l)kN+V5K4hLuL4#w(6 z(I!{bV5Pqr<^ALHMBuYd0fl&!!}5di0SvOIwD+{vYH9N6_p&yTS|(Qp`BUcJKg0_5 z(F@#`m1KX9IXM`@fJKCJ$da(j$6-Ydvp@d^6XC|B@;?fKTQVfGzFO1H$QU5qh?1yG zQv054wshX^c9U=oxh9nlYey~oA$}zQs^z9wczlIVD9y<>G6Rw;GlGWcYw++A84%?J zuRi$)9KI0Z z5RCa*8UzY;5n+>s<0Y`|i@BGj?Z?~&OfTmaXIhs0S&kO7yG(l?9>(i$K9sc=w(zmC z(b}MVAzwvPs`RJs@IK=(@&p`Td{Dq@u5;{`*3o-uJ_%HLr5J6MeZoj*>md}m@ce-8 z#XRGzN9(WN-l!YpP2yf%7pV$3s3f9z(Zmkt>}5`90H+lDj2xe|^|`XP>2~;vU&-|C zjYc8NX|UJ`nH@Z>B&ideDRPGavL}TJYrXC5hud5T)PcxM7l%s6h9OgDy9A2~w5s5} z@9BZ9E~0@>U+&5&@{uoy!syW_Q+Qx3aR$x3aDMLE%Qn6|qSToCF#M!A^y*DmnOu z8#*kd4`vdx2x>8vh+I0Nl!G|U%rMSEoMdMhgsXg71!#0+WIHczi1!km_NqXF#x{82 zo$_}R%#KbGuLCT}F`4S*u-0T2?Z0sB>YK^CrkTz}XwbE+=;x>YR9ow9p287QfHB{i z0&;plfx`^>%uRvaDw{n>8Z3+gcu}ZX*_{R1m)a?NjxA|cTiK^@#~bL#+Ue-vOvDK$ z0qjdW{FE9$eJZpMLni5*W+6&J$VwElY#LEa(lPEwWMB}xeK2==VEiWj!Km+6^aVf+vto6WIM&5j6vOXK;7Le<8WC*^YUn~^3AOB?HJyAqL4CIMFUXp*FBO4mb%zwV7%9mjvH4NA@ z!(2GwdJ%xLMVZI%Y6BjV5@P|Kwt`tE|7SAlFS90Oz9#f{4Nc||6^w@C3!<%XZmfI#3j-QWGX@*jnh;elU zlnli)xJ~uU>cGt1Rq%{ASRa$3^3(nRJ*LDj_KikX$~NAC4TaUhVmSJ5R#m%v4eSGz z+UM} zkLGzFbOzsD0m}B+h&g+`rw8>?=;3F4^&AZAG%u>=6Ejd2>2~Ve3F?ZrjvT2+h%zEI zKhWKkt)IjK(8?#$2%v$h;YBYLC7&v4fU02GjDn*vW^@SBKU1Hm+oD+jsRu?|sSaR9 zXfq~_oiX8UfYyqe2gm-4J~MEvS>u)PTEA28$gw9F{!s$I{(C-SUM_OPKM4}>eDA1Y zj~!(5)!1p|8Xl-qX}vk^az%`Pc$$BbfaSFCox~fT@HR63$Y=1(Xoe&(&k$JP2(THv z<=p-@UGKRuM!OX~DFPk(j%k?FFW3(4BVfQjE z_P_>sBSJtX!OE);Ea}ZCt_Aab0PmWfvLQio3lvPyc_x^XHD+00E_#Me^k`0+QO3x} zDcg&jhzlYW{5XZ@;Qi>$eU_KRC}o2dH98;pA7WfCj%eKBT)NBVV-fi+#(fAzt_KGA z@B`fwE*kwHoXbc4Cj|ccEWXVq z8aJY@X9S;d^nQkMy)DC!i@bbdNc}dOZ;;-i`_cyheDJCoPsY1%GWhP2T82R_IH-ou zPrgy&H6IJ7Vw%9>D}m*Ka|ug1X(n;^{nZdhR0Fty-&jN`3$f9fL&LZ?1>8L9df}S| zBEea8GS%^(SzG|w3Y8n`%uUH=gRAoU(La(?3OYq!24vPjs@r98oKpgA9yl~mc_~uU zJZNZ3pD)c>=hqMR8r^5gKpN`2&q(o zh$8a29v&I-6{^P`Qri+ic&F#kh#A$K_6m~iD%C>!8la(;XwV8f6cJOPrew)xB!4h7 zBY@1Nlg&^p3p(WX27dHNUUEHzJLz7gW?ffk0cESc1S~?r;YTs>-G|W6b>>0W&AX2e z88r&@X~#1kx8$j~43*r@0bdTh)Y7Mob^pkZk>S5f=X;>tdW)`Yz{`J!$mjU+(iNZK zX$=3^^vM2}mI*R%*>pnwwA!|aHA-3el?cXfNcBBl?M$wI?1RBe&)`|puItiBE(%)D zXkS;eHhfBKzgS&rds3nHbd_ZO3ueX`Qx4Dp;b$1$227cw z>fsQzUL*K;dZUzSN>JX=nX}DW6RD1`ea<|*es$LLE?fN+-gw~B$oU2GG@E~v%{Raq zcHqV7r`A@eeZj+X;xI;EJc!i2U`6#9D(uf-2%w_HdqG;b|`eE2ItoIpi}e2Wxg9$95rRWWbgH8FRv0 zg5o}Bc1l_)`LQGACI+=y4GaLanA?e|bXW-4TzT2L^!g*zxkhTMQ=ipsi)@o%tC`DZ zyD##$K{3}@A^dKZ*vr=Zb_v(}$$Nb6@drI+yA6-D-4=PAE21%K^{k_te>mYvJ*PZ( zI@fa<=1P}!ot{VmStN08_7r;_#K2ME+s2&8gM`s+hn-%)tQy=u{=&ZEV|}<1P9h z4VgK7{Ty{D{b|>^r(>?q96!65#JP;`40|3oYR48Q$RTstIhjOw5Z!!22|8v=7ZE4h z69FO`&P+?p=IE~O$*RxsBaVqyn9m`WUtsv3Llp}E`3C{pIN-Qh<}HI`*Q8(kg-w0^ z48gGTCY6;Oh)~HY*}N{<7v8X$6NuGMxLw0U#A8TAA`QX6=Im1ss@wiW}Z&IzZ_=#E0UR z1)u8q$Et7F`*QBs-sbI(Mt2`BK*zl4&_EQ_9UZs-q_u3FES?GYGr8MBodU+o ztv3VIfFnY21dw9d3k!@FPYwi&`ho?88?f_^ z7Ch3gHrGKa^v#_?yZ5cupTA|<(6D7~FsRK% zRiOOZ{OqgYs>yXiaqEjSe2VutV1uPD_w`fFuljOY?=g65NXS}FIa&M(P8Wz{?0sY= z(S7;|%*nfHM0hqCA@nFCn+P}TOKG_XJ<3+wQi_5PyB=7pU55(z5OWH^hWZF zEebFrK;DIBW=a}b62ezK@FvW;MOEP5aG$AAvkUgy;LrXv9|*aH9Xj?c=3Shxr4d-4 zW1_|H`s(r%?jhJAK0eR&oYdQy2i8S}Ho67cngm{Jz3Fx==I>%hoa#dS6FBC|g63d; zXg;{B-~2J@7WZI!lF%*JqvQ*SOILCd)e@en1>*a>(9rgLV9)qiu~8O($!eW1Yd#ck z`}Pw`1{($H;-{fCCampH2vUbEYQk!_w?1*OH!XelgGYlvPJ2Ii^40uMLE>!e0J9e2&fTytG z69xKIt@BCabavl8kgx`wfz7yKH?ySXBBtYiMQUc_z2j*~gGwn)&Jl-FY1vb22yeTH z3OSST*{qFb7)n8;g1qRBEaRC6z%QhB_7i4lH!)z%^OZv zusRCnp_WFMHtHsQTrlVu6-=n7N-x=)9^nE>RGq^nf0h z;zC!@t@HMUhmL88C>>R3nTBkdmW8o3z`1C8DGLt3tGmqMy> zqr$dJ1UypnN}&^6^#)c&7`ub6bh25R!}F=Wtas>DnQ5Guqzu| zJ40Hsz@p~EOY*xL5iqHfV?0R3oc>rWJsq{D1pgC)Rh*LgSc1q$&s|+oR9X00rU`_h zc<-B>Kv9cS_nq)To;l-P+`y~4)Y>~W|l0qc4AERhR0 z7tp1q3Z!^Da7x9kXBMA87WtcJ_D)y+eA2dNtz>g1iyG%s;iz^iqRP`D@QSaMwRk-- z6!yRtwI$LU)flhV`$F)LpxSDv!``);NS}j$e?Nb4#pUz^lbm`Ugnn)PAgyVMU{`6s z%U0skj0vY+EU5-$`FdMo9u=rbji;g<_Ju{zQyb0-l%%(Gw0v~DMpPNmzZN-t@Mi=F#qNi z=1^fnj+4dF`RMk$M_()K+WY!aG%wbN<*(1{-;FqbYZY~DeWfm((U5;8wl(Eq{ld5J zqml1U>8sVRmzEiD_YxL`e0tXiN?i(lpoj`5)Sy>UA?MQ-gz|%0{O8`ffR72fFV<}7 zcKawJ%3?f-wC5D3coJ1~kBKUDBr1uX2yhY30YR+Skq9p%+!DJrcb^*oRYUXe#-S^5 z^Q~3~>!}hUlE9o-Yid^4II@zMr(xZdf2gHMoVD5tmRm%qTmyd`VbifsmXA7eld)_1 zN2>02M|WEKVsc)deh2+#JD_}?!<|B1u~(LT!%d>Sky09CJS^p*^T6QD27e4zS!O!M z!GOF`a-kPtI6$^XFI@!Gj0fQ^V|cj-Vlt}6m*H`i6hb=2R@>>ZK=}w>AdN;h$$E?` z2BB4?gbP!D4WjZ8v}9nB+mu#b6isFs3B8o?ObjMYlSL?o zI+)`H)%NDhB!@VF!8VWZX*4%Z5y|JLQG9JEDo>cXV9?RXY`B-{VN;;8v278?T~&EW%jsp4SzlYdjMFfEF;^g$SD>oLYsx@ zBtQ}PUg#F1B-+rCONb+!A0PBq#%fZ8`iW32gd%M9mS*@ZIZUq7#@AHwdp^lhGyO0#&U&fA*DA(Sa0Ocr=hRE!-@aaEy%H8oL308muo#sqcD3fD6= z)%0-4UF*?X-jqSXED&VkNt1v-V@N2J4VJ#f9dIXTiKLv&G_66mV;o0N=Cb@Cc8Kj{06qPjoU#eYDz^27rJxjXB1$lNRtllT(3D4XiyCYHTqN$9qECKzY1#|<37GaHC6~|zMyN%q?6Gm@ zRP;nU=5;|;W1Y~1tU^WBR~VE@L7ip~lyi@aIL~<xjE%F1%Ox z*Kf>@ISnSgT5im5Km2x`U7b85If%)ZMY_x|EsYUwLk9baY#q^;L zut*gMQ0NB%sv($MOAh#89u}&_RV1$;YqhOmb0g=LOinsYs$Q0Rt*IW4q6N^D)n+1{ z1DdPHN9|P6iU(IfLvS_Lf@4y1#lCu+P+E-Nr_GQH|6Xuk${uskQmZU%1sW{Y0&<>K zecS(rri!R^LRGTzOk25{CKe);n3|^oKF4cah)pFT0GYs!`y2yW|OVhRa9?H&3W= zkv|djMERUp-qrbwf+-ylFQpZ~IvC?Gx^KQy)}SEW+>}JNGHHL-L+KQ*S$T4dQAjC2 zhY{F64Y6Y7%DO_7Kz%1}Q>5k!%Q`6gwtLHaDP3J%GGi1)DQYE2@53uISyFL+n3(1q z)w~|Ug6zjIz)zn^TBYdi#@v-|9hB)lH(+RSKFmTMxNf0jQXgwEXjtQ`ogc-%`_@$_ z8B~yhE=a-HB(2?wHgBoZghj{fwXAJ4gtGaa2{aS3k<=Q`XCof@HL9i)Rh5t{mfmNX z)oMy>eAkhS)c{gjZ1F_fWDARlFtzN0n2343^WQ!*QJHs?}6t5x%q7Uj*L{r5U z1gx153v#)c?Hx(9kzFUxJ_PuyD_CNuM{2AJ+)t6y=s}~k^Ha3s&5>;=s;W88k_oXS zU(u_qpQCU43_;ldKhpZSimCKm*$Ng%>Tgg<|^HpmM3DlkKBy~*(A^1!VJOU zG?d-1?o&>OMN74(EuCJOqoSD<`DscSf@(zP9+k5;VM7jJX|`(+tNvWIv_2)C5zl7Z zl;J)P@NJ#FKc=`fl@$~MM+UgV|EIZ$!OwV9)>w-4n^Cv)RM)_I(>zt=`ck%?G6Sqk zWHn-oIe13FwKd53e`#(S`K%-^L-FB+m2iv6c}At zZOH1)Z=#wqAz5;DYPT=jVrl)xG&|5uQrZEjTmecz>G6q&2YyOWRRG6+Anh?%X{1Ei zf-R+~<)B<+OnviH9*lWz$!T7@z$*J4RoH@&*Mz7PhoZ!=JgP(fE>a{{uecE_w5R7Z zYysM@Yff#LyDGD-cXk%}D~q>jbjfm6>pqO*OIRyT|F#%D%6(yN=$9)`|GRL#8me9iMy zL#vO=K0Awx2@T!pFz7*>eb-Aaj+6u-0Ou^4Z9Qany2+425$1T%8G9mT^`-ZJUeJ`S z%kL{q{jIaO2AM1LRKKm8@W&R5aC0JA4YeL{3CJyO0_%538EB9@auML4JoGWjV>e#( z+P&h>U4|ImqM1j<&d#IS)Q1h=i929@l90jNy~epBC;K~{U5H{#xy0zK8+2SU&&%Vv z%RMSa2I_Gn#HH;T=HAi_|LbOd!tF~2RDNpD-+_+y7E#5PN^{avzVMB1HEzvs5i9g|Ey)ve?<@N|GbxKC2+BFwoSI)H{gt= z!x!+BEd(X6r5xb@&(eO{=iJLye@%{%0SY4aT}T@ZP90%&xge_$bJu)>U6li znAT*1^{_AHKFJ-l9`zVG6gNOMoTh4`Rg zYEcvjxpCM1#40Vdxt9Ypy2=ek1ysOVoS=pMR6{z%h~(}(KUyqIEuSrvF660QD3W6! zKZ!3XZmJC!hJO)1d?YKl|HO=x?jG#c7x|4E4EwYEXQ)Q9j=Efp(h&^azoa|X35u^b z#Kz=4Z-(p-z{<0E_^GM`JXYBLTnp@=hNAqL0B~;@wXm>Fy`nM$NptGZbk`ueNiC=S zS=beoq@wGr*bu9ZO78c$DFI?2#o8}CI_`zcrf`pG<%+f5oc-mb$)@T#EuJ$UZA+c* zad*?J&s`Fr?_*NR>Um_zqGwR_55E?j1i(tGE1~z~m0?kyPeQ-s&8S9&zdO4$U$UfW zh?ldr*jQl(Jcf-1=_F&JcyqwM;JHH19Darb){-=0uZ zGg#G$dO(y5z`p89#389Kw6{mV9OPf3nL|Ze(Jh|ZZlS||>oqpgra>**u+{o~t2g!s zeEsrP`d6qY-*bdfzNg78^^^IJ&NwW}-Xobq@9UNxu;fiFl@aOSl|oVLeIQxKs_Web zEeN?kTHf~!QfrtHBk`l4(d}^p=apnz{|z_O0lJn3R}&Kr06`gFFrqk z)x=lpobtx(H3+W0b6%qCkIE=se`m0&I=Q5wrd~B18pFtc2T_g#;7iH{83>?{LXrPL zeOgaJvngNGRi})py4YOpF-6^a$o{ch>zJ<}?&X?i~IF$%`D``}Fs+%3V3iIU^&{$KO44qeuKo`MMBqj8ZompTX1uM0Gj2ezoPw^js}-o^~4w zI6&pib#CY~Rq<33campgo@(KwpivGujU~lv(|#QXB2COT9vI${tHL?avaHMMtwpvx zKxwmS&^QuM7Y4x$8X{zkT=2`}`zU7WZkf z^*lOR52de)g#3bNa*z|T^$Hkj(?=-`M=KamQ+hlM3ZlhC_Yvg_|4eu~7j}{iXtraf z{j=X=G9ebL)aQl}40&2Mi)SJ%^Jq``Y0I~Nzk*dM&Z#$Z!It;U=wKerhw^m2C}pt1 zz_S|z;H`Qj#UK*R&44V{+W&s*X2J13(7jia?c{coM5*m~dbg?NcJ$f$L1US4p(#qau_-}Cd? z9|YS5;2FyA4)e0n5S4r^D-$a+xF)!12dCEks*)pgfpO!{i!CV`y%jc7CVvdHPd&0f zpbX)kX``G{F9DTHv1h{nACg=8v|Bj@=rgi>I z@A|_rr(+Iiy2*FFgOoUxVxV6hpRH=KiseprMVxV#RxqusyJVu}TBEUBz*hvvqFt?X z0c0D9F7}jpNV{Vxcg*V)wN%Ba%^z8-=~As`?&t5y;8WSIM*6vDAIceqEObq4j22fY znnX9Vj7MAuMHJ@Nl$fklTBGG&AD=o9TXFJo%9UuchGTIh$zfIFT=@!upn33^)EWEsa&eV9D-)n6+A>}luidu0H|eLz>SU8;`lt1urfXAeF2{_Lf0@01((M+q zKmVh-Me>U)sUMy_IC(YYWnb_aXRp1NMbmtmjQ1bKFDnmgO|ze^OV~CeomkV@^@eZj z&wBRT!&DENNh*S>Uv|4l$!>pN@h1m3;#^7Mb_}_-jkr{5?Y_gW(S%F0(av@KEB_uAo7D28EwLC!AF>%%of;&wRtKz*}^`Qte~$lDx8- z5{V#Xjb8fZYl8ijgtHK^=t%8mz-zoCnlpMhT!Acs#0*8iRZ|Rd94~}qr1s+1jDlxt zcb6CsDZD=y7>KjBBZ6;NMEx9=GN=A57(O0y*m|{b|Luc`7k-u&YRwt=l$EG6`FA)vOMZMBIw>WVa_(S_D_s)aJo&(|LT3BgVX$2}0_`2aia9 zh6=wEk1_zpT@je{oC4x#8&4}}5mmHbB-=X$HFBIn5F|}42^(ZP3y6N+H0-qYjeF-F z`^f9Po;a(s!?OK-g+_Vg2I@8k#Z@;S^P3SY##x&s#MvV26$PB_>h(CS3B^fQCt?xl ziabDwPGh~6lL*da3|g^cAV^2kQ@8_l376sOpu8l4J04xbl~_foWx!xYH(N19;|xv6 zGy=Voi>vB$)G-1MdN3umuLg(~fsFV%*NVw>^-x(CKs8px00c!}8STENAs&0HVckZT zzu5=5Bk)2%N!-^4Yfz&)p?%B{_uru@nE7RzR2aZPQ9vpJk;tj$B|^kLO2L-aA|k?= zOJwR!Mi2%X?mU@ai|v|Rm}e+GZYVm?xj1q(VLkG}$}wEeHDit24;81aG~~KT68Z!O zdw6K%b7wrr5-=Q;KTaoJCqcEhA_yhbjp~@zl2gPEdbuPGT4BJ}f70+07LQNfn2duN zm(V!wsIHFk^+-bKjt>{8&NF%p0ISZ0jY4z^6Rc=vlxAV2m-kBta=fwo7)ui*+q+R@ z!fLfouXBkucz@!Rn5qVyGl`#dS^%nrgsnY!*u>5FWfsBBS$Ok}d&WON-W+n#aJA&tKoKS2gVQQ!l zHwEL;l1L4L6OH$9hB@m%91gU_@6kj9iF7Ofw)$I+T1vhM2hV?-9lGnzDV-}IuXP}3 z%=zQG(9slJh(h z;V<#|IYZme`CYyK>{hR_Q}(tV6VIOczh0&zA4U>ZS?5;^@0itp=3U+cMA*B6)B)4Q z=8lW-40Dle8lyqMbp zv&)MI4|av?9TlR35p?1o(rYVb1Wb#~QM@i1Piz%IPix#G!#*S27;S=KB}C-4YKV~v zcdDTpLIzDEJQ$M3^2}3JViUZiWrfrm>bjqWNCZ{ME1(wBtT@S8Ii zbXT`WiU9>m5Mqy61_woNkiuUFM048w;D0qg5_9(!8JDyk*sTkm_BUzQjlTBc*=>s} zZki{P(`}WX>jF;owT4lOpLd6TGkQ1vA>g9iU0EMevRsp>Ko?yY?8gR%$yj<5GTdR# zd)G<2D?V6dSH3fXOZ-GZxH3R99Fk*^LTitcE*J0fc+5XTn%eJla;dX3-Ty>_aHmiHD-l{lT zYd^a{oz;r{FUHY#7q8fceQEZKAD#G~RO0%Bj5CWE?S*_QaR~)2uiR&7VaT(Zp{=O* ztsq&R&5ZsvK8%{{Fu{TWI-VlZ$=BtZw@%-ZY-s9UxKzVsLL$`T zwcRPTPYQPYSq#ip_J95T=>_j?Z|=iBEcGVN9xC{>kn!U~@U6ppPFrVP5(3Af6AHA z>G;y-aL&?9NBkOl#q%MWArUZ2vDF-<34_s_6e=+HV@AK*wpGP6IG0Zvk z)SK|i_4x;>oQp!~&ksn_&-hZwV9Y8L6Fc%n`!qH@>=|_NgwyFwuh(eb5sSWInN8{s zS}8Vqf?$V4wNnR&T#*}W1rqJDfUUeG)b!-`p}FeKV{$A`Z6mEN8AznkJQX|`S|Cjd zeawlj{?k``qbBA!*4tp1^n@1iQtea}pDLE#ki|C$apUZ=Oo`}iFO7dp zE(oYFE{SHjC6sziS9DWEdcBOk$xW!w-t1BgVfgjN9xzh>& zbCh`7@gY{Xt;DI&VZ88-bTwWV<4SYGj*f*YAPMtIk0{SyLQa6VLd7m&r5mR+s12V4 zc{EAbUf=H4qSbJ-%{|M(;7U8@J;~@!`_mZJuTSqiJAN`N7;M3(t1@Z%Z}zDi-5aTL z$K*EqqnD6g?S)Jdsw!|vVMMi2p+zTW(*UHEG;SrgSM{SindrC}*5K$i%>O*?#r9D_ zIeLuBxNwCmFB-0W-@V{cBW(>S7|^preD}?@1&m{%hd2&_FQBuebpdpcvnSL4pN$G#}q-XCqS#5A0U_MCuW?r6lV@{M+>?|`+g zt+$g@YGurX3jwIQ9H&F009;-R-d~8W14wET#PhUUPlb}?L~RoIw-n;0HC&7swgM4~ znGeXNC{M;7yH(!rMMrOgmI&1-If)c6hbB9&qU1@#47n~-M;$U=-&X|I$_6f)Rp8;iq4~Ep^PGq7$MY&7_IG+j+I127Hd%=7>~Xd+uiPQyS?xe z3G1i&^?`G;V?3|F{j)gW6?WHYi)Ol}=Y;VKul!V}+~)fF`SI`;!GT&fE{T(>woO&U zQF}s5X$7jzbJQW{$jD*-;^;4xnY~)?l!)QQ8RJ>2lFtvMX+R@JbM!Dk9O9&kztA}8x8$V4W_WU+T zASr;vng$C?v|-W~RVJE4M01!KXH?Ka>AGg$!E@n?TKk_8=#@0Zx>i|*K=5#JI=)gt zVK!{zZO9*hoLr^;J3Zo{)6xpt{?i-&r|thd#Hmz`U~gZQ7v<6c_Oy2uiq~( zC*-#(`7A!3(ap7=}+%3g_Rj@zorab)lM>6Jg3jdYwIm1mc6j!+%N6;~avJ ziVFp1w)HBrXmZh<>33rIKg(7C*bB`r+T?%>$!^6q~LQ$+(LI{$him*ffj)w{3JTIB(x{S4r_v zhqS2j_0=HfntyVhxpQQ-l5y2kTs!SIP{AEivRMZqJpty^fO2TV0aAj>P0nQ#9#Vq& zcLlCb1e1uvn#4H`3Q(4nfL>wWV5?_}WJ}vGK8?KX@;3(Y`E*N~ZKFQhr53plP%UDfQ4*i^<3;cAD2E=buZ!l3jVeB(F zVROSY_(bNa!YAv70y6l#T~uOcxVSsy^?>T5Z@d0Yx4(OFuY3yi_a(qtbL$`jv0q|G z|8VV|0R>VukyoSe?wAIer#=Z(-vp{pa+Gh70k?>4@^V#|R0rP+xHm7_tsY$m z%jDSIf?_X+Ue+P>>OROx@*)0t5kAw9>ZK`O@j;J5=Lv%~I8L))yZlXp-g6bd5YvLo zjxrP)(cgFrBQ3psYzpJV*aE7JA0BO>kvL@73vTALG;GB)q7=FRyx>OeY~zJg+(akM;4> z_pIB&^~FCHyEB(oFW5aA5VTl^R#`Xh(?9g}V#jc1?pe#wmj_hO(o0=wM;{1+#vk+! z^T@A+asQ3x84I1$g(}q60{6}(9MOTmp6{~@=09r)SSjCjb?I5@Lb9{#Kp!|@HlK&{^b0O{tTE-P92MB!4 zG+E?ZWN3f;nFcK5rB^=SeB%ohb!{Ka+9fD_8nFBg*l&Gs*>GXOFl4vwVEMsD`TWN8 z8=bi$dgHS{`(Fjb)1nVa&#XNT`0hwnp{v#juqvFYRUw1#=*}->_hcm8cywV%2BZhv zz=&yQ!NVl~P))l8Z^1ss5b%2?aPoi+hV758!`*)7V{}h2d%ML^L($;Yby+PSYddg0 z@BU7%R_SN-ggkEhn`g@B{mMpfPQJ8zo4qTJZ@#zuDz(R9Ansbu8S@jr|6G>3HF);N z)K#%SV`rODzIq*04yS1gr2{WNjy2x1wZZ#OkEgmdv5P~e3qw0J(Y1Zwy%i^cikp;uZiR%m;nGK|(RmXonAqo$YI>Em zKBct%ia_G7(g`c_{G`2sv@NykQdC@JlV#}T(0gfP^S>BDxLY9)@0PG<$H$;e@xUPv(a?XiOmUl+Br))2Buf zj?E9HE{$4Cw1oQpJ&VJ^vcdL`*yx@)yMwTLKd;_vDk=3Jpf z%l%T|N-zqYxm+p}_n--sFqmX~1Li^0OZla6{eG8(dYz8=0<2rZx4RzGDwLBDX-N+I z+u3@iv9353lhARtFW3e5(mZ^82;W}TU>waprl=X~F01KyH1wT@a~W}aU?0=>%kpTc z;w~=2jXV0I!7Sm))TNPPzLJsOQ7tzKXuMW$x7M9H`_qT>fB*RWcJ`msN5n@etWGq! zZOcH+-|Na`6WoPu)qdS7X{0*TFjDipdrwz87u6$ez0Ojk1Kypf!p+XLVen48`_;06 z2JLtk(j^{5_i~r7l+m-2f=Zh;U1LK_)JuA)c3+<+PF}Tj5_jJbvVwc4R;opC(?2&_ z>#oJ&U3PviiZnN_j(<=j&n)>^q>^-l22)Hz43{kAX^x8xt@{K2=XK`)Wrx*3W6ZnI&T7y9&(jcx98=o84%Dm+w7?&-7H=!-JEh6(;M?ubMYV$C`Z?pa>nG@# zUqJk69D3sEnf)}&ajlZ3V+7)# zbHg~JK(GZg0>xB1wF=1u$?!>*2nQLs=Jx`101e?=;w{%dWwVX*5l3z+xVKe3h#PAq zUtfNec=&DMvSCfBSH_Y|YF6DD-72d6vbfO)qqQ^e+Qc4cJmY(3tW0+Wew)bl_@n-8 zOs194tcb;{BaxBr3=Kj#l}7>r5j(%PVm_qtv{V*(z!@)NS{XM|eD zb;Yl}U3LZi*;q=g?5SAjwy)2SxAlj=QoC7j z+l5QLbZWVwo!uyD>S~Ev{g`wniKk<{2pKb3tiFG}pyWNHxcK@-14a;C=80d43%l;j z$#&+VkzT3i9zBm^d1tf$zyh^(CL*x`ypp>Ypfdi%;vx^|Es472pP0Zb1hkP7Do=0o zJ}OjVZ4}Q}8>`$AVh)QUepkMeQ=j2<7nFhn9#p@2mCA{U`1UDVs2uK7^LS6v$5@}y zgA3rs?6P-xJvL7h?)>OaR6Nggv6>4yp{=;PYC~g{4B6W-?%Kv`WSp02s#X|4_*OBz zbb{wuzxW+jiO@B|L)K9AWvN8QBh(W&q4WVYsckui!z9cZ3xw44cGyDMJ)N zcI419V>d!H84()gD4#R6%Bn_`Y{x@HU&pG#V)JOAltaoBf6d4u&9V~{0av~p4{RGV zOqtHL|J<27>;CX-*|Ev^{2tlYhcNu+Na;!hPYy7Ra8lt`J=8u)0(b@)K3T+7@*O!o zViBZJf7Ov~MIb8}D>{uoI=rp>nU>w52vj)8tcp3>2Cqr@iPQ*Vmpf)Ak&2v3BM>!@ z=g~|GnD>nj-+o0XjNTooP_~FppDIw>bbW5FB_I8eUZeV+!M1u5K}ydV!PhgPlV18Hn_o*-gpOY`1_GV2p&9?_nyHD$7OBy;Mb>N6Jn zM~oNy#=|)!4VhA}BI>1z%s`UW#{@S=x<~u-kU@ljUtUZ?xOAMO1_JmQO23K6{>M4F zqE(1BT2C{jaFE{YzR64Po`f=^-h3|Bh4dy#7tR5+nO9S@S~f8|fcUWh6)I5bTFA`)$|mH-~3d zFB5t35N#qJNpp0@bNU=EF0-BtLxPh-O2A~D8l8j*H7JbD05!XxN-Lsap#27)F(zlN?>*&@*@}d?ctd#TTbt`3tt%y4 zxTN;g__sHs>eeS1fE`_{=si2Z8_jBYi`XMMmujy+sfsl-GSba`b}al$tIxML+q-Tq z?~2>B*+5YJmWG?g9aTw-#g>Rt2}lYZ*(ZYCjMKnzJAXdY57rjXICDp&LisB@tTr6Y zemSO`KXO)rCp6H+^i$DCNr+g|RoC-gMI?AEwa}AaZ{Y&-*R@C@!Ifa}tOC^GO6(>8 zTj^F(sof7-T8-U-QG35yl#)F~%6iC`IFV2{nUcNacXgFpEDAhxYIo(oTSsHx*B!Xe z!@bPygSQ^|aQ@*3-mofF@CZbcBxDIc*khg6 z0l7+%=Y9`0*L`ZOA7SVE7C=j*cf{^zB$tXjFRDvnL!2dBgnWp%;3^#fV=xQ%tU(zf z$Q%TY0w5(Kup;V^fF!NrgxwNh7@a~jR2y3?eGc^jv&kmSu(KaBeJ2D`U3`@L8d;6o zleHlmVJ!D<1YUIqapqsSii_|?pxRP|e158YoYSwa0}6vFxu5i9RA@LWx5LykcnZ*D zizJ26MhyY55Sr0~i=$Emw^<KVo~0j=4-sNet|-ao1?j%Q zuadA|q~UrI#Nr`LVoLjuay6C&vyr%X0MJmjr%qf1iV9N&?RHP~J^#UR?|}tRic6VS z7XJdeIiX3ZP4o3KKE_zfDNW0RD|ciHan(>E{Su<8N`84!JK~G>B3YrBbwBa*mNQ8P za1K*vj0;~u)^uZ=n6Qa4Y4Mf_w=_I8aTb4@0{I>rrr|Ae1QWXa+;MS)JJSRSqv;Q6 zm?uE6y8f-b|9UHawvCTu3LqHPitBlsG!!o33@lVYis1twGwEpnn2-~4Ta!`le6L({*X8RO@V;^+mqHk=gb4Lnu^=ZT~VU3pW` zB{iYieGs$?Sp^}7TRadG7mZxq32L;%bgll9j8Aqt#&`OSo0w5Y0f?aUV=Ok@5A`N| zoQYdy=6Q57s?b*bQj`4W0+I7g9?_%Ica4d0u4#1tT%7Xp*(%jfXKY{WhNZ$~?~i6% zx^;B*44)&uW-ecSBEI+lWp&7#v?xCYP*%;GCNsw(r~p|eG#QQaaEOy-p}=*II66$c z%F$g!wgJw~aHmQ(FVQy~`&Yxns6NM}>DqfibY2xg${*R~{4mX}m}yDBYtACQu^P81 z;_r;qPt&@4HE9GvqMICqqZQhuP?x1T`8$jFD9K1KD$cjJjPOGQCMRN6b}y4Y2jZR3 zpE5%4$==7v`g#obe7#J^4~D(UWXziT1RkSX3x2C*a+GKUGxDWQ2SyGRIV8ZsfcW}R zoLw^anF!L)PH9?35j6cdT6^9awYC9J5cdTfF#o-V5gJ&D zeW{MhnCQUZI8oAAXDfXf8|DEA5&Vh>)lN-LZ2xy{+9o?$x{i;0CV;D1VE*u3zLo~e zz6mI;qfDknU{a}ZD(#VyAx8%YG zuc$E=&9`B9=+bb_q)=kwBM>=X*8%rua=@D^mOvRGREg`14>?Rl?dtq@{RdKFh^?OJ zzwRs5$FxXeqFiCKgb4g6I^IUEDm=gu7A1{}w+Y%Fn0xHX7=QY;D6Yn zF6}SjTBmuNnDIBTP(G9^dbQ7wF4ZP;?hNFsT#h4|9{}SOh$1A^mz^&2o zcADk?u#PzcU{rR#mmq@Gjr`;!p4@QnULmNoVj8H}@BFWcOjQ5z%C91f#(l%#JL51! zbcSRFfsG(J7X)~FPx67LZwr$~3d;F_6ed4TDl_o&PWN~#(p_%4pe6g_50&&LQq5iW zOXez_z>xuX4u7ZDwKF@F{J+!G{jAkp_a6VSczoZr_Nar$ONZ)xl}>~y)(2lNIewz} zP(yoaliGWsS_|JyJoBbumgEQ!mc8xxSean7w2iRZh5ds&>_s|SAb`}92>ib8R>q8# z8vzZ>m&~1=1(0e|2yi?^&h+~df1Exl-BjRvhdo#=@SbG875iaaAGo`01#$wwF+CRZ zQD|1ZRnDGPy~rzV0kCf}($(I(EXRWq`XagnsD?c#9u@gwcaHt9e&a*-^u6jo>-9ImLF&on?ID^2WV_+F1?o131_Eu{Lw>jW=8o+9-EMzUV^4@W#jYbJq(fryw*H;- zPN=qJi1%g_Vwn%WOXgccALj)~1t}A>G_H+=`zHsI#6-{ZBhfS&D>9KTl&Q*8M3ExEpOK9-B_^>-9L>3j*a^81_ z>77^KQh40LagOVtkfnW=_b56mUrs_8x+@x3V_X8z??!a^4%XO! zCyh&YKQ3w;adeEvxKblrNfF~rMB08S0$IjlQAQU;Z2tS4CcI}#!_AA9TmgsAHA5JD zSU3{u%7%ZZo|EA~+L)MbKKRKzcqSk55DtD!Ba>0z=?Ij1UIz?^SCtuxcVZbE)h0-MxP&)vGE_(08heQf`mMx`Vi@3x5@;Cu@7k~X}*sF4Y z^eDh;fmC8Nf>Od|IU#ob7goP#92zR%Mr0dFnOH!Ymf52EDc+QFo0Z({)Vwo*qWcJv zFCzYazu~Sg+OIWCZhvuT(V#D=8=M-jZc#T_`Xa^u;_yntQDxcmzfIqLUjr7FeO{^m z5~?-xA+h-rmH^4!8dV1<@?kS7duCs;r94T9aVESdA6vxy@qvkdQ7_YS>fMQj=Tf3~ zrW^u>)4N*$?%nl!;4ox95W-|5+Xb-ronlClAfF~$w`If59`F4jYFH8=G~QN(i69Ge z5I+($Bhe^onYkD6FE%X=&_)F+Td-CTT*|n_fHPXs8W}B#A+3m*b0&Atji!+r-t9vL zaICT&q{*(-q+{Z^LCEzyq-p15quKr!H%m>=K0IZ2=+_^lneLpogIQYk(Ue0M|Bv|ZpWhcZe^j|Sk&Vn;QpSV6l4$CD0V z%W>gqeA*p_w*h*EN{7acdFaGntMrpbPe=>W4<8&Xpg~vI1=5cL97nU}d?hgLNE~?@ zCuQzfq?9)4D-f&2`jhc3Gxrz*v^cCRp|dGvB0;jMpF6YLH@Snz?x<{H2DZzM)fGY; z%#Tz5ZfZsZD10(~AAGHCP>9yZ*$^VgNo*k^dSlU<=yKV(SSe+FY!*q=Y8q?wQy{}h z_DtUrok}FqDEe3op@fjtDiH1u2mNk@Yu@ZDP@q+ddf{p8>Xf)ByA^0|dI0&ZB5g9b zpy?5m&U83= zjya5L<7$wK#PTllgY+ zURT`ZHI@GRDaFarIkduIYoaLhzWINcyp3V3&&|BH)xF(3DGh9ZJ%Fx#nJV3DbNp+E z&V_*K-K|e6WvChVv`cff2nZ5es|_)GU;~K2X|0e7WnG#nAmp|U>K!Ciq3zyFmXx)T zTQps!v4p#Da}+2Y&jyEs@O4a_f(*n+!f*i|b7k_XOK6zHH7>DzN?hn-=;;INp*i&y zoO;AbiI7eYIz2j7Xmr^q^MZ1L^gZeo>-C7}fu2(f6z#t4 z(}zQTvghLqOZ_<$7n(plzJ?v@-*Z4Rj*`V_HVNWyI!uB@+_s$}V>Ca2Nl8?$BwB>; z8uCLjnFSE*~}gP-tZhUYkFT@&!p-vBt33Borp;TL|gkqg6(gcT$L zaLhqgQW2vxFQ&D>RH0Y1F6ohg8B4|`^j~!opGNznbUaSIVIfScr#Qtsn+sM@)qREc z+`QZjI*qGJC!;?_mtLObY>){JJ}(fUMR9)(WFADCLcFR@In#|&FweFA7#Bs z+JETf%ZFcb?>1rcN|e>Z)Ur>Eabqp20@V}4(}N~IrdYg;lJ@PRAtOaSnCdPt!#z-K zidD3;Yf-${ImjI1!3d5tWDF#wa_AGLaO>)bC7qoRIkW_i>M%s8of_5N+4r1cM3HC& z0exE)ii$%{ORCI|ZWl-}J;qI`fbqu}MSZWQ6x|y-dVuJ|Vlbm<3Vk5HV49D3Zk1zq3lfiifEKB2KO)}1T3&zYwP)z=X|~_4;sR(a9Hu&V0)`hb{rG-EZ2FQd8idact_}QBRcoYHLof({84edWxaEKol zMTHSt%Uy=R(WFDn4L1X`{fJgDjRf%%Kx0^H5_%R?0I$}m$P*p4e_EI`1!oSy4lrR$ z#o*2{aK|yQ1KT($zVdBJ>x#Y9un-{ZMKZ!FADWZVr=lahh3Ybzu4>Z5{X8sB8cmDa~K z?nxZ0U*Ev|%)w?@9r=}0C5}G<)WhajVRIC*pGjD<2%<$z1bzoXv#Q&DYvf9+)%ZZc zu(o&wq_+V?4_PT*GeV96(GYE=MkCfGU^1Cm0s)Z*U8IBI)i{K2A0&$kub83j!C428 z(p5PQm{wz77x=tuj&*`$z#SO1M-)dgg?qX+kGlD+${^kxtJwJywqqtLh7AK)>V`L( zL?@h@EjenN?CO3bz^Yj&r=KUvOg>Vp+%*V3h+7u`(4!XZvytGEA~+7iG#tX ze<)VxpF90+1G0_Oz&8e)vUey@LHZ<+Ar7J^Qq;g5JXr(M6M@c+Q&p&G74MX~5s6Aj z1MmK7JklT*2PS8>oG}JFQ$aeEMDrYkFBRm0gYN^w=v2s_sRHLdywcZ#KGWuOQqd6D zM*eg36CIDs+u(=#;GV&@0}k-78Hhp(qEzC4n}UaFCi#h)Yh)X9?8OGv}mBTD^Es2>^eKf*+Qw#xvjtDDco~ z$UV3oHroUjaWIW}{QMiJGY(?cw|`Uz25K#53XYaXwmVOp@r3&yCLu~Fh%x<+44i|+ zE9%mzt74`ca-G7|zwkKsaO4Cq>BXt?(az+i&Q8k~R9&Y63nAd z>;@)3`0T+KC%%Xv96q=iW}ry{k8wbTY|t7+`)`r!TRrE9%ZklpC1rOdJ)F|XH`J3) z#nmUwm2|Ev+KMD^z{ivwvJp|{DT3E_B2xRHSrpdU>*+R~s&l^9iMWb%04$sd?b891 z25|u!HrHKY*Iyj%FHi%-!FJs5XOj@cEJV>peCmdVA5Jq^WG+GI*>9JGETAXug8_$P zp1nU+25FhS4lIxE-FK)r+#~)qvUfT0%A4HY*zLWshpv?KN)x~J{?fy80LOn!DDq3a zb@*u-B(Tv`0%<9tstE+VBew=osu*er@2|$)FV!jw8A?SAgCN^jAX^DGgdv%@!2RAs zUiM2!cPtOa{*V(PN79mGaTSS7$O{_eAV|IA(1463?0UEEcor;%0b`08IZO&Xg@~wx zA+kiU9R#Q^PSeRHKM`O;WqR-VaPv_}SWMHPV&CAr{uSm8*RpnM^vNqpJ-5oudgc1A zBzfFUJlP_*20K87r%~;*A$~MbFjEV}*0x%MoGVt2MEq7H!OE1zTdNX>nsq@eB4{TG zQInyxO$q!B3=W)vZ?3@p9fUqegYJD79Du|3J3(Ep>4x`FPRT&(_k)+aRG-8;TzMDL zFU7e~AoOP|=P=+ofRRTt@?*-Hp;NH&|1pc@dV#m>(W7@SpL%@b)_zp)3y=7@L$~&w z1ita;jp(@|#{_zN-d;M{vc~{VXF@Ne8a zD_ctGyVN;Lro8=>{K-s^HWT8T-e!+W$Y&w;;-IH(;S=>x`?cUx1vW)X(I)Sp+Y7;> zRIn*k4?){~PV?j&ypHjYZ8%?D#|@enY2r>fbj)_bcn0RDaH{UTB5i%*VyIn|N7};m z&S&M4j`Nk|#NM^Nw?($Sa#myhDz_DwV*%1+(5re;NTkX{zSW5(}M0abZlT+R#I^@ZA$WbOEHzV8R37 z<5Ucb0)R^tmHLuqw(T@^S-%jgbmi*J`_Dhj-0&Q`nFsVsdOU158K^R;D^jt;QRpPv zx7|aZ=H<{yx}B}Kt_C)xPtAm-ogHG2ZTjc*r8~Hj>}-E;3Ja8vgWKbn?kuP~3F6Cw zmjV*X8So$xEC-N$)p)wk8D~iukOf*tvcS45mE<%Kh0l}Tt=o@mmdnc#k@X~Q-_BMI z+Es{$V0zaE*l89PLxqrZp6Vt)Kk-WMd3o2;^O^Yjqc@L^UY{RbEPrgC{8(r(>6dp~ z7z(nCgSE*qvy4GHRGg_;1R6^{pxiu7r+}s1K;~@KSqlh7^l)+-bX8S=ZUT|71Sf;Q zG>=5z)MWH0g6)eZb?QP2{J=T+^G1EMyr*>XQE<<9 z+TLr4_z2zgh&faK)4Jk356PY?3F?B|7mI@@Ghrz;puf5E4G%=p57n=&pNjG5Z82Po zE5Ef^{^E`8*xCFSR$-HO@__%GnzR#iQ2CNSf^;o!d3Vw?n#7LDf;#gddvS60Q{aPk zV2?iN-o6fV98(+6n#`S*z9*+Gy66-Rwgf;#zVP+B%DVG1w1 z7<`Zb7Mq6Hbjsi@C@SKz*=^M;pbFgU_{?u%0O;Lu#I)M)3VEA8h#w0Y$y_!Po3{mk zbbl%D0Dv*xYlXYiwF7(c3%9Ns;1F&=B1OY1Dfdj+V_7Otmif58@}0uNMN6--?ut^& zFpw#Oaxf#=p9u{S!MJv>H;zC2xdL`)-u#@|?NJ$>Pz~8dnmu-6)@TD{z5&Xqm=%WG z>*+zZrNH<1LD?)sHXmx=2g$_kqg6vw1rU4w(;r}K|BZ@$r4VZ-W&dIDkf*AhNvAu%zCfM>jm#x2jh2!v--4~*S_ z`c6UiN}i~>&{=W1F$o=V=WA9z18XGF%A~F8G+}L;M-A4DAp5H!gWmKd5L? z2#&$=mG1QFDeDbuYX+sibK5c*zg#gpRwFWDZ?h)Nn)iYC@1y9E|Akf`^&>%cZoIc) z8Hx|KY0}`j+&l+C$HkNliI&hLq8IP|ZrSD?>N4SNB9PeknJDon9(gBk|5^RfqSC{~ zR->^J82Gax#AYUxzxU?7euyM6KKl=><_fF_^VQ%Jm?l{am6Th$1*i)m)OkK?+r|g; z4Y0B3_dn{JlxmPM2?Axl-NT2o1YWZu!2U7%!Q0hTj95jXh{`uS82LSur0snt3 zp{6sMY#K^ZoLRYtl|^-_tm#G0j5V17cGwa_SG^p`1Q5JdG&Fg&3jVs;AZJsMOr89BT^}6Cr zfFT*Ei6U;(?kggN4v!*7i)8~1r{_MFs(Ix7VMny31`vXz2VNybE@IVdkC2LtmmT0Z zsB>MzrD*-zdAsud4`=ro)KnYwjXs?;AoLCi zy%T!JB=jmEAXP&Th=@uTF^!HGiin6Bnt}q-R6x`OkS1b8MMQ56h>D7eO0(sDb3gAn zXP(bzX3d_={*c)-*)w}*UDx{m0KoF%yCA{uF%I~B^;akQdf7DsNT=zL&HrKvO?$6l zk+Q%19O+&qWNDhdgx2s2rVs( z?}?S161il6l~zX)cC)o`!sT_F?evWR4~^65fk@x5Vrets4@7U(%UNS=_Gc=~maw{~hIyf^d;atX6 z7^V4iW_a?|>s#R|eNQtZQg3Z;MWl_&WJMmiZ@C?r{x~=*D)U9gc2xG8(^>m+KV9G6 zm-pjo*8cq8o7?-TVA*Uk9c8scW=e%*M;9t(?nD=B)Mm$&8r;~4DL0?bj;#>bZ|%gg zoMm(3s=Td!#?|Zz$%(Ix$ov^!7h9W?P=DaY&xD4f^ErtZj&1!+WHV%QDNSWozbGx$ zA-PGH&Sm~eYHO~|O}=vV#(xCieC~m+TU);lbdSm&OX^+__ACdJpVP3{KK(zg7s5mlMWrqNF z^QTL-kfBD|M0A2bLurL9;|uk{JOw4kX{h8Fd&mMn#mXL9MmbYQfPCN!aR5L^>%){M zy(+RvQ_CPC3Ay`Uc%#1|lWv-;my_1JkHr0N~V%6>WVW0g#@%e0F6m#M+hy0E|7ZS$iq# zAo~14HV6y+(UN$>iw2|Pd=3E9aB6AYos2* zr+~a@9;G4a;bp_xB&SmU%9ygsmQVr+)=Ld6S3f)E^WnOFyD!bZuO8Q#)bF3;wHpTc zAAk}H00IoN0RIm_X*FYKHe>d`>py^U#uR_w+;q}fbI4S(TUmjvYJJuyo=IdL^I_%q z*X8)sXL+$RygLthcO-i>B)e3l5X%lY7bOwtiMyzA4#%VI^Y+{3?6=F>=a>~?mlbZ4 z8E%ykYJDWc@=&m)(2hJRG$n)0(}M7a_L%%vfx^NI>);-^4d8#mD;^#d{mZc^kxf>P36#3gO6Tcdh@gV%)W2geN@>qdkqHy^R0ogTa1xy(m}R z2p6FssTJX@DLh7!^dj8!B3$*towY-VT0%QAXqQHilg1t=jX)<&AtLGPr0%^--IJ*9 z>7?#skM$OoozRq2^R!m;uvT-kQggRZako%*vrs0PDeb~5I+`f_4!qX`)6$K z&-lEZgyY+kysrn2zfYyUJ;?ZWkhz&!xP7E_C%x?F(ej@e|JCbXf>*zUn&jVi z+rQp@`~K|p%iALZ?U$-9*5$FQjx<&zHkI#hEswl%D&lHYMAw;!*46-aw^tpG1voC|_+>|9Jm!PiN`9vg+2mGPQAY>3_f0`J6Qqkj2@0 z)zGzCi|7%j<-lv7LLkA*()V*^B{gecjT(>~-YWEvXz3Wq2GBO+=w z{&X?#RVvjkJi z9tdz#(62pQsFXUkR9J#buDn;}eTA|t=}%HnFY`m%zBz6F#VS@I2$nN`YNkN%U0q0l zx|c5HQi--+D|^IC=buVeiB3xj2oxSmS)S6VrvM@V=csd~+9w`tm*{+I%zoM;KHgS^Hf)%5P@Wre&2U<)h0{IJ`VB+XmQ zD$<4M@l&s=>RjcbSl zRk=xT!}pSm-${1J%S9FX8*OP7-&_@9>Ke!U6F3;En6Cv6g2v`?xG<$O4oyUjf8_uI zk9{;Y5SHDT-n(>xRv??yy-=VW*AXny4>hrMQ%rfn9T%LkxM4ajAD_Kc(Cek|>#p=p zvb;kf2CllMa6oyW@a~S^xoawa=PIu$CIHG(xVQ8Sf33Duw`kWlHJp9-utBhWSg*Z~ zK79h??DP9lOE*cyT@*f{A&AVz)+PzY^r6g|jdz`qsPTBIc*JOP!m zYzSCo;bBU`D(ORl$Eae+iu7eXRL`w)=!xf7A3-zrp4elT(mic4GFJ#tz2s-z{!hM0 zce0_zN0#h^YeuBI23+wKhs*1<81lEW3-p}a9JK=<+OqL6`t&U|Kf~x_>iwf?8$6ga zE*fEv2f`iFu6JZiLUwSp-?_qB1kKMV2}6eB7F6@7?UYMGv8=)}yJT=`30=fcKDj`K zjg(BH;?_rAW8o&b1vt@YDp|UVQ_utDBcqB*(gS>m_GGfidYPJ36{JGCO072_0yX>F~cNQ7wPV;EH+?NqSi?bg49KW?AN{|FUkwtJZgX>)5R(m{ASROI;s)azv&mu@Q$#z=Qb?X9MYa z6wyq7hWrTUv8l@vf`sKFa!*4IC?G@VGpH_4($$V145*Q&BL7x7D}M|}Pma%Y zPRJrN^8HZB_3z7FDgXQv_35$N(67yFN45Mj zmWL3&9HNJ8%jobbi@D!R`YLwS7v0Z;8uAZ|IIPkz-RlH%Hh168Y3Hjh7F{x;2SRt1 zj%w*I7geiAi+B|a^wE=6FwCo~Vr65Um|Px1!(s{HYXd^K0T^l)K$LJp(i0|@8Fhr) zzHyazb;PPmMjP0)e>8ZZfBor~Tx%aL{2G4T8yyV+%MTSp%@?_^wuZKEub;e@_ul*U zula2ir*Ii1=@yu+A@NkD3K9R}GFW@kzXmo;mkRv=^;sl}A6sx%-C`RWo9cyAY@R7B zcdOAjtGF80sAm@7k?fss=(2`d)wE+!Eevgtq&p(YT;H>V%oZUD2Y4!wPgI3Cr1YfSOF zF9s0QFJY|vY50WE01Q zC9#}!XH}mS0=IpsMcYzB0TSKgr5`7CwwoDL8-$bJxPp3RhfxvxhbdA(g;--pb{DLJ zwLL^(oQ8unb-x+1fa<-sB}q@3V69q@#9dWO!z=zRXX@GieqI_~*x%Y&9{Z$kI4WTZ zbmPJ2RPi`qIm^p=8J##X@CKN=Fsk;4Q)tR+JS>^KKOu+1AQ+VJHh)DJ${oCB*S{o| zhaFR)_NzafTS95qrzma+*VEE}VULIsv{hXZcIaI68Y!bOV;cO2Lxo`Z1Q7v<$55a7 zC9;tU6yBxeJ?0UJ+p4LDK%SuP4+Mml4XCCbqaG2nS7gQ!G@S+b+@$1aJeOH$&bk~Q zO}?c9591Jrd^ZoBIQIh5o(s5fKEt*61-3>WK4@|n;q9}mBF=H<{3dsrPvS($Wv?&# zI(CVaMx)Iv+5BOD%85tO;tV`fskg<#D0`mdZR31rnkrHh3&OpXu+;j4@sd7je0q

L?_J*ra6eYPB<17*v8OMeTyq79JH0w5(ST(QOmiiezH6VpP!SPnBT`ha1G#E{ zw>b~J%r4z7kFCoZ9+|xH^rqkDyQAlSzLG8eartW=tk`}H!p#S~68LO=Ij8bDf5%y^ z+(N`@ohxeGA1|4vu*(=eOI^=WR-Es?;<(d@DY6+=UL}~=#x;`cSfmM%O$rvie>+?9 z45Ds5p$3l-j<{^9@7YZSJ7B2jtcTlS!JU_*G{+6t z+mO8&sDy=8&r^~e-^qvvs(T9N-efq0O5Y>LPdTGGcqRvfzKuN&B_0nwli{VCvG*Ah zg+TFu2FBLKDw^1LOnX$I1C8I3h+pQSchsWNIKVF~|n7Rtww5g9yH896exBbm^> zJcvCuK$#8HAjEueb{drdRmy-j$0L2&$BgBn%FM<}!DnAZ`8;&1a1M&@yWYwBLm5 zJ1F`t#}CL8JLra?xFvuk5=)hSSel4tjfsLA>~9m)i>!x})GE({SMyE@Jc{Ey zoVwgWM*g{2j?$%Zuyt{m!Nd_wK*Z%$2np|ly9qqMbGT6+B!&PtZ%4FeL)&$2BGZDr z_@(4G#V6d-Zwyo!K9_tivu`sU7lw}sUYuSes}_EOD+ z8|mwN2kWW9=h9`)^@f2?P=qr|@TXNK87xBsiv}-AuPC;r>pjgVo>AEbMQUE;(+v^p zBO+NWlU#Q8y*a42U>z6EBmd37D#+SQOhHC81N3%6Sx{WnWUk`#3%Y3x`Kg@q9x>D> z#a(SM#$QTi_FgXNCHtVgTB?u57#-J%6KYcn39vZ;oy_)a5Exv3=l2hdO_ z0EYn>vrE*dtSZ~H`N)V%JCGiWDz$hI;QEP~kZZR=TJGewjY5bQyA6J>8`g-vhu!xk z9v!J!y($xOoq&2}fr>kgT6@y=reNQlK4dGu-O-}A5sz$Vxel`0UFG);VFf7cC+8-X zual;uMFg@lO-N>5z0XJA#)us67Rl_k)}AvC%25xy0{xrRaqmOsF>?O?)&6{53-5!- zTvGnbN0Cf`a;ueb1gk_c7^J(r2Id}P-;@>M!& zu-k9NvUjJ0t_SmpRl%Mb14!c41Jp$8ISapifPs z9ex+(0M1N*hb}i2zBmhs=r)45+k~+L)7hCJ2d?i{%%}1TtOX+?{z&*tFG-g<9Lk0? z>;-vaH4~_iT#}wU!My6H3*O z$F$8qg`#?~5Nq|+G!aSdXsH_=dw;il8rKM#K9PvE5qRM?orO{P9%fIIKZaQl# z@#Fscv{SgXc7r`U?p3_0)KQmf{-|9I?e%9-eLSRR5R&B5XZXjtnb6dSca4SmwXsZ7 z=cae%HJat@8$RH0pM$O?=O1BV_orFt&`IIl&^Q)MVPgzA0u#ivM(5Z{WNPH#ALJ0u z-~ZT>i7|F9aNmlJ@{r99<3OG6fzv)IDSCo**~L4icfTJ48E#*=J+E|RFWZz4awJUn zU@H=Atm3KLI5^*j^Cnakz*t3U05Tf8NFBfK-H6FJwbIC4ddtsic3+VHo*e{BCd; zNCh4BnGkNIxHb>=S`WVfzZ=sD>3(u?dMZe=-_bPqnVS?;axiyvtaz=Nm+xCPU)U~I zmUsSBPahxo$l_N2)uAwpQCAygbv^1_#OT+4XG4cx*D+)_HKc<)?UwFxmF2oiIYjQ$ z)aqN5)k$o6n#d6VDH%Z2Z#u8Pq7@JclMXV8#=}nj(AX9DEMXlwm3+b{>Nd4or1tv> z@2ZJF=R;q9_-0k28+Wfb`NpUz9<*7=YdO*P+_5%sti#8)Z;nl= zd-cIKL9qRRNanQCd*tO4QLj0P2hR=lD0}Za-yUyhKiElrbcu|-Ot^IwJMz(m=~BmS znrSr7d*1GhO#O~jZg6@0#-}8%6Y>^AO#$klKCDOJ zOem}LDunTQ`30vQx}TLA&I>^`T?s+e?rI z3)HCt8f!gzMh2{nzpIf3QCfLnx_L7(+Z|Z0ze$IY*%V(kq(da^PW0=ved&??@t7<8 zHJ9BN2IDWH`~*GDd|_;t{H?)H7R=gGR43;CrD11rzoC>~-y1KGEHU49j`LLqeyNc6 zm|4Qz5fSED9m-jb!oni?-cr5LNGzUkq(Qfe)vV)vax`nS2{yS*@Spb&f7!xZ7pc}V zxN$?6*fg(;0oSxaei&eO;UUgx!d!ZgnfpY{?KK<^cpE2tefr0n3W13p8yQEZ^R^$(MuOmC~A26vym)OV)1ccx8$$U)1-3K;)m|#;jgrqnS za9Uu{odI$%F0o9(PJEjh=jQe2 zs(-jW=HD(wAPl>t13VDNNts*=Yma4<*`UQ2c=#iTefnEZZd-B@L@b!Y)AXSnw0n07{&4HbZE=m4a;eDR| zNF7#MA@4qr=1Gz)tkClAH}nitFRak;YifJcTvVZW;lM%*ZZsYxXO_TgOWJd}LfPtI z!wtPRt@o==lWGR!X-x$vN!|QOEK%JhM9w&Fl2EDc`dkX=SH8*tjv*v9JalbA&0}zk z8i5H&IRh!z-ZxfWf|N|CQnB}_U9cya!Kb2qnJN;?qaxzUpgaLgC47T2*Xn!G?R@xV z@_c91-9nX!t(3*<2Vak$kJ$dQcr$LQ-V!x`b#G_6nzaBK(z$&a7?Acv$Q*837x(7sgoZmC)u#$x z=rDP82V(AHI-%L;WB$;^+}G0kXzQ(z(6IQ^U*5F{9^33CH$vs2w#J~fAwjm#TWgA5 zuBU?o2fJ`Y-=8Uu0J1R_je#J-p{9U2=Xe>PWsMba`#X~{CAz2i>O|AE7xZ$IIh$CH z@hl(jYKsH>LDN%ML6fX|$W8n(N$Y@2kTpW9i7VB@9H zQ%+yHub0)4{YOenW^I~LX3{>4rxMo%3pt_|ZZ6L4mNTnOp`fV6pY8iE9$}m`BZG#t zbXcw+sHWZLM1P7rmYi)vX9 zO!iLRv6P%j+O>-95|vIEK0KjT~iJ~a__+CaVq%2*+`H;W`F>*;?c+>FB{6Gh&Hw}_OEd@`k2kZ@2mcQ%yRgpOQ2~lP zy5g<;$*eQSHDTW>lJhx}4bif2GdUA2Cm#(-wjw*&vv#+ApgmYSIr@;jJr}DVt~u^LG_i_!36gCAe3240%SKA!iey9f7_d zv20eGd7TW^!`v6Wuzo}157xcvry}_e6r{RFB@L3Eea?O^Ig!!_-6c;V6s17`q)U|| zt`w5Y5N}a>f-cK+O=Iq9u)fzGEj#>D>*izIikNQf6^c-=0+(4O`P&!9xN7PkbgIS1 zYA$v|6nLk>M>gXjo;!3E0lUberdY(3%JoU7p3$}dp7FtlNDhZ#+2?7Z8IxeO?}Q?Z zW#8Fw-cyAQ0GtqdN+kT8tjhIy4aOyJ*g*tA#EL_c=;mJpl8JziflPHyr-<#O_96iz zkQ2+}i+B-8x0S1RYg*s{VLRoL@8-dZFR5@B3SEkyAX9~Z(tGA!N`iu|vggpU?>~p{ z873b_MZAoWy*H?=WiZuU9JXHFPQGWDE>RwX(U8B}=98C0Pgh=Rbr;HI=#ghFcdu(Aa!ZJkb(t_*2wD6%oT}1NXl^w? zL*wx*rC;P?=WgIWJeG#DCnyLxE^t1rTx_2|y+^ehtV02cG6`VCZccc5!3**5^|LeV zgW)RcfcSLYu5b0a-6z9HCVd<~*295}pT1$yy~5BE+Z{g`IgeJz!v#0&RAeBl&1ZQ#TY za>A6}34?g7eux#=xU_7m%ii5sH97S2nTQu}R*|d)Q31>(O1}(MY`}^*4*-!-hX%o`8pZQ%ER<&XFwzg8 z_@Qiun!3sdyP$=U<2WwD2SEQ<6^L|^A3*{%K=l_nP-JQV(jNo(^*7g`Q;fLOYj#s@ z!4|H=B}vzGZ5XT!wSE5$M1`yyU4LudrcKG5zkX-4^EZ9>qe7@5h*0+Em+Xt@H>wQ= zPQFoQoReYa{2ojBRu&`NBk|+wX6h|i# zMin@m0q>5v9yoZ-xjE=gwgW!}{rpNM!Z>%E6m&DxEfl)O$5x#4k zCSFJw!$E*>=kI7GW1$A6gd>)C6;87&w-y%L3e46^8B7XUQv zyHWPDRV}YTW=Tq7H+V>=C1tXY;s^VGkhLV@TLxMr$3|j?W;e!2%QSgB<`PPwXAb&N&j+8J*>)7DvJ3FKnX2 z=*EwRhf3t$ID<_v0|x7^*Li~l4#4{R$kZz|Me0QIVW3hsP!T@1ef9ovTS-ayHMLT@ z2?pG10Qz_f2s?Ur2J3=hO-{AUOiNd1y}26(2b7e$oZRqP20Z9K2Zgq@`K1@U{sk4} z8Wh$!k%#zFFtFbXRY-qqz;p+Z-z{50pN8PG({D z9pQ1mpNG2VzmRQJvdnvw=aTnh2J??cl0okqf>{W>v+AW383Vf&>v<-<*LB6LWVy%a zKJ@YT8=+|`b{x=*x!Np%rj`v-p9Es5Ale?G&B;j62TKeRC6X?kyd_{f>$&Y%#|Q~v zS#>i$Yz(9f&qfo8*22CV+s&B_#^8aL>T|a`XgXAoDS?4sr|S?vI4r$y86{4>Bi{kU zwmlpQ^T4oB5+3ds%sou!N@d|Fp|9o`4qB36j26=kbUm2m_pj?J^-c18-#+n!o{XU0 zQ2N9R=p36hBzT|!b2B}&$<^>=D4z}W@3?g<0w#R+|GnSI@4lfrS`cZ}8#MrdegLV~ z(G=Q@r542Xc4%_`bYnOpHc;D~I$YAMYQ_2u8EC5vG!vy( zGUT?D>2hr}wRQJ%LQItc(xL*-;m?JFf%TtC6$CbP+|J`6Pv9MFvy`s0hRu`y$y!;m z>F5!1bV-gkY}s3y_p)DmVDI!~xdfc5 z1_#thfwU=?WwXn=)oErH9&#)vS<0wdx5GYteVuH&XMD5j0&xFL z`gjuc&PvGN52s!EkW?#v4F8;#QG~8h1m-EAzvt9je-Cs3&nOJ6DdxFiss`>= zuV&lP>TJWHerzyd0c^{nzk8u&NTFjEsG`Mv51jRlJWju)T}ZQJoS|HK({t)P&8vat zU;*#Htn!fXBm5OA;=qbP->#Te|IHQmw_F`gRW6aZaFzB>sig-G+;Y5YkmfJbu9Q0M z4mx;dT%T^h2i8ZM;^cLu?oZgx0!`IjPzEVZg7-@ z=!5R+0^r!qx%6s86I<#Xc(*M>d55~W22`{FN~}{c_*k7%AltNbe;8Qn0jSlB{tmb- zHFoyxU;12`-;4WhKl=B1*h7*VPA%RqsYfvM;UH_RNgSa}71Jz@5A6&ayvqXO^Xd9n z_nUd36W5&%KdS7<+)xUQ9r3NivYct4#GnH{rgoAJVn8Ri_vwDRyI@@a@_U%^JB}1l(UeySt?Tq{AAe8G@vO@b&6MRz0|-f;x%k`f!;~r>W24QX z!?|lBCts&K0F$4~{`-q6$D*UofNpBi@3~Z3+JO|?4qOifDpHa!tAbQ1bdv!sMVA-b z_GPwT9=@~x^8N+#-HmTbyXsUQA71@pO1$%>W2@6&g>bEw|8dskz>Dg?V8PReMubPp zriQTrF|6+~X)5-`Dmor?ZNj>N5EtI*N88he^S{3Si4(p{_&0u4@wm(RaIPGNU{{(r zdoXP;{#eUMnG*Qfrj<^AIaPSFbOuHb8ZGTpDBJxTMN+0=Ss+?9-Sg>s+*FjEgK1wj zP|}3{!+^e04b&>8YseE2-;V@B4Y}0X|oO4EmK1R9(${vqA?< zl17U|MMOdUx8Ec+%HCQX|8ck}8(1u<6*Gnj9T_VY2JTS(;p%{~Vo9CA4$3$6@p47$ zBWtVQG$vW-e)tMPgcB>1`~wQ}#M9 zX;fSEoL$BmFRU4Mvf4Ot!~wB9hLFJ7c$5Q{xQ#{PSpSvDMrV;zfSZG92;SQ=1@pw2 zJmC;bQAq*v<|#s@BNL&JQ=t1Odi@Vq;-i$l^rP>Ne|EmVe|+uGzfOWbzl`#OVNz#( z#?Vq|8s|yB6dj=rt=TOK)2da1iO_VF)$$*SvTpu4mc*pH@l}$_4p2VLRDz9gex849TrhN zj)|E}C}I{)sI*>>R#Zyw2oX`~Oj;_C_s4S~(z{nO!ASLNJ`Mh{Ku9_24y-dIJ(M4f z9rS~6?j3z}{9A!s6uuHn(rj37J88VZ10ytxw=YY*m0(^#XpiwpD5C)?2&uW2rGKUU z%8>rm&Y@pdT%t;BuAZ2bkM%LVhmIxtS!wNjx+aD+!1V;$zLjPU0W^F}$MfLoK2w^H zy%BMF?QZFb>`FI99~Oq5mQlrHNV)zYI7_%h;xr{(Uam7Rv2D>ssyPeXMMX-DFaSQj zfjh1e5|dOcP;0IX)2=&MGq_kCrTKA8lIXBBCh@fiBTVEe#**NgYz&~?kH7jefGfWeah zZ%50g!4bFTOnGyPo&A#l8>wq|K&Xyxlw`2sBI$Y66B7_%X)0_pgNiAY64{rB=kW5hrdRY&%>i7m4o~lME;Kgr25KlZq+L&m)SI z$-Rx;)wy}5g-w1I!dAFxbK1!G^;6hUq|$4_h?s}&w_}pJSzHs@d$CIp4Cy`|jC$~< zLGVM|>vbArlPG>LJ@-VG4g+Pp!n=*$Tei#T=i759^795?<(5C2^D_A4JtgnFXW{nZ zE-Qg|>&Y!T;)ZbQz=~U_a~&s|pz9nn#AixAK?G(6(kmi`FJKalaA9J(Ocw@f3K_Rd z1~@nMQU_-$qfIm5oY>l+v;Xydva!`lKGiV07Gt|8T~+B}KEw-{8mqEO$P#uc->-z>b-MJix%9c_L>Ra<#Eg2 zo|CB^_0&RQ`9P=10p9oBKBW@wzn+fe$Be2y$2^gOeb`MZaPgv3X(e)9f?||C4=Abr zobd{s2(uIp*-bC3OOH);eb7c4yWc3ewEEN) zm5IE^z`~b^-KTOj>>jtzX7v8h94#(ZeyeRA+bvGGIdr;<5>x%_rv%X!7$*=5y8(l; zb?y$hC{414`^ChP_MDwwi#|lDo0Ut=ef%u15pG~Zgfpjr;tga0)LD1rM=FD9GLA*)-D;GY z4;nUv1L03*h~iC`pDIa5mqo;ZBpcq*W9KSjU)X*+k9|6Oz4v-&YDRMxUyltyH+LNk zQtMjrL?2gd(>}f#yX)^W18VI_mbm0Jaf+ks{@G8&o(e=j5Z%09#Hh__@hbTrH3TRs#{?M4xf-{?jw6E8Xh(j+fC1gi*yg;m9~B zxGjssebA8&R`)l&N?Zp;7-lhF%d{hWcJw#r#~{iZR0MTMw310ZhkHqd8Pr7`OTX-B zQOocAa@-{E%`N??r`PXnbsl!DkKf-<|#E0T%3{f9`4ZuhS1T@pt=D zKsiS+bjfU@*pW1_Lcjlr#bl!xqeraV%X6AbrSs)y?%NIE$oUK46a-Ll5lP2b z!60gDyh8K-a`fo^4{}}AAX`MWpXkgUB!$e(ddr9JZ39VHuo=rfVTc3uUnGiGm>G_Z zh$jc=u;^#Z+XH$4YcdhZi?Ek&A;6r^9T8tKcyIf7a8|qVYyOWvenX3APCD#jxWS%rQ%=PClTHh|MM6R90CRycqzgfNV?TfsO|0`%7-HL+Od9*Cl0DAnE)cAm*$}fG z;HJFHg=K&H+&UyjN{r$4(H4jVQqN0Wz zX9Uo%{671T)30awOk)cw7`@N~Y?iBC7{U0Zt*JF|smLc>5hos0>@u-21V%#4t{2&* zp^oIS(A9z4OS*YW`?HGC)yjMJ*uDf}&gnsF_uXlo^Gvmiw4uw^VcY^8uO#Tn_rmkx zv+k{&E9Q8hbE-~%<6AOZ2ev(g?O>WZFU7mF76!_?R}_nrGqbPI4t8@23@MGa-<<3h zAK#fDp1t+z_esH<7wJL`&s zVIj|ZuYUqj1Bk6DQ3Z^gmLGYK8BtrMDY|ea9Jq=zRch%|!t-i;pi&A-WrLQG;+8lW zxhi41~`3-AUiVix9thFfHLxw<3ZiiN zt*{qMRMX|F@qnB^#LnZ0l{Ky!lMkPc1n8Ei&jDpy$Y|*a)C}jx>1X#Q`Tma(2)GM+ zorA%b=GFkv8ytw!S?QLL48EKA6T+O3zr{4Ny8-Q!0Q@^L+wi%#1yB&P6Do@*O6K7# zLz*q8i=M?bTjh$n)GY0Yj_$mjRuqnbRK_YVs@Q=T+L~PS3;$UmRL9mmtL3{=ZOQ1 zcssHcG>Pk)G||wfOFROSSK&0rhOZYA$2h1w6k?bo?oob&2$W`puxw~zpk`4YK4z;) z>{8g}C*@jiIZICf7zd(!F-@*~StCj#$gMS~aLg(s-UNe@054=2`pnybsT_OT?|!HH}5JPk1303H&Nb z9QbE^|2qJFjw)%R;vs{R-~;L(R5UXuc%gIRy7BV5teShAATgc8vWYI5jNnDDBjNE1 zsqr>Wi9czr>ElrsJatSdbXj(hSVy3wFf)}3IGIM^m0Z>r_)0YposCOWI%o=n)3*S$ zOC4GY^6#Q=gs8qGasYJLVhB9dEzWrA?eRp!I-nm)z);?;IUtdt5~xWIoKrw3=ZLJl zK@2oYDZ8!J5Rfma!LGZ-LM2fG2ter04Ke3ro+SL}CWx+I3PJc*7rYpQbJG=cPR>&- zhr}x~9~?1D4B2Wswd@t;cv-WbN+AimR z-1=G6R-u37OIzRCsuhe7On-f}SEZ8vrjp)jBk61=jP27T5^Jck5P)8xc6K4)GnEiH z52!p0%>7PtQM@D|#?UYjj$9kC-U*T73QOt-*3Z#u)`>I6-F%GLJ}1Z9Pje2hum_+3 z3B%_H=Von^%0-Qn5iGB&!>bqwp&y$3IkZ&kDL~XFc__$#?_VmaO}o6XMvg#}Rpx4Z z;Gi}*%}8XMli}F>^EN-jXDe;L+4|$j8Vae+N0IFlvwO5OgEGfC(?a|B%EV3OXU+0l zsY!rAGO;vZ`C21TF@$pkArzvzpWoDjoO(zz{ADdtJ;vZ-A=fjE8!OrXSS5(D^v;RF=*80mrap zEjO;JAu4mX=vwDa#Wg$Hy^iAI*M1%Mx=bo^Pbv(3ZBG_0!H>@Oe?3CKXu1K?;sM`i z(_~YC3DGsGNFcgRq=h%joOeZ2xQ7&0*dl370^d}f7uj1gO6H2K{~zw&^Qp=1i{DKrv=nOSp?3(q zV-k81LPr4!RY1T{L{!kwLWhVb*h3W+=_(>>sM3UhilB%AQIH3frW7&H$@86a=KRjT zaAwx*xhF3&`$cAQ@3q(Gy6lhSGkM^bc`5TyT>iyLk->>m7Tqbz1}n5BTqej`|WgmvmA-wnSb#rQ;-OJ%$ZqMhTY8Kyg0 zW*pu+edMxFw6GwK&buxvoGi5?rX`Mb=ZLuLi3Ydo>u$ZF+a0mY5__zNac^&EJ6S>- z(huJ-pxYTHCmG^xjx_51<-EM7V53WMx;maw{-#I9lvjoU6o>b`->hLDY}}~C3lF)3 zNN6O0D*crB9UfN~hp*o$K&l{xJN!1eOOiMy(0_ zB`m7XwS7vo(zuKa z`^zsL@sl1uI$nl`f=k%Mjztho`89ZLs zzBmRTa0GEvP01T>0J3_-(YN$EDw;GVIDz0lc*9D+1g`~n?nfpQ^!Tu!1tD8;m1D^f z)4x8#SlD~KOH>h#pTyeDtqK}?~ZCYBPxA(0X^%6bKh7QDk(;rmPZ8_$2P7c3jX*uq26$_ zow_EU`b8k)wPV#`-yjq&Lx`&6Xl~jIi{$10DDpEfwhk?)Oe;QyJ6`Op3+{4qHS)Qz zWpHv!^4;$PT9=2MQQ_y`jnn~u(_e<9zLNo2MsuddYpJCUSw1G<{a&O&U}gcmruDADR25 zX_PM;ML?3a2N~2zFyRNwQP7P<{otx`XLAA5W0!QKC|;r*YA&v|jmC8Sa1%$WH3}(3 zAe?wGYonuF<+C|K)Z4uNkY#^T|2>Ca3H(Ne7xu-D>kZ!TEO?rF_d@qxWV^vwr^%sH z_jyhmZJQ>x>)kDMY})Gj0ssy`fWp_`w?77c%I-Pb3KvPm3n-mi&EDbKT_xc5GA9UP z$r+fa(eb2I1_iBR^jfSOCDl1q&b}iPn}Ha^^O@@MO21V(!)1{JcmSH+Ti+%=j&*Bt z+|bMhSdO=7f4W}tFuV@y*t`7G|41jg;Es%?gtyyf$7d9^T*S6}LC)IlAjL?_+6c3g ze{yT!eyiAV%P*%7{KC5%a=VRfo*SHQuTMH_*xZ@tPn1Z@sI!w4h7eF`XZqp_+4(q@ zev?=lKp-$fvNl>4J}B?-61Z`tk4osP14_2!xozIk0rxO2oQseMy;{yI)~SR`{F@(F zcJj@@O$f7Q_nW}aXw;60cpw1~B~@hIDcn$|@$0Ej!}I-<3$J~Ey5@S~rq^Q4Ef?Qi z=-1>d-bwo`b$Z~m`I5Ue-cWcYmTZs-LaT&7qRaPXgKyfEr=mh^B1f;N2Sjqdja4Wr z*Bh?fR^<{y&uh`9NG0se%w+rP5=n!wZaUhzzDT?#c)T{ck2WTz zawxpJ(j$wv92Zj775$p#=GUCuwK7Cl8WC3YX*$5kE7h`KL6m=|{~Ir{Y-k2}84 zuAMsZt~uo86|3thaUUKhEKfhXe){C67fJ3l_79FGd>+Vkza*wDX&5!ZaHzoC-0#mv zw(^Hxd3Lq$hnPfYpl|*w2^Ht4Of_Iw9Tzq^R_kQrFd=J&dmX+4@!US&* zVrmMt+NeK^44C+Dg@zq5d{$`NN+4WqoL+O^>{#_@gyni?7UIDOYLr*Ko4Uw{4aa5> z(QbGk^vTL5wHM-=0C*|n%BHe<95Kl=gnXG)wOF`f0fp$SdaHrRr<2(! zz*p1Mwc7rI%I`I%H>~w~%wUpx;c7JNdRQ{L9$jMkx$$nhWK4NL$rG#VN#hfT?p`WU z_yHe4bg$!jYr3@`v8u9#%CL%phGj7}nr6ROvP!LfG-M$REU{I&s)M`kf;hglMW%8G zb)pE@kGfZ6I8Ol!>UWY9Xwp>5VxiG$!%3v|F5sfSzpjt+80RgkjOoU%NX+H7J0&U1+vtfO(iXfEM{ zfImBfS7(Nug?5|iFp)U#H6F9t0b9)b-fdv^r82ADeHoM!-&F#A=vGbC)c;ztnf;zS z+N&RHV{K+zUQ=R4`>0rI`5Pa0NcLK1H6Hu~k0SU6eJ2L%AH5caFjE=09IQLeI5}h8 z(A0&rTp<|?%1~2@d}{HI3)v^sZ9|}9{-z<>QhhSS5ryBG=X4eF7*o6oG*bmGn#hru zi^gLXCWDeXtMV>1&$PMdcH$o6lp*KZ;5i)i=DE#Ly@|lBPuoidlBUaAKdzlIc>43R$E~D>gLW2NfHyRlYAhbPyGcA{28-|KL8#~v604$C~RoM1y3++ z_IL3{hq_BkuJ!iGuC-*VRYC&|Sf2{*$;M)1aC`NJ9zhx|d)TrHZo=phh@@vp&v4~J z7DeTi%%;=ITyhbr7c~?LO*{3C->0GINt>avf=CA3J!(NSM8f6BxPDS%7p8A9do%aKW=!RE4UViyo@RP2TfV&Wj(5ZT)odm5+-{L;X9z*^sIP=C@h-b3yx__vOJ*04 zw?hZ=JNst}xu`1c}`TXNU~8MhJ|e9q8Ugl?ekBa>^x{!G8*kzvK@+A|36 z0cSErmrmNJ4x>3rk591ZExdLFf^4T&MgC-%b~wBx^lK2OkpX zdGAy3s)Nhb@$!13htcu0ENROD^@=VnH$j)>Q8M49N+9m5-ly`hB0~Gs;j{(Mzaqsh zq}PHyZG9r2Qhki09tid(W#z6gbMZGa)P4kl#BfPiNW!E*mJppl=?i*% z78U_jL-rSZ{=*%yBkWcolLR1GGK)(fN5PFy9}3;@SyC-zsD2lJKvPalER+f@Y3$*b zy$n`%w8y!wfIOEB)YHy<)o>KRV>(HPW?_JOz|(JW3D*NYjwFT-UX^#3dE}B;r_<0U z9f{yHhqT_(@VPpkpm8HrGN@=HT5{>zsx18a-9vz0tq2-%B&3!{vpGLeX2_2NL&Rn-`BKzqD)WkI#4gYWXWkxBQ2|aWz3pkI&q# zJ4+iq{CH@+2a$|A7Be|YGvy-n)6{?x_f9_>W6nN{^~sVPXF>n;l6jF+DAT{3eLuXw zKJtTdw!AUbdUobr2- zlkzTFw@PKmL0>U7-bVrmHsZIK%`Z?CLv5MO<_wwGkmY*X-KVsRr>-qoOhyk6rlbsn z!vnv$S#-X>vXIbNmA?=VM)=g(08)icBvf1#d@STFeSn%N*UI=fvjs9<_@1M812_>e zlvzV=ff}sJmt3H1Q~5pML`XG@3g~1mh`+?cJ0beG9=o_>G}0cw{z6b zvRJ7iUv9Lgi4Coe07Z7P%SZ8o=`FwCte3Z4HoDQnWvRQ0RFgOoWt(SbtakP$(vQW4 ziSL;@_$FSwe$%`_Mq+gG*6-JkrMngb6{Kpjz`2%hU&TMasOoCNJGG9>qy9O}bEE&5 z#2C|lcQIRVNwH7JF*B!OV*!~VXqo|agZ~D0rl&wWLVzBbony>HLb?0{Tc?f1Ync$8 z)zqN)WJlY!DXkSlKJmuWiMrYHsl8ceV!Ylr*QAEjY1Ijc>_U^@HsAWy`LOESt;5NM zGFGAEC4X17rjwO^imV>~6rq9xmLj7v1W&X2L{#f&MvVkSO6nPhyk465K?XB7)q8eA zx7Q~iR;$=a<}INP2(@ev)&(;dzwkJS z9VMrwr_*(Pn63lO8UJ1KAhe)qB~opt$#sVYmQ~3R_`&v_V_Lsw^N-*KpEuuM0z6wS zjKJj_2oS)s18W_ng3nh=xJ~6ZdDq0k5$n`_ggn3K1121Z;^4hDnS0NP(OtbS_8Abh zC0JuWZ#*8RGy1P1TgMTL_({~UrB=r<;oV;~el!YBW9x<({4G?qvdpwJ9BP=!-wz1B zg~v6Kw@ek6#}>CW!XVlkLV6oyE|uMsbFs3e3hGBXRaOGcb%RFyH07p>3qJ$bhEe0x zPvdOm_Y8q9tl*NSKzOFu{X0I@^+=dJK(-DdhWcI}@#27=v6hEeTP-TtV4)tMxE8dv zDE~Y==* zuQQN8n1Z`h0ol5HQ*8c6*bZjs=OL!jFxLRh;xx zfj)bV{jP)qKw9~S@B;lzHA=jpc|-Zpd+|eG3{Y)4-#2xlZRCGVL97xKPC7Qw3Uv1p z6*Sw1{8>T=g-C=vT8My_zJ%IlBgy~3Lm7}%D*ybeX#Xi?BoGnG@EIX@kFjne*8FEC z{P(}9xPSdezc#WhLG>>mvLRpK1{oethPsi#mW<4nh+bQE-)d&;3do+sXpdn`ZCBS) z&~>B{F~QacZVISY27g<$b^?NIX=8Xx>EhWj-Sth29s^4!8{Oec4UkK^qXt$FdphG+ ze#r`Pa@#_rSSzR{rd}%zL4-v2lKGo{!n?8g^vuQ)?3#HJ?+{ZEM1COmf*aX&wG6(oOt``wcmdORpxx=_8|+&HXQ-Fe;}9us zdlbZQe)z`nPol!4fh_wtVxP+0r(ic-fJ2Sw1z3f$mso&;P@;Ny4iXMT%Tfi{%v+0W z1T7*R)N{K*g~c38uSFxzlK3S*FXe^afTM3;QR9uu1Ps*o)lca;I%h>(@ue@9?Y zPb{FipV$BH#p;YDygojh{ps;m5f)vsolHSMy@DUWI=#~I<@GG<*8%{1S-I{MqfY{ z1lPU^YP8&+&yzG7Xl|@ee{_Pi&p^yj#U^CZD*hFFCDs4e;_7Gi&LyhR$z(!`~0%y?r&^U&1}Z(IyF}3Z*>7A`YiC`1|@t zr1(ob_OJ1FIX*4*JS6Evid0*MkbpdDr369CN#`S=huHAl=6|tvo?W4u;VM$IYgQU0 zwK4LauAjv#N^0rf3M~J+C3GhxqIl1MW0yJJf*YvSP{OmNGxD5L0b4HLsA2< zm{O&$mSElz%vV7z-?D!}E*%`;gZNpiDcfPbapHaRH$`^R7b@ywt|Z1iO89OPar{c; zR>k?fo%0(z&e6uy<1M6B*B|h6q#=D0`El5rqxt9biy|+bmD@pS62= zbc9zSD)1Tuex4mrz)aJdwm+<#F0TbIF%420g)crXc+i>C9diE9y9?hH`Np1c`&{Y5YBNuWmM?MR= zT6(pzVo!>>AVqs}b)quyQ-~0w^+y*9B_<3pRfj=%YR3U(ci=aszM}v@5SA*7WrID} z;43*F=lH)*6{=0g@thCkIm;~M82B423uKYX#Fyy0N7j{GXjWG*h{f3ZQZGw>YZc*( zt54Ns4lKHAJJ=V&wA^$;&%h&RT@0sddjWisCt%W*rZzg2K4XbBGQ^$KIJr3tHL^ZO}NwMtTgh#_oMq+oiyJ04(E!d*&gp1>BJ?&!U4n#d47Hvisu?n81P-x#I^=L zJkB#JmK%}FXm+)&(Q{`#YK-2K)z4OKsshAf`u&g8^eM;2E9uIPIa3hJ;ivRu zwfK73@WF&dV*!X-_J0D(fm-SQg@-`_(nA^2mKM?)2kjnz`aGUK)Sl}YsOlp~^&hhA z@Cxidee~J~0@ye7^pB+n{=*_m{X5QQOPtui}phEFja*n&rNXcsH^Lmvpr^8VWc+lTc2E9b>S5 zrGE+ulNlq($Xc{DDM`(S|blnI5*#Owl%~=1|(&_?pF53TU-M@fX zZBhP*BA@{nw8{koe!2ei{oVyYuH+tZ)~8~dcK`m^;25$NKE18_34Q+a&vUke)oX*B z(rV8qM>E*G)&RhZjkg(Wq)Z?5*rKS_hG_8m%O2_X3o`R;@Ddx$Ven1i$HtCYVWVr&vGG$joxDzelMr>>hgO4KOaL9(^{5!LJbZ~0%cihe$QU%8(^;!S48>X?L*f6EPG);CGM7tc_Y@6GPS)QUXu z=o_xk4e50}6S_oWi>lgUtkZTO1tRL8ycNJKg*u=KYVmJXfEEaA#$zNF|LeTkgWfd| zY$(x+ZbvP6t8JaiX2ni?cwTJr_y^}>_qjhDLCendh5kaRLnW3^HouHrx43{vf6|q_ zGIjIB%=(R#@88U?wLee))3y2u>f5MIIoFjj^Fh28{wdIYZ)LoykZ1897~X#`nxjZe;0I$bZ#LF@yTt=qoHiYTpC!Nj8fMH?* z+0rTH+-VoN>?$AxJ!C|H2swt>p?ys!{Uk&130aYN@B&d^o*8{UWinbRe-MBa?;WkFXgv(-J5Dz|4d44P1I6K;4 z2-_DOU>%YZ<;ETW@$1(DD7?Dcyb1k6?yd;~V!=hNaTntSzEx!r-_vWvhL3+V&p4m9 zc}^s*yTn47!h8$Eu(FUacO?&^v)%^D3uRVU3lWh|Td(4g#kcm0i|Io}JRIQPj zNj@(%89}blQ)xlF2g>J&9J5U56Hs4D4<9UZcRTatN^r@UWYv@73CqCRFsb3?%7f$I z3T~A|0bXbLon?HlU7B)6vu!3&fl6o)Tycc~5q5o(3=x(pXZH&$;uZ#8*wnU8%edHG zzOIndg0|ra^ogtKI4X4_wk`VHI$Kb4s3;>)-g+ZjB*Y&G5l$DqnAx4D{b=^15~IaG ztmtt5g-`d-hyfH(1PZUP0IGmuIsjz^I5hMK=(k^0kBH9{X=Ffk^Los#x|-04SF25p zISm(QBR%uXXX84z)ChJ3GID^7w=v1cGecN`;2Gl2u63x|n_8~8q(^`OfMR_@;6@FZ zlJ<-oizN*J>+@v=gglQ-5kqU6K3yCyQt_apA7|4^C<^ohBfUL9LXJH#C_ktwKtA0* zHE?d;2qaQ#pSEj}aT#|B2ak``yUQCG4VtN8uJLF1Q8Pi}D^S(#e_)0~MGyn{u%mNg zS$W4C%;K?Ld0eA~qPK$zxTWM&8pY~c&yv~91{D*_P!6o(vBc3~X0<&6(G4~-Q|nM2 zy1W1$2Sf>|L;cd35cifW$rU`@4yUa#7MQKD&!!pVE%0r1hFUe5RdCwusNgB*DM4>Y zhJw!q2(#jP1%Ace5EuzXYmJqAvP^mcX(zY(T_X)`Bqrc3E@JY%!g(afd9xlqAIG_4 z{V14T8o>}?1QPUT4>~(1SBpGou)Azy?nTrnuUf*anD6xzM|yka^e&k%R%IarwZZK* zJTfaRm{CIyV((rfC&y&9W@Sp6npjsDj&zS-QO5pgSSb zV-zWb4W7(3)!kOE3RPPZAA8S|!W$-v$2Eq@@y|MOO1x_pzcnlqmxt-0Qfv+WnX2sL>f!gP&Br&Aic{SUQE=~rsQLH6QI$=-gpQIggYdtcfy1-uA9{;y>j<#&i+;UwmcNcdfYr!!wz@RcO;umk@*pP8QWS54PxDweo`YK~qD#xV75PIj zJprroOV=I{>W}4RAm(@i49l?(ba(MES&ES$CK4Kl%T};HJVz=#ips`A6k-Cyth=Fd z>v>FA+Kqt|$H<3_)IjhUa*jx>po@AZP~;X9f^B)gXE&rRIF}m1<=6)M_!j*;;@z!% zT7qGV*A=-(`l^Gk;tv-CW5VA<}47jwJ|6p+LFw^TuL z+^AvucNUR16bDB8KhR82m$FXX9>sOnr@m;~Js+rFddAyh=tBocGSHicKbJo+ZN^60 zc>c{$?hWwZS^8{CrH|W_{t}%t%nu6mjA!%8D=)y+3MUwqx%w(0R*tV;gKdI-nn%No zO^F@Nhm&oX5=aZwc)aawfn-JVFVP>enuj7LFo!M5&9sJRH_5C!i}iF-fDwHrY!hT@t; zVfyQ!hKms^eeM%HIUZ^`qG9T*)O25e#1am%z|2|1Ar?`HMJ#QhB4-hGKFlHIh7XMs zxq=SG&|=lj3-u7Izi=l?uwVMZb|`kLOznTXAU!aM5ejrn&tRLLyNwN(pc|z$00X`# zU26p$!$QrlXL3kzsfsWeI?z5vF{vl)HwkId1~kM46`Mlh)&Y`Os1FJ1M}hhRB=OtI zrD2%<4r?QTAAgO>b{0sHrK3Ow84Ve~h|KP(fOMQr?zwZ$KrfB2P5f93_6gi~0;J*< zRs1fmI9Wk1p#c>zl=BILU}HRF#7ZyTY{m)3Cc^qbz<`IqaBn;FYAso|N+1b#8~~O>f#X=l^Hav1N5C}% zkp4R4v^*Fc>ScQx;(o`!GC?wF8*B}i%md$yqQg!wtB#{!k?Tdiv%={c=Pck5Gb|=l z0bJ;DE10kT9Xu+`xjy`;5a$QAK6+I!Z8#?&>UNey$>v`1FZGIf>h04<@BEz=OxYLA z8oqrtrc^_oG3;q=mdF^b(~3~6+D6gMdqw}r1WspZd!K4B%?$K8RpwV-iNRYGt*HBX zi%FtDvMs=HGEW>Hrne4_qTjqgz!^(QW-esgtXuFAVYUvCqHNt%;HhARWq_eOn zW-Un)#s&oppQXGIPb07-ImxC^?)j^s>fgpZ7*kD{z4zcl*Mkhz)H$20N*jpJ&P_j9 zh~lz35!sRO$1 zWB9q$Kilq5ik;Y1PL+^`wj{~UgoLr7TZx!J?E8G=@Lq>JK*s>kU@Vk?O7>+!0?Ldz z5L5gvG?W61px!SKb;pw-K<2TxVgP52#=)36nUs)ZvP+w-P1mx;N{;=ZYJX+QgTw!H zB>E!7dLDTF^I!{5@NxA)(Fk|<$RG=3gt<`Eh~RmR=HD@oju$@qZH|b))0{E{+zM;$go<)Berh-mlMUVRr!NE^%X%89#B2cGjdFzB)bzyg~qjD zk5XXLU!eqzSX*zf4H+s3HC6l|YzBc60T2PO@9myrz>Ww%)J?;Vf;ll*t2d9K4^LaU ziz^2O86P>_xT0ON0Y+|h^tp6jeES&4Y+%U%fI$w zxEi=41^oQlDue_=(F?Fx(1s$oR0{mo33iGFJIWM4Oo14aA>`^Zlc$n4>)ak?quDlu z$R(SzFW==i1-3*4)SL2Dnl_nUKF)#>_`TqF&Jidb7AsF*+;UUxBf$bT zMxp?7v;&2;K=&qu*637eyO=Nh=vtO#CPP4%vN2-?z0d};- z*cn?3q>AtTI%GqF_VYnwrtF5qlC(ABo-IGcD@lHPYaGpj=@mTZKtT z7-$d*3RMQ70i#l{CM((>lg9ex{*EeNefHs>^TTgPp9>81j!k_ychzgo&cq)K*wVG? z8hc4(aGpMALx8-_ZpS7E;{{%xl)g4CeQmX3JeUHxAp}xY03GWAs<5DXnmkA7kZtKS zHzs7)G9nYGboO0cdSB#vZIYl7gg|nHzB=YrugsVb>%FZ$mg#STGC9tL=EN>b@ZvviceF z{T%4tvfIw0M4?D>UUO$;+@~Yo{h8l*HS^1AK$xx6qXu;&MN8wwMBnEreiI#50O^u6 zuw;-v!%K8|OosXDO0gD4^G$p}Rq_ojSu7aEfM8kBPMDDNqyfw3!z%mpA$$8v5zt@61U?KM?$bA;_fQj6vBKPQDPsD#p zKxlyTLA)i_W_{|SJEH0Yu|MdyaYCW-`eLj4pwkPc3Rr{UP91uy5F>5@#xEh!1Vl2S zDJ`aYEe4KENEnvqI2oogF9}hD1p-t)f3@HJT$dNo%*W+k&vpDt)`p);V~a;s;*iH=0lQ?WfBqt4j(v@4`g+iU z488UJ0K1%EO-~W|#{mmo4_#6VSyE=-R0M!zQAK8`wRlfZjpW-vMu-I&gk|Ws1?jAM zR)rq04}DSM;{cEhXnrmSMqp{VtVb#5dBw2scKFD{EbuKojIk`BNDmA|#i}q@^ETWx zzTp)wOcSnwjj<|t1a8g=#LZ!s)I<1QS{xqFGOxQJ3jmEYZCS`k7yX^uTn9YdKt9q# zt~0;?i~6+B`hLLv`qAxEqwiSIhpGO+G2lAFLk=iQ7t$8tqI`ZSl^C2<{b*(&uO^RG zYyAZh!Up^c1TudIOsG?kPqam_)jl96HkXP75f=IlQuvtM40gi(24?;~+5B6rhh2N` zm-fl$beYz0vtXb+=srR!WfRIUc`9q)y<54*a6%;)0?tD1sdg?hnT%t@u+pW ztP}D6%{Q+GkK24@c`G3fcaJ=b|MLFrKYlGC10~7<(`!dMqTe<}e3<^u^)-JPuM2qh zBdD8m=GTueAKv{8W@bQEIybv@oWkMb6PAWA>mHw<+e=!RtaHC}?Bo8a zwb_R!m*+qJIlaCxP^ua{e{g2|+uP>jpXUFb+uiu`pMa8+ez5oJ=kljdT>Bqbgn|e0 z8?NIa!rl}DOe%Su09P!h5dRMWrN#ET4a!C&!B)t{aKl!_%R9kNEFgKq4)cEqDBmPF z$e!EYaKL7XBswY-8g4o&UGh$JQn{YI>7-V}DNl6%e*~0?E;>)QH(hXjB1x|LqlR0q zhOfPo4jX?+-a2ghxjf0u{QnkECb?Vx+1_%;gGG}`M1G@flC7{$vWLCYssCF*sjA-M zDCLZPz^q6yf3?lxYy8%6)15!=WkG?t{KGc{hq&VcC;a0sbMHG>Y^U*NGN)eqB#4%m z`KSMFziFqj=>7jA0i{nY0FWvIVq`c;me~q90|3nLkC)v(bUu}<&X#u)NQ6_LD9;9% z_DDHK#pNveI#K|frVl^51rHrOe!&Z3qq$gH>c)ij?b?$7m4sUKgnB7=2sP^j^P;1c zs@3m_KgL5_@4v?bcBao4XU362u+`Rceu>4dfAG)5M2t{b&w26 zkNbG>^!!e*++&%PzU3>=*E!6~JDfkCR2Dc%4y%-m2q;X75)Cp4`0#Q^ErIAPi9X zOrIpeHlH_&3a&AEp*W(F54qZZ;M~yvZeTotoCaAdsAOtAA4~v}m=c#7Y+u`j7JF-b zmYA%tpK;6tLOcL-jxzu#qznj#D9Qa(X#-mHFiQIH*#@@9#A^T)GF@vGyu3P{aQHGv z2mnl*dGf?gzf6k{T?gVGR9qg_Q-lKH?w$>g9sMDiKzf9X*WHo5g&zf{1*qG#TwAoW zF7|&$M{e-%|1diK=WqP~mcpo__=uFq2!^|IpH)UxHODmd$Mp1H>A6hd0^j0Jyw$rf zX^_t{EFCeu(M7C#;CiRl|NhO;dzHcWE(YEy3aBeMQbqH-ndN;W!}BK9t2)iA;k0K{ zg4@Gb=k{oaJ8|~clkBe~JCr5cmnPa5Cpr{T9P;Dsb7O6@V~E*Nhcb^_XGU6a&5-9q z&C^57&XLW|23wp9Ha!<)d?wKN^ih+PBPLuwWbzTSQvnt!ffh*tmXxDbTx=(n~MS+c4JKD9+m`-rFGFoBJV->z3rM zT(@M5yY~M|C&rztk;KK4bh#Br()piTQkT1);0h%FQ$*^9yXu5HYlXRJMYw7ochf%Z zuJ@ln(oHA&ux8X@tw?MR_&;b>QSQd5gQfmddyyxYmy9e z;u`24TDtmQqe6g>V{?v@H}7XQ^@b9tBl6p^z3St5;PT}-(T zG7d&Ec81cn22wWql0-cT0!{*tld#s2u>4<{Yhg?^#f>$@jMPO9R7LcZg|!uhHRaLD zGAIcV6iNWb%L9RcK_DQITVODV2f-tth!C}ul(AFQu&^>T^R}=Gx3?{Dw7>4)-00%* z$l3R$lmA=iqjSyy%Z^8XI0kMw2W=e={^dsgMdB(VBX_)_e*4Dm_{Z-Yq3i@C>;xt4 z9y_)BpBD1WUf7wvh;w_#)Apjy??h8~V>5T+vUVsrTS>WFiFw<}`P-+8w@=e|&z9|_ zmG7rr-oH?}pLu;h=jMK1)t|z;{o;oG(tG=tn*UU^{bz=}+4YBOhOFy9Xc#_3A`yCYwIzxroy;^)EC#=-Qjzq31k=XU?H_x~>Z;e6gdSl-$D zx_`hmI?DXNM#tE<&Q*Q6C`IQRQC!llFUGI6dZ@MLWhvICK-#ITcKDK-*S)~uwz|;@ zoT`42(z~QD_X3`we)OJcmH+sH3g(w}?QHR6fW3aH zd4!gNk9K(O88uSwHRnEwO|Kh!(!M;wu(_18KrPFcz3zz9fjDFD6<702uW}*WOEaBG z|IEL7`WS4A!0>$P@9eK5HF+N{>wEwI+AoDLJh8l(`%uHG4HQt6zUKg z>`^+}xCR-W#|@-F-iKthKwi~1i7whoYd}8j$17z=xa61+T3*+hLQN6)yAP|#U|s>L zcr{ONRe)N6mro# zWx1D#j`=)_XBrX)B^;bvzbY1?rXsk_*o!pDsP25)^(bO~t;pe98TOLLRIUwH=Rf~; zN0NS4on2e*Tkyf{`SxO=-b=NTpzW(|J1GYl-|> z4{61lCx(k?6&=* zDw>q%F1ZP5gDTLLOIsogDHLffM#yHGo}pd$yrBn|O-r@qmyKd?G%1y_hJPreu@hjj zrLl?miiMaqN5$-!ga&N%fqEV`O6^<1rKlP1wNP64iJ{?a6c-_`{!fU5q}1n&4zilU zq2FGaE+2^3TMEBcH+VLqP+f1qYeCk%T737C-Vob!)W_mi@2K{p8Dg=~EG6u|&a`Dx z(VO0a)U|emVZd*~gq!xT%B8^Syqh@!Q-dg?D??ueQDq`D6!*1z9cHpZ5Nlh{mi4FbrDn|zZj<1b7J3kSiP<;dA#lAj5K%^F z|FV|6E-j8Il#2}+afDmO-33N!S=d&XR>Fx&F~>OSuRs1oRl%Jx8+p&pL6kKnZ3aYp zQ9wh89BQ&#XR7X5v=`J_F(WOZ=r}1$lI2g+!{rnm zCud15pmJpg&?P4fYcL-#UHeDFiI1azC8e?Y2q7Y>KuJgvb5YHAx>xazTBSm^NwW>U8m<2!5b5_-nXo>LNOSC0 zOu5UWmePVuThEg7^o7r>XXagQ$yV0!$alshR9^0cDF0^XT3IHb3syoDS{%m{uX!m1 zx-N@VEdzA<6fr@TwR*YSW%oVbrovsx3TU^OESX0}+0Ij3N;CrqIYoxJSy%CerS?_nPs0pJ9SQj^{qnVW zJZ1|(p;WwwgL6XO;P-z}H%{2fZ({W`_9$T(uPhlyd$_HCJ4#d2RzbuGp7KjRAe)r! zd)fbRwD0R{`Tn!A+%UTV)0HM=ap&l}u4ytCMa?8F>z=JD?0WyJDRtn4&hIY2r;G4r z{jNJkjS0oQ&ROR*7Vn3OYtjeIQ<@)EUVSP+$e*z4b&53V6FE--OR=ahV?ZX_{scsc zGR2>W>K|LD>UrODi_9J3cvXm8$+ff03}Gz{sn%c1L&SeW7qI$nA&l}C`Kl}O73cl` zP;&7_u_&qQSLHU@JcSY?0&(k^;_u1RRv~_TUMM1phRc!PWyasJsKd^T%>VY?zznL< zFu7=fU;!J9C7Q=dnqA7--+2K*v`~3m*&uM`3)l}`7$zZ)=$|Qcs~uuryp*GEh`Mz3 zfFLr@hH6Onz#USF5=!rQtXOLoic@FgSxg>>*&dfi-{oa(-}vXU?}#;!`#r_)4B0+R zL231AD5!b7{qkELl?doV*0Xc$E{i@r*j|Ctl_}Cqo-V%fu$ur+s(gKl zR^0UNS(IB6r|uRv!}K4?oJ6~EIio0IHw=oP+uagXD75~wH^H;l&fs~loYg%AbXOdD zE%s{V&TOw7k=~YwZ>UBZ;sfTn2T=v1LcbH^hfG@fP|TCB+Kqt--C*WnL{Zu zoGEr-tW~v8CFY|tbGtG%biMK$|ES$J}D0VyX-ENZ!YMY^b!g7J<%+D9(MXt-p$q!ljx^?#ulgZWqv+- znr`x8#@^)XkK%YrnA9wj_WXFy$&%dwHb^~{Ef`PF)(xC2Y`V61-YLAXz)Df!O4Zo&{5RGgwqk@N zwY93=97--CMecTcs~^rMz6oi!N(D(Tq4Lc7<=;(sH9^D&*Y3^d|1 z9`S{OSU-I_;k4i{96v9BlI4*4cjx4RNovj=O0kMmz6rJXaWJP^nC~W2C6%I|@);V$ z2olPRk?Pk!+oCI(%9D=8`|I;E@O&FWHisj4XcRbQ3YJgdtz_HeuJhIdvK}&1i!1o< zqFex5q5p=#!v>Pc6v*{R!gUzIgbX?SNG+%VN+LrnDPYT%oH!O#8V2);B3J=JxrEH1 z7T5_aPsHV*z~5(20pLk=*ikAidWg1CSrR5sqNE}gS%R|^!PyqUeP6Cg>^PVZbzTL% z-%xt)N@*)V0_21O9ihX%0f=PYTWsDktkS(*II|)mU>d4RAd5T+~5Dt9tw(z=0L@bo18dOKynXUWv1oMS-5Q; z8SaJVD$Q_}nw6E6nH9J*HFKp6L$kD#b!c0sI6pq$$L}v5kDGt)n|r)(uIqI@pS7am z&Ri*Ckyz>iADMieRGuCaDuh0aH&gvlg6Rc6EJ&2;A*9hMgYmZE+}O6akoj%fTrkvM z2umWugX&V^HZm)fnSSq}vApsFKWjX-vOf&DJ*T7DdFWY@4AK?z-%Ra)bj*Jv2N7`* zhkw?BuN_H6)*ZI1OEp9`3XzROWUZ*Kl8-Q6DC6e9+!ZaOM||{LUCIE+dOorhAXO?v zEM{2TmzY91aQ++upV;}%}^&!}iNTLH${0!h}Tv)(cxZbUu2@$YxGPDjJMF+ql#6rLZqITuy zIV-vB7kqS99eR=|n@+@(@UfW%r0d zqEPPy15qM!D5fLOweSSMf!9h=ioFTf_ch%539;YD8GCrR;}#(ygroHh5+s6X#!*K1 zl?CykK6~N8Du~CO-p_2#9l$_eE0KbD=Y)6K!=A~1B2+vl7d*{vnx~_m;@_!C4lz7S zKnAM;p4G5D;y`mHCCHw=WsUP-Ra=tl*%JroP{oW!S0dC;1eG+)=f?Nha*y8nc~&U{ z^6+Qta_!}3HfgaNnf_#`KkuA8q3HQ?``cqzv_7>j2m$MMP0^u8zS~vgSkn}mRlHzM>h-Z?)Me}(Fo6obl|@5ntS(LapYqZg!XtlvRcIIWvQ7WQdU_<1A=2@+bf~6Ku{&Yw@EY&(M)T-RmVS z`&52_ecj8htCV7NdmCdQyBLjL4JUHJQJ%*s2g!N*?X5;PQ}lkMD7`K_V8DEBpZ6>n z7D0z@{;wM+_Y709z_ot=1)Wikj`2kQ$Uid6b&5QD;RP2xFG5Ksszkbb`NFHCT+~bi zI?7JwZG_Bg5&Ag*ou|5sE4^zRBRM2`MX^k)5ZOvLJ^Q^)wBM`z$WNax&UU|Pl&h6pIFu)+J^lHCZ3_6T@` zTISdTc3lDo3ePrvt$r=;ueqon`>emdYWU`}5!>(?Sok(<#{GUcz(1|BA1ZTKan@~6Fq1K z1``yzV%FI=;H9T9>yn*u80Iy@Qnw@uZL*aA3+zY_cxc>vX6)RIeo=5&_>(>P&;AZm zdIwPcQo8zFH(WI0VV4}fJ@Wd}{kX>a|F~B~JVUS0vqklOvjBAREtJHwxP9qC2s`^} z&+Q2YYKZGAmI0ucCgY6Vs7zh-N!9G5d(j6hQ3@t|pS<=1IH@|`o|^Xj6H`kap=qv^zS6}$8HpGU^m#29|}PY(NW%kV_5?i z=K+FI^1;K_D3rP@CZCe=vvX{7U7XAt*evMPH`-^xpbudt6T@Dw4q213E>1-O~?PQSl& z`Qh+6Ad$|(7g|49{>6M7(Mv`G!H3 zexYY_iXVJ`K2~gsasoU3di3B}sr3u`@&-e?j*o;5nJX%I9$}G61BIFj)k4kns9dqI&E?W$2;9>NltUKox1F zmC8i|Bs8+8d+J>b%E;o?1q!A1?nEzh*#>?@2pIm?L*IHO?45l7|5JsPY+lZ0VS{V6+juJ4GhG#-K*&%pzX z5+fK#-&%yaao@~N=V#tVv!NF@?!C?1jef#29;2f^E4oI-puU{2{#=NDA)Y=G_iBi^ z@dt+*CVxy>yq$-7GDdfsV>JD@f96+%(@px>y|Y|{XoS}Buxz0|(9&G_exlV^2laUi z{kLW^Tnm8}xdAWLikBjyk%iGawWSXfw1mHU8FPRq&ht9nC<9oT`xU9zJ}Ec{^&y7t zafA8ShuiggTss4spuPM(`$P%cb^dA4yi^vGA4%W<&>X4mm!@KPRC`RXU4dj867(=a7?tO#nS z${gwHCHO(ZJZ`%6cPm0*2Xi6wi0Wlhvbqh2kBrLff$Ooil=p=nWs}XH2IY&`$G9m8 zywgrIryY90KF+^W4E{P;j6Q_?e(2ei?1IMt@r#)uAs`C!D*MEduX`RGK6Nn7X(JT! z&)k={qLJ^Ry24a56v%95f-Y_L9NCJIYT(nl7oMbGpaEp4t*+%Iy{yQ8VUu;2Pth#^ z{^J-eY7PXs_60F_!53|tqMGSZeAe>N46pKZeo3vlYpLVW&w9Qpa39=Ph6pNyGu_wp zHTNf^)Q#w#vB?ldxK-Q6P4=F#cvI-6<5WJdtV4VfK+6*?*?qa;qh^^UqcQwif)%$* z9UvS2axuZ+?WUS`H|+TkdMoAS{XDh3AH(`HKdg*2?EUA!{gZ#hP+YzFZHeb3^?BB1 zRqMnjExSteKRmlNn5W+m-F z>(|!u+(lU}S_Q%1lNLXtPAxV|I9B*@w%z|CN(%H3+MK^ME?vjVa;Q?+Fa_hmCN@Icb+uWS;A*ji|EYR931DQ_d#$BMl~x^mV>f zi7nO2uU{mAFW0|t)j_LF&11!*CQmKQ7t>EJ~f8Je9l8ZeX)Wu(j(MbRVF8ROwfPm@kgrOW4WwyXpt#Z+@#1WAnP(I%;Ws?sim~`~^$+XWE$?ODy2N*a(h7(5-{zuk)1r zsX#pi*U#>3S?64FVyjGtNlI%=u~p4rne|7)`uqhcxw^{T+c{Ddd-i5j$h+bq)+^nV z1<_8H9ik{V)bZbix)o8!KvG6$p%0~uOUH`}w6e#03c{JH+J&0AOInQj@|?jE@^7xM zEPIygKd19cMjN5&tD8vB)UQ~Cv1~U6(jPm+cV+N3j_0ey^?JKb=c}!hsU+OTep!pJ zHjMLm>gaXaFS@w-#(Lz;+Sa;bq}R`z^#xw(J3`4wJ*JX5JEi% z?jU65iA!fV`pN>SeT;{o2EHU~pLaA3)(yE zG`|YrPIyo0|FW*CAv`i{ha+V&`&=|MI&IOGu9!U1F#fHp%Hw*Nb(eoxLOs%_>C@y{ z`_mVqf<8sxe-s${nKNQ~E8m6{rLvQe+R+fXwp*BbP<_$moMlIIaDmW8V~Yo)NC?vv zM4A>h>ONJ}eX`EpMFVxMx}6Xu_rnXa&=1$J91sALh+Hs1QNetGW`gMD4&VSVU!zAl zjx#{n`kH3j`3~uzoIxy42r%G7knTBynKlczuao%F;q?=RX4!Xm>l^|R8PFRqUUG?2 znyVk9>2IEJp~cyJ@p(8SZ;|!mTDhc9n&7$5hJAbL74mAs$_bz3xS_L=nAb|@w>btG zwQzusRzkc;f_{sDJK@$aW>FW_Vg88S%7ggVmmu1o83k56O2F=+AuZhM&2|%(oNPEv z!>9%37!rd%6ydTXbl+8lqd*xt;mMnFkqwcJ1I9d($;qAw}t>CYG+!IkYn#}nBxHVd78d5J+kJ{S5PM?`qk5W8Z=a5`=^KK0EpO8yOYZn_)m+gmK6kBqi7;WYeti5=dBD1GI6#jvSO6y>A?ueik^i}oo#PxBukLRn=e3;T4B=${ zmNWao#?zjTySb)S{g=70VEwae89iln?^p0g-^#mzGDjxn1AO(vFDRQi%+(T&@sozTPa~z=voP%$7k`D*cvck~@M(%XLY9P<30j z#u0u|48*N)qs_Zj$5uMibslg}6LWvvl+V&-{BBqoEf2ze{*VmJ_59>>}7cy_Df9uMgG z;)jcW9ob|(&T~Go=1}J~Tz>2CY5^+V>VZnA=dZt8Uam(-KkpxBxLWgdWf&Q+RcA@+ zM`{J7hsZibUdh^D&&OY%=KSeN>Z@*B;XUrZz?7n4iVv4*pKfZ@LIduzt?_5?>GZhO zbMlrr9w88laZiw4wL^l{;1&wMda!f9F!6;TIFhD0qnPBurjR%iVXX@vY}HY?OGlz> z?{E{{E$D-|7RtKvA-;T$drpTRF%RjOM?0nMZ)F2`0Cn6~}xPXwn2GGrM&=aDyK0IuV13y`xDe~ zK4*}yE+5y|&u~;XJE1_LIHhF(qUq8)#js?+X$x$@5t57X9avJ2TM{3ZvXq~~hgm*B z8H;~iIsGIrlz@oNz#g}6H6wxzl|kAJ5L)euUnkq1(Yl+*@u-Km5ei-XJN6yr?MGXo&D^+KSsb4^sbHU~$JVZ(l-ouJM$};BfGOf1) zwh)h|VvGP_(;1e9kZ4PEb=VZx*Wa)`ZAk24=}BZ#xvsL6l!(F69_*uQH2G6)u!P+F zjs5wJc=TNABSQ7yyvO}dmgi!*)HJO2jZKA^i2V4z{KMP%J3FgR>UtXs+y=YzC;1m_ z-d(YJ0u5zwn4;T`J(nCXmZW+x*9b%qfowM?KUC^iyBB(PKs*b*k0(}$J^AAvT+U*c zk2`~tx5n|uLj!m|qn1#5AIE!>V}&nCO=^}N02(N>4JCLs5!-o_r9(HYCkPC9po(~w z$@smqUBu`o_slVP-FVi{2=?UX$(`P~ZRgK-Gx$|U#P3np6Y(RTIYpS>lP zG1~D6=U4{7tde?Lx6E`EZT8#sKa*S0>H7Dp^ApGOjUMJF&$taDypMF04!L_*BGJz8 z`mF?cZsU+LU5+)O+qMvNuM%vR3o__qnQZ&2UOW5ojxCMgKbiX7UpmgTL3y`bxcKL%e3)&zZkK|G_!mt-dwTeI+_1Kc1KWuwI_urkqA9@VADi z37xExVbMwTq%#U;uQ|R9h*J++hZn51%rrpQ`Gz8!?M9muzz*(^&Yc_=#2#=j#EU-; z{-P?m9t)MBbP=a+KqY;>sWq-V$omnFS3T$IHRHk- zZ`XQ=U&mAc5#sv^MBeVmPI%=Y92&jMwk>3nW(G8R782|vRzkMv5(s00*Xe0c>!1+u zOC~wBkH6@0=@Yi}7r)lnmz9x+l398oEaSdT^x_Md@4|!Wu(;g8$9j=7FXdftF8v96 zba!~^otJ&m9NLUon#fhQz!g~FPS>7W{$z9mr3uy2y6_>z6rdCw+p8)_!(Ixsd~W)?EsZ5j;eYQHMP3%Y35{8YiQ|s6JkOim*$33zWZ5uaEo5^+);fwv>ks>G^eu2R$^NZnDF>w3Dw&Ta-Y9TdZX-7zB_y4_s8X#xtW zroahyrEy!MAGP9V;{9aY{PL;ghaZLI?}HN~XY(#pD!rN8oiCovgvB#Zzq@1qwxnzK z5BZKmc8kE;A|}ZTtS!;UE-?#&RCjrG(A*Qj(!I{rv|)?U{Q^xEFVQu5>MC;a`X9;9 zJR6AFXm|&qE!EfoI6xo-4!BdHeXlvB-NYRa*8&w7zb|scUEzW+wqdX7g9rZ%+^Yo} zDT9}fSvDH8Ps`6~0Huq}?1D13{(~`Q{FTe}8D$?`Z+CCWo5gaKoGY^C1K*Ty{8^NMdPom5ea&<@;^-HlL>{OAw*56KhQ$dQ^W!)wrG+b`!0X z#z5S9Aie--045*+BWbyQ@ao{$=Dc=@0Ow7Mkz6$zk-IVbUeQ3WL?eFxWH&ozz1XS{ zOzhD!=f98r6tL~2_1`}BX*#8Ak#`;9H{9-fL$U zvRPU`Zk5aCd;xjH;nCBqv-^uIi1DO!w(Sy2vKsySGVSOd{P9@49sCF5ud27NM=!Oe zgC3`Yo_=xqk*)wsfM4|Ln_p58`^LUhei#2J?-ZD8!vIfb+}?@V(x_}dRi??>blI1p z>9?2d45`39s%|RcXzZA!C48&H<i3j^8v9R|9R(mmU-ni&QU3Tizdnaqbp>qvu#MDE-F4)Sa zJ$RFDF6yjH-gP9Kp1*vnn|hct=wG{3X%;T`JtmF1B$D3>2}h**FGAHW@&ab>n=)($^5`^DA*>q({}u)%=4q!*Y3o_+0G*N*b%lZI(1j=5!(;XEnW(5 zrT%*H^v^wf%4|8zcpyE~+`jDXDDX$jwToMj2fuEaJeZ>o&8BA8D@KmT57jKfQiQPm zLJ@A|N-Em(1zb%l_UG-Nfrm=X~>mG`P2;uk{9eBBtdC(#xbg0Tx4o_ub?5MG&(}ufF&`%_^A%oxn7XvOQeluF^ z4!xcBLHzeOso@{l~&!sZQ6Be3(+6#R;Ff~+UtGdS!+Q#&Ms?9xVpQ|B@?kpR!{G4u2L}?0lKNg z##0n<`?(YtHb^;jSnV)fZbXi@6sLxvcvJFxWpIM|ldfOMa`H#+Y-^Y9oFM6xSwG9s zDHq#C<)N+T+;yg`oMzjfhGp$)-4Vh3W37DPFR0B@#3ZgZBTPIx`;|ki)FnfmKWeqpg+}hm;fg3S8ArURWKIjG;V{cp*_~V=5`P zBH`NAj)MrDiZGCr;f0vGbB3*wOs+0i@A|k-HGzfDI<~1*sGhLB4pR%L0YZazZxQ#S zZ+!r`syp4gmX8C$w1uf3fCRUzsTuxIc{g11nv4@|C$!f;j=+}WClU#zu2Lq`} z?NQ~Xt;=U2O`B+co;g;ew<_0*(37F3t)y=;gWzfzOAt8L9WRMW+s@OC zvHLf_zEw?_|5Tvv`(M%CF6v!DT5$JbMZF!L#g30o7Os!sIRp?= z|4j1rKi|)YP@V+m^B}8i9wV(tw?aRvaJD*#iqzg{UJcXCqV0m?5^^JHbX&yXB*g(d z**rrlIrat{{80$lrM#Ye3bP`YuZ0?nUt@|nb*5H}WKji09&LX3Vt1N0^_!EM-kRUZ?IG1gdKIZnOp*4fulbLdCZ|gRO2uvtURmeC zB-~*1|LV6A?1R6}aCYXU{R&-V7?Dib2Mim+y%oaDdkv*-l`dj~kgz&Orj)O{7Ljc@ z87ZHhTH)~a^&qhP2%n+$oVWVM=FrgeNPGGsE+Cv$Xup7-1YUVRdFcKpv>q$^%<6bP z=Ce>z9i>)3ra-h88Jv9|cnGgms;W?wN5pvPrj1`zx{oh#!b^g8JrF(oCjSH`UvdqN@B@>Opj)K%+0ryAa&A(RI=t#@SuMW(yw`N$3$)wtz{UP z6;kN(NvL77*;Ym0HpGq#@$lbRG3u_xjLAQ)dF}R;eZI;r-r!$QBDcAI&po3(H@bp* zbyJJRf-aCo-l4NcybhfG@}xrIcSt;-aIoe5jxE&ijlM65OWhtzx zK@DV%6?ut1`Im$YUnE2pdBqF{jZ@f7Z~2}E%FRve*A&@P6JYJHxl+Ikm;ALGFozdF z+3CzH_<8~DS19uuWLHi3S za;1{h2qSQ+0oX71~lvtShu-<`u!8sy7q;3}kK;)kBr8s7ld`k-Y1L&{wd;agQd zr4QzCmHN2V7mOY?u}-5gZ(S=d_T8S&x^LO^*xK&ipzZzFUlZ5$FQQdG-kv!Wd?}QP zMJN2elzv`^almPB9VGCzQf(nbdz%5b?OjF3FOl1cjB9n?qaL)UrqC~Rw=>`ci@ z$s7+>wI;ye#5J#zv)>~9GNKgf>uE_UsfA>xV%eF8L-=h8j=ma*y#5R*gX4mA$*cNw z21_yPj+PPm5;{JjLVbol8+1;PbYSLVy(XpzE{5zuC%)YkO#C;MC^_LYY(3;uP6ak#U~3O2Zd(L$h6(H zq;uII1#ZYNA=BQIs?2I;=DH|V0a6^^@en>8S28b~6_9#k(5FP*ev+(v$V4PM(YYx5 zi5Nzjq>wWU!6p}B1;iLZJMPTCGH<=*Izo>A^ZkLdc;W6w3ZU_^45E*3r_lVc#5!aM z6)dwB?pu*u{#r2tt#$U^ymZT*V5<h|jey-Ot3v}BoN&{Pr*3lwue@v`6jBNCR9zw{1I3bC5l}_txLkpv zC^vb2w0fV9LI{&y16&>f;^QY(P?!Mx4$n!f$%5eOB+zpb825*%I?e}3|;206=9Ei%PC3UWkG6;l!0a>`Ce&g$yLN)N0UX|)3P;*7c>1}lXZ!KqW z0~pYPn!+4_YG`X506nYGF%p7YwOvBPRJ8?`ET9&*7{BdXh@x()58@}QMty*q$%8sr z&B_$&)mXppAyg?}SuGQm-d3o7_hJQwO55jVINxSiPc=kM={inms;HNG)LkE*_;Tl^ z;&}0?o*+3a^JSrW7ZNH*BG;?zg`JcKwF}&^!K#Wd;U8x5ot4;^&}z*-L6Y3D;%Uj1nZlTo$O6Sst)^q?B8>sYjf2D3+&f$A|7x$RuFZe=Y5 zwPl=)5ec+n{GSt~dp#GA-VI$Qr14Pvt)ab??rGdQT1`RM}IgkK@7f-fJ zWqpfT2DxK8g!!YK=c+WIT+nP`ihwoXDYwaAT-qN1jg&f>^$DIw2)WIs&T zW;|AFWrL!j`*y3&It;9V&{yxHVEcet$~qd20_-pugDX}eF@;vImD+?0YUD>R$v_{B zw6YabM)D3rJ|~0CdzrICxo^tyJK5~sLxbir&Bj+5Qgj^m$uVwZ{Vpc`3CCVu8i&1z zgRn+>3`#*7&8(y}cybyGynR+1Uyz^NWYny#(h+oS9wtY4BS)j`7#J=3O2*PDz_Kaz zT$lWmQE)N9Bf;`2$%lNrUn!CJxLjJ^8H!q?;hox~P$gWyQe#lt zyM|jAHT#XviKD|8W1Bv{I~5K#>jf(0055t7REA|IdnuSDkARQlb3(vs3`KE?A|V3n zPR9SzrFL%5-I4Tbu=D!ygJdF0KbZyQOeBYc^iQz1lgF~wV+a}4tKn3QugG_q%q43C zP8+EE0WL@1C%fr`?e*~w0xEY4NKysrzXj@zOVR#{D*SF7X`>|bodP*8Fc=sxZh`|0 z@=&0(nW{U7O`pDv>_26C_JUzUSHj&vW9R8hHbHseYlhF2)@+1>DnyE0uej)e>NyF= zMKM_py~MAW=A%Q<@>UetZlD&Ks^&q}aqq@keaP4&NOWha&M#?WKsv&Dz4;eY>)!gg zgFabizKNb5_Ea?#b4NE&ZH5D;zkDuNF6RhT=o&wXqsS&#rr?-Cg^@19%o}DYOqzR) zN3G+5TK9QicC6s0b&a*^Q@=8x@`+2DFMx$dDcB6tZ+nhBnA&kNPjTtW`=|FYs5^$+ z`A5Q9Ql2du{%lFH6|z*_fpYFZ#4)w=IRfl>{^d;odMj7a;+(Aeh+gtzJu+2$cv7>C ziHoP;z8Yh10yPHqY)w__Id16#Rp%R?+I3!8P-I3sl+fdea4j{0x;*FD`x=zQFZs( zcU9i}+VPsx3g!wYGq3(nk$B_K@n`RTRvnR4UQ}b$C5GTp!btaI?&&E{#YxJI4-)@cHAvoSMLsLcUQeCz;ml*izdjM2?S6*X#dgDagHGayqH<76I=}_f= z0kZ3SPrHT!AV_7>6TJk~5-#alfn4MDu81>lry$oDy=LdFJkMjy|NU(4ocdkHa_3makN%mEGbzW@TudXvTHKk} zmjz{@X}J)ZEIDO?RXScB)kZ9P@@@LORkz;yP4$8}r`^TwM3SHRN%>{E1snDXp$_)?}onM9Gp01r4XWZAg0iQ`#v!FhaU zE?`jRUnbb`pOteYr=F`spb$3MiZ9?t4ITwP%RT4KRNn+16AJK< zY`cGfVD;7vM`eTGFEDSb)6uUyN1JdyAnz-S-)VBHj*EBhQSjSL9BI@4J3#NQro<6# zfnfE>gNnT*@a zfR6F-N3Q2y@UitPokGf^-%|B!Ofcl224r^V09DsyFkO?nDL9RD-Z4e<953F|qsggB z3_k-*#^jdxh0jkvYoI)LFWm=`v*&|oW%$x~iZG5MbLq!C^wSP5kd9|w8)mBN8oR$> z;zQ&b0zWrAx^w6J-IAqgJN&P6=G%M!*bV%+t}wTkQ#U8SyVS1HWuy)KAaJt()g1-k z7h-zOFPdjZ-{VAos@4m^#hd5CrAG>Il2h&7tZZ}Xp?8I!vevw^Zl9d!NvT_rwr29I zzK0w0S-qqk|IfD~wPZ?Qu%K>&>Al{yKmrH{)${d~f?|L;a?&$N@n zc;wVU@=YJPWT5&ybB-?C#gJEXFQg+e{fF)?wn86VWIxb3rm)jq`rXliz29TJps_j% zcI#pX`wq5!H`rnLkA2_0r{`Vli2W9JIiwKwbp4)*`!V`4R6Qb9i|5IJup|$dliPeH zABw7bytI5V?<-Jqo0$>wTeQ5SgEiWE@=Maq`+kk7UOKCV+E3f}w-)CUT|K0;J(c||ld^ylC@J5%uDbfN%2B=J$D-SV zuYW;b{`mL7E4vScyDYw4zx&|$@{O;rvHf$vK|_-nf?c4C2`ftTE{bKv5)F@9$NI?cTQ45eR9sywm&Q( z?e%DpLcuZX#HUvSOQdc8XLP*uu*|j2SKT4|A0bp$JRRtA$(2lr&n= zFP_cO&mDqv!V_&;G3w{f&_mOzMB5HXSFfQ$d%o3rN2ZZ1q`Ok#9&JbiPyK51@h0Y|>vm_FlwNIh#Q!R>MO_K7jl zdUeU=sno;Ehq;tr!f3SlihLW!&E!s-yeH}%*x%~|wW7jHJIuYJ090AgUmzF%R@ik?(1BDWGPBFs;U5DB?TSI@k#R_z^Eul?^d;8Yb z(^r21W&Y3Ts7%aS^yqt(F@yB!oyC`v)~u#DQ&CI4UMaZr&EMUY4qq}Z_Pw4_Nw>2d zyB4eKuo%lmTTA#e@?QF}!(6dcXNMWSLo_7+-K4n8IV|DOiU)0kH6|}d#+S`=X0`SQ|-2OFc^rF$CFtybMwK{!2XvfhQ zIVVv(d&6Gp+VC-N6OWj9$I>eZ+4i9i?4Q9$Gme&g*}rF~yzKs|^~#=?J7~p5(+1I{ z14|@Op;~;zt%7#$3|r<&3Nq^kRT;-WZU6O+R;K$<&SFn~X|EAFF}3cI_NF3yT`#P_ zeqM8{2UhnGn9h_~w*SA;(SPuCQ)z2Y1ykSZl1|w$quynX*Xg}J6Zzq=@=kb6vd>z_ zNY@NLPYb0bwLksr?s;OBBW_Uc>rwHrTbmoy?rSrqdV4{SaI@f_GC7B%IbIqFCZZyy z03F^zRpi`+bxum_mjd=L>8{>)qzj}C*YNmJ1_$&m0`7sCkjao}95GdJcmDpDzhDK{ z5!2@BIYWA{d1kitk#1R$Y_%2Q;Ni;@*CW?Teht@n(!aImUCwy(KcnMgJ(ORorLSr1 zc+c}?Zrwdjy=->;g`$V$_1L)(Q~65x&98Wbi-@8Ile_uPCjq7?2cl2ZGTc}NA_5Ct zI{Mv_wDqmynb+9hx4RKteGvVU@p848-JC~qQTEk^G+hy?$YZ@y?y*84Zl$WOv5m8* zJdCQ4!*iz^wI9Y`R}$mah#vHP0eDa|3)@D2QrsUYor+)G_m-$5_=HGXZIBAq81&qC zrMlfT^PQL8+!@Zxhqc7g)xiPUP=52rtj-$}i`}#Ss3s3wm3y4({7k-BhBfkUnlCX2{+ zl@z{JFIUKxa%s96OvJ6xBn&5q)@CI@{)wYLXzUr*`E>_jJ`gE$3cyjTU{p)?9l586 zs&sY+JZb@SP2;)T&aEOBQs?(4)4W~GA5;jmtr)qLT;0Wpv8lM8gKZ z#9Kw)?$oXnzBK+8-Bd<>1c;tu$(OP?#u?Qz8FYF4Isk6UrQpL0@vssJD}I}I#z2Fp z+{;(kZnW_~@{_%=#N9_s)>?2}{d76?TvB-Y=q;zWQ{JinstGasNUn=>smkB?$NqQg zVHa58@51-VMw+an`8^2LcjK|<}%>aCYa>bdsnH>@!HapPO-t9GWb+v1&b?|%D! zP)>8qHIr=ypCo-Gm0$g3U?P`d=>(0^C z^R}3`;wJFK0pHSfcXR;{(tKyd?>}4%rE-FHYL}dpf8pS(T-aCrHipTA4`qgK%?<3U zc&sjo`Kk2$qH>p_X-Nh1bI9@cY7;fBHoRuNoE$GaAocT(z;zjmtD)}idnl}pk++w# z|Gbah@3jItzF{wW#(@RSc=^u?@Dw%VYUP!=iyJcI{2wVp^FVc~B+_h^KAh3rSGapS zR?hz<#7Vufh#vNGATGx}#8?7v*#y2+P9>{t>r zoFw_`;w)1=QL76FP#`gP#e=9Og1Dd&3q@{30=jAMKt2Td2MAk-7WNY=^X0K9K zHtq@G^4fX&UoR<;DOmSrtUCq!`|v9qzLl4YTH+-ZYD?EgAghE@e8A9kKC(FCufu#; zvJi&tMs|$=u^$llYf?5>bA%&6i8O7XR2~PEV~F2&;>gFh$gb3XW^s6E>@?JWr(&>w zM7hcBD9q9UcRyO(QsL#z!=1Ma>Df6m+glK&*dyvQz{nG?5uNM@+HFYdW_b-@zr5C7 zBke9T%B!B}gjqm0q*-@4MI%Z}& z1xw$OF)foZ@qKcI51fcF7v`eM`S8Pddp-3%dJ1DJB>xojk0RaLun2t#@>%{?YQ|CbCqFTUC$@PKW@hlfr>PDTmR*<5H_}ZKJQ-$ms0| zIV0dd-&52*nAng1;GT2U-GEpproyjo^hKT&7cadjlv(0`>W0!HATsxJ@c;|_5gxvT zFQ*DEnnQYJ zXjtqKtMo@e?^!FKs*J-(y;$N#Tma%A!EZ^Rv7PQGNdrlkh#Xhvc{YdPD! z7qX#Du{En(^S2CuB2R{7t9G>ZP6`_U^G6ad&|QQkt_XMH5S3IUpiKaf2s~HJM`I#Z zg@pX6@Q?H++&yRFkwlA`I6Bv7vkQChqwN( zOaVCx{y>(?RqYjPB_CtaQ5(roo5T;YGeFT5g0O*t%oU!UKpExP`4zK|Isbc%r~CcqbP znt(Os7P1Bsg+L1lDWrX);rP7Thx+KQZ>$xuYtC4H=KC_3ulhZ|PHUF{&R@(U& zjOc*2hhmlXe|JLHvY^nPuy>O{*iX{8pG4xLh3`MDBMohU*_ng`eS~nqOCPUuk7HrH zly>)_Q**lR@33;jKh8h_$E-uFt;CiQ8Ot_dQ-#ZbnvX4+epLsw4?X!(e<}tC?3*+zmU~7V-uRUGE$i^xHZkqB7w&5!j%y+$ zps0J1Di)}ui~I+hR1C7ixJReD6bVe|a|d(m_E3i83{MgSW8$cGJToe=^jRbyoy9jYl+-d>mb zqXZ#d774{XT4xvJv_~0-TZQryzhF1TlBSL2Uatu& zDu_sg=QpgRONJ}|CSdT@NETC|I@@4=R_g!s1Dx@-J-PjEb=FOrG-mdU36{0@_$A`sX%5u`>nJ%ua8Z>;{v z3o`M#-N10QKV3CM%llpSQ;~z;S=Zl{9yFsv_cN@`Dzbhz)cvAkg5=zO*6Is2#f3~*f?(psJgTmzJZ+>I^ z6(+Gw4^c1eFbCH2M&~5>lG!qWPiF-F;so50T|OTSfZ-NnWfpyT^v8LF&`tWQ{lT@ME!Stjts*&h$u_m1 zMA@LNdkUh;MZ&t1H}PwN2PTD-fugVZgvykwJC6(XUG`U7d$D@?(26Ga6f1J*!@+R# z?jM)Z8eMM6_4u|w%xM=oWRaq?NY(I~3Or6HfQAuRExsIb3f0*5F9;noHV|EEK-3#; zE+!ZdEiI_S+}h9#$2+Db6@cFtLJWfY?B-QbLyk{!m+Pp zm#FLJnwk*q3e!hs4p?-`T>=@VJe*SS$gI_1DtMu!;Bv>o`Jq1xAI&F*q*p$yEqJ!B zguZI~&?ZJI5}xWlp;L782OB*>IL5C`l#*tCaS^s4ia3W0b~61QM(`BFVL`K>oTZiO zkr)v_tPqf^TxNv}my|4ee(BQ4?e`&_Ouhj!YBvV`8X@#Y#+K8fwq?rdcxI?fHf+hdvZ%<&_2}O&AsrL%MS=p)&Q(xVotIK?t zRK?d*711*2RNjJrf0ueSj!#|NF3hz)POf)21V3Q87Ve|P63T%SU4IqWuo%hB5IyS%lAeu8> zwT=|SQctZTNm1)eLf;h}nl8V8+X_9*M4q2bS>Pg(iLJjZ8+|U$x?d9DlDSjRJJ?ie z><_Dd-(GY6-TL==lC$<7N8r#~@SA_P4|2cBb6;F|{7QcDnzrH*i@(oF3nVVD?44VZ#4g@4m&QPm*i779aAl0cg{Gl_`qVlij#P(s-o?J z>p8W9ITl62aUKe`WoVtg(jCDLI}rghc8Qv%oKZ>(O#xi)+N9-n61&&OL!N2{UW&OX z1>CTUNc1-i>I`L zZ`GJx*}U6wFrSMyAK7})>2l8Mg!$<9{VK>>s`A;9IK`<8_PAXe^osFwg>THy;Y(K!~J$Itb`AjU(b`~XNx{&k@ z*m;vy zi1w1{(Lkt3@Bk2jOQSu22)T`v`2{70Dm)X4>QZqykua$+FQ0BoTMvkuQE-qgLOUtr zQpeTcxT6ceSsrSU&rZb0$8$E(FRUuMDJW$z`gGV)zL@6b4-FnEF=x+soVhL<8skQ!M{os@9$n;uL&D{t`C>#$+UsP!#O|5VhPuYG)I3QcorcoN> zWUz3O53p3Eg$_#S?QMxz(&#)Z6sIWm@4+K>`+MtYAG=_$gRJm2_H`aY67|lv)e^ zOu|y2bjEK|QkvEN?`cQW*|^~aY^=m{y2@GJ?=)%xyN(x{^-+9;vK^rpqwH9dFhNgt zUA3llk9Fn)TY(cxs+Bq4O8NCB$TRYVpN1Ud@4y~%=SdX-;|R|}#w1Kwm%#$zV)r~9 z<)`-39B@=-o3F6b^390RsF0yj@biQl{u2I;b{#U5Q+3c-kk>r zCjlK~sjEO^=~(P??)&q{`17{fZ;aJib$NUmn(Vodo0bxP_8Mcde%AfZEW+kf-uBSP zO##bhD%lZxM8tYgwN>JclWn6!J1-?nubWqJQFv&Nb(p|SqYerP+Dg~b+mTx9wH{o} zKIIehk`}l%>pvz3h>=ocTYY+r?9H&R27x5PmphbWZ-!IhusDG2e3BYO5 zdPa%zLR^qj+*E*iB}9&cgN*qzoxBIasCHiExH>JwATeZduFONzGd!H;bseI{6UUH zL}LOG{@kHd!7&_zSt^meM=d|FUL+tQIfLmw09L~Tu`NhzDaAA-e7s$>;8Uc0U|qGB z#S}kzoG3&f7>lzAaC?McQ6&fNlG!e7O)Hi~4uJ$Z0T4ODBp-DAT z>uKXvM#aiNx6$P)H!jQUL6w`bqF}sB3p5H3| z{;uF<=Srkm0GJe$0GCkW#V0+G$$%%aEOG_$TN~V`&)R7ifWW;ZAafUHGOiz8D8 zRFO{HYZjQ0Nq}mrUsTLzlt_*fV4-9ukz!V{SR#C(klSCS+9zaW+lY$wHI7yf<0mlDT{A}IvNSR+>jxZ>t`YyjH*il-!h7@|^#nsw8MxA3x2{pRoXk=xHUDxyLC?n}Rq zT<*~dF#ot;d(4zA4}qzX|NF+T!J}s|_o-N%!JgM+O$x?QZi@MEi}=%j6WlzR zMPiV4`+M!;3P?eOX$Y|C@$6()2FH1Oco^=eZYZ=HV>+DKizWl6Psp$putWuYU5G6X zAY7RfI>{GfWi8mkd_zFxu}Wdh$5d=)z-qsl*^fU`rEkvUoINT3uQ#?>yf7Z7_8j=> zWhV7MqJRR63e}<&p$JqUHslhfzHv&@HEG?59uD&)hzq`CS7?f~p~~=qDy~JIhsLrE zF5+etCnzPj5^AR=0f_XXz7R1z2>lp7Rh^0lo8u>8BJPv$Ojd+SYdt1$TogA9n8aU6 zhdVd>2?ta`lq86Hc*WCW+Rae$SCs=Le_r^G0hH6;EOCM9WChQ=HKo>C1#9Tk@kIX6 zGXTT9%Y5!T2Qf14Q18u$D6yUn%ffg??zDVJ2oV{C1&hStz)_?Zk}sL%F|Q{16ByI7 zFG;2P+B8gI+&8hmgh~ZEQOGbxM_#7^>5Xs45Sob?b82x+33>b8$?HffW~mCG81q44 zlz$jUh|_B8Kazd!rhC;Fm1P}1=eQd}GNi#l^`g(IMKY3eiA2=NtTz)BbdQgpeI9kpxc#K=klnTQ>A41(HPKV=E<185i_&_~g@& zISinwC`gtGZ>iZA!qd)Jw$*wPBE(FkYrbwFYo1yWg&+go8W5)VfN9F<7N^ya=6 zDZ(!Jmq7#ma0Ij{FaiU#^bVxi1C(DivZ*s3Ek;!0z=i~jrRbeZCHyJtH;TtnR<+CK;dunDLb`S;_(&iF5s6g<8 zgK9Ql91DoUCrB_MRkW(3SZEj>R!BzhcJd_Q;4M>iS}c(MW9KLaq6>S#z65#x1D|Ft zagR7&N^U_&M(gP@&Gfr2+cHfB0+;0Pb?Pz~w;jM@bKZZGz{ zGVExF=$A3^6#HW;Uako^(}U}-SsZa{8vF=Hyo7MlrY_nhVKP5>8C5vOQ;Jl$6%rXWV z;!6ornbKa(?Tjb*&G@uZi5W)lihQa>%2;{Hl`fvqF+sz_8bWi(#5+gn4;daLBWc25 zyK4>Iutx&AbXdzU*bdMEI6yFN1QPV&0awD4s7jFphzUsp$4D>9JFZEF9@7`8W+KY5 z^gLA> zDRR`)g=(`h`1-kd#&`4awLyN>0I`nIt4eA@!Uu)k3gqCR4g?`{JXn(f#O(uL+Y@}R zz;)(e9`#TH7TmE3l%@lvJ_04TKzK?z9?;9vrBwurmC>8qiiZ(`tf5sCO= z1xbMhX~B$3j+vu*)-s3t@rXwP;#7Dt1)@txHe>|!J-ga^3Y^YR4swE-6T;=If&ZNY z%9Fr4bjVZ|NR17Y!IxV1GM8pSU0CD=4qqn$d4bB;!vI}}fe+Aua)eSjnzuz0gu(*Z zQNTDnq=XFD!y}wO0FKxneY$9#AbMPeUH9r!e=g`?6uTUKsD0WN50V zBz2e;GiOTHXL9ifDgh#q3vp-Zx}LikI51lT8@tvpI=#kAUe0nuYxLj0kfB6KXBbHT z#JSl}lfB^}JgHZf0aRlZT!`u=DCpMpgD&zh9ve3loPPkY&zIs{i$l=NjoHymJ>QHageh`|?-&vQrL zHA?ha93At|Ny~{YBWZ2M<(DuInT9K9egb$CW_=4F?}lgZEH9_bs>USU8e3CMHjr6! zk;d{=6m54O4)B0~7oJoYwnUv#2Y}A!G3_fs_N&f^_&^0Ou1Zlf?(RAr+RSt&fgg%x z9Uv|6_+0JjZJi9D>Q%>6iQcMb+fDGWNGdE*nG4myLTYi)sfhf1T5Ki&!2@W_j6gHS zV3P(2LveWJyqNZIOb`o7WkBd*Ryf!-pOOp%EYEstfmXoQyhi4or*?Qkg64G?!1 z%_Df&fQc)1$tyb)0d(ZuT?Q|_q?Xlw_xXU#op7}!eSx2JpzDz{x(n^bjrZUMAOkWp zJ)sZBDp02fB&#iGP<^rofHLIL?3V?A5n$8b63Qn~*a#@=CdiQ1eq=l9`Pd)=3gqO2!0$luKZ=Jc{ zZ0W_%FYkE@{J_1sC;RGQ;p12w#DG(&hc~&|3seW()}^?ZkrO_@byA>#3<<9fkiaf< z(7#S#?B~b2bkO3glZnb3-<}YC{Bd(S#25gt?R7F_!swz<-2lF30)mK#JT*fUG7Sq7 z{Ca}@W=aX8?a%Q2qDOw|`du7wy?%#JvEu3!yo|2-lE_y>Gd6U9*Aw-eC67{UUR-s1 zYsA&N?snWP?5VZH%dZ1NS;>o9Pp=YEo;I}rB{{d9xct2C&Ya+@$H}ieb>BU46Zp!x z8;lviQya`lU}pl1Yeoabeg=Xr2*EKaY1q)-xWYR^`n8&hK#XDQ!cj{r=MzNJ0<@KJOuFv8AF+R)xR~`7<5AlC=Ji1}?dyBcO#hSpf;YT0HsbJ3*j<4)>-coQ?n+ zGbVAtU_3Qlx)+#=nr~H3=HZJzPj9APD!Qs(_VCG$0rvg<-7G@@B#DjiWIeS7KopC` zFMT(x#EMpsd9Z(kxq+GXj>+;x*E9~?e-oZa_6w$ny9G3wMqF3-X=N@OuRS&G^g$eF zA`CJZF}4x0RQqc0f$o%8^{;yuYNaw?zSTbV@xa%6H_rbsxSj6w<)hWDAEq83hq(Xk zPg@Gug|3%TEQzY%PvKx*G-2Nr>`wz*Jh4hUsv+11Hf4B3*@QoZ{yY@(#$z+7dcdpf zZ=@~_>PUh368I9>EL)lffdMuqfPEDFSF^=0GPqxT+kVi~_m(9ZjEjMOR3SIo(HFN|bo0)=61w}jL*bq%c^ zDSG#}p3q5Cn1-H^D)%0U ztD72%6vHb|Qy!Q?k<03GJ)}14^yBw51GeZx*7gcUdSTc$;@ip^al?XD{nGimR^t@d z&ubm_nAVEmF{%c5-c$yk{&xrH(^VykkGdqH@vsyv@iu+rP8)b0XJbYgn-`R;xNH3; z`%`cDm6*GdCdpQ>^#i?5qD1Wf??%T0KFv!qgoKM|8G1GNv^i~?2k@jbK^Sd1xtLEI z*AL>?_gT^z$H(;#3cZPF<5TOSMxHEYn@*w3PX>fT#Zp4n%A{f#Yt>qrjuCv)Ar#j# zu@Gt-OiDdt4ay>OX+)@qwfC^0WJEI>COd~H#u&lQtd~j0^eXZ{P64c=Z8>=5x|cAG z&e}uUbY7~HcKoEN!2$w&lCY0}R4dXJifgoKt3W>7zXJ6errRWslhpo?#3@U>u4h`1xGXIQiWjP$i^&Qdw2AwUr0u1JQ#l88aWBOSnM=_R2wHv z^C>s;nw7>rO~t}47J{=PkDZBCihZ<>TJv@e5TST9CwyKyfsQU0kHWRzmpe&cN8l2+ z(qK|i&1>c2rPy_+#V|_S@LUkxe{t%Q-6y2@HWfs(;t@~FlmJB$_8N$b$^teL#L-%7 zF7g|g_NCNDq}uAwas-NCFBMrKTP4xsM4%{*1W69|QxWs9cKB375dG;M` z8r9dBpCYm%VqIIURS&5QrYyb_3od1}g{h}P!so>T z;)q81Ma|*!;+;$zq(bp{FjAvDu0+6s6A&e6aW77`_P{;DzulDzTtp?Vn0c;4NrvHn zS6XIV0U_V%DEISS>%Bj_8Yd-+f4%O%%-wlWK>=jF|CQVZm7EYeR`C6f$$tf0P-t42 z=&r92sHDk0Tm#go+#KE1C|7A$>>TEKyVnmwqHZgZftVa7*qkoPuTIuNs1xAVLB${+ z9GGu`fKnut@GaA|Qihr6OOR6SBDV7ZQ|p~BQkhm%I4X3j9L_<&jLi&%M})F}b}1{(0#AwIiGIBu6VcPJnxoGpPqy7;ynuYz3DLD zUK^DJ&l7n*ovOYUU7{1bTlal>?S1>ayApf{^Lz(leEWmB?-KlZ6i!CD??9wVV&L68 zzmaa=!Nll9UOd-te9re$Mpt6!=RE(3P2bD;?-CFH+xKU}{1_!FN#U6MfEiW4q2tj> zk+OdR7VQ0o8@iIBb@Bt3WBjh1dzTbz`6rMi^+;Zo#5T9q3J7cQV{pgIEPbQ{(5n$e zgN4b5^;y+fHO8Z(ue4z4bwY2xk6pc;MWB?O^FM}AyxPc`ORLKdhGU;zd(@SZHJBgz zDaQZCi+3qUZvF}7l>1M-RY}dgn;*8*?SJ!QbZY*qKViS;{BQl}N-g}HfB5gF|Ls5T zQjh)na~J>*V1iXCMVJCIL@i(v6+xw}fNAMXN`>X$aBM}u zjFM_vl^c)z&=WAL6_a*6^lya3e88MxciM^Mf=HS70rLkp(`pO<@=Vo%3pT3hbtej< zl+^+kU1HK3TK`6=I|MFycc(WF7DQ{u2HpwYOh0||Z#2Fla5+*nw6eXDDq57%t(j0KgkVI7 zHe@q9b#BJl>v@Z&W&$8ypg4H1^-9ORk!~~Dc-M-&l}_C(18D#dVL^DP8EDiWT(}Ig zU;{A=qnD1j9S?dVb>`-7){rcV>Wli*Jexwes2!k>a+iPcWJ#|3vNSH<<+kV3D*&U> z`NVnXBL7!y!)r}&}3`z}q+dn#0&ASQR1uqe*r z9Lkt@D_6m{bbl~CPYOrizyliH=Y-zT9$b6Z=8%>w3OqLHGST@mL*4MnODU&XP)<8k| z{%7Fi74HH91|#4o3`RmkL{m=gkg|%CriQD&4#~v8!$`;0P*YD&6{n#fqJ|UHRKV)1 z2$^Vz9@G{;q$g>uFKuTa<#0g8*+kC84CiWw6N1&%}(LjUT>{)ZLTOG?-O#IX}L?EaXC!XUz$>)Ov^DMl0V|?T`++uuB5rR|Fy^ z1R|K?8SM(R3m~Fq<4d1wr zK5^fD6L$R*e+4A}3Znc9%lvit$S?Ad-{IN6BaZAw9r+q_p@C$?}W?&xm9vENBW zzf=AvOx^vTEwyI%e|6$l=84}~C--ve_VOC`3L5wR=S)4jU)r)?eqq0=W52p{ucmAN zWcMFh?|#F;pN7l(jl;j2M|aPS@1DQ$tL^q)*UX=b^S}EScQ4=h&bYff%=&%x@t+&d z_HMuYJ^5yD_U)hf&A&?@{w;s}cklDR2b_P8zW;mt3(z4vcz|KFQ^ z?yEg6&!vj_|GQM>CV1UZ8?>m1bBp6p`|NQE!-SXruP)Vjl)6x^prB%DIZ7mC`{m-5 zp8FRF|38f&*pxTQ0$#({NXnsFywX1;&S#0Y^~h8Iw8qNibw&5CmCKCnEa}_^ z*enwg>grweui@531UpC8oi#Lf{i=_5c6OaRenn%QsIiiZEl#^M^3YjBPJ&aK3PU`r zCO8{wY!KX=B3en~wUNVHHfROaF_*N=a`e|rB|JzTj4az?u-Ueg1 z!m&mfERd#!ql2DauveI%m0&$G1!FE8vyB zW!r34inXR9x3MwZ`;cDQvF+`CE<xSxw5RIw3TQVA< zoaa&LOV=HhYu&D|Po8x5OH6KXa^3?W{T}`*<_9)8#IzLw9?lArdLLBCd}K6&&Wr=y<>n-1}mq(q7Jf6Y`gov2g~7#m?kk7 zY&a|%0gKX*ctPdheTZnEkV5JF&=~KqI&LcdSRUO6p{x7W+6{Gk+{8EPVH52c_wVy9 zc4+mf4DMtYB0szwB}rS_B3}(Lz=9TAWP1MjT^E=*b=(1=aO|ZZTq01!Q}c<*3>GYC zw?QVK388!|v;76k=_Y#1^J_O}P-jXo|j?j*SkD(n~ESsqY{oO@>PTkTa z;Wlo%=D>>SG}`bk4vg0IxMA8_f5_n#QlsiNwPfCqgImCb)GpfPvPf5tej#?cM`8z%{{08=UmpG1lWRPVleY7xnBT}?_LSev@!92= zwu5JYCy2s()7hL}CAKn;FI^ARMGq*42fnPH7D7Odu}LK!T8elrm9!A=j%`UurWv|);|r7j66 zFjFQG9pQK<=((55fznV~lJL1znfcSpP78XC-Dktj#u?3#&l@&LPK40bO<6TD8fe_z z1iv3(g9Rll6<-2=LaixM_ZCMK&Dof)V=E~TMdTXqKHK<@0ZMtarZNM|HUxpokr7Pb z=)3&HS=v@kVxt&!*iUrI_L=(~Irvh$Clx-qBkaBcPPb&s$#dsF0@yUu1oK)R=6LzE&%?NiLu8zanT1?&KTscKy``G76nRw*;V7_~S?c#V2XSa(vNeVI!fso_;r?cqTIZEX7MIi+QkS*@yLH+rsFR1J4wEj@zg z&z2J)#VB8Dh};GIqkDO~S4P@rwWD~Mq#0dtVzLv&?@rJYKigEWAopZa^bG+^4i$DT zaq>tQ;jua;JT%Yoz1dGrg}KDjRtfaRdSyA0MsBZ7t?ZeVq7v`Q; zm|mZ^3}ME~67R5KPalfkT%FZT2}en@|l|cd)P`{`XoAwVI%vR1y#cQzHb!n>?J4rfpnUyhN_5#oxu!u2>P7&~?Mefwn~od(mbxpcBa zOXMAhSgtEkWf|`6ee#)IWt!;ZWTpGab|tYU91WJB>B2gXwS`{*5OAke)2!Vs2Hh`= z&(Z+znm(yK)Ri%vFFDzP`(jq6zWVF2FYZieEY`YQqZ;vZIYs+}x04)`JtGWEMU<0D zt$(_NL@#}G^mqo6H&wvIai+xVuR^Ui+W6xtd4DNL&`jbaYS-wINDID9ttJ&)AlF|A z6+~DEG-2VlKJ|&Xea*X?kh`2%eyjBX&j{P`P!ve$2J2FaBCoR%Pcw;r6A>au_SdBF z1m$dws?1B~C4D;RBvfatCW{ztO**H_Z6%c*EE$28SkMUqYC{Uzx}NaR`&b`bF~(7O z!sFh`2HsCj?{NL8;Jm5Y4lGRFHXI#BD;9RW3qM%t%k=sUl483dh%JdPV}>tV?nS8^ ztvtJR>FCdEpWJqbkIzZ1^xBIIO=c&!+DP4FIm`rt)~}ZYtijTLkHmZglHMoM#BLW| z!LYs+tz2{M&hHZ7xlWW#ClMntKqqfj@y{CVK5BHYXg0gpr=7mZ4jlqAQDK-;vS


%PAa{NVbQ)Np&(w4OpnhiBvEh;=MdZYFY=TG;IgV?yOD;)40HKWo& z0n0HxsqR|XmEiyOD<;d0C%BV^sc|;dDZehd2e}+QzWNu3GfhLhUPDMSa8Pv`u^so+ zs>bv1z^-dSgvm3AG7k8C_q(c(u$-_BmkDoAjr_mFEQg)snl4%6z3u>*_=edK`1#$kD_%xr9G0EUQBBANyZ1Ef6mFI+uR>ZmUMgpGLv;Ae9%&#Bpu@R&I|zj|E|vC&7m8yl>SwdvyL zEikSYfdqW;1~`u_SaMUAt~(jfonhYH;iNq6mI4NA(`4biMzLmqS9Vbm8D2nxH#b))ZRsvG=7(~iVa(#K8F&^YFbkY~ z>nR+Db%<0lj%GoBG(uk)TSY#E`qH3YwBi`Xar@@dTfdJ75;4!1g>TrHRUBr)6thf2 zNld!J@W>7-wu6km<8$I38E}s&#Tq~HQsTsmW-Mz#>dCn4s#1B?7HGH=ggD@^Yh)#9 zOWk{Ux1w*8 zQQhy52QyK(sOX0j%qv#m8z$z>X^UAp>N49f<%7&90DYHjJNp~+jEs?|fi{~#nsiVV z0&GCj6o-&W0F&~SNaXJ$SujG!gELn*)uQ_0NRn!xv`m(t6CVtN?E$rV)whn z%e+hd8`}GK_QR^0`z-Vl!@}DUv*3uiPi?h}KNbB9h&Uqjpb)kG51O6QMyamUejefihF~GUZG>yIQ}&({~HESlLb;GfmCTAQ!=18${P9H zU+t`>s&IhjPof^JP4fBa`dF{>98=W}eUCXe)D@K~QO&3kxcJ3((KA(JLGTz3tblx$ zs2Qb~S0Wx?9|K4=RgcnJg#PwTcPALQ(=^NLVXW@rrYsoVEXyZvaCKjhtclrIZGF8o z=puP(t=i%#`;G%|eagQ6KqG3@q>YK#eg_#u?~k!l@_Jp1kVDdCI}$YZvY* z7>)zbcSxt)B>3O5dtXL?)Bs>JinB4nuYOch@TZ1qq(*OsT1lzO>o!oAvzOl^&;8@N^ca#J_bhavw3Af;b7qYLI_EsOVNAyYh**YJ7 z>8G!nL4=XanxaRtvX8;2uxQ$#U;e1rWY6CifZJmBQ(WsKR_Yx(I_excD&NBPOg8yB zdJ%yB^t{_367bDAXq1AQz@zWbFF$9MzIDRfVKiDP_uf}HkgieV*2}NJkbTj1Iz@@M zrX{zfpt@MD*&d-OtPG|+JYCg0URaf`@)#uk8)6BFIXspV%1SBZK-3a6GIt|Y;`_&( zuNZxlYesYyP~9cWjP>^0S1Jk~J%y6+DH~z|St6R(;e%2(zPq9&Suuck0xUrK=EFqn zOEM;ytBDEyW4p@E=60hOspuMe^gNY!h^Y&PWy@@f2@2|i##II$%hA026Nz48p&w8& zao2A?qF=gBKp8=MFX2(w3206{=BF7yj(NIE3QQA8hvvv7VC5hC4)q&Uy4n*8&QwYj z&`$)m>ER)Nl@I;5>bLL=F7I#Pi67}PE7q<-G_OwKgAp)XwQdVMoizCCS0>0WB_;y! ztyv>Wc*a`007i%DOQ=3NH}f#@^kWWsacl75wXR6iEgCF-nt)zppqJU`Rq3%s68aVe zbp>!a>hG;DT86^_#Z2c@;Wtht-#~qK4oXK~9eR6kf!y=rJsQWlW{Q^+bD7}c_KlDR zlUw1kPk%NSo>`DaA48(gR3CKt=PPFy*q(bw>sty#a6^GXb5{b8jXqzxq5?zx`kB?uoz2p4!>q|`HIcKrGk5z&(SLs z%oBXg92=z0OR(YP{BRIs0wk&!^7gHt!VetQwz72PG-Ts+&GNN|o|8x8Cc-0BqkPCk zxa;*oh^sFajgGrtkm=Mxbbg5n>H7fhuj~&mJ4a>1;yBPqs7cExcS%|~u}4_*d5r2S zKWH%f@FV!(qnrlD3;rFfSu&>@GGMT*X zFmhaNx#kx`sOhJWo0AICrUKCun-8FZe-FPGs_6Fj&k4)q4_r! zirp(8b_Mpr_s4u%pB2k(02yBiuv!!-=)1cQ)jfKzjn_0fNck$+9c6R*nn<07V z+FjHH=fwmme2lb`@x04*Cp*L$eJhlAeuKP|=lpaof9KvoF{$W93VIGbKSDx9TB1X@ zm&tchR}(M2As}(mU{g9+K?zb+aAwy6oPFYHPOBcZA)RNDCRDs3{A#XRz?;$XLMXZ< zikTlR|HW?3lkzIigL;ugxTFTwMht$8{-FIYOwkDu&r4BsoLyCY{-1ixvFPVo8P*Ct zP6^$TCigT#5*KdvAHp zzxoytgT_92D>`=fs?f%rm78z!(I+;?Zs1Y(?{09MFB?ZLPY{BBYKD(ZJ+{+TjQMk3 zjtQckX;U)-fAWR+5MT*(T)Zw(&ijxt#XL)-R$e&W4(Iaq$om&VpxvD`4{~6kRo0EI z$Wj2JI1JJ5S}0w3rS4vFyY|{q+;lb#c62kcp6hNAT&vRY!43;?VMG2t_P-njKK>rk z@g=5!7AaxY(Z~JvMBEO>=z6=)T_#P8-61W%mwZAA3ZI}{4y{hzv)`CqMvdZ7Ph3BJ zbH1GJymFO)zQYKmcWikA7e0eQ&*MMuHLKM76OH#Qp~agyZVOumEpGIfT9W`Z5l;&& z_~Wf{j)UCaXlS@vA%zWZ(Dh4U)-~uXIhxePdUV{_f*)nVQmJt1__L*)gceKVbQ1h1 z%gP;hsBYc4P3hZ6fXA<$@)uDMcO10S-Ch5VF7EJNR8O||&h}d0>~h1{>!q$~#>;S> zmwrcQWBSo8m(de*$6 z6;KyS3Y`6W<3WaF2k@k<pc!p7oSyNnW> zw8w^@^!d7=`kx$*yfata=zsZjz)1ExP@Upzm9R#{4xoOuveBRz(l}(TY9P5(4Ep&2 zjBq=xY-J(M1x7^99T(GyTE%*GI@E}1`wfsirONnZZL0%3y;WJ8x~Uvy5jf7J$uMhs z_2Q4Y<+J*Smzf$H?@ydFhy9hYF5P0uf(utDd?E`Ga^QmH_d}80RTxSAu;pgpMwO`U zsm096H?u?Z1M!>=;xyV?+W>ImQ@S;t2o;ZF5aIHrcxyg25hsoKqo4%!sF}XwS`kg2 zNa^H}$(XazCxPACeMy0W{R3me{R2T(*8LrlWU}$c)1Fc}ak5k6#(g6|WVlkW~*pr}~qH>(q+eyH~i2O;*r$MAagc0Bw zcMxURUh?*YIg4ZMagd`9;Wxa82cIxu)0Fs6{{1~o`^5jP18ap?Q#?UHGaYL!eyi7d zTlWE`;L=H)fl4)wk`2aJ77Q_5{=}@u2G+ivW`Z?ljQm57yc_jDd<;6)5p!13Su&cY z5F zgCtKw2%7I(S%lDX#YE9`XoTY9{|0c)?0@6qQ+!Gh);^|ycDtugtuaK+r>JF_JE?e@YWjN!mr#0?v6FZhbV7#H`}xyJaW z`ldO8_*Owt>Y;~kDI~tJ*0THc^o0Lss&8%0f#>Q0mv6%kCJoK2zEF)SB1$(86{L+N zAAZemFB#uA2|IUzUjKj^w7Yrk)qs!1>903`ZoU9yKIp5S&3N;FQFJc;O#Ocx-`&h+ zbKhJy*SX)XiOrqJC5ckaHMfK$Nwo_z_q!x%E=iJ*N>XizkxD{t`HmDxQmG`Z-+uqW zIcNKv$LG91uh;Wg0-b*p${jAp_~1P=6*lko8XJ(rK$i4Oz+Ve`F6Pv@?2$hva4oD< zMxh;~wk}KF$rR7TB01zNrBv*qr~zBOKHLnU?exF~;ofSKKYH@-itY2RX|%O~h$*z$ zS?LouX+?7OoPODEw>3I*>cE}*^$%^uhl13ch6n5~{Qb53QHD*e95ag^<%~2@l*7>F?lBQ!DOcl(>HEnFH|Y(A-01 zp-HZxKy(gUh1^t&5Y|XBo903=I2C5^_FO85!m#+w7CDksiH`qnHW)~TTT;DIk$5mJ z0V1*s>%d(P!+^_xvAfm0Yx$#Dw#lz-CulW5_Ai*d(=Z@)1FWdymqqjkBBJ3w*xGj@ zV8HcbpI%ofZyT}ri3|7xNh)}Fh+<3Pl4`Ii=da>|y^FN6w=DwLpDJ!Ipk1K z6qhU7u_tkDaml@VLLbb58eHyqD&mi?lpQC*-SCbophOk5R9LcQ5imUtV=~KY6+s4h zAu|MSkWkqXgd>mkIh5_Bd2bo!tBys(KRh%@02ax&gXMbx@Rq+oQ{i|NTPw2LIsxUE z)OAE!McP9Pq7at9H(2r7#j5cI)@{RK!>t1%TQb>Bzq;|M9o@*7Wu(_ucWbhCH-nw%ta5GHWIAvnFDT{BJ4@~!0cCmsPG(l zEgu@8NAWN^!|3X{Ys|`f?u`RQM25oB-YUA)hiKWcO#Nh__}5RNgb_aU6I{}CLHb?o z{D#OCB@jA^>Ue643e$GtUO9{f%gC-Da*_L%`slaZm<%#c@TG=@9q4@n)p37wYMbt;v7@8Qm2_O=|@53iK!tDSK zDCej^Bpm}$pBfPT&MkCI-G=Cd@5O|(K{70Bh^qQ)s6i@iuqKL1lud*qP0Q_Sr5VRtk7 zl4X<(Y9z=p9z@U`!B0N<2Th=!xm$nFT37er83mdI_LaLwMTfjsb*{ftd0xOzI^l-1 zfo&03H!9!c+-McP2E%y6!;2l@_nz)*3*8~nu0u@$IEXPzfR)OF+qy-@D&Awf{o2}f zuB})6AX|MP0f-tri#z$B(e4Y(tjovDeAs1SFw1_zS>LT*S-v*gUZzg%?y$J(8lZDC zQ_Gfa1dtvJ_OkNpM;>K4RNv=k%G?Zj0vb43^P}h3CDu)jZCb!g#nbu%qb{m!jZv;7 zJg=?^MLYivnrE}QB6dMtP6gY0{80kbB)$KqXjKKGf>lkA92SG-N*q4EqvOBzEX>Vrdf3}Lvc6RWO zq3Vgffs=I9?gX%aj(t8g_x@sNA|=bdXa>9HQ0}J>e!8g$IHxtg z_~`W9d%It~2%G=5&!_g6zF%=ywJN>PxI{l^jEwYmRCv3>d|Q>+60-G>hzcHPt86Dc zKG3a$z3MG-o0>5(Fe+*~$=Gka*llx4K+f7dO2%xK>loP5nC+VRh=7kqO8wpD#=N)U z{uH`oB?qEtA1+sT{H1LL?R8iJ_>I`ttQ$7RQ1L~5@<_}}&?wjcM>LuOs|{p|hQp2(F{6u^5frNqH?!XM%sq^{VghKoou+IA z`j5aMQ&bXipt4g1T>feoHo6onEF7PL=(~_uvD59ktS&c zl%mi$s`9ob07n3X#1p{xCerl-!S+TF$5D8^DcB-a+&Ph9$cF>0%i4&oVk(OZ(to7-$?E+_&cH%1Sy8Z@qej$L4AWH_7J(DH zKaFtqS9nN~1*Z~OtCkU!Fo}=MxHbjkE7Gw9X2>O`e;F)%E7NI~D65@`<^g3oDs$U` z_$H8mN+=TkE-RVI?*(2fii4G zOs<20O~&XU@JIqkokwTCVi<%QfPL(D{{~0>p|9?Eu6*eCiXLvd0D}jxFFl%ef`c$2nw9p`LXC>tZb`~Z0C@r zmmYg?7!g%`IpZwsSSqu;3>F>ezAv45HGvtnk$GsNLHTQg9|bixt1(KZuZw0F7SVyl zU`ro{F`s_Ux^za8ZhVFo>{l15mw%&S_=YF&zrJA&GuowCtg=z}0WMsw0i+%X((<`+ zBv0J5+0dR}W)%en7?;J@4+@o@sq$*;+YEam!~d0GkSN+<%8ZB^(N7T9xp~`ai{WOh zwN2vYD73{}HIuL_5AP=Pb4;292OIh5THwLwJ3+HVkdB+NP7x5x0yf1JHaB?4 zMWIxs^ECTCq^u-mifI2wc>#=XC30NHoF52}gsSKU*n`<{1LCqj7H#+zfNEkEhT)#PhEc>_AMjRo zq#KO+uzzIJr(mT>X&Q=c-*r!7$jgjFUfa=xZKKVjhv;c;cj>E+3TSh)GzCgNGuvhE;e*$;)oO%Z z)v`yj|L^!-xp+tE_Bdlqm0`Z+{e?vU<7L#`=)X+MZsqu_cQG8;jH4s@0oetn+hEHm zh6M}k67r;fhhar6c(MrIMJ4Md&^3%eUAZ;u`$&@b0T8ZXf)C^8 zEAZzcMyw;)oCnfqx)xFeQfUA!?r-kCrUsK%5cY zj>}nzjNO5T+5j*)za1Y)7j}pz1Pk`6Ii?+u*gFhb}v;`LUXiS$}vCp1;=&~~+{=f<2yuaeG6WX?I z)Qpq${eCzJ5yN3(p&|)eOrI7eYH75U6NIX@I!a`s6M(o>5V;F%1IXZPgSDgRL?YPS zjgF@bU`J{FE4166g#xF$fehfK(nlqW2bE{Zzo@{E$+XV5z*BE&7r&d|3I^JZ?tz|T zm^r{)UNfSt0h~Ik%cBGV9;2DNf&q)+-+f-?A5yOJQfF8c?L{sLkJT|a; zs2X?+Zv@J}0vD{0+5D{6+GR355pmc~jY;A0Uha$(_*@3Ajpip$i=Vmt_MF1`*vm@O zId#0CiB8!mCnxc*nCkt^wxa%{ZZk@iG>r{0}` zCb-B^UMO_Ypv0;o9fwY=HY*DnnQLy2z zjPHTk;3k`H&+_Fci_b<7tFB;?a_`H&I8)3>@-t9JFkO8VWC$;^DUd+s>@ou? zNRui6?M}$BB{7IRx+D{`raww~Tq8qrYTvu0uoliwTvIt84L?bYb{ zPr69MA-h#a5xh~w8hK>6ZUXuBQM`cHp^x=kE@C*W^e%?@nDPy*Q*8_beM~9M$j9_v z^Gg8W=qL9%hjs5;hZej(glDS4-13|{qkH5uBPt%fz3BX2p;62wcYiGjM!oDb@a^IJ zl_1quH0eO#gldK@3q&OP*clNWQyGuURF%7o*W(7RFI@?K2qcsipxR|PiI)&Zf)z2wTPsM5p3)nR_M zne1BSE}#;hcKdIo?r~u9^Y-|kALhT0$wbjeR8V>Vn3zD-6YFH8A+AwD~XE+>_yiihm3E47}F5ZGZqoIj(a8|d;1 z13#CDG-*SP;6S5aZxnq521(_eJRGJ9S&rG697~0(C(w2A`~o9KOA@$0j$stYSRYn< zlyT>a$ta|pZl=I^7y};ml73GC8w$15ZsupiY7DoY$ATHnH@lZVy)<$7VyC|LBl61; zV}x7!m%aigpUAcRiZyxWT5gZ${KVn?F42kF&{9=;pp7}%=B|IxE@3D7z{B?2`bsLP zC5#aGwwnjN7)d8`vDmyAyX!(qd@DHm)< zg1C+{jHl?tB2e$#x{y_;1zz`x3 z=nj4p&Hi%K9N_Z-{`-7?YukzG&nr2dZqq;R7gjIKy+15?eIk?yHIV_SRnkB1XPn;0 z@Fz2XiT+dV&MK?G^mCwH48tKd8n@?aq8eR^Leo^Fxyk`sb`ruOX!k!?(l%&#qeuT~ zf^`CpnKprMe6smS9?666)*y{`fWQThzUz(Bjfo6n4{1vZ!x(-dZcmk_RlA+nl2uc* z8OtEo2=WzJuzm2lp6kzWS4_6!^gr--*R^kblPkuC?>oO*7LbCd&))9adwI|iR;>Z$ z$I!5Wpq(ZSp-b45XqZ2$W-wJNTrVU;keYx<*XGA>bw|%l8Dc$$XJ+JZUBi-i8tuZS z1n0$?=jsP_o&F7=+6ujhFsNsA$+*as{k<9fqx;osx@Ob3e<9r%&oJ%+?N@Vik{JIl z&(sJGHUnhnM1iDpTkTeQ4Z_Q+#52}o{HtoOKlb}s^XtqdN=oFvCtK%Ja^pj$WEP{d zLjJm39yFB=r$wNjx`jl&m%YoB`@uxB@^J~Ej8u>c1!RbaIPzGo9~lNs*QA2wm2~Ku z3H4@ftbGesdWpXj4{pj<=F{H%aUI+nrgS%r5!bHaySv#XF^?ka7A4^Maq zHV5!ee~-{IqTYN=j|RcD_IJ7gr8E$gMzJq=wfhFeuiDWxC09#b(Jpys;G(Nh?9i(Y zsV>{xFdksIOy@vH+{bSkBb6q{##*AkYrd$qIsI+z<9Dr5wnLWWkKZl0I}t+_+WVMm z+Wt+j8p)e6KbqTG4&I7_~S=}%;mi6s@zM?%-T*+Zc@l~y9*cjHwahh7X zHkFGNmCSH2S@RvnbeDczT(nz#b94FKV{~mc4KCqeZQ`x`AuH$GmoNY9sX&Ako(7dq zW$&2^c6@F&X2vM<8&a>&%kT|iivFy7)C7*7(zQ$5fFQ8V$$SwaQ$je>hX2K(aMSk zWcLF^6i<`aejb+eZ6d?Z7a!@*QaZOHAwh^pZ5&A7lmM}=ujXfnoYy3z>NMYI?$)_^ zt9!fI!yvvi-+bKZU7jh%;7;s5IS1#w+gOBHOQuQ=Hozn3Qf0Y`cI(t)t`Xhzvt`9< zNG56ziR;|BH?LMC`OMCOi@c8&7b<_)tQaTd5(RXYaTy=&MI3H!>qY3T%tll;=Wonh zGT>|W391_I;uxp^=>@Rl0a9Y7EG4epMd`HB#W4bN4mgO5X&@{0><>1U zh{+kYnYhE0^qV1wf?hi>HGiR9wN8D+C>jk`HGXF1m~Z}uQi{r*O|H+k7+>Q;F&4s5 zZpz*r3PbjT@v^H@MzU|FTvRFnn(AWZTO@ZlF2o5L^kLVG82l5v4`o969TB5hIZYRf z9x$3k8TU{U#0+gioFw)oCpya>O#S*)K1uIlJMhfr|9NITH0H5GP9d3cM<4-${xWCM z(f;ZPz&BUL>0|%FiE{`Xok+;oq{9x`n(M#cE6#e+Lt%&Q5k zGdPaBMI{h%+z4hLxQ02+1FMYtWa{(2h#iG9662?Oh(;kWSS}4&9iE{bxFG7pr-_HM zL1VxXior@XvX00Q;>`iulJuqSgk8J_AS!aJ&mBn^umh-yXA&XBqa3Jy5)Bz{M3QZ^ z%phQBaDOc0$6^B0Vxt%piv@cu-G@DM4iSsNIBk=jDwFyJ-sg`X`vt1nL+*YZC7!v@ z<~AmuG(W#}VcG{{-oQmdJXo=fal=zJAg-wI$^l#nWtuwC5|LMe!;Rz3^Nb;5JrtPM zX2gkMewO_X!TZbTb=qE_k}I4NeU~2J;={U%0YD?`5GwlM7Wau4dMO9SxehwLSK&O2Lj7$t$X}=Qdi8H!l<&x!3>JUr{uHq(Ozrdj<2Bv+`NFKLEg?pzq%X9+Bj1A)lTf~_J zk|?5N=(W_=gzg+B%wdE|*xSuC6Dl4i0VfC2ga!ZAeOG3nV1N$hSV9BNLHCLAlueAo*@~xk7Mmg80LauA?g`FqIpTWcC!?5mA5EB1(Hto& zRsRZ+Tf*vRX9oRm$-bk4_EIh?62MoUV&6XZoh*gKWXb*_?X2Ew8&AVFFW6c{Hw>b-%icFtuv~>%!^c7ufz=qZoMZ5>1?fokP<}nFSOX zTlb<~a!JCaw#WfMqzgzgV`GxoO}fz#v?%J+cCCAIKU9y!MeWsufICY$kK=^3dv^5) z(sfLdRi8Y5b%K}-^a-3Oma1FDrIKsUgkc#9gQGp>?1f7r+Do!!BCz?p1o5Y4SS=9(5iS1e_LeD5}|PDhtqRA-_s5`El<(M#Qp(fTX~Q*p9Xgjc@`Rqz{(6$9C3l zOiN#y1$iKif;I|>MTHo;KN z&~4B%o zB(*3*56>0xAIV1_YKzpydcX~vVlR8%(MX_czdWk5^AYfNZ^kZexPC4Jh+T7-SgidJ zAH`7U+`}YB(U9LoRgQ@?!^|-q?2ybn+2@%MEh|q1r%>7kJA;AMPBM-3h6LTx&Tot|u4wwTg0Ir8~!!jn2nZdGAgD(VKM`ZCC4xK>7 z41WUepaPXF<1ZW?9+KIqLCxdEKX|vluZRaK!~+j`z^`Ipv*QH0&WSMwmIE~I)A710 zrCDT(1j=AJAxkv*>LRo>uw03*yhBBfk|Yv<+m&yWc^t&1--l|KOK}DBG!dz4j7;Xf z3wN_uw*LE<4^T$n68zXPk^ep0aQ}u=Moc$S66jn5>AUyYyqXAs`9| zC+S1$^N~NjA1J9O)Se0lCfpk|vO@+Jn<|ln5yf>KNwJ!cUc&1Q)al(DF8s_#Z&Tud zA)`2@wh*sT(U37{*f_M_$RI?2_d>C`qqHA+`4w59l0Y{92=IW@)sh#`KHQ3@o+BGv zTBd_I~M?Py0<;?xCKixg(auqPM8B4P=>q>ct)ya*6b>mI@qYBHbbY!|!ZM zh5++>9`^$zIwiIP3l#!`9lB^WwgT6IIoc}#NG_fBj6z8-;>w1TC5c=~EKNw&M}ZK> z&XFYnG_;$zbRJou$ltyhh;@^4$g7!h_hx?d^k6nd6=?3o6cyfDir$_|;Ht;&?K_SN zG5lHQWd}ZvAb2Yu7}KBiB9zN?aw)57a_~yugJhM25L^%UC)stNi;N?3kzIQ$%J!Z5 zO$f{<AI~`Uc<0cW3N66ogq7bV zd~((L+fl;#w@IVbH-7`q_8`-?fPbTCK^ojtGEF*sP;~K?{L&41NJOBv=J4Hv#;DSK zP_ObWATAsz1p!L>)56DHv+Q&ls+P<>R~wj3tTZAJM`Beq?YY}{eMWtBw__WWVA$A% z@dM|Nag|y`j zim*+h(kkaBO|#!#at5Z)c;X~haZ&uo;*qJrWI4EhgSZ}dhOf0BbuB=L7215QBr4l3 zE?f3Z>?*dYuHUet`36X#*>5^6xu0+V7WSI3y<}sDI=y7YEnu zVJjLxC2yxs;ewSFMszRKO=By`H6^tE>KR$&&Bm1@%`$%6$NF>MX1D=@d@XJGHRg(l zd0gX*jOcIJJ*S!tBiFn_`$VSPTvOKuC0&$9j)|>uby~S!8d{?B>XAzTG~m+<&g`nE zuNZQEbqZI}R0~+Yc&D3rIPnD%Ne@R!o7GY>BD~#K2Ac)66n(xD+gGs@h-_(`r}>L=Y?{Ip#!Mno5>J*5=C;MZ>4}M*3%LDba&j)ML`!2WE9rLQ>aA<{ zGWs0i+M%r*UTdS~JTrerS^NH14uvx6?rwbGNj~uFCRsY1tY9=FwaNJeC>ECvl)#9j zM~FY>m2+-zq>5qew;ZvpqoQThkNlwB!$-xM$UCw*Qq}Bdg1ZOB?oECE2KHUpg8Cy$w zoY2?O|N54GTj~PQgGFTR)#?54x$vA$`;`?K4S?L>R0ffE`O=gX96{E%V(bAUcVs>o7^Cba>XiCQ6gjL%RogQ85<7N)#OSx^q189 zhwCA$dHGBHXJW8iIKG3HR55-V#rUbb2GGzmmOCk6oj3H<(0dCQ9gp&xKOZIh7wFr7 z;avc6X<&rX`}!5GX$p|wul&_VU#aY-nj#%<%l-4a95b3IQ<+;gMN<625w`%$l%xk$B~EZt%h$)uYm;9?URJ;qjtxZf!fTAFHxO#+B7MP#XL5&{aPQ2DZrd zix>||Qo~Ro4)3ax@#b4EE_AHmgu3Wb#7o>#$DSuU;}yP^)H#)sQ4fJ3sh6hhT(s&orAa4nQ7;+2X3-Z@ zZnD5JSzs&0yW^WClD9Lw|0El~Owqgx&*Q;k3K>>SKV#H>wAh-OWsUCp4{)4XAPp== zSMR|$m>A>sUfl#rW66PXG+<@Deop-$@#@rJ z#xhEpoO-krIYmnFIW@FFLMQ+F)aj1u)WWrRW!>$9!~+cbc0);l)8hFfPaSQo9{7J)7z72~MKP+KH) zV1Pu^NH-H9+}wZ&{$$I0RFx`R*#-;~Y#=crf&aph_SN2maM46sW<2dj8BNBAR*fT} z0^KY8FDlTuxH;OzZCb)ZOph<2?$$cA(qJb5G+NGt<*OgO;XECv7BW@8uOS ztXph$wK?u;Nguw=xOvsFh2dz~#WV0mS*8R2MPxs&JbH9DSz>eI&+ih+ksAbHF9AZA z8Wpo1IPj38fSBOy9=zR)FBabfpq;k3Gz-ECS19DA$O9gWVpYGqK~x{b+AgYiVsS*l zy(6K@_fujC{akLWnL>DQ-6}jK2#w#Wmjw*+I(^S3ae2Wsxdabq_4L!JA{fQ$J{6BZ zU)v>Dffvu}+NTt&je8@f!H1LkMqcg=$ld*5d52fnvwXj6=&GYlOP@`{&hUNkuC5*H z(XNr#P}A5x%c5S}SpbSXDgy^q?3dCz9@bdO+DmyXXbJ7%qz7$hlFGyJXy8hML0)2*i-qH z@ud*&-?{<}&v=?6qaO)ykAm>>aK>>P*ic~%mSGvc39n07s4$KZT3Q|5ipo`Y$M9GS zb(x1{_d;&fIxZJnH9i!s;IITQuC-5`>B=^>El{wGn`{x4a`up3KG@+DUYC(pp|V(!v%h-&+@D`xm)|_OdO`3nZ)Nnss?KHJ zgJ`W9j=K*zAtR=Z%*I>o>C*G<0LA`sNt$Q+3inNZaL(O25_1=oBN0 z7#Zf18R$amXwJE45b?oVFp< zmnOh_yLCHRpgiNrLoX3J8KdO8a=}K_yRtcO^&-=mO8p$YfekfbSZr5Ak^NH9yF&8E zqIxTff-tqb_sv}<*_tH@s(zo?O>5a&E&Mv9d2n)+7`W94Z=>F{&%xl+IFW%gs@v21 zh+d;h^`Bu8o$kz+QHvF$rmFR2`BPG0F|g7335-ARhTnDu5sRCIntdXim`z z)3TMgA#)l|&$HXahVM4X!O*i#qPiA>LcUHs4$et0M?s@Pv9h)%i$;6;bf#+;0TMi<%r%bZrzWu-y!xF73_vt``9e{m?4Rf zs-_&`J!&1{b9X8oarqJU-Mz{Prt0{;$0H5~57hICb-IaO2R~lB6hHIv`XL(;PD`U~ z0*P{REISY)w^kJkee&@Gw@%)Fa_t0Fa+r#^(4Fv9F}2MBW4Fn#N0axyqrqP%uY|zP zK1i?Q8Rl&)WIp^B+5uO^8ZHLokw&2*c)`S72Nank8=j|27ZScFD7>#;tkcq=yTQ$S z9CA!{jQW2#>{Z4U7ofBoiX2e;rTuBGdGuVfv8nid=H0}{VkTX)!i{L%D9C2t9d=$0 zEf3zCriRa#Uj6*w%lw}&-0NQ)Zvf}amB6V#el*5RzZp9B>wbYfH|!(&P>_h4;^og* z+kn7$ou$UChe5R>HhgY`|7*HT6Tr}Bk*2)F7xt35#-xVfdgzr zq7E5GqN9$C%J+R+0<8OVvY=4@LnF%P3&$!a60&cS?mbzSwO+qjs)8PmPNP(a$@sEUGsxXqFFPdhFo)c*obAf!Hv&= z_owBtT(tekQDlIF-W4Ax)2yFBfir+(TQ29;ORxUj)biNGj#_yfKX52ykc{pwIQ%wI zQ)o93OwQjo50NRU8)&}Da3O%Ztm93*o48`(Me<<&wUX1u+G2hHQ9B3-<&!{{$fHo7 zMqu`N<3SE>`!baH9W;mGiOz+Dm?(u&?(G0p%YfA1_G z1u6t`I}!`UPpxb~A{NGKa#}c`N2W6Z`Mf6a6gF7JSJd3f zXCLBd(TsGr3zW#JlgT-D?J1mFcCp(ZW_T!2WH@J5wt)|EWRFSZ9LUVr>GZIO zm~%>c$iQaAyBa+PMx9Jxco_IV`<=O>dwu5WEUcmQsDj;Zs7;gkYbhgn;NvM%Fq>Os zRIW~-!Xo9V39v51&hh>GIyacERW1B$xOjTYFR%)h^B~BGR9P*k-}?cHv0m%;5$6|IJ12v=L_zXNY-`Kv5+;c^@c{xBm z|G4|+6QJ@2^>$dy>9YFzYmuYyJyT=rE5l*m0|WaC(#Eq6w<$ZH3;Z`kY0}jj`Tx(X zz$cj-#(5!G4;NK!2?)DZN$K>p+sZ9-h;SlUV(N#$1N*RQDJu+Ucx5LpN`cd*RTP4o z0x)%~ejo$xUQzU)JWhU45U%_Xye3R>GumtS)`i?jA)bV4?eLAA@9}qijRn7)=C_hg z?h>BCCOmj~Wu3ae={GjtmEOwul3Tu+p^$6GvoIUawAAbU(aN`~dpEwPrXz752ZROd znX4Vh7faEGE4KtQav8T|Sd{v+;93vfonAEQx`V8r^^A`N_fzd*|6|WEn7FP|+5Qox z6_1NfgfmuqDNOr~5brEf|60pl5lgtl^Q4u&D2T+-VJsElwn5JRbge%1=HHVhl|adu zOHLO)&AvQk`S16uFS{S#{bSs|I1!41n>0S#=bks=|;j_~>ucFt^5TBnQ1h{ge^*3qaUbUbJa^DZ0~m zUvG#`?VpI`?18DC-S)%}82)WD61$raux(H~WB5gIJALXUTQOH@(okv6@GE3#v1Q<2 zn`%3!R=&qUDG8q$s1{n*0L2zH#PAO@DIyfkG!wtw4fr6N^;B3wi`VhsN5Y+&%u-3P z021i%O9&D$ocCq7Og~m zCtjdzP%G%H`#W--Jur$KEINQ#*S@K#*q5mEm<-uU6k)Q>g8?S&2HrPSWObc*(a4*S~!e91dBQ2QXB_zrKUYz7I*BbBB z|J>*#FKmTF=_MifVEFoT;|)Dl@Rvb58tMJD8raG+LX!eli5fr23bN9h&J$< zfQ4r}>@W+a&khHGd5soO?T__Q0yWA~6I~-oWt$Np>(6a7sJLIyvb`q>W$aeZu?Jlq z__S~4#%7LJ6328tEAbZ`7q|;K9Z2_1C%If*&rYZ5m)Z-rEnm@;oCuI44%Cz1&m@Vg zIlyF-MVF2rl@-~i!w^Xzp}nZ35bi)K$txgi*Oj>8vfK%S+e01+7nMuy+pQa=J!`HrF^BRTimEL5?AFMG zYPM+Gve`A#$qsO% zCiJZshC} zL4I4t_+-jU-k_`@`khcy9LzU-R$Aew)za`J;-z(J$~sA$)wEZ@LG|KoLch)PCg}4| zui&#(SsXwHTf{|Fw6geR2?wqk;qxoUTHV?A$El-IpM6mPCzZR7`ZD`8${p=H$Hea~ zz$%DJVwTU^l;(jD3I`HQ^8eQc_2IZiaYUN%IT`Mve^rm>knV?03A|k7bnB<@Y>l_KzPs}D?oT@h4T##b(K}Jgz zS@+DCP-<-Z8o!hbvzWxsmEV)sf`^*G@fzj}efz8KjtnCZTjs|n?r{JWV>*kz=t)24 zPCqRa<+H5QJA(4ePrv2cPT6BhPGpg$7Dz(!Matds^K3ExGekOjDGeavw+4&31<_nU zpXT>h`b*Wf*cRX1McX?ZUIBBNM6{Bw`}e7odg&kKb!w{RZ~(JNT9gtu>Ic>S9~o-N)hp4Lo~Ia;cU0Bv9}=P zH6Nm(pChcSWiqEsrBsi$Wg?XyLv!^R4kp1|QuYmS%w9YV_f8Qp>N-`Jf_m)PZ1I6{ zCZV}gO#SGfPuGu{4bjLth7F7PqDgjMhh=(m&@^l~N;MOAMJ&HkBEKJU_S{xhpKE$1 z)=5c*@-~D8tVn-$T6x&=#OpVJ$EPhGSY{8B!AAF>2EUTr&7mHY@2#Y2&;lV1pBWtG z^|NF^P(0zXcPNlyn4L?L>slFp4Nah!@c0B$Av|tvf2@q|ApnN8QNBv?{su^ zYWZu+kiLtoFBRnxXR&_E8v4Ie+b`WsF| z#%tg8cTBDv&)j}RO~q5E`wh&p@5=lA9KHiJ)2UceC1A7gzf%iUv~#8a;U-BI!WU7D zTGk5SAzbRTBMhF!P+eal$7-u~0F01q-%1I)P`~+6@guoRV?^4^G63vSR+gxKxkg%D zh=y|2R{C*VcG&N9>+WKYQ6Xt2@&rd6_)GDvmUPR%Qsb~CgE4IGP5DzN6i~qZF z`jYhvz>%i>3+rwI{nOv$hw%bm{Sai5d%SDFv;5L$aVt|GpQ{~hXX>oykJ;T-Oq*lZo{VLOVXJWuvN&}JLNhqzIp zEqK%_wc3q^NcDB~f45w9T%@_wBu50%2mqg04aR1PAOWDPDwX=z4O0>W07-^MAN>b* zS2)inwD{972_{N_Gt?qvoqLu@%`t=MC63kk16Rh~&w%uMthOwrp{?4z>h<*rvIny{ zB-9Ivz@qUo3UKz(^jW(!>-L4SZROaGD_spA7apM%9{*5i_uhUicc{&}yJJ_H@+Q9W z)Su<>ZnP6Tc%xk`4{$deb&cnTR$dVA7e_=5_!(q+=%vD`Wnwh|czmqrVaEqP$cgkn z!HxalDjzL-@zzuPu2=rQM@P^c^PV=3<_%K!rR-V%NZ+m(#SzBOI%BhxPaX;JXjRc@ z{R@R}ATR<_bNuzwvk!-FDQc_|p8PudOySRy?|&Zet9rJeF!GtJ+#5Wi@UY?g!}JLn zB-9(ap94uEVGNv6ZVa&u{)r7$8tc=K6o8~EO?WCSsYpYo!*<2%c75L}=5b(E9Pw2l ztg?rKK)BKh%nc{3rs)8Qe^clpwP(HESKjeaqya!hUrlo1;KZN7r#EL)Uiv7W`Q17L zi0MNGMx=%es~^X{te}Vq(Jy8n7{=d*vmZ^7h391Q*S?&c=Gsn|DvexvG`+8T+IwdD z%A=8I!PE7RX0E@z_7`(5RDUS_tjRDN&5<8?(qjMaL5iP?HAS&S zCi5M4#wsoSH$Cik$-Cy#8^(o-cBC^7V3b`I8~I`uO-dEXfArzFK=s>#vY_qU@)>27 z^qS@8b2GPwu3r4(cX3ttHlh}97Bn(;Iz&$y`Wn$1Hw;|hjv??u1Vgb2& z7!3)5X8bltId%Cc8w4eY=6yk*H`El9hNrR(_U@&gpu&(;kP!6I!v0B7oHgjMi1Gf# zVz4;d(NCYv4(GqS{O76nxhuE#{;trnsbYWA{ZEvdf)ui>pK<0=SALs(`{4ZFhwt2F zuYbxu|CBvdR6PCzY;b?%*Q}gA^5ejhpRq@mpV|IMyzukbzhz$=6+4O-VA8-VR^L-)n{9G!xLog0ce&<|tBIchSHTqo_-)*yb=iOHfNJJT1BL8!F7yj8H-Qz);y9BS;sXblJ+kJk-mZ8l=*d!b_cEe8s4>4<;E=g9TKtZgpJ17|v{N9Z z)fM|DHdr^Wqp?eo0pn1Eri}JTo5#wEg3q-n{L#@JVbDlFSE9wE$Z2_k*iNg@MzdWge7S?sW# zq|==IL^XMZB_b*K$++3oV_%S0G7>dOM8ZFO(9X%!)KKWRwmPW>A)pT33~1t56;x zw&j&v3(FU9ymRabl_siC7s681vRmX4l6n@N$|qoj`C|S42?v#k@Z$c`a(`9#9(N}$ zEY1V+)e&=_HW;jU8XL+}>iNpdQc1$QiYRC4^=v4e?_YR}jcr>PAf2DOggNv6xBGxR z44&iTzzpDK%12ZOM-S`V9!Yv;@T8~I-lWjxJN@^Z)*U;OFP?aJ`-$|ccH5L~DYse# zeAQmCR{9ci?#FxH!=laFEPTx2=K`o>0LJ$Kn!X9-wV!V(h7i)$d?8}2{UpE6@hVK8 zR1|&@rlI9923MW`ndo*us57A#Q4makql$eb4K+&jUiA0)<`qL9dwNI=RL76{x^*B= z>@`S&BpzV_d8d|PiBF$$VGf8NqAu7NJ>B3{f-CvY8O?g+$@T6pFV22>eDh7AJ@<=k zx_#f#?e8xHSW5c$;dfdkW4$W3(|(LlT=+ z8S0v3(WmZpiFZ_AqN6ARuzFF5@Qb+;h-I>*<6AAShE)I*Hl(u{Bax-5y;jhU9P`dT&;^I_szwk|v~-?KQvd z9>zOJUY>GN7}&UbT|zZBs7qd=$;D!~BHfMJbPxk@rHcYa0cV%qDc?Lrms2N*pCJ8@ zu=@^bD(vD#9nu2{gx(?aA|+JmB=k;bN;foV0s(3EB(%^2BGS}Q1x1aB0%8eORFr^# zG&LY1_8_9z;?4J+bLX6U@7y^vYciSqmF#5p&VJYXTMt9v^LVR^jRPeUyQm`Zqv)P9 zFs~Y?AkK1Z+ylnDyAwc)pP2&%?S!=E%w`oX2K%!2UDS)>i1*!&?Zr0*EYmGUdRlPu zg%e%;)lrZlj|;O$Q;SFSI*cldy&7dIk30dno0PlWIoY&c43$}O;|YxMs@%jIT%IXO z{+veOP0?Z%x%s=$=PG6y6v6!gr9WqCZWH*Y;Rz)DZxKsm~VbOBt za`D<3T)wKRNQF$E62|YU-X9GyLWz@DFHTf5TtLtbKoz}2B%c!SI*i;dSFRqDx1Wu& znlP$Rj`V=hP)U{u0r$He(%NSE0_WW~C&hXRg(19+_GZrxzsizXe#^IUvgTmGxlOP5 zq%HpzG4{8n+mqcH;(?>5leTxaD(p(Y_xbn|J2G=ufY5TdOW{u5h{fOHtgF|b zW+^R)sexDf+!$L;xQy@(K6dM5VC;Qs(d(l>Z>wuI_Pl$Cme`ln)Ag9*j>8uRMeLBn zqE$Fib%W_*`;`Ky9pBRo#pYoMt1xpmNQK2()&r=XI@#|aM8)Qb19ngS{c}M;EDtEN zNrVN^X4bStHAW+9yNf^?@?Pr2_D)ghWFx0DOPGS?aJ?%= zdT)2#*$(Tvj09Nn($2$M%nmp4T6BK++a>syxr(zmZ?u}wv4v5k?CScm*d+7Chm*4~ zcgCMUE&J=G&rYn_eJ4T;JX@Hj7xLBl&Z+Dq5vrd+5&0Ykkj=b|jKz##er?<}c3VYL za|Oul1!;m_MDX8$vOI~R&76o_-tg(n(d%+y4;}MYMXLdmV?1=xgQN#m>&?(u-1Q_(8rkpAth<<#0!_@UsPW#`Ln784#|8`!T zzWQkUpvTmsz!jK!H?}Janx&t~4$;7;&IBxfGPa&qp zZal(+Ox^My7CYMy)|7ktMw>FVx1w%TO&IS7`!xfoA1}vX9{e!w{nmERD62f|0n|i> zT&Srep*I9d)(+HC5qwA$PkI&>A%urpL$6*NA#~V-2R7Oa@4h<>%Zzi}-k2*?4Z7U$ zi}A%PVPEZ{xP4TCKDJ4Wx6%OCI!-z(pWZCAe`XH(i@IZnX=!?qB(Ayu_>KrCyBOW( z_kxN~*oFys)N899`A0>3RjLTj>=%|17AP*XcknWTjHI-%QnN$yh0}8LHbpcQ=46Se zg9&*h7h4r-U`{7gkEE+6zitM5GQe&uvKtZHxc{IXODj+e%7ej9k&gZ+g{ZA_{q50P z(wRQrj_zNl1iTS(P&0LmKlTNHxWGYt;p~Cq~Q^TjU4;mSbL1XFYhIXT)Ku9l03{FdSA%l;uft?vKaZqp! zE{x%7q_9b=gcpBOu^m&RYQd>9VdSi8Dw`7BnbfdAqEa%>*vrjX_^{3nK^d+_$m=N;#TG#4D_GKFIoMMRY@no3rPr? zn#M}c@ek6Ftheyy0*l8zo_-9u_3Md5mgBG}>=atGq@R{LArEEClNkY*M+`hT;1D7p zknGnm7B)}_{tyQVB!l%}VEzcx?Zb}d`z)(ybVL{3Sk&}ktIaQxiDRD49~Mt!q!nYg zZF9Do+B#f?ZxwcA!zkGJ(@uVsM10X<1da}gVSsT=NEich!~x2AhN~eVYUy}b7W`%u zKd%VFVnC)`kORwp4+d10o?S{gDU%I9BVqXJfj%+^o{HUf6b(AfH*l*UL~>CWqi|`c zuq98ydR8$7t(`XvZ9W(t^%WLJ1RTIXYWv9B7L{QD&x~TQC$=((#2>5@V{J}1|K@nY zK|?69uBfIsOmW{9&mQGX); zZHtC+Az>tFM*d0jVni(_r=Y;<5Khz$1HRSVXo%*ASxDLb@Fq2^`A*$)KXYziPH+Ev6|xoUTWDyG65RKGH_?1Yu|!{h{myK z$k}+nwj0Ek3l8AlxHFRl;qc!Gt#mPHF@hoRi&lz|;H^r+s&&Aj7~+;B;Al|Yu-YT|o8FV@tnx!dupNd!^P)@> z&@_UGG7WaGBD9>PC(xPD@*P4F5fq0-c+x%3x>~!F!TT{r3@J?_2c)Y56MpS~pAtP* zWqFhY`wWLvLe$+j;6N<&&Cg&SvJMh}yYM3f+;p+>-vaC|7=Ca-514c@$K$BN5tBbr zfL)ek*tA3lUb6Ko!zCRPx+UR=*M;}Z`rKDp70XksIp zxY;!N-g1Up3sJBGEBIQ{uoQ}j-(RLp2CB1~YSQ6*Wi=#rYUm^wkqaMlKvWPRMrZ_{ z44zp8hq?1VzeZ&T?0T~yk?C?HFlOClgw@Y+^VER-r4h`$y!B>7XW^MIf3nPLp>wj}wIB&y`vF19%;(7idt zN4f*=`wlLS=be!XMAR`6Z{L)ZvEgORln%OJ7ela%B-nL3;cO6acp(2Am-sKk0_7Ts z%7N3E&{&K;o>+a91*||{ja~xVk>wlb_*k=I6xXxB2;T6b>kh_ ziv0gs>#g~TvxvujISM>)_MZR<`eNU$| z|LQ=+q=$(dx!iXwOvFc^a|b7~%@uZJ!d{z3p2m^R%=XkmWOM>^&X7-UeTAnpv8Y(V zPR{j9jDdzy!8Vdb85&W@Qr|~_?n7HTGc8V&^)_=XXn7$u0&pq`;>-p)v87FLP-h;l z+lP6h-$?0O%t=jt0+xz9Q^_B&`_sjNNYt}Weg z&=YbvjxN3(n&5fwO|sW{^1XML@118Oz5qnHXpt>>5zna3Uk!cX>G#twOB{cEpX@2} z&r{??vd9tn{%x$td5-Dw*Pf)D>MHW}wnrq`81Xb4u1$p>#R@764#?jb=pqZYVz1xn zB+BIX*OL+9Zo$a!@P_yB9X0ry4$wXmzEuszVIe^T$PIk@d2=QH!RXfkI}_501VhUL zbb3ETunO!&xOpD}KGbpdc``^fTHTlkvSpD!#zOY9a^AXICNQHn_KfplK3W6g#}Dc? z9{kuUJ31~qi#W&9P45=|!nx*65jiTvIug!;PChs?`QR%?#5Y*tPt08zt4*bM7~ zn%#;6t6OJrtt7!t@_@pjhYgK_ow^zk`+_Bca%wONMGQ!xS^1%bU{owfj{rKxPiAny zdVQ*~bS)w)%AKQi1q7{>1luwPL%5K`RI41IXV0yWj~NX(uB>h!*^_WE*DsZG5QN88 z60p!PhUj9bD1iZ`;KpBkd}0`YfTEw)va(aoj?<5wu0uD*ha*xiK7GHE4Lpng^k;l$ z1@Ten!56OZSF8v{XyPA|{YQaKRuEDCX{$}utC4RwN#eoNNO~o|Ys$h9vMbjWk3E$B zd%d${Z#gN%;8@Pj!;m<74jtnfw%4qETIJ>kunQX!$AFf|@Mn5h!J8pJvc@(MkOKsx zIPJ-k7Rf?>^5@PPQWNBnGW4h6sYYmrKoVsB+BT-uag{3J)f~SIiv*&zT+o92H8gh)IKNI zx>oKlUwNpn{H0|+{KV5IClD$|?y_KwIy$1p<7sFL;2fdlP{b7X5Mchvd?N#)GCjX~ z7qQbl^^@>?8-4#PTI3uWgvY_dUG`P%amk<4e@w%j%^Ijda%fi;WIheGGJI*?U*=}R7|?40hDzHPu8LaPF~MP2XvqTfBnE2`8q<)K zfxNDy)YVzrv>pU~>*ATEnG~Bkzxfoua@mciyJs z1OXKTv~vrfdkc`yxK}Y}Opn2jGqXSi@KYSHITl0>GIQX7yp!mP_tG8mJ?+@wSe)ir zam|!Y8mLnaNf|lnW<4%+8rhlb#`3wJqBQKi@=6y%C#+u+{;*fz#ln;9;0p2c0Kmt~ zPopATB0j%)tGE&Iva5-OxOWv%K`PpgHr6zO8=&B&vkzTnoxsnPzmIw*Fv2UpZ_b=j;?U!x)SKCUZf*q_+ zRCZp{XWQdk!b>%{BRzF5L(0bBV z+Z|`Zy7hdc{)t8#t|V;{DoI;eX+Lx*Y0``zI_W@cGXTmmw^kvlsbsUG1quwaPtL~E zrgo2y`<`6i1c@psKk8nIQ?7}h7#A;lwVQik_nyfv zpyR&{kkIZd&uyQrpoUuRSKtwdd7r0TQ z#gc{xR~EKnCaN@iJHi*g#!c3nrERP%ZpX8mohvmXmcAv1ZtAB4Gu$;BGrziPxAJN-JajMje)Z71F`MCOF!=4OCw4^Qu$S>;(`_%) zXMu;k&6hK`y)9nX9QLvL(7Wwpvpsv**Y5YXZC@NnGLzsSWcH2VBp#IM=OUl=&CgBk zOs2obo}1tNy-emZ1AMG^z6B5*C9?wkJ6;rc7x8Y%*uxYr=t)8UFE^Axd{9Qa={r zl9pWM<$<@xlqNpB^uF-|aNpPN<(HeKhTdQD|75@TIiqT!^b_u7el+`ikjc5U!@IM{l^*W!Vz*#kS1M`p%PjQ?N7 zhYJ5!Ju%{|hB^~^n)h_od-o_cXresCU@8a@1PBCyAP|UvD|KwU;pRa{?H%ve*xa*vdazRZ8I6FtKYJ~Id#wO_%^;k{KAd_eUM<`~Ey7Vf%z^I~YJ@s!hdSwo zI_riz>x8@LM7Zciy67Bm(IUEPN4sgoxa-Dv@IgX;Y4a=ELpRD@kI0_~?1_!=FpBgv zCVCmg`4}boV&lCH_-J9gk71&(VY07&vajBM%17^zmmbMkFV#^ughssR3A0pm7FYDGV~)w|63XR&C`STl0vOgLv2z+tkXiQGea%;ZsCzI%cJ4er--(N(YPw2!{uf6(OrFjc_zB2?%=J4#NLLKD`&IL zl~HKq%G|7T3CS1tgJ#ZuWoN!d<>w zc&z5j~V`}TM7J8$L3pI1Ns zuK)bAx$_;)14#cbq7W>qI$Bhy{C^}0UC|br?S56N&Iq*9|A#14!B5tW*3fW`mQ^0- zJZ@h4A4Fk^WPY1_a_pt%*-VBYdXLm>IH~sXa^L?=6y_(vef&o<#VRP8PKQ(`G(Nrf zFHtzzpFTx9jdd}%ID(g>RQ>pRZawf54ebt>fBIhKJ$0ttxg~q@_RSB^na4h_-Mnmm zZMi>3F`$5|_sr~aV0*JE7O^K!C-};*C27dzmnSruaa%O8DhaJ7<-Xv-!5@^teZ1z* z=@D4Dj8W`p?iR2RDQA}X&8^4zVeM~R?rf)MY^k($30Rv*2Ixk+N{46SIj1659{34{ zX?MCw|9BDasw$(|G695UtU4YECtWWPv76l=B^{y1ft0}a1xL}e3pdxwJQns7q$5W= zURT(BpAa{^3%`LhWfN|U1C6irOd4O(!zoC2&+bF-xt$-62+-;F*AR3wAUo_CwAt^N z9r#}Lywf1Ox6~l0CnT;R$qqIuWp;-%EM&xDzeJjU#DK-TV^tEQA`&Qkf6%nKKrsuO z<_?=G^sae7 z2<;KuJa*~;OSe$E`q!^9Rhoivk&GXll7}+MZyFJ`=3quqCpG|JYDBEjdl$_~Og?S+ z=#aA*UR@xWM%5g0EVp04eUMU`mr0NUEk->6dVEn(mG;)#>gr(#XLel!>o@D%3eWkp zlYAF5>xmuXOMxa+dWVt5$=AxuQU;FfT~5ikIC$_ymbiK!?>+#ehn2Qxu^ohrxM=VZ z)X0*lROE5dZbmdGo!^N?&J;;H9zT?avOIKeq|NdpJ^$i$=pdv^ww^Ka)Z#bk(g~i~ z#0b)o%laT~&$4Ttc*B-!&#E!0%pS{zCdkx1iFnb& z-v_d~-@}BiSn;O7N@gPc7;#huxmASUR6!ExN;l}_JhrnpoTV$#-GeoGTXPAv_n8PP zlar?mSApAa`bt+bl;k;NC;dazGSxt3+~14Byz*beqx%Az-+X#c>vaI4sbsKL>`;iS z1+^oemG?1Zt0cI_V?ns(3K2bWY!d!zw@}3{YW>=&JD4!z+RU;jW~KC~jKA4cKUC6! zX!sbz``>NQc?bvPb28RhFc!-n?NSo!%B8AGU8i;ER8$q!HL1z07TLfZs3)0uGCd@S zmV$uanI(!?`JU(Gc7bZK*BYK?kc3Y%xA}Vyp2TC#;wwo>o z1NO{6^m$XZeeM$OqOQN6y7iKYWEYS2wq|y~C$IO$Ina>`WHuVStfB%lAcR7tQoHl`Mm)I*p& z<>QYEI)71oPI2-@D-7ZAuJ%emkrk7vi3yCI_`XHDn7zNwQq6nM9jO|iBLq|}bh06$F zHRNhvO;Ggyi=HpuD~(DoJW0*I*y|6hL)j8+yCYp+akgV5@_WXraxpG( zHk3-;uykY-w+bQdGp)tFd?3=YBU>&U=QCZlJL{(Ky1K(R4y20NY6 zgC74S!jriJfZAZ!ME{&{Qb9(+$AQrTBo<@7mRw+9p#ncAbO!zLnVy77)cE%;yr5Su zIy-U!tg$H&-z)?^cm921I5z2qi)*a9P0oNb87RdfLv-8(kewA05>Dp|iXqo>t?oHc z6#FKe6{1BlUxH+MrOecS|9ZaPrqHOw&m{`nTIR=_fIxc=6@+sZ*(Y!1im$y95B|NR zh4};r&qT>FkWlkKQHp%>)k3;fGz_LDxl1Lk zg2=*z`nc6zyA#(QHhA}whQMsZbFIPGEQJ1BE44%C+_8-Q;wQ#8yPA1~<;sFGsPS(1 zm0m`{uW#=@yY*WaoaEo()v&<8cY|l$8NimYd7+^I#=CTAxV(1XRssjwC=HDVK!Zq0 zp+)h@g*pu|SS|+!a!Ij9OWwh>j$vSI=XO+lac12vccVlYq_1L8%&CbqHJn8O}{#wGi~DdSm% z7+5L*;>QG}aiK&mG?xf3C&7*SC@Rm3Y7WCM{ebeKF*IxF5qPg#+eJzR43-9<)&v)4 zuA(@A|F~_hF~S@Im7l}?$Q9)gN`#0dJW>g$s^nsDNk^S%cYjG%P{}`x$koG21&94T ziQp@JupCZqCNVpT1gVb()1txN-@s~pV67XLd}h#)0m^rAPfW^1M;)5wgZ6e z2%rxFpo9(3_aRIO)~dlc$cYv1Pk_}p#+Q?V%gL}*0wf3xP2=R2&cVz1d(Ll}^4I4{ zI9MSLop}&mM24Z-X@};MaOyB3>&WSZVu_Hd@M%<&oA3rvcpV_TO#hEE*o8xP5~?MP zs)fkDx&zf+gldD3YCTI{^{x}zy9K@HXSG4SVBxniEC6KR3VzadGz$Y`xxr#^W!eY9 zGqX-UjIzW&kR>+8l&GcN6IC+8|BS|CUk4jlqH9l+>> znxy&hoWN@FWi~7j1_UzT0Nv@<_p@+j&oGwarsim{im};b3#4GiQ&-Ag#Wg!r+OLdV zS#IW64uBujLi@9!BqBTmfv8{t?r-MiuwZ1mUm2$|6Wg4Hg+`H%__)V*j%&Z(fSm-u zFYV73x2#tWZLzIFT^K0lbBJ?HKvO+xg^QB4Y?ye5dc{RGI z!RkyWRDTXi+k>iQK^=Zn-1ZZ-h(NqCikdWuHA zcz@-F(Oz5zl1)dwA_~8w3vbeewE@ZoSPQ!WODl#k)fnwNn%q84_QwX{$;9rqYbkp{ z-0R9)TUwDM+&zCA7&Y387;cFR@o8gHL*knR&%(O0N{_;XFg=<3vc){(fB%G6aAQ)A z&`XoD&&DS?zX7)tLTEoB2Qb&~=fZI7xj@n4ZjT%Njf2ud|KULIeW+h1T^)Ddder^C=waJntc@zgTz^C%lY7`7GUhSt2jQ)W11^;xMb; zk%TpwN_nq=LN~l@(AotVdi7&^+(%?Bb1TlG$5nOE8ob{SqHLID5sucWcnvu&%cLlCeXV1P2>_bzMyEsf#wkft?!U4##kBS6LKi zF$S>;BZ#V|MO?cO`i}Wg>fOO(vl!GfH0l}dj$K&2RxWCWg`B`5y`=Un?g;rDKlD-@ zHP5Y=U#watpdK?~y@c)&mW0w{8#y@PcZ2snPAhGRdcJ=SIaieC+Xi_S9Zg*WKLVaN z#(;$ATDJ8{QPxs7vd_yT^u*GCU3sQ~CihSSU)8E(CxYD?IL*Z0K*GPBgZA+`jP) zr#{7g{A&1y;U(1FL4e!GJ4-u4EczsiJ37WfJ|m(Q0mA!#pIzkT^DkO=Ds568tko$MuAec1M&Z#htuB!LTu7CK zyW&{9N?)oF>p+3CUpc?$F6Wm|hUIf7POrm2TXhF8unZh*zBp+#c$ocKr|k7@RaA1P zIXZ)L`x=t>xaZEy?PTFKX3K!psOrMtEc3DDTcky~xwGo%xx`~n8OSj-a%m-YqI+`5 z8Tp8RHu_yPkc4{1ZMfbQ5jNR7L_#`wP-nb^^8($DHH3Jfbq?t3A^JQKRMmCq+O2M- ztm6;1%O0pWPGN}`uel@%aVlsmcs7~8^9JlgfGLCpSMeLvaYKy9l^_9lCLKomRg19d zVOh}s6%<(&n)U>lXmywgk<9K_*A)%`0$E3*rRm2e9_d9anOttXBmc~9uznVex~t&w zkimyqkrs+5n-4b@nf1>&$cKzrpYBN(3c0W&w9;elxu$>17BxjjjvhQTO_(tzQhW%jF*F%%8&D|sRTU8&wOAj`|9(Szi;pZ zdyXG_?RJs8JB_qDiog~4;FC9Hj^sCN2SH0%68-KL^ zMC~+aX1FJ&d--;ZR&fFuTA8?{DSUZk0Ht=dUfwiKrPa z|8Orq3ZJz%KtFDp9OgRD{~h5xTUn1mK4c-;Sk(9R5xmXV3o`#&D9Gt|Ad9_pW0*#x zq0BXRLy4^Q1ZBkzWg(6SVC7|s?NmXp@}Ay4ceD2CUu#uxN7-(Ca7h{QtUw0gr*{o-`&mP^I}e zxA`v|wnqQtN=-1N6T&v{4;RvO&a%UJV5?(;uBok(0wB9Q}g6D9-GsuaTIcuL<^PW;JRG+-?d7eI%eBuMZYJB_ zNC7pV-kQcgri;pJ9$LUgkCv&#eD@0Vxg?a~k+<=&j(H%0asu*u?(DVyT7}uj#Ou+c z`BnPRGqOD~V-+f48)b5Wa#jhWwClt|l!{P^-axeLb!mN%8VrK!R9tHi+DWYP*LWnZ z?PH_Hvs7J&S8E0{F%ON@#)amw#5FW`&lc{yn{oExLocX**q9sWi6A_WC?QZ zZ+6LFpHS)Llq)JzEmoK(=!joe(e0QSdpQ z5V3KR_xJBV7#1f0Q)l8pCQF6#jYn@oFD8*%3LBEH{?yS#oCs=L@k(QHU; ztHNIFuGP_$ksJ}ceEDjAx}fasie|qn2af-2ACU}F@2HC-)KQ=^Qn~m-h5Ur*Vl^hS zRd}q2MMdb;lUhm*KlZ;Cws=WWD^V@UZK0`*o4CQ%ZNdPsIY24Ca4wpuR;o7&;DJi9 zERLA413(~_g6(9*2-xdc@z>v;(m`|=If49&Re%b(#Z^#elx{Un_*mhno}{hn$bx&r z6kJ|J3FxtQ*F22wki~@bds&kvI>Tf~HcjcM`g73#Bnr)gql)fo4>5WYnQ}>OM>-bc zTk1)T4YwCJHZ&-~e0yL!CGv zMjtBAv5qd*lem!=v*Rf*nB}_D2wFDb&Bd@@vZL)ok{Vyuf5j>N`C|4*WDkpJUb)Rd1sJ@&pnt_HuyF!Ac*Mk9&! z^I&5V!|2hKlG^A;br-qOHJkL<_oc52^-WT#&B|46lqrMN0ob<$gK~A|z3e$bh_Rnuty~YsI8|Q>4$1?JMTB;c306_7A zw`43SQM3;TkW?)*Zz#|U9wSB-V{!@%_|x#WJWr$YpM#WlIWRn5G+=TItd0x#<|jBg z_rHeO$wUj3lfbRJ5^%e%p@V7RxVEQSG&_AFvUBYzTXTl?nIj|0&k*?vp)p`huxExZbZnPJJXoyotEZxmA`J-YTE_nrLRXDb>!z zrjr{n{s%iP!lK&>u$ikREMA7?6GcZ!UE&j=Xl9-!dG$aRIrw zV-|2R113~)sYIAF_>d4?X98IG0Hh4S8*ewFW>eLQS|idd?umlcGO|q9xDQ2+&_Rmd zm}DGBuj2Uoie?t6$d-HBBEJ`|^d9T?_vTag&gB{>bUMvj^rDLJYN&I@oEf2ZwoS`9 z(PMvfjhy#WnXw5s-KiO50-Ywut`ibe-aGQ(MTU-$MH4bCSTr(pw7@kheBcngtevR} zdDtW%GsJE)497Q=1Umd#%Q2$BSD}^`!=kgMc_l_sO@PNhv7Hf> z6yLjB-f@P%;Vw1edpj?UDADqmwz)+XC&tv(RaMsJYZpefT(+)7$_FgnlDS1q7Aoq6 zSn#9;vt)$Oy8fjfJQc5T3o5Ol{N;I&V%?6QALFg!djM30!?1DHK3&fsL9{KS5Z-JD zsax+1_gSt+cO+5ysSJ?39`VW>1Q1=rhFE9f5pNz+Q@H9&dx6oOCpXIrA*+p5&gLS( zr$LARkmHN)P_C;U11YStU=A|TJqgDrI;2#pGJI;1x_~mL6m1joQ&ZY>pjn;Hw(o0Y z^2Q9ZbaeN8^}khjTVFn@#2{I3=5)`mHHpd(6KF&{gNaDhnzDX&aiaL7iky|#N;&VGiN~a4dq3Q~aYjES>`5)Eirr_DD)>0=ZrIt!!D_?I{UZFV zfD`VM$mZn{$!xZ!0)G;Hg{0%9d)x=hHT!*pwChwEPj&Uwqn6DWc+|^A@B{5AA;-+^ z10({|@S|kKTzbCBA0`aXeBu8wIalrWcUr@cm+*;Twchqtg^ji?)re(T%rMzXFYe*$ zzYgT zo-#jUHCasl&TS9jzRCN&I_`<#^!vg$Ge6vT>&nC<4{|^3N&kkv=eJOBA$1g@pqdqG zVb~Xsk&y>bK6sF?NlCO8@P|}G3^%DCHi>ZeHW(@use zEEq>q{`2xPgoF|s0D@=SB@HpH#XTUb8#ZCEyoyr)F7Xbe&D{9*9Yh;T(1zikAuU@k z`Y_5i9^L-jx-h8mid>@E8AsdcQlWzk=xz7LyY;2F`%7bqP?7vXm~NA}RgzYY^Q)S?&7y- z>LUVBky|I#Npap39+2;H|2c3q3hWeIX~_cF5=LCz)GXPk!c7o9!KU;Wh;@mU9adAN ztLNx{PbiNC9z;0}o&Rv8Lg<*DP|c`&+bA)yaQ?SVj%DG~)}i=*C-jPqoQ|a|!gj{7 zJ%(7AxbPp4jn9~+G7A$YO8i=e5*a0T(+eRa=@(*Gqd0h-U((j_ygj*8rW{pci|U;? z=-teGeLBzn{Z%$VQLP$9aRXvF6bOSNOA?pk``d7;65Ao|w}3L8B87V(#RL^u48FIx zU{4(XcUjjsH_wjT>a3IBfCrhvwNE+<-{o25m0<2$9PKTj%(mI#d()$s1U0wLO>^_&C5ho0mK zCIyeB%fR+`OTj{F;q~-nR$(#&+Sg?pqNW=~fJoFKcPz?x-$^g;Qmt`d7j!=UvR+JH z1C|6VzAo@W$MC~@fgc%$DJyjlZC6DaWn-yXPTNtMM3Kv-4eK^IOq{`U_PUVs9kr?2 zaF8)pFWXb?HGke^IN6R~@fO}`7b1~wod2m<*0K(?ge`wc0_t>nJ!4#0-W`F^?r-8+ zod@>NC7w*Hd!J@Qn~yVi@UJ#$vh4>+-th$Q+F909`Sv-9G4u-jVHacHBL)c$Ya}#6 z7mHWh=#c)xgkb2+;F9IT&28TV=uuQ=i88wjWD%@g49~Y@KLuq1wd;)4Cx*L^8LH!e zDwrE`op4SUyrN4$X;a|vG0K-@gUTp@xT7d%3+3Y6&hU46dpVt2xxhWSAUsVCpMRcW zl5Ywxym$~eZ^gJ6*AJsvv*Kv9#a9T3X zuaqH`+}{J zCZLE$8AT|5+XC%{=MAZYgxh-{T%=y`8BJ1vB9>;3nzDRiWfg>a9$apn^;num7DzjO zIc>yOu(8h$p6|T~;%}?bg6F-HF|`T>;4%63xq&z~$R@V}pV;T3k_Yvca4jX^!>sXc z-5YtD4iL6B4XBF)83zMQ;Ce9e{A{7F;P%CayLWmA(6SmDQ(*vwoy7~zLVh1@rjl*z zyaq%w-Q$_gf&wK-IoM%bQKlO#6ZfA1PQmMq&mE!jvCug9r5Iwta{yIim+Dye=)^Fn z^m5?%d*q~P3wel&K~pDiz`b+B7*Sv4O^O2BL5B2rWB9oWNXg)R%l8?I`ox*n$3T>A z5MBnPf~A&dmuV4to%d)T@1`C9m}f~)b297R*aTT&f*m+&JRCU~&j#T;C8mM~4JUxw zaB*xgP$xLVgeg0+;#O6#;CgfMUj_2dBHSsl6!(wF(3lZl> zx3D8reF8AOO<<^wGDNtqOBbj^ zK8Hr~0q@uQ$= zRKD^C$Xc!+w>t64Y)vilO4V$LT)SW74sZIkvry@7$h>vr^30vL?Nt!%0omiw1O`;? zZ{bC=A|uVBSAQa##14oJm9&t~DtA#7iDE89YbQ7B9|(|7IdEx+qP8lXsO~$#dBs0t zUGX$gnxMR@3dj~CDhHDdqKUEzp0dID-YMO77SH)AtivatcjUc0J^5U}X4{x$LTg-U^n>s!j1mGcUogw9P`k%-XVhr&H#YoVrFDo?;$B#cqPI zDb)+b)bYPSZCYLNJIcVB=ihi9*Iq5Ue4n-YVM0Dw3uk%-ems;d0zMh}(nM zKPU@wpJR%$HastCyZpg6@j~Ko$>w8GC6H@WkTqC;9Rpf{bds&qM-RIJAOzh_esK8( zgi&*RU3^AzF?#%6(@XW|ncl=J-jONMk>!mCE7sN{B9Tp^s6$=J`{o6^f)1)^J}h(7>+rJbrITkyb`J9>BRSaD4u@GLEWFMt)_&NkX0m zz`e?DhTV^!OA#qjyUTx@*M`_7L~d)cv3fnzry0Bute z=o4UCIIg>(yqkv~F)6my!>`+)bNMu@BoA+S@A)k;?&`Gso4L8bNQL&43uXsoqwdB( zES9;8-+tkwIEQPugJKfI6|q!%V*WC75<<&&O90!{fsANk51CejSN1CbWIvjm{+TZF z2?)F*2!y5@D($K&1I{1M61dO%U_C~)u1m$$gLLc8lq^h`|MH*KQ2$IAHgaR~6Nw>J zc{d&FEU}YzL$X%dAk$8uDOP<#7-TOujp-oSvGb-1T5*A&P;W`mTTbVpTj;bx_|X)G za8mQWNQqOn{qBY5-$cXtog*=S6~*}{o)8IbF$Eg%nWd}h%{_qJ-@guto* zRg=iOVUSz-aDob%xHJGM-yN{}9;=mlT7W+kg2l6Au_#u%N!l`b5L}48XidIAzWpZX zsv|o1oC|a=Z6`CCfR23u}c#x#a;Oo17_FE(G@D)n;xGkbiy&t&F@!x<^ zDWx)7^Bqa?q)+pD?i(ow6V88H{$9Iu>r?FbmB2=YC(mpa{0k)5(wYk(!EI2fV!y51 zAcQ_*t9@}?dy2YyRX3zev%l^U{Kks`8AEGedhBW0x`4gKQzza$2i+1-pi`ePHtoA; z;233^RK6V__$BCV?aL3H4Djx6i94RcCGSn zIo9D%XPK|%Q4UxCsQYRp3)Ci5CI_@p-T{-o0+W(~+mrjJ+&$;%Q|8mR72#0-I#j2j2YXsukgQ{L1EqhdMHUXwh7?2|Viz?E-)5?<%=&!+o2 z1xiAw%ehpQT%Zx%5qCJ>5e?F0Wtm*>(OP(;86sk-(wawE4iJDFdS#C$46Sj7AbR`y za|Ils<#JZJAJILW34SiDNsj`Ac-HMr1Ly4sL93OUK7QQH5--hD+i`G)U;PC|M@ z3N=W8gf3D-@0!r7R1vHJ5kXO^2r8J+JE4e(D50u=NK+9}6N(@mL`7@?0Ria(A|St= z|IERjIoap4)|}+{Tgh5U-sioa`x?HfWSMG`B2-~V&^puM4EznjN}0rf=H|i_(?t(> zw{>&nEXxSSF_;PmLmS*Z!>|>&)}DJej+EmKgdC%9s*X3E|JZQx*QVN+=Fp!bk1qUC z|JHi-&)VXzKN>tv>|fV7zp<6Zj=>_$OA9p;Q{5P|Sxe4B)L(yKxpg8(70;iu<{$86 z8!%-%?@LjRa>nrC{#b&dO_47jT!5nER7GS1337=R(k9`vfVD5l!m5X>>=D|EeG&|~ ztPL4rvY_4_)OGo*>1DP^`i3EBw7$z0Y2^n=Ye9KKDN5-#ON}=GPLa|wtwXdLv zyvS~HA_D>^$KqVO>3fFr&2m|$+goxh8q!ccJJ3b0-+Ra*tiUIQ>>=TomHl+=Y`+8a zY+icG)9L&?&46i8Z-MBzR?6FaLH%#>+L?wI3**eNHj&=l(w7|~lgLRXAVhJNL9Dfy zeRy7{_-S7*K5ldo1_`00hIC+z$CTnRnyqYUGvsrCIa}O_rX1EDtkor_LTQIT|>ol%m8SvJPw0A9vPBM@K#+(lu6&JPil%00>K`CdB56eWkK-n z09oQfI`D^2OeBbV!M)8bbca;iQR?*6A*4nJ#az&2i=Hot;?)WCTG8uu#6*s@iX2sv z?LJo=-Rd$4I#bYDErOcu8Wz&E9R5y>MNbOJWvcSva;O@@55_mm*zPM==r5`1`=w^P znLoGx>GPPVg9a1Ks2}}$pXp(Iv9amec))Vo9gUZ%j-RGLiMOA49=oOa!|(#|kei_1 zSBBgGXiD`u#t3u2F+nPMEW`rupy|^s8Ex~cn}lMJEk9oACR^go7bqPL+IS{d$Qn?x z$4}C>>PMp~Q?0+vFf^TEELGLHNzmH(7DU8c`Oz~XW zzwtU)$dXFyB#H&++y*jqk!0vYjatb_3j%0u7iO}b`d} z*r8eAI_F%RB;6Z$*z*V>m|uIw;>yGA-Y$a3$|h`5f^Y`%UtdGL?;_1yGB%DV#!2!Ldb0Px%2dVmuWWyOM%ly3<_i55 zZbrvlN&+kFqj%{+OX01aUA$M)bb16b;(adLh@#TBp?}bUh;9 zzcZ+Pc^~hmGkK@5=ZN}kmaRkJgA%g~o@KZ8K6XP@p3)m#AY@lFgZIQ*pE9%7Db$>B zEfM?~s^{EXcSJcBAHfh!?V3tzy!TJThz0?N~OD=(YUfyv_HkCo658_7SdC z*CYGK0RgOpKrv2msTrWO;s(1wWQxs?xX{`zcnU}cmJUoVy1=ym+W2x=5JeLwSfQ!r zzG{8vJN$`fM1PrJCMjNV;T+=EUS3>H_;sQYz^3eKH}c)%)%BfQveNIn)BCWHb?bvCwdnne zZ&5JeQPArkYWK#=D%%!>QWUwYo-=RP-;cK|a zJ!(9W5u*4<;IddA!+ADfGvobn!2J&f0(zM}wW7n7VNJKQA>h(zxXP4Fd-`8~s`Wir+8^d;MiXklCHqDvVAtEXIUko$8kOI-f@ z>%;4VoAuR#Ptxx!d_7%#`(evJkvE_ELu0Oe`79Yke|07F^3yQ%fBg{S6A}l43vh%P zc9O}-38?-UP&kk)O5x%H32PQi$&TDrc-NZ{qN4>+#Do?$HEb~o*jMj@R^^}!EM_mV zH%0adQMfS$okDv=8ji>mVKFaov39B)AjFKc&Xg#kNu+acJa{L3f>tu*B$dvM_ZQro zv%4`i_<>3jad2OIo?7qlmHbeUHAho6Cm~wa#j3>Cg$%G zaa~oa#Hsf&%!xalQj%@GuP<{6yG;8nZh#?hC7!m>hpFDr6f;P|ec_;|7I~BlkN{Os=Vj}k@Nwb4s)9hCL$FsjTBDi5;=5oIsCM!jUCPmjXB!b z)I%_F_V7;-94Fa$p{I4bEpB^&_XcggW{DOg{Dy#@)mZS+ntu~AHYdqiie*|k_Aj!f z_CBd`w4Zi1YhrXaM<&;E_PzO3L>q|td#j~RW{O3YICbRiOPuZ&RVL+U1WAL~8A zB#_KxPXI9@g*aa(!6r!@4n%kCo4AdaeDnpaI*P&3GHCw;%n5p8EegI|^2|qB_*!Un zpt>0rgfXTjvd(1OO0-*MmudARzPQeU>?^eJ5-8Efm1*rDx0Z^`BgM9Q+;+46F}UGG z@6H9J==!7t0VO?TV>d-~81N*imAObOxUMDtF_d#NlRFmqz1gzDJ@dG@kKErUCv_Pm zUe|vZG?2eM>gAt-MZuu&-OQ5+rf@J!ULI5q=PF@3rHCL|RT^647{+FAP+`08lCo@^ z2=n9|pU@dj0XjnV+)%_y;`5~Y$vv1+Q5#+fd6#DYm$}kUlNtNcU*ADm;1Z`SNKO4A zstjk}1cE2m!GwEeyF)yk>lW@w81+a}?F8Y9ZLY&f>p&+}Kvkrpxk5$Io?`GgCdp(lJL~BYf%dOT;l-8m=X@1;smTdlS!t6WYJvw2`-T^ zWZ&9>=>tSleNnUNgS)2}sm!zzf?XF- z2rG6mk&g8crHl^`GVVe2RjFIIy*{PL+;*H6yY$^{PnjhY5PnJkdG-g=Md@;zmu@*o zJkO8s#7Qlj!KzY)co~r&3S`n{p^!ErnuZyI5igSN_i@M=py+j=X+8nnv`;XQ2U-W< zRyY!!cr$RGc?X9+NfnM{5=MaqlS~&?h{Osr?%*tGmkUaFAoMZGtzf0MKqucKha$fl zssL51yq>K=*CCqMESJavt}T{#rUOMyn8M+uPG25Wzfy56mDKN3dGulalj!}>2=Ym) z0_#+n{;7(hho?OXPpgCjFTF~ailpt8^BF`2mn`2!T;VD!!t9dgh5g4KmK2!EVnte+ z$#AB;Q9NdgD%jcuN=_9lIyO)PW9Y>X76srq4g!y62!va~cpLJ`(R?*V`l#)vz#N(D z%v$->3N4$Aze!%~sQ`(FZ`;=GI}%CQX~nvf1(T^qJ(k(OtbOK;Ig(+tT9 z0v5oH+(N2(1c-rw{cy*#XX(-qMGMc=t93BTMCt4POj%#+PJ_F9Zzq^0WYRh&os%5G zwydgkOLFFpH6yD{_Pj#oQY-xCK@MNb{xL~;Bf;-QM2jjhTJ~LHwG)Y-_2X5$D?4jq zYaSJkmUsm`_jZCxl$ag{EFic=9YAgyjUN) z_?SF)A)(9MNba zp|^nwBcdD=IuWE9s8%GD`Ku#=-~ zutO_UoIEY2bv9Y$g9Sjb_)Qn6+_U-B&ufX_PbXN}d;TcaQDm4Ra+0!RQ;ESyUo<4$`s#YchZvyO89qh!vb zr4?H-BCX|chhE9Fmk9fPZBa#XzQt5FbB=nISV{etd(C|f`I#Z5O6~OIj?JdJ8Wa;N z;kM`R?lK;SRAem|EDLQ8fK<=RJP55vpI+r(W2^ud?@EXC0uEl~;+46g&J@`N=Kd@8Ub8(U z=L~`Y7sEf_cNgM_3&PHJEmZ}Wt#{@Y7S#znF&*yG2gdEfFV`NNPzbvxKDL)7GS=bR zy>YfGz6%Y{muPz+eKhc}yHYj#bD-b3h_#STk;Y*l_VsM7?}=m7e1hjKmZ-SBliu0f zG`Q(|wU^;qcOdHh;fJ-uGAI3i#0Ey)&2&2(p`IP+cxXw_-5fbe#Wi(5ILj0l=_1!C zO6!1BFg7y5==Xr68gJDkjI3CZ2LejNqC=lr*uhmunc2OO zi~hr4o&Kix{=FWV>-(4S@cD4h-LZ*Bb`7mehj?25$vhJJsExF<)g5l|G*g1Gp7`O^ z63!;-TvMQt)WvW5J~yl-L_)wwyUPr)@>7v}O3n9{pJ%e$4R`-0eH?KM&^yL3KW1Z~ z{(iYD=IEr=k$~dNq+9L9jTob?=Z5jkY7;_^VFIbY0e7LyXp0`QN~y?hybQYA?yz7n z5kw#{r!si=7nArslOTAM(CAz)%yBN{vh-KRal1ca%G|w2p93P6-%KRXWGqe)M!{;; z78xAU4mBvMoo;oU`9_p`*=FAk+RO#*b-L?$$v&B1f}n?q%zn#)Gh{2F*vhbY z4JuMzCbV=qpWGcP!ov`_H zhL5RRUKBm#R5QB>i3OPg8R9^t8EaC&tZ2H+$LlXQPTx32xIR|gUIDur_v4!Gk#{f8 zY^rVSd`kOR*!&M)5oc5vXWS}a(s5(=b)4~7^ta{cPq(69=kmX~Dybs?D(NkMo+zeh zlL^N+n0Mz=usJ?8_>vbqR-O3-+CLjwm!ZzV+!qc|+do~3I&qp@xtY10ZQ*~}F2szW0MYhg2 zxgC18_m<|l53RSu&J7mRlEh34!vo&2KR$H3m8shj_OtKyfuomBT>Sjx?ewchFCva`?m_$fOwS3?zP{P3q_Zh5W*| zOHfij7#sykI4GjxBld;qBM04kBV}360;Q6Jm7SAFPm_Do6ot${2!#TFpGT0ThLmjc zj^1a$zvka$9QoPVVQRm+|D>Ue)LOI z^GP{(!20mFOTAmo`WLioi^4vf$ThtDA*A;1uhF~=;?ja@CQ&4ZDvLG-Gq0#AT@4*f zl*wEx|EKn+c&V9Y&#_Zu#M`8`O}=%0!Z^YqkB`gGlKHiS~7 z)?mf{_Q-pC4$mz(hu zt(}@c@2d2I7IM`oe6h|7WPZHVgZ7#>MNSPEdD*}NhxT_-5)oe!E(K zBBZFg3*Oan8G*8!Mp7+HK9X^6kv`)0JA)mF8UnFG4Rn}={3Pz>`B+>I1EQwv?MB_& z!wH5C#gTkz?%t80jc>V4awdW(N9R}}V);u2qBjujZ8qr_o@~gPKw59@8=E{ASD&HA zPa_udjLZ@a>eS;kge*v6L&*>Tj_KlZJbl|4`r6W4DMm7mIK@w`28Lb;jq07&gR67B zGHjzYWAVw(;EwR}gh%1i2fQVE2m2|Bi*?g#PFC%#ih;zJ?q9nGTr{T^R(wp*lSQF% zAkuY}loaQ9sRp|BpC{$!x_pXJjA1DyKY>R91VmDCIpq@G2;V+4F)ajiyvx+x*0zQKF#kxa4J|_xpG^vGqz|Cc#*+XU`u?MbdXYZx$k;)8nyfM*i zbAi{E20@tE>Q^9P@{;Fg2A$;nJX#od&&ul9%doLoMILdRS|C`qhV8=kK0cw%qVVc(U>jlE>VfNT)R3QvUgPf&Z)`Zg2QUoDv^MA*kvaa z3fDHkU=tdoGCa3O&!M&IlZ^|GAZ1T5gvU}1G<-`CjN7hatxw~;|Gvx6v`wxs6ZxO0 z>g(;hO!~yRq##Qs(wA*VMm^`8M@(AYptOT(aNY>Xb+j+<0r>9*tBdJ<&)%d%dciqK zlQn@h6cQKCq{L^aTA_*4vyz9;AD0*`c%v)rS(x0rFDIi`Dz0=O3kCU-D|qzE3!Tt; zF~*nox|eQ@u9lR+*y0V~kW4k7hr4rQ?1{z0y^aLd>{<>b?#hE?E&ke2fe133?>z3x4_#0IF@Vj{54rFIB2))25>p8ZKg}Ml#AVMn)XJxjZ5(?7MNL9`$Z#54>NcpEs&02It7u9=DGHrXb>Y1# zy{k1b>G3rFcfo%x&d)7!>qXu6zR3L?7<;5y)jd>#5!oWa+s1FdnD|s8xl)rcHt-Xb z!;V)TSLi=X`T^=`ZqmL6v=u1%j=754l-}a>92x@N`XMNA^)>r-)Kl|nN&f_`A^x9o zMh!_?aHVQ@0vo3cmfLsTCiV|7H*6^G$PC~ya&iOtdvfdi&v&=TfvpO$E`6fX9}57t zi+(56T5tqU)EL=vv93T}krO)9692NoaPm9jF z|K6Tf567Z>-o)ljnjMfGy6{D*-duQG_|U!8beJiRiAlcPkDLAkQK!F%dA}E%qrQ6} z?%=SQ#Js2ui;QK=o|Z!v*z7TvGcfs>crtndX59QMNI>WulK{G@I2av4f~!2F=s9Wn z+aXJNzlkeAa&ST<>Xwhq$E)-AuLl}2)TAGncYA1bofv$O+yhc`*8NZ-<;;MsE5Dw~ zSlmlH7tb(>=fHSL(0HG%p$nR9XkQCEy|9wh!2T6af(_KZSl_?H!495c?}%}BmI8q@ zkIFaCs-3quut&o60e-YmF`JwlEeIh1oGW|Y3bTwgyMPtaFn32P^7rz^1Oj{$=7Q<4 z0$znO0%;^0Oj1HhD}(;6V1e0mM%pvR`R?$G-eSD`t7*;*hcSlAG+jd|?7+v+jC^PH zL|1RzcP`9*Z>W%?V&Ti~tvR<1kV8Z=KA)l@p7P{dshWlCq9#)Oc$z{J3}rH((lJxL zq`EtsvD5MxQp9>a+mBhHT7}0V;g^8xl?Pr;3eK`oKz|?y*8n94Z3A$1!`K-*nnS0= zT2!z(@cF*M!xezH=0y=ac*ohBYZPj!B5p!cdb-{|<^pa%ZaP*4e?!G+e)yS487`sP z*T#9;rcP*e)v%RJoScvv;leiUdM}Y=zslX&R)v-SO3!0M^H(6vjFZQ*J=|px77g+q zrGM-utJt=P2-2Un$2%w3h!SVS$J#?wi*E}YTytAp8zB2lomC%QWs`#=02ysK?jE!R z+s(kBF=Z|Fw&mrhy*G$_Iysa+7n!K=)Q)VBaH36C({m1UAV9h^RQ0Wv_I3y^?!bDy zJ)XbG1Fu*6?yWi5pmy#=_WyHJaaw2 zY``y&;Jq3X>xmQVZ2V*;URI?<eyB$hGPAsugv7bT>40g8-231JQU%HLXN0D z!O1o1)U@_FdT8pMIrqpzQedpPQQ()0KyKd5!Th62l;&>@&%OX5TfLC<4I002{*~R4 zT7Yc_0CkUJa9>w$!vP`Uy)~2!+xu`?{158e=;f^QT7z_e+xSJwe?2FEIOxuyPPehq zeQcJ{Jgx<#vX7~Jddd>sZMiS4w5k+4zza!c8;VX|I3}BM%FO-KPuqMR;#KGgA<GA$Y~t4eNXDeb*Gz^CTVW$%Z_A3ylUKKuFV^DHNOG zMv^ycVjy%zAVN&kQ!2uLsPI^w_>O=Z>x1w{+G~m>{N4;Hf;6zL8q@TsxXA|f0Ib4; zUbWJ)rvPzS1!>kGykMHw+9v;h(IF zRXm_4eWzc)yOna>KSuDD$B&~k10SP*FjE)*hulkhIhIx(DR3yl_iG9GDi0D)MVw&p zUl)Bi5W7F{nYWl)4x;t~@DdMJ=>+rT@$*V3JA;KfC-Iw`-_XzFhMzzqNRe7<=6$p2 zPubzQ99YgCqbiS$%A3XY@m3aUBhx-w;8L=8GY){5OcA*ob{FH1A(6yR@9Ml zel&(_jyQ^Qa6%KAeNu?Vl63H~KWa8V?-<+-am9E%e8(lnq2wns4?9L#pGYe97?%k5%|$lHCsHeQ}Ic zsLy18Y*Y>Td5d#Hx&QBM5bfxe=yIhQZpN=foK#9Yrnv?A<@qH3U?vhIPn8c^Yx9wt z^{_tZv!*x*7X$n@%T#x6;a7w^_-t2RHYzxKsWM=@GV6JzsKD(Pkrh$yS2TW^(J^jHtDcoTb+D>Z=N0 zH^vVW;I6yrV^z<&sz6a?0qGIFYN6ccy zR6YK~6QTHk1FWz$A2@)gU1z6O`tnZ?FfROj)1p>|wnGUH@RXjkm8z)j&s8|k z2XLcZy=ijni6Zv2vK~kLdr4_h?!$3^^+T@}Ao{@yLn8HTh!Xz5*Rf5BhTvSI3YTXN! zQ;taopm+e>5J#|_4X;f*sd*Q6on9DA4Rv3AQ(<w}Lsb#{Ay zJ+Jl+U1e!ibyh;HXTYO_9i!~4I@kpI>*VrCN#etsC;cZAWq?EnS;y720DV3n=-U)AuFZ2s>E zUJH1PM9z7`8@$L;^m5(tdIk_vhQM zEK479w>#g#0LCR@6^vuPuz?>FF_L=z-7J^5Hz;xbqCjlkexY(Rzip~rd3i#bc=}&G zzrM)C9983Bli2lS2fVC#1ezS{Yl|lv+x;0M%j*iOITR36M!Fm%wEfyVAC3%72=5*6 zTi^XF>@T;deeNpENZKY#g6UBcAN7j;Hcs{3t9pp_1pi8D74*?YUUi=RpnqAz?kz# zoVPQozB6}RL`RQUDpUkK{P*`a7JDZ=J6To}3A7M4>!X;XHOJWT;-`G^-~gj3HdsE< zS7?mnu^y5vWtt2yd-CDb@r!WTCVCv6u?4hcWwNs+uMFZ{J_#CAvd8le`Hj3)yzS|d zD1FtUehQD%6?qegBF3|BN6(VGZO#idRFdF`$;z;^sw}_Ys6@?9kmm_nLRio`tqat# zVPD^wl3LG@x_K`>^#3LbO*aI7gD8Js+I{yMQh61nmkLkY>i&_-8Q3f7`Tk&s=Qe2i zw;(qeZTf}OA)Fqb7>9Gni`Z)yv<{z0kUB}pF2UI-OTy(dsUuyIDC!7AP&J-M`w}|% zmHSjTkZdi-pvR`rGiS-LkQj$l|>zr%a^AHxeu+$ z89JduGBDOd66+l7TST*BqjsM%0^P0ncZZlXd6-n=oNb7Rr}8%Bs=7?p z^|c<2!Ryx!9s1AY;VxC?--Dt;@XPggKb4|~ia;-&OxL>Iu%;&{Alq%#2%)#+mfFUEPl1B@-9#)*}o0_ZHAdQ`Uqmw9ZMu-!w#>g+4#A=lLKo* zBwMLa7Bvf}#oa?V2F40!f40C^trL}rK!o{<(83xki5iKy{II%Y{zJK9_9!mgw?Vvv zBvyZL_Mu__oVcZyY?79$JQ@|58I^i2NkbieCmpw7D4c>3W~OQr?#(G zI9>iv2uw!O+N}+I91PF{Rt6rDO8Y`E9Yt~MA!o>3IzQ_`@spXMYpL3W6^_V`~a z?FF6>yR$bWYs+{Fxb(r{&{(d7ey4=?V!*IWp|b@G+=y^xm11WNEo2GIWC&vd;S4Yr z+lzu*@dLGUs5m@m6>dzS#lb~vK~me!_&OfMAQ^;KvVHsNWo{4)9$!kLwb1~!@$&Ly ze9jzBh2VYDm*p+z`V&6-*7eqdu#TV9KZXn`--sJS0$s1nVV_j%BNFOwIqf$~NTkwa zeF>hSdw?9)iLfg7M^#52&tbEDpWHc~=Vkl!_TikOkUJB^6up-{57pb!t2K`^_AdZZ z5I$|ff|1Oby(;^upVRGf&t+qT|Q-1*2|FiwP`+Xzp z=yzQfu0_m?@#w2LZRVLGkTXIKxY7e1M~YEjXYG!<9ydMU)xQ65p65qDzc2SLH`)qa ze6tY6Gre!}CF)aiXsk#f+e~bM1-F3vV8jsZqP4h0jc}1OiT*YPD;sc)Q8q+&g#(+h z62ej%V8Mbp;J=Dyj=nm=cL?dC_b70O94hsHO%aKIXPJ#?W>&bhSK{ge_$`_t-~AJLsdKPS7P;x zbkiClxe`rZu0$1;gw6b#$^c;aBF3d=z}2*ZT9wQNA;)m zSs8%~_n!1BdH>3NWPesQtGwr!+JU@AyTx-CHeLjnSjZP_ENb7GfEobW6fZL3NW=+b zl|_d%VN#*_;3Uq4q%Y{s0C{%%e6NqRgxd+l;#;YEFgtpiunE2me^5QX>>mn_T1`GE zV%C@dZ-=YxBwsx{=WH2xI7npX3k2sQe^&YVYkoPZiNyN{X1kiFl0(FaujbLvPt$I6w#)^w^WgW!g31dn}Zg9U2@v}4YgN3ST?PWEg zqO=F_r1O&!q{OL`-k8m%E4QCMCvG&@T^rwfW_|TtMeTH0te4-Yv68; zPx}r<76p414Z*pqL_Z!}+huUamvHq5;it}CA9NG?tR1I58+c~j_dW|z z!NRQ3k*DgwtU5$_ylpuhV&JUnQU{9|@-xGM%}H=KDul0}-sT`3lu=E9gm!p>n+?dI z;fmS{XeHEdLHNcUp26J}TNdYrhNXh<(;EWj(0=CWOdA0;?Auo(0>4YC1ELRht0jtTTm2q4jY}xi&0F0871ue|k!Fddl)? zVto?U`K*2UK7WDzq;vM%Z&(~7ZX}uirt+;npChi)4}HNNRGSoD8piSN{8rAd8rxNCcWI+=JqE*AFUhAz5N^dJ_WqGfgbplmeIGMO;EV>H(o7 z^NI)@lX{{wN$Ql3CW?~PKY_Dw_OXpRE$a=o(*lQ)g#1Yk*f3TQ;#Tlq?QNP>At?33 z?`z-8ultspMk7osIgr#9$W@;0+KB#8GNOowsM-Kqtq_+9kh|f8zhbBzE7aFN@fv?~ z-q?WToC~st;8|jZx7aSU0OAlTLSyOY9GF0bmyGCktoGx z@4XVH-rbo2(Mqzzg=hwPgjrF+9ZkfFpEp7fcZUsQFIHHZl^yxa8a?W9b! z?X6uNHkAXpwgNBCypxEPC#4K>5xjPTXFK13>e=$Q$H`Mp>+2UvYcjZ3ilDkjL1xt-wja6 zepe=AP$pvGrlT#Vvc?k#7n8r0jkpIumXR`q;-Qvi-~lr91P3yHt9UQ}Q}N!z%I`2# zHH96=P8Gj@k4?4n@h3dUMTBwA6*+?^vn4&K$(#@FS~~Ev&hjoph8%BubQ$bAMXF90 z{`-j%_n}nVT%ns!k$4=$laXxCx!|w{ey*5e0R(?OV%E3b$E-PY|jdjT8dwVJm zK=;1=m9gC34{fX3UcuhyKu!h2Roeopl#wMXF>ve1=oRo$=gQAlDz|M>0WFp9_Qh0l z0@yqRyh~pp50McJEuaL6ib1vO5NhS_O5h-i4;n%r;b&JQYDNtc==Mzk?izZ0M+-I` z0vQiEVeOOrB7$E>>9pOPg{m{N=YgFlup|mxa7XfO_FfhKK>gt5>cdqkU|CTCp=wvA zwpp&qHcQ15UkwC_0$t0^U9d+|;S*YBML2n{W3Jh9W~p`2_4LNS&x=Ql9{u+zx{-&h zu0!0TdYSKt`=22oExofS0tNKo-6nt)fbYDymnq`T4&kd4Fnv&LB9E;ry#?EmdDJvKI8UjQT5&6!De74tPPQ2dn+Xluc_2+;NgO&@ax1W(v zwfv|DBtt|59)UY#!+^}mfgdD;PpyG1_~{PxDm0xAjZ##0VaT^30)hKslFU2L4WYdv z(6M@n`1e`m^#WA3-?=;ciVHQMS59}{IRi3eT}8c`cww^Eg!#qB%+p`}tj4TSvH!8E z(>YYNco4n?&>eoBfuaA4b-a3x`%Rs)>r%jl77X>4H3J^uVp6jDpN?tUE z9BnbafNH>@9^woOs0A!GobR(5(gn-_FU*F(j-(fVI-LfY%A!m&2?2;5qpr;yaxS=) zn0vErofzMJ)vveRUJEP{D_~eBU=~=n9eP@fsX2y+9HF*P{_1f0qQ$opKiPGj;Nl&+zu#(k$UqF4Q5hj%?K;4PDTosXY(;?tQJ}V>&>*UU#X9j# z=Y?knOe`w#%?Oj2ZYk7If!?{N=RPT*NMM6HK={OE)X;rTK%ik!sqDji=f2*T#Qkn3 zI`6F@+OKzViXMg8^&Q!bVbg2a!JVJ%?CuS9uE{%{Zhhr<9UE5D|GBUKt4SBb(C?rG zJjJQE!Ay(tCO~mItBU)JwiSy!!_v}IMKQE zC+294mmD|Yjge5>7liBtLT(kIb8@851XcJRXf#_m4kX9IuH+J>}$t z=%bi>Ppyzo1nh<&j+}?lg>QTFgh2Ix7JJ_Yawx0>*0FK*H$m!Amy>IqyDI|{6DoCa zQ+{8YJg`~lljhjh#jge-eft0U+WPtqt;Uq_#`taErOq|1yWd9p-Yrxk?CK!OJmj|3 z_~Cz?*uL)tbKn0Hn@puSR~g#tAdMGc)D#D(BqQ#>-0n2kCJq>L92($li%E zX+_}a6gtd@1<`AUhvYeF>~+g#OV17KMvzodB-OUHnK|zR!>&J1a()h%3pJG@wA5$g z?%9N$nN3|6mRb=?sg&^W(ud@o3F~8R~??;zdCQKIajRyi>tnHWMj4_^H*2q zLg(TAoP!JfOACjp=H)`>1`jX3zqI&2L}BgX=YhqqON-wzOB3o#KMpTVUt0Q^xinY1 z^lM;gacOB8v%IRl{QL0o#--&ynah7`mv;u1|1B;5hgkt?tOz)*K!R3aS$ivp$1AA8 z6~W~dEOr&Iu`2Ae$|nlNvsNV@uSyQCN-eL-VAseRYjRF&3PEd1S!??ruN@d%Q(Ios z!2Z_M_^s{qTQ}&pe%5cp$G?pSfBz3rh+U^?teZQnTL!ILXRX^lUbi1ycU)d~!fv=| zY`8gX90}SunziBec;oos#>wT4)7VXKjm-6_# z(BE5Ge{VnjduQHv4ysMr5(aAkItc{^{uZ*(6*wvcxF1~|6zM>{G0nf5{0P$pD6tQ08yy@7B?Q)2mnr6 zbocB35TW-g&!NeX*n{vAlIdS!x0A`8QEjjxWSfsDVV=0TSfP%rISWXiqz@m0j5Ll| zXx_|oG;*x_Jz!7k4re-BzZ8Dwc1SIUpSGqj0Ipu|NBcd`-F)Y9G%N5o!$6-cI-(aO z2=oNTe|f z5zbEK=)T!vger*@06-XjgEJYXUyq*2)ikC4xMaEKA|P=7l>Ugo`6WGY;rp|?=R%`y zMp+kL(A)OED^6wnyedu|_h;r`itv}bCN?`)zWii7pa#+dI9+uaJV9^Z-+}{JZ^ir< z8v3nvTpQ#BCA)Ccx;ri}1`qFC(qDdceA#vR-tjK;Kai-Ohfp7R!5;Uei{6;)`hOhn zR=TpgDzPz25*S#%EPljDf0;<{3meT{Oum0m>QajR_tkLj&jsU6zWn!pIfGyT?0=j= zCg3CJ1~5sd%S5NkSf|@ayW3E^M_;S&f2)H38x!o)(&*7qer2Ta)KIos59dloYl;0Y zy6!wE$u{mAKC2)K;*N@nJFel5Yk=ggp}A{@Yi3rsq*hjdsA#TfW@d&GkX%=^zf^Bv~oKVZ%|XE=`I_x;GAWuZ_R7z~a?$}20P zG*uN0w3P6=idKe71S4e|6BS#$s-3Btqq(}1g}Sq)hTA4hlC_qHwI;<{)5Au~>pwlw=sR z*+^O&9N?nw=d2&-qEBUJKIKk5>Ng6McBpouuW>PT}qIBa**TB zAP4Eie^_CN{oYWAy`lE|qzRM8;eYaS!a+(C?vHfH{x6Qw>)aUU zgWFy6cDNso+k7N}T$H-y*j}$vhId(}Z$-9W^`XF%`GE~(TboYMT5E$ZoC>{gI->n_ zOxwx$rkaeCRjfkpnH*-%?wsz}w5uVBSN$R`du(fW3~JV+H!8$8K@zY0k4xAOOuDTa zKjsCZ~wxdfyKYK7yk;E{!G4+i2nIA^*_$w z?DxM5KR1?sZ@iM`&xX_)RQSKnpnfZfj2kLM82C1LUunL33}c)6Z1hUYy$YO13D&2( zb*vh{ts`bE!vHF$VG|-?3PD4)#LV~4#(FM1JWI+)X#4i!y%CrvykB-!t*$$6VTr~UzFl?7?k8gKgQufN=hsV*{kj_smK%H zTZRjP5nLwdasQAW;&sjLwGG_(+U8|*@Yb&W{_h{=dbAd9AI9Y*4CHQT$DOOMX^g!! zqWkmleHC*u_-PLtt5tm2peIlpV2>D64CxUu1d3j~9EcLkl|suMfvY^vANZC*%DqL6 z&^zc2slAKFqCSIV4NFOE#O5sGFe;MR#8o5l=+YxOiJz(ZrL<;meSdtgfoT)rd2LwffMLc*m5{Wm0yV(y&(zZpm!`X25ou(oYG@1@jFfY{ zB2feX-u3w|=A`HQ>`8jdgu^U$?!LX@4%-#r?YvnzC2#N1#c?mm)ER5okyQVKkRO9* zNRaNG9XT#%e`#;>o>?D~(Hiae1~-Qbhk6e!KN?mE2oV-^g<4d>^~>yz7bzwCH$fFh zt0InS7+zQ)zb!%!tRC@)#T|)09|Aqgb`}bg$t{tQt6T6%N%sUU5_jKx@>}L3tE${qALHBg- ze+v4pQtUeAV^U*BDN=Ik6Mztsn+y+m@~{YmAonrvz7CYo96dE~z`Ag}B^SkI+p)wTy@)1O z*n?#K_hR!cS#k#04Q9Anp5*rGxv|PU^FV~J7=)8327rG@zj42wZ_d0NRXjJOvtoLs zAdUq?*jTXt_#)xBIvIhHD;Az_tVp%oX_O0GsNgQgJKkmHvB5 z8WCe5>Lg@`Rko%c``foRw=JVVwj7WuUr^})XCsxY4SjL(k>eC1L~K1LXAsJS8=Lb}G%>gVM*KczW*E?~95>DN-llm2U0 ze=;{dy2XE}0MFFoy3SnMob`MD*^k<5*FNrH#NAw2xTbc!3tAeILkd>s;bcNSLdrYa z9tU#bRs8ku;vInS|5~)qh#}o5KF6#sr`3TEM4f-_s3u9hRb*dIJ(zxW1-%3_!2{*q zQ_ufoy=!$L0+7iButs8Bxj&cfl@D;P9wEVCeL(dtae+BjAY;P-ChuS{XJ^L4G$(h+ z#WL~KN6w8?C@a2<50>IGPOxxsK>8=N~US(I# zr4Mpgk}9l6Q~u?3d#}kW$}Qq<(|*^IAnr?LiQ=%{GA+yqFD&sFfd1|kUv#{HR}2xb z5ka9PcO}1*%9XvF~yhp66$o@6q!>_e~ zf5(+2U+Vs;-)aB$`$TvZ^lkGM$o1pP1_K%+mM7UNXGk3FH3qjuF8*+WU=S!ipN|{x zgeQN+D%a6TcR%C2Wn5S?HlqF6EgNtQT(q7D zWZWA5L7VsfQ2Hi-x#ca%#Y!mZD8|R6{b(#D&;)MyJf2m-Yf+Eu4VBs2~66 zGR)$iucV{ZaG9?VvLw8y04ll;(j^?WS68NrAwdG@dYIFRVXMF0p8qIYY$C-IQebIJ zncdwrNmg=|;kv2;l`7F2r>eL^>42XML=<}eXc5>(0*V!cn&QK1B=E;ya^;tO zVhJ)S^gTNmP#3X#eHiH5OGv?Yt_ukoMKakF4~_tksQ{2B1MpN`SwjFc#QnF&*KXib zlVusi0~64Uld9l22E0lHOOuqQ(T+YO!p;B?6$F@BqVvO1n6wM9iU~h-9U^U4l>Wa2 z_gR$DVdi#6vw6}n&>{(@A{>a4a)&Q*s8^L0Ff>ZcM1Eq%5RH{a?9ulgN6Q>QkL`~E zrN{UPz?KXUo|#wj82ZLTwu%4)2f>o;(dj46!_hK0CmCx7z>EiiF+utgux+>7-VpYK zpO6P88xXw6$V>!I{Q}mP0QDtih71se04-s{AN)LAjI%c|0uy-gi2@m}Kz8DXEE5fr zLP?J>`BHP}N_y41x$=V~*ipLd<2l(1!l9U<69;+aez>F9;m~(2l!E}vFPM`Vkt$0h z)N4BG4FmO-_8;81BtXI{<@yM9oX9%qxxAxw=zb=;uTrjDqmF!4?$`l8qF#xSPie?W-hobzRHyS@#7Tbw-l6rA zb2#M4jGxDh>ogCEJXrCw?^HMi?!~~3{P<(IE>EHZ|Pej9gd`Xf#U=+i@EMR9HLsNJ8vX?FqWFB zl)ZkMR?lqIda*2<0`6j>VZu3}; z{}Vp4(ixTQgL)~FYtYb#iR?Br+%}_wLc?HXG|T-w2r?7O%d}UpmGRFBK9&zM5CgRZ zV0RJ71qV*H-5&Y{lG;s-eF@PsH1Nha1rm-p@ZxMq(1Qe6{EzKC2J?+m@*isij4pdr zkn^xlCR3!@N=HcR(YfgS)m^gn=-MiJeI^c;#e?mU(Xus_xLP`#q?uo? z*{%OU@l;gP8xm@X0XVdV{1&m%RDBR-a`9r0X}eSge24C6aYl}l5-tw=iWtZR+R4)$ zCrxhhq{gH9c=L;N`AtzL?RKMHGav>MJy#8V!%DZ19!T1##g1*zmRFHe2f=pq?8m8> zj0pQI_&cWAU`rl!b`U!1xW%;FX{wc=4RxfDQsa2A2X$JPthHbQS#9%VnB>IdwaZ1k za$nMkBF6dq#)u*wxq{aCCi1d+dwGFbi7!3=@d4Epoq* zhx(8UBIFItre)E|wUlmNNt31-a!k;3kt07rK+Z8Q{_sX+x1T)dgz`G(e=AG=ArHAk zL)jndS;1Y^odRlaNPuon?UFp~?_bZ`xgQ$4kSyOrh$G4DmI3>Acy8u_%q3ul(MyPY zs4K1J{sjxi!Mu63c+F&Rr~q3BtOMKK9%%e(Yo~(hguNJkG4`@RLReZkWy##JrCt@2!i_p)Dj#^ zZ1G(9kdDg&K)jp-co4a2r#Lae1pwJBkRIC@G2w^rx>_L!rd^N=(2j*Hj) zPQ8_Kq1KD^3X$L4mCB}>%HBy^TaV#^IWh7Tofql~3OINx3}KO^?6i0@Z%+@wLd81v zAb8{gNRkOU>jMh73c^d=Kl?kZ215_KmdIm^a^ctuE_*E*lBn!pYk_@L=k{Y=pbYMV;3h7`swXm z3r3S;kOW6?1g+JNN7h_`#1NpjUdm(<8rSF3CZ34EhYq#S&%aq0G!xLpe_GDxjURV= zYThf{Wr`Lrfx6;}dnbY&q?K2$fT2Ht9 zFXVGR5=KDYCuP_e&kS|S3*>ITsyx}Fg>pZPoDc^;BPUeqCp_G^C4U{!E;{rWXH)$& z!9gA}C+^%-r!qM=1t|)>1QI^c>wXLa=m!inY##(gO3xT4KWx1P*-v+0sfO+OI-3m` zj5?nN6Bwq98%~UjKAyXh-f>xMhn9Bfn@u!Yb8DZ1+IA+z#)y*lqUX08pp(aPK*F={ zZ%nnjy-YvQgO9!sW47CL3=+357=HD=`n7*i(0%m*@_NfnL0Oc2Si-$Zd2;8peCqvv zuWlad@J2O{^IWEBNS#;x*TKm8>j%aO{_edl+-?`rk&4+;IVw*7H`FPL z2liuF#?q~_m|;D5LS$FTv4rFM20kXE51qU7=*%vB? z^GFDgHUB()u5ercZ>KYTeQ5nu&ho_{Uu+BIhd)~D9+m2p3tgL}1gkaw!yr!wWqkA0Tqa;^ zJ~)OKko*u5D}c&-nS3!v@1j(1+qk^A+jVw#T7IMrO&<+1s&oq^K*3x~>7mkd9`BAg zo~WSR_zgrz;^5Whec(7*HVuA}wZUdSQjl-e`UJ-y;cSv;8hy{=Zf8Ky7J9X@Uwwp- z{hCCvN*KWs`NNY9-t{DHe$68#>i?fJxb2O9z5Sl&HBNySh>XPn78ud1b$!o5Z`@6X zfO(swfYZ*WlaZ$#&WdmEU#LZ%wm&!7VCh#Y|J1rWX+p>EP3gRS+FXZ^U$*>Hn_Z93 zXM@#I4cD6&jua}-9vemI6&zRWico)wIf^Yt*>(Z^Cw=4p zI)e&S0vYO|v=f^?sL^qH-@v*tUha-{s`;+kj8u)CtyLvvvR7<;Pp9?v7i#v6*vK{a zOhtXr>=Q+uKb7o0;Hjlu)m><*eVxqa>K>Qn=NOhlJTHKJC76xnT;~nQ~dFzE?$@(~y2ZuLKUqbZdX$J>)zo02>Bu+KRR z?HYDAkM2IcD_Jx3{I0_2or8;E^}A}K3QgNOZoGl(ZAFtI${~!U!mnMUEsDOFxR=aP z^pHNnq<%F(!QlxBTt*n|1IcNn)y*K-Cj%26GV!$Mr3>6@ z@ETEoa+Y@@CHVo;KQSqh1*6p-tNfO7&m$YthOal@=_41>c1XEKEt|#sa;nnP7B^Ne zHX&}C->1aKV7m5}@XP$WaO;EPbIOniDFB@5CP~N^#vD#m7&) z%HLVe>lt+3I>@awk>iX~pKij-J+X^F&6|Vf92YTpM+<_0~*cH2sG!13eC2$=qfJqB3B;C4u zFjB-z<$Cn6k)3rzP-VP|`e&-)3JK;#ZB}l^Ks)1Q5PnpBc{?ufQ$|jK5h<~EYQrp z8C}%4k<^u%cTpq9!_y1$R`CKnP{V;;7%phO1g<<+A8!hRQy2i{HGo_|pAcCq;!%?$s-;(@J5z0U%XaoINHvPlqg3CiFZ(IV_a-#;Z;qIO zG#}r1Sg4XfVdL>KH!vtl#f*RA0kp>Dn+$ zKAr)YV=OT6XRkwiVz?)6Em59-57gnamgVw zm+F~S5=_Pl(4E^teN2U8o|VdqKA#{`fiQ`iR>M5N);0W>9=c4A zh53$B8WuQg^ewB(#r+?2S_E5bg#cUpra;vC{GwD<1L2EnMxj4z6qtU#K)TyG-m>xv z=>0BfZ_dKPi`rs4lvv(+AO1n?)4lzVR#nj(x9@sR41WbmCqA6dUZ0G*<>>S5*!9FU zHr#*!lp9@vI$K1dU=e4h`22i~UEbO5^})eAHy{=QfJ{mDLqP+fz;YGP-Kw^~{eT2w z;0c6%cMG#}J#8eZ3r<2p&ZSqcdpoIC4d7!*mo5D)fR6-dkAg-)7HlSgV? zHaDKBLv7BauILBJ?!LH|*BJ2_?;GU1jk)k)2h3$|0*S0>STNt|XzSImG?Vq>>Bnfx zeT_qAN?)G`oEpz9R16e=wBT1zesvxuEB!^7UNO``0NjHnD0c`7tOzWW z|H>dsflz=?WWn4eKq|$yUYocPr`R&hZj+#*OX8z~szh06f9A!FCv8j!N{q|VaTLhFV*blV9R2cVl63JJL zB0xs;io5f@UMqEXU%FaK(L6d(ZH@nk-fKdGaOoh+HI@=x$ytCDGgLjL-5P8TmUR<2o?%n{4~v5^J^(IRtYdPPv>M_608qmwhGQ6X($I8|=c(C-#9e zQ@ai8ul>_9Xx6(yfz%g*xyI#~p5Y*@P4vy41eg8M*OTjPo%~LI$*ApdInQU@wCi+S zKU64Po!P?eUgbfKr$USvtfd1$qtW~eU-fVuU>CHz%rcki-3%r)1BckMA*?|VTbnO$ zIR`3_<7{Dobl@#&5{-}p<&U~iuEpKH5#3wXooH*O!2$!)O1@N;b6vmsoT%#hNV#&& z)K3KdeBd^vr|ikG>SEG~6F_%|T(H|*zLE>Xt8XwlYh>rZ32Sr5%;~|lHmfAl%?<;K zy#_;j({5g9Gji~&O>H}UzD+SjqPCmnm0@UWTY9rx;9}^_E(dBjN2vO?fwkx?r4*Ky zH^*sX?oQxn`{GKOvIlibOm{i!xVATvOJwN+>I%%=wxnM+JnqZ8^;KZE#2Ow<)KZ@T8P~66E}eyO z_G5Ehuatjv(yjMU4M_(>2P}->;9xRo>1G)b#3A81etjE|R*%V&x=Hi9Qx>ne5gn7M zc;nR3NoBHPwky->0i~_g=rXS7(<6h9tX<`L1-hqA(#60PWzZjnZ-7en)uHK+wlU^pG$Lhg?5-uLf`;o-jEn`rErZI9K6Ol<*B+W75vRRC@yacMwR%yGRnpi=H*1(ET@ zGbS1bv`vSEnVK&6wt9$8dNScgmHFkp((#<~cM=N{T_eFo*Ha1dI%IP5O1?YkQYrJ& zD#7HnowdKF#xv3-3jfJM-ia`B>pr7}?sF8_x=b^sNlM3+6T|lpc(&Qie)y(#jfBY5 zF8-%C{EA)eI;14ty7rFc{oMd;=0Met>ZVu{NRs8ZO<_zLp%dXheiyH2gcY zD09vzW5r0L*x3FfqDQGz5zU_1W#hfVsj`DOa={B18y#taIhwY9JzE=R{|L985d3&k z)S};q<|k+t7{EeFm&Imev=Kv01b62}tYOc0C+4NX+r*1G@`ud~0Vh#`#)k@Vomh%O4u+9zos| za7*Cjm*QF@dJX(U2LI}D`~bSRs~pEjwpAaf2oAQ3IJJ3Yo`UZ_c04$3`>R76BRiY) z6_pRny4AjLYK-Rc6WYH8@2-2*4@}%}bL<$9aR96F(69{BauyA?KV`XtUHMVIsx?FI z98*S<0yJlEFmeUKfC{mPDgh^wf5kTAvhiY9&Ks(G$`1Jl!-BGs5C>tyRN*~DE z-GL|0bxx16E$ER-0N|hQA#i2BJvZNp*yjWQk9u@kr{q@@gX!mzS0ds)Mq`qpD&^j- zA59_6fAaNrZz0b$vQ%ChiIg~6U^{ezGc)+rEy#h|@)`E2ydNL#gyEE(s`_4Y_vb~s zpi)>P3&hx2tJTRbt>gXMd&q%Xsh&lkH%5%ygrv_^x0|fG`eZf?G3#`e<+yZ8oCkpS>UOXImJTG3m1IzxfO2M9e97yiFg17FLeG9se@r(x0%e_Lonj5t-L`%R0r;M~x-d?N`?KF96gf z@xLfh2h%cv(>L4DI}W^3eEBs~R&CSmyOvTuVQsl7dhM%}8(5Z7+sQkwBqKO9 zSP5#(wlqiAAzqgn0D}~xy)8*s@oR*62jn>R_z;?{OJpemfT)$vir<-4ci1%x`?;^5 z%V(DtnFUf(;;SJ%s&z(D1ek8y|E#%s=be@ltKg+f@a#LTtGClTt!reP{s6{_52t)G zcK$lAP^s($$UON=xoLTKX{MVD<7nZ}OJ{em3*pyzzgoQ|d9yjtlQP>$pa-&SN1W+u z1lxIKl-lgpm;|AwfGoTRaHA$#O!Fh_D&`pLqdu-o>yU*J+6isYQ22Y4w5;zZ09~nm zqz3GOk?vUMI|9H2BH)cf_r_aSrgS$5XVji>!~vz2e*^W3NDBDFPzlJ*ZkB)L$ZcC# zK|a|%2p*+3HnkWl{8Z}oxd7V`7s*SYNmwsq>1FA0TRLjy#?Tu9&;|D9+m&8Z^jUB%vC3x4`^pBFeW>NQ zp*Lk?;Jvs&*DUcAi&6;sent5nO4rTr%S_XB^}{nR*@a4HdK6z?*jis3J2m{pbfzu% zLhz;3?`BUrqpoLs+<5=pe2yP~@3`ge|D3_(o}~QIYadzH_q?9ETli7)`M{Hos1MN} zrOqJpx6+2oo+$fNrhF zvm!KpYb_jVV>n*ZPV@8c9@|zksl?s?=7AG>{T~r{eTaGms!_Rm|IdBb&r%5McIqh?^+st(M>eRza1p(6Y z&dM0-#$ysSAh9a4de;7yyf7bSL$A7rJ%n$fZq0abMb@N&dVEyHVU#}vyqKO&+Reos zhil(_T;*+0P8{^szxqh=F3KdAFD>R4i~(VTiY9}k&EIgtC`S@?1h^xsiK_GLu3{1H z)nS`);92U8Vti|9Fiaz%6ex2j2aqAq_U$8k9d061M|E?CfkD_j?3W$P`k=vLlSW3c zkD<(y3$l0~BSVmX%X3AKFGRRlT)C@x$fDa~SC56?zN(0q+zDxsUghK1ug#^T_}>O) z_xH90#LQBR=1QNY^h`KBV@}H{TJQlL>iY@SGRQd5lDA=FDWwEoGb6l}CjLu(>p>thuW?{5Ve<9xk z2EP6!i*M$B83Q)aK!xXO*{l&@+Or@p?E@=8MJ$CvwJEKD7s7kk!j;c=AC*y+N+ukN z^v|)1sLf+twRZR)!DID@9p-mkyydWva`>jjv#c@gm(NV*@2ZtN?pjNTO&8uubC`wy zIBCC_F+Jh9#I;2^E!X995bn<^i%$BLvShSt=KRNj$5Xpu>KC_PnO5@6RV-BUn+qxm zJY+{HHsKOjP_?k!xB{d(mk;#Q+$RFUL6`U!&@g~rKI-CuE6eJQzc?G!dVYJ3&zSrv zY5stX&$C`Q9&^6yp3c%gO|ZaBk+4YHV|vLjrD4sbXtseGh4|ab0gVC6NZVRS1t!V+xW-6oat>?9^4aC3}V#|7#iEQ zk6kTzrS*J8#&N2^3da5b5Q7vUuZ=CQxzhHUe4$6T-BsF~l%Vw--Q+Y$rtFtwXm4Q* zen5OT^~)OEZEI10r^FSPs#x1*^RdY00|3oYrt~1-ph_JYY5`$E@gx?4#$YQld02HlpKba(5IO-`l>#6f-n@+>9|o}5L9t`J4-GG z$LQ%*dq0E^^&&e$s~43v|(|tm5+R9SPc>NFXDMbiFlXC+duNSo;kD zv5jzCIa37Is*z|ocS@J7xn%o84pc41qtiyY7iC|jf-;T(5<(%3l5fNLIoHGhDEWgt zN>rf9KaVoFF$7%UD|&9<6#SBzL<^^P@?N$<+@);%0|Ep#QCq%H-_W}ytaA8J%;(Q~L zo@s4ft#UzKKDP0~agNy%0w!R4gpag(2uhS`8CUeuLS@w^S^JCk45uO^z002<&`iQ` zzGlsWp7M=RPo1#+6LIAuRSDs$sDVc6i``LH@b$gF@R`c}~aC(Ur>{Yy3ayqS9 zc4rw-EpM~{E5Iq(bn2NnL!Up`B)4({JpX9#F`5bi#$U^S zyGA+|lLgHG`C-V4KqmR}TC`P8UwvBW(EIlL81P$Vk=qQ*sCQuy*eNPl>oZh>;UJwp zkBdr0u$jFZqI~Q)XS2s-pHdM~S9e1M`-QzRH{$NleGl{|1OK%DEx~KwUA>R>>@Vj- zeyD-Bw#U4>rquS}@3kBKOJ)0*2H2A7YrW}B+`SY-x>YV&K9%nIH24c3g9g(4m;cte zXXnE-Oul>!Z-=^oE)yeK9c}9jE$uxm_7h`8Y`F$zvz`2eIb3(V0avbixnDGup? zt%gR)MYv($V1n$g8NF%x%j2q@=z>#TO|l07Ck~H-72|#alYbkJ=b?bb+Fr6@yt`XV zw^Xm5v%U2$U~@;W#_Y0j{;9DtWfC|X4IbE-Idwo_hIm(3^79pR_zrF z#%^u^)rphw@6ti73+)~__|hw|_{Kj8ePsDqz&=fMy6n(MH(G>u4y#1hVtRtYuh{P*FGB7OdQ_3%Q0}w&lvXPR@2|5`ZK?y z|J9oP*Wt$*wlmg*Dri$!vnJVFKjV<8YybXxj&*Jn zFfc|sm!`01RYpxhQXp}T`aCC+br78b1fSIMQE*okq9z~pku#|-BFiUD6rOpcx1mD8 ziGXdTDn@y-%638(LmU<5KD$-R7uKtS%}noa<4rkWglI9KdLZzU9Z0I% z;qg<(4<2dZS*ms{gPL0HwHN;iPijW^YVuf-O()Jl5SUz{Qkt^*x@q)MS~Tn*Jy+q>w1WvT_9 zn%$m|Sr(@xA{#xJ>!eBx%-9B_wfK-h?Kyz_96*i0`mhKZ`kVPkVM3Oxg1tiJ#lIG6JQJw5$+G7Z*8$rfVaM0!6b~(v+isC{TqkrPY@=2EVA|G(;)%=h1~i#- zv_NlVcc_hi!i`f4L7>^E_DOabL%lT0;mY<|O%$-BD)jgu2Ow!eMhGSoaVx<$0O+O;z81@%b z-ILUkllooX{@CwfpL`*Vt*b;}VZ|kQ>Y(}`+E-d2-VTIX4M#`FpjMe`eI(gF!C0

>{;q|Y|ZU86QkpS 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�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 ahXq3776X)X5BqPIQB}k1 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 rq30 zm+);U(pVT6??AY;)@94Gz6y(7BmwiTxx8A^g6o zzP(4+VL2he zeYqf%0m(2e5L3#0h=+SbW{L1O$$pKDqKGYN%VY8^pUB27X;3L8?L?x-^_*1&6FvLx z!GCfe&OEb!hj|%P235t;;099H35s)IsgC{dLnN?>VdeR=?^F^MX;R2v0Dzua~ov+h-~)a`)dV zCz7&&k5zH0O8O*UiE_dFv;8Jxr~AgA`3K+rX-jcFJv*N9(`{?Y9U2+M65xQ0yA8`+PRp^r`<(nICrxksM~~omqDQ zPe0W9NBMIMnly6Yi}k^)eqhP>T^CdDA_1yw!(D+lBmzG(r>9khw5;&40A|c?LQuUo zEM{c~KR#hxMCVsv@(KN51hGY$ZTjpyvh(^>_@ zj@L4lWdzHf2CFhD9*6zYtjt&*>z|(q;m=9I>Q!KPB$YrklVTv9&eJrdl&d)$1ZVFr z#(;98^`w4hnSDE67_vFlS$zUFKD+R^IQmr;}M@e$wqj+&YPl2DK; z7|tW{Aw0kzZ&lDL^mF%q*+fmHtcg@4m=k&M!lr3_KxhVi@Px*=* zmAOy(%}{r04?jLe^am1S)1p%1H&k34RZ zpOjC(SIM8BXEZj_7v7MU#M+(G?M5$+n`@1oX>3UK&-E5qOR5*VWLv8&&lo)-ut{VohVLtu2=s}o2 z$EAP+!@PCDz^H;Z8E64lp>Hk#i7tAWF7|fDU&`udW655sI?#{Tc{74lQ5HC7T{1&L z%s3TH%wCQ=1QnlSW1J_j`BAv(t*?hNpEn7Q<@(RSnjkzXiOnFf<}|L&Y22LCe&JTc zn$sC`+xr4G2d3)Ex$9g5D!GFw%9HPh4wZ4uOIq(gYMoWQ=}xtts~|Z7%l45}$73uv zOD@uijkF^E7cH|n>`{dGuzG~FJLLiFLP~%fn?Dc?8>!#TFo99`|1*yUJTd)L4B&Z0 z6@{MhI6Rh*F|Mo|c;Zc#*m9cu06lcQ5FXZ_>%W{!YV`n!*@1sN0scn93^Mo|QlIM? z`fY*fvRLS{NHO>15j`)tEc}l1^cnLCFZJB{%9yZuqy(eJK3zD7T-;Aw;tRWyV8DKR z?*bR^6tcGg7n$a{WZ;r*0OT8RywiDdD5t}f#~&?H$F9Y|@&|uAo;-Xw6!3^R=DnYk zy+73_(G!w(lX2$l5_85oke_9n$TploCc~(NqB%<--}Mjj^_%>zIb6=Fy zSLk2SDS8=YVSd%8aW zkn9)3j(OF?sQNxjNd`-W_P))RmklBzMlSy56M!KAq#yQg|Ms+mUl3&bUt7Qq+ypSo zR4o4_-u_utKj2ic!Yh=5C(R(-&HZXQ^N-|?oz381LSB7M$85T$C#R4qxzBd6-c8C& zLkkQ_hL^r^Hbd@tvZ{Z+L3WW`jzJvcoSZ%Og-hEXh9Udq$8T6tT=wM6{L>tNV3k_P z&U@VN?{t}p^cj2V`HJ8=6Pr6V@#fIWL0Ho>$X)VcxZKk^)qp(l=dTwS`&}UVaZf|p zxt5U-1MaJ98QHBc)Q6&(#~ImITyA&G`Bm@c32>2T7Z6D^jD>~#n`6|;1z+c5uS9Cg zUjAl0&~lqB^gG@Un^W?xAAD5;EXwfwlFgsKfdOeT*+w(jMsbi+u$BFh*~i#0OBgV| zKoy__0~{VjeGvd=sE_~2$5J6RtE)sGzoNLjWPtkbAJk*N&=^F3P1S4V3%!7RIN-UsQ5czhays8r0wpM) ze<}ne)W4}-r<-i}eu}jA%IWw6kN3W{?~buThQfUGmcgZWjKZ@)SS%%SA#mN(%g8v? z2zVa&;^m`Lkp;c}0*qkd%izZx4`ya?5z!$xEo zurM7NRT)>xc=KVrIKMJ8f;qzJYo#&JjeJ1AKH2T@KK4Apx)+SnR+`%HS8aR!qe zOoZ!hX7{`RE3-fVlh*(8+1+oRh7?FN|L+tdxaoe>W4X829+i~Vu8$R$-_Vr>WaY#sI|sfnyP3%Jv#Z1gTw00~h52IO{-dR*9< zU5MT$B$SzFvDt0mg^=U6 zZTr-XU+-?jmvFYCIa}4s;5~&PCo6j54pNxQ19Sl}z@~j%3WJjnTRC5V?g2AF61??I2h9k5I6JoZFv-|j_hSnyTrqac3~QyvQBdu z3APCY*MH^Jld6~LQ`0C}pZt9|xaK%W)|ke6k!`-2ox;syB4a9x^0srgaf^A$T>gUm z+rniqahZZb`iU+fksPpAKVo~^1KFAt6t92k zm6t9>KjX4ph==I05vjYmLAbb7ZWiu-UNR>U@OeSp1Z%zndrTuS$Y&@HSSg4az3+0u zB7^mt@%{cO`B(H9WD%OT3_e3T7H}7&b0aQz7nTI@_kO=DS1PrAa0_sX8ec%l(^&?-zQAj; zz#3BY47>u0c~Rz0-D1j@_hpN#@7S zAY)hQyz?d8DypfZ6iCDSj2;1AvxL+XqN6vzpJgL5RspzO-dV<kEMUWtjOOM0fY=K2a3LBvV00(^#NsK)0WdOyW+AL=YvZ=|q>`UI?nh=cie@3y^ zdDjCg;lO;C=p1Jl2Z*R9S4Fz6=M=~oC2VbOD^D`c zg=Euj?OhS1N(FrYC;+$QGBHJDDIcU?XIYv4F~?~$;osLotgPc@Z+7227}b!;$Hs2$ z>b{vMQ+Mx-HtD{VATgM+w`Jvv?Ma|{K}@ZSZkHj-htYS6=%WccmChN9(2L0c=TrtE$jRB(aD_4E5q^2~mI{jfAX zAKg`Bk_hPCxjRwx^so$Z++zZuI4PX5H=x60LRlcGh=ARR=7!vkh2;gacfWQY%u`&`_|9|SvaGo3Y_Zk3{n?qyfD7Fw-De&l4KTY14QG(c2&P*_5C|q72U2Yg zq)_mHV3s0C@|a5b*ad+cjahNe`83gL)zgim?Ol_md#~LLNO@=S`KU)>vEfmmLV*ls zkL%oilb{8R^Phpt;T=mBeEFEB>oHVp7p+1f2Lwn3FeZVv$3Y;DIM!b`{0M4jIqItH zu%@t>##7UMgWsN>xo*G1HGOkP*U5%{#qN_LA8GEDN@r_7=$S?Ehe<(&QQ|%n4XJzf zjWWR5KgznWATyM$)UPBj?sTLWV(tBj^Ed55o+s%)d5@H3u zRMO4i&A81Ov2=`l>_F+bHr#I}PvI=k;A}bsRknrsG3tDYACTFe{wk-oOAb(adW%pSLE(LDTZRHAR)8xFO3IY z4gTUC;C`#k7BmIK{uNo3`8Eu<7em(ajOVR|{Ni*@N_Al5FO=xgrQUZaJ4s3SlZJbM zXbj2h^X8LjnDpWOQ-QqS4P@x{=)I@rA3Ma&{{H#(_wFNxI_b5;o78Mwk9V)A5l5$45;BBlv%ip|C5UbjcEElDoS5U!Ou-4zt%ggv#|ffz42h^)8`XjD*AbPO8TDG@Pqh4HXKsM>g2E!lxERO8TF_)=r9N z`#V8NXI<=wx$y?XOiQWvtBaCbw2IOgOALqm(&lqe>1obud0&nXcgSQq->s)!Cau99 zywpED42_bnnBd^T*$t>pp?lOk-cTM0#aNSnuGJVdL~_yLrxDwQv&#XXhKPkId_t~C zaMfJTPfYRZZOt_S-E*_W(f8!L%kxVmzR%_ZRzhBbQINCWI&_nUF?uhk*`uo^f&Qdp zcjIcwy+oQLtrX*S4uBDGG`Dj(Df``#=iaCaYkJVovB4uYFLURIMRvlkn&p|8CkV!- z=fofM-xDg?SE}byY1rcc;W&DLh!S-0L#TM)mT9R@4%!_x2adW!F`NavT$em*6%?}f z*N#vzB3!;HePpAELa#5iW*1Q2?KYaf^*EgIKLMilVnT5=*@Gu%z@zdVraNu3w|A{MvoP-eH0JV9Fy= z4M(H(=Nkr3RvsleCtmtErLQ4XhZLhHoHqh*5+EQXKuoGT+*Y++zKbm0(Q8ze6Wg64 zSa4@M&uGSM6fql~06yb>qG?K?}e1E zH8@C(LlgYGhp|k9o zw|}|g=g(7064I^r{9PSCII1gH{klfp;I7HRO-n(yz?=>JI&RLpKOZbHAZ#oVs${yB z$1sxy{!GLj?3{k1wE9&dpN%{(WPaibX$|F^3KnZ5!p5cqbk*m0#=ywy?ZE`-^*3eq zV?mXl2fvuBkL><>_2pM6L5s5=qd;1S$Pi+E2?=|5|ErOW@_9wP`76f@DY&e7tc}XL z#7kDhz|G7!wG+qI#yGRGIGP3U#!tzOm%s9&FsRORw`blws8p~LX=GDJ@{X$TsoudHR{P`{SXl;w!*wOn_n{=);2lEi4j#+NFK5YHV(p92z! z0@V{i6SjC78Ib7Ky#fnhu?hjC7=QhJSXj(bOp60WIwE;0R2u>Z3DkfI{2ezELJ9z< z@{Q)KBS8fXGLdf_^m$_)t77*wNYtWU!9w|9I7@It@r;&=MslNL=bIzt zN;0PvB|fj|(;FSuF}B?*&KoNBU+eJBiuRvaf+CIb)0o4)bn)l@yb-u~SaN~mx2j8*kcZt~7l^`STU6ssPsY&u%2>f7Ap+o|f;+vGQ->VLn< ze_Hj}V$-pgJk@}WrhreXfjdosJXH$3nIfnbB+(osuNJJ<9IT@jV%QvFp%!Y}9O|qV z=G7b)pcWq993HC{k=z`SsTN6Zjx1I?UfF!SRxPTzIjU3bL~rwnA+_lH&C%0pF^kPH zFV$iLpYm!s6`-CR z-jW=vo|4>>lBu3bZ%HjyPpfQ6t5rYU+;X~8{Y-DmnIZM``z`6y>KThI886i{H(D}3 zsh{0xIm=V0!dt0=1e!!EO`edY)|#b5$Tn=vwjku#w&pk!a=lt}0|@l+R(dQUFS#`@ zlfdB7TN%ZK{L0q+TEe;J)^nYNg5K7GAwuE(*1~B*(PC@SOG5ERYw;&S$xdqtkHCbt zF$FbBCE7~mHOkc5%5*f&8@8Rd&?vWUD|gnY@M^0F(5MV=tBlpSklc15Q=^LBR#mKV zv9j%At;VJ1wo9EF)xB-iLmD;r+iIpYE-$uSeyLHr(N_CO?QYp>VQY%pwZu+VI@ZEtkeZ1QSv3eap0Z*Pv(Y)Ni!$<%D6x3?B+wpF&b)oQjk zx3_m{UhQqaI;7cgzrABx^V(wjwU?Tm8||H+G_UWpU*~DE;aAy$d%GmAc4@u`ea+%^ z?_`m+u69dsx;{&S2`B8#J|aA9dVIYRz?v|aB$TPN4-X)hLwcQ;V&)qVjaRX!0Yfmb zFPhU|x%boy_~6_}@*Wb>|LVZ>iNVP=taA=3lQZPyeb+GuB=!IB_1-~Et^eM38fgSr zp@XQQ7Xd>@MF^14#n6!^y$Ki*0TnO-5<(A1lOmx=5yXIi*f1a+R8&+{bO%LYt0)T6 zVZYhuocX=anP=vi`TnscGnq^lWZlWVKG*dLxG$`EDOmx8BlHHg^m|DmI!_7awLG+H zy%S4Nu!R}=eH#pHjd~9kdV)iSD~yPK@3R{aDf~A2#C`AK*5Q<>aZyPK^%MV+H2U`2 zgybu@IQ8krQxhMCo_M)Fc*1__7&tmq^F(-&_~#o~P7C1~^-MSV#q$=3H0V`->vL_b zmsw&D6!^P-RLERZUwrh77)=mp@m1`NHw+iZ!bgm0)SGTmEfT6#^a6M0`699AfLv_! z|IoeyAmsl+`yP2_XY$>08F&O+yYCdnoFf@5SrNs2vbh zRs{CTi|pMmBqqbReT!g(B~Zdj2yrdAls;VA2rhX9E_Ds~p=HcPWsMc&j;QT3 z)7)o!aPKkvJ{SCcH$|N1p8Y-&`vXMxhXVUgiQr;{<5n)tHr{TIzMifpef&-ag!%+Tc?F;K4375*Iqx2tym$S|{ zh{t8F$1*q0WNcCxo2Sz^qtiB{Xd6+~f9Di+Bl6NlL^5BCv=RDWgfAcR4L-jan6Md; zu<0Ma!AF2kp8MBv?i;)2b7sw(vVJ0F-7|XKBWlg<)T(R5ic8qCbLg^D@bBY6d{O$6 z!^t0Ze&4LU=dHXy+4#-cN4#}B``r1`uxIvN@7(T_`JEw!oamD4vBeDuCG|;#6)A;f zR910n!DTwDAhUp#dpW1?L3^> z>HlkIU~Xe@VRh)+pONo>M!&C(f8ToiZRg4Nou}V-Ccke#`@a2raeL~=_SDbqS3kF2 zFK)bDT%Gyx=l#;!`<2ZPt6Q^cTc6gqKJ#a7lmF8giZ~&uzk2Lm_u{(_U-2C0Ao!{K5mL`XO# z`rOQa8OI+qQPTEdc7G&3YG6yjLY>fiI#R7dv^ ztM2LFS%jWBPvtxvKmFmlv)`vxkg~o7Bw=G7>yhvYR~@>jwX{=ulbOEsLUR*;F>wsp z=NjI!3rNV?tJinNj<@tkW>MP&gd&0Ze928UNd9vtYoxhXJx=n(0y#|5)uDYr)J};u z&}9XhWlOmGw12(LV;uNlbsz1zpmlrbZcEAS?_Ynk-RVbTIV(Gk-~9&%j=wKLHYXN8SA|!o1RV;xQjT38s=VbQ=`3CF#P3=}zP)gWOIJ}Bu&1$CV`=CIf?PEzVglRPU&#Q249f9C9Q1^!h@VQm{<{Pt1{QO6$}TM+96 zi*O{NRIn9Xio%)tRB+t%+>EVK;^Fz8`L>Hrh?NibtW^MQ^56A>`f!NX@%qEkQm*8_ zJ+Arz?&5{V_njB(3aVQAF_ZA~D5M!Fo^1hOB?4X# zjhkMav-{5avj)QWf6;ehod~`LL*n`t`X#&5CtzS@>As_^(r!H2Kjr=ibtiCM_s!rj z6mb&r0cO)L8XqkNjUbu#{1PeLuA?KVv!rbr=+ZQcfo`8QyWcLLrM8&7tH2=$#Q$O# zP3K4M?er5XAqccyS;{24mMLl1WFDtNz)j(FO=KY=d%;}9=l+P)A71v+?_hA)%HY8d z>2B^<{}><)t}SR`cEN}(*iPI42@Lu`_3GwfJl~+pMctX%?GW9ZhPDv~DSC$*6R-(N}qHQ9i&AYQ!yrK!Fqx zmY%K%;4+UjSxDY5e0?wK3_oDjA(C;gUpi&h1Wopr8cBS^E%6^2zCtQ+pY~I_J^C1< z^HH>pEMV?V1I1ny1#@gvHT?>nc#c>|aww{haCt%ZqFS+v-36Gs^K4dJN{1UgmZYvb zizMPcVk@KtAQm*L1G!eT0zY^l(n&kD=$oXsrmEUH^>9o8Sf-av5CGkw=^`~zFM?CY z_NfZA2GmsGbJY{X%~8&*%eY1yU%?E{a$?nruWb+T4_(<;KZ>`I>FUO3P`1XY*c>W9 zyMyBspL|z0-%#ysj<&@G0%>Y6MU7`D`>PO%7RsRHxROI!Cq$yk_!F@wgsu&%6Ov?8 zx3zIOH09ZwcAlv#t$(MNd~j@F^4nd6XOZIQV2MUxP({-`)7C~olr_?-sGyT+=cynj zT%4|?V(!(b8;FG)EGVcrp}U@lwREv|Ne75JnKu>u0cJQ+#i3@p`(f4H>9-##KWb2ycX#0#kDVl!XVN@6qc>E<!bK|N}7r`)GK1P#iiR&!kl+jg%*2ms{kOtFmFa^1GZ+EVOuSC0mrqwT|oci1~ z$en(vq-V2&lxc|cI(HYF$EjCPqLnL!LLR3u3&dL1pCqc-;s6}dQqux=nL3bzl4Dxj z>cQqO>E!llFdvXn)7r$8V1J~zEDjR7pn_AIq|KOXBJo3rdEl!3|5qbHEzGkjLs3Bs+07Q72{miPE)ilB}pj%1&s{;1iO~i32V2vFw<00hkAD z5L}x|6ZR%RkK$5+bV9mfeG$uY(tH&8Q7iDs_Nf#9VbG&25FhvGu7x=XpO%JKo1ekuWp7}|LZ&A5S1%0_>nMt2QiLVCm{dX zmX#`@x_?9k%OSb5YsD*@V9BJtNJ~QPd&y_c=91a~J|P>kkJ|!dIGP>g_YasME&2+U zJjM|5D4lWbmqt%FvhSA;!2<>q0oI$fc;8Rjr7$I%{h6->Wfu$G2Nd-KvK+#?sBs5B z6ZX>HUXi-f-cmN$pd2fR7bPy!t+{WRIs?8Vr|YHIpgmT+w66#DzOL2ik89ker#B_+ zZt?Pw$$|lALKOW!HPgQ;S{*^zr5_c8wDVc&BtL6%tyohc{nF>%QKz9)iE5mEHaXHc zKC*Z+rdl7{fe(Q8*$9nj`Lp5A*{8cy%w%v7eR6Vv5sWxVBXW`*STGa3!mLNCN;rT+ zgg|NDxvUcfWU_udl1Yj5w6jfpRdt#X)08SU zoC^8nH*T1ghbNVDQEV=G)&PCk?L_M8xe^e%%rKo;7Q0&+O!zUxmuRA^34{tV`UWp1 zP8Dcnqw_q0@<|f1Pirhpz>_WD-E;c)r=%@IGX*>}u#9HLinHK_P7S~=m?xh0%yu!N zdKv*v4M@KXP(J=b4)?@)B)XQ$FICTJqNY^>L3fod+*(03vM-_gY$4bfcs;t7Kqx1p zTev5^SJ2HAQZX6p$)OZFb}nA}mUPOZ7%U z(^ips;VF3lOJEd*rlYU>hj5l0+j;2gTyhB>Re%Fz8d3FR$Np=!Qno-HOz;M9qQ)Qn zQ2)3aztx77K9BGN+HnB@q_e?8f-Oi@G7Ikp9|ZE3*P)jF6q7eZ^YdjIp{UBqe@n72 zFClk4GqQ0PfJ~6XdDIm$=^7htL`qm%LB|{UY2Pj?1YJT>((3)ud_tSUqDreL)GIkw zyeVJOFTREIZlr>)u_~~AxF7%%`JrSEs)?` zx^0nhW_4V3-0e%KXIhUY;g9u*NS?z^iN}pk5bB*Q0_W7(<;v%WYM5>;^dL%W_~Jx& zR5s@Vto?#L>SX^ks^w7ePhv42nXToa1iy@Se4F0;(o_r+Us>W58i*pPng_SKd6q^)z4+e zi&Jjt^Bbr$Kiek!D9M5Mkz4Vm<#V>N8o({QpxgP(W=hWK&2o)VoTm+3s>s9FhPeB5 zjV?C{5h|xy;(f{2VcmMy++>@<`e`#KP#wX3kana!3ROrzm61ucICKpwT~;HlQ8K-i zdlD)y*iKQ)DXY6qQA0R2p4)VUD+%6~6)dtzP&4un?$?Z@WGzFJPlkuaObRlyE}L;q z(axQ>qZpjP>p{U)gW_rGiy{AVfOb~_ zWCpJ!It$(?1dIs~%XIK7j*mDC{G5;_<1ZA$6VwJl zUuT1^H$AZCKFG)R0^bd0=X$UO)p=XjAvG2yWqq)A7F7OW(bkoDdjMzR*f52@$#qn2 z1(aCedsOfPyxD0g_yzec)m2D>htOUseSPY78p?BW5ZWo-N1Va`Rn-3ZLYH(DFro&a zuJj_=eTZMz_eJ$`hpt2fX|zNCAe^(kpR$lYiSO= zj|Gn5JVI(hjWR(ukpp(T2c+%cT|<}XOe*;rr#Hv5tE0lT2|y2cqQlSieBCoB0WNRi zpae+B6gbK+0>B#rCH^GxXnDK;kU#MNley`1Qrh`sDng z3};(B>;qz?S5EsaTj(ES_d0*u(K7UT4M+bstgAd!@ybZPGBE7vD6Kh&>O*VTq4XI+ zhr8{OODC>y)9&lD5}F2`GC{WqhT=n7UN}e;55D6Cj-G_~Qaz-3f*m=K&Ya=Ep1V}# z)Cb$+kSdM09HIWop!-bJRRE2?MsA=?@LbR}ODOSUuHF;(jI+?L-d!c(k72aO*C?nQ zeDLk!qTZfjsQhj?`E&exCg?^v!q49rKC5(+3XZ}*+LjfXNDu8}!=YOcq|f+HYciD% zJA!)wt(u}03OPiF(<#WT$yApvl!e;}pK7lM&=}IQh%2m~i}yyP`Rk3l?7d!>q)dC| zpuguI-_vJRZu;dALdpz*n=FJcK^1r=@TA^HiU*%s5*!NwKWBqw3FAjK8JKMkTR;zd zV=7NexfUK$%NW&Db3^?pK7@9y$GZ}XD`aygFzVOcqivrhy}ElP;o(9yRHl6)1o?F^ zDvOJ}_wvdO0z$V1xNz*0GzQBB)5P~Lre?&}%xp8NnzURplwiT(onacHdOMWT) z`2C@=hFOy14az;~Jks%2U|y@dL>;&+iFBwEnz@fGoJ6_jCRkq4OiKMr;EaGG=mAxW z7{2i>T7iN3(v++p1(NE$9o4{Lza7$SF_4HTV|0Ibp0`)B>kSx zlZqMN-aRIcA6;{(?qth`=;Ur>0iQc%mnSx&>WnOe=53(zp^BgXlHra$u@u@pMV>Z` z;h76}rk;RV6JXtEJ#DWp^vsf5UI+23E^+~s$Td_I!S%$G3J*s>$`t6dzgNEROX$wC z{A=h##R;K#=iu>?ua2U_=%6~zSzebq@DYay5a=)@o??Oj*)(}Z2Jc_`L`dOT`ob(I z3t1`O-?a1B5mXuIQW*#3y67@{4!C3c*81F{-__5zvj0AW{wkew&+|R17<8o}^iuhW zSM^U^JRHa3909i_0fj&CXkPzTw_pbbf?t}yq&@X!oR;BuV`Se_sSX-#00edJm)`fBeIG~lI2-r{uIBC@YRHrd6iA}6m0C3vHR z?boJJkCsmb8CZUT(~QTw!4J8mGUTVwt>0#Opsl>&_;*nMhULhIdk33dViv!`%+RLC z-`3cVo zDICN^Zlmz@j6UI8Y4t|Gh}2^YR^TKM^K|m+eze)=<(A#*O=#aDg0|8`czZB!O>&>< zd@g9MqWkC7-xAcP50COpFw5M$yNNzf?nBO_zji&qi-1#A)g-FI3>ZEM2pnG`xB;)9 zEFl6GK>=CfYOo3nLxE11wSYCr*6O|-wG`fq?7$B+aqNl@N~-zuB)-4CX((%VpNai6 zXjgL3e}wu*QBX4bknVqI-(8sO|7jd=I96p!mvxJL>R@u{T>s%nS1YGl-AI9!VpsK! zYvL;UFZJYAkD(2cHHzcqHC(TC#`N>i3`v-KV$4b{O^AVhR@>Fgse$E4HCTKxl{}=6hton=X-_B2up^wOOW%rzVO0Khb>1Qli=fm)mNcq}1>eAGMoO`wR zbEdPBRVs0NW`vH}V;G%s;sx&jQE(_v@pkZxXNGV^xl^@uwcpN#)y4M@FFmxWQQG{Y z?sk37{jy5hRlYX7`2}gxXanj} z4XM9KvgjmipTMx|g+2i(UyAxQX$t$9$$HFyj`iMzxpwRQ#j?RQByo9Xtd;C}7N+;uH|BV0;8@;1z>J6@#UpJs9+h~q;SCiwyczXt zP&$AYkdZA%H}r~V%guMy?#ew@;^+jV@bW>{%Vd)x>f zzOPkuOpO+dB?7aGIqd74K#Y+Uj8QJ+6W)3+*w<$jt=ZPo@0F?Az_+*GFo5xiAc^`Q z+uO?ZfF+(pEFk3(bqiyc9}!*Yz4~fjN~J!+{9wFe2KJTRvYhT?F}vr8K9yGoGoOgO zMOu|bnl{PL21)t-txVmy+Y{MxbLjA?DbZQ48X_Ql$ip5XUjbMGvv23D4p$A##MZ^d zy29Q@X4g0iDqQb&N_|I+fkkbeQiOFP&2#-*#pJIAJ=l7oyw9{VHL|v=;ePD+!C|?& zE}27xE>?4UM6n!e$qkletXmU6lsp5Y#TEyPn!S;_{!T0BN4$_?#R)pT-{UMiD^lw| z!Ar=9$To*d1LT?GjFVi23rwlE@@K!@95%feK@VkO9kIOavm~Om(kHvehN3iUlXE*h zYsrzZ@-uq6NJZG-_W?2c*xJLYn)k_2ePbSc&jjH-+G!?e*DH{|@R%rnd5?Har;&NX z+$Y3awm;k;T>Qsuy$xFZ$|yIX-lj8J{3@9$+*3$0Jt}28H zs_JCo%fG4K^bTl>v_8TJhro6Ovn0FO3?U}JUcSsc$3KwU_|iYt6Q<p6Tg>6 z3|2Uus(VJKAInnvB(03i6kAOf4bhah{5V`+;jbW;gzOVa`^eE^5`+|cK4ILI(qwq; zIvQu#3L$SUC*h%Rjde@Y&^z{|*dGN*q@t4iuDR`Tr{Cv{n~5^R%9%l{bD~KA^cVwz z$5OZm^D>%->gC5#{c{4syg1{%U#WANX)~oK8shrJ zqF)+iqe%=Q%t9gchaMlK@;A&VpY21bAd~o8a5w3u!^5L6U$t}@30An(jn5?QSZvbX z@3!;e5a%3ntZGqfnCXG@Vn=ZTM82(Eq*w~dc+PEjlO!i6QAo^%6v{~B=fySNy3|^I zJB0>USr})C{R|=cSe(*ud^-xHtX{5Og$Y6V8;<*x@^x->HXjS22v8-?m2CJ!Ag)xW zTip^~6(7TWK0{w$i_E*Iw1`^Ue6!1J(x|_xQlG9Q5ol2tRgX47_KPHyiMlf+^7lMz z_Wsv6-rINzX*1A3>>0dkWpI5jOv}%D^TChIcy-oe3z4KHD0GP3uHO?Rg1IQZ$Ms*@ z_l8qXyek8+mES)TNcnb`)tkraF}kABNQit}OVAfQY@_VpchP#Eu|tuyj%!TUz4tSI zs~ty1TTg!;1M>Mlt_1_y!aDFx`zV(yIM>W2D^50BWJJ3-YBzm_@^2~Ux{gLi#{|qJ)wUH`Kw_Gg-R=$< zy^-#Q6bJ>L{j}#V^2no?4}_93F6dp7(|=&l`->P|H~na6t&#NMv=w61`OJ_`p2)AD zzXFN3K0_<&3CE%tL6g%Gi1eXNkZe|P|2u2*`7t*L=4@Elc&w+2*psKFtXo|(&6ohrsSWs zFW!H${%iXQcGB6nXm_9R8A9?`ERgZC&QHEIEcsi=LBt{6z@PSv*IbgDa+^up2f2AsBoPFDe5u!BVKQmqVEyKk1XC+cbuxpz|EMzPp@kh6SSr1w zstTA{4dsKDE>mIOhDX=O_wQCt{aOLKN6OgX?00o+(2G!v_tW^WAeahTWqyYmDMLV^2-kFK(-@XeqFq@_u zsS!kMxNs8!Y67*V)m(Ta&4`*NG!0@<2)=*?3`dxv_R%R&F@hPLi=Zs9>ZBj8oi$r; zd8muu?K?1WGie+t?urb6ax0ew_|N>V$Nf@ap2IaqxmpS*LVbC3v!%5CKFobZmMaTs zibN{bv!A|{5kY2z8KZ+J@GyKDcA(#KswYXz6t)gEP2|6PuWpj*&$GSgN-ip$D~tqV z0UF>56$jDi(;y*Fq_auxytGD@G?awLN`dOBn|V1HSc|1)t0q z<8ZTSsB~*D5X*jk5IN!yH56 zWTYsMafz2H#_rEqC-56HgUMjOB5Oa{!FcembDCfG`l$bX+h zrb}r?)1XLKCO~FlCqd~Z`MzXk$0w^s94&k)1Aq-zu+7BFhFL||;yz_QeRMCtn`z|# zfI5RJY2`Y!_92PXV=Ev>{SiGPRcMk<Ik(xJ^Sv`S_S&+y9z)1_4 z@xj&`-h*_iT|uXv>V=-xiOj&3djaDN{=Y+U{Qxy*ATVd3RB1$*Vr4uzfJK639c&2; z&=?ci-TO9A7DnlbdEq#?D1||1+Xv$q)$8_b9z&D~KU(y#C3u2}&KM?ADK=x2)+6~_ zoqnE2?Q%@*wyAUujsIs5VH0~Q`;4Xq(pR9nzW(-tb0FXKG~Y=}I*4{|%Jfuv*8P>y ztH!jj^^Dwfv?w>@B8w3Q8W_@d)GVABnaMnjvmN(gPAiT}6RA%Im`^d_XT+fjz9DRy zo?c{Ym~>ajh9-)nVb#Frd>#tBBD0dR<|i{_mX1{#gLQa}zI3#>bXo+(u8|1ZGI{dP z1a5=~Vm?AhUOt~1G1_|NN>0CzergZvq5OSh=v(#8oOIXpZGmnJ6dLTADaxX;{L-B!n^KCWPZ z?bmr-(#~BjIUJYN8*)L+J>wSnziHz_>xG2Hw;7G(lo3`V{yj5aQRT6W4eiRXoq?&u=5ZZ|TSr z`flPIZ&Qm&)EKoitp&)KSlT5#1G|)}yOa^mb^0?f(xPQ|fAQ^u&jn`*ROg+y54B!? z1E&e3@$ozco-!5|&d}n5b*D$7NwiB8_`$As&nCTlU(W0~gm_2-J#|A)8hGs`!*?%H z8Cn#0(n!X^aPXcHaPU%w9vLj|X))e4)yR8u7L>wW5j`V{``+diz?QMdD zEbP%w}4S z0*~Q<4{~Xe9L!$o`*1EIL^>@uofNe5I9Ai{#^aeq3EqoD1j9cgo`U$+d?SWnokW4} z>B(sx%!uJ5{k+s)($FN(K*-3+RU{7#4}e&K64@D|j=b?h@WwfYRu65wCp9<`9>Ic# zaA?1Hsn<*xy3}dlOTdBJj0`=f5Rjk^S&>T6 zsJi>7qiwQAy>bWq8BE%3MAoNY%ujpOf-2QcnuZ3q{`xd_f)Pw%gb=9ay_gVxhQq7i zP-Gf0X6|@zrFDZ`(h@v)1gugLbby-?J`K?tfgE}ckz*euH+;?x_@re;^=^|(0@4n0 z!HLx#M z@6+%lpK6KmQ}G?GL}C2Ho%#soUmV>RzD6ho$*3Q;grVnlFSxp-k;}XIB`K ztj~6SOhLumtnP&p;qX&mG7K9+$JL?u>C|ygj^@ZoZC>gldU#-Ht?VHoO7Pz$yYpqe zUrvRFo!=LJ!zexII_>I|A zy#F^mkQRf7hjTN6a5VmPG>JXiz3kuqZpH?KY$wne}Du=vR|#@iR!XDc#RVZ!@yYF1@I zOZ!KQ6C-4Lu8JvFuPn5u`TH0nhF`e$wJoM~G^UCT`C^rekMCYGj5Hkj__xZ!?2xPm zM=cbX-)`_=l%=Zo{A|68ddRHorTi?>o)vu(h?D#XZLC!HhtnyPZOJg$2%>T2G%Rsx zv|FumWT}z&BP_FQq#g3;;}3{OSVU-;Q(MOQvJ5&Xuy6_$Z^Mf-t|$JTN}mi~aTHPB zb4E<$XaCACoQFXO@LR#?x1x3IGv@BIRwtVB@!zU9rByS2t2h4Exc&RUaI9+KZ_WAN z+H1cLB9`$|%Q~vdx<<=-*30@H%LZY~h6&3?8Oz3{%ZD1558qxsGQ4c^dim)5vgz8g z8DfPXwPLQiVqvsmX}v=9SRsY2SS74jXRO$iuGluN*xg>SA6{{Iy>e`R#c^%rIN}dk z>W`D^A7`UKF4lisJ^r|b{c%tDlv-Ho2#y?)S|9B7o@p=8ncm9vx+Mkn%Re!0~ z0M*q%qtzhm)nJd+kg(Ozgw?Q&)$r2Qh{n~(+pDLBSEF99M$fOttgW6#tWl)a&Zw@% z8m*nRUW@ZsI~TSVpRksYv6fi6c7C^U?ZWM~i^FS4uh)|2*HYHjE+N*bQtLF;^;Dzv zH0$+rk9B(3IwN5{BV(Oex}Mp%o^^XYdw4zP^?L67dfwW4K4OC9N%nw$+`m zbvt9Lr*!L1y?!Vr8Fu&Eiw)GIP&6V2jQ{C=2+J0ocJ>aoD7`8o>usxiy zJyNb;izgLXiq$H!&*KGI&SDnhGMMyz)Sz2r0iVCjXUCB!NufS@XpX zNU@$|QJY;5dw1&O?tDgy)ok(yvlKdS_gz@ZTs2kY=g!NAJF6m>h%*1oAO8pB`Hyt* zF3)J^rAN#9$)XJeQvwOV)T9aYEC~py8`YZZ(;yND$5^+$nYDCh}|d;sNOnZBI5tc^W z@0Y_W^@oYY3-M{+4c#vj<*0|gV6ML}T^d`+^#ZtGrmlP3idoz|H+=huVCpgEa;-&r zqM&0LX3J=a*PkI~wrL2V&Ur;=cbB~&#)AB_U2ewg9A5qCUZa`;Y<7FMjDQo@s&@X1 z_PyM7Sbj6`*E1O}I_tjS*7oMw^3R*PsxV<>(@Sqr0V~_C85LXxb$zcuKiGn zSF0r`2~*H3H(6~dd8T}p@yAGXfZJ^BX?Z-2QEIpKIDPTGrGHz zQXf=2!gDq!=X0V`p{>TD7chXp`IzuHL>cVvXoc&GwbH($T1I3_^*a60lsKLGXX>cy@p%@XAmcYEuREiOaz*b2M|X6jt;vU zju7-l4(W{=>5d!xcXJj$OaGtb{C^Jc<9Y{24G!Epq}Fj%sqrYT*m5t^M(*Nq@t^># z_bCxiijYSl(&GZ${UY2w3GSJ~AH<1ENG~eNn}+dC74}OL3t-3uXYCKk*9a}v2`$z4 zt1x!0H96jJ^mwD`@n!?Ip?mJ;{Sd^5j=U%~^SVu{yC}b>f?~*AHv2 zB^&Q0TmJYg+5PwUF4_D2a`5|g%%7kAULlA4_bih`ev^Zj$ia)`kZZ^kv>?3$pQs_?vusQfFGg3@z&`4@7tQ*twCIq7LRsp*-QQZrI6(o#;J zPYI@6^odAz4@q_mzGUy4Y;)ow$>TiHE#AT@f?(@wU}}dqu+Y#nR@KniudFPMlM~w` zDI$Tz2xHJFGzx_lM4?5I7&(NnG90TVAgU)IW&{^M43{7vq)13vdqKHlz&;zfy#)2W z7I+1sfwJ`>RR_}pPUf1fR=S>c`aX7g!S*^44th~`dZ#UP&*^Dh+^?1@tHu;p&lOiM z5K}M4s$aosRADvPq6e;FHJe4XZ;Bo464U7s)4M0G_dwk6k%Zxhq|pm0DC1d_$59x!7N6*o;JonCXAya{r#gk`#`<+?wJ+tN)yK(aDhJV~< zVEjgK!ba%%_3(@9;YsTe$?K6R8>dn>qo|wFw9S~*&C_X{l=RKBjLmbIn~6D_$pu^V z^6jkZt&FQ1=@rZARg3A>U(#!5)9c@*H%_Iuj;G%kOK%%XWQ zYbv|zb#C|DqC1}|9xT@NuQm^EwT^7GKiTe>+`jc}yYu;W*Ng40sqOBm?b|PRdS36` zo!+_k=HHsFf!Uqm&pV^@JL6xsC%$bx`M&x5``YyP72e{{Pd|Qq{<-+?Ed6`H&&Vb>o2@67zBQ+~BwhlYHin6VGox zjMnqI$M@T}OAj1Y$}q1y`c^Ti9+Y-PJ*iwA+AZ>%>B7r&tQIrMO5A2DgN zNB>5>xPco6u=Do_x)Xy(YcVT*+zrOOV1@&zPGi%g|suOjBF5>tyT&3_j!6o~T+mj#4Y30*=k!`}r3(>iwd7-J0TsK&!5x_@R~*pu z*D?qnnT_{Xzka*GR*8Fr(PI-^F}fyFX&8|~_T}_E$B(0`)rrqhs<+-AZdMlG{knLY z_th%RKx5+($ZWw*Kuc*X*V#_3h6))|eI4_!z&6|hRXDr)?dQYPKO9Tfvq%_14!YOJ zxq=WsOh=q9inUX(%TYkzU&{LUL$!EGaA_Eqfe{xuDmMUa+9E1nc7WXQ$*_3_*LwL|W9m&XExTc8pUUrNHmbhQg;g(`OpYFLE%;4Na2?`~d%TuMyi(|r zLCN7-@eriZeCx7$xE>HUSqI!$c}E$pa>AOf_^-V%A>I(#b&_>ubUC=^4=lm=r?dOf z!KHzQZ%-M0=pK%>*4~(dXwAYzt&mO$qt0)ziQ~n^28A+vs6anjwH24Tr(N?y&s+0~ zep^P->zI4bx$Cup+PCqvbU<0e#K5UWWaYfgW%e^LQn8E*L8-?9f^TyWTI5ePWC$w$ z-iIGMYrK6f4)_P(Q^!SZryf9sK9>m=Z(({w%xntTG-EW51%jaWQ9kNTp1S9!;arpD z;u?7I9kiO?+Swc|9wgn%qi>XOsR}Fpp6=XH3E{#%j2~DqjF5(W#s!Jy&0)Ry-w61p zV7r|Qtxy|$`l=+0b{`^ngFFbnjkt4J&Em-Jn*cVDQ6>>0Zkcd*L_qsVBMgqC#T;Gl z6Ojg`(~5G=vcH-GSsa*;{w#`&w_vU+Rnv;F=AcYft~jLQYTmGv>&sV+>Pf zh&L!|Z9Ar1ri-$rq>7bKrjN^mQEja_(Yp)TC)X9o|^#U}3uwPVf*@~d_-@82Vdm60a{a6x%v6dYcf zUr!FB;SNpriN&44gc_%TAA_zDVhYHr1aNt+MnN?^^>LKf9QGZ#9%14yB+|)-?N78+ zCCZQ5^)EM??Ii&}ZKrBO8)U|j@SmH_f+vw_(nAEeZlU>0=Dsv(43dG*I+GJ5{i#L7 z7p_x*b%rloPQ4!tYGO^M`^K%*;rNe6f$3@{nK|<1Ho}wZg3-?PtO#x@x^0OjQco37 z2leeS?0azz@~0iHe?3^$UOEhCz_Ons;aTR^fx2m}@*zXI(qy;xtdhK@z2B^>!DAl| z&7vgqcOl-V<#R&x)4=;l*9kLC!yh23u1*{he*18NH3ck~DnyGlFU~A(W1v~@$Wuj#3ii@C;dSr{VR!HRVEGUEUh3TrrGE@;I{73=I1eSWR&i1+LhSO0{2 zIAI;PiE*!xB)7bM1_xv2j{q;Pd*W`N8`8TP;K$#-mcHW&5&fzHkV$<~-GhtSS86bD z*mVVCWScHgwZIzoN|q_uhjjH%-EId7m8_?KbnQdCH3d?kE3q1y@~mT7>l5K0YI`}ptL_~TJ|y-@(%$A2hfN)No9a4Zu^X-%g{3>^qETHo zR&px+{--UBVd~QS5IO6v;LjCtm;>n(8T`dwQ{i!wCB}+5GBSDW|)M2jF(NH1V4fXxCRJl8o!t5m1j6mEf@{b0{3^Vz>)FYwc^0x zu6rI&Vsoahy!;{*y;neYcrC>PH(YjIt{CfdsCVs&yc+`#N^t=Lj|sp@1V+HK&LL=$1)uD9db zU9*AC+bU;lBuw0n+)U`~XgH_C)X5=yxF|EcG`JD33GBxcvhu^YSZPYOpE&euiE^x3 z6&XgZ`Y!Lp7U0R>v{!#X#hfMN6nl@>9If&g_+#_}up(G&i^+%UN)h;bnVs z4Q~jTLte_T?7jVWa5LxAWjfn)C6lNyB|HsXbOa*WL})K4M0F{sS8*=-4553&P-gl` z7_}t)Jm%wM*c1FowENj$WiMf3$^)+89UO3<3u4^%!;&x$$WAt#WN1P1xgeM=7iLdz z?%@bR%rRW9;B6k!xD0lXDY$<@5Hc&s^%uC@0Ej|RIZJTMQeRYH^iNHiH~ z2~jO&U#xFHw{XzcDX8%0RR5k>`KF}(60}(NQ*n|hqXf)DvZbz@S#73q>_r~Fp;xJ7B6@&^^6h)a;(WmjSO*Y%B1@vOD*VSAT--1 z(tH_JAD*?K7T8AsMht;F*Zk@XGWvLe4+u`;By(HxAr8~6OVSD2?)o8v-x^3#4|fvi z6TEjhUyinyMHPBO5x8LuX}Szi03c2a=_*{vheUOTKWd+*ri<8Ce(iGqoImu#fZW{+Y|Agz%MmmVCpQ~=`1wBw7m(o zMu!~^&o>Qshd5#C1yUb!1P`mgENlVOB`Apvt83)e%Ju#iC~$|J0TeM3t5A@Koyug+J3dq+SUO)Lx-#xcfx zTTjOLW4NG-!&XuE(^K=;plk>8RWF5Gr8UD1?qZ1e`59iwva* z6gNi%4@Wax&SYGMxZy9RQ`Ad2C^lQi#3knac~tfYa`t@9Ro5`}X2wUoe7J#A9m)M? zG3FtlwqOZtEF|}^1izd$wPhEol3WQ%$BLn7tzd{MD1gFYTRumL zjDhONF`|*^3bxA8^cwQ!(WpboCi8?xB)hpa3WqUfmPXN7|>B*C}KhkK`cjE$)ao7I<~U54gB;j7rC43U*mM4sWKQdz-8<) zHiyn8_xfYZOU{pwQ#%h;tR8BREoc^Ww~%hkRiZ}k_dhJ+-WXsB*@r`%zuTCkfwqf8 z*Mrdf$Z8HdmU*Ei_C=n8&8bI|47svvABK;^S4zQnh*3LW7tCb z@Ye%^4)5hcW?5zx?v2eCsxF|>(k~iC?a)_Q@||fd3!8?2i~*XGxm{eEfKy$^LUQ|v z>peEn;O$l9Y^%mEWDW@Ok!uoEcX0_T44^R0nR(wQffOiubTxZ^3WIOpx{=d)d1}xht3Uu`lce`29O}5gLUqEzQt{dLFateXQ zfZCD{qf^H~?}I`K7rP5AZ_d{ND_%E0@EgnIOYOMFH?nFw7TRTMkb9RJ>dMdXrXa5; z!5aAMCs;xuYlw9JTSAfbQ?<8}BioOrb{Bp-IK%>?Tk<77x0h};$rQkjHCpupnB6bk zN`tlgr>pl+qk&L?eN+fDSZFT~tT73mW(#P55W=T!m9SCk7Fve{+vLu+T|RRE!*k4d zIAC?B+g>RR8IfPN(X5M>Ag1# zf=U(hp1i+r?{A+obLPz4lUc)`8Auk-y6)?;estPaA=I_s7JQ0=bj)Q6$H3CwJsbJl zxES!d-Lm<(Uv`Cd)!hCqIPa~<*VoNE@ZiH72E2FgPYxr>BAep!)jrjU+x%oQ9kCP7 z1(eKT?2*Ess7bvWr!k#g1kTc!rU+o6MX36{#>HNikxL(bda;lKs{Xii-1~f$TP*4A zS&k-D=yp*c%)qRd5~K09l^HEUs%ulAF{y&7BDs+1R^Z{UqG>8PbO)M9ZJ%pwd_e0u z+t2dX^SOpjchu((#!E?8`O*D21mQ8L%BPb_+58TT9NG$Wpz2^yZ2oxUWg76&G!y;l z8)P^Nc6p#ZIh3)o(e8f2s2|<+Iq5YifJernXrVD3*v!YES1iirBoI_MvskR(|`sZ1PDCdXE=BUR^#k*y2@NyR zv{gaCumkQkvXR$qj4o$JM<6hWgY!1cI7`lC)Kr^v@K0ERtF@Rydmq?(ycH-+g8~!= z;nSaM#QRGYYc*QN5Ota5z8PHV=bLHpmR1*mIdX9Oa1IqH6Urn-0K4FO`s$f_$AFF} zpPtKq7_*`kQpQ~WPO$nQJ}34n9sW6f92z z-uN?F)6*kNg$(PA<=^j`kY#*AE5d?jhJr5|7@rEDf1hdj4h(J45eY@g$U|=tCSEAO z5UrmJak8AtnV)XXo2d6xGBc$GBONi*(+tfJ7D^yY+`iD89Do0AC{`_No<1lk_=huz z+4J`R)3{RKIHCR8B6M$VG3NfloFD8CP2nH6CChTSjIvD+9R0QhC_-gwMp`>kz)n=1 zFowBqZgD|)UL!*cfi2+?S-Dnwxqk=2IlLsVWNmpenJ_RPPMBb1qu7V~;H+XEGAriu zJm)gGJ5M`c2bP5YPCB##opvTgLZ?NPp#Qio+@j6xWi3?ez`_exedx+;+}F50Cqpsq z{uJ=|-4zt`DuK4<&bFQu3R`zukK0zDyF82M$(sqygS~xzeGCowdZ= zuEa(14ZSU=-Bmj@LLd$uKsWHmZC-8#ieRCMl+BF!&3{fdt95$v-+%c~bNQhz%QY%c zC>QLCT^6P;%D&%pOZbwL04p8%()v;@*lSXd3Ut9Eoe7&V)?cn$Z#0X*I5>>wIKPeR zaqA#?rx@fv6?i!m680S^bN}n$`>%Lw77i5@ugmu@L!7=+y!dnj=@heAbf(Ilr2enqe-0ij zsTbg2Iyqm|&+S`29A|8)Whix2yd@;CAKuR4+%4*^t}1aGks!DJF1P@T`0@3QDC1;x zS0YS0m9m+v^WlLgY)0((r6_mB2ac>oOe$gd#YvXO#idsZ`x@I~nYW~$R~L{78-^eL zbbsPJ&ENL=7RS}Z*+%-SKRu#<%>?24BE{&=;0MV=e5WQAeAy3D7|mJ zbp2Et`F+0Yp5qVq_v-ywUByvX4H?gp8agK(cfGo^g!NMx5z!=HM3sH5)rH#ifxQ1J zWNp^0b~_Wv0(%B>&n-Tr2)pbDO$$D9P&@eD6#`KdIbPQ-unu1C$`Uo(9#(Q2X&U^@ z|G@P);>(!C!d<6Ef5ESFEw`Ye3F`*!%Y*+i^Ec0bgNrtJhSKY7R>8IZF@vbqzZwAE2xHW#Z{OvQeEds$87kY45@7;$=Al5Ph6hd zkK*$)6ONenTI{IAljWN@uXPT$y>W6qb-z)hudiD3ZjFSQL{6u&31l=)?oHAF@wNQf z+=`m>axTtSg(2f%yFIB<%_>&PJrULSP6lA zUYsKOE1nn;18_Y|HGNr&1T^A9F~8FCstLPjacT}u%d6H(BBIUg@`)DJQ{4jO0fOJ% zY{PHm<>I#KXAtD|T=P7#gKiZ9;#aBW=%!y=C$6p*oHXK=D%CKVD*t^?OucdCB?rV1 z_}R(-N!A@2R;(|=SVQ_a1J3dktT`*VlDC109n#gje~s4XH6(Y0f?s`r-{f$+P^F2V}E&V?L=tt78GL%27lVWAD~lIpzo{B3`?s>$jZV zjov$BAzcGOLws(^ptC$uVk_gndJ@)2x>qnGxpF_3DGzw*wr|nF;^Cn3;GaazE0u)} zn-5aA!;UebY=+**3#a0e?8wH!YIP<>kaI!g@|0st{3=T-QJ!`f>5?XXGdRx}`9zJ}TCkrV<0tD}J98#= z?vaUv3n@?Oki{F_-LqpBvH0qggF9JL6M3ZWrFbS!`EZHpp)${9W5g|ySkR4w)Uge* zn>(^S0t!n1JOFB~FFwlACG%Bb>ns@%{rLqg9B*E!q<|RL^F3l<2wLR~`SEHzR3L$JNQFxHXu>pi7 zyiAmXl*IM4(e(5bEgkwX^=w2hLCsDw)TLA65W}pUu#=QFMeWddxs;<;Go0(w2i4}I zg0;Wch<|8*#4BhEDU?k_c;mfzTg@Sc&vtVkO6KX$$DnSlJ`$dxlt_rxm_UqGRJ43r zCEjD$R97Ft%@NF8x-942Q+}o#5zMqA=zPldH5nNM<}8T;DtR}r4ei#Ns`mxc;qEYE z=uqdS*JocN-@sA)LWex29dlP3LzN)oK&o$XQ0<~Nfh$Gp5>fsa;#ke|%bSv?I+~0%7GHl%HZx8v*&}TdmU;DWZF(o{%A{&k4<{?QZey+j{D-h5 zviG+JRI?d}DttYJSIU&@=;W;gl9^8I(`?``Kj_)V4Z{k*?UI~h$UKC&+_JbU9Cyh6 zm*5q;TI&)Co#$N6^@(MNICVU8^li0&9biv0H{>w44{$oF)m|#t!|WBA>CA_*v6v)F zs~wFS7)lEGrH#GZYcsoS(?i#6Q3kkeYMXa#`{u+>c2I3xSe)*aPdXJXi+Q1pM1N>s zUfn4WkM9U_Pc6)8$@-4L$+=unu)M2GE|;i`A@@ldviAN=s(DqJWpcl7G?g3`F7P&0 zS0}@%Smv&cRBR`oS6QA@=W;w+jM-QS?y`OfS}>R#5>a_>E+8taX`(B{g0;wP`|f7a z9QayH*E#o}cPE-ROs>U^y>s7hm}vQtd@X+MoX7F_#CrxapRo7NgT6oU;U91)0jz^( zocFgvO+yp8oAD6M$u{-dQCPW76ZhTkq=F!P#IA1|ha z=U3|Zo_3t-bL!oWtSG6am zhN8Q#KiF%&s&_E;=@uk{0@n32WAP7mj#L{v!W`k!~4{#@7{@mRgZ z-#U7FG3z+kuM`#0^JX$Cq6); zsL8rPUc57tJ*H7L1ua2WG-sw5%zRy?Zg2pjkTuaA)llCO91=YznPi)krLg^VCLf{X66sNqu=kfTuV5ZS@?%h$O7wyCi2cMLd{~@x!;GT zXwELNr^a+j>4l{`&Mx!z#B{5_56h08T@i)G_L}I0-!7b8J!KZ#Xa7F@?wi>)#njjV zMj@+YVs>5gjUs?47pSv1tHVTr0q|?Te&83yfK^7qnF%NW%1sBjvuL2UgJRN})3!`C z|HKc7WH_Bk4iBvX0Hyt;Z%bmfKbjx|Z2PO^o8M-1dnbSdpswHj@7?^ZlR!YUj-N09 zRP|>rCkfaRh{fOh@oolqExK*u3R|2ab`E{<@U@v9dzL2K8ZeZoy=cG;#%lxQb7EIq z?_z&E`2ZL(yLi0px5xw}w15%+px~QJKdTjoL|~17kUFI8H$A#x#}A;(fs`)@C7qq5 ze*`*J=@?#sF7p@E;aUged+(bY!sWMsOxhog%gVSR-?E9D*C>A$QZGP;vZ0lZix_^) zqDXU20u8S#zVm~Avh@!?65q=7=@a1GWXt=R50g&sk|uRO%3-HA-_986kYTX@f-#W) z!WfAR7$X6g3h(3i{|3>=f$ZaC>*qrC^9c5f%Jj)94=DdTga3{SWB!#H{^uwE=c`)3 zhI;>5^=>`oCS#>KL-}V0vc>15b2P+a6oq}{gd9!_otF{9N{OgTi7H5m%1Vizk`k4a z62V9c3W@XbiEwiZa-w}WI_iXDOELb8h@*k#~oMHZ9_6s-m2(1vlJMR02HaB2x~ zpA+WS7ZEnWh}nusdShflg=L9?r}KH`OS$DAa>%c+APb50u_;s&sK_j__#D z^XV{ngFQj)fe`jk#9&{-a96?TtD5nOrpcI&NxOm3GgHIj3)u8a`tg_bBi#+IyBmZ$ z>xMX-4Ybp|f>ZOppo~AS=x%<-#Z>;Xk({HEoSmVZjj_D7(U}Xz%2uXlEzR`LTbNj0 zu(HD8tS{MKaB#MCa5uBLg0%`bXBDh`A@KCYU~ycCkZmZ3eK@OKB-l0@WE%srj|Dr$ zLoeTCak+)^B=KBH#RQR0MP{nSXB%Y|IusXpJw{=VRFBd$2*!cdmyZYN9VDED9zH`XF%e6hXf1!)t?$`J5 z5&ND|2VT*KUNMK>F^4{}hrV%#SK|-;5)SF8SWQE2K>c>3Y>oWtvR zhmm=Q(OE|^IY)6h$2W41!?|oXaCs_~J+1f5{s+bgaPtR?>u_wi||lJjek z<}i8U_2>U3FnsgUMHbW(Uh1`9JyNgy?Z07+=R-5BJ?j%$`Q^hNGqNH6b%vPyu zv?0wXL*znJ-B!k9?9kapftmu1>jd1EO(N+2m|^|qe0ya-uQF2`Kv4pcxubIBeGI=h zrG92Ungrv3PuQ{20xG$^oUCD^lU+qhK-{0ZlNs~6(O-ZN=Bv#epTH8 z!fvAL`~80a5XN?@?(0*zvK5kz0>a4ZtLKGLH5>B=kQyJ;Q06UcF28sDZr4qr1au0! zUhe_-RnX(A<#hQ5GA*vMT7^}X?Xkln68Cbh%pUCDyy33w&eAJ|tjDs+*7JYM!3tR8qWWuEAPq1Ovvn z$mwh$Cad~+aE*MA<2?i2Lc)zQV6d(z%sJ z>K3`YuK8cUs4D3unKV6_xYcaBRg}S2b=~+EFMa8~q^}0=OxH|!U8$aC!ulZ3pl447 z5-|Ht6aJdcoc}>Yev7p2rc4OG<>KaqNuuinO5Ri0jq+9Ms zb0ib~N6P`5lpOE1PGxhk6qI2v``4Nb5Ql|iwGs!G?^vP*WhSp2#iWL5?c%#?HOhlr z6*CtjB7T}-oG_(S4w*;Q)OS}{B_W}lJ@UT>BJG31y0tulP%NjKD_oePe-A@3w-Dc< zn6T2)nm!AmAY+ssf_0Xn<`}#;#`;>ECd-mW-~d3DGF};o?v#%3MEzds875YJ?-9L@ zc^%QmA{tLZ>G!7X(dXlTWMyETH3{bpPFC}S>ka&YW+FEbNHT_ah>o4Tt~wX-4rx1g zuwH8R&62rkQk-^Ldv6-6|IbNnj{aY&$S6-5f+GZT>*TeD*e#l;@mj$tWl|_p!SK;e z=Zrw6V)LS5hWxAQ+kMyvUXp#r<#zfvWhjKt0GTqU99@}*h*gXIxr;wOYnOn8&SD6M zWl_RL@-3YwR-@PSIq;iqC-f5|=S;=M+%BxMfp%i(ckw6YU8h+OpOEqmxv7oGXX1td zPMKa@)Ls*2!Z5)Ll*CIlH=(qTVnCj_B;Kv|R~&gP)`(@H6aZ;jd?Qr{AjWdu$?$K< zB1zomYp(yit!pIefv(s8+^*y;zMCDKBh!e zJdFPoATL#PHJ3%_WQn~P0Qw6svqKiKvj=d9CgQ^}N^o~BGmGJI=D&!19jTP((thh!D$15!Q;-i=pkD>;B2YZBKye^w`U? z2OlpE4c0V`E3j%5Gs9AcBABF#2R=EXW;C+|t=kr|jB{ z+W7O=`;=syly@=VaSr-V&fAv(|$Z|eJ#>3|oz8>>#m6D~*q?4a~u*)fGFY}NA z@+-Wxcsz4^5v${BIo}9AkeL#O@SwF@N|g3Kb|u0KFRj7@_%_6}+E{d(FQ7=M66;zD zDMowgzJBQw&Z=B}u3(thu~Dz?^Yhc6f06`eav>@S!+@lHCcge6Iz;^?5gDvT5g5RB zW8ar#)~Wmwm}v~K02g&JYv8$itsokWZCMbXNBmujU^UCK&zD-4uM;ynF2KXG4Yco+Q~*=b#qya`K|i*I|%M7$`&9)9t7{-6h|k*3BpfDGjG;YaY0HI}t+Ssd&FS0d*P ztqPyNJIcJD%UBtQfSljn7>R0l!UmV}4Dh}XA?VR?uE)q z9y8Hss$QXd zZjV`PJ}P@hfC>KVo?zY0MpBh-wH0{x^(p$h3qNm5NY3>u?P2d;-X?;WUoah+C{itR z@k*nZF~Um=$1>C8&h{*%Q@48cK$btB5${W^NgLEFJxR_7(VfODJ&>37?1m%imP~_n zur~RekEbVWq%5{@hnI*K6uUanfE^9_*|5M{-5+CmTOmCY|1GKm{M6e49iHj2>ea7% zvG=rJp8ctFjsks$4;372E@b4lZ?T|n3n&@HTKOcF-lWc9AY!}5^fJ!tN__8bW1=in zmQ=EbUi;O4-yfgRTpOB$T)+P((|fWdsh97%>g~2I?R6&J@_x<1bDJ5i=0)Pd+!V$4 z&ImRQ%HgXRk>v9R=?ae%xy!106K3hS5&Xtd*e$<>=}d*U`n_T>BMcKd8yhEG^oGU2 zuWpoPjT(GQr_Z>jH2eOzCO<*nM$$rh01Rg&{B0<_pVNv@3iU5gvBUaI$rI-3>dXuW zmBDXG-DECf?Nx`DUx&Y;0jNB&o)kzV0ebHVRJ9HoyrQSgoj@e0b#Z{cP9&&~8(CpM zSt+-4CX+y6h*2D}<`l{a;ufPxXhvz*0pJd!fEi;rlZ_4Y5`pjpJ<(%-*#!QALS*f< zygcT?CkFARLIB>dSS46IDj{$LV0v9m$sDSO<2OP@?W_9j)q+fD%mRkDKtLV6!_tK3E*e%4 zGC=SwUw2U2@c%%8GliugDXd5e@g2#O9h@vwMr^1HxL$9gZ)Wg;8qEoeObcZxrlb>a zu$7IJ1Pm&q*POA8iN%Ao@{NY>hMgyX^l+RvCINU_MyFP8MHl=np3y@MQPd0>q#{7w z=+Q~mT0j<`Nj4ZwbW1@^TqVA2_3d0WdA7saAbC4=4V+HMPNG63R1=JhjDBc^i5b!5 z4O$aqALX1*0)44xKHDmJrH8*u*@H<;uFX8x*g^+lVabvf4zdXux{B(;;U&ybti~vK zvRg~5Gvuia_fi0~Er2=Cgu6^AJ(q<9fCU@D5|vMNU2{n7UAFXrnpDy+8mE^vab{mg0iL%9Qr z5|8dVj>O-HhHpL&VS0^_;JL1{;jiCoP)8&AS6~mLh;Om*L5X56v700GEuFHbD33)! z?_5|`L1fB~hOv=aJRpPAT4MM}BMg@#?R~G|EXYSGol`l#wfLck|sWUpG8^H3lAv_g?+yR_2a*+z<*g~RL{^h=sH$u zSN0*RH>j}ep}c^}7#2CWlZ!+lK3d=hH{kC=39o6aL<#swGGe6FsP>F{KW;t)A$6R9J!P?J;+i_|Ek4jT;QB67wjpbnj7Alta zw$=F}3%2BJ6=b+r-c!Z{2N73-kyoJ`i^?I7ply#eZpX20T{hZybEc%}X?@yR-%x3g z*wtsJo>i2**!6->n^TI8&c}Wsb1qS8F>ny+d6_sw2g4MLhs9&6h0d$p%!M*kfAJKJ zTZ|2PnpUSc=*!P)THM*~8c|3azrqM$QX3uk>;=M7D(*BKEx-Yid}(7~d=AAFhld5I zR#$K7#SqfF;$VeOpb-EN{Y&*HffuIO7oaja^RY6TWrnI^dFnOxHgnmN(`Cn4rZT$X!OXf$JCeW~tZMomco$TQ#;Q(GZ( zTNF%8?ooX``MEgXI=r5Q*0SXIbcYpX3~!>sk@))@+S)Gw@H(!g`&n`8`HGmgxlt$Pn|cRzLxVWm(jwAP-J~9Hfg#~@Nj9wk+y?=l3zS)k zuK6&$eT`$$tFWxiZiDu>Iyv`H-C@wHje6(ys!{+oMt7hk1X$D!W?gKKVQ#`!_=jR` zP+S#r)5i}Q@u!whYzw)~N&;@2!>q2C;LKuJt$tQP9qq&(R=fjZ2i}<9G3J~Uo>|V7fA4w1LI0WUa^@SdjhaF|(aXp=92rSL zK!)otnxpDy&%mCY^r4JScu;HIqW!=k;%zcTUGq_Er~fIFDsEyIe?N;%FH1BIwwDe~ zp+XZV(0f#tI094!&#VD>r%;_>i~}9Wf%F!;L*;v@uBU2Gp$2i$? z>Bqu5Szjr^PwG8GBYKfL2qeyd?PDWb6YFpiY9Sx0Eftg!TA8`#c5fD%l*{;9fktDQ zD`roJll$V{or$&RP#5a|_Dy`y9yNnU4l#f;D!d+G$=CLXN%_8!(96U(tXC@FThgdd zHJ1}J(i8@H6Z{@YwVZwexv}V$;|+Tn19L&Z?lnUtm^{BmFcP^^X_Su}$)H)*>7tu&UqG&y!<^!-Qcmt}-+^w>oT4aW`N+@f zx4Vrn#vVUiR3Cs1jr@=(abH|M@?!&d8Eep1RgL9#!O17~$>-=we!M5fp z1gI>ISsg!%N$C62k|Fb8^{2`Ni`WX&=%U0DI4Ja^*e}HxR8XlrOe0}12F0v~SrxS& z>b{*2(_wKwVV$fKFP_y!GjSyv z$*%~M&4f^2WxeQ%p*odfY+ZC1BESugklD)2EiA2%GXFI zuSZ>>+(tDCGhL~Ie&q`)(Fr=O1uJ;DapV115uKT^{dFBv~SSYf;+qH6j-39`e=b{dZmL(7Ww!CL+^P!j98!Nahhd)4y2O z0FDyfty6+?iS8D7z_N z4w#3}TmJpsy@(ja`0|#4-Dr?#)K*j|Or_rGu?18`|Ch%+p!I8~<%u96@TmC~ z7mx=(ox2ZGMj$59ei0|)=Enxt4ooki%;>May`^mnw!I4`BywG_m04J8`0=B0KCtDV zzs7BdL8U9h7$lRY53?t7gfajDGH#U)!WB^hlE;I$PWmq%9DG23FkDewV3}mphz&Ng z5dvVOK((h)S(czjE6E@A9~eWyz4QMCW7MwH`6C}&1Okw!2Cw!ds_%^1Oc=WvNqp&( zLOU|MUXVEBrv2JMA>%q$&+dB9P?=#WVojE`OlgCFCC+?9U&*v;2%dYN{Jf?wgRJOY zm+>DM9_qr`%9EyI1%Eo3jfFo#y~t9p-4(zoImCiSzR zp3gFt5@qdz`0nbK#+4sI)Aa}Y9doZ(WoBA#{sR#ytx)n5x~Kfe3E{MymX*VEa~=@q z^W^k!DY|3by38>4XQ`5|Mr0O*HMUVh!j&N~6uy4&i}>bm{PEuRPiG!0S9QBJ$L+B` z<8?2+F0aD)EAr1&o2D7DV|QRb>JlAl4G_w`jfzIdtNnv$-0_r>G1^Sh=FytcaaZAA z)(SsfkA$v_)EXZymy*+ma}w!qAblxTwjO?Ra%jX_1RPHbmVQr(0dFR;~@Td zAMf*0810Op6Pr~-<6=2cVY|u*%pzg62~mkzBwn<%?0k{#xzk){dr^PP4~I8h`&n)y zc*ruqt-735A>VXpn5AL$djxr5w~w|3p`ENsMF zM~GaZ7?e3*d@kmqq$JcZv#=NlHNMs(RoJ;KetLa2JwYJf&5q^o&%T1j&Gw8l?L`qO zL9c}6W`r9L%Uy|3=|(&c-6k}hFAmyMF(eykad3$A}1L@~%bgII6$&e30g&YxBy zc6qgM2$?CK$~#{*Svauh2^F@hjT#heC%}B}N3Xx#$feN3AWCUui_5;5T-hw^!ZEF7 z&dJi%kx;e8-)|WL!}+r%SEb_~2Nt13iuubGSO#&C){BxB3k!!BF7v*yb=s)oVp?yEYRC6&}{Vi-lG@ym5;>pp1hVm464a954?Sp zExQZh^4Ls)zxCCP+j{cw`@L&TVK?tVd_MJ-mL$AuT-c^zphz+^_TrFeH{vKk2_dN>ChkvkZ#&_{V`>-GYQpp&Uvg8wIzi7( z4inHNG(qZ22D+fpRO9@sOiQj*dh4!ndKFcC{ulYXj8_*K@JV30e~GP2tUGG4QrLS{ zOw08RuUq|aUXJU1tzPqPj=MPVNjVlZD~OhL)NTHUIvBNbu`I#x4#9C|Gp%j|wzN!U zp{t`1^=D{a5ghXNn@-=kaWM<6pDN-UnJ`TOI;}ms?isKQ2A0WxJ3yAHE$%((Jf$<7 zW*ypIa*sxmRv9K(`FU~PC$FEHG?Y!VJ00@Y_^P&Ucc)5?t$0|4w{g?!tXT_VE+Mfl zncq`@n+%U27k{$Mwk(Y(qRIu~_A}m=y(3&i0U=|mw57Cd61$Xzq#`yXm$dR?Z~L%` z*0Y+wFoX_Tb)F8#%APkUxs<=X2I5Ngw?cMzGO}di%lZD+kxe6cI=kh!8B#(iFRP-_ zHcc5nENe`Y-Q%DB+0vt%R8th%NDc7xLRWx;kPm8;>lEi`RSI_shwPT+vuXN0Pf$7VA8M`0*%kSImK=6!xwiL zh<_2_)aNj+;2i|uD?GFwau1+VVq~q^4Ve1xj@QYz$)9U&%r1E*`AXTwAV{#E)y zXRdB=NTkbc!}Qm{XJhgn`^R|`?WDSnO^}5Z)n(mzKeuQQ#e&OCeBRKBN~(uN-Fr9p zUF5bnE%+0Qk02+HRYmhG1IAdh&D*==bML)Po25;t``ykc@!AX55-#>Tr!9h;Vq#NG zMt9w3%%i{-$uCTHo_jzxG+KA4z1py#d)(CoFf@fFMX-6PuR&9seH?a6;?gYSH>DGa zBf0aG-j1RAP~{%?3To-B&?OBI#Wg|z*>YY57Jd21}Ni)c5%N)-$* zsr&El4sv?aFUs-#b0!$5u}X|$!CxHvRB$@DztB{_GIqrYHRuz|*Yt8VJ^XyEHo zsh?MJg_dBPQ$06ngeERW64ZCGU7S7(P#0?I`|AV}>YOFm8`X)Pgc=Ab<=OER6(d9a zu=<3X{$90bL`vo(YNW)i(l^anEQ@;il$U16#t|BU4|=Nv{qt0cfa3ogzTo+c${bl{zt7YPc}`8~Hhut}Eiet=Avq9!_P5LB;hQp)6( zlhb$3iHFVnWIYCkrv2^^K0}5@UjCkPX<=pslW*25d?o2d zWg3M~F|lg`-UT=eIO5#WidvV?pn|$Dwx%e=&u-@3ftnef`6(Po0!7%6ir>r@o^c_G za;2R$X`qtT37U?6PM~z<@WhAE79cT_IX~z9{_{a^5sNplSwX--uI3GiZ;c>nt}vE@ z!V1)>r=UlIRC1VEg{U*FcR&!w5{0;5H*KvfCH^@&trR2jSEh}Ht1X+W8pF61Pnw?6 zi@QHePZIe>fqju!-X}}8Y(J;JGkt6wcBh$#6DZ9>o~I<8w_!5Yb~1V)TP`Bkf8)OvQZtEX=w`MT@IDeex;ZA#+~jR-D<@krJ}NNw3|sgPc1 ze33!=Wb5gq40fTmoY0!~b8RYGZ4DUU$0pctMw_I3VLaYYy5fBVjRYaWO{kkRMx-!S`edpz^};% zRL7C*>PV9U#Gr58QKZ{~KEhgL%@`c$W+R9Tm!yt2i(c)~8BWchUv)*!txVX>MraHUYGwY?fP&=45EW=OpNtGOC(W{O76mcP z4#q$ZKV}1~kLj)FUySze`5ER}H7WlBnU^BDWPqAZNoc2}{CLK%M$gsJ3{5}guG#*N z1E?5RBk9uAXk4ne<;y7?!*gfVHJdmrIXGOJ^|@kzK3bjQT-POCky-)ooo4)FDKj`c zny5faoE^O|wmO*O-#Ok1y%G983YUsdv-kjGR%m5f>r7nN=`tYTz72k2b56aOR=82^7`lkKKAKvKKXU&4416z>aan6Egi?KQiy@{rL zHXI5xh|(}w3#Wih8d3$SH!|&$hGi7!d8Ni_U%b;$z9cau4lRX~Q2#8hKr`!2)NEwN zDkbA&&dS=`x|e+}gxScWE-Cna0w@eC`jXZY1FL}(VVC-_`m~;J@OV^m|*qGbenET$C2Y4LMJ?<$r?xjBNZ8Gj-Kkn;0ekF4J zYVx>W!MK0rctHJlVApui*m&^Tc*x%PHSk0z_e7Y~M7a9Ib(4t*`-w>3iKxhl=;Vo* zf{ED5iMaZS8(kCeV-q*&YZD236Su&V1nxl!e)@UW zboJQui?!*Od(*GLGgR)G*HSYz>NB+_Gj;Ye^}aI=kuz_SXBrD;-d4^u)z7@^nrR-J zX<3_jzc=#%Jlo1W+a@*Ju0GpgGTUiC+vPjk9XZ>RJlk6^`>}GiuYR__Yj$94c5rQW zXm9otc#g(BH!L+r|ExYYVlp>sKR3p>9gLitNS>Q4n47Aco35W@I0yh&t$@7~9^IMhkU+U+-cFlhqoBzHxzr8ol5E$-o zFYHP!Fl_F>Ocs9IFYNg)>_;vfBztW66OX_^V=O2QOF{yON5RBQss|g2czFNz(b#Cl zB!K>X0YW2WU`gyKyzDOEPrU~;d+|>&fo*XCG6_gq1iX`3gisfu?za)Scoa1Q!Uu$# zl6Z?2(wy*~zX5DKOHz4@h@DYLD}n6f$wSAdp-kZoOZ?Wi1@x96enbS#(=&)Dc*YcS zhVCWCgGS~qqH)W1CLn~?($U&z8WoSEW`I(bkxv&-Dl>Q{@u+=*yeVF38vx%XD6)B@ zw+L{`3KB+4n*>~RTcIO?Y?KvvueVnA3Tl_2Z#_n)jf%T_>uapCv6(7~tp4F6o~3)U zJzn-Q#-D$@LS6)%4p}n4yNWnmL85?cWHP)JfTF-a4H@i{1fy{R0->#bnv>-&p@Q1@kZwhb(Ok-c>lkkajG7IJlehk)4G zU>oweH3V?&zKZPju?-<0lsvD^UtOF85Fv{^Fd`djlUZ+xZ`}u->qif!qY#c)vs@Y^e?b*meMDKmS7a9P#zhd;3di zd;uwtFN-^)569O%t21)g{u{ak{tI0a7|`wvgH$m)*Fm_7RU|8I+L)Peps$rp? zA=%7;XsLhWA~w?2Al$(q)Y15wi$##j1%DUZ6-OHnhl|d3R*pDJ`-|sotSl}t&_y$& z3ugK_Q*C=Q4QC5AcMD|?b0t?ZMQ0NQMt!CS1@qoX7S$$~FRS z8^K~53AKv`+sA+%;=qnKAWreH%QxBGZgJt0_`FC0z9~X}X~F^Nq5&Bafmx>lZ_5Yf zD+SzDyL$Jm&t0rXk+I7?Gv|k9mn+OKS6evNTROK}xqQ0dGIid0(ad?>%$ZSX{$}C2 zeV*a*^7v`x@yiPT`-10hYp>rppWilD_w4-k?EUv00`?sO_ZhWkr{DwUkOP-%hm3Iz zJ^WWvb$#C>;s76c;2HHFUNZJSyyOiAFL~sj@UN$e(U%S;9EBtvT}wI&OF3dRsKe8a zuBS12)JKu&M^Twa(OJigiOD{WWq^};#|imIguDM%tdok4NyW!0_y3R|{#&=sDF2iB z=udX#pX?`pGM^l!KVj^1?eo==ImQyPD#h?svj@orIK zacScHa&qO1jAyl()OYDMZD}=K$u%FzHG>&7pR;RcZr809*6o(m@0T_lK4?6A`1X*} zbXflGprU#I>4#s`_MOI_uWbWsJ+!6%&vQc~GqlmEk@1P~$??gVsj0cy>4o{}rNx=m zwb_lWnJ?d`zwb`}_&vR|KmGG?`uFkl{-61Slewe6^T+i0qrZ#`#xS5u=KmkMJnh;` zE$d(yu=H2}QmpxD=>K~)x~8(fP#z3c0@XhL-wjxtdi>|>{BQ+)%uWL4emH1s^ie!ghc1UvGS(Frdp9%8EW8oi4eAF=?l_=~j6ETaDImgX$+} zwGQ&Ketl8I-*iSs$^;;XvvayEO}%J0LwjWT(AuqnmkXJIpZeML)?Pq^iN086z^s!k zq-HuxYm;bY6H*z1lOQ(E1R47(EDOdv1uHZLWe;t<~2|JkIe;Pz-^wfXe=T z41;1nS5er(rh_XoG8lwaWE+0vs<;Rk;rb7B3FGBu{u|cA%Vx+|=D_2{5JyYULXA>& zGtE$(>?Q_XtU!u43VG(=(h07C%iMrC$tOm#|BfOgZ!tiy*sVNFBD*1CDG6o;$$e~e z;`-VnKeStRqg2qQoka@Dq2>$F@B&LC#mP8kHhq|N;U|j+1x$ZVTY-REKv#&1|elE$` z>+EYW&Pa0us!?6X6y`e;usV?8mR1E@Ub6!Ox~v_1^xaM(7n=xoBfkct4DtiF->w~F z=MC&(oy7(T*gX@2QLn%sEr(zFykoZtS`AsFa`Q|D-6?@Dp$0L89d`BE9bdzrLvlEg z-S_u?Frdr$0)ScC;)^%36|^qppgLl=K=8L+1E_rMKwG~;G>Y_0ODO;)y3NM*%0Soe z+pkYp$BpkSvg9^X;YiwWx4@Oj*QrpUAk1FB(igV_5-3^3nA8kSMkr;c2!z&&L0B)@y1yBSVt*!O2uOMP zXS?|zzg@joD5*!_n%aESiVqc4|E-`$N0sfZ;%Eok*5ut(Q+e7YxJwrWmMu*+4)J>VPuY=v03)bME)d~_X0{vf zf~W!R3L=Je->8!BYT2O_FIV02v+~9Tl%?Z*5;>Tj8Uw`h+RU`PFqwE`38q#uL(+>b z0j`P)+N4<%mN`pd1c{$y7<)K1l>`Ex_VLVc$TY;H2!T)IY*=x2?MdR2=IqSqc7t!b z=wg`^xO1g`a{dN*v=wsnvMf`j)Zk{Ixu`(yFc9uaVB*RJfaUQ-Ry#rw?F*-IB>5i!-ihRx4w1Ku!@z>U3V(g&;;B`rlKj@o~Ea#rbYD;dvlc{A45R!%2UP9 z$eUU$7le|a!!9tS7XcdN)WNpWXw*7j2GvkI!{*;>1eHVqOH3CZ19J)1{!K)7G5{)k z>CUYhh5^eunYSL>bzjLm%__!_t3swrR->2^h7$)=DVfNgxy))?YWV!p%`*7_Pq@pd z7tb?PvLw@K9J@$48hSxSF(xnLGNqjJ&Lm#;M$B;5x&xEPAjR zp$zU^l*n1w*eQ**NoPcs8KL6m3QTyob7wjCQ}YlxFXap;#45K^HTX=_aE9BYA@_sk z74g$#m|;pe_sDk>#ej_e#ol`bH5L60yE}cSfIIXi21I%Z2!eRoMW8fZ5Y z;&xby9o{vKP0Zb7QmD(OAq_npPVNd;QRxw68Aq$+Y;HeHs`B{cjPb*6Ut(&B8<_Ye zCc(~sqxul(j)sWBwyY1|PhZMV58=XKC#FVuS%3s1oL^@ZX9|QV3}yGP=SKTUtI;V# zrw{w#gOCD+rq}`Fq;WhRL%DmEkpSGy#qXkaDX*1fnCe!a3>EkF_3)hy#UmU?LM<~( zn5ZXE-{bX3Tlq@t!2UH%Kb@|Sx`s9?ylK(byF$?S!aQEK0k{@(!!C`-r6wD)o&?gxfM)`67U7by!khrg68Uj%OOg zRzvJ36m%+x*uXVM+i`nkQf#(rNTk284UC&I2ZOh2+K^!2`zufGrwcGQ`*pNAEew(ZoP3FcIw#gTBSx|=2}@|FH@zK zSTN+IPu1dvAO#Nt&R;OJ^b^Wz*7JB8{n{HG-mTSuZMBPiklK^^nXL0lO><3#X1)X4 zs@_57K=+;1i_|Y0x@!b+nTefNxU!05vLbeUecwt4X}4;#pRa@aE~G$ta=_Un zl86r$I4Z#t6AXKBOM${ZC8KtfNvt`3#%M)&YY1iR+W%UNG4ovjgH%$RT2x(7n|ugv1wJ>J`vo`?UmZ38(OnTtH-*DnHWz&tAC_mti@fh zfGf2q{ZH?ODYVVDA~K4(ANe_?_AtXqF;+7$!IzD{n-%)*8%|11U4(%1Bxv|hzy)r? zTQt7waV*sp-z35o3qZ^9L&QjsflMhU(TnHzeBZFAk&9KIpg()9@Z>d}!ABuKYi^(- zHb|QuG{l!InF+e=6h+2^LpVs;aq=>{Ux+?=-g1wSpiXgCp}|TXpV*7mC3Zr)-5{PG zw1>lpPTkzz#o+2jP#?zxmEbgk13LuFfGpg3y0oW>^HYrFlkr`p$#p#Jz5$B9jl5zp zC^-cI)l^(Fguf=je-6ZVaB(~c%MmK9iOk5)%y|ACF1rDeMP#lg+X^x;lT?`@G1?Th z{nS>A6cIXs7C$6{f2f10P+{cP@#?^C1P4NLps3XBKG61(i2X5euRx4%YD|8QPB3!8 z^Qi$lzxwhZKsOnu_CwkT#?|q$MKqQS(qWe#WEl?T^RTsaoMu^a3pJpghdoUPEr|e| zdYUbAILUQADFnFycoxiU4bXI&Mg{7kBk7nZfz1KBMJzRSKMlQ~PS{VyqzKTvMKCok zOqq7X>T8l58Kw%rZ`wd{4>wk^<7y4Q+* zmz*e6tAJ(^?oA3#>Jj3KT;=_tq3?mGAz;29TPgNGy5ycGbUn#EoeyD4_&a&R5*~z0 zhY(<|*|uy<3J-ID7qy>S(E13ymv5=Nd}bdB^Yw6nYIBynu)xe3rUEFfx?Cu=AD3Q9 zus@GCpOSg>9q*`{a7q>63vo>p98ZX?ren`gv1hp0YH^Xn&$7P?IB^rG=LXGk(qtmR z94<)f!onSJ)nvaT{jLQ(Yz-9`*noR`26r6tMt;tqbfbp2`=IB$I z2DS*me%a_cf2F)pw3E+GXd>anLxGC^4nxX77T_RfDWAjenAFEz{0YJuDvJ2n8VWA2 z`&hg5@nPUZX+rGc67JDuCK$P=Cv9@>*u33iaU;`W9~rGrs=gcP)t~9rGXdKyjDF-) zcwp+}%knzf9$Xy-S4XS7C=S0#3cJC>Z+%_H=O>)QN}J!lBL9+{vXbwSmE8sj&7unA zN{ZjEkl-(DFx8WBHh%Cg+fO`;T{;?5KrL-Mv$$ zjL~58+Y0mdZ=|SVcr)!-cTiwqaM9bvm^TJclkn^^5}VHhr3#YYAU1=^Z052V(d@z< z*i(W7vrWY-Ltp`Sr}rE1G|jctrZJD-0i(B}K5JQ#c8iJ#d&oOZKiYt}Y)dUh4>2T! z>@J&Vev&G--4ee=144R=$naojH>dsGugmt2e7#1n_4IQc)Ihg;z6j#Q^lv+F91bnS z;g}5k8IaM$ zp(8067y~`9Hfdl_YE}@YW$An(fL7UY`SW_KEfg)Sg{H@6+9|)g9~UM&Jt?VY;M&Rf zK50LimjL531FQnxy5LRAlN$kC8Gvn20|GYji-kVEU+ex^`u=N4JE22e)~AA*;87&D zh>9&`bbc-?{xrFcENDw5V+seNx}DsiHM|=PgYMZ=E&05H;J)eRgZI z5MS}kw~>N7&kxm)4(#CNwb0mMJM+%cnD2FW!GtjemRSFNE$5HA!pPY293T0BmMfc} zk)W$PbHUJGuFsuY0?NV09l^0l2m`XrBNCb}Ko8uJ0>Wr^7n*UymOY4$d1R^2x0}Ro z8JQ?<}&m1%J9yHkuytq`CJgj1%r;1_>H7B z?Q6k0NR?@>U@@n)l9CB#heaR+M=d9n^S3hV?hQGbQjXPiam&Gcbf8KY(@|dhJK&sJYYB7?liZ=)dOO#0EX&U4bw8GQ z)6J`D*xOhDdrw@ngY3DGHeaF{2{=DADh)e>j-nIx&}9a>++;dBMu4VMF;RRBNeF|j zo^aeH)Mg5C$0x4%Vau8)7LxCjkg&;D($MDT5X7;-TaB?s*zr*iFyi|dLoe;1f~w(w zd;LVM{$xYQN`MIDTk2(C*43f+XQ0hLpr@#wF#slpiXNiL3{lbd#4yLr)8wraI?Ygu z3*7D2H0oi!pA0t3%XPFAa{1i{j-9K?} z^DHmC{t_3bQ#M&@GKuQF;js(5FB&y=n?+I;cFZ2QDhF&&^dK7hbd7} zV$>GOLO{Zd19`I@9l87LTVo5^IiZY2b~q0^7nP2Mn`1j=pOo;hz9^iAH#Wf@`gEM4 zt@-@L-^Gd5K%tPu7jtgY>B{+Rd$j4XW09L5vX+D}`<u*Fw1j;^_Pu>6dOM|v&z8*bM=HvMo1^lvRbuQW145plXYU<4CauaCM+bev6W3C{ z9|EM)K$tz;`8^E6Ba#fAh91n2)~phvAhapnlq1=_(SiPOO$~yi{&Q-T@@)zc4=iW(OVTWR+kwB z)EEdTEEHynVczInwIN}e7hdG`^pbhBkmr6Gop&idbtDxg=M>46UFTgfFQ~aAl!gy-<&ce+>4v~ELt4``TcQ}Q%S1ywb5cfHjuqxc4!iqLh@ zmV5GdNY<{6zBg2$=i9g`=9ho@r`s z%bTmP{5xLOyH)LUk3P#1;chX8(V)|@P2ZC<$c|XO|1x0p(+&LLsm^DD#T5f3{!{~J z1z+1InY@JvoDs03- z9+pIBW^A91{FZ<7BP6wfqyo9OO?X=2+s0?I3fuh4vy^82ueB7-C!HF;rS3wm!IKMN zTU8^)W!tpPe=M5`B8Nakj#egk*|I2o$N{rDB{eRmYNGgZ(C!nc4Z-2;hMZe~<+#p3 zMPPq2DKaWzA4wHk(Qm6__1Q_mf19~nu{Zge(|L@mTg^%HLO4$D*QEo3d#H0(UG1k(%4S=UX=Smk09{@4yHkoSQDE9+KU6ZMPi|Mja}^DIA^ zcwKFMZ=iyo{gZh)=i{|7wAsw`T2*WNYPs^bFMLqOwy#XL+(OXJ0@Icy)syV>BS4w{ zfP#x{TtjK}^`LJ)qq#-wO%91g3xzU_h>SloExw8|tOS<}l*W)EkE)``!lHpJ*edJy zv^%FbBW2&!A`Kl8yCOxT47?6Uym2=&baMtFTa}6@`Hnr76my_>%yTq8c>%+z8 z?#z7WtjqU}$kBmQ(@3@J*!EKB^88u-5%q66%f2lxXP$7PLd*|sLCqm|s9ATqV>D(w zYh=woQe4(=?&oF@B5U7l{%1R~1kVv2&sO|w3n8`1HKdVEeMHGo;l;OBLguPW-mCT) zE>-1TaB)UONY9x%@#i@CY9K4oCA;>*`#8NEcbMjx-t6gyS(%iwJHPw5?JwSF$?g&K z{R5N*2pI_UB$FJ9t+|XEtT#~#U6yqBKa-BVTfv+cBOaFX}S>??%vs=n378fU1mH=nC}O6fe@R-W80e-=RL>j(9I zaTq1-bs8|DYZVbW6y#cc2j%Nr!s)VJ*^ywhMX|&o+oFmob1+p-=}%Cm!xtfCiyI4e z$cn2&GNo-w{imJ^1l}{jz6kf zgEBxK>%g;w5hUH?1BO(G+HFa9T#vamgJ-3tWq5e zz4A}URj42KdhP+Gy?9iu7ynG15hwAdnXavgqTW@gH4HduyIp6i5zE2$dcfTcQynOT zOQZ~(5Jreof&~w70z>X!Pi2$BUeVxc(j*G$LsMZoCivuG=!yyX#}`{KtS*slIci^jaqf96a($ zefN(!<=bLup<(=GBb}odKhsuCE1c3(nm<~bTB~QUbRWCuub1mLYO;fry+_}w`JLe% zwVS~1wIt@iHk8OMjq*~0{_yxe2CRKyT0T-c*0#=W)PbXyPlk%Lha7vHZ2~%K-qbFy zbFI}mjG3DafIFLitm(yz887M$@5sieAQVHTDya33I<=dbGIU0(^P&xFh3ATZld|>; z?~EPp6dIx}PVTr_``~_wze#*}WSD|Y@0fS9;mGwT?iS_OEegabQAzINd>)$ckVyy= zqO5fkRU?D9{?oPPT3BxfyRRx%o@2j8ZvY?|V|{DXYOT$C&TK{O7|1t!7uqr9D8zsJ zd@za#T$YV&C~6~nO;t>hmFk}$uhrKd@5|5_rJ%wggyt7&_Qu%WflsTKoyLrBYLR0n zFDH=fz5%a;C3Vl9E6ka*Q#1|~on5)MN^{(x^QsB>DDuLgCr~xP0vGo$GuE2dD-%XX zUu&MlZ=)ynd&<}d4D^AU#}9v%7BRK#U@|H9Q->Z;ypnCWQUw!Qs|Ps5>-t*g8U<=*pqGSrZMxmA(fb<&gjn#Ju1sPShah9a^vn;MPEH5^_>0h&L8xA zYoRx!-+2`m$d4Ef-r`X>;|5nu?InaWQu}+y<`RDsFi!aCh!f5kjm!P8{fy=3?|Kf` zto&G)-j#DU3icI9zBT2qr#F3X*rdtzxfRLB3riDbo%IZzo0IG&W(M|eSiY5b_`xxC zyDdl00+RFx8n$WPdoR4!Jkdnz5M1?Ix%p*!UneQg)B}_&dZwb^`=ylK@gR+w{BV=3 zro%Ma&Yp5=&ibY9S5t$PpI*=w`T0v`;eYx2y}9Sr=f$lmoo55uUx!>C|K{dCI(CSX z`O;Nm*-5`oCY7A_+B$!=ODb#W-R%=)KsO1_@Y6e=}WJGB;^RtE(|wyaoG z4gZQp*%m_oP3`V=ay*!NQ^|cqFG;}>v}ithqo;J~a+ytEncJ;9>+O_^VKsb*{gQ*2yUaQt;y5gAWeyK5*TnSLZPWF^FSqqkLSe=r&3#c%DZf>@KuOU^e2Fhxf zIdQ-GHqURh4sTz;wN?NW%S`N2o&CE_PL%>!&9vj*cd&bF+fZ|kHM4#8SNc6ixuGQR z1=wniY?UB#DfmvE`kbI4_y$Douf9f$&#>=xO&jg3Pu=O?Q9pnsUhtAaf*w^ne16|rrV1yFx0>^R= z=zzW&AnA8Om^h2+=8D2Q{lf#mWz-%4Jl-(ZIg+cR(iYdxRBtjPjov*WLAo{Qlfy`y zUHa`TebX0ZIS2l@Bq{I#F={v|7qN`GIOoLT!2C6GQ3mp>^;tREtjt$~>OXoJmcvDs zxkEVg?xn1eqd6JxT{6>#nUHIlemkdlhy|Q_)#A4JHlwEbZf$U0&Lx<7H>}ucq@I9F z;N$`}?O^~e%gfFC$}p33nkLEy08AppW~#6gLCk@r>?R;P_Yb`FC^l*(XL1RqO>%F@ zyw^Q}?H~Y`2xu0~z3|d74A0m_GRSDld7%P^bBq&yWCJRgBoc;29ZiHVbd`IwRNUI5 z*eNjA`H!+?hu5|F(fc|e9l&(NkDLe4!x~^1X-HB^8cP0?*ONJ1CX#7N9_azt{h^~Q zeKrt0n#dS^xB^#i>!{~%wQM&3^=0&x*9ct&94|H=mdgg3+Cq6AbOPCX)H#X3Fkk84 zLSTdmM%q@g0jf`;3g#k#oiLppE<#0!;GxYObvn6fmt6`qd@_Qa=KFoU6fg?};Ckf9 ztG=G1%4=)gH&mw9`hi*7gE#J>38ex7jC9Mz6-Lm6dxY?-$x@a(XKyI!{!Sg4u?Ns! z!I%1+FEhUMA16DE$KJ2xQ-5RtKM-5Qh+6Krstm(kdXqIU&JrUuO8o2vtSLA69Ru)% zqs9&$u!cCk?vTC2c>Lmfj|(djbOMB4T+6W+Wo!n4&8b+^Jgk`&$4&*@3~eW`1I2i%_@xoGU0wB)fz z;9mhw)`=#R|7PrT-d=4p>Aw&VpS-O?G}5l~K;Ii}SshSjGgSp3?1sj{>d8nMz!aD? z;bBc}vLncoVUvN~PJS1Vm<1%pb0Nb{v@O^825de0bVs#W|9-BXVE|YZ`7g^u%{{ zcEk{T?^o7Q=TH{(1OT^nuI3nm!QCaHub*x2HwO1i=G0xl+Nb)lM2P$a|1JCpDLpJH zlmXHPxI@)5lVgShRsQ`7>}FKJ&8!^bA?)$1+o%f&Gzwv$zspp>GUBuRs^Jssz&*gk z-PO2PQO_5jn+;5iF{igD@`IChO;7RcOu+y$@WOZqZZO0;X7a+>@yxGZ zZ_W@HGsc+jR_L&Y8ShGR)}&&!rv1-xgG{+B13ugUq+Qw-n!yPD<}5mVW2~IM`=AQv z$2v?rZ}-z`X0*Pv3;yt2+2gqnL6=M>;rS5cBO*p?V{}2x2KK;w!)Ef1GT}>kPIjyq zuBgUQhG08T&u>*fHxWPXG}%qmoh6;I`d*Edmj&c~!s98~Ou-D0DuJ<do4L8idLK(A7UtYJZyg@#+WG3# zL8j-od8-aKRdxa3V_5nNe(CZlZWTVAa3jWyQSd9@Gf~f=1s1fhJ>B{ceJ(J6VaKFxzT)2MBli#s;KQmIUNUUr~lAsQX+uNfVl(iP1`8_}65wCI?r#fI*vZMusI_b+bS z&-9Q5(%mo_ORs>~SNo%1*Mf`NJK4uT#xecH*%p?c#GC0O%ZTM-4PzJL6J9eUIY*Ti zjt#NXKp;(M=IYG^XfQ=Cc3%&CXjcrgGxl6J`}U=;y^JkSjw>;ZQ(Bt88vX9JX$(uuu76>sq5`T=nTJH|Xg-{0|Be~U)cdwi zaOO>~&))Rz_er|%|5&_NvVk2Iu_ZBlmJ07JE0&ovwRhyj-V;lh(W&?MQuhBnIv2&k z+&Ghch>LF7uuqv0H`xbKe3KrIyq`|_Fgs;v zkd0O3X3M+5I_zP`DVT@Z@p@<9FLf@BH71NrUGxcq9W2X!mXMv^6rGXE%-wLH)8~M? z`fCLqJ31A1gn>CqXBu_CW${1#-mrK2e!TilCi(#SU@SY8fmY$Ml!9SN(V@uKZ>MDw z-rc=;E{v(t{n}8(RAj^}r$)%Ur1#xFusTGVZh2zQkDFHV@F{pt+X;Xc@9uF1sI_q4|Ep1NJGOC1%rWQ3Tsz z4Y;xB;Ks|$P2WGnM%Nk!{r}bI|1Vaf|48nC|MLLzSE&4VT<`Bg>%Wg&|4sz`os9WA zb@=ap8quYHpPc{uwCnG)!M`()|2}{H_r>?WFEJ94vSe0IGG{FfWJ%_OBnvT;#lzA% zv}CDN^5(qcZI|TTprkGgjdBC@hSG<2Fv@~~)&C?ccYs9&Ebad>!GB*4YoI`eUTOj> z_QZGBimzti&sD&WRScBP&fgdg0LRD~$BIdPnK)$&jWQa{iRp{(fx1Nl{n`J=YP7aL zZF_IgDfoHNpG(pk<2kbBO!odyHTnvTRY^hFCO%v~fB$?)SJHGi`4`?`1~$fGA(4r$X4JiGCqYIOV$^4#?kUvZo{q$iwt?7Z%O zSEH?sLJ2lZV3@hF$aMcN%eNCQ7c-Ugfs;P4;($l(`+sjpc((EImSziT%G8Xs8f}(P zW&BC64OJ_X{%7OL(!=vb@ApwD@ANM>AN=(3@9#t-#KmAm{RS)gYtiG&2R_-G7r*S- z={dYZvRNXnMxWfjnl~cvM|=G=;rr*qBo@}trsxF9D&{4N=wYLkrRir*1Ew8%E18N% ze`s;=(Iug5t%_9bT#;D!C8{9Wsb9c4MT@}SX1^F9t3YX**TI5t}6i7u%>oQdg4r%JfsT=KCZN6)b z?G9~9z*-lo4%J0>yQ5x+tuAf7PLz?>-nE*0wN^)Is_#%$b|gY31iXd}h9HANW06QC z3L{M)%gD+QRpk{8R9D+-Xl+@u)I8Qee?|buV}QCH>WLo)0Tbyi#PvIJz9#KN3U#)S=k=5EL{O{%ThmY(7vxyvFDD2 zZ#xcr3pwz0=YbXJ3Z;JyO_UmYzwJtrW|F_}KKPxM{2u~+&ynwY7~dl^zeQ#(M`e7D z$`VIsiDRz1{&l?M*YPv|t?^}+{bH5>XJu6U&aC*IRrx!+>NmUk z7w7D++;hK9*8DtG^DD3BSAOl!{JLMK>waqZ>-@!zmW!?Yj>bzJysP}OE`H(li#fM0=iTW(HPUl> zeBku-gX$-fZPPP%p1ykg^v%+<_n)49Tz>lL>%_;O4?jp7&%Ymh{5vlGJMrc3^zz@C zum4$6ww?GtY`bRUI17bWmQnQhKMRG|xhjFdRU#rhi=sl_^}h>+{mzlsERH^@r8%*T z1LqaGuNdTNZib|@lgmwyFVgPhuJ-I~dve+S$f>1{LxwC(y@>YJy=#q5Drg_&3UXOl z-mG=}=+$l+D8iNhubu9e>*ejjkBBMqm8gGK!AE(VTOp{Ysm$x5@X`c5+sv_>*Op%k>vl_Tt?|7kXOCst zlx1*;BbDbQK=}-UT|_E=`2s4;xFCacY9V!-lQArKtkW*|Y9>Qz=~mWO#fhxxJ2Km8;YeBQX>z}!k{Ys( zVvfs1dD@bjUgg_;TYBXqr<943wbbShC~XHu=4+hQ_ht+}c7hv2)y>xf%b zYN86@MDtf{tCkfe1&vd9d^*1K&0-~8Q=z^9v~hc_7@WY2atMy78Bhuxf(K|hC%-+p#-B#b))~~eheaD64Ie;Rf$} zx<7cM_PY;VqU?R+b}Pbze%F@Hcv7#+mwOgtG$A)3G&dz>+v$6+IibODMz50uZ7dcb zmH&LYZ7qy}WC@p35d}_i$bQ%7bNfCIsJu(9qR7+jdIw1vq0}J_cUsb*+yL*(h*8Y@ zFZal7eDA2`R(io0Zu}H*fBh(#ORyjTSA-6DnQa5+dKXq6h993DaPVErH+Qgl;PsUf z5R`Xy%=T3pcT8m^jrxF6y7`JjOyCv7qxh~5DZWW0Mz%^gBTq~j1>7K6(r2XxY6OR2K@uF? zL%pN%hupLA3XG7j($|2%Y2?gxTxqEk1dYsv%X04YA&2`5e$tY)Y-cI%(5nj{(TF z=-M3bvLc07RY@azgEugf9PyzX%1!CM^u4;fibNY$I%XuE1u5uKW`gQE9JvM zewN{ead1n&Hz@+*=&1H$1Lh-?K@JLTGd^k4=0Muu&1qcZgS@9-+e;p18RFnr?_#*p zWg!ZlBDLOnIo3KIGH~l?!TA^WDco>!_B`Tn-<9Sgb9cEtmE{1|bRipa`9$ zecWwcaERWm=WIEdJ!ObwsWUF5bp2MTmsQfL(MK7Aw%lBtT>WJ*PQTue8<=@U`6k0z zPi@@&`s%~%R3Os&H_^%N9{FBZ;m4$B0t*x=-u<=6XmEU@qi8w>iturN*17@PHH!zLVW`#NUS(p?r%XFq|J| zZwjmTqxf8wR1945%d(prn+x4n#P;%Y{gGce6FL`yYIa&1_M{%|enWWhcNfwzaAUbe4xZTgdzVF-l;+GebCUY*RSw*XxiA_@9HTw3HfVo zj%>}hBI&wAO!-Jc(}tnkpJMiwC8mt!gX>cpBM!3MlCKP(S#q)7`#FQtu@o1ZG598y z>P}G2YS3^K)UgtfN?lhM(T>bMavNr5UWFm;1v4V*ZZ? ziiQ>>D#5`Fe63m>B;W5JOP6-;!)EkCARn*3hi7zuJ}%h1dFMJSV~2@JYFyd&t#idW@9DP2bIkBriIoVZuWwEwJ$3}zjU zVuU@85{>Sag$U?Y|i50E)}hm%(8Wl1y!6N&nmeKrvCHJhQ5 zQy9z%W^cvzqQf~Zo57q@*3iwtoI;h{XITjfvx%!+v&bAMo}UZ%%L&&%c073RfyrDH z@fb)x$yy{s)#tJfkzlhvZ2(+oD0D@as|83p@Q4E@m&6HrpTN9Itf{WBHr1qMn0`HY=`S-hnv?FcNKu;PBj&;|MG%1??hmk7NOL0V{Tqe{8*Bl>Sx$N27tf)5R<*rk@`VHWb+zvt1# zh1gzju0OodI%WTv%wh^w=jz7LA4Lk`#mkq7Zf}aye(Hv213g0g4G7;x$DQM03q@eP zi}&&O8Apo=Ov)g7+rNo4cRlddqzU+3Nxp6e%pd#B~GM8anQ>052ftNoCm= zx%qQMYXLfT!C+%A>_4He<7${i>7-7X#1s9f5Spp^Afb&B4$? z?l~s6rj3l}EEeE@I;YYwflX9RKUux&^@*%P79*Sqo$y(TmmlW^Uaw5%Hds~U!OA&_ z)C4_uUX>7A1spHCTzOF3;Ie|jL_@f{_4E+q(W%VsIB(7IvSZxyGOmSCDz)l7CvXMB zgpNoarFf(O%ze^}{T%48J8JnLv`6K9;nTIFi>C#}hjHNvU`K;NBy_#}{LeERlc<>K zX+|KDOXu&C>##?|cxWQ3z_$6)QBv8~T#8md|j7_Q_c3LH=ALwnB~ z%RAI6)*w4V{c5nCtRcFzz}DJDKT0(mv-Qg3t`7BGxk7^3Z$^vXL> zeyz!^@~7W`MPe*z-Ol*mU1Q<+P7>70#bsCGKmf<1`0wsw>HqA;gm-O%xfRiTS{PVH z z0B1#5n`?e!LEhX=*D};7S1WH`_F8hewI3C*Q6X`L&*e+TO{@dG`Fdry{3Z3er*o zqkKNz^PGIQi=Ta48z&diO4OvR@!+-LQ;6E)3xALGDrqI^e7}uMEa}1H&QYb#V!xpn z2%jeB$RlE>h>4$JN~e0sZA3LMXuUC{`PFkOGN$>v;sv=o_I65EH+zlB++Ih9enai2fQ!cW z`s~K^m^gTW^y=*1)3)v@qoJlW;&9qMme&cmA9f<`zJ6kN_C3${c98Jdjq@50x~1T_ z#)IXZqbR>y{@<`mGY_;oaKNta52v6>Bk0yi=u3(a2fJBM9qpn(mneDTtvKPk2TI4G z5eg(ALHFEuAeezQMz^Np#}Ez=;o%QK2MMl;E5wZ7s3YUfi*Yd}RRZcGD-(!yWZZTa zG)jhsMUOyI$!!K8fXaBsq|f~E51z!SQx8qQPGAdgtt9*G@BnU}T zhzxqf0PYJ3oD0*oe+ifV5>#`5d-P`@eX7`dkB!Oo%D)r!;)nhlX8fbaaMh4g3AW34 zGGKMd9UftXJGoi%oG=EI+#=yyN%8#S_s50LK|tn;_j8aw4flJp^~2OnV5&@A0Azxg zsYZ|se({D{S|I5}%^T|*WejX11J}aCoo8Ur@SjWUp22&k(H|f0JU(5#n$Slg+~&Rj z8D1gqo-ckT2tN~*1W2uY7NnvcYOfi+v_;cLBsujg+WWb*p^I{OcFhFp2MCuK*cKeh zmyS$rzOvDtDECgwC8u;t!km)HlcLqn$4JkNeW0v7=?yo5mIr?Mj6{Vaf8US`Fr8PD zdEQk$x##b5MDMhG7|M@<{OyU6=V*#8x`eT)0@7Fg_}pj@th$>cgaS7@?I5QfY4${fSERZ^Kzy z?iQ$x_Q>s25a9=M$Tu#2d>|T|pD=l+D)amfu*cm1=0x*96$Dj%77G^W)sLg|6}$T zpk0WH9zj#T1joele!jk6TL`Ga%k04VJsNO5v>sEsQtoW=EPtar%P6JbP zQ7iqc8{-4c9FDFj-m$8AMH^`iAjlAcOhS;w@YvG>Br^!UMm#C{mhTHCn8_UcggmtS z%S_E{I1H%^v?Kf+9C;R5tA4Qm4JMjF`TxEl3Rcm#$h1;X#TTKS6=x=(k`ulnA&>U+ZpXc8Ltk#Ldn#*j4)KCue!xYR=CBdr8* zGciJ2bOnT=o|7^?gffqLNbXUUzLz!wpB~)5O`bRax24F6xKMB=pvyNeXpw=B%YdR5 zfJq^-v@F6%40GzNW3~)t1ZtA)m1SC~nfjH{NiKP^n{1J)+v@vN%w7Jsy7T|awp(0~ z@t;Tb5?N-RD^CAicec+`3wZ0_5^y2^PY&r_pO)D%jm?JCp#W*!`K)tg;D->YP}ug5 z>f>;3u_e0iWX@KtYhB0xN>CcXVp`wc+?}a3lry6~*5j1c?pH2nLw_bMjy=-! z8Qn>u&$?h9y48k|Iaw>{`-t4506m2(HU0KZQMOEuKk+;fN&x+vS zJ{tUpfKE3m*k+o$sKylMtx;co<3iFcc5}ow6}m-8%kf_*B!!TAsZh8yQm)~IM3r-{ zKgo$U_%?K}$%TLQBQ@@3w~<8xy>m{ybLmKJSAEUhtR}76Z51%4*5q4>h1aG}{mT@6 zB1wKE;fGw4Yl)$}XT1ZGm|4cWlM4Or#D#o$5 z$4cF{k;|;opD)Y)qdHVu?Q$sgUJ-*kq;*TUqshlp%C=8m>Q-HPM4~roWhs|L)$CA$ zVgq?GTcVamR9h${Tuo@e(wc(|AVN?buL#~`c5elqXU(Y&J~0qRx}obued&T-P471d;@mh4H`cunw4%=Nwd$_?87bG)qhXf6a*qUI({*@4Y zJ?^}^oC0&Z;+G?&pc}T)xdz<&w` zx*6wBa#df=)=1LG(yVvgtzDY>?&9F1)GU5)qxz@Ym^IA(cQJ8)G;S&91iybAv&A>q z!O$fAo9MOo=Hg^w4yJ56?)Hg)&4qGs$B7Hy-LX!;C{ogaa)pv!*1To|iw4w1)}5g` z>3pOOZE|{uD4E}@qox3Y4k~i1&eppTHfs6W(~MTti%*z^7H+wlX^D)-tpNptc~^Q% z50XS0Kd0GnMMQ1d&>l?+VLbhtL$9=forCe>*&~~v-#e&U??t=aTsRC9*?Np-nya$n z9HLZkZu7s)054}d$O2`b?U>}w}ScZV5ysz2xg6UBAd~5D&>Y%NlE-x9Rto|az zL=cACofZ*ma0)a?{taaC@owSf@>Ss?eOI5JybSmorUVkWB9kdv2oeB;NChwgt>iPm z&KAj+Ws0^sz@2D+-@oRjF)$|%d?ukENV?^$JLyH$PK}E?eTba-5janSV~Amm__q{R zfYf#BlMaK-89DRC+BwIxC(0YH->G_??7C^X#yjOG74zv&10}!Q>!_@02>2t)%1prZ z#~~320U%}i;BbEm??IZ<6}c8_jETR__qG_Pb-zk8!-@bkiU6m;g2AaYlp1}VOMnO- z)KXs~TOI2WV5@S7y8f)pk;N@U8Vr8QzvQ2Pug9V5+n+{Kc*;wZW|d2<7@wj>C80iC zSLl0o!(?+tP9VCio15jaz7AeP@gWMvFW67E?*4$sZ{xu@jz&6alY1Sdv~XwVArt*W z`$88C)w^Zu+Yb)x3;TLq64Ybb+;$ulPpf1-yn&nIvj>KE6aO#v-ZQAF{(sj^BLtE_ zLhpv&AyjE%=tZRWW<E78dUJjIn{j{eEwMEc873H`{LP zzasRamz`~otLXP%(|^%7^B=o&z^3Pmf9=jm_xc02lV0?{`@eSQ|6_LNpAU%u2nLmS z2&S7OXNeD9wr-!l(Qo%DngYN+KmiOa-~RA)ef08gmM{SD4zy39qcKE8I|j_j3!p~` z#3UVW=77SO}p$`bXuHVhnqx_32R39xV7H>oE>ydq2I(C{XWB@Uu0geA>vDm^DTz9uAbV%D9K zfee!A9Lc0>)AJ~G=tU8!ob3SL6v6?#SxN1xtM9~YRhG~KF^QbDTTXWYuRk~@x4}nQ zxlRw>>OhD9O9_D5BiyL?yZt`n>)SB=01mX1HL7}u({SEj)w;V20DP|fdYLV;mvvmY zpZ*qyp8x=YHGjib-+WWKkT#^HnZD5T_B$jl9qzd4*6$erzEyc1kap_lyZXGH(@qB* zkihhcF#M0sWZ>jKnLpNw^LDuFi1bsqgu+vgKri2AF880hLF6W{gF8$;%eJ%5PYr^e z*gyL9;<(h%^$Qq5l)*x?5uo?cLI1#C9p1_jfG`695P-p}j>Ay~b2@aeCGIN$n4P68 zcl%Jn9lL4$#sGc=`#~7Ect48X^(Qgc|^@vO`}*jCml2-}z0$I-1MO z`@}4Hubwf@K^arUDKgXSDdT@RqY?j0#6y*#rZK6B{oggv{|`4bn{24_MDIV&Xtp+5 z8#`gFK5DEsh*PfdQoaDr?v%tC}e&9g~(dkW|zZQ&JO= zR}&D^;1f|r2`V6X#kt{poG=6@jGL2_iya3+z~MYd1V0Z#8i7!TBUF$`H9=lYaXxJc z0RvG%oPdxWueb+7!Urkt%O~M0F6l2L=`SzkrzGX0al~C0Jg3_5ssRX&RS<(bk4czM!V?| zJoV$f^y7Vv0rgpAQNA&m)F*XR&{I`U~!4Zo+Im=Bo>m^f%XKt<&VSe=xPV658Svc;|#yi?vIO znM?0+C;D+G2F_*H-2J7w$7>7Ecb1;ZR$lL|z1fh&O&eb}B=L)V;Mad4iTJOML0=uu z>^X;gbq(Ef4gcmA@zdkK6B5sTXGc_g2|xT}fBu_HiQf-Q*vBUy1f?FFNjnHhKM2n} zI7>W;A{|7N_X+=jAtn?YBo`he75zvm-buQ&mQ?&ExokG&@??7TSXwme#| zM3P(f|0m+{o<};Y7L~d@3?02}@V`5wH^#3S$9)E9ucKrXH6Tj^5#4v5H+y$QzL~t& z{G!DSqHib{_E_57ss2H2M?K?358?gf^%Fg9Z~6t-5tgq6w)pSqX0jw5djEqj{3j~K z^)7DEq53dn2b9NZE0lLV*>~mr$V`o-5TwYxH(%0&*WFv^c z+zcP4*NyDoKIqee9u5qg5cInZHBV}rvo=!g{>DmyT8Ru*slHo*8(fcNirHMtSmBNb zpB|~dtJf`|BJNoHDKjZYw3UFHz$8G>-#bOoENRKks_y;Yh)|MBP&5`ES5v?RH2r$ z@Od7AMx2|sG_&U8?f$5`1lJB3+WuOzW@Ez-zxPF4ArZ3`4GftA)jmGmmP&Z~uwCWL z*yNTZM(EGS70cRGWw2{-2J^N!e_E&rsKU%yG`!XfD(I2nGA~v6A(x}CaC($2nt zuW^6l$k+*3P0IOl?A*bJsz)LA${-iX*|R<%M7wznd1X?Kvmj2zI;3VREg4~wQHzU? zU@xSnuZV`#Ib%tdd~|T}=!{z31o1H>z-6qbD6^kEBF8u}MPV*i4!$pjoq91M@bFH) z0#0T14vuxETLL_F>u%;Rjweq6Xsf6U=l8Itx^dAEGJ0L`BxW~#$8M(v@C0vi!=Ujv zyUoSYb#2WyaY{!O)w!TDpCew4+hV-=jyS0 ztL*GPlv+y`TVm$gIh*sX68bM!@3Zch$4c#`z01}EAVFuDuPT%o@5`eKMqf*)auj6~B@_TqD|>mm!CFHZCBmd*bYZuY ztPZpa7TLeG@fJ`60twa22PxghLD%qkMvHZqdK=#JjWcaaB-q?W0o#>l90n>cBO>yR z=dQ#0XcRf^h?&9$-A217H7T(LP#>T$Iw&X5TCPIemc*qL3q%p|5E+pn4qFyUktNNW z(wi;0=96bMAIlYYXv?yHIyzI=N(s4SFMNwBe>Yr8&dp9YTu*q?*|CnT$u_VRDEOK! z6wWWbG`(TPd6Ne!a`Fu4tf$ILCXlZj11Y6Kch`t-M<0L;n{HIEGU&e2fetm%)Zqtb z5NYs2VOt8Cs6}c)865@wYyje2JU~U^F~H$ZyD=v7odM|lOO(}+|5{?A|8zQ9O?CWi-T2A z-F;aS0BajL4SW_K6%WDe17NlokifL`4Sl4VdA}#Xut6@N+3!AEFw2Pras!wO~QR+QuH~(8q>JlX);3Xc$})I*~JA0 z%trsJuWEQl!6^V(q@T*67TE!3r>I26vE$eb=>q#xTkbv=6BjMbxV`3OM1AOM}jg%pHKvgdjp=325+EDK?9V9%2 zh3Xdq5zq~Gs%1YXIeWRFt?#P-y(=frLT+<=vAKWuoyV6CuZowzI{@@`7T}yA)$d^` zaYz<3#A#nkI<~*OmdWlj9MJcUt&(^mnZswBJC`pyzj$Tql;+qwM7YrCC$#*KLnE%F z!0&a|>-)72o;L?3Lg~YTcQJa{T(iO;7?|0=v2?R>9N@tm79M9>vz0T*pg%V|Ay+t5 zO?n-AodiM<;Yb+UEcp70L0vdYQc)aL$N4=Oh z<5cgPvF3~JuxjA#cD>j4mXXk?5wYgBF;(xwA;TGTu+355>z8a@xIG8Xi)LEFzN$6k zAOXEo%ECX0Z#IA^G7EepTps!rLpl6;0ag7XwdMt99P5ah_R;1_B6kX!MMo}R5dGNj z9%jTSHFAQ0d^`bwdm#|`NWrQ|3@nRXMSYD;et|;_)}HSe_G$fhy%MqLoE4vUevklf zbBv5fyy@}`UV!?A1(RkDmH5Ouh2O&)4Dc?bCppc4KE)14SmWUT70A-y)B3Mo` z7UmBlW-)UB-mrLFoJXCyTx=M;DmPLIwag?crX=?qMZ`8DUpZ&JWg(Y{NCYbD1vX1I z1u3$aw?II?W+C4(k%zpn^iz%82r73AD(Mj(@p=czq66Mh^H55GZn7%6S+Wot)IYA= z-2jAY5-Mq!!yCXQghJj+fKDSsyz`Pbknugp6{SmMFrG?pgz^UW z9h}E)OiC{x`*~Q=TRKu~kyNKoxK%3q%NupnmAjLz>y}|J-`M-ta;Ol1618y~L{PpW zmm)q2_5&z|;rbv4lB)&g?&RQMg#o>sCJBNnqk#STLOGvOQM2>sD0wdcK}UL#xeNd@ zNLnhes>%wy-n3f=P4eGsLtDsn^q>2))Ay$~){8IA<24 zv1k;Fs8J{qqajmidEb>#xdz3H07M@l2z@IYLEx5Dgm)9+0^tZb7|#lZXAy?zZs+Fz zaJB6tcUKdN!zX8h7-zFsdol$ig$D@}fvV4elFk>(cYqRD&TGPzgB#VU*aXkmgvHdG zleFuLxV(~xELE-`gfl4}R^Pv#K1x6|c_NJN5D>LU!_@Oii+b1OQMZ{_K(kr*S@4ls z(ksFhwy1YexaJx^p)~^a_bV4LRcSr$2%AaPqJ%GJ)du*0(m31>^4RAEwFk5J&?71^ z3B$?^YNe8IW0IIa)BT(B`^daSfBQz5LbbHA8(NdC&v_ZY|{ilpvT2;)k;Q(QO7 zT|F3=!O{u-A{tTKlg6#5c4yW_gCgIFzhJ*ae)2IPpeU-s~J6an~OS-*gU z=aQ(LNeleRLZ$4Km-fhgG4USz2HNaq$1)wTyn}qT)2Vf*sLA? ze*l*s=jKi9I_lR&5ppSH0Qv~&vPp1fn{EUVjsPH}49Z5ST-!m;98I7S6xTy8yaNn* zq}EZ602C4hae5YDbE;)nz&t?ZKkL<5bk4YT8?WV1?pS*SpeHVU0R1iE`ll+5j}0th zo~CNv1$el7ax~}=4QHEFL8se}z=DP`(VYMfB?UGgviJLe^Y_%QrXB7NzXH%H*s@QA zwaqHH;sa=JMYC-QGK~l1iI+iv+-Q!cb1xjBUk*}8Eds!T`{{>2+37K;g1tyIp^)J> z#AkWq_*v8&Y_fcRUb-#fT|fMqAH16mXnD!4AOWvXjja{0XXmG~J-b1tW0ZtkN+ZMf z6;kd|;fQv4FADyC>M93tIA-l^DS&G*l_yRw=S&j)qdRC8l`4yE_anfrCXab%jPVR8 zqW$?6eE0&W_k~Qx`60czDtVN?vR9}ZneePfVXdH8c$agxl0?i$Pq^Bv^pLQm7n=lA zcKEr2-uv-v1BArgLhmX!hBw!8D@CFDSzX+-9I;j<04Nd?>V=>>_REKc8*<4J95+_| zq^Y3Poz&XoN!lOIOgv|BJBP?C^mxA$g2j=f-w~WKRR!*qnFa(m7J)lTYd=jj3Ds*E zA(E3Hw$Zuo&?!nS5BHkeK)?(|@virJD3nK6?m~DA3cjQYzoLiQJv(e(jq+fE6ag1H zmAKmEKnNU{rtsuHs-VcLj#vCsj}W=yiSfS%W-^JKaYT->UUWwWD%Jv>>xzEfcMgG{ z>V3^Tc?Kb%IJ`H-9{*?1!y;w`Dj)XuYX=EYQ*3%20VX+R6QjxBfi44&<2XQZ_keM=@y<`; z*=yzvUbgC|b2(2#dC9thyU-XaGz_)iy~PY})m$VX-d$@IZ6#suH$Y|sp4rZdpN#Ee zJ((O}G`BzLrjO*pyB`qXM*v7DMZeBkTojsSE76&lHc zc1f~o%!|KoOi8uOBAgM=(~`Yx;0H|&u|MkhR^KKy%6 zcc9EwY|z!Y$ptVe^8L$zL1cRTG@vUCK0s(IemsPdjKsW6nnw~|RY%`tEu+zof=$u; zV5ry*RX~MnmQcMRS0beB^%TpcDmYp58Th2V?vN|@J@fwir{hsc0Lde}@BjRTO3l8D z!428I-DpB*akjC-IK$+N0VBnl zv5xaF@pTbQ)L*0bd@q3>jJh}~=QMO<272yLZ9uJVL$zD#Qs(EXGwJrKs3Cl7MW#=D z%g2vN4@Dh6@I=EO(BTzUY;5#&;NccPczddlKe`{J$%LLm?0otyb&j1Yb^#190(b5l?e#i}x^QwBRMH2L-gD=jB&_8gH2>uYb20+Tww>xxmW{KN2j7>Lh(1{eDG8RyB2R|_Q z<#6!JGks1cya3=S`ZPhoCV0nsMtRP0j?Lh7cl^*n94=Ce(D@VX?u43(T4tPI6D>I% zjOUP`R(mTU1w=z-F-Qeee4HTHEQ+huI7gxO$1H|Rf(X))KWF&Qmo&_|6db2D9unOC z&IJAKY2r6>jBs@8L!qH>&PU<1QoHE8-yHvW(u(?yIo7@VgPXdRSbn@)=Hv$+O*BXF zIVES1RIS%6^QD^-GFWA%E0gD(hva?$2Z<1aO)R1IvVqNLW_=C*mP# zN~TdAuIPlx{C_#4b5@777DF9GH2t_kBnxltc(w&Rh<<)Er_9W;u7koYnf7g?+529m z=-hqeHHTBZkpW}(ri8(G*ai6vj*g3$`Ae+}_gSCKb@^p&{Q;yO!(CzJ8e|dapi!NK z5|iMncups&;T)v!xJ9EKdfe(xcWl|(>1!22=&P}dx1>dNB1|3~0{<%11z)~(vc~$l z@At?BHooww_odgpgg5Qzy<4iMoqf&1khdx-%q<6-A;1etCC8_QPu zs%AZlukWxHj~Ugnkxb4gk~k7EcS!}BWT+(UAAQi&!|MK(BP?^aWUQ|`v?&Kzi~5Cp zK#seZGa1-&h9wT|y)r3sMnnYqL^t2iP4>w&lTJqAQV!3y*)C1;nu6KDdNQAB%38G@ zmWk)#lq|#+k3xd*+|Zi_3?xIlA8}LE#?rR?s4f2)>1VdDn4M(r1ctV=><29m53i7W z9$u&ZhF8BFM=MIiG-&_Z7u(J04T$UL6!K4ac}w_Asv+(2yPLtp%h!n^EX9y3Cwc0; zgX=i!4A}7q-1Qn{Sg$*0i0^8F#Y3nYxyR@UFFJw-7Z! z6mw}g&@SdU9JB3GL5y!8bllZskxY{=+FY)jF}R2qt>Pk^Z#9SVWJf&ug3Fu~KFUK! zn*=4a`ufJj&g35C7`!12eZT}z{!Oc#mjULF@G45KIFwe(8Mk@~JXbTGetFDsk( zwU~6EEsLLxAl6V?jtWyVkcJz5uI-N=+FtO(E8b~e;a205F_2L)Id3AZJuH%ab6k`l z8_dt!xoBqe<2V$tBYktpA9N_#i-YPD2@8GW@CVAW6#{=a1t%zH3EM z-5+Jb|A0jNiCMOmU^C%fKn5fCE{{kFL>jlkG2jJ4m;f&(Qf>--aW)-Nx)THM$`X{a zLXicQttclbV+Mx}sBDA=Lc`uRT>pdeRN?aJSaPWDEyE{Mf6a3qUgOrkt=$%IkR|+p z?qgw8MXg5j*%@YgIw!>s-||uRJt+=_?Dk3qg+mYlJ6Y+@EJT=P7I^n6?S zwEH6+@Y+MkTi^X+XZI@!AZ6s7uCR;t!Dz5lFhMnlE{t-8@{iGo^{H#3q6CNF zxZt>XwiGqQ$gPMyz|jxEVH57S;peCASeCXLm-L_JyavhOx^mR#o2WjogN;mLuYT$F zLCk%(q@sY?!UI$eWHn2ogb0zVu4AGyFnkBDl`wl$zMTn}Pk}{L{e=w6BC>64pyNG3sHLom!!bL?!NNbc@|}TwsGC|u+U$cdkFl3V|J>0b4~sqX%;k<`)+fV_s=RnLCwYI;RzSt* zcutG3bhv>g_$ljnN!zSdxn$F6xWP@SY~U4n?F2yBG*R1ml~Dstr1_Nv7nWZJGVB>n zw@l;~zxE_4#5PCV71~|(?@=LGyd+?hz|-eGqWAtuf(g>-XYFyr0S7K2I&!4b`~sAkXGmvm zDqt)8RPtDQ2ngN&uq4qq*sWB#&px6h+^Uk|ZtPhi?0ShR>UC-DT3hnd#KApsMu;kG zcWj0~?n@3e&45!&uOzKh$LDAN!d+`y&lL2xzzFI)InEKXF=~Oo3L|#B(DHm$K&-8< zEZ-qn6}dgVYodeepXcdgaHOMbuZ%Way<%wYu6xtbg+1(DaS%h%sE3A-dV}@U6+zz3 zQ@V$$NUmSA;z0?yRrhVV&E8l%?JH=?&g;3-sArAohpJT_9(-1W(KxGz?816KffQ2S z$}Nq9&4wK*sLMqU4ui+n=ruh^ornTZ?Ao|_4<0A_h#nxkE67|^3o-vPSyU34I&8q&{#AB zDvBq9qjGq=mKxhZ^85f2ih4|-9VkaTcIi`ZPqV&^2&K=MB2u6Q#SO-aH<5R0hT-7- zNJ^p(cw-NtM>OS^t0hy^M(RyB)3XU9gCgZ-Pp@7~3j&;`n~@g>CyXgI{156>@41(C zD)_P0wza>5w0%{@a;oYIV$pgOpupk-TO0{lduSd;goK9YrULKtdy_DD+^dme-Z#M{ zD!t@HZ}xuHfOx&FR`wWhsDM(aOEGl^Vt__fxwJvi)e+Oe+tIAtXrS;rEoiK0@zy8q zZ9iCztkG;5>?YhO5OdrnSns=zdO~EwC1)u?0}>L}ocgj6o&r%rH1kq&1!{q^23fM< z^j9Z3lw1pCsJK203fvNAenu@9tLvl%v+akS)M=WOJXHd;s?V1S2rK2=}d-%_^5QQL!gr^{KEZ-y)Y)coBv!G?>H&-OV9S($ub;!vjJQ{7~odmOr`C zRdr`Eys>qR>SseY;$R#nU|p{-&R(Q2OGk^DRY!?nMQ>6UmgGbx+Yll5mjOsv7KUc$ z*?r99TC*VwbnznSxU7h6Q-2PiMTust-#t>XDWZp^XpOYgtLch~nLMUSFhs4JAWxVL zCHh0T+4S5f2K11%ocr9LvSk3H0jJ0?s8ldz;&FJye0qu6( zVtX_GRONqOTFjDX_7jk?bu+*HV0SHHY_g$|`4gicqS*A%?*7HCIpw?U<4Xg|xfBx) zoku16Z0;Rcjy1|dfrK#udB2G~)QPo(r`TZQ2WcSePO~y*cAN||cY_HOQKU|2PWLwE zV4Nth!R&UJbE?z9=&VEl@>ek6w*&0NrX<d+CB z!>L`jDXOyp8<8i^1lZ$%woIa(cbfp-5emzK*F8=f(3tqu%!ky>%CE_0I-19;T{6)8 z!_}stRE>}T3(UGr+ILf!=LWC9n>5WTmxY064Ninla2SzNPY0m0`tf4ci$V0*n7RyXX(g4Oo0A5B5%EQl+Vas*&#;x*0vb5l|0K*vKIS>*+esc9K zmv7FFU!KU)U4PHt?!EyfVw4YWbPbo@giuEGxU^|m(txa%>;4H3QBZ(`f&u81nBT4| zWo*7s>e_6HcYXc_<x=IF$ns{w>QJ65^Sg=$(sM+BH~`s<^7#=WTZ~ zUwZ?j%v@Uizh#Uc#4^r|0Y_u=!uZ=ty}yNNJZ^n#8d|07BN zrDLb|a!ygsFaEah{q+VmZ$)8Wvwu!{c>JAG0)RCLUXNB_I6nuJ8Y}CGR?kU_-sW2& zWz5!_jslqMlx=r+B1_uZnoEBLcA53^{7HGwl|sy+ux$wcNoH0aDk!&BNtWq5*=h%E zKonrBiSSqM*51{kEurk zAZ*I4cR)Vrxj;*@thve2yX7^rgomH5RGH*Q%uzm>haYWiHHumihyb z2J2?QPFSwDgX@(J%8iYy<9>0p@Q?xf!l&V(2jLw!ZZj$@n4Za3F zVTMA(KW?0(khg7~KR?~J_R0K4(F*YM<;Ogo(a4Heif`u+IkN}Ne4u=(3a z0+U#ZoAn8hC0_QhJqRM^Qihs77jV6K>lq{YcWc@d#uD1j**}{{wr!rz^~eoLm*N`P z{+v@=(b@q0A;P6mn25mHiM_6sgAJ|Ao8QDTz)%gaHtFG0Pg; zj{-%9+MrMz6lx2FIzt7VcFEqm&zy6G!*a_gM}ndSY=C}bY#98-uDN5L)J)V*YYOWJ zLBt3)JDZCRBZklpAt&0&Cwd`JI{Wi3?s9mXq8Hbx;kW|rxqU8t-p1FORhxjNU9G&y zWvT7CP@OmO!8J{y?G;vOeDD+rwG;pk2?XODWp?jMCTZoI3X#_ zD@lY%qErQW^(1}D{_Y({S@w)4Q=!myvO{}`J?iJPTA&aPn1|Ylu%Sd~CPMe~vI(Tn zL*eho-t7rffJrf=v+K!YWkuv2H1QNghg|}vK^&NXz&t_09au;hF(x?$S_>4cg62E@ z41NS8d*_j9NjWsq`MjSYJtVQkJ<$}>rOKa~Ua6nOqt8_)yw`|+N!vH{Vt?E07t%;2 z_@8#Qxp`rL(y(M`Z3?-TB+f_;S?9cfqZEe0#90*c;-3|jzp8ciFvlr6HhZzO{S&tP zS7%C)i-3~F?TAL;4b8Ti;*^VDQlSP(`7^0dRvtM80wtv7(0*q+Q_LrT_5UO$?sJyc z{Gz|;n~pxXTpZKdxc3Z}E}{JU#y>yUaPCgwG$@tKKJ`>yI+>CVt@?SGv$*{v?{}E@ z59bS{Y2iO}HAg=!>_ks|8}W*R+NR8h|E4gBl(4koUefDFBt}?n2%Z#fK#2$=O@*c8 z3lkb^eiR+2^iGg++DR*%=RKS#B7lPso4=nL?;>98AlDDG83Z!pv)|qL#k=UcJil^N z(jUyglES_th@@}|1WNhm!EuT`HARe;E>6oNhiCR5hg|?rk`Yjz(V%P=P6V;9Mb`pL zk5c#)U0cF;WyTBt-|&TP!7sK$jFYrqA{*?wZad_Qd4~q)V#g+hA*U>_>9aA2_J|-R z4Y+#*EDDZr_%lIeSx~rBwZbA4O)y*{Q66zeqe*` z?8=xY)ZLCJlwh%elYqeCxomfUIr*rDW8g*X6kYVK8Gp;(l|{n*$$ zw|y>=o{>@>KO+L`t>I$siF55F0qOUJTAhvy0iydC-}0R^3AUJxC=}N)aymTrJlT@b z*z+&G(0G4mLWBu1NYIC zNvJv)`j*NNwYIKr^MUH!25Ih+;&)B)^C=VG)6_a2tB6aR?1V4A&t2i_R=fAyH(mX{ zpyBVRZj)vEQX$x}GWEU>SJT_-oz0j3tvjhOCnb|B-3H7+j-J&}`(6E{EkIN-oaQ6&N<#%iBDl zJr(lO&1sZ>N^QpE8>7p$Sv+-`$PMXZ7WPXN>!}I4+m^>!n(alD#DD7kqdV_X`AvIz z4~vR@@;&^aYpdKn&g>u+E%T+PuGh}%FA2QtN;<}_YR@d4O@47BnjbCw3>ER|;n8<> zZ}@wTA^x0qGCjajc}?RRoyC(Y<0``5m7IufTZRbU*k49$xEUrZ(^w2DB72Ji|D?7m5#X*T^8ZfbhMI2cmyB;r0g{smQ0#9`@`Xn72bc@cyD z34UCeBZw&6)&+O+l^mYGON2H&Gaa2Ep2sqEl$aF2qxY}|4>A$<_#IG(HpCfVmGPTe zGx9d};l=7UGVRPH)QvX0vvcOi`}or-YT;ruJXPkM(RG@H)_~yG_Pkn>w3#mqjag9i z@>P0eDHO_~PqUCLa^@5Y{V<~JTB2&{Ukj?aZ&5JHLVu|u3C_EWsFZdTDnww+_(V)~ z?KPlLDV##xJ3PYJr-exa^|pL4OX1DzqCPQc>-!AAt=QFsqLc~a8?o82mBWsbO9KqC zIa;6U)u~uWhn(5C5?Z)$J0SrwFKeMZNg~f=znvNuY@st;IWS`wd`c`zDXS7Rx%>{#wx9K2IbF`mdpYuZ{O0+hwfdYL&< zeC}Si+~14s#qy>x>qA#0V0<5joS_ciLj7+lnae$RQnZj=huEUoScti{Jh3P|>s%oY z>x3mgb(8tVe??D}KvgSLM}vJvkBQ>vtVN1|a<)LB#dg>0q2$9`TTxAx3`_}0X0%53 zV}x0Kr1~e93fH3ENLdlmXem9r!JEHnG)P~k@JUqA9)3i${g!)EXJSYpLq&E)D zG)k2D>dl>o9s%j?n6l>AB~``u@uaP|det{8Qa!5U*EN#5()rdSd-~t%O(o|1ezRLD ztUIKxnKm~ixO%7O;dV&0)$s4P2hWmaMk->??=`WPI<4)FGDgul>D@t?xF~y6D!jBG}bCrje;t zct-8L=v?o({-D;S_?GvQd%Y8;hg#HZwN+{UK8Cfac4=A5s=Q9$W5-PG@_Mxo%5Hs= zo`c$#yIMY|$M;PI9%@&OsI6(0^-YJG>Rg>`S<~z4dlH?gQ~h3T-Egk&Y0{w1jlGuj zV|#rwnTI;HVD$|%{s+ulQ{9{Vts7Q44`wfA>Nd!#f3$OZ@a*!S?rojck0;|F%-uND zrCF$Nx|BVbzip~_$E|hKqwB%*woJX2GwPpw<{m8EKOEF+i*NlDu=n7_;Gtf7w)*GO z{QZmLruv;_t)D}5`q_$V{qB18tq8aNrG-KL`(3SD=i>Wcy*+rWy@BZG0Bw%wxmf%j7X7%(g}zLt~?tSTHgoOEmZTG2J|LF0nq^cju4 zD{}*D`i~5s#<%TV-y2vr{l}1*t?{jn|KW!9aieEtZQpL`JpAZ*!Dzl-<9n0a!%fde zMhjhSi6TBMbfDAXi-&`W6^Ykn0^gB%$KPV%h!A?$^Fz`S=NgzB0pV-^0OS=R{(QK8 zY#Vqj{S9Yn5_G?IC->*?cORbu`bPqGa*vy=tXq+wx_FRrxXJR7Q~QjWv!L=C`l_-f zkb3~PS6%6~p?o)OQiljCK7M{crZ$cHHJ($j3Sj2{D0T7C*&prCfp0%L9*7`r{QT0n z^#!RZIO$gVW&Fa6w|Ym?riA}FSbvtW?Dhz}?)S)laV8ToeBofbtN^q;Gq5&t1jt=j z^Jno65dxI~KbgXTe%!_VeiNf!c28<6r*a4aVL|4letvw{xsT&OKsKHnVbgFBbkFai zwVeWiAjeT~bPdF};Om>f?Z*Hfxl@o(Os7a7uYkW-)GlB(p9M4xUK9(xJRx1A1s)4p@cssQqd-Y%k%`ivJ2xn}R zt5%GwPQ065lDokLC*xu}T(z}%gQa=}R(vh=Z!lBQq8kMD{d-x4)l7B-#{ z(4Q308{^j-;@27E*Xifi?%~6B@@cg4Y0%K>^=P$fKGiCI)pCB7B7UV@L8UAqnXeU+@kWKW!xb|FZ)5X4*w{BChPZgJf1@tp1nP>&>tXDZk;4eXTx_Bs#s z$>j3Q1?D3#WS)&Vx92#&M4soX5Pm+batXmZjGREANli-k;bVI9tDM zHon;bzvCRd>mI)6b@rRjx$l02AAxb-PsM*fo%katu{#YR-cW=#23Z0Sxy>DQ#h0TB?sqA4=$7+ zWK|yITsg?A{*_f*jq7(U=(NRB9jIp>VVb|I4xJ=3Ij{oD%TPMl|z!dZ6cb+#n1K$q3e%#eK zQ-jOqmbCAt&1UnLIhsty%{Tjiyf|zV?FHukN9paZ#7xyL-}p&Mr4G9dz){jdhX5^0H0BwJgc9$Yz*9{0Y4vIe%2VzzcT-_xAVhPmCo6>zR*0J zU2Da8}tx^;x>^A&MKgJ&}WQ)ZDe1SN~|rL zF##^lkvLPR7A}&8Luecq=sF%$`A?4WT2*ixdGbmaw=PEItXLIV=@x{}!qq@fwK!vj z-NoEgyn(%P>{l}o;?%d@Fk&osd5}L*Kawg8sjD5f&=vVMhBHm-U^Xb0&ytKF6?@iV zYYp{JO`LNHP>Bd~_`Hi}BzwAMW_N zKZce5GbiK1JL2`Y!vS)hs?_>22r4%Z6mdt{{Qaa7vj_SZfNlUici}X2hGNVCn1Og+ zm^8$B0_J>!A7>a%%>TsZ8vBQ;z?>?m*PxH}qAVI~`3lt9nMq+C3;ISEDKCP=eL6*x z{kN26a^Tj0&)TaXvr`FLA18qfmMlVRQ6!#Qxf`2}(3?sz=So}TxFrU}MI-={dZn3? zMo%oV1|*@Vh9P&abN9|Q(Lh=w9Jl)JjoxR1;3_be6H$y;*5zM&6fGJ)wg4CXsc`K4 z-z;vGY23&mT)lng{j>GyGEK9s^0G3?J&|ae*^f%<_i&qm|8kAjZ+*wz8OU)Ny{hT{ zS-E}s*=1FKae+>TXazpYR%euD&aITNoFlB%f@y+l5<14Vv8-dxoZny#ZjxINT;A@} z=N(T6G6q~O&H0T79DJMiy72r1`efsIKphb@shFrg|L`Y7&x?An)EHy>^U3nW;SbQQ z3}tgIT%fYK?r3|~=TqI&WB;7NWCI@8a;Q^DaJ_aHQRgup61|bb8>hW-H#gAWtsG&v z+TL=)@YAcC!j90~^8DS>s_6z>J}NOcL0jHi%vOm@dlFC$hKMZJAvYO$C;V@sirFtw zAQonWr=!nP%>^1TIm*s;+@5rh5VuHnla{4`uN>twMEm$jqrEH4&oF?iOrGogvjuQ7 zP8I2A(&7|6Up9j*tu{-s!UmxW=xlfAX^PeAGcG5hxj>R32cA0~ZgLm|MEJX#k+9D& z3lfaYn|91B*EYc_V~Q~fM2wIct&@wTN&ITkOztZv=bQ~yv0~<#H~>A%17P9f^2t0?3m*zfdE@LBq-~8?o=%fsnQmVF7WDQ|H;DV;JVki zG6g=A!TQ3j)a{=G!V@?+^Zm`DP#`oxmcN)zl$Sb9iIZ7DiKIYe?8PYmjji_%YT}LG zcGI&<2rM8~gwR3hB3%f*V??Q<2Ba!#=ta~(LJ2h>kbtNGsfrjB5fn9mASh@+M8pP4 z7c?j;Hohmn_dVyGGjq<&^LJ)9o88H?pXo2qm%a) ze%a_-GYRW4d0<8rb~D!rRwPY*GSpX~+k8daBXw_5%yYtbtHJGEDq<8W5-Hc@s3x)( zbg=%=UT7YvxnYPtChgF*x#oRCMDor>y|4+@W%nDPr%}ljpCk1#2}2UZFDc z{0BeC+?hsi8k~^G=fBOA?F%0;&a4rZPG)*x*2=3?=kxe$y>{w{fNkHW;goa-MFlp> zEJ74?U~aj`;H^a?C9*Vhg^jJbS_X}V=pA7*=y~HojcKO(xo z)U1}`#Fon)ADYNw#2v%I`5DCirVu6I)zjI$fbLZJk${1!<9o>m*L!8}^PTkGNWxmL zMGrSE-aHo7lbQ?tzLt=;4+;5=xC=2YON)8?I8H z!P4RAf5P9qp4CbBmKT5D7oluPQTgA0SdU zk>ocp?Z)_KN`K{9cww|B?eQI6mL7tVe_*^;?_^KBovJBBPYsm0wP?CiR+T0ps6iOF z@|5oE&G1V)vbC6UTb19HnfCn2P zf|<(NGW&vnHCwAAUHkE2>wArtQPzg;-uVY+du5;G3b&kVqEU({xltFuq;6A%8Krwf zpeZ}J_pk)+z(%e77~2_kNU0#$^VHWcKPd+vm3$L}un0|lpL*{MKK5_VI+YK1^9L#f zCkmN<uMWluciKtu&EpaLMPS{c~YKE!q?>Yg-g7YV7Al&)%?sS%6+^ix!5 zJ?xy0c_I)UWu94O!e zs;HnM1Xgl^)}O$_mT2=N;2akj&n^%%M_H4RJ4pvFJ42>YyRrfbCk7?z2a_-oc$5*| z)Es(BWWXs5BXi*~;3pv11Ob1-%o5cj!lkA>Ak*|Ci-f)F!=%Wb4hT~!!X+e#)F3o@ za2f%WrGPTrgYT*EOb%Gd1m6$}ib>#X7Tml8$PoY;5Q503!Z`(Ye5BB!XY&HBnVKPH zSNO8CRJS?z8L3EQZ8J{C9MTyqg!59cv5b#$_#SHBbt;MNaONfj$1sNsa*NC=i%*PN zgjQ&>{BdWcF^l#`^^qoY3OJ>4#26zcBb>DGLg!up^y#d|dO!6ncp)Ea1EDZRIkr^f zcEerEwWT}9N|T~l-TX|kwLX-t2>p|&16fI=E^z@V$btyk3D zB%}d_f^9o*2Enj-9B}HqsAcBp?bFyc(LRm1^h$}=37PB6@F98FRVt~Kc&1&Dp5J+9 z6h`hQn0oAzzQV0Vt;qmV1Tx7DRf5>gPo-0WDv5A;ZWWC}{gho2@*QXm1JlcV#G`>q zDnO?qw+&T@8|T;5=cYiUB8{fiOfUOV+4W6FS<8**K2D~fLr%k~nSD;l zVl}uV5!@eFw!-6ZE+;_NKYk!Q`SVXYVkZ1)Ag+_yGE{}TM8#@J+gctE716P(TI~P~#&vf7QizB6o5RHwRt6Hzdrx;os## z;a6}2iELa+?rpvdCZl?*C0lu_x}BTZ?~B`VGvKvp@;zp9-*?=lX*5fRq5*+LkXT*^ z`~$J-LL!_-4r-M>&m@8&^*7|ZHd}MKt!E*{OYRER1P)UQX21+IG_3zIb@S0}(U|}! z#;ifgy%BHJhKap;$4_dT@Y!O-MvRICN5tWd1^3+vIIW3`yN!Fm6&)7ZT`6rVrN(Wp z2r3n<?2UT!l*Xu43gko+E(B=lTCWCETqDv~k3?`CLS)j_Wf|GRaYap{vL4?Jd zc~>cqNi}a}8&G@0#bU$JM&z7Vjs3sR#faS6+jdOJKfZ&~C_iINVER?^;I7!TOdhZy zpO{YpWrqM}-l5g(Bh4CsD!=Zmhk_;SDB1<`z0=vdH9R3Gu3@8|4>g9SL6XVPPT8(e z=Xf|7XJ&@mvMCjzPzAM7gKM4y$Y&r<83HsOzMNV9mH=ci0YnY(@fNVx<@OXG_-)~n zPofqY9y-lO+H>!kcp#0Z5sjwM-Xloso!yv~!@kbs0jq`vHYD{JQgVS(lamq7aT(2B zA~Rhi72HU(gf<6Dn`Y)~9$}G=$flO8`gv>J0t~JKaI(+J0U(P~;2@xi1EugPTcK^3 zaf)Xn8tf|*uPzHaxT8U>5qbi};UsW5(aDGz+=FRce_}(*od&wjnbw}3+K)olQ+_G$ z;HC2WpDRG0h5I>7pv}VPQx!n|4rqNB?!T6Ux$!IKBy84nWPL^fylqtK+$Oxmk*ga*sH_tu={P z?%m+U=EcM_zK5e`?g8)-2^FL|KZ{KOw@u@PGZdf5yRD5tK_2x+{s5Z{=2E>`JfK7X zcY~g^={^d2i83Ol-%o!=M|UCCk})bZ$PApk8Ki-|`X*%%J);1u#vX5w7*mwkX^2?b z;Ze+w$`#!B;&Ho>`jj;da2>tb(D{YLBisexA_uwdd{Ush`N)leykFjFA_=Q};RRtw8zuranJTbjD5&DovEx?&Z4q--*sk{^&if9m- z32$xV@0daSo-Ih@`bB=f_^t)0WZo~SC@G-ARaPpqpz~q<-c2!J6(8$OMmZBExT4RT zU}zir>oMD=M%$l1+65^pN*J>OFr$0~9Orsk(%1*70RhJ}3fN3)$&ad=WtZ&T>)!D3 zGW_g9Y8{i<`lAw5g3vCMvC3<&I{Z=IywpFN^%IFYQxmIw<*KhUUw`ct4GgVFwj5tAy-9CJ~T^5Uyktocij=+c%*jD6kG1KmB&|!cqLl)Mx=@Kj^jd zAVLV?iKl|(TPL({WvkW$#Ux-#07M^vGnplYOfZuIe+P*b83GFgv?~R5&x zf_GF5ATPjv6yUcR0vQ6hH|c{5=|k`tl;*ocaw{sBjOE+lp@)CJ%h?K0eX7`6O5vXzLOiMJTVN`M!L7q#2w(8dR@aP-O^u`hzPSz+5zZ zK@*_yv3s~EH!7;S2nFXYk(HKRI4F`KCJy5dk(If7@{}kL$t~ysn=cDZPJ9=>Tw=jP~H5 z+_+0`H&-u+&AU#cf(RIGqFT%6<>f;=R%9126W!&*gCaEnjo0pBMjIWLa0aR8JlUD| zI5^ldT+%}F!!wAC=_;M93aN{5P9j*Fb%f4?PxDrmtb9tBD>>GHngDh9=c>~C)tQT@ zf(3deZ#PwX?ta!jxeInz;`<5cNdfNuv}nO#3ZEI1?fLM5VU6!RxAor?q78BL0!Y~r zluZJr?>sdz1uBGZ`Cwv-M4%}9NC6kVaN*)eCqLSHQ256N(fJ)1;|j z*7Qip1W?Ai#v+3mh6qpY>VXH}mEWWMp?qyOC~Y_=Qu%jCdkd)_mX~9Z2tIL z(eVBKebjzo!j^g%Vf{Q>5AwoH)&BSIPD$qH&k{Rde$`io4Nl=EwNAgzp%=)*3N7$Y z`De_2#sYR~X+)rc38s&y(QFf888yr-k!>hx_p+!GRi{F+kPid+vCFo8Rfau-VMC>` zt!CTzmO3)d$!dD1{6b(nVO!zB_v!Nc{@-5X-KRHE3i}sHwN8afPXF6$oWJQ4lwYA6 zXc{^C_{FD}H^Si;-7fpBPEEFr*BO1w^4NauKzG;})ykpxvWuLd=#AN2{$+vobuL!2+a7J-?+7z6i8S9tZwp$F8v8$?H|tY67ks6) zt_A6ziav-rUNs4O*-{yf(S3O>=+=qw3pz(I47Vz6yE{zqxw4lm#^R3SkWUsqOYY3! zGVSNLMKV!^%rVD%zYFB_j#P{xoTvuIk^D~ikM;Qz|Ni}lH6+5Z>O!w^YLy1{N>iGf zDNC+9PbN5StzJF~0UT3^t`2Nq%|zAcv4Y=}g4r_eowKE$m?8CAk?mZko}R^vV&Vni%PX z=!ziC_4=zY^YtuYLas)`)W}KQs6p0SbQ6X2Gz4ZdPoQq1kS<~tj*wjJ-=~mQjG`lC zQ%kActCbt`OiiQ;AAo%R6{L~~uS?nTP_sES%RLPY;Q(C5Q8E_BNx-Ja_> zaPk5A=kvf&+E4||ao9;OF15-o+ZyN!gPfu0hmwv;Iw+)FdUqI2#9Vt8a)jjR1W(0O z&pa*maT%W>c8Y3#SWshxcXsN#k;e7 z5mouRd7cS@USiXdi^$88-8`}WD!-Z+`hi`Yppyj)$_2C8oLTdu&5aFrj(Q(2*)@D2 zR9gjdHy^AkaYTjECG1Ul=uGaerRjdW;mov?tK2U&oDN6uD>9pQ(No0eVbg@xCb_id zXrH)?b!>ksBDJCA;FbP2OqbK?4WtO4o_woN%pb`Nl&Q(N)7yGrrJaXch)55Sy=4p9 zX%lx}IjbmrJjuZvwoZPVyl^l%D5ed~ijN10Db@NcH?*`j|8k~>In0XeDBAPT(%pFU zp|uz9q9fB8T5`bY98y+3$=P;r56)=1b6lhDRF3VLUkm^F#Z_lMbCP9^Nx!Opd~g}* z6-J^NQpr$R)B%l6s02u1(8OauQVHV&fa2~C)_zQT%uc{60!@hWX7y*5=l;vUJ0m;;)MdvgUP&#Pd(+M8Dhxab%w-a>T+*23gUb zc3BP~1L{R56&JVaw2MX(k8HK*va`6w&9SpCfy%i=tp4v2J8J}##?N%I1IH4sJOcMm zBjj|YF)7(4nim2kKR?#qccbD(OQ5RK-n8cYaD6pz)8-6(D*>%ry&^&96YXpSo33J{ zTBvLiDL)9ki1SV?dzy!kEvtLcn&f-YAoYE~VILan&DWOy@f!PIw*64=t3}bhn42_; z+ryV?70wHlP{s^=0tczoL|qh9VHg9ZR|2&cEF6~UTETGiLDHBk{aAbD@T046QjbWO zec;Idc#Zqr4D)JjFVwwYAJf~+s$C&kq@uVDwt5M z>@tK-1GL`ajCg^ZBev=s%Vxae-fg``X@~7udVGI312I@f*w~BB%{z4ihVtrEsTjhM zmB~lGpPXnKqEi2)UukZcV8|}!XYF9Bh%*gQsVX51ukjjDO{EsC%HXWM_A?^El(j!$ zExuLSvRam#Yt+RWT1?%mk-aoS`ZnE2;Y~3}T+7tGEaGUlUVljAe%z^>f8Xh>i;4uG zk;zBW&*=}lL>um1I)6Q^SO@Cdvd&Cs*oBs6x4UZw#e#-sR3a_6It^`it&-t}`!2O+p@<#(IW+IJ7j_}KKT z^3UOXyJ9Pwum9<)P49~R;ZbKrY22bXbM-_@pYp}59iAB?LDN@Czvq{pZ+dM5cU2kk zKN6GHL=$~1lQy>RNJAB+{}s>Ng6A+2S6AkVHY)zrHx!80jmfwQC)!1(d!H-7l2`O~ zs>gh3F^K%&)su(u&kv53mtl#YUo@oov=)62eC_wd#1Kx|p}B`UufFf#ahAtXFnPet zCOGZ^I9vI7y-fJ3KVDooJR}*{gcW_6ExIBjqOTG1ar3t33x&HLEUT63H(D^Cxb&6q zVugr@j`GGC-ET)8N|#^i-chCHKH0}hwu`L97y{`#Vtw@FpT)aHT|B*BUtB+h<@`1X z8Cab=^M^hA?#IDbo_n|N`n+G}FqeF2#q06r3%_0)i|09K|6Wfx{bs>Yegxowhdyjx z{OdP#klFQND@`BLPZ={{$=&U{EN# zO$_mBhKwuxqYqqv@$NTV$KQP>m27eUTCIQXn^sk9yRGBBdRy|85$*zCbG5fNe_c+v%PjJ<~tKab_F|_ zu8Sy#Ilg6MBJ;q=IL)2okh7w_!A9RD(nZU#-XC!pvTyn>Eqmd4kozPBE+zmM#TYwj}aM-ih#~Czak(4w=Vfxe_|2%s(U|DHC(0>a28`U2f z)9)Y5Ww8fL+MR>yFb5QKVkwMRZvU~SY~vN$A(K3fEyzuFz3V=Bh=(2L8yHy!rqBmc zgZq!RIJ=8dk8&|LUxb5*UA((7Oz-g+V;>9I~Lon zN#bF_?9fuYgVVU3(m4JoFZ*P7_VL*Pn4D`28&kJaB=ML_RcEKCr}Lpxwk&E-&dSiW zI-b=r?m<5K;3S$1VLs!iM+~!%lRS=-p9ENo$oEy)1WU%vKEBibq*6ey6439h)4dnz zutk(N0P7JdkSJiUXrV`-Z8;_;uzpRsstfJge|O197#1CGxy?Z)ic~E&%C*) zUn{7-1TfSv`v^JD7TU|=(~nT-+b@76TgTs}gNYOnf|07svE~}R3Fad!o=An$j8sFC z#rOTc?R;KLqe9KIABb|a@F?4Gk;ZY<5jm7&7GsN^w-^PqUZkeVjqT9m!T>mnvOj^1 z6(OihT6?p!b5a*y?D6&UqCJJNQNq5h2t3t>Pd`R^Rxj{2zLjrjIBEtx-SQSCC_@>C z=YZRWU@3bmp}q0c=jKuT(A^{!7x^-HBJHhQsp!y{fL6T;@mZ5d%W{;rAtp41zdSo4 zeH#3N%Cp16LU}M7KGlQp9LCQ+mIa#gk-M4xtikb00qisxOMii+CxWJUstL#cly6{u zkAKM)$eZ_!C7|PI-tN3-x`|`aX#B}tdu6g1dG!nl>ORYjk+MWas$3Aud_+Ox8JkTj z&k8DteU+}qBm&gX6mVYAHY*qbi>)U1wu)>>sKRQUg2*(wLjgl?d`kzciUBl;`It? zC=Tu%eX$zUkbb_pKTX;hPZYfPyvd_P2-dF&xY;& zIyVi;%+$NSlrRn1gT6227ot%8Mmi~E&+(ip!~%VA1bM@>v_|f4Ik$7LcP{#-PbQx8k#f{9Tt?JH*88fM))W<3UGJtxBWhR?lz%(tt z)ffh2$CfY_e#e#{&!uiFbAB)A9C8o?$iRMzN>C!ppr82*z@`$C1q$O7N61!rl zvSF#JW9j_BQuV~rh54n6Kb9_GmN_!ZHJZz{rpuR|m+SnN>m!yMl9n5@mzyeXLbI)7^S`*bVfQ%BOL+u5HwD?W8Ke7e)| z>F&U%?uk$L=0Dy4@#z6(g(tJpqq)*+y3*&o^3ZRkKVoGdY2{J&%3#IHP{YdOj+G|^ zE5j2jBl9ayf2=&itZwpUR!22g$4pnBJFkxWt-gp@ok&`JnY}t$vHGfEbxO#J4XnPI zSbaOc`tHZ-d(3BHUTsG6^9R$;>)jwFTXp!{2BQ2cjC*x z`7fJ4zWj#~z+?q*EdjzzfOHX{`~~Pp0VY|16%H&}0#MkoC)6!I68x`3kwEOHKpeXU z$*xIgtx1}#Nx7_T@n4gUT$4#&lg(L^W39cg=MLxWZLe9Z@a}|Hnv}3Br1%Ev|f-=a!FuQ zr~r8#VA8To*GYEk+g`qPE~cW*ktR_zSJt}Q`*l_T%;Pp~rz>sG!n*fb!ai}T1vdf9 z{dR$a#IV1?I=@!3*X@!)ciY5z*F>dfNC1`u4AMN`GaQN-KuQpsy&fn|-AP6se4luE z@%y%uFjfi`o071L5Bep8!VcV>=3fC)qN6`-hgL#VaZ)Y&hiOVUn((7KiiTeNadK0O zyLk|{@8z1sAPvin0|yfl_9WK?BnKxmEC`7gqG*9 zkH4Q}Ee34cgG5--Dz1NH<)mhO`HtrN!VD%+FM*k68&=rwu*vmp{xlO;WDfR6zHM6F zrF9sOR{~sto@`6oX|fhTCBn z*7euf;#1cb)?iGeQS#57B--_tf67k&@M%oj_WlnGmfn;6{k%ashy7<01;u~A_pAHt z@1jSil&+^gS%?)L(Ah`7Mi#(5EF_wF`qjy_M~&c%g^jV~wDFg*Z%)D{PM&`0lH&M) z_R61%8eEUO{jZXTRAJG4Y}4;tXWS8wn-))38j;d&v^BGQu< zw0XiqQ6EEPd4&W*bM2wM2i@d|GXp z{B>pNn--sApL4}p8++N_B66H+60j~dU=f3QDxdNw1jd9*Zcn%ilxRKlG1kC=_{}+Lf|7SVt$(}k6-b>d15ud`+{YB#HGNg^?F6C+Bv@$O%bY&MF-s~ zl8*m1|2q4awe#e#rq}A!!w0=#`%bm5zu%%_&-&bMAq>4eI%jbB%=Yu^iOr8gLZJZAbSzO&sug z9kKWAai4eb``;z{y-D>?^X}ARu41Rr0(3# z(KWoOvvWYx?2VeuGQsYflKqcuwm%gAXRRyRu5I1DqF}usZ#62cXO%MKN*Xju=y4?U z&r2AvBzKlcnV#EXQM|>hNXj%{(jZq-Crd&z15!UFt`;XoI4Q0iEkOvE*cJk93zkp{ zl-uT`qUf!m=&qyavR%=B`&LVBc@s5h14T*gt&qYNoEQ!R0vG@b;P8-yl#+~$ioCp* zqN0w9ijlge<#rt#eLaVrhOQPn_c&MtdDw(_?~d}?eZrj>=jfDT>zZ!qetM_-83X6D zJDksIyQiz}OI7wy-s+bqyFXsaH%@$itf&tK^ohm##AEg)p!X-Ceba=sHJE@i*gz_9 zAVVaWCVDVO>`=Z`$T_*tifs|)grg-|$4holN`x+Op@(i)a=FzhHt}qgOV%atyxPE` zy3o@4qos8xN^0W^FP+G}bS&diMCzrGr20eg%|R!w`X9T#FZ|XX@?G2DUfY9Dt%F{< z1%325u|yy|B`onj$caCXByWVLZA7JSM4#R`dS>I; z*^T4WjT0Fg6xuHe{a0MpulVeZgq$AxCUl|p@Xl!8*%kP}(KY5pgJuH8V>i#kt|CV0; zTi*Jo^2VR)jz5>W{$9TSx2f-M%cH;7pZvY??C;IdzwKjxZ;k)yn*4L`&7Zyxe+K9N zJp1(Lh2YQ2wT+iwe!N%`jL)vTct1BX`F`NVWcTxTH~4RxpT4bm@}_cVs;qyqw0EME zH+GKqtn9(a`8xyU_n!zMb@Bf%q@GqO*H+t~|NjrEGvaEWu(kv~t`>%6N6!C0%`DZ1 zv^#&@gpm4W*K^wsJ~p{5n_+a`Qri7{^Z5S_sUI6<1hmG;@0`!~y)JS!6Yd~=?e+g^ zX1O|kg{6O}mPa+38;0-P^K9(GhSPBM-bU|w_rxpvt1V-4#x8hv{STxr+hIQa&?#Tn zAc7wiGS8F08Ki0ZFBD_c^788bnxKN^EzK68s*&$T?%w|L-q8$KXM|+nM(fa-zwBS( z*k)JA{ocV>wlsfwarInnpG@b^FVlUS`41LD35BC1@-X3aLjlV`clHiy=TYgFsfp{K z-k;qq_Os(7T6>y`I+2(uK!<*olfI5?4&rrw+m_A2x zmY>s+@7enpejK86GSLTLVickt?p3i{!zYA$?^h%`iKwR#dquEy1QLi1l#r1LC>uQ_ zPvP&)zF4_&&RH&s5|^P6zCQU*nm{E$ATkw_yrA5pJy*|;xKpOnu)l1;euCllxDw-= zOl@woF^O>8u1Lsq*wo>6)z}p&k+U>6XD#P@N-Z;lG>JS`*k=T zE~`f7EVYmO9n*7e47sg(FoRi72vT9*K^^C3V3l1T_h8~nAq4hI zlE4l$Xz0n7yU>1fKz8J@L(I)cdX1Y^b&JsoIzW+{QKwl+>AfWv*%Ir+*d6BH(Z=f) zDF+jm&sA%%Cwm@m1IE9?Zz&1vN)=Ne1fW7E_ew{#lz`Wx3if7e%C@u(DTHl#bxi(o z$H!tBwF0s|u+{(g_ZJDV?qBWSD+wO&n2P&;0?=R!LZ!8sOnXqRj+!~8oy#)?H3C8w zG=W64m? z=QKlvh;Km19ci5wPA}NjN>s(^Msa$uY9=DRU^E@X>aae^VoTDt>-1tDTIu{+8`Qeq zO?(*7oB8&oR1i94P)q3lzL!|@Ps&SohK^BBBYgu@2MaOsi;czouM1`NSOc262LJtC zM?M;G+8RZnVim|tI0p8Rr!Yp&v3jE-UY_EpG0wS%F%^JN7+eU8s7e%iqunGAf;Q`L zD4mRiS(o%b^~=gCtP!b1WEZSILtw}Il(wsY&M12*llV|YX)V{8R|9UklMqr> z0uMMQ0JdSuZrb0(E|SjP|!SQ;AODbvX9gttq&w|e!{*7A4g^tr>LGF)MyPyxY_ zAeZ6nu*DwACec+zdveW9dH`2auVfYRq3Y4=rwJ*eTi*YKi%sL`8)LHF_5>~QjI|PG z!K|-wSdQCbhQv8JIzc7`uoJC?GNK+Di5cY*XYKHAuHg{N&`~SuBw88h0X<;`A9lwg zpg^W}d`rqd3J;Vt*`TJ8O^p?VF{oj78(=H6N zLfsfEAhi%i=qQ_wnxa#0kn+iVq=t4|j{SaB$pUjnGqfFG1uH2(ZKApsq~5G9^X$-v zPduSS&|s?4q&{Hes9%+x6v>({RSf|FyY2jPsUM^+F4EP|nKwcrhy?jgnDS;@@u|OR z%B9mtjUPsQcT_LL=xk7tvCFkzRKeRR)+%qywbNn{Py*uvBGz)(C8`OGedP;8>&6#P z(|%};MGfd5HOdcAgvqo5ui+#WXhQ7attQIm>e0aSdA>2nZZTd>O`uBikc0Mw+w6Yg z87pSQ-&&dLB($UCN0AVyj;^U~cNNpCvLlq(_n*yhm6`4+vH|HEhsDq z=o1zNx!CB-i0td!wi{cTDHS#9vn}@({LqhAo4XA2PqhTaR~Q8Y*waCE^r7_DhHk#=|UQ96Y+yJ zA{X}{?|3>WeP$NlnL_s7A{{f(G z(2S|@-_IvxQ_z$%Dx}eCrBSKHURHmEu2)0dSum=CwDuZi!T zoM~lE&J#*S$9-}3V*1l|;uj0(>Wi_Uldj!meN1!a!)Ju5Yik~To-3ir>RVq#IqQ)# z=KZ=6GB=yD^iE{tAN{B*+s#Moi;?q#T>r@2UhL3In8}Z@Mk$8=QMm;zje_bam&k!DY}0*+8`ReY44SORZNDMj&dM^f*y$k!_}2fxFf zAG8QQ_;h1n2Yu^QXST_ikbI=$0oe!C0h6Yl^<(7A!n40Kde-|llBuLH)`T&=q4Mi6 z-+lyJ({Hf)tfVNuu#!+&YzhQY5`aP;z<~DK)C1?HF-9chE^e|FKlw}!%C9{x zdhCp2038>LpQ2F5$q*>-7-#&`n_7b6eL*isO{UQ)i8Hs;IflU&iX9Q?uT6B~^eaVcu z&xy3c;t?76NebRW8}jc=drdtHy5i&_pvSu+F|mm^H$-nS6HlfH$EO(dUi1qZBASDx zLf~(z=zo;LU(@10N#g$m;y(@d{UU?0>)4DrH+N0o)hrN0LSo5CQ!dStf7+Ui(j^_y zb1=BXE_M#URVHVxC*?P6h&F16KH%fJD6rW9-{)NBji|J55ocSp@Zl38TRNd&C;a6U z*pwmu9t3yoZ_4| z8ItBFtyxi)$uLx4;$1H8J~6AQsk||O>L)9V z+Lnl_;O-D0xm4I2CjPlVNQ6g7yKYBIAXKTCGy+h{2f*9nY#z3li!Gsu3d(|qH;FUijTP78z?c#aCuc3P#^Cxlz_6s6Itcmq!Twb zM1`ovNjfG%RuUL4queN zr1!{oAt~`Ht7HO7L%+h!o1T0Q!#^W2ry_9e1gM>NK4{4I0Tb8BkYH#+$19<`8X-U? zq(~87YT!3TDCZVWrsQhMWu7BCJjubnO~lfv>;e*400RnO?q|!f`XuDJrJ{vcrCl)O z@!rE_Cxe>v>==NImr z6Hg<$Jfe^ag-|~U&|3m@9s_Ua4vYYRM#35pk>`erRu_vbrVs=BAZyDTNjT@)<>MVp zoYU=ual!5XhR)7cGz-gF&Q=6jcto}k3fg(M#T6t){UXgh+K-ynN0HIm6m&>NS1heY z7>xYG#BNZ<4Ti*v1Q(KC=DuHI^DM!$6k#~zXtv-MrW||R5NWwlwDhaUXc}QbgPc-t z_a3lKwYu3sy|L86^xj_HU(eYmAB;{qfCn0mSXP|a1SL$5MJAYTeI0i*f~Sv|@%Ex) zspQgRD)^U6`2__WS5_*&K%jw2RCFyXY6jh>Elgylm-;G!Qrfu_=8AcT-Sb-K^8S$aWhYV<&xYp1-T~^fRiw!1@FN>k4lRxXOJ1i8&N!O zYg^(Y9BMl*#qY#I66`s|xi84;XpHQpmd|T4jXYX&cR=`!o*&NS-V}-02@&~$AhmRi z#7-!Gr**m^PzC`z6fZ=C6$wtkHfe@nwjr1)a5j7BRR)2x%??>GAj1M>1rP~b<(92^IA${cQSt9jhOp0-|;fK9Zr2Cm9kV*vUBv2}{XjY@I&ZNb7G1q*YbdCwU zi2=?K!6E?=!$a=Y9y-@8q#3#|bw7P1MXd;8&YAY8X>ur`p1e#X<3Mpg4*YVKwU3adbzJmstJPh=t77><*c?KpGF!r;g3F zAe|J;9NexM|C=a2_dIks{#3(ppXErE_}0bk(8#>VuNK_ym!kK$F((R6s<)Am@ZnhU z4#N+2!h#`LF4iI)(0zQAw|!*raqX+J+E*IM7STX`orCtP3l!K;)V85Dxne_Z6Xorc ze>}%0kI7}=_N8^kRkWs`zIQ^Wfs1`|c0$DbuB37*^g+%4Y6MUQo3cz7J<}5QhzF#& z0jD>~VAmM-LVH-UtP7n}w3{*&y{*`aKeqmLto7i#Dg^FX_PdIok%y%sMMj^b>p}4i zFCTPEDR1#VLva@S;(W|Q3_f6v3fkDtNx7C)3$BIcUyZa<(1|>mXu#_ys5M~V|n0a(B_Q# zQ|RC!=+rjTwpd7}2p$Qw33DcS5STK=zIpZNqmf#%C)i4=_y_YAduc!)ys&wSiTzkT z>uNKzdl0F|{V<*gks$y4FTQx!2Oy0fMpatO^j^HNb4Tw*$ouKy zfQ{^XW(9lzH#Y@^x`(W+z606@CarMy`OLK|&>ca42a(+Ly(e4^F(wCOLA2axQW-^5 z?Mk1_HF59{U=RqVQvoVPv_Bc_LVy+I*?SjfAG||sy8%@tuAmOfPs7CC5wf38<2nhr z^(%9|=8kF9=Y@`c|$n8Fi3%18eD{OKJYwd3OAg~7}FOjghj)+uXvVT2(XtPa${ z37c7#^&s>_>%Qe(r!GXCJ25BTw&te|y=3;wG~;BQKU6reIR8i))3s6RgQwF;KIeDX zT>N~74^RyUm6yd?Tx`kr(|>dq$-)0_(Wozp*DEZQyd?^iavN?t0@VHDNpo;t} zW6rZ`*YS4`EB7sUU;O`p)Gyea&eMC{aa{LSbf2GB(9T1hQA2s?V-YRL8^fg+em#Bx z_vb!rD4W|C(^@%F>wDLE-}zfn4`TX*UQa}1@d4n@Mm?7yRn$ ziyC#XD}W?6jUyH=*?OG*%ab3woZ~v77P!AFbT01+ey4w$xgkQ+>kaAje;B3U4a$f9 zLS>hW!N1y%`dsySD;(&yN8anMy~nsvAJlP7yu17qOxCO0q$~XDe1YsWE;nNIRw`Vw z-Zq1va`j=3xRN{TGvJPbcK=?>5w{m>p5-_Jf$EZBf9~T(0Jy@9*-Uq7K zRmu`fCPvlHLTZnrk(0E4SeujV;h6c#Xt7S`D=|0n<|_{;)r41+@%~7-R*lEamHP*b zozPNQwIp9D>*&d@io8?We+_vwqu5N8P*Mlk{pPBl^DrEGc*#>!o?b%y9N=0^L^OvP z+hdwH!%9aL;OgSLd~R}|y|7uX$=WW)SFIPbXez8P_YqN{Bh##Sqq17{?LHm`{U-ao zPK{-;4p&)BS4PIg%*!51XbYF&o@v(^Dl2F=uIJ{~hO;6fVkFNaIWu`LZl7rzqM3Xq zt4k6wJ+xs@;~LaCk4*yVX}HD_bqPC+1&ZnZ_+eeK?Sxz})^>;W^qyiS=R=Yuls`1Mow;v2~u%?ATMl(P;TT77yi zkn3QVg*4tE;yqv>O2STb^ka$DkI9cVC;t)WOFh-$52t9VGna=wS2m7_sh$zkEX4Y5 z{#ne~&gI$T^d<}48q*wBZbvs>%C1rdu2b zsYgQL7KV1r_tp=^!qx?T%5D!=J`(K2LQtjQd+s~nFP_ru#>W1c?ZIm09(vhO?wpcv zbV#eQJMKv%X7Uj-eK@TlTb$sbyW{=uzh)*a=2SX?AO->_+rP7?|Jd&J^ z92R2Ehp3%xLL(JI6GerlBchzCRI4QEG#yo{DLItZZ|~pdaD9J&{C>addR+e4wLe~V zz2^a)S>c9)die|4w1B#;$K*mCbE+8Fhz5DdKnb={>JeB8BHF4yS z_^omcrPyPRC!-0(tv96%=m886AzjYK`%YUOubN|;7{quDQrrWNKdNe3Q&{adK6S7#d*xGswr6={=98~=iNR-Whmzf4jQ&? zRIL?2dVJp~LnB!FdUVwG=|*MW6qdd$dhM*kO3NS*snQC=FJ;s5?wv?l)B3I)I z9}V2t0K4igEHV9QhV_EM(l7e2eR@nplfDt(?>EqJR1r%(Hm_rd(#^*8Yi!adkpQEMj~edKjQ8fIJ4@uYQ1e z(slnta~eB2q9yn|XuFSk{Ufl&=oYEfvGb~Dx2%5gF5ZH>@h;vtZa)v&Adoj`rmriK zXsc|IgF6Nd>YpUV8Jl&&2*lG0p7=qfv!3^owC+Q9Qk~s%D;Y0YfgKmw`&0hJDy?TUx;$qxJino3)00J@@aw8@@32T~Ei|4}?}KC?^i} zO~%~Ln-7mZ-VwC*x@7WD@+X$`>t;HFUtOw)rHB62C5N8q^3Vr1ayF8>1}E#@DWA5F zT4(?4w!huO1MQ8bea-K*CIuXu=5#=!>=du}J=l_Bt#^Fxshf_7fIKdU+(<30|JLIA*whgI6 z=h)SW8A!jh9=CnT1FWO{@}|Qv>o~$8<{C(i zM|qGOp;FPly3#v+Q-mDbq#N^~xMz=U&Y9QTE`05uhMAPv=2Zmf;y()1OUI^%tRzB+ zF*auE>dmX`Xd;G+G>bI-os-*}?3{A)MUL@(Ji+GLgwBv(f$0gw%V!gR2-WxXgPe8` zD%SznHnKiMA)mEDg66rk4Zxl2ZBLo{3>dYMpY9f4?R9g^sQhwGbHxwdv`+ZGu*K+l zwPI%EE<>t%5kR)dmYsh{SZ0$0zL+m5x)UP#(#OBYZ*OykUck*&+Q0nt>8~~Epi`Q~ z^X9uXjx>uLCu;3wF4Gimp(+rtZ8YA6@rgq!8L6pF&mAgvY#UT{mS*)l)$It1_Bv?nN_~Gs|WVHA%whvG= zxlVl8^04%#o3RFc4Pv=8bVN=whtGIxaOhhTXkhfXy_bjWtpl%)URkt#w*QQ^fR5ET z7#V|QPCrr1FS}9Sze|jHJfv0i>F$N)r(=#cgAN{*vFksdy*??iN3*lr?;`FTT2p47 zU)UGBg23Vj-tz)q%|CrDttsgCBi&c7V!k$(syiyq(SC%hFD3)Wzih$CpdI`&5as$G zWCqNUCFuk)Dpyriseq2OT6a&^_2%SvECgRRaZ-SBNYJU^&)6rY?6jL~BKqIAM z4SB3)y#4D9g80kLll|KY-fpi2^gSH9BFJ;9lhD@Vdz-BKuO>Sxw3fZ(4`8dDePX&b z8>IuMy9T^mN-V!@ukE^mVwI?9)S8boejWfSPjqh-UpAu96*TCdPY&X%hSm>Q9~W>u zGP_UHIHt0&un!!!cI$P2(`J0H8IJI47vpOZPz7dFM=RUP8YY^RFIQf4Kglz{;My=g zaC&-p7E4zQq??I>E;<9Ch+EH-`>VvZewD+)S#D=rhfWHvfM}NSkFCwaw>C?Ls=VQa zKSyShe%0mBR>vw@9#;5x*WG6w*@`PLrRC}le$Iqza<96WyLQb_4V(Dcpb>I$F9 zOO(0M*Ce{KY%_@^*aY3ehR~HY==Kp#wR!IQn#T(2;4+)c9Ig{Yu#=VDJfuH)`vj0= zTw4|4+DvS>7)zgY@^HywfJ%XC7&-q-V|o>%p38F$^b z=&@g>z>#p$@BnJ7w?N0s6r`vo_BJ8QWtvr3KDu2+l1u%4XQ*nJiuM*XdzZz*8()mi zp*x!=c_-$12jed8pW~zfim7-&I=c9QDs*HGk~Theo?If$b!xj6F|ImZUCpYhcAa>Z z;x^&~zoB#Y(ssb5(uoU{N)Y!-MYB>Z-=-FQKe-n^+gsAL26>t{54O{O4&MU-?!0{A`?yr`w!GiAwjrMs?^FDX zCQR?{38Dby-Dz_#rTWSlQC|&T_Rj7qtWtf}^@KRyXOjo8GJ+_MCu+O<+|2iq>Ya1F zCD^UBcswlz4~WInVzH1~d_Y~bhW|DIYXBUp0a4Noh{bSX1)L<}wOCrfY*()n^1_+D zJ!(}VgL^lB`oI@mAM~vGf1Vh>+>1y8Jfy8kS^h9^0GbWz3alLu6bK)IU~Cc*PC`Gf zlF0j42hNUTEoyl_kBnRbb{VoCf7$DETifA$DLFYTjeiB6K%p+4>a3BVO?}t0H znJybALBvVdB7}t&vnp@03d8jL%d;zc?ER$ISmExX4_ssucw_tBB6&8cTK+YcS;u7t z`SNzfBfRS2)?IKf_HNHJ@GaH5eMWZQOZM4#)q4@;OXYgSNLahsC0obg4uoI_bh#Dn z2{9gSO`ZY~nc?h75P1qIhT}w2xbY{c*_R@VCXDO7WxwZkaPfW|#}@!5O3F;jSnk!l ztpX59gI%zL7QmN3#Rmzb)laMlOb0wIu$^Z^IZ~#eH?SiT|L#(UFeHf|#M!bj()mr+k24MTiaSYjeGh6l1D z1;4Eh3OOSm&ke0V6C5XGS&xTWp_x@0Ge`mxv;wRHfNB9VReUHb5@b8h%8@{M@iVvF zHn!~dUy6Hh z6Cypio*CZv9E3&Hbxnivp6BNUrIdvq@0#ubzj&^&=|RwgjJ|t4^PE@-%bZ=Z!I={W z*tK_m#PM)qt85YTsaf=(jwicEj!*9q zSs z@yr&%8xR1r1<$E%=fzc%DZ68LL@{${Vo%+;T3j5gfoJyZjfcBICXt8J+q=AjwsbWP z+4p!>2+~P_=Yzp}VG1~G7@h>OAw3TYM&v|>v)QcA8(${go2mtb`3c^bcff5W#oyWQ zqOR59?20q`-&JAWE`1GJvVpv9Wm*%N8t!B(026BrveIBC1;?Ke1=siS9$n>i`!bRJ z!5%kx&wjnnuxP|N(lXEq-hS}8s&|%-fK0*zv-l@K zKqNQ3YOD@t=gb}VGr*P4Wdh!oI2IrF<7HLzispC+{CKW?ds9bw1?9}G)y#qfI6s(a zqz9t-y+4!lsU^puwqsw}=v>wKT-mjKr?|jEKe%7(b888sd-s+)Oel^GIwUBTm1g)K zrZ!EzO-c9!634Wj{c?6Fsm%gfZ}F@~GS}`1SbX`aCNKOHO)1uOXynNuUN z2cC&1&+h-;{pI{M_*F+m-xc8VGA(S|SMi4vS(tAi%(pCTv1fYlY(i?DX=*ktHJb>{ z6n&}uJKt3Tohq9C@FCTU_YK5N&BhlOiCEcRQ=Z-VcCrgFF3YYbRD2IEuEM6h6UP^I zrkGy~U!F>PA5vT+1IC0DuQ<}AOT`Lylc%b`HsP5*#K=O=v{U`T)33h6cPaw>;Yfe@ zmhLdOk?1#6rakTboeC;qQ~Db+G-odDIJp=^jXI8>+-6s9Ph;Y!UuvfrsTK=5`Ykyj z3!spN^?Qnore7HcEADcP)b;o=og^*Z_;CT5maguvc-0sber(?8`i~0hIO7LDRP|?E zHkK>yWIm4nV7lq&^{}|&d-9b#B=5%G{<)@}V*V4aUhZZWcYv7LJV!lE`{|`QQP*m* zbo?j5zr@Xt=P<@I7c)R&hMWK5Nzwj#p{#%;t_OUs4`IqbfE%n|^c_=mK4I<$$U51Y z<+mxjL9z%6`SG*_df(z#aB<15k2w3>U!jRSGmmWS^UScPziNfQ!i#@Z-uV@&p0msU zm(?JRq`wrmt|WGhw<~c;G61Lol;`J3Y6&^_Q7BK@g9xle4AQ2 ziCRq*KuPwAJ#9i%ROzU#0LX=he@reM|mVrW#!_75Tf~ z9_%In#bF@3NPl_{Riyqa>w29Zh-SAw`BQW%&$@?9B(MTWYa^EISQyx0j#))39%xxR zx4-~N7!!#+OYA3U5CnAZR^i0DzjrqMy?uM_@y?=$mVcjoZ+PerznA!T`k&tPDfrV9 zf1e+zeb^#vmi~RU{P#6fDpr@yZj!#Sm%jCozWcu8`5x(qTD&qFrxxkw>rz<~ zeg3KR>qqIgW$Ab5KZ*Lkg-!o{*#GNQvb4K{-P`6TEWs6t617AY&Z|0ASc zxoKBN%BuB;iCX*2Z}b0aX8GTc`fuC$=}U=^JNEyv`}U$I_vg2-f9xgV!D1E5)c*;o ze_PwSIQOV!*TvMo4omYh|7&KEh1Aoe+kY>9etJ3WyL89e%8!qaFQ)x-l>S#p{ohWS z90HG_gSGN74EW~%F|#On;SJd9!}1I`nn_&-#kvJ623&&@ydiI6ZJuF?$@wnB!{$9J zhW~A5naSHwF5UXMYr~NpzgIT!oe*1%D%`a4jVe7icN-n`byzj33ixj`%f{oON!=Sy zL>8=Wtd1$!YFravn{QmZ?|irM$^AX6#&zj;wr;A=p2^?TkpH=R)2X80tD6M>WoFST zz@Fx9?!h*dIsC>pS9m#?oH-U&U~;x5smG+HzTme>Yh#JS=5uFi3pSrWcfM!yh4!A` zo7+0?IGDCyohdNw_`l68eZPO33I`C|%sNN34*bW=a>MNMJ%>MLR~~w8Gyg9$%d?~# z=GR{q{4wvEE!k%AA2W+Z&!_V@EN*=5`I9PRP)GoMP#+oOPLh)-*Y{U(kpTXkG-fI7 zQ?8n2gOzm%7s0^2_LhBn^Jd-DW6Wf6ph$d5WS^?f8h9MNQ#_)sEo-ri87zBu-hRwO zxvOIiS;_UO_`JB36^|EYf~^iIN$#t?D9y}Lv!P~zW9178p!J15S@%8kcko62E`K95 z)|&}`0YSR~5LqX^9qFZXMNM!YHMs`~12h0&RbP?FsX%+Y`x;Krx*5x{tV zpGy;k#ebL6=|}4?O_Z2Y@oz@9O4;hr@iq3WmPgc!S8?k|-4nS-BY%Au-AF9}f@lkF z8Xz5-!~26L9Cb86f`h*a=XNQs&R=<6{s#bJS#{0#sa*dfzO9~Cn2yP91k0Y&{Cb!aUO$^iFRO4*>u@joJ>E_s-lQ<^s2E}t z)ivUvV@QR4;Axz9&nDLwdd~COgwI-zVhx8Gb^O@+E&ZxiS5+)pluZRnCbdeNjwx+C ztYmm_oqndGP6|?+g4CiYXvJ&jkg=Eu8>8LZi~_bB`8yc;;0@eu^__7#J2z=LYN+i{ zQr(7D*`lh9RZ~(@QiLI45GVu+lVS7`vhD&}Q&Y{rK;P63YvpNTA85RFkD+6%7LlUq zldMikT_2FHv?~)4lm-4@Dt@qxieD(drwAtoqk@m#%x!-kZy zP5a6$Q!8y#kK1R}I;7USrkr(+>2wRZ?6#-ZC1}t!=#J~|hc3a>u6tg(hl)Ky-+F|; z_Xz#q5jIB*pZAQAct!p2iC**}FZ#+RX3;Np(LeU5f81g~{8C`z(yqi`yOWlJlb80S z{0iCsD>U_2XxdU3bvZnJB|Kv#QZ|_@QJE{zvdLN@Xa8qna#r`|EyWf5iYr)(Kd_ou zxJoHpO**)mOj}K%ucR_o(^#wNoRy5?)lA-hChPF;oU-3}{NDwYzYiS!U0AhRRJD5W z*eXpn$5-jqtE}2T?2~^ub!-2b`nBTvKiqm5QGb;ySmreTpf`QYJ3W=rFp*w&dw1Nzn4uIsfu z-6yZzXcYEdxNxKMY+rZN&4H6QN2+e#E$3?!$V5V$9T;BJQfBk#qdJ(Idg0I{K!)K?d8t<%hxBDd#9HNUoMZ&E{i@c&3s*YE&288 z$MTEC)#tzd%q*?VEdPDJB7MFpmHm`;9n}A~>tGyriPktM1M+*-5i2l953m1!0rJPY z8+%pa>A;c3yC;#BpI_Wo`9FaCO+2kvgPT;h@lc) z?`v((E>p&8yVBpBcQQog*M;Eh;YW>txf5=IE^LHepwOZFWX{{CLu90B)I?Y3+cCbs zvD0j>xB`roKab`v&wk(_*HVLHn4D;BdW%iKCBYa0U7=vu(7xrrfc&q@RK9-%o0LRM zZC|+l;h}9g$-R$oLFMVi?8goF{|m^!?f%g*Oudqcv-ASZk-CLziu5VH-%B2bKSZ`p zC@nZ<71{@TE%IaI%L%5yV+4{e@EM&?2PuV!)**3S0I1IPE+;5xzrYEikM=&x5fU?|3-0dh*UfA_;f&6FL5CKdgd0Hha=8Re6nH9TMD@p$^kQAKkEWz{qPj6b4D4EiXFK`EL0;E6U)`j5E}3t*H+#(>9Q!; zFej|Z=ho)q4wZU7ALt&shA`JN=cQlG$!9Kny`6~B%UjuW>O?`6r!#%epyyaswxZ1l zQ2tfp{7HlXUa;P!-}Ye($TOM0j!}T&pOPzv+j?jyzl)Kh`{&qt$ zdRODT@6fJ1K8E;kAx$^+O(WFsu-T)Fx9&bNLDQiwLGy%l;o1SMP?H`28x#PW z1!_^KBFG0t#O!qpbHb!iFJY#!SUXN2$Ne#C_H)8!-H7f@uvPb%p6{DlzKjrW?YXgR zj(*_*u!5IG%&}QhsyKM<`PXYK<==0w6R1MDaianNORzKHcjNW?!0?~XC@t+d?)F>q z)1HIAHhz92uUj@|P?7S6D}9)?&UK?FAj6nH3{Kx>jt2fEo#rCtXKm5-)`(Q}PRfp$ zCuJr0Z+B`o-(31AD7N_Rl#Z|&`_y_O3jG<`+)&`%{=t(!0@G9sI89?H$fKQ`zkpcU zIbm0!8}|OjKE>G0%oZaHale0xJS;a`Et^pv{F>UklfU$2kEQ6BxY+XM(sSm&qo)qW zZs$+wWzJhc%YYB();W=)a-iXtZ_R!W_s1J@qqQeF7R$HV&k+k?J_2CA3L9*LL&(DA z@&*(>+#PM8)-3S4;>KUv-{w4j7XTxm8E8J0Wo#4!a}}cuG-lb`xU-5WG7Qrq0kroE zf6d+1!XSS>UTWd|0vLC_-%x9Tn*gUNpU|MOunQQU2t(DTm0`M#mEo9mu-dxVYvl&- zobUDn)yE|q8<`a#B5z1*M#8bbVxW-DWvFmo-0LpPyQ22hC@rsgXG z1eZrg?ZYy)W>z@6FEzsOT^sbWX&@a54Rk-b;x_EbttF-5i0Gengo&x~1R0QD|6J_G zCXGtd%|=IIv+rCSs?g2~aaC5Qf!2cy9P`$gV{urf<{c_WrW{j9Aq;8v^h1dQ(c|Edxp;%7=Pj5PGSr61q+Nf6nlQkzdNLR*o{ur1pBpKS#fv1Ys^Y7P1S)JzWjtRDqkPqp8ZyUipRNN z?vXh;XOPPJnEU?fgCy86zLd&hYQF+NwS}^+HFraEa$fwlhd9XP(~SzdgkN=!kTw`P zjYIpsm~(Yp4St!p=1k~x$dFde;a$M>rvW3z7FN9XYR((Hz$^nbKG$WDE_1Xo2|@FA zJ0x_aW3Umd`$M<~c2McK#)wJqEMkw4p?ZuUfBwbUi-nq@n0#WVOc1}BEguBJ^gFAM zJ}bM(*nkWbe#eV%Lo9n6QL!t78d2LgwsrKg8AY>FBu{dhM=Ql#YZBIdG}|0K3|ub| zvW(;ndF~q77$y~qf#`AxX5w{R$2J$G1+EX(P=!x$)nB7g9J5-snY?l_G&U#+TI^D- zuXZ)wZouCq08W+*7tds#-TZByzK$ExzkzGTceOiD4fp`G7R!}yKIDRYtNKOFry$U} zZ2%RGhiHuAKG>3HA@;%lOkH?;FpZ&dBq~*( zQ^*fGmnX+1%NvzAb-E0)Pd=X^R7r10An75i+Myz6%0ntRo|WAYtKp(i9m&D9&Z5Zu z&hRAk*XLUF{`-HLTp^p$`*Z)y5syr4Em$ZCK<}3;%^Nnt%OL_LRz5dj-AvSQC1BPY zm0)!?R@R#e6fo9zpkZbajU|EPSS7DtL;WUwFrPYx+RYG}Wzs-Nfb86zCmGTUEKDyv za|e?zcG3UrmwY+qZfuy!TW!_?B!RY9BUEPa9_$30ciG=e3o%XEXTf>IbV6?AJ1L}y zGdIX51!#6BJxcUHFw*??d7H#_V_YQMk8imCe2ANA!~!DJOuW8bgKOeffe1D_wO*8a z)0C2qj9xKR@1XuMRFmRjUDaciDlu%+j80ng{Ep=`kMyJBYtoX7c%^!r`-q|@OR=yY z5heShIYWcwL^Zx!kU%0xs9+8%f&|%1h5WFAM3V~6ctB(Va4Q1Hj_;itC+|kay6-_x zDkolDrei|XKJyiCl94;F0ZsxCO?<>fLeX^*a_TAasssTtC;~bmui(&^Fvu$a=0`E| zx)5<114sReLE>OsVca=V(MKV`dl_*KfG9^NZ)e7(HlgzYhk{RsQmy1I8Q^x;4D&PK zL~?XgeBd}hakL*oafQT4;-hJqWJwsgADr+8XeBII&Z1+`1~bYru8DgLWI%omHD9ix zl#myLfQPVG@+(Qo%_8sE0 zPKyyYX^L}bUcLvijf`lJz>0BsySo638Em2*t{#A?eS)vr0NyPE?-fDB=)gA;h0{+I z7TAyo8HNd0b~z}METSa{A!I5fNeoWLK(Tya9+AF2&!Y&N#qKJfuU6yFv3kjcNKxTq z4|EqagtE-2&^SDG9nd4--Q+87m_uF?=aisf2ZaFmC+O=F@H4oB`OD?`Ey#-`Lp(@5AxHp( zLWU$^P$Lq(&7|^zYVYj=b7v#huU%C>p{lJCL@$QdM@E;o@;dp5R@@OJpP9eR>?0$u z3IVlwiW|7xiv+|`StwD+hp$3;V%SLn0@;rUUuE2)DPH$Lp5Z5LW1>ymspT|ul?ymh zRQ3iJ9WL4ZrXQ7p^E3OjJKD|9f-Sp-goFfCq9ooZ6u4OkG@})7k>M{|K--UE_N(%Q~cPEY!}1J39xfm^o=~s z%%u6uCvYOa`i&4ghEoiup$0{eeZ%0gZg89Ip^OIEKa$ch(v)yEFpdVUnpHow3dCV# z8$=I1F1jg55bJPu9sP)o7g}KkaUO%d)_n|~jyNmGo@mLz=Ovz&wJR_(z8J+|iA2Z1 z4ohGHDni;OLGb60eHdgL2~h*cO{w979zubMO}PZ{l)J%BLUp_tyflIe6UL`e8(vEw zVYrmFM92`vztbooW(hKe36CK|5^#`El77f%VA#y5tY2s1W-i?Pjm`=^5xEt8U=J_x zBjP#^-GOdAOOSo@V*~(1BR_4Wy0I0F$a8=(?I`k{?KBdsTzr7G5$SjhagK@z%q!s< zqdA-sRH)4M0V}3L8-}qvsileW87UHl+k(^A81nZU&DF#y{ z;Es2ki2j<>vo+?l3pg@J`^N>H=bZ?r6OTO(ex#l73uz1O2DI~;-8kl`n-sAZig3LO zs3YaH;EuEj5v>G79RSWFQ(icrpMNeoOh~Qnht~@Mr-cBEKe@#?G>3rG+H=MFz?Dos z7Rk40cqA7p0w+^ZgEa6UMsYt{@gG9?vR`4LzdB5GC4vu+nPveOn8HwWyAbgQa=A{{77+rD(crs15NAb&YPAR(wSDWd z(e+CtVxX??FuJFklZD_!8tM(;TJ#fzAN>k1 zB?=qakmXRwi&o(qJ|wySYP_f{MszfBWBIXJbyIRDPD%z|19dTO^tC+82F~t#VvoLl zq7_6(D4j=Kn}%28;79sl?~KuXEeux4rSp7*U_{fT0u!)kv{_Y4^XL%J)|wNkM*%9vQI&)EE_#*k2YW7Ji9K zp$hbx9@aehQ)4CUR8~stz0+s6J@FhFapwf$l7zAGaBGYSI_ox~_Amq4f3s8wlPMaw ze3;n&^3S}RTTuuZX5P~bEvHTugrn<`tp|-S*N9;pSyzDyE5+H=OAffchy$h*kvRE4 zQA0Qh6*~gaSiATW;GalBy`O9vC%8-B60VzoA<3A`WFaIPT@X)28DX^6{~5HDT%S2G zR29J;{nd6_Sa@DERKrDH$1#s#hgC|h)brsL7ltN=~gRdkhyXr)Hf3lEeEU>pLBA-Gc_fw{RMY)=lIAs|-OLJZEgul?yZcAzl$u<=#c zVRZ7pZ4?$c=()WVO(e*hy^#wiWF+8HzGmOsok05&kNP(0o-Bz@lJArOFJf^Q_F^t{ z#+@-=yZ__>usOVVTg_c5sftX_b-=U{O)EYz)D20c{{YBF6`B3=+@dzx`W_o0_2mtNB4ny zz^;@{Yk`pj_gCDMZ}MmM?LOMEdwRz?u=A(;Pi_FQk_3O<8B89s9e3A58*%F?!n_M` zm2fz`{@BHE(K%cpDkZ{YBfNy)gX|Z{g8m1u!R2S$&OV13^#K@U3S;UPI{|jHtgcd& z$P>4(liGq=dk^iq0*Q-*WX^#{$if%Z!RQ-anfOx)YT>bfgiEz$CpSaRH$%|X*X#O# z3u^{IFC|;EnUy}`)3F?fiR`oedxt%cm-cnEP!VTvh==E|Tz<*eI)`YHz+J0h8;sFx zbaFW++YOn{@0Ud-D8SiSIeQpq=?buOm`!^T-V1mHRA&K!`})H^L>5F7$_}lCz5WY% zE51fB&y4B!i@lbzqZ@+oZty7qnu==5*9JHBJFdQb_adRFo6l6*j0PMm?BF-zlM%3Q zY2S_E^^(^YCES3U2!R?Lb!_CtQ<99bewYkfC_%GuFuj8;S=D@#`J0^=f&vNhQsu{T zL8Md9@RMgx97+&}aSlSxZGNYSeVdF!?V~}ksPZUb1GgMy%m>zg9jyQRjG5(g^8GtO z2dSIi*5t>$wE847^cJ;5Tu+AcMX+x-0DQueR$3cL@5!69u&}lf_`nym)yEsUAKj-P zrbW!VJ(b(dkB;I)#`wbRw~w+@3wFG`cKBd$8X7t-j!!_}i|BVBzUyuz2AcH)>m$FJ zlYrs7UhAuTp8w{f;Z=y5$N{&%-#Z3BNrHced;vP8mWp6)-U#+*!FdAWqzI<45k_ek zp}ZueH7Mo0njPIgKPHt6-v&vdq0S}Uj~hOkhJ&nId3pH$s|XBAOp>B3Ux91jkg68Q zNWWh?+1MQS?Y(qx`oQb22Y=o-+WX+n6u9F(F8QvkB3lml^6k$}_t)R0esB}mjDl>u26Y83C|+CF%+e*G z`G0!<{R4Co!~_OdLC>|CH0#V!&~>zFJzs_ODc6YX9p^t}l$L4j4|2sdo#rEn7DN`T zq7lrA=rOCNJY={XMw?@8glO*??Y(Laac+WQy5{-1&|U8LYV8w8xtbsds@8sFqAGvG z=!CX4d7^qDV?KO~MSO$e&q1(e7d35?-^mypiBLD6zeXN-^9`p~V{N6U0~a&$s}#Bpv?9){VTe*`?DQKTo0o1ClYcdxTQC{2;X8Pa(XHxfcA70te< z2-$aRcn?pz8ffmQ&El!FfV<&(VPYl*iVk^Iz4bBVUadvcoo3C;SABbJ6UT8Ie}1^D zWt}oywD<9Ql!j$mSMS2;*XPH#1pA2U52#<1YG|$Pg8UDVf1NAN39KH`s+)a(!R>gE zW8?6K$9QF!t>@-}xT9Xi`9>Q~ZP&&&Df@0FRy5$YjvNbDqk`85So7Xhco@p!uq0Pa ziYf^gN~o+v{1{-G^~_nE+j4*9^tp@Ye{+ylXEQ!47`&Is4Wxs9ThkxR7U&L(EjZWRiuJXf%Vw8z`>B9ndqucUT z&&?|0Y$}{h+po|$KE49J&N-Iqo-DdhJv78BUM|2-*G;f1NQvm~hpUJ)-i-Jy$1>}1 zK3{6xrago__sZKJ)!Iv7D#YECof2Yi;J%pH)O{K~X+NFEl(%^tl<9jT3Ojp?VTX}D zYrLAc9Fh6J%|0^wsjW~q_gOw)J;eG;oXP={&UZs##mFiZl3Lf-N>AnW`{@9pfUZK^GG&N*CN`%*QnhIO+|f7cKTjicLY>-gx`u_Uj*d zk}rOYDAw(KnlDlhkMfL{3j}Zw#m!cb7UkU zwc`C7a7ZY7eQ@B`jmLt`EWj$SP@XJB11|mM|rj=u*UX>#YYCRRu0 zL&H4JRFNEKhbzIbNW$7I_wF#+)6gnQPK=}LAN5Av7m87u>GDVYeFE6W4)0nxWg6#% z3>P`8AzR(vNQrdbOIDns3kHa;x=cg$8ko+ek6scS)h_xEQdZ(Z^!VR>A#iZ!VkH$o8vT7uaiBsqGafjRzPN%?TU_CrI^*o@U@~&MMdm zoRGdvF$%>`f$F{e5LXRgx6Y5D4c8tWyU2<+TOWvwSaB}*O)+#RY($30pD(HEGE^Ir z+B-Tc-3ctK9$x?YxINp4q0$uc6>>X}0uDu_lEP2f^l zJ%S82C%BC{{4i8&!+deV_Q@}-AJmp%sfzF9A91)E0< zAcE=!J!UV+t1EDXaf-Vz@Am2sGCcWSbYr6NOV>?46_2A*uBcxXHxLbuHSL1O!GNne zko%HLze*dC;URImg#6OR_8er22GV-Tq>ZX^iTxl1qCP06pxt(?-L5JOmBW|+U}$jh z0XsG8OtOFkNRey7j+k5tM+CCo*qsaksQC$n)MlxZ(Jl@qKDI_V!&k`3Nt_mg55)YyJRo90Srk?aYa3mb>=NiL<4; z5o}Qky0Gi&BP~}F2){hjm3hrcX|4plE=ycI<`?A@@+>jI{`s>{07E zCRn+*W>#_Mw+M1SC@3ckx8p^gtcsBh{(CndTYLOgn>YWEQt^!8p(nS&8GGqQOTAD7 z{UamGIc5dv%9*%OG)+iT%pybW1cPd?no1Lf4HTmAF6XY3O6|!8iX-@;khj#VM2)`+ zxXHnedd2K@-bK*ehbS%<2hqDTq%Rj+Ja)tkTkv;YmVQZb;l7lQ%^|EC-hV>Ocgm>a zd%>WpPrzsth@aQVAB=32LTN=UjRCJmrX7&cH^yLR1e`#2|yK~n$lK|qee;2g> zSl=i{+b4a&gL>^!ng;3PQhCW|*6X9rRF|#ZtqOqzaF_s?v&~L%8la1{(4r{L<#7_G z9pg1@%?O+XDky=%iN|#L_0(ISIl2Nlt+s)mZ*klMa_^nbh+H&TI4c$AElk$1hil(} z19%sX9Vi_3p4h2(?i`rX35@Flpl&d*H=ZRsJDuFY#NF^kH*J!)1h>gsE}qy$0f$Q1 z(lCHR7hXXur&~?esHW=*8GB`W?kd~map1N%S>3WHF^_|vW7v!Xl~-H{R|cG1RWxwJ z^c73y^fordl_)<(O|grXfFo#1_8H(kt<}NRhF6uiMlY1;l3U;9P8DPO^Hi?{sBW#g ze8M=0fR!4tgYwv6Ud2jy?t7OZ4L)6KTF#z=NJ?Kf9R}GR0V&9oZ5}zME}+fSo0^hw zttvX0+QVSbe}$t~RmQ4?7Q2^=IGzIv|1P!;C8=-}td z4U7P6jN5T3e8*`Wn72edFa#XZdWKAL{cu-KOIDJYmQ$M3y-GH~>)0l?5}S50KMNV! z0{Xt@QNoqcN;8J84l4K!EiK}9ck|tz-|YEWY*q-M{Ec_U3vl?{88CrO7h42|X#f4= z`S0)!pz25`=mryZ<)@rRAep_V6&yo^!9UZr`EpvVa@r!f&3L8_r6jI;JYK?)ZtETL z`^+$#rfcE7k2E_~6kg^aH+DI=_G|R@yu0_R%`}|v+57Hp-@NzbPId^54W@vDL+ZeD zdQ9RmM!$#eJ6CmYn7%MOJBpGxy_OdNerfF?+z;V`Yvui-#`U7d8|G`OqgU>R68z{P zvgY>07wd^R9atd7nK7-@)a(}!v4gaIgnXKWndvGM^F8-*T9t>zOJ+P!*`cGA~!7Z@8TVoHcA}cE}gv$)Jd=1u#xm8A2*LIRqmb;fXNw8 znR0HYLbg0ZqI|_k1#y76}^(@MBP${EEP! z9U^cSJCs(D6R-1CiyJu5VfB(UXaqY|I9B*~=e&$;VY))&hyaRWx-LLwU6}xdl&6Vp)V`|E!Qn?XfP+ou$|t30~+xevSodo$bNH|+|Faunt~Ag1vx#5 zTxqs<#mm|QU68F^9GTgqeSK-=lb}Iou$QXOM<4BPvD`i_?k;rc%k8jt54YX=^K1hi z*!We`LIAX3J?3TypIv`jLm;Ou2>y$D6yqJ_wu9IK<{!Y()5pX3ZZF2bDEorCfe8&j zn5=pMRelF%IT4B z=}z9zhXDs|OS@PRx2g1PA+%A2D35!S>AU@W*xd4%`*f<#KTR%T_py8C?170FcYRM5 z_xtn%)c=X)y4Ocy|nNAk`@YSqzOz(Cl{fIjW@5}Uh!dlay{SclA5iwCB)zuwTU zu_^lz9leJ`j*`<8f6VqntcS^`t_KG{=a8QmKB4KMqXkdoba1bGk4;ZUyw=6n+)Kw| zR^%`+VDi`34i9Hk)I>+)W7MS4S#g0(4YFMDE3Ip@BMUR&o1%fZIzWvWabFH~Uo7MQ zKUnKMYBKxy(YB=Bv)ky>pbNgU#!J3c8)0gC+*``9&E>NU(PTv=Y|M%~mQNnlXi=Dx zGvbGD=n@;e5?{VT*PD*SpaYMdoBAt{sz3H-`_x-GlTeGLy|Rqn$3Bwv2ig|*z0CN% zt7dPsxUFFRTW}uM;N@ExkUy(NhsmAQl)ho&F~f6!b!eaw{+(;^yIYYrUEAIT1;=-I zjxj}XT8=O)pHh8vpp6|vXPnIId+8DNA0Yp>#y4hBH1hG;J>~C1olyEPM!a6ULh6(* zf3J!j*J$N^(zOr$T=p>L19>UPKOPoFLan1k>kGsi`r{Kv@952qCMSH%X*l}s-6L~d z?pqsDh~xu9ssS+}q4dQc6(w{-eBzltx*jef*KTe{$63(r4~&pGMi+bYF%9|(8{8jg z(GF%}AVmqKH-FM~`=77qP#*1=t7v$a2}7INk{IJ3*ijVIjUGp%0GZrqhUM0LKHGpgs5h-gsyX%T z^R15P9yRTp5GVtilAU*&f&Dy6{ZtkR&7nYZ^JEM;SY949xB3g60F7j$4lbp@H&dj* zeR2K9U)v6-cW#B9^Fu}8#+W2g*=fBTeoCHTo-X(b?oXi$^lp#ui=Vn7viK@~HNB%T zxyOP#Xv{rtSIRNwh7m+JSV_rYfX;OFo}A*GmCt~M6r$R(?LRqSX?e80~*GnnKtP*(ly7o>6XKob!^>7w1(E(TbXPNBYF zqvZ@exZ8_mCxMV1AAb;vH(Fj-F~wyutAB#=i+FgltKIV6IZsW0v>9>#M)_5^N>2Im_aWGeV!*8eMF?4vDoCtb*} z83WQqKvrHR1M`z1q8w<29tZ)TV00!SBbBmb5&|e7rW@um{7wK1LTHJJztYq_GH@`{ zYDR|tPjD-cj^?Cmz;ZlbM(QOdgdZ_dYA#(vCNcVf$1gF_P{?;b1|LEfU!oShy5 zzzTqI!WA${c6;Wr^Kw#U?8}y7?j~4L%TL~NJ|-@UiH4X|GfagHETKUA`a*MbK34S6 zD;MVOpBs{v>#3fX_B1hVCpWRH_?SMd-D3ei_0rBh*g6iG0P$@3k%5Mp2!TzB zuoxJp09xv&4r#r%zc^B`^tiIkB+g0we1q)om=%j#^+! ziQKGF$i#8%04S*pXVEW#9{Rudde5k))_>7Dy;4FC)zCwcj&umU2uSZ>K&li&FCwN; zLN)XvXh1-)20;Wx3{3$60Z|dr9S{`jMnpx?>^J*=?s@OI<1J(41D_acEmjz7J zxd%Vuh=`ewNhBb=jeg&cIrUfsRc(}F`zTG$F{e|TK9fm5qFrWwl%&!8$E;Jy+3tT6z}J`HM*;obDy4@R*UjCSzLc}lnPKEh8c8B(EHg)}0y z&;wR90IK*qt-_x>viE1Z{-3R?qF<_r>;PVShYu4={~Cih3#UW>WgVO_B_sJLq)Xuc zFYD0$AbZEJ?f)U<&uf00Dre0^Z+yw0oDEy}AFRWH#eGSit)>6LIw-uWR5qKxNVpQg z6Y~ET>mbo&c!&Jzvkp=pgtUVFabY9>CFJi}%=wPc?s9yT5;*x^tV8eUDfD;G zYpw%fQS<*1^56b2yj*=mq~c&sd*8GFunsRW5-8sj&V2tbAwT>(SZn^!z0H4F2X4dO zC+KhP&)&~}%=WfV+$sGZtV8|KK96;{^&{rM@E_>Ui|)lX|FRB;(hpFesDD|9em@*- zUu_SUF9drUO8YsY`Y-E%eR}Gb(AHXk^uMfwYx_xKASqo8Ee$wv*L{jV;<{pDXYE8&D12K1f=^@sn!=oKTq>JKG<!v*ed6M?=Kv&-p54=ddWvQRv8vZ9iKHUR#%@l zEK}hHq_F||o?@oS#J4Tz)u|DC%Z;D!GM7l{Bdta1D_bFrS{z{4)!Vl{U|{E<Wm^a zhIGdG&3@~Q3mrDsoe&Go)x9qnKcxFW_T+EfN%>N9y(#6hxq8!TmxuHo9=!8gZ$|f_ zx&Ex-i(LIVlMh4sk1Y0o>(5)GEesayrB4|wI&0iDc`NwcMywu{*^Qg0@4z0vpzI*6J;+;Q-R+ArE7`;q?amwgb_J_Mhf1TR@W5l7L zEsc49zdYmhVvS+r*X3qh4&R#xTYU_9$K1xy7?l{?DOD@#E#me=PRaO06t^Zk|1D`Rm=~dzSm3?)+o<`^!Tst3TgfoVMcr z{BY0epFjKmSOLIzHc*&FhMD6)B3*2#9*ZK7i-RcQN044Ds`wBNrr$NfpTeTa{l+0| zdBb>BtbE?^8_K(DRE)QJq?IercMLx!xyUL!G$b#O+BGJ-!z!};Esvq$$K{24=nm!z z!qr{l%6dJ;?zy}|jr!?%h0(K1Vz^B$)=EC%bD6la4=aPYO zKBL&|F$ZNIBF;67YW*g_k+P~=alP?1baB#ARTRRA^HCIO0ytXT;C7aIvI$UuVkcEi zFI+`_yOIQBQco|%FfHwZ(&I^pi{DOlt7wOU$#dsNH9ZwVymM4gbMewztYOteK@N3K z`=;D4bH_<&ImS60R$r@sjfz&+m^wVmT0qYAvE>W8UGy#28mUVidi6gWOhy+#n7vMe zi&G9Kc61w8R{4x1h!iACzq!NU0`z0-T&j&qi#QWt`O?`nYdW=lH?7R#i!<<4%GYz7 zGjFUUj~#*QEVZoqP@&jMQ$8wbXH$JtZDl$0)M(MOVu>?0(k>5+Z2B%t*=;%giFgEK zrCmtv100qnyVZ2|X-n7>TtiJ=oBMa$4So5HvM)IYY2iFu%xk-koR(@}9wIWvG~de< zn0j}hqALI_MbFmh`HxcHsPyLoANsa;28(KW@h?`o-J zr~a3L`+DmOjSwUPApa8rgaZCk2>D;s%>RaE{%>k#R#$IE&tTfvaLQEgzPZMTvGTBi zT(5@UEiB@u0J=v2(~c3V6FyKOZb+5$PCuBCV4fallNo82MKs9@HO>q=lo5C+HNYU* zPyd9s_6Z-IBya6_FP-C_+6kTq6aW2aCU|PbduYTR(TH`|h;h@1I;$H4!v)*xNoZH){ql}qjPCuKYy0&*`%O3Z&)xpT9RAhD{&it=zkPh~;)DI}$^FaIzk23= z_dVv7J$~O^{WH4uXX5pr>8;;$pMKB({d?i>-;cNdEbsnV+2gMMhh%xV_vf#lf7bT@ zZ0!Gev;SvnZ};8T*SlZu?(eq!`P$6gZQ}0KbGPgM{9XCyW5w_HrTcHGzcx?rt>u1Q z$=-gN{&6As?F@-CapKwC_=WzMx$B{iu6Vw>X8rb>-m6yp^CrdBMwu_IfDG=*Nqu=d|O6+U(dgMfI~!`oFxMtkyVMapNli7g46QH8(W;XMgW&ukQv%=>4N!p~x2bi?xMg z@#~eRy{HSGbAkYhQV z<;Kdf#-t?It6k3*5fF%6 z!hyP1Gd_H}b#_hi1L5LMX|l_IO0~2YU>b8Z6QqvFD4E?o^Q0i&ZK@3}Tsa$CqCK z!w}F3@#r$oM2Xo>N+FaJKrEDcnVkvjn_UzZkUW%Y`engM_3EyDl-&HT^%>nox?*SB zuNdW){I;pb;Y^uf25gDBk z?(ZLu{vmMDOu#>xn15tB$d8f;X@wMUG8=D)kfc}-XHo_NaY-p-#8nd8S|ACCS`oGu zz3p$Jw!}e+>OrWOBI6%dTFt`ge~AS}-}{$!skI&h;#jtbz4;<8>Srqkt-vdWw9_#< zwoFV417B#eoc!A{fi%o_*X8b&sHu?jXAsig6f zOsVm`22$j3nfPL!UCso<8ph9GQ#f>!4pal z*^O{3B;@a)vAB1rYSO-*c z-Vo%h8L<5J=J(^>CaT@{GKN!epOp||LMaOQ0ZdE*>Aq#PXQ>UqMj(5eCiez|u;vw3 zVnp+0-_Oq%*@z-X%xy%v00ml+HPxRY1s}B+)1(I29-8HsL%e?#gA>+yP?M7)Wakdp ziE~{TgCGJm7{7lSvIKQCZMe7ZvCkc8io-ZX+BPx_jkj?jggEOk2!fzACO*A?^OiswF z3lK^?W!NIk19lNG(4Aogh>TEp=-*eA@4TPBcBjG=kO37A`(iVFhov!T?7D(^6UU@> zh+WM+W{of!Z^hig=gVx6iY!)vg6S-p>=uu?n$PHW-cuIo^tfQ>){4d|k736Fg<1(~ zD8nWS-(=mYz{$O|L8k&W7u^z%+%}O$<~UG%ZJ-E;um)Kl$=8f*g$+6u6p$}epcguA zWB?VQxB|w}HI!Ux%>^N;$;t(q4=rE~C(T*sf5nCe=6>(phm0Qp081lt#l>@2V>0hO z;N~)%dlW=IS4zPAMUgrMX5dtVc1B(r}*y2gf7~Q?k zEvK^7n_(lWVwtR>E??{a6d~KYa8(qFg@mdc$@;zDWb+h8P#Q zpfdsV5?c4lT^E+#Up^1nxu|ENAaZ#Ucv5JTB0yrp60*QDA(W_v+avt_LeU zMIdd!mV7IS_pBVjpJ2%nyQXuO8lamOilalsWWj3!BlfEf( zQ$F=%)D{a>kn)vvT9JMmIL{!&m>86I1X&zd0?GEkamwbSX{ulWCtH&@W^dEnb1&-t zm>+!MFB`1FYTqA_z{j>q^@08O0gsO8WL1`U=GurfPUeRih5vmre*NQF&bZ3cyzjj+ zqr$ZVc28Y^JHn?&Mbr+_r%kMRs8O3lh_*eR04xFX$^ET(Jzy{^u}9DCs&Kr(%1<;APu(LH-D z7a+(e6b(-y>6THq>})>nkuyJy=^(M+WrnG$4y2asZo%) zYs}Wps6=_?wybqz1Wow4UYl^dDzy4Hg!jf>aFCpsL)-?vd5(MNms>e~4Zw4^Bldj| zNz5Z{_K1{u)XMjubP_xhM@(UYodD^_=AoxEPD%|>!fp6Q=FyvPk!P96767Uz1J#8) z_1GxBODCd(h+3#ebu*|Bm1(>P#pwsJ{VEy7*4~vQWNtlbXdBJupl{EopJyP8{dIkN zv&u5nJth%#xYK$@7z4X-e-bzm1JA%X};ZvF%*|fcw9d`o8_Cz z1Uq_A)}HdLB4d$XX_{m592%jUFMDIAozNu#k1zBvn<6%;UVCMJ--U98{SE zk%t`xK#y<3(Dv|aET3Kus>89cpMxS{;3ESrQ+tKi#VEm1@GKU*=Lt9!n?&>gHx*#? zbQDkRm2)P=**Lz@ZOR}K)lNWll2A5I`4_Q#!NW?>#_(+}qc1U00*xr+*piC@`FmSvm#G?ZR>iGDNU%gQe(0Ak4bCU z_Btt+4Dqbg5H~!-M#j(UMdC0-0@RWO=pg{_{Lhr*X}z$#l09A_1f_#L zWzk)wVo!}A#Mr2#lV1y13>`x$%%+hBWA zIs7}+i)=2>0TzyiUkGHvN`zatPgzUy`3*LKtxq{-0TeR;+H}+%Qt=RpKFB;fG><+! z#l#t-;w76QK%{mDQdT0qi-EqaQ!%c?H_Sk_ZhJu&>gK!sO91vnCNz)?4i11*nDA0b z#8n30H4=Fs4W7bkIKPQH&CdD99-hh~Z%ZO>vET(BN3C!WBj=)CLzsb%;-Md)tSn}9 zPN$qas)N<$?418&pvj;MrDsgjLeM--E_Un04>r<&U>Us8e)I z!i?e?VWb8JOyePB69DxdUwme=cVQw9v=GOy+FcDm))4Ui3_KnJKZ!wP@G|qU=p=T+ zk8Yp-ZN7dEAMsE$u&!Tl@=_`>EtM0*x(O!BL-v0jcGd}2VBCUG?A2b}Qj?~6O`Vy3 zes<#-wIrvwe3?3Jgksc@?6*zOW*{g zx_D;gTjaUJS*>J5DA7L91M0pF@nFG7ye$mIrO@EC1sMNB){z+^x|iW_#SXse2e*kH zO2eH$Nr)B-fb#~Y$UT=+_j(MtERYTfpuq|+^yI{3F>J>Pj{V0FtSaDdmSz+ zsi2so2wsw5^wx1Pb&R4oYN24T;p`w&ylX$0I=4AI?2oKvk@!Xix+E zpV~_uM&$Dyd{gs$`%6B_?4xKyL@=}`jTrO-R;@DyFXVtPS>H`^E%eTN8Hs9=gd%_a@cNF|23!cI5PG!I^-%ivX z^iA`)yrO%neoBh#G!K!(fi=h=xCiL|Ys@RBv9c?aE<(iQ531MmYq3-Goq>?555wu{ zfJVlNI);Dc59C}r3euW<)CkkEH-1T`ukq|PC4BCAHWHc(=ncViv5m8kFd_p+V#2Q* zA|7nPI{b5vC!nu0E@ha*F-{17Qv^Ys=o|wNx|x=VL$Ev$mxLg;+YcPskORyjIo4#k z`J9#H_>6z6W)9$VeQUiYO^serhDIsiGdd0G$#;Uy;8Yz1g#l03;f0X6 z)#)Svl@M*y2~S#vEt=i3+kW6g4$g6!GyPMopptb)qxUxQB7TeEtl4@)Wn2M|+0VF* zm<@3;Z#BvVDEA}P@85%l$5oRU(nUy!=fmcY&R}_1unshyQMjVwn>8PZzz)Ucd#Hs* zp5m|~{mz3j;Qatf9*)SZ%{f6Hy|mDCdIqe(0#W=D!17~eEz5z=VmooD!XL?t^=Bn= z@^3^xT+9T>A8JkCJgM&Y1T=zF$r@v5+*W&2>=`oO5Zx8=_Bed=2#>gA*{m z+|7qN-DUj@hunD-ja{W1I9n-61oZo6>y+oQhNz4l`5Ex@E3<~Ds^z%ENdbLD+Lh(y zQzthrqAagI>Kkmm-H2*8$6WO2{SbRqzCYxv!{AN6677!LpfAa3swn@D7~2o88VMPo zWdD8X3D6horuT(e>@-2A=#xZ;STjT}2cAXpjjMaWKsII(9kO^Ebf$=Frf?IT$EjwJ zg<0?c4p3$r$ZmS65_VGi#h9XBZv1gtQNzU<6s`1OZu@-GZN^!JL#Qmrhwhq~kgI=< zI-Y1w#8i81I9Os@5|IX|Op9T4mM+Gh1M(I}c)Dz6kO07^L-Sp53M26 zm%w=`8I3WAClREcYeMA0Am$zkavmUH&U(h@q|#+{!JQE9hlY#UO|Nucg|q_Zztu4{ zrq7hYYFjb)4Bi(*_%gG_G8%EAZd{E0=O^%17||PQ%!1{!H?uh`kl&lAe&2k~Ot^b= zfWWM3dE)cBoOA*_n+?wZoO}4`*>iKqi&gN%Q=lyAEqgAB{H(QnYr>E|^(GWGqq)wPHSJe?-&>o?HHyN5lMYr=W4qP7x=>+sn3&edtM1{(~tNMIg z296q!iP-Bu0k8bhvH$IWXBRpRP*kYU)Rbud2A)D#U2J%eXjMLU<$f%|El*Uggex7(TaKc)(v3cJFI^#JBHH5JDLc>qp^^8O?w%0Uw`tYG9sy z#>hVUnJ^F4X91;fpy?akKVDVMtqv{Vqpz~Q3tmq25BobuChaEX+~pkj>23~-h(1ZW zM4AUv{(2)D51Gi=Ejs;s*H|dZ+~viMFgVEreUmgJgb2>xE*Nn_hd99j3-^mK zRBK)mO|KnshF{7+hK%)Gw<{4l7&hME`P!jE)`C|E@!D{zQg%CM*XXtBQg<+PxQ~8m zsq2WaVbo%SbBu}`JZU{2u}gM$71j;C5zy^r=K^P#-t9|^=r~+o;?-_fJPX8Q;#YBf zMefTMC%3oM`X0E;nq_}nR)=UDk-eSp=_7IpRiP0ywTHNo8dD)-lN_de(idMLLm?n6 z#j6;IN;w%h%lyW`uhDZY7N@x|*`VFn#SY5mwDQ--olFzMxE0a;ZyqH!im0nnLUBvr z8m;tSN-j&3BP}^Lo6o02x=MU+Is9I^f8?As<+JM}#n|~Ev()eG0MU{SOdZXIQ>-i=b;Rr0KM%9AtYdoF0@zoaW~fP~Hr-Gn4}FoI%x3eFgB9j`iLQ`Kr;XT%}ViVp0&(3aAfMKC)}zmtP})n6Z2u|^Qf7q zTcMfyW}VjIxLpwi55kvr5pT1~g)r$NjU)w;Z&9=3FK}1sqAsUR01aUo&dOpw?z$5- zV0HIRvX8q^hls3(wNepyfcUM@aIcFdU_~rO3s`(-C~lhYsAT{C_Y5#&FWULOcp#CR zO*<3#r$JGYa6In5IAJ~39(-VKsqTfmiU!q9zyQ_SOZsb*N6p-WnZ1mV*)6C?$V*MU zIx-`%d{rHy1og=kf<3obmcB0+^9}6Tx^(qjxU^`#s*FLU4m3VZGLSu>a z^0M9;vxalZ49kt}BprWH>uZ7jZOpiM@bSvc+K$ldF>wn}&uc;ds_p_w8x-XN<^bIz z^&WVsedRr?NOd^t^%+MlIXoW;YXHx@+5>pmtm!DA1c`HDcT9@QZ!VJ+Kj%1VuZ&lF zxD+_mf|nfK>O(!uIDdRxer^na1uC}+(92yH&ICh>!3Uz{OFN#2W0J|X8r&o(wrwOr z{3d5iIxPxrK9hjS9T=02wk{14r3&^F$3AD(GbR(zS-xNWc6>?G!2A#@v9!b#7I)Bsj5*fCKoMzk9qgd$0e$GB5L@gx zL0LEdODUpK;iO@||3*8;1xm#dd zMj+aMRVX;G=8b{sF^FkcGa^0cXQ8$;U&8pwwWpjl>Pr=xu zzDPaDy9#u{3g8L^NC5Z=ECe?l(82xX!4OC_{vaLcNjJhC7D#46^`}i=Sga<~J~Y}& z|5^_ItE2|uNTlYgMuedKpHKVyt=;`>e^+{k|2C$3Dm8n>xm@#URgGPOU083l`z2n` zZ;K*uX#(y))Fz%!d?dSrDYBloelU8)>%jfnuK`k$;(dxDf@SOt742n&D*%i&@Y2%s zUs5ADc$Uhm! z?a2lbH%QRqMyqRr+Own^i9)jx`zz=A5ncSHcsime=dtn+RX+Jjp)wBQuHmQv-xrwG zM+tF2z3t2gnLb&OCc(S_KHMHB%yiNk&P(tB5!Vt7PDDww)y>oppqGZ7*U?xJzedemm&01 zkcmW)uy`UwQHE>He_}GQ<kBRd&&L@r{ORDnqt@=SSQ1kt6%+d@_>8>tuN*dNCRQHZp()B^@Y(9 zqs534HK_2Ikc&5$Hh&NqAYfhGzz_%VeHaK@%La|NsD4O@n$Re*u*`=diG$2FCb(F z3Fwfa?rQEp#Rq!)Ww}o;%)KX}VOs^k15IMQJO5fktCG<7MHF9y=sJA11cICuhW<^X`|VLH2dSho1lE`=uIQL* zM^*9wNtS^F$Y?#i{L?3C0kH)`7arv7Uf{85ryw*P&eZAMsq-_P;wFHj#$;l1Cd4zzExh(llLqDfE)=hC+y#hl!n3&UAD$ zy{~w<)L67^SGDIdLTDRM#3A3%f1r#wtc(F4iXDp>V?ItP;L6hNZz&BpK724(h7f!4 z@Ok?ztGIz~-KLaM$x}J~SS$G9c|WQTdvAv>xJvKNr+cwo%Qyfb(nu0e{3MekLE|p%Zho9xGB`q5kn1sS3OcnEJkdSEy~@Mb*2=zfGMIrfvfJ4 zP_QlrtUW+g@1kllX7y_kJ3fz{JC>?FWDY@#jqTgyEnIPKGo{%CI@#r25ATMWKf{@^ zG<39%deUT0Rha~76L`4~V~xEzmx(7Kp~c&!k9U3Umk+p=2RwSQu~dw6FTvNQUZ!7T z(fKCH{97~gAynTeUx`|K{0ETUC+CBcpo5$VFxf}HKqplBS;{QE!R5%eArIFl4V-pF z27mFfPxMEZ>HK6rLAsyFRlj)d=A8BfXygvHVwVbDrfSVUsMvctPXMMyEyq1Bpl2XS!vX>!?g&vQ_o7s&%nzLWdLCLGFb>g)0=;Gd}7SHgsQf8e?&S!i(&A5 z2+{P-Hs>b&gc^mu4X~vm_}BnCHc(x0P!vB1cA|i>^(C08Qbc`=EKrOHyJY`xm(nCarJS@70uPx*5F%51T{f7V1mdLsMGUHY6plAlghF%DF2czWulA3l|$ z5nx=-YLjk3#L(zF9}uJ8=;y>9l*dwv@%0ns)E?R@I2MRyu3WttBJqB;n_=1~p)8kg6e~Ht5M%OBx3F0k?*ChIWKL*m+rs@pXTQ$>3cj+fAR>WdM z%eSAG5G0DX$gls13u2#xm!H!IRxa1l#Tj9$Er=X`N=xmliMy+xeC0#7Uxgu>_kgbK zvhzKO=Zl~(=PiQ!qK=lzK3!@-EWIr7U87%?45JSKt|1mQSiwr{;FUk1=jNuR#@8inCTraFl}0S3;I@uzbXJ0b7 zO21;iLDyNWCICh76v6Fqt*7)izOOw6q$9}m_7pkeI=V^cYmw+EKXDnX`_bJ`v)5}8 z^Rh3%S;uG_QH9S#q@oK9h)6XC$l?1@>nN%UBIMEDnekb=p7`@p0;S;726)+fi+6Q8 z>6pF9Se4Ba(e)A7vzvn#i86La32)OJ-nRB3MCU?g`6tDr!+G>yA1{8&HE??Ctgec3 zpyQ^qqYGfNNPedcm00V@a}+%BDV@1NcQT57T~b2cqBl?;9S(|lg%FtB@D0{2!L62N zym}i-Dfj~zy-O@+P}aqwNYQcWy0Bx$ZV5{$L zIx;iu!i7920_@b$9xX@Iaq-8jI#nMpVNhWG2tKC`v3Q;_=SD(5J--E^&J#IiQF=P* z2?ZNq9SXf+HDxgNNPqOn#5V^8fTCoIsxg3J9@l#f_0=yJSDAstTwzP@qXAnDzB zXLTf@FpCmL$HO`t-cJo*EHsH}3we9)b6n`T*XIl0&P8u>M-tk?c|E19xMRkJSwb-p z%OXSo>=1&eOV@ec9D6+}aH!MY_BH@B{|4;whE4>jun>5#t%~ylQNcTGy&w9pzIY{ZVfu9UF!Z*jjJ9!SVh0wNNC=19sp26PWz&iQjRb zoVLy+>_fjO|IXJY_o4IOBUFvAe*t5F&557=0=I;4K*r}}`5);ZlWjUDCCV7~ zBQGvFEHNcxNA+#gv(K9`MlKqHiHCLHFFL@YbhaTsQevD)dj1_U4OF#;R6L3LNiGfF z1vI`be6253|(TAdBj#H{0&Ki9Q@)Nxr-MHDO@DDFfN zop;@orAXkCMjlhCr`*&rKq1`gb8bL!4N7tlpdg;Ez=Dk3r1Dhit!)ztVD=g6-w?3z z18PR*4{GMuM%5(FWso`##>wLy*q*2{g-?#64qI0rpcZQfgf>%4ttg^6pdgW=N~g>& z0hnUhn{H{`4d1Y;zc+*d-)yYX8_)k#f0Z=d@w2KlNQ|*kok6`ue9HC*h8_6zLZTex z`0L<#gu;oBu%quclXET>{pu?E9-WyO^XTp6Bg$8-3gaDN$FOI^XMogtiumPk{6$dCH^jtAQR^LU?$U`d6qs)B< zQUlP16urjjJ)=`1;yBZUc_xKcBp_tuu{z%hrkCMdnXwC_P$!0-9}6Gn1)G%6gIvNr zSAdm*^#t3Sk(*Q1VB?sbkMF*!&NFR_{$C3rPcHQwdk`&W%k4~ft`|KcK(=7=HTFbI z(1oPmWHhjDk!TD5DTLf+f9L*!mR-|fkHQ|Ln>BpCD&x~Rjv4W2L*PqWhZwF%hFcDjyj!VWNVLM)67yf48G<=HA>a#sMhBECe=iHL4{p$R^H0!5+3OH=KIn0Hsc zG(v5FP#`{$xB#sW&FF!a`?TwT&_|rs@=*inxE6;c!^p}Ec{+nj@alvFE2kg9n0r?6GsTv=*wSpMGo6oNL#lj6QL?`_k~QZfR7i z)7+7#A4f&+{kh*OJ|uThaz29Y0Y-1hmhay1xOZy>pRNoO}_TE6l6Mo{gye4ac#HZBU>KX_;uHNfXt-a<6ZL{%E%kc9tscUN*Kdo~^G& z<5mBQnvucj$ta0DPJ|va9}%StfyCzx$0Wsvm{7<1vdHEFpLkD6g#UfhTdrL;V*$3} z8`V%v4{O86Rh8nyY0U>es)rCUV|=gltHg#JQEoxy=j^J?CC%m0A#I*d#9yD)BmraD zH(p_fV4CkMXBD@st&tz2gvx5P6|hKahc^ZcQ6~EoZjXTYy#f5guayPLUO-oD420)uhO{a{L>FOk>P1RMq7c>f1eI zdI^EkK@krTwv%-cUGgq>+T<&vch9aNiuAodjPhTP(%;?nFmwri%BlK64Q_*u zAJ2qFyrhRjV8MF#{48{r$R{YlK-Bwh4OxwB$mWF#iDybepK<}^@_0&%9fs$Cy4Kv+ zD_iMv>_MS#c!fnA1@~I*QTC!fGHJ5&~M0=wlS9Z>Sp^OuI_3-%u{{Ukh}$DUSD2go<6o6$MPb6wCX1 zxF>zYVdK4&UiD9n4^N1Ym0v=9J|vJx)&dtS8)q%qJ;o@EWSfT6_#+n!XUA&2VYQ7^ zG1m(P^18?~et6V@4{A?)s%~DXJnnF0zQnIFw~QhETebVf=tz`nRaLFQmhxHa+XD9u z+wy$T51cw{BRE9=u&ou5jxFdKN8NZw@{Pohc!!1TBdE4h722yws;+_n^Ty0wyCJTn zZCn{2W~(AOiJ53|=McMFuw&Fz=#`6ov7awEkv&`UTM& zLCx#26sO@4Dk)l+&CGvt<>_6mjNT75s4$Ys9H%%yKu6rBY2tj)muY{y2cd^;6kA&# zt19f9GOG=1Qn|U25%l!s6fy4r?!zZtH$D0a-n%`#krPpO&cN(WP&udBO5>Am>hZgX zi+(pF1}eXW5LB0`<6tk@_i%TnoM}1%ENR>W)6%od3H2`X^DQ<}u2z0?=!em~1wlM- z6#r>w;DIGK+2i(|r}MLR*CW*;3O`?K1WOV2x z-*s0-nZ@r{27MaDMTaoq(mV%^-zmXa4};5Q?wx-3Xg1=*9(S8}OiD!RbSk}*}Fu{os_>k{w+n=i|+JmBnx;ibZUYhl+ z;VVyGFBydB&%2{YRkuW⁡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

8cdBp^=wE=RL& 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%0ArXajdjDmM~LuW0@$w%fUI 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

0=L$u?>66vUZ-k1fO!kbHH$T&>8M;zty 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�hrNvdL1U7_*Pgm$Jd)D?yQW9GJpUw z$chO#xeWwv1NmGgdN;&hRKC394*Jg*WI<$)>p*or9cg+x0c)8Q?KytcHuj1$0_8zR z*US~2BXHB(=;a9XvB zT(!bS z8|drS^tw}pE)nqW`j6cSz}vH^*Xr#5KK}Tfcl_he*$R#yKMu}rvTOzat^>dX)PL&R z@cbg=MSwl#hhRR6?+2R%ZU_2fN9baa^hJOKb4UCh3ds$U_S^Xyxofb_1|b0?CfRh8 z0MJD?Bf>7S4XFEx&7QQW@!wA^zZ{+XSS0-?c!}*W5(Opxw4#BmoOf;Vi(LIs;slU= z8_+80C$!)vWOD12AIe5>%QLA6+V+csXDc`#0A&Kf?ZBvfz<+1=F5mmDXRv8IIm~rp zBI>_ABmpFW+BYWeb42aiw(SoO@6JXZ7)x%6V-CtXs=|K1-071a9aaOFD6p2_yW`S1NtY@tbi zm-hck{Rdnz*_V37R`p}QLF})TR&(I-KWIQd_l^Cq77XWkhU`f2B_=^o7Q-{KJ4 zvMK22#vk!X;D6UyF+MK$J9fTuynOHPrt`lirklS^kAHHfnF3H^hR6*j1HuEgrD2J~ zsFA)5c8I#|^yIQtj<8PT>ipD-HBHJYPu6RC)wWpaRBPbd>Cg6M8bK4aUNc`DWo=70 zYRfGB@l!B;Yc936CF(&7v+HgRE_a-)L}r`tcg;k>p#NRO1_A&8s>Z-|HeP@r zAcN&udVIrl9c27{e^6>#=zvcVV;qKeWgbyO<05{cCicUF*eQ8_gjZPOKmid8YM_w`v# z67^K(*AcaO6T#;$t9lt{Hg%rogdoaC#-QHAagxMuDrkFP!}QDDS6 zxBvC|UlI8K9s%eEfDI{yYr~iUps-^c6oaQ^pb%Kl_9QS31QixTG23g%TmX58wss=G z0t9qzVtKa790(&W#WE_E?06GumB=zUvN;0ufbVg`EB)+1(-iO(3M~y#u3ZvMETbq4 zX4;*`UWj7K&e3JVQph?V!gBctpNp!XD*0gaVaYLiub`X0TVJg-#aOq`pzk`*;My zrKh|z#{f$m?q{Ta!Zc6RjWYp5z{;!tS(ZotA_3Ug{?7z}_#YD^g=Jz)V#_e^k2CH~ zvlvRS9F4acy<|QTWjYvUG8kk$>|rqKpfh?>^Z#%#j%jNAKbHE4u5zEga=W<--9fqd zlwwMd!qp_T$O@VBMd&kSoW2!c?{apJLN@n2Hn&VR*K{`5RDdf5K)A-TF9K~y5XvQs|w_(y5!(>0* zq%->0&gdnc)xJ(NN{i`)DH_735Fz3tL{kI%iK>tmO;W)gmXN;>#V+5bxYy_UPTUc9?ewf((r z>wDAsm*$r*A9Qv-y50C9pD~zlb0(nVlW);#V8OQ-+TPWIgM@;8a`{1W~%kL6(ecJylN@7rHT zE58oE@9zEB-rn9}eYdxFcej4-u}qAD|F?-z!nn6h$|4OVV^?X@UOkX4^#5vNe8e-7 ztEX2n+wB4z;VIRR`SyO~e*LT4xD>d!U1!6Pj7@8*S63KkZoN*fU6tK~rq_2p?}vS; z_+?WlZIiX?*%a<2EW#ejZ*b0%=+kO=gZY1%7{4Gpl+l7`h_UNUckExfQ5-I;of+$H zUm2pw*yFo9(M!H1m#WT?Qt-L@dEjs54v#z6XByl-adzCLmvFp{< zY=c+Lc^XbXe36;SXPtM=Ao0)IkClcO|2f^dvO98u$sa=4J3 z+FYhg<=Weau3tl$LsM^o`o?ufR8tV@h{foaEHOj7x!zjNjHBMttY?k>ibMTMp7HMR zV7_UWR4tADfmxwwB+cce<^ww8tnkgYf{*dxZ9N|)5Y0R3G#lx|L9ysDN`^$>))GW2 zO>x>ru9Vm@qR2Q{wm%V@&YPupCCmK$iJR`zRB7@tOi@bTw~gt;^XyIvpIMa)MB?h& z4r`(Wb&gu`FRCwBQ~p*rQ%6Wzc2M*KOY@hjw`}8--`w@>Ti`JcY_QslchZK42l0E| zHH$o=4q{HVw%-z2Z*lpY-zy@jBHH=5M^60Gd$v#svgg9EY-wQch+++GSxxEvf^B_e zr9-uiRN9p_hIDE-v4Lk>x&nnn=ues3c%Cax7oIj(4#lLPrfrhmL1V@;AI`HkVc`s^ zG5wXYrZ9swdeOvPq4Ui7h%Q&B*5$X&p z!dY(^yF;DR7Y0|0w0t@`<2QC77(;GeMVWjDOyy^j|ABs{%9I3l{t)}O>>yvBy2r@H_9YgX8U2O!nZx0YQb9{U#U6`evE4q&;n<8bUaKZH#eLhF4>RPyNo5j> zf!Ee#ZYz(T&-zu6g4>lt{Zn0xO9jlbBcquA({7Gb{qRcFEYsYfE!kfcB#QOq`5W60 zyS6QiZ=$7Z&N4WIg;Io2?EsA&f3_=F2|W`EtNd;uq>Sz5nV_KrVr$apXC#ce>hmPx zcZ=v^RN(`ll$B62DrLS;*QPh$<8h(nU+Nvz^R_R&CpskmdE(R|h4#MRTt%;7EoFvn z#;jDUd4{xC9w{K~X>&pGu9eN5yhz&lZ2<3)Pqpgo97#)-iIFQMn+?ngoE>$m6 z2!L37Ry(3J*m6m zv+@@k^0L!*tA#diiBGnrLphP@G8Br9weoakH$4kXNwGARQp5?fpTVXzDk)H4=j#xT z!LfB|i?2a$mCG2H@NAyh#Y`tw$FJl!3%Dk8Hib@X6h={ytX?;iclBks89VQF449JR zk8Jm3YTzkZ-t=T)M93g}+0Ls|pc>JSsPywVCWSNS3+6o8LQnQFAk$7;d~LXa2+7tk zz7PvfBu_FE%_*s}Y~e=K=DD^W(RX?TF;q~O~uvX zG956oVbrMORMjhN^)94pUXl$3tVu%EX$o+-eRf`Nt3YX^0+AjxbN+aOSF&P_@S_8E z^*l!UC+RfLh|E-rQ?j&g9{fc*$PDR1ml(~uQftPV_IS5^k zU?X5GG|FN8c`PcKSV1n=&2+G-=KT@|lEY^#+I6$RfiAsfAJ3)gE{5_W^hF+uX#n|U zWq~4qNX~_Isy6RwQJ!{ofoT#D537X{x_hMr0bs1646g$VpCeliw4|EB-Pgj*W|{2S zY5T(hG8eB-yFLFvZo*}w4`SVeU z#MG&=R64z)T%O8qZO&VYs(NfSgtH!|KrR$i%*Jj*Okb{lj8V3d*IlCO%r1V)#+z{l zVqc3i`*TaW%CDohpvIk)0oO8f0W^U_*)owcLLaDJI@M_IVb;qboQydhWOBy$r--T$ zEkq`8pS7EN3Rkh#28#GTj`{d6PmUijbNqvnb#|lmE zFA(zom_?KPmai*;DR-OZ%T@K>KuMiJ?zpgI8mmMD3XmTY|9Ltmv*7NKmtMwKKOL^m#d zKRJ&K<6eeV(J}kK5zleR{zb$90r?b*xNn6VSVS<$u(z7k<>$CzBEnOY>v=FNa3>G}cYO1E{O{ihSj zg%0k+(7{w(|7uKWH-Hh6nX(80tU#EH=I>C*TWzq@r(j6glw%F=DgdUcjZ`)Xi%Py| z*pPCv8^N4U8Ni0q3YaQ zt__0A>*E0B(6?0|ZFw>QQ2Xxdn+#~h=NK2TO(Yp|eG-!3c`oT7-(68r+&0TRmG;KQ zgjr;8KKT;VoeHb<`szh16@n%MuoRpU0#z0$ZSuJ`SOTbb#K?SuX!|uJy92ZvgTtM&pz49oI0FqyZ(6W^#4WU{4r|gV@N_Lar}D*kY9O z+MwG8RQGPLhFGe_Dm`{m?jqeXxUdWcDj!ZQ0EF3bgwff8bNf=Xh?)=^bJ^p_ZSb|l za)r=Br9+tE0jxHr;x-8blZM~Mz#mW*o-J0G>*qY3M4Z$QDQDud$grBWl$$uP+|12V zbNt;V`5;K>*Xo+DE2?gDY4E8sy*9A7l3uJ^-q*6c@1EhCiW)kacLtU3NQQdGZJT<< zW&LsH59t!Qv|; z|LAMV$X)^)$Y)n7*w~S`FpZM%YN^NB2HlMbyN%qju zS+h5E;50QTqo(pcbtO#ho(7Kro!!SkPg~pNW+&G=J^Tq+qhI8h3xVMp61o2|w34Un zP8J!@u?{&C1`Z>G|M1jNGUcw}5|4SVSzmHbnl5lrYETVO{obPrkgcPzCkZvSfF5~? zAGUHSH>4~)NP%badNba(asSCG?4zeJgxmT6Z5-3tk|LPf#I|Q^*%tFDF`95qMZ#o^Ru6GE{xKwbSTl?Uz6`MZ+XG1?X5L^=miQc#NQd|$v__}FQ@f?-XC;Lm0r1(K zw?Z0AnwXJRI1LP4syWXDSp)Q<_#S~SaD64k zypDOKU(F2Ye#CW@J_LIlkAji`1?Oj7O)lpqX$SpHmjAX~z^(y(XpyC%+Rnt>m5FzU|5HbduOv==1ayVbt^Nd}#HyP!Z26khD zoB;7aRW8uej^MH()o|qmI@)pG=5J$Da!oy!S0{3O)XI%%q|3EjxG82fN`#_uXZI8p_jSiP)Hj(lhx~W+_*0ynzqkDPX-PKeu6+Wxf*0eE&ix15 z|9;!1IRx|R2}WP&Id{S_%q#|WgNaWjRhFO>j1CZFjN13HvF0#nfpBD)vB9A0IG88O zl?2=@0WTcY68?02csjJ$4Om|0VoKuKGno|A^QHz1spqlKoVCmb2CAjMTMZBTKpk_So{BOu< zs7>>~8B=ouCzW^Wi$g$v(&=&U-?13sTnei0(_pWrVX&=IsW}v8r&N0- zBj4B9Z_nx)69R9ct_FxlSG*cJ*$F9T)h1TL(&dWSu{HXZJjgoW&%z_`XSXxCv&Iu1 zzTqDFISgaHTcg$cQjVuETgZ&LG~T ztKRn4_ivXz zG|#4)#Jnzwq2AiMC2RIfT2+q>Joz0AC^oqCVOc(8{l(h?%S^Co|N6=sqqa54T-4kR z)p@9UXUdfa6_*OWH+`G5zLM%m<40nj22`*me1Avhew6V!`x*Cs)u$tojYi?>=a}OG zL(jG^Kom4e?8Flw=BL5LTF-(DnYe!XUyZtRvGqLv zO~`J17+r0Ninw(lDY*pjRw(K7Qzz6P0+zPPXtB|*#th6qgf$vy*A}tJbv?P08wMe; zfXPMHn_NvUXadGe@7`DPignI>=LgiDxgW~PGzM}Zyw*>{G3n1ozM$s0Vbd0gQEB;a zGZHD2hFS|5A+fn%@Bb9%eN%5aa?d_7$-r2Yy&!;JF{r8j8u@mwOx?dVzry1SN&-r# zOd@S7;(I@#U-;E`=8c5EsOf93o>jkv-Nq=)4=Ge(;U&r`Hz$kKtYBr^pA4b%4nMsd zOg8zA`yQD}kZYc-{-dhS90JUo7IDcO9HmB=xjvYuBL$69g! zUIz)guG$pJIo`4?cl~TvbY)|}RBb^a}mfcv{kTGVhE>j=)YfuEfdtONYv-~Dr{ zK-wa8HrjFTbW4rhEo1^aK4%{5|8DzV%2Pn}YSLRFh|z|UCwM{_D|E~yF#6`6-*equ zxSBFwo#Rcce^YG(fnit0uQK7T{Ynx?NxXQx_{amIRGZd(kv zMN&0`WY)LIJ=G49JbQFy_w)E|>)U7l#b;j)T<{_*Y>693&acfDtfY(RM(zRFLEJc+ zcOb8={MCLr!!P7eis85Afcy^hc7Te-ZrEyziQ=rXzD3^hceMxo(-tOww&w#-<|Z5A z-Dc#!;S@7|sg1UNG#_3lVz0b;C~5DlytSytnraHC_Q6<@lch=opA+6JqIj;Z(~`#= z5EaPh7bzppePaK>qTv&nZ);$Axk=`cCNXRM(cv0th4UM9^tjc@h{tZNa;qzRSnBsN zNSj~=k?SN_aHrYOj22Z?X#X7#*W^}`CK;|`b0lDXJD7!`c?S0ltke1Kxp;?T&6~)5 z$_Ui1b`Pm!sqZClIC`Qd`R85k`n7kQ_)mi(;jdqWsE)OXX2S48iC6YqBqO4c@(a>N zE94X|{YfU@RN}f^(VYJJof|G_QX!v%h?FI_x&C2V**Shuj{FmS$e6Jg)SuIGy8az2 zmMhEE7EWnsO@&wK$gPzB{_-lyCE*%W`}&pZ9tO+ey!6_b-;W9i)gnf(7hzRfn9;||WpVdi{33vF{g zA41N}G3Ok6OR8<=d={c4gvcRh615>A2{~1ga}rWfI`H}Khwp!I-LB*7dcGcy`#paA z99ee7I)M7**x*GJgSzZi(sO3@s0pDN`qEg$k#}<}E$v#q3#!<{aH#W(_M$(>Vs~_2 zLV{G%n}@EyI~OV8cX3Rqgn0PYr(%T@g0-i5s-M{>Y0|Y2GD~?L=jKgT!zl#?HGdLV zTvrbk^XUvv(+U)#XF=qf$;Wrsm|vNlpW8es~183g*nR1 ztcq?iXG$WIMQX;@;#6}Db!0UnLeS5pP)FQ$FS0n;z1A&()p|H8M2()#x7d67Ek_|U zFUfP4%!;Rj?2jdR?vm>S?lQ?rR7$aY4z) zDYePeoBjggA1oR1A~O}ghA$dvF;S!q*~lVh2j}1Sv@=DN!hcnk4VUkitSMrmK7#qg zwh&FQ&jc=hrND`CqNGuPX`*=T+aE=&irWRU)iwR~Vt)YEGRsf_72EkvK8J~K60uog z2Xv?ri*0a>Bs!;Z_#cM^j1WN8+>^|a+=%b3d;FOzHp6#y;~{Ol#nOJrBJvlX{O`qChP*P;jmZQxxzk5FmkUeO-VBLs zSEj8%`0mH3PK#~;I?mljRXSr>NwBK6zAL&3EoO~i27Vh2a8_}@|fUoW`FR& zb}Ph1n93u7vnsDQaq!m=HjQImkf~AVKK$*qmXRg z=GQ5aakXbqU0jk#`Ey`tEHZ;7ekWc+$b^tZP3xZtxX^ReA|reo$2i>x+-p`eGtYSI zNPIqUze%OMQr+rz?sv|j;>nmu^_972f~f%dNP=!Ve|D z%nk${4Pvz#%akHYHYTQ>2QO3v+>BFwFY-x%OJUfBpm>8qfcWd9=45313Wq5OivEy}0L`nl9s@50Y9;SJSs zr60Fm%A4()%CQICDRqb^;i4!JF*j9ztVSxQgcM*DyT3UuvWOpdFylNRBH9DYE(?T` zr&k@)tI?l!vLv;u-cQS#Q z=fwZKHDb9G(g57Yw1zjD<(JyYpqEvsKIst^KE*ezr(Yk}kzMyvAOmC$@kH=1vraZD zQt0BKl6IOZSjJ@4+D0HMD&)4t-D`el?2TW!UUwjzaW?$s+|eh>|4jGHJGHP}ruwk# zZyV;PB~vsOAAB#wCPItV zjlO)jqx_jotj_=XWpXVJ94V_A?D-`cLQ?=%Wsa|JBCkzh+~@=5cu@PzO0b-TXXs#Q z)mai1-S-No<`Z*9Thwrp{Q|u1=#?SL!%{-N9B^LZ7jZ|D3e@vY9u zr`+vfS);bAL(X^WwD!mg>nA{Vw8xOY%wNz%1=aW8V8o^53(_3GbYiO+PYu#m`sdu< zyZFkYF_@jiMJs(fj9ZfKNQ^!3bL}VeECXH>oQ5^d`CFVmG z0rRjbKeOUxhHz!kjJ0UZ-|ks=z??)+^nF7Rdmk)YgFOJRV=by9MYCI>^^SqfEA^YC z7!VBOTN~e_C#|a*Pt)*5?Ftl#DsW3G)dvBQqi~w7^c&QJ=jld{$KVZ;MxBO4jDK!_ zR$19M7Ca37!}x60xwF}xWZ9%=@|~xH3ShY1I1Ax8A40;`=F{vNx<unnoMqn~UjP*AEsrqq!Xg+tJCERWfg19Ft)I2{*hA=bK_8^-!!xq9`r zs^5}TtE6;;(+;x+y=sVx8_#_XP1EVgb|CPV!F~z$A=9b;5#vnDQkwXXa>*Bir|Mk6 zXZkG1C{}MNqN9}Zb1WhUX3TkU6vvD5V0`pa#w7z$@GwwrJJ|-H_9zO>BTH$&Z{8*h zL;}uOZs@ORJT<-wL!II^1vM#XJTT%n{g->rF;d>9Rq31}=NVNNXw4AJtJhH|>wn)+ zp0m$$HbyTTj^-tu_3>3uNdniF(u(xJ)gB|3Bw7zXvoMKfBFjah)R4ke?o4HfECR)t znyW?1KSY`CQbrZlDpqm)EZDqyDFfnQC9*gsD`2vau4EMqu)jviX{bt2DFvarDY7bgxx2&zbc%=GP}$TSctN z6DA!SujW0hXAlrOhfxk7*m{)qqFBxDk@vQ*;HUp)Qp22jS0JRL`!`8PI;wW>?9g}B&W zihH%Vlp(rpDG~*?PROwmsOC$jEN{HBowY)(SXpG75IxD}{W@gLGaVwM=wPMZSe$c_ zxZ{R_DP8FzwGM2}!nrXiCDH*Ylf8JAB_cnKQIsa3^jb=K;?Q|UT1(-NZt*W&-YXKP zW@bX|7OgakDT0O~qSg)kPxI!D->3(rdPe<}FfXzU#sQ>cTN&rT8eywbJOnuyiHLi% zSpG&P0VL|cGKjcuj-m0bOmV#$=N`~OBBqgsMjO_4g1ff-Q+!>YRn5} zDm|-|bpJu7#hb@K(NQx^UI(pap33Z@%J4V&@bRz-3Z(MQ#etE4IiPGXNVXTKUGMO_ zfo2{B=3kt`A5C3Rd_pvw<#;ljHfloIwH2HyaX6+)hiKj#r~Q@y8`RV6Pw}R~Afo+o zsqL$m?|=g;f8l-pEE3XA=d@g0;uq7pF#3{NLLNNnrBzBa8}@6~R;4sZDYz#9JkF8L z@2;Q%ET><2Xz4UCwM3crBI8IPTomX{=ltz1cfS+MJ6f;qGWCMNAW^queGJDX$oc3T z%Kgo$7_IY&0dwOBhBb{~>*csiTd+;I*CWj7Oyjh2C^8`9WLD+ukCSb^=^zES%D=N^ zZ=k7x?-R(2Jt^-qGYZm=>(K0AV_Ae1KJystPVVSp%D%GQ$#{%BL6!@ZX;D5p_EvMg zREdf!b+0I18msjhy9UBd%~wiiTgKD)(}9Bdz?!{RAOAU=*4Yl5D4j9MVl)_1Ub~T?Zmh*9Kpp z!GAr$mQgR2y&JE>%MC_L2eoqhtJQC_lv!2T%8;m%vY;~Cb6U^O87R&FOu4`k@ew5L zfSWp}jqtEpS>gwHPw{$x#D17jnnl}sHw1bwT)Ss`Oq))a=K4ZgM1cE)!9D8@c2VGf zFW$NucPkLBT8QOU!spD%o5qP1CDjb?RC_C%tMg?|%T3;P(J{ z#9Lds0W5S8tp_3nVP<^YELY@~00n0I*Q9hkc#_#Zve1UYil+XUemp#K7ylU`zP~EI zAK)NnTblFs$MdCv5SBBesGe+bnL5fT=Z9#~4}cawQx|V^LOT9r$*3M|9aXr{>hbtn z!?7a`P{lcaOrMVepIyR#JQ-?#4)?9}*Q;9(d%EQ$y==I(6^Y9*vSX|51^?GigDh(O zHlRUtX?ZC$lZ4zsrQ6n5H*Pe%zf~C^dRlQVT=Bw>4*^oLASpmFc{$*abDJ!-P2t+c ztx*0pCtC%-JpKk2N>~#luene9H7S0mx1F?I+WfDWVswlM{a*5@*lOU_`7;1;sMFTf zIU`q*#jW5Dt5ARK18{hE$enI~sT6;yqpgacA-RD1ombDiuja&z(5%zJ1E$87Qy)za zP=wx=$uGAq#bo?y-T6e;J}_j_wCL7ro)2I8^g{`R#e_-WsZ_JDPBSJMJ2+*Y62a>c zs~2j0Koct6&NTAyXxSuqzvFS4hO7im#nXrhV6~XSn78lzFK5h$fY~E*en*2PlRCD7 zjmy30_ZvUoncvl){9InKeh<2LI#mI)B!RtSUrK81*z|&}D`|*v<(*-grG;hBAGKcx z{A#su`8N?iJh-g3Lhroy4POFkrnnzUhhcT8Qo8$_c9EM#`&*ayH?J?HJS|eE4=hZ5 zv}^tH+cPGXckk?nht>H{YadLdg3ZXZ1>HT#p~#w`ksF2J|2pSPDkplZz}2PqUq{0~ zp6-cwYpdLEzs({TaY_e2?~EUc>2EBhC4p!Om@v65Be(~)5X*s9VlHkSrzov|K`-uD1l z_JVCmDfjJmc53^@(FOd|$*;>ckiUM&0ph?%p?=c)#yVl9U(+{~nQt4=y%cJMO}Clq zWoTMpM%`g1*9XYyR2X1#oXj)YvElHej)J|x`Cq38x5&}`7TP&}3?7l2FSbkjk)f6) zYw00c)E@7}9p&AVz*HvsEF2?UX#pzjJ>@jN|1SMEd-h)k*f#yg*!}+Ei+WETvhZZ= zdh5jxJ}hT{?Nr*h^88x8!S!qFXS!4Z-UN|og{KkoK_a7$Ru-v2x)2iwuynDvwoOt%@^-Exn=lk>ZE58`vnXRn7ljK1y@F1P#yokorY^z+Oy-V zM`=%9{LNYTyKeibCTeppChEUgu+$eGCV6bu^|zi3;_;vSTRp46{>dcM?tI2b`ND79 z%9V|uzoS(^r+7SA4R8X%(=_s_74=~E`qbcj=*6gHncT#TlEAMc+qU9gul>(Uh@6al z1fJVp`y_H~o$gqh$hGfc>G2_XpJw`@Ogi|EtV>z4wgWKpURqyILVwTcz>DkYC*{T@ z+J)|^8~^*yR^V!}Z>XNi#o-rV@}I5?KX|8czN-#%Egt@3`x5k`8lp1^UZ>)&hVBR1agTPoE|xgtf|>ojMlS;27h9ElAjM4=nJKvy?8b zpSK8069IW*u1vUk3ioc7KriWyetyqougd_(j4Lg8`IxUnjR?GPG5;VCutc$xts$wi zYfbAKXK-p2nGapr8GC?C`ZlKHbZyA(oUPWZfj=AhS?P|oY`H_p819an(-;;$zlxQx zhjy8Z#$jsHoUR{_zYy#6KCTkG)KBosRH*K%&Ir|e=~ozkBwLfE=Va}ld+BY$I_SOG zU!~sF%rnZ5Q_Flu><07~N2T&w!{FG)<~l)XkHqeA=>m(GTImy~84Jl)xTM7?#;9Se zN;IOq;7+8DBAI2FK_Dzen_}8zVy`Wep@I~yKC%Es^5M4h2$se!ea7O?6sV|aC><<>w_!&QmE&Si7;sn%1d`mD`4TlLaI z$wQU;%)*RfOZyp^l=ZFY4RIrgR=o3h|7NX)e)-x}5x<)e+9!t(aU)Mj&f4ehq zV+kZn|KB%m@|oLrmWhQuJxT{;uA2F7NdW?6K7xu`^2`H2U~tB?nwrX$x8zqF{rU{# zj;~J^emAR$7a$_Dng9N{f^-U85_#KqIFw^m5C2ahuA_}bbjP76r2%MHfAeNkg+uwe zSCd}r6ZY6da;ipLxIRW|mg$scbLm<`y~>9wM;553@u*0C&TuyicJ0U-B|)_-hcz#! za##gaqwn=fiJ7m;ySc2n1bBFemYczTxcG%idEFCl|H++!H-;@#)r^Hk0vd+U?YCat>915c|5?dxvb{*OUs^f#$}Q&l zlk5Bs<8wT>v<#OBCYPLsgx--@4K^rhw9#b07Bhucts@AU0L?zp?GBo4n!}Wa9!|W; zvdWRBn;28=lS`&)PAEIlIU?#=(st;b!Rp_+ZwL%yk^)`dE>Z5tVkLDY%w)tCGyH5f>LH zPnCQ6=5En;%D&fXrp3}4-|JCR-{kYDB25$bE}ATx&#(6jIj`|eRgS3HOlLX$1_cv- zq=zwzSQjG$r8TrDDCFFV${^-*U;T4-$(UnnTZ2-HL#G5si#( z;hw3A+OKthIqD8eY;DC2{C>sd{0aQTuSw<9e3aqSsGAB&$mXljJy3|GWO*%81v9Rx zN{=EMtO%D4H4=uT*|MgbP5jXRBe=+>N2i?wy8h?6;myIzkT9&&CK4OK5)M0!CaKu4 z8+f_gznHXe8&r?cX>{a&FW)~qaeXi$+Ts)AP(bM4LA{7jD(PPyc9(_VzkXH>s`F;0__>3X1i;Up$r<$n&Z2nKSt zcY^{OZ^~pmt~&DjH5UE3kY}gMkD?3ji}dfO=-FE&^8)4;j3=0a(5RG}u&S(#MnB#{ zyKvzk%+zQfi6^DYR5_QzHX7yE@m%+cY^o~F?wED9ve_$$qYhVT5iw7LZKVa3e-ZZI zu5ten-Ysf05de-edZ07`j2eW9$Xe-&@IAC> zQi^NKdj8dKt*<^sDZF6OIiUQCOcX`Nso?m<1xeoca9PF6ge-SwU%1s&@=Ks*=D0f* znY`^QRv!11=;}9OyP7=tYCOzncG39Sl$jBEfGo~>W836LUu<50^@i}Z-xD{C4nLqG z?O;E79|fB#xK*7nQ}XHs!6p(yNSq+f51D3R5>g0Nuxd3!W*diLK#WE$P9*2<>=0)K zAf@lm6J6lhiz6#3$XUQW)wEqq`QX4!=3S#$3Q{ttT;m;DQv$3j`KSpbtJ##R=?>Pq zgV{KSAbuoh_27fkl-r8VOY$2G6qbP61*r9kkRp&FTGZQ>C9_TQ4*wYQD-|Al4A8dF zzS{HGCqCbRo<<@PC?WASQ*rdqR|Q%UJVqCKUG5#V5d)K;KLhV=E+V9CKvEc@q}OCn z@K}$F*|S4-tPLm(3wi<{6z?n+tf8ootzJ71@)$7C8w=00C`c^B`*RAik`67WFKe;# zU_@RV&Pgk-$cDSB91U0&)e7_xVi*?hFZ{e5X(H{~l(JfBk>1-*|llTc&AL&VnegF#0FL`7%O z)2G3fhTfu&yOzs(%>;I=2ja|dQG)>olfhn8>0RqEvZ%HaK#+&3K}*wY^4D@3(jZZJ z4(P)Gkr+1)hTb&#@pI%bo;8XNEd>A{qR&7o$h=g!QmP_tP>Q&=_HB^q)KXVsiL}};ss!Z)dl(lS-5S1NI2F2fSSXgwATe} zsU#l^$lktUwMJ)G4p0ep#7)$M|6?dB4|3`g?fXi&=LK4RvrYQK4&Z@Cihw9C=}688 zPGT}KxQl4{b%oJEsXmaxQq~c?PUlow|?KG37?>^PpYhT!Mq$eTfsFBIcGr5?v8Y=Bk+MM5IV(8}pmb}X=E1~+ z1Q1XEBvOFFQA8$1ZjnOioC5WJY!zoD1|={c$+$tNjjUI2kmuojC}7CKY*3(_!RyB0 zMgT+k7${Z7_z97t1SGRNN!ehC?gGsX$FlSWU;iEtI|1f?-?E3YM72N9`&rNQMz-wB zKZ54sdWnj7TwLNvue+#@-(ay<#%WJ8s6$&pp`NH9A|R(o4dW7@*QmATP;M z+)!ytZKBhV90nv`NmMEiQ&t@!Hr>~>F&1%QQEy^AKis@9j)ytdlM>0SaR4?R$3dpr z$9u2}VkO*3um0JP;<_E=Bg<;C^I!IsfER(+f`TvrqGc%~^LNn`jHx2xW~s0A)QA{9 z=Qsu4cs-~2ty>f5X1E@)`OkKclg2INBXNk<`Q_eM% z_aC0egn`bNePKqCiKCisT4PN{aH9kfP19!G!C(?`9Qx+bQn1BhMc8MG)b`NC)5yH# z-N{Miz4`qM{~jK>h~CT`DfYY9wQqes6yBi>=*Sg*?3n7NPMp0g7okX>!zKSv20(+9 zdM`I?m<%ap1LZZ}srPPrUjO>5r1?1ak!C0U>1Du&R6MMbF67JrMP&=bZ3{RM<&XEO z+88T8Lsp49s@tF%C1pwH9YF^Q!i2z$XWW)&eBfne*Hnd)$WW73XgD1j1%TJn#lfbH z;h@G-?LyVxz@2%4c~#VxKIPr5Pz$ikt9Q!mJ+16RkP@E{`$T9$u4mj%78d+dDt}swN(* zmZea3c@UnDhmpy!Qh-SBO=X^v|0xft@q`O+d_DcS4kZE90!X5H8v;+H9!)eha=?rxmP+4|JNw@Tj3#*u>s*^p|6w1Q159@~Q3ED5ME(!Dg9f6P4-pl8pK$nGgy|F<6^{gf83SJDge zJ{Mz%8k!e=X*mVm@42!bOjGB+A;onu1G^FRi}ERWE#KezbMXqIj0dFMFeXq+go+tk zVB26Zm!)yW66L_kC6N5YA!tH#Ar-7q{%szWJi_Fs*>rq#jkSHG9rjl+F+;Ob`<;gug(8WmX(P^n`RYi#t zFU4GYrdO`>;o4Q{?}(5z4o3Jw^%wXIr8w>st_Vp<`R6Ky~I znuE+$pinD`YyvNUsNVYX%5~kt>k6fp73S?!)Dg+Xtpr|Q?J|9qD082ZCSvyaSb-(b z=$u-v%D(*6;JT%c{RN;9?D5EDEuQ+=Q*33z(2C#^f(zd&YMXylB z1fG|F5EkyGh;;Jb4dE4T`cHh9Ww-7C)qdsMbG^O?XKuxBIzI&kkR;cMmFUK$Ya7hEJu60zfzqzn+rLAAT4$2cQsOP(ZWq!KE;05Fb zQxNqcV*4KvO%3TrKyD5Siie@}k1mII-)Ea7FZ-a1Em3GgNpAcy4hX z$@k!D+BFN<-M)K<@4h%a^*RNShd^?6q`3iVf8LtnMhj{6FU!oyTm$vzx4*nWW1xDd z6o&zKLq_sPf?B>VE_E0wZY%`;%`SCHG*e0%1jz&q`#JomRf3>1#NSr>=RM_7 z;81&B>c!C|Qx_4`s7^ft2;C*p0Rx2y_c@C*N|v{6wk5jm#eT z>b!@q^kWO0ZvgUBB?~rBe`4{qgvLZY3pXC{cAe|njNAPjeN6LE?wNi1dagd(?+t$A z(boIf8Z)}dr9b5*xA^Tv-oCE)j%$D*OV>NMF3j2}azzA_~94igVsCEuhv zmMO<~Dl|Qhsn>N)mngERHj%vTK+HfEW2%w-Wt28Sk%&VpuV`Dj`{w;yenUCkQ%ZTc zXY<3ImalF%-|~^^nK=LP+V8!Ek2io^Zm(3&vbE^sB@{sTG#8fkbX~m4p5HHs^pEBJ zdcBZVXo}Lq_MI8W@HnRmsIO1!k6ZlaAilDAoPATKb~g85f}R_YI>l5p+Pg*(Qtw@K z8>&AaU~2NLW-{LoCQ+SG@=ly6LfjE=ssEELUsGD`c0#oAe=c)9pGuU!ek{S(5V5!V z_TsJ6+RA{UZz<{Pe=U@XiuE)9Gf+LivsQQfs7wI3Qq09Ren)~^J{`y@f`qG; zGeVslKDPLOYBY076O^ErzED$m>|4VO@s zvEi`B95eZ0Do0(dY}RBpb7&*)ZZ987f)D|+L!xYijC)>MPj0Q4;12JL`$Bx#dK0N= zJ^(~kmjb5@SY=?}UuZyrTUG?|w?%Fgvi5_m=Rx)Ie#4x2*2!nMC-)9R3X5)s+q${x-7 zYpV*8j<|G1sY=9P!_mdXt%l5hib&Dsy9{*I+eNf*u{7+RQ(%2(IoFD#h3o0hIC*-^ zs|rJC*GFdz@X(A8$;cTyu+-~xu+XyKE#5a(TuOCW!kx#gMA&`i0e_1KyY?ng&rV?A zXP0U(VIzFId%;5cXIsIZ$^z^nHqMG`ILMLBqiBuSyBeZc6soW8Qs&nfVe%dG|6p`h4Uv^?(-TSS8d*%*4`h5;Zv|t*OIX0d`hE7(qT*HFIU;9sW2#bP{Psi2MAK(#8JS z1so#0EI0G2heWofPD8=%zUkG6#;QA%-o$|9ZBvy#ZJL)Qh5jO%foP9R{t(6s)?+fX z2<>eZ@y+I+t%sshnk3sYL;oA&ZR!OpxV~X?p**pp5l|5h@17V6=bGqQh zrJJpevUi9?F))TiIXX`=hf3pZ@2+blYHmjuv7j0+h9slXfSZWs=wqj zlNf+R_<{r_kUpCrjeKO?MdJ30yoc3vr(w9VG6DL}Mez|%r?}q1aIx8qv}|Lo z*=)2`6;A>jtyonaHHy-$>hq95|7-0ttJ3bZ(GB`sPu!N;xlhWZ@H6vPaYTvvQyKUH z{2m_}+$D2ZNl)yi%8TqvD%#R3>2j{z?94ddzzX|Q07vjN`(@QUS*)?eq@11Ik3=$? z!4Ay4Nx<|ACOq=_yEVss^6&03Hq+2Q;OakoB=#%KJ0q&2-4ctv5<5wXoD4OQf{0#4 zoSw2TFKI{zWybXxVVCN^o4xMqOh}ovemb6|hp0l#SUueis1x&mF(9Pj-^`i z1~a4-Kg9&^b3}pI)rVPOHu9N(R%dK0tdTYHc_IRPzCJJ~l>}UrWpjSbMvCSOQIigv z=DXC!o}g-6U)e?ssBV>3sKyMZw@J;R!M{`MnT$PvOVb|TMX6t5^qm`e8b8}nA|Xaz9Nm{l2R zUbKy5;RCeuY)y-#H7sL&&+stf!_!g9z*kPJeV7s6`PSa=2Raq(eN7WuK@7IgYWM4S z*i$H5%OKi?2IB)nBm&&kck{l><$#)|cVMuV6(|Fv<)R^dzC-%TRD#gUq=$G|NhPcv z#Kz_;VBE;zg#kb@05V$lMl3M65)%p1_16qa^pU=E{EF+eOv`|Evi%XsvS^ z9D^h+e!SMXAM8;Dtl~B9eldBIc#~4PM+Jt{EO3^O&c#R4<*$S&S3{InK;&5HZ4zfB zm(zyb{Oy|vgsJ|Kxln_;pqLDEzekwb^tapb@6$`8BO2CSn#pk#m&rFG8kBJZsuU^} zy^(_k6!KUR(2L>PUR8Y-zz^G;_V46TpmS(|y8UX6^$8lTKtz3JQHJow^4#Qy)vyr@ zJ*uCh-P=6aa^RX8rpn4;=_zb07VwhO706t0E47lXmClaWbS4y;Sk9Svx3ebavt@!f z)prOw=V025TLzhGs+EwqS=Z<;2noOfA^{^wbD6W;xjdFY%AcZKOi>YB%3PqPh$G%w zcw0h@mhIlt>Cs#qjdJ1-l89TH-JSg6vfSLSJMv*W>z1Z3S{wLrBd3o7OXES3q z+I{4Lbevxp4n^+C zP2+)P#nQ~2lzk`b*{HMsvLkBDV5(I}Szn%{DuHx$fCm{8qh%h!3ngIy*#OoeG ziihU|;3b%SNZiB(8M_z zPdX%O4#H&e@>QOX25>Etxen>vfAANPwU##tmK_Jte*gjo5?snuNbexK8y~Z$8#;? zxeiw>{*bx-j=2xXe}We-KbVe&`tl=uIR%Urn(df5wS=7G^eUSDl~vmjE)3f7$%LB! z;L*d@Mid*6n+W~(PdOnp`0D$Ip>OzQeWbaI{5Zg05yNmKxGMVvCaLkK%Rjk$ndIwV z_!UI#=<}nHi07>MT<8-FJ5kvq9dM(Dto~b@JxDFuc#hrc5|u*7o;@-agi!3476qnB4}R57XxMP09w4InG3S0(qZLz&Ls?M92pvLr6i;h>O+oy3qW^I znHC*htSXFN0|@K_I7R%^AE7e}^vaA`uK2>Pz0h$DTIXHHo+ME0BpLqS@d%zOls41H zTg6X*%>V8u*AEAWFZcO%87Pjb^v<^^o^QNj(_fs8`Ak-;a52FAO4!!rd$$1hh)!6; z7~i8&=zmkb&ClWOIJQb6453RQ6cwCY4shY7@Lr)@nHt)cnclH@)6IIm2+wU$h1Mr< zf&eTgZ)qVbG+R9=3D2B^LbCy_)Q)@^0?{2637rDtmWcpjRpFo9G zd|82hgVwr178F_cOGK*9K8JxJZu6@8>H##+pmv=Jb?$-0ShgTrKj2GAN*REG0K~qO zuZzfH!Cav5h{>C_P$Q4701vOoHw{L4I>7%dKrbTsr4mik$*m7lU}QS=`}`3hAW*=FP%JE^rwe%M!o!t?I;*^5^GeS$e(GpKRa&cZ|Zl<6RXI| z{Y)r4ZyhzuiIk=EJ?-xM&zCQW!eOFvi6tTT@0C;dA3>g9?^^8(`MhU*&9MX1SK-G$ zp=el1Py+0QP~+F7A`+lm9;V^-?EoKju|;c<>}R)Z)qA zC%j%#eTLNr&5C^TLB0Kd#&@wO*#l(XPtv>j$1{8tECfHLefamE72iYPY_H(XV5j&^ zO-FU=(R+D2Y}DI}M|~uJ>GzlT{}lL6R}HN^duf(5leWS3Q2tO5o?8j4AaNUc7wNrwxpVpS=YzEF+#+uZ-ekOkwu&?{8r4|YDdR6}v zZ``7fXJPK$#c(pUfWb%(K6;!lxg-QXgg%M$e$V)Q!npb!lGF*gOyc~*#6n{LBn;~= z0QE35@k4AP(5%OrIxAN(>pN6#D9NV`{r)cE#S5(c9G8Uu07hZUnrw_W0KIps{8qh5ess5Xuag*N1C+=PKA;58}m$`yVu3ZKL(=yc%Y?+-F_*Z1Bo%ZQdwTPL0; z{Ds5-xLXxowOgZG71lia*G|Mn{0V%^m+U+Ut{!P0a17J|4}Kb`1bLlC1Ud-)lce5Aq68}Lyi2ax6OTgZrXrj z`N{gf3>eq(g!u8mfOq)6iF;FKQ}Yi@iU0ye3_gkkVB+as)klWs`;S%k;tWMPZGS=k z(D?@+{~gk^JvI9GT>R9!?%}mS3ws<8wUKB0VYb<}q8xowcP*M(B^rIU|NV;<5_J}x zaLw0m`3I1CUPX>T<8Z7F7(+>#@F9Gw0~jD_o7?!$ZGiFo9DHjWoCTH5uZT~_5~$dW zLY#dn3_jDAb*oI{NxmX15NMu9q9^@cdxOi*Av`Q6NI^0YvW`i|>7c-|F>IoNG}}!j zI)F#1FEM`gsF9st6;%3MRXgHcYq)1k@AM1)N8WM&@hZ69x-~qI^!LvRyKd_WgT^jw zl&#yg_B>no%ykaE_KmS31<%|hxx%eixAZTx^S}#(Eeo)=g*1{`26~8E)6|Xeh4{ zY&Dt3$pDgaS(X6I7Gc*sM*s+T(TScBwSlex{`!>abngM)1+S^SL3Wjn;TZQE?d5d; zT>bq~|2(5p7?xDxwpJEtCiGhnTdy=$6MC1^5?k0yF@sBGD;B0l4RT7RW61vs%*B#r zi5b$Ro!`e}CM5iA?j$fqvoIWLzIUx`HK(UQ@1)xh6;_(qd*+|2bWjLpY~KXA|N9f_ z)CTWN5$8R-QgrhMSNKteTzZQMmDsv6l2s02dHI3$|q1m zWDf#~R9ba1-%2U+v9uJ42H&$$9d5JcCrA%pJ&{NXsWXJczu|Ura7^KKv61lQbtx4x z9cBIYn<)3FB88eJ-z^>Xh@YvT%AFGn(PzBexzDek`@z7O-vJF!yy`Q(3Wa^>NE8B!_#2x)!I zRh)_2#!~VWxNZKUOKLI5>|lbTOT8cOLOY9bNq&B+CW8r*1@Xw!P7$dbRZ=7Yo^fic zSWz&C1j-V|5Ev}vK3!pLxU)D04!|TADH{=kGies4DRN87G7@hX96Z z81Slq`OoJ#zSe|-l>`ZPJ1;7d%w$W>)1ms?6q^?zIbtu(o|Apw=M2~Y@A5|VZ zKZL2!$tIvFem+&l1eEUK#E{cR4nj+x$l|x z`Sg5wX3p79`(fwWo!M*m{GG?al!LxtbK>IF0R8BkQTjmJlB7lNL&sN~cAm=FbQ0wl zIz3!}NarU}5!26>u|o6W6_&JmawWm@bhlv%m;p&=L9B>IzIaPifBc;|aZTFNL+oYR zqi%rhW4cW0BZ!{Q(+XWo9+2KQO48p~!E_&<&38gh(Bu#*az3oFdlNpaAl;NE7w)B= zp>#cb^Pc|i!YNHJt(4AFgesv+SF2VcQ5Pq~v^Yl}aQ-KM3U-AlKeHcQXT@0kk1ke~ zZeOemr_FrMl_;!@Un)){TPBFd34VL6Eq%$!@+9vY7Uq{YQcAIU+VjQw*k{9%9TU|f zb}!%HVI@nM$`D6r6-3Q&f%!febZJro>PsE4sg^L;ME0Z80k!vv5g&F{5h`2v*8Z-G zjo7+Mb~U=CJ$T(^(D5@{ro~(DvXEepI;{x-kQ*R%24ndIeZ@-m;UmOAR5 zVPus;oIvQ}UBNz)M<<~5y+o=AmRe^T#pFno5{QuSu!Z&xR+BlhbZPFx6%Z;Rb`&f|js5WBG4MZ(21v&Tkk7vv7CVTLXLS!{qv*U48-lj# z#Ijc5TKKM1(8(yjtjCA2addFBTT4xV!&5*S=zes9{h-hz^~4Jc+F}~VAm2}cX$^EK z+VrTc@$uP#pG_Dmn+A7#>-}wyc70Z#AukZnAz9Y$dWpN|pm5>|rx?9Blh;nFj$H}d za4yrnaXpUp5oMYBr4`Dc>aQ!aO(?EAx_jki#>392!2H1#4~_h>u**D<0_VPSEy0NE zR-{cP@zzN=ZBlUDeLN6}7pa!r%}+26HnYg!f^;W^KR~qs5j%>FVRi~Zx5=IPSHD^PlsGws+mE{M&ZJw&hFic*bz>M;x?}T}y6l8} zxK~s^KcyYGqp3bD$IPVFu9YYd_ulA_;A1#V7?n4WlKd2_n4eS$X^jH1imi#W!IeKa*r& z+{CYS=(VNDlXBUIzl6u0C6yj7-R1c?jkH@;soc*z(%Fo$Tt2lr6@TX66gU0lO3ECK;bK63Kr8%OR%5D7! z*S5>(vS|c0Ns*~mjwNvpMca&jc9=mi4=b#hKN^4=zJtnj-5@c{Rba3=h1Q(P7tSuI z2>_!m(PBWZ0Tif8leL&@s`D(XYoBE5RR9yay8i~vsTU}nN_VRxzBejusUy0Vg7B`= z1YaOl@d=*{)3-Y~Q1jTPri4hv04lA4qk>l7)yVBn@CqEf0f49w&`J^0h{D1Wu`apP zdu+;5tyF*frhcfk)S>XDfbw)Ii$OUFw*TVXgp|mTVse_n zNLnuyVe&f1Fh8vX1OKaIROpp%7 zRTR9E3a@N>S``IL1Y8Zn!NNm$Dlh?%>L;?6w)occ$SwV!pAuU8=wjAcRIODP97K>DF^}AX|7&SMbE3!{9uJW_?({gglAET_DO|f4hi>A<+zEqMlbUB+ap;6 zT-HA=Ue-R^XV#2dD!ge--XLQVt*W=Gur`y9SPsDf*ChW!o|d*nPKUx`C7^rxn6{Ee z&|;l#gmQV1N+)NiqED=}T?JB*8?+X#B_3GnqF}BnZwhl{>AE0`b1HQOjeRK*(P+~mAqLe!? zhVN@k7OT?!T&>-I_J%@Nf~FrqKfhp;KgS|VUE$_`5aq6L1p0Xe`Keb^Z3qq;N`>m% z(p?^@GaR7%X$YTnOnl2#zhDfv*i$-tN9Vmn_dzvEr}?g@09cJATFT5v+X8qnM;ji4 zKFXAU1@T^>vp3{a&!STl2f?2OA@)%Ly6dz!5-28@C96#Azi|+T8Ei@tV|xiwqd`A^qv<5JV7@8*TR`4kQ+Whyr+1n=gn8MzyUb+%1@iR(V8=#Y$_$aq~lq zHp__Cr073<5Xu{^EBSVA4J0*FBQbJyzR2G0{DB&^?3bnU(B$Ytpme*Yhr==Y4I@%0$nHgPt`+ z?}lXWCzIZ7zuwO&y?eF22NS)A2fberZ;mD3d^dUX!|%|ff>62XK1>wu6-PJeJoP_mkK%F z5&I&Jk(^EJmwEbyzx2!gW0&e?Zv&ttBl|I_11jAB`R;+Ms{_(?16q;fGYZ4yZuUtk zePrK&_T(Uw)Bw*vl<}7VGt(iE)PVRZyNUCV)4w^S6bk^dO!%Xm=A zIAIm|(trF~_jqA9ASsd-<=@{AxS+nG+DM~4|0eqCMiErxn>zC4RVe(+sMGpH!s-AS zKRFgj%Rw1$tef)CooF!~ZHq+2)eSljTkHOz-Vwoqc!rq5L3HZ${^T^Fd$K-ta93(t zt#JAm75OxE8uew`0XNX!J+@*>S$RA4p}Wr=KhyE=eA2>y)BrzS|8F!$YL@lk*qc;2 z-t{qhX~uQ{iuumi3<>DfJqx}wXLD=3yl`%fG%i;-_3R%~9K(P^&RLkwUb!)WsP^0S9sQ#U?w(e2csnJQ&^k1G?W$6W_`mvv>6FG%oqttmTdddsr ztS=cN1@$ro( zA{rd3^h<;uja{CW=~by1X^wW%bUgk0Poql@`xfue4`!yl&#!-9F!jFZ@O?4;a*6bE znb~s1o#hv4%hmPEwNuOWhs%xhD=(#2TFh43&hM(rMU+J1!={a0^L%-T5y*gmF zI&^1sByDx9esyAMb?R_+hW^8>^oO@*9~SO>c$fC!ef@`(sSh6xKdjMz+>rkG$?W6y zosXZ>KJL|jJec};c=+)v{hGDZ7aPXB*1F$!s}VVu^^@N1}#Te>}KmLJ!?nr_=XnxmWUKc@{?cmB9dlRl_Bx$Y*j z1Lob}Lk`J2-|sa8V3Vuqv+wyfxBpHs-)=(sZc@W; z%Jgp9(QXE6FH>eO+kEdyz+P_pUVg(~!Sr6y(OxlXzeHyLV#2;6VE;w>es#ls?eu>A z(S9T9;HAt#i}^uYz(ITZ!Rv;DuIYoGqk}i7FMTp!2F$+<1$-Gv|1#F_Wn%iv)X|q2 z)Zwhm;f0BDA>i;``r-SA! zeEn|z^~cT6`@TRx6FUe1V8e?>lr$*efG0}t z0CZym9YdFyD}YH30Br)uVyOSqCZK*r;6OsM-=Hcq+$#oy@X~P&}<6z6%=l zO*V=uS^Ukwl~#Y9hBgqWkNbuxe$6e*sNnj&o%=-S+6j{u;6mi6xz@$E_RSD?qW`8{ z^xAi&l`f?eT8;revugmhrjxyWiKcBDm&P9v+$T&MG*{NxuU-G8ehm<`)@4R1HJ|x; zN4A{}3ov3h#r?+~bsazp09`9?`0s+ZFYxP8V>>JQ6oCWAMFSG91FYYi9)zDlsi#E# z_S`q@P)ez66d=OlH&f8>gsx- z&R>`qg$rfP;LlyrgFJGv*r&rHeQ%esO5^S!lTJ*F?7fW_D-u zw*(6IA(EL-`t#n?#@~GHTJlQ7d5P*an8YgUS%>%Oqmyu3N((1Kz&!}pQ}90l_yUF;<4^6_8T$=*wy554$@Hu?20|Su%rJEM3DNUn zGIHa&Zg<)0x`d6fl&z73t)94@y0Ek2Wt*$Q7Fc0(9bq%=%f>n)dWJ$+a}HH&c4Zqj z1uHHLjzh+fNkS7Xs)QC7$FC=lCa2jqT z4KFK<=qvFUUAZVeqpSR;szNpzmu#;IS!)Pg zR~NpnCS;*`+2We`g*ndhnz%Jq+)hi(L0jBW_o5`6bi|ysFF9$lJE$=_D5Gp;;BLZn zfxPfYZUlh`k;aeAzsx`qW6YOjNmA#&Yb@ezD(Pt=;cg`EX81qlZX|ijM8@MnHfOHn zZl&g7kG<`rd)r0V)m_WgQ^m~-lE|=EyG7K%S$59Tj;qzZ$&U$V;EP}1HmG^LQa52PM~(~ zJ-yt!26=b&p9bj@@0w;@Nb5qapGM%GMVLR2FeXJBmOj?6h%tN-W8Cn_yeZPM;jwjf zyhBxzb5*KyZJI-4rd><6ed|;Ej(od;iW`%Sx29hD&9q1KSK`}?0$x7D*XD)fr-vmG zVq#VKDZ|E?SQ(KPeBWARV- z$Fsrhv(de?$xb~to-(bfaI-lo>7maOrj3$vT(lu3&5emy^(*aoB{*<1fkVm7wR4N? zrW9aA&(aS6Xq^1XHad3T$1S{2)!P3!gt=10mreDtRL1+8dHF7M1-+rrvS!ehk53{aWF2?=QUD)JC>v&TM((wDa#T>Zb|*afdvNbKE}j0qEHX&vlTVJipe4 z#)Vl?Me6&MEONvbMU}l%_JLV%+OHpn;p6C9qpzR^AFjxt>B#KnB#$Y$GgN7Dh zrNJC~A?C-5q7+O#24|Rb`Mi%)$rnS^L8()5P*4%lgIE9X^_GVTNJCsCheN4V2Y@`Y zy6%f1h!G*K@}%fs5JA*cyFawdfIc(o5+xSA7Y*0Csj8yO{}HXo2HG<#9ngD!=w|W6 z`jPi;N#f-{I3C&|V1l;SD9}*rc9q5GjegAf2q)cpkx5K`jTSvo=e{6><2G!UPS{76 zYpnJ>(@^L@I0t7rQQsz3HYwjN|4C9|idOPVQ?E>Rs{EL+)dV&NgQb&x?bxratM&ym zoCP@~fl%D3V>8#zBfUU@G{2b}u4P9CC0>0)5+JJ3_xn)z0gEl)0jxLP~0b8_M&QAnuF=!CF{Jqr-O2v67is9esEfkagNvWsrp+8ppTstD~ z;K*)^f9%^1CULC#2>l6;`>a4CJ7e93MR|P#P~Ml=}Aw& zLknEQg1-(dV%ffD{5?)mi<*trIA@IIU3ZnsS&tSzL9^M_mGQD{q1KvQdbe3qL1TqaoVF^QLjEN&5E5r!ygYr2WNaMmAyV`aG3v%lU6%ilzKLVhOZRQC| z-5b&&_JhJq$H=Oa3XI8ayi#4XfR#E})b=>JbfKTEy#p-MT9taJ^eG|{?aZksH+<}N zn8wJcjZP+Cr1gjS&xl$Ko1Rx7)L7uPrRb3J5|qF$Kx6m(R7==82PpJ}BQyx!tJSpYX5~9l;g%9y8YFOP}rXZCWgq{Q!-dS5=UYsTvdvAk>%zyFqX z&EuAi<0eQtDotR;*H&YdGq(0L_BnE?Pi;0j&d`;awLrNK@^m&uN{mU+PE3sN%f(>8 z`bK7ktG5m()FR1z-i?F4&J|iqROPr*5p3x1?({=lMRD<^xY?eu-_QPM4vU_|8+#tI z6Yr*u*~Fz!TZpCn;ov2Yl|;4f5}q@Aq!x|oI*shGGg1uydh+%< zM6H92e1wl;m3M=L3K?NSob}hiCFYG~eo zZj((l5P6!_J1tLcMj2U(8_OkA9j>#!N_-~7;-+8odec|eWB`RTO}W7_cn8T5!=B}a zP*@aVx(cxJh2M=0@QE5#1q`%!2qKjFr|#V5hB1~?W^R5dVHn{^d;w;{tf*h&{en$F z-EWE}oB;3MecrOQ9`xDQ$;sXKl!jOAIN7d_#>lXS5S1NM!Fx)A?#g6!Zg-%~Q-e~= z60eGB$|YN_($o|f(%!KtNv@p@XDeLqN41huZg^}6sBt7RC~Kw0v&XVsv_5MFJkU08 zp2>O^>B-y$O7ow@LL+%cS$t?4d@C2RK2ZG}Q z@rr?hDelBuobCeh+QE?^-oa?^ww+LEA~wC=caQ-jNDFfA18`2R*VByk3!>zc?t9~R z7AdCNQ@S=BNEe;Lmeq@?9EOr*})#K|b0-V${`9Uok${FDQC5 zZvqXYp^AAW39e}P!^;7eOTri!0n#|$qLBck9K5XE+AJhI5qsbGzR%fWc>S-y7Ch91 z!n9y1Eu%%Nj)xvBAcwKYZqblQ68$GKGLsBa#(Kyng2vy0@1YerN8MDH=z?(&$0o27 z3G9Fe+Y`YKWUw0%;)zD0OQ8E$24-Q9ao%mab?^;WntclDsEP0u^Y|F;#Z~^;T{%9( z4W2@Rl-z=3jX>D-5qY9aV)5=U#)QDuDAQl)G5|c02x}H`daoF50=Z%FHn0ho7{3&L z-U5Jolfjx;S{)3nuE2G}R~pmn$RUCIgCvh7ENU5xBH@I0D}(i7AVjp{yL%zV`ic}V zqA==0M;7Kl0z0pR-AM7CWa!p0IwA_ixPbaX0`lT$cuBy7R>ILb;p-D+c>^zxrPS#> zwn{S0j|7>og7}U?{#0;tGs?h@89s`kLxRyCmD6|b%52-GGivGI7LG=e&B}<#|7;U$ z1eA1a5)gAgBSJak4mThWN6iUjfOg6+6n)u!o;X(zwVIiLDkT43Y z6r)*9gnzo1Sw9k3C;&H6vh$-tO3T!RKY7A7Zo7~H^>|ni33W^+B)`xqn#YkipW#9= zZ*8+H!=6cM!Bf_=!l0C(k7P+XX0SKJx0l7(g=zO z4&PCM6SUxtLzL`{ zk^1Fh)+a;+a?;OGk#i*a^LG>^l>;&8iX6t%PvRh+BvLTeXCoGF-2%`3sc5BBVltFH zvIiNrf;_~8qK``sng~d2DbqY|x8lkVz_Vi|m7Ggu&8oGma`2Z)5MLZL1*3Oz1+M0M zfpUPAP|G^r7ic*qe%$eT9`(eI6K=X+uB-zUw}GlKEARZKBlJ}`as|?CRJ_}}6RT2L ziL2~W2|w6{4eUK@+%rs}Gz1zWf*d{f$!@QiP(Q{byEY}?;pu}oiGRl%7b#B{$&HuA zLaK20pXMRMsZ}P5(9|fHR$Jz#i1lbq5$kxhk39r40L>ah+hIUouxOXvtkONBd-t=3 z4QnO3nvq)P@J3jjUsLVd-*gQyH6K@KI)JX2==Q-jqbIDqsHx6g<@ulOi^eB3glHd6 zQ26r$X8YT!lIryw)8P1r&ce^l%B0QnPlB_gQ!*K5SkM|sf+Xuf!>E;Q0;t`g=etOZ-=fQnH2Yl?gbWJL8hz5CR!=L z6EQyOdwBt*_}gfRE0ECzOD7Rlqwp)M+~J;>PwEl5xvHQOWYL1@f@M&x2y$@cG04jn z(p*`~!=DxLd39PQff{dH2a;On_U-4xp&59WYf5dFf4vOnytKONK903Tj3)FU^g_ zxpy2gzw|5}ThNyTd(i^%Uw<4-vHr85!0xH13vZ>Ug*S(^2D_R_oIpazF!Qdu$2;8% zVMVc=tslnPl86nns!%*hRlHocez51`-=2*w2EPc@&I-d`%F}nQDCchCb`<^5MB_Vw zHxw%JfeF&&ie}72RU57&!Ni9IcwS1XupS81N+73_$j^NtmAa5yXvjJBGg_2HxKR~a z6c&0(O@*s_^uQ-jXm%LhE~%+y<}Y2zIxJjW!JE=*`p0m6e%^;yJH1I<}c+wbm)Kd{iKcyEeM|9;)`f1S;R zUGI|0Gbpf7{6O1xc@Mnt9a3$J%7n`wI89&IqxdITeyz&)&Y|Wk4pz_XkvQo6HrPUr z)DDheY?9#z3AIOjyGv}O_@jcIP}&+(UnYuIx}Q>)?!3e+(mX?Mb&~|+r^|8Gb9(w; z>PFPcUwSm<(g6EpM9~jjX|+iC@fYot$r*2r(y!DRf3s|04@_kl%Md(axk8t33gvqO z(HMkGCA)muD|@W}{Mxn`kqS!@s1Kw_yaF$W(-NC&^+uet8jUTfQsv?nb9gYPPAy4j92`l`%7q@KZQ)uO^_!l z{r6j2rjXs1sKK^Zs9w}Q>238L)I?L`4i2@2Mb%4BwLEM$%eJ;=M#Lb7Cvjz=B$zYz z^Gy(ZSJjTs#yGz#*8`8XL#H@Wz+BYV(C8VThaYZ?0{rSfXg`0P9chQZ5nhJVqpACt zAG!2)*W%m`YXAP@;fGc?$$I00xp$IKJY{>3ThH8Ytd<;@{h05+=Ao;t5C$K7m?-omP2 zLj2IxV&@6#;u8m^tF2DP6m|$#1lo}rTUnZ=6@Wf1>~l`s|6MmTZ@aH^zOM|mH1n`C zG%vc%6{v9u{x7dJm<&kzQDuHmXQTPqt-w<3hdtg^VREm~jc*pr+d7@xU>Gs$tNF^q zq+Vmy>%6ETg$#J`qw~L-b?5F^K?>;~ml(c;EzhX$a`kQyY9cx*5v^>9RCAvU8PX&< z`#u?#Oe}j(`#iR%ZlGvnWNbw4Xs^;50?y2}T>^h=+HWvNd)-h$zuEugKhyO5`05CR zEUf0+1Y7$}hjfKI@1IBg_i^jP$HRd!h$j*HXW?Typgvxt9=WbvqGvM32c0-KWZF%b zQ&@WRbnL0d_XWeW?(SOY$R~fdpQ-!23Z=k8dK(XJdak)2eM&r1J)Dd+-_>Zn-c)Jsr2jsyq3}aP8ZP<2Ka-zv%Py?x>!X1GC=3UrBlhVZF8?Is zpGma>5V=p`rRPlw>AlEvUwZcCXXocdyZ`8H&Hjes3z3D?(2QS|ED-ngi-yxLS>Jm< zQ%4j1Pmiva$q7C z#@?2xJrK~_&#|~AVS{w5Hhz)`>?iPXs(UE=vDFbdtt#Y|BrGmHOXnlN35;x4{NLqC zD|iLm=y|Mn{rSHK&1^8nLwwUMhB8f zTHAyAwhC8fShCM@kA*Kf6#r=a)OSPYuvT8%J@_-DaNKjWuk%7r#f!}6mi5MsHy#bx zNvriJw((dvwJYm{ELXoMo;32}eUxkr7cW1reo_5`^lbb^O{j4^=k0(E2{s#LPB05j zIbS5-bF^PSM}6M+puT;FrdCgv>PVZRbo%W;RuOV9mY(sQ z+DIhVquEHbI8NSJ{6*wky3!vB5OS>paEV@Zo?Mn`z~wN=xWgATp<>;7v60iCr%uot zYWJNtFn^Vo5X*_VEObxZ@FGOW3~>&x&W^>03(p!LRj*&VzLT87VrA$Sm1FVI9m}%Q zgg|rGPO6MxX*oHbSVMS`#x-}tJ1ZA#C7p-a9NkMobj$-n2yCAE-JbcaOLtB5bRC0_ z_4LiVzhMSxCowrY@hjEVIr=qzFm1k6z4gi|@D2E?bI^#0ojj+H`lSikZa`V8 z{B&qpx+)bLz@oRrHI!rR>ZZV`J`c!CE7-L@%EmD*w2%yV9Q-nM1y#gwxm5LzOtqa5 z4xD=KTWgumhA)Hl%zi`;NnOte+RR&|Y1e4Ih=C`I+BN!k+Bs#t)U&nmtQL9d6m*`Z zm(N(=7oWq-ZXs;XniO*Uk@>gfeGG4LMQpm)is3Cs-^QWE(dqQ@SI#d-E_eC2%;*=q zQYV4!+XwqkOH*WemCNWcYsR|uk?*!1Jn621*wgE4M|-$ISTqdF%(dM@86o4=!L#2T z|9F^kz9W4?=?7S@s=u~PHL>qJS9mXqTc{r4r#-XKsDAv^cto7kAO|f%%Hu?fZq#>* zaIR%15!jp}&-1hGbz3W?JRjXCXROeBAjkN^OA%?{^^R!Q$oUd7=lAsuG(sV4?(&<+ z?=uG19*Sg6fiflzLd#My9ZT*hGD~+prN5%;ZTB2`)Gg-%F7p{+Vi?nv3%Aa7g%}Hk z(QZlEiDAgga9t^X#s_$QKAvcp>UNS!XaoXm$C3=sGWQfyOHf^$%~%ku5|hyxk@rYU z4_-9~T}>^q$;xD{hh4Xo2+~WiE~$NvmS#05GfIwAs@pZoFtBpc`Mc@`Ri|vw2f2>? zYE2Yw8XHKtY3;%>q^vLh^w>XT6a?zmWqu~rPk(#Y?Cce}B2+F0SVkR`z(pt9)@>$w z;$yiM$$&{Y5-P1D#f)!JYshHOwZs+M&k>4Y)%(Is#Ow0zVr6yj5@V90EX-K)tKdTA zHZ(Lgs<;ttb~Xb4K_agzhiexSLyo_?8U>kqnYt#f!#Ucahq-fZfv}0{XDqGKlTWx9$f;{Uw6BMOD+A&72l^i=*H`$XnCvGTNo0_nChwPrMmFi{C?+-a)uMv zr~N1h<|O{nPe~oFc|6pjyi_y7e~6#%lHuem@YaK{!Hsj4F;&iS*T>JSgfE3P>FPCG zq}+@9dqhz$5J+}ot%hwG{w_9G9FVGqkE>YPXFNKI4LRQ((R58hJ^R@3RP?o=%vGX^ zv2cq7d#B!XJTzHf%$;rA{_=I#5;k=X9Ak3m&i9`n8^wl02PAP*sL+Ru2+vM&_P~0M z`bY4T$DQ!wGY~e(`9)Hc{AUFaL#k;n!}$bTyGL5y|Aa{o^QG|xzUG8 z_~1Rj6~ zK&iYsRBir1b%jG>;DJinP~B=d%tES6N_}H2X?NRNA8V7N7$%`K>pjI>otd53jmYnY zn;+*dbnX;Fo!Yu?9NlMk{_6&C-n2}%CTX*HcV}@nZ-IZt0FeP?5TC|N14{v+*ieD3 z%ZE*D5F8_ez-{slOGw|8X6j3(+d0C*vvfwGLQKRa4pt@6%4-@NrRULNH-}qN=lV@6 z{#7MJW9v{M-9Ou2O=8WxCZgW&e0#uA!z#*Cl6bC8=`Vjr(N`JGOs!MRzKp~KMA45X z#urt+=2Umx8dm%e>ill(`m2EZJ!-cl?B0(z2JaHu>e2x$TtZX+$PDJ`~y^d^Q0G1B#?`Aip^Sqt%seU`Vm?a3q$y=I8q49i=Z z6@PkYbblO(`qIiY-ZUiTy`AiIn80lJGCtidL@L~8VdT2f`a^{(qYYmxa-t)L@FMWG zqt0((%ig;UAw37qUYu4>g!CjFXW`a^L#|oeZ1uK(dRF8&f)_hRZ zUY%H+gu|FW^12>vp_s}{-|FY-kGwg3Zg%Gmw>h_AP_w;0ltI~2rOE<1S;WleQ6PYK z;3WUP^6^v0FEzm}=p#qu5=@BuXOp#J)#cjDLmPM5ESeiahI^D5(jV}=>xP7l>P?$l zb+=jmxeJy|G=nE^-=^QY8@uplvrZKgMagKX7xHoE^1kq&EAN@set+Dv7@dx4DSikN zuZoLzwt!psZ-%P>Gm>vM8fr70-LsQ0ZK?9KpK{<4C3r=i|9Epc`fKgK|JZYle&=P| zgX2SCr??EFH*-6Q)aJwAnN=(gD1TcE^DE^t+e9cR$0~F%?jST@6vVF7a*+m}T^YUN zFR9t543Y=L%8Io-=;KmcB6G`Wa7r16u z1wOe{|9ZLn?_9Z8H6M>4(o62V>c6{r(S4YZr8hDs%HeiaN zbw;tljG$lPeR}?yeMGGXvxD+Y1Sf2Kq0wcREX{)C)PhdUFB6(ZEA4_?fTM#bCTxOZ zDA@dzC?b_&Wf_kME*3Lo8?(Do6UEpPcR1Rfeb`k37P$PF#Up z^;##ypo6a`yMI7HH?*7agF>fp7pA|2_SWh(57S}KxUsyPv23c6(Q6hfF*3*l;1Ei< zvszZXT9&1Q(glnJ=k&1&kH~oEDv%8x1j+vVLn9YD@*pzzk#6eNttk3=<4Wtk%GJT_ zQ-cS=BlpL$%yU>BeG(l=afI%Y_){C>Gu3Kw5dTuX zOexUI$dSIL&TO8F0>d0*Qo_^VvC*8#{PM|hsR5~b2$P_6nyoP#WvuaDvF*hZtV0;H zVpMdGI+qnp4F<+`WtII6YP_Fh_Or9NiY0b?V2YJx!fbx9-jw}8kO5?As^6JizHCtb zJ55VD;niE1v0=2cJ0O9lOF+2m&`R&oC(TZEItD6$>$Keg2bQ&pTdzj@HKA{#!F=LK zQz_GdxRIUM9-`wU_MYib_T=Be>l5=cXTj>a_(I*&Jl6>DbDk?2svM;{w4h*4xV+fmAF1qeFIwANU%4IuwK zEW?^Q)8<_!VQes<43fi}U5KW%wt=trV*d0=>OA3I!&v_u$1Ue@%SX&EdsyhTS?g5r zn`S?8panN2#xb7)I%(%nRjoz?=0+xZY}um%B6DalOH-#LJ3PTk47{OLv-LYkm#iyZ zG{?XTk|*`m*2X4dh4sWG)JSpR__1);MbD5$FM_SN^jn__+oL(FV|PHWo7GhfoXQ7v zrOXVwylz)u#RyPb(ikLrN-~SQKw;mn34g6~{ubVb+G-MsoGym}X!@CQ!p;-mk zo;1{XI*%5xL<6EPZll0q?-zeLLI0r^gry)j8jS{CGK+WGO|}yQ+wJP&{4BY(Km+A- zS@a;uJDPRewo^vJ@wehUz&f673HcQc5s9|>^$E`w96ak6pZ{>UZ!Dz|g1AoZeu8*) zLcK&8?0)`F>67=R`eqJQd@RP^?m?TQwvshu{ayX`g#`;JcKR+3xnxe#vq+?6MgvpK zR^rY8mKBOe1rwG<^@)d?M?7NGilS5cfKtCv`pKJP zYn)#B8@<+TJAT(Fes8NqQCU>bBqU*~c{1gUvo!TM#ckccQm>qg#3B2v0`i zE1ZmPE!f_;$)yZ6O#wS>$5~}kT+(p2hJ2&lkE#uQ}CV2pC^_IGMf!y{G z`x}Y$;so79wc~oC`Dsj+hD%pg!4L3acwDDQuc}1Nd8|?*$ZKfzZ^fqPhc(IJ&7h6) z8dXN1X3{J#_*)FYp#$t-Pte@IPOme3 zq|tomf7iae1^{t{2(iB|^vwN4%58_B0n;^!8A6&FI8xGQqkj*S;w^ zZdH&|C|0m??uDYYaHUqQNng$r6}hJO5>L0ir#2m5ZHsG_pKZ8bQsau0BLJ0dmER!v zmcJeEV)6cz@v0*iZ<=cvKfB!XfgeM2DfFFIo2NGGmfzye9X{*T?Pyuds6!GVgQUmm zx}|^9i9m3BUG8MpI$_(kv^@pfoiH)G2i83wjkO@RI(Fo*B@s3!ae8MoKW#RzD)$bD zfb5@d6B?k9_4iKkyNTvZ6s;YP`!_@%*XIn z9~l|}@(slFjeu7>wNHHfE_=wJL9t()?w-@Kjz)7;Mc)f>i?y*oO5JMtZeej75b6oo zDe@wFL^1ObHdPHDu}R#X()EE=R7Ax zj!V8)<}UYtFEpCl$x#k>{6LBrzwsgG38kZnBKOu;(00$G9nG}V)3H&g^$v&rI)l(BSt^@9Uy^RuH+q##;Mh4Z_vV*h@qrq{pML#}*4BtMJy;2{ zC79!*dB{MXU4J&now$cLcX_o1H0VM-H@HSU){ZMetRRhsv=%smJ#2Nw7;+UoA*X!% z*YaWbAeVfog&ftOrD65cE9XdD5X+l{)=G!Z@y8s+sT$!KCmf&Teo2ajm1I2XR!VS)l)xo|ANAI6D#g-^y1R<> z2H%;I5jY+oEwjCFV0)90O@^{PIL?1^Y@8947pmhsNifSLfa1aKCIdFg>$ZlB-3@9& zc1kNTo4%EvZrr25TE5D-d1CY}S~U`NUCzYOhxTEiW#dhECSB0lPZ~M$pxpWe zk^^dREdYWI`g5N4z@+^_yG)~7gTBKk7%~cev}SbekC8o@;A9WhRgQBt0hg6@loVw0 z&SsJsh3Ebv%DZ1M*zOHNVgz6`g6J4Qz;EK`(2UQgSy#idp}(bz%Uu2|as7IaQ~ACJ z165!DJ0<>OXQ6#)@0QQI=(z5Cv2kGYi2@~WTJunX167bdns7tIng2ComD<(V^S3MA z1|cE89whuSNO(~9;3VQ#coIr1{o}9fQG)CKJ)WG%|yqCd2NxwCiuYet6t`^vDblLJj0r{yy_6jJDVw zg0+WqY@Js={mxAW78{JlwR&0LXw`6W40O*|Rkh7W(|S4HV?t-%>+}Ury{JVT$y6oO zeLnl>a@+`ghNaOVC^VTnv3gEH5tWLA@fYKzjvrl8n(WWK!5@&$MJ^H$MSpYcK? z1+Vl%#ar|5yS(0BjxA8Vv$^t~nV&+^;zUdPo`}tr8|TX3**_7Vud;k$S?~KpVzJJ# z{qEuU{trp}`kI?lok}Kbj;$?sw^b1b(o)WY`0W@%jdiVUEiO}gi`}A3KlB?u_|~v# zo~%m;CSbJ#kt;)d?Y}WQkdVQDEeem4*M;p?mn0A&o3{|TvSR_;rB7^an|W0|-wwOQ zLIR>Y_2OW_&DezXzH3ncM(sG*hfBUol+4nn^}BRl78z~HEV_D0`qh?0NpHo?YgvMH zttyevGVhv}7QThhKf4lgG-;H5`NQ--?O)$N7t2aT0pZF5(O|Anffzc84w7Ychfs>c zOAM6_d)~amI3x z2t}{mG5D2r&bU|-<^n~Ln0R+nyjC%8gp03;(ZxsE&vVY+-;a9kY*oRfORwgba=GNVQO>D_ z&tr1?538=a80qzC*B)?wt};f*GSL}VC|fBCXdvxL`1Y~%#MRH=(K+0V+K#)Y-rJLe zP;LBa^5ISo@l9w}Do}ESRY;>ujRA6&TB_4B!PtUNXx_D*V-@_BFzqbm2xq^-Y3@1O4Ym= zIKD62;~Jl&-a!*f3psK9fi3H}!Joimmiw9g58s>^wWug7w80G)0>iW0@^gwk`J@B2 z5)b*@mwWlKeD3Vc4@{fA!nhkeB?%a(!@adEqnSXmWhSdy% zUfEzhm`AGQavr}86C{fMdsWWqOIpDc_pM-V7;adq4Q6(p6%^|-YPw$~Bpla%O*)yN zY@ssYS`eqk=&+EJ#$-Cjn~U+udHVzvU-#%p5@YqF+U2i@Z1PD9R9N>Krm?I|vuNZY4fzTNn3~ z7A?0bu<}OH;3esVf6?CPfn8WmQ02R{ZdPi8VeEvBsGI05CQaGNjo*m;Meu6avc&-o z^IH5~@;Ro3kxrwXZFoDcsZt((SYKi zBBmW2{45Xr`mo@XR%Z$Sq2*=?YY^4X$_Bx^{!;;GXD;2Z{ftJv~GdYfh&O zX{K>hgG7^YbLbaZ7poxm+!~>~wE-|D$Yyg@mfzUL+U!jqGE{l6)ogdu*_D&wjM}ea zCTv>Bq!pwd(0|0up$!q;@Z-j|=Iuo{cTCAm<9xb?9OUH%QzNxCxO>llZ}^}D%vfg7 zRFi~aSzMZ+q-mvaP>oT1MBj6nmK|Z33{r!V(Okx-FnOyUjpv|ebZFo~#hyvkXuTRD zpZrB??~!klrw?nRj-kQ$5yKJ9K8)b0pGo2-E=qs<%M`lW#r)-ZI1l`)O#Llw@VlK5 zP@s60hhd691lvM6<-+TJ>i(ls2!|_jnQyuN9Wn^hnBxalXqR9{16WgXwMb5w$#UTN zgzXPXCTkhaDM>*&-h*?ZB2Y5l{B-Y`{Ibt6=>T{2nQAm-IHd`OepGAX6z|ZMGO14V zb|qVImj}eMTZXHC9T)FYPSeg_Lj~@?kzCsw)*^F~l{YJ&dCq?^eroiJQF2|F!#-iS zIGG)F&j3G!Q_`6NW#z0=F;y{4Wo6+kmxMi5ZkFP_ps=Bnxz~?JJ_Y+g-FpwDKJ{?RKo2;!rX1{ zx&B`oKY9}jWzH_in?YNDJpB4EzR~vS>s@(d>R2_iQPxU&1s&_5Z;nxp)~+y`e`nFj zk+VA_w3Q4=o6e%5W+NP~7AmY1iBx4$>q~_~Uh$Wn(8Xjd^V-PgvQNMU#o4eCgUdiv z0Pi-te>Mf*8W|sU`|vwCHdVrpkR8BRBlBuDRr`HkcGOX@*yM7JCRZ6TYG5v^yEUYa z{s|WF&hsO623BfbU7HvVFC6tqtD_;PJ z14KiASAmge!b}w^^OAg#TMo|M4jST-)=q;$y@VF{81H;i^I|w+ew;XMwkMZ&);=b^ z3p_9j0V97WefsQw_Sb-7HbZdgu`vT4w?IMdfj&KxHjK9b=z)(ZfOWkslx#VA3u0+( zP?;U5YegII=se+X>RSIx8GLaSUXbZW_F)|u)RrCe z>&Z;71X(hZnxv#vVnAodGG^rmw6%qX{{>!ExW*!hiIW9FO&rPLBcg39XpcG1nB1vj zzz^E&)xXbYG;SfF$z)p#GWw`c=n>RahQJpnmpAvl=TBOBrEii<_D)u_ALL!3E{TJ2 z2+*c6)$)?gu6hya18TN;R#Tw+K7r82W0siV2eE77nFQUlYh1jk9NAjVb2aJOA-tq8 zSbyH?Qv$3kCdrCD@OclSvhT2$2b--Nn{BWK%`+;P-jK{!1TFw&K z^u_>5w61GtK&9M#Pkz&>DoM4{s-I=$`yh31DsxsDBu%1UDq)C6GDOv>ybjVQtnysk zk~<$q&>Itm28z=-Q*F|Q(?z-_7UTs5sx=o3Ua0eruGSB;;4S2ob6g=nKV*=nf(4wk z&_eO7Luo4nm?%ZXh;p!gFST)C&4%&s1ar~fqGx*Ke{nV}=F09L&wKb%{-lwdbE{&+ zD;Yfm!KL7d<{0Q&;5un_AU!^Rmp-;znd-MEbJWEqZ6{TQPe4WoV6)HBTXr?%2lXbQyqlc_L)_Ca$wWO?1$2*AMVg!GEz%KgPnKMJchsf`&+emn4%z z1_Qp=k@w8Cr#8tHu$EMkv@9n?7${7#02}~oP9>?X7XRQRWj`D~;pPz5|3cfmz+r^( zw@xvwt3EBd;T6Ur_@k5#w+9hL1cUv8HD&7p3PGwV6A^ndF^IQn9p(X|?$H`a(uGOC z7ckN)7FY@+W_mqz-}cUdR3G6~^adL$uL9o&gsu3>e+ee0JkbuT)m=HRs}42_d3P{U z<$8sMQLP0$n`d-c6c?))g@DN^*K{e#q`d)YKcEQTcF0T;I_-s8ygB{SfYwY&a+iEq z=2nFu?g0hJC=RA$4e%bxn})@ggG zA9n4fWs~$bl$+wfcnVNhiYR86lNWj0_vB;2JW9clHP8dBkDVvd`WIKCe@o2D} z@(cJ$sM!0e`mO4IwFjYCZHI7O7YkinvgRgAhk3$9hn?}oK{fKd&`Xpi3al@!zBG(F zyBE0XXJJSO4<&({nsTLCO~l_Y^gcyuh$9!1B)!bQ{G?z~M(#NXpjX-Lp-Q}u{r#L& ze7O91>%jmwN;@&aHIhB818A>E*0vlZZzo-O&k@H_a~BWlZO8mMWtBI#t!ms1b?Yr4kFnX_BZirrl$cKW@z zOWnQ2*@6P}PNv>P@ar#8L-spEi%G AVoexrL;I@`KW0;MGM}GZI+bRtzlF2&>(J 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%0AN%68xjYs}Ek=Xt0jl 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 za

  • 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
    TXq+e%MXb(3<%*RHiFO>eZZg0 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

    d1X%-Sa=*C8cFsr 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

    A4hh5H1)NT`5CBrl=)VmWg_3m|b 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%0A=9CMDxdz3h@e z=0gB_Jjrfj`Ic3I`NzKS?@6%7O7OKHxSkK(;C9xFc9@AhY}_1X4oMhUgi?;On#oy> z1Sric7Oaf*vIECrvRRc2Jj5C90T_@C*)Mz3sj?tu7E?N!90BFW;b#eL_*km@7Cn&@ zBQEPh%8>a0BA@9hrsUogw8;}rAucjDKY;y8!c&3wo8|DlLik2d;b}d7jsTllEG#vI zjiX>~QbpD0&{i_EB`CkPFCRP$Nk=%%+ZH@MCs1L4YE=b1{miUkEPqgs!_JFeFG}6=7vL;tHu%Ih&gPQ z1S8tRbyMJ*2&UuPg&P?7>Iv*(8b3`gZ1jRXeE=&rq+Ug>I|1?w(g{Qb_BRw?m{%}aR9tE-9#)p(9w;WAR~(6mTso7r%u&8y&Jc%&QT&h$qB@FYWGG(e@nS|!fX9DNa_HQ-u^h2$BOEu6qkiDjR-nD!7% zTLgGPB>c3Y@NW`Kn+RJX12qspQ*-8@n}w64C*x!&#T!ba46OhJq_>0T3(A9{z{!X@ z2zPdO14t~Fp#UYtHo%O$sJkEmEl%huWIB+;BJhI1e11}Qd8-0-QU6{cW-Rh?YpBLU zazM{}U26I<7HbvP&R_^s7LCHKTB<#0kh|#ASk_AOHVo!FxJRsIL~jxg8>)|HtG5=* zEK=d?fG1@$d2^UYi)5gtIZzJ+)I|XQ1HeZcVNcGX4Gqv*G{F}NEm?%5wSz+?>NdAp zlG|H?pxJ@tAm$>5Tc`@udc~v0`s0E6|42a7MPOD=eQF~!T?I3>G{^^S`0L=N+^@0s z?OGfGLSqo!B?@k{W?=HQ&q9D7l4JtQC8Nx9)rd(io(eb7885qCRJ=hr!GVmUY3vnRzk~d-bq`O#a@|(Tl~oKs66DSt9o*7de63b~-W$Y3qTSY7yGyD*>%PgOrgW zx{QM*2xv71x{{g-nSrDcz_%E)t^SDFMt9o{c4usLJ3F>b`L+2B4poX&-Y>lNAE= zf1)`x=*>Va1dgc=oqw#GbsWRa4T(wKeG`I?I|1jQA=JcVuwVPF#CDhJhr_y%0YFgZ zPjGy@h7wm5YtOZv+2E9`WupLCgFZfkG0RwGMB-}y=|&2%_|bD}KfXD$sT5Fwk>nE7 zj7bOn1i%{=Va*t5ML8BiMdhNPRe;fE^P;NAB5P&ndQmj^J|vrV$mZ(MU#T$))}-P* zii$R#5l+mET^!T?drwAfybvSS*d^z=KOTDm3cx~~e}@+qKw^K7ZRbET>BqIX%f5TT zzSuYA^AzS97FrC zssW6)O2H;UCzJNo2#5o#q>^pOu zuDB`yW>J9To{UNRM=u*k^M|SUuvJlgKiP{60VGgNJMj)D_KIqBA^AblQ-bkIhod5F zrW|Hyl$ZOV`T)&zD8;moVlso)Y%Vtaj2J1ZANlVDs6(0;yG$X`I(2FTYR60#RwSUq zzabUoP?o>Yam-vRXRVvcLT!0%g%lL_8%Hu{)*GI-7#2eeg7E^0$$oCrweGM&J z%^9y+KfmgT9lDdYeHO&bL?I(6j# zH7+6lRaqkoejOaWBg0Rba*Ee;ffI5qlx>CSfq@d_;U>Guk$BwqtVaFFytc` ziTr7B5xV3^-fJdLK70qiPC+1AkLO$8fr6M{y!kfh8r)=kqh9u9j`{Z+LlV7vplB3$ zx&<=bVuV9Mx*tQbQ9hX>-~a^V(|ovd9b-@(WKgQ?i_3m|%TmtGH{bdn=_XI2$@7HI zUn~3$Xm6YV|J%?*0Zma)SuQuf^J&U%C@X-R&Pkn0#eQl+QU7gErvVB7iI2j6pAy`d zU5wiV@0^{X5&qBKrM`T3{q0%FXw})+4dB7cJTr)Xj-cpwklNdq+32;bpdCodB2fYo zgJy_9?YQgT=Mj1I`OVQLis`g6ZKVU{@20@-QO=iF|c1*&L3$tI_Yj~V$^_h zQ1}AjZ_AsLAm&fcDN?`NP;Yypp-m@wr43P)g+)Ds|Cp1gCz{N^P-h7ml%C;lS4Ykk zzMOr`;`x(XN+=K;-}lIC2lcthh`&#}kePimbzYI>Gl&@nj3%)P8)WinF6T*6{pru* zxvZxAi@N>yW-@pm;94Tin=^tz1pF?Ys|n?D1c3l()L;k8HB3Z7y?=Zzf8+PbNb`C+DoipH?sANF+d3 zMjrh<-kj%Dd~<{L|ie+V8TsVbIx^VNPP(ov}C?9+49JQ@5#%%NmKix4(JJc&noM}4oyKSCEABr-H;Z(0sPN6Vww_HTx(#u^y9Au(*3C25qM>KESaxW- z)_0u4_$20=fb@-V;Q0GCHXF4L-DMZNv>umNb%!3$y$Nak%RI85KoeZ0ReePg;r2T&zb+P0!GMw| zkdQ~;H;NHbH7kV{EcEN3^X1uI@mJA5$J8AGg?I(t?a9`YQ?7Y@Ctg|PxvvDPXo;Un zyhLGZGM63^${b(y=&G>pr(_(kG-e;TGmAY>R)H)2B?z$@CNA9H*0_+Wj@E{rSN;nWgUH-2g8aueJT)68?^7Ls zigcV%n1;^Z7IHwQCQi~$aXoWG}txEyKk23+h~N13||;i z<&c0OEo&^6m1mI*5?kGczev^2r69DGJ@c4nz7`;EU?#W6 zDjb@oj!}GR+tG|~ir!TBd^cnKYvsv*z$0jBuj(xc{oGj8L_2sFystZ^Y>+#V&BqTh zR1=7dC%fi;YzN8dz~O!o+HBfeI!-cLYy)Qr(gm7uf3@o+7IDRR7gv2(bOmGbT+l{EJ^AWL?0QXOWkc5O#iq(dpvXrHW@>;l+$SM0 z%u!UU&vt!aee%oQ17Eu@_aSXdMfKuvnQI%o41OyR;ngC22IW3iIIr$FR}c;)ueL^= zxepQ#Ev{F_=!67qADg_6fQd@(c2WAKRd@KAV~Gmgjh-zrE~?ubeEIda+Dj&TmS62C z2$nF*X30eS**+$|Z+vW-Ag*S&qj{Z{y#|wTqrjM%!mVL9pjh_)Q%SKi-|vm-n`Jns z_ggiezf~{|tgN=DCv~T?HbpHiSzfPq*WT6fLkws==i6I!kzcTb`?cRQlwV>DNl@Yn zO>L0so4rJPMTzetR<`8xF8OZGsmMb{U$PkQHh@CSA($r|ih063q;On(WmOfI;Cl$g z3$^^5#i0MFx#RR^_JVqlHAv?kk}gf;IF&oZ!U{47)*VdK0io9MxUSN`N z@)mkpbA>@VT0!+gE9_(IMtJSKH}jzB%pZs}g8$W-$#-wZt|7;c{8O@bflG6OFV@!> ze5bufRO#eJT3168GCq2tJI7*i*CAtLDN+j*?yV)$OYc(z15z!5E_pnOI2Ga61Z$ep zB1&uP>gkz2uEBT0>+~YVE(H!+w{1o02Zm4lmP%5vZ%TgRB-83z3Nby3Rsr?%_kvIT z?(k?;_Y8RosB{>^9m9z)uj}0}r^)bEi-Y{JpYGn5%zA_k-Zmho^!f={%cU0AYxKpj znPfw4iP3?6Oeqz`+3h}wFAoXBCzl5okVtOT~+wKr-yq>Xv7vbJbHbuJ~2;JzPwRkwMjiTMG^``G~zJAGd z!ih^ZNl&J}l(}?TnNR&*Eo&L%M=^<#bQGO=Z8`r%Se@g7CO%VTHD!5Mo1ybH{eXn6 ze9!8wj7s*pMW7}v4Xl%ymv1_0dUHPY@6&N2zWUH(<_pzKg0c2^|VhmzrNhCfE@3)>RX;l@f0Zsri;uZ6~y}e;FPqp`#bY z&$)&L#nc&Ky;Xl`uC!~bR-+jYDq)fx@I3XZBhqGZRq%3^dLz`b9YHNd-tyMcKU3sn zS2~DJdQd)U)I7mEF=6sbXAGTjg$4gbTi7lHr+`ur_rWPj2@6HyO_G6)!5Ou#nb&f0 zREfZZJ5Vn|A2lq|F{T_(BX=g^gl68mXRI$4n8(mrdf=!qd&>oUJVvZJ7&v6fm$py$wZG=P zN<#;YKl^TQ6=?Y9JJ1}f2A|Iiv7Ys6Z_XelN_fW;|1w0IYb)*duUL|XPaBl-QZ8nu z0*KIUSA z*Fl+#!)B+x8{CmJv_ww5FiP}PlFP!(hVm!*8GwlCvnyLkFFY7a7G^K{vs8;yAh>Jg z2YQqWrvY`miBcmd3zHavulmmbRR_?iM~c+r^&=MYpreFaeRDtQ@KHx|5dZ@$(3o3t z{;))+JM6{#g;q5H-UtacO3u*Opi@Imp2^_8jrdXL2on%uCUN>1o7chI_ z*P#g&(iJnA_%Y*RjWu+?=_DYf<^j!%fd_Hi-n1#f>RPfW&7lEAOQIhJT8pyyW}fK2Soyju^(kga z7r&$g21XrqMYJzjv@G!*F5O43-Vb8n_guBDslEZAyP;$$a5+vI02DFBQHLl^UX@1S znxt8;b?|*SYx?mAf35rF7_3@KeN@At?kwHR9GQ^I3)1Z#)^~;~Q2F%qK(Tf!)r{F8 z3(^u#N$HWoU-FYDys!AEWWV~jN7!Pc&Gv0*ZMcuz3nKwp_K~lgB27Ct26nr-rYlP1^5lu1X_lSdwjS0C0}sbf}N3E|Yj? zDb_TZvP@Ntu@y_4Gte``?5^h$%vIX^-{jw&#p5G$MNhWwj%1&5+I#=j=-}%rev2XU zcI#Spew9+?2XXZ+aZxjs>wXg3gDTCcD1%i{#s=8v-#YNNMJHkdN<&Yc(A5ScM%ml% zd%U<@s`DUu`*HvSos^BWJiywMVc0Y2nP*Zu{SIlekm}~R0mj+?+fduUsRiL=!F1Bt z9cd|?QL=#r^kt@?**(pdKhkd({+l!d(_7A1TM|)}=WPTN|;iuD69J{!B5t zRIG1-+{o;o`+D1P&%-`KY?Uv7VdV9;mGGVW_6$FqlYTni84Z8?yXBHB)@I@|ZtNdz zb^uQH=*1TuIx6w>aPcZ0p?1d|&*==j(QWoB-`2|9B5o3~a+qhnXa+Y1;cpWa>9aO! zoCC>;L4CB9*S3NVorMglH2DX@F1s*#+U?gQvB)N}=9;{tm)_iQIPy%Lu5fvyqocd< z#=PC=rw9H^z;^o&3;HU@XP$TN6YZaUcKj7i+5467R;<8{H<<4F5$z4K4GRJ%+rFxS zvD_wtDk!pV&wV-dsJkc`GFHR&?z!oVe%m%M*EuyM7dZ1A&u# z=Y|I0)feehBXDXnbgK1qYVA0Mpkp ztx%BvXNNSZvjf4fS@Sx;J5lb4mX%T;r`==4eZ&@^Ch<1>Kv}3Uy!0S`DvsMAiN+$4 zfvdg#lZS@R^iXpIXYVz8t##km1t6O(+| z6HJF(6CrrbH@>yzix!8mZ|^S*Ts6g0f&x8R{`Y~iM7hwvjMOod_DW)-cAg9#_qOcs z0nLI@@YU{CCS`ak>W78j*pS?0@9`hUOo@|tCMw_*pZ%L7lDi#q@1X_Gn+bCGgr}#Z zeCY{-%4EL>)f7~|m2&g5_N1HVx~?Qsxuz!3A19|{shXA#LlG&F6=WY3q=+&;X()zx zhMRN1FNOg-^`|UtZas6DFZBT>@p>1ff|RAo$3^-KEd1@M-KJDYATXg+qg=)aZ$xZH zASoz%Vd%g0Or(ri|YWTl7QtHeZT>PAiCet*{;1Y0}Gm4yG@ z*kEOKY>3_zhgGT`1xB0J?c?5~B-N)$wyETvR4Gkdr$lLuFFwnxg>-E)L7edj@)<~c z3RbIwcf^FKIm|gO#&7g(yLT*F0c0ZmUQu?{Z1bg!mJSf&(-m<|vo?~^Z*pxTmLczq z4iu8D>N}$VeL}}3`HoHs4_xj=YCSnPbBp+Hy|i`n>k1t{PBMtJXG5W-GyLF6V@ZHJ z&o>crNOozzY$&k*o)Fv;KVAP)mCo#&4?5YJ>Rh#*+^#Rlj$lmTw_>U3MDY=;a*%K? z5p)VE4%UCoUsE%3&tlW)wVOvIyQx*D3EIaDBGcdIOV5)|o-c2;Qo_}{nuBu{`%R8s zx#xIsFE=?wcp}7E{1>S?rMu^q6Thi=km*gnb-5D~$rW;+JF5;23+ZP=NiKJ=(i<1{ ziH5mo+1t-T<>mY5(_MpR{m{t~kTAR4i>L{5_l8tA{6);OgtWT}Op(EQ1k4WqC8z-F zU%O583*OSdH1QbL-Y_Jh){0?%VOs6zr{*?MnRz zHzG;APu^2GlfP}O%pY~FDfYE2e#OB4O!;XExO}=VP|1qw+6(b;_{Np7=#}u(z(-D3 z;}H*Wn(GpiTiGAur2CwD6l`X{U8m+Zu*YX(NvRAnX(eslI+zBk$$}wPqdpfI@%UCANtT(gtx#!z*S>N%@ zQYkk^PWqZZ(-zH^EtaPaW9ds{=!tAiVZT0!+xLI4y-E0XBzY_RfQXiBIg;9WLm?M> z^!-YD7hkPiAm;yDW`D8C>UqH7Z`toFU7qjS{Qrc1mvF?UGD?omKtBg)Y~vEWi^UvX zh3ifi>gLy=61X&*hV}-qYUFfc`!f5!)-NMO9itn*ul59O4R6AA7kH-+-kY@Ae*xF) zi`@#_z~;UCW{9GOE*k4_S`?aU9vU;q7`^HO309iBTUgqN<};${vhHQtcr}g{NzV<| zWlBxt-s83zrR6a(XEk8aml)$nm~ocnuU}CnoGMV1x;?Tff_d~&EAr-P!lQWeb%pwQ z3k;IkD4>q1NG&Kf%VYw^9_GvuGJOb6gq#~n-)cLPT?CLnw#-$>(t^a5yNxb+d5L00Dr zt<+dwNVSF!Lda`6m-_{og-?9tJixf@^L78W&)3fq?k(^Q`HONZg8(+yj z(pav^QT5p2?Vi`WCEBxO`#`k!Nz7&vWGIbk9p+wGRmbwG&&bpiwQx0AG|wr1fWJpiA__7) zM)X`uWVG4C{j#UDc8G6k6s4j|7IrbR%Qn6aAE0OrK{Y6MVK7AycMx#0|JC{Mo6=Lg zn>sfVM-Qlwi3$s;#JY1xD)M8J+O#0e*Pjq!fUEhk^m63+JPxy5EisZQGDscMImxYk z_hLSe0wT|AA;`!D{N%brgKMR%kC{UJyaG) z^AGuUM%guNVM;g$nysW#PY`)-to`@<@{--d+rL(Q@9;t#B2UQ!U5O_NczSB zG`I%vg5Wx;IzJEp* zMl`lh2~cPPR@6*$s~-lE+|}|)9^n{DN_o?_ifwYv@{gjB3e+eU1dKpAPFN8!~Y``vN!jH_J1W8`#w(NK$-wsem@@JF>D{M+#I@4 zW*NQDoNK>%Ly)is0s7QdE~z#sbf4bLS2cAe8l*%F!6sMs->NUFrs%WJ=5x4rU6Hr> zbY&^X*cTJv-ZtZAlf%MkeJR(2X#j-2@gZpj8i`i=VO$pHEzD3R$KYT=a0{!C?2+EROu}wJO+V` zyd-jbMtwAbOW!zHp4uq%yFgQExEOVP-+7?rV7%3h61Nwg1?MJkwEqqA&9gE0vmQyC zsj1J7{6PQdSFg4OuUMulv41|H)%@uLNw#*beOtCF8P9HT;N)HpQ=;gkBdNL~kxME) z>CBX7JX-MbozY2p1d>iLBZ{dnE2Z%TTaN27ACTP1Jhz{bH7pIL*Fj2l_#*7@Pw{xb zV1dP2STT!=gk-hUn>EEtox3_DitC#pg*7ADzk+;kbJ$hey29U$ zny^^4?6E#i7|V~cb@vk4Hz_DvwEa0uWtin-{_k=^g_tvqnGqG+=v%fWNRYy}H_{$x z_CIaUH~_hORLqNsvA?KHDt<-lG`-0^!`<)3qv=9pH@P{JN)Drn!jh8yjHnG+re=vn zdQras<;fgm8CO6|xqyDa!N=2GCOgo_fH=x)0@$z#{^0`8;jrYjn7p?xR zi67v(J@;Ux#kyF9Q64c1^Ay0c?brA*vnTe}FMm%=jh*(6#vRy;SF71!N)ehszag1O zk!f@?irL4nV1+~_mi#;44Z#ergOFv(r`lH1IUW%1)yZkR%s^Ur5gJX&x1E{6X2XZKt@{``-g5UJ24Nf!?(FEfdz z{PgiO`}*&XZw@8+w+LGjqzs0i$gVziy8BK^~Tkd>_)M9MK(r_P)`+ zEv~9cs>}qN7*MnGt|B~|Fz^Gr=JHeKxL+g)^|>e!HLLx$xA$YFzqu4A6{-WsLV=@H zI&mq{Aahx2p3m&l(11c<4cNrJchU0qZ@)kJXqIep+~D-(z*~G`ZIyU)soS#a)jq(% zm>CAYaB_V&x^(?*czN~iHDP(nvT*2xTrzr-mhcq3nwtf?bn2tsfX%E0^Z_{rF&w$L zueUc|*=ydR28&w2#QHh3?GudB5;~u7?SJIZ)&H=MvpOJg zy%Vmul{h|yc*G0}egc%mvoWj{NsElMT}~%#E?wlQuh=*=;Ay3e)#Yj(E^i}QRH{B? zjrf_UJ1>&5Eq}z>Fhd4z{E0zA*PcSNkuWyu7pd57lZw6)9H0!hlAF_)`X--TI|PGa zH_l~O*dUc#eKYuIdW=<{39N-i%X(GbS4g0&cGLh`R(8J^$wbd4A;i4m;T<^GE+x%b z9L+GAHlM|a3@8w97e@7&y#)wIkX8b1nbLI9%5^GeX_*Eb935^*mwdoWsLOg0qm-M9 z=R}sQOHC4~oPYtFk28xTt5gUQD&`84t073M@c2gN1R8V6TGq&#)~p7hU^BR{uZTrR z47)uSx8GP}7#EFbi4(1hO%Rz{qqbCu<1AlhbRmNJ7f1IMhaO`*ycPppRDB^hCg86( zuEQq4#!IJxLl9H;Cph-Hz zt$4j9o<1Vs=*-5StUSmo#qSE4z?IV7_)|xrkezwTR)(9l1Ya zxwOd=%Edx*_(4mlUQTs~9>ZJxmED8jqTBYw1MGUYx`YK&FFWQ2SxE4j_U+dx(sAr#25*h#l}w>Mv?vW-;Qb9^2TvIOdiomeyV%q9iOi*S7Mzd<0S(a z5og&K$4>q}C*eOKsgc_kvlpn<63V)VBUBZHXJ_U2JHtAv@>vluW1iMWIQBjq-2M|X zlH@RYOjAG6Q2;7p0^f6z3vJU&f8UaOA$5`ckWADwWx- z5U8uA(+c%&D}M2D6Q%fBqi&hHBGng}az=^Ec(IZs5 z8EI2ENA?caMT1B>jh3#s4D`zn3il_@#8OK%Ur{^2W?7bYm;2k3ERwDzL&DL zaZ2h^9O@D+M%W_Odq35xx%}8!kJb<^Bm8Y!_nBW@kB=?y1Tt3s18SQXwy`GzTlbJb zVrl{nK9TEVPAw!MAmNejx^D0IQAQF?#SwX8+$|tMW(9lPgX1XK zW3NTAU8*iw3NNv>7qOw3%5MsQfM;MJo7*CXMxc5VP-3?^X6soZ%%%G8W2QD2kNKG- zoL=(Pvx=j=k2^~m6}b}EYU0=aHisnQ94$DufGRe>&ELaYJMDykw?skOWuM26wVy92 zh@I-IU-o|bS#2YDRCFpWU1Q8KH9)^V-Wt6+0Ow9g8xaEt9uPuEG<84l&!9LI)I|J7 z(vznf;o6evT?AvJ9V*G)N9p90wr+u`lO z%Rw1X+PalqplPp$Q7;BI$#1e;&yGHVY_A~!H+jMWUXSKG0n8Kf$Xn}|&kr9fxW!Xx zeVcuP{_anL4~UnHPLQt+l8;W{TgNg*cd_A7v~PjD+rzv;IEu|6dM9B9hCoJ%Kqdr` z#oqCJ4#?R8l!11p@R@-rjU+XE zln&vcR|gdDhvzoqN1`RfB;q+{Q2e9u{1GE^`Zzj9;MsyI*NRkM@`1h|@N_F^*~M2l zCHoi`!lVr3I1dp0fz#b*2YZS${95$kGaHQBwr|mKn4Hx7WbtrEkfrRvZ;JhMSDe#NQAij9H-FdG0VW3Y0GlnXN4!$C>IQ?E$Wgz&wVtz zIB?&=y-fX10iScsiRh@9W|ag6sLlo;V3-icjBdbVIlaCG3}*@E$V1fWxm2&ED8nw6 zVKAgP_MEd&@J8QF+46*%kDhWXMTykRMnE`I-N6}Zw7ezNTI88jGv$?5Re!PrldQTF z?TGlcns@^%lvMUQyK@6BWWv+q_x4wA`6j^fXtIYNj^*bx3IHxt{i{YbPKWAicEm^Z z=sTC%vTOlkI9Yy4N7F7-){w}9hpEd>4F*irTnAe|R*Oh!+Cy_oJ?*2yLpxYAgC_W{ua{w z%jk8W?}WJgKN5edzNGgh{|Es-uuNQieolS30KfhOG5*;)tMW^m&@a z7Wyy|qq0fyurln93)Nc`kN%=mdWk-x!TxUb}F;c|&|DeH{ch%uDS*O@B?hC9Jl>O-YY12nqc2 z6F{=S@-p64WpXjE?9T8Mjjw*Pu_n(El$_~bO|Gk)&QlN#iOjZaU_MOKeu z*v8%%q+O4ZXZKQcl!RCLprPRRBliB9xMt2uAa#Q(O&^waP>CVXyLVxr&`9yoYbhqL z14bR(jqfPLuCFikgMoA^k16tYs?C=C$*$*<8_}PhziU!y_Gb!*uHWV_e{CvJ9**q_ z521ba;^Bk7f|m<_uK3K=_^jjkBHv~omO$^}79-yF5=&K?23+59Uzrkzu&nwYAJm3& zhKh&OU_QH-5!7Y7t+4Oz+KtD*J@ON2z_4Ab7E49byuQer2;$5HQrBWZ9jeVv$}K-m zT0#dWj#G|j2Z%#p$udrQ@r7%A0>i)<=I_Pp#0l%`Y0{e|LPVnSbSfRN;CwH7O}4Y= zU$kUc@I0l+J;9dmFT)qaUmaR0@NKK`>8tVTlklFa@G3hXls_W6->&oWA}>)l)`1+8 zD2{6(o-j3)7^{B`kE5xD>qD;gQ45KJ;Dr(Oz_1AW97r&cF?oUn(+!v2E^b*~I09m$ys#Ho5ZR-lbn_V`|JDICe?&Il94}PXw2$|LC zcZU2Vq+3roGuw5Vx~H>@TXJLxx{kLHmpqqRylHL{%|egmr(m=Y!w)?^vxS_(Y%^A3 z4%+ul_j_cD7wQJff2I4x{ojN_7B7qZ?Op_KHr1J@nL6keaHHn(kpYo*UBGnTk zpXF(-VdIr!RESVJ*l13xWhtB-wAhfzesch%m|sX}F#cu4tySt-5j>79Zn?_jFAsog zKMU%x@q)P}|E`17Hd}o8SOAVCgmuINls9$I*bGK2NdS8J~Tirs7hk~Em9DlYMRI3AdKG(T4ni}3HL z8ZULv$E21xpJxOP842-xRk1pE9WynSpsQoCRDkDV&76m|>dDz#rYaM-qh(566Fcz@ z_4ltd-_u2Xlo(}lru|<+A=f;DL2r|;K&eLVoolJgcGZTYa0#xcb=OY074#Q69C7h6 zFZfYm%apMcd>rbb^v(mdFw?)#9a_HHRb(6BOeSYN>~>gWC(?;am5Gvep%TU8NvJ;O z);ynMI}&kGg4i2W(L?FDOowmoxrOd*z~XpL{4o<7%{k9~C9VW9jAS z{>W4s}Jn)lhQ@{?_syezzMk92!488ljgh)LU)sKUzCz z$I<_3^*~aSG2V&muA#q8A}qq__4kCdLuuV>giij~WoJ&%lxPH#5#B!u>Q=7HDiird zbDbk}-{SC7G|ejSj5WdMG$K8TdZ(32AiW@RgD2M*NdDClU1bQ#&5e8uu{GXwf%hGV z4Q9t|;K=S#!JoN##^($08rg(jx&PLf5A)avUhY>hBaS-GX(X2L*Jnb*|&*a8P#iN zhNy6baMRXAG)8v5~50$qvT)A~Jq#Y{lilnF6XAGy614+$1xm z4@p2z-<0D9NjV|(RnB#{KGG6pF|bhtg*X~B=7pDBO`33B#b^(XR%O+Rjz9}d#{~6* z^9XTzQIaEsR6$FW^hO#9i})Wh52=teF)tvE^`shGTU?SDfE$LN)cWNW()}c|9Zp`B zDDvcxm@s#b}ZLOUR) zH`lLIo<|%V6}}$K#{X0)6}wEbelm`*)?*9Zw_xdF`+lC^N2!Eu zae`JI@w~P8W_K_J@TLZk#niTclz1O$;^TAH8Vr+Aysh;Ro5vZNY; zzKI-{9mVuj^NTs^j6wXz@2RnT5@xea6)LL;H9*krH?gbpgSWRk+J{tI@P#`da|zO> zaQ(+|J|s$`os8}*Us#&~7Vf(RhC^-7BOlWF#af$yMix97(QyElxyuz{{S}Z!i5eLK zOOEzZ=a-)1GTOC9xRZganf~HaF0E}@No#sU!%s7u?L|IF9WZ5ATIxn@(l}g`OGNQx z@*q&}1~s_FtD-ghxk{#~#o|3%p%hXjl5~EwKNBpp?8W*t*bP@aLc02_#JUk=ZpklP zzwjM1zAmu93rZ{2`DW8NN?1Y%A+2hFcm_ZcCwt`x{4IJ*!kT~r{k|?%*+1Wc(3Izq zzIN#V8F~r~p_8b*kTlkP@viO0L}3IH1fv*dmu_BVyu|~<(6*)-m1n$bgXT(x|7>>V z^zA`&GvC9RWJy#Zf1ZAo$f?xe562XyteG=wwVjgEnp+HvB3&S3D$g;&kvFKN#B!-^AC<;+;{1WD-^A1Tz`La-I1&7C`E*EnBgq*3B1-7 z{#G?vLqE85kZld`n7Jw-qxqclCAUgEp&EiCFCk&a#h7(s)GreB}p!P4sXs zKY<& zSj~WRVY$bgC1@@(HJf-%Nf5bF=SGT{=P>J#RJo)e3*((Hb+V$HLdMP@vp6i<8GtU- zjlppnuO&CAo#k2h8&a9HJ7sdD&3c2l%`X3U&!pYf@jD4~Sf`1DM5ngXcW&l6s&=6;s=Z}L< zp2hL_jv4t0SXn5+8FcdG7{2%g8TLv?uuTU{06uVe6nzi8(c{%Y^F~7I zvnOZA++utzbE=*6#|tbupp)FwqcqUK22D5iDS(ND8_oF7i1w(`s*B&pxGiVqTTVKT zR8s=X7YxpD7u4%mHpJJvW&iRa9E-h7n_BkMFTq$}Rd^gi*@z08m04g&{huE9iP9`<@6t`S#I`Ocb{= zc?a1WvwUs3_xKG^i$}otyp}WL_bCw39Zey@&=~hlLWHDkqoO(vB+;5VCqPrN@pLo} zLb3;mLqUH@-e{)yDv%B)4?$3$X^6~|31aG{kmShydar3MM976(05YwWWgWtM5FC#k1qY}$JDR2{)l+tj zkQqyVCW0ZJFp{_B8ZKwkyk&6h8lg;I;7N8iRT_>kta4XIv0F@S)Pgg%YG`eM#AXcr zcHBbm0_cQM)v7_|b$#~3A+LT|4= z7ovSfAR}%sNoxqvOC#@?^l5ZT27{z{8koywS(oeJ>tiSpY2MjQRx_P_pM+iR6iC~K zL5opqTa!$Zr0i=(>k7x{b7dCYfMv`~>1`E;}1LbJJM z8Yrek1e3t*0>9rWm4wo3sZ%aruD1fWUZ~P2&4RQxXwFp0D$omB2!;@Y_vfA6YoU6L zVThb+6^PWYj%2dUcjSC1=B`CaBn|_uVpak=019DkNRE&#o_1c|DI}ZTf|GInE^QT~ z5RzupAT+hHq@!`j_#K%Z093u9_M8Xi%-j+yRTiHwM?OZjHUdRdLj~@c{uXB4Atbc- zcD6gpXen;7EUMB`IfJHChtG1gYnZui(&{9b({SYKu+o5Z0H6{CaR?A~Hqr>2g%non z#r(9o(=p0#x)X*{UrvE|8BpACwn0{jVOgFbfKmo|%=m6-5lZzQUP_$#ssj_kQph}B z$9TB`%4amJ-@i35C*#>gCgKdQts zfMMQE%Q^HN^gfVC=Y}15gG7$D1lUAg{HQ?Cx=Qx~-X26Z(cP}I-mHJE|eu}7c@)WZ-_$zK*gE1k#Y>Tx(L5gd4i zpLiFAT)lWGueYMwY+bzNgI=!kk`phn2)%s~%8ukyM@d(R@>@!J6);>)1KGn-%;Sms za!7EHWa!!Ur;19h4q!xJF?%n7GN_Bv&Gbkg9R^-}s7GH@la zWRZ6}cdE)=e$qc*_B;M{?t1ie_h1c-eJwv>}-rj;;XX6v?_&TGs6P z(1?O6viu7OCXaGa_A{de&8A<=+EI!n0YJ6W#zjRIy+-P8PEpa|g+=ciACdCq;=p|X zW8)fyB7y^yEaTMs*8N9Q1r8{qZ?iW)whi2@%79!xS@a6+`t#$ zAi&4_OgCc?lpP5b&q*U)OAgat(0BuGRm&A{Zu!9sRaBy|Ef>1xD4wm}MX8N&VFXDD zg2ehNz)6ww-DKvvl}@`t?EIPK4=mUa555m%jz$IRmX(+&)#ZGx%HJw^8vn}{E~MP9 z!hH5V-N5s633J2hR2)SSLCNoC+;4{#w+8JIc=Cx{tt!=Ilss9~jV>U^5VC2hKle3? z=F=)q0Q-ZjY+40^*?z_{J{NlGF z-;`F-6}087!i3y^R+_=niDXw0=~49K?=5X;t%W5^K)TRW)iwXone8Ll`!MXaN=@%q z6JG%HI@e}K4ZrLE$a^J}e|xdT8UXhOaJFIK^%x|Fn!sdkhN_L{5Y>ZkWo_D-H1!D3 z@+nT?kWEjm#gXZt$_)?xD*%#Ccu7q*+9*-o(2pZ%84=G@|&Z?PJoYaz_1^GZeIfiCL zR?8)j&%ja}O{RgM9U>x*(4dvG8VEbH7_yTT2aeu^PAacHx-F8a-{%3s(lPI{EFf1` z$kn~)UeM~DZEK&GdK$e7=F} zTBlvd(gHSPqa28*#{j4Ti&cSH{(uwzu5d=IIuO3L$4|z;`GzmY-pV7_)%`}0EB-cT zKgV9eEVIdCxe4hm=CiI2YC>5IKY9Et3!%2#5D5IZfGd365XrWn#s$_yaJk#b~i7@H9 zJCDSEHj(WzRH_y!|5Hk)Eor|?Vf!+c?pE*j)o$MpLs_?891%VaKKMhRQ|>$29L-?A zldXJpqF=_Xm_jzyU%QvjZ4lpfk{5oMO-9eX=$Tuiv&3^dzE<#^n0b@=&)=^AV33a|rVL9faFEc+1&Xlbu zce8`asX=QUOl`$q*@JZukL-(JUU2{yU2$fETKf{0Y+Yhwyduq`%%^Q?$FIcAlq(#s zsQpZhldY#Tm&C#AUmh5ZYep^SM4Gw62CQdGkDg0 zK5I77f=*UR%tMn+`Albp)lxs$nwd$2jXYmhivq)n?!)Nzz1DZjl*E$#c+*!*R3RaX zFNui9LNuGs<6obME4IInh(uAsP!Tm>Fa_L!7ymWtrh1gp@Ut6R{t=F0drV~+LM(hr zpId(^mO0htSDPD7eocICfcfaR*7)qRHCU)o?DgOXwV-kx(t>L|mz72s8)uj{SKe?S z?D+_+H(y(_Fip(zx_+sC7i3N+Kp1nn?fBr3+0?JOl`T06sl_+&ee3Sp z5MU(S$B%NPcc9Q-QQYI-r>uxi_m5{IK2PFoo`pxygLgMR0QIQ(-nv@_@g{hfHdGBS zM)Gtm*%#2oe#!lDI)N-8os;LU`M!rS>!uCerz=Cp&&U{!ZO$UJej2sT$vmf(8Yi1= zPH%2mn9kIHtNmHpD1lrb?(D~e`te@OvWL}LKUkE-Mu7sB&xAhp9~i2<)mHc#z%wK1 z_xzAXeE-iv2A}nBx`)?iZ;c-Qb)}C!*`QRP=-`Z|BEhPdbK4h}jNa?up(0hHH%wR? zdywv2W4EMj!^JeApc9f!>l2i~p*-<$oQXgmw7Bi|SjgF+*MxkjkvMHFgqh1M3NhgH zJcSyx(<C?Vg=hrgCqNbl8&*%D3RmCTsx2R@Dcn40)bls}K1toDL zv zyfo|47tc~z1AoVuA(bCY>p<-aZExUnNY>HdN!El7m}&~k&8KP`$2*jCBtmLeL`BR^ z{7gF3R$2fU(UQ#!r*m$olPfLZ$C!ct&}Lwz(q%de1H-8HtPUW~~%ZxKdO zYwQ)8nvPjmO|61T@X|iley|P^8p%{i+B(TYZkXiO+f3A5i`p%(kVc&>u~Tw4A!c3U z$oQY#vc1x|?PZR%HNfoP#rNeonXk|v6rX~Y8uWUy4s45oO#^Mh-aX)$J|2F7T*@fN zYH+MR!V6jn00~r*xEUNE=8JlrSa@Lg+;N`9ysW`}S@wv-1BajYt$e90JLqLs(Z%yg zM#&+anf^$SM{j&10jo;El@Fw~t&C>|5H&e{2QrmFx_oX@m_BK%_kmE>qS_beZMP&r zeH_TDkfD1%HJNV!p?MRHd8YDFG{2gWTw;3@Ix5;GfiB2&o8<4Gx~(OVtF*MM7csCn zTTH2p$IwF&FI%VDB3!>DEBE05&Ox)}6s15?w>TioI*>v}6-eV12ZWro#T;jRzTSy= z`TJ1(;o+apgb;ZwiC71QArnm!7(r&-K|-x1K?2r+4zpyFQ2!EU|7#gB!g17*GEw^x z_*#o7sT>J_;^Dss#$V%@Bp-UKyO3XuzZP4j%X-cJ_|GS;m$XB;1VMdgYIPKuB%vcO zCv%(kCgIs+&y;$U_j90Fw^r+pgJkmGv29MLRe7bOfTGsxud88kIJuMHT-_j2b}!&d zy@2PBKhu7r{gABZB@svAVTM@_+L)s-#*)(#^EunAZ|sI1XESl^#NGpt@kWx+>jfp~ z+`&=s0D{WJv-b3bqiEys07|Wvj|`E>w@`^VO1YpK`XAj% z98EM~gG{^+$B=!JC`^n;2KJ5Ipg&E$8@NHoAPo0+lTb$mH!b6i4V-@WS`dx$L#3` z4!nCx|Fhw4%)WX1z*2km&lca91N-BF_pj-Hb!5bRcN2fP`ZoL5e}qDQfiFLNroZTW z6LS>S{_^8-_Ql{q%yIPbOJW4|5=#?%k|;j7$&hn7Dja*7894am2E*0l-Pp6j_Q9{> zIaf2ju|LX>2fy86_>IqqJ+BpiwP%#`d$Bq8XG`F#11E+*D{o?db+^Ad49p=4g<>xV zgU7FqA2M8T&^){x6(2gy$+_MZet0z#IP~MGQIK8G3(}i$+9F*q6T?)U&iC*`qD73^ zU@Q-Z*UH2%)aSopiJyO~?-DNF{<}J#;QsUZI94PX@bGQK4bG4iZKeIE^cTespS+Km z!;^jd1_!1-B<+hj`t}gC8@oCYS5{1aeGxZ@h~4&#Wp0Q%costu6vMgkkV7Y)&ny1F zLZNu!$#_v>cabVVQXoNECqdRLK|VD>u_58sWWw#;ggaD;D1k(EokUHqMD5f>-G;>f zB^07cBC8-oz?Nk|^0vXSBGJ3o+ zUZiI9H)On=%y_k%@tP`=20}72Nlu@u*~$b2W64LLB&|5&#s-jK15RH_KC_aE^9mSg zAn%q0F6(4I-vscWvsSDFCc~hn;e!HnG_PhlU?8q0EvB2CNm)Sy;sgA#ci;0E&>k+;|Xv^bnfhBHX|U9LNTxP6mWwv zmkt)dpqdZH=20+`uy_L)Hh`@-a^5R|?FoO62G zxx^ItO&EzoM?QlD@J~a*#;<(d##{kKp!`%GE1&?TS^yM$bn~k4)41}iG?3>6&diuc zvZw4hl|Ad4uXy$7lVv77qSzulpBYh1Z=5SIl?g@^8|)PY_WQ%pzzA4jE7A#(TM#Z- z9Oa#rzE>PKcUQErrfz96tJ3P^qhgc_ICO?k3* zl#%acHD8rfr};xV%AR@W0vgNeyn)~~Z(wsH5aFHGYy+&)eZ06+RtL+=vMDq02K3sL z*?MPj2R$B-DqkonXWz?O_0EMEKcRt0b> zsKV2xVlf%`ef9BjB=CC_kYn}fZYhwa6iD!XdZFllt_Wm9kRZ{er?7G`wbO2+<0kAW zWqRcTe~HB^{Cir(nQVcgO=a6=6+*89_S>&W7f8}y3CRUETouEEfW=o;P(Y2qeSgG8 z;d|KvB%FP=FGqR5Mxm@G)fP&e*xM4##@vn) zU}*?XjfO&rv0R6xaG@5rhm=5ro=Bqs{PC?@J+>-iuF4}$baZswskfxs%nT;{gxnO6 zm1=x-TGDN19PScY)sDn}`~N=w?+X0it^m~~07yl~ScyjQ(Shmhb@1poZc-b2Yb@Rw z$0kStf*Q{wQ>YQ-0kj=>=TtIkjY=|!kV;K%uu5ev0`oO4o`mz0YTQO5s6sASj#f1R zm_Sb=1EotR@~lZIeUt&fM}kxF>;Qq>&iR!1cAm%kjF;+IQWA0Q2D-alWQ-VHIWg>J zrI;N+k&GS~gaH6}*+i^4Q7CjKEkIzd(zv8Gg@lxbSWK`%hU+km_#^_^Y~8kdrpga&&avp z)od3`P3LU&rd`#iTyIa?E4?w6p1nmJLZoK?dl0|;&oLtCqFMvFMsd;y8iHkuyXo${^;-I_Vw$vKfU-rZBy5Exa*4kKPBCN@>;L5 zp8ZLy`jb+Al~(p6CGTrU^o+aDfSJV$U7a2cwdW|c4wbttaxM)L!8O8>t(>84G~PWV z?!7?Q9-vDHz_}HOZUQ>h108CB_EjWy6+o*Z3bSmWNea*i12lX{Jjje50u7=81`h!G zQGmOVK-~~hZ9lR*z98`c5HgS+62Zb64P{N>f@JY>76@^dhzmTDmQJ~&8=-C+qUYnS z7wn=NjMfaWSM#yH?QX8%WGwAqBotfGTibqh+A?94JppM5^ytdb_;1Pa|IrAm76xI0uEaI zXbpa}mVk?{sF${ouZDo1HjkeHJlGf8iujIq8IZLflH zLM6DUCAq4ldun8RYUFxp=J{%82j0yIHp&h&&${pU=z+tN7`v(%>&pA)Pr{5VLJX>c z^lJRI8az==?ssZj?vz_AJvLUT(2=jZtK4RIr^f`EMdQy;g`7_-*G+3R4P^sp}a zuRRT4`xp%Q-hCCOJ^nyvGDdSc#%wOZemdS}D9N%n#p-#ARd8WobQSm_cGB^RYkfvCl}c$5eqEKG$U_$93hA$7-4PYPrvc zr+#ZyL2LEl?;B&6S`yy3K3r>$`P6a$OIPIA?#ORFkvsj7J3~?5M#8@h#~zM6Jf4Ur zHqQ5_Grztm+MO#nTFCmbn0~gLe!iS``7z;o3v<1l_-7~U&wk zt45-li0}VY6H)EWl&Vu!k7Yomeby&CYbJ6K>ggQ1T|_mvfLW9MR2ScPdI;Gt=1Uj< zFmd_q|5p>yd4HRGQmvgL)FQAs%U&k!DfC3Ir)jDAKWd`2f^1GyC->?ca0^IF@}|4|dgkSSW?859UQjZMeOm*;}8Vzmm@W zBA=hoFZ~?h4x<7skwakNo3&YB&{t!$y4E*GI*iX_}F5Oqld?SDZUEb?$OzYLq}l z!cr+8C*>%+&_uZ%Vp2HwsJnHLkz_Y93GWoWzGNv(voaeTF`Z+mNXB^aUQtWHBFPLdyx_vTF0{bHy(_?}@4o!e|$HIS@c#EJ5M_T9~ zgAj74Es2hbh#<7sB8woH4zdU!ma3}hA%P5%2qL1ATIwN(C?fOBGE1TetCLt_$t9P( zy2&S?fKn^2qg+A>&q!b5hi)|aHklh704aeO-MJx0ABo^GhA3m;fkqm4;30}0c&s=^ z2O@w__SUv$`vJK$K-0~E>1M;OBZSZp!~WiT!vI6P@%AhD;Dle7$iJx)qPW3-_#sFk zek|-qAAS@9vE+X!BIqC#`$>tSg%Dy$B7#r?a;ltPs%jz&gNiC5uoDdPA&Jmz`@aBF zLdniO%lZk>Lem-wDMs_o^CWFh23+!T#PJM5a^!(W2OxZ)2ifOEBSHw(mthAUd(d{r z9(J7PM+h9;Q3DMp)o{$+e$*fX-}Lic`2G0j-`DB`FV46h0Q7?d`ar+}@_~R1OJD*k zwzxv1%7LqcApa(qs#DbtcXDc#23w`Oq{-@MzXKkvNTEC3>C6(y+fCCXaG*Yvp#%a6 z!;Eq>899iJYjsFN_0Avy5kNx}{vH599>RcwC!q~{KNVJb%Y_YsfrKc8sU~Q_HXe?D zZ{#2)GErDy;*3PArY&X^#jAO`W|s%O4R6DZw;N<+xfQAFaUdo1A}6xka`XhQ<5 zC`ekPOhZo`VGvhd zRiR)Ft5^l%(OXW=Ss+NOTGz_fwz?GrA>iIy=StVQwv_{tzywNDs!}_$^mn0HCN?Kg zLP_+&GLvb;F;=mOLkPkUc{qq4@IVN2@*xdi*iRNzgoPXM2MlVs1Gm6n2R_*03VO4j zNoKGSuYPr`u#Nt07t6Xh07?P`5OISW45HiK_BOY^O@I@3XkT=AkY!Hrcgs(^8N|mhxqtL`A zIKkl#JGT=c4sj=ZMO~P_loE=_!_^?Mi9S$dB6FETZ{#3}QIO&k)64`R_HZO5+2_YO zsMeB}h(-FEgaOdAU*rlq7~V!3mY} z)x&5evHpo+syoOMG7x7;mYi!S0Xh636gDQsG(9ni@O`1jKHg7|mz0Go)Ih%TLrEB} z;1EBEfgwhAvZN=SodHXk%2mclmbX0N3V#{Q1)QF8%d82L>UG0tE;A-dY~tNff)FvX z1F{fn89Cee6L>a7D5lA)MC>6CdbmQhhAm_)WZ}I#*k?iMtAj8^mM6;YuWBhx?P{aO zf2rGOfi+#_ZhQO6-sUuy+v({&^x=T!#4sjMU20Q5)6Ax>#F|T3iAua04->Jqt@A*L zO$1GNdse9={BXS`8Qj=fAa_-*T0aTIfVCrGL~$J=?S@xo!>0#7ct8{yPIZUf{me^L0ungK`OWKHZ#xlO-*T{ICW02iYJMWR zo6y815b=lW<>BeT*25o0cj)=P(j((H-h%K zqW$e_m%#So8iEe2Tf}$|F^A)wbDi_N-mWO~blrG~O`HP9M2Bu)_fCmK3<3}oBZML% zfr(FCf(Fs%I!PW;NQBUL>ze<%=ts|!ut(VsBTfCCkOoayNgxw+G)Syu_4?V{{`S2R zUMOxQyh~`}6rMnZ@P&W)!wVnpocKG>UBUe32R;?VKfEcXfB3|E0_lqM`JgeWqvTKn;LzmXP5mk{Czclp5%k8p$^XyAeu6vW7&4?XGk&wrJO&h%m@QIoSv zk;5>*1WXMiOtpk6aspGfV>`8@2*?C5lYlgt5OdCz3L3b9s*noPXAH(LeWp+fr7(TN zmkN5Pe9p&wAl3>U2z}63eAV{}Nyl6%)ov!`T&O^TrEm(FFn$e}e|$3oq7Y6S0Rvqn zg#EXKOlT4f^@IddR*kbTyF@utc!0#^GO98&Yqn-G^HLa8fjo0k8zy3^(19Iz3dW!e z%3uxEkPL8W4c3qh$^e4YmkO%T3azk$&ZmcZ_<|ZJe5tT!NH=?Xg;M@CX9=gq37&8Y z)VB#hD1=@`gzMK3od;=K2LtKXgq+xk7%@7drvWF$F}^Gjh@Dxvs=UD$=m zWIWGwfgKiNXXuD)Xbs)~4&opViV#IH zsEMv-;E=*d4b^ZBY>14g zaE7a}ksHYhtiX{Q`GOtj2^>~~uy+Z@GltKkjXbwpnm|pNF#ZOa=Wyc~12oVI4*_`s z;WyKE5lG06KpB(<;YN4DKVXzV8-<4((8u=^%{NP?6VQ4a9(q#^4Ll*b8(?m%P9WyFiz|pn)CO37k-B zJfk!ARzfGFeD!8h8pbPxKz=p(aF?KD^Y;RNqly0Y5R)mCm>HCZlR+4iI1eR80ko7% zsW_wQKlxZplUH34$(jcO27lqKn>S$4aX@A!!V-55DdrZoW9Ttc!+{4 zIhfS>cR9y%a#SbVDURJKgfIYc4lx7uCz=aqkMgbbE;`HHQJbc12_=T0xd8v zfa9Y);OV zFc0;BruwiCW_qUd01sq<1VRv}#7YD_5Dnnq4coA++Mo@3x~C#~qP?IBtFVVGX`P7L zcbsx!jmMao_&4!FFD@`O#npZi;0Ol-2<9XPk~*oBnyK&_ulARzoLaA<$4tv4Sglf& zp)x9A7llyfuTNPB7Sw=Mxiiniss)*Mso)9FH-g3>tG4M5xk(SXs;j(eru*;#Zc3~k zTdXt?4&N}c-cYjLzzy4w4Z~|Zt|7BF3kx~Nt?zDo_IkA$m#;@tLP;txsX{QN@`PVI zu)$=SE;CFwlRM2sh6{UrCm4v+R|+7A3=%sI>ky$9YY%9;xAw3P@K6IvFa#evxN&-{ z;!qBVi@3ws4JuorcIlBZi?cT?v&|>7maDUhsypw3XyOQ@fJ3xJ+X4c?0usPl?1Om{ za4(_@weMP~;`+L1 zb08Lcu_=N)2!hA3kZWn1VgC9K^^m>wU=Q5Oz4`zT8=wSmO1R{U1T-)X=Wq^*dk){Q z4SX65cex9?kPEmV3$b9iuh4w0unLf?hs^g1n2U3iu(_N&KbQ)s8^OBu7rP7`yOK(~ z5G-jHh?V-PyKj^UK(lm;Knb#v31eu%8N@rUBArHKLbAAA2-=8_D7VGHhRNWD)j$ot zXt!oL4|BMzyllr59ojn>3a^{pbf$h40Ndr^NS0!APZEi zhaR~Kz2Ka6xeG9Bxj1JDkpK-dFvgr41DZIQ^x6>(EUxbQx}n>y5gf+>W`Q1zyA=$O zze_8JrwK2`2#gR3{+Eym0}MN{b1MJHNBF9$fk|(Q*a@hRkjLPq-{6br@Q}6o4)b8K zds`3mAP?{m4S@>;qU^)O3dBP&1VJnWMNk9q;12A-4(iJdP23CeOTV~43$ri_xR49F zzze-V3?v%N!|<|u$b9ui3DLj-WIV<{YsTP;z!@>F4gAKFO3iO9$JiWObeuHJ#I?Hf zdm<=zzBjM2!V`}0fRGl+$ttkmAV5{g^CHD0I@GTtK{&IV@js_u(!I3rk+d# zNg%jDK*}F01gD(PK}-ZbP{gjR#Mv+mzt9WwYskbAf^e) zyv)q(vt}&*weqsSYdkLk0lU^5)6`75*<90LRiFhbM}`;9(CZ1M76~$g2r;uvlE8rf z_|AOfk1sXPJE#n6=?(dOw-UOm`@j!Yow2<&uo zz9lNZ6|D=qunW8p48wp8+OQ2*5B=Z|wCxZ4(5wFdxJ1yy2A#^O9M(k;+`=8)Mvw$WY!2SQ4cJhk!w|o4%?lfi z4c-3m4T%e!!?@fnyPR?R*BsE@CSAbtTG+A65D(n0j(y(u64~ke5i1J*GEl+$dw(43alN~uU*ytAltQl)%y?) zPjCdh?Zdvk;io*@MPLL*Al$`G#O3e}%Du8B3cn*t*WFMK=WxVFY!2vP4(*HG%ZZGo zAPvdf-QNA(h&Ht14bzD|)91YcMtK!U)RboLgbmEeM?a17NDmJiMk5kA|r-4Fi|4FfF%1zpe@zTv(-1pY+e z;UEs;AAST#kOU!14&LCbd^(~Wtqt8k4(IU7?QoWn&JO0#4cM)mzJQF=5Dq-v=|0ZP zK<>aYZOx9I8Dq!kK&g86)KTjUW2ae!DBZDG%3Y}1D8>Uh!dp3ddj#Y)%im8t1az4^b%QeI8fgxQC8>y@Bkx_%16rwNt72}dVylz?l+R|?Ef{_+7%eI&_} zuFwglfDB)n4($-3`rzho-Vgk+5Bq=yM1acL9t0eY%BI}s!hHlp5AH^Q1W1qcN)WQi z$_?C5vQQnSw~DL&JP&E9*4cfW)({R{&-H)(^_|}1@^an)kKT<<@CBa&YQOd=fa(IF z0utc%aKG?$uP@9L$cBjVQ$Fi5xCz^*R~O%i!l&#i> zh3X2aPz*0G)iY1+)^4V1z{457?Rp->34O{zFZ3Wz^r(;eNsshLpafzN4!=kaiE9qE zO0k-}$?Q-L+z`=OPYl)o4&yKmUjOyPzvDbUFJvFOX7AV%VC2pI|MsZP_G(}7agXqI zfBkOa@Xka>%mqRc&-bTb36sacJrjHyj|q@a&!&J1n{Wv*r3od7W1GEw^(L6l*YaO_ zn=()H)y}IqZv+4#MBqSz1qBWfGDM-mghPlBDN@A95sF8UT*R2sq7n}9)}aHLZk;=K z^5oI0moJ~beD&Cs>y}N}Fkili5!(ii9Jz4er2UK*RA^8RMLDoQnlxz(rA?h8T_GW= z1Qk`SUcE|H>k1VTynY26R_s`^WzC*Nn^x^wwr$p>g+Cqs1WNH@P>KKvQbeheCRC|Xozet}lPOcDP;LIgBsdc#P^C&WW5&$cG-u38 zb?TG~m8oLNxP3!6lAb<({(Sr6r;lE|Do744T-Xr#a^?>uRdTV9E(uLA!VE*K!^ZyjBM?L;!Ne0(Q1OJ5O*-N1lv7gl#6?dS zvBWggTr0&CR8D~{721%w#v5|dac8&QeB);yedKwkIOP_42+D_|WKJRHB7!anEveIT zOC*xG?i`WWX{Vi%zzfeFmFj6H9hhVaCeC1n+5YC6_rBTY8f%DA#+P1tapoClgeuAf z7E}O`zo!NSP%5bm4DitauZna+OE1MVQ%yJJv{O&NvcwWfLJhUA3^fs~Fb+NO1Tn_| z0b~$D6scqrRyl!fHWWKMr4(aI!32{^PU-9u*=8#Rl}w* z{N!bqU33X_(EE;JAwd2Zg*alYCZ70Hi!a7FV~scFI4@Bt8P!5lgAFWIRhKPH#Yhez zWDu7NQ6v({Fww-s$~bW`6<>k9#1c$6{`rJe6MMBx6;)C(hL|9~Au^wR_<>qDCZnO^ z+lacIG9n|k))s3b#MRoOFV7_#OlZLI#+!1?dDk6zRkEiYcF=)I8*K8O37c)w=0=-< z1@@(2U2?&N6;_@hswk-Ri@0%!ADuV_$tR~gg{nHnJaf%A=e+X-KL&Z!k%J9wFilk5 zftTP zC8vIZ2#U7;*4u9HF6v%gYnjLIfki5bA*rW+yICNo}?)@HSSFQkJD_CKZYusiX z(34(x-mwl*Ji!PUxn4wmFvTfy4}0Is+PKDdE+r@dUFiacHuTqxZm_Q%C#i=$>@g3y zonwCdvtJywu?;xh?|%WL#Vlq)Kxp)l12cHR;uN?*LRv*D5RBkgP_W3!NuYuogk&To zIY~;+r4o^t1jsT;iNAm_6Tvba2y4cwPoQcOmGD^#2T=%@9pVz3FpVixaXQoau!K51 zb30=B~_onCrW;W9YKk%MJtk$itl}k%q#AY_rWj`@$ zLw#&BlRWA%PBzZ19N*~1{<=9wI(Abg{|g2$bb*UJ&O#QfXhk0lI0L8@(w~=mpd$t9 zNXel<0tPi`BP+R3hBnlp8ni?tFgXc|f=px>0wL-CVu?`-trMOQ7A7n~(Mc2nR)vTJ zi(b@;!jMo{m4GQEAOVYAuA&!wvc@-#I39YqV;#kG0y2;A184TYs77t(4=NH(YCgxB zN?1Zvqngbnj3SQQ?8Z0F!5x#(BVKYtha1!8jds#;e{_UnzT&xyT+~w*vdE_&kHQs1 zQZR!4^a|zjTK-Uj=5?SC1#DmiJ6KFzQlb*wr07P63BQoa5|v<IcjjQ77x=8Yt zmywjC*k2!6xq~K>utV)V=@U)adTHq=*+bdX7I?Dz<~ zM6KgMk9vOF)mH%Zc({cfDg{i2^?9AF*UG{A%D2XKt{J*Q`zBVg`VAGBV@l?q8EsiM zgN>Rw(<1*4CWVI>L?EP1XE_Uk5!W{Do?#IST-;O`-b`Dd$uW*992yBcP;|PVIUVT! z{FcR%UIL}%WNB`uj~wR6&USJPl2P|ty4tN@st+c>TsR{d24umj%d7BM%bJ1$rJ${K zJ#mUxd~++TudhSqWsHZ85}H{SCysXP9Z9x##xO>UUc?Da@S3!xo%6J(Er@JyTNb+L zg@xysHh+nu++O4Xx^qhd8l<}i>#k0_S1eT~G+nq*Fm8H$VQFDt8XNi(lDo9C;q63M z)N|vvSc5EZ!sTKY_2EDVJg|0IH@xAqZn(weK6kovD$9uVxJ5>=T z6P%pe-5&9{*WLQp$9{tHzJ2cB{jkBqgsq5$BH5TiXr?emDvYN7qqRcV{C#j~ugwT+ zKVlI!$Hgvqp>uAeZ5+?|IUfi*p`!s7C;<^bz!G4Aq8qVistzQmh!tZ!*P}q!n}XSk zCtjGk|G6~%vA5pyG`T60-_s6sFo#pCu7IPxgVBW+Tm>NF1Wz&y1f2WTj_4;w(xYk>ol00a~P5O4w0^AgqTlHhWJD2Rdzbb<@ahB(o{Il;ZE z(=Mw?GZ=$;LCC@c4yd&oT%;V-#D+To6wt&@?5iIX z#Ze?h30R>Z6vEaa!XnhN;AuHZz=V&Y8Bb6J#50;HbcH>;LLhntZPPYA+p}1hg)ghmu#K-^-c2h0dAimE4of;+UsJG{Ves5Cjjy{l6jb_uJH z@HCQ$Ep?O|9D|AN5;DAbL`c-XUN9O|z=RHXHHN#vPdot${_sao^u&PF!BRBHgSCP8w>~2gig35VY>t$TEA6j1y_iLUZg221R{_0#gc>tS(pV~*uSg0 zjX`9hDv$y*96%Z{0cd1H6PU&lv&P>7uBd9dI_$xmw0Ke z=c*TT&@OI>N4%Mdf{Dakc)?cagiP=NessHl{0f33OMgVjvqZ~@V=Vnztk7be`l6k< zR0Kw7wi5BLBy2fI_&AxWgem;USn$PN0;0E)1;8{(FD%AP^D!}b2T7;`Dv-&bqe+`g zz??)XACQin{352SLn-jgD4+rkI0v%2oBz?d+`u)(tYM}YiI;Pg#ROv~al&iN{#wah3DDWSK7$U`^;L_mZ?Fh7knzn|#@ zOo)V-IxUbi$+yy@T+kzXiUq^eHen>j)BFZbV+VO)gU5_a9-sjfpiB{v#s>TWWV*&V zWU!_N%OcQ^-hx*uayoA!aqkLa{AnTIq|qt|Q`n4n5|oHwl01;e4jS&9bU9LV7` z%N!KWe+)p$z2%7y&?XG>^P$}sDhsxKy+&X60pe;V1Y%;PcN~i zp7hCX^h_zBf)0p>b{J5q#I!)%D%b)w9P2bPNh5v0Q+=ohcQB7_u%mgi%@)MXR?q~s z%fzxY0pIir5e?B3FwsXP(G``{NtL8e*aS(CgiKhB!`Rd|Yn=lt1VRwimeEn;F@{rs zLZkUF^{YafDpHg*J6`C8gCU&nB21K2Nu5)h1)Ya@cuy;cPadd&72whYT);&;7oLnX zru$DRn1U%t)7NB&(X6gO9K;X=wVxW3c1Q_f!qf6Nhakhf+T=q>yinY9g+l$x4*f(( zJyGKPO@b`Z5};RirPO=HSI^0WKK{^ye$9hDNCZMigiHv9P!I)BkkLuVtd;?UKY*1| zco7rH5%sf-RX7?{P=!^{CG)hoVbs6co7EPir+U&OT(CV0L&}jzBYDUJE3krc%hI5$ z0ntO08L-UDBp+<_$DfONCx&RVH=PJ<>mT0@)U9D_UUOBelJ6ThDahR+U%>HgMUO6@!>X zw;CutMZ?UT?GoW?x@LXW{wes`eUMgmDO!B{sSI06rB#zW&4;HAxZ1?ZsWq5fz$aaT zhO9MIb`9IE6<06hH6-Lg)iRa9%&?gFcwsw$%eneH}so5kCMC zQqWN*JP}>7SXB_BRdCYD15a8|Nk1%CgBcvc!G+30*=z0AC0PS2xPmlD12xE8%{4j) z1l=SMUDs>Yp8eT=nB6uRP=66McUcEeTS^FKuKR5X1|GZGWI-ggP+X|OSGbR?Wjl5q zUI`%HdL`cDJznNz;TDdNKhUh_{R4qbgn;dXwv}5#P}qRYTM!wAQV1GPIF=nj1&ifK zA=)-4eJffpyY(pkO*x@jB;5r|tCMtS&^%p|JjjDYXoN;s12NbE%?&y@^rDVMSxDl^n*}D; zKQJuN_x)H7)CO-rhj|btrd1M2Xaq;_WkWDDW)x%3Gb$c%z%n*t&P?Oaw8J*ehc`|q z>?+3`8#Fl%C)X?|bnu2fj;DDNAStF*T=+;<2nrEiJKj8G;Z5GMRpb(Is zrssO53q1aa-WkT!eU96<#RKl`3sAjLLqG)9!BpBI5n>A-R6b9XWZ%cVx<(Ag+B;eN z>4xl}2PM(vY4PQb_F^o}QrrqUAHb%Z?V=U~$}~=6XKtf==_XBEPeCKK+-SZn!=K)8dv&4d$@gt+a4 zKfnVJ$y5W|XH4B;LWmWZiAd859$oT9l>9<4oTI7))N#y)Za4>Sot7kNT6O5K}c0(6_$W^9sv??>Zg|K+O}=50Fi&@-bDC=K1hT;;Dbum z?NE@>*10Ix*(^jrFxuh5EqsJvG~7A4x_0_gIjOpA;D&NwhuwG@sL|z9*z1lqgf*ao znCzk*_}tY~f+vtF@{zQ|?#9GUY-fJjcj7=yn1~2O1ZS56yi)w_V;X6J8YBsheQ<;>=4(gTgU2*)Z8~Wt5Uz89{Cll6ttHto}P@S;9y z+=`ydg)|vWKVfjeqD3rgelv2yb6*gvTszD0qTYKV#tnu_Z6lD1ZXjgL3&! z)8Lrh#)gv(u4pZX=|Gd?)=dXD;xRu}D_NG``Q3#ySMYF1J9GAcHb3g5mT;w}b2`8C zYnNm^z-K?W1LvLFJg8nkpJ6#)t_yRr!gt%X(8Hw$HSdXLclKvTZAO-MvVHB>uJ&rj_M30v>iu&(0B*MJ zS3ekp-oAr7AoON1jib*I^VD5y@h9ZS7&nngm~9$0w{R<#HIoeP?BeUi2&b)0U}wcAEWhI&`-lLH%ce| zsUIOT&3W9v|G5Tf=!wQ>`9gO24`}2^p7VLO`8vn>%vW0)hF<wb&HyRPGLd6(`c>e_UVMeg%hh_PZr!uWZ1{y>0EXYk26y24fA@!f@CRT} zhp{JkKQQ>SSNrGx$&{wRCZK-#9)o|tQ#KjRJ>&(#xrJJw1;QN0eaW;<6BBHe;K}Z> zdoN86yawHC{GNb^`S)Emk8tFje5aP}nx}2e_kT(Sh(CSq+}Wdt4a;z~=g$ij*)F$FUWgTv(HpiVvg1e8!jvEmCb+{n{UQpYsn$cIv~ zQAHI|JfYQBDSj2!SY@4+R#r?*@xea%F;MeDN8h-+rES;t49INJ?KRD4n88D=oRw3Q@W2 z(u*&_h`L~dIY~GnFhNMFimeMKxj-P@JeDu3NF#B3WWR;RK3LNCARA`P73W zUDyN@6SKVNk_#@mBxoczh9Sm|JJ~krq?7KnGY`1oddto_=$MPnI_bO?}|BZZD`($ufTchy*J-|`~7!z4L_tOA$*vphaLkx1Q8+bC5lYPo@C4k<(`~$ z(kUs0JaU1t7&r^cD~sB)PpGCEb1SZ>&gq4~#0uhvRY_s%&bppOmK3?W7$ebKwe^pU z$Fg(IH=1Q*Q%<5byWo-EoTL6^*5Gap^?LiDVT_NU5U{WdWJjQ^~!`@p~46Fkq>&*V=`u9rRT@uP`OeyWEpDlS7v1Vsul3<= zeqQ_{7{e$=zBQyF5cz{2_HYSFC}a-|83dmUb`fSEgBtwVNXJl-3jL&_6RkMKd_IOi zqCD^~xCou-hGD^9VE*uQLTLpgA_Au<6#Wl)1Y#t7s_N->|z zouU}VK*=hI;+K66Nm>(J8G{yyDn<&$7m$=>BsWz_V?d=5eptg*eAYrwp5<4gyeP1G zmqHoW7#CtNaF!8aX*3)j_TU{q4B{EgNJcy5IUkLf z;+^jl$)ZleihS}jf>L9as2p^pMiSH)t4LiXIG9jY{G=R@Xy}Nh0ENL4778%pokcN< z(NYGD12yvKONR)qCYhrfue8h5vSBrL&?9?rNhOZbL7B<0V;=U<%3xIL^v4|yObG^Qb4N?}AJ zX1#9a?z+#vL=ce_935x2!N?3&sDTLNpetJS3u2g~p?s)bvjp$%`C!yTQ)>1&Hs!*$%S8{bIBJhazSVg94TtljBP zsEo@R$Pvu4z>&ln2-dhC6NeFw-IqXcJ7~koCiFpy4BA;$T|No2tg!b5lsFD z3?iW{OSx`?%8c|0%HucyCN}YA`_6P#5de5MH>+@ z9VF!jxDB%ochp0}J|&w-0bQ+i$OE+-KD0mnk!YUkgV95EGzuVH=}A*M#g@KwraLY0 zffJmmm%zj&5}t`sI71X@$ip32z3TE9q}3F6uEg(<2Z{^o4}wTCBtGXU(e+R;7UV`Z zehut`-j!1ytPoL*t-4|e!VrONwzDUCQ5WLs31Z-cCNxorM`U6{QH0CU!Iy3vdV?J1 zV0XFqvDzBBV|bP=M`3WG3Tg(^I8h=)=kzGEgOD5H($Tv1^XK;Hx=D8UFu7~{22@nj%bLY zoXPD&a$}7~^|Pn_e=wXL{GfBGmf+;^LS;s(PyAr=Bc{}6&9IK&{75g;4{AN+wLDA^(~-Yc|1FZ9ApG>u*O zLS_LVO%;?K62%}Xpim&-9um|l5JDcn*8`fxC-EGvD1j2B85$&lB18fuSb`-`LL@N4 zAqc`I?1NJ9S&h_#w?qlHbQWs0UC+lv#^n z*rAoR9A5?7uMLGzI8r9~0hqN=1%3r0DnSyY;}Z}9k~JbFWFRFd0+L~pICR)g8H+A; z&GoRLC<@9f^e@M%HK}>TC)t zXkO>VOgIWfD%hML!pJ#tMLMcu5-b5Ch5<<;*&;Y1B}n2sDuNC{ZYi zq6wCwIVgz|Azwi*-}WG62c&>QHe^H2V%hTAXH)+y2365lxNtaPL#@#BuNs@gHNs%mVHpLbzTC7V`;Ji zCpf~0tll}MV-mb3Y%0MHOhP2o;~_L6ZPH^ScAy8If>M+qJ$Oyj0Uy29P&!1$IgFd{ zh2mOrU0cEf2XKJ-z@t>wf+QG@`w7b8WZ^@w z=i;yjjt#;h#N;FiM%5UP)5H}`)Dlf$OMumbPudkF5tIjENap#(P^iLRt-(@4B_hHm zgu>=*M#3T-LS)`1VxX%(7J@s#lW+3rEfw?v%{Hs^Cf=exwB z5IPf$c0hFA=#56hGdP2H_Nb52STJtFB^bgaP{b&N0w2_mdTJpT5?On?XCNqy8wrBq zLBcEW0x>99XCRnIwk3HB(fErsXh-S=qP^u7vBLu=DK!PuHOsp6}6+q?AxMqY# z=n)(N5{N+}7+E140wdC6R-z#${lg}{6!vHjggKEg_1Rop2|18MIiy27xQ#!yC=T|+ zKG@s%MT0av12lvxG(d{9F*R6{Z>1FXjCGW;m5)~as>qbMAyA#B1$ zSYe=KVHh&0dp_wP3<4ksg2I$x{u)NoE9`ka{KH22D~>5<@ElLi^=`5{Q9R9K$ED!4o*BownU3k&?v*d7>Eh^t7$`v+ zNQLyOffJam^}Z&&8i5fIK@n*0_PQ*vfMD8s96E&^xn$c}6t zm$Nz738EaS_mKiHUSWDJDLlV(R=H6iH1ZN&q#SGgfCcn|vQTBTB=G0x{}A8L`J$uV0{~r@$J_)S8vb z{_q4L?O@EW;nHA>67B|bS-mqN5itbs;v>= z=@3XX+$xz?s&pf~LtN-mxkLtL)LBhbO<}ka{9xzmoakf?z8TB|c?lnJd z05`Q$KlRC;tQ=dlRadoE|2A+_hpIjUaf`wwh=Lvz1jdom;W*dE;n6CaKAW=D~B^o193}(jgNvPFdUAjM|ogX ztKnEgteVE{L3>O>JZ{P=-~z72HMIIOK#wKY;dM|nPt5}bj2 z2eBGp^nE+_W9xSjWOP>~!7Z2afNLd(GQx+_11~K&eg=aa#x+lPG4fa=3&ER@S|e`dKGcIcn8W+x=hN`QF64r=@B)PJ#DhRh)Xao7 zIFGhu&2nz|Khi_F#5Tw(gT33k0Ve~ayRnH!^&3lG!VS} zuRn2^Hv%DKK^J(z_Hu8spZVGzdlHxsw9o5ggMnZwLLyKoIS`m-==4o~J6_y^Kat8# zoK(0=i;?)V)?|y@gsHpn)M|m<;(quyaKkm+yElVu$ZqbvNB;UUG`h$NJlw-LDLBK9 zO5rD5!l!>9C@>0te1hCL;U!SQ!C^ws1sx_tVh0|%>Wqwm`~^%5!@9E+lq(-z_W~Yr zP=!DOB1nP~48hC8JPf6GFNeKYv1;Y2k}F@pR6UaP{sc%zk3oP0@lnQ6Nt1-MWZA-n zOBXL*h{TLpgyxYXHkUAI0tE__B}s15BvM2PnnZ;T9a;p>ow;t=h6Up_mDjFZw6NC7 zrE3?jV8Mn76DxHWE?l{G1rw(28#;FG;L4+CFJC@=`|$GP=Z~*He*5y#o7Zj~Id9gk zDN~lrnzd?=8(T{@nQ}5@l`l`0u$gmb&!0hu7CoADY15}sr&hh1b!*qJVaJv|n|5v6 zw_}GIwfj>hO1n*&3I%FYrc0D2O`>!ulcr6ZG-bks>3AeXks>kQ#EDa@iLPG7k~K>g zuVLA~t(&KBFT#Zj8$N{C3KArXz*0?8L&RhL|Bye#Fv$@^(zqgvEVS5SC6|sMVu%MH zBtnTSe1c+%3w!!0D4L2uB8)?jI>eKA&Uq@BUUcDV7pri|$}FzD0!ys1c+n-7t<1}& zn{(J{$DMhAq^BNzh{S6jz53dRNWlm*%o=2lK}MNt9DA&q$Qom;vMn{k&C4&r3{%W8 z$t=^%Gto>Fv{6C{rMF8w83mM4P66eU;xfs^lT9eWjuK3qdoB}8BuONZNGx%#lTK7o z#XIlD!zC?jwkgLQdkpgDA5Gu;XBCHh>194h9ie*dmK3te}F5DKh>{0*NDvFye?KiUKhyc-Sdtn_+6)Dn(szsl`QH zV3bjqY_bt1s$Fa>FBl!mL8l!cgQSPZd5`StFMR@&r%7(EL8h1}8LQGtEV1M=nPt>W zSmA{kZrI_6A&$7S;XE;plHg1^rOrF^%;Xc@KEY%XMG!%xkU|I%L=Zv}N%WIbP{H_= zRM35~mtojihn`G3eNUB8MTN+fM;NiFm`}u5^`jtmK*Nzn(ojMOkc_}piv(MGsn%A1 z$e{~iv9O}pDSQHI*&>eI-FGzG@&7OILnbcdlR#$ zO>4KIwo*#XQdAYC)uKh)^yd3JzkBYz=iEQ}eBQ73GtUQ_ESY~! z(G91r68)s~ZW{#b$Z>Dv6Z1XahEJm{FX&U>-=8#?7YTV3_mDe$xAxb>&#yBN%Yuo0 z`bUM2B~p*1d=zWE<;ct(vHu!)h57Qv2PqHO%F; z=#6fwe`2&W5E?D~XzqNiz;5D;b|Ke>vqa@D#baG2>zIV3MP2*vqpUKyX390z$%3yC zayYMNw@@u@;X?)Yx9ll7Ur@=Xiln5wK(6IF%KN+L;K16j7`ktg;|g6UCZ^R1(a0|) zcC&ApPN^~+h6PLey0+omy{=qb!Q(e}hkN+Wt9fvi*}HS*z0*vfAp6E_g@Jh`5yxbV zqs0b1uuzlhD=yLLD(-8pOo|0U!u3J%#`T-15f5yY>sapygTi*Q73t^?FA!OoEZd?{`dDFhXrAOE%FFw4f1%kl3ZY6Hd+~ z#BcP}Qa@{p=Q=1%;GZ=E%iy_O>&Cs8H)HBvmh3XnI&u-vjR7PPz%{tYzu<%*UAea{P!0^$2oX~EhxyMde!iu8se_ms?(>TDX({aXUfy56|Nw^W=(jPXOR+LYh4+C+BTFPVqOK~ zSiyoq2_Q;EEcm8&EUNB%=1W0+p7RTL=bmi|7v@veR0wI21$;G&IyHEAc4#xiZrwhX zpqyP8he-WAi=v@q#3Q+76g^D}z0*RE+&ss&4(hF6^Rg&>1S=n+#-#2xhSve=HTPxA zT#__=3^^(g#kKO2>_h5<>|`y1#m^)#XJCbiXqK2-ifd`iHCc>8j7_*Ci=e=5uT2n7%unk zy}QvQm?=2`T!}n$Z~H6jrxk(9y6TEy9TAMBPnhF5SO1xXQ(2DZ~ zM-b6DSq{K6E>Lo{~K zS9MhWox=yzp2Ewa)q5&~An`j?u^fB0rjL|~?+PBDeI(F1$BP_RLtO+v!t_{UuDA`! zOSI^-r>0!#LT^1yb}{Z$+HdmwA|QH=1WofAe`l=6P?)F1_OBxg;2Filb66>Du$Sy|@zR}^#BY{=bKp{=46Vu#C{JReNxV;(5}Te4RFVP!sWOYa9iKpHd>fBKExt1Iy~9lcvn>_Y9gA5ZBwi zWjT7yYm*K)`ZEu}-J|Lmfo=Kk9e-Udzbt>^FCTm4>og|4tMa)o+i^3fPA1}8F*LH9 zY-o4|tQ0lEP4>+ZrDoU`bNn$iUM<>2eWiFixlKOPBBG1mBR|%q!yDbV`;i^qOn<$Z zybQl)Yh6Dy)!XlWFSwec>!wZjfOhKI+Z|@F?^BXhyw!dL<&{r}j=5CTvr4`Kkhh+e z;#L+Z0Id0C%S%e3_!9n22OON2g_gN?!g?_j!9oNUmR2pa;(2GyFf)fQo1qqoKr)r zOIXnTZz~z_-dtZe)R~>2&Ojv4USKF62GEA$Xo*|&UiBE+kB#!5IXW^fy6!=W+8__9 z23K1CET$cOZEkr%`)6%BY18m;pZ?b~f2Iq6))!P zZBD%3(rfMLp7=edse6msVrFf0^Qeg!6UHq6UrDpT7!$aaIb8HD@4^=EJ5t##8cxKs z)j1c{JG1vS^N&_?AT$sA)LA0iuQ~p>Hsn@X6>$A{Dm0CbI_o=w$`FIo-mzIFL&tZv zb`<-uixY9bmc5nk-`?b$2{1AN;{!nWU%&g^$RB$69dc8+=59RjcGVB^`KaA2?$I$} zB>>lT%C)QSJbZ!LDnhvy61jwHI?`EmmFZk{l}}P=czG=HvwfN7k$mrve85xQFf8l` z7NMaIRdYrVu?Q3ABE2^pjrXLTJEX-6PT&6$ngj?i@TN}AUNCgR;p7l zvl9*T8@cb-ga^GH;#%8QULE4m&0LaA*6!H3t>^u-Z>SsZ&()~T-~^<1ne0iSS$(}l zg!vr676EXgH2lz#?;RG#kA@p|0{-J2W^!<5s7GhoQvev= zj2QSs%u=~CwMpWWlF(OcV$wC0S>U?)?pIyW%y_6Gk~@xE&wi5Ub3%YJB-i2%a)Asb zH{X5TldDUe*$>FjHBP&oa)A~w6$94b3zviY=GK36k3n<+&7L}QWjEpbS9YezT1 zE$+_{m$-{Ip9`-d%EygyCy8K}@9r;qkDFGCF7p~RR6`(Q*r%;d2^3h3fKZ?4`q4{4 zs{rh~55ko7j&VCWhUshRK>Rei{Zg%j@si5sTD){->z#gEFvN0^gA&~poGcy`?=iC=eD?b0sIzZ zEm3I@t0zXQ9QgoRx&`sU%w1GAG|6yXN!c;&*E*1kxtVe>KX)V^zU9CGnaiC?ColPH z3#50~X!Y#&Ad}h~EG%vcxN8YN!#MgQI7_2TOSjox{A4?N;5V87{v^-L(}Ju{vU%~a z<;T-zLIdUo<0JOh><&Tp%iChSAuf^IELyjC9e}P}>8_sx1k*4(8rFV`7#QYUgOkOs z93!IS?+&EfMM`El{d5~8qyb*pc3OH)Yn<0FA_bBho}*SmwJb*~>A8XIoS2@m#g$@f z<98UQte>|ltVso7eCKF-y=}+-5XRz4+7Z$v;ht=d_ep zUy`z+lnP4LM)^Fqtq|ifAQz5t9uxjvdo-EbVq*Wng?rPPT^vQ%xDCX~hfFRSy?O`y z&r}kiHgCmu4WK4w;aH2}ya;BmLB*FjE9jxZ953RBpm$=cXOGhV5N{@0Ju9SNjt-BdxX=;U9LE-Hg8OpaJ=2>=@egzZ}Y$}1=i|SnEC_0|*D1BxqKMPK< zfJ=2+ua#hn2}x1k;xVb`23PY`kloH7-_t5!CQ?(dnR~5QuI_BJ&22F>4#C;+Kr~%Q z;2WcFmhf;)eK-f*(P!bD9{bC&f~d}3?93Ro9O@jJqg0f51Sd(DycV`^LDZ1tqF_-YBspjo746u0EDKJH7BGbuQ>uIR~;L@Lv8++qhMBKJSM&Ig}i)5%9W0p(4G$ zAKq1-hqv>#xkErT(M{|LoD4hPW2A24MRH&BcM^(xk~s7=@Gq zpp9s_7jtPvvsRC#aN|{Dp!0HvdhFp3%kaTf4&%+cq0%0C`j!G8tn)tgS665;9b2kB&><0In6H;87`j)C|8;d_$f+ z>Yv8@+z5p)A!*;|!opc{CNoI*9%FEIc5UT!eB_F2Y*j&E!h`$f;e`zH#h8kZs}+tf zr7G!#fo3bEvQMczc4txOE-}${uKgkLGna5?UJ@w@3Bke?0o;4T+$WWSA`bHKzbTz7 zG{=$O3z7HR0grDOKOV~FYzDB)e{uq_a&fo!NM&`)N^*sdaOo}T!(VU~I>W8A__VXU zJ8$!OmrdrRQvTTb_#I382T%J0(0gRXSgOt_&E{vw>X-cYlQXwm+h4{$h(~rA177tr zae-5L(Sd>F7l~GqWHNJGw$uUKdaF8v$olp%XD#Jdo{Z=ZZR%W`pSZtnZ+wZFJFevR zQ)X=3+8p9`|5f&(VHLM2Bg z^Mb?6lIqX3AO_}ZpIbMm2PJD31d|?7TYiWk@Qh20Me?)^q3VhG&BVj++rPvjzN~Mj z6s_tGIcaM7K>Qy37@#L>Wjk(0rl0S`rOA1^W-K|uAIwL8Rbcw&D8^wFeF7>X!iE`7 zdh=jd(w}&hBwsza87)lv6CkAzoUYh@sJ%^WFJ+9f`M1i?NR(j&Xv7er$*I{@k|ZmK z<6#`i5mZuDBgu>+_5(>$)nno*0yCFl8@XHx|9!7jf{Gq23a&;@_9t zX*pq4Z&rKN&}buZXQajXRELJEKjiH2(?YjI<6`7hUwhxu?B-zeuamIz@HgdyA;*hF z4a089YtQ_0dLm1-Ch0}(y8Kp$Yf}p(lmg!OM1M3a5VP-aXm_c7r55$~!hA-dmFq_E zr-26_>x|ds?`}?&85Z2-vYY($+?|10l(k-(W};BZwJxn_)pHgvwLnnMBy!WR z6{gz2+QC2mO`?l-9Sw(-;*eH~cl)!r+XjT%IC|4LcNV8`(kTN*DRgL*+0HH6R`%bS zCcoO%uBEBl7qg!;?(c&aj6Ex~CuZF~1qazn4xIeZXLDPWFY#-AmjGsipAkT`14?bt z>?4Ck3GAMJ=&}1%I5O_gN~}ehVANHwe(;Qn=6=ZAfkdyW6!9r9Vs*w%sE~R|fJQ^a zS^VN8_NskkQlKt(hsU^LVp+d|B7E4=6x}e~DDi@PVJmjOsdG`~bn&BA_Ky{NTKNO7 z(OXG83AMZIR$6rN41#qNybkw9lPH+w_MWk1L{Z4wIwz(})u<5_^S4#L_H?=_*=Vf7 zl|H?O7U$VkJ$IL=z^Q}T+wxExMfa3X(8b(@s}H|hxw?M@2eXN__Miq;~8rz`4< zp-&r|$b!vYz;fW8UlNuwZaiN*ob|E;-Z*Oe$={ICZh?GC^kXy=?cbrl-+qlH{h|3Z z3(YcgEdKc|EPA)w>L6#g=cp#g#C=mw-#72bp~zig;Aogy(9LfSTiCU#jPS$8*4gkdp-Q7{eSzqz&dHzc zvRl{7y9Vg5U()sbHtP8GUSDMF>F|`WCPmJS{D)9*vDe2G5xczO*PsWBytADdOjbs~ zs0&NIK)Dprj?nn7kSxdN87fy)V~i>1A5C3ZcMMc-JSg$au&Ay)h5O^j?qR7Dg#NT8 zz~_>k&Weq9sOn1KCwM2^qlK-rtweLPkM|dCb)>V+iEtmRCTAIFT()p1jkKass%EwN z;zWYErvegqec6uOY_dV`_$?KbicF;4g-hHF7!K4q{v*XiOC_B|tg{B3B=2!p zXy|(JFUmgLHx^x6D7UTIRuxVPgt~}+{FR+oB~Wj!ZCq&XI2Ka<;?Ffn6=4{wVp}2a z;IWWC{j%GfvvxTi%N$a!C?isfa1q6t82dPoKL7TtwD0hqwvpTkL|j&}8sAU_ye~(sM~QPTQgE#9A}*Ics0xZ8NTo_ESV=GYwGX*cGtWW1iMbqk#u5$)rWlK zmGNy&-du;X$PFc1AoMNTrT9FLYmNIwB#l{GVuMXb*^M_e4;k^cOrpu65@ zn5L^PmfVNLP_1v%E93#lz;6?yd$#Mzyfw-A=fD(Q>NF5REGP3xg2R8)M81)}KAykV z-jAI>Z{P5bUhJdUZPDx=H~#A2`FkmBU!7?em#8wa{q%l)cTt5Ih5h4__1{a~FWmn_ z6R8kupSL_GKbeEY=nW%-ka`>`&46e@0vsgO)AL5`I0mDFT6qyV2C4e`xL|yZ`(F=v z1R57^h~GT@I@EmU=E;9(qPFL98dn(QXg%H)aMmj{w>VJ#k3Euv8%;934NT7&-(jzK z9xnOSAF{iRyvdTp?zf5XUx*;lMBx){<+z)&nhazIny;>D0IF{|9veRn?@@p8^9;>( z6jUG6KW#w4V+Ew8o9|ox4^8wq?K8MRlN)A+NMS**fRuiVygTNu=isOHK~UK(i(UMO zCK3kU_^EJ@L9_0b#?(Omn{qzn&AFoy5{1Da@T8JK}Yh?}K^@00vv8hZ@c)6hgD zfQ zrzwA!zCMw@v7i2dDq~wP zTnAY^kZhDtHlKd>HScVJ~-qv4d<0NRE_Hj*NbeoOg~wa*k3%&W*_&)q@;0 zNUpk2uBLvjws)>>a;|J+liK8CLLO z89>zz^ur*+F7-gpl2LYry@_DZJRlTH>4h(#$4HWAQN~PygU!MoL5i}xAHkm$Jh!H# zM-tNo?=6X1HG|fG2klCIv8BFSCDWJTemkYrN)L)5z=j5J<_Ngct~BH%04iJlUg*(g znD3|%;zvUfjbzEE2DCr6{2;lM_N4UdWjJCEkT?lGC@Kf70f^p|v{?LzH=bS+4~61e z$H7!<#o$ITvvLV6ypX22d@u|DPpPt*5=eU;hyaxOosifi%%6_R@i5=tcBCi7&?{Fp zdr~4K5n|z0qKANwMb(mrl`>Ztba-`BLAf6QNK2?e1eAk-HOf<@7hn2kwT3smrrr}D zg1OseO^FsjbS9TI9Rx*r*ACNSNd2SXxBF^^g%O|iOVk9ax7mVi8|!Mv>&PpCB7OHe zA$0-8<(S5b^{^+^zn*Lf)v|Bl5rlenWcA8qy_G?IJbQSA0AfuEL5Hl36)sDI0{s#7 zWZN|(`VCKPN+vug!`i?WS4I0_0qk21w3KxzK2K_e!vn(+ceg4>_ZrHDNe`qP^nP0Z zD}epv>0Kmc$3Y_qMR^wiWCt|+&4D|FfH}%d-3EwHV-@kswe@ySmwm!dvLS_*SFpUD5gaeI&0ebg=8h3%} zK0tL3AlijY&52ya7A$W@A!tG~fYba%-CuX57Y=B0oDzZz6F!Qj}(?O`Hz~tm4vIYcFpdd>C zljl=HGH4im7*M*5A~MXthj8PBAs72km5r~Kd-*zI;dM@kMLWbqLtXoSt)=RlI%Xu~{CAU{9oR+Fx)@ofoG`Ma& z_1I|fe&6Q5{ruief6(?|*w*ml55tKo{W-I}Pbd2N#$QZMjV;X0Z?13c?;dV9~zG@n~su}uS z_3{sX;CJz}-+Ap19+@_s7i&t4IN1|d zxtO@7H|t$FL`i)wtueRFegBaOySXIpk0&3eD@^YwKFW{1slRr|8}ax6+NDDt0?Lyj zx6Tv;a;tC2MUQAR%4sp)lY5PEc9(tK=0tbnJsG*)n?-@0B>sG_9Ye)!EpkCJ{VMb| zsM%0essw!{A?Ww9jTTbz>v$qr#Qt~%PfP?^O0YSV`Un;ZAWI?x`)F-yyp-BCOSxTJ zZ~ia^)n%d#-NK_y;RkcZ3PG^1|5=~{N&txkoNtIDzV6M%pVW2_5d`q(G1Ak`e zp*BC!U5k!_*^bo2!gg;UP>0zecWAVg@Y7z0&6DvFn0;aon#k!rt3KY@q9t-HvS=+L z#uYRWEz0hhJ5SDFxTtg6f4k;mI++q@G&#KkRp7MZ$Nd;XT2eN91R;eyCsRDAIZa2% zZjnhS?bhUIDl5Ln8p=MM%X{+*p%$?}!f4|VSoPeaG?3Z;k8nd)RPeShOGOmD9`iHn z?+5(1jHDW9o9hjJO!D3Gi~hlECE6FyjJ7mSV9O$|jn3;m+SX<<%#k{p^Q_5A zVE1X8*Wm~lQP<^q^L*!g*{T2S)Y5~I?SyuZP-^i|Z>f2Bp)+$}T&y09Ze+ud-I8Xz9bRml2kNjZ)0^ zZtWCpw{evTZLdNCby#XVRYuwDdpP?Tt^TM7jad-=6T!f5d$JJjBg3@#mYhz`y5rRsIchL+Kae$Ubbkn3;b0X(p-oi!AFEVoPxD z+m1E?|8g@31`I`fq#8#^o@Cy}$G{}if3213y3fpw| zQrKdsGp`DdpeT^@31;Wuo=f=E594j7W=X4r6)mYqzf_OTPwa>*;jtHQ zm&hq*5+I}s1DYiij#JOu=nK0>aX3=({#o;#?n2GKab~eKRNEW}R52SP>KRI}34-9J z*j>Ls`fi8WX!^8j&d**<1+@q-+|@g9`e?JW_Ms=Qkrg8zK(W3-6JPCG33b1aVROR8 zv$)wW_=Uc5sYJp312mU*2>K>2U+lcIHQ5v7U)-zJ1{wik$yNyIlE5L}dd@d}+)O>3 zxv`w5zrjjz05p&W2-Y~!Q4TgIMI;R&VqB>owIk48bpmuLU@N3Q>BT%fL-I zme`EKMozD}BAL~PL$lk&1-zoE9JW}*kLzCC-34%3IV>n9*uB2LQ5Bf~dz^EaU&%(R zGrFX|&cJ5sEpFv&#_{egg}`{nYY{s|QF4W7K#Do;r~5r7g)=)Ma$Y_Eko8d&aFMHvvPtQ1$2S zsqRPOJpr;$RuPHo8lamcR|%10s7Ci56bn_#O&37`E%bs&##V|oh=D~@vkr`MeANck zj36n4CJNw~tsWGWGgz7cq)9^)UY~;;W3s2zpjFE+?SJ*X8_~ch)KSQ$x$+uOwT6xx zZvH6#HL(3R+IZtYufkxPa=Q@pRxnJHQ^(lna&hqYUivx0k-3|d`rbv0 zmLDfa+)3CtSwkSO5J9T#3Y%!C{dQW@ogmj$IltJyR#0YiM@VG|`uKv3u1B+*LSY3` zRm;w?f_@eg*nf z=O;Q)#rDq*^SAre&HkF6IonVzJ+E#ehf$nhl6*yxAL!le$sHjo6j(Z`7v_RKWyN3e zw1j+o`dezFVgLN|qmAyl#LXhd5;OBKutfMY$8>FV_g(7DzQtk zmC(OmoR&eOzuFSi0AxE}|6*C{@kd#-Ll6hs#_LKD$_R@Yn1R?U#x#+*VXEjjMZ)DQ ziQ2xcNwKdc(6_@CK;vpDAbe!uxHo{Q`mg%U+DS5%!vtfo2b_s@)8Au?`P`n3O^eqSq48?&dvZzTa1F5b34-&ETFmiMp0}Ch$vnY z;pZ1IKOw()5sSWvwP1-u>*?`ZslNot>UNqOooSqE-;pQx_mvE3E1)E4C8WmuV#4E+ zHVDz?kyAHiYodb*wp9ty+Fr!C- z9dOjY%|d@YPrT5HB_1n2Xi9NK(<$Qxp`*wN0k}6>GK? zTbLA^sv*MKMPYK0Az2frTP<65Zf9PP4G%~O!=;oGAmwOiH5y8$gsYi@l;9u*=u}KM z?hXqCcS7Y8n)(RsKO~su6hgVW0QSHphTpokKpFd!neL7mh0+P_ADj}(+hwr;AzGL& zewj`GotVD0pPt>5uB@1$VVkj^luYuC|J50@?#4~$sIbW9ItIASJ*N!adhihWsALXO zD+#T_!K{*D6X?7uB(6LF2l0m3ghDXM5DX+g9}S_oq{;+9=#>JQA^roD{(b?J_gBH5 z*hC(-$i+fxI3JxQl1((!MVzW|c{y9st}ww4p+X|7dtzn1a}*C^%{?jwkfVL%X_^Ao7sZ>SuM6< z!<7>tCCC!T{Y=mS1k?v9G|SID!RMMm@(>ABdI^uw39LSqpo?(EZt#5^bwFUjw2<-4 zWXxO*A_I+3Jds>ZE?Zrt6=$!Oo}v}rFOxsaR?4eh7gPp#=IrRj?H84A=@sQ2xENfN z>ouyFd&%ARu4p7Yej*9ANP$hY6%!9Cn!-rO0AGg2Kdr}G2tjWfKtakS`Pg{pA{>CK zlx?k!HN291qAmzWjchDk3(J;mr2U5l`2pzAC$txYDq+QHV%$`WaA>_;cy&r~l4@hM zih)S=f*_i`MrAeUTCVYlRjz)YN`;(is9A;SRZ5*1bQ}x&dkL#QtY}z+Srx%t8}W{7 zkaA>Rb4ngX7_L*Pq!|0OtDe&Du#WAJA8VG-|Curv{Un&Z>XBZxa6RoMmiD6U2{qmQ z-T>NPfaWV)Oj2L-`>E#DM%q;N7MXgfjBu0wS1!@yHQI$4I96rtLzkDG4QCYI6>GUQ zVbHn&SnXOxV@f0O3TB&<=OPTP06Z;6)=lDJ(`~S+t;XuMyza|dw{ToO0+P8!#cDv6 z44{g`wiY>fwKVnIvn zoiSICJa(5dl8lm+8(D5x; zy)b-H^0}J`e15C-&t!2+Uu`A2t=z1ws~GnC05-kVhWMS^DO|@;0?7qHGPX$UM+d5e zD&?e|{V5gSI@PETbx%M?0I)i4tz#D2tm@kgK~X3NR6#M#bL{n+99@@NO>}&H2-mJU z!(hEssXeGHvP+}CGu_lM?nwCAP4Cz|eU(yZeAy(pqK_2CX`PdVFPgzg_R*N{0LeA+ zpl+K%*ZPXoR+zOxi@U9QVU5Jqw%g&|i>Z0w$!=OmPs&_-GL|YXwI^wv>hbSxS6k}q zsZ9Y=Y|`QNRqMTZ>z(t5JtW?wjHABtO9vf;)Susyzx!W4xlOoAFi9GbdcRANxzh(= z=~vg&OVQ84>D8c%`t8=e1|PMK1K^7ocy|ExJ1l(JY+%w5?m1oYBstGQd9WQ?SA~E+ z6Rx9ugzqeFgMDedJ=vXg(w*K$wfB@NU2s>08r*Y%1}$ zfA^1>!3VG)Qkshm3nccoQNJVMObGZK?s$qlIU2y4$Zqki&wq!&;9 zEj8%r>!$3IQFze>%JBzCmx*ZhSn@;py>Emt>2#!y;#pX zlOel%$BRJp3h}FG355{?sF9eNWtD}f_dsY6^)LqN)`)jfE^!H~^Gty}vzyiOpDjba zdS;Nf{Tfdr49P)4`XP`kBqSdT*^Pii{-(;7q$UoG^qssTJ059*b-@ScpqQnW*K>%O zQTmO}pC?O9T+5LU=8q@r*p2UGTe;N+wOCCryZF65w>1?qZVd&@kZdkR02v#4A#D)I zNdR&OfE2f&Pv#ani*N{K2qHY*R&cT0|J|Ln=b-iHl_!u=WC=XHE)NY+(ts4SJvBPU zW#gcZ>C~9N??C?9iR^tXFcN#SMCbVOp6dG%`11Y8_rmcSBd62R#-sPZxbf}dIZE%mM|a;iUI-5JjE+Mw?r^?PRV_pcmj z&(XA;E!$j9v=dxAt9g1{nwhiycgA*%IR=Y3&%k%hz%M||N`_}y) z6G%V0P$fw+?voWxJdh(`S5|Bxb7S-CF^~uFLD7sd>|{`jH03M$Kqp*DzqZ;xm9lVS zFwJOIEwYZP9O76HDHNM(K*C-SsA;3tL4&ji*X_25(aYPtBgflklC;E#&CgMrpLx0W z@7KKl8k+m&SVc2VlY>0o^8{Q*PU*8nVIM$Yg`+_1nH-b9*1Mu`4G8f$0V{3+kBoN@ z9e4Ha?&`kSJvs(9ecdJP&+s706mg(Pz>B1Qs`P+2rW>SzQOO&0R7*F#g{AqorfH0$|j z*rO@>?qZOKPWgx~wWMA(-<|u&T?ta<04cz>4iczeZywz_Cc<^TOD@^Jzh`{xU$(tc ze!Rv_D=l&Q-s$uQ;;Z5ZrR*2)cVFmwfmAoGz=uxqU+&8PlgsVVu#fE0HMk~c!58ft z09HbhRek*iczphEbF-NUba;G%M3C|0Kp#`7b`5*da9>VKfA$|N(xq%!AAj(S`tE%B zvm<$xI^)eP)yCR6YSf3LsF&2CJMhbs&%&9Xg&$x1#BW1Sj^)%&Brkd+DW$LHnFF44-F8WWA?w-*-Nx79a)C5rqB9S2`J-DpBN<(XN!V*QCn- z0C-2H=oGJz8o7FPRoZfFVivibbk#cP+^R8*`q}&jdE(B)HTn#7hWVxTeZh{E$tRM`uTaBy>gmefWcejlq8FZ%!{FKMMgkZBH=6 z@o*lUQrqt?W9eLK37mF6+@|ux?u?b%oqEjX^V}rzGxWXodRuE)t)4SB!=cc;O-N?A z@l##F!*AVsK{=RR#;GM&KT-$or*v;?z&vNq$V(ip&{BKGj?A$)}qU0~ITNc3^2}S7{PypO?K*<1iR=Udz%RDrCsw_}YNFqWgXE z)AH`ajxQ}#-z)&Fg#Akq&6j6~O`5c7v^qS?^9Ak~2 zuP#c)rpf47R>KuE3|nAgEfYI1(vUA{lt~w~6Nf-!#gz~0sxy?+J2W9vh(3MM7i)-)6Q3PVsjlU?w9myAoPxz0zYPN@vp0YO(K>H9&iQpN3W zi}TuMskn}d`}xzvliUV+gJbEc4ukBvGxQCy!7tg=`n<{H*=4Lkrz$0(E?P5kT)-*g zr(-kF9HU%|l!p4HJcBoCAh;}A1HSmlO#4f;?1zD$YY!#Dh!hv3NE6M4Wh||ZqH{cp zN2rX#njVc@@~z-)s09!{<1!jNx*dNgt6)QHYS0ymHx} zE3}2zy!kx*O&|td`ow+bLPOyqH+$cEQ_0umxa>M_Kj}Y))K{jIyS)th^`61;#gxQZ}8XN?^i1Z)|xKn{x{_0 z(z0suo-J87OVLP_<9DDEuLE4+@_vs(;hVFHE!3jdZS2xXn^@6tbUOPPD=uL#itI$~ zBz}4_gQQKt?7=yIt2ny(KUnRxO}1OWmx(~A4BQwLk3foA^RMo!r{NdRb!(s zm~Z>_Qm};6J<~mYK3<`_)pHOf@b}?RYBN|+A3Ttxkewyj~s&B$ESPB^08H6 zH?Lh+7xOW8p%3J>e-;vx!_GaNJN8lEOfV3l8pg}m8c}=Nk&w(w^C_MXOKz6mL#^5T z$^TXp$NL>3Q1S&@iW}=(!MrejQ%ZiJ=uKSRAA9vN>9x%CWj7GfN?usz%pfDkh^d)O zf&GKqwv7|31^K6mF*MmQ_2UaomKbadJ(@oIzoeQ8<&|sq4RNwVkQhANSMMXK#t(ef zXp^f#7Z`73sU-xLn%Bf9s%EvZS73V0O{t{fZ?(HWi~5noyfn-*@IGE)N+7eR;Z3a_ zY){hWYTB*pP2K#6x54uoH~+lDBM| zE8)I#OvtTE%9I*>`A-$cL#uA(sB&_U=O{q`retSc5&$n~3smR`g!^b!vsIy;Eq{y< zpCCPW9}c~;h70&maa`9>#oghnU&$XglnM&_=x-ma z>!p2T&3!BvBTC^R-7eVe{$uf3YrMao*sGLVZNtx-dNl8T!_HK3=fO6#-dk+ccgVdK z)N|k0VCj;K2Rb=h`yxRqK&g#`yUrA(#x@(ckaeW+TMyQWQPqTo%&wMa&3CUwLoC|J z9KHBBR`3Zj^vYW6{#6V$dI{2n(UZno;`A99EnXv~m0{^&x~zI~TDIRSZUgi=Wvn}M zDITj8T~AcA+bE(#qM4(IT)TLf#f*HFcX}!IYCE(8Q*Jf6*fkB0J{$GF8|J%6tR9|! zJZx;DX+4slsL~`?YzSi0sg7^3SHJIszncxJjAtq(kek+RsY*;(NB)3;{)Or)ca_qF zb8^|msYb;Mp!)A%6(yxaas>@x`D z``0eq5+8$1s(ww8*D9zpv}c~A!4{A)CR17oGe;;tOi!v8GWDKUC3a@FRw15KU{9ntF{F;zqUf$NRDU1Px4iMS)Ph&cOX~ZL#puP#r&43NYfsnXJgjZpHM!7E ziQwmZG!gr;JVeZw+$ZlL!g}g^(W-tzZ%X?!2J~j)1 zNxaNkn5UL2`vM*;2Q#>9f^nhmXE^B#OfnyhQf2&6u26X^>E4GTu47`z+4={dcdw~h z*W1KkuWuxD0&y|P2FT0{D*f`iQv5u+N@u(Jc4Re z#9wz1c7%b~zDk8T9hz4v?}mCEY$@NyCVIx^i$eq%&7zqKW0yqg17Zi=(cmYYsy=NA zw2OnDdI_fct$GLsnRZk$hE{K-ulYiGm!T{CX`J3l*|}L9vq8N5eteW=|Gs6#mz@41 z1`U*7;{1;nd|Jc&X=(OUB_}2EKZ2ftHPkrG)rQuIb;H!~b=F>GK|cA$(w)9o)f3R4 z(^w*3oQ%pV_5BzovuJrgB}}RkwKUpw8c$0AJVFjW-p7h5abcB#jJ6U;FVzhh!NBUl zwHz?*Ktgpt+OUz!02@b$fz-~+=-0)Ltlah>OJ zypHG7I!VUL;Z15m4NoYOZdx**)hkoqSLQs1w*ph0V@zBwI$c6dzFi$~?-}-hFkTKE zaE~8w&eM~uG|YZAz^kaeR?4o10W0C)Bi&Nkdx?4iMk+<7hA4;<45St_NLAfy4v9-K z0JBKRx0jV-`=E^E99^p?dX@Sd%PF|>ln6F;jl>k=o)i;L+C&S_BuC0X z^A*>&k?|+~Xxad~lq*|LuAD!vBGEBygLM^5_81177-ijtNLiESo;#$R9bGXbt>~BG z>qUm%NI74X{*RVpj~&3O!2)W1dV1tU>JJxGG@{oxqQRW_iYzj-uF@hWPm>0fDqhFGW~; zp0jW9*~dV1N#Lg%Cbt27u8^lfljd<~Xm-(Xe~d})$;4a7KKFAPF-ASAeMJH?G9)wB zU^wO@Vyc8roONXx^hng*1Cu87DpW)bj}k+MMgY9}--MoZ)@nX`S(Z(JQFM(*S)QlNugJ@vDdfxRFq`CK=*Mo@v1`do-xB0 zWc$I6P5;oe^ZMK+f9MhNo#3!!+EcJQCfQB@-Emf8$V)LmFx+L0qLGHdtJ?LeDZJfM z>c48`nuYvRVl3ATXB33e7{l6WjoN0L>PDFsu72p2 zMl3?QJlM!GbJ)ozMlmS?=H~Y2Nwz!Vs9pu`YbrO-X(LK?`DosKy_kzdr^b>UZHBK1 z(Jb2is}0eb5jmAqYQ3cFQ#WF4$nw9o(5+LV^M{9J}hLv=^^7Wp&%>3$n8|oJKI! z^cfr8Q>JnnO=9OvMO`8kX|9%%_94)(J2tj7?-GV5Y$%_W?z1mGpjm$7Ei9*PFZyoOsh=vLu{zA4p9?_%c<>76^YE0{;7I@}j#}|HyW`1uTfh z`h3DEGAEYYbCc}rnA;f%yf=?etUt)mU-H9-Wb60~*fdv~wXV-Eb=TV+K|ZaEd=AOQ z2O4BcImYT-G5l)>@F-`F`zUrC{e7VPIEjb-7m$jUh zP2;A&oYXF+9*+}5;l#xZk@ z->L6#Il4%hcZH@bSFGwa5LJn7kW3ezZ|+ZM*1A;JtaLnVoKkn4FwuD%(eYlfu4`Y1 zy==-FoiWKu!8GmwJ@-5hykVla!pHtt+==x^!90-t50FeANOHDr@N@$&RF?xc(n&MF z07F!)AZHOt+7Y&d{QI={6k=E;}EVK7X*e@05DK-RmoR*1k^a z0sEGqE{j{5t5_(FGd>v|X!xU$lI%hT9cO=}F0V`)NPHG|`U$5*2AvmQm#_o7G=tSU z6EAmOSKes9JexQ=_4c|b#6AJyLat`6NGKk6UJQ~UGXwsURQ*H*v+rb#h@2> zKD_%kXn23BS~SI;(ntI29j!@@dH`O>Jm;DUo6r?CBEX2LTEfNVd(tRq)!&@dy$-QD zm)`U)y!y}ue%0UNbTuN--{rd_74(?*aAVI25Tl>!X}VujEjx7T|5L=)gW5n+2oTD{ zQQaAG`r_j8AaN9^;$fmP87Dgn%2Z|D(CAm{lFI1?t2+29F1)2!C!JxKT>+5t-EtqFGRqgxu3oB;|}&!so;$LvBuC5yX7>08t?Pu>nPfR z9vVrtj})q?OdJJMAqSQ5e@kA@m*vmiAh;To^U`$n(MFBvDXb`Df9V#^a6{oZ014tk}y!5+%@{vrk$Ltx8q(+h71DPabX%?LrGwc9Y5Q&=k$CO zbrl|=m!B<>p3et`=$*Hc*sSM_zI`1F&R}QdydrP_TuBZi({{8U{?%RM>+s4~3lhjV zP`mURm>LbdX?X0H>~`cY<}4(K!ZDQK=EQI^c{pFSk3gmCvI=R+!P)$Yu+35j<-oDa z8L)9Sh_Z@8RxL#HjC$k+NvHh)+w9(s>WY)2!f4(2p+isaTMGy%_fUBrbAp{#DM%B? z_^-{@rPY5THaF^PEKcZZB;LedSu(n|8J5}khrni~K%)nYR&3hL_6qHG0(`ya^)K!? zSZ`l8^EmX;LEggUwE~(WhKiYoLB2V-(#9Z(AakqFEjP2=W33nR%s68#;`AgBfZk`@s?mHl(Q41n zNS`&spm&OB^^*Rbbs8+Y$Aio6<0MeOju(UaML|*GAT3O?OFWH>!er2ZgGv z>U&S~pD;ac=CBH{vD2=`EF{^WwH`SCG%_LCh$Qn1(Ui;6I0(>C{4`QJQ49g%(KmKC zFH#PwT`)1`_W~IHyuak*okrtLt0&r(=$f|gi#R#XzSFOIy)pNW5CQiiGuchUb?v3t z^Dr7M`EA+^^T|psI1+(DTtH<3trl(Zdg^Hng2b|NRGrU7y8=t&My`tKa-cNM?Bc zz2;>at8n$@)bB#3G4x1JtKA>lBY8q*1u{WDMaGMyT)IN{e~M0)D&2V37IZ8&U8!~J zXTN0Idl~nEl=row(#|rPw$IbAw^>EU3!7XYEtgZ+i{7`nwjFe~`0h^g zIk&pj3~x6vJ?hIr&N(fRSVSy}H6jNfer%#*h0Rtz zQFLrMws`ZJt>X-K!=9kQxZpx1t0Ey297K{;^h&ARwJyhW)&`3L*XQ?l{`S^e6bk7C z`(4N#Tq)PM$69>wLMdRX(*8lfKewL1rIyP)d;cyIaWHnJn7(kKKN(z0byu1Q|Nd70 z+?{`N^FLk6#h+ithd19X+4jOT@G|WSJ`)aCSe}w`j+*%biN@N%OqU*v=tI7+WpAi- zTU#x?`|Z6S9GC8CY?%wkemEtGJZ%wzFg)m0fFN;B_RHQBA2f?Gy+kMnSHMGSjxyh> z+l>SCG7y7R#j1!dID+>~}xOG z-?1#YlDGWNf!Y&C|zFYJt%46N*H*lzXY z5A$Eq)%;ZKasNfaKoW0MW5u{(rnG}3j0P$5O1n6zZeB@1mT!X^ZH-^Yrt77n6r7=iLRwUR_Yet*& zUI2)|MP90<>wwyIC7#uHYEPE%xtY)Nht9pOKDqme!8$y_M)`Zw+kZcpFmWf309?+5 zA<1wddQY;629AZKnTJc!77=1=F)w4JH0O8anaJX>E#NA828XFQ9U%jGs?JD%p|LCzF`B#!f0S7+v}90&Y_u=$J#Lw~XOov`An7LkotXiNFhMbAAOfuq`LjFAT#0-*nzo$mx2=N(aLwcAolFSO|OO`h7hYB^?lL(({+$%Yd`QZ&}Sq2*awfhwL;^~nXl(B+2u|WstY*n*c zD*TkpF`%E!*Q!q=hD$ggiVGA%ZbIcZgQ5(nVNM+kRmDUNSxbNg>!?A za#22`%3}6ouYbWG0lU*r&&IqrH6Cj-IkD)4`?c@lrSHr?-Z=eJ{{%$OOfo(z)Wl;M zZ2AtFk1DPU9=SZE7)0QB3g#@xf&M*4&+HJtZ3~y@LGRL7C5rxxdA` z(K7Ujib_+-2b^y@hk3TLQj{ZVradCcWReB0{4+i2q#KW92jvgz4#Cx%AU4sL4e0F! zz+5@6Q`GSJP^Y#5BQ%P!kw{KrdDU}UOjpr5|0KiqOCF;a0hANQu;6s7Cd085r??c6 zYE_xSc7syhA(6x=_p~>ywaz@H;M*=^0C`n&8WW|p$mI;^h^}&>g&HjbH*{Nl`@fin zn7rwCR*HVLwlUpg7c9u(jL(avPTH7UV}WY)V-a=tP2_iGcUyKiXHplBC-4!%`WHl| z1af3pRP?x_8;-3}f<~#a@TxY_h-dCRukB}^j+KY^eB&t#tFNW(bOJ5s^X6p46ncA= zpRLS`S{W~Lqm>H;F1pQv#$SlvI-%fuK?`LmVx2t8HD0`&Ty3Ht-tIRc8ZCX@l z{V6nQafP}!F4yaXrHys3u1%jk@9sElclrK0b5VLXa4y3+;!C0LrB|}gfOvI{y-u7z zCC|G=X-)r_M^3vME~?V1y!PRHoX#5fn`0#0w;sfv!p6M$xZ+FxJOR%%xFJ@`YKpyuOy`EBdz+>r=bg67+>w>-&}XEJnO3H z_;4dp_{%%5(Zk+#v)+fCUp@77e-<*e)Evd4w#1$*08}!a7ith4X*4qK-V7e3TJAUa zVIF>Zd+UPhg&2;LOQFT7%dSF)cOJ1b{{4PSXGf6zOfO}VAvc4Q$@IrWcX`v;!bp`q zU7kKHjUd~JRcZ%q%~c6Tw<1_-iQS?&MFgz8 zJVVt=#N@NN2=aYzC?sp}0S&4a7Rd|1M_Zwg8ikynr+6j``rbK6k&%ig_qI3j=Vc>+!r0G7dH+3Ir~%^j1dNnt0f0L-1^2QYMf@M5I2At*nq^AeO>Gc2%UosnC~SGIkOv zs^J>Q1ItnM)OD2C-l3=0Cm=xIi?m}27C#IDda}urfVFMM3e=kLq*Xq)$L^ZoX&hKu z?XjHtwPHdpMKUGa)}_%_sbcqW)LZVG1-SC^1`)Hx;FVZicxbB>4r9^dwHMsR(Ye6WC>u@_@p~#grp8!1)lq;=NDg$bFF$aO1fClSeeRB1!2rcjE^W_Rn2H;a#p?I zE#f2g*|b&YXpwBLE9UnHt)TJo1s!RZarngk5?|i{)u6*$59A6J<0D}?0$KNsf&2B1 z!70vJAJPQ+#hxhOR?)uvoy~IJ+;{6~$mJSMEibwleW;%(VtLv2 zc7s3{kSDO(O-V?p+CR(*sGz{*5oIXWW?EVg6CM&3wPV*v1{rSoi^b%Nq8~~ei4x8~ zT|dhv?9drxjT-hRUY2OQFC=ERiuR*k-UF^#a%|Gl4U$MWJ{j*TQYb3NkGqmbrXTC% zmpq;~ZDVO*TN@DktTBXsK!6b^M6qN0SM2SeC7?W)b4g+T(mL@fD_EN3?VV=8cY&cd z&XzAGK>hS-BLKAV7(@}VRaF4|g##idWM@Nk3lbRF_J1m?LF$|L|g!5Sc836Ri5u#lr< zRFAFLPJ>uX(8DZoiui>)uL+paFRr>XMsx(L#zW-~1{lY|+WnH1a$=Wzz&***8VQN& zF<|vQklX=IZf`(tx#iUxX-_ATow-ATb%D$*@#Qel%Cd&1AE)3d$Po&p0`hIW0&Q)G zH1EH#FPP_O28T{hwC!YVJZ0uz7Xyp=e_ODTVjQH--HdkNl#K_3&_`JOzZMD2gRXD09dpU_tSOg@*i<{*K3BjbjdeR)c2SSltAz8bx zk@f$yrK^f0RgDMrd5z@H4dr3Waxt>%F|zU}xaFL%_kVCJ9LU#=-xL_Z{m&R!C+}bk+)Y$}UkE}Csp14-VRNg=!hM+~5&2=pg1b|d301-;$ zsCVZC?6<6hPTt1yi-09g+L)kE<-kt`FIt6?#3N8nnGq~bii#B8m6hf!NG~;b zng-O2BhVLiK|@uf>Xcy3!k5l4N^wN4N`uF$waV1ae1d`0dQ?%8g%Im1K zcSz?*-$`ZY`jyyI2Ko&;ik}(1ma=60p;(eUE62iW$2ZmMd1_{=3JJ+*yZ=|Jq-n1kCdPNzJ(9H8MPSINlR6hlc!48$eefX#`2*#JS-k9ufe zbP24&3vL)5cNIxN_7Uj1J0+ug%u)fqsRXl3eR>FxBgTN6^xa}Dlp}#C8E>e6rXVz_ z63EsrwB8fB6I0W^JFh!R_lz!1U(x<*YD_*(T-)Nj5ya^mYw3QhdZky*qxa^2X9?(D zi*g#5T)rC!$CIFM?*~?7LND>*t(-I#CbWr(sP~TAK+bw1H_7g&8mFWHSZHQ^hxO#3 zXO?#dK)bgGKkD7B1*JMg89jK<&;u}i``z^8Ewf8xSQ^H+PRS1pyQHT%*x+CAL{!d$2I+n)he z$mT2^-Imv?FyZR~#yrD*tDg!%@=Efqg@3PlsxH8@OytD?x}P7=CSXKTfn8RY%fv@| zX9$dbm&>=CeQx+y=3@NwFtCIZvs}!JT>|Fu-}T7;qq*bfxIctM?O^=kDk% zCB9w;U)#|CGi#lCqHYu;Iw;ZkFO4%%BloFD`!}Mx>VS9xX-DVxgO}HSY_&EKc?ej_ z&%@={AjLZgW1O02qPJVcHF;q|V@p8ZW-M1TP`~e~?~TPO?E)c_0!KQkp1CehaiT6& zh(GfVCCea@Vq|2N%co8zgHrs)6vPL!%7lDr;U&s`Lzo`}!_W!=!!(q^KvFuZhIcb1|=$q#%j7tm94tP)Hj^hBv)O0> z8Q*4{U)@e+f}8|`5ynbK1cf1hFAU{_j!1z9r3Hy`rmT)7vDxVx7$J1BPLq(1Fdyo0 z-q(Rl{d$KvSB`Fq($4Uc@p5}pW285P)l$Jt8p(ezi&pMcxtnR(&9|ov7NR8y2V>Ek z3}T8>?V)Xxw>Gm~Hg4~?FKyhtTyb2idH-u|mik`230mXEiu#oD7xH(F{qqC1hwe$g zO;DG=pkiLRr>s~%GP+*9*3{P5|@s`gv#UB9$m&=`6jhzEpr5)uD`eA)7Z~J)Dqe>fp}NWIF+W8ZPE{;p>NAV>t;D-7$XJBt z9_Apx<<;8j0|xy-EJM6mx8pyAVMpy)N7gNEd_Edt$Y5aOK)`Vv3Bd_pK%C=8sb+q* ztgv*7yNGj7TC1D2%vK$@5Ub)FQ}Y4VBr`$C>Qbg0AGBta)`QFFdUxrlxOUoowu-+ z$*4B%BXe(DQ8@{G|A+u)A#@7!2ChtW9wo9A0a7*BH(SHS*id~KnqjuBlne=waE3s- z?ol$|8#0Z!WqyY9kk>+AQ=5ORV%8$kcd4zIQDwx0`$JaBwSrAkk=p}o4X`ZUmG^2S zl}Q`Zbw)<-H5>tQ*8m-LtNIlH0@7t<@7$% zGJ6-^O8x{GyfWxx>rw;@dXrY3q0lPC;a%JlxW#t)-Gnlp#VJsG8)eEmd|i7k-6q~p zVaIUTMX-DNLQt%AF-?m9fwygMM{#=?jfiepVhXz000HWLEL{nPs`rCz*^HZ^ABzku z?_76f`jU&>bZ# zgS`HQ8W}S-DwyTr1WrKgU7a9~DEhQ!PbOBUpd?{ONA{X1maJ`$At4Him?mkn#rocX zR>^OZhTp2>rFPx`mvepw(Jq6{Gh29VfP3RlFB{6CJ;iN?Uj2DT$?I>ihy4<}d?PJ% z@aWEv1P?_!tvw6xytSPQl-Ae>k)F;a;td(+{A%hkfax|qNo1AHJGd$eA&fu3c#Z)l zaR8Vb07q|n1f0b^gUGtJAi`+1>0aQSp9Oz|p?Q5-o6(4YW?A-1Arqt~ZuCv>cw-M?C|SA923Ek$wDPuIhWtAP#Y}ue<64AXUAOXm_VqnHQ1SMEOEz3uRA< z3RZlfEBS}|ki&du$AQu|pn<%pL@7=E%jq}b=QZZ&vh1aTSs(Y@dSi5YCFvH9wUb-o ziEajcxFVzb0{5u%a^lnGpW8cK<}8kXH@b(GDQS|1%dDm65Rc%wBsx#b%FKHrBBvu! z(#)G_Nz6(z=V{nbXvG>j+<|Y#-z(~oX6u);KTE_n&MwHGj2SAIxhKiCT75)Dzs|u5 z1mghn^gRwxbv=PyhxzqK;3l13T85A!oll4%yAHqrs#JN7K&wF%N6uM{;O;DsiyE5V zxLL*R;+#t=AzX&z^j?Bl@(bJyuFZy062zlNf6k>$8_Jy-S?)eXI&~Pc@Er(n+PEe@{B$ED>=Jk?r18$;TdRPs;Co*K;QxGWW}ywzc{v{mr@S|5v*5 zRW#ya7`_3B+|bY8AhSOly!ayU4-jh0(fSr*t@YW4OgnA+Irs2{JeSbAo8A`=7 zAve@!dXokKVYr9R!2#j>Kb;S@#3Edzjsk0&BpWgG@9{`A12(0arxJp!{532n;;C1z zTL3lO8cZWh)UgTFwWJs@^wq5BE1u_szmy@+H4AWjZdxNzA@0ENzNxi(1l{Pj{>n~{ zupb;Rj63>g;5+0;s4@1ULH2chIBkvwCYCtxs z#+pBpB{)YWC97O!?kpbRC*sfclMLT387uKrd;wh_h5-WzQY&ES z!6W=wxSt`W>Jd{#%$!b9qHa;DpQUC{?V6nt9G?Z?TNrXy{#;C#hL^!VZc}ld5yo!> zTd76_Wt9MDwt@f8i>ptAP~iE;1iaM#v1GklWI7QNF4!P^NLE>}h}*$IMY6}R z%8ntafsssRhnaIoHPLVDA6^(!4lszgZUmz!qTJ|mTB0#@fYDaP)ONw<%VE(upzo)E zzcKvBA6qF4^v<1H@nw6O&`-|1OiXi68{R0z&pvg|8oBMNe>qzWW?4_~2juD>_AuOJ zQ>kIajo(GrH_!U8M%e0Vct8Fb$@U!smBTeA2 z^ywqMvMYhZ@kA7!Xvm^!|Afg1D~t{xas*;+D}^tTd?~a-rpFX|1Y?6HZL)-ajQTdg z<{$|l$A(xXJI+Ngg`cn-k?SvJivP$1nhK=Mz8|mJr`Zw2@B0`P?G4E=l_Zd8;%F>; zqiGtE4Aldu?^|*Y1-aI{ScNvF2r;B*DLP{+f;u%V-&rondNch2FyA3qA1dqJCP42K zJojT>4irOw#y|&7^`!yOBmf*|5384feMTp8407K0P81VH1smAY#G$uk82-?~9gD<& zNIA|N+UfQp08%EZu~)5;CT8pih4(hA7`VnWxcQ=^ExY6oeJ8$6mIL&Ee{#3f+J9&q zYDwE!W~XYpWJ^oW^h5+X`Qfz+B`h;zEt}Bv9b^Uy-aE9&`-(b|RRpM$F6}zg*={R`ExcANYDiTkz*!XPisQlhWLoIRz4S%l>=PiL7zK7fN!ts%Q zHy2p8&{vsrw@|jAD;U1p?_GUchogF3q-SnDbS&}0+^BPmd2yA#d;pOWC;w+acJm!e zk2%TaNT&R~l@2g?YQ!UFh?Snmd<0PFcE0xZeaPEqFV~TJkCs*_$MSdap|=TipYfb( zBx>3Yq3UMb41*;85#0?v|#AG)b zCwY6E3000qv+@hx`l{3-;4RpiT!~S?S6U-)Y`{*7Wex}GkHy-|^xi(b>X{$@G9_0Z ze06n8mHMZn^TcxAH@N$}#Ay3jLXAcS4JjSpd~iRJG3E;+D#(Y&!sM6ple4Ai0r>}f zE?IxyPfz0?{BwCA_)B7q5cQjkvDL@2=l(!{UCc^})rqI}nP@cRw5C{GgHlQ=cb&6u z(DdoMCV01EhPa9hklF@pRKqihBB=9fi+S27d9n7DE-}0QS*W=;I|a=gP6U0KzZP3+ z5wM1;_U**{^6+esk z+IDk>T$ad{{b*(SM>ug7nS9oxxkH28@^iQSG#5Z zRnK13c#!LMfAIW)=yN#by+FlpJUj{j5$ed19x~LD&vny>$tl3j&s*-%Y89UZl*N>I z;;XU)7{<};je^`SwdD4MDs$A_*=uCVMGM7=ti}Plx#L zPI(6{wJyFKRWrlxb*Li5z@}F-wU=`a7jP<(-wpfdTrYUJYt*>RY97l0%`6^ceCE2r zYLQP`ZunN8wL8(c*vELGzClZmi(4&QM8ic&BDa^}QDkt2)}Y8u3GPFQN^w}IAS#8( zfg{{VNYA}D5>q!Hu%s!IxfqMZGvpY^^#{p41Qtvc7UWKp*ZODB-t?R8X<032+bWFN z(T4>BL8Ste@#bIhz`HfSj(2WR98~pWutEbrKRM z`2LSo_bJ;+r2HilL^+1L-kXl{Q-0+H^d|1SXsL$B9ePI}xTT_(D(~rg8=9n#K=Jsz zaj8?+B5Z0;`+_4D^@B>c=n?NDPUtT}|6K5LMoze9&7-ie*AJFlf=Gm(vGWGblE}XR zxC|w9h?A*XV+vxI!`X~obFSpTRXBTH-0;zEW$z3Kjnlg3UxJRa{D|i6YZ<+@o^Mja zrn1S(9eKA6B>zEJ@Oh};NhF&RwpPY+JRiu-O&(u!e7(N_eXklSUOvH79`gHGHxjcK z==K!YaXFC4i4lxWFqnS*Z_Pf@M}WiU1A!rU>MsYK@27Uc{4^uX4F2WU{Xx_N<%=>V zzBx7>tmo=I>*B!&=wcOsv!o8d3;>M~_uG z@XdX=23LFak!$G)bpM_75c%#VcL$ccR&cW}d|pq+NIUoY*Nyp*Pq|!2J!-BmRI6#? zfZVmj#U|qDH^USiK^BAAjFc%Io~;-gvl#a`wHtMaF3)kmRlQ%wE9%!hUqACKaalP$ z*1P5g)q3akHQK8fY(tr1=XcWl{C?m6(Z2m7i85|CPhSzXnu-xlj+#Lqo&A{)R{OrLs^WSvM?+$zq5~Ua^ocEP1 zq70ty(3qqbojLqm+kR?3iU8n7ldT8 zgrnse;acM)Mjpyue%(N_fMKOEalj-q4{Nxw++~u-2SwSqg%c!(=g30dt=S8kfF z(!TrWf=;D*w#GPIbZPNrv%(KhbutTjy2irPu*6TWB2&m|wT9+i?= z>G8aekqb0juWG^^3PT_l2>Yc+b%q6SW zj9$4>B^!hbsCXg39n@IU$PHH}&8`N@v?+KnudUOHmCk8zTPcr2#52Sz{R+}!CUl@5 zL?1dj(1{jU8Cr;zdXA1swjU6#889`NQA0znm^~U+3*%-AV!u}$g7jQ|mnjQ*^K+ax znzWfA9o;u{y&3RF$h)PnIwQEXwPQT^v1*lfO>%gDz7tSlrE0bny~0u-nt^+@qIFSM)yC) zm|2^4*M~f=k;C3HmZMaK_|u(MX=(l_(S!7n#!^aKSCH|9YEJw&8W-+>cEv^Rw!pu> zt4TUyTv9!de4M|9){FWV6;&bO35CG#q%BKw}zB`xFJ~zb;b;go~(G3i5S3 ztd{Bw!ZAk!OtuL>MuhiFd9E&6nn`yI6*!!9tGw=c*J(cG#798f74q=-XzuNCv&<>% zmsT~?ghF6bHlz2)T8B(t>3Zg0>sAj#IzGszeU|HQX^(4ox11RvL&AoI54I~x=5PTR zY$Wu5q+6R$YgOdoE5Fq9T8HLDSNWQZ@+wiNsD#wZ&0x1N?pQ?zh&O#Nflo0_@zv^z z9BOd(!$fdo!9T!Zy!Js2(*xMhBVeX zA!H9UK59w_kr2yH33~Jwy<+OPYzT|U68^U# z`8@JNuCm=$#eWp_Co=FHnnanxo0Q*AlxeIqSY%Kl^1suQEScFJt`E^_x>2pxo6uHe zTjR;->NJ>fEce**h(K4B0J?^wGam}ir*Nu@v5CZ@5FLprd@=R(y0w0n=G~}3gYBeQ+bj^(WNjk# z<_IECFJ~trQ-;tN>tds*jZ?{ghTNDRSwz%eyW)vHf;>OTH-dvf;AFF$fFH7as(AlYF&`EsN|vd(oO0nT~V-Z5gN@oI@>H9 zvR=bfidqGBY{mt3q~RX8apq(F9ECVb0Zb$SBjnP%ypEH$#8|NVp!Vm1tni*XzHh7W zC7*YNUOsHz25iBOzG6Ooi>Y>#^lVR2ARm1&mjD6akO_x(8iKjahfDrGTv78xmpQ2vGmAsCiRM zS$sj8-d+UEMFQ+8Vt|>F=eK4ghn8y*!^ujH+h(I0_0qP%fy0j5-FkO=-u?$aDy#OR zkikoQL|Y|jxxPLyz)qiSCr=Vt66h)s4ruXa#ERgT7o}S>JPJOgxX<3%8GAkQhP}Is zir)C7!kaSjz<@zehU>b@lNVDV9ez5d7M7I94u~DRq$c14-4lu7a-CgGHR0{Os`I3T zV|N2Ji)&wCg*#%Ficfv>{;sFAjP%dH&ycl4`l57@E3#U7vXkCCSBF!UJ|ccS_ZZ|} zBG9UJ*@wKkE=*21eD(2mAcO|xeUv1B!LpN=UDjs+479_rfgV7_@XKNaH$kjI1b~PY znl4$spM3e!`Sb(+lY05r`?k4%79QU}ZM*rJ#Z(CwFp(f;*!+4@@d&(B=XFGRaQOQ0 z!Hn{}G#W;1PUj7ef>6KzoAh}Awm{bN3fNnTmP5MDng{>BUio;eDXDYz;t4gO{_(H! z3xG}V42azm4Xc5^`JZ&fON+>%ayyYN0tcy7xDK58Xz`V&{_f81gB5i)(DJ>PE^H_~ z=p1)nB_Evli;Wib;D6GUJ^>pAMwQ41#zequDjVJf!-~Sq-9pYov8%uC)k2Z;yKEiM zdu9L#X9S2IU?v;^6c&JxcOP(&5_R?xp+D()%yBAn5RRn>V@&{f-UG8)i1J(#O`z0& z&vDH{$!bqQ%0M$ajU+u%@-^yMzf1CUi4eG*U0NJeR+3&;)>2k6R#vrN_K2>$MzXxlqP!ufyeYlBrKSAw zSb6(?`4hT|r;-)j78Sig70=TvUbIxa8mo9s*{^s@S4ott9JHt$4yqhYuN-TsoEWQ| z+OM3UtD2LnnzyK0466DcRP^Y&ZHwwpLDjqI)%z{gU&pGy?N=Yt zJ^CT}=-A@XY0#rz>5qQ5Jo-EK=->XM|LE{QDLmK`PZNxXX5i^s@eJd5_!m4AeGQc| z$7WeWy@PQ6AFA#%sL3b%7k)YrB7|N93=nz?y<-Ty3P_hG9YmT4NDU#OgY+&onu-k(k>APxoadP{CoeL2xwAXjd+y!q`hJqi+3L!#Pn2^WmEV9@a0^%P z>R0f2R|q6k2-Q`HOjL*+RY<^}s_H_NOn@?yzzw>mX@U^hFa`z;5SRWmNf)A02Vmax z->(74>qFF&5^iD{WNjg)-j#a75QB+I(%4gmz9_AhO5?&xWfO=MJOQi3z>EytxLXI% z#6q+%p?1R6Q3qA<^l;C@YH#)`--~Me0c4F%kogqs4X=GP5wGj5lrqd&4X(8mu8kby zG&~JM-G0h~tW92xXU0Q9Y#}IV2E(%I?A3T(Cy43GXDVU9(4%L;3RN=dHS*=PHA(Te ztQmCmf$)~PChvH|mO4#*rMq{1SQn&QpMeEg*OL^_h=(MtMl){KzR+**TZz7muYRe- zz&H!3SZxRtY%J1;7~v}^S{fR|8vPU?L|X=mzDLXKO)C=+17w2%pw1NDbO?{1f;WG! zi~pt10Q^553mAa-|2>u%V7zE2PP9W?yi-r2+eq^DExAE+(Q~7Ci$tkJ- z1G9)vO8oC1l3Jq}_b!EsCpInFj_tX3y9?cW3O$B$9mmrxCmx$mrJGM@Sk zTjBJ!+U;$v*L=ghrDp$?=l-iN0zUQxZ1sm6y^TJ8mv^xJYUlgm_U}L2e=a|s|64oz zxAOhp!k5dphkqyc{)~P2HMH^P&HIbjE0>)Me;Xz*YKHz)^q*G`d~534?(CTCZhqNO zS=W-E-a+NxC%>cWWfpa5zeTFkENgk#>KG z)|&?!J%Q@4{IHz?I!ysaLa&wVh>7&LvCJDIO!Fc{yBasFjfjS(z zR++m-o~v4hqYA@bF3L)_R?>u-Ng`|niR&cU8$=Zzq9%Wwu3)0ENV2(Dnzh8^JCZ35 z(g}`oL}#TKXO$=?wFpPma7Wcp2h|{34=phP7ScXu(jF#KZbleqJz*z(A$L7N zUp*l|eIY+x0dGxSmzy{4-ehvZU9-nB+T7$cS4EkraNknmHc&tr$llPG=Fpd6)stk< zm!j2{MB*fwv6Ad+QrA^6*HtCh$=`|+tg^yPQUVO3ymUgSYg}w_Mtb@M9(3}LYNB0B!SN_D^7U zE12#VOFu5sE3dJtZE$(o9GvqivfwSLV4GC4pNc!Wbdab|M|L3u^c{l23GuN85Igi)v&F?Ljaj=r1 z7vjSEPX8UU{@N)%mDGOLau*C=7P0P_T8%6SF3XCkhlw~$bv@r1RonY1`66$+#A?Rr z4?V)B5=9S|c*te+vi)$O<~?SmsAl?uYD;lXg&XyY(e^h!#~-F&b^4Jsp>>w2{$E8W za^AO(D@RCx?H?7t`S5eKS@cdPS~zu5)Hyx&W89U{&)tNlj4>in^^R|Qdq%CAwnw9( z(K-Jt8h@fcX?SOUm?-*LGb-7Wr*5Q!3sl#G9g5J1zae&<@tzE zWo_%GIwK8QU$Zn~n~D!_CZ(4QlWo=IiANXKa;Jpd)vZY2An5WWi4IVfbIgHEX;shZ zQ?b2^W|IhE$QHFKj&Xlcom}~zqIzXCEPPMxr_bpuDvwePQ-e(W{<#)KRAkN_t{lH!vm`yqaiI0{MK16fFCBSW}k8 zv75k~h?=P7cGxYFc$&oDnoyM^$e5xrgw-^XeSKbma7NT_PNw59SUnZQ$>t2MSoHSW z1}RBoeP(B_JZ%g5cp>|_U`<2otqJ}~pNRUh0{6njD5>#j$H=PBQ%_R@-HPrz*of=7 zq>X=hMWHU`$NP&b@aw{3e*I@v-*{v&defS`Mzo^nxDu(EmD`V*K2d4X^0Lxu(2lkd zPLNrMso2MApd6p?6QQ3P<*)Rchv<_h8@mEar`BGI2$p4XTqVvhEO$GJs8d9J(m0Zm z*_vAG2shzN$9~u4jf<+Stq`cl-=1dnHGiauUH`71YU|V%tZGA?qa3D!@|ZkAG)$k3 z(gl2<7<;%TcJg6Npjkz;<@|G}BVkS8!Cd4(au?~#m-SNNn>ru<={`;8={@%%1kRRa z23;xgCWjte{S^`?Txhq3iqVNb$B;{~Y9?IY@}yd8OLqX`tT3)@Z;tav*O${V{?1IV zDvCBjU%ZCfo)W-^Yai1sO8<5_ySuis9f`^$R-{rr_^qDu57nwfa{59l$58SKt82_W zq6tdzgzyHRH|zgPrn}-@922pm%((Lt52P#7X~-`}xO?s}ZOo0}vcE~1dzDlFT*)`| z{GN_2#;Gu%*G|U3lqu+a&jr!_y5OZ(bZAZ)`ZeLd&)^MFCMyN5?Km< zLK8Bkp$#~4hXG+wxKwg1k&r+wnIlm`m+B@M%knjW3EcD?0~0*afznM0sg+a0?B?j= z1&0{t@o|z!XF7cqE)8N0A_9X-VHABT9%54^;&tdIsiB97)0?`RNlrj&d5ku1p}a}1 z=qgNbzb28TGsFV?y*AoiVy5DX&v%HKW1eqEMPlULamu z9uCM#&_|u049u0V85y~5SLU`1@mVT0KZ3SaBF2asc)FB;3j#0$57ESq;~(M%Lpawc ziU?nyE)V`&=PtjNUqWKC3$}%>>d)in3p?7;AjyiGcExAfDBXvC+U?^-3f2gf;Lq#O~$K@eP0{AZhU5gz1-xeR49~k_?FT+Y0tsJc+Db=D(6BT zNf10^toHvdpwLfsi`@E365IR_#JYm7R($b?`iH?u2Qt<38Sl}|y_W`24!F*fIeEXJ z2>%!=WB|2l;g_E^eqkRjEOn2XXD*hdEA5!>zwh&)J!?shJaLl`A9|A4;Qq_!j;nLt zj1>8lNm06^ZFopOAo;h`9i zf2Yya^7z{VeiZp6XxGCR@1z{g4PYVRT{^+^UFuuT0{=3^xOc^qvtkqnVc4k<(W4@0W7B3X8MRmGER6_PFU@HX30h!s4A zKpecrpV}%edQjAt5XZ_AK~7j2_!Jz)6W_r^sSbnP>4PShL3OcEy)uZwZ2anZyrEO% zElk2~Ol-UYl#J0B`KKA3LQL^6S7fY0SL84=EGsmTWcm1PEL7qXMGgS+b2IVGpY~Ts zSczpAq8<6X3_-5DtY1lbzLHMEmfX&o@o$;WZUx^eA1*eS+*=#oiV7I87WcA_7!6H1 zF^l*NGHP=R4GA^*x=Hh;41sgH0_x*|*YQBP!}t}?$U{n~DKafw0Lr(Ly7&%af=nZ~ zZMvDjJWy$CzhQr@A4ec_%*H8xu@WQkR5&E$pEa$nLUc20@>K}!B#NC{^471ibSga( zZFjEmr)c^=x#iXHZ~YF8iG1Cw3A49@oD)DVdPR3M#;a}^RRfLpm?%7y`J@nc$h;=-V;fsyc0gvdhm+>gz+F|tAA??o= zLg+HP{=G4#B;S%QJiWe*@6B(YP z>cp@(!uuQS9+meksM_{IiJQ=IJWbZ0%5U#!PWosLQ4l7l!gm7DGMiXiZ^A|>IU}lY zN1-rk1)|Cp3s0){x@ho%*92l3qp&_f?Bxu$=-=rzErNbkqs6J-wEwztQZH(vY?}^N zD>7d;Ir3G4B%jXx5G}sIN$;qa9VL7Ge#$|_Gea|L!!qmG#o8V|NJ&S0>Z57DsO$)< zKb(c?0YdM|- z;JKTH#fK9~pl`*J%5A9=O-hpn|H-K#0O4=9MbBas`G4ZPgPM__o=or{--$w@bx#FJN}o=T*&bM?hBo`$BVYReO*SCH-Q1gocNU@(X^^(QR8OXW(A-PVbE zuGq*Y67|?R&@vtRFsx>EqA_x{IIS*e&ldT(E**hytGBLDUh8sQY^&@8R53r@0^`QJ zq<_`H%Y>O3bnBSkKUBYHo?#SRH>b)hLmZ{QuzmGH{QZljNt&bC77I+Q-lOca&}`Q- zm~MBWhd<2YRd%=sflPrczsr(Oh)q+73i_L%#}+Gi4;nt%%6Rek5xi~c$_AP6mlnL0 z3y#T66hWpZHSsC+Ds6V{-&6mOS&feVsicO2OjeB6pmg9P?TZV8U`78s0{I2fFXCNZ z4&h&XM)m=xUN-)H+4+*@IGyHGA0oj7>b;rZTNbNyklep!0rYx2r0^r=j-_>|XKcgOpc(o3LSR zNHk(>b(JK-k-70uOoy_)nHaK^y+t$;Q{#E8aT|*8-OFGFF-e8U_ZfX^%8XPc zNO&zCUNI{m0Ey57$Gfz`2c2lzFBeVhhfT$nC=8ccU$0uF(%44Q?3vI^_fa_gYd|YE zI!BWG3$s0X3h&+N&@GtjrG7V=GU|$jnm7S9u1=?Jo`S=s-$nj=hrhqF9yz~pGOsW@ zzu7pQX8+-{fTX+J5@l^ejaWXCu$wYQLAWA;}|tPW_&1uh<<*VPOW!_!)B);EKa~1 z_cy{*H==qrHa4~sR6lGsj_s@N^gdVkn$j)fqVTn6C(}tVcR)=QLX~6kapotLy8XQ; zgFKo3(oNck{mqa6an6zpjvMWkC>++TpDa<&Y&zIe^rlwdyI6AQo#b1a?M%+*@SW1} z>Uh|&@9MwLV+=JegXlYLhcp&Fnif(m+rEm~*cPW*!E+tpjdqAl*Ey`jia1`Jq|W4~ zE@UDe*(Q*<=Vy8E;;M{SMujCiaakEXyPbv`j+HbT-qk#e?`H$QEN9n6RykhnhA z&)4ud`o}6n?fV_F70zF?23wfCH;MxG6}W2E+bfa`y;FKZq=-3W}mBG$ro_X z7jXaTSFX+4s6FeMBio+6b7Pv#O=#US*roWfH~YRT&H9`BBarCPM?ULJpZ9x2(#&V) z>~4GuZ7d4+{ieWi@UHk9zUSNfh86kEZ$2McMF`wEMlY4s1edct1^vDxx9rMGYkYe` zRXVGfh5C_odZzb}>RBWW*dE!w@gqgzs6J}#6ZYr18qFpOVt^_8oDk~)Z)EiCZ2Pi? z=s6xMUVip$Yc%DRog-A!=_J~aHeBt@y?L5I^TE4$Ue5n-=f|^`H(6J6ciA%)zH$!7 znEhDZRlND>@Py%(%|u3$6NJ%GEza5@nj0Z{%f zb~KIS+Jnu$Ipnrx5|fzm>kQMU*U~udtSNi=(QD`$;Z*T0XK%*v&bH4I;wt!b)rbx{>$ z7u8O|ZbRvWUC&Rq1NV`#YVjZDMs6J~H9C%#*#8awve6T*<0Ux9Q=S^9B$Z@7e^GPH z_sr38sn(|9@s#|wt#@vNdFec^&XvAxUjJT(p4uM>qY-nZruYNnm&p=T0)_%DuPBvA ziv#5}MW6c*d>f%)G(`2sUPBiRASUI)HBzOfFi#Pa+kjLW;yZ$nv77RIWgK(6*l zoPp5dQbeQA65GqOtx#!)}jqbJBw73!D&i)&vIQ%MKTL_D;n}|8RHCNOLQ$ zIFPk02u=24%rOYnjoB6&tzXrP491ZNEg7e&`*6WRC+Ak1o!VcPcBaSQUaa8VaJsAh z2Ceeb>sNg#+DmcQLAJY6tue5wJoiGF&;0|rqfe~oXLj|?BTDxgJDa{xH!oO(kbQ~B z&J6j~mz5v%X*#lEqW(tu(ceO7V;HRs*`V2a!lvhQ&>Q>i9D%xZ$uUL}y`d5Y@?Tb5 zXtn;iv)#TWMhE6EX}Oo{hrP0A# z^R^04RD=S1Wp(r$%R6G_xwcA8k9E`@?d3`QP8KWq@8YvZ$W*JJ&xjt5vqjJ06uO(IEKPaiG5{;lZ?$V&`2X4y8-4$lYF4Md| zhGn?&e9*=(dKXMP)JI>IULlX)*Y3n^c+Zq6zDFcd-B>I*m@0#PgnSNumNns4X(4b?*aXOI)bcjcF~w0~gquDw)is(pexv4qz8uap67U#|Qs{jS2eHqBIcD*$ z3A+&fAYU-Y0f0iG1u~ZbqzP=HgPD%8TWf7mse|q^BxUok-Q6cX(4F>A@K4|9Zn5Qj z7PH_aIKk#Ea%X;=66~Kpc%x%JrTO1VZ0HzJ4xH^|8@m?`^3O#Iy<^19quQXd; z{y0()A6V%E)I)-3g8(rG=bQAGD={>oWhK`sIoT146boDWRw`i{&DIp-wEI4Um%!D} z*jPP9PcusF0h%@)Ho@i~l3l6drd!T$mOeCJDWK)0KWJ`nhrd79s)Zm8cUKI36HE4F-lj8$#Mp!-OR{i&&d;^+2}k zgHSt#UDoB6`8hoAITrOTANZx|Md=O77)mvhTPnuY2!GT;YM|EKQWyMMPk(s>{s_Q&Z!!=X@JJ1g6(c(3;Q4J6$09OpL8qL`n)1w z@cf4L;8Ci@*g^vbw#@e31TZ?z39{1YVF$KVzg`g6Q}k$Q`hxZ2n~E4>3Ac~KunFnk zcjKoSOc*@dsWRIb3g(vemy=$Z2^nb<$*E1?Rlv3DQHn8lm{4kz<-TD5;2%f& zbNg*@?p&UyCbwaPGgGqyZQ;3={A*MC{`+IM2VZ4hh>W+|(cSPv7HIOI zzQWXMmTyM=9_Pi>s}=yD8ytZ$AzIwIAOAvf4;dQso;F8%F&1iBmcvDSxM|TvG9cxS zRT=BH`E?F3Yv1PdeVBaLmfa_nytVaDGleX#`$%F}90PRpu=X+F=;*XJcV{@c$QjZ~VDpDx`Z7}@k5;f=%IuIu%J zz^4Bcj}eQjr8khkrqOVnZsQh&FJRg;xRU*@a_dUTU%SZ^bH{n^z@1h9c^;c_)E31W2WokNvK3XX|9nw|dvNoj4&M1;3T6SA!TTc4~nj6N)hWn}HqRBP>M#lESq6&E>*P zBql>exQB12ChK}1HuHtOK?azSJ!ztzxLr>nqdMzFSX4&ODby;Uz}Fxk=Iy?!0O=}f z^;(9`8W&9l&3*=-e*N|#0}iU)rvTpc{t_vID4BL3zolRxn%0og@6Rr*E1uWp>4oy^ ze1qt)KG$`5bsWyfpZ!WgUy=+eSgpi4mJ#pvDf=p=ICF5^VrUYxiw~)d4=bYxF^PX5 zIM`evE;9u~_VGqc)XWGeV!i8g+G-SKu=CG33th-Dc%b4U*(Xm^zzuZJT_z0o@(IY;8&UHx%*GkYW z2c)Ba5+PKiTb@Kse+cd`AJK-Nf1TL9HvGGQpKqIJd=3>cyy$tSr zB<0EOxc3R{%J-CnvL@VoeQgERp=K)r;OJhCsI3+qRail=yf4eK0o5-GJkf}iLB+Zi z3BD82T)D%210&r6nXHNh;?a{e$_9rj{VckZCsW3qyE9+bMa6aV#A-1idJNB{A+OOD z5}Tl26-aUf(JG&uxc*q{fFN!S(M`W@f`MYyN!pY}LEJJ9Qbh8xF&0I9u4cVtGT zLUW#-@U{<32$l62*rp=TZA^taUI8;~>6-YTI&DKUCyetv4`Y~hCz(BgUxVfaWS{k2 zUV+5AK%%DvjZ=2b{P{fkVL0!wMgq|~pJbEpKLPQMr%-EusA&S^n;ukJi=^W@g##1; z-3&2;MDlPyODk-ImBN;$@={ECv&IWfZn&g0HPg3V9?#N>p=UzDj-~}g(x!}Vqgz3v zkk?YG<^^gm^&>#02`@E>VX8w)LyycUx%_8Ps`D)Qn$d=4{1#@`Zg_qsDjPQ-SroM2 zD=$}oh+;szv!IbnC5B0^y( z($Q+Zs7!_u73Tq}cZ&!Dr;B5rMpMt{*nrmx7fkn5EIyc0ehO+k@L94jJv8`?HawOIP}bA?CM z42EAqi@nH5wa8L^pEJBZCB~wE4j~uYX`K?ptPRET@mKJCd;?evjRCn=L2VM=l4sNe zNvhbOwWcKLmOGVkP%OqVvYS^I9mUD@l{n0p|AjoSP=xQC**LJjw9q}O@)z!6=luT zJ!{{;*3qu`6BQe-w)M3X(FcOJ0N@8oSP{_8@(p(;k`|I= zT}E~w-dj5nbwiWr_U&#vQS1DH=wp(@{$Q}PM5EfN+bcZ#Q1j;0cLzBis6QJ@4_R6M zfQ?*_W6UqkP>kX0;@sefedkY@$w2V-U!}f3Om%DPn>Sfu;hbZOEK|wEu4BL-SYsu) zVsVuOZtQx>{c?*&<8=G^|DcsFX`=VGt2e1}s;Tb=utBl#~gFzC)zv~z#o{kYGd@Uu&^GC|b8gwmk5xgKD8;3O++ zYa43$bkCAJgVqU<@3ToER{@N_tgkbP519F9dk+A3xY&&Iw;G}5p-efqb4`vc_7)nn z{Z?Qoq$lG6UUCz$_8y@pmdk3IX`fr$|6PUAjI)=1pMp?UzsR=gw4YNALOlm~j0k$F zxrFa_$cWF|ioG{;0Sv5pm3-MRg&h@n>he;4YF@MX)K8c#bmBR6vaKcA;Gw3h3l`}l zThEQsDyYc;C|Es9Lm^uWpQTMXgQIJ4fnB(=S`V9(2) zSw@s|lCkr8Wd^yymGyA@1AdWS$$10P_V%fu!#5_O^gGuuhc_$kh))(cQRR{Y)2RDS zs6*ZNi@m}PcdkCSyJt;X+!w!JN^`Vm`8oH1AkhV?=;*IxZm%o>@bA$@vO0_SxI8GL-e)@9%{Ksb(7XLT0yyk|OMm>1z7jUM!M2E4S~Q*d@0 zxdZFrVxwE}EDg|S2CfXa)7MnGb;|k-tmZgSx%>Vsrl3cwC;9N*Ax!Uooq_?8=P`iM zk1dOi=tjHw8TUnp&rlElOu#K+RS>+(rb(IL1Qk>51?l6D)YCjR9XxIZY)B3purg}( zWQ+ZWmg(V`)zfg;{Tz$Q=U_y6cKVt)CEV*a_Izo)XyGmkJ0DLd;h;|^aF1RaFwQOg zmdYD)HBt8GnBR*oN!3}wBzA;f)t7kkm$|azdkxLO*QpNtf3P2byhAR^$%DliS?yEE zyF-}A59nJ0_EkR>YhzRFdy$oSQPcuiI9d61D*4&c_t&P46GWt|>Zvi$Gia;?fIKzC zai4FA+p+SfZDhW0Z1Ak(tTM;j0MZxVW2VF#EZZ3YJ_56Nepb$p=hyf=z6Yj!@3n}P z0~A_>#0qs5I3E|+T|N~J5y4QzbZ-B0r1*hEp1zg)A?-My&Zi>h&?M&(yz~K7Xw*wp z2Dm=;J`dg~h6VAYLv4@?o59}JwItu)XUi7Q{8kW}vO=AgsBH989Z7s3rf_pszx(Ps z8zY9O|IYCE%oiY~@v>yZj9H5HZ`|T~oJk%*?V?^9<)iCH&;O?Kaj+kK(yy|)daFmN zI;*W0GvB|$o9|o)(gFUYvpkxlmM93G8Ie7cUG^eBSABfX^8P#Qk|B6WZ1}?(MOs|$ zD1n}xJ)jX^u(c-9_oaG>?_0H zU!o+8w62B5+%j^*t(3YJU)0=UGeOWw|8!-Y{>kRx zeVM@Ra)AYLyikyQh59BR&gmz1b3sk_TBE2ag91=r!qear(ePt-JB$nienM%fB+H=9kOrIB!WPrFC`+hhE^`BnvJL zM90o3h(uwdFUOv-)@&E2uX^ucU}PL}xn3z?(EI;%F{&lj>ME3F<2P51u>pHS(fp}GU1RGDZ! zVe9YyT>lXL^q&=18dh2$la$)D8v3`j-I1@-(a9iV9K()hbC5n5+ z7!DJE9A99io^gH0qsc=lenaWh+YE;Cdp}dOSs0AEWL-=-BQOK@S7C=sd5!`AX4bnTZhj3! ziXuN-W}#bffm@g2A9S{X`iPjBK8`itUOjZerNLFN|0#Cwc8^|c@-4rK6BsynEPxwvH&PM~uL=6VKIA=nc z{JPHqT;1yyY{zI=$@5KE^O=aIjaecPq$Xv@;>NenZiiEhluZGY>Z+HALxRlpWW zrEfzFer`@XluAcqc~q)b3aoeI`7F_hRMj|FR|D_*g4~U;zhYfmNy_5gdx2;6epaYa zH$UqHuQ3)^exMz5w&w2%QSYYhq@b25y=2k0AW6s-)N=O`soxUMt&56I>o2z^G=1`B z)yJ0$M%616mg)c3kER)eFt5y4Q3XFum8;8^A|ITZXX^2nxl8FXnXkOgW>YME{=>@P z`6`pGv@nUs;u?6%`sQf_7e%+h=vn;Ts2a7!`)g zt$Nk>$gSOf2jgefF>!K#=|p1%^t0FGNfLQJMqg9dd;WcLlbFn-iPVhHK@K=4eLE+= z3qQZx#A5L)uHH;=4k%EwE>ADI5i}@ikP*kwI<{pURyMxchtn6Tj40IO%kAT66DV?` zhcU6`t~^NOKTEmGXxt8kT083vS1=k0_FT!BNsll+bO^R_lx>@W$+5mmWb?XD?W}Xg z>bl~7EO&8O|3>ZaXN_kh=3Ytv;U|Yza=<)BJOCGFi235QnVM=Yg zSP|16x(P0l&NTX;Ue~_$nE|u*U$ww%X4V5RB}|Ow1_kpvt9`T*j0O;c!19W`mp49x zuME>LwzqA3mf51Zl|8^%1<+*jW+HJfA5q~roS&!FFiO{MX}Dp*rn%`c*Gx>o1Az{d zH%(ZM12VkdFO)2I35b2QIKHRDvvxif(%9PFoa!6F%ds;iNAv_z_n6Mm{cMLy*_45_ zu>%nDS*y5Y1zoDOCQGXckvr(BJO!Ei_D?@ktQ92jpU+a<1mF;~^~G~xOGKey z0OT<;ksLONV{94qGhPSFO@Y8 z5m@nt8~#MHg)t2aS<(qffXY*Gc-~hjWkqX424}6z+H{vF+k^tk7tFUCzgNxK-ZRYP z*b#dBXuhrF`8bHV7s4TOqJ7H|3kneQM~b2PDK%yXxM|80M9%{<5atXJ?ykNBxlu;u z&qOZa0}2JFCJn6z;KULDjy3`SVL&BDTI#)=?{BTD6L~LZ351*VrB#=Ln2go;s7z8S z7@w61P0E-ipojLZ1hrKsBnuwZdxRY%Y8LQN)aJ*q+Dn5u%97=Jo-G|48QtTiR9AeZ zgMP@amnx3gQO|0h-QBp+f&JHj)VBU$cZX@kcf-I-qQ1T;gT<*r+G1J=%wL{PFf?WJiIe!oEeEp5mFV<6 zDV!!ZCE>Rso#V64H3jkPaFbJJMrJ+;3{w_UWn^Jps|23Q{XHbe=ms`zOix)SkWXPB zLI{WaEZ+k2Fj2C)s+;}kNsO`In8%+uiijxl{aF6h+S&8vniceH^bLHBDLSYJ$N4UY zB#z!jUL|5Rd6V!Y9&0CR8_E^u`X4JJYL-UR1;av8z&NUSZUoIE$~fg@o1c`Wh zK9gtjjKL@E;)b8~JJb_(>;~wSvOf!Y3cKV+I@2pJefE8%4>yNwgJwt{B#Taocj%0? zUKir#NDBWdcZuG{|{U# zy>^$D+5=si0QJ)Iv1NFL5m;v(L5ucp8`yzD-c$W&Ijhd1M<;YEf!vvk=N3{a*S5U`w3ffN5NTtB*ucIbx;VgW$VA&Cv_zQV50K3N zcr0ffg?p1XcTVV{e}HJ1+xwsrK6k0(J%@O?<|riuL3AnUX@Z(t3ud(yOf9-(WyBO7 znO6~C<4>$$QBBa+*rmW{Z6MoG z!J(rD_q`2X9bsnA-t{*AYJAYs__GQR9dH1~UXGxw@zV6YnAoP>~To)Z#9l&I3WWaOp3=;!;7RJAce1>NNX z)sZ-4)m7CkihqHHSM7VMG9-Si$ph|>M?x&+8l29K6iT~=h&KA97U_23+7w_C>h;lF zR%1|gNZb2MFs{AK=)(5ehe6C_4TC-bK=IFELU5vT!^T<7SX6?_%x$ zy>zXZYJMFV4>jpSx~lVt5?D5um_5~*%?Ui$fV~(?m*E?+P{RjU+`so92lh&*REnqU zaPC@~+^#V|Ev`yk_z@97&8;gRiZk{CZKraK+Y|0RVfSgYJ$$h$gzhJzau|>WO;hTe zEB&0V&isX_&*MNHt=sIy>gGl&Cu^HdrLe@$M=18lqf`p8JPt zX{aQ?MzLJtiU*@jUcJ0(FB~}?phy^;|(Rb zQscT%B~COQHz2hB4@%e)`oLH0vdzZD%>fcE(}Z`M-MA>PY#CAv9RPoE+|FQsHoo=D z%gJckGUb;Ey&%vI1!Xi;XX}dLm<95G0CKtVaA{U@R+b6iNbI%h?5>s91@kDF*1kT( z3TI|_#Q^kd`k;1LQGUm3DD5BD^j?hjDNduE&jCmu7;@JY^96nD41EvzG%(^uls&MR zYV`FcQ_s?x^h6O4Inc_fA9;{0{2C`5#9RIhB(%F$W>oc%5w~f>3cwAi1?LVn?kJ_% zMV4tMMoy{B^WLe`P;LNA;|IVzC0m?V4t$2V{T{pehj71N+59FzMzkp|PK!gKQq#E7 z*{o8_8>)S!XO*2`t4qg}=qe2VNUoXGuijlp#2`_|#`~^F%6??_zDFj1|KhuK6Z|bQ zb<$hyiB{*@ppDGf@T*K_j)=jj?{NDAFK6v}a;k$>Sj7}ZV`V8IoHZXk2dqG-D?Tn1 zC1}uXMZ=DuSBwKTx!tLt!Ix<$cY#Cez|s)|lYLXDZS(!Z{FDtdzZ?Rp3`*xVc73Ry zLuJ?bg9rZ%SA?flLy9h2D5+WD?ScXeMFM)B+nz$xnZZPzNyanQR^5L+G13%|`jvsQ z7mTw6`1lIOpP{cV=}=dV`;mX*UL}k&e|L9c1F8w>Fl)N?){cMNee!YF{-F%BOZk8T zVecOhrzFnBeR+UF5-N;V9^2ONB0zjTvBACqA-RKOqB-=XhH{IB5@ryc|0y{V=jU~3 z*eDSGJy$59|Fo=MTMF&`L7?zM3}+CJWdf!4RgJ3>Ey*OKf$3n5O^`xRFxELCmc1%+ z>lTx{XPj>wN)m7{Sg?ZM`yJC_yne0S#u8IkGE0L!?iW9+a6FypyrZf~?7!)YXLoxQ zEc?&`s1#lRJ=fz4Pu5Gp;YMNZK6^g@0hA%0`!!CV1C@1lmpnpcL!svHM@p5kikQLB zs~xe(B%elstI40s{0aThbrW&vWswy^QOo_|)V^K^ z4>7ZvT4rD)Mqwx1z!TxR`MdvssNsJH7(}c)wiG+rFOQ#&=D5F`WH8|Af??Vz?KJSO7jOK`|^{oPkb)bpAk| zsVjcgfyW!GVk`}fAA)0eWC*;MK*e0%$MfYV!~7r`2Ub>)WPYrq4=yU72oc4NecuXB z(@?7PnW!6_s0J$q`F<(^OAq;+bfq|acT0;YM#*R~Xc=mhc+HAe7uwcq`)G3b3^V-E zpPv$n(Y7G#JCx$J)0o~T~;VsStWFBZgW zUPs=TxbLgenQTE^)n)dx{5IdcVg~UlfZqK6QvHy>1Xr0r9mj8&g$6LvXASlon$#GgtOJv%Oz5 z_dm^iwsYaS))*neH0K3xKK%-7KD`jS;*j`m=0_5jc&8>o^U41&@qV?j1Qgl-lf9o= z0f$y0@SL-hn1c932~R>Pm|N_hEZMwz-xzvs#e*hX)O~%`(>$c;;W6ij5-ilf5TsrY zhO`c1el}Zi;RF~_O&xoRo=xLCr~B1|APJ08`^iKmSUzC@jjG^pD9n?q@9?g-2s)*R z_17HnJ$X|0qG`;g7HWqViK#yIw`ql$>!x61rey>XxA2I!{&w~U-;Y{^N~PBD-0B?a z)yDYSTQu%bL%)u)(7+KzE(M;u&yNB?r2hTO1_*Ln>O5 z-wwx0OE#4>lp+K|O9s(DzwQ(cNJMBD^*!gR7X`J6Dv7ozW`n_PCle)u3V5(ImH@qS z>HlSNgK-)b(89-G%~LM~SF0?X=}(%PU?^+(N^b=N81UbwY*bZ0g~!u1xC#^Bp<|m^W0V(;6Z7~>Ufc@B>rM;7Sh< z)7cBb|6at=%Y}D#W9V!no1D`MV$PfnHRIxJZrwdOxAvx zwUX>}lAN>meP2IeWtWIR9?mS`J(ZggK#^8Qp8Ac-=gZPYn)G?>v!(G|n!TyScj^c_ zE3V~zI`&h&GQj6c;`tLzb5?zXW2_PZZ1GE3tuj=tKuf*7QH?TWj0KB2tX!IFKiArP z_v$YloAN;Dg{v(}@aGz~7?Zn)z7}UYIG-ss_2`_pCf)FAO6YCKne(UicI7&Sd3Su} z8O#ug`f<-Z<~&|gOnQ)KzbiRh*7XeNp3z=!lcUIGMK*Mduut%fuN-kkszX6G7zdEt zKyX5hmUv*dL12uu{*dwyVMU8rC7W1PG3=K-1*8?S zRBOMh3W~|^oF3VYl~P=P*?V`ruriGo;0nE{k$q7u%;Q2reOFHLgm#Nc-ml)4VqGWG zty2;!tsC8GB;p{NBg^0qGRRz3xjCm*kn=|VX2Zq zQ>;WQf#Xn(7(>kmUC@tJ)CQMd*HUsAQtH^LFgmQ78&2-(ZcUHf@{g^Sa-kK*V9;&p z4ba+G=j#$%>#QqxUY0_6Q|>0YSrl$JKzZ%Q!?XX~3M=l4hf7A?|0RBAt0ljGB4m`O zQBm<+mibMZ2=O@T`XEG0Q$gLe-3Y|tLAv4yEdIiC%1L|Fwan>7;R#uz&JRw=Z;c{tK5TF`|MwMp!^gUG;J( zUl8?tkhHYA5?<@29$4{G?Dwl$ipJnq+dsj7B2;tGug$~359rtGL&`^cECCYYyBf9I zq3KUc-0alS-?FhiIo~ct{np8xa-YgBy>{`*NuSEV;ybqQ zAs*%+UlQo7s;FYHEKb^GxR$M4+P2j}qYX8YD{c44`&s$!c&3yMMmM$gbi{BhoxsSz zF5$_h9&+Ba+Iviz^L)On+C=Zo8N1Hg3)MO)j9+c9dp@hSY)|<5w%h*$B^u0=?$C4h z`ZJx&i8;l}BBib2&nr8xm#E$uh&hz>xc0jB&c<6>d*0VK7lU^e$`rbGN>u&Ejgy|o z86+V2RRedi-9rgT;}Tq^yn8aIWJaAuW=Y&WWGY_*-`e^b1e<+u!2)Gcrg@XG# zSF*^v$%FAM3fCM$D_6DB_%7QWYwEjEbtlY5ulDS77+-5ha4a@BSU**~bunV!fbVwP zq;5$i#jd`tW;O|azpma+mu%kl+>oQ?i8`XOZKJ+{rSpx;_Jy8}T7 zv8c&(gpRB0ij}!#8DPqqjkf#om25gf>f&YJ24eLQ(vs?fu>I*jnsWyWU;_#ctyV2~ zY*Eg7jzHGQ`0<{D;(( zOQv4->;UA3yFN;0TB>~{YB4KR6U#?Ivb)8W2V$tK%BEP_yFeLna> zno`?N7D*i-BV1k%`bbUTYveDw_>}MyS?bJr|D{YPH_N-z{jcS zZq-@W4JS(qrNkt=7vn$LdeRnC$8V=WzJd^=CiY)DU;8e9?TXiGM zLcE^e4F#T!J4yezJU%5OQU8K0{YZ6*GR6_zPtiPusC_C36uXjiKWM?Z`pPw|mB-zn z;mz*q3}8+m&P)1oSe^f*oQFH(gMD3o;Z*%{4s(6s&m1O$7_CtG_o1RMk@tc-S<04s zhr+s3Z*pxq9^NUxWf+&FCluQKCAu_p#dd^KqcwWk`fN_?4hTMwZng8U;VX{9Nq|)q67&{#e}MV=K{0gS0yC|_jE zt>9lq(M$eTU=}&$A;oAdzIiNzVu42J=$})={f*Xs8?}s-j{4jt|3gNl91R^a{}^_8 zVPx2_7ViX(QNFSo>F#+Q-G+v^&DO>d0?sLXEgtx@qNj`+p9B9@_$16$sISxe^&Y+M zT~vHE$zY|4Et5KYR`}Uj9c?<2YdZ_+8z#cp)16=v4r{1IjWEGMRGRp($TTfogDcr( zOCPFUAcrJSLn)`y!2}S1bGULIpC;}yK946cJyp`cgzs~B%blc;TF8*=skZ1aIDV2B%<{Q?ABX7 z_FM3l!p}ZHhrBs{Hj?N~U&K7kywa+lbSxk3=6lEXLl6W zoSd) zQs9Lw@iEK++6uvQih63}&N)7wt1yEjkR(1c*{lGB!tYvg%-0u4JfW4?zWq2~I(Dt1 zheLK>5zLpfp5!{Nb=yxnfxpHI={mi}l@Ac-m{*zCm~4qoo0+ED!G*_i9r_}zJ6f_u zwlltY?a7hD9%r7xba5{1%Azksrq5Dz+(j43@a=BzBTRGNmf5dhNbu+4*%8I+FWQOhX?PZ%<`)d2Xc{8S=rhmk z%kJ2{;74DaH`8pl;@1Q~Y(gg&M9HgDPAohL*pAQmB=w6GB9^XI#Z2Y_AbEqd)S!&t{Nak#dt63xsI$V$^jtU(X}38k;+$eA4Lmwr*v%A}T9%&Ycqha$bgpM-gA6Idnn zEZx7IVht*3y|=IX~FIT7$oT4kcDUYw1-uD;j#mx>Ns%r zySqoyp!l4^O78nm1_*YY_T|bywfSMP-lfP)xK1FAqvdFXM#}V$2e0vzBg^9Ztc}>FR-M5Ke8of-^g{|}` zxZ9irLsq_)jkZSjnjL`?^rFFn2EwL7~E=wVs`8cqTB}ri+7Mzk}qk z;9nkoEVUgt4Nh%fCB~WUCJP()Dx1C$d$0@}C+W*g=9AQsF~pEG zJ$N0gOhBp-W=b(%-vTZ?XMOV4H@w`_wuGuP&I*UGqCb{>fS9!Y@cVa!;yq;+!i(}| zX($~{|BKY%bdzMiLF3XbLsV9Myy=F88-OJqvR~M6Nu|l*?S2@JW{Pbl>7>!E1 zxkG=+pAb;Ton6Metz1gi*~QA(-5#>v@&7gJJWiH6>S%yvl=I7<6(EXlqTP-?%g-fG z6hw>sZgwtgmHE>_;qQ0m*JR<;C2<ZoQ>5^K6k*;^!o1NM>f}sgXMA*3X^*bz`1T5EGteDnwE+fV-iJaS5JjLU!?@#%C~SGzWgP3_#-p< z9m+z&pSWc-j zK`3Qakdd7mM`GiY7lO4RV3Qy+5hh81wXF!t$;)xwl?$lI^4857bu%WgajQMw*7oK4 z%FyAGeu&44xtg6j-wr;{;kQ_I&at*T0WY2;yIk^+Kg&fT8AT>POrU-{t|sB^#&{pd zOLl2+jcy@iF;d_PusRX!T{*LakSYBVw!SU%Mix%xfG<3=DZL>4nm`}aQs0z zst@nXln=}-GN){ayf63E%lg4|M;pGIoD9+6_<;j)%k%E+UEJJLJfQ$jvVfp8;J51o zPb>yb;Jo{OT)ivCDit6c70a{^Tlry6I|TW#aGmjFSI<5$23E3I;+z8H9osa{E69Hi z;)H4*e6nO0A^qa(%=6vsc1si(5a#RB;MeZp*XJ}hRMcp5uCw5T*LWv3mzlZ#aC_v; zWthgXRDbxxgV-TORVS}Bw?k~Qu@*NBP#wL`*u34t5gEHk0 z)HIqqt7U$JW_3d&RrJ8J+Za|$sC7E?seV+Lk13B(ChyGl$xU9Tu6eb`YT@`wu3Kvv z`J6JJ4sH9=DhP|?Kbwi2+|_ka5}4YQrX(Q0ZMo&@xF>obF&bzQ94H1Dx#Wrd-C)?X z@Nb~z(pOfanuNKNdKo8Sc1cg{dBCmDcVVT$!MCi3f{}5-K8M_-8)6!q1R$4Ko#urO zu*b8r-_MEBtT;5h!_ErxE;!?7x#O>l2#f*+G=KOcYWRLpmguH!@>xx4GrF_`|H$O> zCjh17oh_Mvo%*L_pOoPAW{IKcUjo)Pk?UXG_9UaFLXaXrv=|i}Qx-wy63PJv{xLyC zJqkQb2gLq-xaKVp(_slrR?p;;g5rp(`u*hij3~S7tX%O2}WBM{%K}L|H8=1k@ezyq%axvpw(w zG;y;2nX&E3@yI9(H0?TllO6Nr?uaA~B1s^)b;U9tQ;wk>cVxaOo5zKO{9p`ZzjlP< zJ?-JNS5?$&cg(St5*OBTmk8JUVtNKbs0culaiDWJP}{4-1XT@+h)&tIbASSW+c&em z)kr00(5Sy_%@R2I1@<|+Txf1`GE{b9CFT1zk`k7>H~3_hz(yp24KW}_YD6-LNaM(O zx-f^P8f}LH>T-Z@v(Q;Up)BCM1Bs3C=Ka20n7%6rrB?d+wGTFo>#9+QC!WpaD~el~ zT`WnH^#|8o{FkLeO}S&Q{Csxy5kcJR@!%r?Krnw!8EEl569t2arX|{hMW}?ErYzw4H8* zc0PVlo6>1(9=n?iM8|0eL-%>kl_AK4fSh2MWPyE;dUyP?A+i(C25bDYerS_~c(QV- zV+Fw?{7bt4gAP<=K`o@ z<926nlCZ4|Pc_1A`p>$)()9~9E#S(u&T==s;j`3y#*#M%12d#TjHwWPoE{sJsh7%6 zXn(wFFE9*zLW|_TRP7w}u`Z|04a9AZvFDVgVtWJf6YnA?W@Tr0bPG6{cYa0hU8?y& zw9d(~l}?N}{i-PKP`CZ?!_i*LuEalxx6xmeQ1qz=x0Q2N;6=naAomTDXFTD`d4h%b zO69fLQJtuTh}b4!8e1f)lg0T_?%yqzQPe)(p2PJ8gc@AGTA&^ zNN7jAjXoPvol=OLAF!TJflGTB+piVfprk!&O?4k!yg=Z;a#-*0L#P zvmL~D<=f|IB}xT@2eX>cmtmXw9_V>t7<5tL$s^S(3Rk7pSKR$r7P9zhPlFb~_|qlp zC*XMx(5W4witgXCOxfltUvJmI5G!yr!rKyH4re|CB!_jDRnF;D}0 z`fY1-D9POta_T?4mBjVPS_{*s7kCWc$g3zF!FGjrj{aO7^rOp#v+dZYwel&HvqK{*lNW>eti}wn@M^xsK0WW z`M3Z4zm^OdKb-#!Fs5W6V2v@0|2)gGlGn>d(+Xu1J4MeqNzD}9nW9dw*WErZ^3up0 z5~k&sZat4<%06o(Plue%syM{W=c#h$=V}TS%ncV6wW^WV#jhn_DZ8^_)8;%(=5hrn zNrK(>KGOQ&vZa??$9lsrGhTl$YpIX6sl}DWFrb9BiK=~%G#Nx~+5{%dD#@85W`BPF zMX0u}(BcsMS5j3UejG{VzZi{FYx^{jBW3@n(S3?rrsQelvql{Rw{)RWF-w|y$E}%C z<{sUS+RPo@RBmC-N|Uo ze+Biia)$Ugciv{L(JA(nd()Ay*m^7C!3DNli62!swIum-962T>moi0kOjI&82)s9` z8uVnN91YBMQyfs3Q(sV&_0lNkfrXRfSl?zN8S)J{GoZy82Y;Z05OJ5p za3&H@gK)l81+vo%L?I0Me_?JEO%?;UOkJTQw=6@DmG!NfB;_|;Ch9$WVEfR7&pbD} zgJB}+k(=Y9ZI{iKMN+VB_J03K)htf;&eXmuJU!uXSMXAeHoLXk-jqu84W4Vk%Ul+e z5U_hYO6!wO+>O)lh13vc<=4i1hFq$GOXhLEj(-hv;I%WUCSZ0OD(|gI8irJGWl4gQ zFf3x6XfCWE)#S*PoolrlC+=dsJ1sgbX^Zs-f(1i&MeH%e6=2E*y8#yl0}Lt7PC_Qh z=g}MADW9(Q(Fk7)-5oW)+ZFBs44wKrb#HFhcdpy@CyKSf3epw#VPaXki}qrf`esRD zAnPnLgYetB;Q;7z((c{xU>bAKJv*LS>RaC5_ci&_pqbj7wqi3C{3bAYO_dpChOj$uEgpnnU0)m1spif3yQ4eHf#TS!v&sbWKUwi2N4>f3bRYx zVBtvOsdNgbF_vVWED9mHvGEME4} zJ6n8gL4Qq7ho`9~v+~VR8-qZ=@SZNdrs!dIE%w2)2osNahr4^?85+8?M^%*&bS)Kx zkZ#idZrHeoc_#%Pql^>9twS-n0cPgRFJU4Mmn$BQI?e-^JfE`OJK3MR{x8FT9*?@b zDN?35;?N&K6`5*7STeZ+|wAQodu1v-aeog@`JLy!kTO` zzAj<{j*4b_LS*AluJgnM#nJZ6U&flqfPx``o3KQS>gUXU-Oe*HF^u^-&K61yt9w~0 z4CR$^OngfK=#98ebz35$w)Oq9bmvsoy-DkR)QH$Xs5B$St4JY>kEdrGaLS%afFKL_ z_?|M&`X}Elp$NyQ%_YqSvX>!%IRiimV6KcC5D}b86y;{i1#5mL(o|RI-SaSAMG*Tr zw3zU93XOfhQ`adw#lbhQ0xtcLXL%(-M>hFcs!IpIz*kR|N2Ihga*b5mYOPy)Sk7|yuk!t=LdP39XqH5xR;6Y_%rL~TpyJJnTg3%tMMD0|Vmju6~l z@^$AXufOel!eV>S*``}YQ?`>R*@*1O)WkGKyz-)ZPUwq^=un(He{|XRU|P!CldX`aCnn9|-~;%^w*#&oaUY9r1lP7a4!!)j zIYbnIJdyd;!Csmgp%bzCvn@m}lpN+i2UzB|Nu_XU>6Q2^k zP?;bfzI`&Il^_1H(YLd~iFw;*Dtxh{xwFYHZQEfx{8j(A&X#-3J9Lj_X;|jb!;G{Y zH>rr%)4q?|A25IQG>Uk$(EO;gCGD%XSH$w$Z;!g3GJo?=iFo@-rmJTz?OR|&#Je5e zuD%b<-$SP&-v4Osdi*`@d*pV+hm&tzPw5^D5fOR10+H>ev8M0FNky(A{kn(Fu@%f-&Dsufl9*bZ4 zLCJRHmrLJ!=I*ilpd#p3(6YVHGSYukN=0oN`}Mwfz;ak?6t!j1()+R{{jkw1YTMy^ z@2jUQ{}nOnCfoOVF8yamL)2GqzrJO<$I?9&^)0Za@7?$GU;W!r-~Z#W{9`#9Kt$6$ zmi|@NjH6+x=)F|G{_Nj&ZIm(m!69n6o5M<;Ku&m+;b z1mrL5)xNY-=F+?%6ht+a_{7m?9=19jMELx}`@{pL1 zBDu&U-dYm>I7x7WbOsh9EFL4OA9L0-<~%t@qBcfqJmvzuwGI|5CmySyAFJdUOOM`D ztBt+*UmnXCixBoAX z#R-<+{69Sw&jb(h|J7qr@c=+q5|LKu#~36dfQ!)|8PV-MfMrclWgVMG#6Cle`2(Wm zSjh$6(d48-e?$fh{TQ2+cjTQ#PJ&{P-2+L{t4U_7iBYiRQAT7%K~nV*PiAfM(|P-T z02#lR)KuU#HlNt4np_o{Y?hha3q$r35erq9%}fFP1zrQN)IoCc5Q+rR0Z(}u-0zt8GDH9AO}w)WG&_BOk~@xXG2j)+%b~Vqk=jW>d&L`zJCzZ5@p~0=iPYuXJFysWe zq`(ubd{gJ$Zby2tdq?qvd(jB@c&|u5K2&hXGzPWxc9%0k__N z8&(+GeSb`%G)6TiHlXxqBXdVBGyABtSK`41-3P~E4-V@dd@Rg-uasY3h)CHi3P0xg zLoNxo1u%wFrMLme@Io5?K~K*Ej?FByfC3_0Arf2m@m5(hsjR84OyEt~UoHRxv4Ua# zK7J3OW(NSQ6pX*lIA5QMq?F$?Es0(#*L=e>ZIDV5&Q_XqQYosq2&7JZ_s=rjk{^xd6Mc468Q?0H6l4i`c6xdF_6mNP6(rpqk?t zu{Dl}qUB#Q%Ozxenh9fI=Q~3t{yO8 z^S7V|xPmBCPa)P;l+;oV(0M&*F zX!5{HP$jajk!h-BEZ2tT58~Ey0g$b{NUz1VCx-OzJO!WGGCtm}cf0b@ZX5REwU4~y$CzvewW5?~h)463 zu7UP@8l8G69WuemHuhrwi-}{{ER#+D}B!fPDenPnVA_F7+6?X zU@(~W!fpLmK8%cvNFS7^tx2*HIWhxu6Q|m zjlWtJUL;iIe5$5ssV3|Sr%JV@POFPTw$ZKcsp3>!p~A}ojavNbXU#u^$`%;$krX+V z_%Vf7n3$LpYE5tMBpD6dK9is(+HcIKenz9sNhVxVq(WOW-&TgAD<7oApQ+BBrid=S zC>5ij_r!xuOMpvD(0ssOyw>pgyFlyJ2=TwqSE@qo^XbEC74dhb| zP_`Ipzsoig!IEyOH@?K697TB(m1NrRa>d513TU20Mb7IY0`6Fo4o{^-Lq4PP^a=X^ zkN-zzfX>7KVf}leaX7m1mZLh3MQ9~lD7_@ju7Sw{0@4LiQEM1RanMyH-XDj{j^%~H z7WQ!~sURp4=FK#~04M~)1kl(!8UT_eWM8}$fFqWGvL-n_HL0l}P^!@V-y8#37*GhV z$}k84gR%fZ(Gx^3z*(l})m8Ff&EA@l1(+fl^km>XN`hEwo;ftY5kWsv{oQ2_-q_Xze3|BfE%Jo25|x4aFE^) zfWJ;W4z9|mNWkDHhhnjf9cf_{0~U5@ki!OcpJ` z9WHS@s|wvz67-ej3p~#iCd?km#}dJfh-8CBu`u3aVI;A`Vz}Tj+=y5nWGpXB93N}E z04iRHjf~+)66H)4;mi`_%ogX)kU%H@XYeLV@Fz597QiZ~gF-7t`LF_F7vB6Hgm>t`W<$6hYTS|P+< zIl^8w(n&p>Zdp0#ggaPA-*Aa`C&b?}Nw}?>cv~~c^GcG(#WW{nioIN(jXc##t;y=* zW7A8$rYhZ5vdvECn|uWu1Nke1B?|&|OYWK!1e@fAUdsG^;Q0hKLb(*WTSZFnQ*>CaUvF$>i%R-m$t0z%|O$D75Wp%~P_w%~5 zvIgQ)CrO#_?qzL9WFJNs{E96-B3B-#HT=$MIWFuxD(yS296V|oIq01D-ZOtNuyja! zdpx%GXKwrNtAoEQhrhoZ{`~r5pZ?Pz`hN;ihQ>D4)5D3}vj43h)#g4S?>0IvcK4Z! zZkDptR{v((e*~#mxS(N2?XwDf!BNhmvzq2zW zG`?>4d{OT>rR+We^IO)XZn90{fwIbW5$s#<1=E>?Z!NKZHb(s`}GE$`Mj(~G>LuSjDZ z5_mo+--~KF&js4L9JEx9Tyi(hW%N9Fl_~lDDB$-f-%aY?7>12FxWR|``shVv_MrQw z?t7*M2927YE*;2cZAuFN<|Vnxcu?U%-R<=pa~8GJf7FBP0@iYC%ox1Ca5~ORa&?>C z18`@OZ<^QQSrS{NrxTYh(M$L1fw8#R&asiWl)KjexTl&x9j{Q4Crt#v1=t}n~p(uvri2_ zoWC5Fb z<&Cy#x(4O7);YyStygZ+Lmo!nxL${t3fxoRJ36_WhTgmc_CZ*_8hGF0+Tm;@SOaLA zQV+}ZyK-@JI@rGLhILt-j*u>OS|X}4*81X6L({+06P_=@%h5*yZ#BCT)y9SIf?{Jq zt0?l-VP}>AN-U6J4|)ZH_YKpJf7_dzsOCmt2}&Vu>=S7Jjx|{BY-n}8{n<1BIxTQH zxnR=;nDX{zd5~%c1D3dl5Lk@iKJBeQe1LRDsOjHo!_+`GV3Pb5jd|5P1kG>O_8ptngWZnB>#D)8jtDua%#}wwbe2|XxxS$B780P&ji4DcW zr(Go?wSp90N5}I2Hl2Z0>SEeFX)@g;xEwJ};~wk`-?e~5wdNO*eRvYw4xeE&kuCF> zjl3j6y{`EPO!YKru)7SJBFQvnN6v#Ge{`S*gJtS3ZCAi&>{OmjG{xV=5_I?_6JxwP zD$;X`8B7i4t^mO-J(MaB!0tIGtSWB zCHt^vpUo+wKuPZ?OjYW(Cq7=V5tZApepaw&UXyFbG`+M?7zItTQm5DRt*ig)LEhRH zd8`DzZuQGPbJ{m}j4LrA>{s81WI#6x^nSnSm3?dEl9c2*+c%brdHExaMvg$J?6@Lm zTwfQmOJo#d5ktD53Y09g(=TAl;1+~&^yI_xd3HAh-hYU@dq7dr$CufoRjbc}k{?tl zDmd|0=XG=+f?%`8H*||4h;o6-;9c6dI6ot=x{H|6k6h7&*XBioND?51%WJ+3moS#7s!iar$Hkta zYg_rmZ8UhQ>oqyD!W1NM8a%ydEyQ#egygM(>{}U>At)s9sOj4fVcO&f;gn@@dQCQ- z5$jI_?K7M3Sb5Uui?NA^ybu;Pn?xL3V$H1hHwEO=`0@8j@;$dzL~D9yqld}1-Ll;x zV_gu>^whRr&)}IJVu8W++ZWFm9=DA>*^#niOZ*T;qu=0bSuIi%6jEu3R>oaEp+~J( zJIYxt2nt-47zSl)XZWXP6n_Km$^Hf48O4C1+H$fWsZx`74iu+Q!UpsNtnnjYdXQn^ zbYBdZcWy~XIb=0KZUI1lvkXyLN>90#WkEM*RPSD&*-I~$cv&YcE^~S!j6xP%0#(WN zOj^(GXLD43zHk*br2t51Tsm2|<%P}qL}xg9Z*#R^H@7OMjhx4Mp0tO?OP-<_vHi}8 zaSvg^(u4A1$-*p6HnI<0*%I#*7b`Uem~d25Xa8KFo$uan5eiQ%ta(bLIztSYly2iy^mtQb~g7}b!))QkJP=`Po*hman5sJ#hotZ5m;{7y6>1SyKD)1`vJ|o?8@ETxbAi>!H&|WG_ zWkLX-M;HoCnk0omxKx6M!Z=p$JkSdlK;ISrbw|o0T)8V;48|>b6#np)T4xu0FeIXO zH{!{w2<%Zr9VU{5hk6k%xwN`F0T==27=1BO(&Pw@1*i||>LN7!E!BiB3$47_{FzeJ+u18=n6t^GpIKu1KbC^z7fqzm8$ zszh1USga~BW;ZDY2lZURxS$xTk79=o7)kh~!5a8Nhb(oW<5QmhfSBkrY+~Y9 zL#`gJIbR?WeC8R03D6MBkf}}+q-L`EQ%K-F z0Q5E?rcTeUPdxfDy%u`>l+LfDHj*yK8rl^@uX=hIUXR+k^Onct;yANM7> z%ep|eE+FL8CVlyJ!F;O{Ls@ohE4+eyM966Ro?$5QM8S+XL^YIEPA2wx^!QY3t=Kz^$xq#NNF zToFD7r`>_}$JcK0R(?YPUvAYd6*cjc)dj3sy_2saS=NPf*<{AmRf$nw3fBXYLT(d7 z7-03KlT;y#yc=8Acy$%&1|48kSC14jJvJ;4kgO>^>Hw?4dUl=9=qhm%>Z~NuG=F_F-?|hU!yL#4mD5qT> zdwh%U5G87}Rd%D=bi1t3zxR=0E9fG;0^4fa*ZH`JNocF#-y8bghKI<_N1lC;OqeQ5 z3RyY<^uKSRNdo=IGh#(qC;Pgh`U+$J^vCj-)v1@=2!Eh>YTur=-ECe(9olHmw(lu7 ztOvDM>DjAri_2JHz={M0cx;}OWTyQ_MCHZK>Z#7QHaN4AQ^v>?9E$L|}9vvK+Mb zPusW6_YF!eYuxCq%&+gx$$qTZh_kSxLJWLPkD4nC>$wl{`o%Vp0}NJJu#Eq(3>Iuj z%nO@L+AnVK?d`npKk)ERS$#w&8u~5REQfYIgQv5fD>H85SkL$OM>Y(eN(+pqh1Usk4xzN$U#D0jZx3b1SzB(k zs|$3L%GD#o4c7Tfq${CO1O_GIaOnw14TlYrjFm4Kv5Od}EtwoCe0oycSu#IzLtu*D zsaxYUkkcw!NkMp~daz9sxuy&KkYfSTV=79h;H|WFONN8_vB^JUGbyw^%=mNUgM^ZH zrAX`Kl9@NtlW<>2NSOy;4E^9}-2@ibV)sawYBs-)qZICZFfod zP^LXawdqCvCynxUidM-Jy}wJk%mD^z2)rnAKN60g>9k^AEEZgBi|j2xy(wrN$tKQc zp_nqUi@zP_J(%GSD2uo5(?4yWkHD*t%dhVIoff)`3NvYo{7b)E9Q;-1C=)dk)8vTI zUa~UuSuLT4-3wPT_ym_GL?wnY(n%zJbUzR8D9GQoFGtw z`7Mft^z!1{&%NER-AzXwn}=s+rY=m_)W7g=?GE#wRl|Vw9pCBQf0rc)mTn&I#>1;I z@7EmPZ#u3e&cjsS!+z2?O;Jo$Uq`B<-uy~?U*|KQgCBV0FrVqa2zdXgb!M@@fAnd| zGUCSPCl^rsf~$7l0tQW*Ki?kbi(bv`sEX1tEtzcJo*c5B#AgmOT*88}#CPKFXC+y{ z(lX#s8G6zV_|ytN=l#0D!f|ag3Z_!JmNr0t;k7EkPlr(-;;wD1-+x25ql)pH0D;Ae z&p%zewsI@-kstGnmC)8uV?P^i%RYLms@j0##!REkx-w$;xsjF?u8*HT+yi_L3wj&EvxJ|qsn z5{a-Er5_lZm~u-$)%YwHefvbkEHkFFY~Yo@0k$Mk2cwO@|Ge@2=acE*S6IOstZXaa zYlU|IeX>TWS2srQsuepH@TnK^S#$KNP$H^kzmE4_0ZY$*3~K(kfVZcsa!4KM|A-rb)tstd%d~&?z!FuL$SmY_B$YXY1H6Vdyrotmb=t|_t5smk-?o6rX z+CW&gl9WKRZ};wihSts!@BaY0Kt;bY%*H?)1IAjmZPS{SF+=VQ8Z~OzuyF$ijvP7o z?hwMIP$a^U9vybns1YN^j2As##Msf~#*Pss!u(kAqezk@P5$x>8nmQHlr~ZFg!JN<8(aK8ao}N|cKZ8+PrErBU{5TKe^4n4LSf?p?fkbLapNz#obrgtSNu zdBl-N6sycJMj}&evc()*1d+=yLu8T79)W~2!X$abz(`IrZ4*yc`=qtkVvB}0+RTY4 z#@z-Y2sj((>1{aacI2@~AAbZgNFj$ziMr}`!VWv_tTJj2pO|_oJXTr}uS!;=+CwMo za?+!fR=B`{zxLph3of|sGtOgpv|ZWQ`QpVB5tR7tet)#@l$S@y3M;a)=^=IC`ieQi)`> zRaakyHC9<=y3$DN_E_pCJcK&RD4+P)BP#K{B-TqSjr^k(SYl}f4?6T%4=-umt0BJp z(kx3p86wb+S~vIN>%Rc$gkliT4uk{}1oZ^8Lr6OFjI_ied#unzAbT(}Mk3_U(R53b zw8Tv+b#28=IepR77;_9RM~8dsXw_LKrnq8@FUA-;D#xppJY4nIb;+Ny43Ah>PDa@k zW37B;7FuYLC6+&&4TFapq{WNcYOP(fXSw$NcC_3R82I*^1 z9bAMWMA*B1IYM~EGu!c6W2u6*EjF`pkvwGBFoGz|hMvk%aqt!ajC=$i-2-9}g*e2% z&0-d@Kq4%ZxWtpKY;fR-3j3r;ELgZKa8+r;ios1C?ML9}RmXcz&uthB(Cks}_?0evA;*_39z9}{i ziLsc4EUuVET5ypSUfjW6(Eg}D&K0vwcR?co*LXk$`rrpZu#+9{C<YM~Sjpt5L zz>^fASYg{LS&vX+%3!1zU4)tbb;J-&PK8Z6d8mkDBd~Ac|OlJSj9&^WIJ2h=0mGq1?xUJ(nGWM z*0;YEqA!Fi+_d^4tqeuw%Zzx-h&EA*uDIwD>v~JPMh+Hrz{4N7V1(0sQKZ5gW_ZOr zv}K;ojV@)Z5QabmT#&+oejEjSD~nTY7GtM>%mnT}odM1_jF2onykv`ifZ zBvq?gOJNFzFM<(l^Pvw4SD3=JwQW~1vSHp@Bm!CmZiq!ZVv99nxW@ejiV@mSRH{;P zvN+-^VS%##@GUWXHJ*0lEW$%7g20e4a647oR0R`^6jF7bIT9ve3tJe&w%ux; zdDvkdlGx9G1~jXhq1NL1BB6(7adKgnQR%|<#?j4jMveH2I#jw3Nccf_LuzCrk2eBp zl#_W|+ESMWVF*zsMwKC3J3Q)9r+ma9CpwYer$w+6t)6TKGtsCJlKIS$aG;v;2uY~A zd3nyT#-?s_kJ!$(!V}iVoiQ8%*>bfad=7NBwY}}*_`<}5J}$VAyJCi_vXwD*^rInd z*NpzYqH=V&v`aPZ-M(vt6-M5xkpoQIfC(m z+N~qY%|Bvd5@YtY34u*E6QM1^EL83B(#Be6IB(9(mUhZhZtXpD+vP8ZIZM1PZnYZs z#Nu9Ya+m99FFiWac7N0GH^cCUH~hGRLBH?4LKUp=<&7J?taLBe6-W?*lZOn_02R>lNMEU_70d4)%>E!9 z>QDy@a3E!eX95#r%fu#PSJU`beQLCRT_-vr3RCcL%T_o0gVG+EcYUTrtEpgWQRGh7 zNVV>qS~kk_F6|578SvM~zRPi*&=d<7@!vN*LW8mRBZ5yAs^H=(T7lz;raOF+n*}bA zKm^7Df#~z5x97i0vg>a@P~i+2Y)~ZT$hYP-5^R=VexU%7dPoO5{TfP;Vq-d}PIWq^{xQM%>KH91?JFBhiqrn;^F=-gI zUpO@G^S)+yhGrJ<%gI zA?N`dNQVM6zyst3P~e0}p@h}x4E}n+nerwI^bA8V1WG6b-NUtl^Cl2^jI=Yeujvd* z(1d|Gt(!_Pr~-u&R1r8+K^DA+>5IWS+lNN9!AO+EveJfZm|C1O{9XgSni` zA;`R0#LHULKg7z#mx8Gv0D>Gyhkf`(eb9x&L`=oRn%`*z6Ka~UVFU|71jvlZLcq_- zq$Avc!$Uv>5lV#N<3r=CgshXMvhl3WIGfWXhFwU()kHaVoXrWHPET0kXe(1vT625i_zXwbo0Fh%EN$n>*ORhR`=5Q8v40=lF> zq60vS%*(ut04;o}AVAW7vw?KDhkn=xdq@WQwoL03$;xS<8 zYOn>RExdSDDEcv?t$mrdR3-3%JV3w$JRn!}J3oL8SXC%kDnwZAR9IXDKxZmdQ(dnj zFoGk%+a!R3Lg*00P!Oic*uKTp3h7e&JcPp#*#k)oL8^@RMAMbUI!yRFX7$4me5ARH z)^acho4r}tY{#9|*=hydZRLml2q@j5McvemiEL<8Xz+#jp#^BLhHW4RqqRhDi-vZc z1zP|}U&!5YYq73{%UejRfTYx!8QVJ`SAAWDR6yHU0E93w0{a8fPqoPF6+O9qriVQ> zBA{5jJ%S`?1HNUKzhxT0O%SGe5DfWP$YhjpiUf_#8hkOK&qz}P#k$EQn-F9$QXmFv zxCYHF2XfF2*orL)9o+<0;L|PL(^cIEhG3Hb23DAbUf=~>xCKM?g$=Hz59BzYU)AO_wOXQUTjl$lQ>^AScD#9nHwbV_jKJh}_BTuM_Ft z{|(@B7+?aPQ#xhG243Ku?T3lzhkn@B2$hN-M8>e zukQ8UyA59@aN@qz6GCE|u#w`S($$h(T=VT)Mu5pKh7jR_8rc)$mEF&&@dVXM9yCs4 zH6{l(W;QzAhd2h^I>=5D5ilUWuRRw8tbhWJ?)BkF~GYzAQ1O?GxsA&g|< zY6VO#ia5w*HU4M?KbQlpumezL-m^`GRfvNypu$rQVv8i=XL7Puc4hC)TUjoITE^H~ z)?&a-438}#KS7KH0p?)!HOK&-jjN+DzP(J4#>%o3VxU<7R%2*pW375)YvzY+&gO2m z>6@MiXt;&;iG@Y2hG#(0Ug(AR`JPyig1FoP7 zOl|`{Xazo)VL0e#e=gg8RRur*gCi*D>P1-5ivUvX$n;{YhE`%EPy$&dggIn}yxxXl zfJ}`ej4AF|T`i$~dC$q9Rr|D;VMW=EqXaeeuLl%F7Rsh-h}LU(=4jRpYPMEvuH%`W zY0jqO{yfI%(bnT=hz4J1nO~@eY+zC2giEFU<5&o4Lmy#TB)(g^Rsw7Ihj9>Z z@#Y3+3@2O;6puxO!Ty>*G2AZ27sA#!2XgG#QRYyvAb8RyU7+mBZs`Grt!kEI&L(hd zChY@{;B_TVMy-b7Tx3Lk8F9`fTKI)tP$*zX&TMe%eWV6^#tJoP1AA_RHdq4?|K?j* zZE8q`gLE&dsrmq?pO|k@E-4R2!}!_>_3U(jBNz<9_+|`Z~FB9 z8WR%oK6E{0#!1>x#pJAL12l+(5y#{-a06EuSZx?@Kw$9}7v;xWTN$76Abu$u zzwzyU$Dz|cNa)x!S zY|CzG0;bae_wt$!^IZ?x78Sw~O=MPr%U<|}mx0=7u4Y;aHuq~es1);10N28`YU1|aP+=(*c*q~SA1of82E6MI*s&PQ#iY9EXCN>&3kK!Y@30}|(joBsuB5N}~v zZg59GQcf?0F5-qAy>;haNq=P{NCG#22239ecPZaRVHdyMbVra$e)rD|X$0Yc-w*jr zg1005UYmqp_=TqihtG0o&g_`}Y>LO@i--H%Y@U21PFlDH;kx@lBi`=w1!*u^Q3O|Y z_JyKdgWtxAHc*3TCvM)3_C?l>; zcwLYCXArMw5epFvATy{4m537r1FGuvBQv zUB6uD3pIol)@x3Ial_5Wh*i^y8jraF#~U`Xp{pBeywOTEh5afF&Zq!s>}jZhu`IK$ zIr}WMPwGZ3Z`LBQg>k_U!fm(n3M9!y5IyopBaCS62z3Lg`?W;|c^jUbm6&bboSNLL z-b^w13vf0)`GgHnK^fd%QivuhG2ear{Wsu&D>w}_vlvc`Ex$;p_%v|^MqgplP3@XKvCZx|t20cU&LlYhC(Yy6#L~u#$ zG7d0x5E2L=gFHR;M`SOgbtCS+`TjNZ70C;4*_K#O?|Ew9*^<68-Q@w>>@C5lm>^0!8*~r{?0T%`yjJ$qM_hRHw%5X{(FBb5co5aNb}m9%6KFo`rOT}uhM5RGW?fQLPhQWdW- zr7CQgN~l=}BaR4HK{8?pS6ajn$s5T)5K^YAT`dxG!URlzX_7ge1QVRV6EVF9zG`4Y zZuiL|QJ9%GXX=gqnnpb;Qj_{9aQea)hO2lMhTm8f{BzUNliI%Q}uL@7{=u36|q>bLiq<_ z&ODS-V=LR)()KKgBcLs60gPt^aI4TjjN~9!m;m+*tR2cxHNXiBY-mHBXayu2qRWQM zKqk8TOhX;8t3kRB)HS)WSn-EEs28Ffg#;ro zf{5;XG+h44^A^2CLas0wgc6%r2~0m*l1gL(rufoRF~Qfo8GL!Z*IGknbP#K!-6)G!Qo=#7GgL zW;J7kOpq8zy-@Pm9cr!4jNsa45sV21gVv^ZT8|V@+Y@W}lzewPilH>TlndwW!;XG5 zq^D^M2zAI7Q0*9r{Ff6Jb7LIh*oI*I_hM&Q&O}Y6#Vl+QjhaEj6))Q7b<+UrxIz>) za{g6vUA^06y-Ev(yZMck3Ry~15|6N2rsyA%oorUL;tzWmYz&dD2Rv{K5s6syew+7* z@|+|knW%(F9HF&Ekel2bk;G@e8 zbOREOUlZ=)WFp2k0oI!8=+}nKp$@jj|&JTdIz3pz7{uJU! z1&xBwVpJUy5nMzxq7k9WtEDa#HJF0$@o^y80p$ZF zg06$`10Qf+TC<6gYou(AXaFJ*r+mdLY<}fu50(ych@rBfy@%OPo3Mo_`kKw{CUj?_ z=}!N4L8QJ2suQ2;j1U{Vj(Ctcb=~V-L5-J#u;k?3?wH}#8TkGio>p@gxErNdjZG`i@lxT6n zo=E~E@X+uTAMy3jxeS=ts6=`=pYugn^bs1_RUba^$MtES5USl%Tv+%WArdAbSFl1X z^g_jr7%k|QFOZ6G2^Yw08i||=iBv-`+(IwVA1_1$EUen<@Shptj41$M&7r~o3PUi= z0v%W$2w@%rdfw;l)o+-?mCeu$Wt8FI%q*zFD%9SX!H^yhVhl-?v1J4aGGg<*8H2?X zB@hG;!65M+9U}A)LpVp6L|ni7pVYdSc7MnA^)M_DcD>_t>OMD2m>$xg5^yKljR2I z^#JE(qXYh05okdy07B2PLMgq%AI`!>g;^ou9DR*h46UPRY=u?bcxg{ zLLyiq)nTH!jmdZX&?Kl0D7=IydL1d2A`kwAIh5T!;y323^Mi~&Mc!K2tv)(5E}|ZEx>_5 zVcr4;fe-WmHfEy_)J6~#!4T+x3iQDrjMA6EmnmH!25O+sky*~QUJTWq@FWKdM%E!{ z;t86~B;eQZ?IS<-W7YMLopB9GXu>Ce;z5ogG30_x%>EmpnS)-I9T4tAMfzobP-GAe zVMZ3FVMf|vv6C#^n5B)%hICV@eN6kI7*0sT00G0M&_c%Lh%azRHPpg03Ij5J+%it( zOHCwGrZ64(h{@}(A#DEL9zzguEQ?^1N44YzM)G9bz za>l4u&fc>*mPvF=WT_eRY@$Pm+Y4r=C7N5g)#HKTRCqq$6m1hP)B-N>!iL~w|K#0Z z>>ZW5*kE8oeP*eaQqyn3LN7#vG-wEa8c>RKNN0vjT=b9sNQ2^-DN_Zgit*I^+yW|; zVT6X;pmtu8Umw{Q%WhG%n8*>`Z zjS_@B?$_3Y2}4XBkn&>>ksFzKguQfvCwKxV;E5=Nf~(@xdX$2!l0qpcUcX3A1UQah zR4K1gX#@<$mIkY^hLJ0H;i^qTFA$LaX5wNuSz3k+sN>K_GdL?#fsp z?H|ZN-ZL&<$)Q4t-9i{BrRE7Lp?)am;eZUpz@o-*Ttg^@c5yP#9Os@WF zubxVaX+s3;9k33o%C0Qn6zgw&O0q)cex8~vU3gT3v6rRv2FuKKD+;dZRY8fZx> z?yl+`$ueBu?cL<&ul_!Y7m~^}Oe_98!(MDtvTCkk*RqTVeyX*4v| z7e0eC9Ah&2ALO~=(f-;3i<%NMd;>2a0h0}C)!qQsX6?HUFYy|$4cx#D;J^*o01oJY z6}*#r=|L$CBK7V8A3P=0+$cP*iT9S9nuV{Zj_ss6^m~I+_(}vsyFv!9-Suh5B zs|MHZ>fnMFSb;cVR4On-H%vnp7y)jWFrnrE4a`6cu<-B}ukprk4&;Cg+W-yNKn~n+ z9?*dftAc#dC@JrOAV7_FfMq6P8@4F|s3Nhsd1AUXu@ghF`np7|PBG#_&J|2FGi2^) z)})0B!!6_j7PNp1R6&;!vY#f)5iD}m)&LDi@+8xM3*SHv=ztF7zzpNF4d{Rna6ueY z)Qi%nBGT6>qsf}!-qBqfE0^2C!g6=IR3&iMy*x1#Yb^iiRB$u@7PP>k z#()*12BhXIAS6o>2<5s40X<7HCA%;V;J`lf^FMEL4)DMa7(pL!q$&VHjHV+VU~0EL zXO3F_8!NL}oxO6X>YgWFG%Y`I;f?~~jzVdf)^1L5RRm)6By@B%N~LM$*LHt+O_*eM!@94fei6{vH(%0M3w32H#9 zYRo|x5CJ0-r4lSb4Mi1^@mv?E|1m#TW$zm}`8@77mFJs5Id`kr^)GTMa zQMGQIGH(k0U>Xme8<8{;)Q;82xVJ#ID->^ zBRDU_Lb46`PhZL`UdSwHNP=^QGccYo%z`Xr!3<1ziCV!QTsVe!ihOB3_&i;!Ybf_9mqH#)XQfP1lAO>rWf5q2RvE|xt#@MB;fU^vu|l3 zqmnN<-`y{-!aA(aI>i?=6V^plec^9OgZa?{rF9c!-^GS}wktGSu}biMw&W~q2&iP0 zVKjqG;><1R=CsGa7Fc_i0YVxyffGDI6i{uqOF;~d#_y+3mwc@|DKB*4EZo8Xx4h(( zQ=8*VE!=_*OnZsiJf3$M9iRcv_dFCtffP)^6i9*4LxB?*y${qt3ZA~H@nBM z54?sEYym8c67>o~xBM5sV~x1gnSPDE(UpDGb?OmqqN!qZdbmB@w@t^g3IKhTs(bOs zy4X{sY~O#s*r^yks8gSefP+v1obwtyybfwEo1@bcmB;^ zxN5WkKrj*5#L1H zIE4~5YSb`dU%`eA3#?f)Y15`rQ=2WDHf`JB#+CclZC$o(wPlO2mv3Lce*p&;JeY7{ z!-o+kR=k*TW52^O z5=u1T#1pMd@roD=#S*J5XVOxO8f@-zORf>)s>`msFiTOz6L_eKwvPr5)baEs> z0SPqlsHK{Es**`7v1t+qGr?rStt$Kq!wkP_hPVzr1Tn<7NKDnly!5Kk)mLGSRn}Q) zt<_e(M(ZpV9CeKaG+S`_n2hkYyRSBXBb!6p_w z^oU6&{Px=~;Y%lp1QJCTadct>{*^+oDW?{v6cbJ~9b}C#xCmWzHR>>>l(32sj+&NP zcX>o^#NkHvRC})7_S!5icW)hZ5F$Qn z)M5)e;2{qL6vTZDVUxt+|%FAZp3AGJ@nxZff&S{70nj42u){5qnTIC z0!q1Q34Qjkhh*IX8q<*ehH7~6JX%DLi(E8XEoyNKE!cp2-lM?{uFwZA@St2XaHAWQ zz&3&uBnoe9$P=6(kR`;cBj-U6Ncb1X9Sk7}T)2i>nlV5;Eb@RnIOtN4)L{O`B2h_AW>OJJSqg#_6bTJNXcL?m1RG4Sf>Vx^3n@SW8&CnuW~3!9 zIvkN*R@G7+>M{bngc&h$np2(b6o{Sy;}LtMOw$bQnaGP`vV_MPUp%iBui&OPyZMGq|JYU_6v2>cnT8z> zN{2e&VGs^_kj5DJ&`L0@5th8<1S|R|1aXo-3Y%01IZ=l#q=2L(J*g_n!qOdXLx;VL z;i^yt7uoG{mpA3k~3G4tZ3qP4}OTIl9JcE(EO;I zp~1x!aNthn?pOwA43BvEx3?SAz`8WBf%@>tzBAb~em#)xc;zaDjTj*b*T4of?vPMA zxEH=0b6`!T63I#|3=)OK?_nvXh|Bfl5mIq12Q#6G0UP+hVpu~he!(FMx0JNv;Oq`< z{<=dNhBgAD-6e++ooGcXx*BLf%aD9=OyAMsn8C`;OKdBf(ZmKOt?d0g>D31M1*&o=bjT9`l(4=>qfzLeNOvsBC3h0Ade$*m4~RQHc6B zG_V?MT$vH1$;9TjVv$;qrRtjrLJ%ShD4_ExQ;-5Nupt(>_=6k5knVK%f!%!oLm2cx zi(CG=&wTg+5Y)yk^SI@+e(ypL`cJBDOAIAYe zIo?(w+;2|nAxRG8s4gg+Ng+{y$lQ8>9{UNQZZ7wH5_0j1Rk%bCd8osCmA!LE8Xd4c z2fDPG@(9O1$jcAdBItUXqAroxxK{O!{v>^C+@07BD>QVp;us{p4KnrkC`Ht@j!YvG1 z!5XZg8m5L1+yD-6;TrG)Rq`S)u)+JB@Cl)iMS9^E&QDmVrThZ!YN&AFz^I5~;ScnR znwAKtNaMvyBNn#c2W&w9_Rq%28jgc|b zkJ5m_dbnr{mvMTaaSPS276$GM|A1G5Dp!034b7&xo(sBuEaNa@2;c(=j37?<=_5Yk zT&_bP)Wr!Vk6kKHtt0{v1u+TmaRLRA3;2L=Fc8@?ArmZNQc{p0A+hy%B7zocvDC~F zMi4?Y(GxiF1g)YII^hx=K@lvW6qyeBYVi1IFb8o^3y|*$WHE*O02gv`7Ttgsw?P}I z;To*r8m_@D0_PZUGADJCFF?(=K7+VsVQ741xTsOm{)UU-D2?y@?hJiP7G%MQwg3m3 zYpcxY1}cKpcEC;E10RpTZs@SQ%4-K^EnP^C54&Sclt2jZ1Rs+?ACCYD=3vX@64^EZ z69V!sD6C{!oJE{{x!4o>+5fmX93XIN>5BY2`3$Wk{ zCUXmLa57Dj1j22yN+1iipe41z`h;+5dLbI9;TLzZHC^)wNy8Of;YMh)ct)=@as=W$ zLl!2D(&Ua7jzo!c1xN1B2Aqp3d(0|zjn#fY4%yNi=Y?MGCJ6B62hJrA%OoE8un(7@ zE!nayq4O={U@q$b**GDyUO+jX%g97xIp0bM?lB*`GCEU&BQ^pEuuGn> z10m$Gj_9#FpA!jsR1o8!y^akK43l$8uu9i6V{#763S~Pjgy@e~JZ&=ogxG+p6Ye$g6Allo-R8V+?`+4Z!}aMNh> z;go4afvc%%(?=-HdYVD}uCQM<)fS?1IbMLPXrKm4Lf3eJ9Pv>J7`820^+ZIlW00CdsNMkjAx^n_;RSpd? zCImr0{Z?eLf@D1rSR05SZO?F1uvjHTE0pyV`oIgo;TygH1#Y&KQXu$_PeHA9PUqAW zId@JeQwKxx29LH+fza!0vif8aYFW2+cc)iAqsDrLn~2MIsBsy&s2Q|2Td<{Tukaam zL7c!QY^;kUZa@ckAP59e47gwyt}GgmU>L48lQjP3m%aPz6qL`7F~wX|QKMcQQq1 zK${Nvw$4JI1$DLILS6TPAvkAz3!H>ysgCAXZlQvsr?t-SQln>Iq2a@T!)wc87kEIc zTwq`c*2rvtJ$ArHmu{(S8N58ifRso4m zK@>#6d^a%@>at4JcYX7+gH%?&cJ31kQ$Il_80z;MzF`3oZ$Cx&VwBzyvBc6-9GEGqZrL6_xzgGJ6&aQosb@ zGz9>Z3ljLlq=sB8v>K>EkHI;dXGHFRAvGTj#8M-KhlKpBCj3Awk^41zvcOZb%6odu z@OHoou3;R);lW-qleqv1z_QmoIS7J4dOex*uvY=)@s5TV*f{oYUP2YhS0X(zasR65 z))$I5VG}5lW3c#r33F3I#uQ$m3rNVCrxh02lrmeonF%x%;gkeIGjzh>_fp6fpXC`K zjf(z2Oq_u_s8uB3bT=&=?Wi4%?Vcf>p@FBdsqIKudaNg$k|V1u&IVF(pT~ip`}x6` zkQz3*eg+yW4cedyS_p#Rhn1|3>h`-*f?fpiZ;%BQm{>nK!4n;c=<=GrAd#azIv^=! zmqmILHf0n_VHkuV7D~#bW|2-elO!oKPr-F)2{;Q*DBav3v-v;|!a$Y6piiyL`py+K zdqJp8`?Mp&cX=8u)Ix!Uu!aLwn?LL<(Bi52wJfIR{DNc$TA&56APZDLtHmK4h?}^< z0UZ1}FQ`Ep0@^&r8Z3RFynrAA?57Tq%sSS3J1=%_qzu@QKnVY5q$c zhd~;|_6Sp!A2FmGsAaXnutz}{hCvpzfO2V?bVqU|CzEJhk-x(=6+JTy+@KGjNqKl7 z57a;n*uWLCNNVZ=8)#ApQTxI%95L2Twxgj#T>G_QyS5$8uCnEwuaF9X;h2nt7q;QS zy1^Tc`?!r8xgqQ&u^}zO;BKC~ynLX?2b#LA)2u4?NWDvsfbA{8+Z9s56c`sPGGV^j zY$tkx%^<-M3G)Om8onptDhiuqM&>xEE;ReQzkQFIN9YCt!&@yo1;PLhT)|vR6C12y z8gN1SKI|Hxp*5y~`slc3GW^d0-7mb^(bSH$JtV}DTEx>r2y5HK%TKp${=vlL&BePR z#)~@~X#AgRxEGM1I-i@ZE+V?ys=Ro>2S&Np8oE2&dMlMc3|`?BMxlve`K}*nCmJCk z1Jl3!D$cMRqd8C$y8KgYL6snMXmc?_4^k=(u%$d&w!r%>Dp(Z6v8)&kdflymI zTw5GC(7heQ2R+dVUF|qrwy}k^34KUNczU>S7Mg(@9?Tmqy|^E2hqB?yo}sxteXPZ? z-%Gu$W=#*Z)0EX^Zj#_F<3kK^!4zbDG4I;ECBb17<$@-jDR=@CYb08-_T`&*mbN2ffk$ez6+9z2`5ScMHAI zq53zX;WwJWk3m?S(OLXNEE=U+?q;DD;Jwo4-5Xq7(*rdOj3A-waG?F&->)+P(Td=4 zjaC;{30|QT8s6biP!jaxCvyFA9&!_Wxf3qh*Ck;>M!^(JCYH)V0NUeVma=cNUdk=*of@R(PkqVfH9x2Yc}k4FU&&9z&@X!4ZjiGOww$t3 zp%L|YBpV*AxR0CCy8)9k8G6xi@w%SWd%V=Yz6VY{yG@xM^NC>@))h+OmDwIp3}F%- z;U^}s5!wvnC4?~p5~FRe5ayfji2;^~W2Jf_24`^0$2|T9Q(jxe|4p+X4q)Lebm+l! zsm5Q@F4p2DYiRTBADnH$wE{T{JvhaY$x;Er*RNl|3Kq0QE7mJk3}MZpWlNTyy;^J6DCc1I(Y&mN)#zX zqd4J7dORL&ne#Y4?zvWu*JD*%|5^8Z$0)Y#;2x*x zHxF0W_%bmN(RjEdgO~8USQCLNv=k;-dqQm*r!LpydDEai&2_C<0~yI5 z%&s0w8|ZkhfRV3LZT6=kn=VOSfv4Wtzxv2|USik|vkX5!wYx`v3)QnI5EU6PftyP1oJKL+Y`adUj;3S_i@U@V=qYaw2GG;0 zlrZQgL(m;jS|+v)(S{=QtIq-$dk7gI_y7@!RQZ zuV$cnwqB@TTKwr`mYuVMII9Puk>J-C|MQs&Djp>_vT*C|QNynGZY0K5A(~y)kOwBa za5WCsNx6HFBGrMZ$pgkZnPS76F$}tYqvsL?7&Rh}Yx9S#5*piDf7?b3Exqni3cV+f z-9|m6Sjp;%({P*i&ID3ER(vd?q((-$e*ZoTE&K6Qoc0#zZjSALaUP5i0nY215KaUG zZNdncyB$YvF=oVl#kfG@PFbumXH<|yPzP%;H(;;b`9M+6HK$|M@G@-aU7=#^~9Cjo^jjo@jEhqw5N#zCnR4c>GJBO2%^Nq=-fv zwY!rcv(3X~D2^Z4*%vFpw+C5|MEl=m1+gl^qi+U~QM)AMvnmI~%M>`L1y%DifAWN^ zFJvY~o>uYj?@iwZ%484@-g`G%V=;5mnNbr}{QSsiG(;vnyPA(pN*AKLN}m z14}2ogTlVsgC}s{8v(r8_cE&Z@51Jl^#b#{n`fm`FszmYn}RWI1$X80LVX(sJj-Vj3ifp zS#9(niW}$iP$XH|=f8LsWwIF`L0QGvW<#D9RzokVY=t`))s(I0i~g$0I^m_0lxGnO`$Jn&d;yGnV zJ3+G9nJ#%_LM)^s#jn|whiY?%q!-ee)6(pIGkJ5t`+tH|v&U_!t>vVU?rO;vFXQB` zSB)V(&3-LDcd52F=0bYATUz|?CvWeZgghNQYq|e~YG;o!wD11}spOplvCwA=eytD7 zsoosvh4#N{X$@{mesk&_I9|MnOj>UU86ura3A_Sl;#@2Gvk z#yLN?$KR&jhbMiv}WoS(v`RX=y6KcPNA zP=(K27cFF_ryK}~lfq{W{5!MDsSic;!{;noJ9FDo4*yS(`rMiSocaSYIefuQs;lrt z$_Kfo@I_z$uHw<(>24S&*hQFZ_WNf1lcUWgeG&z;RhNgluo9;R7Q^P-PKTx|S_-q0 z%NqZRe}W-fO;eYt5idP>0>*RycLY{N`W*xw(7&pd>S-`eJ+Wx||35)W0nD?kfsLiL zjU0o39Z>xqnLX@u1YT;BbQH9Nc8d-bEN|zOy4sPp+1T~r$o6Rj>qwdn9nR@Y%bkYB z3Ivqm!2P9|gte zMD8+w*^rVO26<%sW$kVMHQ`F?usg>ccOl}WgV4vdPyZeX+C{va-vv3O<0$O^`#lp9 z4T|mjh+>hN1FU@9?Qk7A5G)=pvUH5PO1&IB$tC?clzrP?_GA%~LkoFl{I-22edN6j zBc$d&j=J>iu*>wbqAzXtKpfVoEay^>zti>pab(qG-6)UxrsGITIve(hqI>dn`U(D! z++jJ2z8&BIhvW-{gZiw)Lv>4^KB2wB(FX+4%&`BztP1>pb^`9&PQU@;k&8%)1xfLF z3CVd$=|$=P&$;Fk{(sJ*%r(QJwxVsi>1MUPj&N4tc2?kW zMY8)#u{{)L4HsdJ6kv_yzY)pH^oWZ-j0+yh{l9BC2VF2Lb?6PM5N4`SCdyz2*h6~g z0|sa?6D*8{I{f;u(p;Y>?6kQY)K#3+^_)~qTvUzRG(~(2vBIn|qU_P)95@NiXi09I zlmK2@lprTekQazk6i!r^NYs!|(n2Te=_eRiB%9l&TG^yonWvg#Qcac8&15qzk(t&v zv+bnv93-mUdHVe6M<2pxLm4K0MEl%Ln|<7C0v{4X9u}B+nC3^CW``SRgczg-Xeaq<#CxenyQ@XHs6;v`hdC%dw2}8Q zmv%Rjbk-Mlz>3;wi`r;h|LrGag%U7V7cf>8G*sf(ljp(8acRo3qorBUNM;R5T4f1F zc?lM2i5n84%-rns^zdss2Sz~&22p`PY+!0FYNk7kTsDFtw(643dNOVX@~+16E~auW zW^#^Z@;2s*CYHA}9psfr-?8LC5G(@61X6i*LiPE=RV0P451h+5f%x;rH6vpEqBx-d_IR|M}N5)B{hff%v5-Z zVz|?2idROi_#G9M&u%?)A2E)q*46Ose!s`vdmpi54t#TXVtU;AYXg9by1L zstwf5py&6-Tn?(sbHSNRPf@q;^2BxnbA=H<);nTdx6o1dg2`3uSl3^oS3EfoyMy%jfLHN z&6lF%C}fo$TcV7+OoOcu=h)UheIdh)4ZOrTjxF*6G%a=4{o`H?Tw8=U*sMNtDi%Hn z*9XIPJlF#xu(*P+voa|crVz;q3I6voZGFHbFS=)0Q#Kx|R@!*@>9;Mh zJOj^zOsvrHo@MpWYEmrRz93Gt);ghry_t-@Cda#PAD_$O2tdc0)uLm?t?GHn!`nJK zXA4~Yv$!=4qR5K_4ZL%N4N`ao<|Te#@EaR_ap*2YJ*=z}0r%xvFLP1?fYCPx&sP!x zWTmR8!Quw@IMGOei&Z+s=c+xa#sY0^HehM}K@+KcN=)21FK9WMqSy8TOsLSab5^)2 zGQ5J_A^|u@W!1PcCR%~X^rfnX=S-m_>qB^1s|gHq%pzf7a4KSCWnx?L-|H~MM?8a6 z|Go=;Rxr;R-_(+c`Gy_3+W#{%e5og+OEJ*jl#BWoX>qPO7->F@D4z8+5r)HL8l#)b z^fK7G?lpg%;>>3H0?kW6j{Wp=#qWW~e$L-ztcq)WX(R1W zDT19hy3-mM-eF%CGji^n_2i~Fpif|y_Zn1P%ZSma`-aSmr>|X`Ae5u zw~PE}lVr0iNhOeO>A3j^5LiB2(}&5x*wx(5Z1**RK5eRg>AP7(u%J3ooBkC&Z-Yn- zFK{K=!n0a%@Q9paZZ8j?fJQW90a|<=R6!H2v_j4FR8e8NR({_~jtoBPDL1HR{W@{0 zbjnwK*)w69_Mq&FWbhijp*4T=gL#=}&}$*2=_qB~S^j+i4k&75$>?OxGa9RLse#VU z>8nBvI>m{Fp{eejPv0gk*NW?P;JpVTLF^xsNI-{Q3=wBy*NwM9?Q5Vv+~a9ooHV@L=%#i1Nx28C>lq; z9z({VXab8a0BBw(FdTNGX>T1=vV2sWmSMFaa9Q0{AQE0>M<{ci)!g;| zA3g1cqy^MH06=Ezd+$#Iml>c|TfuCf_-{@Os?omI614|%_DG?uD%=Sy zK*9lTZvcRyBKqv??;yd=Ag)H7mf}JntwBN?ih?p)S4aOHWjSLV>j!3UODcLm*wr}V z1`efR;6ks7n1Ir!Bw13wxiQc;2``A}-&wPxv#4ZvzJ}Noliq<}T}`XsKtq*Hv(2Fs zOsHpiTI4_~GtV(F|JBHSH8|yWv6HzwwOCaPXG*JOK!0stEt|D_lJSKGbKPDiNm#}- zP7bk8>xBifQ%h57{j1cjMrp}d2O3Tnjhf$}?Iy;C!5DJ(mQ@xBAxe>OIOD_$NVKC` z_%Xb4@M^W-#*8Yrv}JPxJ(y>t0~zx(8d0n~!-pJ&>2**(ZAb8aiH;RhuK+SWwE1yer%7t zvJO0zicU9l!o!I;@)weG2DTi@)=e5r?uKX>ff~OzJB#>Wcyo+25tc;T?ouJpUM3pR zK^r>A3-^HTgxilMnOj5Y-JH8Op?&&2WB{+2%V}U zM0GNmckIqEcLB@!9VV5Hfi%FP&LavL5F4T$Y!$5z7GH*(c|@d6Q@uHeI1_wC*@t_z zqTb{7s2nLmu|mgW9epD#nzbOBJq!u!h~~ydU!b(jU&4BT%hY}sqLs#B3kWywASj$6+9r^66FCG5 zI5I5XIhndGgLKkiU1&FZkucLsYj@H(RXFnk- z4|K_$A^hV22Zh*jR793%qP=xeZ2^lTG>+IUXZT&t7(;ojHyp08cZN~QcHPFXhLAo; zb+g1(IO%nWB#(K<^g^|MY2GGQN%lbjRZNtI7bzL3HNW>S!O7HslRG!q8xScy*c3=&M%Vk4`Fc#o!`n6InKh^cf=I%4 zL8>X7T_kxuD0hBOHnzwx4a)f2C1uGNmj_DeD4-ns$;+ghVxcRmZ(*DQzO4bu zs&S&^70ptzPK|()3$u}Lisaw?1++jsw%o%@UV)Khpqpd`vcKYyifOlCq2kMcGkD^u zHT*{cz2GF(88SyxG*K(OP`9wKNQnV3o?g<9vSKRgJxpn{&i!?rQ^=BPy~2zg{d*vbka$JQ zQWRS-OW&{zI7im<6qU05E)XiJ_1aR``<~O=BXzJTw}dUK@hYkl&6V3?|N6^CQLKDy zrs~5l*x)h^X=snC*-cB|+$zc=VX+}KG(1(ev6_4MqcGr$M#rL_6nAi()BC)QcAjhz~o;GC>echz(i4fup~`Ql2GJ$N3xVt(hlaBeDWB zBKZ+}W0h^=>2i&u9{dX#z1#1`d&)Uo5p9AIs5{k|uMh1EEcDton(A|IkDL^ZP1k)r zF1iS(bkn7J)7}ghr$xm_J}d}~E5u98OPyHQrk`?P&cYEvyPto>d)ca`!hysSnv&tkLeY_n)IqFpMl z{lcbvbHDw7ti!^G_K+-yc>uVQ1U#4tnLKWhC`=XPXb|B5WwMvB4|H%n>XcpXRd53N zZTAXufP$z%(oUeAcb$?0vy)bN6?pVETrs%|h%Qts?)$Zo@?TQfbb{WXcQ;5k zlRUW!N>$v>mKVNGMP=1fre9xz)d3L6BLxGjki1yo$JbW#FBqrmd; zNm&%=R{N4Z^;6p&u<)PW4%K`*)hW9@2-8+8i*GF@V93X}52BWHem+nA*#Dt&_f6Z} zsmR+VK6SscyGJ9c&VNx~hu}8sX=PN$*CS`%qiFZxv?BjVG`k~I_IuF%l>Th{+3J*~ zPbssS0WXy^UaGW%l#pOWvPn4{2-CjQs0yM~9r;B)FAM_-{~9^oddlQIl`t?m5ZMQ% z?`!Q}26ile7xSh0w83^!C-KxZj)8fswWb`a`(Lj|{?&NT^>7#tsX(P2O6xJ`2~{m-Oc1B{~!VFv}#IiU*TJIi*M@;>A$1sfa-hj z>#Or#d+DCWgfD=X+{?7oT@3eTeac9S%Ahfv zJZSzvdgR5F{@Y6~iZkWfhR26@KEH)8uTkzE9%+|Z3e+)0W&Admed_m)MZHX_tI2Ve zdU=`VoztpF>HfIkek^qdJYeyC#y&|bZ8cHGJC82xdN_)^yk3PVeqEi+W-W`8JzAbf)1cg*SfpaaQ61U zv%_v~PjgVw!7s%J)TvKX%e>U(t*S9{C+#6`c7jUxC;dK#5ATTX?u7iK5qq2r=g_U7^wi@5+D*0637yE1a_*B#(&QcZq5TNN zpNzty^`wb((#HMCO&Lyf_yoRfTe55{DyEF4N*#>aX4OUAyC@V(lBvK^PWZpxb2^P| zU7RRAeX#g(DeCp|XPQ+h($O}NW-H(<_&8r0{?tU`)%(XU4_ha+$X*$zfY4;%yw=a^ z8M~@n2M1@L752cSffxVmPsD4!oXve{IQ#N#M+7iK13vgnre zUNjn%A3D&`kv%`;K+}Ck!68z6m3RL;0tF1X{Jv9NlsA4p?I}U_^*YUFR4C)DQ2;j= zGAvRI{Du)PetLgT!V%13^nNN}UpWZ`V*nCTS)P}w9vjx&^55wlicFL&zR6--rWnYl zS(n15=CMp%G1q3SG$NuZ%xaRDYb{GgG6FTHuU&;^AfOW@zTRXL3Lcf_pR(>WUC_&X zKu(n>VbdG%ZvO*KiQ6^KN+=Ix=R}-+hJC)d>pHq7DcK#S-+F7`iK1=zx0o+C%`G|V z?ue5P3OwALzXQW)jFHx2zT?)R#bVhkFh!>hMT1}G$YK??Aio7}?M70OGZ`1C7*!Bh zy=fWs#h%r$`&Sl!t_-MeYSqg&J6Tf6cce5f_MT~i2}@5ibtP6e68RRdKDf%J)IP}a zrcerACh(^?W2LcvC*5!o&wNZjQ=T3!6cY!aL0LZ%)dY z8{RtXHfIzC$iLFN=XNGZiohy)H@5aO_a@Glg@uFOAqp@gBeY?vrviD71L*2cZ=q2UA`U-o#xD99H;OHya zIAO5h1!XwRxn@~|`Y(3jf zXw%d8fm#{Ln?}=r5EJiuiYm%`uy$GPDA_5qaX-$oq1fdq>}K)T){1*Yp0<6Ww%!e- zmNrrOd>}uy^c14XPP_=`9LF9o6TQO`2~0}hthWt?c9h|Oj-s{o8oS}I=k`Z2$1XW- zVPKzA%}45lQ>SMiYX|%XzT|N*4E>CAbB^PM=4P?_RVzN@N&-XN102&fISM^$H}CnjHfVczS|{u;5bv}p7*;3Hf{v??2W~e0t=)w|gxrXL zc&><<-y^L3jscYIliZIayACVoTZi@&J-8!ID~5lc+)n1W|35q7(U*@=2lT_!A62pl z9BK4~HKWTbVmimkRo2?Qls*zIapl9ooVhv-nEQy?>K6Fw*_VK0>ngi-IZ`z}4YR$o zXtNzxQT?8*xUUcOwF_I^jEWUT9SWl}0o1+^m_+2z5DXb`9a0VA%s6!Lkapb25LP(! ztDs5pc2prww?*u{=e{Cyf$Ibno<4q&po4K?$i?#MDDp)b6I`z5>e}OA{uYcesnZfS zZvQe|VBl%zk?WLJnuEdbDqPg$PSgrKR^Hda0!_>yD z$Ww1X)GLogmFbh9cS9wG7sz5ic~?+5hp8S+&Z9k=k~xVi=~Gw8gmQZqk^i$39>|*b zx`CGk&>ALT391lkbnRZxe3k>oPM+~GVLj+ zN#)ar@2%cs`rh}^MjLj(eLT)2_E%cX)${=L2}I7ehoZ1zgVV(!R6`}PqOt-xOq@YC z`zO%xC1BIb&(c|sy=xO{!Ja5`SNfM#=wePagCr5l4GO;>ff4HQpl!q^lZ>~ z_SPu7AizFH;}ruV%62L~!lK<6ZxthB_~7!TSoe=q&lSeSC%Q}$ykqQ7D#sfgUvR4r zrd(&(9tmA|#US@{D6RUAQkQfTRR z7>;)5PYC$%3vR#u@lxh>Q;UmllO5#N#^@Va3?CEP>a7N_?-A8qF?k8AA?fD6X-j`t z+CzQ%_PG3)tj5~T_}7CGuO6RQGER19xeub9qcoAuT&dA1*~yT4&9EROm1j_JcjGwJsWU;K4a zc)Ga=pdui^rcf;d>%LJx7ygT853Qrk#0VejK)-5x#sUPRU>^aaW8(5lO_P28cb4{- zxs^e_sWz$1jw8<$voURc_Se=F9Pr{zG1NO)?*M?F(0;APMEg9*hw&{OF+cgo_?Wt_d*CTtV{gjxzoo!^ZV2DI-fVsZ`coP8}`-JjRxHG zG#Qj}`bKje6gd2axMsz1ht}*Wh6j^6+t=G{cs&Yz2>dhGq|i3dA95-xr}e>;jcJiT z=wX!Umu!^WxqGW&&}u$u_o7NknGYTa4dCJ1i7yBca1>2^cwLvM5CP_A3cL*YX}BCi zihxZ?{ph&;p6x+;(AHY(ZD9Y`)LZ;q)#fK&o>&l9z!i{t#X^I%*_p;*DVjZKHlg<-$fSSslYyzq}w-p^`-I||2d-$ts!RLFC8^;S!W#pC8;!ONY%@ME# zY7Pa~LJ>3+`!ObJYoEHbk7T!!3EEgNwjK=6AkfGWG&7K)*681eU;<=dN*a_%4ngXzM^LW+ItyzR*Vqd6YXk`mLI`$h5?hav#Z4L!kl8< z2vr`$AdeI2xh<7arg*0HLPIfKkeC9148MPFC#As&*LPDXd00ScGMAHwW?KM}`gHr9GyarY=403}p)HTbd>WEGi))2aI(BuZx2< z6bZU;fF26`MjzAiX=EQ5%?5bE#v6Uzs=>e-4HuEpXN~p1&I~q>nhNx}MGt2)EO1|p zCSw+=W)cNImGaihi}c}nN7{sQ7I;CFL8Fwp&1200x&?$H+w5$pyZm>Jn?>GJKajkC z%`-H-6nyMCXntkz=;`?{q|^||7|$r)S*$Q?RUW8x{m*r8*Qh1Cp6EuYPg-9X)Oz zm$D;Y-wqJtz{^f1aVL~v0!5v-Zjc7GiJuU(Y3O?}#8!TU= z)EwGSvj%-Iz3(lHVDQ$7>|G)JX6D9kDm#nzv+m>yz z(a+WiuRkbRV9o?0W67QbThtxIx1Sk4xqRJfXc~oGnGmtVyKnanF$M60(NMzm^h-CP zK;H?fpHZNfu%vnY_Oh~J15lxM1Re)9Sd(>n4Z+le+!94@jwCl$v|&cP=xvAFde-o0JkwsczyLE1HuvYwm1TFZvtUb zbe~adgJ8Tnn7svjbYPK~$l5LkHh)Zb=%x%SZV%}KTUwJ_uwFlJ?#!rd3eu?HRk8Vt zJByR8PF!@@Y;{5t))TevZW0Se0+>W%f*GG%##mLfEX=-gnv>IR{;K8QLHh><%-J&vbmuTKo^Cfaw;$oCNnsRt4SG?sAv zE2s-K)1M*edy)uzR$#2BARUgzD8RZQhM-Ltf#o0*THab($C|_6|6|VDC+@UY&07~h z%ops%gIz)DPT<-XMs`~FSRJ%CDAbo-)f5Ok@Xk4EmLKy@bDa3h<^>I-WuAm}*&YWK z_gNk&KAQ=s{EYE!>a|Ra7k6qf{DEhQx}%Wb-0a{O;pxcv!I{T#yIXSG;k~*Lrp4>Wq-|_mf}4#MRH4Pu-Xr>hhwyCNa`g5V@m==#W7Bs%tIYYVDZGiDUALbX7X2zWj1nMX?8EP_hj4QfbS2&XGm9Q zMz_j3$#ehU3FIi0`A7kA6h1k{k+$1<>1<(Sdg|c*wDzdK_fsZv0~=Pa>og=q%QK>8 zCJM>jF(>eG6Id+4sfNnQ>R>~Aa!dGoOCnf(CgxwPy-B^7&=A3>T|cqW3!QI65)WD4xvv{ z&?EVTcdU7LBINZV*C?X=4x{9^xzl`}I&Ke4`CG@KYO4rz)--wuFRl81ZR;j|I3UIw zJd{VsQU_OQ+W%Wx};wM3P^B|mE%HFnO4Zy#BwtIuJUOvent@hmy zk50&u*17rt=C5 z8iFCfnZ5)`fL*o8%}}ux?e{IO2+BwIvmMNs&%vTvqO14bGi8U|680nij2@f7%Cvuf zGx|`77?A$yVPaD>udBy%MiZaMx|&a;*#efedv&!v7JO3WSxE^JwVr`2|9yP#J1v&( z>|@~*_4VSoW|u4N6aMbuiNYnp!_I?K7Pp7&>4Qr!S8=3Fy7ctj}RO?RTfSY%HLzNcC7!+D_3D*i>-_}db7!Bp39 zm2px3m5Y_fVURBpT+B9|V*r8?>NS#HeD$;I!Yc$ugX z&mif2A+lPnmoMXYa`8Vqp_se!0PwO#pIg-=i6n3wBdDJ%r1pR*@tSKOQ2JqVL`=0Y zaga^X>KVx$G|{TTEck?}(W2gh+|m66>0%;o6$HGLDC(YhDP&${)w0#&v!US8sv7>_ zU}lAgemG^2U8NRjebDawehS5|;5Jb&={l9lp+LD$TM3$>D%*2s zbFqPeE(f&{>bejuIPG;TiO+|1aEjOW;&_Ggbe3PFLTu5ayfS4jo~M@0XHa^Y>(O6n z3o+0A=sHf`&Kdr^43k8G48>LG!i~|Ck9KT}Mf3>>S_Uj{LYR{-#p6+t?q#AXL$hcZ z(acwF`g6gi{H7ZyxJyHu%22j@j}0$clfgIFD^}n%1`{EkOHw06LQNR`rg5zU3VVB> zX;lWd{U5aD>faC4x;pz=1?n-+P@ z8uM4_s3KWi`S_Q6R-yon6n=$|UtJ>+nu}RY;7gXeBc6(%f{V=}hk-nERU z@>IF5m@_g^iYbua$k2SFLiY7`!0C-!ho`BInDcEo1GeNyU;<|7H0DQ{51$}kFmm+V z;iIl?k8P-P=Fgl~m7?I$wDEn&=#x{WS2xDo*&ZvkQy_#K?d%+(WXKTF7r+Krz&Afz zsJl(r?K1E|=r!Q+PJ~9G}>t#kU`e!*{LGE`iwGfr`&&HUYzz>ty9J;(J!r9k`Hwy#ev{U>hVd^|7R{usckbI9C^ovJvo~ zNzmT-MxO}(5ch!(TE)%`$0H~1!_ZJG=Yx=p>&aa}UBYhRK9jiOD9j)O81!H*;`O%6 zy}@Ix`fy|R1*aG@^N}g0=Die0mAkH}71+gW4`bz(?ezyE@mE}>E~&MU<9aVN<~f8( zkx=8w`1cSsv5Lr4Jx9B8&4c&~KKbSLG&9OHDN0bER+TOaaB6RHM;0*E)Nr|b>v-9k zPW4VoMM*M7+4B(6QjfuP)s-BA2xP@f0#@7n4!vezDXq56r#I-@919h+M}I3?IJ|isrbJ z;i3F7pRvq3w71j!jyXz4+1s0iESeF_XJFCk=ZfUxG2FxH*+M5q(ewc*a1`SNtk|fe zZYU#G!dm7PBDF;5^~*Bz?2U(JHCl>v8Q1KlZnp!H>VQD1F0unKUg~*nmJ?Hb|l~N$!nO?C^GStCYwe_XqmX{ z5u66XxhIn@c0MZ2bCkzN(`x>D{XCNHBQ7tPlpTaWcLM51e9odB<72ii8Pj&AymKUX zLrDE=Qv6m|(W%p+9-hwPs{3p>-UG_|K)D%lM?~#MBsV_*Y3NhJ_G*hg?XJG`l&xwk9S;qyHF(YND*eU60UCIe2IHBP)Jj(TDQ}GD1QN!`w`UYWhU{EwOiVNGE4+Ii99=U+roUr{j|0K&)||2dDo1?+}l z!Twn~F*{nw9>N3qH3YaWfK>Z{#+=tl@PW`ruBi+`T&!v^Uf5H^LMed{#b+}?EpWsj z={JG&Bk;KiOKqBbHrR*i*+5eaVXE6XXcosb6oo~48lmzP^n+8xw!AM$2_fVX1-j`A zTzAh$lZbTwz$ddD1JOV{kUd{Shx(N9_UvLFlmhd0gjRxIHt(M7)&aqYJ5M<;6Z zE;=zoO5&T&gJ<(Ywl;yv(~fMv-f=W_j7aj!%?b)87PeM zPWua6iWmaFKJSaC1Rl*{addQQLOBkL#}UCdv!kQ9pDX!~2;o4>K8vRkpCZ1q6z9_t zuP;g$-&qqbHQ>{YA;kH3jIyP%bB!!^DVFS&m;Q&p;t&lbNT{l4rC@5#y?oXN53=5U zBjMZ>>`)4s`;#rw4?4dv^YIRfkuO_@-wW7=}VHTyIIt{@6s z?4cg-(NWb?8T;%+k|Pn#mNFz1^yNxH3m!?itC+5lUl5(|=z7!gt5O13DF`fe0&;oI zK(){2qAS>UlwbVqZT|%N>SRARk` zJeK(fsUhfjo(%{O8a>=OiiClx$*OC#8%770zW$w>bb{X2#PS}n^32Q}73m-E@X_Y4 zC#>3uOX%|dHRR8BZ{NJvBDn&)&SYletw%vL%C0ztdIcX1rSuV{?C7_t;Ev2_B}QK* z{D^2$v~v`(cWrUepD0*^R(1YV5;ja(%AX6%^lqrnJ4thqxBgFaJ0@p$K%Kct>%*Yr zsQ2}sWqu1ewxUN!5X9#y#+bjszf<$OVZ-{jM#CzfS}!d1ondlA;&`VQ9~$e&^X=PD zV_Uo~!%f&VP0R19H9lxKrCH10IiiK+TSBllvIgdKXoEi{6?)*Zw@l}P;=M5O5>1$~HuuCX?&3vb|C z{2nFWmQ2+@%-DCN@)yncNWb3}1%pr-)F`@IQ!ugnm`mpNF(dv54^$^V-h%#>bu0NMzy50J!zXB4lE_mn> zm_uo|o_>4j_}gl_7EX7k(?!UGC~%#FQXFQ1eQhyb?s(`-z5~+MZk*b6q-ekkq4;MG z#Pd6wzV=E|ypn`PpTOe5oxxxQw1#L5NT`&9>J>*Z(2ly=i25hhKRMD$Wu?Z=f*a5r zz=g=V^foiLpiJ9R4kR5?)2Lx{Tw#1b7vB)ZiZw`(I$v*#+X-NlJ!G_(Mv==_c@QrJ z6RyZrk>ZJC`vaeEF*|SV(%70Zy|Do;u(uoO5&2bbP$U5r=htC2M9HENtyD0$FH5}6 zN)V6Dm8r+MMayjLAp=k5-bljkk0|($z@kUy0!9=(M&y2igi_FSQD1eNV5PP>+5D`G zQ?$+^MegdB_{7t`yi-}fG8VfU&9P_L`f2Y;@g7g>WY zIf4gK$ftGkLdtF@=krW+=sQHi!tr5;F+UC~go6@eVr}q4hq0tX!jQl|ND1kt1o&3y zTs-AW6rLi=O$lj=f@Op?-qIf-Sx(7U+SRsYDfoO9CpHv{S_D$?3p2|}f3Iu@cr39! z)4u1PYo;D}V0vHCGv*J)G#2}VV>cMOpZ_vGsN|Jr%hqy$F&G1wq-Yt8g`XOjDBL5T z=nEt6_1K%<_yT_lwcz5Nd@(h-VH_NsbYuxq^&3w6ct3{qA#1;aPY7C~$WyU@tFWM5 z+-(^0tVuy!Lk0$j{Pzu#hT#&WPddL$9wmTM=ia=9F)ED*K7UAr8>KgC+ zQyUR+%DvVCfab|E7a@eVHJ}RKl3s3Vq8)6(nug`h8Vu>nM@9`l^?n2xZ^(>VD?C0s zGauy>ZfTArfP_3ge>SKSIe(L)kD)lt8R zzMnd8f?tS=gH^moq+lA-oM0LL5ygH#ijZhEjUBZ~Kig*ysmC`YO^Fms77zPaf-EWS zGtT(-Ya^%$?tjwoYbQA;50?eseS#70?*r&iv)Wnv-hF44)^)mKws8on?@J+4#}L=c z-Qhoq1=V4up`gN-&ETstp`pxuvx!MG_Gj!6|AOgcL@?jEg!MVAMgAE7^>$5vC#xlv zJYpn26D*Z*{=OCH58&iXB{GaThtH-%cjw+>*ad>N6B3c@t_?FkV+8eCkpds%wKC{(cll5l- z2ktlrr8WO4l7GGane0`_UvDLy2MB^b`!W8X*&65Z-S54hs7D8o1>VH?cD8WE5e4U! zSuLN^bLO;>ZxJrZJ;Q=NPxODkppAUtefj05halp|Wz-P)gn3N*B`gI{BK!W;xS;?p z7W{2L_23=3>u}0Vkm7A3*L>f=wu*8s$p2VH8gUhUJwz#hDhdXE-rg-U>lbh)tB|)` z{iz+6{6{fpL>@=mA*Vt9GnC3c;QTY1+gI<^r=bT6=z??4yTBYknW{1S>YG>N4-dtP zact(VRQ3a9+g?sNzg0AbfFS$*#`g~mrvPjcVq;MMVk&7eWSaOp zj%#@nAnV2gc>s7MfqZ9JY4*`T^to?6UZ?@&&o?4{a#`7>h5|%f503;sL#?VQSdQcy zX^gmQ)V%dm)LiStfF&G2gz+yCwx{(fgMD&Qel33u{xJFf%`(D<(HWAXrx3!XWDG(k zH8!mv!4y_$S5EC9r8sIf-84=S{g^9Q29HK8B^?oUy(NtnGNLrs3*hI;mAZpXznSG` zRH*o1ccCZC-Q?LV0vVHXwuf1TPKKaWZ?>mJwVu?SHo2!>Rt7i9?M_W!n+xb?37ci| zi)2>nxv2RZ#Jtwv*SFx4aJCeQ;pNFAq z1^=e9X>l4&;W5bZweR$Nhc+m*h8K4FuJ%9t(b>Dw;W1kv;T>4ZAhgnDzjVz!bUop? ziT}au=dzK)p%ixr*oy8+yK$>P=a@%x0>P=|F)J*op-nAhT4QMo(=H!D?QvZ*4Q6z& zQn@i$q+A03b%_~t?mop2&#TA({RgDJPIXd<&kljFub zrx(lA6P@xBHB`1urq^99aLv%-{*KN}=KV5MIEa(mYi3fi#W0w7ye8wkm#Igc?~>w4 zE%RC!tj#)=iqX#ZY03~R5YifX-Z5`(Kg|KF^o(P3vt*0OWb$hF%`$Rm;Zfm;V2~u= z4Ck9r;v||%_TH@6CMbVxnNKYx7Wnh3#WJXoJOwb2>eFwX=VnfodLqrmpG`KZB9~=h3V?(ixQ* z+S~+9NqzOaU*!(YS25C@LkhM$jCQ@i_#(g1pLDuBu|T)BH*q54dHlH-)NkfmHd8qK zdd;55dv<0wB6Kx@vZKb*jG}i}Hggwuc6R`UH)YfnLbFP!)o2(b2H|rbp{EeU1 z)%Xom(zmU@ab+-8212t<6k2!av>2U6o4Q0r#OPhKKG$>lhf;iJa2(`$_0>P8_V+7f zB9EYquL#5Qm8neI@z)*`@<(z(?~md*g7eF&5E}H-u~1VRoD-Be;<8JL{rvNpV}$z< zhMYT`HFSgfigHlaiTLMlY7(<~+1QV_p0-ulV$6TGwo;VKr7ZF|*Fx3*Lh^s6E*}F% zE3@=xq;}WBj@QmU5&n}}ykmvjjBcN@d;0#i6bWM8(%ts7r9$4bK0}NBLCkf>LP;gK zu3l1y^M2@sE2CpC-K($7Piupv+u}7+x;28;8a$9tFnVD)0??L!rK-e%yjq*+` zmJff$6ju;ZVS+D5wSJtnM>$cn8uGG8Q9e@|o`XBi^0Kc3bd)x_2YnNKrJqQzEDO7^ zO?kMnEg*Ay{<2K?dPLuu_88%zF&i@HG-VWT$$iPG1ZH;-B2r}Gpi)XgZ|AKW_X-mjA>9wVj@z6vJz1mSmn@p3&=BdIc8J z)1%NwkYhJ6f_s)dZzxDvvVhMa4yBY2cZRb&Y%2B?N@=b$^^!^Fx`)9N8r-|a0v!>F z`o_HT-0%Ey2RL_42<(<+^ky2Y7fgJttuU>LG0*9S7?>umuH7GISlGQQD6^?*SOaA& z+SeCQE`>kHuHZz8#@{4u!h5Yex9rt@vK-+pAM2+G z_NFF}#Ku#7u`R=Aepf{Rt?dW70^4L(ya+k z5TNJyp^<5o~b!+OhQ}#Ha~$*n>u$q(Z=gHcgA)fze$hsq^3|E z`FOdfg&5b8mf|oE&Ec>t=ckkUTmSa7m5i4o6KjPsqNH!}i|FobrA5T*s*X~BRN!G<^cR}@eHyD_ zd7V6Dqh*0__Eoy`-aYN?sJdm^uFLv@PS>c;p)I%O?mb$1H#Vx7(lbkX-Kv68M64iA zE0N}8m_yI;baCjr>y;WCDDW~)Wm8w;#*;?YG!kD|LPn+QIYY~@hxBr#YP(o*XJ`|% zR)N8TXyk@S<^yJ!mdG_uO}o4{X1=L0S<^hKUtfv;Uev@&n%2@>!AiI0i*qJomEfz(I z5W`Z4E)rt=8B=+%pzux16ds16wHn$2YvV*y#b395ZRpqjY?#*ELXt1Xus4-C?2h~O zVmLffmpJ*NI%1=ivTdwv1rk~ z8OT;eX(>h721VO3^15olr)+q%xiSD4D~Dv+F!|SQ$}*nD>;(k9!!RiWGN|k5)Onb& zn{XZ+)UX%b)(!I0i=tuo@iz#jRfxbysFFOe zm}v(9S?4jb1j$l%LQa~wC`lVi!ogz9Sn0G?R3|8kPbdn~DNBbSbsJFivdYzF=3uA4 z&*%OHI8hJybF9#U0-P!>F$~I$U^kvB9l zztpm}2>k9IvrjGal{7Q3nPV$$WQ!m%&@Hvb58(6{0Rf%`R$a+7kSuLuE`< z#R5I(Rcr8USxAbj93;bacet86dq^4k8ZGrAEoeRM-v?Ui+EdOUX@-fpzm`1oWWWvj z&Fd418gS1aqZ%8t{~A&;@OBjF(Bx)V&7$c-?kg zo9$yzz;m@P`i|EujlB)i#Q8&-he0-lhb^1Lzh-eJddh~fkY%c4G%SPG;e?swWB7&?9D$dVamtX3obgsf+%WKlvi_Jax2_;M>Cj*b4vg9yShm-y_UaO zY$cm|Te1)hK7-Xg^;?;Y?k0LU1eyFYrn_L-+*Gsy5L$=CFm+(oeyaGqV|n=m%SW+R zN~7^qS~cz+r6wMV!-H)WD92h9SJFhyJSrpRIeJVL12JX;2n9Sxe%r9dD$U!_`u+UEk*rRzqbQp0lUUsBic1L61!`GfSsh~wn7A<+? zfQ%?7a0ek~!Q|-q1Cf#0f4VTPS(0LPE7f8e$3q@-l~V23G8qVw47rDQFRZ#+hBfG0 zG5uST?pi$)&ejNKC(^v6@=^F3n07B!>L5w~ub0|NmP}!p{(UBcPh@gCo<7_^nhy3@ zKUUj3d4VdfWDCbgU|pf+L$(arg3kbClv`hGT< z&DPnqM zxpW_MoH7nHD?=7o308N0c@LKrTUW>~WwC{CA_isXls4E*r40TlTp5f!-#vuM_|Ys6 z#@>3xD6nn8UPNG)Bthb|q0Ga!@$@X7IoRnKMb=l?ELwYm#UPS~>d??5*D_iMmf(k& z;OU2=T)#X&S%o|}6CtIuPowU(3LR$$B9hKx%+Bvg(uN_8Pw53*R{7%SNaJ~R;ZKu1 z(NC_wo?|MIbD{dtrwI-S1ADj=owLVH7ANNNGWH?ENDN8R40IKgTVmG z$Y6*Iu-Kpy)aFrTpmf;?WT|dNRFiG^n4oJ}m_iSn0Ve;s@=TZ!?{>vFhk$3SM9Ck9 zG}D1Lx`(=~e&75P zN%q+>yvK@Xc}|9cXOMBcDJqxEyDjA`mMo#Ppz)eLz>y@YRXR=FA9O0ADJaW_(CQZkX`>%$* zrY!Q)E5651byHk@o6fB*ev^rGF=ztlM*-AV&I)W*Y~%?zSP+gp#cnkeP2SOi-L|>x z?+J1Os3LbM1$XIvNFZ@Ec;cbreG;?JCiChsb2&4MAL-6bC8}*n>Pb4zuTQyX%fgFy z!y(~KUq0Sy>YArkzU#hJc2+R1obUNpIg8;-*mbyYUYJD*$8|77^BYh5dx%!)V+D9q z>|!^fev|#2f}_c)UD2L_2cKwLz`j3```9XKUuQXQ)3-#^z}h;1&xv|)L;jhmFvfx` zX!{^Lnj8;+QEHP1;S_z)WWU8PfBU#|O{iSCIt!Aeh?OxfF^RoDX0EjFeL!d!Q}zlZ z_4f7t+YbYmV3>yNnb1y*mcXY|=~r}Hvor^|n<~@VU;hkjt_Z&i9%S3hqWe?k$@(bs zXE?*>c}C^3s@wmRhTvpn75@R+e&J{t9ccfe+kT92xo@&*o9YWY=&K??qMUqe42<7p zZ9Glb&?oXfEibHws05!=mdv{6&vkku$&~ zaDxXu#5`N(8R*noZLjDHjOJnjr91TAj5$Ps4`c;NJ3lwRfsp|X4 z!Pos$k9nP*-p+5y^*rx;sR7?c5q;+sw*1@>!8H|h4zxduNCGMr=WcYfxrt({!xwMB zld;2J8KfP14eb4W&lA+FuFMR6Dnjk{1M;O=I9SJ=07iH|^3-th2$kzmk`qwPCTYi&XU-uOB!gd<-7$raPS}EM;_rZI4W4s4W|4 z;i@T4w<2cv{ALU!+`qj$r4Odp#6uVf@h1^)fAy1`Y!PU7Iz~bclxt4bd~l(5R^l&v z=fZCP0;6ojEsFpH%T0Q5#m>ie!p|PM`Ie5U6u0{07JUCwlp`ri5brIDReUy_W;N7O z4(Mi#{|y#=7_$TE?wf`LF4kTO4zG6liQS6$CpLB(HYStt$!yt*dpUoCUK3p)%u_JB zg_CIB)!X^*d?j{8-zh%MyQ_zWYT{S^8(JX^ygeK5_5iZWWh4sq&%W2=K$gy)iSn(m zFgg`L-9Pdjy|NJrWYgWCbiR}?vmL7ikU8S#!Gm{aAx4fH&=~s7l`ANtda5s)XC|8Z z4Nh$V@5zY?7F*xCUnV%aX&Oo7Kj1^0;9lU$BZ{-s*~32b+!$1G6$RyNE77>8Q*397 zxmPCbJ-tmYjDh&vgHo4OoUPI(tyhfw+h^fnu5|j6Uo!j5vAEoE5Q+a>$r`0CeJio& z_h=BCBq2!VHYPsPXocG-YFqh3)X@qz&ypP5$~whw@zlW5_Y%8w3&_j&xNde#us86e z%;98y^Ge8u3IQ>R%eD|0l9|#Qrs4hX-`DWddMY}$9dPMEVks<))t~O=){h&s;(%fL z=X9yCe-~LgZ%MIu0F+&`CY?u%vqUdT!Ixd$Yq2G4G)JPc)90gp&Z_lkL7VGDDwnKv z$`Z>knaIA*c={~28Cf@2mJ#J@%|#_0mqIC-4yahA>ab-2a+Hk1W*vT! zpxA?C6mB?OWLx(MyJp-+nUAG@8cjW22OkHZJk9I9*DXbdCZ zOzaT0HY6!q%ziNCX8Z2+wViN9t=zFcS7}hF{zUo3!L^<6bpWEG;A7C?na0Yqr6F*o zpA~LV-qDwNvf20ezu)-3^i`N7FwhRR=7hx1!MV&eCwa$H7V7SN-IuP^&Dwb(VG-Bx zxz$3=u>wp|FOG)xAbs+tCb0 zax9IBbK37M8A^1Q(FpTUv08Eq!{J#=iwNcKI}D~%r9=>u6+B@duZPjyxFVzu`dcyS zSTV&`8n7JbCc@E~Eud7Cps{&6Ac_~_RB20Y*^Es3C$a8{F6gSp?&&B6NX$sxR zd(W0R!SlBAwO;|kA=|9qFY0VgXAu?6U2=4E;fNYJgzTG4)eK|H6FN~yN=m*zH5E7s zJ0|nLdf|+eQmUXtz9; zok%FMNybr91^j+Ba zP5PWm^BOkS6VLyS)O&;lhxBcXUam9F~UW>Y_0hAK-l`i>{h@G|>iTovCz_k3Hz}I9X z--in>wYO10$AkaTM4Sxw?ZU>>Id3HL>v7zs2*@!VCy5w1zmq3Jx^7XBG2;NgmNpKg zzuovukG;xsI%4rBRm4p;urMZZ%Rk=0VUsl; z1mg8_N+d2+A!<->Y)KFy^zB`0OoBa=n|sLq2A9L=70j$LMe`A1Qpj-;Q#{uYENp`?d?*EbX_akq^?OgZdlRjyz%iPUb0Bgdur2& za)x3X(&nEUB4ZvdT}XI`!qi_E(uRK!=Tk|6MG!IAfJ`1_3{rWb-7t8TCb%YA=odiW z^us0{g7v*yKr0YtSWZ($Eg<9s(@^or%qok)bNeMsIvfP#_RBpHa{vJToM>6EUq!yHpy*U%aEnB?J zD5Uaxd#^HFCo(^YTL8#S392nubuFxqQ*Q(|ETxTRN=ERk{xBVPxdv% z!sk-_Ix23!zx>Z(`0S>RDyb)5486nWi@tSuZ(*P=gDy8p27jn)PscmWRxAXs$Jd{g zd08)BybnW>*WOdxi>%ya>Kv4B+CKDx?O@oB&tDWp!wE8sD@*=OU^Ry|;yu}w=?Gy# zNTu45kN2aM)o-0$FX7+(lOL__NOtwSeex}+{?Xc@UsvBJ_;KjuqxGLnT?5BYjw8N4 z`tUnLFdYWAy@mc(S&*WX2A9<4zyK>Dv)Av(<6n%}@Q$6l^`TaC$7^#XW%%1gkmopIwe<2>5l=GisLFv`1zTdg2>>-24QJ?y^e`H$142KE| z?~m)HpG-7Rp`8Z4HFBw0Iun+$9J^gLusmrau zi(;Q%gx!xtl}Y`x-r)i@oLr%@OsGiwk1rdHBE;64ffN&u|LjQpce!{sd0PYb@9=ix zXRaHMe+WhWrx+E^^OzlK_;1nfKXM>Y7&xzk52t$^Rt9`I`j|4*j(Q)Duz8%gi0@(n zww@S#j3?Ao5l+wW;DnGcr!e+(mMldoX5H&VkR3ZKP;r7FK0(>KK~!V~O2Z=L^6V56 zqD6Iy?WI8V8X&rci1i@mEaKJkq7f)6bygrdl4!9XQ&~k|+lakhqB-uzuJcE8cgM=_ z6WEb)0f-689&(_Iu%UK0(cQ-GziMCztD#Xh3p*;}o=05JM6AR${MA#)1IwTtI+e001Da2L1x11F!(%uiXb)T3QGMLP<#pgTV|xKJYwF zp`oE6BO@axC)Zr?GFc0fd1VWS!=X^93JMCh!$kSl4mYQ87N0^< z0T|4jyV_e9Dk>^!YHGefMQksQ#a$Gp&Zv@Uj_q?&d}hiStH{})A?U4Wzw=n7=C)$H z&5e5~tv**eDHi%5F?6@1Y>nBCxSJw128tvH-U>~bhZ@-SyILdejDBLwPvlq&Rp>N0 zRST_zToh3Crt%eLEINFY7*^pLeQFtIMn^%eM5WuCkHl+@7&N%({X~$ZSoOiXe64y2 zTcqP2Q6^Rlj>`5pRoNIfG2wW?z{> zJ*r`7G;Sz{5inZ^Ye^r{?u2_>0n&L!k|}7db{qAyqRH53*j459+v8(jflQh2aSrLm zPI9}TaH#oxH!_UsaH#)v%TyW# zO)^8OYql}_8wo1ui%-pgM(se=DuMndvp`T*^%v@3npxZk3C=k@PYwIu`GE`o{U1jr z`r46+1jheAOw9ixGS}0E;#+mhyoK%}PH)K{GaD#BX2UZm!`z8vtm8mLvM~qqb9u`O zxN3>Inuy&sk+^LrYo?>2tD>(ZZ>}Y6ttDoI6|%wb-@e6Xp~_>f%wwj6w3Oqvl;Jdy zSupv0-G`RixMyBv_>-SVbh+ktlW!F%}jiJuN*PMhSy}K@bp#5(;Lg zf~wI|m@`t?F;LkruO2Q9R z_ zV?5B&9$E=b1}XMtDRwsLIIGNirrBP4Pw#6z4bXo2P(LHgG~AyYeLa@+Y^;vnTP*rP;S-Id3}7*L9%*Kd3}(AF;K}8c+(oFXbYBefXLqgDLDeva6oluAm$zz>juKQ zfi*mUn%+Q7KY+GBKrawr7y>YU1TcLJG>-;a#saMqz}87Xn^d4(CeR@daJLwUD}}f` zqxC2g3aB-W8upBt3r}8&&-j>{IhT_+onJUzUh$@~VY#+*yME}XZTzTb@@wzx_m_*m zM%FGSwlAl4FJ}+_%pd&xcyzpdw0U^)?#s!_{`c*jAII181J(cS$Z!_{qqUx}NI6fL z>b91TC9}$U{l7UfZB>)G+yWo{x5+dKOyYtw3BdO1x6jbglwA59HFFiZS)xZv<3{v~ z-aaj5H>>bTO!T&{!gvhwNtO5{fyd((mS+lqXWOLPxp1*&u}KDu^IP=#tEmdIb5_j=?4f2YTLxELdFty{ERtO z&9-`(m_$%lt`lf%3X_<#cFNti+|lv0C)#&QFouDFe@JN9!6?rZ1mm^D zSTG5^@n@TYDCEOuNogP=Q2X)l z6O6XM!?)XLR$K%LLj_%D1{1+f{y?%&>Cum|K_5K#ibDq%KCwmo4vUM6C;*O=nb=@J znOs4DVFunx81{*v4G)pRMBfv{%r|>RAcsmMZj&blAP>@niqJbOHGjGZna4LNKG$Da z`W5V_-Szo$gUxlR>}ym1H+`~vonF&Yf+u$nhMJD%=i6JCLnp&f=Kl1(js~i|uA4mJOxMl(S z^s9RI#;M!0t%falZZqW^HnMwvg?z4TgO0iB6M z20^kCdHTU2`&ZnRJ?ktel~Ty ztZ_f7s!{hwgV>D-xdx@?hv_^XjS%w)I--Qfzh9s8+?#sz+_MjFE<1UkO7^#%aJ`RC z$Ar!f0v_W*5#LKBFAqBkqdpy}?Q!-+a(m!ASi5(7Ted=#B6YYP&YEenxdo-xQH~i$ zWl=Wy`2G8}T;K*bnvp;HT~|%!~Jmb ztq8_X{-;x4Ee2=g8pu0J0Wk?0Si}ynk*gdqa{yBotQnxRJ0bP}bM}T#s!>a%8xR5> zrXxIz$UKP=R^8M#3_&o9R=S+Y7IB>nz1+HK6gEAXOLGkifG|kftMJkUY8!t6p)een zg>^z)jz~kT{5{cB)nKq=bU=bYp#6tT1b23i5&T<|SxL#PcahpjLujNuJx$Z;q8x{^ zMA)>7#$a11)G}=78Y}>E|HMT%PoT+U&-pNp=|s)QO=`DNFkAV=gtl^kl*QrvTvK-% zGpZB-pQsd+Ps}h1( ze~?5>DH%&3sUX~@P&8~a-J>*`Ui#f=uH{C?Y|3*6Gb;eiRc%u6{t`yPmd+&Zluv%h zK*T5?(GSxE$H+#r=CDle%mJ_W3c(V4iBNIZ&62Y#RSf)hA_6jihw>vZFs$h-ThaSs zUBVOB=VGZGbbpi~o_Of;vXQAjouc{Yj}gRNOvi-&sJPLnt28ET>?yL70%e_BlI!S~ z89lAyC=gQnsy7ecXTXGtl5Sfb55Hy^m24^>ss>DM(Yhum4os#V#e5@U)c+G14 z_jT+LE5VfwatTxUXwCc1Q0jV{k&jln=Toli2d0MilH%klfpEFTJvA*Hn0Nx=6;~p` z@a&cnuA5Xp#5MMm{TG-wKrCGzBuaBYa*)lh*7QgZEkz|Q_{8=N5UHUp=S9O*!0-0b zF&__|dfTU*W>(7L%i_!W23^lLDQ_oSc{7)w?dgg(L`4B_9WM?bLJ30@*njng#f!l1 zd;o;=93;kRknX1ayJvQ~gukzP1RjC(9DD8OPj-6aAGOe}<@bJ3l%>y>vu`6g_@ppx zVhF~KDMxkXU1_rycKN-`oey3J`JSz;{8KOM0+5|B{7r)9m%pKM)Mcze9LA2Dw*Y4D zNn+k%oG5k9hFLqA+4#dYBBn#E%HP;$RmKn*cY>k9GZLZZExjxQEC!;N3q8i^Acnop z@p@TO>W)Ht^yr?2;)wlv$HwAIZhER#qX3^DD)vGribJN~j-%Ss@AfcXLlD@FDG6_{k}M>sP!Z;VScy?Yw|yz1GUn7&_q zYw3f(3Lk!TBhxb9z6AVkrWqxFmfjTbwD8dNqc+={oG8%KueN|kSoU|Csbdfwu3ae> zz!dV!aQ^LSua?T5K%d_rFRQAyr-TiMpuwc#+pEsD5Abgzwdn`c{hQe9ZDt!}gL)}X znn9I*9{AK5zi8!I6Z^~goTi_Tr5ca^d-uDfWKcm}4S8Tz*tY7s4U-ICH+1Bu;`zQ3Q{9yoALW=kQG_4WRpvXmOA zdbpmgd{S!5{p30oc&FOt)3|nbHUxwcmHv27Ij+!AWM(Dx(JBRJTHC8z#`eM|XB3XF zlo;DKVyHW|c7$&!PQEunEEiRNMy2(w(hfgUs=J_4cx#`Y|C1m*X5P<>_p$@8gJzx%>O~{csm=Z-$7JT%ShpjfusG?FEbJE|3HgzKNpQLBpAGk*33v z$-jkp&<}Y{!|%p>axX%(Od&g6Q8m?JhAl)xe7NC8m{<)_ye7;D@c4U3^pCxJPP;VF zp=hzq=szqmjlb12Z3KsN0wbzr9|*e7b-Iuz;I*nF#D_regxi*^gl!~^T}|vKWMt3} zsnhS=T)GdqtD*KRQES>n0UKiRE20DpDzP6IpcL;1!||SwxB5qiCj=|Q+`gUAZ~|$u zN(mQT=4)X0tM8f0{{_qb0LsRW2by#%6WxL=Y+^%Wb!GuHw%xH?NW>PJ=AA##0u*=a zxv2p5qKis4^iK<{fef%xU7e?0B}5<0#(&wML3^aYY*YRtcaG@t zko}RqyQL6o{bV8UzPWC!l@0aM?2}JR8Cw9Fk2oM}x<`xbjXhZKrnZI1QquM-BEK#K zb#ayYJpuC5ChfZi;@Q%FPiKj>a~y=Sl@f{CArx@ zcY`)O`s-QYVi?Gd80=XZzMM-NUUl294C7xmL6Jqr4#A+xes`A{Ja?6Q zpWMJwz9^EvY+DX)EoREd#_Q%2VYI9YKMTOsZQGJkii&YE zg2Es8&AN)U?h3o5id&SGXE!TX{cBfC;Y)}ltN6@c{LoT%s2r>cqz_TY=V~C*Nylf5!0srF-O z?V>5XBOQpYs;pswnjxX(e=1wfQ=e1T(|SSV!ywxDDkiTox;IrQisxtm#NMu+-VV}p zP~ZQt{$*0Ur*gwV3(aAAamb&B_eqF=y6hnKwh-mU??}Xt*{e3mzP3g7cAg5A6H?>i z?Wfi^o1&ll2&97~0Pq!5rH0qD{eq?z5kxCnB{u0T9V!0Hg7po{u`2?I2dA^(>FL**Ma9-cWx1pSWzi@Jd6t zavOBBOPHhW-9ekU3M~lOjuLB6vX^*tyIq09*ECd85)_-E>pZ6e$B1=c4LY6_G;Npy zvh8XOAJu-Zt6f68_>kWF4n<{E*j%q0uWOpiWY=k9*XJ_X*}Vepy=-x>?+dksKA5a; zffhe*X$?;93NLJn_}WEgRt=r)dPGGly3z(k(TZO6buT@V7+B<=)s{350PXa+>^q0v z{K{MC44h4euipM_wAGe&@Zf zFJ7oXUg&rF)c4&S0;`_1^s11Um7!MtBo^_0Z+zZk)BcBjloOBI-q``ZBidMa+6aAZ zd=cFcLiO_Ha4-lTzW69{DdsVGgzR?t8)hjcfB4F5$Lhx5Nqt93K?M}|?AK(+S@O$2 zeJ?+t;4>&Hpj%Wmc|3b~vTE(nUFCXv<(BWTvO9$>G}rB!Ltutguwzpr0uO9#H2TQljQjWwq@U)T1@jO>t;Sk7FDaqMN zfGLGq4+EKSaFafG!QYWQI){J)03pXvxs7d<;M8^l-AM0sm38nWdGD_ zj_!rk;dc(zc+Ls_lX}l?zVM~=8MUMNRltIV9l)smwMHY{r10g1{oDEU<+tf?_j8-|Hx^8b$JEiYz24)u zaFdiqX?GpU`WoKb|C^n>SjKU^8a3#8_^6+os*U@}blArgqWHTRPTClQ?w_Wsp^>Wu z9-I01LZ3A5DCkI~u->4((i3@_!tY!mz=VP)7S9~?&!ns^VL6sp&889Vg9DWU;lwnY_Eac9=U=VPbO`&XWI>O+%F|2}$)L%PnF$HhMc7R5Is z%GstVM+;VjsHR~L1_V}z1J!89d{-ydHVHt39}7ZW?^PGxPb;vjrHTtEo$~p0Vwh3z z#q_1D>G@AbgJ1h*vhS?ta=o}LT$sbZeY-*Z0ufcH^Qr0Zjg3zWMPcXV^e5QgPXNgc zknx5$C&c9qgyO1*s^mFM)Can&*6E@)u?9rUWZV0~O^Lou&TpGOgDjyaa(@~VDfvBM zj7$l5UJtZ({6O~VrS;N84UqYS`U7IyL}ht>dI^eL-tk>GTHV$gSbjT8J#9*DLkFD1{~eD!wj_hIG|`dbtX&{#R!jRcAgk=|)Xb0nDLMkk;ajm+aYGQ=jk9Y;qUA zA{h;kkv7MS2KxOL1C3~*=tJMA!$)Q0ZyZ%0tRMPw8%VsD2wq>L_7tdZlj88-!%OZ* z53a?kFN0f`l8hG;eV0|g?dM+~8s4COjsDV@M^+gQF+}D48i1S{WwrkW|5@Lucqq&~097S$H8YcrVq z8H9rN!$|T}C(U>IXI~$)(w_Q%CwHRdcznine|2>5Y+Mo%arYG8%$R5j6G}UclY%9@ zJbhC_?)P(dc1CsH(P-aN(8PA>Rsc}tS?}(hg(BLY-|YZJ_rIx@^i~(G7Y=;;y8i8; zi_8}V4d@{f_0oPBXT1pjg&sPtocX2Q5{IfCa~Ese{pmk{#5_(8$T1r zI_Ge3>~qXxAA9QzdyAxuju|2&MOJ6ov&wJFa`}-GO z=YHJp`&{>RU(e^TqIZFopU(W{6?*-*k5jmKUUOx?`0EdMz>nB}FE0E{dh>I<=BKpW z0bA#Q;l`H{bFdl1NvS=^*LklW!()@3uXSG;Jtz2#wPzW#T>al(iR^FlfG5uhLIB<9 z<2~U|s!dZCZ%K9sxn40i|1@)^M8&aGi5LWdT~c-`7KD8xhafH;N~+%Y3bsdJ$@ys0 z!`4mC3f7q`G9>Hl;$nphTXRF;9Gko&`QDxJp)OYrxl}!%OFchw)BBcp+o>0`t6aMF z*7KVu;kSG`p!`(mpXX8cd&5?*G}_&!uJoP#{CceF=$C*8Y5zD-8J}IsaE6dPmm~8v zXuLr7kkLJy2bNT(0UzdaWNIvvEmAn+jFYolrU_f6YQf{q=tYX(L!J>Sa970h8^`XI zn;RRwzTf?ihjWi`=k-9FY+u;DD=a#Xn3Y@D_8QqR`WD_}SSe?^0A0lQ^%p}asnjC* zfN-rl`{L!#c?-ABmoz_-HKQtFZ!jn48%`}8#Hq8IYp+bI-@21)CwF@;Xin>nltrFa zKc>EeB%m{jCkq*GbdcePMyE<$P*`hyQJ0Nv{U_fh6no|z^*N$%<<2_F@29K*5&O$e;+Z<`G|Wr1Ht?{K2<`E( zlh4@Kc6I&`Qexw1@zq+)_{jX&yfazLQ0l}8yD}UyAk-&!;cwgoCdI<_?z^Uoo07hl zqf{hAifLW@A zc2scTqioUuzt>#%Vw%&i{hJKqfb;Jg`(6u}4ke1F>ZmC_n>P8LuRjeC7qT_;G6(1D zJitBorbT)lG4?($&^~c0=*Z66X7y0-W&b?MI!l$s;&34iz*n+)NZI!Y7da})Vfti! z*^kDGOu&=oysjfbzMO5&puS&oKx?Gfxk;NucV5NPIk~>-b1ws0o0|qAZ{B`gT;ghS zcSFS0am~8K2KNlbw&dxY?z-^3_^qeGwEdERjy7goGQ7t0`-Gfw*mJG7_?ojAUwDv+ zr2lzk>~S2m@hQI-hZ59Wee8-`Ls@yoUEZ0i-?6F+k?lqeCF%B{hfjOoiEqVx6-;#V z_AxEK2`#hgp|(UnGD}=de1HGv>eqK6qAm}#8&RJ9-VG;arfu(ak#P05tcmO4DZ&PG z*(p0gSK^v5+23E^`vRhj`MfPKJsp2Eq)=@fA`@F2@s;wtV;HA=r*u%cdPGzfCwtE1 z@utap(<^PNE_;%zvz(;G?gftzhi(P?dmb=*mW6V)ey}h*)A4ZO-?I#PNFbk$54PQ( zBzk2|qLKc>FwGz233x`{tEtGg=H3S9;E>;K&)nY*tVK_R^So}*El{+{kGb{RH(pM~ z#8=1_`_cD}Ze|?)=a3F865;)?CHCQ$?GQdcQf(4-4*Z|4230R*@y~UrJmedN_mDd! z9c`jo`-|6)R5hvon_0_$9hxXl0Gy4 z{?5<)R-4t0B*7ExM-{{aM`Z342ro?q@Z`n`Vyws*n+=bH^bn;DNMVjkYT@s~IKf~+ zF!TshUX00U%v6s;!hSt_!%2;A)6=`jYf23hrsgmVMFL%-9UVTnR+Q$Ay6-a@*d47ClWGMdQ!8HYuRYBv-PE)SAcV&Pg+OhukR zj+Dg~5&1`H9%BXT(+|-R9K-NvRMmMzPN*M|gQ~G@Us^M3-HzVdP}XGzg0G!BT_`@3 zy^)X4@SGb(0eY(K0~VdH*>>j|*|@JnI9sh-!K zLegWfMuzx(m$Vm*p;`xPLC~i@?^xgJd!0qv8s@nGlrIgHhM8fWfSDN>w$*+$dm}z5 zL!tIMUsP8$VyVG&akDo6P}-tvkjAU)ry&=#Oox$|Iv{hW8~Bb;KgL|u6XUGiVf612 znz4NYej6g+Za#y?7iY*Ue$0F-^4}nY65*5mc%k@OMJzL9mz{xMsWV8#fn_1Ty>m8+ z4^FnkNc7{ww0+oF&B>L)dHu$Z`K_hEax%Y7#`CAbywL))w948e0|j1rs-+rqkz042 zAOE9{a2T6eb&pNu!wX02o#Jxi;+chB$uI}XlfDkza{#pO29-b0J8|VmpOW!ivhCR$ zM?Ra|E9oFPE6q4%{mYX~z1mzKrrbtYrrvJdy&@kb*0np!Zlwc}Qc0HVPz}>7k%W%z z23(Q-6DfoJMW*c8GYx&Cl z#jB^~VI<`C#0S^gr2a3(c77enMRM1q?w&LKenad*Z019a^JN|oMUa$-l+^n9JaqVr zA5uJKyF+hN2-b-jU$YtWG=%eyhVa1-Xt{C9v?iYCiicse4`?SaMg_k%_u}(+WH6d7 z-UnxwKvZPb!WN?plIehKwQVJ((m#cDiTp9OkhIYvSBG5lpf4#pLwwGZk&ojrzN0N5 zF(cummhP8tiKlxPcw>@Q-dQEWmt#x&!>nKE#gSY_2au|xOoe@Fs09ur)|@ozt5(lv z6=GVa`ZGjsfc351_#Olq`%dJfwg!NAX$EX1-v{q=n&IaJLro_3rb9>xDj}mP1*co# zbVN{d_eS3PaxKZnd|#HP?pY97pBEKZ&lWjjeICfBEI$#By-kVzY_4r`bk#NSXlww@h7ND1`za?J6{oZKXM)iQE~Oi^)yg`r{Jtpk2Pey_fUbzZxP;A&Cr9E z95;KMjEps@Bw!SRz>TAr@tA8?mvhSvoD`tRKL=GtkjA<$fwv_YQC-~)NcFlIYX zn%|48Jku_g1F@a}?+-I9&=9F%@X$An!%{TlF7@v# zP=z8*9GCsyvq9i=$FY%Yc9Mvf)=CruaUl|GwoQOhBd+ zE;v+9FUJ-eFFzZA4Qh$?7}T3vZJZ&ZONS&i+vy`jnZH@?`$VkL*kJ=3nH$)TVgPX1?CgxZjnr>Nr)|)DT)UoScm>ecZ+Qu8k`?gzH$eo zgfF>1;_rwL?64JN(WO~5lQ}CAhVJOx2_8^sbRzDei(V=c?Vjl$uq0=H(NNU{Z3m)b zHS4zd1EXSfR{>^M-q5Xs9x7)lE0xgh_BRW}H|B0I#`LoP9N47;@>78+YC=Qu(e$iswU^`u1IZ^-$;Wd>7%T^{ zZ#M3u@+nlN7dxvKSngZc#mN5S2(zUsctMVSK}9T}DL1a{+R2dr9c(yHN6+p7Tu?!FRLOjxqBRCl@n zF@ZWv^;%Cb@~1WvTrtlcr03$Y4X~cEOnto0h$qw19r8)@kVQY(j8DkiUWaTi_XGoR znqwYDLq%epCrYPvQ;e9q55s!gOt=HwGY8dQ(@)O;?a?mjh>VkKBPsQ)D@m}M&Lsq| zfvfH=t<{bZoiJ=|4-R7m{%4kolImD_Wbw_oYyXk-O`v;esLgzbBXjT>)2X&$ z@XSq@CFYR&{~))I(GW5lY}U^(pJ1>yz+`)-oe6aG6jS7Uuk!)ZHFg>apiL}16lZg4 zRGzjNce^P+egb;y{AAnh)HD?!1U>Z<=IEy`5DL0Yp40zKwi{$|wP)k|Gh*HDPF2s6 z1Rvp&7;z#90-w{-Sm?T@tE;sWwE}?M?qY?R`pHdLBI@rkbM=m_##2L+c_+vKZAwCFXQHf6*~yw7rlQLU&^Y?xw149*5+A%2BwIif82GnT=ncal>t|t>Xv@7 zuHcan?Q}N!Mbp`r_80q)2{h)L*Ks8T@inlWNe25o7Z5N^o|`A(ndW$gWi8eQkA2L7 z{7ja!p+d;+k29dOgD7C|gu{#yUyc@4bId_y&5fg!DS-e73Qc;jfR%xLI>$T143|qn zK{cVEGRtG-mh_5@8U4%0u0$7&$vy}Zv(jD@QDP}v`nAjvN*l6Jck0%6m2!4EYq-#y zvAX16>M&5(9qLh%%CyBCvLZnGCYd&DhSq*R5%G#t%i!{VL`hhea7b`fzD+pOnLtB@ zKZO@NhZ=MoZ*!)z116sye)#WINI%&Ukx`4v7=iKwKGMpmuuIV^I4Yelf2Az+m}0EB zalhZ?nH81TBC)q-tAlM=A9@T@Jau~!@WJ!?kyXTJ>(toQGi9rM2yh8Gr(f>zC{`*W0AO6D6c zU6Z{B(Vp_czpNkYl(t?-2z?0)dutRX=+!HzajT1b&5EwfQ& z>k9XwkPHx~fS~-qz|JD5CheKpX}F@#ib0MwY9UCiMN|Vr`HwZq=g5XD2Vbz5ia*OX za1A#0-VC+P?;I*E`J>@vQfc0PbnhlOK!ahv6%z6cY}dk#^@6-S0--ssZH7XmBbnsb zjecdCZq(gl(CbnU0t;R`U)>1ga8??F`T;#3e6(>OnSNmOeuvxvEhO?pb=w;S3SA}r zjZ(i$m0GROotc%=N4{2$)o3mCrBIi85pW@<6SCl9alGLju`kI#%=Sa+ra%``v**`M z(*wE?o^ebQazB+hPA)JzAYD*?t@Y`iLzkgK!y)Ibdv+aQlsoX83hnMH{bb%rmDUiM z_V@4EYjPZCwT~~H*u0hqTKmpN)t2kC^XrWA6F(~7X!L_LI@}>?Fa^Xw)ebB z+RCl+o28FJ%s^_D^vA1`>J&!%ws*10RA7KV0c&z5Ezi*V!}z&v5G!AV_{9AiNEpC< z9k4ZSX(!Sm;911F7LxPXm$}l|AQtVRfVy=j($K7fA(Rvtv0}Y?`1W(ERfT-f2T)T_6t7Q8aCgh3w1EK zEqdl0^Km}|Ke3sfCMUF`G;jOfsUMra*StQjjb}6PNgGHE5MFu2J2|pCHS^wi{lUxR z)7>ARES!AIrfZ^U8E2mhAAs&YroYu5sBh?r)pS(rr&BsXYAtqE4g*(fVc3ZsSjIK| zRgpX%MV(N$}gG$=Q-MHN94lP7c0WfCVUouAM(YxyqwxU`ML8MTOh&>kp=J!M%^y{#gO{R#Zs zVqEABDzcAPK6<)ps7+!I4nD`PTS)ww{^j;Wyq3;H;FtJu;l1D!Ui;Rjq*}1>5&(|@ zf3>b+{w9SeI@rWAH^;D8XzXBBL;AoOvei>S471RWDW+;Gild3!-|}yb-Z9<(yWo() zY56Eue%)(=Ni5!Xh&hZf*>irek3axbi*xi{I#&<#YgE#Ik7;Rtr7e()wl`1LN#BSW zTt{`UqyFf>avFM7Qhjkq!T$m=zzsSg7jbDvH}J%9y7iB8iM_{*Y~d{`9>e|2xN)Zx z5>Ci<5`4*zxfVBXy&K_)NnVTa*lff)yK9J>8dX1nloKf)-E9Zgv0u|A41f0TRkMT9(tO}Ec!h?or^>bk;$k8VyicktlQ!~A;)bmS zf*utsJ1uU%cRTqc(@KNA9q!(6=(4VV7`Cj@*?-Xe`z2-T8Bs+Nb&K$t3^W`M#!@4ac4vc$tJmF_pqBY` zcG)5HIY80))VL)XfU`eA>fW_B)2*s5O?a-{o~ZNA9@0 z4O=20oc7#XF`q!sjx6{-#HUqF`fjIwurj49`=2+-UJku-Ugb)}jk_vU z(F4E2;#c0)@yefNb^_7ob_27q8N0+xNeY$5do5*}_((QYX?Vh}z=95I$j7bAH~xK0 z#LyxdXqn>1z3zf;GdMmk2H7$j#hlfAmv7MSb={s%KBN=dB$vEPyg$bdBMfZf8k61Hgf0NE?$D_j-tH00+*#uMg6cldDs)RS{*Hg1B znKRXE&|Hble((R^PNe(HOYnlJF{`VZy7grE0}-=zKdXUwLZ_^IQ3rZg~9GGu{h#}d3y zN8_PnBgd2T^aI?9Xr~)b8{~a+ZKaN77ed9MT>y2@X(h3`DQJhBzWyQwETA6F>=56P z{+8M*A+urD|IHo^B80<7i%C&%$Q{D| z99U!~MW9{kE$1u$pW6-ojb$y3cN$kZRz0cze%*6Qtfc?>?+^ftV*#&3z|U8XJlsa{ zSnSpzGTGn}OybRnGOWk>%845Oz~TZ59huh;QMGs>KNmq1xNcr2?(Lo*tVBM0GjGly zXiMmKt9@yi!Uo?dr)(0c0b{eJ8)*Cd z)b+s3p8Gpz-BOl55`~#_gQwG`^xThM`{OtN;LMTM=+g{o%k4GgfAet{{wZSQ_F5iU ze)}4eYO)}^OKH~W$bzS`$Pn)9ibQb;f+-)L$?bOVl9fmdrae;;^N!C2L1M;XiecRZ zv-$Hh$h9DBs~2 zP=kizENIntIKjS zQxLsupQGx~lJT@aQy_ecB%$3wl2|M*Q#l)I_&`@UE}tRO#UcSuV=%v?v!x`MXc=*d`ov5Nj>I zR=zP`sB!U#*n3lrC0p^gH6QsKtTV?Do^CX6`h?b= z5Ptxd+HgOnT}sSwh#Lz(2HgGBUEFzzrg;r3CqD0VtUgr=O`^f@@Lj&RY=f*U7_zeev!ID!Z zGH*C6+X7KPk`_Bx!*pa7?@()f8})1A86AWwm$Xs0iauqV+f`aLxA5M!g7*+x&fw-b z=Qp6ELRZZ6rAIY(j7Hal&fIQk@ccCU7??MvF;Jz*sr zkk6unrn|d_5W$ksBDW}dXm4cpfubB=Ai~O7W;l;aD4%`i@L%<-;L78B7c{3bOnvS^ z$L$+$`ui6|r-Eg);k?uSoPx_K_0q5AGL5=CXaeC>EjvMAK$@{aU>;6O9zjHQ$!aND z$3(h^gG8^eH6IcTr>4eUmljw@ZyisuC%!y~YMlG5%Xl@t?z$)ayX5q~I!SqFmZLK$ z0C;ov+Pd+e4tW2Q6cnWuQvTfXhO?@Q&T(N?~awy6g z#yt@MQqZiWNYdq!3OCy>%cRO}MbL5fB;6JFNil$-*N7pP9?-KgT~KSxS&%Va@iW?R zHwqcq4kdpMq|Q|n_>|DRD*^M8S49CQ?)VqPSU%CiR-p(q{a=K#uLO9AqyZLKp#?M! z^(c#5?I!v@pRj?0UWgT6ZHl_KoN?mi7*OVxf0Z)mUgI@oFS=wvcJ!>ecgn88R z3CJ7dE@de~zS8oE2)Y7+c7Pv@6`+YC20}m3MEvpP;3R)ekB?iY^*qW4dpR_aYrMHq zAdeOw9?+#bqF6ykNWjWE|1~cMjrnfD>av4DKkNvenJI8qrfIU0O)C2C{0cP&A5@^ts16ehy&v?gFanU z;J<#|&}YQ3gZ(Lb#LyXR;6>n1U`hOS=3S}jxJ=bqV`)kG!UKTf)XT9pLw+(x5&3Qu z6i_r;^1H<`_TebK-(*H*kP5@K;@P)ll2O_rB$;o zMT;8c<4wwER-XGL04y)j&^QrZgK4Xeb&_}vLLLRVMtEAi@ec5fD5oT@AOn)CrAZ7A z-F*y{%_l-bMk3CFd90O`*(T+~6=QH{;AOz>Gk% zX^79Svqx*amo^TIj6b*Vxb*$H&QqxSZx;SHz=IRk%{}-I@$_;C{El&2asYaHzrB2f z-&>fD*5)2VlYDk~e0DN@){myODoWpIOiWiz+8Os>6ZXAi152U~?aRWFSR(|v=C3&l zXcD*mUmF~K`yD15LX)YiYAgjpL%=4ri$)>Tki!a-_z{)#MLh^uXCGw5q`+*qVDu)# zkOtl^_I3n#CIMqeU_kR}5}fTCSSet4g&=HDU$hVw?|RX1cOvc`RG3XzK!kq#m2o2f zNw88`A?2c;1JckjRI2jW-GXZpSKf?i(qEmmPWyV~#*)1TD-x@4AjNJf^OanI`1EIy>wj%&u6izvS zrDxB`^%&8c1L>e5xsb6>ag0x^D{9{1wwE@yX9669lnlLC=-Q#3RqGrPEJ9N`rZpT+ zg8R!HDLAmnpTrgX9t)6Ji_&u`#0&LBya`S6ExuHBM6T)A-KDJLNvTj#lINOe=0ozpbEW49(GcNX~)tLr+%T0i+PuWJvN$G)d-=1)LS?SWM1MKF@h!LhI&9QOZf{9bXM<@c9DGJPaL|>MQ3QY2UcVKxk zxz{(PGca{kI!)-)xvp!sC!=OE+qdqBZG=;u%TCi_xgW*zhh=Bw9X~zcVUuKrv1pQf zsf2tbuqK-(3E-1-W;tH<-c1KTZ@S6i_PtwwwBWW#>w6}+~aU<$Gr|P{& z^!aQ&0GdWUTC@HmKZI@cF=Wly$x}}^_zZx^MtuMpj z1kXUh=j)qF6Q{8+WmST#-v6qTSMfWY*nVr%@x!H^@lyKEmUjpAi%0U#ty;~`8ywBg zbnI-OoOAsVSJ?&Pb@XA@E=_h?9F3PzI!xH@LPa8V1{|AsSuCA>y7tDfmZpx@Gzf7a zdTH^KUS&{*>xe#NOg~oKA^i(~WQ+Pgrf&X_WUBp9gybK7#hUey^H$e}i(ovx@?aRFZFgrJV|EnZsPx4#<9xI^- z)Y3wuSiB5;Eww{YQTUzxaYfIY$?mg#xj^)-F`g}$yff99@3vq!O2|otpWUIewJWR> zqh+CkAm7$vgT8+w)i*_>;5LGWouYd;TlSf{s1eKG==0|YNEwG_?`NE1oPY5`2Kq%d z`(=y1&aMAAI;hUhqDXm}ifx&yH_Dw=#sT!S8A;UyP-+fyr87`9feR+rERoVP@6%@= zto4zu$d=vjPi7vESj!as^K)&VSVc5dv4w}d1Kyr-kl>$g&&EEYFmoaXw z<|li--#dN${bnZ(z*`(KI?A+^pOw@^qxTDa{&N_0)Hgyl3w!lPN@Mjn_l%;BV!Z;0QgiA@r0|EEeHAcjTwkQz zL*JC|=gc@i>{Gd#F3Ifo*K_K91#e6)&y{ia-1Aoq`xRzKW%#Xb^KOer^HsI;LaKS( z3C7f)CQLAw6b4OViTeNyaq7t_BYL-fo^b1-9MTCSf6;P|(Sb1Z@J2t|wY0MmgpYys z1V`{a0Cj7UQn(G@ifOyxnS%uN5E*^usrer=k3G2uHD|7t2EK{5q6zg7AU@Q3UjWY_ z3l=^pLsqrxuTbeY`u>KA$+bPX5|COxGxox;YW10^brY^Aac1ec|A(~zhvO_jK6X6ea{;1WlDem! zEIHXOSKYtgoc1$HQ|xtm%AJGzz#TF*0k zd%_}?{NV4Q^ie)$+oK&>KdUB}niN7QQwT&5l(No-*O(`6Dm8TPy2|1u)RX@F5c0Fh zd($5=a*p#^%BV=LJNnaRK}g?;2gx5kmWfDc`}T&~}qsvu`H1#93D7EogLfW^59KB|j3SCd{l}fLZ zPx1tq;+9tuBAzvSG<)B_a`x1V+kubDEvwE&zv_#7zj(hYG3M3z{jKE^-X}6*qUXDy%-%_o)t~MzdlHCaqb=LL>VK!Ii=Bjs6mmIU(2h4`~gtL|+ zHMeQf$_KeyKuH{&vYU zu4-G<-DGdNPp$RV(@Bla>BCc6cekHTJ`?qeiOFQJIw|F4)qPAuL zhti0a{xjT}A-2sXo7u>@Mkq{@h@2ooTtJz6qOI|199`7NQ;$^`o@qNzB0f=9NfX(|B`a6Skv1 zs%QC3Ra7c$*~1@mzft^O*yYxys^nu~imu2go(1FYTLn0#!=+!KT45Y!} z7MlTcL)Y;s_9W+xT#xy;dlQq~78xOW(@_qll&xhnj_dLv(&D>zPI09Zz5?iAzw3## zcGXxSn2gY6!XtG%H;#`^XE^_N=HJd6F2Mjz0D4DY81B#Ri~Q`@X95K&2P80di;%{> zfX_82LnV%8>iQ7egj0Ns0U5eA`5m~KSROb2QX#Q0vZN{z)}UmlcDZF*#bh2f?pSFa zyj`3%f?!B|>+SaH{g~9dj%crZguO*kj+n2P^9{?mzx^D_<>PV)0{rf@TSo|a;_UVC z+@S|BcWOSWg#g64Q{(4w(5%=|?8 zDdIuJ|MuS>0!q!jS|FP9Agk9kmsxlWZwWHLmZL1Y%n}GGw79x0V+0Z_y}EVSYn(8y zeHAGb!Q4@uIk*EJ=fNBeL8UgUpow}HDWmP0&%80m zgXXTQ&3uf8rZ{F_$-5N`Z4JT-d1ntB{dzicCcP7|p&4xYIA{F!)9|aYD8}>YA&^z& zI;yZmRoy)<*K=VH3F`gi|MkjIVht^>K)*y%LyViH;EDH~=;jXQk8Lj7=GcH`vf`NJn549Uk^@9-3-XRCofK$3tV zzF2emx^lO-yp*~}!R9Nh%-N$3TH2YMJD0?iP#Tekvp~sf7akqqQR^0A4_{BrS@HFx!xXz-;f{7F8>#@yu&(uzB_GE>uCb|?8j#}a|8Rh`j_Cnr7WS{H#DqX%>dB$n^ zt|uu;E<;)ccK#60EPJvPKOK(WVIX^tdq18r@d;0xX>|}Ah?t1D-Ca3`vpWy+b0U~d zF8P1U?7dkh8GKFv&*AxH`v+By>+boK99;*$x^?dJr#@g<^9AKJ=kpkA1@XGP=SiQNLbLsV0CA9=~9|s)!u+-Zl@sQ6}=R!`P zyKFETJr}_TkO!$|OTk3G#NEPMLFE0aa}I6M;K_(zk4}c?NOxJRAJT>>8dPZa&7PGq zDFz7<=rV5vT#Vfwe%nd^lCu8!bjMJxtpLvVWukS4;_l<^>tAYq-iK2*K32`AmXRqz27e4ryx z%{5K|0Md964FAnl2`J{ym%e#2n~lg}!Fxe(vsrwXFp;$s?q71DMHc)wMNoktq67q4 zaPS5=>Zy>zrNgnC{eoA$bS5Xmq4h#Y;W~s2w*9sGR(z~@M5lPG5+lB-vZ9PZnJ1WY!AfXqQ*hOLnxy<0o7V`wu0cFf;Z=KB$;as zGNBSHPtJznI9ogAukj<|*1}I}FAib^AVsh(k9EO$I4}NN0!4jR0Vsh$3c0PL;7IAO zT9vgv7DbOY2*SG*!Q(6xVGTI>Nc3)IzWY4H61k+QhZ=LtD|LCGjun}7Zr3EX6Gp^6 z^puZ?7y%wpYQSb(gAjs-lmm*&1tQZgA`=d)X2hWz+drzXq{jngMzM38YF&>zK?t?)c=e698wwq^nVC|`ugVJBbupru@hIm(oSALj31|_UMJz@sdP2(z#Ncblb=9A8bz(=m3|#gMY#8v^xF=6%ObcTWnZ;;cuxi#t zzTiDx*bo9o!R2(73%|4#(}`66E|m2dW$_Od8Yxr2j*mB`I_S{AX9Z|QP@8~8KP z*mne>O@g3yt*$in`=pv;X!}ynM}?7_@18dA_irm6^GH9S{BGaT_t+!pmWsoNPh5Iy z@*tWFCmkFYHOodCuR_dtuqFposq8M?(3)`{4HSYEbFV|$*69|AqAq!=!-q^8*VILs zxa?s`u8H_6Rz^{1XI+@%Jzh=?l+<<_AwciwVJ?|bE&dbH?nU9x0C->OzhwffF0-^A zEm)k&$5+(iV_bySF~Yww!s3?%RoDPw0MI!mb<$ywqO;^zl!r#4DjK1S;UFJ^;AFl? zW<#4WZAFkMuD|brJ-Y>onpHXSO6sI=C5Hir3{w|EJUtD}RWQ=yK$$yO@gQP53uA5XymxW-e$v%dxxGVy2sK zI$<{#z}s;4cpQbi@a)*sKCA}g)M;o{$KqS0JYK?Z@ioGbH9sg3z5~#~Jd@eo_rK5o zBdXBt(Z|T+)F^KZ)VmgXyb!8KA<5E2Hf}7tVz0Sk47mH5mCKWM6xE(+vbM1T{yFWhO?U1c=%MNw>vYLNT{TR z;RTLmeGn)wJC=3_R*ebg)R!Gkqwuwh`Ib2NUZd=C;+?Mo__vV!S13X+Yh4~c_j|=e za95z1l2e<8x4tcGM(&)-DpUTGD0Ry~QFWr4HWi(X3N=3!s#~GTPmn6!H?!OB zVLs0+$0kN*qM3Df9smShe$$%L59ieh@9l-fvU!@$I!*1tYAF%EM}6xsiG967uWS7} ze|#v!BY&{nid?uufT2?Nsl&AZSDJm-m`KwXeP6^+wq4;$9(?ys%Ke|$1}R)d=_Q;) z=d|%Fk@xgD3MUq*g56;W4;GMNKs|I{+(l1OJsL9LJK8nE+fw5U5Z&`}fOGgKh`?P4&wE|}1Ap$Iu$77-dp{V-*gWR$s+HtSP&H(cxuASE0uQ3``(B7=bQ;ZtoGq3WW))!^>6Z83B>u zvl&OidU%p15Zzi)$Ir;jUaym8ERdD!(X0x+G`KynV zA#vxN87cx-CrZB?_Xw&dCy}oh7=O1j-cy`tm8VLIP^AYQtzRw(CaKJImUEJ^XeRdW zC>$(zP&H(_3wTmU#t0Bt#L{hrdxgm}Co%5`(2Snqi3G^AmywgWgN zFhCU<9cz<5Q#lo?x0`6HSO+Z(D{dIdF-UFl4RY>dO6cT! zFZ?m=i0q$EyI&V8L`81sy&)+Z+__}$79kZTMl^Y$q3Y6OS5*#zw0!;yvM2P~P&-ul*W6lOi(D#;?^f1r$XI%c8keqSFBAoiM$}c2O>h=atWZ zyr_bXK)sjA7iN_!KV_bd@9|@qPh|Wx+W17&TO%IFqs6el(&wlFvMygJF@kxpp0y^{ZQ5rC||0t zIJsFtru7i@MlWmR=5N?*uKvTG>%G#~{d%Txh~t19K=W8wfuB2W-It z|Gr&W{NM?Abp-5xV&6ufJz3;A<^{<@NLcpMPgx;!;DYkiPMctqEdzz1jh!F^@qo3r zzH4VvFCbp7$=9rZ2w0aWTiLCFlX@`QRKaZm*dm=fWe_unlR4CUdIe zfU{dGO(@{<1G;wh!(j?-y911CiQlY^Pxvoxx;9R58kwAm%HLQZGqxY4qYePzfMAe2 zOL#Nv*P++;T_^t3J=_^Ov3`=m`TO|c-(YIWsSd$yszC@F$WHgugyY(^H?U#C^R^E&xfY>{oVR9!ZKj z9amaLHcXa{*#@Ovj&Gd4Y;fx3V2*zC>{W}D-+y5SEpv6&c~X|ST#ihYK!oG(2tw1y zW#kdZhL=6H3#EL00U0eFZ%2zE_aprs#oJ!?M!gzH6EJRHxts85Jzs6F^^q8<`8D&H z_l?6W;i_~&2P3>scW%jKhk$9<#^e9z$ea&<0ZJC=m`klx3ml<182`ZiNQh`_GLCsr zW%lD(Ly`Wg2L<32*U&qJA|fb;-jUu*=v@N>(!>yY z6%deaDAK!tG?CsxM5KxQ0qIRZR78xIb8b2J+?hM`oBgt1c6MjqefL+M=j-3v8=wJZ z3cK@I-;?&Ut;u}Fr&M=4&-dnPY~H2b?fQAN(iQfPN~!zebaNvA-ZQ1Qmp=|acRi)P z*K_sz{NVGuXZPNb{$Bn0^N;#EyHBNsjf8T>V+ja}QEU{I65KJG&OpmChS5IWF_!hg zsAC*w1l%c}CsoTSL7*t!DN&?;)G0}#2kx9KJ+0;Zzj)M+Ai0Y>jak!9f>iQ z=LSmTu9?OL+OApV_6e@p)(^&9U)V>GyX82gYP;pS6(zXkdDV}(_y!2+y(%10By-+4hN^<#`XrJu8YL zuIrU0sXAU&2S7w{7{s#5HLk0{NhQBUSgoHDn;^LFaz`#DlKm9^}LBvuWLjZ-1^P zJ?yzOR(OA}PSun zd^EU688~NrUqA4ZxkCymaNhdiRN#XBQ_7%4r)T;>OKvYyf|k7+rh+~{ct`no#s9tj z<1az~r955@{WkUZzleX7!D|F+gW&a8uGHX-M9Jykuc`N_LN+t*8-#3SJEVqe=RKSb z*(rKT6}nsU%pi2H{AFtBes#li=t2EEs<6Z6_Xc4{ZU3c)9d~}44*S16GSv6OPkA)b zFlXfSY29GaJ^l5yh@Sh<;vp$R{9EHHJ_pW)^Nbb0Hgb%sY+a zs!aJs`O&&*m}mG`gIoWI@#EGiLfM5b7gk`Ot(Ql$AgmE6@_`BnD6+NaOQfD1a#DrL1@(f#G*s4G4NuK0g=~O z^rzQY^eO58Z%j%{|L-9=>MTB}E7GGO+NdH^pmaCkuDLhH-B!cLLh*sA%rz$5*97fl zB;jr#?yM)~qATRC&+e(m=&F6gUY*|-!(*<)35;z#Ut_ zT?c@YBLL$J#JB;}Jb_vdfVz)>`hmdv!BER!q$uzU`*_&*~9U~wI3 z0J9XJX#&tB4rm-pc0ZC_Glb&qLz>&}EVpgBmCXco3_ zco^J#V4?WP+4OOe525R6`f60xR?PGDgv8-A0`Yld`tzrWX(87#Y~L6w`$!YB2z}jf zUFC3{o1yn59-E^Btz-hN<$`Q)2iq%#Iw(dsC`8-ICfQ0Q+e)Q4$fP*RCAi;-^HPrU zR!#9$eg04-3#XRtubvgCmHk-zd8l4ixMA)Sqk;${;!~qyyiqB^xHQ_dG|sa48s(l~ zU7l=PmFiHNZr$|UsP%<)TaNRaJlBo_=l){s=qtC83j4u2li{}eQ~f3%M;$&6dw%E( z8)!>vtIuz!s;H~1udnTBXc}l}oviOzsOkDz`S$SDyC1}!%a?Eel=olOk6*r?xqLJC zr+wk7WAUnE>8fk#PtWJezAu-@qKfPM~{&(@5v~W)PcuJZ%{-5#f z?==>k?Ek@{i_pivTJMje;ngYl|HYzb2gJKhFp7&fj~8gaE}zPmf3&|cc8x_(rEJ1^ ze%L@VqwU(RY{y%wK2{i(>J;jZPQCWV^#PYKB3(|R1r29q=wEo$FWnbC@iN}4lO3;jUMZ_OlhbtS z;7zN&syfwU5F%zk)2e+lb?@rMHxJB!XVyRKtbxJs%&7?&gV|8{8szn>3CyHJKq^V^ zZRd}JML%OAG4jvPZ~sY=uG;Ntg2`#_h3YCb1P4~L2svTwpCE@5BOA%OwP<*$y}2jyig`nqBEr8#|9ak)dc{0crXPgP*;|zM8WwBP#~8#gJ~dyAO+YK zKwZA3f(Iiu`!W2Bm3=Um3=9FzXPQGmfU1c72sO`k0>UJ3Y^{(#4ds*|nB(aNpsi*8 zN{nXo+Qm8(Fxw?;K55EOCQCzQ=&dzOf2r&SUNy%#`=kv1BqOIEsn}~+j4(rhqcD8% zXaYIuX#^&XTu$OL@+Hrv28s@g;}BW@-o2n0(JafV67^O4;stDGw{&Lp0T0 z6y>Va|8*0Wi8kYMsdx)q{M=k5Ij|y`^<>)ndr)Hw<%DSc;L*6~!yR@^qCKka7il$| ztvYh>8B`*W{5&y1FrGV4RHXB;D4sta#$9ySgeu=>dMQrq#ID~lS^K&3V1y1SR&RPu z$+zG9@@v2L&GFLk4U<|wC|9`i`@8KssftP$yT@JMx_=dQDYx@xhMjaX{rhtlNbz6y z@oHIPN6y_SQpaxTi=saAN?2nIQwBXf2w8uPMgMI|-t%a#agDc+|71k+-_`lT!+V;$ zP@;hHQ+>nt;OHAS-dDqtJ}?*tlttyIieYKcoBfP*rwcGW6ja&=^n`hm2vz6ls=VuE zbE6Ta%!%oT!ONnB^oq&vSE|s(ss&cb#4`;WAqiWN zIBEu`!Ls<_@ot;y;n?+*0~SKV#$VHA)(5!(dCSB#?E=r zwhQ&BfYW66O&(?$Puh>nWhp+kr8L(yEfz{#Y5;wqn0bQcU4NehHh?mq+7P0`$cMB? zr=V16K&snP0A87a5wF7ufmPXx#xHX= zvm)6>#F;zEqJ`&K4W1c3zZAu}1^|nn^v@ugVvZQ`j*mEiRm zP33dtPt`g%0p?TH=5MS&rFeWw0a<6JD8)x66+U{UWH+R{uusNy-H#7%inM*i8dWfh zuOMCRDc5V1le3#u;VH#}q#3nweg|ZNId~_giN#@spG|2ghu75VC4$y`6EqiqFrSgO zNinlwil?`J(mDU4jRE%XZ6qZKurRlbsR;Z+@}#_2B6|wOlD+xcs}N>YM;^Y>Py~Mf zh*nH{NA3NUcNbd?PoJ=_1?>kFqG%!`e_Medk~w{}sV9Evq6mb;#kggv zcC7gD7SiR^CfwAjsJ2buw5=V&oM%Fc(ZbhC<&SkfRFE->ggAdIA$ncV^%YJ|Z&>{>Ta;!MB4P8`IyaV zrF^pckLnWk^X)?~qkNDtjxd`QarP?x0Bdl*@o|mnjYdF_RHpfwXJh{Ic%?VD%nSLc z0~Nz5S@iae$-Kd32+iXO?^ToH124;ig*po~fnS#mHeBC8P4qo<`Sk|+_ee7Bg}$Gg zuFdiT24&&;DL)_YKeN=wYQm&J{j&^Buyd(Bsxzxi`sen6Y0HDtq>4Im+ed`-N zRw>&y_qFUQmb2=^w+JO&YY=pNozHjg)1-F{8;?^i2i*V6yQ;1%nQ@&DIbsv_1Fn{r zj=`hX3seBEf79cBm~udnagwt5mwgTCFb0e5!bdNrWxmf4n(5t({`=Cs6XREJb^G2CyXFlb89*SkF6Wcu@JqKN8i_1|;8d!Dfi zZ^RdAnZahxFQP4doG9K}LQFxl`S)>lUGBFi!T^Ij{f!U5|J*kfVZO{qJPQ~cz?>#Y zo^Q2A_^=+zUOs;zO5;PKiRKRe_h)jmur8;`e-z29F4y`)eRQb`6eC!;{O0FTZjND7o329X_!T{{EM>v3uas zEsuFYvb9@aqZb}43r{%U5wbL3Su|K6n6UjAQGt&rf`wuQL#ehSzA-(O%W?g_5c*?B z{G-{;z>=puKLw75AL5y$!IgGUA=pzQ9>EOg7lcYMig{<;>@64NZ3HFUA_KI=%x(wg z?gUF?z^j6>9L!)hk62!L!c7|R3JlC6e~ri`i0u*zcS80nutz%)x7y>FvSsv!#BqG` zvi_10B?6Z(1V|>qc7L+D1?8MHwdkRv(D2@9^4(~?QFuDWv=0>70mAX1K}2Sd&0+x4 zub4;bU^PRqIzG`QCsuVP(K9&KT^@`Rifi*gv|GkWj*=V5MTL&W^;X(O?7HTFG`Te5 z3*#k%gCy2nAGiHVepYGch)&3~OnJdfj@OJCs}${S@iAD4xeN?ZB_?jRCsr;-x{N0N zSCM+H%WL&WI`K&AijSkz2<;1gM%apbYAKfFBw!XF{x4QSWjCzVJxog|VLm5KFBl#| zL!Q4Y(0L}cvK#zgumk`#gcJ&@k9j$mQ5q8q=`F)KePLF z-H%5i{~7;GHo^2#Ua^&sOl#?mF6RdSexL}01~*0{s?wrp;CMVdjYitcGN#1C@9uoe z7-Puen`EqG>6{_pD)|f>t83y*D)x2;M`ebBVYXXH_8Bwcc{%nS|8p6u=Qu09|B886 zRd`9kH}4AL-hoo?jd@{FuqTF@cr;BWGdumvUV^Q0^gluEKGzh}jEJgs*m#A4`663r9fibBP<#p&c(i z>^>HULeqL-vG`1aXG&~B4gmv?#=(->VyvHZ6QX#-XX zpP1o8!tfXz9GVD^C&H6MB)rZNc!@ESKgsA2zW26qMz>ES4CDCnh$+!)D;=*oTyt#P@Q=ALOzgLn12UbJ;tJH$A|4o+X_7g?xEn zFY6K$G+B97iP#chrz*Stx6L-HG#HUD-&sL9@C;cZI6CrtD)<)ZYis^j252B29@|){ z;Z-)^Sr&uKiMJx&&m$U%yb4Q$1=Eo4oF&YJ_sLi*xe|z|%3!U6Azr=cgymLOrG(t~K|SWZg~wCo$1Cj5Z$#F;GY&PJQ>8hakGP=+z^3GDx&<; zNUPffMAz{(A@O&tYIf9FcT_5rU=<+w zpIeG1!1}%5`zJkmCul2no#bH&viuty z?>^i6GdI2uDb~*h4aRjd7Qn}9x|7DcfrjwtnX;SSZ)UsTe92XxlG+oJ-m*3t+oeUiR>G{?LR>8c>bLzaPX}qk-me_A?P;7E! z>opATHMQla$4b@xx+VI$*PBhcJ=VT|0+fb_h2i=}yx*{N*G;fhaowqp6n*zCbmO)-7L7Ts?kIKHnsu}&3U-;^V=*;0~=vU*kR`6;TdltD3X`}7-_NX_YbcZ zD(DXakc(1)Dj8Z#e@8y%A5cYsOSDS_tV_5QMxzTl_CJFY3P$xB!E2iDe$|jYtL;ob zZ0u2J+eHms^ZPf%rt@v5bCnI6a0aiSk12+p-Mw(z-WZy?c$$ueg<|?^li}_K!^_q0 zU+Ycy-Dz*v8+qI~!GDs%MBd@eJix=;b5ULXm$imFZ@@{bWjcKH1I4>J+bK<-yl365 zdRHZHLo5Ef)ATibcGHJ6Euzodfk!r@k?yUC@?qKL8``#4ZkJz&`f5PwsOztDeG(D= zyZb$h&zpaD`uW9XwnN*6!`}vBVbAa&Y4j&)oW-p*GJG5E-dZeAWuiuJgFYK1Pq9Xa zSUzzl!#?E0%Rd80qJtl=MyeFR^M@b&b6V3TYa|uMGQ(#NXBM8koyChYcQqp0@yOSJ zk0E86iZ`t7%wIIC+!Prmt`B|mPlMgl?*~kc*Ci8yxNg7j3DDGBVEEfW4D1={+!pSgkoT@Dd3Dc+Ycsrp8=NzC?DOAR#|Q7B~tAb!w;dRvL-K zg`GyKCts*$NnfarX#mHDUm^>?xSt|>W{};6iyeN835APwYlylTgr#lrf1oAOZd1b< zG&bygHN^~0j3)2y#GCNfx=;G!6_^}Lj_GGbU?rY85n9{kdA+Nx%IQR4uXfSpu%BCN{0cZ*D+p3=XGc~903%kbp zK0?EurIDFwl9|-S+`=c3Ul-sq)++nR>Ubq;>7HFPKZ>D~-5~(Q%F&m095Uv~-iy_*rQZ=a z=T&A^%N65IHz$y9+GYrGt}S`#{O@~h@h$oM*MV1af%q-|#;xiYAAm+{l_8=WkFZ%k z=siBD!f!vVEeCw=xmWvH7qFw5R$Uw1W1QB&CR_tJ*w$DZNm?1@Olb`|+7aNKU0-XR z`Aa1kv5TJG-KAm}yT+p9DN;$ha>rk8D}7T)-IF+)t&vsODO|-12?+E;<7+l6?fZe) ziB^i`D4Vw>M|1z~9t5Ca{xdmgkIA4t2W2OeuX+i65{K2jWXfst+C;GK+PprBG=Iw{ zRjn&M@=nRzDtInD1AT8}G$qN}=KE6#gdpefCYI^|^Ci~)7*xCqq@e}^sL349)v2k! ztx+9eXy$ysoB*iRULKpir#+ye{IEtb3fPld{c>jT?Y7clR3TE_Zt?d6gWb2&e+_^> zI2f=2cJFAvx?sPpb`J6K^CE?Da^Xyb*C{0x~QhRNzczdabi_H6AA08F)d zsDVB^saYSlU0=y9l+!EW;exEfzN?FU50HxcV*mZ|ROi>VnwcZ2QyS`6B^s6c=Niw> zjUJwV!+x3d{j$LEqsHM!_e)yqZxkO4DLfeb!4Gebz7sow$tlk>)?V#-aK_c}bydI%M1Ljyh z)J6>&8lE{#9r9_Xu8o}m(p}moL`>WLHpg>q z7N$AwgnZwIz_D~&Iw5D~&@?7$&hD<5XFm@3(Y|?mi)bSxt8hOVm?1)$>gEjLY>4 zm10=U_D!qJs&t++QnJc=&Q)qZGM}`Nw0}E#rjnn%Ako&bvOy5ltzWTh#CCX@trNg< zLC0%-&oyzJcf%;SR-@=no$iK0cYw(|(=LiZ`*X!I?x_XxxV07%Ij<^|a#lXL%s+m= zL_M*BvqWQxOpBIJ(?>ESdz7^=wPr zuBk8c)DUZBw7n*xb4H`VF`VCF5TJk0{ zm*;>qSbYbjMmUUkAq-~00BQN19Ml=PP`0Itws0BNSZAX|tfXV7gm+Z_D`7MP#@Rk7 zF^Lx3H{kV~6uU2&)$?Sm><4H!j??dt+AX`l1=lxrkH1F^=PJJj1&kt|6}c8kHP zskf!OTO8wV9nDE42vRW&P0AhA4y6p>BR>f%)zjWIO-}ukX{Em>(1wZ?0?F@K2eB;j z2R~o(`&>prM=o6QH3apt>T6%8M8fuQm+u6*FsI+1asuanWNRE3RezMV_xQ-)esq*<6%-u79$zg-4oca4+TR!Ej^I>%J2>O%kNuO}N zk1505Fy4PdRk%A)R-PB^TP_UJo*qa7CiUChtbUk@-TF{Uf& z?VM*3v~CX5YE3jx^obnd-AXXI3o@kM5PxP1Y>c~$)w;>ri4MIr=tvdVu3EJ=5jTc` z_LNCc9*iB>k76{WOFmG9b9{AZ&w*Uv(vdJfEYtPi1>;^e61}ER71&6Ya4DDbj(^yM zC~f3ws8-F;s`b=Yi-BQt^c{;>v?kAMc#b_;z6~()5uCz+jGwvh14|XT9@_Y!rR!@H zxhMjIHHXCjx;$_4-Be|BY?CK+1!b1SNM3E~x(KN!+Mp8GPki7j#s@B!H(UjRZ`Nno^NyUsRWnzyj^AKnbHXNfMnoZ*E5$B~ygG zbev{pxvWc1@yC_2tpG;QlSZj&Q7Nj4+pq4HZqc2Jha-Kxwi%7 z2hOH=b3cg{k#oZ_@}n)meEo-MGeLr4+H>VUug%43F+|zbd$t`$sX=q4yNUdLiKlv8 zREex=YI9=w=@iZ_roMeBC}Ug`(rOLFBCEbFMu1b;_VPgNYs+8N|5nl?*GP`}?&fBm z`R-Qyb4owi9eNM!NK7m`x^Z2Z8i$QqXD?=Xe_MqP8}wdv-|eNo5Jyc0N=Den5N;uD zKwGdS^L24eHey4SiHWkGYG50ewIlLR8j$LLtTcV@JWkuh!)W( zQQEHbY+>feWQCQdey`e+6=YBg8&D6K+V;-wb;jl5$Jj@)6-hd`M@eK@EuEcoRoMP?PN*HR7@G!S7C#tI! z<1T)qhcF8s(wdV-`+&Fvd$E^+@T3O}(6aCS;8PUapczyht&a2h$exozWl48<4DS0p z@5o)z4emG#c`q8hK~dbHK9DV>H%j$eN5Ax^@1fEO8=(K}1=ocoxzgbQbp#DFKimyh z^rPF|T!ogYn<&I*FA+4mz)az+4{cVgcL~0vfz5>?im{3q2e3Xr$A^ zV7XDp($vI?rTXBLudG4rpSW`b{FQ?Qsd0ub=K8|7Ristw)A41i=K_T8@f7YS1LpjO zR*1oLgY4ExSDqC>gX-th51q~`As6+Tq{@auGUE1d$?vJ)`4OcPsRvKia^LT0Jnqb8 z>ai#Jv@;LJyXrl!)TI`TVkQnT-FQNaL=N&WkJAiG#!6A}g`&Wy(ev`Vy#!=TwHmQU zU`WVWetor}z1p6PdGa^-c1i1}JNO3*#i9p$jFE0_r;)PF`3IZPKU_JjRS5&{HQ}GG9*6E;S9=*N&-&5woe@W>y51+h zY8*=QwX~yK-Em}#M$xD1&T+U-{ZwXArnjAF-`P+qCGh12K$JF0v4-7jaq=>@L-TK)BRJw`I4Bgwv(vL%3bSnCNq z#j`-x{@rLVOd88%*(=LTEdaH#1V*(_*nMnqy>JciF6q8ORi!<&Sao)7AR?By#=f+o z^}$DRUG$RfwMTL#q;;;zCQOJuq~fRT{cnco$i}$dnEO;gE{gT;?4yh`9mzQ)_ot6k zbgVJ+$T(l_xZl@?wRTu|NW$hsKlFJT$5@ekMk9m3DLIzrKexn;!By6_DEgEM(W>EosLL{i~a6J^T;v)H7`oGzm82#CRBb1X7i+iTfWlAW$eT2o17;D9yM?}))9YtwUga=N>fc5 zG37_4BbAxsS}h}v7mz5HmorW+tXG}2y?BaBfU5`8aS;M0huUcgSm7XDI7oZ|@Hj~^ z`eRGXqbQ+FmAF!=RK4m%8(Q2fS2B|921@(EV(jxd!Q6y9MPR~^?PN}i^iVY4NLcD^ z_SAyRjB|g+!aIbb$>E`^$e~SXiZf{4_TiMGf@uLhEsHT`8rC=TQ2C-15k7%sQWAYB_j`_M$5LY!te z9jp5=2~1WV5c5pPj0n`((0~F95t)s#z{hL{KzGA|$N8ht6D^%=S=O7=Zzt5*Osd~K zNMRRs%;XI9>!fVstD`hGr! zWwujrGfmopyUSrCMU^IZhUR^~u-?1z(o#g+0~EW79MU_r7^op-HGv6e2>KZkv^vGt(?D*l`KBo*^s zy1l_~*5mt#7Kp>3s+OlxLLYMU%I)eY7?5vMmPq5@tj{`pjd(=T%x@w>kQ5 z|40a)o6jGz3OeP)=qgPr$Ohk7IPiqJE<)^bTHG+!j+R=bzUA19n60ZAH_H+x;#}yE zDH<0wkQ=4nsw+$Z7}!%(*wvlZDzK-BvIWFq5AiWu4CX&5E#6AM&$LWTS+u4k*d2)c z4WI*jF=jn6cE|!cLiE4WeRQ6x=h5os`qP}Xm71+TPO);0Sc7>D-7Ue77YwaT);)*r zL2?k{e1uyMk3Kf3Dw6Cfk(QOhZ%{@^56Ct>v_f18;T`KpG-7Tv+INv>ShB7^GUcND zY&6BZF)nY{_&>53)beEx&Sq+7DWkenKFOc{@DW(!7cb_rgoU$t;?s}*+I&C{ybmaR zDQmb*L*Uf19V+A?I-9_r*v=O;1Qsj>Q6y^2tz5P`{M~(VT0AHw4L$#$c4QQ5zKEx6 z2Uu7NARF=5xi1UMw57)vM-S*!37eG))V%V`=T-yBS+=P)J5I=_Mu=te4~i5kG6bOI zYYJgA3xqvQi4C+I|DNlVwTfy4iWFMPnQDMdQ;)u^3bGJ{1N9UqZ_C^Sq0kPVx2-bG z97=sml*36@-bqUrul`eCdHbhzL$sb+WZBUEBIdDfX5{INM_LSW1~4BJqxuD6S&2sk z$7p3C9ow18exScQLYd>WJ{KA!`H;O`!amuWJMNY`p?55IibBJceAZ&EPPllmS#9HY z;5uVj6B3GIwwEo7oELg-lk2?g+V5pLtaVd`(?p%s+gt|h1t1`p~MtiHbzTf56f}T`i$@@=~f(F-%tw z=aW}iDzVP!SXWf6MYnU9I&fuQmul50qBR+_tsBX)=%-*qSc1Bo0FG}&vb9ID=78`d z9mf`@SzG7Szp_GP`~=~f|0O{P=b@q=n=bE7cGWK(Q8WZ+sV&r4eUS@C$0d+|z9z}z zqh--nz#X;9Fdd?Yg5B{}hTPuE3s*QTb2Ia{gBFzH0#7YJ=VlIdLs=tx0nlkkhp<6i z%^T-6&9bbRcvBT-cqHvbRksx_)vD>EdaeLYiO5gPx3FY4PGX$eq0U6e=PY*`KqMtf znx%b*sr*jF>V5ZgV>3AiE+LNvKMj7}-I$-uLxk_9$630xWtVq`J=~CwqpN z)?3tu{c{@oo~%1{f4@>gXK4%y$`Mg&;;~fmK$=P;W=kL~O=JTnw$beXDbnDQ>ry0~ zYRc(x@@05Oi!lA%`~7nQ{wMFh&$lDma+{$TcHCC%tcQD+>!_X1nCnO}s&6Rb@O*o# zkg*4rjuek&t5xl%>jh|w8ZfW)%`5ac#2@NXEMz-X*=rrm*+)tcqM8Dal53LzCtAwW z%*zk1YpGDl6yWtJDCH=g0{)<`Ig$lKfSG2$4(gUN^VW+k+qMVo6*WIq0Tl(@Igo&V zg^C_coBiq^87sTwF(>76?$BpP&rIFrEu)NaQ1S}kwZa0q)1x_X zLa}f{2>{aOT(9sz`yUmeqVTPr#e^p{?aQsg&sBGX2vMPaT>@~|+|%Z^T$h;mo32hA zOb@M(FS-`ML6;+hcb-fwCL%sM&;os33=UNUFNM{JF zeln5f+I!i3FD{#E8AGS8Ik`r>Kd+qKv+cfPfBTT61VUjY4tvkpf2GbNANrvNL+~3B zIQ2nC)hc_CCfq(&)MwYFS}yuqoI(Q#oXTL1g+^9xrO(HMZTG3s_I`ZTR^+r!9!q5V&g!WH>nr zEsre9H5O{6y9vIFxU3h>(N-LkW_^DXXi9g>=akqds&{L=bmiBH(&0i)oU#9up@oc{ zz+RO5AH`OMnEQbu%eTDU4d4dWFit6o?}t{nYkx}qWPi!^AeNPuuhc`bEWt-__poji zQRC>=oP}ihc(8y!)cyoez=gfN6Y}47IH{p6=;2df=`UY8nn;?9NA?_#U%JTcSc2Ni zCtuKS{Cgc*Tk$tUIwkDa12k<4hG&P4zRo<>)>?>WS`oZR)FV#L1=5>>~o*%5Ye#;~?iS@RG z@a~*@Dg^E?dLCW2dMh;VOcqDQy%%twz7tIYB%JI}vSIKv#T!FNCP{Dxy2n->!62f- zRd(7~N`t!BMnw%3}8r=S8bA^HrDxZ18<`LyOiF<)XI#(j>W5;JB}mtf;*l&QJyEkZp+`oA?){$ z7h+AOcx6Y%c2JTib9iqKl*C{s{ zMqnb79ry#a-sOqvkBhX`NAD;q46^QpS{8|RLDP~Je z0aVpG#rOVQeKa)z9-8pfwJwK>UZ;UOMH{Ssw=y+~fCO|QET-37p+>Yhft(L*-sjjf zNSKh!wsYG|FM5Kp&Ev!f^Jm%52l4w@_Yb?WKNjoPz*~vM^`L zmq`TgSN~ls^&cm-D3~=!P27>0y7@W$yKPfT#tVDF)lW`I^=L+9a|4Ar2qBtz?KtV% z%~+7^o>Sp#YYk?UgtNELfY=^J>*o6eU_CVfHr2x;o%v!nK;5SiX##J5)t@QDFNc2@ zAg**?uv185D~v*Ea^K(v7#Xe|3Tjt(n_e=QbVk#uc+~nuDD2|L%jLGtPb=>JjYb(A zjt*dr|7Jd*-WRS(lsTyDA}Jg;Jsx!y!|%CTxHPmIA3~$2c1xiAX&4o9)^56Fbl>6Z zf@JTc3dtos&raW#+Uij+2x%9lUBBoY_HLAG{b5PuL(8a{Kix0akt$z`#divj|5%w$ zC^WT_SJ#jaM+()Sfvg8#(pRJ>XnPs!$`k46r8};0hyJ-_hIoty!tgJjkg9Opon516 zvsDyIuOx|Y98OLW2ePGWC?=vH>sHF<$h zCt3&6PvyIYhAK!57$UT*E4Zro*+s z?@w|m;qnRCP{SjB4f=*dK$zTU^*2?pniCjUABTt9Uh|%@;CQh{f2#AG3OS2JKsd>Z zp!j=ur$;JL+kh^k)B}1wn4^+h(JjWmw8}Evy`qEm53!tD)@mc}t^8I@pu;$-w zZy4fGVPQZDxHOHNfe&x=cc8+HxyIDsGCrPl=a+Cx36d<-*7Ze&%ez05E&_HQZW{JSgo>IZ_e52S_s z+lw&P0U>&M7#k~lA<$AFg(2Q!z;IXsf1YG7LY?#B`Kr4|daf0wi9}W>AIVlbch{|L zn<^SFAWPO4?^X0H|InMwubZV&md*vvD_o%}1fpeI#6G>(s7xb9NB6t?hSO>Evv4BK zD1Y}3FLh~r2;vhNCw)sp#1B#T=mL|p&4FHPGYK+j*oc&hJ z&36l7aT2fD;2|t#2;iX4?9Cpl1~5NTYr)c}GRL1TsnnU>B!uxcoIQchJ zzJnUny#iT^UAm&TkaNrS<&`6oMOhKZl@sNgG!j(N z+!TKCYGNhBq49&{i?^a^nO(r|gbjMjRMWO+u$>S+5FJQp{?O}j*CsbeTOcO-w7-c5 zkeO+_cfHlAXL z?hOX|3k-Q$8{vir9#r}1(KlHf5P9Xn^sarv-g+*P+f3Z1s2JjQhv=#Q7|VEL_sDo; zKK>5-2DLTcV3MQQSC)^#w24}3JQo0RtxQ1Y9En!>o61Q8eHj+TCm#v-Fzo$}avV?m zepcL*Y=Ei^TwE9L59Ob&g3bL&2hJBTMOn>|xoBZR=Au;HYm z?J=#nq+!%lu6y+M zpnIxO*3^CmYmkzp8dBw z_qyeWYm~sl_v+(@zH!sW-yh^;2a+?k1E3>+dojUvzv)--a7NWLT5SEhT*)d$CUWiR zS0@H%WuLlq;t4bVG+iIjQB7*!_rN}EN-F=gu{VT1lsfM7{+;gic{Hu;rsW)T9N~ul%6lBOvEWAFor~@j)|#!+>3wP2p34 zdbp;RRwTWi@-Df~ZVH%AuMbE{ctOPILB?%!{+g|T=fh+2CF#i`_~-MQuBXXfKA?Y@ ze>djr_DgCKipGER+=z>ov6wakA0R)0Jz0dIQ;wovqG?nm4kr`DXhjY20vF1Rr+u(? zuKqd<^CU1^mcUV_%vu@AO{0>$_i`v?g>zS#b1jm6TN&WA!b88tu>#~%13^ZO;fMMK zLU9yoiLdW|ZhD1!T*kn;WkiQtqi3heOj)DXvl?1iG7 zB|T!rObLud)_i!3tPU?MI+Ax$nNyCyE8ovjpe$G3$34o-!_HqT4q{I%m7iU&Az$Mt z;pNg3@(L~xrpw@qsLWL zzYyNK^y_)iaxpLHhxWqpkp`Wy_cJ0{z^-y~Dn>l6!$->OCC&=lk(^?n6n=irl2U>8 zels`ME%n?oV)VbO_e3={s00t7@D)r+r)kgj#n$@}0F~{keYlj}w=opuv4yiIy~bUL zEJhV@!v8p^BA8JiBztFm9UdyZEqBu`w8S0C&a1cg`FM2Hop$Q1r6255&ZyoG58p=M zm01fSSq{rMRxe_4n;Y*%wN1&V;=lC|~Ou6sbCdV9*Lk%Q$Snhw7L_so5 zwuoJ@AQyZotLE298>Yu&orrDXP;T=aSwoM9O6l4D{A4?B;ku^sgoDwZm8;Y4i>y{u zhrYQ>i2LIR_s2h9g~(MsXS8fWYe4n(q$HrJhMvoN@!6cbP_aA+d+G7@Z)-cDrB_9? zTSZI{AOL52I*eRZCT9h|!jsA(IV)L&gs$HXj-L)dugb;EbyM?7w$(_l#Xj~yWj@PS z^~yO{llb^NwWhl|VJ+!Ic;cb8KRgXmY2(hsKgy2JUszh7qazU{zgZ%{k?Ph~LP%LfkK1fUpf2r@? zx?EPC-pf=L+4i7@B{T93r%*f9R^@u+HOl)%!7%$=Uv#;5if;kOAdtQHdKaTC?346+ zrI*%lTwBenEFvrT$T=*!4(^Yo7gJugr&x>MN*+(2C2qyP&}U&f%l@eZQOH)s?IakyC`G5cwD(%-q%OPH|0o~qdk(XrH@sOAUiWPZ;<%4 z{l;RC$Gc9CGM-$m&6SWbhD|kPI;>Mxhwo(Tg2RWp+%GDUCn`^VgK9X*q+Qe>>zEe& zsQb@cbq!H3y zeBD=2lX2T7@N@#9gx(=kX=3OdLhrrz(2*uh1f_)DdlgW6N2Lo=484kgpmc*EpooGM zMdIdt=bPQxJ=mE{j*>|x2bt%&|JVJyN=sgNoTq5%G2Hq(HBBe2PCv8ew7kZpf5XN4 zi~3LNK(`yWYwaZ9sH3(2tsrEAjO}}?3BGs=T+mr{E8dd z9W-ahC|mm|ImzOl(2%Dk1*U)uc9fC5=&w^9`ZKz~*)@94uk@tLYjU6E&NqF+>Dx?J z!=AU?et=?m#)UI(6cjwkQI{xL%GOP=O<)j#M`g;Z#hL&R_Sv&W z4hBhE>rq|si`hFWsw^Uz}q0YMn$>{XfbFZ)!eGT-CEYkK9C`pWFyL*7A8*y?<2mJcM zEz%dV6g$^B>UHUcihZYa?U?EKJ4sqv_X=7^Q-W7%HN{mnJ=UQvcn!gYo?uo`wmuiv zr%_AAU2X<14!N_wpl(jnU^aP>|3srjRfPQRe>Sj{q)0W><2y6C9izKxjT7fTPrg1( z0;Vd%ZGHr@r>H010S6?+#eJZbqXiJ4?i=Ml<%0(1vpI#Vs zM3&VrQ|BEdY*9&}0psYZUpFu*;$|AWM*gUUG7HJEsoNa@hiz|Cw`R82qV=mD-{V)9>E-4c?Z&P?qmJ#SxMS{>$83HN{z^uBPcmbg&P(0O|aDi z**IYU=y0veKwB)Q*0r}{mQU$T??g=ZXZb^^6n?s1PIkCyI~gXDhyP9Q~L^0p>f zxiwHdEM8=i(+|R894mP}yJheA`|gMENjF$zdT>2X;pkUq;kc0M|E2`1r9#FBva_aZ zTvP$(BAq@aDdj|m%c!Y^-c@&Rp?*r!gD2794tKN#l#^k0O`-EL86Mj7q9JczOKRP@ z7WV44^UMCa`To=6$tQ3G_Ly3e*L)0)g9vCPZ5rpw!R{ye#0&$LrC z9BC@$+J_!H=HeNm4Kx631DQY&4{9vY;rC52)*GxW`!Aq!_of-2(8F4FzSU;|Bi<_! zvs}-CrH12D81Risr_df8g0eQUldSxyd6%O|WPfwemp-TEh|W{mQ8s?XD0z0@OWS(T zjZ+3K2^;MO_WWn|{cnEA28{QQcRgc{(fM~fhrZ7FScAooE!Vasm@p$#^Ac8u;}8lq ze^w@=>B4n!2baqSa1d&j02Td{e%ci@-Uj5u5TmOiW}&vqUvf00QHj}=l{VDx_Rvaz zpm^g<{+wPs z*)d3q3Oq2|`&&}+8N15Ix1l-r!u4C=nf(l186U0|i;5K=!}vS)S;sQ3)LU+V20(tm zR-ID{k?cu{_OO$&J5p@xKt4$S%2fR1Q+4)Z@h|0g`Vf5Zg6aENfKFCwWHi}Z@SNWF z7@Pg=x<&dCu?qi=$sSnP*IwJXCh0W@Av55$6t50S$C`=^G1Am!0GnA=#w z2MVSD7Ac>lYU2u>Z1>3wh=liQKan&D&E-~4VNfXW)Gxed-e@&Y;AL2P!)+>y9Pzr% z=8>3FKX!Djtz5>rw>223nL?#2W!H@5(R|g&CS8;_aV@_FV+&?gtoJ3+>#n1__vx=u zKX?-P^?0MZB)?qRmoTOhHkEZ>((|l9B1|x-T*u{PCVs!s*lj%Mbs75E9vDt5Vl$K` zkp$1@DZN22Y;iD?|DsC$4pVkgI30;a7d3y7^qrPZBLM;g9q0yf_ufkbbl$@Wf7C3`q`7UImk-gN(ixL?GGF$1+$#yC9QlKz8>f6zBlkM||G53Cb zk$XLKb5z5;nH4R>SS|%7T2UE)b8JnZ2x3Em$uI0CL@+G;2S_cZ4Vgw%>Og0gty7pCWA>8W~N zYAGf3@a1ES^lt+iki-7(Z7wQr|#EJ0~hx1mmtWq=$Pml?_-U8 zEm>~XyEQ)ZYV{YqpG26qe5vyL)2o+iK&ql@JHI({FqNvFRU&}w;AP7L7)J-AoqG#I z35C$!K2n3l6P>3?XU|WgtS9gz2fr)yiAv$1Omp1g96OOuvtQo!c<`%;$Bq7#v~g<0 zmYpW)_%kLk8!bef@B@q&#k5%{BDM}7&hHk2o_Q0D?3R*QgVy&_d2(0; ze}8<1>!cwLVk~T(SSi2{9QM{5^SqY-qq;8(yuv7YEg`k~=R8&|zEp#Auy1_#spK7Q zujM@XO)mP+Y7 zxlUhaiNa5YhAPq&zmFg^KBuo3=suKYviD4XUu?&~n^J~N%7^5aI8)!IQTd)1wW@T0 z30RklOy$e5`B3ITt>oQcE&eP=Q1cDFWw?W#8`aiEc8gl%-p6+5wD^>Dam3h(-?(64 zhVW7jFGWv7S#1DcAwT!&d2U&k?Dkzd?c&Q!Gv4BZiJ^)DfZ$%`-5pWBC7xcqn5J0V+|Zo<^m2E$^d~sm?Wo(*ZAYeOr;3UfGz_CwIlw4G1?8 zpoGC?i2AoUbD0#k9z7bR8am-@!^x99WqE1CKezVStUjfQ_C!PJ-Z)!xU&6^S04C8) zRHy2jmU$8rD6MAz`cscpMYn#@a}Ia?^N=Cwce=mRPjCXQL44)yN1`}T6!Y7MiRlJd z5PhjHHJ8*m2k^5fU!m_PsPOs=t!GzZ68aW0dh`_2e92Hb5`bm4Sq%ON@Ncck|$;BfMedZ4Sv+ZLYeqsflL?#2W$6 zEdCv@KQ}~I8=c)<x>o1{Y>x0@)seA@Fa zWtWzkhE#j&OyBx=_IO+~s(O?$f3Ei?h`e&2p8I#l{TG2Lg$~%0#=H!)$?yB$4BG6p zY4orO^jg(4l*fsJ;^z%_R8r}#+8_dA>ZS*TPM6!06T_gWmzwTPtUJdk?@~ImytGK# zwah0s+KP2m3F#!!9$#^kfrgodbP=U~%5C{)=AImN4Co|h8%!~L`7HOok#w|AhXv4puC~ae*R@=_BS+5aI6W? zX6X?R&dJZE&#!)bG4OS7v5{wB?qA}kP>PZ)>U*fT(y$p#oJgvN zakX&zGg>O|4iBfW7t^XaqfcTMJb!u7$DD~K>% zobrgMkSg!a6sEdCf$7_oTBMgxljI=3<}K~9ll$%4;2!5KgJHffpWV(U6CMx6TLGasDbDv0pzBc59Iv2R}LT3ORghl7T2_;;-*FgxmXchq61@sCikA3+3| zAN5RmyQC-PO#lI+lK0-10QDb-#bV*HgxH8LOp!HY_u`p@_ZaJW*t=?gbNqmd^juil z@3U6&Vj3e!^~Wq2IusAx7(reVNGXJ2`DDb_s-9oIhx*?3ccz2##ga11$8e*xU2*Tv z$BSy8J;E+td={#vlaAjTT4HN=yC9mf|3R`Np8%Ay&ks-_?pqoo8Yqr0?~Ghj_c z*KS5m(mEvFfqPJ837g9TAl^hgDS-oPJ$~cx8DhFb??ZrCF7>BjAiBs*7bK(OXGZ;V zm|wM%cRW+j9#e2Ub94=J43J5D^bZRr_@@xyA}zQ4NfqQB?tA)UF&+vzAl+Csw3!xa z2cZ0JilFCZSvpmOx3Pc!L^&D4F`LiN;-4%y#~h)~%wfkFPLZlqF4_CAKC>1R9=D%Sez= zqcFav+Q{fa$`S9KAzyO;qeUsaU?KIE>{g>_XnANmY3~Rhde`X0C6=cQU zvH`iu0);Bv*jo2wnt0f#HH=Gutj%@FT^_7O79vsIa`Q;eWS%N-^_uZU zGZuhAjQkX%=ic7yuIprG=UoL(Mk@RA20zdWs;pkopCb02q zkQ6G`+ELaHzK(WHwyz62(P5ej47*|#Ow!&8<2XmunT-h|l~%t|J(`_h}TG`7fq~L7HP#(QZgyRz&T@#1wg;!_3OXP&mnY_o0v$niRPyjQS5taHg%p`ersaEO%c9+S+x>Hv-;Lpm9=m7jo)?j zz8VZ#L5{x(aqO$AW9bK4$=E!YSg6JpR(YG`cJb>9H4DbV~OKyf# z3S`Bj(&Tf*W4?=FldTeZXm29Eg^DQKXS_yEO4wkaXeQgWFo+En5{fXRsTSEO{4YJ7e|ezrOfQA6C&kSq%99??Si3NjL zT2rHi@s0e(wF2K%-aRwlAMUqgBz7zzdH~%@D~Xu-rvZV6nQLt}>Q~#r;Ki0;IV>Z? z7caLy(l{O}?&ket(i?n@&IZRKrh$s=^NIQC6aSMpD?@5k{RzSW!V1oFs50X9C*_MKI zyt(@?LgJ|{{g=Sc0TU|cfsA(X!C$h2i`Pl5Eo=)67`b0E={x`%9JIZR%@IQ_IB3=fT z#e?K=?2;@1smR1`9)R>kB6BWP^l`rH=^9s5fd|nb(kL^Kc}34l{wXRRG*^0sv45Z8 zM-t?BKL@610^W*Yh(jNRO3Ko0f#9EV;Vtn#WVLM7JOCycm;62EccsAU&wM>esE)p@ z?%SyCi>z+zY%n%^|KfhlhRXVlJkx7QW;)D9O(aR1g;)la#V536!>R7Wf%$MK4$f*n zA^3ZZQd5Ulq2Nwqfumg%YXRjHhH?UXW0&_SmmBEQxI1xNZ4-GftgJa{{mLMMzLZ?e z4yfq0SIl#lsm~f$cpug3#_n4hF{sXJfx;z3@pt`{*Xx4zpjUk4H* zG`QXcc{()S)c7Qb#ll%51n?Q6)&Gbk;_PU}N}Bs{8XO$>UA?J>)edLpbfB@xs*}+2 z00C~TanMOg3k>w4oWehxMA3QQ1zDgdxkjl_ZlIEc1is17pQx!fXhe=XLGmeyBDkP1 zey|XLY3{T311YLk!I+4ef0E@9u2Os;rMkgUh7~W=nFv63uP(nM6w2EHuI_-|a{^w- z2vrG;~DuVG*m2J;sC2FL5ZW zClv^Xe`QFgr6iy?*v&dLYU@5!p(GH@&OgQ8qt83W^LO|G`!ktsKFPmBQ1_wIigC5S z1L_=ns@tR1(UUUABahfsO)AIsl%`y3CwQVKj@YNADp87+r1C?4UMJKA4&{(Bnf-TW zt8RKDaZ06oNiI{)wd=-<)AzkGsDC|&>`o&Xry z4z=JY=tnK=DKD}%K7T*7c=~toT>0gX=$9mT;p*>8zUfKmgJIzC64libt;#ZE%rfin zGUwGY4^d@BAZA5)c;))liiFB5nV44!!>?4XUa70BYR9bV53d?ut(vQ>S;wsXhef|y zb5nWk74!P$@aw><*C8rzZpXZd8h#UV^(J0rJvnAQeRw_lYCT_Nqc~>c{_w_wtBo3! z&4!rGmf_7uSDT$GTfH$`1H)UxS6ibh+mkWdv%}jjuC|v|cGhBcHimb0u6FiRcHhVB zei+_8z1lrjdHW;g?eF2YS66R=ssv~(fqaBOMI_Lw?lH!aFoZo$;vSFcI}(d7Jo4^3 z@tuU~zD(@C!pOb~abI2aKs)w8f8@ZJcwnyj-a7WZ{m6S~;(IsML$BDwnTz=Har(${Ht{%L^+R#&hx;QR9uPm&sD5mS{n#?{@e%Q3r|L;> z?8(5$iSQ0vmSgZx?B4kvB>~7?MBtcm*?R;;o&mWZs(*SzB;KeFUQx)luXlRRm#bvT{@*P6=5VImlilIy%Rg5L z`3}P9f4Au6JKs%au`9(={%;mtq5JSfrP4hjrDD(Va=l@NYPMqU$F+9H!B{G#zE2xH z{{NdrzjsNbQtm(7o5*BW%TXTqFN;nykBhHAT5YRJ#;OcPw3Jc0yQ9%#KhF|;L)%awcz=CzyDs&*WW;b|Lk4Miv|2i#U==8Gw+ayHRkGg3KEO1 zSBi#@#v-flq$e@P!g+OQvGA!Bf_ev(*_nfd#G)&P^CT`qk)uqot_$}Z#m7Fpi6C`C zHM9I@Jv_x?`He02on-RKeuo~sNe_M<$ki5V=(w@dh=~7qENFTGc9rxlYLjv z;6tbj{|5jB8);q(eyB=F&M40D`@pQv#n6~q|Jb3jTtF3#gwX13OlGw28dR1$2dL*| zi!`SDcZ{|OA0%eqrA7V^1daF)1RY0$pyPq5s99c)DK7R&PR=QA-dTQ;SrLf^iT?+J zmROJ^J!A&a+J)lAcO@JgBwZ}fZpJsT24Yw}5l02PppzQEyBe=I26a=5 zBS442SBKh52jQwtVXsVKtw3j{z+s}mWhBRGAjhdI%b_X7j*(zjlVDeoQ9Dw7DU=EKogKm=Ti96iIGIM`1yauwbCHV4|{Qp|)hFvgD+;W=7aD zQra?6IkF-hIcOa?>FszJZFm_;&(7Qot|$g9FQYp@Gxi#@vk;4e2&>a|HfJ$TXHk@k zh@hL;bx#RNZz(BXsp~f-1^py=Zi;jHT<7o=We*Z!3Pn-Ia3d1A5XHRIwSv?wLe%YI zw5@1{3OTl9%=IW;h1>d=V111MBRM~l8#j$_1e%BkTT6!6%ZA#^h1ko7+REIqlZ$qe zj&_!gbCSZjD8+jyCU_|&`lzJ%sip;BGJ`a-gEaDjRSSX@Dgtga`HOb=@elg)PrHe} za8?+=YS(yK+~ed1i*?>W0iIeOf2b`Q4mxoPg%O@;5=NN5d-N*ibUWtrb|eXc zX8u1Aw9`yS&G`R7(AC+Qj8cBvGo5wQxhTyH4*jnB*+L=9Rww)A6ig{Xd@gBYiPX<< z-E=cczp&wD6(*5_)1aq$xlXT8BWtv%g)%{fX16lq)m{!%)g^XeZ-1JaL)NcfzM-dm zqucjYtMmM8ex0m9k3}3%6Svc7IydmY;5K2@w!}?b>sx5 z{2*T|>i!Uq8G@@eq=ZUp2!+FZpRi>)vgT%%yl3Aa(CKJB9kyjew8qZs97X zts!1xI*jjyNy?VYSs$M3-dQI;&+N8gjVs`&k+G<0YHAgO#OzbbG%cXH13OCS8XqxO zM$a439h#-9@b&YKs_l!R48^8LG&HH$B9Zwl_?`Pl51Y&oTJBq~1HQeG_t%LR2 z1JS0UF)B3UQ9|b7z`<9;qXCQ^sgmOZ{!n-ziH}-@WQ|}c()lG5EA{lFIE~ z()ea1Cy`n5?QDYiR`gO5iWGi?A81D z{P->SebP-K3uX8yIkqsSZ-azhN5GCe%*Kd<-*1uFaXobkD-50ie+m&?uiE`?n?O8$ z0%4f}Y?YP7Gb0zVWSOG~CPJ3KSheP-`|*%QiERHK4R-M*7?tcV#6mJP`^p*24^>Zf zbKQ(>89yac9g<+62VfzNH#>_nnRP*zs-XyU0-07Y1)9nOXu<)L``C$6R@uLUsD6Fk zH!~>?5{X(s@O>k8C?EfDqrBOHU#ye^$`p~BB1oZ1aa@X|S+&p3D;(DhzW1lVgx}|G z3=Cq|CqK0u%hr#BN$16r{dpM&;J^Z@;25ZQ2jm(C2%x>d7zPESjN@@_W9M1^Sz~F4 zGW8N)Oh$0pJ84oNy8Uqt)$HvVXkEvYw1b2uQ-1=qF;a)pu_o=V7K&vK14EM}A-jnW zp28REv_iBXOSq;Qe3?d~zmvLDWt??OK3VKm2f$EyKJ(b9N%4B&5C;8{=In2x@;Ka7 z&8V6tnP~Qqn;#utXH1~^QHO^<(_NB3ycJJ1iwA+O>1u9%iM>$bMlqkw0O-u1u+@5j zjn{o9s*>?Rm;A-<$oQyyC_8u2l9P=v1!?%sAdS|R?vkMJkq5JH;B=%vfqB>>`Pj0; zMrEtxsceH2+4njie2)jHEb+o7f|u&h6l{`KS~cUF=y&Qpvs5ABnhZx5f@eMbKtp5- z`oyTs;f+I)#z9zCTrdOG{_-9t29Yi!XOi%9Pe7~Ck54icE1P~1F#?> zb>yA*9?&8oj{>NkL{2NwX&$_K0CALsgBG zn@gwaa00j6!DN5NMOTPH1|opZ8KrYdd)wbqzXO5S5|Q5>UW{_cB|g?iaU}TyJIs8n z;5%cCJ7=&Y)B)8TbU6Yf4EZ>wPR@&wX-%(g#AXq!0_o~dPxq&;srCbk#H+R6LvBRQ z&L0RW{pJa}eGT<4!wwOAJuvR1t%QnvZ^AtyKI)rC9L`iv2?)3Q(V*_lh8@L7dVhDsV1d7(JVIT*95oe zBBMAOnv~}cqCu*Y36nM_N6y`aL%|%)#Oo4Sz)2H%UXHiEIhdhA&oI^BulpB&fOhAG zG^sB@3d6M>sm7n&*(=s*6#BZ7A2`RO?*TXR#41I%u-*EoyK3`3+GEbn#CVN$B?AfYd$zFkO|;F`Pg?9YBZYdPB2lMj7$~|z*6}4x--b= z1>L*_NJ1*xf*)S!$fIy@Eu(jIWq8O#_;U89zNj~-Q=6O^V2mvP@aI6twe8!O-unT% zcdWFX)q2dRZ{;s5d1T|_5uZ!2BeeA~jkpvcX|^N3SHFGqOci;Cb`qM7?3TGilqI?LkCjRIo!v!P)jWxNHsi?JN(DPj)!f zpEWcwt9<*17qG`ObZxGGYZ-ioEd?-nU#FCIGhZa0IPL4feK8Z_WmPK}$y=rKVX82N zi}+(*)4TC$yC~_rsij|rrwWFEWhKX?PvkXeo1*U7ad=Wu_F00Kk%mY!8=S0tQCWMQ zi#GXeoV%PkLMw0QEtgyx;_+Sr;{}0D4X$A=N{qi2-$7u|KqYKzqY?}}Yq|d5wKzX_ zkd;kQJRx@xI2?=*9V@0Qb|U8F)o2ru@FvzGmJJGY<`<#2{?HNF2Vw5#0R|ygQw-iZ(%9h zyeZplkX);vL@eY|gS-T5vLJxe{Q<7i04tt>?a!cGc{I1p$Ufx36_+S=JqXs?;SEibG$+f%TA7z}(Gp zlI?B_!AZZJS4=-Jy+0=jon9P?oIp{&$iMZ@2Qn)YlM^dM%vt+wLY}G+gII?m) zFk#Pm+Klo=JV@}&-Y}G6`^;l3GM{CDHKrpJR~6+rXj&zXM zkyNz=SyloOyLN1ofP$x|WV7_=9Is{X_5<0mq`TP^xLeMlZ^FWO{%IuXlo|NdH<5hQ z&mx?{LO*}pj8toy_XC+{Jt4@ABZIf(#Unv=!IYl*l&1U&h$SlP0f5Q<{Gi_@{_&CYN&J?(eW;w~U6_#qPsPPs{3PQfWRE|E zv7=!K^&+kG9QTP-HbNmsM>MI~kE<4uu-QfNd`%%xW@Y*a4(u3Va}1n~f2dsYzI2Q&IeIwHWH zS}2v)E<4W-o(Q;aF{NB&f1kYrhFF4?r{C9Ng`Kg&-pj+rujv#H05iYe-|+=D*e3=K zl(!!i0sImt2vmzJ>;z~M5*t$$33Mo~K>n$qQ>@X>_f`09^HthbRUwM_)HZcek2YB? zvshoa1N8L`NT|H_I<_`YM?bhk9{{lz!Pg3An2T@fQ$aA~R-lVSmUDD@K4F1y~XP3^Dj-&*EssupF z*b0VcjRAKVm_#a%-^Zmw>m%OhyZfp!BWr&r>gRdYinP{>i3HO0=o9%B>%>|?Vkmp9 zBR%Sgy5H$)B{ESV(xwksb*vrk>pz2~=;fG-R2{+_%oSmR>!kQSkRJnbCls=vDW3mu z?*%so&X%;NB*>l)ue8w)o{+$aNcdADQ@EVD9it`DK4W{ z6b};3GjAs$Gy-+0cgL2`hSgly)j|cjp zpQxr+H7mkOT7Z9Hg3c6eZhnc>Q6?~TmOx&lQU?%U-a+9=7bH+QVUQK!m-Pc&AI2s> zr&tRPuZ^3ly&ZZo%2ph99*^#<^RZ`E$u`pgR%SdYzYEl5)b8DHAc`ban6(X?o1k!HxDLQccZY>iFMFqyd0*(aBwNdr z_Ao}Qe|J-vRV^E$dBxySNQ6BfTi4R2x2yUA3Fy+kpfR2`Ad00RP%sm*m6Kth9|7609QU_5zpifz2Mm`#XEF~1z}=JlTA{8+C?4u$a=8Az9y!I&QuW$m`9F509jJxnpKWz zG5~qto*oH5@h3dhSA?CB!MRxGlZ;gDuhipWs*t4gb%X-n@vvWCo_UD_L`(^vG;v=qkY%IMlXYnBWR_#fl zIT>U~$?xf3QIfpgswLc7HwXNlxEN9XG;%)gpApsT5&k^1xGKG<>E_mR_KN0JgFq)6 z{M89X9}e-`rjGy8TX4w^LBM~cw+Asa7(Z(<${0?Wfu*v;*oQ_Ps-eq>{^d)kD_|^` z5*F+<&FKWI&zlzhG%PyAeLWzNcq5B)!i<6qm%RNeG25+C2?O3<8qZOF)_7vWejL=~ znC0#}fuiV3{@6a~-{+G#5$#aRdq^=%Ks0hFF8S4E%;|^tgZS~yKn8nujw%7CG54&g zo0U+1N>~78!!rA@%Mx_#6ZE#zLP*whlo5r{_Hgue>!#K~yx2@54#*40sP50ajHH-3 zo7ooYRg!`iL_b^FS3YZqruUzqy{-S(!<^Y`vdu}qRI9db2+`>DlB5+s%ey7ISxeUA z`Y5Z8Mhw%R#M^XC1ArUEDzM#UB=ho_t|3scbx4S5T9hZc6K$94^!Cy_6v z(UeW7M|w$GN<)CHZQ=`&t2Q<8qHU(_du3OeNxiIzuGegHAnC5cB)OFfyYN?_$H9n( zPYCcbLMP^B9|6>2q|d#EztjZ%qo23O%#-artSFx{&s#%qE>p%pU9Q$#A3>cl)031i zPdpiOHtEb_p$@s5TIQjS)OTKd{zl=g|YmS}tVD`s(4q@sNGqT0JM!9tX9>uVIHb zU5BCLM$6>cuN(4S`(-Z+Z7*Bvj|>PSr*TN(M{n?_71veZ6I8Egm0am@O}uwsp$E1v z!`4$W@U6rEIbIvYAReKkvN4Q8<_E40;Sq>xM9&fkwu;I1d@5izME7^YSY-HIVY7h~ zihZ%v{9@B35PA^b zwqYBaS$BKBNs?_RV7^c76x3Obc$>YWy|cp?`);Tj@n{KDzS`WhssAUewO4FP);}j~ zd-TkC^XKrsEfRWhwg2}8)VUh!bA1b}y5%=Kt$B|yFhGbrC72N_44P8u#7!Av?Rh_% zCy6{&ps)vN)nRwNMG2rM!H738@5nlLK=JS14kP-PC|L0NAFk$TdhAXDb2bNCKIs<` z<+!FDkWe$^v02_)+c4Co1FDqsHlDcudl<@2DeD$?0D8C(xHH|KP7r$V0epU7zWc#N z{{1@+)1A8QEXY#sTA0h?-dD0i%;|c7$vXk!4g&XX(Cno5G2-bGg%DQe2KD}jo%+{~ z!}r8t>;BWR)W`8Ao7fj`ZLn|ExQ?yy$GdA%6D&guQ*!%=hgE5UcnsDhqVcSf( zm|wa)N}z`Rj)A@ydFy(*zp{92Z3eXpKDRQ1nw>#>%ub`R2i@7QbybSD)x^Fd(N@k#0fR6{^9iY2ldNi#Pj0}mviegh!q-YNq`t*VLrH@YoE`V zRVZo+*ON^t+ZQ}t`&x%NG7c+6YdUu))v#?4JcRk>vD@4}lD zeR&syDCEzacm5+6zOh$yohLxkqSyZYR=Gc%9zbn7&L95!!SMX-!Q0;nIe$!1(3Tre zBRs^=4CYPv(?N2$j4uIuvyM*#w|czhQ;ggsQz#i#qx&)Mv@+-lt$WhU_jPhORbnBm z76*C-0>%%u?pwS!D7o%DlEi9xs860u0WCnejhRp|i2WTR4L`|iuVry*-vv#sFbG>I zC;thbq+ovRds?1$dsO_fgTz-5dkM466YjtVz3=^m$ou#wh63qJUzE!PtY-niI+;vj zF_$g_p!c)%LN@IHSyGLXyHGZiCWUfi)>E+fzL2oT)B@|GuW}smaJ8#SGe3- z&S(?Qa(?=?T*xNc_A$>(alK5Q#1y)Kw2oDmWcPyfe!J954faPpuSf&SYCi{mp<1Zt<#jDuUH(ojdQ&Y4?Gg}AQl3WW zJMw1A5|76N$3fC=Ezs7%$GXf81IbD}y}Y?I&J*CanJ#6;wvzACIJ!9rLguZk!Lt?r zC!!sAQ#DbPqnMEdRBQ=<4H>SXE?8n#Yb;Q3T$@G4Q$)c#Zic!h8dcT!gd0}5RwP0S&LFj9brW)BkI{G z)hnkNnLua99>-hHp>j?kRDqq76@Smh<*N$jt9SHE2Un*)NIUxpGdX=&wT$`oBV07j zSjGBnetgh6s#47?UmKz0f(m;)(Y3+=8^<@UDnq z+N3Z9H*Hd0CZ%m<_NjcR4Y@U?;Pc>)O?aL*6H(YU50j!(nm|GNb*%MwZkMhcHnz$6 zeRQgBa5cYX(CgYYvt>YN({?Ck>P7Bi_L4`dSN6oduFPkqNA=2kWFK*Lc#PMg`pENj z1z9_;cgRO|liN;NzAUBxQ&&dMX@J-%*ws;8d`irvlo&%jq?BAgEJlb*>V#zo zA3v_`9Q>wQa!cT+=4A+i%mUn2(%YTWoN^@~Pix3>{6eiavY%x+M4wD7mlHQeiadT`s zTcuMlgwnj~k3pB}h0JogX;N(l7m!?UAvZSr!k+k(3@-kMCY<4{>R*-(Fk-nGf)I)i zFVkSOUr&g)p|^f+!8pBcd=}B2r;X@BCX0EhBd}PzXxTF|6^1VQ7z{u6&m}S$4pRiK zMWdX_lXYHtFF6^wK&ft{;(5J>LQ$C#Th^=cS-&l~WrMy-HYqEGf4SHw%U#S%!O$UN zhT||#i=Q`tUQd3ER?TpN=R0v)L7b_(>>+y{l;2_sL^lb!hOJ{~)yr3ieU$TOOj}l4 z1K~h0&yD?C_h_sGCiC5m=ICHT;a4?W`x6h<)ObQ%Ggi#=QA+`M?0~TrRW_TnP(>UX zBiD>dHaAJrzzi)RGt=_?q@`mXJLzbZnj2==tkyC+lPfNTQ0GKQmlotf_;9R7nxAg@ z$_|h-XTC0c$YHFr;O5M}(~k?-?BuoIFO}6@F}6SGr1SvznT?`TLR-UVK5QrQC@!a~ z9P?0l!4oGNgIQ0mk4jphjD&tgHA+9~XcO}^W9&!Ua0aR0gFVW-=}^*iW`Ba(=+KdA zJ~vC(3FoDs^mY01jQA$A)r0e+nXck$=W@_XMnqqO|DnhZE3{^YI?y6|toVE6iqqDT>W!VY-J2q_ zl0_HLDL10yBi)2r&DA=s*2ir6x_em|8}l67B=@5J4UBP}r&P~e^pTsaComuMxS!@1 z&|o|tUn@V!CLWC})X-R`XbJEx^M^7IzJrG5C1(lU>G$CLAm7fv;&yg zRI%{}bzi&O8E8H12^>4Lx+bJZOYQe+W3kJ4ocTMYrpQ6x%d3r}4mj8sqvnkk)(I!b zcKhlO3was7L|hkA9o;UmZ!-<;4bS=F_vVLi{;O(OBp&*(;Lec8D)h!zMGF<0y9?u- zCaPrZYIE}DZ%JSvjC)*5)~ z&)h{7;<%9VXgW!-zQc$MEd4W_rBS{?Y57F9*;ng4s4><3gNBt?LrC;ax=jr54QJ%* z-jN@<4BIErD&6(BdpUQK9&pi=UbK0s_&eA}(SB8diuG^2Psc^Cv&;(48mbl)jgK)3 z9(!<)pLySobze-a>dvYIQruQ#L}bRhF$OD1wmm+ZD5SMnN*+-b${IaRYqSg%?g?)+ zB>FQ{0j4oR4{mX8F+O=Tt@y@E?H;ae^XJ!UGL@;%IUT=3fn$D%}N7^ z6&NF2;tu9(1QZ;Mi1|g+V_$e-;Y{$jMRGo_^EW|$Y(v4F&-CM87Ek=`PgecD7{~Qp z&!=bQ?R5%sz084T2|cHyyC2$qJ^%N*VHm)GH{lyhP?Fygl}tn^SxCv>Ns~`^RC>oZ zqPryE9GV1=gxc%%9k#&>+LW+TvL7l`bDKv_!YEY@z`mCCCTAlP9z#>}eb*yF!US1W z59D`xX`vi z#Du`o>xn#{RKJ`gF;DbK>Lp%J8xk=~m<^+E``QE@Rpy-Fn!Zp+IZ43v6}8#2d8412 z;uHld6;JMJv{h($_m5d>X*;kD;@=HNrKLig@aBb+cksj8Vg2ElCqix9I>AZ81(2}g z<}jgD67p+D3SBDGd@oa#&l(?QSI_I$d~O*psFxrppCE(+t9kaQl%biFht#D-ns^h9 zFAWt4k^VzGEEhlj%fB?R4~{7ktJ_ zdL}WcDiSVsTL@#FNfs5U-DTOEP)KGg-F3TqGSV(J%y&?mpzWF^|DBG^R%l9wzwCpQ zf=3~IIBd$3lKdnw*)|x;i%B3&!uTUWrzeRQ`#MbZ9i{-aCJ0VFtc1l1$X+1$aj(-LxJ(*BH1{KmvvYPKbxWBzM zob*l98Z36Fc`{S1pU-1vN2yB}&zl>NzZ?$U=gFb~tFE@@%2gY_X?4Z96m{ zH(ORYThU{rs+IVFL*sMe_3D6Y8yaBcOft#53ZOlxA%LFPI8?JXH1u6FPqcb2ih*O9 zeXIctjr^9hdNSu%2D@oil~y~}r8VD0x!B`5zpu4;t5ZAbf6;YbQBCwwzfL8gCILc` zme70ef`lfaNCyEyLKUS~0TGiBAoL z&AB*h?TfjcHEY)VXYb#Bp2W-q{Z^R8)Bn6Oy>jvUk|+0_JL55pcs!&a7ZMAnm=@lP zi30j-pWe6wznNl=2Qaf+J9@@D$u05kV01FHd*NvMX_Y z&4}$E;b%X}WxmE%zP>{tpIWw_^HNM8n`%xW@F$Qm3u!ri120XdAWyrsX0~7SU7XGaz@dTEKhU( zYb2Mj?+~3L?fAR)%mPBwXY|#{H_~unXiK+F5Llf$rAjBm?>c(-mfrkhezH`Lc{uQ9 zVWJr_X##cSm2pCSoinqXjh2~zPs6{o$n^H7oGyf9l)#drGV{Dzb0Cd*efO>YD)lBq zc$ff+DUpJMza>IRSFD}0qIg};ybcWOKkz91nfpqi^zEHmx7P#}Rc;eaWXr%5R(XL^ zzmI<8WlkaiFM#NmDCyR4shNdR*!Rl}k_OLjSUb(=u2ODrZWHLEui6ya=Mc zr)1(6jwo-bPo2#z(##ZV>tY^VUaA@L;8N1BqESKk-*PsJE=|85i-xJ|m6Ziwon!sx z=~5RTx6ds%dT!p%2-$lRiFS(m>KTn*8XNR3?HqA^GueMz!e>i9j-d14E}of~*y(y@ zFkU^=5=lAj$nqPK7Cw2A#N0fo;~DV|c?>m~L7zO_bB{7=X5MSwdh0vw)?;=cc^XL5 zF%7k!i@H>+j?@_56R~HINv-6E{vZYX8&)n>3!6(rduNjzRTs$pH1bsvfBf52<*`N#f#_)`}tpVo7($<5R8M2JZUB_;%dSI<06 zr7V=bf1>i5bu6Hqad6i;msi$WA*R%Rka~1&Dl#Mx09oU;v%Kod)uok&NkiyVp2)uswCb?q_D1~DhVjY z5?>!*ie}KMxAD*uB&PzS; zqu2_sdtl;TW}N$HRN*>HHtS$m#i!`)*hN+iX;x!)ei*0+DI7g#kcLgi&TRv=IduF> z<3;p@d{sSyRMa2+NDmSY@Q&=f(NvP5n8DgCb5i~A={(Oy{@h1k!c(o&0deY?K3(%- zgO=Wb8hX`N)WVABn)$=KY%9cB{n#T+(_z^n(^z2!w;J)Oiu~AD>E}O13gH}gi6M5L% z#{u!3_ha_bptOLyJa3UvB#)zj51-y2@?T;`Z%`3DekUo`?eW0Wy-cX%XQcjzJKfm# zztvv^c{WBgt1NKhZWpjt+LRfHf1PFBgJhc2&Z#9%6}XW~8K*ANoAQiv;|KYC3t1kY zhHad?pZ%rt#-|%q8eThm*+Zc(=NQn1)&F#NV^lW2bDY-D4xV=FEQx?Q<-jc9JaLt< zcz{AYmD2HIt^CG&2dJ9>V-rf3HRlOmcAEjs!)H`4ti%J&JT6^3B8tRpJ-9(uKsM;d zgEtbue-?7oLcm=f;Fm&N3Wajk$~*jWJM!=}u1hA5%u_R6vGZCrDR6wsP0Zk#b;``DgPiN8I|D05F`5 zgkl7MhUv|gQ9ng5AOu#}tj@95XWst-5cQf^9jrPvwzrhJ!}Cu{ql~jFBu$kHN>$Be zygG-zth;KuLu=#Ra9`x^$ob~RrNRJDUkMVOkBFl0bTK2!2ftt94ZhUC5$ zh@#w&00$bp(Oof6)aT;97NL6tQUOHAIH!F8f_p2^nSQRJT|fWq6${a(s4E}x=tGp1 zuec&64gc}9T#tL_jZjw2EYb1(d2Lv5KHaiRLQ5NlU)VRQ@KM(rLdYiM z%kLG;Q%~kPm{n4);XhmBCiGr`Rfu0LjavQ{Ub-RU|L)mmB%-S8h6{|t^6`0-rrNA->LvH^fiJtgi2?9rt{ zr81bhPzu!N%|O`}?Jt?HE1|3M$KOQh*if#Rnqy`7w=t`qZ`7hS){XDceae} zTqCJ1BwB^((eQ=b$R1FX2OUeVwfT44Vq3lbl~>ko4N@v}lD7#;mW%>E8 z9!+gXam+qgzGw7}2exykBYf$9Tftv%KfO3ptr9TTc&m*u1I=iR_-puMd#NLKcjxcP zBZ};B!L{1f+8Vt2#nzIzow_cw)MKRA0NnYxWjY9z4tY2&wbi}GV`OiPc7scG0&poC-7`AiMJSrpzhE)p(wB2J$c@eR}P^7E{Q|N1Gqc zkU|`R*!(h=Ny9Hjym)Me&?;4$dADZLaHlMw66KhMB*Qt+$CtYMMZ0k}c>7Qbl>>W0 zV@fHm&RNEPQizZ&8y2(5u+&Zxg0Rq@rtmo*4nj*Gz3OC1`^G@jk7o#?1BA$Q$aW1MKeN#4O)RHgn&Kv6vIc6_Z zBt^ZCT`9#U`Kxgs^{QOa176#*t_$|i6G*begD>^qR~U1ZeX7Am;fU}{vS!SYF)wtdVlV8)61VAInn4LpV%`xOwe&TZCb@h zeSlx`v++^23VkM%Z|Ej{8V@WP& z3;!{1b^>{uiEKvnyFyhJvHV*O0%?#+A)tm8u3BaTZw=K{2b#%~$%veCDP#*gw%%Nf zQEC0ko1E_;><47y?d2r+p<%uD3EDO9DPb21J;LM#nvj;YM#P(R6)byyjfJ=oD;&ij zz^t4n2=)g??d-wHd46dkJ$q1vORqymelNB3e10lp)XV8x>GW$#Rwn+w!_|~uIYA@M zGDlxY5#1=4zoWHkFTaML8N0|shdcvpL6D>jBWX##ha=g_OpuFe(yM#NS_ZQkp!lul zmDP!o@Y<4oQEDf@v_KI&wsTEvSG~%x1XPeTBE_q8u9uvc_^50;AM=zm$4pp}t z*wYPH;|kSpN#Svz-++42y(1PH6rE+EFDbT59X=@uMI=p0vFut_E?fg-4?~74vTp@+ z$;tNYr+xHe;xK3l1(kR7<2d!T&q!J$izfxc8u z>O2V+Q;Zk(3{Ju}k4Ip{R7W0qV>#~EgP%Dzn8|4SvA>gD1viM0k;zIFb#E7&jTy=O z7QtotGe0k%i8mK%h2QEwo=lmskSHC0bn2cxYi){QcBAu)eaBo=>c_Iri3M*u{w|gZ zZ=$JJ-oN|stN8hN@TmjP38zh8U4s><|TzTX% zrgKKN^vp0#h4mdja=q+VH5bUdzL77ZB_nh1&4aNs4Z`C{k)4?@`EF14O9va&bZ-4D zU`%|*^@)DHTK#-!u18nW;lakg)p?Vs8wYE-yl@j&8iI%$z$BQF*ux5u8IBYzq=lN< zH!vkr!fxjdvlXu3NIIukGcX}|NElGaBXe6Porp-^m1L$PYdf3$#&e^SQr`F z|6AA=v|)7e-p=>d>3cPCVOlRY?M=#_EjIcNvtKe=dDbYwg{uE|L;?wP(x6A%FiSfD zRISUaD@Hf++6Raiw|Nhk_AH|V#{qk`Hf(^ zElphI5n<-~$qj5e<#~ti4^C~`UNhWFQ%l*!N4>k0Q3hYM<1Mxm@K3MAVfdHeCMjZI z1sZKZ;)IQrMn1)Mli%n@b*smZKOY;a3p0CpZ(Mt4CfKnzbn+A}LoW`+3&_w(lwQFH?d-zJ0EtZF^YB7 zii!g--kx0)?!(HPA%9oiaih)q;MfQ>XvsN@9S-UZV6!7i;`&IYj;BkxSl%;9`miBR zfN5lrEmuVxi>i7wlKXOpF@Tr3Bpw-t|XQx&ww26{4 zreI6wKo&&UIH*=vXhAWd)~c?Wd&x@XRW;mca<*zfs+MTuPlUpS9OCXmo6lji%|3f0 zA;vbEY<^N@=30hQ0+MDh`H`{26~Q4_T`#Iqlv#fe*;xCNi1>&8$Nl<`SW(xhOc3bU&cK&4;8IAXr)^h0Q%So1UW)ZAWlFf_vmw`eUM6`O)%~% zW~Fmc@@gECU8bfcZU$F^%_w3?(TB2* zAW@pB=rQB*@(qn7+)N5hBZ=r#bOI@VeGLj^qKrsV&I)CkrnhI-2q8|FpOJ*TL;X{F zUl1?ewm;9GC%Spjp}i+B_jm#G?6mmECS}W1QX15~`GEU`z-Zh!2p~@y?FWsg_54;a z9WbwAD$#iP*-L1=EFf`vAk>xCH9cI-+oz`J$5BFrAjxWTixr+>7%sCdT@_^ak!h=@3+y=!>0UU<1wxj&?}(4Kzgsj{QB|9xdkj1Dyn$+ zl>&9N!H(al>RgoKPsf8s?H{EXi1xkWfsERl88j+W+QU>v`V^>SXgdH20dD=KA?1fe zM1d#@t*BaREEn*P-Sj#K5XIlyvO!$aQQ*}Mz3ru-{)<1?&gF7-sJQy+>$z^f@umw; zhVlw~hfPmA==Ab8BNnT2PvulR#wj zYIl?1H4ULJtE@TJ{h?Z3e;iZ@M69%U73b_EJ$FxALb|L^!Gi|+r~!BEle8dmrhs+Z z`;-^VR2D!gxqU`c1L1i%t)E^9X)MUS-j#vjw@B&dnK)H@)q$r8& zMR|M|9^|YPqK^@9~cuQobB zVP1PCaI)R}WR!-M-a#KlL)%>I(|{;>Jy^8rtEyZ zr(#?ATpz{*cSSB<5UkX^9_S>a>DveN1s<{6i&RhVaY6- z|BtnXNZU30GPGganUC!i@_rw?c0mNdN2c~iGcCG3PHm`(7!;;-0*b-OL({cXkH~6= zeTroVpiG=$8V)`SUNJ70?*vI8FTO~iT|k*~B2>)(;dtl(o@2nYZcM!g^J%ke9_kQ) zDyNOls6PCK`#`&a~Oq<_yian*Sgvkh|$<5FZEnnnESQ}rOaDib6B z{4m^}T)8V1)4y;k_EYSWHAB@HuQfm{qSxL1rwc&oA(tsa-x8&*DfeJ+%B!iZSnmg~ za8wdWUu-B@$`-%t8iY4ZiM?=fdm*r)*XCWvRkLsJ`VO<}(yobb_<@dyna|5YDVPOJ zI+Fs~7Jl*2;GRraTH8CwcxL(QUkS4H2y)Xvn=EU6uI;&9Ey>i_SY3SN#eJ{qjG+@P?%7 zxulx8Bn&>d-6fm!Z$NT8>E2I}QXsL?b`Z8_|KiDEj_T(bZB$KLqR9cV>p&n*i`(<( zK`qP_g|m$KPUHcQ*d3N-wc1;Gxl7N>p*>C~^-~|_d|&|CJ3KNxP8qoQ6^$;gHO~L0 z^gK?jdY_%ZMS|D&>@*OWUCq~wMkFBEFz1?`;kMnyuEC`0(WHw0cNAwvo7I)JgGET0 znd15n5bmjK0S?Y(L3JQYOPh(u0j942*wsF_=%NtKiQSQ(W_EEe5ML#mq|Vy6=KpK! zwgU1ZAG@f>#qMXvYm&Y{%cCJu41|xzo_q6+Fw^JZulUrB8hd{y*e3*agdS~ONLEH( zYj7q;bbmYu9f6%1F+bV93mer+43*Mn!@Hu2?>dc0j=%erVn>8F_qqH`a%}^#7mh|= zqe;VGP8Sg2aTzWno!5V~vGtd6HU)V7q)l=3#_EbALZWtL<9J<7pV$L=g-rR!{bG50 zA80LZezjag95ZAJJStq&?|)9RH;uchG<@+x%AInXH(lx`ed;yuuXt#D983Fn?LT_v zf6Z2jqy5h*CW*F8l~t)mw)X#85ukK;{qXrD$TGh z>j_!=3Ztsl>vE-vCJ&8@T4Oi(tL<(`r)Rm^pj91SBo=KAo_VWwwxQLtM%F>x*q2Y( zS^Gv9i_$D@X_%>c*D(Ie-193iwF;x8gT0xW%*!7@|6K#Z1dPg}{Q5Ida_-$_(E-B+ zSgRXGw_<|EZfabZ>rPUKzP@LAr9z#=0Vxl5TzBQ&b}Yb~;jQjpjvIql=)6{*4U`M1msC9@3LWSQ4x_2RdzX?M%zr?O$2)Tk}VGYfF*-DkSvmZTL zCYU!o?*464@OeOSOu22+;DJgfJ?4Q};)jPhYCVUmc0;Vp=k$HcA3%j#WFc%`|Z3h ziQ9d_FH7Z_`rI)SuRDT+Uv%$SC>G=O#PN96qO33qFtLth#n0tdLQVsP@Hn8B9eqgo zz)rwRc(B~Ua1Q|aMCbRTpxjUNbyIiv&ARivyYQKZpzpne3>-Ni-%{{tTE4zGT0UKz zN_VYemQ9sBxc7*$>3rs&ZDAdouxs`j{NAeBqsFUF&N$o7bzXWL zuZoVoKW5pJtFpwXDYEz4ydN5-g2WX=YgtyXivyQVhmHN#HIIvR9*yaY=e!$>iH5v$ z8JDpi_n8eJyy4!L1u0Bkvp5(>e1mxBb0-Z$51L@cWBe&Y3?85RE`o7&d7D z)$l43Qe@77f}l>*I%djwA5#WIom@8um+2|Ov4YQ3LhcKApRUTcjKkT_X7TkLKI^~% zt9(^Vg%Y~k9_-;Da105troNzVNLztJH2Mapdz5^ckl6BftiAp?Xysn5yv{HFv|w_V zb2L^_I7S$ju?HeRz(U5`ScKCG85>7ezGOXY_~Bdin%L{h*S_7&@oxtt)6bs5_9|{>H#VNlE-_k~rd&GQqGK?NP8Zmu7gl8q!1`?TsLQ zzirR{CpH1k;(ukQ2mG8G*i?YSK%;1@hIa!5? zf}af{#SaUI`PN#9a*8h5ug0uSmCPF{Bp2Ozf4HI7yD4NUx{ADHG2jvA^7NbML|9() z#IH#hmBW>eAUjgRcV10eRr(7i9X?>jk#f$#4+UzF(inZDhE!q{L>5kF@-S6E3A8OnL8NQ&!ztos6)A|03RdY)9*%)h8?>c;2% zxRulC7g=P9uE{-)5&G}w)3yg`R;&wvlwB3$zkb2;<#<5W45d!Tr?(0NJAe7xAARc@5Qf{P27D50oef>Y1xq ztqt~!)msg4&`!Gg!=TZ+eHW2ucJN2=A*X`TY&ZBCl#eimV!n5}Ss(23$h~$;>)kZZ zx=w8N=$lKY25$R&jkx*3xYf(^9_6X!@^w`7K=H}9oibf!UlA3*z!#-y+2j%arDQup5;n1r; zJ2+qdc-!>nX}U^CG)Jr>$S~czKIoq-VgDH5$l*=5hBA56<&jmebs*UqZ9q{N$M)Yg zV&^NSK@FYq@}kS#!0(#`y#BUn3vA#{2lQh_aBf%w-fwnd{reSR}L{F%DP3w6t-RVvA+xwb4sV*(JbFBS8qs!I~4?h!2%;fK_V= zjz{z{M`H~p1pv#yaO$4fmsNX~Y9<$F#-ZJeQ$@IVgveQp9H?5Dds}ha(4l10xe&SU z9)3U%$Ff8QnxKkyHbuMop^wcvUHvj$tDvK%qQt^^%HAzv-h6_}&pPQ}B~k3Rrp}IU zd6n;`5WtsCNxf_5MiI=fu=NIaX6TBN(EFEwI}J_DtqFP~+K>)5B5=>=!%sBP66k+* zM_U-XExMp6t^(8T2)ev%q&g@2DxqC77r?!DvJl6*Mw(m0Is7FPFr4^YklNI~a-=-Z zx-3pk4p$gJX7=I8WDZwZC0z^dS%Q)}t}KO1-9vrOt041IA=||$U<6X#|HL)%26dy2!lbl3nt3+?_2^DDw>!o#1;W_T}{F$-JjR1$zAL=%;`gHyLVWty9 z$p4nd1-yaK;u`L`h$=FH&ZXSD4UyW~YvIc9KMj(x%Ynra{g;t##W)_wHy)50hoYQw z9R{hRz*C58h3q&`aUiV5Ggg;NwF&pT-6FO@ba@RT|Pw!7+N{7SqDLP@AeE?G%=L^3-c53Cbg=6l~Qh?@hJ1` z*2-wI&<7#KR17;_lBa~QcNhpWG%HHR0Dqzo>y?~vZVXtXf1R**%D+h69$Qn%aiSF) zOLi%dR8XJB)#4~8S~YJHH183lEDIn8>q`4Lrwszg&Kd18!{+7(bOfRuU1ZMo%AAXZ zrLCx0n92!a(B5>^`9PsGq)@@W9*Ix?dhxsS0p+udD{~K1YHMwpom1PPVpCP3?xqt* z*ql%ml01Tv#{=+gOs zs0;uK8qHH&3Ckd`0<|z+XHX4*12Um;mvEyP!!8{wd9M~-TNOCvaRGl5 z0?G$gudIipjMr^8*4i{e!pJP_Th+beSBBB1mBGEx<{BA5CNql8Msrd5V$rsw>1e+N z7lNGH!0;?+!FPB+9;%oKvZZbD@ni$eNCl}&WU?P?LHE{nc=>ptUvX;tE&}|rqO-V* zqYersjs{w8+OENem52`n9t%>Ym#Mmkql`;|OgPgK7Qd%^u2|il|L1_8*ha4&2?>8| zYUQNkc60Iyl9X3otT6GgyRk9lNwLj%_0QCO{w>D6#)GE5Xqojx2d;5iyS7npjV&}N zGL>jt0YI&-Nf*;4bR=#2-|Q}xoWf?p#r^F!3DFz0nG8B)ujE@C?hU-%0XWHi1H)c| zVK2mJ85BCAd3iScdc2^O(#GnVU!E_vLcAn$BpxaTwZot@Q`ij6X?8iuXV$lrk+-`CV_i^ zuzM)Y%!v1Z$x3z|8nFfS`E#8*VadZ>;EUpC{}_RRN#5sJii;ND;W+$62eh2~LT4$8 zAg3|K$1WPsyz>YP1tEUiwj1Ywd)P16sSriQE{yNV7$yBmU$si;@v5LV%KxvwtV^$R zx{|CQEi=&B?_7+f%dDF7n;)_Qa4R>V^r!&z<>KU)$4>Uc08=JbX6=mron)eT_zk*z@XUIeQ~fiU zRN}dlo6>~@xGQ~Pf71i`kSl>1_0Qiw{O4Z~Ha$H4(PFENX&!G+b#XFTXgZkgxq!TFjy2LrGc zCswWuuK@ikEje#M!}oMNi`mW=vqd&TEwyFO?Wx&eh0^w-u5hdEb>vPQB@6Ysw?On} zZ1qZleyd`L@fyp`4!X%w=+VLaL&b?xKhZ*czCVH_mCKAchF|m8OA*fct=HIP{)j{5 z8u3KH3u(ryObn~>$DzzAiGRp`Sk%6bV;3D!{+kZR%_oAUdtwPB)aR_Z=-S-x9ohi~)u9rVd$fT|o;5lh`n})qCNE*wOgEc4|^V zGpjXDbOL(@uJC}{QF68R2FC0ez~g#6yhI?4L0kc3_Hy+3+7Tgrm>d0-IP7dGI;J`x zi7Rk1gGF}HmL86{<@=qE^tMFx%&U<-)k}nR+KzO5TsoZ#vYlK6E+T~(KXQuH&n52O zVh;A+CK=YJrz;4W+K2*U#$I_9@-xOidk%0dZby$)TY~ zC3?wV$Hkh#O08HfuI}pK^FbDpepy%oaC-%KK2Ck$X3E(%i*qrzxSyf@o>*cN{I8sm z*Z{)+%b2GmKlQv~)!A4+wWa@R#O9f0SlNlk0##P;7Z3nH!>d?9=N0}wtjM9CMD87l z1-}}29r@sEkuYa3qq*>B#>p%qhoM2pN~KAjyKO9?E%oN!IIjsrMv@nX*!E(wU+RcD zL6)J=Adu$hnYrDvr_%mDhht zu59+$qU@@Muzun@z2apPojUE!6T6Y(rFMZ1KsYOBXs|&;GChPDpje zw(*mz73(?H0SL3LwCOt)=F0XYIz-Y7?3i?3r>keWyJz>*00-8^nd=-XO8O}a z0aa|IUrS(huHc2(z(?G zVu7GF3E%ZUeYU}v@{U(MbE&=HXc0EFAu7Ex+Wbu{=2(0OxcFlQRTys+L1Uwo^So~h zc|T1!FDQ=AXg5=O@m+d^eQ_RbUCr?ziYDcUj2tr&HUSO#Qg4!e--c)t$BTZBx4nF~ z`{&&-{rrdHo=@fAB_fzGXps-M{IQuyCPn-sPo0fxgNaQAwW58hpz?rx+7XCS3H72~ zz1rpaswzzPFCCStF~HCl^LzMM+C4CRaE+WgDEnH&XV8Q}BeA+fnCQSqy6|H=iTmwMTy$`Xp9vV`0NQtrnN zy_^<3(zGZq^Xtla^_dIEXU)3Jmc08$yKZ7CA1;I~f3_J9wi$T9n(T}3U?uc>klO>7 zMbt*_UXl8dAuhuCN+ZYr2F_1^GY#4_)y_Zvre$QUX(S2PS_?P@a2Wfjoi1l>WYGx6 z1K!_1C8*Q?sulbGI;Z_{?37yF zCA}3>mH=C2r+U6lap$STPEqHRkhH62f3HsVGDT-34PGmTHfNMKe!DxjvWNIjoEhA$ zvv}{G$bQjZ2S9S8ThAft^>sayb>M0Sw}@WU`c#XQpP3j}{GL#;^rWca24!REgoYb`G}67sCF|WlUA#(rsWYsA9il^Zxexu?Mfy5aR7gM|&&Z zG7Feu22ny5A%C9jNthb_U}!*C|Gj9Xr79^{J}>rU)NCh73>LLCoOE)V6qsF}C7|Y2 z{$>!4!b*?;C{13fU8&NS*hFC$aApNjv9b0c-x=fh%6!KiWKf9*i&*RGQojJTb93-3 zbyKW|uaP;nh;9zXoYbedQ`n6fjPb$9+6|+9qz)oLwFe%Mt2v1e$kY8mmCCyg?OVH8 zx|6Zy@3%roG?Fl)vK~PcZ26 zorv8${+VcVW#F*r#QSf{qS1Dy76?N+(Z}@NuRSm#cz+6vvcX%x#A20`QB3ieFh2{F zSkhqy((I4`vJu@LxClejmJ@n_(oX+T=6%k9> zHi~_fGh_)%Q#SzpI*L(%TK7Ah{$B-jD60@i?wG#n2Q?cpgKQwYkXd23D#L6i3B0|Em3yf4? zT)uRzsMn%zJgR>}qCn>>7vAVQ|J#*@qY*Hivk@ZY=gP17xWW5H7Y6U)9m`$n5x5Cv zf_|4gRbJe3mT&+{crL((^+%)g3sY*y75b5XcTfco4x}1a+>Bp+Mn=GSdWt`D@ZE zm?;Lt>v-9~P~lR%bK+e#-_54I%82xwY_MRhWBT063bz%Gl?<{HapviTNxkyixztM1 z2%#g^4F|*uM(#=PXNm{4EE#uq5Sf?ZL3g%@7M%4lrCu80$()@xMXcKa7ot`2LMa>~ zU*NA3M`J4vMaLyIq}WeYgXOmv7ffE8Qlt5!#E~IDDN&8A(_Vez{}wWh7fiEkj7p%K zM4CPZS6s+At^a2$FER#Tv%;X;{k5?#cTUPQlpjrZOuXAWG@B-J+nIycZ>3r{6QZCV zcJuDR+0_uK;zD>YsLt@MM1maOtTGOjFYmv{TSPU-@kx9h7&b18KO>ioNZDA<)GwFg zQvIMP4!tC@(UEfv@Gmb%Mq0Tn% z#Pbo65A<{;i>mup7*A9sEnTm@%1Ll~S)_BXODfTiJ9LlSb3z~TUb>dV2R37af788l zcL-4gJd5FPA)Yp>MxC}egN3iynJr8pGNxcAlc7zq&tfIqRx`CfoXiWQg20bQ+yq}O zX~(p7ykwk-6fXMyvVG_06NqXv31Rn`1P=s)FYe)lyr-|VuQfYH1Jf=7NDl@GK()kC z&LJS!_7s8bc6@V|Lzq9@{8O)kX-kgS@+#kO*&z3MjWl1b0FmXgA>9o1{Lsd=`q`r) z-PGnHL3J=;mI-6bBB<86%7drZQu+Q;TRE`^0kn)<$s6x+J;p5}= z2S&mI?h$QwK5~5?v@jS~p3J@pmI8~tHc&E2Z7KXCdZE77V2YyJUWJ&rsij5`by$hH zE9hwba@$k&s(_Y{qVYxW17U$?YB~#*xaFAhdn)&tt&Cpd8drh7A`d*e&MLg-Y=81x z`;(`?2+M0U<%PMa8Lg&k+}i}sD+>dv&sqxdwgZ)}ERIJcG-;@WUa-BgG%I^p(~$Qy zEcD8|jOV%?|8eg`<@}lcAkgvrb>2=~!mYLzoa4MlXB$qF<+j8vays6?WX4wk@*MZUs66B?LL2fjpwkE^D4tat!ug< z|FBl+>ZV;}*PDAh-|KC!Zn-vfy=}_>-WYoIi}!BV{C_+@nscsh2dceTe4YQJz2WND zu*ethKJxtR9J{&`*Yx83ZvM~iFIRU{c3*t_$8$vEOx>fXb*~@_js}!czvV`DuSp<& zjo7B{mo#;MQY-j19-4YkzT5rT1o3++C-sn(WZ!fs_&wW@`n@sofF_Yi*>w%2~oHuZdOD)_q{ zdhO5hZqLvE5X`-tYsc$q|NVMhz&vcY_IEq-zds)l|BlA4F%O&m`@384@A%8Lf5*H3 z{riU?0_9l*Q6e;i2%{3&>xrBrL~aI=wXBMgC-LD)=n#@1l_XqG5*Zrv6P19y+&U5dc98iZKPJO zoQ_o0smzq%td_*=cXb>cWoRBkb}NG#>y({Qmb2ha)!8F-9`W}iW@#gHd7?a(5^_d8 zawlc8W<#vIL#QJj;NB6!8;`spe6B-P)(a16YhvC9{oKz&`R{&!Zg*yPQ}Z+G^XUuu z3w2rRBiY;f1(Wi5Yl#K3HwxDE!N+C!|EPJu#V~D0@FRL24=sP5QK0hUbq^`6Cb(YS?zp*2L8V;9z~TFPN&1 z%v;y@|09%B>|q`Hy!e{+jdw!mWb2a3&O9)-AeX(2_ZPpYHFe;q2nhVY4i2vWb#M?_ z4h|wPQ*lyRYDyM6Eh9Z8t2UvoF`>aK&Htw~H77K2Q`(7d4C1EEB46YEMt$9eV{8ZW zta^(qdkRl=P;{CS6l)2X8>fY`HF-0!+-dymncT1pcK9`Rjwm=Ph#O7d7x5I9bi&Ho zDa$(=D!N-K`PixWI;s+!Sf%dgq~+(J8{nY-f66Gp$=uJ)=KNU~FYj|_3FpsVAe;>+ zc*Z-NjZ^X@vY*Qb_>=;CZUcO70lZmt6L78=;8_4Tn*(sC0$j)dhZKNyJm7RRz%mM8 z5dkm{2bhHda3LUEFiR={!UX|N1ptg#+p^vuLl2Oi3rN=isEG$F=t1~+*C>RO` za`uxsH$~WaQTRm>_GA%wz63{^6lbOa@}h>YpQgBvmWY?Ch=-z(i=y!V zuyxj7QMKW_hnZn$7&@i9n<1q;hHf3Yk(Q8}8M?buK)R6-5QauTN+cB!5fKytk#gSe zoU_gkXRUMA+JC@a``-K6&vW0`b$v_(=#BX4^@JJqB$@PN9_d3_jO5tNv6mvJwIa8T z3XhEj-xF=Vr+T8U`obQ10-l-zUXS_R6?xs{xLuW5-L=Twb->TGiJ$8*glq5yYl(#F zh(;KQM4JkSn~MdTO8A>f_?k+1n@jmx%KBN!J+o2_v{nhRQwejBi+C#k0xlQhq=;pF zBzh_*xkK~a#p}HVdV)Bbg2jrSYZXMo@}n$sUbv-3M#hIFpu*GR!tiY**d8LNSF13W9oKI$<8SiJjT*SO15>Va`=3Z0F~-X}wmbRZm)7 za!RSqCJXL#5*MTWWwqK4A5VFt|GLE{gJIg>1j~gl6*7KrIe*jB=8#~jKXowmy!0vf z8~y1Vdtb-?coLQ1leFx(0^y9w!{0xq&$frs$hUUqZN7|&@(cw3?oJn7Z|PiYbY|n! zKl<3={I0^#ZokN|`)Ynm!@ab{H$upL*|Ze??Mndhlhfb}QlQ^9Ofoj!$Uy{Mlq88>nI%=7GrfKvDFjOvtmVmepnP{*3ssqF*>*zP;Gge+f%5 zq`qhs7LugDr7R(e9>uh$gw(ToW&C-QV2|N%`=$;vffl;aDv6brAHL@RX>HSf6UB*5 z@qJ0-Ebp32Z!W8O$zOjQmck!#b8W|yk(ZO4)pfkA!v{Xi&~_As~n(jufGTqa6J~{%>V|0*EB`Fv=QU_AthpZ)^nv(n;)& zGNyC$(s6td|lDJ;%(BvLTOcbl4*S zb6Rgv)TRx5FO#q~PA+UpAAXir1cXe^B|DzLre#@&Z!1MDCA}53Gbhkk8~Adj;r!tJ zW1+r>%*O*hX36@4%+&9=Q*SQbtB6RBcD1SC3txE;wIPW3t563zd}A!6b1b=1P8R}A zd4ctugbFJ<902KqnU6JGHM$&iX*I!|i9Q@UrTa~~yc~#H-S(lhwe+^4n@_3jnEphZ zdC>vjFMjA-&|mK)j&$LzGcKZIrBLzpCxU(+Zs1=_bP#p$ zJd>cB6DMiF81f5M%ND<>rIYn7d&#E;$~3rvYLD1lGTgmgQ#BcJl!~(^QAIB!mlhpYI=fB+v4j9NDOj>N?FEs( z*eIRfe4WVi+3dw?|ID{R6Q!X9uT1H?scpR{RFepK;bTIFAyJGs)U_zZ> zW^?~4So#U0e&~`?v>5d(9eh$Ow!SUmPcxjfnE=AE-pK-L;p9`LB)m`uTdzX=TyaQO z0*Js6gnwigm;S5o^O_y(PMjW-f`>R@u@+Slhb1*R{F(#}F#u&2!9K5|_?l&{DNRLH z%QvE=6l{Ofd z_7cO`Nt}}WQFt8tL{{`9Pl^&ri9)UN6Fl1q6x?bOq*JJQS|LtZK%N`1+*D1!&NKUQ zb~05$Jq?cG+%x-c$`t7N6MC9Ui7bhCL85s!vRJp zoa~q$_EDO&HL>s59}*oByB?W684lm2ejTpOnIOyw{*9NelTl9lj-QD@{0qac{rA~Q z!EUT3U$l?KyK6geqiwoUqi$Z(5stmC>)RzajJ)4YX0J$otmGO}6pLF$txB-I@G~^A zs`-aj(wlF>6z?Dt!obcxm7San#zS3W))5i3&aztoZ_D$HSPd?M&V-WV_f8JyXhx99 zsng%h_jyS^Zc4Z*+E>Mtixob67(cPI{Jl|2AUlcbYhg$M^8TwB>$~Nw>o>--PV^_% ziHje{V$1IzzCC80S&UZ>&c+!&{t^50?QTJTy11bo_q9a~@>V)t--+@|;5)`0wcjar z4+jh}6H^LCgpai?=cM^=^)Q{8QDU*IB-Wd1B9ATyw;lNEtKaa?NxER7_6Rf;S0UeS9vKRD4S20@>(%uoF@XQE5_~cDN%WKlK0u9@~#zf zS3`YoB03_U|NXc)H&4ujBvB+a5pR+D?Q~4kQB0y3K@225X3sqbhY&pmITHyMba6-9p9EOe1o|QN@XkxH6rMMJ=yFhVOQY|YaCd5oz zWCF3_uAWjQ8_nT>iMxp6uTx&X5`B&b-9B_wx=}yRA=q%1^{;UllMoUB8NAp?%(9R* zn8BCSf*Lm%#-8Ix#RgbzBw|m?(**?5=kc!s&7Jxq|Lu{#iRC82TG~f(BypbKohLBy z2~P1Qh7_gE5l}?Z5veCh5lkoUnnj6#lu;f@nMFw{$D#(c8c8!D0Z6NZkGwKEd<9|Z zzAH+Lxtf+=liAl2>v;(im)v8j4DFmUN$(iltFD#`SVQdL$rxeQAsX*?0ko!;=2|wTX3BQCxCrp}8VKL89RtVq1KC z-;o+hHyB?Ka9HdgVlu=B&nESzHj?z19Ew9s6o>DFM{)}*puA0>u@UqN&we(Y?WdcFTvI?( z=5P!kwk)C)UDIW1qo04s`TWXMF)4SGo^OA~FvFUFq)NBhT~xGR_FDtNcN(?uwG3(Z zsEpXW%lLx&sVo-vfMK!upcGse{-7W)uuAC-bkllHE7qvga>lXz38l?COHniF7d z3>?5cs*K=_R=!0%v+zk4%a5X0D>;8*5QNAcjo9rgM&J+_-R8k032VMb7($&BI*1#J zOKfaXg;!%c0g1A)grb2E_cc5oHjmV3OqSep#RzXUV`@DJ2A3)^x0Ss!zQ959@ndqCEP@=KNBAf9 zB>vS$1^0`hk7{xU1M8;Cxb$cqz;r;#Q6N?1~LoRYYNp9qP+;Ey+%sjZ)@H9Ltg z8pJmatHWX?z=TyU8=>PxpQSljrY` zE#*nC&^d`eZVBY_bQI||;^qtwctwj5vPaGgR&Y?7d|T=rFk?&kM`F=ogP{+EAdZdT zwgDSY^|HW2HjA6E_74B0Kz#im{;QMXe@R$Oi%F8CPsV$x%gV#6 zYfb=g259dA4+p!II)Fy8x&Jv?mDKVEe4$l8Y&&PHtP{xkGe_V?Nr=o!F)eL3ylb~) z>S&(BN5m38BzLqob=b|3GwQSe_R0GvaE8yxCwL)`Qd^ksJE!F#v`k&WZ)}s%{EK={ zyg#Z}or~87yA(H&JAK7_f0ZTfMPj`Gnxox{_rMHqP$pydej;xSu-!Mdr);48Ql}zw zv*I^@Wn+J>^^f-dPVj5qGy&f9V(9@b+k-8s9dK^}GU75HyEo+3op)?4?#1<<@_ixq zZ(!U`h-prSroKpeRNeC^5kBRcny9bZ&?Vx=U25c3I6wh23QT*`o$;ezQ4FL92ZVp% zMIkfyb(*S9LiP!3lg|gLf8hU@G6>Kgj23%qP|_P!KiKw;xOsc91I0UFUWO zS!rjVU^anCL7?3zAdZ~SeiGZ(;m{f)Gbo#Fc0kbg&nqZHH_-8f(I_~;90$#=*v4sq z=1~M`#De&DhW?X{uT2{HUOKHDP9S~S_H(Nk^Jm-LSiZw#4nJyd+?r`(5H^u^I!M@D zQYRtkbYIW<4q|kg0NZ(EqBuFaHTyTV-jaFFSHtPGmOrUMA^yk7tq&o5$bZ36ZOB9b9>-{0X&li){_%owIrHbl<+jBK)b z)0?U|G3dXbaXK>`oBtLv>kv^8R60vyGJ2~rIeItiE&!?AS*&?jWJEcz>2?VOCvI8j z>|dHP3k`p=8Q7c2*-i$1`~j4Ye3!O0r2<2%v4PZarZr$#?b&o_&WQL60u%X}Q^b7a z&UEyP##O}*df}P+JN%>_{CFXPzAVfFv||ODwXikx7XJtF+w+ASgV_Q7Me=~s@-*_Z zhuLd5xvM$3+P~Gur0=!L6;M6m=kDR01!7xWib!bkCw{28aPG!;+U;480uD&tZVBwr z#yJmEJf9-_x1eIqV+>a6iB?SY2I~|S3~c;H*G;) z2ze##hb~0sjtNT z?>^5?r~{&tfB~j>ehgM;v^-THjnO?-EYtZ62w_1hv#pOf?9*oKGbrzPEbQy;fz07M zKBmt9Jb1W7nlM#@y?hlZtMdmnTg$)on!*jg$V7ihG@OuUAvsba$s#+f+?h2~glJ?y ziqa2tMIbsq4=Y4CF$pQz5kLGy?R1=rB?Y}^WRU9>e}_cO;-)_iqDvC zRS5&7yZ=aeC9iapgOL`QR?W`y^}SIxRWOkdy~YfhT|G(hg>`KbMGAE$ zvnoO(8JqT2@gmJsbD3Q&k&IidQOC6=myhcAe)p@)N)>;f!2sZKCTm4B1_yzpa)(uG z22`k)G+;$T(q$sO0YH2*`+?xIgFip$#M;JCQ6K1Jo+`h%`B^^fZro}M_GTDzVEXH8 z7y0M(Q{7+7Pfx;w{$cQ#tf&^g9ez6dJ<*1 zl~f=FmMOwgsgdlYNl}wqPhS_Ew`Ede+RVdU0t#|lsCxFPKW;Ubm#s?XjEN>?ZJwdd zpike{2z&L@DsUKztSrz970fcc(Tx$&mGK`KjrJni4z z{jbJ``X;YJK;MbL7@U4BQK);R28P!8)z#6e^KC0DZp8Yq$ISRKp0v4%Hg|{!owEM|xYsd}H390B%=_A>z}(72+S$U!Mw7-|@i)lQMw`rd z=+RSkluUleSK&U&`kP)|_F5q32 zxY3v+twV!hqqxtP=X|2$8QhAx#HhpC`}T34{_Oi+(DO5bXU)!R?BoAta1{2_j#G&a zVQv|obN@H3nqePk{cOU-%j4_Iv)UG!q<#b?MopI4G22LPUbS4Kit|w#^atlki5j@P z3dz`jHh2YRB=hq}+U=p~`)<^4Fd^FV3-B6^RgKL*FE|7bdI^wNOm~%jJ~pI4y}I?NpcGPTC8zodff_x6}E{ z&g}qAPa$5G4=!!7!=?xg6qV2_e{FER~97{U(1lPn&%^( z%7;sn1?f&)qR9L#Wx04WBT2-upJ_6~MzcnU$4!4B`FbW^JVpHdC-GLh*LHY(T-g=M zYp5JcB#_57X||LkK37w2oWB4tj6>0s_p0a9A8SwA*l^K;ZUYYB5v`{E$U-42o~Mo` zk$|s(dTI|`OVYfABz3@vb{4KhH=YDd_e{f`cd=kt#s+#zp+Tk_^~~RNxD`!j8z}PN zti>N%JRD(J7F7W1;3^8~bj zOwuzunWU~ah!-HQV-cW=$6%k2mm|X@pVr?Ry3~l^+C)tsCmN<=Pbp4@g|Gxk^E(m` z6=#NVmnn%Viq&Efqcmw>=4ty7PLnJEu`v|go`OU1a;38uviSwdKO>Y8#$Rp`+hpEo zi)?nYXy$z&Y4*TRzM9~o%ni#dgC<)lwuU%>NaqB!j#(45GzI!co1eTvTj4u4bi^%i zQ<5qarirW%ebf9EUX8o?r)iBLuhmD-Y>ULhK%Hp?Qt$rf9dzk6!ue4t1;0@MHu5pF zch|=kk=@jy?1pOmsQS&U6&~MU)XP8o&sT|@Q1{>`E{{t-)!-f#tOvX{a3=AD4dj^m zeJ&)Cbh3?~eNYr*K}KQPPF<-r*5}MJj>J9q_wMgr!4nR;&6&Yku-Nwfr#Us?$V$b8MqkPqG~($dlvh_Nyv13 z%psnig@RCbl#3@C3N&iDo~>4)Q!bphEe8bznjiF!>>B9bp3CV8NKoK*Ne{z?uoak%=Za(bXtq1 z?cF4KEkd-b7FnNuJCe1lCK|+p{W|e+--}LgZiP-N-wxm(f*BJmsZz=y!@0#np37zd z!OME=f{_@9ztt)lc~)KDtPI94BKIz@6t0GU!H|P%|6v&%+8+)*%I+A>eI=yJ=0EXl zN6eM(J~MQv7N07PB{GJgHBnLUbr$K@Qx$u`O{<`fN;G|z{RoM_I89WWq&M^L0#4MW_2;1P zJ)^xNA#IrrA9Bj4q?@YGk?O#?HF&#J**r;id*K{eW#t5KThrt+fY@{t+JQV{-ndq> zA+c=Ivi@f7_EPaHjbAutShJ2+7urrzn~Lj35lgB;ZC5?Wk$j9lsD%6ji_m^G|Fgq948f#K-LXT64po+ zf}UZbo>5{DNzux%M?-?g5{DbK|7f-4k6xoIEP+Szjfa1Wi#52Hs@~E+-YsRs#vhNd zA8=v@7#<%vMYg)^D+_xT{30&dj_Cd^sU`@;Wl#ZOwLV(sX_9e|cU7tGB9pIfFv#dZ zwC<=PhFCmKkA;S~`aN)%5lW>>kwrO&*K9r5#+KmNK+IX9LgX`SbSVzYmEU+LPqH?y zbUNsCz~Ppa;6?u?KBxs9*C=8O_Tpm;x7;Yr1z_w~rh%`#Oy;sx^vMNrig#C)h6GKO*Lifgf52s9=HE4atth>AZ ztZ=;NsCV&z_O900!obBfc(jS=+!p45Ag5b6S5nd3 zK#mFmQiUd8AyHO`w72>wS^mO?Tjc$_w@OvD|McmO*ehxXi0rKKwD(AKvJ`dw2@7;U z+VIDxdh*T3<z~h zk4gp4YUbCLEA4GaYp}EvcZNt*=i&%q1(R!#RQY zEg2`Cq#tj9(ng@L@9La3gGan~mEBRsiP=;$4Sd4?R*fVC}Ty2pzb3-Kp99H{q z^yH(=z<*NlhgUu8){`7nJzxnG_6Zci(+4dJVa#iJH7!`|gR4q{Wtg_5>PL^P-X{Ue zy#9#Fv1udf*D#P8w>83qq{I|cYsB)$T!;_XiXIuaoB7weP@cUn@RqQA52%|pbd^R} zob^GLt<&g0vxcp+d4J^`B>4FF!_z-vjf7_6kIafBEph7-!?O}y9L%IcU~&$LAxW#U z!p*M#&P^qhlclZ%q16=cN8W8>3VQV9vB>?Nr3nMhGWVkM-{CA_9)k_v-%mi zn5Khx@rU4abUBylZ4BPF;3&c>3@AacLMLEc{)KSlN-PK$l@O1DWuXF-t*=#@)tuYD zA%KYv^Sb>yx=@ih$-;j_cynBLB)657)n0x;Ia(7UB?D3cR} zh!WQP4czW{WM?R5C+VMgV{P}Eo35yeTp0?=IqkOKrfZzFqjYYgB?3(!THKS^&k7|Nmn z&m4}jP)P`~h<^sfXV8&rm}A>MOG<0riV5!c^mWVA=Cv8~rx==Tt1vuCECH#5@wR^k zdnc717CC7s^_yhs%eRadXi;X_hcDK1Uta6 z*p9uk$^m}bE)nZIgB$39io1L~OT<3Gto2kNl8?%b1v%@<)2?v&;t`mDg z{Oj%f74b&>D7z_F{iUx)u*SQZc&2cNEtkfO-}IXyG6V^aq!(4cH<)BI$w5Dvb7&06 zU&Cc^_T|KYP#BQb^hxH|mD$viawG_L0~#trT?7{z$b(d?NONx<-+2`3?17AuK%Fc5 z;h0aTsGMZoB^Rkvm(TJ~VPvkq*q1mh4+>oqEiAuUJUOrmJx;_B7w3F^AFpcv`q*yW zHMm8{f*ud165qtdOm_=1*P(Hi`9h$z=vx0#pJpf)<@S2sgslGP#}Gmjl31#o7^ISD z(?K{=1{!rWn7bql;Bkk=qLi!)1FIczYRPl`PeQA=bw*tDmK+<`L0o4@Q;)|OARxi*qy6P#a5O+Kn~_M+XUobe12OALY}>cs*tA1r=Nx>Us4VFEEA zLq3;F19uHD=#{1K2+C!0hgYZLuFa8UZ!2f%<|5Ko#iX1-_v&%9;@cwuX%p* zijmE}Vb=aBup8ol~`)Iz` zB^9(Q7x^+qD{A8^TdI~OG-)>f&wGUic!m^NZ$CqAxC_REq z7=1kU^;G{Bs#2M4sgpp}zc{A#C9hyPP!Di%M9KQuijeAp9Y5X*lN5g~ga1qgiCtrx z$26%%W=0;6mag-YF4YgEAamb8LrN~;N1*#P(~m|g%3^rptU(I*trMi7j)`?21zkOr zuH%hGd>0k4vn8*V@%QnBD;NED zpVQrTx)zJwfaYO%)@=Cit`qe6kjxQwewWD=(EY%B&vULYYo!~r-s&29)3Q;Eh{d<1 z_eby7XMYI(JAu)Uj$SR z&wT73cUV2OOmw8<)19@K zx=6nz7xM6gPxr@G3kN=B8J*?ti5?E@!wX~|^dQegYvQr1y76ey`x-o|qFqMgFLTd3 zD&IdaQbr4W%KBo%6Yz@cuc^{qZj;xR>XcFkm1MoRqM{G z$pnf=TA81Q!Y>XdQ}M|^y?K7N)!A&DulgaxwpRj<=~(>nvCU~ZN7(yXXsgHTW0&ub zYvG;#z;7$9-hV|t4MqIDIEyU&&|=eSO<{=#^>4Opv+h+p706(g3lcJE^BGtXvMt8L zx*Jjo+{Tja@;lUAQ>gh(N~BD3xCnDLbe;${4!h{)@|x6$Wl6;A>8?Dz_743nVp8O-P)DixB{+l!CeQjYRmmG?ZkVjoP4hOeMB=E3UmP41wh0l`> zlMCX#s676+W+?ajiVCJiYLRE6%RiZC2GiBdw{UQnB(t=%p(%LE;MLEb_$cCrJ&8R9 z%8~5ailBFHZK%<6F7_-af~P70ikS;Gbv6Ystu5%9l&1Ndd5KvN*j8BDUKNj~sdatJ zyKBL+l(J7eyVTmufMO@WreG;4uyZ1CA*e9PQ17Di1k!udq!-YqOMkMq;hya|&`n9><}{R= zU&=|7SZ3xN&(@P)o}la<4sG?-H`oL{8~!I_UtkSE>+rrC>nbb!BK9{WIOu#Df9M5s z;Aa)l$@`;le?N3`S#W~;tB_xW^As57XXvXOeSYDsY1LSmyMC=asWrT=$gSx+!Z7@f ztN~(5Uu{#5mY102E`1>}$NwXKPC#M3iRhiM{Ocb=ElbeN_B`>|bB=RflMDAO8Bqltep|)%87+F`N*P70KM6}R4Pj9oBX91YwZH}FqY7u8RBeOCFL;h#xAmt`C@`4$yW&}D6sfygry_i%pHJ!j6L zli%q=7EC+D29|6X%Smo?O=f@eo*=izAsa>}l~T?v@SDIq*3G)hb{*TxNn==C0$IUq zf7=HM`}(Fz&r8M$Zb%QaTfUE2^q*Q17{gbZK`_MOjI+C~RHB4xjeOO~hxfQ%<@ztP zCwFnwyoP4o4{7+DGMBN=UnM*)LxW{U332(S`t{lU>Hom05Nsc-j1BPwDM@JXWcg-P zDZ8=~hKL0;WEl&SG5)CLphE!;;F~fFG)1+?rT}H}%lW0OgfaabuZq!Fh zekl#n5Yoslk12}m4H9b^XWG0ypm53WB+)QcNFXvP^fUw_P_JPq%udcLzf5T4!$G;b z4`kro*L;9cnZ!%zl*2jt)BL$0^$l^P{y5Y2$2GAuFF6rOPUMObFlRCV4RC8eBYaWP zoJNsL`LgkSl$#iJ2HPZu*|H8LrIdJe7T03*B!RY=RCWX01P(1ubLAh`X-r1&HHMU? zOH{u!^heWpiRu5yUW<@)nG$km(9f55rfqBZDumvP7fEwe*l}D_CCSMej(|=6!jK6SR0afqzo6Jjg6l6cGQF#S-}wh3t~)ay z6a{Tpn=CEF)hIG&D0tMNYL@f~G_M+P2_y4iOcrQJ21GL@@QNdu=jC%As3BkRYZG7T z>X!{e@lqAP)2!Rf6XIRLZv0I8Ig2$Ul4l4yO2^5HyET~aJ>77Bzo>CX0af{}hDN{h zWWuTYtDOF`&ktW3RIrd2-{6-}JPji_GEOdKirl295;)XMKEccag3o?3HCm{S2upb9r8uVF+O zE3ql*9<1Ne+WH1z&sO>hYW!|uW!LVTh-^G#Ft zd|#p4aMpLZPYgZ4PGN>8!W>eQ>HwjmAM5`ekZGq~v-Wa8&r=UsMZEicrCadVj7Uyy ziwpO&KBR)Y1A(LEnnpn%zU8_qnH!woTCZLrXhV?LTa}nb+HD?HtSMX&_u0idFO1n0 z$Gg@a;q>C=V(7@F?9hI?H{^yvD4qMw;9mkUgMMPin;MoEbNgjKr6|e6rNp{DC=!HG zj^-}9VrD}Jk9|Opx5Ky%KrVZShngu_GOdi>Ci|o7jR81KVDPl zYBdX8{qkPqyD6@#MHvTJxkIAsIUI03wg0Z*CQwaPHP!Zom?SdXL+~W^^F5ER=cBWI z%8b3*fLta*ZKxVqM!-b%teU)Do@ezioI*bPb-!?+_Lv zzL_N3crwMbhl8I?wUnms>&*Phb|BP8TB(9~H+;#NUR^v(JcIqhnGN`n=ds+J5?xAu z`wm4FWRlNPIYlE{Em(|dmkgV9N7ceEv6LX=dUReR@s=ROqhi0rHz1xLBI?y5r$&*$ z_NS4!`oyv?0@Aez28h*sI}G}|CfqXEedVJD{NXaqcpERw@r?MvbmXEyJ3&I?ZCYN? z$YsSd3qh5*6g_J-%@k{__}fS!G1LuDacLkwa}+G{AG3S@%|sEq9@_Jx+V+|x>0x-VA17HZ1)?(dw3E{zK*F=o zJb5x3#RAf*0{JC5@+As|sYBsaf><|X9zs1E&6kBBm{VEAjC~?28$G?W`8$>z!v?t+B|9D!hLuV=u z!yd^B3?Na(A^`ttSjCEAXPcXZmI2vmYuEqwsolMjZpU#EG5zO>ho zJ<3Q(-C+lCj05z5T}7N-r;coGoC>dBT4$-t6(JQFYuLL099#z+htA3cqh!pb`Mn$z zD!5E89BPJI+*uW;4|?1kYQK8X9A&W-EmIT(V_cSpTx9#gOK8DS))`f{Fw5&( zC;C`i`m`~2YEAjZvV@yT?a7Xa@uOEH^?|3GU0q)P7dtwZ+SC+_3lKCH;hxyVL4 z<8C?rT3(9Uw~{LQB2~p{E>Wdm#BHGkm$R=^Tzo0F#0fQ5W8e9rM2qI=XAxRFfY8Sg z_TZ{^vANmc34^Ty~QwxV92v4z!* zR^@=K>PgtDRV|CravLSE;pn-%s^Y=5>BQ>u0l(&zxK>7hkgbaVs$bDM8pm!T%R!0jf&q&!GDH ztI$xLYY`SP0e@n9NPZYAtXTAs&y0H}j>$FaY8^oweLvmih!0iBdSdfw5eC85H1YV+ zd~@jY^_VXFqIKhcil{P=#F6}I?|_=zaL7W>k@sR1NvNsM0iBdVgYOeQX&=7I>+d#L zr*KL`RROT-?g+|!0!0C-*(y^gRk5rAY6#+q4S=U#Eo}rL1P6rVj1q!W(@%EN4{#*% z%-;;CWnRP);x=X#yrPFz)4jl@=R2Zv!A)OppeT!Fb7}lXoh$Q4J2@E@V*Zk8?{Eai zOxn}LE3^i~8~RfAwNBX_e|f0sk#JqPK$Y26eWhFTYf8$R&>z(~$iC2KXxfkd5_KXr zY^|DJsx@(-+|%J`!3nesTwO>}T?UR69C9UO!-c%?B7eXcrQDay@_OS4V0}?cnExug zOF;AwM~i?P?atR%7!^tlTqclOTS0;IwZO<9+>R#0NPi71oLh2px6}5>i?Fn#m7qIk zDT~e3RLh%Jd|X0kyvOZRxvikQ(fI4@miGv<0kCgB_^dwxxy<4VEyAJPsKWv-D9Uiu zo*;ym=$Hvi|#%|cwQb@&7!{XS?6OF%n#q2O?asi5L6GN~evPA&NVtzW;dfMNm zUJ~9ogFxN)>^Q~+{KgA_Z1>1H3m?K@DJLvWd!i_s95%eI&@8qMyg;y zcZ|atVdsRFF+Y=mldn%TsFlQ0u)W$y@eLg0AO~SF%edGaOBs9Q)*yfzR1a?&3uoky zSU*E~K5Z%CrKQK+1e|h_jZtc-dJ(j}WCoev8W&s}|Hp+oi1z6yK}!Uv9qRq0JtKbG z%TE~Ytl^pPC^V%BVPW?)SUEwi3ezz(Iigmrho7bp=5r+jO_0 zHv!nW<8(a;>@6k(2Ue06Nf%wn=HX!TZMh#axkATfe2_BOISW^?n)mo=w7QxdxnOv* z5LXX5cIpLNmp%^?>SGdlA{w59EBZ;8envPVdcAo{fIb+P77KFW`+WITjmTb=rb^4J z=XlTZ3#~#BU8MK}2Z}WeB>kmU>b70t`>&Vf6Y4Lzc`xQmb0p=cbfXrQO(WQ4lF?&^=NkjpyjQq~w?iiwgCIE9D_T9#SKRLJH51sytQ2 ze$pOa(v5-Aut;sT7aA`}yxCmvnO=$4N{2{>8nn}*ovezP+CfjU1!RLOI;QPghH)33-cu5$S04j zHK*11FT1tgNeK5)H%9Za*2cZaRn;$aaGGlsdDm)?|L9YMsF?Z~HC!ecaV#6FRyjJx zP#YH$0n#dxfjtw~@$Y21!mYUxt*r}?!1zj@Nd53Fl+0erT9Eh0{;Mi%8B=P~NKs`PKH-%HPX*E<1ts#3My zqqX~(-pnHeeM#TYw`@=0>dNlxiUxd|Ytl=M3#as?bBQCQAD4p&_$PSCrKxj|;K&&?H%6Dz5Y<^7*MJ&ybCX%6_y z`W9N(7na@~!shaLTT#(ptFB&$m3(>Mxp=O-I9l?CKn2+H zxFKETovFe0=rJwu-+oixwJ~Nmx}`Ez$k_`%AunPHKu4xG_USW1c=VpPJJnn{Ev~i4 z#D%AfiAE@b+kRFPc~vJg%OxT2nA@TT+qEFQy^$!^j`aJXP+oei6Zpzc1~?Rue4KIL zlj5gv`8u9#!?yd+U{HwEsKV;|ZV4%CAwx^aGV1bAp*)LYk}6VQR`#Z?F2;#CmOOpl zL)=IG`mMwiI?uSY1uz3StX!-xz;^fWX2Z!e>u)+mpBT>HsPaSl+E?^20DF5Il=b z6kLYUI2O1X%i0)Il`7*o?)JTc$jL8Z-GuFXW>#hw*N5Y9BL3Z!0ntzY!`6Q=HTAw> zxM)Zt2?3JOn}#C2_ipID_o5_#NGDWLKzi@ed*~hM(nPA#iwGj3QUn1(QB=UfZ|A@F zK4v%&)5|Khf3rR2RC_Z|{Yt?Dr?S6y2r!DUGSgEQ_ z)BbKZdzXi-M0`#vmMK|db{}-hv0p4gMnM@AbKT9Vb+UP_268P;%O^Az(ut(t8* z+*SwjyjJa;I69qcQ(6Q&nx__=$tGbbH?A@PFKeNUQiaDsGh_KD#a%Yxud-M)wA+~_ z?*7KlSbRz^lJx(9ANz4+#b=mzahgq6@4K(y|7zlro6qP_+I=dC#R6(nBtaMsJ(LXV zWfJS~2%`Y;{_>H?9fD9Y8JG6?zsP2yWukFB^ZQU7`-kz1W3U(T{m}nXuvlC);PO)H zy~*Ww2zRYc!;*KiRlKR`Nc)cFKRSMEd{$qF)m7)6xk9`B8$}PAp7VLuL?=)blJ3J< zE1DVw_arZFqBTR3j8^eRdt z>lKpQ5GlDJFVZ9KTHPx9-g}VR_`^h@c8Tx6H#hm63?bvvy~01deaf*yuS$*o(vL{~R~dLg>x=NI;C?H9^yl9ofgVmlkp zrP@c1J;`IY?u{i+{C^xAYwIqtSBhqK_LknuTHWU4z$~3{gL(>ogE%LRp&R-;gJDeE zo`cMUtz>(^C^INS^+zEnT>@&r-RUP*#I3)geiqQRvH<(oBeoF7M7{E!0fc<(4hl^R z$kV(hx4O{)XH$L}ozZu*Akf!TSz-UeIIs!Cmm#+W@Ef|xm1jx!Q_$#u&O|l2D4kvy zw(4dkG*X4OcQ;I6xpP}ke5@FMvO1EFFYdv4g}h^UQ(u{3f7IC6_CP4h+!~BLi_e7#;VhZD;$tF@6wD7?Wt=*C#hE#=Bo0{g#}O z+`z^@5#JK2mL6R}A>T({6$oq0OjCOmwoAJAdpK`bN#*W(caH8Cub4d3W7C{$tZ~h? zFz(OH9Rcvjc2p`SOA5KvB3lZ61JrwA+ z|8vs+_5Gi(>aP+Du;bMK#<9>B z{!p6IX!h;n??wFCoc>*x>O;`PVgZjsqK9d0F3h4(GS3bFGF02BEt^{12We9KIZq~G zjqa1xuIVQL3-3Tq=gpB(<;cQUJf2VB9KJyMx}{fwiVT9=m0R}&rdZgl2~?S{fGkr< z+H~2KNS65nAw$h8ZOKx3>PngP)D_SNrcq{XiHvN|Vso^uHP7(lMj%54EdDn$T1O{N zouRBD&h;WnZB(z(w<(%w{K&0No}vZmh8yS92*kp|lFj%Reg9QDh`59iu&WWG7jwh7mCz$5DQV zvn&@G2e;*vSraD2%{mY=33r4WFTnijoQPi?U(po}yPFrdWSn%1-$kqqVQi#COgzJ= zSFhlzh`C_u1%t7Zr@IlJT^A}+=@#I+^p^dCgfqG_(_>Y^v)B`aJRNC+Wfe9A2{Zb4 zyC1Q10umKw)G`93HK=>&O|ZS=Wx-nNnC#OV0;&XrMbr*`Jw6s9jGNe^_O}#jz*)W- zfzp{qHQ)Lv2;pr9%I1zS-tlo>wAOl*`~W7=h?=c?2};Y23n0CF)y_86$xbP<%A10iic?UvL_ywJMI+)0D&RFy)Y8s7V=ui`?Jd1aLev*<>Bd{Qr)&wX6Mw1p0*kq|Gm~3XAeSV z)y`{(-7|eLsz#Gms&V6e2;AVblGa}r&DwcY4 z0Q^L%r`0g*IL-BV+9a}A0~^)EAy+d>ofyh3VW5UEFIBf#xI+=*Ff!*_hl8wgtZMOg z#?ZG!4Z0eu1=|oQsIu_r-iCM$U9%(%Kk&Y7H+hm)ayu6bdKU5Ptb*doCr@Wcik>9? zgAZEj4tyre@I7eCMpZ32%bwofIm;sM-il6Whli}g=~$7lP95At+_1DG^~QTQc-EtR znKC4`yMEWSWDy}V!(g06`e1oVLO76siqCj6mXH0zTsQtpLjDJseP+`QoT9NoaOi7D0mM~SO6rB-7qj&H5V{c@oRyI3vQ!0T4BZ#V zh`yV7+Va!_`QsVIwbLkCMutypL^~j|tMLBVW3iXTe2T}lRGvXdsy(B3m05(WZtm5Y;cFnP_x;qxga`*0 zrP#cU)8{a%9(F_0HqsX-iRB@rm}HGDt^I1&xE)Q|8d;LGJ-paANCjfb9UKtAM^oWP z457JfAVU1PfG$27-i|FkjPNV_Mq?BGwd`v|rdQSCT@%ezEe7#juPBOVKB|Sk_Zmin z0fB9-u_C{yx(@r8^1DY$<-9*y9GTyht4@$gqKLZNiJfDqQ*iid79i(D_lZFf%1549 z1yg)liv99v#i)f%TP{~lFdNE~Nr|a9ZTr@!oNpno`MGWcC;3{XiLpBhvch){!QB2u zbP#`h`YxD-APas@}b#^IUtJF z;rAZYB|b21zyLX=E&!NE&5il9obQk6z5{4|qk*b>Zb7D&3*K|OkfATtzXvks#7V$D z{W;?(YQyb?V%YFYldqd%h*}~dd6Lt*a(OE=d=un$ZIsS38pDi?#%aXTG?`Tj378)M$~5tTkygrPucox5X7Q-m z0U=1=Eqrd^`^(e&&Y+G!qW*DbD~s5#Ae zOE*2=dx*zMrgWU(j1Y5 zmcM05PH_49WiFh-;@h$P$mYl~gBALB++Bw1>3LNymMV%H=E;lh zozg~U($PCh^dfwaGzQDKbW1hPV_hQ5g?eqIGDJfTcwqQwLYDdN%7$yDIEtD9!Tz7_ z_}aIuc5|VxB!!Ydq5e*q0~~E_b__rNM_x+VosV*pBiG;r6l|1ywaV0-XtE&Dnu4D7 zIGBdONZP&<3J_ztdW7Mj!0;0;H$hO2bVhF;pgIoBoVgGOtoDBWYM}W@}jzX!zA6RmUe@VUd{U{PzOITg=$x z;GID^XF~8*TFGiP^a8QHXc!@$% zJf`PFBPo=rE6GK9B_Jowb15`Gg`FCOw9g*Pqe=`7C+BrFx@!c(*;g`@!HipNZ0tBN zNzhn|3(|>%)X|>wWtz-qa1Z)QJr%wQ&HZaU`qzCTl>dk6$VJU5Dw_VMCwLQ#3*;=D%wrM4~-B>6v?)hlSFQfN11^WoaX8K@Xrsw1r2!0C^_xfJMYeyD58SvW7O9GmYfLjiMV=3T} zItE)z>UZG}bFyJQHf1<9r!Xt@+NUMuZM1Iek88SGe6ue#*RFh*vq)DMXi|YE3joTz1!;NwPI#mk7EKK!pi$9a@e!bY zRLlFhp^N#FUb&?Bi&WFfFv?aNrqO3O3XD96ng(j|_M^Gh7rZaX(!*O$@5Fy|M5e)( zpxcC+$LgF!5zoj9;}FGp>}_6#07iiy(lA-^)lAeyK;LTCQ4jrVkN2#$_N+GvUA_{9G6Nn(oI{?|Bvg8!8|I#75zuSc z=AGbV_Zs+z7KVh-JiGq1HgS7hPI_hv^!r1!a6L87z*WS=H9c_m=rmINC*Zm%by6y_ zJJ9u+?U;UW+H7CiBD3(_FIgDW+HDZX#}^5uxbuk_9TXh2+hBj$98qJ5##RP@6Uh3Y zo0T5QqRXXTbJx8on$elmY&`<8XAX@hph(GThDuk6y?Nx&Ct2_W46Q`dC|EbBv9$BD zILoo9S0x)dvsN|a2@F)F?u9>`+Isn>a8Wbjou=!*5CX=T z78+al$X?W6bjIXT+a=>_`1-aH^+J~16+?(PJ%xVkK!)0re9-+2W`gn=fa4uh#sF(jD5S?_$`|a?Qk;d&6U+?WI*7mzLo?uXnji-Y= ze?#v{TMC766a_E-Bx)?~*#n?+6g4vi%T%(un**QeK`lnJ*1D;!ad1Eiyj(t+CX5!; zSThO_6ky?PmowR4_$CzCehEs=n;n$43{Kt}5~Nw!W*j#ijkr_mNk<}(oJ={frUbug@T?& z*nXm5)Fpw=cC74iC2NQliz{x>8sFmYFdnOZUku+oJ@76=iM}S<-IQ{2Fsc6@m-=nx zWrn8$rlT^8FouvTx(>h1!5hdS55u0^K%M%WTCKHJF3OBaTwRId=kHNMw2idf)(U(f zuX-LuR)_05pA75d(fGI^b>$ioH)byd-GKL(o?DnTwW z6pWgiIyrV6dDLOTKfyZTf`d8&9vDTTJfmwvoR`eP<4z}*BJM0NtGtWfNgJ5P=hl4Z z@p}1Mu8?gF&xkNu7(p5aN3Im6#BcTppU6JnqVDV@3Y2gtnb1-VJENJ>Ggl^?hLCy) zIoyNUYH9rs@VWH$XO9%o_UCrT)6W1cS7XZb`kV6~HiNn;Sg%#0j7dOV?Eau&pACTD z^BOG|UNOClQ-DIk_~2eXbx;p#4d<${ zRw@_KqGW1&OuEyO}W8RKvc^~j2z5&r(?&A2-NQoK6U zcH|S9lSMW`y`69XFC*_YO>-aqq~q|438C)H#`|wl8E>;^#Ig!<8h7JB>``dvU8;bB zt^sofb}XZ4bYxzT>)!dw5>`m(>8nEkjcr@1kFmn?6)|T>u-{*%8!SEZy^yt9@i)r{8gB%*e1Yy(`AAIn~1S)VmT4*qMk!2;(Q@ z4|c}lnUSoLczMp}Tz>RIAuDwvZ+p_&I_^)v%pIPj&=?deCrj4OKDqC!+!sr&dE2mPZ?vT20_!z#BUFTQb;v#_W7?cxB4Gx#l=F|heF?Mkzzpx zK{$oett||PluOpb%bis(rh2ETp~gVU%=b?poUJ!%P#QUi`Aw!txa?DND21QDr$~d6 zN2jiWISMP#1y&i?=SgsooG+88<3PAXn(i`}Rttkf0KMQZZk;ajkoX78vgyjI)xLEH z41ZZ|Qf|pY`SV~|I2EgMd)(T{K_=xxQ>;|TY!;46$aN~IV=N{#mYU#LXzH9j<$Em9 z`7CL~v;LzFZ8lHhzMZ>}tX8oF0rgUsJI(b?5_eUSq<&##I7Ki3s7NSf>=lH;l9+W5iATk9 z)>>+ol|OKv0q7Q5|1gTK%Fy?0tSe9PY--Bav~O-3o*7}R&(hc~slu-d+TM^9j{$LI zZ2{o7<=dkfX+r@*Oi2F0mS*awh}O%y?f>!zV+#O?<@4BZ>8K| zqs!5|W3t~CKLQ5XN(W6ce4k03q~Y@>i0ZGjA&4VDT0`O}^!$m>z(&9*RFaGYLkQNk zSH?Hn#i1BMJjzRucBCs=Wr>Z=YJK*)s`<1_Wb}bx_xA7eHVxZ3Ln%h`3>(r#`E@RE zQT0D$_o!%vCM(;FauhTGsT)AaB6wLSf?Ga-HM4ic?s}1J#|3} zk?*j8+pOQE2|pd9HTkPw^JfqO=Lt0m`ljmeIsC^<6O)L8n#o%czc&09BhKHa{`+&j zlWFqs^8a>lEI$16u$c()D{dF<&zpMYqKyU;x3M@>bpiLS93lgJ| z-Xzd<*eFb&NFD=`AYw_QNKaxc`!R{~ChTeql|qc;5w3)rB#qHG5#xouE2*4d?i{7?7RjUBi7HKCP=C@F=&X=7w1Ew4rA}PU&$C-%a?8X-YtDjc~1i zN%D+kQ$Svecdd{UeAad*Aiuk%R>UuP*6}EyVCcA3ED}D4M+6p52-ituCeOJF1{TeE z*GW~t=iT)Ki(j?W$vjS;zw-7BEZID+lY0hVAf}M3*uwP+i^&T?O@U>{-t|f!;M&0r zAja=aI*Q+yvLZ*MirY^ippVmlum%lww}uz0Wyv(`eH!J+I{-yb{8FrB7n>Og#FW%- z8Z1s?Q(0=zEOz>@-dzJ3)|W|b^hIJ39vb+{#Ud^`jr&iL?-CQ`aX1 zLpsuYT3oJEy_vew59!QpZMh?s`ex2Eq^tC#3?i!I+50li5|8?YBd|JJn zsNSy6g!Fc|w)*&`zTG?uc`|g;>K941xrMmbHzCsIpP9P(QSe^>oKIU|1=YI){d)ti zTHAsjr@lM(yf?Uc(su6|)%(+wdqW>Z9^YR~eJ_!Z17ZqCz|7cas$A?-fw<_fub;Ev z_^4rC*U^X@_!yBI91uzLqq;Cq|J7Llwl?4hf71*Br)E7p^&v8LlJIa_qcLnvdqNM9 zfD{THXaBVYp-+RLoaD!OL?tMVNO)vJ=(A&LV%)9GQRGA)_)okTlr_zT))PBUvkVx- zvAfb_bmLwiLUf^>qVpDMazVXJASoIG+wkNZCXy(PKHa=24g$MN=iX%8(Wb+K zM67>+WTK)C7g=7~jRe)b^Y(zdVON-^0Pw21J4PA`%av|;MoGYDTcyisoNq8#heTm_ z7YE{!mu&WVhZAY{S|7fWY3I1uhw1e5{C{El;Qt3~pA6Ff|9d3nB>rD#UV?Lphi&;f z!wM^Ag^6y3nf2v0&ZQd)FBP;`H1$_?@oU;nYg$gLH;w0II6Il>>M=AGXxdCVR2T;B ziJ`lNp;x6xGt<$aXy9-dj1ovgNx@7-agCOO8%-fh50qd6Ni&0G*`RV9FgXsSJUdK< z1EF>esd=47n~O$|3u($lMYv8yyiOH$o$3)MqL`P8#D~lkLq@A00t^vuI#6c~h@%?V zUI}g`MQY9h*NEX1fU%%myKsxEy^TMla=k2O}{G*{)aQsJ^z;Ifs$I>>T5DR2># zcwAI?@oKyd>io8vLbh6>x3qWTXph%NuN^iv+ ze_Xo1RuWM!!qYk6ZiKgUq9-Bxj>~=5yMDL4JgmK4^nGqCd)i66SxLA!iW6>&IoXNc zHWhX>60|b7p{IRK)c~Vx3|F)Sk^82~jugtbC{*zPwL1XyyFfJ$D9#6{=|iF84>t&= zHhBQIjG-Xg2OP2ixAOr`B@|8-K(blTg>=KUTFI(a^LCs0old9FCq7}5A@M6Q*{{=z zU*=X!msCG1u6$Zh+Mk{CI6bW@DWM=fIwK)EiQIrKiYJuE+muHdS4HbIM`-qj;rbq` z_eJXV#2IxaSw2p;?Z|d$f8@}Sd%Gi#&|T=-Q+k(t`pfS=D|eY7;h$ICdQt5#Q|CBa z@3hcFSZsBB)#LHH&-2Zo=Z8`6o#$TrGv1#Ue7>#_f4mMj-w68s{vH{v|8Fni-+t7e z{rK~}l+*2;&DRanb5Dn#Pd^!5=o(&pJh<50x6shLSlzW+*14PA{3EUIBBSXtx8rwF z&+m$-mv!S8EicZy7tV)PzKyP*zW8vqc=UVq^zY``pY0!)hd+LN{`rdx+lT-E!uDY% zy2=zCRgCr%N5{k?DNR!hPf=EtB z9J1?oH!N4{<_O-J2|9$+@s?}*{63APqy;O7UjWo6CQ_VAs`@zFX`&T_U@fzJsZDR6 z5O-(F44!<^&j6c{MZCOFI$j>bbq4pJf;J_x@Hpn^*IU|+rrajE%pLyvO2Lv|yts@J zVf9#z)N4iq-G}|Ad>S`U!OmWztdM$MToG3a^V5g_ipOfqxH0)9Ym7;GpGS(5G{nR8 z$H=<6hN=q5pZvkZ4L);HuDffOo8rg6S7@B&PWR>6!Ai5!*FtEyykZpkA~}vJn&X!V z=|Ua%f;NV5S_QgxznuuAB5q}at`QGTXE}!1IZe4G3Q^fA(xls@%7gY2o>%@p{#Lq%~9br_R&kH_vKLLb%m zkwfU?DL#7`5Isg~@&4N^%`=#umY?B-=@>nsh2k~*8Y0&%>H2f7Bv=|pPz*Pp@!grS z(BiQjOOQuUtQ3DGQAfIHIeU%0Y?TWJ2e$w|R%dAo3S{P3{brzg2FrC7lith{$Od1G z0cmJ4Z>Vxu!G9z5b(AgK)4^$hF4zn*Jv%L@uKCNrvH9eSYheeRexm&c zRg^`s+_okIILaS_ zF_h;FpySDDnPlXzZ;@njY(PS$BPZu3Fw(Cb&n8Vv(3WH!FYLSgVrN#}YQlnC&SoGI#V_l~T3Yq!w( zX3*;s)bRKHh_6>{;m<0c4_n17Cwx$LZHi^}?M6fMpME4gXZ3RQC(_)td>EI1PkJt% z-coo}lg?h#zY}9=S*b~9yzbaVM%#!!U~IoT3OVk&i`M$g-K;7#uRpOhh>`AEm}GX# z;snA}oAt6_dw;8GuyMIhj$sC1=Twm%(%B-GXXyLl`F}&-ySYCGs;jDQ{n4P}YF<~z zq51EpGI9i5oY9IzBf-!=On#xsNgC*dRa&!`oN})e~2__kH=n)N%p3>p= z{FbSmJAS>_9ZYw7J5&3k25LVF0@qy{QvEv_mO+Au9;4!OmVnHKmE-Ia65W5{AF15v zV07jbxL9x&13ayUhp(|5GDAfZ5r$`5&w?_h5aPUHci6C>668XOx!jr>EY==S(Uz?E zJi2jax9NCMS2Zd-Vi{vMF6x#i1;RvrXUg=G1{U$HP;01+F2q*qkw{?jKv>N2%*a?N zG8L=NOyLeTPx@Yn0~5I@=z6y@1CTq{yRd3lRzgNVRSx{WgII-`(K!3{7?jD?;rPwd zZP?AN7=RxRF6vI;{j>d;oa1un2 zRb61lyj(KZU6-tHoH4hq+pfLAuEAt$J;*vN8X`02K^-x@vPAK%UYovdKIzi1cv{%i zdZSXf^>Hz3>tE$~VG}nu4w5Xl zVra}%lCk<`DM1ais6DPI^f8`40m=z&#NsH#^w-B&tpy^^NCGNT(>pysYI%Nc3B1LP zF=j*qy5@u_7NVdsSy{+ig#zfvfmxUQU->HJfB#@sLp+yRFc;gE8(qdm9G_+-)$Oe@ zm}d-1N@iArsHk>!fdc6qOw$+g$NdAE0X+%x=zmFkmf(&xZFy&g=7Vw8UJr~aYKQ*7 zl(K){C2sgv9zYWxBMAPJF+Onq^z>G;9)s76QSYNV;pWnZ=d&NAx{-Ilrf(P>`<*D* zE=FL+;xo=A16dLl_qeF`(FWF%Z=d^u4R63m`+%E!Xl&nUix#qX3H(VFc-_aFrd)jc zscIp>^V2Ei`PCBy4pxO0NFEpQR!j9N!$01VbU^vG$6M)259=CtJ`&-2GpXKA?Ss{j z{HwMn=x{k>D+Pvyp%K^=O7Rhky8ZBA zJWY>+&Qg4fkNGuy7WM;oi`Fm(52VY)j`}gP;B=AdI@iC&ih#Fa1I}acPewcxZUC4r zO~^Efrl&#fHxBkFh#;YraTLvoWuL+5Ke*n9sMgGg&s?UX8xc=pm|LD+`1mPR@7tEA z(w;f9ed=3qS4@~mkG}Ju;vI(ds+J=bd=3_}1!6L=@q&&NR89wD$W|p0FTxmFuAc4) z6k1 zAO!Lk;376qlTY#WZA=e>p8#%b4{QXmYLgMd?O-V!Ag=xPF}b=v8U!zlw-3E$_6f?< ze~#0SZ~;P7-?%lO-WaG)N!!KNa0x zL9F6BB)uTy%5<0ba2Xse9;uU$(FDN26Nn`W7@4TwfCFqXn%PbzJ6t4_msGKFJ%u0z(5muR{Z&6WAa=Qvv%#=iD?q6 z5ZfqDs03s|9wI9bDYa0HJAib4gqXI2ea;o0XhFkIeIR{-P=1X12<+_KCyU1~CJ(jC zobu%&!ysBMc`v>_5$ZyMOcZAR?#m3%$`rWB1h8ZQ`<-Sd{72~%`C^@dY!fHk(}Z22 z&RY->8;Ip;+M+GQ91CGoNPl$@;6gGd{RETw$4_LS*H@F80U6u!emBTl>vl*J;EI;4 zg!|lpI)P=%7v)Gqt3B$`^IX!qo@dwfBS1{fKzP#pHV&$HKX=AmsqJUtNEcW<$6qh# z9(#d>T8|+mr;>22K|k2gr`O+99It*K>L#8>4bRm$gxEzvZ14~=k7%(lJ4mm9Q4eB$ z3L#`cU9eCmJVaX@VgrCW1I+J^AlBnE1Ql#GFOrl#slwGLD{P>rIZ$;Hq!BI_AvII7HH&QnspQ; z?hWKFmTEn?T%f-Y_^R;8oys{D6^H`+pIW+*(PfOZ#nVM)3b@KQ6;~dZEDiHo0WEA^ zah-=<5d^AvSiE>ys?Jh&6Oum)PF(uv#bn|3RDsYHj8coU7-tM%d@kAbO8rkyX}gVG z7mK}mx0*Gv>@`c$?me&^f4TEk*#`wk=zU0cKV(0-{8MAO^;E?nbI}0<&@>BZYYL7- z$$g8eC^;-F)64l!q1MtK?L~r?g2RM=6u-)a(kK|D>f~x(7PrDHaluMs(hf2!A$s(L zRvGVEODSNqA{cLhMpQj~k>@xP)2XTK7L`_RWv9<#e`O0$5=n%J9HmJjs?!u7%0GZO z0ida$@~yVgY6BlS;HXrOs?T2B2C2n0Wl?_hATvcNU9*7FAlR3s8l&P0wGEWHeQl>= zGo^p+&HHH?5Odzc+Gx*Ams5ylvV+(sQW3;l?5=?py^_141`B1Lm4M`RK|{-A4fMVu zrpfIlM9DtNNqQC1c3JO{Wo`~GtJG@n=}$}9XwW@P)LUxPi7Gfahxp!yzUn%I)5M1tiHkG%{+yD*#w)icEQTB@h8mUzEeZx)R#1Esi9Hn(a37qG z$U8Y|*q3`uw0pcEK!)y6HMMvDE-ufQO8%OKaEl27uvIuk0S&M)5GSqUY?H}GGMs`I zt<>AaO7f0^KK_v$+-I)6#r9~ZFKM2a>E9sPR^){r>3(>LcfOO3~ zsFNsx^g*Bz{W0N+28vz=0m)!+dz&;YPk*URFRM)9cRsyc_8Wm}-R5p^d-v_}#sl|w z%#ECA6u3qX6(K_j#)0^jU~TO^x861tU)E4__PV|u{7+Z8N7X%~?L{b@D)Ir(@ctJN7)E%qtNF$LsVo zp9UluaL;OL-w3P`M<^R2N=+rvA$7~F0W3wKd!Hc(v-Q{-(k)bfE?d$mThfM|B13Z7 z#$lSVDOKarv#USP>PrTUHV~0pV6D?gHE}Rd7r=8$iBTT?jsqY{MwwdLnU!CBI~@%z z&EYgupIW!`eyewdnvRLwcrj`5L?ql$d!mKRn^?5hXbN_dnoyEBhn0_v=X+0+vfz>1 zb-fCeqi5j2*14VxpP7TJm@Qm2h>(Cgnqv zZKLTDWPY-wsSsE?c+W7ox*5?*?)&M_O(I{+7^0qsznB|Zwl9=do$kfnns>tiR!Ysc z?WejuuG*4@T4cG$-=!%kF=*UfbCb}4m*W?zaezwgj8_xRC1wk_9aORW2~c zPkb6k6K|R^FD?7~ckya-#sIqnjaaqunZ5aY^6SVFyYdKK`Z7FwdCGekG}`1iyX=`B zMa}Y((`ahyGE1oRWjyQf0@Zl`oB6?hi!o^8`Wn0vKdtz5MOhe8g+f%G!jF&>bOUYV z3bXdDSR3JVbE4s;W2_ogwfVn(ld@+PM6i|0l1&7cUF)jx;F7b$GIQ%POl_@&`h~CZ zsF%vyrcY~^7i)d?>P`K%Nd1yvj!FfYN*CGjiEazA74Z5#yb8CjO_{upvGx5JvNcdgS{-gA)FfaRVm*32u|I zK3ld&f3@jIgHZ9=yM49i^d5fmpGI))^`|RL{pN`5t z-Hy%h)xdqhE_Xz{@N-0UsvOXHA0%cR{4_lQo6)9~pXf5ao_^y5$Vd~8>uMIT?>e)< z9@R}uA1Z?*O94mL8ArCF+xf?vjt`F-hmTrl_S?QZHOtCowkrsN&-!On|JRnC@o)XZ z{7mPU&p!U4(PhWe4?iegd)q5SdxkqemmaL%ru}7l_5GJA>c-;} zK|kBc@smu|G;De=_+dmf17zYb6?dGvf>7oLz)QB^6@afQ^Lq&@>(#igKd-(lr+;mE z4>w-4y7^SX3Q%C_^wV1WwDoVA-s!q#*_-QMW(3}!>W)B;{!zMJ{}z$;D*{K=h@T`6eLRo!NuNJq`%p^_1;qX*B!rKZjXO?nNUsr_p23q9_)0Ez4AK%j-H2!ojm;S zJWA{WL^w%!_Ae){v}Howap~kg{@1tQ^@0wS1z)|mPtR&TT$X39gWJi);x8v+?=HXm zsL%XeLY8f1!85Zo0MS}oIAQBLLxmX4ZFL@fZ)MB>QJA~Z4OwmJ!yR_;dmS{4TQ|l@kNwL zdyK_RW5}?5F;3Ia-ACvW<%pQSaQX(*N?x1irTyPsO|w-ZufEf7Sn$0pl`UJ#RkYwW z$YA$jInW}F#_96BU%Ob+){JKq;vJ&SuJ+la()ulMUvfzgC-i41P9Tt1sYE7PaBteO ze(C-XSm=3M?t$I+z4;2AirfDl{5pB}%&&=8l%oH~UK@wS>o!J_2baKKLgHgkr54;c zD;;&`tUOgbc^0vIEVazb-YUIfYB7&75WFwa`v%2D^JLSrPp#^G1`gK8bFE43NjewC ztXf205}t+gb^MZSYfyHa$n|5xbpVfMdUkO^RQo`5jgy)* z#Fgi!qR*a%jXFo(t1lx;GFCO$LKpDfB}OI^k8b1z1p{mP%qG^SJh9Gmvg3udnS?rC~o@L{W* zdE&KVPH6L!k!7dWz>lwP*x3rKZyjli^wd8n4pXTbfNy5S=U@j+B5k0AIbcY8vuvWc5VLT%N%!){1rFFlOb6Lq{RwRLtlP#j7n?_ zrI9A?ngdLgX%}am;K{ZA{qF5r8B<6|Uhl@yjn1_Vr?&fX@ZG%7l^Ds3{^mvBrpKul4>2W!fiB9}-PlwS? zN3du~YUW){zWSWh>(X-R4$eg@XSyWQRMx9k?a<3o3hMB!ah5tp=CLLtOHjoF^&eY%|YKgfvp1A$2&gJibz zIC)Jj#txVMrOET>PbP*tD5!&2G?;3VAU_*Ts19R4MDD-n8?8CSlucD!k#4jqTz-vQ zA6r?F{n+K}6GN8-1Jhj+QyosD-E}m8C*Jo!)H}FXOk*ykMxhc@cT}9PeC3*XgL+%P zxZ*e{FF1|sX_)EPYYN?kv?9O8Yb{$IX@l?ZYbnf}AE+~rEyZ8MF%HXy`qB1}Jz`xl zg-RwZP?=Bc-8$_Y##4Kx{`4B-mcF8RKGkz*bfiqkio>@~?Rf;=dmDn*cH1^51A9?||IiQR?gGJUG=;iYEpG zA~~wz2tGXp(-_8AB-`b9(SQz9o}+E*2Z6CdH-0ZY?ck*Lz{WC@vw;r2mMMqaIQj>A z!Xq#@a27LfyeeIhhu&0Li2Z(V-_JRHO*-^R9NySLGSz;aE5?z8CGIoGARnH|T2yby z>$p#;m(!I!J>$RzeH^nJl1f;CV^maF|7ctwPz|esy3in)g+! zpHY?Otwzd$v2AK1K2~eR^a^Ufe-{}pGS2LIe^~fbr{-yzQ!!WeOYyc>9V9*8ed#9( z<(Fv~UrjKVel)_qZ;5fye_Mo^If1m{)}Wck;hQCBT$|qx@!EQ~MhwE_4b?PtCdH4o z7q32ezuSEKM%2%Vf$1n?WUIH9Z$Ms{91m|$rSE*K!%x6#WlK3);)v+&vj@wmf?0#z zL$&nFHtXZ++hQ4{I9_?RIcL>h0gqPm4Q+P&?{55{Zxz>3`0*#jZhh=o6+;p0uxWhI zDju4lcv>AoSB<`fGVkwVy)L=>*ziu1g0TNb9~X3L(NGM>^}2;CpO7-@-h;kL? z=#HNYy#3|*nDp@XRa3IVAi3DBm%jBt=iyHWnycRh#St3gOf9&0?saUObb~!i&y}BX zIrWw>g0OnAl!!RL-z(GzvHCE*eLcF5!>c)wula=)-MQ4{e;@hMZm4+ZD+w?cFg_R0 z7)83Vb2ASvX^9)NAQQgJSE>$+W}WDpIZ|IHce5W~_HMcI+cZbYQKd@;^NvtFFvdKR z$Ge&NXGSL7f7X6_c(H_K6Kc7H$wdX0JA4%N9Gr~}$#~^!>l&+a_Ga-RRN6{rXj?te zwmDVwo6T9j@8hfTixym3Q0<WT=+TgU1z#{14i+e#=ooCaPr{OY*Y z{>L<__jgtJ4G>E&0B(R&nCTlXl9b~cG4MWkog=@+iONoSNFO%09}4MQ9D;h*y+Q1B zjxn@Ff#p{|bG}+je@RMcU{Z;Lzxx$Z_Y&xv2i~~R)hFT$|F>P76xy6-ea~j4^-G=Z z)Au$n9;~&-_!$Xlu)IKNizle1g;7;Azu-?u)1W>jG(<1~bwbB}wkO7aZl!)3OvTMZ zfXi*@N$ZdH^=u7(Q~8#Ld6qxHCe@r0`L~+=QtSRq!~?hGx=RG4638%o3Sm2DccQVj zAH?Uf@oru@--sB_j87H)QizIL!g)TZvI#e7_^)>Yyp(v-GaUB*d|2RuF+nolEX|N9 z_M)C$TO!R2*~=ZtGH;uZwtem1=a*L7%?StZ-jL2y9>4w?#06;kuRy`Asjf4zK$9m% zB_LA1d`=)yOZaI0iR=_5(zb7`xY0CTh@BJa$1Au*r9zhtBh#-J6;;^ZFtFP_tu{~$ z0AT_xq&NPwhA$;jO^hJHqIFZ0AI?T-OS{|0rFR{mZng`rN+~ainz(xmyUrVx1oAbYw2p8$6XLPkVS=^k|fP@i;Y=~pFTLLiF3MoLW zSk_g)AiirZwF^v#duu1YV;aMY!{wQd-12Xtl2WW;>$VMzhXoD18LWRifZLqKDVA!~ zFHxe%uzgKYw6v0oEwr0^u=g#*%wm+u5&9{1)P)&(i!`iEQnQK$**pO2uaB;rs=kB` zIj+bkzsbLxA*Tt!JQKp2;_+5flz~z4xv}bi&n3{YXY+$VStX#LE|3K<0*K?#=_uGi zX?)_>5WSSjCyvN?kJAP!K1|VgJTsy&fm57NQO$ks;VRVTr9{9&_mrU9QmT7WP)+0@ z!4~QQ=wkx+`Tv!UYZk(GsSa#_bV*=?De$#pHKQM3Y`DNhirCq14tH9d?p0Kro~g2? zJY;iBq^6l$8dcGK3KUK17qSJ(YQ(@(WW84u8X5~AN=>}tPr=AI2>WyCaGWgoQE-+@ zU*pK#?(uTsbLF7t?lsQ~bEmoV)ovn{@cd9?rBMSRDC5wRE|&?yg|@b^T7`1Yk%i1a zlc)+aIJ711zG3=_@kp6759^SDtAhtN51R#S&VQY_OdTNuyN91 zZt~WIZrC;~-4saT)~HNPMNrAvn~tkFXoct|YBra*1x&lK8!8QHj4RI-SjPdZwvmaJtkc?%)f4qE_cDusu;s3yWzqzM-tH8staT;MCcq!%1DI^LHRf?b_t zUYHCFjFuu(gNQf<2VJk7pV;HecIVNp5vH5>c_nuEpesR}t5+DSUK&V>GMT)| zWM8wdT(iDwtxtB^KFf*!+&6z~N_5*r@|;bIwtX@_0P@h{p*4|<*7@w|CGkEBhC#w$ zXLgUAW=)$0hHPwO3Fkm-%ov_)FIstCc6&Obu-@_&y+S{gzB`Q4Tl23Ot%}WhV^=T8 zTR;Q`nYe99yAD>#)4lzaQeIcmeyP=PT%q3JliM>^u2GLZIxxp+%5^@VeidI5jWDK5 zH=>SDzxyvq7Vr$nYTDVKHD9#{-_`;9LbOfh$a8<5$}(x6{uvN@hIROb)kq@iE|7=$ z)0sL3!SVAiDK=17NiPPYppgaG@&X|&L+W^b5V5F)x%jFaEiYcmgD1_^)58I`H3Y=z zE<3(7mBxz2^D`~xeGU*imVYz0k1QVGzjnvb!)f<%qL$WT<2VUjYmm)S^%nD$s3qr2 zN2x`-OnxgGTv7!O{%#A``FJh0h0u zBMe5r9@y(-W|#ys8Upxn??FSSAldGMg7T@q^))=SOf@vOk>_(AGA1$JL9uEUVpk&@ z-v6f_ow-8NJ)5w#)1M|mxte76 zW2NXdF`C*%?)v&%*6J!R`1r*bm!*U)J z)sucE-aIb1GAye}l8quOm6H-P9kj^3$Q~Ue98FEF1c&Zp#kb{?U{WJ zK1Z^2zp}!-=eRTw@8z87l5_jj`$n%0%@+il$30x;F^qa9V~UN3*vaAhZ}SuZMiT1M zWEG=l9>|P|zk*W*>&^bIX{oCtD*8cd%JY4zY8dgx4xof7-|FRJdd<~yCbDZ4Nr}p& z7}cxkr=T?|)K&{**9WPUuc^MeP%(R9Sr;U6?B*VY+ZNiq2X~3r%zmS5o$dL`$&qz1 zVwf&2g(A-EpP_8W}|44=Zk3|OSlim=0#4$O)lQ0y$F}AG?(`unOloCQDwVkR?>F% z+VUj}?bLkl^>& zO&-S)>&mfBd|LwEDi|bTrq*Da!-2DJUw>12CF&1%ACEe-H3UC(a9pkqbOf0OCGdWz zbz*&|tR|z-=i1jf@XH_lf@vCNg7e5yHYGcM0I5@%JP2f81aq_t8TPmDX}WLoE-kCy z_sXG(!V~Ymd%mUwkd`TluRNXU&3=7LL2f%p{um@D{Z=I*FxV@{EF?$V=1uGPNcrg6 zAMKm$;LXajK+XjHc+>1ybP(%(+#M(XMo4Jg+wk}-J8|FUGry0!AI@t!l*~<8(7LqO zb*Y)di%cFb>GX(yfqOLR}&u7-*nr_ zKl@|${L$gB&dsL@K~{ z@yATXgYx8k);^m*Mmqh4jGQaxM1PW|^bu+wEns>CJ3HDDCp=2X|IM&rhV>K22#(_U zs__qX&ynG<5!2BI02up zGDdeYn(9qug)d}9L9(NX4Eaf>a*Ur0#z7biL+dz*>-`omFo%C2I;-4G4Z*rLEoKX9Ik#MMJ(6cy(E(z@8bDkU<7OP1SiPe7@M_A$-6$bCNyI6G!?$ROd>m9MAq39Oml zFCI@SN&-T=zQfWORl2jn*qI|RpuMc2Ko#3(k3g85#Ml8)(&zmW^*1lfAo4jsWQPgQ zhAuFcfznfw4S0>g`k|^uO2ef5b|{beoJGB5udlKa=pQb z92(I0y4|h%(YIB$fcTTSD{DujGZLl5}{@?XLqe?tr}IQWrYR?!Wd3w-rHg znm9xoA$^Io+7|TL4MQLG1&jdb#@u$K&m;X;KJYmW$CtH>uJMy$%5&WZFlBL$H!aRo>G}n%@e7~UG@V?D(sgIguXa zx(~Gr4)S1QKkPtwcn)!u7}oi4(|pv&kx{^pLI@82&3&n3?8jv?lbGi#Y9i_Z_Dmib-%AFCHABIOW#chZ~w=kXBG9QYRyqNWca;jSFdBANwL3B6}1q5mud!NNJicP@ju<0h@V;xb>l4irhdtva6uOyU{sL=68V3eQ!9mP3^V%-&@w$awh-{#8Qw=9_1 zA_re%vp6UoNCVXLmVtG~bCo#e+Bqq&QqboVg3 zp5a}Z&M$McZ!xhe8^c8WE0|q_dO2#PjnvBZ=R~#c*LTP&hvv@0Ba7l|%Bnhmf8Eb4x+Ew zkTgP2&e7X1zAIMdd5KTVm*=9gJr#r;+iF!p#|86~icLg@c|N{(7(_+B{Q6j zO|~InE_t&RG5x*Oe-Brt=+Xx z?G$fy;4xMtYC}w?u(HzSuqf{L0L7C}ersd^=8(HD z^X5ruD?hK->+2Z~b^EZQ8;Ab&0Xl#?SwaWYc3su{YmB`^^O0A+>d(aTRVAcDAE-UE z@(jDplETPlyI*IjJnX~92V_mK8nq19zf0K_MZQNF|2xw#nUwe;qx9AQb5~%)^VpZ~ zVK=rp+F}{Kg@#kNjQH$`AZ{IzE~aIu__q-nG8Yf;KfBVyKhkaUpl%P#uk%G(E7{y} zi8|~3w(A+e)pfSoRjp6Qq|*I7Vr}6r+KQyo-`nxgb2H${=7B!%gQ60RLx&NK;%QNc zNKW99kN+=z)!}z18PerGx0dj)jY#gx+ngT;EoozQ@*i{D1?!PujnhksA{3i9nn)-+ zsOd8xo2Q+h3F{)A_TTIjGYfqBlO@?8R>L2uu3Xn7`?FNHbx*t@7+TI^=>PN8YiHS8 zb6uFP70wJ1Wt)EJCvED$=8p=m5JJhX^v*Ap6n2)S4widO>2p6=m=93w?Ryt!fO@gO zVq5CF0q&)7Zo)so$@gH9Q%tWG9J*89`65sA&)B1(%R5bmBOKH8s+<}c<&laXim53y zPH6L(@CU@6_0#|=TS($Y76jybwr9NHlzrZ34nu#61UDgW_MRTO)E_1#z5a5OUo)K@ zldV;L(R_I4C*rcEcQ$Szoh`-i)w>HX8yB*z;u^m`{_(iWF7ly`urKK$^y9XDM%tR< zb5Rg?J=#bHL}Qj(KzpZW4X8cMNl^J&Fp$Qoc$US{+}`OzFRo&g5cFXSa~S16>@rqs z#utQ`8t|uBPh4U;2lLw6E{egBT4lU=b%cSuHE!*!yxf+^@|XO>_)b&-B`&8$9<^9% z^+^!O$vDA@d-1+;(;t{C-@VyW0MbQipyvM|2btzO^}T719sX&w!Kv2{s) z)@3BfYg<>7v*NE}FpLgKitFNLAOR^~Sl_?i$G0fPN0b$%@^R~SZdKrtw) z!T`6usnH-Q1OQnmf+`acT?aX?x@?c9n*nNeIx0DjdD6z2*c=eR%^Qo{1q(zxKe5UH z4&_-{@JL$dZV>b;HYXt6nUe|SKb_fuD+e8;q21u{ZUUXZs8vNi?3>UU1}U$Dq&Gp; zTe>=g#s)6akPY*z7;g^#?XMEsFnK)JWF8)FoWjl(}tD(QC^PICS>(iOhSZ8F&FjQ@CS=c=NW`9Cqg#k??s;AHv%Za-f*1IY5C`3N2x; zE+LH|+MnIEPo^^f^o6OwcZ}&A&xwv+dpnI(PLC}QBzhOM3XvgL*78kNER}6g{Vjw) z%-w`b06BALe5UD_&1v*qrHdYX&yDu5HP+u6Q=hyOhB5Lo-Nk8&;|0lBL58c3Z~KCq ziH}`{2Wc?wbTz>olJJz~A&J8f&+DJgYthUbmCh>;lFlJV0^zs1YE~xCB98>R2-BMf0We0n&_3=P-W4-9BIx5ato!#3ln3`o zv&xHn4@YsoLER6Q3MSPClcXs00(t+YEJ=&J5ve~kg)ulC1mNp(lhbBhfUSkK8OLf- zlV-LlXa#}$peQcYZJ5=TU|}Eed2UF7-h(0oEb8XW&6{-%XB{21*!HsWnI>TbQPH%m z;=`?1LT_>C(W*$ff#fow=XjyGQH`yT>Z2BtS70p!;<~c~|@R`ubITWOnbAh_vL;SuL5gXdhT7(mg)0Ya@7sI6gRHkvN0$)dp zbE%Sk-<>%hXgAUE@?Zg%bD}Vfrj^_Xr>ryWrL|mM<$tRzhl)7*NwD3Qt8(#4&(_FyPUn!L!1!!;#JdUyMdLgBDI-&CZXGo~3`2?E8H8bmspM zrkjUy9IANHRFZU+!dhr^^I1CPgmm)YBZ3?6v+&Vn7yw=AXnP#W5(QE^5?%XVXOR`2 zwkYO)QpkB|o|6;g^BjO|$Fu7hr>$8#xpAc5;LTLmrJh#*&_4XzFXH#@MD|DS zJ^tA)NG{QT9xZ%F<-C2ah=8)lK(F?HD)cv^K@94IQ8f<+^`cRT2T2mScd9e3<_t$jbZkfqX4N8qZsG z&+=OhAvd}W-M4IOn3wgQ+iNi`E7FmJh=mM9@r_1#t7$H3nioP3W3v=)F{l zum2WjGT=7)TGh}%)nZhYV321^qF*tNF?zI}M&DERb)cGHoa*sN4R9_C3kCf@BrVQ6)^jiGY`2DsX)SKtJsp$(J@i#7rzju;BEiiehBW1ZpK+ z^shd@&1w4HD1MRmKmI@c2{WR2UYB0Lv;N)l#vKZ6%kg8q>Rb+fKD=j5PUn8?%O)DK z8D6`fQN;XHfACx}pO(A8<>JXZiLpOaR4erG*((G#M~eKb5!#l}<;LV1pI6epa3v6dc2&xM?ueQz)#Z+F($z4QF10izJb1 zD|@7Bysz4fV19puXCyt=?9IR&S-zg>)a;xteVNDA=SQ>w3^>^*##Y?NK3yApC1fD< z3R}gNL6gyVc=tikz=Jj}s_N9aKlA51Chz>&_?2K{P{Mw?sW3{sV4&8GKNHu{=khqm zaRTa!9k``!po+MxD*qjCk|NZu)u)kg{|D&SzZVtGDN0*F0k?GcAaz|)$|>-$&8=ABv;tC5(ZF{v~(ado)!>n}Q2rQ*&|m$pHvN;(&ef6S7s zP9K251}i61Rkm(d{LsH|qTM%n+3!cH5`bKwp#IeU(=RFxs+rW5{K@R)$BoM04=(6m z@S{_MMm2K`)Wt{9PYm-Y3eocP*)ulb8qB=Ttjsb%pV-}EDz^JmS zfq*9M+s6@=V6xhwj$fD7+(Rv|*Xg=Ks{JXC(>40HYlqSYIs}XO$zstDE)3rB{=VUr zz*rN=hE#`OS+qPL*Ab1Fujx^7Waml#-O3PzHn)yb)&nMF~2)(G*YlQPuz@C z!ttK0tsB`G-sM%|!I82z%ZKq9YrvC@3o6wvZ4BrBHn#TEO*z?J?7R7C)8lF^6PIN8 z3dWZaB4}{e0_8h-jY~`qToDs6dlMV@b z>@XePoG6Z7NaWL^Yr=dg_JbbSJ9_gsq^xReIAVj&X8qRsx9%-nbI zMlo_TYdhv9VM<|OcAH}JB!^H}JmDF7EIn!=7G4g_LM`35VnfGJX*qf({HAOt{sn$8 zy?ObaJoH@#(s^`VxrpT1R=)M)3hsaw+X{KFT3A@;G?*HxxcvN<<gc19FuIS53dF2ui|!1*6=Gax;0O zR@fjyQBmo1AMtVQ7J3T#CST?3rkrSySZnioOs)^>uy2)ozl+~br@Ye2(01BgyGX0E zxBgc4FS3@xyKO!F!$+ot3Q@!7-v_oALJnA!^cb-eWl|Z>J!2iH1ya!OmcoEc{?O;{ z4;=R2O@eDa+q(A9*uDRJo>saubw8qSR?+jr$oB&E&BB!Kt(<8lKD{R{J9C=lL#B1! zL|VS6v`7@W{u-3hEhMx~A8-$*SN>7GE$Tp5vKGuMuh(Z(qC{A{YH2Vp^dOj*)sCNG z!!ioga@tOWKiBk}GJerg8ex#o_izFp4N;ERRTO-JSCK)D?X(L13;aZiM3^hJ+viDW3=pd`TD(>^w8s&TBijPA0p3BQqVKiDj3UiAIHB~4pzfS_5j8U?bPF})S}+&^EtiY*YTf# zg&U8FGv1S>X^(IeH}gu2gu)BA8GWlEM#l1W%C2=g*v{`p!K$O`O9$|Q`^~x-P5@=n z{EgQCmhJbdcI)2~*hX2q&$Bwk(mVb6KSNAyL^;#sK}yof%m+ID1oI?rD1m5N*-ilS z%+bzZAbQ_8HAEao1;V|KNhyn4;P=Wb5T6=GN@k2+-fy(D?bP*~gm%dy(ll4uy@B9i zoA{o3A@#_li=h@`{JP&-m%~~dr&>Fd z<3J%olNT~OGd?T$htKD)ao2};hZr51kpV}(@7%Zformh83uD7aJwNgD^=^!(t=26I zKBMzL!?z0ygX#QkT2UGgFeVz!z)Qe!na(swDl`MxBDbb_b)vKlsq!$@*}7vFKAoYL`ns?!PynGxmt_44$VmklLQbrjWUxStA>$En+$HT*gFeOf4rV1n9?6C?zXhOjaKrI*y_E^42>g z&L=)5_#b$DzUBS*NW+c96V5kSlPT?A3k@KUbFE4V8r>rBfa6Pi4{%v3Q9!oKzd(Tz zMH#H3wM+wh)|O6~8Q$hECFNu7^T7bO#lW8X3c=}cmzpKo^cGpAC_T&_Lr#7~WvU&I z2EH2w@ez3gX9!sqP3aeRcs2N+YIdq5ys}hMbQbitA=yS0`M^ZdAA}7>I=n1;`BCrl z!`FSSe!?_HjV+S%6fTQCoEZP_Se7qvlu7Y>QNE^qbo+f;r8@0wO81Pdav@Xweu$t2 z7!U-c$H?QjS;N6KtKT|dkx?j2fe!eg&w2bQi6;uSMtL%3+uy;W?}~U}v#D9H-iz0d zKkQQ3rZY5?qABj8{)n};@j5|;j*ppda#5kB-(%7R*4ts5-%Fb;6Jj`9;)4`<*1Izl&gXV+MLw&;C*y1KVzA@Xz0 z__$&edK7`V#VFpeCIJngg{S;&{@s9)WO7h|S$NCl zko$REQt!3ewTOlLz5ufNJT9!SMfcH$s;=h9*0^G|NMU3YIsRce?OT^MS!~_@;1Wx( zz}5ixZHV!3mb8&9qIP*wT$E$;(Feb>t%X*q}I5RcG&`=%yVsH>X>k0D>3rls2SGR87w`h zl1>1yDonycNzw~Y;t~~=O!14+2NP;+LgiR1vyesC)*dq+-2z6c92 zL*OnRe5Df{PGDUi{+{YEoXavq)T+$DI1~ZcwXTON^AFeH%26VyqeECZJvl^R{{>e% zeu`WVS7wZ2d*990xOdyZ-)R@*gv12*G_rFq8Gl4 z)!P;7ftkU`L8D}+&94wLqYG5gPJbc~;{O(ue!ldc}14jVUht8kf4VcH7 z=2~NB8`kvtYJ<~Zr^>Y(N?n7!;RyDF6#?Q{SLXA;niK3T$ zht_>PeB;ZVY3pRh$zjx&JjaP`hGY;RPjqmj zkc46n@Eh}nx4i5Id8T&A2K@AugRE{J{yd!iW9skWOY9p2_G2n@4{II-Fgz1pxiXI+ zE+HUP#9Be+88=Y6-j)La{M#B0H?Bcg(GcYX_=}5tM-;$OxKh-%;82g;BV|Hi{E@Kv*z3mZv< zNq4|khzC{Ame|@Azu?&SqYF22paSZ3Rf?BC^@XyHl96?su4qFO=;U%bLwORd&>T!-s-`T`V-TI|;3) z?dzGlemKq%t3Ra~T4LOsZgHv9N_1TII?s=1UwyY&R-Qvn2+phyI5Xu?>U$*H2`YKU zvxbJs^Wl3?^LrC?p7sgWPQ~u9VH@r}EaDtSitt~o1ua}MEa{meDs#ZLq48&5o?I8v z{M2b5dt#6O_HT*`5q!GDIZqX5f3tblba51d+h_7ekCxVmsMw(KFg?>x;LB`&`b`(z zYtRu3eQ1?ZL1|{nvM%2sx3O4#{n! zegilYT90ZKhj&vIzO+hyBWnI2cC*%U+0}9(Xoz-M!<$&?(FN`)#lLgy2EgyR!_Z*} z@ioBu>EX4!6M0kpJ|Cg}g%twzFpnnO=^)0g{S~A;0bouFpDNRrKw_tKOgJvc>#243 zJD749S%I~kECe9TF*s)bguvGg-bm>vL5QU~%Wr^56uQLUAeiN>dTX(6i=`CDLLtn9 zN;NiXNX<2@)lJ9@hAQ6CQyosWVIpfgraC8<4(3JZ<2a`Z0ZUI&^DzF=s140+kYbI| z)$7uz^Uz9$rP|lFweSY>|dNcEdQUl!M7!kFAe`u}Fkc3PS#T92>e6hV@ zdepBUjCpv!R1srouRc}Nm;P9ltH6;t0bp>M$gH2p9N6z|3<0-TT?8__$w~G(5iIKo z3HdKr%BU<2I93W3`W+2dwP0Rv$ubvF%VB3iVBz-1C?IkNb!Zdm8cY(Bdp@W9rhzkF;lI>`PRL&DR}aMQArb zAO3RZIx!lf#DWWBG7dV&XTIwZ+T(!EWL;6z?dres4NUnKi+7GosUevp#u+#VMtr~6 za`X;X@>2YZB;;#jFdao3pP-Nf7Byt813)_oN!iXyIY3kvCUgb2SXcwtmf>3qLKx!& zcBskIov6M6>DLLc78ydoGdm?mjwwFrgR-<&@o7KUuXLQ|&6}{V6QOlzHJN^BHyR3_ zgJR&pp&j)ePr+VjKgI5I&aM5VL$k@=ubhqPmY)Lr`sq3uDXr$(-$7=@@;J*ME{W>D zd!A2(0we^nnS>D*K{#s-(XGvqqHqQYX(S{)0#In0SDyjYgUdBCwzF>DRQ$7Jl$6A7 zjOIVY4K&X40>(Tn8SOIE0r&L4BTcVgb3);uxlQ4LtS^F@XqoD4Exw@Fmstk&(@=Whcq7b(q*I~{O( zvzIRg*gQr_5k$dXP}k}C@Y5maabglPKQvGSI=ls)*}`Yv%vQM!j64DG zNhUL_y||(Et4r&b`YN2mY8zxH!ULmi8WUt%KEu{?{(Yy)j$=&-4|)_*%sx=yQ){0G z*^+6W0FS8R;8;nE;6~2Df{y15Tr=ZeICSOiava3QRwOegZ?#1HzGgOX`y$81mdH~7 z2pb&}TSza{XLS4LDZpjWEEGaUo?4tfmZ)Q?MIdS- z#$RGtYlmkao*AAqkiPNR(7u+J9}jb0a6ZPwM4N zC>Ouro_=nZ&s0WC_~r^7L|6X1SUHJ?#tc9whzfHA7-JYrkTRJ*LCdPm3pQ{)q5ct8 zJ9_@AUL~18UQ#B-$VAXM%5l(Y6~04js4sz~j3}GwW4wAeAGO_f_Hb@~UG80`Oy)8)qZ+;VV(_rqqj9naF-Di7bb*DW^=DL9XYBQEppndq7qMPddidLlO$z2*k7RY_|$2DTBEv#%mF-_mzpt(2Xak zo5RX%B1h!}*n~NMs2?herda)MHj{Sq%|-sGH**DlSG39S6RLhiEUntUYtERDK*ZQv z`W-WHUi|pv^PheTk7C>43m%7kU8;eXw?^g4uiZZ1+L-(<*)rM+RA-!bE9FpktUQ>7 zGMQ2}(MyFiP@y@+6|USl`i(qO@HzVdeF^FwyXW_5IgX=$MX2Pq4%1Qu-QIbzH4)N$7=KJTtQz zjVCgP{%(2cdM!=3brltV$*Qz{ZRAqhWU|Gi-AJ)eM8Z8H<+dxV?DstinstJZ`@!sa z8aME3O^C%KRE^K$sO^U;54MHKP!l(!hYQQ_^pE9eD5drk)X_wpLe;@L>Y8@{R__iS zWj!S7zmn=2B0AenmnsfC|IRU@+vO5VePJidbP%9(frT0O<6Z8RBEJMuw(xE2=>mS* zRtLc&_1RoSwmz7^a)Jd*dVXlp>z=6jJWMd@y8>ii`21M-@(H@*kHxJ98uGD#w1!`U z9AE~T4v;_lQ4ny6n;W~{IQ>O(`M-CcI{wYAZiUaFp)=^7-ynFu+h=RDvzCJ-v?n02 zpwEWCis_0~EyR9dcB3U$AYQ~fFht}%;nFpucgV7gT?7%A%v~NOkM5{# zkO`a6`4|_gbj@QZzls|YcId0Zey-j9_bJWKgiTPfz^@+Ou$+gAFd3&oiD<>}||c=2dO*qt`t+txSC~dA)LcviKvXM6&z` zw{HqZ?0z%ODKT?e@yV0nz3pG1mB0_h&SA)r+J_4j0pQvq5L9L1c!X7f&3EXhkZ90anJNv0j+lQe((%m^F)%r zD))8MfZZD=jtVk;c3A)C4R@SQBOFad7#H-pfwq>7L1%W3y1m@?)>zGgI-B^Mkh_(U zGa*gYS6EvuJxdpz>7LI;CV>ZApwW=)=~?=gR>L*E?P@}X0GPh<0EojVIN{BW^Tsd5 zV#s~vtEG#t66Amt0AWd4Km#Ve*I8*#KkSkkZzR0v=-+7k|q8ZMeE`2u7b( zG#EevN1w>cL*24xeW7-Gw|CilSl)eLRiJ2ew#*| z2DLVn1AmRq5=hVhaUpyeM5#DLWQGC?dCf)6&7!A#vON&n!ZaCb0S&GZ5R#V3d-}Dy z-=CX7U~Y@aHN}JJV!~4JSwT})2@Bm>>VrP)sUBn_YJHYE#O_+; zLZ;e8Iy}s!o*xirqZpM=jiu^Gkq~2BU>c*bA%Y_#XB2vjh5N`X#_0tjW>L&0D$uCvw?~jR-;8CTFKgv9ShJB*-XbNm)IJLZ zRJ3v&$e&1(M8#l54$|;any73KiFGL z{^dD;#omgil((vFm*>MHdv8e{T+{qL!u2aj<@y_)LcxXACuZL>6)bFn^aNZ5?xN#r zm~{QGQfWe2#;V0>_gF!yYm4~rhHP;|LFNovPp*US-z5tMUA6f2tU zUrbqh-r3*RRq!!9EalbuQUAby@S~{wl=WT3fuW}bM{#W_8;6kt4`0JSCC#R6o^%d8 z`c&{K^&sW-pQC~Q{=tul(A2XnMx{X-d*N}0TvHr6@mjS6pdm+Pd&dX=Hv#D=YyN2d36@INcNPVaCY3S)y zwm6CU==}^Taj{SNgmZUnUjmZsSK>u7S{Y-s9AJ6QU<7E@_Pl4KL|beM0kugzLKsit zl=>dWk0v}qpn|nm+N=Pog;WGz@WWTuxcI>)&u$xU!&e7q-z!UT7ZQ|oHnSfmjz~T_ z;_b$PH@&{m=rjX9Ovam6SCUjEy*^7wk1;7?Ku|{6uS)oOmO;s1PlLQZ-C{lz)w`6# zl_UJ6@!SIzi=tn>VvoO_ku3j0{JWkGL-pSGzI^odGP}zIZvscs0Paf9ljI%dt3Reb z9ULeTfON$J^o;NK!jSdv4?omS3fO7ea$A3TQ~v#ae_{Ca?}MBPDEccXc=#xc{o60? zJ13uBwn1b8L{Va*QaS(-oErTyo(V#1dwKP89|QnNr|W=>EAa+RM4s;C_Lsz%Z$OX@ z7YINSfsoXS6Fnz^BIW4Kq7w$WKNf0|53v9EYobm!NcDw$eNXJCFVU zTFP_E|FhGGvzcwvVK%8y%S1Y231E=`G>ZipMFI`N0R~|J z{Se^)@CX7J^?bnE?yTw_>=<`8j1yGNibd%HN<~{#MGK>$W}vNTqbK8pll0J+@-q0} zg_H2o74^^-ao0k-YM`Ao&~_SVYb~^;Ci4mSrUUSQ6WVkwtoyCZ`rRpZPv;w4-1r&yhf zwUG?5kPW&hA7ri=dJz+Dr5t3d=H;NR>uIjyWvN22R`IdL__<;HL$LnQS^;tTe$kd* zp)M}LKAv#_UU4B_;bCr$;T{%It`}mQHDjIC;@#8}JhhTM&tLY|zT&Hs?yr**sCg$; zwkuqvCQ7U158oxUywf~f(>7AwI$qsAQ{B0EtK(&5 z*LLN-{oD87H#~gbOg-!zd*45Q_;~qfWc7G*{djuk+ro#RtH-~0zW)61_4~n>6Z$Ki zFFIDnN`S~ zdwaf)HHhs{A3+%{_X!N1!a0(&Q0j%E8#8@$>j_~rPY8;YM5zW$lmq>^nw+r~Od!Pm z`0QwfUCW1g!naWO9wGx&*kZ7I`=0L%!bgIYUN@#0p7n7lpmV(9=E?UBdP;Y9wB~;~ z4yqx_0afj8mg39|Q`krSj09AzCrO#fw{vD_AZUQ`X}Pe~@Zje+QzHF7)KF|KZVK5R zs(_h9cDp0j`wL!mAo+(=&VCn0U>v{vFULVC;YJ+3t;zYR&)cwo2axCrKg7$u`DVv? z3|V65n;OGqMkCrL38ubJNah~rJ14Z{7+jme&`}5GIO>?diNFw|+p_7@NgU$Z9&rL? z2xDZmR@!@OcNJpR!_IKBRrdd|b>8o6{r~^Z5Mpm)Z(@`fwMWDrB{sG99z|`ML=dy8 z_NrCXs@Ym?W7Vvp+M=jcRYmRU%Io8OeSiJ_2j@E1IoCPQ$K!s#-E>scPm4!rikA2@ zrJPpz3&?50^mXXI?&NZD&^VoKuV` z&Tv#nJIfExn5O%)m`?4WU6&zCq0_MP{@;?XRd}|k5y31(CzL)`t_sXVODq}N)V-eWX`SGTj;8fJ{K-kuQX z7`1T{crtt%qP>i~8*DeLMH7^lZsi;^KUSaX*SW3bv{BQnae2_MN2j!b8KE^fJ)@tw z`dd3G+H2pH)}_lHd_E7-=4$Px(fwmA`4rzbEvYND1?_E+Vj+XqM+Q#`)-V96#Ov@( zRE*WI4k$PS-kD6Nx*_@F)5-dD=&-Ty12Pg*!cWOidJwZy`&x|T=5d_^vIWBKR)DRl}r4Pp2mNXsE5<# zK}<9YgFlbrlZ{OVy1QFhT>p00mwOnCQ(~t9;?6~aiOXN}H5TGDtt$mK4T8%e88kh?u7&HBluyX zZk;(cvwW9(qgo+A@>?4lo*E;1bWV0TbJaR*xm89|FbqAnpCGImIrhVLVwf$DoVCqw z<(Od5`nY?~>Nz9?%NMUsiOJwA%oD9AxR?O8FC{=` zA<)`K!z{1yf1I`N*%MajxvM*J-iy$K#K%<>H#raUTRh#aibZ>K!3df?^4wxp$Ve_& zI;fhtYu^**;jYSUEeP&IkHMX;nXRgFQW8!p-R1QP*7gf&%8S+7G0?Uz4l*pd3S98( zAKaVb0gQG|g3Lct@MppER%*~ktWRMk35Ni8rvwppMuR5^!A*3|+%VUPe6INp(Y9Q^ zmM%(f+|{4Rq;v&?+}8zjpG&d10g}niuwY~R4G>6WLulM+HvHObSy=AgZR*|@(Rap} zgJjlTHF_H{Bwv|BvbWRxIQBNFtr-oVg|8x6(WoK0!d_k1->19A=R9WaudG>^l+zvs z(g->jwoh}Zy@r_o9btBivGWZ$p^sdeNAiu-zab6X;&38@Xs*S2{O+@*E9dq6M!aC@ z$#+)DTin-`E;OUyVhyK_El4Gx1-DOMFLBL!yD?sSb)hSY7RZPT^wx1r$MYnFQaHj{ zztne7ogt8JwF^0u(vVC=gak!VuQ8qS9ZRq`iaBaDLn@2`Oik=Q9mQYgn^8H z{I(q=yomH2%9e@id`Tk`5*`Rnpt)=((jMJPZnWq9&A@i+4K%oL8nAMO4^6Owv%y|F z?A?A|kSLF0%p+b4Hh`=?H=%kja#Jo(FmCIAES&y$Fwia*lFLtELcUVlCwUq4UcCub zNiSXsl?6DB-;&lZG}%}=uPdNx1^xHIZdr(dsz1(TnCbjkuNtBXy848g{Wk@I|8G^W z+7%;qsjO~x2Jn)z>PHB0fbU=b)z}T;8u&}^RV#iwA&8H({>v~1Wu$Ji)4>+%pPh;0 z5wV}C@|blcH#H@unzqatm8R7~(DDaTfJ<*+1L8f(AKQ=h-<6?tGu@Tr%6|2^Q<#Ja zHoeB5*ApRkLX6d$=LGDY6>8YyE60nTs+<6*ef%c12ah2#PVQ7_x8ZX9#^$qMMih$7 zxpn^NE^aTu=l$Nu`kT%``S{=O?6yKr7gu!@bx@wpd(zpQ!^&7h+k3Luo9w$YN_I`= z8FVDB8m1mmYughFO(d?7ZWy9sjin+SxiZ0M$@t+ljM-si^!&kH0iNy@_j4h|YP9l_E%XaS)0Pgj-sBciL~e*vsJ6Xi4L@nPSn4&v2TLA*>n@p7!>n@ zFJ1(p3e^sa5+v*qc%2j})$DbJbTdfp9QKNR*R5yhLX(_hMD0% z@snJql-T0GUl8|yP4jeyCnw+@NruL1^Yi|A8+FsX|8;|!4mQ+40cD{Hy;c_@8tUKr zQ+{*A*s51=Gj8FJ ze_fJC#s|t&Ua&l#zfS`5L$T168=!Yh>u2dcK6cr;DIB6IJOuXhM47X=qKM8(pJ)G zs-_JZk_)yd7y~>sfE(o6(Bvi^3u!&K4rJW5Ir$lT;-&ar-q@hQmrP#M>}%xVJ55V5 zZ@u<-tR2PzN_Ouj_&%DNy*-5{3|MiADUFH}2GTS8VSQp!ArG(tS9hi(H1zTl!w5JV z(HM*!4pS5@ZcnyXgorycF22yaFCVJ1=l1nu@)O8y(hnVk>09^b`Irnv!j=uO#J#JKc2y4gpK{bYzi-zL*e z1zDu}^=7g(rUoi&R0Gn6ixctV(I1PTbNVq7OL&Jm#4{gRI_BiLF&V{Po7f04;6vjB z_Ry*e0v{~+O4K;!BQ)h>sIf4a*~fHq_}yD`Ifw9!PemE^4RN{%GUzz?_C&_-Mn|vb z{vI$Uug1(l<=kKjjhDsPkVcI}Q1C)p+Uv$>%-3k9zQofl%}+~dbT;Az;gI+5l?rWq z7m5SJw`KMy5WW}SxWYUF&YadL=cG63pBU-x#Y0UXdsr0=b4m#NEq1rlj!X?n4P(gH zUQTJ*!@!g>IjW;TM!BZHf?edP0${o{4Nz)v&n5Z9@M4@nWTIg{emlaXO<0`ML7e@a z!v{!`{G=vbs#w8en{Pjry2zAm6yw6|V@^DCn#CSofFYI$h~);EIYR~|1(`NKnTZ{l zd1IU!f*Q44toO~129OF^&d**!H3TI6jWX7#67c|{EMD=Aq?sfg9?T2JK~8E zUh@~a^g`k~m(rqcp!<0?ONN>W^~N@-@H>rphK7he`>=0k*Ej=+Rap7GUt~(@Va5${ z5V5-voyFEzAkADcjF>_k_YWc|VNv`HlUo8Q#}oxBm27)Acm1h8FejF(+_Cjf&#+8n zTrSuUQZk6rYUJCAIZ!CkkMacUGeI2` z_W;m){FM*^`km!k$hU;4)Xqn;ba_}g9EzFNF53;n#BXR64;?ctmXSz3CrC{>1O16abC zl?GAq;mQ3693>-4wIuKZO4VaM&CO=&bs0WH$hIfn|O|aq5v6#)R-0)_c(bm8z|Wmcr{xFUcX8S%^nuo)ODL&I{1Z&qWly+3m19lYJoXF;M6js z@&FlOexkF20vQ4JKiCHz1#~G*15Zl3RQ~`4bDOjV$X=H?*yK7`Rh66f;( z_78b7+ARZXMmc(_3?UU^J@y0aw+C9@^yj;(_5X&{U2ogG9G@+zX8D)lPLpL6_H+j# zmH%#M&3Suu{sJbJJy-hvT=mZY-!&`=36edAqm>|Ofslz*zp3>0r{njoI=cbm)i3&U z3`kr(|NX?Ht0?1Dsn@3|H>N2Wz86n5IaW*d*Ok3Y8`CLKFxG_|^O-!8d)+^|*T13+ z7hX2L0GFjTJ`zx*JopWa`Skop{{YYN08tV&EC~{J13lz_!8KJq`YYYEtXVU1>ih8LUQ~b1?2|ZC;tOlWmvD9J#Qi>0U&_Cjm&}Bh`)VU!7L7iPl<3-po3k!{Dag|AetbM0-(O&do%xF z+&py+_W@a^+THdk@GM7 z>{$8u)PdnQqdL7b(HdQI?CN;jv$98&n!+me@qU4qwOY5sz@kWy0ASL}bh03USojxM zTs~Q*4iY||y{?fS%S{37@9Q9^XwXx)(x%2QtGTk;O?uyUs*`E7JD2iPe~zE-8=UJ# zQ}?vf9ROy2FwDpq&#*bqj1JCl9vaU6o#A~m;^Uc~gMO1zWGuOt6faLoT0KD6*@6!O z#`vpd3r!~r6DIc)#!3%nkF&08tDr}w4MM6lKmXn%JSQ_pbldezaR&`i4djTaie386 zK{cqK&rn)bOw&43KWnEu7)hZI0Jt3A;{Qn%Jg{-8qsYN zR^Dp*nli8kA~{4MSz}o-7pg8yb2#VthK`1Rp6v#M$D3N3jg_{<51qjZ0nVRtkk8)! z?Yy<48-AE}IfCexER4+NNMZvdn+sOYeP~it z&C_2!@dsz82Prum0{*PFtZHUz>D5P1TV)TIVTSE0-apHwb2_AJda=?{@%aq#>94bb zuJ5OSV8y;eje%Rfk!x>USymr*LS&I3`=Hf{irIY{5X<_i3hmlF&)avcASoh98UW5c z)_6=P_LPE%t``{wZ4$1EH`Ovf6DTPII&|wl;dNd38!- z*K2kazcve#UVB#ok|cs;7{Cv5*UsQ~xo3(bat0&N5R%yJR0$8n@^~v=vwI@_s~8>R zKEq3uHp;A=?aj>hw-Z+`X=m7P?da$1fU)09Uw)(8qSEwg<$zLI9-05en>Wr-u$}}e`~kfTE!Aq8;G0kYq;6hUmi8w+zn!FUz-lTCh_js zASh;!4)CPv&xyV1m1@efdrOtuwlAh1(9J*8oIl3Q>m_|NNZKh+I--%gITx+`hBsyz77Yo%85Bjq92$!`8n- z8KC4{MjA+qRQL4vqA6a;8`1$U{kq)+Zmx1KGlz62`eSckb?({5v=-fw7wm&k(l;aC zGZoyC;(gwJ2AcgND#aiwCmqFOm;IcuwrBY=w$T)(#j9xW!BL3lr37CJ+ig(!qyQHr|$%$eP$ zJDk2=e#y|E>6_83py)5q^h&N*lUOQCW_9iTGc9wfuUpWX9CL%ZY> z=inww_nn4)z&5I&ljSAKkfG@JMT$90#E~h z)9>hnAlcjwow~-XsWy9aPf#LLqv=+ha^*q>+xp6(>OS)v3?fsz!a8vT1f6aH^0i_`m{x z7QB|nB+|qvq?eJjdicODl%6*+`an6HES*V&2Fj;jUQ15JB&17#GOCb4rwX(auFwwQ zgmFRr1d=FYDH+uQ+_DZ`J*-P<((3HkUpM(q%)BFPj5DU4e^`|I>r5>44war5^JBDs z@ts<3WuDK(J35we*W5J!o&-uO(Kj)tyRwb!>ynbnB@hD^L z74=fP`+!Tejby7Gd4gW66#Pj`Wu}^L z`OvK1)W1-|xu418#+PLyb;OxF!12+P#}hXiUysSh!j}R>9IV}CqarC`;WIIhm%3gx$VLsOS!VQl*(GH7&H^5tSt;QZlo~V zW?H_4#gp;O`GNe2O*imHcFP#|!+KRh#x0 zXi;~(Bl6kWcvDGwV7t`h0fg0k!vgvTWlxc6B(&*Hpl?``pVJ+=>dv+}R0hZX{?%|A z9#oye=HLS!V|;nFKcAi!Rp^;RsL9>h70S_DhlP%U?V9mhTsP;DNhEt{D!yCBB8g)FRs$##ER)uH<>bkFzW_ zSEPaX<9w@?uk3CH-1BOTxIawX+$R$XJ;fQek(_Lesu_3!E40A8!*Errp zzj|1x)(^gUYMtUZ3-(}0x%N1Cq`*EflP_fmyzo#L;+&5mmyJ82_F(XYEq3uDn!aYn zzG!6)|C8|>P{3xH>){&iulw)dBbaA#10p_=U$2f=21uJ>>Qu6+?1?z5zFj65kpj#W zL%lk)%Usp#=7Is>`Mts@Z6*k9jk*1qWRrK{S%y08b13%VFk#uzwYex?o`Vg9iJCAk zI!BBpn03D3Dc)Pkdzrbrgf@N(;CNZtOViCL#PLchRpyk`-S92=L8i;O;7g(<+-i#bSphj2ZF?`FO>um& zo-p3X*esV5gxU#ONRd&u?aaUEvfzEgwr5zXwl1rFqW-u*BX&>NSxN+-C`f*I`P}5$3l-o0QUwtu;EUAc~Vg-)fpU=#g5`B+>0 zSjcrl^JBs6G&@&ojZDF&E_~~haL*elS9mh&SC#)_il5v|DD%;|#k0<;-XZGxK8IPC zcMWS^t7!T9aW>fTO-{FQ6%NAv`j>3a$izWHoQ&pz!g#0+X2kA{ax%`$vIQN3qf?Ik z027t$BiExq^^DAIJrH;Nlyc3NNMJnuRV8tierLMtgP#86LATj^H!x5y3Qe}9`{BrA=KELp7G5k~1f~r| z9%Jb-2)w9NHPi&L8FInV_0&x6uE&M%o%@pAJ-j!@ByuQw2zK=?d!DcFr$*LwkkfFz z3WQ~&{z z1?Im2I*dtE^ARXBsB(A%?T}|U0^!xvhM;;?I^2SNzM9iBZ=aN*s*Iera`Be=gOXpW z8B6!{_}owA%N@bWk+)ZEOg2(d`L7lZZyp!eX&aaoDx2Y>git(3u6 zPoI*)uYDgLOx3`#cK5d##@ysG2cN>M_&wNj!#sk? zMdH<-;h?j6{Aa+QAoe=R|s%j2}j2>O&7*pnQ_5TzB15zr@%0Vq}cD z>RD!Z4`a!rex>;Mk?#Xj-R3l6s-^w|P#=tlvm4UFGp}uCYL3&zY@2fIfW9-eSLe-m z@$%tONs=Pp2DMipZp#lRfO*v@2ZF+6I&2r-5(jGNC zGAj(+BNONMRO6av?>tU%i!pTBpyxSAVd~cP*hsmj0gscuuQMlAOnNEyx}4rda)QzG80BI7hA2*)XaQ%IlT#EPN1nLvW@ z6&?*wL8I{km}`c-;*$ij_1FSOqH&~YM0G2P4b%P z9O1oAF|?NPx)9229J#(fd3gL}ww>c;K4&UO1>)>R?(3K8JdrX$-6zf5FzPf@!Bh|+ zIJt;1owPQZ8Z@28BcK`@7xR##xdd+)8(lG6=XX*% zl?`Kt;5=MU#Xv1S3=pfU`@rRt>t%o&VrICkSGrdDXn>^50>{n=JXi=Hp3t3~Y{8NS zO?jX=m0YN+cpl!6AnFGaItEhy0ouC>mwsws92VPPsy4b^vCNc$b|YKuZ{ml6gbZ<_ zRmOSZCF|#N@72;G5fqGHjGvNC*XA0KyXhto7Fl~1O`Izym^67>cuj%~PpZ44Rrts; zWgQIK(TtkkES@@3rCOr#ylDLOGwd9e>Smat8-pL%p7@Ek9FxkHcx);8!tz~)>AzKT znSTq`jUd62S7MFw@;$7gXsatQPJ|yv4PkpUASMBj6^+3$fMmz1K^P;lro1j{+7TW? zin_w$XZ7v~M4DbJTRi`Kq>hE@*vAA&%{fW-{rWWAd{NbX!lYZ)kf}wfi$621w(@vL z$xJ83A_nrCW5&u5atA;W21}FP8*@&yyo2j>rL~nDGk0EH_;+CG)oRLvPEoDm5VObm z-h6{|;}CVj2{M5A&}0IQU3bp=+T%c*aiG%24x2cfXuHv4yl8|onH~TnUCZ)k>aM9d;>d*;Z||WabJwVIKE|-l2W(PS7r&^#qF86$ zWZcbYC*I#Z7*(YtN7KHHReAK|PMI|lzx&vI7qW1on$jDS;)7wgL#9|FQmhE%cL>Tq z65kS8KOajvoqie{wYj#g;!{HQ$U_*?!k`q^jp*1W#8iQbgR_2FcR@R-!&hSi>_P^y z#gn@j``}e5>mg268y|0VP**zBuDfZ~QP7KSYV3OcK|*Y%*{xVVsZKUFn@r!p+zktw~1l-^kK0Y@Wvc`uR2=^g*)6E#bx1t(`%ZqcZ2Gw+N)%|GKvbOEG+&xcNKGKx$SV0i+c2~+s#3I34(US2|I>N zizU#^`MNoY?z6@G6QD^pE5EmAHn1?kgKG{OZ2u(;i5JXm;IC2WJX^e|{vI$T*@c0vuyrMm}?(EO@(oNUd|LqaaJ)=m(07wj6pnvp)`=z6dyV_Vq1 zGe5Ny)s8uGHDfMcyF6TotSXe!5jYZFVjz$B03GyLZpSEd+o4 zHVOLa3!#zTl^Y*5;LA5DXkM@Q&u%~3tN!%j+eBedUDzWc*^c+VT_^I$*OBUDp4 zfK+#x?7alBgnGzRF(g&*IKw@J^k))8C6a7`_bvlGS@*=&fi_pcejF;iO{H(3nzQET6C}@=p`AY- zSb1>P_ASw!uiY>ONttPxBL16dr*{baR&hV#GFe9%0`bRN7*h8!q!4NHh3}?v5lvka z4j1iF%O7f48Pw0-zqQi;LK*}bpi?|If>Ffe@>7mw}UwJK~qaC5ms-ruh~C=Itm79SBFOzsoT40w^CgA`D8qToxd#Q z*#XIwe+gR07HCc8NB){R08yt!g+kN(;dq_)UvNKMy_Y8`_&S=zdh+fcmfHE8s_duZ z6A&v1S@Mfkrlnn=@w1GRKG7x6KC0wEbP@G$u7KP^t!*uSX{9ae#df*%BZhEuzCSw@ zLnQJrOJ#;$`*=O*F>rJD=eLWrKQSFw*sC|m8i;@w6!&y{nQ?YKc>2`*VYmm{(vM+y z_^0o~ulw?L*XD_Yu{T(2Oq5M=Y8V=#11Hl2K*d01&=W>o0;7-#8ylIRu0<_DGlPY3 zA$cNCob!qGH)VsIauwcM0I;*JCO1!;z#<^$WymOGUXDyhc~iC6cY4j&*nIzR!*MT_ zNv}w{LiO(MR6(uX(@Kr_pU0ciMdpt*$^Se%-6oB1e7Ae*K9C0qyp&q$4*1v^{QdIA zYH#@0h1S5I((8k9KTi+8|CHHyS)-pGAbbtCvaI12F&55Xk+7~uzfiTIDrmMHjOj7{ zvM*mb7ytX}*Y;P1{e?G}YSk|pc1>1;h2oNmS<791b2FQbj9~ICcIn$KZq-{c8QYTi zPwnSxQZm_zo)hivYpQfS8P=_qU)JJ#ZBkyJiOY>X&gGXCXLDGnBj^Zf!t|Vky$s_7 zOzMIT_Wt{iTYr>dR4}t;(UL)%#vRXWp$yk!wToFuH&dSn<)in?t@14l#K-cj(9376 zny&7T-`oB{Y}nWZK7qlqWT%vcvTv@$2<4De_Iqn@r`;Szx~KBg6FlpS!>7dS6AFcW zN_w`8B`W*Er+8`}6mkY69&b&-YkL<=BnWj2CbCoTE*gb?ZRSkcS3t4rG3DgsaQGXQ zpH7j8QFQWMm4n===+(rJ6^f}WTWfp?y7O)<=H1V8WA)TKMq^E&CpuV7sQY~VpIbu@ z?pYyE$ex&~S6dn(N}^rkK^j-zxbK_VyPIoM-lc0Zcr2fvw%h*BnqXmM^WMh(aj$u% z%xSMw*BjM8Qr+{$YKM+Bh#Dw3TVYq|K}|7g>OsTc!ix9$Xh!m|Z4+#3=#e}8L! zrTIrm^c4IcNa>lJP?m_?lw|a^i`>@&_02)N2~QDyw*>>i^PLPr+Gf1SVIu%?#C7A# z2`Z&5!*6zn#a2aq2t$5MGKU*mWR!@*wJBE?PY$}stgf|KNHoJ)4WL>gp@!L3w^Yh!lleO%B%aqe zL$yYD`1E%)jWR4(vK1Li5e=gJ`jYx>D|*4_$f*g z*Qq=f3#9cp$@1d%a4<(Bn#_uFhq7bZ+q?)# z=BnsJVk9a^2*FM|M07Vbx;)M0EBr>6`^++IVn$h8?W?6Ob<3Ph$5lVvVF|@qWm!=d za?JPk^mG;kj+cr#ZA*OYd)d_}DP$=GI|E-m06FOoI|lZjQ<@|YnTjzf+CPYGI+yPB zN2;{mICu2N9do&-9QyL*^I7i18XR{IGc{oZ1X~2K&sU`?SW0Gl@o(4tGxnx@fX(t~ z-(sk=f=F(lP2_R~Xw}|(KZ)c}6Rg|G`582dxOtKH;l@04_vA6QekHFW+>64YVBM@U z^VZXF`Ihw?fodxP^moX=^ZG8{c6|5!L)1dgi=#xDgy=fL3)Cp1jOQmo?jc2iyHB2y zHmMrLkrtE;VHhwUQCBL)ZDL;eLr2}W(GfCkrQ^sQ> z$>nKH-~3M#(QFVnOEraZa+~q2JoDFECCueZO;L$?x9Vem4xp)jz>@U};t-ENnW|7o zhd;=q^f<36c9!pd*BWy7A&lNO=DA@TKZTU=CiIe5kABzWv)^)t7>eQm^$2{B-yD27vp+`%1D8K88Ydsay& ziWRdl!V@4B=s1fW&s=yMR%BrFmwQJO;XiB|z?AZELn>We2$USuNoZ01v%H)gb-U=P{X{AKlIrD5x!P6tS9|^M+Ae#>FGgE?Nno~mj?A#1^Q=kA zx)P_k6zco}0%P@0r?^j`#u&Fbuo9My?Yq6EaxXn0j49ttHe-4waLf5#3Oo{-&SD?7 z{nlt`+#n>JA@}9^V|r~-oV)Q4ZXA7t;YfCD{I)#YOW^6*6S{~#c=hQ*k)|6*q6<0x zQXQ*h78auIv^!csH$c(8hZoCXOEjODVty1ucFDI%Fvn~$lXNY;PQ{XvRs9zR+anRg zqpXXrM;u50W&GLxFX`F4SENh3&kFV0G`f30Y6mwOK^RCjNaxzKsf5?LM%l{j3^B3* z=?|F6cDaO$F%&S~q4xk*sls&;Zhyl`-|kfLx@$kIksj&WFx=0D5-|e_=B6U>P8O_F zj8@T1xk2qwQbc_T80z~n@L+A}*1swa#L&Tc@xe~%lMT*q`J*TNMMtpvIyBnMrdSrT zTY6p@+6Y%>7DM_20Q(VuUVX#GooYrIRZ)QI%i`m#cb7CR)xE$y#yb17ewJ4s`JL|k zcj)uqwMV>10(_d&il)g~0wCV2A!Yt50bW7SDTp^=Q!{aseIH4~;zD8SL6HF15?LYN zuSgcbUGv8uCZtltP1bqyiez2mamT~D0o1tw=uDMl5{4oMN%MM(f`F0QK_R+9f-E5Z zZZq!uA=s50M=?;g5Xjw4HD~&fiLB^JH=bl7JRzfp7gV=++f6ZVT8)AYJ-DDrR@R=r zLekfz(ZedH86FCeJ>aNx=WN^NEPcdP&!<1RDUTp>f2fr&9{YV!t$8G*H4D8Sde!{J zN|=I`FknGmFVHg_FKmdBAIKExPM43AG82YoA!)p@0PmXQ8!Q`Dss2|$!R}#6bsU{8 z4r*N&(MzPtLPE^8?9hTDbWS2JDCrmv2?FZPxfyde_TZlzM>&v_%$rkqt!9uyZ?ROm zVicubOV9XLUc)9HjWskJVnza4tcRH4WGpeBvNwk5xjAxsOjYzpRcbtYTeej@t92_r zBf3SvPKz3|+uTiK>X)_7>m(7E4|)RmsYo+$Iu`6ED2%E{2?nK#&?d_pq9hjtp#%)& z20%1mryyZxpiW;|Tch?(xU^6YuD*Gj825QlZ*5_<` ze7Dr~caL|U%81i~r%RGpOlpH8H<*9-k!upzt=`v-YFE2nOhs3aHiHOl1k`k7>KDG2 zLHl@DzUIyMq6`91L=vG17zi5-Oz^=514Q?5W9=&f=h~k~hq$`6xmvI@Yxx`#qMYSe zR@0$3D!?D4_qoXl@F&XeO{!*4S8Ghr27SU5v+{kjZ#m&i<`E#~Nd1OLoa@~q)JNy9 zw_jFAr8+y+Llg)N4|x5xsH$Aqs^S!%Xm>U|n9gVuCY_aWO=-^nU zJs*X$SRCD&VF|K;Qc^QyluDX-?t$?(_~;0xE&i)b*uI@E&c-0k$~ZroxlARgaW+h}3n+={(Fe2c8}}`yY>R>tHLy4Ju{#1RxQDDl#xAK?Yvl)dryN9?| z0VcyK$LPnUZqI=B&(A669Y^%XZ;Xy8nnGGMP5g{+bp}bByHs ztIY=+mZd=n3?50?gKxr6weCjaS>jZU()&~VH!`>>M^Or-Du#njlmxNdV-3sQ4diM8 zQq{H}tt^<=YjY8`*^4pI(JkRAFRE@p*bIP9w}b`$<5cbkQzAZ$PK@~&IXsmm1e1Eu z6RfHjL`op%d?v*8(zB&>?T;)Nocq)v_vzoBr|kD+xlft|Mt^JnQqxmHbvBcZj@oAjxxJblB0&7My_Fi0nC*cTYP2a9S)aIq{%8p>zu>)hT{^Si}t^ z8Z<1A2Ft~S_2I$-*0Ev3+FW(ooY2Q&_f7*lk2!k7xDvE!2*|nHRnV*t#5p9LTNC}~ zReGff1N>+h6W1#XnN^08>>AJ2n#Whp4P5KNBzdGn|l<<9R!zs-7MBMRJmnM9UsoIMC@D$qlh6=8IBXV zL)qqrZe_v2%G!qiwI|OEX`6px8K#kq-Dje<5;tu?WbQ~BcIX0iqIl(_Kh&DV`~LE| zBmXE=fuaX(PJP(cVZqmD6QFntapireZlv z(SAgh81nT<-XU6A?ytO7*Au#a4%91>Hs_UBrD8Ybk0&=ufSiU3uwvw1Hc?~=Ks$k< z2~wc5*QVDpe3=(%Gy>!%kg?7UJ>k9|5w~x=y?5DEeS1Nn86F^XMJMrOm*SBO&1#Z*EgSERZUoSY(@b_CiVr4+sC=xINP$B3jhk+H4sL(}#6!`sj z1ja)P8b~F^GdIMojQzp-*6X3j(cobp!Bz77`L8EmMlY^ivB;>`O-t{E{Mf}67Pr~T zp813C1{n0>DN<+FwPg%P6i73dL25VC%)t@0=vS*Zs02n722sN*Y?AysN(6BD(_zi& z!kY+$!>4Bs51YmRp^zhO65Jr(b|3EEp^yjIsIDQgS}bQfR!2vHvjwXY5nX1D5@_=U zV zqc~+ka=sA1TbvGwPkDkV3#8CJoVLGkdOH5`vYiL7q5yJ5RC_Z2_=&%WR?`n^CQrUK z@@vgF*WCAx#+C|r^;he{wv%dCGKK2E^FNLULoSEf;%=65VOMGQm5~(ZvggxV>T%l> zi!#d}!QjeH}fv1tOj>7!W&&FSsjEx^{I(?iQf z&V=ynY;DA4Tg3-Uj)@^C--$ zs?TdRmU~$;{*mk>zo~iH$)X|7#V3J#oc`u@s6BRrjx4gX6$Q9|_{QjScGQG;LD)y1S@Bbq$*5VnE3-Fm~k;j&M!pWy%I!@oPS$?LDivd5|KCmXNa**rW<}D`fiA4^hGoaihmKv_g4tHrO~Wslz*Q1nG3-O z9r`SzE^|8cPX8rWmii?1mrV-q*84zYzQa48HyrZ*tA5+BTg#q@Zt&}8T^*JwWwJMK zmUNM(St{UWNPR{XCSeACO|-=A(Z&aGi^u4`@B-s}Htq*uyI$?vi_I=Cl7L*c*T6Dg znnICV8IdKOkEhBtGug6-tjTGbZoTI`+?#K99ZF?YD-3ez@|~}@87K^Pd>*>_xTmm_$dto0qYrv5B5ucWCVNj6 z%SMpDDf#L(Rc^GM&|hk|!lIY}f8e1Px;EEfE+g%v>>Z6vW#M?0POtaV=2?(R(^pcn zolzJDiGxCg(YU9b2=8LI)L1F;C*2-I$vPNjU!pN*MWQr7d9l6e1(L>Ml+j3Pew5k5 z)MAWv5>)e45FI+9wKSGF3acv_fOQqxCQI=f0BshD& zPG=-LfcPm@AdSCfPw<@0*xDjwh1!?%YUdBMPSieN)Y1YauJ_LBw+@PllD|q=tQ-zB z$+RnVuW$6N#OjYcvG=BuXv{P6DY5U_Y9DE}KY0Jq6-#@KR7=0XCdK}T#3{mRt;;c% z?`t0WA>Ybrs6&4wAVHXdJD?Fu4s+`Trpso_`V>UWdq1WZU2z+sRbF?y9un{QflO4* zx;hzjtYyh^)c|z%GwZ|ot?4oE?YFZPx9zP|k|$uEG;*+s9H4wv?QDPY%F<)b0HULz z`q_d>WLYrLL}gC@`JFAHJml^FW9&SGnh5`PoeBvhKxm-|p@-gkG4zh17eNUi0s_(m zL=*y{_g=+>UZo>VrFRek6%mmpMNt7!K`|cw@B5yaGiT0+GqbbbcXwuYpZodU*X1T; zdUdLU<)*PHG*^2p)h zS2gLJ-&WhKo?ONwzWNb+8wq-xd>?Z;H{##r;<)eXUFGyh+@KOVbp7aTOVi_*_wIKl zm|kgJCXHTUA-p1e?USp&;tJ*b<8Zq2$HL)s!WsIDx#-%m1wGN$`g@1M{6O%W+=5p{ z+LwjQuqz5n(E`QZ)j&tS_$B!>k3%iWseI-W?~qbWXC8Pm#>2C60Y^&U$u-b<>6Q)i zIX&CG^29-~#RV1e>9t*z)a8BpJG06Auo{yOpMPy+T&JAvv$s;WL@h&EyI7646L?Y? zu>vR2eo`Ex7?Y#Mk{+UGXsjNhI+Mn(){T_{8sW3TC+aGY>Ak$b{i`y4O5xjxK(vvM zFm>VdkI`_@sw<86dOBw` zGWQ!Uzine9J=tc7Vo))%k$_p&rm@T%V#$xr*2hUlkO9yd+@SoU4G-i>%1Dj>AT=JPeCYEl>HY?Ff_!B!AQIr3n!uS3Af$bTO1FCtAw1ME!wRRlEMS z;`*}ZmvB1F7mb?<8^ss%aZh+hB&sny10uXztUo*L4T%8cg8{Ml!es?&)%8ibX-DRg zHjaexrg_9`$Ohx9c`DB_AkB*lMMI%OnlJ2I>AubG)q&_h?)B%niD#Smxl4PbJ6)cM{)uUy#IpS6gWeqsB@6 ziu0;za|3zL#$Dr_2bmCo9d5nBn4xQbf(5Kk4QUw@v0TrOuY9qL!R9Ovv7yie@clTf zcFy5EH#x;wp~4n!z9*l$lj^z$%3#W?^|mZ^V{KM(&;pb&IupiS4uA}lLAF(kR;!`y zWubB`gx@(R*#^DIaKmSan=Yt(_&(z`odZ`6!T5*r19ByGcVoHtTwPGVtCc6nvD~ZZ zhf0O;!dlsOu7h>1hh9;I^tjF)UMyzIcq!-8j~HO01?T=3eM0% z5Yyh6y>;foWli8H{eYZUv_W~ADw!B90n9g+aYg2h!NKT&Jc)h~8)Z;JhYYOL^jFG6 z+&F5$U%KVE2+h8zcw@d|P#Ow42C2qSa5by4%|WQ6h6RzI@ny1QqOjSX{&7fS#Y54a zY5LoHt|P*BR8Bva?!59ZWKJFVsO4-N7a0)4O_NR4##yJJYerv;&nfkx4GiRoWaeIz ze0`Ip;@LQcT@DqHswGh2473-K?FeK_iPYr^L&s=VykU08{moR>OB2JYv2Wboie!GR zP{VqD1$-M%-2P< zS$XX^UnbccEyhM-U~PYYi;vSS5v`PC%_GuN=a+3tch)yOzS#H**V_Lkol zx##f3uWVMaEo`8&bt6^!G zk{G5vcfH&p)}+AEFCW;50XaJg!Fy^TmA1m4LFzc<)25AN!;}s zs3BD&D;1s*0z`Ibk9N%954`}0 zalixDZ`3h(_EK^>63<{)@B0(Hf6Z;#if}o|mjy{Sdz@lEkovW2IKjjFN|$?|peNl7 zAh4Pt^fdt1XO2**2?mUv5)WgQM2fcuR$N6ICm5bejVoAyKd-vd@A%W#Z_xw1QH(%_ z-y~Evc^w6iqw%M}zBb11%3FEojnNVUN#MsA^@1r38l1PP03vzrpq zUV6|W*RSo-f=0si943cISy|=;=uZ=h*jT)_Oa%6F`j=crqg=+sWuHuCP&M2Q_Ba04 zTBBd+V}W;!B6FL1wfT(+YgM1iWr*cl0jqim9$qCwpK8{z!PTa7)k)^C@`TJ=>YLFt z1DNQ&M!QBP#6NnD?2X1o*=O<88UZ&A%=iq>!E8G_j1WFHLDw{x?6%ey#t%kJ?5)Vh zF<3n)@^Lu_vYun-!siI*RFFkOgV2V0LTuzH7Cscp9V%`NGty=`-=+S2GuMrV6&d>^ zeK`MM9i9rgKIglJ6uE}D8Ti%X&N+ncvtMX+=DCMJLN5(s8Q|VAT)){=R6a7(Emd4u zU+kL&f0VUSyADew!OVc|l>9-?TQ|OSWqn%_{}*7$SxHW+$0wx^vi}wvaOEqH05GZW zUG#DpqdbpUveM*Uh)d5ccGLhx$%_G?p`eYADkqLN0&%Lp4y0 zjO0k>lVNFYJKSToNk^KvUJ}=~8OmNjxk?H&V{&UXeGo7&ddVMh(tze4JDL3CXw6#iRk?+3T=y5{!h7 zD&0}e+h9j(!yZik%^yTjW_XY|1 zs3kLM#V$eWGYpx@+pS|oLv0VA(zv;4%e1noeX$<$wS{22L^ zPnioRzR@hNvuj#+*GgE-L|?ePCtCzUO9M^1+^;lN-0AqL5agx%8Lca1Yh~G9RF6YB zQZRG`96k4mcAW)0d>xkUs()b;$S1+`*I!3`r6#TmT5M7qkU1`_!HInTvWGYe@J2%Z z=~G9{{%H0KyL(5@pcGJ2R1#zuhb%iW;RraEK$u=OPv`%{^2v+6&FbhH-mLS^RsF+k zuWF%UGCK~>5~0oT3(Z8*Cj`jkAn~x%XeA2Nby@FDn=Tti=Zc%9`e7bD(ndXff*QX| z{r$`P(0v6VTSi7DJQQzb8651)?CMclLvz9KtG>{**ckrM5~zdW#9+>^1Ow)xexg~u zI_>g-a?3d3+~9NvHa0CX?SM7|F%K(67(@d=A8H*rWPpZM3xXLE0(e@A5kqEp-jazK zd$*!@Ug&F$IxFM`vn7xTM-Z4Xa8il0Hp8=U;^7_JDoW!tr+KiRhJ^aqz{X~|G^T4q z`DbG?v`vjVcy}x2F2Me40CT?8)~w=<;c2PPSQ$?X6)J=eGdwezTE&w8g3h2}$M49W zL&P$LYLiKu9!v!G)M_%y0~L*DmkQvr!FvjjJOu#EA)!pB_DEzFqX-!(K~Q_L&UBL1 z4%$!eX7Mig85;Pe9GjgQ$^Kqv_B64lh0Lsy|CZ1J@! z?NdB0=3hCkc`k=;BZ}SW*IntmQu^{!>JcKYPhw5- z1M!q#JZ@aAG2?f%j7j&KdxOeJpF{DA9fdj5+U;JKgx|esFzt4s*IZcwZHE(MU-Wga)7N6{rvZ40! z)2ORr(N1-Y(ZaW+5*mF~%ydh~M8knd^g57dUA&o}3H%m#b}Dh@$)cJRi1V{ph%5Eu z&5L(F$)FKQ&@%$-X7Bfu^-%r%ZOGzL&ccZ2zQUJNKYBTw4^`?7Qz6ssh#QxK+Jf+QO>AJZ_%QT|HC^KxKwFg73>7*1+_*1-|J zK8S=Eh2x_&=`wYu%X)en;yyy8y?rezATRGkXO*_8&w>q_g17i%7_S1Yw78zJO`Q!mql^{N-e zxm3EpPTI#A2Qm40@5-R?P&`sFwd7x6t@Iocg;GCrsB0eD60E#mSk3XN)-a!N@$ny) z@eucF&zQRghdA+K|Sm zbw|7UsDYd87d8Wy!Ru#wy;Y6x&R66s{ID6dCa$rFB{cc3V6aZjm3#sJ7wSp$>bhCs z7wNjf`!v-SI@d$LYv|&dZ7k+F)PNB*9_*yrC}qUu~-5<0KJ+!txDF^j-|z6pp)<*;OWbVk zM>vvBf;tzCI^cd=wUBx2{Gx_z2hdy{y)PMn$X*a;vYVP`<{M=t-)TgtyY^eKMRcp> zz_V&yw=K#N0s~ZQ3Nu4X8migu2=Rgy6zd89AgW`O&dK*I=*x}Bg1r|Fn&=c#taq%yfWpObRsQZS|X5M4$wGSvP5!mCSn3 zuTpU=pQ}y#tQ=XLbBwuC_jEzxkInO=evZp)&J;e zdHC-D5eT;{Yb*PoZDC1F1zt7zT~}Ke{@}}F>08X2d0EycxejiANYop*)O~s|ZokIa znfFcXGpa+)CV>up0#n(~o*TeBL%%3zyjEuDw4a=CZiIbX~rQ( z{k%{$I6j3(>gIgmQMsWhhl0=Qe4Vw(h31L>^KxLtSb34c?e%_q@E9GZGTIQ)o0Nl_ z%n?)VJ@XdvK$j{T$7q}_nwKc~uTPM5Mba0lyd|W#D;VjyFqeBNIEbBPc`F@fn$Aa> zSGBx4(SkaHVvlPL(wuDjuBH`tJY7KPrBu_Vqz|eE(WMI#fK{V8oXQ5UA}a`$T8v|# zFTHfM ze>np6?PcRznQJwAqJ*NAnNLYK`wzV4T~l5Z3#7e1D_TgMsq&r4m0gsrL~HBa{zPY! zkX}OA$_cvt?b3cprT^x9k8YfeDVb@})-Bc2fYWaRUuy3bS7jtnUOF1>4xb#NDw z<8$&60znvuZm3LQ$`8xU>)u8d7AQPDv_dHC6vmoLltqH3MZ~*QCR6fkUelyRAN(rfPd9x2rOj`~ z2~bovvc7-$^)Z+0S?F%E>0B5@czM8y9)GGCzMi3uIDPy0IpW?y+Y5^C=iZO>XP+7f zYo{OjZ+`u=^AxNcxjlB}5A?7@`bFgTxyuYs{jaJ7m#}BvVG6(1Mg8G)`+4(RkALpB z2gP4|mFpr;J~h91@aOCE7t!zO6xPqqQp2umoOjk-An+;w7zO~<2DE(+vuqyjmw`i4 z1R7rwm=~t~#+#r_mr8<4Cl1p21jKS5kf<-iC>P|x0HUA-8Ga>kh^79&Jr37l!>Fl% zc!fqX{q4kI?oR;;8V6*CDA)*^CNNP?qMRusaYRroFv-lfocR&#BAX3NwrMP9ZB87O z@Ci(DJ}75@4jYq64ovlssNi^!IHph^nC9zS!Sw+)t}+#vei8ay`j$AZ@hLDP@}PqE zA8Z0k6O>7msN`cvn$Qyq%1ZUE6ySwV8kq!T=QdUfNheL3`2^*Z9#o24hEL&=gK{e+ zszk3OP1)233LJ4^-rx5puA+WAvZLH|LObQFBXl_t1wM50HKPSd1+oInuL_IH2sgqA*6!) zOReE$nuW~dkV-+xI^!$J3%T_nRTA$7l@{WGQ5{R<&B8&=5hmi@nGW)JV%_D4UhDXu zOT3pyu{ic*derJLFG1#$CG+pa4$YyuD~cHEL=ziZGiBSjG@&g-$woXw%JPUb6)|&y3&W;77FY_e{cimzo~m zX-;{6;1kxj`sH!hbK14TzH+Qr7-IJq`i41`nfSPo^%snh+g+Mk*PZ!qf|A zW(WL>AJ;xQ${+Et;^)9Rc$Iwgu(afu4Y%I)PKPO<8MRO?RA# zuH!WC*W-e^#E(+<3a4$gf|(a1!IHP{PWgp?M=nb2hzJP22z|g`b~f`-L>)bJ-=7~P zm%2wc-8}6i)j>8k+tikYNDe0;R9x4bb)kTy_U) zTnDNJ z1O@}CAwW6^fRPHo0t29E0GzZyZh9auJ&>OPbWs)+WC95@gT>jQ;wY#z2ULL@s>TDo z%ndQ*0^4vwZg5jY@xn?3=pG6n3WN|bVszdza0ex*g#wj{9JP)lou(L*hB%wH6iQE) zQ%{lCQ1OznBDbm1C3EFV7OK2Bbv`Q%0V^#bTda_+mY}T`pMw_X)yvE-SbDq;%w3<_ z+nCz#3hcHOJkW+N$eJn0n(a1@*T-Dg%S`m9si>!^=nZ3xyD{dPp@@sVh_iv%RYM79 zLvdFlaSt;|Z%Y|pYgr#l*^BdS8`(g6`4C6N(5s5!F3NYWsfN31M&i{UxNAPRfqmd* zK=3h+^D|7kg-!6*NcK_8x`ipd#b4_w{Pd>G^bL*Cz{`DiwcGA%lke%}-8Id=W11aq zksoQ56Kz*QuzMI|OCs8m6@eB)#I@bClgzzbNhc@eLG+I{`dXQ^R?5zo2Td7r{@Zw$fk0kv+A^OgfZB^3+GVT`}-R;%0B`W^~(cc|T(fSWWzoYhLg;CDyNMtpf zMcAwqAmnrdi;S_)^ZDNpeagY{SiYz_C{0DyNwH!1Nx;_BL(?Z;M?|ftaD)q*RMYcl zD$dEz?VHhJCaWthGu^FQupkOm#5H5EO-o{agcFWjkz`c!JiYfCfr|?ZoTH^l~$S2Z|eT{4?yLG6syfdPKl6+ zLsKzL3d<&rh1zm7VvH0hwP*#=kP%aW-=W6jEyZw1J^)y~Mu#qEjq^qvWWh0eXH1F0 zC0=e7!i4Qwcl6zpLTa??O6?Y}CSrZ-lBjTi)4+0Il5uA9rm_j0qqA>rF$d{jo8bg<}qEd9B-gB z3%}jsCBkBew&1_Q^G*L!hd(wCP>K5*mPaC!1YJ$ss>Pf8V?4zJ%ydkopB`+Qis#YA zOtq2BVL{fRO7zC*^b(cC~bNo_-7r#%F0b+g}kmVngR8{d)-KXxs$xFke zSZA?%bj???7*80w$nBE59(Uj+vrTeBP35bE5n+1{`RL~1c!}c){@6|9wtQTWaIwUT zvlQuP2Mg8Ww7no&iH6fNKe0NJ9N!BK=F>?`1yL?pN2Ra=0_6s-?${3O$eyizLIACar{@d7m~8?E)xH8a+AB_(B@cqozOlb zF}KT~uCfI#E!W)Mt>?chT9L@FweT>&jUrSO^7ZbnRZ2uXZ{*(KIM2!Vm(=K(ju+C^ zut&cmhTZQuH2Ne^Yn}7S_L_h=JX=$NBsUowqcVtyk#@7p3#Nm`NsF&uiH+;z(bX|Fhss6!<0Crp3kfOSDfi?(h(JrL% z4L9N+9y4eaq?ct3oxk*$YM#mowRugNLkId~VpK}a<2n%o;gjYz2bene1k z1CCi+FG4v|Yu_|klo*|77S16G=>er|Ll*tqm=d!1#agru@JSE}(qD}q&v@>LmBJcy zQN5XQM2SHf_le^()`c3C|E08aa!(>3n5OMrYQeD*o$+*Gr0cxh^;V_X zEd>UQpXvQG?YLwHVWHjHYHL#~uZQv;x1>=d-49F@EH5e^RYuV337N8;4-LeT^vjmw zy$J-MF=MgoLxkx~XHC5Wv^%L#^_vLH)C^QpsRHfAW>Kr7Hu^q1jTOdbfxCM1JKM~g zBX(n~EfZxT%P~-0Q$B=>|40e6$K8}i-BObdn^d>J8RREe$0hkG@67ZO?;*Nx1k{3m z@_iU3!UVt4ZQqx`rT<&*Ws;>AJFBY0m%A_f){rHI;=%%WQKLY7d|5d&uZO<4mJunA zG(y(@($N{l-$| za8zaV`EP-{MM=JR`W9 zlaH~q*N90lMT-99VmOBYn64Zu3Hm7 z8yl$F&2-5hY5hvn?6c9L;q#RXCS4Lx=Jt}AqT+MaCb%qp+PJ##sE8V0rwN~f&)QXasqs`^46n&ct#RPI)P^)jlIm#R_stFZK5TawFO%GJboc)4GS z?9yMUSWIx8kM*%>fp~t6i|Vn572-m>e%u?N4jX$Djc{Q6R~}Lz!&kemQjJB=DSN3v z1%$yg*^Hie&v5a$`^q=usvvjbM@2dE^cbjI&Gc`jLmjKPJe-+DzY0W@#;DmU3pW|i z{Cwgro*%XS-3v}FR#@YGJmy%2)!CGX7n1I6@zdlC&~QD8-W^3S6vmCQ6FOrq$^`_r zZZ~~!xD3Dl+n6Ed!ZFNuZc4Z(pmnjGw2ZsDpTyS{ng@TE6?=)(I(0&ttx_nm&45YQHn1(ZzO z5;Qmc3q4bHltYf)#r`FLMFYU+H}0NQD10wK>rwfx2*f`MuwJmowCdeTwYT}DoAk9a zF)K5v_g6q+G|e6$lI)Q26O;TkGXpH6oF)Tk$I=2+Y1>+0;6TJ7DH&#LEo69OXIQ%p z4GMSD5gWr;vfJ8py1`-HiM*%8Z{hIb0K`dn#*bx0MPbIb zXapxCEP(_|!DhnW=7lKU*cKK}bRa}4>0DbNs5;D&0Hc=39X9W1Y0^*<(-T^z7c^%3|6JVWUQbGFLfaga_Z+Lt=mNEFWP zP`0cLk95~^c_Xb>Db_Sp5aunGb|bZ8TSlJ*ik>W;;Q$HZKwJUfbZAoad=$gYhh6(= zIRZNQix1l_G-;iVWpZV2s;uYa@8!9|38b<|cQd~1mx0L{CubEE9*;`eGb=LXY1?RO zars(ZmEWM(FR6IyZ4vN08X047IA?5wTxnNu!4(BpY5`NjJn9GgK*5VW%HP=nBr=y1 z=u!Y!H$V>==WXvUT7ZKW+_e|%sHBd8JCBtM$=xm)OBS`Rpxjw0nG1$1_m&;(m!*C} zV1L(EgqXhxxj}ZVY>cjCU9QyA%{pWa{+Gm8CR3&3Q|0;uLt7&Tw2^f#_Ngv#9<3Eq zb|p)3fCOYf;Q3PT`f8z;2BAYBCIHN(e>prl9XV!O$|3B23>SmYz}m~f@;T=MwVH2i z71gTlMpxV(FH@hY1+Uj;{%*P&;+5;8Y4kftST9S!Mq~4PouPcyjJ#r-U8=f=QNp&s zGUmp^_4+9fG8$Ly?bI;i*dQp=(%;*_dja(y0O@5?hpIH{>x*{=nK$1Jidh%UhQq#( zDN+T8RaJ&67zV#7uK0<`dv`H@64AySA{uHRlvhkqG3NBz<81HjEHq8dUHWyGYFMo@ z)aJxVz03N+uU1LK(7F&yvBpv}iv#I w0MA)fyH@n(6s-VdOs?%pSxe^Pg~p07Q7aqB|1_G5ouo*4qmw_mph;u z6{2{Rs&=gVDYK6{y+E~MG)P$HS)bFh9oim2QuXJnEk%7jrL@nF`asH92uj>Q(Lu}B zM~lcKn++aij`=tb9-{l7Hw<3l9tXLZ zD@HuZWu`f)(JA@eKhKq(y5~jt9;8-K z?PONanMuA*)T8-airE<8J>q8R7}foG@0l?_vqA9u7~h=9-8k(V`HH&kRe2g`%CfRUB$`F? zHPUfNZ%gPc)!Rwvh4Qk|@2@MMLy+DbA{GF8+dnJ%bm30Z?AMYvTh13(wrrt^Mv>}@LFN>qzIaOZF!|NQ{+9MMVl%JSiKncpiA(@MqDwN%TM zX@MKL?mGIhIvjp4MNd{TB|Dnr-*q(UDfzxTNfzv#efQMm4LEBd{NbC3**80lAkm9b z)fbTTAxH^*qck%BYn8fD>A+{wRg(&@GzfW!wA^5c;Fx>=L2~-})xj?ASFnfkHfd`I znp+_o1m2k<83Xhnm2YR_jFe!oVzySf`$YSF9}4~Yox*ow=r==6vmmBb{l@i8iN&4% zH${ygu@(^0A8cdSjqcqTR)eLNKYxElJ^bTkw}2&$yx!{j_o9e3@wrWDt=(WPfVbIJ zI1hW|a1Ety3oajDcWLC&l!VUBBn4&u?Q&)#cGj|r)z_VV39KgT7E-G?o{t93t9ENZ z?v{P7mVNH%j}ornv5Vei#NMPL?4;eIb`}2qEp_@e(=-I$FCB3K(eJYO+{Lw4B)J>1 z_W3U5v)iCXrI&R(MLeN=+XL(d z&V81?w)TYX0QQZQO69H~4}0G8lCTUd}?7nA->MgmhUid}yy zNm&KYf05Drc-Szxq4jmg|LY79xc${kMFvre)mltZC_8Ly7F7JzkyR1e9Ut=Uu^iQ( z2MD7_Cnk?hy2}u~b7LV7roYSl_>N=vfo1rfdFa&4+FKJ+u?d&lqGK{zJDaNJ)_othVVS$GV1X;g!fD6m7ORCbZ!iPEtvR#kf5&oCGZG`Fbvt7o+4f9vqY17uXfBeM#u73WbHj2gN+YhlV ziPuB4uPWTPlk3DoRR?R;V84cR{cU(3T3+>myrFw;koxOx)PCXGF$!=hD}5^e2>hIa zLrby*^z4OSRs805d|E04doa*$DyPmAe6lZ~gD^oteh zva3ul$-1m`h%yUn$H4xcZH>Pu(~NNbG?_!qP^MwvQ>hX-G&1*)Hm{@ANsa_NsC*$Ok?c(&a3t?h7TT7r&Ozb%C6X_5yjLql<(ZX z+xO-l8b304==8(qb(72U_)AxR`mS{PeHeRq^_TzJ)BFFl%#BV1wBw?WbiRtCdpFknbQk+Jx+8~ycr9u$|*YRt{BohXM`}*OKx~%YGHE4^?ENfe$7uU z&Ohq~L&WKLh8V3=TgSLl8s(;B+Q-X)2OBf8yxNO&3TQ*{V$=4w;GWauk7-YB@y z<#_XvP!ppLAZsDRy_nemUo0;YCS;fel zx~Yz+kd{v|AMT6_da70NGd2TESKJm|Y9vrq1F8=~?-tn^)#c>I>9s3eTI{IUSOzmT-f(cIZ{&8m<;P^t5eHS;y&gPwWWQuaS!8k|CkXd?Rb&_x zKhdcanseHTe;HcnNg|9Dc`&ZrKn;KBdqT16Is=#RUl365l`+zu_g7ptv-sE2#{{?IT(W}GR5RIc@y zZU#IJZMajU8+A6~c=Itw8S2jaA3P7EM$P1}OSYSJ&SZ~ihP@BleHtcERMv)a%jSD_ z>QPP>F81gay2jzx^Ck4E%YXqh+vny4eOB8stx=Xx<*Igz3ZqDTH_^inhf=N &39DFl;(vUzB?JsN0&!V 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�i-elV1IlU=mD^5<#6mwLN{saoE>+ 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%0DdP4qcymMAM2_;)d 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≦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%0Di z+S;-Yh+-U(RoA1g-%uz^{b;v;(uiFR7#5e1DB*S)EwKAT2Q5z|`gAH(@y)KH>}yrs z<*9Gddlgdh3sac;MiAPobe(?}c0Z zeNP(V4IY+JqGg~QYN(i~7o<9Rg%!Ati$vvq_bY^HPprlY6R0)9n*H*-0ooenAQ>M zzVc|Q#|m>BUD?r{bk8yNWBtw#plRllnDcu3%%y)wQpe*(M*j(5{jV2w&8o+e*4^a+ z@e|uP{RbrrEmA)mB$EpMVU{-ncl~~=iLUh;?Wg-IA7<0ug+Ga37zR)eUSn1!{b8@W zOZll?_EW0QuD6~uuAh>0-LE$yR!ie{zhF7$lsV_4wA3B zPKo(B7l@i#1Nyls>T$X8>)khhChg>o_N!Rvkzo_AW5et8SH5VZ7~qO~fEZmABH(v3 zt((H_39hE)=kEnsfgis-V*Gm~U*bWYr}|DnJh$^Bd{r9{Z_%&F(&IA?HRRpzlHYIQ zxmbZMHEX|J%K6yoP5M#)wE9uA2>sdc$bPnZrJIoGQYuL&m-lCJEarFmRK|ONcn!cO z3G1rBwUT@scA{|b3#U*;p$pJCijEiMskdK+SI+f#*{=hoQPoDP9^9Xg774tJ3vjag zQ{QF>e}CHs{d>_CGYu7tUj-BRd`OBitexNW!@c=NGunSPswa*WX^k>4uT9NEIrK4(Ju)NjU4X z4;GG6lj#*xIUR2qC;uY=bUDBMzX|{Y(gx*8WTG&892#Us&_I|(paXCO1|c0gzAgBk zeHGtC*3#j5|DIzVjhF%D>em9ANwbJ|y=~mXQGAtW#0Pa}PmMTYI(c=4KihoTBa;`Vnns2qdG*WMM(PR;#&X#Hbt79}O83dYV)x08f3E~VSN;IBFh&iy=(He_ckhewgH*<2{D?<-xYHUU-PH}+|3dBWdg4N z!vgbX-ouKWU?pmK;5!@%y>&or&)D)Cbl4}NU=WcAkzJ1K>Yy};>G-2V3PyBp8tSGW z#DXwZlsU&XH-I@;!dNRapwCBd*}a_Haxm&4#(&Qs;IzZqZzW;OP+!o%=P2=jxO2z$ zEJ2XOBY}A1!y8Jcj$;`-<#2#4X{)GhM&bRKtql&g$O5uOCX*JnRe8t%5&$+x_MbXs zrbMM9VYnFCNBe1%vDDA%pPYT9onZQ+rHXIzrHJ2JXuEir*xkrFMWxfm$k-ycGEe(? zgbkb9Y=X%nIcBoVsA>a)*{q@S4|n&?WZ-FTUydSaKq&8j(#4Q|xKrz_5%DvoTngyY z;C&3#q2UPiT}>kw-xOzY3`GRnyG301OGhXtNu{Gz&U*j2N=ja(EeU0N4%T5JmXq9> zC)-YEZKW8`tms8I|D53CDl-*7g*9wt7;qYB9=LjpGdDxI5zN>;~*) z=HRk(F&w=jN4L-2xrMS@u%Uhh2GNH_?4V!G!@e_GP(y!;;Zy7EyQZksch;?fz*F4ZV znS?J6CDN}auK#4A(Pb%gJ;>LEdnzp#S(^RO!Y1lc}CeQKvGTAW!o zBQyU*6ACMvyd`!C=8|X5f!eS@_8S0tXmMwZD0XCE^})RieP>MquC+U6suTV?4_z@A zT=^>jNdE!W$E1@&@&%8PWv~`gf-k2cf%P@3qV1@A=~_Ybf+;ob*|lMWlt#h4t(0PJ>y^ z!OCu|>MfnPY!oF1W(Alj3RP%MKk3SM${F!Vul4Cp%w6lU6NHcskm6bHw#e*ioB&kJFr$ZgbnAIIf zUZ2%N+758I{ba~7`Jh`Wy(sn5Fk|&TGxYf@BR3qmMlY8Dg0!*4na-$6(ixv>N5?u4 zrGlS9Ri~q{T=oWA@`CGf^E_j_rNpe)6nNN8Tz5=d2<+yQpQmDEMCFanIF5sTnDpfz zn?7fzuQiy2R-QYo@<^1 z9cnb1(XDH(H4e!b3xseZ*q+rF`)egA(@muU1*~%Y4VmHeyFz(8*EO8W40h}cTi+<;MwKB8Zb2YY3$go-)mVcI zs2LJ<;R*iYO*Jm5krf-bKTA^q2C0^JOCpM!4YDKW?w-fcC8a`4b&2w~I>@-6wY~`& zeqmeQG83lV*lDBu9vG|Z%&Kd2y|Mb#^V}8Oy*~`VXSJ+rvSn}e7-;y^38~l|@$mGD&uR)a_#&|SFv2%w zPR?B3G+j@rpw@g@AxZo7Huh!M=t7aOXNnO@+K6b{hNH^T)OY-wv0nBMVqdJs9-X1V zES281Z@Qx;nX`BeIVdJju7n1*NOx!#KO978BE8k(Bnu&KIHyKmvKG6qEUCPa{@PhN z1}3SXQ(Mm3Uuu>;7_RTxH&;GF@?mIF2lT=}wh;HF)dgd8F94L5mHd8C+IE-i@?xwF zi#+`e9=Xu#CKTV(ARg~DVmPnM**bQ5USI4HN6~HB$tt3G+c>^P(QBz&qWjanuYI!n zdvA98XFe|Xw*|GLrsBCV(X!EFRKc$!-H%-T$>#zaa10uc)8hsDA&1a4ZIA3cq zrCS;j0xo~Dzr8N@LY{g>A@}uffA4$WAa9~j@C8ul6af4J067ITT>&&31q^Qij0gp+ zOaZJi1)O#PoG}HwRRO#c1%hV*LLdcVcmZNO1rj8^04bjWxvT)Wjsm5n0Huclb)*1w zh5~J+0Bwf?{ip!_iUQ-Q00TmS315hbPKkwIh(%6`O;?D`Mv22)h$BLYD^rN8Oo^vm zh-XZRZ&irzL`mRTNDxR#7+y#iPf3(sNR&@WTvkY2M@iCBNYX<|I#NhFLrJz$NVY>s zepE>QUI6%1_yIym0bfLcPDP1dL`hCXMOQ?{Mn%nAL@h!^BU419Ohv0*L~Be%XH`V! zL`CmeL?1}S5MIO(PsNyC#F$UTR93`PN5$My#N0#0GE&4cL&dsM#JWSpc2vZ6MaBM9 z#15h2fG_4ir{=^j<|L=)qATWNqvrmn08oVbqfGHfWojPnVjg2^UaMkWCu%;=V!l9X z{_tY{cxr+4Vu5^W!Lnk(_b^0D@uwbYp^;*t8EWB`V&NTXk)vXfD{9fFVo?aS7<`Es zI*mAfi8wip1YL;)8;vAyiKGaPluU_~GL5u$iL^0|j8%!udjX(liEJPZFuVj9Pa~IJ zB9~7iUsfVtN2AbEqR>O5I8vfGL!-1(qO?P!d{pw@!>968q5`2&g)db_r&Yr*RU@ZW zrz=%wqt)Oo)exc8lquCzrq$9e)iS2lwkp+jqSf&%)d{544KLM=r`1a@)yt>VFDuor zqcvzLHRz!=94R#v8N5F(bD#Y>rh z`%Rfl%$TewwhoCSLrt*z&B-aS7_7)6`-PGE30Xj9$l_M`6eh-2mn^|{Y+}R=WrR1D zw(z@{OX6gqup}i%c5K0zb99b7Ru1qKSVQ8Zp|FIxN=|iU#E9k2&`=H#t2ZnFp%gtK zD!`4r+>Wl?6}=yd|M-nn?2<*?L%*E33*gfO@Nl*Es{Na+MTN`w3Ac zfCnIXOaRHQHL$IpkdV$7UC#+!oCMc~qz2?)2WyorMUqG-R{;o0A2Noo2tK4EYygBe ziMv4e$s>wWY|(o_*iNw9#NF8X32&@jjx0lw#iP`1oNMWjw5KY;(H`WqwbU6jDDy zE}$tq6hg38r4T7@3AQe-ql+)HD`l(v4$mBeeJ+ItBA~EuG6OjEND;CyHj`TuJ)FJ2 zZJ5FR-@u?GJ9{29al$F)ZZkXYo*{w~P><`W-3CKxeq7|0WyOF!zDqU1`{wY5y;Bb? z))*7t}#Iu1s@}*MH zSw`(Jv77Wc+{P%>R3$86Oh~|KAAn z|4c69W1-?>p}hx|39$cx5C@%z9)~fPm81WkWHHzO6Q;R7P7CnN2no)}h|DUB&1y-^ z>PyWT%gmYqXDsAqtQ4lL6{l>KrfikR?KHZaG&-F$+8s4poHUypwQ3x6itY6>?TjLA zjNNQatnJOr94ssxt*ss2kE5fblatezFJGLUon2g9TwPt=+}zyV-90=!JUux2?-4i4GRkk4-b!sh=`1gjEahi zj*gCriHVJkjf;zmkB?7CNcjJE+<0?yb9;OH$B!R-dwV~B{yaE1I668yK0ZD_t_gwya-Xq5UIqyN^i|gz2_vd@w_`lBWf1SI3&;7sW;o;%&@$u>D=|34{ zLMWqn;-5Lwt8%x0?(v&hO zD4opUFdq>T`&Krc!%S~w*yq;Y_f-smoC1>qD!3Rr8QZ(^+fQJ)N|Ah?{P(KmYTa*k z+Y{fbSL;m%qsbInYSzEmELIs!wp^}<;vgMOWpW-%<=~y3@w|SdoJjHGtg2!7)?k{! zhx4Jq9?M+it2k(d#TQph9RQ2o=78*7xH(%O8AGnr(R{jCp;6s~oVB~(4kF=@Dd7Kd z(Va&I3G@EFZxS65GOMZR<|*EhK&?P7PgJ>3$|~@z)z;DRc)s?{{>M!BZ%wq?Lr7hh zW5&yQSvTk1PK9&p=mT<)3a)amrQ_QBN*00qw|2|YY-uk;CnO*1T@WH&#V#1N32p}( z85LH?9Kv&^?JMR~G`K0TOFiiJB;SnhUC$Rgm`9shY(IKhT91#Us#1fCq&p7_0 zil6ZXE)?Rh$b_kTp(FF!q+w_6&r9xC0fbAA)af?+Nk7pl_oI1Vz4WYd(D;o&Lg9=@ znHK4l1qdio4PtP%=uv7(qn0HHxeRh9^im&;*A0A*9(~NxoOqoN19`9x_k%Jy4{75} zvQJNn6J?le^@uG@Y~g*_pu`Ju1*MNaqoy7t<%x<6;mGF>R5BIh-ZfLjKoD#yQ;Rw{ zqvuN6j;hYs_}&h8ayE00vTCqE8zm;9<=o!_j;}{+kfZ%GGxgH&~6;t%qroZ?$tX4NrflAOJCTriWT91h$vm zjY6ZV4#jVObvjE2ggK|97s;Bok!&3=m5dM=ihr2GD8C#RMC=srm4qy{?XxK)KAcvx zLI{lNa9->z;5FgJ)a3ec-H*{CuYOe!z!Gs_6Um&CX=#W|GV}*jeIc-oD zEv7w+#b*gphSb+(42$Q<0#s|8rahmVa0;P4Ad{*{(n*6Igjn7LMh^%@U^W{_R9yJJ zI#aiYbsesH@&0S!Niy<*gGS3;Ptu)V3PGD44CB4GN~a?}%Xu4X6Pk+fhhUi3j3RWt z(`=$5Q(Dk;D!?fAGZr?Dm-yZ@Dj+M*G@hIh`T>QqZCpe-F;*3+l+A0M z46Q9Vb(q@{LCFM~fj2pA%)Nv;<1}ALStX_Qn9mILW3`D#)n0+`Kq3%|TGVAh3^Osc$hnF0>q3=bP!$LY3|r$p zU5zjt&D%sbS7SpKsgL6v+|uzq(7ANckN`yutwysxahdt^;?e3O;EBq18N(Fqw{|`x ztg#^Nm?4IEy^H*@!jYxlLQ);H((&}YAr4aOV69-VYIWO$Hhxin%na2k&)w*TTfko|o0n`qow8$@ z*aO2)YL`i_^9GN`YyD)K0ZdTlllBwpdGd2-GN0vafVq459O-ckv~)%Nz`hUoCLT z+0a`CozTqvFodwNe-nn#J@uJicJ5P=tPcZ4EM=0Scw`s&TS>@q<3+pLF{xihbs_nv z$`>Zoe(RHR=x&MteIBCcoAHylCWtSJgAwyH|D-egPI}ztA^WDlu-VLgGHsS1_g5le z-jxgAPv=$%L$7m1I3UCu-(#5|fmt^6@)CL_+X>{Dh-9gIiG|Haa@mjy~V}pUA1I-6NS@NalB*<&t;D-g7t){{#cgY3fP#lvz|B!e;KJZo4rjQ{y187(! z=GHsJYiBc7el$b`&p*QOfEm6z$hJz78mWt4h_fve8{I7n#+Qbtw|&J+>sIi->zL^6 zb%fOyFC*|zzl`*+yv;GqqdZKuk3ND*Me(3?4Wm7@dM=g^$&aYxZljKof9fQB zZs9fxOFAZ*p#2(*3j9lvHTx-Pp+bU z6YQdo89Lj0e$V&Utq@VVd6b}+8|9uCX|{FU3HV8Lq(fT*vD&!|yi2l@iD0nGeL9927pNURv(> z)(WB~(1VVYMKldY2o6T#5BRko$gxU`d4knKfQ|bCMj3z}2?6bvgD^dzN!LJQVV*n7 zn$szmR3`*UI#9H_&P-r%b~#x50h3iXh~p&`o+_j?#nX(yb7I)>vsH-9u|40K-6I~i z3N05rA^jj2N{S&sW(|jd0qTZ;?0pNwTb)gnKVl2ZTLTy(YZ;~!8D@OsCNvgi>iL<~ zQ;`bC&6q0`BHb34&=~Gm;bnju!3K;-_9pWL3d+)Z#zk0oraKy(g#8#cLz9Wz#Bn17 zN7__G+5tTr*7z{nSW!+wQwU=!O+hwpQETZ@L+N3;FA@1K0ky|Q2SZqhV$mI@(F;R$8p z+Wg4Om}cJF+z5$@-!Ixs7^CT+k?zI4zFYg@VQXeagq6bxb0os*C5~ihGA1S>w<;26HgtB`A zf=EaNQ-K|vUJ9>mB7&_NN_z?;N0P{Eil|-^vRe{DV$wouQm7UV*=sZ^Vlw9_A9a@1 z=nEx-UYdQQCDXXm^ICEou0;BasFrt%SyYNZ7L3q%qF7eCou1uJI!9kJskB}^&=yBQ zAoU}Dau!xvPMMXkXzo$W~Z5nL|G|5Ihc&8 zl0LL9m9C?0S@n^O2&ObD0?9P(RHa$DpF!DEwmIRiz&e4rhAg`#fgDS{oa(5Y4TxM) zT6@kfGaNO1Jo)t`C5Bwa=Tsj#TJ=iOiS>MgJ(#H|7@JC)A2M#go)fs`@|JB=R-^L5 z+VeIlb9#$D> zA{r#6Um~pfamQauOzuWCp;x*TaWF__y_-WVs_->q0@q6m)zfbr4YW2GPCSN zHlpw`&oZ)X6^mf6dHag?u2%g$?ys?3_mW60(ptfJy^Db2>KLjI=hot42b zpnQ>4RYm+YA{$y=Q?SujM^eAqj<|BFvbw~g((W`bm$3#7sdVs+3Hg1j=`cxMmZU_# z3jC{PZX>_iF1_}wYQ?vfRIvK>wXkKPmVdW)7_QEivF^gIsBgoJF{H3BIrRt;+o!{{ zsDp4)p4L#X;(j9^M3iYdQH8voVD3>{yjt7zOxUv)P{28{Z7d@$6wS%yZh#S(gLyA6D_IJwIuJ+J`@$Oq!^6?)ZqVxaNpnYD zet5V^^LOImlGCRXne-zj!xp;U%?ko{5?vNHj!Gf}1s4N4(YszH0YU%R>P)qVb3(~j?4`ZvBUx!;xt8b@_Kl3-t*H%H!0L5F#loys zSKl9|Y;JZO!hFN0Z<~|j&h_b8cws)@?2+Sy>O050{nT}@kWDVzy}B9pYctugIc0>P zZ~0T7vv1FaU!R(vbaqD{C2C$vOy_Y-kCQ-u;$+RqEhZ657s*A2_;G)#{@^{HvdM6Y zr1gMAZ1*}z5(-Hj+g4)Z@9v2Rd0}Gq(@vT2AtRdL*5J_ZK`kU0jlK3S z@h@($gwhJ(tvA2%7l+1w{;ph{B+DUWCvLaIC47|j`JB>JJ9`<2B@pZL0FRm1 zj3M`pG1#`?!}Y1$l&KX~`yPJ%gf!msXR;4z6`&6w2Hl~`5XkyevNYd6*XYaC0iNvM4Q z<$P*ZXbc&XLX^54J!Kl=z_>}8z-X!R!?1gQ3R=Ce`q)3=v*!%5-1zy_3}JR(E7EiT zN|Ki$m}}l+|63!CTyP+&kXYA9OI3p{rGsA z;#XJqoGXVJ;_mt3i$wiDWlnZxG__Eyjk64wj7;4NEPrE#Ra-e&XZC~^(Q9@1x`(l9 z)8dB~LoSlAvJ!v6W|96)?9g8Vqc)z~L(LWrIs=1B@0Vt6T3ZyCeH0d#vUTj+mkn9u z+_FC=U}2lGt}uzMD5EA>vo6?@P0Q8#I9+mR*z>!x#+b^tawy^XoU3=mF58W-4wuRY zIcAysP5h*{7LJz6n79V$T&upo{>1F$?TR4RyF^ zI<=%bu?%fVL=U=Bsd9T_!+yG_z{jHzvMu>dI7+d4oX#H)aGuMbn&~w*+?&_Q=+^VW zxw7M)zd#PfAcPtc}S-KmO*8zoG4FQtrOV?H-2i zA_w-!N$#LSsxis;y0VAylr`C$_xxf24}aUdSNAZ^ffOPUA1U^!mAf~{%3(yT4nvfk zLu`izjl|1#S$B2^(0)=;{NyIbmaMJjBmco%`IC6(CsJk>n}LWpde~iMqO@_h?9BFy zud<_g4>Njy^U1ze{M38M*ub_8a+TLwNpxtRy7$O>)bsk&)%{2%^9ZT^NX7||4!!1w zjr4~$5?2u+H)BJ5n`1A?&~xPB+j^Ph04tD~ZU_D_WzTf?yI-bAlK~stK_$%KU zUE{#b^^meXwGjM_OmKRhc`3*^XN2lA6IiDG{N0ORB%E3~<7;ci6(IZbe15=Tx#OeG z>{aE=2ulW3c|C3&gxtet=hytxuZB0TCY9fOw!as9(Q zHXVF;J_R?s4^H@Hrt%#%>qSNE?{crl>gVq7?60k}>C!n|P`7(SVqiF=Dly%GK?w{N zQjt)^q&=x+GMnvGH)W*12|_QFkC5iS~u=d)zo*I!F6b z{~NdNZZL@sTRgeP<<2E1U(skBTpk^3r0R{y03x+SF3Iza*+?8gL?~%8yL^t6Y*~R` zqYPR&p{_i{B)AU>umFpmiyv)zU_i=c$nL)JaIMku-SNjrp24%zPItf?ys{ST`H;&k z`6`Nwt4!}V41Bg4$qw|Xn3$i=xki3dW7|Y*vcLGK$ER@Z+fMwsn?duXDllY%O|XWm z9472(WS?FFA%FkAA#jKR5Mr4k!Xp(f_`8z*5W9|Yu}@%6;B)E*Nb5S|;n7-u-f&)b z4cauVYj#diJ}|lNNnr?Sm~=k@{n&Y4NnMrT!})>HmFtKHjj|ttV7Y*ls}q36ecY}X z@d#2+kvmpNxMjC=^z_ZM{r(8wyCFBk^> zZV>VX`009xTSfS}`LcmJsYXE#Kl6{t5U8XiS-#V=4O@Zr`@x-z0DYRJh=P({^J!`mySy;fdLS1(s$}BBXDse&yX*e1F zDtV1VbKCoz#DluE#)A9etx(()9h_7Er_zhE$Kps>(b<%i{wQs$q1!B33>9qLpqAXb_R5~75hP`z zNPv^B!=^X^ACro>j=RMiiyh7LfLytZ*wVaSTTkcRX+avr(u)?@unD31WE_Xw!&&J} z(DtgB=R;hu^wom&%9<#%NZY35`Ka?tuf2JPQ7y@X_t0(R_iDT0dMhFOHbw9jO+_=# zFZBjmOas~`J{3okX5kxO-WJ(IxnRJ)h~w1@I_xhbqPDt|FYDIj-JVs@$KE%zC|@s~ zEAi^HZ^;WL0_w&RGMGA}CEidjrg)Bp7`|~AMf#MlLFA4XRWdq{F}B?QdaUUT_j%sW z%J%Mith18W8D%gxKPO@K5_ngKjXp-zBqZcAO%OEYtLHv5@!LSAe`TWb1$Tz z0Bhv2nybmzrO}Law{uc-=_2T!b0OmUQ*bU3H08JGx*4x|e-*<;%{hm?|DRcpGG60Q>A*D=cJ|PH} z#^8!>ATCMOD`a1*z5tiUmzFKY09KO#=8>Nx`G6_L6c5Utu%)ro#e}$P>EyjLQUE51@4L`yL_&(KxXsF zR9t9?CF(OgLT13_QBR1waisJ$WKcJrBo#S=6?lS7K#rSi!3f%ipt05E=P!J_7PU(IV{Babr_R3!B?It9}yS{N-k z6g~M*b!tMfu!Lh+TVUP^IF|5;@xx{?}X-QI-AKWQ(YBXwnlEjA+S1{Y782X+5Y!Cdg>i0D=Y4Trd+iu@;egs+P92 zgV|dd=qA^sy7I!#@Fu-At!J^6roUfz(r%?wakwmN_*BNdBd?WhuG}?FOck$cP}>K- zUN(;5EPVod)-i#7(Zh4%wp6QhS%_C{zCh;+J z&d#EFgRxd=pGhZ_{D!)g^^D<>*kF+&Hk;Q6TIMV9%*ql&cju#{|KTUL-J_H4*r;f8 zphfdQxmKJk1iFA~{R!^KUgKf{i&yBbRvET`rP%c@w)E zl6Y4xApXh1>b{d9bOw4DKcTD+Vt<(oo>be=L7ZI^;uGFcBf;mG;#8c zmDZ~`c#dZcRH@4O_#>_o>dXD)kI3xlBXf;z94iDePK#!CZn7eOHPq}g-I#23W!q4@ z`OeaoaXh|50cz*<~{*CN+;*d;^#;Goe$;DlQc#b7VET4 zzuA;~L*Ooz6%2Nr*=+hJwe5Ongcynqd89a}jzwY&_EquRWjICLi`=AtvT@ps{`l+S z9r5S$6P=I6dX%e+pw!`AjdJr3VqUw1j-s`EB3Xxc>o4bqkwjPR8za-k#uCye(h+`J zrLGTg#oBAqnnewT@p_fT&22I5zF@M!4BH6bC9{x*HTxogrsJ;EDw2r;OIE$s5RI#h zgiqUQziCWA{nevB_WMyTvOWR}f&4&5=MOPep0kTVvoL+D8&Y@W*5c01N&LL;_l5an zLWlIecl71_oJ|J__sufjYh@>c`B$a==mQHv+a!ILFF1zyHY!25%JxlilbUE>V_W#p z@7j1bLv%Yu;@8n-;BzMeJmtej?VhydLW`>PY`k%G-;gYU4Z$!*mN>3ngf1S+6sYzpUN7@rU-OSIgLtnBjK37h5H&K;=X+y;(KZY3V?xny z%n65BeJ$fe{K>`bwo%W~sPHWD`XPO!sa&c9!AK>%?Hyv>=FN=**>w}i^3n8|xsicb zNZ9U35J~Zjm)^6iID8>U3c(WhSEy*B2lPUPShvM~j@)_}Th>SB3W}jVNpVDiqL>$M z35-z6;lbW?+W}*c#NOa1a`*Ik%DBaG38E>WtP%Gf}Q9S=%hOda_60&j-^jEWsoR>nc{b0$E>D>D7s{ z%lT2HB5^2(NLz^iCwts6H}zO>f0D_W`2Oz^e3a1&XUQYC4}G8Vvr(dyY9v)cN2%_J z(84vU~4d)@GYrT6o<;w9SO*tNM=ch zxJi%dn+QIb7;>PhcOMsYNG^erxPZa9uHbwUpX_iZ6}D3#rS1}18mi4kTHC{mF-a@i zAM275gK$sCY8;SPk|LMX$Vc6b&T39=SWwkV;b)t~kCOI))dfvDM8_%=IXb7{uyAMm ziDwNZ4l4)8DW)GfCKsnB%?+nTx6%*YW5bhX3h|0$EElshe`kfOfcvfs zf~?uZHrau{h&9ZsYs^9N?&BUz?Z@iLUatgk-eBu$wsQ%^J!mA)&QYH(`~^lb%3o2- zL>g()sGklsWBV69T@<{e>WQW~Me%SSONL6@@n)Eon36wW0X2hAw1OlQ8Qh5Cr3mH2 zNEX^Omv`saVWX7sw4+_>Xk2(rQ_(7*FqC0b3_vkx;>+h_ATo|JZ6#&vJ(R){EqKyq zjI2>Z+PDSIypR1$ig7Y~q$}>U8N6G4dT0q1W0AVk+BP}89{Q+SO6g|XrD71CCF?95 zFFe+vuF|UpEjcAZgbgCrR4fzNISjSch&(*cv?0^1Wf8MzZ=?8@j^xN-?ei0+fMt4E z=@R>}Y#tch^K1a9wtt`_p;R%ml}IOyHc4Pv(>-i0XB#JRSdr6U$;1@-AhzRt4m;A2 zXn<00kaPXnLenl3*`PLZ@B!Z*D~%g#HU9>w;}ui9Sugic|C4PlCyXutZJPB{CG-3g zI^{+Hr~b>(N>HgPtin12SL@Fr#EM6J)hx}bTFtQO7T{iT9o!aWV>ueEL9X3evP0^( zOH6+ygFp|hTmD&6^ZItj4K2fZ&i>7iT7A~ogrpmT2(+!a$0SxJL&%uGR`^SAobdLV zJ0daE(nxJbpyTG)Bi~4BjN7+mTZeTywAJpsiWw!)Y^mZr?GAvGj*GkD@mRzs4ePJb(wIZnZHQjjpoGN4*56y`uq8r)`+2G;)G4YB*RJO-7gGOTY z8IG}xv1+v|i}F{^XVKx^=}6>M;(a(A-X4ZjrI<}Xok2P4)R#Pc{G+V~NfD-&eIYB9 z_wT9Bh7W86B6@=Av7I$q>eJezt`3sHc_B{T^j$1 zNS<49gL)_yn$wZh z7x-fyyq-jk<1h%ayG$hK=6L4BUcbljU9hz-?MOzU_1Lr&aNatw2RG;`K3IkjjBgXl zd7_Jc%%Eu#?s=LKewvwnnpJk1-Ex{Ua+t9{<9pE6em+E<5GS4W;#$Kh8e=~t&^ zS7$9(=Ob4aD_56CS65G0*YMXjPqsdZ5t1(eZ_F=kbYEcjuO9->?|4H#ihX&uviETg z|JZi@TK468I>Mis>%Ye5k{luQFJGW!&$T#$b76v?cyGR^U&G7V-?dyLMBE^^-k^-$ zpswDa9p9io-(VozViMe9(cfb8-QvjJ;_BSuS>NJ&-4aCH5@y^ImERJ#-ja;olCIv8 z9p92a-+n;2qae7Wq`#x$yQ7x9qtSuf(OTcpdEL=R+%aU_F_zykwcat0-m$FSu^!*C zJ>Rh-+;b4zbJE{)@!fOF-hb4&=dr%$^}6SaxaZHfe=kuNY`y<9dM~tkFMND2@_a9f z@E}I;AWr`v!S^63`yi$BAZ`618E>v2pT>36}L-rx@uFcmM*IDH;J z1OXH#$ZSwBkyOF(m?0K#05f*aVL^cY@#6<5DCmk{dNEI91Tajd=kPB88^tr{*b|~j z^zB0nRN|9!Jrf0m7aJ7V;UOX#!~szA13P*>dnG)7fC95nJhK!)Q!qpZv@%hwfkVr| zp(@@L1<+uQm#Qi-OTi0E1K8&c#N-VfP5*)u>0MO>X2yJFdhb!O^L&3X>G~-FqcV}e z$KlJ<``#%t6d2y*HJ#vb_s!Km|X1oj&|_74$621ZPJ?r?LCg zeEuzF_nRIOn&QUy`|NYa>aVo&XefTDgl9iJ!KXBYKlE$A2M|hdY@nb_{D-&z?)A~Z z|K&FW|C`^8{g0shFX+fv=qQ+2=$NR;?*{X~AY!8a!~c|<(NPfJ!9Yg9L`HajzB|z9 z|AK}LkA?(~js%bK4&pm-7>Ka%pdxu{{jLm%0IxMz{4QJLnFP* z*02Ehe}H}$um9s-BO$>23oH`CJ8(#d@W}rF_YNusJh>C;zvD@q|BK%|&BgV9=3fDt zbApd+OoDS%nqvgWJEp}urYAUQEIMr_F=Ht{W+6UkF5Yb_-f1Gku7*IG+NVS{p?GzX7Tku>-^yzm|6iO_8Xp~)9_yVO?_QYbT$*fOo@!g2Zd;paUz_Pz zo9$ei>sg!cUt1VnU7T21nq660SzTRSTU%RSU*Fi+cvqaawzl3a=bfFMchPxwclX_O z-rwKJ#bk|w~MR*b- zXN8chTEt|Apxsz5<6`l2&Ih8pgT8O{5tx`dX2EMk!?A=w%dt$gZ^beA;$iY>(Ix*k zesk?+tMkt~Bi)+<=|t}j>RTvSrJrL-9goOfye!5C=(q>`5If4UVaT`RGG3|c9p=u?=j+}7%qjiRLi%pBG(woW=NUcn7vl8c&FS{1 zATqUArN4k%?u-)rwn{OYrG(lt?RQ+yjc)oRA50mBy--|j8%jfLpbVkhrQDH;)MFg3 zZUhZ-M4}|YWyV+F*kk!t5Y$;%fAE5(rwIy@XA6amviPH^6ahTrL827CEsY&^=G-6} zbffHkLO@u>d?ao1*j@l!&4@AfsqSST4Ob5J%}>8^F*E8=02L(Az=jWa#kx! ziU=914D0MFs=?#@bXIXYnLj;*tjdoPdOXkn@tYA?q(-uVH4@tR;VecJ--lQVXPyuo zo5htrZO2)i*;Kc*g`Z#dLLt;JmXGB7(FdG8WtDg8H?5VL-^*xU7g_8ZFo$dgGTe-i zdTqI+o`l;uHUH_JDg}?mG$0kB*z%d4K5uoQvaDob zF{Yp2BNpXS>b_g=yz@Jx#N_$%`Nz+wfQALjoII`#)s6yQAPI>pm2bGkw-(XWBmU^_qD+X*;g_q*ogA@#9%# zjv)5AXvYrY1vmQ3;>F57DdUe$S@ypVS}r#&GQBV=O=k>PKYaH_sq6pTsqxId-rK9c z&nXosP^8Y4+kdv}l=bV)x%Ixn_p9O2_lMNZnSX^sIN?U?V)qV7`tcM>kNvwFA&7Qk z2I7wm#;kzihE$XN@|5XA_r)}Ur-@UY80Kf>8A4$Am?5*`!C!PK2OihRhvQD+b8x&7 zW_m3^_gbsPj8>(EV1*_lhXbYX9>OUZ6iqRM-1)JSF(Wuju#jxLzrEd_OET{j;a9iwc`4B33-Gl8%Xhjlr(w|C6Mgd(?k@E`AJWf}C%B99gcf58up6M#e`r-1%456iR`i{~MewBUZ1(TAG=`-fj%3oNBx&T;^Z9jDi3 zI;W}+Ep@Zfo8;T!%2);C($P~5nE2l3G!zEIGl|WZ;cM`fDIQ_U-pQ)f-AUHETYl6# zeqThodv6e&IO_3cOmYI>e}&>fgQF3fK{nhiKvb#_*iKRQAjYC*HnoaaIH9+hxlh7q zEa!17nG`fm$`M7a0LpgYBLUxsC=@H?u{u<{|BMw*IOsEMGmbr1%oh<1r&)Xy6zS4a z&-rj^4V05#Dhj8CLKdqO*O}0ClRt~lXa`E!ZYX-Ys^kmM=F9LD2>CDECX2Hsvd77< zG#N_+=#>~Xbj~yx#66g#Ylv){I>;gx(ma+97~OBQ$%wpDzkcDVHkpiGanardL@KeE zp-kwy?kLnHEmd3ibmSmwH_(%e)mZUOuA>F3Gr8k|EM@)HThnL7BuXh%4JmL+8Q{!S z8zILg)(V;_*bfcSN)F~kIRFxI-li0^IvQqsy(!P9wyeW(O$mjK`9ST^;&p`!CL8FL zmA>y>!L>*h3Y%BZ?gjK7Von~Nn_#eZ=ztPCYZM9eR|#t4yKT^N}4AnJzAR%O+0%p)Yf?cX~yzbxAC9qaELU^h;lxT2T7 zgMvP9wy$Zs^)Wz7VHx_&kZYFvICweC*>`ulWL`#ac%8!d46@K?HJXLtY`<5~8ezgn z53T@%6(sUo z=K+-H>-48su9$K~OCs*4TABvV^ss76bmy#5o2Q|2S8;+59lamqm{@4a4GZRyVO z&FExvW(3^dXEdEykjn=Q(7b(TQ)*c%3hjG2B#)=0*ghvMIv8C*w~Z&qe}}>=2*#(^ zF3pU0F~^x$6U<4iE;wSeqc7SMp3Ly>yF{v*6grSfsb7}&{Fp+?dTv*ZQ3)e_1LK@` z4mYb?dNB1}E~IweO15Neju(d)M^Q`T0!iE1CW`R7Y>c;hGrvg;>yk5U?Tp9vVW>q73W+T^LJj0BNw z>iXB^rJnYs{&Y8(>p#%KZ@hDyjs~0P0b=0%mT~I%hm^OuK?)`AWb44&Y?Z&4!Ww-5 z_jp~WH-mE~rH1-WwugGrRy7QC-Yya+PxTz1Wt^|A!{@A?asz*FUA}fMpI?1R{3%@M zTh8^P^XhcQ4{~3C(S70C(Wco9xrg#M@EIQ@Zhcm?&FahRhE99e8+_m%Um$FxEx;?V zmEN}x-_+$JaA3t0=260daeF6qaQ-(MZgqpq3!7c~M*qF!xE#=z6cUwb$>ZoF= z1~c1OmH=b}KRTd3I)xo8$kJ1!719V2!Wh4VkyHqodq+Z?)x)JL!X4Hk<88oBgi&vv z!ORR2K2Mg7G@4q3pH;Q+z-6Go6Mq96(4uuv7(Yd1X0$_51RvJ_)gX5DuZHINB1@isluh2d^UJhMqGMV6`JRAWk;*l775F%`Wlp_}dyeQi)uOvaenD?}Faz&hK zsZ_|V0b!yJb_LOO8PWKf`LK-=E0=Jko;&q^a6PczB_3nHbLP^P0L!F*Ta6LpX3 zbV;{MPFILZbnuB+ManSc&q%H$_E>k5t4Q;0&yZcq5Pg*d;bwxPq&jTUZEU&W+jTew zlb!Se4hXYSUb9{I06MlwgjpF`dT}|gX-V(*en^=pl$jwuz~XVT(#llg$n3b+)GzDV zY6v+qL^CPBuHA@8`nJUGz3w*>FT2fOMQCZ%yPTjivvL zi0)1Wmb5S(b&{Q&(M44TUdj<%Mp9f?hLbbr6HF4`3+BFwv@?YNmK`tTI>}EYF4!)& z)3%U3KcPmgvR_Hh3+Tw>oX@LaDGbvqd>utdWRNLZ4%ub-Eb>&iK~l7dn%AveaFr;H zf|z1HM#K^&@un$b_G=LrX=>mYKA%CUwM#KQimMPSR3S9p)+@UiB~r4=?j%HhFD-gY zfIz9Mfb6t@6RnV&)rHr-)a@DarV3Br;Qh0Akd_DZKu-1NQ>oEL^2;_$L3gW8M3o*5 zQC?YV*{K}}6W)lM<_-|2#!Jk~SKi75+A8 z1caAWzOQp2tpxolLm*2*TV-|O_P?P(l3n;6M#n2@1xuFZWSw6e|mq0TwnO|9HV;M;kK}8+KV4Wsgve>WY z4YWK-HotG1`3huhKf8*Rm6~IGJk+C`C##y1(UNtAQ}va~NuH{^*Gd&vTBX>kkg41J z(CaJ=+8`G#w!Y0OlLbKGh6{s+k6ZXIO66d#_GbZTPh`87eXZG6yB}K-w7cF--ri0L z_d|4tc6A5#Mu*OG2LJ~ED9FW|_fBT0-}9`GkM1Oi%r=?S%YUy4A#>iXFsRWtsv7w` z$%j+bnR6XkHxS)grc?~(0#tT)C9HSlGwL^V`!>BOb+=wb3{M8-m3RN1?3U?dzRv7H zmg{k}>lvFWNOy0TGAwMa?y9-yT4sxHjP8B3@7@^i-R|x_)(xe(?Y{V+2Gi>qyU06d z>$y@Y26A=J8%8f)1d(d@%6;g!tnO`=k33$(&y&lQiH_g9=m*s3g8ljsr?ZgRn^1q} z+z2;1J`U6?^{*-oDzY^zubX9j!OyelTzwpDdPi_n?FW?~VuznPAVX0M4Q?;+LkQ+PjirZ+UK zGaTbP(U3V2fbki(VTxpailhP92b*eh3-|U7YZaU<=?Mv9gG^{AbyQ8dPQMj^^#+P4 zoLpoyvE#Z;1Ka$jKG#f02n8`Ik*bIcW>#nSBgYcgGz}vUqJKzt!AQxj7|b2>#_462v+wAN?|)?B&}HE59%T=Kq}UK&#MYpZiz>B=ldHoJ@MY z6#RO!0K-`P#Il(6p#rp7$o#6Y*dTp^zWNw0pr?2od?reBhEFG5~8};;@;8mJn>*ljE;5WucNf zqqG`p+nyAW&LUdzVP>^=Y$6wVElED|`!vwaf5p>rv~dW;P93n0(PRd%fu%?c-tO7R zs{Jrs{PNT;O5_ZtU7?z+&YcG0sz9+Drm78Ug+!qIF$kTs7F^CT@u;{HYdM9lHj708 zrIOp4&c8QVUx>GwV}tf5^fJE||Lxpjha$+`ZDF#&hPIkV9AU+|u*B&8 z>1|kO*X9wz_R4nDvPy3ImZ666`@~-XgW(9<#uR%LFh(xePn{h+Z`gP)th{$;DFUK_ z;aX!nvf$|b9dmBdVK{UF*){@L#x9Ln7W%t2g^ z@ZPHJ(5OM;g8g05hyrF171qIx7wj~5=hPurPa>L`<1@Ai3Fl`|{Oi&SSZzS}RGTq` zb#I#+08=Ny6`Fk~vU4aFw-*%~FXa@Ah`6gPu*73bO*D-lr9A4w0VP6cA z*nz27w1LKwmDBc%Qe3LcjwA8!C=F#*$G-g_;vF3B4Sb=mRgWDdGdrc{zUn)R+-Z^lc7Vp|`? z;*T9xclgg=MV@M+ZdOo+RMo)}W|!;x3^!Du8LAhPBKrh&Cs(x>h01L^VM+quF4R$@ z1}R6saDXKI0nwa%G{nS+jGF zEZ<2>aCK$^od0uq{rmcMryM49YM*sA5O?#b>PBMxrbhLONil_1tJcBjHfzTcCI6PF z`*t->Q_AHf&HqoDm8?=B)19UK-B?{!jJ@qv#1;tq^n3^Ze*2DrWZ``Ks9>kKOXnLF z_FkcY7~9-8{EwRu?C(b#t#!sBh3Vh@KHrMO_ltcrJD@z1$Y+y^|At>70;icNPrs?= zz)exUZCQ*{H<{S?3bu6>%i%j3Oz(iVNpC4GLD0~UXrwR1c$Vr!vdBzTSeME!L= z&m&gsh2*g5@7K+U48M+N223h}Iaz&EgZxv{VAzQnqlx6(Z(_fN;?hl_T?>GoDs$apHRlT%4N-X?X|8S5_& z2}B~R1_@*;*rdqa0P9@O_sMTcy{l-Nr=rh`QxO8cWa+t!l5JgQ1D{wo=Md6N)N7Cd z!T1e@*{>rUgwCn|!#7V4Wvd6GaSr216Ke1<(_kM@HPGN_vo$K>t)Z(=LYRbb!9=Dp zE~CHM&m)8LUMHBz(X9Pjr{s_@jv6oh!ZXRRQLUl0^1~=rjqUHzMHwb{$ABO%%jWGA zky(g>?8&GVN)WHR7QU(y=g8}KD%Gsj@P(~rGVk~l`4w!nW9zklnea9;YFef~ zyh*XDdgzz?FbyQKV`$zsjA-Pp7B;$H7tlCg&l7NQ8`mDNIa+U814X}##j!ys*$ zAsa+b4a4-QMVhun5hCN*oqze}K2|7gER0BtLB6q2pme!_iXiy|O9sv}~y3Wzw)8*8CgT)W+=w$d{$9f~pY;RlM z)^(e7ypqLV_xIk%VT@`nu{>(NZG5WLSo8WSP*g2>B*F~lv{No5k(xmCyns1s1t6N?;V$=m3&cY&z#fcAsbg~WI*OL~UPp2h-I zXpMIkl^y?>kfcUbbns#xm;QjLWL#Y;pQss_DX(Y-aIyuRXC?xL)o=CL@m{0qep9%EAuDk{IOl9MKN`YyuP z5s!^gldPlku*C?V0E;pt&suU@gGhqBE%hg#4O0JTVgO_y{ri{Dnlvc+!DX_Y4j zS%$fh(WBq>q~3hRkV)8FPWf&i*%w^=UXrtbTX_Gsa;y-Z7a1{LH3#@LR?jG->d4o z?etuQUUcifEti8O71RZ}mhJK&pXg`aYp$KowDYev<|i5|MY?7cPd}6^PpWCx`m9|Z zL)d+<>>>T6f}eQKibEgDHE@OJN17fQ>qBdGnZMwccO-`V48l9-?{4{<`!zR?U`|HG zt!yFaK>-V3C6O=>&Y0edo{J3}GHFOc%Tm#99C7lf2c_#ltm&j1ujHJ`Xt&eWdiq~k zI=c%QHTtJAja@NIq>&MPm3-3`ZGg&eXSJxadEfP-zoq9uRA>N>h)t&cfWK~?pVj_`e@GK7Yf+n`6#l2DT-mCjQtPtUC8iPXyAIFFGuX zby#oQ^%y_UFH?Wv*l@|eX-aeYNmfWs9dR8c>KxQg>hM+8wQI#uAIh?{*BRa3lY3Ii z{`F~*Z|^q!`_RV#Pmy#=YIziCj&BD+*!#`;cSCBh-tZ}|b%IE~WaR;)=(lSOByR;3 zmJeL=)HFeqfG%WNINwavd-^c#UG%EbRXvM@3o(m#-j9~qY}6XA?Dxj7xlQ8O724V? zbDSHAlSM<=1`E;nOwgp?_cdmmv3?SA#h0|U=yy=pt^YX^Uv(CH<98WAWzj&#>(=@< z?#kXKtLsozSK;UI_2O`Muj8z{|KaEjbgbw1q%B8Fa?h=$u*ku?^2ZVI3qRPPg*J=) zFVFar(Kp&{U+0?3Q^)r^KW@ITs0mR81rzLK{)UKNX>PL`_$XW+f0?;a;o&jh`M6e838$8r2@JZ$K)RdgZ!Vv zvFy+a2D&k6*HNSA#`cN&iGL*@B%}DSb~GdjV~kU9n)m-W5U4oi58SkaHxlI>Lp za24iPCu6h0%icyUZ37Po8+2|_51>Son*d3}A_NhS0CU0}Cm-G_PrX6GU_j0gM_(Q+ zW7<9$f+`om>?&D#LMcPk)6$}T{i^rPbF9p0D(kXz+r%5=qk8b(NDye$WthO08_(`8 zx159w=^#4ATb6;hL2tU`>^tX=yZpe1JCald^uMF`8R@@*phNWZiBf6 zqkY9`o)`nRZmBj;LQxUYJrVUpC$5(XXy5WUQsE;IrI zsYoutK|b6~hQTkwPMN!}LcRwl@>n>|arjMq%iu>ho?xDdqI+C-&={dBph`Fyt1;F( zc_K4JzMLi_C%QkUCpzO@*%+>1p>1T`GI>JJTj&vE@oOa%4W_CziyqD zTHVeGpJByZH-T-ko;r-E`X0&QBpE?crKXb7=GV$d8s%~Oq#%P{Z9ichg5FMc8rrF7 z{2FZ6rKy}frL+tQBEa-v5@{{%|wA5O-#XeP(|-Zs~Pqt6BRq^JwfotGiMse+kO!-N10@mm|yCG;<7koS%P6%l5bf` zW?5Q$S;l%<)_qwnbXh)iS)p`Uv2|H#WLbG-S>)ox_Pix|pj5b9O1`X)A9Cj$9B7r=2_$0-(B0B6m`ddVvSSr-uWNoMVJ zY`9cJpojaKr|3I(8IW!Q@WV^P+Upq|_gG}=@zu{V?{w!^y|@6M8P<8-!|X}dLqpdi zQr9C(*P~k3qes?bR@P&W*W(`6;}JI!ARCDc8%cZ{$ub)$+8e3X8)@zv@ZO`0)Q!y2 zjjYySkr>W>xEE z^~h$;%4Y5HX5GVPJ>pgaWUG;3tBG%`S!Sz6d#lxYtId6@J#?!hb*r;h40u@8Vs03c4=?ScUir~39{F8#9THaiX)1v9irK6w3A z6z8e&mI@v06?8Y&m}C!F^k}?+2%-moIB?LoiA@e(6)hox_)bBq*2eVeJLiZ&>+su9 z29RPMNPh|{1O%P8?qIP3;Ogz`5IO|SWaaq{*shm0xr z0+HvdYCh16gYt^+!gJbI*HOec$FhT!WJ&^J+2R#}TfnIJZs19lGRt7{YLaZ_BR!=DNV zTpd9IpZBT54h8x^d`^2yj)$y-mfQ_NZ}Ti+h(WB6mTVOu5u^iAojiKNU{>cN@lg{w zk0Tal01J}Ei?-Fg!U1=JmHcND1%5E+jwx*B=m__ayC6s_&+-(4#>xf8Sly-PI9_l$ zV95a8s2qVhjtjhwN!Ed2lmq=T>qCZMr^d-oB^gg3nX~Xr2&&hydCD2LXwRfrg2O3`ZE@R#(jb&i{=n!kw@G0kj z;`PSjm4@QQ`V#s2QrY@4X$JBMhRQKU>ft7uA*MP|a|2%sQx9t^=lAv>Y(CoBezdp$ zAH(a&$jIpE=-AlU`1tt5#Kh#};?mO6^78V^ z%F6!+0eN(OzJGDCdwIEibp^Y=-nzNjy1j)5c6Yb)?c3h>?}zvIUmqSWfBd+6e0==> zBOr}Mywr=4-~{A{4!v>b{ef_72KgNMM$m9DDzA;hc;n#^gj&j^r=qb$mXsM+Qd*$! zU&Cu#j6`#pTs)th$NEI``|*5n2@iIOB4$)N*_b5eMy^rSDD`4R>HnqS6;43f8`BSG z+@6dFYBCuZ*)<)_grW(8dZ*g!6;fVniCM8UyG-Zs|K$&XHM@ovWawgOM`^LVBT^MU zqQGqbFT?A96OhgJpQ+P1B)dK3l-9e~Z%6wP5u@p0Tb>icQONKjHb0P6Rua?KmTCOq z$Z7F6WLFONpKP}^EnlLk)cSg!zMn2t*Jp|EIqYJhUYyjz9&h3X$*`DAcKh~+X83*> zsV;C!lekkr&4%39QAcn!wis57->C&6ulNw#RP2Y5dz=;;q9$1B`E|z1<~#ObresD* z+`O$qIgnlEsnNP;2{GaMh`7|HF1>U_v7qq zKGZb>ih#BOwUC4)2xyu>UfY+sn6*6)WLTfGXaszMw4apCwLYz7r;bdR*|<@h*is_XOGh9_4CTX3ky`QGJq4G@D5HWUatz|O zOjQNi>-b)cHq}>cFp$uNaVrNaq^{G3)h4)4tiZm3jz){UF>gmYxrvkOmt}&h1#)dm zIb-J6)-HFp+kXtNJMDC#N{pSyXx-I)$8}p<#@Bt_mFQz#nU_s7NP?`DQg;{nRd@j9 ztU>1Tns1X$*C)&!=FgMrUrzF(GmSc{HZLp)h^+2L5QExWdMUmu9tG2?>0R}Um`{CM zQkTPg0P6@T!^gaFZD1I@Uwsx5FyXC0F=Bsf7^N7ctAA`RsD|$$%TjHtx48dMYMSs? zsQvk}L35CMkyJssCivOs9^ca?j@qkpeQim`P)nI@Vke9`6TaJ_xDXrgs z{;~EqM{11|Dr5XpRo>-8iX-O=d7XUk}!{vu*NedO}kL0^l^{DYFC!JXla;mf*B#Fg1g^*yTHck-$WZ6+fQLRbra5sr4 zVz}Yehzjp*#W2Grqbq#s%5t{jlK3?APFLqtnL1u$EYBgHdYZ=b&SkhY3Tg>&=;_@CY~`tFlVT+O zO4#3LHp%aVBq?QyOK@d&Wf{kNE#!M=n=_U#*uD4 zxzBC(*~!url(B@Wg7)9ivoOl`a6pjvqcH;F67xtUu0_by14wsPd(u%)(=FResSArt zNPiR-lVt6@r@K*}-IfHaAx?z@ubGq=p59uASrs)%ouDB_awSOPmoSI}`7G@gi%9vT zP%B9Hj^so{Teb9#lX3~HvnFDgQ*=;=?H=4F-$hBEms@CUjS(m;7iT@x94f%U&e9SF z(Nr7FRyu99j0Dw9_t!$(l_E^vR^p>vf}YS0#1<6ShuUOoKa^VX>2GR9&QIIlE1eo) zDlT;!=+Js!v6|{5tTv>XNv!MFn9C^{EJ-IdO*|mwExTn~S7BJDN0E?IFpnE3?fpbyo@w=sbqTE2~}Yd@)X(Q--lW z+z@jgrr(3f7Mf_`B8`Kr&_{~b%?ueAJmOab@!%6c^rEObYp*KlY9uv*ZcF2?&6GM~me=|)N3X3~;WpUk_UPSGLuXWSdT_SxATvJ) zAiX-#$>VVZuS4GB7wAy$7=%qy&XGYurqz^O!`(GI_LEMO`=w zBa6>^QoQ>^u9N;=ci6Ci(|Rh74vKXh7v)Xe7QJK($-Xx&GJa>8_oH;HC`_`^e9ySB zP2+4^JAH2Pb7`d^?==V}aPD@E0PglkbQ1GFGk&)`Zy(o`Qd~+6_JppFV!e5ln0qPA znXu8~RFmJIW>sP9PCMP`QJDRTUpm{svBCtXHt_2D^BY$HB8nHVW_rYksAMU%c(zMw z-3isf47_56HCXF^Xz;akd5h4ao>9^n>G{{8Ekeh@i}36*1|7maYW?((XR1|1`$}M3 z=3^aOoztzE-&j5(s*L<+>x5r^5lA?X1Kv)zqy-|!eBpO8NEr#JT8!eHG+qpI%HPws zjJAZYf1r7&e#`eY4wj%2Tu}M!{GQIgk<&zIDHu$mohY)beIs68A4g)QCivCxtJhlp ztmgx&|0#X=IOYwH=c<9|vi;h6h_(~Ujix9qT04%%rIdA61&0#Z#ht@_Y;rI}H73llwhU+3P*2cwN7D!1p{RmN0K>bw8K-(}s#?a-?63 zHOo=-NIQPbbc*sO{l@;fyuW=Lnev|DuYZ@)OTX(9gi6Bc{h#PVC(f34M<;oqpRY>Q z{``3R>Js>~XHWFTYr9Xn{p^`4BJr&kG1cB*urok?Q2ahcmj)<17tXohX>q*<-3A3f z*Id5K1^jv+@Uxt0AU&WuooJ%n80$9R?;9w(78I$1BqjW#L=!al7|PDfg-Y%AE!>}A z-JHmlhU2SUUy|WLxgk115N!m2-WH0I;c{pVVinMQl@YS}Ey%*tzgI30l3~bYPSd)| ztm74`x6a)1!>P-~$@~OBH6DP46XMMmB2W&!7=tQygaudtQ07DMn1dnApHxTuIQLye z218?zEfvE3-nD-~&WiYVh|ec zpJ6!mhExf`j}R{+h!`(KFGS8(HYy`3U?{?w+1-`cUzpfG73I^bz{s$*NRJhKqYip9 zE=3Gr)E-S#F^UOlMo@S}NL5CR`axK&tu?+tcm`1nf^9hb+d=_-w>s{h-Wr~^2%P>A zUMLXs<@DW%Z3G_8=gEw?VmcreSMZoX>gd@?Q8 zNE&xb!uh7idX|{^HA&r@5)25Pw@u-#)W@F?7tl}nkG_@3#80V#8<{f#LGdiOVRpuz`=D)sxV;h451C2Ngjq>X zS@rwLA9a({o>ILtGZEV}2~IP6NCH#jGw|+6ARg+Lqk=7ASJih&*IY0#5*=pxnE>cd(Scvh_VJ*a+I`lO2bnWDs$|;69!0fFTF`M8^yV7t#erb z_xkzwXYdx_G%jFR+lDg2TJAPWB$c3KgajC(O^f@WARZWn#US<&!bw>iowk@q@Jtwh zlAr&S9`HW@M`S*9!utLZ@3%rGek1TNYC#W6!56uL2$zC`qyqBR0^h}g?@JmuJ|Mg* zCP-KDhr2vdpCaf);lr6X@@=7SYrfH0+_zIp=B%Rc0tL_31sp}8-7-dK&-fSyN$j9P z+^A@^iDENWLNU^O<;@bxtbEzXlKZjbmdHXC`x3RTqRvsOGE`qjeUgmC(pHP&$Dm>p zv`ll-3Jagq7jb+4&y|@pLZNVl$E;q($MfvhB#<;D{ZjAGGm+&Ih2`8|${9vuZ<#9! zo*}pLuDRY7<|GiF##}M}B*#sc_^d))!BWYCO0msPh0oRc+*Nf^ zWo7m>m8{v2!Q6T@uce82sZl!(jq21-)xn9?Mn09Zoh1WZwYoGlacI?UnM7lx@oN<| z_2;3itho9ebvk)A#gO63?#)QbvD#;Q1SMA~E1!z0MPh|X@m{+sB&7yGg(A_IW>|YEdq#f1%a~=NMUZj7Vw0@}|W1fn|onm8hE+$ZFdSY$vS8V<$ z58?OK6=2JE?rPSmZe*Uc9yoP=U#_~GMIvKpCKug8Sltq24`45e)xK--fV3JBG->~8 z6ZK8QyKBTrbLOdP!ka3OQ^)`)wDsG!wRc3jd*{BD4=~KkeR(bn{?$fH)~>;v?cOb{ zCsgeHtJUd8)7#VbLbQ&O^zfUu;IpodJkJh7mezo=s-=mJ6SM*#YA1_lJG84w+`JPb zs54)+Cy(0Y2TqziHrfD&ZBC_zV*xyFshVz#vhYP)2}m${~(k ze+anNN4=SNbK!_LJ;X5`(1HGCA@j?Fej*pH`G84nx}&W8=ePxUeBBx4vasXMf~a>^jvQ1jF}W+a?VxGf7;4)n*LNc zI+BQzf8v|M*-nd*E$+t-qQ#+KODeY4n^Mp0MVuc;Z<%_%pwP!YHlSPud@~JFpAOup zqVTesWN+_R8YXB2&j0paB=4uj1wFdXczf||Vr0WEXHWpM+|;u#&r`zW(`7YZMq%mA zXYX%%92^b8t?6ssQN@>mgE*6O!ZaPG&vVWs^ZmbPw#a6C{pOEyUgl5Or^{jU17wvr zDm_4wxog9PJQ|Yk%CqQJcmdB}P#h~BBj>2o zWQm=Z@ctMH-vRwer-}k+A|97CNR|(T-K71;FV<#QVwVT~mTg5>FKV){$Ze>}?DEpG zXM5yzVi!d3fCjy`!dENfD68rueUh;NYs{R5wN)pjK8M_?B!Ql9NGqD$4bOT@tl>+( zwJXbh6Czi0K@_PWqN`HIcmZ73vu@`rDhJjWb(FEWO&MGM-W=+DQJMMN`?3FG%Xy+uA2n^* zxM8$*)s4MvoIFnJ64p()Ez7mNLaw)pxilBKeO|GRXP3TxRifhuBglx4_&tvt(|1B) ze_Fe<(u;qFwi}EItNP%M@p|BK<`cEvfPu)+{aB0OFBli$-g3_l?sR&fj5C|_ zirtttY|zzf<=xTFpR3(-^gW#P9TKs<-LhQMtNjU-18p`pR{0^JsSamH-AaN`ww*Sp z-9D!c!o4Agdv*uGY2e23urlIM*=IM%I|k)4f&!-PqO!yCx$List^CdqO~Vn{wO0`O zF&fLUbY2hbOPp@rvCvb9l*o~*(mv$#j(+YwDdp6QL8rz>%!$JIOtimL2*qdiy5=O- zugKlI(c8xnK3{fZQePPZ@a~+Yn4V=`Ty2>!R#C zzmU%a=+9z}0I{^5Iu#%Na?hey!`m;;s7zpDvg?J}%?u`A^B#MHolbp^&plB?lU3!+ zT(>g%jtW}OzD`}dxxO$$xV%$#)~9i&1V-r~?dOnW)Y%-ZbS9&ceQk)FpRJ>vkGoi+ z%<}(mr9pWik1769vEuSFCZs&zi&K>z#}OnNFv^w$p8GV@N5wXKlXC#+;LK4(t?#j! zj{H`{^c-xu#;oEy(jH+)M4hC1BbJ7NF)$oW%Rtku1qRV4AJ{zZMP z;cNisR-oy(V6{g_6WoaWv*@|CShc|T`jA}qC!l)QC#t~ow-W>>(O;EXgPjHnt1r=8 z28uXw(T$%Oe4e@Uo{!g#?$@3jP4gRGIDe&ntoSR$+*bc|q%yhp>h>4r<6D-;q5e%e zPnyNro#&kAwEf5FxuD#b_YuCw&L~4CaX-CH-%*5*4N+bi>+dv7RviA*lx$kSe>dI5^pOHG!0AzbxZ|D$G7Tk=b# zE(syu;$Q@7AXp_wK12QDOB&qpI+Cq>W76mU=LOLS*Je7C|0C!Rng@+e&bw$zYf=(B z#4$B8;U8IEPC7;Ue7Y|TS$mi7no;Pr#B-m`wgR0GX<^e`w+@^CF}y|wBTkpt@qX9M z7naZ^MALV*I#Qp|p)?U{lPb=Oq`DzZxmT;i?(sFn&2x`vuQylwnrrgM=f~A{zp1_% z*WBPjG}DWp{!m!R6dhGwT-W3+9arOt5c)jpK@RVgcwry-BVyYot!-!rKQXKLBmYr@ z6!u$$JB}x_B5cNAuB_@pz~pzc{Urcp=aweTl7+!bi!b$q$krk_L&!tf^RLkHCAr#g z;-z^M7}DK74yP;noehuJzQ$rMdK4ZXDK(4H7`v*VpC4_+Q=SGQjojnPud>EekI!U; z@Tv-aEqPg@XF`N(0$3mj_`-#(V!pIZs-<8Rh;4lK33Naqdo3B;8 z?^NC#yD997#o{%xmMgn(ls}?#YHRCa-T);@WKy^rxzKN+veDA`Ll9MJ+eJle(n;-m zA%-?R%lKBzWwoCrF3pvGA%vT{=CQ5NuLac)s~D}H)OAsPA%WD2TjcMgtmb6i7`rR+ zh;KYgYsaX8-emKw+ulGt49Kfv*OaF2WeQ9vv%l*YwGIDi4JL~o>@r@0)6B+QMc$HbedN>I{se0J%q{mlANp$n`J99=Xy+^d58dG#w*b5$YN ztG3Y!y;bKWWClKUKE?h*=Xhm0UR&v{{}^6f4!cal`tsg5G$xv4Tvewq;OHIMlb)CT zUgj9MYUfq;v-EY(&7$tUDKof1_{-P}m)-gd*wiab3x03FS<}0#Mgp|DU{GnLFq;Q! z|LSX#>F-hBOLa1^Hu2`$|J1XcgI2MWA1?Ns;9%{46^b&qaJ$|C!Yl{b{e3;X|M1D( z^>>D+|7J&Pmf^9n3N@#9cREq;(?QAD+kiiGiUSjMjenJ&Q%-Ul1n6biw}{me+{oRa4;rKpb&+jg%lrbHqbTV%pX*~o*An+yY(oa{(dvSPdGZ6L zJ%v$Mm6(l&U?9HmZj`_&6tZbUYlcpQk8-8^g-i!n<$mxJY1(DISHUpa&uT8LOSLlw+DIt1k?52v(&|AL>mzsqQBP}mgF_tM zO1E$~OnB{DOBWo!ZtApie4-KZ*M>ne*VYL<5%DFQI+#mggETJpHl{nxIUwDcnW)`C16Vzj7^6R^B+byq<(5cn^s#EmT~fkv zbj_N0wn8pbWkSy2j;++T-m&RyPn@BdG(xn(wvj2T;u&fm?kOWk-_X#Ctj~hXED4*+ zu@)zxefE|Vf44|t>k#I`>qug;lbGINO88nO*65U)QBXKq)?Ft5Q=@?CHK0DMwe~gn z3}E3^Q$QHTt0{>Wq1DPTejeS}A|0j8Rj$eh zhp)=oymSM~xwUuNAr$9r0Dhx!os7c4s>R$F>8rc4zdjYogk&wu`u!?vH}tvSAN4hogY_0!kK&S zQ@XY?M|KjA{|q(>M_X4D^XN-<(y4S*4ce>w(Q5ka>NNKB<4E_b_-V-+VV$x8y*0v??skD7r&>B}5NBWIWIF+CNmC?-BP6p~(E>G|_WlVIH z{UgCNUFY%c(eG|bL%_V+v|34kV&!qz^K#vex~$6|1GC+!MX{Yr$wq$**Zw~l-YiJH z;lD}VP#w+AB|oOGEMX;@n!Tk%R+{j55oeeWJjJK~0d4(UsZck&^$Gs0?0X;aW8cn~ z&K9=*eKs-A!ML{S7|qSX7AgAGU@@+2G5IR7-K~D}^Zvhw1E077S2*H8`T@|9C@;JZ z<(J6)7i{EZ?7{Dhje}6)6bTGy&*QJ|=js7DQXn1x=vEzb`6~*GV94@`xDaI!_!=9J zT>?pPFgBY40;}M19dz1?`Kk0Gi5gW&Rw5qeLmxcfzj^rfifoAcD1|l!N=Gii@VYw( zM~t9^t?Yp70X<=N2~C_tBFwA%>7rW8uJ_fEWUwt3bq^X3{jhQ)F`e`mHmxt5R#H(C z;>YVeS%m^cEodHiSM|T2@;_Hk^Do&1&-Dks={Rp>sSct9s%ki}4O9$ZPt^w`nPFF=G}ENOx$VR97o9E!6pbDi{OM=_$O;aV}Q*gvNO=nn<9a zO0I;*JQey{`6U(BJz_O8V4Gv>hBh!Yy-&v?-;*q&fjiSpp0_s@X2x&+tuEm;=b>vL z9zbS^9f)KY=!=`9>^im@qT1)Bq7$PM&_cc`{dTHHr8=kjE?dQap=CFw!rB$EPd@vd zb@otM{@6-&%yl+3X7+J7`pjWutYP-XZK!xsHTi&v<(n##E29Yh90HdhgnMrPb!<>Lx+?G5+dUX*$v z21XDEep*?BLe>Kr)`R%ggJs~4n$|(+|UR%=D-C8W5B>R%zxVw1mMmvj-WQC8#mtG zHdZ^|-f-NG_y>73QT+y*J`OrU+&RYFIWaEg7=Ur01W#`VagGNbx0<2i;KYkeck1M+D;M?f+IVivWPP5CP=QK}4g0B!GRY&y)ZGabr5? zAo2kqlSdG1+`*=?1tUKN%>N*2-V}M&;e|bR!IB3uA3GfE2fx>~|aI+u+2!MnD2Emtqkva;f00JT)AfTb4fq?)p2uRf_4*~+{dX$lX03;9q4BrDHA~G^ETzQCs zf`WvE1Ox#vFfg#Nun>U&WJIvZ*C4~A0Ns6Gi}NtP2_v}N4igjew%QCG9i3-P|J|+^ zG8kxc8L77I#xbI;yy?O^q$xUQIUCLoFsnvELf{Xd6`VFhX2(GWgVfsWkw8F+h4)OB z{6s?3e7$;b7!e2tAb~-MU@%j^8WI?YiV6o80q~dfvOTdj6Med*-A#z7{>9E)z|v7`Zu{&YIVo1U0!yJ6uj80tGq* z_`zy&3r4F7MXSFq*5J=j<8haw%oC?f5k&z3iL-@yi_|IId5LwI*qlX-mVJdXG{r_N zFn9=MDoqtTZMkCPC?W-r5x_VCWNAYZtmN{cO5 zfeL@ICJGpc1OmfpOEfSD4FpC70nk7IWH5kIgB=kFx}6P2fnPfy$gKJneuB^uff$G& zGk{t6>@6Y)_z$~@0N>IKc@-0mFrqAUL>5p}~d(zqJ3ezz0ZP0LVDhP=Ew9 z_}@nO2J@jnFa#q*UV~aXoS4@h2ImE35pg(u$Tx1G6Uj_0lGLdG)d)YCqwr57yuhb( z*hF*rT)ucP8iis@#X_-sGM4*53-v@fij-oFz<`8&1-ub{CWHEDpq5@Es`OE-@;{C6 z{~8l#du(yo+b* zyFEz?Q6Z%y>HKeAFxHI+h>=fXQfI4eb-85-d_U^X)p8oirqE2O+S74&I6haTxJNDS zywl9GTK0bhcM^#0%)2_t&bxX0K0x+x^6%io{)-=vIzxg10qR1BIF)L4>+mz`wq1Su zXpiLc>)+46|4@V&z*b#!6HP}zdBp9011pR z0*&l_cq5JoQotaO1p#T7iWC~D<(6D(iR1uI4cH`AAVLYHjucT@rH{Vd*HM>n#wn+T zUp6SFhnUf4W`a_dsHT-*{m9~+gcfS(aCL@>Ta9Jznd6jH0=ku;!X0YqrI<37sCu_C z`lO@0^||ApY=+idrJ1Ix>Z)danO8;r@F9?=XAFt@YF=Q?N1b12PNXIRl4_-Z0mK$t z*ryAzs_e4N`sC`ZD^@3~dtM#bkgd?3nw75B3f3!_q*ew(vBsu^tU}GEtM0mzotJH_ zvwn(gw$W}|t!Cf;8f;eMl54=RdSb-xzyz!M?5*%pOY1`OzMI>dSj2*i`&zEqpc9&9}7Nt<|FmXIZ6h6j_&BV=l)jd37?Jm zL9F8}tm?3nBzxQk7~r|o8SC!+^R2pTk?_2sZX@xOSN?P2#WS=y^2)!?5cK4i|DW^& zQNOq3%qJ9l)5HJX{YHkrd=jzZgKqx*{Nwa2o_f0t->xUW_mS;#+?(G+TqYL$wa+2_ zi=YH!^1t*Q@O13^Tjfj#6>cf;DTX7A1K%{k5=Jls2eBagqQ=4&5@3TctQ-P3q>!k^ zkTxy+AVR+9vc#G2hyMFRp=)mC!Xg&&hDgj-85&~4BpOJ5nd70qd@{YA=r^463J*gxAD<|`MVt;Ct0`PWYKqoG@>EDh>=9Paglk{;UjC;NQ6-G zlwh;uC#jNvR=V<)u#BZFU-^Jq+VYmT%%v`G3Byh%a+kowB?V@g06p%}WoRrV-B8KQ znyE5y3N&BL}nkAskml(b7KoICPpA&O%r)UO$|t=I@j5NYl^cWqx9o9 z=c%r6zH=*3{!9;**vU_K-cup*NZlzPN(4Pog*UHVU$ za%84JEmTcydKZ;qK&Sm&6H0v=q@X$#PD3TCMsT{2qwce#9#!f^nW~YedUZ<$P?S_H zW7LLB;H+pp>rJaw%&IQQQL`&d9Y^}rx(X?*oI(@wch}P4HtDA>aXnid*^>(Sf_F;0iP52Mu=co}w1v5KWl5 z77lS-FdSVCKe)hfF z@A$|{>G6+6v`I3>Cc7wcfJRY;MgS1syM-=@@`Idx%DJ?K?~ zy49}!46HXJ>y*$M(zXsZu5+!KU2CS-qWQI_gB|H%6I(FGt_-pZG-e1g+t$v0wwwKo zXlEZTI=j-99!5#Huq+tO|frRrP_3TcckMjZ%cFA)DB=b zz7?zQeN#F%dQP~)7p`zU(%UZz2smPu?e2mTy09Ty^8z-`@s4}^;~&>^zyA5+Ns$uV z;&#S(g4Emr0l56-Fps&+WxjwlkK8ULUpC5-Yzh&veC9w8`pavs=9_~h=M~?1nX};Y z0uVvyP^Y=gjjk1>BUtHWhC$O?9`&vZfarUsdPl5IVXT)~5e5zWXMXPWsDoYXSs^=! z&5qIKaTe|#A2mN+?|Ywm->;+6lLvmsJ=i+pg|7C+Yvk|N ze*BRmA^FJzz4DgtWaC|{c^7Lv;|1Wl=VcE1&^HA0`7V8nPrvfiuYTsOcl|Ow|W$O0Yk1L5Mbb>_kRBsf78bodM0!v zkbpA>cKKI;^2UF~0uoaOYyy~IOh9<>ae$N8fC;yLdo&Q_;yDwja~0@aqkw@KsAdbG zcMO<+9=JmwSS%tKZYAhlpKuTpfO=}ybsYGD-V=kwB7rnmgU*!+IH-dK@Od2QfR+b= z#NvMdsC-0tUYc-(NVtO1w}hSGgYp4{1^^OKczsiNUY-yDOlW{h*nzL70c_ZYZuo{_ z=xR<#N^!VMV~AcPz;|3|Q*#K0LwJX;m4}MAhg;=^Q22-bfaqC*h=Mj%2n@G)eMkT! zm~@Ek+pD;=!G*_YnAv~J%EXX2vVFViHP`#bp->WIEp>xg+l0wsK{8VIEbux zPjh&Puo#PWHH(Z`i^dd*b=Xb12wTlZi@x|lUT6VZF^s=ejJ)GfZwP?+L#sOSdQL!j+v8=Sh0?bWsdGRKkx_@^0-(n zsEPFmD)*Qr`RG-7mWKU^Bma1c0ZCAKri8{=kW4}@;;4=Z=~X9{gg{4+4jCT@nTr!S zQ5BhZ?U<3Dv5^$mkuw!}^aqm9D3Z7Zk<)0BKo$OqDG7BA$&xKuED;%xFbPzopn*_F zbT+vjE;)`nDN~K$lQemaLHRb}_>x6QQbeF;M_`dWxRjlOTtxYl6eS8~SaWTslvX)a zSSgWONl~R>hEw^KVL6gxsgq?nQEs4uR2g+(xt0zwWN!JE1LX)cmzG{vml~0FB8ivy zsFwuw2sP)Ge~BAu=z=dum;h;*-xN*-pqN#OaE;lR#|N1RDVb_SnU+bHm^qVOcLW>9 zkDVym{lZ2kn`FYOSo~u`rF(#j7N1ye{oUyr{>8YQHw~_+}0Fs4SP6?oY zWS`ARp!aE@Nr|B1B^mxXcMhsX2cd#`m!A|$n-G)S(3$b(s00`w5uH2oW<%qhx8LR)nJyI&(Y9qZ{a>3M8W@TBAg2LJIMr zvdN-K`j<>Ftjqd5&8n$w_nsgZlI?}8 zhMJevNQ zbl%#oA3L8KE36L-vDV@Kq1k${2wSKo+n^~sItt++X5y?12(vd=viy3o|5>x6V^1Cn zw3sQe(%EouXR!x>vArj>jdQI?yR(l-bv~=GM(eLo8%V=CwNjU_{l>IT8-QEOwXa$L z_d0pRX{LN8wpq)tWy?4VQ2=TMB?WtXj7n^7OS5rnH&e#8AnUbm2exu3vp>tXeH%6! zH35Lj8!j7t6ib~zIJ3Z-xHGf3oEowEskG0wx0P$T8-ux-+p^eNrrgSBS9`HOwdJH6Cfz1IGFz1W+*+Pl5n+r8fVz2Fbt(|+rIAmzVI8r z@;kruTfg>uzxbQK`n$jU+rR$%zW^M-0zAM3T)+l=zzCec3cSD!+`ta}zz`h458W ze{jWS#sWA104i_;I>5z9CdOdw#bkVBW~>5eoW?pP#wx(ZU+l&%=EW)i0A@_bEk+5L z@CQ@?3jUm+$1TRjEpZ8VEXatQ$cntkjNHhM{K$|T$&x(Dlw8S{e94%c$(p>$oZQKt z{K=pk%A!2Vq+H6Te9EYt%BsA|tlY}3{K~K#%d$Mnv|P)!e9O3;%euVFyxhya{L8=` z%)&g(#9YkAe9Xw4%*wpX%-qb*{LIiC&C)#0)LhNhe9hRL&Dy-p+}zFH{LSDT&f+}I z^00jU*2R^U{F~I-~z|c|P5)!=z7Ol|9fd(-U(jn~nYl!2oDL z{u75_(G1|x#c>8G5Yt)^1Q8GfQvd)ljR!Ar1}-tv0ASNGjRJVk(JsvzLQn!o4F-L% z0URI!5|9T-T>_HO5=Y$~#R)&QW^VjTt&@YSm!2q$m?01yZt5CSYM1bux1b?^ZIz}GDS*m+IWg?-o} zpx3Gq0v`|o0Kfq(%>YvH0-UV|9}wA;9RU%*0W07Vo88%gE!mTu*Da9QSRezitp}eC z01U7KPAvhh4cjsx+aaLZ#KF>HKm)=}2D6>n#w`W_Fx;u_+pJ;Hi2wjqPz7oJFxruA z+${avEiv7s&D_lm2QASAc5nw9(Ad_^0C3O*O#lGly#XG;-K>EKE&&8`VAhe{62^@P zK#<=6Fy9`~+wP4TS1<@R;1XRh+Wzel79HR=u;4aO;7v``{~Z}lFa$fW0{}1tTyWWR z4HFYy;X8ogqmA1T9^sDh1u1aiDL@E3Fxngb5+;t~DjwpQP2!Ic2QF~qF7O0Az}|xW z5*8f?0D$8<&fcv(<223~RxkrfJ_BA50ql*|UTxo2&=N}CM=Pu#r zY|s*ZP7{632712da8Ut_-sp_(5{>=_N+1G`{^%`H>5^XGiXImnAljZT+AiVg8_?Sx z@aZq{=}z9*n+_KuaNDl#60Tm_0O0CQ-4e7e0U;0&03rSrO<`nZAa`kWXdqK#a%E+1 KRBuOVW&k_YOe-${ From e51c639de3965eb9079770b8f2615794b10b1adb Mon Sep 17 00:00:00 2001 From: Austin <37423484+Toufool@users.noreply.github.com> Date: Mon, 20 Feb 2023 10:17:22 -0500 Subject: [PATCH 50/54] 2.0.0 gif --- res/2.0.0_gif.gif | Bin 0 -> 14239080 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 res/2.0.0_gif.gif diff --git a/res/2.0.0_gif.gif b/res/2.0.0_gif.gif new file mode 100644 index 0000000000000000000000000000000000000000..b06242dcaf732c446491c9f7788c417ea18b3bd9 GIT binary patch literal 14239080 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

    ;|;qKWR- zY$k3>$aMv{!4nicFieuX-7*ky7=92g6<9k{^wmqpB^o$62zi+hoh<HQfW2pW{LKQ(5q_oHox%X-{}Ox`SUEQss$w+0qfHA=G^nKs6mRCP0MHrrMwM&H~Ip}kXx7xuR~8#N|J)P z#gWBUnh&ekw>RcDRAc#{(0!c>Q75@7I}@7FH8TokpqDyFCYYqx!cV4MWlto7Q{fND z0e4Cd7DW&T%Ecs@b!Y9;^nNbo?wzKWGoxv z?^3S0rX1R73s+OM*Cy zf+Eyy6cRH*fxqFcygkN0SZ`P z4+kplXz0;=2S{@1&{4_FmS`3VIj$*7uwsz}R}9ZLz>Ae3)huK^9HP`CrX%t|IhO!z z6LRfa+a$5KTCO_>nyqi*N%Hn9EYoXQJ7ji2htubhnsM>{gpc9w-Bazmw{9#L6ysY4 zwn>Bb zgF7CKv#Vs)D&bl7T9kp;B>JdIGU+zH%v??DvP+4kK)wd09*FsNhl7QG)%(@*EO zl=1VKjzC5LkBQp^RhVLB^rQ5isY}8X6WiKvet~Y@@D#8dccVkWV^Q&L<{$#w14s&7 zv_Fd;Vy0br|Kr|3-j}2Qp1b|AWAVT}t?t?HrAMo$v8%#;E>r1KS?8}cu4gNgby8K2 zNhPRu1FmcI9p7VP?zU$PKUjJ};!~tCdr$w}`FJM`7MAk;CeEb9>clgrR8c?($RuOn zFmQG(uP|dX)VzDVX+MQiS)`gASnRB>8CS7=Kly%KD?2Qsd3J;iaW0L@HlIGZSz)wy z1VM6$g>h}%W_RPJPHs!4vGAr=HqBUr#hnaixUYk)=9!lBwp*gX&hR@s=yF@pAPXW0 zBr~xSfln}5&T0AEy}=G?V14oy7rvb9I8#3x9!r^m`bP-e^n z5u-uXwPm_+A)3#4VQz{|a=BW-z!J}vo=`78@enn_zz#Cry??k}u9t%BeLvl(5!sPP z(#RF)=M*?->^{>N({uu$^$C5xE$HI>G&DIIl1sjjx_QMVLc(j=N0(iDq~uX@=dD%F zenC-T=FMaPG_69O__C9nQ%qaGVAJ$Z%shwIP~89Pd^no(c#4Dh^UsHQ&L)!2{)DE4 zBHC5fe)$i!Oi~_KE1%qmQg+7C@SGX6LhQ1_v;m~y+qJBU`(|z29I~->7gzf2{_W(# z_#V?Yl^sU`T+K8&FA|tS0sk6hZrupXcOC@$(evFY09)^tZ^2-@brvX? znLi59c8Op!Z;(wj$Q8~nxWokV1SUjxlRyxz0%1U64sVkfB?7T-LQE&HL{tklZ^WFH zB)?aLyi{}mfNtC~_XJ8$`ly?ZMaWm$H*ZY>>bFsN2mU0(Ae9 zLe!e!-7<#{EDwJkIXQ?5jj(;mMa8 zha14ud60ao$-UkAo|Mf)XmbD{2xu*E5`jHK@7Q)S-4x|0gDl_+u=yZZ;SkdRUkjdM z7%PGdE0`NW&mFy)y3x!Z`Q47=3==v?Cy42i<#J}8Sl`8n`uw~klqC85c(ayz6U)FP zz8+vt491596WI~jkURk-r{VSRLx@W)_jvZX&wTEb$feU=s98mB zdMzw-FzlsG>s%f8C3|OeMxk}9(FTS;JB5qujTWG--9_uuQ&3D)I^$K!e$EBUpD?>SWe)QQLdyqNu+svYhG!?5 zFdryIkeo~RGI`vzVaQF=z=@j|y*jvQ%bdti$O$}zFuH7S6@^20Fp7NUsXh7Iqw_PBLHYs{Q*saNRQ{*? zd^ZxrB+>CBVA=rn4cU-@M3t_51+2X_l=}t2K zon&mwXYdj#wPSP|!i4<780N<3E6`MwHv>_@Km{_fgY%31UzP&&Ex*hMk=dz=3rVw( zCDN_qe60>s6}wjDqayv8%zMWJKlCd$pA3aWdT`P@At4O&&(h0uOZJW?_P!u!?DF~g zW5rPbbHi8iX>gn9C1tgF>*NaVX>WOhrK$@lKa6~d_ z$T3j_8uyV@bFkJgdW0PgaGGwF4<~EdCw#pc95oveeIi<%m0Vayl-94mTvu!Y3OA|_ z3&2~@Eca!Wb6~zLo@p*+*>!>p(>{ul!LFSkhd|ag!M20f13cEjp5tJ%d1oSzXuxOb zr-8OLu$%zS9z2#0k2UG)Zp7DqYgPLrWfv%sX##MOP6Bl|n~x(v&(rF}ka=flYC{kM z(E$8(J?3-&n*Wm3@#o$Pe@(E>Y}{nd$M-rEVuUN%fd zbD5G)mpI(iWqEz@C(dqE+ZS@F-=}0ng$EQ)-(UGOGKUaxp+SKGrzo@t((W*AQiZxZ zgGzw>{a(K`Y1zel9Z})qO{K4Fx-1khQSo;Z+QWO;+hR)(mZi^a2v(BIu7wHYX(BT< z4+u_8ERRd6j!`~^m)7PfuZn#|_7CjQU^hU%i$KmhFyB2CY~IlAm@VhbcQ$X(GtXuL z?t{Gr+qS3WQ%LzGt>`QTkl8rcIql=NhWwB!rlSD-;d&W9_4D@(rrVo?x@gIta3)cD zIAJ>C(d9Dt<0PX{hEeqVf0d~^tzULt{M~rtw_tg#6tyW$A1$-DY;eBr8PR%jTkDTf zk7ELEnj$pL8;P0aEG=?;rr2o7G2ET;SYh$LUuL?VoEYztn8CK)_@R3sh&1{_!w&!= zvGeviUHHQwwR2@6k=(Zb!UsP2owPW%k^TPi5XFqM;Tbl&KWuR}4HiSd$sWu5D>;Q; zl@F(sW~p|Zdh_=5t|q!e##gHEQ4C!ToZ@p5;DVQPTW7h4=DUUFPsIfsd&G*YVmc?X z2!kviINp~p=NTxsohRq&E$706CloPpuFRt#yf9$!^K#b#x;(mY z>14=nWHdwD^u$Oq=r8Eu&jTRMak&d1o{?`Bl$f}T@5xuzvPqd=CiL>uO@f;fSM>Xf zbsRF5=2r{``T9G~o+l@rZ#ZW{z4hng>g?0pwNIl(TDvB@PyYDyFoFw{QI&+E=6%U+#pw^^kH4`< z=_`zqa1Os|+5a$2_G0$kom-LM6SGg^pT4%Db*Ii=-Rq}imG+Ty?x=u&kKaa8w z=1#ii{aIgmd3=}NKd0U`eqDUD*a(%_-8vzgSR>}N6Rp4zFj5upsG`t^--Bkh}m4$Za>o5^yw12 zi-@|Xf?C~|Xqzf=pQ?j6C4Of@8&aZbc3n5KD75TSzu%UgHBfbOcV~!S@`H&C3#;zA zo~k2_3(V4>MKrhCX>ERNBJ+3j8@25}C(eC1_BVUqhqS5DtWp&|R-I?amuutc>RNLC7J;aIpb+geQOJkTn}~q?fQm_xJ>Zi_}i7@KE;( z9Fb%@@$JvT=)#)>j!=A@A*1JC^ zcjBj2oqyCbOYCMu8nA=i*?l_p4~sqhtUruQg_8Qn994&oZnmGpO*X z*>sntF(1w?=bKP~3}v?-b^Ad%B1sm%=@uADy51g;#?&y*CO|hI(yoctAX2Ex!9u2q zFgnTgF9FUX_7c=vc}VKxSIyVe_f)fzNiy#Do;l05G70uc7&mY%?v^=rAFabQh8L4Y z+=`MTH>Q!NO?4e|X(g%aJ-Y_+uVOi}`-jscI``I9>O$kU(dHHGdfZAZPaW(IpWz%I zc+s~K5~~udN;e60E_IqpzkFiP*AtU3xX12;t(KLxI>|2i{OCZ)Zy+~?V_~3XF`R3* zELPql0O6z~9NTq*MQgZ&wKxFWGuuIFlZQ~4BCSUU8DuCpATMJoL8I@IiBr?$_qKZvzvON44rJcp@85~sY@2S6?kPRGHf^-=-=L4{a?m+} zD7I*c&UKyws?}#t@0#p{IR2O~N}H*}WLx)Zzp5~KnSb4Ke7!{0$xz*oRX`s^+}!JW zp}A5)9m6G5vv;rD*rs2HGD%h89kNF4Cvvj%ughD%_C<|eE=(U7@x09(RoPGKvZsGH z-+#oqI7r*?_&pKZ;%Iuq+-NU(#XG|FN&Lfsx!9A^snV>gvAQec65K)>!$29R==-~nE>?DkZ;B!E#`I)5V0gsqh@cKadWm`k#(Z=rLgKIbX#Lz=(2-&Dr+MmZn_2<1Z!ZVbN3j@EtX#RTd zi=7m_WnHY{YPkB}S@qplvm?eN|2!gknst{QxG1fAJ7e%X;8}iYX0LnZ2fWwa=P@N2 z(%9a(upQ3AbZGK~wbdIU$MRjqC0gJd`efw8(7QI;!=sZ&q@A2A{f94vhk-46=uiiI zCX^OAhpKk`dFAelbV)72M@JTdG43|WJ~5!8(d>Zg$2qi=l9yIIdm{LZ_Z@_S72?x(x* z<3D>;9WHCXv&X4fGJ$u$Yx->dEz52Ucut_-txxGeQLHi!(oLAYkc z3`YjC7l`x*j$RgPE(6nidNy?T^bp`Zo2#Oa4&*wE5m*Ln34jz)HSr8}fp`5KZ;l5e zGY7A3$iNCk@T7gi)s;$oiqiQv%17OtlfaXGAJm$3ns4zvWX0+V^%R&PHD+wbwfu`n zx!0jPO`+iJo%x&MmhX9xbzJTC231!%X?5hX5(|<1N36SLG|MWVy%`R%mNFgC5}Z8Cj_w}t2xt5Z)I8X;dab8Id0k!Ue;38)vz&~aws zdV$!XUAVYP480tJt3w(Bm3^t2hE$DaD6%0M83?pVit5QO)){0N3ombbr(-gYzuCwi zPGhQ_73K6z-|RD(yajLi9!15OWEkJbh$+Zz?Dfem$SedALnSlc!PbLAmZ9}gpFFf+ z#?F89UF5Te&e$9FH%J#oHgiSn=YjN7hvJ&W?Q zf%gg1=xYfL5oT*{G+Pd7-N)M7*Gweem<_gSc(tcozDcMoUSLM%%q9!H+7c(uZ^*OG zj$R1=(bL+Xuw~tC3s#cBgH)d1<&vn9Jua#EY(!entCSxvRuI^ai*aa!BGRA+8T2TS ziV;xt8mLSn^lyV0Hv>eVfltP`SPIqk^Erjf=M>drH6s}qo`20}Dkd9fkmC05W5Kg| zgUN@wO`nHun(oPd%%4<}nG}PF)gu{mjWu6Puk6pyv?sjA)?~#u^+r8kYkCT-;?@mgKd1pdd-cb=)Nz5 zxPpIsfIWY|%)qQMY!rY_x6&Ebmb+Q54>6Q= zy48HAFl=`<%ZV@fcuV3!2iIn^9P1?}*=$GQ`L0HpJsfP6_UgtMs4l;614~v?u|TdXlpc_+^869K zrU0tx57fjn5r64w^J2nZAVw(Gl%v8$K!b5{>;~P|hmm33gKMDbMFQb}0m%GfeWV-V zFZKEg^IHeXQVY77y`*!;5)OOfE&R5Ry+D3l%pXd2Xrbw<1TzL0QGOCU20>>Uuu2c!j*l zfA+~oIc}NByGpzb{qkk)nU()r5`eoJmuwbaEd)qNcyN$Mm2)n_l~+>C=@cXIgE}HHVhsR~+-=<>)>)<+#kuJkim{bg6 z2@9<&JXdqr(|aaJf0>0%{Ri@{!7j#=pyday^+$i`xsAWno?+xLG@rdk?b(O;imtcc zt8d&L2Y(D7h|g)c*X#~;X5<^X>CZ55fk5nd%f=d28{VUb1RBim(C=ixa}^&-8GRE} z-EpyQAkZ)nWP}Z0K`{x~9zrh_OTUc!+o0*q=$oe+r+}cp1oi++@h&i`uE#|jl5@9w zQ_6brhZQzBHwJwDH&qno|rU?key}Q-Ad+Yhb6VbD7E?)ykq1D!* zW?|348z}V7_4Z40Y^P|eX!Wct|6PFnDCZ#n61nezbI%{77}L$rX$GQ%RQx*7*S+U| zoeTsLsE&qbtZ1Z#F?DCezsD{a5J7r>83t&O-ddy~k*N=Ws{AV9Ot!G${-E3<<*eM!JOLKRra1Rf4H-jlp${pKt6xwGr()6Nq7sHYwt>oOp zzHkowSGwBkwYtptalt6m8Ku7CIcgRho%Hmgyu8yO>**^AQm^A);Ctm|vA%Q9)(=JS zte2XRKn!^cCVIENvm36HTKhk-j^gd2P@vsjDq@-XZF8a`mT5rL!I7_H=czvXdJNIL z1>Zvu7Y1Ua2rC*AR-*uB8ir-&eVtjSF{nN=CU-MhPY-1{Kb6jta zg>$DL-QBF%%{1_aU+>lIak-sKVC%#H*Lj;}!^67^#ExvZW7!@FuWGUQLHgWH9{+9^2XGx}k4rTOs7J=L-t;be}$uo$S(e-?F^z;GP`7B5vY3=-?p8Sf3@SitnG@ zyTvd!JmeQi>Sl?39{vK<7v^lO2u?zRpF|atchyRP;SYE|iBIq~ewtIt>g>?`T|Sxqp>ydK3^5>Hr5Yx&tgI zd&+DM!p<89D%%&lsDF%g%$V~i3+_|Jng&#mt*16TcGcLWjx`jtbD!(D9Gf3+Y(J!N zBjB=gU+&vOl$})$>2qUU=ML_=vYnxz>2y9ZsBTA@@!tFA5AD9OtJdp+(}kpwAh1Wg zrk&X$@pgFo>!l|b%DYbeZ=-dZQ(XNI@PB`0n+-c$_sL(sUwuj#!fs3HE2Tvoe2%hD zmQ87E^bc1$q_*=l&0m*PHKz_V|M#Kq7W!`L17*mMa^-#ZA||_aU-qefvr9fv^q);s zQD#CixS4>N%L%bgeaOi{(_%@oE~AKyFE_yIQseP={@QMwY0Nr#hz*hIJLw zFlTH~KHLrYxEHq5wzjUxK~}u`nd3t9%V*nGhIT)9Iey>QqPb;N**r+$`=^_?JZjmO z+oex#;7*VHzH#OLr`01@hQ^z?RWzMg6TPq&v4S-%q`l8NveWy*L zwYPJ0ZLf;?tggQD2quD~^*L>!?_oqjt&!GxQX|YIa&FcrYJvXXhpyt{xq~$)W(v6f zoZR@cIZJ4&>;{FSF=2A$B(W3@aA)pl9L*_cz>@N zaz!M8`B-($z#P8_;s8DtT^in`!5exo<)3dSCdx>Y*vse2i{5* z_v?8Zl#J<}d=Uo0{cqWH;7-QIr!EDpWKoXEl|7Y4J9JYUcJ{T#@~HhfPXeu%LTE|i z>scwnvOZF3HBETZ$5ytah5Z7w{VdE|9v1Zgql?f(0OgtnN(_5{?EVr>p4 z+$Py7YUzaO&+h2SmsVQGa~S(3zo$4J*NRGe%f9%%{^jwC=w|8-9DUZ2FXeosqA7W( z^6f_jbylA`xxHo~XEKEp*s0AN@Hm~l9SedV7QMq=huU#Y^K3pe3Of%L7&(16hri4n|l zLke+zu|fuvfwkY02Da^giQQG(qca@Lbu3PI89=hMdOmqM#1Wc%KF6TmNZHoW7YqN1 zRMEaBLy}8tEh6Olb#AqBtgYNt-Zb~?)Hxg7Ds8U7;Il}ghWBh&&dDx5w|Qo zezj>L#urd9yNYAXETV2}215!W2aP~Hr~7v<+0n)U*{{COaavv@9{PewSA z=)Qs3fJ3S-36*oDEbR@xVv~%jnwlul`61w18^r+F=w1SH1!CJkQ%h@L>iiaQwhG0n z$Ey+U;Q zU8lD`Sa*8W8s;C)!pXd6EM5nx#npd8uaE{}(q!lud4*!8!?hKL|Y={KHfdbXk~YabFwpX-Q9{K}7WeJKpSf#G=RJFO2)rgsX@2b9B*&?d?}uw5?1<$(oprQ7U{BP9gsIRfcw{fAbn$+8t~hD zUMUwXhZ*5>ph03Eizeny8G!3TzUq-PXgX9+i82HLlaeVCU$(cMSto;;K-|pS@wpz^ z!?36#4?{yjfj5+b_-|*gK3v8n9QzDclk3$fOryFG#|nZwSV}kGG$W(hM$Nm+Z0l;8 z>W=sl+NiJKnPT~kQ%1-eWCd6Fz8$CM>#Ww-)f}7mK~Gc|Z0$&kB%dg|v^gz$@4!3c zSDgZjC+c;M&uzT6?A`~ZjisXAlf0}cIibI`jgNNa#93CxW8+4yq9siith0|7&n~U% zRNt~NNWSDUnxW=01w23s{_`|^iHXWQrDv5=rtEU^sa@wVl-#p{NX%#kZ~sBGI{gW( zHZW>HQM##?hdmaVvlOd`Y#(rp!*g9Xuk%LJQ^-jncUy6R+Tp}1y>Psg2&P< z71UQQ$kg`BIWlePCcFH7pJdraoN;hs6){psOQGS@NHe=Af>-vZpu3- zZUGFEyfb`E33~L7H{%$Wm{Kt@YyY!r^zaz`&(5YO>iGxq*DeGP>0|%%w%)f`J0QEN zuDwRw5q%;(HZrmfvr6JxX1J>y37u~1O@vwoF1(54{ff9D?6)p1(|OydjO}lzUv1H9 zdigfV@udOEy1V-#X$u5%M^W=IxxMmfS3R@(m-^l57M4DIz1zyA4z%aO zEsLd2>(Y$#EbO!*#2FTsxG`q1eKGXLX$9&0i4iVEz7nz>opmO2OrX?^yQ31NbIo=Q zsGcKb=>ZUmThnNY?rHA0d?9DM=mY$8ryFVvpyY^VsGUx9M|I%y3H9QoqU5qbYTm3|NESN z<>ZH5vyx!diQS&fUbZM@^Lh$93_h?oZ=~+@Z|Oj*kf4^a>4NV|t9ID4P@?^G3SAx5 z*$e{1!r*n~|2&Xy4;Uzkq%5K*iC$)ju+oj6S8OnMdT_D#WvYXeHcYQNC)w;NIuRUR z0e)(`SXL-&%c6!_Sw+#Qm1&H;fW?bhG%Y3#eZ5ZW8T+Gx6t!ldNs&L6$aXxNx=;zr zT&mj+`+RDKdU;B`eT}flDZ&wraU(K?e^NW8R7`oaDi5$3&Hel$TD4iA+D`%YOK<$8 zAV7q=>-`76&=Gi9p)wF|+yF1^N1zFaztPOV5`-x2QRL^%c$9L!K=HLSsad30BUR$# z75R9j`e=218b`fWZA6f~N>^?W7_8$}Hvnr(Qo;|ZnsTk`u`LMAbcD7wLP>sIk!?OX zk1!eC^`gPpTZZhW>cKWXrrl3k{86iyMT;0>V2@FUdKkDt#_?tvc1fJoNoWZ_bWB9h zjI$yo63{I)Bo(3^3AV#6YITWapt_K5dF>GJ*$_60Sci7Ksg-yQef}E1LK2ar1l&@j z<$v&&=wRe^R$igfHnZi6S07)>F3saS)49Y7N%UN(NW}`+IKi{3>!r9Uu{0X3TKFNzX2bwPE|)! z;TwY#xH19ZEVt>dFulBLTD#itcjm(hwcasBb@QMS-&%}YtHv*&n_IdL!XUJTfqPA} zYhhr&5FAd$%1Xr|$A$&=znV+3mU05N5 ztlYRM0O|PE<Zyuj+v(kfF>aB|PMrGJ_D*hfr{vAN|9UcCJ4lUjaR~D<*2)Wn;WS-Aiky7^z!uN$z6J13_fo?kJ*C=Dg;tdZS8#t&I3IM9( z2(LuO8YJ4QFCukft-mNi9VsS02B=aLj=pLy|H=B6h{ zPh8Teu?iOgso`AApiI-mV7i%b_7rVz?^hd}SX5k}O(#tY+fpWCpvvp4@6*t$!N=B~ zXJs{Ff*I)hG`sTIw&qrJ99Ks#)A5+BjKerSrygD`bF$hBI!e%@7wpNd-8wLh8ATui zX!H67x}JPYk4$#}sOc+1LGw>9*NrR%U7iu2-jLXT2I^&K=ql&y{ifa7G4u67&A_dTQBE@GT?~oh2RD^&X_vO@4)Xj&~&47tmAgnoB z+22@6hxwYLtU4sx+#PZ1RArww*e9tvi7{@)*z9r~wgRd_3FXf6(nqrEUZP4j2Rds~t&>?vkQj62`_ziydL z4ODye_TJtl>+ekaHDz>5?bF_`$Af{`rfW|V-Ty~o{q-^+qgY$BAy5CV3LDY^=UJFs zS=n3?+WHx~n0m+C9JIAvi%$Ev#}9psuyyCnsIfI<08lef2L4%WdytBXJcbGe#_wX- zsr2uZA#pRdw6!w5%-x%OVTW&2%*H$(F_aJO7r}92HC&P^hp*PYsCa)kuD}1KA>k38 zQHZioL(&kgcT_k6l@7Y1lkzfvfxw9o##D9ZSMYf&!mtzypus^hf20_(Duv|YVaw7T zu3OX#E!F-C;KaehLm`LNYQqo?>6#bAPO7;zYEBxr2I9tyjmwb8SzRv!?3Y@sx{`IN ztnEIKs^5qiqT%uhTI*kJ0Ml7sEIZ{L)}0J3?8{3+;JKb!2eZ1U<1`25Sld;bGOxOQ zgU`3*d_*axTDOYrh_NW5c}x}8KEd?F5n$ZY0pBAG-}fIut+84hB~1^Y|1MN~P)Pja zpWt}=qv7qe_34d-SBG%ShIBmrk`;gRHa@IbtXqpLxGJ+6@^}E9el)^(k3xL zZAzrX7bywkR>nn81w33qy!i>K;eZHV%lp>{*>_RbhCJZicU9Ku21rXFvE`!X|N^g2L81CY4VTNdGIGRR3f~?Te z3}9f%KQm?G|2l!1b2MGP44n(qenG%_jiPXm(R6W{NQSJeJ6cHF%BM3hpyRJ$FYL6&T(Ekb7sfCC_8%w^ zE_Xbnkq76$gmd6(>a~Wy1=sXb05}l0S)|%I_^On`o6V_N=$bIz*R6L__Ds50MW%)&sAn|6%&4dT&AgFBRu3#x->5`D#f7%& z*RbMm>I8&TCDDwbZV2Q`>B^;ou62QO6F_;2F3>6V=G52tJm}b2Rs5S1{x6Sb)M{S5 zZr8T5@?Zoxr+d=?vSwA-T60x=Up=wDG4VtIKfC3&0F+eZ}rGu-PDP zv%RU(2~gDjuJ(MfdtC&FQdNb~iti|@;{fix{}W=#!<5)}lyCX{s!$nxHCo+DjL->2 z>>s@9rU0WfC9f@W=jaK&acid%6VB3=*5S%A37cVk1fHfwdavwuRhcgBxRd*|%Q^M+ zVK+~Uf{6DYT5JLzO$7!3&kX@}Q9`t$To_E^D&1n!LDf=6X?Fv2$Ogv@d~EK^%7wtK zSO3_y$YYz%*a_dG6r{(y323jCu*!{(LMMa$TS~Pm>PV0;*>N;Lsl}dmC!Oqtc|v4d zUU(#(iV6V!^S$aHzi(lKGF|xpqv%}xTJHZhzVopiIl=LOLf%xfSD zmV^=YpWf)hnUas3^BF%X40MMwdOfk7L!YQgzl6BI;!zSuWkDQ|rH*XoT18KdH13W$Z?@NSMr~eD5N@aM*(3BT{wSjNYXt_sEbJ zDa38u)kPt4)54kGLQJ{vp0ek>`l$`RftlwWx~24y=kzta&y{miYsK@+P0)vrfqyQ> z>O7d&b)6?%ZdKi*D5xjuq;Vj7m>O2QG<_BE^Vo`tSRDaL{i;M`JxlUV-R4cgu4CHw z2AoXZRG-u7yQBl790l>FYFn!e+II$?)i}N~o@An4x9nDmJS&063_)FUNKeZ0o{Swk znmFG(3$*?nt2anGb5grJsFl!Xq2IIbr1rbRwrw zrW=*FY{5fXm9Uw3MC)kPo|10S++#`?qblj*D5gh@>a@G{N`|@)z`P>T>pOglyGSMP zFzmlLN_hMAVqAnd_VP!}9KhSTtF?F$*U6mEz5TQBw0S)t^9|-|#q6+e+La3*u6(@_ z^D}m*eSqFLbvyGF%rO>nm7}_yqPmT!<4b`m#j1wff^4U(;~c33K`dmC5aLSGVIGEs zuvLG=K^9LtG7m%Cv2n*HA2>mG^Qg;_#}5EN&7yrTxmq7h(ajD~=S1q3doH}NioMBt zbiF9`sm(4icmA$=;4FD}zi*i~w0rtoLs!U^K$Fx6r-J{bETBs!XL`bHf?K1S@1Aha z`#P;vr5Uu_BY#z<)o>{2bXei9?wO;SH42yK_Xo+{?S3_FUL|VE8#n{iM|Ey!&`{nZ^6*`-%-3PwC zojl=o1nY5qby@5adD}B(8t@U^w}0%^f7iRdJnP;6MgLXauhla-7Zh6V3EP9u_ar`U z;6CV7ei70m9r1S@>>~P`^(A-(96lkB+ltJZmXz5JH&Nj1mxN(|z2i+HjJ3J6m9}9{ z9x{Y5ogCU~Yb0RN*kfJJTr-sV<0_}ygg5uCP_}%G?e!6-0NcU2Ol6zvOG5!oqqxMdNQpaR zSX@6}q#4D4r}s^53rN2*v%4bw>hpc~F6=Wsx8qdK>s=+UuFbXne3|``bK}*uGr9*R zsYdQ1klDsI>4>RuRy+s|&^MYaIRSB|p$?{94sbL{s+%}GS}%+>o6|iyU;IqQ1(_bt zx{NuTsnpV@v}I}Uq%GF<(S+?xk24Q>oo+vbaC7NEBaO0#0&Mzc>jG?a{sUE#wV`%_ zkIr@ll-GxK#%=Zd%i>ko&i6b%<2jEXUS|Y>*ZQWcX2hXEp}u-P4^PD1YsQ@ned~qW zzPfr8=WID!i_qSk^$4oDBO;?nlp?P!C8a3no@zn%^ZdA4?ZXfisv3!)TUQJnQ;%fX ze$-0un}-?XShbas4zFEGB_@=TN)0Ri&clsrR@9Nkg>P+<>yf=r>pB#94LQTJ+Uw#9m_e1|XP31(rcq4j2 z(~hJU04aSf8DQ~H==zntnIkWV2WV<1ngmrb9TZg^RRPyo`LfB<`z@wPAk~l=p*n>c zqtXmShq1V6YCMSbEYOV3TCc!=9--(#z&)OinqGd%vq(EW7PcB}c69=*|4ruSp-+K3FiGg0OFW%Q z7K8{;z$Zl@ZP=XwCpigMJLMIRmyB*6n8!4CgVawk6(~RsGRQp8;5X6SPPEN2f&te3 zC52NEL%7^ov=I?lHcB5-Y3v#?Hm*JPJd&$&tN^leO)$tP&#dpTI%5%3c6Yu$uA$Ss z$Rg_3-5uRD^@|;EH|$@&yL}<^*x-tZO)^QDU`~P>5k`@X0Ac#1A#`0wGHeel0wBGh zUvBs~G3L4J0V{hGvqZzDmuoR7jFk@I`G~1&ZB=ZC3>n0#Rcd01;)v}rTbB5?qF}E2 z8m_P}2dMTz0K&MIA`O)0t+P4GyCIk&!(~K2{nFj`lWn>V=losv*`kk6^9^Q*q0L-G zdDxO6foXKtb*i?yefo`l?18(kA8N0feR!k)T`(5#tF>Con}qFY3)DAufP2uX|IZ** z?_e|qpCKt{ovSxm7s1`VN0keh!+1VLVI7emLSiXeL77_E9Lj<<5Vk2>x0J1K^^NF8_O5Hm$MSSa?SX{;I$d697-n5?h9l&Sf>lbN? zP)teU#?)u~ld^kX(?^|bbgav| zBSyJz^!>6>Tf$Rn8oS?|2|f2XFjc!If6+@PNa~gFLtILi7j4=h*)C)-=65*b1I0FJ^Gb>4(?pO$z+PRaVs@B=bhRHJb3jlL zN4|Q=D5|BNlim1YhMu7s`W?9{P5li#yS0)=9NQ3MF<9*c=)7~1Ro@y^Dn-obhyO=JB6l3W=atXCax2KN=wb4g13$v$Zo zh2zEIZN9-8 z0GThM;pYSzw6%lyVlqUV!9)0pTM<4iu;Q-84Q5Efk|Kt+zfm;ZMOaLJ|FE(CrBWaz zL^+A&_4+cAPh1mEdT+e`sHS>Va;yDe;C|QBFIV2XoM_iQXbN}QF2S6=(XO}B_1#%a z1-W*#Vp8cmgC7inv#^kLsnCEw(& zELb)H&X)Nrh zxBoE~vR;PBchGDgA}b9M38JzR89ajtua_fIG7v}DP})!McBXc+5VpUB5GwR76CzS5 zP#+?s@hdD;08vY-dRkibEU9V*aFDQ66>PTmofLEQAm-(GmX0&_xd@cP^gBR=KSa2s z>^N{pOvn_%D+QXhSx_%2EEj-$drdP}rZ`DhJP}bjV<2fz_>n$X-@ogr zEr8rV9E`CLvX25c6Jz>B$Su;M>qPJY0CAL(jHbXEnIP$pw6lKp<`AWHgwmXm2bh97 zV4iQ1kZ&U?u?j|A0VoYH(KngcfANlAMc5@4b_*Z(gRTBS5L-=GucaF>D3;pqp1%k(*@p|*>C;1%(5biMxlv$2?g2AMwT-wxQzc7 zv`g{Z4Gw7)kT+~65)^hViVUIvbLIh&xd6DIuwhiqysVgh!vp zqo)AJgPvlS`#}fr@Kmx@KFjj3$T#F5{Pi`>e4#~{$YslVr)vol>M3p7E`V2v6%Vjs zCli(^h8-4b?~}of0L+E0Wd&?R1+y@91kMtL#$K_6_afiLgI)^ILKqPTv^^?7nlRB< znR(Zw=s_vk=W+fJMM)wkCFN+yrp@7?i*O{2mO@Ql9Rj9wvXLg|PFtJu9j)A#q zKiD{Il-f6Z=-q3$pLm?ZL0rT%%u5DMlJlvJ~VmAj7le=2gm8g>u9ZvftNZ@B)d20v(yjI#H<@ zWS%>-^X{2l-PX6rn8$L=Tfy@8i*l}nc(b|q^Sn%gFVLQo? zC^0N9F+7@xh?hZO{xE|L5FY?EOA4|UK^P+Vo(S~kGKSwbv}xGsVJZ5i*k*x>8j!^d zvQW3ACiV$RnZ1v;hBl=;r>@)VJt{! zC%lfFxsQz~G(qrK8b#uk&xbTvd{`Q}FPaI{-jR@qN3a2ifNUre2`LYTLYxBoq;^-O z`M0FXH#ev#D2DgqRo+hNon_)2GB6jsQLh-mub3#rc2s7+{W&&zM22=7wi~4=MjRL9 z#De1f*0OPC#3k&is33%j`#{Dm$pJxZxW^ATTL$N_V7p~knq8Z7S%^~BxwiE;@SIpg z;uw4%Tbq>u+kFR~Dm!q%{+|#Tq(BWCOoku8Lm2`BLk>Z^!4Kl0ia2J72!6R4zTXU5 zI0D~GgvA12F=UAG`CA|F-7-qOZ03fU5?r>-=d2OY=cTAlf6NpGo45gMA_n`iU~DnW zxCEMx?>_exp3EFfW%=%wLyspR*2WR&N<_WFDDRD|t%p|`M zDTYOfpalvrF%#}52Ya)%VlB;+1Wr5I+6M3qd1PcQzV8tJ2%f8)jgCq0x|U8*IzQqr zi_<&9R?6Ok#ygZOiLq~3=s!@D#if305_*KGbel4;-p@wQ$+1m4aa#rkLdr^i;bS9! zxVD|KJ8f~D=dnh3tr{jmlv=ru3`rs%xw;UZFZ8VuHRiAp#qLe%B9=EEqHNX@-vQ4R zz&y_?YDr=H&cY9p;qz|LS_`c_nFZxqcc?hDrVZve4tAG=17(ntTo_e)t2gl8mC7n6 z>bBX5%ZVwSYmDQ+ZlG>4FTW8SU!Z`vnK$9bI`>_GpZ{&KmwQT7*bT7rVNPwWZ#~lG6 zPmCZAi%3@(=r0Y%w?*fNDN2)3>!=Q*$NV?x#=blMJng@cg(7DJ&9aoP%T5hQ(ILFi zf92TYJ1>Oz=B1u1Yma|gdw!p&xBm9 zoJqbglW2;*Ex0HDgZb~?y;n>3)?T14;L%?KCIii|&%~fi+2JC}i6qKw?4QilpM>P* z#*<+df<@mN{KMV<4jo$^zT$;!%Cb7C99PY_n4FI&V)g&(?{%O7HTnQ^?A#!C$ z7+2upHrV&QZskn4#X1=cO*cMocKXLNLy&qCMWks^M8glzvm4e>4g~|R_=EwVO z2b>I}ytdu|tpmYJ{0C!9`qD)=D(lK?6wwN{MKBSX0f489pixp-fjG%pn_noul)80Z zecybiF*^6Z8P?Xx0~Ze7nnWGCkGd$EiQRyGH~Z914ms=tBm2&ZRI+MS`9I7@j%C3c zn8>~U{*8EKF&R)PkX+@t-8P&uP++#hQ$1e-V2Q7`V=W7#)QLnA{HECfgD;m>+t z`kibbphFOj-Za!nKe()G!c`dD4pkVC85Tg$tiYSOe#)OaTY=Sq`mj#WW zXm1C=4-t_y`xL#x6$!B|X~1XI6rE#zZqWW6#o}|;?+{15kzn?fr@F{$DLg{RieRm4 zjVb^E^UE0&=rBzyp9s$qfUdHQ*NXOS1t|>@(YDl$IiOZ zrF0hq!(|qFbCfXF?K|#Pd1GIpI_%A82zP12~|sh|I z6(H)x2)^h_q}!3TuEs(0FQ@wMLn<`E(u#_q_O%EL0DS}EAsjr>c6>dP5GK4CCVpHR ztJq*i`yjuYc^|zcMqgo?whHwZ+fE+|&@ls|!ZOh_f^RbR`)~7)Zb{D%vM}!`>gCQ; zsV(YjLR_&;L$EDCeGhI~hOv=a6t==br4WB9Bna>O;!h==3CSRiREj4r{ed2l-$Y=q z_(1XDe1sPF&Q@)&a_qk(kTJd1(ED2B+j&mW<>K5l*eHT}6I={{2Oc%pHDA8*eUAR-tKt+LwL`Q zGgYbYAAH;)ia9@!@+9TSvxF(p;g8Qh>mW^bE=H|9_QU8puNSDe#PQ*{3A?1pA~w&*(<{vv@6})zv3O+!fsBz3bsckNlsX zJGPwMa_3%@)Bfd~2fePI*CfY$;p}>IcB8?qye~6nyh^t18qE9l2);RQA=vL!{)#H& zbm2Rfy?i%{8pe8bbhTC4+#e2%r=~IkY;LT6 z3m^}x9SGcX&%U=aqJwMFn9>n!sc4^m)_q zONFY3(wFzSeeTm?N3YP8YuqDq=6!Fj_S^0mh*QIf9^-mQO37a!yL&7?i2+tt(|_@0#MDICu0vL7Fd!Tgs$0fZ+15 zq8D%e^;paCh`&v8!PL2t{W%)%xXXn*_oX*iUk@44dm6n`7o*t_mf(M;>CpTY(}CRu zW&a#waxFSf6@EEC7PAg&+{-LjX@$qG=e#2|%@?jx-veDWViRhM))@bv<|nvf9Q(xe zgdrioHev#o95HO5lmV+C(^MXYj2P%k z`Z}sc>;z4x4bA%<2&0T*yN*~)dXCrWtoy04`7dVs46&}ymaV+pp=M!1jHvAX)_Liu z+7i6<`f4k_oUNs;G7j_XU%{7CM)VyWAl6A7#7+XJvOoql4wGQ+h49YJ$cz6JZ41wE z=6aoyk{lAOP+Qqg-q*=_#@>=RuY8_b7Yphn0wxwM@C>lEB~>Iv5;|u{g~6zZg(%#o zh|vReJoL_KL-qB?E;h1Bz zxHy?xiy;njcjM=`xf2aZ^;~bmlmkVE%z349cQ8p2x~7O?(F((;_FZ$n#Uj-?d#$o| z^;ffh^nyy$IOO0);29rh5UUBGZSrFo;X@A_d}Fdd_kRBFGmNmU$@8(ejmLxk5q`4j zR%8fK)Do>UqqOa{#m;?~AWroTPR6|9%P`TDW!OB@m$Ind!+^p!lbirLOCf!L;DMdm0(@c9EC*dwZGxI4RtpIi%Y71a6l@Meihpvq>#5 zZ=waxlE|^iwyk_WqOLh8_-Nkjw`I`xm)hZjudGD#n3T7){5uN!sUk5y`k`*;{;C>> z{%ikygWC0eWt{%Gpj?xHtt|W#QG)4WbUC^Ii<$4CDbJ97#&qK<%8C55fMA%Nxe6w& ze;i*dE%B=1C~>6Yp%oOUVhVr^lY)1@V!tpPY>hO!<)x!}sZKY83dr=248}SgB+n(@9QltS)^myAmtLu2ms+qi+xYRt{rvitN`#0Rw;1jabSOq zoWCKWmFF4{)|h3&HbX`glw+{LD_OBwj~H^D2+Qg(LPxK0C$3H3IqLW8Yw%r~Mz3=b zS!&C{&l+kDh}LWq)~F7S;71|=C#_+*RD@BUj9oTwv7oA0Z;=-Cg%B0 zOnMRzUTsJ7Gqx&m3!^(%6ASeNJ78`C81B$xUQI;rn6bSA^epl=wfS1|1k@HRV0gbY z{Mu1vn~%*;0I6j96eWHEsvJ{b8uJAF2n+PDF!Hm{XpZvcSrbg5xwg@Ys4Oz6V&X>s z9e8%edbF_?VX*7+ckf#jETNI6>Hqxlvw=#lIdxIwr$zrZO;&uI&`*tk!>D%or6mVt z196ve-*bC&D1tu`_yV?pv4rOx0ohvy@mmAi6Cpk1__SOL6Y zyv4kUa9610717^7=F{lBvnUX+Upe0uyKlZ|7XXNzWhwW$VQv{qWjtP=b=sQ8oSq^{m-F*=xQbb7Do^l&L8{YPhm$={^s;1a4A1r z;F{|>{LIWoAfV;L<(mN_2&R%RSAo!au2TgT=CORQeu@`GXeq08oaK_gaVa@U7u)&X zOJM(8e!w_?XzhZ6T-6>6nVkhGZsI8v*MLo{oTOLHjTe^}?O>=nM8axEt|&Y?&b39o zbf{*3gE5_JCgquT0plOT)N|Nc5g_Le5$}mnSH-eG(KOAYBW$=lLpjGl zfN>z$Yc7JUWnBNq2;>Kz!??m#0`~a^s&sDPkMkTTygw7X>`e_#{yaMb9re6Z!W>gj zGCM0Eu4Ld&@?~7koro5n$Uy*h7J7gT$4J=;=7G3108R$DId^Y8{x3UH2qmA__!v15 zURje|Z}qvg=dhOPSARi)2%bytJV?PmdajvI0KU*+huYOWVDf*}3V`Owyb%8F`J1_l zT6Hxf`+vVpUVJ# zuH$>j!6n|>0Zot>wMz1-T6X0*zefl=B7bEI#$5pMXPbou^Blxn+bFOHn~&+Ja;NZB z-|!9w@ZH9hycwm(mQRzPgEr#1pXS20eF_W0lz(2`b}j-Iv8MfX+QB&(8cpDsjH?^5 z+&uchu3bPDD=1yaF{XEH{C_S3Z!W9dbNCvOtYL%)l@Jv0z2;X&d^?uC4W)%c1|222 zZFylWdIPeNUGhb#f3Da{UH^E~*h>4Burim%vnG~WQ9TrQq}RM6KT-hyf6PTaU= zVh$V$3yfd9hi(EK1cV%s7iW^8+#={m;1nie>egRC6nkLjW&O&Xm(wpzy^|H~iztE2 z9|MQMvjCy@4V(65QS!zk3YXyNLLQ>EGAA!|>bw$Hdq+{1PMx&YPI$s)gfGn1rjjAQ z{M`)KfO>L{r8%GB&-3+p;4ps9k{HmWUAB2Pe76J7axJX;Le%+xrxici7GbbD_wcYQ zsEb>RwQ{(BlrfdL+)ZlmpY}jSB$fgIL*?eQNFGXp?&O8~Quv;9A<27$Mjv_^$Gfv^ zK@wo>DbDM>MX{y%cC9O1`UNhrAJnvg4~#(O-BsSQ^Foo4+n5|2ybLCf_cPXZ3V1Rx{ehh-&>KuvCVQAEzmJN0+4?7)=e%`yE&lIPG}Vw2eZ zsaP3wKj1>@-@yMEl+)m6c`Wh6D12cPT${{w1VEl0SCP@mPI`2;&wH?n>hni*GSZ)g zsX}}Rt?#zfrFEm5EJVomL1%?jO1@;Ud~WVK$hbcWsLupt5A~>rZwM<+U{>MbEOa{l%FP@Ju?CYaJgdeQESBfbTGhSpzII1nwrjie_$#R_wP-iet&J zthIq3&jObl?DD%_IUR++PsFDufwn$Ezu2JOQ4o2HTvyv<@Y=oWp6KMexcjxln-!M~ z5MCYdJZGbvCt=Cm7D*eNv$#g3j-vuDXkVgY6!P6w_9c*+*ad@SGxfWR_aqf3NMX=V z99=Q6GmyJU7mnMrA1&oQDe>4;<&~ zy#v=UU30vqy_asj%0FID1be@*)+Y_M09zlWx zMFmAZO0xj$5*tT`rHPAE#JlXaL+ua0AdbN<~IN1uby#%KTf-#py|-d@}ASRN`B zH_6=06i?p49I`p0MZp)h5P*!>wd_WovW3b7Gcf|2dP)DI_P6mGZ)Vgs*v>sN*pH}P zuihq5I10|Fz6@y02Dv10wGnXKZqT0XXJI!HmYKEd+a4(?^kLR%=zcugm08{ZCLMKO;)0)kY`iPjO8)W(JkZ+4Ev4JGo7_bD0;c|jqzK6(`b<-3R^RCCkRzsyAK;p zEXk)Nr&X3zzw|{I)~mx5-H)sI-fbUD*pjQFx^y>wX2HI&|kSDmY6AT&&PClmR~dMfwj(e?m{ zk}mQ-Sw;Cz^T90FWt8q+`jF+Xd0TVdNsp?*n`u)+QXLL$t5d|%iOOa z55h`v@fW`3Cg;xftQ_RHbzx{*_Zu!*6u7k;;6V;?BBNDs{{b)0JP`1wZU|g&$H4v_ zWgwLx?sZRY4Zb@38BaApeTHL%yTNnmV(of;aQ7ipB-S5+&CbBXv0vntJ+M7%@>GG$ zx!)kKf~zAf)=C0V%-zndzcTeCVtf-DmE$3AFY~r^LB7Ok7hc!%lN!`AkNZVD_GUHi zC0+7d4ULWG>mu!k`aiwMdV2dma0wWTGrH+b=7*j`7drC11P16pl~9Yb&ZXR~vyg2| z{K%%9pTy$7FQ74kCFd`+@>2&Spk?1PjsrXQ2m8 zll*%@Wgv8a;|Fji?*`xnSoHbe<&F8h?~xX|{uiPCiG&}qdsBZ#52i4R6W|%CM2@*g zd0eBx3~

    Bjn|CD8v`(GC&1W6hwcC41>(vyKec0G3Ke?IC{x`*d(9|Ao?-?5&5; zw(_AlitsG&XQdZ{uV9dGlHT;jn;na*V|QCe)-+o-xuv*5UQn-OA8)%QXmM!by?nOx zlTe&4DOx{T%vj(fi&NH1oU1r99L|OTl({PR$KnNkvyC@!J9q}9$eecPFjE< z@kHN_@n^jyHQJszt0SDF#anf3qHi_LZ(QkF85vzG4ZWb!1(V0y`%TFJ#+D-=k0se>eTwOet}GTc3j+fqhMmwnV0q5pE^6|r_@hr=6<`L zHvi#Cz@QCtBiL-7NUM`u0GLhrEMV&G{gX$9eve#p67_O^4Qa z{8~Ivy^f(od@a__7_lu<4v&cSF5TwcI;O)s8T?!$BJB}WC#|CvZd5H@8#k&A+%%yl z8L+*h7T#A|g!c}!Ez-5y#D(knI!iS5bBG|iRxJOLc-xM+<}-~uGoPI~7Q@x*Y>F?Q zR%L7+hzqk!y~>@oyjwXu9U^mwhKJFt{MY}^IVvDqE)EdjWnwgu##x+)#$Bk-s#g&-|T-wGBt0|XD4U5%i z<9ll;-=awDri|x?HMOn)QUb%Gm{?9RL>lAn*tX~-uYMgfQ2M0suCm0o&}*JkvFkLO z?@-migHIE$=~=xv8B(#apZ_!ins}8}fzSPJiaVzdo`y?Iq+a z6P-z(mNu;8b^Urn-ef0+5P zbIP<84Ziy5+e>40zFoESp5uC(*rcS|V7l>WCm_<|Ipn1yX z+uidOIsNhl^v&x_fBsspHN5xO_*>uW!7vm&&K!ca4U61WHzft}f5^{1bajx%0cn=be^kR&ca(b&m)YF^YqBEaMj3p)PA~m_Z~>uo`1`I@xfmD8XUNb(ia5X znWoAXf_0bJaDQg3`W&n1!aTX;|CPY}rD20^Md75Dj1J0WR#oe@5k5%WNtbjbb1dECa4qZRUh>ojj8iY?PK zZmkLYJbr7#oPInu;JqEDqRyXoUHWXi)NDIQ>5qf!*M~-qwrx${EP1@CzEvr9R$}chqGGCrMI?MI z!u2IrN1<7@XaKQ?y1b1+?Zxdw^QhbYBgWnb%e)3lF-eq>cw%rV6~e_A)3+wXok2wD zsf3p^`6=eX$N=Yijsl@~f_d!>?OXW{WTmbyp=-!6nu;l3<6#u&$PMB^oI(P^RTGO$ zJA{x2ZZR9V!RRkNLwOh1*w%w*D-J*L(*y%zHf}^KG37%VqazP(vRn1zgc?_5U2rE& z2$6rsOApp<;NJ7g6ZrML{+jcc(h8gMnzn$IJc-aRM;{0B-#Ogz*kFLoKu}PI!MupQ zB$TqYkGvAMU&z(gFIz8xd;?bA%p{Ty<-_3h-w!gQ62Hks4b zoL}XYYf!`O>yq@6HeYzW3mp0O2*`%gI&{c;7Kf z-00j3^*Q{-&mn`ih05&02J)bSgjue-k?O$o4#1k1{?l#<4}DyVqy z{XhB5aLw_#R~sq$6^|OT73%zslziptJom}X@PMYY#}aZ5;CJDR#XUvQWNFc&WK;DL zzTqWvdEHV?;pWWI)9;e;bmgXq9TfgsT_D0HjDSg!#}Px$!kmN>Txr*KqLR9mU05p4 z&<%9x4C8eS*ll)5|A)_)ir4Y)HJ`=k=-7j-WJlZVbw>|Fxeb@lT608Qe4|LCUtyFA zt57~a;cfCRuSKH7R%sgOCVIXJnoD}F6mpTKJjb4YJdx5_0s!5 zVVIhekc@F2$waHkLJ5M{Oc^?}fQRTU5fO(Y_zETZ?v{ET!-I(`4QEAg4{0mp)}jwN z30Ur!3()9k%C(+p_sm@m(OioS+E~EZxO0)FdFB)Jd&r6BsXgsi0Oba)n#Drz^*6i| zmG9nx+XTfMbYq=7D4>}maxe)ok1ANxHFz#9vdQ7#=OML~D!@{E#9mCSg_o9y!Y5Jh zV$#iN_)1DkaToA&Ofrv@cC^GZj5Avv}2jI(4hEU;=dISfPuHyA>h+mdK>vXM+-#J z;LP9Yn*S8B(|_SbY_Jj|QaxH?E-^3~ku0pdQgr`nGiNWj=D+$eO!7Fj2Y7*N7u!IOckF(&yytz_r*z| zCX=d@fO)qo19na0v?Jf3rwFoyJ(jFTm*6rh^3MAaLpM-)ur>y14n0C%8? zFHlXOr0Ol1Bw!ZsbN?y}Sc8GO<`4rbzW!R{x^WW7Y>^hP&f5@yOFTGpbA=}T#a&yR zvqZ}N_p&7q;`QB}nevJ2A|F%uD~pJgL%PS)Ju0U?;-8$XHW&ml=Q+k54Wurr4%A$Ks00EJoiScBZ4gxs~1>)5t|Id_?g&Pn-N&Wg&%jG>*AVaHpib?`iJHhwh z{VfCc835>EAJXLpo=aG)3v;)NjCO>iV^zv?>-TaS8763Rjb|k)-mgh(v-p|dAcqkn zAFfH)i-cKU(roSNxvd(3O$O^E6?cigAUwNOv8q5_^i)pajOi*M?WLXW)bB2mZzfb# zDF^C99WtS+O#;;jK+>u8)3M8v3_+Bk?oehlwWAAYwZPGHhLb1ZHnKRYEF2J~x=~W{ zvvkIqQuDjXZ=gP4llCt19M{RXbf1fn{pheO;kYZYG~E`_4jlJuJk}8ntlav9lr&}P z|3v9HkN|vbSRgQ5!5Yd@`nut=lR){d0CoDD@~p%}CRykM68Xg>K;53DyF`(My0B;8 zhj;smCuo<$PKhxA)Ye5Us6BhPTVMja0ZcDaJ8S{=yAF0s;$h_ytx*bE%=x?~A@yuy zDfyj^mS{BriT(OXe}S$areETLBn<_27IjIH+M4DU)N)| zWVdj^Y~530-CsInJU+6*bM&Sf;JF`q zwtW;*gVLLH=nV!P60I(%W(#$`P*8r7YCr~!n>0uI(~ONLBA+YXBOTL(ArmGneYKWI z+|p)++JAld#87g}Rqt@|){{e9?PizvJ1$=G0TX^Ft6%l95={u}?mP8)`Q?F?a&(oF zhL!B8hdyyWlShiT0@cO9kN;Mts?oGcsRVO2hz}%)s4#V^GEw4=GCY>ZNKhGD|8P^H zAV_8uJU!|@g7^wFv>JM_L_KO-rApwS?i=BCIoDY9`)fN(whmEz_}W5=RsoQ}m>{%J zJL%=>R=^UQ&;fSi@3pza3nf2ta5mF4>%qERQH`5w(J?B+WVXg(1lYB2#=%3WRZDw# z1U$X00eLWtngt&EK{e>vmiS{b-G0PiO}T-cazl@MWl`Au6-YD(byeOq`K#KnEUDTG z+WGI@3yUb?1q-bvPD}a9cwJh{)N;5m?e1=$lk1%f_k?F_$&;uLLX~by@sJZM!Fimm z>rKTZ@f^*8x>ohqyq9*5m(~;>8|?z>q)9YboUk*J>|m<$cso9A{h6^Nep_%;(S~px zMn&bPh=#hy)wZBr=|;5qM|j<~ZST(B-evHpN2<=H()c{>)rw}TEIz2$~o(k0_ zwvBN6Koc=OxRf9B8azVaNc zsJ$Pmzckh1r*~@iZ8Id(_Q=wQs?`%UdXfm-E4oART{=b`u^Aq;>#a|Wh_otOTAdHg zpp`mdxc}RR{VE%HcU?E$eQsgb*K^Ni*m=Z?@SAHXwQ9WzYJm`t_7at(VW*^FbfBSH z*oH^hmD*`WIfh|i7rc6@3N5&q?@Co4RMH)kbaQ<)*UBERm&XInN+zm8qccWa3TLlW zni|N;>j$Wj8pmD?#Tc7c{k3`fqcyJMIQ1n<^6Z>;@#ilntA}J`+0~)Q+@3MpE6*05 zo2>o~iC@0A_v@MOt5b#jsm_aygD8ZDnCGgy$35w2%@041X^L+B*}$ukyzQI}tDd)O zp$6eQ4&E;}Bo2KZpEV@V4Cqe`MEkzLVm}^7ne>+joC+Pi-m%kzn`ZSzyEjAU;jv8# zKDzfZw!3eIZTx zlD{dhC?JOtn}yff)o3#fvPQ^C zvBQo}wJKG3cIcOd_1np6;6YR=J|OgFHy9tIdIW-iNU3T#u9kPWwoLLq%oZ8xn{Hf1 zIe5wcUElrp z@>=z83~wyBZ-7f79%ZY{0Z#J0F!glA=VGd~a%_ouZN=x(;mNUaAfFa({67j#L55`j z$GyD|e@-b01gZsIfO&)%uEcN94C&2UUrwB*dW+&R{I?x@dny`0Rm{GWfQBmWhHC5( z^$sBJHwSZb9NsRuJw-)jnUntx4YD3y`y9Qo>O6qfdkf;V1_4(dK94>&Q<2T%kDuqx zd3nf1uCG(wLMz?f0eXZLVm(l&i)ldMl8nE)>wE9mgNBB4>(quSdUcMiH?AyDlo4@M!X2Na|oV5WQTv_FRjb;_*WjiUx zH1X^UyfF6EYk#|y@gFCU(|V9r(67>?(hVSLh1wwJ5kO+|k2K<*qD?D0{L4m-dglBy zy5-~I6!!|T`m;&l{xiS3Ro9)V|G~oaC_tP-sa_R_R>xhN-YEV1(LnHg2xL{PPSX>L z`zQVE|3nwc@BN6d%bPX%-Ggi1wH@^B*~X@azhr(JML3r*qUUT9PaZV1(sh%j7x$$R z9Zl6plW4WX!%s^zPf|7ToMlOj>%KruxGMe@?TmU@@xNV- z{m;(~fRxIQM&_*1QZU1IubhhsFoY*}D;@0Tt&)+&CAT;X4b`wzIgQ&jL&By4Ex z8)o|>J5pxz_=xp2-S8K0srM;ECY9w~y0Fwas{VLWO5c_Q8G*pdz5VCU?Xx4kd+qJ< z1rnUQyA9oQ&2qCusYL^38mEc?9nqf7Q}HX_uS=oaasBi0SX%Qv^l%zmSiH* zV8lh@Em_}mE;s}7hnieZCAL&Iv~oxf?x32)Crnhy$Nk8W2Sm8|cqq?iFhneDES))X z7lEz7f&|a@%+93woR{TXGaQ|QNwv=P}Mrt3n zQ*|dFnF!7e#tZ?(yA?F1W>c7P5?0JRyi~CcNXwF(P_*F|>_6eM+V*SHpqE>v*N9H7 zzuEtBbk<=_uzwd{7h^?@bc~Re?$}0`4p2(OjaC6E5fF8Z(c$P2b(A6?0uLe}>PQg~ z0Z|d-8KD9eVqxuh_j~`|_Rp^Sy5oG$`J7BE?ubOz2%17YWH2i+kuha847EY(fM6EO zR4wpYA;76MH~Uw3LH1&y^7O#2Z{jfns~aq0k;R7M5w0zn9SvgFK6xa=z57uEe%pe3 z|HDwS5(vJrNo&gO=*wTo04zqLkG=B7euyA+cWJaA6_(*iCL`flFg;>rDXu{ zhG8xx4R(I%YqQIlZVKkdJA%3r9CNX|Xs_0WGM&#UY3>)0LV6}}^|V4IT`kopZi6!y z)^p;wbZk(6;>MF3r(})?-#+#8`?udRag3o%q>O1gF+OChK=y6XcXVLb{W4AGGvB8J z-b9=?Gx{=!PWmT#HRQJ8hsgulkJ|!n27ZgJGk>;JD|j}tdq&Cn9N94~>FtclE3Oh# zL|Dz2H;Y;7qlQkDH1f{8aQG(ttb!0_eBZ#;Jqr3v90Eiz)oDGL3nWs*_L z%`(C18_hC@MUq^V1a-7o`XGT2MGEFTgDPj80m6ufllq&-@;J(u>kD!}zphTS-fU?u zSucTKOsdunuzOC!wg?;rif!mrcELMgToofY^lRyD2EZL4}XR~xkk79+pd zQ6aeEyuby@*?r_9d%m0lj*0*#71HiUq30Z=4wcV2DV~;`cTu}gKHsm@hW44_^`ng* zn13mhon_=*u1ydIi#CLXz=H>56GBv+&r82*q2;%4^{uvAeC0M4164B|w6zLb8pO3< z_=~)kxkPq>QCy%ysjFa7)bf-BSjh*@xrAb!$e+Ptx&!O%g3lb0GgIe@zy3qzo=}w{ z<6rC7&)LpXl8fvl^Dx+E5yVy8T(Ahn+XDS%E!D+G93rw9w1L ztEwm^N>|u_c6MIf+7$NL1!V{soAN{$Mclq;{ySSj&mb!1Bl) z)5^!g1%{L6p=jgjb$gFLwa)2(xxY92sIBEyaQq1d*axkxUMlr;NX}ZqFSu#CCx$I&7~l=q@Wt85^-DK zyyt$CuUdK3Pa8!cqhwJau|C|qw0U^%V%@Xps4k{g+d(EO1M9S zP|UYi`u;k16F^182=+eHD9N?$1d4xKxj;sJ&awSdkIUW}`L{)+Sq9?^0v1-Jf0hbbVCfc7xLWl}ZCFpELM0fEe8bJ5=}d?ZquBeK2%Oz?AToSlFD@UD zV@0PCJjyTq?%~7ih&1v0!^2C{I7A&9#EhJ6dSB{y$%MxgKeh$V0>tO?>Jkp0V>r-R zD+t#?L&B(q18GKZXF&=m=4XB`E0@)wCo;E%Rlg+8HW-_RF`+WA>6^F! znw$$o=?20PmlvTMrCf5zrBep7=BNi577LrT-$gDbxK@UhCh>$Sito5^TYdB9*iI5Y zn_DZtsIOPs-kG%y991F!kr*b3kh(LX{AaD#-D3q$W7?;VZ|7PE)t8*sci6>!4YQS8 z!5tN>xVQ#-mtB->*1X{^fWV!GWk32{I+AT1)rvNu6&GD&LbYEkVv_r`6pZwTQ#u)0 zTEroQh*>GI#>=ssrlOq8Wd>ekWf=h)aKF7BNTNA&Yri(a4%a5~Gr}VAAW9Z#RCY-p zLSpPb;V*b0x9-d_)fvXO?LW46*bvY~1W~9zF(Z?+S)ZerVnG6syv}`?P0UbAC@zyY zPJtOBT5*x;8i+eCdU;P(|BBg7tcd(Wyc{W|-L=cpicHUQ*v3$=#Q+wRGN@wDLdw8LMJ|%w;?7 zUMS;;^z!T=buV$>37Y)$7Odiq%$?5_pVBu9hNxriTUft5%@w+|bTu_c2vc|x0YR$h2zG`(G#Lvk@{E)e@ItCj`I z=+wn62c5zsO3848)IB6Se+5IG#au^M;k|INnS843C9YC&hN12Q& zHg@I(vJgG`n~MdpKt4>4dqaqh=1m1ld%~4eWsa!7rKDwuC9TLJ)Ei^_yj1cE{&V|~m)I4&;BDyV^wVE$4{ zddVsqC{gVN!6{F6LUl>LW%z^(aUZ!kzj~Hmz3$4BodtcOh_mZo#yhBcu(}^+e|OLa z@v89i52}7@s2B;ojq*G$zai%3%6yx3wv0EWm5yf4eA<8ifkO*+X^p8{xEM9K(yVi` z9(Zar1EMM%B$=qXFydILY8cBrhn6ftRUd>b1I#rQ4M;?F%F-;x(YC`PDF4%6A>}1U z54^n@SDk8Nbn$c1ahFy3sPq@C1DWp*v^Ofo=Y*PvaUoYyere(Y*LN-OlwNO1?My+hg_+3N;+alf6kU@8hs>=9PnsMl4r4n^3vWQoZsc;?s*69X7YU9@X(A?W~ko zEPX^-3!P`iso=`n?yH*CcXRL{OY}eFsHdFUu==yG8bs&Ub^c zkG1RzgJO&-mF1>q-Zv@BKGD14+sJ>_p_nXQ?7~1+uG-Ev23xjjcJM`sPw|zp)J~Qd zXJX$(gN`Xm{1pW&_lcmV`=b|5__!wiU4YTMev8Zm814gRvYEW-ZuNrd(U9Gfd{K&8 zY)Ql^W$CCd6W$9Dld6bLlK3_syTiBUBCy6x3G;f1%~^~UQ^J%g(ZE3NWlRMLM|Uip zdH@==avI9X%f!xl`N1LiVW0xBM83VAn9UUN+v*l{&bz29CKRkCWJgZ!>+^09A-HCg zSeV>ZZL;zg7y~aPiFfiwcMxKC#u?KBG-4FXe}nrafPGRcN3GdO0x19pZeFlar;gB~ z%T|@hp6_bXn|()80jt>;+N#No0wE7OjOm#lUSO2G9ld zcm>sg)6%yoUEKBOTPT786Wb!91o9Ct_=-|YfL4=OF90Jn&JdYDFgEoVGb(aFPgNL-{*DINK-86KGoWv?^>Rfcf z&#W^cMCED?cU*U?6>eGT;p=M%P4OlD^77C_B4q3u_S_Orlkbpy=Rx@jR(!9w7@q{J zE7|jVe$Rj2-aG@jDmjv(ZObkRYy}A#k#XKbyDl!l zSuU!V(nM?rYGfv83@ziYFB9`Kh{GG|HQq9D%Eai1wcH4|%VAnRn2Ul8HK&hCy+as> zedu8ldQ_mTJTxFe@)3bpa`eFZaqI#Kv&O)#ueRd7xZart{G9`-R*Of%SY`w4vHRilbDihz#hj4vVMF zSQu$pn)+tI5bgHJ7`m)Y7&5vffhX-J?pDnw0txdDgvk{<9Mg5-y_~JH-!)Gfca8M^s%vl8=Fkps$+CI!Z@*7*1j=f{O2U zI!0jL+G5$pu3`fdsW5d+69bk1*uTKU{-@6M!EnMy78WpbI%I#~m5M-Sl9NTF(*@=C zO?c+&Fta+Q; zK-=B%#PKh-juE{d|B>lrD(-!}=KW1^a!+5NiJ|~_(|koCh-6OhvQknG6gX$1y z9JJiDr|$P}p`e;5j73vScL??g&%)ODYNeWN+kxXhDvzse1$LPn6x$8HZDPtdF{r3F zKt^BbQ#LGEP+Vk6`DRGO2@VbETYO=ieDh5^=-wBOm&I}Tb0_J<)4RnxSPjxc)Ox!4 z_9PX~(k<1KFyFUPj*&3OntQpHl>f6={B`#@jX*g52I7QuD>pi@v2Hj-_cINrG6DX* zLJ4y!_8mh6oy99q)sEGZVw)V63Lm5o$*`z4IZq-j9^;D=2w6<0O^Kg<9?HYOT|CnR z@0drapD)ZZ6<0DYZr5`*87GcAo2RLK{^Ln0eekH0CBCLI+(Pl^=A$n2W3KQ~*-*?H z=_Gd&!37{DKA`e>$E_AK?W*qxrQ>407QlWO>cF$aZYH!UOS|Eo`Y+29q77H|Wc{g9 zds&z*ir@3@v|Y?lS!Fy5my_0bLW*ww%lLY)w&)|>G<#ATAC;?nY{^*p7CgFa??&G} z`~vC~jB4=`W`5)ZZYHGA^GM?pN=73i#l+A2jfrUg50^TCJ^ktF4g>o}NP@ZnLfOpl zT&#?@y2F`eqI3!VX`;_ihCDZekd)UTlx

    #$87yc6*&jGrO0#mOadAj=`HS`Ej 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%0Dsp-og9Sg8NkBcX5&`+f< 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 lpj&9nXFJJQA-p$#>c8AoSj* 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.dk3+H9sYf?1`q1QRQ|STJ1lLrTY+Mn3Nd`S+_TWx+RwF7X6}OY|P7Vv>k~ z)M*nju{&2pMR-@erDFNuq$L(1p>2t+lHJC$O=}6@Iv|E2C+u`g*73G01*162m*p3H z?AA}32fD>ZL1x`;!XY(*`j@qugDs5Xo4wVStQYYQsVpUSlH+>dTIhx2SDa2;vKXUN5*%WsggG)KW@Nd%p^g#U-w0uf zo4!^cC%Nz>b(byHq@^*1sDdvrDR1JJ5u|DfZ%i&cb;emLI&~N(MJflGbPhIB1*^Ot9|^<^_I2?$ zT-*y<5f*qtH_ddrvVT{DW5h2DBUqOg64^Mzjxe9uF$6kg1c z+3l%+zb_{J?h|3cc})3p06W@r zDYNN5NU8@}Oq2(qI+DS1Lp+uyw-s(l21{phAzQdS37;|Ob1@aF+Czpu2S;Cbr-QfE zi=aAu!MB~s+urtG1pRsH`&CZ>!0kl&ZQd;gA@}YF4}7h`Il9{^rgzCtRmF*^GS)*f zR{D;WuK%>X@?qzi{Y~4uFAyV3*}Pj*H3{|bFlaR`(r8Aa$=ZRhMNq>D4A$gwv7hPv zph5>93%@;E=K=KTZuyFi{xQvdu8VH4!!bhZxZKPp0byGoDwWw;L^1AF9gd!AuBXyyL&j%E!FSunF)=l>kc8i$&P#G5Y=SOsye0%u`Pb=pOuMd2`jEE}%5|pHK`bG=HczWr} zE>jw%*i7L7hs?6}t~O5AHBa+^Xu3BytR&Hec1ri5G;gcFsaqH1J#8;KIyC2+Zv}H@ z5v8VB>Yov>;lBH%vCPR!9;^F|+c()JdzVmox4;Uf-Y&YQ9Hg?!A!Q$lf$?jmCo*{u zwX{dd@pEa;hpl={?_K8Xn~0Ulq$6=O*@jo7R4jrGrc}s`iNHE5bcB(fLvA4-tSVeb!ry^VV_8gS zJUvI>YIvaP{d|}I)swT&P858sw(C2yF{bC!RTfg;*sGs*D#K-4^vvC+G;z0bm7}-q z%hx!CgD!5GGJt#E>#8YF7d^EZ4{xEhpxU(E%~{GA(%#c;*{-GSug*s7I;Nn%M?cA5 z|3K}1YsaL}14RzAWt%7W{w@pPGZimvj2TcE=%7ePW$3R@)^k6ExkDFJZXPMImGYE6 zY;mJ;oy&>Grby?WbaGvHzq_+14J&Un46_P)zV$x6SlMC;Wwt@argNcYoff!Wbcf6| z6{@KRx~L&GQ7WewD;hCSBq4*)LoU)GHdd-h;N+eZrrJ6gDK~vQF-I~ELR5f-jtfu} zAya`X0;{}ybL*+xE>Y$NQ2e~sO_V+t$$c^u0X?_P&4az`j=rNFX{32~VKsr|d zQPZP)$d_|qyZW+kt&GOzv#NIgD`NC=Wjpwl74{p^1h1V{kDvradd9e?gMUAyVRH%F z7&fHjjbd-lZv0{ra&NgFcV~OS7fcH`vH_*?)cmQn4zFiOp_6>fz`wD~cjLC~X))%x zNLNIZ`ark*M9Tatl+NQL@_2}+M9cCSsdqF&8Y9V~JLxBoHT^!nkb+aK#z_glQ)z*G zC%BCWMB>AI1yD)rI*kI|CxWL+1OcH@BH8d-T5`l)_=)#$bE>N~8J&`$xehA~>3hxTOmmr6WGX2^WX8MmUuYT6~tx_fV;`VRsXJP+L_LY)WbodPUVL+LeX%Vz;Dk59*L(DS&6mtwuFO6OvR z9&9PDqKol|R?-xTd&-T{=NbH*cd;RXC3EmTd{}}QwqFcS6iAxl;jv?GsZ{9A*UCeq z5HbK%>Ox6Ws51$gNQK8V0}$>eSZ@K0zGJK{b~naLYLhHABr>!F{3gvqQv_Lb-S+R- z+=jqya$LJ+x4d~d4n?WP-?}E{yTlRH^j)?6zGch)pGiyH{P#lK9|0CD%0DW?bOBNy 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

    J#SZw|RpMAAHwAC6^3|Hf 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

    +SQb^ikSH8jjjeh!?7i%K7 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 zȸ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

    E3SjGPjdnt63 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≪CIQ~XEBXYSw>u^y#%389lx5Gf_ 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

    !_KdHn{zMJC6$?6Urii2 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�S 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

    n6~s^J_48fW()V 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 z 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

    Q+J%NN@CZ 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 !cAsiKCucbhl@9z` zVNEL)Ow8YPiu}H`(@?>9#&|RbJ??gp^);vKpZwF@S&IwzR;WykLlA)0alTPAC~F% zZAz{H-@m|NyCa|_;#xLrdX$F zu<)EQ8{cT4mdO6IqTxN_1{MqY2}JcT!Z2;4sjPIl=m#PuCAM; ztN)X#Fl~pb-uL!nv{~0n-|dJi&yf2YSqTbQy>S6q(|ETGW2q21q{0Mv&y;be^mN>Y z`aII9&J1FCz^|6zUuJ2;TNY)=rXYNS4DlhSqGlZJJ*fTGyM?wDVWE9&Gmxq|k*1?Z zMbP6tmMA*FdAz)Ja%udex&l7r(wQ%_$P10zQx!B8i1{xRO!C-SSZejq0^YO{fo;MG z8+9^GPRz$y1S~*bEvk7XPMWIIzU+XFbVmXd&K*H% z7-7^`5~l6P4?0yNL?(~1y)qsbHihghn7Uy? zR8y6qwA^MUY#m)2H5`7M^n^R-JV8DrUy?WujOhLyaYyeDU{ft*6}ga8aZU2hJ3_~w zxIME)ca}+epn$_FsP(n!)Ka%bE9gFYweznDi%)<@7XJI@Pa7YLLs)(ti=rai74#a? zy#$fh%oKDzbMYu5Vz2BpGf-#hjxIp~5f~bhDM7k7YRBi+X5Tc3Qs_Eb%v2}pOcQZg z5_n!~BCwv8KPXU=g*a}-ALeTe)OJ51;?`#osVtKI9%Lu+D$-TcU7<&p_}3i));|q% z#?sndV!QNw&+tr#a0T zI+OBltNX^%=S$!$6h>CR>gS>eeHESZPvB|#flZ0)k+=bQCg1$;=AFw$0OD_JMKyBV zWmXvK>MxyC7H(61j#bzB%Ni$toor$0B3vkO2 zZBTO0qUYFn1qKKbzkn*>8qOLIiZW3=+B(P8lPLop#h7%V43@t zV0)S$KS(Iq6Hs)E$v~h5gCoB0Gp=r1nvn_gnXVpAfj&scW1Gbj8^BDNmITc%9 zdQfAw=T1JPr}?jw|NHauYV)-Q@}4_i{~kK~1bLxBW?DY?vFq)v#PkG~-`USKy~%I- z0{Yd#(GDpkfX3es5LjH;?6gPE(3dy%X&=|$+%`=8+rs1NtC6Zmq!hpBVB@n!!?X*t zjC9N3J=x~Z>*c=k`|jp#=kLTafnV+n_|fX!qDMY8x%qvGj!8u&;Xj%M+NHJMwQX)b z6nXoobRC!XvEuJLn;F~%#`T+s7z?KlGpzHsR|16f^6prywR^4V#B%U42atj4m&FLASN5V&ux`Ob9Hey~Xu`Ndw*5 zN1uZ_BP_36)+#ZEmu-ExO*B5|TM7SR>}!0HsrX>4Xc%~~Iwa8NU`@o{;)Au(srTP| z?0DAVhrhwwF=2j6`dxk3#|5iW@~7T-SjbP_P?>H6y$WG-%-=e|_HX|kV_PPwl>)c% zFlP}CU1AnwlQF$uRi3!KNab#u8JJf!d@B5o*qb*!`M~zGdnU-D;ITfE%rGMbFmCpy z2ihg)e%G>?Z<&8YEVRkoy`!*Ko>6u9l;M?_e8NrV&}ZRgos@U^-|O_`TYL3KzO@Wh zIDW=idzn0M(~r^nDB6#6>=jpn_I-}(;pwF}s(-e5LRPzUEN}U5FJ#&1CVu^8A zTZpeADkP-QsDW|a=fv5>40)?jHEGqT-e$IV>pAbWw`J7^@#6&YPI-e7(sU54ub41* zu?%x65oOjN=rdWan~af%~f@WrQ{{2Odjcx>J!x@No{DwjtA%WSJ=yz z(O!hYrkx?4DgKHh732taTKkcbu=Xa6F5ZY)vYNrajMvVaeDLhT5-zD}42SM^I5exc zWmCTE{+7jc>wTcZ6_42TO~O-`8xehkPzywQMOQeAMF7Nu|3M_< z=8#`Seoo7>B0t*xZKtFjbfCK9M2lSPGj|C8rQIg-+3%rg^RCVsW_adafbtKH}s5kil)xtm`NK7Ca!w)gRt4FHhP)Qw0o zP{ia6$;Y$+UPP?E+MC3A$2lt3<;|K-tzg6^@FhHUn2MeCeyiJ8*+!kCA}0Wv7J$`? zsq^!uT%n57O&y-^sJ`A0y3)1j^l~?+`J=OK?}bjG+|W&xDct$}BerkV%6-`d+7B0( zZC=qIrdK!btn@K-Xi<2S0RFCh%-G1f>SaJe#nQP|@J0Lkw;;)Fh1Ge2<(>Vv8`_NK z5DQT)_EXx$UbEv(Fxd-FUD0I3%u}~3E5?Sd$&wmd%OW*>kFC%=8qC^Eoq%JzY4-9w z1nmbr9t}VDwCWB=vGcg9QpMpr&7D8TM$x`Aq-b!Z*wn8fOq|B=qC`!zrb(2{>Oc$Y-2Mc(1ipo}(?jI;dgX z!P(|5gH&B=KVXI9nED@RiW>0ttP{HzrrLmkjscf7Jixp#8LEqV#EZ`uerg~AA1fja zuXop(&u%y7q)_xeD(OtoK)3mAmukpq%?ACfl?`@;+0u26_am60-+E{;%l3~PF zc&|96E03wVmXQuh4MXFf@s(oV1snU8J;X;(_&SJ#Va_pbmTNg)q@z}dX*q+r$n-M( zDk^>$BG(w`MGgJIhZGj^v_>qk!SmGOhMhKW0_25rTmp{J%63$BnkrogUPw1q#5 zfN|fV63kn#H9JTsA3l!0vn9kyu&)!KjQl(@;SocMZ%zKa1~xwV>Z{knJ>KSO!tlU%_@7zWsg2=mAN+T){kAgnX0~eWQRZ{9RtezTCZ_Am( zEwe5wKWxDoId8hH$3~%wmt!@i*y>f(A_DlNB^VWM{d;65xNBC*Bd@M+gU=0Kol(-B0(P;w`yxH0ea{e zVx0*)CImlc#@8}H&&1`J8I@cHtOEnT9E>=Q4J3^F=dOWT=!i%A5k@m!!8a1i6L24- z1@W4=nPF^#CTORYX2?O%$kD*0_l1(5fy%4;v#U@@;|{Z4w{uL$yBY)5$IYON{M_>t z{VFNo)rd8$idISkpPZ$kY>$j!L&ir@9ir{W#~_~hl(>gCI4*CSkQSWZ5|K2OY#EnBJko%t!w( zgG)UI|0II-GLV}LWQrQ7MC3C?FweFI%Q zg)kOV|GF3S`|x(kJT!9Xut=D9P6(+dSV0x`DTY8d)S-1Wh}s$af7KA{GsIRgn7xw1 zv4j9e311{`vAo0gKR|(#xgNuTmb<~$_aXMpP`fIqyu3$V9F#dzg?L5<14F+3AOU-< z?rXT8AVb`3h=s;Ax(^!hOO3nNppV5oxv82<06(=ftr5dZ$C2qMPZ7ES$HzWRgl#Tp?w{pD7qfknCRIkxBt5aImFdH?gt*GK#4JAIOAcZR z1-hk;Sh38i71z(LfEZHMm05MO59+%l7QGbse~W3eS%L2;Ek#mrn-TOo#%AK5!*yP$ z4jLhV480@;{GNoEJ#{s2fqWhgoOxC$yALU)@8xIjD;I)4J=+V$r0kmksHUSX5+K`) z^+`5WZA>Vdoubl1)ornXJrD+{6N7v4f5MN)KF#x=w_$=SQLBybpq=sp9uf;idVu^T zMxLAnZ5=J?r>Gy951V90-I5{yh!Gzcpm+}Ag$T@|u%4h{18zqB4Dd(b_Gc(?fu&b1 z0POoKoJrdRwGd1vn2^gk2s02kLwur_1$vCqT4NygB}1D?KG@fY@8SR^|8hG3+&+1^ zJJBRq1DrU`k{xKZGY&sWJN*#_XGqItZL$QE)3^1(O$_9}LZnZ9@4np54N=<~09ld% zsxCpuq^h~hD>fe4*QF%fGZfN@-n!yy_I=AL)v85Ak!fEL%u;ufLihDhHf645(y9^$ zWM-96EwUb1+UrfS^s#PtS;!;VK+a2{ZKCu4YVZn<)1N>){M18VQbRjvd7Z-0`|oYO zKHqze0l8w?`Tq-eI&bj7-ld(#Eiv1($=`kVTIKL64KNW)V_?KJwpz@#Ld9wvQHQ?*Hy5avY9qhUVUPXbJib6eMt*L- z-fs)zu9#U|i>SR}A?b1WEJRFMf*x;R>^~#&q3~VTEZoK*t9;$?ZD1Av@$qV}f|)o+ z3C^{=F}MFl)N8PUQoGCAj=l9R9kiSsA;bncv{ede1;1Ldk^W0JKH7Iy zH&iqEFnk!=1RDu98!2jo71N3hUcnznA?C%~Hz?}=(FSf?A~t0r$YUmEU5t2)0^QX| z^fAgGRUz)Is0b`;r36rtl}k1sG=XB=l#0HIyr&4DQW{*g?tj?o(i8x6@u|Gdu zuVfEMZ56nF3b9WEk$EZl;2H4k@9_3Y7=ykmCK$5cMEh$BC@>EDsxKYRl#4pMWGJ6v zI%Gv?|6v7QLIZ(vMiiGH{$e0S6i~IPOQbFldj%zv?ZD4Ln><6_U9vim0)3ksjB&Tp zS|_X;9iP8_UcImqZU`sy&9&vTIIE{>*{s01QX=()`|A&Dgx4}b zYt7iNE1;ZN%;)Q1fvB)AACg4_9b4(2m79{{w0*^$^rUdF=e{z1M5LoT_Q#DsbK70N z4_^hqfJ2ZUR#xXeZW*tY{Fe@`rxT1bFMMdUG|GpbrE>())^c#Nm=Swn3~VKb*I(#g zWK^@I0Fu(-3NaYD847VoqLh{D^Ru5&RG*wiLB@^TZZcpu#XGvBsC}7-_lDBy=-I09 zzbDQAj$*^P0O%joq?{jE62k7#k&Cb7&mNVG{enrxi62r#Zx-Z*<$ zk4=0JIv$7k#DwLd;LQB4G=BJO6QtA9f@y|4A_Pw{noDY?zY@lp!W>hjh>tXfH73Z% z6Opb8t`T9|S+F!39&>?6l8RuRh+FQy8|8(ku&b1dY=;Q`M z(Ei}|73dAxn;<=dmKEFUFDMs;l-3o4r{J(t=f0T@RDtv(eSJSd5!NGZ!5!Wc7FU*L13h4Su%kK9GW(*=t2zs)Tag_p- zYlW96OpF^&n1LD zy5!PH(8H4qez`%n*=~WlS*aJgY=mCL%tPKw2GJSYwe|Nl$h%4k^^s>j(6Wkt4qD&; z$q8HscZ~_fDpjZ^@Z$$hIF#3AOySqjK$qd~*yLdm9cDJTLuvAn&-FJKXBQi2uo{aW zp+P?^S%~-0$v>zwPncSzV%4*}{G!>6=S)z~Yvecj>7a0gQ^_f2KD@a(+O`AqWftDr zE7wV&O;f5h{<8CPcOFwt-Jtue@DDz)aF&y#H>F?sW=IVXczDw(ouK2K4LUkoc6=YS z`03U@sR~ya(KZWB`l<1O0Ha@>doF~Y61RQ?Ael^1+^@)*O$xM+1v(;CNniQ)@8-AL zUEeZ<;LnyT9$!^^DHgIF2*0=Z%bGBX8!X7eU~T$QGaV{8L2c8~|F8RMGeIA=<0iK0 zP46)XK|7TvCh!2c`fNxULmy^M@FPL0qTCr({p9v#eOfJy6Bz5m-}39R3#pelga z3$n`;s;KGCDXVE5F5Pqj&S=Yf|~@BIW; z2Pax~Km8EUV1M-M!po;0eY5*KUp_p0`eLI~{{zna@R4`BPX2+uXVoHJ6OaGzmqfqS z>vT`X3q*k1$FJx6Lyu)t>bJu9{i*4{hj+Wf^=y1MA5C|bc(og9xcID7u_SG$t>>~i?fh)QK|)~xs4xdg=D z_E}xCS$A%JjlSlxoO)_AbE^jVT@BglTF)rFftDaMZr$`LlV8?P`}YJ`dNY z)V9)%Lps842soKc*9EGLhu{3=p#KDAvQS>q~)ChBs8B_)BoH9@k z^tBp6d#Gw3K)GUe5A$82!R}}uoC%xns;a0w7-W#t!iR0g9N=q0Dl12@jt$*HfARxh zm7i(jfl42(xC3a^zsE;vIjO9++J8RuC;nB6-JCY4y?C{E&DX4FI>XPRe|^o*a>(q{ z`Pf9F@5K`nmGUy4(PEBv{)IU&zN4bj$1}OTXIgR2%hH25M(XYT+mFo^dsIXYnv7{v zQa>l0JGe%6*U4$S;(lfVsxe%#XV}E+tgkSAt6uJ0qq1fC@XJe+xgUx@>Uu0aQmvyp zI)W}Ze&8wNjtZ{~YouKbF0ZvkT!G@E_9}qzGHH@BBCvhc980OQ1zp$``ss^~-&gSv zeCJzcV8zmsAn=aLqf0}zxqa6_ubr}ppz~RS=RA>KB!~wlB#dQ!M8y!Us-1@krI z%Cy~Fqj4<@|{S)2TL*e*(ei;H30{&?j?R&jGJLwxR1b^f33Lwd<`^ibTbpE@-) zWN(G7_(OAo4-H;tugoJ8^ZkIxJ+D^_D`KCek7ANMFKxXL_;uU^m(`%g#^)_wSw=ZB zw7Iy%6~X2D%wMkx5mEfAQB3pz$85%gjgG$`$@?!5?*YD<*-?zZTta z+w%^vdp~^Vg+jLq^7y5RH<_2N4QX#4@2mfKj{KItUo(B&eheQ?ssv&p)`G@snYuJi z4ST>#oYm-~)r|&;l(J|F{xBQWNw1?4*3?m^xb5c~}Xg~yo6F@q(iKC7SRBeAL zEA@SjCyDm)Y9=@yv3V2agLM_$QMb!b+pB|1$#;SU8ck}IqAkW1MZ-BCp15eTX%ESh7xnRK zJ|g~zS&K@^Z_b?hwx`2}-VzU?N_d-_VRCSJ2|AlMgqh@rx|msA$#R!3n$39a`Z}rN z7gLCv*c2-7`jw7!xF644yK0~H#hNhkaVhpGGeTv166>xF|R#f@@J9jV%Eq#)H1J=v*GFT zvk{s9MuwU;_Oe-{BTp_Cb{z8t+D;MS_F?<+iEt2su+=_TSXldJQAsbOQai?p)b)2F zS2wyIk+R6bd_x^}BCCNyE!B07CVF0*V^z2fvovOSOGMYnbN3bp5w#)}r}lKPGjkqy z{sfoo)o<*`GriH3Gel~s^o}u}GwZowj&J%=_NAi{o`#CdnzIDS-cpgp@z=5{kkubaN#GtT$;`xV>c9Z;<|^Nng%NvQHrQZ z8rODBs%!dLLEd8qB8RDg`WVf+u{TG^qm8AmX8INfuzPK?@_CU_YiHgqTytn)ffC2} zTdy)Xt-nink<%8^qls&d!*kDz&#EI%(V%l*Ez5g^wNtf$E#_avX4$>__40&;Ms1S~ zU&?hH(%XivaJF69!&chzYnO>JdB$A3HsFivMU|lrDsMQBTGx&Wi#&v!f6v`<=c`=vV^cO%vP9)MOeN=y zs;nH9moIIy1#%M$n0i&&Zbju7gDZ~T?DuDIXrC{Hz_w=GHgb+)ACfCu8{AVHrs+Ie zCuZlJs?MF3z)aWeA+yfADd^4O*1EdW3fi1NEsjbOAaH{noCx@t%v8`uh0L%6c)JSc zc#Bm+ykxt(w99`(&5cm0aoagl_f}~#uu=`}OJ{3nt7+!~3kYahRO@l2oA37UvX3j* z{AyJu4t=Qu`xq#fd8?`En-Hwq{OFuzU5^kmk5Jr5d6i1Yc-6O*!VmyAXp)mJBA*bb zIE-_O=h+FyE_rlNAiqzpZ`uo8as=GSaiy5?va)#>C%)3XJkTK;JC;DP7k6JGbNn_` zLK;Dtj6!7og>JeSy4hR!{Q4bVDd%4w)mTBH8&75Xb+-EqETIx)CoP<`GIS<8;qoPR zT6*by96JD4_rMNkL16&1P%ld|I@-0&EuO$F?c0KIJ$vYKG~` zj!fmv@njXs3O*XGY)=Cwv5MXc&-XT0#R|wV0Cp0e>$fy|EdPRgpGtZQH&$5qLgWxS z&OWvX%N28^1x2;^Y}-b|-(e zX3ep)er-KhcE9FRr5}B0@fzDh>)f9{;4?Qi%xYMe4^;3YsyY}q?FP>1TjK1&Uza+s zRGVBI@clW>JN|%oBDWPFY1Nq0_KK4F@b3E>b8f~2V~+%D{tvwe3`+L~-u|}I!R}!M$VG8?0)QJz+^D`nzj#V);>5TDH?&O&*Y1)jREoK}EqoT3kPA9S zD|6H;-}>DjXJ(WjzeS_D>HL8A!;%~IN)9=JJNf77mHt zE34*qQjX~`I5=^b*(g845k(j)L*j1+&9?q$%mLafD;5Yt0H}m(z?K%^uQj!b8Meye z6<;aJb3EvoE|7mkyOQ*5l+P*UaoE2x2 z&Iy|({)qxUIS8CCCDtH{mVFLi z#cwF8{BdD|cZ-KNFeisQ3})-w8U~0}LMpl0ZOX-=HTFF2eE~Nez^-u)+#^tWgR99C zDml|i(owr`2e?P+To0krZc2q&Ky*)^<|qx6G0w5)zp{8%xU(<1y*#j}7t!U+j`8Lm ztK_DP>r-+%9R!8;q8m5in?UB((_!!zW~y2n1T7{M6|KzQj^jLZbKCnKxCJ8h?Hk&{ zLOt2h_GgBDs)_A1tljiR088eFt(?W(L7p!5Y22+HL;**M2h(oI3@ep)Tu=^6jK%!R z=Exce$&neEY^e4*9_jhpyZfCc_J^nflL*|zoT7orlH)77a`Gfe3Mw5UJ0+^%9k2JK zbJHlj<4N06Y5Q_ept*vgY*EqUWYFj*6&JB;I$b%4a_!e^jvZO~a1=L@rkq9y&GzQZ z1!x>X&0H!3c?hm$MNK;j%(KULJ4oN}c%T%_0PQ_BiD;c~8PxV{lfeJg()#aV z!Q=0hDl0KVfBX1L*#SbILQ|apGADo>QJD-JQf?|M=7)N7jy`A%6S4mTKCjUp3ijT$ zXWa7Ar$w&Vbv#8Uq|GvL9K5p=90*YBZiq?S0d)6fS55+*FC^7U(C{DJ*Vq zoD$gVx}#9}M>*&ig|ngy3JjSVSwpy(aD(nEwU1Ksz#m+Q+ytpo5DJmGQ50L!qUyxn zbl2j#UQ%&hQBs;vcBDp&3NIZMI5X!b`t~Z_on?! zO*2Qs(*azUHu9-OZazcFQ>Zc{1G+zl9v3OCK2&x>Etp=s21n+m^XeD=sb+Vl2*3!tObN!e~qh{A#yz#?Mz)1pV`1a<~koX-LJRK5` ziM0Ii*IUlt{93aBU?%OAlQI4FO^U96f9{47@`E`_?<~#vMoLKM?&F=b8`DLqtsTmm zc8u1nV;rVLIe$<1ZqXh{|3Gc8kk@#6Q}`_5HUDg2%##r|q{*i?4z>Lc@wvW^igsq8 zw=z(BSGYH4)Fb%!8}=7PL5svS-FBXF!mhA5)-YlJx-sXxj_6oNo2w<;ox*moVf!%B z0>5Pi{Z&U!RMzfb=d@Xs7OGGd_a{j?n;!!0DavO~s5p!IIFAdXy)~$z_%DA0_iP3A za6qFFLwhpfaW_zYJe@=9w?zRjs>5P)(p63thV&I>kPTxuMLTlkYUm=ySQ!`z_}oyg zWV(90lJBIKK;#SS#O`;qrG?! z`8r}zFx|S&AV8Kfzs7$7LD3X5zW`xtD>ZiMn4NB|vZ2+NLi@`9k%hZs`3lE@XyPQI zaeuMzK+vhYw$r~ZBoVPJ?-4xC*Xwa^UT1j5U$(mlLcnSH4)=?#ey!Fz zyG5x90)d;Yz$^cqVkQz81WADklH}jUAPyBFwz!rVr;|oXu-l{AnY?KG#JaVAzmKKq zoR69B{B-+8+NE6ytd@>utoOdZ^1pAUPEKY8;CtP^&W_Y)Ukx-o{P`GuiZik2R%#l0 z_a4p1VLP%TUdkRkZI9^-?VA~am6Qh>rhIBscx8L~ty6C6a?72cUtf}<)&@tbj(x=R z9i76+GREYy&)6dv$-uEsQ@15wFaIrRE{(B2ls9qX_&*ir?a3*-3O65lme=h}3mnQ- zKXer5kiH3kY#-@t$n*xfs<=diE*Q=%+ON{2iNSs6@=3lX9RM$wdH*xC%nUh!j@vZv7SENKKDCd8ZtGaF^D!v5nd22#V5Yo@MaE~m zNhL7_m1R4oqMFO?<^;_Zj%zc`r(G1a4Jw{4s6F0YKRX}fvbj(QGM{6I-gn&gqxrN& zj#E{It%;oEbn2gBf&Hb6-7u$>fgM45x_6ZV3?KJq2HL&tQ{Yt^LkiA0e(8<(vY>q+ zjoGX{+VR9T-9WL*w%BGUqOpIW`@U_+Iak=;Rh#`|hE={jJc}>F!U?+~!#fkU^@&qa zj$bIp#x8z#%G~W3SvgO#x5VZb^hn)zCPB zZ_#f6pS%8GThE*854R8DdLHfY>V@I^t24{--`f|SIA^VRAZ)T}_k(t1&#EE_K5O3t z$;?HC$Bw0*O4H|#0Z5M>C)-E?4FR{+Zd~CS7wmRiE^{3-mz60c*`{dgj1i@6neb-D zlgxvL(}z!#n17pnrnVI9sXjoonPFKmvX7=2!D*o94QXI*xtW0ewWtg;!+5>X6EI>C9l(!{HV1Y`A zv!Qj)d2;uWatSx-4XpX2fOM93z|YOF?W=80GZy8e5z89GN0`$)o)MFmgeqGV3o9;< z6Oj|%USy0665g$(p3YMyn|=qSqLTGyg-V1XFd}qDG3}1Xt!b7Dk60w>eFOOJ_#gtO z_?M%5>D=(mN5pbF+@SYtqOz&ZP{lFJLd4NNWpd6MH#2Gk&sKe@mK8<*b-jEk zug2j`*jMb0962>e?U(fqYP1nNls$+l``24^mTPNAWf1M-5{Rim4c<1t&XohO=J)5NZ9y)9G!PulI#Ef;bwyaP*8Az zdxs-aGh?|Ij!exAT&Y>1nOT{Kp9zabkD>W;d2hGaH=VbF(c|1S9 zzyJ7)2i%XFi|cybulMsQ72C)h%ERdieyX~x{Tk(HKgihVR~f=EPCmGEZrH6=^Qy`tJNcM$&NLR-2Z;nQQ`Aj zBOQ-nONZFzz6`%_oDjm}{8z*O z3(4K%5l18vqp4n&(@abMA+-UGMp*$;vt^BwJ842ZB!#(+XJ9-yHJmOwl^v9UJa+pG zc3*G4>#Yooe+0{Evk+o2X{=5Ugc#;$`q;3oH8MULYq;8J+rPmg&uo9C{l}8Nvgo#J zxLG{@EhyIGx$qLTV3<*#Dhu&t6vlirBNuf+J>uCX)vibr-g*D?p4Q0}P?l@N)*yZ%{v}>F2RUCDiBHEhE=zdZrZ>&?F$ug# z4FU3ZQ-qY1TU!quTN=Fx3T1jpbVp1a_0V&Jih)^4#Wp)_YT~HkQm?eW-_oiiL}1)> zdGy>KJt_+SZ{+PZx_yVu?ssbe3GNRx<%QJM232ubWJG;8=E{!I&?p$$Sup48-U>!G zK2I<_-7B_MgqFwZ#~UtFYRvwomuA$c%veP}3s-qXt^A)^hIqJH*V4qN z49n~qk;d_DE(Syo&0Wg*{~u_&FbYpel63aw6no!IDt9Qks3DjuQCaN~d!b(p8eJV+ z2Tvn6j=y@+8WU9ZXNe8D8eZ9^7o_*JcX?*Hdwot0%PQW%@96sRY+haYr{xY*`1Q_1 zYu!*Vid|%lQE28-bj1qH243d?b!J2 znT9-F>5iNR3s z$cB=0r5pIISEhU=PEG%oyA(}aP0jFWnd23^dQ5a|*gxw55>96cScC(7AFl~;A!0aA ztBr=>xCa()jyRxy{DSw*byP(3w{7Gb#5SKlafR-(oLf$DE5rNOyU*0W`FUU*(%1Fw z#6J(2#HDv}7Ji>I{tDWu{X804f_8pueJU0!Nf|M7kvFBh_^$1AjF|iWwq4Llh*hrW z@(S_9(a6VZ2QevbfJx#b%L+go;rlRpe3*`uj5DPZOohj!O)TcH#NY;2bA_uwW(Iy9 z5It+*qE+_tK8n|(c*88%z5?R13eL9k+oUpTI9EEY$~Rl0HYu z5>+(Jai-xAq-9*ZX+&=10oht3vXMfrpMw~1XZ5=EJ|8UK7{SyZ0$i@M=9S>D7l${< zgoZ;5{qZR3ky~=VQ%iy^G1FkfC82ZFxQ$9-BD(AftWkT% zWoiJmr)UQOShr=Yuot+MgKTyqCWRKNgh}`J13MiQroK$qBS1D%%a*8^2?8w2m=Ch~e$WvS}}A+Bm8Y=iY)*=d};@>xMSvg z(SH*nkE?HXDU#D8r#zJu^SN+)CAfBR*mjBGJR4-Z+P3++iaV!b$cpV&7|J zQDJ5IC__3n`MvAVR4JqiuK6y0m3asl`=$~WSw%7fS&7Iv; zc1qm`4u8sbmF}xaur7IG)xO|fCo)e_*p4Tkxccsd!s^%(#B+*Ci4r46!L>`n_OlG9 zS#^pw&$owVSOd7Wi|w0)@Emz-ot!i$+Hb}r%VCrsYEf|p_Q{xLrsce=|2bC&pmaTl8c(vJ!*J=sAz)iB16{&H+HLi{j+?3qsX|{p)b1n=}G2U z7K#DUV=u+tDbZb=xy?XI>E9YQ#QQeo)#J-sod2!^{F&ByMfKCT=1YK$sn6j>A8X6V z%5vszE34|Kg;k!XO_%X`*N@dQ!~achJC(n~))o2a-Ld{6(WR8JEJ?#C4}g zJ6Av6QKU1MSf0KRL%MkXJ7HB8YQrMKeo@U>EzbA(FqNWccNUYFyTdVoT(gJ0VeB4xVx$Vj52t-0LGP( z67Oo5si={xO>^Q+T_S^CrfV0=2?SUv^Ht=^v$~y5iwxa^!S2_E20cMOvtXB~(H@!# z91E?h186- z2Eh9xjr9S*E}__2bZ|hkp3q~HSakhI>$;yI_eX(7gIA8(f#zik-`66i%uG(~2gK0A zTK_P+DDzSJgF5dA$CIn?t|z8fGOg3Y@}y(d+`#J3V>Tln|6SO-b}QL)k>xbbc(k^s zc;oUgXiQAe?sRPe+{$7$_b~S=hMiUzq!F2hQl{G^+1^l?ed`P8$BIJb3M1N%C6_&J9G2mfJc1lc7JL7g zmm9bgcnF@GbC{6l4dO|_cKpJjh{FA|gwIlcvu}?~Z3}X>i>L!6$Y7zhcKSdB{<~CU z6Igg;JhuK_$gp+73A+SK5C>%S%I)A}O1@(2Q-zEj8a{>Or~ZTnLP21I%7m_y&n zZBAIVo&u!RKT<_a+=Yjmk+oZ6#K zsR64;Ff_}+WD3)08h}G(U|%_*=YQ2@Vw*$|!d5k8?ey&F1N(6>NtZ#OFm&q~(|Kfr zL>VDUPDt!Gn#8*10&ow8Hd_c*HSX#85vvSR(>eTe5Lw2s%VnK?!hlB!T$;oiXe|Bf z0C_umZnRjd8Fg$8So zfhiqm%b1KRVOlC56M1*D>S%b-#`R@$=>X^~Qhy=#Z^+ zT&MSgXEMnDnYjrGEEcnDu0u9|9QGUsFGHsjht<@Cq$w5PdYf^gV0{8(-wk6}!ZvZR43KI{-?$3Cq)Idvq zoujptS(zEX;>(AK@!5x$hF!<6DVPe^JO85xbAOlDTlF2v0vs|iW4+AyZ9i)hu0VhG z9kEudr}Z29{+KLb8q!&TD-75Q2qUFq4*>2Gu>}{T9?Kv)cN(#WH?D3aVdVs_Ty1W5 z0E0%7fiT|$ry$G#FP4{)ymg`XT`m%1DAnL>;`oe9U3G&a2Rmu5<9PgNdj=E1vs~~*n3(uyGB>bk-=lF4|R*3Y!ycJ z4rOk!@6*h-q5*yAaR27Ro)zkVQ1QEmnAINtIRbIbve2v|(7u3aA!STb7y340rJ_+7>!vaH=OS zi&>fs+z1Q#)C4>h0)?NRn++t??OMIHFSlZ)FYCxc^b~mWWV$C?WT3AR6Y*7JKmZF7 zotps2mfb`(IcZj|W>?a@m!UHSBCmqq-gYNp8N_t3`r`6{A0)$wp_9dE`)jRdJ%vfi z1*`rQh!Ka-wJIp;b)77*PGbMbl?dYsu)2!&Jm60DNa^`cp7I|^%TjnCK@rSh&FTmV z9EMiZvJqSCok~N{z?vWFYEpUT0oF!amQe*`ZbrE4I{5ue*2wM-!vU&32r__x&<2L7 zIXTx<{>A5jO~jqNRs5o~%`CUhB#>EDt=QH)6H9!Qy^ObV4R8U!`k!|CcN+203k_@2 zrzTiY*=DB6oX>hVXH2j?Stzm`07h1G?6lonf~5v`h-Rbr3WhBI7UfmDQC7O%-Rw#> zj|HCYUtOvGz>+2*6yPIZouxR&#)eS8p}#UN%4&H-%q z^qSj6KY;=ydGqv4D1?0)dEB0*?QLW6zmNixn5zOe*4PtwemzYvA@T|!xeY36pXGZG z6YZirehJ~9$P9EnGtGa|3{BP!?OxlS{Cj_^%t+$$DVW4&s&-T zi_1v9e-^20{rJF)+MKmCBK!(JuQ#+;IdW#-&SO&M0aw)f*EUhy9S`tUhrYdgXcJQ! zkm2r?R$~!d?NRu4KuOLU%fudP2DZWq&+w*A=pfZw(;7r64q z_17Z0!`j{VlfU~_zq);jnW2zaX|4S}ZY@t+Hj;s0`V}%j-2*F!5@IXlaD!Z|0%_J% zp+MVR#}2Ele_k=Hu_=~sl=rLhO?m8W%dM*9AM!%O-K%`Bri@rQsKBsJ+ETW;E4q`k z*^w4sOu6McOvoIW9#IqDq%4%VHCv65*^adFQd*yTz zqA6-Cr|KV&!zTi*kDy z!W9#rbA4@bJ`IXD9p~Nw2J@EHx`TY!x(cwyAQs`4Jq=g)-GkZ4hKAF^;AC4Wif*}} z987_$FPoO9fF#bU*>N_#91~4vzQzi#>}pr2c|8DYbcb04yjTcY$Cs<8&OzW@pNlE6o zrqB`7Lw*e_phBEMJJif^8a3AixcpR@+YF}aZEXi!CR+dc7x}r!XBkiEq>X0M7$|Ss zwFUesOD`KWOU$xh%)P&NG#lG>@&k4%_MP>pYGj)9aODENz6<)(Tz=8d!&%E{U<9#a zo>>~F-9~!28L??d{wS?dgMVEmw&63d zT&~J+G)fXofslb*$mT2YX#*?6@QR9j`}Cv4c`PFMC?(%A5PbAJ(&xmCRJHwJU^YJs zb;gInHC5nQmlfY9Pbk~U)I zI0(t60c0+S)KZgvCT1%!>I=1&Kb1~a$~JOWjY-dCi|b;o%8o26)-=VOb0$o1i7&e~ zZ!GMdRT!=@Jc@}cO#$t+6c&eeeHAxMu?Kahk$Iuj+OI>;@0o#>MhyYPzOEn}ed3?L zR2bK)C{3&2&o?HuFE@4wybcWQql*b2xtMCN_=V%P9Nhuu)zl^9(^rtcJO|t`|4RS! zT?+kgO-E%XRDG>P*)#fyU&OjKQi+k8FnH}AcHCC~xx_&Gk*dBs=GxvQ#8rUc zNKi+j*)Ae4f=IeP1lg$?*mKSy>Q1PJ%fHN&#(jKcRN-q!6^u4MhWCSy&q)%7Haz#z zzNIR3Lo>s_+67gd9x6|Pnpr*l2F|Laa>oRtjU`v^ri)7T^8ZjZO9<08H1~@B)=O6j9;YEDxF_6e= zdI-WET+XKkEs)>k6vT(L=KF0jUO2R-C0;C7T5R@sW$<`~&5+Rw9NT#sm#~HInW2Tl z>Q|6EUH_?fzc{N8qM~Zk;qEeC>D`6~m=m(8aV(?MEfECYV5tBvc|7T__;D|Z3U|yC z7C6<*)lvk*f9K7Y?o<1P{o3oZ`A6lkUNr?)oWmY^|Id`B#$$)Ms}f^056QM{y-e7p zW`1)$DUha6_1d8(j*OD@ZsYAwB%{{%Hk^nWX(ili*?+@u9?6lN-Sjk5VoVMV+JeOj ze+~pMO>d;Vy?2^$GeRBF5WXYTXP48J?IT?mx1%B@djDK`{O{ifKkYd1ZP*ZpEVapr zd!*|zkBU@CTnAGki9K}q&Xu)y?wJfP>Y^0hoOWXT&XgHV8?62Z#ngM8F0nCf=|zSV zI_E;i41jnaUD7bF{L7UJfml1+_8@7BQWzm&8Dz;d(F)8}fnTz{ejFIrM zd+&t6F^C>EpNY^}qCnz7@HC3rq+-AMhyEPIdv?O!YcT@0SyH)PTT~3a7v1k^K zEV%jc&L3fGE&l+aSVScjbCKoU0^ntkyA=FQhJNxQL}id~vc#no5naZh!Ae+q=`nFU^vJz>|q&7qK+S$l@I-+%NMdQM#^7g{{vh!UnJw+7Mc^UGyR3i(l zvTvy+bCCsfwZS)9GKN7j50uKyOy-^&=jm(rLgFZhDsJHtJ#d7o<7;tDAS)I*7~BHu zd;~!fWvZ)20;}tm@N|7ShHZOvf6*ZlE-Jp{LX5S3x)6)~pV3n)mIlJQ&qtff3CTi2 z1Vpm(O6)R^r}1zRXK_n5o>zUMS4=$XhMgVl@aSVF2K_di<`A%-K6BNHYu@u$$KN%T zLkO*Jwagi6>(9mG!%h{PJ2lhG)qO)4LOH%nNU&_dHMfa>(PHpmTooSY%5uuQbBNf2 z_m^WktE|t?Sa*KWOp#6Ym|`W0C0h_I0t8=@SnZJ?E07_3$~2mV#5+=@zlJ)Ss((vJ zpb6j=TuiyLbbOwy(W0v=_O;$O*Ue8Y0AZ?R#h$?iz4Q1I2gJ=*wI#aFt$EyiE=2Vk zi|6{{!FvAbpq)}=83jJY)ySlJr}Mx8Ah<|sy$CA1Ua6r5pnkkp6J69FXXt#SKnm!n zGK!jqpW(qm&4OypMM15{*{v=hcor8C$u;^5te?hM!!9$7e#l99h8|5x@TG2xlM@q# z@juR9E-2kRa~>-dJDRsSIL~;3ESJm9E^{Hop;Xi9LKofpSJH)1o(z0mzFD-5w&(Ei z<~G%-+SQjArC~123fqh;iW>T$O$Tcf_TkXHZST+C{1|Li-3Lz8wAPX1iE{1pRqTLS zc8Ip@qW}^mfb9_k$MJRE%YaC3k-&lcvc<=lp5A<0ZE&y7HF}2i#nGu-0s4Qd%_2kG zZMAlQ0vo9Tx6|NtTm+|3Z+ADL1cwxWCg0GHc7IlLro-du@Kq>I(pv7$RT0|%Qh{t@ z7H-j$s>6Zl+dzmc8KT+A z{kPPh0&Eo7!lrRInv1!KjA*8LZu9O&ECcI)!O=2VYeuYP&#MpH-$<5Y3;LGHGQzzi zm#GfI^U=@oyc@CLdbH5Y2#lu-MHGmJnf#>byq5m`>uC6+DH<R0 zn8Vn4EOZ`Q71q$|^^_>o;?%_6c^G^DVbUrcB9Nl^f?&&!9kyIV6Ibi4ELgu)_bABW zzLGFP)xTX*HV8toKav}#HO47w*JYSh)9#TLdr~jdoAN75uHP%iE5AWGGT1HI`a4wp zJuSMmAXL2l>$S)|DY5~$^S+Fpd4uIkkaQ5-R~G)%*`SG`QG$cV(czPHjpj+S86~hV z3+ow~h}@%-I|6S$1|5Xs4+)`|hn(LZ)hP^+jSL#8n!o1ylHVC*!ZmYvB#jpJdU*J5 zD#5pf$Y&6HIW5HbZ9Bei9l#u#{i?0BUw?Yy@49!W-3f%J`7Y=EHW(g@ihHGH%y0#c zeW3`CS0zbT{&tgfxWqFyl2uwwbBhCCV%cEN2*~osu^jeMTw)(io3Tw(o)vT%*`eNW zi?Ds$0NcdSiycublA^omYLfzDpY23kr2aHTd!$9*eV)GpU0vm_ zt-@()$*q~5V7+lU(fuRTn+{D>s&j?fJKG_76jV9gEJeP9@d&a<32z)%bEoR(jUP*q z!nqWyeuLc;{GJRNKdT0fqu@l>k*h^yYjfDAk!?xE^Ph2%yd zk;!QB-Edh=o(1D!b9ZkFBmAu_kC$~0Wn!+h-cjFr^hnC9&rNq?l~Z}pV_zmGTziVO znL;<2*_DEz&F4(!kjdYQIvmVj-9QhZ5JD{dzylW(tIJ!kL+h4P5lo-KaxcSg;bB4MGhG#)kyCR#g2FOGpX@H9%Cy&y#NpiH?-?6{tGhIAHcD z@-!EbF6%VjvtTc{X!=9_*QKSI&&YD6&TIPFkrvXF45+e4dCKJ=;QBQvwk(P^%J@oKBF4$nahW zR|?rcQGZX@pv>zZg4%ASz|5yR+rfsJaNOTQb*`(PB^?qA)@c@!Zwd|Gkcd5FSm*^D zRIa&7FPcUX>R#i`6HM9)H_Hl(om$q%iM7`vTTDsEwzIDi@vofT`#jJWKANq(tYbwx=MSyrt1H(D^2$&ONH%P63R=g|clqt@A;? zAl2)g7V~3`a&>0`JWmPFdpvdP$*Tso4R`o z_Y6amxC>gJ;v3gu)&y3!7r;wom=aldijZ`85s=D2$%k(R&XbkYlb06|nRH~L3az68 z`SSFege5LXh#XLU2YAhW3l+B}H+)Iabf&-^rCN;){YUc#DmMENPbZGrkh2S$Ikwf2 zA&8QDGL!L+jarUvnj3<>R=;%VVl`xikf2CY&QMTQ=KVz)lvsazAJ-A~cRAX@kt4 z7_L*l@alTOIi4*|ZX`u07T+U?Uc5}^OQRgn@! zfd$f`!2(#F(zJ(*J}p3{d4$y{(dW6STv>``6f9*HrJ`Ke?t$CV^$e*HS9%kQ{^qpM zU?v*kOM&@wci#DC%y)YiqdaiOdG9?L5HCaIDR&~R$ZOnv>^k_QEUv!{|B((!SEkmJ zwA|Nz_it9h(&@-sO7*nK-q$jq=r%l=yDKf-powa7nu2Zxfzz&W&oNGJqg-%PUKSr7 z`d13sBY>4}ymHNj*!bJ5{L{&$^Vs*gFa9^QO-rt!2lfoofB9T8jSH}z0XiDM;&(Qyf;Y+Z=d4`T9Q)cdVMO^@bT;r0ssd}9hJ-*!HuRgJvm@$B~B)h*(3!@$J$&#!u(yY9?$?VZY4 ze0737^D;ji)@9@wkdas^m!5ro{ot1cc>-e3Rx|%v=k55B!ei3F9)FcbYEanjUFBG7 zJ!)0`mtWa(rtzr%mhOmxE$396nn>H|ODQ)FJzVpvYV$s7AJC|MW?ws}&G&xFIuIj)-$ZJR|(N;XS-#% z_`_WPuD|Zxxc1K{<#4G{$j$3Nzb-vEyW{@N8^8Zqes$+m$e%a={Y>slc~X@$am*-i z6%2_--1;DGxX>!I{^FLc%d)Tc+Lvn}LFT2giiw!RA3sN0buN3Mk{g1)6sH{dIXYo{ zgO`c68R+OM>FMq=_D{H|3TN$F`SA@VvIW>}i>h3}-?E_A@pfOU%uz*cZGRJE*ZTwr zIM>x4e|vY0ZTz@tP2j=_6A9GfIc22bgO5?3<(R&4p>7p2OBQ+HuNy0G&VIVN`s2f= zKUI$qmt`+@bMo<6vsJOC+JA*o5zVrGc*JcEJEBSN8fRkkuL%H*tCG^HZr{WeVeDnt zi|Xr!mPP8Mb%9=lNZFd(sCL-mbGDY}EJdPD7^8cWs#Dt3DT!F&D8Z>!sDgK@asRbcf1PNg`gE~>x$B#B=E zy_-wia_i@Z_C?q9wrzYL&6YgnjoOiB9nH}%i?`w2KTjAH$ zky3SnTHx%6vTQG^Lz$mK)J?oAIiv80bamkmCtSU!s-Cv5ydO7_=i&V=TP2x2pW2H0 z(rwOv^vBrUkK7et+btFOcO41pLmC%z7LM=-QDc%sS(u0gZI36x;LP z+Uh@_{`(KKrX~gbGo~s4DJ?c}>owTst$MxOB=lAA7&jS8Srov`Y=r+8oarEaQT|vF z7C+E|y(EK~>k5%f&S_j32#5C>JuD8m$qXp9p=PkmQNN`uU@sjd=lO0!`pR4`-w>0FT*ZjYDTqO?1W&x; z?d{IFY{utWidZG^3PHZT;QwM2^ebm@;fA3W^-Na?8Jls%*YCE$Qg4CX})lwU;ahRZB9o5+@uNEte^mtSTpd0P^a7?1yF-dP_v*REsO#c=2u za^;`k#;;9Fft~J;C+=m}jRCerZ#4vcw91ne2^%;n5vo#zADV*Es-r}496(D6N}v~2 z;E2`|iZ&HVc!o#Cb}@-1GN{`MNt{NL7;E#8>#-zESg%M+Rk@297v=rv&$s8#qXU-Z zn)>b%>Xa1jpbLT9V}%&5R80_u)v;;SNE>(uS=S|0yFE3yt0|OXI3z6P^Wm-W3FYo{ zV2riEXY)@U#Lv}ACsKq=rQOr!M~Pz|fPCpn#hEY2J8K(lzoYz{_uwW{B`N+Fivx1b z?yputdpNw3VE=erDN@HG416}KT|_(IZfIl3I=2;T<8;(g@_*9$(4i{r<|C?pFD^QM z256{oJC_#BIPM?2fUh3!p~5S5o@a>g1yMUX2mP*k4kT&5&=00Yjk$-pwKn~&@^&4+ z^ZbqbKUZF!p`$%-iH+=qC_K9XV+fT{kn?cU-V_wK0-|p`kMv&d!liX}=x1FqwFP(?;1o zrJ2crI!wx%outz+?^T3zlnm~g^xkx>C&Qav&x8AOnOd2ghpzDigr&0EsF6|L<_bmq zk}Gs4l|`dM6GE|vm~@+#s8*pMEl9OJMp`hzLxbQZ8q7>$f{JVxty7J?XPC7VM|xz3 z*Z6)lwyrD=Njw{Q_0E<=t6inh6$^C@2PMgyP0+lmH}_@fb>D*n&ZS;4Cw6v0<8gP8 znYab)n^%&*_na+ad}|3mY5c-)h5t^eQ8+XuSKI3eei3%!*KAktrS8|^VC^9~B2Wqt z8hatyDh9Eh<8)v?-57tJ690k#2rls@q_h^1x~KtPE=x~7^%xm*72I=BaItYldD?TA z09z(YH*=mxg%&aIb**6&&6ib-gk^?ki~mQ{ky+LJuS@@YX`E!e9L3>)!4Xn`m^k}X zk0M4G*FA7d=%5HDuIIy1uHSs|Hb=lNWjeqrYQE&g zfbrIgiTMffp_u6BZnSbs=oe$~wK-I^!|c9Mo96vD;O*WyiKk#TkzUWeEtyCDT7X)c zZ#?e5gZ$v5!nsqt5&4L*6W5x|wulT`QRuBL7loXM@m0h8fw>49S1=-g59kbl;7?&G z*!R!Yrt&inV=Om`gnU=Y*VYIOY?_H(No_TX1fybUKXI`oVJ3np#M?KFp<%mxtEd)m zBv&N-K2oX5@93LTUTN?v#736$E9mpUy>=|jl0FZzo?{4XSE#oy%Wg1~*|;J)lw8D9 zbLP*L(Uj=67iSPEax~{l#n=Th4}&wz^ionYohw!`J2=o}0qPtNb6J47BEUp$&}j(| zs-o+kQu=q&Q%6Sw@~2VWTT!ZU+sjS|j+q5sz+!f6*grh1f+K+%TK4DQ&=>n{+xa#} zso4oWDYw4a_R}#VV$@NA{SSz~SfCT2gE_}V*J6VX6sCSyK*%0$d+QjxRzNc-1KGD$ z5MHvx6xCj~4z1IPe&mu~wX0IGEK;CmW4|tT}-MiZ$KW;f6+VwVUz3E=d z4x?BZ?8~j)>)W}0l-%G7r|TPFPEJnrL|9RjQv@~~(GJ;wwL}%rwEo$x`~eM7LN^JF z)%m$=4i10<=LKRi1i72#v_k+qUIuoeK^{K>R&N20s&k(d^OmmR8wxfRKpflu2+dGG zA%K%WaFC?{I!C@J^Y0a)GkJcUuWTgz*j`1<%b5dZGE_??S~n+)oZ}gQ$nK#9^vR>D zUz6KG=!>=cV=PcjAo3l@O_wvt7ia;=kIAEwz;paH^pKhUXyyJQ4)Ul}Cu9umxi$5J zDD`lK1WDSgFk9CH*v~uWN9$JN-72*k@`)U$le&4B^-y(eoa}gOFevY~wzs^5b0WG)SWr z0`x(5*KAoz=5CTXseR3j>UDN_O;gWjQMAK1DUH3Ni#C|RLS%ba3n09T5&|7eP=akE z0L?EM)J{~U6zo+2jiE!6mr)m&ZJ#HgpT!4UexNhNLzYb)?UJHiJ#a6hZ0Zmkz3+@# zUx+$#F-rjr=$uEls|a8ZrE)aLivX>lVk7Bc` zXy{%#rcY{joL=!_)*gvcRh7iW{H*zfn08L(ctg|eD@}LyS7I4Fmno1v9kAd!z>Ev9 z52!8_=xANxm)8eDk6>_KHKiT;Uq&;)gkc7q$9#BII)E|#poI+Z>}|HV1luBmSPK9v z+1{8-fHiIVw^Z0x8Fb@v$;>U<>3WM#1&8nbQ>8jNy?K)Bf_41*jn$vbU5DT0%z`CE z*R5H>3~xg~B|GfdfYrX;dNQ!8&!k6#8-kqu=@8ZSY3K>MT^V>!+kJ3e=Y=DxbpXAq z6ZyR@faQbMbw#bctwuG=Pyq)TLpEgha&*Iv+jJ}kMs)@>tw-Pfg1Ysk{CvAj@_|j? zTrq=mOye0;H7Iy?NU!9f?*2%R8Ua!ym4sm`PHX$h}KKrjbF1 z;C*Hfq5(TuF48d^0YKMtAa0yPmbHZ{1JkGr%SRcC-O^$VbNoC2*eL=Wf~qbg%_%-*+IZyct-Y2NXN}ra#a57QFJM&x*ez4sDlE3}VbR=NBui?ZnrUC# zvpt6{dw*)<6m&=N9*-%=jwi;fVkgRN$PJ$w`p>fuk_zY#DArn#^;ib*1;(xb3n-#9 z_%-{q7L=|fYTgmm$k9E+YA@g*YnD;xu{vkIpgQ|?j$J`>tOLsA=!#LDhN+bDDfc(~ zZ141Y{An669uYVoBlkxH;O>Y8`KWphs!54X_QzzBgT@)|6B!lHX6@g`Bg-qIioN{$ zI9=}7`aPcYziR=<((_mps9rW5nNQ)gLOITd*v_n2(4o7;!?+)n>fefvuAH?H05-jl zkg3Cwy|5izD6N-C<~90h{bD zh@&*GhC020_n6axA(w8CDQLJ7Y9nQsNdcBs(E{kUy? zJuRi9I+p{7My=B-QOEfK(s1;pDs%%VOYj=if!)|4^?>g}pTSy(=mdmcMPI~X+PykD zmm6N-4N3*5Q&QW(>GF13OxOm}hN4YFshfJIJo=wyALM!7#i-&tJGb|CMOgjpL!Bp2 z>wDz%*K$yI+fn_>{x2K<{PwJ$xa`QFPy^ba&=|_t7;U$9!LtHr%iQ)4w|N&I!!{H% z&1I)-D7*bZS3L!L>U2$xN5Sm8xO5OM@55!)v=trIV>)`NZtk$h!R=4GFFUcM*0nHb zNssj<=Pi7Lar7a(rk<_JmZUROjlk~GXG8x@0PC1Xt{-<=+wiJ7<{?1&YP5j^*g{X) zW1-Pps%^ztGY(*|jNoNQEk3w;azN_n@n{ z0Ae!*Y{cSLg|PK3CzpLr;k4no%6s06irMrv?o*wbCGYbwcObXkwzyT__l||FPTt2= z^=y^_WaudqKIGm%5X6YX6>ESX0OwN-KF`>-iAcQXs9vUI?>~~`eDoOs`Xn8Fihne$ zb7QsHbyxSm^NSlt+fWBWRq*Dr1}<9T87l7S^|od7W#j8LugP=!#9I(Er>c?X9w2>m z+*@&&%QTOR0(9Q`qj$hfc`^je202=ZEPg$DVH9;qa69(J!?<&4#EKAVAASGt+TG6v zDf>8b5X2Uk=M-Q@gXk_Jr@!e>Pa}^h^%|G!Ux<$>6YJww zH{E!4i~CR3S?PoFdH-R|^Ef(m}2cQ{h zTGf;5Av?=PzwRrU(tkhG*FK!8@S07T7MxJ=d%2h$Cza@%%8vtJH^IRn?{3Bf551KNM+a4h;GW6di zI=UkfbBe~nMoo?A*8poCQ}^En7CEz|DW$Kr?JA~B-usOk8ozwbbaJt*^q%KIr$E`0 zJiS~i`k=8AU~)5kmm#WFa{wQ`VE#3VSEk?D|J|$l~uYbyC!Zt?0`#)nVa~lYZme z!c|E0=-EJyG_Hubwd~ogRoJ1SkiTnT2bcD+Xz+bX#LTw~>+Bk%lF_}=z>YojwOH#X ztz}J5&=+X?d!4TzZRtHm#avL1{TZ)6e-hO$XlucdTNl3!RoOfYINgs8Xa%7g_(UI{ z*-Ku!ecZ3TG~rIF!RylZ6Y`*lAY_h^Sl5oaegfT}_aSk|kK`RjWJ%S`XFw-&`9N;xcbnr4?U@Snt!)1BS(g|Xgr%$v)IUoT)7Q2LbNpeP zjroId@R6n?lnsLOrhYq9APyjiK8zwAivKTGqTmJI8^tj#Dp1@-Ks6Ytu>kPb@30n)O zGTXdoDCIN6PiNist10rn5ualQ?%B)ynf8eXoe|ya(W?9pk8J|FN4^7Z0*>4I)vPYJ zKzuaK1FH02;%D!~pN}IW4Q?l4qHMOD_Vq)XrD|J+cjumV%pXG&Y_n(=tIRG=8PojB zXwwQGyj^rR?a4*v1U# zY8f^=UTNYd^*rgA|9QrkRX|L#&iCH}3F{87OndGB@N8svlswH$7MWOVMg(@Ij%o$! zTeV}ELc%tm&wWNoh$MiH@hft`0PBkW_lF#Wk_Dg4b;L zgf0H_i&g$mM`$JMP{b0JjSuVER7{gE8kafycbJ@NmN@!bb+-5U+guoN46wVbpQ@^k zDi@HZRb8#c7R?|HJBxbmgF>S`Sqn^u6V*~^GcXt5ZB~y|Ll~?r3JVPm@r}=|KjV9} zR4Vy(8$H~+v{3q1^1cK!(KpUSQ3NZQ_7|?E&@W!-9a3~nH7nActlZm}=PaO`&K6sr z=bS6Gt3U#9o!}Hkq2WjChmM8B4lLf&unURiWn5HPLaLzx5eYKT^D83BW8Utm9mkU!12E}bEpWZeWg)6B%6A^B z9X53oM&!%p3y6ET)JN8gB6=z!7q($+5D{adV>=Y&y&?5KX4O>ft^<>9?6y!%$q`+AC> zm%QL1Om5LMVxG0wnUqm$hJM`hHTw>HvFTc-uEqLTPnc>IzT4zg?GJZMsS5Lr?$G`a z!W*rPEroCr5Wm@66y5hF0WRz~3Jr1oD>9(vR*IJ53S z(_40@pRH{4!B7(V3Ilxd9@DaKvN~v!tn+171w<~fD-M{e){@dVcU^gzm#x$YbBoX; z_*+g{cS;H3LRipi3W7lc>aQ*k#<%cLX&C{phw!9lvB^%*d_}{(Md+|{BCPJ0c2qmF z`&s?#B4G^kK>d2(wdPj2S^@?5RKq=P>I)06><0*4e2K&A{Go2T%Fe~8^fFz*mQ0O! zhw*NN_QexkI(7UR721n^t(n-A5^6%6MxMk?@w!#?14HwYk_^i~26c^SUTjRXOvFSx zn%|~7lz=7>-JMZf^JX7Znu`k#QfYqQ{$g=9n3lBk^Yp(nSEBD_Kk7dPvkSHbjhOcR zT`W>*rE=yZ66-B3kza-Q3Yz)Fl@e6Cd@`&KpKmp*ekKCEgzrO6ZM6R!%$P3KN!the zb38l4rn&oaQvgkW;nInb9!Es1YSOr=nEbOgT4l4$UDsC4`WA&vGUq zNs>ksI_dE4qm%b{zu$jwU9ao*x?b1ycs?HYhakLt@|fXkMZ9;80NW~DAa0+_{*oYh zM^huhRQyW^4bA){Tcu-^RanaoBIQnR=%nqbnA>A~64>FktPP}Coe z3BpH<2z#g^#iH?y_3pS{kSgLDhZvxb$ctKyNNheN7EeG(O@mOE%lq`rdHwmw0V6a9|&eiA8jw&5WzMZE_^u?uXPxd@L1ygxtbv>tnqfL~J zO=!OI@_G+AJH4eY(B#Fd&zH~kuRliX+=(GZ_hr8lMt2c(|26zlc_;Y}wq&J@t{48+ zuzm}Ld#KQ5><-1q)RPP*dOIzhAIr(_Mi0G%8cmn>ohp7wEb-1x@%4#h9@oDT;{20e zLn5)|!Vm8?+J-ciSZ2wOw)uD*crTfu3_>OXEb*i$FSh2myj~{k8@5LMqgRH8(=hy8 zLfB#XY)6B(5n+yLKou8M4%gI7j**)F<2`f`$ebT)tGv}6Fu`m_TO6=I6OTC z`jT;{SOeQ&0_i*3sW}?PU0UrPBv1!n|8^Rr7%T>AhndEW`!9bjx%DUV5Uo4q+%TNp zuGsQ@7-Su@d@wE;RA+Gfy07*+;7(lDaW~(Wdnx7mHX=O5FRL%*=hIEE<#!G{>o>Z> zZtf((q_F!F)1OJkCbvdpf4JMvQC70 z4Ek2Nd1GpU{N^KY(_i`Nex?hT^D-){ z!G8RH#m)hxL2_aTU{>?`f_1h(45I@rRNA>>lvg|iuqP2~)RN6je(rDMvwNUolDZtyM%t~D zGHweTIy3$FD(AnGOwgwOB~xVJ2ClyY;=c-Zisx)km$?GcX&c}`_w>v$8Gk0E$DsYo zrh)hy?ydsl;O-9RAQ$JqQ7T4BKVH)!ey$|hYrwHoU%RY@|EBvCx*u1^@g5zB1CPXG zMu;l_W*A5(xoA&d_7f9l6&DstbbOImO4F=4*L_B|O|{;I?|NFZuIIQ_SaTm?v_;7S zp7i|{xDk!5l5tCkR$=z1aPOqtok+k3_FW%WYrP5=V}qUvq(I&6L2U1%#({>RpZm2M z4BLQR9iuFDfY@q)TvfK*o&aeRSj&r%G?v^liT2=IZ7D?&Uv#*FRh&WvG`04PHH5 zn7%8cnf~@f2`ibW>^>0hgVNCKI5Rdp@(3?k4)(&03}{UX%&Dc*0B`FNN&={Xp=?wN zU)nBL+6Ll#D9d`r#FZI&kQH}a?mlYBI+#N=5EO>3o%50j+N!D{;MCW)$Sk&{WTEp zX^tzt#5p-X%gV_+vW-@udN^Dg5kABaRjFOtcs z>PN-QG$x!*HJeHXHB+r7(T+11i%F>r<1Qwg$j#BQ!@jtd{rNq@#V7am1ZLTkt&Rg} zj5aL4hm*uQrwemRK((z*t;NpkB?Xc~vECPhn7y?gw&gS3R;|^#dg^xB!*!snM@G|! zK!&)k)__9e)E<63Fje!{Q!ytuyCRmJ5gNCR2& zFP-C13Z=S1#@!SeI`ab&!@gz{enbe(M8P>3>{<#Q@U9o1aLklVKO8>f^`IGIn7^H( zz5WwS|Bei#xhbD0d6&Y2j<-7s%c7#0=U{foXW*fy`7Gv;%PwsuRC_+G%MQW6^)fMg z9GXkeEmVzSKm4ikFo6Bwi^h-;q`4udgk-DjV>_yQuPQxSPHQy&Ls>f~*|*?Pc31iH zZ$Y;0p3nD{T((?_C* z9ceVgH#y^>>}+3^N08v&fB^Nf2 z@y|a{wz>&ut*<7&t5tYH1SF_%{36g9%)QuLbg&(pQkhdOc86$>#Ya=0JblczAF(XA zvQyaa#;VXUw{949PX7jM$-IRg%|pAeI^xl!3utFFn=Q%q0J8VCvzB6*9%Xq}<6f%> zc~T_LQ3w{ZhqV43ycG=jP^|_4wqN~;J2C+dP?kw_ts3a)3Vb>wu7vB`)11pn_h%3Q zDU0sj5WjJohI93zDH^PtC!O2hyzZWZQy8jkiSBG?2{|3>uXq1_jb3FwV?CU}$vxSu zJ@=;*%Xo@J0?}c)y)uzuM3^_H@eY zYuEZUx3?&1oN$74O=KSzx@hPwvd-EGE~^0L@nhMi&G8$4IX7E#e`WRk3|{?arSTD@ zaFgwX3hv|g+TF#z+9kF=G0|7L*?5b)GE9|H>eeu70I3|#s^^0GU>+m6My3{FOmB8J z7Np2k#0lTNKfk*4puqssvzU7gjbljyIEX$D&lRFFk+JK|Ylq+1qq+#Mg^H(uzitr1 zm#P5m`PtSYk=6Fk3x42Ti%;rgAoiJJ!Xp1o*_{Z!axKTT=b22AY*Dr8ILZ!qNc7%< zxQlOc=~m@(V@ic%TAa>_GBWA5wZlL7A%%OeYa@dn^x^ z+umK}AJi@R63?OXz#coCo!(OKMea{m+TB^Tz)>ygFPS^uki#Dw%e0-&y#Qx@(qjB| z-|HFf(*quOdymKY5sC|+GQa!f06ad7GO3NhzuXjJJ zoZpm7W+}B%qf>g+Mp^r`e5ytMN%8$>Axj45^1KGDb#gS1{J7`x$Vg|h<5;eGZK7Tl zwP_=Jzrl{iHYzYK|BkI_+KkD$0AeqFJQg=)A1^IBVr<&IUVXrevRa!d%Iy9r&S~r2 zba#MEVz0ckpeomt`^TCl?NGXv3odjm6W=bOTk$?-ns{R)cQ;Kk8?P2`%HPX@_?MP? zSwWI&^-+}@Dy~(ho-XExh7Z5@b$GkzMuNPu{Hp2vRlI@uq<85tt4R1Zl(wwtd4^R! z^{TDPB)Y^dUtWTN^!fGcQ^CIv2frY}d9JqAVo;^)hlkLwL8oeYM zHMV)DzIxn)3pKahb52UGaXa{sHTxeN;>ZhE)deLoT?sEZQTg^5;o%8u({)88D5i^L zm7sn~4k&H}+?c=PynUYzXrtuiJ6^_h+P#V3q$|OA9;e&+Kd$;R%EZ6feA!jVKmN4T zk6W6=GRZMLdWlt9=b_5V=+7MH06U=Cdg(Vd-%Cd^qt_Ne?q5%ioN=!Q2$wU#cID-y>v<2Q(|byqtPJM;{tmOo>YUX;bIMQ+`HruR?Ybc;QYe>L zB`6#4E?M4XTQ(V}+@otc3UDB`_>@2aeHreHr82UMC_OIKjPRq{aVH-~*Zq=Z`UY8M z+eDoXAinfib@>$QWWM!S+p0R?RO5z+4ocY2 zmNWlGvVq%q<^jVgVb6=Y$J*?gu|H3pd(qScy@iULtj-Eo;)T4X+_yCkvfq^_Ug;3l zd}`(<#Vun@F9A_INwQ3-xG7ew;b`MPlIHY7^-`eZHs?F(-@UtcvUSsQVK?3#;N8|& zDE!Gusg}tovw&V#1OF|}d!Z(q0`ceB$o;QL>Wj^%F)g^4Jk&$=A%_fbL&Zqi<){ul zSZj}J0SCDJ{`>9{MoJhf0o4ORJj*CI-LU%9bANW)9Wr+d)b>(24LAxXTiLB(XL<%S zl!+#|W%O9pa1cslJRz`Sa3mL_>)p1I5RolM^o6_WC3D9ydR~{EHUrn;#o|GoNhcPE z+~tj|+JnjE+S$bh%4gdm6Er2bxvs4?x#Q{XbVL6;Q7bh`h$X}0&j?-}YtDH}A>_+R ztfQ_49BR^1{K_gMN69jJ4QduHO7!E2dC3E~46a6buCnzkb3#_rJ~9$OA1|nJyk=IZ ze>&5f;C(k*WDPy!*Rs^^SG`(z!r~UK!lhl&q6yPTZwcs{HJtD>+~_>!b<6iXmgra4 zjXpl5FGt*Np{XBuws^LlT4Em9m!!8ZmAYF>o!RTVRoLir-Lh;kZu8Rlc5@Rv3!<2e zXT$V+@M%&uJ9v()o0WPxHYi#BvO-jkx=6O%QO{7%+7SsXQb}QCA3TRE%B!CqlCi3w zc{^&9#@pLVt;CB-+idU!FwH_Okef9=0gN*I+rV}q@c3+LquBf*Pw>xh4KK&W1r52t z=$XPpVuI7pu+E{{zH(MZMCzNYH^9~Hqejb<EYwN6jG z7}__W-A5)pGYJ=#Bjq)SG~oh3P@MsqJ+e}9AW*)tvg;kvdXNjm7ZW>N2vrR=aGmCM zic*r)ptlln<+gWLTxs~O0H$*z+J8LZrf$i}*e5ga5W~B3vmc0UErKll2Hvcj!R)bn z%EV^{>~XzDZX#Ug;jx-b!uy1p%+z<~&((Ua$5YfUUFT)TYPaR|82|J4*KcD!5MgIB z08vVfXDfd%tSJ&#p%-QQ2Ugp|HK-v2E`_f}a2(4&Z^le(oRI z1aPx`jgL@)yrQR`dRsZGnBdlR?cf`gr?I|APkf08OrT(&RUOg4Z7%P=qIEi$7vnW3 zcjIDH8Pa-T8nkekwMOxvn{#P0M4pKNs>P*&;D;0RIa0>T;`YaCVCsW)hvY*YWW5z+ zIZ|dkx3Q?3yR->d^liKBldX3cw?gz9N(EzjmGNx2-f%9;ZM~7BgE;+U9Q2X+^sz=S zaoM-ot#zfVBbfLsalf(7*ZOG~F6?H0#LEOV!fS)T>76>8tBS z2`KYx1s@H85(Hj;E{8GjTMsC~c$AOo*@hS~LSZ)BWNazua$rG+gzW-Z?2NEh8()p+ z{7&(MH|#So2Owe^U(3fAK$?;$J^%aV>uFHE zCM_#Y1i;X+%FlY`V2W;|$;Cv;A`GM6g$$d?B$8y|)3Ud)ZRe*>#mZJ5dr>df!IvhY zT(e#bVGfx`I4Zc$sHId-_uss_Zq{X+2f*>~0MfVSXmtTBsgE zY_M?t$ZW<8AKg07yr=fN@C(M_v4igZ_SRk8lSYq_WnXlQ5VEIdK>8C>qMR?LW5+Te zwzZ8WPm3K|CP7l$sj`z2^?y!F5=lK1BSFkG6{K75RRx=v(+9mmwuME%hX}u6C%S?i=yLXia_lecj}sb`^Sq!0v5(3E=}o?Qfz+ z5{o!=N8^DJUEV6>ec5W-soU>EzV$t)-R4iwd2B575P|WCb-C9}S2XZ|0y}TWck|F0 z(ep+JP_s}`{fUnGif&NkH+eU*umRWu9mIFaz^@Ll%hIhn& zPUP$BCk~dUP$k1?Alw2^JUI{H=`?m+BPnLeI9}?XQ9DFQUL2n0%;$i$knSKFle;25ZLIX7$X-}@#@@>6?l|_JNAv>;AiR=RgVUVkbm49^~|4d znTfmeQ>cgg7VUpf8LQZb4{evfwf^tHl?IUB&TlFWpNwe$xG7z%cCmE)XWttc#Dkb4(h}^O6&^|c=XWfIm!^d#Girx%gMyrp15gL zY142l@t}hucqwMzpRY4@^KliDQxyji~F}oG#$&?G2no@J! z47P3qD7lB-;c&%}p=h{v+1+$RHyCl6FW4%bJA;$x9hLaXp!h_vnF(G!%(-_=P&*jc z7A&n=mVJIf<@Ig6C=7-88UkrxPD)m_g;tSG$j%G72wX)*0&v7@-j_cX{J_Wm3$yJu zA59(bNCJkM0;TInD?>E*{-;vg8Pc8CKt*FUomHlW5Z`F^K`rtP-gOkR@cA4`iYX@x z8yJ1Y+;OZJU@3T(-uUO{^k}XKmZDl1GhQA#B$HG2J#-Sv2b4C7A|KL{JpfqYAe8u; zbm0a$WwJsxcvrdjhA?{A1~?Virlws-(XMmSu3!UKhySz-K37ci=TLOG6j5ScHv@$I zs~i)Mk9{mSKjfeCvm%D+{GY;z8u03Q{)k!`sHfA((>kcFP~ak4a6W)7K7J*Y3Nq}+ zTlm#l9ImAg35De9wl4rQ4otBdT&BXy!I#}h98sog)2sgDEz2d!l+lK;#4Pte0JQm_{eok_CdmdHEVZWYP*bf$aFTi8!T;j-$rKa0 z69{iyIhs?kWAQRq8z{}?d`}nM?USGfavB7UYUS}!jC?=~*g9P~U|aOoQ;Xy{WvuMF z`Y5w-q~{tqwz@fpnG0I)6xVeSsIAY$bJ@B%Al+1fZg}?HNs5@=l-mjVEtWH}Q(%DP z-8DxfCrKxO3*v&=;y*m^2ZMCX`HMirMTWEpz4HnGXlCC?^>q?UxL#*Q;5PCI>)W!><~f|2VASJYjC+#>h@ zDI5?59&q3SUJ7&dS>%cqq_wMtG{!&g52-?L;1_=X7J&%T zvBS%&JL~gQB)hhl!CI?o*zs68KjCmf$ z3zf-rIG}zx_HBJ3mh~5)^SE~jwq7l{7RpyRz7wPHvSo9bH~;yglyJI25+_edC=Ssj z%Vy}f+i~2J+^jR@BwULlE0D4Q^Fgv?+J1^AhP|t?prfmNh3*Z~`~$y87}0N_81%3K z4+Vf$|E(5G(lp$V;T+qOPYg#GE?p+}2%75z&0My(!qwhFh5`hYVi&ZrL2u4Sv@wL* zbT;PixOtUs2cfy6ShuYa@OB^Be{;bNfSe@1EaY83?)KCv3FfE#SiU3Uy*j!F=!4w= zwCkPl2V@E}Il?hXM9ada7Z5u<33E9vEjzYu$~h|zJo9V5IG_J2^@QXoQ*x3Y*MYT{ zC6{%mD_(4@bPfM}0RUTjYoAx~i0oG4ts@ujilF+ zetG7@m!O%TOZdAmfE=wAG@=|r4l z1Dv$G2g5+e=tPH+tzABSjpO{YHOioc-7~3wdojpcO6Fqca5D>YmW636c-8jSUq`w5 z#g9Ax?HZ?58`{|n9BEXb5LjWVVG8iAkp4l`q|bX_B=oduwjWt6fSa>;P@VzAa#h<0 zs93+y_*YLKET4Qy+wAi^;o_p#UCDBlIraY`|VBjU-MFPCf!AR7;@=( z4j=c2b*^PmFGrwO1OnE~+@7QuBu||kr7#!S*xRy7Cn^nkC~~Zz*kJmtXEV(-X}#}x zFaE;c_OI{GKzvWm$=`uK)5AaeE%obc{0%njJe1Psks}RqR%!C zDBWpYJ$dwaz!MY4>wi(`PlLPPpZN29;tgvYzb8sp4i?t){ns+|G96YL%VaPmBim9M zXHFEJ5Pu9CxKPQFR;Mz*JfeAh z@AApSto|xZ2TZs<&qun4dzCwBx2146g(c&co}KyruW%A$&Ps15VaLO%rA+Sk4&%M6 z)sYUyr^z>52GiI1dAz%%1h)}tSfSK_O{Lrca>dI|3%3pQ&=x_IIp@y;WG7Lw_dgj+ z>Vs8>tCY-l|wI9B3$4JCcH>CbY0FHb{< z$u^uePmsTtkUc8ykVEn-#yNrYub7elW{TW##$InjB1|T%9tSx>j?GRR?*4NUJAC&F zx!d)eln7`NA6+yQFS|ft^~75VKjkDv zY!DhK5jXNDKhJRLGImCs_~*5Y2m)L8JbJPwiF##?I;BrVoOF&6VLlV1^;4opR5HJt zNgwnqnu&cfkq)1|J-i;Twzv3rZ?UsW;(_^;umN?&HG6uoRj)5y3|M-4n)tLJFb7xm z0qp-kMC_299CcXpG&n}=2stx2*N~6UkJe9|-b&~UYKzA! z9Z#kK^+VsL9%MA}{QJNl3g&|474Y zies>e+*NOu&&0RaFRX=sU#(~uy|q(5YY{UMD$3%`Y&f%UFD znrVe4Ly*d_0xcl?g5OZkubbbN$9qqcT*r^nu19pGm!IDy+r!Ame;Ucy0ljd{DJ8(= zH%H-M4Bh#U%w!<_je@v`6ly_P<4+GBeLpF(5|H&g@@P3$J;-pHl8oU^KlbDrUwIyy zr^iz{i_CtTR~${o2Xb}sefdv%)`j(@JXmXpP7;W;5M{z;kkce&3G^OrsQncg zb*DnB{4mFCdDCNaJ^4qSud0zRV}8=a)JHJxg`HG$2_Rf1l3j@vtFZc_S(pXL<$lT5`)^e47WY6h;d_66;pfFHeUct=Tg{y4I2)`K0 zJ{2H)!?AGR@8Zr}d6U==LltGiT+Ji9j7vbVmlJYC{}x(4YKZiC*^B3}vchpKGBCRv z-1zm4c#yhlPjdCEoAq)U3N~YGNOSS+z*i?v|L@ayk-m3JP;X7wvfuCR?!Jj8i|mKZ zel3i~sID9IMxSys>zf!K&&@j|Zzlyuz9&ia_M&8bGt_jK^!`~CghH@wliuknegQyN<3l^}bhI1(BoXat-z=`YKs3D4{Y#MDJ9lwo zB1^TM4}z8Dmmu1%H}jrS5cNqLv*}6~Nvm_-%@Y)uhDp5R{{Joh zZr%6!Sc1q-J9*T&KPd8N-u|79<_O!sFs}$(-+<8c!vCyZ)bZ&wz3oEqfuG?^K6YhD z0Z^N&jYYbT(Ma@Pnvfzom0W@e4kIoI(_}pZR?-z>7Z_6Bee5hk1->A&w{*H4uAQ^p ze6uojdPTgoDF`T`Qc4Q+dlUQK6sD$o5d?pIF^zpiC3aeW(p24$+|urnykb5Z>k^Y* zv*-T6t=`00*WIp%IZQom!)}vCpyF@y&Ji^)fktMR)zF9LhAHAxD$44-x*`7b1Y)btbM=Z^IA4f8 z6ze*_FCsJ{9pmMavR?FW{L0e4z{R5~frl8O5kv1W-7A7Z->+PPrdr9G6nR?x+?Ko2{^aoQkG-Fle}C3q6zb|<{-f70QTEAn24B3; zc+1#hK2#$6P>n&oVq^SjrfzcW3xF`b{_Y6b%{zju6l8w7PA+-V?Qqz@SbQ6rw*io_ z?pfM(kMgy+7EeY z0y|gj+9HQG=@M!|@d&xYOP)$y5yJt4vDjBzDtbl()yp?)&erOtvpv_SWu$AJ*hC+GK%gW9fE zlxNWzJ+Hn$*()Kufu=RyHBA_fjv%9@(g5;uouc|H{4sbyz@)@@oCG@jX2Nc(33_YJ zA+7BX&-LOnh>?~KEZQ}6Du~uuvxzUngahF;20O&J&Dez(Bp-%WGR6-;2ORLn#yR(J z8!=wdKgszH!`NobQ&wo7I(L&V6L zDz5iQxsG@UF>GZhFv-jIevXG8Qvzx_0atCU+pq`JDp=%vbu!&&Cb zcx%%ds*woCe0s~LdQnzdXciuAbENW5!85#Y@P_*RoM3&lpK31G@=$|-__JhQ*QGiv zHe~|gEd-f)M1ZSha~Fj*ds-R*l^1;LDJ64aI%K^x{Gj@2t6g1>t-^7-ZsUaKcR~H$ z$LW5#N(xe@&n&f-b!@t31hO{2AzQd%sC@(Z*eHcfJ0WgiHySX0W*Su0j;z$90SmmZ zx$(?hoo^Q6X|YH#Nt!^e-Nfian5mj~DkZsw^u{pWD|;@}%XYXZeRBbK|L?RHw%H{8 zK3ks-20l43^rnOZ<=A;A32r@`p#8geaulX#(e!WE=L=u1zy6%SgQ=snD;B&J)OR4X zlKYa^Q<)Uin2%Og#G>eaZn~aTs6^m7wn)2A@8ftxdsR1=&7~AOyAFXnZ@V2id5B8X zKH*C3D-CHl7J!Uxi<-+nF2?KxcX!6=npVrkcEEQ_*GNt#E;JA_o~wYH=0U6XvBN!o zgXFm+BK?QL;+dOi1iMC`@qjlt(7e1ZwQ@@|kxJq9Cc$9++#J^Q3IHzVaq%QVCjozYh zu89WW*vPv6%`2a~Y58yC0RgLG4eV2jikDhIy;tkZG>?I?tMVAljiHx? zJGRKYEW&8mci!2d>QAbAOdS^9-BS&4m+a3v;yZma^fSPf-V%mf(xV`!I0W-C^=L}z zo0eHP!aPbL=Tg^WgMd71A2}eD#JsnwSSq)Nf-a|DJht9gD#AV;1r-v8Z(<4q7OYBd zNGJ2f;Gp#``(H7nY|F{X6!xLvq7VZL5bo-tfr;#d7{_8 z=D3wM38~o#fjVUKIsd3~T2soNA9nT)$G_8#q8nFkdYtWR+}r4T2*DD!(0%;O^^xaD z2JLyb#$^5}K1lvM*1J|cw_pY&CJ(*+!6=difmNi*k;cKg3{#n^_`8fF+Am*y`jHhV znp5O7LEX5nP$^rF!Kgj25EqpgRzC_Hq;Lr7Pi(n|Z!rxyyx7W-y$@~U?#(rw`M7&# z<&ShMMyr5W?H1*YX1o^r-)=;Uc85&hp1%l8#bbb2DZ^2JvNnsBN&3vj$ zl^c$6ByJyd`onR5TL&n)b*Med+njl8R_R=ys(BU}%6^b${?9*x_fOqRG|r_iJtS4B zUi$gu#_qKx{_y;*2E_`wj{(o;WDW~P9_I0l-ifa@?HR2bocG-G=ObhlWW>Gf*&P*C zzUne1`J~jvN*LanMlG7~vL)?-oWmY?wkHnRehgo&1x9JSZ5F zZW3|u@FtC>o5g2;quhxlFrb-ju^-?b+ff$9y1H49;L+hO`{P|rT2>Ed!;zjYB&R}` z6EM$4h$TR*=e+ zz&@y(hH`0M-Y%`s4e-M-th=$u0)jnQ8yQWqnA4!yh@14e>O_9dhz}PSNq(-t<3f$Y zO+EpC$3(J)&h%CIC!K?-90f0dpJjuMc&(Xzg4Yf0ytY9@ThtlFe?hJS4t9W@F3_`}AGO%^0A6wOnKIh5 z6GmGMQ#}FMn^7Zw3;+0BKCC~>Jdxp56CKIqJ9oeJd~0~{>)PeXTua6GG)x2yY_Hvh zhnA)RZxZzza>lK$LdRy5CqUvqT;qtM)f{6h)@nD!Cu}9iXA7K=KDt)T^tF$ptzt;I zP+8qjl=6x!+*|5ttu3mfC)_zWd`kWPgt`)g;!T$QgqJZflQ!v)-Vh>HWp_ig>dp&*W5|5Q6 zkB!f5e%v*fe>m>77WHw8ZIfPK!WK8gLCn;SDpXE8wQM`p1B`hthJ>TgNa2?F(9s|b zlOGO-@&;88`G_7Nw2Gc9r(11PY$osG<(h%$ zu;m_aXUvFG6TtNR`)yj-GPo8x%9oL3p%g>+sIb;7$FW2=b%bGX$H6mr@096u>?fWS zQC)>PAVmWzqpE@1Leym+xz1XVk!0Hs`GF;fjs zY_1%lRj==t!s0wgf=)~TOL_q>I|!6t2B7)suAhY{00CREqPoLU+g%Cy$&$IaBA*IG zoyq$e0 z%@NWzPIxVcd1O0{yOF?bq&@j4*b^X8D5N*Mf#yUTZfV&n4Cx)0m6+U9vGnx)76rEG zv80^SZe;vi+R@A?&Hm)f^@%`s-swulIlXplo7+kCo_d zfrrIIw2!$Y1N=`rWarhDG1-{1V|Qst$-;kSl|xZxD`=aopAR3MUL)4?o*bE;`1L9M z2ufXgnISE{DzyrbUK1j%$SHmU3R^6-ZFRNfXKG6T=~O*)|RwER-O*Bitq;{}=aPkl2d?sS|Ho2jNo^%C%nioe0tE<#NsKIaJsj=*9Ov z=Vqio9%h0AHVlGR2VS1j-g3d~bFe@u0 z*`SV~8!IY;0o7kCA@8dbW$($5s)0t}r`#s(`v)nz|0ZSjWaRcZ68U!WZKqj0^tyid z=X&tmu#Hz_T=y5F8Her3-Lr9o+L%9J)30}-8wKV;!q;CDiGrC}Dn70$)}pXQJiN;y ziwV`LJ$LqU`sEmyVvASAhcr>;UMB$d7Q+fUYSxhVpSc*(4FL1?^|3095z+m&o?kqH z7oYdfI?3a1mO{bl7ZL>$i^SsrEn=E^R)dzA3gPe_y`k^Mx-|3hSLmc@NTxzJC{)(At#|9`tVPinPct!O)S@kg0SQ z4%g0*`{8CjCotn`a>ZD0g<}oK?doZHb5n*8Ot1u}jzRj(Xwh7>EBD4_W*+3GIJo6t zzt!_@;TZFt&hGIpUMP=t&A)4Yukob@i;V!wV@LDQ_J#Ki**W$IWcJm)(Cevw0p1%I zTxrl>$IP0H#AnaaWE;du`Q}dP7mq(exMiDvAHHNUp>I7V0ez|y^x>FB>n#JPwv53F z8a_NX9!z6~rcrc*PDFL`WB$X7cB~y$CpS7Y_i(lO$7yx4e+pFG;wek9PF=A=9c!+B zWZ^S9`PAWS>I$i$hgoEti`n%HZYgG9tJjdttSj|a@VQk_EZ{i3kmN@`u z(w(x5!QHIITpNvHXXz(bz1F`b);wN43zf7t`|cx7{grzGr2`o<^v>*bh17UmKl-|c z`x|Uhk|9*qfh^TQS$i!t3WJ*FXPhDQc8?W4s$5x&8` z)t#xibI6iIiMY6ZE>m)ojV-np(wtd{=3AUTm0a>zJNC@w>N;7TY?(ysNw)?v=K zSt^d=eQIMzvCY)((SJd0PdUa7&&`?Ku;;jWf)b3BU0%0I%EXrze5fMW9+i4S`=eDb z(R4I%7Errt9wr=TI*t4cyr-Q~@PLE}cZKH!!;fi;uRnG&avmvW&`9n!$z9jE)a}Au zK8^8aOsiZRyl!(m2)ZbcC|pY~Ua-LbLiF&UQAPV!=Ah6w3J?5`#=U_T0TdV4T{>2+oh+AmH>&9PDBLCx^8{q}OS)*1O%>S(EC#!B3t!Nb&Qxr$KiG7t3$ zsHzB1Z5@!_;>lQ(G0-J`W;HHLeLzY1dU_dmdIG~tY4|aE80z#WVc+wyUeNFwF>(~V z*$AB9dud|TyeDu;L;}ytTPq@ zOzu=X@55UcGkx=d;fj2#Fca(OI*Hc7mlqk(A6mmyjS)5oYIcS|U5D;wFs_|FPtW09 z`2NX_4ltlGFR7dpuI${~lXe5-2vf{@zg>y&W5XB+ag97+EAOsT=LLc;JBfc8{|0i} zkFfeUO~4B%Xr6g~Xq`7C?S3j)5uZ;Fm0e>>ePT+{dw}#FX?-BlvHG?%YCu65=kis4 z2amFOOi}#!AnP5*CiH-umlfeUq+YL)WU|GW2P#(l3uq`L|?%#Xam;CR&8aA#!bZpKIE^Vb9t9hwoE%M<< zZOI`*Y|X_pAf1mjQIZi~m5Q!&>R?}`;dGH?!302s`a$^JI+>rHR`%8J6pTVm5Q_h5 zfzB;oWVqDF`%{c3!_i3@Fd@RMq+}bT^KBJ)eHt3ZZyhB zlim*v<)A!WLeu3AXM|o>j2#WVqIwY;mWHk1uo0O9(`~wUoI-j;s_p4OJF# z`I)SdB~nC24KPQ_21O4J$tpkCotH)Kt)SuH#0~ynlwU)HQfzO^3MAT5bq$L=u(5s3 z?I6Y%Y6d)qU3ZyRd&SB*O1I{>N={$nGSCR^odDyn) z`y)@1aGC-m6p{o8qXotz88UPQ7i1cG^P2zNq9U>5R4re}CO@c+<8hDvMFnhiLg>v{ zf9A7Dxu7JLQgk3rT^xUB^lO$u_oxQKVA9$duGhrvIHF%)n&_tYtO^8Gj*WiFR5}}9 z0N1J88G-4%yM4t-?X&fvm`l&*B|^l?b57pAe-nTUd-&_qMBG2SyNGx`NQN3eAnwQ2 z2onKd1+Z&X{MA5-UB|%%N7G})`6nF}y}s1jt9FO2ve<}iCzG(wB8RIEO8(B~a(UdA0)*~AkyN;t^a zwFFvhrbwUuR=zIhBAE}ww@!ym5Zf9Ovo3wE_dcSxTGavTnk(o) z7|2QU0Pf8^?g zAG3#;V)eVe_l5B=?VfFrV``jYKJwy}G5wsLWr(?0VG(BO?_t(FiEfzhfQhMT`tX zC-B7Z$}5%(oX{oML=W9bl5j;bgMYbt1Gwn|eCHs<1%SWwtfmu4x{?B0bD z90_=}Fq4Qh#W|jaHBvB=N7FV~KZZy~fG8WzWh@bsRq6$$NF0hPh}g7%&bjPfb|_)?SaBioWepaQCHbxOd_-cGL&vGz&tx z2()B546sfQ8QICzz9Jnej^lE4hkcDse)+_WZh4|daf7?yYjMPwMw5%OnQK2sf(Tf> zuS>o*QI+N*|N0ZX(p&xBbAkc~!zQn*S#x#zzGS8NxvM6Sv~4zw!p|T%B(PQ_3*+^}-ju>^J*k8+^R8RjPXtJ zWsikcz_c)OL%jB%CDOqNFF|2xVi{uBH~x}#WW)_Vp}0Z3+ttAXeR#I0YKhtY^}AB| zBeTJ(kTYJU(un_>%nZ5%fW+$-*;l6}9L^K`hz6lP$MZ5A^v#7Q?E=U#UW}IyTJ)mA zzKC>8gQd)3lIf4|N#rn-1sQn(FsmZenG0kDhob!nPUK0wDAV%6mRw+@-Z zgMd_b+>~rH3_`-S@&><#83kpvrrtK_IkWR<_k{Z6`7;_}^2`^Ui@)Lj6$9>uDxEj? zOyQN(CI+g8|L|QS>bR?3+cN&R6J;Auyp~4oQZKe0-B4hSOqJ$ob8hWH?=%H!o9YaToh7O7vAcZQSs3@qRsHmt>Q9&%BM~cRdJ%|Mr zJ+Y%lId8td|HV7T9J$}?B5SSBn)7+0`pVD$DqQ#d*AX8V7t?za7mu#AGYHqxe5$EK z;hQZe#Fs`Lh|M>6l_H0$)H?wuG8~^zfd`bU~cJQ5+)t7JA@6PY6xQtgzXTS~R0?4Yk zyMbE)kns$_T0u_ZIn7j`{bc{Z3!poVGY!)H4M*lJa1gP#o}vG^)khn<&~|@}^Fl%q z-;BN#3BfRFQ1!MEgv#GO`#K6?C2ut^DX1CAZf!IeUNp1p{?oLVbRcF=|Cd#LI#JsU zhbY1$&$`l1U4C6v61VDkPzcO~E&EcEUXxwYn3%cI(Q2a5ugr^Y&f2yCV65tV!R~>~d^d`a#o)6j>9& z=J!8_+wQy|{+ev<~? z%h;;bXIjOBt4CKL_O?3&-ObYBl`)4jf9&-w%`*#f+wyU5 zWMfKH%CP#X&yFdw2=pbGXSccw%dO%IBQQV4Tu#F$K}{J#)j_K>nQJS8RI<^{=}xuO zRf_VRM@3BMhc08C&M$9UJ?IE|`OxXqd7t`p%sYP5afM#jF!~Zu?PlKW;oGcsF8}0A z{?V3Qcnb2Mpt%Q?p`}RPF}r+Ys<2?5EfLiC(ALu%wIvXSbl$KK0dH})=L`3yJ@Pzw zNj*fWqplU<`vq#GB4D!jQK?Ys?ZDLA+TjMan?#6E7HejyFzTU0PGe&ORRWzyC97DN zTW5UN8gE;7aaljJyj0y*H>YsReIWMi`u9xxRX}P2s2QG0cNJw@J4Ed>aa-m|-AG!t zy*>N1FRSKG(e^TRg2%clH@_VTFl!2o%vF7G+Sg@yFUN)5b2~bXP(R+56Pl`|eSprc$Ug zJ9#N|+0uDkUnv~8WJ>Gh%tbb=7C}FeldoQAS+W!xmIN0o1tM{~mVWy(e+Mol!T&_F z3DqdeA53=s(L!ZI`wQ&d9g+b@9yRCyq=2KA9Hq|FjPc%H6I^2Pl1BRKdt@Z1tcpuD{YuR)OP-D$h&h6y_a!pF9)3$ez1|g%5nUd(-F*s^~z6X zhbsKK`A(Y;I8>`~Ab<8X11*O(ra?A5%3p}e(3P0iLj0o`+SqS~A^C;2!{LXVG9x>T zGJK5O0rI9IZt3v)(771<7AWSsqn(9qyn^lpz$mQtdt~Tb1xy~UvsSRJ0A|DB9;g}8 zR*#~864VAhAXksBUkoqK{A%?6?h?7K0p1TkL85A(7qH{_y4j~?0G`Xp3dNzh{UcEoiIs?Ptb;U`J5~=J;>JG{7c6w7R-(Tb61(8K0}Qu#nLKB zGwWErnW^L-v`yJ~h3*Cwu)ZDX(uFT27(Nn-^qB z!4qUk^X2A%lNVwpFT{Pg(7d->oz%r3E3@pYctWYofVe#Yom($OZKv$;@2ki5H(2&ZXM*bN{xos( za&~{sWFMpv0u2Ti9s4`|FCWRgERKZi&4i>#FKdhY_fB3;mG@^W`|%V=`}WKICkF;5 z2Y#jWU&mg#u1i^_xD*@#LUIQ($YDhtQxrW z;pz+Qwb@AnhHmfc8c1Quq1XRz&X!!&kY9a?z5dzq`qvNVLo=_3`9m~CmqJ@F97qN6 zqU)*RE8qO3h%D)Vb3xnD>um$gt*PKIe+abne**%`T>3&H2HI+>vz1bai&P6YWMDNE zjm=0AL(H-+F8%!=HS2-2I1jDC4O_={`|rDUERrJjzNT+A>^wE>YPHLM{5l973H>na zl{Mm1JL20j;y*PKxG=I2HyUI$8WJ!XmNgntI~vt98Z$K-w=lX1HY0A>hdHGn{*i!tpAsJFQkLYvBID-Mo|_-^TnpvIzcl>p zQzD*2aB!h~EhWBFaV@8A{S7AmkrJPC2;TttPt}+>r2x`+>%`Mr_>XekMB;DCZH-ez zcdHve{>ZgY-ClkUdtY(;zMP;QN4(Fi#*2v^S8ki1x}*N(e5fV5LGRX&g-gE}la|?c z9S>5(rf7%_{>H+kMG}!*ch|%9-T?t}N{Xu!UuqTHJ5RaiiN9|dm*H7k{X_SDMBV+U zQ}<)0@5g<-zX|^!Vbz1Azy~SW57O!$Y(DiMbNWH{#|K+Kj{V2MWwLK_vL6=xAzoKt zj;~V?#ib8-1&;qGeYg`p!~Z*0{_LUP)J%5mOwGrc%~=zre`lHk$1YkuYOZ^giS1Q#Ptv+2^8jcD>d~*X7+#zzqvP zW(LTNfe|BM&=`;!1J_J|t5jgX47f~HZ2*u9#z3zjaFGJ^Q-I4Wf&LXhpAK+Q8**L; zIHwEr>Hq`U!1d*TR1>(W4qR3TE~x{(>cBa5;FLOWh6tR&1E(>-85D314fLXcOE_Qv z2V6r#2jQ?m2=poh=!XFpAwVw#I0pgFLVz<6;Pn61DG1O51x~_%6A<7y1ULo(x*$M1 z6mk#_ZGa;x5#(Bo*8z>P!}^j=%bRB`A9k;J-l?e&VP0-VD%_EG-BH&faa{@I#(49x zP{SNw-B5Rx+?=T9N&;Q5P+J5<7Y+px2s9o`(j;o>Y3ds4P)t@BQ4P#inOa$!(`?P@ zcIFt3@Vs$zx31cgTjg+~R2M+8TNhDU~kMurDRMTJB~heXAMM#Y6h#sx>l21mpN zhsT9P#D_#|3W?kl7R3&WP6&@l43B1q$83s-O^A$3jEYN+icgM?PmS4>8kdm1DJeT4 zJu_)@c5?QX)J#q)CqI2lVJ4?&OJ4ET{Gyz~!n~4#!tDh`JBkXnZO<>>nP1E;+E!jt zTCr^>uaqm;S{G}W&G+2VGXaUieFP*-c+;eP<=(ch+o;juWS-lHC5I&RPAo4 zsc)`p*duD%yJzqIg9rC@cDA27({r&;GH~VmRq55?@p0L-{MOxvs3qXTbd%Y}gM$^w zxf`A1;zO>&A1j@DkPV4f3t(9F=1aQ|`P66_*;F!Z5?$+I+BA{lR<_GN%-oGo;mw1A zMgMGh+*9@G=~{4ZtZMFJVC%)K$9)a9$2J)Fm(#L!0@4Tv*XBMwr~Yj3GRyuWZ>Eme zE{2*;mM9-ztuV_w>U^H+I&o_Gn#YpF5mf?NkQMbJWx8!`jOjwS*~a5r4E#+em1bcV zlK)n}R&{2wy2-qbd)>E<{SHN{Sr*nlJc>8$SYTUw%9_@&TTl%)qX?`Ptu|dd??{cG zWkg?PRj$_rfy@-sWKhss)6lXv^msXcaF2l(PsUJxePgeohh!;s(9ml_4Rj4QHor3r zt;8wq*?quz*k6)%==&G9u3uLvaX_kq3)f0ll%Y(!73DaGc|`@un>x$W3{RislXaN& zE}y%HrEW>u-wga$KAKa5>EF(~<7;u}{06u8ykb)5suRp0U&D60jWMa8)3t=}7eem_ z&fgp1I(r?`&}6;LPr4Vx%(>7kT$Lm1bhb9teh?9rJ$GbZ^o|RfPVdBXMlmYG(gqiL zKkQb_)*B-X|NM(1jJPZ0yZ&p=PL<FoDLI+?&y{ZvGXMGirA)ivqfLac#JaFIk(k@I_0<+PUQ1&0hUm%>oA-+i9!C4S zXu_=~BS|5YAECyL>-H?%rQa_$+Q6EPOv2kgU>XJ5$vvC!Yu{1K33Ru*VPNgUWTTsF z!>cN$n`Vrsxpp(@qj-lqn)d@8XL)(k@-3G`c00OP&0U~BLhZO2GheB(VQu=cx;ooy zD5F}dbHFf8JWB1HvYFB}@?WyppA7Z0=v&AQSarCo17nF}O-QNxI?Aif+6uhU)KYDu z468Geb7-WtLgYcj(Lax3J<@X!YC$x{nA)aFw=u2Q!0{MOWHqzJ?F`ZMkM& zMgo6XFiq+HejWWRLerf*2-OU+(&ekUE{Z+XH+Fk&0(H3J!JnV`ioe%i?c2KaYyQ}o zrQZwtwr+HJUffw{dpG}Xh~qsy*9-K!u^}7$-}a3;k`)&?$rU;;)2r9^H1vXgFr9}K zq1)K(xh-5Hy_bCg`w@fsZBiq>7u`DamuYqB`Ez=o=|acT34_PWU^=&C-fN$>4`tBA zWhS^0bDM8i&LPt1AqX5cYFIF1y0mxD0fp?*rd^9R9^-z;KL+f8Y4t+V=SC zp~a=CW9u|{#I4*;z1MNdInV~C{vvV8qey=EP>PPPQEV@fX5Qh9`lJ@1xsLL>QtA(u7C(QqmC~J zxrvc4wOtClZSrLv`H@EI=a`^zYZ(sI8(L zPqomj?m4~tEj;5_Zp(T&6_6(G81DLDt!J%=l}(wCpHBk5HFj9Nk&KMdgc6y|xn_Db7F)IV=%&6e)Gg-3Xd890U!KM?EE?TV(GUdjV5#aPsOx_BnMEruI+xOt>UCh7!6 zwOFDc-seCgtxuFHm)&la5v6k#w@7gJ_k)0EEmT)Y7TWBD)Duq{>6M8*?Iu1qF?quQ zn-7eyQBRPI4)kfir3hIQZYa-@@*}S+1%_RN_@h=?ngZ(RlD%S(n-Q6){=N?rezAQx zUGIkO1k=-TEL4L@E|)kAo-{Vj(r{R-rNznAwP_wS1E2Ek&Pg;)*8N)*{f*z-C+oF} zS5tKY4{3;JlFd!_RfXv#kx$kl-Y|2H2Nb(&oHKSKrsg5o%YI^$CH7hpIe!feX!Qn` z|6nW2EwkEjDL@6ePjN~?79s=K?waw+a-&5M8>N71JQ#rM!)L+ejEALjzAt{oE3VIP zxODm9^rylQnKq8ZSx;7=B6zTs&--|Ge{Qo&LMup@$sZi8a_Z`76y1u&v(6*4IASMU zyt{a8=4b*&)8n;HMc;`1NaY<4(|Dzn3@0yD;Og9JQ#>CtM@&BD6N(Sd8GL2>I6~FX z>9w#G!UC^`YR&q{#YLS@Y^m+)v$))r?2IPmmxi%Cy5mxwsrt&y}e%-ux^87PE(Nz{M#ty5}HeaEXoR!j>end5k@L%L$ z5eHceV0x99Gn$w~N-~a1Z|3sEW!Nz`?us1S>W#U4A?7fEIYz=>=VJAg5O)?lh=j-l zK#2jkbZvH3v;=XjY`ZhZ|3o|Ne8P%>2vC(%w#WcKHk>K1vJva1h$DfTw)akovB4o4Q2n96MvGD%fvaKRFn8@^cxoO zJqwx7L6%5?d6jgRZ@5y8xJQJ#K_PtR;5#@NVmEE+lE+&H@jV5Z$3nhQk`!XpHXb2~ zhcY`x_{zmsDubB8_}u`Oc8u@}KtsQ)p0jb4%Ca}4av=xpNXJYvG#>%>hgqo8T)dl) zcd|EOUP8*U$1so)``GBMCYqiN$+tMhFGOkEz3sf9p&6+fPdLbI#S&ZxNXd&E1dfp_&fG4;w66xoQ z%oOco%3(GnL=-o6unQ3jAY4gsm7wUuGU$8v()Up4>%EXkpPIHu`w#uv-}Vl*C?@`v z5`QaD4J`aWG{P`o@t3qy$wBEC5MGLLM>vF^9HMU&vPhbYq7twn#9wmGIVJv!0>2kP z7bFtxkofoF*0O%Q=4X5*3w>9v@j!vHT{0xja8M0Wk59@_8QU=5i%>5@O;QqGuy9o@ zn}8sU0N~n%;!n$QE-3pRlLk$6gny^Hwl6W=J2Er^uU}>CHi)-1L*HT%l+uW84yFze zbW~{MJ5rO4d6R!SvRJHsnHGKGc!^kw9p)6baM6d@*!SFKzy6LqWv!SkY*)~GDA*Hx zbT$*+&A}C`HD3p?U965BU+a1lSSblNNWry+KwA31>qpgNfqi4)FeC-)EP@6Ah#@HA zLa+-<3}!KqmJ>iG0P~@_J}ql`c0u1)31f($bgur`+YRIURvWS*;*w*<2aat!vB^EZ z=3hCnQROO8Xe^aA5dVmX7#P}U40x-=jc^EyT;eN9M}Y)C&%#$T2w&x-@3i195q`@T zY^PlPC0V8IZsTgV%!&=4b5M;^kGFCkY6j^m2amPyPIg4k`4U$o9(qhBtQy7bR%j%& z6FOO_MS9&C1&&~j_wYn@0r}ac=;gl-k6U22+tneQ>gGrUTSv5RapSfzAk4aMCz$@8 z(@xGn`pKFviZOzF>;DnsI!KtaO580Lu0xK#$U*w{cd&I@N)+gJ4yMx+drb-)Wp^Il zgBjy4A5iIdRYEydhlvHITh!$3xA&SD^OVw*B?c44h)Nk^BL=Q5CBWD)7ts>Tkqyz3 z!-B+!BQQjk=)|gOWTrAE@;7|M0C9z9dG#plehAEgu|LO2#WLP+NP>crV=UbZ!Oj={ zsADF@M4W`U1fZ)W;!g})LG^{N3e*oDySpOP9SZS{^31Ikw+0&FD~lL?q<$Y4|5Zs? z+?HSwjH#sHw~!?7y2HP-Po|6{KjfgB8CqWzcmXLVDX(vmP5eqSniHd{XgGyfeHuV- zu4w3Fpw2{VY#9Th+zRiA&^&1aGnZ$|Yry98VEQlX{|b*3ihWb_7^v{=;maJ<&_Z^_ zt#=@f+wR}TyGYWm_=%flWS|c-FgOObSK(W_58Wfd z7AN3_F+~Rw zDFJgB$1^3M&SlVr0gqs1Mu=P|ZzBR!=S&WqDTcl6SpDjvD}@9#l=uGhxXm-c;b5Lv3`yN&!wU_k*2dElu(JWT1L1@ zLBHV;-mnPs6pYxpd)6Giw11)^;U2mq8Sff|Z(yO>KQHr11KAFkeT>kEpv#yOkqTvj ze}iq}&orNs_R*LtMQm&zKzN|Uo}uNpC~*p@?F$n2FGkY7a3+_6ED#}ESQ2_v$#rpb zlj$`TLwS^i8>V1;NSM8HNBAV>#L+uE&NmW0Z&(01Ont)=8m3oL-7@<%j0gMlM4p3)NP! za&U*-A}bg=M*LSqbSp@DA>IM?UaoD5Rd7|^)aY#@WDy&AQwDfsA&Y3(Dk<;}3)jh7 z!i0trXC+!0xz@KBsGrh~JPPuSoM3K;sg&Th^6*DUm~WAWu}^R>rGP?#kxPz;8W5^E zVNu_4g|!8n4DeN~yn3uGYCO7JEb=OsHF9jGoRe4OP;I5B`Vc^^G-gS$@W&7I{g6-$I+b@N~1vid5*>c}*VG z^aFi{f*Y3LWD>t)B#cU@2Cu=W^o^R05UiGVWt>dDaUn5hZp3h{!tR{ zi6APfhsFDw$%=hB6lA{mygL^WB1K$t0238(8~|U>aq%TVUoOGcy!04yWWltQM+>Xv zPoF(|{%rqEF7}8y`UQ?Q-PmX;+y37O}R)M3t7lOmavgKOh~V# zxStvLRXZ+CvGL|Z=--kVOQ*?PIhgVVBVgm8<5BM^%YQH~PEZK=-<^-y%Qm%RbifxW zDd@M9`)m!CoI_A@@J$L-QxE=*9R1%VpHD1&BL)3j6b?L=-DlW6pkX>F#FfvDFF6y+ zo^euA368S^r#bj{I!F%tq1I(y@s2Cip_ub=_!r{HA8h=f2-nq)-Qza4RXS55D*1jH z(<8;4l4F}*MzwG-=OtLF3vPghJ@_%h+G)?y=KBBH_Jo)vf@To@ zItQT=V+wS&A`I|oWPXAJ>Nbt= zn(gpNgo2=nGi-DnE8+jQxNJzmJtUd$WAcfNb=o^U^;VeO$1COG? zGg)tP6*uogz)S!+SclY6xu_V_UQ;l~eOu)Wv~&w$QAEtLfw_yTSV@>8R5ll~ai&4!@!9kkvv6qR zBSbye%(RD$P_f(0JD%1}9lxmq#$5E|gs9aE%xGwa*Ga_4W%l9x&Ye>E->&x;2O0wl-KycSh7d zzt)rU<70&eazmjr4%0C7=Cq!z$NM+;Po~{!FbIC3sLRxYKgwO0H?As26N8N^6aVA5T7zD?dBd=+`?truWs;Ah|L9X%4bAnAtGCB7e%j zr;TA)lB!oE-E7)`yOkq^6dPKP?8%%`JArpB%{P)!p7eEUgmcwo2VQ@<@wPRR<2z=M z*5)hhpueP6*Xe(sAJL46E#a4$MW9VI)+9aRo9v5Ld)>Iv1#Pk?imSbJl$^j@3m!Nu zsU9X+eU*6aOK9Gl0>iZh6ZA7^Yz4~7P zs1J_l6x~cPRr@M$Me2c`pWnEq1PlsVf1exNcs=igFYiDOFa@e550^AF``ugHptmI- z&4ZwC_m8RjpEEe7SMZo>l9~v7^-~0R~!8I77p|vM9VYHdWQi-+VtF^(F zhKV-w=CH`mUM-2$XmJ1Lod+C)I}2|gZ%KLJ8>+u+QJV`fI7c(QQ+!DVt%j|xtEj`2 zb6+A>q|y^>sM}<2NDxIT<6)Ih$eIVXz)*o&;@=B}PqvP`7CkF^d-dnz@q{s*M1Ngl za_!X|Pu-d1&Jj_vtpDxGElN2|J?7Id>)+ci4)P9^G*2Sig1`I{>KA+Gymr~%*Wf`o zbLqp~OWAEfU5yz(c8sYNbR@A4Z6WlJ*gv1cMbi{%Z`d=&OGnEH`JoPHPfl{kJ4xT)7jdT0CU~!83ODaxsR?G)JVzm zvWg$94pHg34IX*v6d7Q{MMK6dG`>ZuH4dCNuG`h5ccr!i8?Q`U{#@d-Zs9h*@Xwrn zuv@v7SSl#FT85A1LgC~`W)6{TbOdJ*!v^?Nasu*T;t-C@g$?waSaVKyaG~^)U--p4 zd(QAutWtiF9|TnB4{MB2uYB%cayp|>#=JGsr82^nVt3+pd4o+_*>ZSG+v_4Q<-RO zuK~)}v%>oU7Y-jb7_1H>=_yg;YrG+bU?GR}w~gfBT~?Jv#jW_P1dWXi42p~A{J(O2 zkRiPtT7xjXb^cLug>`Q*8@A$!e0Xc4X_o`%o#x$c;W}kdo&N$<|35a@@#w4C>{ts< zH1F^VB^OP*uu3)R-)SD1V|)--vHUD;luC!1fwJ=5Bh1d#-*`uy?m^-UQK3(ds>!yy z%#jh4P3y^GxD^S4tG(BuJ40H6IIvzB>M(~i>_!1oh6<3^CMZQ_5=SXWvW^$v=uef&o1jwf5;Kiz02xKmBTCF^a&__pX-Xa73$mQ2b?Yz z2wn1_E3^Z6>)^k37i$`-f1&MlpD0_YTIcmQSf+ni#sts~rY2IpU3=63o!ur}smg5( zjDzY3?l{dij5BK$+URuoyiSAIn?5vHmz@q%6QTr;WYX@qF838US`cv*i{Dd{)UnJS z>ExtSRi{PQdWTgqi&F3GESRfs&G#`Tl+lWK9>fxcPGD6t8sxsz>pw1_IyIovUJdKd z6_0szCEQyou@)2D`iITfkj98VP~#A<(a@C7HHnL7mrE#Krrr(cAYP)@Rk?2D_Jo@3 zEG#hsOgjvW)!ci;M@VhgUw_5OO(;#Th@e>S1(td4n#U& z643Vq9$GDmu`MMhg`QpAWKs9H^UVfAiRMeS`z_Sv=U~q1V6}vGt}_WwQ2Nd(2e5V+2V!OEiW0 zKu-`+-;Z77lBa3b736JX;9kt08?^Bh@?zlRG~=Nm4Jgi-FpJ5O>FD(R4ZL)@0J(7r zt|?y}v-MOlBd(b1&~|_JP*$28*{0%-rF*T3zkM&N51Jja%w|n(gLk}iNK;RZzd!MI zO#&&2JV378lYJHol83bvda<;QoVpCEk@iI7n05DOJb}l)8D0t9G$%C!duDMs4m7co z%eU-#jS4C*!-?bw({64vnR)+xY+9Lz(Sc8*vF*>lUn{znba4f42H|S;kr+a2J#?cF zc_Dc617e7*_I_q;MHd9`m+?7dgt@=n4y;+=;OxAcs7DD=isywfhKbz+AXkw{govKczn z?&X$+em#70E7AT||OMTq#3Er{+!ewY{$EkdxBMnesV z2nJ$zA3TW7jba)l(gpESL=1Z{jszyn==LSJ#ZWKXS%Akvz+*7n5k|Q=n`=pi+D5`0 zlyxLBl&UC~Se9Fgp!&7tYuH>e3j(sNR!Em1Sk|5a&Oyd`u3N~FYp`LO=CHN#u%(v->2h$N}bigFKAW4DH{};gq1aUMlai*0mXRa?F zOfGgh_AfJehKCnJEc>8FY+yAFW*-UDEru8{hE$AHigCFmW5|pIC0CXiG0XM(%2q!e z>i0KUr3t}OhdVtdx?NaH1-gu8WG5D7p*x6reg_pKG4 zE=F$7)AD8TQlu?gsi1qY7upcXQoTe=1;yO6zAORYAuJ;CW@}u{tX+T8giCp}v1cE; z*>rGQC32+&^6QiR%gy_;#iuhu`wA+Axh;aAND#19%WVNer0|VopU}Q4_9BCpFfL3N zyiWv0o`P60KYj)gPihh^^5Yr0ud^6YlJRxwVEm$#mEP1Owir4qtJJKD6wBt+=ogk zS`_$;!FP+RbJKY`%UU=rfodU34TT#SynfC4bO~=ht2-_q4l=K?-yw1s(|HomhYN=e zceCgDC6&TfH6){WY*$0e!p;3`BHsYy6`6C13De zG6=S8IOZX+S8x8(CcXHMAI{*1viML;T2**4@{;Ck{MwA)9~c^2T9}`Bn}j|qI`K}nL!^ER2U)^mA@>Zktw;V#4s_w}B9)G009LkyId(8SA6U$wnOm_g%30zy*4 zn$n?T0Zcf1(Lb{okx?mp(kV=$!J`&Ia8cmP5ELeGiz<&HwzascviQdWZz?}vdF?3t-ksC_91u+8%Jrt9zaAyDz;l>u z+)P4qYJ^)!f;bVfSYe>K_Ie{!SUxGx>j>o!guc+@CsLp6P(yA8_0Ur~eDm;%IxA@EbW3G)c+D3s$6+%|z9j}jyl%i@dC zOQ|XRD1|HmCD_CbkE7_3Lj|cbw?cO~WsmA`{sJZxm}B3@uUL?WLaJhuyg}qP3FuDc$GLlK zmPF>t;GQ)8))rwVh3~r<35tcO6!`RlB#0v@JgdrEcspY1lB%M%$iWyEe7Y8yg91IJ z0-~RA8;$2d5mX_N5#4Z()U`kX`cQe1RB}!+=-C~>zXA8JyZ)jr`UGFdV8W9ZC!0?A ze}v(DP?zrHBYbB}8f>n|$9j={d0D`{+{ii~I$Z5^!{$DCa^(`Tn9a@WiwTv$HsOFZ`H>dn`!~?>G(yrze2h61*6K3XCv~1pm#ZoG}Tk z)!}m!#qV-MXUfT4+=FSEW)`%}TGek?UMRrCz<^w!l! zNpW0@m94G2LlBOsT=yS*b}_>C+?+!{JfwSb4No`qF9H-JB4(uNt8QiNVC?q*yF-#w zW*+>PpFHd)NRsmd<-kgAnI;2j*a9__L08FM?blqP&nTBxm+MhX!ha0)Q|$&8eWUh% z=s)_QEA$0ZDws7-NF^gb4#C$>A-B<0n+W_%`B@Joxm1TxvW*xof^Qzax}D7PmDlHT zK>vC0TV%ioKdqo-!0`P|tAQhFLSJvW`2xfnd-EDGkrGt<-4c=KH;+^l)QFEP=$kRPXmG+ie! zd%lk&7KG3@gfim(wc8jhg@?-dCpUxL{_jp)d>7w`2#@Sn8L;=Wx%*SOv3(i|02t0d zgh-ND_8L(Nz92MC|KGXei9oC@_Q1*T^a5E=(B}GBf%gUwQp$`a-%z9UST4Rl2g99x zP;Nx~U@`+SkeBJA>~PYdPz(g8BB!2L*`gp3r$6XD{JbKqS4l!no$kHUZJ*3($f$(B zk|VcqmW09Gbzd%j9C4W1Od_WC!DV}q+q$er#egs}{Zk$l`8)kye11b$ARJ_`|KOd-rnc0Wf^`J*oECvEb8EDmfBFC; zf~vuyy%WmZgiO$9b#j~x5e_u1$wAosh6ly*V>rr7zxeIz_(6ShYIcZd>YP*5vx`xP z*Y~8(262l|rELts`ym}@TU`BA_*Pf&Lo6bU>}w*{Gnc$FM`gNrlp8V1&6XJDD}nMy zzI!em?Frq9^_cs-3%SUxH!;^oM$HRiEbu!hya@79W(3l7KN4(#pN++5ir|{Z>mg;} zA8o|$L&%aoWW1(9kwoCjHhd>S-pS+3toT8qNAPt#@A;2;m7s==_?r%|-xEo$;XA!B z0J*CDmY2y8x-Osm;R?=0Q@}njK9UmGo8^H5z4g=0pS9OafO>`CVT5oKcg;8VYk@yU zFRXZ(tpFJ-kj8uY!I$oaJWS7LefMGh6D3E)iV#t<%`7D^j3$`b6E~c_HEWgZn7T5A z4TRA6yE}Os7J2(`^5ex#_jm9s;QXtB%#cb%g7m>vZE&f9%@6HsMb;)^YWbUJ%A~#n zG%%@W@IW$K&}|ETNaljC-~=+nfLtDUw0xors;MknDR$qG+cQ2fge7w!WILVloU*i~ zH$^++%LLbUf`<*Yc93`hsQRs3UIDvtUgltUjN}suO3Z{0pR6m|E*R}~T}l_|niy8q*7Cl_)r6c@g3`^&;tvQaL9#L}NrCuK1OKmvM`Fzcq&G@JX%YE5r&3zTn zHo&>5o-+3)w5`uam{?NdxcY!e(pN=)-qN_DgBpIW_G9_75BHC=+QUBvkJUapmx^mN za5lAkusT|`uc+ES@0qg>+7&>LoCseXf2I6?O{SVK)_z)oIzL0}Ox$So-;Ak=b0@>k zZ~H#9Cv$Jly&=)6ntv}w*``kKH8~mgguEuYC;ammKl3iA8+47-f5&!=u)?<#6*b84 zM5#G!i6k4ik5n!gGizJ6w3{s|Uye7e*}CNN``i16=ePc|Cf+< zU;p{%@D3ZCIHb;Y@!LHjtRga(Mc>!mv~k_fdm4Ddb6nUh`zD5wXzjaKFPYXa#lu{4 zx!m@a%V*C#W~H(;WWteZ!>Fh4Zq5x1UYckdns#_XlLi`9*@X~XaFK>L7{n?KnK7=d z;-+1tOXmhBs9Olj{%u>xw2xjx9>H)oUE_{@1Ep%io>vTyO3UYcAvf)KvU?(@8H!;S z{VUhV-}qj02x0Ad=u4(8vuv)`C@{x}01I02Wzta@n{vbY3x|J`e#hm@4U4YXa~R8> zu9v>l9#m&QtmJ}stMyeHr`o)u<>kIjI9xb6@rqsHUd!X9jc7?ra$>c4kJ1LWWk`8v zqUUJeOI_GG$p~iEd3Jb!4QG{+F6`vRy;C;hRB!CoQk`-xlp7`HVkU_!7bBPZ4bhZFz+@jCcM+8&UIj$tgL*GYT&In?7~Rad$x8 zP5RAB=&b8Empo=GuGAJ|_fCBLrghZ_bc4$bU^`v)Rn~cDjiPU^&iJgj$(CLjSw82_ z=X3_vKV>w^Y+kbI7}GF}X1B3^%!t(XU3bzEO4Q*{yz%YYyaFd-Wz>ei##odM&I9J-}t(?vOg8 zjw$yCRY-voOiDYARzn*z z{&&(+%vGN-Z@-qfw5q#Dd=YDNW2EqM)`=}gYpwfV1^ZhZ7YAcumltemS4-_bf6|Ob zwZqii^b$OYzTLDqJnkMFR%j%WuE8&+(5lrWT+oFA)##QYY((6Sbl>r*!TP!=55HZF zpfS_CezV@o^#5gk76wF%QP^@-muT3vgz9)PbLA(_80GyN0*59he`4Hrxt3Gu8`^1j zm&|kMoz=``lzYu`f~>sTcQ>_-kQyq%Cp`_7=`3H$9qNe2?O8%5(_QBkqiOBE98_EF zTv}5%Z|w#f68Qjhv!1b!@Jgy#H{WC9plHNio&bhL!CF~cNAWb*3!6;nyArFO@kBg zue78q2`U(0#xFRm+a9|~W*A!kOYcPLFfL`pG)&e#X4s+r%}P5$hmnU;Br&2SQIrCd3cg`RBv>$FSSKI9? z^GN!uK+*~AxTeTCb>j-8ODv>nGrL-wPi}wMmQz_(s#I^PM0(%P!B;7mdZ*LJ*0SKl zt@NPG`&7@neF?h_Z(6NXsLr7;Z!as58L5kkz1Kd^!Pna-Qy$BBMjVSqKUT#OB;MmL z8T&feKe9tFL(j(+48ja#zaw#;>N*h0P${ugy`dKPEa25V^4-|n|B+y>?WIZ#RAIJe zKaUoDXBikdr`B0HO5+$rseEH2I*TPxXAk(WxwwnJU?#>8G?Oir=F%!mXDBEpU6s&sVB2#q4Ltw5x_HP5tA{P+EU~EEIrl@Q+pY<;wy`_ zcPt1OAu{q(0zQVc;N5w#Ftzk&OegQMN{1bs!B5h3mp2f!bzKEyWx~TNojZHHdvuk` zCK)|qadzmkmBecJQ8EEWJ_~p)sA!ydx67AbEuG4!s=BdYU9ozcd35!b8q9O{n>+VU z;@@*CDpr1DBi$>@Rbd>BVr+oMp~~^OA{7IIg0NT;e+R}-{-2cT+LHZFo?SxEtKq|o zbe{RsS9qUp5B*=2!UoQluFal_8{Tn$7?GoQCx&8HhBf-k^zPl1)iuB3EebSjGZ1Go z+;yHV8VV=|n5ByxdWUJwx)yFH4(gLXGC5J z5$#XHvVLpfL^UyqA3U2c$b)UKy?Vb>qob(l9B=K0YYxyAIw5C-QXt)?UAD#E4wQ0E15? zRBfilt`xA~cD>(lnqwZ6_hcUL(yPkMuKBV==wdc^EH{OY)MtzT`$O0yH= z(KR_|x5g&w;Ey*t7@rN>^`D`d`SUa3C9}%wr9m$>4>P?^G*qr}fOj@1=`s^YU1O$^ z?hIKoYx;fV7W!+Sr;#6M>5pvTco=82RT5*lSpH=2*{XTH#7JUncQxl%*zG8H6SjM5 z36v^!x0um_wbfgR%gtCr#!IXrgbhF)y?IhzP9wo!n$giu?{rK<<3E-sEc1US-J5mA z>zPU|DZjJ2*zalf|3}lg|1-h=|KH4Eo0)AkhGApQvo?nuLbf?m&7mAZ=3G=073%8R z$uZ|MQRYk%Qt7+{a!N>Nbs2K#Nawn`yubVW@cjq;@U-3bdOcr{$Nj#KxF)8cfvh_t zFg=NJqEO9EgoaX~SO7|9jeRdf*aLv}B8)v1X(N*!h%}uv-&6{;&f~S)@PGG?+1;)t zEbw-|p%aOyHU&CqgXgj!aWdsihL747aIMpKIgRp+;Q4|6`zfOm*BTySVMsHSPDrEg zxDBNJq2b?)5g8IwR~lvv=**`ZY`~o=cvj&w2YY?zXA%Nde%nuIo-9_+JV3y5DSXL} z({u`)>l9V-)W-W1#npaLo>)MamH_=hVxw4ZLo-_Az=192xoQfd$ljEf9m~sON^I+~ z)-Ce^X%Yt19iI{2lKhH~Y#ZKT|wPb|rOi&AVx&Se5Xve5>RD(=_=bOnIXa zc_s4~ZIv3N!Es~n5kdvdh~WVd&&FYWDNtbE&!VtK?$@2m*c^(2%iue9uP=CcA<#BDfo1m$pcqEQkCllrdP*#?(7Rs%Dpf0WM4Pa8b8_VwVu1l65>qFh)5bF^ z42=T1V3bA=uIJfL%i{;Q=h(bEty@4~dbB-`M)0G%+XKz&d0!q#oO?xjWVYSu5^^Hf z)h5)=jVl{`7Mo`Ur|n^QJHDssj{rf#@)Y^;?a#Ql5L(q*r1i>6YXdIXE5<5_E8DF{ zc=K%PvB4RNGOS0Cz5DX%d1YrhLCAI3r(pA5O!>;~7;Pqz+2$=`Qu0Ldq=(gec?++R z&*Ab$4B3B1tmLyt-rVEpC9z3K6gV;}E_OA#kM;~Kp^wnI`P{hJh;3N9?2izgJPv9B zkvH9Kbk(gey#AkDueaiZerlBEb}Jk+{LlO~=%eJ8hf29}s3%mrc1NyE%9L4c;zq0D^9av)fgU`(DK9XTXZYvQm0fhxNC^)>Hyb$MWCJt^ znSA(1Y@<-`;D^OeLZc(O*6<~JwuDm8*gnaigosCG=*|jrp7ng|IhykTr~0Ps{>|MW zxLZA=>99L>1^^}~G0_cTPv+rUMv*so#N=mLxpeY-vArC`fxnViS7A6}KrGSi38}G#)FB4xwSdDKAa!DMISE;TPL`9%o;!>zwSlaCTM<8L9gMRF z(Zy=UlGakiZT#46Ke?pocH)NonHSm5`(l%s$g~xCEP~C}& zVT)2KJMO%;xVvI8lqf-Qpv2$mI~B^#=kp1EB`!Gru3vBLLBK1A>z%N4e6HATP+}J% zZ;|Fzn%`#T2KjcCW(QKVbLAP}F6_vqTi46)3O(qL87_CFTlNBgjh#9QG~=`i>u21_ zEr}yR-h$9(Zx1vWgx4+4;!C*aa)H(uMTY`jpcfAxM6<0|&>R+D9g{er%q>Q|WM5|^ zA}{&OhsL>vP$T&x`M|MD=(Z7_{m(YDSQsru(FP+Sk8aU^;ykuB(9By7B@GT+m9&`u z8IN7->P=oC%^Zqf;F_n&gCk8IXO)HVX?=fa=B)vJ*=0=J2nD-FlC4wnv$nOgQ?NXC zQ7ow;W|#z%@^tTn>9OvfJO^|nvwUD+I(Lp;M7ggP9n?2 zRNi9xtsw3b4EQH((P>UX3>bDI`xp@QAB%_w71DJPla&$5X7&AyS;|G{OD8LY~R`8#nkxi?M!f@EHPu3ywxx+kXxcF~ozQqu&5oKoQWa-YQ6PLO0Z=nD3 zRlm3dnZE$K*cezB0Jof?fJXBi9kNh|eGtdsT6yp+e@f)7Sq6>rvu;2_ee2^!E-9mEgP4Q4&ve7e|&8YGASP5bI%W(H4!(8B~(o9$idcYY-SR>Qix7ng3q(*Mc zaj|9iSCbCfO8lO|mVNXp(eYlA?c_pRg|W|F2X@TyoL#R4$w?3#x@oK=P6EItZYK=sRbXi@ zL05K$`&$|Cw^jQyF&2siYTwo9nbgVnmc2^`&o*mECQ) zE+)g)3W|?N8Qb0T?MHb5qdGJRFKsD1Dox%5Zet@HZ!tpv+kU&40VMQi*(u*wnAhVomIl?0{Vs>9KFvqU2qOy*s;kJ|!zV7OD*ilG!6} z#?bH78oG@aEqF)Kc8s|C-ZRs1G3n+N!Doj7TcEK$FFBIV(wx7)u7B)*SGITWwMu*Z zV>|Dq82Hs67}`QJOWvkkqTOVwRCl1Z3BS1 zZxyOZbMohzj#>I1vVjg-%i;b|^-E6OXy5Vv{@wS1(4Bk66E9jQxAr79$@2AKj%}7HYWS?kc7zJw~5M&0X?oWFZTLrS;r1@uhP)w6(-ltJ92!k9(rsUR;;zQ z=>8tlAN!!6W9Jv>d;dE0 z)T^t$|NFCU?FmD)9Qrs^cq|Rpu;qAsS}9Ml{^VUVBkfeB{t*otjdowht7Rts+~L8o z7C2zZ-wS!_?fQnU8*$V4Jd3O4e(tY%_EMqKcUM{1w3niA;qR@n1le0^4+R~Z8aetV|;YP?z}@? z-d5gO=*Vlb)or?LtB3=GVZ%+TpghB%A|*{Qf&n2aH0C{u#1Y<#xbsKXc|Ut zX#UlpZ}6+*&ksL+by8Xw{5oU(lHK5$k10dLsom5er!Q|gv8ba9n{5@TTcyP=?u{v{ z^-;zY<%YB^6$SO=dB7@iufhu@o&5?NMeNDDHx$$%it=$yM;CszVSL{T+UX}@d9vK< zh`&eGVFn)v)2J4V>9~IsY+g7%dSj@RH^07FbHsSgqn?I)j?hga9rVDZz*~OTYTo%Z zjLKL(Xxc>cLZs9uc=dVUj*Qp@?mjt}#s{RW@Xi^PvTH%)`Gy1a zpot@x37`8p2YHKLzX zAl8z{Z+Sk&0$TZhxTrXur;4F}u79}1;2|r^c9aTB;TvM(kLB&aFp&IudZ9F3!JvX- zl0sNQhFj+htw?hZ;&^BmtqM}SKWfSpvhAMvKW|J0Hy&gdps#EwZaYzW_R-;oX}v5( zv#CXuvCgUBp7bnYI-=mf9|Mivl2`AusnA(+l;$1REYlO;z>9)t^pz&XU&jP0VISpf znwZ%Gj#mmEnwHy)V6rKTT$Q~oi|UWxYb1}GoO4TAL1sl=_)n;{J4Ln!eq*!hP`Olm z+Do3dHkwTs6%{LdrfYGBLiMCPnUr3F7>Z)=X!D08c@cHLjm{K}AkKz+nflG9D{L9} za9}Lx5^^8mz73X=cPL~i^K(h9^GXVcs<)o~ej1N`Cd>&tO>e4*;^|}$svYr@M?5f9 zc516BIGje%na8+29v88bN}BSQ1`X`$=b$MiL`+YVYvr0qZlJW!w`b79fzdx=I8{ja zm#X}F?q{wWfnGekwuFAL8RY5KjJZsn{E;m1jv!lv-Nh(&(eOHfQPHWTlM1FGl(WHq zWC;~iGV!&6O0bNo(7WJH^y8TCDUnBCu2D4pYsNfetw`fGS&0%GS`aZBjlO39HAP)< z4xWzAsPx|#S5jKr9A4Zr5hWKuGt`N}@HG1e-7UL9Z;zZ-xt4cqBxOr5lS^+bzwzMs z$5eq%#JWbi{_8RC5w988ndEBy+pdeH6{WeS%M7)0al<=beaW|JYS!bj-E5}(VbiXc z1bK~aw$pf6{G_XzmT)N=T$g`MwJ-g}w{kTOQ}<~OqO zbuq{s#)$m_WiGblprK2|i?dbF+>VijSShQ_YDmOB3YDPal0eP|)Le?Vx$9Y!`o8;p zk4qn`;@9kR&f!XPA=g=$8n~zSqmCjs8wsY9QJ*xrI_PFe*GvX0TE?bAl-&A}m7uI` zp))?=PVwcn4Otzr_=1o@8tSfNmPPpEvk}Se8dpkQ5l?I}3*uoh1D&qJhnx@)#(=m? zRyppk+6%pD@WyoZ3)H%d0=<+A)0}UPH*uM%+d#aBP5-Ox>i= z1MN4TySmv-Q;L{Tyj!2sWGg*RQG%Djg+=xVoQeKjatsqr+xn(8IyE^3>XDj67X z-jTc)$ChPFXL#Q}!yRoTOA%M`j?SE_xbIHenIu-Be=}|FPp=+S+ zHz~R5Irhk!wGs4}9l3q|%GmLa6#5(|h87~$b~>X(?B9Hx+B=4XVn#~dticS6W3b-4 zv%Q3X0w1hX;gXlKK|Ke$H=PR*e1FoPU%RCezRyZ)1cNpvm4cu38CZ6+6fLs9)kJ!Y zX!fROS)7pt%m>7%W}JJ>0g=ij;F4zcA$QBz(n=;ua^Y4D+T69TZaDmeX5DyOGV#k` z;;ucJPx}2RMKj;Uv(f0zjYyLKrqgn5*tw3~-%{EsNyFRD%Yx5NsTW@s(us5@DBJDw zsz3O^(4cnnT8`u6^jx1Hr#Cm&wmbCugES)^aE?km46vI8jk{yu2Zs)A$0GhUbOs`q zYdoFbr>J?EMr$p>y9@`V+1nR*dY|A5SHHZ2dbKR+(UN(3Fe;Q4+kwj8u-o1vP|eyw z$68hl8No=DWAigPpX8LS_4JCja&tD3j}xWCSD5Ns6-&8Lxf_P#)a7ZwMFTvdic0Vr zLJo2OLju495vK@%&NT_?pG?U#(Fy~on|7L>kXG?w>NF8*nhThQp+6R&M?Ez&MM04q z0Gp{9EkJuPQ49e3nx{r405drCFpPPE&jF0Wf`{bSp$`HWV;K9^(-p&3u0Wf%giFJa&6%E4FHubhahgs0EUg%Yc)3OwSk=xTFg=g;4#ZgfqBifNn zkFR*$SwZ|qIyRb$ax^XMVanR`fA`{%EzDsBdG$k(JzW6AnF8!A71j3My$x`Fg&O}+ zT9nW1yt^fWe-hBw0D20X#iI9G22|bUPkJAjNGJevO${3^f)C<#dhj&V?#_i#q?9F$Q%_WRYKrAgV&C;?yhHUYD*Xk(oaR)< z-bW`UXo7Ylc~=_>bG#SZZk2X0*^_mE|l3aBGud?aR3U@ z*cR!p+niXU6n;4uTPJ`QQL$4}?e8&5w=W^#QqM(!Hc9lHOhLe;OZBr__JsI(D%@P; zb@woGj$=2=!MXtu3bA@(DH=xA=@rS`9Xd(?M2+B&Pj*b*2W*oFenP5aHL@?4qWc7Y z-xQ`d#ni4b)vH735&?)404#>A-CnA#QlcdWY|9WJZ{xAAv$5DUO@;+J*LQ-pgqftE zW;Zcu9CT*ul=ei>92e!q)Jp(_p1|YmkjlZmq(dduVN{Lq*1eG;lwaNnnMH%_O{$uD zxK^r}&9o_Df^YTK)K6#G18ux`wI1)#;p?cM2m;{f7W&9kO3n1f-D$0TNaIcGo!?S- zp1Y`zk-@-asvWPGHL5AfcQx(z7Q-0F7 za_{;x1)45KL z$AtB^W3uu1PE!BRzPj#C4NRly`>Db603%V!&aC4hc~?W;4C{AUXutQyo{?%pgY>^k za~ttbv+-IOq5gZ0P89%ABz12Rp;`cOlOp(w&)CniKA)6yk%7L*MWl~NcZDZuD~dx! zBiE#n>r_1u{;-D_oqX0)ibuYl(9{*^Y>*3^zS5*jY`zFFzyZ_;X`2EN=^UQ~{C`CX z+8_?PE&yAPhl5OX(+zb{0>Ar92xAUlL7-(9h{0GFeW%NX631XHY77<0SJ-1V#7Sh@ zhTt{tUa{J$gEKnElq%!)?S6-f6b1bup2SR`PXl(iw?q67Dmss?6@7fT{rHuSP>ql= zO|Hn%Gw0BML`|Cy+wz&$Z%&8OBv~zsY*IBARShbR!{{rUEiZm+l*YsjadPThDpqar}06q(y8so4U@hdbYBnL z+q*ZKs+b^JFM^>5b3*(M_O+xQjFFc0UfHYn&JtR-ZT4C(;q&3^e%9yR_eH?_UGvEM zfWZ&Ne$Do2{%3nWoI6qmXSM`f7X`Q%?AOs(~DnJx*u=4_~-6H+oy*gz~ zxRt={9u-x>v{mFVy~eL`1N80!kVL?}=qBVGz=$!5Fy~~61sETy-kEJEWhU}SJhn`P z6yhycrRbk0osc5gT(Ch>xapMcxIl}5&otbwo;;^B$5Gq=HUGrcQFyrMRA@o;3h(ss zA!Zu@c^;y-C_O>~Ah^`xC$Z5RZCC;x;gw1~07%d&@%w&VYeXJ(NIEmw4n7A+Y3pQX z2-aHy9ruHkJ9|hK`!ITyn#g`lH_wNJbWqM4RDghFU)eWTe%0WcJ%_pO#48gl`>f^L-zZsrwvF_Q00KrTwqNS4o5- z#~)UZ7U!m&Ru`0?%Pyc;lU@lbc+$TDe_h<_IOAUgFctuY0fzBa|G&J*nDJ~gYbK+sj zq>c^k=NqQ2J?NMhyET52P-MLNq``-MF$CVa730A^;{GtP`-T5*T#fkmYRs$#|ja+*SQP1`U3A|*t6Avje^N>zIfM3Efe$i_%kEg?>h%yjG7l54w zoq1=d%^G=s6R)>{etANH;){Cy7OaHkBw459Px=m?5=vtgJl2$q;i7#W6AQ_Z<)_+oI!Yl1lpQ z_iBW!k0|?AeDw>h5Lx9?0}TSK$F0rQcH87qE2CNDad~wN?n6)Kz|N)YbDU7UoX`@y zchtX=Gfod4cwhU1Hz$wikeKKV=Jg+V^A4t-b`KWmp*zWh>oK(p{4l!(?T+(W3V02_ zfvCqQy&5UJ9^j?2Mb&Ba(}r@GN{mwX0*JB{z|)zrw?#$&TgyKph?mo) z7;=yXCnkqL!cr!BfFnGd2=~JC?iRx9EDL`d3E^UG1CHn)K+!yBm$S7{pUE21)HOy) zBJfBdzz7r7-XhgF{U@Qa_oTg{mLEN2yj?S1Fy$eg3di>;9Xt5#x1-%>MZ4CAXQ-7S z%pj1Vg4VvYv4#%c~!ctH6gyB<` zMoV?t;Q<4wAG_VV2;0uzYOR6+fU8I5tvy#}JL&C3p?J@!5fO0Jyv#mrbu{H={3Q)@ zMki*ito2<;f82vQvzM(ZPcOv|rB@=2Am~e>{n3E4-^}+}g!P~JPrl7UlX;*omJ;Hg zR80kL|rZ>toTs&@{14ywQJl+uiT86U08T(S%u3 z{jYhG#zrJ0N-!v&)XiTPvyaaM686XSEw7wQ8J07tXWifY>}%24_}Sa!Va8|gw5!tr zuaYMw-07RJ%;aNTdQp^ zcWo+i1V%)IwmF^wf^CAI81Amx@3VJn)X&PfpW(0(VmNN{#4D!I)>aB;+UDDQiSa$P zm=|c9%ct*lcvF)40ACD!Gi6&A-c%8=7Q)Tl=9vElN+^kbQ-Ci{Q!KWtK~@$yEP5^Z znK!b~7V{@B7)yMK9W`7Z^Dgqr#I`=6RSog(hQTB$eHeLm+uDry6tnlwH<=JC zRvrRuzjf26`}(ptiF5~krGYg%@1fG&J1U+yGKAtqM2w?M{K)wY=Z+*^$gT3RygDDP z8}TY*HRA5SyMK@@uVNmtwtjzl`1k*|{--9Cd%H(}D~i2ygOcZedPx^L=;lb|_tA6Z z%^#SsuM59t>4NN+Myi8E~-KVX&`-i#<8^tP{%)zd@Vbvx|&@=H=x zUoV4$&>CeIB|IYEkEo^Vts@VyliMMPT$^y*C}%fIFjlG0nre2C#E$gPj9-S6*Zj*q6U|gT`JawmUq`n@a0SZTOKlBKgehu>30qb#*ky z`BO@+PwbLKGhA8e4PNd4c%`dwPhyoo6=8+b&XO(fj#+_@&W&PcS#E^SHn0Tj+k}<1 zYy+aS@N&f>()-+fr}y|=|0tld#SNsh7@zCyWf=d+Ybd`y9p;5?!Ys0t(W#|{$x%R^ zmvBB|Fc;SBx^#9Ov_u$8hb0l3j=W(rUh`?Fdl59f4F<%iF8Y4Qavyf3vDC55Klgsh zq)rQK$N>_{NbC@+H*6>zU$E1Rn^e)dS>t~EX8GAvfqYmuYuCL<|MAeZc+Bm~f@+~={kH!#7BO&?^mx|&TR=*FAi-l`#0++_;EKiO9r=j2 z@~XdQb85ra79D?#E0Vr8xg71s}7dpx@Cy2 zjdC@qI(hchY*sbYYlPH$y&=MD1bvy6MLbe@*0;Z@qCdAV=H8!YXTWCx{pG{N-F-fj zO^cN+)QI05V{(kQO_3t$JEFp^8-YXe)vpakzUPZn#6npZQLeCg{iefjk;<9$8(IHh zaPv}RF!|w!f%cuMZy9GZT}RjMb4mWK9X53B--)(6!#ze)KtL>{OWEoC*Mcrb9>Czc zw~dm2{!v->B419q!9ytzc^;@;6y-WQJ)=qwN9iq@W?M{(Ar&NNVO zeDvrGz0zst@fb`Vrp{?)9dvkfhkz^W$|F(>cYz&r^57_bOPHPZ%(JbL8`;X+iBw3& zAW$zWdEDY-js3CdQS&jJ3_u3He=#-)-T2F`<|5DUX8j?}E4c(Kq4n8)tY3YZ__%K} z=<}Z6(Hea`^n(P-j!>fGRK=Rxp6taC4h#$DoDixwOl-UVSP$xophU z|8H$aWsU#ic-*7Mwpq^|q7kZR{z&we*G6zv_@Y!dy5{q!%eJr-a5BTKIPHa@#m(== z?rFfr_1x{iw!Q;#AqG0@xj9bnMQpFe>-QGn*LQIJjkNbl5L?qBrH*e!$-$>%^cJFA z4OT9x9s_ZIEDfH#n>5gTMs3)wC_S-oila(TZ^7CR44ERYR(N9TiUz@7A+ z6EQnL_9|By;Zs8=K72m08VzAqour!b>0W&I5L}t?0YKiI0gg({r_I-bqXZUhprR5<1K$tfg ze1{zKEEptX!PS+~!NFeVtiai1n>X#AdzrBHgh=+XYIOy1^A|wjDA*L+rm`F+V1WANU@mcBk45V*QQ%^_;fyO}b|e2YL#?_IG|kxihyme* zsC{L_TG^m6A;p8^x4dy`3YV`S<9OkW4Te-#dQU$PQj~)UIDpz8W8-t_s(iY}3fw@j z292~n+e22%s(`JQ)#Pw&%dKi5Qwzllh_w{Y&| zPc7&|Vns>u@N;Z3V0X*Fe%TYmZFu|)SU0KEWv1Wv`FiICNSC0FJVjRZ8I(z4!2QZ< zUcV`A-_^=D1aI@G-p!!?li5AJnKGQ=FdLNe%eY!-RCz_UoB`HDsg%2_c~fK~Hge7) zsA#Kw!+~>fm4AH!J)VYtje^xMKzHTP4hpJTo2MSIKpPIQQ8IX`u_qx7lDm<;?f^0B zXFX@hWa?f|am~Tfs;6?*AD%*v-!OZ_0N?D5c=f#D{d&VMwwgwCQqp>hum6_A+yY2| z!`Nc5nU6W~p3o5%_phs%D;t=8IjvjMDuX=dbc#xApF>xm&tSRE{lq$nx_PIf`Q>Pt zBS~9YqjLH&=Q=s5M5~empk*be zje|h<;TeyFZabr4FXX_bQK}d7p(TyfO;VLOg#hbqYloBf*Kt&m?o=zBdfh# zfG)Kg%4-v5y3Ulb)MZG;>IIX<#@Os$6={@NH3Kq|4cjbH&E4wVPRUknZ3HECAf85@ zjy`DCJPmOPbXX>X*E4%{4)#8L+3n{l1k>8jGpayFQdy99?+u)(#$y0&Rz3l1|0PV3&-Upmuja#95d=GC(9 z2?P*c_Kt{ag}%2sYFMG9(T-{S)yMwZ#>vhL{whbGlDb$|y5&?NcU&_{7MuLJI!%WB zT4?w!RLz@)?v2~^Yx?B>gEpR^g@k=1@9AH#j-|q&>;sQnTc&-- zW-dZ=UGMxmELSAFcO4h@8c-navuJ9C2K;d3Q~EE=sob^F17TFu{Q52iVg}2dZ@S+5 zu48^>L95yo(p{or0jiHQF4`>L7V;9D57GXiqkDyo=~;lJuK0oKClP+41J{XN@VI-M z&e}xBL+y^A3_>q&Y%}$ndXqe*;;lM1edu?I+K(vE9U=!?DMY|Ky;@qb*$)={U)@jkqQZhWwF3BXjn7r@Kjrr(AfVU z_RTn=+O#XEsYG=X4%7W?o#LievH^-sgFVE_e&^JS-$VHuDt0$UdKm^d(Pg)?(SN2P zMU2rExLWxF=)rVgwRrShs74P9lq)y4iH7}USE_Vs&kuK)lg8en>9heB`!xcaTH1Gq z0=-dEyO*HS;MQiS;sZ*LyHw(H;t9q`1$whz`up?? z(e?Gjn#M^t9hJ5XO%WL4cUB0Ve0E?p(L!b0Ee3RQ;rZmWZrBNx?nam9|KbLlp{w05 zEQ8fa>{P%*Mv(cNO-6%X* z%l}bD$tj8|_*pN(o(dYi*>yPzx(~qk+KAkbgsG0m?J`rFaRpgW4?iS>b~eL`-huK< zu9umB+ZNP&-bFfmLH9JOINvd|17=7xpk9XRZ*kzF5-4c%#bvk}|14}#^Ko7yh*%5C zW`Ou)@VDOH?@^TR(}KEw)T*m$u~6eIpDpPPo^ z$?*zD2GY>FTj!iLpSodRZt4!Yrfygj-C_G(da!c%Q z>hr>@8kTLCm5g*f%VU5u0$>Eoa-Sv8ZBN5TQQ*5|_3sgDcy#0yC1h#S8F9(zYdEy9 z5#fSYD{llHH4PYCus&f3;;}&wVIO9;-sdeqHX5bh8EUs*1X7!#4W=OeD?0NcUxNhf zXs^Y=eOhyltJd=!415EV;vg>?U;f92OsK+27;0P7YMU%r)wIk&4xW!fKi#{~ z_Z?c?n|A1?u|EZq1S^}3U^FDGjBQZY@Xu4M zUE{8wyB2e6IGH1uI?1 zS!97Jpg)k&mn#^<%iI)sBS zZlpZaYrPV@N6#U+xJh6UY+34%x;{JR%TIi6fAWdP8-x3YUv5v}kTU4^*%+&ok5dBQ z>h9?t)<+?_yyeK-DX*e}th35RobIGtIaPyL(9C`}=)#mNVSnEF_SRRAQrc<}m6}xK z(s}dvd(7pSsVXD-HRy9nY(eUW7e*H!cZc7|+?3ZS_(GcMKLPmn+e9#N-<9ZLuHwb& zo``$2IB|tpplJY<%!Fj+qs{l!y0k{Sztgz1_hNuzdqt;1>q>*w@v@?Ir172$u5l() zKKqEFJ>iv(SrD`-W7Yrhcx7^}b;5%hO5nB0t-f%{u~&=56Hm9rW8f@Tc@>)tR|WMT z7F9_nZG#FjtYFa~76ThJsP!C+4%_i{gAS*s^)?)=y5V`@FARCLB!0xqMC;(^=Q;Xk zO#KzKE23)KFPvGUdLliWsAF25Q=Pebaj?)ftWsMaK{s`9OPUSvB#MmBAN66nx1S~Y z57i!<&daVyTCUAGpHT%aYd%QuZr7_GMZ`6xPIY=9Oph;mdn?V~7^#fOcQo(x?M_Lk zZyy@-Hi>|&ztOog7@*wHw#>wpGW+H4qdl<*H~2NELu}9W<;-_*qj#c-^BD#lg}Qr* z;~q#x(9AF<#vt|K-PruR$v&oOOq7NaYX*vmEPIp1i8OsTtQmR2;R8C9z1e#8KsxwS z#j6wQttkKGN3e=L$?y1s%VjU8Zmc9;`4I7v+}UztPshKpz5BQCP}O)G;_&95&-pP? z)v*h_%eC8`XG{rQBO_Mf@eQTg3`TuQ zNyG?M+2!=l+7xY#39THhsIR}2^)qif4ArKNXT&2@r~DJnGcj;u><-l#r3TYJ@7S`W z1#mmcbC!u~IBrZG!c@0sD4r{MTkBcvcHZp%l!^58I?|2(UA^q^=u9BetucSKE~EcI8LHd+ zp>G6EgE@5W&ZzUxs*2=`Z2S3VnZlX~gB{73$kUrfS0=k2D{h}=b9QNlHpT6#3XS!) z%nS*qxTBQJMQ*4dFN9I}R~PUR`+a3}qspyg&o330efuX1cGGX#x0pOyhWEgXpRUcS z+81JWK_lh^O-m_h#42CVdmod%^M0)&>25Q$%$>niZ;4X0Os7KQ8Qc$`9HaWaVy(?) zcsnSkrma-1b{(isRL_~N7pVQcA?p-H3GJsSs=;54^uDAk8AJ+hBu($a&kINJvJ*&p zuAxSu(A(XW35tr%0H-jRa|{l5gl*THfp}LEMtdaq7WC z6QHG7s6F4P%fI9xhO1rPgtF3p+Rkz#>AjtP^yW-y<)IEEI2Y%(-@~rU&CLpt@1;Pv z1SmenUedm_gO4XL3$t2cw6?BHDE4IcStya?PeOf1$VC91a57F4_BHEjWb@g?Z}OQV zGe&)}n~+a`nl!KUzD_2k=mghCqnbeOcVz8pX^VkFr@dP0!YXN1sG>gYU2GHVuM$CM zW`BLINRh=_BYq$KyEVwedf`feyg5*7^qC^?XUy5Kxh77Rcec`hzxJ?|f*OHFiBv;= zQOX|!9cyHX1#xpQ$!1ByG>~MG$--sDhj%)Trw}0L-VV>Sf2OpoWjq;w8FZ`UF zZAdm(J9;}hba@M->@dg7_3>-Q9eZxLcUI~d=tL^1&Q%5yX~h%6+=HbX*fs56UT$u) zh?3qRi)g92r~MMT`Yge~(E;QZF4KN_DV@SJ%G&3U^JixwVzf0ZBjA@qZiAG_+nc*% zzsWoGmke)fyssTxQKk9VLJ^qA0|!nvp#?u9Pq-rT6V9ul+dvl%zj))4E_$cl;WZ_D zR3Y=xC6vo3%R||Zi7~m48osAMH;-`k>|IX1a0Qo5z4LFxMt1P+C8JN=CnE)z&1U_r zpY8-Gy2!JpS>I~H)1c~D5$;8^{_orzJ0vClK6*0+TH@(I#OEd524d-)vI=c!ZUSmZ zt6^a)+o7>drg>US`6ri8>dqa$==MfCuV%#QEwwl;TnrD{EH^sF8Od-nM6_;XJKbgG zc@C6dmvcSwezT}^;bXex^bu5_6qaHigZkV%Izv)cIU3a5(`dk7^QaE?bfclB;L1KS z7{4#yy)64f3yvj0hPV9!}SaDKO!3BhRq93g{Ny5XjM2XZ8Zkh%X!4l zv8LXiA++VcpXCBjr`$^?P9=q}hCRKtVw=PM42|$hyK|4hFBxIxotUiF|INt&xg%0uwqbab|3c8+)2GX%hnropNpgVyZ zax0lH=(g4B$&1SJYxkr3M>rr(M+CT-=c@?{xxLQRN<93WY8p{8II$z!9(|?efD!Lx zrNA$~$n(VxiwVsKWs1Pln-jr8gSUS&Gl|_M`7d%8QQYs5#x>9VUi#gfEjO+<=~x2K zDi<5Kj6?pY@pl|a0ej`zVyjJuy=#g2bGMqY zxZwLYOiFWO28r4=Y>zDI1GYEj5VkqdgYk|7qlMgRFB2*`W8~TohExL18M<39SRxZ~ z(Wt%qH)OBrwyBfNG9*bhn^dH#lz3W8YvlU_CDBs)5U|IEn7xYW9rXy)+M5TzW7fqi z{u?C3m@CKE$Y6@yGiC}@p+d&A!{YNDZ{=@hg+eF8Zl=~jSG+Zry&cDKmo`|6t}*P@ zU$A$Z=Y7`-gUMO`>6+eWtAFO%1lcRTF4GSrD|$Ba_mQfR3PbtQ*oGfJJ%SoE00z#(2Ir>a7a{-};Q0OM-CM=jL zO)DQJE0DcS56Xz9_AUoN$ciW>x~sbS{%jd*!;zES6D14L^7k!t9s*^(mVh(JO$R#! zQEbIyjX91Yz9 zX?MZS5p6!L^iF*G&f~c|2Oaq#je?ueXK!gYxUu-&a!N->bL61HGrc*7Fj=0iu0duB z*MtfQ9akdQg(JOcN-SusJudUm`N%;drLED{L(&3g^+J5T;@=L6a0Q!viHe;-o503P zuf2@jCKRsnE~I!D?_(*NeAN%M&x*e(+Wk{ONiHkMv>>9dM&FP0rmp>IP1b+X;xTe- zM3gv;p=ffN7E(@20%lu6y-Ts)Whn17ug)WD%1R6WkD~hyOS1jj0M1^bqN0Km+*=$e zj*Q{J8Sar5j?Byq%}ULTEzUGYwhTvUWu;|h^8wsurnY>VI4YZumX($HdwKr{4vw3P z8}92qzn`;)LJ;mE!*_JR4lv#J69g^JVkW0=zk=wSA@Zzoy5iKG!Vt7%YL=91X2*%> z7~w84e8&QGd!voMliRjNL9hXGH%1UFz4rJc>>XcgI|UNbaf}UsC3Ycd*f2U_fc^^_ z8P|DTPaw@bxE?Riu zk80<`%6(@mXMP7HOh6wdsDAV~v^ZI18B*D_TYX;&M-+1LZfkqW(cz7)=p-pLVVF^w z#@QdJzLWut1dJSB4O>KSTv~M?S(k(pO1^(BDHaP$K3Kyh9P1N_H!k<4O#~K-Vf5iU z`ehLBo)Q*@d|4^FNnyfiW%DFt7pFvjw{3Z2Nr+fqzYG@aU0XOj8i;Yv!39N!Yajb} zl#Yk_X2AE5YV#%x!eWOO6^+7odU>RZ}?TS5@PKJ2FZ@X z;#hA-%p5&>F|tA@cMap z5e5RF!*@^wr8nV)91)FkUqXT8Ho}vjB@94UeuwCg6?5mJ)5RV^P)130BfNLJM!7!p zlAu4Iv%WipvyA`=>4dL#Lg*tCw73$DwUhAu6agdOaO*TQPg!@tEGfi5*2=?!C6m`a zI0iOCGOO=wvw}#MC+P$M;eze0bI!L-22(L`>{od7dL`{B+}7DPsZ7rSAmQYuLgdK9ISe5{!pA%zlA;MHF8Jg;x>liX?n zqt_JV4WV7e?q~M%GGJ+4;yg(ilW?wMQM7Moc)_rUK@LBgFQN~}7IGleg;?TW1OH4)(jZv4y;B^98XqV>in;$5Kjt4^Y13@jN3 zODu!3iNgA=LVlX?aaYAd67+v(8@5n{%#O+zp2jrO3tOh4u^$F2RS)TfocZ5bm-~6` zD{PmNxYIp@gLIl1M2u)-pgr+z7=roR$nHIkQtv0jY*&P~`6c1ahoJy&D%p8hWq;1K7GNpp&&WEDK&;An&Ssa~V zE75?o4!~j_m&Met(3kRQo?Tfp!cpRRoKbVmb z%wUK;F4t`9&`Mtv?nWSMFpwCIl~N`A)e7H(fzjhM8?yv89N(?Ncc;(`OuISW-V!B{ zxmgSkaw^$Q5QHqzf-%C}YQJLrr!PYx(z+7ms`)cFM_GyGMBlKv0g*I8VoTfV&foC= zjir)B4_CFfG14W$@)U*eeVs7j_xw}b{e&sXSr{z7*C>3rQn`L3GoT5$Hyz(knLHB4 zQ;Y-Y!wJQzQ?qF-9IWY0e9DT;M<8|T=3s@;vLsEk4P)6>e`rmx9e1_rS;y5Y@9m5$ zvC8LoJzHr~zB8-U^m})+#$H|Rp&|q0;NdSFsaC=xJxb1(Xw+TeyBH|gBlsnU=ZXb( zK7s%EY87_DFLGf2Fh$A-3t3`rSM#=B!FB|4PjuOiMOq+R)Or-YZ$(IBh_2RzlRcc? z(FMF~y^P_3YQ{^hq9wB$lB8(OVF9Xn*j>GX@HjjD@7AzJB%duPx==DcGbdlI+wf(3 zGIm}G(2f`wer*`s7@m1L{WR#=V7uFvtxO{ysOn++f0Gs~CIO;29Q5PLhf7|8bafVb9`S=GnB| z8?I4^BmW_DACG03IOdufchD%JtJXrpWB~sv4B`dP%7+!_j}`aA=?hSOz4!I~C524n zV^|RCFO)$*2nLL-oZw2Hovyh(whJ~E4F@I%7nX~}F(r`%fz>hnIOJ$BQ&WCmyN_BQ51#w?d^M#!&qAayL)l$(N&BOW;kV~U}R!al&+yD5X1b-X^Ef$71^V{f+ zQyYu~R7PeRQ*;L`AGxXiO;xl58#*o>L;aZgcApKyK_^W_T=ZR)gK%9I$t7EbVjXv$oLm-&T^X%*GvprnwHq4sVe(Qn)A^H~uNu zstH}TXfQprui(_a!^oXy3Pf8uME>c#Zl2rdoQ9nxwCN@+T%pmF1AFl;d+ky5{(NWv z4)*e+a4)08V-!Yb3$r=!9SGPCLN*ZTV`dB8j+?B(!2?!^`=lZU2S#cs*{~5N=@11k zb`^BJZ^}QnqZhJmTCd}%h$`vM+AU-b=j|C51x$!N&%zjuruy||G#uvlX0r`zb93wV zoDbM@&KPpf)8W16qoHb-vrWQtuhK>*;?G`mNnQ|c+aL_?5}+)FucSgJ;j?I_>Nz9W z7Pc_xW90((;%cdI?eO~7%RI1zN_oYZVWt7;{AOdj$iM5IqGs0 zeikU|kcz_Duv&lRHw#8p_+H3|#*%wm{=*t{lNqG5RA+ec=h&04wnwXf55Hc>A*Xd< znt3p!L*!mN-T%*hI&Bi!{p*x^ORzL$o~3&!$)I2>WKbo}j`dH`{oDZ?E%TsyQmLkP zS@fl3owYr0j+ra>ERzR#H%zogu@@3A=OeF72RC%a$%=q3_>a-d@T1Pc1Y!9RC*@qd z$L=4C&3%{e<4BP)V>rhxm)UPVOsnYHC!CMqj{bRHyBXHJHkdZRBF)G}>ZW0x`A&0# zRmSuxy8`DoqYaL!pce@2V9WU5le~7!`;4cFYTlewkTg7X?-@$7ykGT#LcJH;=wYtB3SOnx zO#iGhcshHwHq@ldJ5tT_F@;v;xztfxKxzY)#WXDT8BgX^TOD4Whtv>GSe zXA^Uh981@>Zfk6b^ml)6qGD@lsI3CNxVRk!KFXR6RCd5ShdZm4u6sh?Zrvw!9v~GHTP>eC*u0^Ov8UJAX;8cfRw=)G?fEiSO<( za_L0s@eOFgY%uv<+?@E*YFsPBbwQjO=yQE!_qbV29Qc9zkvLQJ-QUP2BkPtD!E0md z9@nI*fon*dFmgjRFU<45A3R3ZyO24C`_~@bDq=(2oErHwbN80@ljPYlcLi*2EEf>L z7u(K|7DMeOhx=F_>YFbok>$%NY9c)g&EsB=8MEEqOKrQ=h&I=TXUiN>Cc_o$bX<2I za@S2mn3RxBHNsTa3&xy=(6u#n2Ed2q0XI3=@`u?Yv#292iL?F3g7N89mo4q4L!sZ=lcb%W3xG>oj7I0cp*-i zIR4h-u4ZyLYHpm2bYUC2mR886-mfroA&d9IcQdS44@8bSo1WXP<|at{R7D=Z%+Y3L z{wA7}6*{P; z{934;aa6I@cW4EK}g#Ku6aC( z72LeoAMGr&rWL#)uGhck{QHT!MzJ4$1fZCxl5xru^Ey|V!r3*Q_OgC1Nc#*KYDndl zKbUbkRQSTw_|L-7h9C>$lIa2RxCT1Q;2yrF*MFBqv-*=2{-$9oc(>+~`awmX;Sn~( zwObyrhY?!J^l(22OIew=y;^++u zw&;ALkaRc?U4=`vr@4wYZO-wH?WgHTyGk80)?}!d37RFk+Ak<9xy(971KTNu)>J|K zFOwlAV~Q5%Y7Jkr(r~=HN8&tF#))d9X=hcK&WClQqF!iJN1U{YKA-vce99iD6{~(L zsdA9tjAwjd1|HYWt=fgSvaTk?*EXv_HF%W|{M7+>At-U)6Rr4az=Zb)Cp05(s=lE* zz!OJNV-i~Mby+a$o80ky0J(LW8GVo_Q0LNF|uQirBT;)Kk!TW#M zkE-b0HTmZs1nfADbgeeiUZ=Bhz%Fj4EHcE2*~F6C;CK~wZl>XB;dO{Zu7hy>GLsv_ zP}`WABW>qqJ2qC%1s=~YOH5lgV6)k&eAB0t2lJ*{uV|H4{e{POvm;__Nro0q$;e-c zshX<`Ly4u$h}8TAd_x>=ePRt_>j|*o7#o^=;Tw|vDJAYfBx-lY4x=STzu8z>6Xvvw(G{|< zGrCR{W+w0bKqw)qQ4wp@p4~U>3d5nPPqr@%R$x4L_Y(>=dQuH+_# z$U?5sk%w>|U#V|;{5K@`m+;C#>V)+Ot*mLq*D8}ydY%N(Dp7WY6*!^IxdL0=>^-Ol zx3;9~rs`TBowJ!vI&$*_O8e9>SfWlRy^?MQ>(=#_2P-S z#0{c=bq?XGNyYTy864iaqggF4F#yxPGRRJ<8LJ&J#ndmvk{xn(|L6eQVCBl0=yeqN z@imP|GcxU>()^^*#=3{r8-P}_YV8dAJRk|)qz9KL?h#Hrq_Ed zL1t(k(MtE8RC3R^8e;v_Yvv(w*wC#l;j`+X^QZgHc7f9?G!pqZLmcWTJ@decW zSLC3uUo2XP02kjlG2PVj`BmMESi3Q~tpH0};k6Q86HQV~Y-WjH>Fcd{DV2TZB+9Zm z?SnYp%=N^E3ceYo&+RXW-PH%c0gPSc>!e_C9nZD1&*n)Vkpc(z%hy~5NuCf|j`*l! z9DQs63{I3!RD!MNQh&4?&Gn2dIHMlTn-aP?IVvFdj)Dh_(t6H8} zMwrFH?$G7)Ms3_5PrPuVL7B~dU)u-#&kBN@q7 zO}lNccIT!1=7sQ*_kIRW03}Iw?M+?S{We5+oC}~T)}R#k5|TK^JNRABAcaQWu5?`H zIj$&7Y~DmTZ;cFl>?4S=OH_Bo1#eKcx7lg_T(|aOLqFflsxQS!4p6$NR#am7Z1N(f5=_H5?6)D0E%%X_;@*5~t0rSj2a`gY(; zXE)Q$*7&>Aa32iqo1$J_CuXsOPbABa#h)VL#NHLd);N%(q;-kHYdhM9(g9l&V!b_& zpyd{X7pW$T6&_f+iy7UqgJ%DNh6ofqErK|b0Glx54!uI#g=2FZUUc=Vc4nGooS7q* z&y4rYNw32sVYyCH|IDbs$>-LD=yy(1`;N(o&jYjQ#(jqL8#y)fqMDZZO5Y;C!}CNi zpwF(Y%|Yy|ySG1x8ty2Fidgg9%GF!onpkyyqWieg%_m+fO||GBeSJHP$x*!bt9&mC z&n_#`ID>+(1L8>l*kap7{0{@U zM`?gJhejL*{pHe0Z5E{+T10P}D}+x$^LG0&cMq`6oJCY%K_*?=9(CaBM6knhx`Tk} zg5hIMkJJJ9bt|;fB&dC(oaP*Dl_ob=3Wyw(RU0jI^-)6FHYe;mzixSW);tMqmeeWN zBSx?7YG^Mo2{U*(5VXEY{dXn8Z?tHy#z!YG*t_wP$w-aWhZawxbE5kZBxvLqh-;B? z#q;A8+WE8vx(|zQ8VB|y0nA+kDzF}|PpG1Twh6mJUnUJ4|hxvd(&_NE}i2+)FB7`6H z)-{iAMxYU;b6MjS6=LP=9(~li$)Q8Zk>JzdJ2dVLgr9H7Y?f}ju~p+^ z=ycplW*ecj!y(Y$8aWe!I_(Q3xk4jJJ9=o@^Fi6X4}2d6_~Nq2tfNoBGgdY{ZC0g! z?(yFM=`*>*Uq_r81qtrC9Kn;uxzf678^};+0H~)u4HFT=YccR9XA25t@H}DWzUx{Tj1oT66*^EO_rN0EQ5A# zLI4AczJ~geN8>t#&4fNuVifA+1t*fU4r|#-{T%L`ZRa{VZ<3>F>tyl)yx|4ksv?YB z$MasKYhUU!8>11U`NYJC4P9Vk5^vo^-@1M)Oa>L(`^5sG>#Ed`d;#Dr?nh09$0rb+ z1HfYZjpH78`1TR=q?+D9EdbTHsMd=GHqGMbNOSb2GpuK5@DQpt!x_Hs$Mt$T!6ery^O0Z5+WNyuXLRYqQZL0__1z?)~8` z8g+q)-ss#9_L<=ORDkTn?KZ3Ff}@*|-2T(P19guA?M{HKSiF!)xoujh?F7ckHSYFf zngb*plQTc9N%!v=aFBc;nPq;?;pu<3ux*ZP}Mn` zwu*^_#_D~@k$f&TmynhJXi5XmsKD_%+*Ph;a9j8MSa{Xn$pL>;((e(93z#d>)I}A zk|;V^K)tT>_62lPHbqMSlwJI2k=W-Y0K0HBJ&w`cF>+9qog+?eT5VWCirqb#daq49 z@kPt!gUnC>_F*oW_wcMZH2c-axJLbet3t+^k;}wQLITdFN1lJx&o=H{o{kXt5ro&K z`*nPyXx^`5_s>;cafqtg+(ENN<7kF`1;ud@7i{QcUspw1m>;Bw2Eo0V;oFb++51J2 zIH7I#NhAk`o$#SlUSLl5tKC;{{JL>c&+aYhi}DKiSs>nZChf|)PPXhLSdx?wQiXQeD5l+Zw?C>ILy@`&64 z(>(oYB=`Vts;b{@Q>I0uJWL_Co}e97@HV3FlWV^vbd_%W)$gp7&J_cji)gzpKYIW8 zN`(2&UB4~P5mCa=Q8e$L2x4h7`gj09e>&s3XFy=_sQh`{h%LIWptf-B?D3m#5?wct zq^84fh>LwbA?IyKry94@;0h_GpCY_2|84~~F5-x9em7Yhckk~|Lb!MUm%EK`rP8Y< zkP%!!e+|DTsl)V`-}e^r|9>gw0d+Z4JuCTb3g5U$%BldG?iliB{`bXGR<{4DL+6%? zeM;A!iuIONUYCy+fGx6anb3C`Gv#~5ea^!f*e(aPWuR>i-7~AtLa7oj%7`QmF;TC5 zQc)4|OL^3cCV*hpFM|o7Cnc=;o&2S${}iXcpcMOhL|$+w%8H%24@D=XjRYe{oe*^H zefhr@fjf=qEo<0=Et$_AU7MJowTGB(X_MP^>^wHHM*Bil15eY)UY;)hU5H=3;A=3_ znjflLHb2Wd()yJbHcWGaw-ENupFRKg*_AsPpZa{53$C}pWD3n^v9HII-s@8S1qRf~ zqwB%K{B@?}2RDxcad}i+ zo9uVhC)bsmVrNclByaoC4ACJa*+gA_>s7X`cYe35@(S*CIvr(smpqY;^B#t!L?-;Czcd54tznC~EF}s{Ha@f#iP^Hmv z^PR$_-{!$j9Jk!eeIp-GC}-w-((m)W2jRhIBhSWME!5r-b79ksz2ARpXT^1=jx?;> zud_4Z>W+V}?fIjVop@<=<@>$2h+|&t(`T0M4Tb5oCcPOa&N1mIEa8A#0YA2~ro=q3 zxb6M!Pl+C}6_4tOt^Mk)neU`KKd?nq{G*D_W^in&hTenpDN>mz+rYuU178%__imcJ z?~$@9t5qngd-hOKsx=Uxn(2aGtw>n|T*@mkM@z-jzIRygzSk+=ku}iKT9*U3@N)O; z_!6{7{_?Plb;!s)XXWR?zI1gzH4jJ)NCS`22r$a&ui3iDuspfVrpD6P<85PKRj8}1 zzcwML1&NPMpV``&RP-B)JCRnPBt#Rvg$>F1HRcUlQvOBMMHUwfXvgGwh;S()r}V}Y z)Zr0aO4YwxkEB*RiH0}F1VURvoZmz066~Hq8{=b=S@qG(Kw*7rPzusKJtXr?n``iI z5&kX2pNh$TyiDS)Z>Bgrg3+tm33eH)_R@9VF`Wqg=PBF|+)=dT3-@!(9 ze)u}n6kO)9?LgMBAvOa)dVCil*c*^xn4gZwVp4tIB$NAEDP<(F@vmk*xINto#ayLi)E zJ$EhN6x6s5V^Yzu70iHs-rX7DW2-81%K9fStcURau85WrQ;zgOmHY4gWHqlfE3+D3 zqweY10KM&Ln(M!G^{HhyX$TEG-%3oY++0T>wPBg1yLFS&JqEPn_kK9-zlBpapdH?c zeS?j!m^AN*TT6r1$K<;X)EmEXJ<~`;7JemIwHN2=Ci?KiAEUA--{3ZTelk|Rn>oR&!F7j>JIBAfd5G!^w_3HErNp4t~l_}$sJaKb0y17i>WoY2PdIP zZ~tNG*6w(L9GZ3=T$oi+|1#izDP?6?iXaM@y!Dw1>vnwkG(|P7i!Xd5Q)M#={VS<( zZ%Uum{%Qr}8y{ZHtkgpTBwU}7U>Nh9mxSd{}#pTdz zUra#U>!Waw!|i}4Fh`F!#Ux;%Zi|`rA%nK$dmfHP13h!?{@@%qb7(+9IpW z_EA92S~a^}Kn^*t06=!WR7AN`yVul>ag8r@3E z@HJXgR2*2Pt5+bBEqubUhuT2e6*AMf=LifP^_y$`r`4 zSF9pxV6$eS6wHU3{#Sy+X0~^i|KC5>r z_u@$$EqV77I7b53>>NLq_nD(fc{=jRp60cdQjJn7hRP{DIT$?+O8M1={FK~E9#f&~ ztpboc`oRXh3~=UDwP=Gu3jQ6z(Db(y@HQv@+T4O)>H!YKqOMl2cf0?t(@X)*E?r~Z zv&7}ecCe9Mvg+5Yi=dCJl0($%8+J-OyDB@;LM^y?Nmn%AVEj;W^3$t=!3+?*;bAFOHAsEY%|sOD#Qs}dxYTMEeh#pl})0X5gT6g#xu8_lMv6ljnb+R_HkV zW6MTKiVmaan6h-l3`VgoM^2LMDKd_&N4WNN(j+ObS%aBR!*;|$9oupbH?YZ}*5Rej zZ+kitPc)h)%hx`XCG|VoZl#Hu34YeswxD8PVu%i48=R)EeTa9uReyN@J= zqT?P|40F}eUhIOobWl58gG=oX0=riwcxS#Y832(gT+Wrcx^cn96qEq)rAqCc>kRlV zWvsKLX3#W&#zFQFkW-vJqvk#o3bGEc_*pGn3J zCu>#D;Ihr|CxGoMpS3l|wdaSmotrgDGuV0dMx0ca)2vGi+IVhQ%R9LwLY)|cI^8*F z!9{88Fwu>XX?3<~#hlTypaqxpM{!cu-U{HDRNajWoM>iEP?8!;)K37T7+f$70E=V68v54xH-kB>6RdH! z!&x}_5~7;rgyp(TCgYdGAz1*pUFsTE&h2s~8q@+1{!;by$RjPu8s02OloY08QM7EM zx55HvnIk$zjG!0t$P}bRfheY^+6_PY0x&aQQ2+5w{VN~1EY-mQ!6_`n;rH&>s?Coi zYd)GWT5QGfga(Ep#6jNg^{$SQ1d;Y~Y{We6~ zXU2L`^A0Zx>(Bk>I;shZ6kU5j($2WoETdZLI<*tF6}0K+`zuPc}!s zc0q`gpPRxx3;5p`fI98#V+)4*nnWw;9Vki)6)2Elr)vhOc!CVyHlqpQYIt%qf_RK$ zGW=$qPQ%-vUlCY_5=7<#Kc(r0xcW7LtTo!RF01=34kKRFB zVoJa+8IHE}YrVFD@Et-_+#wa zwM%IMM4j=dt+5STH#OL~0#H4YcT+6%4I&9gQJ$_;p7h}lf7(M+kpK15MYQV9Lf17C zT*cO#&!nmpo9Z^Tg~#1TyK(4waTq|C_j6khC^4^}(Cbp%AF z0=z2GG%)od5#YH1xQ|4=flBTqYB+~MgD76QGyBGgdJyi(y{v;V@AjceHQXpL5eJbX zb;bb*0$o#{iHmU_!79MU(V_4@AD@48wMAjNX;)|yU!tO#$nsQnD zTy?9&R=3l%8+hXMS+lpHq1EaZhpD=3uJvtS?UWC{X*1aV`4-=q)IHZV*QSc^X}7k4 z{!MH+_~+@t_!#iS-1Qa(G>!r-BIpl&=eaMYU`SZGY-yH3mkq7Zfe;c$bxv+YMWDJ)$A36Z#bm%Gvc$YKEE zlMX)XogNmrSMMs}7bo&Tv)&2^+(1Cz{8Im_SyaM7og;wkQgQvDty&~eFq)Fqq)&=^LnK~3yt089`rP{_4?G8TB>J@2`soL!3fPxvFkdFNa zfSDQcm5L90yt4XpWv?@n4|vV|p2$tzR;Ofg8A+ zKd(@!Nye_pj1WLg9~Q)$qI);nXd&6CpQ^W4=0^i6@AzoxQ8oQL2pkz3CDcxzVYjvH z3Q5Mc*nF=eV#)&!gK#mIuTS8Gm|@QAbF2~k=ABi)Ern%)bN;m)wprX$240N z=$(9<02l7dsw3L=Ge@kGgS$8WDf^}P!ai!c>9VEQkTVNqvlEfXf_m>mbV*b$FI~V% zx7>b*Yyzm9EI>H_nQK#^x&WIf6mXl&)tQAbp@34LhPRV*0u;~>c)>cA^*bquy{t9q zjKM{!u@bF1YB#6(;*Fk7vpR)^bSn)za4j~MvoEDyJ8E2CFB$AlffoXhsPA>1Ty>Z< z22b$(1;7sijV@P#FG^4ygoNJ&T*pIvUpRb<9HXBcKRQ#fkA+wc$Wz&c^PMqXlwlII zRXruTx08+77mVh)%IgZETZ6Vua;lZmd(XqIq-z&0SZLEa#&&&*SA?n|{W z0Zv-2dPCE0X4`nZqgR8D)$@D*7>xZCUpx31f|Ei(Qb-B`bycP+bUFlg)j;3$`Y#GNU3tfo<@5sm4rhp%>MOKK z?pm<9*?pRL#BUNUg70O)DIB1Ga^CG`O|k-3r9k>Wth?O)Fjormmw>0A-!Wa56y&&n z);D-N>gh*;;aG^@`{T#CZ~DU!EgbG1Pow^39BsyUtyvF7+)M`OjW!#ZB^n(@>xB`q zpGbY~tA84Ob*udy*Qe+dae+VDcIBhAGi2%|#Fq)T8ELfI)}OfCW*r=hOBm7s42~jhpV1F`m^les#!I4W3wBs$3&cCR3N-lo$Q?aHQiM?w!M&CRi z;1lUgaE}GNi3Py+N)c6@@k3h3l+AAsE+P^WZr4hXCpaqCBq~xCdYFTjDCT^!Q5OMm z)e?9f0hS=;gd4?@S@;g%97!6#iRF|XHar!H0-QOf;9e{Y9y`YJDnBrK7=XIQIVK8p zv`N0#BfVBk*QLdAoFm{FhUAWKdX$k*r&&+SWwkwMuz-SUk^B?D2NJ+wxmUuqTA*H_ z0Zyv9N;D1vzMkSJ*S6sT@a(%}qZeF*HkmeK2HSH?)9r+IOi@6>JeDHAyO;a&)=%uj zR2!%pw{WKu57>oCv8V#-K8ZDPbJGr6XzqbzEwrtLNku!!cG<4sc!__7pjmgYzO6GO zsQ5t;Mdwe(Ic=dMoL)l5J7IrQE_VwWQLcndXv|lrP-r>gKK4VXX7r}tjqK*ed4hBc2PI&4H9b;byJCg z4RGo|MxKfp0bSeCNJ<`HtGI|duREvTYcRZb8uh4sqa;E(@Lw+bns_rJ;N5`Nzs?`; zHvqRh>BL`2dsKNrDU)fRWp;#gCtS6OJ`++mn<`)SS!?^VWSu0>dq4GuDS<2?ZPC~a z1s7q_q2Qt278HDpztxNY86! z=vXK>QJ)jdvl9sr-1OnZz%bnQ!+iX&i{(EIj@kbknT#IRqQ((K`7hH zj~X^P-N5f2b3$WV$9AF3T2<`N8oVpDJo_kD#o@+$?!DeyZP)HO4ae!e_~)gQDciYk zu|-Ly-kwF-pv5LA8)Xm9J)4u#Bd-VQLQF=?bpP8|YSj!_$hJ3c$oe{B)!zAa)b9GH zulGnpw^=Yh#9A^09PXPVpm;5ZoKZtF;tBrFiyVj+!_2%7Z7t!@P|gOjel0YK+oSGf zg>_YRsbqC7X}WUq*usij?xA z+sbxT&zb%yS*hoIHO%Y^+dfS{0Nx0Db$LPRH_Xu-wOe@}dA#X0k`r>WPV7ultbeRM6kI6mjqa@a` zZKtB|1=*cHF?iv+;+b28)9kVR*)GEh=V!N0k*Y`SZ*=IqbQ&SFKIz^N22KIob{)F&=y2ty|7qyIo$1JsoF5@{2iz{k{i+lpQ84$%xCw!|vhsUpZOx$w zY5$p{QixR}6>}IPaCt*OP?&PfItirh697hQd9I6sz#Q_FI&-5T_*(T9og59shG8n# zvx}Shi3jGVNGot8adkagDPQy#S40-S2|PnA6-8S#d>=9d)W9VpNWGNA zGhDT&|DHx}!_xIU>nj@|d<+NRd#3O@G9yc9v|L@{J&{wH+DJ>5d#?EvF~jv)t1aHk zNT_YPQw1;CBBh-QwJiePO+oW*LfMgLs>D*5yvk~ba+~ZZ@@B&Zik1TG2|f;J7rXkOv2%SzEI9+s|Y=TI7A@=c9i#ibz{0cVUDQ-(8(kIc8Q zxS_{Td$-NY=iFvg3j}j@MIC{9Kjgr)C_Zpe2|p^rt1^~nwMREKSHu#j`w#L})j-FEl&~bm~_TYlA-57%^q3rS>tK!~8b!``ORC zEB7xI|NJOX=_0`Vx*~K4BRuU6R+is!1}2l)hsS1^gk;dP4yD-F7k5PR76 zW|eI}Xa}yEV{9`fRlaJ_i*9Y@?5dTa|2k20yD5I0s&B|>yM0^62aNyu4JE;{-fbCS z0qmJI$b66(*eDTLGM&nkI3IQY9T1p3u`S(t=}79=fkKc7vHU%Phw{!UC1 z3*n!Us20 zR}){Qbg&zn*#Z+xvZ-^^68EMnRD1nQ=%xvtPJ|iexKq7K7@OB{ktMWYa#6l)XN^al zS2`<0gLdu);jgXmF+~K`4Z|9mPeu`GOupW61qD$-fLeFm*z%@*%kyl|J0f z9aFrEA+_Si*@G^UC3N0b8mGG&YO_#V{<8RGlPpo_knmguCTY3$DIR)#@5hkT6T$d@ z{@&kJR#W~3xuA76ZXmby%HH^gj=e8u#vlKDT9LBI(|&z=BeyWLbb7($;DFV{zDch& z*`GGuXTO`(heIMiXCGf%?$~(e!^h)5?lvOI5644!1o?HQ_y&d^i>RxWJ|*GT0T7V@c9a4f37}Sx>RYy2 z;5LAZ0-PSXZ4skZ@D`ZPf^B8)i5)@@Q_%BthwoUsz^Rk9^ZZW{8&{G`E-^U_ z+yjO>Urr8{`UNW>Ix}EzCfJPyR!w%*8U$>`6s0ag_jf=FTiO2ofEAHH3r@7U@;&D#(bu>fc>4thioGt*!abXvpX2g6)cye>u~9OFxU z6drC~eyAT1!GWe+Gw&xu!``NOabVl3fjTUJ4jZ_!PFbBw-uqayTe2-=5t<_9{>w$n zN%}VlDiUowG}EXLhR%;g|3g9D`9T^w9M;kt(pimipI%eBRgeB>tD#byocpGKuS?}R zOK^&*hwegMCso~HI<8#a^mo?riMFuHa&Hq8c^Hm*n67t)g}x_24^60a5Kuq5o$kjR zUZGN3bpK!dY?p?0R`1Be)jE6Bx(1fu7cHV(Vw@*HK2X>2$8OPeU}g%~qZ+dGc7M`U z$d@yaPzoFSBblMdmJFMC@SzD)Q1S?X)&<&_2eM{k@@KT5Q_yWaX?BuaJtxQrB3oA% zN?!zNUZwqwO$nIr|NG7)e9>ZL2taW&PrVB6MnIt^P>(a|dhZS-@+xfhLE|UP)BkmK zZv(R-AUqq0mjI0kAoBspjsf5Wh2h|uROK>8rH7<)9+PnVOlAjZ^9>D^)-I2Q?wW@t zD)9Gumn1us3Ywzj(A%%>BW(0_<=#k_LkHWSdC~4FMP<=c<+4KM-a3c7r_s|IH7{g< zA*sq03aV+*=qQF@^Imy*=|0|tp2&31{QPV7&X?9$Z9)zN`PK86H9#2yo1Ti2AvNDAtfoU~IPG+iZJL z-9ZjCVC|4<1hh6a%7Il!5fQy>m?%xY{Bhy|Uzq1S@Vp3phvm6Gh#Wrb`MtqoKoKpl zL<%WLgCW!{Dq2iIWk0ECm%I`J(D%N3EEl4`N1+$NVYg`MFU!=1gG|;V>5UTQ0W$P4 zRPZkeeVeZFJV<4opZ(Z;qb9l=*_%$aV% zz$|$VesZ-x&Oqqw)4K%_I;P~AkcCr($t|CVrof^^5GyuO#=BZOw$9==$Uk^1lU8rR z22EK(j7`&81_A$_aaEy01DMe8uPz6cvRm*6QyR7UNSmj_M2Diw&OMJ~1^5$!xX^v| zrG^5K(He-lR_7=Yd{{z^*dW6-5IlrH4S=q?M24r%7so=u&2k?tH#{gZq0ec5aiQJpU)QEqEg-;D6}4-jk0a=QSu#Q>lq0=tNzTxBp+u@&En zXr_nMu2Bc=LmEVCNqQ&}{#xNOqGcY{Lz9@O(_0)>@5Ce=4Mb-K@9JOM*H4sqmybR} zq;6MjI2~;A(+s^MRlU1<7vq6?>ef(!9ukj}6cprS4eI^^`qK&YEGR)pN31qp_%pqG zgSw@fg1q$Q^8DvV$FwA>&;^Z#@@TSEfZbYX=pzQKf7frQsTA?G@w zE@JcD=02lWEI}OX_z94b7+%gq)-Vxs7Dz(`@~cnzKmfX%ULm869Enz~S?xHVu&YaA zz3)B0^xESd0ogbnwszh4-hArawT^2v)z?0aldC4X8ydemAVH4{D|FGlO!Zf`=q^Fn zt2c;WiG|UsTgpTTAyfI9fByY>v~I=NT-TV{F<=mn`28rv(K+YNpE^6b_pU66wk}wo z4%!XbbTpGdj`PjBm_BJ$ix7f*nJ_C*khIseH5?5F8n)i~s^U=4TXh45yREd#;lc;+H^`D2)52JVf1F2;_y?%S#3tV#Jbns|5 zFl^)waqeE)Rt&_E+(~-JR6MF3g$|r2K#2~LVU|X8*$45Z-N8dfbUUZn3 z2t1erqA(#}x2E;EWT$ASJwMlf?S;r;wek=8jzwK?lTT4VcU9E@Nrb%p)FBO~e>9nu5MZQ+WVHwhB~lMo>%# zO)i!meGm7f<)9b48>+;WF=MFZXU1-wCfjFtN8e_sm!a~0- z6Bf;em@=7fyP&1QKA+(SeT=QJno^^2(4GBe^j4_94vh85T>46#&wLvEiq^9+9oK+5 zI}B5I*^b%@g4KgP04E*3L)cc>4Mmt=5kx}_4}_17O(H&n(Slgj5uaD0)*IcdYdwM| zjcw_vfrR@C_m{z;sSi+{?1E=yh{4C9RWS9*#ADY2cD;@CdaT2{yQU&yA(37C0`GqK z@@Kk*5F&{|#)HQ$w2D8hBkxl_-AS3*miB4o!YAsrO(1M9i`feGiBG~(KI?9U?k+dG zj~~$0J)G59wLSh+giWnAOgCRoI%EAB z-0^bTdbTe6vhXcT?nTruNT8{cb7*ICLzHFI>F(ovegl8f)6db-Nwqu&tJDVV5k@`{ z{P4{|_ z8fwrL+NrO_jq(kCop`j_4fp8os0RW~-vFb?Yq6u{#!)w#g6x>rd@kC3U-dNzxOV)b zn_{An65bYCX070c)2$bh!y<#THup)cMXR=cZ1Cg>qdQaj@Br<@|HGdyIG&gM^fwN? zxW`is{1kdS<>Sl#^MRkk@16Q@6RI}ToT(ccdl>$v^(1BYyfZgKz`ujhgn3)|9di;ZS(8kL&% z^>6-HmPc~!l?6(zrvrh~>$PXiC#}G3dKczF=8JuCS_qzD0iN*&`D%O5rZ1`Zc2H$W@)v zQttr?7g-IxMCVpqbWu}K892uXr$S5UP8@@xddkp}++_#qo6Ek82ta9I_-cGZE2P(K z_l}=S*LLsv2QjDHO6jZ{p_2ew@GbeGCcb7klfxNh@+07yN5*Y4)iY_vNYaheNKmVbYe$NOmWHvy-L^g^6J^|rf6RZ_XV9B#Hcoq;YlbJK1NHI+wlEC=3ly-D5jBq@ z`BdA4CYb88Ms?agQCH#|*S418cf zZ`wS8ie_a=-4rM?%=lNlZfHMTVao?FsxK;qr~c|cw=GQhqJdww+HwRlW0uE>I%vK^ zEE4EDX~lYk$DT9T@#V{~KkJxqFf20*t3@htja9DP!`-J0i+&DO3J!4Xf0OC>d*e#( zeVce3uF+@814qT`;9y>fypjOsudgM0f^o|a?H=gfNx1gNY5RfePszA+<(H+laG0VY zC{y86Y&TCSbNNXmVeq(q;}R zcm5AlX~R-07b2)v4+;wnC?kg{j-_Wae!V%zU~G%g_YT#U zIAxcm5H*?E)cU$Yu0bZS>b!R*nE}i;j94<*p`1m|$JJIC+q+s94LuYs(e(e{iV`!8 z4;JKOm z_p1ZnCTXh@Hwf^}Bv5yzcIIB?Lt!(=!h%{Pje)oVWZpjXe#p;F=;Cy&Wz(Dfwe{xcZ|G1r^+4cb!H!fP2+FNFGV)9{efgo%&GOm%N zYkb7pG#vBVQ0%hD2+u?&6-MIFR+qN9dT09xBTM#h9c}h>BZE@)Pg$%-?EHRfciNAs zs(*eX(2Y#85osCeL)pDw_b|PC=pdD2*7K=i9ID5!H|O5zQMe}$%n#^Bj`YY)c6!jLLpAhzcWb|EmujCf_ZBK14p}Wf-GP-&nY#OZLasp;vD>5z4zx(TzLbqB~ z>RW@-Z8gm!hZ^pQ^me#M$`$PcfaILalSdq*h$kc2GJPI#8 zJEJdKC>KQ$Iicx3rtuqvQG<3K)t!@`;RCjXI*0MDUt`=uwG^RM>;7S!>dt8S)Ao&GI^&4K+Hhm1FWBs0zS4kPx#yWbVlk6Fdeao7%da zWK@5%U^Pq9BqnE`K`DuRWY;@kG_6N{-9cO9`qSvAM znhRoK7~O4G=`k^K_vK^QVVnPC6z;wDHrgDFwPKEOStc2wWHvBhFsr1g#dk}i9K6U+ zhpsXX$Z)JQK>kplIWV{e?PmicZjmx649#r!2D<+Ky#7(sWfYUW6eU%SC8yV*g`LEh zn;ZK{9vsi$`5vWb=B}ni9oP2$@Y(xlI>=OQ05BBntK@1hP{8P$!?sW2Bx39BZAXeH zFPkXd7x@~+PRPT$%#?3H4-5NkVol%5gVE#N2dh${f4B;$%U`As9x+qV_JExLfIW}h zwSSQxS&hoZjWt#TtAFMdSe$@(ewK80+fq&JHa#mD2hAv zQ2?d;^z-qK-KIO4H2L!RvcRlOXs1{`{cgR=j#K_gw0(3tIl6I%MyE3~mSe7BHIMa` zgr1d(%FCR-pl*J$!;9zpLzE{mQ7(1S!-UN6^L@FI8H%*5k!n^`BEa(UczT-8xl-;9)-^R2X=Red||}pAi(w5J4;N8q#+sQYZF%*67O0!T*=d_R*e_I zWbB>SY-N%K>1q_Qlnb-bW z79eiIO^6#!{xX5bNWBulhwhoV6M^X(E#$+JbkC(CqJ%u(H3)r0;4dMQ6ABWiXckiv#Ha6udG@7FeY_Ad2-N9p{cWx)#??W78>dpq+l?UDMLqGpgExJSyAu^PQFj zpm1RU^to(jP*z2m%DGL0x~B^=w8-8M`&%r3@6v^*hXPA`=X>e5?41f!@7Qv1OaNh{ z#9VaFw4tGIwN4LEB}Kh1Kvj;;oPRQy|9b|cvjT7uW!(5c*|dy+`nl6!i3JXR@h4o zNU=(@u6^^Z=g8A$&51~PdM7X4Z|rgO*poVxG^>RYzpHJ&_YdZ5ZjV~AmH{1zXCU(5 zAIC)R1L+VRQfPG-RrAjWU)^Rf~T{!A%8b^V* zCMn_;v=`AzVb3T|eTLI4r!)@0+%7`mly8O+HZ%Q>Lm4YPl`lwsk&|M&=;*Yh*9E1o zLA+Kn`~Xmx2r6Uh!5r^~#p^0Px0I6WifqUlddDk3^o(5A4Px`;f{`A0sG>@CD z`Ihh0X2YVpQ`$T_0QNgu#(-~A&)AQEz?Hk#_R9Z=NMs1yWeD(<)Gd?*G$) zTo-)jylJ}3c*f;@I=D=_`fNMmM00BK zAFm9qch9AdH2jc1JL9s=QAM`8xYBD{Vb5v>Gpn-lw~VJvV|*g_eYKbz_sB1WvJ_8t zhz1Y=Ai^L}mC6472Ds^N)(``#wj3ry0w_{{3-^)6c)+( zAjOLigA=?Uk})i9$52yf+s1>bDc&QCMQx`@jbV0OI{8y;rDCW06N-D|$ro}i9OZG~ z*55!!1a}L7OWatz(mUt&QN8(Fuj~1a(23w}J1!foTs4EeG-Z%0aRyvvjefBjyFg*z zFW>JYq^GHQDauN)jgs*0yxG}?cQs=_%4@e-zZz$qmAZA|NAetTgY)}3$KxT#^6nm( zC^-6;Iz1woxB^sXbFc)RXd`Om29K1%Q{-62`DQ7oImgmqVXXw*3q#FRm}j_5=s$n=9YnuaU~7(6m2)FX6qMdM@((R%l+Mn)9KL zhE~&fzjmQbP-&~-fauOociTNHQhYblv7=o5)1XYTT~KzgOn(-MV$Jm_7}OZt_1_fd zeCFJT{5`tk*VXwz7@f1`#j)}O;^Std%XnB#TOTHy9>-HEt5WP%&SDxJc7S0bCw9-n zZ;i>JuNRDPt%|4*Qi|Y_GtdFw`c^Vb>bI#f0ud(Mtdc0nlT62^MpUdL?ydv%?p?UJ zM+nu^F+Tdcy-)Xx+}6ZS3j0mL^z5(N2jbGz=E~tTAfBY?`vLf$>bud0i^dnMFXz2l zCP-_>F`~0Relq@Q?Y~;?cX^JfXtu0TOssPolU|s09W2vt6O=q3h#H+8@>KPE)H(E1 zzV#iu@uFNzPY@l+N$z1}Bj>*>2YuDv898xv#;QJD3MoRL}kT7q5cdgObCT-AR=0?q%+}Nre)z;&f_Q63JA*S!uf+?giry` z7}a?vwkm*r*UGhO^e<1l%=x?bmeds9=H|99VQ;^O?@rVbE3RG!{fgYR>R6$~0B(%q zGzM{!Cz~k!4>*P8QAElPZw;@!k0|8`ow9CEro9#`xVO-+wS0 zr9c0=;F;dCRi50EZC0LL0(T9P2qkL1qT@CFmg9Ga8|7)XR)EZ}Pw*dm6mXOUK=Tn` zgK^Bx`)`#+oPQ{;+6u>~f@9US808AW%(FdNhJk?Qtp%gUj^iu!pDXM~#LVzwc1#@1 zy%}mH$7?OX?06psO3|LMO^3fP>b$|MFVk9=>$+F2RL*O$HI99r9VE5aaKCAKZ$bFY z-&b~hK(RiYoztg-FP{V7l2nIHCI0z;BOmrE`QuVkzw6}HWO8Z(I0`PDI|Ur0Pp_`q z6ZJ%lQV`g_#w+EB-^OL`jvB=h+^wps7~ivS#>(yNGk=${aKL`;wt}DwT^hAEkucF=vqB!+MyJ}ad_vev`#rU& zGF4NgG{I78(UUX8rm814?fv)T-*Ys;V#E5=S*;ejZ}1W_Pn{0*hOR5G0b3z(&F$e` z^tQ-;guE`jNw5GO+APuwx!|zPl;xPC?%m0bn8%{PhJh{Y^*ElbLb3k!)M$c}hr1~{ z+H_+v(S3xB7CA%!><98ST!c0Y8(($OsZpWawqI{h!dgl%A7SP+s-$OBKv-?-eVdbR z7QN1|adcNCp^pp-Z0*m;z;<#ej6&iAw44t9LuIu#TtIX$x6zmjQj<&lEN>niy1m%zuv!8I$|&{(kdfdn>a&4frkXzmhBK!@=!` zK5y>$yRrH8?bOvn|8{Qv{r&UX=gTgO2a8PN+9K~^ae z+!Niw=GvheTYIsg>YA7=Q;N76p;tFg_w=F@`!E!>7L$dsGq5= zKrnko8AF(%O>Pfz!;ie}?g3nz_)l&mwVNUJ((p;x+u`HL|<#a`bgVFH)aE?8Um~0bxqs zVwZ80k(lM{XGvxE-?7caU3Fo!PD7PKX>SVf?#HJ6ltL1!ecfFmTnGGfeNwJ@nCe?3 zdQwt|u>4%h35T##x*P}0j+OBMwCOa$KJU=&5gJ;xzO^1{HZHcuczmO!KedDu^i3Qw zZu`M>e*e5rtZBZCG`RkOn@hbWG(~~O)(>1cIBcFCO6^(e$ua5OJqwb%8ZE?qI4idu(N*&xT#Pp#M2m<^5Hgj7idDnFe7)^y={3@^g36PGV zvowp8quE~^u=Z%lXFEI*;=aRI*fqFi`%qH;kEG&azm~~eFnZRG7*ekX;|H_{(}>;? zGVIX|4K zFiE-u*ct00kx!hDye>;8!B*rhvs?&K3KE=m66x@5YD%>-E=K6P058nTol_o+gPJjN z%!@>iP9dGV{k8?mOL*E-AP#u*JReFGdgt!xtl@W-Da7R$!8E zl2HXtI}Ch^E>B-Hwb-d55Zq}Y@U(EYa5RRC#j_xCPTg=vKJdIB;hY}iux@r6A0rsg z$hXmVW4RH)u9+#^w}jQkk&a#S!p{KUOc%ev=sGUmp%9o`EFXG=ro<*|!ndWW z%ytE&t7Vu;*=~vwptW3DSfS<_3%?#I{6uyn$z1V-{eb;moy#$}7JqexOcvvDXUKCc zrKUp9H~Da@;zbyv?e_DlHp7PDgP`D*iG0;R8##TN+BRYV&m`Iw^{A(*$xrJ7RQ{z+km31Rfkx!qL~64IhZL%N6X$? zuK$7$o-_LcMiT=uY>Ln%V>Px1oh~O3r9ZD1L3B0(Wy=XLy$u3PpFW82BV-T{a59{% zHtl4_2LNWpz)^>VY}q7cx(Zv7oXV{}6H+>|;9(?jX7$rL5@~7I%#6O-;eV2t6qRmK9?j@ei7(`e9 zymEeaR&Ca^4Ah(4Z2!xk%pUVnU?8knngtLhy2TU+xsA%Du|g*5*$^UAyoqLsGxGk> z_5kMt5wWZcwW3a`V@@GI(oh8^EL)VvYvZ`XAz;HtCyQ^H_x6=j>~(SV)S)kqhIo3P zq(+zz!_~oGNxA;lhVhpUR!}4(nds^4oDO7T%MmI%NV~SKx-8F3z-f$x_HMt*_fie1 zo?>)@vb!k*`;WKnF|d|NygMLc6w6UxH`0Dqdf#T*?CLQ{km%WkLmX5v;I}4jp}@bS z{3&-l_w*{l!XVlLeSlnchdYinCL?2jHo9 z9XqbiwUs4m&1$TP_nFhXw-2$gDr|X)WAupFcvKxeT629d+*3d)4$nWK{V>Ql8Q{iCv+v@;uG$S)BzB|DJ9S@hV-mU#y6AEn+0Ny!QYm^+Q{unzSGxFL|!+66}L4#6WN8fjq~*;y z0B@fBNwMyH4=J@r&oBF^GMEa_xxKtw)}|U^}&}WHygyA2Jwk70+MsZrg*Pr8SG z=-y7&0H=mKxY@cA)glEP<%({P1T}>5Vxd*#Jsl{1-Tx~;qmZS{a{z8{6Qh_VL`P0w z@iSB(?J?T{x9Kw2W8v#{B zPjvE`_mC$()lKE*1Rxu1C&=?X27fW{H|!)gyj9JM3`nQ)Vb2TvnytWZ=rT>ma4wav z@pm&DUYzszHPQID(x@1Qjl>|g8FLX}KXiE;# zahzd@Z_+*CZyO-E^}GXIIkZvM?Bk%xLZkB_1c$cm1a1kKD8zKpP|-6ey0r0Z33h#O zGpNBa5CK6~2yAop0+hQm50bzH^*`6Ee6(~1Bb15O^s0m^|Kk;;MX@wf8O$s@AYG2k zr3FNm0p|jwg)uTVi*pPe481f=&at>Pq|(Wut<;t5HYHcF^2{X+=GZ?*2$W)RNzrzs z29WV{kh;D`N?o=*0=$o)-yAbd$tYgpEA3_GN2e7euwV_iUVMZbRqbK?%<@vRlTmB7 z5nkiI#`%S%xD}(E#<~Y_J}6wdevfWbPktk`Zs{XcT*>1Xvk+j9l|BK2@6=bI-k-dT z=OrV4ulOkE+UncNb{_DU_IsC0GC&uruDWve+j6j-vOgOT#`S~9zD+jfZ}iTfJ(v|S zx^)Phak*hmd<9tyZd{pTFM6vqpW^P3>54x!Cx$oB2C)r;FG_<9E>5n}rY(8OJFArE z_GMKTWhxE_U(5^nO_Qw{3tP;6prfQ`uALizQ1$0HEzO1-TT$a zg1xlrg*2z6LG=S4RN8*oy<EgJHZ!kle{BlgoQ1 zxQdNQTfFmWX>ugY5&(5~YJ1S}f*aYMNybb_YmC5_2dG5%OFF&wdBxkb3L09&4i3YfSL3>RkXHpTO0l!i zU%P7wwQYT^@>KEb<=W+Tq)MfmA*Nt{;hb%K3w8@tPHzTE?@r$~xvd2MGd=<2>q~Yk z)c?Xbzxl|2rVnl`yMC9kmJRe0e;E2i`?pF%o1>8wF`^?;)vV99HLJWK3#FXVD`F2Y zN-F1cmmP4QOS20G2eNTtS#Q_PM+0Y9V zHq)kC`9g%dmjSp-7Tt;f3mkj!$oAiCnN|UkVS=m^kAGE^&ZR|-gA5sz>l<8hpN!Pr z@h{CrJ3v|O-T%)pPUZ3`M^VbH}Xh{lv?$0>ffFQ^@nXx`+b8l zhgVvi%7zWci)Gto3UsO4Z(iH38Nz%RFr!0X~r8_(}I63;kvbg4s*B5h?8{IjW}$mBfHd- zGx%U#bjr9eD*%z~vIidwXVDA?{r3HsZp%|?YLcSty7tQ2i+VUyu`H^YwM=cTL|&o1 zq_8DL9*@1aBcDIEwe|FgNsR2!D1utq#hH|uFnpCeAaq+O|hb!zgR&SnkS7>G%& z3KxmdqGyy~%$>4A$4z0|0pLfp!ZSLvP@7s@Z3w2@n z-{hK*G{}N0)C{M+smOy&Z^o4Rp^mUaOUUKH;NXz~SYZLBb@~dy{Z)kX`&Or!w(PA% zQix4EtFytS))S33jqg`_tW7MlFLh>b;lq-%3g(Ir14q0Q+td#NK4F11|8TZ7~{0OrFrn z%F662f+}gv2Y6b4vc+(|_{vuU;>!-BZ-6;?ZHYKz6a!6>;!GUO`*HgbreZ6W&JmqM z=k0$dW8S)n9v?ESq9Hofq!~d>7Ydy59S0qO9fz60J6|;gOWg71Y2Jqft#^E68pc(c zzZkcAq_(I(+`rUAZt|8b-GHIM3DJHrgpmcj*Rc#;!})V7#BbSBcUomnq{WGg_8|hM z8+SY1(DOxPI(S@&=6hOII+Na>)h>0<1!{$R{^^t*=t$_~X`rmo4rbfD{s1hzv%=y( z_^PdsCYgsW%aZ~w%F%C1cO{+aYiCfCXI7?U|Ne;%)A7!}>YuN*c_fei{G#yhq5Nb> zDP&p}U_3f>Hqdbi2e(%6;|!R!?W+y{bIb9M^hcA27jujT>fZODzS=cK-=1f|S}3Wn z*_(bNIf3=Nb-~l~XA5Bm@ZjddD!A|s=8-Xz*k^}5oP zDyz1@yN?6!!e(+Qv&SmEjE)>Z$YVx*PPBUy^m4ahCg`D~BA(ySjr&YA}={-}?%1MM@eU6P)H{PhoibLH}$ zmK$nGfBNkqPX7ijc(N2hWdrZfdQ=UKW2dd=Ma+pCQKpmVH%UaT}U ziQ5vle5*zDDkFtF$V>&EZWd_AQNS+S;2M;PE~6e$PL5!`aZ|X1U0b|pmobRaw99oE0>#9*6uM59>i3G9 z@zjWiEb(_?V&1Y^-){!c1#e&yg>` z6%2(YOz}x7V9foTNzkq2H@8brjDr!~sb7w37~xyP@1Jn|sW7tfX+>Oq5x48Y$z$K% zPFxDSf8o@LpPv^VoZD5EcIwa1FK?gTuR4AD-#=ioEQB(^q~)4)(h$fVFH;PfDmV_x z($1&!^l0G$AK;|+aV}7HXv!|f_(tj?Un7|v!BfD*OL)xi)CEm^I1>O+_^jNHs@SU_AU>X0f z=9z|gq2>dH6CHyYTlR`LQm`JR-5HgPlloFsNpP*KP3kbEmu^2BIiF+PAzp0h(h_mA z_3I_8@T3k(HjqqQ>eeCNAWV-J_gT4R$s7-IQjWD6@wgsaYP&3q$}IbipYk#^wuteW z@_+m^(lFEVS<;B3Vi3DJ|6CaD84vinaEb>EJvkzc|Cow`ZH?%BQ+kfsbWvvOUXan# z=Z7ae17D=f9(elV=tAC48_YerxsK5q&(5`oz8E=CV$d-zVO~=s_?mo@R<_}qx~z^| z70U;X4{hj-gvn@VIjKYmG&7X~=o}8tg`_-4NP%~pDNc>sCbcD>5Py+`w`y}gD`MK| z>$xRsSS~-JBpxz+Zlp}PkXfQKaYJbA@7?*30 z1E%Qd*UiIpO!9y;*+X5zi0p-n=R#vSI;F2_z~`(UDZ7x*gLQy`ANPQdjZrO9g;48rU!wR*w=gqnJEu1W|KwiWQM=J?x7QXt#EX z*OKTKg}P=JBb=HFBXXnQBltcNEG||8YdSb9O-5*66V#%Zqab|ewlI^E6RMWKmzC}V z$5PV3Enyi_$9U#Tn%FWIM{;4o=LzwdRu)truW9eJ!oiY~^*NXWw%(W-OeAJl9Z(PF zwBaId5OkLv3z28J)6zLKit;#3ipu8vB}FPUH%JEB5>Mn2Lb?(}hg98Hg*ncGz!-7F zGPQ#Hn`*CxwI_jg5%6?iH_H=l8<(|PkY##Qprt%Ub3*ecPz*6!p$z~dBS6CZRNVE^ zZzz|UZgibxx{6D`9*u4%kIWEhI2HORM~P+l6pBY$p56A=H};W|)Wrmj$DZ*XH=js| z8VeBE6j`#!jL8j~fhiZ8dG3=4Wupn{z)|{uBDEI%FlYc@rV2~>I%s?VYHxMBbIjyq zcTP0WUTJW#{~GtQaRk~PKZ|{s+>)YtU|)TK|MhqNZRP&W2Q7A}i0yE7^o$R04plQF z0d5{Wa>%?TlkI?NXI-3GQL-%>8XpoiAHak68H0{ga~Zuu0F}C{20p6iEBTvCVCK$b zr{`q&)EC`iY{XiaibJpW}fni!=_R{!k2BMSY!vk9Bf%q&ug%fyEQvpb~@ ziAbat79ne1SLl~yO8~#7j`EY`;_c$lVS~#d_@Xf#5@(dw3Y2y!1yxP6$4*Xi^lJ%E z@D0pL>wDfwC4ZFMCUsEhw%m&_#SvAONa4;q52dpOD90_eb+7V5V-3EkM5or{Upqcu z&g=$6j}PFx4%bpz9M!`3xU;W@pbb^ub1XowmD;~KZaH7BT0P9Q{$s&PPpsS@_PP9N z&Pj?{gsvj-uUOZ^=Y6KLsV#9OLEkHtdl%n|Hxopl0`Xh+Y?wk}(Hw_Ns?Yfq53EK3 z+bg98D2=DRO|k5QqBs)+kr@Z{jlLD*ECf+5C9|8v7M|bU7dW=!CxfF2AiD>+>j_{(B%YVzKe} z-9GIQ78m&5kwCergZ985%nfDMs`o`B2%N%#3Q2^9M_SrR}3)JZ|IhNmzHjM4PT`; zs^`CaGhMuXjO@tRk~8!6^`MGoX-USli+%Cm)aTV;mh&`napLNzPPyV`djELhW0l&F zSo{Fnb873&TVeb!_>RQV(_aql*+2Uf*WBvqb4==}O|y~!iWgkmdJ=3k`ROCR6{x-j zeCh?hK;!c3dMaw%DQhw7EivI-7nQgXH|W}5r+vq1LZ2K*%O0;!b?ynw)9<9>pF6-h zVrPW_gq^$Nk{%3G4{!Mhos(WSa9Wqqb<&FOiM88%PZZu~f9=x&^t<>>e&&w~5y}dB zlC6vISiC;7hyuVI`(WB|F(h^KYP1^-eeCK_D-!h40oYEb6Tgj6TKYP1eauXPjt{yC zvRn-7DS`~x#Sa`mBFYK|9xioLI#{hZYNC`14D^Z$oY{Rh*6nb7ttDPmzj#O~&HiXw zlzd75y;zPM38++~z1=VG@rRsCc6my|;rr2NloT7?MjBpYXYlTU zL~ZIWr~_l|JsQSmONlM{4wdF{(B(5g{^#e64=z1J(2y&n{F>O~Y$o$yM3YGM#5lB7 zdN5<2xr~85fA=LEhLVQsqx%L6Ddfc(luO@BpT#)h%4}+nwotrBqYvS;2wy*AKnG}3 zxIaAz00==McGceW&~^EN`12i3r{;7J!wizlzVm-=%(2a$-#L5r^~gEHfe7^!cj;7%6_7)TzDNU ziV8}reP8o#JKNwxXn|s5yFv3;gI7AA_|aTlzWb9=y|p^SuQC~!7Eo0N@N51b-5w{q zEa^ud_X)0gRd`Ev)Jq*)hVSJ5PQs-=PvW;5xS;AJHeHmaI#06soTLk zXn(R{^O(%x!Z`9)*A~m|tHs$`X6G7W*0#c_9+T<lPS2zG-%?qS&v=S0Hej1(dDn${srikYbu zxQCA4=+PqDOiQr=o+k+jJ<_g6ht&RjeIx)F=PiwjVoT#`Qo)q3E(6gvaYT~qo+Lk; z<8e0PWP(u^@#MVJUwu8(R^nv5Ej}7mnDRYxKb7FXP1PD1gd7Tv+|9^M%a5)il5hI> zT6l`0oy2;gNIjeN{}J|HVNGm*p!TE}QmLVbj?~aQhTb9cDuynI7^Db_8cOJ3Ktw>r zfQX=|K~Ygr6FLGK6crUU0aR4fpyF;6n0cy0y+*77prfI)Q3)}ZwPT~06w!gE&7WB&%@v@Zr*Y|rU#ua zvN`-NlHYV=e6j0vdqltde87Q*jN`(azYt#eU6>DLCw9@&bh(mHzV8N3({$G!DQT-i zE3jN9YLaO@PTn@u3)buT8a0qk?Lovan#){o*AC}hZlS8*$(JH1SE z@zaV z3oH|H?l&)w$3DM(gB;P%cTxrZqQq?lonK=nJuX)pt`SEZvIf-dh?U0<>#WX!Ub3oVAGu2)HYTDJ*FcThtC5dFVXf6`$ zV-M5X%dB5%qt!*r{eN+I+lTQFdor(Yfogmw_Y*)=!T1rq^k0Zd?+y?Zy$tymcJEB(xStJ4!0q^#em7${uUQ>w?O z{8PRoIvMlczEt&cakPF*_U>5|eb|xfK~b{E!ygd_^_Ur|Kon|5`qC z%3ii^hde9bE5`91WIjWZOR}t<;!oiOq=`Au|0$TpgDJpi0jr)~HD&&P1@KnL-M=6=l5voUoYKt=isB?LysOUgEi|-u6LK8 zMr9}38)HIZ+~%DKcK1adM9m1#%qto++CuJv19+)Q zdSB0=%buRUl%15fbgJa;31*smZu_;Fkl~DLBSf^ zpM$B)dEBUBMdB&8YwT<8AQ>&^y~N)K2&An}$y+_BxW-q-Y$?Zq98Y8@+z?@xIJhMt z_6>kr;w-(R7wzHa)a#Jm`0Xle&MW$5clFgHpL;9+#GO|NHR^nMcfATUL-1CUxrg|m zzxuLG`*mA0HQ=RU8Po%f?Ljrt#!d=L6qo0eAGu{e46xnMbFPPmEJg0r%?Vu^jdd~^ zV49FP%9n(0tLSY#wePJ*(PK$wORla>C{tq6^YA!S*RA`}yVB{Zof}hd1{G!WkhYkJ zf)Dt0$zJ{UVeu%hxM_H&=gdoFXaxzb6L%t*!*Q+j^KjLL%j1jsD9;;)nJr9Por$?> zTm-!|XV*l*e@AT!@)a*=kdXW>S#g4zFhPw6a`e%V?=Dha1eUbkVD+7GZx(Uw4mw$S zHeXe2qx9HCZlq+FM*+^ikMC?W1u_np={6;z_L045yyRa~hLtNu4~O5MokE>JqR3gz zO-g2M%;U%2zjQc_8Kz&@*5j&e6qC0O&t%@z{u;h_IL+iMy`Q7}HuZBqT?%l;lom&K zx+|72Dv5BvHYO37TH9h0)K31G4V{wFOBk-req2^8trO5jNne7l9Mcc!CTJ{acGoCa zWUK(4D=X4EROSjd_-uKd^7ay_%kaunvnic~Ocrd2sPK?3*^UD`(>(L!QA?IItC-#I zTC0*Ud~W)LiR|&MKpnSKdW(fhz1i;fM&GUtJ#5+LU@Z|w@y4oA|L7Pkn8uHLs-jo) z37n~8#9QbayCbhT?exCe@^sd5Vn`r!uAz=v zP4tYVU*Fnjlp?y5U7*H8WC-5VOc06__6kqa>_{wVg@4!ln42m~^i(0xkmCoE?5kJXxu%ifsotU@hInU1WP`)ik} zn0srMQV5mgGGt?=(I9GsX}o_$6s>xpxw%5Eeev=1ZXPK|nSw!%NL{|EQ{I~T>R)sw zcNpiF**~sUlX>-liSj8>)CF=W&Ot16!~HWwbsKP*@oqe^t}{oIwtJyBuJBtU;nES= z!=eV}LFW}Y8Rtokq{?+jJnR=j5kqCD)@IT^$=}R9b=-g%aI{WIHQ$wqp2H z`8WzYN#0|K@T62Rd>*Qxd4xYELt~Cn@uc79=kL(hs*=Vdqk=W%!i=hZ_`7bbjvTh= z0&<(}H@TNQ|Lo(-vQ4kOgF<|$*`vhZd5Ih=dT>fsA@)?JU_NRW-@~0zM;w>e-Mc|h zOu=Z+Nf+aMdpZtpONvU!m9eO$j11}4nl)&Dm(ncOPV~`fpzfR0>IbxHOovwzKV2wj z@w{bx=j(Sr%JAASmBJU-8B+K?aDR)L_WA>#E?jwd;Pd7C^|xVfW~pvp>?bL1U$6gQ zLV13FoX-~W9+A|&B&i;8lll1bxznmXI-XA)`XuyK<58NsZ1~TCYcoPQQ0u>xTU?Z$=NW7sZUSSi=bT%M?C0?bEU9=iwN&Z@P7-#FuhC-FANVn z<{JhxAb`@4Q}MFw{bi~G!0%V*Yuuj^ppKJXO!h(fejn-h&pjaH<;6C6c&7xOBtl10 zkdUk2hb2At82R5VF{6Zgy%Y`FL=-$8cMg+;aZ?#n9NQNhOrW}(_4xpT=Z4?f?-C`wE-J~a9-ewRLN2zd!(qXBQ zabS=_Et0ScyoU)>Z##~H@VnI^ZxHw27}2B*E{LYAhxK6JLypkxhNDQ95Y?uX4CT2P zkAV_atItfTblHMz%g6g#P{RHxS+FPd#{KH9mHi)L7KV!i5H-5{L4gWVzB648ITebA z7rKU$=;hb5HC*PtAC+NFS}PaQWo}d9ke1?FKGN-ftbj}K5t~O}Ty2I0EQ`$Ix!S}q zg*%mDl;pX#*xb(A0l`!E?aw_P)_v`2yB3fk|6`)%L2kF@rQU$OF{dzLHQN_6i_vIB zH8@m+*pAc)mL%4i%0ve*^l1+sp3rFGY$faI-#Y)2BxV_F^G^j0F1US_Inm!BI-X?E z;^UfVZe_+h6h=b+>Er1dujrTW8_Nj2%`~%_vMP_FOODuF$l@69WXMJDkPz9~zp-U) z){r^b%K)p{>WlxX6uFcl{i2#parPHSAkU_j2@>5i4zW6_vsN3+dLmo{2Sc4l*yeCL z3U0p2mvBX$%`IU_)rC=$#^Tz9f`>U$PhU}T&)UVUmskyPJ(OPpN`e7CZa*E!a`Xy* zh#HaY5sbYr0L8C)qHXRItiO~-u^ja$y|E!cnEvmta>iuk=lM?+72H~pJ*MH>=0B_-ovA?>qP zj_qrSSg|*MyD}LdcTq$fH7|qn0ngkElT!P`j%(WHPgu^Bq|W8`L)(lpoOr1o0;u%E zth@vaa?de0Lk;~VYmd-dC4S;Dv({1G6-<1xvuv#ZPg zL|ptr!@W~q2hMNDW^B(8Hb^*7_Htcn9pZ`m{~13z;TQskEFUvWworGoY-&7VcbpnP zbTbV7-Q4T#PTulaep2H1INE=oT)OshihQSHfT8!v(XX|skZTO{_{VuywjKE8(7|-p zLTbP*-bA<6pX%m%yBxx>KZLI;HXr*}dN(~v=o_(l=3VQfA~9ckm)k#I6|edj>a{O+;_64=rg+d5~eUonnFH0TMLXCCGycxL*;|dbiyg$-wSqRJ`Bqu zSgI`2cEzkJ4lR$(7C!Myb3mL`IQt~-0Afk$`0lR?_ZD({j@EB<86NuhOffISC^177 z$^wPrtFa_@Y3Iuco8Q`{O#6#;^TL!<7Oqv)qFH9d;cw3GmSo~zTxB)RPByv-K-l?@ zK|}9XQ4w1gTi#ykJ}!R~>KfiaIQiyx;Qq%H!_~6v5Qz94#i8V znJ?2l43k~rJdT{#;k%yo>ULVjd7bS-Q@^Lm1M=|W1ABkC=q9`6 z|47g(NTCo{^KH%Lq>_vOEpa?I4w&=6rU1l&8Eu$A=x&PCOwz!>8Y>v28#WDV$-2xtl@CGb}%yh%RPCHmzku(A#@PYm?VPPWaL zgY*+H0F3#3|DhBZLP19AxtRyIAcP7v<$LCU1>-lb(3&tFCB4%AvO6YP+%Ue!^d@iYReF}9R(u4B z^x4@-^@7)K9fOUGIzbZlN@+nUjDz~L)Bzoc14VvQM)$9>NSl%v3Lk7t-jXq0Cwow# zzm|)U3D8IjLJ-}b!mK~reUyor8!Y_qS*bk|wpgl37r^`hD+37Kg=79-0W?qA zZ6j1Jlv-fzUh>sFF?K=Iga+0eXG#WMhljYB{Q~%YhSUyi`)9}F#=;G`qRN_Xr9O=`Ew9}Dt9HRNPR|p%6L-L7~MUngFJAtQb@diRe_bq(f{peAGm{5hTAsd9s>|HFqVf zc7PI;MEE*cxVGV%m8SJWM&4BnPV~&yU6q!=3n}yl)t1uZHwn_x?9fo^mqAx4qLnYGI55~G?Q#8oErCcEUx$&v z5``dwbjo5x;vp*w6AhW)-=hw_qgMAaFw6!FV5zDt8=02zR2qCYyzx?STGcZtqt+cn zR`5-Vf%F(qm=nJW3o)8f>N88rD`>23u{#h-5~bw&Pqlyf*#2z_P!TslcnBsB!68-G zQV5C+`QM^uZvx$p1`+k^XcOgAI3mhS3?|(I zKbnM`*`^V(3bk#Nh7>z%t;)lH$U;hw$`w1WHbEW_1EPgwi!zu)r}N+7y>ZtHex7B; zB4u7KI7iT|9;K#4qFbHw8m?L7#ez9@OvvmlR2~x3T3R7xg{enY-3Fx>p?fYgC{6!m zcWdd8XiCZB_n~UDxIVt^t8`Ltf4exn_e6ECpB`}10QjkhEao9k-3Ar&fIldXm&j6L z(7dFt_UgMs%2Q&11zpuFA!Qp`w*%_)zosuJ8eGS=feLJ)X4F18%aq+N<`5ConF2{1 z?>%Xss>cP#j@LVcY#n`l&DYqV-26cuwy;656>KOdrhIR8@-462s4YpC|2gUeAL+0U zq5j+~%wCtTj5ZhM6P-9Gb|4$@G8*mC(Ch96G+n6Ni;|zq2L@zi(hd~NC9{zr$Yx2s zA=_c89)m@s9Q8%c%Lil-4W*Qs+)F>nc@)< zC_FAR_;NJLLn33NEA8?@F}nrRA5JTjir~ zPzVr#t^7c)9Pw(__MY0H$Ii7UU=d`OUl22fhnrZo%oz>2ReHygE@Klc>%@Ur_4jkx zJwpVks}zFhH#)DGbXL=zF<>+FSn29qWxwF+6H6UZ)K`HvIkTtQye4UeBbnl|IAqCOwFGMKkWuM4|?I$3lo^xIis!FCqq@8w`bN4 z^1%SIggX0rZT2nZ;kT3l2pxDebFYL8T6P=|%{=_F_V8PuJ)AM{e&*iC%z+~DjJWU7 zKQoX1HBwcfJlrgL_{(VO_u3;wod9)OP(%Z;vmp129&mv`iTe<}XHKDRPIL+c=gk%I z?y2zR;KFJ6={cP}kM;IU7ZDz7z6OO)%_)oT=^H<>2zYXG2BAQB9GU>AP!zRyJlT$& zcfp=15j zh|9|!!pq)EFF)&HyJmr39DLU${KbG**Z)obO(A@u46M-bKZQ?jU>EsLppADa$ zF<6|sw0Ok*;o<+#@Y6HEdfm&fb#H$kQvHXE|4tnc@!sB~y#6~t2)nGZ!NLE{M8!Z~ z{Y^kYvV=qv5w9Qfn=V>p;N_j)5}ZY<&Z5_J5u^eCOH5Ky%UaUgLOv#A1yt1MgG;7w zL?N@=eog=&5TNlJ3W5R(fKfh>3mk$dfht^HCVRZj@O_!(zOdVIey81hoZaIGmFr*FK(FJbl0ylMm8=Am%bzndhxT*wPR|IY<0=G!O z5DB<13*46mhKRr*5x7nSu1bTsGLTC|P#*!fgaNLgfvZx$fD~{O4ctb9?jb-t2H8|`M z9A>W+ItGvSlag{m%2*(jb)jei0trXJ5EwLuh{Y2La*DFbWRkkJingA*o}s3JskWh+ zzPY8bwJpWb!P3#e#@X49>f-3??(E^};_d3{>*nF-;ow?5J&(Iw4vse|hGx7Ty%c*Mr{a*0m@fPbH#v1{-_q@bJD$&! ztTLXo2b|6SQet&2`OcJ_m+b4OCq4+yJwaVIe8~9tY{wo0c3+ePOelWU9(DrJ#RFsAy*&NqXw0DiirH*e4 zJ7W^9nLPq;GO)}jTK_&;)l7-GNAFE!**B40vKXR$?vw0q!9!cS`dy)DSqqAYCA8xLAkD;Q#;mrkZyxRq1#4EU{k4$sD&$ zn38*F_pv1@()BAhC(vR4b(ugr#p@PYcvlJFR!DyA+E+MtsvBMSH z9-hjnx4gO0fia(OY(=TJQJ&P7>r@ux+xWZf~DHuSXxw*uM0HOj7L}cktbHm z9v}_2#zzeaGGc>5k-*#Nx`ESb7ViOAUv$!gA^?(bCd~W6pzWdk%(hOL8AZ^ zXS*RNC93`T>n)00#FkX>$`39*bo^`W$0I7jcthZ>uxDeA2=APr*qK@Mn2l{{Vl)dW z(zEt2nIVYQQOsG4>Vb`6to^KZqPOvl1#r!?LzI9U>LpEZN!`kt2FB)#_u0uUwII#X z8S_Icd|zu}rdzFA7h^}QWa_8tfhAv)hM(X?&H1ch zAHD8TaLqQ(wy~Sk^(s%tVFG($RNp+f@+EZ1y1l@|WT^tZH>HzUK`qlTA%b-nE{;i( zu;L`G+>oB&n7{+ew-caB3qm;A0z6gCX6Y4)q+)0Z^7i=u1$4;v9pe%cE|0 zrh*CaOmOSe4AchV@(^4$U=Xuj9W~P_e{*uoBqm#_06D(U*rIHLBIS@DE0SGy!C z!K;fV)i)S5dpKIk9n^6LM=(Brtr))_;$=zYSJY~csxTMaR9`h$#Jk8`GSJye)cL4qWFW2o@(0?a@u0qH6`Y;kIf0y7<8p?}r6%5r$_S}NU~t?p>;t^KK>s z*%J{PBJ$cUFGuR!-ORou<(mLZU2$KfeR5|b{Xv(SPUT6DdCc7yuh__PAZuHOYT^X^4w1-qJ=9AZGd^G@wf9`&;af}(eYN09 zmxU+9a|NuFffRHoN0$T18`X7msrJOU?ikoNTDU`0EpALKuCX1}_%raU|eI&wJm7nc0WmT zbKY8U-`|@PRNPf|g?}=7)(t=6Rw0=w?7?|AwJ!_p>a`6r$=YCLRB)xmS8FBnAHtC$;ErK<0RrFztaHxXjj_A`LT z|3bu(J+3lG$z?ab`JkhqTBISihrJIGO*2{|{{3#W_+P_H#O=@E%RTx1VH%e_$V-G8 z!QQ`V301_h0=xL068WnPS5roU({_(^Oc`U?s6Yer_!hY88m;V1)*zfVC@Kr8WS!9z zAt)``bz8?`$SU6odi9wZ4UrGOH{bd5j$%r5`pWanWw?=w8CM;l$B=jOAgVJosJ?6` zJ9S<}n68}qXGnv%ziD~*QI84haw3wPqODfN8xcS5uiFXjRK&hGt0LX;;O#Fy$>Mj8 z1GTu~uG%xXB3sKuc`VYv>vC%W8euyVoNjQ@O{s6e%|`GYvo_nYr%c{c?Q+$p{GPU_ zv&hSK`?l?l@jDwnXwq%>n2$^F{!5O3&nn;06_;{k>CEkfw7ZtX>fhIg7k_p|XkbKD zQNXgoT{i5WPkH>}uitpBu=xz(%trc&_AaY?t4g}ka5f;bDe&L z`YlE&Ndmv2a$5oyqE>lKIEL4BFdi9gbR5m#XTe3mOKg*-4X8@Re z_dYWlCNzo(FJMMl;qwT{DZ1d$d($A!}bcK)LkNk3`7YX{gi?mBO~X8 z5ucfu_NSOji4kuIQC|so{)pYMC#H&kT_@xJq2R;>LC$hwgvQmVd}~tkA=}V&h&iY->*t*92&Zc$KXX z_d$qVq!kvir5-cmipbXS>v8Qi73J@+Q*2Zd7ypmsuqD7R1KYORDCmzX=o@6I{tna` z^7dXH5|NB-wnffRaQ_PM$H=JjX6TCv)HW{aG#lN?MwL^F2vDhvC+I$U_51flHC$vJ z7j=e%K2J58prX>~aN91o>0(u50W_AQ_9Ynl-@b&M4A7$v04+HKGU2)mh!+4ul)6Q- zVX*+zK>)GgLH_>Wt|m|q3=dOhg7pPS$ie!xh5E0X_4=;(b38;?v*96O@&-fhA{Ws~ zj^t2~sCD8x2XRe+|Bs9B1&|Mf5rtWd30kfUdtb0mym?BXc>3}0QyWZd zflz8uY{!%oIQ^vJ6%#Or=vEaT-bx*WQjeDMsj6v;G>MO85|H^Y+%zX$ej8E9LmZ)F z-U7Huiqtbk%YPg^Lx>oawX2|GUh^8iuu=Jfls8mN=5g(1icEoIDlIZ@agY&%a<9eV zMFh+%rq!Sjv171lf`T|Gk%fh9D`H^A%E~X3{n9_aAT5Px5bm_3*84U^!%N)LB{5D z(1D8BDmw0UD{+jAs1RV{m(cX zJ<>dw-twG=P`9^!!9h+Fa7T2Bml%j@vC}vKd7XxnQNk^;n{P4>~nF zU8(aGfGMUFq=U*2GNlYNFvcX%rRrYhBH2`_r@$7+M5_Ck5ZT8^!pAbZZP9Jy)-nO| zf+T|hNIBm@cd$`RyPBhHR0qZMk`Oh|!E4%~E>O|`-hle^pc5~!WG*Cx0`(Gt^r?_Y zAuLf0qf<~O|KOYG@XL1UFHgYYxDsibngbK;1tVL9)&mP+fn%WFmp2dpbCVfs`ICS@ zC`QduGFpYW*SB)U*@z=djFSeYitUNf=(~^RG;*-JCb89Q6pw(t)hH1oM(18|x9+2)#fpy8f1}epoo>nFbmn%SNsD?)u2jC* zrRq?5jFWYpjY%1{uMnfA1(-1|noUJL&1h+)->7&|RZFRv`4x0gc!K}jq>X|8zI^Qx z&9si=a=Bw?{sYOrD77pc*rK4$G0^WFE$)tFALCxf^c6? z%+`Jm_C`%Z5!?5lUQ87e`B6zOkBitbmN&vd9Mw{IF2o$-ATD#TK7&#ZJmMY+F*D50 zH)Vx~gq^QBcQ29sj=EW2;33~JWRkP7i%-xTO-YO^iaCQAWMh}9m07pCP8NXv<>3{` zsCKqwTh3~9Kn`=TFSytjO!PG>4?Kiw0yv2Wc$No2zdD^^VaO6TRoqxq;}X1Cf~?^o z>rm*!J}BjBykHgoFB#P%Kwo8`CfPF+Xs|y+GJ~n}G%!pCo+89I_@aF2@Ptn_nk&IO znNTODx(gTL9zOcOXB4DKc0WZ9T%1$;cP=0kzs^7?qj0a;n0)Tm;Clh?Fc*>7h3or) z2HT-5cOc5A$p6u>D~!xnr2}JPY^{6jODMjEhwxh9r^RAVQ+$F$wjB^)qkrKZa2hx) z+{88Htd#=Y&Br$d!6x#A~3o z!QznD29fMd;}2b}KcUJ_v3tH+qR$AC)5Sg87D z348i=Ys2GD*cmS37Zv}V?q9@4e7TM5*1}}ZMydr5$_-lnj39Wg8wT_luhyNSEo z+&sv{-Zgq8SmfsFwnx==Zn{HhzPKS9U;UQJ-k&m(;%-cfRLECgNK;h!zIsgahi! z!POjg+Tm3M?QXGBVAC7%at{yn$bBl0SMF4dIY4(vF2+vt5c}Ea(GhG|8b-vxKDvY2 zPeH$h=uQYV{qNn)73|u658cYcJxaztCnFD1Y=@gMhX~#}BHXPasmGkE8`zn$g0A0O z{5Xbsj=hC`L3v@ifcbn(D%%`$Ux@t1#b?yFTyZ(~5%b|fz=!uU@%7@C3!K%do9K3- zo?;5ElZj67ulx_FJ0`$q1U~6!OTAn|kBVnL@d!~;=9*SN{-c2z2O)UIYN{mP{0wTx zhL}8oS?!F!d}g8`9I#@Q&ZilP|yW1(Wz=Ld;un>=9an@*t*whsc}J?c|}dU8V}k zk3SnjOcE-RMVN!MZ=*l3V+`a3kGl(mDxfb*r>8#?U?-Z(^T^1fT5mg>v`1j;hqiV& zIvkfN#0T-{Nr^m$;s58W+5jS}!{jMALzsBXH{iFK(SA;pm^7*$j+m9Uk+v*h5Fw!LMN?=OT2a|Tk zY~42C#kw14>Pb4ty}bU)L zxu>%ndO>w)|CdG7gXP^PZ)aBja=iA;IL;<3SK1hYsBcwIUK~icmR}dDcJt$qqF9_^xjXB$ePk|J<43nijIPt%aN)JX0c^FX$AUt)@$(8d86TeY zE5FA%Gp15cu{K|%sUMb4rfB$BDxNzQ(%d1b9cr5@lZ`q+^lV9x{qX^OWGj2pMbg@7 zCM)MbOpy&Tw;OE;@D7H_N5%zv$c9kTlN&sgUL?zg#ZAF9=A5;%8>6$b-^qq&zDPY= zxMVgC)k_^L1~vN{h$__Uxx$We6`rVE>&9S5g-Slpr9xH05P+#Nzi;uO>Yp4n&UetL zBFMnj|MN`^(A@AImcbqhc@NqTE}`5TQs-a56`WUlxhJ!JZ9-c2-a~oHX1`a=Jd<5- z=XvH3A*QdN(bK>>`Cz5@gIb|5VfJ+XS5BD@(JLvv@v$Hs&W?}Red#py`=pNYOR6ZT zZ6*JXC(fm59eygY;Uir6^X-pNyl0yaLM6G=;e*o~-~Q!esXV(`yekjlrTYC7a+H+y ztP0-rYnbR2ngxB~cKqg$Pd9$&rbXK6{AwaWA#=QSMIEZRa$X(2t)c8#ux~@EdEshd zSW9TeI+sK^^7Dgtx%Lb9V{%@K9!)grR2MN28S?J9a`aa4I~o6?qOOJ@N0)acrLs`@ z&gk4*oDW&nO269+Gf)~ZQaun+tkqUf0yfi27sB;9$j)-|DaH~)Etg!aCsVETsT9BD zt^sp)q7Ur7{~z3u!AIx~G489@A=p27>!~D1%JK6j_x%zkk@h|`D<`Hd1?NdS|4p~z zX9%;yPvsaDeNa9i?)?x^uoygnt7y|rm$uO+jw|PO5?4;-Q+9hrJ4R&ZD@Onw<86xt zHCpWCt9x__DYvVFZaK(nJdg8W+v)8X-`Vf>Bk08MQg&Ld@|70H??21m(tcIKPrbIp zy5mdvA9c4Ukn&qdp#4+jw)!GMZAz`nu}Y}kmanLGzyCJH)xioUo(3keU{cXP2^qq) zLiv^W5AoK%@0OZpgl>`@!&XdzEaQOuig zdbTb_EMg*d_zf$_Ql!f{9S9dn39*c8ZDQGhl6cNhzBE~xB4$wG4<=%0Qm<1y%Sdxi zQhGY*X?>G589QI>bF7#s~p_+wHL|94dGUj#F zRr#l(^{NCuCYPzD*h+)j-rho(M$ae2y%j`|2^!efm3m4?0I1pHCs%$=9<^Bn%G7AY z?OCfww|`_rF*gadnSE!K_K<}da!qDF)M4TT1L3sNa4UAQG;a<$PALnn(@Lk5UjHnd zb)C};lC@0bh)4Cq=Bh*cXtJ&JQ7Ogss<6RMIm^X~O5dwGDz`P|#&*#inf+2JeV5gy z7#^ms)RN0)+3v^auClc>h}MD-<}Cy(uz{PmJE;0}iSheu>P@FSVV##pM#%BoVcphN z1{wW`_>zu0DHu)4cl`{u^8daY{QBF=NGDy<2Ozq6WQO%1NihME=>54!1gy7cZOFDU^sh`i+9E3f+}6rWAa z>aH=6LZlb*7S+qN6e9K3NGo<4IjY&BSii4l0?*Wk+q8$z{?1#*!yKXx|5~nNl>NXR zA`9%h8hq+{Es~H!Os%18P@$0^RNUzN5~0V-xrwe`qrwic6nI5?7+?Nv}B4V zS=RF!*t<9Sl;#V{wZ5{eGdXU`mu$;yAN0S^H(ENdvNTSSHml3F)V-R!>6W=)0qsm3 zv7cWp*Zst(q_>wU=F}!Lc){)N`jFOH0#u9lME&`2{>~SZ&_99>lUFal(NUkrtOd{O zfuA7eXU=7HT^CfHagWk5{ZTD7QDvg#SyJmJ^r3uk?H*YO>HemNvA&3YgxsCfLuDE4 z+u*BI4a<1l;T1X&-?T?-%e4#KkK+0({bx?dAw&~conmwZCsDqM+@MYGM<;DrCXu#< zi3}SXuyg`S;krJo^rm|iEJ_3I#&(sxA!O;ziWLZVY0()g^XbSVppavPLN929uAYi z_1S|-_(LSP4Ns#keA7i~{iCPW%<{H8OD*C7?_9<{7lgZGP^=_mUXYuFOWP3PM_TIW zqO|&)0=Lj3;*CSia}}}QtxpwD^46<0kggco{b{-+Cj_9Pw{IoNoT0+>!?vSC7fRfC zZ^q0nxKxEKfaT7TS=&}$tra(RawL*Q*U*mYP}wtby_;oPD*Q?}imME#=i9bjE~r2b zcxc4ST2DK;Iuh9P*ZMt{adLuGoUlZ5h+uuuFA=U!2cd%rC9-`48AD03$y1UQ*~bRU z$gpa4x0td5km{;Todpl#&VzM6~Z zAZ_(4QleZ^R?j6@Hid>Mit2uyzPuhfExmvf6*v(+F>t+Bw3cx3rb%KaUctQcDu%U2`Zn;h z8U!1$!J3sNMw?)xo?Rq10Fr+f!aSeR;L5N2| zjcuth{*QUgU}?5XMV4*3LuH?b{jgJ%O0KOX&Aa*PNU75TOK}=*PzK*S<#wyoc&~Rw zDh=wae0>XdQqhY&XajOKsKd_yftR0iA7%odR4U5Hiw4pRIpFn@O zdW0~flds*A&VXJ$W##W}8ZpU=is}f9VoinJ(0Jh|XK*iqd@pnowsDaa!-gecw#SnL zVm6^fO7WJSKG;}La^%{$-ek!(FnC}Jl>MjE`S<-HqF3cIGk;_DE%c$#-=L?n!q5#q zPAsPmPCT6~b?(v1rNLcD<;)>?hArHl>oT~@A$#(6{%Sc@2r+iA$f+tfI9QR%EqzNr zm1tX*B&KF?%2NcT9&~tt58P=1%hW*phL$CWe8L%s{2q(_+)~E^Sl5$sIsv-9=4g_w zLwX3FCN7P4t;hi?!q}xhCY!IA`v$b)(u9!h-VQGbEa%Gd+}1OhzO10nrSXHluR#RK zTfI|I9@^v6f|S4a5FMXf7nSQG8+v1f8Ps1EK)Wlglz=K#Um7tZ7{++NHAPrd4{Rr)oIW^uTRR}OazWWHR6dwEx(E%V`32K% zH0g{5O}2VPLEY(4pS~-VtWe9m8#4B+N+;IO@Ao2@tk^;34zi~c_P$eq=l9RBFm9Q2 z!FHFYCC0l-EL}>pHjBOM!ic-)UttWYN9Hg8e0c@->Y`wN2d^}$1&irmZ!1J3Pd+oB zE_dg^)H0tU{=l>J%iXE`n14$h2U&ZBC;SOz9a^{T$+#ypI4!FDQ&)L9$;XAG!-#@Y z^;wR&wJGemMC8$3-mKW3XX7Nve*okQwc?B)bPJB1Ob5#DTzwvngi3il-_QF$6rFoK zlmGk2Z8Mu;2Zmv^A?7^iGdnmXhdCsK%$cMSQmJfnK1Hb%)rLytQ>zfA+5rh^4*955 z=1`I(sZ>6`zx^JM`|taY`*7X&`+C2w=TrUIGfP?xI8O;8{EMZF@21Cs^Zzj$*b~&h zqdrn*ia{&c+XXuEPf!L}w(!f9j7-|-KG}|_)-b4N`57?$6S7LFIGPVm$Ojvw+S#~X znAdYX?eCcgx)9iP-Y>kclv3!oirX~+Hu5Y&1lO{HTZ?YQ{0O#F%>u`Sd&QYP*}GU2 z*E_y;a4du;J2AmBk*ebJSejDjT`NFmis^v5W0^JaW`fDlC26mo=53cK+evO086Pcx zka*RI*r*c<|on(rx-&7(qE8T0tK- zw?YlR%cd6u_HUnd8awMzAiMBMPH&w}XjDo~0n>S5nLN2j4n0GtkjN?CAiaGU2iYGR zJqm*#;(&HiA*nJ&ktE-P1PJmA=yD9n)OL7@xR(YoZtO~BHD&5W=*!@3wUoUm>b<6*(I|(798dP4q0{mI=J_HV(&#q zu%^c2GcRR-MHcQKLS_vWg)zWUQK+@G!dA&xoo7)yF0Lw;08zPSYJ{ z9vmcIqQ=VU)D^oi0>(+j&NFhkP@TL|uq#6$r-tM)pn52;#4)n|V!D-4%ye8m+kHi@ zDP7h~t>jRbS!~g=+jkaLa}WpJhf}r>774KEk1C1bgHS*Ae0V$B z9Y)ZpyHr1Lqd2(+oSKuHT#8N~VPNsXRzKHl(>NS}9fncn>vId`#aE+_LSh?sRy|LTSp~;*Ef1MLes68DbKrvBDzm+t3CKR}zzlVhzk!~5;}=ig`t*$mR?r%P=24R8h_XE$FqgD7lElY^eCl84BCIG*O- zDme5>4!$?u|C`T|D+yJ@g@uXObef!dxUByc&hPU+6isH_Yvyq@$HVgWa!kSS>XPgl zrIz)t>_hXy@1C9s@kJ}Tx7jCN5%*`7H@%NdN(>$@+_pF5?akm|LTU6cI9kSTY`!QO z^L^NDVNVS>cHaEEFss{~DfO*srKmW(XwX>%=!CPj(^TqKWgOlEa#y}{4gWNK)q4BE z!IShbaJyV64>?;68QkF5#_-28lBj&-ciMz%GS#u{FIQGiSl6 z;nS&k#S|VWh=;gX4MzNznt7-qXGU)KK;iz}bua0c`Z#jLx>1(+w=~czMUKhD{ zfe#j3$*lpoLyKRD<>;-T6awU6EMzO!Vac_tXm+%S6q}L3Na#6nF5y3RBqudvwK#Gr zt(R&`-vH4Vzx-A}%{#yebLJ)&f9Wk0Y3=RrZU;={lp{PC*)e#LHdSQ`5G^c01WJOhcZm`_~; zd9p|%Ya3rzCzgdU_kIL`Y7>H6eVB2vFl|F~V*27LzPD7_Ft{z{n{I!lrhV4(;y1m4 z8eQ*Grm1WCgLTHcwTiQ!xOS@Sbn`d2ZM|CjG=p%V2-?o7=Qmb|6tA=W0(7;;P2p+6Zn zWX9`R8#HQW2%i~fpNjJ}+Ile0+5vSl<;o&`HfHox+}6Zwm8cD#2=27XXTyzoHrvna ziafmiY(!f3_H)rkeqZqz=vfbTIZ@E0VAL|(g zby#Qh|4$P3>05>Uj6SH`dau$SCG9es)7AEUtCqu&lRo1<+Laz5XDo9j)Zp}y)!Kn; z@1WL$wuMCppIc|i#`!gkZUUZ1-?D0YN*LX=^}{{tTGB`%J@Xva9xDxjJ1+A&z0G-< z<2!MqdGY5M$E88a%kMYju(s+^<5i}4o0h|NgW$Om;}_pLtE`UOSd~|B^4H{zE+&i( z7_>~!RuC7?lwR60y_#Ptf9yy1Qy;w=H1L^TV;!)<_7u&fvxG7~f|4q0r6Z4Q~=pPn5w;myA(Gq_lnHD|O#B;09w zR%#1UCQXY)$~#OY)LMTRK;L8lZd9b?P~d3yDzV|1-RsnwkL+HJR;IpiIaYI}+U^E+ z{HoLYUUHZ;nF`!#KXgImxek-?y~@5{W-Y+^bN#|oohOXu0BbG|H0iX|rB{L*!c`A% z>!-z6*}f&-^WM9Zce+wrQvdyr)`fj`rw2-+MQr;)`wfk5_xPb@<(z>{|HwZOHC(3cCU~ z*uoC@GHp8Ut#`ersr=E!8p@!dd3Je>Y^8_5;iOqC6Bf9*4^^^?5y94ZKFcNOzdQQ~ zA5IgibJF80yK2DEwH2p}C@Md%zbNvugel4qRXDgJliWKMjc2YEKf#Tf$4Q!Yo35(V zPn|Tx^p=P4g=&vhJuS@fEalBsAKGg&Jd4+&Gmis1&IsW798hQGor;)EU5tp(Z<#T# zexSiyasjWt8ym0ly}=pWbI;h!!vL~MEP$ytIdMy99*I{cM)XV$%Ut4 zw`LJ5u}_`GGMNrCx*8P`#kgwngN*uSjU%K&E1^W`)tPwhLYt>nYsk`s0%}lxxNLG- ze3knK9W(7SZXB6hom1DGcVtH8N+q|HKI4h~7vqg>FS*)14bWV`csmY`R=O?%)GojF zBFYLBGZ=H4f>%R^{r45!Wu7+7v5GPaxdZ#VD5&>&Dh|khF*F;3>V>JoQJF6JfJ$KU zqeagVWJ-AevI;=QI&Q}Nm*)A0cG7Z`jW|v#z8py}&lBtEd|`Ow z!af<&8$TU+;~=}Ow6-;2S)#enTIGP|LaufNqL}sNb5nST`^JdDeUpn0uTe^_`u*m= z#^pXt3KU&rD3*5LKn7E_4>Q6=h-DH7r*$3&#~Ti8=R6aSK_sVrQ7Uychu6>0f^~Y|DH6alBDvc!wFpfeAwp^ zdoJ646xnO&ai=^eo27Dz;A!Y~Cop95w1+wdVUcDj_D|7O*^;`$bT!FiK*uJ;FUaem5WV6=~_@>qb3J4!c-Z^QBU&(k~spzx!ugt?*b zX=LhWrTo8x9)i^(WpWK`TRK1?Jdc88AzO5Vlwg)JCZ|rf&2P8verD*{>(XC%lDaOy zRA}@Q=SRbMt4u`Ss@JSq&~!>JmDkg{!+Nvk>2xs_dG}EgK^gF@hpUG;3hg&*06+ty z^st}vyzSOxppnPs47hnE&eK8gMxb+a;^dj6d`$#n01+*}>krYkb&BCJ4jXs_VDO@_)O(>VC@Hu2ECXOhrSV8WJn_p?ksngyV4hrI&#ob2=6Rh~CO@ zRW^Z&{?c0F!e4{9&YZW*5BGBLeFkskP_#akdf^%)mLlfK$kVf4<`~NX`@?f;dHlYS z7kkR%J3%^c#MEu2qe@%?5WPy;T6dU{K>CkRwMTtC%wE$U?fxdPO&RkdZq!^z=>(w< zk$SDtN)&1NugqJT!8%8ZsxvV0hzZ0;&J&tox)(FZnotVAf%?>SfBN-cG7kkfFpqR%d=ZrK*0)gNAZ3t zc?hUK#&`pH{$^k~kdPqkUknBRc=|iXr=*1its1bXnKGNF9N`O%+9|%#1%>yApWvbZ-1~izc=>l-Ip5xhO$LcvEku6uu(Ix^JiByAZ zw(A7jxje``hG0$tMl7un2i%bmNFEh?O_Hr+_(aebqmWf zw!*ee(z)zqPkXv>2c&(s<#x7+2o(}dMOH-i;(zodrP(ghyF*3ijB%8=MomsUs$~z< z7+E(u`=OX;c zWD$6j!X9DYlrHtlX~X&VTe3mOGNH*L&~#d8K1DHW4Hwh{eXpR6e0+@arUv-HvRVwW z{XOamH1#LNjKkVq!R;5IAjh=_ zTN8x%Si?`DAhRj5!E*o7I$0+*##x`DwdDnJ&IVaxDP~x9@Tp6mEGbJ$phHy^pMM18 z-4QNdr+!EYFu{qS3kq)Mh2U&xkwz3Titqk|C7usG?jkfUZaOyMQzRHL!NnVrfYLpb z7`O1Q{Zo+Z+oYzgb1}oksTA|q6jPTdg~P%U=vDTB)E7`=G_!ZiCMu~@*!zfOS~Hbk zFl~{dOIoPB3{y2D1VJ|okQ;oBMu28zf#$M7v)zqmx3qImke*nyv+~TDCe=w4wN5~F zNMW;&jMyoHaG?o~Jdv#|Yg=E4Rpk;nlC87MG@Dkoo>Dp#B(j+jV83};uAgyk|7hM7 zYbUNU-6S7-_fdaUK!~Mo-J!Eiz*5|1sM7ssgSx&Ozsa{|ik1~$H@}tLMr*YVPtlfX zy5Ab{;aDFSM=8BUy;8qui3Nq6eWx8uxld$o+Yna7uz431?AxezZLD24*iKOe(oW(w zf{1vDVwfca_YN2)0F7pZm)?mjTCN&0gpp45XRM5d@&`S-<637*fZoWtwOf|;pJsV(|4Tu$gq#k>TOkFx> z#9%3N$(p4F&~TyV1fV7CpO-OalSgE&dVyDjg@lxw_KIxFVUa7t*nXY4ExLl(U2T-f z#^s&2&!<|gZwagxt8HZ{I_;Fd9-{mH|Nfp3;E13DG;jNMLzhKh@ngLGG)rrlee4hD z_!85wx6dvQXuU{vOE7OABkMVU4q&L(wZ8kKsN2?=tF)0fFvzDiNw|2_-c+CCyA(R$Mo3p8v0Y}K0LYz3OF9JhdaUxjMnHsDYGn0x`7x~wy;N@>O|SM*lVMzIvV zR$yWuH~B0BDV4QH1hBSW@PiS*|1R5ac+A!MTbY$Zf9z3 z@yV0NiO>?_q!sxb`d$Yo4xaeI}xckEZa0fgqs1- z6Gg^<%xs65xcPa)e`JY}>e5TK*x5e$szq2+*39Ht zZ5OYM9FW~IImUnF?KkF97}YkE(ozt~1p|`~6CNbBKG3D&R>=<^@7p#FsGuw!LVaDV zV{w?f@01DgreFC^7L|D{kqhug$ z&qScf8*iyK?)Picji9Yu5$!(?4k&;fm_jww4M6J(ct-t1Mh?uI~XH`S=LeP;4b za*B@geCCa|8#!DQ1uI-HIdQzj0PL!d;tE7EXN0$o9722GGz02-fyLYQr*W zgjx(E&HV<7QiQlofb=p+D?g#(>kFsp-t$63Q(#x$7G!7x2|Fz8dEVghw&7^0kztLn z{Lx->PWp-c!pB53`PDY5d+tK+z-Yn;BNx5DwNO&WHiOB3!@dvOgxs_J3K@URl#)Rm zPS~ZCb5%YH%<{D0rVtJxLs;Lxy!{nNXdZ| zJ*V7r;;4!fk$3eF(sdYwg#8w)yK0u_A0i@U#In@O?4Ehq|v- z#o33gE5lkkZerF$-rar*o(yy<=;IU+mV$h(HU&Bkpb%dWO(DxVrRb6>=$nph@+d5| zkb=tw@kbD$$$Ru1F#4PC2(dzgdZF2tN9R`9ZG#$?0g@Gd`UlR1^}h>WR}P!{I_}X6 z56$oO6S)cTJiiyYMkZ}QLXB?Jr3sTM*4|`q1yucaI%^aedZU1Nk|8o)7C2;6Z8!I4jZaz-g;sv*whW-o%{bQaa8#4+RNMeN z`^`12Z1@31k!8Xyw;oaM3qe~Rbs77%B7nMYgJsthXdo**vWI$f8*m3(WF-UCod@eL zWINvo+W+a7P0c%-w)Icoye;mJ>LodEBgWaUtziTipnaq0b3I6)Ni{V!)As=CuZ9{y zFZ-Q&YQ_^1dba-$DKumsz*RaB3W3J$!V|5)>N??xI&n8^xFC;pLWA;z%Syf_^k51H z`Cke3EYk_0`SRtHhlB=1H1$gZ({nFiZm&t}l+d=DUsuw9{;86G5)g3tc(^rLu-h!( zaiFAU;H1AJnrh(@;aYjdRR6x~1D3HE8*;3G@ z&LY`-Cf6=@3y7cIcT_8&XP5^w~1&=WE(A z0NV<}-lC+VqJLJ-L%=%}ZO;jbl|8>sxNqF{a55E5J+3k&hS`UfTk>68vO#)a;0}dz zIv(CDQEc1>*-EU&Yn52jK-%-FqKeP z%P&a(*yd(Y_T0xQ`|P2Oo}qIG-aBNJZla|l_pdJ}PPF=;{^=KZDeRRvF}`Rqax~*@ z+A~z)uvS+R3sbb`T7dRLk6g4Z^`lt?$9?*iq-XNlNK?{GkLBNk!+Y#ArXD;SR2itZ z&l#m0Q@XE?edzi)y_OXURn`x<>RW5IUE$x`v0b#oX$b==ra`5$iE`-Dn&zPE;oVl- zVX8*s&0a-gb@D2Dv?h;ZY1ysPT;1h87t>yrtF{JSw#m_bX{>HO$BV5^Yfq`gQ%_}>Z`1vz0Wc>2=r#eR| zzi(<~pK>hL$)EjHtV!J<^lKfc`J{(s2vH?k?i)n8#sigr7RFwZGF+RIf;0EzPVC-*&&zovEI_3wS^yRb&4?q9rW`+C-o0}@rd74hJ+H29WLLd~$O zku=pAD)~}3=4b7HhDI8dJ?%%Kd!7lzILe;#w)^IR7Kb`|o|z&6uAB~v8SQh3&NA8` z?v06%ecqh^hF(B;g&R{$_ZMH>NsV#je*~h zR~ru2pbFLWubnSeam{`ucQM6E<0>Ki_A@SLORUVUAsW~xtQ3H-ID5Az3=MbBt!R~$nBarolJ0TYOJeqqtg~J6YWdm2PI$3 zdEIS{`iCDOS4&D*=wElE{P&?DX|q)Ud%x$C=gW-n=kqT;9vVTKqurRjNTIJFKs6%m z({@Y@tv296pId~-D>BD^`SihY&+T`DTz>nZ)2&CP096{`5bBf7HxJca;qw2S3FZAS z0lh0~v?ykGl%uEB0=HqsKCqDLHzQT5^7d}b(qVcpWS*%g?wuB@4mkE1`3T$t7Gdtc zM_$?Vr@BY<$;+}_(I-R$t$bOlF$UI_A64+8h|~u7(|jQ7rKC_#CrD6z zCrhm#BXI|4N^zQX9I$OGTPUfD?V;!xw?VeB$|xm9`W)h04c<=3taQ%P)yh%mwd_LO z%xcxmj7l#il-JfI`!yqTx`MGPWLR(-J1a*rs6CwNnb)hQk}FeW^PseR$1=!&li;!K z2)BxZVJW9Y#oKPxlteLtv>vpIY;*4hQ^L80Ejw0eD?jfgS)4CTF;wzgm$KHaFFMrAR`{c@68{7h8AZKPh#8nw zDI$7wCy{r05r*zo49F5(YFz`nZeJ+J_x%nV-5J`dtIDAn7}x~e3T^z#Y$AH5+-HHan=WKQyGf`b2;` zLNn%D^|_t}+pmXF?Yi-pX0B07iQzc_JVRzo=a<8vx| zYn-l3puCWjI1%DB4!`{jmW`{X=Vk3G(O;g7?SRBJ#@%_Knf$Gv8bP(0b?R`K%z|f@ zdh+e;o@D;ZDBJo=+SR6u=Hi|kMK<_NC4J2wT~qss@o#(=H?Ddk<-LIocjqr|Qy0Po z{4FJ@XYXp0+LNvV0QWO5dK##{-t^HZoGDF29%TKxgEL9~6u7=};onC;f81tX#5>qg zRlm^iuH`{`2N)tuDd(x{%&1b*G8q~9O3r*Ewl1?3h$v0zcWMWeyN0u;CvXsLxIpoD zr>^jdP;MJ>tm?poK6a%m&ZQGjnthY4#gpl+nEO_pw~j|N$&{Z}W>)2t>gmur*n;1L zN*5aS=?hF@Nkc7Mx(G#5t5x?btU?}mg3#BY5XWA8bruFVIDqsygSb;|(lCeEQ++#R zGHz?qsN($ayVeHX4VmtLa@af4b9)Wi*!#X!LewsCstgkZ3gH7uQZh*IrRP5y{Qa(} zymJ1M7ExOsigAj({=E0qb?VRcJGm#CN#M*y?|Z8UOxQ%z@_hUFK_!Vl20BHv(*km zuM;QIqvdogL z7yJ7#W%Wh#B)9wfdB*5#4&4s@Tx<#%0hfHZKt?GuwI}eWQbs=XwCPVsuzUg5DcvZ4 zrDlVq$-|poNI{tM7i+4|;P$!X)9;cbi@s#FT#4#~)O@1EmO{T^CqY?pomk0{;XCWa zhRd(7sI<;Szf1m7E#K}lcVRXl(l@@{j(Nf1%Y|67b1c4lSbju*=S5$h?8|2k#{ue> zj389z1+2wxoB;LUvm6~zP|f{5!TA3%$hSOdn;EJFzfQ5hF3+g8({q4yofW#yEy3(h zJ|@&qV^e0wk=t4u1&F8>tx^C=-w^wb4xjARdQ8`l0cb3iYbFTbp<96Jx?$~Urmob5 zG}?qw24J%XwI>8ucnMnh0CXpLb7crFyNsQ%SiD5nI4jWrO5kHk+K&Mm%3QV5O6_?L z!V1Ws0MvSzSRozT3(&NqmS-CPUJ9^$ytWJ%j^S$P5D$(>fD>Hc=h-x6ymX*fvyF~O zW1@=_caQMC`tZ~fB(jd&-5Fea8}j)PxEwP+T%3XS<91CZcH#)fA{7*=`_Qcr)mS## z27spEBctdmd7ylU=QdtD(E$Lps}+}$cIfP5s^@d{pR!%^0P3&H=nT3#@+k8NSUrNA|bSL(My~nmM%I9fWA%8lrrU_yfNnm>7liP zc9vE#9^J{rRtq)DnehB&Y(XWWTA)#lw**MwvUrVReGLo~6Mto3z5sDtkk&$0jgx4E zm}4&q5N93r=qP&$jZ^ z{qW<1iDw@dZF3(I^E_3;nz#MEJs$Qs$|pYhc>D=9WxLq;_OSpog{>MRy*&&0!CW-& zw0+rQ#fhD|k%M~)PS}9TuqaVEs9>43U_&xRVtYv|(vIfhF1kNVOXZO@4 z%~1e4HCb>q@{`ROqc3F5TL876GRa@l536DxI z*FslnJq%Pm!qt8)csGehF8A&@i${_0I>vF@^SHOZcT_v+*aysMHAU2f(!hFw+F82g zMZqm&Z`@e`8g7FX3oyTDJlI0jbb(ck%N{=sj*Ym`PJ~HET*al-Bx!^r8mRz{AtH{q+Z#+=*K1Fv2!Yq zX$C>@N3U*OkItt;v`=-o>8bkQ?fkf^G2HEQ@n>TNYJSQOn)Y4vWvIgstnjw)Noz(G zZ;xNwu_oK!7`1~b(@tXAh8N|8?=tvJxu%Y`S^vOQVH{{uW+pEKvityuvuozcWDK05 z?Z`yX==(3=(Zyu!bf|W@08RrCn()YAx>oh9X0=orO1BVDy}p>~6qxHxNMtndGcyA1 z{7_^eLc=F+v$75jB@Z$R5lP$~>i5=tMveG6VLmE54+5(1l2uDB7lO@ghHm&F-i;CO6l->I}a5-on2@|?YwLD(^2wpA54EDVFVu1g} z8>`N*MXtOuaY~M3nx0dWh^0pD&KI~8N_Lmo9{7=a;P+3m8(A}D7IBNN13jcujrWNu z!B8YRk+(N>)B38p)2#sI^;n}% z9JM}Eb?a(0a78;b2rk1kv+_g~GjFvq)jq@;T_tGz;h@zHTAsrrvPO(Zbd1g@=9dg& zoUBzKfhP%596E>H!T{HV{tGgwmR98|Y30k(oa0w)m5=W2dfmgF zvZ8CKT+isciMG6=BOc_C?N+Mg72_j@`>yrj>GAb00F?r^{ z&jMO8>17<*-mMDu(#W+S@nR>kA-DO&uUbbn$^MhK9=6A?YR0=3;+6j97N>R<|FUc1 z6g!vg7KRKAZe=*gS{tzLe^nPAP z;Hyg>NVo(gV5(-cHn-C;A7)Sw1=6clv&@>e+T!{pW(*#mkU6kB|6@5e>AU3)72ls6 zo=_NA%|*uzp;+FQ>0~wY*yR0^&g?Unf&pJNB??!@RbFq`rP4cZlyoSb8ZZ8ItVv!a zwt{(L?%spsBR=%b;vHxj8y6(dyZ%`{1E6NShR)*3M%X@prcA_js2ZEuofSE9^mea5 zLnqPIWKO!qPZdiXFD?8w1d!i$;!zK{CAabW*J^Su{Zo242z4#x=Y=lDDhXN7%(TLz z+R)mA0G%a{=@X__7#-6o2&tyS7f&glypNsY#;5=g6lTR;f$DKU^&w;AhyESYy(Xa3 z>U*Akynsh;b>)5K2SlkMW$;sqiUEoSZoHS;^<3&zRbgisKVk zPV5sk?mrdJdKy^qRNcIwAYb7Ap}XDxZ~FF<8>D?h8ES7&_XwyTHY(T{q)yjPSn zlQp5_SB*fFRK;`P!H!G%TS!@n=1)pkCAorhNXx}OE5WnG=Sl_%pz@k|-9iR4$B}8i zVD`axVG@Cw9m4(~359W*XPIjG;;LdqC|RoS$51odE32bKiRe>FOT$zryVBi z)%32F;de{wPo+AYEpvQW!i*;#?NYIoJ+&4faaQ@D)*l&t%SioobKBeR`p-nJnv3~y zQaYc&Q4w%C?NpI^vwAL9pUqXfw5gt_-0{!m;2jsv&lz>vNnBI|Ln44{+7Py6BHzy< zR&i>p9vYi7DsZsjvP`CcjENC^yoJ)C+%mUHMAVVPgiR_dB)=40)F#R6y+pfHfVj)j zCO9FxB=2Uo1YVhBtrTGFrzPN3vNT+HMTOoY$Qyr{a;l5|=ph%gL`o7S5%=BJqOn3J z@tW1C2kSLY%TFgf3da5vp8hq1JSEV-AVI==%(B|hI+8e@1L&=ISNX-pbS@gMXW0D- zsK!Kv&et+ z=kY86Tg7X2rc(IvKh=rEg0HDWXna&nhEyG-USIJPV8OoIBhlWHL>H?VMQdQ_*m)*n zL4rva3NGy`=994j%srCUK|i|Yz;n$NlJwt9`bkD6aIupOn03DTs)reej_ta-xfLa- zMB|Z)+B%*1KNpzq~X=z z(zvlR!y_3t(P?BgUx_l3Yd6>@o_rwwa}LifQ@y&-UM%k%0D5E1m3kqOjq#|0IbeAF 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

    *WW1T^f}FVaD<0fuy0OQVJ<~Q2Bsw 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ⅇ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

    Hq$^^5v*y*AuI%biK0B8d5v0AQD(ulgKrg)? z*2q~E3EmZA9UMt4OzjU>3TFT^O$Nlz&lF4TYQ?ByC{Q9XQyTT#35#Lc2HzGizoS*x zKgmF(EVwEabPLa!4wN+Y&dAph!>c}2I9hIy3oQYOz9zXIh7Vh{td(7j^RL)$HQcO> zQLn05n{Vn$yQ>vAi6wgHdba%rYg?e|pZb*5W2`b2_DVI6tl(|}zw$ew_e(}Am17#1jMvU@T$zPXM(Cy^d zJ8eGCHkUPz&du8HWHnzW#~TONil$))zgtTR4GvM%7W87fb3O7^P$i=Xzr*kK<$o={ z`kHmNf1`68G4H}P11Q@Pu>@2fnfN=IOY}=vg8t;z$j3Pm>OiJSyX06xSUjjP0jwO@ z4YjS%$fYui4?xwbV$wRF2}WuN;V9uJc4b8U2VUOisA;rDnl2Hp``0e!Kef&Ptjd;nWhTWqSymMO3!1~Z?}AhCVu&SR9-UYr?856P6b+3 zhM!U9tMH^7bIh;-v$;=Zjr{ndCWA8V5K#N6w1GalwnH7v-fk_Rybr8l+%4?ET07R! zL#L;f3Ql5QYiAm5tU2g8d5&88mu`)R-8E#{2G-Q!=#qDT($*k1#o}kE z^7#%8afO;@9>y7(xaEe^3!#z;)g{8-A*T>q0UmePHl=TO2py_8-y{sWbhTh#>m-3t z+c;73oOV)=fSks?A}p5*mjT}rq1mU?>?*(xOz<()te_bl zWSpH(nkl^Q1P@}+kEdS;*p!Dt1-A_aPhbT@+4Q6yu$`y5GYiZa2Y)T$3yBK-*odT7 zdSHl@gh{)*r?li-h}tKJ+(Y^Y8Hm({fqP@D^Zo

    9McN4oO^dg}wvRLSx(eP6<$ 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

    oz&9>k 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

    s1?J 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

    K(rOf9yCQcwXc<`7Tn@=Iu*?RH?v!1k82YUAku` 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�T_V%QiC4g4Yb(cO-K&6#*in#{zab>TvL0Qbpp{J#bVxw%~t9xg&J`3^c z(u6*#O7$^WFiY~Hq2Pr{;A6v7qOy-rd^O^zED@AlT$|gv;4k%EVaRLCFZ;Bp``_r3 zWk%2E7u*ghtI^n?SBpXO2|FfZod@ZcJ0H4i3DuTBpFa~SP6ukX4t!Z-y5kr+9S_^CbLsO1o?03$@ts7?LWXS*)Y^>!=#Db%B*d4L zSR0T>MjtwN%G+*UIDvZOTsGj~2GZCN;JERYk^xmekUpBBZ!Xm6q5tb0!EqQi8?cmC zCJysPvwYa9jcz!|Fdk=HR%;_0V$D90jk2X)$BHVJ85Ugs9u35Q-i2N{5r>RwWWRklvgO#P5UU`}L?y^M6=cU1 z=#;hW-xQ{l(6##L>UL7t9=dro#=4AQ+X!;c@xj#@?yg{4RTJcr7~5YlbQ-Iy7NsoO zh(;u$QGwL!HKG;z#c}P)`mjN+9pFEf7fjpVyfDU}R4k5qyl_ZLvYHa?cMB`S@D7^G zPfIY6VHmU-8O;`YdTF8R$1aRkxzDPqB03cyR^}qCy({fsoO!;W0eH+72is^s}!A26lYJSz`^7Mbu z*L1#`5qH_y5w%-=-0*1oGJ)>h;p8Tx)sjr!;FHG=3g=HwDl zlOkpAMZ{2q7H&ktPnV1fq^@KNUpfVKpmI8OI|B z(^O~zL%@HS`*amAf)WZSKaE$LrK?(l&#q6ic*1QRS!?XF-;FOg|D1N;^ZvZ}kd7t!f_J9AqCc8}qCT@l?3dp$OKSOQHx zXq|AuGn z^3I{c%a^5$3y9Dwms&&i5f_O&_Hi{dyVO;sy{4rC>V+m{W6Jy2{Hn73t!At#)*jOX z4?-YLa-J50OpjFSJ@^n?4ovMO$Ss>DFHKh|pks0y9V8XB33T`}4XF;)1rgf{nAS4_ zRT5p>gfJ&>@I$q5HccFF|UC~$|Kh0OA39!nbb?X7$T%am|ka!Dk z^bPsviC|k_rp1gP`rS+8FsX0r46{PPftvH?!glpAPn%WZo#7!vAk*RJ!^FHS0}T`G z2GE4Y*g<3HZUQ|yLLcJWS1+a7{tS#;|Txbj5C9p#<=&MC&y0IH=#7FJr%uNmj*3*gk72k&HEUBXR?of{CRxKQ^9Hm zRQPg8XPVCQ0O=Yq11C1nt8`VB^Y&D}oER@3Ne>SlR((TI?cpOSPVfSOwmIkuZh!?M zC>jWmVZGXZ%eEAu8ujr0{{hrGfV~%0%=hLhOGfQwfG8ThNcWwMh^~qk?5(vieND`4 zW2lnp`>lWq)A*wJL?^Oe)TLg<4ZKmj)xQ*b6lGn>4VZNFoxv-*Y7bsPnXVwlt6(yh zB*u4`P!&Lzd}8o_0QF5l)s-JlhCQL#0MoC+9|<7bU%KgC8^}i5XP;Am4-Ukx7bbtJ zNfe>aWm7Zs5v%cUZbh-L|5llM{q*kXJa#F_yjp6SBYeG1-69nh<{T(&^Ng*XSurY@ zd&80tO~{k8%W zRiH)|az6`My9mmD0_D{VedgwEM_`;IP$iqtXQ672`Gqnd=slo?o4wia&(nKKlRWLw z#GBYu0n8kz6lkCH+ODoNuXuqk$IH_Po!yoyP;sIwq6G>YfU~u(lI>jMH35W&NANP! zwI^7Q_`z6v-B4m%PXKmRP(4dB-2m$D-TLVhV45Web!!iGPd6>GD>U64^qCFy>=AN# zoZRp+;@5>!k!satFAPN~1|*>od2j*%&c7uDD|mVTEbECOWp^WdtX|hs3iVA2ufzX{ zm5$G~u+SoA*H=*UAaOrw#Cm!_^-ru7pWf~3X^`z!uO^5X09wghw1 zTL=+fZgfpMb-|`^OJz$2C_hS*>%McyC_N=~mNnMYlt ze3xrjsWuF*cknK;YgcNEywUdL)ZwRLra_H{?n`z7s#l|X!-`?xl<+Ijx6`_YzN^+= z?YouovLF0n_f^R46oKNNk2P1x2pKhp0`-izp;8UUoWJUs31d|z5jP7ovXUO3aX#|n zuSPayvPBO%pY-*d$Fc7-PWh^qd&GG^Lq4|D_|({CJf+em*Q7vn}IdN)hDsJ@DHbO^%zyPuL=Dz*c03TwRenRuiD>ESKakM5d4q)Q5og%I8SLV~b zOe=Ld?p)Cj^GT#Hqu+y`*AF}ge19hKcN??P7eFsm*}f?nZ1;CsYdsy4GdWc2d}4B2 zP3X?z3vK7fQQ*^Iv~^ik0{EZ5vXA<$bCEY`@d4RwlS>b`R6=qE zEY&dSrAO&y8n)GbQpE3{@5>+Dh9yt6g>_h*@YeSzOvYzp& z7anf(OCPNH_3rEmo!`qB&Y%1JPVG|A`C~tT2`A(3PrAyd_FuRp=X>p0Qk|=%(-G+5 zdps|VnVh+Z66156`DUruKdf@|i@8#;5R$^Skc)`e4j>$lBIY<%7inj-BKHD_O2$sC z!B<44iF(k2b4z;zpLZHyxYBDNFH zx<^ByNyg21O1Gw~Ty2N~cI*s>UE^XCX;^f`BTd*oF|!m9=S%SP)|$o15S1CI2r)zZ zRSlvqQBN96BEWaAvg`+?G|4t>op+tGe$qt6PLZ_1UsajY1`~CRuq&=Z#x|22AN+i9B`s`M8teA?R-y8lE82#33b5cZA*ltQV44}B76J58 zyFSI*%P=yF_#6;%wfkA*@o@M3TZ(l8<#)K^sPWP1IQfk}sK<}VlabRvbu`mQ`!eCo z(a08%^ZL2BpSWO*9AO8#U-GAZPKVPYhW@-GV{mE>vGIND>j{9}OYIs6GJXaK4~dkL zrveJCM6v3x)r)L@h`J3aBaHoRLw0=Y@_jTqc!!LLeILL{B0o~E6bTv9i_*9bpqhOP z#M~5ESZOiGju~xo7*;?8rs@?N%@ec^Ck!TG*4(Vrf$&VPCps~4aPw8Vd?8;O_jgX+ zEuU@tgvut;y4-?ask?M{mAYn=!RBoO`Q59*QUAx$dH*HV|8JZvLlh7fE^y*TbEQ_` z-r?Q`rsb-r%uKBSQE?T{Os&w=w9IguS>Ywr(3Y_m|K24>&)Z_v5_J zIq&OrUC+x6eEvwLn<0_o9aYkH(&YV^$=AlB?L$A5gh^+}K4r+zf%rq6Ylv2I0WwJD zzpLbr>1mP>ExdT;?%db@hHY0DI9w$eca-e69~qRxRT9#nrZG#`B9^(K#lFhXMej_m zNgAcf9V?Fm#^O;7HKo4Js!wUj(b3QBcBvj?d#2RBhi`t}xa;AXt9{VU(j1&;fg}m$ z)*^bK0U&vf0)nmXtLGW}aa=iGDK(3Nyx;CL>w2Mg0y^6f;NE!xow4>(Hze$a4yW!^*MQcLD%?~Pv#bT%<`@S-d zgTBhocj(*yz$c`URVT{RUcn$}a9s?29kM%krZ9jtGF2~=&Ovz?RQf42GSXjZ~uDv#!AJg)=#=a zKo3{(P!eAMtY6`FOrr9c8lKTsQe>b2q-+nYq<>GTJjZUrl8sIE4FjjV+U86uka#kc z^G%pDGIb^Q#XB30O2mp!PrGcg7mskha%a^%?Y(kr%FG?Fb6TI0!~ZN4zL)nDx!5ke zl2g~*Ka&O+#c8#26cSi^He<^-9%Zh;sKQljLc6N%D@6@QNWjj#!X*SW6^~ng27I>qcircCR z`6T!4D0136RkY27(Qczh#F z*ot%82?->O?B9BA_#p)#|52=(((*$$@V~EjRelQYBk&wRRy&{)G^86EF0xA7V2n4ms2srH$H z+%AFcbyJkSbXWciK&45bZ%bVn%;Bab&j`j`z8KcQMyr@;wlG!ugfIb>e35FQy{mLQ)v_Ohrb<>HsI2*60a1knzV?@86GZNToeQhi5KpB5^9-Dyu>QuxVK zdj|wlBwJhDVz^9nk5JudSVbzv=8#nB!UWRSsc1g5>WNTG%9C2aMKN47+a1{jlCgJ ztfj?daSW1)Ub}?8Yk7pQugHA1+%5pLiy^~m5(qA;Vj@b`z#E#N6m*O9S&URDGN$4D zsv8u#gfN~EAp{IAGIlz)VCRIW11C{K40ju@;wyk#s;tzTePI!hyZC0=kqWi}K-`3v z)&ObZrR!Z{uonO(d~0#~?N}7m%`-%$j+1Y* zQ8Q|P&IY1I5@ZiU$+1C2D#U(nQVF6}#W$!PYf#N-PzjSV0apX7D&z4fMwNa*J5P@0 zd9w#M;^_l3cUbX<=(LV$-A*%9*#Jn#3ZWIwR0*3l&lnDka5n?#5u?|t7e-*-!J+vL zPT^Id(T_u`-e~Y>s$&P8XJ}|T^I_{Su1^T%;SkPW(CK8&y(V*f2Fy*O2PWy?WU6(z zLHDxZJc+J8ZQG0-x`&7?V#u+?mVqr>Zt0=80A9KH+|VJ7StD1c2bNy|Pih+!hm4(S zgl-l4(e51dfh)+1RCjF-FUDWCpwNj~m>B)eho!T|_3#G+vsn*fQ;63T^? zd86*jDV%sA2H?ssCQrasmm0L&foQ3ep;qaG|0vd;Zuo0Q1fRgpXN;;&v%zycN?RLL zGL}>`!c=2ugw$cxwUGU=_xPZtE7l|>pZ9MoxglO}%Kwsaj=;(;-H@LUm63Imj>fL< z3G|Y_ASVOdhF4d@ZWWL@ai{UA6wwFjhtQmNA)$$?qHm$^s`q}F+iR4odA33I_CcN1 zh8&?tbx49-#2{+f4lQ~FO;T$B0FsrCdj8PeI%R7%m1+^MIPqR%Z1!n2BN|$EmT#sO zF)LRjgjX|=CMn6^VXo)I@q^%P-*dMC`sA#CnjJnsScEElmVh5kK-pr;vJ}1Qr5)fo z*fBO^&r(JkQ)SS1ZxB@q)wD|!%HGoBVjeri`De+ztVEeD;R6tA$C$?tl0s5AsyVdK6izpT6ztZ3)po}@ zy5sa4u+}6z_1y^~N9n+BmA%V%Hpa>lXa|et=zDlaqBQ}yga z^NSV4V0ZS?+{e#z`TJzHuTYdaiNF`AIk8<|B2f7N9*_7mght&xZ12T}_)wu{>#81Q zV)?!BBnj$LzTTksxgy~?pR~dBQs~wsL@VH>HedZUaZcX^F<*-2*%IoTUdBk)2N~#u zAcIIL?u?LuY$wVKrrhgEiX!5r80v}lH7ZR@u}KYe)OIshiCO_L!?p<8cbGGV%0}H! z$``j1Y3i9{v7f|`GC4U{NN7#YuX+x4m0>FxCS;o73z-EiKqWIK^NYRmU!g)q#_^*} znZ$EBW?UJTtQ@j*#RizZ07)kdV~MmtZ4w5=;hNW&1j&&p^G2E<=-l}7sN07K_cBrCEK}z@P-eO(KNUVMX}Fdn)Jv2g zzl*jUTS5`86bXGDtyiwo@5;pmLA0A5*K@8`3*ox}gK_ z#g^;qg|&@sTM=JdBn9X);5u8T$$$uprfcm8{$&qjdYDlbnB1ko2R>Bp- zxcG7>!}xFjEC?_Tr4exGR7W3;ou(Y@gsvlGK5A;9G* zqTF8MQ@gkBABDIeA}n4Ef&FHVk;1OaGX2y)jbM~5A4^u0B2`*pD-JIF9&DeiW|4>( zbof?3th|K?V=?58iRbR(2^(mbpAh09M$U;sB>Akn9(SLiD8maIGFXSn&MQQV zE$#Sl@r7Sbtz{80IUIvpy?zl;mC(wLiFDuRg zjS3Y{*sZ2s<$3ZEE8am8w~!2~Anb?l{h|IliRA@;n>`#CNUVr!;WF z@B2F}VSh3d|58Q&wQvu2ha&Sd(9J*rmwxG2?dF26z>z>}Qg;y35mjEl6o2LrGpsKl zY(;n0U?UGKw~drxv|hJc#+!#G?k{D71J8+0|aT~RP&Lj1&#cp+?n9jh1qBuauf zE53M>p%k%QCh;QAmReqORZhuAKNTW{?1RAxkH{s4-c1l6F~m!pfZOMiz6a^chO}eQ z6QzV>!}d{PSc;9J24_nLy0qIPRpEiF3@c6lC5&X>45y-&pT+9WwjQO9D`?K!z?C)( z;I(I*G;<;>NwPJPYhQ4;9IA*dRTK+Hw>%%2VY`oT#-5z2x?_ntk+Q`9j-`ae^-6Hs zoDT1A2IG&q9%PrV4qtmQi8q7K$kw6!Lef z^6p5@j@x#gOL#xe(2eD3>E0y?7I(M*#D}ys6?$kuO0(*G%$xADZ%*$ns9{bY1jr?b z5hrmfUe>S#q8y)%(zQ&hAz_-Lk!Qu3rmKxTOQd${i=YY1X9hbCv?CkYgI5osQ-&F# zG?W7s(x(k^;2AYDpI#yE%$CRv0MOK>jN5O7sS;<&0?NZHvEwz^g$nTkJTdyHah8MS zU4#DCo_}?XHa^6WIS=n`)d&R+|%o6R2_-MEERyopBjf!46T?ZO((yt%n|RQ+adB_2FR&5SkcB_w5?4Z2mT5Sd){tm^mRR`Q=ia=s{?&5`U* zuq->DRMXQgnrR$YG>!X=|D&?^X>$XG0q9g~36#mS)o*~{x5Z1Aj5(ViLxp-PpE*jx z1VcK^Ri+3kkAmNoJUCQm-+hDNy~+JmxDnDDfa}q3bw5Ma#qhEiE=6qE22@fUTpb{O-&jH z8sXMDou@UH1XkDt4zh__{kL_>+k@_y_lRc+ zCNBy{CJh@0?o6g%Y)##Fc#$I`qkh?2UT7#BD_=DKG{Z%ieVO#!k^T3_lQ@e%?{Px* zUKd#><7MOjV(08i2Yx{Vhaa`FIAIQUm3WwV^W%Ni3-LTGCH1Dvd zk}eN9#t$J^l~t*He-k@Q)&><65_nOz$hSP?>{f`b@=dU=yMEWx-9SkF64A)1!LiwevXCk&(Ypoud{AGRDtl27-xepOJlF?svJ%QKm&;^nSAowNacvb?c2tDX8c&eU7~(e9B+auXj^yifdT=_s*I+=wzq z+`;*pG$wUT{vO_PYGHQ*hc2@{9ng^OOmXM(UF3w|s*TQT7lY2nQXGJ^%GB7MV0(NF# z7MKfP3f&=s+RDsTUa~P%Fn>g;{wIuZ^t^h;3IG+)04epbQJG{}B7c9MLK8dC7!FjE zic0n+<*I2l(Bk4)d6qKy?K5y=P%9h=64x~q-g zjxox-9PazXCIiuQ3JA^PDAd>HTZly*ObIdM>?T-j?fydZ9wFRmo`z-9uig9~4{?L^ z@E8L;5VNelN&VKMfO>g@Y)!!$63E>n0u z;@tIzJnKDqx}1gN05kfMh15G9_u-(9X$VQ@P;;@{3HP3uPb=$Y= zySK{DAm%AdzZf(6Hl=6o?7cHZVeAnV4Zl_w)v4)x$L|f8>ll?9ebSud~V__Jk2Qb`?wN{3WU1Q7Z6FIt?-f9<+9tI99 zcbtG)eAwZZU4U_cSt|f)&aBAnbu1}jD-(KJqBczS48jpa;OaS$PoOedY}rxfb< zv!DiW8rhUcW)|YH%7dLEL!UmU>W{!ma7EfLdq$(XP z2k`y@U=cyi0u@=#{1=^r@b|OCeMCJlS*)=5lwN@U?ep>)YZO5jyKKJe{$OOWoBFfW zNcCUl_A&iA=jfisW0(1@Sx@dP{v7=0`dTSQCCUq;{gExV@q(=6PXz1bJPO*L#C6|f zGGRbzX!IevV6zyJYW09a4wytNp9mpFY>aqIk|DY*h-pFtSWOI&>tf|$d7oMnCq}nR zGsy)$t-?ZsfsqJ)r#JO7K+c)SMW4Wzq-kFE-p(3%DGx^V{^VZvRpTngh@hLST{WMn zc^Gtvxb#FT`Tc9qrQaKQ;)@KZIiZK{tbN>JH6T6O!KYwcl~zu>+G|j|G>nrjh9q9BHXiH z`F@Po_%lBd(8qTaLSU}|a+}xQD6m+)hPQ}vJ}j=1VL9Z~x)A=-kc-Qg5_zPd_b`VV z&fsIiPp7mXNVE1g*tbU^`es15En_%D?NB_v32-;~m)L+w%+;Kr!YCrHiWw7~y2kZ4 z<#Xisia?fWJ{ma?NVH;(qzwN{|7OHfT>326@ZkQUpq8(wIC^g9b=sY!ntaPSHW1q? zG>@OtKOGI(gHK;VHBsIqgt9^~?QGOOL0(Z0N!}^5Z=WBV>(0QU9Vg4XNL5_r&k{a! z>!l}!`A|~^_IYrt%Z>|_abw|TRA`zDX1GL_E*K{4Iq(i&$A{=cu!Y_ww+H_{?GAjB zhz$H#?AQ>YlODE&+#q|ND zS3klFQ?AICK%A18{Rh|5?tGQ_yG|TEo5_eIY|P4uAN-4}#pD^&X}YkJz*X6_Q{#~s zY7_Ab(w=qrIXVp?fj z5)ie`O9NFqB)467P2Fd?Lx{ zp{TF>x0Yuh-3I(G0Fe7s;T#M?xVBx|EzxXaBMa>j0sx|W81X#b0A-zf4uI&D^4FADz0Y-*=uW!4mA4HV=g=|(U-L3R*(3fPJW zBJJnvV!#dnpP3Bsy?+eFsy6Rh>}=>@u@OXW4s!Srq+%zSGHr7C0Ei+0JybO@^(?%r zTDWyOt)v-Zo)D;773j_0VK1`V%miCVK(=%Sn&RR@$yxXb$wU`T&Fo#7p3AWUV5s#U%9aI$RyLK;&3ZJBG zA)CKAl;pUAx=Ka8YYw2ajetq^MB73jkTpYsA4us}hDj!xw}-&QMaozAfp zRY4rsSH0MC;S5)SQS}cH1rthg0MG7Dl=dBny}G%6XORsR;=cyTn1sCYfJD5{dC_XO zD-vWVIx0s>IQGgu002#VjI)ze+p(Cx{;8UN=ljc@Z$-yjh(Q*IpdmjK%_X3qAo*uf z45w1!?IJwo@fCVrD8EQY%V2qt(;&w#a44S zwJ?}R;M@EiM_eFRFBIKVJ!&Q>wv%OM-{sf=RN`eFGrK~_jH6qH30vvlfrz46IdBOC zM_R{{tUweA7*lI1=WLb9f!SxneqS4v0WHB!2qZ)z{imR zk@iAh4UnHzV5e#DHZcy^x93OR4m;}Jnt6NJunaeL-vw= zAWk@+=TD0DDj{C77_2bIKZGTb>y`~Pi4+i70`lyKR%7JnF!D{gP!j;yrM9J-g}N?A z)&4{1V4;RZ^3z20G(-NTXv;Lj|93gEUhLN-$j6LoPU|C2)AJrxXbd1x+X}TiFln7- z8ZXNNt^=cYUeIieLS1EBNb$sLBGk6lbC_>B7iP{4U}CEKww{x;7hM}Dc{V^e0L}Og zfqOJyvv(kGW!tk@DGvd&(hDHV=^V%e*)@AQh_X#s$CM+C%8NLVlZihF+)(TL>)H`*->8LyD=v=rx z==70~Gn&`v^7n}71%bySk^J>(fkNT7KVK~>h{y}XOevmsL5L__gA)+}X9UPQy=7m3 zDDr8IHo=zP*2oJ2&9O_3MpASS}7^dUd zHFx&57F@L$td?FFXc%w;=@LQu0?=SMFciLqDX;U#Fuw1!sSMMSONcDt_GlX@<~3?>n2-r=An5DZl-a2q}Uh zr)>%@h>+haknr<5jSH6sC`8cLk#D@zJ^=k+2x_`B;7j>{Q_TIhIrrTQq3Bg`O*R;f zk#Tg7c240!(dg1ZlgWZE4p~dfiruFpeIWV&K>L)B_gOimSSF6G9 zfZNJiK0n>}Sk4}${Lxh{g{X%@CJ%%5Oy*d!K@^jSt@OYx6maPQkcTa(*}32{OMaJ? zLfBD-C=&V(tCzp~(xMfzjjFThwCoW;maoB20Lllj$hPUspJkNcjEwuwH9vyxUB0+| zH~Hc%{J@>fbm=3&f3NTTOWXFodz)+Feg2vGqS7?2X`x;zIGzVG1T<+~n&?eR+>rih z=x{pf;|wzUr{PBS^hZKMeNE$wnsJ;~30)LK$^tLLO8Dwm7y3F@efHk}(53e2p}Mt?5`4Nf2VYS?Pugl5+q9=m=rc2C9Sy${~%BAxc^vjZ7S2M+k} zQ~UR!llYN46WrhLMXBw!Bzn2Az*9zp%u(RsHN+4A{gSQlbI;4*O7t{QzGKbe87Mk7 z3E3&hJ^NPkR^o8Vbwt_=zy@#oa39hrW(0gf`?8ge)F$phMgOaD9ZJ2nq*rqlgv>i? zJ~=pVcx;(`pROfH7&2O9e6ywbv^b1D+A&J5t1l{kU+qY{=B$0qd>Gg9Y*323+)-Oo z^ZZ&z#*v!ppr$UjZLFv$ZHo7f=(v6w3z@P5SH@CoK(E}nCH2068jc9N6 z_#+ZgFib_iV!V7udEeQN{)0w6=|bFjo;R(JS{cz?*%=esI@drx||iQPDTF7p%RR=VYC6XLW0Q9-?Lto?Ch>qq^Ez_)#u*UScug}1v_Dh)(q zhI7@X?;04V{}LJ;lZqWv03i;jBCcxfSL(AV`hHBlIg<-*+> zWn#qG;*Yrhei+RH_l-2j+wqSq`6`?Q2cTPKKAiel?7rjI<>ly8fM5D9HrGBP8KP$* z&E3ith}cJkdJxj%aZ?r$Er(Br z+zGb1)4t|^>>Xm#dE2ue+KESFUcL@Udm%wR)f7=t-&`*O+$gK0idW4`A7=os+$o=c zyj2b=?4?%Sl(=X32jivm^M6v6Ss?D;&Q&|`+>_;f`8VMG`P*m>d%xuxPHsWD0lL=g=>!i}s7OfT zVu0s?in{LUYb!Ikw@cNn6ILkPF+NtyDQoK+Y?X93&cH3gnmK!5GOWX=Jm=qwZe|hH z(bu`QUFYGUo$fhr`B?i~GtItbL|~nL;WJ&geEId-S3Ew3qYi!nrdFikfSW?25SKqMQ<}?_F-V9|T2KnJsoC|7bZ> z9A+LpaNvy$!m4T!)6IG>>xXpch`w84y5nr|=0h<(jLX0AMGss2n+)8!V{OA(KR>;= zS)j8+n)Ca|rU)UN+bN)NQ}t}QoF;36Dc3tNMl(Ov zH6r5ZzrK6N^h)I{t)TbDAj;PPf&D4gF)p$@NuHy z!U7?S-XzFrCFRvx56G*_()OO3)8*=W$^#rX->Zs<`c_&U;WzVoXu%L`&>xvyVNe~x zJ!4xPmXa)~UTM9gF!<_3bU@?>;WzhdpKAVmu2|n&_uAPDf_+^9y=~ARbMS$?ee9tp ziT$yMUzT3UHP}lf`Jh?c207`;e6=>%@l^WoEIw(4Sx9o}YLLUDg2?C9liR)EM)fr_ zg@$I1`$u!_oW1ka`~bgNoexo65QYtE%P@sK#1Tug?$^b}mD8F}$#tbgsW7j5?dd!v zL5#Jj!AeYs+4-9b!@Jx*n8>cMDQ!e(uz943%3Enu<{mHNP2|q=9vvYQP0fK&)nl3Q zMaC+dHayz1Ft*^URs-#|d&Ivy>XM7r#~uf4jcl$8%YS38{5U|}K(;hb4^;*REtQ7N z)3F&5;VDeJ&F^bc!v^1{U4?#o*E-&@@Fpe@iVwJNda}n$tgIUMboYhp8PE3J-g5Xw z;;APv998rljG>EwQo~%^g#A2(x0=He0S9aI)Sx!D7Qzf=>{qRZ{N=*QivbNOm-flr z9t}xkADCwP1m~@8wS-@I(Xa6w-1Z+x>gE0fG6(YCzv0@5uRr>-@~99aF%5UOQT4p~ zr$lcG_x9FZ-7T2^SxP5zkI8W{0wT=GbVT86WpyiSa@WB^&Z!$sH!8#uNc91Z;;daB z*}1_jBH861wup-or0ktr$-mgzARm|XLFxETs2T4uA;hK(--O9Cv)@Stj`+(>F+@HrG z3B(_I(kmK&Ei&~ohZP&?t|aypRIULpZ>Nu0LDS&An33TujCx^c31SP#+ciavM;H2^R*#|it=G5rXVm-Ot3M3kYc?5yz3292LlsuyW zVbHehb0@lH$@(_J?S~^PV|G%*)!V;vgW#=rA8#%eE~s)GnWdCAy6ih9UzL8wx31Q( z+8;!+3S^Jq?*4P?va`7mWI%?!-i2O{+DRCxfvW6WLWbLTHV)Co$u13retuZo$<}4# z_!-T`*YPShvDK+8;H_A--HtQyCwkKYQFmuREf$Af5%ytGLDHm4HV)0D0R@9Qq(7hB z{0}PPI5KoagG8qDMH=d?s@_Qk&op}2BvAK=KqKN19Nr-l*NG(X39-A)fGMIWQVm=# zfk2-5DCrkB>#vA=uN);Yr=QZ4(!=`vm0UtMa4r{TiBLT?ATo&vF{X2nxS2f zz@KmrhmpjmBgl)iPZ$PaC2-Asu{sI)$BFY?R4-=@x$!6u5;K z@LL=U+#ivcng9z{SSaWoP&4pPSt>L*4O!^juU`?4_ED^~;Stispe#dWxh@7Gf^vH^ zcWP=FIs@wxKvG7Qw%7nv{N?XldJwjRG`|8`#C;4uMe%SXh^0&h}mP)e^ z271KW08~GF{{H zlB!5Lg+Oyzq|V%QD_;NHB?72~#f6Fb$w>fm#L0q)CZo(k*h*2?bpPxoXM{=jrevkL zOKQp}yk5dc2i?wO$N}p(H0oQNQCy@wfGOf%)E4UNXaJ1^IV$sTGJwljWjj9aC9*-L z1K?0r=@&sMER*Lsf5T4z@f@(Yg@vyFws_00FSNEiUw7iu05l-i*nR=JdnWHs_Ta`; z-WLG$E5G+*H#$JVqi;Z>>Ee)(@z4bKb14GCX4m${rmjEdOe+SQm-=Js4b)p}OMzCR zBKf=B_Bp9e3Q`*cAxX)7MrS0q@B+;x;T2Ne+WNtVvjv^EPN)^WPv(D~9C07Hd`gV# zUNOIW$9#%#{e=_BhE`Z95>&JJd-0X0S~n?Y8z`jHt`jS+c_Hsk2{KSf0qSZSZGilg z&Hc_+sc}_lbu}9R@$g*ta**jX$Zw-`Gncmwz;i#3{tkEZ^m2<#x*D}nItO=rSL0Tb zRXyWfy?cM#hY6_v^RXS%c~MDu!D=Tjg5AH8-3wgC!@f_RgG>n%PAQNbichO4pI1Av z!3px=6IlJxJZl6WfDo|th~4*BX^~AF!U}Nz)KGRRx6c$$STnFsrrp>;)=c9`^|zi+ zl}lMZb+8DtY3nZgP1c%!_0iWV)o|RyF-^Ubv=>qMnh6rWm2@;1If|+ny{1z^8_66) z`lUGGCeNNqBASs1BCorm%+uAK`X}K z6qU-E#dpY017ulGWjavNVZvy_+2D1N@dVeY)t?67ZCT6R28X=-={*q_pn!4f;l1XhdGD+Jmh>9&S^9(D_YOV}pab z1}Az=^MwsYnIn3Fsf#&Xjovq|xNv%OYra9Yd}AtA3Uvy*sYq&0LcfEqfVmpBjp2tcF* zF{x!dQCapYXIv;~#}?47=bgInqPAbQy+K>5$+vduBfBb*hf(xKFP*1@GgtV{JrTEu zQ8VO-$5(quxlfxWrppS{Txk0-?XBHL7?6Vr~3z#!%X6l8Pd035g zcvFcEe3Opa3n0n3oN$L@mVLKAPqYiqRfzy9P$r}~wYBPO;CaSyb_k9%05TT^$@U}_ z?&dXMd@K1$q{E3tcw1&-Y2|l|IkhvpJ8!le46vWNc{}t(6bnjU;nh8wT!%vgDdV9G zXqeZ0KJ>-3a_oPr0NcAF-X?imrYkfTOH#YgI%)L}&ne1BM+7ug%LJ0VD{ds6E{pIK zts7iSIjuE7E$lXUy6N0kL<43D_}d$2m&<+mb*Ozn-_OymKr#Ru=)YGCKLPgp6li5= zQ~ROQZ)VeV%B3P?74B$I0PO-k9o3q9zwL-G0m?^&&vqXHZP^~qlXmi%TKH%IktR|>_{5)Z-;IPJ+r6H zB1k`C;Whc~@4T5qORD)y>Ik>+h#-0AS$%W9GJ}%`D0~-bU&+VdGA|F-a-LuB(x@}( zG)9V;o|I?B%^RWm6m7Hh;p)>SHvuJv35X&Do^XsZ@;d(hrmpeTA#1yZ&m1MSbfR2n zT`SWn4cDT-5^LMU!F!h-U((Ndbh%+#y@E{o{kZx10tdB9@65zwiX-F_YItQucs#C4 z{%Un(x%)+~*))i{aSygtaX|nH^2(#4ViqYqq2F}BP328Agrhsg{5~@NRNVjUr9~%} zUM%h{K0wY5%@e=RQ+xX+PWm(P=`e`D0;eB2OJD$%F@0P*2Oi^aV}hfeN!nXiTTN4?2q-4RL8ev^0x%2{DDp-ko_O&e1IX#;^(T(~AZc3F~W!B?Hw4Fm27MObrgt z3u_Py)Rsn6J)Jsp-GtiUYclQXJ;AGL>2N$?6GBN`BtwG)7IaE|l!HPP?RoR2GaIXU zzl*(t>Lw?fgTpTk-uzV;GLaabw6r5*^+NtC1o4)c4$`*TI*aT3522HPz6koGM)mh; zit)5pHdRsAr+WpH}hCkVHrrBu(;`!$(=Nd)*;}JE@o|@xXp69CK zHvNnvbot#W?^;}rr_uWQS|0ov)<3!8q_7SolDn=og_dqO_#5EV!Dq9vL{t!015>3q z4^UVGoXFr{8MDesz$+jt<&`j(aek)9h?6DfJ2Nvo|tKYxMk`%8Y%tk36)SDC40DhM3q zTM-jfm*9NoI-~fy*Wy=>4(`X@&J`uk((MBt+zXv|6(B`I@5|4NIhqtu#k%kDIqlEG z=AX2rfj`v(?>VI%{I2w8Y{V?#k<-j=l^)^TD^(%2?qws_Jq3^hyI#h}?Ac_GrE)@7 zIgb|sbzc5jhVX|TpR_#6bp8Mo)i_$a;73|K5kRw6h~EUngOMCe`CNaas_K4> z87PMK0sU^CVefL{UC!W2j^m2jlHLK^cD?cFx!_0hZ`Q)T*~*Hsl3bTM?TB^rrB|KQ z=m^F_@t@&y*E1JkCOT)m9vAKx;89z49R1Ly`7R4zXZi4y?-UNK`r7>dh|a240G3)tp^-HYpNbvBv3Vblk;51rHoL!N^&h@q7gRTZ7+s?%&oepG zHF@A7Sj6?}{UeuGfQtKs)%)#*?7qHh0)uRX(ZP_5yhr66M5yA`ug1l2R}XFBCMWO$ zGSQB;Fu=^Ixw-e`fwx8GX(JsS6)={erl0xGb%LH3j*=f#{iSGgL(vcT$dRE3Z6seW zt1LqMw1IgmA)KNb0VD>$<*u=H4U`8P>K;k~k8fOxUAQ&~g?!iw4PPmhz8a|7)1N_) zD4p03eKl5Jo!%DwA&ZHR+81{C&E3Z(ZE#=Ntdrl*^g1oz3aDd-~S)xObUo zLEsg)rNZ0gSL9;;C8Rb$<3xi_!MWRp&-%%}cXE`XzP-L2`0v2>vQWslIcZuH3%YRO z>0+gv=c(hOBSVH;lab7-jj!kdS9RwK+JnsCp$?4!LP+?X>=Ph3{X)oi5!5##mxolfPFqLo0vxf`(=1hedlT$*2*4kE?DO4QX~Iuz;?0E=VzsOf#CVju74E$3WAQ=U zpx0X7nbRiP>;L9TqQ2*@haR8>3cfG#o(t^xPCmxaHD_o;#LO*FHjk1dbh<#(RZQ#> zL>c!9KjjztQ#bx!-X+~SFSLS8RQWW;Po}(F3~BL@mcKnXQaMF5`KNQ&(qQw4o0h=e zjlS$_-)D>2|Gf{oV{$2HWKtjFG4E|8Y%2FTCK7k)P>hdkkocq`2i-!0+DzRdBp;b<%rD0503);O+vqEM$$yZ(XNDu&x+rIM^>j z{S^MPKgk`RqTH+znP4y$Uc=fSisg(4Ae94<;q@$pk?xka@&0yRU6q9R->tZm=4 zSW_Jt3XrN=*mpDE;7pgNj^|yTVW7xuxg{9wTe;`N_l)d@I4|sk9GN2poc%5OQc1T~ z47QW6HcypHS<5AC2&GKgiVx=4bS@!j33uNGYV3wZc>8@&60)HmgJ?y8{P-GKG1fkzYyN z_k00OQ-N<^C2LRA5=Y+dy!iB)X5UZIiAg_$#J7?}^u|c;6EeAHN}sgJapP`S%{2SB zGRwLO>mM;Psr=%jasC#;Gle9EzV`dqQ0)PBMwXi1dXDgH?xp*e-*OalUY|cF{eHpL zkvMI1%M316yfiFJ`5_{NF8IcYF?}1XCH*c}rJFC44TlT&%y6lQplS9poER(N%I*_G z)*dVLf4*P&GGpAt?lm&1CPYv)WE^nt;=?mvL-b3=u-hwFa&-W=eUeTu{H|tA>Z;Ky zO0tATe|jDTe)cf;8}JF#dTc<0 z)`?{?z^W3qT*#U$R`Bzzx)=a!4^%uR?e3Mf--faUHb!cdFmthsfyL6aA4>s$Ra!Ux zA)%~@&RfQJO+W`-F3KXSJ*9&aPz#e)WGGv=IW8p6BxVK~{=K8o=1`u0w#njpdH>Mc zEpc*j04?PKal}^g#VW~2SKpa$-o>EOom-y*g!*fCJFZ14<*>loFNAU~tR<73{4KW; zOQ}(Vm!co|_}v)j1%`;8#!e#p>PQc*lG|A3FBj@qDdVT_e@~sFkZtiw)z*QdUlItH z1RZJJrtXEs^~)}ix)EV#tSG~XsS9z+nZzDb@ywNxQIpta747yz=9OPK|3}h!1~s*I ze|v|Tp3pml-XZj=hTb87Q~^UTf`%#zY679RP(%dO(2JmS0nrnBSGs_pp(!XTDs~U& z&GY_e*5u3HA9BxR-;=%W-?}c43P3J#JbI`6kcM|T*5zyMwdhqVhi2p>`|kf~jJ@|h z#~0pM+g5Q=srj*LDm{fyxctPz;@o`p(cMSSub*hqSWgupk3O(}usGkCQXD3UUcMQ9 zZi)TOj!B&YJKl&fh%P_sRsdIVssk&RvqvZ8N1k)mpA2R^x0T;GvLMAc^HfB@XtHk(^C6_d=j?Jw$z{!{I~ZL5v~q7Hr6xlzhuEmaw&_&_eTgv z?cC<<>`K@;MC1`xWR7r&@r#ahs#s4l7MgnS#0p0y)ysoHS5G&Zz`F2Rc;Yj^M|2Cd zpw9-*;My8CsTb-jwKU(hUw!`_IN7}9$$`!GVL1HVRm0k=KD@J=6aPB1a07mt97kgjpfBg9uozqZ_m{w^~c-C%a z=&4n^gb!LlK#)C6!7&;Jk`^&g#VO$HC_MyhtD|@iQUW|8k6%7SFg8bon(3_9 zMMimZc04DK&EW-rU%i2+*t2!jYf~PzJ9CFwi;Z(;e%t+bXHIjsfq7BfznE{*g% z7pZg8DtVyN+S`nP5`T+{(2|K_97g5o$+>~s1l#Hi z{?!z$-&wOP7NxnN{VKbI4@1_cL><;x4(X;^+g^vuDW4*(Ra#h-nb?U4Y0vaJ&j4vX zU3ybm;5Q%d_1n@V6n2hZkXem;@O=_jV!Hi1iDx&TvwlP*rM>h}M2^nU9lCrF`{t;D z7sGVPQ5*)o3IOx=Ez5A(ZH^|csbKh2RSQ0pz$0a8`QI*_O-JUsztms**-$x-GMu1I zJ>-EH!&iI0Dfm3%n2wV1^<(PbKTIIb(iFK&T-yKvl8I0WS-8tYWOwNFx1gO(GjIYO zs^AKjBw?Z)zONDzG&&H>X}$oZ`L2cgrPZ3H#ghMi%HG1SY!{J~tusq}K(xtX)nmk_CRjUcwQH@9}v z|I#3Uo7(}jSWqCayonr=3u957DY8b!(<)bmAkbdv0v}=g25!A|54lTc?+FB7=&N_a~A9nz^)BE{W|O9+)o)f_>6R737xH;!$*4->gJ!tZCe#5r+BKg zwfWxpK?^VI)n>0OTU|JQY+>NDeM@w?hvfT*B>%===l%Xxf@v>v;4lQ5jE*Ds7=}li zDvFM%iUy?^Q!iYY9qtRjakc^ILwg_ao@}M5g0-nkkfxZVrdyU+0kM-~pU_+LGAEI{bZ35@`h!T%3SK^_u^A@vsW>|>sQU?aW+p5MC5rd zZpCoPlZHl`hL{_Ns{OM#hqLjZ7NwD;>)LinVH+x8FNUty?Z3hz-?rJr0bipl&f1UW zd(If}n+R|`d!Ig+8Sy4Kr6oA>ko3!3?*u?p0^h`PUsXCa(jRkZ^wDD{Y)=xgj);LYo}YByR1z|r#F>R#k%r@B(DM4Uhnrnt+2{YNaW9VacLtND*%*pIC_NZF+yFL1km;>iUpGd&2J>rAHwk@P&94z?bJ^wuy5n5=YZuFk-a!T{f*Ms9Ttf-I;R?-cZnG;aRh4h?%b zi)PHyVTU1Hl}cyvT64lpuxn7BBi#D(2LB>}N^FE}N-ow)hfKBStVk@k6tq@{T?C8N zY*~m*F{N&=l>6vc6*-$X1v%IDc~tKFQOk%O$+qvprFSeeqyaHR6G1^N%jF9q^r(%e zCuEU{55gm6iXMum8bN}GEF45S^!Rg%&V~CB6Id;$Kvas%-22BQQ&_=~#q5w0DaG=D zD1`$MJ?WE ze<`lDF8y@Vd*b<5#yOb&xaDwB{*^eB&9uF6iM%e7r5UHwU;2^?Xw7d>fPUN~*T(V> zh&8oiV~Q*iWOizmHRe;-%%428!YK3he*LF zYgmfu?i-}a>a@@n%TCPQlnoZm3%3vz-O0}%?I+M@L2KTxeRLlN*Ny>5v}JH+r~a+R z+AD(7jBgOi%%`46DDRzf)?dc)m)r^JJ+n9@8pP9LsroO93$XpMibk_Jv{R~d>Yzv98dgt z3FZkBq<6g(erta@rbM%C!!$g4h%Bm-YCMu^9M@+&XLd^Tkug41A%o1XAKEL6WIK%+ z-Iq>yFJeb#k)x!f!6`VvB`MNw^ogHIW{yYf+mzlE)g{y9#Ya^V{U>)5aN$1i!Z{!8 z7F|kHg8YW0@NJTG9!#XU_$R2xXzJ7xf726}j;);Wm>J<+hC})tiC8M3+EJz`KM#i*$*pA~jzfmujfO zD%wRBrVR2EOkmoC*;gt$Ig$)T`wlj>!C$3Hxu)@-^UFRLYQAFekiRvgxIqit^OWu% zyJYN{0B{47WPX#Hojv0aNfv(x-wutI2Y+)41-Vjl=MGLB5MVOIgv{#zXMBFh!%KBR zSi&|7E-(qb$u2b&H42L4#-DG-R<8Q$Igp(k!Yt=HB;8)t+D_{fo_`e@S$r&YCc~Z? z-JB^{RsNF~_;_tGQ!1ylXmTQkWOV7wmA;BUj~ssypPPv9lOGQ!DNeAc{ba$ivFgyw z#CyrnrJ#Qv(ntP6i`rC<{LXL7FTDq~q-%re{V8(z61N3Yo5H1iNX_l^trRQI}ZqwMXA73PBN z?(ov6m-zp!b4CT%h_PgGdxJ%ET36e0_UG#R#{*wK(o1ZCMwz_l~Ix)gwf2 zbcNT*+22xD^P}TTOxeH%;#Sl|=Nb+KpGTKx3SUm?efRtBeZ1O@%PKzI#Dj$8AGK*WmrT6FH zE~G@knWoLPJ!}~+QX4g=Z;~x2(ovrzldTKHi$Vv`|D~|!@V#|w!QQxgDv4h;0szIFvqk^H zUH{u=(qRb`c>gligf9H$J&MlP0}jk(AIH?dbudB0c@V{tzKta3rvgGiS+E{YFcHkkU-nlV*3ISlrkz)4* zmZ^q&*Fj3Q=i?N!Zz>nN*iEbU9WG3(55iq%G$vIRXBrHNEZI61e?F#9hEOFlL{Gjb zw@C#Usc4M;9U62JeKkOCKM@NdZLv)|CXzWMD)Btpy%fRO3`sdLsqQ>;!9mK4H?^^x zQe{UfQ2B(%cIkpaK-}Yx*)>&j0v9m>J^OdHa^2sy)Vw#EWO+j7{3KHYO8?9jXOb2e zXsr9>>r^1>^sj2FR5s=iCiTz1)?Yr+`4*C%b6^fxtIvGr4Whz1B`H`7=w>f5-}nnP za2R<8?#xSx`z0$F+Od^7q`OL+fT^6#bRHA367*+RTWK_hsjd*DVf+yj)!ZJDeWSL1 zR2w$3xhL1uB+dGjMc}yy=I>^1dR<)GyXBwn_2#zM*mjn@Wv7Ys3xfVdj;HSiw49_k zlmj@Q#?S{th4O1mPUiF!jk>yd`GZZf@7IAHv?WW?DUgS^_Dxoob$x~1L=*7US+lhGL^e30lDp|upZUJC#P{HA>sWYzXtZC9 zMcDIUT4*YoCEGd;Jj5ySTe-*Ud%jyi0H!g__w?5eh0BAn684vUq3Sa=C`--TI|zN1 z8MA`ZIAbuMSMo3Rvap!K)J?wO2~&2#0E)&Ke{XM1f#vGY9hCmS1j`wfkHkHGPalK& zN)BF00A!J{#@^^xoBKuJ_YJA3Qunsnwg3JD3F1IVDv5mt%3sPz6_~MRyR9^MVJ<1+y#WJC(U98>j&I+Lbf42)3@w6h^*01EkL zx50H%QMZdc?em3SuTSII#i7ZUuXy!RMe$e&Q`5{1eqrv%XB*Md2ZtAZy)T~ojPnfU zPCMM)fRAu7RyAxT3Cu>R@XFEV==VutP66^Afx&K#EPNw;ELdzE~ye>H{gRY02U zSu+tvo7I`0gL&U&S*}0XA62U_F+P91ef?M@TlM?+KPp1hvQh0f8ilv*gDvY=^{h>- zP9kMec>Z!|T3#UCEBz^7x0hBC{k0xK&uSLJ7vnRPw;-o3>j+Gt)1NiXhMMk(o)U9# zOct7nEN8IE%>{Eda5p>*a-%#N1=txu>-S0%2gQ%)u$D;`mbP>*t_^E8RILdr6J05p z*b1q>56V@zWyr6MIad+r4vVBpsISmG|Jz#WU`(i{%{rfcaDmJ>K_6c$l=O}0^)=rh zNS@AQ5nLd0d=?!9yOgDHNk!DEr)cE5%=j1aIGYJozhKF|+Q6yaX3DBtg&;JV@UMm8 zgd8Ea*$*O1+tPFn{ijbBn7q!-g zlrckxkzy|D(W9Q)9!OE0J*SXB%MP!WcCR|8_CzRKmgs;q@vZ|Gtg;U{aG@OHWbP#x->Q2^5wSS~A!tb3G-c z8*V!nB*Rz5kEt1kW1sUP@jF8Q5GkV9BiwYTl1w;8eyj>Rn;OkTDv&{BeM(@0KATxr zCag{!ZlP`*u_8kCStSz(?FLR##&q(z)f;OyYFf4hGQWK;Ad8*^N%C~EDo`J2A8;u3 zVL~{Cj~mb$kG;0N>pMdqyUr)#%TNAdzM;I?8eZ_Db6?XFw5i zT*vdqm#?d&E;w1b^Of{HObemlo9~>&HRuwA{W+>mVNCDcAgXsLMneAdkv?`){jUEqJ0t+2GUh#_|l1_(Y!L>$x@etx?A&x=VFB8RE`1QKUI5NzK zE+uHD`=f9E&c*nex(P|eE%;URo!%K)$mN4PPMw@fC&riEFJ6Vryhid=N&qI{dGFB6 z=~`^EZ3%`Cb+kI)`YNA`mh(OqTD}P6HNTCJiO$MVfM92ZSK=yDGk*Vsa9`fwmTBqC zRi3T*9+;|HH0Bwzu|bEZ8DbY2$-J{?_x!LlVZw#jTUyVPbjKxJDhwMMOTmvxkIq}} zZ~yasV*GT3FN2k7t6QgyX$o%{XVqE{1%Xp%->9yM3=r6F;?fiZKW7;EkRLhFNCv!Q z_|;ujv3PwmNx&&HDz+l1XJAil=vr~i!-~&&m;dg(m?h_HJpe-ss^UtzOSddvg%3jwXYQ)iG|WmH zoz{KQ(B!Ujv`^=>{F@@YpUHXZ=mvurcSm@MYN;{w@k&d!#TW(_7r50%V>M(zuWpIZ zB!%w|3KFWgAJ7b*asb?PG*psn!-NY!aiJM#D48!T_j+|Ls3`R4s>#dTA%&~(F9a+{ zFp(ptY2q}Ph78nwART_!e#eD9O1GV(pG_0nk|?d)!q0)s|Y zk98J}xcgeRpJwWD_jc`5f9Hi)pP<-nX>TvqTJ{%I-~B`xv%hDV%AuJOZ4Q2}JIWqG z%2{vBO?Ry8vHJsUZNC`AhTUQBk$y~J)fs#LcLt2JZG9R8^}YJ8L2lPKL0<5#zi^kN z=p5)phly}4NSL-IlwQTv`0o5d8qi7Slp5wVr1J}#Ag=n0eMgDbR`KfZaz7wI06KuC z32-q0rqqB7$7+@y6n7xMpCJ&p#qU$i7hxh8h83=h7H%rEH)QAo@9xInHR6D|1Z&4P zL8-Nek;Zl917;9!b#GgB=x)F~zv@g_oho=7TMibBdI<8)NDENDa8((i*{H{F<@}x1 z5_hrs^fo3+M#cq)Ik`puURww8w3xpNIN~o#TA9A-&(yXKMUCD+bCxtW;DipPvnLY_ zRj_f#fzo!(UewVAVdsWtX$|X_d}V@`-(XHmB?Sblh3X|mIzYmuRYI67!JsPC$VF3` zTwt8W>cfa`qjQItAk4|)y3tHegsYo>8ynjYR-XYZQDjQ=OI3qFAA-iy{jz7)H>>u&ql`$>T)NUCq z!%W->Er=$i{zdyL4b&U9Z<%pMcbwfF_cMSkr$_ppaN3r+{F!xY;}ThRYZ}P?!BRd# zE?ARW_A^3-&0M^S%T`jbT$1;mzfkU$fFK$520)(3DvAWb^)c+0VeDNb!~_BPPFeYL zP!2B*4Ie}gaSKkmu(E&RziX}l)gC{2XM1`}^`OH(=OX#qm)$LAZzWG(VP@%Bk`{qk-sGtMJ0sGx*(VGmYF-CKgbK zf##@&AzVA#uYW`ujq6lMyQJ)x-?Hx|;BZ0DjFL%ukN34x7}{OAby%t52X={8W5m>eN*dEYf z{R|jOdcuPUm?vN~zzPPF&zQ7Gs~Gc!^OCU2U^@;mEUayCkk)zS5tU@(y!cY`1i!q95Dv4YL7CP zWYLR(zoVo6l2GqR2qt1RyC$WXbVmNB3$yQ|G{_A;wu#x|ANdgUgOi_$7(PA7Lr5sI zjSmU$34y@K+w)lO|ZNCT6*Mo_fZfV-F zT2*w&u9TSaN9X<7u>ScD@Vg&|VXw2F!@0h^RnwI2hR0lIzqfm!VK_)Trrzh(H(De8fC(Li96IrHQiw?qp`tJJ?|1bexva(Ehk|mkfe2a<5<;D3YrV1n) z`3qF{mbd;YUo3A=kFWPiQ;pWj zBT(axD&tZ1i=b<_RB|QcjeE6A!r8&66Qf0f&cA#p=QeV4GT+HV(6sam`(HNmn>YZD zX^1xjH3QH#Y;H}@_v*BslwnR12KEudt7*ccZNgj$4@Ix}%piYTUvum4=1yi0JSOUC zi91xm^xd7wOK%I+=r#9pE)?h_ zUIM@CHM}T|ZN17ysd{Zt?ARDhVt*rU^=4>B=54Q*Fax6WQg!u*>Pjt$@HJzoUZd#y z-u1o0uQp)E^%5?f`ZZFWZ1joL0;WD`3Nb-rjQ}!O%pj2l4I<1?1P;_ld$eEZY*V6( zcD>g>b|Hlh{Rp6C{CP|zdG#gxtA4wlBJ(v0-)}d1-2Irf47hh+e|z0jQASN;U(sz} zMz^QmU?u&Uq>FxfMa`-?*gDqpBFTI(lIZvK+QI7mSn4f{`}n^GuN~7u4R7z@fxRyR zRjOa84e_3$1I2}`5qB)jqX12rMOCcfJ(b_x4-z_zgr6~*qB70W<%Nq<0f(EYNVp8AM8Q&*r!!*MH?s>V;})XbTR;R@JAs zH7W1UlP++!!t-(K$=@lfZ%Cyo?q|*L@@iIUv0=aA!$gpyvL1?BFNEc5PQSXMeXhj$;(dj(U*+J+XLMz%~&`9 z5HB5)DZK*9&=*X~-TdrZ1!Vl7Pu3Wh3uvEhH(tAWN=;dkwPkDVCJSqCvSJ${euM|~S-9-whmbKx5;r(l8Z6hGLA(U$yXx{U=0v%Uj$L#_ zP3eU%kc>|RZhe1lxh+>Wf4<+LYj;i#!qKdEH-$AZtR>rPs{V?Gw2t;C+5e=gbqwb^ zq;&=WQ6o>Za6XpL#UiP(4%X~5cYmb(m2phw*sk$7eq%ZV^-Rgfyq0Es`tjuTmFI)O zBfUtuMc%)ZtE4*IR4@0*y*&;NZ@%M0mafv8$6G8ls^=6}>bGwO3~$+&Sv>6y_%yMW z8Ar#QH1JcN+TK1m>$iOF`jGpphIIhB0KnS__|xN2v>Dx4*5_ zLrW^S>y6~fKeJbz{#|!|^CRJ%7Jx9GS-bZyvc&YhY(+(|mgeA8D7WfZWzP?)K54GcGE%2^pn@3OGLUV9Qzn**oNu|)i-1(xDA6 zEN7ad>(x%|J=$&?!QxI`>yvy(SaC8IE1Jtr;;@e(GF8q)=PX%t?JT zYpA1;s!Gh^sXyzl@Ws-0b_C+yD!^I=3e8 zzGn8{9;x%Sb`_`d47=Ygx14)?9bwdSxYl*y<)Wb8j4@ zF9=L&?_+`v9PV7pIA%Dnwj~T|g=n)WN@pOYZA#Hm*=KEvWGph#LM;EtE$rJQp|=Ki zI1+@l0!X=^1(BDx^w!XyB)=`4x51DpCfslts)^M`JSzfLM`bbRcF;}%i|3PA(gi|# z{jE=ag|gVlRd;dQVRx~u zuz;&UJYG2F#hd-=rctb{Nv#x1jI%jPmw3zq7qT3w%HYo<`S)`<%Q!=nT1#BA<({tl zUT#Y{7DVVS;fJ4|+Fb=)PZ?SqIoO-OcoB!!1}u2-#)oV?!zbGlDQ<27%Q$x-E1{KA z@k?vb5<0E@rVQq)u?&eCF%BHfvqQJT5`bld4aS zx2M&z{HEd-9nT=*ndn4^Z?%F!Bps1E`SI;#rocBW6XNdN;y=0&*YhZ2l7WWERsyLA zGwm%bFV}s8+j*Zqd%2D|*~}f7jKT%YxUG?ej2-ug009MC8&;^pBHQc3$ox(M#lXe&sOpVS?et=n3f~ z*SYU7#SOSA81vmP(!ri>(6tb0<-}gSB_%*%v0O%G(%F=V%%~`h)gxA?CCviHJ5uB= zo;e7QAf}2Q(m2n6htSznUC(KNql2WgK)}JInd12K;9^l1+TU$ z)D7?m1{$4dt|GN$o2jEpuz+#R0I)o!JI6LU`)o@!-P@jPVO zb1J6v$pM|?VjsK3s~A?>I2qL&kQoA0tJH5*R=s-GNe8tEfcv5L`C_@82ALsMe!97Z-6Y4!5w87SWT)Y5S3QvKK4g#WfgzXu4=Th`geW5jw5f?9BcS zapPy8_Q`&Rd_Hu!vHyfe$To^@^s#Cw$vXbN&mFl_mah421ZlB@qhOEc+3sH7Yb5^c zFL^9LU-YKOv>wvZ4Q3?a@l){+lMzAKpM$8Rqd@Jy^l|y$*{dT9g#v%VR8IB#qsEmI zI!gFzIbHN4&Tb-G%jTH(*53zBdFDjrX)%6xKO zZagIleBY1Kel`CxuGjg|i0T8*2IqpSx%J|Q#8j_5*yg?_6*+;k)L#8ut3<)a9qgtq-q#%6a|w-Q|CZzgU4ru%0JS z{r(e$5q|!`f;wcP?qI*$yEEt(0*75$H!}T*q7Gk&$_oyQ-fc;j-q=DOWqD)2twTI6s|Kl##<0Rc`gQ>%b)ftJ^>q@q3D$zAG zW;Fj-vuYa8l(Em{vCn0hpBl3o|EvGIG^45ZT#t9of^E(k^xOh8W5F_Vn&lro&_7zh zkUB7;42&uOgYuxq3ZO>{K(8z?APEdg0(5a;Pza#&0Z({=eqNwg5Y!_Av@=TpXy*Ys zxqvn#@Bjw1Lx4^w&;tYdV4%kk;3+Hc1O)U0KraaB1_7NQpdAD}1OX2~Kr0Bi4*<;| zpa}pP0H7WKY5|}M0PX-l1q*P8gY_;LxCaMl+#D4`&>{(Bwj_)qiAa=$hl#=b1UcN% z>^5-r(@=J82&Wtv!p+GE0mIoiSy;jB97s+m4-CPDKr<~)f?WI}Jc1JZqLPA=Qo@ol z5^{19ii#Lz6)Aaj8D$MQHLRkBmWqasnzo*XzLBmmPTTa9w$&M3D{~_=t5asyI7{)bJ9}qGJ7*_byo-&Khpkh99X`O`+1K9L-QLB`!S$@8>shC> zXPvyxI=Q(y<2@YRJe|&Z{r~dDyPb1(XO@qP2eZ6gJ-yF*d%Jr3xO(}zdiuF~o_F)| zcW2f)g1ZmF!zaM=T%eavfY=jCML&SxfXxrM#9yU%SowMuB9YhCnu9ql1Z7@Qqpgv zQAio7shO0Nj7(Bm4mm9^HN7A$qc}aQFg?2{Bd0JkH!mwMKc^rsmrBj07UdP*%r7b} zDk&{2FD)*sD6P21jMv|*uB&Ul|FEm;(c{PcPllcjjSh`Zj!!=Wp8!7&azeruwPN4* zEEg?(x@UIdKTR=i*$qSlC=chUq+BSXziSJi$rs{xsIxl^mG2yuxvC(_k z@IwqlDeDtke=PUsueBUW3$wk9P(pW;tx6N~1PM{mL5ma+RHK z)9fa@TBi@+qwhPl#(iL^Kg6qf_e6Zywz%*@oj}hO>`{Xen#=AMmSV z`DVi-?{s9+9dT2+EFo|-%e@&wWXrTvuF3rkrGAVVh2ON z$(T$}>or#=jSQa-d%gF`!}c$7uIY<54JnmV8_rzhi+_T=r{0l@?>6h3QxYevm@&0%3 zQ%3U?8_kWzK%`E$;6irVqvXqQslI_P*%_TPDKPaRw&K^ZT^mC=>QBL1Geg5aHJKoG zdc)+%-MBAV$$h(~cQtmnilfJR=cMdZ+Hoq`3io_krlvaP7HD!PO9e@JTI0~P`ct4r zRIPi$Wm;tzu6R6WE)aD*Z!O^*`xfb%>GZmm)$v3tf38o&I1Tq@y7rBAY?e0Z!BUQ7 z<;Zb~dL?#!-T3f`3xZu~j71J)W-jm5pHf^@J6D_;(0u;$%%ZL2qn>^N*~3~hM}t>{ z8XL^rln6)dN*edGvqNJzFYG$r@PW)87Ur%0$~>ujb-K%j&$#Ku@C>FH9EdR5$4gJk zEG!um7*FE+W^_N=N>5{&;)-lTaAUGfSoo^; zDe`h-xSVS#e0>v0&3uzV(zTW|?NoLpNB-=bc20x)y%v+W!K^Y91)lPs6s01q-1Ce` zf%#u+D!HG#gx8PK^=GP(mnVkB*W0X5zV}k36QU8m27$cGtKMfmZe`eDb~G8D98v@1 zo~}*Ur6y+%`-LU0D@S{Rqc4|bN1SXRd2 zCO4i>|5Ytq(rl?NNN(y}W)-BAQ8WkqM{IJp(ZHPu31irW#s zO&5Ex!Jg+_yM6fsm9sxn2eK_xAW*DeWn6wUpNLcDT98`Qtsc)^8QJmCzRjkQ-P`xc zV&`mh7N^7E(8SQ~A#@{SM2UYXr@LK>@AntfiKaF@aDSV>**Z;$=^Q1nvHCx49OdBK zhd5&KJa?^yt{rL(2B4({2TuSY<>Rz$5T8QuJ?lAT?{=6^ixjVHC6%IZoE6T(8j7gN zSB*5u@d6KL2+lTI>P^k(Up=nT+|IzoIG5K~nhF2I7+d*Sg)%ia6?{1-^19K}B3wp_ zdvtZoyG#QbK^>L;Of|2S>%Q-7AE38iZY3=m4T~t*@$JNo=&=N&0z|9hAvR+&`t9Qt zGtxW-jTSo3+WXGyS5t|T?2UaW_zdjbBMldZLGl`jj%XQ&UpvI8Qoea_Ju?zqNb) zyQ5J;Wp-3jU!ygSJ}rbMyPWyW1+iKk5`K%Hk*O~1?Q|I8qAP4a(5=cH*_0M9Or)re zc_YJfhq!lgW=>gdWxC>rMc+1#sf#-!)n1ti=eNl;w!}l64%?NECq|_F{2O^CSh?>m zE*TRgD_U#KG|KeT3}g<35*xQ4975gXR85f4iQFRdU=_a~yIbym^TnE5tODizRdy`g zOWOm)Pr@Dj8<}*X+&llu_Lme|V-qZd>&r%T-kn8V>8-{*1Ewg_Tn=vbC5FY;_`#FW z9KZdCf}`{_B^(#jDRY~zA4pdX0m05PUnil-sN^mf)SHb}h)1R1dgHlGcc06+y9!kD zP!sgO$lv`FX=@ZlmV@tM0qH4YR4wKY^vC*-|8eO%Zp|KwZ+S>8dz#BtM$2Bv4dD5c z$^GIt2x3{LKe!|~DywZ#(79&Dol}-(Q>T&TIFTwVQOK0(YUIVn^$L_{!q)W%!Hxu7 zu@%8|nVGHaaQ&ey_X`|yrtMbuXIOc1a26KN{PQF@4dh3uc^Y6&g#7@E&IiJZ(FwkA zq9^^GP+1!#%=k*43anH)n=9?s=wSZnvmMb@*jV5e-}Geqm`HKvh*C?5o5k2Kov+{z zvQ!gq!w@KAx|mNLcygl+pR^4zw3yqid4vU+!s!x(L>bJ2k%rm zgs!T+wCL1({_7bNOaEz4_{@eR#Dc{_q&w51r-pJq1gj>e_&rV9dpj?$(ugbawABwy z=bS4oBjR5e>{7KB?h!v(xOe9ur@wHK>@h5I2}>NBawbGI+ZwJb+{kmfCxhAPJG=Dju2LSjmAYLMfE_LnnJn|!evTlfrx_P<=1N{b|rUd{H z5tKv(-yy_Dk|Ft2=mG`SLxeRlz}?Hxz()>4cz8b@dI*xJra>QLG^_A%ejqW16Dlw5 zsBDH$$bgIT`1WGeC$=C=_BJmD#7Bixlb{dk)jQ|3nml~+<^3{({pbuBELCjqO?*2k zoaT{{keI>5(whuj{RBV?>1rR_5EFFB`?jc`Zm1J7HfoQAT*F@b$^ejaz$O9JHg}1~ z15rbSEBRmib_Bm4FAQ+PGtkJdL|!-pU^0`#3(?a=$UC%xdV=d%fO#bq_DT;`OaNf`XA9M#z<)%U0 zLsiS@;18WpUN>075xDsX3f1)OMVtJT30JJaY0#i*sn9z_5FZxAR}JkXocrAYZ6lqF z=L|PA^KAw2_XuzS#t8s|fQm`bM&h}LIGETM$#+{24c3V69@u`6BOU9*qfsbx37LPeC=w=czYQ@$f_=pT)P2Bt3A`F3yGB<#tAl!m17|Df z4l}?ZsVF#_ikjmLWaHgvgBP_SNJCr;ByhnIY!%Hr&;g;lUi^lIWB}I=+7RPZ@G6z( z6OQi-0bDQ#11Gpt(sF+Y2p*E)nbd1Xn7mu~Jmn0;EXI2sXUn#bH^h=3#6fBMw_%Q6Rs2`01clEd$>;0o;0`<@eG>8v zOZba%`Gp4;(QkNg!gsK!9c(EAfMpS`z6X%YbVNm?;tvKqlVEdc2r-U^?BG!GLR91& zXQYnd%p4fLBKy4!kv9kKrd!J2gcLInL!KAEA3^W$$sN!UlXKuzyk%0{?ff}d;7y?# z3_OTMnaqVKL_p2pT)e_}IpCE#wphfGuFcUJyZZ;kEO>0Dc^@pvf(Z3ay%h@&pGIG9r4|rFbB4 z@x`K}LZ5aHjoU;JD-H0=gb_2(bTN%I?eHENte*&fMuYc}m>b$XAp92BQQ8B-xek15 zH(IQdl(4lYUWJDBU`n1I!BFe40V3=XP5cqHiU}7#Tz_Ey6@4-X%fvwE@X3v6gsgWp ziw2|sfScch?*K>ywiJm0b$m8AkwgsoCrPvm*kzo4O>_H*0W^hJQ5b+sm48V>Ui}8n ztdTQ{hKR58GLLLM-sOcZB2s7&Chp#=kc3EDQu#yx=VRR8kdVtn=wqTRIU2c(LlmJQ zotdON7@NZ*l}$7vek{6yMk4gsj#eW^t?~z105Aby#{f?z0T?X>z*J6RQ12P=X&Q1R z5Il}UWO4~xL@>|mK$?&&J_e$|;2IAX^ii8c2O3^Pg?=TUYbV0`+F*Tj=uQ5JPtnk$ z&kzAT0HFhXc=$LS+mC@yUVPE(_3G1bIRx}lBK2Oobwri%;=*-4}3ndl72Z6f*|Gg?kXNx8}VCQ>`8 z^|vt~>WSbT^c-hC7QRk3oWw)N(Wp>q)HJTd^nmFF$dI?BNsR!%tYNoT*Biy=v}PD>M?ZjCTw0uedoaO zHlg7j7GS66f9wVNa3%O`dgGW zN8>TPUm;BlU&fZ{mXeQNB8}H@pu}ggRCEBeg8EJu0R81{r^0^XW#*KjJY=u;Xo#-@ zhzkIFo zCxQP4bFC1e<@A5tqje84p04>9e)8fXw4JIsZf<0H8qVGy-A=+n6;uhAn1_n#&) zp1zN{2kJdL0e;lD8G-x%~F9$dkI>xm#%<`Cx+ z`?-#$NDSx;0`jUGw3`Z_J3_ocqwwqC#rp=M=;7zT0mM;33K16AZE))-$5hVd87I%O zJFEtc)bqbM!Xmogsdx2_VB4wAUcKwvxlGSs9!&$u^B3HYR;ycnmQd8Nj1T4JK-6Qv zuZYiw6i|V>-rM`n4{<2y2_v7)Vc2N1TY%*H$_G)4)?R6w{!Bt1B&ikwLhq@llL-J# z1^3OZtr6k5G+3_5!ecy~LT#4&dRk(!XzH7|lPd5&5#VA}aMJ*TS%8NmA?gb4B*N#~ z5E^aB&kXpJBNP0;02&WEj0PEP0$eo6{iNl$SMfF9A$kX`PXX~EcC(;X@hUp>g4mAc z>7ALCm0uX9Q3l>O#D6{D1=Ib#Lr@NkK`t`C4DrRluc?QTAew^pY#ZY7jO=SHB$E)3 zR1H5_1wc5|xeGJAKI5N9(6cZz&;BkVIYHZYySD*M|45IWY{%^V zfWmeiKUVpIsEa(fId04_4<61#fe+DPQ+UMV4X%|r*nPS<_TK^_aVB?g%jgsp+@(RaPk%c0`y^f$h1P&lF|gY;g169!(+^PpkEt{NhpPYM z{_NId24k$5F*NqEk2PinV;@r4NhPh9 zx@x}n{BYlo$NdkS^LU(dKA&^W>-~B?UmteVrbZ~sk?R`;uYpcLq!s`a37i`ldEO`c zK3)GXcJD-_WShLgYbU@}O+fZ30HNuLB3>kyn=f0ab??+u!+NS@)EC{CTC&>qdp9_H ze^kg7-~-%(JXkHG{iTv$w+QpkBp00MLM^$470Hr{nGQ?wki+)c*q&q;S?}Y^QxD}@ zA1w<=0l7#iqmp+O9)k0Z0EiYqxkBQ`uH5R$z3*EPpFnb3ednB&_x_3mTulSk_=zcz za(Y&eOr5ldAu^2&?;iPNxXr!`RN{93?#`&RWD5XtcMSUK!&HUreJA!EKx@X>o`J|* zjR2rV^X;{q&g)WDgfg8V7O+#+yLF?VuS~KePx5bqXZMU>#3%AnTz_7wAFS_05-b|fQ-m5v}T*V0SJd~!Y@BErynXK#^ zaoeeylSn%5)6h$KyX+m=r{x5IN+S(%sw<4P@Q+Im1s6X>+{=I2QXlrr`?-$$Pl$T# z$Os4umNxFQb9<=F3u_{N+!BMDcmX|5d7zH1z)L~LEfc>eGX3{^H#&w8Dzr8kk}@dD zWMJ=7fAnbasXK)x|J;qc^Xs(ecKU)TOZpP^6u-c!AL4sG?$wF!NoRWkT8JGzYVQ{f zBW`B_Un&isyS&sz&OWF_`kDFWVbg&^&BMR4wiYiRx!-*Fzntw?cmI;u7x6py%f`bC zZWmtPKJeH7UcB^Rz3aK1)K;AM=%VkDdsMHtQd~3u(0nTrCj*dl0{GVcjMK>OY%RX< z*LL1T6cL{|p#~t^=>zv32yX!$ot=xTr>ykHH|I7+O;ozq2;-WL))iruPHgtyZ$7#D zZmjY!)yz%RUm8x)I=-B!3-@mPsoRw5HQd>hH34^1FGkTjRI}$-B~|mBs@|QiV%*Zz zIM&teQjyMADQq%%*j-eYI#VNhQ$tz$sR!c~6GysQ6}wid)0gP`^?SY*p)VYrNh~}c zL(F((y9nL$*B7Zb*JhEk*XZ+98nj?c^DEiDks1d2c&zMx5kDKX&-*TTx6^+;oVWT1XBr{_o#kgxJbM6F~9T zxmJCaHr3C-PLS@Ci{6_Ko{iv~IvZ?&OOIpfl3qp>H`%3r4W~C{bZY8DU zd1uqnhWhohYVSo;{Tkk?^&Jh3R+eK;^fL073a`2tmFaA3&liu7F8BQ!Ninyu4JLmZ zU&KZhv`;8nK2MQo&YkX_LZu$;F-II*?g!u;6aO3oN;`h$G-{1dt{@1%legDZvRg&vrw^SxjCuLvnts}V>#WngOOtA`(v$sd=W#L7% zbZz}#Vt%yf9(m|gZZx8jz_EJmN0%f6K(bUPkersHqZdeJnR5RTR#;j-!qoWC^<109 zE6uK1Q#m&|ZXbg(&xygnFSbnB%+JfX4l@(ok|wn95V`EEHkGQ83EM}`mPv$F&OE`* zw#W30r;|1|(!kw>+NvPFrs}y23Hv20she|Cij~wt`w28%N^1iElLz?CtQJwT+B7Aq z=WtuX<`e41DoCpLn)>kpnJjJ9i#UjpeWmpKCXhn)3Iw-ZrFx$MBm5nGPR4L zG`-Z4$3D=BxO4eaz^QwRcj`lZIzwaaPyso4(zO-&avEW*YTvPwd#LM!?i# z#|0Xf+1`e#AJQ4uccMp0w!-hOa89qA7RU9iY5drgIM9nOa{G-@+rr&9Bf$4uC8PlX zyG-xbKla3vi7I9mLP9NF(k&rF<4plfH|ulR@yTe-?_Fq&574DlwhjKhf+zdWTnRBU zO63(*!eu{wPYwmEzM6o+?8M9I&9^3_D~s%>oh989Of_sx!_NBbmQ{|uOLeww15Kf& zq^M4~40R7#W2gIR>V}%%0d831%5o{2Zq$Xz7MOz~^FDb53g%*zhBw)U znnlV%bEb-I=e@5-@TUCRqm+6jy&<|zz-gEcNU2U1Khv)g_nU|stAicb70UV#f|M(} zJ75ae9!OFFiVw8k7-R{Q?|q0vUSENR=g*xv`g2wJW(!-tIj?6s^~unEm$b~Ycf#Me z7CJosBcZD~cP6DyO0{BS;V8TndB~QO2Z`diI+#2J1R&y z;bmjriHj$?`iD1MW^+yCOTD>#wVg?>`zTtYBWA0>Z2(v>+aEb*pb zkc||!Q3~*kn`>2IXLSs27vvB+i8(nl4F%{@fk7y+$`o}XST}My=wO?Q0N{#e(PZKR zwEJ%Mu}!j^A3W2$c)f*s%qXi`I-tO(Zt(7SYAoC#W}Bfr+{ZSIs4N!dv<^LFXZOZB zB!@l=wf`?S?W8VGQhkf6s=bhQdWFVy$4194x47n+;N>n3k(3JM#{&m-#m%_SG_c=Y zu?V=#53}cp-6eUz2YR`aJ^!BXo_A(WU&?YsvSdVAF7#>EfRs<}TA`vbWPkhRJuwu} zzJGUiO3C?B(HC|R547BTFO8MD<69L_wHOmTd{6u7B5dU>^!e?{=$yf|`x#>P8D_4m ze6n5bYkMzr!t|3*uC|7$X`&6*c~HGmTP@@U$4)hen6ut0e?DQtI`c(|*|k=M?gAM@ z3*gk;S-HTaR+pnEc<=m2R+V}wt_F$@D%0vr)CFz{o&_wS$udz<5-?+@LYeRnjQX3C z(AwdzpY+YUj0D@ z!_QY(S&n!qJp`m7D&!}uVrpcm_9B7!@u_nCdj_j_uN8F!tLJW4$@QavHA2;(`*&#N z7nj#G&qb1DdxXg?%rQN15et*F&m}R1sIaulBg~$xVC{sZ0m@Yz$l)JsKBgcVa;0o~ z7RnA0R)xV+6DC&ZQdNU&`O3aea|!)xR@uWEue+x3H|S-V>IlT!UCF#$i9hr@UkYq6 z!O>?EmKiKj?{w+-C1`K|t%wRpaz!B~OadZ+<}ezXMp=|xsBZ%Fa33^)U?SLo_~1%> zLfK(UZ1Puj$ZX@pd~GNI7U2ww*}Q$l97e<488G1V3!s~cb}N$>{^@Knjr9xHLQ(vm@5ff?kOMCzTsV^j&Rbx2Crfqe!X;w-D>7$Uj=k}%?UBDXMR1?--#mJN_l zTw|pNWAtefehK0dL|E@E?8qeK#~n-uh~?JBHmc%SyzAHgIpj{@*yu?lqS$T#Cor?{ z5FX-=__7-JRMJJ%Ol!AimLawtQtPLNaJ!mI=puL4%!4l8h$eVD?w z5}7yo;59-{urZ39S3S_RrS`BDC=JI^UmuOI;b>ZLX!3Sv6giRj>&m~OBdbtK8`QXl zo!WmV(4YMh)p?Eg~GGH=&217LFqMdVH_X!S|y@0XiFS+3*L=}>4$GL3M&P2*C zE^&nA9XwKI(0z=>I$YqP*TbgtIeDktJiY_oU~*V1oY-CaQzdMn6FW$+#DDZmPzyVx zkDb=vJbrNa$$%`kUACx^GR?g}qgo7rVUe@!vUPUoHCr+w*jX^r} zs&eEZM?c()i-a8I*4OnHh5@|Nxe}?HP_J3o;GjfI@ZC(O!W2Brxxl3ZUYNm!kY-u& zeO?h1=sk<7q)lU3h=dz@rr^B9@s>h4B^WUIs!y)S3;Eu~rR84EEG#|_@ zSRipAfpzw_=NNC`jkT(7!154Zo%pZii8eF+l3J6Hfu0sJNauOzDawxb$c&SQS z1?y6YM4CLudkIzmCWt%O(Mg;W;gTeg{7BBFswgUih;2>9ae{_8>XwM4zUjSHm6uy! zIMIITt zBeFT`V`g-?1^W8M<*JzL{(jJ*Yb8?^B~(jTQTrrqmwjZ@O$ay_R^jt}zP7Rv8t4i2 zS84JMR{Avq4WA7R5Inx!b*xI7*kzC8pvJ$e1FP4V_!l@JWcTq^uC zTX<>`M(*oAnoyXs$#$RY66t3YIuzU#J}~e?vGXP?>v(ucghRR$$8QCu@!8=dR{||P zvqoms^QzJlI4-%B|GIN1lWcvJgO|KubMHxBb+D5|@O?=K6JlLYyoXs;>iZB_Xhvb# zt9cW@v4<>H)hje{=tk8%xweTFg?l)Bdm>#@yF6JUq`*I>;>qG-NV5YkUJ~NoqM_5k z2_0fxEh@}L6%tReE)`)ern15aP#-Sz2<5s+rNke9nacACI^28EwCO&Gb7Xhnlh^d8 zMoPZ|r}Tr{dli0QGCM^jJYb2qHqt%^WCv{Cx$^*O>3{9eA36zuc;Ky0roi)@@cN%Qu@qL6fB#xOD~S4JfN`X_wnpCOOF2@&gmFR=%z5Sb1G=aJOITW z6&V?Z^t*?}Lfv8~^_SW2YMfu;OAo4CQCx;Z1+KE=HaV}S{PCQY4~3^CA>KG2Ju~+8 z)_wUa5T$ue?k*>01VXEjxaib(;qc#jotz$0^xl{Hu90{a2Jbyt*>F$7X=frMisQb? z&XI|@Tm#`WRXQ10(YrYRgTj!i*Sx!6bqx|*N)Wd)j29Vt6t|VL0(qRhuk7++-=L7Z z9hhS-9jmL7FdtWWqRw{R;e>1x!iN4qsa$iPjg8=N*R$0ht`1^>OM_r`N_2@a4;oC70}_^$gY36m$fo}EZ2vj_kt=)0ftO2u?;4hr&Io>96XW3ps+TK2`wpp};P3lH8o2or^_&xzI~x zl7AuCB&~kfb65+zstev!Rnc4vpLPu-I#Tb{NEc)&mE3VkLgm^anPQrWh> z`PJ^RZrN-hq+_#1^I|ND{pO9m?+`kPT9{q{^QXYTb`Hs#S};F}F%?!0<~)Qt)Jro{09zt*^25_MN2a8UAZ@Jgr8ZeM(0Hyk?{6+b;@W?h9aMF_G#l) zl)2oMWaEjecjrInQVMf-!R~cS=AYS41#ySgpaG&>w#y`h8p*z)cIPm)IkCRfJ(L|d z$?orvjcO^0>MObSU@|iJWiY_FdO`C^p6=r5PCv?U{?qus&uAXr;~qBY>%UaH@{1pA zvpoMZ)!yxA&7r&#bI><&ghCZl$cf2iQW3{(WY}|=<&M|$9v*S@ft@>F zY1%~AP=PWlZX~TV*G(PHBXG!@GmU){;lT<=XHRJSnctE|Fut00N)>uXvL5B@dxb;f zPbNj&96R!?(Iiv4$`eY++PB}26FZaMC&zM)T#@pMt*X+?=+hTfbEe3jWn&6cO{~&_ z&j+2$D3a&Kqab?+-p8Y$?u37{sD<2~anZ3Z&hf_qHt(Tj)Gz+IY>L{s3W#o!P4935 zI~=`uQ0Jwe!{RkC=N|NFezr(RopfSRB0tF|aY)?4W#}hA zaWQ*AR&op5dj;0=*&&YtBLO4>=4a}wt%?H)N2LY*C%@rpuV+E6b&g5weSPQniiOSz zmygRfNv+7awsYmpck&7q#WlmmP1k8fSNfABd?W7q73%7(-PjJhMrmFh7i{{dUnF<8 zH<98?mC?tyUr(KvFbQvQpS;mwAX4^LY&-hpMZfm_D}k8Hj-xi!7E)n^jJ2_%WUI}C zW*0UZ#hD%7X8YFn6@TgjyuxlDn~#B>*w9)Y0|Yezqc9DeV9dHdw*(f>J$e*gOS>!(lu zJ5T_W-qp0ITmDjh;Lo?Ua#K#aSw&QJ#kI$dzk*TTp%3z}`B-(PARgO)4T$wcmw!X} z+02p=j~)J9@_+1b?L+$v=lO1{l%?qVW^TFtqB!X)sCCsu0Qvdpf+!py@`%Uv*~ z^I{BKXTKi9n8bNC`IqXI&$jIa0)_;SESX$HyX|vzbBeW9;8}lk(w{N0VHA>6X}1PB zHmSF7bios?a#x|%ej_G(#%ik${7|=~0Q}hYU5WW4{lxFz{LQN)=l2|59gBUYaChixV&EVz@VFpDAvEc0xB`R ztRY4{O;FTQO$VTDXN;~6&rj?3NdEiksHvp2F|Jwt*{h5e-0=rScYm+Sm<-M$WDLhj zA84fC-FQD`0RDeideJCUEg#R9GH85laS`{moFV-S%+-BZaBTz6{UGpV|0)3&Ve>9u zD>Z2>ASDD=U>VaEZw+mwERFA>d~K^Jj2X^LEpv}D+ouYT@ywLfl8XC~s*3QnnXeQ~ zn^&|Cr7Z>Il*eIKgojTUs?s~F#Ft(s1p-kR^dHmAvyHCvoVdR=Yq zW=QJ~|Lhcrnf~f(9=Mj8GvT){vp6y)g5j_SS&P~8Q@R^&|2uqd?(NG@{Ev73=lJ{c zg98Wte82gZx6#y&LO&zltCeOuNSAfrVMZhQ61wW}l9XPi+SCvkPsZ-e9gJ3EZnA2- zXwqIQ0++w^B(NBo?1glaiq}9x+4`th$HSyPcbd@RXJB&{n2G1P9GivF4!=5qrb&;) zQ*}tGdZ++dGjjicSV}W(N=-0p>w@!5A9*(8gQT0Wd`2;yFs|%Z zFRira;@Q*|ZI@Om#A*ahI?4ho)?(1+1bRt^lX2pC!I;?)9Nfa%4hU#~qK)B`ex{-= zM0dhrBQjcQ>0vAKdO?|CRfl@eI>Y=DfvtNCULqWwKnX}3Qx?1=S;$aY@EqSJ!yUYx z_S#=;Y5rak-MEI^fBe=g+vEh?BvtBd-t2!5f8G`}y`JHpew43k(Wdt>@!++FFH;j@ z&8nQ6Is>mHz^oTW_r!Tc?fZj|bTk{~h6YD#Y$U*3$QB(rk)#CY7gZ)!^m65pakb*~ zG2=m=ORib8hvR=RZR63Bqg~Nz(@v1Xx*KIDVvH0L1~@T~<}mvvz)0@Wn7qw`jK?|? z;1Pq-!q1f)h2T}#0JlI%Xc>jliYj^$<@eediH}Ou!vBP#UsodZRXs!oTz9`CSLXJx zXH6B0sOy{wo8p)frh1*){WlibYEQ&6H#Ez>VuyP8p>{8-#sNA)#)MNU&#amB$&j zDnF-4P*pR^kL9E&cvo}CEokZJWhu?=Ay+L$X}RmEeCF3&H-h3QH~4psN#)X*xVTaK z7(NPtc|T!>6zXC3B&ka2sM-#qWy5;gTz+)Gv>TUZX)z#xNY`ith?g%tkX6Q$vn1Pe z;V|hG48rP9k-2V0aqD24M*a*N?Mf$Q#eh-ly6KjlpoO4psOq^{sMW#c(vBB!1)0Nc z)?c`?mm;pKu)0trPi|2_fOqp3$;LAmWokUV7j6kB*W5y@}8pqb~Z6G~@70Ms39(@BKahO1(F=3ho*m7t5z5wDel!Wr|CV6)?oB zq;|0L?1%nc%a_gyw`Vzy7Oj84WwBhM`k$8Bwlj2Ya6p^EBl%Z0HaGUhT7cTM>L+xm zqh-cX&kh6Cf}xR6=P3{)C0df#k9}udo8huk zusYcn+!VK&Btt0Iy*e^EZnT}h5iXw-%5Mw8+deP;;Dvn5TY<#vJM(6W(Rw2FO^{*c zxjRQ>naa1s^aR`fw~q0|BX@<~#|h|WviaS2K7ZLRT&{1WZv2>A!?AGbT`2cu!9J*A zq@_CVAo^^%x_^(feF~>5tENJJXGIjxwe9Ch*hndKQ6%giiT04lQK;v$t>(slQrM1m z%?+-C`Rz)%ro*dhQxo?G&O4aV0#-ru$Pwso`5vYT82+*oV?QjcNH5ptcekwAE}52P zsSy=Flt~Rsu!)vsePj0hu9iI+drqAs!i~2lCY^5Hrx%hGI4D(uYi)^p4Y(KmYaDGg zSCYx~U#-M{+#lyR}_Gz2ag$MzU5XZMcWk?b7p11JZR+ zN_Ux?4j}yRSFPbhgLX}u;K1874Y}(t@#>5ZKTA|EA1+>gZ9!$;%NFc6F-swu z&enxz2{7uQ{r03X9q}3WMN<7H2!3Ea5;pzF@iBg-Geb9jA07ZUuHnS9IL2MeO+3EA z3K8G?&#zmY!LF)=^auO%??(@-gWh;PY??3_1I6tyOwwyjL`0K5PXn&Xj2}p6=Xt{1 zJgDq}C?^+WL~XI~(Y6d~v*0r=ONjV&(&9T(mXRRqZUsh*JGR1=;5$v#(zsZPa z&DjUhaMl#fqwV>=^jaj!NR-Yx3Rs8)&qFfcd!I)IK(j~pak5GA@9Um+T97RT-I_s^fL{!F|v z$T))0=2q4IYJ5DjkYJ40Eql{dwvFTeW+ks6+dndmEf^-hgT{;)4m;&>W*|fI*id#E zV~S)c&$!4Y8+j3vronbxFoxw7VybDLtIa4<&_x03_Av;ksM~Pj z)3c;}DKKWZsOKTmrafNs%3F)gFiSE64Tyb&1^cPShA+RpR9R_-0#hayUM&c;4Ed<> z7&9^`Mh|H;Nz@~Q^nUaAb1**!K_Zji45MYfK|s0w3elwN$e<+noRYw3mM8)??U&am znMgQp7^J_nG10VH{e9Iq>tKA${Uc>aGwA&^c{g0igVHZucV8Radt-1aa#|;nwD=Kh zp)Nk!iwJwZEv1BkWoqN4C{6;L6RGAPQ!56PA0jYGpFJ}yP}bmU_i9)h3TC-_R{5Z_ zF!yJ5L=290{*6Fq;EByT&1$*ZzC^s%-r3fX%=$#PHhpw?194=(}jyvZafUBK0Tv&9jLkTUREY z;SGrddmSHHhPI>#@=S78JDgF);~UQeVoUgVNibf%r7oMlU()lZus)GnHAU+(UH~O> zkKlf9=!|UKtg6l7^0#L}CNqyB93{?dGpavM|96VfY}EEkvQU4=C#S?yf8o--d&VCo zw(k!}%5~X$MwFr{Ug|ERZFo(R>hBM9$yfT#s z*#tbS^4vFng|39Gw`LlFDlFL$+}4)I(-QcV9<8 z9|~9k)&&4|>DnuNOYAeG+`V=Zv?~ z{&C-kMzf%+2{5Bx{)3;KUs()XBi~?>VK~gcYY$6nF!i`N=%M{0D^OsN0CL#b>lh$3 z8)l6oK^p&o?NEGduVP^%-{d^rCPf#o1tZ|V+7+ay9#FdkK4!;D;6cQtgEhw4=Iv0k zbZ|dfpuI9SZ41Iw?6;)~^stS;(mp^-=9*Vs*P@4N7NUAQgcLtXwS1}*T4`@v~+JmnAgiI-}{x!k8smC|M&)VrFaVg^j%7*UJ zo6iFvD{`i}I)nKtfPRm3zRE;f{Rk+GWFm?L4P58iw`A91T`hK03Umru5C!4?dPkuk zx|GYZfuw`P?1kUoM~c9UTjv^P+H(Jl+o;RgVjp42q`>`T>)@TGH_=v-0-fNT5HAmF z0@;2LAVx%;SB%Z@1U!cf8$n&#vd3z=)Un;XYR>%>W?re|C@F^ z^E{>qWLja}8GpO;X1Ue3A+v9c6DHgP9|RVLe3htTY~7Rm|A7w>Ktrj5Mhk{nunRZ$ zJj#zrCf5;K$jyqo4iO8w>wFR8NhN{6WXdq(8^Gq1Uw6}L93UXa8!t`rDFc<6!6fiA zDzmvev*^KhgF&x_-drMXjF7Y$57aG)B4WIepU zV(5+On793)z_t-=Q$sVcaHq%$bP0#pQu+3ZN%&xrnmgD~5v0Qf;kd-=@vrvp8T!=Q zxAH*->vFgoi2Xo;{ymPVWVA~g5qO1RJfo~1lc5_4x-gnB_wXP68U7W>lQ&<8Ki{c0 zPAwXafxdR}({jJzcJuysmpK0~=Tsmobusq+b-?!+4fS_4e4W$mlZ-uv#GMdI^5KxOnL^$mDPTx#^NK zGvGm!0011kKV{cpfob5Sb3*``DIEg#e$m8%yf`dF?tepP1UiNvIDTOL6r$yB+t&3v zx&$y`?3w9|wlvh$FLgZ2gKyCuVVlLa-Z^P8OtwNXXN?@Qx$ybYV>Es;;3(!(O)5*S9QukIW&nbnC+y{Vz52jJ!T|zKnBAoo$bPv2b?H zPS0P2qw>;(vDH2WaF}wS=9l$qUnd&$TzJ7K^juh`-h|km>HMZHipA?t`d`4@Sam?U zo-Qi%;Ae8RS8z(Di?0)U^K5WTcLy>o<@rXfR3dMqHY_49wl*|I&+Kdf5$@uS&YNS` z9->OIc@Y1~gieG0nS=j7m)xjIRnURwG+=>uDrexx3!Z z=}U@}_o@?HV3SW*vU*8#k_(J$KbeZ_dN2<^r1J)IY4)4=TIoOPMt1teBc0B73LGRsD@K3NU@ITw1 z?MjiwK;0Nlc#7W`HKskb79D?M!%Zu?-sMeDim;xs#P-1Z`mMeZ=2W=)w>W*e$F|+P&0?NS2H9#@SF^ z;X3MYLLhat_}EV!<-=LPl1Rlil-id%(=58Q(&(l_&(Js^`?IuPE{8>%aSHR3W9fy4k)oRmSu8`TjBaP7+UIznxMX% z9N!Nr5T_j?0m?1Dho=4Nk3@njg_|&|D@;jmCsNkaJ~p;)?#?@acJ4nEiR+rQ#+19! zVLxaWj%lGwb7MXoemg{_wxf-bCo#xp#rI90&FyietfIuTA`36mqEoaa^_m1VvY8LwSD(8FHQ1W1uWR*O^Gj8Vbd)C`zxC_U2NQx`)`t_;xctZc6jlW!8Mu zLUGUxrR5TJ+?n~Um=2p_5muq1GA=|0H`?lIQX-U9X>X@*Vz?ULH{G074_21dXy2ed zwys5=$=B-N_g^|pZ0g-Jqp^ngO%3y{&6EA16Nh+)Kk~EBRLTtiKJX90wc}B41H}-7 zTy(l0p<5}NDGvWGxKCj4X#3<6B7D8e?d_LQDN6hO(ua{`OZlSmb3LEbK2p4N4I=@7 zS*GC=Nr>((^AfV;`|4K}V`z)dvU3?9i@#*tw>=FX4)&8ljGLF)4b$zj32))IE#mCw zKYQ}h`&HY5XH2hMEK5k2Iq+DWjs20`a4WJ^J|sKVN*gWZvqDtt#z|VAsgwydl2p8# zI%}LG4tq#PM{E8UY$zgs_Vw$HavQ;O@F(DB{8hgPhVpN7jp}Jf4?ss!))mv}{4kkJgv&g7Y-R>;@+?|YIIk)lz%*UV^d=$BMS5;~ zeU`im;sn;GLyQ`G_E93WFPmKN2&nrSJ=gKXDS@9%%P=m0JC3) z#Z5`{e6p#>b=PKhVm$D6o6ceV+7UCi`Cwbj|K+MRTx=wC8*M|fY2OBFyspFc9NtF2iW6wL+y?^TCed)#iV;V{V zpC3Z_h1_uyP2EF~!uM8ld(P|j?|Z+ZYhi0ClM;Mhjos4h-C`reQ+t#&}E|+@|>5%=CZM*0~#(RW7k(cmx<1vuUC7R z_p_n2`fhf(*q~qMnqYfLA*blv2VI+|_eEAh_>yxDs|>NzKHaIK5|gZ$K)Yp2Q6Qt0 zLxGC9@5O!Be?bzOxXvi)g!eO&NXe772>uG z;Uhj!0mVb=!aI!7O02a@A9(6H<0@qxs-j#VLbcyivl4!S7ty$;*f6TOiB`BzQ#jkE zw!l-X;>q6@R`=3WuK*F!G=y~Q(K6??U1-F*P_1GczaZTFF{>ZvcdBlk7hfqfFo0w4ybSPgCKxB&ZcA5}@7m|bMjjE6WM||u; zQGwMM(Vl}!A5|43D`nA83?NE#%iTw~;6ras;J7|bQwsK095FyATtm*w+&w{4rY2By z*O5sd6j+9~P|#jn<2Ge%a`ZY~*Qn9y~G(JnGf)rxp$G6Oyh14K?WUlLM8H22?tyH5ip@ zT0n)ti9dXjXob0vC9ToOgs1xvuDF;eppl%`9~MCTM!80-vpk-ra+_zo53N2OpCg{1 zg1kZpXed>hf-O!-E(u|XMx~8@M7ArXqnn7-0^>1ADG-$g^gMFetpHe1a17b$>Hflx zk~HRe5QlzYy0d(SrCCh)IroG*>6*D`h~ba?LG-FONDA>Lgeh~!9Hh%`Y7rKQ1b>Fr3+Mg_eA5vv4}ym z#t2UZ%RBIO-fF~Ku|3r!|KonQSWN&uC45RXVcJE}z zDWwZaw|FYZQME^O^|4Vk$8LGWQN=D{@a<^01&?yu(~}8A1_)J01C$-{$_(0vp-PBU z7ivt-yL|mX!01*1P>T*5F2h>OL?Nl08u3661O^>`LrY!St>6suOJ)4y_uitTF>!Ia z$WUiy8L|+QomhV(vCUk5pyv=^`{2pejxsvjho=ggP_YuK62I?53E?@sbn3LcYxy^; z68Jp$SOxG;A4XJ%-hYi2VJcMTYdc!-GFpWhjvJxeHiAg&=slnY0<6&Z9ln+l+#y8Z zMl}MqL$6&&4GPuG?!!k0RJ&;6>!PBFJ~~1>S|X|R0Ap}N2uF3>Q~?p>D;m@MGnfwLT8pYoz635l*XmCEw_E8i~nQo#dP(6W$TL@taQ3zva zWk<5J6Hm!;$8Eq*`7{mkGBKt|sO<6NW)M(0cT~A-BB5JGWPKKE^{+82fp&-Mio_LD zepgZxX;1UN@-(FjxL9NgIX(?|V#6)5=|=&aKv&u;j}^+?idJ~)ocfEtZ`v7w2Y&rQ zL=Fg(Q}-u7rbi-#s$c2CiKQc#fR6I!M@wBSlAM(X zR*$|%r|(TytEDNZX9eKVcDU>eJs#<HuN^;7&&`2B_M}E4F;5f^ZJ$L(JUfTLolk z4gs@j(C+(P5bFqPxOGp`=Z>9EkJ7)e4*9BDjUpJ8$Dh-(t$?e=6nL@qb;TRef?11hlS+0THc z7l7{|p5>>}sP&@+7FeEQi7BcJRBcnyI(GgsRUzs7QG^hl#Vc*pMl=9bThXdlQ1FJ$ ze`}oWk}M7SM&V1+$FO~8)}z&joCne@RAYRU)#%Eol2^aJhjJ`bIhp-6qw-@kjc?<& zw&na@v`@^ayanAYcoSjatSkzkHwKJ?&27AZxL7ihR7SJ3%p2Axqk_N22Pa&3@vovZ zhQhIeC83c4XsZnQ0;43iOkiy?&y6)3UnQS_jHT845x40iU-sNWDK_vf0#((2 z%`A+nVN_K?zcdDT@C10<&39HQO!a}$nTYotQ9iZn^c*$ejWv{l?r2`K+j@X%b!Tkj zl&}ufp(ZU9!8yEAGPp1Khx>1ETpW6<-S{bX9sEr1!}LOdaSSSa_KpV@mGA6EbWNN! zUJ9V!jo}bVuetiDC~>g&W*@|DUvZr`Mee{03SwL{b=|7cKemVgHKA8r^2gj8y@p4> zwqI}fyL0~!+P)M+)X?Z;ww-DDMP=n={@ctXZN&8XQ%^pV^2u&Qruq}#XAmAy-;cgl-~FVZ@$%BsLIeN+of$B<)#_CnWoKNsa zUI!`6>3>Gc&45QP37Jhm#BEyO&S>wlZcr~z!IqalJftBWyuUj9&Sdh#01=>~tDlr?Y3=Y>AriUk@8yoZ z|34JnhgZ_?+Xrw(Hi)>lIdLoG9ul^3rG<-}c-phQDv3tBD3D;9*}Ks*lG{omb(D@Acd~>aBOg7YWSzB+(}_|T zbIFwKlGIi1rj8d&>+Lsd#Knx~gGM=~!I!8C%umnV_68dHHR0Psue=ZHqV&_2uRs3q zL>!fmoK^EoRlXc~GikGf(-~_X+8g`q+xVfUW}%l0ANGz(!tT=36BW9uAI{vb?K-&qck@N-m)d3@ zk?3sh0PMx>@gh5$_oqKCT#e&4W!?BFU8m7FCtU&ett!1AqMSEGN;2XSs9@j7I~#te+%G)&`__4+3UTnW>h+9% z^-$_V^9I^Z7^Z`;5JelwWaM1JW$LML__=go3%Yk|Ss(^ZWZ(%qKeIm;Oo}Ciud4EnP%|ZJG0@*l#4u`9bAo{f{E|I%kGiMdH=R z$Wf@X>gXuSsZnKT!OjJS#$ElMRrX%PnpKrT!(A*ui-p`ep&Tnj_la=cm>(kZ!L+ zy=PR-&Us*0f@jUxt|wI@^&7fApq!tfcX|!I3yks7=fBLkr&F}`@XKwwgrL-Zi7pQVyA! z$8E!E&0ohOa>w-jql(Ju1bOK{Y(sH&Dp=tjjii^4D`gT}ZGee`f^y4_fub-4&R$Al zLA5VHHl%ATsT-^QoYgCiHZ~~}9*#F;E?4e4&DM|fQupr&ETY(pZT&xEEBEs!tUFRl zl9HO$M^|LB#7&xajPtB9;_c84;*MXUJNmlJ;v+3Y^=2}6x7X1!Jar}DodAr%<4`Hx zhcy~0K+Q){rSU(a)vx5%>?FHMdxy5Ejv%ylVVTeeIuJGf+Sri_8<|WfLH-`p&*r2H z^!;*-Tp8t_<6vX4yl=1Oe>y-zf#l6lZ{7XX*Q)=Vl-+X>zoPg-@al3e^Y-@7Zj&q- zb^ciCNG&I%%jLU(tEVkld~z3B@t$_bU2qRHxUHl7){-k^j}eS0-ZP)8@z&E%DGcMW z+_8VV zyv!q(Ro?WRyXWV;ho?PD+2Xmoxu8ep6xMx5KJUJrD5@mVNT|6&Gj(z<&-ca?BkQo> zgrqyA(KJ)F^D%EsyWGl_By(kJGsV^duEeKh<@88yo^G|Q?xAfBDcLPr>8{T>7&tLT z^Ce|MKUA_aWss=#oUUa(m2xZ6n^3_Y;r`M7uA4B?RJ&Pu$5yFPE!kEtYg3itH0&q% zho;w$RC??x^~)!1Oz*m9)Zzqjhk8s#H_UB~W3u0j92;zQ;?uzPC$AwrXGrYE)~BzC&4X;JE5PTB7^eG`qrVxQsW zz(4swZP2xn7-ym8Gg*&Fr^m>(2w}q}U)re_2lXLuAC;{ac^8_HA zs&!d1mS9sCr--qg4f|h~-e6`3pEX$!{y0hMUNed7v>3GmEW0Ax*9J~)n=SHLsMP#C z=&E}ifjXK*RIQ!|x)uW9o<`A%7JtV~QvJpwR&_n$A^GmPID;ZrpbF`^k)`ANrQoiy z!`Zp{eL*W@L5z~Zo20^h9Ga`8YLCGIr^1H7)S}+<6pp%5&$S07pVK@4l>BcVvQrI* zPyQP%clr@z$2g9kMIg!*Mj<0KmW#Yn^tM$iG9ga74yA{e2BzP4PhhAi!C8a3>UqOJ zD}rlDfP!Agz6OY$cU$q7&=`f!? zb~zIo({w$v&NG_o8p2*rmQAs>VDSU2d**aKNB)?SCH)Nv^M|G|F#m^K#O?&w(GQ1j zemEfWXMS|t@(Dli@U4_$HwkXp_Ah})t8XVNF`S@re&r5EPN%5(6j8NsW5N-=8|6m* za^rRjB=%e6Kz8V-AU|Eh$YBqbb{&wt z_By#qrDOWn{Tqmb&*?}$oxaN!RkH-WOqE`vI#vh}HSv4)9Yp@tGq1<*QG19Au0}49 z%|O=D^L*sNLItZyW>pz4=5C24rp!G|X?SN-6>BOvS^elqEoNqe9MG{$( zr{Fba5H5!Zmy_E*xFSbqDWtCi7+1jwm9RIMoQ(XuthT(KjG#FxbfQsx8V}1E%lVAA zQf@^(?uN~D%M>rmJd^O^&ml|6#;cOl87?&=f z$GjIv4~bpW)`;&*sM;myM;ClC9d#y7rh*6Uj&ZCfBbUCT7SPb@ZU-@!m9LF*@j$I_ zz{<$ZC*ClAjHJKVNFNm(f5@V#N7I9qNu!%gOFbD~qlABw#j(oHd1%8OG+|C%cy1#e{7UPJ3EyP&<+tZ#vBTpl7ULC7LIzuOXdH3z9Fe7OPo zwrpZF20VaBN|jalDjqV!Ln>@K1n`JQHf}ftVoH`lk74JqUOhQ42U>|UuC%HNEW&Bj z4F~^zha75^u~CA(y^4B9XXTBlyrG76>cc9}pjL;g@D#-JC9Nq2OtfUWfk&|I(i|(%NWf_NbB6e6sD2(n)@sM_FVH~ICl#zLX6b5HDl$Sm zbR(FBXe1D=q? zRNtrWs?}~(6OTVMYGVKF81@me0B>BMP&h(V`^kfqYa#;>aTr#LuREXSF@nY3mZNpp zBd=e9DP<;n<}pVUeL)J+7i4AR6_9!~WaV46KN$(zy*QcG=%NdKuu60p|E=RhZKr+=&3a#2y}Aw3T~8J;>z}XeY8s@_(~Y=-MJlu#-Wx#J9knrx zGEgWm?9mP!abPzx4E}O3UR9VVmcru!#AQ0%vIX`f6>Wj zp=z1*9%v6$S|JTN!;=C37E8QvLnV`23@Em*>Qi@99acIAEd7d!yZT5B%OOS*9ZRS? zT6Hweh+Sg=c8Y;`q>V~wZ_1;?8;+?|pqtNZB6F9K-&oC#p)#N7FtgPCQo+y_v^MTL zO0WcN#z$0>k(&Ww3&YTItQqahHmrUFb$c20QNYxo;37iR)Z~y0)w`Iq3kTJlSLKlN z-6m*j*iRnrz?7r`0Z(ZbVdYk!`Oq8eL zu{2C4FMDXo&0kNxUx2vbiD>)HRdqmw3T4%1%k=KTogW`CO;Jz?Nq&OMv-1z^>lipR zJ}0;e*W_;?k-a(_5=gCS>8NTX zAB}7?R>#<0pmAY`L&G;DP!>*zrxLsB7_bC+xtex9_@8ri4YaMtJy^|ef@(OKT!Xcj+D+K$PTKNco{8M^=0z@ zD|4i3ZRA(7n)3zZ{WOgvN7%(2nF-pL z82vg)x}FE;WF>r;AcPc*-V;IJptV0V!3yvqfxk4Ljx0@3doIu#5FGq{=T7yLl2EUj zJkj|9E9}_tiQR>hcj>SZ^3G>=(#IJ`HU1sEuYRj+81e5Li%*C3NyrhZVAXV(mZU*I zjNgrJUQzIEU;)vqvh6mO>$lqfJYL}{HXx^>-P+CY$d;{Yf&AfQO~SZrI~v}GmV=*1 zOk=Wwbmcb<5NY!xz|E0I-t(N~`J^$GpLp1T<0v#6;rvWy&tQ$-9oTqiRUWl_TTbsW zIo!3Y^bTJ01r>g)8^sLjsl~yRGf+>chS;AFi8*GMoP;^hAt!@TH8H1hrRQ^G(7JYv>&U3?S(Z7%oNq} zy9$*ThLNY2&szi_7Y5xdUOe)9%SwCmD4jU*F#1eA(lUZ<+|j!|!fjU%m9GDPEf0?9=&uGhFg8`q%qMjestq^bZXogkbUU2)Y%5z!?A@MZEv~>zvH*sILS6qausw@h?P( z%lI$9u_#t|%hE8iY#T4LZL$AX_vN?M`OQmElN;-cjV3nL(r&grFE^k?Jl}PZ^xcii zO-B=!v8=&!(pPw}dC~P{ZK!;+^j!gT_=HTZ?bmZD$o3OA4CP>M?^v-%P&@8b*9Zp7 z-<(~-Vh3&@3U~+SuEScpd$DOfYfEar=Wv@6=qYqW=+BFqS7R#KV!!l@<_+3$3*4Uz zpX+)Fs}Fl(o?eO=bg$s0^v#=9v;?+OW$+y;AhlJ1pwP``#eauAs2N_>1R{en_|& z(i?fRV$<4eE_k~gpRh9bG@w(336jBt&u>JH6)0N9FU)_9nJhQhcOm@Qx44-an8_Qz zm}R7f$2J;iN+Gsk?=+4*VZPJzaP3&Di`UL_RS1k^!Yhf?M2=E;YCDX7fUPs3Vt)eg z-iUhK*o1#B|JQlti0of()e%WG?H9x8%LeA*=%a;ah_~Or7hOt9=&z0(crGS6u8A`(n{4$yFb#?AmAS^j(f7sE@AWF>Xqx(Y-UDTY^bog~=%t}fPI_TY|r zYQX=Kqz-wt9*eWBcBg*G8ps~#4}sLj*!JW#X1@J;frpyL<<)xEN1<+{q~i3i9Pm-Q z?3}UIs9!;ay3(o+uT&nR^8-8Q5k^MdSH6*#%J7+WA7F<9>gX=Ms z!7JCWH{!OD*IH_1`hFQyBxG0JadnON>(QWvTB~Z&Y5lSunpxqOwBqDyCI#YfXl!-n zrGB2LH{SiAdK?&*S6`~@3oiHM{leb%#K;<)4tskYSk8~15@$4ztG=y1TkHT>J7lY5@w$LyyJ`ME%`Dju|oInSozt*F(3tkZ9=MjnG)wl`|>>g`F0j zGG`5x0=;%^2KwMfHq%5zT_t)+@g*f7d`@dAF*0mlm{YWjy!1iuP*>`Kr3N>h2}yY)n>*Q&Gh_ z=+}1kPY|~}a_Emc^%!&jvcp}i#-Q$)p`W`;{<|#j9~z0~Sj^AkOr{JIwM}F7OjXl- zFCbjUSeb9=U_+|-V)=N@eWC4H>KQAUIIPf<@DPl(kS!5p#cDpFRpdSFDT#p!)xBfx zIDKRm5Y{g1f*+1y{2L2vhIHk{EeAojz-`w*ttQc&z+{$Oag+qnaKe7da&ZEKU)Mcy z!>B5_L(V8-jA44xv_9xq`IT#QH?uI9qB-WB@s$N#v%w7o6IY$WdszheCVa$>f8uKo z*q@iHuOGYrUDED=Jvm-BlNjiDrM8bhq4zD}jd?Y0j#+UYqJ^P`Tf&x6yqEJ;t`jA4WYD(Ub-9Gh7gu?0}s>lx5^xZExh?d!kytC!_{ zVF2kGuH;A-Tx}iDVf{qBI=-a-)|Ywb)(-9%_-<;lqwg6w}zdCdK@p0qeU*(;uR9BOfe33F1Xx6nX+wu^T1Bti9M#T$EpWI@wu zJ^%rI~KJvdw~t!un-s+}hsDSMk6bQ{wQgy#CQY5>gBlU;l@I5qiBOuuR+Qq@m1%V2ZT4T^0z_Z&NkKi#toDX^|-y9A{0^T z35plqPh;#GJ1$y1Mk|NA-Pr#9P2ckF?y=yk}=5eVke zdIW7_MQuHI-!8^%exi%9&Z?->X&xu-86H4-+~$VqC2D1OzebD7(bih!$b0u=lsE!2 zMK1t*t1*y^rvpOgYAu|g?eE_ zo9m@iPP!~nu#syY=6Y?|Pa{m91yEWdIZjHJeA-P6d9ne*2yvwsf)r%m?DR-sG)4xt zMJo2c|h1H@_)Z?oK=sw_doE z>7wL|gIkn-uL|64fVdX>UTJ@d-gUpPfqt%=mX;SXZhks(uBW%e@U z`Z2GH)=p?k4f_xYwMB<4)q>L}&-)2Lupj2D4+Y9zT+d;yOhw*dKF}5KG~UY%B>`a! z1|-u3lFx8iV}EvpSjcneOWV*4ik9Ejp4(xNLrb6~d3hgMkS7{cyU|oT#Th72zrvIs zC?M1i7t}a5*R9k|O@sPLgv%sE@^|>zj?3a~c9;kojOT<`a;^vv>76%21l@OQidt9L zKG>eH`CZO4#9a$S=Q+sh50FK6fvaL!az>qQ*Y!2|1(!_7<52R^$=#+2!`Nv4iYGZPznGs}m@)G<#4e-T>uo z5x2!{_Tz?bYeRO7aJ|uNJQkQofF$!lL>@!A_znch{y1Wg$OHLJma2s|_)&mjw(VUF zh&0Hq%LavSu*J~g?VcfnAD5%?w&%7Au0*NVZGrfq-TUWl`vkV;wH${E+acMao9&k) zHrgTb^-D!s`gECF_ts%mfi0A%#3Xoo%wcy8+uBYaK zp7w?wYMdimM7%ZEU4_@CE>to4V*8LTxc&Q3L##vIAr+A8lFa{x!Kn31<5TQFmAqp+@zE{NZ5Cld zI+jP^v17WGON89Tj){Ol_g?)=i>y3URqZATd_WtLJ;~m+CN&r6aXSEVhz=sqBp|#y zSqhwl;q!@jjxVM5#8BS{<+dM@3Kc_z!wy9^ueCdLTpr*fteruDc)QKxoFB+a>B{;v;;54x$G2@)dJ>j%yLh`Vk)}n69S>H?%Wurf z7NIo(V+*9o`>?1x|IC(o{f~0#L6CYxa`CD@)+-?O<2D57q`a z?+AI~3?fbDf$1a4RT9LFp55vopUIK!9*CGZ4Y0o$x6IzVVSK&=#5NO&9&xBrTsz!A zL+1T+P%uV6um}l0u)#TN(tPfrvz?s6(6V}8w{3rBm4&xmwJV4+tU<|Veh13W?X~lE zvHRi8A#VZyEbOC{1c}=yCdD47#MmOA?aBuoS_dDn=Sux+Ij#*1-0F!J0X@IzCsBX_ z73K%&AlmTsaTTC>NSPmnyT!}PkAuxI#Y~;fA(T4oK0XdXE zD>KUtZS!MY;|9r1x9ORt7~xYVfu213!{p!#G5LBNVDu9Afbsc+bV1@O=2;;(U=Z}W z!A$vjJzxg#FGkyg+kJKTpvDgHh`%2 zk$tpzpjOv*oTwg4;zrvWN2_q77`mn%lb6>#BQrshAsUyK>W;|QkIQNt8HHbNv%J{W zO(B7t#O2O`pnV~nAQGpQz_B}y*gOuuMgsY*d4`?{8!QP6Im-@v1Bt#1smtjt|2)Zr`i|M`nV5cS4S1fu|(9Lb2Sw`n+#O+_h}*vx*Q;T5tAX zo{!48Bs@e)6?E+U9&tfD*X3#Q7Uy4nU#5{^@f0^;o^vAZVzxHK8(pAg)zDj1o?*oH z*a88TTYYH$Z!+@??={>z4GLTHF8qg9Nd=Zj2ka(73hRJ53<;YP66L1_*K1Ke)LPB@ zyi^9zoezrFoql;*0o7^mr&83or5-UXKYrs?bdK=sa6$ZwO3#vk-vEVgKiWT=A^PmA zEQ$yE8C8*d(66E93?heuei78&9Duj8t|{m*8MtyZ?Akvn8WrU{#@6TyJ3&4lZ<7}< z0X|NjI!*A(Ae3=Jh3u8{IN_~yky4bP|=VKhD^40-rnxA!~C%WSoR^Z zR_35NX$_Q2Q~r;(@?n@``)PM?;AqEp$0M%u$#^blDfj&+DcsR(3HG4fG?&j20q(;f z#qwnz`w)ZmGvAYeVblwA6>PA4Wv~c%sPk3%N)t7c)Q_tZoR}2YaGP!xP`jHB80k4U zQq61i-bqsRPs5O?80$Fk6)}}Ti${U{R{rv&572&g9(UH zFeo^p0(PGVzsWB@s?GLT10@Z|Bnk3lQu7QoIiE)(DTAQ6Vr(Q6x31af5)mfN_*smmnUhculd z84Co$kZpO~$2WLC6Um?O^Kk0tRduSZ0%`M21UCMeJclg7@xP`QG^w$@KLTWfEDFP$ z%n>{GlR+|{<0ng#?t)vWG%g*ZbW(!TCM$Pn5O_p{^Q`U5ExCSx2Ry}Z38S+^C%J%j zP{icBYzEk8PU}n-Fat^pDdf5_fbAiW#4XN#a>Z6RgvuLV8ZyJafo!BK;tRGMLqcAh64NF6?RGnswdMXrp*K79-9{FW=-^ZrZ z(_vlkAt7LxOK4j>EbW`P1SGae!0g{c)^goMphLs%T8kcU?O!c#qTm%kk2Ov@@hXv8 zX^Z2oc~=IW^u6+RJzAa{Es(E6cSmjw2%i~WmQd)i-~KuUGjVVCJ+KxRDyRzP?aD$V z`PqYRN`Qj46xg9E9U|7i%eG#8g3J`CWB`JNCO_=KqE#KyZY z6}Py2_Vjj3;+CA^vlo66*J?WR4r{ZU-6>^iPF0a{^BkH=KKQ3W&#g0%Jj?gy!jhR_7HlT z_NuwS@TNoB?yr~rI1+Y)Lm7~ur6ap@uKAGJ2sEAaIoExS1KfAfhYESaEKB79bFV0s zr2*S0oa!o&EC0=DfAz#7^>Nb=gDJ-L+b)GBW*U<^o_##q9*d&LlV6GL9E<)!kDx+$ zCns3&;Ms?wUkadD6lnD4j5TBD!(dJ38e!!<7fxbpyoW8V}qP` zbcclDp`cdT?i`)irO(-XQ}KIbPq)LKGa+HOB@ilf=vuDh#EwqX#SC)857lD|Hb22< z*|fbJKfIkgT|V{^J#p`w?Yt!2we(6szHXfeR51o88N(&wmkw73I>3v($`vlK3I~Vp zIa>F$WoL|>DF_p&w@#|{jCTi9Is1*cr}mwAeBi_+1spLCkw19`zr=QYZFq1pweU8i z?!$#nTT@yi#3S?U3kG;zIGxQ(?5R=X?bg^G@vf%!{^gc`YsHoOaAM=6gLxA(t$H7)dS;&5m1gM}8- zoxzKL&LqhjhV^b!8~qK6{BSY5OF*NiO_h71caTVJ_S zq--8Kl=-rE{P7u!@ThBxO+lSXm#-W?aJS;9SD>L!jrH=IvAdNmL`Ou5%K&NpI(*vwBhB_{Wvrh| zl`y^Dz)D|-`&dHBw%4-}JulrpSIYgJl?>u5&+np#`No=#%_NIYLsn(ZA4UF9=DQZ6 zkL9q4c&=y}%0B0EXNFK(`n^8a)AbQK_N6%JFY?e)6hDluu7iAmr*V7wef8vqn^2)p8Iwy$`@M@6;FHboK$f`Vu$CAk=WbEPb)2(QtB=(k>NnmJ#O(J4v&xl%Q zSKq_X&Wl%9YCA98_?E3|+o%8fLGtg9dIkDhXNe_xpOJR;yYJw8y&dizCOp{vZ|l2E zI!`~qw}f9Wx4rM!&zUs1-VIuAsqHBJA-VKRe+88Jfj^2goSkfq(JxndRTUdHZ z!uK_l`L<2!o|(vKP+*fUAl!3!YyW-HM!BN}IVM}%H)F7f40&K)DtNeTRn*m{=X7hCncS$wO`}4DdFG?DPeS`= z{EK|-%#TflH_=(jt#ye_!G&zu{=@i2y8Vup=IM0r`5C0%zm6Cm^IG(O5B8MX1HA3t$MzMNf2G;&v*ip& z`#8Qdsw5rTocZo+&7(dnKJtLtRB-(J>}yZGVOk}MU)lfKV)rAn)Pnyk{}7~iOTT#S zqtir+DNQX8|48^Lp6>a&l%(^URrwM%5(h@|H@%T+r4(7Ox67zA$t$XFNq4LdTU*h8 zv}r%ba?S29H&yaSNnmTVwe<)DMj8gV?FBw89FabXy(qhgFYx+^L%Pm)X};JR*Wc-a z39OG+s(^x@4Y?!j)>#E{PT-xzF2#n6#_`wJ#$O~Y8(Aj4F}=|ZdU~u!ac4zOP)f*j z^mZh3Y;@BgrA7cWuzzgt>ujOWL<5=9dy1l3%y~C9K!O?CL`Np-Xkoa%p8EQv2VrN$ zxnC2w!t%1HPp@_RN#|@6dk`nA5AB%1yPEgTq7DOzvLk=)SZUyjk_0j8y=bm;tw)JV zJ|X%Qm8)~<;K(6og5w)9#Aas->{oxjRxJr=ekrB&NM@I&RL%ii_O;T)`e-?cP_o_s z4+Xc})hg$~6CY=b0lupm_bJ+EdWi`44H>2=lWp16=yqQq_tEhaJzhC}dv)Ae$MDCXQ+l{c$HlhDz zIvZ=UZX!QH+ln~RANreQB?Ra1>dRkl>l>|WE! z_X~VoGld2j6~vT!ObXR-e(w5Qy`fXFF|y4(Edv}=`qN~y8f)Iwdd9DGzb!E5b2nE{ zw;W0DZ&s_DcfGY1(-Q1TtFEQJI<+BLLYz+$m#(|%4P=%5m0qDL{-QY4q(HaZi4HZ? zrNP*8XhAnxZk&-Sq;~Nz~LcTXT^w+=fy#HtZS%3{z5+B-B}; z&JwV3x0tBISUuUrOb?J#V*cmTF`CcT-1Ljv3Ij-=Wk>9}`=H@Sd)4uz_}ujdaXOdS zkYakBRvg-uS`?ndF>$*0{{vEaiPx(N?f8X&uMc6qNr@d92@9`X8{u7%=R0xt;EN2M zCjsKts+%NkSkA}SJER;Y3GqHof}Wy`d5qolXKd^HxJJ*V=8*qUAo`yTbjsc|@5lo| z^lWu{QmtRhJrb4fn%9AO+c#^x<#F{lW_ek|&1wa7SKM_;nL~Vn!e?5!7bXhox2mXd zPi5R`!tIie^NPw#(Pd+;sIZ)LDKxF&j9aAN+P0SMDEd|GGNw=mpEIT_TTlD;zcWR< zl!Nxki#C*OQvbRz*>lvR zgcI?0w^x?6%zp!l!j88L15p#?)N*RfOuONz3OCrwTZQ<3MXB;zlj^wc#MN<-Qg5c4 z3G(3JK8MHhMv-4vRIXN&T~QX1#zDBx>7;>|>&7?f*s{Ej8+k)^h+ZjZ`Jy$+WQrAl#Erj5m^Tjnr{$4K`EqMZc_B$ z6~`kdY>nOc^6yLTp1&8PAa=1#>EaK~DhnMBb(}|LCyk`!rZ%LlsZrlX#q@TzI^lDON`M1H@oe`mZu^HLWwvV^=;v?=Qi2Ov+B8 zIQb>f?l1E%gV5R*4R`M)Z(g&D znfn`^Ys{B=H9qP{A2mqIw`m)#lm-}!;fS@|0SVUY6S>EXi8^DD6H!aX^%2bQN@H(f z@Nq9wkx;*X?njWnMK?i1jIQaH#f%`yC&G%^dO3V<|&@fF*SlvJJrGQ+M05lp1nv>c#r#KH>rqaUY5+ z5hCGelVY9o?Xai+0(Mb|`rfta{|LAlWSM<~-QP(g2GMz#=+q)*>n-H|Kd49K+W_qN zqmHXmN~|gp6Q+YzS9v~asx55ubG0cJ>aP;aevF&)3-?*O1uPLvH_ES`@KID9#n!_u zyY4Nh_)}UyEi}-N$E+PEIN`-Yu?c392`G|0pgT1iDRIDX&aL&YdiW$^iOTU?-4OyoT|~tASsm#u1Xf8F#l0~yx^3GXr~Kc zj{(IP?Jnz?U8_XBd2eE=hZ7**>Uf}4cdd~qM&_pQM39nW;3)p1w$~Q5R`wAV8vF9) zS*Yx&(eYeDuatwmzHvxyrGu2A(WrfKE@6$h`>!MhOO#C<#c2qSGho5U+#~au2=gw}1spmo~Xa%)v1&eS8ee%wEsfagH z7VC1$4tK8nm2&n5B#ygUQUKKGTwUyi-!lYU)#&hyl(hokZa#Y_Q0O$Dduoh`GXh{p zM1`GFCazLW{UooyO#Iik7^>8xS%IlO!D4)DCsko=4wQOYg0RI44d@Ft z*9ecJW=s@>d;CZ7^OdDP^vk5GAuL(`-`P(KyDP4up!DsX4EkeV|<@vcepK+w{ z6YC=k#pTMX8hiPT18RyX2Qmq_Y}!nYPX!os8m`HjAYZZIJ4~q2K|cVLGhW;iZZGu1 z4NvM87JeA4ICQNLY(L+mZ=YKccTigp0*V9}%^Eql0xI32cBTt=L-*}T!o!waj5I`c z3Pb}QLmY<#$4Z#0Xg;*b)ruV+C79`wS>S(M{XoFj?k=s#QkVB0xWUn3;G}+WZ6$6L zqfe~e$^K-e&LK6n-VpGG3Gd?HdXDw7TEZ3xeXihZY3(c1ZAwTAZG~0|M76MKPbxKuq zS7ZaZER#0jf(dP-U1+iv83dKeUs35m`Ue|_zgS~kt2n$~d+D0c-*#xhnb_TPSFS33DA$GLn=< zj%bnr$+x@>L`<}J0hBtT+$O2DMj#dQw5Spjy)0dt7*L)`?*&XG4(pf^u->ryK&gq{ zNd}qwTQ9(*ujlXD1`;q-OPllu?q@^yq#6nXiPN`g@6n!Oivf0&clPfsY@LYQ_kx37z+_ zTpZu0tJI*QMcPsYzBpe(S!R*rRF>ud{#RK3Z~bz)03*s&xOP+Dw{a8Fr3LT~Bj`k6 zpj&B4U4z+zWqy!C4P00=Wl_AgE=3QyW(8%X=c9o!qrfsL z+i;=o4}e1a2H14eio9WOFQtRdzsirrvZb85q0aPCJ*@E2rO`@rp+!C+=p_M%C0L4t z`JNw&q(Sm`J$HJa!*xlYigdFa!z-JA4b3dyyf$toda*3QKfmf~HVKf6>$zpK7CosS z@Nc~6lTT20$s22mN6w-4r9jK7HyZLs{nR(hbne<2Ntw*#YJDMEYXi)Ow<~Om30CtH z+M_Hz4Wi3D3CqT#jU*MFCAFLZcg~Jl2NGb`OgV~++#u7sIn{7}M4jQHoFu6*Kcb7g zV8bS8jxp5)lB!iqwbc>Ra4D3zl-3wimCaNRbWx{V{x6V?5xFQp)074oxCelkUr#i; zN6d3Z)JWemHsUO1HpRY=a;Buh(#YnqL_^VtdZwgGJ`*-JVzIX~v>M&g%xzKbePQe`dGz=-G|$h8?{Y4If# zj9kupFzI_5Y@xY&gG^U8S8V(51?Z9`z{Lz`F&?%ya#IAgp|cDa4CwrC zNU?;jvk?2yz&e3tG$h2t5{z7BG2TBmY-pydfRVU<_h$IwR_o^JboM=;mW{<|@55}s zAGrqvj%U-CvnnqfxAqHunDCuAd8aMM7+1gbbMyMKyuya0Sqp}J!HYjPU*}vJt3Arg z)%s6rcYQ=9Q_7kQC_YeR?Mk42H87bQX$fO0nlW*YF1rj742C3?VkO0gsO>*MW)cx= z?W~y2R3^J@-2&K-$zjceV!J|x;i6LYYt|ve%1EfuGNM{9sn*8aT*tkw#~n929u*MDr6T$iliWbRYu7*ps-+pE-J^FXM=?Y8;Q2A z*GGe|D^PzsIY}W_|gCp1*3`F;cj+p<2byavUm5)nC zzGfQD;S9E~oKR=%QW=!gqOc02*nJ*HpYV)hz$IrrCU3P*PpqTrEhC3{ewD42{b_IO zjZK!>Mb(yxAI%<~PS&)GIJ#P|qX+h`bgn#eVsG_Dc~e>Uj=-Lkx4!3N-yFXFFh+P+ z&cN&WT4T%11>30773UEDRfxP}AtO2LKXX+BN5gz{$cn49mfxfMXDj0iO4Ut+yJ-&1 z8~otIlh_ow^Tw4%(M6Hx0dMX;YTbX0rD%HWqe^e=#K~Xp$ETlI+`B=0))6$VWI5Ah z^`$rN!((H=CR7gmd`I6}*g*EOGwdH{u@Xo@ch^H3R5rz!}Gvm;G z;L&-HtJ_1SA;?cJu4VkUt$952>+8GKcBi!dkE8R9YGVD~HX#Y55kgJq2{lwhm8OQ! zs{xS?CWtga>4NPffzXA}tC%225j9jn5JMFZH6S7?YN(>%`C&(oC+Fq=exEh7X4b4{ z=Gpt&*L~^y_wAQ=&;6%*`QopyA70%3OYN`AU%4GuUu)~jUHJC0<=Um%j0pT)ZCunf zv41Vu(fC7Uqo;s4`z|mIWB8_pd5_SNvxG<=P zT%=uzW#k{+Kx7Qg<}qYo4tp{o@TU17jRi|Ga2^X+&d^mZWqoB|J}SIRWO?rk9}s!P2m! zd8LfcunxCP6eAaVere>P-0S?wQtP+XjXL;OWQf8U;p)m{wX21cR+)#-FDAho^^c~k zAI&%$bFwgTrCCxb{CSb#)aU)p81Ln!dy0M9gE;`F7%JM}M)_+&(T*bDz{<=6lK?qvbTp_ zH{>b#d1nSf!vmQ?{PdSQ-C-s&o;^=vOB~Ik&cRPr#9q2PD<70q+{`6MdpgQLiq2zJ z`i9474ZP3(1+K?s$ZsvbZhxf-Zg+6q+S@xX(^0jSZ zt(*v>V1P?I36P+GHT{VMka8&-e1JtIpN-A6$WF{H-qVDhJMCgYvCEa-YV|SUIC%0o zS17h6;)gJ!GV=b2`0@{!5;j(*S^&Z=10<_nL(K5r;?i3s&}-fHg8Iz@muPj_dcnBf zjd|$NXp&3=c|tE~u0Et*8hv-FK`(4>=nXXzJ<&dKD(!tuAmXTbgF~VAQM-cRKca!X z856rbjz(im>T=!OS%azGe81&Y`9Tr2}E-sy4&oikSZj*Hl@8akJsBLI*RvngRi!ig_rJy2C$4<*uOq-tY3$)|406<4O-H zVy0Oiq!jI)9|rkko6roS?MV9)f|a%d0XV2PH&ZW;w+g8?<{jH_Q(7zE$uw1E>r4%_9{-=h9m8xM?)N0Ikvlvid$15P!E0<{$c{s zE;#$(7rz4Mh*6pPEeAaYCwH9DCBqH?8__uM5H3URR`i4(nV!E)pS0+syfaJ(+zwkN z3FW)0nYvCm*ns;OI*8R|trnqDVKqa;0C}tcpIoOcw z8D4!9eV;gK)fODO9flr!`TXznp}B&1O<(C14C{!{yV%|(mt?#we#l7x($8hdy(H&Y zI7l_)zOltEc$w;~l`FaN>TbweA5^%pWh$#H6491G#W+RiscH?C#r~`oil`WO1&4l3 z+;@;BmJ_hXh!`nHbAeQ&lqVqX1Q7_Yp_5}%)Ya7i?GXQng@}+TiEw_R%r_LYMR6CC zg8@k9vqAbjD@dgBb={_qS-NB@)VATIFO9nR;C5T_aze<82R2J4ivkp8>^tS#rMio* z5J5VYblE1N_@R(Sg?CeRx{Ah7PlkG0&6a}>aTH*M5NZ$2YOC{+d?5I08 zSLqIW43dxlRHncr@9nl&L`s==LuS0+(Q+)vbb;BB4elIX>>xjJzW>ke=)jbiZ&_lw z2@McKT?Lshco&^=XheGLGTb;6aSoBI*w}Bc%x8(2^-z)LgaK04v-IoAcM2btSUMfd zS6RoQ=@4hHFUFI2cpH-H?7&J2c>lV<(3L^(MtRZZg9|!$^oXCKUAgpF8;v18Yf_#Y z@EC79o#(l?Av@)}8Dk{#cx577e&oW0o);j*Z?ZA{iARx9K>XvNV3|v^-c<)ag5w^Y zQ2ko-V#sRRn}9MtDLt)y=SclXuJ}D>j&J{{)MdVy{Ah>r1a};g#s{kH((G^XoI06y z;xY(2q@;cfmojHov9ux)6_7yMgMg%+D`Bz-sZwcZyL+_C3mJU~Jiq_1T^oK=LaNiQDlbg33UVeoR+umRZ#4l4I z^^Mw3aQnNKQ?J+vK5fKp6w}918D4pBK?Iubsuuo@?f|HiKanz_samjsPS}rMh%!lf z;bC@CUAO1MM=;U=IfoUQ^y~9@cTCd0Xm3RZ_DR;wu-A9nqI@FbOs0I7P8r^_>>{ux z0J?wrea&e|G(9A2Dpf^daG{su@6zRHBr=f~;jbbYY=R?b`EnMFS2fjn-aCgzWI7wX-z7 z(Lh-|2#q3cJLfb!f>Fk`wPT?eV@Wb+R^1WVkA?SO;Z7T`<~hm@BO1f(KOG=RJV#-c z+9+s*4zoE=L`pU#+Rp=|SfBqbPn5ZVQ+dKsFrYKa**@tsr^^7Pd5%)~3hJ;3XrI0- z6q#Q7*w)8EXL&%XDKK9|N8G4l91__`d^k?=-Is5!7b<1br8i4}-*A%3D?)VNNNYV+ z%7h3!LV28BEYk%t*nR}k8wn1h>J@U(9W3~90J;#TPz1pEe2~xIeKrN&&E{7|Z~}+D zWQNFPab0p#r!3wYRd#R*VSw6;IU%upv9tWL%WGAmEnQ8(fqv+hdV6%PJ1oyc_h7lb z&4T@-X(D5Ur_NE?pD6inMAcVIaRH!QWGCfC(J#RYb648D@)<)sSUyo)`AoE>nB=P@ zUC;({zH}|Y0k-=EvMizzu&z|^jRe8uOFE<*s2ZSfr0~|C`Ecn5LzSi#=`G?7Mmyqf z0g3?#@3X_m0)%fRC2un~2D7#6q7{%(^%5!Lq4#geOMhLDnfkvv3!77HGVz zqL9fhh$j6pdiUH{{vQyO@1>G}sLubgE~MPgi=IkKCjn*98(=SV>xw zVLg?>K686td5~_WR%IuJcqkSjLssEn8r+n6+CdGpGeaU0vb#zjThX(VP@x-a6&t-A zsdSlRb&#g|KY%qFcff}fZA<}@_7@8_WL1E2vQs2|Rj}kBohV2%I~*M#9q}CV_G?f9 zK%o$aF@U3`uhgW-)r0}&J>unkHDvb;%1MCpUI6(s(;2P1X03!dF001m7P?mVe-X@} zl8064BRY3nF&9@zRT`l;H0rWfNWq5I68^@!?zfrKY1!07*9r>;@6$q$TYluP9(h3{&78L{6^I1aN5cc#WlbvoHX*2jV*m*A{n=$7^JCSz%k6>LF*~V%bG6t z%w)RmMzt7A#&V8)>j7D}B#S(^_-`5=rkPLElaS>%#d4&de1y-6to1EkyXPluCK6{Q zP~BTW$&X&^rz^+;fVM=NHY`*i_zm&;V8%g`ut)=dMfQqxshvV8PA7(L6?r@%16Pqi z4@`L;NOSjhw(~zqpC`JOAJ!lm+Xq^F`V=-yX4^@L7^~T`p>8CM%isHCBJ{Qhv}nhf zGCA%>6Q@z2B)nt-Rc`ttax)u36BwXZm0r;m%~p_a1=mX{;*7{>o{zM)Bh-PErEGWA ztrFSD%WkJY({C#+jO;sAr7oX^WDz0wl2+n4>5nGNAojf;wX&IB;mTt$1?rj@hsepJ z^)x6$B(rQWCg~ZdfucMpKr~s5rc(=+X_`A&Nf1@KeB?n7z%Kv?45$YFwv%!=Q+?NN z|Ebwr{TsAQLCWIf!`hYWImbvMNWB#~nw`8RP@%rsG{p|1tbsPVDHo1AD9jf(#wN|% za(YEHl7gwQU&z9YhvGien-)V&M2iwU7$3j z(79WuPYX3645I6?5lS@&Mdo`Co-0iYRNU$_tO%^rNN3bgrCv#ARf=RXam?gy!%Q}$ zln85*SGi3^llKt-5y{Pg2JmrH^ompfo%wxVSnbM|1PE=+$shve=!+5Mom8Y3wlNro zsde+ijoHTFtnydN3ES86qRd;Ln}@*5|2`wrA8?2s6)5w`bP{tVH3uDco!|>>iPDnw zd0fSnYfT+NM?Nm9+LpKzvp5{pc1>|aCS)YzmfAOfqC?7c1G=1(2#h5Hbz(;NtjhgO z0i73!rz{{pQlj}dMUX3`k)oQM$R@9@}Xy%P9??;v~CLUr$_BZ^@oMxR7VUX?dI_;LhAm6ElSvc>^- zIL4>LRd!!WS6%?t4ze%X4I_|k%OadWItH=QX!_<52Z~Oii(mb4gvt?{{%0rT=5Z51 zxyin0);+|`9(LMZe))-f0`TBrdov4v|6`xvuQ4@|V<{_+X(M3XyXNOSxl1?Jc<7Lq zRaak*O{@JFQ6f|2j$mzX6Yngo}Eb4j&y z)TW38r5+YNZoh9*_iK#gv0?dG!yrE;C;E@3yW;7Tz5Jsp`_<1SpT3n+4^O*c-|(z! zBK0{mdy_^tGysHupYUX!F62>F)Ndp8ENglLC5?0GM;+sMpgk%&p2 zx^(Z`NIRd^J9obmQ3jj|<#2ffPBMKE$^XIM@KExgDg-QjaKVb)>=cv(PBpS6*4g{s zT@==SyLiR6L<0?yP|rMW*Q{gg^g-4PAcLn%2Wch6jF@@cwb)YHy`6LTl z-U}z@1L*U!*M`3cWnV{QiZ8A9FWrGI)^1XOPnH&~R z;fX5_tQ{Ht{!hM_tLhnvXIaBFtipQz)@1Stkm!M#8(ERDH|^wGL!O>f#exFE#m-MN}A+#@g z!lzkJti6Hl@HxcsrXPYj%9#GN@#w{Y6Jy!`{syC~Pf#9+yw{pE$X*%CmC+BI?eAQB z$kK3c@DL7kZ9J+rJ^glep!@w(wta!B=e?fwzy5p#XQtf_F+HS}t8C{pezNQAho-<< z8IY?q{>+!G(aJNycdQc{$Ze~ePt+scJ#kIe6u+Wi5(zhy5K>ST%Y=1SrjBoK%DeInW2uct<+`!UxS2~Dfzr-0WFl@t>3qOyq1F5$69&q` zzyrod1m!xbGD1c@tUmajoWa7MOXWbcw!HHkJ_MM$>1foWvf{kbQxG}t zFv-GPs2367tfhZnv&H!SGHE~SzDLx}tD*Jz`=cC$V*$Q~Y%=Zb#!UJ@XX>WAVb9RK zn|@n|NqO_lkmK%#VRK23j&qwBZh9^Csf+rdfM;kz>OS!tnhO4bzDeIOM^JBUv~S-Y z`tfo54o^&fhdVC+Xz9qmOJi=vt1RGSb!{SbLe6a|5kh$FFg>H}8Qlp^&WLV&>yk1w zH!kgNX8aI05|`;^(YQR~q__yi%vrrB9LrNChtS8RNP@Y%^S5tcWr+?ef9(wmU8IY|cVR5V|rKFH1kUhaJp&Gv)@0QR{Efg8gCAJDVIe6XL zH4iNMRJNX}XEB%2!R@&p3u!Oi7to zdKV>W$_7wYL}3c*V^^$~A(_s~@x$JEMvYjFS@#LdT7hBT!T^kXEoC%M=Td0}ti2bN z@9X37xyzj}_-$W++UaYZu2)|+;TL>=r>mePDCT*-UMnkgM%VL`s0ZPSP`cv4{RQOB zjypE67lcXWW7VBJ@dJN$$I)m1e4YaScl0oZ_c#PwxMN3in1NQ)uGu#C<|8 zJzK+t2UOc5iX%)Zr|Ua&QJhD%>HQ8*>TytO1RZul#9nFgXHzoyy5lL4v8VHb`j8$E zr8^=e(j64A-cp>5)k$w?(=HQlNrxsA9R>wyW@2C1;>vSlnzh-;)8pY%XZI66^SL0a zb*lU3*1YaFiYRWEB5s3vt<_*>aXNv4OlaMg-E;d8x@+;1HNi5~ra2+||0+q0yc43C z1-@CUGS{|_U2~x4`|l4Gcj9N(OaS=-Lo@PZDY%}`Pv~*bOmTaF?!cz5-{g-(@@@Kkgl)ZXv@9@x0>^Wgf+FO~hX!e*m$(~rWuw1GOgB+NKUjBt?y zUvS@)FHOi&V+%lMDVYl6*ld$>JBft7AgBjcJf>&`PNr0A_u+~!8j2!MLNd|AgzMoK z$FTLSV^B~4NGZfSLf=hI^0FXPWr%u_PuNcnCvwzfMSs=p z+*xcygh&ugo(_-i_dur-Mr0QivXyS+a*&}U$&>`3l`;waiud$@yc9!a7Ynf$31lUl zlnBI&BIj$V33_vd27V_`YqJ@0{IojF%)qL%bp4Ll+E@K1_ z%7Sgc|)%$Hb$ndAoxNI00MB|Ryl9Hbw&5**92hdPNc zq^594#{_y>AUDUw5~%WpJE?(O%&ZWWwW7YLsia|fYM?0TC$!Qtn>>)d?+84y+S_C* z&G&a;H{#cQpkY^MQ9RAJ>AxD1(x{xoMLP}Y3X~`cRhfw$_0@ckkmZzy0%>oRyDz3Y z{%mD=w8$Sn9kM^FFRYAJcXt?Tt!o`q8fG&MC{$QldX@ve5pJ`a1H*TYYtH09tomkz z>EExu`>i~@ijwxN?_wHQC%*7V36~q_cRyhhSm4iA=QcnVD8Za*XGcea<_q8m#}%kn znH8G1#0-sgwt4jS37Us-ii%Gy41R9XOGEas#XYx37qr`OpiH!1N0t`hIMj8o%5Fbb zOe=-nJGnlZ9JACZ5Q_I5r|6j$6F+Ls@`sOMfM=VDO#N2RK_lL%ymU_%4l+{U>`;x` zA&Q4O*aIIeT|r(ZXQ>Hz8ag+ebkdJyY2ZgBOsyv!&bvK$n{5X>-9M(^k*Gnn3`ZW# zB{6D+EOFosf9VPV0L4IoaG*{!NSJ*<{xd*jmk9BU20r6)icpWzq5fP^bp6M|WOhHu zZr3gY9Y_2XPMSQm*YMrNQZrseqiI6cURlq0-B$5rVeB)P5M#Ar9p93_3Au&6*0aS3t{Y0<-b|5)4a!+Vs@sIGzhF+Zo|f3A*|Q%LDtIQ z=+8eUG>E(vZCgM@S%6sidA*Y&>HsK21(MY|0zJgyeMd?@;6%E zo<$-$jRsWc&=oH#`>u62AHHFGO6MjfDX|Mht1q=mtAN(C@ieMcH3hx?DVl|9}V<>XcL`^2+>I+U@}cCGtDd& z6KP`q9T!`W74s&8dp3Zd6MXhg_g~>@s(pK=uUCj)gXP7u?|p-qA3eZi+Fl1i$?f!r3=53qYQH(8(o`*DmO& z0OTVA#skHCDB>9c*m?wVmH=J;!t_89D!2#%897IWRuXacnC}&fD6m9-6>IN;PbP@{xSr_; z0XqrOK1-=t34n4*vE-=>WOB~dD2Se86on!AZmAs;0XvXE$fksHXVCT{@GvS{F3FDN zkMm%I$YgMej@TsVa2WB>yKr#P!`uT_%-g+Q$CrW^Z$yXk4!e_c&MkrL1Y)*CQ4NBq z*8ZG%7f8_xltP1a^5PSZ*`1sM9c7;_=N<`45kE^1D~JTQw?aGU$QeJ;qm&aNB3QJ& zglKa?e1e#DfY|oK$~}_Ab^f6!LUk-byn=|x0HM=3@cWsF86IMmjhNyU52I+^eE&Nr zSnY0712*{qEtM@al}AoNo7!aBiIKUz=%^cVOPJcttmQuND1(h_0`Q(#;JWs#ucyWj{uNDC{jO*>{U$YENEE?|*! zeCX6%rv8n5WccAZ3Un^%xIYi9y-Jv$gR=49#R#!vmUw-F&phhDS&CRBjg`cM5fTx? zOWk_I8WJyg67NvWuP73HE@F%uP_GVe;nrMb9*YvUG*sni5Ls7sB z;;}<7ay+ctSwrR>v0=jGk+gx6&l>!(xo4FN%uTm%a#kki~&F0rM*2ru z>DJ+;iwB9F#DZr&pL3t^{bh6Yz{>|GK9p`854*X2wQ=dfiI;be^0FSvX&5KOhu-WM z->~<>Hek=6wjo`-fCrCl)ZfdA!EDT2gC!eIZ+!J%#L=LF<46e3tEpeX`=GsQ}^E}7~V;GtukkawmSsWwgeMyoRK5-(Tl0xd=v1H-XdZ%HBzb z_~w=gy6?IroR@iN9LlQfKK1DFsS{ll9Gli~dDqjjW9O#!kBo{nZz>ByXZ5ogPTteqM+FWalh>(JJi@^P;IyyG~2OkyoK+%uV{m$zRrKh!A;7291Fvk%+`dxvG{(kHy^=MO))BK=iCX?ng&-JHSx6Z2wdcDf_|NMU-PLH}Du`q=DI)3qKC6liy){Sd#zmpkn#0Xq5; zI2s2~~GWDYW=&?w$ViI(w0~~%Su%GtO-S0|hT34NkOx-E{ z{bp(c4q-?g=AqovMr`hn72hY!>-_tgr?Na4A=<(0(evvyy`FHG==ifY`pRP4_5eHn z3n*gh%*{bwmn}HdJtUkGLPkB}*m@Wzu%9`A-MCp%TQ{Fac+SiO&FDRvlwCa2|2T+U zX4W*@CHLf96^CaY+=*wJHa)oNR|1vp7;lap2ZbbCmi}>wbEd@3E{xR&hjjyTEH+06 z5KrD45{ay7;k3`KTA-Z>xJbXWDa#CzVvXFigET>H%9ex@MjSn!%lGX8UN zzB%;n-BVciT4C1s+Qs8G_u23a(ol02e2A;-EhTsRSlys0CZnXg^HLr8oc{Sv_#}2Y zOt?Wo+Uour{AlGGt7RGK0CMAjr_6%mA3oF8WgZx~*QyNeG5xdB%9D0Q$MwfBgV7Y*)lG?i&Pht+&rq!dEIiWw7| z7PC}p`od+3fO;{(gL=Vn?}^Nt&x1Z0PWQZP&@Q#%w_kfr9eVKq|BI;30_=C4clpSV z?EmXsBLAU%wh% z|6M3QPTnwgx2bD}`-@}JeGt^k|J!T$Uo+0fM?_=3u;GC23(>pb&LW^gyk{<1$5>U% zE}ZOLb@cnoMICmAkHqd}4j%V-H&*Z4njM_J`=zava5Zf<&@-F|?pYC( zE`}i;92+gBk4(pKn_IJs?&4&D#A6?aE6SV-#}5(XBCigdedJMA|JWG2J>an&nlKy2 zCgtA%9cFJIcJ}S5Gi)8lhp>L^-}L0VRBCdi zLv8MLd2T{YiZO#?C(~6^d(+pd|5sq&2lV|6{ZF@R>w3|nSnE|)#BbGKrAK~M2)#wo zFSTDjK0FpO9U|y(#x_($y)Td5+>U8G(TZ&hYl6DYT-w7;FC#|8tNJ^k82xp&2U0#PTpjd7$hP{)C9b@h*hfrHj9vWBNS%4+LT+&2p0JI4spG(t{0$2z}HL4EOWhMBKZ$5}X!2A3KWFicAI&_zt!m;KA? zxmDun>dhWC#_3-_GDowfSr~gpNaU(RKE|ZrkxQPmH7wfX ztra{(8PCswEp6K^2+K4 z95a&n7(P7gc&N%K>|V&(|G@Xp8wTC$e&6MIuR_x~{|{a?PqU+cH2?QPx6%FY{cHy8 z>%G>-T$MBZ0CBZ?JW#@HDm@&kUP%kje^!lJ0ZN)hM=HhlyXJCIgiF+%y2yaQQx$#* zD~?r#=RYtt!eTQVWxbq!Ysz~2xaMh{FzaHXgKL*hp|75ohE<<9ubHn+u@rT}oIEdm z!@d6ePz-t>GC3vJx*Fc?dGKA9sh8FJrfx5r|BXLuN2P61bMZV@I8-eTYbLH%jw;O8 zqhyZeX;)*_A=<)v_58(p)~t!D=D*2zC&O9l3y-}_JrU0}PmbD4=3z%6*vq>sIU203 zGX+LG%vzyI^_E?Za_-G=*f&-;pa$FktHu??b;R6TAWl!NojWd!X z+rzzQdEpZvgQNGreVq=a<%F>89%22ES)0Ad%cn`tW+3>76}^p z*gv6~>z^9C30)cib7D#zjf;ji+{1|mOYwJeH6k>Ytx#ygM*ll^w2!_ygWgfk9(h|g z^x$0E80paG(WyaWms78m^Dxm@|IXLDmww=g;XZII%u6e_j2n!}!;gxq(J-WL6QQ9- zpePnT@SdOLj?cll}lJNIE& zT$`g|L;3ak1qaN-{W$Y1smz9Nh$tJSnX1@GEy`{Lx-Z>P-_N+D$@6ih8i)#Uv?NJa zl8sUaYB6jSNac?h=-}3f^e94D$CHLw(fxsugjrRzJm2I*~e|ykx6~1%s)-e)}MX@kO?fHd3&NbF<>;N zosy;6+9~eDC0$_XR2Wabw+p6JNi}Q4@kAYuj^eJ$-!vE55 zpAUauiUMj8o@N}zkYt(?#LTwb5bIJ;(Td5UGP<)B3jI!``A%dize{-mKWP|d2QQC_ zkbh7Qo^nWh;FYqfd6NcpPG2t&`4TQ~JMT@%^)83$CAiCZxPk9BmBpU_;QnSEYI>p* zcHARNPTL{M`uTuYTHmv)K?-)L#&d>xC@N`m#ZG31=w_OQgL(0Mdr)hAC{F;wd+G^q zU7NX(wHa@Z04jJ)fRq>K#4qcP=G>r&nN?E}uU1DDz#oi)jB}vG{?@Pi)#Z)lsMHU- zZzVr2IVqF3#H_I-%{vRfDUFwjTV|$l5=TR)fVF&&5xcgg z(Vj}IlI&agyB#$iD5LW=_tNn>W{)|Ne%8#EN=^!OZ&aR-(HD`jJ7G3qCmG?WZ^+Y0 ze>gyr7CYE)EqqI~w7de)eJJ1*h>pO%0RHElQw0`92f!mDuF8SheANT!uy9(e?sY;| zcXK?{x4Q0LJNLO-iX8DjdWBDvDf#9j4N*TJ*SX+D0Aie zu{l4msMw3S89yHBf@k21Q6wT!^qBjvd6m2EtlkRt;31={(lTl%aiKr_#mAC z?Hp?ntEqp=YgS>s1cOg{D8JtW|06^lKfKlEnaq2wMVyISx>Aum{?X@G!V0YBwQ@&n z5KehW%HmGRY8vvHPu0grM4N8ogD1oppYu1&0E?3JPNFR^I4AXot9;(Xb)~pdhQdMn z0MVr7N8pnZUdb~_{_hJ3H$RX|VV_3ioZI5XOl+NCjL20eiTf!&ij7@nWt$MT;bEdR zmpcP~;$L|N_}U(O>tvNLQbIa2`y=aN=;}22va#%p^qBU;d5+&nUR+TmuvZTH1(<(vbO&^ib~{1;wr3pdxsCTdZ|zf0YHWC$F2cR z-?#ogP`_4F5&qdMOePbv$5^B(W&M^vlwbe2W^e#LxbEIJRwF+K>G7+>nXrVd9{ooIwMRoFh((i!iuQ5?2~2McIMC(bKOeHDZSwqyFx}6&m3AGM3g}n&M*g~K zf~)W1>`H@Pbs4&6hv$|CMl-KlDU$oa%hyNsdPenqb)=RIy#QC72GCX8xO-c4&$$78 zpUPW<$_HjzT@(&~Y%jnswV1N-+tm88J#`Jry~Kf{s(i^^pYl)9y&tTAG*|umx$=w* zgdY2_?iPaNtNxUNh?}nbxhuMW;s!oqqy-WJGtkjcsXl87p8=&fsp86GqPJ^pHc+gY z0d@U;<&AJr#%D9Cx4yfSI-Y_YYqi3m=wUk(@j!qS7T}rAydo5oAl#T<2?zH*Wr`_x zJ+U46*t>Ni*_BrL>GrV8H=!qZ&^iL?$*Vjn;XcT^Uvs%@MwE>(Da{5lpO227%X*kz z{?HlKUU1#P>nb ze<8h~nyYVe0Ut~7@onRXIaFw1;XlumkhWS(P)X})hoXzU;w6%AsvB&-G7MSf2K}0) zZih8p24Cmm?|()-n=)N?DWBprC4MMs1U+bK>J?3_qYN}Sz3lg$b6nbeC_|vjU;rm} zCS=kX2dgu^`X>*#8+y_vsfu|~>-&2baIj!f*f}Yz>;#{g*KS-=NW93d#UFZh-9Xc0 z6eOA*oC^-v7p&MSo~wU2<}f?%JIh7UDJQ3FA9a&w>pslY{RO*C)Ij-bx}XKK276ZL zTt$!C-}X{xxYD_Q8M|(~7Lk0Ae{WsQU$Fm-0@|&&ID`-WSNqua8Ow~E`PMhnj4!wS zK@%&|^B9}?N712J^iJ*{`Ik*cibXSPlnDlV1NyZ^uA^MzXotK~hqw#9u7&iUqHX`$ zpzaJJ*ZVCTsYqs_BO_+G@O8g-0#FCVkm0(?pqighGA+4Tg}F@fF358#%LDreS2N^A z1P5)E5WKa2xhgafMya`g>ECy+Vqg@AP)zTuLGsQcP7KT+Gn;Kws~a*aZ9XUCIV**K zEC{dTQ(DO%3S0N86q-2#UBZ(ck5x{S5k~Thi_us0C#V`v#nR&3`k8g_2aD^)uCFR_ zp9*`z2Zdx&)yH*^uaDn?o_v(5!(yM5FJF1zgd+r0<=0=;yQ+%6HQnU<>{j=cD^04# zWb}8Jul{Dh(VaF&*w+aZ3V;(a(n$bX2nLUdW}4(? zy6sET_CSFB5$@Exp3S!4joca0b{$x@ z_j&Nd@z)yk+DGM*b`{guffix=10Nr+FKpMSZZ}eVT^?cW1ZA=({foW{L?lB1g#^))&=DU34%%<$m75cgXx1Zru zGPfLx=x&H*OP&w?*_U+IAAzJ@t%QE7!>4buX~*>)jazjpM8o2=B=DU8EYWy4fb*yUjS# zvAAKP892m?!ZjJh77N!bRfx5I=i06u`omaL_BSV+=gq+Tj32B;xE^{W5yJ5-RdzhE z^}wv6_lF|l)ymSSiyR(hG$re}ODgWDtsI%Q(&S!I_)_R>=tF&ZN_pqf<+mo%uuaw~nn#&pCyrdL)6;6ck~RL9o!39l z>Yi0ASxPj#w%qUUUSz|y1(qL^jao8~t=%KiU)BGYK4|-~cb=%Vla9bg zi{?94OYEtlu*h%mNB(wUttA1iTC+T!XNk%&6_szy+yvKoYh!H=UU+@Ckq?F3@6hHoV0_X}h+)-P@v zD}5iOLOkxdv{x+=tu^*gKOaec9A_v$X1JAy_7|(*$3v^D&I546 z!Yntx&A!*i?MaV%Ky)4Mvh@C2Ne4rFza#=$Dg2z(UslzX+Cfen#Oue;SwSTm#zTZ7<1Y>O5COTm2 z-RO85`_wSFCHJ1`8ARV)xyq8EDmQAy-RAqQ-;uF3QkP%M z%M+(397B9>kF{2O7@vEx&Uhx`t4GA|OuNLzc=^{U5o_vf%X$Vf#!WFV%%;}8kgl{6 zK|xQ2h*)(C@W4-$sv-M{%V^cz4;0B^_$M<7LhjV}@)HbK#(&jqDq94EOyTve#TNpA z6a*lX(tJWllO_(fDYu>;th_|Zv}9+x5%NYAS6|&{#)OnUyukDiFsTfHR`LuO8e&3D zF8e9zP%05Y!??Ay{CGE~J>ZY zGK71Q{Pi`L-<4~8I>$GB)00XpeSV{NA>G+PE+oUj zuD;Lr`aPD%lS>s(3UQJ)Epi~m*CTOGctXX-*{n|$8rJPO+&XT10T2@ z^bKJ8Cj@E=7iz1+pMC8x__~>Fn@!;|gRw131@{9FDISkz4!+$MJC`sdCZsD9%`9X@ zt>FWss$-Ngo$tp(ujkKmHHeL7MZL-IqQIFtjuLu`g{;!v$J$&Yes|sQBIWZlBg>_M z?V{qial1mmf}qfZOhNvsT34P{kXueWwDG!O3-|*8Me0^wcGRaxhMmU$%n~ICTHo&A zvF}|9|5o=;JOjg(e=Gfa4IjNkVW^-0f~7MUxRWKax!;N|v6OR3kaKBDd>>dnk3SoS z6+giTc}!)Ewhvtq2~%(Y|L*(WpEP%l?kKz3q+#jN+IL7WoB1Ny5{UL5yu9o6^INKr zW?z=@k0^2_y2)XiZV?=0rA_>UmDfEhxh8%6P>9NR1Ku+ErnQjSD}V0ukJ93ehLdyU z#S(P~LI*35WNIDtrcXVP*_hapB-sjNJdp38zTE7s# zG?jB~E1aucrVq#)bpuCO=NBiCi>kZ2vr~k^v&ov-Ra~hBlih{d=SJGuM-Togt9lE0 z3h?>aAh0y+Nt~s-%2^Fp>57c(T2gjbMK=^abHVnR4JX70=O? z2;0owD7fIJjUY8gu3emg-IG*xvpIUK6Q92St@NHK7-g$T`<`w}z78T|0mgLjmno0>ck%9VDFHx*l2PT{ zbI>o9)(HRp{rJYq-iEAa-^wb_10s+|RlgN(T_5!ycy2nSDfz$@A0l4<8Yb~(7k&I6 zQ7yb^yAI=~Yy3?m#{~!wB#RiC%5asDT%5Bm=;?hb0fhHW2P&X~ldWew;vr7OLg3FY zSQ|^j+XZL*qX4;jzBdr{CR%RgI`(O~kk2DyLh*h1mF*wO=auYBe=L%Awn|POj_r;6 z{N+^FVuyEwWuA5KjJ!v%#)a>z%S(rt(q{5fCwrn0YzXr}-}bvnx)l2xy3j&y z_w7}eU(;Lc2)di}>En0(C2sh`Qp3|f3|{rbzUYeI{$aS>pY(qI*6DKwP#wFJbuK_O z>xzyf;X(3n^CzESIuoTf7?7S7_#Sc6 z{ebrUqXxGNH4@CNF7vfft2bU=J$V}*5mQ03qXI8|#os)x<6K13#sxFl3 zD81uqQ6okCMjMl`to~6g-7eu!m#|K!zEOxyKcB5&?6Rkr2nc(x-2Q^;ADhUTqy;Oi z4akq3eqEy1p4hW!O+DKfB#dsjwAcBfLH=`w@ip{xQs;!czvlmA>O8-i=%PKG1V|5r zUZf=SPUwgTB=laSN-?2H6KMh>U;?4HfK(}lA_5{^iXuYjRX|i!RH`DPqM~BUdvn+Q za@RWlz|5I5Gi&ePex4Vv)5c2G=^{^Bqc#M+lq=E^uZE{4n*6;jhY%24( z@xA0oc-%z#csD?Pjo$wzV_CF0pyVef#5Fd7YAn*JNEoE zf9+OXHT?bl_QPS%$i}V=J_qR^nzasV5@yTY&+m{jL?R|@6WeKbKP5~dT!Y=|;=H|| zX^WUm$!9|I{^%V8Z15ax=|Z#sn?s8V_?g0DgdvpCvnd9z(sUmVGyY#I{sLaI~9}4Jx}6FIW)oUQ|@bjWs_LNr7PP5bKazb_INJ(lVP z^tsI^vp|;q$aI>?^K6H3$(wGC;ffn!6H37(gnws8aoLcxtY*uMUFt+KM8t%HpG`|1 z69DgCF4>xWoUSMun&q{}Xj*d<|L=l1Ch)|V@@*W);TqUwAdi#pb*WrkP3xJEIbjHX zcXX>_;pBE`5bP3LhN3jq(d{txQl3!jV0MH~!nLx9dzw{3q8}o5Y}el@YE1}vOlG8y zr3&Col-}m$R?pqrJYCLV6Xj!pJU2~??W@pIIg71ee)fAM$g4;_xkut61K6=>by!j` zHNU@MQaL3)rv%kuK9t3wO#A{jU`m3GH$ChV{G|8H)U2Lvr>g|ll~_c;iu(u5)b&~( z*L>~0W%#efdjrsVEMs0`n~<6r2NVB7d&jEpuj_s=xAFI!syt(g<%|6_$W{bIx=iB&h(qg4@;42gX zyIQq1{8&#(w7s(z>(C^$SF^l}^PYUaxCFXKm4fD6D)!9Bd+D-ELh+n2hiMov3lb}o z%AL11uA`iD>H?B2!KJ{7E9#NTz zhOfSN?!Wi+f$AUIL#pij=Ufx$hs?N2T|1{JxYJA9q!QRZeX*J)i2st$d{sLF*eJh(f19~I`MiS5c)&v*qeuxL1TATNN zTe3Z~={!0@3W^%->V57K=gmg&q^Rh17c&O65Y3VRtYeFCRz{~KRd$-fd7j#gMN+a% zwd$wyjx)mlds3LND!_jmQ>hXu+06=<^7jj^;AnM$vYu^nHnZ79R3P%h@=lXB>WyVQ zWX91_Z z2cEMwVV6f*AS=x*srX$62vVRs`FuhBOU`&e?Gq|@aU=y9i|NBYHQ?fW#1~_^7bjaV zmR5_x4>&#>w{p9f((oj19sGQA2(8oj*wHw9sd?#mW7vkA+RfQam0cUnyDG#UmVWR; zQa6>m0B2GB?=DwN7Kp!ffMbH^WUjkypui9yr>qG7;O)uJehjllwK#n4E@35M;DH%3 z8tZeCcW47_lu&K9l$H(|g+6-SgXb(p$Dv|j4w`O3y?1M+p{-D}V+y^@5iO6dgPdd~ ze`C?q2FV?hG23b8xYghsuB25Lyi5{ar0r{s6W`6O9w8__Zqg#tcNY1?*v|115b8M3 zeX+Jv9ZR?30`J00w$Hw9-|AEMzUemN$sd{eSPc0KrtyP+fl+he(swsJ{K*eCOs80Y z=|CCx`llb#-9?3w4}-<4^~|K>)!&{w^n2BsC5_9g+b#S)E;ruUKSAHQc6~ZPAo*b1 zGNB9MgB0DY{m)>}cJv(Aj;cV@ZM=kAplYT*G&BJdxL)rM(#_rfp zAzb)G*e7?`1_q+Tohx|7$2EppD0(zF4lU@;$ZHM zva79v)P{(58=$Ieanw^f>NVziiShmF0#&Q^%)j)21oIC?Yk};!{PVsa|Ba;Z+4o>J z8;*Tz_Q*B=Y`>_3x%I3G6sORn$9$FL_^ynU@1l=BdQ+MRgUUJmhC zXYw`U#VefF15dnC-*_eLDQ%p_Zcj91p`Kz1(wkI=wpo& zvHUb6?6e__+9HONDTxC&;A+!hM>AZBP-kuw|K1C4et07PChFA`x9ld}8((*4iu*6% zMdf78uo&{B5D*hMA!we|gh!PgDjOcvv`?Od>5`Lfcpn}N3}_}##o{x!f8)*Nc3^9%By_HK>>e~(H4 zKw#j#4#{QqHnBo#73fiVNzAmQN!+Hbu{V8uZ;(wmH~@@Vu_w8PDwNgq&ZlNd8XN z&3Gau>%y-A)N9}Exr_L)Cde&XIhIza-LpyU>@7%W@xprC1=A*Ia}WXa0Y%q4iPW%hH%}GN@puuT;9<%0+&* z%+Mt@Zjc3a1KAIhj5UK4mGhK_CG9n=Do|-}vCj~b0JS5AYBR?6`%~5F4QJU~(W7rW*U?|+{;#~zTYgZ*RRVM!~%`s3E-s%Q^ zyyORZ4Hr9*yYm*GWz&y|M?KsNSMw|;Us-gaHwFIgUNPVnkASxy=D*2{ES_6MUh2H00{0Wi6gRIZz}R3gmxDh zZj6c!QTTd+q8ys)dfu)YHkV|rU86JT%A};VsYD#gV31UiQq861m7L-(gcmt{0z=D>Hkm>K z{*Ex7KWFTYFzja0S?dZ#i$GzD&TnIG7x2^UiX^^ZCbGJv?{A<1Y0^Is;&w3kYzh3H zF0^NQ=7&>I*phb)pX_Zit>w_1Z#-9ikdw<6%c4Gnk%2QneB*cW3HqK1iV=J-m~A-N z$`B;G!PeCjU?du5bd1mi5Lnp46PA<{L!+X{so&+@FVqqg=?s-UM$s|*^g)1w_al`p zg7o(y)k))g$JcM8e9QW7-ygpHn{OKrglmffKV1U5f=N0#<{z=Z#PHn20Sf{4=HzgE zz20n<{!4sib@g;M=P`iyfCsJsU3RLkFros3{9TL$Yy$;N(^%>${AWEonTVAvUABlxyF;0YJT>;^%3 ziQ9FJaL=+kmNJw!1==^8vN`+a;zPF?+Er7fE!-}< zbr|4{-@aUbS*4t2UhcL&QS7wh!4*UJ;d1uuX|H<&fx)Y_T!$Qoq_!uW=4@6|2kI{w z!uXqiEiTSyBpvKNG~a&s)_-7wm2J&=y_esyq1>JfB>c|t-Q;PaRQ-$B^gwLhJA}2p#_Z!$-xyau23Zp1bAhK$b4sCnO8J_rx zcg4VaDv`niz;go59sWXcx8>gGT*RNu`TXm3i1PKO>+bidGU%haF%+#OOXxFCcqTsU z*D@`@Otz(M?b&$YO6%G{US_=G@;HAfNi-v?-SH*g8R2mU-mI0H<+<#`ky$(?EKdy$ z9ew#vh_!7ws&r<@z0ZF@ANo!crPn@7Cwye`Anh?@xNwtxVFu;^$QlARvcikT5)`Sa zatW#Ojoosh;;PM_s(T<@#kf=Wp;DyPo7bzuGb*FK7`uu?IHU*1)#F(KNZhf|G2GmJ zQTsq2^=HACE;{-++(uyBn0Jtr?IR=T4HwtA!`a(@II)`<%YCD5l0U~hM0uYt4}S{- z#Sh_j#PK(?y3{XS3q+HM1WQfQRQ!(J7qG?40E-*1&a?cf(YBw($LvX3l<$U(ZxXKG zlo`+Dq!6A7dvXF5wE1~gff7k?Ex?4nkg5)y)IZj#(nA+JpLYC55%G&TeQ!6{)K3pzX@l z10%Pj;65RZ+8=aJ1<6xV)|7mnptX7B&*}Sgk2?!RQh4})T+>#>b-ZxeWG)Ak||PE9Lhp%v%hX zov$hzsVc{yq6+He{}>uB+E@Df;pe_56Y(iY?^39DxmR_sU_vFVHFwt^yZ-%<3ecOR zyzx)A;OE10O~Z&#FdBy!I`Z_dnB=k*x!`RPYdP6tM@ezA5vdqW@&wi;Ox||^o_4nk zH_i_&sd&X#h6%k9Z~5cmP)2-b#n&yadG6j7_4?=?nAxMbLz#~O0#!FZCWL10#fh00 zUU}xE4Yar_yS}XRM7BRyA0%x`kondjJ+0P%nj!sPAG3gAGuEq-cT%cXUW&aEvowl^ zqB2$SA+7{@={&`N4=e|^$~p^4OWag-@mOMCR)!f zB7lL{Uq1h_(!3rfvI#i8`ZFR?Y>v1|5|kh1+8{p$-*{q5`8DB?Jt>nURwnq=^~i_w zd(Eg&0mi^+ZM#88qYe9utTzwwmEtLSgkg%ME=QMUiF3c6QSyUe0*6I{7yCC&;eOoC#OGo z{;#v@Z`93!z(f7|y{WBF@jDo}|0u8F8?@nVLH_1vuL8_@T$rkjmZUa&o5eglpH_x{ zuiQfRV!F}7xoi9)F1Zv_N6qe9;~g&kapQ((D|1RVLO+MPc1eDAPvbYZc#ZDY?#=Xl zjw*bpIPk`5DXZBuDCj8e!I9*z{>KQelA>!yCp&6Sh1@IqW6qGtBdBSO>3WRG^9ldE zuJxe5SAN84EZ}*C31j#KYm{{qdNj|#uAZP7%N;n)_JWjxQ)Smm*2U$NHZJEk_J7wC zFP5KC_a2(OVYvSWGo`C@OVOr>eDlFpe^0{XW_62BfB9p2!pbB5X~Ojo9EI9JdTq=MDVkUOdaMaoxnoQ)zd=nN7mf$AoN5e zUPxUo?C&Ey?mE$XHFNlC(G4TN0ekfNbI#s>FUS53y5Gqy){<^JWqcU@1NG+g`9jgt z#nK@>vYA!p`Nght&u{^==GuO}Mck4m>7dgh>WmCdJy|Lm%VU~V%^Gxg#h9=b=0Mzt z_{9=EmEWluPT}~c9bVBz8qX8cv_25(5pt+AFV!y%b-nH074+m@X_$M*xzP;%Q)S_v zJ?EF3T<@1%@ap%n3*KCrm@CKm&6aR~3$*4}vM#`ID+}3>l-@HPwl$B8U+K^d@F)6cznM|^BsH9;>%GUS{k9-HS9Q}S-c$!g>f2;dvls$fhl6Y zcD7m_awCPQ{_aG~B1M)bLzOaJ;wj&~S8kzv&`c9XQKxR7^uE zG&^n$eaqpU&rw2}%xfsNkA3V?mXunAGNlUi3cF{@a3H9J(7!gA!u0f<7H)Xyv$kTr zql%71^hg~9lV?eAak{eyQq!DS>MI=|5uW+P|6{b{9LL&+ z-XfFl7|1W4X&J#(!=Nd=y7D?{3!2lB>lMZM>5H<6CY#sX8wcICO zW^jiucxm*!#FdZVGbNG_J-yQ1g7u(wrC>@C~*%MEA{HEe15 z*6T>+!-`UG@-H(XlB3Q^1%KLTH?#D@;<^9+{rddozyE-H{Jcq6=Ud;Nb4IgphdXqL z*Zm0d(hwjKA{4`DglCUW>Bo3On}pPJ*oszT#>vtkw% zKXU|JDesuQ4^LNeh>M#@f6LzPW(W{L=Me9HJI*q4AcNlO zOr-_ENM1fAT*;Wbnzi4jV7L9n`V&UXLhj&Ep&nxgp;MTcIwhYE-RRFa5*a@ptq|H5?XZ$){{C4x~z$133fH^#be7X2_xQA__EPwtvUlM#tRQa7Q|5 z5Iu>ruhh8a^FBpEGoy^9qxW1aF1y>it8&K=q+T(K^dp1Nagl7KEn^7FjFeEKS3R0H z>*^fSq{;j#uplw50xPo;K%J4@WR}JTi z_!kzW^g1cWRAYshff<*87C}w_V!?ShcJZB&jFl1!`;lI)p`T+1L6pFCO&(lItDh}y zIS{&&B%``~-R*9B>75I%xv<1D`m#qD3Vd~RqjluACpRRNTKx9h&q;anLAwZdy|U_5 zraZy22#+k0Ji*^YSK80&p`MpV`7dPKkI6Tw`VEkThHy$(n3xDRleYR7eRy|NDD27n zLhDXrvjn=A&hZLJD96-hfNbCnBi>v(y32r&+qtd&1mTz4C(olSp$2QCF@t;H_pk9> zQ6&w7(j})(_1W-LHBYEFenDMYWs~@YyLcILx$tt^w&+WmxrVtqtUh8~idV!`l#821 z;w(c+qo;H~kvbBgeq4#=1{@lXG(~U1ZBu0>md3|K(>Yo zck5()_M*a~Ch&yaXw#1iZt~Tk@>4gKE1T5DQrqAT=^0wblXm(42uRUyOreRjiJr@& z%H8!RwfBfBol3GF!(W=qd+?*8MGkUCnN5z5JRnOBd$v z_AFz-bH#O&y9!m$$45?d*41elGUej<79A8-9D36L-y+I~jZ^6pu_M^EpHQCG|w zKE}lh&9l*yCo>k*a?N&VM{GQ*cBksHK z8l4Pv+yDVO$!)?T0O;!VHtTGOjt-Z+bAnX|fx3U5XI}tiL9oGTb1EAA@rz0x=(IEU zH?p-WcJw{*s+PTokQI7{*bNfW=FH;eunGrmJsnvjA{Xj6a{JzTdbvLMSl|9~GX#yql;9L14GMrjo3sxK6F{s^?Bk^n||-RR|Qo z0MQuWK_O7Y7$i>@%At(@;1d2Mmtwp80niEX?Be(N!ao|oj^xxT0l)=lz<;Kd8wwHo z0XST%vi{oz-F-Xw@zy%V<|L2YCpRc^F$9q_jW{Gs`QgS)Y2)o=Jym(w z{iUC&%@9+Eiuq;HDDvVuC%lPn_XDJfOiv{nhq=^;9s3_=d@y1}LQ{#5P8=km5OJFb z7kE^ccW882WDIUZGVR*&M+f*l%bR)(R2AX3uf0ec=|ms)L|dKIHPsV(<7tZ++&l zY$IBn#3!`LCB4ZNdW+K<0Ifj5aYT?b2DJZ(SIQVpLg_k6^PU# zMo!U|wJdF4c;5`AkMvJQK|()>E;}KT$zfmjT^wbQlm2##@74Hr&+LEsKE3BvjR7AP zou+Qg{w-RhM#7-or$zvmI?a%8(maK_u@0Z&TtZPb9Rgd2yVvW4-#Usk0!8Rpk;Xa^ zT7d|i#FVyKX>nFX3pH|sH}RlRG`Nn_7Lb!S0)IgUMRWs&FyOdiIU_8mEtx%~yKR4p z@AkE4d8C8l=u?9|r*ex|>j4~>0@dFVRPJD$8Z#VQH8SK6Kb3`O;I?78+|>!U&(nc87Wt_6a~CM_<8l9T0hScq93gff8~> z7M>CwB?5^~wUoI>GxFU&3)nFtv};zTt1e_rJF+EN^BE^mC8S!%=5fE44y9Hj2|{)8 z=5@Q*NBPciiky9{eUlh_mb_3ktz~O&maT|8c zB>k9?Q+w#>PZ!7!H2lzn^dr97UjV+BL>@FzU$5xb^WdQAp;_cmp_^l@#Ed}mnG6`_ zGC)hK)$E}iD~wt#Z|3ILAf9{?R*O0FDW*;%RNZsiILQ=v%|utgLF6I8y({pN#=AGM z8|G13H_acT2N1l{1WDScrROyf+Ny}`MuWz32XYKlc*OIgnlL2KAul!$!1yw`!94QTw#TC(W+{QwXBJeZmhziClISmj;1-qsX#NOjy(s_>!;5rQ_wJ za6T=u=tm&ZFBfaVKp2mZA72^echEHv{o;24_~FPNPp(l`+?+>plhbyCeb3b9);yfP zkuOgMZ5c!LTxC)LoO|D`bGC#kwrriO1ap8y{`e^2pA1L&R|2U^ZJ3spQ5#@;;ntUW z_NJQ-w5oAt<1hD5OVO&VqEpugqNbSy4FPsE^VsoDEEm?D1gW90(zFaRX;?juj<<$hwQ6Pr2afJ z6P{q=0O`#NW<}@OeqYjFAtaJxUj^W?C}G5th`P1(gLScg!?vVx5J<> zY-Pad5Np+ByHD7Qndsg=&zkR#5=g(Zjx29un+Hk@qs6l;J zbJ|77p_|;}N9HJ%4=Gdc&5#N8VVfjd*4AT?;{#vp?WTf$cH?@xw6uD(I#UC}`m&B^ zK3Qc!BN9&AW*arQ-*{$hy#0OL-{|~+$J!Tn^357QfQt5NU7XE%kq-Sb*-g|cKxi`SVt}h;)b)m7K7SA8ZM7ed z!^mLIpw!*TV;DP#|{I=GVwrykkKzFUUqOeirH15yD1i^XShvS4?iCs-AO>R*YWs`@bKXktv58R58aC|R|cM?cKEwvwnJ90 z1vjx#)sL!$Z+9_+JfOwS??iM=wVLYy-TH?C-~BkQo*H<_)}_~==^Unc_&zW&x^Fss zvDPNnaO}IHobNkNpn6){qp@{g{mP5end-e?vYvkl)x7}7y!3w1b&S|CC6jyul>BNS z?ym?MjO~(<2Cv0Stp^tAGYa1g+)!b?1^{f6BL+nZQJrbgHCIkarw`7U!(R|NmGOKY zqWr!je&XLo*DI4DL;OmkYwst8-2G3eSuYMwG1BO2}NrF-2D8P0h7FsB8=U7rcW%Xey> z*V)U9@sK?I!pn)M13C5G(I8mqDu3xC;r7kz$nlDqZ>O9S#=0YQwM96aZ~wXZGm*=C zC6wRb2DWh&SVj1%8;`y}+JoRWuHhEP^2h_&)`;+k%R()H?CCUR^|R6C%kIuYJUXMi z_E>&LmN1FJ&%(SUzdA6-OvMbbQ4PS+)qM@1X%6h#jd~tX-LyZMUHK^U2BYV7Vr6_f zoGMe9F;)u>3)Sgl6XOaLwlU!@obx9?{7KN>p+0&?y)n+Fc)G& zo5A{>`e96_%7ZJ9a{R|$jC)EDn=-%jXz;~E@E}ZVPU&{}WRQW2$w?Ra z+$v)(>6(@8;L+u!$B#J}T>6hihIG5aP%mY8&?L@vA~N7!lxkmOaaIVkUiqY<|0oQ# zMd#6Hf%CC^#w_&yzh|W>?-k~`sSnr$DEQzjYivNpk_SB08a71=SHK?y>k-1-k*e-?JI>K%D z@ut4aQLEt{7`E$#cLC|)sLDV5Dvo==hT9f%Kc-)eNq8catGac?K4W>=i(hSn%wk0I zmHfvWNqJxM->)b8Y}C{Hzc6SJb}goQ`UZhpk;L9;^r2sT+J9p@OxyMT*9<~MZ8-O5 zws+7*1zbb}LUwMNpf}(@ayW0!F__kVj?K+rIuHo5ERwP;mhbYrnZvJ&d|-Q7FCAX4 z;?e2dvM0%kSb4yCgbC8pw4&1qhihFXnFV47iR{9RfSF>NsX22XTk~C^q*)%)fY3=V zO@rRHg_)S=IjgIW=V47`Cxw~D!EsDLrK5EG zFPZwUmXai zy5aFAuO*FcGIx@?!E53u^W@2G_bn+O$2=a#YU7g*f$)kJ(r`i)(ky#khQ_4`3}t_3 zEbZ18`AgE=*}wN0hY7Ehxf#+W;mZWyXS|C5pUD#os)O#A0QLZ=jFzXMFBw>W#XGpj zEZZ}<*U8LsTK5bZf4pI0rShI;!m0RuV+F0x$xXGxF*nlejoz;EI$B9HfvY*z)jvyx zNK_!$C(1&@XSCfb6P9<~s}uNBvxroy zXei8y>{cptj;|R_unG^J;4#eCa(2KjJbRvc&Qt+>BHD!&S)G*53~9O^F&lELHU%Eq zTwiegJyxRHI#psh-Tf7G14fu?!O)CT<2$S^e0l8*xYPL@DxJW>{z=>umo?QBYrB4a z89(50jRl$u2LY5OulObinV6!p?_Ln{%f95x?>KM4o?#=6Fbh0$B=Vwnl=FUiwp@L1 zJ-?&DGCQyB!L&bGTC9LI> zhW3L>(QNB8Yb~7K%LRTB8{8Q%6-D9-jEQl+d|VVE;%u00tF>xlZGPN~(2j+;mk|$N zDM&=%1z$_vd99eWp0wm7CYCUUO4vx{vQOB|kSIvl%2DI&$57adeG;T%jW3HOoDzqM z-Tt+Z@UHeMXX0Lcp?%`}CN@7YSkN;i`S8cm~$ zHj0jDPHv!_3$KPZN=d+GmN^I!+C9(z@KpBqF-=vAs}CCGjNbQ6WjmL&3g7%!Aec5q zi7ssmzo~Q%Hs>)LUDn%nQ{`gzocDfo`Ov{lwX3jsB0Q#IT)9cTFnc~gF{W}pyh-y0 zY$4b>=K5+|lXge;LU?FQ)%rn`?nBsOWKK-=j`FROkFpnITVrYtc5Y}KQVNA^$Fx_z zm?PJg7nAlMm;FATGIH5|WR=$?)cW2c_DA*-HMLuu`4?jHuZ8Oiv|jvo7RBfn#WFoK zw&ChQW+-Mf(^8A?)ZMT>L*I$zl2)z!!z{e+UeNN@W4!($*+LbQvr@Vrd&{&sVCTn| z!lZc@eYSB0hr*my417zNIX}MZa;-2=mU*ew<>Q8?-$tS90nUJVXyM}E`J^-Fd&;XU zilKMW?6%b{3Gs#Z9&h08Urug`{Ta!WQf+yfd@v^7pL6@%fBOa&8zvG5j#%06b%lvX z{GE9h+CHvR)*?LoyRWIxW6`GyC-mcbsz0tve+9lsGUo4PZ}daH-h8^)8h4j^%~Y!v z`11B-ToXsq9d+lq7wh|d7uXK&gn|<+zKq27kE^st73Qw*D8>)YUuciHfq1oN9e;22 zPWz>f+*b#o@%Pt1w#Pq2ygtl{AKFprxcn&h^-*j5gM$klSKc7r9M8rNAKmFl{+#>f z?|%HlzaKlU{)gBAAQDE{RXZtMc^m9X38ACNh|V+#lyg*o1t z=_L$|9X}eAW=aD~mY1%UB}~xxjKzL$K&+Z8CbWJu0RGZR+|LrGuJ8dg{=WAYM_kS~ z1Z!wydBT=A(p=n4~;Urs>l}2UMrf}*D>i@Si7SuK7HU8gHcOF+u9M>zDF{oHHuUvL3 zTJWZhlP=!#59s%E89Hw>5`6lhuj;Ui)TkqT!G?Xo3OG*y%oqSCb%4X_zz52}Q3b%H zJYZ59Fewfg69POG0NfV_+!q53Vu8I_V7DlsM-b4<2e``v=;Z=*q5xfRz+E`t9vn0R zW@msvBLKiX0H7ZT=mi40fq+gBpaTSG2LSE>0k=VbRv@4m2)GFZGys70?7&(munGn$ zf^u9zb6ntN_dtV9xgh$STv#+W4<9#=2%29@NJ936l$@x%97a`128UC{X)0^!s_5$B zbWdrXGSp>hyR8j$O^x-8O->Qa4G5NordCE~R(Nv@yrm_<(u!bdYhq<*W^HS3V`XV; zV_|1+VdrFJf5zIu$=cE0#?isn$;r;y$?lAkgR7Ih%NctY7dsa>J7;%0XD@qa9|spN z2Nw?qHxEZwPe(T|M^`T=S086LUuSn;XAhqFwg_FC(-S!pPQ$j`&oZ?Z+{OT)(Y_S2|DW=c=lX?7ctPA6zJn0=<9!;7!XPdyxp79uXWK6%rm3dLcIKVqAFCrHJUbi_w=OW3EKSCP&3yjfo@2#$UaZK#sdi ziMx^#mvrUQl}j;+VX={}NxpjNXQT@8ybT2I`vjp`BY`JG(X}+;7geH*H&pLb*_0Fp zWoE^vW>LuLSCi9Hu8=90Q>cl_8CO!WlF7MOQ*+4FTuOR=T4n(?>soqtQD#nYW^Qpt zZb3$FPG(+Cc0q0~EkBP&%cEV(qm>pEmlqb7(@IK<%gT$(D@!V>N-Jy1t8Y|P)2nVY z*4DS)Y^lG~Q{MX^>;7!Q;BsW=%BAYn?8?WL6_4v{mRoL3b#y+s+c!KgH2UD-gKYvlc~9MsH7E&egLQorv05tntcne08r7 z!>t;t*X}iwDI{^-B%V{uq7dWXeqwsbdoYu0?)~~q%q_i|Ed~swsJf?Dw>hHVnzQiY zZum^Gf`6ZKdAs*qeYB?4qRd>3PE=Vg^plt8#n%HNj|E&Sy#k%KBVP8EzBJ9#nR~80 z8?(NcV|MkE)-5N}T-rZ~OlP`o+1DCg{>rz1M$Wce z^w)9>q@ecnmEQ)bdj2su%;_^W!w@J)^GXus4ej?*II}F~-c5a2Ou?^=8E%%R=h zac5t2@-+dk7vYaly6fTBkUqf_-bLNblI_xyW*=`YpWLmu`RpV*idRr$+FT52}V866{t;a+*d&do;X1=!0i;8^hWlOe3=Ql3ADD9_O&v&#Q8Ec}h zJvF|JP#xIuD^>O0FXq>M!=ApNZ3%uaMSGLvFQq*vFO{z`ha0mk8+7C-cZp(5xalO> zw@4Lkc$nDHp7B}RX`OTqUZ%dnr1R;tLc5`XCB|Epl6l1I*|JpuepWJN9>rF2HIc>7 z&zIObLnWd{HWkI0mv=@jusxT+*@0IM>!!jA^(3b|viQD2#N$`7nPTmeB#3zO@$z+% z)pU|r%Bow~$GdAmw?Fo+$9?$NzmX^hS6MBQSx^`V9+T5~vnB~wTp;omX!kY}=2Qlk zigT5c=uT5|EzOeFV&{(bEv0g8LFU3&hY0yvEo9&%_L{fkjC70(g+uI)qb5ozHh2`$ zb^pCnI{$@c9y{$Gmu@o&nkCPSbS0IPE?Bvgny-1YggZmFRDQ)$Dz>^hLt)v&-$vH6 zI%*v=rR_W+fYMaRm2_*POo?8K6*K4eT&l}C(<_ezp9sF+Iw{~WUzelx%wWt)$Xlp5 zOEOOxWXYT)Ci%^2OFSk`U=uc$wM8!mS4V5D8JvN?y127EC6V%X87x5Rkwob%WUZJ9 zrXjzE?FG8jafr2qe?lq*#x84Pva;+Uf@F+=rxX?U6)L3_UvDLQ&5>unshU-)&Bb9yxJQ0zOmV;tT-;CZBol`lV8B@5!4e5Q7J!(F1IHmUA z-=k+2|ND15)iEK_nJ^C*njNq(1UGXwN!!iPPo*QEna3| z@Wg{qr`#ZbB*LhNL#MtDuKRbCzde|P&lQ-_ce6d}#s)*);27@S1`;?UW%}RVM7FXc zi2tVEguMA?rt(s||5|6d%*qB-yFH4pPTpkAt*G}r8H5TnHdAyS&2eia@VUyTy@^=O z!3P8Rn+CQ~cA5HV5K%I<@qomo1F$HZpiAwd*g&yNiSB3~^YCBFDpd(51_W%%=QZQp}C zA{~|{@}DS$sayV{tk$~Rbs*;yg~b1F4`Or_RT$(_hiWFXj8je-vBA>n`ktd;yr&X^@ac-FQfwA7|kj+AtORO zWMF>_PC3PHa-M3PwvMdhP!nR1YE;++x9FK(k_4XgJtji}zI=L4G_RuKSB+$9x|h?1 z98E$)(CsxGSZ4&w8P8HHiUPCkimZ8y$?OqLVNg?1KkfK|G_f7W%w2;HE^30Q#D?&r zpI^QW?b&rCKAU^}BXtTMqL*G26qT)v){;0Lm^%GbAp0zlO{7K7L`72HDG4W4)R-`- zt^bZA3TlZ_4KvwqcS7JrC0Pn{mhg9T750*W_M$78D<5SmR@d=8>deqIFXA{`y^RU@ z&Kh+vN4ZtkA?NlcozDZ$osmBjZaf5O2NiS1ct3%AAG5iKY`O+1TPyS~F_>r7^TU=H zJh543I!#}UVZ(J7PUpRpU%^4{9Z$%nxHd9X+OQ}$fFI(GUbq*ZjW*&_8y_*4s?B%l z`Mhi@HR`XakU>{NO?8@p*D*uVGB^-_ag;O3vKAXR$6*2ehR!;ck&^CeS+HfG)6q>> zAt#t^z}9N1{CH?%6Ba_L=*@W({rHAgaf`Fug+zYQ6-VEnB7fGV z?fbgRPv0;t0Etj03HUEIj@k!>REerIO=ufe(ndY2_nxjfp2rc=#@?7cohnQd2v!@C zG#7t`n>`*N+9cq|e`7QCnJ1a+rrSu{jo zLZ!G1>2pwr$hZ{d*G1bY*V&G0CO&f4aF4 zw=}CQ4bBIvyxycf@|cx$I~utyavGDH{Di{RqxUGjVeUvQ4v=DX0$lOyJt<@a(C z3qqH#6YJ9FozfVU#*lUle@rpr4h>8Ul3oPBFOc13yCk;JC|4r5j*eiJ$0wH%LrbV6 zhQM4W()3nm-A#$Xq;kxehSMkwe4~JrKG!g1_n7A zi8OA6B>)Bfl$n~Q!hJXV*xvD+KTPBFN3r_Y7e^u$ic$hG5&s3k0}oMbqgZY%*b^NS z*>lF1b`_i|@E8ETQX+M?69$6HdDbJEF<>UUuJf*%4uq1z0TDdrL^&eI9g&lf$QQ<_ z$a;@nHiVQV{M-_p1IoW=v%x{cK&~3w z=AvO&4>iKqGV({Ds|_$3owXT=r8AKD4aiGse0HSItI~AOX63jIW;zOu9O*>lP9+rJ zSjNtbSR&*jpVG#YjQ*#P598oyd2lEZk~mOe`@F<{u%wR2k+x*?m<|u5qkhv$e?@Z5 zcCtE-a3xJdED?S@!u5~L^`4%i1uHbyhD2`g>_>8GQaF4&VGEI{=kDMZx-%Tec@Kls z9L%YY1P9Q0lS(;V0pJoxgf;7s6A|m>q`~H>{{#`Sj*yY8loHoL!vi|ql^us07^qdBv6>94J*F; zREbIyO>gj7VpE!zED1ZWd^PiO;$eyS?>dY~{d<16tK-!(U*Q)vP}Bjg}{s{fSg0zeaKm9`uajs2#rIEW`P%DhaVhRkts#G)np{5<-6 zToGz35`3!%E@fHO4v_1=3}@auNpg0LN#v-0;m9!^QZ2NGPz^@Pe5DX0VQV;q5dqPL zgY*$GI~$zO2k8hn^1%jNfWrHR2HSzbtzG=DE^&PDgkCF#UZa6S=-%ej&{-FS`v9(q z4a5VwX#A2*E(ThSK|DT$Jw1Xn5Md!6HnhXSdN^_z4Y@))(K!m~S&5IuK<*wvl9!az zHf)AteNy_tQ3K#4O#Q)&_D{dtUq^F#jDTBAP+c^rFRhd#j*A2U*Pzvu1i&vwxPFm2 zU!Yq@(5$-#^TnZ89O2zWP7gXqH5%0eK(#r7tI?d(Q=C(n*2xhhMhc>X#q1v@r)}W0 z%^^NSCa2O(?(<}h2s+%=4Uys4q+iCJ367|uo33;=T}b5R8AZ`(+AU~Qp&6Vsf+Q59 zUZOb@`I@5Gn+-A%-h}4OWPWF~`LF+d_KCPg#^{Tp@)BYXqQHj8T0= zL@NM=eZ~n_Y#km!B-}^vs|)PVTHPYSjZ3YVF^*6)Bu)^Pk7J#gglE5@5BXp;G<*uc zHI73*=!8W64@qa@7vuK$@n)ZzrD@-5roB|An)XFA(=rmKR7S$IPaBhpTw(T#%9PNC zX+aXEBq7XFNh(vy4RNOhA#T4SV@lUCkDFlMTF7nAuB)A6VYMcpJ(T zUtO;68@|&w(qOqnhomm&{7pxkqeFhF5=wtjp*xwHk@_f|>&QP$q4G&FtaV5L!~kO_juktvkbcx!ixV~ zVRl`nSk_FZrt5WD`6Tr`%tQtTB8{huAK}sM7&trRddZi23M?A8|0dxXLdZm3ax6Q4 zR7W3ocG;^pwCh3wvv;47XN?f@m&E0e5`J`f4Nr{tS3}z{1i3p9nJk7DgustbwOZ-@ z=M_+jzs%$?pogf(Pu zqY}!dYcV|$kCnnMJnRB94h?8W)E|AYtW}kFpLxK~{?~(A7Gy2L@cDjdi-`Vd4pJ?Y zyLO_UXR9Z3yK7WfA`8vv#J&&-b6CmFf{ZF9ZSPZ5vIw%5*_}73StUWDV+>xwEBAb9`Ra4hzq|tr$lM}Ld0u8A5f8U;nBNT z74#ZbKYj_-{wsD&bYV9OlFfuw;+;-VHLbsz9>i!33L6cTmzR8zyH^J#&cWf0<4P)G zOrbGF)!GBoRAT_!9q;_pjc}+K>JzyPc)*@}!4kPJE+&h&yk-F$b%+Ja6GJHn5|3ks znHGQVeOa@j)Y>kF`|F`DE<@gnwXZ+WeoBdn+8c9)N*$6EyZV;(6eAm#Avc+5<+3I_ zM5{xIRD{@nX@D27l3q%*w^<0c^i9#}yP22JyXlZI%Gxsp5_&YcO#(?%^hA4U(UqFU zO);+|&_pqOrvvT!7Tr%BD60;rrlC)fH;hX{O^Q%2G0<(x(5>K#<0_0Iz7qjH)E)gj zB2T#0V6R$*0Yz0jdYCz}?oZ`ICd@|VE}ZP=ahph@{ROO!0x{} zcsp(s@y~+XVPo0Qz>b&BF#3)SIY$1h}O9*!!!HxmY?R|oez99KYU92CJR!c zEQ~9IJ{AuDku-l$K%BOuT~i}U{Xy5U84T3pvPa{*U$GM9@^`++l6M?5b)mNH73$ST-&YTRqT4r( z@25g`N;H>0y!wEF_h9$J%g}}Ne;g{1Z7e7cqwiSCd5VX{w}w3PfzhcO`UwR8D?tab zQKbra|GPodvO<3o5~V=g)qsJtV1>+%fhGENx^o>yv;V+Ed@ek?_*Uk9#EbT-$gok?g5G)bHVmblj3~iqEm5hz zM5vESw8;>n{T_lzMYw&|K~c|q5UI4Z3^%j{p;g$~%&X8(^og*Kh#|>qkUK1%1-+nw ziX^{?`*mZESxVQ?au1TFVYCiHPQMaDw`1Y9{m05Qpca8f`JbifSgp@Ml&uSF3ken7 zi8}QPN&%reCn3d{jF=>YRQ%RFa{gYC;=KlRskCw3nfL9xUmd_tbcoO><;xxx&UH%7j)QZ2q~<{;GJF(qM>^;7%IonwET!UKkKlP_%hN0SU?)PB z2al`{X|G!qqZ5T5dsM%*%CM-zK?gsuLUSMaon~p7{EPl5M4Fsq|GR>=d<@a*MDM+Y zUJ|2Q@w*=jwbHPt47XX`Pw0OYiqkI;!^$oKyLP7dOVF0{8pKZxy)oM)#a(<!yD{4Tt9_j}^UcVW4-?t6&g8+im|W`AbZ6>*aZTpF%@%hGyTqa| z_E!`A@;@F$nLVXXyQeG*KAIS9O7y+k)4{xDJX(J}I{o&{_*ZzfRmhRPZ=dJij#&{a zu%Dg7k-NFOn1?Q@*q{k-^ zh@vz8N1&P>Zg3%1Eq>Pd#dSbu1{8f^WC?ft-uLO{-6JroovTG(UXPxOIJfi9Uq3#+ zykBCqOI7^q`^SGC?7H{QZP$!Q%^tfdmmkkAo;&ny`~d<_SP!qK3NzoHxw7wB7-?tE z-Uy?BzL1Y+55_#Ycy3!galL`(DR=v;Nu^1hVTL8|((3Xjq9d9MIvhbY>EZ(deK(5x z#YU#&Csg01Z>Y5{yE)pfV#|;p>`cML>;>epgr-5$ZQhzK4XMGv%vO)kXpi$JTgRan zYQ+qBO~!8L^N3){XH~daZp}jo+T{%;tUmj!&g*jDrEdb)w!eO!Z@+AKMXN6L%Mhog z(Ejela|L~j*A02YxCduON;6sNPNCBq<2@4GUh~9ujdFu^4Nm390)DVUt0RT;93gSp zag&gOy(AoQpTg_J}q-Glo~x- zOeoSlRp;%hM1C{ilSHl^`K9IN&V&CB`0P6L-|L&Zj{Fa@5^#7WV92B;c$RbysJZk2 zvDUd0a(>IcremkwWNpH$DX$(1g&r|?O3oC>ZoReIC+-Y4jq8)3+tO7FhsezgU#zqH!f~PmLot{?i|0-$uE3n+AUr4Ua z9utNaq;37{gKF941nY6cxLQoj%zYwTR@q)r4xWyu^gzziLBZrz|kS+rI6akRBTJo?#s=#Sj zC@7$;w}@$%adJ9aV|hda5-`GhsUNa7(K^|A4cDZ4yt^QkY@bi#F9Q1^6s%453=^_G znAn`z21F%289e=zC+POG*;H&i;nUlMN*~Ha7uy+ zP{TKpqnQj_RPQw3*e%p3Wx3gCzbM?(BO1yqO$%RCt0RB0k7vbl4RV+Jz5B*dg7*0> z`BmZ0V@hblU5rKCGSH4uqKJVpc%&jR;Nhm?9eRyVogzXm;RnbNM-CIXRYD- z-YYpa#|#o5xFEezjM!mwCH#ReTGKNLKJVG4JO3(+4Z-7qhEIFLUGcLjh#S3H_t^9+ zGs_bt|130VSN2A^A9jB*Q<&cQB#G<#G!MOnIj7gs1_@rqAvP7n>-Ev9Uh@FuJNsvM zOg#iyse3WO$Ye~3;+2{?^HkE9?*C6rB1bP zQ*Z*)(vjABKaEL`=3FUNniikC^~YFH?}@CTlK3#Q9xTLolI6^#+w|X(kc?e)5ZN@Y zVf8Y}d_hri-;{(&hl8v>Et>^>OVTz1&U{jeU^_K7?cZn2ccDl%H?!u7F4u-RcywxR zqRn|U*+Fwv9k5{PaqUAzWBG}98ln2uIwg+%SnDSxBxTQERhmY)H-(AuH=j>k6BKs5 zL0Qt`;2K4~z$Xro9M_gl1wZ6SU^(T+QCvW~~f7 z|6EoR+{-ql2@zD{es~-a8%wq+pztcP3Mx0LasZfXMGx0J57B~TxSOcA<1V599ratr znP}$?`_ZKKTSDZHr{Eyxo}_<%4=QvW+(c$bB1)v?g^V};;aR?S5|>wJ%4&1F+6lPq zrJJ?(okmxoPVJqY%gtsxo;G>+=|ZE8qfDK4@Cfa<4fkSO9`9!i5F|u@PjNLR;fcVh z10&d&Q)Ai{!s~b=%96MxBlZrtp7~E)xHGE6zpws!LHg@bN@}wn|8SZEVODcaUo|$rhdKDK4A3PG3odAZ9cC)A1^6hxMuRQ zpk@}?>ZmpOR&+c++{bFiP*rt(rzTabYO%PO@xX6P2q6j&m|hT(*L<@^=M{5JY)$wZ zDJA?g{G{0{-w5-rWoY6qkl~S9kT0YAQ)DU|z0?}MMx`Oh2amo=pk^qp=pg(tB$HRu zv3}r9Ozt|aURntM-y`QLjW=-&{}w^lyrRPiowT-OiLcWu+mzPkEQ*ie(e6wr)zL3^ zS-_^iTopi{5PqV9ze8NR!?>j7`ibBnj(fCjCJjOmf-|YkdufP_W#ImNNR~v9pah4A zA-%(bT&loV*qqQS$Yk+}(;UBA|MgTJSpjw);s#6`22F#4hCsVBPX`Qf7sZxxYjA{^ z7saS>T;e(91Z)(mz*F0JVauR8DJVz`nle34WbjCMUMQZIs>>q|S$=ftd%MhC*XtT( z1D1M%2T$|`^veS$e;2ufE<@rkn_t3TP`_PbRdCb~9AMd7JG(6NA@;!2COJ zx*7*>tuqZ-zPH=Bqy$?MC+2wK%htW)c`_h-u_bhK*pJ`9irb-EYe8g8gXs3Uax*@a zz;{~)xseUBCGPd59vK=CPYH;GYb}uY_)s7W2itl> z#Sq|?Kw=R;OQR$~4E7g63?~I?Vo=hHy38W}1>H*0%9>*%9IM9bzG8G>kx`JSJD62Y zf6v`u170r%Z)Bhzec^5N4d{8oyLlNLSwxCtfu9~VieT`<)%ShQJoiZh;?UXfMZypZ z`Skhix9V;~CU28cevvoaRx^CD{OZ9KkQ>w6a+c>k1lvUp^)eP$M3%WI1e9->ElSSz zN4keW+#KeHYo;Z}$(ZaS!Pz7M2DEN3obT$`&hVv#7I7JERfPz3QivNT6kM7GyM&Z5 z74>U%K(1o9bxja53!Jumw*))ro(Huw;S*T=d^{}O99Af4i)7(dhqr@kd+T!upy=uQ zyH~^ihbYN5=9ypD{NfJ^TyDSn6I#HCh{KdyJ_BY>Biz5VlNPoA$j=?p=iLdtj6s6d zGI)1xLldZAAKK6!3DhD%5YX!#Ln+OqL;R=p{2Y0aYS5gJ=b``=)m8eop+8J>-)amK z;r4%Lfg@?%TdPUo4Wx~W;0;)X8U?&7$u)}H5k?1xQ+S(G$R1IrrTMNgTP|G5=h;tM zl9^y??XWgv9AgkYd-UodU%rbkkES&7sTCYn!b0`At`ZQfNHbo^*^S>&jEA@?o13Wv z9%8+K&)(&G@9S!Uwn`q+`yqHZH`?(*ln5kERNc$R^54JL%WmUup629-jI9MgTqz*b z36b9rL?@*!F9c$a)8iXMK8C`^bHbl|JzYjY_Zz&zvT1$MJ1u;^&j_+;b_^|H9Gq?dm73?kY#eEkzPjjAL z7dZQaNR){@8Wd93T=knrsuf6U;F)5M06!V6HjrA_7$W!xmtNFwo||ZGSlE-sXEX*D z;?EHHSd30|aNIE9Z9}D7HNcS!hn&eR=Hohi3Iy*6W+GuZ*jS5fXfy>Bgz3Dyer@sm ziDuTxxm2lP>{#>rEnDE~@#@+`L*x|+JePt0aqrVYzy#`)OR~VX%`IlSib03?v;hO! zKoPazFh?+D2>5Q<-*-jUmk&-=TgF&uI*^xgo_B+M=la3*r2P1dQSe4(B8A0^P&{1U z#)IBKsy>?VNSMI$iAHqYhffFMb8^AqRP|iQJ8vbPD z@-o{T3pGlT`}-Qy3^2!%2eHra`6sHlu@tx_J(S-#3vM-m`1eA-Cl3nDhWrf@B703; zJEWUQ{?5@=?jN{xF7Pzq4N5{>O{vjirR^JWg%Erh#8(VKyN;ZGOj zVr`%6L2eI&nMbdM_;P7Q&xMiD^j@yUq_2G*$W5ZQU~ZN@2Tu6TOlqB`)T(%4kHC_y zv+`=*s4F45l$0J9f1}~)=Db_= z;H`Zoz@$L&8r=U4Kr``tZ#t*|JKB(Za$Vb&b}29o+W-lNxGCyjI}=E?%ARpS+erbz zAGA(c2GWNWC^=@KBkOQ{m$p|upPh3TxvolUnl}Vr3rbfh1iKaHc@p0F54`^ZZhDmR zMdP^Mhuom`{NUsy!U}NC7aWG?`4@rQ;3&TpR20W`kKKHf7#t=<`qMnSTEI8HZhllR z8=K=f#okeSu`|7>k*s%-G@j)9St%LZq~9k`G5R3tF0ix9&IC_IgVztu2YbJ73D0U< zc)1SD^|}J_S1({L8- z3Z2p$Jv?W+fB|n``;hM{^0PYtjnm+&p7Ad4MoZdmo8_T9*&1Wv7Gu#vz;s3{$J>IS za93{`*9t-D%nj$YN;XJz&d8u&TDf@R#XXLUL`9gtMv|d7S8$aZ+Qtj71$m1Wcm9<^ z4gpVFr>G|(q7Zq^(2k;<*_s@{*qG_O3eK!}n0e#j$DW4~#&%z3&(71)_ggIAzk3%X zK2;dUJCg{GRPtI4mjMpTwD}$TFchfCt!F2*fU_{)W#9&E)$MNJ-s$)IFvq6y-;`~H zgs5kJ*(7d(*k3}A@_m&?Xlo4|BQ>);` zJaC)&tr%hIP9kqTp65s9x~X@JAu|8VDG@aAdgJ-X-goQTK>rMZx*mZyi`3E0c))kw z=xg5SD7f~j!FpC9evB#$0F&sI^KIXQMV3E1zWH8#JYB(~6oJW(?}0u)QX+n2#nb}F zd4LlTO8_LY7k2I24V*V`n+SS$jFYd(Lf$Wl#?HmpPOH;Jc!jm$1_5Gbknlh78aV8` z?#4nUH&WG@bKom4?yPRka$}fU5f})fE^6NY^lYQ?WA(d19a@rwgWRaRZM8J@WVV*} zg|F)#%M89$2ierdNfUhuoCChUE8vShY+OhWa{O2Yf)KF0JdOMGsFM8f=KgLo7YRQ{ zVS0^|?*iXKcIA7A@Yjw*8~!IqAb_aLU$=@t>qHOSY#O%H4b~}wX*xsx67C-Y*pCjv zJ9aRC?kOx&+wuqtjMMM%9pTG!Pce$qIjFQlsIePh+W+FiO2OfneewqRlS5?Rkt_R% zi2=(~zB~U8r}605c#-hs)QHvot*fkUKMrFct`hE6Wt+aY5cCd4=>7XN72-xMQSJT@ zL!~^jy)B?IKpvPF*WtQN3_*@W(}jM_u};T}Cb1nBESW;S-xd`(mTXo4!p}Ps*eRpVR9}7_^JJEYzqt*Vlc*dGE;UK6#?!#o z(aw7owVFa8T+fJ;83#NvA_^)6Sz^A))dM%p%`%n1Lf~w=Bg6qvnhLy;_B;Gxq)GIc zIBbg-?6EIX*%iG(aQUba@mgC_w!K#QDgPqFIDgx>s9N8BUoaf7(}Xq2!_3c`0Do*A zkhAnHPrt0%fhr0<^j@9nR3||L^M<=0>Yk^#p1$F8!$REy>}zw zvig6;$Ko&fD4~!xJLoh{pC55xV5~*H^E@uvC{ZCjN|;iIFb!3`i6=Jl-ej@|%-d=i z2&at3FUsO)MV@5_3}F|Qyn94P$9I}a9(6Ug=oLmImb(rW zszakQNicKfH2YFQ_WFs^mU6sqneExc9_PzfZvS%b=p6Q6bLGbKzp{7L<@QvXWYk)Z zdUdXjAHDi}A%C+$dZRVUOYGPj7W`3conSeR-2?nn6l#tTwgThSNfi&5lhxg(!LH`(Q7Y`s65`~cJgsznoWXP(gM)j=SLZP z!0LA#NNn;N4*%q2bCvY6A|6lP$h$wQcA_>+b1DcOJiz*re~`81rMU}&QBP6hcnNF1 z7v54%NSIHnoMwJ)IKFM<^JlM7{R2lszGlvEw4=3tw)IxDO$?g9=54V%vW?S8ahZ(u z+~AP7f`eIB!~#og;udiwmf4ZXWwu_Zq(RYJ=I#|W5xLyQS>Co zLg4@3*)3@AL>@7+uZQ*}+;ha$Xp?okOVH@R$yg#&I+D}EHv~7~#}znKuM!HpBQ3|L z&T4mv!@cOAVP3-d?JuXp9m8vmG72*F<7+qf!wV2K+ZKJ*=k#`xS=??%IXYgvt&iI6 z`RR{KxM%gCA~*?>NC%k(Mh<#(i@Ki@a`n@UA=Pi5R7B8lsPje8v6ykFPYv06S}gEx zRBMK4$%cqyVfNiDnBOE@=j004rh^I#SeEKkh+qfXQv{x)y<%toJS*ZDl$#|?%fzeS zkNS7BO>hfPPYH`}@)KdmVu1WUL9S9`*`c>P2OP!1@*Jkz%)_k7h>+KWJW1632VOEl zTak_WkxL!mD!ej zvSYH`nU|!}TgWoB7vsYN1Cwnb(YA*^k`>6+-{uR$pFfHAREK&ONMjSHOe%9alD$NkhS)cv z$~U!S^Cv?jBi~L;>g`#B*YJzJy7hwC$u`3V2`~Whrou(i?X_5*OSt`aP?i{nD4;>S zt`ZSpBW&~QCJciKYV(CEAmRn1%?GbFK1WXpOjm@4-eXHrXJ+{qSjl4}63?n|Fhk`j z+vQqNbj-4+hW_s=cg=;)GZIIQk5cqlm%aQ*}U5B45>rA(HKF$n1)4%tE zPv7j7f?oMsbElF!n>^4>36E^3X=UNIGR#q5Fjggo4^-b$1CTuHpSYL|POuS$r4V1? zJT!OO!|S+2h8-3(x;BEWnsz*}y&Y2Wr}P@CZW-z+??lD&wi-M-Hei=}$NXBD4I*)f zmv=T=3(p{#-~aQ`vzvK?yN`r;M1^`-_E-35XcDAzrwD`N&3QE``rB2tT)!LHnm)BD zmjC)feY%N?6{f=E?3Lq`fzK7&8BK_RS?x8i)?C-lOfhkbk{?>v?ipP0IAcyD!J;wy z*rp}SF@tST&sW<@wl;c7=h zn`(M_h2#Ha_U%D&ihiQ{=(ly7fItPA&r$anj!?B2E{=NJ9aRs0_Vu8W?dM1n)G#Bs zPUYs)a+8}nVV=RxT5gRASZU@Uuk21kbySOarBR7rXceR~=Az+AtlYi$3?P-RzKq6( zb#7>aq~2saJ9U+pm#`1Iv6veo?b)X{o2JG@<=lS--M=P_*WEekX7TaXO)I~w`SR@B8$kRIIS*kYK$v%=79;pBGB)N@8;wqa)%M&VZRZ~&;ZVOP=GsVITuj0^2jBXV6TZVHdKY z-bI?GrLt$lf4txvgGQ;N3y;u2vPdPKU69&10xdfL=13q84z#9JR%8xXPR~^RL0LBb zW5XcLt&B%wD@8o>hZ|>9G>Z8)3EQjW=5TKuot1YAhz{00hWd;ENd++|hjG((09u$qIg>q9cT0>C7zjC}xA$$Cc zelwbTBZs6cG&E#!{c6dNTcuZWd5jvshmU9e_HFuMenLk|^k_W&IFNi|=vD6-HbDg1 zaF*=P;@lAe^=}xExoJUj+C0i?qCT&uyq6u3X$+kApYSF+JY-5=Tu}$T;9|p!~=wj_4o?U#) za=vB3fW;8NTnsRiNQVau&N9Y4o2_gqGJ1l{It19d@Xz`VsabbR&X|4f)AXcm%JkZB z6BfXcdBW8g=sHUd?&2Eq06j>QBa66>B|3Lfe-A0z(^h7M=N43Oy_rO#Sm3P?u2T*> zG%L!d2y|FH=r<~I#Gm+^M^-NqF;9Wy8j@+hl(G-xSIZ?toipfo3cnJ!DbkuT_60ciE5D;S1*q< zP2xn8U2-@^y+GPuX|ybW5nSj+c*;7fcmWh_nq_p0|jCQu^ z(m&e|4POw2wJp#p;!fJR4BP0-EEl3PE&$A@?M2Xb5jyLNQkMBmzOI{XWc;KohvXy% zAq2{xP*P}El2fB}uK*j|AvY`_+7rkT#Uv9EsW1yvyYS3w=A}`pJhYPRQ$RMR156z$ zL8kzX19rX?t{IbPT{QmkJkhf8w2x5k7X>0|yz*kys|;s2{)Ed%-cvX4JnkTovgcYk z&Y)-~o)`9#Q7X4%;QYHnqP4lfnpU>M3e_7P>b8pOIS@P6D79J{*;CbKRKN!PM7ZVv zO?x?Ryz}>Ej@H;FFNw@HhwYFv=e_7?w>z}Z5oij&va-Edk=2Hraybf3hKVMNZgUjtGlZQ&DXjmn;_n?-s|6?*bZnGEXG6T!=l| z8e3^4LbpT#)x&L5J7c*FxF}|umP*g*woh(yor-r&Zj?c+vrL#$tU~4$LU!U2Jwo4i z*2oMAB-cQOQxV&rMTcJnl{?E=Z1qv62xyU9V^5dfzWczr8(<*vlJT6~v=c4(=wSeFlC7kF zJYH<^(dnJoX;PJN1$G1v-@0a@rJ^^>z7^W-H8&UsCsYa`uE>6Y*YXilh#@QB`co8$#Y7!%0-znBI&Dq`=fP@f|;EE=}z z-Bk5TYB!TvCqB1pLs)Fb)Y`X1Tqw!Pj_7F z+lht~Q*~_}T`dcSO@&0?<6r&Gd1qbpu0I3_ULZV=@13Dhy`bl1GI|<^O zUTpbQ!-)2JndLW$*AFe<(#M5kS} zAr&oPjM~&L8?bG^rXfac*Z|rSfL8i=bGlPhKQHY#1V`ft?Z)Pewd^KCw=V8s1biIJ zI*_?vt9}lETdu%`0_%1G?InBE@=F^EP!;cICfwKX$Zz!TzR?F`)Qpeo%z?&>Pa`ZK ztpa*hImd`a(tgURu(k-OmFsmq_L`JgF@RpYJ$_NQ-|j5+ERY%I$gR1@jQbf>8<^1& z(XH|M0iMjTjkvo&Rc77ya-Z0Lcidc2FVTd@HE99)ill}V*}i(9tue?Q!-dc^#9IKy zbeTm)shNU(*|Nf$$u%h=4)6vU#nP%qm`Ba8sg>4Q|P{fpAQEdjUgF}fOaKm z9=(9jl;>WhgQnlu4h?rbdS(Bna{fLVjx88{HtSr$m7c1xbC6iq|BzZ^f%d5Y9D#3- z;aDoypIrpJ9}4?9km*xDN2VOBA>U;2_`E2Y_E0&dwu)oci zRJ)dAO9@Ljd2UoDHEmT_YlxGt`u_L7bs+?duaHjU!gTCodxc5l5^Y>~F{M=Z{-M=h ze;WE#cG0fck171*67600idRUv&r&};_oOEM7%0Cq7FiqpSnRi@wd}d?x!3gv-jT{) zUyt6|Q}Oj_?sgCNM2&$i?~Q8p#jR6mX{RQTml)GIxwiY=cK8=AiJ3pY9yPtOwP2XF z#m8rdFCo!+ToyhRWv;Fl-T%GyHKKLvRO^*`a>=Eh)aQM5(T|?Giq>ANwj&F2wlz9u zMh4w^y7a^(;_YzV8V9t6(OM3A%dt48s5LuoG2OR39n>=3w&YV?#_Enuj8zbGuK%BT#zbp4@5@YQ z%iAiI-G(!Pn)r}S-s83>DDYc0$AgW#Q&8^Maw^G7DF+=7hWml5HrPk^%Omx-g;rB2 ziTxOo`Db#a`UF%S=4X2}de9`ZV|>soZzTGG#epSt>zj>?8N%&J46Uiff4OMx^0e8$ zKCYW`p|$wit+yv!ob%B2(PMN6`$ON>KhRoB=o~Q3pgaT`oEyYtnBaTpq1Rj=QQFNe z^yrWg{*K%2kQDK7WF55&PF81GGX>T7L5~kEF5R_UgRJ%guaA4m@?y_0$A*A9mpC6T z8z+}Kh2x!X7x6se4PS(tJ*b`?EO%3}&YNb_0bt~aho>8QjRFgCm>9!{dgaHe$QKcK zF#G%!n!cuu(M;{Oa1$Rfd|q$+kL2@6|5NM3>pGaxo3`&hx7t#%w;cg%+<*E7&oH}< z9j3Epi7FI^kIe&hBOTeP+JBZx<&{B}>{Q)IOQ(Jk2|M0;qAUm?KC#iiGgXJQ+%|ta z82ed{_O>k-BHbtHEwbQM$9}T5Q8cfr&LlIns==siL5H*=u|fOB3R=+CWp2+GTdFoC zygOgF`}wO|KT!FHVwy;{WB15hMyfx zxAal?qkD#&AP5ruR{Cy2qDjf65!sLo71yfy2^n(SjIf=GIrK))Lp6+h)KU0GBCCkI zkhcaykc`(nanZ<&|Lhy?8Ygz{qlC6+(V9}ww3E^Ho86X~J*G6(^o_0aOJX3Q(KdoC z%on<5H0Jj)f()}Run`o9%Y0tcXqOr52bvkl+GStuJgfnE8MlZ}Y1}gngPAc; zJ>eNH?jp7x_50Mu6;hn*TB_DN>)?ZCaKTXW^nH)n(%>0@c4cX(y*ImaQ*m>0T`#X} zm0A+;O^P|;7-})i?5Ylox4#wLKbh#d>pRpZmnC1?Z+P=#B6*>LQ$X-pb9n z@qWyCSco`RI&U@)hZx!x4tg_Z&AA((<^-d#?EYl*Uy6aeQ+ZmhMM-)$B~U_ek|15w z;_@!!ticRsAWQus=E5H&PFA6r1?}slM6N|lMEU-{7Og~M@b(Kjcl=mu*F1Lw8GVwR zdin0?)@w20%L+_=wr>leBm{Mb_5`xlaqhr(QmAo(=hgnZxa}oh8l3Ohp`N>^6sM`{ z%xC>d@Z#eQN(S_2kC#EbMza=Za+j?!0P1aPt%rQVwNR!=f_gE!6^@}+TA$aJ6>{_% z+otXDO{My}%jmeI0OKQ&D9`4pohi(a#n_j1Zji`X3G;tE*RIQ%V z7``MteZrhZ4kNU?AKNf8TU}sMV%8N>5+9YaKckoI_)lJW3|dxjO#^IE-lB#n#)v1U z=W#OXh6mG4S{d-sy3lBsd|rzA9KFIw5;Ahpv>7=(R8F{1g-RCy_D(Bz8o$8~^hA+O z=L5K6vAd5CPii*f==NLnUa>7YXYIatvBKgH;VefSO0&P58#IJ=-sK%HE|fS(@?^(jm##4r|oAvlp;vjA|y9=MV|O1 zx^k=@X!=wfX1|Ch+DitH*$8z`%)Y8MGcU#X>`=%bj6Ybu3(-vLHZ}W)7It)f9wUL)j2bZ5S|!CE%_#b*x0A{5J&RP8xZt0f zPT&X3)jIJmHO%lVKin&4ylh>m$%zjbh|wG2RM243XsdO2!xRe=*gJQrR0KM6`E)rx zCkf4c{nh<{9Tg!5=MA zN~*|VkoDAfHQa_gsCxYVJ+z-|@SLi({W1`B`^^n2Q(P%tLei7rxT) zYwD)zd*|_q?X+eC-~+gq`u2y`II5pSD~bBX){e|!JF1WG?VmHNROSELSTx*w=#_(m zZ=~ovebpOgEK%w;0$kjhkd|amRcWEWG)iHM-2G|)oCe~((%=HgK*iEk5Emz!t_~~h z+odLz)@Fo(cfD#V9b23#MPqR_E=pr6dp!-8M+fL=5KU?UMog-SaskyXc-#yz*lDM@ zCpDPaMBC?71!tQ-=X+UJ=o~FGP+^ffQJ=e{W~vaxh*JGQEKh`((kryCWwmW`{n9r$ z;r#K7$7TX`6xk<2e+xmcVs-H!P;NLqOQLp^c5vlK78WPK;`DxGo(sgWiwEg5k8~WR zdX9kq4qpgM?AQ7FVHz&gh68k5#?yb{e`@7OJXE}0jcZ#!vDmh_-;_@Mji2?Sbt39# zbpxdrQ?0F1qq5sLm14&~);NSI+fV{94V9wC0Q0M}Rt%Ys_>ze?09891m*{GEPlWIW zL^n!xTOq|4>=0@@UsjVT)fL5*PPlDED;Y5ykWL`LVhmv6vHlU`vdI`vzazvnd|9st zTm2))5IqR&xN2NEt1sJ}oob_##WZ1Jj0&iT84)al?M+QGGww3$Z~8c)R24l$uCmOh zQx8~f)P3XN+bmwV*EDr+R%?{5Z|(5KyJ_Jb-b{u!K#!V)HX*Tq_`e{>pVK=MIQkOS zu~j-6nWZBWp`UB6(|VKf1@cU__>gbiq*s3>StC?OlZfsxkbo8%*8zN-ox35u^GQ_G#yQoXY zaTc)}qGz3?9Ui%k^m#h=_*oaCULb(%6|0A3YaeyhzBj@4sL@ri(D7hKHzMpco$HZ` zajd!zm4==E_v}iD-h6ILRI1CLkX98|@6(qEHi5z~INwUtC$QJ1CHtjb?a)xOanh|M zJoN)yY9ksz*(T;s%q?*UG|_O(-k@7)&@H{OGYs7mf=S2qhD%W-z2X|;=K4_6m?i`X z@Z=X-zZZ+zv~0REgit#;jo-Pb8^yz+X5Yho-X>f4;}8mZhq%emS&B?xTPWGam7asm zD!063K+tYx!d|w??GQwi*wUy8nSfK2A2Ux*LX^8XkS<%xrDms+P2ln?{Z3jRP6W%P z7~1#Gy1UV_(jBh`4tW47W0Tf}MI|&YJ)FjhmXfg?vBF++W>T#Rnn(}FE z2Ue%mG{CTfwON#5Ai)xLtTDOWgc*h!<~-70)G#_6VKzxmi!L*eN%U1{?a#eQ`n{6* zdmQzOi0ErF2cER3hv{{>n@S2ylec&q71}zv>G=!IUo{!K8Duw?nlhU7+BIPLM70ni z7PU9^T9cv6tpAQQvwK8yIyzk!x znnXrR&nCw1@|sP$b@Sle{|;IuAD>YgfXDjb0~n0kRPa8PRWfdSc+(?#68e{NZk2c` zu}SNdDBs}ihqF0mDlB67D)31NvL2`y!Wt%hFc`)fM2?y5%+>D^f$ldOe!H6a*xll3 zlIO*ax3O$QTN2nW=}GEXL*-}v5uC;IS>tNlAo@XmuA1*==s)FcbX&s2yp5hWgx|!O z-D@(BpPEekj#Py>rQR^BWf!_gZDKMnYx$TP=bFQ%AERbXX7=be5AWc8H|Y&Qs6?>b zCfzLAF79YD%({v;m1-|bw9!&siBg-oRlCnidsWn8Ia|1klI4=_Y(GLu5$hNyY;_2_xAAp`gniduji|~eN}|^@QVj6 zVr0Fle{I-meqpM5f)5XESI4%{x4rf}v$@(!xhU{vO~`!0otC9D(nT9rgQD3$xN6{+ z#Z51n2=@e~%mnlb^VsjjO|(U)k?&e7IF#c-z3Wo6ScHm@_Qpz45|Jg~l0g)C1OwUC z%iop|qS>oRev>3#t0c=0T!UY;2w9$$41$E8ni_1uni}sk zd}6lk@`X7IY-0lAWmecguv))FtMuk*zXa2KuG>99@n>7@z*oMwAniMyNm2V+scyOP z9OnI~%+jr9@7gs#BZ3Bc7{h?71_hz94J=$V#*r)0yosKzP2ONikS)rl($<-MYUmc* zQy+hz6{7i%?kV?6I~@!Zfgmu;Fk=k=p{1)gLwjOT>yt6sv2J(sqAHek>|bM}e&e;5 zr?P-8D18e(94pk&MSFvZ)D7Eun}tnzznsKE`z$j4P@aXFDYf*dKT~RcL~g#yEZb*B zw229K6(db6uXssw9=7yfC+q#?hWb#ta)EyKNtDjdA2g{{+s;@7xmAJGZ&C9d9;Ks) zS=q+!TOAWJ_TFzjJy$Z3V3P6Kx>2ezCfA(xzb|3wz3d3w5rfDzE~+!$P`)j}%q5;6 z8jF#Oq)(P=?H&9xnH-ubT?vetC`cr>%u{cu1`AkU>BpayYd z7~N0QK47WgVQj?wWHhRbNWA=zc^lnqW1VY^%wm_OFJk6!y&qp=M^o?ZAtJh^ak2X} z#Ug~gRQrIM=2yDGs1!RKjp!AjfAwf7B_IHihJwm#I*e1Znp&ge>!*y*R!lzpeCX`K z1jSez(MdwlK8IQ^B5B439dPVOOTWJ!dJ`>U72wC%}%w^v9uwICL7taVb{N0O?dB8dJED}by1 zbvNnP);8{qLzbUZtDbqNuY&?Y4#X3lHurR1pkX6EuStH$^qydypEKEJe;3mx-K>>Wz`>++V9Ay#vj?+sX|CP1Nfm z_3{^|%+WUOh^_zg75&CZc#0DIt)vo-Xy)uK;yFZx~y1hlOw?&V5 z2VJ+cgC!mY|?qFBYgaa%GQ_GGc5uF7&s@ z#IWs$d#dX5s;~FV8s@jp)T&0F@M%PmCNCavA*;h#hyJLRm`c^n$?7+ zv>Rrea46ruDGsBrtbWTqC2h2I-4_G4;gc2?e2;$(G)fPcT^SY_eP(Gp)*0?2H~oF% z<+=P$k%bnLrH{?SUZ5kil@}L!LhdC$+WqSHlB?ErMgr7?-VuaL}CW1=5~kM1<`IyNvG?ISp$Q0~8bu(_J)ra=wP zF5lV%PoCe=fCEjOv_Mb#pD+)J;f_*`Jr1ocNWc8KvxQuSG(7z8>?5PT^v5fj+_Wit zVCna;7!}K~cE2)xy)e@YtfhP923wCI-Fja?sIlICx7_XO%0%1g?FnZ>f5F zEZqT{c`b?UXZ>9GPX+Nx8VhXssOX;(y}YbZ)Rt#ZO+Sn4G?NJ{x(Be5h$eGEh8L-O z)y(N>!)pFUhsZG7r@>!J@%e?`6^_<7orM><_iilfs|fKeQK;0d&u4GnvWxqU+;+Pv2~D9il*&mrE6%*PM3 zi_2eU>E589tZ;o=VjOz&&q?J6#HE_NNjH@hU4>f82=n8hT7kwoH{!0IHR{a2no#^O z%a~7?pe-XUqebjQYr=lkJ-zb*oDkdQc85Jems`~!edEMsd1IVRmz5!Db2#rb@ z{Uq2_IGo_W$qzLfKtGnz8))882zX*~CdpCP_{eIDztIUBEtujzZhU%s!2||JvHHo=pcjzubhv5rFPTkc+9zasvYj_yH+r z!!flc5z$F+c$iNXJ9Z}eUtb;8&mF1AR*ckQh@491Y>DH5G;JQLJ3T0eDf0CC7nBr< zAcxA%L*!%K;%7GMiy$iFy}_m*l(_*-R1~xo^{W1nV|`Vbt$3g2?DL&^&u{`C3?T0i zVF-)V>e{+W4y|GihpL<^2}x_!ppu)zg`Wl6=(8XD|DUo~ck1f|JNtct9njtE`nQCl zPbH%=x?7Pe!lcp#od+S%jm@UsdJDl|>4FHJ3H?$| z%^NjseGOmhX+??zCxqA4;G1>R^q&@j453pMIl^V^8yrT!O+$qCDYI4KL)sg3X?iCf znG)b9WIOlTr!56MB7k&)SF58$6vR-Mz?L}0k76Q|oW|LDqfqD4_f!L$Z86i_03Q?n zP~bn+VBJ3Z%^4Bi+Dxdo)p+=sY5NOr5J{{Ro4qg$xdMGPn2^6oBE{t0W-R z+{wCth^9eAmv(4Lp!h;%1(9oP_vXUjMjt5ZYIk??=Cb+mj00Dzb3iUOKE?U(yc>V@ z7wd`5Dl!xp>%yFw=Z7B1mP2p#8fhw9>#kz6m@WGr^~acvi6@c?CVClb$yVLpOP%^! zuuF{TEzS;?&BHiao)5vo>n!+Y5sUa#aL-^`h|E^%JPTCz&2Cb>6q-5YzY3{(og>|O z4$gW`OLRv;Mtde{sMR7^&59NQKXITHbys2LoAyzf6u-nhre*k>Ik*N6GjdePYe4tBM=E<~?G?TqQ0j-R)lI-9dk zR%M+wH!{#3Y__Ux-gmX>74lEw!<){X{pQxUgynPN=Gw8VTtN~`;2v-?=AA?_ACz2) zXim`Y|K?AWm?!Km0-!?T{2VDgJV%xO+xz81ZjDE-?54G#oZ7%PFBzp(V3=0yYFg$3 zm7o0jWWu5xpzE$i31cW5ybJMn2UHDw4Y`3#6RAS(w4iL6WR2NORh`(X*7DvoO_@?7 zVL=W@8P2tDi4~)HGv1kVctx3=FK=`ChqSCh%oU7<%?fj;TI$|?@3Q#EA{O~hHEm^f zdH%#UR_Kp+Y1XX@hb>Z7uq9@v6)bRpQQ-CY`FP2`l|?WbhQ?x=8_o7 z->;kLdM#R|G`xdHUgj9yl2P=h-QwKoZBueNK*#FS*HDJB&UoRcpsbMhjlUDrR5R?f zE;9K_$7z^^)yC_g{?{3A(^gFY%%UB=-w;Oqx;&QybVrH<8YQo z`P$&kC*KwtKeKBw7x=s`-`UU7CRHR@2mf?ReN9DwmKw>xpJAZ$tqAP{>O@J)2U}?C zi;cxRj?w7QwXAyfKJ#Uo)dHP=^hk~#eRR+us^wCO;03bjwG~$TF5mN=E&2!?88)q7 zYhp3q9a%DLs9GEq7(1zoKMM@~DpR8LFI*9OpQfRet$uD^QWxk(S{P4h^VYQa!kj8P zw1Jcl>trHEnJ9t&xcUBk8T<#;U7idhPJP6(niVGXJ9x6|sDln^~*{Kf{39pySg=@|B8AT#HgfCQsLp3a)PKY4(;Ug=*ml z1r4_Q&8|aAkOLU-d@2O~6rwb0aZ-}A_!M@&GpUi8hYV3F23%e z9R~hWtolRFS{7xsVNkoiY=7=#+eHTztih*S;4wl(%6a6t3=}7X5oVF~aO&d1jh=YS7jSE7sQ~jG>3>$(0)ejEC#V}4LnXV z3i*tp$w4RWT|b0^ZKTz=n4q~{6H^N0SmBXZO6c?c#gEot$vDU-vhSP>dAKt^nT80N zj+NV^SOlnvn&&=y=jdtFAmm`X9Qi5~o~i_WBS$?hN}yNLbcv@dD>PuT(T3A+8_phzF2ET6>jIr6*#2gqW0~L$ZlYRg8Ff>3+<>ZIY>Z7nBd|048)4a{&VR6d{uu6o`&;& zEmnJh5&Tmhc3gsd{YjW22C;C6fL3@c4z((*IxPWx$#==aLHcormcF5)Qw;tg$rHO9j`60ACI zO@m*xQ8!{q=)?TRya4!96$IZNHKoxMBL>xBD8(}P&1iU}5PZQNMPC9Z;OvL)p%_As ztD^We2K0s`b{S{-z89+58^4=G`fm~SCl#!2)zyvxpOCpM<8a9g&-eAFdl+Xh!?4}r zxUUh2d?9453-yAI{$g3xvle|pp}wv8_De4QhEYZXA-?G+9rI1jZoywH7QIrc$pXUd zli|DR3Ew}X)M8-bHM5x~;NrsK%*WtaQ^xJO1l8;6Q4$bGxMNoytXP{_h=V+>Ry=@h zhs6Zvf0CH&(ylp8#y2Qe4m}Rgsu9un_E3*0h=?No_d*VAYdx3Qp4pyPL*IZo{AqE7 z+*T@teudC%Es|^OI}HEsF+%h%_X z-cNyYNMS3ApWd%r8HCeGs5>3#W~#So8R{wtl8-sj6NK(_ht67|)<;0Uzx&>Wqh>`0 z1#)K>J+y~+@r7OB{q#++Qj%Y1{5cV5hg0~X9QD@-s0N34N^(sWgC$QR7NXbRgV-oOp#H&R9FmiOJ)S*0K@j6xGudbFK9y5q` zO=vryZgB<=&A}f>UnKk+1VvE;uZ>1U0146kje5@);l3Gn$Z`K3*RF|xj$EZg#p7X@zqndnD!P^42_f)e^2 z5B-)2%Ok?a>1xLnu3rNZ{R8zn=0?CEJWmu-%SV{QC?cXP90W!*(-OZ?~&n5rec;&@z&Pd`|H~LO);2 zu6#Q93MY9b1I3D96wSkFYkfntNF5p&LP1@^fREdUFVUsC3xB{1z>P|S%ecWcvyqDo z#pfnJlhCvFcH!!tEILSg2zQD!wCP@NAwB&^61rDpGmb}flOTIUsDaXJW=o_&i< zzwtEo4fCYmx?vN2qd0mH6>wElQ4bPY-+aDyFHUAQN76_jfhDJW2DjKr((-Fl?BzNn|9p{zOiClZ9^;rQ z9NB;5teXp{C_4B8Bcw+NUZ#88aX`n3K+~%?&d@=Bu??d!;Nb*pDjgQ0xCU8+wpdR; zegbZxU;9@RTrdEiwvS6+gOZm}prlE81h!WQrHRq+Ytbm6D^8`RQ3g6HLOvJnd`(3} zZ7@BT+8@zn#_5ldG#RLkTKli>xa(WfH}YZLbJ)SX!k1zc`4IRpgeT10^o%jpKtlWz z^|<%<{HIUxVPV)l2`q|<(&^})5lz!ErxVBFJEEZ{aBgc>;Ka4dsXZ3^qX)E8b1tO8 zPSIg?a*N}RIdvjh=y&bY*mDOTKm*i>H#-9nO?kCnO7}Rl@1B4ZQOl04wTGD>KgMJx zyk9gzFNtfA4tT@Ae~+C{M<)xxtKIM$T@PELiq{zeo1nL{&r zMOXogu2op`bS2o=Hz>LR!aB?T${OS&+4CV*_D4*pf_+^+nlKVFg#V0GFvJIO+y#*+ ziF=Q>2Hz+we$GVfk%OMiZ%!7X&W4ay20&v#Pk9_@hAA37@Y0WM+9l+%l^z_)gB+sY zX8S;IH_;jyuZr_Z{k40_KfmJaC8|Bw5z2RQ-tH^tmB<0*R zH7M|*Mqr}`)?n$${`XHmSpOhFj=9I}p`tVNuj@IW<}jqoYfJA%s=JlIXK_B)Fwp)( zjf-LS(^JwLbi3!8sJjy|d?KP$2)-`Eyiwfp(ZK>+1PikPe&)zZ}lJCMMCBbdtEGPV)6(z*fx5DEh31F|Cx1DSvjNiyO zqT`CbU$M%6e)9fz+0JC{6OjRpi5Sv1ZDfM}{$M5(!m+l`t9KuYWKb{Jqm01ZStYb# z6-vnvEMk~Ww#M#!7F8eu(=lMu2;>M;(Zgr8aK}2hv~S0(MzB;

    (x(ngPCoY1I!K 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

    t~~vW-EQ&zKHEy&ThuCkRQd=L zHY%AFEurppn|*YG*#Z~eMNUpsyR3dZvQ>X=w_Et(lwWSF9G7bd7xRfAFauk(b!{N^ z&(b?ZV|Ryu&Vkgk0Cx@}&2^+J(e6Ciok9sM_MyXYt%ux(8#w>- z>6P2iz1;d>AU;b5)~52&d%4c}=JC3YVy&FLfatjeldJYw2z29>9x2zmJu=xffefNmZ!N0+fk5*nJZyuWVrz+PTv~ATE!(Pk0;|rN zB2{k78MKLjB&+vT6n`&-_?K{_HkBzwa76uj?J}@>XYX7|IMO!?gtwW?OR{4$94fIN zJgwZBY^7fk;H+ltex%CsNOvE@ z4Y`sp>s2|*MZ67&NgX3L*{#C9Y~;MHQ*fPlBsBcv5OTrsno_*9?~I8^KkQDn@``S1ggr|85~niIG7Z9-cSXqD|!_x{OO;0OevIKk4^?`Im~`-(Psj{t(V#7war{ zl?`McpNB{@47k+h>QMdwIG4_>6C>+i1CNUz?Pvw!Lig z-$iL#rqe>1pYGpl%06K^|9claAF~BpqJVlO{=z3m-j^dJu4AlKIFHHtDG`r$if{EC zarzJwaXawu$*@kY+ebCurQXf`{a+zhyz`}9rT$g}Bh>uufLmrGQu7&UK|fEu zQ}9|DB?!9pPQ%5d4rDR}BxKc`Fl|#~tGe1aR^d-znB^^Xe5-o?X$0=pOJ&tVgDdxx zzL{;s4OtLaHykInsuan)3TDTZh25O97b%-Nt*=)(+MO>#6qB5_-lI~#YU4zFBetp5 ziX+^IPom}=XISmty;<|R@&!?eFhbl7EO*e`>;}2sxTXwMH`G}!Y60SC3#1x$<*5y7 zJ%MxkAyS#|1**!z)fFifAk{Rd0FG0PtnZR+{hNnfZyMjwU><_r8&?cOG#W;>jIf~F zv!LPZI}BydIqCV}qWn#5cd`fX93DAUf_HthTh;CxK#6oqvo6PE9Ho19MfThl9s-^!QX=?x!HaW@*NXGW%AWwY@xKQ(grMD}kkpa94Nrh{I;(jq zZcAQ|;&!p`jV!2ZGCG)^Z`^i1EGs`;0F59|hLZ@B%f7*No<}k!@8nI66ELWi4iW9D zv-0rb?>jsLmCSzuSio7A{z2E@waO8Q!_Nn7oq!61#q}cLGsT?tyEw3<3iR9&oo4Zu zcUD+@^?Eine0Ps^^8|^--}gaV6b?Kmv#c{OY3F-KkGNsva`fL94)FzFW&9n|lgKvV zGXkh|s88~n|JSuc_aky82dmBP-Uqrq`1-8ANU3K;ZO2E{skw?qQTZAL`yg3>P^&mC z#TX$fJo@W5=kc$ufvJy;hYZSeqx7C?9`-H}d7&J;~ry#L83zWimVq z8rpd?Yi`S3w`oG?^qodPSDJ!qr>o0jO`co}sgXxHu@oQ)67u~JuGE?vFCiY)fdrk)E| zGfn12y}*!4AHn$oSXRy~g4{(7npJ$5cuzTaKMHSF1iYkzXWy71K z%Yql90qOPc4%z-l2bC)Le&I+<)l0YD#hAN@=4$=+1S3^gnN$&yzA||2t zDjf{H2ntA5PRo?{iej0Kd9-{-K?VJXE64f!!P*O zLncAFLCPRt_8MMjCG&Mme<2G}XNOD#5NoPe+}|fw)Z1%?S->u=5HDs1qAcyW>}w^^B~p$1lX3e@l|>b|INJ%m}Mv1kZxEWjtYNrX(Y+;@S0JOz+mA z4fC7zi2g3Y(!#_stp{-yKym}N*NI%7Yj%b={6m%A#@#9ba_MME{oO#yZN5%g)lApt z%123mAE)W#Yd%bb+)d(p>0LXoO*xk!gC3UB{lRls3iD{xh?AVp+NCQUSLc zbXd0;1D)}0OUt{yJIjZvtIZ`10Vt^4jmzS=rnPv&t`fah)67u- zSebcbr597}agMj@$o>NWauP>wNeUX9>skXwVJ9nlYbyci>lJ)!rJK zGVc3fVIBv~0N$}XsYV%R^sh>sZ#W6#|0%pkkc1e)-|^xy-c`|Oy?*|sNS5?*@OiTw zQvvT4PE?YGp2u_VFRFnlf{p~NlHPqbp)J+%kpAitLT}$7bl@g@xnmZeQLElY^V@@< zYTtY0!2XW;=EZc($$RBeW$2N^QMm-19fAiG933DM56Glj^pHJPeK2*t7P4EiNqcj6 zf%?o;lm7gIY#Jd4vvlj`ExaH`+PpdSbx+Fe>Mc@0O`IL(sFcG_oPR&~JxGGIXVVLE z4c~t~a@6ycJK}l$WgmTFfAe$p&O+Agw|vVaU&6yLlbJD0DN1-Ab) z__$k{^35G0FF|?X?kl#U9C#^}*NEPIdlK3h+LPt{T8WiyqQiCU(LKFSXbI+stem(H zl!aIl9w-c;n3Qa?Zl=Os>~&imwY`b!dLP#*?h!1%|HUuh_2SXrk#ARffYtZV3ePOG zOiO_3i+k}|hDs-s_3vk#3A0kNo@8y;;S_l0gKS+2Oxg+^e-{50Zw~DBfpa5SZOU2| z{Z}q7LYcy|578{tn*I5Jjx{E21-RjBxuoN$B}B`KVyOeo=346$ixwjSx1RmKeCFvPFIo75+*5nzlyj4p96q5D%^b==o}WKFY8vYF zhF!ZqKlLosP_4Qpw%QuEN~&`DOIk|@qbkGGc5hF3@w7`3e$(uzx%~*&;TU_WAOAwL zqL5v=Cn=ns{)$X^Q*s*ZbXqBd>aHgu5NqZl4hd(uegq*1g{}>#mwNla??=Z7=yEac z4wpxSgoh*UzIexd)umsLDDSFy?5*BQGWiUK&zMb_ySAPu|!NRKQE5 z8SHrf^?d|H(ciWI>1R0tnCtK*+<%g>(SJp%8CXSOTjlto;KU)qMrookJ1~P8a*{d6 zm)LgH&qp00de(oK5V%WfUEo6vk-cc4DruhyiMI^$|5owHCocOUYE)``2QT4%Pa61V=aXxfvjlywn+b5 zlxu{h^kTc=*o8&kULyaC!qjN@F1ifs<3!XCxkH;Wft%NA#~&Y0zOHuOeZnE19seO~ zILqzB97`62oSc)w%VE{+-&3>TXN$_5A16l2F{dD5e6#+wA0+3n z!0Y&9_AY>iXRNi^Lc7P2SlRmFlONp)_kT}6=D@IaT)Y4IBv)d3lKEqtzFH+l-2yPuS z&a*R~Dm`AI9Nx`-O(;E|K`H{uy>mdQ(vPE-%GT01W|eT9K?z}@**Bz}+HlBiN;(0P zBH5ttyf6lScx=O?twq0FL5scjX@;HtxdKMnC@;*8L>9M6z5<@m0bK;^q%sJ7XNK(D zxGC{bFmd2Iok}%a)VZ~)nwCYvX$+vat)0U3zfD;r`SrwoZ}h9G3)`+GQ9Yuo1g!~% zGmG1Fg`>Ae$2b&}0=ojs%_^_=N5`|peVCf;y8?F)zusXEzw>$|VVaTDb9rZwwK?D$ zN%iWI^nL%si-7;sNLPP;{rL9nzw4$9Oo0mzVh!gaK!v-wqS;lPZ5$1cG30Sd$ER3B zhSoq9m;ljPZtW%S(bKYmVMTbXL<-TFadx{f)8qrr}s& zm4!zX+Q?G&2pq;!FChKpktG->s@W(Tbr+7U6ddXiF14(19$jLx)s_ZDq~hC$jz zq3X_7X1WUU6s34Zygj|I(xxpPubd8ro751Ork>hlW)?i(uMG)TkyKxF6!!xSQgL}* zuz5dg`DsaKL=i{fn*Cd{LErNEP;oh$thNXy90DqV-?Rzr=ZZrG>+v)h2~dgkdXs+L zd9Zl`I+BR#TEY`kY_fV{3W#R!D!`jC>O&$1rGmEJyjCt$c zfM2dAjnc9cP!pk#ovmQ?lVzvkMDBm|k*SW2HNFK=ItUo74%C2&K=ua$xC;-zm}#*W zx@AkB%+qyMD)q3?#+&f1QrA>;dyKODCTbOVrp39Fmx;9u#rUet4!yIv;5)lZ`2ClG z-aqZ$OII9CREfTlnOA`O$pqsPy^VRHu*psH1`Q}rD%Su+sBb35fXEb-(;%BD>rHE| z_AlGB9(i64=L~UD2gR;NLe`!;JfK?t6!D8Aa(B1l*ZNR;XIV!aTeQMf5=rEZ!gd;S zG#R}b{`G;5a6`ejdz_AY=DSJ?==|5G1j!fLH&-(?br>uXU+50^Z#+rI^vNFdNp=zK z7OZm2fI)HyZ#p{D@s8M~l=9pm19fCK1+DUN-6lZg7+y?Zo9YLTapS&=rqAYKDXFs>3>Y$Fwmsw6NnRLyQ9;RXw@lA0b}Wh-StaQekEzz z9IxH@y$un#r%1cWUOUL~y*WYc3XO;e6kzra>7)$Rs(b*pp5?w^ZwJ?rM8Xt)`@jyJv+YH zd{tc~^R$AK_Ps@)&PP58b$ty_J2N>X2EonXratD&UBnEbOlanmrN8!* z{zMw0LcYK$!0SmR{`z71I4@tUBy>O!?W&R;TZ1R@arJ*)R;X@0Bj%Q7RnmRe%9lC$ zV(8LcXTLlzrkV!I?2p27@XQyNgzVuMFBtr62;;Ro@d9wnfFTQcL4oW@PJlCz4xlac z0#gGScsMWeVkhS522w=dshZ(?_UQB_4n$eaM}Zau(g|jR;p8SdQ9|+@ZB)8cA^TFF z!8g?y_c&A6i@khf_@Aps)(}wWt8L!EyCN3F< ztwbu;4PeSVS6OJ#0F5l6Fl8gh0VVy}G}DZN3ve!n>B`}3*=k`%>_52YqyHq_qDFZ@ zqQZR>Pvc_9)FO+i^fqWHipm>RAoZb$wk2lMY*9Jnyu+O+g$i9O79vvLBmq#(gkwz_58DRc(qyu$P58FznLsmYZ{Clf?@MAd?AT1_*4bDL7$ zR~=l{u78S#Wgp7sY}Z$fsu4+M^=g9bEm>(}4ozeULIMYA?DYNRol{m%b@Hpq0x zA&E$I^r$tURtX;BBQ|!<@=M{!2GmXBh;m`?oTjZ`U9_S*r#oYap z%K)1TugRT$DsCBEpKat+!ksJnQ7cUH%UsdtAr(!_dJm(N)zTBom@r0*ad=ls@w!W1 zihuEIKZ`=T$iSQ%t3nm+3nw|W%dJO>+2PXgT%xB^PQG_G?{zQ)!kxj~k|q;&o6CtI z&@L8j*68v;gOl@ao`BTJFu(umB#pf9tE3x0-Y~rlrxeEEHF$xu_w8kItYV{jSm%4@ zxL5f^o;{dy%wGG@LH^B7YWtUIdA&nMd_YS5l--S)u4Q!o%_? zFX>VxrO?-cXPAP)ZHs}gtj@9-M5*x~;Z8ejqP67DAO9PcG8sq{03s7f0o=h7-?K8J zkR6iK6SvF0d%a=b>%4s5?4JH(SLW^S_ut$>xWL$_=dqMx`0>4r@2`&NrugJG93xFn zE8;AK3f|v$%pehCk>ji5kD|Q*Mco6xGW$g(vKWyX5jSIwRy+^WcKdgni?dgT9TKMj zoW$G(ZTh}BEW55Rmd$RAI%8$ToH5%m#NuvOhTp*_->3niHr0pL z@0Zio0 zP0_nv2eHW~tvFpNm8Xo3XeRf~b}TNv*L($at+v-kpoUSfe&$D@70AM2+xrm+y=3WU zJ!Epg)riOM6eA93bu-MT4#O5SN!`^4%>-c6aL_Is&Ccxn6z26Yph&@j$ACrqkqJXH zC8--QtGSq=*oJN>_;RpMn;W?PQy;3v4q~esAdx` zZ;}(SF(B?)elwa!A-?i)U^#F+DK%&jRm0|!lc?@qIb6*w@Qgvwn7 zK))~}X!u6?G|=oCqqD{*QXkP=z;Uqw8K9=5-YyoXDXUW?URUzYnaA4ORm`bhsVhby zozFJ!o`M}f89W&fn}yo6DJRDAst=d0xYjpQ#T~n(LneaG8AMu5$*IYx8+9VPVWyj= zi5&Cl$$&3{6UoaToE~ZA6F|kO0~q8#^>RxP)%{pgJn)1=!eT*;mHepuIBgoie1( zJxSTx`&Rd4X;Ack(rOlF&c47!FhHid7~8Pg2hp`twisqsSPhEfElHLu5T&c9#T!~4#q z3aO|5=It-@w5QnsWWbop3;P~{?%kH>`x>_zBz><^)edX1dtbiRl6CX8I6=bUBbA@7 z^_B($$yj`dz~d_r9xYT5FLc)ur+1kcC`es%>ehd1VOd2n6l?!+!7%rD#qhF^Qe!>f z0F_MAj|TJm^k7ghF!3~7y?RN#1h+TCnzH#dip2@?Pxu7=0U)De9X{en zTQqZm^!Up1B~!d;Ow~1q{|L*8{-%CC&0B_kHGWW{!R(~2lql5U{;UIN4nn|8vvuZI zV~dKI%u<;RRmPJc33<6p-Q(C3>Z(i}(WuJFsRI_an>sUeP31_2@p`*YV(ta%Ih()N z^|c&|)5?Vm=}NkIgn8C{g>Lmu=Z93~gNhA&b6<^*42i=NpU3LGsqq>Z8tuYaB~g?v z6#7nrBcRL?q=yTdm55J9g;HSnC%YQ01}9QG>vI2= za{Dk{8PEt}ve(06`3*-H`mW<2;+prKLqd&L<#-V?jzc0N4q4 z|B@(W(l;&5TKUB>nC96DnjnJ)Vx_;_hrP(LZZ+&!XkDMrq?^)6A8OI>{xIMxuhu}6 z7Mx*-yc!850^roev{9d7T;7QV7%02efWwgKn9gJ(Xj(hN2FGu{Jidib-rx*pLFvW;wQXHm~TWbb0NolFO76hlFo^e0T;9TlgHQZz(qYE4c!eoER(Lt%t~kf z_Hn%e^x{5EQ;z(X98QUEaMT00965g>Ca3;+lNSu8QjD}&Ufn`e0pcD}(Ab^fNiMLb zJHlGQ3|C_fEAZ%H#CxK4a18+JnWXCpb!~#he1rCDRlcqb4Y!mQHVFrv?=$Vv(k;RL zsmaH2=R&!@Qfp<9&WX=3dP()+qUQ5WPRsT`p=4{E4(!#(2Wi?40~x}RK;nyryq2ND_G~52C;zIXnzHuw?(ful$n_yfQ zELfi;%v-g{+>(*Ki3|TIh_BDn{#{bzY+;P!XK?jda`zP6SOx3EtK zg}3ul%g*pf?7%WHSak$C-SFv^b2;nxg{oOx8Nlu9Ryl(kjEjM791{`|4;lkBemeDsYhz5ORm0qu|$W0E8Pqli*>hWMa<`Z2Qt47HS|x~+GWaS2%MidT^4x= z_8k|cbi!~|wHX{Sk8QRFG5z?u<xiI%;pvcI@(Y%>y#Reu{pQOrY1WMb`T<*Lq3t zRd8sa$NJd=HF#oy9INW0eeyms15&;oN|G91zdrver6H=d=^z#q@LxwDWp`#qH3&PW z_eXyQ+xkZ`)R%(s@8q|cq0d+&#kX6(^p-yv0TtLsDMFmj`N>nMaxoDJ05ntMVaO1y zt*`PA=Ar!*Zi@~8V+pt_|CopxWWeX6Mhe(F9}9H<&7CW2jQf3s)E8J%j%Faeh7&V6 zB8L=B10G4m1$?rfPy8{1X`J*uo|8^^*4D&ZPy713_S-3%T7!L+jPH6k3k&2+#b0AJ zCI169`oze~YADrdrqK&Y(E8Y&g}_^YOl>h{wB60LuYcI~frY`Y%^6Rphqh0)EuOmj ztkVY1x7_bFS$X~~Z=>Mx-v?{Kze~e^TcY}@5*3p$X8&z{hJHioHU77v<= zJ=7lEL3>w$2QLBX!HtwaoxkiEFH4g~O=NkIugXR6KdvY|Ts)b64AHPBC%2^x-JPYW zI<;@qZ`j2&N>aifb|nP7T9v(r)bOJD+x$%}hrO9h&`eW^NG2>h$VVjg^ECdP@z<0O zA5=Mxxg{FYUNa~m37lRRx7+P_vQBtGuG}KfJNLN+)a-&hePFEE+qy53|9aZ%=kH|i zY@{9-(Ub0!{=;X;<7MU^}m+g{Fk89e{X^fUv6Z4Sba&4#X zb-qR2R{ZdBtesZi^24gmU@%usth*Rz!)Q>Am0St4QUtN zs1~z$T3$n<7P^aKJd5*|B$JfO4upYveQmO{xfVNnmlnILEO@nQ2sg8z}ClJSoCy!0w zFM!mnKJa!;VeplHYKbiB2q-B_W_;h6q~lV)%kW<1ukoxli{JdLE;)0*v|U-WR7d%ZZi%iDAD90lRr+=4|L&he}c&E@edkq0datTvdRl*p%q5f*F)llLs^?kAaWeeUc%&bc6y_Xi(qERDZ=x)9u z9t`FXjm%2m47fZ1riixoZIPs8J@O2nPt424X4%r59M3g%fBks$qMye8xTX7jF646k z@6GN#I&X9wgV8XfCG;T*Y0n>0=X{IqQXC!kJ;d@t>938i#C)ui&6t(_t*Qq-_Lj@0 zD6B99LBD(XfB!jpDY#P z)S^RZRy;_QH`$l5ZG!}oDo}^}XT~%_(`ztwLcccBAsmr;pEsCF?Me-yH8Gj{8i+we zDv?4AkabMa*>FP-;<%*0N@c>xf!^{~xpw?g84N$A(=()G^ae1LIniw)B^-W!T!a}& z0$FQ_HW)!5RWb3o0M{n>j5GVgh68eQu^mle?<|A782R*LUY*|CgkT4XTs~fWvR74q zhj$?Pz9KE%gP@XqF6;||_oU>_6O@KrOb%=kuB}n&p~ufKZ!nhUM1UE8e!ba`@2WBu&b_K)ZO+S_o8*71!4D5yWlXhEIPyA zA%<$uuHF91&x;VOfEw@?=$3Ws3H6j~G zLM4wGHxqHP);na0DbeCRBherGD45<6K=@u-M*l z(G;}CMp;)dJgT2wTS6XlP?oI58I;sc3_oBjaY|AP>!()A&fc9QhW^z$@lK-_^P|cS z+uXblb3e+>K7XF9GNW&psY;h4TB}%5#DN&_bxn5S1!qz1D>(0ylY(1_*bjb{%+}{e z8R0{>FN02y)vvpX=K8Fn9n~L7@!!Kp=+`b0fF@xEEzcZ;-u?~^`8}!S)iow6?wQ=q z4kk;GTgB7mZfJ52ol?GP5F#+R+mT~S7cbi-%-F=W9Df!0l+%_TXir}}ho=}n?k%uk zv_yU(0{M!$b}9HTS6@PPPm>wYj!A<*Z~g9e^E~^3ZTNnXR939Adjc@PwwW?oZw*Yy zJ52_;9f$S^?(sLIck=&tJ$vaEj8DK;GZ-YGI zL70btNP?&=14>@+z!_wie|~w19l2XyHZJ-vlxlo>hwlX`qyXODsXAe<1F@iUK_GeM zn6YC0;9K$gxMWst750!yiKoA(9z;uLMK5nkjw)gx8VSMG4NQ0P`OGYA;NoC0`uSvV zqNz$$8NI6oJZr4hvMJ;}d7xs-lK*}xkhhfTbs)YO-C;&4*EaZ?BYP4gB3Ga{${>s2y|rPO8Ro=W*5@2{ z2-cGzR}z0~765)dv~czAVu0eOW7?n|^a7yyR$M>F9f9EWTtJaUCYZ+j&QI1d36Fo@?va1yUzQv4Ys(x|CT`=@ev3ANQ6}fvDUY+x^BbhkBa78 zvCU#Z$@jqLz8ah^lRa?#hIfwC9xZ$1i3BRr4oHb`^wdHdykR^&u=_G^V+70{I@Fvz zAx3@Y07{p&p`@{4cTnQ{Y@!VmOd{#O%6)doEydm0M3=7(=GrgjZlI57q_Ekj91?K} zae*dNTn*4NEDYQ`GEz@K7#P{*(WGl|Vkkh+Qwj zMp-LFzKZbFfIm89Uc+QOvr_GPTwq<^IreHYwIUae1orF zm*1;pwrvORkRkmQhPQDi{RD5ift?A;~1?}Ll&+9qHGm~KA-GL;)oNp-aF;k1tqoys5%&m|C+X} z(Lz6nrCp%zQ2}K{>H=Q!KpTet10a*rQ#4Z$&Ef-iGXOKOKza4adDXU7roP80I340C@N+#Wjgvzwq2=ZbSbAAWDba-~#}m7Gv=A zTt*nf_TpQ@4hgKS&7cM%tBitGyME7c$pco^ZmU)h$|84CcOMW@1D6m@IAxqSap@>Q{%_)mxf3W09;}KyEI$*0z3&oGdQ}QP)P+ zNJoYAFqvJj9>^5nh3eQ))2oJe zSq$zDZrUL4U7Lz$PgR&~4dk>6W9!nr`En@gFhmb^K%GjTmY?5W5kJkG zni9XOG;<4lJ9+axWRcJ1*8z7j0NPO9`d-MzSi^Ot*{Y5zV(cEhu9KTS69s^RbZ<&5 zpx7z2AkHz8YGNcE)DsuH@C;m18zCGJiNU$m>x!7QdERHddG|JphpcuGBch5K5fZA4 zucxF`SNNq1MfT&}rWI(N5j}lA!yQpmOHnPdG^;;l#yZL9@P1TiJKBCfN-_f$C;td| zOM|O|n#di7_H>HHll8CF-x&n=E|yf{VpA&>i((+L+eI1&DJ4eY7p7C3ohHVi-!pZ! zzMJ2t|BlnH`VU~vg(sL7o0JTB1^I%=+s8unnJ{KV@L`SeGir&!VQz*+P&V~y_!2gy z;(OkJra-*R;|34c0}o>vIWKHPey6r|{GgdEzhy{deL>_es=?ze`B4(3-iyPAsP_uC zBM7BN-|5cODI2>MS>$S%-x`JA!Y>(yP2<%iziD|m0Pq-Y`1qMVkDcfBFcAn0pVG*} zf#S7(1}h@MTV#Q;@ql&Ndo9O2><|06zneOLICAyD5Hp9-g70pfNg}5Gc#o%*!#!Mz zUGFXjReWrmvf>JE9lPZa{!(v)LeL|uT#GjXw}IILu+U7nS33wwP)c?Sh6u~n?vqC` zVT^vfsVYc{2^F+<_c{}?eik12;6gVdK)buZXp!5i|56vdZ9g4eGF~WL&wyyN1h$1r z9CndGoc-AP3@Y2ncKZB=+sVG79)E}ldLj-Lj?JZ2&`{WCCsF1pM{e;#EZ)C=fj_Zo z={O3TXi_^l#~NFPGCo%aQ=tFla1lKpVy^{#E<7bX;9yXqgH`)#z~~>%mkyV=a%0tH z@7Dn3dG{9_BUeV#E3iTt!Q}PW0Ipug1&TjlkiSzsajDR{&1RUOQ#esbhW>S|k!mi1 zsJi*K!&WRe6VHC2`yxzwsJo{sqd`>Ma72;3qfHWZuKFhDg;;9QaYyHCBdRy|){zd8B)raJKY;~?gVh{=x9 z&6VDxOZ{1U`%kQIkt+R+QT^o48U^}{A$Y%EK)=mG1o%pyXSHv?uwSufQ1xnX&>h&u zh~T<SAHSn_ik^0rJv&zUl_M7L*KtW>KMRAjmgZ*uGLrT2gov4wxsIjD; zvE6F`06Wb`8$@PF=}U%j^v1}`5LrUcSQF`LqD7@&dv!$4DN?A<@3jL>SLnNH6$(%p1VaC7p%$ch$Sl&5k zKG&Cd^x?BIT$t1 z|EEy(l@?c0;<4FZ#UXUiXb>hAs28*d=j2ON4dpj`=<-2kfbkmow|_V%u={afPz z87h{_&N&U1maJ^5e!h70*_C|x?4JRNtn4!=dIS1q15VmNs%!z=O`Vr56`Y+K^$Cxv@$3I*v zna;~O=ed~FTv^}CGo7p7UFA5$r<`2nWSpBPB5$wGZhbpiGgfo{;&;oA%*84O zPr;^VkyAq)h@)mxih@X03?(s$*!3hzRgR>wD@R^Iq^riVcnynGlBBCAo`~ANYAoP) zFES;6h)%6HLJP-AJp6M7m93j8*GgekO_r^nt2R;|nRI=($WsQNGh&4pP%qRtypH?_ zlW$yZaeG&!Dq`Ut(_~4%)S*pv^Z9Cb$kE5%l$$Tsd!zpT`A4PDywM*^#io|3(6Tk0 z%BCDmt=PIVo-1PiCROp}-c*V5LlU)8+rey=VX<18Qv2aTqy6h>xN^twN}JE8H)+b9 zx}n~z1)H_XU8kEv0r@OXEoqte;)*k(m{~ck88xjL{ad5P^4%t)4aOqnMj|DKa)lPE`PMqQ z4(ge8{tS=O$BN&e130LEKpnT)LBBz%eyQ>t+U5vp; zm^nn4F;0{@Ta2kx5>X{d-5>>dr3fC^qL|hNPN@S%ZvqCS0R3WsL193jAfS&Q(9Z)H z;RXzI0ESrr11P{76rhI%@CpU!VgYoq1G=~X9lU^6K0q@k-~}t7nF-KL4|st9Jf{Y{ zfC5^n0BvwUCk>#R2GBzd9H6EchJZ#X00U%z9x^}|8K4~qcu59mAp<-I0-DGG&&UAv zWPn-#pc(+EAOk!l0~CPB5@D2&AS|Jj-mcWe*09%l)T1}4`$cK1IGF8F*P+eKa9Vl@ zEdtB~2g%XER2b=nI8bOb8y_Esu)qxoVQx`TUI|G7X=x!zIT6{L;x`o~6qRL^RAtmu z<`Hh8lW$T85gsMp}9%dithDdZs3NCg%Dk)`n(QM&?*k zi`&1bhnT@DsD_7>K5w{2{(wsw}bb~g65miBk7>>Vxb z?^@bBTVI#MwL00w*3s40(aqNJo}Ht+gOjJDtLI%eKc{=%F7AGAo`~~0$6*n;ut?m4 z=%{e~^|BZqMTmNc!$(HPK8#Ly7@hJ6mlBOn#>FJzW0UdmiG+ms*rbG*#FUtX^w`9V zxTMVZCinYjfy1tocfB}GNK)g=#K7wRt539Qz!Z?uXm zzO)_dB)n=XZf&b=eA(F2+0yo^v$N;btGB&9{cqk5_4f}C4~&itj=dY1m>Qd$o}8U~ zzqByDGz%dCew@5Zn08cs`0MAz-~AVNdmmP5FjC!2%PV*L2VO7k6g1^?UF+E0ay2O% zkGKf?t)BagO~Eaj`kIlf&roj=ND7z!X!Cq;@Io?Uoig4{oyz*e>M16ZOEvi1 z(~KSSEF1rW<;(QEu9NQgicHdye89M4fB!iw&)(+wPe5>-DErO3$u#gd#&;)Gsssl< zs@gPbUQC5n8Xe=I1-~M}0Dm54#Pl?9y(eh9Mr@T+B{|TT+}hZ>N^`hI{ozm16}{G1 z4RJAfM>AD^o53+u9>@22?F`#5vUxr8q+Nz`h1f;})48lhd+-l+M9g^u*IMtt6Nk`L z*o@1P1Y$xxnG^y)ho$_rqBcQWj&?nYu@adpyU(OySY}ZgWnm!n^ctLut1hTW z7JlAWVGvzg6$}%uYujQHY3$*47AnVTjPs;PZjB{6WzqE|3D(qYC5v_(Y^6w!2yUm! zE_!aKDeTp4r>p!t*v`O!g?2Kvn7npUAuL+cD(A~Nw70I#KV+!>%=|tkv5L*1;zq&U zGE|oOkopoIJ-4a2c4jL1RWAT96VPqgm^|K&jlpTvolJ5X;c!ov)SCm^*?NkxbVXAf z(T(4!Z+BgysT6m26lvrVPS3`l+J(iz6}EO*XgMEhWgE(^vi~q(U&OH1D=c4b>I#rX zLtOW`3!LcF6-tX_;9P{p?;g(A9Fi%8E#j}Ko52Telk%%5@^_pYzAugCSKa7oI3EbQ zP|2(_i$66cP|3Yqa2ew*{lae|^=1tSS6JtiH5N6$TDW)Et+nHd97AT0WQCnhP)9@ zIb{lLe}fY0s?sTS8zK%@8gA4M372q}`zAkA*j3rq<$A_NUgsPk7~|N!Xu~u5Y&h^` z+RGVt{zo1UaP9$}omv)S663tLsipc>TXi{eb~Ms%&O_;-{+q}0CQ?xw=my!(dOuFk z<3dXkQd7v~r(O6|D+o8TKyiAYD+uy;Ws9X%8Z1mgPz9|TxUvswa=T?we^E3Fiw<@!WrQ zQeIvHLsvJjJCZV;p`qI>tzDW8km_0=tiM3XW*oOxOFdQIAj@L_g>VIVqpIgF+j5`I zj~%CO1OIK*^dBAh_(HfJj^|;r4bLwIG{iBJ7S#ud7yF6HGdE6P!kbat46ZD8Id`Vb z9vhbZ{!2_-VOwDgefK^MnRI{|H6uYm>*_su`lPHRT{{V!;rmVskZGP6VcCP6Yc!ZheL*v%7} z%(ZwNHIgOM>Ww@MJ`{aCuaSp+S}zDe;8&q(836Ws+-R!Ef>}<_o*1;-8MS}vJ_1xf zs?q>~+^XVcS<3{A@vEn+5@Oh1URM5j6-13i5i)lq6VPKCH3NcM*HJF)Ee$P+%4QYW z53(q3ya{?{Y(-9!w7e*wSqRtL)i0Qzr09?3f$GU>s%A#&h?Gj4Y2ZM zzr>%SqOb{m(ZiSM($)c>&DRD^Ux#hh`M|Q)0??%Dd6m&h z^GG}P2<|n{jr1;S5@Rxkd7HQ}FLdo0M6$hgxx&-t%nS$m;31k^H@n}haasKyPrBu) z>3k8gFI$%X#w$FAwdWxAM)Gj|XFNGgG(@4^4b?7( zmA7v(q?K#&36nt$e7ET74`Vybm7IVw6-d3mKNAtuo596@R}V}&U*W5&px>JGe>LA$ zdlLq|9lOs`*Eg*4Ge{={;X?azC*JA=kwNGxU?_NAB_E7VbQx0SJdgr&ZeY^_Quk>} z8%h-u*`azjQ|QY`>;YOy)`t&YiyM%ohw!{);YyCbL;5I2MUR{ zezg?b0NZNgdG!YYc;V6(g3t_B$|9%MbE7J+`Vz-~nF)_Gwq~1ix)5L7Z!$hEw_z5| zlPIf&-mxiVeZ3r8(55;-R!&&{ruuV99}R;wRWLpm9OkPrKJgBycvE*tK_i5OR^i#a zc#>6ZXnMYW{6zZMHT{S%1@7SM{fmZfZmDH*aC(io(Cuz?s;(nbZ>~DiyO-&RotvFL zoEhZZOBq^zMB+|#m?yt+w&5cUh@lFpaz(X_X^v3+megJ)u&!ltahIHR2fFbvLlyKMF|asWN6?*eKs1dxLT~)A0QaHT$JX z8N$wF-=kWTev>WFZfFy_-`kNuP^>ZvKqCOU7hw&i(3F0uGf(P)O9aK%D3} zlW3(}E}Cgm&7iZDd@)Y&D@m7c&0zlxa2kO6de`8wS>TV3o1K}INeH&p8LIeGDq3Xp zW+rubAY?F;#-|ya*GHLUA-J2VkT~Nyz5z=W*XrFaNB8UBp}9Z4nB^cO2SdejTsLILSNL;_#gm&GhqKy%3B2{ZzY*7LnJZ< zpy7eu@cW!=&EEJKXt`xrHh^-N0N+cX`P>{%0NDN2Wy`@)s`9{|Si>4|BuY0MXcZvE zH#0M@`T88j@g05F*-!Cyg5W}AGi8E#P=cP2pPp8t(Mqn#?_5G6ZO^{H4?+8Xn0gPc zCf2_V7t#Ys2)&4qgcgtzdgvsfgeqM?)PR71fI(4F5h0BZp-NNf($t`+fT$sKL=A$9 zh#HEDif&MJqkqgkyl1Vm*7*jro_S{GH}~9gUE8N*UW#D%FfnOZ)L*X5_jS})dRY=d zYSvGs#7}CQ<_4CPK23++As`<&!X~+SA4?Dy=$z<22tz1!Cyhv_!y>FSN<{fT6i~Ny zs-6*cGiTsjt$mlCU)-&Yyt@wlF7GslDg1S-q9w|-7nAj&zVLo(tTGjG$_=UBmYTtZ zKg7hGk3I6j8QGSL99KYm;-fZHiuF|_61b2%LfGj{>Ql7LHcUE4M2$a!vZGeQtGUTS z#AHbXI#+tZ4B46jRr1&yBWAE$(cxEuc4ud5ycePLbC44lD2FRGN>6x7Ku*x1rYoh! zXQUVeSUC-T(XT8qlPgtS*5M~r?+3r-u2@kIuk*9u65s*YbKC54k_)F(qC(ELK_R?B z+6@iau#{`n&5g7Ao(b#aT}Vrj-sH&~SV1K^SKj9$A8@78xw4yRnGG5$4Fl_OR+$jO z^Ju7F&N81C5zY0Gsd#uX4feqgpBWG9mLS!$V59ZBK9Qu))HgqsKna~Sio)#50IJux zh}Zn^Y&wivwyOmUd#M-`{a%W*UahKZKMOiP#fUyHf$-NW>VTiWex~TAe$flALkXSJ z+g_W%Wr#oVPO{L@47BvLAL>IIY;4>oxC%A(s!o3rBH;R_j(L5$<@l!wcAATPM%uer z4~y_5Y~!Up^SsvEP@ghUZ?Mh@T02XI< zah6L4AB%lC!vxgw*ESmH?aIvJYgT7wL zqa$7mk<${=H#1`|WlG&fBL^_j=R~jv28hr6y5xFD_Z%!4hUZ9kbIQSZJlkZu~HhX?zM zmbuM`x1nWzY9U9_NY**nlIVtL9R=yTa+Hf2sE3!-cQ1=Gc^9~fo}tp`(9-EA4HuoI zse@8XN#vb+SVp@6%gkPJ2LdUCo@HqC1;HVTjiU9S`&_--#0=9HHGx)Ftsi9(|7Tw< z$~+&790OmP6e3<7hTqMtb-!23wuK$fl*}S)Xr1F;$OSM;z^`kiBUgE-@I8qC zB-TSJMZJlcxj-cx^#|KMm!9y6XnC%)q&f9!v_o{bp& zEzJr-O>&{pcZx^r;TI$jkD0d~J0qVmueQiZpQ9t63b}|nXk|Uhu7JbpXXtN1B(>no zsS;IHswAc1o$!xbl1FJhR7c(l&V%9MIvg;4H<6Vf$S(6D+_X`c$@uyfDfsh!;pE z->8>fK+G$Pz5Oe=kf*O9g#;-}ePJ>Iw(GG)_eF~$zoZBAXOsZaNs`hE49zQOsjCt* z>$~55zn1(5GqW&xE$~&p%>k)$bWDpRY?&{UkC$0@zMQ}vs}#bh_htT|QCAM2K4A9r ziJ)C*nN2$C8;!f8C-_8LurIju`OEYC-Qg|Wt>04&U)Lj@2jSBsq_Vg4fdixA`j_*HLO^e7d+;8lM5U1v+Fv6IKze32&G>TVlpMBPIHb7+b=x}P(7E)9|ONW z|9PtIaYyA>)Ik*CegNV*ZFrG}lC0j<{02HFL;;fEObNvHGZWr<=}=;7!05|6*p7|B zr{a3kgMuunQ~VE~c?@9TykYOr*?Q?}QF9V>QLg871qShBtG5Ajwk=7JAbR6EY_TiJ zrI-%Ch>;@vR-$LU{c=F6k^k(+{m)%*KU)U7C8WQzJdgGjTzfNCk?n`tCdm9tLw?TV z95hB0@kDG+gX38O>?%ZzaJi^Ku#-5Q(=o$LHt9J$&&bLnA@zT0( z^`sQ)1bh96jyzotMGc@LGJ3x9u7ApW#i*B}B%>rV*WPnaZ2+Z@JNMXip#)qpoGtM& z<=cF|gzAHvs{B+~dFGyl%?nv*gVzEi_a*!sucPQuEw2qy$TNP^C|%BnFLFaZppkVV zc-hW1W-OfBEtQn^$$ntb>qnAE2`7q$H#qMo45XSbzrCJ$=qg5P$5nj&@~?!4zdTrx zzt?}=Ot$LqLjUC3gzQ69WDb2>-#MlsgDS>148pZW7Gd0E{yF7=MC0RcC_8nDHPQPY ztBap#Us+MqU-FHw*QINC(8=|$ecIpBgqbOMu&j0DOJ6@x&(4l;xa9YzTc3aOc2E;( zcL@#A$=LId8yDQ~cm4uBBT>ADp0H08#M9tS zOQ)(Oq{khbdW3KZ$pkq}rOKmVV+w3>Cy>O!Aawr>?7_0w##*GFF!UCQ6BPi4v`2OTn= zb)=Xp!C%^)mX&dHDImVFIsSgK+ACFW+9+Y6sNqi&;3)uCKS)`_*b zh28cgsll&f5f#{DvvvCWU#y+LhRqC+ZYj2h+8kfvp9gZTo-|H)Q*=@dRA6qE{QBm^ zMpOGmtK{*huYGU4)6El4f42zup>*B$)aQjx=4)6HCUkl8^Be0M5k&Fg@NJ*O-8nc< z_o|pme~yaV3SmVtx_5e1W#2Zv)k!?i_oUeSRCVjFxZ~3+sML8l8f$6%d!#1$ayz(& zzGUjIk+I|-Q{kYl59_vk*1IC-uaQSZk`4M{O$F+o;>rU`3H%fL5k6HD1~{RT%c6 zocd?_$mRci*wDM2(obqFbALi|za$~!Rg4apQq5NPIg<;N-QU{XrAV^)(sk=8`F~%O zT~Tm7%du?C}4^Zs_ITg-VoI_|@KJ9{hcg$Eo(w+K-L3-)fV3 zN|-V}Y16T_hiMbbcYw8FtpoPzecBGabEMO||6RIwn0t6C%T$g2>yx{`c+@6)SWe#S zh)PV2|EMexmHVFbEPP^_NdLq1D{``0Yzb4+$vW&ZWE{dQkLsnk)f`{a*Hb?J=hM|) zp__D;f~DM}ExE{NriO)DyHi%i-IK3tEBO0Hf+tG?#Gk`jf;?s4%LPuk*v7Y9jO~xV zdWB;fZ*ldzXQ$QIGv-&$Z?(TKkG5yA%iZ2)Hp!*}GQFxIADkJjpso$>(K!33oqfe+ zD9f$VQIMr~i6yu6vT}znnEh~hykr?2-n^)*8j8T)zLkjUqm)GSY>cXSD3FY9r}X4f z2=P59U5g@iDq%0j)4@tL;oJO`+9knn-P&lqlIMNCQrKAAV_khu!Vh)iqAMLnckNxE zvd%0Uot)2dymXSCGK}&Zo$yjS6m2@DnKAik^x-Xerhd2OA4L-y5uN+~=(B)6p!zYx zO-?w;&(y6}F`lH2&VT6#6lphhPsafdexQR5#0j!87lc~M>7gzB;D*yZN|*z2FScR)MAgcXU1AyU*{2sw_`;WfOa*6ZFan!I|J z$sN>+qfH2#BG6U z`%wt)!;d{O(@Qc{d=9aoY|MAK!=`ZQz>$TtLQzbVUAO65t&)A0Ura3_RlK2_jr%aM z&P%9=LNDu%>3nKES>t~aSGKgpCr#z=>sU{2T{P3cs)kE=?Yf_-NmM#@fKA6y zl+y@Mt3RnYvP7fI<0>~pIa%b1DW<_+I!L1ki;Ukfkg+jicB|MTt4dScD&Nh-q9Nx` zyw%a#NB2j5tY1P8^OvnX6`_uPxTyK17g{HNjDKH?lpDaf zX+5jg=vBzEFYg`FEs`xv_G?nkt9RM5?I9#sFc|ClTy4}wP%uuuCoitVx}zcAcbHT& zv+~qLWhHO>BvdIqty&G?f;^h8B~u&xEv`8dL83OwzkJRzOdrg3G6cw#(^)z%>a{Fa zelW}1Ty*f=2RB=l6&k5vPj5M$l3s?QPCVPd7n`@24`})iOwR<{(*Pzq%>l2n-Md37 zxUHYicQbuVB(O#41Iv3?GufKjk%$8?qU1hs^MXUn;fD%zl?Rw(_EQ^3I_U5%L0f@| zl`LGG7&@fZ+s{!4bmv8jZg=+bmj%6(P|7$!O+wm2s@+K8H*!#j2j( z0tWY)7VZb(Rj~t})8cAN~j<>)0)6GWEH^aE)dY~-xBLNg0sn0QzV=lrkVjAgLr(XOI3yo;-{c3~nrGZ~GdnMyrJ!kr zKH7=?#pl;XG~cW;kG57w`&Ka%4$8W(de-EVxJ&BaxnqL3!E84WuwzUJTA_ol$BG7J z+K4~@FA@y{g_Yf!W8Ns*E(irN@J6NQfwuBUI@3jr!K_`|y&Vq*ub zq*XhpEVJhJ&=K1xnd;0Rcls@lBxDXfxwu=)lqv}e=xTX-0cC-U^^ZHK4Upsi;8-jD zDsT{y5eOv$!WX9%C0LbekdCO0C6o|KNe zUTq(g_FecR-?loeTlE#@oc3?5MWBltB&*pw^{xCsE9=(9OS%7k7f;Rm$-y&%pXF`e zWHj8upI(b`Iye9Ft^Sv{agIF!GF_jTn%ZC7Ylx)aqzGNPO&ZwGk%rPCfposOt zfdH0s{k2Vhh|M_ABMo^>g!6oDBdrg8Pi2L*mBC12FtG|OIAIx)33PO}f7f=;Bj=uP zroB(73AN3him}RH$HY8hd9AY|zJPqjS>25kpE=Opx$2Af+&`rzA#v<7+Wim}d^qnu z#bwwfXqd9?PzpD-nvi-2d~mO~AbM`c=mcJ=mC7JMDQS06aD+>hm(wJR(O zY|mvUjgykcImgi84^4t&ZFVkxAf7m|hb|&Lvb{tjv7C54xq+M`ZAw10${sIJC|6h7 z6#Cwe75l8^;3~)w&)L|z7z<+)SAo7cDs(Pqe-3CTfZN+^JTb&_LWA7=DDJ!*H&Ko! z=KiJW+kxw>C;Lt82aL_4!3qqyqh9cG3_RFxGK2=6+dq7jHQ83~ncJxBJ|O+(OM_dq z^axeF|gpKINRb{{cNJQ~Wf&jBT-R0jQ_9*OJMsAC<(bjc4h!|L6WdG6_~ z!E3+6Kj?f;D z_i>KKLEJE;L{sDSE$XRRpSKpbLVKB^Fkh!3h!3B6<19!2KA2Kvv2(pY}9xTvNZv*F$*QmuBTX z$9(*w9@VJlw+^ByVuRw?2bw4uH7sv}U!cTr3D;!%EEww306hSv3=5BryhwchqMqw= z&zaC6RJ+zAeLg4Kg{zpv2Rk_X6Q`kP>sb!#tixN#&??q(s=OK-=U;G7Pds7 zS%)zENEnBfx#K|6OcH@zVeA-MUc8c-gUqb8IVc%7YWi z2a*+^IGunDdb5<^*#mMc3J;P*GwnVHaS{QWzdRm$#Z)_CnQ22Nt%9)gtzmeOf9N1@ zx%koMAfp@-!3{k^58lAA51wHMzSa#(d*(p}k3RxYdsz;6P}GmBMG`OeuCxA&xGGu5 zIzL%`iIhu1xFqI>G^w`*6WQ=LFP{8dczQqNTJ^Bcf{Qpsr#y`S+MkI$D8Wh__l$;t zlR6URZ;kInrP(Def8_yLzp*+*YR*HjP+Pz zO40=+w+22s2Z_!x3>Ns%iNT(8D7W~|F#ceY2obZzoNQ;ip1jn4f6QJm?{VJzuLoow z9<(1eIIp&UbGa&%-Vrblxbxdg${Z+g732$Ba7D9R z>s6`atj$T*-Yt;tDrhf}{V>Ucv?Rv3OW^(RY{+g;=V%9K?}k#p+~81f5HCasUM46l zQxpyyOCq2Y_ZhwP4W z+_ZHy?@pY=PtI#ofi{c# z{BqLux<{`d2XFHCr{5!^rOnI0j`gAcHmwNj#|}D!T-rF^6AH&9-Y3qtc=s}6Rc1DC zcX?&BQbXDQ?j#g(>`)HmzCtC5582?q|9jq@FH*8QY3X#k5@`G(OvF)pjev4!%GJIk z!WW*jo%a8j2}+HlHeeDS(tpi}H0QMRnUhR_?0!>lbbN4G_|S>SUW~5`U1x?-b))5q z?P;xI1J+xL5H$W8*a!~R`adCExRSF^g|2ZwgJr#q*p;>B)}ytT9lmOcQX)2{LWBOaFD;)(Ux~kCHuqu zIzbR9ASXK{QPCr9COl4QmB~8FGd(%g-Jam)b(71s0on7^|LPaI)N@kM>nU>_=eFqT z>zuFi%qMlDo)4n=Tu`tdqdNGIMukI`vSn7!B{^f^Z2S0k=gP``ZWbPsq77Bht%PasNnA4^y9$cUpR zWX{2O@L{y?VJdA0zY#mm>;;l{CL|9u%YBX&lr!Lw269_>kJNH7J%aZWf@}-EKIsHm z&ej(Rs}njSwmtotqVETZmN?&UIAs5>x_IU)4~o1!d5u)&eB>@!Pv2#XnbP*#VjAkY z4h*S(7+nPlYRm4V{n>Sy{qZX(JkIrmX!A(h`_L)~UF1n|o(i}Mp{z0k(P4!@fcvU+ zs`d|1eGA4u5ZlohZ@eynHTK;9ylqXerq z-9$DaSKK`03j=dCt?E9({8w2)y(X+E&liVF%hJHc2f?`)*wy>~`+4NQD-!w^qrdBR zsyBk{G&CYYFT&k^90GfU|IEE`mHVXM%Tx?%zUcaf)P;PU3$clQ}HvgQ_ru& z43``2e}RzGpx*09vHKuZd@XVAPOP*TJcjOye%m@to?TVH6`N3PB#_U&cqe(Bw(-05 zaro`T7yPe_LlgTVI#0(Qxc8x;#ysl6H|pfbkLoV!od;)r{JK_a6`q3Vvu(ZkQrn(i zXK8c*hQftC9SHt1;!$)v{>Al_A0b6gcT>8#XUuD)o?eR=*2$i}Lq%!&1P+oq*{j7k z|Esp~jMPti>)k8NPL>vV2DN!r4;MeRc<@Ziect4NTueem=RV%bP|bgz#d|`!LaxnU z=_uPH2_ydh=*di^?G}b5>q*426~oi89Myzg><;2%3!8(rjgxWwy*BjJQNOjV*irxc z%w8uk?L@In&RjsDmG}YXyEobJTbYz*t;!J6qFcMP&=HPhjcH!DA9`%wJ#6Z4zsx#; z(9Gz?y)f@``7RxEJH~uMqh{+S(y|Y>w4-D?Z~jQ5-$(1BUVYGy0P8m^I0fV9i6??E zKJD+lEz1_VsaM{p4@rf*N@o^^bgr~chu${CP1#K~KS!A7^jZc7r)HTyqn>+TQfKl! z?J&Y1eeQUnWwy>Qs79gBVSmF?|Jbl&HLBmGj$MmC4kbJ`9103#FEr#B33;QBjt={u z@S(1VIOB$$w?}hvPlK3MJ;nSDcfHK49|$APW(gJFmRjneT_GU{(NAhS#b=A-u1@G)trz5-|NiEs)bRD*#w!LLU5%awS9)-`vEApkO~W~2&sSzJpGtB!f)a(qnteqvLhvE|?j(t3f<7^``rTjr@fwzYzc zJ!f!S+A{dQSx)%O!DXaQns(`u7v2z{gYG~W;IOKY8=cfu{|K*OEcy1JA^93@F6s+|&z4zApD0xvY^iio& zkzMqX_e>jDV})dSoW)enU1#bR__tH17)iyCIJh-J`K^tpWBaB?Ekjct?CXMA=UPoAK+ z=NWFHsU>UgQ)?x>SBY7)scg(}INP|46ZWg1);rO*HyF`(jw zS#mw~5C=S2UajHGP7BS688#K+aw|i0SYvp6ct&^7)|sW`Dxv4CUQ)h(^t9%U)4 z2frW9x|9v@sx-DmS=;_?N?)y#heT=1R^QfKFXWc@A=-4i-3m4CobL2S+@5AAuoQF?da zgTp@zm9xcH+R?E_tP)2WEEl`mAHA_I>$I{6B~3LR6F(rh;Flt0FmIdGQ~ZXFpHy1K z%u+NyNI-4uEftdMAEUYBqxyr9g;##*mt{#nt*$pHCDK+DCbmZ3OKs%QQ<;L zQu+2G+%Ay{)MnB&#D(u~+`TnqIvUwBrelTX+pZi{d{va%{Qi20kZswUg?Lc@Al0*-ydAM4*hNYn`?6#T+N?!@G`nb(n3_vnj)jb2j7=vcdFqU)aCs2d;CvH(%xY z(a3$mr0aIm@HhV6cOB*O_oi#Wy7PZ#V}Rn$VZ5;O%Yh&LFCU0cX3rkQDYo$DX*zv4Umvqe-^kxe}NseL02D zFnWj5Z@X_nQk@r&Z|VCI-pzlGzC|;&j?&SgjFU&xMI+Xu{zb>DmMt-bZq}vPd}nQ@ zI%NkH1x|_nq#w3hz=LSjK$VZJ1(#OD*B0&_%ZY>k*d*jT)j4gVo45p~a-{m&bB$4S%N`jB3AL$bdUXfQjlOINk5mu>$!vY0u% zEW@b>zdS#f8z>sm*l6=H{6){%bSzY$F_U+S&jvQqALw%z<7O4m-+IIq#{ zwTs}QQ&;-=QM%1kg&Sd;RK3lxP^B2mx~Ta>YBuYPs6(Nk-5B(4f&}He1yg-%P}lIl z@B~9Mnrw1O$;$5%MBM6mWg3845hSMoV^uiK`edU-mpWI5rn=x*#f)~(0Srr^mqymh zk;iX)*>-2+xd8puOUHk{F|ZIi+^^X)m7TFuQmq&0@t|ihmzQH2l#;Q^rxvrvnQ)t+ z_k|7lK^o~5%xFKhi3{0md@A3Y%*_E?tQHXwa}H}j2SY&(krg}za9p6+6X(s>voLcY zqWX}vKl5G|&~iL$KXS%=YPcz9?)!U59hX2aeSu*jaE-_`n*ylEssC<yq=1GKv_Q z$a+Xx+N!v+w~k5ZefsBih_OARw0p=FM#1H%ua?&>b3Jw93;(c+bX@?1;W`Njxw_6{ zwVojc{8IE#kwT1?Sj;hS+axf6GX1zzohx1Ks(v67V@}Gm772E5ll~wohkr{N^Du97 zKy!Vr^h~D33IhjY;DQ7)$pY;#Kwc=)JtJC~u?Vk@eBbvnf0OB0Me#?LnIV5hwL!`OdP13FVGlgepMVXUn5~uG=1qiewN&OmQk1>REbca>5aQ;LD5*r@=5X6 z9wx7$v&}?g&Fw)0ZDt%vG5md%O*xRbKw7Xk;8XgJn8UQ2(!_3(4AjLG&^&H?;+<_5 zMUCKgkX_Wa%03uMv05W()(=Z69quL!5iDE@_`{#OJoVHChB=gf;@IX3S@usnPDC8G znv{b8$bHnAh&7TfXg)EKZ36*VfFXWw$(J{uBs%~lt=udL*(aRcb+$zF{yX1m7^&Md zy@hbw7=gGPpwDvexK?9e@7MJhdg@c4ex|_br`K5vfg3~n^#6-bCX?Py)(i8?n?1f$ zT)ztRa$L>o$(k;+`DwEsqj6TE6^Hd9dli6fY?U;YUh<+8>pq_lPCj6X213qYx++Swzv#)Cc+BH(6kjFUP?e1pF&BgmF&Ms)}39<)Oj2$1)mlI z)VK5;%9)l5Lz%6BFh}MdOjXT@i`c3PppnK<*zJ!Q7O)Z~wN!i$CNWL$0GtHyJ7UNP z1kjwrPtP`+rD_@oBq^&QC)5S`OLI0;I)#@Rri3NqxkkI;cSYaZivLU;{6xwb^bEK} zR>@elgCevOdR(eOLm~8F3gB=bJV3_cNj8_KjML-7$ycLE4(EyeVGqedh-ZTnc zL{hjNVgwWDdw((Gk~Or+G&PDg9&pzHIQ<5IS<8x2dWWPo7`%6v+Y**Kj1Q}C}g zQ$LA45`N&I<)znThT%!PC5&P4fNb&GO#?6UGo9J|X*6L4rpLo-{Cx7K4zSR?_x04s zO8Sf*ouTU|z=8x<8UY4%JLrP!vt91^Hu9I97UyoEPAUWB@o_fc;-2VzryjpaLnoa| z`1(?OYNskpf5}O59JnY|{Z+Ga9CmR?e+3Xc&A?>>rTYq;)<{@S%Id6(eV6yMbf({U zht)b+Q#f=XAb-)#I4q8A+Pj}fqv$S3zS9jfRu>r1nB5j&ebFFxd-XGw@$ppLrA5K2 z?H=D9hFyoTx{B(*5hzSLfLMMg!i;htgQ3teq1BwV{l4>o8^Cxy>>)?RGCkisO|WrU zFcY`K@)MXE4-w)fb%sfpX0qqpwbBP5YX#28x52va)vB);;8UxS+gSzzfoWZ#$$9}; z%G12P5tRdr9fW)P#v{)uG} zK%EMR2x1!JclK>);0{oA1+oM>c9Qr6Lo zp2|w-clAw@F1K2}&r{EC$Re7F@vbrC#vE-1sB6m@bbb%E5lg#zk#RZfnp}`|D!FdW zZKzd{fkazv9K#_5S0JDDXbe+pvKCP=oyX9NW7uHn1}pNS!J3no01umMB+bb$Uu3t&UA`K8kFxS-Wc|H(p+5+a5E07EV2QM9+^*PQ&;mlQ+%8_Du6=3Z@=nv>H+u&rq+s8Q5&5sj`EG zEp@;F%sW>@k3*gy7WL4c#CB0eDT~G~g`eR8&*o1Hv!eDH-javQ#S9 z;^Wxtv%o!}C-9+UolxlXDRV5{D(;xg#nZn@k0~}c5Yp4$uXJ-AgcOHWg2RHqpo?Ql z1zTBPPQn z;Kz2{g&$enh&*%HmS$C`{~B5R(dt8vtL1ypqbyBw%^7Bh#ZYe=K(}yhkCE%nS1HWG z;4WlfU3Kw9>p!{fWP1JF4=f}3HZm9sJbvYs8}FGmNPvrwxAKP)n#jURvMwztO7ku8 z4EevQV(S<(#I(T0_iLx6-!rqMnE(SV3;>H}Ty(M@cHf5RmrzHIUbUY1I?WutfpA=7 z=<)RQ5Q5zy2R&bvTQz%V7BC&_lI#rum;nLdG1xH2prO+>d4amBEikayTt)*m=3v1* zPxT0j+ffUzy}SO$XJEPHX-l>lk$hZv#3W9jQGV7_){y<4fvpF0ehf7mzFSS>n5AXD_5}J(OqNybam}63V}}>t`e)qqQsshP>=Ilpk&|VI$_{b;Z}( z{&;`QvRUaaFme$Lkbwqxa_&Gu*6&-E+dOO)C2xi4ILsWa37r`M=)v&{2{;W%5i0r z8s?06Cn-&uPu)#cL}~RM&iEDg{kc!AiML?xTG_<)O9UdiGlim?Uu+gNS#EPq*Wk&O zkcr;-WknBJ!qJ!4BmZ|ws;EAAqCa@1WgJaB_Ku&?bP6ieKkRY7g#kpg-8}N-=5B#J z{Gvs&FhMm>v8USn$cxay3G<14mh?36$e%W!{Z>aOL67f)jnpk7a>Rs2(C4zNzBO{H zwi zZ7jbmekc~7-}+qb&OiHYa7@|r>|(51I6hbJ%Jx<+6yPC&-+@e$*c~HWs zbTAHUtJXW*N0E)_`7~PPD=~=IA_kaoOb?*r+1dqdvf4U_2I4=-Mb4Law4QpFNh#SM z?yXySIcGv1-zcWOS4r*&GblM!FW|TZcN~wwB+)%wxXBNsyhfa-{){UJEp4?JJ?tXo zUXO=$=yXSmZ+^Ie|6R{gKKh{hmP|-jcdOc1*C%j`M`}Z>Svca;P>F}x#<003+8+p9h6hRpl9s?g^ganL_R5qyYKP_r{)ph_lM3Ky}7O^Qjm>T?LmUh2cw5# z76T~bL9gc29*O>~rS!0^;X`}axAi9ZLme(3e1p2+4m$+M>izNudp0;H%vB}tlc)cE#j!+6OFM#Q5ozrg7#&-!aYOp6#x+NvYkrN9^%V;&DpRsni0h0#gHf zZ_J@?1AQ=>t(4v7?zHBQnwDIWY2iy*(6Vy&+q2!CP(hl$rs%j~fy@+oUbxQ7_Es6% zHPZ{mcy4GP$uU-vzd2%&)+|M#4XcOExM<+BY+KTkyj81*HFO8_n-!W8lS{=OY8s_B zcNX>co|y!x|6w62MUM}^;6to>C5!k90Hv%ZH)FJaFE3qd7cX?dK)gxx9nMlIm!C9W zk{CJARd^yJa|G47QGQeikjZdnUyK0dJFpmPGq5*@RvpEXl+9TklQ}=f)Y#GzIxclfg~mNmzBcaW2wRo0-^Q{Rs2tr=|KfDfvc@ku zr%odT8G+wE%CHnJ3vf~Z_?#Mw2EqONWf z6t=Mv#&f9y)kX|LBnRGXw9chIv&8=~Kz=uMG3jej-qU67ZH8d6K+Gd+7E3lHo-*mHZ_tQ^&( z<1&|3uj5(fH)D%%OSqPv*ATA*d6u42<;qq++1d)zh?IKf)h}D|I64V=Y%X5LvTKl3xLTFnYjTA{@iC3f2qKk`!CBci+ zItvnSdo~Qz)sX9MjKA0uE?%q+Xp@#J#`h#d=;wv-$O<)8F4{_iIqtKS&noV0wwPXu z|FxiW_xC+_$6rlXm^uX-zqR}v{T3r$dywU>Tn}~Bw#bc2)QV5b$sS+xmpS1~Mq|Hn zOhjwN8N*rw%yEkL*@nV|1p&G%?O9-*Y;L)@ao21c7^gH?z$SoXkxxe1i6zMY!nKrA zsEC-$(|OKwfL1AEsHax9w6rQkt~(Crt!D_I_h~MFI6kUsvmLp=%Se?c0{Un9&qf9{ z;=A~HA#z!;W_rcwjou+_G^x6IccaXaO(KnDi0=9vC6`kl+~p01&X8WI@X#)1;_Q8f zdqdHAo}MNeNO3`ulZR?i<`9;K9nB3ImKjUAr6)?v39gDdQ`~l9qbB%TU;*QED;~Tj zR8rdc#|Onu7~25*CH3k)oWj-25d)W!TxxXj?V3~nd%dV}y6@hvLlQ&p?ANknV84&l z{;YR**a<(++xM%07G3m8|Mxjwh1RcE-1l<&m#* zNa#j4C9aFU?xGArQqBMyN?e>SzpgOMju`&-#AQ&yElYuleQLJn3(wa&d{Kd%m8R0L zqXDrpZcqUDC^|L}>z-WvU<_l^VYximyQXhk;moQ0efI2$yTG+E!`RvT(BBmg9^NFV4I_go|5uu@jbQ#dCxsUKS>2V_IBt5 zOx6smcpNJ$2mfMxf#pRpaH|#gegBrFIfYed(~i;}RK?$n`XwQov6_M!RQhiG@SAS! z8ct?{RA7rT*9E&;*U`rZWlb1L>+Nbph~h8IF4hfooTU6w=kELvgA*<`IoXrOR0LE+g6Td^tQx-YQEzB5=2B zL-#lsy6cf;$hy2YN#Q#}^Zc^4Z@loP`?I)ZIp+oif|q74{G4BtoQj!k%L&_d`8yf` z&fh-%b3GpC?xU$r{bwpmE-p*$PNcH!pxSl1(=Qr2iljz#6U&84M)$UBq-Dvxl~#)& z$*weLt}gB>&r(~Vp~;_Hagj<246IVTjNIUbu4Z}f#R9%ySHa@PjMY}rl**GyRqFr4 z*S$Y7-T!d|$2L3LoKM5%e9W1V7;_k*ISbVsl5-;!B{}TmJf|Ymh9s%x7%JBsbLcRo zl1ffVXA~D5T=%~B{rmkV?6c3|{eHclugA*|OrO3_cBgSb3yL$ z>N_4+r|q^&>WV5Hj#0?sqN69Y zQA=_kBCM=%R###yE`3vR#L4`r`1GPph7^9`+q$axezkvYRYq$_U)GY%1jsTPuo~HE zhFn{tO<&VpOTSGQ)lVAGrE3Iz#$L(j%c@bTPB^)&G2zTO%rBh(?{L&ER;g(voQ3(U?EBYveV`RN&Q|$n`f1znnr15gNa&fk_ zx~O6c?q-FkJl?!Ir2a-+XwLbw|zTMq4r=7)#eH^d+oBoG5) z9ZvEV;V6pXXb%j72;Woq2LnhYaCgRh0nXg zNmiHNTP{w00#-ipc9*4a$p>zLN4$@nlkV^q4KvGDD;lb_I2qsD9e@9n-8|Q??L;_4 z*WU#RFTbJ2`=*%m39TQls_&}y%TaP;UYf10NXE(E%Bxuwy()u~56+RZ5)EE=4F0Yc zh%|B8nV0KMR3wSIQNk08!==~e|B-kg-*Qs!6i|^IE@d*Um<5y<2}jwg>&4)t(!w#L zqK9OqS&d&L_`dsf9S>_+NGq7eM4U1@P%-c7qmVRk`t0-vF)pG*tXMre@h&d?udifW zI6ttNfRt7q`>LH3o(L>|ux(~I#*IXAl?tq-#2gi+J{j<{Q#laVL^nAx(OoH4xPrG2 zPU;y7FM6_X;23%!(Lhw%%u!k(i3-k^QHqZ_1c>$GW*y*Wc^QO?6?Lo>s=a(Hh#9gz z0F`aMpymgcGFgbXOv|;IiT_AU$SxpspP)ExI@o_zvmfZ?;}q4yWmj?j>y8>8D|;y6 z^0z()ei)GZCNgYaFGmh{SRZh`AS$^fA`8=(6A_hH`ZxK6CbeuqdK-&A(2ePSxDu@` zosT14#3}p|LE#6YT9Nl3TN;E0>11l3niPH4sCj}v(1Q?FXgLt0yLKGvU6!*Tmn14r zbyQHmNigJN=Sgz)69&c8Zknf*^mAc}3*paza;oa`S*#Pge1o{%Vd`l1+4IRtDcrLS z5uO7Ba{1zpEwmFaUY<+0h;|nxS&u6hb7c`+v`M(t&zDo%S+e%wX$(1OUtZSDBv7Sv zCG8nmvQn+#MVL3bBh7?F$F$$LHtl(naL?Sqqssp;P72bX%;CyJ zizXQ`h>L{H&Tu8xan|7d-rl|l4NBM_i zLpD&2X~qx2C)31hBL|YMi;^yg%Kw^|FjUn|4W#8Ab+}kF*_nAFjbyp%N z+u*yvUH!I6lt52am)q1d5H!93dvs9p@&SYSth)7Z)j6BusBop(U}=FsEuvi!g1efL z{o<78hm`{K8b^k`U=qSbdu|zwhNHwpWh0s*)+utAqU#MpHtp5r7Yi{wGgUjefX_i% zQ!}jH4Q8DD)tip5bAaeY5nY!A_Z<<11l(@Pzg3cf!$LJvj`y&s8>c8^BGq!59*S#j zSS;+x#w>E8-`~u1TUQp8EDk#ES&4G1(EL-c?&Q#W%fosiYyhQ{U4JH3ft4*YPeBJ~ zGdc$p>=sZ!oV3!Ur3Ow?WVw!Zm3IM8u)UGj6ry|!p#C0oNLz1Q3> z{FojWkL6aE+s(Z{H~0JMC9y1mN0Hyc!nm74_^Mv-B2M_-Hpn)@+@h*|$u@}2o@B>q#11Q1l&;-5Tif0?91TAHON833QZ6eX7IYzAhs-bO_eUg< zhfwYxl>5ckAO19;9q#ew-*efHsQS^f-?agyNj729QeSpH-+KGegq!X<(7q@s>$>zh z_K)=+PuU!~o5-7CY&TW6>(Y2pl|vnG^&DkZ_iYB8-&|Nax2W^|8@Fa~>ry$qZYA%s z{UbGRN50|DT5YohQAant_L%9|IZ`%?z+DURm3%0=^q-SN_dPf&TQ)TXSCK9GjUXk^ zjF51YyfCXgn!Ud)W>;DK11f1jDY{>A&jM;a|EicHhFA9Czowpe;rj12W^og3F{=C! z^RYq9MI@q{gU^ri`h3Cjg(_u$Y9liWDdq$}>GK*osvFoHKf^nup}p#@88&+lcjBb( z1T#>e8bVoz+Z%-5X?cWEsW+f2`l{?YfUTdG=~l&t=7U7rSzYNzKOl`R1` zgB7Dswp29lFZ>YLC(}~V;#WsLIa`tUw9&o7;yg^`|Eni|+kJcQ?C;%2w!-4)*0=XV z$BtjVw=n$u?GX6y<@+DEHg=v3f2tlY{kfI?&%d!H*Q4GP_nLJ*xqL6}yW#ul<@hf* z+}Hn%1Kf;iYKfgq$v>__42E@=Jk1}GbKEqAR9%5OJ7Yo-sFwY|9H`hsOI6=U zFRjytPQKRtBy|>kiS6fYvoefh8O*x-!LhG8Sq++}*Q}BFvDA7JQ{~XJhr)q;(~rzu zOe+FR&;yWyQ}RbEyei*hXtL;i6*PptVn8I)dQTDHfm)5AvB>oHSX()57JK4>YS~X; zFY5>V#RrBMcikp+YNL$o!8}AtW#Eu50D*FU+*fZ+v7T|Ycb#8YD$=yPeJ6D4QtMx6CLH`l(&hh!CGZ9%_9wKB zsum=)Pwa`mM1AzJ;mN+uhvuk#n=&72Pds}*bn|2>E2YqS+%sqY=|5j`pIDxbNkLdY z8GGt(|7qkzu?BSGsh4F(t<(XBKNXQe9yJOm3~G|hCbGm23m2>f%k@a>UXmFUFBu)_ zWl42@T3|K%C1T8&7;*xsMa4$!x13WjcgHQVhUyEFfr}nya&OgHR`~9*@#4Sd$`Shc zUk0CA&){=~YgFv@MpaL%k1S`O91X8MjEBCvM=OK1d#={iMMZhlMD0#N8L{1iD^?zx z6%SQ1VxG3u-O}|ftb7yI;H9p^l$Ef!gOP&l8Ag~ROov5&Jk#v+TtZrOVp5om)s9l` zdTFe7JGJ%>e?sElZ*0YIy^=wfdjUIo%OO;Kv`= zXw&UqFEbW@)!+zpGI%28LTARKlocOTh6U=-^uUEw&NWQB|0Mn=0chOAHFmFB3R^uh zCFpc43gL(2zY-r{fj$MhmsTUBrq>?)?er<~Tf@mNr;8hYLnDr&O;C)P`3c*${NoAB zO4Df+^%S3?|D4sOG3yX3A#Z-e^sz!MVR&*F=OlG$k)~%c3`+(U5yNi!98yxU=1WRk zCjcbeY)NJj1K?JLI0f}f5DO({M{t5hyyqXNR&ne#FW{o=Yib^?RRQ83LRLg+&0U&~o#?m^TbLP8pzE3BjSt48lwYeUj3D&N`|)xD@m_9=ft?W*+%5y@3HHh0L=Vgi$Q`Cpc?-hR50dPoNPCQ)<(LS`EprD!cs8{JQBwC zQe!=3q)m!ZaXUvk7p-{3PF&A@-jC5q0BYUx=ox(EB#~u8H?3zC3T<6aW&z@;yDKJL zu_~kMIR)+iIU>`9rR$5CR}E4&Omg>)=-MBB8Q9}3Q&uk%;j;sAF}u*7kknE04)Fp1 zLHx|iL8iSKTqR>U^2wN}k=>jq>gh^@>en|njU^n5Uwn&Htr#=1OjClSJk(JA`Z-ta z*S|%Pn(A`9t8R8C7oc`A5%-@p)74m}gyQ)e)cGvB#TSb_2mBE6MGWI4D!kxJ(o6L8 zHe-r6B`XZy`aB`IXg<8FE0 zTn4{o0hTczTw$uT+qE~#4PwCqED z|5A4^RYt%Oi4ol|wpFJ4y@T%7(=NS7{N%vTtvVn7()}g;*t+9>wVf2-f$K?gd<2sC z(@}QT-Bkx>8V{a5L+R9=F||!*Wg*=a88KbK-wZ-!D|0a`?4j4SiCylktFNE;pQ`9z zFAQ9MsXU)`9N)t2+yz#lCdWRRRhZ@jP|C&KRbw7qK35~`(zJJ9napToluV)N8uBJ7 zBhVXd@O;rQC$ZDt3=+25f&l>Kzzv4cMl;m@5>U<~$@R0rp2JK34$IfA0<>)BqFnJ2 z!nvFU8cL-rV}+kqP92gx;&)8J|IxhwmD~SK>O6zyRwx!k>D84&o5-oq<}CPF7IIa2 zY8~^7xBu4r)O!|2T-lS^4Afr}+b4Wv?7#3$LC6mt`(f@Il>En6C%zW6;R(3NRGEF6_EFiKpHO!`ALKbr& zi@c`{mPUYDtS30HB)*G2l8uJA{zTkDL-}mv0$+W1iH}@7g??fJ&)^^!4TzI5FmPbn z+!~_OgkgLE`2cN04b z0wm@KMTNZvT`on`aNutjRCdV7i+HOGMgI`Z`@Af-HK*;imu7s;J^xOU#z``4^GsNnNi5pl$DrU+v0 zbW&c5Stm!OvKg8tNOpBC;8MXS)-$y~kWQXFQ9m!Ae%1Ci+m=5A`_HYAgH|-LR=C*? ztxAU4zf^3hfL8HguU4zCKreB3f^T&ln{63$JZ zM80E#&kJCx&6;IYq_w}+#F}(-7UC@c&Z3st9F(}vp+_&(R?jCYzDM@2fwR}@iXs`$ zPSckKNDuP_cQg1|O8g@N?Xe&%hn(hKZ+{!@FO`E}@e}&7{`XCwH%?a0iNFEUa&qB$ z`5a5t4P@q;PCHprPX=;LaP~C7wR1k~x?sTV9TP&_AJQKE80pP zxGoD()X>ra;G(pz_UdpM^b(iRg z%k|?zuFNOSQ?+^o;PY!4MF4nd)*Txg3DF6SMJc9p8Rs#Z{#6rsrrExgC(|%_Gczk< zz6G8y0K1;J-9HMuej1&e3b~=5HV1;N!-z$@k#SoS8AtZR(@h{xE*jtE^i6rto|rJt z^T7E-j>RX0k1JG2HCFH;MHC8~)7YkNaF}r-{XL9la`m5J{cDkX*)sa)j>7bGV2xN9 z<0|yZ&-O~i4y*nDY{vg%aU*7Dvg7Kh zVf2Fsp7BS%=D@FM*)I^zUBQ;ARv~UH-wYo@_MjpEHcDUL58arSoEHJ7o5anM<4%(i z{oRCdj&2PZQ3~sMhwbUZO5J5U+~+{**ghM}h~N3bmQdu+;JToma+Ryhc0Twefi_J( z&@vzPSF|rP3pV=;IU%^&jNY^Bhl6Hd5A>fRw#_q&hM2kJ1LBK^4o|s0Swmi*0M`i4 zihe+3rdUS!ShBG3&nY9$5UGqcU&%=C93I5w0+h|kOve_K5TI;HnE#4xfOasGYy0cp zlsr@0hI$46?xQy-ig!}vukhQUKLaoGVE=xexQ&>6+5FF(?lmuF$8Rc%d$MFhx%)hglNyn#RSr7t%%k97YtJMuv`v4Bg2BPh|P@ue6vu=5?W=9cx|sW)giOU`d(b(k$45h=lSKqJs_2 z#38CXK*=4KQuP2l}Zz{~xG-P=?{CW*|`roep zrcuy3qf-EW%#)&KAoHc5y#(Y|0H>OITYd>qK)#si`Gie4G;M+e6u>o?10-`1yftva zJc)yb7Vu9Nb8PIvicwbjdC5W7hG2dnS3|TFuCrlR8(_Kyip^yG>jG$Z*$W9c?E7!` zks0U@<;fFXFHioBzU!ZTbL3d_^_X$V&UMbQHZp9SBK^S{HF6J{u{LQi1Wm_=Jhnq+ z&G!_gAeemkpZQqPI#`c;TwJv!B`S_dhM)9BT$+c@5j36a5z0ew)n`r)q@hKD@Lz|* zcg-9sOyK>e4*$wHu#>9ZA|g;Q7o-cot57#+B4WHxeNn)$TjXS9A)ir3oQhy_iEy3G zJ(&WSy7-f#YcTM?33)v5JNjrF?@7-Zql*uIOh$ryu`kgO0vC>{K&1J?j6$^b-hcA) zExwx^pwJ=QUm;wOkn3xa17Bcgsd-QLL&OLIhp~R|@S19)Hl)O$;w9vkAX+t=8z^r`j=|jPp-4qV?IT_g} z0!a=5QV2*=f%hsw$H!=cEbMfgCmRa*$V zN;z?=5_S#!;%YhUCQ09-?LdcueHl2O%a>7$W{l^Bzgc#Q`C39tCx4(43u++c&5Wd517o9oL$8Cv5e`|_0kN0l~VRUEEv z`c6$3p3XsR`gglwbeIV`qgF!^_0oHdq%3YS+t%*&xRpMehXa0Oj5%kX>4kCyV?sth znPZbbtZ>?KA!F+5r9yq**{T~@ecwPB#mn|41xER6Q?(v`;UlSrYH)?KxcGRd?)y%E zX@|^qQCI6Ri#b$JD<*&T+XfbL2fOkGgSxY8h)fevdxJ%`^C0L zYYaf%FYc1BMZ_fB$f3r@=s+0+g!t1ld@Q(tZ6=-CWfyj1SpZGveB2m_6DP|B%ip=Q7ry57v-ZwIO*~KKf!3gzsbGeVP{3q%s8(fTL~{z{ocu( zS&B9&#{Ms{bfa<=WtH$srZ|_TQ+6xv4SS%kp-{>4nBMWXugZn>(WFtlp8i%*Xm`Sk zGL=DdcVVObI7Kl(_1SD!{0od~{$^{a<>B&gVG}@oX-(IQ^MwB;L9deQJ-D`(aTVA7 zT7tVGy7Hgj2ucXLZhO?D;#G&Rk*(Sz;N|qS12q=06BT)%w8>ebLomV2dgNHC)`6z5 zR~ttkR$CrldGqSWF#*@5MElU}&)Dhf0k@;;(%*f4`D^1*QyuEv*NodcUx$K@U$&e7 zy{uU8g4Dm9_KOlU)DRfKcH;TTpu=Z3H-jj- zbqK4OsG)0CQUAX3x^ngt_rslxRY@(mn9lW)lI2scA7F@xUb=E(%t2?&{CxI@+P&!X z>zBd;O^>OaA1xOzA;wg@Dj$}y8QDjjkffn}*rFe*z14A}N`JS@8_;K`mT9O=*?U9| zJHs)GO&u1(t0#6JR?i$RC7U|eqTMhjO1ul#qetYBwI-u@L^ViB`RFTRwMxy@&Vw_t z-r92ZQkPQ3nd%|caxO{LWy(pdZ*rv$JDD|28sBW2y@db0x?GjiTDOco{PUi8P3Zhu zr1X(a#|~*ns*Rs=RsX_}MraIUMb3ShH&K27>(eM@r?jbG;iJCqy^N3gA-G@9V%$~P z;E?J`nNEokndzY&Ibj*u0;<(^!1m*?^eD~pZ|byP(7BT@LQlU<&5Ss5s{3r5gWSRQ zTT@`Qv$b_PYG+TGzE_lxOxC{ha(N1f4sq(!l1j~mr4QJNfmQn$b zFe?|grb&T;d8JgSh<1o7)I#qf`lj;OcG%OH@=M~cTT-%=3+p~$cv;QVr=L8B_ z^|i6R;3UI+UE2aHSMXt}i(H|Oe8%jMNUpwR<&9BVHVv&u7aC4&3H$$2$_?MfmX+^r z3f%TZmqMcw0E%@pz>N)D3F)V(oM6q>*vzr;*xylAzs4!6v~}i@>0GsC1*R2nof$;X z&{p*=%l<x=lgKaFJj} zWkHnb^FyEk(;}q06VBwR>%-=w8j@CkV~>TWmOx)uE>_dsq_EmB#vK`g5o6*dC2f}H z!Cs9;$|EEfOzl8X5++air5MnFy)JXu*-3I-;3tuc>-WbDDZh@XS8L@q)?`efg7cNE zla`sJ=49#OG@z>7I^=fnq7S_$QpNZ^%-d16B+*CM0OF+Ij!BZK-(4Nn!QW{iCJjp0 zks5WCV%`p$x@hl)oUrRH9i}CK~+OGlOvTgDhcQOicl989u1c7 zAbvsX8=uTD$Usx8!mK6vbLe5i#sy&|FwPEQ!E`vc;ti|(qWtp>&2%vP$%S(oy=G=K z!?@H2Nqr5i#~g73e+9yEtcGmqHr*~c0*=Q-$Q9Qy3=!GHrT~A5^Msn&j5erq@X$Ut zGlm*)AwSB_MLutJxMpj(C~V#leUlC8S8rq1oN4fS#orxzbw;v`roSlF-sj;XKTvra zU2J^C$wl9vD;LzWD9f8!S~7XBCw+~+hikT9-LESzAT~mJud2#Bd&#V)_XEa=+9{<) z8Bx!MEh`#Y-S&OSe%U)Gt~T+sE^%w3Bn`VLKP#NLMK(Qp?n{#V`57gA*;Jmp#pJC{ zVRf%IqL8TDp!%D|#NW$?*`+Ni*b7x5iyRJBW(k!q09nsyLEI=rho5kun(x3q-(Wm>EO$=i0d7kWM#Y3&kydv*rtD$Zr@!Qmdr?!2|eFQ=h-{5D(tOiF(5RBetcmz~%^9GQFTc&04;_Ds7LB zJ*a5EsDd{{`~m%yv#t|Y;VJImqV%=25u@V3-ltuse^OtRAJTjOMsd=rH}ApO8;+88 zV??VRft%?z-~KoO&~oSc+kLETvs+pKsmC0!{i0-X0&P*^l8LyraL@oAuk8G?k2{+h z4k6t;<&Z^CG%I{OyW{myDZ9tef}dUJ8DIG9J&TBqK4^~5io~c^+`?@UQjcS7C5_`O zt(UPK2bNZqI&Lv6Gii{}D?2iMbH|N#pZ@+FOL`!8MDvu*N_>9(35~0~ta15X$zq}* zJLKC9I?k-Lq9JBTu_7z?cAaxk7)f1fhEV3!zK*bgi5hP z1_Sc_8z=miIIx0%`L>pfgDx94X5HElQUTWAFuH^4=ML0vF24Sd`S1Pz{!Wh--+Fw> zaNp&Ol6${4PX+eBt$6QP5KJa2_x2D|c0=k(KL?ecW{qer;*QoR_tls85>1#H+r0?_ zm^<01VlNsE1#7~};#S2A27uR<84h^M*}b-QBI40iQt=R=LmK@Ugc&st^u%g=cSsR} z=^}Sa$)R`Cq=XPJpl7dzOVuvBNRfHmWRH0n$YG38&SUh)gMRSnP&1A_Z*Yq_p#Ffz}+O}9--L-t&#X>f2sc6@&yM7E0p z@8jIbfmaF^fP;MCjcuBG;+I2;C+W_Ane)g^m^~h^^?oRJG#^T1*!Y=>ZgFODbjDz0@o&v_M_P zs$h!X<2`p3`%3N6gE!j5gJ*J`dsHPBXx>;>nyr*Bup&F1-o3!kXoEh01N~+?;`nrD zJiTTDVrEB6Rb*9_(;ZmAM&2bW8o-4Iy2cXM6$KsJi%!zLlenKT`;nli5MRdkjf;GsSINNX!G@V=?dH5 zoiOPkC9EYl{P3Z!FhtewzIpKYLfn=p4PC&8J7 z(JR4{&Q#Z!R2vsQE^Y?oNEI&=Ej?6Ke~`lvf_Lr|&~e~{aQvvdLaXdR?g{4y@iW)` z2#lO8P*XD-*j^^YD{q9B?p4@RhGRO7<+=+THbqE*@s`KebadL>9Ja-8=+!5%Kuioo zVv6RAg+%;j6f|Bvw$^mqMvA&7-fjR4#_I`LO=pww!m*q7?!eG0#&Ht}N38rtGJ~{M z9*X8P?5AysSipKg|KW+#<+Qz6&-(S$so53_=8w_P%y~$Dfu7P z#L6@4`*?ik>cr;)+5OZWUR8f*>VCOIANg}WhdwfAnhlO6@0#^Z-_TjAn@cx4$5zSY zFe5m?%5+Ac0x)x4<&3V41NO>}ALs_x!)#vz>R<3>}oywnn%M)%NM#?&DF>#}&kFL$LDI&qDL z8H6V2cCA#=&3;`c@tznBKH19xhE?&u+W|dH&}d2U34ZS0tOM8h*GO!D58sr`p}A3k zXbpORt^prS?S^@8FOZraHP#ss{OoAVGq<$7ozDPDRcGp-+)X{k1=^FY z4s^R;{XXgGeKQJhMevDv=tjHxVLXk5?&|tHpxq`JQZ=23maG-I74ga&%d=eDBZ z9(tfu*#ciO{mJ`^2UBnSw*}edZPKA2M~}uFgPz!ZhxjB!XYC=&!;x05BWH}{B3{*9 z`f;Ogv1e}cZMK(E&o~IrViw(Cno9d_)X}_W>R!!*UFLHG$=Y}g@$|9avRG0eR&^kB zFU%AyWNW?B2K+d{2tmnT5pliy^eA&+#Eg3~mTq4KeEzAJ!~^|RVN$m}>z9hd=5y_} znvUFi9=57HHrJX<)bnq%6HnHZl0y47wBTjHaJ zhTIILcZR)WlXPLcFH-9U_*gJ#=kEKoHI=h`kUhG!>NCx6wfEjMGodH%j$ipo`V$fX5E2Js^*)qkoa$Uz57T zN#R%gXt5(L6sdf~jN%h-8L?v3L|1^`g(k3PdsMtse&0;n5Wjh}VmC}S&pRy_^?1c9 z4S+TiHWV?|!&v2cP2e_Ejc495D&r6vKv)Huw_V_Vx$<39(r!Dquq9ZnKj5*Cz-=2q z5wUobP*m|1U`X9(gx9HS#>V0uh@P^!2+0eC1_F_;ac&KR8IiQ}8! z9~+~Et}WRDm_9wZUh_)i`?<&QoD>q!)OR$NMJI_c;)DGt!^Yn&4Rh zI3){!(=t4W27b1TqoQp+DAK!=xe{gXkFBu|&xq%*0esd*cSIS&GOf6+xIe@aEW;$v z0Gw{z4-)_-bhJ@SK;W%?htR;I{DV@v|9EzN1iA2Oy{G19IzG#l)ZhOGa4KJS7Xh{I zlS*8rN!>0V`j$MBnfrqkU=@Gm)*Q%wEmvQPO;S*+-8rp)nqHm*ONOoSLCgr&zBxPT zBdfq)BW>rsD;%q6v2R;m$btlKE4-2mP*-awdQVJ9x(tbcrrd+9toI*WH}&5EuDGUN zJfB__RP?4=89l=RRGAI4=%Pz`Fr;iB$u2l8y2$7uE(TEHvQ zN`0DpR;4fJO}jq5n^MpfY&y=>XFm357Zgm0B8C+VVpUuUBbb^LVv2^&NlT=M%?#jT0$0_tTd~y=wXr=M2lnkcx(OBmL>W#nXbWIJB_S z8=4G!HIELfI`jj)X4b665pse}8R#UwU%;yu*LHpEkcrbFy}pH8}R$)8-|1@CoxL zcAIa6dBMMAQuwY-HIMcRyRNxS(LUc8QEhrj_XNrwxRv_=*G=|A8t0FlKsoIHyYT>b zr_;Xx*KIOQHlr%|P6qWW_`Xc+H>2t19-Ze0Ri#g-_!~0}H;O!w@1?++ zcb6Lr)Jy*WE6C1@T}8&Fly({7qMht>|A3<%MS-u<8c3>#v$e)GA439Pm}ktJLaUPo zwd4<-TF~;b9=o^r@?iA2jsmr;o}A#=d|k0uk$i~RD?>q=FxtrEOZgF(*yiIZtQj$6 zY?p5Pg}9oSvOHXA#$sMV{fyN_>ec2&4}(cDFx+sWTdY?9*`<_;Z(u@S1dSQNEv#;6s(y-;lL#OxEzcjt|W<7}eZf%2! zy{&oT;2svn31Px7v>khHaTb7d;?ewe@QYQs4^;A|)xBD5#eLniYu0{^tFfZ4h3Yj4 zJ8Jv%#`^|qI&QW~y=m{f(VnmWLXL^iZ?d~scWUWUXub|7P5quOr!(jFk0(U6`#+!g z9l5{x4?qJigRY!xNh91`%a^gVqXHe?LtuvD=()f1o*^FNHaraeg?*$nwO5i}@F0@i97z3#YwZjE?$r}@D@ zV&Wy>1;9n|CAWR2)}d?}4XKrwcfYgNb&yU(>F(wSc|Fz=cC`@}qoiST&+efF>>!G_ z_U4UXTH}OpO#1HYQB&O|P+108w+qtv%y;mu=z`l1k8DbYRDF239uKi5_ zaeF?3JkD_r<>%!0A8Ii)vZTeRGuZ?Y4TVIYEAAUQFU;9rGqXqIVNN@E2Un>)&TOEdC|${A9*i|Zd6=> z5PGAACPKulcsVMD;qdt2AFBo;cMxRzRZ-pvpr`7Vu3%f&*)!C0QDKh2&{oYx{rgBm zHQfYg+=4>}#|&bgPrKp2aiBUXM5$SUo5Nxo+x?59tgtWH)Rvp4G6AeRM;VD>59B$^ z0F+;hv5Zze79@J+7V=|4t@_)T4j7*DgW%Utc>ZnyUQ?|8waKWa_LN34zOgWQ`j#en zpi5OkLQ_x$QseuK6lYpU^$8f(RivjKUKIoMi8r zg4%{##^)2-PYs2GI!&%G1yqU2;%~{F8hxL)GSekJw)cgORrb9V6|2dRIkSs*za0Hz z7^l*(_xycdY8 zC5*L4G&i{|iMW|f^q3uIzr3$=+0vS`m>-o&OgRT(O54CB9M&Xt_S-!>|Id0M;S26+ zfTssW!thz|J=|g?^CS} zw~TY`metj4#$y#ZVJp6bID7WKv9Rc|!CX~IsiuL!aMO~8p5Mi?7o?(+wF!N{qdb_?_((N8}&Bb z!;qhfImxfp>Tfz4xQa=1OS&p8mVHHdhf4Bz3~TJYqT|jHC!DTz>7yOx75M$Sb;XM6&{A00$`=(JcZ-0lO~-_k;V<`5)dlrRPC7g3!Uc0rV?USrLN5l6L* zL1X`^J#P?})FF?f0PDuXY5}>{ngIQt!(ZA;F(Ns-Glz}e_`{}N<7s&+DgbMir#8?@ zv)MI{>ZFNv(l(sbzb95^<2$hK+Q}abSs(4}snn_){FXYH9JBw(Ik+xOOqYVubw0SE z`9xGdc&~*bC z-!Cy=b7al4abLtN^9~4)=hOu`mOT*FF&208GFDUUvDc6RCMWOF@D-OF4Y_XiXdPJ1K@vbkfTpzNrMDwp4-(;m-wmW;C`TdB~dm5+^g{O9;L# zI*8hlQ48~a&zXG{hO-tzd0me%0jdh>5qorn>YbDN&m7MYx>`j}Ie8ezaeA9vVM!js zsLM(uI^iA;GC)M8D8RpY5SNe85#GsM;K_ zzZzI2=A<3ig=!4^xq9>~U=L4>@LVYO<^CQ6?6Ux<`sb8W5GG@_v}u4UWKj6SzHW-z z^Qvt)o>+|29xBoDVUBv(&_$DQ4F0kebyoGE)8kgo1kcmhUx zHD}EopxiI21I*EM26TTF)yEJ)N=~|XqT9h-bMlb7rpN3&Tl)*dWH+^n{7cC!HP>4= z$H-se`&Tj5wTfjgz#dH}HA5$%O{bNWqX)^sI!_)9@J+683fdH>2EXfU9Q?FA6Iwag zlTpx%K5!V6l{(yT&YEl4+Q1J63Id67H2zCA#C@o7*xQEu2#?9f zj^(_I6-()DvR+%bEn4R4RCTZr@P;HNn;ivBCAtnd;`6r3RZ2K!!4pX>%+mK8$E5Y|jpU z{BaEDoTEh%)1o*DFBYz6@L;Lz&!W{p)iCW#y2l%H%D97_6;21Yp6i}Fq9=(8&3_uw zRJ@)xSSs_pVF41k7Qb*qo7r!asFR*d=eU}WW1EY?&Two*wLHwl7qWOkj zTw{+8{ZCvIJcxd?%fNukACMc*aoywf9BrkYyCN+}W*bX~Eb-QV83ne*e2*VIPjdGH zb+`4f0^>;mD`B^>+#$zQt_cZ@JPz)FffgW5b}Lk5gYU-DES8}dqB)Z6p?ktuXE^^HKp%K1P<7ZMQ<|ij~0ePt>b+OqF z&b4DdeO)tTls0{TN`pp_J}C~h=1x*8hEWx*)Ny`%|bjEFBt7M?2{~pVAFh%8<5yXn%ug#C+TJ zYhYhOwCghvA-`bc4c7CS#PQI5QZRjkobF~xhv8vehYHetxR-CoYFvZXP@+} z5*N}ib_@g$;jdYwliT`!aeOaf>An1ooxvE*J-5J(M~}?2PWeMkf}eA;rQ6CSMr_)8 zO&tP;?w<;AUZggspIZb-ZEK9C_~2GcsU0B7UsoCxAvJ4jy_#-fJ~C}x!(H2jHCrwE z)DxP?Pu$NhJK%9_1yWX)qH;jKXOsi7aoI;eeI`6e{I<4(g1Uom7>tlG>m>H#qZ5y)hK zz9X3U2MEv~B2ICg$YAGW3ha+kt$38e(a1Z+vs$FCyVY&i1E=N%JfBG}!n8g5y_1xRK?z~=8#TkFp2bcZNYD3E3#^Ah zFai*lPsI&pc^|Md?*yQOfm+E_d^6Q>_;aom2tLe4_kY%C<``NwUb@CL`t#YrroeQL zx-N#5+g{?C4K`vI%V#PL#vl(VLvCAioU%c4p}Reb_aBHUl*tGeL!?*2d60xa*3`$x zaC?_oE@6yATsesgDfr*+^NT&c{x0X7hC#A+Zp!n$Bm+=PY=LY1kSlUv}4@A^-DX%Atw{%BX zx6c?}YByiYX1+Rj^utwK#V&O=<%0L(c5KLo@kExmt~ z>j!chYj&J2xT?1&`z{CSBGKk?;y!S!9-r7U#KwiN>tghC^mUNa0%+H;R{ z-&0-r@(_5#FRGCUYVwH-`Fqy@L7PXO@BTwING|c|la30I(FP!U5BepiJ^PTYz^^L&)!vqEk=8RUTkFFIuDi!ms-$~CN?#bqo5+XAAQnOSqtCgaQjG2$O zYU3NYaf(lhZ3y-Jo!lIN!@!jL9-Rp5<%2zwzk1f)`$q1$jY%Q9!Fk$n6I?lY0c+98 z?Omi~!zom6p8=e+~HBTCUG6(V{K=tx;(13FIA%%Xh;Bs=4TO`CE7}|B~_x`le=e< zYmf|p22-lkwYy1l3tuIO?Wg`%a-kimdvljiOg5X_)-VcUc~o9PDE~y?$^S_;SQh!T zw@uXO)hsidZHJN!`ivkT8+?V!EJ$hYRWJ8eNwH~L4qBryBYb$x4e z!|r6RwJh(&hrchrZ~W&{^KUV@fXq-Nm~sj0c0k91#hgG{RAQWSHE?Y zV3YHvcBkm~5z|3uf_rzr-feCp>XA#!q#;N*+IA;+S-oAUr zx1_2QkThQBdRS|3++}5>f6i~M^!RK0-#xl~SbLw6OZfTi>u>E0mSo>|P5Wl`(>L?h z-i$Xrj&1SIt^P27W9Nz0!HMsmS8bL*Jm}juYB^uE@xK@A4;?hw%sacQ!Ta#34>`Y_ z_cXd~|0kAEiG3ZQ>s5Xrr|Ax|unZQ{6Xi)iR@Ij-W3{I$G|Z5A%ar$)pGWrU_4=eV zW-MTvLxo!&_J8$iOAJ0~zx_^gSHZjb)wlze@d@d#QC`1dUpJ&zc|xJi^)gVYWu1Vo zUNy)ms`HAMa}h{uv7o}+(yFLwcXl|W3LWfH3HAhWUN`J*sobIN`Dv_Of1fyfv4Xz4 z;f{VX3&_*j*|@og5xznu)$J5l`fJgD4ZP7yyRu;3y#CLRVeP%y^w$;p2-s26xX+fB z4e6cZPz@h6@xEC-I&(xbhH3S>nrYwV+Yu49YscA5ytvo+$l!OwHIemkNb8>FiEis& zZ)#LcXv=3FF2t!Jxhf3ywB|wR`oH*Drk`Q$Y=k0Yy{p~OxBC{S4{IGRZ;3T-s%@Dd zH|@L_xAW;SZ|rz`<1SYCu)*OKt28}tB~_xoozMj?v3rA? z#>5W@&9(4G8Gx;Tcg4de_qH{RcsX2`n;@N+$UG%oDtvvyxxW5tnd1_nO>6hSyLP_U z6eg+MaZKcZdxyO^ROoPBW`c5BngiGFy!AT8;2bIeOorebW-4b;L0tX?_dp^{s`I|x|_n^Xn3eqLK_hY zp1hiro@+%-d!?1HPDGZ^E7Pycl2<_r@@Stj@0)z+jsC85Dv9r_#UbIsqe>R$yR(#$gM^aHY9xOsjrW={$u!U zZpY~(IY(l4xH`r!G;DmFm%n}L(TJ0>UiWtQ*REdt1<+!jUOnQ*%H&(>tnOI7E&RODIlEYPy7;1h5 znP#{qK)jpl!C14TTB&nTX9eK+9(uuu(F-}u9sUYR&YdP^toA1fXzGM|3J6Q)pvfS$ zVuHZEWucS~IHMar1FKym6h|AF`d(xDny2B_$R(y)`5q8usY@-@au`#VF-&rzS_WMP zX|{-J%&k}9r^;zz=h-8Kt(=XmQEFC2SU;=!EM$PApVf&xQjD*oX1Di*O=p>}dFtbU zu%p--A^x>xfR*;scLmYkQiIRGuhcsn`^M=4ep^cJV(DWaP{fMy{JPQCHk^KW~*CtU-vZO(G015_gi4BAMC!6z9fjYMUMdbJu z{CMmO8*CfoBbtc#c4!11w8S<0V~(^*TR7NXS*Bx8L`CYH_E3?8SxaB4t&b`|6*GBn zExDVYdlXsYp8!tBP?6T60+R#2eo>g0AUs@7n zR48Pr20Lmzo6z$u_&QN+X&tbc?a%lNv_7y9?Ey{-i6g zeS#vlR4O8^KP!5C4s6rLsbu(mFz{MeU^wU6A1weN!T=UJ)1qUsD`V?(a)ESXFBSSM zcm2Q^o$|lOkb^I1LDwk|R2A8n3>T@#f3YA%FkwHlf#?(w*bLKH<}*O?QFYyHXyRoU zOX@^?c_Ph^bd)0PvbV(z08y?$6P@#fd>TfI;ggTiFwA3)A>f1ahayvc;&7HqMX#F$ zwarbq>Tx8_$xC<)Imc32C!?w*QjSqYo%%DKegqE+M`xG~@;ndT_ZaLNt1O4JdWX&9 zhzP2;8LqO}H_n*T!K`Vu=q(CC!I+nFUgBV==@ul0|*eVWual-1SswI1u|7Z&f?Mc1y*C~Em$sh;&r zh`YD)mRJld|FrEA=4Pys?Hd`_EH%MrrAOYR=NQambethpT=v3ej8htXO z=*aa(?b4OUT4F28deNBvC>w&DAb)V+QE&3cPTo}jwtr!b`J7^G)>QtINS_|HPKGYR zj%0jDlOuL;d57c+3@tqtiqz|hI4sUF_ce25D0%+(flQ4gN+N_T0;(M#@XFO(wM`%S z8pa8frb7apo|;MInX9g{1#k-A0|QG_30P{?lPHdk7=07L{iC>9{$~Tt2^ukhE}QZD zwnA-Kj;~`W)8?I`0HN5RDm)32F^ZGrce zz{VFEAD;iQyg7>YJX(BCbJgR)iHU$GI-TM>Y2Ne-k6@6lBHI_aja+EFMmWP8D|G9m zqP*sGMuIS|-~H(?5N>mCoTZ95iPv#9&sm99I+ggt(GOmjzKRn|>b+Qf~Fc=Ko~cIq!Lo35kV z%aovM_$$Z+P$K2f?vpaFRX^&!b1B25;2L*WqB>1T&Tf zoWg45(s(!)Q%S8FHA_5e%S?FCsb?A?)8m#=eH}4l($_4iW;$pJc`mdOWR0BMuT>}_ zwMPt^;H-&vYiuJMr$G)Furm`32A}+t7Lztk7EJfs+c+j$IkJyAf0h`Ki90GJ81Dq5 zHHq^CQEkpozY2&81;CWuwiy6Kn(Fobg=TXWEL9B4VynGp;U*v|VRC4l96>vNOOWsr zo&cRtiiKgb{qI;N3D7zL3cz5I;rpt9UuwkOgY1E2md2a&dbvc5mNj}_y&8h=aPQWaHt$3 zj)6^rrW?laLAc>#4Z{nej;!`t|BPtN(0jd*{%rwu*-+ysGWJnQY+{1ZH=)u>H2y=- zIFJxepsFaF5TU+WSwlBhKEbT*v3yRc4+j$`hPSd&&0-%ffBkX^<~$!A_?gQR?os3? zV3!1m6(Ou;!EK(I%A|b$mK<%6_UTEA@-vBVph$xG$7W&tlo%l{@mZ#8&Qv^&m;a+s zK@gG=Ukfmu0Z4o>yaIsTCuH*_n(qm)-GGr&F}wwgD_zikat7n$h^S*Bn#HCc*(q~( zw8=zhBFkhiK>%sLaft*!Tf!8tjqBODXQ-7kHr^`10Pi#X~+)L!Bk|Kb?0B`DMzi%x?2pltTgS+Nq` z&=eJF!-b%9ib^R9ULikHAvw+zVq7BNt#XwQ0(=!!pTF>HNHD5lG1h!DpSp z1ic@}o;^aW(_6-*OZ2k4HQxhZ=>k|O8RiAi2urlC6x*E|L1;(}YwgRuYMnc$qL^Ph~Iz*q8KzoSjM7egU0-SFaJkRV`FD}tbyQ5~yLY@bp&QfNhgoiCTYAnLS0l|ox(BrH` z={iEQ04f<`*qGDD7OEyZbXzm!zcqqS7aUhpRx~xV%>!620BVK`po&r9Glce>>Ek6i zboni8nU1rq3iu^QUw`P+_Yog)XTf$D(dgv+RZMQrQa*#o)Z+X%EREKOr$d4He2V{G z!N_O8cdcyetpY?d0GWrUc~QME)m!S=@CaL#mI7>z!!mptQ7`bmGBhICttV?!$8a?6h{))mZWznG<)C0AF!kFYnSzSg<$hr`_|3mT4sHbQ+c0HV9^r<;XOggAqzu0O%C)Je86f6u5oTb%M zUNp+BzOr!T3;LZ4T0Iz88wGWRf@*Q1I)XG=v+!)f?|hf7dtsOeF|=8rc2dsu73!2H z`Mwt`Lnb#1Pvp;}JV` z_Spi>H05A!53NYb<$(lk5T|kX1ysw7hOKk~k3^mYz)RWd=JwE9bdX~WsAWIw6EmWL zJNhQ2?DDRkgFm1tcNrg(uq1yixKK?tu;rte{5DtfI6*~`E{1)s%lSgT0~bOP2}miQ zQ)GQKI|*mofT$9rAJd8bVoFpH1eRl{MoN}@;082jOQTcPTY>s)?DlLWy{d-fQB=$$ zlzDKQE`}CJsGg^_7{|eW7S}v}eBwYNewk#U)qy3+j&{A&{}5#@ox0#8bahSWD^1^- z@P+Lzv0^vWe~G*BU2od{M}1hqa$TL#cSlI(F^`aQo0f@2_=H0zh}asUkvR*F*Zx_) z0CToQoMoR52>+Cb){40g%T^*eUo<1KFi`-Q9tl2Gtx@0Z`|cR(A^^^1uQL*AGh9w> zr66`cE?S~sZ9!ZEcUArC?7?GklMhjpVuhOZbvn*Jd(%Ci&;;Kd%V+3%+cz(*ne(*Z zKnO_;UT59(J~f3{bHdkG zA%G~LNG{92aJPe5rOp53>VfC6J{-j__Ri6(8e^52feH9eZQ~Qyd(`Kqrj|vvM7 zPVk=nhPUpMOyMwWy#rqbkQ$bc(!)ulKtB_(-T&!$5iv;O-S=a7ODd*F%}r7xjr@kE z39-XbLm#dV1$?Or+?itbTI43g!smvGR1Kqq^IKlBKa8DcAGq`M`SX7bqkU!3XwA`+ zF%ZO-==^5x=}X2d34I5JdTj}mN&@nzSOsJVeKURcD*=|lR>_r90m6r|Wk>n)xz7k6 zvyVD>B2-Z&Mzm6pv>NqP;nYttq>+L=3Q*y_!elQ@^sc~je;3u6-T0J`p!guCzdpPn z(eVNLukVDXUsf|uknN#D;^c6WTi}_eZF>_mpV#j+G1RT&Z4YLHrU(z**Z=Hq(8GF&$eru&QIoET^cqYSTrW{FoJCP--2`uO`ncX)7$k$c+ z=HA4D{z{IG;i`R$Fh29Iq>XHu+a$WsSYLZodylQ+{eK z=-)NykZ3j7`Tdaw_gJID?a{^6n_y0kf#9?U9Z()y1$;_fuxI-lHYh`^a#X(Q_7#PG z1`ry{M#BQHIZ|7v$O3El&E+9s4iFPcKr0m{y^EME&feXemP7!2_$?K~*^K!(eO#VC zVn7Rie%gz3kgoUO0|i_6xS0l+j| z>Md9HdiK5UFNw4WYjKJ$g>+rm?sv33qPqq$Yth>h3yqx`=zBHFHw|hDR$ROIda~Ym z&x@&Rm)_nJ(94WMuJ^xt&>4B|R*$-|&*8PDyG@(a|MfXK@blxIk8#`6kN*1nT)*YN z1GkS#4exT#+C6T;`WI_?p0Rk;zx&!UbB?;B6!X3_?^|M9E4to3bV62=UHD^F#E~aJ_v5fHSPio68EfD-vPAYThf%q0oV-2eZa@!%VQM%P<>nb1%Cf z*eYj`>8s`@6VMDRe@O4TT;|DW*zLLZA-L}iS;6kM)5$!IjU)~vqJsnub?ILdg3vpf zHSQZ6V9cQ0pDbg?{SA64Dug}?4rgq!9yo#lKjAR!9%ffhS?5G$D2PR_OHmBFnQVHM zp^b}Up}P08l_cY{IuDM!4U(iANfF^@NV8*updjnh`K{W~Jz`LhO=m_?9QgwAWd5)GJL>QBTT;-hnsWAI=Ycd;j5r7-o}}d}ARp zEbY?6x_kS6FMfHle)3zvmPZmm>v^vOy9h}o;)sa0@(sn_RRk}sk#{FT_(~J$Y6s89v z%o;mu-Y~d`7$9v22xUY-X&UGHiHO zj5gnxuIh))CbXj5Wn!*WH<`CEqW!%#LgaWtp~KM`P~I7Nq-pJ#88Nl=FVOYKu!tUl z6DMBrEHDcjHw3}ltL~S2i2=w!ORnmtGsW9-&*%*Rh7q<=IMZhxIQMgYjTPcEEx-T< zZO<5LP!4gT468M+jJP$PftNH((1C0?p$@E;JU~nLpOdJuS6tV5o6w$n_*?vcVF*ox zQ^Zu?CrZ@P;EbkKDo`6<4<&RS!-#VIJp|!pzRD}Mdcu^|wpEq5VNhmgMwDeRv8%6> zW+NQ%-Rk3BG8vv|*Eqv_YyZ92-?mkwyK$Hl^OfO!euUh+C#pAN<3vQ`=bFyocI!IvT>vh*KHWd)4rR@Sd?G6W{H0F$H7HRg zRO8S2xekP1aiLKUZ^;Gu!ilKVDdqIW6}lP4u{LxNq<)EC(-yT_!mQN>@bZdOLuWCy*|xd*@o)lLLQM5m;Zv%0`Q%oW!k&%f@Ix*&D!l`@8`oTVyGFfVCd~i)`b^#6 zLfZOo%bOQNf^t8P0no)Fo<&dQKWmx2cr809`6Zi55v*!UF)(tzWG0j)#oF)P<)AE5 zrZ9mjPU3R(5)m3ee&br1S1uTls*!)psb*15MP|d<&f^@l3_`()0g#^jFa#OTmlH{S zYVC|WjCc(bbDis`_X#}ve$FY1$FM9^XXt3AZ&|}LfQp-lgN{;&Rc_tY&{FE0IDza% zNt!ZMF1Ta&3!of63`Ez)R1wowuOu-OAr8e{ty}LPqVQI2lN4iYR4WOu^lZYYgx~=PSu;v%2_3=eI(^)YzwXdy$V zaMY!6GYc9c2kcgMn?qG!V^kXiAUq4~+IQ%@j5tO?Sge4&L||_Lc(KZd`U;sX0|gVv zEX>}442>_fAbWOxf*_O9|iRlUZ7+wdXbWM~ux%A^?9h*3`n z4$s>DDdHn`Tn-Q^ZOW>wZn9^SEIDNrUJIzGSkykT0`GLv^tlQzX2P*Q_RCWdtpsHB zeMIROL>g6*of970DdPT_JE8b-;!nN$sMAh|xt+7p%@;NF-BZ=S%F%c^WE+d8`cPSL zf=x#6N+7@zDZDTObX^8mbumm?#HJE5UO%wkv$K$qnz~%e+j{AM+CyeIrtpV3j3rW@ zsEfP~L1UR=K$@S|88_Dz(^dgmpNB97fK|C*cNu8umBq{oGMkbXPC2+S9Ii3rf@_2P z&?@=9n(kpjw_kybE<%5D!&=~__H4*HrimlPuvupGfQ8D-0G`uHC*c!8?eMQ(Q&-Y1oP^)J>(VHcDy!RFKy(v< z_g+n^lf{l!NMjg7MeEcI+rIOZ6TA71;%*5Fm|LaMv<42FcVnoVd$x5r53;rr(%(^{Gfy z)c$i!%bue+Q4G7}p|6uwbO=Y>S&;sssJwYpi7bRBh>T=Y6)UbK;8W@w^% znT2I$Kz9uksU)CZV9ZLH4h#{fG()?FfH(ne>?Yf+#%e`KHg%h9;s6mZbFJEGa4s3n z|RQ7W{)y#|&k`5#+!;z@n+}#K>ups@Z$Y z+I^_;BLs7Pue}TsCV;5>spKocL13u^S+R%kr7lla;zL9o-~(s0ogZ+b24$+x#HeHJ zUM4x|F%N%1Mx14$3guL$C^a6_PF%qCi&U&-kXUy6?xpix;`X~7_*W^`lz{BPAo|$H zFYseZ_G_=!Giv4V*K^wIHg1Z@)T$LB8sz&gm2?!c;pKn|A=9G>7ihl`(IgAtFKTtm zJ41i>GxaZ@%2cm;xbC}LfBb>ocYyj!F`6M-zm2_*77JSL#OGY1M5~CpQ}LB0tdWS96bbJN9S`X7S4VG2!WK* zP@n4bsM;yUCnDo?AmN;;A_Br-0>ylwr3l0joHm9bMr5k@33Yu>&i|)(pJS zO{HDBFf;0G&x^V(Q4@WO_@&LaugrIR&P9?Q zTebj@Cz+e-*1OTc?XgbiVc{*>)>Df(?i<(fYKL01U!rwSp5)-COEa+m;`T~%>_}VtQ;cYiH znG7-X=0ZY`3aaVCz&ht!dB&Z;Ev^yZ8?g{=l?_KQ8+|0Xni*hsOuBmp{&!5Iejxla zr#hAijr^jL8CBB1;`H7hW==pZ=%WOP#>I2U#(d-JvTO5*W84ZEjh8_p8Irc^r}yetzE$b1(=V*{ z58f&_8%*`F`V(?&-X5Wqd!)DraRtoY2nm#(J9v1&H4yA30Ml0>@1H>4PeB4R&h_tB zKnSK_XUs6g8@w0{2^LH{zr5Pi1PP#=`{(MONIZ0_=+tQ2!D|0q!`ZxleIbfvQzzW+ zGj%{+W$5GnO$01__cNS~jM^^)ZX`p3n1T%3`fN0qMusXQ>RuesWP*7g-~3fDI4}!- zb;WH=fGkSe_38=s;tHB>g2F*eL&YFI2E}2GpX{+bPiCLv-ztniM4#P%+_&@l9HMar zUdEodqKjz6*nIV9Za#zP3fR<}bxFvd+w6Nz%&xeLvt(Vn19cj zc+Tt3_SI!2Ee0?dPtq3RToZvs&dt^bUWueQL{}7>uB?IXM`<3y>?Qy|fIaBF-g3Z%q z7Wr*Qb+&x7%J?_iY2-Tia$M@QQ(#v)#Z3tQb`8?<7owPc1PK*PZ<{TkoWFWouW0EnbES4kG_f#p9r-j_3RNoIZ8@RXqHu z=pn(!XC`1hBI0fHCBx)6V-x;UCZ!l%JINQ zUVcH^c~pe+QwA4^XcH_*eU^t6UTdsV5;E|Cnc&;If+DxW`^w^g;!_qzrlV=Wl97Wn z`LO3osyA7{q)^`AWaV4W{d@+2=Mha0DZqXh0RO{$S7BU(|G9z2(^kT1jFsu~pQ|)k z&mGwPbzDeO(_+rm*ZPN{X97p!`OukP!VQ+>>%SoJKUxAQi{GpM3(YvHuYYL04B$-= z+_`g2?zYGA48$yY(SZrnkppd+upmM;lN^0brn-L(xt|Fnwm{V$M#4u`Z;=ssq8BeW zALeJg7{!FyQD9mDFdK^Ud$Lb1BSU(}17keeS;+0*Vk&D+G_euhLGX^MO9sVAy<+X8 z=bEomD+KwTwV34*#kUOO?_ESSJOy}cF4e4LI)oVv%-HqU>f`mi;0H#gtJCzQ1+#xX z3_JeW>rKvm`YMhp0EfRg@=ejT3;t`=UoQL7uo!ss<>|Vsrh8x7yntS_lX*oCgZAf# z8kvTw-L+od3%^$#OF6i69keHIxF{vWZoKfL6DFL0`ds^Zm3`1kl|zv$A`1-2(7?`~>uF3-1Wx&4q3HMnv9KC4F2V~GQ@~H!%DpyryvBiP=DpS~? zX3@XGu9(0&Wa$}BvU*C~zRnh!_Mm+efLg547Tm!UzOTu^b%r#$B($zARhn+ZT187! zt;PNohUP*acM?D=1m!$wQYwe++Vo$Q`PQO{o2VV*Sc^gwIOIKaf^WEv>pL&qVHt6nbrhMC^*sP@71_zWhV^o( zv#lK8UGl7O^8Ldt{TW&&-+M7u%pMx2YRANvR7{Y|85NjqqOnlWRFFv|8W!EXmj70E*eBEOKix;LQY3ML&yOR%}_zra4$x+FTUfaB6zb zFmKce>@rn%F14I${=w}ws~7d69>zaSzhQIbMrc`JAN@G$acGeJ6=QC_8q!`+Zx1IN zU6EY1I@=WLIX<{VLrJP|J)w8|`?DXuw|*{l{U}-idK(?BPh4l6*GYuwB-e9_+^+_< z7HT=IDASrI;Xs(ltu+&bS6t@n+ZoX85wV6}xJWrVzEbqO$YsG7m$N}as`A4oENUo1 z(1EXS$HZ|)wu8cS&1!<|5oY-CKuRVu{7sfy6S0J035!iqV0t&tShJFKj5I zl{yJ7R-J>JW(^QSq}MY{kS5t;;4zcdjM)ex+mZ%1s|V1-drRRqD%VRX*Ncg1beD3+ z7A-K^;dA0kk#AG%T8aHF0=66=zy@A^=(HcSgTTYoUJl;;pvKlV^zVYozamj++4Go( ziI?sEkqeIz2Fq!1`x_uoRLr%thz~+M}93XeRv1z%7A(FjF|G-KetJDwMMYrMuG?6OZPsuw(0dBQyX z1l~|c1V>RDo7mu|6_?!LqZJeDScs3j@~;sq-pTxS{+D|jHyru;c+)tPexg4RVN%Y( zA%54&E_9knQcVzUlRdyKcfu22aWm%b=-D~KRDdqkYA-Lk-1dOR9C$^&`|C}?z+Zui>ySk4 zmWwrUS&(wv(O_@9pVl-l(1UI@p{=8>KflaA7CG=No4ulITh!%TGoz;I@wOmwhorn_ z4|+14eZ6<=0(|EaYW&Mq7t3HM!VK`39hHd;OQzB6N}2R$t_tESjR>4wE5y&5hENx_ zZhv&nkF+lwwPh|*YyJkwE=3p+x5zzm8nVOE&oeNhu8L&OPHa7UmPe9Z*g_+bl*I3C{>af93m}@+Fy55rNs# zN@Wh$e1Birwj~qo0U6XjJrlJhjKxQ1578G)|&cK$6j4PdCRWZ%ltQHX4oo8m- zF3y`DTJW?iK+VYC4Bh!dL3U;0AJ_8>bm0d?yoW%H*GRinh6E9hseVRth8kz2pY~ZQ z^(??#mB;Kt^v~#phZcwaRSmGBE`T;?O%`l@K`5>{XRxacGj*94713(drQ0FD-}oG0 zA2-e+AG0dZw*{sI5ok?}odw#8ass{`Fk)uC5P3Ea&I2?PxBZ?PsD-ceL`RwdQ8EjIh9z6t!fKd|y>gpTW%uhRugafNonaiNc;ENEO9B$4QS8@YH!nUlw73HwF{Wu+ zWo74p0b05^A{bE$khrGUmqh5B4IWl%8CkCEEj1s?Ql*uON~mMq*iBELJic?_%Kix8%>zwGH&VD;*G$^2LaY!#(e{Bo&tiVP`wai_ zg^SG^*D?VdFQ6Wt-f!f=15nZtR~iEMrxi492zYHp6*eBNlHT5;cicX6svnyadH)4S zc(wWoS9^E`YCpDb*U;upZIy0%;{CnuZI$-t&L*7-LA<@k_J5o8^ne~86(>U-cYbF1 z_-T1W#Xe;_HD-3IaC?Y#L`~dNWP&+QKmW<*N5jXVl?N8}#@Nt`*kRKwyFHAy)JKf~ z5xu?Z2pw(ymv}^i&1pt>#c*gzHj{xPo_R25X0v`&KRw-p6csO;6*lz5t4xoPnS>E z$#3_rK&`e9v^Py<-#5go?Tjpv=B_X3ei2GVZRIzPwgIl$hQ9Sm!9RHJGxVjU>HS>_ zAGDVlcUUg_8h-N$4Pd*&f7_1pE=#jD2c{T}i@AMg^1&}VDozvv*sDwbo;aj>O}rMS z{s88y6C87E#`(1`5bi++X%TpSRjz(a9=;Otzc}Rrc3(WlqhE(?$ZOfehJKj0-kR%% zXu7dot|;6#M@jtx-Tmc;21$Z-p)x_<(n!hgUEDT`x5bdn=;S#`P_>Q=SMvriBguRB zjM;-jT2cVM1JM6ir`eFKryEhRp%3}v7t+x3ltB}g=;3skEi9AXc909mEWzEm;c@!b_IKj z8GK%3u(*s3!Qa1L04!v#m`0^S-|rG_5qEFplXrb6RDD{woxct)f@u_J8tld!#7M-GXY93yt?VgxJP6 zET{R{9^F`VeHqYH;B{HB@rsN??6fH1*2)lChI!5=dC+V$_`^O!H8!zja z??iws;9v_3D9p6SaOLKsF@vCYwVD$ZSKkS5%&Y$R0%|L6tS4?9SS`01(06`$DP+7h zCS1*O4xb;0n#(%j2nU<%CfS1*Y@36kCq-y*(bhFT)v0w!q{)jelb4baxIH#kXKb!CnksfJyB!PyIaz|8 zVnHN^3y{Vg*5`Uq^+fFIn#wb^`WGVSJKUXb)(;*Q+hge%P%i2Rh_q@+@8stf^_>krh=RzQTj`qCvnFCOSKnM$H(TJpHqg9 zlR zw3(c`HSUaSmA{fi)**P`&;grgob%)bo57Jo?1u31Qkz$bJNh0QmtWqD>H^g!x4t5; zZ*{yl$RpNeT{OwS?Sq&IPys*6>|aa>|H~y7r7`@@t)JLcYnRJ?oNDqO(|qDrzcdTv zNGO0EIdcWTwau-yAG>r0=lg(s*Wh~Rt#`ow`NlS7Go@fGMZ&pF4E7v4KJ9V)MRLE? zvBQys^N<)<=++J=;TsMK_2+4Tc6l1B9U zjgcCr#+@J=L9`7sz$FjmHqWW`)SGQ`>d|d{qS#YzxTK%hr9U+bs{V~O{_Juv4pl&_ z$o!?h_~Sl*s^+`NeG@>VBLVCLFBoJSj02Ds4-Ep>g>G+%Fw8>F>yFz-ah0x--|vB? z#^woP^U;eD37)}Audw3MzIcnE$ztrleAiw#V==r`Z&d<%Zdby*sU7D5x#~lXIJMzz2 z@XBnc*lU69$4VJn;+!HDj&HsUQV~3~mJ<_eEnb1_5UNg&TaYlPidRde$MeGLo-t0= z*w7`K8R#1h42=i0Qg(oAaI#2zKawhU$C{q>H%W*8kEipD zX7i8RcoGpw5PNGId+)7A5PQ_#G`89lMYT-`V$WJtwX3M2D2m43rHU%5F>4pqR#o$V zJkN{goZq?6eZKF0=iK+3>-t`w>&ZNOtJKUG-vmxs^j+bA#Huzrj+xBLIbSYymi|#X zqc^-+u!%;hBPDKrnMVY@>kc}K#i#lbQ|4b8qY7*n`JF;;WzFj%-il@oQDzJoy&Tk~ zpPXK%Tt~9H6QXgw=;D`6>F1TjwOnyQPL)9=10S<_Ufgtd)@I`O)j}{b65=E!2(Dtj zfU4^G!%;5iYFg3Sml_Vn7aaP79ADqcXyi>iY1M_-e&|Q-gPyC**2?7dH%YvUdL>i{ zS8Jwu<+hsPM*ID5)>$TyToZxn=&90DM%a`7<w8% zJ#gMs&cz&$3ddYWclERpK zr(fA_I}=aFuqg>C8s>c*&lz%pB;xxTjb#^=%hIHtaDY%Bo?W`6B&ZsMDsbqe<%yMn ztYN#W@UH$)!O*AXJ>JMPerm}V!VlMZ5Dzxr@AlYeA!j}sgi76wV& zFCP!6gmJD(AUFlP%ib^|Lta1o!3mPs1M(GLi2=BxrJ#Wi7|Y%L4%-UBoP8PY{N0fK zA||N=&Qv=fMUcQj|7u4|5yu;%W`b3ULJiqb-}<$d2jhPUuGL-|Qwz0gOrHS4o{oF$ z%`aZ}^+|pav)aymB7z#BazsowR?}OK>_m|Y_rD%5#|d_HF&IMiV-ifmZk_W7l@70E z9o{+jJaP#S+O<6u5b|a_4|#SxD9TX6!Ktwpm7eRD7HGKM`gCSDt(a}v`if2?x6467 zj`Y$Zxfg}fQ~U>j8D_9JfG^EBOmfI1BjYsP@XpvL;jj3ryChWlOPS-oqi;BG6S3WG z0g)U?%Re$P9K#{`$j;l z)Gkpq-cEpwOTj4Q*m0I9!q<#CNAkmI-7iDy3w1nnpVx+`Y4?A+C_@DGe|f%g5xSM4 zAZYKYA!%z@qHR*H2YbTY<;(5Qaaj)MGm~NGoq_yfoHHmNN|X}6z0R|xA+3{4}qAB~tNtMn2M7sb(I+g z@uXes@M>(ao2G#^)VDp(%WpgQMV8RS*VG0LLIMA_+$RVuJCD!zs-uA0pvLF}i0B_5 z$5_)5gO#(#zf)-r6jlHJ!I zY&CF`P#UO_l6IcnuX&vGh!R^4&A0FFixJ}{=(q}ZEn+~M{8~KQjBs)hyd6l8bnT86 zVHccam-QG1D@TR!kkK-XbgY-!S;nm5oJ#JUmRoRxbca^x8EBZAP13xIhJ%qZB^L)2 zWj&j%rY?|hvaDIj@k*h)fvWOd3;W?~SYlq$&E2w@oGWBrMlT`@t}(>J#zI_#A(I8t z;>_jRk5gD09NNP^cO{6iHNFYG+x)=zo}H9y&#%+Z#eK3VhF6iJ~ zW^*)0$f_~mkL>njvC`e6gFkXRGZi=9D(?*@6RQNC$~%CD6mkU{sx2id_(o{C6#Yia zcyxx-p#6N4g*=sd>0Ekg^bQqOTlBozg?_kxU1}>~$4J{u-mU8QrA~#to9hB;h0?;$ z)YgicD_O+Ii0zwAVY(BjCzh2R0bi@V*_?c3NRa{#;a5s2heDRtPT&v=2T&Mnfp&|< zSp!_bL@PE#M7gd$x0}qY8HEUoOSq9V15-RD&dc5C;Kim3z3MTRf)3@`r)%$q1rBRT zsrE77H?!VE2cl_!EPjH?z%_POMz9`-AfaMhv|&(oLZZD@fejNr_IN@v=5Rh$D*C5x z0j9F^k6=mYxQfuzh^1(u(&)Y9LTWu2Gr*pz+Q*IURtID#q^$oWIgW!EgSqvFT4dinY8okD32hYu-JJ1N@u?g$vc~*fW(GB8vl* zoHuK!efG`A$kF74f?g-^967RG>L<-23i z*m*Os`KsuW1BYfblm^<=)#>S8kG2Fi52P!f0l+4=0V0WZZpwZ5yP}HaHtZ(I(7`ZW z{*w|$bHl&9mL6%x$@xw(hQ<63t*TVKXk;{83=s((o~Mt0Zh-tyTU#k=h-d!FGEbSsrm^Po z>1!a*JiS(}#NfTpS|6@!344X>#@fnD-=?s|Sdb!IsAXKDoecyi>D7)&1I!a-I8E*J zRE_E(kvd|CK7lgT_=v!FbRHEW^f~Wi=a#$75Od%Ur8)-Nt1V%Z7Y}=9zs}I|faxze zd*f}Oax%k=CxR!^$NKh%e+Q(wL)A`o4TOfS)YeTfyFu3RnE2}%?No8({X1c!Z}3H_ zl0JK>z>)&boJ$!r1F%uY$U}ZOzE+5>Jkii|_ZP$XoK;$Xn|6SvU=@I&> zGwxEX{X@Vc99$OWYTC;?_Ea5r99xWjzqxh*pi(7a=*h#1+Y+_NHz30=>vt1+s;kVc zaP!t+HWuL-GhwZ)xb+zR>W@`uozo{@TOqnHpQ&u#)mSs=%(r=kbl@io?QmY(?b53f zKvVgrhmGG6U8m%q3JR3yBhfu1#v5J(LZqXBoF9DkM;Z+|EJ{c5fwMEQ4 ze${%FOK$2eAf_YN;Vyv4ekRBrOA8CbKWhSC+09#K8@r$QCJr_Vc<)^H?(xXWCBHs0$wWXZ|yBBqZ23L7Qbx6~;1 zh?w22vzl&2Y0g9!%##wp_tfD^l_ri0Xi9S%(JGix?Od4Pc8P#mf;uQi`=ASoFFPj| zScp4)`jtRo_n!1vrD;5TbsJBq@)14DyQor)&Xp>GXuWS`^FLr?iua|4YZ3cshdFW+ zQAgDA7UqT~;Y_7iGt}Bx^0Pg|+I>%ac-4e9^QDftP8(Rzt!croHHz~W(Fi(pmJSxY z+E2ugKmrmXx>CsH&+pr-TAuFc-J>Vcw}WBc6zxd4x@2#vQjQ3Mxw~iY*O4I6SQ+l!1j}BOjZ+gfn>map5@e zR14 z7xSb6bBt)(Y znn4*4==?h9Sy(yHPnSw&Gf#`hA%D`E(4Ou!>4SE!X6EaX6&i?h4otLb`~c`|MO-6a z+3&&EX!V?B=2{Ykr)i(f&x;c4$seXRKoOo@;7kI`1=qY8arFH|#nwkFOYlJkcRG)& zy6m^OK)cT62Eb>dz-(uUc)DyKqukqNV&3wv-+noI_`ArZDK9@(=`jW~MLz9$CulNs zv-<$I7F0!{{^;H#2!Gva_ghVEzNpmmry%MgN=S89deMIjg@S7f@85rjctrW`b`OuZ zaEI-C9=e)j9a79e1SdhTu6>k@iQVA^sK`(Qi6E93*hzM47E*bP&=@T-oqCgcQ2#}A zGWM(@MNI)>c279FQX<0lipd`;fBiILWQ4V_b@|IG7Glejx)Jk2ViWSrwfITF_m^C& zL62^(Y>+kBFe3t!;c_kxOiY2Rso^%qT6CPq^W~y9E|sl7k)n?!yf1AQBd$p_ba^+j zuA@<&8!E4b*Atq1(j6>RlbK3$@#mren~X9(TY`*LH>xlCFusKG!#jNrcMLXb8%Iq< zE6#j+zuCWC{o|2IE-j%b|MYq(N}JU=3osR!!0=s#9ql)qWJ>~F#iM^c4v0`G4c%uw z#(q+13T*NzV_Ddr{Y6H5kD^bjW5XV4UT#P|QtJWK`|Sr*1oiXI+yV33oWCXg1hj;I zyt{)6+8K6G(Y29rHIWD2F{Nao)%xtI^`@kdIqyBC-iJgUFh{KJjzS7OcoH3pvuZ;# ziUXhV3}Q^6dykz}fn!=UiDMl3ak^t{AzI7_v-b+A+=^B(JEcb|g9+T(diMF-2236n ztjzzgCmgz&{Adm|k6o-T+oUO6Q$^J`dMhh!MZ1=Yji&FKAujrCy$rvw-|TD~ zjxd^Zd`WrRkJ;Euz%f}F%7HFtPNZh@MSnRkicKR#UPBla4dGxA{Gb@P^KpJUklwXgyD)C5nDg4**N$Z5hE5 z-ZNwI`mx|ao21BdSkB@N22Uy>4P5UB$mhxTU&Co}wG*8rZW86nAs!T`ms#AGYk!xzArps4_L|WY|wuBj$OWw%K_kzbK&p?s2^={fE+l?9IoPpnur?B z7%Wu)Q8N;omCm!sz&4sjBY6<#nLk#LO@|@%ODI>Ng9Lpd1&b}Jg1p#C(qmY#RjPnv zM2LGXY49Ow;sGVV=8N4sw|V1sqs}sWk&O3r=h!t8HkdpSj8(}Keh!|`b7mI-02)!e54v6b1Np}8$xv#Xt;8>9Cqkz4{cqaUSouw`Y$ zqs^i07(Cx>I{YQQArj9B_(VD9!4BbvkOXeO=er$*h4E8e|+1C zNEvS7JwZ%xx{UMju1yT8HM8KS2M8^9PX+8zO9`Y(x{;s}OimFvic_jbQJ>69$A#Rp zG(HO^mn^Q#dD4-fOc@5B04uaJ*euo&nWytCUg@(Xj12ZBTAl`4?8T__iZ&CGNY=?r zHM0bp=Uc+iLy`QhJo{$mAvwS6?kd?{Yv$9tSqW8WJ<>gx*0Nv?;1qQ;4Ojthil(5hf?;)m52^{+;_O8O^M>Jpq21 zE}2dr2myZD%o^w!j(%a+Z=M}tpViEKo7sZOOZ`JLpk(a~n`)EK4rC4Mo)zE5iqLB9 ziI4o3#wg;DFs$%lQ9ARRg~;QW1o|nP1QCDd2WHW5r?|Yua#Jo^=;736Au zGGAMGG05cBm-JqgCCz~EDzdYNwcx=Fa;LxDBtt~pDs1dWhF%&iwN^N55R~(Qtu^{b z4rpC9a9)+OGY6~XB3{mIGLc4)l9wm?;d?zJrjF~nM;|_-*bNu8i`X8PcWsM!$kw1D zQ5+y)l&qlp1s_#7woG(~D-H$Sl;}-F#YF<#!=8Li`6@@(Ja70+44_dtCp24=6|0kQwB|3fh+*-^|GT|CVc~u zS;6a&SB|;{y0}Wzcy>n0y_fT*YJGQw=NV~UwwUdH3=(tF;$x|Kv3G~TH0oOdcm5AN zm0}LTD1)}W(bq3FaI)D|OW7oE%=Q|2uNu3)o1K2+qUO8Xa3E%NzZX$QweoWH= zkQ-hA>DC@S2p)C5B|g*Nr`QOflLi_?D0i^fYcsT@xp#g4Ul0ny?D?Pj=by*`;CGoD-%o%a#cNXB zNy;BB)Nrf;;s-8U?cqse%CFFM-5|*#-xDp1!xf_VDRCkt<39`BkMiUFCB)R~aP~Gf zgW(130f4!1G+~|)M49#N7ZJg2GYv;e)s+5LW&i$pMPB7YtRLE<_4?62lOO%iq(wZ_ zZ-BVZ;-0Y9{^H|QdxOMH*A-?o(}9KI)0f#rYma96h;>pNH)=V)9YVW9zrwevN}9Re zop200Y5x%9^W8y~rl}ho~LucWLwDt3)cE z3EH1aw+Pu8AF%IGD|%6$LVr&?ossnC+rpGtIfb?&Klo`^P|V#3ENp-6FfmBDHO7HP z(r9sJvAAPqDbj#!^~0f6b(<<4<>O|!PmsvJM__<<;{8iF-J+#TY4HD~aU~DS*^7Cw zK{DB}qOX>pS0LN%|8{$}UqaJ}%KL|y^+44(&3122R3}0;;cTMa+Kz*9PSgGQn;?y8 z1s7w#e^1A$hh{o1Ig>dkH=0USIX+;ClEJ5dusJ|Rh`BkSk3jS5<%M_Vdm*!6aB>Ot zfp!4>;r6suTnu&RKo{P8KN=9?3>$CWZVBGbZo+Al|T%vMj zgk3HGMlQs{@*?b>{p|f!d0q|@uX+8_ z-lU)+)wK-sgDYzsCD}Z6-#**`nQh`~ejt62DBxJ zZ;GC&AjjW)l3hp?hZYR;e~J^}xjSL9?aUs{EEUSq!hD;Z=e4ATfK)1>%&JWO5WKN_ zo6LLwNczn$QM$Pt)$mO*1wk*AEl9X?uT0O|ajoyYqj(@L#r6x=^kCWA@vI$~*VlVNc{w<={8asCzK+ z`!M`H&Z<6mR9jT=Z)lbhGz1{n)GyW=C)TQ6RH@RD^mh5hpJ!(g4+1?E6JM|f7^M8Z zr&PM#Y|tXQN?4P2Go7x|TUjY%Qne?K)Y15aGVam}PnS<3s91n{vV7XqyCTc(_OU+9 zmrlXn$Fw4jrcEMheYpfosrx^}B!^~qU0WKmNndxXnZ7hb&uXS{A464rmiltzJ+fT* zk8kHLKbxLoucJV`?AkZZv>dEDTa@0ypz)kl6s&m= z^!V1$J%G&%escH>l_}NzO$^m;A_CgS6oq5FwZcUI{vGAH`Q<6yJHKH&^Y}pjy0Q!B zB0Uq7PeQlB;+~62a*68vEh~@LcfYGXPH(;)=F~(d3acXCK*sTsaJ>9+H+FD#1%R2% zA3_)kMW~J{dk^eb*fOC=kJ}lsnS&8HswRc10~T>XY^uCcrilQuD=cwBa}Vt5XZ4+y;HY8$-ry1p=lI zfj<&zCZ#0aDo4+58e^q36%v7RA5)oxoJ*x0TJVOsf~H0Cfi2)MYBpAB&zY`>ddREW zJwb~^oOlwgYp3^&biPg!;<{SwIf-Y8+h|3#Pm2X*S)##b1ZK@%b8L?ygUpR{&8AWq z_(7S{GSOkMD_{wMo+0io)Z`h4l3u+y{LaVc7SC;aiX;3#y&}7f&Pgd?r2h|gy<}QrHTB}OJB--E4A|={}_fU;=C_rDl>L$UH)8U8& z<}@SC=*Th|k&xG8_D)93VlK>e(&b6wxE9T|ZgDyCl=dPGqb=Up`hzY<;M@m&o^#?B~gAb-c)JrHQsE(o`_I$ zi>y&oU2BW+>(&)Zik9v(qzS!V?Zy@UAZr7maaF2I$z)q-5+Amc{7w4N1#Tll4H`Xp zOB1NDCc_AwH^DO~H_h!-W}7+gRu=^=k#{R)rlxP+>iKBBn%!D?5m z9B}Fm<4Lg(NxH`0Kd=5f%8NxMbNmVKqC}9SBiaQ{6rx`X9m)isvOUb6HuWwUD?l(w05Abiy)DpDH*xzc}n94UDC2`%E z{4nx9j1)Bxs|VQsGtH>y`}N;1ohV20pWRnq$$w9#H5J*9xkRwHcZbC`odc;I%FO6O zhzi%Mgm@$Gntv`u;XUWEaf+jTI6h)xN%I{|9nd1O>`ea{d|GG0hIgx^!rV*-R zAIC%_@kz;RY3s0SGnXN&UcY<^rC8IB8VsSw6V|9{LZOj0S&iI&M%1xPtlgUe&w%Uo zg5sgDs4gTYck^J1UQvow&^MTE81XsY>fsEIjQ(@GggGknF>YADcp2 z97YxyIeB%VT3Vjg#KVR#mC#)G==Pd^a9Dbv_UKyt!*xnw=03=Oz${v{a05-gB-{aN zdmoFU6fN@!^v^Z;N;a>J=Q6RPlJEpc?%Oc)?1sS1?LiD=JuPl1I7Ra^Ke0dL6`#A0 zt#WLCGdC|UoJHTS$MTCQHvCoeW3Yjq7AZcs z4V7WX$mxm5-??Lzjf91N#Hwn zcm>Ax3)!k9qAiur65}uZ1(pCX0OEN#7g&udraRTYl~Pb+HOe=pk-O+7kc*{tahS9K z{g{Eia^=+urxO?ZngQ$qj&haofi@f^{@$N@MA|X`+b#o`cM%|s45hNq^Wa*VNtBUa zOVY%Eq`A#UIDP975e@Ng_w5HtZHb_hlzWt0Tdva~s-UXIf}X>O@AuVrzQyjd+E5THN9u6yS zR5f?wEDtHC`D62>(SMAI8`Qy>X2rVzjAQQlNtrIs+E2~Qkd`o)#WbFaTpf3(Dp(|c zF80kYEn}H&=dS{D@g|R%dLJ^R;D?DrijYQi5KY=W;HrDFhgT@IgBrkDwJTwgd$iIv z(#aVyxy~F?h*s-gOAi4f>4Q|Oq#KuABE#9NyNQf`A6r9;w>$wrcVqhLq~fxDMarSn>J4Y?kAXA`!H8#@jDf!_S5SLGnm%v!-saYC2zLeXn<(Jv$wdHSkZw# zJ{Bp@DzY=RQgwtk>6=tmx!Tx$@BrzCHa(+Sf83jy&r76n`(AjEREPyxHkU*4Ut+40 zTGR4_N1YN5@YDirK%D-876M0f1vEaVVl2EznHN65**@{*`;iFkBRy?ul;qA2%k3Nu zkFzn0(y+(RE-6i4zGB&{e+qC;SKE#uw2!gsu$u~eieCmY7@RRmAxC&_4;+8!gzS^w z=cvDh!@d$QcQ3faYmd}ezy_Ni>l?MhSy?~@CLrBn6?+Shn+$wH|XL*U%D=@ zZt**Ovj5j7t924bi8Q#-`K$Vv_w48I=vJYP3BY_Yq=f_%H|Zaw&-vnuT1K`?<<$LD zD#&%V_hlGFWFf_k^^hLr6&^&SavyB6K2E-4ZT&%`C+Exzh@boz2=fBSN6#0mKK@?% zyXUvMuoGgpK!=6;S@Dxbq-=uqkkD(O82km>-d$ejNWE*^HZK&@AK1N%S-5IgZF{OC z&c%4=)oj;Tdxn~nG??M3Qg*g}R?$5~cO2xhDo@8XL~^phQEesH@MlKgj6Y zBWPBzw?LrULEXakFl!d{Lh?#Y+p9?~zv@BSKQ!!*lTa0u><61@Y#WmgzY0%N$YsSC z&19Mre{5sezM<&Mh!ETfM8xoxGJ-a1lj+WcsAHM=QW7|(4vfaaszW(nG;`h=pj7ly zDS>Y{Vjd&Y;R`yr?%^Pm_P%c%52NQ^I2L*i`ChUy+p?|Ga!b8o!@oUqVMRKqL}#Cf zBADTIh9#Q9L24lEKgRXFreXWiN&#|sql@fFu9p(1l}p8ku+1$k6SOn^b3(ZLN;^@w)%+VM zHx)%4(FEhWgb!g+-1p0%?D|?70lSRQdPNy%4bff@oSt=z001so=6N`xo@6 z!bq|_f8k4iSAQfu4#U<>2^1`8ukU?<%sFORvWu4hNBY--k`q9x=N^fQSMavDjDlNC_ zzP^bNxkN$QUkAzsxzFtry@VyZok^7L#t^@c{ejt9SP~Pjwp+ty!S&v+!G1l(&}mOdco07v~ZIKR>oN3c|PV z;=vZ=PqJ68w#Dsr*PR;W7+y<(2)=frj=U*1W&ih@Bck4G4=u|+kPow%Z;5btf-(zL z3@I^e^hqIF#5%&mr~WtxZ8#|mX}s&f{YohKr~bcDJry0fB_Fu}MxpqhS5-vjvRBYi z;4eq-&4uUSE0g$2cosx~s%&&Zk?n#2r%qN#21!@z$Y~@ZV5~jhJ_Y4NYx#%PU~`oG z)t~=1jH@0KR1e^OQ5Ga8%-_9b>ZL90{cRb;YkQu!gcpfl-G*P-6g3jn^}sv71e;td zU>z@>9Ar5Cs`*U58{y8s6j_Y~5pU=Q4tD_ZPk%UL5hXQ}=)Um+bZZ>=d2zrfIdK*e zA|Hx&XWL1{v?26#d!*BSjbY~X_u`}>wP&D(IN#uAbNLO~g?67ua}NlwS(DmsU3!9L zv2P0_g{P^X%a4IXF@6HbSOz3;R0+tB^?T7U-rL^hTt+##5U{57aH~K;me^@D&{-lz zv5o{dqQZCfUo;@GlpS!)`@j^sIZIvu5fx#-{<;ITxXL8hP|LS;YFCA%ms;d{p>uOd z2lyQUhn(U*A>euLFu>2FBZOLbhWT3nS=NhAz(zpX-TLTOBO1Ds*YFMfu^_6@T6Z?| z87Z_3JEzu=FWC&NwtAHxcMtciwHT$J_$I38IqPFPu;QKExM5oySqt<4fu9hn-Sr35mH6P>z05xynYw%wEn4zRh3TI= zC^nG@N1_1P4$Gl}t;e2&La8q;1+bgAa)1SeBH`bixJsQPYrICOc|3(hK*nJ_wXH#j zL7VMF^6XGJlu?I&-dVR_N>_ppudV0H&MPT<@3UlJj+aAJVT9IfoTG4(XB;5~Byr+B z5F1@0Yz52L9;?V`Ps1CQ7Q!kD6@BKvruawGjrlgS8zdy!CH%Av%#kCW-?Ge9u_2v- zhEjA%6mx}HOl3e$B9IsP3>FRYL_&f{<4eCE{EI3h!z*u7$o9;lMrIFp0Btr zo8u20R5%+o#JgCXlT7)&PQpC&dCHE0=2@r)AT;l1wmtL0Q}F&#&>MW?%S!$A5dL;L zl{n-#>B{{~wJ9%r9Fa*~Mjoe9IN*nN*@?uu^K}uACjCOHck3{0#g(7Gr0^T&Riq(a zMaht&)N9PsB1IqUrF^nAU;SqL&o?@H`z$N`X|k-LRhg_LA2`H6T>uFTK&f*BK&L9N zwif;7mCC3uUIG8!+#r<+q0T@^1pUoshE8g7L4{DvY=;NWZM+yQLqdV?3y9(~c>(Lq zT&wT|RY^y`ur#Uc{uO5FNW1#Ob2G2>7&1aYk%yW68AL(g(yx~^y=~wXI9pldDuGT| z(oA%qN+jJ4dwzwjxm_Uvt-7NX!d7P!{Ur-;n2&@tIzCYV2z3@i3m$J~{7U&c@&Kxv znr{2Ft>Ecr$LHdFa^3g*>f0fa0PYiqS3iqixs^RIL^hq=eD@->Ntc2G;Uv$@)l5Ok z>k50ED7CFur2e;^uwA)SrUG|`hRd_P4&|*n@zAJk!VQ|qoFp6pQmTUu$`CdGVI>KF zZD}+<-SA+KT>p8gx4jo?(ApBW@stD3@x-|NeN3GTr>!EYuzd=oi;4ml#= zt%}kuftoY`MyM>Cvi*UFho5^7Z5l!7$|ed8gdp;WW$ExlyS5rgd-Fu#(W!{$9ea|zAnBC)-KomEAL_R)_OMr!DtUVp zrC;xkrY8BP&7+?_9zVE>f4XV@@_M8Ic=Rjqzh9x6zat*~j(+$1!GFJTn&%0R&XeDr zr~h}Jt@-Eiqd!IO{yhEfPr2qr^`nay?=D{cchRi*x9!p2&Ub%%{`=dfc{%jxa_rsZ z)PI*BH2=+ODv9@TPio1peC6(S`?vd!`~<>IA1{BocHR6d`QLy40eP`R9GIF@jc{Dn znLzz&%n&M5F__FO=GaY;sT@w{z8P}~m8}}h<~J@@OO~x3e=P3Q6$|^wtAY#jTS{Y+ zd;b2Z+Wm`5n0)O_IXab7J!P(<1MsIQc|cDzW3I}&-mxb|p?=||^V^tzdopI-fPdrp zkAG7MEw%+Lle->JD>bfkhTk0KNtD2TjQI;1v~p5vBK6^^xir!Wo92`i|D@42K||KZ z^2D5a(^Ot>$E7}JloyD8z4M{U_=!gPg=e|7Eg1Egywf_y0p^bf5Q!O2RxTYyY1AJXn7F zNOMju{QPWx`CX>wJMzEFzkmOu!(c%O0}Kvwoq&mhOO9gV5gJf8JfoR`TLP;q!7Y(9 zXw)s~`a`HYfj7gzJz20cYF#tn-Osq3g{>8NVysA=n~>lkS28fobp=osngn&=yt8W@-v8Jn5v zncUJdwlFZYG%&X^vamL>v@x}^x@BX1%f{}Ojf1(3lZB15rJb{-y@R#G)p53RxNYNr zv2}E_b9T3P@o;c;b9D7`y6x?Z@pAQW^L952b61V@QVjP;2L#&r1iE?n__%rbxp@Y- zc?EiS2YKEJ_VNq%_7Cy#zv~+iekUN@FDSx4I3h6gUhv(RknsB<;Zeci;lU9>VNpR5 zF(Hu;?%qoXzn6M1Iw>Xwdq4Wo{mA>V;rAYf-@`^mKZ;An z;#0AB!lQ(ETmn9xkeHC1oRpl3PfCwZ%)lpQCM0JiBtK3{$tI-aCa2}3WaOk~=B8ym z&d4sv%q_~wFMeF~G^a4l+&EA08bXofsaU9G;jQnV24%nw^;WI5j&DB?AuU>-B>% z>bNsT*6ug2p1pf?O8RN!*|02Ue}D93!Y8w|`*sZX)_CM$K7R=K+gPrC;8dCYr!E1H zwv-#{VPA>Kd}#fT&4Hi%emYcJt#pKTtSsWR+Klrw`Ia$kr{OEs(ZW#5z&`mPWpx8-}fkj~lW zN7`&Eq3u2Y1BR} z&Pu_4B=MB_NvAQ>00P6`q1eS&Za!z$ykDjqB#iv~BmNF|JW+JM^NZ};KlJOfgz1C+ ztx3azm13n-dx4E%S`IPI5ZS=>JQ1tsW|;>TV*>vi+>wGszAec@rFhKm1VI+;eN zSwBW@)Qi71l`ZLD$W%YM6wKhgi;A02*ro)fnpq`#O!0;WP%=wonrr9Be8K9pV1y^21cF z0bDVn{5AHYsnWb>JS28F%)?c{ziD`-XRxGsMDTvtK$>_)!wId@e&Z9`s2FpQpwh&Q zcJg&n)CR2!L*_stciLbJjnb!0#_{VR0WHab`NGg~ZoHaoGC#AeFD8y%wqr~nXU^mb zl^oJC_NZj18+K)%tsC%W)89G!U?BAJY}Q2S@a&_xzC>HfZ;}VU7EA&*z3_uOZ(4&q zM=>p(JQp_Aml{4mrvV<@nBa<^VHA|a)w&B7Z!-5Mk%faKU+$itZ_BZ4qdlIh>m%)j zy$+ini9)D&sL5Vhn{JJs`hIsdt-|OUL#wjw2ntAL$iCxMLMr3+V}%(yug71wWeK7B zlA*fm3|ZJgKJhA;X}GUuE*8y8-=||>a+pL$(NxeU84U7ro)AzCoEpcts)j(?>!x*7 zIv1gIF?oCpuR?|u)5?>TF5?5wuv7|5q$GRa6ZW)@1T`pQW>l63y|Ll2;^+_+(QANf zogL4`94hw8w}N)43?588A&l%&28I*AD76DK6gzm*r+2u8FX>fZhky_dF++{&+x;&$J5x4nA7nX=r6_FGidGtdiJ0FI_&b1Kv%6f{$ zYblzO@n*}ud4h|_jLsaDOyLHJ$mkygi^g%Wv{4FA-UZr_1{`hd;Jl1B10h)=gS+4? zUN~>n~_T9>G8l}Sj)IkhZ}>p&ZOuWGTCoMmh(exBKIN^YR6sA z(TrV{tO`|ISdBwO?UL~@&d95daf+N-j4gOR;6-YB@TN8erZ`J(0 z`_3!&!NLK~OA;*7n~$TO6fd?^G!@$5)>SI4ck_^mpovbqxeKQfm@A_)p3_cUaFF5` z#`Uv~_t9t87U5~Eb!c(C%%!7)0;0dB3=& zyT+*-e~cRPxmYr<#u;!f%(;ST+?QJH^mr&k+=i~gATecE8W9^cn4TO$ArJ;+cA)9! zJg;TyYi~~6lHs!}pBa#5zt^cx`f2MFj=$03rV~NRrXd^@y5Z|}L%Tdp zrI(j~SvZv(T=yYa{0W0h`T4-1_!}eR4#xb~)jE8&Jn3%OcFs`Dz^P)QqwcvD+YB~Q zzRH5uxYiAkGvoT;3O%7y1!AdU*R7%Jb22^*tFj3lDi#wd3XM4%#cVoxepyT zS4n%f10VHNCiU*&z;$2IVNU7P^c-_{hCc>YDwA%A)f|=Mmr%T1n(X5c0thkjLu8Z) z(-dS?u%q#nhSsn|H8eqnkMCNC(u9;z>Asw=qI z9uAJfqT@ukqY|wPnRKSUWL4$kHnCRX5{|k!Ke=EBxONG zJ&-xa&~)?U14t}g7PJr>Te6s3dY)V+%>Sz?mTTdG1H}X5bp;RuZ4QR|^Hn8R8DhT) zag3p#sS2G5qmDx%{$V_fD;_E*iFKC2GBFU8H)?Uo^3@`ZNWvhX_}Ex1$Np2X&Pb(;^;W*Xa;c*f_N?se?W?Sfr57m-1BXs zdWxYLjHD?!rs_l?jziMM3e$E`aN8Z$_+zRGEwb4_8C4Jp+L#s1#Y{DVNn9qL6KB+Aj|D;9 zM>Lm_U{}ei1_ekR#q(Z_uMP?#oIqbjLMnpb9o}$8Cj_)w(Q?99PKH(;ec-Z+T!8>G zw$sbLFJyle!R066OGWVWNctnX>~Ih~qaKutI9zo+oE-#5HCD;9OV@;Q|JW%N2*K8; zck_F}q9x-e`EspjaC8`UlmSi6w;td?zfZ!u@`DBGU+gtQ$or5TQ}$RLWJB?0zp|GLbef%&Bzzm3vJyB5->zn=d^3O`_G61^n#b>KBN zNHtClz77A956?lsay=s#xv~$0GQdXIONvHzFJw2M{q7|=%}chDA_fi0?4ij3>L93} zIdLB$Wx^bnQ3CO}jDdmdUX5O6}Lgd}^fm`==f#6Kcf8A3MH@!aGV{AUoH zECIR3Eo&3XzU)1}g@wOFz-bb(^jc^W1)_HeE}y>x&l7;E^W_A*@_t13GE(js2h5>B zCo=%MBp`laJm*ij2?K?7Za)0u z6zy&?e3k;^j)8riox9g7H&|s24wH*r?UClI^@+$eQF3#XOV1C;^0;nYzcgP8WqK%@ z-5szgtX#GLVn~y@^YU_6ltny{}2MI{BgtxXWD#sms2itRBIHYPPSM$+j zq3_gvJ(V{i*%UVV9_5mPY3n*=^sGX7KUSs|EqAw5{O1aNnLnU#~e04e?h&G2I1 z%wBE1GlyfL6%ukA6nTa8OJ`f)r|dPusn7>OuM-sH|4^XUGvr=~#s;?FCbtCZK^fIW zacNkX?;Ry(+>4uBNCgr$Z|gcI0B2%lGz({wvGBW*DjB_=;biF60jMCKmZB*`M!dZI z%jGXDJgzUHs28*{osYgt?vaLl@@u(ZFPGOVd)@MhqUrcLP3t)2+@?U!eAK4(1+a(ChD2#=4hPu9>-)`)Bda;55uXTzAvkm&pv+Ry(1*gg+t6dmye zo_SmVI?}$sRRrolz@{V)ojViQCUO4>Laxag9v-{{Gd==wJbG4Q6kOg*o}<8?iC|Td zC!c==cjUiWlBvwjyY!6$FQmLl*#pDi;QHo!jnW$z*|2h}*6Tg*FCjgj=gT$sf_S}J z*ZrYo%>gIs&sk*2DNm^_VJ!;sWh>tH(%`#fi{qMT0uj}GW>sImot$oLz&Zm7zo?8^iE&VMr47jvBgZ=78 zhCAnh=t#$7Up&(6$nDc#9@qu?Rj&VPvym$wqJ~AoYH=TnWODPjt-{ z`h;b?s3)#^rYpB2z^B8+Tk$fCzqKyz^n!D^r7G5PC1}W6zuVIwNRnG4bXoQcdu5Id zd!qk?+GRZ7mvaJ*uVhiqR#1A#$NtUC#bNxWlnGm^3-?gGb0vz+7K!Vfi8FkoR5wv~de~ z%Yl`pF@sa)H9D@9xovSbtqy5os}vhGhx$VeyNVFI%;MJAdY70S4SePrqSLD$b3)O` zYS;+E#EuQ!)(IOBSvczZbWz0x*1m{XngMZ?E!a? zDq=LIHC3Lk2-ey*(yo1-UU;?>l<`1$pEzu;(M%~WJeM^%`9#G>!qkNLCi`=l_VE@R zq>QYQjcT%gECSTTULAR__A8}eM$_buf=RifvZ>4iEryLrQ(|W{6COC4c;#FcX(pEK z7c`lwZCfnX{=JzsWte**`*uE=UF_=jxlB+j0#^GuZxAhl!_^yV)|zUA?Tu6HhUnxNL9I?Zn2o_rE`!%M%qn zP;m8dI(qgs#c#4^pO3Y1^HG}?qvo`_FCZ0H;AwF@o!!=n_@o6zuO3F{7Yq_$!Lf+_b&Fl<`~R>cWuy6bNSKmI?>#Fk+kRe_% z?a{GiSR&52xdgkDZlIFVviZI_joWy!((E`v=B&l}B4$HC>&V5%tfZ$N74Dc3qLG%r zsbN(}RZOC}m!fxPK#$C%RMZ!sN+<8FICXk~rf@GRfkU2dWkh|#<7?5|HnM-`l%gWqdq&Tb$Uj_Vh6 zRK=VtikJ7_2c>9)y__5FU2zxH5{6s4|5ByY5(5xLL#~)u9;Ab3>f^&+}8tv9CfA1uP<#r%;B~ ze5oaQ^IDdaa;%Im%B8?@mzjxlV&ObXg~)$W?-; z%()n8x+Rdy-ZFsy)hpvvHzI34ZJ=}Wwv65qSFDtaRd2&gVVMvaM;9s8g&~mTA8rxZ zi(fsXHm3OtQ5>I1Q0E|t7Co^pA>yIUH81%e?}cR>tXQqqD4H&Gv@DKosto(h$i1=i z+%=Z6tZ{<^)Z_M99HRrY-YWsO`$tM?hhl2K{^OzbQsTn(24_FH5KB|+3{*<8=+d-#kOQ=R*W|*uea2$ZQYQb% zJBbHo&ya;)Ee1wfwhYryYI%qRfmskYX3=R>K57wzXb}L7yb9pvu1J)Hp0uHkg8L2o znW7NlD+8?!hP;Yywr+d=A+S{RB4!f+1_$ zCgIGJg)z-8x?CEjL;V_QRO|Ih^K2&${wkfhz4L;l>jZ2$M&_H>M)w>{!ON?}gwKc# z#?CeP6Bo9mEmZU%hr7R)^I0G(Jg&&+^^*Eq63B)!!}lk*D^{Tx*K!S%d#$aDSq;^G zCVkP~ExB{{+Ud)nl$kj5Qq7K;Vt;W?Qs^P~!I z8F%1Bn-Bpum_+#+hSr2@c4>XA)x7C5Gw5+m zA(ut!`Fxws2H1y&A&!*-V3`!UW$WU^ekfHz>R)$jre2}ru#Mo!kh{@)K|}&|S@Q}S zX&j_iHhK?_$P>5^i{zs6KaMC4WqJHhT#4NQQWYB~fJS&f*|Pqth+=jzBUPiwJCv$e z*F9?JHa(Yja7nQlwNXUC&6_v5kINTkjT*Ua*kn)H{5@n{{yX^TR8-idoh@+r*VVtG1Vk}OYMz{9Ssms_Ly z3P+l5svhU?jmv|3Ng|vA(fno0zerh@WvtWq!tryzqmFv&_ziw9e)4sxxFki3KC?h2 zcbXjf==&G-dh=JiL5tDSOXp6{&#Osm%LW&RbW$~Lpg-F7q{EU^E~@n>04?Ehy|~du z=f^)i9LCc@&MrJ|yy|G5jBjbo=1x287>Vw6`Cy6n=!p7jp@$<wa>C6ALWVCkAj(Squ73&s=zd~L{%LgvKtJ}J0 z(laFL>&7TYc4loqy`T5%<`H!L$R)Qw*8k;E%+ecQc<#lPFP|pI?3!Kx#j4T0*x{)4vj$N0N3#0S`oRvH8H$tip7X@i8P~KkIye7XT?^94(+Zbpz+8 z>i4pN?FHRVpJ_o}pwytASgysvcA)(N&F3I<{}y28I|I4N2%^%wqwXYgr9BK=KSuPj~uyTqSPiElq zX`h2sjxB(WbO3zT%oi72-6`UC)GU%0U>9EAw_4hR0+5KTTY(ftuxV~0VC)d+WHiGy ziynjCjg+K2aP4Bb;%Z8}a)`bZw0AzxTi9weC3_hSZ2n}r{!j7x0I*=r6fpo45rzUt z7-oodN5=ibn`1|S9)Ay%US8@mle@KD4V}Vt{OQ=6w*|JOs>Mao15w;Z+*%BZ{dGdx zhXNE=?Myew6++*i#Y~-$#&hXe4d4uPTUrocZxkbbf*A*4*!MObVS$`kG;dT_a<{bY zPI}dfL?Jl~;3}fGZkV_Y^`vuq;-UbqY@Bb2G){td7{Uw61{kE=NlgL%U0_R5D|Bzz z!%AoFhX4Z??4l7&v-w6+_qqKOG?;o%Ks#u6Deh1H4IBbEc9~g^Y0Ipnqa>Ii#Apno)jzNL2r2rpn1$E@AJr;G|LSrEVuouFJT^o%hF`N+6 zKVl#;Ytqgn02U%0x4=vZQgmGtf8W%HO*dUC>hT)8UIg?eyRUwx2MB?_YY#mrK+guC zXby;V>gx^an@V9sjZRO`Pe1azboskq&IDL@4l^3zk3FHfrr-^Ki8#8?eHaNrl$~an8H2=DNGLn zon5^Btx~MN0|xH%j^;2ig2q4sd%pm1zq+kS%lB$YC2k8q?q#;-7R5BsoJ7OX2OsZU zqa{s<0n9#ZEa3P<>F&5zSI$(I!QIdxniB^YJqL>H^EH+ zyCp$UYRtqenoNOoqPp0bdsY2A-BE%b<^?)NX8yGaAP<4g)qv!_xI{0X4-)~}WMLCY4Vt*IVou&VIfc{sA+iEiUuN+|cDk+ce)~j~u`(?kwp>y?&7Y(&9?vUpk zw=qs{hMdptWtYIx5mSwXTZt29dA)@pZ-8-J=4uKcn_D>13qCERIc?Dk-9i2&U=qo5 zV-4iN0$em8x^_2?G=ZF>0Qhd{?rFxqX3Uj*)E7Fyr$IYH4H%a{xS{sMNl1?+-#H)w z#0Lc)_F^2KcI7*k4l3Q-&~Q!u^s*iR&Ubd zZv(*Yjkq=14mlrmj!1BB0C-Ih;t|pe;EeovLLjorUpQJ4RdEQ>y( z;X%F`(xd`ynU{1@q>%0~0i0F39xak~Wd)p=tT@O4VnhJ?E4p`-pICF|fu)Dl?Bfm7 zeY?jFOaoW{S-6)eYmATJOt~xD?hU34HIBXe^YlnVZQ<#tImdqMZCY8&(}-<8ID=zv z=*>&P7+mCmm7D01L-Y75ST5z3E1TAF!Z0`sn8XTA7l1gG+Od;tuLWMTnsiF1bn=#p z2Z_n#^L>2=kkCC9Gb0f(S%5e{m4$8V^AGMbVrZfSVG} zMd<*yUb;~{-9v)z>ZM6+Xm366&aZo{CgxrK!&#!Bn%E$|IfvR58Q?8CSS=)Q=-t0h zR}a09|GNad7#E`R5YzG~B2VJhfm^#W)PSV#Pu(XNwa1}3NU*)gB?VLG&`>zaGB_v% z3|TgW3+czWGU*cF)HR?(_xo4{v6}6*?h9>f7Q@R0bK*UWeQ^)(L+>vx|EZe3bnv;d*2)@mhSqWgWjDi643Pyqj7;pr6G(Cs&$)@^=4dH5)RyV`(6Cta{l%|xc~ z)ayV|V`R5F^JpzI(Gnq78BCjx?VhO$5MPJ?gqQrHxr#dL$?Oj-A*P;FEO* z_|d_aAuD|jlmu4?NlEiPw(I`<0$O`aC48sbvj84zDwJKH@dD}iUg8xGpmyf5!$}O{ z86c?zSpE~>OwxyixMh`$9cZCvE&HC$erH?-^uuEAKK{(vXMGQ}u6|)dvuq6tm z^){trNNetDwkO-@ZY)N9l#%?OZ+{S<1BPNAj=jd_GoHtSfV&vA;fcv2U}l>?rIzvI ztKk#Z{q;KP=d3{iELsfKCo9ayhvgf-rf#^I@xzQ6rNMM00o+94=O!7);XR;W9}3q< z)gB$<+<+5EBWsz&wG)BekWZCUP86VM0O%3KQ4>e7V*40AUVt0(KNF>a z`?GQwpMVLDZ}vN$1eot0ayVe4)Tf|MURwa<&m z6Hrs>>@xZ>AgjhRPJ-b{?wDj1I*Dj$8(~;AMk$zl6st;_1;wrb9f!(a7cmMqf%F(q zI1A_O=aV+XSlLOs0~B|1g=zVB7mfqPtHkn6?X6%FPGH)HHD;`Uj_qYIUJNElu^XzpWo1nUG=Q)ADnK0ExRA}M+Q&aj(@m1DUbASvI~ysM9rLYDbqjHAD38d;#+TM zo#2w#*XhMp3}$XNgqQ@j;R~czCkHM(;e@-QQn&3s&0pF-koINUetn_;=-k!Re;mHP zzJ2P47_Q|g67mX_Dzv|0hEH#lGDBvwal^CDX^O`o64H=vrvG~ z%{Gn>4|p|NpfaQbnWRf}k`(6E`(Ut~~(ntfnUjuof;n^W40#Nkav@7QXu z3~$4#Fi??ULlj8%XnRqA#8J-BKCOXA&i_~p&iL%Hy#Dk+j^&NZlgC?JzN3!HyRG8( zzs=mjJb!ZHzqOD+m%k=>dR7Jbwuet|W`#{!zp_v&*4UU=(mj*0t~a$~$Ji8 zQRX-~G*gJ0N~xYUOAe~`w||uaDA&m(+2}Q9ldH%y zGz)x5$%CMbB5RWWGRL6hHgDQ-Dn)<73McCXvp=d;H0|(w-p0#G)beA+E*PX=V*A!& zxmf2C2IKEJgRvo-Kg_Z$X@uDmr%`0B(@_6gp*&{GtGJG6qcqfaS=(231UbEP7ON$@ z{U#;BdP*mj{VdDZq96Lqt=Sc6=H=s09co*fDYAXkQ~S{>XW>t=%^T&gBAqjl8A(Qe zNqz?za`#DnHf|Ih_~!~87oHP8bfEo3U$erKh@-8&RhB;l;zhVPja)kSz>kCo>t(?;QVoHTQ!;8DQKW7%bZIo#3EXR$SWq-$- zK9DQ&V{#f|*1^UY?mAkan3>~Yxh*P6Nij6<#R8C|zS2}w?5;EUAjiSJwxd}~0g(^K ztu1hnSU-c<*K16}e5s){Lz)s@ARR~@9klID#QU^sxV%l5je;)g?W4Mn)JQt?Igt&< zgfzkYv(o)QDMVWG#O@^rHr2&IwI++7ZP(?P2H_p+n+UW`u!i^=UR7oN!`S^+qR^e< zf25BD)JCbo$U(~*&m=}QB=l5aAKR7A<#^Zk_vR(Fp^+f^1#Y{K_9a7SbGagD@HE2VQUpx^NuGC{d`yN8!_td3uNc<6h7{k=b{ zDOU?!kIgLWtQ5g-P5jW>ctOy~SCh8wk1loZ(bsvfUWj?kWgS!_s${dk$G@h_=OC!? zMl92zMz7d|6|1u%A+&jqF7#8Q;jgg?Y@26g>C=+%@`*8Kk^(D;L^CowEi-D^72wLk zYZ~T&Y;8tNuciZVslD!w_Y~k1R)^xgBx(1m#iCtOL4|WdJ(KSz5cry9-ESCAbUv;O z!(A=ib&F*t9%-3KjqRF(u+7yrip=4FoiwtDfa3fz_Jv60XSPi`%!@!CL6bhAbl`5p zg|M(5Nq8w)ff1tz*}Km3C~cQPinF2NEApXr0s`tDAowW8KqZ6CH%RI;sJ6h%mtmkL zs2PYCLSMd`Gy271MCQPYOEvXbDRG9&3jw+9S)+KBe)4JGsEiu}t^Zn(3FZf$O)q2k zHQ?jCr+2@vbzJ`=0;fbLUk%K~tLwKDEmqq6@>sF3V$PWTRb0tlHcjW}P@&tOHaX|v z-I^gi#PrGN_M<60SZ((O+k`$aDX2rkRlQKF>yviMYbn3^C~rb&8`CvkUwv1Ev~KuF z8O({GUN7NeaY_7|aGj^Qv#3^x8E-4HM|cHJN{s1?aV^ITDHhHQOOZ8CqSp0v@JOR%Qc+RZ2{NxO5z=R zdCG|=Ie*BOw_`q6P>K|jCKrg7nK@UpHW%fuQD!Vvtc$a?PU-&JJEo;mS(27P)%t}j z9B)m(=_zb)rtUz9<5^O0Z}e677u+#@!}PA3FR1WyfEQ+edS$C3E~!-p0Ycjwp~0g# zRiT==WyY2JBeHfSy;3!(>g!Dl<&U_m1K)HyES?(b;Hi!utF37`-xsm0KAx|yHyd6V zZlSNlmzdut_Jf9TltOC}M9fJ=dvX+i9CKrz`F1|!@Rr&{3imR}c)ZvtvpoaO^FRjd zM?(~26s8vT-EFfj3+Q>S=nfZ_7rGSP#p+ixw)iH|@skJK!yngUR%4JGtd|PLPilV- zoI7&Sf?#|1W58d|^GStRcxKkLk3n5ejZZm->iC zbpD&#xo!ED1NnwBMa*@BoqoM9_3nvoUdR_BmD`@2RbGZs$qEh`BM@xlYU;4Ws1`=j zW#i*py3jfvw&6xWXq(?K6kh=JS2Cd?A1}E&5Us(wVE@X(U3ss}n ziz2CM5K0)AU|SCr5HW;9EwHEi%vArQ8BaMPUK9hK$`<>gyi7F!zy`G5}Mm z<1`_qwTWveEkbo3#^e(08~9EQ06((SAE2JE^vwEo+Mca~15Yb$26`%j{2`ZaIglUdgJQo3s+2Fe~g5($dB7`*X1qo-8y z+NNx5i=qi<_N*z#m>6ZjpprM$QJGSpY@~Bnhx64~FqM-S{lrB}Ri^l%+x)T{>A_Y_ zg@p^v{xx1_R4DU{;1Yz_qEJKqnhl1uf8QADLt|GaD^k z0Moxm^ao3sHGbA>1vP`DLlj#FX6`1pKouRoN9cee$|f`pCDySRGD!NPe7EQ zSW@SVJT^|v4tGT!_$3xg9@4%wSa+;d?)Tb=Ifma1#Y3GRWNPtMPDb0J zV$-!%-PQq`uRR~C@sVhN>k42pg>N}A68c`vCWUH<(o()8soPn`%ETLNN;P$^X!=QE z5AiL~R9{}_?oFxPT45;YnDUnqblj^oCz>vI*F53~(uIma7=6(`Z!}b7sU{WDe=xX? zsvbuYhQ@z$;(K8EcdtwC2eB7++@&}Yd{TRX*IJRSfNHQg;z;V8>@~8uw`x6l-fT;a z!+oSF!kJ*p>j7WaAp;l0 zT>3};vyr;YHNc5d&u3oa=!C)1|_egvMhx&_urW8{v)NaiOZ1* zu-KBcl|VU_5_W8%dnyCC6k&|2%n{ZmngoSV2u@Hc+2;PFur1+-oJhUEr_BR>qW|!*r+Q6+x zYKJXt#NxS--|TgvIlRHo4@vo+f9C3CqMgYLG9;ixl1@T^U6i}U;0Tv%W->T(X?ACl z@lg`xHC>P>bp=iZra>~t9RHiF_U>@3Pie3O-KlWAhbuL9#Ji%AmT!S>zD3I`tgEyLjfA4skqKHT@>I( zV)OFLFOe92`ESY9eO4hl@%!HLu6Uuo+$ET{NFupZTR%T&3GZ%|MfT3aLemM(Z?H*Yuk zSQ(1yWnBAqfiZz@cpC|@80aHEQc|A*ZiWD@;U^C0zVs!4(~!U6=*R=eW3%;3LG>831R^qPBj z;+V@i!C7^e;Si2?AZhf9*{v{w(*zFihM^pu%<;iJ-qu@ z+IJJBF61^jXz>l#aJb!LcB~kSX9q3+6c}XEFr|lW*9wlGYRlcXsTA_n>b+TQ!rv$V zqn+9l_YiSJD^jWvuw^MKaJbIOL&fStXqV&&;VmPf>1C$z;Xn+}xU zpc(9SmkPHS{ zv<-?c7lrZlj?u>IWz}lD9w7OnM^rTsFp|7 z_=7`H9$RPPbtQP0*ItVwVkRxuzH)}lFK5m88^rwfna<#u_q~swOsqSWXdv8k|K`2V z_wP}*_VB>DE~BwS%C|BN%^-?%uG9Px3x0{=HP?BAy+Xdb9oc#El6~R>(FGjymX{Tf zXDbxHEhYF8rQpZCEG>A*l@R+ZfN_sxNq!R&{r%C0(;BFQBZdTVV;+JbYHn4NfQv{! zo}1o=4LZo;>m(8=HUAd?n@_csslT2)glS8EUfy=+RN-St##l;oe|Wn7Z?hXa!Hrkl z(zIUOz5#2z;8xM@UhPnJz}}vs_B4CkU)>xt-Jg2-#+)X{o*HiY>Q~A$WYBn(=|L4( z6UyP3*3%4+x!QAneCBz-#L_349s^wtC98!M{YRg-o)7a_Gck{Q-K+j;@Ipn0cb#2C zQ>f|V3w~#94pB2F1bX~J{b*iIVu;X-jdZ_FzbLlk)ms;S8Z4SK_NhYJ<1;_v{$ED( z{}0iu>eiCAe&+Yrr_CmThljJie_C9A{yzZ0e}8^HEUb9@{q*M7nUY#lb%(eX;}>%` zuf5xwkgc`&@|mBqLB_Udap1Z9qn&eMkNPL$*-4_`CXF?rF9--y>x*#}4@euRDe+R< zc%!{a(Q2c_uA;bI8xOd zKU5m0dL(aVO~vgsc~m83$SI+E|Aj{8qomsrfDn`GFZ#>AulFQ0AA=;)*d$bvhss_n zQ{%=sI3wXP#w@+R*>dM+1MzZAw}Ly&**Gz?*-~`|s1e+p2+}yTmLFTWzwY;sI?tu< zJ1f@$E##zYf@3#Li`<803OYY`|V44Th5x1S)oLV0Z8&|#>^4b+QjxFG_gLUf@;-y~#Pg5{yV#Ix zYXsxsHfTKZlg71tnwD8XNhOk?EYA7awMdrPg(bnVd+F7KhQ(Mfs(S5UoYkhND?%`% zJ{Sem(vbWgP2hCJ8o&UvSnuU^4b5;O#wiXo_(tLt2mX23=T>RK^`k0Qu;~VfUdX<3%PvD+kYmZNT8u8ydvE+T7LU7snUSDxqIR@U& zVdX0pXl2bBXe4LRt^1=fd#5{eH}ZuMvE#6~P`vz|hIza8HmKdYp0bRE3^Hp`?)P@P zYF<9UxOAj!8>X*BIn!n_i-kmV4^Yo;F$DoHi!Q#^*R(oBoEr@;Kh?sADt1I$IkbU} z`O&&U%=o%dlE^kZRaNneyCwVOEh`Pa;+cHu=5^(;$4(cS9PX#^We_ZBbi_Ogr(pgb zDHDe_s8pvj_UwlNJ!(+aVRJ;u=juxx+2C%xb%)v|EI=DI(_MNSk4Pqq zXZ8oD#+PK3Xx6213e^pM6e*>FP(PE5$%tT!z$1-pV4~8F0-0y1uh_x*@_!l4O*7n) zLSB;Zy~J6*&TJd}#El;ZvjwrbD-C?JmUM*kgu$(cXZa=v3QILs`8xN`gKg(IkjSWI z_3I>}>y|==_m>!XieU6$%}kNoI#tcAQd4UaG4O;zMGS9ATQhOcBU{lW;|&$&${R9? zNJZRHHKIk!#)votFyb^j`lh!McFu{KxXecHnWoIi9mn(M*i1CpCmKs{C{Fhx7I`G5(5YJugcg#X&UnreRj_zc2yRi+Le(7wEmL=ih?Q>wI1OMx8`3RsP(9R~vI?C*E!?T1omM#QYDkFlfA3u}SpP#Cc{9(aSfR zTWxz*b)doJgH8P-CBHaW-{yJGgk5F7wx5saob0>&Yi92Hm*ej@?&U@v*z^0vX4f|b zd0$M*WC>|3eN*9Hpm-QR61zS+zHv%(h}y)TB#`h-M#?J$w8?T+ywl zQG=%UUr#l(!(0q{O`ZjnrCx|r8_wd_Hf=ar{d;HBNM#F4Zjtl;qqpd^2y(nFjwU~@ zC{nta^?G&?grUb7Pmsp;DoF3&Ne<${&OpXik})#w0yWL#ed2{ZBqDr~ST(M&jlGw* z_=2^lI$S!nKIsxlMBpzfwjNcS^->Ns71RX?TGFhGR{Cv!yI; ztlB=0f0d3#gW@S5M#uWN=WHv@iSlr^3vgJZ*ScitQoQ)w4XnJGANl>UF1kpu$Dd&) zc?(pb^BT*2yri<7ul{{xqaTk5`d0WWS=lS_Ds=66f3$k!2+U2-e3q^*(FR*G&?G)q zaFf(%(0j>>R(>pjIH0$^Pz-C()1rHjw_+5?dT%mDtk`i{RYawQ{G(T+CtYx`ON$8y zMpfQ&lH0Et|FPV4X{SQw19+{ zztQs*Oj~2K9{IMJYGnuHIhkgz~?0pL`iiag1;nz(1<3P1t~2>X}|K* zdRW=-5@e0hbC|0f@Cb^iN~`rt)-o8Wb6eacZXpV6F^uZ#3Ffmak~(Z9=VIt(DP{6oN$Q=CROh*S+53*yNNP1PwOVaD zJ@i%KkJS_vwE8m?;;5RXlE1s6)f7c9_AUPIC2kA32!V~I^jBEtQmGt8O4_pNq z3JOjfDY&vy!;R(u_YTd9)XKdFnw6E70wV62nVN!{safI3Y}_u0nwl2Q)XH$=wT)$E z<>mhPe9!M6{^A_Yd7t<((F_0x3CcWnw`X+;2#^I?Rxi z3l}jhbaRgA<;bhE6gmEyrw=Jm+)YusiiUvaHDIM5MOKbEiYAgZFsdd7qiDgh&ih70 zTKX%04=(6Az<0F)R7_3%W3!N_-M2cqBg)YX2O38%!&flcy*-;^4Ip|%Ej~#+P`K3%wir~yu3vQPr5m%rMk^w!B1v!G?_bV~o?jWw_V6`U5V?fGZ!5X)RjQu&PpV>rk9StG5`t zTx7YJmK!8GxgJ$A{v}?5wHL3oY`n1k2N(TMM^O?Pqv+)?wy)H;72Kykp==5A=`8N= zFDO6`92h457fUTP457Xp*}qqV9)^5GQK@H@0GHuDVK1X2*s1Td4a6V4X zgzL*omEO(u`;=}6E4sanQgKNH_RXLXUB$=3%@ zn|v}f)*j18Uo#K0O+uht)>Z_EeiF3%c=A7($}><^AVFEHSgSTdbtzP_jB9sf8UA@$ zy9pVw!$}}7BVjC}+l&eyAKEaeq6bk=3)kRalveO&+NP>XIda`n`z~^Wyj=`Aba++H zo>Qfw$G(S*WKr1PuX2Wp3ZP zK&WD5=oLJm-pUd$)>70$@YX|B7dKEn1jHg9$=1s~5r!~e=?@$3PA0%VM;lZVlw>eS z1FxowED`FJz&AFmpq_wQ7MSX>E;@V5ufsGkIhJ3VNZD4go8x9!=VM!eN>(}5atWH4 zh-w_yjKqq^;3)bv@t?STWv6QUs;4Rn(O?Ce&s^;lfI*P%;FCWh*Jq}z}=yJ(9 zvV7*-X{Eqz1*cRu7&*V2pi$kX@{A+G_skjO{8@2JzRgl!#LMHCPoxLRomuu%5hZK% zlaWp^SKA@v`E=j3CY8rV<787cr!a&FZhV2O${?r-#Lf6pjT(ZAN)B996z9ATQE>gJ zpep){g_RhW3TS`Ns0P|&uopdpM#@Pz$)h1;%C%otSqob4xHe@ywbvpN%yIX=-T)gP zcKnf}Rg|Mx&7$L$;Um(y|AxxhVrGFDB{O5Kk!97+eM&^k>8LZe74g%sVT74W|L*((uWoTK(TxR{;6`4A$tg*mbq_mf99EiTATO9giEd$33KW!jNggnA z*x3Q}M!-UaTlDE14Q9MX2rDXLz@NmDS0Q-)8?8Y*E3bLvkrP)Qk)uk?Q5<#qvG<9J zx}I9!Q8?bYSBs0ZifKgdO%V`k|9GG+N zFvPQ~_C?&wUtHDfmXRZp+D9I0iYLZ$I`Tr+!vfa4Na9ur!P`O-5ss03SE%|7PmyTR z+mcW(c&WI^bgAZQROCFY3s!&J*{~HXUoTqLNFRAnJXQES0`ch2-lIoLX5OL7O4VtS z`*hx4->lbB+4yVnYwI6{hZVz*6`!F`#H#<7-FW?_+GMHkz;gJ%0`r(|72@?93vJw0 z&Mn|*p%XzK#;SZWLYQI7mr#mn8Vfh~yA%+3f6$}zYbYmz9Ax>q+fyVeOmPK`MLSE! z?8Fcd@AgIePA?&Y>l3Uw?$d7~S4VaC^ry8QF9L3DbzYOKzYiI*#s|tFTQ!!1m1{F^^nKjQxW zk*ljE$k7~QX^t${-n~z0SL<)-sYTz?YO_0JzN`{!+=y^H@QbU?nN>+Vp<+nT%s%<^ zjRfLIn6r_!nkY=`HbMV^lt{_?h!Svp;qx>N;gRFQl5dgh=;W&X#>?R`Y6hB0kTBIg z_`X(2_>uUF5-YXF4t<<_4QszwcO5PqG5%0JUfC3~vbW$*v?rWJdfttZ9ij(W#7!0a zQlA|@*ctt@BL6(q@UqXNi{3P?qrv9fviB-F=ydNBix0miZ<7PdqyR{kLV& zWGx~6{_&?nam6}b73ww(TW%FC9{CCwFW{a4J)atr)Zwc3N`r&fye>(79~BQ%8?2%R zT5J?rTxtmq`y%(uP(`mFUHBt{+w}{V2mim({C2$Vz$H2R2mfa@|6OAL@W-l9aQTm) zNyDRa--T~^M^l!z&ux9Y|M%JFC+yE}efXvEkKx?iglyGa<%j5VyJa>(vSK){EQ8T~Fn(|61U-n{WCu#QCXCn#F0j=VTkj4SmakS8Of@OP^Tyo|b-w zCfDS*ip;w|E_=EkKd1au^MYXOut_PbNyRcbi8roIRl7T3ei!?7cz@>i6>rm7=B67a zFzVa5ac$=$B%(xLXH>I-VD=Kz>zX#2P@Oq9YA{y4J{s4SC3UO2+Q%R`y5aP|s6lOH z)5|kU7iE+CS4zB-@2@u$CO>#D_2SyuHIA;P2bEDMZ*R~>9`?kd)q3!~IT5$FPf6~)zUbETL=)bjQmSsMN#W1!VoyyZ5tidU0 zlSvha%x?qDidb~Bo+nSAkb7YJC?Q`J%Ld!J>ALqck3H4NLIwKch@UY9W{8|_4-*Jx zOXRB`2OB7NXZ4$|TFnBl7ieTZk}@=l@4hOtKgm5@v9)!tg8QK`w{HdNRJ%tLX1BMI ztCj}|*W1u{aMM5cMG&aIRwdNyVC@FY=?Tkz>_B_)Tp%DGooMuR%z0vFl-`l`%gM(w zrcCpxSi_Gf&+bPp2n$dcsu1iwt)@tHoT4R9M`7tqmj-|GXl4^vjIs8MJRP ze(KYMxs#8dmd|w^6vx<)WaCoP-w~y0Mfbq}nw?{Q^3`guN^( zI?7*GncL2{AcOL}G@DaypT&HBq>9mhVQRTrkv z57v;xM=bRPp__Fl5>BdtCoK|R)^2z2?SIEo95GZjh9JT5Yx#OlvvZgDeekIMaJk8B zx@9N#vI{p%H`{Ai-Ey;NI0~RKhj7*WjgX0)f2&d`bT;iI6vw6Ks!_>2og-7l(SuIN z%pXbMtvz%4frWH4TgYfiNPrZKMiBtLW zN;ef7$-V|g%lTiR;z^=Wt7&Qec;wy~hxf=*yWvAx7qIFoqwhPAN5RxK4gm@*WWf{8h#p%h=VW!)%?B6?YRi{XRU0SJy zG3mUNLUAJ2P!j5nb|O8lnAn5CtzmI>$S8Cl1rI}`cWZbHz>;DLcHA7qRZiomi zpwW~4Guiw^Ts$15<9;Z9^U0A+Gu5Kl!F&(1;)9)G^qom(<7}xGr$H{VAM0bJjwy(z z?V%SirQLU7AZ1#Sd8j`uGnY+B#0FdERR-`%ga6RAGtC;f%oXFM(AN6LddM3I$_9Kk z*yPNrn#=WJ^P({r$uL?!D`H5arrbTz!bG#MhU$jQE4t>lqMkfTx9s1m`oJYXr4R)) z_u6(#)C0(+WzdZ0f9v2wb#7k?yzFa~Q<%^zqA6!Fc_+0e8P2E`>u3I1>0YRrI|Bl9WK^`wbxA#?$j=r zoYM!~S%?Mgv&dm(2_v-U7)7S+t|C98j@_pwH?iL<8#K8B7YW?$7ICuH8w92CjbT#* zOn#27l6pLG(Cv=DtmC|tM|cIuU?V#&(au?=l;kS@JIboKb2hCCMaz7Gl#AI2lT&-S zZ=V(cxr@H4(Tjq)SAV2S{v*_w?ay7neXOv?5A6Tj5M*k`qC?K6zMwLA7QnOS@O@4y zCRs?08t&!ccR{X&+o?F$W$@8NKhdd>}Ui)`VJ_On5Vt9Ft1 zf4^0X+29$Z`Ew&^6uIJlpuQFh;*4rSrc2C)?o-T9w0wT$df1UTEkr?31KpyYqaSM~ zX*|`xu22bCuP-gxYT1|dZfv|UVY%mV*0Qtq4&S_SqOvq|N3Egzt~}1dUpAg`L=kYnfF0`;cAbb*Ob`>ocx|LOD9r++cAo2T}#OrI99;iU*!_pdTVSh?sM@;`(i8r%QWA^4i2{5QPZ z1+rCejx044CKAT+h471;KkPP8Z6j>boMSDLKp1G z@7*mr29YhQl&xk$mN*tG0$3UvT#xp!Z+4mj$-QC2647Ei^L!H;JS&8Mn}zoaL3?v> z1Pe%qKvq8hHZHi34fOL|hV%&C^ey18IiO^|=dNXi1SX7s4?bmmqWm6Q#~RW{_NObr z8A6-bo}<(Oi0a*Z1#o6*pJ_c7d?nP=Wlpv^8+3A3Cyxt_FWXnehe%38)5&W2=qT`p z+VLOiS2@s$aJva98CKb;o~lzUtli(uq?%CmdbaUeKU8O=nI1RPt}7{O=I8lU!Lqk^%k;{m3gAluJwYgpECJ~*JJcY6^a*A4n_!d7#22RaB8j=cYK#1S3XrNS>$bob-kM3816tdxU zBqxP`z)Zet-3#a`rtF|lwq{2B3Q9ykI?M29{h?=F(zw!;b-7Nnf2b3k;ExihE7n%ss?nqq6&)VPgVV6C0F83{YGb(|fWPdfn&Ha zgChc9$KT2F%0M?&ZO{12ib}EI%223yzdfA@X*vd(immNkJ}~%AO|@VBH7bYj#K`_E z^l?PV-Cxi_=k$s)=;Qph{EoK50+X*brvtBGOKY*^9j7bDVm=c>a?Z&AX3JET=|0J} z*{+oTPk7%&XTavX=#*X*_H_T4AybG_zZ_ z*eN0v4V_+rh>c6S1SBssn~|N}&w@S%df$3i>wLhw1yjd4WOtpFeHEYnVWjP#>|OtT zcgH2QD?4H;ZQCW&P8+phGo$yzrS^YgxA)~E|bnFAdwgFj(I*zAri zBs@_fM0N)BhbS+<2B-3=5Agd$W3Z%1_yh-%R%Yr4y$}`vFK2@;aAcmc3yPQ!v5A)) zW_U^fmYb}O$HMSXxmWLR*npOx2lKb>6pA)tsC|-dyEGF7bkVNP^!Uk5Y-1^j{wB2Wr|^{N?|k z=DJ!a!<*uDoKvG6-8A@__g^Y(*sQaSuh8R!)L1R@U= zmkpa1?3v}m#|7++jG6~{Xn=y=i$VpzBPy$&&`Wq2pPWhW1~&p^8)sl_{?Qo@%rFQh zJOHj@7F=8fCnBI%@zCvH$nQeP(iq4JFJC5AdAMEy1wI-r~0$bkl}t2L6j zFN!7>K9(5!obJ%CKlbwOdKdR_p8S>s^}l}k*kcM@B!KIf!u~Fk8Nzk`=#@EzxC}B)8WMmmvd0iP z4^|&(_eE-83Z#)hwsMXimhRTWiZVf;A)99<1U%=0*HC=0a|EJrkK6XAw8Tq z^>o0y2`w}BNPVKIx68$D!^5t16YBWqZ#D7mKjuW;#KJY>7`4vWJ%;raixeTIeX2_S zyF{OJzx*m1%4RFy!9!n%p7|xhiY4Q7FVLCkM7iHaTj0Icdo1aG?BK(362|<^#4{4P@>Epo0nc|DCDVrk`5D`lg$dr6jUXYMe zJPOtBJy(UFE$D?`eHd|$Q_~wRCU2pkNjip2;$0Wu)B(737n6tpZwm#|qT?vKKf(E8aGvV{Vu$(-_YLDs0gd1~liVfL`*ygURKT7tG*vEQA7 z2WP|{>=ahN6rK~{<@D*q==b0f=0O4hX1)tUz6ra92dgeJzq|+Ku*Y7JAC|CXrB4Wc z7u=RZdSbg}PWYcYSp34hLKgLy(9jJRpk(zT@wGJAb^h+^G1nQ8hy3 zJ$b6+HUV12B)Ngtk^46l@0k3YpO9&$l%7BRm2rA%Mt%cB+kp9qdM>@-1kdJQJsxgT z!1-sDAeW0EKfm(0Kq&vjemCh8;*~^4y%2W7G;}n{;(?0nc?ns<)a5}mI7NJ~>V8ow za9OzqXC^~Oh_Sc%ph<~<4-=63blEduvX>;F`{5tDKRcUD$(%2n_E>oH-(Lz^T?2i@ zmE1Z(?j)=Uj|w-}z1IOc`)_QBJ+uG;uY3hx#X>IGb>>jaO4zXU;-fM$Qr0K0v2J6Yi03`LYBcs} zyp|IsUnX?Z@K)<@t;9n8yf=9VcZN!LeXXIayOa+7N*6A-9eW}FZ<+iLe8`%!{J$JX zLwr0H0cHLr{)T_@A!MS*MJ=+R2$UdfDY$9FNqsDmvEdpCDofogr2+55Md<{M7B! zOLhBN!xOwA5C7h{nYP1 z&spK}Q0eZIOFQSb-p$^Ld9(EIh3(g0mY+U({x~b^*Y~$i^S&(o_e+RmJ6!zQmDg}? zEkCaz%VkenT_oxkP&@0#UcJk@P`tO=Wiv*L{75aP)W(7k zT^DJk7I`H}eJl>{6n&rGgAdII)toGNwOZ^>zTbNFsM7oO(Yy^2gQ^hGeQsSD*Scw- znL79mB3H(i45+AVEswrljrWY!hzgo)u1(VXI;;`#N@7i{tV((rHZj87)cxlmwD#m` zsD9bu4rF0%-0ekO#e#;eT%;3+(o>fT3X9;k)|R`POqg9+!}Pv+J8B`-u@^$Hzz|NDYyBuux`vRrbHmbB_CX*oY9 zIcb$kA2I)Eq;1utxjCy&Uaze!^A|^P8@Qk=gmAU!8l4=QNIAFU(P1?b=vQP1y$?B5 z?4H&YP;I0BDNQpCbS?s^ZKJqWk)mY(t=eLHJ8~i_daRX|^7virvjf*A4=K6^>}hQa zYf+1u9)I9(Q1wtnS+?F%{MXBHOwq2v031)P1x^TxYb73C-}X8xj`6M|Eg`Abr;kGX zX=W!H^IK6CI}*}r<>Y0cT$N!@>kF$_B$w(idwrME$l0jDGJ=HZTKO!gc`j%rw&&Kp z#0wvey!4|_M^^gAH^cvsCzDE!pZ%qLDf8=7>;E!EThm8RX8!)Dh;kHt?urpnm9^Lo zS)vOyS{DqeBUQw7l2RQb@8U;HiKShW*JusR#KS=T9G|M1+)p!&1s1s26=@0>S2Z-l zitcs}AaRrcvl&6&k!>T@LWFvG=B8`_KMZ+~Gi)BY+}j@5EFQ`XscW(d)yF7u(*lJn z57t4h<4&gcP%Z|XNw}LUAn5{8(R#5pFKO_d!6_Yu6xeNMMNM=h(-pnJhj@{~74p#yn+jd(3!zOo4p(cpU8;BT zX>X<16%9$Y<@srsZw9R?Oz6+gYI;V7XFZLKHox}EC)Vvytsw5CW9PZXe@DKAeXn_A z|GSx8{Ep}Nqs`r3$SqAZ)KPiSKc&;*j|ODv!b?V6U7ZMwjB#Bt-s3zwHf_#wuFfwHbe;r@r-h3S(0c|m-d z_i-I}boSfkL;(eHEf(q3(p6~jk*nAquAri!Ued1ykh{njG9PGzy74I~q5jfuLy#j@ z1>vOyIw1Am!UstoqYxBP_Hf{z?I-)4VwEp$4_XW;pkg8eklopIW#{EQcaS)ak~XNm z_nuf_rK(gBc?R%z#SFU@l?ETTeLpyPZ^aMb1-Lt{l+M8*(qcDCJZk)-8uUlBDRptq7&vR*SaKVdj)HV z1aah)#rYr}IML$}?H)A@046>a{=a;0GxjE_)qg5Dy;~(G!{y2#_b#3thUgWp$;3Ty zc3Td-(Vix9Gg{i3R+$}@&sYSR;gDWUF4Xp_;30LwB)I)^xjGxiJ6ze-OM>Yj_%&{F z`gwyS98Y5u;yNWVQ!bAkfU`99OaF)^%lCUVQi*JKAGc@rJXZeQa>y%C&~RM?=O3W54vU-n#tsO2`Md9eKW7m(=+0P7EF# z#D9N`#OZ{xcRn4w_vpKEw&9?Bs!ox^e?*$0uvXR!Pj%d8Ke2nSAWmJ9yZUvI!~l6EFm9B3;;6WOk45gHyJnX0jj9()mP>J>=~rw3jgv#RZa$S38c#5`ZTKkuw}-IhB~hjd0Mt%umqx#(iP7u26|x(g?AX_RQSYIf~?76 zx|LGH&_v9{-8!3y{Wy;4tp|^P<`dkHzdv;2{Oqyd4do z5t88(yN;q}OWSXpDn0jzEB|CDS8Ijfc*W*}^2bb9%t~tM(X%}D*#64rB61hlKXDZ! z;DGd3nE4T;a^)n%nQ|R2$dMDidLQM2p-(1OG!c+ZYcSn)w4BNDx|lQOblO0wLY0!6 zd_9gnbh0b&;5<;%de5*%#@uJ-$MC?IN3e$8au^Z)cqJfg^Htb@o+G4bn7jzWL6CVZ z=f9$^WtdnR0&Ya~6XYsUMphN9d^?wj+vPdKR$CGVAnyh_{sg@VHJd+}yMkI6aT6z@ z1+@=trst{Gyl;8;)7B>&o`#zfQ4etYY;C8jU$+&14zr!^0ItWX-V`qt`iPg`;rtY~ z%Gg+3oCo_kBeE86o$t@vA)-8c8h_2_B^xs2%uVjC_MQtB0R|I5i6gmqPVVn^aGKa! z43&=I(2s?(GBfUWc6TWJx#~!ire`Q5kZIOTg?(w#Hf@hi_CInU=T3+>v2RQBn?b=I zR3__ga466o{};Kx&k?mN8B2FV<&raW+9mG!X77q7OFIy0uOISKHtg{m`Hg%UvH%n_ zfBA3*H8d5JEM(h5q;sF@s63R7YGaT_0LR#L%>t->|G=^4HedGsqxtvcjsa}jfcp6^ zUQB8%UwI@Olu)Lo^OPPLnv0WQ?mkx$zYVm)cUdmWc;Tx9r+^+ogx`$_9F<^ z_rcXL9N5u??&AYY)^e=`fFnX^MCkBI2)*Zlw1o#xs|9F}%A3&uM=_`lked;)K!34f zRcXKI-R2-Mcv&hhGL-5#(uM7&xs6E2N)+A>$h9WY_7}KZ46f7+a~KGgmJ0*P>e7wI zSmEOI;{d3jgNA41hP=C@CAMFW!Mw5oj+4r9WKcAoYJ>heflrTsNL$zB-aA)eL>Y68 zm5v(e2qpm?vuU1fG?6bE=qv;{W*g1b00j~Tr;hc6DC8a=8(u_}_(4>#@nL`sEr-sG(poronpuoJ&O8X|p=0e)4GC)Q!T z@SsE-$cve)99VM{Vm*Ncd84E`35KaCpgpnjZ92`TPLcEtXpL>BO#x1zYm21l*7!$Z zrgT>#@T3IYmAi*v*wHu%bTG^-o`}?H&tgCJnawh^JgY)bS#}8fy3mlFq2KCj$r>xl!n9F_Y;a^z&{5 zMlVzCakSYoqZcUEwGG<4NgpC27x&Oed<%$QfWH>f;&Y1QUeQ|3TfGH6bB_+$O&qen zdj<6hd@1&cf<@WC%eN$u2UM8C*+pd%KPw@oLvNfVn`G4n1y_~+syWkuRAH#+Kq=CRx8$Jw%( z9|*o1fPam2QWyY-SZN7+kncQ|G|zY)34iw^P!#Xb|FXe|QbRri~UNpf{eQIS{4)E4Uv*1~_cc{=GoA3;{H6 zXnO7~(j4ke7|B(f#?+N*kjto6#2bc|{yK@Yw`DZ(73d%UIETVxtKdO5H!3526QSHx^Qz0;ap+eom#;rKl-Ya8sw zsnkjbrjF$0nfh6T(kg>M{#ek<9aXq7Buh4zw9$J733kk;dbKGyBY}~Ox)elS5Vq~l z1JJPzYS1pLuvmaCu~M#*=79pme51#1P#t1(^KC&QKOr@Z%p-4z#b&BPoyJa)^vuKj zSUf+!f9@z`?D7NWYlbclZ9vy8KyIctDovUBn`4E;S7{!IE>g(63LrOVRN8wUkbt+QL-KNBX-!SYBjTDS znYPXZMsJGSmNb%-T%{{M^taIx-)Ca$dgIONMLwM0R2;u4_B-)wc-6LV$3&k_{`dA6 zQ@TccOMmk~``>vB36?gnEAP^;JjYLYm$0|Jn`x<>yu7P0YPmcYKesJIOO=CL6MG|j6FIGGJJod&!mT=5Z)IBs>m=8qE*(%{4e^M8#_m_6`? zTv^0%yxVA`v4#KsiVArab;=Hvq7y0=jrw;){trX@k?w9_>H&yoy7e&4H=`?pNDF45 zvkJgY613Bcvep^TibWVO9!>k02Kua~&=4CKZSKSZM5lf4_F}WBK&a$0xlvw0zi6$DbwqwUmIrseMwEAZrsU z!qtcZoP&U-yCG*n9iu=VY;<{7uJqMtJbE-*P+%j_zQkI0WacKob3M^&X`zr*59*so zpqMggHxE!aiom|pKiqGj^-d>3+RBi=OI)FPNhKek zC&y|!5^29H3zD)y?s(pKM)y&a7)q9n+DM5Z0xgrJBp}dxNiI|ufJ5w1zcQ*vZ4Tnx6q_wsPX*g7BLEh-n!vvDFZ~wy# zTx=?idiEmyST^*|0&8LUN(!6nsO==+9Y=HXU5jwELCLi=2leKg3GtYNymS%QGW=gzu4t^l--aSP~$VtGKV59Wq~W;FY~M znfi&g>sbxW21Sb*r`PRM(P=_n%7j4a5-%y<%&2;@^gi{HAW!=X^-nzAk0c#1z584n-D(3^)7IuGEEO@p zpD!CGGIKo*!JG?Csmzue>QH;4^w3NDL^6;b0{W|kW?4fI+o<#}qsknw-B8M{t5J;R z18nEp3z5>6*`TA!pQ}z*a*@EirGqH~Z>JYu9m%w$PYO_JUAMF8Jq76w%q`OseqJ>I z(#tKO*3e&pfOCg&DQ(jK`4m!P3khXkcISXRiGb7Hbyhj!q${Vx#WAYwTFnSWV_3e_ z1jIK3;NVecdjg2}sP<;xcS8?M*`=oLIr%2rR%AAze-M)Uvj5B{XzPQE5?=Fv$n75l z^KVj1Ge;XUe{Q#uWfI>MSdeQc&K%?}eFcL*=VjL9HMdxH?9cO~GUG_p%oBc#+w!8= zz+8|n^FA$$k+)j`Y>B(CJDBT`og4Cpo)AjI2`!DMfmVWTmKxok^SE-cu=3^}Zh3`$ zQGV#^Y4Ql&nvb|DFI~I83IF7r?D;^)3}CTgQ{xxVdV0FL`OR>{->yQ#f+nENHnDvJ zL=2^V&L{)B-2dn6yO%fiZ-!s|rR6wxrBwUz`K|TQr$#ADkIw)6@$1h&&$a))R32#h zkbd(y?!uPYq2O{H=w^?Y#UiSF*)Qvs&Nf33ho)=vTl7$!3$^9hTgEiOp+ZfK>iNfl?)*BTZT zF|L^?UQKVg5GszDtq1ZDxPs2*Cwrf24vuN%X7KpV)$B=z@$*P(kzuM*MA803D!d|% zR9u>DrC&GF+j`k$-q$j#*OajjZ>8&vK9ALb>Q~#XFwof<`qe}N@~x7g=O)z4keHwhG*+mlrv`8E4UB`M8Q|M)MZ8N*!vp!Vxm!fV@G>(Un6Z!}UKREPg5vwiQdV`#7t z{u>v4%6GUVnKTVZ6kt5xrW`324<#)hg zEwi`#A9fPJ`u%p(H+P@1!;^7u63r*H5)Gxi&EGv(0c)4~3~cC?LRP>nwV_ff4X(!e zV-23ti`Go4mec5O_^qN* z=bhvu@(w#&-%8)N14L7v_nsJ$Qk(B16sJ{5MVonF zok%u-CuB#&P&1^>AC<%WV@Et*kGPrhv3Z^Xsii^oxMg$GTxNzk2 z8o!#(F0gfxhhC?UiZ;PO@7b)#pJ%(Q7_sv2z;YF@jc7EwAPXK#k0~CyDzn=z=W-)W zI^c9b$ZnC*Kf~4orX^|hy1PDjs2;ky*Yx^gbA*fagN$*R(;XUc$BJb}L?}S5XnrW# z%302NYgzdP1FEqWCLjHMRqZ^<#bio)_Yy{4Q|wUcuQV4CH@Ip`HGbB%m^}B5aE)i7 z(%R2{UJDDAf?r~|&XKv0;Hnh+j zWFneo^sE|2TuX6<-v^mb;q$!s>+1LCUEnDU-mdpKikoqM`XEVoR8xzF8;v^NC(3~Z z{$M4ET~WQnC*a2I7DLjG*KUVp=yf4EhCsnKF z3Vb$J2X3_{Eq9^I*&*90>`Nvs>`SFW)CNJ0pENnQ&6&EK9EI3FRG{J*w%aFhKr!rN zlVSRzlH)>P5lvm`NQulLkKPz#DxZzERePGkY@z|kI zOpBH;$D>zr{L>4WxtHW4YY|0QI$&1~%#qX9FHGd^Ukfb|oq7b&iqCM?Z!Ibg)^mc- z9(K3w@HcTCp*$R61H~q3aa2o~{51)tu~s=fuw|gB9Sg;@k)!{sON`H8`jd0$00 zZR!|Qt-dKMFRYV%=?INg6rjYK*;2&$7BoEg7uuRh*&8(DvfFA?0(SPT|7ovy#>-Ei z&+-l|ozXn}k5^{L;mhw$kL9}Cj4g-bFJ2yQngrY1Z5G5}8S-lxzIGd?MOH3PgX=2~%Z(Xce*fo6l9m7FlaUCy^JLe#*e*zH<}2JA58gIHE+#mU8oHX{>YZ^F z9(rk@n#XjTxHO~VhNINx=f||?=#(+eiMF^`X0GDOsFU_mQ}(=lo$|B{swEn_aQ~1o z!bv{_<|RBbx2f>Lm}nKrvkIh|?MPA>DpoV<8iCF__1x>%D9%YvF0%uemYi3f&U$4t zkH}QhK#KOqYgP!1g&|dan_!5hTG{c8jGQonpxfW2Ood!^$iUT+3ZpH83E9~?y9!5h z(%h1~l+H7sq38$+zIOilkqj-AbfCo8wXI^+@A(_Xt~5d}F-mIp{E36xE(XK_eMHGY zLob81r7xIpoxLkMKN{MZG97HM_H;kTzz}1 zD{Lo07ooC`A?2_Ex@}Z0G9;^tDN&=AH>n#6zm8Ll$0gGZr*WN>sPaaunE~Bwr<(R0 zt?U6a3+PKM;CZ_whEF*#xspD!fD_xy8%Ir0#YRMmiBgfZ2f)DPb=6hY`ngaq6i-89 zAVm$Zr9`!k%v# z8L+BHh{?KC$}(V{&~A6eDeko+D6Fd+_@dd-R2xqT=XGd(|x460Ms z9GWln*UW1i0s^q5Xu?#iES!x3olJ%DUZl{y6?tkV6#bFv0u)uFH^LP~l^SYx?ya_W zx{^2`X-`wu?c}OQDoq`y8f|k4M~>PKI%%#=%d8AIS3J>k<(VNUKiLCjWamFX3WgN8 z-!4SMXuyc%Vb))IrKLXA0)S={(7glC(KPKrNna?XNNV2Yq92Q>cMDW#2ay0Bb^70YFQCmQMnDMdHs=PLu?H#ZjuR+LpQuUYFOfboYWjUpKF%TWBZ|Jap>?5z>(VpMX7%O zyaMpJ&PP+}26N8#jM!WCQ4WLDrQ=jHGG(tsg)VYn`xwu1+(~=T+1_W^QBzURh-Kz8 zfGq=kjpXS;TJB^$UAk+4Gjh_*9#~PM>JD-v<($Qx9}V$IBvGV7aK3h4tS=5k*;6g+ z8Cq35sS4-Udngpn2h9+Qb?CTNeO%(wKw`rYnvcf;C+B*nU^B#ol?xS(h9p^pjg$c# zXou}*>J@^hrn@>$wNfpNIyCWtYK#AmqI3Uey8pxY&Ndr%VCK9r%z2I>w2ho)IptLM zhLB1KN$TEagd9fBNh6g?S~^MU-sXHrqmoM9Bb7?sbktq#{_gt+?3d5u{eFG+xn9@x zyg()t>9oTD6|E?=)0FC>rIIHaLAp}AV1)W+Z~f?s`qTk?K0{A*E--K4LbLhi?83e4 zbR{^FEL&3IpiLk=bKwrkJp0xMcF0=A-!7Zqe_%&zLZiO;6zfcFePVcBCo9z ztU$i93zgu@(aL0S*+|X|Xne<{f>7c!c-AXT%0a>RU3s~0deT_Fl6<3{D5hKdeww#u zz*Pa5*(CJVRmS4eyqn23ma9^yJp;BfuKqf6L*s~XUc{qV8@rDC#-pPy6tEIoOZ~-w z7w+}{CL8-=y2ZM1ywzuevV@?Y>$M$DS>YPe7-Slc9M3bMN{R4Sf5KElpyREp5rx&& z1cVm%H-7~a8D>^yWNAf;1ySNZYKCWOS+y7MuzC|!d^D@hgHO2>p>J+BOnmF@5zMfn zfeTl*+QMXe_jrrSm5p8GR*n|sVo|-oU0Se_&o>Hg%l>mc)Or@gSy`H zQM_;dmmgI!9$sqKo1gfmkQkOTMhF9DOLR9h+-3N<@#L|CLhHtiw;M8e3f*5b`r+AL2Ll=X`7A#Q z0^+)CenB9F6dAs=DB{;Wi~O?i@@(9PGnfu^Bt1^L6uZW7%=Y%HBOjT1?e9Bu@YObH zq4pm$UcndNB!Bt5HsCQTjcX$5@ohbq3hkA7EB}dfb?NpQdwq&dS~t%OQV11sP|F-b zEs(s-aG?%Z)^ZV42_~Kfo2TnRLg%xxsMH*42Z$_weL|uDTIVe!dp$MmkNhKxXH@c9 zQQoC@ZT|Kw&oG`belp8)-xEiIwt2=|1>f6VEZOhseQdJF;o+{`7@l!Tq4LGkPaSkv zmSpxxh?E@xcR@xXt_5>oljfL1!(;o}j^;0PCp6fex!;Ze!rntx@IiXPvo<-QS*_b1 zTJjuL>Rt0dy34?VJ>Kg~kUQZPhwB zlzE_tvGGfmUZi0Yg>y=#|JL<&n>5AFBj}KFZSIuIS_1B=pz9VceQ&h^Nizs z%w2gw;V>l`-MUuAS`&mI(6zI9x!lki>rr6Hh8&8VZpi0}({tjEzh>Q@XU~|O%mJ&N`MS}DXO_1fch$tY{J1?W z&7R+2u3L8DJAwCxc`51;sE_cVnR#Ppp^Xu_;@mxf zZnoc-z**{8v-~8RNFKi<74=k}~rC+`q@FnVS2{szoQ#j%Egke}h*Cx|7)@c~# zPi5V!xqz$AlcL$M{ zq@?3Q2Q+A{Ckg@s{Te!D1xTvOKKHvi(crNO*T?<{~ z&ht_s-MItz@xJmBl^n1I@9*XX`j52aZJ3sm(K%ErnW3$^EzfRyYhPsl1BE z74O!rz5w`~+tT8yHlOsi#x$g!;4+z18g?eIRyXRJ<~zD?g`QjPmvu~%f3=B{JbDnj zGqBDo=0^4pY;tgu?t4TlAaVreJ75>w`mUhCiz7KE!m=mfkJA{~lW3x@Eja2bn!mjK1SCEU95bWP-W>}yJ}8j)6?XR+UW)^X3x^>TT8$59Qtq!+1y!!}KnjV`r5O}tk@ zI$qbDUP>L?kK&$hkv5W?-Zx*5EB}}z&hP-MIR5Eyz;QTL(7o$XS7f-t*T2#%@mcE~ zP}0SxH}*b#ORu33IVigz4w^VZl>KK8mf z4!@AtysKwS$-*={XoB9>JpGTBr|;Tpy?x>zXY~S}5(l+*_U$@bM_VNNRQr+-mTYD+ zfJMHcE~StWf7`JoobKiynZu#(PdbQOT$JCj$ME^7?Sa-~Nh3v?SkrTsm-?|2*4O82 zCT#Eg!cJ1@i+)C@))!LD+g7ifYdu)WP~Fn8n0cYqrMh{%wcy*@QKPJXJE3}-n-K5M z=fS57>r%RR6=AZLZyi1LXMEcLwokA%iLYDCG%htB?L4iudG9SX4nWb8XI$=}$a|%` zCy8r))U>{lr{b`Z2W{Sy^&=5N?(}CMsH3UgxTKyKGtG_JqYR{NAHe%Ybc@pDImMs5 zhe-WTFr=HNqhk^kb6j@AEm8N@Y4FR+2V!-1C%57g9~J%^3U~F=iz}QhlVHwKa#t(8 z-Cbj6Yn%ZR4d<=!g(3pr*xH#!$Mx00xs)`WCETvFl4QN~!Rf*ZdeSYbj?&uMaYB7# zwi((5&wVA`>GPwoiV<6|hTW{$hS3a#^pX7x?0*d6biEN-qan4geU6_!vuE^eky%gD z@pF3ZVUu0gUo^k(zN64x5nbK#`J7Wx-^kR)=e22j^XHEomnjZ?Su$@8iNEz)C;D6C z)l2!V)83k2ldh0k{l2dZq5R52&SEfo{H3baz39{GTbrMtG}J+J^QCs9bBS8_Qn_7l z%MP?LEN&ay_c48NU0P-(T1`N?*wT~rl4%wu<#zq+2C;vgeV)U&yC7IBHS@Sr7?);H z8VolqrZM88TQj>c8>LhR!i-1YecB@b@X^I2oA$B78FH|w=_}*lX|UST-$X*-!+oZI zC3(a&HY)xzd5t;@-|TR04HW}1#!YjE#n;yCH&7V(sp!x{UXr$bU3<{!89p|xZ52s; zo<_bb#>8x^vsbV*C2#^#YYar_Z%;@))i^!vwWg#uSXB5&7S4bP?WKGw85fo~s$s>$ zTrt2Xd$<>|${e$KYm)g+WT01Zf_a|P(B7Dbi_hdPb>~(JjXqO-DJ^T|ab0Z|Uq_E_ zN^UzE+PI9@`?cumz=ZiMf%L{@g9d?ANX#xeYUkXbgQyxw%L4%VxIFwY=csHe5|bd~ zV)?6u_&LjrqF;DIw+Na74a1Ji`8v|r#gB8i$aoRz|F+gXlvJH1m*P9AQ1)|4{$ufw ziSYnff0d=Oln>i5x$~&*DlLjmWULD$YAL;oF0lfJW-Yq700ByVzRuF~&EOd<(^Sj| z^wAyDsJ*$18t0kk+}|E3-h@)fnl8%+Ol#Y&>~UghDCe_Haj86THZrqjxxn)BA{CZ^{}4f3|ltv=Ta z0hryPwQqxW#fG1Fp?QvIe>{|DT-!!4HQd%w=2;RO;i5GZk`a4iex0Ndmtm~aSMII* zcv;mg7^L&J>#(sZyDAUz65`C%vIUu{dhogMz((oPIPHEPOBEH}3Bn7g#qOL0ou{Kk z#^feG8O?>AQiUqHKJbl=EY;Q(22n4Qn8I{IZ6B3tbt#3dB?)8Rb(rW2fQ6<@R9gqi zle0*O3=6IT?jZ+W15`KdU24Z9iMU1$M7}X|3O6=4>^L#PH(e#7USpaZot~At2xzcP za4EKu2y;Y%@Keh$2Wz&9TCFNTb&iXe%utD>b7+$VG>XZCVAr&$rK>= znyAQjPU~`W9iM!aQ)Im)MCGhPwpZFCHZBQ|$IXEf_gAZ>h}zZJau8lQmnUwt>*UY} z;pMEN5hmX%n2zv6CvV7FfIIL>hzNpIBZ=n5YXH8FZo-Av9!7gPB=>*<(F{S7DWWsv6{B-N?k-d54)$|GfMC(H%kpiElxuVHiT z<7hfelfz|ky!Cri3k_W|iQB_?>P72z^UEY zzD(3+K^x@iL!SCLvv>>PSl`8Jsb)7|)WNC!{(ZnTLZ7I}A&pgkxV;`tH)21k-jh0C_tUF@83$r%l({p z<6>;H5~EIfOes|D--1ae=?UAkrqb%e#vE1wY(X0aYlk$Os2>G1q!l)ZiZt`nm?!{Mjm;o;~M%Yukw%p@L8Arxsr}m4}vAoU@v61;PhCJ z5-s5t6@eU{uNFH$^nDK(9i=#ZBmR=gmo1viOaJH5!Q0UOoj7X}8qZ$P2V&4{31N?) zSK!}1T&*J=DfO>O7kqI%Ww|B02yZ-4uw1OmFt%o6UFpAfVDO1s@qb{-a~Ffx+sb^V zLO@KTDgJOW%1Ac6*HAp%KWf+`#Uw~{o0Whopix)5(QApuIuS3D=tR*EDgXV(%b}pR zxabl57aD|$h9$|rDgex8iPks(oF|8q&*g6E)~j8>TpKxXSB?zZj4dPS)hyr=#-_c- zlpklzZeVkFxvGeTv_7pKWv<5;<#}CHHMZI2z87^@9K#HVOIpbPcMJ3u4cWuGA`ZBhlENt(2mwoFP^hLa!FSUy+b)P|IcsS%C^Xka1k{P*8borS z(KJ{xAod$4VeyO-@EQM!c|Ajpi~&B{K}TaVF&5lizi1dUAeLN>-Ja_A%LccN`*-S+ zzqpEI$SR5$$NE>F5uQETk%V<;$lhQ~mV;g;`v8@uROrExLYSAIX7HenB{e)-2)BJ`Il=L1l;}0H zwLo+Ym;_B+z`B!g05;kXh*e)euh?MoI{Zq^G#~c-?ZPdwBn9|PldxMz?XPV~?byLA zoTA46*hBxSFF{e0!Sk0x>c;O2u@5>||FQpvZkQ&)nF;W(iH7UI!2jsl zAW7D>g-Cw@9AyFry~Wl5M`83&Nn(}Q&khL^hn*62szTmS%(^}bz+}@mIZ4$0<%SaB z2Bjb%;_5Ky5HU;D*c?$?Vc!kJuM>O5Cy{r>sAYhsXD1GH$+?~g-=WbEZ=s#{7TI`a z^2-)2_hrH$j(nMjnB33V0$D2)n{y{nPidc9>B_<f@bL)kungqWNmVH= zK{Zn^>9tyPh-!xzd8iIE8tBS8uRPn(2$u4PYL@Jc-CTU@$4$STUxF!~RbO z^i5mfz!hg&d`_FOvDOJc3nG3QZ#`oib?9cpA)_03Zo){Jv9;l5>LZ9{-gLpH8^b+L zM(^4P4sA_Ybo3(INT_K& z-jB-A>t<_xWI>eqTYc&*9@y6RvbPhUn)Y!r<9wX2%ERLQBqeQO^@0(-O?{A6pZc{v zp6*!5#g21OS##-aR8%J2qgrWu5pMWIWPB~u`W6ANr>WM8_fHa2Y(C?O2Vez4l@eNX zt*y3MG#S4zr@0eOYH~axh%CeoMfLAb-T_)rOo=>GDtQ5Q_2c62)b0TSbq~ez4M(bQd9!bDU z*W)u|gyP2Y-RK$2*FaX5c5T+(tqoLD6%Mp_Tx`AgQfrmyz>%vQVWp{X3sK9xT}1vF zPVPs!ok)ULrK1GItZ@`5bgyT8;|jAB88%cMKSnSE9^K!F8YT+xCMfnXR2osGM1G>! zmGRl%naYVjfksVo)C?tQm)r0Pxq2D^wnN^~-H5Af(^GWQ@$fcOpnPAok_jP4y%Wxh zB<+Z{t0F-31sZbd>$ZP}a65Y8HDY)y{OZAa~(6|ekh>n(zB zx~et&`P9Ty81178l*+Qsj|=9VbS%G5$A^vn1vIo}Aw15Yv)OuCpGEB)gisEv_r|aK zhK3NKl$)?UHP~AE<&JQb8jeg@q!GQK+r!3xYC08Q@t0*!JR)b1D3zjVZ`i|IpTcVs#=)7~tYn<+gr+2E_>{Cf-_aLO=S&S0L zL7LmBy3>%uF+e0IdDHd3g8yaFc&oZdc-iVGD?3;^(I$YyWn(f{flBFcQLX!DZRN%@Se%O0~v2@tRcFg*hY*ao}MFBqCIa+{t-I+}g8% zCwi;+JHrQE5jaH>HJ62Wm^QIW(;|27n-D`NNMwIy0-^cFGZb<)22@&lY6Ku00&I;m zbu|0%HjtPV!-9%_daVyxEz^n?9-t;^{pP?|`lmHU0jO2#^{2PLw~T2iIH+v-u@ncD zNq`2UEg_-JF$;jGl~0|@xs$PK`ePZM4}jq{!Ku$@&DZgUT(ziLpVFkw=r+Mg-3u?V zey*y1hV*9v`e}pr4_>`&+`aABj`)=E?bvkv=MT0&A1NN1Y#4b24|L28OkBY~>afq5 zH2Ot%_=BybbTg}xz}ezMol|zJXL$ia=#4cMY@%i(iM~$BjkK`msXJ37jrn3AnYPV8i%1Sh5fXe!tq)ldBkZhJAm`s-gS@AA*+%0@`G0ip~LE4XcIz3`wVqn;nI zt+f)eM+uPOz!ENLL>;}o0OUraT$sc5M;1_m8Pley~xW?4mYj&=37CF5d zPuFlLQYjFxWQx1Z+U_5@%e+cN>&4@q3;YY5x(hhJ9Bd zi57>F;Etxv}wMmjY&Pb(B#@w&OT%| z5vpVFR-#V=6{8Hdj@@uZ?mWuJSjRHoQ9o~uxv}%o>+()zUsH%d(sG1*y_%jaBRA0h zR?pBV3I&d_csV;+Cv+8HH}?#l$DQ=8GIR^f?%drTbi(7{IAqMKY0s2z6XNCO z2`$s47a6fmOSrpPBk}BAGlrqUWK4E0ig7!fN7gUE+#Tr%$P%-SR{U~_c!AjVh5EUuqOI;{w{$`)`yD9A9?(4gi2 zyv^%`gb@VI>57k5TnQUS>UMfiQF0jG6G?8$SVZX8?qQUY1$&C%6up--gozZd-wjb7-qF18pPk8+jZfR zviwPOFY3PM*y|g5`~Lm1UvJa;oVWh9u^$5(o;Q+|tk#(l|NB4fYv5;xXVZUv=zY`u^JD+_^o>2eHppil zgPZhhc0cjD7@BqSdTy2HyyCOQrtiUp0k(3==h0RMWMQDsYM;{Dn>e>BM7!0tmH3QO zj2Y^_l!bqqdg4C^Tjyw&Z=QYZ{C|_LA_J0tg9{KTXDB+1$%#U9pZqCly=3rY* zBFOeaUsn6ril)oA)sj_Q1$0yz6V|+QU~>wU?pq=#)cwuHZ#pz5OJx-r!^`}i(qWWI zTJbr0h58A9UzcXgu}$S969!9)PLHOfb1tD0|j2F2MT7xz!Nu%DB z;p^qwR@tb{Ea~6zRG6caH024+mm&w0Favm&?IiqJl%iSP(MR|vx(Qz&T79|LsM@-T?{iLIp-TWs}> z3Nz4L-G|scXw%KL-y)V^PWQbui)uR>q85g$cTIZjG&1r!coACU-$a#LL(;YcXgqO6=HIyXD!l|Z@$%Qp z*zVvE+yA&#tVSBr;tEKslUQWYn5!DN&Qsr#!Nt`AP_do7Jvpq?vGD^smssBL9yh*0 zNt^n`JeW&5+lN{pLBb zdAUYe{gk=Qd+9ocHLObZy&f>w{9`h8%hl$`znUKOW;s7;_w!h^*IQoj?pgOY^o%;F zaYTmQ&^fl#lbQiENF^bU-eqX{UgY~CDR8?CpuCX^txe@3cPM$Ffh-WNmW6`iE~#PW z$`=$Py*rk9S^L^5lCu{zOyQuTJJ2Bk`e41Wy*{*bhBX=$NuWjOU+#~f&x%4Cfnett1~$ILBwY^LVLm5OOIL_x+&o9UVL6{$N`n;5+)!_g zE^}a67iXpek>#QYX&LTWre0rH_wkXIpbOZMdt3+h~Qq2oV=Lbe~6^B&G((HDrkdbBpV** z$qPFzb)d`ze`(kIz3i{ib)xWS)xpUa!z=wNtp~khyng<;FTOJ3YRlmnpxfX9;+ySf zL=aNr?-j3-FCFKEMK*irzA@;%*cxGx9a$e4G1o-!7jRK~Xb`_irNA$~8pj&YIZ5?F z%)H=f3q%;~R$t0T7KjkdJe4C8`a6*nPI{DDmG=pJn-xD~idCDclVuyFmtP*zA=ncz z%0nI=u88O8ZLtx=1ZVO;h7ep&c(B+A?Db1-fZj;^F9pm z^K$>IEwf3Hv)Vl-gfevU;c9rLD2kQ5&EqJ1?<>o;2lzT_cEACy(r%&K%Wdacm(^*A z*0Sp!=^k{^KXfDIdS=dSf`%jmMB#u}k|DyJ)JP#@=YiY+GQ>+vs)0d*GN3V{O+%Vc zz~j^iVw`g)Bxxqyi-}Wc)Eo(uVGhWE5;Urn2{%RWI@|+Jzec|&QmsunXusc}QXGFz zgdop=Jvrd_J@A_>wa3i-6;o&=EzcC9`l$|ujs&q)__h%5r>sLJ98k75k?aHSPeD2F z1jTStW98749@D1+R6A3}u^P;J4CS@MZ=504QxDrd0@GL7HA3WEhT2Uk+?Wa3MuWPH zhU_8c%Npzz--ru9Sh84!IGv_74Lq<4&%J^WqT$?Yer*8N69V^?Gl(&QWiEeb724`* zmIZs({gAy?u`(r^0l)gd@*FR!frdCG<}O87zRs&$N)7y1pz&3nosADVU!5YV4ZPwM zw8T_^HnSjp!Vvg3sA3KpkB$wen)wL}?N>o}ip1nI@}v?5OA{z{11>?0sFujzX;7dEAS?sw%BRx`b1=0|Yx*#CDOg7oe1a20Lbe z-H5O~#K<{0u2u8uCvfC~1G;Mk;Kt9A11=?H1a}R1EH!4YQ(? zKb?ulCxT2k@HD#CVIuwz8Q;u_s%0UXWcpJS%Se311J{5CV?v372IsTje`anwPz0|i zjLNuzXqGkCqE(j(CwkmYTyu*)ml@be)(G9E@k1VX&^P8YK;v@;?tn)rrzQiC_mB7`CW-kf6Hb$!;gAVe${u zO*uR*ro>Bx%@iR#>>CcQdOc6Xxva*y<(BC#lm|4YWJzg16155BE*{m`Ach`-y$M~N!`~F@4`T;r=V67z~=RkjgFMBxRP2X zjDQAHjyvoWs9Y3m9;G2jfDP6}1(@w-Sjj;?;h0wmNDN{Zodro2sI&@DPX%4{X0SI6 zGBwU>79fAbBL8axo9?RF+X44<^{d$y9cjTOaVyITra z+y0cRaH#O7ofQp>i7ZKZ7h-3t_?*YHt6o2^HdI?*t_}Rm(myh*A#Jny1kiXTkFi+G z-LVSooQ1|vq0H4*@()NTH8YB{?^OpxP3Hh8A$N00Y{d=CN-;R?=fP8t!5#UK^<-$4 zRowI}*u#H=J?*k16`Vf-wz$xqz7e8UnsCGl{QPZjsL=Nz5N0Ynpi6}%Fu@{S@?Vc^ zGnWvW7YvUyUV5xx9x4Ku_-8;iQ#X0!s6FN&YcuwGzuNs$(tS^6R3!uUCma703EM|Q zsJ};D7r~R5;3-XLIG{AaM-)O=F%g6Sjzab?B1Xh&nrkWvBJgU!mARYy2w>HHoDen> z{w)PjB|{kPPTI>x9M`erkq9i8{cmpfmOtB&r>J^+MISDKe$B z@A2@>uWp6~GF8|cxS^b9)&q83gEg~IPpA#_{h%P)(KuG-N}p!n&VF}hHS%_M;-Kbb zmd|F+^(|)Pd4@s%t% zZ?)&hs)~IaJdFM4rLpGqLx?)LAIDUD_t%6tzVb-EMul_AwKcub1tqOiW10mDLXoob zpbfK1+#?i{Em^yDJtE_h8?I0OHkJAdU=h{&x=EDc2&Q2RS^^=heN}iL#Rlpa$fl?@ zC~wNsV}PXTn3?Ec^Xf*n_Q^}Gv7I}EpAOzQef!4WF{a@(ei#j!bsK8HR;ghYT@W@p z3z(7ymm)M(_vU4DDmeX^i%V9zHg?44^B=BTRdT{a*=~oo?1JJ)R00=#SpFanQK4Rp z$-so>CGqH-J^*D zktYYw?1a*mOQKk@VMM3~8e0CLb4rJw$Y^z4?%HX-+r@sMKw$-b+r{+CxbMM)oPK{Z zr1O3zPKlI&?EijgdiX{fg@I@aeLD{F6hP9CLZ^q*pZY+CXQirI;QGhx2+jo!4)na` zd4x9KU;c-?Xx=?T>MAfMiBu!!kQ4c1s-`o43jQ#^244#VH%3DY+GhUyjJhn?v|*Kq zPJo!~CD&4f=7|ozuiA&rRSRga%}l6wDip@c#Icc;ESNK(n=Atc-g_9Q+hlnlDHWqt z0!UV&B-6Jw9hbq20Prg)_@6|05l5?@^ViLms|V>8jey7G9gAkRfe`DI+=|B%9h5c; zlCxY^x;^$>;9N8(l|EOpUJT88Rw6XbYuh-buuR4oxK$^gE^bomRehB1AS2zf1WO*L z_nr*z8wV$W_WG}0`mubz?H<@N@Uk)_u)RaznDP8;fYZcwh`$(m)$(b^C(xJn*4R~m z#X`w^3-o8_lT&I>C-#CJ1zXM0%VucU@0=yaRl5sB)I$OC80{bq_H?0QgLlM>xriq; zrisHV)Kd=m{Z4vT_=Y6e)|d{IkfW65AoM(Fy!c1~@$D2%iJn&}u7|LRpk_3@mgYa~ z@1H<=RR7YVK;qt58+oQ3Q7aqgq5tafP;%$tbs|LjeDl&z|9Zzo^CKVTT0ac)toukQ zIcgdb77$N`*hOCOTRmQ=(!N2VcP1)SR@1^lS}p2I{UJAZLJ_0OagF#5P+09tLPL zEjD-+gm7$!jUY@(WiD*Udj`B1OlwAKZqL{kC3=@ESBZ1;>7l6*Giq5>P$Rj#@8d&D zbG%TDC?;FhAJ;m}jikS+*oto^sKa$_wNg&bE=~M-B*LOW_<{e&dU2?3`mAmi9>uQ* zf3@wJN`ve_3N2PhB>TPQw^8S_6#y@!h6p#wz$W_&y`FjRVBSK{(0H9)vZ6P(ey@&|yK#T^ z8YmgkPOD{{^g)b=n}-TrxA!@nuQ3g9HucQX+%+?GvMxC+E20EVr1Md3?bk|i<{|Yh zv7g)!ikj0t4TkYU&5`e;y0_ms0@aIJiSF5XuXXc@s1LD9o9Epky=@=k`*J>1K5tOQ z^YbLOjk2)Kr8T6$n)tDH)1U;~3X}BdPef$>P_$vHr2N*WI8y)ySuH0|4GaE4Eq(>$ zI|U$BN^3?tf(Xi3P$BZ?KK?b6AZSxD{CJvIw%Tv94=&4tdzWKeWyHqqge#{ZBt;`D z0bz>@>!{z|Gj^uhA&}N?Z&QXID5oc|m9*3NgWi0*{?)}}R3CH)ww3`rGhP>+aKR$T z}2{}(}TT@2myAH<2N45nXW zdTVTUn(qF@8@a5n`##}ViGE?Qy$$hJObEjnt6H?9l{=qk zPL7LC+5j8&BK?rCcWn^d-8Nqoj`mb{>|U zHv69EocPcU#|0DH_&Pg;{}hp=L~wOn@3fh=@2prE;Jh)%P;r=KlJO}$bTdsC-*q^- zT5~OF{CL!-B#RR#XM84X4_Y3tXaFsdEF=BThE;;c27Hh?rdM$ z#Z$H_g~)PRIa1J{z6Uvua@sPJYJUijB)BgAr)2BjM{f6WHob35trQVjl$%ig3tf7)1Uc4!*!1&8oAv03dBKmau zGxb|LZOTl2mL99*-2BWeHEo0&f8U*1mAP>M?zHNNx%oL*;c*`lA(iJqEuTMwo>*Ui zYM)gBmD*)f7eF6EsiY#Ugx(J@hjG@R@7~I{9qL$-m~qUep8&=*MJAk24tia?|M;)A z3rUkFCnsb6oAH4&G(niEQJfIl5RqhCVuornSJgp^J2@Bwj2o`Wz^E_-WmHSr-$H;!Z&D0zNrMye|D`?3Y_wVgf;R-*q zQ_OaY+B^sZkxC1QZpXPK62a!&<32G@qusOEBD^O3#jA~#pBY{bBcHK31%-(VcI4tHN)z3GE?k6P`KqCh2$^ss~{p( zL-kV4ix>WmR)*!ZDz2`;?`g`F%U8MA9{@1IFcZsUzHR*X^H_MxqGRWml^|x*MY3*Y z34^eTsh9K3A;%^q$&1+95(t@^88YlLd!?#qPtvQJdkg*NPAu3nFxg7FPxd#MdxpBt z^EW0r-MA=G8Bo1UG(-{;p_YvRbG8U__%N(|yN$6%Z!UC=b0zBZ+Yn4gqt0;AI9&UV z{>#z*{k$I$8_&H=#eYlW=f8N+caqQjE9~4UYnm^Dp1O;_?0DzFl1#H z0FBhOmtFs8J6e&8%=MH#LndG7_v}W(y;v`Aw#tQ{ow%N=QiH=8s$kT;RhKqk3#!kZ z{oIi5VY&>ci|Q#2p3E^%=nHRJSu*WRl?ElvSQ)ExOME;)TYQn$bu2_#Xtpt~kx-PB z)1PSgeQreNL?<13(QWmspar)LyS%>YU_H~Q}mr*h{m0AN0Z z3mDl~faLmd7d>}IdKTFCuODaOACBYS^iby~DdtyMg3ZmvdMU6;i(I-i&Qe#sctP0B0gxK^kELm-QNz0_X>$(DYAmk4GKm=EY@K z2OtQ4B5$a)kv|QIGmR2SwYu|$EPd=hZdEd2-uNEqdvxbxUn56JE1*|9Uj*lcH+4C% zfNE*9sfj=<_GXxC#`4~Me-nX7zY>YrS}E9uGZ?*aO{@FQyc487;U_ZmLKD!1F5lT_ z!)o=2#94Myke5k=)s2RDS)+b|5M>uxK`V_jcn?lAH@=EaK9~*WY!nONvF1 zrGv@T@VSHo*L#gX74>0p%h|l8!m%wk#L$ANN?P|-1vB1TTC=#Twh|=lfm6FQ}=0OPD~qonMm&; zzHPxM;7x|Ax$zeVZG=&X~6mWycWVsjf+(*3CY|COqq&w~VZB3c?%{V8W#rf)>%L8C>`xZa{zIX$)n8b8`k)RZbiX1k=E zm|dd#4>stP+%%T+s$_R@ph^Sb20anba)7HZQY*~5Q*hPc(M*NSwF*Rd`-a;TaP2xS(L%aL{OYtMbOWN%0R>CZW{k~S}JgQRs_P54$5^#y&vJT z(&^P0+mRE~!9Fc`mbt0pMES+Js*19|9C#+PtO^x5zSdZKAHv`Vz^74lP@B`ZBCn!k z&|(ucEK2@TKMy+C3?hw^-{+fe@M&N>Y8`TL*&W1}D0V}9nf#=O8}A-3-B=Crox9!4 z;ro|B`hQ|WI#1n5gU0kiw^NJbWkqplzc@;bv&bA7EHM1Rng=pZU}}E}-W@0{89$cZ0I8n|(^|#xn(=4J2$4>whEE+EfLV+ zi$!sx&_pV1yR2wCdL)TCGMqg*!k@e*=3MIO$(sOLwfG$w(75-M+r8*) zKQRK*#^mpWsJ0M2JOdy)wF(Kfn!o#3(AfT>=*A+6_2jnKkIzCy+rWS7$jypXK0zsyMRH5R*w&b!_xI)(ZXAU?S6&QZJCh zT?;O#847^lgcSu|bA&Jlj#; zY|ptyB=3=6ixcnkC#U=80!45ODq-#F;jk8b;N^%Fw?i=QnmIp7g#RtI?gw&Lx@5R}RgIoTAIPgZ zw$?O|Vzq_wDY(!>%V^mx(nsUH9%=!hhSE`UebsT-qK#yEb&LCh^I;9z%GPe?`3p|Y z@_yPD#sdU*ygk0o`Cs4@i>ueYL1u3Fs(9eT-n&0efSh<2yqr&-ORHOLugcLuf9Ljj zEcJPVsV=eC5A8BM({&*jH4+D#5>ghn9sbF=>~Q2E141FrSo{^el+5RfG?dM_Wg zvpG5T3i9M|>>WsdSyQ~));Mv|`61{Zk&_1cvx$$MUV0Tf>cF)ooA2PZSqweKcg`4e zZZoFdQ^-z?m^tzEh1>^$m)x^YrSr^GsOc6b{Q#pEz;>FPI0KcI@Xl6%I;_}n)MSri~ zBjT9PaF(OFpIS?Idd(9^By8_Qt>1Lv2Ai&F@&Ni7psu(Bb?y*8vFYYOX2tI61^`?E zh&iDFjyMw*Gy2TieAgPvaMa{U+ug`x~a)%o&&M4e|iTmS#Yvyc#x*t@ZbAZBS*lZd@nYm3;cMNu`{h#>Y>)TUNZt5mBR zdlW@c9a_7p+G4tgOuJ@LY$yC_vC z;VfBI>(b_a(kADlN*%t0)q^)=r@ge36O?z!+k?)b9?8l36Gi)-IN%6C&PE8q@j-N&yXNkRbr*B@ zgZac8oP@sY6P<#E&o-@JkXg6leIPJOOaM*r%QJ97K-n3US0UAzlFfoyq@WIgr%6*w z$i1X90odJ!;pj>g$Gi*I`T1#Z#ZVC*VMH!V2_Nl}62?FcH0ppVpKrQX*zz=r0DnI< zyfA_MqwRQpw7i-3EFiu71r5jAv|0Yld9uL^=*M#f?K_U- zX>0ez_+_cD{ZBCd8Yx7M=`VtMd1`cR}J?f`B&y-*%PaQ-aG|S9~ zEe?t<62?Xj%%4XjEgxi^@SWdj3{n^7wEcttI6y+?IbAc9&86TmUn`m6Sz6(2XM&`N zuY}A&ZTl0zLWL!Ty}w1 zpKa;ti-|eU2=;1{d991CeX4a6i%>hh+tj$OTdEj@z5i+gcI&U1>369nnR84@qaQ^J zds=E|46hGuTJC)kgojkl^SWb&2RxRkUp1j#)wQ#)(1-we&?MP`t}#8@U^k44u?8kmu;WCZ&Sz< zsWl`ulrlyq9@7m#xzP}d2|D5ytTrG`y#r!}OuE2G`jUA--rf|&`kQn8niKfPtCTRZ zE4$AMi^vPAk%9vUzbTn+htxDyA95)gTo%QHCgdN@(k0^ZU$G45h#z!8N_H+1?2Ix7 zdOb$;Bz3BLvj>f(Usz_#RT-4#gI>*NT}C}Fy8HWb_2{eg@c(9CyzepoP5YGpS5(l6 zGZPbV(eP69EPqU{=7*r{4TMN8XLYrC`G0>dUmZMNXNAg|L5QA1btd_8uo8%;q&M_9 zSHdVuy4qI8gj>om&A%+#8#*Cj+UPnzv|U$(u`9xwEF{rW%x-DSYW}_Wjs$Q=sWghci{8R z8E46KekGTlvX&=4X8ejKS@JeC2yBeWn~5GI{!lKG){mZ`b`V*%_^`4Kjs3*0-u!A> zm%pQ=l5=Ei>daGz4#qhI&r>z%Lkpg}GVwRzD9YI_iiBR=AyiD}q*>Ln3A9>Tp=4mni*b1n{p;(f+08yDWm$sl?K)RwH_MGt;&%Ku%(2r>)cSz9 zOySz_k8kg|45q-ZT6@Mc8U&Eg?)ISbK4&#ldt==R;IfBYZ}%_!pBVM-pW^i za^KdFy^D>hj!dD0^EH_wr@%g$n{K8KMAtAM)S9dFR+0_h1=kK&gBwW``do%&)DBbHkU2IKoR_MHp&?iy$AEgE!MfyVS-fj4W{5O*AC& znL_7p`7>cgu3@7(z)`*_x3E!zr!v(L!_T*W?a?brN8I_nh{wevt;y%A-lYFny_e(~ z5yn>GHcpWkZThE^ki)}%4wcjpA(3vtXS$|^GW1OA^W~e-j8Tpnv`K3TVk zKKE-ahN^J>TCfIlo@NG-uD-eULy{7nph}Z0wC}8y&ea`aNM@Q#dSklzey}xJK8cGQh za`{p-p>lp|(+4GgHFn>>gBY-3^al?1sKco-p*4sv2C&)^T50E8=cTY_JLg+`A=2TH z5``T0z(66s8f0r%6Gn%fUKJw0fB`!Y*uggTyjym%{h6r*oO(tlNDlW|w<|VZuPIGdC+vTDp}2+Rd=?i4ZD_xxcAXVQ_LvTFJ}_RC^W~$ZGPMf{H>Xjsq}i ze`wDUmfnr}gD~lyN#}H=RI|yEj9s@xAtb;7Rp{o){#yvacBgRY%r&#qkDPMDi82uM zNs1TmXm3&)uIH`br*{QdCLoT}7sl(?w+YX^R?+o;~x!>>ZupB#1Z#)`sq$MeLX9zN>0z!eb6x+jUuNDF#4WRwh;0rt3 zlM(4OKL!yFLZ;mxkpo>*b#B*C5E(X5lT>(Cvd~?x^+>_loJ_b;ZCsOtwK)b!V?Mj*?HILg zyvDtwAUS<3EVcSlC>VgSraz)Bxdo{=pFA8JZbFjN5@!SVMuUZ;LtxH|F3$&gdb&cC zSe0YIl4Qt*o#O>(z5z7NkWql7364leuctaNhvbd(Sj+-!IBqj}8ggLe|;~vjIX-60aB%qea5tM5YO76n~UmZmaBvk*fbnZ6n*A-`;BS+h55ZpJ?wN@ zYg2R&EXdL94~^ejR#WffGO}uUnCbUr86o?ZkrQYo@<>RxB$r{}GcZZ1`YzcFZVb(T zas|$`UFZl)oK=jgr!}{amUjdQEv_JTq6#` z9L-+6v@MwuSpl$VpNLIQw0h;4JeRG1ibUB|L!|*ENjL$Dhl5agyCWF)+z#n^3jee6 z<4!1iQ?}pSO%QKeJ%0T;WpG>e(rwr0o5fa{hUv@10^C_ zoV7z?;*`Sl^r!G7sRJ~t?>2!Ovh~3WSYU7kl?~!tEMv3(PF;T%ne~OjBF;8G&S`@* zJYJ~2^Yxj*^lvi5oHs9$hn+?KKDEFj_GHQWGv)N@N1?|pV0sPn1+F;Ke```6<1GP? zTiHaj=Q2*KKb^hD_=NTMVTp&sIW#oan%nV0G{AME zM|61lCfSGGZaJUDt8Y|hm2Psut-FdYUdGQ##Fx9Zxz)3g8WmV1s}0t^QDLp>#F-BA z>z+*=Mcj87T&EW&RDh~bU6Szt3}4N<$8yy{lT9bI{E~9d)G$pW3EeN z6gS;i2W|H?K1JAgOg^lxe44vzSOnj7wCne^GJ-;Xc2~@m6@fl{DVW%5fzciZ8JGebMD-g!@$}L4sAwaB!dzGx;9YA~LErMgAet=>Uj*D_ zgG;eR;MxA(VqGgTa9e!b@6J6v-uZJ)%s4|Pl!yW?VD5uH6RddjB>1jNX(!ieUrK^W zBU{WzDBbJaw_UiUSq-t{6g~(Mkib!w#?g<5!*iQ;~xxz!=Ms=~-D;&$y9! z!XSp9;TkrTNmw?KM|wo3dEz((c!iJV&1P3eO?b_;3+>$gzLa^H6c2|c_-~X=tUf=Q z;z@OjZ6vK%mlEX5l8@Ne%QpfwAU)krPn>y>(?U>Hi-}Cng#Kt71BbDSM*kr6DGA@?YmZQ_| zaU+dTYZ2R#pSz>r(zH+wAaZ4s>o35#MWh1fcpfyz9dCU3_N`kGp`As;rp0{N3&Vs+ zQ&A-j_x4jco(bt_LvGwm>Q)A7&4V-7&XaTb-pooB3xZ;uu$Ym|-Z9=mUp-FXbT7zh zI`FYn16nAfS2bn{Wu=ySMSz#q!9_XO1;tTY0E269f)!*Q6MXDw_=p%P8~z>cl9NM) z`-cgWq||gNegY?4z;R*Zt9Nb0ak-3h&+V8txmcR$Pu&#Pz@%?#V!_>Y)Kf8S^_kQ+ZTUnw2(3HE%i2HyUa4y+okvt!JnUeW0jTr@tj$&U~OR{us@2au#S<4pH%q%nEH!`MQsSp2Tkmj zzrpSHCvFa9Jl?xM8XYq7o4OXELB~VipW&jI<9w|oY3*EJ&PUChkpzBgV8g-73zGaB`;N86*`5FRcj?(nOr$%LJ*uCTw#1jz zH_ zt7i`I(l(QqBNjJ)=3ZJfp0T9+vG4UvyP@~0{qlMfg%2LI9yiW!KZy6P0)>9aKfZqF zg>67Yb8BBu>#O=ZMV*ScFV zI8av-3_7C7FGh80B%$|R^&Dv?QxO__inAsis&4_AP?F#(Z{geZRc^CJo<0TA`<(SA zxAXw-H3D$PrycJpJMR#{U#%<5B??S(b1`+qx8ABYCkKq=@hlTUpEi2+ z*K)QNdnZMnLV~tvn08Svmog2!LmKs#sLC-xFD#o>)wX|86#7aPivpW|JHL;d`lv+V zJugE*Y20!uT=H(DdV9|!w(x=xRLsZ_SdgWBo(Pn~Ny>FfULHM$^}GFvzWc0%Z_E9l zc`3OL_rkvw`mN&Gj=KXu^#!kIN>?)9jZ2(Sx|Zy3rGm6CgqH39Q(N&qcnW{b#I7>s zEey{`jUjml8)nDnW(#-xcRryzL?ns=HbzhXY7NLGQ!uAV9m?n&Lxk_TXD{Ezw1^0G%NOveH>U{=3D?EAl}#3pUG<` z-}z`VJsZxM!IS~8NEkeqP*EewMG!sk$lU`siL}9ThvHR3f9T#Yg4dvoZDnhe6fIk} zpBzXsrIn7!+sy>SbL$ssF>DFCnTWdL<>OD6l?A32%8sGc`>lT`MAHDQ2@ziz0ahWi67^*@a@X08&INYX48kPPVjTXgai(ljb@Ua^ zSOut>-o82XQMmRFwEfGg&MUj~SN4vi>`;UKq5O!g)QS=8e-oCh5zI1~N$eJlDA406 zh0~X7;VN7HC+_Op_eOEZfYL4--%0608uw}AYN`x1`HM4~2Dg`NXvy zDs29;HtBuUnAm5fYI#)Z8q*g!b?7;px=$rVtWaK?oaY8UhgmZ5Z_Sr8d_0L?ma-@EoUa2L=!M!NyWb~ecfAeJZhDInnd~i9U z^bWLJ^N(}WpP{?OHTdiA@BTf&W2>P?xEW4x_kJ;+HJUiuUho<9-BU$7k!>Fa8LX@~ zG=E%a{UZ7K-)A73!M_e`oHio8?e!slW#FRrLdSTjgYrn$x}rt|qQ}hG3&NhnxU0}g~MtpPi_mTXA zB%8O6r{l=uwT_`8$s@-8l5gy5_;;xS7DBtZsxLdQ#*Tk;9zR|7xHa~syIPFX_4i>- z3x_kvWX56}Y?)bd<%GFK#P)-fHMEaw5D?`>Dk1|V;^rq_AAI{*Gt`(so>Mk;;8h+gpaQt|zvPVx3N zPJW27%uaI&&(B`dCi}FYKQ&>xcS3|y@Gj$hvAuWRuTu6NwfRN}&m}PG_5f9teXNZ{ zMR=T&{DZ+$e@`pp2&1g?=ZrjX9i?@3AkVp7BbPv#@_9PgqzBKAB!EiII=28tGF zmY*sx%DST{8k*xUzF7-U&4jNU$5c)P|7rK-!mj+YG|c+Y568~D!7;+UA!Rx2APF;7 zH$jWBO>lo9vB!$Hdevt$$?n6;($_N-C7|)QyWcXc?;9LNi){BL-cgNV#xw-=b*lGu z9ziG0zFxS-8a@B0W#M?Pv!Q&ICxnhz!3+I63ZDTD{daDS=hS9V+eKJ;EBS1a%q(AJ zx&iLEG-c{-7g0fOhd8frtbbu!leatpMu1WAb(P)jSTfbPk3>s z;A?TSZ>`|(HqR`l^_J<)o^owKiue?YaByr-o;V5evNwKu-1Xj&Yc&b^v|wel=iy4Z zJLA~*jZ&JT7&)N+uZPQ{XYG&Vcl#TsbU*&Pg2vnTg`ap!*}z@FgA|`MUU};Z2=MFXX!`>ZBstX)edQ1S3$*PMQ8Mtbk^i;U87X1w~K_dkr zrb{>Gl!Sah-aRJ7<(#|K^WnLadvAqOOky%z$h@pESDy_bOdeWXv#DdCq^8SH8>#*4 zLwwK*UTh4bky6;+4yFj4uZX+$?cIFC#m5!#u|GbqkKa6Bc|HEmk1y|@Kd!uSAV4)_}aPA&IYfokx+Q!{6VRh(u|XRG^h5yHKq7qVmMoN!@uT~Yv^DNx?mz8 zEyXdgL;0q>ZcCLSf6WF%+?lZ_*Bm2Q)7TolOJF?}V~j}_O<=#nCe?{9osbx3F^G7+?S0RpiuM3Qr8td@0B>sEI=JNkELxuC0NQXP`5u*XR#{DMFXa!&}lQ!y=q$?Y|Fl{(uum zc^D$0gxt$9oEpvL3R8>`ewE|$CQ@)RbKm5=wOd|uUe6@2XVhpOkSimUB^h-YPZB0_ z2ks=P#8q=R84qzwZ-BF0=~xHj+Jl~xUnY~!UKDx>(a^9~ww%RBR_YZ0R0`ygqih`i zlYC3YRmeNn+a}_R37qD016<6{e)w;I+5#;FlSi@zIi15ovSFMSEuK7FWV-P29Pn)f zD|j$^O!xQ;z`vMClU)IFeUBV`F5_vnHk`pfeG|;5oL@2%v7>%mEo5=n9%{tzG{g%z zoi86J7n2f()VeYO$@z;!&Vh*3Gbk+Vr1zv zc*u>a*KZfd-x5rn_P{kQ!$JdHX`0rOLWR~~am?)mZf}72Po|Obe*~^GRbVj@Z6IPT z4NU%oPsBQG3TFqf_?YJ3jX(O}0TfyJ>&ld~OCTVtj>+|xeLpB^({HX-p>w(W$Wmeo zNb_kmIW9y3+r+T3&$*hskg!Xz&!BhRymDv|=S2B&u-~IPZ(KYo--_J=B#_jta?8|^ z<3c0sLHlBoCJhJ|nUNADVCXeJ=P3bS{DKtdGc@a`6bZ%YTkQv8B@3zb_w`>{^q$Un zbphF?gZq3fb&9z%!ll{xYwMUIC4vaXYh_Knl{N4Zwkb;B3=IVf|9-`K#yrw)tLh{S z|AmX?PBo{m;4thG4h&0VXFDrTv*@*cl_}1{5zDuqLJ*~(vbB@woM~?<#)5+(@U*P- zOWVpnXp^=VqzL!(hW>7hNvv>SJ)82lbiI%JV$=vQ?TBUnbHqCFmMG}w{?}X&K#3{h zyz%|z2*22Nm2Qc_8vaMVMH;TISuuYF&fje)*cW;JfywIC2?>6_egt zU5eHzc?k({Z%j$jd)@@7_Wct#XK3O#N+(1b-)y`3LB8I7s>y-xcHO}(4@A2m#3!05 zgpW@?ZQp!ah>2%yoQH>R=?`w+c9s82R{6QMRSTxv^>(bK{M^-g%XC{*w$28$5@_Z>hDo@QcgmaanGC+@X`XIpy*4_vr++u^=B z#{10qcRpyvSU4G4@-C@>Jw$6pTg_#=Sya?HNW;1t5l&7tG~-(^6LVfr=JU86RvLgV zzFU6>Lo?H*pwiJKsY?S*@Zw?KM#i}A(0qz|futB&oq&L!0}D+sxA+ac9_1I(k;1n= zxc&J3JTnt`2Gl>xp)=_^0tvZEwF|?`&lgN>CrXG)bj80Uq6RYW(z00GY(n1|O?EnS zWkM;u3d;t&j$?tbGOVXp2;BR0p+Wm<)n+xmi*Q-~PNp~d>i!UaGhjS*r5JnKgmxZy zc{6C}{S17M4_=%Tj(h)O~@}IX0^3T6NW!m<-9{V4zu@{f%S| zVZwFg%0{WW98(y|n7K6Ngts(n0Il(MJ>hUfe9SVP%FLm%w@b<~{Kf|;7|W3{;}2f6 z|MiBkukA)NNPQJSupFXP(LOYk=)?bHMjWq7^p${aSQyHxBAQgE$K#-xKZ-XKX-^&8 zS=c(0S*?%B@Ls9>3t5lMHy>rygDJyW&QktWDz>)OrRlcXp7nZO7-7v1hRhLjy#@D3~q-0{LHPY%A?tF(G;zMcyBTL3CNzK zjD9yt2V8L{V~vN*e}m%s0d#pJ#(9k`m~Ez!S)1V}NnQh=pJNdRKnT`S7ZerJl32Xg zPGagD%#_}VcNl3)U){7Q5=CkwK)N0fEj{c>{y;K)dT&Zzib{sHlYE=2B-#TSTJVf9 zwp`JXTT!Oy7F=H7293JsKo4vT2JA7i;Z|!9wNyyfo`xerQ(2~&wzJKU4G7jp95<+3 zw_oR8UPDb(i`-8T$sus<0U+Ajpp`-7i)t}^r_}T6_bZ>FIaR1^s(2;S}wKz*6je_Q1Zcd#u?i7aR; z-g=CR`eZ)h`uhFnv^oXvwJ+bj)k2>NS@>B(W{mbm^>Ico0G5{RWOh39<4L`W-+@R9 zjjipyS9_J%(|Mk-yBoqopUqGDR1XfjYdqTF#dGP}{OWDSm*6(cQ|hS&-d?}9-fic} z-U#<9_$gM!F-XG(2e1^P*2$oEMM3AAjEQ@R8lNQ-N6%WvX%;-|^9S zL=sCoP-7EROvg@1%hpuMR!BMQTbR4ukq(tKaT_a^tz}>u^r=;_DyG*6gQK%*t!G}6 zbxSr2q!2Owc5gE5<#c6dm)IW@MeG#hSC^5XhH?ER`A{W&vrqPBZLE^d)b$dzAPZo0 zh}JIK4Wv&2dH8ybmF=gKN`ER`9M1*uJZU}V+GQe4$=ZxzD3hugyU1(0jvT?WUFgJd zf)xXYj7s&-%=xQVb-O$|asfa24+9B9Khb_QWY!&FW+9y_+)#PQjp?mndqCMM3Vuz^ zvrG!_tncU?xYB7!cY#K*=iz6K_r8rBLXYQePl!rM{3O*%UseHM@tWH5IwsnL)UnA^ z&W{uGv_Gt3Y8%}+r1}33n+DNiP zhxPk&W@PYWPq59zf8LPL-!*K{hYai~X4`7IO6gbrzK`0GfqAnPN0UFf-su)jw`8e1 ztDjRwqGPr%ybxw9qtviVo8A{K;^-W@*M?gQG^@7tC5UgiZNNWF`He@VbWTHw=PsB| zZA-3%;Ki%F#iZG>Q^slAiZRp2Z;4Yz-s7|=KwA+vHo4{}H|PA+!D)Qrqk^d>X-@yl zF_Pvtl4h5+DJR&H%E}}T?I>|D@o-Zh&kz9iT3rR6|2B=J;9X^0B<0X8AUpFtZvJ%q zjnV(=k?}YwO!^g>wPlRoKI^#+o6GO86XS8o1#x8|&I_ZT2V}-1>pR(RUNCV)bv!m7i?~0r7dyyt@Q5J?#Wzfv77WJ3p9+p)LX8m27lAo zau zsX!h&4F#(xTQz=AA&p6o9hIxq2v4Slo}LR;NKbLRBg^0ogcNC3Q}3#*cO`-C87Vdxt9$oGHF%ryVbLexR9wtXeOIKQz1_9 zIrm4__RXv3r5-2uss(N4r(L{uW$A*2{k5|I=@KF7dBXpyJYuF(woQ%iZos|`;j%zE zg~VhR@>Ci~@sm~NWMA2g5T5+hcezKj+(4!baEbH2_0`5{2J@1cuV<)fBA>Tu_Rwlz zi_Uqv-a7{AIC^5tbs1_(4Ed%bE~2maG8MMHZNdM+&3`P64Uv6jFPvyisWYFt&^L}3 z#`Y7X8PZZ1P?TRZi+$lDo&vxy?w^ztQKnWpq93=PzBDdZiQIr`yV ztFNVz-1bn}T2bpv(=>M!SuyG%Jk_w#del1V-Wd|~#3_uYn-%)wJEx7fm0=K&KK{~~ zzp3Z$Nv>ZHiV&yzf~@t6(d_NgwHj&ps$MpusU&lVH*lx6nsVF3rA}&$g;Z+lel_{= zuj8yjvP{#kjz8O{F$Cj2=%I8+Db$GgC_Q`+iA%GjNh8HWE*dVCPH3QQX;GW z!!yGdFCQ&G=~0{9P>|LDN!3^eS(95H{dstcmvcmflevi)bLoFv3)$bYB>Dnc3*=UR zm*1+Y(3Ld{4a_O6+YlX=*VI;Y41(DPbwlF1Uq66#+ux%$5jaFxBUOIZ7kX!JIRBb7 ze`9AOG*mk>pZzIt_;^ccDFTuzZA>mA8;ZO>yo7Po!P?@UFjRXOG9yBZvJBwRL&(|_L&NYublOEl5i!D!=nX@yH4|Ak)N!%+^ljvIwJ zPP3w)fv{8%^Usq(UDokk>fE`e>3Ut2=B##yx>VNg<+uIxjf^QsRM~h~`9KB6zuHti^{g$;?U}I`*pwNNj>q1zaDcXI zhxaBs2~Nn};{Cdu*^To!pCYr7D{BdVmM_*Udi!*=&0xo>Doql{`s|P_&c3Ea4c?URKIx;%qDq(gh$mvI ztT_$vB|*(6qfn3BPadQsrIly|H9HQ1#^B-xdESS`(y1rrh1v@c*a_P&TKodkFzW_))VTX7MM!aa0?^&Vug30;* z1Dctp+7XRIX{4KGuC+wZhwI8DK)C4v$DRf#l8}rCzrB3*qNy5Qi;lAK@mWebvr7hF zbWbQuaHJF-B{*N{IO0EXg|ZNDp^J|Q?yRw1VhgJDd%f$S2t%=uC0#x5#xgfan z&fp?hz`gakn~^&|BR*o3esR0~Hp)c4XWk&S^*26lZu@y9w-NM9B8SRfS9UI8p87J0Lu!|K@nJGzO4hJ6!wR zP!?`|OUgoV1UHP(=S#K8H8}2!DKe6G*tFQfP69&OUsY^#Jz6{LOx7YvU zj9#O0Sw^oXU*yyhMn@>U1`FrR{8-Pkvb?rkU^3?*&+bG;r;GePve6 zUi01AGwwConG%A2At#7kpKRx(78~fQV8?CkFpL3?{VwCzX9tiT=hokVwT|lE!{D*A3{%FlT%4bB-ER zHe*EkK`X;FxQ3?^Ix24(mS*2l!*`c4iVX})cipcMcnlrGrG;g9V{3(;GR8ET!!m<| zYen8d$F--zvLae)#Xg^?Dtlqsar?EW{)0~7*~4?_*g6TW)Cm$MJU1h_?$n?me6B#B z&pe_|MkT;N?|9!!7FPB0CRvn^-|z72l|6h2et$<;`|t#~>0 ziD2H>Q^k0FS!yz`6}CYq){iT80?h44rR$2Lxxy>1R2-U%$?g)kD8*J4NBa%u6>mc4Aa>Ms zfCc`))H!;fa>+K%P%Xb{j$wKjnnacNp9q^t4UDLz)>dM;CG@h=BI@GrNSj!tEfh3I z+{T79nR&23E1rs|*Jy3BxSaN^Y%iig_hXaQ4fe$<_Q*z(QnO8V+F~6hvdKK8*{+g( zsnN73ve~}1+2L;5QcGau9oLV|7ay}Px2Hw6cq`p;dYZP}-5l8(9CF9yE&KEPQ;}^E zt#{l$r#Hm+VLETB-jr#?QZ*PhldWIt)qMvb;}LCKix|p9I0)GU-k{ z$BANo?fX9J94|R)z5+iv>Ypd3J9EVF7w!Ur13hlxhbzLl8j@N=IDTen{5|UGH3-53 z0203-KvsYV02>8}0K|g{z!axvF;4R_&a*Kt;|Z>h>COW&_K!m>9|s#VgY^ge&kT5~ zKXy~@b5`iKS8TS#R2s`v5~Ocxi{Dh0yoD3LjT38DR~c7Ro&Nt_Z3d?{tEe$2srD43 zHlu=>(iE7`gH0K-Od0@Z2!JPN08<)(NoByK0&q$iIC%;1?xm1 zI*=@FoPbt1;4TNC0|w}32lT)I57>Z@!JxqtW*Gp`0|ayf03ATUT@auR1ZV{ST7ZB% zKtMAX&d9v|w zar5&C2n&da3yGserDRTFWh4|8q;X2Js;UZV8p;|vIIXj4I_ETX@ml8z8ioW-Yod+? z>8#-i*w{#qWP&#|BO00On^+o{SsGec8CzPLSXr7|TUgi_TiRM$*x8!d*qhlnnOVD8 z*t%NTJ6bz9T3@(mbMc~$qoa+Zv+YG!yNhmi7v1fhJRF?eF1WZ~bR}PO^>TFca`NzU zCVRPf__})fdr*SN-hmW9e~Mp-cfe)efGhq%R{}z=1YQme3XKQ}y?QAuI`m3RSY%vy z)b)sHYD9GWm1|e8M2AMkhDXOoT%$(EQe$GN@i8}UT#HYLj!TS*Pl~;s5_co@dP3TD z8smCm%JoD#HHn^(oRpB9l8~H6O-fIoXU5ZWW0MMQB?0JHIr)w0sh}{J5U@qiyv; z#QWJMm)^GWvsXXDo6S-z-OgV7vUShPFZa!(lj`&rW^!3}jqXpweN1JZx}Uqc+wvlz z%j9CWTP4y&|0+UE|6%~BiSoV0LGnxEPS zb&*jxY5z!IZ7QtY$yV^1i%O;Czsqqm%06xh%lG%!xOj69@D+k7#(8$l-6s@GIcm67 z?H?wvDmiNeEUh)Z0GmEn_qikAhcax5c<*;<<*&k#VyUX#4dgb)x8>qpk16iH^)il9 zwF@PCp+iTQqA!lgEBz*iTFxEzjPF&Hv6e$mo4^gUngiTf#h$T$T$Uzt=WmNs!%oZk zH-(GczK=*RQlFWX{G*KK-OJnDv66S4)2&U9i?aTnq0YwsHAOUFzZ#}EWj<_%NnepL zmJxIgPn9h@_>wG>Z!T%V$Tt5vVOtp8Ihcm+**z&I8k675&{+20%+%g#+|1JbzPp)? zXI0qBA@K)nR2ZDoEzZp{*O%k#4gAdl>FNOqmW2$FU4u%+4GLv=0_mu*S3ynmfO z^6a~bEkl_$(lZYET=T>nt9>Rd*=1CF*i6&v6InFosZt*btw|QIJp|2Auk?cg>J|?q*+h<0>pI~YZT4TsF^eSq5?nXF zCK=s$Sn@_j!KdB zFP!#-VcP|-PAMdJ1IH!n55svBZY(CGsZYy$IV-#v4ZPb!oeML));UcyQ)-y&NItcr z*Oj4IIVWMH`h>BhqJDSeOES9V@cXo4#Udfa=Yiofc64O%AnU2}{ta{WhXs-oqEwRP zB%_cFIw^NC-Y}NRgnHv&ZO5+MQ`#wE)nQGrLv!vu6g2=h+m- zG&a-Z{4x@&+7=gqA25rzzmAJH*SMOC1>x#5)Z4s4DGg7}MW$r}4kXxdpfuZY#hVsh zvC3iX640wp3lPSb3gQ*VyF~*_aPQc^Um8D72KE@m&dTSfN!N0EJvv%yzQC>$UbJD< zI|ASQtkOq)!zO=U`%ap4*w25T{(R}FG*$ia+jIQw;x99Eg`f#SDkkeo(vK}%1${=+ zvmqKR0zj$xYb5fOwhx~wn1^R7)CyMP^hLQl9{J-E`O1s+#Ucz!PA0Kjk=kI9-v_XZ zXnBF!1AS3|L~893mZx}SSX6SJVYol-f1EStBvVv$Pg3{`!`Qrr`{u-mEPq&#RSjbu zvyc_NwwdPDWlPeo$x5~MHg#wjKX*(xQF|$T0$2m#1r*oS#?7D{M>s~$EA0%vMohP4 z;jFVHYONpt&c{$zi&C>DLfZChNGk4#s$@` zz0t|8dvg;GCba@7rQWKx3o!C~)BK@E7HQ)6L$_!O7gf9HV`DY;jrOL_;;TAby#ai& zF`0K@*ZmaW3;W-=Cj!lkVc}W7d`gQ7A|?9mAM8AY5sqjg&(Z7&vxHlKHuo>SvuI^u*dQZW_&I82t2fX=x(b*ip#t(32~G z3I@-R&RF-`Aq_a@WpEO(vx`8Lj1x^QP#b1SmgKcGZ!*0&wNUin@HTE~e)$bSdsxC- z?32HV-d9y*^iN(%Q70E7d^`*DX86<|a$EtF%kI<9idZT(I{QXDYir+9=!r4QDQv>{ zU9nH_sDlyZ(p(Pf_G;njP(#@!0-GjaL+L5mKoT-k@ht+L-kK;l`=g3f&^#V zm*wNu#cU7Oxn{7(7OK>awAa4~ysu*|CEp+!cJz(j$4U^9E#yfE$3UQVEfHN0vcB?W zh|8}kQ3fq-`s;o*6`Id-4wazv9RCDS9-Tb)`-sB^Y0v#FkyTZ`JH^4eo-Wp`FWl{w z_C~&zZzS)MpV;+pWAEn zqW7L51nB8kJ8{V$=DDIyUTbW0`r$De7HjSxx`7)R7W_dtAG#s-9+z@)#+uD4+E6(d zZRA|}1s;Ij@Tqn5QRGix4A+*l6=l+sYa=+>$m^Kh1dC4r~%`#~P6 z@V{kIeAfnAm8)#vcDsgLOqNgLb7(h>F~rT1I?I5lFKil%5I+N;!(Lmf&Twtek!o-^^U2`(SXm{=l)w< zbC_l#i8bs#L%~;GvHP{TxZdFvfeHaqp*DTz_}I!&Zp2laklqr{KF99m5|;Kl2ENa( zU5ySMc0TP~b-p1^p)s@7>Rm80InVXXl{|s2ge-e@uRU=a)AyM9jL3P;u~n1X z>0sxrIhXb>fnGhW$L43T>W_RUgT;X>)X8O3M!+}Q%$oU_u$2$TEYCK^l3)&VZR&S0 z2X`&t*=`YKm7Vj_>Y*JZ0G zY%9bwbR4GONsdoc3ZTra*uNhm_BAVarvz99*Fc@}036v+ux){Ckc%s{=3medx+9*G zIuoauRbsgcVVC)i$toCV)fhRzOEeV>I$mGAL)+OT%K1<7lc)GloZ!3!-wDzUn=E#B zh(6Vu2-5rcZrSOYl0r7xvSQP51C5sq$|v12P&wN->N#z#a6lNRa9(`FTq~c{@Bqw=bHuvBwhhVlwMgyKK*jZW|QCgo@>J?mIKa0}3Q}8=e@ki#N zv0~};c!74S!V(X8SwkUqTHzZ`@gq)w$%75xozJ7-e=v&cc;)9fNd0@wQ*y8uLgY&x zaw${cE*D%`S!Mokp zQBoJ8n8j6>?{t9l;uu0o#7P`Pxt%@JDt~}WJTzvNI1D*V(R?MWdC5T@ss^8%f*m`X z;-CVdiAl~KXBQT$Kl>~E^#H;iJK zvK0ASwn0UG9<3coQQE*MuHzJ1xv&8{i!71C@o|$`aeia9{OC8!IdRP_L_STpEie>b zP$aK=HtY!%{=taW27+f5!4|N{%a}a(T$Kw{2uIl1yoqSO2+Q2kDyW8zCb=}ULd|C~ zg`6VlRM8!rJgYh!|FiNVcKhFk zT(gK#a5QdskAt^y5U2Fv$sCh+Jf&4G=ZuIrT+P(Gha82p6{!|G@bRd2}_A|47>I_oktIQI6mJp7EkRslxI|;~! zy_V+|8kK74D<>H(XDZ@ zr$iy259#2Bzj+T{!6V*wAR4q`*NSS~OfFrM z=b8uIvh^V+sBTG@ZlC&iqr_xe?d5aRc;xPJ&3^8&)cat;8ZzTR3$D4kHFKAcXmw2* zKwE^knu&Oni4fu%^-7VfBIM;UWZ#75wIWKX5OU%jK0Zh_NenKbz@NUOXQSY&LAvY8 z^2hKkZ!)W)k~So{>CgA1+Y!8w`W#Zts$9C8$&nS~$HJBB1J)+~sRoR35Bf*{|w z9hW%RrPHL}!z_t>*ubVgsF^cRu{c)MJg}GSxUXH|3r-Q=AD2_Q)5%zIlWYG24{_*1 zwhhQGaAoI356XNLj&q=8Vpv86VpNEjrYQV}gC7z@x~THYA8W46DXfaYJC5chQILap zf1xdL zdi$K+UR^}DzH2v4j0Jfk4+<;$W%N45bZ~z4B9(#jzm}%~KZ1gDcoVf;_%k7bi$-$) zAa2VH%~4_3u9Qj5e2OYI(_)KKF2r&(c4`HlMA>~&lsG`CD>s$jw=Ut!HBP^h8S(38 z3i0rsivAHUd`u`9agA@Et_$Q?vEc`@m8pPbb{|c+1Yw4i>rb9YH#7FdVOqsJ8FHEMLI#21oN1QT?XVN$QPi_=rIp-)RN zWY7KAM7;89IPfq#qdLaBZ~6^a_IWpwy7=^ku(1;l>+Kgl&P0syJ_0?vXJ@>V;VN1_v)eDz2sxl5p*&_u?zhpXo$&_hqWaN$S z(HvCR$oXf;Df)^Iq{KP?+HJU*wXwaP%?k{RVvPK4Lr=-YA3LE(^~V zgY6=Qi0d|VJp8FAqKksttMPi-{e=?bJ>PMP?|BLWQQ?bB#AlHTOp~teCIjsA5_<^F;BnV=Xn$m@HE}Mb$7ttPa>ylRycXIdp9B_M< z3C<=X3Qt38F;Dhilt5FdmmFwMayXETK>6zd&=l0Xeh)`p4I{M{e6Qe7a(0yRz=FAH ztMryt3Ie*;DTF4S>K(ItYBpPL&OJXxXP=V7by2*lurXypSIJi((zOe z608aZvswcyR6$EJkLStOSL3MFoPX<2{%Y7qj+QRJuA<2Db7$UjcaO3kJcW%|d7AG1 zIa~|QMB#(_HLh}ggXgHneV8*>of9I+8UQmM0xjgI`ff1+;3zLDn0Z%I#D+)hfs zI(s)$raJ>JT>O&}W%w}+y6c;KO3d{@Z}OO=Dxbw%%SubJeG>-Q{Dc3 zLbH0t``!B<9NS#HdYG|em7S6Npndq_#o#MR5AybEf&EWh-E&~8_V?Q!HDkj4i$Ukq zAHO(nUlQyT#jYcZG&~#P*jenxP$6olHohUX^Nd|?O;Qv5N+h|`*kcX%(TrolJT)9<=76=)4Iesd$up>w?Ti7Z%lB_`my8qw(^}u% z%ie4>QSyt39MO!bfRB5Bxv_nbs^m^7boZ>DP{pXokBlB~d>%#c+Anax5M|HlzZO$DLP??&XM?Y zl@1H*$KwLvdc~*%_k-E$-2j0XI)Zo=^LMR zVHV!^M0&nnAFg$G)ilwdruQ1x+W*k#+!kO?U=mZ?N|VmI&BzSZ-j0YgQqV%?jA(`k zx7ust?fwNJscqdtV#3FU1eNd!!{I9TLaoa~D&J9w+miRLlBx;vh@=MXUlQR|V|+mf zNhAHnID7Z5w;sVhsY6#y8q|#x`M5;=ZM6P4c?W9*l)n_ zWOe9Q#*7gZn)2lA3a!iBwq&tJHcDDs82JB*M3&QywhFa8?YG|Bo~%v1qwCAtKz;Og zRB}7m>>ZU+Su({_Gm^*#u!a#+~be6*5W}wc!175D{ z*4ih87acY-)i*Ym6r)rD+ArJG9X_JUb21h6#8@x8Xh|y~p@F{bcTus^skD(0Dpe%Z8z-1GvPG}?~PT&n*^!1Vt_7RjX<3?y%U;R0^xUvHKn4qxdTD#8F z6^K-=oj)O3Ir}BA*djRCW0ABOOc9M4f%lo9rE6m4gcVhojXHn z8FEzJNMxv3RSr*CzO9gS8LeoH$_#6+;b7rtpk_aA*g%*GznVfRa9Ay90AZgz0OLSbT zIhP+|sF1J0vciyIq-v6;0138ujw$wEhn8iCK)m#zaw;{RYP9NY@(~5^-rTE}q_I@y zd;?7N&(u<1@IWt9U=3Y$iVVl=7AZBaEpEJ!&OZSQj=Ld$@2&Ot)iPxpj|hc-8d7V@ z1e)x>dOl79T{h83XWK*!LM2a@)t^<#=}(Hfce)vFyC5YIxg*pPWcV${58KSJN)T_m z*+85*Q^q4}Ujmn?k_~0y_MhIKw0{|qI|eeJ=#USF@=b4Z)H%1}itYO@sazGp#qn(|=a=oepVFiq zfS^+a;`XC|aK+B=1{Fp#PB_F`6`ML_$)~ImRf_r^H-8CIa6t8JgMSrlAA0R}yqctt zD-AhpsFCM}ku;Tbz;?AeD7rPodwtj`i!^Bh-rS&y{4DF5Rh&upA7`&$FSlzKF71Yo zNLsTWKi_tXWpFU<%TnLx$GIUI>Xm5&`u+W)AWtPMV($>(*kSCDg~FRM|BmCYcp4+` z)`c(?^8tnP*pYvHYY*uZ5BOeNBiCQQzcXP#|Bgy>E&mNgKB8p9w9A{J4I-4q*tKh1 z;efQmrVw4iAw8LD7tBY^NI+^H6#$HyoWy~ zSpHOCHkF-Rf=wx6I5sfD#@vcA@W>Lmy) zZt{(s=px3%F_yWn+%6Q8gDQ(0yPI~uD;C4rg$H$G8dJN#J4>$Ve5fINGhWGq<1<0_ z)r^fU<>dsR|JJteGT`{J>bLi?2@!IhU5r3)#i9>xL`UH5W2}n7hfXC7MIb2w$JhyF z28&pnV3r3JxL3oF1C_Ha0+MkfUn5xF6krJFpT>sLG)JIs6ffr^^ek7}f#Ffs(6(C- z>*Ck}8^Go+kXHlGvxrHeGM*AZ51}9es-I&E@xv7%^5umL37(fDXX zardY5i({3V9faKK;uE~V6M1%}6_wiSkn4VsJ>HpT~{;**~yBR^vAXv1~!%W7& zvJ+kgbONChmId-IVFqHyRzse=-T!2eIC#+y^6DPs5#2i?ySTJtuna_8;1%cfJ(=SY zNb+I7&tvJgl8Ft@hZCICIn1~n>a%$g}T;f)Z+ZJ=@;sm)5Gl&2eHL^%} z#@oYk$<=5d4kH>P0TXHP__6>`JS%TmZV#Sm$MbicnoO=`c;c@lL(g~=F;Y;E8!?Y< z^MC{m){irH&kcZ-TUk+17O8|W7tIV7w}*~_oQi;cV*y@bC-N5X`^r8177(ui@-leh zRRZ!8GvD2s@f)7;|6Uj5TpZ|DpV!dySyflFcB~W>TDUfLVhr-JdNA=uan&Z|`T?*n z-ZVjmwF@_%-*xi@mX#RQ7_-H6(3l9u&H>Ah72&eS6uTP04pblkFBdP~0nt$! zFK0Oy0cqJ*yF{RQL(Q}Z26Fsq><;!9WwMODfG-QWt{P+yVp_n1*~%)ab>KgJL%%O; zsz`1#jBD&Q-I(?qAk7zrK7kLlVC&wVBp>(K0|o8ku>e7e&qJossndxi9!?r2S}TtG z`lfB($_2}StPYMmUcBqua224Sn2!>0eoLeI+fHP{_0NfjJ z<+@EB0j_qz1%%H7dZ{rjfq^FqIz0Pscsm9LbS_-Jy>Mj~@zTlo>dTuG%IA-cIp2ta z91#&he-o}hD-I1k`w>4|SQ1)T4YoKk9fW75l|b_QipPJmc1AG6so;I$UD+InMn!Qr z73fK2)uH5eX|U3|E+=!q4x$|)ICfHmoSchXtIALHHt zY080hjluPy_-Lx?p0PWHtxDfHa$ep*cEFjCE{*WK>WVmU;uh-!a3QJMcNd;HmOy@N zAw{*GnV6OP-!tulcIUS07-aEeETzwuH@{RT=kEyG$-UrDkpnCQ`*;HbFh*W|qog9H zotSY^4Ky%;ClxK2KYHxD1?rJoLa8rZG48x-fB*G|KyD}D2u}URY|G70Itycv{0QO( z0!?CoQ~j_0BrrweQ70PgQhxjB9rMXw(>*rEviD~G*nV+WwFETU@<1+?b6=%eN7*-N z5x6sxIb;tG#)D#2UZvq<|J0fUi-9iQQ^+Gg8IMa>$si{jbC08(5>jrb%ycx*>L0G) zKW>>?i{nrD>t+^ITFD3$h7%^CB7o`cDED4%GK>SXUjs5f)%1SY_U`mU*pJxTMCQ&+ z*33l1lJmZ1D$8oI+o@u}C6eS2F&$8JZ!l`nw(Bynv2?dM($||cKDo^o$8gafjTA9S z(kgTK?d>_aU~iDE5Y(0kBI7}RSRgSa&N2RCgQ@FB>dHsLV!{AdeMwh8H!2 zP}uP}IRX!a4cn72b}0zM`2~Hw7vmMdWe8&AOzjhPi7!m4dH81H60j`WDmLPka3_^P z_GaZpvB)JrVs(O&oSf+<(@XUn9#i|DD8?V%`ol%v8OkE4PY_TMbv|bf5*0x0lU%wPv_2$bp8z=2(ceJP*39l`P}T5-C#;?OWG(QLxwnO%M1 zufMOnL4I@!B(>pIoiGtg3QST2D~fveQWfxMQzYAfb$(g%oih7P?j^_0N%sf_*L`45 z6xeypBR~khBW5~hf+khl?frqisNryC3w#W$pXRg_1F*j3$}sXb}r_1EI!t&;!MJ#~j1 zq3|_+^nV^uc)m6>Q&k!6@p56TIIl3&;eByF4ibo$zT6vsAuz4lxL~W;bx1Fn%5sOY zkMJs2u7TZUTp6h>KN-1VOGVG0cLQZW@!`W!)O&cmoYu;OBfi?77HwAoyrBBoLj;@$ z_PQ4V30uj(x}=pAv{1*QqySy!mn5Cq)C;6asx$F z2kEjh9b}k}2OH{p8Sk`s2rtHK3%QsdN@VZqB+P-N21c1p%&|vIN9a#UQjeUy_ud~a zKmG9xlc@48YWubq3^^lkV#6or5@7zN+k5gro_)a~5lW9w0eAny^es_C)E>1qWWsWo z%At zqhbx)>VyfnTX z*h1yaEWp9$kG07c^X*qW;8S{u6ZJcu-LD92a_3~b?HMUMeU5aKYRy(Ff39`9GuQ2k zFAQlOuiRpv;IN}odskb|k&M~Ys^-1819I|5Qjtwg6~TWm50oiu6Y9)-ob6IjZEm?z zQ{K>6P=`;WS!CJFSWvrn4LWgw`q%l#`oi7AUq1hJ*%B|0p0PS4as9pd@x{$UUnFjS zw!Xf9cHJs=vG4H5h541cQZ4r9jLL4;e>)gY9DjATE4X|X-c)2t{%u!u-&z&y-lh42 zamrOdZJV%tP;}bcUMwOl?Mj|(Ewy~I`W2?VI%KF=IXk28Wh&`+UGX){#y^`RPx%Xq z(G9E96_E!rgM~N&e#HlUvNl`UymT(epFEkzW^0#pw7oDZ-P%BSKgJ3sbu<3Nm04rE zbH@Dw=Hn;)Tl&6MSYL$Fq1LDXyGrc?>-xSy0~N$k>@Do&lpT~Qa)WhP+;{m-!Jn_8 z85hOMm6jZ-gL6kK;Mw!2Orz6f)=$@MCiG4?-kc;BPW6uHwJ&x1njD&&)=210k7svZ z+){4aetKqUvhiu=h`(JbPanG7L$e;H-Mbhpe}|h1@X=142^u#$_~SI(IE@?+Gd_)r zhw4{%DM2x8^zxX|X@7pS(J4nh)UeXExb%dqyem#JD5qV3J6EHN@5n-Gr)_H$GCJ`q-BET*=G$=x-aib_;6HBzO}442C{Y5pHNt7KaT5Ej z0)4L)U}Ai-c79t^dQW7OZw?h8FQx7S5M~*|*724H4W~;md=2*s+vz_28LT!lZ*6<| z^EPZqZYChrtdKfugd2|5D%LKYR12`=2xZf{TKnrf(G{HOi-%0v8fWX5l4YvU>2%fa+aKQKfY#dV6ns3IJM{WqaAl<4CGB~EFKn{ zT*WeswwE?5!A$CK^sz(rJxgAgVjQv5_03Q8&Ay&emXAHw3|b5Qe%A&qi%$cqQQ$ z3EMilfI_KU=RTmHCYLDmUssa6h5}=M!UG`hs(1UuF(v__%%~djUfM?xLj@-D}^0~m&b)2D> z<;dOjSLEgXIZhF9FG1&nXwJ!f1aowZq-P9V8po}ksvAzwDwbhcX)Hqst3W;7XiqKF zAUp|LrT7-phpEsrpj}{^@PJa>SqE zy@grwK^+8%?+7Zv7%+%P&}i2<;M1<>TVoc!pLl6V!_(UCCfuce*~EzevfaWWQYyf%*VE+kQ}eI zj^D;FU%eo#5&giFgi~)%bTu%#PkZ$T%J8cjhn{br#ufW=`P`;0)f<~cM69X+krhG4 zojvPrHwn1O&4ifDZ2#C zt70a4T@>Xja~5^9f%I3S2JO3^yict`;Q^! z7;i-fOe}VqJU94vXoWHI zhgE^>%c#jXWC6y*>hc`Sy}>|BecNgCz6C_H5nbu&)<(pA`&FWjCi+d$_+IAJs#^hH zFpOo@-kh$x)&Y1_PGQ-ktwRDW5`%7u$mwQNWh|-qX>N1QrX&s#v&Da0I;Vwc*RIa2i#1w+J$y>9#$-+6{|4qZv3% zl?iW705q z;qd+)#Eiv9MyMy42%`4ppb;Ko%v>^@+r4bBYZL)6?b8oZ?+ns44%*8I&aZG;7Z8_J z+-HE-2N|>m5*-w!_fVi0SmOQ)I8OC;A7fZ@skW*Ntgzzox?mTVrc*#9-=*;dq?HFuwYx1FT4?e$*J&;3X!Ac$aCT~xzb^^T2aPx9ttJNb9aj-x zfmYw(=d}{+9-;|{W`+=ew~TFZXLvR2xEvyyLw}C|S)|hqxdbhtG`qb1@}h^93_pVc zSVHlQ2M8Gd(ZJJtjqreFYx=VNd1I(?a3Gcy*2M}w8$7b)bc?aax8$SJSe~St5n4s! z?kI7Y5is+r2_IC(*Gaq9f$m~}VFN$7hHer<8pe<9D$z8p28WKz9*tRc4Pofa5Ukh% zCLDm125I^iz)~7oiJz(3&qs3&HjR^>tWU1U5ck`7w8Rk;;T-uwqSgT2d~rSjolyIA z#^wgy_Q?gyxqS)CK4umGV?1#8{+i_;f?m&b`Ze14{JVp(BKYwyts2 zin@xX0?doZ<`nwdKJwFXdiH0UX&)f8hi}wFP>-D0F-f$Xp`EW&+}8j`r(c@2X5+X7 zvw)G&PP)+~&E<#Bq#Z+h((Lt8nKqXXN@Lwwe6N++@{4>%f)x*>#xCeGGo&`}9?7|ZvDR|-?l`GDpAx>n z2>%UnU*}^ul=I?5x4gH^J^&g-u^qr@aTqSqZEka8=saT0ZGZt9V4uE5+G3@gMF-Blt1vDY?) zuGIiHgFfr4mA8mSQf5stbDY3?#N^sQo%KNje}15+xxoxghkP!3{gja_QL1!m-Z<5F z@!H30mY>?Z*dwjZGmLkzWw5_@$Zsur!&$u2Ot{3$eN~{d0DK7ccC7^(6aloa@+m_M z-m<{1N7k@HG}AH2{v8_=ORZY>HrO2W$$E0;3889B6T3bbK@gC!CfYcFxuYNm!#D0? z`wbEM24`yqFxowIQkafudIVP0 z#580-EE#~V<-g+dEqFQ&{6PaQ>~t;h{j|u_{gf?;XlhMQgFP|mkevw-;W%{tErOQ+ zDi$?j^CuoXBWsv)t?2W3raxWNH2k6Cn!YO}n+!OdbKuiRFZyZk$A_OCH+6S)e0ulx zjGO2h_utR1t5^CZ86gt_S5UfpW;G@cV19?MOXa&j)7|X+=++D?i=gk*B-aKKM)h&a z8o+_TupG+7MRRI!|LUQDo7?5BR~7ts)NQu|nED6)86j#5X$B|Sv3-NvR}am43{(3` zOff{6T`Lkh;XYZ$!44eJ*qg*zFwryG(K;g+RN5{lZ8#n;kw6(5Ln`k^SPTlVx9Szohg;e<0K`k#1b^S!1G{VcPtlHq1v-#6yPjnq@xApSgI3@PR~|g3_R4ZZh;5@-w|0dKkP- zS{F4z{Ig_V^kk>W3PZsQc{+k`hzDA(KgJ6OwIk@4J_E2^8kRgnMgetJ*=8w{($9}& zlg9a0{|iu1##sHAZ87)8R0McJ2N?FzZFO&2s^W}|f>O`$JZ-If!|WN1{R!W8 zsRCBW&B(tr(=GnX^LmzKfY#iRIN@P5mA|(WCq0lbDYqond>n}Jb5f+eSdT^fbo_Y| zpOW-bhGEJXe8GN{{*{0p;NuY>GKLruK~LWPN!N&OxqqswnU9g-Yw>8&h;nP{Q?v}- zD80zYn{TjQiryMDrV>q}iN=n_`l^8A+H`$Kx?ydTF(=Od#oZHccJ@5J1Qxm~?K6M*$$+Tmek+ks~5va`QzNGp0?uw<*lmn?1#&YfmQ3J6B% zn}3ut(PW~h#Z6-i2Rl%jzAG+>a@a92*YOW2G3upR=?$z%ePo$PSf(4THJZ*jIFAlG zUk}C2@by7&un0e^S^!2y8j5KU^N61g1Z-E0?5KTYj(+yCem}O0R`_GST#CFaI%198 zePC)x=<&>Sl7?C1t3R0A?n>9*`tkTX(GG7dT_(-lfLmH;(SHUrI7bho>FPIrc3Yn} zrqZ)-+Z8@_zWSoydA`@NhjDa!NdGnSn}46_T_;J5Uf#O?v&rR_py=;;y9x{2HKOUd ztlgYS!K?EL-9)`Ey8ct3>!JVy7|}hNnS18Wtp|^Z}ak2Afib%rZi3z$1MOlQ4DMktcs;AZz=d)ziZcleub}j z2NBK@6g|tHQ6Epsx6Tr-g@8UG7zd_t!FU_t(+4`zyPz_9vvv% zcC~VckcjS)H4sIg7Y=R*k3;k}9#j0GBt=ln1 zPJ??$fApP<(`&6cbpGfCJ4cdZ5vlgSK{I`r^b@EHFVGiGywd5xx_;eJ@MrW5z>p*R zjKmP7e>vOv2iG9$Lw%WkrwqrtlQzWP-ZKy_Y>1ipwqq557k&Ny>8$O}v>$mBvr<`f zcLs6k#*s(rxTtH3Jxhj?v{sw2mNkw+QU%7szxs7ocl-G4jg))jjaEiVu(5AN=0dOG z__VQqoraECNQzKMWNLX_w%dNX-CvvIS?64r7J4PTH)*!N?tpZ9evqx^QlBn0sZL!C zyh7U?Rc8)7ZtBbV{CVTki&OjFocK?4FRJ)+^wQxE3&Ss8ytwXuLj1aS&!vo( z`}xzT*5I&;8H2PR>)&HW*@2g09`Cj0t67~N$os|~-$?MCzY%iMfN&-8N}G;7Jy_E` z>9T@ZoPZ5uu*VY6?|Ln~IJ5pyZ zK6pB8Qe_nOxT3S|miJ!CpH$({_6~%*=lpPE4Bls@=@1Y0{=!LqO+w`^&yBZ@(fE1b znW*e>xwBE3aYmJH?&EJY6a1A{tEjp1?BTe{JfPB^{M4kg4L>wShWDn_yj8Uoc^ma5 z7ie}Wy10YD8u6S*C5jaPP3#$agBzXd#s<6`IAn?dxq5$(l3nq2Y5Zt{YV=*6EG<(M9?t8Y!=-q~(~vkWOWL;{0O+AKkb^q!6UkW-D+zJhDZEt65?MIQoE#%WgsVa-E} z8>9NCqQ4GHAm zbxxkCrgnv^y-7&lg_*Z1wjXKhI!7-z3Kq2@Bbh1(t}=%!=G#K$cCI#PzH9V)-UU?M zr{xQ(&V3aisPv3zysNrv5qqls)n?_&>FDN-ZPYY}lBadwv?3E@ne!9`JD^=_`-Wij z{GfbL*OJz2vFC`vjJ3^!afSM^Ve?qowkR|pks}SHeMz?yM4^&Zm-Mw_wxD!rLSrrW3?zlBQ8maQSe1e#Iy1dxevm`lala`?9;pCq=g0Z#e$R35uM-9KIrD>ylQs zH%ZTPu)M64NKn}HWblKEtLpd~hc1(hsIukZ4gO^9c@Mh+LYccz-$~%8FR`wrft~D# zYNk2*I-n&)64PAcP9971T_z0e(4mqk9>UXtDi+ij$bIH=s>KW_o<}V8)na3&DSDwA zQqL|%P7hrpZyp<@R(@_|z9 zDhYxF=5?!`C>q9o$vSn^+Ynho_4w=E3O+vYRp(zU741r}4>#hgOi`OW-201zHVrcB zyn)u}kBH<7J~Df42y&#R)GeJK)5`&Bqof3ZRVhC*SlLoCCsTaTrd^}68fXIep&MhD zrF5Cfz6Pp!l7j2e0??C{)FO66Y@p~uDhZR4qrdx)EeFstY@yLAbwc+_$NL57TIsbm zeN!`)t8ZREh$!aK)c#8Z+m_TA+X`Ei<-s=@ z*2lt(ts2Jza=)ILRc^SeZlY6H>gD#8e>Ui?;q?!AsWmxU;Yc6jTC=tq75=Cy_YXtL z#PhTSZItD1`QDhq12G{>6-(T>o1+Jcoqk9#kbnZAT7`&do6%}?s%h}}rDMajIjW@O zF@1&RF*&;&>$`4!e(J4Tm1gWKW#q9XLHK@ww!uc(u}1#6FSMt26@yaW*5P)UoDrGP zr5FPn#x~e*wwoTbirD-@btI+4bWL3H10153Ljkh#lq!FN7c?ihKMF7OvYjFTypen; zS-)vtycE=bWQ=V7;}aYjwVL6x!G56i0;ZEcss ztbFP)TEl?%?>Ta>odVPvzf%%7Vs=JqBd~r(*0qVcp;VtdU}W?SUgI)=U#%Q8DOzcB zk}#Bfe!o!qECe}tgd={MH9?Wn?Z9 zfQ3|Q3}JZ5Zu$TTE(Em*5dx6Q0Bo{Z_0UBF*GDt6T8oT#(XHCq{$%y{l?(D(vS0QH4VC?Pp-u<&zYt(WXDj9`1D*u#=a$d~)v z4Z+N@_B2v6=ZLCn7X?x&^7;c0sXpd{tMWrV!WYEOTDFoA8^sl?fMlqzpj85P_GO@K z*y>{yE1H-366YHYE;*m0sxFCd%{_p=ASx>lHr*9qUJ|W-KTxt~pipvOUF2dM+f;}s z!Y2Ug!Xr@~1FQOZrn^|ln#%AU;pUUnrvW5F^ULrJ0d5hXd{C^C>aNx(__fFv`yl*P zNfRtNCS49?U73>+fG3Pf5#vfZNhnM+KIHu)sT&Hz@Ha;Reu_{w#LnE!m}(1*hk2Q% zT-V@3oDE5?g`wG1V%(T~rl+5j;UCsx9><9(^>nXcXk#b~J%7b$?aQ&ILN z@iB|Y89-)O0%1*r8Q~}!xDX^#bnQbuBLQl&OX1=GQgwDajf=8jthCLl88M!96|04i zZdD7Mn`hPg#kUOFVr&l)lBlX1-3%)C0Gc-_dr5}52vi28AVtF%t5P(Xv4%=g)4YtD z<~oFkanW!)`o{!f8=Aj2I)sgz1N>8c=w727VMa6)N#aG$;^&Bjf?1Vx1t^1r(jDeB z33QyW_+*Ci;352#9eVyIWG!8kRNDC^A6FNH&Vb`L%i$30P8bzaSNWgs!7@Oy`sEaB z@2l2+Pr8-_phH59w`^^Zh0dy+PTkwgu@y~8U}*IhE%}d2F3DQY*a{cLsN}dLSrMUL zvW{#6rD|9urx5EV03H9XwMJYG6XcXAC^gE(C$rI(sSeq4=9OqwFNj`nhuYsbv^I5r zg^(ZtG#z7Xs714JYto`5tm--d6_MHyL?WG=eY(+N@KmUS7a&^&hIz>EbI=dATL>8) zMwb{UmZ_5eh>|4<1rpoX{YPZe5_NI5v(}GReJ8B_4BZ!J1b+AYwHIc!zslLHh_^DI zRMJ|>Qx@8q^P$>6%Oo=Kv*1T~=L@=6D@>^Q2H;dQq_kO1i60zxj{0v9qhVNhO|tPt zc`x#Komj<9jIXD0>P86?76q2;@>3+OBB)+?j|rOXTf2&X_Q09X z#yz8W$&cwk3F`fFn!^;Nw9pPKLsjJVWB}cy!~yQ8S`iv0KTBvZc6Bd5pGv|zhFo_E zQB!8PZL@Ipw{|!7jpQz&y~I0?kvvkUtwmyPBUR-y9p9?ozqyi_B&WPU>?n{Wxk=a= z5%yuMaw@ET6bM179f;Ujhl2c4mlmVMhZ z^as;d^vs@%@ZDxxPKa^OM1|Rc^FHD?FWq5ja!R@k;yiH}QEB^@KCjQl=`wKYBTu&Bj7WR!&yF??!MwVR4UsW>2WZy%ldfK8W$(^DJ1?H9o60Juxh_y~}c$q?7*a zUCDXv4FURKXX+oyxNc`=0RyQ?t+6yizDy^Nk!nA&2qof-5V(3g`_u>Nw&Zq)5By!1 zp_}9dL5CHw%adw+IrRpTlE-RfnHiE!a*UxWC$f*Dv)Qkj9JObB;gvAI1 z5~U6q9OBJD{|2b!2#(atxtw2g3zEaq5Hm%B1OT;Jow1ruC46Gp$IRY|ms9c&Y7X;a zWeDQtM5yuh62x2d2pLb_c!J5F%lh-U3Mt0)SJO<`Gz#gs`_XFe7wT^XaW^N9zxUlY z&))ZsT(|l8_&q$JI3?|Gh>ZjJGMSx_M#3DV9{Iw!%B3PP45fxyhvzJt1K&S<0DuBp z&@?%9x}5(0S;8|4#+RX1Ehc;-5~9}|%x95T#%Dl-ZPLl|zAF3W zeVi2=y;FP$Y^1KBg3WlCL10r_sp?%MJ9KD`gX=iR9*5O>Ga<+%vUEIZTjPZII(B zjoY2XLErur&6L~Zm5TgHL8sgE_+pj0OZX*E6?-aDx=VTCCb|li{#A|luj|?4hdoM4 zl?Y;_>~L-uv$SpYZD+{NGW)?;WrHKBs)+Bn;tWm&U9Sh>by!j0;Le*7gSIvP&oX zE;1a4LYkzxQdqi1#?|t;(teq#YQej@kPvQHnU2DdVG)BGwTl;<7qcqB$#Oy+Ka84WVqw7 z-1V#rsN3fYxciW)4*3ae^h*}z!gZZTsjN1!S}yc7{1p8NF8Sgt(t5+?dpf8ub~@^I zTOTS(DYFFM>yYNkZa!O1ie%#!MT9CgiFO=oaE_2eV#mne9ja0dIyRVi{!Hbx=;9+a z11u_D|Mx-t(n#uN9(4rv;x zBf(qPe*kPzff~SHWr>B_d=YZ`P{oid?EI6fEv-tqHtHMWH1!7YPWP|P?B0nQ2fe$U zc~Y~!i@@D?hPS6b*7=upt4CwE^PTM_zhM8C*>rcR{(fICd@-FKk5(YfbX`=9CY`qw zh{{Tl_SDwy&uW{g$c7{5Q#}YvEVOJup?N`-HjAXSxiwLJOw3{Xsr`SXh+YLBKEvlf zrLIR1LjXe*5cBFLY;Qm|ZF(PnSX8^%8 zjZ<=B7O}4imor~@=@nA_4y9vO_VNL3yysE+@d!LDtSj%lOV81(1xi=rIu+i}5=`bh z@(<00$Gk0>Yqo7I!Rm#5Qn9i+h>;CaF(FzM!vGW0HJ{Q(->zzlw71^K^D*0N%+kUN zA8Gn@Ry&PuEqdJEFp&RmkkURsoxr|kQHNmTDorS7?Nul(f!I^D86k+iCI*TW+G?dLAB}byCrs47auh`WNje+fA0If zBOfMTgxxQTy0vli&+pH-3@=65r_OhUYVc+v`wovyoN?fxZaBzX`}a?H=r;~W*4Er% zZ}-<Z+^E2J7U&x*ffBqlW40fhY5AFIw;nE?E!wn%4JPzyimZ)4oAzA(Kz6C{Je}c=w0@ zfSaZY?~5f2-J+zs8?Yo{KWazP|&hRf`i3et8T{JuPob{6$;P^r(t zIhuCwx}J-@E}fV+#<@;n1#Uvr_+SIN$9 ztpl6C6oKo{EXt%o_Y(9{1c$klB@x2)JRQL=Lv)(ZZDv=EH=yMVcugb1gzipq5hG50ED&g}t+5){~lk=hTCK^$QFk6O;Oe0Y3c?t1kfh zH+VJbDU-vRbxFT!$}fZ~mY7{f#L9A^?agB&O(R&Sg?i!$!YB!I;jHEIkJ+M`G>5B& z8tHo{A6h~(EIkdgnnILJQo7=bwlvjF-q$`)vmZ6<@S5bQr }ZF&4jX1XS?r#vSW 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�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

    9fbxZ`;368DaZgMnzn( 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 s? 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�{^eoZW7>h2Uqz)eH=YjE7w1Sv$5 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Ɂ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%0A0P&q0 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�q*KG?KSDZgTw+>24DRM)= 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%0A_Xh<)l)E@bAA( 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%0DY{+7-=KR21D-Uy9jInyoncXE=19KQ74UW&Or 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

    q}lt&*&p*?%5P+G7HP0u#Bb~) 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ÏK7IJ`-#IB6bfS~=+{;h=vzwy4OJ|qMfDLKd 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%0DUUNX zQBDh+j-K)94(pUvxyw`M&dg*cA<@hU-o8hdTz_ia|;1-Ayz z*o0!cdajP{J<%-*cCaui;9J~|*c5?26wf>E*w{1u@!IIE&R~bWve_XEj_97bTYisI zyUWs0*qQ_1XU<>5PfiA@S^^JM-u8Gk@`Y!1LiQz`c@FQh;9=ycg0=Gx`&x=C5|Jqh z@3q{1b->OsvtmVwUKfU**2S}0vMi(<&1X7~M+N_e*V& z@3Q3ZfNGlg@9yWfuTGbNx#0Du9v5L|i6^(oRP{2IFJGb#7nmgbM3}6%GaN0Q$Zj_7 zj_I@K(qIpt~EjQd;$2klX30 zX@wlroox7AX%GZTiq<=7u+ZZ?^m{y&a385xf+?}CP&{%AlS#rFg2&2|C92+I^z7^t z980q(8&}f+J1-4gyRrGlr$KHavZ;O4m7@mxG2hCAtBZW*qXxXm73RO?L7w`ZcV72M zQI*J4pE-WHn+Z$rg(c5^CZ{!U%FdY{qDOKkX*H!`+asK-G#& z;q-r+M*;)h(n{v~qK&d>z1aC(_u9;ojUXr5oIB2{tRH)1bdlO;$MdX6*0<0T&p&sx zpH`s}@3|Q>xyDZdBQkl(@l)c{=3_*D^ydDoOX@UD_(;;Xn9a;DAfqfTxbve4aK5HQ?*1eKHD zYe4I5-!nSLs~P*KUESf2Zrl^PJ?sBb_D2?D&)h?OlC`UaV4Kk6#bNVZfKa-cO@I6o z^%O!cdJ13kG+FBwM(^AKy1nmv`oO?Xw)xMI0iPs#vFg@-)B$33>s*wkE7C%*ZfgKG zlBxA@zA5*Dh*II}iC8~I(($p1^Kb@Yr(r94rAri-Lhvf_6j0|9Kk(fgrZ}Z9+F(G? zhh98>;dg8@Y8W$iqbJH55E^^=*qguuW8eu~b+&$0x=m-Jbwxr~98oO>+RFgHGIawZ zuim}j*7{kUIvcSf?&%wGqaBE;Gv`nwiL$*Oz4a(<<*ywV|I~0sDVw z3Z;(GwPD-S)i*R;3Ufu>s^NoIwKiz{$bgt!q$ZRJ;Tj2L$y!|Ekj;%?)kv|w4M`W~ zpgRqNZpdxf+e!&Leo~dnA?rBSb#T427I!syzkDC}y6DHuVysj3nxFEZwM(Mp1Ar#f zW#tTZVN@}h5V-zJckWg`th_C9#;kmJz;7eAXsyuVrgDJQ+`r*S`nNf~-J;<>!DSU+ zUCPGWqp)y$Cok=a8O^$a2M)XGWgF^&!LCs@wl=w_(2MJIcBx$OKLJz^9ho-Rt#G{E zu2*(x)#bW}liI5`9w;7Ftmhvb+br-9G|Zdz4x$fNEI%qd!1I_jj2soso0T~c&FnU4 z5RYo(^RBAs`Qj}nRN!dZvf3tcioP=IZn0;Sx@oLYe=nieoQP_1k~C^(72I{3^mfb< z&miFHgSly+i{DkbMid+unxZ>P79QZY?U@-o=s;2pt5rQ)m%b<3eOmWS)q$6nPWyh$ z-1+-T*NJnW!+U+_%7eu7ug$t}eT(*1HbY zaU5Yky~y!*BYLzpz!E}2903OzQ$lKLdCZcvsUV|=#b?z2VM?}iTsEkuv7N>iPKL`! zSRrWYF3Y+bxJL2BXr&-Tkj{2?dc3;%;om|w!S$pWgR?2264(6jU;(Ak=~;L@n4T@g zG=ns&V-6L*EaWGyDU_PlnwH8=+Tm+*KEJ5fm11RyfjMk<0edKxtdmV~>8>(aV!Z-R z6+C4b6%69C#@!HX2ddO0w$~l-BCrgMZBuHHWa(y#lUONZk}R_{E}L>qkuP4-d2703 zOmT)UsH}GpEE6TSg%7yQH16h-qaE*l{7g6hHLXlYFWQ}cI~;Xk#F*xE{a%Z5QE$qLLy@a>CPXfa#*jpm?H!~1Uk1)XqXA65~L0q^Z7m;j*4(0p|V!vUB1)26jA^Y=}7 zEI&^~-4_YVu>})@`4qw*33^$gUsBBYcyjdmgVA~yy0W7akwIAcPty-BC%BGtZi&T{qvj{o?M%S;+=|q{ zF{h8n_FQ0&UkLk^DmDHCv{UJIuIV#gk^T_$ZuJ5g`^=@E)3zl@t;=6$cGQ@qlO4yB zRab%B%U}P(voZ1L`JW)%AEy17h&xD_C_pcniX z?ZKfO(@pv_**If2OLn(17E3Ht4DJHh_81L9PH#XB1+AiC&nR;>47MC08Jz30;Yh8= zm}x92L$J=VkYzF!8)7tO1u*@PE47td+08cF%+qZYeW$4Cd8S1=%YMjrm>p&D#@p(Q z&+^@pr^d6(y<1Yj7KT%~-5@Lm6oX1Gn3;=jU>WyOKD|S+CzvLGFiNoZ|03oR=tnl> znV_gtiZjQNw*Uv+@hs!bHMYJK2ORlYp}OOBf!Ss$BmWI2WYxEF16yN z9gc<0?{)7v*2Os+DNd>XL$))KDvVuE1iRPbgc4&zDee!;b#stI{y9q}ez??Uk|ebh zCF77EA}XYvFx+*!`Ag23m%Tp3<3*`GyEMtArJ!8c? z3ka>cJ`A+HFt%kxYT_upX;_Yhl*vL$Edh4d>j&(XB^Ee-7oYuWpXyb?y0}gf&7#Ih zNuJI!8I!QGFE&;EL6TLk9T{X(0NAro|3Fo*WgD=%@n~`($ePyls{jmzO)#=3s!mdy zt~y?iogit#y|2W)S$bnR=y8X{q^wl%OlCaK(zLU6)3vu;e$!bF^0{u{u^`t~ke)z7 zWI~Xo2w2J4uqs^v3LiO^tOV}>V7KA$j=>FMT`d1|(YY^=?bjDubI3WGb-1$8;q`p)mRQ{EJjJgIWLY(EkwCVL zKc7kr^h}*r#DepDSmqG(-oH?#nu&d)?JoiuNB6$wvTvD@ZU58863AP=^%IEf?2tG9 z=Xl0AHtqYXtXdO``-8n#$34PXQXWWAU1198t=VzTGJoN3HrS2Dk{w<6<@(Yzp0z!% zcTY)^hhwj2Gi9ZPV(dt^=bvha4`KrU*o=uU?qErc z^VyFSJJ{~B5jWRWRU@2nlPWv>Am{{Wj7s)@`W%?lH=G4==#hb6JaTD1W;*%UI){9m zCdKuP5SdA;rpkpaHQq=DEc;y-FEdUvzEbr-L^ zN8L(DUkj2)7EE_*Om}WGzQ3pq3uV!3aso425trR>*a_FLXBZuAp>s4e~h5dOH zd`!(gumGLIyZ^Gh&)|kcWPbrcqPWgV3V4^$i%c66h$FV^)3q0==S)1HWuUr2+Al1J9YrSA5R-H(}*chTv|E$Nhx%LS3forO5Lm3 zo`rC?Hm2!(cLXz2^#obm(=zQ>9 z8S*Hgm-5Z7wuEI845E1qIAJKx!7TKO#8!4T^##)zw`Z?_ZS2@5iU@&CSADoJWt^VY ztj%{ByJT5Eg}RT$3BE_@10q{5;~=681ES`g?{!W4j=Plj2J^f}_GGK)V%r^Jq5Xb6 zU~754{Vl1|!G7~T$*E0p(~IJ!Lb2}?&Jq!)JIOg#%s^q6pUr8o^2jP=~>WGYv0$33WxQkFLECha$wiXgB|9eW>5W_eVB zjX6ksaPOrymcp%e`oIz?p*G@fKd2hu5VI8Fr?JnMynU`9x)}8+;t1KLB zg8BvrZg{-MuQL8ZmeVYL(T^|v!1#a-m-^{65=18}LQ?G~fsJ3;CEwV_GRcRWgn&`z zYDaeK^$m_Pg~X)rmn+rMngDX_Z*&blGQYC-T)6a)2y=}%t&e89yj$y~g_edKBh z;)Q8A`P$kBO9W_gaM-GV1C@kXE->B0!J1AK7enwGLQXqYVLKvm@C-Wq;-)bn8(BSJ zg1Zl~-1p#U&c)Lp@U2!IO+Lmvg}fi85)xv3}?7sz}8}*vI@Cuh6E)L zp$hpSXgtHPk2%jDTmyi#1nArAy7J)kDXF(?0M&0lV08s+uP>3>y50U zd#B~CeIK5sX`V@V*aoFM4btn*b=ju>BBdxsSzv##y3r+MGa+|IT-@|#PSZBw;nnL1 z4lLuwt~bLc)t{uH&eNZtlC&!Is;5U^c8roQ4?G&m?A`42>+7l$?%CrvcAv=aUnfc$ zY17zrM)c^)_7S05rR;;_+4zU;o(Jx}D_>nYaMUj4*~jvFiiokka!&o}>A-t6%E15q z7uS-uzbE7=Y16KxGb?{2`M>u7!|ET6Z11zLb;}e-{vCJOuDuvmOTF$HpyqWhYBZ== zO>rjV@wbR`YWY7DriBHcUk@JhIAr$U{%;?~ukHP3cChg0*LTma9Wp<3@bB-RXOF=@ zneK&{P>K8I8wO4lexE*j`rx0>+syylzdcoN+f`tTF1hST(5Zsiy0i7(iz;u9WeWGb zLHRC8icahQFzVL`h|g`o#x8Y>+2|ef60Wvb8Lr%rj^OF~x(l(Yw)Ipp96v|&Q*Ca&}#L5 zTS)e+`VV?Sks{&Iw>fMuj)^t~u-N1>B52XGz>FDGDly6UQ>FOH_ zT*7OusKVkv^f5#O=eXo}ZcA;7Ye8nPIB^rhY?@SsF)=-d@~)EP76v zL(FOph^P;HG{#nz#ZQOoQ)dhMv?uX{kjk}>I@sD9u9mkPi`sF#?`VX(B=vgOcfpRT z!m|#-8&r3R=1pq%hr@D~hM(ayM=z;%nrC{@F!{6MK+y~UJ}Wr2UwiY&Y1r@SZKw0h z?6|erJmnZ`ir2EhtU$M}H!`#F2vo=ai)0%~z)WBZ%G~9pc6ko8$A12vV?;IIVLiX0uHuA2fg!nnV0vRQ$7W zu9lCZkik;R8?~+?%y%?D&g4IK5#{J=73sTw=}2|j!BD+Vb$#FoKbb$04jw<++uW?V zYhrtm>7I$}0gwIM$M2!(aS5qfl{XsBw}*}?{njnbMw)tL!vvU7YW)$Mkrx%Z_2QMd z+*FN}`m>I8TQ^3rHG?)LTubyQz}|O#B9^3T__-&vb;c9uuThh;cOg}t(zg)(ZC(4) zYSzsYc3eBOX0Z7PW%=o`Ezph%8)qOs3gMWn8Y>4GjS=B~NEWIr-p4-BNiz|jVsv?c zg?`d`kW+?gpw^_AFv~RQ2(zMsUMnx98cLhdd^092ojbxKDe5f<4`@)VbOh=c&r}QV zW>#t*QA4BHdiw#CC(SJoN5VOz@i;F?6U8%0rK@k0k@dT&yx70wv|HT}vpf#lK7Lwl z69)V;iDXF^Nws`qS$cB)YfdtWb{D^&8<`9DiKT&`XE$3sB=EJXW&Hb4KrON54zzXH~ZmmeD<7|MnhWMQHc5)_%H*(`J&Y8za;6+7Sa& z<#^>fS@Q7?xqq4bn<{mp-KcZ^l#1mycde z%3_tR5lJ+g8L`d)yV^{8fJxLZw~kyoBDdDxQ8=n=eBV_iC>W&IDuz1C=-T|@^iMN_ zBIR~ry6?Z)o&3)+@dOL4V zmNg&<9Sz9lkwp7-N}4D(RpDHvoJL%vs($h0=?wS>Zol!P+_zhjb#=MaVu7lE73{=G1Y7S}VV|`-uw+;AjP6dcKd#MEEvk&Q1#ET9%8F?kv!c^8t@o*5a8uIP z;{(Y$e@B>0N3{N%eQgF^FBtG@(K?hx#*WtV9QEmH-_XkDHRZ`}TvXZVVlwje5^nAC z=wa7+`tI$O0oF1x(|AP=Uz<)c=oc47L)Z?=CT5tA5TySHpz5D5-9ns5LPQu775QXR7Up zDBf(ljZgFk4J)>FY_^@m!=Go}GwLXSm??6-HpPmwx8T_3v1eY<>RHIGLLv;}2~;DZ z^dur)mVa&$3DIkKQ=a8AyTlue?7eiR8*ER#IiAvGQFsFI_F?PwqC_0~>e-+DCMN%> zbzQO2;}P%K)T(d((>kqDLJh#TNN!R_fSZLXP@G?9u{$@}>*tLfciMNUF7DZ&^UC+r zrMj0{+twOS{0Lcd@BQeM{yVTa{ELX~byZ07nbC9n3AIH#X=-UKo4t%@hg~6+MdKSy zmSqD$52;0=jLLyD832()jWL|3A@%{Fcr!iqKt2;pCbG1vgfmWZx~@20|ImP#X-ZwC z8m7oOk3E1b-@cNpo3%pLY{sWLmNX!WWE*cLMDZK`cBnZW`eKz7_00P<5MfGG>VfT$ zYeP)!(j$54(i~>+7-)FTZ~!w)^L=;=)KQZ<;AO*ruC4(hTUq(*Io+ zA{L9t3~#bM*g?tb+pQWTB5CSQsLfJRHhwRbUKghKnYjZ^|4XpdRSflYT05=Y8f5&v z^Vr{o?XT9AUI(Xqyg&Z`)~~Yrn;QPef;CNYb5>t9Jp)+jgjn#fz8HN;XT7ycV@u#&qH8HZ!`@4Xj}_P^&FH zLjX|a2xW_yRYMthoEET`93)uO&%z?*Vz+dN$YffxWru0rlIX^~mVX%9u~b)v0q0>< z3oyM0#gO6E4jph^IR>0hRBf44sUWHh0W@m@4V#$>fk4fiS@3Nn;x4TwBLsbQx?Gop z@RCDpgdiNtVB@sL@WTEY?#Bg&mOWiZ4WI;?JT>VWBZ`1c-K>xAXQ(~RuY;Adk#MRzF- zE&47ujPEyF0-E6@n(h*VaL9XIEUDwL`4Z+0r`cL5r;OsV>H%%@4DJ0S!hVT1fDVE& zR0IsQ`NN1gfX;qwoQ;*nA%F^lk$QS^<^SZMbV7Z!lmk{`IhaSJdGKqxR&sVFW zy{(|BLq^;L62$sxa4}xB0;3WyRLlys)39hOTRjX`8z)z{m+LRSM=S~7J-Le(ZU5J@ z0|29$mdMp^1S2CG{GY8>abdtt0jw4G*1_6FP#7fo#@&HSfUFvtTBZC#T8DAc7bP(X z@}ofliI6}B#E*!O3&SF_^I+3|qvf_S7-*p(s(O2Bh8MHST(Uc?iB>hhf`X@B?TN==5Ol`A!qxL96yXGX{8|mKOjT?x@n5hL8a!k2hEs&Zu7n zs2^X*oD6+45^h#xqkse~4T{U{rsmBni5V=6N=bN|G`n4UT0bwxbZpvuLTHjC8J23a zBr#D73{!|0Xo!IXilMSO9buBst%)m&>w6xV-PqE_7=hmgsLKddcS;OBQubP)my-L z-f2mnC_y0TdR5RyeG<4w{_l@gn>L8-=@z|r(U>Vz%rLZT$XGjxv0_>u)L^Or#vhOj zb5e~(A*dlakoCnjNDdxeL`H7^TR5#FT?flh)^-yYAW!1BR(;j@EtTkPU@U9rh5ivZ!M2ieO(#2ebQ*w5sZd#SL zlJK3RAw#DPDl+xZbPerkB=(3-VIzt>twWgBb_AxbnO==$rYf$hD@orqO|e@y)NI`p zM+exO;Y8unAMkJ&5>hSo4^!KQ6!9NZJDeH5?z7odHX%z(EN;f(S@3 zHsOUKIgj-^_5feik?Q?*)a`{VH69zsX81G3-us@-MKiT;H{2g1nTEeLj{`nmXo)8U z^edyX?N@`Qu6~x{bcZnDR9fQr`c0S57+DCkA22}409d3D5-f+LGZ2dyof_6-91~&B zNZfJ^^8TXR6Yi$t)Ga4yyYB6Ty{sL}Np)9{!P zqJJ7$4?5#MeA09W9$9@1<-a%4p$kG3Dq0?qZ!~J( zSPjn-Z%m=V(ue?6$&-v#P<2!)X^%FVi5#P8USe7LEo&;o$lc}7-RVd)Q)ljsi#f37 zux?Fx{wX!w_>*GZL*>iFh+v^AbJn8_8HH zT?dkWwe+F#r}b}$K}U$hLHU$bnf9X*Rma_>gfgvY;C&Sj?yXSuZVY0Kh?*Krjh)u2 z5e+_=e~%=c^t^!Ly)Wx2ftP=LUjfyn>a7m5~Hh8qgsFz&(>ooG&9wlnQA*)(+SqwGk)Z+pn+N=Ky43A*%oB~lc57L zD%J;1i;hFuj>8C!n);-IYdKm-(*Bg?>N{UFSr5pM%5)Y0cx3K#Q)}=BO1lAN z)&Q8;p#9yJ2C?ZlFgb9@WMYmah_T#*=>QYRMQu8gpC{=DTfK=YN7aF;Z}`2p63Zg<=yb?9F&BA4O2SS zS^7S9#Oj>%62tUcPpR;s!NCy&{x#6=J*ov_;M=-lRRgyZ!kr&;8x26)V^(Rd5H;Tm zbsiBlq%Yz!f2FFC`tjknwlHqpt>1(_gRm#=8LvJwMAQ=4qBnx{{)o@)l&cCcvK;Z* zf8r;tlAKWNmZ$n^g{EqGn6WGE*yw3w9}S$tfaMV3g}(OZgEpDnwSNmx!aoiU%r%vqfMl1X#zcEUMOwgKxG$0`uql2DIM3p`u+0N&v!&n5*wtDrPNTu zJ11&;%=>P{d@n_rO`FcHQg$NicCF|&Hz);E)R$POqTU%Aiy027b|UC$+5jM_KcG8k zFd0KLr}I)OQ(I00=L4e3VOK0ygVdRb+YI&P`jNK_z4Cf(`yHi)X6g&;meg`Kx`}su ztWg3@z|J}TW~^3T1^kpe<3IVM21(;ThQ_2YZ$z&DKzJqiKRq?9#=d4~5&%jhns0jP z@Z|{v-<5xIwxbbS9SYQ15^gl|kuYx|RInrM5-u@TxwrH5l*)k;A7Ip2=s&M68*CSb zWNdJ%l{%q~z|H{Fp6@6$5H%^LXAZ`&fUyf02je5p@l4cvz|^*VQ(@1hz%5?wrFsg} zAG@~v(2<$#|D~2Zkui}(@iDurYrD+Dp5;MAQw1D1~}dKjUqs{ka>#TFu|B zAM2Hks$fL8C~}&nO~OdyPc$@$t?!u7v3VTGE3=4u(C)db8eRt1cih;$GR+OIR{|y3 zVBXNW6Yd;ESMFulNS${zGSs*w6lsFr(v$DW1ohPtDmHJO47MwSYg;zf;D9Y<=23TA zBYv-cA8Bahp2L6XWEoyZZe=CJ5Z;%=jG`K2kDN$Bm{3HVgv#$9bj|Q6>qi$vMUNe; z`!=tVUdF;}g9JuDqh2fKM$XZmw*bSQZWEk|s3$WgIK^6~0RpUbDCFD~tB^X^?P_kV z-*M4xYV%X~Z(jTKO3YR_kL>CG{90D&u;oF|^{;P7n!-*;-n#Ma!`Nlxfg)vh#HXK& z<4qpxPW}8k|887e>yws4^6?ChU3Ju?C`NHU(wnL)VQvEYa` zr^_TvVz5ar2bC&Q4zG?btyeQK_TfPF<9z7Pu;(4$l$fCl`#?zFC2F)uRbOK?{_OJS zXs?W(e4bJIBwaB`e}-TWnWvRG@eJvO*j{*$=a-VIh<$jL3gak|y#9~?R2FwzzzTxV zUdnNryCu1Nhu+QLa>qtY9YvR#qZXi<9NenJNjvo5hVj&f44sI1YPEUOvc-KjY1

    J_!69XzVq3H)iIgP5U!C=9?CwS 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Ď)X2BfOY{u8vt-q0MH@; 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

    ;=b{zrRBWZh4eh?KD@*@W;<}$vFg$HtzN5Y}i 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≧rfsXF@sCChyuH-2>RQW5Wl10z^ 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�u+3|o3)Ht{J6f|ir2IxUBN@Uz; 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

    yjU_$dXK@pPow06klLKTH6l1N9)Y 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

    8>=P0AtM0?JrD!1J+MG|mTinPChxvT9QC(w;f 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 z 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%0AhLKXD~#Lc5GT)IIwu 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
    w>!GxIY)DiIrVm+}(2n!Y}aKbtAm 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∓?H9R(=-o0sayjAk&!XyoQk$Qu#p~!4_ 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

    50J~iL961+$S>v>RKEJX#zEAl(?#UE(XR8Y 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

    ;tZ-{30z%o3}o^ickG11sat)Rq4H9H+XXYf@~W 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

    ?Er4#Fy6v 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 z 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

    0BxM7RqMxHE7%PCuPpVO_GxW^s+RX= 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

    !pB475BPc> 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

    >3>ZFqjOc=0b#HPkTKtP@Z)8^7r%r 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¨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­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

    u;p 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ð-I0Q0^s8zfR2cpWM59P9HN6c};@l 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

    jvKTzI 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⪻5Kz?ZTmOI-t@+u%$60D;r*-Zn~| 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 z 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

    gS(Hj=goYf{ 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 (Ixmv`P6c~gV@lXVSfQEz$MxYN6h!o;N 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

    O|+;`QKKArt;kI#J~489`tM${kdGk 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

    9~~M*d(GxGT`DCB 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 z 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 z

    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%0A$)UT`s$yczJJ$w~{ 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%0A*=K#P(x(@_g!9~yPMuU}h>j#+gyCY}#R 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 z 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%0A38g@%sZoSOSJS*iTc~QLDIz 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

    X%-2l2aY02>_s|O{2Gsj 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

    b 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%0A`CPuxa)x;Zn?T6m<9Li>ZgmYPCP@^g=W* z)L#g~n`A1b`rLrR+B-woQu952x@}b7A&%}8*SDvr-NxOIG;iW`&W*4x$tdop6sIr* z+)80cXD`l;VtE1%$5 zcz7lN7)KoZr4%qC{@Mxo`lx?AzP$F6R2#|nPpzjj)x~|Xpsx^xf{=SRp{1}`0FVX` z5%pjcMnS)Nz)sX!;sEp)XxQyTfNiSDYbDTq!1yCHNDfVCiYG{hfz^@b|8Vrh8bczk zZ$zZul$k|aGP2_OWi}{;#_7Jiw>q_DJx6I|I}M0Bvq0Yad0nCt*WSa*MRuza1JR5B(iE zc8-LGWI3$<84Gu9y&6R=|GpjT4cT8CCzqV90w+-X-3jZpYDN=5)bnX46EQd#Pb=(4 z<||pWw<9h_gBdRJ5_XzKVv@s7)wICT=MS1g2(Oa}*XIOG3n)6w-~7STYtAgbYU$mN zddSKBqKbMNFFifH&U%8TQ_h+`^QTjv9u_v6v8A2SE$@J#n+jsJC7W|wOewt2A@|Sw zW24}7$mEalv%PVnA+%6084p?Y*e@r5IAp9B68c*@Ao?`+s&Ei=KOZ{t9>TiN@cS8CW|3@qoQ4rN8Ar=lK0Q*%2!~UDT2F^`FuOSbI@m82tCA3KC&9L*nOy95$3wKs@+!ouuU_W; zDTLj(3XwW;s6?z>8F=W&IiwA)Ty1PMMo|GmCzyCA3_1P_TB}Vn|8FtisVi}{>szMp z7jz<7w~%1MzxQG8;)CL;nLKWrU6b6_5iBuVdzHP`+e*(+CS&P~HMq0n?r9OTLRafz z8}MZP0NXdK`EGH#&%4X6%Vh)kaO2gRnetu=^Q->)#&LIf{RH3rqw3%ME&x)sA-dn=%(xQ0dYZ^K>@VuC)8~I2o7B zPN#ZCXEU>l0v^B9%v~B3cDhsI!n@~wYWI|K);P4&yyCVeF+B#A(8Nj3Xf%hq?Keq4 zUq2k}??XvWmQuclJgVFGc%Aoe;CA}*Z5Jy@Am8aig;VfDss_~QihFlHEfJPOEP7DK z4T0HveCYB5-J@e-bceHH1f-A>@qC90r`xJTiY&<&m>&9!*N3k*7W?iT4oVNpnIEZp zVU-nkmECuD=8iPihjC}a3tAgG?i;n1CHzw*21sa>RkcvAKiaCf<8^ay6H4O~#BP(+ z+1odJo49;(^~n>vDfk~s?%Mmarzf7XV{*?E{;fk6Uw_s7XA+!qihM@p`{rW-??g4~ zn?Dsy(CYfj4n~b-y~O+f-G8{vakBm3>;qc+^FI?-O!49G(6y`0&m&j1ZbIj|LCP~W zbUUc?vbOW)wR1YT5m(lW2Fa4#*bQjRg@^od5#fSQ4&*iWrO9bOhbAEL_Wq~!<@86R z($~HyY&Ey0cX?TURrtKA`u0R^>uc$MzeFj%={%#t{aaa?{Rlp*t?{VySEn+&sliYD zcKGn%5nyU{8&t2g=sI<9_Q8A-nCjv&Mfn8`w9p{5|J1PEuVg|)wXU5Ew6SGhxLwr2CIzwNU`;< zVGgg>Lki9g0m(cOlRDiJCf`ZBdh?CdLt?z0&Rei3|iu&>8boc%9XE$E_y?m#{u3^gaWD)Ynedx6$Y3A=dAYt} z1*$B{eq8;E2w2d|k_J{E%!L?a!tWT*dyN#y4-(>mB$2l$Is8RDaF^RWT*Grj^C$1R z8T;|OSGMD`ko)Yi8_mK0UK?E9JKGq4cH^4iUfhqCaJ8cAazs~hKxhih$-IJ5yYaz>%E&F^+~t-j_THO)HR#G zR^2=v`P!DLJxJUc_}nKInW?`x{M_2;TC$RjiCAryjnQ|h^cxoc^!8b7;st8+Ep-L# z3aompfCM)Cb7BG#njo*M2W@OmVl9dj&~NY|+NFSFAQ!_NZC<*R4=l~Yp0T;a=U!_s z-!K~EtRFmR<-S;;Zs()s?r^!=|JQELp9$*Auq_SLfZtVLX!ITTJ|!HixFlUy(2+8c4v}R0{8|rK^f~nEs?ZL z8{$hy=7=er8g{QgQx4+B1?Z+fIwQQ{dw_SgZ}FSAk@^t$w)=-{R0nGa4}ZGtiHqRl z5Sr&fLJ>@z;`Ifpn+tvV*=d4xEe>h-pKu60mZv{@f_*g8<*lY6`X8A7&0}uFED?_f zTdH3B(W$N^aJD!rTXE~#wA!eZ(%Ua>{j%TW?CS=j*6xmLMQ^YNIsI4Ql@se{8&X7B z`}DqF6NEX5t>&=WKiLD!Z0{l9&{SUmbUbOS@Pu-Oqc9`fIF(k{6FjpIE z)!Uv1IEihIkgXe;;vBSStu`B$ zb4L@*K5$MU+dZFs`Hod#hu>&pV1aaV8n9#vU=h}VNIWOZ2b%$0#f6?Qq-Y}K85s~d zp*2>iSvJcZw~KlFw2mifFu(#)t!=3TpQ%)Wjg_RY$dRqon_BGL07 zA}M*tjD}V-Nswhbb)ws&qo@_kE6!a$6aFKgT~sFgkiwav&fc54lX=7{=ELHT$(Nl5 zVHtJ`{zXw{SLA&P8;DegD3mE7an>%UvMz^;Wq6B!U(a$UPH)Ae0^v&u3i^U z|C;pmaoxpdWao%#jL5RGH-3002%JV|%r=zT4MwTl_cZiBk6?*kq%bMo-tn=l5#$R? zhxx+TqCYG?gWh}KXial_osGHrgOhL+_ecT5S6?^zgr=AUoS%A{I7`PIRb7*STXMkU z&Fy|`m0woc&x5k%PSFliUt%AR8B^9~w7(qMeLZof$zdkQ(w9o430c_UvX9&T5U0y( zN<|$tSlNg+=6{_-NKq07d%fRX8M9peHPUn<{pe>)WFw4gN**fhNC02MV>tIN=pxdD zcp`_dWgOZ(iLn0oER~`LNqrI;^Ct}d)%{Q~vpwm)#vB8U_+p|EjVIBTZHScy!6$2u z(vPsYNB0bsx~oq>$nYeK*h-Abybc>v-MrwqYcQkD_vPt3N7e>MgO4sxGwf=v{B;u1 zR?gZ5Pvl4z&Mf5-IZ*e(j$XxnsnT%!u`% z@-`mUToErGGk40G4Wf3L+Zg{xkb0Y7`>JT~siOdeXRbRHSf9BPuCFgoF2u|83dgTL z-1=J$`sedUqF+a?QewN1bzo0vije25Zjt$D0KkF=4m8@&LCQ)rIjNhbz41`t^x3bR z``hTbX61!yRyvQ;l4>dsaPI90s+Hi3`Vy^YF5EbwXOdF&ev@s!e@gxGvxwdp35Enl z97X{Njzhu1GCSLtghT`LL@)ZZ75k5=rSCH~M1SJGZzBDf8We9*t|y;#VMYNS_!4s*$1P3Yt50Z0g5 z(-o4}4su&e7iN;(!SK=4RJeV5*+|6d?G5WN!(gUXLFRi!Jws6P)9?f(`c;k;iBcXs@8&s#Z6E%lL|&mG^soJ zC)yQ^Uz`*E0$+=GU?g!MX@2l^WTN02a(O#NqV*~B}>&p{Nf?atINd})?a7Yab z7gu>Vo&@)A1~)sTeWn{8ci_|zW2LVD`4kv>B(>A+)bvLnd~FevlVg>_Q&k}accvk3 z9uWKX68DLc+|1-~{qaW4@oDemTbHfR!i?&IM8zgyMN#xhJQ56KBqnp%#Wc~3!E z<2qH_RZ@PD#Ghx{R5PVjj)@8ZGI#*4am&_YB-?3po(`)u70 znuRzzT>w^_&{a#jF`s2}bIQDw#-ez=<>8;~dCjh8E%NdW;FY8~c;Q^y%Gj#wl-)#f zIb~IY^teM$O7PrFL`x!g^#xxuUPqonPhNJfs-k_V_kIl(eNw{mB9^gaA}a0rCogK2 z_}oOE%#)Tk9cj4_f5VjI6BV%&=jDvuJ;ur3`o5aq6iOr6L|tSFxK2yGlasa<{zZW? z2p2cPWkbFKu12Q+7JyZ)Zjd>D2;y7N%N7eRE0D}w*|&zAg`wh;e&3dM*wZ=f?~6AE zQ|tqh{rH#c@m4PII>$7K$-7N36qpei=?uKv;^id z-kcw~%N7lwY~2ib_;zUsj1pB%k~p(Y@*rQ=f=e1K5fA>h=j*r*43t`O9%H7HNEDi^YD^67|PL0K-{wLi0+?uU7 zp2=O=T;lt?k~{4G=9vJC+MxWm{Km_^ckB%S6mSE-y0 z4!3g-{XQ*IFzK~EqyZULNO~Xp{loK@V~qn24h_l9R<^~f@4MV=9n+Gh!4(b+D^WD1 zFb^`cRLeC}jiQk%)dKs>lPYz_s8q;|rbIR~yW>`E$GTLt9mGa-9_E-#oh!1MpA3sd zIK?%j_Wvq%m3b?cyjonlS~6;LFMoj~@i*&?+r;P8MiicClrdxgr>OKzkUn1y_Du}l zSgx&ICZ`w?=WgN3i%s8$etpuN`dy$K z(+vl^35VhYNW!}*79zmm$dtOJP&aFZ1CON$H2QCp!7|&CHf-fcGV$S+(VF+_`mM}S z+Oni8Yq12oc-%Yka--3y6e+3E9IJyL)~{I@+a|3_&~AuJw18}~qw^PrvKG7y+(d0R z_{BjF5`-T}F@Jb!PhRcXOZ%Yj%Xc>1l#|J^OEA~N?V!_FMdc>mEs49nV`Vgk@chI> zksZO;2nQ5Y$6!3X2J&))w0V;39`Y)q>54{xZYQ+!%hJAPK{gPpk6 z^jz)2TMl7bZA`Jn&6znT26AVFfBU`iHXG8jPWc1d>_%YrcE|%T;(WuV+p})eQ|{Ze z#@w{`^z?q~WYlO4NomKqd!Ho&qQkpJ=j%dVtT1!1$qX^t$=SUFkx&0_|_wQ&2qQYBU+rUZrz{xIA%blp5lB#8yxK);= ztFrgD*26%wJeIVYrLBvZLSO_hi41%gvG|QO#5Q|qBCFpvhy7tatFMiU@87*W74q;4 zu4Qfn9G<x5|yxa zkzuQ`4}FHReC`+J(Y;=fP{U*?VFYk{qVYp%>Ph3Pdm*QLDrug!n{FX9_6XFW&GOA4 ztpJtc03}+B##-=9O-op-C*JY~{EhC^P@)p=(Rj*<^VEK0d~$((pxD`FF;LPb9n8B( z$q)b_Z8K%~D<&a(0!#E5g6WPGU;DLwTT|pa&NOg^ZMIc!%CZia)m0cMiYIQ0CT^Xb z61Dvs>+B+yk7o-#+*|zx_OgtZvqq;6j5qxwO)#B5Ui;70a)i4c>z6zy1;2Yj{F{Zq^pI*ZMkd(}t*X>`aV(zMAC?!JSN51{Ou_-~?GU=9X%_ z7`A!t1SqyONa_cjxm4J*!XBM2TQan$B|a>$>|WaP>pb;cOI=UV5p~2cid`_NUYwnr zHpqfo!N|&D{T8bX4%ZBvNlGDUejg;aZhl){u4|oC8PzQvxciswtHKS=kO13%Daj`fya0EP zJOm5nCcMD)FC7E<%>M#vk*Ac;P?YtkEsnS&5y_D3aZk90ONv6yiDmtR_v=^bd+f?^i5HelkwNv zDLY-XRZkNl?5qgPHg=+tTJm%rR8g@O6N&X7T3h^TVHb;9-i)~StT$>L z^_oZ>u3_i1*4Lr>M-QegI`LC%E}{Ev!mHFjJaY-JqVMOxS?!F(xBxEc+nn5dmb?L|s)DVx&f0Ry=*>Wp{ef|;} zUThS_>h5{7JJyN}j1&9o6YZPz;}`D9-_^U1E1yHj@4@QvzZ-JDyIB47v%ykn=lhlT z`TL^IFBq2UK8An(8u=I%L2o7@4%W6$#kZ6Gq<6l!ala2R5$_n3LKD*+eV-@o&llB4 z{qKPTPriv*fs}A(Sy!(6IiX4a-i$q?CXYysw>}zYmy1SU*}~vLdMOM}Aj7wny6G%` zFR;2vya=Z4f+qL@?U-t)sHwE?lr1?~x`|3+KG-us2(GmU?%GtBXL0P0EFFs0aF>dU zR2AgkqT^MMNMRD;IslN1jZglc%GzL4Z_^s|U2?g_`BnHS>G-?UO1sy1o=or$X}gf6 z<&Ijm=F<;B?^@4` zeJhlg6!l|MOeeesj)n@<%n70q!n(Y*C?9JRkq1jq!_bovX49~S$VD^7$#1uk1k?2w zdBk#+a*gkz9a%E&;$8}7%Jf|dW+_Y|gtC=C#8lrRy~m4~Nox)%zgO0A*L$zj#bH7% z-FTH;LP>Ke0QbsJuutQsM_GZ$0MU;nez3?%5f9uT08HoDkUOi^*eIHVXzpd>4*jt% z%Kh*ManXgD!1#*i*#kbK@(5@1`jOC;d(i>W+itLD503G5eD^PnB?BLvtsgX~pR71F zJTl}E@F3sc34$J_muIGy%BpYK1Cejmt5Zzxkfk%3Fpou!4^u(U6q(Ye))4)AG*QCnBTq>>pS=@Xtm_YGl6%j#a0Et zoB#cDrn4+-DRh;;bBQBxGh1j1tPj6od{rMlnw@LFdN;l@=|-|&D(~sbMY?MfpRgxf zA!6_C*CzX(BwBusn$6mniB0NDv6$MUJhNg(RX4!6^$h!+>cS5!OETS!P*fv@7O|(?5=}&jJfZ*1`2c01z4Yu*5@XmvwumkiRBG z(lU4KR;+M^aJu(mPD!T7Key^e56+}`r#dVpR=8`+;b2D6PNKJ&IK=Wa) zfBoEm$_uDWBOY8#vksyrn80F)`56&}fu1Eqf%_ap4xdFmA&e2v(xGjQ7oq%H%O&h* zdgIo}BJ*#3y~R}q5>>Uv@nIwY!Z;$xB#Z~rmEto(V}`jGtRQR!4Eh3Nme;PYS;XTc zG{dpV$&&H3A?JzL%qtC(j}cB<#{!Kdl>|DX=7=s$B`^Zx$@&_=<&n@ms9aUmo{}xb zWnt}@JrU6!dO2a}VONRJoXMdN0&}mfG;5hAIYRyl>FG&*n9u9(@@?Gu%g<#UWK~eL z5aR>*yqpo{SyxSmF!!QRh3j$b(9>NasTg3-i#onxxVzW`?Bzic9+fm-dL%3@($tpW zExh6T*@rkQo(4gGgdy*-EbyK!5zCIK9@gOv08(l<5TO=`R8_;3?BJCI%1p1i8&{Q& zoH%60OTRM$Ut!3H7Os@~F9Y^1YR) zq@+!hj1Ep)a-E8e#3#^IT=4LSFC|bDBIP0nbF+<--=%nYYT6sN7wdp zvDCFMv?`n@u$I&1huz9J`vpt-90xbx83Kw00682988Li9oNZAr)2&||57kvIza+6K zAh%0ahwX(suUQ|cyP5CAbR^LBj+wL*&x0Z96Z+vErH`v+P6KbPJwUQ4b~{m<^qX|B z+P1TMmh#k&G7K>!q0I{&tmN*8OJ={cR7B^+c%HFb5SKuh#te;Kg4Z-eEHAJl>O=Mu}pYEx^M z=DEVnot43&?P_xZUn9HhX1<+w)gW6_5QrUyYQv<)TOKg7^o?`U3c66J6Iu1#i?zG^ zdunw~M*Z$@|EeB!&gZHju^oh*nD~>9Cw{yB;|VP9v^72~w*BC;lUmcQAQ|TR{<$N{ zDvH`uQSB2GB1CDN)m(hQQ3b@M#IAF1{Z>g;-wdnY!qUwWd~%qJJjlaHI<$fOddyu? z?kUVyL^JV3$(?pcdfAf{+u|VAzFb;)EM85Izv{;28^vJR7kh+!(KjxZNADPVlt0Rk z*KSQ&{EK6y)i6qW%bE*^m-9m!Lm~6|ZCSq3)vU{}UQ5|mQn}o{F=7K#STeYJZ<%Ht zNA)Ew{lRH)Q)SqFEwyyHW!Znf7XKqT_old}XwtqKH;@HqL8a0F{z{YixXeDDpoapot$=D+g=V z5SS1IIfLm4mUV)J4(AA1m_XpTghmS6(V6S;2rsaY;ANEwOj+X(=TmAqvf}0{CWsYh z1_HH(!=Ect5=zW#rVF(>uDum__C*VTx&xGSy(VS6r6@oA{Ut`q=b2nSrWW=hmAB zySRpNXB|(Lk9@TycGHvP36#%V0|m5C%7tP)1uuc9bO3jaC#T>Br~4LHTjh^lPwo_s z`3D?7?`^eCdW!FDd!Cm1S?jm?+NOzZla@0&`$NEK?O-k)i^J~}T zhm{*VwL1iEY<{@GXWu#~ur%o@Sw7!V==i(QvBl2qIp?yZV@*JgXdqjjN{E??PoheQ zu+qu1wU^7?*)<*wcoE=`3E!9~D;!HUh- zTF_TnQAef;he!g;PJurjrQ33?A8>N3Sh0@10R2YkRHTV0qrj@upleDPuqLarIZ@-s-ZYpDcB&q3Y53h|7(!&S18EnqmP%}-@LJJ@SYh`^?V z1_rDY-Kp|1<-&xPvWRuBnU>g?j{+!_fbgfo2p?ithe;VWQLTkvvz)wrYROs;>m2}D z`of9BQ8^#nD+1bv9uRVMIB^M@KHxYnJ?>&4Co!ElO~k&=Uq~Kwtr$SZ<4aeJW16V1 z_Tj>8h&|l&ee`jEIyb9Q&~e(_G$F21@RE?w1=M!FeO>eLx~86Y-;mVauGD~MG7~R% zF6dV+=mwRrPTr7&^hQfI2RE&~MEo;N3pdH)hK%K=)=kNr_J+2;1{F>4=766P{^^FX zPEMSyCHcj3b6-7Bh+I^wQ1IHEE<;*tikxE@7pBI%Go z=3)YuEAgeeZxj`*#Ad&wN=Fl~E7PUJh120I);ZiWVZ(uxr-#T-lW+|Nj`y;*uVy0Z zX}~3MDknI$Aa|9JD!!Fc6Dke$AU#bA9wogbzaW_b&_s&#M9^`PuBamaumX>s0t)mi zSy$YrAthx+vO$u&@q+@|+M`mkWlB<-*z}epJy((3b{6z}>M&~v65?B+VoU%imgGwq z8fP!T01{n&F3>x3)L1;+97ulJC3cqn6F;EJktxH2IW-e{meCd31g07tsyxBs3UEXY zNn$vxp0)~@RIAHl#m7~gzy~jjXK7(&~{f2V^?M zp0n(Eq0l5^s>)fKhoeDI9K;`q9#aoU!brQk7b)*V+bvhq%`4Nrw*-t>i}ER_1H zY)m&vDqfNWMr7;GkT}Ims;_A4_mDZ!=U-%>+tJ8mevwofSf1}T5H?x3E-%xY#2u=0 z8v1?tuJxUM%CTLFF;k}$sw^Z+`KO2knKBekE$5UfBXKn)*t$ukcVUOCfq&h(e%-G= zinCB|nOIVxV_6P--K`_6iDBJKXFEx#oYA#+ekb&ez?TN-)z%s68^(1PJ|gis?nSll zP4S%Xi?PnS#`O%la&8@{OOpS^Q>7uf%LT^U1dhirv|A{0W5pGZQEn0V#`sjWyk+V) z=*@CyqdM=|lqa|PhNKUh)Hhu@z;kkR%hT@A(``jr{yE!S1@>!ra%3xWXXcxw?YdUt zb%x*{;Q)%2r~D^u0#`adj;o^f4A8Kh{@C=c&_GBN4*vZ`cL!8`U|0iBK0d2?i2e1F z=sgDHX}_n!G+y=b%NdFstjcf}19>MB#$O~zwixi3>#+DF2+8XTAG6t>89U}6vw6xkh0muIW#+U(%H`|jJ>{7efO9>Q2{V$k7X^{ zP)d|&K>M}>fT5o^L~uUmAAOO;8~<@XX~!?;5Qu|%VeYf}RMQ&M;O(Q&RL5R|Yk-L2 zPn@nES6@CCC~h7Z@7qceMEV0cak?rsd`hSUYXcpYG(2~R-f=BP>Elu14sx%Nps`o) zR46ZVTNYOZKHpaS*!A40R!?qMM!P0~TNA^scvI~qTH)5U`9MkO6%_Xe(BnPS^*{3S zFNY-eFiJl$%CDqv9EUEtai~5yZar<|ZOiwNSgz+H6*c)@sJ~TqdtCRm`!I+KYXn`D z9^utu$8NEBgt`gd_{1CFXt+Bq{G@k@x&<(pE_lz`@{cTs*0kRKpp2$Z6qh`Z#X~~6 zNNR0LYL%=C%M7HMog31E5yHecu?f7IL((+6* zvsWhOJM&LaN|UZM`b60$=*Qsw#?YUV0mo8Zy2=qCv8%$=)1PIxSIAlR(c1$#%IX~c z!(<-i8i$Dz`f3BIry`H^pR22rVyM?cn{~LD=iPmx!(W1Xjye;*dF=8Lo2b47<`M^P z4#jB}#BjA&wcZY-4LD*}(&5~DE-;*^S*-K%yGgrT`BNZ_Wkp9uUw7M7PsSD4`w>Z5 zu;0ntJHG~C={nWawEpZ%(vZ0uy7N~esLR!|84K$kzdw@771G;VR(eZH&&&Rp=Gm+0 z&l*n;hGe9#+q)!|sp`GHp%-@mlA4Q^>+z&J=sm-PNH@evuYgz%K*#oaGRCi!7b~5b zKa`Qt#9jl(&q=z0n$PP#D$~r7%=O%f*}1Vu@gs3lD!O`Zx*dHS*3bhQ2&GHIvv?3V z8$2k1)A^F_cMHhpI(zYA6;<;6Nbe3K1 zozqU888gz_&Gw|z!e-ZNHUWV5;+qZ_V+9+RVn{;??zu(f^=_liI z?d}lMai@da?ZLw%A<1H1jC@Qw@G~^qI37V1*13`>vcU8lY zfx3pY0}*fE67rw;O*8Yn58LahNW33?rjAcdWrEOO(^{yhT@c#&P0Rgx`@iSFe*H!{5^3vc8IG`FS|Cc7lL`{!z;xI@|#prt{8%T@j+W+oSD>=?gL5(AQ_o#y&5a#31omSNu7a7G#B!wut&n-18a6rD0o zRE^zJ^Um7tx;_itEAXb{JE+QsAw<)LWi?I)KFJQaM9d{5Ap~FSr2Ggerg!{x_-2;! z<0i@Epd9*#ngI`_l}5dbar8`n7g1s7uN%GIc)&+<;WS)8s}WC3VzEWmmiVs==WgV; zNL*C;2c#z#IT5pdRuxn%T^LuSeKQfY3*yQ%c2o~Hs7W>e9T}I`l{3|sG)OG&WGc)$ z?q;i~OznC|hMd-|BK{N&C78NF_ek~@@$-a@EFLR4Y=wx?C15+hzAIRF6 z+|JJ~k36>CNwk3LGMf6uGS{A1=XcPOZ}Za6>6V^$3r}vf^0^MtPB+qhLueAD{LvLx=h>a z*X(O|9;eG~Uhd}JbpN&gpZcx6JGlDHnY^2M`E0g|LLvLKS13*f9cVhI6@5@Q^E{ir z**A2BF9R_1x+8CCzzUZw?3qYfgcr^AS>jffb%L*??a^nNFKI@aH4#w707=;GKU^$4 z96B)fRI1vEVfe#Z-ZPJb;KASXnOaRb%%ReL>aiw#fQ55__iO&*x7W z0!1s&1qmtow47nWo(eCL4-HifMK)PeLXka~f2Z?)-#5ZXg zm7PCN_B&XWP;wAqI`U%*#LU%eJm)}Gnkg%Up6y$dJP0=lw)s-_3^CzJ_eY^J!HQ_h zIe|=3(5Hp*3U5Ehp@%kFJju0_L{yr$Bx^hYe7%_aK@&r2V2mKO@a4Pb2#%ItK9#H+ zhfo!~Jc!FyMtdSwmw8H_KJxI+-BroCosSCiu`QLf(LIU0)7X^Q0dL;ZJvRDJj5lMa zyj^o|Q3z%^V(f*jjYWi=~T0%2v1X)VkZn#KHlHv zCW8g|O-x0b@{$>6s8I~bl34<@=jSyw&S2BXr4&j;05|IxIlCucNjdCUMqBr*;zVAC zHV~nQDq6;SY+)rG-1FMDB;>?&dFFsHqwxQcJIxQ`-YTPZc}rlP?3U#7r7y%h|1sl7ZDzxRe+q zRnuSA@kc?66wNyTDqGwTx#+0WJoGY&GYiB#fu3?v*U@Ng0n*~|$yS!WO)S`aD^=<#L6 zmUG8Xbn<;`PYozDr{|jjhwEu3F`D2r@`QiBWbw^c@i1i%7@@?Q3)Slmz>KMAd(?kx zds0snO5#UTVJc_e=gIW|=SsiwpuRl`*hP>Nqt;O1BB00$%N0e`12d+6C!>!*4$bnA z9lSq>~6q2!_YM9N6qy7;$o9lr3~NAYnPD!o(OX zp#?elEGlgx`o>9D?)I<}Sm_RF@oN>mzn06=pB_7yDUV1`TSRWVitC;G;y1SoL&&9M1(W5j>Ij1EMo#@^8mG|KC z@s_yDSp>Ckr}HSLe;)8z?0Rh1=VF1^yk7dOUE7=zr722v+aCgzqKVUhr)6GT6WaY@ z+e`eDhEL(tBH1;<@Mje&iZ=&mrJ{FNkV-0=+Tp8jD}KCuwrl2j_si+Sg82vf%x`ER z5haW93VDQYP}%CQWt_(lN&Wjo>Ey<`m8IsV}r3+h)iyj@9%)u0|(|?H?r4fCKy&FaPs8)yxZ~eeGb$B$s24xfhe+$sPv=kk zM{GNalE##tLG^K?egdH(9?&j+*3HMHGr3XX@SPq0)y+hT*8mD1KnqcpZr8Htc=qnZ zDF7n4A>0D|N7@En=zxy0LG;fV5qlN#@(^bAq&z0!x}&fgq)&cZOxk}zpg=+7bPI_)3}JhjCKB%}%p<|p2# z*!C3!Q%hCHOQy@ig(O{(5ZqmwIduLsc4-LsCj?Bj!T|lyPTPBv=?I&INrvuWL&tKo ze_-i1r=V5*tbU%ry)lMc=GWLWslVVT_;Ooq2w*E|ru}oMS32bv?{(R*u(NHKIozXZ z58-(ae)a#O=&a+KdfPa>hHVT+j21RZx?8}}-QgrhBcYTuxX~q2A|T*EMB32^sH2e_ zNGYfT0TBzau=u^af1bZie9n13&-vc>eO+HT&)RX}?sKsZvuOh`?`Rmtj^D{hE*B!& zEZy(-EdS*WXrP~hRThu6t$^$F!xP56x*B%oG%8<3r&M(@Ux&UaTE3yNQ+h#c{lhlD zzOVmL`lH`|$|FU^__W7pD9a>+#fRC!(|1|o-ji2Ks4s!AgASq35v-zL{+Q$o@7k?$ zA@y7+ti1TkCXBTJAO|lIT7zmw6n#j~Kz^e@oB*%}#+nEjNu-Iq3Get|a$8pEv*IGw zLRr`f&DKDOmvV4bQqfW5WSx|ANih7%Qip2TO(G*1kdK#EXg1I zS(1~NTNwgXv8$6`sRNKolF z5cM`Y7AVXF`+LbjZtdtq_j#wM-k-y&((+z;_gezRz)mz4&(S8QtVKSVSMpa3mSVlO- z?P}^jWNhOwQyJMOB(NO?y2;>U3Fg+gFCS@{o5{HlSE6x^6JpK8pIOphv&A!$|Fz7K zLA2GbRkgUMdM~K{swdFKy-1=(*{^$xA2|wjktiBs3Yd5X+zzmd+_Q|Dcw8LJVsM@1 z)Oj)nRNs%56ZhA9A0_`W!tf`j@UPDEf4b17R?y&3?xg~OpjikJ|Cb|b?8D)R(Fa&e z4uAi!zz|tL?1YO|tCXhdaQ>vBb59>NZGjqTa(X*#z_@-`Icsc>GvVA~Q>U1`B;L_J zrASZXuVy-)4_V@Z>ultqu{lZeD%Mdj*m^Evnp868?fFhk{b0rBBG~qg zgYC<3!+%#R_o=MlZ>(1+K-X4>C&K~*-rOSk&_n7+`C0v+MGt;3*c*Touo-?4Z#FB6 zmv}@+C5?r#bp}E0T*j)dNLAJQJDV(HoqB}axlGKzptG6LK0VMEL{ZO0zRPN&#a!PH ze5_CGjJ67tjT4Tz4e9(79~hbs`0JS!+BxcZ3yw}%M!mzX9qJ)Ht3K`I>s8qbbg-_D z9siE3yD|1ykF*s0sYt|JFk&Lm1dG^QZrbVgl<^nb$9Rncg}lf0-gV0V!wBQlgrD3{ z@TDPsP}l{B#|QMOuA>6=I1YXwJAW;ZLmB@)B0P`;IUsR&4p(&IIE2W)YRg_%81N}# zwb?2FI>Iu|xN5m%WUW>;J?#%)Ft+tJWYK5m!l5t6KwtRTY(jXVYXeQwFLnXH9)dip zBxhGz@S=kBhJsI~CEkK+=-ajg2XzP_CLP7y|3eEcN z?(L;8csOs?O$yN1QT0}97UBvQn|F2+57Yq=*YY+xJC@JS{$k06_*=1C>Lc3K%n2pP zfySQ?3(GJY86KsL-_#%QcX}s1?a!a%m2LN)RR`&^s)oMgJ!)8#f7PexL<47DNfCeZ zDAML}%!J2XhUzNu$zC)G9_P8$6*P}K(}+M23AVz#slQ6nx8^kiPKXF6{eOaM4uPSp zPFUFEE9pN=(#6?fBlu|S@OVS*KWyC*I{Rf}5H8|hKUAjqOdD0npf6993w0a{;(xb!LUNb}j@tsADJznW<*nsA#p z-G%RZD5!W(YwMy#65Irk`Q@3=>%*e|Fsb4dFarv{t3aS(>%fLq(gJh9eLw%7Lby2| zgRLE}%Hb9QvTMh~hy++T2~KyoDhEN8;x(&?_u~iPCrJZkVe#-%?4g5lxn%@8m(Qc{ zxdH{pb9v=xHNzv9i@(t!4=B%59X;PU%-{Yi_w1FUVi~iFsoQ~cqWXa(n`-q+Lfd$3 z^;@wc<+sYITEBvzWC7*ZjxZ8d41NSo$o=VtdUvgn*28xtc_B4~ZDL@{sg9?o-=?k_GgQ=P; zVncPcEgm5@{il_R1nwZ9V)-9F&#{;U<&%MR?MEw#7BBga{>rt#ET7%sLkyNA2DLwc z4j*HQU<=BfXIZAha2o&bT3>9PK%A|0?7L52I%Ql}FVm1h-WuY4 z>_TKV?f6tVR|O3&SUcd%TN1Z{KARb~_e?)(x4nx_yA+-PPk-YQs-u&z0S^~FbmqZc8|MD$zy6C~*~Y}^exA7r{{!6D)&%ac_$rTupHzWMd8+*BMy+hi(Vh{xp_3XV z$VY35vrmVl*5Y}DKUcpwSJN}hx-VcA)$BgV{^Vb}GDJM_g<2E8cp*H2_OFTt*DP%~ zt&aohe%-8#AVEy<5Z+{n8Re$L34hmHMOIw2#+hNDAdo}$)}Q_GC2^0jpOFZxHya+? z`ya_UfgfmKuOg@b04Dp?Cf#3rWVKf&3x);gAz@@3Af$( z2L%Y;lQYy>%-?MJ&U3TYrn#StThH04KNqi>8 zTDE2r^BcDkhjrigr0k4UNA+t%-j0EVKa0`Rn(yJ4mRsE06qWt<=24^1W;>}rlRvTF z_MF6(zQUoJbG^JNpM7b+jEIO<8bXkSWO=Q0h63akN)vh6X-ZRm$ab>xAX@xPmosBs z#QT{>be*ZEZ6N-W>r1$&N1Dsy-7CA5nXY@!@f?CUb_@2m3&tV^GUiDsQ4|bQhThFZ z=4t<(yZI`9?fQc)`_WTw(W&3R(DMB3s6C-sKdbkH`}BU_^P=yuK<^Iozgl<0-PpW0 zY_^c%{w$?P@Xd+Rx}L`$0TmY#t$`t1o%ZRcNA2eypKwN>fhT$bg0QO3zxeTN$4~zI zca06;V+)3fm@x{;;h7_Rimhg#FFq#uvJpl!LblRflMLnd^g3giV&i;epK{fl!}_NJ zS~WUkkg+MNpl0OyP=#TZ%`Kff`^)drb2yTYKh1?WPTPwZW^qYz>@bXSxno=(CS+jz zq4_rvq< zkd4RI{2M+eL5uaje$4%h^}e*)VBQjAZGq&GcWpgpFm7P=$p9dSY9qS#JgZKrVyyu* zN78w!z9`nlz5n}%jlnAl@+bYjzCJBd`N@jn6y&geOu`AlMWRn9v=enw8KQ+^$JwF@ zABHEvkRl4mfcd4}h+x+kFcqOdP%>ra2{ZCB5n0Ef+wpB2NI8ccTNMtnUriLVM;{m-P*hGaZ1F1Mpp! zSdW;r<1HFfOM&7DmtSjaryhm-AsNT6>lRoLyBQD}NXkkG>gjbGX1efw@ut=^@WkNZ?)}TLdBeyt z(Nynu`fMa*Rcfg?d{`E#zrc~rBpKb#*GggST2F(U7-@0z1mTp>WYOO=5N|dX@}K?F z0UKqoAinmj9SzQv+6hsXB(wNSrg4-VYTwz}hg&vQ3!Y{WMuG;hWa5(32TH!bP7dbb z6jVMuB2Qbo!DkllDO~XrabejY&I?f?!)5qrK=EV3N_pmwzas+W)?oSVmKpUi2R-R{ z+2mz{@IO8Hv|VmwX}zp?(1%-3sQU{1?nig#B^^=C@It6Kkt9sLOFQrW*2&8kz$`|{ zP$~!N2G3wOMz+-1Dt#;V@J!leIR)`mwQ!Y(WEOzm!xPXyRCsEh5sN=TlV9Yr0j78u z*{g`;G!n}e*8-T=5ICeX>)55R!=i$W)To<&cg{Y&Z61Ujlwh>vYDA21Op{=0^*|Jh z@hH!224@8%$IHKeRCJj@O*8hFcC|ARtk9nfV6dNpb~Da=jvG1;I>NM|Jtu>KowDLf z@~css!l`9Aq@Pp0333CT30Ti!gUAayJtB zo*ql880F@isG(2=><-?FoI~G<7f|l?`<1biLvB zykxk)-BfS7HAH)Ef~)US|CPKvvf?SYTd?nl`SkUaTxR zJ&T^I_sVtMy1;4;v_j%^%SKYrf4RllEexMkR z^dvE0vi-w@VvuzG@C=nPQNhulWJhhD*2W^=;>ULB1~(5q4MU}?f1@Z+kLy8#0rH!S%-W|T4aVnr_*ctlJX41VA2c&QGOsi?6gPwIiZk=pqQmOqbnfpCM1|&>Jtv8KiTmYFy$( zxlcp%(!uKy?(Y7B?<1+GJAbO~`z>aAaVP8S4Il0Mbi8saV=aDQ=y7o2^OOJnVuK?500X{nRI{r3}xCOK?~uuyTbPy&gdeA@XTPCbO4G&rA9)?A}v zt`){S*JtLL0yrspzs1H1?vsTzg+ro*_rh6YFg~9TS+B+Bf3stgiu1RoUyx@`Q<6-} zH6={?q{%rMvfBBU{=8@$WRQSWL@_|O4MCG2kUY(g62+lF1!O*BUNu0vQ$W>kK;guU zqZkfZCD=nIw!sS;8WgY%2^M;l^(!9sQ^f9kDyM2~W|AE_oobRxWKN-<0432`bcTZq z2dX9WtiCf+rB6WOCer*__Nz5aNoIC-Z+5gd5BDg`!*GlXCTBt^C!HOYSjX+-!*^$@ zME70E`6m8aLbAAdZcI#I@97hy<=zco-dNcVd~8W|9>eDy9gsrvVm^0TEKym-jVf)33`#GpC5+N_d0-OSj@nG^7ie zSV*qAF$oW1;_sXV@rxKH9m*b*YKRmfiqN3_eOu*lu$>}|%E5L-gxQ3Hy|Q8KJgjdi zu+9}xs;{UjJ2dM8Ie3pNi@_vFERv=pF^Ri8- zraX8r~&?8{Q1ba{zdkP{l-g+=L}MHSJRlc=DcK7g<`vH$=&E3I7-uYO3c z@CQ`NE<)~B2%WMfy~jAudyA@qpeQ=igXdhQB-IoOut$q2nqZo*PkcZ+%UEMEe}+ly zH+_N6HFrc3wh-U@RI_T$u6<*<$(}P#mO3dgLT(sVuQpYO9W-1)1aH2pjzV}Wiq~8f zyHR6c*_&?ZHICn~zsboh(`nE+)oV3ylsC?u|6Qu=xarPM>Ycw*ZvQ<8C@`mmOWjiG zkITE2#=>a2bI`=jRonAcON?I7Wv3~T;44_fAp(GRQBg0^v9BnoB4V8a7IXtpw*-JE z1K1T1(776rZW@B^8JE3YvwsSvGD)T0$GP5g0Lc9ir2zjzMrMSs>7q!p1uJ0(`&_y0psfh|sv z+740tHL=aeN2dshQNhF)&JVj!EKy@;Sco@+(QFShIu03DQ!cFT@v*e>P|=t>$M7a` zWRsMnn+O^T2yS9!bjr(6DhHZ0d2y_EO>!Y!LUw4OBP}s1^nnFxNfB8{2Vg0+%(X_V zBB+SIyzWW_lA1nHdF5HSkvLULh3@J{fid3?Kb1bI`h=(Pv-v58abV7=>vPt|gO~VS z!h-6rg||r+wk4J$XZXx6;M%YLabG}lyI;_GXOa7Xzhng<_^2cM>om(eRs37*wO`Xb z&P!RJCmTSP4{wG%{3v>#?-Dh(5;?#?B3tfbu^}v(G3@V8vG`E8a99W_JcKszaMwzB z?B;}DC~l*1I;hk5B!VqKE6Ms)U#1AvkQus(=z_RXs`zn{7jLm00Z^1Kt|MV-3bgq& zC|N~`PBRH9%HBzca~RBve2ZF3tR0v}wXC7K4w;iES_FYsw-#6+?SeWb0~XuymI|{B z*G8Ii(tr1aS~6RCE9L;0BW}0RvBeAisOMMBt}Y`{RXVe@l!Daui!WHx_7PN?ct%LJ zxFb(;egDDL=<9BRr6am^{Z|Rf4{x=M$jpvVn1kfibR@?gR_7ro8-lXffi9PUFiV$t zOXx+S&?W5HDc$!JocFnq^{wI{pUEApdS|~Smr=*ykQ>bERL+Knj<$>gwQtGxHf5Vq zCOQpHd}oXglJ)(Xwo60rEZt-)^z^LKgg%9`%eI^%pfZov5<6i8PRsg0{_d>Mx&twO=r-< z?ziq?(o7Z2ohQBs5QBB*XaYZ68?c)XB&>2P*GC3tXC7Gzv>(Fn07lurW<|RUUmZi- zw}Y~r!_#X=Q}|udX)ysAF1~c*wNO|f1!mmZv4>|BzHQZeuFRjWX~2!mFNe+93i^I% z+>Ise+5Why08X}nDT0JW9%0`=KsYL(01aQlw#3MyPT{+ep;rc)6Rh)4(iSJE7ijwH z_oxj;WHVhh%8uz$I1Cx6aoRuM*VFSQ9A?9~;MLMwlmtH7cw+FPH>8`nJP9O81rcew zFPVyS7g_46ko7|>vqX%Jno?7!62~Z}{hPo|2jz)Tj5c46cwwniV_4J#X+`ToH> zg~4ThIj{glnDgmJOP_aTx%EtPK_yPMpbxuHoF+_Vx{iNrwb8vvdi)m#!qVaj0d(s> zi2H$Z&kyM(y4_#D$;J?2Oj1kgv_%`N)rJ*JHV&*tS~_a!l{|UWD{bADLth#KKdTfp z(?~WW6noTFQQ0Fm!!$HSGS`$vm{?%AZHcvfZGl1n9rh6?8Ik z4HchM`(S$VHTtpW022fwlv79`}iY`jb`hOuH=nmvXR{$n+Aw>3&dMiJ zj3LRZ5`}&K^huh|4E<>?`I+jOzmwg0C;)Ean*y<{He4PQ@B7eP)pl_W+ zM$x1#_ZPgBkYcX@d&*!fJoJ?M?Cht}jH(|Og39)P&~JY+|LO?~ap(E)k}W%CMUV9I zLUH2q(|2=-wX3t^p-M5Oks;SUUDFqwU>Edxg$X9>uA)BsaY#LCx_bQhbMoh(x^U#1 zu(vOb`|LpCEWQXA#RAZnGn>SIFq5~?;h`}87weM+KhD#&@N^>-!FMH8WZla99pkQT zneRomVES6Q9@sBgD%9#4cvOBv4a6y``@O6BpE@zjMBXJ69qInxk{lk?PBc|!DxRl5 zmFjsGpipzk%VCI${Q7#+X<8tT{paK1Q)LGCgXm}-D7u|`=~)?yU)8lIQq6a7_IWRu zUEHRgu()lU&!={IXMORFX(7(IKsX5a7{QCOY1wY>g<+E z;2f{ATW@Gempf>7m+xO?$9S1r_*Mpwdw9n}MIfbPqB5wiVuC-op`wAG_0kvmXs~De zZe@r&yQDyBXAZRt#&^V4SMF09VZtBM{l!EuYB|DGD6u=Jp)z!&iM!fK$pKT766yVv zn*bOF;)_pQo2B$A2qWp{=A}-E{6jJQbm<92LsT4H>V0e1vTI&j^b$F*J$98GRTDpt zHAIecfLWCEFmA0%6M_IM<>}BFE0uX(Ky5n4vwU0Q(!dv3&&6+&`Wb6}+1Bdp%86rO z9v>2}m#4K{oCEDi(}!R@vxj^5PBUDX>+Q5pn(u46dd}_lj?Tjlv5m!rNAs3f9&v4M zi0gSozk5*Of=z0;>9XIYjwf(WKj5oE@A%{XVO1q>2elSWR0cP0DZXUWO^0%`d$BVM zBp_Xt^aKArn=noJ^Zln63CtZwO#O3Je5&$to$-A_;ZDv?cZ=s?l4onh{0i??afnIb zPlU=XW@Nh#93ax202v{bMW>5$y)O(Vt@}?Qq3!WYl3?5Ozn1xw&I=H&lnfLS#ZIvS z?-@(>zElI%OTCK$WjYq?zBjmvUpcAEDT9Zh7!x}nj5j@1lobAUZ?urN{)FE()TZB^Sn0imMxdw(NvaY zQC&u@s~tIw2_yya#jDEK7Zzwy5HfN+XDV_ZEa87yb&Y%xnp2x&7d~_3b-8QqMB}yn zC`%R7vkGeU_YW79bu+nH?QfhXE<0PdneFynoW*G*Fw)?yy;8hpTkO|^N|~{X0G{+V zXjHZ#yi6sndz=^+wn5zJ{3^)r_x3_mi$MHQZ}y`I+7&TPWBJP6)_@hJ$c^nA@5^v^ z0J`mb5N$g-z337b#w6c!yuG?vx;!gcK3ZtWj>F3yHKhbGenCRNcc07;-Lc7Y+wtLf zbZo2`>=(;CIKGn&(Wy}#MV;~~kXAI{c^02|a?mSBgnssU9TM1O>+V#)SgMrY71=-_ zljey1)aRxg!8}2)UsG9+`x|d0yG%L$m5ndgQDXoT8(;s+T_xR3Zc{sHk0q4;hIUOXZoO)^PCHgj&jzx3B zx6!Loqvr>ve0cx;vL(TsC}5ALylK&SVEa$8I+w=zZ>g4QOnmVnACC%u$TVg8(2;QQ zpcrlefPNtR7pAN3;GSfasr6VT$tPB5?}(Yp5y-{2>YL`(o0zI>!q}3-0bm0nh&z8; zO*u|~HTZd|y@(w&Du~qLiJvh^CjtS>XzHI+C z04R*Lt1X9k!kLtSZ9Zli9ngM+SX8W@YL2s1xL+Frj@_~>KX&y*H3lYv?5 z_u)*sOT}LESQ680-s#ACL;zIEUVCCefg0P^3NA*0HwIdK7v`A>o@GB6%coECXcUz z6)N7uceH8ntV-p*1%VOP@w*aNo2-+4Fke4$%l2jzB`J4EBm*o?r8|y*jt)E?KZ#|o z5Vjn#j@{r28hPJRGTMOyXr7`V35BsP_f7q+%e( z5Z6M`e?u%eE*TeR>qPVgg{UA5@#igN8kw^){K{Es{L90PsH$^Qy*{hIfVRV5;hbNx zP*s$LYcZMbG{JpnApCzUB zZ4uSArnf%yQf@r8_PoQ}T?pM(z6JJui)Wgu`KYfeaZMs<85!^{16uxPW_gYQG=ipq zX(U8P{xI_qgUquDKv)wEwobmj3{dJ)ew^o}bMbT+#Eyqc$DhUqoR1F!RfASqE+5Ka zKcW94GQ|Nd7an8i4|1UWLVp$MB48Ut50KOp(IbeD@7pmZHfIXS^MRh$5l(9{9> z=`e@t_)1Ig@sjVZ^G=`BL>&rX4pUd2>!ka1FKje`7H_x^p%d?*7@b1rL3k2-)rzmK zQ4|yoepq<>?BD$pMN9CtPX0Z!0Bee|}sIICAevtNLSNh!V zQ&6I4J}Ur-Ap-ka+I>at0R(9+T9oX#2LwJHal)ARlm@?DUkhLJgWQ5PULXgJtdWOz z0kNH@(To(?jE})EyM7EMm2Fc85o{Ds`Sdm^6Y|S^8#(RFiFPrY-*JZ`9P8Mg4~3Jf0?iuT z8*xqD79VD9KC;{m(1dM2gZfcxm)^^G04$|s$#*p&U9COcTdmK+h}zbjj7rV%!jE?SEHv5nOcj_%h6 z7~eUqVtl`JXLs6^jo@VB;q*R-ZXao7u4`tPj$+9`@$cI~qs>f0Q_m_2An!Q|@}8;FgUXJ%)wDKr-K9-fQB`5n%0 zBRO^)^>%fpV+P=rfQ-DTC7B-RgJlPWIhU}Ps{-Dz&nMq({OB2e$5ftNV-GBp`GwX+ zWV$*Aaz4&cEAoPIg>4&JoeDVLX~!uR!WYQt1W4vP(ti>o*uGt9YEh|NS$X~)5NNvF zW10-i4m-U8(v%Tp5PTbKK>IdrW%F^__9XyG0TlHBxX?HAP`xlly`!=7ok;sUquaHS z&ICF0AmtmnT`Qx*bILDq{}?xZuj7KyMd_}?)zPXv+OW^=XnzkEE-RbqU$sI1(ktKB z%3SSnM=M>Pb8UO+S_W|3-mm~X%kaoH#u%+-ZCA3z0SxdEgMN-UxpX}Ju2!<8A`Yx9 z#Ti9k3kVtg`pyk+okj9DRS#|ICkQ7P(NEGn=*Ay=EOQ9fwRYxJ^eLmM!MrgmYn72d zb~YJilKp_9f9~{u?npYRbXUyD_4(ZX6rp%|jbJ?(VSU=i!PUP~;|~jfqunXBcUErP zbUcm|dgwulP5MvacgkA3^LtS*8&WCM_W2 zDhY{~yVLT<>v3pPYPDgArQL7eWg$_coF2N}KdT4Zc9P*Bs5?k(pO8I7LNI%o<8`rkLlc%7U zyW1W+Ek@6BR0fuAOQMG?VE%Nd=%;E|x+ic^C%xIz&Wu+Ino$Mutf4}sANvHR?1g%q zeyuJY$rB#O(9j=Hn-fO5HE#whb8f99P*XYG5bvw@W1@Gc=7D0Gs$y>}-S>M-UQi2D zLIYD`*;^f#EOngl6VvEU|H*ZmOwQ{C}MkKKJjl^B1gvU%t{qGa|vl7Yzhj@u` zne`8;fvVJ!lb) z!A_=qK(EXtM8@?u<}EtD=|+cXuDU>Z(j~vbcNL#nsyunc9``f4Wxnj}-s@S-!ad40 z3_h@43NqfSDm8Y?&TPDV`EAX#f8#-TGERK5K~VjOS*0=bz(j1(dIk|A+d*SfhU z|77^82EFfl{6?cYaPV=+apsjr?OBOsftqB_#CE2nY(r(qQ0cBwLmR(dBqpo(bhgMo zA9@=##~5*=K|eU5`a@^uKg_+_nRgky{9gSAj*Ky@wDSP+mc1VGh8UMiJc)l-GcHrF zo9VHBVw~6Yj?lkk-jX5dAgGMdqg+<2;zY~u`P)i<+La5oW6rSKPk-(A>8(wq_RC8lba^ z)laT&e3>XlXM;YF->6`}{>uFNw>?B-jVUVjtMbD8A?}|lXMYZwqz%WMr>cae>`2PL zGgR-awDjnsvgh&;fN>iL*iVM|I$-880Dj|}`Tgjko1}TW{E4`HYmJXC38%Q1=Rcew zCIkrHte-RP(r>#6U&Tzt43j4Z(0exVo@TEm;Aq#^Hv-2Zi02D04M}+JL%pVCJa_}r zYduBIM&2{|;V+y}C*0wW-ENj}Jm@th(lV3+iZO+1>R}tICNp2KS5B+{(o~S#VT_s` zSo1z-pXb-(%%9gZ|6C)*CgWqH1EWq4YNdLP2S!ap_sn2%atYRGN9*U-N7d9Pkp64fyr&NezPhpjN(Hi^O9`W<5+Rmc4QP z!c$IC7{I>D_slO}$zMS`8C4%3B9o906MLS=WpjgYCQiW)T?co-r^l{^+b?%3XP#n( zkM1zNsp9%wcO~U5o1{Ol&m)HffFl~l_eMSPrD6Z$=Ks>9;h&k%r7%XS{9&p>W199U zeVp*$_dxK^YuD7w(p1X-yONdo=gGAsLSpZ=*gqFim9b#bROGk?7zSe#(jgVI?2qAVR+GV{JnZlv$>?#Mkthdi+$c5bdG*xAElFfRW0 zt|gy`Tdz+1_U?1X#-&>A??-+zFUYIyUZVwaiRvF;^j>*0-F~HiSM`4p^;t=Q>nAY{nz!6c?vBMaSaN^Z&6M1=&%~r~Li4)fIR{ zNH>0uu^=3Ht?KXTe7>3K888Q7k}t5lh(QigT&JY5)qPnwA5f^2d4ji-E3MT>>5H)& zi{+EjvUy%&!7Q#7e#Hp!oAs%AlGaWJ%+ej-IIQgG>H5|h?@Aq^I{(C$HB7HME^E9F z5*>EnkQKv#Ihqa^oiCEtFu1Jr9%dYC9La#|KD7?168aFjrZhnJzo-!Rarc(^D1>v? zzmDByUG9ZcZ=P?^lJf=sTggW=@=Ncw`4sA|oA3vP{P4+Bozv%UsxNVHZMt{Mr?RQx zcBHnO%%b^)>Z^0AX=fE4m(x>Y<;rQp;Pk>kAxH|K?iDtTnIpTMDzqdc@c7{SmMvKgL6r?e$$SX$O z;Ms>r-~8QFN->vn_cx9Lt%EpDn{z-dppsF9N-pHeZc)C*tIdvO2s&tem`SXWF=FNz z>2&V`A=h{cEJ(qQOC`yt%_;?mq_Nxy`91Q~^Y-ygIFTlpP%hWAo^!uO>TFuWogfgu zq;l2ncEwyy!bs5F8!<1spV=Co=~;Gk^tk%0&FbvI)qBBxmZvH#N^@-6Z+$b|?k}Yf zY#NurR6^g;i?+*b!!tbac@>p)vr-NI3e0aD~fJwMfBA^Ke7qhAv3Uyy#`V zG7!pnTrg=jE&03z%4+miA1>oLTg0NmP&5|yB#W2f(Ba`Dx4aLQW|SsND>|o_J2sCb zZU+_T%#uH*&Up9GuB}(cYxmx-l=a$sdiD+=>NI!bnNaDq8?Q^y=egiM8jNtqf(7$_>^a~|&A0OF>0v7AxIJ|ZqBux4HyelY zkJA{G8@a5#xy5>IywCer7~3Ns?~P3pW)GbG1rk97d%_sg>wl}u#z^b!#NJE|YBXnl zmnzjsgvz*kv-o8{<*1~SUwoXB=x?DxPPq0^zGirkMG@dIvzP_zj0Ii%hG(`QreeBj z(t_ky%+0hcJTHj-;y?||2CEE?S>R!)Wd4^~*3%<6nxxp3KAVo?`8lkRl6BGQ-v_3O zqkr3+6y{}xf{2Py786o4mQlIinG3N{yfv^Xu8{a{#%r|!GkdDw&8-;LIWx_3&rE-P zLc+kXs!g}s#|`OWrV;Y{;6e_-MV;M#^vY^s*0$hTwqZWQFpx}jb~p}sqj6+hsXgL) z)PnHdyRn4nuWU)>hB6}&1@iR!NKb$v?+6wK3&NWstl#j9(ok1I(+VccOzcGLfVHZv zXL-T_+&l*DIRJ-3WvV_a<%F0q&R3U^uL*(h|1vZAHNrD4X(E2t@Jui12It$n3dQsY ziSgxB?%HKmg>Qc6XFiBDR52hD_^oBHF*xt1K_~zkl;>&zyG7fSzA$*O@*s6Za}68d zVYYkL@5n$U=8%GPL64lrm*`qL*&?4**o3&0RL76+A$J>WqB6UxV!CizNH-h)cE`)I zep@*1_XNWaK+GmHlmEjareCx7^>Qrt4Z`|Nbi(fnSO7nc43V=CW~V4fGGN!$Qfo$u z1m0C%v*@N~4P^S?OIat0+SYcL&qvo$>R2U)``|W&5sq7h&ut@s=WADen)?~XQbjl( z;$M-${lPKuD*h9eI~JI-qp!2FVMRzcAJNtW4~4{y_pjVNNBJJcWy)1!N3#61jGtLZ(N@gx@^Vz4?CMv6G@X z;Ge^uy&iVunv7!~7OZ`-#74r68}UhAgZIgljbzpU?+iec_qAb(dw0v`(rL4;iok62 zq~$ATN)D#Q>~rG#(6{H_Xe~@XG*PMf!g8UzF6b)R-?eX(9Ps->dTRelo%cPn4n-gK z{OoRmberMHphV2&m1x=YwP){aO3*HxF|9rV=YkzoRx1xeTOZKkv(?Am2ud`_77XGL z1D80_Y?@@4GOZ0o--%J$Q#w2%y{U^c6yQESbIV$ieT<7a^49As>_`HBTLkvGp7VIekPX#hV>K3UMM!jdlj!Nzh zElDrbW(|YpAu{V79DCpHI}*O$Uej5YPHJt`csZiGj$7^2i_k0xdvAC+tmjSzA(W|P zg_B5qHaI3G|CZ0yEDUJ0ANHlWc8(Alc#i$rI*n<-14)k)QMfHx5`I6;@oKCHm(3%H zg!UG4U|EE_1I?(eRFaTBn--WfU={O|N7BkqgmEO=?;P?Jk#SzV~QUbu&u1V;IMYmk-O~Oi&6T)S#@d(w@via z9FCE)Wa3l$nEs^tcTW9x5uP3rbY91BHlWp*Zx4pK6CEKr`sDTCy(J=xpnSNe$B86L z)#(*TnF!XVG`Jfs66rwx>B?{e!A8=0Hw{sRXHulK0!H3>xE*wO!YhgJ$2IRUE-d3h z*`m7zacGe6CRqm{yoh>TR5kMDj4%%c|I8ooH3En>c+GF`^}WchTaAEn zAhe*$M66zjd;?C^llsVRzu<;SXt0u%Q=_Dz)xAtb`$$#R-AfkHdMHSIv?)X%{*3ZCS^SRGOacoCZhawJ zJ=4d3-5uUCA_cZBe)~6d!;ChIu}_=Z^!??W-Bb1SyZ)_45_giD=NMP`>0X939Zi5K z02qJTa-5Sh&x)CxLNNs`Cd0i=n?moNDSmyH3o9Jy`Rm(=3ff2a#T#ALI@~Js^op0F zL86&8vG{Fx5`f97PCwf6-P30V%6^8*JG%NiH-I3KcZeTb{8@{3-qqVCkz!H@`U0o$ zKER#BGXnn4x8-8sh#(sHP(-M|UI_2??X)fF#LR|EltqHqCdE-YHA5u@k1!IIVHgh- z)mmMx{m*PNnmAdtj=NjP^WtTW%8>VoTv~ZJN*Yj()(Rr_dNicf2ntFT}V&m{Fqpvc%|w zz=10^ZhoPi!K*ok{`p8qWRv`Pc)RuKb`gc36G!e1*Jom>g(==i?%z4X%ZdiQu^J&L zm5H1!7I`l<0xriRTJhY>;!=zNEB#D`F>^(N!_~svn0%fW?14d&nJQ-YUVBge^S7)0 z2Lc}O_{|#s_ub2(N#J6ge@yV(n1q|IKkhF5kFm4vit7Ep{sc30*O1cPsepWjZloKf zyGz;`x`d${hVJfCx=R6Rq@+bK01?NV-}e#RYhC}Jv#ztQv(DM?y$5Zh6nlRaU2T1QVB3Uj+E;GcS z2v7W^n4*ZlYM#UW$aT&T0WQbG*Fkc(YkJTwTKdTc5EA;cRRx$>Jf*7QOd|7<0t*P$ znC=;yk&gJ{S?Fq230Qpe&6&ODW_lfbnjLWp4yv*nWi6A5#K9s9%Hs@< zy!v3t6%#NLr17hg6fcsA)2<*#=#6fI} z5swa8+>cHyfCz8_d`)qP4h7;w4RefU{QEU5h{Y|mmH`n5Gkj;ZX5)6Eh_R7TNWWh% z?g8=TP#a+)gk+AblE?(mY8WjVb0!5nfBEbf=f2+aKA!~H@2t5jR)SomqM`6SDVF^4 zilY1T{2ga}G`wiTd5HF6i0q<}@nTTkX6TH&Sl+GpV--3E0V|g)S3j}O%Xu0%QXixs zLo!O~H3U~2tIBhrPa5W;P)IEwAw7YUqks~FK#G&W|4@;Vb|d^(Kx?W>@@qNzX8BY% z1;(F1CdCp82epVEZ0tqnW&y(%pW*ForGRJ3({UKQMT%XtHPriZq1z?4Sgn9JhuW}1 zQ!}2|_GDO#-5ygx5YWKeKkU9W&F_11U`M~tEv^8Ln%}u}hmPChJ-F_&)E5%*4O0p1 zkzMW)UG589kgzoF(bgX%48jV4E!eMJp%L!#QaFl#5WsjW)y%fgS1*M?^HOC(mvWA>=k9xdtZL0#G!|^Tr{G07&VmN1E^@ zHUYDxI+EeU%7F-%YO)F~6(#2ZC$*i&Mm#C(g*T^xgbRqf)j9p23ogQy|H7epih|=b zJN$m@T(}$k_slaeRPo^6ZJxK`*_0q6LKN*u*LO|#1aaRecx?UUU15^2qN$!bcKUZ= zpO?H(=$1^m$N7_nF|^+?H{Y09zwc%oG56Uq2EzA6Jobj2heei#k^wXYLu1nloUeUk z?D!;6^4Ec0*nHcRs3XitWj(IruxMbUG{q1RT27)JM0E%!%TSQCixfKqJ$hpwM~das zdBnw$?~4$ofhVA{W3rJUp@I~SSxw5Nq>uHu#>$jJR^C)EzFGOTJS>BbTiDC4;{6L+ zXgtek4?y&FKcq(Lm>UKE9H~)`K<=aQy!PW$v$)I388-L@S8f(==@qOp^l}Ew8D*h) z<(d?p{2gQ@PC6_9ogvZ8qY8Q#w#e@O&`xVAvjk4Y5ID*6R)sG6^k z4%u_ZIiH;$HcTwyuR$9SZsQmlc;bsqT1q+mUE32i_8vVKOfJbyu)q32yU z8A5z3HwnJ2pvZgr3Tv8t$gEah$o=@`ca(ppb1P4N?Bvw4C*G-VJ^cFZrY0rW-dMtg zi_qZLQAAaez=QwhxEcpmq+q`s%#$CTzJ{V$^DStkzVD9r%|ZuxujQ z)-NdFt32{`K*fvmJk18$7v1lpH+!F(3b!ZO|1>>F^Pg(`!jx z@kid~Uvbo{h`oXQXlY-2{nz5@!R*ZKccFLE+LXsrrj{4-ywTRx)wThMFL~u*4gfIS zLCE&z-;kcyW;j0KnR-^`n&^Wrqh3~BXZGRP+)4e9<~n5X)fd^T22+tQgq!KOC>;Hp zinp`^H~jB44QXif+63*44Sp|RAVqgv{qUKwOsE1Dmig>zFQea}c|sA67m~+U{y|Pb z3@{*OqJV7ypd(a}VH@aR>!HQ5{D1^YHiJ%#zm_|a*^pO_*^cwnq>Zca$7sm*MfZ6s z$I?T0VwYxZ%6shkB{#q$=5}R}y{RB!^=^CW?ayHkGjEK0ZtZ4W-($d5f0JZOaPAer z=x{KWz)LVTM&u6PL?{~Xt+=1l#afG1UjV}&N>Wx4yQ!yCKTMLyIWz5h_S2o{&om;2p*~7(CQ7q}zsA@BdGT+Sk4m^JWB<@>w{hQ!*r}b|2x}R+8 z=r(X)(Cy7%xuW7F;Mh~i0V zNDM)MzGYd^Hp@TE5_}yCn^CJ9wKoz=Mrzg{|1uXXyKk4CD(|hvnMFYmPoBmC9%IW0 zzW&0I6`&r^UW~xwVX+F}PLLU%U*a09yoz(Ft*!4>kHA*dDT!`+8OK5_Gfk_M(e8ze zX>j6*PXytnwcrc(&+8}@1>Q?lQQ8TK&bGzLoE=Jx36y;w(l+}(#tIR+TgtnQyNZLB8C9pi`9-66hEk;>Z2wPu_v4wn$$MK zRWI=CAyFue_~4{qTPky;5Gi{-inc^R)M>=>pIt{#81^$IanuHq@^N)nUytib4Sk_n zXUSD>l%DUdn-uwJ#;Rr%v&}VV2PJ@{o0I$Dreo9Ole83&ZHZ}eCH}=KAzhFm>@YMq z`10W=jPmWfS3E{bIjeMk*4TdS@jv2wwhSsOk(N;94V&~ZE1#a zSYB+&dWrTM(n?q&L8;Jciita_9PFBw$qtpCTK$B@Dj!p78Ms}sJDjCeSwa*qGRYPh zwLzjS7Sh8Cs;RD>j$jDfm5b+e8&hc{SynRNl2~7vm}S}qW%-8T zX3f61@Mfb&A^k9o`^(sDhT+TH*OsM6Uzp;h=M;1DW0_-MUoyY7JK7|Z9x>&6+&iU@ zy;34Mg*@}-=J>ApvF5hg@-mvK_Q}^-W(*F#_oz_%Z<%a|-9-f+XZ}G%EMw@M9Ioad zi2Bfos?E)YJTGUBk+CEeN0Es*gDaY08V;2}4Z|v!lokZ^2+;n@-YleJNTdA$?I>dT z?&0|50H5Nzw=S*)`c!RR+07Q1q|4`uaxbRO+C*M)m-}~;?~}xvD6%q=#>eTsP(K4F z-9|O(wWX3j0^(#7=*!6q78N-}_GAR5zUhyla)mf z%Ck|r*NM`Mj-OPBk`pFzCsem`HFEYt;@LPcy>UEvMf~8MpmKpk__XQL&x+t_B!fWh zcUWwJq)FOuK}4^Glz%vJC=267YP?9-6K$n0o{ zKJlT)r8}X>#Q(U?smH5dI4ZNA#3oCg_aWm*tj4*}NGv-3ZScNr>C^lVx*rmZ`HH9> z0o#H_KO72qszAbfX|K32s!q%gMSLBH$`A%NMIQsT-xgHbKY~saaDj#jQqfQT0~Cd%Tu8wORfl(q79(c0tS zCmu#;RHiFDmGxZx)z;%oh4Q;neUp#YU|-mI=u3{ZT*24F`UZ3cd9=@vV#GUbF7J0O z1xq`NvYeA&W0K5tW!6#oVYMk}?!tVDQJP|b_7eRb1o?e-l&QgTX^2+@Ow6TBIy8&V zYEBcxD~GFYvX3b!{ureyl*%VSsnE#Zac+sLuOW&X&X~$&9m6XQO_Dv(_%V z(9ll6$0!lL3Rla|cZn%?voh~b>Rz4NGQLSuW1jM5^qeVE8HcjVmBn2^M4BTRe*$nz z(A7$9&5=*|hVTo&fEc;dm|sOHl4qh6*;s_*1;TYCK=<(H|zHHO&o9+B2a@}3Hjg-|3YMVZoj zr>RSo>^_Khzj?k3q@!(#Q(}r}#ry%%Tv$_igQBKu&sg9Wx>J7_uPp*DIt|)?-JWI$G*=57sfqoNmynenioblt-0H7 zEUm*#?0>{FS3vz5dm#HWwdv;yA`XJFy#*zWQC-iFhkA6?%Nn+e93N%G#05?|;AM8d~x*+2mx#;uNM<`ee?OLFF$xFXd3a&vo6pijwyxqn2R8?foyYl+?dv{0{ zb2mY=pW3d4kSA+fRF-f6#;fYsEaM#d)Tn*b)61IZrH z+R=TrPlly;(3AM-yWT4ha+Vh=Y=&!#7j{@)6}8^eRk@n^%lGu^CaU1$5^2)&>BChumiT?mUU~jIDo_&k_x2Hh!4o7LS;TS4Nde0_idTc%#Rv zvmp8kr6QG~cL6$>MiSQV;+o$91rKHD47}Wjn_ZGkb7M@#ICyL?tE*Df8wQ)d=^fQ4-)jMivHuI0W9>ewt$xdtBoMef zA{wJi;bncFu!xhQb8lpgO$RZ35ZE|T_+xUUnI%UPJoHD$xd>MNRr%y$jYwXz^y}I= z8Q&1ubo_Q+Rc7mCFn!A9xD)fd*1x-^e_j(gfUDS0Pry>Vz8Tn8rVPT2IUvuG!{b`m z`xFBr_6EJ#r4N;(U}HX1CnA$Cc~CBW$x`k#-b^O4hh@qSd2W+L)-;gir58i^`mBCg z`Ro?Nrzyiy(O8T9cYd||1$Bn?otX_zDhai(E_J>p?w2e3pJz-r3C4>m&=p&nalZCY!zvk`N?T4)E=@EAwFDhAssru8)XTcXS@MX6_Tz1JzsJUn-RAd`QF- z8l)|~mQ`ZTfl^B$Nca~>NJ*bCd(bJSjH+JHuz!%N^!_VQLN-l;X`SFG#bWc~Z`r^n z2avA0B(R)}66v3jXj$*(D{XnR0euG2C^tKyy*b}sv6&@v ziI$M$yxIj@M!{l^CBA!c*llv*fENI@T^UY=1Els8fTXi6?!;?gX|t{G)N z!;`z877d7*k&nQ6rY}dGAxB)n9)^;o8qr>E^5$9!%@`KN^9#O@n;8^L>=hLlBPVkF zLG#R-K!Kp)@bV90{7=l#=BFQm(fW!B>B`@9o@M`V=)?&MR_3D{PMI8`fnGDViAwY9 z&?tK0Z@ZEMzCTRs%;v@3u*g#{a$UyBISl@oyIf2Ocj7(p%*et<%7D1M)b*(%7eULH zp}>?FdDtwT936%Bfq{0%!I@utd;&3ig?Ri7!_B!Y#(lzNJY1_KT5_2&F3qm{^p${& z+OXoD$Ly#0OTQmUaqKKf4T9;%>MCLyxV+2+^4D%ZN8|RGTT@}v@s0t6QtT`-5$z=L z8LFuWY0G%UnIqCv#ccdd+}!4<)AH`s3eG}0Ucyy#s=>r8Yj|n)y*7t_slY_S zT)30tEKdlTpLP?ac^l<3GoYAY6o+hk#T`XGNIf%PJbl(>`4fR+iS7d)+t&a+nW-i+ zW$R^4p*d|HW^tt?lIj_;p{+qt*pBA4O(mM_++rm)NSRxYRa{e-QtIy{Q&!1d^OE5Y zQX|uS1?MF-_YTgPMuQibCVtkAcmDMlJvW!#EiKIZO~%MEW|DoTfJfR& z>Z{vF;N4Y!y`lLVDyKIR(*jZI9ugG24LV~TRvE1d$(-bTd-WX9hjuScIWK~-*@yY2 z8OD_YmJY`_NJ?7Wg#@$8P+L;#PeO9?r{LLsjFz>psAI_?Cq2kU8cFB}=U;8LVZX9j z=OUO$CwP|iFfLKZ!h%+w+3c)tNSM%1t$jv*9=MeiG=4F5c2-&H3;f2$nQ-G^EEpo? z7i@6j%nu|N8_JEK^4FKtj{W4YNi_N~ll;~B!p({3Mg{?X+JF%+?1V?a`In-8BPaH2 zx4x`};F!;1_IBji&mv12o-$*sXe32HUV8_*nh<&#aAt2k-E$Q*hV8mhPof#Q10E9_ zp4SixRnS+EvDb4+I?MJW2R;~?v5E#^@CV)C)Yu(@7X~U*GNuiViWRVev~Z<#-;@9f zRXNFP0mdasa^WFIL+S|Dr|czj=2f~fZP{~-3s#h#ep8ENKH20V3R#O<4|sZEtE;{f zNtf#CNjx@JV(cMg)RwxP;m1qf3oeO)8fXV7<|S2#Zx(s9gCT{yO`f$4vk+(^+j9>I z`^e8Rd>z0mN5SVj3)O@Pf#!=o4y?5;7j*?It`SHwuOfzmRZ95cfJ9eTM4uK4FI>ql z2S?}K$*!y@!uRmmG1rLAIr7a6~!HZ6+!X0o#!egm5vWwOcXpG}C7^p~yZ>K6lw1xLh&+_}?G(Qc|b z<+U#RS=$5w;$t)Te^CwZB9m;|{;GE~Ro$h{H*d#@XLNBWk2L|de{>76hU*Kk)sCm< zU=!6_Vb#J3njhKRXd>kkHlY%-D?mhy+{0rAg##!eC3&RGJg1nM@*$bb?nOMcVPf)OP_vS&4)C9LfeDNZjs%) z8DsYl?0><`C(KrJPGIp_hdtG^#C`c<|8a+&ivquTnezXTkWSC}VI`h3Wt;P1zUb|G zn!(QuCiz`H5&G@KxUWer`_ys52MQ5#2FgQtXaHX6Zhnm!-VuNUZk@~u2mQ1n!}B4# z*+t%1k-gKQut}!a@6nfCYv(8_nj$H_HElf3n=&csQ2bF$N>gg-hu%gd)_sV4zSiGu zQk8fwG4-P)g(mm8jiJoge~P))W8VZ9zE-E^u?T^us(bPpdh~BrnXNt<6<*_?s}(BW zp8Bja>ThN@>4!=Z8GS@qa>o;EFDgXBafmMwr zsD@)8wFrVzIHVUrVP!)>uL@#vBI7{zKEWYI46!}kD_qG-6hM;Ee`vqVZCs!mD4S`F z{#`tlP9cC>{k2Jdlq7-Jyjklvb#jDEV16faUIJ2TZrA&o{+U%_TGx<|M#{{jEMHQl zgK}Z8K^P10Kcq z8graI@@`uK{tjtFc$#p$Ni?1Z0&g7N)5X;LpEcQXZXN3&vb(qU7n*D%mwY$m)%Hp| z+fe)2v&JR5nKt^o;GqFGC1JMf!q0R?n_nLV`^wXvY2v&@l3<&t`dnTl6Z!i4$EOcd zWOrqeXTA!x%6~@R*WLQ}bVQ_22mHwxdKS!@Ih@E5DzwL|bVjDCNyY($J?$TP9_r4O z0@VRPTy~*eOxUu|vFn+zdzr@OWc5Kh5(K-T;RiL$7#lLk#oalG^(=bIuo)##t-o94BqZnxO%Vu$>Onh;g488ZqhICNa zF5}Lo(la2jHq(LROR&_=cR5DzcL3|0>#`>1PEYm?0CFz5TMbFfMy?9}hs#sefugqUv*IWB z(&L+{FVA0mMNAZ)KEKZJGk6#exp00t_eAnyNz(O;OsZkBBi6h5U$#l=s}f7Mks+J! zr^|!k1gqW*15wrs8CCOd8y+mlnc!ixICx7H8W~(#W=~J&i5N*jR14NdVh8NX;@tQB zj=>2jwDJzHTwtVHI_V{Wd2USwyGE(abVd*^d6iaP+^LvD(we%KV5FG~4Iix8ax9tQ z&ls)~do%&JVV;Y#$zyu(GKyQYk~fRnS~XruRpLby4henW35pZ89+@k4f2b&#!KI$| zoul4PZ58<*0mf(4>~7v0i6ehB>2TCmO&n|t?D zMBl$u3HkRPa&aQ?YE#;O*zT13azMYL$>Mzxr%&&QQgp9ko`gb-mtuX8s(0y_UA?!+ zG{ch;k~An=rXLxU)JkZ|cci^sEmSx@<#Z#FGtZ$2Qsc;TD`m4Rh_lIe@BRI2J;T7r z`AepWL(P{gi-6NF*-^jbal^_;4Gy*PQ6iY>ywPqBg7ku%xW)7|zH*d7=ym6grz)c& zvzDU=SyIgCl>t{sYYi8L?zZ!BqTra!y@rsVv&~LW;MvqmPd075V$HHqzeOicW~>$Y zpg~=H3YnjrABc~g#0UxkDY(eg@Lw)6vCk{T*`-q&Ib}Pmd$g8lF9zi}auf#K&g64& zMD4Q$>e);&nCN(qP`KpmeTA`_kWO&f>XE5ok*O}Cp>%d$MvN`Gw|XtbQn>c)AB4e2 z?;dW>zr6=w^IZ)-#3<*%b3(t*M60)+(sRD^`lwdm!-0kOvTH@nUB1u0wZ=`r8N?S& zA)3Ti5_3jj=_km|Ll?i}ew(OAI)MqA(qFnXWPHcewQMewZo^_xZJQa4Vz1I>QDbY< z6xCpm?#AP7_0!_ph0J8fRo?tvFijEbMSDLWXgq@2Ua?Fv`|2`^sefj$s z9ebHGgiUNZ{O|8wRizodcRvuDz7oR~4KP%IgE$n#-KvLiYMDUq8mu5ZgGjtabfvmjl(%Cp z)~l=CvJCjVLN#5k{Fz^Vi4%)&sYc0TbI>qV?^Sdxvt@2l6x;U}2UhWeD9iDP?A3J# z+urN-;9$y3g;6JaRtfPK5fR)a&CZ!a~dCSIc!Ua;45&Im&FkkJH{QTS9NHXcrUGm`Aq>fio97 z6;>{9)3#h@ji$5u5?qZhv=uLVt6WpKM~!DqtWvzNMpKkKnk!C(5YAu0y^5MPOe;aM zsq)~~dQDdr`4BLkMCdFbqKU+I-w=NJ%$4JZ8>0S&f1$n7WJ3K@Yo4LsnwVZ{Ck;b8 z;X%Gus|JRc_m)kD-!(3JKVCSwN}6pvHvXpp*-TVxTe7{1^lx)=mr|VJlie4bDemc* zT_$XyxFKGF1`w6R%=)}XC%#|Y7~eiTCPDiUTXS$2rdk6nEv3k`amtRs2|}j7``%e^ z;7mJ-iso~ps?0yE;TL}vogbWrC#ZF)(SnL@%wQ(e=C`Mv6@q?tkmxD+TdpPStYOZw znr?!lAm0)Eo(0KL@2J%jygIXUW0`_?01q$cxZ1@>QCd|+Dl zNDkZ0V9oC*Mr|89Pn~`edN?W2t-<&3^7n_SsnFa;+{6ZzKRas*CS8H{pv>8ZLTmwg6{WeV!O7L96S_B`}?Vx?N_GUbPEK*SHn1^v$D_ z*N!WaX5K4COoyi0Xx_*5xrH5BNFwhi2s=km?LH-)anBT`0_+ogjLPuPfLC%`!7;({ zBGU_P4!85PT8Y-GLnY?}%>{~R(%662CJ0(0H20QOtg<960SXGvUnMwIYg+$col|a{ zgE-<4v&J)oDbOAQQ}nW>x_HL;dG}ge^xJ4xxGf{oa?$&mL|uK`(Gf%lG!{nn>yr52 zLkE=}dvVkd9!{w{^lFhZB~5N=F8Ri@4z5q>db6%80On3iGB={mowR^6 zsk7_&q+hfto&((c=y5w^e|b^$-(P}X+I<_V^EU$Pa^3-eNVY*)( z3EQ@W?im6gl{L5q=UB8!M3f$+)`0S~SBiIxlZ@7in;!3$5``0Gyu z6Mmc%$r4<6m|arEH(iWSsp$Wj_6El2zVPm*tN4cWK?#ost+`~(>t8!^KVtFvS6xeZ z_{;mSZQIW0`>93V*8hsygkpU%-qX9Eyr!B1tl5clc%L5GG5SMOIEkICf~y>Lzj^t0 zEBRQCLlZ_I0VIAx6@kbJeH!dHWA<Tq$zBUo|G$&HZ#7IvF1_6Xe3WLDAkFd2GnAoa68;*42$2A@ zGpop|&eu9??v08z>H(GmUB0Gk(Zs94Dlu^gC#dg)otvryxZBU8+A>X5pKs0lLJpaB3IjfY?c>~+CF02q@Bl=apTg19FM1>kD2W7BXbU1_@S7OvQD*|bsTG%^;ptB%o7z*?Z z^-nJf8xG*}02{WLM{oEiv1)#W2>$Z!zKx^rRx^P^OQ=0+ zDqX^=!wpx}8`tcY4I$KBDZ(`IbCVH8khhK!P(3e@7z!-D`b6dmtg-l}hs&2g$C9_( z;vmT*@QZY6esTc9iHn(vh%6?Lc0EpHV78|Ao=roxU7G$Bx8K6>Qp?U1*tD4zd`I@9U zT&Frs$JtIz;`QaHl;~_%s#~N4cbKbM*6_1}QCu4Q-_$iYa&oY6g+KrVg+i2o2-E<) zUI0UM%Jx_iqa-5K*`a6|O9eN!sNJmAAV;g)C4xKuY${y&lfgE~eaSJ%&?vXbDJ(Kq zor6n_1weKNwxjU^kzmR32%)iRL6Qitnm;QGLc=1ru(wM;{y392z#XSLipnfs*EvTk z(9X~)eHLQBVPtRZl*T|sJQh^Sl~;;n1`u!q9%-HArT}7Y02Uko8U(HUrsjbI-pCd5 zcxg~m>+?v&=T%r3TjgbN#bd;S)C>SQD9#wFypnG?DeB5Q>v^*I*@A@B)C{9I9TaHTP3txDRc!Vi9)jiAa8q;NY2pxoUs;CcGMg8 zTU?169C4LBmgq_|G1XFCH5VS*nlz~_KAr@D-~{k=mOyP;Ktj#O(*jwkno_CSa z9#|$%8Au(C_4qSQQj4vF#>z`*46dmPuItXL>%EW1Kdr@Xt_7dfLWBTpJT){cs&@3OW_h}7KB#O4uVLrDVVAa%dlcnm+HfdUKh0gox>!3I zUslD{ctzXvT?*4=nU*EPQ{OR-0s`v63H2fgWzW=`K+?@v=FO?PXb=+sNCE%}ffjMI zAM$Gd-NSQTnyErsVCK!OE>*;S1tf{hche1nc`a<_tsLj|&OxlKB;jq-sOgQ?;j?B6 zb2O)Un?y)kYApzeDEOuh0xULy)axK501@6g%EUI+{C0Kx1Wz@PM@_>to*a1)icP3Z zxv$+Mzr(CAfK4YsQoig>3*fT1Y-6LDC!~}2PosHXr`u+yFGnXuU!%AgOk5qHa^Cq^ zQ4@@>u#!;lC^G>zn{cJOy`FW)Y&L}CcPI39=aDzRS4S62w;+dFh)27#LV9w}1z*>d zwPI)s3-f!>biJk0z2)Y;l_9;=`MtG$z4e>DjemNZ>H1ow``RBb7}D3B-`CsM*T32K z?oZz!UH`Cj|EPKYcu46bxELKz_PHLA}r)f2cp}74i(mAA3D!4Tfml*bTjij+ux-wNOS22-xKj zuSw*Jcx)RR=BuYco%wT^xtI*LVoeWRkwAF1h97(FQ(NAxO~hXbjXu!$5wSJwf*9ceK&seaRpp(LTaz^X z@Hf_DARbW19d$=F>3gP(EY@bM9FvE$Rz z;gL}g5|R)S;zMY_V1mb+ep~$PL2chhU505lWC!NK;ZPQPXHq zP}<|;R%3xb5#V+|VfEwUGZqxn5R=lEk~4y<=qPLHs_W=$85ruDm>R#dFtxTbvvJoj z4;3^`LrXYSNV(R)-J6s=+BEz-48z(jLaJHqj|D)diL9k&*A6 zTl~7P%&VlzwWiXkyX4jTYK!3-_xDYR*5=6Oj_8i=w>=$cZH@W0^);n+EyWe}ImMM3 zd1Wct=$P~}1gh$Fdb?Lzzen1zOWL$!`bYb;b%%@{x7=M{^ma(uT13S{T-|DN^J+@l zUV7(#e*Xb__^fLDw07d8Zgj70aH;F@?7SQ6>>Fz98ffY4=^bc#KVCUHhn}1-o?ApO zEfs%SDOp{uTHR^b+-p7j(tLc>@a4Q_=e&IL0=;!!w0V@jc965OpY!o^>g-zb^kVY- zRLbfE>hna(-dO7H5NfwSWw+<;W?%evf7Es#a_c=}b0~ak%4cW6{&>mpWX$tq!0)6t z__z;o^gi-nDEe?P_V``=S%2c$P}12T>TD?Ecp&4rE9;~y?`)vxY`pkuf6h zY$o+&=Iznq+r#DLFQ3v5mNE|(vv(JAKhKuze<(g$LLY6EoNkt%eyTZHsz3VJdb-+i zzSVQ|`TgG3hNRKn~F zW<4AdpZJ-_ady#3;Vua#WHXBzqW_IJUM$ln)*k5nb-vc-`gwk!@Alj72qy8#i+BCM zf1Es`4;S7I{P~KwCwZ_X*_V&K;lzAUxL%;4liacz!RPb?=&7=1mLsvbv0@{M1jg9* zh{SXQm&mNF_TxEq_IzLHC{WrP=&ABoywHE4MY$5g=MhI~oIg65X($v^p_XK2ZIi|B z(y{`fHXAfFd8ugBl5HLK0kW2c#68MRjpc8NBIlH$TF0Vr(pk5!@IP92DydL5bFdBP z*l?*Es65KkT|RPf@BTVY=k-_=5a~U^?Fc5C8@k#lMnHK^&{0$_Cna$lwI`)3W0I&R zKY`z40&+-^^r2BqYE*8!NId^miV{sR!>4;hnCD!iG3*6iYt}k< zB!&ihf4RmCWVvfk^b-X>;v6K=-55}EihQbOO-Zg_`D8BtDbp@hW#dbBnugCgwY9bl zkeyPmnY0!{UY6!UNA`&b68K$l2-jwrk|)$+WAGavo|o*#hb zqtQu@!nNQ!9Tt`^DgO<8w`FN&#FOT086WO8G?L=Y7j1cU8kg1X0pZT>P;>~RPDgOp z@Tc#(w2Z-gy1j=o$*rs+>;)!CJ^ODXlsTO3cgzJ{e`9zZFgq@#@p*ZmD$?fsu2Tmu zvcaA!c>)6Ir0WBeioox~3}cUHuaT3t)!{eKDOxMp^0(xtdE4BEAoMv`-wA}@Z@5H@ zt=5xsayPa5M5OHOI!be@1^~PkucSQ8s~q{?NgpVq53+-p{H_wVD3#=xbF=CjSm6o=2ZeV;1bV}4}G;|rQ- zk088yK(to~98ENcI<64zmSoGAXr=gbq*$sO?#Dr*rmCn%Mo^v%d2O>@Yu6dMw$6s5 z2>`PSA!R6$PR0+5+Y7<5rKL1)c??N+5)&py4!pUHF^c2~`bD?(?RPk;DsFroiD#Gvp9I;bluVMe$F*-0I_)xydAmvLSBlyH;!B=^vIq*B;v!4)4}- z{*xHG#?>T2GyI*L59s|-c*V!WbWDx|XN%Ii!RV?o-(JNiQmH^vxVKeV){*2oK2YKa zR1^XQCGWQ~6r%$WBM?y(I~Or?GqKz$A9=~wbxZ_Y?2TVKmobK`8fyWm44>+bG8#4n zNBvF|jHS`E_DGBu&vb?zHOKNg=(_V)BMG-Sw7PZmiM#?g#s53d606WHs45v@d~8~& z>KqsUd7e$HBl?s}3@b2o@Pdo818PH`v$IvnVbzN4&k=0@|LfAAV=TIm$9_i&aDg8 z`P_u`TZ_;@_FE0>4fCgcxlpMSBrz=jh_eI0_TEo<_4)1aXY_6ac06Un$^Xe_Ax0gI zE5z>4Rn3n>7Uov`VY7>uI7T{PSot6;?+gMV+>9P-Je0$a9=22fL{J`DalEZqw5Ps+IbuIglcBkBt|0Uidh8V|yG4n` zY}HKHi%+{+P?_XB$b&J`Cl_kW%6|6RuBqTy^H^%84K`|W9!kox8YR=*IP4V@aIGFm z?RN;LT^nH(@j^lxm?45FB)jc*Fh?j2)*l9DO_6wJ6+4h43zajzFFVU;Ym?X#hfl^L zLuW>9X5<{QEgY!WzOeF7=$>#bUV@*#+d!RbEEG2 zp4~Ui=X5(l08%~+ELJ8t+^0fm&rwJ`gT)bu#8r$?&buA@1v!GtMQBgcu3UDKnlIbm~OgGTw{w+8BQh7wype_flE2WbZhI`ck%q#~8aiM_J3ils);qv8uH2 zZY2go*tjK8^Jns*;;!Wp*`vx}Y4G0@ici#9^$X1B-=rex(^3iSHFy1}ainR+0rx@~ zKtdPC0LN7=?7Lvf*fIwIdl6KNF0v(umjP1MP z=qvt$*Z{;12R+ururh&iBtcKmk1<8c5z zRCqH@0wmP|(&_-ob%1Y=fOG5+bQO7AGfv_lPU2%7JBjuTJBUdLP+E%cKaj2ZU{FJ< zZLb4;VTGi7n%HiVc;=7C2=gLRe1*Gb1i9t%#KulPhVrO_1iM9qRjpqQ#uu4*N)ASf zGU0dtqL|P?@SuQVw>KR&vkVE=Gu@C(l4yNZ+(VP(44vo#Axc$Iy}EH1%e&|~P-qca z_rWU0(aF_~D@?A-)ypZ&Vln04nyW~bU;D4HXPs=q;`-VdnpPyT2cke4G{|xp>+*G6 zT%18D32+)k!1Dt*>j1=0GuWnpv~wbo263!O684s9Ty?x@uYj&7Ov06@rArjYwgHrK zl0MufQD!||c1opc5WlB8u^$%k{wYcSE>R^SF=P?Sr3y-BBlEHfNNSE(6QW<}_7>g6 z7VLQ>Izdan2P;*-r9TGCH)EMC;^>>;9zDhNP)jzb#x*UmW`_EfK%z%q`_6%EOmmX& z(bA5AF@JT4f8XK!F$w#-260c#SyS;F7!4b7Fb{kRGXX#i#q7+Mm7=(`PJQG2u5!Oo zV}}aGGY$eXhMefEKtX>MJ@Ixr(E8sAOFzw@$bs-xwZx_p&~oWC)L`nn^#7@5 z&#DLUC%H2cB)taWNK~GYR53v#g#aNsAooS=5HF?_OgS(Nfs^Eg6XTUBdX<#r2fhH1 zU6g{}3}VwD1Skhz*{zd3hwB>bLNb`5zrb+sxp6&lvpJ}IpV?)zA0@vG44q(=Df~ii z=ahn6C;pAlNV&rCTuYIc^jnrkMF4ZV>``i6DDy%695sLP9=q{h;l;RlrwZ{CCZH5M z&=|YBgAjJYRbdPo$Ii<_Fj#BV9|%JM*>qmpwCDG&=PyM=-_sO~<(8}WmdE-OOwr)T z#~0vw<9V{AQGL^!{z zPk{nn(G<7-fZUoUr;*^I(8Z~P#hx_Dm{&NVPg$tMsIlsnBa>4d=_S#CIJII*UV+LszSbO&yz=PqYR(Abd>XIkoHz#)%;r|rsNHS<+tRT#fl%b zNPcROfc7=u>ucGx+E`)p@X|1#jbB*Borz+L;tRfajq}sNo`D0Y0No~jWZqtJ{;0Y> z7o4AP;#fr480J?%Sv>obK}(Hui~47llj0tG4N0guE%7|;RD z`+m<$3Wji_b6^VnAPVUtyl$fh${+y}Fag`!y-H=Q*2J{LI=*L6zQC!zbX>>JdYtY1 zwW+Yj@!Jc2EWiG}a16)L3viGEYXGMF^adrM0&Q?0eozXBum>1mDsey$g@6PUoC7%E z0()@A9Y6y&kjdK!1Q=ooa>)srz?S+MxdU6U{aKD{X~M-fTBdbUJ>$Y=2*V_@J86gy zpD=tEYnVo~y4goPtt-T!>cg#zbio!Ef1ykc$!vkhMKVCVpIHZWKnF@I2T%N&aPX3C z5YBBdrW*hUhS;-)KsM?_2ci%PDG5ekqz4gT#%Ro4O69!-D72+PlW`!&=WE9R9niDL zzPq3c2CWP2iwb1h$A8?=m$#0WW~K zWH|si@ctYZ+-aB~m#{_&tSqn}Ot~~|j%#_-QfLV_2Zp>?YxT&WfvL+J^}_nFhOAWy zkPxAVxv|CE%*ve1$}F-@eKmx!Ou!`>96-%8d!ogg%}NWrT&)Mp#RhU<2iROTZcqX` z3%qk62JNS_VlW0}P*iU)&k|q(ZID#GYQ68ms@1fTX%J~KAkc(e*aOWA1%1#4oyW-8 z(0!bodtd@7paL*p11(UR0!6Q>$pTnughyC}98npmm&pU513$0?VQ_LToe7i>umU@< zG#%TpjMF!5d|SbLj#`hT8`MIr+h@oRO>qyLFvCe*!;Q(Yvn#|=J-bIYV?iuaQ~;vV z{=5NN&DGeP%`(f?a8SG`Y6o^O2WpVr#x=C#4F`*s*FsC)*84?F`@OFiZgHTjgKgOK zUElnM$BKQ>?VFtPTdl}>40%8ULUjX+gxP;ZuOHOepS|EYKm#=3*<%@>ro9BTX9<{q z%B)QZefrvy8{4lu!k3HF#wVA!O^^Ms+Y`%C6Wb5ACfqZu)Vp@vVw1zmUE@EDbT&p? zSn#3eM*$mP88VQ~+1%Ab4%R|`rFyy5GEz2gFg}A~D5))d7>F;Gew%3qI!%vahC{6Do8G7|xddt{tc# z?BSF<+q6A}BaSmav10uo4~i}i^MK+%L%KlI;+znLsSAfhr>Qg^vNm30%^j+~Bt>IT zsy+_n*L~f0kO$UX>O!96o|)vJ8Ex-ZqE*g5(G;3Ky$-dgVEyx!|(l?r|==8K)s zc|5JifaV$z0|2$=+es3E_2vKq;dDOjbB+@f#t4_NYJ4uae-7v$KInwbYKFc%`CtzQ z{0{7p4(R|7@_^#IJwr_~sh2KZ`mbzs(Za0ho_ z*4M1+rQX#j3f8XvnX(@1+)M}SqvWtY2QYhe?6*E&wdKAZ@*>YiyDRoNt43EuC4)Ly@%@e=Q5l`{MJL_1-@#>=n$uaVXpZE*33(#N;$AApTAnYvP zzPf+{CKK~h-0TGA0S1NhtFqubPwg)8Nul%wrYwBqI0+!^=N{hLvW@h!?S&}p3Cr^d zqA&>9$p>zm3iAM%kj@k*qEZ{eEH7^F$UXK_edGP^n9V#>%Kju|;}elIuzCfL@Ca`Q zd7$tGfA`+a-Pvv3TwRDv{`Z`Dkrm1Dh7a>!A+2M{DwzF69%NmHgulqgM-Bq>s)jFUWmy!a8MMUo^d zowRf*lO|4^I(-6FXwaTFZc4nlBWhkhfB$^?>&H)@y?dTKb!ypC)1^v}9C_)oWs4Rq zS*%{gn$;>*u3foqt%?=P6|!Wph^ceof&~f~OwgdQ#tt63b@9}xV<#_OzI^H8r8B1v z9Xfpr4<;;U&f>*#2tOu_IB;V*iswA8oY^vE&2!|${)yuv#sJc#O`k@cTJ>tytzEx{ z9b5Kn+O=)p#+_UDZr;6p{{|jh_;A>~jv+&iT-S2u%XguI4n5T_>br8euyNytjTa|6 zYyb~l0|pElJfwhOLp_chIdr%$7=J)~f$o0j3g0hl8_2Cu%wbs zI_VOXGJy~iL=qVzjx|y+VGcs*+36>t^0CL0O)_z?LGAoQa_*jdA3rc|N2|MPhD~~+%!pn|3p1i}!Bj@6a%D$=uY%;+vgX~Jg z7-I}FIuy$cOwG=eLp0*nWV1~---I(xIp?JQvraqjRE-yCj!Uk&T$+0>I#jCLWfknU ztDyxGz6)=I@yhc+g%{MjfxY(H!+|}5F1?f>(k|Trh$ZynufK^Zx@f=w5yS{V1z%+_ zrAjWbq!BR2h=Pe0R4^kEQtHuXA7S;u$CH-+gCto>PNL+IN4!u`Djc)ILMs|uq-w=! zXB>-1v#6j0NVY8afQA~JKr+cZ@R)K+D4#qMu{zkzW3RsAmA6UBs$`NdFc&)vv&OhQ z)66;4#4}-q7iPF&haZMG;)HjB#+W{t%jM7JbU`H*>8b-{21;j8l!Hb$$bh^JB26zl zPG5%aQ%(!wbbud5-LF)M{=-OBR)7BX=%QCmV(_F!z7T_oC17v?iZBcT#h!ff!3Upv zI3cm3WS!;O*{8bTVnu1enl?skvt3av9lQ1R3M{CYV-K|`u)qVjP*`_eyVz~=$akZx zH;={W(yQGmmjq18cq8kZFMlVCOfP@I^f!*qz(iPL%{S+~bI(5qJ@nXA*^|#>FwU4c zkEKhc^+5qqPd$=NFuBo`F<6-ekzIz_QkZ}LJqc1dLCVzsR27iG0yElZBcKaZ7LpXf zprVN+mWV=?q@cs=P#Q*vBkB0~oZK88z}xm;t? z@B-15(1a&MVG32a!q%k17ri*far~4ETd`cp#!_v&42|S;D82fM;;ECKzEe# z-KCNUJWRn%2T2G6COR=ir0lE`9#Pe*K9a=&HE$!#^I{~DHAeG+VG2-SLKCJC21Q`P zCH$F)CA3Dq^P#T`=@T1^+_#k%!7q0fCDVxkqAeZ z1lmDKi^+o?^su)_3b0-8GF;=b^q3|^X_On((!Umy1{ko=m9KbVl^(`SM;)#^9Ka3Xd`|kbw@Ez?n#t zW>jDHL@_|56GzErMY5PYcmlJP0GlEM_mu!u!i0u%mWN+skuPdnBV zZ0ie~v|MEVt*m(EpMh-K6%1L0`(a@WdQjv9Hqg*DXq12vBw!^asYy+06tWOymj$!* zQFt-QOL*z*C=D|u#-MZ#WpF`ERl8c&w$`=6nJGN_2SN(p0N1oy7m9})p*o7}XnSI0P3?K;mQC~5>F79j@mme&#~ zNw4_kI#0Xa5uf+eYmN9QKdu0hTJ!T(LHVm+{f;3I|7|D?9;&w|QMN7$q+|jq%isZn z@?I6bm*3vSH@{%eNfO?09g-koMmO5gk3L~5%s~!v%&@j9_UTV~*~?V8cstxd0i$LN zDH}sI$I87_k8|*Y9|zeb#+t|_07TvECeN$cEvu8CeB~=MLJ_}Kgn6&bAd+m2jO?}R zd-J%@GNaARV#$$U)m%t6w>d3A(trwR@Pa?&0T6)rL%08CmjV7Efp@5EW%=yj(Edgk z!BslxfOI#Gl_O}133joxY-RQb+3Esh)&>NC>-wxhjQzh z#Y+_WJ$AB}-R!pcH!cXic3j-T7Pd&S#+Va`^lWE#q6W|H%%g&q*&vCT0z8gkrfN*7 zT2x_hH8w|nAXX6wj2fvmILYZOnqR`@moG%-3t~OGG2x_ zd-SD0eY3k_6**n|+HY|SwWqE*c!)s{OLnr`t&H!n!?x0_@7bt z)?0H#{&{`n%YyYI0Qo|1ph-rG;}#yL6rgwJ-W)ddt$)Sd#^IHksGlu)+0Izgd4eG3k)C< zZu2%k$iNL81VIRd+6%X)+dV(ngFfhk1=9mY{DV7-w<*yBJQJWzjJFjOGz6oh1FFGM zB*jvkr5nV-93(hh@IfD3jv&kq8}K0@GQ!&_A{OX7jKcv+A*Lv751HWdFZco}Qv@*_Lo*D8G*rWv8#b=Fx$%KRsOYl1VnDpomi7S) zy+SiJbG`e~0t#e{3wR6KV>%7QJw!}I59~m2Ys5!{L{0vp#6K{EL1VWgv9krDEO?nZ zyQsJ0^F%x_#fX&1i3A-~#6DGA#UJ#+W4HwV z!vsv9ax_PEBr`2IJwOt=!KyZcf=9Y3mlvqLZ!^R|Fw3S>#6QrzKk$RLgv3akM12%U z2g|675)PWnVVdn`$!$iNiL!AzJNe7o+$Nbl2y7&-=9aJXUuE~FZ+rE01c z=sT8d!cY51Q)|M^%uFC~f|;yIthq^{$;s0siT-$cglGhVFmO#a`n5$+1hx`GY|O@( z*t|nP1V&(lFJww@1jjm(O85G*s@#G;$_lASHui}&u4J=A`pUYYff-PPrnAS~JIk@u z#|#vNw)BIy{6~EpgrXcsP1Gno*n_IeBsxR4O{B}KTTk}<1Hz=w`n1pCa0R!s1@24C zfm_TNLWW!DEgOh2$#fLrDoJ8GNgQy(_3OpXWKbuJ(3pGz#G^@Lxx&v=kfK=@R4E!_ zYZgcF$uOV-Dp0G}L{Xt6L-LHd37O5_Y=qxzN;(?7IV{I>?5i!nqkOU}E!fKY*)Qny zL%Ok>8E^vY)Ifa9N9_!^+!KWEbj!Eg{zpK-J@Tx?Ia887v#dP31K-HuogFD2;$mL*6UAPXv+m7z|4&gdbQhO@oTE7O}(;~ zHV6Aa1Y$RJfutuH(=)Z!YrWPqeY@@B);4uh(C)mOOwsuf998YNJIBmmeYAlN3bR1-~6wwg`0`pGZ&0xxI; zs9aUM6368TT>>RQ0wfRu zAqaxJz1zE00)l0NNu7cHjy$32P6;pXzdQD%fv4lvao`3DzywzL!wO=9V+kp+-gPj5~2m>&9SQ!n+ z#g$41?AWDz+*O5GN2r99c)803n;aRWE6{>O!T`4DfEJ*ECkO=ZR9TiiOJG&m+rw4w z1W()DK$$?+57f>?+&y9S&JTn-#}YoA-K5?H-W=B9v&+w0NZuc&g;@~dS=iQq^FBN1 zyV(gMBV4K^H2z6IZP)G14(`=V>{XBXXs#gp1beU=^Y!AiU0;^qkE`kgOkf0`l;69( z-}?=MHm=__zFUD^g8eN~0QQ346ixyzV0=2@M_88cQefX?;PV=h_eCErkl_5WV1;5N z8i0ZhZcAJR;gki|wmeIx^8+YN-PH|*n$10C)lRvD;TT@JO4KMou*)o^EF9k9R(54b z>tP`N;a7NtA>P(;7zc7N2RaZ!Sv)E`Jy2#cf%A)E?|m^UhC&C`OdQYwC8(-R*y5^@ zW@#?pv{hd*PTx(i1b@=w%X6otkmsd*1e$v*cY>}>xP;3U$5z!*F+i*fR;)&XWQFEOgv|;N zwPayl?OEGp%MU!yjaINg0O`eM?ADqEkv3i-HfdOh1zA`Jl_ug>aOv17P&-vBrZS@b zzT?GDtKwd?0j|{!)aKgt7*s_7g?f-0VUcZq7?yk}U#u#Xh*Xc=Gyrl)#>7Du3jOJE7C+Ju*@1be2rOmL^GGKx>YgzJvRxF5zLd^S%8Hm2-E@{Nzl$ymF&}WMQtZU=F_GWAee$fpoe@27JfkS6i4xW zAeL$d;|G>hr!MZ{rt06GYQNR5EO=+;=J7gmic3Ih@-2#%;6`2p>sK=hSbP3oXbf*? z8E=7}fDBlH8c2da7zSd9@AVepB-L_1$Z}o%RZ@0347}ukT)OPE@21mI0Wa`2cXJgw z@LEW4S)lVecW?+_hYA147eIlSzEh?uwVhtc)#l#oEp%eyUhTyJARvQMIB|aPhe!vC z6lZa&LEDz7?xpruZ>I6zj%vQ`+fWzvr>5#7sDi8J@%-bO{Hr6TWT&gT2dfDY-8PZ4 zhV^?0kxx+TvHn6Qhiidu3l*U9K;Q*l!163#?h;Oq*-Adj^mJMYx*S$(+ zQU&w2H|O?l2OU`$UO5M1A(jPlkA*vj@KZ>FJ&!ogP8kj802FWmt^P&y?v>)LJ?7I^ zKkyZUQGoQG@QHtj^cAo4F0P{8rk=VD=Qjp*y9I9g9d&^PSb!b%8#nbVP~cGY8fa8? zcH)Hc#Rp6O9!w`T=&q?(5s<(QG0rznK;UO+}1wZ$7aPU}w zg*%v(*in=^#aa(Q0d(EzDK7NwJ#=2wcXh2482|z%ScFjMhk)n%NDm4YZ}FnYbVi^a zH5P8+=G*IG0*ANX{QcWGKG?cd0wyqnI7osUUxF&YYN&*S{$=UL->gDUsG6w}`A!IH zi9qU3Ad0H7hgm22mfzQfnn!`ThjTRkL08OU?{C?`SydLw`9>>@1!5$q@QF$ zWOlV=QmNM@#lHIJmwr2mbFGi;A#U(HKX-V52RtZy8-TbDxLWa;xbt9pD?W57RzK1R z)DG7U8GwN#kb*=2g}vwdfS>eX!H3o_eQ-Nvu^GBHSE~3XM>(q>-KG0x@Yn3ElXCc;P8gud12#*jT$UW zaL};f`34ObFl_LU0)~z3*>7;SF@XDb?&8OL*S;Nwk|$#f(ewB3J$(57{PEkj(_T|c zjKDBN0_49yK@h~m6k>#-2!dizp+rOtDxm~L2u%?Ng%vI&1t7?vkc2}ZedK~2c*qfk zNheXl(j}N=@)Ra5VWJ5qH|3<$PCfnP2~hr@;OL2rJTWB{R4>U?)m2$-WkCsF1(J$b zV__obWPMefs$)pn(cHD506jf*Yc{@kR@8zy&AV9oQkKoCnQ87u|H#U1#2QH&E7H zcgGTv^z%3TsqkfBH^?Zx-%KmPQy&p!C%$4D3pIuzhQLMSoCB8HGcN+_f#GR6`N zMwEm>5>^PtB4I>JVM0?dp{$1wy^u@R{k&AWTVY0tEjRtmZDDQ8ouZ|dZShhT zF~t-^rp2eAa>^hjw^`R>T#kuWASsvm*qw#SJTuKT+k7+5IqO`gZHVHgsBX2)5{oQD z#{vr)Gl)8a3LZq~+;bUZ>VXQ_nJ1p9qk>A=so;fo0}e?8e!NfsZn6%Q0 zn{cwZQ0Ueqqdv6S*KR)UE+sEMNzvQXQ$psuFIE>^;ICIO$RThls`PRW@8`6l%9Xe~ z3^BwbQ%v#j5A!0hTEh@S{){mm^A&O`ZJA;U$!?0dmme*&+?Sa#?>s*F<(q##`su3= z8Z5T>{Jw6C5FS%sSr;uz5gL?B{uVOR(Y zA4j)=AmJcicmzw(#feTBHjk_@3@kB#vXPE_BqTcni&*sReLuTRZ)PD2SVZAC*~y;=_y;u&NG$^a93TU; zlQmC?r#zs}Ys3UcSj*0FZUFqC4#dK~0 zDpsV5B@O`yK2%^U6!3r-!Kex`wt|emLt`4(s8BZ=4~}g~9>fMlu(9CL7-*Tx^8Sdu zQ)o|R8nyMIjP#LtqMXm;!p>7!*N5WinHR zjSFGn4wpDZoI)9Ts3s#47ltuVp$Sjm)*4`7hrIHNAXNBaCOCnk8=>yJA_@@-dh~;;va%{x6(NQxAi)Rj73P2L7S=+Dg1pN_p;`N5kQY)Y zasGjDpC1m9h{Y-B3Aw0+EX2VFKA_+Qyz=G}z|aUx7{wkwAuNtS*UrQ;k#tg&B0cLF z6-zWiCWWx97Af#g7R&$*phcrQ+;NT=f3_8_K%**hG1@nlR%EE)MH>~WJRnDGV}ei% z@EqzEK?(+Ad2}}* zEr@{uuS+WAD3z&LLlqegu{V8`H*NFbhgJ1Kk5Cjs5$ttu2R#^saFUG_$-FNL0aw>& zE}?K0TB|ACiU>x;HCkeb0y1jx9$9ef1P)I04;D>@2_MD6_jvVBPM4GoJF(Ut{{Aq% zn4(U6O|}q&xGV)G-~kr97>%xQg(^Dhj&`);*f;*2DsVB{;Gx1wSpxDx=Qu|#t-{){ zEsR{;A~20%OiN43GP={P?scPE9`E4tEQ*^OnaVE~>$taa&8!_X@AOhW)qn?3Fx0CR z)suAgT2rt49USC<31cV(J?OCyw7u%jfp!}`K!J!cv=`B-4nh*9z^eL^b(x?zgo2u& ztY#tP(utGdrV|H-xhBLF@{mU^_z-~#xPX|#^nt3uV2LEY3)ZN^Nv-2qx}+=}*Qq<* z>C!o3%KkdV6X*a7XdqA<-_fy|KeP%mJK@O4I&WUQbQUrfA2gd>*LO z*>}tt>4h93fWkg3Q^oz6eUwf;M4U3s11W?7R|(TVFo75#6W`pIKg>fYB*GLpf#VQP zgb<(0$=o7{0U0br6O_RlELc3i#~ZXj5+nf-bdV4J?tP4`pxWhTnB*@ z@j)El@EJ3af(8u^LA20BRK(#_NEnF0KCOWii~$oQg9Jo?GROmbD1!t@Kn1)&qA5Wb zSi&c?p%g*ghshHgLY=HFok7x5+|;2V;NkggzzWm=6AS|HAe1ZM!Y$asEo@{i6yiqO zg0q>Cz>Lv3{K79lVkAx?C0gPo){($mNhW$CMHz!JjG`Yc;4ZikDz+j|_M}g$Vmu57 zEcV7M-p1oW9y{EkdCY+RM8~E4Pjyrc=Mmg6eqNl(KoU5C$h8Wr;NU*wLp^|kSVkOK z{td?k6B!nS$dM4=%ma<2kQk_3M2urWlw(B{{)mB$!5`#;Td4scoPZv*fg2!07yd&( z^g#!-0SZXp4}{YqfPxY|k?F7@t{J3d&e{__-H$9Jr!}M&S-=E9q(o9=MarK?-a;;< zW=7fqql9D_PZpxDixKdlnPUMXABSs*@%KZKx6BDr9FT`v4q0j zkYy+!!W0Mrq5**rB*6nE0$a9a-)P(zU<*V@#C|owMNEMm{V(kN<)rafdhrOgI zBOJntPJjluD2(=wIV4Ptrsn<{jl(!}BrXVINYY*Wp#wUc!$ciJlj;K9Eorrl7HaW= zDy+hce&Uo;DKCr+wOOgd=)#tMsk^=_yrPeC!XlY!q?w{AJlp{d+|&!C*`-8BDFqcO z31ggn$Jdm~b_@Vk=9!~OT(179eQc&790GmOgD8wbAs|8+IKdbWQ$ge@B8*pAMqD8* zf)jibNGuDpJji}!6ClJwEhqyYh|Gk zu8K~(oG9Ex1*hdxux0?Ul4gvqf-cyoID|tvl*2d>qDMxnkHVii0I9VSOit=pvZWE0 zh?d)R;<$cd0-h_DTK-$ZJj^V_E8ga<-pb6p21j$!0(1)EnL-{cL`tZ*K$^K}zzPtY z(P_ce8K=kq={>>e(L+6$5ZgfPSK13E6v818YJG`9DICJFECFKzK@SzkA&4wlvM0(d z!8Zv=NHhrTlA{ygfzF8oJp98SG(j*mK_BQWs{P!1@na~!>S7@Uh&CP6)x$xyljgz` zQ;e7lF#=`z!DmhY2BZKDq<|o_0~wvejM}I!^nx$=LO6&+YGP!x%IJ@hZQ1t1+2+EI zh7sB&s~g3gF1W8b=pWlzTkgjjSjb z%YW8Q-OO(7EPK?YXl!G`lYaxQ735n7}4@>v4`PD zJ;?;8O_n7T0`^+KR&>RSp2D)FF*?{7A+myyzA-tB136%%E$Ap3QR|F8t2wYjE8y`O zt#2VJjJE26AsS*Xh(nN~1CH8)Igo=djKwbqDe#P>NWxt&utOz}G)b5A02rQ74#zua z^3lKonnIpA#6b;sl5&J{bV-c{v{@-XF4m}03xW+RD?$X_QUz%)+$;hZKnukdDkzjf zBCHn^1fd7vXMsdeePtXe6xtXxfe`$MSAR7zMa~C(L=Z4R6Qn>MIP)D$4ih9n6Tkko zstO@C=MAhX-P3t<_^FfiEd^rH$cLh+6`9yEBtt*Z4h_VB9LzI2cpW=9+t^YoI;4X- zki$l{=8aM7LBFp-AGA5xs6s2Njwy5@<^n$>>uHihkZ$xjphLH5>%#nwLW#vMyn{*C zwr%e%O2b2fCa6nk@+`RYORvKHXb01LfC&OD1^`?~aNfaT&8M)^ap1t{(bAsoUZ1HA zedww_e1awLhqNs9D2Rd~Xpj>qK{s_3$URVbih@`Y+EY)#5(I$4gQ$HJAfUB zgIzn+&pLQrJFtWMX(WQhLMzZSWY;qqt%7HJwnBOKMtbf1v4T3_=wy>aIZX77TCHo_ zpBsqc&FWrm6^CCq3#wQObHvqk_~8iW-iu3gt}$4+VQ2U&w8ELr z!a9K6IwYPe#F*Eu19S>aEG)K&w}U_%+i1&pM60ijE?zCz!b00P{vz-5IOMoFpaZZQ z;%1kfj_txPXakWSxwKDvE9Umi?RJ7@@+7@;QmcXb*%Tqu;j+95JHkH<@$>=pa12; zEr6L(79uNe6$3QZ40Hb#m5L`U#GiDQ<0(_i844gjk3KJ4I zoFat6$q%jbzRk*qf+(m$FgU|7%td&|yb%qBCV0;C-%BYB17Tx;I}aNTn87OyqWdh0 zZn(lL9NR0n!#kkqgucVlGyT&0&cZ-_)K5KYBG=Hn0y|JEIZ$@hKPQcYfB0WyYN9qk zz#A}-U_pZi5hhf)kYPiI4(*j zUstbR{qfV6&z_|)NPsMvqKK^+F;kcX0rI1V54%2q1VO@NiWo$R6fJtIB#2zQNdm=M z<>ZImAB}xHZVUuS56O;!LJ}uj+{AiQoNE?z+l0G2NpEUyqaaJRxMhyV%ZXJYo)7K z?%chb87mg7ckbGum;cIDD^{#(Zmx`Oi{&z<~hkEl~Q5}o*8Mh=_#gm>glJT zG{7JO4opx1hMbgQ$_A&3ya9(8nrJN)dgkfpt0}wcM<07WIb@0?en{epF~k^yj47N* zVlK$;`XMhRoFKz3F{fA}h{;qt1+;(SS>pxD9!t})G||*7jbxCKWlC|9N%Vpjc1RNl zB&ImzHQ4eY3rpN`(~Xou5Sc@cGRgoGkwTEuggNC#%#pmRY* zX@dTk9h+?ASdDHv3SiAnyzV5dwLo3Z8+Jxu>6`XK1h=*2mIeV|R+nDHnKjt* zh()hFS7?cFLTzs`FGlVDwo^wSb}`Rf^UXQ$-1E;PdiSJwQJR<7_wJ|x-+WK#K!Y8H z`ZvfSlf;SO0hCObuhu}BM;|F8_R61q>Y*o;MK0dqQ6-j8B8eo>+PP#kgGfRN=bz_O zhdTU7WlC7~;DZl6T+qQ!q|XPmOFUpf>5d$vA33!p!YIV)N~5+7(@@6F`mHGd_%%jY zf`FC~8zwYiwzF+Q6s=mD2Ub9XG*}Bf+_{x3W`Ur(!G|5}xLdHyqqmh5Xgm@64lVYR zi*bmQiLy@`6B!Lk~BIOln+E8ItjU2VEM2BJB5? z{N09X{Ii-R77+$9k%0^XWJDzhctEn5%~YQVMXN4A0k*B621^LUdSXERKprlPFuFXMF_j)#KqB&JKAcHd0qsQTwczI-Sp-+!5L0*awJ~z zlGhT=nUZ(JqZMY5;tX0~0uI0~b{Xiv7P}}#f)PvxN+2UC=)n(vKunEY@rOQ)XNWL7 z0SG$Kf&TL5(gTS~v}Z??=ws?=$C3e|4&@9)5{`C9JT``qcgX=Al5v95{6Ge0Xafx7 z_%llO00~qOgCRok8mZ~8lVby=V88?>FfgJKj;I7GRhhsA;wBZ*v4AW)KuabFVm&i? zn=E26llc6ygIy(-2q||=Wsa2=JJgOkW(7^Xtur3-=$0!;=r?C#^F{56MLfotSH13) zuYLXDN?;OL!3Hax>~yD*X21e@(i4k5>c9zF5CbBu&UR730Sumi6;gnL9%(da@D7^L zFgO7SImp37cff-kq?QL0rD(}qd(q4E3gfxC-X1S1>~-bWCSY|1$sCz$Hgr$&_q zOt>XYW)ffdqKB(pWyd?fTA;Y?lB~1fAuML%LJ=mhBzi;8cK#N^lf(lSS;ebgAsk@| zPng0W*`Z+B)1D8?t5>avqLE^t0)FvmC>rp<30#nr$>NJ(IH(F462Y*B^<$tlwlP5s ziqKFTLJUnPt!YoY+SRt!xihV(kY{?xo*@AbaDahiT%ZR=Au_l=lim)T@P`^aCJA{E zM=i*wgXdCGHBEAjrFaU8O^odlme8(u*`f&WK7!8VMPRC!limtYhXNdkpnF~ZAzwkS z10JXIrC0N-%UY4OhO@w6gV%95u*T~h1s0*MH28`IYxBVs_VlMg9cl_w4yzgdm0;&p zXj8O+NH7qwPx{qZ6QiI7Dz0o)SS$k=n7LsNP!CVJ^MOdI) zZCsg-mIYR6GU->Wvn7*zE2asI5>AVnq0&9hI;AIy^`(Va{lAnO5}1z0>Fdv4_x-?p8a5Y4XmS#}zP&*M-^B zX_(KR_O-WtiC%%hkC(dC?THDE;BoU-^90r;#=r)Aj+DuMF$XZ%*ccK~ip~xc*i5&+ zun8LV9gBhL$v*AXnLX2qjtn*N^8pg#um%{&AP#bm2QQqU1O8`=bY~K+J@&4 z^0>kB?hE)x5QH#og!T*cL=QaJ10GC|a_S>JXhbE-;}sHY(zNNWZf^&9um^pxBD7=o zu&Vcb4<>95=a@oYJm7U=Z77g01(Z)OkQT!e9xi z4#=)f$XH8`<}bF?&M}bS1)iV{lA#v7A|Cu84qTv7qU|x9&HhpY1$Mzu@I*BD00wYC z$lQ$y>W3csj$&?O%>*wI@(mFVfdL!v0Yjk>4uRju{)+<7CKMRY@is8>VgcmRfg4aU z9qw!MfDhx0DT6R1^i;6pSg<{&#hAcF9onH44`dduNv$vhJP7RviLn@s(FcQ22xl(C zfKT{xq6J!qp8Vzbi~jBp3LgeCooYwvNc`Z_K)c4q&1W_&^zy0S?4%$i5EVsKz)R@u$2i zBE5?eH&NdbAtD)JfG{CBl*&{jPy*KBh%nYzi5Gn zRIoq-3pZ0x;^eD?)*7E)b($S&dlHKI8KJ8PYa^MeaAv}_yAd!K&eC8j; z&pve^4v@h!KqDTIAp%eU2OO#go}hjp6F1f@lmLhdFf>D{0Dw3&L#LoK89_8RGHpzg z0x+NiRC5l(Y8@W#6jxFPWn$u50w(m!J1ivA7KevY5N?1IgLbl3a#6n2fgR9FTWY~T zZqr6-0y>$rNuAVlq;ooH?)R=UJ8^(1W;;?v`UpW3I%|z? z42{?n9Q~mzm##fQp%B7=3E(q6vG@>+#m&Z0UrJV7V01dWd6XR9%>0R%K@uqGQnU9sDKHUpj1tD379}bQ#C`wU=c!7 zfi~eeK=MRWlyQ!-MLWoDCXXf! zlk8{BG7=1^UpVy-akAUbgIT#TMkN(1OMEVx*W}w?aZlFH3?~)+&kLnx8(2Dp~7vdCO#K*hXrcMJg(+%#?7 z^~Tn-Z9}2{PT@9g;qoq@=X#RB1@e|1{k2gOCI+6M50oJpTp$M+mEF?tQ5%V2Z(t7g zpavXNQyuCDnnWVQKvbC^WI)$*MHXZ`_hU=ebPtFS{9smDcMe>kgv2Ah?gp$>LgR2{ z9JWPTbhjjCB$s5dcrg!{Hss5ARKsFaX4S!UZRkk#t3W=Eo1(Xfjkt&#jB1xri9gO2 zQlYYRg7~->12n)~?{)^fvI)rG3emKD&G%i)()z4VAM{~;m!Jpk703|gD^ZmRn4k$z zAdXQW1(M(eVjxfTbf)G4$yO@|)F8|fcTeH+1@eFu?07yGS5v>Q2mI+WF?51Cw}LJB zf#({-xffiWL9d@@@ z*n?Ii1a@nfNW~$So3#a7!dF;yCe&f$-ev_qPWF!Yn34HfPjVScQ5kbd6|^=9_k{_K z&%_`LZ=G)~N&!uO=X~E3Ue}0Ct51xXj*QJ1jpKHWQ(z6&;AY_9o!^-a)_~StU}E`I zwU$5+m;eBUEC-k%4qkwt8eCE5KDk(q+vc6;xrAdlGnK!L0PAB`C)hR(X{n#Fgtt9%!V&bT+;^ zXhZ&1nLA1?C1l7I*df5W19B>)hJ?_Vlewv#x;Y0c2a5@Vgm@PIKww+|1+KE1PmF$D zzy-XdH3G_u-?UB1x~#`pjLA43%vkIm+O%}-1zaEnPT&o~M||*l5B9(f+<*<{*pAPT z-CQ6JRzVGt;GqO~$Ou}o`&9>CfDUwF7U}>6?v8Ge?XnpdvwxuInx~S5AP6vebW2u4 zJDYPy7ej~25D1|UMtW^Bz-5&H5L98d9b}b{SF7m89nJ&4wnL^_c!kQYmtc5Cd~`ep z?WeoLy$dD7K*6(k&G^2j-|SOx(ml7i35KL%9n> zJvNdxm*I#!xfbZiP z$G8QpS-a!oU_o9A?W;zZlvx-;fOz+=9J|GQ%y&?`PjZ>5`W0aTyb;SPshQ`T&;w}A z1(@Io%0LmMuf4zdz0pX%!??cDl8oKvaU=12vwH9}=`B=z+zzP0$H5NFt);g_r>KZu=$8>AJS+$E{0ga<7`l$*ma zPF5ad$!l7OWg*PTeB8;M<$5(HOwGG-a~9YfOXG<pugE*(Zz?rA3fqDy$w*n1u*rY20*o#AP@H0)93TT z1(=c=x(WE;r5IS*{JBAu?c}YllJvrPIQnyo&Zb&bBE2gNY(0|xVZCI<;12kp@pxUw zRdWgcAlZd|*onRJIw&2IeH)S;9qfY@Y=IoaVW!EULDT_8XYeJD(s*YAh@H}$(t`%O zeaZbMxgAa1%YE(HKEmc@STZkU;wo;KIAXl1)gB^ z;d0#KAW>T25Z^inZoubf;MCjlvX#v)i_VQpm2*K`FQ_046rmD1#k(jI=WjiOH?$6Z z{>CX_0#H*ml^_t5{T$H2^2UK2TD0<%y&bIIK7^ed!lC}^tNv(Pfh9?h2D{$jByLvH z{>o`^n7IAf&;HBXr|t1S|MSWv3e5!%hc^MjmcU%8Y#1~cgM|kU88mFzz+r=i3>h|f zK#?NNoKp1k_4D`dpTCj*`tdutZ{Nv&EKR1|r!Qu{nfPkjtBKDOCNNZ#Ao-y~h6^Sq z*tBuO=fVX(e3C6w1~n?wWz6`vX=5UV3mH0gc-_H+hgY#Y27L8uc888Nd0gNCn>NQ2 zWa4V+d69#Mj1(wjENPnJMh+c>3FkO`ctDRJOQ?*QLZzpWAVGvE5rc>nD0-j@C0fLY z(V{R^mLL&=8Z{CparjigfPumU3?^FCU?S+8ZvNfq(xn?mjvR1u<|baJ>@t$T+Zo_2Wg;=Otm3)Z^v>(u!kKWmmOSnSz<_x`H9aOt;f-AbQ+y}SYZ z`}_Y7V1NP+NML~m9*AIq3NFZCgAP6jVT2M+NMVH*UWj3a8g7VSJlJ6uONg+fCy+q5 z=n#VoC>Z5NmlR>ZR8z@FH5D_-Sk=Y}DZoIOT40^^=2wMvB?DV-$%z6| zwaD|2EPAl7b*IdE|8S zO*qnxg9|R}X!p)`^2h@pEFqGo4m#+tvkrdiwFk>9?!ltYe7DqR3x4Xs@(+jd&P#8- z_TGzczWVOVZ@>Nu2+xP$k~fQq>*9il8`F3 z6eLVCE$O5^o}7I0CYCHR#S=;Zu>%Y(YJ|!Jhxb!bb-w%&oQph2Skj5!$ zOe{hQJ@fQK>LPmUO`2(|qQ=-78C($SY#-Fhgdf~&b1bjN{whwe#r4LHx5@U(th3TZ ztIo9A#dGbo-iMx3@4ve5&U^2^{|m+&tZ}T%7TV%Y=&scr z?^J6%m9v~cX7L?ujf*|9kVWi((>z^a10m*-F_Mf=A0885$k3<0Pk7=JpWp;1KCy{Qh=w#) zazP5#U=;eZp%o?vFVF*2K&S%+s(}wJ5X=J)^MX7; zg$*zmj0{?n4E}MzLmskd!3PU9dQXE1INvI4A6#NCq%q0Sa7zh%~6d9eNd_$1pp^o}!3l^aJ zBDT5{uy?ovIp;tJD+J<-(P=9d>S^OF7D|pSrYDWK`=d>7iqo9xbf-KmP#`0^j&!JF z9Ofu$QDcDuMJ`fH9-zoWA_7G1O;QbXD8)QNG7|9#iIe2hs>n#zqRQh;afR zBH$Ln{xAU<%3#ADpppz42nGjnz{6sbcET|j0u<>qL>QFNsV2Zvp7bz;815MvpZtw7 zK;S0_CIV1_dSC?wJ?MN2*}U03Q92N1M?2V&EaFadqEuW*c)sINFv>%u?ilGgSP?B; zxFV(IYNIS#3OnUdaYXDHPb~J+)AXu$z3gqTdo9!oZY+1c!SNM2kg8N0%%BA)=zs;K*llm0g;9ajVtK-yU9#9Q z(uE@Hc*Ux-P!+n4(Y@ytVeC$It9#v5M2oxMX=5#D;ax)70?+J;#qrh=kM~M?(v+^W zrEMBtB+8efn=Xf^%aM+C5Y}ur*l&OT`&5biQ>rJR>c!{*>sZ$#9||5)k%Ba`utr$I zXRR*Cnf(*uB+A~HBiw$E<8&fUE$!wEabZ`SZ zj42kfpqd0KP=mvyU`$lIzzhUqmb8%p5uz9cDO?+6#)M&p^Oy%H5HSTUt7`t>`V7LC zlYjy-=eEqeHRw>IsE+hBFIvLA1)beNNOQcIy45Wfa&MuI?WWOOpW}{)0NsjKY?sil zQ;+RrL7sKgf;_Q+$MJjvk4x)(=REJZ&o$%<`EDAC>G-r!(E*R7l6nR#FabjVJfnYV zfCE`k!yF7T3Q=f%g`1f*t+{IJ1}7;Wx{mOKDU5csG9nC6SOOEC0Lx<=Tf`$)N>Val zv!A6vD=z4}Rx&69NHI1jYLE(Kb08-j44^PG7*hxP1Qo*Szy)J!0H zDO|e*ApD?*VW=CdL!pRNv8v#rPn*+mD=P|gpy79rj;E33itIX3I{w}&mOI{o+>K`^ zU?XLRZch{vYjk)!0PSJA2;^*A&zW2Y+{Z@2C(-id$I*e*m zLC7G#32}Oi0xb0oWF-n@NCY8DQHnwof)t?uMLoRERYY=Y=aVE&GFF^$c4&nOnqXFz z5C)pk1W!;DCSU?3K!I{6OS8lW6hRSP!UiUA0wE}ZCx8*r7I-Xn7M`{<=|J@8AlpfL!eGA=T1x z#+MG}unMf8a_SKxA;Mi8v*Gvs?>@*?jSbr_%l@|OZoPzH){2!?P7t!N0P(0~6&YYQfT9g`&KbAV;_ zYYRwWn}A9y(=u>(0u)G$#CU8OI7_qC266{tKof0|k^?aS2P+s48WRuVpbRcB7&`z2 zNbmwE;COt3gV(4GZ2&dam<)+>13R!7P;i8WUffW&%l&1tkZp035oJa;4b{=ui$0`H*b5 za;{J;7WsP}$6O&d3nS8kefW_gbzIIxh;06Jn}h^W?eKffr;_QgeKCog$*G*n*&w1x z95v}J#-SUmpbB;{13NiAFM?_iqiQyC0xHl1QBVeCK%Qk#24f%wVxS0*2?}55lv)K! z^*~Ap*lTE4R-}Xpicn8!payFYmSH)TWNAOkcochpGkai`Km!A=WP`Dwmp~|lTA~L` zAr21up#Q*4hk}hih=b+UmlYrfh>!^SIR#1Z13usbLC^$Zkd%c0a7Z9}i;0)VGVv>$b zu?HNGCMQq+oIq(MC159l%FL>A`X|HAW}d4qd8}$2q3;YOnXoeXJl3!-1x(a9z~NrY)dUEAj%T z79-p_5mJ=`(3S#C-~e z`k%vCsdJ~PEnA>AXm}DJ0TVz05#X1~V4)XEjy78X1IYn4i?boIv&N)NdKnAipa(6W z13XZK>A96lpoJ*vgiHVhQ$PlZ8KX^TtWrCpI0{4oH37|9kkP6RrfIDy*BomIk?sJ8 z-jWW-Wn4pAeh}qc=6bHMKrQM@Fzq@z+JT5~#-+|zIrNIJg=@HnyI%S_9pn(5Mamp& z`U(QObS+>49Y7He6LqC%0xHk~o!hyb+jo7Z1Wix|iBJmu$4MJ|Br?GyW5sJ_bxNPm z38>UIiZBLefU;r!IfBN>vMp;Ad%$i{F|(+80iy~Pu6m*Wu(QkfVI9x`KwERzC;<^* z0_La;QG=l`m<%a^14a`BPC%Y*2cyM0dczihrU3+8E2CSxm^WHIof)=fMgu8;3dxdk zL#iC7xf`vZt!*2fZ@XNYMs#!=A|-j7cnf^vF%IZ)rK5u#9w{CRr4GV5oFk1c|2WF7F#W;eyYpDS`cLqu(XOaPFf}=M0co#|wm6Za0H5lYnC@YAK zK&uQbAXxs_3lGwpST8U%K(GW{StSPN13l0KHrkED)=tH0tag0IK!5`N1;0boa4o%a~Le2C$Jx9~t73k;aKyxz#7fMJWBCS65f#e-#c84f40^q$T3ItNc!Yri zj)hq#V2*CkcQE_Kepxk4gEl9m1eEy$J-`D}3j{%c1a-{5>dUp?$j7-g8}bXt6V)5N z=l*+WOPbnhERO?f$I>gF)(zG`evj6N8-1=J@^A|raaX!se}*0CLPc*o%E)EPs?5?Y z?a~13Nhb4dYa~91)k>%fAfFF7N^_u*OA+bvb;@JA9}m z3M`Zea&W}gY}LGbY+||1!MhB*|n*bA6!V9wt*Ooy=qda%7R@B(V^0yt1( zFdG5GSXp?{CR_MrTC2}-+`j!>qg!joCwihcnAYbQ@4#)9liCmhy zfr*ZT4)yg7-Y|YrbUf|Rhu(!BAFVvCInr(T4zY03!8x4ZveGXN+p#U%2g1r4{@P}` zVACV43OKFPj?~j1@DP_fNvitGE+E4%&;mvM1ZBXYb)yeD3?#OQJ~%<$=_ACXfCyBb zyI*P5NzA*&$Oc=DOI3k)Z19~g5O^&>Sve~YwEzbhO9!CmTcbtSS%)j;(2HJ5tb>t-5j9ypq{y zHY{%&ujSHcPOuum;=R z-B+!E=fI`bwc+Q$4QM)NtdQd4 z;84U8ukVmXeV87!KnwPv;_I+H+GU2-g)IrJ4oH+M+z_`nzT?AA?5W)2KAsEXfZMr^ z4r_3oZXT`Uer|H-1P9C{6G@^@RX~YU|eq9U_J-^>7QlJ?q5lP zA&BM%iZf9>Nh*Ne*QNta5WELu1A5Q~&g25-7y-=`jcmXNE&%?gYiC;@}4Vg99;8O*bG|5imAE0S8G-$9}(L4+IvFKKTY7>2RF!O~?c# z5RhT(thHiLAkPiinjF+s^16cZtYCiQFgvU)TzW{-)&BAhBa%AyVISh*OrVMT{IkfFxP6L>{yF4xst=8Cp+=kDEC zSg&BsvW3emu3NTd&5|`s-P?8R*md;^&t1Bo{&{~&Rkse_0KkC-4<=mL@L|M>6)$Go z*zse?ktI*2T-owv%$YTB=G@uyXU4a{g$pOnv@X=BS*?1N!Um2TH)gaj!68Ei4I4Oc z*q{MJ1`ZxluxQbOxQiApT)cn*O4KP(Tk(P@x4FZpfjdk9Lqj4L)4J;iHZ! zbOM=LWI>llzNaM zg_mNQsU`|=(ut>Y@Z!cCCbdfED0hQYxg7dWRi$;yTN$ zThv*rEwbW@iz|2Fu}d#Hx#=qw(DKxCPd@wf^G`qn6?9NS3pI?D(MU5*9CCD7Wffdj zdB-)_WMiSW+ceWf5ko+!Cp+x6^T)gGV8yOH^UzC= zz4kCcWR5b>pbtM{^Ftv8WRvv|zyaN8!-NzNlmQ1Ea@fJ67a^3e!Ua1-0hu*sSa2g5 zV#q_5T9BbZ1|XE6;$141a1llrD+CFo8%ydzBp-6rfwm5Wq-la8bK0q=yqeT1%rMWP zQYna=V)Ck7#_3WjsmMf%%ys_WLi4P(Lbk;gH{q1?ou8$W0rYlnrpWC zW}I`58Bx+oV^m8=R|CWa8*I42h8a}wV1wH>*nrdCa069TQcGpdIVPeIBauQt$p=iYEizRlyWa~!ug#Q3+qYXAtXkmsKZool?JWiGd#$WRfwuhai@KH(nun$Y{X<#$C|Hd`mCsT7U&6asv}qI5^3l$}vaw zsMujR%66EFSSVJive;sbx#?yvjHN=S$+B=!>y@=^=}RuJ-jOrPbW~pXr*67|S!eFM z_x^kE!xw-2#t=<39R8|UL2Z?%@OYu<*k(w<1K%>x4Qfw42sOD;m0Pa4gfyWHVmJgT zK%o!p^g~v&5}QB5bE{mPEp6=i#M%r2pE#%?ZgR5^-R!2U6R<&qA~ewZUXz0t=-~u2 zxK`p8ry$9V?pmRP5e{6yhYASp2T7oU7{U;ScOk)Z^rE2*8&o5FjU?ZQMCckE6m=2*ooe0MRtbmJS@Bc4>YcqOyU!WFJyp7Y$) z73sm_DClsQ_4EP@@&!_mgCt}j4SC4Ku;LqQ%wm?*_o&s_!Gy7i!TjpC0T190H~J$^ z)r#|i7q}oH{!kbL*FZrJ1S&9Wv;q$V&m%#6sE1dd*aRjn=r#><5I-LLU<&kuHxtw+ zS}`zMjPB);9IWAm-HIV#VmKon06}wLpe7KJz=O{fF-F*GkV$^<%^r|0U)ORX6o)i{ z2~cq-a%hD*y7W7$bn$j{ftbRw^gD}@BQI)PpTCrFO}{Kp*sF`*2L z=o&rpaUJa}aDipZ7213n%k|7M6oohheBh?b6QH0zyzHef=_aje*^5FiLc!vy6~m2a zGe$A~>cI}D`GqflfeJ$G&{nr8qaDD2A{B8#3@TJQa-P7P150P?b^-%byak_(%Gejd z=#Ey5kx9J>2R}#b{?e`&rP2Hhitn zi#?l!jyb@=bM}ev&n=2*gQ?$iW zmJ|d9DTq3Uqat;w$EuqOnu@ICOsiYh!j`w#@PeyiRdO=YK@TRPxiEk=tYh^-3pJum z8OZwTgIs%Nc>!Mcd)=9bR!oD^|0LUi88jrTPBd zTa?5NZ!9t#{bZSyi1H{^phYcdu|=Btl3=g6gB`~ciuJbflfQ^o#xtgIjcweSR=oHp zre#t()Uev4wLq>IIO)@53mn?ob~(6J&Jwg%huC=tMqvm# z#9@QF)K7I)aON{3%ewx9fegCk5wu<_A>!hQc(baJ9hjFQ?*fB*#fpR<43P$dCiGTy z5Ca#i0S<0>!yEe6R%_8{zZrSK{Frvm31r{{uA>27*MY_CRfQaVMG77n?BG?HBf>rt zhs8RE7jIa@8yW5yIo`-eR;VHsAtrH&@d>6du|pkMGDnNAmyQ_USlP>FcK)+%oZ}Y* zl*c|^tqp2G8x9Z|r5=FEZGw{m+ny>ROJIVk5;2OKl84F=jNp}JiRCOSS3UKpU?Jc$ zW)7Cw%xFe)a$pbx?Q&D96e_EoVN}Fu?wOkET`v-V;5inMU<4$fIK@|R@r$Pb4t(G^ zAKbu(6udx&HIh*dO8Q?+XTSrT#w$D0xJ6r&8ctt%M}tACYQj?3Vix9xHGEEMpLwaF zt4PJJaX}VekAq92P6s-KJ#3|uqu6~U6FZXaY^-Np>su!uv|lVSd-}KrvAIDFF0}z| z2Z!4+K{B`#Vk!W-zzI=URoBvuEAqVZmB|HaP~nZ-pU%6vh>*j4{-m2!>L!Z?Ea3N< zl>>trP)mm7CAe0xs@3v(l?q|#GsFKJ1R$(n1R)@O=}k|161ag6$zTQ__Rt2F%3ww< z?9j=3GZPD-69X$B^b1hoawW~K90)G;UtO^pazvQ0T-v!*dM;~PFN#qfUWKkz!3yQw zLg~^MM>){(6m(E!Q6TjRH^LMTuBTu9>u3Lt6 zgL^NI$g}g}Gll~zu~LGF6M@rv!P0Ak)nkTa@HmibGX`n?oE)g6rST05$h`^JJr(FZ zRA>k1l3}^!iB-|ojkUwwOgBE}v*{~!F*gp?gJE{4EFhg-bja*oT+NnA= zj6->xM|yO_9Mg+(kUxF=g*_N4`SE}Z&_4}GsU93e6%Zwaj47=-1W|AmeAqkmkfrwc z1d6OkPw)f=tVBz^#E8tq2?Q2lIlNCiGvjC}QIY|{0Y+5RL5{FIj?gpoqNdJMK`@wt zBp?A>yhU6DfnD51K4=4Q)2_490U5xynD{|-vVaay0c1P{BQ(PDrPj>iiemEx6Nf=bU3g9?5fR+T|hzco6V$1-#Qc9+zff*Qtr<4--qe`K`nB<`tap;9y zz=f(%2e5P)ZFsSAAWPFQ%TybRs1P3MV@pLT$8d;Cxtz*$@QHWOOaJ^&0KKU4>js}I zP+*`2X^;lOG#Zj}t(mZ&OcKP#JOLJX%yJtbRtW`)jKrX#H_g-pObF2s)r8ID1kdz@ zdf?FY0IC%AQ1`I6MIZzDIK1gf{uT{1Nyt+WR2)I^@`xZfCoffLBK-@v2~C`e2~feLMoP;vq(5Cc}h1W@oyRozSxy@X4!1WdRD z5#>x(^~@Aq)mpLyMG%8AFatGEDv_kFesifDRY{iQQI62OARSVfq=GaUPU1{b5NL*M zsMc&?2Gh$$0eP0ci7IaXnT;nB7<4Ka*Rg?~XqY}~64?>HEV3Aip%`@h)3@*&bs`QB z$l&Nyn9vm3GRY*!nlV^}Lns7H*o0c8B@wj*mTlRVl~qj81QO*;&P>&ctV~wL1WRCq zUF}shSj`$ufg8oq$n(~c<56midFc^a}_*G!_M4=tl z$IDU4OGShGoJxs}!HEI2>LF$w(k_?+iL1pUwc67Ifo$lGevk+6ot0_u+7H+pZuP*% zxdBY=fJ+0ybXr>)Fjt~b3T?PThvld&lAZPJ#zm33G@VyC$(@z)hQCdeb#xRjHHW{X zl5$v-e=QBt0Ec5x+zI0=46BB8m|P9sU=Dr^zWj+BEV)XlY28)yM;``k|LjZc9V z2!lmngxZza)(z2D<=xn21Rvhnmt|R5tzFyIVczZCMG%AF9p3r~CSd9y zVLgxoVY3;4pW4)c0r(u{H7ja)4H+mG=SYGk_{~0>-Y`&t>&4z9y~Sqej(O+<5pV`) z5P|OHTCep066)63LLbBN&4DBxe19j^pnBV>ntD&Q;x zM_qslpO`h38B1{}URh(1vWlhPXw-fck|yga(I(hG?J$aNsDa$fw}Zi*6v`4C{t0k-94> z2XMGU1~x|nPTWw222!rzE$RkvP~}#BX_$swchE69VWR~-n%P*IO--o}VBgRU4kuPL zIiQ0&I0QpD1fw>DLRf01UTQ;7ghhzzs7_|8u4+cuS*vb@M(|x|?nL4(-YLEs7?23E z4yTN0Ua|u+*#P6_@Si1Uf>NEyA*F&9pty8S=j=t&5MYL_1p&Vf0lx+Td3a;~(i?#i zFaZ3WGcy2w=gFpBKK&bBO{)6Yn13b6`?(Xh8NCfZ>Z}A3iMJR8mp6VJtW~okMpEW$h zz7Hoxyu@S5PYUNGP=X{#0*33{tN^&}0LTNLHH!;aPps&Misk9KKiKUest3;x?EJs2q%KmmX(GJ=en z-@uLAATn|%vM{dzbWeA6Uw3w2_cMR@GS`DKpZ7fw5HG)Xe82Y&*!O+kb3j)EfY%@> zU`;d|j!|I&ySdR6c!C&SIGNmnDVTIh$7@SBy=IsPdFTUa5F4^5W5g>swJ4ocE zmu*Kmy25}CfZrML!ZG>VWLe)| zG+mUqlrY&L2eYt+Ea9wapL(iaHdiPfpwH-EfP)&Sw$^$rZh6@({C`_1up+kukG-jyc)ytf(U%;+m)23}3 z({oPG_38y|STtwOrcJZ9jaxc(|X z2on=&z){n8Ibpy-Pd}{^l`lmdb&dW~OKtO1RKQFXjWo|-r4?6Rf%R27<(PF=U0ZEq zjZtt#1I;sYRb$sTvz65sV&ae^7&@z{qDwBhB(|E7Myx~R(^xbEXei?nhK?jd|;6Z;RvCx90DLkRZ8E#-;6HYl<;NS`^(7;MB6H*w= zHQ8L4p;H?ILyU|wQX^tlC5|H&H)MI!&5GQ#XiYWI%s3-7($s2AH;8?cBVUM(V-7dx z0I5nYx`<=Tl-qLKt+(HT8~(1i<8oW&UU`87PFsDb;H3>6c(6;QkeVOCbDyayG?JeZ8-L~6r!yUKWb8BYqUge~F zmL4>`%Uf?Jcu;1^Xv!>s;fEuhZ%*LZ=^S+lLmn`}1yf$Rn+8M9X1^C~;07BitS~6X z8gJZ39~>7tUw!zA{tQA*4f~tHyd`@Y^8^x5ASw%`ilg&{Jg*8gQ|&kf%rCweU2HUM z31-VJJC2i1JL~|aJir0tAg6GMTOb1$sJK0m=V8&gj^-W*IXDe$I+fdC z!7j%!jDgN#87rOXN{Bi^WTOv!;KRoF;08r$L<7u$*qdr+I|)ocR5YkT9%QpKRrySK zu4>EiWF!}GOh_<>Argc6{Q;h?AyCqpaK&_>VWmaNdx=n$3NZhc6T7Myj6Q8(^3t?ziQ>0B6(-jRYYOyS^DTkE=6P0U5 z42L+xohmv>-QhNX0dcXAZU)rAF8z z9$9Fk7umcv#xd@lPuXE(qNW2Kx7`(6d|}jd1(&GGEC&(ch&*UW^|?x3GLxGOKdn+z zFcTt%8g#RpunI6Y+ubskx4gS9gV|Eu^)8vo4Bj)N`OG9)vv|p?-u1$Hy^?w_o#7kb z`Nq?}!|~U_lEa+_y&(<{og@v|iLr+oxES1H$3H5Hg(_g85b{U_7>=+B{(oTjo_}nh zPC%R+)0X%bf+_N9fy$1tkcF7(fHA6a_FCK8__ngnv1`b|zoPuY#ajG^GNpEo>M_N* z;4m6AlkBL!Uff_Kd!D#I8?FpNj!qSQ)iKcya7y1|tb#TZrKh;gpe;c}OE1s$wl zMQqY_6t9hAizWv)_Nr#JBO5Kr%N{z>i*EGIj8m!QIEx>=MC~j73oyIhp1QZiZFQ<+ zy~{P&de*ZoW=oYj?B7K_|$X0aO-wZ|2P-~@WS!U;Xd!an=~ z3uNTkzIBaLcM91c52%1|v6MyXY z*Y;w0p7%Uh)%eBAU<5W- zD@@ZgsmN+^15mlc2D*c(+1LkeLmaHxNUU4BncxYcAi8~-@?jg-?NITtpz<}J^C8xO zIYTi(6FbO*KY&6g$U{1WLpvY>J^VvF#KJAC!I+WR3YeRkk;H$T8Cku6`rUvGsKPM3 zpW|7B{hh_q2nLUJ;nI{GGrgAg;Ke$u1Fq1T0QQLF;gmV(*lnG|HUQP|NKrSm1vMOv z14>{Y`r#j@5tO0G1zLzqF$ML=nvk8Gtc70wz{YQ7Q5PzUR&3nH5yK@CgJNmo#tB0u zcH+kM0ST_#D3T(ZEtJ@yVwt@_rNrR2wZOj3VEzpj1IA#ItoTAX41*sSSTB?V8peVw z03#j@Utv`Y6Mh?5$-pYOpD)W6`e&(Q zL6*f?R0B1@1=sXSS+q#7dCiRd#YC3KYyeq6enT-tQY7g?M|$K(cH~Az5*(<(+Lh!Q zsDTr#-FS`H+PUOQuAK^e-At+g9IV};6&M`Q024r837t;A5d$x(12Dz{IrxE2W*spW z;|fw?6{{>2tCQx<^*MMeucIO4PULOGse2Xf#Bw!<=k zLyQy)lFegW%H>>cOS8qsK@ub~_1vzYT3PsIH&kGh{o{nRW!@B|H5lSHm_%IAEVhFziv zUgl-$3E5xzWng}s$^j$;4rE^bUeAj7iZ@&l*C>la3YBEa*fqtNWmXXuQA1`XjZwf< zXT}JJ#1^h0%RnX|_S8jI^5<9BmRJ(TD$JZO@ByJTLm$v)#wbJ$>_!YQK?)!U9QdX* z^vY@iBT?R`T38-2bj-zIOpz9;O&%v4a06V-h-UtRuv7!l7+D@tL$3@~b!xXYy|!sNI@Koje{YV;I09r_b6yyBIcm}>tRl*@p$VoDaAFQ7C@qk zgrG|Q>?>SALjxL3YE=lrZf0zaT6QXG0@ej%UTLr3*llG}CLIdvWW)#@0U5w5#0zd8yPECU&Lsu%Pd081i0b1QMkt@c zMpstRFZ3&cA``FzEA|}hEg287Eo`eD4-sL_th8k`;98VYX^|xnSJ~}AQq5Ax)M8qr z7!s8^3_}}?00@A9$>xU$9KjKc!OEtfrSp8a0s z;$A1G{+{b-kc0lw2IMY9 zUFhulTF+59)xw^Nj|Hd^Jwv*r7Q%vNXcBLTj_8%{+^*;kiV}wY)JBcuqn?tlk;MhQ zGKKYKZxI`D>`~yZN$8aptXibz{za2tD)9~na6!h@&j5|y7A!I?Z7>w>KlTEqa!CCe z(Xd@5nQ8+O5!vxbZ=zby01s;RbZ0bftT4O*17C#a>cuC)&EWwt*}OImTo2f zVBVU_CCi0aL)jj2EX(q-wSt-kWHe%_6qVdvXdaN!28t+gx-jOs-YHTb1vX#+#T|Av+$4iJT9TeZad6!N~^SUvBHn_(*5n@oh#ubEyB8pw`v2=EbSO4H2!|3Q4`AwTWU5Jh0uD#(nbCrPT|^N zI_cFG{a;XM1)yv4Z&Aa@^JM6z!=JpPtFphIO*(bY25iOl391_BG@*Oc67|lIdo4 zamN{rG4QWBai|z0a>V+QgZ{-wIZHl1SFC?Ug zaL-l1Hde^?G|;wAUxPGwEH^7{Fl^jk11{^58bJm(B72WHmBX}lVJdrgLk6u$Cv!7~ zDm4JZACv+;^uvNRT0dO3c4LHneC~Inbr@*G8%O~W6u~`^0>7Qk9W+`j)IvZ*90M&w zG*}JKaNJuM!!gV(QgbL=R1vC}Lq%7#bsoc5(wbe=24O8*?@6H2C*{ewKn0zgNAIK)Fd_yRI4@*+b6Fre6r-*+W%CWp@X zEy6}}|2SF%ZHpiUz=E>6__wPt6``Bqc24m@o(0#4`iZ|Ir7Qfxv&|}a&1kP2UW~(r z(=>N34Uv5~h>JK>ig>6`!*pWBH3Y-QN2Sp$|zq;`dIk0L^81`q2v3}h1e9xbFGFJmO48tHCLMaS;(Hnb{C%qt$ zKp$|!C@nKP>st%fr>^FNIuFB_{P|T7%5bx`6*> zmdLBcpDS#i>(+q7o-4(mk6M8Lxdtn7a=S(5hq~eZCw~6xzmhCIhNsJG0R%aL|diCqs zx7W_<8$#c{3zj2SE?h!{-%2-p$ZebAjH@W4Xoxv58jqZDW+h@)GATi7Ae%5jnt~Cg zreG|~DW}&w^z5fCZxrG$A=Xq|%_$M7v1%IFwnD@!Q9u!EF~Sn#hn`b%J7PrM8^6Es#Sj0ihAH~ShQJ!B|8VREdE!&VoV6N%RCl^^; zN~siAWUZ=cI=d#emuRz1o6LS`E57-@3CLraAWvoy;e{!vOHD0}T2o7JEsCK&1jYM?lpP;EqWS6N3WS(e@V?6PVUy6np+X4;qIm0SZ z!^YI~^owo0=0YAK-O&hnLlm9PXJFIMh@|m9Y&^0W!r;oa!s0Kt^+Ob<0ERRO2@X3* z&5*ns+%JfnM z4%sx4Y%l^Mp0csW`8{Jkbkxo50F=9%c+ZW;_+1vc*-dYL6P)2hkMf2hO>-hqdi^03 z8qsJCp2YrS7?ANr8{xP#aEwoUc2v~)U>L)lxifSave+*P`3yt4X-!6f)3adoNQXue zZ3VO>S=3Uumq61GR4A9;0;7it04@S+KoXK}@wW&>U|kVN1~DcH799QSAM?mf9rbxW zj$mk)JL#n~s-Y43$qqFtN{z$f)KF}&PEO3s#+gcIvoNCbh`%sOHFp9gU|{nY+7#zj zx!P5)epQO_(T^9!xU-#=m1jsv5sx?BxOY}SjG~$RWY_{YX``i^a)E5(LNMsuT z%}|W!^pf%w(j=f_&1O{8qGPhoq1YI}G=w3*SiZC$`j`hjN^uHnyacXe5Rwr#DkUR? zf&LE@m;fA(G}64JbPxDaDKda@2O5pSr3cKCz*Z7RV=U;VIL(Zz04WTfqR)=9DUnma zQH`QV6*NVS>{0Xh8rx)JsUjLmG!CM(F=8e&gz^Skud$pp!f~5mRquM)+g|soN37B` zt69tX6hc+AofJt)g5JtIdVbHY6lzIFG}1Zt?JTgxtx0*QA)<{O4H_?z#!Cj!*akb- zC%<5f3w)?hV3-(e>_6z5(Th{R$TGN;QcjaXM3{@7ir zHKIvJw*mu+)(GrR(6;naD)gN|7i_dCGQd$%J{+T<6-b!9O8Z5047sUil#rBpyXrSS>eG zoFga*xf{8VBxBdQ);UFRgcw@8g+L?&CnHWBvT2u8Ln7Dy7Tadfgf$66 z7Q}o#m>_JMwi|&$6r(W2tAo;wK^&o6x0dMjWTQRW^UHVU#366p8*;cD3tuF+QI%6;XbN z^ZLS#Kt}Cv7ytOlUw-beW!%zEH;3*nYJYd%8BgOW)dFk`^ZlHjhDW^U6#p4+q^TyN z!9wz=;#>kI*e6Yn34Q)Y%aF>{uI@nItQWY#5GwEx3}F>m%;iSQTyAXjZcX)yKoUqH zcBmy05Frr;;i}?~7>Xg`jDZ*qPinAY?5ct3US-;_LLz{|!JtMXF6`R6>|h*ZC3s1Y zI&8n@s4cPz1`*~6so{;egH+U{uuHZ{+93!lTH}v|Uj4P%^JVQORav8Zm_1hNb^P1nQ8n7zl}z zBn$|j>n9|_uzWB=u%al^WEu{USDr7MZV?=eqcippAO$kUWWq+m8~3T~C~hQ7hAE#x$s95$mChQ+kTWE#d@Qn% zWCOz*>rifxX#lMsLr&y`!40$O7CGkrI74DVhG7cmvIsb;E?uh&Na5^2tDu~LFUOHG zdei+J>^6bOI1e)#To6Gn!zW%NvUtTYACn~}j5=cyCK=L;I!~Zb;w77b8Dg?Ceaa?D z6G0PHK`DhN@hKd9AvJe%!Qv;6P;#F-^XwuFw4jh7b2B$dF%BitH-Gc{(h~^7O+^kR z_)H=gRwBImaqF-lM(Oi=vZ{ne@&{YOjs{c^MoZ?fvo1#vnGA3*`O-tnb6Dc@OwflZ zWrOhyQzI56;p9<1BWoIh0qCIf7@%n(^J+5%bUz^s8vOHD4(k~NbU+CdsiJ5>+tf|p zG(AjnBy=M}{c|d>rb5qjKQI22bq2ryNyI44C&@e%A_eM^%(4AEu0%~V)KF9-f8pK| zu4t%DNzu|di9t(85*()N8H@oOTuDf1E|duJ)=1U0M(~F?sYtWxLo-Aggyl7|f=N&E zr!XwscE%(w)FhDVECDGGgKkT~p`gALP1mp&i9u>EgF~NT8I~bUG1My96i%m=TB{X1 zQ~_xov=_QC7-!-yJp@Jqlvw$6CXFRLJC#tMGU+BXNkPOM;n7S7Gs_AyMSYGK6r~L{ z0&6@ZwKSNF$*`W`7{oywkiic^Ra7^s#;~BYKu{7&fmidijhGMyU*$u1kM}6< zj#hDAGpuP8gg|o%ss74lBitzHplMjYlo_}b^ul( zTYs`!cE(li)ftd>$zH_)<>W&iO|ItZHaD{vq5w$sA``N~z-Fyn zZp;Wep>O?`LDn);wdYDNr1=gvm!^&JenK#bb!73VGmB+%*T4m$U=GXx2AJRvkP#+3 zw+-HaR^NaG-k=YpW+sy6Ok4I@xs3Ou^>sfOgqP80k!B@ow{zYJC4g5?8+dnZ)^Ef0 zXfPGYwA2M3?aKg(F=dqZT+^qz?`Q~6J;%$#cfHkXx(;LNC3drRP z7@@V0L=r@Suh!Kj{9p}0$+XDj2!>z`sLK%1EzUBvi8sw)n$x(bQ?F>S8`7kQuh)Ms zbamzagc|x_4VZwBUw{dg;02t(4_=ZP_TUXb;0>7JBbeb0;N=a9!F1!v7+6@5&CYBN zl^sG@lQ;Pa&4Gkl!h~bCiHJCNX||5<_=U^v6W<7p!AIK2Hiw%}Iqdk3iO(bdigAAd z>O^*26$J+`uZAe%;EJ~x0E{W=xEX{22?}Qy#6b_LI4>~a93Iam;$Q_@AaBbhj8{M| zisTKl?Wi>3j5C#cOak!;%#NQ1Yed44NPY>rll3NGQw{!` z)mb%ocTxF;<8Pc>d2MM2m(Hysz<2iB(?+uB$(T;gDvq1=|z!YNP zap(Y=LqQw*i5S*^1y(=@gyaZ-pqq2d@dys401#xsEaU+f5@BBWCKRxN$u4&dXn>nppsBf;s*8Jq?{TSkBL3J^TG6CN z5C-8865$T&U=FIgy5(RF62TO1Y_41Q6Mv zO8{QnpctfdCf+D%D?6eAilPzQzyDjkeDmQlH@?r}@flizu z>B6oLRA9Kdna8KPxJv*VzWWrmn-CJA4ALM9(!dPNpbVPa$(@`GqFl46y25s!Z&-3Zg&?q#z2&fDsiT)k*>MNMX$DJ@gb|3Y;L@nP3VO!QT@B;Ncw(+~5uP zU;|1(1xi5H^XL2M7rY(EFed{6Jkf{nY3H;4iQc3IP$u01C9d+|NA<>Ww7^2fe@k{@DqU$>U|W#UhL)l_rIR_#k~I6o&DJjK@osH?U?}Eh5p)|zX@I- z>)k*co*=hltO~we+*{!4v7WfKeu7J(-sMK#gJ0}J@7WXK@5>+xvV95`;Q}kL=S2_w z=Ncgo+{v@2&!0ep3LQ$csL`WHlPX=xw5ijl zP@_uy*~^)@UY%o#&wib#!7&KS}pU$y(@ikEn ziv+3rNn*q+CF)+z9k)m_i3pK8EgN?0QK49i3PnHlAu>{c3^1gqznF-KATmZ1N~GY% z2q0v{QAQ;!H<5W!V5V7iAw{^-6jNoW;f5S`=;4PThA85QB$k-dFK@wxmNU@|L(DLH z#4(2*cN{XvAf}w6qbWT0$YUvmoE92v>j7EFk%aI!g%eEl_7QFmh9sVD<#mTxZc#cR z-bYSIA%-Edjk4ZsMY1OwDPqpX{vMk0!R98A4XMN!8Dof%h!WCOXB~rtm^LP8g(Q-Q z9V$>4TyYo;S3;8xnm1*XjzZyBWs{)Quf2vGa!7!J_UEr6 zi!36>z=T~U(Yj4SLB=A77*a@|qCk8_=^AXqHmmj4TzBpD*IEP`>&mB6y`K zSz2kGiX_r-A*B9jjhZ$l8#8h5OzioUfCxu7F11TLhk4NCM1mQU5aNWHiJ5Mc5QCt_;Dz=oDWO;$DTA-~7VpFfp1@U;09X zLi}^I9KuWrnsQi>td_B0i7JF-qM-=w^~DiB?29;j0`i2HCGO-+F^Z8BV;1>FmPO$= z8{`}b2JuCFiBW#}QsYAI=eJH4<}zfkllIu;Dfn^Ej-hkkd(0LaLLdT#7>okz)>W?Z z01sj8g8me_@Ky#c`tp~+45l!@w@KO^?UQ^nN%h>N%VstcZ*Ww^!_K6!^{q{nF*K#k z*i(pC-llG?3tn>=2Rq!zu5W%@VWx~pyB5$OlAM!5Co>~A@Pub?lWHW)Lb(Y4)oe&a zD&Q%xsmiMX$qsh*FoD zgv5>0agJKd8x;dVEJY!d{Xv8wP~)aNYAj7ddd({D2r4^{qMMt%pGu-cQj@T7r#tU8_{3szR_kl`Bay-8dnakwKa-6-_A4hD|XUiH!T=l^XjcxZCkG zYT47?XRb+5$C@w+?<}gtG$I2Wm^KHdO|8&m@Ix59;I%Gr0Yng|IFCBifsZ2>Z$@%h z7uL+HdE{7dttP7YL3UUDTFBs3$Plg0k)^CerKe`&J-u4@y4cMw_?jqD%Ehi_CEc4o zRZ`E`9o7(3gHKE$yRQK8%f0;C)npZtyQ7sMGbf=;N;{K2(3Mh;>v5C&Omm2Z#LbVbl6B1~5QEQ#%^bT{@6F(4-SXqPA6P8i{_9T_f-QlKZcn zw(&CIc@(60Tc<_z^bo)Gs(VH=pR8&3$3PCUkeQ-}A{Ut^MmF+H#ECAbeixr6DZ?9a zYCB_g(y|28sg?hx%)w&tf)yMu%%%`W=&DA2WZE8^IQyDX@MjE5Vglkcs3)TiM+Hhn z!V7@V!wUPk!Vn%B5)!u@b~TQPhRn`Q-TK!4^$HQnMdq{08$l0qr(F`1h>QzqPR&4u zfBsZ6_on6JA)ETts800&biry}+@#gIkih`V)nrV^?pc&-A+ONL>t6eMiVHDJ;arEV zkxsOcUiP$<7fDY_%QISRUJY2K%NkMy%6CjUToPLFg3uOc1uDQZQZN7B!0 zh@=tz+=TQUoD+eE+nR5htyN7XGVfa%oZgOqh#1Ah=T7&!b8!YY$a~%gkoPgn#0)o> z0X27=*ldOH>jkFiEC=p#Lq8OFiz_rleRJrLa`y?*EO8A1%>KPo5(zdo4C5i_d%xc? zVF?h?GYnR5ZleA0hdz7()#3eY7iyM!Jf>DxeU39e{_0+S{FT1@1LuAZ@@|lepkKd> z$lOFuZx!q^!VjYvzuW!#*w6mgR=e5(q=6<$n86G@pWecgRp@R`1WmD2$gw}^&<}Fx z#NdN!<;C(uHCILknqT^EWK`qi2U0bI%rEo&w0$5Px8^ne@ zcL;@zGm0PfE{^jNB@s9SGgrK3U{L@(RMI4ilYn^mR8AO9<-}Iz6dpHcNGU^Ro6;v~ zb4qzcHD48NpBF6Yb%CdmGx{b5WgtkOIE{7KDDUEY_T)$rScu%%jovsE+-HM|H~=xg zakBP}=$MY`xQ^_YA>HQ!pqs!MoEX&){a_Qs8HmD}oXWXH?ll02Fb@MT4@t0<%UPY) z2{s-nes(z%gurpv`JLeDHQYA`&>02W8J_5wp2@Aej3ZpaSX?OfUeVkO=rWpbEO6;3xxg02)njo(wvn6si+JlLQ2opcT5I z8yYlaU>Z`Ok{mjs3o0~+FcUBEmn6EP`x!JYP*LWoqAWV2@>!PQNTWEKqdK~yJldl^ z`lCP^q(VBRL|UXqdZb92r2a~}q)ghRPWq%!IwJotr5SJp`Y-?=5T#n0nNunYD`2JI za0&mgrDSTE86XB#pbt~}5Asj~oKU84>X_h=1>lgTYZ|9`%9w4+33YmCeLeafaK&;?UEsEoRoUb-qaa0K(u(0Z+c=mwmyrp#~!*!r#7*QTnXs5Q~8;CikTN3AQs z357bP=8CTHnre&sF%N*+uK)0^@tUtewx)kN3GZ5{`WmpN_5*y{tX}%20-Lbc^{6&5 zt@k>`2+z400saob^vq$eFH23hcV1DG0ZYC%rY^|GBM0DG0ZYC%rY^| zGA+Y2D6c;h1OB z=DH*~+o|c_sOaXX z>EM;@+?DLqlIzct>dTbs$d~NNoa)G*>cybw!JX&8m*>Hh=)RNbzK`d^kLSmZ6O)ws!%gasilb1(R(g9u*rI6B7|33I{3#0UrVY69WPZ2L%EG0ssI3000620S5s95C8xc000>P03QGV zCIJB}0|hS!2r&r>Hx3Xw4h};O311Bamk0vD1_Ip_3a%d*Zyy|493D^|AVwi5KPWCl zE;Lm)JzhRUT0%%yNKIHuP*+M&QcY1zPE<`$R#s72S5#bBS6^LQVqjoqUt(xtV`^$- zYHwj@bXa14O<;jJUXLnVlqz1DE@PfFXrni1s5)q@KWwf@b+k@;xm13*S9+~oc%5x| zj&^^BcYlI(dwX(ua&&oPb9-5Oa8rtKRfv9Eh>2v1kY$jUXOo<0oTF%}onxn)Zls@f zo~C=Ht$VAmezdT8zOj12wS&94jk>m#v#+G7tF5A_tDK^wl$xK7l9+~!n1GC=dyuep zmA-3}#%z|)X_(n>o8NPs;t2i#hrk>7uHZX&2obhh*v?%$MVvZGti;F=o;!FlUaV8+ z&K^XLB5Bg}36!Xlqf)9gAZk=g0|rQ`991foGHcZM{fiLcpU;2({Phb;)ZfpYJd-As zz_ck-rBInpm;j=x)vF*vXdO}F1PT->zMdcfVnPH6{Ps~>%eF1sY15=diw5mk-Dh^4 z>2=nuZ!>1h{sLyU3~*t=g98KZ>r7fUH+1UAiDPFGrbxrWX%@%1v*vK(!g1@yZFIM8 z-okbJ91a|~)39U9K3%$YZQ8I+&pz#~x9{G>h6N`^oS39a$SKK^HER~k=g^}|pH98H z_3PNPYv0bjyZ7(l!~TmOPrkhQ^XSv7U(de%c7Xy77EH*nz9NYe7a7WqtUql+V%#lbUnHXV!Iit*Dku)#pe=oN$84B75+MM;`qBS4V(~KvIb&27-d1f(tt6AcQTY zgi0;8C{qoF{yqiO;j9~e7~)SP=E{=K0CFt#R|EnX=g?Z+mLlEJx5b}kA5E>5Emq|pONJ^OM#0VA%AuRh( zTFp`uHC)j8_+yYlX5H7eh;7YnGuC7SZXHtM!3ZXj5YyV)=5~hVXsVezZomtg$yM4Re^ozCb}RP|$LhLxbip zwh7OHE+ZY&6zLdox&t97Wui*qs8p!J2aN(1wy?$noYE8A;cj<1yA`fV)T^uvPiX!{ zGg|V7c(mo6zywUQ(bJ$dy|!G>YTDDDGpMCC@Db^XMGDOL#Ad#-k*hW9`waWshOYR@ zuQXz$n{N1rru?00ZoAP9o$7SJ2iozDc+8_7_jn!&O0Wn;pdba!fWgb5V{@I@gd-3E zI!uLdbcSFAB|wEblCiLbDGWs=P^cgn%8*wRc*;L)n7iHS5GhAlN)LY~G~^NSl}2n{ zSwf)Z8=BN)M9#xjy|OWR=0Yi7en*U;-5 zc*7sw>_(f>-0wL4Vh-W>NX~Ma^PK2h+@XZ3lKE(+Gkt{(eYn{p{(ThV^;uEGa#VxE+J5WlXCmOOL4taMrm1obm? zi;Xp9(;IWRp$~lk$C})Dzu2%5HsJhMbJEGxu6p&WU}aCk*xAk^z!RSGG(!;}f}eaE zLJxQF!yo>ThdcZSpaT7rL05>$6QYcvavj7aRtJhzB_kgXhybrHdb=Bb$dnyT<*rug zBI6-VEX+F^@{%SN6P&axXHh9jahbhcVvT#K?PW7+dQ)r+a}IK-{(~_y(Nm%tm3{8Z ztx!MX)T5#+jJWk;gzoy$ ztX?2OJmnb#wnmB~7Eyy53^3Qac0>;#DIhLpp}G_HHD#3Gg7o;4XaQl5reA9U~dvr;kkmZFGC(!GLF^plZbN!G0M?ew@S{x%6rbt;WWPyqV zHK=u!P{e)#A&9{`$P~1&5Ml{@QHpt z>{4A$u`V!;>0V4*MaJM%#dTmYZG}3HR>OF0Gp2Dk&as9!-~k-ZWM($(kqy&m={2q) za*+XH03$1z$xP)^H-JH>NldrO(2lmWr!6Qfb6LyRzH*lz#kor8#|>y$FCfPK2RnEq z5sr{VE|7r?S%jir*FXj>M3GQXeBu#(K=U62fr*k$=oZPSMnwx9E1KzU!8uE?4kv4s z2dh8@l9ti(iYVzL4lTo(?l7lAEJad}`lUj$RxGxOK1XR4=TkhDkR{i z7#JuS?GRBigu{+b*1;nX!3tE6f`><1!j_g%3OqXk70oiVYO$WQINotjQ%l4puIXw= zK1@2u!Q?3KjLOlKa&ffUZRR+`8e%>NI=q21uNTKLl97ySWTP9~xCTB9V2|5^W3DjK zHzB?eRM(WLHT9Dh0sr-Es$2j1*q1sGy#8$Mb!xpG>xfjwIAIAzFoF<-7=$3!&wf9E z3=)&55btqrjeO(-AF?=^f+%qgeJ6Ra3qlI105g5(cLo-CwE|fiWq3T%D_gMwE5HIR zFo7%paS>N>l&2!fG8LG&7S{s}oEK`K7e%F|T7NNmk6}KhhkBU+46dhg=Wq^1rE;wn zbZ@{0v$qCqzy@%D2XFufr-ui8&RS|(L z@B%kr124b=k9UD7kOCzzG%7L`1qJ~(vQkgPc_SE$RAfctBMy+EVsmhEEhrA;;A-fA z4(Ct~sz-yZW?Zw!25@x;h2REoFb6`oa^gS?duV_5cMs7-W8hFem!e#_1rFPwb7+KA zu%U(FI3`a9hGdwI>bQ=0WQJF#b=k&-ZRkPmFasAb1YuwfeJ}{=R|ty$30(&Y$-sp9 zpbz;V3ocPA2H*~TfQXOq4H$6;mjDVbF$ykIA&;nvG*oak(+@KvE3pLPm_P=2UR-2790fd9aLiKsx3?4)1df)L0MqkPWug8SLN& zRY(Y0_!--v4c{1!Y2iW167EKyuc1^U0+AfPNZ89hJIVXjD8ASjD?QCiT@X;>3J zT4W7JiHl3wf=>P!l~OsCt%eTiV3p%AOqGHMkx4q`@RY754)tIU1!)1i)=Zqy4sE~@ zarKsPxee=c8d|~)N0mmnPzk62Wq(``H3|1%0Ty5Y_28K&@gSj~30r^>2H*x{kOq)32Xi2ipMVmxa0~bV ziLmK+ja5nrD0qX{JDE5EAK(EQ5D)G!Wai)wF|Y!o*jbo%7PXXc0C{1oX%NV zE(Me&hDEh_i?F4XjzC*ZSq^HN4ro;=2x6;Kb@ zfR-}`WB%ns2Q}&k_-QWxDNXIu4FM`$PluqAI;oU;9zL*rK#-}Av#IO!pcummncxk* zX%6Sm8||Qv=3owJ5J{gh3ED6Zoaq4{Pzwop5}sfPcVGZ_fSP182QWbgdEjTDU;q-e zqp(?%z7wRRM2QL~BC1#c7XT0E@Kk+p4n$Cak9R~eSr!|%L`>8yRHLPv2ZGrHrb3BJ zA18Vzb`9e|rb(%bk`NARS`O*Jrfmw9zlaV|8K=Mqb3jO=bFe9f5SCC$4(TutBw7I; zpaHSAoo(>1dC&(wB|q&`v8wT?g0oeXy0IMFvD|T~nX0Lr`Zz-1spFRkh+q!jUrA_oKPsE&DI)Zfpg19td zHpQ;)%7T=@4fATR_gb*OSg%rP4s0L?24DwvKnJ?I2L$_+=^zglKo9pI54brGGxn6_ z&<1f32XdeX{~2q}M6u?wY)z-J9y_|EOS(M}vZy<Isn|p?z=&A)yFU`3-&G z1_2ckzi_kHfC`}C3m&in*I)`in+St&yoF!@msLr0+Lj# zQC8~{H~9ehV2$2@2#D|v@z4Pfm;w~WG{$LQD&=9}y0#$JwlF1vKtit1kV~PbuIt*a zNLdGk;9r!`4S74S=~=K(nXiA_233eDy9!W=n-1}C0rQXzJf;CEzybCU4l4JQZLkKH z8wYwomGP5%L**HZ`WfD!30g%9rQ5k}y~}D8 z3HLPla1F=63yZ)A-aro<@Btw}0&+|O$zm4ltDGwZ7uEwURTIC{Lcjj?8=Wp?zo4eS z`|Ga$>tB%|zy!Rve2c*SdIx#{RZw*i5nI6OAP*DVi@(SL7;u&v+-e-`!IvAtgG$0h z)fu>@CEcLHf`g7P9Lut-j;Bk*HGIo9ys2E*hLf@%lRU(fTslAODY}pgvhci3iwwC? zXQnc&p|1xBdISnGgx`+Qx%7&_P6bt@I+aj0uxn}$_5hWw zW)EkHmglgi<#V}oK!h&{W7~u+q2;1dp@JkWzl- z8L^dYp8^62n;?Gm#aFIlNtBQX9%@M~bj{b`0A0+jz5{sJtE@D`52R$JS4s`!j0?0d z3BG_0^q{a;@x@E@&U*a5@;uM>3wl=b$JByFgRxrKP!5Q!ivZoo_gcW@u%`7|ujc>` zF__nRT@K&?*K+M@pCQUn=~RPg4$#Qa5Y4$|^tqBC(kA`bkPUS`@B=ek!#vQ^A`8=r zDHrbSI%QlRP5y#ZUa{QpsLsa1^u6U=?o~eU17M!gGpyf0&;u!qABx0C z0WLaUxd)4237~S|3N9*Gyx^>z#iJq%x=_^q5749COvcSh+u*F>SK8sn;0wNB3?cpi zkm#e{ilv)|;*w4^xWwXu+)^MXdfB2RPr|?0Y2D(W4x%pV`Ks4+P2>g(jNYx}r=AXO zIu7>Wl<5GT`U=rB7?rNBp5(or6}t_%u)KR4zf3#sXL&5)F^ zDbC{Xi|IdUf{L-}g`o`E;OS+$2aLeuqb}-x+nsDmjul+18v?A z|LWsV(e14z;}8zL0PMpa@*>|r#$NvNKXAj`2Lw9+q0O#O{NzZYV+SKt2|3*fLVZxx zyzO_cLfy{i;J#=XLbc^iiD{t^)o=~hunpM2gzk>DReGgp>%R1^$H*NGD$e5g`;)-5 zBuSzS#{lq2De#vO>guo#W^eGn$PVCH@CLu|s(udY!0HOGo(`?>xn8idKJjmC576f|DcnF0#^B6R{Gbo|fDhQP^!T6;j6PsLakfw$^-@3e#;v7tQT1{A zoI&C}T;KIyuj68`3EfckX8wQnWzP=m!1e|2_Nrd?Y8v-(Uk*Qx>Q7nsvksnYiuZP( z>!KWke9Esh$PJTFC$nJqi68&+Z!jir?Aw=CX7B?!&nk^$h0Qx{*K79A^<_&KqlXbDPTkb0TlWs$;K1+Lt^1o8@!xdm&^><4j$LBP zj2mAj*VvxDagHIQ{wqgLbh*oqON&NL?lHM>;~={pM~>ShN|PqhGLT#MZr;6p{{|jh z_;BLIjUPvzT={b5&7D7o9$or$>ea1Z$6nmW5ANN60P$i*{FyWCB5{JqDH9_@dI}Oe zSm%zOLyjt;k2o>ZCr|u6{l_R213=-ZB8osUK%)O>A;~0^Qi_13m|}`hrkQNYNhhcN z0jfg?9-yZl5lvDGf|vYpD#fUzVsWagu=)U?KwrNqEE&Txt1M@3L~AX#n1L&+HT7(PC4hK{H5?zYvVP$LEV8>ys|9$YCx2`5yw)e|rD=O%uj+D9K-lPVDc3M#0; zf_dh7AlDO9Y>L(vrFyX{uVUni*{z^~rpB?HL8~omdF*i+x#$Wquf6)ha-G4DjAyWS zoJ4oAbk>oq-FDHnj7u>|YmBuj?=9yXF+VfyGBHzIO|^T|RE--+D5-50KNn`WVTT`v zIAVz>W;jspfB+(hLJdW9Q%*LqL=i^^f-llK@Yo{}NHoDuzf93fj}rhV`Xs@N{L}Ok zT9PsK!IV<|Z8d0BRTBEderAO#AEj-rC)fvg<<$bIEAY_7mQW-XX=+w%F@j14uEokY>w1d>EXE(niE?Lb*& zmMajM;1XNXGp6FJahaPB`XwAnOe2&UT#Cqs~x_e$d zbSdj%jqTd&X_jp^Y^`bpD_UxIWNYoWwtd46xaG*>TffjHcig@CMvP(D;f}z$>o8AB z$2|VJ)ELHy$s7-y*W#$OFUS3>G!v{6!N$=Ggu!Wa9|U0tML0qdmM}Ow2o%N!6$I3k zV|ATq-RmAzG9cA161VGw?{wD*1K`JF{pk-!It39;c}!=>$cFBJKmT;pK3cJ|t@J{xi%?b)pitXy!9RFjcBj)rnJV-h-wo z6kA!*8p%jTE^@I=Z+?@D^_ZGDqehPqt+Sm_QRA^()J8aN<&9E_$~5ly{tRfSPb<_~ zi~N?M3~T(zkNLYqCb$6@cj#?g=29r%9y=I!Boc6n)ab7&s!@zeG)t6;l9Up&K*yOw zOdLf=HzYBMS)8<`uZ3-FWjkBy?7+6S^+9fbums));Rd{rB`0*s)7V97K89d~rI4D; zV(u31Gc=N1Zl-fMlT8}O&?XB;WD_y_VtgX3oMKj9ERK)haJ-$U5+Y+c82&!1dR`#)n zjO+o$B`*KHR-*ZhKoD z_<*;({Xq_Rv5DPjf<447nH`SHh)Mucx|=e9$Cye?=Mu9&l*q+3oC!_sj(`MT{_=LG zDqd^;#8yhP#(LfR-deP|7O;RbENUTNZrb;({Ouw*!C8%J6u6xM7BC#C0#~4{s4HNp zCyS~P4F)d*Tg-3mBn<2F)W$La@c>C1u>K4A&+?|=`fT5poyilVvnW+ zqYf+wlpf;^NU+wmIL39Zb-ioR>39b@xGfHJzyxCFRtT}&-Fn)Chn^ajK1_xg5t}OQ zDKnM1O}(-%@KMeWX!pw{05`Zv@ZIoUH6W>l-uM2(A{Op`H=JWJ?|HYG&fT=0 zp7o6lZ(^~}e`e8(TmU9M3t`i*@}PVC#1D8m%0oTv7D#`IxvlC3}blX zNAjP!K#kdT$Ri%}kOw{BfesU=nn?znDB&t&S{F}FwYKJU&UL?s&K*~RVMvm;(8X-)<%YB6{Ax1Zi}wgr3TKY#i68Lx`3%CX+sB0{6Yi4b@v zT1koy(Fc2Cw6$mkXTS!-ssjnbyu_k}&HKE@qQD6>7kFqFOe4L@I*hx?84_OFkG18Q3YV=Szg>lfEh= zDy)NuD7&_;^8{MJ1`ALDa7%$Hq(bl${y(z=FXf?t2dJK8V6%CX1@{xfxsx-uGsC*G z1!YKvXs|za61@9^s{n)weOMxBN}dncLdRpL0gQkNNIU}stY(OY1>}|nlmk3i1PHve z3B)vr;=BuE7e}nD597GWni3U5m;V{T41B1;K{Y3Vpej)Z7fcu$G{sXyMH~Aypwofj zE4t!ShaQX}AcT*fsvRQqA?)KFYvY6{DB$dV8nL*u&j-{uz=J+fUGRX`m_UDq{7gsCP6_a;Xo7o#Md(i zN`j;p)SOh*$c^MkQ(DCwfTF_voz#JL6io$YA1f+ z5D(!ha_qx%j$y}T^n;fRxaIXH|$stgf1!1U%4){r9yh0HmN^7u%H;cwp(9NU_!>L5W+a$xN zguAEA##f-qX1Gc?jKi&L6*E$b3E;Bt8cILxkg|M`4@k$vd$_L1qH}mlIj{qL{O)BD1dJG~jRVEgJk?X|NKgf3&{up=k1;X{Ev|%E2u7fU3pGvViZWnyE(5r_ z{fDYJz3s}|Le6y*HFI-Srm0dHF#Zhd8zrk{bJ_Aw+Fw0!!)g$$`aZ^&C zfu=E29_kF1uCk(gNQX9fg9v-pxsil-AOiFJf-nGssg>Hw0s|s=2O$`OA%F+29aC^^ zEHDUzgVff7G}FeKEO1p@&O?`Wp^}OOjBY?z$86WSwcB>>Qw5Dz%ftcXi?*d3nVymq z`mhg0RTTWl4VdvoNae-f!9WC*?xhan(>BKU%-1%o0O7a|~nt@Yj^5P~u7+VKV3#_~MUyDX6F zFvxmSwsjJS3Y^EV62#zz0lnM%#os*5TLl$5+j@a@kVQ-o8G{g9`OpJIz{P62$>`#g zB&0qb@`Opq1!K4edFTKYXjq4(Ld*r$&83HujRhCY*chF!Yp90|I9=4e0Bm48leN1# z)4OY!(Xeu_Hj_J4;D$DU1Zpf*-K7S@dq?aPVxP?}F9S2_6yl!^%jwir=e+(E=0)1) zeO5=v1Wp)-t*zc7z~1cT-tP5YApqkrR^P4FG_u`VM4H4691Jo}+qE6n0TQ6gTD8BZ zU%JiTJH}&;d{@1NDWR*(ScI8Ph=kW+Hj?qoTWm5#fv&21uBGw>)V#@@DV2J-01v?6 z40c!(P=OTyFAvZF&b@|P_}tx;1yj8Sd$8csox&9$S!7_{y1Rwf#XGYCr?TRv^kXx) zLxpf)gB>Q-S+$0w=tJymq9nG%ojqbPBWAD!Rwho~p?%`!ecn3QgKxQF>MepIumUic z0V|k+F8Hpt=I4Gk z#r@UW8wB9=5M)ATHX1q^=$ksKW5S~P4`6ImN7e*d5C&|ZhcLS23`Rz>Q%12gC)Ldb zSvUm|mW5k5hI^O?j8=hFZslZXJJ%(vZ|bi+^QL1^v)hEXUGC*++|ArghHB7<2q@NK z7Gh==Uf~sip-diMMc$wY76*7@dT0md4H7!2X1=foEUsQFumTzIY8mj}9_Rre7=jfV z6fiF5v_9u_=3b~}XE4n)FCKy~qG>%Z2$J%%Y(}zqvD|+vcA+5E?S`A$^C#7z+@CaMu_d`{tz(T6|jJN23gv0myYF_z8+k$fCu2O>+vQvyMUWNop7*!Xog=DaXe1L$V zChDa|=A+)OrDkd-cFqTY>NAsSs=f=W{+6u9<|3GZul{Nt-~q8FYqLJfVNDcvw>kyludYqojPb50;*nm?CQh1 zNcP1}K}{m61YFPtwDN!z;B3qN?BRu`(Z&GNPHhp61znKb4d?(>j%_uY%3HWQ`$7ut zselk63Vi5oWC#Z}XaaL+gmh4YMxX={)=gN5KWo_jvU3F5X!2DfKI-9}D(w%PHWuH!8C!QQ zpt%f()e`VO2Xxum-vT#q1Se=mVDJeAs?hu;nMA@xj%ts z>>TaV&V|%I1=OB5WVnY5=ztF2)E9qcSRN~UI|_Yh8W0f?-j-owV238q^>F}#HRuCL z&{z~lawO7~52&hgqwX#vzi~U_Wn5zHd}i#v6@74kdD!wf=$5O_gex|49w75FKXWu! z?;u!nb0z{IFza)E?>P@!?q%aO{#I|r??(O{ppP@(KA(g@*Y|x#DZ$>`qN{-!@P=qh zNkVn-Lv3`bGeRDk^waDiN2RV{AVyW!Xz+tr@Dk#$%k&RW-CIC~Q6K48m<47!bxcp; zP4xhIVBuDWW!Sw2>romJk#(ivZEY|HaVUZu(Df$Bfh7jmjAc7t+bMl^nuMc-LS0OiNZ|d~|H6LemCj#=A zT6eE=GDakNUgJX|TX!%6aK(3i*ZaLMp}eh3;@{ro=jg#mt!?^5vJWU!TaAB1DD^*-zv@fMC4ijyvxd z2oHY=_J^N+LcCMo5WGmj5rq|6cp-)vYPcbX9eVg7h#`u2kVhctzyuB?nZ(W`LUB^b zB75X96HPPTbcY`Phd4rsPbv)+6i`40CD4$b4D|^mljw2}22^E*!U<7sMZyRofMtON z8kE(+1{qjz4>Gi{)fO$b=z`5$b>Vea2KXT3S1fS`HdtY}AePu-dEOHaIBUQW2OMjt zfrDmO;jo6EYa~L+XsF0ingt=GR%L6j#fBTExn1g-ZoBP9!2=EuXB={HEZ5v~(FsF@ z5!Gdf9TVSumz@tlkY^rxMpyv`ukOJY-+T?)2jCF;EeK$HU+^lRfkG&#V0rWn%gZDq zT6-_us6!JsI8l-fEHcFsCW^>NV@)^ifrukL{RC8yo)}rwzD#+- zZ&038G70`I$Jn#M3RYbuWeHS@0D=b=%wqut9B}C+J=f?W%b1Ve0*qXAdGNssACUE> zE`PwMA*Yo34n0eD`rXPm)nv(7%tpAf;;2L!d?NiOt$J`=|DQtO+3^w$Lyc<~>%yUgHw8$b$oaDzT7@fD^0&_CMoMU)9eY&BDE$QUY zf@UqS(}*dhtTozN{3i=t;KKtUPz}^_lPRoW?P{>`6sWjHs>#qHY{H3pb>B|71n1wEm zaSsc8AO%r6feGT+71w-#0uoDJ#W;WgGJq{0^0aDWF=!DS@JLF*xir`}GeiS6xDbxT)qC_o(fu=~A0FH8On3aALDtgdE9(3uz^X_pCU(^B> z{yT-EYH^EWWUpdd+Q0?oagSrzLKdljBu>wVzLpUq2u;Xj3tX@RVo-wq7VB`r63Wqt zq^)w5sE7qFt`R9pajG`7d5x!}#+ut;wT{6VPS@DchF=C#4#T_zCX6`)DyUGI%w*dV zyx`1dMiV>M=|O^spoH#RGn*|0)-uzn&Tt~jhF~xp;?SAS7YZRAji4uFBP-d-Qns=N z5Enl6d4n2o!$&G{1R`PruRPqr4g}r9A|lbFg?=$eM^UKk&^Xap#<8{y8v(>BP#g!; zqoam|X+5xkj9iqodMFK~8nwr~vh2|w*Z@W?QXyUG+VrN7jMFS)fxcPPqY0R~3JY#9 zjz>&l9cxfTB~a1SQgqZ$%WiK_l|1P(8|)(#4m^{i<< zCR_1_o@L6%3tl*aGk@TnSDmK^N#Lu3i{OR5ag)K%dZFXcPyg&yN z@RvU`AVLx5XoDq;yWTN5Di;NmlznHzDNo^7QY7FCSNMy-*3_{A0oKPn*g?TMG{+8y zC?>?kPL3=RT%8mDW+ zx`$UMMsay?O`jFZxY^ErHngLS5EtA)Bq6EsjqkMyN5DiT0=)xHbi#;8bP;z(`r;Ue z@-KlbSroUx#syZu--_DywjX#vJ{*(f3~T@c^bjsCYQZtKq;#d(yFdmK{yc0PLl?G) z1pwO&=Qm5-E#-Iv95T*HJzu2-OJGCB0WIi3BdwL#sK5s#6*UJk+G!(r^hG6ICEZZK z(qP53J0??yQ+XP#nV134XOILMAb|!TTms&Zkc1>Wfz`Wyb*z0bYbEs6ZeGAOGhfB) zAuRK)z%GKYyQ73;vGCYK!0Y1brtHSDSlVuX{yW^`?oJo*U1TuBcP zIBn&cVl;k5z+XsT9%?jyK&ZfKoOkG)({iwbA<(J`BFJC{G&sM|mCyqpm|E0IPl6Jh zz60$D9sW~Sf(qyJ*6wt@)NMPp-2g!}bqC&f0Sg&H5hw`SF^&)z;MFOU5cI%f$sGk& zpaou_w$L39;9ZK`fOok=BY2ie2%fk8)daZV$RRKSj})2g7zw^K-r@-iE#QJgNyQtz zksR??2vk5mSc75^(mcq+1uPsg)Pne!6u~`;Ed&EL*aJs#lt}r4>B$0^A>ZxcUMYwJ z4(M462mvpk!YFh@J5<8RA)hJK0y5x31vrg;b(P78Mf5#dr16)-&|C!FTyemI8vGK^ zh2Mbz9SsB>4Q$5_+yK=r-O|M$+vorZ^}zYN!WN)B3#)G{B_5PAe{kz z!QCVvf6NC13PF3=4FUoI4=4f#wxTP(A}nTv3%tM!a3BY=118)HCdA0#nV=TYi@kW3 z;`!53v>+wifkS@&sX;T>~zRk9rB3qm)T7Ok+LNgFV~> z!_^cO4qAH!kUBb5D5L`uXp%edLVB4LDOll{l!7VH0`IWVELBaXjK#<}4IRqd%+=8y z;-LfRAsZ+MbAX@Em0t}+WJJyY4A_7)*+3wgUkxY$6D%SLVWj!d!2PKocGOA;{U0}- zB-;SNCVIyYEI|?=f!!#b64;8Z_}Wbdffw8j5+oB3EJ7>>rBDtfQO+VQ)>yUS;=M$I z74_nblosnGLcOfky09R>oLd<+1uZZkJzPKstU&NMqiWn+BdOjK2AA|u;WnO>qr8PK z7y~xk135BWHkP414*nV{m;ySe0UPv!C=lFT29PP3!Ytf^F~}EvOqj(sd9d_TP8_n-^Sx6;Oew6+sVp15q}ob3P~B86_>gfM($U zJ6J-F0hCkz*cNF5RsKlg{YVTV2`*?uA$=wA6bc-1#aKE(5!M0|+JiXCr8bZhQw=75 z9v3a#f-f9{HW(Im_e@P=10hi)HxFqIMdYep8x_uN!E(3JeU~S}tb9+cK;rB=BC#ks9ZcvGoHXRQh=W(jlp5Vf38_^ zeJZGSqhQd2#Lfa!u|+9tWnLcNT}}cUDCo#l0w$f8CYg^{C0m$6BbY-IfCD8!DDt7gFz~|2p+Y5q!x@+Z|B&pbcJ3+M zf*M*V9f?KDR=@?s1A(|hJUp4r;waO5H(3;4R}Y=>ZaKWRo$U26DR>i4(kkPY25BF|Mu^O zpsNcst<#z&H~0%DY(n7mm@no;kR6_n2<}ig)EIdJD9}PN+=KFb<>E4~3I1T-2UI{K zCCx0@LN4UOEtuXcP@$sYqvtXzDo{ewnCvMGCNHRg8Z-eURKg5vEXkEZJeDD$2MkOnHAN};hR}EzPHIY%`VK4A-WAe*gxg3{085i@{y^v0fV##&3-~W0 zC$b_}L@A|fAXoEe>0~h101Vq5ALICo5@fm>e99+;P6m1Ojz}=aM_2vK%IIRqzv1d{z zHO2EAyXe|{hiw+A9q$0$;jxXr@gBQP59sqBdju1J4lN4nAuqB*FEm3FgmfOXy2?N= zxCo4pVBgjOj_kw=np?W5o9@hDFk}NgXg~-!i7D%;l~e#D*@7vI!V9Nx#u{-f7cnV} zf=oNCFDngBtL~sBDlilC?Hcnj*TONVVa=AR6Nk!71%ogg17keE&O(4T|3)@PH8=l8 z1q{I%B*&@T!KW4N43Gp4r1P)(YK@v^`3)jy(xN=)Ga$?UO8WMusYR0?)7=Z$t@qX) z_409U>hs(Rl}L2pT_bcu7q(&hZz+Z8V8cK>Py$8s;%Hg&9n8yA2CjG-z*D3Vnp^-W zs{k{ebd;1p2t zwkXWP5F4>j+cX*)H658u%VM7c;KMZ>19US6iDKW*Mu0X)fK}tH2W-F@Tqbke0WnE$ zSc`RFkF`kH09uFSc9=w7TSq>>FElY?K4a?$33LDpu(}5Db?g8qhL9iAZ2)&*NgQ-S zAGU!X__#`E055htWI|O^0%Z5C9k33)Y;^4?S$O__g6`~sF<`I-d}US$tSJ+02ylP} zxCt$oLMVs=i?{e}3pI=ractAJZ6|6GZ*J$ZaE{A(^_f)~1>52Xv>z=At+JXiu# zl+NiyHdMCG>kJtugy#fo{)5_K*KKuE%ocQi2dPf&MvoLL&&xC(w2&6sA-$IaXWRlZ#ZI-~(9k z13y5u&Q3LOAnyctfCdl&1vO;&Wdb?$K((a^6F337=M#F{sCt`3_)^n*!?}s%vsmZz zeJ{AW{L6?L3 zI8y?(jRd+!WE8nOJJZ0JnuMDJ{<6H!``zhN-PyYa=DWVTw>jljyx;#l zv?aQtFZf`?gM+^-Xr-y7vndz#$lwm{ClqEb1cNpxqX`U;l*LiVzfq}s4>lx&aIZQj zq&#Y`JZsmw4;wL$6ElxXLO1-B8$1HeSOOXHd{E1JBeX#iWCjbULB<*VtCND#OBH^V zs*^u?zBNWZ+?+mGxfWBv7ALOQF$Ug-@ygKxMT>BJ)>x`!ifbvZUri}3npEtka80PP zXs3t`B27R?l|ohPnuQN{KX~v!p~3^dejVh?SFc_^eTVt+djNs41PYHKN6tWm4V*f2 zIyuUX z*sWpA?y+3W zq?A|+5v7+*TH%8VX!7NzoObHzrx)Q03MsM3Dyk_`OgZJKQz&642NtSYBMvwqsl=G?~azZQc4GREM1 zY_iHO%WSjGTmVfp(o8e0hU5Cvk2c|Y7*w}IbEEFJ;TY}VPvl-pjtAysd#(i+gyW4m z(5%DH(@#MSRn$>QE!EUhQB74<@ATWRKN-B~#FK$EVZ@L;5LyV=1Q%@Z!HYcccEO+UcjEj#}!esb<=R{rGDwhFE9iBokY4O-K(tcC|wfLl|+; zB2IXsgcf142`R%BoUQxWlcvr4B@<$r30rM-0;Ss+VU%&+!ion!@Zpq4L8Dp8O(Yxy-Z&;Z>~kOB(YjYPFXNeMtSf)8*ITc{8m2wmip9gYxlM=548!_^2O z#Q}(QYk?Z#FeFEWB60N^3NhoL9%%%!Z*hz=8hEu6MoZF@XtI z8chw9K*&PsfKiFm0S*@FgeryRk|j0iNl}_omCh%V#IwN+IN3E!fD(WQBIW4PRtcRl z@FVmX$pmLP%UW76S|!k>2Oe;ZT%bZHA8e`tgejC5eI-WNJSM&BC5dtH0V|$!Rtwg^ zRX#{U6vnjbStY@aCg4mQlnBL7P?3v!IG_TL=}SJYfsADAm9NQ2r#i23jK3m7idDWlmbbn2EhJmon;Q_}A_L(>B>of;N?qZhA$Y)PBqAXR zx9I{|^2or3WEoWL(lT#G4S@$Npj4**l0_~Wp(!Xa3H8om5|luNDZX`9tRAHj-T*>c z-T@41&R2(LJ?kXOu?BNQ;;nGK1vVBoJG>$z7q@WmEo@Yl!Lf7DLu5fl*~;2hHArJ94_f0g)8;0$#fgD&U~mIO2^XT9YJwANK+)Lt z@p`pot(AV8WF;?|$xXJ;)gsCp(Ga(joPb0k_K+)^*1@@^ghX^DaSLN$$O97G?wOs1 z!CR6*1Rt;fHkOJLr^-31B+T3-XhDlc?3otr%~G8W{@`ECnPmx0Sb`!vfzAF38k@IZ z2cltwid$SGBz}RSHIh*aO~V2fwdk~_YZ2iHYdXTW$gnl6VHgkpoD}=dR-UA{U0f|RQI2hPamI|^P)LL#=%_fI%jd=7XnyM31&}EC) zz_cwm4U1T;oaHHZxywntS5zCub{23o$L28phdiJ-9JCf+MVmmK7tdxID|JK4|zl=q7e(P zs-hPy6i*Oi4Vn0a#W~)HHYnl~gzNYk5CQV0ielu)h@upekqcYYg5|Ye`O9&iatZs@ z8dmhM1Ku&>I^ls4m)Jx&fI#aXRFsiAyTQ;~h67$F``0#RdaItUnm~%QO1Q;de{OAq z+i3I$O*mAPk3Q|Oub=(xcfYC1Zd(4+rhV-Kal1k8U?8%U+qsBfL?eV@8}7lU%8c)Z z>ID1_g91H ztY{tD;0^Lg4(#Ag!hr~eAPA;#2^i@LwQmMu0C{dq25f)_VulF{jkR#A2ZT)qu21^L zPm!1){2IypBFY6?0Dnj;kKnKgejrNrsK@|Gpp+mF{qP|nG9vfT1r8->BtcdxqJIie zZ1#^=_8<`e@E+u0LskIZgbHs^@+H#j5?O)-T=FFw5FdU)7D&jcCa@6{!4OE14cK4} zeDWvPfG68v75m^2{wnX!2*+*eEGT-B7M9Y#NWl}z!5lPU1_1^h89>Z6_ODM zg>d)!YOf${(`--EZUGtaAsw=@vE+abys-$taSD~79Gw8OY5;j=U@vC?HI}0apTG$U zt&r$Z*l>(B@UgP?(V!aXp?KprF2x0IEIA1B2MVpC{0Z8wCr<(?36kIiBr-Hbb2P1u zB69=ld>|t-(pH#@Bg;k+6@eJ)VFM)bBr`}QEvO}75+*efACh4fN`Zs~hY}5QVp2%C)r>qF)$GvffC^BDX|GIGEdNCkqOR#^hn4jbm9|$;Tt@!yqYS6O5qex zAr-vxD{Zg-(`*43(n*RoOp5fXELE=dU_ru=VI15*8y(AxpwI}6pa_7V2m&fF0}8VU zY6g(NL22MGmEZ~P@D2}BH70WlT}B_dr!gZ6G6QllUw{V`$VurHB=OBS)AS?ltS~Cv>2tgF&BNc%g=z#-jvx4f)CH`(DTyg}MR0KqTNugBV zlEH?80u&~M0uKQ>O|d6^k~zK9Iib@KDo+OAiqS&h5!itdY|*NK;uE;R2LMtCyrJ}( z$`g2j9lCQ9O0N@#krYlL6=K0X-!s&5fv}`#i_l50W-mWmt`=^=8_a5KnYS~wEkAL zKZu730Eq^i4%&$3HG)G2EVDul@(WWGIF=`ngw?r~t1ekd!66bp*aOTtff^>J|hlARmz77HB~RL7_M+P)oP8C*_s3nlmV& zvkwsA5hwu^E)Sb3p&fh@U<-`nhJjx9#hI1>DAxc7oJ9qA02n|HJXg;YWTDhXO&K#5 z7p~zR>LGUKp)foaA2uu*aA8q_P!@Qh4>Tra_bGV5feKuf3Sw4f1L_Vp6$(6)FOxtC z#3!IiwP%+gpj2a3BgF+q)E)h(wUhugN=s?6*Eur9GL@i0aVs~hhiYE{{-dsTYu)#K z;g>$TR{56T1`whC1O&_OfNT-54(4ew_C`sY6kI`|fkEId9{5D` z_7=?56#kZ7F;ErXwGEVW4b(uSzO-Idu@4wT5()(AcN4^SJq8nkR|<$%W@%t%C$tN?fD4qjFHwVLkzfg+01A4xkh`57xjd=E0q4mj`jTE7`LV`k)~;Mh`e65*##U2MVLA z5C|%iXFZb!fR<)Ub&fZcLVaK#s}5cC_)=Pf*=XPhkk+5}Xg{t;df@R?do@#@<25h} zG$T2sReGg+fMx^AlGkolHsS5^kCV&IlLI nPXq^JHzU^hv?ZMRi{!L^m~VgisF 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 Asuwk9TM>d!NCeG_(K%Cy^2> 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

    5`ym5?55W~F&)J6uA6c^zl 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

    9b$aGdi*|!WTqpq(fwU9Dg0G=0?9a-Eag?ozqT@ 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%0DAvLJXY*;m41-@Qi%` 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

  • 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"xSDL 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
      @>uK_3S? z$%DjLVYoXE?RkCCkDI$P(BS!2)vH%pM{86L0IOv{j6O6_vu2tDy-=SywsZEPQ?Bvr z`!_}^q&tb`Js`0jh|(HyUnfx}!(KfBY_<*(+k%L75X}>avJ6Pl76b!~7F&R%JBA_< z3s~^{wBw^&G@go;-Q-RwN?Z)=5;vW`q9V%xVHvcrd?Gd%w66gaVHz!qWh)AW4~ThM zq|^6Ut5S}$lryVAc)0P_urFoUNs$9~a`$STvY&Q?j6QP-LOU)N+q*!{uQ0k-7Tlen z0)xaN_#60YQxZ>|vRoFt5NfE3L#V=#>UBt}mf916M*VOB=>(A2J)+qJ zT{D#pM!vEx0c&svO(Vf#>mc)3qT=|FnZp$fRah;Oc(eB9KEHa5=Cs9>+F9kA{ci8N z??+(Uv%jFh_%1;OS+Hy_2pa&Rn`&aM*TV8?482vw%Hn^tN2d$uQQ@n^Sap@(3XZ%4 zbYZT;o?|PFdorm}(7Ygfuj`&(Z=U^wj~P`JLMmE#YcCvPhZLK_rM99eJk1i=r+4Kb z`CX8@2iQD)M&u2L`gNIV5kvd6{8_ikUvp631XYY41RE1XQ|+|>vi4-y$uR6RGy#ot zFuLHXC<`QdSz63m${$TTPivGy55^H*#12&5+7lf2535jJx&Knc(0JbGR_D34!}9AY zVWygmrtOl}v0+-Pct6dGfk);ULs1Vxa}ry`)@hw{4!McGAiX*hBszUSJ*&#WbTQP~ z0jeJ4`7n_5;LRFLZA>84AvG*3=CilsS}U7Eo0w@TL1}kM9Vta?sB2!}A*aZCZcfM4 zHOlR-_Sjvu{o8>3dzBH`CS{J2A!mVIr~;{WqEMDjCs>B!@bb90^^8r|MkYAZE1=-}o-) zq>1ayaB#qleQGGPkF|e#jA24992=dc5}rCFG^uaKySx>;Zc8t!yC?;{HVM1QMSTlg zqe;A`lYW=nTAmm?`M&2fWXmb(_Kibvk=J{Vf%rc(-$bfWa&*3zJ>PzPHy=QxX9|pI zi%!R#ug1&Fs_ksXl~_cb4-M@tLRsH{HM(eq>1n<z}Ql)Gto-Hy*=0t^;q_bKEVw^|@v@ zBl7x0hwmYRDy^$5m8n zH|alKQq#7|KIP~YsZ|*!s5yHG%+LHqu11HCxMGhPtrhRN;08eNL= z!7fv^9IOd9#P4+g)(1^554#%M8=&dxn{J-hr`}Xg8KEH>?%&(*tg8h>J?{Hy*hAja zj?qHUUn>pOzi#XSh+5s>wflP9|63F89ny*Lsy08G;-u>sH;=N;RTQ&4~goa&t zDb5JmK6@P+!ZM0UmMUhw4%*amxGfoROX?s1)g=7Bku*KB*Zlj1*wWP=7Pn}IpZ*!TUuT~*1s{@m*uIRIK@|)EP*58G{by=C;)@Y zU#Jvx^j#Y2&6dyS?Zor0N%lAQLUx+cADv(-WuivpccenSXvGL?NWPg(srS*!>7u4R~_71UD=Zxo`PQK23Wemmcx-GkjSmA!jE@uyx&#r9Gc?2 zy5w?%M++R){gLkVWhm)K>Iv+?iOUcRvKwAv2RpHdLZ-s}fO7X=<>z%Z$Jqw*L;G)m z4LHRE{+k-9Y|Th^kvg$)?4$T1Q9>*eGXks89>m^rH9JX@hZ2xqo28ouPs0G*F7tlP zVBFsWR((d&e~I!5Gz<*D#M0!aM`b8-3S%JK|4{fb+Q?g)S_j>dN;mHx+Nb&9)zKO` z)f+>Gu_MxKc`mK~039KbL7?F1!Pk(o0e2T54_x(@L`nVSl1FUM`^F$ZWM?P~LGmCLzS<$6fJx zE30&f%=C;J9L$pLu!tUf0cR`dS8$JmtRf@S(&<*IZg>~=4$>FT9K`k0AIw2)B6C!+ ziK^*CW&w7Y-}_7x<#4Qwc`1A2POxqO#4HjlQ$n;^&)AP0dLeBOMDB)*+Dy9BeG=|C zN)H)KGmLa>2!7%LUu8`bp4U0jd-X4|v*6bqd(y7Un$QHU7-;wMx~hzdm2PI;i`Knl z95K}pX5|>^E~OW84_abzA=`&*E{{3 z7u??uY`hLTDtNQ*{^{SWjfF?WIu8LJui5iUamO6+8_ce}-UCVdw#o4XVX zO&aW12P6FP=8^qmT5^Q2v}NFz;ZM^oezPIB+tIZB0O?A}nM_vP+hS#kzQCn&$MZI7 zN3=xl^hCLS1>DR3iZ!W``cj3Em5@wlm#K?u(R#m9V!Yq>o!#2dS;E|?DGeO4a#(F*Bw}& zdb)QIxqsZ?vChkJqvX#j;y)h5-SSKV=RUfYu_bm*=iG$v7bX7a#98Oe_flb{JL~Kt zH|?L|W8{;S2UW#wb;yoWXlo7`BBIY?WeUmP$}TozFVQc=`))F50=um(;1E!@k7M-a3p zfRA|wqqre3DRxqz8jvMLizq~}7vNcLLM!}qa;b7&RBVN?%BsszOmJufy-bzMayb9F zUBw=~w~UmCbn87(IZx0uP?6_?`yqKMdTmXp1W?>Y?&lsRqd*l5+$=LI;fB{5t9M1B zEx97pG}rDb`?7tr$&YF*e-AJY1`7`46rFq6Z%4>f6N3n;-{CCN{IU@vBih2su*xI-O=;)9!J{4FfgelG58jG|#mhEAuELJLyaFz36 zPF%*9mHNGpor@hE?i@D0_N*k^q-RMaxyoLF2SuGhL)Ep!hH+ltgm9IGgQI1=)?G)v z6E?*Iz>*j3WQ3AHEMBn1r~v}Q;KLT=1_ktSV7H@Ga8x+~%EPzs&$W|yNpLjj7t1F( zs7TINIh&eqLgKk$phzZEZmUE=ce+uyoccx~jSiiiT*7pv6v^CK5=feUk8x)XeVHne zuTH=RgSc#NL4>vAu_Xm}3JP(PBkfciE@z_Rr{A}+ugCxI3UrGh0uB$lGrBo#+eMyIX7pgEH&>IOqGat2~< z@v!G%tsPjM^RUu(gVOVSv6&$~+tq7@n9y2s#WD!)oLSB;SvO+LXa*XUz=m`w^}<%E zYdm|rtWTa-d4m;=uJ9Y3OMu%o?whWAHM}ZmRm%@;s<;E3mg0fw4|*Txo=V<~ElN&c zgM*Po0Zl?C%#RF}hXVq#Xd2uF0LP8POiab{<9i@A(>*XV!{q$9l`bW*06>o2m2E?% zBZFIW-uDB98HKQ5c3V?QIWzmT9~gC^wFw99VtBw;$mt#C}W;QnqRgmqB z#ISQ)(fA3fn9(JPP|Yj{+;qukQD-SK%dn^6gUPp(lQoBanr4YezoGNQ>gztLSDwrfq7a}_I((-Xl_qS=1fkLK(EKMko>k!z zH5{0E1}l#lWG^m+9x;^w8136E6o)({XNZUEZ4IH`a_q#uGw*b3(NLB8AFzw$>{AnX z#GsoUj)jLS3&jMxFo$tv+${Hw`t*nUBZ0Sr3>C^CGLqs9RJ{_hqz;Kh!GVZB#9V_# ze0N!uj+NBYA_6iKo#HYi^PB@qmarp3eOoNSJWh7ZPlEU~rOG(uw2%TEB+g+n6i9=D zK02x{cho+PHTf7`0G+^Ud?y)Xi#5IXYQkx&9xrSq7RHr($PrSq(>}S97}gM3kMOB$ zjmAy+>C*R>)$EXRcMgS#*36BVZlj(usirL2d=h2b@dx3Z8^c~<8-5=1FSxQC=BAf6 zd7h7lFS?i8h^d)dZgC+wA%UMDH01!3b9u?@cg;;qzn# z9@Pq!yHhH_&8;4f=4(U|rM#@Y*7Zj+1FlJX2*X{GY>^l^7K`-B+q)ZB{f+__H~*aF zF&-iJqt&TF+7n^2hb$gB$FS2n8YlJ7RBk?Y3}STslak4b%$%l`ji6g;=rviHv0c3j z4RXyN`QUHUYa7=De|w#536k9>d{g0UVKZ5&X0!0b-}m@$5{g_hzt)MB(LbDR(orvx z#(HD+nRxZg*87KE3BnQsp_*X1fW?o5N9LMc2m{}CiULlBp)`?*{4YXeA7@CF3!rSr zD#h!#JEC)35uu-SJHd~%oVydno;`HrseT8KvHTjq4|BYX)sHFT2+kvwg=w=ZxDDCd zGHp}fTx%u8CGH8&gv1tkGr<;9Jt;_Osz;jjy-@1m2wlcqgbgaL=fgQH1vU*m!CHei zq4kKuogBVaM!2#KQN;;VCrZrff^TfxPUE{n26J**sFFd4hQZk?RR=If)!!3mx>nbO zpNXZ+c&+p|)UR*HDX+xg;yX9|n`F9aOl5X-TGO}qLRZaaI9WTcRzqX~9(bK7(a-W9 z)BfJ6FMOLKtWqqP#t}Zr6l77pr<0MhEYWtmho2c+i=$hB4$JRb^OM1Rw(j0TNf_fL zeXT6WuD$`khkESA8(EIhTPm`j=trW7+l_-Q2j9i7i>s3br`7~b!{j>L#JfS_&S7#+ zyfDlhRWO$YZ?{)hMx((*;Zcqp7(nR}5qe?h9x7s%e1c0rm$4p$LF02T(mCE0vm6Y+ zPq^-_UP2II<58apiuVR>=hlUpz#;gcB5Y9jbG_m+5wpQTuHh6oABC7Kg!+WgGKgz31o>v+X4+&RiZHEWD~)f**Z9Pkul9E4|x19tTxnjBF`7w9)l zfh#h!&GdXr6SWMJRc4_c42oOQGtSeW>ESg5jG9;1c&Gc&~VwGiGmQ-$YctW0rwjWY#Kc#q(z6&2bruMi*@Cg}35tNUd zQcRdSN}2NZb!&!2y4!^|UZUDW?;pLK1WlV*^1SE6`qh62cAuFtL5S;|% z6h~+nKm$bV{Ggomtut&EW(DA9OFcCx;2->@fdtBO5F`ai1mMBjfJ7<_&R?YU(k$x^&C)Gfnn^&`@c=qoI1sb%=l*?<0aUpo#?DP?$|+Asg5~Q?{IMJa z;g@y~D7b+nRLj}80&u~1J0s&ASpZHl+({>ZupE#M0G0xVGN_`eWYAe0*plevP4vZ) z?aiCMOOXY8sBl)JX@Ijis`B`ag2x>lmJ*M{Cf&lWWpzlnmQo^w(JiPADsrpb^Vc+@ z4kx_9F?fiVhb|#+0KyG`&?OckL`tXuC*;@b9h`?tb8zb3T)x?T3lJ3yaE1%bBE>+(h(2 z1($kpO-{is@RrwEfGgOe!~)531kaK~@ys_FI3S%Wilc%UT8C6viIQYPWwIooaomdb zj^ioV%hA0~M>utvQX0*XX%gOhKFFJfo!L1Noq3#MFFb}5xyKTQ($G^l{@EOHg^FAz zBlTz)ttHW6K-e!Ws+x)j?>!xs7WFd%q{TXBMuq4x!F+)>gTRC5;>4ru#EqZ9yjQWB zxA$Me%N>fIX)^W0$EtkW@T)=B#ZzS8wpoSgGE7@vMpF(%HDD)hnS1N^%i2ktB_Cbd z&NMKm-{#sLm`eOwsrHJB0*FWM;T4%P52s;A$CthPuP=OF&I;?-QxCJ(T=LP^+0l{S z0W(8R2JA50z-WzJZ337&2ethC-l?3(P6Np^n6K76H zMA@Z_ZVn_!mEDfh(%AU`eR|rm=Zt)XB=3^Yqdg`WcqmN0w;$x}3+Zmz$gVT!Z&Es2OO^ z+9aw&qpAblkNVY9 z{|{RtP+cM-Q<_JWxYW5mz2P8V?b{bNWBr=uHrlw)5^E`Pp_rtsyzJyxh+9CFBZOj1 zHD5NQwcOY4*E=A037?4{J9qY|Fi)zul4jYO^*TG@q~Pam`dzX}+Q3Cm>`~v{wq#$O zUR|YDS*7+<)rb)}b{KSroO0USeotS{^z2 zi->MAa+)B5wu*X~+*J>pen@7D-95SI&){CU2D7`j_675OfhgW)pCa7Gn_<}pYBVWS zJWsrh*TjOEw?k{JA4)aH1mh#YvWGm&8_(km$MA+n`@C0L&R>W>^GvAt&m)@kSmUzo z5NY5X?&4D%>e8P9&_(a5%%iP;j`E;7t(Tt!n=3r1&%R%iv*)1t155ks^KAX`YZi?) zf%TFBG^h(FLx~D1xD*(DF~6@Lp|4;2NA}@4$A>@eb}0MT-L68|Np&q;J$Z!{1$ym0 zKpyOpX5#Nn8U)|6;&C9F@}-~Jx%tE)_q*%zfpS{MXQ=MOXS9KAA~vXI`jwY+2eEYj z0eW<{O4Q<4n6g~^Aii#C)N}qWqw~o5m#`~%nJwIAKVdBE%v|36fID%mvb1E8i%w)PwQ zOi+`fC6M-SXr@T<%Vwmh9hQp6j{ler47s!3=A7wJzPDn4bz|1Cg3Il)Do&g6C52=5 zhUEWSO}72W^XVS@@sfU;%D+*ffF;c3+lsK%qg)5?*P~5-0qs}+z83deP%^s&Az!Ng zE@~hVa+~+meJfY&IFuC#F&zOdUcOvAbmPOl{A=mz{r%_fR=qfYV%_2(dS0X@MVt<; zd>)*}5#UWo|M`YcTv9p%fekDvDVFBoz)ds1;>~o@uf)u z5)0E#pI#|12=%-!p3l1d?>r|!~p$TJhQ-}|<7ZzeqW za_Ygn1uyK|!uby;B?@tf9!~l#!rS@kn?G%NwK(3++X*rGr8iZ=Ks8t8&64&a98k_Q z4rgZyz@?D$J#o{my5-qA1R!z>jWWvix#UzZVu?{P^=Rygn`sZc8?77lB<6Xi1szt1 z^@x4ZJ%4Y$v&pqeS=#inlrDet3d)WSuDTw0%hRSec3#<_eY(x>TG0J`lWVirL++mX zCuG_&*A@BnlFfP3>#uJoEZjM>Q1Pf}Am#Mj&!q^ss3GMq`4ZHt_Wl{3kTfsHyeoVt z>zBo9-`?;4=c#@e(lAi4Ouk_FbzU3~W(YR93*x@we$rulUtszh%QOg_f0qS2Dx1N0 z!jg(QoGyVpOrCosI;NX}IMy~&VSerqpKYr4;+nQ=!^qPrgTt3dR}w=Wm#MGRKsAeb zkHt0C7p#0l|3gUp{Bb2Ukc1z~7E!RJ&Jl$ zkOZX638e2g<*ID~3C}eeTq*E1jeAM*nt_^(>my*dNTkVDMxlwRXN0(E1F$0zV#|X^ zme`?OBTJnW^CHXKg4AAxSkDQl9kMPr5X4<{Sr)P0*&3?amw#sdLqw6QX<*dFr3*#T zm&2w6V;gKJm*P=O^_n9$-yq}?L|w=)S(P~HukVJKCbDdL73vHriPEuQy=g5DW2ZC|3u)dOf2ilIY20uq3}|E zSJ_ecpJkyP`hIMI@gyl7Y4jv5b=>HI@BU{d>SwSGMlT9nF622k!@u%Fk-21j*~eHv zw-2(-DwJSKSLEG|2f|7BzCU+Qy1(%qcQMpzi!&5z%k9io%=Ew%k%M96s&G)oFYk!( zvcQ(8U5}1=i}x;>dAKW%q@YJBQ-K$S}yp#xOvm;vmxRkfz5K2Y)ntoGJKx>iQjN>M5^bH{M{!-;-!SP?FQG zeG^VJ$Jn#njKsRo_?nLHC#Dev-j<%HJ#*bmjFjC$#^UAPi%vhTpGOpFHx3wu8%3DT zuJ@1J*|tTUTq*PRI{BgU+)vf=zwr;G<*9zY6zd)IEcc=?{gXZ)66aJs3?da2jg*nf zT$M7`3}i32xt0gTA2+3Z1hb9MEbvVMfC!ZgVBHgtFz+OY+M|<)n;yGnT^7ZrazKJI zP&6ZT`JA)u@dn$?ESU=dLvDaN3r$5o!(Uo#TYIxtto>W_Yln6cvrix}jtcn)qP>C| zGvMn&L{TmO`RD2)WB`I6nSy0qN-l`Bq05YDR=#U5&ffD&=!b~sl>C&-D<1Bv+)S^GO)@e8 zfU4cYJDypmyJxp4OWh7o*Xw?2w$KvmT(1(723n!BYPDY2RalRvGVIK21w%> zDX;+L$vwH;8>Mzt&?w@bQ_aLf#sx{lTOlj?qei`tA-b`HH6PZm9sW;fj^*!_lKzW` zc}!3vTKm)$4~AEb_BiVCf<_HPSFT3?-Q#5VI*|$e`G$D-!i1S2xxP7$u$4<@sK7O} zih}GgV^mrJjAJUbtEs6s0p#(stQDjjwFjij1}=7(@N_RZhe;vvCaS>rQKAqDc!OPG zUUh|MqA$PH{F^m()=u~Ho)|}hsAffl9f^D%Oh6XM+gI_WdD(}mW;&uLu1N_I&IhTM z$*?1no+RYC*Uk3<{ai=EuITgAvW39(0jD++RSL{HIOvwnmblTGHM6`|37b|MMYgZd z+AKWf;N+1lCT^>3HUHSH@=B~*j^#Zu)N2~7P|+whfh!R-2`&b)Ph-SXf4k%>$H38= zG%-N}c;Qyr=fpTW^(CEf)_ zmrRcI-)!C#_K!tztf9vO@DoH#tT_~q49j*eXhbuxIrzE~hD|vjU^emzY8?g^?-%94 z%r%Ws@%nVeI~=^$qe$uwH9$aclqw(U@ilo?9{AE*5UhWw)AN0>k`G_o^u;Vb zA=Z8~bnh9fDdi)T8Cb!tt(HO`b~IW*&TYWo*zO-2>Z)(IQ+ut==X$*Vqf?(elJ2}b z?J|eoA|sQ~*tKqBO9KI_$C#JF`Mjgmz}ia>%+Mp75P4LLy_`vkuV-Qs@-^c#K@joG z^g$1S@kzgZp-`(1W~mRxOiY3Y1^|J|9V)(H5dGEG0Y7GtLJixa$T#b5evUhnF9 zId@x{=Ff+&zgpU-6n@p?zklB>qc5U31O&LkYHBpCOAJV3 zMV!*gk*;O=LVjad>hE zcVhpUS&YQoK@si;ZHzIo(;?+!)*;SSu`#mXHJIe5kGaM0yi%-GTD{llN!VGjbDv3~ zJA`u~2W6i0Cd3^R-JzZ%pGb)4^Nu-|X0R$Fl0|K9rXuI4=v`{cL1|m+32QY)ub0jR z;qnUDblDQQ0gzA+7YSkss*XUD32;3uqLhpX2L$$|z;ej&WCBctBBzF?7;xz(BnXDc zp!hRD`VeDWcJPFN5Drua2+7R&NCBXejxj4s=bsUwR;;W6!E8xfwmk_p1Nc9b&iFcm z29dH8*0RTP@M^y@(42GI{?p_vZeDoz&MCxPbCa&A%=V94c4msg~RA$#06y59tvNHj@c| zbT0Zt+A=O8(M}dLk!A`zk$mvHuD!JFc7*H86SC>X-F9FP(*h5#u6MN#Mn?li~zE1eakSz<8g2%B&M21Y~_16LNtG)uKUN&M}4;G~EbL zVOAEc<+NKA2uThNDG`B%qoqM9Yznin4BU4A?t|IZK>$q74)h95jw-rRcbqNLR- zwRV+)`ba4ML@pP%5A1lK7qwGwsQnX@TL_2xPlx(O};p1Xj z`Mn>cJ<~B+V#G(wFNoa!(9@Xb7Sa& zl;&W!n?K`kZnFjUPf1r15T!WOXLNoX*vUSxHpvYoD17ogaFP;)ntNQ!^W(Lo#ka)B zmamaf%M(|@6?I+k6Gl`|B^t4f z6D#Kk>??s-P$9JwLaGFUJQviVRnIpxwFp*qyD^M#5Y^mkd2QGDLtN2LNC-vqa;h;u z={Rz#T9FzI?iO&~Z0b}!&~UQEyg_2TBtxbNc@=?CkU&0U33q(TP~UO4`;B{DBJw!3 zV3;6Gvl1o-xwEHxdm@pawfyBu`(;6P_{ioRt$_>f178hcQCwI$x|XMfS|zkVYFgr7 zw+LFHnzc`s9lX=_rDcAgHdVH>KDKLBA61G&T*Sd){j$@%UTUW733g+}B_pUK$tG|4 zXo=xIS1!bC0#McjFPj#K=|eM`P=FOYoC8~);8S2lBGFJAD-fRxt%!Tzc)rJF0c7x@ z&_lS0Qb{pFXJR=;{h$YWa-fHk70+p!u9OBvjYH%GVAiB}Z>qaQYOkM(NZ+K>znA`LLnkbxVxidG@T(7?>_ z!Nnpj>k6Y3ghSF&4Wlpyj#IfejKewX7G>ZDntKT^C=TP$u(7k9+nJr^5C91~4yVh+ z0RRc9%dl>`y4mTuWLmLmS`MY#mXL4>f#3(A;ZUtXZT_(_#yjS*vt}2;D^ZKuNl7D_ zIdB6M;Eo)XpB4bK!*LJx5RF1}2m<;I+}pG66QL3T0ussrY6b)67??x|j*UF4=Qsh( z1HbO58@-_e_e*ERkpx|fq8|qW{=1nLBoYxK3=u4RFQgI46s^ejw!-u+a{CJbV7DJp z!d#^+9voF@^Lw;R!n9x^^mPo&pbWp{Ku`L@uv8Gza1GcXEu+u{Hmt+ZEX~v06>^}t zgir~bTe?(C#coQvOWedx%*0Pzx(JJ~syhw^+ooCk&64*BmLLdzpa*uK0D{U!4d}av zn#RI=G?^S7N<$pi0R+lh0T+;;o)92I5UgTA{s==826BlA*7%m)+p{+i10^7#CU62M zAOkfJgpC}SNC=KWXnF}(0}~(tb0o{rW3?Cd-EyBya{1IMd49XzP(KpI3A`B8VkfROwOt6*MI%jb}bI4 z`_A#a2X+v~zf;Bx=tg!2y!9lPF0r1hH`ga>i48lmyuE1!oWdhHwaD00gAk zv#0%LFYp2~5CAve+BX1%A`OJ$7~AXq8<;g90ilu7%TrqyASeys1Hn2RzNiE=-N_yh z0w0h84Im&~pband5OWI*n-%~*%@OMr)NM0qJYh^|^9!(q!6a*xjs|gIk(4!I=4AEc{)u0V)aNqi^=!>qUoUjR+pb4WO>5?7}m2Tf>6%^%lrRZ=jo^E|;G=Hf2kr=6><4xr8i}3Z2vrxrn@1pS9g+eaNfQ7_fZ|9{ z1S-BRT;K(2KnI1ucrkw3A~oYT-r6?a+BYBpxA1$Z838x|+ctm$K#&9AC;=T~c2c0LQL@cxEW3$?KDwNMKoQ4=_V=w;357mx9dxCx!W@tqI~9}n`P zAo8YQ3Zx(klaBHzuL+dE@|fWAmv9N4?&+GY;G*u%p|01CUE>F4K>M1df^?Ta&aI-~eK~4YibrblVF7 z@aM48zUM91&c!8*dGfeT+jtx;00HJ1zC^#4QtL_qa4xff+12Zqql zLJ&X2PU92s380V)st^mau&p3*UqMHdIKsur8oGyt)tO=qc+mGfA!VN0K`wdLz6F}TBuNn@jh zO8~t7dG+q)+t=@3z<~u1CS2I?VZ@0QFJ|1>@ngu5B~PYY+45z=Bm!*U+_^)C5hFy1 z5FOey3Dl`mgJRvBH_h{FH&Co5FhD%Q0GC0%o;j|2%#||#J-Rm`EN}4^a)g| zR8)aQmRg7zW*BG^Ot2t<1}ey!32tCuxd$9jXrYE0n5c*&E(!pnjXL@$q>(_-;G`f_ zVrj))c)_KY0Db{Rm|=`Di>Cl&(Qz$eiZP~`0Olf!sHB2%i$@!iVF{RaWZQV~>n7+K8_ZG>Etlzx+P&q(9gKge8_*4ot9^WKbc6 z6jQVr$U$g~S)jS)veoth2Baeb35}ExccUIW0!bv2G@u{{AXHotnHGDISH>A_%t^;s zVu1ygTW)Dfm@NYico?K=5@x2EY`SU1ADevg$D5eia+XzA;i;^g&?06nj{ccy3NAAD zII~WYOE&prlv7rDWtK_46Hl1?#M93J2=&uXLk~?9(Et$5`RAV*CC$;(ARU2(4Kz@C z=?t27+UZR%@HEup9*AI%J@l{x4mcF>dVw9H+hJ@|d6Q<4z~f@`%6KwIa$J;I`Kl}Mrs2S(&zqyW^# z0SF&fS`n|9WRg+gd-L6QUw>)pQQ#mCJTQQReR)!;g_kVGDchm+5#ouDx!9~@ek^8V zkDa0=04d4b<@dH13tNrxq|@wjCtmp%fC5%{y>2Sx@PrrW?y~t zKO4U@&Xj&SgQ%tMbpNT7^Z$PbFvmFyPypBP0Ej{qLJ9T>LJoA0gZ)f^KcC2(fRKeC zXb9vV|9}J)zyJw$Y{L#@u){X2!MF)&YdOt{To1klu8Umcat^S-xk{w28|1)UEQ(i* zWTcfW9YYuS(igv4M-zbwOm@RS7%&2Wl%OnWExiL+F*0VwW#nWQ!~=>kkS8TDevBBJ zfL`{@ct$j)QH^V4BVb6-0ho2KGkf9_UN*3qJML+Gd;DJf@N&M-gb#dwYM-Irr@r^a z4~}{2%+i-&#pu$LgmDaF6mLt+SVj=LSiBz%gGyZqV_1suye+g* zpZnxzKmGa7$-Gf~G2;v)H?x_gCGD8>vm^Z+%9(@4aeR0gpCT zb-7Cy`VyE-fWjBb5CLQMsYG{VrY4f1B$ntR0K5K>SB#$YE?wv%7ezFp?P$~^kS&pR zz6gNro`e@08ABIOX-X|lmqaVFQyFH-o$;*5lQ32+EYH&dKn;6X#3oj;W+cJRY<4q( zb_S0QJ!VK7skDb?R5!PJfLKb1Eg)V*}jBRe| z80^d^-5rv7k+EnFE^kOaFVAqmfX_E?%N^0N*-=w=tH z(9UU~a|~r@LqED%J?Y7_6@~0(`gBqE8ET+-Vy!Axk+%rsN60V*g(w1a3?WRGQV7w~; zV%66xUg56*%m{;UfrfnLNna;9$rrl7S1kA|O#p-JbpvKbPFAE1W;7#U!UJqrcp}(Y zY=Q?7zHp~K{b^8JIKvz!b*V|cvk&yFW;IjfjQI#-7@zo#lf`U`l{Q&eYc?+v^Q_YCx(R z)@}}i5CLtl8NV=zrg_0SR#@0M0NJF`vIcgbn#@F+GXln-ZGnq;hs72$@r9xnEtS2p zL>rK9bWQ@$lLlXD7Ry+Mra2vIjAvZq8_(XTP5p6@b9lpe>F|fsm$T58PmnhrC}-mc z(O5UKe)S9K(rit?W8%7?5Y@Q`Kp`Mo>`MYbU|<87oug+fC>qar263~&iBF`$7O2eN zw4lL??ZND_P1{tbE`R|I1d`<0tw00V6#-oxx<*XD4wO z(jb_ir|Co|g%#kh2#YNK?hco)kjaWbQ8>eokwu6{eBu;W1{w0nam;64^P7*;GC~f5 zv439lA}2knO+P3@woi~WTfO|cx5r#>7NIr|X^QWt;+kW?6QWQBz+C}~2m~Pr5a@(| zc<*dt$RZS+NV_qR@r>n1-4-;$wu6W<0vYQO_6o)9p9H1h4wU`a5wO=RbR^ccw>$1x zCA2K)`4n9Q1sVbC5s{EG&3!+q-?gyCe))TN#3K`XIR=&pfQ4HI0@ES}6N|2xyk<~< zyWl(toInb!z{KbTi`u9|F_hCAz0mW(4FkDE(HWCFIg|@6Jz6a|>n)(R<3@E+| zN`+8RsZI!hyD|Qawq2(&;x>_b1CKnNfXud{$i(v;JXtyG%i8N#i0%1b~2?~2b zF9qxg!~WwDMSDCw{6ln1M|J$PYhj@Pz!q%*AONx?O9}u%B*aJxfDF*br?IsR5UCb) zD4a1p(2GQal*CE=0G)Xs5vTx8=!9VrmQb7x3No@--~{L5h?D|FJ}5p{IJ_h?h+$xb znv*q`)1yE6j1LHb5cq%!K#A^3I~_ScvBCwn3$#G<7`plivyckmF^0W^#$W&jYHYXL zd7?yvi>KI;xEO{2kPE92B6pGnRqzRfF{`AIi)T}SE?7se{7SI=r(gLM;R6D^XqO$x zfw0j5wroqce4yuOM;3y|Y>~&~2!PC?N4*RHuZtQ)v@96A84gU8kPAVO3&9W20EY}k z{@`fLPQVRR$b|?n0wkzRBhUgi-~^Q7gr9?jSX35+Acg=K0htjom^mLoGNjaGNtZ;4 zB7g&A&=FN=GkvSZ{0oMo2nKRmi^bz2voH{7ltw4{p`@UZa8k6L=!!9c$^j(6Hamuy zv_f6LioYw8UAt=js`GFru zOScSwx3o_o%Yj>RM;3}lyVOen?aNI$L|c3)!6e8IaG=fPgiLDChpfm{;DjN_$jUqd zBH#m*D!x?kOas}oT4)6kK((Gplo8!UkPCqgZ~&rvO_|gxT__&>8n|Q3O>FG`kpO7U zjIj~mB#I}p&S03YjX}<*Fc|x)5oCZ8xk^U&o5`^91$H||q#zSc;DPU~QY*bul3CCD zP*3|PPc7Y2E*(!~!;3Ec(l8xMAV^a+1p*z~0sDMQx6IG|oXh^KOL?RK0IdMLz(+$o z#0Ibr9e{ua9aP}pL;#sgUz(gFD1tqRfDEOeRN$LFBL)x+fl@Qfg8Vp3Ej5!c%K(6b zWWcXnc+s06w6^$#JVT0UIEtq{kS)Q{oPdhiA&LV*3Lf2(w0H}U`HEO1Qlu1y`wJ`R z6vp$LiI*@&89_=i2?Z*}QfGZuXtj(YFjHhhPw_m{Ej3f|{8IA7)@%OlRx;(%^E6Lu z9Z&cSfHW1dH-*zU6*4-dO8_dp2*}7pErKv}R9AdVRG6t+h=ouf zfe`(^gCq%-v{Vo1RJ?#q^lLMlm<9f;h2BxsCz74H_z~fGI34MVElH3e;ZdTv38l1! zxiUB+_0eF}g`T*W{-VxkLRLZZ7-o%Do!wcUJq#Wo6}F5^9pF}P{S|S|)-tV+YAsi8 zHP3BrTBmK=aMjYHUC$s;(*Tgq{D4!Gpc`;=)Ow{z|6l;htjqxLB{D#%dwonJQ-xFz z1y8_7L<9-Wz!{wZfre$t4#u!4VXNCIPX3NPp53WKz#3TvS&)-W zFfZz_TqwA-qMf0166>6%x!MV_aKAa@++5&=tMrnl$l0DvUDaJ(ZV194l&Mr0ptzjf z*(HP7WmnvFOCO+GsU=h1MOvm!Pv0$5sfAiF-PSN2(**!qfDPD)8uHkfl~XT9qN;(jj5};>Jg`W zTxcMQC7E1X7}cgEnCr~k!zId@umv!JKmXzdUEl@sLKwQD1=L+#3a(&h)drl1RdS3A zg8^3k(_9Z$h5iVDPmD-bWJSC2giTlj2x#FJR)Fku{$UwzVFu6v`MhBq&S4xTy5j9p z_4L-NUC%Qu+OKV1d}T#G_yHo&f-VS;A5efyGGYd80G1N6+-1xBpi9Vs4j=GTB7n`n z%`ch&uqis+e0vI-IFMcKn5JyXYB{g|h0d_L3A88@X$Z8W5Hw#1ld$lT{%Wg1%LQC$ z3%sDKS(so8PGm&}%XB-2Aesd~_G2`jiME=iUoh6Ibc-;V$uPOfezRm?kR5~Dro;o8 zS?Gj8P32S$fCi0#8GdCKcI6gc0O1q9_pD`H7Cs@+<>3|LSS z0@kw%KypNoHmnxsONQdf2~rh`q#%lD3;=0NiX)MdHH75p^o3r?1uzMd2u9>ZUTB8q z!$!`Mn60ZxrcO&n)xUF+wpxoFL1WsfnFRnF;5k^r6-W}gOIK4?^cU4Z-8folO2!M=)gI^G2T=18FIT-jOKrLd6=|c)N7SaNN27?Qdg@M%-8Iow6 z25O*&0HB6`R*DFIg@aaLeLHA`R-XP;Sb&B;Y{ZtpM%E(JogzS{=!(8%w>sc2L1>Jn zi9oApU^pJ0^vy0Jr$Sa9DPf*3!LM)*o=Z^Vf;$e%7 zJx&90UtO*3zVgkMsOxCFYxLghr9f%B0~5nT7?&Pr1eOwC@Y}?`Z~Vr%#dhQ_nP`Hp z=<<^6ewzvYJLt#G?8rWnhcgQ~bYw2F!+NT#mDUAZ2;;GePFc{4&OK;jy=bI(A}6}! zd9&=Me98{B?E<_iny%GSu>OQYK!iiMgWfLGiKIx^m8k%bsqJk{9&gM5=yBkXWrdL4 ztXVbv;~_>!3zO8YXHBjHBT?2+*{3)(r-;52W%*6URbr}d_V_7?2N zKIqY&1!1u7{BCnMpD=9*qU`2qeTxx!x$|ktIIjpJfp$@OVc>Uv!>X9h0`Kt1j_r!xW6SPf*}={zLWX4cgcAsW6KI7Ar~y)+ z0=yV?7)SvWICWK?02x4m6Zm+LzlDhocmn6}b+=^VnFVE7hP^TdjsYW!RapwJ@bd$T z0zXyFMG6DnV=I51EY}JDnx=dn`lLVx&K_}-uZ3|`=RtFeD=CYv7zQ@?cB-%XGy->% z=08Bji`uNlXfk)|Ja>z(Xz_X`KySa8#TYKqs;3x6L=Pi%ZnLm*ce!_PHiL42r*u%> z^FtqFgZD=M=R<~7zzY^&ffRUw7?=Snp!fioco%2^7=VEonEc3xffu;^$1i-mP=OOr zcgUs}Nk?Np5A+~v@UwV%Ffu%`%7p;%^%u40e}__{6mf*^&=X%6dZuH7K11uIk%ch} zb$;xttZYmMhU7F0T9A6HUw-Dl9&mSc&j;i?$3i?m_qIY-A8L2A537e0#|(ETA>zWB zth5F*Ke^W`n3ywRbu{2V^i$P)OU^S{7yTYB7$~_>mPiH5&-@h#02g=xfPgV&Ai*gy zUcg8Q;{`((E?Tr;!D2;#iUCrX_~mP3ua3Wd0o&-ymaSSFfqmqqOXaMVvW~%oS!-r3 zS~mV^)oQ6rSFWD9WW9{3s}@OLAVH%1xUpm{V#A&eD`w0XGGxh;O%>*=7q5@Nf`NrP z%;K?%vv7(`OSGs_kh*3CIHv4aF=Cx8;?1jfFW;HU^uKekwt(P1qaShxRBus zhY%;Opco+jiWDbqag1*Cq^^yuU+=P0PAwsKj4ZzWX45RX1*jWL#|`CKTi6lT+5Swz z1OU}kR9%IPF~tm%-$&a$MN9xv#dP2-CT*pZFKd}})Gu!Z7n4(#;h3Y2JM!40k3Rw# zq>w`r$rolctz}DSOWqRNYo(dS5ibEWM;vUiVaXG1s@OIQZo26f0BwcU}!KB*b2O?ny)+q4cew!hNGb z>7p;grF5m1w+R(MmuA`&fO0E=nH*88eS|8NA~7Y*cESill~vk!Xbdq`{u0($nXw7e zft-P6X>+jcWLr$LL{p@)%QD-nv(G{st+dN(gJhD>h1TRP+j7fQXux!Y{>x6b^w-vm zD`6SnF1gg^l9#gRatxSYjtOe0v;^fQg&(;(6>`Re1T1kKJ*iZ{G@|0u3a^42UYUsG#scS`kI@vEYIUO}=KDMpXXNRZ3aT#;I^S^=9vax}6)Z zP)iL=CrEZ)ryZYGCF5acEE=U#K7@-?nOji zeDgUf@(L2A;7XIBnd|aLf3sUSQ1kL;^G^Fthny_TDGc3cAXT@bjJfiu4Xqy%LsQbh z2r~??O__K!i&QRIwa+cb_7j0Lb6vLl^V46y{rBVVSG7svVoTg^1F&05!W&7%B(PtI zig-VXMe>e^IK(ZdbB=q^bc9hskvt7W#gJTD^rX2c*~vOF(vx&1AOjSffExes$3Onj zk55z#AvLJM#$wm8_SEinklNv+c;`FdUCL^#(FK-zVz_r9ZgH}pMF5!ilI4L!7;VZ^ z=H~Vs1R}{?BdUrviWUI#nFKrF`{Ht#21W@h#$D9(*zdf>cz62X~7@IkPeB&=RENvA!nk|*I?NT!y) zqFC!{q6rW%J~4p_^ur(hSY;|%_>a-SAO^6r;d&Mo5l6`N1!DCrAK7ULM2JWcwn^&dKQCjeFH zW=(1_NvN1HGs5tu+T0czyQ!0i>oV#aW%15>!ZogPohw}-lMGzsLXi99C%4$ft$*fI zkgJ3aHvDVX+11k^>W2`1>3P-0p*;=g1k7>(d%cg`S zUT`84^tgvT>`@PT)WaSvU1cU{C{tR_?ji8WY3_E3JD!&86WfAY0BVC+g*Mih4}|1Q zg40wCjdeK}_3UZ7HPV@6DnQ-o&WAb&{@SH!W}_#f2_V}hNT48;h{<)}*6Qls_rf>6 z?!7Bd^vYL%!lEL3#YHRvDoA$i^HbJ&V=k~1fSx$^a1brmMyyqlVoX;Um=)`0Oybpz zP#3i2^eX`GM%pW-3l-d;2R-274tU4|wz8!y4QF~ooA!2>xy+qJT9ATP1k!MxI__c} zsa(V%DJ~byEUdga$!Jd27H+$4jMTb|?QZoL-p$Oem{w#dFHoO+1uP$7v7+>@H>q!x zFPY11<}=%qkAYkBUfb;EHRn@BaOqMlfZ~%}^cc^MU9fJbHWG=}qApJ}k@z%o(HCtL zx*YVyBg+~BWgJ;sc4SwjNM&>Bc9DNJC(PW*n>5k>@M2oO`HNrsz@IC{uPr)8m7JzeL zPsWVqYhydx+UC(+@fr*Me%sCYZS$G~2RB*RLe8He3SJLf#GcG1sfkmt-a7Kp7d=wL z<8(@iCduf|au994UUC6h_M}O3qZ{7vhC4{y+7+*o3^0wI>>Bcr-^z!#JH#b$Qy^Si zsM||;eYfGj6xqEo<&jQv3aq@^*jG{+CE#dFf+vaY9N^H^48F@5bJ50Kb07xC zB*GDnZ?wZ6D^2Ap`(DEr>vr&j=eUe{ngUPUqD!(M>^>VGSq1N;C!=9LNh@DIfWuse zrH$t70Lrij z0pIZLQy|@$BP|#&ERX5xZ@wrV^(VZ zKT`|-MDq-2&?}4<=y{ceafZ`yPumS# zKfS^&D2X<{Mi35RIIP2JjbCfw!1?9YE%jnbYMd|X&M+F5Dx4lBYT~)%6&QYENiZa5 zc#q~?Uq5NzYlIM+|?lh zpKYuH?wRGBiOC((#?pT}hsW*SWpY_MA;q}_7T*4x381CT zXQ-l2aYY~nl(!6J=b#A)^2W*SOXl#Av;hU-5Y8<0XYZk2Wc5ufVC8R;Xo;F=V0dNT z*yEhJL~RaMiyoDj=-#u%&2yeyJ068@-ez?U6m8IDVTn*EXw=1-_oTf8PEs_1H3=3qVG?giBJG+-=X$cZ}Yqe3b& ztmRkAnc?6eZIBynte%VdCniFt%dE+=`2-&YQvV>x^F&QKB}o|mWd2cHCjj+AHnJdb z4Hg9oCX{BvB~*eWctfV47;M!;JY*>il;nB@fMee0PDx=eQlSgD0xT3NRrZ8NAcbyH z=eYp|N!SgmDrf=ulia`t;OI@Jup!VC2s#E%pRvl_JS$1mOFDLFp)#YmD1|Nb7o_5A zzWOFIyaGU_n{e_*F#=?N=GWpO;^43u1nw6fwj-LRssE(lw-FcIyr^oH%UUpB82Xfw zBe|&W_CH7T&R*4C@KhO1KC~ zNZn1s2{auk@AZ#oR73y)PBHbzoYW;vyh~Uv?$Ty0CHBt}*@Qaw=huP|-oV1xn(gr- z@9d%N(Mp>USwsVQN@1mC+y;(i((Rh&6Sim(-&_jB5^at4s0&ujx_0Jh#wynKB``&- z2$qZX^};TU0!PkbIM^M^e#0bW!VSa}eb#5@>ZeZrb?z_fjtk(}s4Cw_QHlRNVCxnf zXoO}9!YBwKCKQ4p9D)_xzzo$u0Nhpp?Bd6? z@#li6&SD(y$T1hE&$`Z^pfa+BVVG7VAGm=au$-@x0F>YyGJ>26VOe4;mx&^Za4N(` zjfNs6SF$A|WF@-7;H+aV)bUS+qKTC9LqoJ&p)KCrc?jgkknPgE2N_?-y2GFl1+Y_xfRz0r-ca*GFRN@10ph+Ow>*g*YIU@CP+a5WQ-Zl zP#RO*meNkmYVJ)*p-$Z_eGKC*6#gIxeKII#bSu~8G*aVE7^(=Ggb6bVxZxurH<8h% zqd*HZke10K%f>(%bXv1b0a2phAhZN)4spFg4M+4|^EDyz69aRj1YPx9!|PrlY$~uG zo>fH3Op~95Em6SjB}#7?;u|NSsYuvOmt`@$T+VYe3AVfj3d-#v*K-r$#2fYWG4?@F z3-uJB0a3%$EN!VRA?yDF@Umvye8}-F5Ya;GE(&8c(x$1Jk{ci^i2%Kg+#0gI1TQ0flXrRBk1qUmER>zG-2`yItvdD> zEFkuQHQuY?0%M~F5Fsdm{?fwmW#>P-;BttBR>VplGb8mT57JBxI`M)`_7`1~HX`2y z2=?+KQ*r>bPHRtr6jbvWt1-t^gvY!`H*f9~KDAEWM^%dSl8gpm4pu9tt%BQ0KUQMU z{f_{78&obL3^q3-$5G)L~^y=|?uL=O#q(_V3^H5b|6O6Yhd4!*Z zX(tIjqxEVRL~EOIY_D;k1Rf9REJ_w$R2N;7x?&%7aBy=*EiXrR!vb8N;Ngn(Z2m@d z2Y@TI!jHQG3^E@6ya5G1)50o<`gQ*mT?fD+ZzwY!IAJkbmD~EQLyIo_C0~sePIUS! z{5ML+0wuSZ2(Rsxl=;HscU+d;i)UxB11_9YM0Q|E5aHgN5p54<3(B;(g9{E_FE^+} z4JA4^EbKw+oX3XS02(tUQYZCNzp=7*E=91w;rXn0-!}(u%OV5#yc=pavDCTPdK?N{OJQkfGJZ14kS2GiVYewV#I*)@ZpOWE?l%|!GgsKjT!@V+}P3M zMvW~_xN@~hR?1kpaN)}JvL!B9Ghw}&`O20pU%mqP${DNXE0aTsx_b30fX!P0Y~6wt zOO-2FMPJbpO7*BMn>J&ugsSRlE0Z>H_3Fh7t*%-rRkd}is%ux8Q+a~4dlzqBy?gog z_4^laV8Me47dCttabm@b88>$P7;PYWs;B@6 zeC3v_ikoVvs;r_av!G_`N|v^U63eK|Y%zG_u?YN`Dh8biKZ#?qMs|cg?R$%WVJ~>(;g-=|W zZ$8sr+Hb(DeoAGRMs<1VrLI`og%nJ}>871`=9%Z6cGzhLRCYw=W|vg{Ol7b^1zm~I zHk+PuOI4#jTP^@y)S5*lpsIs~#JOhb#l~QT9hTT)jXf6GWQEnmN#p`Rjz1sYT7_D; z-~th-URa8$!`F^$$tjxnb22AiY7s`5U#hg#KU#u{l_(}Lo9kK3e)&n-s9Y)Ysx#3v z(3M@-?2cfAasaO(hsG<9qKh)pbI(8br=4}y5tSWx-jQdXdg`HvXL{m^r=3mZS=r`yn3Yv2%xs(RDY;Ztl*pEB znT2Y&W*Q0>Rd@v|C}5TS8tkye9-Hj4&8`eV9d+bt%xS4zr7QkiX-TO_Sd8SQ$fbOp zEtXX-ds4UEe9^_MoII;8O;==Vbu8p^A~BW)Z#wWns`%JWpt}ZgWCDZ}u2Uk4&dYP+ z_WtCv1sT?0qYXFQkOTHOWS4`E+Uo!rkCOwqgZJC*_tygWaVcU=1h7w%SCoUan38d~56Pj?TCbg*vE|`*&!2KpCxL_aR5~roB z@F;1WG0j^#sHI!*K?<1D+!P>j35A4*P7q-jo*o7$gFzc zm;@y*5ePuMF%WKiqsi((hb+e7h-^^99@VfqJ?xyq?=n7s}lTXvcRloi{ z5|WXWSLyaRh`Nj0guLu3-&(+~OOINKrR9^bN109UboQv69izc6FG9C`6$N zQJ?}yZ-dvM<}xo{R1&5!mFY}rYCm0k$(EYQiAsLdmTI{rS8*wlOCabg1u@A#hTBa5 zOqB{qd8I`5SqY?afus&KY8ROZs5sQoRj+2nJUUBeuPf2%-{~f(Je75s#kn ztg=6Y2lSdJvjB7hwAK@?89^J`gL3Tt4=3X&@93b#*1Z!Bc!a|h>9Edt!j7J`-DvIF zT07Zg;uKAF>PwoM3%k*;rpZI3t!o@<7YmL zM*!Zj?s?#>dz97LJOm80=9PAb;GnT${qVbN`ymkVl?1rIQSdX?>>cp<@Ai1M@E`wJ zXaa6oJLnN-i(ee$8UDv#aIxC)Mj-Dx)rtnpx`)2`$`eo}8091b(jRh5~ z8qq1TH_kDPUDl^F36_^ephHvbbhF;53ec66!9QLu7{p@E%<8aF?X72E+eP_lFCkJAzM1(LE+euO5XVi(&7M>Nc zi1#cC&!KGy{y?-T3jH|H0T7h{NAEwy^dvhERO<);%|yj?cI2D#m0u$z*uT$8WFG#D z_VODc8xAtd40@z?$34hS1+r@gB&Oi(bc_=GU;=Dl?b@!xjIB;!00kys0wN%`wn)X= zX~FPlp6JQnHt=_#EDr`R=x~SIzU~kHAP^!8+^h#2B;oQl&jmXV4`%I&a;@6_&IWBT zck&<)^x*S!&<^Mc;QVQy#7v+th3SZI4dQr=)jUO1 z3Mw2f0TAqnom^*&+G(PaNQrI@4IPY+`iPHSYm3fsk5)&C-eBlPFC5lypZqEQ_RydF zY4ZU7LDtsEq9zLZVn=q4h=`164(#BuBJ2KYrXB2|3ZwuGaKHv^;0AaNFYZAeD2o#K zAP1-^0Tr;=-Yy1E;1f{68z$kO(5ViPh=?N04AO87UWX36P7p4kpDw}uhEUAJY{pX1 zzTP40zJV1tFOFm_4p@i5jA(Y;s`)Z-@18NYfbMr{EBf|m%3Nm-`~b3iQOv*rQ$8(w zSVrQijtbLJ9oJC`t?=QJkm*+K$JikpFyRld2zFYm)*vbX%n+jZC;+Ie49vg`)L@?K z0Q9)5%UqBlT`&M#uo5UCp=K=rTrBw*Obn&Z0vD_q@s9cY4a%(1cQ){L@L-GrVEg_i zixQqd2W|iXYoG>fpb7{ABpTr!e5@YWAP8{a23!&*+0L4ZO$KCO0(Rl*&aa1JZ3huA zpE6GmjY-TDkDzLX)HrRwmgnKHaN*%2@UQ!v}CXEvqYKyCFp1so{h3!QHfKkuVP zhRgDa7ke=x)h_@LtKc?Mus|#82+W`sGZ5;)wOEG&1E8H`4*FITk0>hd?kEldV59ub zo=PzAPNsM22@o=`4|IShU-Bnupa#&uAReKzCQAo$fG1rNIB5VVhY~uWv;Gs}>;1qI zog@>ozO5T{OzI>~^_DJET1M)COyb~8c^Ix|fQ-{TZQ`1zuoP|40KsF1i2CYM_@+-I zxrhzd@Ga5GqEJ%|`w^mw$ne50@xEa&6I4MLl#+ht9RffLJ8Or+K@u$QGS@FE?GPML z(y&sn^jZzcV#ay4(6mO&8^R5=J}a~!kKf`Tq6ktO8|s~Kiw**y8tote@*qcbP}`u) z?|5`~a5Lyca`5T^N8z9gfZ#U+04CRt2A~rYZy*zRXpMwGIeYRFfzwH&Gdcr60{GzX zcvJ^Z#z^g8WWX%GF2!a7>}Jd@dP1%IbPUKk?ZXK{=A8$nk%S3so5(424+_DYzlOSP~_*`eU;;DA*piDnc zG93*MKoVqdr*{w%5b_{7f3r!QQ%<6@1|*;lPDT%c;7XbE607yDxO6D%4q26T2Lk{P zcyvfP$^+t#5Iu@b<%GwE2S-8gMiS{2?3)5ywgd%CmK0<3x{G@vFSS3PE(9Lg-` zAP)de^eB~54J+IPi~Gp0pg`+EHI-vK)?;m?0yi=djmQrE0N|zH{#dTb{bOt0Kx9Ev%r|}Te3N{VzUFFLgwlYFN^NeODG53@l z6EpQ%W=~1&=}3({lMMYNGM(%Q`vgJ0CeK543^AL|+@g*>-xQ5JQ(iw-awnH^C!^+S zt5|D?t?J+e!@=lsj0uS>z&dTmRJAIPZeKAAV7&*`==I^gC-tajF$KX6j;Jh|k)B3S z?DQ!^1!^-C(6R!m~}!^BvBwu zYJ(sNk^l*)w`;E#d#@E+b$|@G_lck=F14|Wq;U>htevK4F0D~iCxM{s4Q~Hb-|QEE zJMRatj04+sVUO<(ov59J_MP@F4<1Xt!2T`kQ1xYUtSYlI0Pf*|16hy<`O+NCWCkw) zf^HGB&vU!;ZXr&;=7H1x>#`t@lFJRi^ox3UND}V%nB?dWBut%kR8xQ4$M2er8r?8D zq`TBn(kWfitpcKwI=Z{lfpiW81SCd?lsJ%3FaT)`TCDvZo^zf*o^$rc{@pqEe(&Aq z{dvD$CkML}v=k5j*xwFuP~0a;?8zUjJD+hmc)dzX<9cw;y@;cFgjFg2DV%5v_aeeW zaFmzm-R=Tm2mtEpOipA)bh=RXyHHK7@$icS8y)4~;AEql7YUgu^}82qL=FWh^zYkj zi-E}*ZB;l$+XkuR3OdEJ)(3Vc0fn?Q3#_`=1C{id)(@Gl9-Mgt0nwM5R>X?C|Ez9d z@>8QA)P!{o zf`TW1M6E8UTfP3tctE*`r<%YNLU8sGVM*~P@QF*ZD6S|SOOa4ge_0#3he0H%0&$lM z`dG@&HNQzbCe^fCe7~yp9ksGSTIj<;mm;}?pOf#fB{jvEtw3=|aHdx_bN)oRa>vq4 z@GoYW)lm8BfB3DxE-_(s&~F!)az^Q)opo>t9#KkQu-plJ_O#WfyFZ&Ao^rJRTvK$I z{t_CVvqu}Qn?0HZzg?$?$b3kpk|wE|mu+=eqF|)3V%t@c*6-ROJ{_T&Zmf0cnV_^W z`)z&0HSx7R`hfxvP(qp4V-Imj^2Z?hh;_Hasrp>VMadXs!CF%3pWf_ChVvRl5`fIX z02QSaojA%?>ykxgiz^yOsEp1Vc{MLg_eOpMy%G65>s#5_CO+K(e&0~Jh5@{;K;EKS z8Yjws&Tf-ip+AtFI`3&EUpx)?-VSb@*|#E4t`74=qK2Az({9nOx z(mZFaw))5JcMyknZcY!jW^oxm4I|OOf4KW~9tH?MSv`+yGh56vK{9;*;N##k(^7CC zQyzZ){He9yBvVo9YF)eabZa&QM2Y*sIARMV1#6rT(37IwO@6|ko}L+J^jDLu%uGAq!rHEstXgR}Z9A%E{8 z7s}SM$!FG$)bs5fZ^`54uZA3-k#0W|VEl~ws*OB&__%QJfsY(yO?ybTe48lo8Y?+x z&@C4H%SRHT^?`ePzlST(*TK@AiSOlIVB}*Siq;}u86z?X>uYy~|pG*c=KX=mkVtwb^gN<76s8!3ozn1Br z+9*S#E&=(7N0=1l8l6~RY+@>3TBdCxwKyro($3v5&vo*AlFvPb{goA0#TPx?Xq#f-Wu=*!&u z3+vpM26ls9UVq2m{IUFWb3D^a^)cn;Stiy^0GM1I=+KMFRhStn`M=w@OV0hTkG@9H z7!*t+P@b<#y~@1L8apN|Y`l&Z$W|KHE!R3{o<|WvMV38{X#|`~?tZgzzcq^JXy$tI z`_u%IuHXUwkQGKFFvO$w^V8oqk8{Qxz3t3xU{7p5{(cbk;E3VYFLb-li?EanIR*EV z(QMO~7ZjKe{m~Hb3=P$gLyAVmS&kPE(5vkZ&s$5C?tUJOhOo4Lsm{z3v+9d$5D?Oc z0e%hV3TJYug=~)%>)-RjDM5nZKBKwRZ=T%!KyiE2>vf5u=I0503O#g9;M$;5bx%h5 zV&m5ju)w-SF7?o(&17nfRE1sp@ot0Dbb<5LFc3J7Nv-Y9`!>fegGdpXs>S3_MB}Qw zjtoxafE0G8nVzGKG3C!6(*BZbsZErFw=vcC5ScvJqrpfq{p9)TyFoXboL~2K9V`>v zrz?zKbbnjzxp(mC^^4~}J`-apc})6yj=pq#9%lN}8usFDt~99QX08xtnYt81ze$#? zMP=ZIb%(bqi2B@J(;mq7W4)p@$d4|n;a8FjXh43Z@QshCP|H^x)Ff8AggfO|htB3H|2l0s%26*r#T^QIzON4Gr_=Q+ z`*(!E_$GKA_y{^RthwH0wHj~pR99?>-4gVAZ~DHS{gYAR?VtM^A^je&IHe|!EIKLl zn_9ZVLY5e{J~w}%$<>x^cxvZTTqD_c$SPJ~f3`5Xly$nm1UMZ3o)E}6uUd3e|Iz%# zSUDzZJ)X@!Z#|yHKg0&jQ*I;;;^~C*9YLdtwm;waG`7c-k=S=)l72!G-JKMvYd)S5 zfByA&T3Aa!wn~wP?5K|k6~Ew)q>)Srbl-W;B478l#%6C$tIHhC)pyre{BN!oLg{*Zl>!3M(;8`P4@_DE;?rS2AGC1U>|`uklw z-54zdn@7>G4x2~FTs&8dM~uEug;C%Lv@SqDy{V6?+Hm) z>fhI$`7wWa-!@Tc`n|oM3m&+!lHT=GB%vg%R4BU0(xR)><{>9wC94_2 zWW@v{wJVXy4wjgG62=20cukkzJVNA)IDAe3XlP`FF2BN473&8k=H~N|4~v1w?O4t{ zCTzz#5q6>V;Xr@rTxu1+;bf!kxNON$nvc;_cK2t6 zLm^tYhxMyZ2ZbvbRK)LSv@dYf=Og4Bl8xDOwRKy&vsvh*Zdmtz)+W>Av}bp-9~D#R zfU*4ss08V-qF9e(E%6h)pAab}`Kebh*WqGZ%z;{s7n)v|e##)0CvD5%_(7uTJ6_=Z zKAAsN2t;$YN6YD3Ol5AFz<3vcl#q9?JbqAA5C#RrP3c*6$qaZy#~3V(KZXsefsp9o zMc<(S*k(5qujygkUYuxuH_Liy5(yEH)$V7_eJRjE|A3@Ri^gr2op)8Y0 zE`9JM)gE5UR1Jp)tYzi54{@67y;RV``{<&vO>;em&tghima_{vf%o+qO+|aA&R>hg z5B%NAU8&R?4D>9TRdK%8%FeQBb%%TIYr>6swj2;!QY^o?W9N4`;*#1(>8LkCc7TxL zmC%y3s1)3HBjWN${jVG+E;fB-jQY*;Ib1U*b#5%v@5WWT!0ML>zBB)c+^)9&DK;r%=`wVgQQ^~MT z8-1oRyo1+lDmyBK0@qEhMcno@w1+PmaTQrF?5n24lulZ%Uj*)I0vW{5Kp-#81D|9r;5lL-9Ly+yCqns% zh_{hS;ziS9c>;EH-q+4YSZ4_dN{*b*1~dKcrnG3M3QJ0PZB@x}yx$_fyI&u+;rW<< z>xu5O?v>`65PoImc5N*&3*{*d>H$~>+X4|Dy&zMkN#}PzsCYWQ;AG&6Z*rbPj?xe) zqZcP4ucqqkx` zz1^&=P^#!C2Q+cH`q&jLNP&Z~2SVVdpu0&9Ndn=M86oj7ee|POS5;>AOd@{2}jsnjL;~ zDsy*5P>j0*J^|Ed)7&k3b0;y9`=q||w)%Y+vG>mxlBjfZ5#Qe=uQ8&(i^fcRlWln^XbTcv63d2FNg0t zUZm+>^(gnAp30A470T2o=o>&F@e&o@c%Q_mks4f=2X-7iy>&g~fk?o(Ed<5Gl0`0fOjnljkB8alYLY>7Qz zWmEETrCxvTg<)1qB>o#-yIfdO#z7P?GW2*}d2`Y4y2?4P3=astWh~M3%F&ET9B*mi%V0f3)h} zyr$lWmfLXhL@d8u*Y#m9x=WsX5K)XSN3?(!9d;T~o})-##q}kcu?oyv5R}BSsaxGH zBh^8Z?P=sXC;2-!-U?>6e&3mMPT>(2kyOb#`0|0TwESykzU&|d?h(v$5%j7C++oey z84K0Vf@%|B+H0`a+i*|34Lt)0+D?Yk^Fx#fK-Lk1pc~(*wP^W#64dU}v+gTrekZ5M zOP)nI`;5tFI62r{rOt<0UQ^|K!zlZi`j#7WFdehONKEB~red&BojX4rvos{u;idJ> zgd$wQJj2Dh7*xYxI);~Zgw42JsFqjHHrKC_SxcywpI1ayNSH2NJKiQcPdGoqZSkJB zFn5PCkL7zs<3dJix72tau6NN4?j%?M38uRSYu19_3X}GF2KN9!^k`6kbV7hHE+2NzUWQSp*N)uTZTOiQcXS*;H_DZzUR5)zTt2qs zj4sQAOy&-Q@JHgFta5a@!!~Sr(eh;@qQo7B7EQLB`fz(Jbe@gH=`hx%zCe`#cK;pFlQ{vxEkZ5O^mCEyaS=%^U=@QZGhtMRecb&F6v+Gs0JUah)!l7}Rf zLrnoK*(c)yITG(A>EUz&p6&`uGB-8ttd9}bw*)Pb36SK}+laId*2rxZMdu{Z+XRO9 z!wff$r$4dYA^nz*UTZGC zMH02eLc;ng!WQf@tc7TASiYEnz1T+$?u<&&VH@tXWYO2jTz;3)O?X2cALGn?WMGz~ z`ATE!@5b>XiQF4u1;zNT8!AUCIk{T(>e{tGsoXFde>w zAnw3rGS@4wM+PV9Iz3$XaBQn{4KiH;2Xurzb1pVFbP%+OqLhI0=fI)E4-T99rUZJ6 zSv2;PvnQE-HR`jT38;>!<3punJ&Ke(stVlACD>U#6zC6xC~W4vag&BLVOIPMMl5?Z zJUxC6TLMQU6{XE~SJhf|&6M2tF*VOr>{0f_PQ0z4_LY44P%L8ogqwH1p};)%&pz+X zgUsw0-urnEwpb!}c?k#W@Vb@A=01W?X}9kxj{3;(K=T>-mnQj_k&i}4&ZuUhezPPC z@GH1oO*WP>Tj8w$lBcpmc&;Og*-(5=VqUg}JggiR&0p|6v znvv~h827|43w(~~ zR<>dxI}51P!!M$LA|h*ErF@~cf96G2I)6$P6CFsJUxAXvEf1d&)|B4xWDuoVo7898 zVeYor43fo&`(rE%dn^m?cW4_f%lhGxy#y8QOOn-}zps^T>MZont2)zJiWo|m=PwYI zVn7I_Ha_#5;;dzQ{v@Qm$Yw1{AC>&uRJzzllfIy5ChMA<$CMcFW@}|6q!)C@JZ79R zdrGF&(Q!azT!-nb^1HO1(+PgQ10(bmTh;iWrtfKCihN=4(`ZNeyZnsCjU#CvCfIji z4Z~C*fMUjMawaQd{=HBhvo@QKTdGI0!UT(KZtFg~J_UB(!*?z()gF#~g2)Ul-R zlQ8wxtT@sDNh>cQ267#k4LJ0_N;@zgnKKMie?U*UauWaW_1XGK39SS_Fx0B#=yQQZ zII6ok$!E7Wh~#Z`KEPZXRw%hHleIha8QPZn@)N?7E6zL=pci{*2BKcF?Ao_!Zo)#m+l`YSQ*jpzGw|r~7SFAMO z2v&A8x||3aerqz^Q5+3E%I-R!KKOmfVO4*5&o)}sXdA4mV<`2eKUm^but0>7bkvjO z8NI52f!LRwA3s?5EI(4%6Gw_PZn21`gDQM(^0<|9gR;2&&>C8PY=`P^><1Rf+VJEe zKorMqR(u)GJDU@Ah-A<-)E0jQCtRs!ANH z+G{s(Tfo^VPQ6rA`zi~CJc?(gL$0y$MYMI~@Ua}0S^mze^od^#*&~ZYt`Gj&@U!MO zZd@#5S5Z&1GC%|w{zdcp^QFBluY4EevOL8%Auky^r+f0cTKP`hr=C$C+1fe>+ZS$g z$Sa2_y=0B^Uh(v_6_Pj=ZURa4dS~PBuE)%3v_#B(eg|REtHO`Qi4^8CC#qIel&@v6 z6(<@LgCE&n+zcMsTst#z*M>E4kfo80-1}|A-n87Eu@gCze1s%&nuBb2uLnmQF z_D#0O-w>A8hF&q7o*l0~H?w8PBAy`J(ngC~69y&(dS(6d!lGM(IiF{ZeWrIdcj)p{ z&Phhwshr8?v94;y#rs>zn8UxljgHV4mKjFm8!WD;JMAfEZ-}ZH@Z6vSI(EfCH!2GW z8wHQ{UcVgy0f4mnk_-(%fnF-QwqNbMU;CXyn=}Gomyl={d@D@q(SFCZgU(0$)2sWX zgZmy_OEV4!gX9BZ>*D@h}Sf0R`^s%%gAbD!zs9 z!QRXs%yP3JFGKii-#4AV7b|_kfBzO#N#0w$wzN(De#rfU^9FEAvow%#@Mr7$@!*fY zpMLz!1KLfN8hF2xoe$xU52Z%G%eS(ZI0GR34+@?m`s+uJVtz=MvHymBr!_s|{CvcH zi*vq$y=4$~;rtEs-;v0ZV=*ZX-p}ld+$`v!W7+E`vTd-&?8^)IM4tOZ{`1MTH%I89 zL+F1e+P6;WuAkm`a%wPiYV`TkQdF~=U$J`eV&~A4V?#kKELzdc_7cv;Ojp_ZvA}l_-E*opW#D4Ev3r+vB;ox#Ka@R z*WVD4k1vvL32Wn!P3E-z(o5O^O%pGzJ2~s3;PJ1)Y($WT@aIbg^&z!8^@V{ZlKGN` z`S^FeDaShclJot=L<8x@HFLHG(*q_Wr%xK5{OSGg{jcx+^Tk(Q-TqD4_Gj$LpIL3> zb^`K&bop#4yPyJc^w!_`yT2ZgI6q^JJ`&+sKl)3gO!Th*Tf6o19-1x}L$QXn$|d}p zZ}|0%2zN{Wv(EG1y&<^u+;6w5$e^POT2pBBTCx8j`4SyP#Kyp=xwVVT*8dk^dM%FC zd_y~hNy2%o$o$KV46dt>pllYKdO3o|723rXHJW@M`&{|>2za7oQJ?XCj6m&7{?#Zl zl-+XItV$=HTc^Zw&!Uzw*#&jj^3Vw2%Y)}2NuKjcMyd~w1K6#<+ID!puFxs9{$}6J z_JsZ1w=_&p>M};N@!Y zVhQl31T>kC7|x{aPKLH6(A7L`r_|7&_)*97;4>KL3;;d@pgsst z2?nyDpj2vT8VfQ_gdyIX3Fp8T;lLbZ&2-0%-dms6MFVB0L}@LJvcy~}(xDps2t`4- zgb0O*6g96f?WGhM%}$SIKr#Z~`Dc5J(h;kVYU>U~qRhMLL`! z2t{Q?jaH#!Qe$Gh#>%eG&UuXsqsk|&Bp`YjHycREn93-c$gAq8T{l$Ia@5qf);Bdb zu&^+?X=7;NY-r|XV&P$7?P_7`XlZY2>F8+X>}u=c;^6Aw>T2$POYg3;QJ|BRyOYN) z7r$HXey(1AZr*+#e*PZ*cfA8{``)?Z9~gZ1&i%l*>858xO@!xlEp5&1<%G_R&Yq7rffYToH2s&`Tol zYQ|IXO9m*lFG==fRog`Lc2+y8E8s4G!?YLK7uOl(%)_L<*nF{J;pe$Ge=mtjFb^)sJ0 zVBA>uH-0#aK^`lwCNu?OieC%E8(1|C)r0HoyTq*GM(F@fG6x6@MbZly;nFS$5JVD_ z+NZC!x!$v-JdTe5_L11Pg}S-dj926#a7sOI)lq@8qE+{)Je7MlD*s!Cz)&$XpLJqSi;n;hI)(lnGNd9Y##J~eLQ^2qsG~QdZz?| z+(OVA7D8R-WiQm``5r6uY*FY2t9xAWDw|J;_ja*QZNqj+K=JAsH^ z`_%xwS(E!{BiS+|5H-o++Zk|U+BcHDu^tKE+HbmU7vpN#;We?|Vz;&L+UjYX(?k;R z6STG;Ze6s7NEQS(J85u&h#iT)@>4R@$cr{z>VE0ByK_DLt2K9o_E@uxRg*nd4?1qN zKF{FgODH`5RC|{^9QpIx&(Ao7S; zMhhYdBOPZH3sT%1BTivk$wkkcbPrhG*=q^eyulo2uF zkl*G46IlGMW;=~G3HTFvZ}6DaxqnW)y7qfc^>f3D#%X7k zCSRbdP3*fT)%XORJU1TT5(^@vKlxZM(EZRzj2hRes&ejXg*kKZ1Z^;W- zH1sVEe2u@KblFGKL2})xPqg|~-kK-G$7k`9MpEOV6V>D?Wuhwl-Paa9v*E7+)caz;gcHDM3%bvC1Ssz=o^CjpVjY*zsxJ4 zzy^Xbwi2k!xed98aaXMXY``MtjKVXkXp}8pFZDgUkL}wVQ}sunt;=4tWMK4oS#DFM z%2Pkathh&?C@Vty>l}9smitzi)P8;NzRp!UktCr_Ayq$2oq{JEvvwlg4k1GG!)Acl zyizVzBFxzglza}kF4`_)98w@#&~^NbpISm+BW23E0OTbqfi|p(nJ)W&to3r0?0eIz z!>)`hF2>RbwM{@;ZX*?-LehTeWxXhX00!bKYtQQKUVA&=16vOet=ek%Xa9;Qa_ zvUiPU7z5yMnZ78!?Q1=2zwdmX^QPmEsZZy9KL+@#@n)*BOLR@H~!r04vT4g#FfnL0X++)n}69`|}jX2QjM z(f7low?MKUCOb)#eELT7pKs~l1%FmSdqTxA(hLBeD!p$pz4xKNvSbYbabkAGQF)BS zeQSscl62`7TC`HW4`w3)2op09Hw+F$&q0OF%-J|ZYh`U_gQ>dzeQXj-XmU47&szvf z5bQsB1K3KHF2DZ%;6;S-mEGaeZw{mc%m@?hr*4-sbvmKyO6*-T2qrQ(IRbmmlkqRH zyq7EOv4;^4b3$kJ^&WGYCK6=>qo|ME>!bOKbLy`LEHJChwI&}aRdQ~?X`Dkr{e~px=?NUW|IZSY8__RhH_y@LLe`%x8$TW}B^nPjt zVe7{oN##}KO9)ho>NFoMdiLc@9CS|jPmP){TWVRg`!-#V$%*&?nV0nLn(>~^VO_Od zD$men@TUgH|NXh6$8mz@eQwjpq zbcPG*z=cok)RST>YgDCT?>)1*BKlnI=A7RZZ`#2^jRxj>V=Ssw5GKWk>XXkSgL%OK z@m?=8s0AH0aD#Q2Ib=XlhanKe5tzV^2YFKfB1F&~Ww0;-%!EUw0f?+a3Ytq;G!CWA z2VyaU2V<| zuY}mAEh8pa5qHfDnio|2j?zfBnjCe$b@BJAyqLP7_hf{b^e*Urn$ff7@klB;)OBlE z_^5kpV9fYgUV#BY0>lOaYapSVCj8HoL-e-eons}8xK1vR<0kQe9^@*-P6t3UDNG~WlLhQ@gx>2G`9L><=xDwO zr{$tcuwpTKVs zV2(ssU7@Dh#oenx$Ra}iwl|!+jzgNEz*S#!em9n12i~p}_gt8%0DbR{%Dw(XTBZV? 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

      oau-F$g=`%Bd0i>S5~+Vbr~6+Q^xRj{f*{q3;J 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 r|BG*Ben;B)%Mi>Hsy60#H*nqzxqJbJTkyZZ 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%0D!gB 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�VxSn-m_U~`P1 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

      7g0>~^W_C!?-z3N!Rl zo-hMWIQ!K0Hu~c=$Jo4l8Yh_r3h?m;_H2&9N0jCGiir7QhIc^=ic+quE&d}dsEjc! zDp9z4U!@IPU#&!T7X+V=XAP7cZR5Fnh%)lO)2$Ax&V0p>pS`!y>RnbPe7rCCKsmuP zi=D9peS#n6iqeg^f2n52(96{pENyr*JJ()?{RFZs9$h-!ke zuH-?mul+c5|JdFM^S$2K4>uBK0bsfloa948fi@~s-p#mHwWc0b-IiG9=5troc3Av6 z4{gEocGyC@4?b(-PHd64@D|Z*ysjcSv`qZWza2qY8ZnvOJSmRnI0}~Rb$06BS{Nj# zUJPbAdrl-`uW*oWWj5mq2fI`@Po>}}o*24#fwJlMJkJE^V>DRFkJK#mqgVRSPEj&0 z21x17$Qs}692CZ2pgYDI8&?L~UQ*CMj;>y9-{P7*o@uX=47zsylE{d%Egc-R$?k{% zCB_48+2jQU)GV!}yep9I{Y*5D(-~cqx&RrL3^p}m+UC4C;m|s~{)k8Sb2ym$e#)HK zmEEK&MgfujOG6}o2yNjp&?T9WBqQ&VVM&b?+439Wc}C&%28h9J@a%e)*EluZ9O5>; zCUzrnQ#nOx(th=TnJ|}E?LY0BGI&a))NBEulv*D4vST@S3t+|tViBV-UApYZ?z{^m zk`V{w^g~-=2i4B2Ci?F#mlQmlo5*Rqzc=D_$(HII_^SNj+t534N8UL0Uak73;!VRG zt$!c5CVTDMh`A?UQ0oQsu51PV=-9XTSFh-Y;VQ5+xdc!aZd&jyKFp}k4Y4P2JHX?6 zzH4eesAmuvPB+4o-ALSH%O7~Bkc`g&x<)a6!NVzI=e`ixq;kL_HJqk6l*Qd2*E|2W zy<(0|A>LE87zFa;28+=0g{O&LJQ)qfvq`m{RUc}2phchX#-UC&_CI-MBHpP2zY91+ ze)<>mn52goluUOp&RbM@&X3eiw^w|ARR#QcoGlZuH9cTBZde=H*%TKP2v+P&pYnwb z{0j=XRot`QyxcwI9!$x_z8*Ab+k{*C9@(DFfKu=w^=`g0@Q5BSDO%{AOIL1VsF2CW z05*BF$9r}8=Z2jUCl|p|axIm}OA6&VP0Vl=nJS{R7hblKSdOkk_E3fEfkG^9y?)(KKjt1(JTt$qs4XzXCqG>Qy;y=W0_L0mwEfX58m5tqN-gMT zw{-M9zSBSRCW8RbPwDFKOG||;&;2i_@gt&fWl7%>2K^b3j26pwPLnRz%G(Ev{%?m< zmxJ@?-@acuNJsM|`6cC}zeYq(V*@_nf3b*UOMKFw$1?t6?al*{u}n5$MUXtxVnhdA zJ<>O2Ou%YhU)6!BwS|Ot(}pxze{{He0I&&KWzhhSd@|x=(s`|hICJ)&@Km!Lh$U4@ ze_!wpkj;@v-G-0l^xfm=srsY>){IKzB$gF~pDpUANek<*_MC-@*MbgfKFd*^R);R& zrFPmyz5Dd5k5@AmRjPnC*pA+=t4-k=$CZrCd3F( zFlN*Y>H(a|5=Stp+|(xNm2<4bF*E8AK7!CCRy)8L>XoIESf?(@HL#>Skaabx4;wR4HWBw*aM?2yWEKwXr$$w*>T*Wdp=PBaFo zWzJ2H5aehGSc9gyNtv_7RQRY9XTB2yVuVXtk$~FHTD*p&fTC=@$&di*aSCgMeHPRd zPk5HbSJ&;0s0+j=iP7F~H#B7qk(MBhfsY;xUa+J?eE%eY_8=GNNwY;*-RRcN3cA1U z6Zc1u3x}4z{?Ndcq~5h!HcL+7VJq#jK2X%T1Gm<(42b)z&3^+Ib!X;ryh+(SJ@MbW z2dBE(CGijid$9Tf@MTR*IBESUGlgd$rJA_(O-DR&B>ku>PSs*sCQ0*zueS%>^FLn* zN&YSdwPQ&5C?^>aA!}t&*C^Z9oGI?~Ilms;TX?GQ=TzHSDtty~DNHOz$CxJ#V3SXE zHm6G?lO_3UrPPh^LFZ(l(nF+qfvLRy9>_&;o84IK1uCE8F}2i+{QQws7C!0uv!cEy zkmM=Z(wd5SMLI|?+bR0~V!Tj298cAf1tI|T8vq$9SnJ$t{MIIi#m%NyLJR+f<Nq zkK5O==VR3gmp{FEr9z|8@3AL2rXevO{HoR&oF zVZ-u2i=UV)9$~jzGPV&OmG_?bC+>JA2jD_ZwzP1Rj3azH;(Qx$&S9d&QLFU(Fs~yZ z3pRxC8ak`Oi9KOzLM|Ci?}M0dkzIq@0csro*qx8_xA>QohwGI7>Kscow8_faPsp232+t154V;iOkxT&R zlKs8=X+D87Q{s>;bW8F@hq6Fhze;HS+uY0OBz-2^HD|Vy_q@2q8VGm;vPVOC2FXSrhaX`kbYIW%3kx{6&sv-PTHT zwxK1}(B~5L%W4wkh5A*0s0BL7A?(u6pv%8}`9<+mn;P!lKWHL5z|yC0j$Wn3UuW9u`n_s{*yTJc*p`QBRP-r6Z!e-!}#l11`%FQ4A$0K`*?<%&&VXTa-& zdA;|v!m8ea-0twW!8F`LtH=r`o*-QXro>%l0%6_U#nB zG7JC2Bhp?}Acn*&&_f;252yf7<%wK~ zLRRaP%NSoT#S3b>UN~_Yc4Z)W`YWKW1;6qOw<*hQYMSlk3n-=yHhEHH1816>UN5z# z(invGRcEZu>h>kM`IX;0_Ud`Q=TBwlI{xai4r_PD=X%a(vJPu`#$Wx_0UPmWg#lA?P*}_3!|7_8n7@bxZ&jdek|*8pE1*^zV``dBunc%& zpcZ;7ptgka+&%vT52M!wNV?_R-mpc zUDGY`5>LN2gax*oFnId@8nCg1upDD-wT-1gHdc7j0$>vdn`*LQZs`7TAm>j<7=($a z5ON7%B&R7QpQ$`TB=bIR@ILP+?`n5m>*}6zEEj9DuxB68ftB=YWN`p|!51I^gJcXU zWvR_WIF>hffHv5JZqNp6kOpRWUEwtFX?O#yU`nnC+<-$a3z&d2iEuEO1fCNG0Rrx% zfg9k)KES%(wGj=cNuUgZrf*bbRYq~aSn)S;CZllFJHO zg#tK)s}6EmpLKtf8#sZw?QJHcD;iA*BVRWJ%L(>ir<_4xh_32_t}=_d)e`;P0l3xy zJ-!J29SSao=P3TC@@h|O^S1J{u45^Y?>CTu9}w&j5oIjsg1<(V@Ol6@$bcu zWO!X^MhNQPxt20h63E?<~{&Jmm#3X&uAN)Ux} zJng|E4gMO+KBprMn%^+&m3fKZCg_ueTTnkU{^dMj<|e)ipRolp>{e6X!Ya-2?AwGG zlA&aR1%+^V(l7mN%LN-xLm9ex*7tZ3gBx(Bd2!s<+OUL4UmA2xAg1GKxXFA^m{K}X z%a0cKZg_iB&^ zX@~}BsD?PO`gY!l0*HEZCkTe)P# znxv4D!dnh)L5x_eK*U-FE*0R!Y1JoBo;qoyRB7a6X|<%*5+zrySizOVN|M~FZVOb++iKM+kDfk_El_f>rjnr!Q=(L0l447hECt32 z_M%y^T~T)Ws1X+DSDs&uBJ^hTXg6*~N63-m%^=dQM-z%IJ9eSku?Io$;bX_0JbCnZ z+olcMwQJU}-Pz%zz;fogm#fAh9fxY&1%?c{9t2FK!=XTxv?SJX0g(({ku?j;GiO*; zJr8_Ubyh4{vTor*sBk}}hY=$dP)tRaz`{u@pnTGiCuEIONl67{wje8WtXVcRfDb+09RaeNixZa zu6TBrRh{%zK!SjcMVKaqc_&I@43*~?C1i2()nsOIH5N!N!4iv@u@n%?EV9f(OD*^5 zqRT9kkTM7%iEL8HX|KIDn{1;UQpg~Fyy2T~dVJH(Ho{#qjUsTo5dj2`Li%U~lTteA zqdH(W1Q9`eVM!>Rd;-dhYH3u-l%^(@o_er=RbVHr2sF!Q^x5YSE@Cd!pMU?^;?jTx z9;hHlDAA~qNt`Ij7b_K#*sQb9LL05L(^6aQvsK}hqGT+-sMS_67CZi!co^l#RVE{~ z^_Gu71}P+uub^lZUmmHV3SUi<6pAK-Z4yd(iB;)XB`3+KRacc+hKZLTaR!!s1=tsH zE%>#Gh#{89Ldz{=kkiB#jJj3;p08nW!U?BnGKe0(4f;)R&^%*HSfvzjh|M?OT(ixF z7-F-WgbXrB%_=20mV<-+s~AaRA#B!31%w&PXRnAUOD?+XLgv4ZSwa!7UQ=|7c&}&_ zN=L+^1d7o$a`MSke6_-owR6*5x7~N+owwdS<>DEZDkkhzCR$#?2}y%(BA&sRWYYM# zBlYOxy8G={K)idgQot&zc%peLoQPD(zMDK*80d*n&X{50 z>>|k_Frd);2?fy5gz)32F*2To(BMJ~E3A;h355iAs5dTKgA70Sj9YlwWhJbZdsEHD z3XuhP_BkhiC8##P{f07S0qClV5xAVlE+*AtPTc00u#7agCA`)mfVOam*ep>XSFjCB zDZ$Fp_yWGq(QI!LoFD}&Xu%6&&?dPc-`}<+xW>ImER}elgDUZ&tvK#nH423T!M7Ox zper#|VFh0bP%j6~iIJ!)b5v;sEi&lJSHd!uvYcg7azVepv1o_|aNJkAw22;atz0S0L}B{X zLRO?shp3{&VOn@YWvxP)z(m(bCgBpsB$9RAI+$1@(=;XCrxt~P!SV{A0&}{g1ud9C z6J8=baI~Ozy(<6RiqA^rur8P zovADu>QE$%1Lh%ujex!BJOpo>K)c zu%|j(-~t!Cz!b+o#vA?NSYv33rjNmhxzGhZxa?<-2CCt_TA?)36=q74fFDOYs=bUf zjHM#Ig(N7+D#jgbrR^!HLf|HtMKbadY_m**B*#-$5;eHO9WHT;%M@EGvPmvt9B7F- z%x?Lw0FFV+DN{JrLVhP%(TwJlLO1@xDK*o9nu8|5ygNd*RI_sBspI0h!pq!R(m+*F zi)G$w3lq?F1unTOUR9vq0`T>U;Bd(~0lNZr0+`75-s1?xK`%VC7V|>51}1nhjFSVp6qiCOpWDaN$R>sf(f)_+L%~fh((C)^PdAf=pagRNifri zVnVygPm=QX8YHm({t?sK-q9R0xqK=TUWuxq_?(B|qSfg>)uaaOOnX>WnGZs_OMx*T zb>VD?8N48#rs#z7=&EnME_enr2)MxUYR-N)fd(;v0pSy_Pn0zo6D3hRFd3KWFIU{^ zi3x?qH!g0qm^CXdlDJLfyA~J0^=kTCk5z6o8B2PGeC;uxn^6jJoD;M1+)Yf+g>L)X z<39I3v1Pxej2Q@lgfP%fwqZa~QIR~o64cIk#`*GP$pf<_q#cW0l&Kc!n$(h<8B*EJ ze)gokmn@&l$Z{pFi8m-%6ZhbUKaK%|1{c=ucjs^4saVe}&L9T*2lQcGU<#!-&Vxu_ zl|2dMjl%5yaasFxm;<$f>I4(^aRy^RMpm#0FI5;`xI)|A9Lh+4FJPG?mbmXvFxr0{=)L#&}QnwFlH36de_g;_VVK6^7!$PD)@JF;&1IJcAnv z)IA)+qTy3MkT3!H$mkq&4b%lnYfNE9HJaa@-<2o%a! zR3P6|RYLb|iDiTzSqM`B5D)=Xl6-hXE0|qpObzP6OSm{&CJe?1v7jg%AOgl<4Z7kh z!lM3hc}GF5eObndLU~9@6FTA26v-6wPcW6;%e`C{ zHjVrki_#Snvf#y7z+NUef+J`{HT=^*9K#{R0Q||{-Syp{0aiVg!#3bS6EFb{=-mwH zAq>o&4UJaLQNW1OZ=@8>EGE>s%5WfgUAwEVa)mYbDp^b@Rjir|9In7BNU6V1}Nw6O5IsU>P zbb~hdlN(us3?y7(!J!<^VLBF=3YZZpcz^}ifIQNGJjy^JV8&rM2`|=UTa3_?U70YN zq^LQSM!?I3IVIF^#ugS%vxQ_vJVwZ!i$mUCoMkX^%Y#t3o3cf{lmUQ|YKnG(8B zE3V{dl4fbrO-oMQclb-%*rZL`?s(|xsfCgYdAz*+Bm_T?& zNNd7oP1?&;Oi2OyWp@pvCNzjf_z@Pu91%T&KEiY8eu~;Btte_fTGo%{Jq3kZl~Xw6AGBXDX2}B ziAty#-%Vy&3z?5?5+mgyqkPUM^=Tg#P9sK8C1??gbEXi9oriopleyA-7~bdtIcA2T3W{6~tQ3i+qS>2L9-+=+4b>#& z^<_Zr>7R0Iw|c7vX=tr-=qT9gAc+^K)ntNr2T3NO)d5pO4o0PV!YYu(iLB{*bZM&? z5SVD{P3<61E+^W|NQ>BlA_PaN;sFha?kq9uW$Kq+*>wUH~KUaNP|5MQLL zo$jh4GF@^}UyNemzFq`!`d~w*M1N-3CXgJgTuzOl8>=wo;bfdmjzXM{7sq<+F*Zmj z^vbsi?a&e}YGPTOhDw6K#3VZ7MfE&i4Sw1Yp!fIMhQ3}i*mVpA(ssht8 zt(Mi~m^o0#=Bk7?2oQP+*yhD&7$%s+Xhzhcn2ssS24EDvEJQ`c3pETRmV_t-E?*Qb zy>2W=Tx+)e?6wl^>%wknwj?o<8DG?ky{LlbkOC>J=TxK;sMYC`gbIU_XuB$6Kkmzo z0xPnh&%B11Ud$R)j-7qN+DUwb(UFcW)?)BE4%`NZ9@Ieo^&xiRty$`AV9}u+$|~hm z9`5e$F{Lg?B#0;ABr%#77#0)x{e?#$$$K1V_WqTfB6R}r9V@Z4TME_4Cy1Hno=8Sb zLPFZY(=n6A)ywWalLJBNVMvM1b%*Q5?gxXgE4E}3I?(N!Fw^obXCW@|_F{rCTj>;| zC~N{?nh-JJ zrZ4*TZ7G1lmmT2k?(QmrPYVezD8R5Zp&(8s(EQG;T|lJ}mmRF3#PwPw4=R-@YJ{@D zYy%r)c|EY`jxGhOf(1|1C}gm{mIHro7^@A=l@ z-l715%3kjNaqrfyOQ^1E1|zAdh52oAyv}bn3g%}Nj*ZokD<9p_QS%&+h3{Ggk8D>H zj@!}n%g(w4Dby(o5iTiY@tp$GAun<}yR+>X?J79(GokS9f*bHMZPF5|OOU8}cvpg6 z)Gfwq0)K*%xG**v2q&O&;n2}xk_xFh z9WQznM#hn-ltGA07R>_DPu$SYO}T_xWFYs9VP*`lHGgU#9!AQ7kR$ZLq0n;vb+ku+ zG!<7d-=csfB=s*FbZa(k&eCKdLA8Sj40&AJGH-&~h~MWN6-_M+W;EF?!l_aTrb3sM zH93%7J|Z4b+)XC64LNP7ghB-~E#yVDTJ#GdUv+Q`w{T^3W+ve(j@RIJby*wVSQh}{ zX0ayNBtJ*VDLNI`a6;)&-ntG3gCa;Tl0_YL(0B(1@ENf+qBeG6bmJsK^c*%HVrN-? zbl%oqp`nxg%^fp6a=rc}2s$GO3KK5ry5##jm0_%FVWh+$jZ$gjV|Tx@a$ebXYXbOT z5{;zJVwi3gABG8eMY0`qQhT-h)+FKXb}?=;nz8e6tN4o3QdVa~`*2nX-*)=ow%HKw zACve~n|Om>RI~*Xni&ReHYi@U4QT(3c(>I6Go9tW@!F#IEMnO&F^(U^tv4L@6T=^? z;BEqLY+-|zU%wlKtidM4du!6M8*4bk2ne| zdZXgyhUV`E&Zus^=`gxvmi>FS!}?xhFSKp1H8yHzN1G++x^MXU_zr2X2m50CnZOx) zcb)=+))0R?JBj1w(iIaPC1xR&`KJIYfm;IGL}?)c;%uqf`e1|qyhk1}G4bWb7o*{bL?ZA(9^k=YBle=1Bgx3dM@)7)BYg5A-6@epC1=2 z4l4+PEC~95LKo}!lcbf}fdam7eeerEh)4oyPhAUb`jWVWO&<4itKzMnbs)AhT8IaI zjc8S==Cvo#`f$y_?7YP@DB}E0(Rpg7-KG|g0x4kGlw^V*;6dSs@8Kimi$Nl zKfd2lQ3|a5MGEgH00b$4qY8`?B}!Amgqt>T!i0%a#E76iRjlZ#fJ9COEOoS0iPNS~ zph$}1RH-8-g)23Q8bwM~%vG#fg&Zl+qQzA+M-e=za8oBwLp^;W+6igViULXX{F#Yi zCa4TS!76YSYgVmWxpwvX6>M0sW672^dlqe4wQJe7b^8`>T)A`U*0nnpQm9Z7_v+PK zU=_sz7D<+L*%PtTgP{tnWVlIFriYjcV7g>U<0ZBPWj?OLyjco1-O6nIcOy-x3sK)YfYS$DLMD@Dos+8py!{LZQvE^eVXoB#8>^aY>`#i*G$nF1c*JN*WT0q^tZ2 zDI?fo%cL=d&Z~{Qo(3e4l{72)Ex6%kC=Q0>UQlki=A4TT&+4ixAiF+SK*1DFK>Kb( z#l%ccJ&C@%$`g$&q4Fb<7%NGyEB{+56qf`lfI#m!A?cG+2FpoD2mT=p1wIQyt?)vm zB>W_|fkb&Mvj0XRQN~<#-Ido~ef<^KU}dBcDT#2@h{pg6O3WqOep*Q?sTiUxJ&h)! zh$4%IDpsS*uA1*7E3ss4OG+q_va*MwT{odjT`EAp0cT=`5=0hhqy{%r-P|Xt`U)r!k+CurHV_}Ux8tJ5!UYhBq%OVyuV4uKRfsA|)B-B}?m*iLxNW4thFY~k)!b{hHQm0zCu=AHMd z65kv3q$W;wuNu7Y5WD@^gw{ng-D)M;yrRvwow{?hNdx^r%}N@%QrG5IsBR&b6;B{} zS1F)3LH{N$aQ>Q;3j$U+!yyhj)>+(jwu7M_HHCFe!QCbb5S9K^kb>kp3cAAexsZY4 zWuht_Nj$W(gv16n@XDW2Bt(=D!c1GWo0%xGr3%>ou}U=*1fI%P#u&ZWO*79E;t+{g zL?a$?F45yzt6tZ#$fyUi>nezXdc z_dwJcP2o)@JJ}d0Fz~7rKDt~c&ohM8|1AV;-j{*c3A6rl-<{|$h~b1YA|aC9vXw2QG-OJj zd(239_rk~}C5H!!V1mYpk(bF1l%xd3%w7`B9`&e338`T1Vil97xa%MVs3k8+T2hmq z6s2{k1QS&ws3t}ZoEw7RVoY{A$k5F{j|mEoMm3?RNvUJ&v!<2oldTbMb4VV_Xh!=Z zDXc{-Z=tN?IRlr+0Tz&O?tG`g6nGuRIZQS8@#M-#Hl#JSOQih-#Xlp0na5;Hc9)!8 zG+PC{i0STiab=a0A~#W*9pojRQOa5&(;rQU?l3=tmtvR#LR+R3vXPbSWKHVJo$X9| zyUW(q@Hf-e=+tr`@}5RTvYKp>jsAsagH*Vzlo8FiOjJEOD#>i-I|@psA+Kx-1QRqM zPQ9)W=A>#m|Ap18_R)`u!w#T=f)qpcgj3;M5b=JPNNqBSuo|gg`CxlVrO-93;lU(b zC-kzTtfsG-TGm5hn@?qa4s?`A%zObW5D;#Jvia5Te)*d`sQC_K5vYFklD z8+|58$+cSK!c}wbClHDhO`s4I9)==Qv{g1ndBPADIOmD^QuR zNQs4Gr^toIwq+8NxYLUz1aXHwY(pE@sKzv+@eF4uV;Rg?hBB0q3}qk#*SlUu0iIE8 zX;i}+)_8;_Na2}Lo;R&&73;{VY@vo+%r&i81!4s9GJ)78lN14ynaN#lbDtY6mB4Iy zGyz~x^h~5rZ8IqfM6RIivt7B1cC$g%vqo_YZEM5!r;K_@Qy8?buiK>jLc!aJJ^6K0 zopb;#y<$weQ##fDIl;OFrK4830!Ng%#x}lzhd8i-4QN=y8sgCMILKiRbC81^R=)C+ zuN>uUh=U!rL5*bini3RNWN%OU*sW;`)&biW<$aW8lDF#FGTyPG0d8!Nm@k>kL4op?mz z@sj5HZf;4bBM})WK_get5MGaL!ThIbU$W?GL);U=oiwFkAi%*{oSn?sG>lnrh-@UA z8q$ykHL8J)ZFFM~Yw$uAy5I#ch(Qcv7=sziPzK)j9t^?%0vE>M`!gK>3}y&J7r4-T zE`$LLXITD20p@UrZCpbd)1b!ok52SxM56#i_dYb7;f$ddAR5ppz_GKj4R7qB4s@79 z9N)02!ig8J-T;3cwnj0UEmR8JZy(oB_FzKPY()U8%|Feh_3vKt>~<7^-|9ov|$foZsux^33V?F z!axjsPYla|3waOuR89^GU=1cx4o)r((m*4RFAs1r7Y{)oJo1H@;x<4f%qS5h{!>yV zm!?LT>Jr;Wy||5-Ix&u#A{14vBzufUE@Trb0YoMVz9_+NW=0e-W)uA2)$sAwn!y>G zf#|O8`?^sYv_TKp;0(aP4xMid#DEH?5ciaC_s{?WOl&xou{a8#^PKVXKyP54!v!`W z*{%T_<`Nsu5F4%mFY&T2=Q11YG7b0O4dajuwSh3r@EXuh8qg2?prIL>f!LsdA5~8> zyHWeLkM)ubGp!-@zKR1@XWF*V(>`tE=r*B}qB zVrEtX6i#v_cat}J6Gkc_!GL0F?nWl_<`ZXPh6*4NmXkS~(<2c9I-?W*5fZ@>w80y^ zVH>c4)@tqhrlA0k%^Ip9^~CQRqmI{@K^d6gDtL|8oNgJ+Z|J^HK95Zsz9AURUC?8({4WWlb8su`!u0*UV2vfiUVCQ$3|_>flodpdv(HRP0QPK11+*8+ZZR(yODur+wu)!Pdz#PwDKm8N;ZtwTZ01N(R8JAIC z(kU&~5(nwTPF{cp?C=SjFCh^!A#u-E3&2Bv4;?EMNQX2v(?AX6;12WvJGB8DtO5OO zjVXn$08}*Bn6mt?5gT#M{D?06x|15LAurMJ{UUS@@IVjtz#F=OL`@V$Q?%HcQrBeE z8P+xG3V=|9E*Y+rUhCCf%>oy0L0@qJ7Ye`;9N`fHb{hEg5encB*i;YVU=5V80LZ}k z9#&QtvJ5B`G=sF}S~DFB0Qq>Y49b8a^*|e>q5LMb*#5##DvvH*g^<|Ful(ROQh9CI zu3}P+?kSP2E;DuI=AaJrAP>NG4+`KqgEj)l5^(USUs6?7Ev}tnzz^sk4$xrvWVQH0 zHB>eB41RP^K@(Vm)a4X*UtvI@Om3QzZR^$=7!HVXN$48))Sa4&ZCGefIT4AQ{*kd+A6 zRx+zWJgrVXuL4Kq(rw+ZZiBXLlXnlwwhilG{tniFQ@;QW>|jKXG(5#~GUY%xX24X3 z3spT&L67SNV!#mi02{iYPVGPr&cF+5FF+F#eigC+K9oXJ6Af}MKH|<$wvxK=*9-3&H?Eci0ZQ(hgy@`3gV_buV^% zZ$Gc_VeJqM%wR}~^=)5|ZtqqPrg)0+AP=TE5AHyHPmT$7^$U%d_ioR2#h?kl5*^uK z4)mZK2$wvY!47a>2C1qBjTULuGC8pRYJ6qj0t&$qh>#lE4=~@53BTY8f4D!p;0x%N z4PfpL;B<<=VR_A#Ztw9}J2(Aacs^N=TeDa;pVkbT&kJhTR{N0m<`*K*z?6Hh_l!?t zKXnR8a|%~i`qEfj1s5M**kn&wg?E{kC2>(#^fA-5U7f)iw&4!a0Qr)yQv(!0vG8HT zp!r6(46e2vd6Y-(;0_vjiX)kMB^hqrPgB46Q-#k9qM7;PH~4IIl*#y%N3-VA;3`-X zHQ%`+MYI5{;TfzU8?fL8h!$|F3RP8ga02E9U_b^AS_UwnkBhDVsNovg?<(eR4)UOu zgBETHvoEg!GdnjQ$xj=nRqFnP&2bC$Dx^~Tv=t5AZx8T5=Hd{V^%MH8@Ch|EKvCBU zzn}mL8DjgeV_#Q?HcV11K0nJH9bCDIPS z)oj0+s|&LL`Vy?O0V~4Ok`HzLw67Yj!8+&QDgpGBpRiWhISg^Hr&am)Y`FM3wnEi_ zuP-=H_m<`EAP>3#0&XA~H;)+sy3#rieE;P*3>u+j;0>s_iW?a?-Y^cn)f=*b8W@w< zY7~=eEoEs`nAf$}9`)x)c9{3^DINN&-}VTfmkIszrvH+$T~qX0c^5KARy|=f>QLM1 zPMbY*jbz2|*dDqst@94lU<-Fo_m21qv(lUc6b#0I4B*!c>N#9H_?zt!*357&!LPZO zoXI6Co8xgdaZcy%V6)ZRcT?}`B(sFi)jcJ(F~6}{gKlw+F1)>S`>vwAlMOuMlH}I+ zy+Juvn@`E4YF&cnObhg6$v=$`GGZdr+a3v_D%};WgKUEg7EGam|xGPy2F}p;=Qj=$Ot% zAG$E3`VOwb4F1#hq)%9f{F}4eFt1nj=2P`Lw{tmnQJY-Zmz|evRSKgS`l3$`)c9Bl zSUlG+{W=;lnXbf5{M4_p=^zzG2epO2JhWA>%vmoRyn(F`xqT72nVqkPtMGIUS&0Fh zk!#t=wc)EvG%uk#3v!?U44ejp3$g!M!51BAA3U-lU9zbfg3~b!)7e(RcpcL~Sj+Gl zsDV=cyEFTY{db4``-X6FArmr1xMXKkQJbGBBExlDw{MtB0 zd%jwqvNEl1UYVWfi@u1c`oGh0+OMxt)zv+llG}S;>QnT@pRNFYE3kXZyKntw&q^0`f9mcefK-LkLYZTWrGfJX*3$V;Q?~s1`5E?0qEcnUa=pY zu_0U0A)N-Y;Q5Ffr=!;S?7Zv=`S!jrL^m5*(Ou_v9{q|=gfIVvZEZ!Xj`id+4ZHPD zQQ5bJolbI%9`|!!dFFZg`nn?VfExmJUVTmL&oln$ za_#D&F1j<9F{Sm}OP$57@jV;!)q#*uQ*=?kQ5wXW4U6?itsL3%^1OX_*iW9+d(G8V zy!g?xU8SLzzo82V+^}n);3HfHxcBc9e$gF1!XKRm9snS^bos(1%$S2*5{@ZThRm6V zX3U5wVDKQBgJ8@&EU-q7o^9BqL4y`8nzU)uQd(QN@)|a6+q`|-lV^?`G!ZqT*|`Qy zPc#tAgaJbojF&E6l6pzVG)#dnVahx_!{&}RZP=_;t0t|h*JvZdLMza$88c?hkQG?V zwyoQ@aO29IOSi7wyLj{J-OIPH-@kwZ3m#0ku;Igq6Dz(er|}w&X?C7j^ZwD=v$A5J zX?FI^S+ixyLMu~tmh9)yYdY?x6YQxGau6j2pjh+%|DeF4T8In}t6WHpMBlNe=0G!+_cw86$2!D&NHbewgT z3}~TQ$IN0-Mk(c#R90!_l~`t}<(6E^b>o+4q>+YI*+}z@NhnRz{*_75Oyj1TYn23+ zbDcpWO*Jmv=8YbA+%d--aRkZ+P(Ds|2AFC5_M2mh&T$nr#zn`>b0xXC6*XzL$!1B< z6d-AG%Z#>60kmoJT^bc;fyE95n0KCf|HS~qtnS%2gAF<4nyU}I@|ptfiJ!idGUo9W9WFOPl_rU2OELYgo<8x%ca-q*LkFEO(*XWVpUK2Tzyc)d4pEDSYeKV{2CfE4 z%?Zn9%7UcmEJHQUn1GxLYOLfX-pGS*a1y(Cq3B;ZIYR+( zvLlH|1tNxm2!qBb6`+U-fB8Ean11A;ZG7*IaEzlI=Saso(j_cf>xy^qpoTHT%Uwtz z%7xAlunTDHE#cAzR1?(GU!ph5wp;6fTs!EaRnCfm4B zhKEJ08#gF}95l*vxCk|9Z5r%q{BYm;+kcUd7 zPlUv@8~r3qJ2BZ7^Z7`iy$8VW#CcqJtaF}mo5`067c@dSVz zS=9dahp@&hR+4K7R6v8KE`(b4vY5@RX1}+R0>IT8dz1t0s;CsCNC*u2YAHuiIw2Wp zNJH)_fItWWAsH1#Mow`bQz+6>+2PB#W`LYQqtg*6Nel>=F0wFX8ff?!c^ zNswqMBRcV>csLuANCo3ac{j`94tw~+ zAWqCptFb}wj1)sn!R=7~2!bFkD8;YsI;}|yK+zM?jtebj3Wll$QjlWEr5Bn={LD~* zL#3>fA}OU<>~s>8yp^1`k*;*N5fg6|z#CZJ1Bk3^w4R*7k{Cs)Yf(!frO+4*Vt{QI zo}wc&_(TroUD;bfx3#e@*_38M%W?ATH6|6nHCH>!S?8OiuynR|D%*gvB9SAF^_YSIz2HyE?=?eU3D)QGjo_ z?#nw1az@2Gp%?p0Mm1_Jg%X@&7u_yexT76Zpwbk5@ykYW$ir2}`NVA4W*gm*$v4br zzUuyoM33=unxXzeJHEC#i&Lo)M|HPrm7*D64X?LmFn&!yF<56o?$ez?&w@NY|C- zz$WO&tA!U*l9J%3U*sa01gVf$R3Y6Sq-To4*0!{4aq9{SDEWerft2!M31#TxCH(@8 zlM?De)#xE>G!(kS2&NldOIy&ihBTk!nYEy1HGKBklPVY~KEHQ01yDw7>e~#P6Fl;w zk$iIcJpOQo*OxOqZRIz*Fu5#Dfo&X*h)F|!0t~#t&26~A31DCWINagoF_(E*xu#?~ zS#RgS55Dk+kEMQJushzs13I;s?%#?zLI(n*j$7YXP%$O!sw#LNFKxH2xzf2y--Oqz0EGF>BF4OA>491hePfmRxF5Cv<720#!7caVZv;30e9 z2ZVqDH<*jLhyjBT5_L9KV9|S;!DmF6gvNM`$Y_Mmp+OI2V(>&rG!kr=BpxU-5Wfa& zXOJk3fjOF!d*_FK)^>(0Q4KzrT+h){(@+3SwuUwZMS2hiXTWPGgw3YC;VZmj@k$NQGrdvg2k11BTs*Wn}m**$_^bf+LDCOV>2lu0?9#95pJWtL?V z6W~E8c!vf|b86bcE#{|{=yfTHCYjGMHkAmRXtG2KbyG^T72QNvD`7<8nK~`wj&`6v z4u)U}W=J9x5&L2gI&yCO7!iFZkN`PShVn@MX)^fqCC!N_`SdV)zzxGiXX(g9>8M{} z>4T#4QxmjPCxIu?6%!zGGlv)lK{6=$WI%amAnjvM1>*)7Fq;@K0X7f;o8v~*01cl} z9lKePaT6)Rq!!B^H@EjQ&As8t151r?XIRb)Iqc zP2==UE_0X)^sd8FRobTS<;iMHy#6;v|Do%+81fg3^u~GnoFJJd% zh?!5V`J9V2uF7*T2=kn###sMXFbQ)s1jI#I#0Gup{w?I1pc}-~5c0&A zei=OfnJE6rh{)4FT_6Q#uqWnY2VBrMXrM4_;0CgH0(g@HHE;nHAS7+jJP$*wAi+bG z2O0!djIVmKD4Vi};hc29EyJZmYq_AHV~I;fL7@^IAGtsZ2&_o5XJrwAJ){{V@s(Rq zM7Qch=E+T3K`!8_MCSr&Z4i$}@nH0VtqIX!7S(1GqHIyP6GJjd1t2uMF$b6vKFf1z zfMT{{+dtzPG$kV@Qy~;!P!MVGkh!;IHh~5g@pKIFV;2>lUi60o!xJ96h{R)RZo39$ z5CvSI4Ktw!c0eGJl`tlki+E!LG=KrFM=+26QgEA-rcsxU+DEQMDWE-7hcwTtbj9yB$ z4_1#oQeqOHvvgX>gPGXVZZeGVHq!=P8`= zLyD$oBPO0lyE^LUI)21(kI)3 zmFGosVl^kD;}u(RF5hqmYOphaRfTKzYwrdvWEx}wgGgygK*Ey-ruR2g00aflIDmr% zVFH_PZ~+)_0R<4Mv3GJc&;>=ekE?|*1~Dzd^E4V9$&#G1b3m)zurlTOR`~W6c9t1> z_Lzc}XDNJ&8mY7Kg>Vj3aFZCymDqb)qg*5*CpmmNWJz&Cw+3h|ztZR$&yfuNkHE8J-ZaHAiVm zv3q9{bQ}n$XRDOLw<{VuOK`oLaKmbf1(%A}k(ty{Xj&sgmLgzM6pyc!hbEiXP~@(eYED z)jB0Y6j2zTB=r=&{+v?JrjK}fIoi^`-!e`;SdL35D$_BnkSVmG^p()O!=E)gooP7K zU)aZI#%z{hF!pVbU5qudWZ!A*Ya08`Sdxfl7-L_vQ`t#mtSPFo3u%-rk%nZegd}bL zkLP*uT-SN=dv#u&>$=bH-1q1Eac=!CbU_JfBsvm$-L9rr5u4*Ln5y`>kkd;i&*C2% zqMxQ_V8{3Rnq#TY25(Hxptd4E#9NpRL{_~&T0t*UV%Un*bE5^6rGd4BMw^_gc@?#b=F0t$OeQp*7 z$l)BZ7cXDE5&Ec{8;#cIPJ4O-aqdQ869FMT%vDydBT#f&>Q&&F(xtV>FId*k{uH0= zw6S>SW8yzG^TL)+lMt@!Fc@bOZm6-4i@a(^UJHD)!y7_simPT-nL%nvk6Ogek2-m`2}(&c1(esxG=uXYO)?$`f`ayQF$H0c`em(9Mb&O?m6VW zitbL)j8`ucqAoe}KKr#Z!gfb-wOsR zuc@o8*`SthMqPQliDujk^`nY$DF?xoucZpRE1o~qf^jQO&u{mSzEmhQ*PN{=PWpC| zi(N!NvGOjQRVdI8;x^5lOgH7OI*?(J{>%XJ8n-9ixn=R%O?B4|RWwAW|jGub83JxF!+Z5`isRitecC5@!x&y>(p@I1! z3eOZ<(w3k@>jt5>j61@`xaPZ3anmnR?s!qxI4$uW=U<*boZ2OZy1C>2a$}AR5R?kV zZf;KT1JMb(sF@mjeeN$O;=gC_8xB_QmA$Xo{sJo9KXP1UK3^AmSiUKy@{39AMs>^X#O8!g^RldD!7ITVGX; zS#ii0Jm+Q6gN5tESSUZ-KK#%F z{Dsf}7*%JV0{#V3d5L+~bs^d28e&bh;7glAp%eVfjGn;Gx3n~FtKP4(YFFa1S7LFn zweMlT25D`j2UWvd9OpW$Q1#xqpd3l1Ud%xyRcL4`qT#2BmA|azP`B)741m&xZ;^n@&S1}!@sRtoFH?fr%7!u%%HLKX${ zI8A2`L8DpiM&et!!V&KtI(GdHJ&JvOU&aK*`%LeIHUqDSAiE|UPp!Sr@^8j04f_80 zDyQ<*YW>pzpZj%`H2+WNAzbBqZTV(JXzvn3p60w+T|?;%I)z1L49UP!h5sGYSY86E zlTmy^7h_4z=1*y9s@+}BYC82K6)@k=yco>Vb~vPDDs+9L!&KxJSlLW8ZMuNi#)~va z2OW#00|(*Wt-uiu_f|}xEGSHTvR1UY^Tp~Lv+^uKP?+`)DC)9KzC!#2+W(>@8-Gy! zeX{y;xZI0+Eo|nn=GJR~Dq<^Fyc_#*(MA06hFx%O4#>^GCr9hJd9Na7rAtq6T>r-4~zZeNnevQ^eS%+kT)enW7lQ*(t`Yw&$czAW8DY{Bo*mFpi; zFL>VAdfU+sLL$ZBr-|Pr;KWgQZ7mRrDl4=YQz(?L&}^#lw@FJC`cdvBbvJY%{kf|B zCI4Ob#_}B0-7y>O{)0x>4>B(k6ETWUuJGk6@PY%7 z(A~k0dQ$I)))?@#BG*ci`zEf@QbfRBaARK0A+V_VpIztYhZ1E_t8gF-j=I4_*BnAs z+sq@cya}D?o+Z9Y(?neXZaXx+qsv@a-8cDql&=LBy?leJB3z$sns3k+ig-EeS{-_< ztk6q}Qx$jkmg_URJ`H3m>ST>|8kIfl3Flw-SwvKB8aBEP=i1o6JAGL4REOLYkMgn( zc{g{;pVkKpyR$oYzsMv9M6(Urs3e!Vs3AfFhtI{j81e-hoySa%Fkd{tlB+;<@Khfc{7KPIovsTsJ4F^#(d z4~lH!=il7@ITE1zL$e(!tp_}Q;>-}dT^yGjeGg_FXu$OZOWwR)Y7nUR9EqV(;vUxU zj0T#hJ+aM|d`McYs=ED*!#3HayH3hD$inf7T}gbZ5~*AeghGN#3sJz#pdg!TPwY?c z9-}JWh61=enMk)LRj*zFCR<1D+Bd4dy?;5irGH+AR?4kbsrt#n?%Or{R+G06u0ldw zMuWNe6sj#!Gh_;%Oj@_ugx~i`4e|JNapA6AF^1Vp&$GYWv2F85TMQ%=2hnm#;2@hb z;`A7PmphL@IW0&*0H6OXTqd37J4<`~ytn}+(7@a6=EYy!l(gJlm&|wXWfm5wSGu4B zqpNM*^g@Nu@7~PM_dXg8^WaSx0v#Q;-b>uJjn?v5=U(VDd;b;Z$+Qyw`nc~5fsSd= zy0YuE@MK{$JhrF*%3kb3{|87!+^Cl4VadY4mT^S<+kVgE-i4>%QX_7D(z^Ql=lsI6 zpQ8~;Kl-np9xpuq4}vE^w9o$X7pX84d@|Pn4tn9F_sag5IujBGb6yO_f589Z!mkpkXC^%Glr8z`rI}mM7}!e!!eGivfTYlMkKt*ciBvf2 zQd}gka}6Oo*Ed@_7Sm737gY7tznVD{(`@{&E-|qJ4Fm#2e}RDz00bZ(3y1+EGUx-- zRA1^|m^QsIZKXbKdiJgSQdwnOQF&VF|CiE;s{CCAnOo9o78i94taS`rbd3Wq>V>IX z3_TNFiAlN&qwNKRoJ7u93<1MXa0Cy63&ng6%Amr`pvnc7m0(gj&!mfC zvQdCJsKVVf7;!qxVTw#QxL9sMVcAe<37ol>k)a(3d<+Cm0D$uV;3oj^JCNZk1o~b8 zI;O!qaGB+~7wkziLq8GxtN`?)7)UDvzP$tbPzzdZ1JHW`Tcg0OA@+^u=a=rQ((Y;u z-PZ3&y?pPMLq*)>vg?;_$I9n~p;P_%;$2a3ms!HF$Y5I`e_O?1hfCgWrjAZF*7o)m zc1~7yZkHY1ur6*6?jDXFo=)z*POcGdSHj$J0iM2oUIBi-K|y}O;lbhf(5R@0YmrfL zF)=r8MqNws3(c_i%h&g*&<$%cj_Y)|_1KF*iAb!!kzA3KmzSP%JG-DFqo5|`c3Wb} zqu8>+xQg+ln(3@oT2c4g%HFpXZ4(uZeO0wBcN^~Ae^B_KBcr;NSXm!;ryk#YKeVGh z`bonzYJ1{1C7#xuxYCoj(U-XKG--8^uu4t&NKO4TK;G(2+v(5x+@H7gG=Jk+9-W%E z`ZRxSpm^(f`R-uV?s(N?d{RLow2O#aq`y7#y#8 zn!B?-U%9zdwz^WZOfPx2QM$Z+XJx1M{pY6j?bfZ02fH6yc9-sNziIh2+qU_-hQhZfmTY-lg>xadY?Rh{B&r5I`VXA z{MpF(;OL8?@u}g7nb8+B<5RC*yrfONnw@$zH$_``@p55gYQA^;-NSJ@WqRuo?enww zujB8&&bT$|l?wVb@?1e*`aFXvaP0mo@5bb?qX( zZn-k$^tJjC9@ds4*L>EPzy4p$l9=%%O4hMzzid|QrKEMbii~F!qtZI4QcNp%<>XD% z8HX9PI<2YPWL>4f1%DaDzVoVH>;7KM@1x+i4_(vt3@UGn8MESI=oGIMD1wj4H!i=U z@8ILaZMmy61CPIN(dsPk**tynHcap%F~9A)!PFxYH&^o?E_TCYm>8psJf30-3#qi_X*iL*fqx{wZ=mTPi%Qe{&8aT81W_x<`J3V|h%_L@=irQXd?RBCL^3Zlo94 z%Utx6@6c;oT)*u1BCw>(Z&vzz-o@S@^Le^Z8At&Hdtg*(DSUj+$L^xPf_J5AqdCwm z{4t+_L-LMm#Zm7s$)_Qcjg1u)na*?u;W(OpMC_@_N)249b$^KE!k7JFqIc5JQ(XL}h10V9xBcyYzvi{v=*PPcB18mYC<24mg7Nr~d{c#A z8%56Hzdq5d1&5h=E^KHvpfWsUCh{)2QJG})^361kyQg1WqKuzLHAB`_qLVRP`ERTW zwO>z&8Z7*12m{9i3SMQY@EZY>x=p$d8UP_7?#y%4jObamTOTLyop#TilNx1K z_F8uicKFChecG5Gru+u@O>N>01|P|$>H?KAe_`QvSXg$H%NI`7&o&2(q3a!tF2;7y z9Cu@6%?6>n)bz+BaWW;w^*+3tqg2%_O($}MEm6YA9oPmkcc{grnNLezWX~M1;7m2^77QVPFc4vb$XKwMsm&5mT4UfjQMEfXinGf5*~JgO;HNkQPKkJpR# zbr|{X7zSb(_>4x1a@_`*we#;;R@I3>PE0Ml9@#Da^5K8JZEDU$DJ-R*D}BNu#-8O& z1OdLs4f%R2rO8hF2%j&HL0X_&n|gxAniICZ`>RWca^6$@ks#lK6&=bbjpSg&Y<_8G zew|T!@Ug-54N8s5Q@}|TBREgJ=I0W-9I4Ajn>$Q~L}~Czt&DY(iKR)fXqG5i z-_c?&Rw^I;aiJ*WX{b%JftTF!6~Ju9dA+pAC~p+JUVc(5cG{ zy%g^3x2+ZUZ|b#kWlz@fl76VkNgF9;$_D~b|3*i=pF}#pJhD|OT>H*lgeQRny#@&* zQqSN6k^*1OBq&3iWUc8Pn}pwQiuwnQ&c_;L5U{>{n%6{pJD4P-MHw$q%M5Y(z`6-9 zwyYBqtNoYN-#MhkIqdL(j<`Avxxp$0xyiO2xGG{MuK_lUs%LM&5EJZ z^)((n{xIfW(k7R8WBTJ0)DzFL2XY&G8IKeK)W78eI3em&bVwzoy{eyR`lqE>DH1v= z9b1rk9#C<&yzH|FPb4EC!GucYrbzcvNJ8H=7|rPh(%LHgvoR~4MXRL@r`tvptxt?| z(w84kI_owIA?s^dh<>;rxIX!1etVu6`Q*jCH3!`;oOtG*=SXZ-wrnx&-TDUjzc~8FtT>i7ULjN@C^{QTv*MfA@ zi_t@R+AIU473s+-K%)|!0$poSEq2veg3?@H+90}WJ^vCMr|*Z`D>Q$ zO57f5a5BOFyA#9~3sA*JRG^t^aZcQE#Ar^Y$i_H48GnQdsHHOZ6ClnQ$eA?q$nQoe zz=%kISB^7UzJZtG6soDI!9Sq zL?Rl-ZUG}QXak@SB-ntGY5)N1;w}ndfEI7z#dx@l7vo;Fo!lq3PC^RrIM@p9{sX{P zgk#J>!a4GdTwzJ*ec;PjUsSbRzjAs%mz9~S>Z!J|YUX0n9*@I|@4g&ZoRUrh#rhk4Q=SN7fXkzh|3K>;MtP+w=HkQ|(j zd|eH(B1BqH!PZppn=@PmBSuvLil9Mg0BB7rX~qdSU}t=bQb4G7=R(F#8LDmtsP+vd zX7Z|Da_22W*)Sm6#G^~95E0ZBs6;qX0Vp0GXnpSqTnaS zC&=yG6ZO zf@h3PhsRLdFa0nwj&`t9O&>DUmj0DAG*Va?$W3S9{>&|^qfdD27%pzBRTYO`@Z(h1 zR8cA*tks#2PW6gfG$8n*B4s2)1(Mm?6<}3Pv@fUtvs&oz| z!l5L>(*~F*FbcsDmJ_A zO}^gGnK_fu7{r9uG*{7xzWsyJsKqW9>fCh54Kd||B>V<_&R}ZBGi_zuwcR0p>p`%E zIMop#u5|F$Td)lc?1Nz{ry;)Fmw2yNDP9ZzF-*KYSR$JmBDaKT&ziV-@rBK;o;JPjEZD<{U$%6`sBfw1lKuoi0;lMNN8>1_bt(nU(w6D|U zL7j6oqyx!Xf~#!S1c~pra_po*XwVpBrDa8%^jo%1v}A*Bd(#xrDI=ZO5R{9XuZ($E zzQ(QMKI?;B^kF>VLPn#Sk>zZV1~ zVoO8YePAqM;PqP9eUoVWMd1tBynuWL)_iC+1;TQAd^X)8El&kXsq`!b_sr+l$$i$f zt%h(1vhE>Sa{%yWnR)}Jwj?-^k^zTQhrIi35iZbR(A|I?lcRbYj~VF1Wr-RdUBf*} z+qe$=I!Op04`+?C40G%Ig+W6M>>qt>Jb)A@-G z^b!qxghc3&l+|70WIzX!SwZkgYVg%%S^yRcIC|V{O9Nl{>$yThXoYr`<5>Tl*L^wZF)u2TDsD$-vM%6zf1*9&=m6^SP(n$dkX7=v7VUQ9Y8c5-RP$5_G zP|_MmmI|~BVf;Xs`HN)T1F*f~(K_G7_La))jDxr$5tpjkj_HVWG*ArFo4k_7TV7A8 zWIe_LP61lKLMor6o?7K=%ZqYwnQWobaVYR~!;7vL+>f;%bvi87`?*U__Niosw{UP; z4F*-5Rl)F682Vv0Cj>3pv948XJN4onSOW`CqD(ylFn6GtJ-Jn`NCsu(yYK#Bkc0X$05kL^!&+uA;Y%A}k?Qc0s~ zz+{Sp>*>5KJ`G)K_1-+JJuRUxD4q>4!EvN#uj%TZ$Nbo17G6m$vBMQTvU^~fDukeYzG)cB(C>6*2f?VaHo{&z|PFbh@!G=QSdC+=4N1FE{oTJyB6Jm_81 z9kyc{>oNt>NeSsEBfrtcInnjRl{6mQ@{v319*q@3X_LsYE5%hp=*usBQK#u*wrA|s z6@b$Fg5JYxQ+KYtbOL->Fyf#%spJK$pKjt$}#}x$23S~RXX8Yjj2cM^itY?V36vT+t^p_>b)jJEd*tk@l zEKR|VzuZi9bmzpJIC5}6xY}X`4m!9TKU}bg*8SWq?3$&#UgyJZdqU#lWKh5d%Oh#S z1u&hzPbo)ih%1Iak*oWJ3Cq)u$NQ}37oQ0r+N@Q9G1c(ZeAY`V8xsH6^aLAX&_-f6 zJdDrS+xwps-@_sMFi%~hv1p+BSD*;84NWK@(&53mbM&0Ke_rA8qN_jM<_vTC?i`8$ zCeVG|Rk{UNa`G7ylZprm4CiUE{jb{)0D_;5Wr4oEgawcuet=LuWY3&#pBLQm4V#z! z`?vzV^HV3FoQnA6vy&9oyxYCI@r4mW-&KF$(&_nGPvnT@+GoDsB+j+mg0Nsw2t)37 zXoo96{JmZIjgM6>Tx%HCt$o(7RM!5IXP=pYqLkT|rBIQV@DJ5LLMz>l(X78i&*JZG!UJ%xs7s1RRFS{D8ze;Jkx=kO9*NWHj(PI_AQ!aPy zBP1$Z{1CB*XYI^l-NLZ0?zeFvkG+{eQ_=P2zY%)`quB7ksBg8B zuMKTE-+a_H0@zk3r-FDear^r~Fq~b?gw%)iGN?8wUVnL38-;apg_v<)(l2kA6-peu zU0y6$9f*TSniryWY=LI^{C*t8eilVCj?JoTqIJe1VN2Qm!%&2qYT$gXcS@%9vO|mg zqsZY3uFt(K4v)gJAk17XpgNNbrsCt4`SAC>!N~$V;cic&c9KCq%-bbZ)HFgDtMv`Z zENo1ICRHv6-eWmJm&k&yhrW}==dX@cxqkPbxubLI6e{F)6!^Nq`f~2Uka5=Vd6#a2 z(6ZWRP)EoV`3hn5GY>y{`q%KpazE(rsnCDpc^}qpiaC$f`R)`pM0{MSk>lB0ZU9AN zNP!w4QYsVj9r(YJhwr@-{;jk-gQX2fj9jwVGK{_fNi!M%ytt8X0zHSk-!>AIktp6QfL$!}jjxxq zWSYoel8OH<(_GUj184!Yc1ZF!R){IfhIZ~)RD!x^Wgme0g6%5XaqORq?58a(i`wf$ zr`p2kvgn8Hy^IZn?uj|lL(u+^z_sL0p7aIa3!!}OD*)6Fzq(naHzL#=HJY14Cv5+m8;fNTML2E_Gdu_0N zGeg!GATb2`qe}|E#_oXTyQCHqRyx21no)`S&;A~N{`MTeCXXxtA%C@Bf-+ZAL2xB1 zogvjo8V6337bJo*!_IGxgT{QkrQ?2iQyC_)Cpc*z*cMSM!up1lIDbK&i z11=i|G(PsPj2P1lxN}`yl{}9+{ddFeeYks!y73h`Dui`$F@=4Xet+CP$$;zHT!Kp{ zkKL+=w#z!8a z9A@~9OL}TYWH}$t{0;UgdUH|kyqf;bIVkHXQ!8O8j(jQU*H+W>q(9#tu|VG;meU+Vx4Z%o0=`E2nMaLL!@tQt(z+{n0(9NBtcp)qv@ zmNi*WEVdH5yw;0rLkeaCNbiN4&i|nYfMU!@VgrC8;Ui$QCDs5LzX-FrxyF3Oj3lIt zC4^ZAMj?Pi@Cgkd>r}wGX~wR52+WhQD*!Ij%`$eCp1h7sxw5}+BEce>&WK9B@|_@_ zT^pTYBA?9uuP_cgI@x4NO4p(~@d28>OW0ftOq}7W}4PIIJ z&)yxcN-LJhd0|D*Ne!tD71#v@S7y;UC2MirulrNSqHXFu9-kt#dF(WiUCusJmXhm52GOYes_04%v-*y|FXf z`(~}xlqB|r?%+Us$^Z4`FFJLSO>Sk_&4rN1ntPNd39?m+oMe2^B79CpYcJR&brY& zu7v@T6PffGtM$?(_}9|)t*Y-V2$8hA&&aG12B+*k@L8l5Y;dg};6P^-xkF(f0_*ZK zj%1XxBeU;v%bQtx+c~bdJGg8o^EgKNO4tIk9$@kkt`_V%a7`CutHrqK%%hTXKa~-! zcK&{&c(U4n7whsj$RF{FaJ*r+>3NF_a)iM%-j=8>JtT09VT~$e&_8`XS;vtZ#~r7* zhQJpM3oX~oCo5C)-7@G5eHEchuMSwRx9$tRD_<5=-k-Vd24IN0of2d#Hv${czo-8N z2>yb0f0sE373vFr#Cr(5Kp(6Ti4ByRKgf|CD$i6j8_`nLht3_}U|bFyF>g-*GNCF! zq&Ool<_GXgV6TA+bi3H^)YZF31uzv}3m}2`#z>5TZyYmrGcPh5bZ&S~d-R(_QpfJq zX#;Kul|wdmklE9LBfj~B2~%=3w_ohn;tss$+{jeQ+m}6*vV-p|ej4h3pSGMp9_tWr(J0BqBP(}yqJ!yHJJJ!UX15rmsnlQWY} zAeg=`evGX#@3|p1bOe9})v>h+TI<%=s6~U{&lr@(fC^5AgZ})5_4$I3pI(}CzYYnq z`U&KxF2-EWJJ_+kAjJ0q3q2r>)Q6&*iTjL~ zj;K9JWrP}0uXM(u7-XJ{QC%v=^Em4fTOn&aQ11JKXIK>tdG)a(O_b@eXfHys{?RPI!J4KmgMbo?{PF?;5(HKJcuMoysgez z!sjgH_i|>VR$Pc&bOMZ;a;*y-8JL!Y8@Lr$9XSQFt09@>v;CJ}vLj7c$SC$HS7t+( zx*Y%#3X5i5HQvxgIS*jVF#H+#P!mzyDDTxP3;*ur$npj*I=n2Vd zp9v{0=^!|8pAOi5AO_tAt1JRaZ5h-Ey4nw5w3@WDU96EQCH>%pW|$%XByj?~galWn zkP_oarmYVR2{LA%i5lq)s*6UNgy-@T$wEuwzi$KU-l#fhG1;n+H)P1R2^am+p8$^T z;HpO*ze8M7Qtiun-0bh(2gugP*TYC0ttY9Vvb&5oF%S27+W`HaG*cXySO)tr?Db>8 z-D4qtZ+9_iqe4-ho$4TvBqEOC5|TACm<=yS;LEDstWFbVAte}!3RUJ>rss9ob}`!; zu(&8)OuxVIVnFnC0Bq#a3g_)aP7I|?=fliW6z!99-IA3zfC!qYnxHOeqHRAg9drWt zTxXcI3s#+Ys@m6OU7eO-_As6TGgxU7*(T>`q}lK?sC;3tK!FX*(#(*gs@61%lRT>l zlI}J%qFL@{2iR(Y{jM}YHV&lReCdIEj{{4O_cr9JG#RTxb{-&~yP?+%hq@o7%GdNb z9vORua=7!~Vh!rS_p0UNSUhQ}V)Pd(|joCb6(@An6*3m&lcigCK8Pb5|k{p6`M*!BRR6 zr#U_hxG<{Cax*{eOy33v5Lxgk(;lQ!JFwCI0EjyDQGod2X8J2tHa*JOJAd6c5&U$n z{z96xG7Av6K(a;`T1z%tv-DXL+=c~Q?A{NVvQq&XW+W8?5k(Wpx@e>Lj%0n3tPDuO zZiAGu$(R0tuoK{1Z%{Sf=(_;eVBh8j6_(IUDm{GsAC{znePt>=S)B#?EucK4{l;zVS5iVnW^GF1bS;r79#W+ss=QeD_%5>~w+GuN9NqP;( zB0>GkT53T$c+DWbVLkhx*qz;`n~~K-gXPURv+!R8`L_#hr;Nab7&B!wgAyvm@;hO< zzE7D#T;b5UIYLn1PEo<62uROErBgE1W@LX?W(uV!!Wo3|W|DM}0y4$G52U=$VB|Qb zpHC{3Cs;_^8DsM`w;ABgbG0lG`Se%yD|0nS;fCr_Y>veayPFq))?{Cg9VMS}`c8i! zb?d32&69c{>b-TEcr`mFtkQ~QRe^8xzNLCIi zfpCGAVzk{Gp_Lo+WnNIIm?HybnqI>hr+;xj1$4roGm-MICU6py z29Rw6pkAHAUUDYd7+~2aj9v2>lOSq%q_gfzYEGo^>3Yn~*~LGoN)!UJm@#0am-w&@ zigC%3C*nvN;O*Bdg3ZMF_l^7bQ-B%{u!=}|&YmJQ@m}^d@qI&|6ox?&!?1+%R1!>4 zl_r?ztrprj803@U2&+>gV7=V=>TqtA~=p%0E^{&>^Sk@Dlw8m4^1?t;dwuol=2{5XpSG2E@=)l@O8tdq@U zZ43eAh=cQxy~0%1UfFMcn^;SHyTDEZCfbBV3dd`qGjn+(-J{ zuRen%#KGd4!9FhlC^(Q;l4XcWVC~b$vG*DeTMG#HKq5bPNQSV{Hp3oPu}=^bXj^<# zpbDBnm`daX00rnSQhJL#Wg%&cX0q?RNvTAQ4FZ%mB~~FtD?RN}H(2!qSo#sDxJ|}O zr`-}JomLc)_N;su;owWul#9&_+Pq#D^BFX7Bny{qvTl1?<120oc~7m!zmJ?54)w>K zsbHabu~0AksILpzZ+{zyp%rqI*NK@e9y|Yh&K(N%ILZ^Q@+N(%XgI%?b7a_PrwvH8b>xHsY3?m`!q9OmY(f)AnS! z8TE#LXy4`HbMXb`H_?JxcFw$(35FvAS@D2+OH!R5@6*j-6E#Npdc_Zm}HiJ`gI3k ztWyh;hQA+fChz^|_6;P<1wj39P_j&6U>r064LuXT`62h#)a#wT-rotoc;D*XFIm7p zfw$$ysy=8kF8{7$oiSRIr3KONC~V z#@7T`^AKArh@aD>69Ok;KL83;M~^pYX584Bjn^z*Fuyc7IB!u#DkU&lR0~;9N&`z{ z&0P-3n;BAUSNM1fL-th-!=d&nYJTX#;C!ee?0bVfS?)q1eeGlJDS6Ly{`qGGsGH&2 zgn%7WDApSgr^R-4lhrS|!!eAyv+suu#{=2Yr+kc$(o0WjoQ}*3J`HlBxuq8`lyNtS zrXAziMn+;HdeUNf(=7G};Tp{-J)nj*@k~)vrU>NZ{lP)`)tx&GclMf(xu(Iw7HD%V zdu1h2%?#D_ISs$rEy=^}@3Hg)yqx!G;9fO zsu>(G9%r^;ZR3U&<<+p60lCb8C5iwP?O#dLjY_F&AM*Ak&tI!hB-md4%$2lx-tp9> z^ar!+o0;@z3W|31Q+g34tTtsfBVB2t5cq za8dH)&vG={WOr2#g@`eU`yZZD@);$i%A;o`dP7IM{k}__#V+BfNs-ZOM20kkff`CW z_(=M7y+x^V*zS?cT(e!1U0d)E+4)wtM^Rr-cYnw&QoP3tb9O;8%-qJ#l)%~fwoEp* zU9|T`*os!dzte+%&eVtxRN}9t1gVD{;(AD3l-XKeWF|-&Th<)9WJKhUG{Z|OC6hkA zs5B?R2Q^31ImC7Iq|Yb+2%c|ue#KoAPfA}Ajrk^7qxExZ=I-UnJ&*O1O_pe0*G$uP zPo4Pho1>6^o55#f(YWm=IcWpyRe3cuTrx{JdX8+Cj5NSEM}AE#OZ1a8sb*wl3v>)WHGNd zUPfcQ_5{UlS}kXGAeE*MGYHGqcRkhI?Gw+_`F$duug|1;uE1E~$B=FK<54F!Lqu{>5Vu+j@jj4PVvyb}X)NV^hSqIzg5982>` ziz_UXHNUaYP%4{1Kb!L5KAhzlP5gDIZ;gCPEXq~`JBjD3LIg*$^_g8&UaB(drd!{F zm^Is(2nf|>D^JO%)Ea;phiB9O*~VDeF1Vg@Sd=A}`&CX-rK7DnOy zePvo7H`!^6mfN!Q$jffTJ=oTx6urd)*H4DQN)-F#CiGKR>mXn@7adCy~{u> zBvfziSxuJi#hr%Aq>H=uKSCVb+8&G!F~I`%2?9wtj$BXFcl$Zrr+=RP8S(HJY?Mgf z01j5=-YJ*#yXLlesy!)FDw%j!|C?Ypeo>rB75~KVEDB1(m%KtNP0R;2l*nJX4E!D# zEYx&Y>~LHp;VbTF6)@0#-S)&>oS!XYY=xt~HT5Kz zkNTHXBR8AaKKx_#CdyFvM@aCC+H|mpA?E}Z z&8K&TtWqXJ49m7pMiS@=LqMP)vmXCCwZpbvhI*8#qN5E8z8w8mJm}=8{6cwX;585s ziUy=x%Ae*4zrN4ff4P_>2()UGQ5%fQvL8;~K64*-+2w+~fOecsK1#&e*Wc7Exc35mLh8KW9Cz2*zU zw!XYj{Sv*viN^xTtm&(NB{ha+W+LN_(}CjNKqhDkf+EV6L1EV5?Jd1!)B$+<2BzEO zGAifa5jUQa?ITzxiK2P2ifRxUb&+qG(?hK4fy?-tWSE&5+d2m*BOI5A9j|QWVDCpt}jvcystM_ zb1h1isR~wXiwNR2LyHcKK`sZf`^pS#P>sfn z`Y>g^G!u<9VF&@Htv>qZE;p4uClD-7+D*5PjS4B;=l^ffUMR}fkZ^if1LA7TO!@mo zio(bbb%w}IL0{Xob{@S=&NOKAFQ>Q%-odM=*Jpd0cL82&hprxvi9kH-+l3oVfUR#G zgK@XnGCukH`pAFed($`OqdD~)yqU}zNC&dzr-+=5K|Vb?)5Y>yp^W?4-tXip{?Z5w zejEo5gV1D;SbBr7RzDHJ|VzXi9nV(Iv9RM z9I8-|W_gniP6G1>Jp2=|CU4QO{yE%Vc35)SqY<3$k=yVtZS^S1LaT&AO8Bsx{)_wV zvwv^C+4ZblZMG8(tS3ajNzO(d0X7N3(l7s7b zAVN2D=9wN>-?H0wMskFV&ZR>y1iJuum;2t$KU41w%l=4ctHxak9~L^TPPe={Ec9=& z5GUQsma%mE#op%l?GHpZ6EoKvvIG`JZ5k_zgl3T0kK*}y5D^hWK$PxBYUt63G1a&! zcB&rKCZC9>SV7)5vIL3gr5RED{AT5LVzQEz%?hZ#0ovWR3d4b%Sm;2Q8NYU8w5J76 zwSDQc8$fwmf*I;<^F7~UX+xb|8I&GX+00!I^7$=@5Xk$;Xx@u?KihrPTJ){ivg?m{ z_OYe^;pn{Msr>&pejjIXmUVE>v5sS;tYgn~j=j36=r|L=e9$K$@=<9c1!^IA$wJek_X7zh{ofWD3_^=dIvhzSv~ zZh)5rG{9AxPS$B6NzdAi3~? zp!E7C{$};{{V%HUhxb`({EEACa0pHWzS-V9e^BpnpJKcG-_7;MPd02H$LWl@?AZ(z zfld!IzCU@`Z7h#_FEOr$Mt*wO+UP<{@om8MfZZ-O;0EI291HUi^t_!iQ*B!1qnWnEGapY@xLRDrXT~<-m z)%j{Rmf>?Ll24Z*-Bwij)7HD`s&pf>VlDZ~YH<3(ISaDWqrXh)WXl{~3-HsAuP@Ob zEmbUP330k2N077pUAjc2z-pz_ey(gbvY!o)q~soCNR#tT#9ri!S&qg|!s;dYmkPgR z(FNwIqla%?uVo;*li;d?C~;`Px+i}#W9aXYf!8pmnq71f_!|rOD<^VgOt257AAqqb z!6sEP9yOC{$L$rDu#H|{U1293s&KmF-~iuq?2+F#^GBd!xJ)^GOy&X>Xl%B=p#03B z-`Z&kF6ID|>IP(8%)7`VOo+J?BuP!Ic>dhgu5z(1uOtoKoQ|vsl@ND|Qaa+N-Cu98 z&f4LBawI@xqMb=oh;elqeT9q#KB$WCYf-T8u2niiL2WI9N2xM+Ygz+t0)9T@JGoSFOn`TyR`_!&y_Z$dQY7SAH)}(v_Nu#@ z8l6rm_D;`6@<n#FyC#vn=*Ps5cJ{vvewKqi4nKPhgz)tWKAV2sS z0saFoXbU4IG`@if&UT4_)`s6J^ofXDY-IF}gV7A+C>5lTs4q08NESp;C^FAD@vF7cCHl+?tMUvi~K%|iKuV)(m?go1yiB|{Z7s;=I~ySo{V z=qN)jCntyfa@AE0aGQRwMIU+3QHp@w%ENrr4`ILzC{lY&?}ntHk12HG%_yZ0*LE)&aR3?a0jIF9F&S&ODBswV zuq^P^6nXFN$%KdRs-1i*P#Y&zmnJBwv6^Wowu|Jk>ry5MYG**wL}jJv$Is~5@_!yT zdRZH|G&sk}9@?N>3Q%q#kEE5n)~1-76DM+Vf?r0aXA}g#RVYhUtG#{L{W7HZWx}&d zvB{e0$V|B>y^ED@ayC}mLs^SL+*iW;JM@}5N->hnRB7O*{#tGR=d~!a{cmhPp81t? z@T0k@3El+tOn_in%3!F+P>cf@lBgAANfN<;echC;xCxR?HZN;o6Wqjaass@N=e;cWJ3)z@n3E~tL60Z8-^k$9Yfkbg^qTfb> zoS0(tfp`gddh z^6e^bX;S(fF=+dIx}9m$Q%ALD;sP>@0ax>q4oba;BQEH2J z`{5UCd)^mv#ThU3_?8^;rSWrXV-&wJHolySjvd-JO4%371V@8#%K#ysiEJ1`TiBwA zCj$buhPiepQEbLU*4u~B&~M4GvgEfFCsL0m*5E?ab;nQmv)CWTpI;OU{^&@7y0f8P z4CqcIl%@U&7WL_&di{-6r-Y=NF|V;Mphxemw=iE$no2VleSRxyw4XzUaS^Q!BQN8S zE&cOm1gB#ANg z>`v{7co6Pw=QMTH$0BEfDYuwrW8+oj+A@4pyL|LA9o#O?P*e|-k?5pK>Nx&NGJB!{ z?|ySc>BFkx3)A(8-eb|G9CK0+ee;!MQS%dYITN2XBoWCJ51@+Ehtz9#)af8`wzYUL zQz41TgLR=70ThF>nG%Wo6clWuJ~IDKfA^NEL@3g^h7zTS__OdVpn3dFB$Up;$ez{u z){3$Iu36KfEz76#(oHeeT=#(;77OTwot3pnJ|PFj+s`7HYd$}ZUoPQ7tQn&Q5AskM z8YYsX%N%Xhlwc4Ftm&29fg5WUA!%Y6wv1#lu?fB$C@tIRe<RmUJ|{(B+>5iu3d+YLlPBNLd8T< zD#m0g^_r{yetZY((T8=hF<3Vl%Qct_A`kdw5(?pvD}33SZa**@+A;sOFrL7M6@?gl z?z5elV)TeILpNbZU2uv5+5#nG89a&aV6Is596{^wqAh>5SKo2td%7*0b82XCPc%gJ zRi)dj9}6ebdlm_nf4UeE<_^^XvDEJ5Be5Nr7h?)H|Kp~A{xA6y_n6MVH{kR%gY+k0 z#XSv3I3>c^Dtnn?lLV5$vc-#Z>_73Hl3<7X57|dB9m<$!_GiZqFI~Rx?@1|n8meD4 zk2~ELN4@lPG8rFDm4Hwf&Yrxj__~X%_W7EYjrx|Dvp+U2=*LD($6o7+r#!O-NOa5z zzTW9(c+RuuT1N{c!1&XdKEcaz#CZMW<7P^EadRMC>4!8Kin&7oSg+SGe&naSp^&)^ z=A{DIZd2@zMG`71iVtdZVq~@wX<)WEVl z!6zkm#V;meEn3#UXVjN;vA&n>Gp{v2HFn5!?Sr@BI`nU%k(g`97a9tCc&g`Ebh-p| zQa{^d?WuxJ<9HwiUd~2FvaQpoI4mGB8Vi~-vVUnXeN)H&gTd*tA#^0=;_&u2qJBlX za8#4jq}0Ds$Wt|=xOs3C z|Fo|#=t$)uCQQtzDA?&bXX%A=W3$3g^hv-4mJI2<*KkFDxb#hu~%yJyLmRS zpvU7^+$QI$D8e#WgRf>I*=io;2CMCs_OAy$Y%1ov!rVZ^sRI5(1&UY1)#;;~4Q(VS z0;@!pn8N52tK|0S`s@57=oiWgz zUZ|ngj)3m3I~1IVSINI;b~g~sOO@|zJ4>pUXv)nto0F4A)z z6Ny#YSgkzslmc!nCmAafJW>mPQ+f(aS=*vOg?4CFfRPzLh-YHUASMbBS>}m{*2#{B zA7Z)R-^*SkgscgjxYdC%Mjl9K30rVE5bW1>T661>U$KB-GUkFt$xow#2-CftB*D_K zKce*#IhnU4B!g~fZm}WPJ?e)7$OWzVXf-MRktByDGTuMuCz+ICAtfvyw^e_!maF+ysr>2#xew*%H`?I#3O5@!Y@53`4os?is=BG#F$mFi zuqA~c^Ymoa8DL5FBJ>Jh=`3=_;J3(_Y)E;O)nfthSu5<(#IKMnhhKAG7@A9~We6Fy z-el;_IMt#pjhjA$EJU0FazvN-_vu=iwKg;C`|+;j5i&FopQT8MIrI>>q%*0LD>hlf z!2EKeCPkS{P=q7;eFJg~aZbtkPe334D~nnFSzl1A9^#*4Mfq|r@soNhCGm-dZEfzo zc3eIFXpC>Yq@~Py5&=>d^2O_S^3RAtK28%CAI@>jAHD#e>R}|@+&@7$$(NINo$q~E zDn1jXH$nMYcs-M`M$y7m{&O%!uI*$R>;edooDA0Ke;cJmB#eOFs zGV87MPQ!zPTU6~v0|7gO-*C5nkz&=Ks==XEqXI|V8MZdV!ZW2{$Od2PX zC3mUOz}QO8_&&!uly?aU<-5+OLm7gGM^~Xj+~FuMA$XVfFjyv-YmHc9r+3D&wK|=K zWQ10khrG<9Uhk1OM_Gx7c1A=FxKl|xt%>^TB*AO$R9P-V@=*X=L^^mxQD?SW49hrs zrZt%)K9^&corJkI0TBJt(l5o1NWbm1IJ68($A)u6KGR1PiIMk0rmIAV$_&yLTf%t{ zOz?~xR__<$ITDxzHh+r59xG$7T=~Ml);qO^4=sEAU`b`dxZ3Hqd;l*WHe-;kGngh6 z8lH}SSC(sCK8M;BUZdmMt^NQzLK({u#CNs0-CsWrNkjow$mkEotN0^vGle(QzJf^- z`9~atFfv=pY^Zia?agSi%CV1`rp-?~)Fx|y(ER`x;bb6?aco#5Ydwiai01{MQxQ(- zeAsa1E(50;(cp<>2@}n1=Wt)RF~uBocMEztnhA?{e}Fh1`B3v%oAd!XSYC^hW`xVs z>u`YZ>j+(gC)WTMf#sJ^7p%mwL_t+Lm9!pgJ#mYpcPoyeUv!Lti)G0st(8lf-Q>4i zT9sn-mP@ODPi z4{^Grx4{VBAgX0ujD;Iq8&fk9LGk2gKQZ$_t&bHBze?VhleCPan|3 z3^|l*4FUOENK-~n_>9PC`SbN_|F}SGU(7;b-}Jfv&Q?i!S8i1aS{;TQ)9}rR*eR6x z!FoaINEAy-6|zUF`I?XpIDL1l7AfHu6l>Yi$#G;NTuO$q%gG}e5HR)x#av&jE!#bv z1UFnBS03DYtvC-wZmh^u#;NZHi;Kkk#r1pES{(JAA1QFBV&yTKC1F1Re^ZKHo{B_n& zHSzFDrn7i;YKls9k$^ux7{^<))g$GwRk$&2Kh5mZ3_t7)ZcKNf4O80q7Nej3h_DqY zfN_WwCb$o!93FNRTciqy6v;~tSAlAk`CxGr3)u4PINzTku*w#gq(k(d7%0(_B0msV za|h6QHGo6i0fWv7*hNMSz@S*j_VlM;OsADK+YtZpTN zO+j3wTGp^c5Ni_`*qUzY;xD}%Yn8xIAsXHMgzua#&79Rod2Zsn#+9u=q^Hxb#4YH< z{4lbRcgUabP334am^DOaCVll-&)h_5b^g5>bV=!d=X!p>`s#>^o+>t<>_5I zk+!mzuBn_3Pc>5 z!>^AiZw&Av7%#)e0&fut_Cf=`Uh3A%e%gFOQ+4sFimaxd+f3!l!L zIkSAgNFaTlPb&?O@23jS5V7=C^;9bA7hQ6Sxc+cR(x3{DV8|z@`9dr{>bx;64Y^FS zunhIx&>O}jSC#hK_Si%cN#T24k$?xYV>P=AJycNvm;Rid+Uq6oI=Ljc{t6rEwG%~D{$K~rquT%D(a+MR?n*d&IV>ome!9MFSEQkPp zBPhQeS%4k`EyI#}TJOIJNNod{{wi5^mFzYVyv+fxv#S3al3t16a5;jt{?Wjy;pv-v zXVNf(RSH;;a4220R!*F;3hWPq2hfH4eTCoQ*?o6EW!S-(g8}c}MP{If5u*2$VAf zCRnIPWYjoYcAf<@k`vuyNg6R>+*uAxicaV!!tb&qrHHU!tNVOdr z?HR!#T>3^*{Y-+rKcrwr#AV}`;qVj?{+Few9xGF?o;2{ycu3pi{3tAvD6e}|UK$V- zSrr*)%G5@375exN)RUfz=YAz124n;mm8ro8s)V^LWYIKYo_vg1B1+t6N|8~2pk`S*zZsH|EM5dr(2IypT$P|}<6A(|pWa#ASe5y{&(a0r zQ!RJoi|`?>E&Zgkal9X+1D%>;=Wa9Ln4 z3lqaG=Y!v!&nBAWZkZI)z)~E{A3ziV$WXRrP>2H6~FoPk&ARTVXB#zU{gjQ{}Df@qIa5+rA_q?0~2duD(A6NzN0K%qh`#w5qh9lxd zcZgy^u~mWwa_I6^iKCHnzrd2sEhmD-3A`HM_+r2E89W#AjIzDsx4A=$3!^qXNnnK> zN?s)_yBJDW}_IO#L1{r+4b0n7nQ~ER+pf zSpdCZ2x5ms*dQ78;3T^4v5y@x4%NvrnTlt1W&SG^Ine0#xJJN41A$-*ps>_OEZL1# zB+*~_9#y)Zfn>=YzuL8b-z`GdGn5HcvYm?7VG_tx^o@Dw+F|IZGN8?Y$WSzB5}EVyAIX#Y2Gt`bA~>rC6hRjyss2@wO(w<>fV2l=xGd?V+tN#N zQaC0i{+-~87N05rF=KuuMdZ9E4B4F@sPoAZPgqU$jbaBy~6JULqvRLzL)S zb>fbr_*QuEMNzC&0hoC7l=ohWZ!f>KuE4AARA~S!$`n>*CT>zAe#DsOuT@T6iA;HK zDvcOevd6Xph{!Vn;UcvqEFkk4N=Hug7l58(!%o=!7~~)+AoL7Nbd&?rk`pDgi(Xho zP7$$=a*~btqQ5x&J}fYuoqbwfoyZb9$iV14h;pynQ)mH1O!0~YEIUSwnb&=1}RDcq{I-PJn~psU(Bs+tT_n>ABA!27X@h{&VpNrpf*Y~Pjd zl*b%s&K7Knjtb|X9M3cynd-WEYAm}sv&q5<+I-+<_hW4gly8wJxXA_ytsbQ?AXapUUZC2eA*uc< zw`P>zVHU)W0YPxUPYDn!wzC6~XR|>~5a9?HY8L?aqVN`Q-tHo5B!~SkN=_YSS>VC= zK61T@X;9`^D%Q)qjlVd4eUtyq^-WDKl4qm19m8sSrH*FX;j@|z6x9G zOZgJl<#DeIxn6T<>D13Yn1e26mzXvHlDQBY(L^>K@H-}!X`g(t7jGn`#YC1c_6fV7 z%MPRUmr$WZ*i!}S1NNy14sx6h$710RXHOvkY&U>%WRk5`QI4xz;#8k;49Ga-EZ$Ho+E!9-g^*swWppp zUCC*KcQMOmEA34lIEndv?;*Mx3yi!p5s~b?G$NjE%H&b_hV&z0L zG*nf`j-AV8Yky>+m8AUCOu$R*TlDN4Ey~rN3r$FRlO-K;#u5_k4KV?DXoAr?wn8-p z6-;SvT!q|Om9FrW^NYWZ1Rf+T1QouL{^G>^Di3`i`{p2^U^+uEF&t~9d^ zcsBj1Lk2gvD$!Vlxh1&uhmvvi@$Wy6|C!9bpzTBc<#pa`ihJ)!4Z!I1JmtRwP-{iH zyq?a%6}`VVeNQ|%vAJhru5QW!ZLAb7L#MhapSfCmy`ISH?B{)POOmkgA`MVb&;_(S9^>B_&-t2O$+PnJ)@ z9PLq?;OE?rylfO zj=)2Xu+i!e=^K*x4S(r5XGkO&gC@(I`PW}-PN1H>{#NYii*6R+IE0PyC5xLQhdohN zgKPUz<}JZGTroX^SMTmMzVjS8Mp7SC14G=sd41TRmaN;hM7Nl?AR-H`to`h);&Zk5 z=Vd3JU-U+m(>Iz1fz}h;Pe{&UhVP3za^O?ql8Y&upXUfxVI{Md^uK_iKlIBQZC`fv z;Y%J^=v3nYzw7N`3yrQSwCUrZ(5I!k@_JJ*I)dkFo#J;L+?ip|TThONqmF}o2j}~@ zW|`*9tE!%N;{~+qr>^USE%j$;-<+v1x%lgkfKJ0~mBkgp!AzZ7^JRLc4Z3`5QeAFg z7Dwm4rRDdW-$iWxeyE{(|1y+&{hb@*_49;ZJMS)D5mX=S+e186p+v}-*kAd@!h;RA zO0=L4aWY=8R^O4pDSmNztH=@!Pn!y@6sWzpnrCk^KE4K)B?hH6Tlf;XKF&8CzNwr? zib05V1U1o|7`vyq%N=LG)DLW1q@e`00=592J5og6im}CD8bJ8*lw=|1!QbaLp`BOu zIFu|=Wv5!&Es`ZF2d~*6a8Z``WR7$a6da>g))j_({rlQK2hi@bqgN6h8#q(6r<9!m zZH&?Stj>&qxkJj7LZJf{iFZNkKGAtPMIONl(RH9+MZyWvzTZ$f!zkx@+x=>m{@Hpf z>HaxJ|4sPknsWIA9P~MnU>B#uu1Vmq#UX3bweWL~O;3E5FZMWA>RNm}tn1x^XM`9< z;$YmgsG!fK3ORQ=l)t#d?~2$$U@7Bp_n2~RUV(>r1yjxnZ@efpf>fzxErr&##T*am zdL=H&jqLroOE`W1XSZiKv^;VcE)$=(d`2Ai)dnGwrA|_7MZSD_0^0fBk11;cO*icoiJVS$#md z#`xy=|DCFKZkdYj+`KMaf9!Sso#K(}331Hv(r_8rOoX0qM z>mHQ-YT>mZ*-F$AOFtpzf~7a1f+4|`3H@f@KIxtUgQs<8AvI0pSb3E!wMTlNniJ>E zRA`-31};GNgo1e_UG)p;JLw6XaD7~YFPpS}kkc2ph>JAxIkTg91vD=1 z8O%HwL>4SIM{6t>?@SxMY;FiQ*0}r4&g2ediKUznnOJvcGB;6R_w|>ZC)LNFdo4^w z4K%v;*@e@{xnd2pCccK-5fDBY89~txri~KLpJhQm*Yy0zvXB=O;c1DhT>VFfZKzL5 zi?xd6Zl}?&;IhJ`dTO1}0_Y^1{7^b%`f5wBQ|oCcEp;D|BC;S5m2RP0Eu5QfQK~bx zUx#uO9Zq8y>`;Y|Bw8Qb{(7&is7`gj`BBl}QARgS)d5!sSKNC8H?0MsgWRX+*thlh zwh@|v1}I!Fec)5bkU;$Q6SQ9|-;z)xEm^fF95UJQ^E)cP!?zMap*0HbSmn2AqMsnx zog#~OfWydVXG&_igwnNK9s%Oenjztn40V{c zUA5ukjG5@hvlW&eBzCNvbZMNN8`S?xN_opB3o`OU?_D)t%fCcFnyG{FP zRL)$|6HIN-tfm7jH*QT7A1y?n3T*4Vz4zj0j^1R|UsU`dV_tTgQh{;LRBWeC|2^)P zcy;YgVWpQNs92QGIhD?Mn}791DLV<@@EPB|RR)&hM|&zgGZl}flOdx$qhkJzLO*jM zH}i#p_pc}8>{7Kee6s@RN%Hfx?{!2V`Jk=|kH^&uS_-|gC*%2O?*eXmf608_zj5vy zmpAx?>RH;ygJnLqKKQaTIhF=}Y#)97N=cT4pdHucjY#IYIZp$aEuiLBU0PxW9YQW? z(F9TF6;4eBj+@rDDFh`K$wuJ%oPOTc(KFV?Ku7=x72oM}$2QyEXG6#F(nkFec~HZR z)a4^g%2l3b71t0+DQ-X$9yVG!BUvu_I?ob$;l0bLzFB@)dgE%>GWw8CAM~6UesgSr zT*|C!6GzDjxx1 z){|M7a~3brlWJ9Muj=1S-{Z=C(aaHE@#FU=%_~3ed0LjmM|?Z|fW44%JXrtN(I+Tee;!S;o-nRgGw&KI?G)(QV{yoC!v$J3G(IaI-m%jV}jEFO6biDE+v@wB3$y!K(WN6 zO6j9VpXj|7KmbfbdLsTFYZzO=qI{D+tox&ITPex@>ynY8tIwRO=6JmxHeB3&)p5;w#FXK_E|PdiDrILX$iM%3%9MrGo6^-R$)nox zDS^ekLKVT5+HVQdd!uM08o=js;hkzk-y=7-B&A_zaN8B0eOEXKaUZH$$E_GO+FTvK zwAUs-Q_`#v<#%88h+}y|RF+Twj;4iGpr*23cyI$UokFW zBIhIZy}82@_W>BApfvF2`+3v*lvvH-Fx0=D%+;64cg9x#ydR6|GW#;!%Tgm{9mg^} zaBFuiQ*)vQ>U`N;jV}XVE(^xX8fwO1gxqhcMde)VJgIi@xybB?GlD|)l`>}MyGk-; za$^}Il0~j}ADmXR&c_EnH=1PzO+PL%(o=$0Y41K0g#JUP`y$*Ip&AzX57fvYxEg0# zW>^#69>sTN3qHW)ljXpd$p~m3B-;8sG!kOL0k={EY&r<D4Gi)3QR(7qIBn-td)(UE;*hc^nZw=h51ioaUL!{to8+Cybwez}TD zXF*C_acvru?DygaI`9qjkuxrGM`<2>{GHn+DE-onlQ5Q;k>N4zH-(ZI4#bUfu4YRM z3x%DWy?kH`$f60P=Yed_3S@5qJxsoHLWnvxgtN=A&V$q_L$t}tUHPViCkZ7ayOKAV z_M*;Z*emY>kIM3^sK_N|>w9Zxp)AEvgLGMic~V4;_r0Qs3b&-y0@Z&*$G$kpjWf`j zS5c3WQ9^RbcO=jdt&3A<5{2hb0*O(*&rx6UVb%UAAJTI^x~Dk00O53a0!Lwmf^pkP z5!JRb3z7h*q~<Gjj|c|p1wnb7R|day-u`kHlx1_?ikxXjFSO-=wE-P9 zF;h7Xh(L?S&;U#;Xo9(4a@}7=*jb8x<*_S3vVrZ2qhG}y9;6%UC3}k`$5}&Bzv?3f z0f+k*r~yEBz}*E(k{wu+eb6fMs0cN_bpn@`ZM~=eYB9On8a32<@oRNX!pCcuJwhDU zfTI?cD`bq_YYzjkKw1n#2*ecPPa}Gy zMe^s&@-vAb5iaLZy%M0rJj2qbe8~HydJlSc0Qv3y9xoun7%~E|6QYp_wUn^CA&X9W^ zOv)EUJGipC*jI#oeKd|bOw&+o4pdXf0?Rx4A)0Q1#i${0sK3A)K=2zy@Q08@mLd(< zFQ_0cI7DbBH8$mrmHb_FpF5vW9HJCfOM}0NuB@vupx=J}3tL^~G;oe!J4rCR3q4AN zI+9^OpO=;k!~UM<1=ByZX2ezs4XBTm z)BtV6}lSgkA9_mquIKF05`nPC*s}LkY#7C z;^J-joeBla3XD)g4T;z8R_-w6#)VihySMH>Rq2dOCYPzk>_^ScLiJ`F+cGs0c zMd2*i7hEnhuj%Jv36aqJBCX4#EMe?I^A627`&{l1dNnjJVIm0@Ooz$H*Py!cjE>)4 zD7{V2^S@bgF10}0n9V~TYb}i6Jz9~IM1&8UuQ!VCEWIv=!>_WR*M8|K$be~cz@q#J z|0Re$4WMj+uOlHqS-lwznAq>4A_V5~JNI`$Rcr7|{xE$2Y&mk=K~HkIPsEAQcDYf{ zInJkm%R?kTO-$57|Bkv<=munEwr7l7fM`|9*7g@P>hH$g67M-7)_yn@VLn4^$5&bKn)Y&5G zbb%b20Cbk$HZ=eb^odS@ZyH1Y7(wjG<Ay+ywjKlv>v^8q_r(r2#u4w*qztjZ=AKyO!x^~SZ40V0J(pFCYMooubb1(?U^0x zVF{lqM2E!Rit7%7!`oj32ro26SX*8@qDb7{KQ7Glo+AzlT^PKKnqWGJCS8YLVh>(z z?HWBE?N*lX(^w!EHTlzCz{9iow0m`nUc&RB=;GOg(15(2;yjIU_K_j_%TR6OV}t{d zVBZ?+3&{teY?jVEn1RPXdf@o;m*M^6&S5uA)t5geT+V!76wFeqj zsy`a*XQ^B(9hYsZgaSdn9h+mvgXHh6fViGvyM%NU{g=T-uYn zV02&2KM`fDZCjd_ja3bw9tGyWd8nFnP~9Jv^b&Ms3$5WTAbJdlWPCkK7>)dBoC+>2pHaOzTfWbW2)n#}uqc^uKnVPD%I<>`l%opPCC>=eW*_-3 zBO)h~YA5WGh0eUto@GRWA9v}<>+hLG_OX#VJ2F3-$A1e1Egl8>X*aHIWR1-ti>z4& zHZxyCkgni3scHw*xAiWgNK$RJ{ERmx z`qXn>3iUC|zH1Aq&m+eysm!$U43#q{ma~62Au|tFW=|t?|Jsk|jo&A~h`<-ip1yoN z0S$f7P;_3FHOp|_ z&~GaDy?7yn`i(y!_U7EK_2Usv+~}t_e_%uhC~A6M&b>>(VCL;(%;!rP{MlP`JyP$E zVkT`{*75)W73NF1gY!ghAlGC#cll+m)O`A*g3E09d3u7{C`KmuGdW0!1u)Y zpBu2jzO;R{WJEP@Ja7Y?bP>MG;bPLscNjE*e;hQ9^FezS>_CQ|K)*gFq+*u`G0*EW z&6^4>tv8(o8|HQUMb_4S&nG*>^jdGH@;x_d{dgnD%$;R`(JEvSZc(Apt$(}^dbvJ z&U-s|dN)Wg9{ZVJ;qTh}(`z<^FMB@o=aPTq(tpH!;fF@Pyzpi1-oQ&0=A+*5mm4|! zn>lcVtM!@W<%+R9^iK_wyCQMcqiR()2Z-Ph$9*8d0v%$yP$a(y8FZFdHwvngja>Qg z8Ei-UdTbU#$eqeZ{+8itEI{+>!;QcO46VVK?SdI7odVOJ-EOJkBLm;gdP9$~M|lJm zT?SgA-Nm~v@q#?j@noY(dSr-$>t4pr3zf%xwC`pkSayrWmg{y z>ih*~Kag}1y05i+GI#e!?!V%Cewe?&--x+hlu#iAQRG6Nr&MRxi(KJ+PP5^ydLutH(0Mpf0t_dBZ%jDK&1p zsI3OT%a{aD(1-lSkT_{A3w{WHViq1681U-uGkBhYZ6bDWBdJ-iGvqR`y8YH#h-ezf zA#0DH25EBRMi{G)&QGCnDlROF6YE1J&S=D(-v4-!T+{nH| z77{{-v)nbGHng4m<~kJ(@*QSD!B$s}-R7|XzAkk=(%A@qaS0@<7QPs@GH_8McKT7A z#;F&rzGrt;ai^Ed!zSBLsw{SeJ!^J#2Ky)Z?tFZ9C+PLc--~-+-#xzR^O~FR=jZn? zA6~!ycNqZlhG=|9ojg-Vk*R$q5a+bEfIvu=K8Re$oy;-T4KJHk*!zV0A!jy zZOu0q`dY)tx6u+%#QBGZq+L6cH6%m?L}YqtRLlH>!a1a9~& zn+bmpB-^RlcWbGs52pKy9-ZQMQKvC9{ma5JG=f&v{&H82mmZdvSYh#c?WlTn1t`zairzUGsqX@%P|NO+ImjQ*5;?dX*Z zN1dgXrm=f#D>HQrkJU?^y1va#@5H<)17mJpr`s$`0$TR7OSg?!F=rmC^!zz9rTskq z?8CmKh7;qyGnS+gx$}p$=wwaKudrw<=5d)^$&5R z!Z^S~G-aIw79l8|f!<`@zm+0h?pKwfs6V5r1ebF6&oO_`ez;bUz+qnDx>B4hqu!Pp z*5OVTdGJ1#;{ETDeSwSDUu&U^L#A2TL(0*FtdSfDSZebYa5xEdA~x@8c=|Z4vt&&5 zbWPW7!^W`OH$->>Rqr|WEnzl2bt%*d@LV&KxEt(xtJYi}yELplw4QP{W@y;sbE3pe z%Gm2n;j(3g|HRYGz0^Lx3rP`$Sr1c_xwgwEUHT#Kin}f%6{^aMLqb1?DJ*{*% zzY1Qa)kv_|RMc*oNagoCC`Eh{K8Ds=4!mOsgqwk+z}J;^R+&j=V&rmIpeAjOhsRyB`dj9eVH@EisMq04N?)Jx6Le@$WB?Nh=hy5-y?)K>kLjS|gp<783z8CF@dpTTLgch(nHYzHf}&+7#q0}{ zlD-A#s0lF9kJgUwSJ-b$9Z|M%%5<_Ck^Rk0hsY^8-9K5IB$Us#KJ-WPzTyHA{s+9M zZomDAje8#)J6|YzgH2IUID7p?WS~!#2g8GLwp4aA#lShr-RGpX-ni|X;80-{c4Iuf zM_EkI%v{oQuNvqEjcbHXATRv~yK$3K1y2JtCZsO7{gJ8;$@wOLj-*$0)SWtY>Z0c| zLK%r%J7u9*>clzvv_?jaZG{x_T1)J_0u_>9zp>@DZdwI6vQD47{RvX?KIO2o<_La% z%Uid>7ySwxa8yvdaJ5cy6Ah?bsotH^*#)Ld|Syc`W;{1TF{D!0nX~W4n5F^$<+1etQPATn$|E~S9Ym& z7i)A+QAu5t_8EO&$?V7p{!hG7LVH8II?83$?vKZ%g;`gVWGH-2{>5x+af(s&?R|b_ zp32r951s3^s9mj=s`kvDi?-nQn@&^1{9KGRKSN>5(qG%)=btPnK@HQn(i^E>6*o}{>>KEF2nrogcRlbunluaRAz~ooHK2ddM z#R|3WBI{MszW7xx`p}+gK;KGueNS0OZ*2O!@pfKr@LF5A!_-YYr)=N1;ajtDDJuQn zGIPzuE5mRZ)<5npyt`8U3DFl_krLLS%e1LTO;(oL-7tw2b|! zWtM-)(zV&N8=-x>wGik88_#CneBjPR98SN0?)`d&kGv7;_TcV~k@_<+`JNwXe z=iQEPcE%ophiWz^kL=1mOv-7G0hzipS~IerR5y!l7~lVdW`o= zl5RZke*m*UOuv%a{sJ)AiXJ!vk3+fo8iiF*1y;yCf8d8nu(Sz4glgyqJ9q#IFut8z zhGj5=;UTr3u?v6UGlPM?Dmgk3zyJtH12A|3C>S`%*uL)D1|9naS$IPWDnIj+1z3oM z^c$sCaJJ(x4fs1PULmm(GcjMdzZ=RY+~7aLDuxdFpt6~c#iFKO;2T|dm3PviP;h{O zf--w+eKq3p~XS{6G(Mvka6x%5z0ya;Ol5C>q4K6%4o(TsRZt zGB5)@^k_KWl7c6A86W6D*9$^OV+CArhW(m{L7;#V@B?bNhEDJT2@x=`>Vh^A1B|1o zn);WV(h;NnIuAEUgDZ@Ovg;==9VPgdpYCk^YL$iyl zw8IV=`ZZXD@6+gK@B`brs=H>biA6xNv2u6S**N#J3(3W ztrXn1Tl~B*GeI?j0x&oOuLzT41cgyh1^lyx{mO?z7z9CR1a9b|<6s76ph7A`MmDagcI{WSttOkv5n30u-cFXd|WY7x*&h*$A9v}0th?o zIHCT-frSD{g#t{R+c2CViVf8GoA8qkY^W4Pd=ym3$hVmlz7d8q$V8GnP1H`9-zNt{$g;B>R1>@CX+#x$!pCjbLQ%aR^2 zxs)RXW!$G*csY4^1VqS$Q9y+lYX-3#%Vl5&Vz{Emb3EySIErh6H=(J$C_{oO0R&D88`!BxJa&hg;>Cv zIP@?#bWBt@ti!@5?=X&7@yF0$He0YD?C_OWc!d>%&|KKH+^En{v4!6#21W#i=>R~~ zu%T0cOuy?JUcd&AR8dq-RaM2UEpW{jb`^K3 zw_PN`SQNpDm4CgbVjCieB~ajCyVa16VrZ2e3e~>bNaxT7Q~k(Q4Ox*LSttU78%#Yo z%fQdWqTte1U4>Cul~I^QNsG!=T^%!*R7x(1EU) zR!1uZs>Cl+7zI)Ig8I@{?)-&f@XqgCrEACpa%cy8xQBk|hkqzre?SEd49dxiC^V#~ zcqIcGs8eI`n_S3KKGjcX;7_hY4}dMyO4%UTcn0lA*!k;@ZWAZ|{DatA7>3po2Gk&% z;Ruf45HjbGR2E{DS&@!YC0WkxT+gMJ_2fpGT29iXuIW0o7B1|)l%H!SS&%rwQSIa&w?9WNCkZIm4a2sN8try zC;%JyTo3+W5H=8j5g1bg7=Q7XJ=#X0xwx1rCKq<8>N@^i>r&m+6V9J(nwEW8nYCS5 zl~LNvT`73d;_ZSjFatE8z2zN+E^z?*sw4TTTC0t*VQ2;_{?4uqhjRd5vK8Ndh=wgF zPk1Xqf5WKbT3@A=fi#e|`7HqYB|qG_4HMH1agwJKvy?{(4R3;mgiX+3VB8_P$Rtb5 zP$34;&{TK)g$MquN2y?3n1z4^r?2US1q)$Hu4GHL4;Lr^8NdoF!4ewyWEv;{8n^)( zzyVV}WmA3$KU?JyZV8k)VH5@$!|+D-Y~h!>6f*YV77@)l`P_#y~T5>uLD*mS8D)a^{23vdB;<7D(e+Y&v+oCe7 z0y49LE3kqm$bn5p1J;n=`Go~Kd<9pC!&;yPXF8!ITf~Ospo;XSwMkgq=;H&0*nOg4 zAvz+u(J^0;g%j(A6iWqPQJkw=%v!ipN$%iF{%DX6=@!uBO_l+Y-ei(a>5?vK!&qsQ zcIok%0Zs0DjAb^#3tDy)TrPl@GTj-DF4Sw%Bn`peq9|lu zG%l#4FG#fM1qCmt9-P1)8;GxLt=?V$7PFh;Gw=p*I0ttCTX805SULqzROgkH**=j| zC%^&hNrQ)+-xK>ae9qTec!pF_+=cX@{!+={84HGQ@|4XWjT@UR%BtY7QzuN>nzcKz zB145x<+{RIR7PD)VCm?P4sFo}VHZH@lV)idXn{>0X_#*5mp18@K5f)i?bL2<({^c3 zp6O2}7@JPzmnZ;MZixagidXg*!yp5op=B1fI9#?a!>Fz>KshI_W^1l5FK~hCX$q%^ z0X(ohstigFa4?6o4(EShYw_&|UTEjrmFvg|1G{FCY~Z?kWJJv(oLjIB zf))*1K%t7%thsxX#ig;tP8Dr3+=dR7i$*)#SnSR+F|KnIT>$UGu{wpt4a(w$Pw?o` z4sj7*RoFgh*M{lXerf7~Y1(%F=@UP36u<2lN9h&UWb96H+{O}7*6o@;Wt{eHRn`H4 zQ3+jw<>Xd0`J(PGcvfY;ffyL+iD7{lpgr&2&dJJ!R1mgJFz<2r-mn#CE@lQ6ZBZD7 z?<#l#F`$9F1_u0&1z5-?8bTa}H4MQC@NF_OYdi36vW~!6tk_scTzCb+j_k$kE9~gk zN702))u&&ppm-EW-SBV_A8|^rbk!_zlh$OF&h#0FZBPI77?!skZB;zzG+)f!d?5Dz)0E9R=v+1WfpbF4tl%Hrs8` z0_gIksKv5pOPdX5Z+o3S2i$F;0KKOFvE zT*btW0^a9WfQ8+tTwTD0baHez);nGRg&VMRfggB~+y+nZL4-&60!Vml?G>N#j7M#jZfV&@4;KgZm2UA>H*FK23p7YHB%d$(@`4(mp6GFb8c6wH z=Yr>jUQpm2KfnZU&SHB|Z!Yc!cJKnxrL$tPD~WT0F!1Ht`uR`HNR| zkY9CDpMf1X;+20^FSvmvsUD1Rff%>}(Fek*Uh*`U0X|p+OF;JY2J^AK1cwju88LD# z1a2IlflO|CZD$3-F&xCX1y5nN7lU+C>7afx%mwyy{?lwf&V~!-fS4G+c;gBE^apC#E?gVCw4x`I@DA)~mUqN9(#}<{|Ccwr}Ikt$R1` z-oAeW4=#K-@#4mhBTue;IrHYupF@u>9eB3Kf_asmTlW^N?%uuoeH&MFfzyTS_N_Im z0Ikn(1sC8YUoib%yap3CovQ$8(y4Tvx1D(7@gi!Z;>bFOvNN zOl6#Hrda`;)$)*Nsr*-3F0jC&nk%okk{^Gh$u^y!gA!V(p@$-xsG^H9+Nh(sWrGWS z`JGnRcb9gzC0ui+qTMZ^#TjRJ;@KzPeD&2wDPjGQ_UBx$6yS<01-w%0D|q6GCSGu5 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%0AXSN6$zk+S&3orn-x7o& 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 z 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%0A!Z9584v1x-+tVCP*G0I#iU_ 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

      J+iW}|ls0;S;R~s*T2`@B!`x>YRwC;G8 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

      J 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

      To^ADXxov5z&#|eB*f_r#~88 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 z z(`z|EdZ{MXs6&5>{h&Tgo_bYy4ekE_LgiaNWEVj-IL90S#0()t2o4cIgvdbw3l9>Z zS7=W}iF^3)v13P6s8FIrjpEqHPai>pNS4fV5~To9eJb)9Bq-3KK!QdJ640lQo;`Ya z_Vg*SWFL-0Ir=dglF!baqekJZh!YQ*m#p^Q#~h34qDg;6ex{jLD{(zHR@SB zff%-R`xb6oxpV2(wR;zDUcGzy_VxQ0aA3iM2^The7;$37dgnxJ+2_w6K`aIE!HM&t z)r}lO-RXR%PUt#aNfI(`T7c=2buPEQ+_ExFn1N{1769`$O*?(?g@x|Vo~NDuA2 z1CLIFwxOdAI_8+bh$6OYXg!7;@J39EF7j-?`tGZPtKq;Dj*mQCl8q)P5d(CSqpUu(BSh0^Dse2L8oWb*s03h3$6R&YmDgT<{T0|?bLFu| zQlDB-sG*>9?jj_YQ<6y$n>@*m$6SLg!P#t^iBg(E&FM=ou^SUP)pR5BxuPOFYQm&? z%0q=d0i_cm1*(}tG&y9CW$RT7*k`i=jL9yl&MJ4-C%KpA5J#lx z4=G!M^EW*_>MS&>=rD~A74aD5q^2a)_{Ti@aM{$0#Of%kQS?|axvm2F1lH%8n-wiR zyb_k^qK!Tp>7EGD34GWN*6&+9gFii8)C>b!y{DwZ(Fz5upqh?cm_c zRuDfnqZ%jvcEJX6r$T<{_uqu*RA3tcL<5D6V2tROyYJ?Fh7OmKQ*A^66gF`z%u?(P zOp5iuW2=kkkj;=^Brql$ZpJZ(^mf)cot<}7cgLM~+HvRfbsW~Ml^ z?=t-8C~0I7>DbR@o?dqO!x5{TsietV>r&jG-g}xPI9Zk`&O#KB#H~#f;)&hT(~!0p zjsf`k8z}Gqf<6_*fkYU>GZ^8L)0m4*()q+E{O}1+#338UkiY~u(18wYU;`SEVFqZJ z0S*3azylxf00%rEf(~#%12&XEHqrr)c$^L$=OCRqMu(1dw1XY%V21$Q5f3ZE1BhyY;X{8wbfrKLf;J?n)V1D|HgQcvamaE`RG8wL zqiD=~3mNv8$W!;9tk#x}Uojc|xV9N^f-HB|V47sLPtEKsHj zP=JCIq(B8KAOQ(fumToXQw1qN!8AwEO%kBM1>p>*Ge@w23tS)q))<{GzwwQ6jQ&F$ z=a?Nj&|!`w&JKy{&}TZ-k&bkfqZ`^d1~DW+Ltq><7;b2g9njJx%OFK0TUwb=pf|?` zK`(lL)aXVz+EI^AFOZT` z1WJpTWt4J^3d4fR5j=#V8%9t_Lf}FK1|UNl-4I7Q$dL|eC}3WObBjDwhedb@03K0P zhZ5~c&vJ0%7{-tQ213x*5wO4oEl_4$ThM|PwBQAKeStW~xy^5qAO+K$W;6qf0b*by z8{5zZHjF_Gf=U3g6TpB5M4*CW<~5lxz^hzYP}gd%Ae%0Dfec>2f?=ou{u9H}-Ta|*^ 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�E2L^bBA116lq-y&xcS#t4 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%0Alt^(m4k4UG=RM%g>fo9_B<;L7DpBERfQS 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
      }(7 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�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
      73rny+i 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

      OjzGXa;+k}n(cRm_`I6>| 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 z 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

      U1RVMxrGMTj<8QhJ3r)?7(UOl6)*o(a6E1P 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%0De%rL*QsVY$+Ud-NN9Lr#iNXlY~ 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�?%b?!a@oKE&^HE_e(eS#M(**!INx~<&_NE0$ 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

      o>q0s-O%{t7ejw69{Dn9o*bO4?g^T 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

      !Gjr%55OQ^H$ROV~K0KlY19@&3 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%0D!NZIjqs&&3+r2-7B1xiD$x` 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�ba5AxZ5G}5T+X&3N& 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

      VHwJMEg@vrc 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%0AI^$-&grUhTY$` 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 qKg~{T`F69mH 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 mQ@SjdG?je7}kqgC-FNm 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�}XS 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%0Afgo_mJfQQ2_8~l!5sAP2S1Eq6V%WZ#y*n` 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⩔e} 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�_AjSzUEg`zBf>sH@pZLkp%I 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%0AB^m-YrSUeBx6%x)MD$V0Mz=l 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

  • ^ga>VG7j?)0OYO0)*RAvCImKR0H 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�p0-1#1zGUh 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%0AE7`*{1`i5_GWN1L&ODDmu+2*D7ZLex{CsY?h&h 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 cqPBqNjBhlt*t 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

    ; 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�<-ubtyw)m8o3*N)k^}O8%xqe5_zx*q1Er` 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

    Ck>QEqk;##<>Cv(2@v-U2@#*RD=|>YYb5paA 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

    c%CjYPR6(f7sUnaR#ps}~jeA7bYn$wle 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⪻<+)9W9_~9{=q!p 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�Y~arV#8{>OK|9(fmXqj8>4)H*tN)DvxM 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ⅅQXB>=hn9SzjjR}r2JyjM6i`Y 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Ƞ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%0DaT?lur5E0L5kP>pcz*f9bsB91H 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 WsGG|7T56q})X~Dwj38gR3%02C6%D+|~U&8$XzF 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

    IC>Uh!f80|lWcqfZa4Nsp;!)B{in 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